@navikt/ds-react 8.5.2 → 8.7.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 (258) hide show
  1. package/cjs/data/drag-and-drop/item/DataDragAndDropItem.d.ts +27 -0
  2. package/cjs/data/drag-and-drop/item/DataDragAndDropItem.js +91 -0
  3. package/cjs/data/drag-and-drop/item/DataDragAndDropItem.js.map +1 -0
  4. package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.d.ts +5 -0
  5. package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.js +6 -0
  6. package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.js.map +1 -0
  7. package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.d.ts +24 -0
  8. package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.js +111 -0
  9. package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.js.map +1 -0
  10. package/cjs/data/table/helpers/table-keyboard.d.ts +1 -0
  11. package/cjs/data/table/helpers/table-keyboard.js +5 -3
  12. package/cjs/data/table/helpers/table-keyboard.js.map +1 -1
  13. package/cjs/data/table/root/DataTableRoot.context.d.ts +8 -0
  14. package/cjs/data/table/root/DataTableRoot.context.js +11 -0
  15. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -0
  16. package/cjs/data/table/root/DataTableRoot.js +5 -3
  17. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  18. package/cjs/data/table/th/DataTableTh.d.ts +18 -2
  19. package/cjs/data/table/th/DataTableTh.js +45 -20
  20. package/cjs/data/table/th/DataTableTh.js.map +1 -1
  21. package/cjs/data/table/tr/DataTableTr.js +9 -2
  22. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  23. package/cjs/data/token-filter/AutoSuggest.d.ts +6 -2
  24. package/cjs/data/token-filter/AutoSuggest.js +46 -14
  25. package/cjs/data/token-filter/AutoSuggest.js.map +1 -1
  26. package/cjs/data/token-filter/AutoSuggest.types.d.ts +0 -1
  27. package/cjs/data/token-filter/TokenFilter.d.ts +10 -5
  28. package/cjs/data/token-filter/TokenFilter.js +110 -48
  29. package/cjs/data/token-filter/TokenFilter.js.map +1 -1
  30. package/cjs/data/token-filter/TokenFilter.types.d.ts +51 -35
  31. package/cjs/data/token-filter/helpers/generate-autocomplete-options.d.ts +3 -6
  32. package/cjs/data/token-filter/helpers/generate-autocomplete-options.js +24 -37
  33. package/cjs/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
  34. package/cjs/data/token-filter/helpers/operators.d.ts +6 -6
  35. package/cjs/data/token-filter/helpers/operators.js +3 -4
  36. package/cjs/data/token-filter/helpers/operators.js.map +1 -1
  37. package/cjs/data/token-filter/helpers/parse-query-text.d.ts +2 -20
  38. package/cjs/data/token-filter/helpers/parse-query-text.js +1 -1
  39. package/cjs/data/token-filter/helpers/parse-query-text.js.map +1 -1
  40. package/cjs/data/token-filter/helpers/query-builder.d.ts +2 -2
  41. package/cjs/data/token-filter/helpers/query-builder.js.map +1 -1
  42. package/cjs/date/Date.Dialog.d.ts +5 -1
  43. package/cjs/date/Date.Dialog.js +6 -2
  44. package/cjs/date/Date.Dialog.js.map +1 -1
  45. package/cjs/date/datepicker/DatePicker.js +3 -2
  46. package/cjs/date/datepicker/DatePicker.js.map +1 -1
  47. package/cjs/date/datepicker/hooks/useDatepicker.js +5 -2
  48. package/cjs/date/datepicker/hooks/useDatepicker.js.map +1 -1
  49. package/cjs/date/datepicker/hooks/useRangeDatepicker.js +3 -1
  50. package/cjs/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
  51. package/cjs/date/datepicker/parts/DatePicker.Months.d.ts +2 -1
  52. package/cjs/date/datepicker/parts/DatePicker.Months.js +3 -3
  53. package/cjs/date/datepicker/parts/DatePicker.Months.js.map +1 -1
  54. package/cjs/date/datepicker/parts/DatePicker.RDP.d.ts +5 -1
  55. package/cjs/date/datepicker/parts/DatePicker.RDP.js +2 -2
  56. package/cjs/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
  57. package/cjs/date/monthpicker/MonthPicker.js +3 -2
  58. package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
  59. package/cjs/date/monthpicker/hooks/useMonthPicker.js +3 -1
  60. package/cjs/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
  61. package/cjs/date/monthpicker/parts/MonthPicker.Caption.d.ts +4 -1
  62. package/cjs/date/monthpicker/parts/MonthPicker.Caption.js +3 -2
  63. package/cjs/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -1
  64. package/cjs/dropdown/Toggle.js +5 -12
  65. package/cjs/dropdown/Toggle.js.map +1 -1
  66. package/cjs/form/combobox/Input/Input.js +1 -1
  67. package/cjs/form/combobox/Input/Input.js.map +1 -1
  68. package/cjs/inline-message/root/InlineMessage.js +2 -2
  69. package/cjs/inline-message/root/InlineMessage.js.map +1 -1
  70. package/cjs/provider/Provider.d.ts +2 -2
  71. package/cjs/toggle-group/useToggleGroup.js +5 -3
  72. package/cjs/toggle-group/useToggleGroup.js.map +1 -1
  73. package/cjs/tooltip/Tooltip.js +1 -3
  74. package/cjs/tooltip/Tooltip.js.map +1 -1
  75. package/cjs/utils/components/HighlightText/HighlightText.d.ts +8 -0
  76. package/cjs/utils/components/HighlightText/HighlightText.js +27 -0
  77. package/cjs/utils/components/HighlightText/HighlightText.js.map +1 -0
  78. package/cjs/utils/components/Listbox/group/ListboxGroup.d.ts +7 -0
  79. package/cjs/utils/components/Listbox/group/ListboxGroup.js +15 -0
  80. package/cjs/utils/components/Listbox/group/ListboxGroup.js.map +1 -0
  81. package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.d.ts +7 -0
  82. package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.js +15 -0
  83. package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.js.map +1 -0
  84. package/cjs/utils/components/Listbox/item/ListboxItem.d.ts +24 -0
  85. package/cjs/utils/components/Listbox/item/ListboxItem.js +33 -0
  86. package/cjs/utils/components/Listbox/item/ListboxItem.js.map +1 -0
  87. package/cjs/utils/components/Listbox/list/ListboxList.d.ts +8 -0
  88. package/cjs/utils/components/Listbox/list/ListboxList.js +32 -0
  89. package/cjs/utils/components/Listbox/list/ListboxList.js.map +1 -0
  90. package/cjs/utils/components/Listbox/root/ListboxRoot.d.ts +20 -0
  91. package/cjs/utils/components/Listbox/root/ListboxRoot.js +84 -0
  92. package/cjs/utils/components/Listbox/root/ListboxRoot.js.map +1 -0
  93. package/cjs/utils/components/Listbox/root/domHelpers.d.ts +3 -0
  94. package/cjs/utils/components/Listbox/root/domHelpers.js +53 -0
  95. package/cjs/utils/components/Listbox/root/domHelpers.js.map +1 -0
  96. package/cjs/utils/components/focus-boundary/FocusBoundary.js +9 -64
  97. package/cjs/utils/components/focus-boundary/FocusBoundary.js.map +1 -1
  98. package/cjs/utils/helpers/focus.d.ts +14 -0
  99. package/cjs/utils/helpers/focus.js +63 -0
  100. package/cjs/utils/helpers/focus.js.map +1 -0
  101. package/cjs/utils/hooks/useDeferredValue.d.ts +1 -0
  102. package/cjs/utils/hooks/useDeferredValue.js +14 -0
  103. package/cjs/utils/hooks/useDeferredValue.js.map +1 -0
  104. package/esm/data/drag-and-drop/item/DataDragAndDropItem.d.ts +27 -0
  105. package/esm/data/drag-and-drop/item/DataDragAndDropItem.js +55 -0
  106. package/esm/data/drag-and-drop/item/DataDragAndDropItem.js.map +1 -0
  107. package/esm/data/drag-and-drop/root/DataDragAndDrop.context.d.ts +5 -0
  108. package/esm/data/drag-and-drop/root/DataDragAndDrop.context.js +3 -0
  109. package/esm/data/drag-and-drop/root/DataDragAndDrop.context.js.map +1 -0
  110. package/esm/data/drag-and-drop/root/DataDragAndDropRoot.d.ts +24 -0
  111. package/esm/data/drag-and-drop/root/DataDragAndDropRoot.js +71 -0
  112. package/esm/data/drag-and-drop/root/DataDragAndDropRoot.js.map +1 -0
  113. package/esm/data/table/helpers/table-keyboard.d.ts +1 -0
  114. package/esm/data/table/helpers/table-keyboard.js +5 -3
  115. package/esm/data/table/helpers/table-keyboard.js.map +1 -1
  116. package/esm/data/table/root/DataTableRoot.context.d.ts +8 -0
  117. package/esm/data/table/root/DataTableRoot.context.js +7 -0
  118. package/esm/data/table/root/DataTableRoot.context.js.map +1 -0
  119. package/esm/data/table/root/DataTableRoot.js +5 -3
  120. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  121. package/esm/data/table/th/DataTableTh.d.ts +18 -2
  122. package/esm/data/table/th/DataTableTh.js +46 -21
  123. package/esm/data/table/th/DataTableTh.js.map +1 -1
  124. package/esm/data/table/tr/DataTableTr.js +9 -2
  125. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  126. package/esm/data/token-filter/AutoSuggest.d.ts +6 -2
  127. package/esm/data/token-filter/AutoSuggest.js +45 -16
  128. package/esm/data/token-filter/AutoSuggest.js.map +1 -1
  129. package/esm/data/token-filter/AutoSuggest.types.d.ts +0 -1
  130. package/esm/data/token-filter/TokenFilter.d.ts +10 -5
  131. package/esm/data/token-filter/TokenFilter.js +110 -48
  132. package/esm/data/token-filter/TokenFilter.js.map +1 -1
  133. package/esm/data/token-filter/TokenFilter.types.d.ts +51 -35
  134. package/esm/data/token-filter/helpers/generate-autocomplete-options.d.ts +3 -6
  135. package/esm/data/token-filter/helpers/generate-autocomplete-options.js +24 -37
  136. package/esm/data/token-filter/helpers/generate-autocomplete-options.js.map +1 -1
  137. package/esm/data/token-filter/helpers/operators.d.ts +6 -6
  138. package/esm/data/token-filter/helpers/operators.js +3 -4
  139. package/esm/data/token-filter/helpers/operators.js.map +1 -1
  140. package/esm/data/token-filter/helpers/parse-query-text.d.ts +2 -20
  141. package/esm/data/token-filter/helpers/parse-query-text.js +1 -1
  142. package/esm/data/token-filter/helpers/parse-query-text.js.map +1 -1
  143. package/esm/data/token-filter/helpers/query-builder.d.ts +2 -2
  144. package/esm/data/token-filter/helpers/query-builder.js.map +1 -1
  145. package/esm/date/Date.Dialog.d.ts +5 -1
  146. package/esm/date/Date.Dialog.js +6 -2
  147. package/esm/date/Date.Dialog.js.map +1 -1
  148. package/esm/date/datepicker/DatePicker.js +3 -2
  149. package/esm/date/datepicker/DatePicker.js.map +1 -1
  150. package/esm/date/datepicker/hooks/useDatepicker.js +5 -2
  151. package/esm/date/datepicker/hooks/useDatepicker.js.map +1 -1
  152. package/esm/date/datepicker/hooks/useRangeDatepicker.js +3 -1
  153. package/esm/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
  154. package/esm/date/datepicker/parts/DatePicker.Months.d.ts +2 -1
  155. package/esm/date/datepicker/parts/DatePicker.Months.js +3 -3
  156. package/esm/date/datepicker/parts/DatePicker.Months.js.map +1 -1
  157. package/esm/date/datepicker/parts/DatePicker.RDP.d.ts +5 -1
  158. package/esm/date/datepicker/parts/DatePicker.RDP.js +2 -2
  159. package/esm/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
  160. package/esm/date/monthpicker/MonthPicker.js +3 -2
  161. package/esm/date/monthpicker/MonthPicker.js.map +1 -1
  162. package/esm/date/monthpicker/hooks/useMonthPicker.js +3 -1
  163. package/esm/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
  164. package/esm/date/monthpicker/parts/MonthPicker.Caption.d.ts +4 -1
  165. package/esm/date/monthpicker/parts/MonthPicker.Caption.js +3 -2
  166. package/esm/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -1
  167. package/esm/dropdown/Toggle.js +5 -12
  168. package/esm/dropdown/Toggle.js.map +1 -1
  169. package/esm/form/combobox/Input/Input.js +1 -1
  170. package/esm/form/combobox/Input/Input.js.map +1 -1
  171. package/esm/inline-message/root/InlineMessage.js +3 -3
  172. package/esm/inline-message/root/InlineMessage.js.map +1 -1
  173. package/esm/provider/Provider.d.ts +2 -2
  174. package/esm/toggle-group/useToggleGroup.js +6 -4
  175. package/esm/toggle-group/useToggleGroup.js.map +1 -1
  176. package/esm/tooltip/Tooltip.js +1 -3
  177. package/esm/tooltip/Tooltip.js.map +1 -1
  178. package/esm/utils/components/HighlightText/HighlightText.d.ts +8 -0
  179. package/esm/utils/components/HighlightText/HighlightText.js +21 -0
  180. package/esm/utils/components/HighlightText/HighlightText.js.map +1 -0
  181. package/esm/utils/components/Listbox/group/ListboxGroup.d.ts +7 -0
  182. package/esm/utils/components/Listbox/group/ListboxGroup.js +10 -0
  183. package/esm/utils/components/Listbox/group/ListboxGroup.js.map +1 -0
  184. package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.d.ts +7 -0
  185. package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.js +9 -0
  186. package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.js.map +1 -0
  187. package/esm/utils/components/Listbox/item/ListboxItem.d.ts +24 -0
  188. package/esm/utils/components/Listbox/item/ListboxItem.js +27 -0
  189. package/esm/utils/components/Listbox/item/ListboxItem.js.map +1 -0
  190. package/esm/utils/components/Listbox/list/ListboxList.d.ts +8 -0
  191. package/esm/utils/components/Listbox/list/ListboxList.js +27 -0
  192. package/esm/utils/components/Listbox/list/ListboxList.js.map +1 -0
  193. package/esm/utils/components/Listbox/root/ListboxRoot.d.ts +20 -0
  194. package/esm/utils/components/Listbox/root/ListboxRoot.js +79 -0
  195. package/esm/utils/components/Listbox/root/ListboxRoot.js.map +1 -0
  196. package/esm/utils/components/Listbox/root/domHelpers.d.ts +3 -0
  197. package/esm/utils/components/Listbox/root/domHelpers.js +50 -0
  198. package/esm/utils/components/Listbox/root/domHelpers.js.map +1 -0
  199. package/esm/utils/components/focus-boundary/FocusBoundary.js +8 -63
  200. package/esm/utils/components/focus-boundary/FocusBoundary.js.map +1 -1
  201. package/esm/utils/helpers/focus.d.ts +14 -0
  202. package/esm/utils/helpers/focus.js +60 -0
  203. package/esm/utils/helpers/focus.js.map +1 -0
  204. package/esm/utils/hooks/useDeferredValue.d.ts +1 -0
  205. package/esm/utils/hooks/useDeferredValue.js +7 -0
  206. package/esm/utils/hooks/useDeferredValue.js.map +1 -0
  207. package/package.json +7 -7
  208. package/src/data/drag-and-drop/item/DataDragAndDropItem.tsx +101 -0
  209. package/src/data/drag-and-drop/root/DataDragAndDrop.context.tsx +9 -0
  210. package/src/data/drag-and-drop/root/DataDragAndDropRoot.tsx +98 -0
  211. package/src/data/table/helpers/table-keyboard.ts +7 -3
  212. package/src/data/table/root/DataTableRoot.context.ts +13 -0
  213. package/src/data/table/root/DataTableRoot.tsx +16 -13
  214. package/src/data/table/th/DataTableTh.tsx +110 -54
  215. package/src/data/table/tr/DataTableTr.tsx +13 -2
  216. package/src/data/token-filter/AutoSuggest.tsx +142 -35
  217. package/src/data/token-filter/AutoSuggest.types.ts +0 -1
  218. package/src/data/token-filter/TokenFilter.tsx +179 -81
  219. package/src/data/token-filter/TokenFilter.types.ts +70 -44
  220. package/src/data/token-filter/helpers/generate-autocomplete-options.test.ts +97 -157
  221. package/src/data/token-filter/helpers/generate-autocomplete-options.ts +56 -53
  222. package/src/data/token-filter/helpers/operators.test.ts +29 -29
  223. package/src/data/token-filter/helpers/operators.ts +16 -16
  224. package/src/data/token-filter/helpers/parse-query-text.test.ts +37 -35
  225. package/src/data/token-filter/helpers/parse-query-text.ts +7 -26
  226. package/src/data/token-filter/helpers/query-builder.ts +2 -2
  227. package/src/date/Date.Dialog.tsx +15 -0
  228. package/src/date/datepicker/DatePicker.tsx +3 -0
  229. package/src/date/datepicker/hooks/useDatepicker.tsx +7 -2
  230. package/src/date/datepicker/hooks/useRangeDatepicker.tsx +5 -1
  231. package/src/date/datepicker/parts/DatePicker.Months.tsx +9 -1
  232. package/src/date/datepicker/parts/DatePicker.RDP.tsx +7 -1
  233. package/src/date/monthpicker/MonthPicker.tsx +3 -1
  234. package/src/date/monthpicker/hooks/useMonthPicker.tsx +5 -1
  235. package/src/date/monthpicker/parts/MonthPicker.Caption.tsx +20 -2
  236. package/src/dropdown/Toggle.tsx +6 -12
  237. package/src/form/combobox/Input/Input.tsx +2 -2
  238. package/src/inline-message/root/InlineMessage.tsx +5 -5
  239. package/src/provider/Provider.tsx +2 -2
  240. package/src/toggle-group/useToggleGroup.ts +6 -5
  241. package/src/tooltip/Tooltip.tsx +1 -3
  242. package/src/utils/components/HighlightText/HighlightText.tsx +34 -0
  243. package/src/utils/components/Listbox/group/ListboxGroup.tsx +26 -0
  244. package/src/utils/components/Listbox/input-slot/ListboxInputSlot.tsx +22 -0
  245. package/src/utils/components/Listbox/item/ListboxItem.tsx +57 -0
  246. package/src/utils/components/Listbox/list/ListboxList.tsx +38 -0
  247. package/src/utils/components/Listbox/root/ListboxRoot.tsx +104 -0
  248. package/src/utils/components/Listbox/root/domHelpers.ts +59 -0
  249. package/src/utils/components/focus-boundary/FocusBoundary.tsx +8 -78
  250. package/src/utils/helpers/focus.ts +75 -0
  251. package/src/utils/hooks/useDeferredValue.ts +12 -0
  252. package/cjs/data/table/th/DataTableThSortHandle.d.ts +0 -6
  253. package/cjs/data/table/th/DataTableThSortHandle.js +0 -82
  254. package/cjs/data/table/th/DataTableThSortHandle.js.map +0 -1
  255. package/esm/data/table/th/DataTableThSortHandle.d.ts +0 -6
  256. package/esm/data/table/th/DataTableThSortHandle.js +0 -47
  257. package/esm/data/table/th/DataTableThSortHandle.js.map +0 -1
  258. package/src/data/table/th/DataTableThSortHandle.tsx +0 -67
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface ListboxGroupProps {
3
+ label: React.ReactNode;
4
+ children: React.ReactNode;
5
+ }
6
+ declare function ListboxGroup({ label, children }: ListboxGroupProps): React.JSX.Element;
7
+ export { ListboxGroup };
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { useId } from "../../../../utils-external/index.js";
3
+ function ListboxGroup({ label, children }) {
4
+ const labelId = useId();
5
+ return (React.createElement("div", { role: "group", className: "aksel-listbox__group", "aria-labelledby": labelId },
6
+ React.createElement("div", { id: labelId, "aria-hidden": true }, label),
7
+ children));
8
+ }
9
+ export { ListboxGroup };
10
+ //# sourceMappingURL=ListboxGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListboxGroup.js","sourceRoot":"","sources":["../../../../../src/utils/components/Listbox/group/ListboxGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAOnD,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAqB;IAC1D,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IAExB,OAAO,CACL,6BACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,sBAAsB,qBACf,OAAO;QAExB,6BAAK,EAAE,EAAE,OAAO,yBACb,KAAK,CACF;QACL,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface ListboxInputSlotProps {
3
+ children: React.ReactElement;
4
+ }
5
+ declare const ListboxInputSlot: ({ children }: ListboxInputSlotProps) => React.JSX.Element;
6
+ export { ListboxInputSlot };
7
+ export type { ListboxInputSlotProps };
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { Slot } from "../../slot/Slot.js";
3
+ const ListboxInputSlot = ({ children }) => {
4
+ return (React.createElement(Slot, { "aria-activedescendant": "aksel-listbox__item-active",
5
+ // @ts-expect-error - You are meant to use an <input>, but Slot doesn't know that.
6
+ autoComplete: "off", role: "combobox" }, children));
7
+ };
8
+ export { ListboxInputSlot };
9
+ //# sourceMappingURL=ListboxInputSlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListboxInputSlot.js","sourceRoot":"","sources":["../../../../../src/utils/components/Listbox/input-slot/ListboxInputSlot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAMvC,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAyB,EAAE,EAAE;IAC/D,OAAO,CACL,oBAAC,IAAI,6BACmB,4BAA4B;QAClD,kFAAkF;QAClF,YAAY,EAAC,KAAK,EAClB,IAAI,EAAC,UAAU,IAEd,QAAQ,CACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ export interface ListboxItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "role" | "tabIndex"> {
3
+ /**
4
+ * Unique ID used for tracking which item has virtual focus.
5
+ */
6
+ id: string;
7
+ hasVirtualFocus: boolean;
8
+ children: React.ReactNode;
9
+ /**
10
+ * Callback when item is selected.
11
+ * To improve performance when you have many items,
12
+ * memoize the prop with e.g. useEventCallback.
13
+ */
14
+ onClick: React.MouseEventHandler<HTMLDivElement>;
15
+ }
16
+ declare function ListboxItemComponent({ id, hasVirtualFocus, children, className, ...rest }: ListboxItemProps): React.JSX.Element;
17
+ /**
18
+ * This component is memoized. To improve performance when you have many items,
19
+ * make sure all object props have stable references (i.e. memoize the event handlers with e.g. useEventCallback).
20
+ *
21
+ * NB: Remember to set `aria-selected` on selected items!
22
+ */
23
+ export declare const ListboxItem: typeof ListboxItemComponent;
24
+ export {};
@@ -0,0 +1,27 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from "react";
13
+ import { cl } from "../../../helpers/index.js";
14
+ function ListboxItemComponent(_a) {
15
+ //console.log("Rendering item", id);
16
+ var { id, hasVirtualFocus, children, className } = _a, rest = __rest(_a, ["id", "hasVirtualFocus", "children", "className"]);
17
+ // TODO: Slot?
18
+ return (React.createElement("div", Object.assign({ "aria-selected": false }, rest, { className: cl("aksel-listbox__item", className), role: "option", tabIndex: -1, "data-virtual-focus": hasVirtualFocus, "data-id": id, id: hasVirtualFocus ? "aksel-listbox__item-active" : undefined }), children));
19
+ }
20
+ /**
21
+ * This component is memoized. To improve performance when you have many items,
22
+ * make sure all object props have stable references (i.e. memoize the event handlers with e.g. useEventCallback).
23
+ *
24
+ * NB: Remember to set `aria-selected` on selected items!
25
+ */
26
+ export const ListboxItem = React.memo(ListboxItemComponent);
27
+ //# sourceMappingURL=ListboxItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListboxItem.js","sourceRoot":"","sources":["../../../../../src/utils/components/Listbox/item/ListboxItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAoBtC,SAAS,oBAAoB,CAAC,EAMX;IACjB,oCAAoC;QAPR,EAC5B,EAAE,EACF,eAAe,EACf,QAAQ,EACR,SAAS,OAEQ,EADd,IAAI,cALqB,kDAM7B,CADQ;IAIP,cAAc;IAEd,OAAO,CACL,4DACiB,KAAK,IAChB,IAAI,IACR,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAC/C,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,wBACQ,eAAe,aAC1B,EAAE,EACX,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,SAAS,KAE7D,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CACnC,oBAAoB,CACU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** biome-ignore-all lint/a11y/useKeyWithMouseEvents: We know what we are doing */
2
+ import React from "react";
3
+ export interface ListboxListProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "role" | "tabIndex" | "onMouseOver"> {
4
+ children: React.ReactNode;
5
+ setVirtuallyFocusedItemId: (value: string) => void;
6
+ }
7
+ declare function ListboxList({ children, setVirtuallyFocusedItemId, ...rest }: ListboxListProps): React.JSX.Element;
8
+ export { ListboxList };
@@ -0,0 +1,27 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ /* eslint-disable jsx-a11y/mouse-events-have-key-events */
13
+ /** biome-ignore-all lint/a11y/useKeyWithMouseEvents: We know what we are doing */
14
+ import React from "react";
15
+ import { cl } from "../../../helpers/index.js";
16
+ function ListboxList(_a) {
17
+ var { children, setVirtuallyFocusedItemId } = _a, rest = __rest(_a, ["children", "setVirtuallyFocusedItemId"]);
18
+ return (React.createElement("div", Object.assign({}, rest, { className: cl(rest.className, "aksel-listbox__list"), role: "listbox", tabIndex: -1, onMouseOver: (event) => {
19
+ const target = event.target;
20
+ const itemEl = target.closest('[role="option"]');
21
+ if (itemEl) {
22
+ setVirtuallyFocusedItemId((itemEl === null || itemEl === void 0 ? void 0 : itemEl.dataset.id) || "");
23
+ }
24
+ } }), children));
25
+ }
26
+ export { ListboxList };
27
+ //# sourceMappingURL=ListboxList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListboxList.js","sourceRoot":"","sources":["../../../../../src/utils/components/Listbox/list/ListboxList.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,0DAA0D;AAC1D,kFAAkF;AAClF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAUtC,SAAS,WAAW,CAAC,EAIF;QAJE,EACnB,QAAQ,EACR,yBAAyB,OAER,EADd,IAAI,cAHY,yCAIpB,CADQ;IAEP,OAAO,CACL,6CACM,IAAI,IACR,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EACpD,IAAI,EAAC,SAAS,EACd,QAAQ,EAAE,CAAC,CAAC,EACZ,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;YAC3C,MAAM,MAAM,GAAuB,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,yBAAyB,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,EAAE,KAAI,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,KAEA,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** biome-ignore-all lint/a11y/noStaticElementInteractions: We know what we are doing */
2
+ import React from "react";
3
+ import { ListboxGroup } from "../group/ListboxGroup.js";
4
+ import { ListboxList } from "../list/ListboxList.js";
5
+ export interface ListboxProps {
6
+ children: React.ReactNode;
7
+ setVirtuallyFocusedItemId: (value: string) => void;
8
+ }
9
+ /**
10
+ * Low level component for displaying a list of selectable items with optional grouping.
11
+ * Keyboard navigation is implemented with virtual focus so that real focus can remain on an input field.
12
+ */
13
+ declare function Listbox({ children, setVirtuallyFocusedItemId }: ListboxProps): React.JSX.Element;
14
+ declare namespace Listbox {
15
+ var InputSlot: ({ children }: import("../input-slot/ListboxInputSlot.js").ListboxInputSlotProps) => React.JSX.Element;
16
+ var List: typeof ListboxList;
17
+ var Item: ({ id, hasVirtualFocus, children, className, ...rest }: import("../item/ListboxItem.js").ListboxItemProps) => React.JSX.Element;
18
+ var Group: typeof ListboxGroup;
19
+ }
20
+ export default Listbox;
@@ -0,0 +1,79 @@
1
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
2
+ /** biome-ignore-all lint/a11y/noStaticElementInteractions: We know what we are doing */
3
+ import React from "react";
4
+ import { ListboxGroup } from "../group/ListboxGroup.js";
5
+ import { ListboxInputSlot } from "../input-slot/ListboxInputSlot.js";
6
+ import { ListboxItem } from "../item/ListboxItem.js";
7
+ import { ListboxList } from "../list/ListboxList.js";
8
+ import { findNextItem, findPrevItem } from "./domHelpers.js";
9
+ /**
10
+ * Low level component for displaying a list of selectable items with optional grouping.
11
+ * Keyboard navigation is implemented with virtual focus so that real focus can remain on an input field.
12
+ */
13
+ function Listbox({ children, setVirtuallyFocusedItemId }) {
14
+ const virtuallyFocusItem = (element) => {
15
+ setVirtuallyFocusedItemId((element === null || element === void 0 ? void 0 : element.dataset.id) || "");
16
+ element === null || element === void 0 ? void 0 : element.scrollIntoView({ block: "nearest" });
17
+ };
18
+ return (React.createElement("div", { onKeyDown: (event) => {
19
+ const listbox = event.currentTarget.querySelector('[role="listbox"]');
20
+ if (!listbox) {
21
+ return;
22
+ }
23
+ // Helper functions
24
+ const getFirstItem = (suffix = "") => listbox.querySelector(`[role="option"]${suffix}`);
25
+ const getLastItem = () => {
26
+ const allItems = listbox.querySelectorAll('[role="option"]');
27
+ return allItems[allItems.length - 1];
28
+ };
29
+ const focusedItemElm = getFirstItem('[data-virtual-focus="true"]');
30
+ // Doesn't make sense to have real focus on one item and virtual focus on another at the same time.
31
+ // Not sure if it matters, though 🤔
32
+ const itemElmWithRealFocus = getFirstItem(":focus");
33
+ if (itemElmWithRealFocus) {
34
+ listbox.focus();
35
+ }
36
+ const virtuallyFocusWithFallback = (getNextElement, getFallback) => {
37
+ event.preventDefault();
38
+ if (!focusedItemElm) {
39
+ virtuallyFocusItem(getFallback());
40
+ return;
41
+ }
42
+ const nextItem = getNextElement(focusedItemElm);
43
+ if (!nextItem) {
44
+ virtuallyFocusItem(getFallback());
45
+ return;
46
+ }
47
+ virtuallyFocusItem(nextItem);
48
+ };
49
+ switch (event.key) {
50
+ case "ArrowDown":
51
+ virtuallyFocusWithFallback(findNextItem, getFirstItem);
52
+ break;
53
+ case "ArrowUp":
54
+ virtuallyFocusWithFallback(findPrevItem, getLastItem);
55
+ break;
56
+ case "Home":
57
+ event.preventDefault();
58
+ virtuallyFocusItem(getFirstItem());
59
+ break;
60
+ case "End":
61
+ event.preventDefault();
62
+ virtuallyFocusItem(getLastItem());
63
+ break;
64
+ case "Enter":
65
+ case "Accept":
66
+ if (focusedItemElm) {
67
+ focusedItemElm.click();
68
+ }
69
+ break;
70
+ // TODO: Consider implementing PageUp/PageDown too
71
+ }
72
+ } }, children));
73
+ }
74
+ Listbox.InputSlot = ListboxInputSlot;
75
+ Listbox.List = ListboxList;
76
+ Listbox.Item = ListboxItem;
77
+ Listbox.Group = ListboxGroup;
78
+ export default Listbox;
79
+ //# sourceMappingURL=ListboxRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListboxRoot.js","sourceRoot":"","sources":["../../../../../src/utils/components/Listbox/root/ListboxRoot.tsx"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,wFAAwF;AACxF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO1D;;;GAGG;AACH,SAAS,OAAO,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAgB;IACpE,MAAM,kBAAkB,GAAG,CAAC,OAA2B,EAAE,EAAE;QACzD,yBAAyB,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,EAAE,KAAI,EAAE,CAAC,CAAC;QACrD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,OAAO,GACX,KAAK,CAAC,aAAa,CAAC,aAAa,CAAc,kBAAkB,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,mBAAmB;YACnB,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,EAAE,CAC3C,OAAO,CAAC,aAAa,CAAc,kBAAkB,MAAM,EAAE,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,MAAM,QAAQ,GACZ,OAAO,CAAC,gBAAgB,CAAc,iBAAiB,CAAC,CAAC;gBAC3D,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;YAEnE,mGAAmG;YACnG,oCAAoC;YACpC,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;YAED,MAAM,0BAA0B,GAAG,CACjC,cAAgE,EAChE,WAAqC,EACrC,EAAE;gBACF,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;gBAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC;YAEF,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;gBAClB,KAAK,WAAW;oBACd,0BAA0B,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,SAAS;oBACZ,0BAA0B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;oBACtD,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,KAAK;oBACR,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC;oBAClC,MAAM;gBACR,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ;oBACX,IAAI,cAAc,EAAE,CAAC;wBACnB,cAAc,CAAC,KAAK,EAAE,CAAC;oBACzB,CAAC;oBACD,MAAM;gBACR,kDAAkD;YACpD,CAAC;QACH,CAAC,IAEA,QAAQ,CACL,CACP,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC;AACrC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;AAC3B,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;AAC3B,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;AAE7B,eAAe,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare function findNextItem(currentItem: HTMLElement): HTMLElement | null;
2
+ declare function findPrevItem(currentItem: HTMLElement): HTMLElement | null;
3
+ export { findNextItem, findPrevItem };
@@ -0,0 +1,50 @@
1
+ function findNextItem(currentItem) {
2
+ var _a;
3
+ const nextElement = currentItem.nextElementSibling;
4
+ if (nextElement) {
5
+ if (nextElement.role === "group") {
6
+ return nextElement.querySelector('[role="option"]');
7
+ }
8
+ if (nextElement.role === "option") {
9
+ return nextElement;
10
+ }
11
+ }
12
+ // No next element: Current element might be inside a group.
13
+ // Check if the parent has a next sibling
14
+ const parentNextElement = (_a = currentItem.parentElement) === null || _a === void 0 ? void 0 : _a.nextElementSibling;
15
+ if (parentNextElement) {
16
+ if (parentNextElement.role === "group") {
17
+ return parentNextElement.querySelector('[role="option"]');
18
+ }
19
+ if (parentNextElement.role === "option") {
20
+ return parentNextElement;
21
+ }
22
+ }
23
+ return null;
24
+ }
25
+ function findPrevItem(currentItem) {
26
+ var _a;
27
+ const prevElement = currentItem.previousElementSibling;
28
+ if (prevElement) {
29
+ if (prevElement.role === "group") {
30
+ return prevElement.querySelector('[role="option"]:last-of-type');
31
+ }
32
+ if (prevElement.role === "option") {
33
+ return prevElement;
34
+ }
35
+ }
36
+ // No previous element: Current element might be inside a group.
37
+ // Check if the parent has a previous sibling.
38
+ const parentPrevElement = (_a = currentItem.parentElement) === null || _a === void 0 ? void 0 : _a.previousElementSibling;
39
+ if (parentPrevElement) {
40
+ if (parentPrevElement.role === "group") {
41
+ return parentPrevElement.querySelector('[role="option"]:last-of-type');
42
+ }
43
+ if (parentPrevElement.role === "option") {
44
+ return parentPrevElement;
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+ export { findNextItem, findPrevItem };
50
+ //# sourceMappingURL=domHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domHelpers.js","sourceRoot":"","sources":["../../../../../src/utils/components/Listbox/root/domHelpers.ts"],"names":[],"mappings":"AAAA,SAAS,YAAY,CAAC,WAAwB;;IAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,kBAAwC,CAAC;IACzE,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,WAAW,CAAC,aAAa,CAAc,iBAAiB,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,MAAA,WAAW,CAAC,aAAa,0CAC/C,kBAAwC,CAAC;IAC7C,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,iBAAiB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvC,OAAO,iBAAiB,CAAC,aAAa,CAAc,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,WAAwB;;IAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,sBAA4C,CAAC;IAC7E,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,WAAW,CAAC,aAAa,CAC9B,8BAA8B,CAC/B,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,MAAA,WAAW,CAAC,aAAa,0CAC/C,sBAA4C,CAAC;IACjD,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,iBAAiB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACvC,OAAO,iBAAiB,CAAC,aAAa,CACpC,8BAA8B,CAC/B,CAAC;QACJ,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -12,6 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React, { forwardRef, useCallback, useEffect, useRef, useState, } from "react";
13
13
  import { useClientLayoutEffect } from "../../../utils-external/index.js";
14
14
  import { hideNonTargetElements, ownerDocument, resolveRef, } from "../../helpers/index.js";
15
+ import { focusElement, getTabbableCandidates } from "../../helpers/focus.js";
15
16
  import { useMergeRefs } from "../../hooks/index.js";
16
17
  import { useValueAsRef } from "../../hooks/useValueAsRef.js";
17
18
  import { Slot } from "../slot/Slot.js";
@@ -45,7 +46,7 @@ const FocusBoundary = forwardRef((_a, forwardedRef) => {
45
46
  lastFocusedElementRef.current = target;
46
47
  }
47
48
  else {
48
- focus(lastFocusedElementRef.current, { select: true });
49
+ focusElement(lastFocusedElementRef.current, { select: true });
49
50
  }
50
51
  }
51
52
  function handleFocusOut(event) {
@@ -74,7 +75,7 @@ const FocusBoundary = forwardRef((_a, forwardedRef) => {
74
75
  * when they are not supposed to (like when clicking on elements outside the container
75
76
  */
76
77
  if (!container.contains(relatedTarget)) {
77
- focus(lastFocusedElementRef.current, { select: true });
78
+ focusElement(lastFocusedElementRef.current, { select: true });
78
79
  }
79
80
  }
80
81
  /**
@@ -87,7 +88,7 @@ const FocusBoundary = forwardRef((_a, forwardedRef) => {
87
88
  return;
88
89
  }
89
90
  if (mutations.some((mutation) => mutation.removedNodes.length > 0)) {
90
- focus(container);
91
+ focusElement(container);
91
92
  }
92
93
  };
93
94
  document.addEventListener("focusin", handleFocusIn);
@@ -140,7 +141,7 @@ const FocusBoundary = forwardRef((_a, forwardedRef) => {
140
141
  const ownerDoc = ownerDocument(container);
141
142
  const previouslyFocusedElement = ownerDoc.activeElement;
142
143
  queueMicrotask(() => {
143
- const focusableElements = removeLinks(getTabbableCandidates(container));
144
+ const focusableElements = getTabbableCandidates(container);
144
145
  const initialFocusValueOrFn = initialFocusRef.current;
145
146
  const resolvedInitialFocus = typeof initialFocusValueOrFn === "function"
146
147
  ? initialFocusValueOrFn()
@@ -162,7 +163,7 @@ const FocusBoundary = forwardRef((_a, forwardedRef) => {
162
163
  if (focusAlreadyInsideFloatingEl) {
163
164
  return;
164
165
  }
165
- focus(elToFocus, {
166
+ focusElement(elToFocus, {
166
167
  preventScroll: elToFocus === container,
167
168
  sync: false,
168
169
  });
@@ -239,13 +240,13 @@ const FocusBoundary = forwardRef((_a, forwardedRef) => {
239
240
  if (!event.shiftKey && focusedElement === last) {
240
241
  event.preventDefault();
241
242
  if (loop) {
242
- focus(first, { select: true });
243
+ focusElement(first, { select: true });
243
244
  }
244
245
  }
245
246
  else if (event.shiftKey && focusedElement === first) {
246
247
  event.preventDefault();
247
248
  if (loop) {
248
- focus(last, { select: true });
249
+ focusElement(last, { select: true });
249
250
  }
250
251
  }
251
252
  }
@@ -263,36 +264,6 @@ function getTabbableEdges(container) {
263
264
  findFirstVisible(candidates.reverse(), container),
264
265
  ];
265
266
  }
266
- /**
267
- * Returns a list of potential tabbable candidates.
268
- * We do not take into account tabindex values.
269
- *
270
- * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
271
- * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
272
- */
273
- function getTabbableCandidates(container) {
274
- const nodes = [];
275
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
276
- acceptNode: (node) => {
277
- const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
278
- if (node.disabled || node.hidden || isHiddenInput) {
279
- return NodeFilter.FILTER_SKIP;
280
- }
281
- /**
282
- * `.tabIndex` is not the same as the `tabindex` attribute. It works on the
283
- * runtime's understanding of tabbability, so this automatically accounts
284
- * for any kind of element that could be tabbed to.
285
- */
286
- return node.tabIndex >= 0
287
- ? NodeFilter.FILTER_ACCEPT
288
- : NodeFilter.FILTER_SKIP;
289
- },
290
- });
291
- while (walker.nextNode()) {
292
- nodes.push(walker.currentNode);
293
- }
294
- return nodes;
295
- }
296
267
  /**
297
268
  * Returns the first visible element in a list.
298
269
  * NOTE: Only checks visibility up to the `container`.
@@ -320,29 +291,6 @@ function isHidden(node, { upTo }) {
320
291
  }
321
292
  return false;
322
293
  }
323
- let rafId = 0;
324
- function focus(element, { select = false, preventScroll = true, sync = true } = {}) {
325
- if (!(element === null || element === void 0 ? void 0 : element.focus)) {
326
- return;
327
- }
328
- const previouslyFocusedElement = document.activeElement;
329
- cancelAnimationFrame(rafId);
330
- const exec = () => element.focus({ preventScroll });
331
- if (sync) {
332
- exec();
333
- }
334
- else {
335
- rafId = requestAnimationFrame(exec);
336
- }
337
- if (!select) {
338
- return;
339
- }
340
- /* By default, inputs that gets focus should select its contents */
341
- if (element !== previouslyFocusedElement &&
342
- element instanceof HTMLInputElement &&
343
- "select" in element)
344
- element.select();
345
- }
346
294
  const focusBoundarysStack = createFocusBoundarysStack();
347
295
  function createFocusBoundarysStack() {
348
296
  /* A stack of focus-boundaries, with the active one at the top */
@@ -373,9 +321,6 @@ function arrayRemove(array, item) {
373
321
  }
374
322
  return updatedArray;
375
323
  }
376
- function removeLinks(items) {
377
- return items.filter((item) => item.tagName !== "A");
378
- }
379
324
  const LIST_LIMIT = 10;
380
325
  let previouslyFocusedElements = [];
381
326
  const focusedElementsByContainer = new WeakMap();
@@ -1 +1 @@
1
- {"version":3,"file":"FocusBoundary.js","sourceRoot":"","sources":["../../../../src/utils/components/focus-boundary/FocusBoundary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FocusBoundary.js","sourceRoot":"","sources":["../../../../src/utils/components/focus-boundary/FocusBoundary.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns a list of potential tabbable candidates.
3
+ * We do not take into account tabindex values.
4
+ *
5
+ * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
6
+ * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
7
+ */
8
+ declare function getTabbableCandidates(container: HTMLElement): HTMLElement[];
9
+ declare function focusElement(element?: HTMLElement | null, { select, preventScroll, sync }?: {
10
+ select?: boolean | undefined;
11
+ preventScroll?: boolean | undefined;
12
+ sync?: boolean | undefined;
13
+ }): void;
14
+ export { getTabbableCandidates, focusElement };
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Returns a list of potential tabbable candidates.
3
+ * We do not take into account tabindex values.
4
+ *
5
+ * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
6
+ * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
7
+ */
8
+ function getTabbableCandidates(container) {
9
+ const nodes = [];
10
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
11
+ acceptNode: (node) => {
12
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
13
+ if (node.disabled || node.hidden || isHiddenInput) {
14
+ return NodeFilter.FILTER_SKIP;
15
+ }
16
+ /**
17
+ * `.tabIndex` is not the same as the `tabindex` attribute. It works on the
18
+ * runtime's understanding of tabbability, so this automatically accounts
19
+ * for any kind of element that could be tabbed to.
20
+ */
21
+ return node.tabIndex >= 0
22
+ ? NodeFilter.FILTER_ACCEPT
23
+ : NodeFilter.FILTER_SKIP;
24
+ },
25
+ });
26
+ while (walker.nextNode()) {
27
+ nodes.push(walker.currentNode);
28
+ }
29
+ return removeLinks(nodes);
30
+ }
31
+ function removeLinks(items) {
32
+ return items.filter((item) => item.tagName !== "A");
33
+ }
34
+ let rafId = 0;
35
+ function focusElement(element, { select = false, preventScroll = true, sync = true } = {}) {
36
+ if (!(element === null || element === void 0 ? void 0 : element.focus)) {
37
+ return;
38
+ }
39
+ const previouslyFocusedElement = document.activeElement;
40
+ cancelAnimationFrame(rafId);
41
+ const exec = () => {
42
+ element.focus({ preventScroll });
43
+ };
44
+ if (sync) {
45
+ exec();
46
+ }
47
+ else {
48
+ rafId = requestAnimationFrame(exec);
49
+ }
50
+ if (!select) {
51
+ return;
52
+ }
53
+ /* By default, inputs that gets focus should select its contents */
54
+ if (element !== previouslyFocusedElement &&
55
+ element instanceof HTMLInputElement &&
56
+ "select" in element)
57
+ element.select();
58
+ }
59
+ export { getTabbableCandidates, focusElement };
60
+ //# sourceMappingURL=focus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.js","sourceRoot":"","sources":["../../../src/utils/helpers/focus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,SAAsB;IACnD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE;QAC3E,UAAU,EAAE,CAAC,IAAS,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;YACzE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;gBAClD,OAAO,UAAU,CAAC,WAAW,CAAC;YAChC,CAAC;YAED;;;;eAIG;YACH,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC;gBACvB,CAAC,CAAC,UAAU,CAAC,aAAa;gBAC1B,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAA0B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,KAAoB;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,SAAS,YAAY,CACnB,OAA4B,EAC5B,EAAE,MAAM,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE;IAE1D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,MAAM,wBAAwB,GAAG,QAAQ,CAAC,aAAa,CAAC;IAExD,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;IACT,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,IACE,OAAO,KAAK,wBAAwB;QACpC,OAAO,YAAY,gBAAgB;QACnC,QAAQ,IAAI,OAAO;QAEnB,OAAO,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const useDeferredValue: (value: string) => string;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ const maybeReactUseDeferredValue = React["useDeferredValue" + "" // Workaround for https://github.com/webpack/webpack/issues/14814
3
+ ];
4
+ export const useDeferredValue = (value) => maybeReactUseDeferredValue !== undefined
5
+ ? maybeReactUseDeferredValue(value)
6
+ : value;
7
+ //# sourceMappingURL=useDeferredValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDeferredValue.js","sourceRoot":"","sources":["../../../src/utils/hooks/useDeferredValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,0BAA0B,GAC9B,KACD,CACC,kBAAkB,GAAG,EAAE,CAAC,iEAAiE;CAC1F,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CACxD,0BAA0B,KAAK,SAAS;IACtC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC;IACnC,CAAC,CAAC,KAAK,CAAC"}