asma-ui-core 3.34.0 → 3.35.0

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 (198) hide show
  1. package/dist/asma-ui-core.css +1 -1
  2. package/dist/components/data-display/badge/StyledBadge.js +29 -24
  3. package/dist/components/data-display/chip/StyledChip.js +45 -60
  4. package/dist/components/data-display/interactive-chip/StyledInteractiveChip.js +32 -38
  5. package/dist/components/data-display/tooltip/StyledTooltip.js +50 -33
  6. package/dist/components/data-display/typography/StyledTypography.js +62 -4
  7. package/dist/components/feedback/dialog/StyledDialog.js +70 -50
  8. package/dist/components/feedback/dialog/StyledDialog.module.js +2 -9
  9. package/dist/components/feedback/dialog/StyledDialogActions.js +16 -16
  10. package/dist/components/feedback/dialog/StyledDialogContent.js +17 -14
  11. package/dist/components/feedback/dialog/StyledDialogTitle.js +18 -13
  12. package/dist/components/feedback/minimizable-dialog/MinimizableDialog.js +56 -57
  13. package/dist/components/feedback/snack-bar/StyledAlert.js +72 -14
  14. package/dist/components/feedback/snack-bar/StyledSnackbar.js +34 -8
  15. package/dist/components/feedback/snack-bar/components/StyledDefaultSnackbar.js +33 -34
  16. package/dist/components/inputs/checkbox/base-ui/StyledCheckbox.js +55 -58
  17. package/dist/components/inputs/checkbox/base-ui/StyledCheckbox.module.js +12 -12
  18. package/dist/components/inputs/dynamic-select/components/DynamicInteractiveChipGroup.js +1 -1
  19. package/dist/components/inputs/dynamic-select/components/DynamicSelectAutocomplete.js +1 -1
  20. package/dist/components/inputs/field-styles.js +6 -0
  21. package/dist/components/inputs/input-field/StyledInputField.js +104 -81
  22. package/dist/components/inputs/input-field/StyledInputField.module.js +4 -0
  23. package/dist/components/inputs/radio-button/base-ui/RadioGroupContext.js +6 -0
  24. package/dist/components/inputs/radio-button/base-ui/StyledRadio.js +40 -29
  25. package/dist/components/inputs/radio-button/base-ui/StyledRadio.module.js +10 -10
  26. package/dist/components/inputs/radio-button/base-ui/StyledRadioGroup.js +35 -23
  27. package/dist/components/inputs/select/StyledSelect.js +124 -45
  28. package/dist/components/inputs/select/StyledSelectItem.js +19 -23
  29. package/dist/components/inputs/select-autocomplete/StyledSelectAutocomplete.js +181 -151
  30. package/dist/components/inputs/slider/StyledSlider.js +78 -52
  31. package/dist/components/inputs/slider/StyledSlider.module.js +10 -0
  32. package/dist/components/inputs/switch/base-ui/StyledSwitch.js +44 -39
  33. package/dist/components/miscellaneous/FormControlContext.js +6 -0
  34. package/dist/components/miscellaneous/StyledFormControl.js +39 -21
  35. package/dist/components/miscellaneous/StyledFormControlLabel.js +27 -16
  36. package/dist/components/miscellaneous/StyledFormGroup.js +16 -4
  37. package/dist/components/miscellaneous/StyledFormHelperText.js +12 -4
  38. package/dist/components/miscellaneous/StyledInputLabel.js +20 -4
  39. package/dist/components/mui-compat/Avatar.js +29 -0
  40. package/dist/components/mui-compat/ClickAwayListener.js +29 -0
  41. package/dist/components/mui-compat/Container.js +24 -0
  42. package/dist/components/mui-compat/Fade.js +29 -0
  43. package/dist/components/mui-compat/Fade.module.js +9 -0
  44. package/dist/components/mui-compat/FormLabel.js +22 -0
  45. package/dist/components/mui-compat/Paper.js +44 -0
  46. package/dist/components/mui-compat/Popper.js +35 -0
  47. package/dist/components/mui-compat/Skeleton.js +26 -0
  48. package/dist/components/mui-compat/Stack.js +24 -0
  49. package/dist/components/navigation/drawer/StyledDrawer.js +42 -4
  50. package/dist/components/navigation/listbox/Listbox.js +7 -7
  51. package/dist/components/navigation/menu/StyledMenu.js +27 -11
  52. package/dist/components/navigation/menu/StyledMenuItem.js +16 -18
  53. package/dist/components/navigation/menu/StyledMenuList.js +32 -4
  54. package/dist/components/navigation/tabs/StyledTab.js +25 -13
  55. package/dist/components/navigation/tabs/StyledTabs.js +112 -64
  56. package/dist/components/navigation/tabs/TabsContext.js +6 -0
  57. package/dist/components/utils/accordion/base-ui/AccordionContext.js +10 -0
  58. package/dist/components/utils/accordion/base-ui/StyledAccordion.js +28 -21
  59. package/dist/components/utils/accordion/base-ui/StyledAccordion.module.js +7 -7
  60. package/dist/components/utils/accordion/base-ui/StyledAccordionDetails.js +28 -14
  61. package/dist/components/utils/accordion/base-ui/StyledAccordionSummary.js +31 -27
  62. package/dist/components/utils/popover/StyledPopover.js +43 -15
  63. package/dist/datetime/components/date-picker/StyledDatePicker.js +6 -6
  64. package/dist/datetime/components/date-picker/components/BaseDatePickerInput.js +1 -1
  65. package/dist/datetime/components/date-picker/components/HelperTextWithTooltip.js +6 -6
  66. package/dist/datetime/components/date-picker/components/StyledCalendarPicker.js +11 -11
  67. package/dist/datetime/components/date-picker/components/StyledCalendarPickerFooter.js +13 -14
  68. package/dist/datetime/components/date-picker/components/StyledCalendarPickerSelectMonth.js +14 -14
  69. package/dist/datetime/components/date-picker/components/StyledCalendarPickerSelectYear.js +6 -6
  70. package/dist/datetime/components/date-picker/components/StyledDayPicker.js +4 -5
  71. package/dist/datetime/components/date-picker/hooks/useDatePickerMask.js +4 -4
  72. package/dist/datetime/components/time-picker/StyledTimePicker.js +25 -25
  73. package/dist/datetime/components/time-picker/TimePickerInput.js +15 -16
  74. package/dist/datetime/components/time-picker/TimePickerPopper.js +21 -19
  75. package/dist/datetime/helpers/cn.js +4 -5
  76. package/dist/helpers/arrays.js +4 -0
  77. package/dist/helpers/cn.js +4 -5
  78. package/dist/helpers/inputMask.js +45 -0
  79. package/dist/helpers/sx.js +46 -0
  80. package/dist/index.js +183 -175
  81. package/dist/src/api-surface.test.d.ts +1 -0
  82. package/dist/src/components/data-display/badge/StyledBadge.d.ts +26 -2
  83. package/dist/src/components/data-display/chip/StyledChip.d.ts +39 -5
  84. package/dist/src/components/data-display/interactive-chip/StyledInteractiveChip.d.ts +11 -4
  85. package/dist/src/components/data-display/tooltip/StyledTooltip.d.ts +36 -2
  86. package/dist/src/components/data-display/typography/StyledTypography.d.ts +19 -1
  87. package/dist/src/components/feedback/dialog/StyledDialog.d.ts +37 -4
  88. package/dist/src/components/feedback/dialog/StyledDialogActions.d.ts +12 -2
  89. package/dist/src/components/feedback/dialog/StyledDialogContent.d.ts +12 -2
  90. package/dist/src/components/feedback/dialog/StyledDialogTitle.d.ts +10 -2
  91. package/dist/src/components/feedback/snack-bar/SnackbarProvider.d.ts +1 -1
  92. package/dist/src/components/feedback/snack-bar/StyledAlert.d.ts +24 -2
  93. package/dist/src/components/feedback/snack-bar/StyledAlertSnackbar.d.ts +1 -1
  94. package/dist/src/components/feedback/snack-bar/StyledSnackbar.d.ts +21 -2
  95. package/dist/src/components/feedback/snack-bar/components/StyledDefaultSnackbar.d.ts +1 -1
  96. package/dist/src/components/feedback/snack-bar/components/StyledInfoSnackbar.d.ts +1 -1
  97. package/dist/src/components/feedback/snack-bar/components/types.d.ts +1 -1
  98. package/dist/src/components/inputs/checkbox/base-ui/StyledCheckbox.d.ts +9 -4
  99. package/dist/src/components/inputs/dynamic-select/types.d.ts +2 -2
  100. package/dist/src/components/inputs/field-styles.d.ts +22 -0
  101. package/dist/src/components/inputs/input-field/StyledInputField.d.ts +67 -11
  102. package/dist/src/components/inputs/input-field/index.d.ts +1 -1
  103. package/dist/src/components/inputs/radio-button/base-ui/RadioGroupContext.d.ts +10 -0
  104. package/dist/src/components/inputs/radio-button/base-ui/StyledRadio.d.ts +20 -5
  105. package/dist/src/components/inputs/radio-button/base-ui/StyledRadioGroup.d.ts +24 -7
  106. package/dist/src/components/inputs/select/StyledSelect.d.ts +39 -16
  107. package/dist/src/components/inputs/select/StyledSelectItem.d.ts +14 -2
  108. package/dist/src/components/inputs/select/index.d.ts +0 -1
  109. package/dist/src/components/inputs/select-autocomplete/StyledSelectAutocomplete.d.ts +88 -17
  110. package/dist/src/components/inputs/slider/StyledSlider.d.ts +55 -3
  111. package/dist/src/components/inputs/switch/base-ui/StyledSwitch.d.ts +20 -4
  112. package/dist/src/components/miscellaneous/FormControlContext.d.ts +14 -0
  113. package/dist/src/components/miscellaneous/StyledFormControl.d.ts +22 -2
  114. package/dist/src/components/miscellaneous/StyledFormControlLabel.d.ts +21 -2
  115. package/dist/src/components/miscellaneous/StyledFormGroup.d.ts +11 -2
  116. package/dist/src/components/miscellaneous/StyledFormHelperText.d.ts +12 -2
  117. package/dist/src/components/miscellaneous/StyledInputLabel.d.ts +20 -2
  118. package/dist/src/components/mui-compat/Avatar.d.ts +6 -0
  119. package/dist/src/components/mui-compat/ClickAwayListener.d.ts +19 -0
  120. package/dist/src/components/mui-compat/Container.d.ts +6 -0
  121. package/dist/src/components/mui-compat/Fade.d.ts +21 -0
  122. package/dist/src/components/mui-compat/FormLabel.d.ts +6 -0
  123. package/dist/src/components/mui-compat/Paper.d.ts +6 -0
  124. package/dist/src/components/mui-compat/Popper.d.ts +29 -0
  125. package/dist/src/components/mui-compat/Skeleton.d.ts +7 -0
  126. package/dist/src/components/mui-compat/Stack.d.ts +7 -0
  127. package/dist/src/components/mui-compat/index.d.ts +9 -0
  128. package/dist/src/components/mui-compat/types.d.ts +46 -0
  129. package/dist/src/components/navigation/drawer/StyledDrawer.d.ts +21 -2
  130. package/dist/src/components/navigation/menu/StyledMenu.d.ts +25 -2
  131. package/dist/src/components/navigation/menu/StyledMenuItem.d.ts +21 -2
  132. package/dist/src/components/navigation/menu/StyledMenuList.d.ts +16 -2
  133. package/dist/src/components/navigation/menu/index.d.ts +0 -1
  134. package/dist/src/components/navigation/tabs/StyledTab.d.ts +17 -3
  135. package/dist/src/components/navigation/tabs/StyledTabs.d.ts +16 -7
  136. package/dist/src/components/navigation/tabs/TabsContext.d.ts +11 -0
  137. package/dist/src/components/utils/accordion/base-ui/AccordionContext.d.ts +10 -0
  138. package/dist/src/components/utils/accordion/base-ui/StyledAccordion.d.ts +9 -3
  139. package/dist/src/components/utils/accordion/base-ui/StyledAccordionDetails.d.ts +5 -0
  140. package/dist/src/components/utils/accordion/base-ui/StyledAccordionSummary.d.ts +8 -4
  141. package/dist/src/components/utils/copy-wrapper/CopyWrapper.d.ts +1 -1
  142. package/dist/src/components/utils/filter-menu/StyledFilterMenu.d.ts +2 -2
  143. package/dist/src/components/utils/popover/StyledPopover.d.ts +31 -2
  144. package/dist/src/datetime/components/date-picker/components/StyledCalendarPicker.d.ts +1 -1
  145. package/dist/src/datetime/components/date-picker/components/StyledDayPicker.d.ts +1 -1
  146. package/dist/src/datetime/components/date-picker/hooks/useDatePickerMask.d.ts +1 -2
  147. package/dist/src/datetime/components/time-picker/TimePickerInput.d.ts +1 -1
  148. package/dist/src/datetime/components/time-picker/TimePickerPopper.d.ts +1 -1
  149. package/dist/src/datetime/components/time-picker/types.d.ts +1 -2
  150. package/dist/src/datetime/shared-components/StyledFormControl.d.ts +1 -2
  151. package/dist/src/datetime/shared-components/StyledInputField.d.ts +1 -12
  152. package/dist/src/datetime/shared-components/StyledSelect.d.ts +1 -16
  153. package/dist/src/datetime/shared-components/StyledSelectItem.d.ts +1 -2
  154. package/dist/src/datetime/shared-components/StyledTooltip.d.ts +1 -2
  155. package/dist/src/helpers/arrays.d.ts +2 -0
  156. package/dist/src/helpers/arrays.test.d.ts +1 -0
  157. package/dist/src/helpers/inputMask.d.ts +29 -0
  158. package/dist/src/helpers/inputMask.test.d.ts +1 -0
  159. package/dist/src/helpers/sx.d.ts +2 -0
  160. package/dist/src/helpers/sx.test.d.ts +1 -0
  161. package/dist/src/index.d.ts +1 -1
  162. package/dist/src/table/shared-components/StyledCheckbox.d.ts +7 -4
  163. package/dist/src/table/shared-components/StyledMenuItem.d.ts +18 -2
  164. package/dist/src/table/shared-components/menu-item/index.d.ts +13 -2
  165. package/dist/src/table/shared-components/tooltip/index.d.ts +5 -1
  166. package/dist/src/table/types.d.ts +1 -1
  167. package/dist/table/components/Fetching.js +4 -4
  168. package/dist/table/components/TableRow.js +7 -7
  169. package/dist/table/components/TableSkeleton.js +6 -6
  170. package/dist/table/components/columns/action-column/components/HeaderActionMenu.js +24 -24
  171. package/dist/table/components/columns/action-column/components/RowActionMenu.js +26 -25
  172. package/dist/table/components/table-footer/TablePagination.js +27 -24
  173. package/dist/table/components/table-footer/TableRowCountSelect.js +30 -27
  174. package/dist/table/helpers/cn.js +4 -5
  175. package/dist/table/shared-components/StyledCheckbox.js +54 -55
  176. package/dist/table/shared-components/StyledCheckbox.module.js +10 -10
  177. package/dist/table/shared-components/StyledMenuItem.js +12 -18
  178. package/dist/table/shared-components/menu-item/index.js +13 -17
  179. package/dist/table/shared-components/tooltip/index.js +4 -23
  180. package/package.json +9 -16
  181. package/dist/components/feedback/dialog/StyledDialogActions.module.js +0 -8
  182. package/dist/components/feedback/dialog/StyledDialogContent.module.js +0 -4
  183. package/dist/components/feedback/dialog/StyledDialogTitle.module.js +0 -4
  184. package/dist/components/inputs/checkbox/StyledCheckbox.js +0 -20
  185. package/dist/components/inputs/radio-button/StyledRadio.js +0 -17
  186. package/dist/datetime/shared-components/ExpandIcon.js +0 -18
  187. package/dist/datetime/shared-components/StyledFormControl.js +0 -23
  188. package/dist/datetime/shared-components/StyledInputField.js +0 -47
  189. package/dist/datetime/shared-components/StyledSelect.js +0 -47
  190. package/dist/datetime/shared-components/StyledSelectItem.js +0 -13
  191. package/dist/datetime/shared-components/StyledTooltip.js +0 -32
  192. package/dist/src/components/inputs/checkbox/StyledCheckbox.d.ts +0 -4
  193. package/dist/src/components/inputs/radio-button/StyledRadio.d.ts +0 -4
  194. package/dist/src/components/inputs/radio-button/StyledRadioGroup.d.ts +0 -4
  195. package/dist/src/components/inputs/switch/StyledSwitch.d.ts +0 -5
  196. package/dist/src/components/utils/accordion/StyledAccordion.d.ts +0 -2
  197. package/dist/src/components/utils/accordion/StyledAccordionDetails.d.ts +0 -2
  198. package/dist/src/components/utils/accordion/StyledAccordionSummary.d.ts +0 -8
@@ -1,48 +1,127 @@
1
- import { ChevronDownIcon as u } from "../../icons/chevron-down-icon/ChevronDownIcon.js";
2
- import { CloseIcon as m } from "../../icons/close-icon/CloseIcon.js";
3
- import { ErrorOutlineIcon as d } from "../../icons/error-outline-icon/ErrorOutlineIcon.js";
4
- import { StyledFormHelperText as c } from "../../miscellaneous/StyledFormHelperText.js";
5
- import s from "clsx";
6
- import { Select as h } from "@mui/material";
7
- import { Fragment as p, jsx as o, jsxs as t } from "react/jsx-runtime";
8
- var I = ({ dataTest: i, allowClear: l, error: e, errorText: n, ...r }) => /* @__PURE__ */ t(p, { children: [/* @__PURE__ */ o(h, {
9
- ...r,
10
- "data-testid": i,
11
- error: e,
12
- value: r.value,
13
- IconComponent: ({ className: a }) => /* @__PURE__ */ o(u, {
14
- width: 24,
15
- height: 24,
16
- className: s(a, "-mt-[3.5px]")
17
- }),
18
- endAdornment: l && r.value ? /* @__PURE__ */ o("div", {
19
- "data-testid": "select-clear-button",
20
- className: "absolute right-8 flex items-center justify-center rounded-full p-[2px] duration-300 hover:bg-gama-100",
21
- onClick: () => {
22
- r.onChange?.({ target: { value: "" } }, null);
1
+ import { cn as a } from "../../../helpers/cn.js";
2
+ import { resolveSx as oe } from "../../../helpers/sx.js";
3
+ import { ChevronDownIcon as re } from "../../icons/chevron-down-icon/ChevronDownIcon.js";
4
+ import { CloseIcon as se } from "../../icons/close-icon/CloseIcon.js";
5
+ import { ErrorOutlineIcon as le } from "../../icons/error-outline-icon/ErrorOutlineIcon.js";
6
+ import { outlineClass as ne } from "../field-styles.js";
7
+ import { useFormControlContext as ie } from "../../miscellaneous/FormControlContext.js";
8
+ import { StyledFormHelperText as ae } from "../../miscellaneous/StyledFormHelperText.js";
9
+ import { Children as D, cloneElement as ce, isValidElement as R, useEffect as F, useRef as de, useState as S } from "react";
10
+ import { jsx as o, jsxs as c } from "react/jsx-runtime";
11
+ import { FloatingPortal as fe, autoUpdate as me, flip as ue, offset as pe, shift as xe, size as ge, useClick as he, useDismiss as be, useFloating as we, useInteractions as ye, useMergeRefs as E, useRole as ve } from "@floating-ui/react";
12
+ var Ve = ({ dataTest: x, value: g, defaultValue: A, onChange: I, size: z, error: V, errorText: j, allowClear: P, disabled: _, readOnly: d, name: h, placeholder: f, displayEmpty: m, renderValue: b, fullWidth: U, className: q, style: B, sx: K, children: w, MenuProps: M }) => {
13
+ const r = ie(), $ = z ?? r?.size ?? "medium", y = V ?? r?.error ?? !1, l = _ ?? r?.disabled ?? !1, [s, v] = S(!1), [H, O] = S(A), C = g !== void 0, n = C ? g : H, i = n !== void 0 && n !== "" && n !== null, u = de(null), { refs: N, floatingStyles: W, context: p } = we({
14
+ open: s,
15
+ onOpenChange: v,
16
+ placement: "bottom-start",
17
+ whileElementsMounted: me,
18
+ middleware: [
19
+ pe(4),
20
+ ue({ padding: 8 }),
21
+ xe({ padding: 8 }),
22
+ ge({ apply({ rects: e, elements: t }) {
23
+ t.floating.style.minWidth = `${e.reference.width}px`;
24
+ } })
25
+ ]
26
+ }), { getReferenceProps: G, getFloatingProps: J } = ye([
27
+ he(p, { enabled: !l && !d }),
28
+ be(p),
29
+ ve(p, { role: "listbox" })
30
+ ]), L = E([N.setReference]), Q = E([N.setFloating, u]);
31
+ F(() => r?.setFocused(s), [s, r]), F(() => r?.setFilled(i || !!f || !!m), [
32
+ i,
33
+ f,
34
+ m,
35
+ r
36
+ ]);
37
+ const k = (e, t) => {
38
+ C || O(e), I?.({ target: {
39
+ value: e,
40
+ name: h
41
+ } }, t), v(!1);
42
+ }, T = D.map(w, (e) => {
43
+ if (!R(e)) return e;
44
+ const t = e.props.value;
45
+ return ce(e, {
46
+ selected: t === n,
47
+ onClick: () => k(t, e.props.children)
48
+ });
49
+ }), X = D.toArray(w).find((e) => R(e) && e.props.value === n), Y = b ? b(n) : X?.props.children, Z = (e) => {
50
+ const t = u.current ? Array.from(u.current.querySelectorAll('[role="option"]:not([aria-disabled="true"])')) : [];
51
+ if (t.length === 0) return;
52
+ const ee = t.findIndex((te) => te === document.activeElement);
53
+ e.key === "ArrowDown" || e.key === "ArrowUp" ? (e.preventDefault(), t[(ee + (e.key === "ArrowDown" ? 1 : -1) + t.length) % t.length]?.focus()) : (e.key === "Enter" || e.key === " ") && (e.preventDefault(), document.activeElement?.click());
54
+ };
55
+ return /* @__PURE__ */ c("div", {
56
+ className: a("group relative inline-flex flex-col", U && "w-full", q),
57
+ style: {
58
+ ...oe(K),
59
+ ...B
23
60
  },
24
- children: /* @__PURE__ */ o(m, {
25
- width: 18,
26
- height: 18
27
- })
28
- }) : null,
29
- sx: {
30
- ".MuiOutlinedInput-notchedOutline": { borderColor: "var(--colors-delta-500) !important" },
31
- "&.Mui-focused .MuiOutlinedInput-notchedOutline": { borderColor: "var(--colors-gama-500) !important" },
32
- "&.MuiFormLabel-root-MuiInputLabel-root .Mui-error": { color: "var(--colors-error-500) !important" },
33
- "&.Mui-error .MuiOutlinedInput-notchedOutline": { borderColor: "var(--colors-error-500) !important" },
34
- "& .MuiInputBase-colorPrimary.Mui-error fieldset": { borderColor: "var(--colors-error-500) !important" },
35
- "&.Mui-focused::after": { borderColor: "var(--colors-gama-400) !important" },
36
- "&:hover .MuiOutlinedInput-notchedOutline": { border: "2px solid var(--colors-gama-300) !important" },
37
- ...r.sx
38
- }
39
- }), e && /* @__PURE__ */ t(c, {
40
- className: "m-0 flex items-center gap-1 pt-1 text-sm text-error-500",
41
- children: [/* @__PURE__ */ o(d, {
42
- width: 20,
43
- height: 20
44
- }), n ?? "Required"]
45
- })] });
61
+ children: [
62
+ /* @__PURE__ */ c("button", {
63
+ ref: L,
64
+ type: "button",
65
+ "data-testid": x,
66
+ role: "combobox",
67
+ "aria-haspopup": "listbox",
68
+ "aria-expanded": s,
69
+ "aria-disabled": l ? !0 : void 0,
70
+ disabled: l,
71
+ ...G(),
72
+ className: a("relative flex w-full items-center justify-between rounded-lg bg-transparent px-3 text-left text-delta-800 outline-none", $ === "small" ? "h-9 text-sm" : "h-12 text-base", l && "cursor-not-allowed text-delta-300", d && "pointer-events-none"),
73
+ children: [
74
+ /* @__PURE__ */ o("span", {
75
+ className: a("min-w-0 flex-1 truncate", !i && "text-delta-500"),
76
+ children: i || m ? Y : f
77
+ }),
78
+ /* @__PURE__ */ c("span", {
79
+ className: "flex items-center gap-1",
80
+ children: [P && i && !l && /* @__PURE__ */ o("span", {
81
+ role: "button",
82
+ "data-testid": `${x}-clear`,
83
+ className: "flex items-center justify-center rounded-full p-[2px] hover:bg-gama-100",
84
+ onClick: (e) => {
85
+ e.stopPropagation(), k("", null);
86
+ },
87
+ children: /* @__PURE__ */ o(se, {
88
+ width: 18,
89
+ height: 18
90
+ })
91
+ }), /* @__PURE__ */ o(re, {
92
+ width: 24,
93
+ height: 24,
94
+ className: a("transition-transform", s && "rotate-180")
95
+ })]
96
+ }),
97
+ /* @__PURE__ */ o("div", { className: ne({
98
+ focused: s,
99
+ error: y,
100
+ disabled: l,
101
+ readOnly: d
102
+ }) })
103
+ ]
104
+ }),
105
+ s && /* @__PURE__ */ o(fe, { children: /* @__PURE__ */ o("ul", {
106
+ ref: Q,
107
+ role: "listbox",
108
+ "aria-label": h,
109
+ style: W,
110
+ ...J(),
111
+ onKeyDown: Z,
112
+ className: a("z-[1300] max-h-72 overflow-auto rounded-lg border border-delta-300 bg-white py-1 shadow-[0px_2px_4px_0px_rgba(34,33,51,0.15)]", M?.className),
113
+ children: T
114
+ }) }),
115
+ y && /* @__PURE__ */ c(ae, {
116
+ className: "m-0 flex items-center gap-1 pt-1 text-sm text-error-500",
117
+ children: [/* @__PURE__ */ o(le, {
118
+ width: 20,
119
+ height: 20
120
+ }), j ?? "Required"]
121
+ })
122
+ ]
123
+ });
124
+ };
46
125
  export {
47
- I as StyledSelect
126
+ Ve as StyledSelect
48
127
  };
@@ -1,29 +1,25 @@
1
- import { CheckIcon as t } from "../../icons/check-icon/CheckIcon.js";
2
- import { MenuItem as o } from "@mui/material";
3
- import { jsx as r, jsxs as n } from "react/jsx-runtime";
4
- var c = (e) => /* @__PURE__ */ n(o, {
5
- ...e,
6
- sx: {
7
- "&.MuiMenuItem-root": {
8
- fontSize: "14px !important",
9
- gap: "4px",
10
- px: 1
11
- },
12
- "&.Mui-selected": { backgroundColor: "var(--colors-gama-50) !important" }
13
- },
14
- children: [/* @__PURE__ */ r("span", {
15
- style: {
16
- width: "24px",
17
- justifyContent: "center",
18
- display: "flex"
19
- },
20
- children: e.selected && /* @__PURE__ */ r(t, {
1
+ import { cn as n } from "../../../helpers/cn.js";
2
+ import { CheckIcon as l } from "../../icons/check-icon/CheckIcon.js";
3
+ import { jsx as a, jsxs as m } from "react/jsx-runtime";
4
+ var x = ({ children: r, selected: e, disabled: t, className: o, onClick: i }) => /* @__PURE__ */ m("li", {
5
+ role: "option",
6
+ "aria-selected": e ? !0 : void 0,
7
+ "aria-disabled": t ? !0 : void 0,
8
+ tabIndex: -1,
9
+ onClick: t ? void 0 : i,
10
+ className: n("flex items-center gap-1 px-2 py-2.5 text-sm outline-none", t ? "cursor-not-allowed text-delta-300" : "cursor-pointer hover:bg-delta-50", e && "bg-gama-50", o),
11
+ children: [/* @__PURE__ */ a("span", {
12
+ className: "flex w-6 justify-center",
13
+ children: e && /* @__PURE__ */ a(l, {
21
14
  width: 22,
22
15
  height: 22,
23
- style: { color: "var(--colors-gama-500)" }
16
+ className: "text-gama-500"
24
17
  })
25
- }), /* @__PURE__ */ r("span", { children: e.children })]
18
+ }), /* @__PURE__ */ a("span", {
19
+ className: "min-w-0 flex-1 truncate",
20
+ children: r
21
+ })]
26
22
  });
27
23
  export {
28
- c as StyledSelectItem
24
+ x as StyledSelectItem
29
25
  };
@@ -1,162 +1,192 @@
1
- import { cn as v } from "../../../helpers/cn.js";
2
- import { ChevronDownIcon as le } from "../../icons/chevron-down-icon/ChevronDownIcon.js";
3
- import { CloseIcon as ae } from "../../icons/close-icon/CloseIcon.js";
4
- import { CheckIcon as se } from "../../icons/check-icon/CheckIcon.js";
5
- import { PlusIconCircle as ne } from "../../icons/plus-icon-circle/PlusIconCircle.js";
6
- import { StyledChip as ce } from "../../data-display/chip/StyledChip.js";
7
- import { StyledCheckbox as R } from "../checkbox/base-ui/StyledCheckbox.js";
8
- import H from "./StyledSelectAutocomplete.module.js";
9
- import B from "clsx";
10
- import { createElement as A, useLayoutEffect as ie, useRef as de, useState as D } from "react";
11
- import { Autocomplete as ue, Paper as me } from "@mui/material";
12
- import { jsx as o, jsxs as L } from "react/jsx-runtime";
13
- import { mergeSlotProps as pe } from "@mui/material/utils";
14
- function he(s, c) {
15
- return pe(s, c);
16
- }
17
- function Ie({ dataTest: s, autoHeight: c, getOptionLabel: u, wrapperClassName: z, multiple: n, allowSelectAll: W, selectAllLabel: C, className: V, defaultValue: M, isOptionEqualToValue: p, onChange: _, options: h, popupIcon: F, readOnly: f, renderOption: G, renderValue: K, sx: O, value: x, ...T }) {
18
- const { slots: U, slotProps: g, ...E } = T, [N, J] = D("auto"), b = de(null), l = n === !0 && W === !0 && !f, k = x !== void 0, S = (e) => Array.isArray(e) ? e : [], [Q, X] = D(() => S(M));
19
- ie(() => {
20
- if (!c) return;
21
- const e = b.current?.getBoundingClientRect().height ?? 0, t = b.current?.getBoundingClientRect().top ?? 0, r = window.innerHeight - t - e - 40;
22
- J(r > 0 ? r : "auto");
23
- }, [c]);
24
- const i = (e) => typeof e == "object" && e !== null && "label" in e ? e.label : String(e), Y = (e) => typeof e == "object" && e !== null && "disabled" in e && !!e.disabled, Z = {
25
- padding: 0,
26
- "& .MuiAutocomplete-option": { paddingLeft: n ? "12px !important" : "6px !important" }
27
- }, w = c ? { maxHeight: N === "auto" ? "auto" : `${N}px` } : void 0, I = l ? S(k ? x : Q) : [], d = l ? h.filter((e) => !Y(e)) : h, q = (e, t) => {
28
- const r = typeof e == "object" && e !== null;
29
- return r !== (typeof t == "object" && t !== null) || !r && typeof e != typeof t ? !1 : p ? p(e, t) : e === t;
30
- }, P = l ? d.filter((e) => I.some((t) => q(e, t))).length : 0, $ = l && d.length > 0 && P === d.length, ee = l && P > 0 && !$, j = (e, t, r, a) => {
31
- l && !k && X(S(t)), _?.(e, t, r, a);
32
- }, te = (e, t) => {
33
- j(e, t ? [...d] : [], t ? "selectOption" : "clear", void 0);
34
- }, re = (e, t) => Array.isArray(e) ? e.map((r, a) => {
35
- const m = t({ index: a }), y = u?.(r) ?? i(r);
36
- return /* @__PURE__ */ A(ce, {
37
- ...m,
38
- key: `selected-chip-${y}-${a}`,
39
- dataTest: `selected-chip-${y}`,
40
- label: y,
41
- variant: "outlined"
42
- });
43
- }) : null, oe = {
44
- sx: Z,
45
- ...w ? { style: w } : {}
46
- };
47
- return /* @__PURE__ */ o("div", {
48
- className: v(H.styledSelectAutocompleteWrapper, z),
49
- ref: b,
50
- children: /* @__PURE__ */ o(ue, {
51
- ...E,
52
- multiple: n,
53
- defaultValue: l ? void 0 : M,
54
- getOptionLabel: u,
55
- isOptionEqualToValue: p,
56
- className: B("!text-sm", V),
57
- onChange: j,
58
- options: h,
59
- renderValue: K ?? (n ? re : void 0),
60
- popupIcon: f ? null : F ?? n ? /* @__PURE__ */ o(ne, {
61
- width: 24,
62
- height: 24
63
- }) : /* @__PURE__ */ o(le, {
64
- width: 24,
65
- height: 24,
66
- className: B(H["select-custom-icon"])
67
- }),
68
- readOnly: f,
69
- "data-testid": s,
70
- value: l ? I : x,
71
- slots: {
72
- ...U,
73
- paper: ({ children: e }) => /* @__PURE__ */ L(me, {
74
- "data-testid": `paper-${s}`,
75
- sx: {
76
- padding: "0 !important",
77
- marginTop: "0px !important",
78
- "& .MuiAutocomplete-option.Mui-focused": { background: "var(--colors-delta-50) !important" },
79
- "& li[aria-selected=true]": { background: "var(--colors-gama-50) !important" },
80
- "& li[aria-selected=true].MuiAutocomplete-option.Mui-focused": { background: "var(--colors-gama-50) !important" },
81
- "&:has([data-select-all-header]:hover) .MuiAutocomplete-option.Mui-focused": { background: "transparent !important" },
82
- "&:has([data-select-all-header]:hover) li[aria-selected=true].MuiAutocomplete-option.Mui-focused": { background: "var(--colors-gama-50) !important" }
83
- },
84
- children: [l && d.length > 0 && /* @__PURE__ */ L("div", {
85
- "data-select-all-header": !0,
86
- className: "flex items-center gap-x-[10px] border-[1px] border-b border-solid border-delta-200 bg-delta-50 py-2 pl-3 text-xs",
87
- onMouseDown: (t) => t.preventDefault(),
88
- role: "presentation",
89
- children: [/* @__PURE__ */ o(R, {
90
- size: "small",
91
- dataTest: `${s}-select-all`,
92
- checked: $,
93
- indeterminate: ee,
94
- hideWrapper: !0,
95
- onChange: te,
96
- "aria-label": C ?? "Select all"
97
- }), /* @__PURE__ */ o("span", {
98
- className: "truncate text-[10px] font-semibold uppercase text-delta-600",
99
- children: C ?? "Select all"
100
- })]
101
- }), e]
102
- })
103
- },
104
- renderOption: G ?? ((e, t, { selected: r }) => {
105
- const a = e, m = e.id ?? i(t);
106
- return n ? /* @__PURE__ */ A("li", {
107
- ...a,
108
- key: m,
109
- className: v(e.className, "flex items-center gap-x-[10px] border-0 border-b border-solid border-delta-200")
110
- }, /* @__PURE__ */ o(R, {
111
- dataTest: `${s}-${i(t)}-checkbox`,
112
- checked: r,
113
- size: "small",
114
- hideWrapper: !0
115
- }), /* @__PURE__ */ o("span", {
116
- className: "flex-1 truncate py-2 text-sm text-delta-700",
117
- children: u?.(t) ?? i(t)
118
- })) : /* @__PURE__ */ A("li", {
119
- ...a,
120
- key: m,
121
- className: v(e.className, "flex items-center gap-x-1")
122
- }, /* @__PURE__ */ o("span", {
123
- className: "w-5",
124
- children: r && /* @__PURE__ */ o(se, {
125
- width: 20,
126
- height: 20,
127
- style: { color: "var(--colors-gama-500)" }
128
- })
129
- }), /* @__PURE__ */ o("span", {
130
- className: "flex-1 truncate py-2 text-sm text-delta-700",
131
- children: u?.(t) ?? i(t)
132
- }));
1
+ import { cn as x } from "../../../helpers/cn.js";
2
+ import { ChevronDownIcon as ve } from "../../icons/chevron-down-icon/ChevronDownIcon.js";
3
+ import { CloseIcon as Ie } from "../../icons/close-icon/CloseIcon.js";
4
+ import { CheckIcon as Ce } from "../../icons/check-icon/CheckIcon.js";
5
+ import { PlusIconCircle as Se } from "../../icons/plus-icon-circle/PlusIconCircle.js";
6
+ import { StyledChip as $e } from "../../data-display/chip/StyledChip.js";
7
+ import { StyledCheckbox as De } from "../checkbox/base-ui/StyledCheckbox.js";
8
+ import { LoadingIcon as Ae } from "../../../table/shared-components/LoadingIcon.js";
9
+ import U from "./StyledSelectAutocomplete.module.js";
10
+ import { useMemo as Re, useRef as Fe, useState as $ } from "react";
11
+ import { jsx as s, jsxs as D } from "react/jsx-runtime";
12
+ import { FloatingFocusManager as ke, FloatingPortal as je, autoUpdate as Le, flip as Me, offset as Pe, shift as _e, size as ze, useDismiss as We, useFloating as Ue, useInteractions as Ve, useListNavigation as Ee, useMergeRefs as V, useRole as Ke } from "@floating-ui/react";
13
+ var Be = (r) => typeof r == "object" && r !== null && "label" in r ? String(r.label) : String(r), E = (r) => typeof r == "object" && r !== null && "disabled" in r && !!r.disabled;
14
+ function lt({ dataTest: r, options: A, renderInput: K, value: w, onChange: y, getOptionLabel: B, isOptionEqualToValue: R, renderOption: F, renderValue: k, filterOptions: N, loading: j, loadingText: H = "Loading…", noOptionsText: O = "No options", disabled: L, readOnly: u, size: q = "small", disableClearable: G, popupIcon: J, multiple: Q, fullWidth: X, classes: Y, inputValue: M, onInputChange: Z, open: P, onOpen: T, onClose: ee, className: te, wrapperClassName: le }) {
15
+ const o = Q === !0, a = B ?? Be, p = (e, t) => R ? R(e, t) : e === t, [se, re] = $(!1), n = P ?? se, m = (e) => {
16
+ P === void 0 && re(e), e ? T?.() : ee?.();
17
+ }, [oe, ae] = $(""), c = M ?? oe, v = (e, t, l) => {
18
+ M === void 0 && ae(t), Z?.(e, t, l);
19
+ }, [f, ne] = $(null), _ = Fe([]), i = o ? Array.isArray(w) ? w : [] : [], I = o ? null : w ?? null, z = (e) => o ? i.some((t) => p(e, t)) : I !== null && p(e, I), h = Re(() => {
20
+ const e = [...A];
21
+ if (N) return N(e, { inputValue: c });
22
+ if (!c || o) return e;
23
+ const t = c.toLowerCase();
24
+ return e.filter((l) => a(l).toLowerCase().includes(t));
25
+ }, [
26
+ A,
27
+ c,
28
+ o,
29
+ N
30
+ ]), { refs: W, floatingStyles: ie, context: g } = Ue({
31
+ open: n,
32
+ onOpenChange: m,
33
+ placement: "bottom-start",
34
+ whileElementsMounted: Le,
35
+ middleware: [
36
+ Pe(4),
37
+ Me({ padding: 8 }),
38
+ _e({ padding: 8 }),
39
+ ze({ apply({ rects: e, elements: t, availableHeight: l }) {
40
+ t.floating.style.minWidth = `${e.reference.width}px`, t.floating.style.maxHeight = `${Math.min(l - 8, 320)}px`;
41
+ } })
42
+ ]
43
+ }), { getReferenceProps: ce, getFloatingProps: de, getItemProps: ue } = Ve([
44
+ We(g),
45
+ Ke(g, { role: "listbox" }),
46
+ Ee(g, {
47
+ listRef: _,
48
+ activeIndex: f,
49
+ onNavigate: ne,
50
+ virtual: !0,
51
+ loop: !0
52
+ })
53
+ ]), me = V([W.setReference]), fe = V([W.setFloating]), C = (e, t) => {
54
+ if (o) {
55
+ const l = i.some((d) => p(t, d)), b = l ? i.filter((d) => !p(t, d)) : [...i, t];
56
+ y?.(e, b, l ? "removeOption" : "selectOption", { option: t });
57
+ } else
58
+ y?.(e, t, "selectOption", { option: t }), v(e, a(t), "reset"), m(!1);
59
+ }, pe = (e) => {
60
+ y?.(e, o ? [] : null, "clear", void 0), v(e, "", "clear");
61
+ }, he = (e) => {
62
+ if (e.key === "Enter" && n && f != null && h[f] != null) {
63
+ e.preventDefault();
64
+ const t = h[f];
65
+ E(t) || C(e, t);
66
+ } else e.key === "ArrowDown" && !n && m(!0);
67
+ }, ge = !G && !u && !L && (o ? i.length > 0 : I !== null), be = o ? k ? k(i, ({ index: e }) => ({ "data-index": e })) : i.map((e, t) => /* @__PURE__ */ s($e, {
68
+ dataTest: `selected-chip-${a(e)}`,
69
+ label: a(e),
70
+ readOnly: u,
71
+ onDelete: u ? void 0 : (l) => C(l, e)
72
+ }, `${a(e)}-${t}`)) : void 0, xe = /* @__PURE__ */ D("span", {
73
+ className: "flex items-center",
74
+ children: [
75
+ j && /* @__PURE__ */ s(Ae, {
76
+ width: 20,
77
+ height: 20,
78
+ className: "animate-spin"
133
79
  }),
134
- sx: {
135
- ...O,
136
- "& .MuiOutlinedInput-notchedOutline": { borderColor: "var(--colors-gama-500) !important" },
137
- "& .select-custom-icon": { marginTop: "-0.5px !important" },
138
- "& .MuiInputBase-inputSizeSmall": { minHeight: "23px !important" }
139
- },
140
- slotProps: {
141
- ...g,
142
- clearIndicator: {
143
- disableRipple: !0,
144
- disableFocusRipple: !0,
145
- ...g?.clearIndicator ?? {}
146
- },
147
- listbox: he(g?.listbox, oe)
148
- },
149
- clearIcon: /* @__PURE__ */ o("span", {
80
+ ge && /* @__PURE__ */ s("span", {
81
+ role: "button",
82
+ "data-testid": `${r}-clear`,
150
83
  className: "flex min-h-6 min-w-6 cursor-pointer items-center justify-center rounded-full bg-delta-50",
151
- children: /* @__PURE__ */ o(ae, {
84
+ onMouseDown: (e) => {
85
+ e.preventDefault(), pe(e);
86
+ },
87
+ children: /* @__PURE__ */ s(Ie, {
152
88
  width: 20,
153
89
  height: 20,
154
90
  className: "text-delta-700"
155
91
  })
92
+ }),
93
+ u ? null : J ?? (o ? /* @__PURE__ */ s(Se, {
94
+ width: 24,
95
+ height: 24
96
+ }) : /* @__PURE__ */ s(ve, {
97
+ width: 24,
98
+ height: 24,
99
+ className: x(U["select-custom-icon"], "transition-transform", n && "rotate-180")
100
+ }))
101
+ ]
102
+ }), we = {
103
+ disabled: L,
104
+ size: q,
105
+ fullWidth: !0,
106
+ value: c,
107
+ onChange: (e) => {
108
+ v(e, e.target.value, "input"), n || m(!0);
109
+ },
110
+ onFocus: () => m(!0),
111
+ onKeyDown: he,
112
+ slotProps: {
113
+ htmlInput: {
114
+ ...ce(),
115
+ ref: me,
116
+ role: "combobox",
117
+ "aria-autocomplete": "list",
118
+ "aria-expanded": n,
119
+ autoComplete: "off",
120
+ readOnly: u
121
+ },
122
+ input: {
123
+ startAdornment: be,
124
+ endAdornment: xe
125
+ }
126
+ }
127
+ }, ye = (e, t, l) => /* @__PURE__ */ D("li", {
128
+ ...e,
129
+ className: x("flex cursor-pointer items-center gap-x-1 px-2 text-sm text-delta-700", "aria-selected:bg-gama-50 data-[active]:bg-delta-50", o && "border-0 border-b border-solid border-delta-200"),
130
+ children: [o ? /* @__PURE__ */ s(De, {
131
+ dataTest: `${r}-${a(t)}-checkbox`,
132
+ checked: l.selected,
133
+ size: "small",
134
+ hideWrapper: !0
135
+ }) : /* @__PURE__ */ s("span", {
136
+ className: "w-5",
137
+ children: l.selected && /* @__PURE__ */ s(Ce, {
138
+ width: 20,
139
+ height: 20,
140
+ className: "text-gama-500"
156
141
  })
157
- })
142
+ }), /* @__PURE__ */ s("span", {
143
+ className: "flex-1 truncate py-2",
144
+ children: a(t)
145
+ })]
146
+ }), Ne = (e, t) => {
147
+ const l = E(e), b = {
148
+ ...ue({ onClick: (S) => {
149
+ l || C(S, e);
150
+ } }),
151
+ key: `${a(e)}-${t}`,
152
+ ref: (S) => {
153
+ _.current[t] = S;
154
+ },
155
+ role: "option",
156
+ id: `${r}-option-${t}`,
157
+ "aria-selected": z(e),
158
+ "aria-disabled": l || void 0,
159
+ "data-active": f === t ? "" : void 0
160
+ }, d = {
161
+ selected: z(e),
162
+ index: t,
163
+ inputValue: c
164
+ };
165
+ return F ? F(b, e, d) : ye(b, e, d);
166
+ };
167
+ return /* @__PURE__ */ D("div", {
168
+ className: x(U.styledSelectAutocompleteWrapper, !X && "w-auto", le, te),
169
+ children: [K(we), n && /* @__PURE__ */ s(je, { children: /* @__PURE__ */ s(ke, {
170
+ context: g,
171
+ modal: !1,
172
+ initialFocus: -1,
173
+ returnFocus: !1,
174
+ children: /* @__PURE__ */ s("ul", {
175
+ ref: fe,
176
+ style: ie,
177
+ ...de(),
178
+ className: x("z-[1300] m-0 list-none overflow-auto rounded-lg border border-delta-200 bg-white py-0 shadow-[0px_2px_4px_0px_rgba(34,33,51,0.15)]", Y?.listbox),
179
+ children: j ? /* @__PURE__ */ s("li", {
180
+ className: "px-3 py-2 text-sm text-delta-600",
181
+ children: H
182
+ }) : h.length === 0 ? /* @__PURE__ */ s("li", {
183
+ className: "px-3 py-2 text-sm text-delta-600",
184
+ children: O
185
+ }) : h.map(Ne)
186
+ })
187
+ }) })]
158
188
  });
159
189
  }
160
190
  export {
161
- Ie as StyledSelectAutocomplete
191
+ lt as StyledSelectAutocomplete
162
192
  };