@drivenets/design-system 0.0.3 → 0.0.4

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 (221) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/components/ds-alert-banner/ds-alert-banner.cjs +157 -52
  3. package/dist/components/ds-alert-banner/ds-alert-banner.d.cts +5 -5
  4. package/dist/components/ds-alert-banner/ds-alert-banner.d.cts.map +1 -1
  5. package/dist/components/ds-alert-banner/ds-alert-banner.js +157 -52
  6. package/dist/components/ds-alert-banner/ds-alert-banner.js.map +1 -1
  7. package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts.map +1 -1
  8. package/dist/components/ds-alert-banner/ds-alert-banner.types.js.map +1 -1
  9. package/dist/components/ds-breadcrumb/ds-breadcrumb.cjs +59 -16
  10. package/dist/components/ds-breadcrumb/ds-breadcrumb.js +59 -16
  11. package/dist/components/ds-breadcrumb/ds-breadcrumb.js.map +1 -1
  12. package/dist/components/ds-button/ds-button.cjs +18 -2
  13. package/dist/components/ds-button/ds-button.d.cts +2 -2
  14. package/dist/components/ds-button/ds-button.d.ts +2 -2
  15. package/dist/components/ds-button/ds-button.js +18 -2
  16. package/dist/components/ds-button/ds-button.js.map +1 -1
  17. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.cjs +79 -10
  18. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js +79 -10
  19. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js.map +1 -1
  20. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.cjs +78 -10
  21. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js +78 -10
  22. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js.map +1 -1
  23. package/dist/components/ds-checkbox/ds-checkbox.cjs +89 -18
  24. package/dist/components/ds-checkbox/ds-checkbox.js +89 -18
  25. package/dist/components/ds-checkbox/ds-checkbox.js.map +1 -1
  26. package/dist/components/ds-chip/ds-chip.cjs +100 -30
  27. package/dist/components/ds-chip/ds-chip.js +100 -30
  28. package/dist/components/ds-chip/ds-chip.js.map +1 -1
  29. package/dist/components/ds-chip-group/ds-chip-group.cjs +6 -6
  30. package/dist/components/ds-chip-group/ds-chip-group.js +6 -6
  31. package/dist/components/ds-chip-group/ds-chip-group.js.map +1 -1
  32. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js.map +1 -1
  33. package/dist/components/ds-confirmation/ds-confirmation.cjs +210 -56
  34. package/dist/components/ds-confirmation/ds-confirmation.d.cts +8 -8
  35. package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -1
  36. package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
  37. package/dist/components/ds-confirmation/ds-confirmation.js +210 -56
  38. package/dist/components/ds-confirmation/ds-confirmation.js.map +1 -1
  39. package/dist/components/ds-dialog/ds-dialog.js.map +1 -1
  40. package/dist/components/ds-drawer/ds-drawer.cjs +261 -61
  41. package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
  42. package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
  43. package/dist/components/ds-drawer/ds-drawer.js +261 -61
  44. package/dist/components/ds-drawer/ds-drawer.js.map +1 -1
  45. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +481 -135
  46. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +481 -135
  47. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
  48. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.cjs +146 -56
  49. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
  50. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
  51. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js +146 -56
  52. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js.map +1 -1
  53. package/dist/components/ds-file-upload/components/file-upload/file-upload.cjs +190 -69
  54. package/dist/components/ds-file-upload/components/file-upload/file-upload.js +190 -69
  55. package/dist/components/ds-file-upload/components/file-upload/file-upload.js.map +1 -1
  56. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +273 -132
  57. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js +273 -132
  58. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js.map +1 -1
  59. package/dist/components/ds-file-upload/ds-file-upload.cjs +96 -16
  60. package/dist/components/ds-file-upload/ds-file-upload.js +96 -16
  61. package/dist/components/ds-file-upload/ds-file-upload.js.map +1 -1
  62. package/dist/components/ds-file-upload/errors/file-upload-errors.js.map +1 -1
  63. package/dist/components/ds-file-upload/hooks/use-file-upload.cjs +93 -93
  64. package/dist/components/ds-file-upload/hooks/use-file-upload.js +93 -93
  65. package/dist/components/ds-file-upload/hooks/use-file-upload.js.map +1 -1
  66. package/dist/components/ds-file-upload/types/accept-types.js.map +1 -1
  67. package/dist/components/ds-file-upload/utils/accept-utils.js.map +1 -1
  68. package/dist/components/ds-file-upload/utils/constants.js.map +1 -1
  69. package/dist/components/ds-file-upload/utils/file-factory.js.map +1 -1
  70. package/dist/components/ds-file-upload/utils/format-file-size.js.map +1 -1
  71. package/dist/components/ds-file-upload/utils/generate-helper-text.js.map +1 -1
  72. package/dist/components/ds-file-upload/utils/get-error-message.js.map +1 -1
  73. package/dist/components/ds-file-upload/utils/is-file-equal.js.map +1 -1
  74. package/dist/components/ds-form-control/ds-form-control.cjs +119 -34
  75. package/dist/components/ds-form-control/ds-form-control.d.cts +7 -7
  76. package/dist/components/ds-form-control/ds-form-control.d.ts +7 -7
  77. package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -1
  78. package/dist/components/ds-form-control/ds-form-control.js +119 -34
  79. package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
  80. package/dist/components/ds-form-control/ds-form-control.types.js.map +1 -1
  81. package/dist/components/ds-grid/ds-grid.js.map +1 -1
  82. package/dist/components/ds-icon/ds-icon.cjs +84 -13
  83. package/dist/components/ds-icon/ds-icon.js +84 -13
  84. package/dist/components/ds-icon/ds-icon.js.map +1 -1
  85. package/dist/components/ds-icon/ds-icon.types.d.cts.map +1 -1
  86. package/dist/components/ds-icon/ds-icon.types.js.map +1 -1
  87. package/dist/components/ds-modal/ds-modal.cjs +222 -55
  88. package/dist/components/ds-modal/ds-modal.d.cts +8 -8
  89. package/dist/components/ds-modal/ds-modal.d.cts.map +1 -1
  90. package/dist/components/ds-modal/ds-modal.d.ts +8 -8
  91. package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
  92. package/dist/components/ds-modal/ds-modal.js +222 -55
  93. package/dist/components/ds-modal/ds-modal.js.map +1 -1
  94. package/dist/components/ds-number-input/ds-number-input.cjs +136 -49
  95. package/dist/components/ds-number-input/ds-number-input.js +136 -49
  96. package/dist/components/ds-number-input/ds-number-input.js.map +1 -1
  97. package/dist/components/ds-panel/ds-panel.cjs +111 -19
  98. package/dist/components/ds-panel/ds-panel.d.cts +2 -2
  99. package/dist/components/ds-panel/ds-panel.d.cts.map +1 -1
  100. package/dist/components/ds-panel/ds-panel.js +111 -19
  101. package/dist/components/ds-panel/ds-panel.js.map +1 -1
  102. package/dist/components/ds-password-input/ds-password-input.cjs +108 -41
  103. package/dist/components/ds-password-input/ds-password-input.js +108 -41
  104. package/dist/components/ds-password-input/ds-password-input.js.map +1 -1
  105. package/dist/components/ds-popover/ds-popover.cjs +50 -12
  106. package/dist/components/ds-popover/ds-popover.js +50 -12
  107. package/dist/components/ds-popover/ds-popover.js.map +1 -1
  108. package/dist/components/ds-radio-group/ds-radio-group.cjs +209 -53
  109. package/dist/components/ds-radio-group/ds-radio-group.js +209 -53
  110. package/dist/components/ds-radio-group/ds-radio-group.js.map +1 -1
  111. package/dist/components/ds-select/ds-select.cjs +198 -89
  112. package/dist/components/ds-select/ds-select.d.cts +2 -2
  113. package/dist/components/ds-select/ds-select.d.cts.map +1 -1
  114. package/dist/components/ds-select/ds-select.js +198 -89
  115. package/dist/components/ds-select/ds-select.js.map +1 -1
  116. package/dist/components/ds-select/select-items-chips.cjs +73 -22
  117. package/dist/components/ds-select/select-items-chips.js +73 -22
  118. package/dist/components/ds-select/select-items-chips.js.map +1 -1
  119. package/dist/components/ds-smart-tabs/ds-smart-tabs.cjs +208 -46
  120. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
  121. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts.map +1 -1
  122. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
  123. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
  124. package/dist/components/ds-smart-tabs/ds-smart-tabs.js +208 -46
  125. package/dist/components/ds-smart-tabs/ds-smart-tabs.js.map +1 -1
  126. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.js.map +1 -1
  127. package/dist/components/ds-spinner/ds-spinner.cjs +90 -20
  128. package/dist/components/ds-spinner/ds-spinner.js +90 -20
  129. package/dist/components/ds-spinner/ds-spinner.js.map +1 -1
  130. package/dist/components/ds-spinner/ds-spinner.types.js.map +1 -1
  131. package/dist/components/ds-status-badge/ds-status-badge.cjs +54 -11
  132. package/dist/components/ds-status-badge/ds-status-badge.js +54 -11
  133. package/dist/components/ds-status-badge/ds-status-badge.js.map +1 -1
  134. package/dist/components/ds-stepper/components/ds-step-content.cjs +59 -13
  135. package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
  136. package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
  137. package/dist/components/ds-stepper/components/ds-step-content.js +59 -13
  138. package/dist/components/ds-stepper/components/ds-step-content.js.map +1 -1
  139. package/dist/components/ds-stepper/components/ds-step-description.cjs +14 -5
  140. package/dist/components/ds-stepper/components/ds-step-description.js +14 -5
  141. package/dist/components/ds-stepper/components/ds-step-description.js.map +1 -1
  142. package/dist/components/ds-stepper/components/ds-step-label.cjs +14 -5
  143. package/dist/components/ds-stepper/components/ds-step-label.js +14 -5
  144. package/dist/components/ds-stepper/components/ds-step-label.js.map +1 -1
  145. package/dist/components/ds-stepper/components/ds-step-next-button.cjs +23 -6
  146. package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
  147. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
  148. package/dist/components/ds-stepper/components/ds-step-next-button.js +23 -6
  149. package/dist/components/ds-stepper/components/ds-step-next-button.js.map +1 -1
  150. package/dist/components/ds-stepper/components/ds-step.cjs +106 -25
  151. package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
  152. package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
  153. package/dist/components/ds-stepper/components/ds-step.js +106 -25
  154. package/dist/components/ds-stepper/components/ds-step.js.map +1 -1
  155. package/dist/components/ds-stepper/ds-stepper.cjs +62 -15
  156. package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
  157. package/dist/components/ds-stepper/ds-stepper.d.cts.map +1 -1
  158. package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
  159. package/dist/components/ds-stepper/ds-stepper.js +62 -15
  160. package/dist/components/ds-stepper/ds-stepper.js.map +1 -1
  161. package/dist/components/ds-stepper/hooks/use-stepper.js.map +1 -1
  162. package/dist/components/ds-stepper/hooks/use-steps.cjs +29 -9
  163. package/dist/components/ds-stepper/hooks/use-steps.js +29 -9
  164. package/dist/components/ds-stepper/hooks/use-steps.js.map +1 -1
  165. package/dist/components/ds-system-status/ds-system-status.cjs +37 -7
  166. package/dist/components/ds-system-status/ds-system-status.js +37 -7
  167. package/dist/components/ds-system-status/ds-system-status.js.map +1 -1
  168. package/dist/components/ds-system-status/ds-system-status.types.js.map +1 -1
  169. package/dist/components/ds-table/components/core-table/core-table.cjs +281 -48
  170. package/dist/components/ds-table/components/core-table/core-table.js +281 -48
  171. package/dist/components/ds-table/components/core-table/core-table.js.map +1 -1
  172. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.cjs +134 -50
  173. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js +134 -50
  174. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js.map +1 -1
  175. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.cjs +140 -43
  176. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js +140 -43
  177. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js.map +1 -1
  178. package/dist/components/ds-table/components/ds-table-header/ds-table-header.cjs +37 -6
  179. package/dist/components/ds-table/components/ds-table-header/ds-table-header.js +37 -6
  180. package/dist/components/ds-table/components/ds-table-header/ds-table-header.js.map +1 -1
  181. package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +272 -100
  182. package/dist/components/ds-table/components/ds-table-row/ds-table-row.js +272 -100
  183. package/dist/components/ds-table/components/ds-table-row/ds-table-row.js.map +1 -1
  184. package/dist/components/ds-table/context/ds-table-context.js.map +1 -1
  185. package/dist/components/ds-table/ds-table.cjs +15 -15
  186. package/dist/components/ds-table/ds-table.d.cts +2 -2
  187. package/dist/components/ds-table/ds-table.js +15 -15
  188. package/dist/components/ds-table/ds-table.js.map +1 -1
  189. package/dist/components/ds-table/hooks/use-drag-and-drop.cjs +126 -38
  190. package/dist/components/ds-table/hooks/use-drag-and-drop.js +126 -38
  191. package/dist/components/ds-table/hooks/use-drag-and-drop.js.map +1 -1
  192. package/dist/components/ds-table/utils/column-styling.js.map +1 -1
  193. package/dist/components/ds-table/utils/create-columns-grid-template.js.map +1 -1
  194. package/dist/components/ds-table/utils/merge-refs.js.map +1 -1
  195. package/dist/components/ds-text-input/ds-text-input.cjs +128 -43
  196. package/dist/components/ds-text-input/ds-text-input.js +128 -43
  197. package/dist/components/ds-text-input/ds-text-input.js.map +1 -1
  198. package/dist/components/ds-text-input/ds-text-input.types.js.map +1 -1
  199. package/dist/components/ds-textarea/ds-textarea.cjs +66 -22
  200. package/dist/components/ds-textarea/ds-textarea.js +66 -22
  201. package/dist/components/ds-textarea/ds-textarea.js.map +1 -1
  202. package/dist/components/ds-toast/ds-toast-context.cjs +62 -17
  203. package/dist/components/ds-toast/ds-toast-context.js +62 -17
  204. package/dist/components/ds-toast/ds-toast-context.js.map +1 -1
  205. package/dist/components/ds-toast/ds-toast.cjs +90 -26
  206. package/dist/components/ds-toast/ds-toast.js +90 -26
  207. package/dist/components/ds-toast/ds-toast.js.map +1 -1
  208. package/dist/components/ds-tooltip/ds-tooltip.cjs +51 -13
  209. package/dist/components/ds-tooltip/ds-tooltip.js +51 -13
  210. package/dist/components/ds-tooltip/ds-tooltip.js.map +1 -1
  211. package/dist/components/ds-typography/ds-typography.cjs +51 -7
  212. package/dist/components/ds-typography/ds-typography.config.js.map +1 -1
  213. package/dist/components/ds-typography/ds-typography.js +51 -7
  214. package/dist/components/ds-typography/ds-typography.js.map +1 -1
  215. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.cjs +91 -30
  216. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
  217. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
  218. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js +91 -30
  219. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js.map +1 -1
  220. package/dist/index.min.css +1 -1
  221. package/package.json +7 -1
@@ -8,6 +8,7 @@ import ds_checkbox_default from "../ds-checkbox/ds-checkbox.js";
8
8
  import "../ds-checkbox/index.js";
9
9
  import ds_select_module_default from "./ds-select.module.js";
10
10
  import { SelectItemsChips } from "./select-items-chips.js";
11
+ import { c } from "react/compiler-runtime";
11
12
  import classNames from "classnames";
12
13
  import { jsx, jsxs } from "react/jsx-runtime";
13
14
  import { useState } from "react";
@@ -21,46 +22,214 @@ const SELECT_ALL = {
21
22
  label: "All",
22
23
  value: SELECT_ALL_VALUE
23
24
  };
24
- const DsSelect = ({ id, options: userOptions, value, style, size, clearable, onClear, onBlur, className, placeholder = "Click to select a value", disabled, ...multiselectProps }) => {
25
+ const DsSelect = (t0) => {
26
+ const $ = c(35);
27
+ const { id, options: userOptions, value, style, size, clearable, onClear, onBlur, className, placeholder: t1, disabled, ...multiselectProps } = t0;
28
+ const placeholder = t1 === void 0 ? "Click to select a value" : t1;
25
29
  const [searchTerm, setSearchTerm] = useState("");
26
30
  const [showAllItems, setShowAllItems] = useState(false);
27
31
  const internalOptions = multiselectProps.multiple ? [SELECT_ALL, ...userOptions] : userOptions;
28
32
  const collection = createListCollection({
29
33
  items: internalOptions,
30
- itemToValue: (item) => item.value
34
+ itemToValue: _temp
31
35
  });
32
- const filteredOptions = internalOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
33
- const normalizedValue = Array.isArray(value) ? value : [value].filter((value$1) => !!value$1);
36
+ let t2;
37
+ if ($[0] !== searchTerm) {
38
+ t2 = (option) => option.label.toLowerCase().includes(searchTerm.toLowerCase());
39
+ $[0] = searchTerm;
40
+ $[1] = t2;
41
+ } else t2 = $[1];
42
+ const filteredOptions = internalOptions.filter(t2);
43
+ const normalizedValue = Array.isArray(value) ? value : [value].filter(_temp2);
44
+ let t3;
45
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
46
+ t3 = () => {
47
+ setSearchTerm("");
48
+ setShowAllItems(false);
49
+ };
50
+ $[2] = t3;
51
+ } else t3 = $[2];
34
52
  const select = useSelect({
35
53
  collection,
36
54
  disabled,
37
55
  multiple: multiselectProps.multiple,
38
56
  value: normalizedValue,
39
57
  ids: { trigger: id },
40
- onOpenChange: () => {
41
- setSearchTerm("");
42
- setShowAllItems(false);
43
- },
58
+ onOpenChange: t3,
44
59
  onValueChange: (details) => {
45
60
  if (!multiselectProps.multiple) {
46
61
  multiselectProps.onValueChange?.(details.value[0]);
47
62
  return;
48
63
  }
49
64
  if (details.value.includes(SELECT_ALL_VALUE)) {
50
- const newValues = select.selectedItems.length === userOptions.length ? [] : userOptions.map((opt) => opt.value);
65
+ const newValues = select.selectedItems.length === userOptions.length ? [] : userOptions.map(_temp3);
51
66
  multiselectProps.onValueChange?.(newValues);
52
67
  return;
53
68
  }
54
- const newValueWithoutSelectAll = details.value.filter((val) => val !== SELECT_ALL_VALUE);
69
+ const newValueWithoutSelectAll = details.value.filter(_temp4);
55
70
  multiselectProps.onValueChange?.(newValueWithoutSelectAll);
56
71
  }
57
72
  });
73
+ const t4 = size === "small" && ds_select_module_default.small;
74
+ let t5;
75
+ if ($[3] !== className || $[4] !== t4) {
76
+ t5 = classNames(ds_select_module_default.control, t4, className);
77
+ $[3] = className;
78
+ $[4] = t4;
79
+ $[5] = t5;
80
+ } else t5 = $[5];
81
+ let t6;
82
+ if ($[6] !== placeholder) {
83
+ t6 = /* @__PURE__ */ jsx(ds_typography_default, {
84
+ className: ds_select_module_default.valueText,
85
+ variant: "body-sm-reg",
86
+ asChild: true,
87
+ children: /* @__PURE__ */ jsx(Select.ValueText, { placeholder })
88
+ });
89
+ $[6] = placeholder;
90
+ $[7] = t6;
91
+ } else t6 = $[7];
92
+ const t7 = size === "small" ? "small" : "medium";
93
+ let t8;
94
+ if ($[8] !== t7) {
95
+ t8 = /* @__PURE__ */ jsx(Select.Indicator, {
96
+ className: ds_select_module_default.triggerIcon,
97
+ children: /* @__PURE__ */ jsx(ds_icon_default, {
98
+ icon: "keyboard_arrow_down",
99
+ size: t7
100
+ })
101
+ });
102
+ $[8] = t7;
103
+ $[9] = t8;
104
+ } else t8 = $[9];
105
+ let t9;
106
+ if ($[10] !== id || $[11] !== t6 || $[12] !== t8) {
107
+ t9 = /* @__PURE__ */ jsxs(Select.Trigger, {
108
+ id,
109
+ className: ds_select_module_default.trigger,
110
+ "aria-labelledby": null,
111
+ children: [t6, t8]
112
+ });
113
+ $[10] = id;
114
+ $[11] = t6;
115
+ $[12] = t8;
116
+ $[13] = t9;
117
+ } else t9 = $[13];
118
+ let t10;
119
+ if ($[14] !== clearable || $[15] !== onClear || $[16] !== size) {
120
+ t10 = clearable && /* @__PURE__ */ jsx(Select.ClearTrigger, {
121
+ className: ds_select_module_default.clearIcon,
122
+ onClick: onClear,
123
+ children: /* @__PURE__ */ jsx(ds_icon_default, {
124
+ icon: "close",
125
+ size: size === "small" ? "small" : "medium"
126
+ })
127
+ });
128
+ $[14] = clearable;
129
+ $[15] = onClear;
130
+ $[16] = size;
131
+ $[17] = t10;
132
+ } else t10 = $[17];
133
+ const T0 = Portal;
134
+ const t11 = Select;
135
+ const t12 = ds_select_module_default;
136
+ const t13 = Select;
137
+ const t14 = ds_select_module_default;
138
+ let t15;
139
+ if ($[18] !== searchTerm || $[19] !== userOptions.length) {
140
+ t15 = userOptions.length > SEARCH_THRESHOLD && /* @__PURE__ */ jsx("div", {
141
+ className: ds_select_module_default.searchInput,
142
+ children: /* @__PURE__ */ jsx(ds_text_input_default, {
143
+ placeholder: "Search",
144
+ value: searchTerm,
145
+ onChange: (e_0) => setSearchTerm(e_0.target.value),
146
+ onKeyDown: _temp5,
147
+ slots: { startAdornment: /* @__PURE__ */ jsx(ds_icon_default, {
148
+ icon: "search",
149
+ size: "tiny"
150
+ }) }
151
+ })
152
+ });
153
+ $[18] = searchTerm;
154
+ $[19] = userOptions.length;
155
+ $[20] = t15;
156
+ } else t15 = $[20];
157
+ const t16 = multiselectProps.multiple && /* @__PURE__ */ jsx(SelectItemsChips, {
158
+ onValueChange: multiselectProps.onValueChange,
159
+ showAll: showAllItems,
160
+ onShowAll: () => setShowAllItems(true),
161
+ count: 6
162
+ });
163
+ const t17 = filteredOptions.map((item_0) => {
164
+ const checked = getItemCheckedState({
165
+ item: item_0,
166
+ select,
167
+ options: internalOptions
168
+ });
169
+ return /* @__PURE__ */ jsx(ds_typography_default, {
170
+ variant: "body-sm-reg",
171
+ asChild: true,
172
+ className: ds_select_module_default.item,
173
+ children: /* @__PURE__ */ jsxs(Select.Item, {
174
+ item: item_0,
175
+ children: [
176
+ multiselectProps.multiple && /* @__PURE__ */ jsx(ds_checkbox_default, { checked }),
177
+ item_0.icon && /* @__PURE__ */ jsx(ds_icon_default, {
178
+ className: ds_select_module_default.itemIcon,
179
+ icon: item_0.icon,
180
+ "aria-hidden": "true"
181
+ }),
182
+ /* @__PURE__ */ jsx(Select.ItemText, { children: item_0.label })
183
+ ]
184
+ })
185
+ }, collection.getItemValue(item_0));
186
+ });
187
+ let t18;
188
+ if ($[21] !== t13.Content || $[22] !== t14.content || $[23] !== t15 || $[24] !== t16 || $[25] !== t17) {
189
+ t18 = /* @__PURE__ */ jsxs(t13.Content, {
190
+ className: t14.content,
191
+ children: [
192
+ t15,
193
+ t16,
194
+ t17
195
+ ]
196
+ });
197
+ $[21] = t13.Content;
198
+ $[22] = t14.content;
199
+ $[23] = t15;
200
+ $[24] = t16;
201
+ $[25] = t17;
202
+ $[26] = t18;
203
+ } else t18 = $[26];
204
+ let t19;
205
+ if ($[27] !== t11.Positioner || $[28] !== t12.viewport || $[29] !== t18) {
206
+ t19 = /* @__PURE__ */ jsx(t11.Positioner, {
207
+ className: t12.viewport,
208
+ children: t18
209
+ });
210
+ $[27] = t11.Positioner;
211
+ $[28] = t12.viewport;
212
+ $[29] = t18;
213
+ $[30] = t19;
214
+ } else t19 = $[30];
215
+ let t20;
216
+ if ($[31] !== T0 || $[32] !== t19) {
217
+ t20 = /* @__PURE__ */ jsx(T0, { children: t19 });
218
+ $[31] = T0;
219
+ $[32] = t19;
220
+ $[33] = t20;
221
+ } else t20 = $[33];
222
+ let t21;
223
+ if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
224
+ t21 = /* @__PURE__ */ jsx(Select.HiddenSelect, { style: { display: "none" } });
225
+ $[34] = t21;
226
+ } else t21 = $[34];
58
227
  return /* @__PURE__ */ jsxs(Select.RootProvider, {
59
228
  value: select,
60
229
  lazyMount: true,
61
230
  children: [
62
231
  /* @__PURE__ */ jsxs(Select.Control, {
63
- className: classNames(ds_select_module_default.control, size === "small" && ds_select_module_default.small, className),
232
+ className: t5,
64
233
  style,
65
234
  onBlur,
66
235
  onKeyDown: (e) => {
@@ -72,85 +241,10 @@ const DsSelect = ({ id, options: userOptions, value, style, size, clearable, onC
72
241
  onClear?.();
73
242
  }
74
243
  },
75
- children: [/* @__PURE__ */ jsxs(Select.Trigger, {
76
- id,
77
- className: ds_select_module_default.trigger,
78
- "aria-labelledby": null,
79
- children: [/* @__PURE__ */ jsx(ds_typography_default, {
80
- className: ds_select_module_default.valueText,
81
- variant: "body-sm-reg",
82
- asChild: true,
83
- children: /* @__PURE__ */ jsx(Select.ValueText, { placeholder })
84
- }), /* @__PURE__ */ jsx(Select.Indicator, {
85
- className: ds_select_module_default.triggerIcon,
86
- children: /* @__PURE__ */ jsx(ds_icon_default, {
87
- icon: "keyboard_arrow_down",
88
- size: size === "small" ? "small" : "medium"
89
- })
90
- })]
91
- }), clearable && /* @__PURE__ */ jsx(Select.ClearTrigger, {
92
- className: ds_select_module_default.clearIcon,
93
- onClick: onClear,
94
- children: /* @__PURE__ */ jsx(ds_icon_default, {
95
- icon: "close",
96
- size: size === "small" ? "small" : "medium"
97
- })
98
- })]
244
+ children: [t9, t10]
99
245
  }),
100
- /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Select.Positioner, {
101
- className: ds_select_module_default.viewport,
102
- children: /* @__PURE__ */ jsxs(Select.Content, {
103
- className: ds_select_module_default.content,
104
- children: [
105
- userOptions.length > SEARCH_THRESHOLD && /* @__PURE__ */ jsx("div", {
106
- className: ds_select_module_default.searchInput,
107
- children: /* @__PURE__ */ jsx(ds_text_input_default, {
108
- placeholder: "Search",
109
- value: searchTerm,
110
- onChange: (e) => setSearchTerm(e.target.value),
111
- onKeyDown: (e) => {
112
- if (e.key === " ") e.stopPropagation();
113
- },
114
- slots: { startAdornment: /* @__PURE__ */ jsx(ds_icon_default, {
115
- icon: "search",
116
- size: "tiny"
117
- }) }
118
- })
119
- }),
120
- multiselectProps.multiple && /* @__PURE__ */ jsx(SelectItemsChips, {
121
- onValueChange: multiselectProps.onValueChange,
122
- showAll: showAllItems,
123
- onShowAll: () => setShowAllItems(true),
124
- count: 6
125
- }),
126
- filteredOptions.map((item) => {
127
- const checked = getItemCheckedState({
128
- item,
129
- select,
130
- options: internalOptions
131
- });
132
- return /* @__PURE__ */ jsx(ds_typography_default, {
133
- variant: "body-sm-reg",
134
- asChild: true,
135
- className: ds_select_module_default.item,
136
- children: /* @__PURE__ */ jsxs(Select.Item, {
137
- item,
138
- children: [
139
- multiselectProps.multiple && /* @__PURE__ */ jsx(ds_checkbox_default, { checked }),
140
- item.icon && /* @__PURE__ */ jsx(ds_icon_default, {
141
- className: ds_select_module_default.itemIcon,
142
- icon: item.icon,
143
- "aria-hidden": "true"
144
- }),
145
- /* @__PURE__ */ jsx(Select.ItemText, { children: item.label })
146
- ]
147
- })
148
- }, collection.getItemValue(item));
149
- })
150
- ]
151
- })
152
- }) }),
153
- /* @__PURE__ */ jsx(Select.HiddenSelect, { style: { display: "none" } })
246
+ t20,
247
+ t21
154
248
  ]
155
249
  });
156
250
  };
@@ -160,6 +254,21 @@ function getItemCheckedState({ item, select, options }) {
160
254
  return select.hasSelectedItems ? "indeterminate" : false;
161
255
  }
162
256
  var ds_select_default = DsSelect;
257
+ function _temp(item) {
258
+ return item.value;
259
+ }
260
+ function _temp2(value_0) {
261
+ return !!value_0;
262
+ }
263
+ function _temp3(opt) {
264
+ return opt.value;
265
+ }
266
+ function _temp4(val) {
267
+ return val !== SELECT_ALL_VALUE;
268
+ }
269
+ function _temp5(e_1) {
270
+ if (e_1.key === " ") e_1.stopPropagation();
271
+ }
163
272
 
164
273
  //#endregion
165
274
  export { ds_select_default as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ds-select.js","names":["SELECT_ALL: DsSelectOption","value","styles","DsTypography","DsIcon","DsTextInput","DsCheckbox"],"sources":["../../../src/components/ds-select/ds-select.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { type UseSelectReturn, Select, createListCollection, useSelect } from '@ark-ui/react/select';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport styles from './ds-select.module.scss';\nimport type { DsSelectOption, DsSelectProps } from './ds-select.types';\nimport { DsIcon } from '../ds-icon';\nimport { type DsCheckboxProps, DsCheckbox } from '../ds-checkbox';\nimport { SelectItemsChips } from './select-items-chips';\nimport { DsTypography } from '../ds-typography';\nimport { DsTextInput } from '../ds-text-input';\n\nconst SEARCH_THRESHOLD = 13;\nconst SELECT_ALL_VALUE = '__INTERNAL_SELECT_ALL_VALUE__';\n\nconst SELECT_ALL: DsSelectOption = {\n\tlabel: 'All',\n\tvalue: SELECT_ALL_VALUE,\n};\n\nconst DsSelect = ({\n\tid,\n\toptions: userOptions,\n\tvalue,\n\tstyle,\n\tsize,\n\tclearable,\n\tonClear,\n\tonBlur,\n\tclassName,\n\tplaceholder = 'Click to select a value',\n\tdisabled,\n\t...multiselectProps\n}: DsSelectProps) => {\n\tconst [searchTerm, setSearchTerm] = useState('');\n\tconst [showAllItems, setShowAllItems] = useState(false);\n\n\tconst internalOptions = multiselectProps.multiple ? [SELECT_ALL, ...userOptions] : userOptions;\n\n\tconst collection = createListCollection({\n\t\titems: internalOptions,\n\t\titemToValue: (item) => item.value,\n\t});\n\n\tconst filteredOptions = internalOptions.filter((option) =>\n\t\toption.label.toLowerCase().includes(searchTerm.toLowerCase()),\n\t);\n\n\tconst normalizedValue = Array.isArray(value) ? value : [value].filter((value) => !!value);\n\n\tconst select = useSelect({\n\t\tcollection,\n\t\tdisabled,\n\t\tmultiple: multiselectProps.multiple,\n\t\tvalue: normalizedValue,\n\n\t\t// Override Ark's auto-generated trigger id if an id provided by the user.\n\t\t// See: https://github.com/chakra-ui/zag/blob/f6e079095/packages/machines/select/src/select.dom.ts#L5\n\t\tids: { trigger: id },\n\n\t\tonOpenChange: () => {\n\t\t\tsetSearchTerm('');\n\t\t\tsetShowAllItems(false);\n\t\t},\n\n\t\tonValueChange: (details) => {\n\t\t\t// Single select mode.\n\t\t\tif (!multiselectProps.multiple) {\n\t\t\t\tmultiselectProps.onValueChange?.(details.value[0]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \"Select All\" clicked in multi select mode.\n\t\t\tconst isSelectAllClicked = details.value.includes(SELECT_ALL_VALUE);\n\n\t\t\tif (isSelectAllClicked) {\n\t\t\t\tconst areAllOptionsSelected = select.selectedItems.length === userOptions.length;\n\n\t\t\t\tconst newValues = areAllOptionsSelected ? [] : userOptions.map((opt) => opt.value);\n\n\t\t\t\tmultiselectProps.onValueChange?.(newValues);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \"Regular\" multi select mode.\n\t\t\tconst newValueWithoutSelectAll = details.value.filter((val) => val !== SELECT_ALL_VALUE);\n\n\t\t\tmultiselectProps.onValueChange?.(newValueWithoutSelectAll);\n\t\t},\n\t});\n\n\treturn (\n\t\t<Select.RootProvider\n\t\t\tvalue={select}\n\t\t\t// When rendering the Select inside a Modal, it has an `aria-hidden=\"true\"` attribute\n\t\t\t// which causes screen readers to ignore it.\n\t\t\t//\n\t\t\t// See: https://github.com/chakra-ui/ark/issues/3728\n\t\t\tlazyMount\n\t\t>\n\t\t\t<Select.Control\n\t\t\t\tclassName={classNames(styles.control, size === 'small' && styles.small, className)}\n\t\t\t\tstyle={style}\n\t\t\t\tonBlur={onBlur}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (!clearable) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (select.open) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (e.key === 'Backspace' || e.key === 'Delete') {\n\t\t\t\t\t\tif (multiselectProps.multiple) {\n\t\t\t\t\t\t\tmultiselectProps.onValueChange?.([]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmultiselectProps.onValueChange?.('');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonClear?.();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Select.Trigger\n\t\t\t\t\tid={id}\n\t\t\t\t\tclassName={styles.trigger}\n\t\t\t\t\t// Ark expects a `Select.Label` component to exist and automatically label the trigger\n\t\t\t\t\t// with it. We're using the `DsFormControl` label handling instead, so we disable the\n\t\t\t\t\t// automatic labelling here.\n\t\t\t\t\taria-labelledby={null as never}\n\t\t\t\t>\n\t\t\t\t\t<DsTypography className={styles.valueText} variant=\"body-sm-reg\" asChild>\n\t\t\t\t\t\t<Select.ValueText placeholder={placeholder} />\n\t\t\t\t\t</DsTypography>\n\n\t\t\t\t\t<Select.Indicator className={styles.triggerIcon}>\n\t\t\t\t\t\t<DsIcon icon=\"keyboard_arrow_down\" size={size === 'small' ? 'small' : 'medium'} />\n\t\t\t\t\t</Select.Indicator>\n\t\t\t\t</Select.Trigger>\n\n\t\t\t\t{clearable && (\n\t\t\t\t\t<Select.ClearTrigger className={styles.clearIcon} onClick={onClear}>\n\t\t\t\t\t\t<DsIcon icon=\"close\" size={size === 'small' ? 'small' : 'medium'} />\n\t\t\t\t\t</Select.ClearTrigger>\n\t\t\t\t)}\n\t\t\t</Select.Control>\n\t\t\t<Portal>\n\t\t\t\t<Select.Positioner className={styles.viewport}>\n\t\t\t\t\t<Select.Content className={styles.content}>\n\t\t\t\t\t\t{userOptions.length > SEARCH_THRESHOLD && (\n\t\t\t\t\t\t\t<div className={styles.searchInput}>\n\t\t\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\t\t\tonChange={(e) => setSearchTerm(e.target.value)}\n\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t// Prevent the select from opening/closing when pressing space in the search input.\n\t\t\t\t\t\t\t\t\t\tif (e.key === ' ') {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{multiselectProps.multiple && (\n\t\t\t\t\t\t\t<SelectItemsChips\n\t\t\t\t\t\t\t\tonValueChange={multiselectProps.onValueChange}\n\t\t\t\t\t\t\t\tshowAll={showAllItems}\n\t\t\t\t\t\t\t\tonShowAll={() => setShowAllItems(true)}\n\t\t\t\t\t\t\t\t// TODO: Find a way to calculate this based on the size of the select.\n\t\t\t\t\t\t\t\tcount={6}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{filteredOptions.map((item) => {\n\t\t\t\t\t\t\tconst checked = getItemCheckedState({ item, select, options: internalOptions });\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DsTypography\n\t\t\t\t\t\t\t\t\tvariant=\"body-sm-reg\"\n\t\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\t\tkey={collection.getItemValue(item)}\n\t\t\t\t\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Select.Item item={item}>\n\t\t\t\t\t\t\t\t\t\t{multiselectProps.multiple && <DsCheckbox checked={checked} />}\n\t\t\t\t\t\t\t\t\t\t{item.icon && <DsIcon className={styles.itemIcon} icon={item.icon} aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t\t\t<Select.ItemText>{item.label}</Select.ItemText>\n\t\t\t\t\t\t\t\t\t</Select.Item>\n\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Select.Content>\n\t\t\t\t</Select.Positioner>\n\t\t\t</Portal>\n\n\t\t\t{/*\n\t\t\t\tThis element isn't properly hidden by Zag, so we hide it manually.\n\t\t\t \tFor more information, see: https://github.com/chakra-ui/zag/issues/2865\n\t\t\t*/}\n\t\t\t<Select.HiddenSelect style={{ display: 'none' }} />\n\t\t</Select.RootProvider>\n\t);\n};\n\nfunction getItemCheckedState({\n\titem,\n\tselect,\n\toptions,\n}: {\n\titem: DsSelectOption;\n\tselect: UseSelectReturn<DsSelectOption>;\n\toptions: DsSelectOption[];\n}): DsCheckboxProps['checked'] {\n\tconst isRegularItem = item.value !== SELECT_ALL_VALUE;\n\n\tif (isRegularItem) {\n\t\treturn select.getItemState({ item }).selected;\n\t}\n\n\t// Doing -1 since it contains the \"Select All\" option itself.\n\tconst allSelected = select.selectedItems.length === options.length - 1;\n\n\tif (allSelected) {\n\t\treturn true;\n\t}\n\n\tconst someSelected = select.hasSelectedItems;\n\n\treturn someSelected ? 'indeterminate' : false;\n}\n\nexport default DsSelect;\n"],"mappings":";;;;;;;;;;;;;;;;;AAYA,MAAM,mBAAmB;AACzB,MAAM,mBAAmB;AAEzB,MAAMA,aAA6B;CAClC,OAAO;CACP,OAAO;CACP;AAED,MAAM,YAAY,EACjB,IACA,SAAS,aACT,OACA,OACA,MACA,WACA,SACA,QACA,WACA,cAAc,2BACd,UACA,GAAG,uBACiB;CACpB,MAAM,CAAC,YAAY,iBAAiB,SAAS,GAAG;CAChD,MAAM,CAAC,cAAc,mBAAmB,SAAS,MAAM;CAEvD,MAAM,kBAAkB,iBAAiB,WAAW,CAAC,YAAY,GAAG,YAAY,GAAG;CAEnF,MAAM,aAAa,qBAAqB;EACvC,OAAO;EACP,cAAc,SAAS,KAAK;EAC5B,CAAC;CAEF,MAAM,kBAAkB,gBAAgB,QAAQ,WAC/C,OAAO,MAAM,aAAa,CAAC,SAAS,WAAW,aAAa,CAAC,CAC7D;CAED,MAAM,kBAAkB,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,YAAU,CAAC,CAACC,QAAM;CAEzF,MAAM,SAAS,UAAU;EACxB;EACA;EACA,UAAU,iBAAiB;EAC3B,OAAO;EAIP,KAAK,EAAE,SAAS,IAAI;EAEpB,oBAAoB;AACnB,iBAAc,GAAG;AACjB,mBAAgB,MAAM;;EAGvB,gBAAgB,YAAY;AAE3B,OAAI,CAAC,iBAAiB,UAAU;AAC/B,qBAAiB,gBAAgB,QAAQ,MAAM,GAAG;AAClD;;AAMD,OAF2B,QAAQ,MAAM,SAAS,iBAAiB,EAE3C;IAGvB,MAAM,YAFwB,OAAO,cAAc,WAAW,YAAY,SAEhC,EAAE,GAAG,YAAY,KAAK,QAAQ,IAAI,MAAM;AAElF,qBAAiB,gBAAgB,UAAU;AAE3C;;GAID,MAAM,2BAA2B,QAAQ,MAAM,QAAQ,QAAQ,QAAQ,iBAAiB;AAExF,oBAAiB,gBAAgB,yBAAyB;;EAE3D,CAAC;AAEF,QACC,qBAAC,OAAO;EACP,OAAO;EAKP;;GAEA,qBAAC,OAAO;IACP,WAAW,WAAWC,yBAAO,SAAS,SAAS,WAAWA,yBAAO,OAAO,UAAU;IAC3E;IACC;IACR,YAAY,MAAM;AACjB,SAAI,CAAC,UACJ;AAGD,SAAI,OAAO,KACV;AAGD,SAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,UAAU;AAChD,UAAI,iBAAiB,SACpB,kBAAiB,gBAAgB,EAAE,CAAC;UAEpC,kBAAiB,gBAAgB,GAAG;AAGrC,iBAAW;;;eAIb,qBAAC,OAAO;KACH;KACJ,WAAWA,yBAAO;KAIlB,mBAAiB;gBAEjB,oBAACC;MAAa,WAAWD,yBAAO;MAAW,SAAQ;MAAc;gBAChE,oBAAC,OAAO,aAAuB,cAAe;OAChC,EAEf,oBAAC,OAAO;MAAU,WAAWA,yBAAO;gBACnC,oBAACE;OAAO,MAAK;OAAsB,MAAM,SAAS,UAAU,UAAU;QAAY;OAChE;MACH,EAEhB,aACA,oBAAC,OAAO;KAAa,WAAWF,yBAAO;KAAW,SAAS;eAC1D,oBAACE;MAAO,MAAK;MAAQ,MAAM,SAAS,UAAU,UAAU;OAAY;MAC/C;KAEP;GACjB,oBAAC,oBACA,oBAAC,OAAO;IAAW,WAAWF,yBAAO;cACpC,qBAAC,OAAO;KAAQ,WAAWA,yBAAO;;MAChC,YAAY,SAAS,oBACrB,oBAAC;OAAI,WAAWA,yBAAO;iBACtB,oBAACG;QACA,aAAY;QACZ,OAAO;QACP,WAAW,MAAM,cAAc,EAAE,OAAO,MAAM;QAC9C,YAAY,MAAM;AAEjB,aAAI,EAAE,QAAQ,IACb,GAAE,iBAAiB;;QAGrB,OAAO,EACN,gBAAgB,oBAACD;SAAO,MAAK;SAAS,MAAK;UAAS,EACpD;SACA;QACG;MAGN,iBAAiB,YACjB,oBAAC;OACA,eAAe,iBAAiB;OAChC,SAAS;OACT,iBAAiB,gBAAgB,KAAK;OAEtC,OAAO;QACN;MAGF,gBAAgB,KAAK,SAAS;OAC9B,MAAM,UAAU,oBAAoB;QAAE;QAAM;QAAQ,SAAS;QAAiB,CAAC;AAE/E,cACC,oBAACD;QACA,SAAQ;QACR;QAEA,WAAWD,yBAAO;kBAElB,qBAAC,OAAO;SAAW;;UACjB,iBAAiB,YAAY,oBAACI,uBAAoB,UAAW;UAC7D,KAAK,QAAQ,oBAACF;WAAO,WAAWF,yBAAO;WAAU,MAAM,KAAK;WAAM,eAAY;YAAS;UACxF,oBAAC,OAAO,sBAAU,KAAK,QAAwB;;UAClC;UAPT,WAAW,aAAa,KAAK,CAQpB;QAEf;;MACc;KACE,GACZ;GAMT,oBAAC,OAAO,gBAAa,OAAO,EAAE,SAAS,QAAQ,GAAI;;GAC9B;;AAIxB,SAAS,oBAAoB,EAC5B,MACA,QACA,WAK8B;AAG9B,KAFsB,KAAK,UAAU,iBAGpC,QAAO,OAAO,aAAa,EAAE,MAAM,CAAC,CAAC;AAMtC,KAFoB,OAAO,cAAc,WAAW,QAAQ,SAAS,EAGpE,QAAO;AAKR,QAFqB,OAAO,mBAEN,kBAAkB;;AAGzC,wBAAe"}
1
+ {"version":3,"file":"ds-select.js","names":["useState","UseSelectReturn","Select","createListCollection","useSelect","Portal","classNames","styles","DsSelectOption","DsSelectProps","DsIcon","DsCheckboxProps","DsCheckbox","SelectItemsChips","DsTypography","DsTextInput","SEARCH_THRESHOLD","SELECT_ALL_VALUE","SELECT_ALL","label","value","DsSelect","t0","$","_c","id","options","userOptions","style","size","clearable","onClear","onBlur","className","placeholder","t1","disabled","multiselectProps","undefined","searchTerm","setSearchTerm","showAllItems","setShowAllItems","internalOptions","multiple","collection","items","itemToValue","_temp","t2","option","toLowerCase","includes","filteredOptions","filter","normalizedValue","Array","isArray","_temp2","t3","Symbol","for","select","ids","trigger","onOpenChange","onValueChange","details","isSelectAllClicked","areAllOptionsSelected","selectedItems","length","newValues","map","_temp3","newValueWithoutSelectAll","_temp4","t4","small","t5","control","t6","valueText","t7","t8","triggerIcon","t9","t10","clearIcon","T0","t11","t13","t15","searchInput","e_0","e","target","_temp5","startAdornment","t16","t17","item_0","checked","getItemCheckedState","item","getItemValue","icon","itemIcon","t18","Content","t14","content","t19","Positioner","t12","viewport","t20","t21","display","open","key","isRegularItem","getItemState","selected","allSelected","someSelected","hasSelectedItems","value_0","opt","val","e_1","stopPropagation"],"sources":["../../../src/components/ds-select/ds-select.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { type UseSelectReturn, Select, createListCollection, useSelect } from '@ark-ui/react/select';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport styles from './ds-select.module.scss';\nimport type { DsSelectOption, DsSelectProps } from './ds-select.types';\nimport { DsIcon } from '../ds-icon';\nimport { type DsCheckboxProps, DsCheckbox } from '../ds-checkbox';\nimport { SelectItemsChips } from './select-items-chips';\nimport { DsTypography } from '../ds-typography';\nimport { DsTextInput } from '../ds-text-input';\n\nconst SEARCH_THRESHOLD = 13;\nconst SELECT_ALL_VALUE = '__INTERNAL_SELECT_ALL_VALUE__';\n\nconst SELECT_ALL: DsSelectOption = {\n\tlabel: 'All',\n\tvalue: SELECT_ALL_VALUE,\n};\n\nconst DsSelect = ({\n\tid,\n\toptions: userOptions,\n\tvalue,\n\tstyle,\n\tsize,\n\tclearable,\n\tonClear,\n\tonBlur,\n\tclassName,\n\tplaceholder = 'Click to select a value',\n\tdisabled,\n\t...multiselectProps\n}: DsSelectProps) => {\n\tconst [searchTerm, setSearchTerm] = useState('');\n\tconst [showAllItems, setShowAllItems] = useState(false);\n\n\tconst internalOptions = multiselectProps.multiple ? [SELECT_ALL, ...userOptions] : userOptions;\n\n\tconst collection = createListCollection({\n\t\titems: internalOptions,\n\t\titemToValue: (item) => item.value,\n\t});\n\n\tconst filteredOptions = internalOptions.filter((option) =>\n\t\toption.label.toLowerCase().includes(searchTerm.toLowerCase()),\n\t);\n\n\tconst normalizedValue = Array.isArray(value) ? value : [value].filter((value) => !!value);\n\n\tconst select = useSelect({\n\t\tcollection,\n\t\tdisabled,\n\t\tmultiple: multiselectProps.multiple,\n\t\tvalue: normalizedValue,\n\n\t\t// Override Ark's auto-generated trigger id if an id provided by the user.\n\t\t// See: https://github.com/chakra-ui/zag/blob/f6e079095/packages/machines/select/src/select.dom.ts#L5\n\t\tids: { trigger: id },\n\n\t\tonOpenChange: () => {\n\t\t\tsetSearchTerm('');\n\t\t\tsetShowAllItems(false);\n\t\t},\n\n\t\tonValueChange: (details) => {\n\t\t\t// Single select mode.\n\t\t\tif (!multiselectProps.multiple) {\n\t\t\t\tmultiselectProps.onValueChange?.(details.value[0]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \"Select All\" clicked in multi select mode.\n\t\t\tconst isSelectAllClicked = details.value.includes(SELECT_ALL_VALUE);\n\n\t\t\tif (isSelectAllClicked) {\n\t\t\t\tconst areAllOptionsSelected = select.selectedItems.length === userOptions.length;\n\n\t\t\t\tconst newValues = areAllOptionsSelected ? [] : userOptions.map((opt) => opt.value);\n\n\t\t\t\tmultiselectProps.onValueChange?.(newValues);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \"Regular\" multi select mode.\n\t\t\tconst newValueWithoutSelectAll = details.value.filter((val) => val !== SELECT_ALL_VALUE);\n\n\t\t\tmultiselectProps.onValueChange?.(newValueWithoutSelectAll);\n\t\t},\n\t});\n\n\treturn (\n\t\t<Select.RootProvider\n\t\t\tvalue={select}\n\t\t\t// When rendering the Select inside a Modal, it has an `aria-hidden=\"true\"` attribute\n\t\t\t// which causes screen readers to ignore it.\n\t\t\t//\n\t\t\t// See: https://github.com/chakra-ui/ark/issues/3728\n\t\t\tlazyMount\n\t\t>\n\t\t\t<Select.Control\n\t\t\t\tclassName={classNames(styles.control, size === 'small' && styles.small, className)}\n\t\t\t\tstyle={style}\n\t\t\t\tonBlur={onBlur}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (!clearable) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (select.open) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (e.key === 'Backspace' || e.key === 'Delete') {\n\t\t\t\t\t\tif (multiselectProps.multiple) {\n\t\t\t\t\t\t\tmultiselectProps.onValueChange?.([]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmultiselectProps.onValueChange?.('');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonClear?.();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Select.Trigger\n\t\t\t\t\tid={id}\n\t\t\t\t\tclassName={styles.trigger}\n\t\t\t\t\t// Ark expects a `Select.Label` component to exist and automatically label the trigger\n\t\t\t\t\t// with it. We're using the `DsFormControl` label handling instead, so we disable the\n\t\t\t\t\t// automatic labelling here.\n\t\t\t\t\taria-labelledby={null as never}\n\t\t\t\t>\n\t\t\t\t\t<DsTypography className={styles.valueText} variant=\"body-sm-reg\" asChild>\n\t\t\t\t\t\t<Select.ValueText placeholder={placeholder} />\n\t\t\t\t\t</DsTypography>\n\n\t\t\t\t\t<Select.Indicator className={styles.triggerIcon}>\n\t\t\t\t\t\t<DsIcon icon=\"keyboard_arrow_down\" size={size === 'small' ? 'small' : 'medium'} />\n\t\t\t\t\t</Select.Indicator>\n\t\t\t\t</Select.Trigger>\n\n\t\t\t\t{clearable && (\n\t\t\t\t\t<Select.ClearTrigger className={styles.clearIcon} onClick={onClear}>\n\t\t\t\t\t\t<DsIcon icon=\"close\" size={size === 'small' ? 'small' : 'medium'} />\n\t\t\t\t\t</Select.ClearTrigger>\n\t\t\t\t)}\n\t\t\t</Select.Control>\n\t\t\t<Portal>\n\t\t\t\t<Select.Positioner className={styles.viewport}>\n\t\t\t\t\t<Select.Content className={styles.content}>\n\t\t\t\t\t\t{userOptions.length > SEARCH_THRESHOLD && (\n\t\t\t\t\t\t\t<div className={styles.searchInput}>\n\t\t\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\t\t\tonChange={(e) => setSearchTerm(e.target.value)}\n\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t// Prevent the select from opening/closing when pressing space in the search input.\n\t\t\t\t\t\t\t\t\t\tif (e.key === ' ') {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{multiselectProps.multiple && (\n\t\t\t\t\t\t\t<SelectItemsChips\n\t\t\t\t\t\t\t\tonValueChange={multiselectProps.onValueChange}\n\t\t\t\t\t\t\t\tshowAll={showAllItems}\n\t\t\t\t\t\t\t\tonShowAll={() => setShowAllItems(true)}\n\t\t\t\t\t\t\t\t// TODO: Find a way to calculate this based on the size of the select.\n\t\t\t\t\t\t\t\tcount={6}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{filteredOptions.map((item) => {\n\t\t\t\t\t\t\tconst checked = getItemCheckedState({ item, select, options: internalOptions });\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DsTypography\n\t\t\t\t\t\t\t\t\tvariant=\"body-sm-reg\"\n\t\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\t\tkey={collection.getItemValue(item)}\n\t\t\t\t\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Select.Item item={item}>\n\t\t\t\t\t\t\t\t\t\t{multiselectProps.multiple && <DsCheckbox checked={checked} />}\n\t\t\t\t\t\t\t\t\t\t{item.icon && <DsIcon className={styles.itemIcon} icon={item.icon} aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t\t\t<Select.ItemText>{item.label}</Select.ItemText>\n\t\t\t\t\t\t\t\t\t</Select.Item>\n\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Select.Content>\n\t\t\t\t</Select.Positioner>\n\t\t\t</Portal>\n\n\t\t\t{/*\n\t\t\t\tThis element isn't properly hidden by Zag, so we hide it manually.\n\t\t\t \tFor more information, see: https://github.com/chakra-ui/zag/issues/2865\n\t\t\t*/}\n\t\t\t<Select.HiddenSelect style={{ display: 'none' }} />\n\t\t</Select.RootProvider>\n\t);\n};\n\nfunction getItemCheckedState({\n\titem,\n\tselect,\n\toptions,\n}: {\n\titem: DsSelectOption;\n\tselect: UseSelectReturn<DsSelectOption>;\n\toptions: DsSelectOption[];\n}): DsCheckboxProps['checked'] {\n\tconst isRegularItem = item.value !== SELECT_ALL_VALUE;\n\n\tif (isRegularItem) {\n\t\treturn select.getItemState({ item }).selected;\n\t}\n\n\t// Doing -1 since it contains the \"Select All\" option itself.\n\tconst allSelected = select.selectedItems.length === options.length - 1;\n\n\tif (allSelected) {\n\t\treturn true;\n\t}\n\n\tconst someSelected = select.hasSelectedItems;\n\n\treturn someSelected ? 'indeterminate' : false;\n}\n\nexport default DsSelect;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAYA,MAAMgB,mBAAmB;AACzB,MAAMC,mBAAmB;AAEzB,MAAMC,aAA6B;CAClCC,OAAO;CACPC,OAAOH;CACP;AAED,MAAMI,YAAWC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAC,MAAA,EAAAC,IAAAC,SAAAC,aAAAP,OAAAQ,OAAAC,MAAAC,WAAAC,SAAAC,QAAAC,WAAAC,aAAAC,IAAAC,UAAA,GAAAC,qBAAAf;CAUjB,MAAAY,cAAAC,OAAAG,SAAA,4BAAAH;CAIA,MAAA,CAAAI,YAAAC,iBAAoCxC,SAAS,GAAG;CAChD,MAAA,CAAAyC,cAAAC,mBAAwC1C,SAAS,MAAM;CAEvD,MAAA2C,kBAAwBN,iBAAgBO,WAAhB,CAA6B1B,YAAU,GAAKS,YAA0B,GAAtEA;CAExB,MAAAkB,aAAmB1C,qBAAqB;EAAA2C,OAChCH;EAAeI,aACTC;EACb,CAAC;CAAC,IAAAC;AAAA,KAAA1B,EAAA,OAAAgB,YAAA;AAE4CU,QAAAC,WAC9CA,OAAM/B,MAAMgC,aAAc,CAAAC,SAAUb,WAAUY,aAAc,CAAC;AAAA5B,IAAA,KAAAgB;AAAAhB,IAAA,KAAA0B;OAAAA,MAAA1B,EAAA;CAD9D,MAAA8B,kBAAwBV,gBAAeW,OAAQL,GAE9C;CAED,MAAAM,kBAAwBC,MAAKC,QAASrC,MAAmD,GAAjEA,QAA+B,CAACA,MAAM,CAAAkC,OAAQI,OAAmB;CAAC,IAAAC;AAAA,KAAApC,EAAA,OAAAqC,OAAAC,IAAA,4BAAA,EAAA;AAY3EF,aAAA;AACbnB,iBAAc,GAAG;AACjBE,mBAAgB,MAAM;;AACtBnB,IAAA,KAAAoC;OAAAA,MAAApC,EAAA;CAbF,MAAAuC,SAAe1D,UAAU;EAAAyC;EAAAT;EAAAQ,UAGdP,iBAAgBO;EAASxB,OAC5BmC;EAAeQ,KAIjB,EAAAC,SAAWvC,IAAI;EAAAwC,cAENN;EAGbO,gBAEcC,YAAA;AAEd,OAAI,CAAC9B,iBAAgBO,UAAS;AAC7BP,qBAAgB6B,gBAAiBC,QAAO/C,MAAM,GAAI;AAAA;;AAOnD,OAF2B+C,QAAO/C,MAAMgC,SAAUnC,iBAAiB,EAE7C;IAGrB,MAAAuD,YAF8BV,OAAMQ,cAAcC,WAAY5C,YAAW4C,SAEvD,EAAgE,GAAnC5C,YAAW8C,IAAKC,OAAmB;AAElFrC,qBAAgB6B,gBAAiBM,UAAU;AAAA;;GAM5C,MAAAG,2BAAiCR,QAAO/C,MAAMkC,OAAQsB,OAAkC;AAExFvC,oBAAgB6B,gBAAiBS,yBAAyB;;EAE3D,CAAC;CAYuC,MAAAE,KAAAhD,SAAS,WAAWtB,yBAAMuE;CAAM,IAAAC;AAAA,KAAAxD,EAAA,OAAAU,aAAAV,EAAA,OAAAsD,IAAA;AAA3DE,OAAAzE,WAAWC,yBAAMyE,SAAUH,IAAkC5C,UAAU;AAAAV,IAAA,KAAAU;AAAAV,IAAA,KAAAsD;AAAAtD,IAAA,KAAAwD;OAAAA,MAAAxD,EAAA;CAAA,IAAA0D;AAAA,KAAA1D,EAAA,OAAAW,aAAA;AA+BjF+C,OAAA,oBAAC;GAAwB,WAAA1E,yBAAM2E;GAAoB,SAAA;GAAc,SAAA;aAChE,oBAAA,OAAA,aAA+BhD,cAChC;IAAe;AAAAX,IAAA,KAAAW;AAAAX,IAAA,KAAA0D;OAAAA,MAAA1D,EAAA;CAG2B,MAAA4D,KAAAtD,SAAS,UAAT,UAAA;CAAqC,IAAAuD;AAAA,KAAA7D,EAAA,OAAA4D,IAAA;AAD/EC,OAAA,oBAAA,OAAA;GAA6B,WAAA7E,yBAAM8E;aAClC,oBAAC;IAAY,MAAA;IAA4B,MAAAF;KAC1C;IAAmB;AAAA5D,IAAA,KAAA4D;AAAA5D,IAAA,KAAA6D;OAAAA,MAAA7D,EAAA;CAAA,IAAA+D;AAAA,KAAA/D,EAAA,QAAAE,MAAAF,EAAA,QAAA0D,MAAA1D,EAAA,QAAA6D,IAAA;AAdpBE,OAAA,qBAAA,OAAA;GACK7D;GACO,WAAAlB,yBAAMyD;GAIA,mBAAA;cAEjBiB,IAIAG;IAGgB;AAAA7D,IAAA,MAAAE;AAAAF,IAAA,MAAA0D;AAAA1D,IAAA,MAAA6D;AAAA7D,IAAA,MAAA+D;OAAAA,MAAA/D,EAAA;CAAA,IAAAgE;AAAA,KAAAhE,EAAA,QAAAO,aAAAP,EAAA,QAAAQ,WAAAR,EAAA,QAAAM,MAAA;AAEhB0D,QAAAzD,aACA,oBAAA,OAAA;GAAgC,WAAAvB,yBAAMiF;GAAqBzD,SAAAA;aAC1D,oBAAC;IAAY,MAAA;IAAc,MAAAF,SAAS,UAAT,UAAA;KAC5B;IACA;AAAAN,IAAA,MAAAO;AAAAP,IAAA,MAAAQ;AAAAR,IAAA,MAAAM;AAAAN,IAAA,MAAAgE;OAAAA,OAAAhE,EAAA;CAED,MAAAkE,KAAApF;CACC,MAAAqF,MAAAxF;CAA6BK,MAAAA,MAAAA;CAC5B,MAAAoF,MAAAzF;CAA0BK,MAAAA,MAAAA;CAAM,IAAAqF;AAAA,KAAArE,EAAA,QAAAgB,cAAAhB,EAAA,QAAAI,YAAA4C,QAAA;AAC/BqB,QAAAjE,YAAW4C,SAAUvD,oBACrB,oBAAA;GAAgB,WAAAT,yBAAMsF;aACrB,oBAAC;IACY,aAAA;IACLtD,OAAAA;IACG,WAAAuD,QAAOtD,cAAcuD,IAACC,OAAO5E,MAAM;IAClC,WAAA6E;IAMJ,OAAA,EAAAC,gBACU,oBAAC;KAAY,MAAA;KAAc,MAAA;MAAM,EAClD;KAEF;IACA;AAAA3E,IAAA,MAAAgB;AAAAhB,IAAA,MAAAI,YAAA4C;AAAAhD,IAAA,MAAAqE;OAAAA,OAAArE,EAAA;CAEA,MAAA4E,MAAA9D,iBAAgBO,YAChB,oBAAC;EACe,eAAAP,iBAAgB6B;EACtBzB,SAAAA;EACE,iBAAMC,gBAAgB,KAAI;EAE9B,OAAA;GAER;CAEA,MAAA0D,MAAA/C,gBAAeoB,KAAK4B,WAAA;EACpB,MAAAC,UAAgBC,oBAAoB;GAAAC,MAAEA;GAAI1C;GAAApC,SAAmBiB;GAAiB,CAAC;AAAC,SAG/E,oBAAC;GACQ,SAAA;GACR,SAAA;GAEW,WAAApC,yBAAMiG;aAEjB,qBAAA,OAAA;IAAmBA,MAAAA;;KACjBnE,iBAAgBO,YAAa,oBAAC,uBAAoB0D,UAAU;KAC5DE,OAAIE,QAAS,oBAAC;MAAkB,WAAAnG,yBAAMoG;MAAiB,MAAAH,OAAIE;MAAmB,eAAA;OAAQ;KACvF,oBAAA,OAAA,sBAAkBF,OAAIrF,QACvB;;KACD;KARM0B,WAAU4D,aAAcD,OAAI,CAQnB;GAEf;CAAA,IAAAI;AAAA,KAAArF,EAAA,QAAAoE,IAAAkB,WAAAtF,EAAA,QAAAuF,IAAAC,WAAAxF,EAAA,QAAAqE,OAAArE,EAAA,QAAA4E,OAAA5E,EAAA,QAAA6E,KAAA;AA/CHQ,QAAA,qBAAA,IAAA;GAA2B,WAAArG,IAAMwG;;IAC/BnB;IAmBAO;IAUAC;;IAkBe;AAAA7E,IAAA,MAAAoE,IAAAkB;AAAAtF,IAAA,MAAAuF,IAAAC;AAAAxF,IAAA,MAAAqE;AAAArE,IAAA,MAAA4E;AAAA5E,IAAA,MAAA6E;AAAA7E,IAAA,MAAAqF;OAAAA,OAAArF,EAAA;CAAA,IAAAyF;AAAA,KAAAzF,EAAA,QAAAmE,IAAAuB,cAAA1F,EAAA,QAAA2F,IAAAC,YAAA5F,EAAA,QAAAqF,KAAA;AAjDlBI,QAAA,oBAAA,IAAA;GAA8B,WAAAzG,IAAM4G;aACnCP;IAiDmB;AAAArF,IAAA,MAAAmE,IAAAuB;AAAA1F,IAAA,MAAA2F,IAAAC;AAAA5F,IAAA,MAAAqF;AAAArF,IAAA,MAAAyF;OAAAA,OAAAzF,EAAA;CAAA,IAAA6F;AAAA,KAAA7F,EAAA,QAAAkE,MAAAlE,EAAA,QAAAyF,KAAA;AAnDrBI,QAAA,oBAAC,gBACAJ,MAmDQ;AAAAzF,IAAA,MAAAkE;AAAAlE,IAAA,MAAAyF;AAAAzF,IAAA,MAAA6F;OAAAA,OAAA7F,EAAA;CAAA,IAAA8F;AAAA,KAAA9F,EAAA,QAAAqC,OAAAC,IAAA,4BAAA,EAAA;AAMTwD,QAAA,oBAAA,OAAA,gBAA4B,OAAA,EAAAC,SAAW,QAAO,GAAK;AAAA/F,IAAA,MAAA8F;OAAAA,OAAA9F,EAAA;AAAA,QAjHpD,qBAAA,OAAA;EACQuC,OAAAA;EAKP,WAAA;;GAEA,qBAAA,OAAA;IACY,WAAAiB;IACJnD;IACCI;IACG,YAAA+D,MAAA;AACV,SAAI,CAACjE,UAAS;AAId,SAAIgC,OAAMyD,KAAK;AAIf,SAAIxB,EAACyB,QAAS,eAAezB,EAACyB,QAAS,UAAQ;AAC9C,UAAInF,iBAAgBO,SACnBP,kBAAgB6B,gBAAiB,EAAE,CAAC;UAEpC7B,kBAAgB6B,gBAAiB,GAAG;AAGrCnC,iBAAW;;;eAIbuD,IAiBCC;KAMF;GAAA6B;GA0DAC;;GACqB;;AAIxB,SAASd,oBAAoB,EAC5BC,MACA1C,QACApC,WAK8B;AAG9B,KAFsB8E,KAAKpF,UAAUH,iBAGpC,QAAO6C,OAAO4D,aAAa,EAAElB,MAAM,CAAC,CAACmB;AAMtC,KAFoB7D,OAAOQ,cAAcC,WAAW7C,QAAQ6C,SAAS,EAGpE,QAAO;AAKR,QAFqBT,OAAOgE,mBAEN,kBAAkB;;AAGzC,wBAAezG;AA1NE,SAAA2B,MAAAwD,MAAA;AAAA,QAqBQA,KAAIpF;;AArBZ,SAAAsC,OAAAqE,SAAA;AAAA,QA4BiE,CAAC,CAAC3G;;AA5BnE,SAAAsD,OAAAsD,KAAA;AAAA,QA0D2DA,IAAG5G;;AA1D9D,SAAAwD,OAAAqD,KAAA;AAAA,QAkEiDA,QAAQhH;;AAlEzD,SAAAgF,OAAAiC,KAAA;AA2IP,KAAInC,IAACyB,QAAS,IACbzB,KAACoC,iBAAkB"}
@@ -2,18 +2,30 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_ds_button = require('../ds-button/ds-button.cjs');
3
3
  const require_ds_chip = require('../ds-chip/ds-chip.cjs');
4
4
  const require_ds_select_module = require('./ds-select.module.cjs');
5
+ let react_compiler_runtime = require("react/compiler-runtime");
5
6
  let react_jsx_runtime = require("react/jsx-runtime");
6
7
  let __ark_ui_react_select = require("@ark-ui/react/select");
7
8
 
8
9
  //#region src/components/ds-select/select-items-chips.tsx
9
- function SelectItemsChips({ showAll, onShowAll, onValueChange, count }) {
10
+ function SelectItemsChips(t0) {
11
+ const $ = (0, react_compiler_runtime.c)(24);
12
+ const { showAll, onShowAll, onValueChange, count } = t0;
10
13
  const { collection, value: selectedItems } = (0, __ark_ui_react_select.useSelectContext)();
11
14
  if (!selectedItems.length) return null;
12
- const itemsToShow = showAll ? selectedItems : selectedItems.slice(0, count);
13
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
14
- className: require_ds_select_module.default.multiSelectItemsContainer,
15
- children: [
16
- itemsToShow.map((itemValue) => {
15
+ let t1;
16
+ if ($[0] !== count || $[1] !== selectedItems || $[2] !== showAll) {
17
+ t1 = showAll ? selectedItems : selectedItems.slice(0, count);
18
+ $[0] = count;
19
+ $[1] = selectedItems;
20
+ $[2] = showAll;
21
+ $[3] = t1;
22
+ } else t1 = $[3];
23
+ const itemsToShow = t1;
24
+ let t2;
25
+ if ($[4] !== collection || $[5] !== itemsToShow || $[6] !== onValueChange || $[7] !== selectedItems) {
26
+ let t3$1;
27
+ if ($[9] !== collection || $[10] !== onValueChange || $[11] !== selectedItems) {
28
+ t3$1 = (itemValue) => {
17
29
  const item = collection.find(itemValue);
18
30
  if (!item) return null;
19
31
  const onDelete = () => {
@@ -24,22 +36,61 @@ function SelectItemsChips({ showAll, onShowAll, onValueChange, count }) {
24
36
  label: item.label,
25
37
  onDelete
26
38
  }, itemValue);
27
- }),
28
- !showAll && selectedItems.length > count && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_chip.default, {
29
- label: `+${String(selectedItems.length - count)}`,
30
- onClick: onShowAll,
31
- size: "small"
32
- }),
33
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_button.default, {
34
- design: "v1.2",
35
- buttonType: "tertiary",
36
- variant: "ghost",
37
- size: "small",
38
- onClick: () => onValueChange?.([]),
39
- children: "Clear All"
40
- })
41
- ]
42
- });
39
+ };
40
+ $[9] = collection;
41
+ $[10] = onValueChange;
42
+ $[11] = selectedItems;
43
+ $[12] = t3$1;
44
+ } else t3$1 = $[12];
45
+ t2 = itemsToShow.map(t3$1);
46
+ $[4] = collection;
47
+ $[5] = itemsToShow;
48
+ $[6] = onValueChange;
49
+ $[7] = selectedItems;
50
+ $[8] = t2;
51
+ } else t2 = $[8];
52
+ let t3;
53
+ if ($[13] !== count || $[14] !== onShowAll || $[15] !== selectedItems.length || $[16] !== showAll) {
54
+ t3 = !showAll && selectedItems.length > count && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_chip.default, {
55
+ label: `+${String(selectedItems.length - count)}`,
56
+ onClick: onShowAll,
57
+ size: "small"
58
+ });
59
+ $[13] = count;
60
+ $[14] = onShowAll;
61
+ $[15] = selectedItems.length;
62
+ $[16] = showAll;
63
+ $[17] = t3;
64
+ } else t3 = $[17];
65
+ let t4;
66
+ if ($[18] !== onValueChange) {
67
+ t4 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_button.default, {
68
+ design: "v1.2",
69
+ buttonType: "tertiary",
70
+ variant: "ghost",
71
+ size: "small",
72
+ onClick: () => onValueChange?.([]),
73
+ children: "Clear All"
74
+ });
75
+ $[18] = onValueChange;
76
+ $[19] = t4;
77
+ } else t4 = $[19];
78
+ let t5;
79
+ if ($[20] !== t2 || $[21] !== t3 || $[22] !== t4) {
80
+ t5 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
81
+ className: require_ds_select_module.default.multiSelectItemsContainer,
82
+ children: [
83
+ t2,
84
+ t3,
85
+ t4
86
+ ]
87
+ });
88
+ $[20] = t2;
89
+ $[21] = t3;
90
+ $[22] = t4;
91
+ $[23] = t5;
92
+ } else t5 = $[23];
93
+ return t5;
43
94
  }
44
95
 
45
96
  //#endregion
@@ -1,18 +1,30 @@
1
1
  import ds_button_default from "../ds-button/ds-button.js";
2
2
  import ds_chip_default from "../ds-chip/ds-chip.js";
3
3
  import ds_select_module_default from "./ds-select.module.js";
4
+ import { c } from "react/compiler-runtime";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  import { useSelectContext } from "@ark-ui/react/select";
6
7
 
7
8
  //#region src/components/ds-select/select-items-chips.tsx
8
- function SelectItemsChips({ showAll, onShowAll, onValueChange, count }) {
9
+ function SelectItemsChips(t0) {
10
+ const $ = c(24);
11
+ const { showAll, onShowAll, onValueChange, count } = t0;
9
12
  const { collection, value: selectedItems } = useSelectContext();
10
13
  if (!selectedItems.length) return null;
11
- const itemsToShow = showAll ? selectedItems : selectedItems.slice(0, count);
12
- return /* @__PURE__ */ jsxs("div", {
13
- className: ds_select_module_default.multiSelectItemsContainer,
14
- children: [
15
- itemsToShow.map((itemValue) => {
14
+ let t1;
15
+ if ($[0] !== count || $[1] !== selectedItems || $[2] !== showAll) {
16
+ t1 = showAll ? selectedItems : selectedItems.slice(0, count);
17
+ $[0] = count;
18
+ $[1] = selectedItems;
19
+ $[2] = showAll;
20
+ $[3] = t1;
21
+ } else t1 = $[3];
22
+ const itemsToShow = t1;
23
+ let t2;
24
+ if ($[4] !== collection || $[5] !== itemsToShow || $[6] !== onValueChange || $[7] !== selectedItems) {
25
+ let t3$1;
26
+ if ($[9] !== collection || $[10] !== onValueChange || $[11] !== selectedItems) {
27
+ t3$1 = (itemValue) => {
16
28
  const item = collection.find(itemValue);
17
29
  if (!item) return null;
18
30
  const onDelete = () => {
@@ -23,22 +35,61 @@ function SelectItemsChips({ showAll, onShowAll, onValueChange, count }) {
23
35
  label: item.label,
24
36
  onDelete
25
37
  }, itemValue);
26
- }),
27
- !showAll && selectedItems.length > count && /* @__PURE__ */ jsx(ds_chip_default, {
28
- label: `+${String(selectedItems.length - count)}`,
29
- onClick: onShowAll,
30
- size: "small"
31
- }),
32
- /* @__PURE__ */ jsx(ds_button_default, {
33
- design: "v1.2",
34
- buttonType: "tertiary",
35
- variant: "ghost",
36
- size: "small",
37
- onClick: () => onValueChange?.([]),
38
- children: "Clear All"
39
- })
40
- ]
41
- });
38
+ };
39
+ $[9] = collection;
40
+ $[10] = onValueChange;
41
+ $[11] = selectedItems;
42
+ $[12] = t3$1;
43
+ } else t3$1 = $[12];
44
+ t2 = itemsToShow.map(t3$1);
45
+ $[4] = collection;
46
+ $[5] = itemsToShow;
47
+ $[6] = onValueChange;
48
+ $[7] = selectedItems;
49
+ $[8] = t2;
50
+ } else t2 = $[8];
51
+ let t3;
52
+ if ($[13] !== count || $[14] !== onShowAll || $[15] !== selectedItems.length || $[16] !== showAll) {
53
+ t3 = !showAll && selectedItems.length > count && /* @__PURE__ */ jsx(ds_chip_default, {
54
+ label: `+${String(selectedItems.length - count)}`,
55
+ onClick: onShowAll,
56
+ size: "small"
57
+ });
58
+ $[13] = count;
59
+ $[14] = onShowAll;
60
+ $[15] = selectedItems.length;
61
+ $[16] = showAll;
62
+ $[17] = t3;
63
+ } else t3 = $[17];
64
+ let t4;
65
+ if ($[18] !== onValueChange) {
66
+ t4 = /* @__PURE__ */ jsx(ds_button_default, {
67
+ design: "v1.2",
68
+ buttonType: "tertiary",
69
+ variant: "ghost",
70
+ size: "small",
71
+ onClick: () => onValueChange?.([]),
72
+ children: "Clear All"
73
+ });
74
+ $[18] = onValueChange;
75
+ $[19] = t4;
76
+ } else t4 = $[19];
77
+ let t5;
78
+ if ($[20] !== t2 || $[21] !== t3 || $[22] !== t4) {
79
+ t5 = /* @__PURE__ */ jsxs("div", {
80
+ className: ds_select_module_default.multiSelectItemsContainer,
81
+ children: [
82
+ t2,
83
+ t3,
84
+ t4
85
+ ]
86
+ });
87
+ $[20] = t2;
88
+ $[21] = t3;
89
+ $[22] = t4;
90
+ $[23] = t5;
91
+ } else t5 = $[23];
92
+ return t5;
42
93
  }
43
94
 
44
95
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"select-items-chips.js","names":["styles","DsChip","DsButton"],"sources":["../../../src/components/ds-select/select-items-chips.tsx"],"sourcesContent":["import { useSelectContext, type UseSelectContext } from '@ark-ui/react/select';\nimport styles from './ds-select.module.scss';\nimport DsButton from '../ds-button/ds-button';\nimport DsChip from '../ds-chip/ds-chip';\nimport type { DsSelectOption, SelectOptionValue } from './ds-select.types';\n\ntype SelectItemsChipsProps = {\n\tshowAll: boolean;\n\tonValueChange?: (value: SelectOptionValue[]) => void;\n\tonShowAll: () => void;\n\tcount: number;\n};\n\nexport function SelectItemsChips({ showAll, onShowAll, onValueChange, count }: SelectItemsChipsProps) {\n\tconst { collection, value: selectedItems } = useSelectContext() as UseSelectContext<DsSelectOption>;\n\n\tif (!selectedItems.length) {\n\t\treturn null;\n\t}\n\n\tconst itemsToShow = showAll ? selectedItems : selectedItems.slice(0, count);\n\n\treturn (\n\t\t<div className={styles.multiSelectItemsContainer}>\n\t\t\t{itemsToShow.map((itemValue) => {\n\t\t\t\tconst item = collection.find(itemValue);\n\n\t\t\t\tif (!item) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst onDelete = () => {\n\t\t\t\t\tconst filteredValue = selectedItems.filter((v) => v !== item.value);\n\n\t\t\t\t\tonValueChange?.(filteredValue);\n\t\t\t\t};\n\n\t\t\t\treturn <DsChip key={itemValue} label={item.label} onDelete={onDelete} />;\n\t\t\t})}\n\n\t\t\t{!showAll && selectedItems.length > count && (\n\t\t\t\t<DsChip label={`+${String(selectedItems.length - count)}`} onClick={onShowAll} size=\"small\" />\n\t\t\t)}\n\n\t\t\t<DsButton\n\t\t\t\tdesign=\"v1.2\"\n\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tonClick={() => onValueChange?.([])}\n\t\t\t>\n\t\t\t\tClear All\n\t\t\t</DsButton>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,iBAAiB,EAAE,SAAS,WAAW,eAAe,SAAgC;CACrG,MAAM,EAAE,YAAY,OAAO,kBAAkB,kBAAkB;AAE/D,KAAI,CAAC,cAAc,OAClB,QAAO;CAGR,MAAM,cAAc,UAAU,gBAAgB,cAAc,MAAM,GAAG,MAAM;AAE3E,QACC,qBAAC;EAAI,WAAWA,yBAAO;;GACrB,YAAY,KAAK,cAAc;IAC/B,MAAM,OAAO,WAAW,KAAK,UAAU;AAEvC,QAAI,CAAC,KACJ,QAAO;IAGR,MAAM,iBAAiB;KACtB,MAAM,gBAAgB,cAAc,QAAQ,MAAM,MAAM,KAAK,MAAM;AAEnE,qBAAgB,cAAc;;AAG/B,WAAO,oBAACC;KAAuB,OAAO,KAAK;KAAiB;OAAxC,UAAoD;KACvE;GAED,CAAC,WAAW,cAAc,SAAS,SACnC,oBAACA;IAAO,OAAO,IAAI,OAAO,cAAc,SAAS,MAAM;IAAI,SAAS;IAAW,MAAK;KAAU;GAG/F,oBAACC;IACA,QAAO;IACP,YAAW;IACX,SAAQ;IACR,MAAK;IACL,eAAe,gBAAgB,EAAE,CAAC;cAClC;KAEU;;GACN"}
1
+ {"version":3,"file":"select-items-chips.js","names":["useSelectContext","UseSelectContext","styles","DsButton","DsChip","DsSelectOption","SelectOptionValue","SelectItemsChipsProps","showAll","onValueChange","value","onShowAll","count","SelectItemsChips","t0","$","_c","collection","selectedItems","length","t1","slice","itemsToShow","t2","t3","itemValue","item","find","onDelete","filteredValue","filter","v","label","map","String","t4","t5","multiSelectItemsContainer"],"sources":["../../../src/components/ds-select/select-items-chips.tsx"],"sourcesContent":["import { useSelectContext, type UseSelectContext } from '@ark-ui/react/select';\nimport styles from './ds-select.module.scss';\nimport DsButton from '../ds-button/ds-button';\nimport DsChip from '../ds-chip/ds-chip';\nimport type { DsSelectOption, SelectOptionValue } from './ds-select.types';\n\ntype SelectItemsChipsProps = {\n\tshowAll: boolean;\n\tonValueChange?: (value: SelectOptionValue[]) => void;\n\tonShowAll: () => void;\n\tcount: number;\n};\n\nexport function SelectItemsChips({ showAll, onShowAll, onValueChange, count }: SelectItemsChipsProps) {\n\tconst { collection, value: selectedItems } = useSelectContext() as UseSelectContext<DsSelectOption>;\n\n\tif (!selectedItems.length) {\n\t\treturn null;\n\t}\n\n\tconst itemsToShow = showAll ? selectedItems : selectedItems.slice(0, count);\n\n\treturn (\n\t\t<div className={styles.multiSelectItemsContainer}>\n\t\t\t{itemsToShow.map((itemValue) => {\n\t\t\t\tconst item = collection.find(itemValue);\n\n\t\t\t\tif (!item) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst onDelete = () => {\n\t\t\t\t\tconst filteredValue = selectedItems.filter((v) => v !== item.value);\n\n\t\t\t\t\tonValueChange?.(filteredValue);\n\t\t\t\t};\n\n\t\t\t\treturn <DsChip key={itemValue} label={item.label} onDelete={onDelete} />;\n\t\t\t})}\n\n\t\t\t{!showAll && selectedItems.length > count && (\n\t\t\t\t<DsChip label={`+${String(selectedItems.length - count)}`} onClick={onShowAll} size=\"small\" />\n\t\t\t)}\n\n\t\t\t<DsButton\n\t\t\t\tdesign=\"v1.2\"\n\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tonClick={() => onValueChange?.([])}\n\t\t\t>\n\t\t\t\tClear All\n\t\t\t</DsButton>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAaA,SAAOa,iBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA0B,MAAA,EAAAR,SAAAG,WAAAF,eAAAG,UAAAE;CAChC,MAAA,EAAAG,YAAAP,OAAAQ,kBAA6ClB,kBAAkB;AAE/D,KAAI,CAACkB,cAAaC,OAAO,QACjB;CACP,IAAAC;AAAA,KAAAL,EAAA,OAAAH,SAAAG,EAAA,OAAAG,iBAAAH,EAAA,OAAAP,SAAA;AAEmBY,OAAAZ,UAAAU,gBAA0BA,cAAaG,MAAO,GAAGT,MAAM;AAAAG,IAAA,KAAAH;AAAAG,IAAA,KAAAG;AAAAH,IAAA,KAAAP;AAAAO,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAA3E,MAAAO,cAAoBF;CAAwD,IAAAG;AAAA,KAAAR,EAAA,OAAAE,cAAAF,EAAA,OAAAO,eAAAP,EAAA,OAAAN,iBAAAM,EAAA,OAAAG,eAAA;EAAA,IAAAM;AAAA,MAAAT,EAAA,OAAAE,cAAAF,EAAA,QAAAN,iBAAAM,EAAA,QAAAG,eAAA;AAIzDM,WAAAC,cAAA;IAChB,MAAAC,OAAaT,WAAUU,KAAMF,UAAU;AAEvC,QAAI,CAACC,KAAI,QACD;IAGR,MAAAE,iBAAiB;KAChB,MAAAC,gBAAsBX,cAAaY,QAAQC,MAAOA,MAAML,KAAIhB,MAAO;AAEnED,qBAAgBoB,cAAc;;AAC7B,WAEK,oBAAC;KAA8B,OAAAH,KAAIM;KAAkBJ;OAAxCH,UAAoD;;AACxEV,KAAA,KAAAE;AAAAF,KAAA,MAAAN;AAAAM,KAAA,MAAAG;AAAAH,KAAA,MAAAS;QAAAA,QAAAT,EAAA;AAdAQ,OAAAD,YAAWW,IAAKT,KAcf;AAAAT,IAAA,KAAAE;AAAAF,IAAA,KAAAO;AAAAP,IAAA,KAAAN;AAAAM,IAAA,KAAAG;AAAAH,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAA,IAAAS;AAAA,KAAAT,EAAA,QAAAH,SAAAG,EAAA,QAAAJ,aAAAI,EAAA,QAAAG,cAAAC,UAAAJ,EAAA,QAAAP,SAAA;AAEDgB,OAAA,CAAChB,WAAWU,cAAaC,SAAUP,SACnC,oBAAC;GAAc,OAAA,IAAIsB,OAAOhB,cAAaC,SAAUP,MAAM;GAAaD,SAAAA;GAAgB,MAAA;IACpF;AAAAI,IAAA,MAAAH;AAAAG,IAAA,MAAAJ;AAAAI,IAAA,MAAAG,cAAAC;AAAAJ,IAAA,MAAAP;AAAAO,IAAA,MAAAS;OAAAA,MAAAT,EAAA;CAAA,IAAAoB;AAAA,KAAApB,EAAA,QAAAN,eAAA;AAED0B,OAAA,oBAAC;GACO,QAAA;GACI,YAAA;GACH,SAAA;GACH,MAAA;GACI,eAAM1B,gBAAgB,EAAE,CAAA;aACjC;IAEU;AAAAM,IAAA,MAAAN;AAAAM,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;CAAA,IAAAqB;AAAA,KAAArB,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAoB,IAAA;AA7BZC,OAAA,qBAAA;GAAgB,WAAAlC,yBAAMmC;;IACpBd;IAgBAC;IAIDW;;IASK;AAAApB,IAAA,MAAAQ;AAAAR,IAAA,MAAAS;AAAAT,IAAA,MAAAoB;AAAApB,IAAA,MAAAqB;OAAAA,MAAArB,EAAA;AAAA,QA9BNqB"}