@servicetitan/anvil2 3.17.0 → 3.18.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 (302) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/{AiMark-CYXbKuCA.js → AiMark-Ca7WmL-9.js} +113 -32
  3. package/dist/AiMark-Ca7WmL-9.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-CYpl0czJ.js → Alert-BOqBFMUV.js} +2 -2
  6. package/dist/{Alert-CYpl0czJ.js.map → Alert-BOqBFMUV.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-DagOuc9c.js → AnvilProvider-BVTxXzoS.js} +3 -3
  9. package/dist/{AnvilProvider-DagOuc9c.js.map → AnvilProvider-BVTxXzoS.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Breadcrumbs-C0CXs9Ma.js → Breadcrumbs-1MCqy-gU.js} +2 -2
  12. package/dist/{Breadcrumbs-C0CXs9Ma.js.map → Breadcrumbs-1MCqy-gU.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Calendar-BAIyDHX9.js → Calendar-BcsuV4Xv.js} +2 -2
  15. package/dist/{Calendar-BAIyDHX9.js.map → Calendar-BcsuV4Xv.js.map} +1 -1
  16. package/dist/{Calendar-C_NPqjx3.js → Calendar-oBRbQqnG.js} +2 -2
  17. package/dist/{Calendar-C_NPqjx3.js.map → Calendar-oBRbQqnG.js.map} +1 -1
  18. package/dist/Calendar.js +2 -2
  19. package/dist/{Checkbox-4Ow8rCbD.js → Checkbox-BCaUzwF_.js} +2 -2
  20. package/dist/{Checkbox-4Ow8rCbD.js.map → Checkbox-BCaUzwF_.js.map} +1 -1
  21. package/dist/{Checkbox-f1vutjn0.js → Checkbox-BocPrjKC.js} +4 -4
  22. package/dist/{Checkbox-f1vutjn0.js.map → Checkbox-BocPrjKC.js.map} +1 -1
  23. package/dist/Checkbox.js +1 -1
  24. package/dist/{Chip-AIF0WiNS.js → Chip-BWqgUX71.js} +11 -24
  25. package/dist/Chip-BWqgUX71.js.map +1 -0
  26. package/dist/Chip.js +1 -1
  27. package/dist/Combobox.js +1 -1
  28. package/dist/{DataTableEditColumnsDrawer-DRgJgso9.js → DataTableEditColumnsDrawer-C7OHRsJU.js} +101 -42
  29. package/dist/DataTableEditColumnsDrawer-C7OHRsJU.js.map +1 -0
  30. package/dist/DataTableEditColumnsDrawer.css +49 -33
  31. package/dist/{DateFieldRange-D9PA985Z.js → DateFieldRange-BPcsS6TW.js} +5 -5
  32. package/dist/{DateFieldRange-D9PA985Z.js.map → DateFieldRange-BPcsS6TW.js.map} +1 -1
  33. package/dist/DateFieldRange.js +1 -1
  34. package/dist/{DateFieldSingle-CMLojOb3.js → DateFieldSingle-BRMhe0OM.js} +5 -5
  35. package/dist/{DateFieldSingle-CMLojOb3.js.map → DateFieldSingle-BRMhe0OM.js.map} +1 -1
  36. package/dist/DateFieldSingle.js +1 -1
  37. package/dist/{DateFieldYearless-B5IyR75v.js → DateFieldYearless-NOgDKzrJ.js} +6 -6
  38. package/dist/{DateFieldYearless-B5IyR75v.js.map → DateFieldYearless-NOgDKzrJ.js.map} +1 -1
  39. package/dist/DateFieldYearless.js +1 -1
  40. package/dist/{DateFieldYearlessRange-8yXILjx7.js → DateFieldYearlessRange-ChvypgXC.js} +5 -5
  41. package/dist/{DateFieldYearlessRange-8yXILjx7.js.map → DateFieldYearlessRange-ChvypgXC.js.map} +1 -1
  42. package/dist/DateFieldYearlessRange.js +1 -1
  43. package/dist/{DaysOfTheWeek-Cxp5VdYK.js → DaysOfTheWeek-nYitIKnQ.js} +3 -3
  44. package/dist/{DaysOfTheWeek-Cxp5VdYK.js.map → DaysOfTheWeek-nYitIKnQ.js.map} +1 -1
  45. package/dist/DaysOfTheWeek.js +1 -1
  46. package/dist/Details-B2F3auTX.js +216 -0
  47. package/dist/Details-B2F3auTX.js.map +1 -0
  48. package/dist/{Details-BxqP-5vp.js → Details-DQ-_Mg4o.js} +3 -3
  49. package/dist/{Details-BxqP-5vp.js.map → Details-DQ-_Mg4o.js.map} +1 -1
  50. package/dist/Details.css +92 -68
  51. package/dist/Details.js +1 -1
  52. package/dist/Details2.css +137 -0
  53. package/dist/{Dialog-KDAJphrA.js → Dialog-BgWoV2on.js} +6 -4
  54. package/dist/Dialog-BgWoV2on.js.map +1 -0
  55. package/dist/Dialog.js +1 -1
  56. package/dist/{Drawer-C7E2NNnH.js → Drawer-BVBLtGn_.js} +7 -5
  57. package/dist/Drawer-BVBLtGn_.js.map +1 -0
  58. package/dist/Drawer.js +1 -1
  59. package/dist/DrillDown.js +1 -1
  60. package/dist/{EditCard-CutlsXfK.js → EditCard-hivZDPZh.js} +2 -2
  61. package/dist/{EditCard-CutlsXfK.js.map → EditCard-hivZDPZh.js.map} +1 -1
  62. package/dist/EditCard.js +1 -1
  63. package/dist/{FieldLabel-DYcUS3A4.js → FieldLabel-Cn559Brf.js} +8 -58
  64. package/dist/FieldLabel-Cn559Brf.js.map +1 -0
  65. package/dist/FieldLabel.css +1 -12
  66. package/dist/FieldLabel.js +1 -1
  67. package/dist/FieldMessage.js +1 -1
  68. package/dist/{FilterBar-DbDfZph-.js → FilterBar-COd38Ent.js} +5 -5
  69. package/dist/{FilterBar-DbDfZph-.js.map → FilterBar-COd38Ent.js.map} +1 -1
  70. package/dist/FilterBar.js +1 -1
  71. package/dist/InlineMarkdown-CL1tKR01.js +87 -0
  72. package/dist/InlineMarkdown-CL1tKR01.js.map +1 -0
  73. package/dist/InlineMarkdown.css +12 -0
  74. package/dist/{InputMask-BxdQc1ld.js → InputMask-DICWdeiF.js} +3 -3
  75. package/dist/{InputMask-BxdQc1ld.js.map → InputMask-DICWdeiF.js.map} +1 -1
  76. package/dist/InputMask.js +1 -1
  77. package/dist/{ListView-BVanVvBk.js → ListView-BeGBn5Vk.js} +2 -2
  78. package/dist/{ListView-BVanVvBk.js.map → ListView-BeGBn5Vk.js.map} +1 -1
  79. package/dist/ListView.js +1 -1
  80. package/dist/{Listbox-BR0YQIee.js → Listbox-n1CmJ2gh.js} +2 -2
  81. package/dist/{Listbox-BR0YQIee.js.map → Listbox-n1CmJ2gh.js.map} +1 -1
  82. package/dist/Listbox.js +1 -1
  83. package/dist/MultiSelectField.js +1 -1
  84. package/dist/{MultiSelectFieldSync-9253tott.js → MultiSelectFieldSync-CWsOdu-o.js} +44 -62
  85. package/dist/MultiSelectFieldSync-CWsOdu-o.js.map +1 -0
  86. package/dist/MultiSelectFieldSync.css +107 -69
  87. package/dist/MultiSelectMenu.js +1 -1
  88. package/dist/{MultiSelectMenuSync-BUJbWN2I.js → MultiSelectMenuSync-AVcf8ZUZ.js} +16 -29
  89. package/dist/MultiSelectMenuSync-AVcf8ZUZ.js.map +1 -0
  90. package/dist/{NumberField-DhxywJVp.js → NumberField-DjOvcCa1.js} +5 -5
  91. package/dist/{NumberField-DhxywJVp.js.map → NumberField-DjOvcCa1.js.map} +1 -1
  92. package/dist/NumberField.js +1 -1
  93. package/dist/{Page-D_KL2tdK.js → Page-_dh-JesM.js} +128 -80
  94. package/dist/Page-_dh-JesM.js.map +1 -0
  95. package/dist/Page.css +85 -80
  96. package/dist/Page.js +1 -1
  97. package/dist/{Pagination-DYpUtMha.js → Pagination-CsSpaTCs.js} +2 -2
  98. package/dist/{Pagination-DYpUtMha.js.map → Pagination-CsSpaTCs.js.map} +1 -1
  99. package/dist/Pagination.js +1 -1
  100. package/dist/{Popover-B2ix8Ji4.js → Popover-CEKl0WY3.js} +3 -3
  101. package/dist/{Popover-B2ix8Ji4.js.map → Popover-CEKl0WY3.js.map} +1 -1
  102. package/dist/Popover.js +1 -1
  103. package/dist/{ProgressBar-CjoOuJCi.js → ProgressBar-ubCKKewC.js} +3 -3
  104. package/dist/{ProgressBar-CjoOuJCi.js.map → ProgressBar-ubCKKewC.js.map} +1 -1
  105. package/dist/ProgressBar.js +1 -1
  106. package/dist/{Radio-Bz36_d0V.js → Radio-DkB6zFsS.js} +2 -2
  107. package/dist/{Radio-Bz36_d0V.js.map → Radio-DkB6zFsS.js.map} +1 -1
  108. package/dist/{Radio-DOD1d9Vw.js → Radio-q1Vp_ZQG.js} +4 -4
  109. package/dist/{Radio-DOD1d9Vw.js.map → Radio-q1Vp_ZQG.js.map} +1 -1
  110. package/dist/Radio.js +1 -1
  111. package/dist/{RichTextEditor-BORVXVDw.js → RichTextEditor-BHt6sWMA.js} +8 -8
  112. package/dist/{RichTextEditor-BORVXVDw.js.map → RichTextEditor-BHt6sWMA.js.map} +1 -1
  113. package/dist/RichTextEditor.js +1 -1
  114. package/dist/{SavedFiltersButton-vq_Kt4Qc.js → SavedFiltersButton-Cl58iHZe.js} +9 -9
  115. package/dist/{SavedFiltersButton-vq_Kt4Qc.js.map → SavedFiltersButton-Cl58iHZe.js.map} +1 -1
  116. package/dist/SavedFiltersButton.js +1 -1
  117. package/dist/{SearchField-ChoNtw8w.js → SearchField-Bk-Ltu4v.js} +2 -2
  118. package/dist/{SearchField-ChoNtw8w.js.map → SearchField-Bk-Ltu4v.js.map} +1 -1
  119. package/dist/{SearchField-DX8hZyo2.js → SearchField-INVftpNM.js} +2 -2
  120. package/dist/{SearchField-DX8hZyo2.js.map → SearchField-INVftpNM.js.map} +1 -1
  121. package/dist/SearchField.js +1 -1
  122. package/dist/{SelectCard-CJwetC1k.js → SelectCard-DeAUW1bL.js} +3 -3
  123. package/dist/{SelectCard-CJwetC1k.js.map → SelectCard-DeAUW1bL.js.map} +1 -1
  124. package/dist/SelectCard.js +1 -1
  125. package/dist/SelectField.js +1 -1
  126. package/dist/{SelectFieldLabel-BTKqybZm.js → SelectFieldLabel-DaXwIFZj.js} +2 -2
  127. package/dist/{SelectFieldLabel-BTKqybZm.js.map → SelectFieldLabel-DaXwIFZj.js.map} +1 -1
  128. package/dist/{SelectFieldSync-CoUi-BYw.js → SelectFieldSync-DpZL4wDo.js} +47 -68
  129. package/dist/SelectFieldSync-DpZL4wDo.js.map +1 -0
  130. package/dist/SelectMenu.js +1 -1
  131. package/dist/{SelectMenuSync-CvXx-6uU.js → SelectMenuSync-Klna2oqs.js} +16 -35
  132. package/dist/SelectMenuSync-Klna2oqs.js.map +1 -0
  133. package/dist/{SelectOptions-CGRUCyf4.js → SelectOptions-DGYYFU8i.js} +2 -2
  134. package/dist/{SelectOptions-CGRUCyf4.js.map → SelectOptions-DGYYFU8i.js.map} +1 -1
  135. package/dist/{SelectTrigger-CRbl804u.js → SelectTrigger-DKY7rpZn.js} +2 -2
  136. package/dist/{SelectTrigger-CRbl804u.js.map → SelectTrigger-DKY7rpZn.js.map} +1 -1
  137. package/dist/SelectTrigger.js +1 -1
  138. package/dist/{SelectTriggerBase-BRUW_Zgc.js → SelectTriggerBase-DUYq_L-6.js} +5 -5
  139. package/dist/{SelectTriggerBase-BRUW_Zgc.js.map → SelectTriggerBase-DUYq_L-6.js.map} +1 -1
  140. package/dist/SelectTriggerBase.css +94 -56
  141. package/dist/SelectTriggerBase.module-C-NmZbg4.js +41 -0
  142. package/dist/SelectTriggerBase.module-C-NmZbg4.js.map +1 -0
  143. package/dist/{Switch-rPPL4yEa.js → Switch-C9yQgF4w.js} +2 -2
  144. package/dist/{Switch-rPPL4yEa.js.map → Switch-C9yQgF4w.js.map} +1 -1
  145. package/dist/Switch.js +1 -1
  146. package/dist/Table.js +1 -1
  147. package/dist/{Text-BRbkPr5s.js → Text-D4SWT4u-.js} +2 -2
  148. package/dist/{Text-BRbkPr5s.js.map → Text-D4SWT4u-.js.map} +1 -1
  149. package/dist/Text.js +1 -1
  150. package/dist/{TextField-B9hivHsD.js → TextField-CKXSxube.js} +5 -5
  151. package/dist/{TextField-B9hivHsD.js.map → TextField-CKXSxube.js.map} +1 -1
  152. package/dist/{TextField-DGRVg_Cw.js → TextField-DmdT2k0w.js} +2 -2
  153. package/dist/{TextField-DGRVg_Cw.js.map → TextField-DmdT2k0w.js.map} +1 -1
  154. package/dist/TextField.css +38 -23
  155. package/dist/TextField.js +1 -1
  156. package/dist/TextField.module-B3y6caP9.js +25 -0
  157. package/dist/TextField.module-B3y6caP9.js.map +1 -0
  158. package/dist/{Textarea-DNqfV8rJ.js → Textarea-Dv__veBJ.js} +11 -11
  159. package/dist/{Textarea-DNqfV8rJ.js.map → Textarea-Dv__veBJ.js.map} +1 -1
  160. package/dist/Textarea.css +26 -11
  161. package/dist/Textarea.js +1 -1
  162. package/dist/{ThemeProvider-DW-Mflv6.js → ThemeProvider-DS2aL89d.js} +2 -2
  163. package/dist/{ThemeProvider-DW-Mflv6.js.map → ThemeProvider-DS2aL89d.js.map} +1 -1
  164. package/dist/ThemeProvider.css +6 -4
  165. package/dist/ThemeProvider.js +1 -1
  166. package/dist/ThemeProvider.module-BkKwAw2f.js +8 -0
  167. package/dist/ThemeProvider.module-BkKwAw2f.js.map +1 -0
  168. package/dist/{TimeField-DldMBNAj.js → TimeField-De9qBimk.js} +48 -10
  169. package/dist/TimeField-De9qBimk.js.map +1 -0
  170. package/dist/TimeField.js +1 -1
  171. package/dist/{TimezoneMessage-CgVNxYpM.js → TimezoneMessage-DEJX87S3.js} +2 -2
  172. package/dist/{TimezoneMessage-CgVNxYpM.js.map → TimezoneMessage-DEJX87S3.js.map} +1 -1
  173. package/dist/Toast.js +2 -2
  174. package/dist/{Toaster-Bcy9XN3c.js → Toaster-BlwTxTLf.js} +2 -2
  175. package/dist/{Toaster-Bcy9XN3c.js.map → Toaster-BlwTxTLf.js.map} +1 -1
  176. package/dist/{Toaster-C66ra4BK.js → Toaster-sO16N9b5.js} +23 -9
  177. package/dist/Toaster-sO16N9b5.js.map +1 -0
  178. package/dist/{Toolbar-DgPah7M3.js → Toolbar-BhrHuIN7.js} +6 -6
  179. package/dist/{Toolbar-DgPah7M3.js.map → Toolbar-BhrHuIN7.js.map} +1 -1
  180. package/dist/{Toolbar-Br-5yBxq.js → Toolbar-Buq2zze0.js} +4 -4
  181. package/dist/{Toolbar-Br-5yBxq.js.map → Toolbar-Buq2zze0.js.map} +1 -1
  182. package/dist/Toolbar.js +2 -2
  183. package/dist/{ToolbarButtonToggle-BDfoHeie.js → ToolbarButtonToggle-CNIaqVWl.js} +2 -2
  184. package/dist/{ToolbarButtonToggle-BDfoHeie.js.map → ToolbarButtonToggle-CNIaqVWl.js.map} +1 -1
  185. package/dist/{Tooltip-C_VcYS9P.js → Tooltip-CsTkZqMg.js} +3 -3
  186. package/dist/{Tooltip-C_VcYS9P.js.map → Tooltip-CsTkZqMg.js.map} +1 -1
  187. package/dist/Tooltip.js +1 -1
  188. package/dist/TreeSelectField.js +1 -1
  189. package/dist/{TreeSelectFieldSync-1psUeqtG.js → TreeSelectFieldSync-B7w31kbz.js} +22 -22
  190. package/dist/{TreeSelectFieldSync-1psUeqtG.js.map → TreeSelectFieldSync-B7w31kbz.js.map} +1 -1
  191. package/dist/TreeSelectFieldSync.css +57 -34
  192. package/dist/TreeSelectMenu.js +1 -1
  193. package/dist/{TreeSelectMenuSync-DIPSYUnE.js → TreeSelectMenuSync-EjxlvDZp.js} +4 -4
  194. package/dist/{TreeSelectMenuSync-DIPSYUnE.js.map → TreeSelectMenuSync-EjxlvDZp.js.map} +1 -1
  195. package/dist/{TypeaheadTextField-Di9ulOBl.js → TypeaheadTextField-DTOkaJda.js} +3 -3
  196. package/dist/{TypeaheadTextField-Di9ulOBl.js.map → TypeaheadTextField-DTOkaJda.js.map} +1 -1
  197. package/dist/TypeaheadTextField.js +1 -1
  198. package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js → YearlessDateInputWithPicker-DJUQypnF.js} +3 -3
  199. package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js.map → YearlessDateInputWithPicker-DJUQypnF.js.map} +1 -1
  200. package/dist/beta.js +19 -18
  201. package/dist/beta.js.map +1 -1
  202. package/dist/{bulkActionTypes-B71ZHjVu.js → bulkActionTypes-bznuvizE.js} +2 -2
  203. package/dist/{bulkActionTypes-B71ZHjVu.js.map → bulkActionTypes-bznuvizE.js.map} +1 -1
  204. package/dist/{filter-state-Lw9qL0zP.js → filter-state-DxwL15y1.js} +23 -23
  205. package/dist/{filter-state-Lw9qL0zP.js.map → filter-state-DxwL15y1.js.map} +1 -1
  206. package/dist/{index-B3WhDZeI.js → index-Bn56UnMm.js} +2 -2
  207. package/dist/{index-B3WhDZeI.js.map → index-Bn56UnMm.js.map} +1 -1
  208. package/dist/index.js +157 -115
  209. package/dist/index.js.map +1 -1
  210. package/dist/index2.css +78 -73
  211. package/dist/{portalScopeClassNames-DA28LrXe.js → portalScopeClassNames-CMdDYHE0.js} +2 -2
  212. package/dist/{portalScopeClassNames-DA28LrXe.js.map → portalScopeClassNames-CMdDYHE0.js.map} +1 -1
  213. package/dist/src/beta/components/Details/Details.d.ts +25 -0
  214. package/dist/src/beta/components/Details/DetailsSummary.d.ts +121 -0
  215. package/dist/src/beta/components/Details/index.d.ts +4 -0
  216. package/dist/src/beta/components/Details/internal/DetailsArrow.d.ts +11 -0
  217. package/dist/src/beta/components/Details/internal/DetailsSummaryCells.d.ts +5 -0
  218. package/dist/src/beta/components/Page/Page.d.ts +1 -0
  219. package/dist/src/beta/components/Page/PageSidebar.d.ts +12 -0
  220. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +3 -3
  221. package/dist/src/beta/components/Table/DataTable/internal/context/tabbables/CellTabbablesQueue.d.ts +23 -0
  222. package/dist/src/beta/components/Table/DataTable/types.d.ts +11 -0
  223. package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +4 -4
  224. package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +4 -4
  225. package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +4 -4
  226. package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +4 -4
  227. package/dist/src/beta/components/index.d.ts +1 -0
  228. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  229. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  230. package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -1
  231. package/dist/src/components/Page/Page.d.ts +1 -0
  232. package/dist/src/components/Page/PageSidebar.d.ts +12 -0
  233. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  234. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  235. package/dist/src/internal/components/InlineMarkdown/InlineMarkdown.d.ts +8 -1
  236. package/dist/src/internal/components/InlineMarkdown/index.d.ts +1 -1
  237. package/dist/src/internal/components/Popover/Popover.d.ts +10 -5
  238. package/dist/src/internal/components/Popover/internal/verticalPlacement.d.ts +9 -0
  239. package/dist/src/internal/contexts/DisableConditionalUnmountWarningContext.d.ts +6 -0
  240. package/dist/src/internal/contexts/SuppressPanelSwapWarningContext.d.ts +13 -0
  241. package/dist/src/internal/functions/inlineMarkdown.d.ts +5 -2
  242. package/dist/src/internal/functions/stripInlineMarkdown.d.ts +4 -2
  243. package/dist/src/internal/hooks/index.d.ts +1 -0
  244. package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +9 -1
  245. package/dist/src/internal/hooks/useSelectOrchestration.d.ts +0 -1
  246. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/index.d.ts +1 -0
  247. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/useWarnOnConditionalUnmount.d.ts +1 -0
  248. package/dist/src/internal/testing/keepMutationObserversAlive.d.ts +9 -0
  249. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +0 -1
  250. package/dist/src/internal/utils/inlineMarkdownRegex.d.ts +5 -0
  251. package/dist/stripInlineMarkdown-BV12XXzl.js +35 -0
  252. package/dist/stripInlineMarkdown-BV12XXzl.js.map +1 -0
  253. package/dist/{syncFilterUtils-DnhuqY1S.js → syncFilterUtils-BNbAB0jz.js} +109 -38
  254. package/dist/syncFilterUtils-BNbAB0jz.js.map +1 -0
  255. package/dist/token/core/component-variables.scss +3 -0
  256. package/dist/token/core/component.d.ts +2 -0
  257. package/dist/token/core/component.js +17 -0
  258. package/dist/token/core/component.scss +2 -0
  259. package/dist/token/core/semantic-variables.scss +2 -0
  260. package/dist/token/core/semantic.d.ts +1 -0
  261. package/dist/token/core/semantic.js +13 -0
  262. package/dist/token/core/semantic.scss +1 -0
  263. package/dist/token.js +33 -0
  264. package/dist/token.js.map +1 -1
  265. package/dist/{treeSync-BDwht_1r.js → treeSync-BELsX1gY.js} +3 -3
  266. package/dist/{treeSync-BDwht_1r.js.map → treeSync-BELsX1gY.js.map} +1 -1
  267. package/dist/{useDrilldown-CGdhHs8L.js → useDrilldown-B8pIhfWa.js} +3 -3
  268. package/dist/{useDrilldown-CGdhHs8L.js.map → useDrilldown-B8pIhfWa.js.map} +1 -1
  269. package/dist/{useInfiniteCombobox-Db0kaxCj.js → useInfiniteCombobox-ZZalag0-.js} +4 -4
  270. package/dist/{useInfiniteCombobox-Db0kaxCj.js.map → useInfiniteCombobox-ZZalag0-.js.map} +1 -1
  271. package/dist/{useInitialFocus-fBiTU9l8.js → useInitialFocus-KdirjHEb.js} +45 -13
  272. package/dist/useInitialFocus-KdirjHEb.js.map +1 -0
  273. package/dist/{useInvalidateOnOptionsChange-PweyDORd.js → useInvalidateOnOptionsChange-ChrPmbtS.js} +5 -5
  274. package/dist/{useInvalidateOnOptionsChange-PweyDORd.js.map → useInvalidateOnOptionsChange-ChrPmbtS.js.map} +1 -1
  275. package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
  276. package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
  277. package/dist/{utils-CM48ODEJ.js → utils-DwLrXpmt.js} +2 -2
  278. package/dist/{utils-CM48ODEJ.js.map → utils-DwLrXpmt.js.map} +1 -1
  279. package/package.json +3 -3
  280. package/dist/AiMark-CYXbKuCA.js.map +0 -1
  281. package/dist/Chip-AIF0WiNS.js.map +0 -1
  282. package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +0 -1
  283. package/dist/Dialog-KDAJphrA.js.map +0 -1
  284. package/dist/Drawer-C7E2NNnH.js.map +0 -1
  285. package/dist/FieldLabel-DYcUS3A4.js.map +0 -1
  286. package/dist/MultiSelectFieldSync-9253tott.js.map +0 -1
  287. package/dist/MultiSelectMenuSync-BUJbWN2I.js.map +0 -1
  288. package/dist/Page-D_KL2tdK.js.map +0 -1
  289. package/dist/SelectFieldSync-CoUi-BYw.js.map +0 -1
  290. package/dist/SelectMenuSync-CvXx-6uU.js.map +0 -1
  291. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +0 -40
  292. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +0 -1
  293. package/dist/TextField.module-DklyLNKz.js +0 -25
  294. package/dist/TextField.module-DklyLNKz.js.map +0 -1
  295. package/dist/ThemeProvider.module-B9qgsQ8S.js +0 -8
  296. package/dist/ThemeProvider.module-B9qgsQ8S.js.map +0 -1
  297. package/dist/TimeField-DldMBNAj.js.map +0 -1
  298. package/dist/Toaster-C66ra4BK.js.map +0 -1
  299. package/dist/stripInlineMarkdown-B6lAJb4-.js +0 -25
  300. package/dist/stripInlineMarkdown-B6lAJb4-.js.map +0 -1
  301. package/dist/syncFilterUtils-DnhuqY1S.js.map +0 -1
  302. package/dist/useInitialFocus-fBiTU9l8.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-BVanVvBk.js","sources":["../src/internal/functions/mapOrder.ts","../src/components/ListView/internal/ListViewContext.ts","../src/components/ListView/ListViewOption.tsx","../src/components/ListView/ListViewOptionCell.tsx","../src/components/ListView/internal/utils.ts","../src/components/ListView/ListView.tsx"],"sourcesContent":["/**\n * Sorts a copy of `array` by each item's `key` against `order`. Keys missing\n * from `order` sort first (`indexOf` is `-1`).\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapOrder(array: any[], order: any[], key: string) {\n const sortedArray = [...array];\n sortedArray.sort((a, b) => {\n const A = a[key],\n B = b[key];\n\n if (order.indexOf(A) > order.indexOf(B)) {\n return 1;\n } else {\n return -1;\n }\n });\n\n return sortedArray;\n}\n","import {\n type Dispatch,\n type SetStateAction,\n createContext,\n useContext,\n} from \"react\";\nimport type { Option } from \"./types\";\n\nexport type ListViewContextProps = {\n options?: Option[];\n onSelectionChange?: (value: unknown[]) => void;\n selectedItems: unknown[];\n indeterminateItems: unknown[];\n items?: unknown[];\n setSelectedItems: Dispatch<\n SetStateAction<ListViewContextProps[\"selectedItems\"]>\n >;\n controlled?: boolean;\n};\n\nexport const ListViewContext = createContext<ListViewContextProps | null>(null);\n\n/**\n * Reads the required listview context.\n * @throws When called outside a ListView.\n */\nexport function useListView() {\n const context = useContext(ListViewContext);\n\n if (context == null) {\n throw new Error(\"useListView must be wrapped in <ListView />\");\n }\n\n return context;\n}\n","import {\n type ChangeEvent,\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from \"react\";\nimport { Checkbox, type CheckboxProps } from \"../Checkbox\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./ListView.module.scss\";\nimport type { CheckboxState } from \"../Checkbox/types\";\nimport { useListView } from \"./internal/ListViewContext\";\nimport type { DataTrackingId } from \"../../types\";\n\ntype ItemType = {\n label: string;\n disabled?: boolean;\n [key: string]: unknown;\n};\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type ListViewOptionProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onChange\"\n> & {\n /** Prevents focus and selection. An `item` can also disable it. */\n disabled?: boolean;\n /**\n * Checkbox change. The second argument is `{ checked }` from the current\n * selection, not the post-toggle value.\n */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state?: CheckboxState) => void;\n} & (\n | {\n /** Item from the parent's `items` array, passed through to selection callbacks. */\n item: ItemType;\n }\n | {\n /** Selection identity. Visible content comes from `children`. */\n label: string;\n }\n ) &\n DataTrackingId;\n\n/** Selectable row with a leading checkbox. */\nexport const ListViewOption = forwardRef<HTMLDivElement, ListViewOptionProps>(\n (props, ref) => {\n const {\n className,\n children,\n onChange,\n style,\n disabled: disabledProp,\n ...remainingProps\n } = props;\n\n const optionRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([ref, optionRef]);\n\n const cellRef = useRef<HTMLDivElement>(null);\n const rowId = useId();\n const {\n selectedItems,\n setSelectedItems,\n indeterminateItems,\n controlled,\n onSelectionChange,\n } = useListView();\n const disabled =\n \"item\" in remainingProps\n ? disabledProp || remainingProps.item.disabled\n : disabledProp;\n\n useEffect(() => {\n const focusables = optionRef.current?.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\",\n );\n focusables?.forEach((item, i) => {\n item.setAttribute(\"tabindex\", \"-1\");\n if (item.hasAttribute(\"id\")) return;\n item.setAttribute(\"id\", `${rowId}-${i}`);\n });\n }, [rowId]);\n\n const label =\n \"item\" in remainingProps\n ? remainingProps.item.label\n : remainingProps.label;\n\n const isSelected = useMemo(\n () => matchInArray(label, selectedItems),\n [selectedItems, label],\n );\n\n const isIndeterminate = useMemo(\n () => matchInArray(label, indeterminateItems),\n [indeterminateItems, label],\n );\n\n const onChangeHandler: CheckboxProps[\"onChange\"] = (e) => {\n onChange?.(e, { checked: isSelected });\n };\n\n const onClickHandler: CheckboxProps[\"onClick\"] = () => {\n updateSelectedItems();\n };\n\n const removeItemFromSelectedItems = (itemLabelToRemove: string) => {\n return (selectedItems as (ItemType | string)[]).filter(\n (potentialRemove) => {\n if (typeof potentialRemove === \"string\") {\n return potentialRemove !== itemLabelToRemove;\n }\n return potentialRemove.label !== itemLabelToRemove;\n },\n );\n };\n\n const addItemFromSelectedItems = (itemToAdd: ItemType | string) => {\n return [...selectedItems, itemToAdd];\n };\n\n function updateSelectedItems() {\n const isPartOfSelectedItems = matchInArray(label, selectedItems);\n const callback = controlled ? onSelectionChange : setSelectedItems;\n if (isPartOfSelectedItems) {\n callback?.(removeItemFromSelectedItems(label));\n } else {\n callback?.(\n addItemFromSelectedItems(\n \"item\" in remainingProps\n ? remainingProps.item\n : remainingProps.label,\n ),\n );\n }\n }\n\n const data = {\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListViewOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n item: _item,\n label: _label,\n ...forwardedProps\n } = remainingProps as {\n item: ItemType;\n label: string;\n };\n\n return (\n <div\n data-tracking-id={trackingId}\n className={cx([styles[\"listview-option\"]], className)}\n data-anv=\"listview-option\"\n style={style}\n ref={mergedRef}\n aria-disabled={disabled}\n aria-selected={isSelected}\n aria-label={label ?? \"Select\"}\n role=\"row\"\n {...forwardedProps}\n >\n <div className={styles[\"cell\"]} ref={cellRef} role=\"gridcell\">\n <Checkbox\n disabled={disabled}\n checked={isIndeterminate ? undefined : isSelected}\n indeterminate={isIndeterminate}\n aria-label={label ?? \"Select\"}\n onChange={onChangeHandler}\n onClick={onClickHandler}\n />\n </div>\n {children}\n </div>\n );\n },\n);\n\nListViewOption.displayName = \"ListViewOption\";\n\nfunction matchInArray(\n itemLabel: string,\n array: (ItemType | unknown)[],\n): boolean {\n return array.some(\n (i) => itemLabel === i || itemLabel === (i as ItemType).label,\n );\n}\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\n/** Extra `gridcell` inside a ListView option row. */\nexport const ListViewOptionCell = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>((props, ref) => {\n const { ...rest } = props;\n return (\n <div role=\"gridcell\" data-anv=\"listview-option-cell\" {...rest} ref={ref} />\n );\n});\n\nListViewOptionCell.displayName = \"ListViewOptionCell\";\n","import type { Dispatch, KeyboardEvent, SetStateAction } from \"react\";\nimport type { FocusedItem, Option } from \"./types\";\nimport { getActiveElement } from \"../../../internal/functions\";\n\nexport const listViewKeyboardNavigation = (\n e: KeyboardEvent<HTMLDivElement>,\n options: Option[],\n focusedItem: FocusedItem,\n setFocusedItem: Dispatch<SetStateAction<FocusedItem>>,\n parent: HTMLDivElement | null,\n currentFocusId: (id: string) => void,\n) => {\n if (!options) return;\n // Focused index can dangle after a disabled row shrinks `options`.\n if (!options[focusedItem.row]) return;\n let activeElement: HTMLElement | null;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n (\n options[focusedItem.row].focusables[focusedItem.col] as\n | HTMLElement\n | undefined\n )?.click();\n activeElement = getActiveElement(document);\n if (!activeElement) break;\n activeElement.click();\n e.preventDefault();\n break;\n case \"ArrowDown\": {\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n const row =\n focusedItem.row === options.length - 1 ? 0 : focusedItem.row + 1;\n // Destination row may have fewer focusables; keep the column in range.\n const col = Math.min(\n focusedItem.col,\n Math.max(0, options[row].focusables.length - 1),\n );\n options[row].focusables[col]?.setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n const id = options[row].focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem({ row, col });\n break;\n }\n case \"ArrowUp\": {\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n const row =\n focusedItem.row === 0 ? options.length - 1 : focusedItem.row - 1;\n // Destination row may have fewer focusables; keep the column in range.\n const col = Math.min(\n focusedItem.col,\n Math.max(0, options[row].focusables.length - 1),\n );\n options[row].focusables[col]?.setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n const id = options[row].focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem({ row, col });\n break;\n }\n case \"ArrowRight\": {\n parent?.focus();\n const focusables = options[focusedItem.row].focusables;\n focusables[focusedItem.col]?.removeAttribute(\"data-interactive\");\n const col =\n focusedItem.col >= focusables.length - 1 ? 0 : focusedItem.col + 1;\n focusables[col]?.setAttribute(\"data-interactive\", \"focus-visible\");\n const id = focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem((prev) => ({ ...prev, col }));\n break;\n }\n case \"ArrowLeft\": {\n parent?.focus();\n const focusables = options[focusedItem.row].focusables;\n focusables[focusedItem.col]?.removeAttribute(\"data-interactive\");\n const col =\n focusedItem.col <= 0\n ? Math.max(0, focusables.length - 1)\n : focusedItem.col - 1;\n focusables[col]?.setAttribute(\"data-interactive\", \"focus-visible\");\n const id = focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem((prev) => ({ ...prev, col }));\n break;\n }\n\n default:\n break;\n }\n};\n\nexport const getFocusables = (el: Element) => {\n return el.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\",\n );\n};\n","import {\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport type {\n FocusedItem,\n ItemType,\n ListViewWithItems,\n ListViewWithOutItems,\n Option,\n} from \"./internal/types\";\nimport { ListViewOption } from \"./ListViewOption\";\nimport { ListViewOptionCell } from \"./ListViewOptionCell\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { getFocusables, listViewKeyboardNavigation } from \"./internal/utils\";\nimport { mapOrder } from \"../../internal/functions\";\nimport { ListViewContext } from \"./internal/ListViewContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./ListView.module.scss\";\n\n/**\n * `items` selects the render-prop variant; omit it for static children.\n * @extends LayoutUtilProps\n */\nexport type ListViewProps<T> = LayoutUtilProps &\n (ListViewWithItems<T> | ListViewWithOutItems);\n\nfunction ListViewInner<T>(props: ListViewProps<T>, ref: Ref<HTMLDivElement>) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n indeterminate,\n onSelectionChange,\n className,\n selected,\n defaultSelected,\n style,\n onKeyDown,\n ...remainingProps\n } = componentProps;\n\n const ListViewRef = useRef<HTMLDivElement>(null);\n const isFocusVisible = useRef(true);\n const combinedRef = useMergeRefs([ref, ListViewRef]);\n const [options, setOptions] = useState<Option[]>();\n const [currentActive, setCurrentActive] = useState<string>();\n const [selectedItems, setSelectedItems] = useState<unknown[]>(\n selected ?? defaultSelected ?? [],\n );\n const [focusedItem, setFocusedItem] = useState<FocusedItem>({\n row: 0,\n col: 0,\n });\n\n // Latest focus/list state, read by the rebuild effect without making it a dep.\n const latest = useRef({ focusedItem, options, currentActive });\n latest.current = { focusedItem, options, currentActive };\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const onFocusHandler = () => {\n if (!isFocusVisible.current) return;\n if (!options) return;\n options[focusedItem.row]?.focusables[focusedItem.col]?.setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n return;\n };\n const onBlurHandler = () => {\n if (!options) return;\n options[focusedItem.row]?.focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n return;\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (!options) return;\n isFocusVisible.current = true;\n listViewKeyboardNavigation(\n e,\n options,\n focusedItem,\n setFocusedItem,\n ListViewRef.current,\n (id) => setCurrentActive(id),\n );\n };\n\n const onMouseDownHandler = (e: MouseEvent<HTMLDivElement>) => {\n isFocusVisible.current = false;\n if (options && ListViewRef.current) {\n options[focusedItem.row]?.focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n\n const closestFocusable = (e.target as HTMLElement).closest(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [data-anv='checkbox']\",\n );\n\n const optionRow = (e.target as HTMLElement).closest(\n '[data-anv=\"listview-option\"]',\n );\n if (!optionRow || optionRow.getAttribute(\"aria-disabled\") === \"true\")\n return;\n const row = options.findIndex((option) => option.node === optionRow);\n if (row === -1) return;\n if (!closestFocusable) {\n (options[row].focusables[0] as HTMLElement | undefined)?.click();\n return;\n }\n // A checkbox click resolves to its wrapper; the focusable is the inner\n // input. Clamp to 0 so an unmatched target never stores a -1 column\n // (which would crash keyboard nav on `focusables[-1]`).\n const clicked =\n closestFocusable.getAttribute(\"data-anv\") === \"checkbox\"\n ? closestFocusable.querySelector(\"input\")\n : closestFocusable;\n const col = Math.max(\n 0,\n Array.prototype.indexOf.call(options[row].focusables, clicked),\n );\n setFocusedItem({ row, col });\n }\n };\n\n useEffect(() => {\n if (!ListViewRef.current) return;\n const optionArr = ListViewRef.current.querySelectorAll<HTMLDivElement>(\n \"div[data-anv='listview-option']:not([aria-disabled='true'])\",\n );\n const makeTree = Array.from(optionArr).map((option) => {\n const childFocusables = getFocusables(option);\n return {\n node: option,\n focusables: childFocusables,\n };\n });\n setOptions(makeTree);\n\n // `options` is enabled rows only, so disabling a row shifts the indices below it.\n const {\n focusedItem: prev,\n options: prevOptions,\n currentActive: active,\n } = latest.current;\n const staleCell = prevOptions?.[prev.row]?.focusables[prev.col] as\n | HTMLElement\n | undefined;\n\n // Nothing left to focus: keep aria-activedescendant off the removed row.\n if (makeTree.length === 0) {\n if (active) {\n staleCell?.removeAttribute(\"data-interactive\");\n setCurrentActive(undefined);\n }\n return;\n }\n\n const prevNode = prevOptions?.[prev.row]?.node;\n const survivingRow = prevNode\n ? makeTree.findIndex((o) => o.node === prevNode)\n : -1;\n const row =\n survivingRow === -1\n ? Math.min(prev.row, makeTree.length - 1)\n : survivingRow;\n const col = Math.min(\n prev.col,\n Math.max(0, makeTree[row].focusables.length - 1),\n );\n if (row !== prev.row || col !== prev.col) setFocusedItem({ row, col });\n if (prevNode && survivingRow === -1) {\n staleCell?.removeAttribute(\"data-interactive\");\n const target = makeTree[row].focusables[col] as HTMLElement | undefined;\n if (isFocusVisible.current)\n target?.setAttribute(\"data-interactive\", \"focus-visible\");\n if (active) setCurrentActive(target?.id);\n }\n }, [props.children]);\n\n const prevCallbackItems = useRef<unknown[]>([]);\n const prevControlledItems = useRef<unknown[]>(\n selected ?? defaultSelected ?? [],\n );\n\n useEffect(() => {\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelectedItems = mapOrder(selectedItems, compareArr, \"label\");\n if (\n JSON.stringify(prevCallbackItems.current) ===\n JSON.stringify(orderedSelectedItems)\n )\n return;\n\n onSelectionChange?.(orderedSelectedItems);\n prevCallbackItems.current = orderedSelectedItems;\n }, [onSelectionChange, options, selectedItems]);\n\n useEffect(() => {\n if (!selected) return;\n\n const getLabel = (item: unknown): string =>\n typeof item === \"string\" ? item : (item as ItemType<T>).label;\n\n const filterDuplicates = (selected as unknown[]).reduce<unknown[]>(\n (acc, current) => {\n const currentLabel = getLabel(current);\n const isDup = acc.find((item) => getLabel(item) === currentLabel);\n if (!isDup) {\n return [...acc, current];\n } else {\n return acc;\n }\n },\n [],\n );\n\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelected = mapOrder(filterDuplicates, compareArr, \"label\");\n if (\n JSON.stringify(prevControlledItems.current) ===\n JSON.stringify(orderedSelected)\n )\n return;\n setSelectedItems(orderedSelected);\n prevControlledItems.current = orderedSelected;\n }, [options, selected]);\n\n const ListViewClassNames = cx([styles[\"listview\"]], className);\n\n if (remainingProps.items !== undefined) {\n const { children, items, ...rest } = remainingProps as Omit<\n ListViewWithItems<T>,\n keyof LayoutUtilProps\n >;\n const renderChildren = children as\n | (({ items }: { items: ItemType<T>[] }) => ReactNode)\n | undefined;\n return (\n <ListViewContext.Provider\n value={{\n options,\n onSelectionChange: onSelectionChange as\n | ((value: unknown[]) => void)\n | undefined,\n indeterminateItems: indeterminate ?? [],\n selectedItems,\n setSelectedItems,\n items,\n controlled: !!selected,\n }}\n >\n <div\n ref={combinedRef}\n className={ListViewClassNames}\n style={styleCombined}\n data-anv=\"listview\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n onKeyDown={onKeyDownHandler}\n onMouseDown={onMouseDownHandler}\n aria-activedescendant={currentActive}\n tabIndex={0}\n {...rest}\n >\n {renderChildren?.({\n items: items.map((item: ItemType<T>) => {\n return item;\n }),\n })}\n </div>\n </ListViewContext.Provider>\n );\n }\n\n const { children, ...rest } = remainingProps;\n return (\n <ListViewContext.Provider\n value={{\n options,\n onSelectionChange: onSelectionChange as\n | ((value: unknown[]) => void)\n | undefined,\n selectedItems,\n indeterminateItems: indeterminate ?? [],\n setSelectedItems,\n controlled: !!selected || !!indeterminate,\n }}\n >\n <div\n ref={combinedRef}\n className={ListViewClassNames}\n style={styleCombined}\n data-anv=\"listview\"\n role=\"grid\"\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n onKeyDown={onKeyDownHandler}\n onMouseDown={onMouseDownHandler}\n aria-activedescendant={currentActive}\n tabIndex={0}\n {...rest}\n >\n {children}\n </div>\n </ListViewContext.Provider>\n );\n}\n\nListViewInner.displayName = \"ListView\";\n\n/** Multi-select grid of option rows. Keyboard navigates cells; selection is by label. */\nexport const ListView = Object.assign(\n forwardRef(ListViewInner) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewInner>,\n {\n /** Selectable row with a leading checkbox. */\n Option: ListViewOption,\n /** Extra grid cell inside an option row. */\n OptionCell: ListViewOptionCell,\n },\n);\n"],"names":["children","rest"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-BeGBn5Vk.js","sources":["../src/internal/functions/mapOrder.ts","../src/components/ListView/internal/ListViewContext.ts","../src/components/ListView/ListViewOption.tsx","../src/components/ListView/ListViewOptionCell.tsx","../src/components/ListView/internal/utils.ts","../src/components/ListView/ListView.tsx"],"sourcesContent":["/**\n * Sorts a copy of `array` by each item's `key` against `order`. Keys missing\n * from `order` sort first (`indexOf` is `-1`).\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapOrder(array: any[], order: any[], key: string) {\n const sortedArray = [...array];\n sortedArray.sort((a, b) => {\n const A = a[key],\n B = b[key];\n\n if (order.indexOf(A) > order.indexOf(B)) {\n return 1;\n } else {\n return -1;\n }\n });\n\n return sortedArray;\n}\n","import {\n type Dispatch,\n type SetStateAction,\n createContext,\n useContext,\n} from \"react\";\nimport type { Option } from \"./types\";\n\nexport type ListViewContextProps = {\n options?: Option[];\n onSelectionChange?: (value: unknown[]) => void;\n selectedItems: unknown[];\n indeterminateItems: unknown[];\n items?: unknown[];\n setSelectedItems: Dispatch<\n SetStateAction<ListViewContextProps[\"selectedItems\"]>\n >;\n controlled?: boolean;\n};\n\nexport const ListViewContext = createContext<ListViewContextProps | null>(null);\n\n/**\n * Reads the required listview context.\n * @throws When called outside a ListView.\n */\nexport function useListView() {\n const context = useContext(ListViewContext);\n\n if (context == null) {\n throw new Error(\"useListView must be wrapped in <ListView />\");\n }\n\n return context;\n}\n","import {\n type ChangeEvent,\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from \"react\";\nimport { Checkbox, type CheckboxProps } from \"../Checkbox\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./ListView.module.scss\";\nimport type { CheckboxState } from \"../Checkbox/types\";\nimport { useListView } from \"./internal/ListViewContext\";\nimport type { DataTrackingId } from \"../../types\";\n\ntype ItemType = {\n label: string;\n disabled?: boolean;\n [key: string]: unknown;\n};\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type ListViewOptionProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onChange\"\n> & {\n /** Prevents focus and selection. An `item` can also disable it. */\n disabled?: boolean;\n /**\n * Checkbox change. The second argument is `{ checked }` from the current\n * selection, not the post-toggle value.\n */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state?: CheckboxState) => void;\n} & (\n | {\n /** Item from the parent's `items` array, passed through to selection callbacks. */\n item: ItemType;\n }\n | {\n /** Selection identity. Visible content comes from `children`. */\n label: string;\n }\n ) &\n DataTrackingId;\n\n/** Selectable row with a leading checkbox. */\nexport const ListViewOption = forwardRef<HTMLDivElement, ListViewOptionProps>(\n (props, ref) => {\n const {\n className,\n children,\n onChange,\n style,\n disabled: disabledProp,\n ...remainingProps\n } = props;\n\n const optionRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([ref, optionRef]);\n\n const cellRef = useRef<HTMLDivElement>(null);\n const rowId = useId();\n const {\n selectedItems,\n setSelectedItems,\n indeterminateItems,\n controlled,\n onSelectionChange,\n } = useListView();\n const disabled =\n \"item\" in remainingProps\n ? disabledProp || remainingProps.item.disabled\n : disabledProp;\n\n useEffect(() => {\n const focusables = optionRef.current?.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\",\n );\n focusables?.forEach((item, i) => {\n item.setAttribute(\"tabindex\", \"-1\");\n if (item.hasAttribute(\"id\")) return;\n item.setAttribute(\"id\", `${rowId}-${i}`);\n });\n }, [rowId]);\n\n const label =\n \"item\" in remainingProps\n ? remainingProps.item.label\n : remainingProps.label;\n\n const isSelected = useMemo(\n () => matchInArray(label, selectedItems),\n [selectedItems, label],\n );\n\n const isIndeterminate = useMemo(\n () => matchInArray(label, indeterminateItems),\n [indeterminateItems, label],\n );\n\n const onChangeHandler: CheckboxProps[\"onChange\"] = (e) => {\n onChange?.(e, { checked: isSelected });\n };\n\n const onClickHandler: CheckboxProps[\"onClick\"] = () => {\n updateSelectedItems();\n };\n\n const removeItemFromSelectedItems = (itemLabelToRemove: string) => {\n return (selectedItems as (ItemType | string)[]).filter(\n (potentialRemove) => {\n if (typeof potentialRemove === \"string\") {\n return potentialRemove !== itemLabelToRemove;\n }\n return potentialRemove.label !== itemLabelToRemove;\n },\n );\n };\n\n const addItemFromSelectedItems = (itemToAdd: ItemType | string) => {\n return [...selectedItems, itemToAdd];\n };\n\n function updateSelectedItems() {\n const isPartOfSelectedItems = matchInArray(label, selectedItems);\n const callback = controlled ? onSelectionChange : setSelectedItems;\n if (isPartOfSelectedItems) {\n callback?.(removeItemFromSelectedItems(label));\n } else {\n callback?.(\n addItemFromSelectedItems(\n \"item\" in remainingProps\n ? remainingProps.item\n : remainingProps.label,\n ),\n );\n }\n }\n\n const data = {\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListViewOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n item: _item,\n label: _label,\n ...forwardedProps\n } = remainingProps as {\n item: ItemType;\n label: string;\n };\n\n return (\n <div\n data-tracking-id={trackingId}\n className={cx([styles[\"listview-option\"]], className)}\n data-anv=\"listview-option\"\n style={style}\n ref={mergedRef}\n aria-disabled={disabled}\n aria-selected={isSelected}\n aria-label={label ?? \"Select\"}\n role=\"row\"\n {...forwardedProps}\n >\n <div className={styles[\"cell\"]} ref={cellRef} role=\"gridcell\">\n <Checkbox\n disabled={disabled}\n checked={isIndeterminate ? undefined : isSelected}\n indeterminate={isIndeterminate}\n aria-label={label ?? \"Select\"}\n onChange={onChangeHandler}\n onClick={onClickHandler}\n />\n </div>\n {children}\n </div>\n );\n },\n);\n\nListViewOption.displayName = \"ListViewOption\";\n\nfunction matchInArray(\n itemLabel: string,\n array: (ItemType | unknown)[],\n): boolean {\n return array.some(\n (i) => itemLabel === i || itemLabel === (i as ItemType).label,\n );\n}\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\n/** Extra `gridcell` inside a ListView option row. */\nexport const ListViewOptionCell = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\">\n>((props, ref) => {\n const { ...rest } = props;\n return (\n <div role=\"gridcell\" data-anv=\"listview-option-cell\" {...rest} ref={ref} />\n );\n});\n\nListViewOptionCell.displayName = \"ListViewOptionCell\";\n","import type { Dispatch, KeyboardEvent, SetStateAction } from \"react\";\nimport type { FocusedItem, Option } from \"./types\";\nimport { getActiveElement } from \"../../../internal/functions\";\n\nexport const listViewKeyboardNavigation = (\n e: KeyboardEvent<HTMLDivElement>,\n options: Option[],\n focusedItem: FocusedItem,\n setFocusedItem: Dispatch<SetStateAction<FocusedItem>>,\n parent: HTMLDivElement | null,\n currentFocusId: (id: string) => void,\n) => {\n if (!options) return;\n // Focused index can dangle after a disabled row shrinks `options`.\n if (!options[focusedItem.row]) return;\n let activeElement: HTMLElement | null;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n (\n options[focusedItem.row].focusables[focusedItem.col] as\n | HTMLElement\n | undefined\n )?.click();\n activeElement = getActiveElement(document);\n if (!activeElement) break;\n activeElement.click();\n e.preventDefault();\n break;\n case \"ArrowDown\": {\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n const row =\n focusedItem.row === options.length - 1 ? 0 : focusedItem.row + 1;\n // Destination row may have fewer focusables; keep the column in range.\n const col = Math.min(\n focusedItem.col,\n Math.max(0, options[row].focusables.length - 1),\n );\n options[row].focusables[col]?.setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n const id = options[row].focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem({ row, col });\n break;\n }\n case \"ArrowUp\": {\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n const row =\n focusedItem.row === 0 ? options.length - 1 : focusedItem.row - 1;\n // Destination row may have fewer focusables; keep the column in range.\n const col = Math.min(\n focusedItem.col,\n Math.max(0, options[row].focusables.length - 1),\n );\n options[row].focusables[col]?.setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n const id = options[row].focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem({ row, col });\n break;\n }\n case \"ArrowRight\": {\n parent?.focus();\n const focusables = options[focusedItem.row].focusables;\n focusables[focusedItem.col]?.removeAttribute(\"data-interactive\");\n const col =\n focusedItem.col >= focusables.length - 1 ? 0 : focusedItem.col + 1;\n focusables[col]?.setAttribute(\"data-interactive\", \"focus-visible\");\n const id = focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem((prev) => ({ ...prev, col }));\n break;\n }\n case \"ArrowLeft\": {\n parent?.focus();\n const focusables = options[focusedItem.row].focusables;\n focusables[focusedItem.col]?.removeAttribute(\"data-interactive\");\n const col =\n focusedItem.col <= 0\n ? Math.max(0, focusables.length - 1)\n : focusedItem.col - 1;\n focusables[col]?.setAttribute(\"data-interactive\", \"focus-visible\");\n const id = focusables[col]?.id;\n if (id) currentFocusId(id);\n setFocusedItem((prev) => ({ ...prev, col }));\n break;\n }\n\n default:\n break;\n }\n};\n\nexport const getFocusables = (el: Element) => {\n return el.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\",\n );\n};\n","import {\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport type {\n FocusedItem,\n ItemType,\n ListViewWithItems,\n ListViewWithOutItems,\n Option,\n} from \"./internal/types\";\nimport { ListViewOption } from \"./ListViewOption\";\nimport { ListViewOptionCell } from \"./ListViewOptionCell\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { getFocusables, listViewKeyboardNavigation } from \"./internal/utils\";\nimport { mapOrder } from \"../../internal/functions\";\nimport { ListViewContext } from \"./internal/ListViewContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./ListView.module.scss\";\n\n/**\n * `items` selects the render-prop variant; omit it for static children.\n * @extends LayoutUtilProps\n */\nexport type ListViewProps<T> = LayoutUtilProps &\n (ListViewWithItems<T> | ListViewWithOutItems);\n\nfunction ListViewInner<T>(props: ListViewProps<T>, ref: Ref<HTMLDivElement>) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n indeterminate,\n onSelectionChange,\n className,\n selected,\n defaultSelected,\n style,\n onKeyDown,\n ...remainingProps\n } = componentProps;\n\n const ListViewRef = useRef<HTMLDivElement>(null);\n const isFocusVisible = useRef(true);\n const combinedRef = useMergeRefs([ref, ListViewRef]);\n const [options, setOptions] = useState<Option[]>();\n const [currentActive, setCurrentActive] = useState<string>();\n const [selectedItems, setSelectedItems] = useState<unknown[]>(\n selected ?? defaultSelected ?? [],\n );\n const [focusedItem, setFocusedItem] = useState<FocusedItem>({\n row: 0,\n col: 0,\n });\n\n // Latest focus/list state, read by the rebuild effect without making it a dep.\n const latest = useRef({ focusedItem, options, currentActive });\n latest.current = { focusedItem, options, currentActive };\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const onFocusHandler = () => {\n if (!isFocusVisible.current) return;\n if (!options) return;\n options[focusedItem.row]?.focusables[focusedItem.col]?.setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n return;\n };\n const onBlurHandler = () => {\n if (!options) return;\n options[focusedItem.row]?.focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n return;\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (!options) return;\n isFocusVisible.current = true;\n listViewKeyboardNavigation(\n e,\n options,\n focusedItem,\n setFocusedItem,\n ListViewRef.current,\n (id) => setCurrentActive(id),\n );\n };\n\n const onMouseDownHandler = (e: MouseEvent<HTMLDivElement>) => {\n isFocusVisible.current = false;\n if (options && ListViewRef.current) {\n options[focusedItem.row]?.focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\",\n );\n\n const closestFocusable = (e.target as HTMLElement).closest(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [data-anv='checkbox']\",\n );\n\n const optionRow = (e.target as HTMLElement).closest(\n '[data-anv=\"listview-option\"]',\n );\n if (!optionRow || optionRow.getAttribute(\"aria-disabled\") === \"true\")\n return;\n const row = options.findIndex((option) => option.node === optionRow);\n if (row === -1) return;\n if (!closestFocusable) {\n (options[row].focusables[0] as HTMLElement | undefined)?.click();\n return;\n }\n // A checkbox click resolves to its wrapper; the focusable is the inner\n // input. Clamp to 0 so an unmatched target never stores a -1 column\n // (which would crash keyboard nav on `focusables[-1]`).\n const clicked =\n closestFocusable.getAttribute(\"data-anv\") === \"checkbox\"\n ? closestFocusable.querySelector(\"input\")\n : closestFocusable;\n const col = Math.max(\n 0,\n Array.prototype.indexOf.call(options[row].focusables, clicked),\n );\n setFocusedItem({ row, col });\n }\n };\n\n useEffect(() => {\n if (!ListViewRef.current) return;\n const optionArr = ListViewRef.current.querySelectorAll<HTMLDivElement>(\n \"div[data-anv='listview-option']:not([aria-disabled='true'])\",\n );\n const makeTree = Array.from(optionArr).map((option) => {\n const childFocusables = getFocusables(option);\n return {\n node: option,\n focusables: childFocusables,\n };\n });\n setOptions(makeTree);\n\n // `options` is enabled rows only, so disabling a row shifts the indices below it.\n const {\n focusedItem: prev,\n options: prevOptions,\n currentActive: active,\n } = latest.current;\n const staleCell = prevOptions?.[prev.row]?.focusables[prev.col] as\n | HTMLElement\n | undefined;\n\n // Nothing left to focus: keep aria-activedescendant off the removed row.\n if (makeTree.length === 0) {\n if (active) {\n staleCell?.removeAttribute(\"data-interactive\");\n setCurrentActive(undefined);\n }\n return;\n }\n\n const prevNode = prevOptions?.[prev.row]?.node;\n const survivingRow = prevNode\n ? makeTree.findIndex((o) => o.node === prevNode)\n : -1;\n const row =\n survivingRow === -1\n ? Math.min(prev.row, makeTree.length - 1)\n : survivingRow;\n const col = Math.min(\n prev.col,\n Math.max(0, makeTree[row].focusables.length - 1),\n );\n if (row !== prev.row || col !== prev.col) setFocusedItem({ row, col });\n if (prevNode && survivingRow === -1) {\n staleCell?.removeAttribute(\"data-interactive\");\n const target = makeTree[row].focusables[col] as HTMLElement | undefined;\n if (isFocusVisible.current)\n target?.setAttribute(\"data-interactive\", \"focus-visible\");\n if (active) setCurrentActive(target?.id);\n }\n }, [props.children]);\n\n const prevCallbackItems = useRef<unknown[]>([]);\n const prevControlledItems = useRef<unknown[]>(\n selected ?? defaultSelected ?? [],\n );\n\n useEffect(() => {\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelectedItems = mapOrder(selectedItems, compareArr, \"label\");\n if (\n JSON.stringify(prevCallbackItems.current) ===\n JSON.stringify(orderedSelectedItems)\n )\n return;\n\n onSelectionChange?.(orderedSelectedItems);\n prevCallbackItems.current = orderedSelectedItems;\n }, [onSelectionChange, options, selectedItems]);\n\n useEffect(() => {\n if (!selected) return;\n\n const getLabel = (item: unknown): string =>\n typeof item === \"string\" ? item : (item as ItemType<T>).label;\n\n const filterDuplicates = (selected as unknown[]).reduce<unknown[]>(\n (acc, current) => {\n const currentLabel = getLabel(current);\n const isDup = acc.find((item) => getLabel(item) === currentLabel);\n if (!isDup) {\n return [...acc, current];\n } else {\n return acc;\n }\n },\n [],\n );\n\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelected = mapOrder(filterDuplicates, compareArr, \"label\");\n if (\n JSON.stringify(prevControlledItems.current) ===\n JSON.stringify(orderedSelected)\n )\n return;\n setSelectedItems(orderedSelected);\n prevControlledItems.current = orderedSelected;\n }, [options, selected]);\n\n const ListViewClassNames = cx([styles[\"listview\"]], className);\n\n if (remainingProps.items !== undefined) {\n const { children, items, ...rest } = remainingProps as Omit<\n ListViewWithItems<T>,\n keyof LayoutUtilProps\n >;\n const renderChildren = children as\n | (({ items }: { items: ItemType<T>[] }) => ReactNode)\n | undefined;\n return (\n <ListViewContext.Provider\n value={{\n options,\n onSelectionChange: onSelectionChange as\n | ((value: unknown[]) => void)\n | undefined,\n indeterminateItems: indeterminate ?? [],\n selectedItems,\n setSelectedItems,\n items,\n controlled: !!selected,\n }}\n >\n <div\n ref={combinedRef}\n className={ListViewClassNames}\n style={styleCombined}\n data-anv=\"listview\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n onKeyDown={onKeyDownHandler}\n onMouseDown={onMouseDownHandler}\n aria-activedescendant={currentActive}\n tabIndex={0}\n {...rest}\n >\n {renderChildren?.({\n items: items.map((item: ItemType<T>) => {\n return item;\n }),\n })}\n </div>\n </ListViewContext.Provider>\n );\n }\n\n const { children, ...rest } = remainingProps;\n return (\n <ListViewContext.Provider\n value={{\n options,\n onSelectionChange: onSelectionChange as\n | ((value: unknown[]) => void)\n | undefined,\n selectedItems,\n indeterminateItems: indeterminate ?? [],\n setSelectedItems,\n controlled: !!selected || !!indeterminate,\n }}\n >\n <div\n ref={combinedRef}\n className={ListViewClassNames}\n style={styleCombined}\n data-anv=\"listview\"\n role=\"grid\"\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n onKeyDown={onKeyDownHandler}\n onMouseDown={onMouseDownHandler}\n aria-activedescendant={currentActive}\n tabIndex={0}\n {...rest}\n >\n {children}\n </div>\n </ListViewContext.Provider>\n );\n}\n\nListViewInner.displayName = \"ListView\";\n\n/** Multi-select grid of option rows. Keyboard navigates cells; selection is by label. */\nexport const ListView = Object.assign(\n forwardRef(ListViewInner) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewInner>,\n {\n /** Selectable row with a leading checkbox. */\n Option: ListViewOption,\n /** Extra grid cell inside an option row. */\n OptionCell: ListViewOptionCell,\n },\n);\n"],"names":["children","rest"],"mappings":"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"}
package/dist/ListView.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-BVanVvBk.js';
1
+ export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-BeGBn5Vk.js';
2
2
  //# sourceMappingURL=ListView.js.map
@@ -6,7 +6,7 @@ import { S as SvgCheck } from './check-Cf67OWrZ.js';
6
6
  import { c as cx } from './index-De1g9FRV.js';
7
7
  import { l as listboxStyles } from './Listbox.module-K85jTwXo.js';
8
8
  import { useTrackingId } from './useTrackingId.js';
9
- import { T as Text } from './Text-BRbkPr5s.js';
9
+ import { T as Text } from './Text-D4SWT4u-.js';
10
10
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
11
11
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
12
12
 
@@ -574,4 +574,4 @@ const Listbox = Object.assign(
574
574
  );
575
575
 
576
576
  export { Listbox as L };
577
- //# sourceMappingURL=Listbox-BR0YQIee.js.map
577
+ //# sourceMappingURL=Listbox-n1CmJ2gh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Listbox-BR0YQIee.js","sources":["../src/internal/hooks/useTypeAhead/useTypeAhead.tsx","../src/components/Listbox/internal/ListboxContext.tsx","../src/components/Listbox/internal/ListboxOptionGroupContext.tsx","../src/components/Listbox/ListboxOption.tsx","../src/components/Listbox/internal/utils.ts","../src/components/Listbox/ListboxOptionGroup.tsx","../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\n\n/**\n * Accumulates typed characters for list/menu keyboard matching. Starts as `\"\"`\n * and clears `timeout` ms after the last character (default `750`).\n *\n * @returns `[query, append]` — `append` concatenates; it does not replace.\n */\nexport const useTypeAhead = (\n timeout = 750,\n): [string, (char: string) => void] => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n\n const updateTypeAhead = (char: string) => setTypeAhead((prev) => prev + char);\n\n return [typeAhead, updateTypeAhead];\n};\n","import {\n createContext,\n type Dispatch,\n type SetStateAction,\n useContext,\n} from \"react\";\nimport type { ListboxProps } from \"../Listbox\";\n\nexport type ListboxContextProps<T> = {\n currentFocus?: string;\n setCurrentFocus: Dispatch<\n SetStateAction<ListboxContextProps<T>[\"currentFocus\"]>\n >;\n selected: ListboxProps<T>[\"defaultSelected\"];\n setSelected: Dispatch<SetStateAction<ListboxContextProps<T>[\"selected\"]>>;\n options: NodeListOf<HTMLElement> | undefined;\n selectionMode: Exclude<ListboxProps<T>[\"selectionMode\"], undefined>;\n onSelectionChange: ListboxProps<T>[\"onSelectionChange\"];\n disableAutoSelectOnFocus: boolean;\n items?: unknown[];\n controlled?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const ListboxContext = createContext<ListboxContextProps<any> | null>(\n null,\n);\n\n/**\n * Reads the required listbox context.\n * @throws When called outside a Listbox.\n */\nexport const useListbox = () => {\n const context = useContext(ListboxContext);\n\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n\n return context;\n};\n","import { createContext } from \"react\";\n\ntype ListboxOptionGroupContextProps = {\n disabled?: boolean;\n};\n\nexport const ListboxOptionGroupContext =\n createContext<ListboxOptionGroupContextProps>({});\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n type MouseEvent,\n} from \"react\";\nimport { Icon } from \"../Icon\";\nimport { Flex, type FlexProps } from \"../Flex\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useListbox } from \"./internal/ListboxContext\";\nimport { useTrackingId } from \"../../hooks\";\nimport { ListboxOptionGroupContext } from \"./internal/ListboxOptionGroupContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\n\ntype ItemType = {\n label: string;\n [key: string]: unknown;\n};\n\n/** @extends ComponentPropsWithoutRef<\"li\"> */\nexport type ListboxOptionProps = ComponentPropsWithoutRef<\"li\"> & {\n /** Native `li` value. Defaults to the resolved label; selection still uses the label. */\n value?: string;\n /** Prevents focus and selection. An `item` or enclosing group can also disable it. */\n disabled?: boolean;\n alignItems?: FlexProps[\"alignItems\"];\n justifyItems?: FlexProps[\"justifyItems\"];\n alignContent?: FlexProps[\"alignContent\"];\n justifyContent?: FlexProps[\"justifyContent\"];\n placeItems?: FlexProps[\"placeItems\"];\n placeContent?: FlexProps[\"placeContent\"];\n} & (\n | {\n /** Item from the parent's `items` array, passed through to selection callbacks. */\n item: ItemType;\n /** Selection identity override. Visible content comes from `children`. */\n label?: string;\n }\n | {\n /** Selection identity. Visible content comes from `children`. */\n label: string;\n item?: never;\n }\n ) &\n DataTrackingId;\n\n/** Selectable option whose label is its focus and selection identity. */\nexport const ListboxOption = forwardRef<HTMLLIElement, ListboxOptionProps>(\n (props, ref) => {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n label: labelProp,\n item,\n value,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n\n const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled,\n } = useListbox();\n\n const label = labelProp || item?.label || \"\";\n\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled =\n groupDisabled || disabledProp || (item?.disabled as boolean) || false;\n\n const isSelected = () => {\n if (selectionMode === \"single\") {\n if (item) {\n return selected?.label === label;\n }\n return selected === label;\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n if (item) {\n return selectedItems.some(\n (selectedItem) => selectedItem.label === label,\n );\n }\n return selectedItems.includes(label);\n }\n return false;\n };\n\n const onClickHandler = (e: MouseEvent<HTMLLIElement>) => {\n if (disabled) return;\n\n onClick?.(e);\n setCurrentFocus?.(label);\n\n if (selectionMode === \"single\") {\n if (\n (!item && selected === label) ||\n (item && selected?.label === label)\n ) {\n if (!controlled) {\n setSelected?.(undefined);\n }\n onSelectionChange?.(undefined);\n return;\n }\n\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n if (\n item &&\n selectedItems.some((selectedItem) => selectedItem.label === label)\n ) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label,\n );\n if (!controlled) setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label,\n );\n if (!controlled) setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n if (!controlled) setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n if (!controlled) setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n\n const data = {\n value: props.value,\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListboxOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n\n return (\n <li // eslint-disable-line jsx-a11y/click-events-have-key-events\n data-tracking-id={trackingId}\n className={ListboxOptionClassNames}\n data-anv=\"listbox-option\"\n role=\"option\"\n aria-disabled={disabled}\n data-focused={currentFocus === label}\n aria-selected={isSelected()}\n id={label}\n onClick={onClickHandler}\n ref={ref}\n value={value ?? label}\n {...rest}\n >\n <Flex\n className={styles[\"children\"]}\n grow={1}\n shrink={1}\n alignItems={alignItems}\n justifyItems={justifyItems}\n alignContent={alignContent}\n justifyContent={justifyContent}\n placeItems={placeItems}\n placeContent={placeContent}\n >\n {children}\n </Flex>\n <Icon\n aria-hidden\n svg={Check}\n inherit\n className={styles[\"icon\"]}\n style={{ opacity: isSelected() ? 1 : 0 }}\n />\n </li>\n );\n },\n);\n\nListboxOption.displayName = \"ListboxOption\";\n","import type { KeyboardEvent } from \"react\";\nimport type { ListboxContextProps } from \"./ListboxContext\";\n\nexport const scrollToOption = (node: HTMLElement | undefined) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\",\n });\n};\n\nexport const onListboxKeyDown = (\n e: KeyboardEvent<HTMLUListElement>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: ListboxContextProps<any>,\n) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled,\n } = context;\n\n if (!options) return;\n\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus,\n ) as HTMLElement;\n\n const currentIndex = Array.from(options).indexOf(currentNode);\n\n switch (e.code) {\n case \"ArrowDown\":\n e.preventDefault();\n if (currentIndex === options.length - 1) {\n goTo(options[0], 0, context);\n } else {\n goTo(options[currentIndex + 1], currentIndex + 1, context);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (currentIndex === 0) {\n goTo(options[options.length - 1], options.length - 1, context);\n } else {\n goTo(options[currentIndex - 1], currentIndex - 1, context);\n }\n break;\n case \"Home\":\n e.preventDefault();\n goTo(options[0], 0, context);\n break;\n case \"End\":\n e.preventDefault();\n goTo(options[options.length - 1], options.length - 1, context);\n break;\n\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n\n if (!currentFocus) return;\n\n if (selectionMode === \"single\") {\n if (\n typeof selected === \"object\"\n ? selected.label === currentFocus\n : selected === currentFocus\n ) {\n if (!controlled) setSelected?.(undefined);\n onSelectionChange?.(undefined);\n return;\n }\n\n if (items) {\n const enabledItems = items.filter(\n (item) => !(item as { disabled?: boolean })?.disabled,\n );\n if (!controlled) setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n\n if (!items) {\n if (!controlled) setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n\n if (items) {\n const focusedItem = items.find(\n (item) => (item as { label: string }).label === currentFocus,\n );\n\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem,\n );\n if (!controlled) setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n if (!controlled) setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n const filtered = selectedItems.filter(\n (item) => item !== currentFocus,\n );\n if (!controlled) setSelected?.(filtered);\n onSelectionChange?.(filtered);\n return;\n }\n const added = [...selectedItems, currentFocus];\n if (!controlled) setSelected?.(added);\n onSelectionChange?.(added);\n }\n }\n break;\n\n default:\n break;\n }\n};\n\nconst goTo = (\n option: HTMLElement,\n index: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: ListboxContextProps<any>,\n) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled,\n } = context;\n\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n\n setCurrentFocus(option?.id);\n\n if (controlled) return;\n\n if (items) {\n const enabledItems = items.filter(\n (item) => !(item as { disabled?: boolean })?.disabled,\n );\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { Text } from \"../Text\";\nimport { ListboxOptionGroupContext } from \"./internal/ListboxOptionGroupContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type ListboxOptionGroupProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Disables every descendant option and subdues the heading. */\n disabled?: boolean;\n /** Visible eyebrow heading above the options. */\n label: string;\n};\n\n/** Visual heading and disabled-state boundary for related options. */\nexport const ListboxOptionGroup = forwardRef<\n HTMLDivElement,\n ListboxOptionGroupProps\n>((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n\n const optionGroupCx = cx(styles[\"option-group\"], className);\n\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled,\n });\n\n return (\n <ListboxOptionGroupContext.Provider value={{ disabled }}>\n <div\n data-anv=\"listbox-option-group\"\n className={optionGroupCx}\n ref={ref}\n {...rest}\n >\n <Text variant=\"eyebrow\" className={labelCx}>\n {label}\n </Text>\n\n {children}\n </div>\n </ListboxOptionGroupContext.Provider>\n );\n});\n\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n","import {\n type Ref,\n forwardRef,\n type ReactNode,\n type ComponentPropsWithoutRef,\n useRef,\n useState,\n useEffect,\n type KeyboardEvent,\n type FocusEvent,\n useMemo,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { ListboxOption } from \"./ListboxOption\";\nimport {\n ListboxContext,\n type ListboxContextProps,\n} from \"./internal/ListboxContext\";\nimport { onListboxKeyDown, scrollToOption } from \"./internal/utils\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { ListboxOptionGroup } from \"./ListboxOptionGroup\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\nimport { useLayoutPropsUtil, useTypeAhead } from \"../../internal/hooks\";\n\n/** Object selection value used when `items` is supplied. */\nexport type ListboxItemType<T> = T & {\n /** Focus and selection identity. */\n label: string;\n /** Excludes the item from focus and selection. */\n disabled?: boolean;\n};\n\ntype SingleWithoutItems = {\n /** One selected label at a time. Defaults to `single`. */\n selectionMode?: \"single\";\n /** Keeps arrow-key focus movement from changing selection. Defaults to `false`. */\n disableAutoSelectOnFocus?: boolean;\n /** Controlled selected label. */\n selected?: string;\n /** Initial label for uncontrolled selection. */\n defaultSelected?: string;\n /** Called with the next label, or `undefined` when deselected. */\n onSelectionChange?: (selected: string | undefined) => void;\n items?: never;\n /** Static {@link Listbox.Option} and {@link Listbox.OptionGroup} content. */\n children: ReactNode;\n};\n\ntype MultipleWithoutItems = {\n /** Allows multiple selected labels. */\n selectionMode: \"multiple\";\n disableAutoSelectOnFocus?: never;\n /** Controlled selected labels. */\n selected?: string[];\n /** Initial labels for uncontrolled selection. */\n defaultSelected?: string[];\n /** Called with the next selected labels. */\n onSelectionChange?: (selected: string[]) => void;\n items?: never;\n /** Static {@link Listbox.Option} and {@link Listbox.OptionGroup} content. */\n children: ReactNode;\n};\n\ntype SingleWithItems<T> = {\n /** One selected item at a time. Defaults to `single`. */\n selectionMode?: \"single\";\n /** Keeps arrow-key focus movement from changing selection. Defaults to `false`. */\n disableAutoSelectOnFocus?: boolean;\n /** Controlled selected item. */\n selected?: ListboxItemType<T>;\n /** Initial item for uncontrolled selection. */\n defaultSelected?: ListboxItemType<T>;\n /** Called with the next item, or `undefined` when deselected. */\n onSelectionChange?: (selected: ListboxItemType<T> | undefined) => void;\n /** Selection values passed unchanged to the `children` render function. */\n items: ListboxItemType<T>[];\n /** Receives `{ items }`; options render only when this function maps them. */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\ntype MultipleWithItems<T> = {\n /** Allows multiple selected items. */\n selectionMode: \"multiple\";\n disableAutoSelectOnFocus?: never;\n /** Controlled selected items. */\n selected?: ListboxItemType<T>[];\n /** Initial items for uncontrolled selection. */\n defaultSelected?: ListboxItemType<T>[];\n /** Called with the next selected items. */\n onSelectionChange?: (selected: ListboxItemType<T>[]) => void;\n /** Selection values passed unchanged to the `children` render function. */\n items: ListboxItemType<T>[];\n /** Receives `{ items }`; options render only when this function maps them. */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\n/**\n * Single or multiple selection using label strings for static children and\n * item objects when `items` is supplied.\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = Omit<ComponentPropsWithoutRef<\"ul\">, \"children\"> &\n LayoutUtilProps &\n (\n | SingleWithoutItems\n | MultipleWithoutItems\n | SingleWithItems<T>\n | MultipleWithItems<T>\n );\n\nfunction ListboxInner<T>(props: ListboxProps<T>, ref: Ref<HTMLUListElement>) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n selectionMode = \"single\",\n items,\n children,\n onKeyDown,\n onFocus,\n onSelectionChange,\n selected: selectedProp,\n defaultSelected,\n disableAutoSelectOnFocus,\n style,\n ...rest\n } = componentProps;\n\n const listboxRef = useRef<HTMLUListElement>(null);\n const [selected, setSelected] = useState<ListboxProps<T>[\"defaultSelected\"]>(\n selectedProp || defaultSelected,\n );\n const [options, setOptions] = useState<NodeListOf<HTMLElement>>();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState<\n ListboxContextProps<T>[\"currentFocus\"]\n >(\n Array.isArray(selected)\n ? typeof selected[0] === \"object\"\n ? (selected as ListboxItemType<T>[])[0].label\n : (selected as string[])[0]\n : typeof selected === \"object\"\n ? (selected as ListboxItemType<T>)?.label\n : (selected as string),\n );\n\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n\n const controlled = selectedProp !== undefined;\n\n useEffect(() => {\n if (listboxRef.current) {\n setOptions(\n listboxRef.current.querySelectorAll(\n \"[role=option]:not([aria-disabled='true'])\",\n ),\n );\n }\n }, [items, listboxRef, selectionMode]);\n\n useEffect(\n () => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedProp],\n );\n\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes =\n options &&\n Array.from(options).filter((node) =>\n node.innerText.toLowerCase().startsWith(lowerTypeAhead),\n );\n\n if (!nodes?.length) {\n return;\n }\n\n let node = nodes[0];\n\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n const focusIndex = currentFocus\n ? nodes.map((node) => node.id).indexOf(currentFocus)\n : -1;\n if (focusIndex > -1) {\n let nextFocusIndex = focusIndex + 1;\n if (nextFocusIndex === nodes.length) {\n nextFocusIndex = 0;\n }\n node = nodes[nextFocusIndex];\n }\n }\n\n setCurrentFocus(node.id);\n scrollToOption(node);\n\n if (controlled) return;\n\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => (item as ListboxItemType<T>).label === currentFocus,\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [typeAhead]);\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLUListElement>) => {\n onKeyDown?.(e);\n\n if (new RegExp(/^[a-zA-Z0-9]$/i).test(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n updateTypeAhead(e.key);\n return;\n }\n\n onListboxKeyDown(e, {\n controlled,\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items,\n });\n };\n\n const onFocusHandler = (e: FocusEvent<HTMLUListElement>) => {\n onFocus?.(e);\n\n if (!options) return;\n\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus,\n );\n\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected as string);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus((selected as ListboxItemType<T>)?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n\n if (selectionMode === \"multiple\") {\n const selectedArr = Array.isArray(selected) ? selected : [selected];\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus,\n );\n\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus((selectedArr as ListboxItemType<T>[])[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus((selectedArr as ListboxItemType<T>[])[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n\n setCurrentFocus(options[0].id);\n };\n\n const mergeRef = useMergeRefs([ref, listboxRef]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const value = useMemo(\n () => ({\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n items,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n controlled,\n }),\n [\n currentFocus,\n disableAutoSelectOnFocus,\n onSelectionChange,\n options,\n selected,\n selectionMode,\n items,\n controlled,\n ],\n );\n\n return (\n <ListboxContext.Provider value={value}>\n <ul\n tabIndex={0}\n role=\"listbox\"\n style={styleCombined}\n aria-multiselectable={selectionMode === \"multiple\" ? \"true\" : \"false\"}\n aria-activedescendant={currentFocus}\n className={ListboxClassNames}\n data-anv=\"listbox\"\n onKeyDown={onKeyDownHandler}\n onFocus={onFocusHandler}\n {...rest}\n ref={mergeRef}\n >\n {items ? children?.({ items }) : children}\n </ul>\n </ListboxContext.Provider>\n );\n}\n\nListboxInner.displayName = \"Listbox\";\n\n/** Keyboard-navigable single or multiple selection list. Supports controlled and uncontrolled selection. */\nexport const Listbox = Object.assign(\n forwardRef(ListboxInner) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxInner>,\n {\n /** Selectable listbox item. */\n Option: ListboxOption,\n /** Visual heading and disabled-state boundary for related options. */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["styles","Check","node"],"mappings":";;;;;;;;;;;;AAQO,MAAM,YAAA,GAAe,CAC1B,OAAA,GAAU,GAAA,KAC2B;AACrC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,EAAE,CAAA;AAE7C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAQ,UAAA,CAAW,MAAM,YAAA,CAAa,EAAE,GAAG,OAAO,CAAA;AACxD,IAAA,OAAO,MAAM,aAAa,KAAK,CAAA;AAAA,EACjC,CAAA,EAAG,CAAC,SAAA,EAAW,OAAO,CAAC,CAAA;AAEvB,EAAA,MAAM,kBAAkB,CAAC,IAAA,KAAiB,aAAa,CAAC,IAAA,KAAS,OAAO,IAAI,CAAA;AAE5E,EAAA,OAAO,CAAC,WAAW,eAAe,CAAA;AACpC,CAAA;;ACGO,MAAM,cAAA,GAAiB,aAAA;AAAA,EAC5B;AACF,CAAA;AAMO,MAAM,aAAa,MAAM;AAC9B,EAAA,MAAM,OAAA,GAAU,WAAW,cAAc,CAAA;AAEzC,EAAA,IAAI,WAAW,IAAA,EAAM;AACnB,IAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAAA,EAC7D;AAEA,EAAA,OAAO,OAAA;AACT,CAAA;;AClCO,MAAM,yBAAA,GACX,aAAA,CAA8C,EAAE,CAAA;;AC2C3C,MAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,OAAA;AAAA,MACA,KAAA,EAAO,SAAA;AAAA,MACP,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM;AAAA,MACJ,eAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,iBAAA;AAAA,MACA;AAAA,QACE,UAAA,EAAW;AAEf,IAAA,MAAM,KAAA,GAAQ,SAAA,IAAa,IAAA,EAAM,KAAA,IAAS,EAAA;AAE1C,IAAA,MAAM,EAAE,QAAA,EAAU,aAAA,EAAc,GAAI,WAAW,yBAAyB,CAAA;AACxE,IAAA,MAAM,QAAA,GACJ,aAAA,IAAiB,YAAA,IAAiB,IAAA,EAAM,QAAA,IAAwB,KAAA;AAElE,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,kBAAkB,QAAA,EAAU;AAC9B,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,OAAO,UAAU,KAAA,KAAU,KAAA;AAAA,QAC7B;AACA,QAAA,OAAO,QAAA,KAAa,KAAA;AAAA,MACtB;AACA,MAAA,IAAI,kBAAkB,UAAA,EAAY;AAChC,QAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GACxC,WACA,QAAA,GACE,CAAC,QAAQ,CAAA,GACT,EAAC;AACP,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,OAAO,aAAA,CAAc,IAAA;AAAA,YACnB,CAAC,YAAA,KAAiB,YAAA,CAAa,KAAA,KAAU;AAAA,WAC3C;AAAA,QACF;AACA,QAAA,OAAO,aAAA,CAAc,SAAS,KAAK,CAAA;AAAA,MACrC;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAiC;AACvD,MAAA,IAAI,QAAA,EAAU;AAEd,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,eAAA,GAAkB,KAAK,CAAA;AAEvB,MAAA,IAAI,kBAAkB,QAAA,EAAU;AAC9B,QAAA,IACG,CAAC,IAAA,IAAQ,QAAA,KAAa,SACtB,IAAA,IAAQ,QAAA,EAAU,UAAU,KAAA,EAC7B;AACA,UAAA,IAAI,CAAC,UAAA,EAAY;AACf,YAAA,WAAA,GAAc,MAAS,CAAA;AAAA,UACzB;AACA,UAAA,iBAAA,GAAoB,MAAS,CAAA;AAC7B,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,IAAI,CAAC,UAAA,EAAY;AACf,YAAA,WAAA,GAAc,IAAI,CAAA;AAAA,UACpB;AACA,UAAA,iBAAA,GAAoB,IAAI,CAAA;AACxB,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,IAAI,CAAC,UAAA,EAAY;AACf,YAAA,WAAA,GAAc,KAAK,CAAA;AAAA,UACrB;AACA,UAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,UAAA;AAAA,QACF;AAAA,MACF;AAEA,MAAA,IAAI,kBAAkB,UAAA,EAAY;AAChC,QAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GACxC,WACA,QAAA,GACE,CAAC,QAAQ,CAAA,GACT,EAAC;AACP,QAAA,IACE,IAAA,IACA,cAAc,IAAA,CAAK,CAAC,iBAAiB,YAAA,CAAa,KAAA,KAAU,KAAK,CAAA,EACjE;AACA,UAAA,MAAM,+BAA+B,aAAA,CAAc,MAAA;AAAA,YACjD,CAAC,YAAA,KAAiB,YAAA,CAAa,KAAA,KAAU;AAAA,WAC3C;AACA,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,4BAA4B,CAAA;AAC3D,UAAA,iBAAA,GAAoB,4BAA4B,CAAA;AAChD,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,CAAC,IAAA,IAAQ,aAAA,CAAc,QAAA,CAAS,KAAK,CAAA,EAAG;AAC1C,UAAA,MAAM,+BAA+B,aAAA,CAAc,MAAA;AAAA,YACjD,CAAC,iBAAiB,YAAA,KAAiB;AAAA,WACrC;AACA,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,4BAA4B,CAAA;AAC3D,UAAA,iBAAA,GAAoB,4BAA4B,CAAA;AAChD,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,MAAM,0BAAA,GAA6B,CAAC,GAAG,aAAA,EAAe,IAAI,CAAA;AAC1D,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,0BAA0B,CAAA;AACzD,UAAA,iBAAA,GAAoB,0BAA0B,CAAA;AAC9C,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,MAAM,0BAAA,GAA6B,CAAC,GAAG,aAAA,EAAe,KAAK,CAAA;AAC3D,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,0BAA0B,CAAA;AACzD,UAAA,iBAAA,GAAoB,0BAA0B,CAAA;AAC9C,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,OAAO,MAAA,IAAU,KAAA,GAAQ,KAAA,CAAM,IAAA,EAAM,QAAQ,KAAA,CAAM;AAAA,KACrD;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,eAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,0BAA0B,EAAA,CAAGA,aAAA,CAAO,QAAQ,CAAA,EAAG,SAAA,EAAW,EAAE,CAAA;AAElE,IAAA,uBACE,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,SAAA,EAAW,uBAAA;AAAA,QACX,UAAA,EAAS,gBAAA;AAAA,QACT,IAAA,EAAK,QAAA;AAAA,QACL,eAAA,EAAe,QAAA;AAAA,QACf,gBAAc,YAAA,KAAiB,KAAA;AAAA,QAC/B,iBAAe,UAAA,EAAW;AAAA,QAC1B,EAAA,EAAI,KAAA;AAAA,QACJ,OAAA,EAAS,cAAA;AAAA,QACT,GAAA;AAAA,QACA,OAAO,KAAA,IAAS,KAAA;AAAA,QACf,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWA,cAAO,UAAU,CAAA;AAAA,cAC5B,IAAA,EAAM,CAAA;AAAA,cACN,MAAA,EAAQ,CAAA;AAAA,cACR,UAAA;AAAA,cACA,YAAA;AAAA,cACA,YAAA;AAAA,cACA,cAAA;AAAA,cACA,UAAA;AAAA,cACA,YAAA;AAAA,cAEC;AAAA;AAAA,WACH;AAAA,0BACA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAW,IAAA;AAAA,cACX,GAAA,EAAKC,QAAA;AAAA,cACL,OAAA,EAAO,IAAA;AAAA,cACP,SAAA,EAAWD,cAAO,MAAM,CAAA;AAAA,cACxB,OAAO,EAAE,OAAA,EAAS,UAAA,EAAW,GAAI,IAAI,CAAA;AAAE;AAAA;AACzC;AAAA;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;;AC5OrB,MAAM,cAAA,GAAiB,CAAC,IAAA,KAAkC;AAC/D,EAAA,IAAA,EAAM,cAAA,CAAe;AAAA,IACnB,KAAA,EAAO,SAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACT,CAAA;AACH,CAAA;AAEO,MAAM,gBAAA,GAAmB,CAC9B,CAAA,EAEA,OAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF,GAAI,OAAA;AAEJ,EAAA,IAAI,CAAC,OAAA,EAAS;AAEd,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,IACtC,CAAC,IAAA,KAAS,IAAA,CAAK,EAAA,KAAO;AAAA,GACxB;AAEA,EAAA,MAAM,eAAe,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,QAAQ,WAAW,CAAA;AAE5D,EAAA,QAAQ,EAAE,IAAA;AAAM,IACd,KAAK,WAAA;AACH,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,YAAA,KAAiB,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AACvC,QAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,EAAG,OAAO,CAAA;AAAA,MAC7B,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,QAAQ,YAAA,GAAe,CAAC,CAAA,EAAG,YAAA,GAAe,GAAG,OAAO,CAAA;AAAA,MAC3D;AACA,MAAA;AAAA,IACF,KAAK,SAAA;AACH,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,QAAA,IAAA,CAAK,OAAA,CAAQ,QAAQ,MAAA,GAAS,CAAC,GAAG,OAAA,CAAQ,MAAA,GAAS,GAAG,OAAO,CAAA;AAAA,MAC/D,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,QAAQ,YAAA,GAAe,CAAC,CAAA,EAAG,YAAA,GAAe,GAAG,OAAO,CAAA;AAAA,MAC3D;AACA,MAAA;AAAA,IACF,KAAK,MAAA;AACH,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,EAAG,OAAO,CAAA;AAC3B,MAAA;AAAA,IACF,KAAK,KAAA;AACH,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAA,CAAK,OAAA,CAAQ,QAAQ,MAAA,GAAS,CAAC,GAAG,OAAA,CAAQ,MAAA,GAAS,GAAG,OAAO,CAAA;AAC7D,MAAA;AAAA,IAEF,KAAK,OAAA;AAAA,IACL,KAAK,OAAA;AACH,MAAA,CAAA,CAAE,cAAA,EAAe;AAEjB,MAAA,IAAI,CAAC,YAAA,EAAc;AAEnB,MAAA,IAAI,kBAAkB,QAAA,EAAU;AAC9B,QAAA,IACE,OAAO,QAAA,KAAa,QAAA,GAChB,SAAS,KAAA,KAAU,YAAA,GACnB,aAAa,YAAA,EACjB;AACA,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,MAAS,CAAA;AACxC,UAAA,iBAAA,GAAoB,MAAS,CAAA;AAC7B,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,MAAM,eAAe,KAAA,CAAM,MAAA;AAAA,YACzB,CAAC,IAAA,KAAS,CAAE,IAAA,EAAiC;AAAA,WAC/C;AACA,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,YAAA,CAAa,YAAY,CAAC,CAAA;AACzD,UAAA,iBAAA,GAAoB,YAAA,CAAa,YAAY,CAAC,CAAA;AAC9C,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,YAAY,CAAA;AAC3C,UAAA,iBAAA,GAAoB,YAAY,CAAA;AAChC,UAAA;AAAA,QACF;AAAA,MACF;AAEA,MAAA,IAAI,kBAAkB,UAAA,EAAY;AAChC,QAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GACxC,WACA,QAAA,GACE,CAAC,QAAQ,CAAA,GACT,EAAC;AAEP,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,MAAM,cAAc,KAAA,CAAM,IAAA;AAAA,YACxB,CAAC,IAAA,KAAU,IAAA,CAA2B,KAAA,KAAU;AAAA,WAClD;AAEA,UAAA,IAAI,aAAA,CAAc,QAAA,CAAS,WAAW,CAAA,EAAG;AACvC,YAAA,MAAM,+BAA+B,aAAA,CAAc,MAAA;AAAA,cACjD,CAAC,iBAAiB,YAAA,KAAiB;AAAA,aACrC;AACA,YAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,4BAA4B,CAAA;AAC3D,YAAA,iBAAA,GAAoB,4BAA4B,CAAA;AAChD,YAAA;AAAA,UACF,CAAA,MAAO;AACL,YAAA,MAAM,0BAAA,GAA6B,CAAC,GAAG,aAAA,EAAe,WAAW,CAAA;AACjE,YAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,0BAA0B,CAAA;AACzD,YAAA,iBAAA,GAAoB,0BAA0B,CAAA;AAC9C,YAAA;AAAA,UACF;AAAA,QACF;AAEA,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,IAAI,aAAA,CAAc,QAAA,CAAS,YAAY,CAAA,EAAG;AACxC,YAAA,MAAM,WAAW,aAAA,CAAc,MAAA;AAAA,cAC7B,CAAC,SAAS,IAAA,KAAS;AAAA,aACrB;AACA,YAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,QAAQ,CAAA;AACvC,YAAA,iBAAA,GAAoB,QAAQ,CAAA;AAC5B,YAAA;AAAA,UACF;AACA,UAAA,MAAM,KAAA,GAAQ,CAAC,GAAG,aAAA,EAAe,YAAY,CAAA;AAC7C,UAAA,IAAI,CAAC,UAAA,EAAY,WAAA,GAAc,KAAK,CAAA;AACpC,UAAA,iBAAA,GAAoB,KAAK,CAAA;AAAA,QAC3B;AAAA,MACF;AACA,MAAA;AAGA;AAEN,CAAA;AAEA,MAAM,IAAA,GAAO,CACX,MAAA,EACA,KAAA,EAEA,OAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,eAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,wBAAA;AAAA,IACA,iBAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF,GAAI,OAAA;AAEJ,EAAA,cAAA,CAAe,MAAM,CAAA;AACrB,EAAA,IAAI,wBAAA,IAA4B,kBAAkB,UAAA,EAAY;AAC5D,IAAA,eAAA,CAAgB,QAAQ,EAAE,CAAA;AAC1B,IAAA;AAAA,EACF;AAEA,EAAA,eAAA,CAAgB,QAAQ,EAAE,CAAA;AAE1B,EAAA,IAAI,UAAA,EAAY;AAEhB,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,MAAM,eAAe,KAAA,CAAM,MAAA;AAAA,MACzB,CAAC,IAAA,KAAS,CAAE,IAAA,EAAiC;AAAA,KAC/C;AACA,IAAA,WAAA,CAAY,YAAA,CAAa,KAAK,CAAC,CAAA;AAC/B,IAAA,iBAAA,GAAoB,YAAA,CAAa,KAAK,CAAC,CAAA;AAAA,EACzC,CAAA,MAAO;AACL,IAAA,WAAA,CAAY,QAAQ,EAAE,CAAA;AACtB,IAAA,iBAAA,GAAoB,QAAQ,EAAE,CAAA;AAAA,EAChC;AACF,CAAA;;ACjKO,MAAM,kBAAA,GAAqB,UAAA,CAGhC,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,UAAU,KAAA,EAAO,GAAG,MAAK,GAAI,KAAA;AAE1D,EAAA,MAAM,aAAA,GAAgB,EAAA,CAAGA,aAAA,CAAO,cAAc,GAAG,SAAS,CAAA;AAE1D,EAAA,MAAM,OAAA,GAAU,EAAA,CAAGA,aAAA,CAAO,OAAO,CAAA,EAAG;AAAA,IAClC,CAACA,aAAA,CAAO,UAAU,CAAC,GAAG;AAAA,GACvB,CAAA;AAED,EAAA,2BACG,yBAAA,CAA0B,QAAA,EAA1B,EAAmC,KAAA,EAAO,EAAE,UAAS,EACpD,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAS,sBAAA;AAAA,MACT,SAAA,EAAW,aAAA;AAAA,MACX,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAW,SAChC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QAEC;AAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,kBAAA,CAAmB,WAAA,GAAc,oBAAA;;ACmEjC,SAAS,YAAA,CAAgB,OAAwB,GAAA,EAA4B;AAC3E,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,aAAA,GAAgB,QAAA;AAAA,IAChB,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA,EAAU,YAAA;AAAA,IACV,eAAA;AAAA,IACA,wBAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,cAAA;AAEJ,EAAA,MAAM,UAAA,GAAa,OAAyB,IAAI,CAAA;AAChD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAAA;AAAA,IAC9B,YAAA,IAAgB;AAAA,GAClB;AACA,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,EAAkC;AAChE,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAI,YAAA,EAAa;AAClD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAAA;AAAA,IAGtC,KAAA,CAAM,QAAQ,QAAQ,CAAA,GAClB,OAAO,QAAA,CAAS,CAAC,MAAM,QAAA,GACpB,QAAA,CAAkC,CAAC,CAAA,CAAE,KAAA,GACrC,SAAsB,CAAC,CAAA,GAC1B,OAAO,QAAA,KAAa,QAAA,GACjB,UAAiC,KAAA,GACjC;AAAA,GACT;AAEA,EAAA,MAAM,oBAAoB,EAAA,CAAGA,aAAA,CAAO,SAAS,CAAA,EAAG,SAAA,EAAW,EAAE,CAAA;AAE7D,EAAA,MAAM,aAAa,YAAA,KAAiB,MAAA;AAEpC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,WAAW,OAAA,EAAS;AACtB,MAAA,UAAA;AAAA,QACE,WAAW,OAAA,CAAQ,gBAAA;AAAA,UACjB;AAAA;AACF,OACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,KAAA,EAAO,UAAA,EAAY,aAAa,CAAC,CAAA;AAErC,EAAA,SAAA;AAAA,IACE,MAAM;AACJ,MAAA,IAAI,cAAc,cAAA,EAAgB;AAChC,QAAA,WAAA,CAAY,YAAY,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA;AAAA,IAEA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAU,MAAA,EAAQ;AACrB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,cAAA,GAAiB,UAAU,WAAA,EAAY;AAC7C,IAAA,MAAM,KAAA,GACJ,OAAA,IACA,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,MAAA;AAAA,MAAO,CAACE,KAAAA,KAC1BA,KAAAA,CAAK,UAAU,WAAA,EAAY,CAAE,WAAW,cAAc;AAAA,KACxD;AAEF,IAAA,IAAI,CAAC,OAAO,MAAA,EAAQ;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,GAAO,MAAM,CAAC,CAAA;AAElB,IAAA,IAAI,cAAA,CAAe,MAAA,KAAW,CAAA,IAAK,KAAA,CAAM,SAAS,CAAA,EAAG;AACnD,MAAA,MAAM,UAAA,GAAa,YAAA,GACf,KAAA,CAAM,GAAA,CAAI,CAACA,KAAAA,KAASA,KAAAA,CAAK,EAAE,CAAA,CAAE,OAAA,CAAQ,YAAY,CAAA,GACjD,EAAA;AACJ,MAAA,IAAI,aAAa,EAAA,EAAI;AACnB,QAAA,IAAI,iBAAiB,UAAA,GAAa,CAAA;AAClC,QAAA,IAAI,cAAA,KAAmB,MAAM,MAAA,EAAQ;AACnC,UAAA,cAAA,GAAiB,CAAA;AAAA,QACnB;AACA,QAAA,IAAA,GAAO,MAAM,cAAc,CAAA;AAAA,MAC7B;AAAA,IACF;AAEA,IAAA,eAAA,CAAgB,KAAK,EAAE,CAAA;AACvB,IAAA,cAAA,CAAe,IAAI,CAAA;AAEnB,IAAA,IAAI,UAAA,EAAY;AAEhB,IAAA,IAAI,kBAAkB,QAAA,EAAU;AAC9B,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,IAAI,wBAAA,EAA0B;AAC5B,UAAA,MAAM,cAAc,KAAA,CAAM,IAAA;AAAA,YACxB,CAAC,IAAA,KAAU,IAAA,CAA4B,KAAA,KAAU;AAAA,WACnD;AACA,UAAA,WAAA,GAAc,WAAW,CAAA;AACzB,UAAA,iBAAA,GAAoB,WAAW,CAAA;AAAA,QACjC;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,IAAI,wBAAA,EAA0B;AAC5B,UAAA,WAAA,CAAY,KAAK,EAAE,CAAA;AACnB,UAAA,iBAAA,GAAoB,KAAK,EAAE,CAAA;AAAA,QAC7B;AACA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EAGF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAuC;AAC/D,IAAA,SAAA,GAAY,CAAC,CAAA;AAEb,IAAA,IAAI,IAAI,MAAA,CAAO,gBAAgB,EAAE,IAAA,CAAK,CAAA,CAAE,GAAG,CAAA,EAAG;AAC5C,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,eAAA,CAAgB,EAAE,GAAG,CAAA;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,gBAAA,CAAiB,CAAA,EAAG;AAAA,MAClB,UAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,iBAAA;AAAA,MACA,wBAAA,EAA0B,CAAC,CAAC,wBAAA;AAAA,MAC5B;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAoC;AAC1D,IAAA,OAAA,GAAU,CAAC,CAAA;AAEX,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,IAAI,kBAAkB,QAAA,EAAU;AAC9B,MAAA,MAAM,kBAAA,GAAqB,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,QAC7C,CAAC,IAAA,KAAS,IAAA,CAAK,EAAA,KAAO;AAAA,OACxB;AAEA,MAAA,IAAI,gBAAgB,kBAAA,EAAoB;AACxC,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,IAAI,kBAAA,EAAoB;AACtB,UAAA,eAAA,CAAgB,QAAkB,CAAA;AAClC,UAAA;AAAA,QACF;AACA,QAAA,eAAA,CAAgB,OAAA,CAAQ,CAAC,CAAA,CAAE,EAAE,CAAA;AAC7B,QAAA;AAAA,MACF;AACA,MAAA,IAAI,kBAAA,EAAoB;AACtB,QAAA,eAAA,CAAiB,UAAiC,KAAK,CAAA;AACvD,QAAA;AAAA,MACF;AACA,MAAA,eAAA,CAAgB,KAAA,GAAQ,CAAC,CAAA,CAAE,KAAK,CAAA;AAChC,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,kBAAkB,UAAA,EAAY;AAChC,MAAA,MAAM,cAAc,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,CAAC,QAAQ,CAAA;AAClE,MAAA,MAAM,kBAAA,GAAqB,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,QAC7C,CAAC,IAAA,KAAS,IAAA,CAAK,EAAA,KAAO;AAAA,OACxB;AAEA,MAAA,IAAI,gBAAgB,kBAAA,EAAoB;AACxC,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,OAAA,CAAQ,GAAA,CAAI,EAAE,YAAA,EAAc,kBAAA,EAAoB,CAAA;AAChD,QAAA,IAAI,kBAAA,EAAoB;AACtB,UAAA,eAAA,CAAiB,WAAA,CAAqC,CAAC,CAAA,CAAE,KAAK,CAAA;AAC9D,UAAA;AAAA,QACF;AACA,QAAA,eAAA,CAAgB,OAAA,CAAQ,CAAC,CAAA,CAAE,EAAE,CAAA;AAC7B,QAAA;AAAA,MACF;AACA,MAAA,IAAI,kBAAA,EAAoB;AACtB,QAAA,eAAA,CAAiB,WAAA,CAAqC,CAAC,CAAA,EAAG,KAAK,CAAA;AAC/D,QAAA;AAAA,MACF;AACA,MAAA,eAAA,CAAgB,KAAA,GAAQ,CAAC,CAAA,CAAE,KAAK,CAAA;AAChC,MAAA;AAAA,IACF;AAEA,IAAA,eAAA,CAAgB,OAAA,CAAQ,CAAC,CAAA,CAAE,EAAE,CAAA;AAAA,EAC/B,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,CAAC,GAAA,EAAK,UAAU,CAAC,CAAA;AAE/C,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,KAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,IACZ,OAAO;AAAA,MACL,eAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,aAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,iBAAA;AAAA,MACA,wBAAA,EAA0B,CAAC,CAAC,wBAAA;AAAA,MAC5B;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,YAAA;AAAA,MACA,wBAAA;AAAA,MACA,iBAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,aAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,uBACE,GAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EACvB,QAAA,kBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU,CAAA;AAAA,MACV,IAAA,EAAK,SAAA;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,sBAAA,EAAsB,aAAA,KAAkB,UAAA,GAAa,MAAA,GAAS,OAAA;AAAA,MAC9D,uBAAA,EAAuB,YAAA;AAAA,MACvB,SAAA,EAAW,iBAAA;AAAA,MACX,UAAA,EAAS,SAAA;AAAA,MACT,SAAA,EAAW,gBAAA;AAAA,MACX,OAAA,EAAS,cAAA;AAAA,MACR,GAAG,IAAA;AAAA,MACJ,GAAA,EAAK,QAAA;AAAA,MAEJ,QAAA,EAAA,KAAA,GAAQ,QAAA,GAAW,EAAE,KAAA,EAAO,CAAA,GAAI;AAAA;AAAA,GACnC,EACF,CAAA;AAEJ;AAEA,YAAA,CAAa,WAAA,GAAc,SAAA;AAGpB,MAAM,UAAU,MAAA,CAAO,MAAA;AAAA,EAC5B,WAAW,YAAY,CAAA;AAAA,EAGvB;AAAA;AAAA,IAEE,MAAA,EAAQ,aAAA;AAAA;AAAA,IAER,WAAA,EAAa;AAAA;AAEjB;;;;"}
1
+ {"version":3,"file":"Listbox-n1CmJ2gh.js","sources":["../src/internal/hooks/useTypeAhead/useTypeAhead.tsx","../src/components/Listbox/internal/ListboxContext.tsx","../src/components/Listbox/internal/ListboxOptionGroupContext.tsx","../src/components/Listbox/ListboxOption.tsx","../src/components/Listbox/internal/utils.ts","../src/components/Listbox/ListboxOptionGroup.tsx","../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\n\n/**\n * Accumulates typed characters for list/menu keyboard matching. Starts as `\"\"`\n * and clears `timeout` ms after the last character (default `750`).\n *\n * @returns `[query, append]` — `append` concatenates; it does not replace.\n */\nexport const useTypeAhead = (\n timeout = 750,\n): [string, (char: string) => void] => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n\n const updateTypeAhead = (char: string) => setTypeAhead((prev) => prev + char);\n\n return [typeAhead, updateTypeAhead];\n};\n","import {\n createContext,\n type Dispatch,\n type SetStateAction,\n useContext,\n} from \"react\";\nimport type { ListboxProps } from \"../Listbox\";\n\nexport type ListboxContextProps<T> = {\n currentFocus?: string;\n setCurrentFocus: Dispatch<\n SetStateAction<ListboxContextProps<T>[\"currentFocus\"]>\n >;\n selected: ListboxProps<T>[\"defaultSelected\"];\n setSelected: Dispatch<SetStateAction<ListboxContextProps<T>[\"selected\"]>>;\n options: NodeListOf<HTMLElement> | undefined;\n selectionMode: Exclude<ListboxProps<T>[\"selectionMode\"], undefined>;\n onSelectionChange: ListboxProps<T>[\"onSelectionChange\"];\n disableAutoSelectOnFocus: boolean;\n items?: unknown[];\n controlled?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const ListboxContext = createContext<ListboxContextProps<any> | null>(\n null,\n);\n\n/**\n * Reads the required listbox context.\n * @throws When called outside a Listbox.\n */\nexport const useListbox = () => {\n const context = useContext(ListboxContext);\n\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n\n return context;\n};\n","import { createContext } from \"react\";\n\ntype ListboxOptionGroupContextProps = {\n disabled?: boolean;\n};\n\nexport const ListboxOptionGroupContext =\n createContext<ListboxOptionGroupContextProps>({});\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n type MouseEvent,\n} from \"react\";\nimport { Icon } from \"../Icon\";\nimport { Flex, type FlexProps } from \"../Flex\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useListbox } from \"./internal/ListboxContext\";\nimport { useTrackingId } from \"../../hooks\";\nimport { ListboxOptionGroupContext } from \"./internal/ListboxOptionGroupContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\n\ntype ItemType = {\n label: string;\n [key: string]: unknown;\n};\n\n/** @extends ComponentPropsWithoutRef<\"li\"> */\nexport type ListboxOptionProps = ComponentPropsWithoutRef<\"li\"> & {\n /** Native `li` value. Defaults to the resolved label; selection still uses the label. */\n value?: string;\n /** Prevents focus and selection. An `item` or enclosing group can also disable it. */\n disabled?: boolean;\n alignItems?: FlexProps[\"alignItems\"];\n justifyItems?: FlexProps[\"justifyItems\"];\n alignContent?: FlexProps[\"alignContent\"];\n justifyContent?: FlexProps[\"justifyContent\"];\n placeItems?: FlexProps[\"placeItems\"];\n placeContent?: FlexProps[\"placeContent\"];\n} & (\n | {\n /** Item from the parent's `items` array, passed through to selection callbacks. */\n item: ItemType;\n /** Selection identity override. Visible content comes from `children`. */\n label?: string;\n }\n | {\n /** Selection identity. Visible content comes from `children`. */\n label: string;\n item?: never;\n }\n ) &\n DataTrackingId;\n\n/** Selectable option whose label is its focus and selection identity. */\nexport const ListboxOption = forwardRef<HTMLLIElement, ListboxOptionProps>(\n (props, ref) => {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n label: labelProp,\n item,\n value,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n\n const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled,\n } = useListbox();\n\n const label = labelProp || item?.label || \"\";\n\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled =\n groupDisabled || disabledProp || (item?.disabled as boolean) || false;\n\n const isSelected = () => {\n if (selectionMode === \"single\") {\n if (item) {\n return selected?.label === label;\n }\n return selected === label;\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n if (item) {\n return selectedItems.some(\n (selectedItem) => selectedItem.label === label,\n );\n }\n return selectedItems.includes(label);\n }\n return false;\n };\n\n const onClickHandler = (e: MouseEvent<HTMLLIElement>) => {\n if (disabled) return;\n\n onClick?.(e);\n setCurrentFocus?.(label);\n\n if (selectionMode === \"single\") {\n if (\n (!item && selected === label) ||\n (item && selected?.label === label)\n ) {\n if (!controlled) {\n setSelected?.(undefined);\n }\n onSelectionChange?.(undefined);\n return;\n }\n\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n if (\n item &&\n selectedItems.some((selectedItem) => selectedItem.label === label)\n ) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label,\n );\n if (!controlled) setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label,\n );\n if (!controlled) setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n if (!controlled) setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n if (!controlled) setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n\n const data = {\n value: props.value,\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListboxOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n\n return (\n <li // eslint-disable-line jsx-a11y/click-events-have-key-events\n data-tracking-id={trackingId}\n className={ListboxOptionClassNames}\n data-anv=\"listbox-option\"\n role=\"option\"\n aria-disabled={disabled}\n data-focused={currentFocus === label}\n aria-selected={isSelected()}\n id={label}\n onClick={onClickHandler}\n ref={ref}\n value={value ?? label}\n {...rest}\n >\n <Flex\n className={styles[\"children\"]}\n grow={1}\n shrink={1}\n alignItems={alignItems}\n justifyItems={justifyItems}\n alignContent={alignContent}\n justifyContent={justifyContent}\n placeItems={placeItems}\n placeContent={placeContent}\n >\n {children}\n </Flex>\n <Icon\n aria-hidden\n svg={Check}\n inherit\n className={styles[\"icon\"]}\n style={{ opacity: isSelected() ? 1 : 0 }}\n />\n </li>\n );\n },\n);\n\nListboxOption.displayName = \"ListboxOption\";\n","import type { KeyboardEvent } from \"react\";\nimport type { ListboxContextProps } from \"./ListboxContext\";\n\nexport const scrollToOption = (node: HTMLElement | undefined) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\",\n });\n};\n\nexport const onListboxKeyDown = (\n e: KeyboardEvent<HTMLUListElement>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: ListboxContextProps<any>,\n) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled,\n } = context;\n\n if (!options) return;\n\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus,\n ) as HTMLElement;\n\n const currentIndex = Array.from(options).indexOf(currentNode);\n\n switch (e.code) {\n case \"ArrowDown\":\n e.preventDefault();\n if (currentIndex === options.length - 1) {\n goTo(options[0], 0, context);\n } else {\n goTo(options[currentIndex + 1], currentIndex + 1, context);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (currentIndex === 0) {\n goTo(options[options.length - 1], options.length - 1, context);\n } else {\n goTo(options[currentIndex - 1], currentIndex - 1, context);\n }\n break;\n case \"Home\":\n e.preventDefault();\n goTo(options[0], 0, context);\n break;\n case \"End\":\n e.preventDefault();\n goTo(options[options.length - 1], options.length - 1, context);\n break;\n\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n\n if (!currentFocus) return;\n\n if (selectionMode === \"single\") {\n if (\n typeof selected === \"object\"\n ? selected.label === currentFocus\n : selected === currentFocus\n ) {\n if (!controlled) setSelected?.(undefined);\n onSelectionChange?.(undefined);\n return;\n }\n\n if (items) {\n const enabledItems = items.filter(\n (item) => !(item as { disabled?: boolean })?.disabled,\n );\n if (!controlled) setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n\n if (!items) {\n if (!controlled) setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n\n if (items) {\n const focusedItem = items.find(\n (item) => (item as { label: string }).label === currentFocus,\n );\n\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem,\n );\n if (!controlled) setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n if (!controlled) setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n const filtered = selectedItems.filter(\n (item) => item !== currentFocus,\n );\n if (!controlled) setSelected?.(filtered);\n onSelectionChange?.(filtered);\n return;\n }\n const added = [...selectedItems, currentFocus];\n if (!controlled) setSelected?.(added);\n onSelectionChange?.(added);\n }\n }\n break;\n\n default:\n break;\n }\n};\n\nconst goTo = (\n option: HTMLElement,\n index: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: ListboxContextProps<any>,\n) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled,\n } = context;\n\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n\n setCurrentFocus(option?.id);\n\n if (controlled) return;\n\n if (items) {\n const enabledItems = items.filter(\n (item) => !(item as { disabled?: boolean })?.disabled,\n );\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { Text } from \"../Text\";\nimport { ListboxOptionGroupContext } from \"./internal/ListboxOptionGroupContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type ListboxOptionGroupProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Disables every descendant option and subdues the heading. */\n disabled?: boolean;\n /** Visible eyebrow heading above the options. */\n label: string;\n};\n\n/** Visual heading and disabled-state boundary for related options. */\nexport const ListboxOptionGroup = forwardRef<\n HTMLDivElement,\n ListboxOptionGroupProps\n>((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n\n const optionGroupCx = cx(styles[\"option-group\"], className);\n\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled,\n });\n\n return (\n <ListboxOptionGroupContext.Provider value={{ disabled }}>\n <div\n data-anv=\"listbox-option-group\"\n className={optionGroupCx}\n ref={ref}\n {...rest}\n >\n <Text variant=\"eyebrow\" className={labelCx}>\n {label}\n </Text>\n\n {children}\n </div>\n </ListboxOptionGroupContext.Provider>\n );\n});\n\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n","import {\n type Ref,\n forwardRef,\n type ReactNode,\n type ComponentPropsWithoutRef,\n useRef,\n useState,\n useEffect,\n type KeyboardEvent,\n type FocusEvent,\n useMemo,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { ListboxOption } from \"./ListboxOption\";\nimport {\n ListboxContext,\n type ListboxContextProps,\n} from \"./internal/ListboxContext\";\nimport { onListboxKeyDown, scrollToOption } from \"./internal/utils\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { ListboxOptionGroup } from \"./ListboxOptionGroup\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\nimport { useLayoutPropsUtil, useTypeAhead } from \"../../internal/hooks\";\n\n/** Object selection value used when `items` is supplied. */\nexport type ListboxItemType<T> = T & {\n /** Focus and selection identity. */\n label: string;\n /** Excludes the item from focus and selection. */\n disabled?: boolean;\n};\n\ntype SingleWithoutItems = {\n /** One selected label at a time. Defaults to `single`. */\n selectionMode?: \"single\";\n /** Keeps arrow-key focus movement from changing selection. Defaults to `false`. */\n disableAutoSelectOnFocus?: boolean;\n /** Controlled selected label. */\n selected?: string;\n /** Initial label for uncontrolled selection. */\n defaultSelected?: string;\n /** Called with the next label, or `undefined` when deselected. */\n onSelectionChange?: (selected: string | undefined) => void;\n items?: never;\n /** Static {@link Listbox.Option} and {@link Listbox.OptionGroup} content. */\n children: ReactNode;\n};\n\ntype MultipleWithoutItems = {\n /** Allows multiple selected labels. */\n selectionMode: \"multiple\";\n disableAutoSelectOnFocus?: never;\n /** Controlled selected labels. */\n selected?: string[];\n /** Initial labels for uncontrolled selection. */\n defaultSelected?: string[];\n /** Called with the next selected labels. */\n onSelectionChange?: (selected: string[]) => void;\n items?: never;\n /** Static {@link Listbox.Option} and {@link Listbox.OptionGroup} content. */\n children: ReactNode;\n};\n\ntype SingleWithItems<T> = {\n /** One selected item at a time. Defaults to `single`. */\n selectionMode?: \"single\";\n /** Keeps arrow-key focus movement from changing selection. Defaults to `false`. */\n disableAutoSelectOnFocus?: boolean;\n /** Controlled selected item. */\n selected?: ListboxItemType<T>;\n /** Initial item for uncontrolled selection. */\n defaultSelected?: ListboxItemType<T>;\n /** Called with the next item, or `undefined` when deselected. */\n onSelectionChange?: (selected: ListboxItemType<T> | undefined) => void;\n /** Selection values passed unchanged to the `children` render function. */\n items: ListboxItemType<T>[];\n /** Receives `{ items }`; options render only when this function maps them. */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\ntype MultipleWithItems<T> = {\n /** Allows multiple selected items. */\n selectionMode: \"multiple\";\n disableAutoSelectOnFocus?: never;\n /** Controlled selected items. */\n selected?: ListboxItemType<T>[];\n /** Initial items for uncontrolled selection. */\n defaultSelected?: ListboxItemType<T>[];\n /** Called with the next selected items. */\n onSelectionChange?: (selected: ListboxItemType<T>[]) => void;\n /** Selection values passed unchanged to the `children` render function. */\n items: ListboxItemType<T>[];\n /** Receives `{ items }`; options render only when this function maps them. */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\n/**\n * Single or multiple selection using label strings for static children and\n * item objects when `items` is supplied.\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = Omit<ComponentPropsWithoutRef<\"ul\">, \"children\"> &\n LayoutUtilProps &\n (\n | SingleWithoutItems\n | MultipleWithoutItems\n | SingleWithItems<T>\n | MultipleWithItems<T>\n );\n\nfunction ListboxInner<T>(props: ListboxProps<T>, ref: Ref<HTMLUListElement>) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n selectionMode = \"single\",\n items,\n children,\n onKeyDown,\n onFocus,\n onSelectionChange,\n selected: selectedProp,\n defaultSelected,\n disableAutoSelectOnFocus,\n style,\n ...rest\n } = componentProps;\n\n const listboxRef = useRef<HTMLUListElement>(null);\n const [selected, setSelected] = useState<ListboxProps<T>[\"defaultSelected\"]>(\n selectedProp || defaultSelected,\n );\n const [options, setOptions] = useState<NodeListOf<HTMLElement>>();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState<\n ListboxContextProps<T>[\"currentFocus\"]\n >(\n Array.isArray(selected)\n ? typeof selected[0] === \"object\"\n ? (selected as ListboxItemType<T>[])[0].label\n : (selected as string[])[0]\n : typeof selected === \"object\"\n ? (selected as ListboxItemType<T>)?.label\n : (selected as string),\n );\n\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n\n const controlled = selectedProp !== undefined;\n\n useEffect(() => {\n if (listboxRef.current) {\n setOptions(\n listboxRef.current.querySelectorAll(\n \"[role=option]:not([aria-disabled='true'])\",\n ),\n );\n }\n }, [items, listboxRef, selectionMode]);\n\n useEffect(\n () => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedProp],\n );\n\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes =\n options &&\n Array.from(options).filter((node) =>\n node.innerText.toLowerCase().startsWith(lowerTypeAhead),\n );\n\n if (!nodes?.length) {\n return;\n }\n\n let node = nodes[0];\n\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n const focusIndex = currentFocus\n ? nodes.map((node) => node.id).indexOf(currentFocus)\n : -1;\n if (focusIndex > -1) {\n let nextFocusIndex = focusIndex + 1;\n if (nextFocusIndex === nodes.length) {\n nextFocusIndex = 0;\n }\n node = nodes[nextFocusIndex];\n }\n }\n\n setCurrentFocus(node.id);\n scrollToOption(node);\n\n if (controlled) return;\n\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => (item as ListboxItemType<T>).label === currentFocus,\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [typeAhead]);\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLUListElement>) => {\n onKeyDown?.(e);\n\n if (new RegExp(/^[a-zA-Z0-9]$/i).test(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n updateTypeAhead(e.key);\n return;\n }\n\n onListboxKeyDown(e, {\n controlled,\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items,\n });\n };\n\n const onFocusHandler = (e: FocusEvent<HTMLUListElement>) => {\n onFocus?.(e);\n\n if (!options) return;\n\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus,\n );\n\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected as string);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus((selected as ListboxItemType<T>)?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n\n if (selectionMode === \"multiple\") {\n const selectedArr = Array.isArray(selected) ? selected : [selected];\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus,\n );\n\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus((selectedArr as ListboxItemType<T>[])[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus((selectedArr as ListboxItemType<T>[])[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n\n setCurrentFocus(options[0].id);\n };\n\n const mergeRef = useMergeRefs([ref, listboxRef]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const value = useMemo(\n () => ({\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n items,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n controlled,\n }),\n [\n currentFocus,\n disableAutoSelectOnFocus,\n onSelectionChange,\n options,\n selected,\n selectionMode,\n items,\n controlled,\n ],\n );\n\n return (\n <ListboxContext.Provider value={value}>\n <ul\n tabIndex={0}\n role=\"listbox\"\n style={styleCombined}\n aria-multiselectable={selectionMode === \"multiple\" ? \"true\" : \"false\"}\n aria-activedescendant={currentFocus}\n className={ListboxClassNames}\n data-anv=\"listbox\"\n onKeyDown={onKeyDownHandler}\n onFocus={onFocusHandler}\n {...rest}\n ref={mergeRef}\n >\n {items ? children?.({ items }) : children}\n </ul>\n </ListboxContext.Provider>\n );\n}\n\nListboxInner.displayName = \"Listbox\";\n\n/** Keyboard-navigable single or multiple selection list. Supports controlled and uncontrolled selection. */\nexport const Listbox = Object.assign(\n forwardRef(ListboxInner) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxInner>,\n {\n /** Selectable listbox item. */\n Option: ListboxOption,\n /** Visual heading and disabled-state boundary for related options. */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["styles","Check","node"],"mappings":"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"}
package/dist/Listbox.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as Listbox, L as default } from './Listbox-BR0YQIee.js';
1
+ export { L as Listbox, L as default } from './Listbox-n1CmJ2gh.js';
2
2
  //# sourceMappingURL=Listbox.js.map
@@ -1,2 +1,2 @@
1
- export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-9253tott.js';
1
+ export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-CWsOdu-o.js';
2
2
  //# sourceMappingURL=MultiSelectField.js.map