@rolster/react-components 19.6.10 → 19.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/cjs/index.cjs +84 -94
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/es/index.mjs +82 -95
  4. package/dist/es/index.mjs.map +1 -1
  5. package/dist/esm/components/organisms/FieldClock/FieldClock.js +5 -7
  6. package/dist/esm/components/organisms/FieldClock/FieldClock.js.map +1 -1
  7. package/dist/esm/components/organisms/FieldDate/FieldDate.js +6 -7
  8. package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
  9. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +5 -7
  10. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
  11. package/dist/esm/components/organisms/FieldList/FieldListController.js +7 -8
  12. package/dist/esm/components/organisms/FieldList/FieldListController.js.map +1 -1
  13. package/dist/esm/components/organisms/ModalClock/ModalClock.d.ts +14 -0
  14. package/dist/esm/components/organisms/ModalClock/ModalClock.js +13 -0
  15. package/dist/esm/components/organisms/ModalClock/ModalClock.js.map +1 -0
  16. package/dist/esm/components/organisms/ModalDate/ModalDate.d.ts +16 -0
  17. package/dist/esm/components/organisms/ModalDate/ModalDate.js +13 -0
  18. package/dist/esm/components/organisms/ModalDate/ModalDate.js.map +1 -0
  19. package/dist/esm/components/organisms/ModalDateRange/ModalDateRange.d.ts +17 -0
  20. package/dist/esm/components/organisms/ModalDateRange/ModalDateRange.js +13 -0
  21. package/dist/esm/components/organisms/ModalDateRange/ModalDateRange.js.map +1 -0
  22. package/dist/esm/helpers/color.js +38 -74
  23. package/dist/esm/helpers/color.js.map +1 -1
  24. package/dist/esm/index.d.ts +3 -0
  25. package/dist/esm/index.js +3 -0
  26. package/dist/esm/index.js.map +1 -1
  27. package/package.json +2 -2
@@ -1141,69 +1141,12 @@ function generateThemeCSS(colors, theme) {
1141
1141
  ...shadowProps
1142
1142
  ];
1143
1143
  }
1144
- const srgbToLinear = (channel) => {
1145
- const x = channel / 255;
1146
- return x <= 0.04045 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;
1147
- };
1148
- const linearToSrgb = (channel) => {
1149
- const v = channel <= 0.0031308
1150
- ? 12.92 * channel
1151
- : 1.055 * channel ** (1 / 2.4) - 0.055;
1152
- return clamp(Math.round(v * 255), 0, 255);
1153
- };
1154
- function rgbToOklch({ r, g, b }) {
1155
- const lr = srgbToLinear(r);
1156
- const lg = srgbToLinear(g);
1157
- const lb = srgbToLinear(b);
1158
- const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
1159
- const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
1160
- const s = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
1161
- const okL = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
1162
- const okA = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
1163
- const okB = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
1164
- return { l: okL, c: Math.hypot(okA, okB), h: Math.atan2(okB, okA) };
1165
- }
1166
- function oklabToLinearRgb(l, a, b) {
1167
- const l_ = (l + 0.3963377774 * a + 0.2158037573 * b) ** 3;
1168
- const m_ = (l - 0.1055613458 * a - 0.0638541728 * b) ** 3;
1169
- const s_ = (l - 0.0894841775 * a - 1.291485548 * b) ** 3;
1170
- return [
1171
- 4.0767416621 * l_ - 3.3077115913 * m_ + 0.2309699292 * s_,
1172
- -1.2684380046 * l_ + 2.6097574011 * m_ - 0.3413193965 * s_,
1173
- -0.0041960863 * l_ - 0.7034186147 * m_ + 1.707614701 * s_
1174
- ];
1175
- }
1176
- const inGamut = ([r, g, b]) => {
1177
- const e = 1e-4;
1178
- return (r >= -e && r <= 1 + e && g >= -e && g <= 1 + e && b >= -e && b <= 1 + e);
1179
- };
1180
- function oklchToRgb({ l, c, h }) {
1181
- const a = Math.cos(h);
1182
- const b = Math.sin(h);
1183
- const linearAt = (chroma) => oklabToLinearRgb(l, a * chroma, b * chroma);
1184
- if (!inGamut(linearAt(c))) {
1185
- let lo = 0;
1186
- let hi = c;
1187
- for (let i = 0; i < 20; i++) {
1188
- const mid = (lo + hi) / 2;
1189
- if (inGamut(linearAt(mid))) {
1190
- lo = mid;
1191
- }
1192
- else {
1193
- hi = mid;
1194
- }
1195
- }
1196
- c = lo;
1197
- }
1198
- const [lr, lg, lb] = linearAt(c);
1199
- return { r: linearToSrgb(lr), g: linearToSrgb(lg), b: linearToSrgb(lb) };
1200
- }
1201
- const chromaFactor = (lightness) => 0.4 + 0.6 * (1 - Math.abs(lightness - 0.5) * 2);
1202
- function detectShadeLevel(lightness) {
1144
+ function detectShadeLevel(hsl) {
1203
1145
  let bestLevel = '500';
1204
1146
  let minDiff = Infinity;
1205
- SHADE_LABELS.forEach((level) => {
1206
- const diff = Math.abs(lightness - STANDARD_LUMINANCE[level]);
1147
+ Object.keys(STANDARD_LUMINANCE).forEach((level) => {
1148
+ const targetL = STANDARD_LUMINANCE[level];
1149
+ const diff = Math.abs(hsl.l - targetL);
1207
1150
  if (diff < minDiff) {
1208
1151
  minDiff = diff;
1209
1152
  bestLevel = level;
@@ -1212,29 +1155,50 @@ function detectShadeLevel(lightness) {
1212
1155
  return bestLevel;
1213
1156
  }
1214
1157
  function generateThemePalette(baseColor, theme = 'primary') {
1215
- const rgb = hexToRgb(baseColor);
1216
- if (!rgb) {
1158
+ const hsl = hexToHsl(baseColor);
1159
+ if (!hsl) {
1217
1160
  throw new Error(msgInvalidColor(baseColor));
1218
1161
  }
1219
- const base = rgbToOklch(rgb);
1220
- const matchedLevel = detectShadeLevel(base.l * 100);
1162
+ const matchedLevel = detectShadeLevel(hsl);
1163
+ const targetL = STANDARD_LUMINANCE[matchedLevel];
1164
+ const inputL = hsl.l;
1221
1165
  const colors = {};
1166
+ const matchedIndex = SHADE_LABELS.indexOf(matchedLevel);
1222
1167
  SHADE_LABELS.forEach((label) => {
1223
1168
  if (label === matchedLevel) {
1224
- colors[label] = rgbToHex(rgb); // preserve the base color exactly
1169
+ colors[label] = baseColor.toUpperCase();
1225
1170
  return;
1226
1171
  }
1227
- const lightness = STANDARD_LUMINANCE[label] / 100;
1228
- colors[label] = rgbToHex(oklchToRgb({
1229
- l: lightness,
1230
- c: base.c * chromaFactor(lightness),
1231
- h: base.h
1232
- }));
1172
+ const shadeTargetL = STANDARD_LUMINANCE[label];
1173
+ const labelIndex = SHADE_LABELS.indexOf(label);
1174
+ let lightL;
1175
+ if (labelIndex < matchedIndex) {
1176
+ const ratio = inputL / targetL;
1177
+ lightL = shadeTargetL * ratio;
1178
+ }
1179
+ else {
1180
+ const remainingInput = 100 - inputL;
1181
+ const remainingTarget = 100 - targetL;
1182
+ const progress = (shadeTargetL - targetL) / remainingTarget;
1183
+ lightL = inputL + progress * remainingInput;
1184
+ }
1185
+ lightL = Math.min(100, Math.max(0, lightL));
1186
+ const satFactor = lightL > 60
1187
+ ? Math.max(0.2, (100 - lightL) / 40)
1188
+ : lightL < 30
1189
+ ? Math.max(0.2, lightL / 30)
1190
+ : 1;
1191
+ colors[label] = hslToHex({
1192
+ h: hsl.h,
1193
+ s: Math.round(Math.min(100, hsl.s * satFactor)),
1194
+ l: Math.round(lightL)
1195
+ });
1233
1196
  });
1234
- const properties = generateThemeCSS(colors, theme);
1197
+ const shades = colors;
1198
+ const properties = generateThemeCSS(shades, theme);
1235
1199
  return {
1236
1200
  theme,
1237
- colors,
1201
+ colors: shades,
1238
1202
  css: properties.map((p) => `${p.name}: ${p.value};`).join('\n'),
1239
1203
  properties
1240
1204
  };
@@ -3159,6 +3123,14 @@ function RlsPickerClock({ formControl, onListener, rlsTheme, time }) {
3159
3123
  }) })] }) }), jsxRuntimeExports.jsxs("div", { className: "rls-picker-clock__footer", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-clock__footer--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.timeActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-clock__footer--today", children: jsxRuntimeExports.jsx(RlsButtonAction, { icon: "timer", onClick: onCurrentTime }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-clock__footer--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.timeActionSelect }) })] })] }));
3160
3124
  }
3161
3125
 
3126
+ function RlsModalClock({ controller, disabled, formControl, onClose, rlsTheme, time, visible }) {
3127
+ const onListener = require$$0.useCallback(({ event, value }) => {
3128
+ onClose?.(event !== components.PickerListenerEvent.Cancel ? value : undefined);
3129
+ controller?.close();
3130
+ }, [onClose, controller]);
3131
+ return (jsxRuntimeExports.jsx(RlsModal, { className: "rls-modal-clock", controller: controller, visible: visible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerClock, { formControl: formControl, time: time, disabled: disabled, onListener: onListener }) }));
3132
+ }
3133
+
3162
3134
  function RlsFieldClock({ children, disabled: disabledProps, formControl, identifier, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, time, value: valueInitial }) {
3163
3135
  const [value, setValue] = require$$0.useState(formControl?.value ?? valueInitial);
3164
3136
  const [modalIsVisible, setModalIsVisible] = require$$0.useState(false);
@@ -3199,14 +3171,14 @@ function RlsFieldClock({ children, disabled: disabledProps, formControl, identif
3199
3171
  setModalIsVisible(true);
3200
3172
  }
3201
3173
  }, [timeValue, formControl, valueInitial, onChange]);
3202
- const onListener = require$$0.useCallback(({ event, value }) => {
3203
- if (event !== components.PickerListenerEvent.Cancel) {
3204
- onChange(value);
3174
+ const onCloseModal = require$$0.useCallback((time) => {
3175
+ if (time) {
3176
+ onChange(time);
3205
3177
  }
3206
3178
  formControl?.touch();
3207
3179
  setModalIsVisible(false);
3208
3180
  }, [formControl, onChange]);
3209
- return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-clock", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-clock__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { className: "rls-field-clock-modal", visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerClock, { formControl: formControl, time: time, disabled: disabled, onListener: onListener }) })] }));
3181
+ return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-clock", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-clock__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModalClock, { visible: modalIsVisible, time: time, disabled: disabled, onClose: onCloseModal, rlsTheme: rlsTheme })] }));
3210
3182
  }
3211
3183
 
3212
3184
  function RlsPickerColor({ color, formControl, onListener, rlsTheme }) {
@@ -3552,6 +3524,14 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
3552
3524
  return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__header", children: [jsxRuntimeExports.jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: 'month', onClick: onVisibilityTitle }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__title", children: jsxRuntimeExports.jsx("span", { onClick: onVisibilityDay, children: title }) })] }), jsxRuntimeExports.jsxs("div", { className: classNameComponent, children: [jsxRuntimeExports.jsx(RlsPickerDay, { formControl: dayControl, date: value, month: monthControl.value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled }), jsxRuntimeExports.jsx(RlsPickerMonth, { formControl: monthControl, date: value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), jsxRuntimeExports.jsx(RlsPickerYear, { formControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), !automatic && (jsxRuntimeExports.jsx("div", { className: "rls-picker-date__footer", children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.dateActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--today", children: jsxRuntimeExports.jsx(RlsButtonAction, { icon: "calendar", onClick: onToday, disabled: itIsDisabledToday }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.dateActionSelect }) })] }) }))] }));
3553
3525
  }
3554
3526
 
3527
+ function RlsModalDate({ automatic, controller, date, disabled, formControl, maxDate, minDate, onClose, rlsTheme, visible }) {
3528
+ const onListener = require$$0.useCallback(({ event, value }) => {
3529
+ onClose?.(event !== components.PickerListenerEvent.Cancel ? value : undefined);
3530
+ controller?.close();
3531
+ }, [onClose, controller]);
3532
+ return (jsxRuntimeExports.jsx(RlsModal, { className: "rls-modal-date", controller: controller, visible: visible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { automatic: automatic, formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) }));
3533
+ }
3534
+
3555
3535
  function RlsFieldDate({ children, date, disabled: disabledProps, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: valueInitial }) {
3556
3536
  const today = require$$0.useRef(new Date()); // Initial current date in component
3557
3537
  const [value, setValue] = require$$0.useState(formControl?.value ?? valueInitial);
@@ -3604,14 +3584,14 @@ function RlsFieldDate({ children, date, disabled: disabledProps, formControl, fo
3604
3584
  setModalIsVisible(true);
3605
3585
  }
3606
3586
  }, [dateValue, formControl, valueInitial, onChange]);
3607
- const onListener = require$$0.useCallback(({ event, value }) => {
3608
- if (event !== components.PickerListenerEvent.Cancel) {
3609
- onChange(value);
3587
+ const onCloseModal = require$$0.useCallback((date) => {
3588
+ if (date) {
3589
+ onChange(date);
3610
3590
  }
3611
3591
  formControl?.touch();
3612
3592
  setModalIsVisible(false);
3613
3593
  }, [formControl, onChange]);
3614
- return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date__control", type: "text", value: status.label, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { className: "rls-field-date-modal", visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) })] }));
3594
+ return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date__control", type: "text", value: status.label, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModalDate, { visible: modalIsVisible, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onClose: onCloseModal, rlsTheme: rlsTheme })] }));
3615
3595
  }
3616
3596
 
3617
3597
  function rangeFormatTemplate({ maxDate, minDate }) {
@@ -3687,6 +3667,14 @@ function RlsPickerDateRange({ automatic, date: datePicker, disabled, formControl
3687
3667
  return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range__header", children: [jsxRuntimeExports.jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: date, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: visibility === 'MONTH' ? 'year' : 'month', onClick: onVisibilityTitle }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__title", children: jsxRuntimeExports.jsx("span", { onClick: onVisibilityDay, children: title }) })] }), jsxRuntimeExports.jsxs("div", { className: classNameComponent, children: [jsxRuntimeExports.jsx(RlsPickerDayRange, { formControl: rangeControl, date: date, maxDate: maxDate, minDate: minDate, disabled: disabled }), jsxRuntimeExports.jsx(RlsPickerMonth, { formControl: monthControl, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), jsxRuntimeExports.jsx(RlsPickerYear, { formControl: yearControl, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), jsxRuntimeExports.jsx("div", { className: classNameFooter, children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.dateActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.dateActionSelect }) })] }) })] }));
3688
3668
  }
3689
3669
 
3670
+ function RlsModalDateRange({ automatic, controller, date, disabled, formControl, maxDate, minDate, onClose, rlsTheme, visible }) {
3671
+ const onListener = require$$0.useCallback(({ event, value }) => {
3672
+ onClose?.(event !== components.PickerListenerEvent.Cancel ? value : undefined);
3673
+ controller?.close();
3674
+ }, [onClose, controller]);
3675
+ return (jsxRuntimeExports.jsx(RlsModal, { className: "rls-modal-date-range", controller: controller, visible: visible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { automatic: automatic, formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) }));
3676
+ }
3677
+
3690
3678
  function RlsFieldDateRange({ children, date, disabled: disabledProps, formControl, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: valueInitial }) {
3691
3679
  const currentDate = require$$0.useMemo(() => date ?? new Date(), [date]);
3692
3680
  const [value, setValue] = require$$0.useState(formControl?.value || valueInitial);
@@ -3728,14 +3716,14 @@ function RlsFieldDateRange({ children, date, disabled: disabledProps, formContro
3728
3716
  setModalIsVisible(true);
3729
3717
  }
3730
3718
  }, [dateRangeValue, formControl, valueInitial, onChange]);
3731
- const onListener = require$$0.useCallback(({ event, value }) => {
3732
- if (event !== components.PickerListenerEvent.Cancel) {
3733
- onChange(value);
3719
+ const onCloseModal = require$$0.useCallback((dateRange) => {
3720
+ if (dateRange) {
3721
+ onChange(dateRange);
3734
3722
  }
3735
3723
  formControl?.touch();
3736
3724
  setModalIsVisible(false);
3737
3725
  }, [formControl, onChange]);
3738
- return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date-range__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { className: "rls-field-date-range-modal", visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) })] }));
3726
+ return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date-range__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModalDateRange, { visible: modalIsVisible, date: currentDate, disabled: disabled, maxDate: maxDate, minDate: minDate, onClose: onCloseModal, rlsTheme: rlsTheme })] }));
3739
3727
  }
3740
3728
 
3741
3729
  const MAX_LIST_HEIGHT_REM = 90;
@@ -3788,26 +3776,25 @@ function useFieldList(props) {
3788
3776
  require$$0.useEffect(() => {
3789
3777
  const formValue = formControl?.value;
3790
3778
  if (formValue !== undefined && formValue !== null && formValue.length) {
3791
- const selectedElements = suggestions.filter((state) => formValue.some((value) => state.compareTo(value)));
3792
- setSelected(selectedElements);
3779
+ setSelected(suggestions.filter((state) => formValue.some((value) => state.compareTo(value))));
3793
3780
  }
3794
3781
  else {
3795
3782
  setSelected([]);
3796
3783
  }
3797
3784
  }, [formControl?.value, suggestions]);
3798
- const setListState = require$$0.useCallback((updates) => {
3785
+ const setListState = require$$0.useCallback((controllerState) => {
3799
3786
  setState((state) => {
3800
- const _updates = updates.listIsVisible !== undefined
3787
+ const newState = controllerState.listIsVisible !== undefined
3801
3788
  ? {
3802
- ...updates,
3803
- ...(updates.listIsVisible
3789
+ ...controllerState,
3790
+ ...(controllerState.listIsVisible
3804
3791
  ? {
3805
3792
  higher: shouldDisplayHigher(refContent.current, refList.current)
3806
3793
  }
3807
3794
  : {})
3808
3795
  }
3809
- : updates;
3810
- return { ...state, ..._updates };
3796
+ : controllerState;
3797
+ return { ...state, ...newState };
3811
3798
  });
3812
3799
  }, []);
3813
3800
  const toggleElement = require$$0.useCallback((element) => {
@@ -4852,6 +4839,9 @@ exports.RlsMessageEmpty = RlsMessageEmpty;
4852
4839
  exports.RlsMessageFormError = RlsMessageFormError;
4853
4840
  exports.RlsMessageIcon = RlsMessageIcon;
4854
4841
  exports.RlsModal = RlsModal;
4842
+ exports.RlsModalClock = RlsModalClock;
4843
+ exports.RlsModalDate = RlsModalDate;
4844
+ exports.RlsModalDateRange = RlsModalDateRange;
4855
4845
  exports.RlsModalSheet = RlsModalSheet;
4856
4846
  exports.RlsNavbar = RlsNavbar;
4857
4847
  exports.RlsNavbarMenu = RlsNavbarMenu;