diff --git a/docs/docs/Form fields/date-range.md b/docs/docs/Form fields/date-range.md
index 368e1d2e..07ec498b 100644
--- a/docs/docs/Form fields/date-range.md
+++ b/docs/docs/Form fields/date-range.md
@@ -25,10 +25,10 @@ import '../../static/c/date-range.css';
| displayFormatFunction | if `displayFormat` is `custom` | `(date:Date) => string` | custom display format function |
| minDate | | `string \| Date ` | earliest date that can be selected by the user. |
| maxDate | | `string \| Date ` | last date that can be selected by the user. |
-| maxSelectibleDays | | `number` | number of days that can be in range |
-| minSelectibleDays | | `number` | number of days that must be in range |
-| maxDateSelectible | | `Date` | Automatically set based on the value of maxSelectibleDays |
-| minDateSelectible | | `Date` | Automatically set based on the value of maxSelectibleDays |
+| maxSelectableDays | | `number` | number of days that can be in range |
+| minSelectableDays | | `number` | number of days that must be in range |
+| maxDateSelectable | | `Date` | Automatically set based on the value of maxSelectableDays |
+| minDateSelectable | | `Date` | Automatically set based on the value of maxSelectableDays |
****
diff --git a/packages/demo/src/FormFieldDemos/DateRangeDemo.svelte b/packages/demo/src/FormFieldDemos/DateRangeDemo.svelte
index 26c18776..8482e952 100644
--- a/packages/demo/src/FormFieldDemos/DateRangeDemo.svelte
+++ b/packages/demo/src/FormFieldDemos/DateRangeDemo.svelte
@@ -26,8 +26,8 @@
-
-
+
+
diff --git a/packages/demo/src/FormFieldDemos/RangeDemo.svelte b/packages/demo/src/FormFieldDemos/RangeDemo.svelte
index 69c7a8ea..8ab160ac 100644
--- a/packages/demo/src/FormFieldDemos/RangeDemo.svelte
+++ b/packages/demo/src/FormFieldDemos/RangeDemo.svelte
@@ -15,4 +15,4 @@
submit
-
+
\ No newline at end of file
diff --git a/packages/demo/src/FormFieldDemos/SliderDemo.svelte b/packages/demo/src/FormFieldDemos/SliderDemo.svelte
index 8d890d85..3810d834 100644
--- a/packages/demo/src/FormFieldDemos/SliderDemo.svelte
+++ b/packages/demo/src/FormFieldDemos/SliderDemo.svelte
@@ -4,14 +4,17 @@
diff --git a/packages/lib/src/form-fields/date-range/Day.svelte b/packages/lib/src/form-fields/date-range/Day.svelte
index 714f6e3e..f23a4b6c 100644
--- a/packages/lib/src/form-fields/date-range/Day.svelte
+++ b/packages/lib/src/form-fields/date-range/Day.svelte
@@ -12,11 +12,11 @@
export let firstInternalValue = '';
export let secondInternalValue = '';
export let selectingFirst: boolean;
- export let maxSelectibleDays: number;
- export let minSelectibleDays: number;
- export let maxDateSelectible: Date;
- export let minDateSelectible: Date;
- let isOutOfBonuds: boolean;
+ export let maxSelectableDays: number;
+ export let minSelectableDays: number;
+ export let maxDateSelectable: Date;
+ export let minDateSelectable: Date;
+ let isOutOfBounds: boolean;
const dispatch = createEventDispatcher();
@@ -62,9 +62,9 @@
day: number,
selectingFirst: boolean
) {
- if (!selectingFirst && maxSelectibleDays) {
+ if (!selectingFirst && maxSelectableDays) {
const potentialDate = new Date(year, month, day);
- if (potentialDate > maxDateSelectible || potentialDate < minDateSelectible) {
+ if (potentialDate > maxDateSelectable || potentialDate < minDateSelectable) {
return true;
}
}
@@ -83,7 +83,7 @@
if (
((potentialDate < minDateAfter && potentialDate > datePicked) ||
(potentialDate > minDateBefore && potentialDate < datePicked)) &&
- minSelectibleDays
+ minSelectableDays
) {
return true;
}
@@ -91,10 +91,10 @@
return false;
}
- $: minDateBefore = calculateLimits.calculateRequiredBefore(firstInternalValue, minSelectibleDays);
- $: minDateAfter = calculateLimits.calculateRequiredAfter(firstInternalValue, minSelectibleDays);
+ $: minDateBefore = calculateLimits.calculateRequiredBefore(firstInternalValue, minSelectableDays);
+ $: minDateAfter = calculateLimits.calculateRequiredAfter(firstInternalValue, minSelectableDays);
- $: isOutOfBonuds =
+ $: isOutOfBounds =
isDateOutOfSelectableBounds(col.year, col.month, col.day, selectingFirst) ||
isDateOutOfMinRequiredBounds(col.year, col.month, col.day, selectingFirst);
$: isOutOfMax = calculateLimits.isOutOfMaxBounds(internalMaxDate, col.year, col.month, col.day);
@@ -137,8 +137,8 @@
class:jp-date-range-table-cell-lastValue={isLastValue && !isOnlyValue}
class:jp-date-range-table-cell-onlyValue={isOnlyValue}
on:click|preventDefault={handleClick}
- class:jp-date-range-table-cell-disabled={isOutOfMax || isOutOfMin || isOutOfBonuds}
- disabled={isOutOfMax || isOutOfMin || isOutOfBonuds}
+ class:jp-date-range-table-cell-disabled={isOutOfMax || isOutOfMin || isOutOfBounds}
+ disabled={isOutOfMax || isOutOfMin || isOutOfBounds}
>
{col.day}
diff --git a/packages/lib/src/form-fields/date-range/Month.svelte b/packages/lib/src/form-fields/date-range/Month.svelte
index eca1f798..25c0b1b0 100644
--- a/packages/lib/src/form-fields/date-range/Month.svelte
+++ b/packages/lib/src/form-fields/date-range/Month.svelte
@@ -12,9 +12,9 @@
export let secondMonthSelected: number | string | null;
export let firstMonthSelected: number | string | null;
export let selectingFirst: boolean;
- export let maxSelectibleDays: number;
- export let maxDateSelectible: Date;
- export let minDateSelectible: Date;
+ export let maxSelectableDays: number;
+ export let maxDateSelectable: Date;
+ export let minDateSelectable: Date;
const dispatch = createEventDispatcher();
function handleClick() {
@@ -28,10 +28,10 @@
month: number,
selectingFirst: boolean
): boolean {
- if (!selectingFirst && maxSelectibleDays) {
+ if (!selectingFirst && maxSelectableDays) {
if (
- (year >= maxDateSelectible.getFullYear() && month > maxDateSelectible.getMonth()) ||
- (month < minDateSelectible.getMonth() && year <= minDateSelectible.getFullYear())
+ (year >= maxDateSelectable.getFullYear() && month > maxDateSelectable.getMonth()) ||
+ (month < minDateSelectable.getMonth() && year <= minDateSelectable.getFullYear())
) {
return true;
}
@@ -39,7 +39,7 @@
return false;
}
- $: isOutOfBonuds = isMonthOutOfSelectableBounds(pickerYear, index, selectingFirst);
+ $: isOutOfBounds = isMonthOutOfSelectableBounds(pickerYear, index, selectingFirst);
$: isOutOfMax = calculateLimits.isOutOfMaxBounds(internalMaxDate, pickerYear, index, 1);
$: isOutOfMin = calculateLimits.isOutOfMinBounds(internalMinDate, pickerYear, index, 31);
@@ -58,8 +58,8 @@
) >= parseInt(`${pickerYear}${index + 1 < 10 ? '0' : ''}${index + 1}`, 10)
: firstMonthSelected == (index < 0 ? '11' : index > 11 ? '0' : index) &&
firstYearSelected == pickerYear + (index < 0 ? -1 : index > 11 ? 1 : 0)}
- class:jp-date-range-menu-month-grid-cell-disabled={isOutOfMax || isOutOfMin || isOutOfBonuds}
- disabled={isOutOfMax || isOutOfMin || isOutOfBonuds}
+ class:jp-date-range-menu-month-grid-cell-disabled={isOutOfMax || isOutOfMin || isOutOfBounds}
+ disabled={isOutOfMax || isOutOfMin || isOutOfBounds}
>
{month}
diff --git a/packages/lib/src/form-fields/date-range/Year.svelte b/packages/lib/src/form-fields/date-range/Year.svelte
index 613c5e4b..2a834023 100644
--- a/packages/lib/src/form-fields/date-range/Year.svelte
+++ b/packages/lib/src/form-fields/date-range/Year.svelte
@@ -9,9 +9,9 @@
export let firstYearSelected: number | null;
export let secondYearSelected: number | null;
export let selectingFirst: boolean;
- export let maxSelectibleDays: number;
- export let maxDateSelectible: Date;
- export let minDateSelectible: Date;
+ export let maxSelectableDays: number;
+ export let maxDateSelectable: Date;
+ export let minDateSelectable: Date;
const dispatch = createEventDispatcher();
function handleClick() {
@@ -21,15 +21,15 @@
}
function isYearOutOfSelectableBounds(year: number, selectingFirst: boolean): boolean {
- if (!selectingFirst && maxSelectibleDays) {
- if (year > maxDateSelectible.getFullYear() || year < minDateSelectible.getFullYear()) {
+ if (!selectingFirst && maxSelectableDays) {
+ if (year > maxDateSelectable.getFullYear() || year < minDateSelectable.getFullYear()) {
return true;
}
}
return false;
}
- $: isOutOfBonuds = isYearOutOfSelectableBounds(year, selectingFirst);
+ $: isOutOfBounds = isYearOutOfSelectableBounds(year, selectingFirst);
$: isOutOfMax = calculateLimits.isOutOfMaxBounds(internalMaxDate, year, 0, 1);
$: isOutOfMin = calculateLimits.isOutOfMinBounds(internalMinDate, year, 11, 31);
@@ -40,8 +40,8 @@
? Number(firstYearSelected) <= year && secondYearSelected >= year
: firstYearSelected == year}
on:click|preventDefault={handleClick}
- class:jp-date-range-menu-year-row-cell-disabled={isOutOfMax || isOutOfMin || isOutOfBonuds}
- disabled={isOutOfMax || isOutOfMin || isOutOfBonuds}
+ class:jp-date-range-menu-year-row-cell-disabled={isOutOfMax || isOutOfMin || isOutOfBounds}
+ disabled={isOutOfMax || isOutOfMin || isOutOfBounds}
>
{year}
diff --git a/packages/lib/src/form-fields/date-range/date-range.wc.svelte b/packages/lib/src/form-fields/date-range/date-range.wc.svelte
index 777c77fc..cf539f9e 100644
--- a/packages/lib/src/form-fields/date-range/date-range.wc.svelte
+++ b/packages/lib/src/form-fields/date-range/date-range.wc.svelte
@@ -52,10 +52,10 @@
export let minDate: string | Date;
export let maxDate: string | Date;
export let selectingFirst = true;
- export let maxSelectibleDays: number;
- export let minSelectibleDays: number;
- export let maxDateSelectible: Date;
- export let minDateSelectible: Date;
+ export let maxSelectableDays: number;
+ export let minSelectableDays: number;
+ export let maxDateSelectable: Date;
+ export let minDateSelectable: Date;
let firstSelectedDateObject = new Date();
let secondSelectedDateObject = new Date();
@@ -217,7 +217,7 @@
) {
return (
isOutOfMinBounds(internalMinDate, year, month, day) ||
- (minDateAllowed > new Date(year, month, day) && !selectingFirst && maxSelectibleDays)
+ (minDateAllowed > new Date(year, month, day) && !selectingFirst && maxSelectableDays)
);
}
@@ -231,7 +231,7 @@
) {
return (
isOutOfMaxBounds(internalMaxDate, year, month, day) ||
- (maxDateAllowed < new Date(year, month, day) && !selectingFirst && maxSelectibleDays)
+ (maxDateAllowed < new Date(year, month, day) && !selectingFirst && maxSelectableDays)
);
}
@@ -261,8 +261,8 @@
openPicker = !openPicker;
}
- $: maxDateSelectible = calculateMaxDate(firstInternalValue, maxSelectibleDays);
- $: minDateSelectible = calculateMinDate(firstInternalValue, maxSelectibleDays);
+ $: maxDateSelectable = calculateMaxDate(firstInternalValue, maxSelectableDays);
+ $: minDateSelectable = calculateMinDate(firstInternalValue, maxSelectableDays);
$: internalMinDate = minDate ? (minDate instanceof Date ? minDate : new Date(minDate)) : null;
$: internalMaxDate = maxDate ? (maxDate instanceof Date ? maxDate : new Date(maxDate)) : null;
@@ -272,7 +272,7 @@
pickerYear,
pickerMonth,
1,
- minDateSelectible,
+ minDateSelectable,
selectingFirst
);
$: internalMaxMonthCheck = checkMaxBounds(
@@ -280,7 +280,7 @@
pickerYear,
pickerMonth,
31,
- maxDateSelectible,
+ maxDateSelectable,
selectingFirst
);
@@ -289,7 +289,7 @@
pickerYear,
0,
1,
- minDateSelectible,
+ minDateSelectable,
selectingFirst
);
$: internalMaxYearCheck = checkMaxBounds(
@@ -297,7 +297,7 @@
pickerYear,
11,
31,
- maxDateSelectible,
+ maxDateSelectable,
selectingFirst
);
@@ -306,7 +306,7 @@
2024 + yearPickerIndex * 4 * 6,
0,
1,
- minDateSelectible,
+ minDateSelectable,
selectingFirst
);
$: internalMaxYearPageCheck = checkMaxBounds(
@@ -314,7 +314,7 @@
2024 + yearPickerIndex * 4 * 6,
11,
31,
- maxDateSelectible,
+ maxDateSelectable,
selectingFirst
);
@@ -512,11 +512,11 @@
{#each row as col}
@@ -632,8 +632,8 @@
{#each monthMap as month, index}
diff --git a/packages/lib/src/form-fields/range/range.wc.pcss b/packages/lib/src/form-fields/range/range.wc.pcss
index ffeed4ef..af6df2ab 100644
--- a/packages/lib/src/form-fields/range/range.wc.pcss
+++ b/packages/lib/src/form-fields/range/range.wc.pcss
@@ -1,7 +1,7 @@
.jp-range {
&-slider {
position: relative;
- min-width: 300px;
+ width: 100%;
height: 4px;
background-color: #ccc;
border-radius: 4px;
@@ -58,10 +58,41 @@
}
&-container {
+ width: 100%;
text-align: left;
- padding: 0 0 1rem 0.75rem;
- margin: .5rem 0 .2rem 0;
- font-size: .875rem;
+ margin-bottom: 15px;
+ }
+
+ &-bubble {
+ position: absolute;
+ top: -31px;
+ padding: 2.5px 6px;
+ color: white;
+ border-radius: 4px;
+ font-size: 12px;
+ white-space: nowrap;
+ transform: translateX(-50%);
+ background-color: var(--primary-color);
+
+ &:after {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ border-top: 5px solid var(--primary-color);
+ bottom: -5px;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ &-disabled {
+ background-color: var(--background-secondary);
+ }
+ &-disabled:after {
+ border-top: 5px solid var(--background-secondary);
+ }
}
}
@@ -70,6 +101,10 @@
background-color: var(--primary-color);
top: 0;
height: 100%;
+
+ &-disabled {
+ background-color: var(--background-disabled);
+ }
}
&-input {
@@ -100,17 +135,17 @@
border-radius: 50%;
background: var(--primary-color);
transition: 0.2s ease-in-out;
-
- &:hover {
+ }
+ &:hover {
+ &::-webkit-slider-thumb {
box-shadow: 0 0 0 10px rgba(255, 85, 0, 0.1);
}
}
+
+ &:disabled {
+ &::-webkit-slider-thumb {
+ background-color: var(--background-secondary);
+ }
+ }
}
- &-value{
- position: relative;
- display: flex;
- justify-content: space-between;
- padding:0 1rem;
- font-size: .875rem;
- }
-}
+}
\ No newline at end of file
diff --git a/packages/lib/src/form-fields/range/range.wc.svelte b/packages/lib/src/form-fields/range/range.wc.svelte
index 84826da6..b83ab3ee 100644
--- a/packages/lib/src/form-fields/range/range.wc.svelte
+++ b/packages/lib/src/form-fields/range/range.wc.svelte
@@ -16,7 +16,7 @@
/>
@@ -83,6 +118,39 @@
{@html displayLabel}
{/if}
+{#if showValue}
+
+
{internalValue[0]}
+
+
+
{internalValue[1]}
+
+
+{:else}
-
-{#if showValue}
-
-
{startLabel} {internalValue[0]}
-
{endLabel} {internalValue[1]}
-
{/if}
\ No newline at end of file
diff --git a/packages/lib/src/form-fields/slider/slider.wc.pcss b/packages/lib/src/form-fields/slider/slider.wc.pcss
index d9fd83a6..f6a1582b 100644
--- a/packages/lib/src/form-fields/slider/slider.wc.pcss
+++ b/packages/lib/src/form-fields/slider/slider.wc.pcss
@@ -5,12 +5,12 @@
font-size: 15px;
}
&-container {
- min-width: 300px;
- width: 1px;
height: 20px;
+ position: relative;
& input[type='range'] {
-moz-appearance: none;
+ -webkit-appearance: none;
width: 100%;
height: 20%;
padding: 0;
@@ -78,6 +78,51 @@
}
}
+ &-progress {
+ position: absolute;
+ left: 0;
+ transform: translateY(280%);
+ height: 4px;
+ background-color: var(--primary-color, #ff5500);
+ border-radius: 4px;
+
+ &-disabled {
+ background-color: var(--background-disabled);
+ }
+ }
+
+ &-bubble {
+ position: absolute;
+ top: 0;
+ padding: 2.5px 6px;
+ color: white;
+ border-radius: 4px;
+ font-size: 12px;
+ white-space: nowrap;
+ transform: translateX(-50%);
+ background-color: var(--primary-color);
+
+ &:after {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ border-top: 5px solid var(--primary-color);
+ bottom: -5px;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ &-disabled {
+ background-color: var(--background-disabled);
+ }
+ &-disabled:after {
+ border-top: 5px solid var(--background-disabled);
+ }
+ }
+
&-range-input {
&::-webkit-slider-thumb {
-webkit-appearance: none;
@@ -98,11 +143,15 @@
}
&:disabled::-webkit-slider-thumb:hover {
- box-shadow: 0 0 0 10px rgba(131, 128, 127, 0.267);
+ box-shadow: 0 0 0 10px rgba(131, 128, 127, 0.1);
+ }
+
+ &:disabled::-webkit-slider-thumb {
+ background-color: var(--background-secondary);
}
&:disabled:active::-webkit-slider-thumb {
- box-shadow: 0 0 0 10px rgba(131, 128, 127, 0.267);
+ box-shadow: 0 0 0 10px rgba(131, 128, 127, 0.1);
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/lib/src/form-fields/slider/slider.wc.svelte b/packages/lib/src/form-fields/slider/slider.wc.svelte
index 2107f648..954fdc0f 100644
--- a/packages/lib/src/form-fields/slider/slider.wc.svelte
+++ b/packages/lib/src/form-fields/slider/slider.wc.svelte
@@ -16,7 +16,7 @@
/>
@@ -42,16 +67,36 @@
{@html displayLabel}
{/if}
-
-
-
+{#if showValue}
+
+ {:else}
+
+{/if}