@povio/ui 2.3.1 → 2.3.2-rc.1

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 (285) hide show
  1. package/dist/assets/icons/AlignCenter.js +26 -11
  2. package/dist/assets/icons/AlignLeft.js +26 -11
  3. package/dist/assets/icons/AlignLeftRight.js +26 -11
  4. package/dist/assets/icons/AlignRight.js +26 -11
  5. package/dist/assets/icons/ArrowDropDown.js +26 -11
  6. package/dist/assets/icons/ArrowDropUp.js +26 -11
  7. package/dist/assets/icons/ArrowLeft.js +26 -11
  8. package/dist/assets/icons/ArrowRight.js +26 -11
  9. package/dist/assets/icons/Bold.js +26 -11
  10. package/dist/assets/icons/BulletedList.js +26 -11
  11. package/dist/assets/icons/Calendar.js +28 -13
  12. package/dist/assets/icons/Check.js +28 -13
  13. package/dist/assets/icons/CheckCircle.js +26 -11
  14. package/dist/assets/icons/CheckboxCheckmark.js +29 -14
  15. package/dist/assets/icons/CheckboxIndeterminate.js +29 -14
  16. package/dist/assets/icons/ChevronDown.js +28 -13
  17. package/dist/assets/icons/ChevronLeft.js +28 -13
  18. package/dist/assets/icons/ChevronRight.js +28 -13
  19. package/dist/assets/icons/ChevronUp.js +28 -13
  20. package/dist/assets/icons/ChevronsLeft.js +28 -13
  21. package/dist/assets/icons/ChevronsRight.js +28 -13
  22. package/dist/assets/icons/Clock.js +26 -11
  23. package/dist/assets/icons/Close.js +26 -11
  24. package/dist/assets/icons/DateTime.js +35 -14
  25. package/dist/assets/icons/DragIndicator.js +26 -11
  26. package/dist/assets/icons/File.js +28 -13
  27. package/dist/assets/icons/Highlight.js +26 -11
  28. package/dist/assets/icons/HighlightOn.js +49 -15
  29. package/dist/assets/icons/Home.js +26 -11
  30. package/dist/assets/icons/Info.js +37 -16
  31. package/dist/assets/icons/Italic.js +26 -11
  32. package/dist/assets/icons/Link.js +26 -11
  33. package/dist/assets/icons/Menu.js +26 -11
  34. package/dist/assets/icons/NumberedList.js +26 -11
  35. package/dist/assets/icons/PointerHorizontal.js +26 -11
  36. package/dist/assets/icons/PointerVertical.js +26 -11
  37. package/dist/assets/icons/Search.js +26 -11
  38. package/dist/assets/icons/Send.js +28 -13
  39. package/dist/assets/icons/Strikethrough.js +26 -11
  40. package/dist/assets/icons/TextColor.js +48 -14
  41. package/dist/assets/icons/Today.js +26 -11
  42. package/dist/assets/icons/Underlined.js +28 -13
  43. package/dist/assets/icons/Upload.js +35 -14
  44. package/dist/assets/icons/Visibility.js +26 -11
  45. package/dist/assets/icons/VisibilityOff.js +26 -11
  46. package/dist/assets/icons/WarningFilled.js +28 -13
  47. package/dist/components/Breadcrumbs/Breadcrumbs.js +207 -56
  48. package/dist/components/Menu/Menu.js +18 -2
  49. package/dist/components/Menu/MenuDesktop.js +41 -7
  50. package/dist/components/Menu/MenuItem.js +32 -9
  51. package/dist/components/Menu/MenuMobile.js +97 -38
  52. package/dist/components/Menu/MenuPopover.js +105 -29
  53. package/dist/components/buttons/IconButton/IconButton.js +40 -8
  54. package/dist/components/buttons/InlineIconButton/InlineIconButton.d.ts +2 -1
  55. package/dist/components/buttons/InlineIconButton/InlineIconButton.js +34 -9
  56. package/dist/components/buttons/PillButton/PillButton.js +55 -17
  57. package/dist/components/buttons/SplitButton/SplitButton.js +103 -18
  58. package/dist/components/buttons/TextButton/TextButton.js +30 -8
  59. package/dist/components/buttons/ToggleButton/ToggleButton.js +28 -8
  60. package/dist/components/buttons/shared/ButtonContent.js +80 -22
  61. package/dist/components/inputs/Checkbox/Checkbox.d.ts +1 -0
  62. package/dist/components/inputs/Checkbox/Checkbox.js +201 -35
  63. package/dist/components/inputs/Checkbox/CheckboxCheckmark.js +24 -10
  64. package/dist/components/inputs/Checkbox/checkbox.cva.d.ts +3 -0
  65. package/dist/components/inputs/Checkbox/checkbox.cva.js +4 -1
  66. package/dist/components/inputs/DateTime/DatePicker/DatePicker.d.ts +11 -5
  67. package/dist/components/inputs/DateTime/DatePicker/DatePicker.js +364 -76
  68. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.d.ts +11 -5
  69. package/dist/components/inputs/DateTime/DateRangePicker/DateRangePicker.js +452 -167
  70. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.d.ts +12 -5
  71. package/dist/components/inputs/DateTime/DateTimePicker/DateTimePicker.js +269 -57
  72. package/dist/components/inputs/DateTime/TimePicker/TimePicker.d.ts +6 -3
  73. package/dist/components/inputs/DateTime/TimePicker/TimePicker.js +605 -130
  74. package/dist/components/inputs/DateTime/shared/Calendar.d.ts +5 -2
  75. package/dist/components/inputs/DateTime/shared/Calendar.js +332 -119
  76. package/dist/components/inputs/DateTime/shared/CalendarCell.d.ts +3 -2
  77. package/dist/components/inputs/DateTime/shared/CalendarCell.js +301 -102
  78. package/dist/components/inputs/DateTime/shared/CalendarGrid.d.ts +3 -2
  79. package/dist/components/inputs/DateTime/shared/CalendarGrid.js +146 -33
  80. package/dist/components/inputs/DateTime/shared/CalendarHeader.js +249 -93
  81. package/dist/components/inputs/DateTime/shared/CalendarSelectHeader.js +318 -137
  82. package/dist/components/inputs/DateTime/shared/DateField.js +311 -112
  83. package/dist/components/inputs/DateTime/shared/DatePickerInput.d.ts +12 -3
  84. package/dist/components/inputs/DateTime/shared/DatePickerInput.js +382 -139
  85. package/dist/components/inputs/DateTime/shared/DateSegmentItem.d.ts +15 -0
  86. package/dist/components/inputs/DateTime/shared/DateSegmentItem.js +96 -11
  87. package/dist/components/inputs/DateTime/shared/DateTimeDialog.js +81 -27
  88. package/dist/components/inputs/DateTime/shared/DateTimeDialogFooter.js +59 -10
  89. package/dist/components/inputs/DateTime/shared/MonthPicker.js +103 -58
  90. package/dist/components/inputs/DateTime/shared/RangeCalendar.js +193 -82
  91. package/dist/components/inputs/DateTime/shared/TimeField.js +27 -8
  92. package/dist/components/inputs/DateTime/shared/TimePickerForm.js +279 -110
  93. package/dist/components/inputs/DateTime/shared/TimePickerInput.d.ts +4 -1
  94. package/dist/components/inputs/DateTime/shared/TimePickerInput.js +210 -65
  95. package/dist/components/inputs/DateTime/shared/YearPicker.js +119 -68
  96. package/dist/components/inputs/DateTime/shared/datePicker.types.d.ts +4 -0
  97. package/dist/components/inputs/DateTime/shared/datePickerInput.cva.d.ts +7 -0
  98. package/dist/components/inputs/DateTime/shared/datePickerInput.cva.js +13 -0
  99. package/dist/components/inputs/DateTime/shared/datePickerTodayIcon.d.ts +14 -0
  100. package/dist/components/inputs/DateTime/shared/datePickerTodayIcon.js +117 -0
  101. package/dist/components/inputs/DateTime/shared/dateSegment.utils.d.ts +2 -0
  102. package/dist/components/inputs/DateTime/shared/dateSegment.utils.spec.d.ts +1 -0
  103. package/dist/components/inputs/DateTime/shared/staticDateTimeSegments.d.ts +39 -0
  104. package/dist/components/inputs/DateTime/shared/staticDateTimeSegments.js +85 -0
  105. package/dist/components/inputs/DateTime/shared/staticDateTimeSegments.spec.d.ts +1 -0
  106. package/dist/components/inputs/File/FileUpload.js +87 -44
  107. package/dist/components/inputs/File/FileUploadContainer.js +15 -7
  108. package/dist/components/inputs/File/InputUpload.js +317 -79
  109. package/dist/components/inputs/File/shared/FileCard.js +104 -41
  110. package/dist/components/inputs/File/shared/FileCardList.js +47 -12
  111. package/dist/components/inputs/File/shared/FileUploadContent.js +175 -44
  112. package/dist/components/inputs/File/shared/FileUploadContentEmpty.js +149 -46
  113. package/dist/components/inputs/File/shared/FileUploadContentError.js +234 -93
  114. package/dist/components/inputs/File/shared/FileUploadContentFilled.js +230 -97
  115. package/dist/components/inputs/File/shared/FileUploadContentLoading.js +199 -55
  116. package/dist/components/inputs/File/shared/InputUploadContent.js +148 -34
  117. package/dist/components/inputs/File/shared/InputUploadFilled.js +50 -9
  118. package/dist/components/inputs/File/shared/ProgressBar.js +48 -9
  119. package/dist/components/inputs/FormField/FormField.d.ts +3 -3
  120. package/dist/components/inputs/FormField/FormField.js +119 -37
  121. package/dist/components/inputs/FormField/FormFieldError.js +25 -5
  122. package/dist/components/inputs/FormField/FormFieldHeader.d.ts +2 -2
  123. package/dist/components/inputs/FormField/FormFieldHeader.js +81 -22
  124. package/dist/components/inputs/FormField/FormFieldHeaderClose.js +31 -7
  125. package/dist/components/inputs/FormField/FormFieldHelper.js +26 -6
  126. package/dist/components/inputs/FormField/FormFieldLabel.d.ts +2 -2
  127. package/dist/components/inputs/FormField/FormFieldLabel.js +40 -9
  128. package/dist/components/inputs/FormField/formFieldHeader.cva.d.ts +6 -0
  129. package/dist/components/inputs/FormField/formFieldHeader.cva.js +11 -0
  130. package/dist/components/inputs/Input/NumberInput/NumberInput.d.ts +5 -2
  131. package/dist/components/inputs/Input/NumberInput/NumberInput.js +447 -97
  132. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeField.d.ts +45 -0
  133. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeField.js +571 -0
  134. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.d.ts +35 -0
  135. package/dist/components/inputs/Input/NumberRangeInput/NumberRangeInput.js +575 -0
  136. package/dist/components/inputs/Input/PasswordInput/PasswordInput.js +48 -9
  137. package/dist/components/inputs/Input/TextArea/TextArea.cva.d.ts +4 -0
  138. package/dist/components/inputs/Input/TextArea/TextArea.cva.js +5 -0
  139. package/dist/components/inputs/Input/TextArea/TextArea.js +305 -90
  140. package/dist/components/inputs/Input/TextInput/TextInput.d.ts +3 -1
  141. package/dist/components/inputs/Input/TextInput/TextInput.js +419 -90
  142. package/dist/components/inputs/Input/shared/InputContent.js +192 -59
  143. package/dist/components/inputs/Input/shared/numberStatic.utils.d.ts +1 -0
  144. package/dist/components/inputs/Input/shared/numberStatic.utils.js +7 -0
  145. package/dist/components/inputs/Inputs/Form.js +40 -11
  146. package/dist/components/inputs/Inputs/InputItem.d.ts +15 -21
  147. package/dist/components/inputs/Inputs/InputItem.js +69 -14
  148. package/dist/components/inputs/Inputs/Inputs.js +37 -11
  149. package/dist/components/inputs/RadioGroup/RadioGroup.d.ts +3 -1
  150. package/dist/components/inputs/RadioGroup/RadioGroup.js +353 -60
  151. package/dist/components/inputs/RadioGroup/radio.cva.d.ts +17 -0
  152. package/dist/components/inputs/RadioGroup/radio.cva.js +42 -1
  153. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.d.ts +6 -2
  154. package/dist/components/inputs/Selection/Autocomplete/Autocomplete.js +213 -22
  155. package/dist/components/inputs/Selection/Autocomplete/QueryAutocomplete.d.ts +3 -18
  156. package/dist/components/inputs/Selection/Autocomplete/QueryAutocomplete.js +34 -8
  157. package/dist/components/inputs/Selection/Autocomplete/queryAutocomplete.types.d.ts +36 -0
  158. package/dist/components/inputs/Selection/Select/QuerySelect.d.ts +14 -0
  159. package/dist/components/inputs/Selection/Select/QuerySelect.js +104 -0
  160. package/dist/components/inputs/Selection/Select/Select.d.ts +7 -3
  161. package/dist/components/inputs/Selection/Select/Select.js +224 -18
  162. package/dist/components/inputs/Selection/shared/SelectBase.d.ts +8 -1
  163. package/dist/components/inputs/Selection/shared/SelectBase.js +69 -18
  164. package/dist/components/inputs/Selection/shared/SelectDesktop.d.ts +1 -1
  165. package/dist/components/inputs/Selection/shared/SelectDesktop.js +393 -138
  166. package/dist/components/inputs/Selection/shared/SelectInput.d.ts +2 -2
  167. package/dist/components/inputs/Selection/shared/SelectInput.js +330 -116
  168. package/dist/components/inputs/Selection/shared/SelectInputTags.js +99 -25
  169. package/dist/components/inputs/Selection/shared/SelectListBox.d.ts +2 -2
  170. package/dist/components/inputs/Selection/shared/SelectListBox.js +164 -52
  171. package/dist/components/inputs/Selection/shared/SelectListBoxItem.js +85 -35
  172. package/dist/components/inputs/Selection/shared/SelectListBoxItemSelectAll.js +69 -16
  173. package/dist/components/inputs/Selection/shared/SelectListBoxLoadingItem.js +70 -21
  174. package/dist/components/inputs/Selection/shared/SelectListBoxSelectionBar.js +58 -9
  175. package/dist/components/inputs/Selection/shared/SelectMobile.d.ts +1 -1
  176. package/dist/components/inputs/Selection/shared/SelectMobile.js +12 -5
  177. package/dist/components/inputs/Selection/shared/StaticSelectTrailingContent.d.ts +9 -0
  178. package/dist/components/inputs/Selection/shared/StaticSelectTrailingContent.js +47 -0
  179. package/dist/components/inputs/Selection/shared/querySelect.utils.d.ts +7 -0
  180. package/dist/components/inputs/Selection/shared/querySelect.utils.js +24 -0
  181. package/dist/components/inputs/Selection/shared/select.context.d.ts +3 -2
  182. package/dist/components/inputs/Selection/shared/select.context.js +67 -36
  183. package/dist/components/inputs/Selection/shared/select.types.d.ts +3 -2
  184. package/dist/components/inputs/Selection/shared/selectDesktop.cva.d.ts +3 -0
  185. package/dist/components/inputs/Selection/shared/selectDesktop.cva.js +5 -0
  186. package/dist/components/inputs/Selection/shared/selectInput.cva.d.ts +5 -0
  187. package/dist/components/inputs/Selection/shared/selectInput.cva.js +5 -0
  188. package/dist/components/inputs/Selection/shared/staticSelect.utils.d.ts +23 -0
  189. package/dist/components/inputs/Selection/shared/staticSelect.utils.js +37 -0
  190. package/dist/components/inputs/Selection/shared/staticSelect.utils.spec.d.ts +1 -0
  191. package/dist/components/inputs/Selection/shared/useSelectItems.js +109 -49
  192. package/dist/components/inputs/Skeleton/InputFrame.d.ts +80 -0
  193. package/dist/components/inputs/Skeleton/InputFrame.js +528 -0
  194. package/dist/components/inputs/Slider/Slider.d.ts +2 -1
  195. package/dist/components/inputs/Slider/Slider.js +265 -75
  196. package/dist/components/inputs/TextEditor/TextEditor.d.ts +1 -0
  197. package/dist/components/inputs/TextEditor/TextEditor.js +447 -98
  198. package/dist/components/inputs/TextEditor/Toolbar/ColorPicker.js +37 -11
  199. package/dist/components/inputs/TextEditor/Toolbar/ColorPickerDropdown.js +102 -30
  200. package/dist/components/inputs/TextEditor/Toolbar/HyperlinkAction.js +194 -45
  201. package/dist/components/inputs/TextEditor/Toolbar/TextAlignSelect.js +88 -28
  202. package/dist/components/inputs/TextEditor/Toolbar/TextColorSelect.js +48 -14
  203. package/dist/components/inputs/TextEditor/Toolbar/TextEditorToolbar.js +66 -19
  204. package/dist/components/inputs/TextEditor/Toolbar/TextHighlightSelect.js +49 -15
  205. package/dist/components/inputs/TextEditor/Toolbar/TextListActions.js +92 -32
  206. package/dist/components/inputs/TextEditor/Toolbar/TextMarksActions.js +126 -54
  207. package/dist/components/inputs/TextEditor/Toolbar/TextStyleSelect.js +141 -38
  208. package/dist/components/inputs/Toggle/Toggle.d.ts +1 -0
  209. package/dist/components/inputs/Toggle/Toggle.js +214 -37
  210. package/dist/components/inputs/Toggle/toggle.cva.d.ts +3 -0
  211. package/dist/components/inputs/Toggle/toggle.cva.js +4 -2
  212. package/dist/components/inputs/shared/CheckContent.d.ts +2 -1
  213. package/dist/components/inputs/shared/CheckContent.js +21 -11
  214. package/dist/components/inputs/shared/InputClear.d.ts +2 -1
  215. package/dist/components/inputs/shared/InputClear.js +88 -12
  216. package/dist/components/inputs/shared/StaticInput.d.ts +38 -0
  217. package/dist/components/inputs/shared/TooltipWrapper.js +50 -11
  218. package/dist/components/inputs/shared/input.cva.d.ts +10 -0
  219. package/dist/components/inputs/shared/input.cva.js +54 -14
  220. package/dist/components/inputs/shared/label.cva.js +2 -2
  221. package/dist/components/inputs/shared/tooltipWrapper.cva.d.ts +4 -0
  222. package/dist/components/inputs/shared/tooltipWrapper.cva.js +5 -0
  223. package/dist/components/inputs/shared/useStaticInputHandoff.d.ts +14 -0
  224. package/dist/components/inputs/shared/useStaticInputHandoff.js +100 -0
  225. package/dist/components/navigation/Accordion/Accordion.js +69 -22
  226. package/dist/components/navigation/Accordion/AccordionItem.js +86 -41
  227. package/dist/components/navigation/Stepper/Stepper.js +67 -22
  228. package/dist/components/navigation/Stepper/StepperItem.js +104 -31
  229. package/dist/components/navigation/Stepper/StepperSeparator.js +23 -5
  230. package/dist/components/overlays/ActionModal/ActionModal.js +169 -35
  231. package/dist/components/overlays/BottomSheet/BottomSheet.js +96 -23
  232. package/dist/components/overlays/BottomSheet/BottomSheetHeader.js +48 -8
  233. package/dist/components/overlays/Drawer/Drawer.js +62 -20
  234. package/dist/components/overlays/ResponsivePopover/ResponsivePopover.js +83 -27
  235. package/dist/components/overlays/Tooltip/Tooltip.js +137 -28
  236. package/dist/components/overlays/Tooltip/TooltipEllipsis.js +37 -12
  237. package/dist/components/segment/Segment.js +218 -57
  238. package/dist/components/segment/SegmentItem.js +67 -10
  239. package/dist/components/shared/pagination/Pagination.js +108 -22
  240. package/dist/components/shared/pagination/PaginationList.js +167 -64
  241. package/dist/components/status/Alert/Alert.js +97 -30
  242. package/dist/components/status/Loader/Loader.js +77 -22
  243. package/dist/components/status/Toast/Toast.js +21 -13
  244. package/dist/components/status/Toast/useToast.js +62 -57
  245. package/dist/components/table/ColumnConfig.js +158 -54
  246. package/dist/components/table/InfiniteTable.js +67 -16
  247. package/dist/components/table/PaginatedTable.js +84 -18
  248. package/dist/components/table/Table.js +28 -27
  249. package/dist/components/text/Link/Link.js +19 -7
  250. package/dist/components/text/Typography/Typography.js +23 -8
  251. package/dist/config/confirmation.context.js +1 -1
  252. package/dist/config/link.context.js +23 -9
  253. package/dist/config/router.context.js +42 -16
  254. package/dist/config/theme.context.js +98 -45
  255. package/dist/config/uiConfig.context.d.ts +19 -7
  256. package/dist/config/uiConfig.context.js +66 -14
  257. package/dist/config/uiStyle.context.d.ts +27 -4
  258. package/dist/config/uiStyle.context.js +15 -5
  259. package/dist/helpers/dynamicInputs.d.ts +5 -5
  260. package/dist/helpers/dynamicInputs.js +3 -0
  261. package/dist/hooks/useBreakpoint.js +16 -3
  262. package/dist/hooks/useDebounceCallback.js +51 -17
  263. package/dist/hooks/useFilters.js +125 -64
  264. package/dist/hooks/useForm.js +42 -8
  265. package/dist/hooks/useFormAutosave.js +101 -30
  266. package/dist/hooks/useIntersectionObserver.d.ts +1 -1
  267. package/dist/hooks/useIntersectionObserver.js +91 -24
  268. package/dist/hooks/useLocalStorage.js +43 -10
  269. package/dist/hooks/useLongPressRepeat.js +55 -20
  270. package/dist/hooks/usePagination.js +49 -19
  271. package/dist/hooks/useQueryAutocomplete.d.ts +14 -0
  272. package/dist/hooks/useQueryAutocomplete.js +57 -0
  273. package/dist/hooks/useScrollableListBox.js +37 -16
  274. package/dist/hooks/useSorting.js +69 -28
  275. package/dist/hooks/useStateAndRef.js +21 -7
  276. package/dist/hooks/useTableColumnConfig.js +124 -31
  277. package/dist/hooks/useTranslationMemo.js +25 -5
  278. package/dist/index.d.ts +7 -0
  279. package/dist/index.js +4 -2
  280. package/dist/tw-ui-plugin.js +8 -1
  281. package/dist/utils/date-time.utils.d.ts +38 -10
  282. package/dist/utils/date-time.utils.js +134 -22
  283. package/dist/utils/query.utils.d.ts +4 -0
  284. package/dist/utils/query.utils.js +8 -0
  285. package/package.json +1 -1
@@ -13,8 +13,8 @@ import { useRef } from "react";
13
13
  import { DialogTrigger } from "react-aria-components";
14
14
  import { useLabel } from "react-aria";
15
15
  //#region src/components/inputs/Selection/shared/SelectMobile.tsx
16
- var SelectMobile = ({ ref, error, showSelectionContent, inputClassName, containerClassName, customTrigger, onBlur, ...props }) => {
17
- const { label, tooltipText, helperText, isRequired, rightContent, isHeaderHidden, headerClassName, errorClassName, placeholder, variant, isDisabled, className, hideLabel, hideDropdownIcon, hideSearchIcon, isSearchable, isClearable, as, size, collapseAfter, selectedTagsType } = props;
16
+ var SelectMobile = ({ ref, error, showSelectionContent, inputClassName, containerClassName, leadingContent, trailingContent, customTrigger, onBlur, onMouseEnter, onFocusCapture, ...props }) => {
17
+ const { label, tooltipText, helperText, isDirty, isRequired, rightContent, isHeaderHidden, headerClassName, errorClassName, placeholder, variant, isDisabled, className, hideLabel, hideDropdownIcon, hideSearchIcon, isSearchable, isClearable, as, size, collapseAfter, selectedTagsType } = props;
18
18
  const formFieldProps = {
19
19
  error,
20
20
  label,
@@ -56,7 +56,9 @@ var SelectMobile = ({ ref, error, showSelectionContent, inputClassName, containe
56
56
  ...formFieldProps,
57
57
  as,
58
58
  labelProps,
59
- className: clsx("w-full", containerClassName),
59
+ className: clsx("group w-full", containerClassName),
60
+ onMouseEnter,
61
+ onFocusCapture,
60
62
  children: /* @__PURE__ */ jsxs(DialogTrigger, {
61
63
  ...dialogTriggerProps,
62
64
  children: [customTrigger ? /* @__PURE__ */ jsx("div", {
@@ -79,8 +81,12 @@ var SelectMobile = ({ ref, error, showSelectionContent, inputClassName, containe
79
81
  onBlur: void 0,
80
82
  fieldProps,
81
83
  headerProps,
84
+ leadingContent,
85
+ trailingContent,
82
86
  collapseAfter,
83
- selectedTagsType
87
+ selectedTagsType,
88
+ isRequired,
89
+ isDirty
84
90
  }), /* @__PURE__ */ jsx(BottomSheet, {
85
91
  isOpen,
86
92
  onOpenChange: handleOpenChange,
@@ -103,7 +109,8 @@ var SelectMobile = ({ ref, error, showSelectionContent, inputClassName, containe
103
109
  inputClassName,
104
110
  className: "mb-list-height-title-bottom px-list-side-title",
105
111
  leadingIcon: !hideSearchIcon ? /* @__PURE__ */ jsx(SearchIcon, { className: "size-6" }) : void 0,
106
- size: "default"
112
+ size: "default",
113
+ isClearable
107
114
  }), /* @__PURE__ */ jsx(SelectListBox, {
108
115
  ...props,
109
116
  autoFocus: !isSearchable,
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { InputVariantProps } from '../../shared/input.cva';
3
+ interface StaticSelectTrailingContentProps extends Pick<InputVariantProps, "size"> {
4
+ trailingContent?: ReactNode;
5
+ hideDropdownIcon?: boolean;
6
+ isDisabled?: boolean;
7
+ }
8
+ export declare const StaticSelectTrailingContent: ({ trailingContent, hideDropdownIcon, isDisabled, size, }: StaticSelectTrailingContentProps) => import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
@@ -0,0 +1,47 @@
1
+ import { ArrowDropDownIcon } from "../../../../assets/icons/ArrowDropDown.js";
2
+ import { UIStyle } from "../../../../config/uiStyle.context.js";
3
+ import { inputSize } from "../../shared/input.cva.js";
4
+ import { c } from "react/compiler-runtime";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ import { clsx } from "clsx";
7
+ //#region src/components/inputs/Selection/shared/StaticSelectTrailingContent.tsx
8
+ var StaticSelectTrailingContent = (t0) => {
9
+ const $ = c(10);
10
+ const { trailingContent, hideDropdownIcon, isDisabled, size } = t0;
11
+ const inputSizeCva = UIStyle.useCva("input.sizeCva", inputSize);
12
+ if (!trailingContent && hideDropdownIcon) return null;
13
+ let t1;
14
+ if ($[0] !== trailingContent) {
15
+ t1 = trailingContent && /* @__PURE__ */ jsx("div", {
16
+ className: "flex shrink-0 items-center",
17
+ children: trailingContent
18
+ });
19
+ $[0] = trailingContent;
20
+ $[1] = t1;
21
+ } else t1 = $[1];
22
+ let t2;
23
+ if ($[2] !== hideDropdownIcon || $[3] !== inputSizeCva || $[4] !== isDisabled || $[5] !== size) {
24
+ t2 = !hideDropdownIcon ? /* @__PURE__ */ jsx("button", {
25
+ type: "button",
26
+ tabIndex: -1,
27
+ className: clsx("self-stretch border-0! pl-1-5 outline-none", inputSizeCva({ size })),
28
+ "aria-hidden": "true",
29
+ children: /* @__PURE__ */ jsx(ArrowDropDownIcon, { className: clsx("size-6 shrink-0", isDisabled ? "text-interactive-text-secondary-disabled" : "text-interactive-text-secondary-idle") })
30
+ }) : void 0;
31
+ $[2] = hideDropdownIcon;
32
+ $[3] = inputSizeCva;
33
+ $[4] = isDisabled;
34
+ $[5] = size;
35
+ $[6] = t2;
36
+ } else t2 = $[6];
37
+ let t3;
38
+ if ($[7] !== t1 || $[8] !== t2) {
39
+ t3 = /* @__PURE__ */ jsxs(Fragment, { children: [t1, t2] });
40
+ $[7] = t1;
41
+ $[8] = t2;
42
+ $[9] = t3;
43
+ } else t3 = $[9];
44
+ return t3;
45
+ };
46
+ //#endregion
47
+ export { StaticSelectTrailingContent };
@@ -0,0 +1,7 @@
1
+ import { UseInfiniteQueryResult, UseQueryResult } from '@tanstack/react-query';
2
+ import { Key } from 'react-aria-components';
3
+ import { SelectItem } from './select.types';
4
+ export type QueryFn<TData = any> = (...args: any[]) => UseQueryResult<TData> | UseInfiniteQueryResult<TData>;
5
+ export type QueryDataType<TQueryFn extends QueryFn> = Exclude<ReturnType<TQueryFn>["data"], undefined>;
6
+ export declare const isInitialSelectionLabelMissing: <TInitialSelectItem>(initialSelection: TInitialSelectItem | TInitialSelectItem[] | null | undefined, mapInitialToSelectItem?: (item: TInitialSelectItem) => SelectItem) => boolean;
7
+ export declare const getQueryItems: <TQueryFn extends QueryFn, TKey extends Key = Key>(data: QueryDataType<TQueryFn> | undefined, queryMap?: (data: QueryDataType<TQueryFn>) => SelectItem<TKey>[]) => SelectItem<TKey>[];
@@ -0,0 +1,24 @@
1
+ //#region src/components/inputs/Selection/shared/querySelect.utils.ts
2
+ var getDefaultInitialSelectionLabel = (initialSelection) => {
3
+ if (typeof initialSelection !== "object" || initialSelection === null) return "";
4
+ if ("label" in initialSelection && typeof initialSelection.label === "string") return initialSelection.label;
5
+ if ("name" in initialSelection && typeof initialSelection.name === "string") return initialSelection.name;
6
+ return "";
7
+ };
8
+ var isInitialSelectionLabelMissing = (initialSelection, mapInitialToSelectItem) => {
9
+ return (Array.isArray(initialSelection) ? initialSelection : initialSelection != null ? [initialSelection] : []).some((item) => {
10
+ return (mapInitialToSelectItem?.(item).label ?? getDefaultInitialSelectionLabel(item)) === "";
11
+ });
12
+ };
13
+ var getQueryItems = (data, queryMap) => {
14
+ if (!data) return [];
15
+ if (queryMap) return queryMap(data);
16
+ if (Array.isArray(data)) return data;
17
+ if (typeof data === "object" && data !== null) {
18
+ if ("items" in data && Array.isArray(data.items)) return data.items;
19
+ if ("pages" in data && Array.isArray(data.pages)) return data.pages.flatMap((page) => page && typeof page === "object" && "items" in page && Array.isArray(page.items) ? page.items : []);
20
+ }
21
+ return [];
22
+ };
23
+ //#endregion
24
+ export { getQueryItems, isInitialSelectionLabelMissing };
@@ -17,14 +17,15 @@ export declare namespace SelectContext {
17
17
  onClear: () => void;
18
18
  onSelectAll: () => void;
19
19
  onRemove: (val: Key) => void;
20
+ onBlur: () => void;
20
21
  listItems: ExtendedSelectItem[];
21
22
  selectableListItems: SelectItem[];
22
23
  selectedItems: SelectItem[];
23
24
  selectedIds: Key[];
24
25
  isMultiple: boolean;
25
26
  } & Pick<SelectBaseProps, "onInputChange" | "isLoading" | "hasLoadMore">;
26
- export type ProviderProps = GroupedSelectProps & Pick<SelectBaseProps, "items" | "onInputChange" | "onSearchChange" | "showSelectAllOption" | "showNewItemOption" | "newItemMinLength" | "onNewItemOption" | "isLoading" | "hasLoadMore" | "mapInitialToSelectItem" | "isSearchable" | "isClientSearchDisabled">;
27
- export const Provider: ({ items, onInputChange, onSearchChange, showSelectAllOption, showNewItemOption, newItemMinLength, onNewItemOption, isLoading, hasLoadMore, isClientSearchDisabled, children, mapInitialToSelectItem, ...props }: PropsWithChildren<ProviderProps>) => import("react/jsx-runtime").JSX.Element;
27
+ export type ProviderProps = GroupedSelectProps & Pick<SelectBaseProps, "items" | "onInputChange" | "onSearchChange" | "showSelectAllOption" | "showNewItemOption" | "newItemMinLength" | "onNewItemOption" | "isLoading" | "hasLoadMore" | "mapInitialToSelectItem" | "isSearchable" | "isClientSearchDisabled" | "ignoreInputValueFiltering" | "fireBlurOnChange" | "onBlur">;
28
+ export const Provider: ({ items, onInputChange, onSearchChange, showSelectAllOption, showNewItemOption, newItemMinLength, onNewItemOption, isLoading, hasLoadMore, isClientSearchDisabled, ignoreInputValueFiltering, fireBlurOnChange, onBlur: fieldOnBlur, children, mapInitialToSelectItem, ...props }: PropsWithChildren<ProviderProps>) => import("react/jsx-runtime").JSX.Element;
28
29
  export const useSelect: () => Type;
29
30
  export {};
30
31
  }
@@ -1,5 +1,5 @@
1
- import { useSelectItems } from "./useSelectItems.js";
2
1
  import { useDebounceCallback } from "../../../../hooks/useDebounceCallback.js";
2
+ import { useSelectItems } from "./useSelectItems.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from "react";
5
5
  //#region src/components/inputs/Selection/shared/select.context.tsx
@@ -10,7 +10,7 @@ var SelectContext;
10
10
  id: item.id,
11
11
  label: item.label ?? item.name ?? ""
12
12
  });
13
- _SelectContext.Provider = ({ items, onInputChange, onSearchChange, showSelectAllOption, showNewItemOption, newItemMinLength, onNewItemOption, isLoading, hasLoadMore, isClientSearchDisabled, children, mapInitialToSelectItem = defaultMapInitialToSelectItem, ...props }) => {
13
+ _SelectContext.Provider = ({ items, onInputChange, onSearchChange, showSelectAllOption, showNewItemOption, newItemMinLength, onNewItemOption, isLoading, hasLoadMore, isClientSearchDisabled, ignoreInputValueFiltering, fireBlurOnChange, onBlur: fieldOnBlur, children, mapInitialToSelectItem = defaultMapInitialToSelectItem, ...props }) => {
14
14
  const isMultiple = props.selectionMode === "multiple";
15
15
  const initialSelectedItems = useMemo(() => {
16
16
  if (!props.initialSelection) return null;
@@ -42,24 +42,31 @@ var SelectContext;
42
42
  newItemMinLength,
43
43
  isLoading,
44
44
  hasLoadMore,
45
- isClientSearchDisabled
45
+ isClientSearchDisabled: ignoreInputValueFiltering ?? isClientSearchDisabled
46
46
  });
47
- const selectedItems = useMemo(() => allItems.filter(({ id }) => Array.isArray(fieldState.value) ? fieldState.value.includes(id) : id === fieldState.value), [allItems, fieldState.value]);
48
- const selectedIds = useMemo(() => selectedItems.map(({ id }) => id), [selectedItems]);
49
- const getItem = useCallback((value) => allItems.find((item) => item && item.id === value) ?? null, [allItems]);
50
- const updateValue = useCallback((value) => {
51
- if (Array.isArray(value)) valueRef.current = value.map((id) => getItem(id)).filter((item) => item !== null);
52
- else valueRef.current = getItem(value);
53
- }, [getItem]);
54
- const getValueIds = () => Array.isArray(valueRef.current) ? valueRef.current.map(({ id }) => id) : valueRef.current?.id ?? null;
47
+ const selectedItems = useMemo(() => {
48
+ const getItem = (id) => allItems.find((item) => item.id === id) ?? null;
49
+ if (Array.isArray(fieldState.value)) return fieldState.value.map((id_0) => getItem(id_0)).filter((item_0) => item_0 !== null);
50
+ const selectedItem = fieldState.value != null ? getItem(fieldState.value) : null;
51
+ return selectedItem ? [selectedItem] : [];
52
+ }, [allItems, fieldState.value]);
53
+ const selectedIds = useMemo(() => selectedItems.map(({ id: id_1 }) => id_1), [selectedItems]);
54
+ const getItem_0 = useCallback((value) => allItems.find((item_1) => item_1 && item_1.id === value) ?? null, [allItems]);
55
+ const updateValue = useCallback((value_0) => {
56
+ if (Array.isArray(value_0)) valueRef.current = value_0.map((id_2) => getItem_0(id_2)).filter((item_2) => item_2 !== null);
57
+ else valueRef.current = getItem_0(value_0);
58
+ }, [getItem_0]);
59
+ const getValueIds = () => Array.isArray(valueRef.current) ? valueRef.current.map(({ id: id_3 }) => id_3) : valueRef.current?.id ?? null;
55
60
  const emitStateChanges = useCallback((changes, skipSelectionChange) => {
56
- if (JSON.stringify(changes.value) !== JSON.stringify(getValueIds())) {
61
+ const valueChanged = JSON.stringify(changes.value) !== JSON.stringify(getValueIds());
62
+ if (valueChanged) {
57
63
  updateValue(changes.value);
58
64
  if (!skipSelectionChange) if (isMultiple) props.onChange?.(changes.value);
59
65
  else props.onChange?.(changes.value);
60
66
  }
61
67
  if (changes.inputValue !== fieldState.inputValue) onInputChange?.(changes.inputValue);
62
68
  if (changes.searchValue !== fieldState.searchValue) onSearchChangeDebounced?.(changes.searchValue);
69
+ return valueChanged;
63
70
  }, [
64
71
  fieldState,
65
72
  isMultiple,
@@ -68,10 +75,13 @@ var SelectContext;
68
75
  onSearchChangeDebounced,
69
76
  updateValue
70
77
  ]);
71
- const syncFieldState = (value) => {
78
+ const triggerBlurOnChange = useCallback(() => {
79
+ if (fireBlurOnChange) fieldOnBlur?.({});
80
+ }, [fireBlurOnChange, fieldOnBlur]);
81
+ const syncFieldState = (value_1) => {
72
82
  const newFieldState = {
73
- value,
74
- inputValue: isMultiple || Array.isArray(value) ? fieldState.inputValue : getItem(value)?.label ?? "",
83
+ value: value_1,
84
+ inputValue: isMultiple || Array.isArray(value_1) ? fieldState.inputValue : getItem_0(value_1)?.label ?? "",
75
85
  searchValue: ""
76
86
  };
77
87
  setFieldState(newFieldState);
@@ -79,21 +89,21 @@ var SelectContext;
79
89
  if (!isMultiple) setShowAll(true);
80
90
  };
81
91
  useEffect(() => {
82
- const value = props.value ?? null;
83
- if (JSON.stringify(value) !== JSON.stringify(fieldState.value)) syncFieldState(value);
84
- else updateValue(value);
92
+ const value_2 = props.value ?? null;
93
+ if (JSON.stringify(value_2) !== JSON.stringify(fieldState.value)) syncFieldState(value_2);
94
+ else updateValue(value_2);
85
95
  }, [props.value]);
86
96
  useEffect(() => {
87
- if (!isMultiple && fieldState.value && fieldState.inputValue === "" && getItem(fieldState.value)?.label) syncFieldState(fieldState.value);
97
+ if (!isMultiple && props.value !== null && props.value !== void 0 && fieldState.value !== null && fieldState.value !== void 0 && fieldState.inputValue === "" && getItem_0(fieldState.value)?.label) syncFieldState(fieldState.value);
88
98
  }, [allListItems]);
89
99
  const handleInputChange = useCallback((inputValue) => {
90
- const newFieldState = {
100
+ const newFieldState_0 = {
91
101
  value: isMultiple || inputValue !== "" ? fieldState.value : null,
92
102
  inputValue,
93
103
  searchValue: inputValue
94
104
  };
95
- setFieldState(newFieldState);
96
- emitStateChanges(newFieldState);
105
+ setFieldState(newFieldState_0);
106
+ emitStateChanges(newFieldState_0);
97
107
  setShowAll(false);
98
108
  if (!isOpen && inputValue !== "" && props.isSearchable) setIsOpen(true);
99
109
  }, [
@@ -101,16 +111,16 @@ var SelectContext;
101
111
  fieldState.value,
102
112
  isMultiple
103
113
  ]);
104
- const onChange = useCallback((value) => {
105
- if (value === "new-item-id") onNewItemOption?.(fieldState.inputValue);
114
+ const onChange = useCallback((value_3) => {
115
+ if (value_3 === "new-item-id") onNewItemOption?.(fieldState.inputValue);
106
116
  else {
107
- const newFieldState = {
108
- value,
109
- inputValue: isMultiple || Array.isArray(value) ? "" : getItem(value)?.label ?? "",
117
+ const newFieldState_1 = {
118
+ value: value_3,
119
+ inputValue: isMultiple || Array.isArray(value_3) ? "" : getItem_0(value_3)?.label ?? "",
110
120
  searchValue: ""
111
121
  };
112
- setFieldState(newFieldState);
113
- emitStateChanges(newFieldState);
122
+ setFieldState(newFieldState_1);
123
+ if (emitStateChanges(newFieldState_1)) triggerBlurOnChange();
114
124
  }
115
125
  if (!isMultiple) {
116
126
  setIsOpen(false);
@@ -120,8 +130,9 @@ var SelectContext;
120
130
  emitStateChanges,
121
131
  onNewItemOption,
122
132
  fieldState.inputValue,
123
- getItem,
124
- isMultiple
133
+ getItem_0,
134
+ isMultiple,
135
+ triggerBlurOnChange
125
136
  ]);
126
137
  const onClear = useCallback(() => {
127
138
  if (!valueRef.current || Array.isArray(valueRef.current) && valueRef.current.length === 0) {
@@ -135,16 +146,34 @@ var SelectContext;
135
146
  else onChange(null);
136
147
  }, [isMultiple, onChange]);
137
148
  const onSelectAll = useCallback(() => {
138
- onChange(selectableListItems.map(({ id }) => id));
149
+ onChange(selectableListItems.map(({ id: id_4 }) => id_4));
139
150
  }, [selectableListItems, onChange]);
140
- const onRemove = useCallback((value) => {
141
- if (isMultiple && Array.isArray(fieldState.value)) onChange(fieldState.value.filter((id) => id !== value));
151
+ const onRemove = useCallback((value_4) => {
152
+ if (isMultiple && Array.isArray(fieldState.value)) onChange(fieldState.value.filter((id_5) => id_5 !== value_4));
142
153
  }, [
143
154
  isMultiple,
144
155
  fieldState.value,
145
156
  onChange
146
157
  ]);
147
- const value = useMemo(() => ({
158
+ const onBlur = useCallback(() => {
159
+ if (props.isSearchable && isMultiple && fieldState.searchValue !== "") {
160
+ const newFieldState_2 = {
161
+ ...fieldState,
162
+ inputValue: "",
163
+ searchValue: ""
164
+ };
165
+ setFieldState(newFieldState_2);
166
+ emitStateChanges(newFieldState_2);
167
+ setShowAll(true);
168
+ }
169
+ fieldOnBlur?.({});
170
+ }, [
171
+ props.isSearchable,
172
+ isMultiple,
173
+ fieldState,
174
+ fieldOnBlur
175
+ ]);
176
+ const value_5 = useMemo(() => ({
148
177
  fieldState,
149
178
  isOpen,
150
179
  setIsOpen,
@@ -154,6 +183,7 @@ var SelectContext;
154
183
  onClear,
155
184
  onSelectAll,
156
185
  onRemove,
186
+ onBlur,
157
187
  listItems,
158
188
  selectableListItems,
159
189
  selectedItems,
@@ -171,6 +201,7 @@ var SelectContext;
171
201
  onClear,
172
202
  onSelectAll,
173
203
  onRemove,
204
+ onBlur,
174
205
  listItems,
175
206
  selectableListItems,
176
207
  selectedIds,
@@ -180,7 +211,7 @@ var SelectContext;
180
211
  hasLoadMore
181
212
  ]);
182
213
  return /* @__PURE__ */ jsx(Context.Provider, {
183
- value,
214
+ value: value_5,
184
215
  children
185
216
  });
186
217
  };
@@ -1,11 +1,11 @@
1
- import { ReactElement } from 'react';
1
+ import { ReactElement, ReactNode } from 'react';
2
2
  import { Key } from 'react-aria-components';
3
3
  import { FieldValues } from 'react-hook-form';
4
4
  import { ControlProps } from '../../shared/form.types';
5
5
  export interface SelectItem<TKey extends Key = Key> {
6
6
  id: TKey;
7
7
  label: string;
8
- content?: string | ReactElement;
8
+ content?: string | ReactNode;
9
9
  isDisabled?: boolean;
10
10
  }
11
11
  export interface ExtendedSelectItem<TKey extends Key = Key> extends SelectItem<TKey> {
@@ -54,6 +54,7 @@ export interface SelectAsyncProps {
54
54
  onLoadMore?: () => void;
55
55
  }
56
56
  export interface SelectVirtualizationProps {
57
+ totalItems?: number;
57
58
  virtualizerOptions?: {
58
59
  rowHeight?: number;
59
60
  estimatedRowHeight?: number;
@@ -0,0 +1,3 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ export declare const selectPopoverCva: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
3
+ export type SelectPopoverCva = VariantProps<typeof selectPopoverCva>;
@@ -0,0 +1,5 @@
1
+ import { cva } from "class-variance-authority";
2
+ //#region src/components/inputs/Selection/shared/selectDesktop.cva.ts
3
+ var selectPopoverCva = cva("my-4 outline-none");
4
+ //#endregion
5
+ export { selectPopoverCva };
@@ -0,0 +1,5 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ export declare const selectInputTagsContentWrapperCva: (props?: ({
3
+ isSearchable?: boolean | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ export type SelectInputTagsContentWrapperCva = VariantProps<typeof selectInputTagsContentWrapperCva>;
@@ -0,0 +1,5 @@
1
+ import { cva } from "class-variance-authority";
2
+ //#region src/components/inputs/Selection/shared/selectInput.cva.ts
3
+ var selectInputTagsContentWrapperCva = cva("flex flex-1 flex-wrap gap-input-gap-input-text-to-elements truncate", { variants: { isSearchable: { false: "pointer-events-none z-1" } } });
4
+ //#endregion
5
+ export { selectInputTagsContentWrapperCva };
@@ -0,0 +1,23 @@
1
+ import { ReactNode } from 'react';
2
+ import { Key } from 'react-aria-components';
3
+ import { SelectBaseProps } from './SelectBase';
4
+ import { DefaultInitialSelectItem, SelectItem } from './select.types';
5
+ interface GetStaticSelectValueOptions<TKey extends Key = Key, TInitialSelectItem = DefaultInitialSelectItem<TKey>> {
6
+ items: SelectItem<TKey>[];
7
+ value: TKey | TKey[] | null | undefined;
8
+ selectionMode: SelectBaseProps<TKey>["selectionMode"];
9
+ initialSelection?: TInitialSelectItem | TInitialSelectItem[] | null;
10
+ mapInitialToSelectItem?: (item: TInitialSelectItem) => SelectItem<TKey>;
11
+ showSelectionContent?: boolean;
12
+ isDisabled?: boolean;
13
+ collapseAfter?: SelectBaseProps<TKey>["collapseAfter"];
14
+ selectedTagsType?: SelectBaseProps<TKey>["selectedTagsType"];
15
+ }
16
+ interface StaticSelectValueResult<TKey extends Key = Key> {
17
+ selectedItem: SelectItem<TKey> | null;
18
+ selectedItems: SelectItem<TKey>[];
19
+ displayValue: ReactNode;
20
+ isEmpty: boolean;
21
+ }
22
+ export declare const getStaticSelectValue: <TKey extends Key = Key, TInitialSelectItem = DefaultInitialSelectItem<TKey>>({ items, value, selectionMode, initialSelection, mapInitialToSelectItem, showSelectionContent, isDisabled, collapseAfter, selectedTagsType, }: GetStaticSelectValueOptions<TKey, TInitialSelectItem>) => StaticSelectValueResult<TKey>;
23
+ export {};
@@ -0,0 +1,37 @@
1
+ import { SelectInputTags } from "./SelectInputTags.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/inputs/Selection/shared/staticSelect.utils.tsx
4
+ var getStaticSelectValue = ({ items, value, selectionMode, initialSelection, mapInitialToSelectItem = ((item) => ({
5
+ id: item.id,
6
+ label: item.label ?? item.name ?? ""
7
+ })), showSelectionContent, isDisabled, collapseAfter, selectedTagsType }) => {
8
+ const initialSelectedItems = initialSelection ? (Array.isArray(initialSelection) ? initialSelection : [initialSelection]).map((item) => mapInitialToSelectItem(item)) : [];
9
+ const allItemsMap = /* @__PURE__ */ new Map();
10
+ [...initialSelectedItems, ...items].forEach((item) => allItemsMap.set(item.id, item));
11
+ const getItem = (id) => allItemsMap.get(id) ?? null;
12
+ const selectedItems = Array.isArray(value) ? value.map((id) => getItem(id)).filter((item) => item != null) : [];
13
+ const selectedItem = !Array.isArray(value) && value != null ? getItem(value) : null;
14
+ if (selectionMode === "multiple") return {
15
+ selectedItem,
16
+ selectedItems,
17
+ displayValue: selectedItems.length > 0 ? /* @__PURE__ */ jsx(SelectInputTags, {
18
+ selectedItems,
19
+ isDisabled,
20
+ collapseAfter,
21
+ selectedTagsType,
22
+ onRemove: () => void 0
23
+ }) : "",
24
+ isEmpty: selectedItems.length === 0
25
+ };
26
+ return {
27
+ selectedItem,
28
+ selectedItems,
29
+ displayValue: selectedItem != null ? showSelectionContent && selectedItem.content ? selectedItem.content : /* @__PURE__ */ jsx("div", {
30
+ className: "min-w-0 flex-1 truncate",
31
+ children: selectedItem.label
32
+ }) : "",
33
+ isEmpty: selectedItem == null
34
+ };
35
+ };
36
+ //#endregion
37
+ export { getStaticSelectValue };
@@ -1,4 +1,4 @@
1
- import { useMemo } from "react";
1
+ import { c } from "react/compiler-runtime";
2
2
  import { useFilter } from "react-aria-components";
3
3
  //#region src/components/inputs/Selection/shared/useSelectItems.tsx
4
4
  var SelectAllItemId = "all-item-id";
@@ -24,61 +24,121 @@ var ReservedItemIds = [
24
24
  NewItemId,
25
25
  LoadingItemId
26
26
  ];
27
- function useSelectItems({ initialSelectedItems, selectedItems, cachedItems, inputValue, showAll, isMultiple, showSelectAllOption, showNewItemOption, newItemMinLength = 3, isLoading, hasLoadMore, isClientSearchDisabled }) {
28
- const { contains } = useFilter({ sensitivity: "base" });
29
- const allListItems = useMemo(() => {
30
- const showSelectAllItem = isMultiple && showSelectAllOption && inputValue.length === 0 && !hasLoadMore;
31
- const showNewItem = showNewItemOption && inputValue.length >= newItemMinLength && !cachedItems.find((item) => contains(item.label, inputValue));
32
- const showLoadingItem = isLoading || hasLoadMore;
33
- return [
34
- ...showSelectAllItem ? [SelectAllItem(inputValue)] : [],
27
+ function useSelectItems(t0) {
28
+ const $ = c(37);
29
+ const { initialSelectedItems, selectedItems, cachedItems, inputValue, showAll, isMultiple, showSelectAllOption, showNewItemOption, newItemMinLength: t1, isLoading, hasLoadMore, isClientSearchDisabled } = t0;
30
+ const newItemMinLength = t1 === void 0 ? 3 : t1;
31
+ let t2;
32
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
33
+ t2 = { sensitivity: "base" };
34
+ $[0] = t2;
35
+ } else t2 = $[0];
36
+ const { contains } = useFilter(t2);
37
+ const showSelectAllItem = isMultiple && showSelectAllOption && inputValue.length === 0 && !hasLoadMore;
38
+ let t3;
39
+ if ($[1] !== cachedItems || $[2] !== contains || $[3] !== inputValue || $[4] !== newItemMinLength || $[5] !== showNewItemOption) {
40
+ t3 = showNewItemOption && inputValue.length >= newItemMinLength && !cachedItems.find((item) => contains(item.label, inputValue));
41
+ $[1] = cachedItems;
42
+ $[2] = contains;
43
+ $[3] = inputValue;
44
+ $[4] = newItemMinLength;
45
+ $[5] = showNewItemOption;
46
+ $[6] = t3;
47
+ } else t3 = $[6];
48
+ const showNewItem = t3;
49
+ const showLoadingItem = isLoading || hasLoadMore;
50
+ let t4;
51
+ if ($[7] !== inputValue || $[8] !== showSelectAllItem) {
52
+ t4 = showSelectAllItem ? [SelectAllItem(inputValue)] : [];
53
+ $[7] = inputValue;
54
+ $[8] = showSelectAllItem;
55
+ $[9] = t4;
56
+ } else t4 = $[9];
57
+ let t5;
58
+ if ($[10] !== inputValue || $[11] !== showNewItem) {
59
+ t5 = showNewItem ? [NewItem(inputValue)] : [];
60
+ $[10] = inputValue;
61
+ $[11] = showNewItem;
62
+ $[12] = t5;
63
+ } else t5 = $[12];
64
+ let t6;
65
+ if ($[13] !== inputValue || $[14] !== showLoadingItem) {
66
+ t6 = showLoadingItem ? [LoadingItem(inputValue)] : [];
67
+ $[13] = inputValue;
68
+ $[14] = showLoadingItem;
69
+ $[15] = t6;
70
+ } else t6 = $[15];
71
+ let t7;
72
+ if ($[16] !== cachedItems || $[17] !== t4 || $[18] !== t5 || $[19] !== t6) {
73
+ t7 = [
74
+ ...t4,
35
75
  ...cachedItems,
36
- ...showNewItem ? [NewItem(inputValue)] : [],
37
- ...showLoadingItem ? [LoadingItem(inputValue)] : []
76
+ ...t5,
77
+ ...t6
38
78
  ];
39
- }, [
40
- isMultiple,
41
- showNewItemOption,
42
- inputValue,
43
- newItemMinLength,
44
- cachedItems,
45
- contains,
46
- isLoading,
47
- hasLoadMore,
48
- showSelectAllOption
49
- ]);
50
- const allItems = useMemo(() => {
79
+ $[16] = cachedItems;
80
+ $[17] = t4;
81
+ $[18] = t5;
82
+ $[19] = t6;
83
+ $[20] = t7;
84
+ } else t7 = $[20];
85
+ const allListItems = t7;
86
+ let t8;
87
+ if ($[21] !== allListItems || $[22] !== initialSelectedItems || $[23] !== selectedItems) {
51
88
  const items = [
52
89
  ...Array.isArray(initialSelectedItems) ? initialSelectedItems : [initialSelectedItems],
53
90
  ...Array.isArray(selectedItems) ? selectedItems : [selectedItems],
54
91
  ...allListItems
55
- ].filter((item) => !!item);
92
+ ].filter(_temp);
56
93
  const allItemsMap = /* @__PURE__ */ new Map();
57
- items.forEach((item) => allItemsMap.set(item.id, item));
58
- return Array.from(allItemsMap.values());
59
- }, [
60
- allListItems,
61
- initialSelectedItems,
62
- selectedItems
63
- ]);
64
- const filteredListItems = useMemo(() => allListItems.filter((item) => contains(item.label, inputValue)), [
65
- allListItems,
66
- contains,
67
- inputValue
68
- ]);
69
- const listItems = useMemo(() => showAll || isClientSearchDisabled ? allListItems : filteredListItems, [
70
- showAll,
71
- isClientSearchDisabled,
72
- allListItems,
73
- filteredListItems
74
- ]);
75
- return {
76
- allItems,
77
- allListItems,
78
- filteredListItems,
79
- listItems,
80
- selectableListItems: useMemo(() => listItems.filter((item) => !item.isDisabled && !ReservedItemIds.includes(String(item.id))), [listItems])
81
- };
94
+ items.forEach((item_1) => allItemsMap.set(item_1.id, item_1));
95
+ t8 = Array.from(allItemsMap.values());
96
+ $[21] = allListItems;
97
+ $[22] = initialSelectedItems;
98
+ $[23] = selectedItems;
99
+ $[24] = t8;
100
+ } else t8 = $[24];
101
+ const allItems = t8;
102
+ let t9;
103
+ if ($[25] !== allListItems || $[26] !== contains || $[27] !== inputValue) {
104
+ t9 = allListItems.filter((item_2) => contains(item_2.label, inputValue));
105
+ $[25] = allListItems;
106
+ $[26] = contains;
107
+ $[27] = inputValue;
108
+ $[28] = t9;
109
+ } else t9 = $[28];
110
+ const filteredListItems = t9;
111
+ const listItems = showAll || isClientSearchDisabled ? allListItems : filteredListItems;
112
+ let t10;
113
+ if ($[29] !== listItems) {
114
+ t10 = listItems.filter(_temp2);
115
+ $[29] = listItems;
116
+ $[30] = t10;
117
+ } else t10 = $[30];
118
+ const selectableListItems = t10;
119
+ let t11;
120
+ if ($[31] !== allItems || $[32] !== allListItems || $[33] !== filteredListItems || $[34] !== listItems || $[35] !== selectableListItems) {
121
+ t11 = {
122
+ allItems,
123
+ allListItems,
124
+ filteredListItems,
125
+ listItems,
126
+ selectableListItems
127
+ };
128
+ $[31] = allItems;
129
+ $[32] = allListItems;
130
+ $[33] = filteredListItems;
131
+ $[34] = listItems;
132
+ $[35] = selectableListItems;
133
+ $[36] = t11;
134
+ } else t11 = $[36];
135
+ return t11;
136
+ }
137
+ function _temp2(item_3) {
138
+ return !item_3.isDisabled && !ReservedItemIds.includes(String(item_3.id));
139
+ }
140
+ function _temp(item_0) {
141
+ return !!item_0;
82
142
  }
83
143
  //#endregion
84
144
  export { NewItemId, SelectAllItemId, useSelectItems };