@rolster/react-components 18.18.0 → 18.18.2

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 (35) hide show
  1. package/dist/cjs/assets/{index-DIGj2mhy.css → index-DLCk3aif.css} +5 -4
  2. package/dist/cjs/index.js +48 -32
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/es/assets/{index-DIGj2mhy.css → index-DLCk3aif.css} +5 -4
  5. package/dist/es/index.js +49 -33
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/esm/components/atoms/Avatar/Avatar.css +1 -3
  8. package/dist/esm/components/atoms/Breadcrumb/Breadcrumb.css +1 -1
  9. package/dist/esm/components/molecules/Ballot/Ballot.css +3 -0
  10. package/dist/esm/components/molecules/FieldMoney/FieldMoney.js +3 -2
  11. package/dist/esm/components/molecules/FieldMoney/FieldMoney.js.map +1 -1
  12. package/dist/esm/components/molecules/FieldNumber/FieldNumber.js +3 -2
  13. package/dist/esm/components/molecules/FieldNumber/FieldNumber.js.map +1 -1
  14. package/dist/esm/components/molecules/FieldPassword/FieldPassword.js +3 -2
  15. package/dist/esm/components/molecules/FieldPassword/FieldPassword.js.map +1 -1
  16. package/dist/esm/components/molecules/FieldText/FieldText.js +3 -2
  17. package/dist/esm/components/molecules/FieldText/FieldText.js.map +1 -1
  18. package/dist/esm/components/organisms/Datatable/Datatable.d.ts +4 -2
  19. package/dist/esm/components/organisms/Datatable/Datatable.js +4 -4
  20. package/dist/esm/components/organisms/Datatable/Datatable.js.map +1 -1
  21. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js +5 -5
  22. package/dist/esm/components/organisms/FieldAutocomplete/FieldAutocomplete.js.map +1 -1
  23. package/dist/esm/components/organisms/FieldDate/FieldDate.js +2 -1
  24. package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
  25. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +2 -1
  26. package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
  27. package/dist/esm/components/organisms/FieldSelect/FieldSelect.d.ts +1 -0
  28. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js +9 -7
  29. package/dist/esm/components/organisms/FieldSelect/FieldSelect.js.map +1 -1
  30. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.d.ts +1 -0
  31. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js +11 -3
  32. package/dist/esm/components/organisms/FieldSelect/FieldSelectController.js.map +1 -1
  33. package/dist/esm/controllers/ListController.js +4 -4
  34. package/dist/esm/controllers/ListController.js.map +1 -1
  35. package/package.json +4 -4
@@ -51,10 +51,8 @@
51
51
  border-radius: 50%;
52
52
  }
53
53
  .rls-avatar span {
54
+ align-self: center;
54
55
  font-size: inherit;
55
- margin: auto;
56
- height: inherit;
57
- line-height: inherit;
58
56
  }
59
57
 
60
58
  .rls-badge {
@@ -129,7 +127,7 @@
129
127
  cursor: pointer;
130
128
  color: var(--pvt-link-font-color);
131
129
  }
132
- .rls-breadcrumb__label__a.actionable:hover {
130
+ .rls-breadcrumb__label__a--actionable:hover {
133
131
  color: var(--rls-theme-color-500);
134
132
  text-decoration: underline;
135
133
  }
@@ -918,6 +916,9 @@
918
916
  flex-direction: column;
919
917
  row-gap: var(--rlc-ballot-component-row-gap);
920
918
  }
919
+ .rls-ballot .rls-avatar + .rls-ballot__component {
920
+ width: calc(100% - var(--rlc-avatar-width) - var(--rls-sizing-x4));
921
+ }
921
922
  .rls-ballot__title {
922
923
  --rlc-skeleton-text-height: var(--rlc-ballot-title-height);
923
924
  --rlc-skeleton-text-letter-spacing: var(--rlc-ballot-title-letter-spacing);
package/dist/es/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import require$$0, { useState, useRef, useEffect, createContext } from 'react';
1
+ import require$$0, { useState, useRef, useEffect, useCallback, createContext } from 'react';
2
2
  import { currencyFormat, itIsDefined, PartialSealed } from '@rolster/commons';
3
3
  import { dateFormatTemplate, DAY_LABELS, DateRange, normalizeMinTime, assignDayInDate, dateIsBefore, MONTH_NAMES, Month, assignYearInDate, assignMonthInDate } from '@rolster/dates';
4
4
  import { PaginationController, verifyDayPicker, createDayPicker, createDayRangePicker, verifyMonthPicker, createMonthPicker, monthLimitTemplate, createYearPicker, verifyYearPicker, ListCollection, locationListCanTop, navigationListFromInput, navigationListFromElement, createAutocompleteStore, verifyDateRange, dateOutRange, PickerListenerEvent } from '@rolster/components';
@@ -1592,18 +1592,20 @@ function RlsMessageFormError({ className, formControl }) {
1592
1592
  }
1593
1593
 
1594
1594
  function RlsFieldMoney({ children, decimals, disabled, formControl, identifier, msgErrorDisabled, onValue, placeholder, symbol, rlsTheme, value }) {
1595
+ const _disabled = formControl?.disabled || disabled;
1595
1596
  return (jsxRuntimeExports.jsxs("div", { id: identifier, className: renderClassStatus('rls-field-box', {
1596
- focused: formControl?.focused,
1597
+ focused: formControl?.focused && !_disabled,
1597
1598
  error: formControl?.wrong,
1598
- disabled: formControl?.disabled || disabled
1599
+ disabled: _disabled
1599
1600
  }, 'rls-field-money'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputMoney, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, symbol: symbol, decimals: decimals, onValue: onValue }) }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1600
1601
  }
1601
1602
 
1602
1603
  function RlsFieldNumber({ children, disabled, formControl, identifier, msgErrorDisabled, onValue, placeholder, rlsTheme, value }) {
1604
+ const _disabled = formControl?.disabled || disabled;
1603
1605
  return (jsxRuntimeExports.jsxs("div", { id: identifier, className: renderClassStatus('rls-field-box', {
1604
- focused: formControl?.focused,
1606
+ focused: formControl?.focused && !_disabled,
1605
1607
  error: formControl?.wrong,
1606
- disabled: formControl?.disabled || disabled
1608
+ disabled: _disabled
1607
1609
  }, 'rls-field-number'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputNumber, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, onValue: onValue }) }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1608
1610
  }
1609
1611
 
@@ -1612,18 +1614,20 @@ function RlsFieldPassword({ children, disabled, formControl, identifier, msgErro
1612
1614
  function onToggleInput() {
1613
1615
  setPassword(!password);
1614
1616
  }
1617
+ const _disabled = formControl?.disabled || disabled;
1615
1618
  return (jsxRuntimeExports.jsxs("div", { id: identifier, className: renderClassStatus(' rls-field-box', {
1616
- focused: formControl?.focused,
1619
+ focused: formControl?.focused && !_disabled,
1617
1620
  error: formControl?.wrong,
1618
- disabled: formControl?.disabled || disabled
1621
+ disabled: _disabled
1619
1622
  }, 'rls-field-password'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { 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(RlsInputPassword, { formControl: formControl, disabled: disabled, placeholder: placeholder, type: password ? 'password' : 'text' }), jsxRuntimeExports.jsx(RlsButtonAction, { icon: password ? 'eye' : 'eye-off', onClick: onToggleInput })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1620
1623
  }
1621
1624
 
1622
1625
  function RlsFieldText({ children, disabled, formControl, identifier, msgErrorDisabled, onValue, placeholder, rlsTheme, value }) {
1626
+ const _disabled = formControl?.disabled || disabled;
1623
1627
  return (jsxRuntimeExports.jsxs("div", { id: identifier, className: renderClassStatus('rls-field-box', {
1624
- focused: formControl?.focused,
1628
+ focused: formControl?.focused && !_disabled,
1625
1629
  error: formControl?.wrong,
1626
- disabled: formControl?.disabled || disabled
1630
+ disabled: _disabled
1627
1631
  }, 'rls-field-text'), "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsx("div", { className: "rls-field-box__body", children: jsxRuntimeExports.jsx(RlsInputText, { formControl: formControl, value: value, disabled: disabled, placeholder: placeholder, onValue: onValue }) }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }));
1628
1632
  }
1629
1633
 
@@ -2040,11 +2044,11 @@ function RlsDatatableHeader({ children, identifier }) {
2040
2044
  function RlsDatatableTitle({ children, className, control, identifier }) {
2041
2045
  return (jsxRuntimeExports.jsx("th", { id: identifier, className: renderClassStatus('rls-datatable__title', { control }, className).trim(), children: children }));
2042
2046
  }
2043
- function RlsDatatableRecord({ children, className, error, identifier, warning }) {
2044
- return (jsxRuntimeExports.jsx("tr", { id: identifier, className: renderClassStatus('rls-datatable__record', { error, warning }, className).trim(), children: children }));
2047
+ function RlsDatatableRecord({ children, className, error, identifier, info, successs, warning }) {
2048
+ return (jsxRuntimeExports.jsx("tr", { id: identifier, className: renderClassStatus('rls-datatable__record', { error, info, successs, warning }, className).trim(), children: children }));
2045
2049
  }
2046
- function RlsDatatableTotals({ children, className, error, identifier, warning }) {
2047
- return (jsxRuntimeExports.jsx("div", { id: identifier, className: renderClassStatus('rls-datatable__totals', { error, warning }, className).trim(), children: children }));
2050
+ function RlsDatatableTotals({ children, className, error, identifier, info, successs, warning }) {
2051
+ return (jsxRuntimeExports.jsx("div", { id: identifier, className: renderClassStatus('rls-datatable__totals', { error, info, successs, warning }, className).trim(), children: children }));
2048
2052
  }
2049
2053
  function RlsDatatableCell({ children, className, control, identifier, overflow }) {
2050
2054
  return (jsxRuntimeExports.jsx("th", { id: identifier, className: renderClassStatus('rls-datatable__cell', { control, overflow }, className).trim(), children: children }));
@@ -2144,7 +2148,7 @@ function useListController(props) {
2144
2148
  }
2145
2149
  function refreshWithProtected(collection, automatic) {
2146
2150
  if (automatic && collection.value[0]) {
2147
- setFormValue(collection.value[0].value);
2151
+ formControl?.setInitialValue(collection.value[0].value);
2148
2152
  return true;
2149
2153
  }
2150
2154
  if (_protected.current) {
@@ -2160,9 +2164,9 @@ function useListController(props) {
2160
2164
  function refreshState(state) {
2161
2165
  setState((currentState) => ({ ...currentState, ...state }));
2162
2166
  }
2163
- function setFormValue(value) {
2167
+ const setFormValue = useCallback((value) => {
2164
2168
  formControl?.setValue(value);
2165
- }
2169
+ }, [formControl]);
2166
2170
  function navigationInput(event) {
2167
2171
  if (state.modalIsVisible) {
2168
2172
  const newPosition = navigationListFromInput({
@@ -2301,20 +2305,20 @@ function RlsFieldAutocompleteTemplate(props) {
2301
2305
  const autocomplete = useFieldAutocomplete(props);
2302
2306
  const { controller } = autocomplete;
2303
2307
  const { render, children, formControl, msgErrorDisabled, onSearch, placeholder, rlsTheme, searching } = props;
2304
- const disabled = formControl?.disabled || props.disabled;
2308
+ const _disabled = formControl?.disabled || props.disabled;
2305
2309
  const className = renderClassStatus('rls-field-box', {
2306
- focused: controller.focused,
2307
- disabled,
2310
+ focused: controller.focused && !_disabled,
2308
2311
  error: formControl?.wrong,
2312
+ disabled: _disabled,
2309
2313
  selected: !!controller.value
2310
2314
  }, 'rls-field-list rls-field-autocomplete');
2311
- return (jsxRuntimeExports.jsxs("div", { id: props.identifier, ref: controller.contentRef, className: className, "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { 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-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: controller.value, onClick: autocomplete.onClickControl }), jsxRuntimeExports.jsx("button", { className: "rls-field-list__action", disabled: disabled, onClick: autocomplete.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: controller.value ? 'trash-2' : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2315
+ return (jsxRuntimeExports.jsxs("div", { id: props.identifier, ref: controller.contentRef, className: className, "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { 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-list__control", readOnly: true, disabled: _disabled, placeholder: placeholder, value: controller.value, onClick: autocomplete.onClickControl }), jsxRuntimeExports.jsx("button", { className: "rls-field-list__action", disabled: _disabled, onClick: autocomplete.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: controller.value ? 'trash-2' : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2312
2316
  visible: controller.modalIsVisible,
2313
2317
  higher: controller.higher,
2314
2318
  hide: !controller.modalIsVisible
2315
2319
  }), children: [jsxRuntimeExports.jsx("div", { className: "rls-field-list__suggestions__body", children: jsxRuntimeExports.jsxs("ul", { ref: controller.listRef, className: "rls-field-list__ul", children: [jsxRuntimeExports.jsxs("div", { className: "rls-field-list__ul__search", children: [jsxRuntimeExports.jsx("input", { ref: controller.inputRef, className: "rls-field-list__ul__control", type: "text", placeholder: reactI18n('listInputPlaceholder'), value: autocomplete.pattern, onChange: (event) => {
2316
2320
  autocomplete.setPattern(event.target.value);
2317
- }, disabled: disabled || searching, onFocus: autocomplete.onFocusInput, onBlur: autocomplete.onBlurInput, onKeyDown: autocomplete.onKeydownInput }), onSearch && (jsxRuntimeExports.jsx("button", { disabled: disabled || searching, onClick: () => {
2321
+ }, disabled: _disabled || searching, onFocus: autocomplete.onFocusInput, onBlur: autocomplete.onBlurInput, onKeyDown: autocomplete.onKeydownInput }), onSearch && (jsxRuntimeExports.jsx("button", { disabled: _disabled || searching, onClick: () => {
2318
2322
  onSearch(autocomplete.pattern);
2319
2323
  }, children: jsxRuntimeExports.jsx(RlsIcon, { value: "search" }) }))] }), searching && jsxRuntimeExports.jsx(RlsProgressBar, { indeterminate: true }), autocomplete.coincidences.map((element, index) => (jsxRuntimeExports.jsx("li", { className: "rls-field-list__element", tabIndex: -1, onClick: autocomplete.onClickElement(element), onKeyDown: autocomplete.onKeydownElement(element), children: render(element) }, index))), !autocomplete.coincidences.length && (jsxRuntimeExports.jsx("li", { className: "rls-field-list__empty", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-list__empty__description", children: [jsxRuntimeExports.jsx("label", { className: "rls-label-bold truncate", children: reactI18n('listEmptyTitle') }), jsxRuntimeExports.jsx("p", { className: "rls-caption-regular", children: reactI18n('listEmptyDescription') })] }) }))] }) }), jsxRuntimeExports.jsx("div", { className: "rls-field-list__backdrop", onClick: autocomplete.onClickBackdrop })] })] }));
2320
2324
  }
@@ -2420,7 +2424,8 @@ function RlsFieldDate({ children, date, disabled, formControl, format, identifie
2420
2424
  const valueInput = value
2421
2425
  ? dateFormatTemplate(value, format || FORMAT_DATE)
2422
2426
  : '';
2423
- return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled }), children: [children && jsxRuntimeExports.jsx("label", { 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: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: ({ event, value }) => {
2427
+ const _disabled = formControl?.disabled || disabled;
2428
+ return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled: _disabled }), children: [children && jsxRuntimeExports.jsx("label", { 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: valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { formControl: formControl, date: date, disabled: _disabled, maxDate: maxDate, minDate: minDate, onListener: ({ event, value }) => {
2424
2429
  event !== PickerListenerEvent.Cancel && onChange(value);
2425
2430
  formControl?.touch();
2426
2431
  setModalIsVisible(false);
@@ -2500,7 +2505,8 @@ function RlsFieldDateRange({ children, date: datePicker, disabled, formControl,
2500
2505
  setValue(value);
2501
2506
  onValue && onValue(value);
2502
2507
  }
2503
- return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled }), children: [children && jsxRuntimeExports.jsx("label", { 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: value ? rangeFormatTemplate(value) : '', readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date-range__action", onClick: onClickAction, disabled: disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: ({ event, value }) => {
2508
+ const _disabled = formControl?.disabled || disabled;
2509
+ return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-box', { disabled: _disabled }), children: [children && jsxRuntimeExports.jsx("label", { 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: value ? rangeFormatTemplate(value) : '', readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: _disabled }), jsxRuntimeExports.jsx("button", { className: "rls-field-date-range__action", onClick: onClickAction, disabled: _disabled, children: jsxRuntimeExports.jsx(RlsIcon, { value: value ? 'trash-2' : 'calendar' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModal, { visible: modalIsVisible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { formControl: formControl, date: currentDate, disabled: _disabled, maxDate: maxDate, minDate: minDate, onListener: ({ event, value }) => {
2504
2510
  event !== PickerListenerEvent.Cancel && onChange(value);
2505
2511
  formControl?.touch();
2506
2512
  setModalIsVisible(false);
@@ -2534,9 +2540,17 @@ function useFieldSelect(props) {
2534
2540
  }
2535
2541
  }
2536
2542
  function onClickAction() {
2537
- const modalIsVisible = !controller.modalIsVisible;
2538
- controller.setState({ modalIsVisible });
2539
- modalIsVisible && controller.inputRef?.current?.focus();
2543
+ const removable = !props.unremovable && !!controller.value;
2544
+ if (removable) {
2545
+ controller.setState({ modalIsVisible: false, value: '' });
2546
+ controller.setFormValue(props.value);
2547
+ props.onValue && props.onValue(props.value);
2548
+ }
2549
+ else {
2550
+ const modalIsVisible = !controller.modalIsVisible;
2551
+ controller.setState({ modalIsVisible });
2552
+ modalIsVisible && controller.inputRef?.current?.focus();
2553
+ }
2540
2554
  }
2541
2555
  function onClickBackdrop() {
2542
2556
  controller.setState({ modalIsVisible: false });
@@ -2582,16 +2596,18 @@ function useFieldSelect(props) {
2582
2596
  function RlsFieldSelectTemplate(props) {
2583
2597
  const select = useFieldSelect(props);
2584
2598
  const { controller } = select;
2585
- const { render, suggestions, children, formControl, msgErrorDisabled, placeholder, rlsTheme } = props;
2586
- const disabled = formControl?.disabled || props.disabled;
2599
+ const { render, suggestions, children, formControl, msgErrorDisabled, placeholder, rlsTheme, unremovable } = props;
2600
+ const _disabled = formControl?.disabled || props.disabled;
2587
2601
  const className = renderClassStatus('rls-field-box', {
2588
- focused: controller.focused,
2589
- disabled,
2590
- error: formControl?.wrong
2602
+ focused: controller.focused && !_disabled,
2603
+ error: formControl?.wrong,
2604
+ disabled: _disabled
2591
2605
  }, 'rls-field-list rls-field-select');
2592
- return (jsxRuntimeExports.jsxs("div", { id: props.identifier, ref: controller.contentRef, className: className, "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { 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", { ref: controller.inputRef, className: "rls-field-list__control", readOnly: true, disabled: disabled, placeholder: placeholder, value: controller.value, onFocus: select.onFocusInput, onBlur: select.onBlurInput, onClick: select.onClickInput, onKeyDown: select.onKeydownInput }), jsxRuntimeExports.jsx("button", { className: renderClassStatus('rls-field-list__action', {
2606
+ return (jsxRuntimeExports.jsxs("div", { id: props.identifier, ref: controller.contentRef, className: className, "rls-theme": rlsTheme, children: [children && jsxRuntimeExports.jsx("label", { 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", { ref: controller.inputRef, className: "rls-field-list__control", readOnly: true, disabled: _disabled, placeholder: placeholder, value: controller.value, onFocus: select.onFocusInput, onBlur: select.onBlurInput, onClick: select.onClickInput, onKeyDown: select.onKeydownInput }), jsxRuntimeExports.jsx("button", { className: renderClassStatus('rls-field-list__action', {
2593
2607
  visible: controller.modalIsVisible
2594
- }), disabled: disabled, onClick: select.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: "arrow-ios-down" }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2608
+ }), disabled: _disabled, onClick: select.onClickAction, children: jsxRuntimeExports.jsx(RlsIcon, { value: !unremovable && !!controller.value
2609
+ ? 'trash-2'
2610
+ : 'arrow-ios-down' }) })] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl })), jsxRuntimeExports.jsxs("div", { className: renderClassStatus('rls-field-list__suggestions', {
2595
2611
  visible: controller.modalIsVisible,
2596
2612
  higher: controller.higher,
2597
2613
  hide: !controller.modalIsVisible