@servicetitan/anvil2 3.14.0 → 3.15.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 (632) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{AiMark-CWufA6pV.js → AiMark-D57s1e0T.js} +3 -3
  3. package/dist/AiMark-D57s1e0T.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-RkvFtmRP.js → Alert-DExHiAbM.js} +2 -2
  6. package/dist/Alert-DExHiAbM.js.map +1 -0
  7. package/dist/Alert.js +1 -1
  8. package/dist/Announcement-CGTv6M31.js.map +1 -1
  9. package/dist/Avatar-Ba662b3z.js +17 -0
  10. package/dist/Avatar-Ba662b3z.js.map +1 -0
  11. package/dist/{Avatar-DZxHhMTP.js → Avatar-CwnLhw9m.js} +1 -20
  12. package/dist/Avatar-CwnLhw9m.js.map +1 -0
  13. package/dist/Avatar.js +2 -2
  14. package/dist/Badge-BNrYBFiU.js.map +1 -1
  15. package/dist/{Breadcrumbs-DbOrdao2.js → Breadcrumbs-DtLSS0PJ.js} +3 -16
  16. package/dist/Breadcrumbs-DtLSS0PJ.js.map +1 -0
  17. package/dist/Breadcrumbs.js +1 -1
  18. package/dist/Button-Dwh_Nd4l.js.map +1 -1
  19. package/dist/ButtonCompound-D7kA0qXr.js.map +1 -1
  20. package/dist/ButtonLink-DOFAxNvC.js.map +1 -1
  21. package/dist/ButtonToggle-DKDBD1g3.js.map +1 -1
  22. package/dist/{Calendar-DLnn6dJE.js → Calendar-BUFPc5UN.js} +2 -2
  23. package/dist/{Calendar-DLnn6dJE.js.map → Calendar-BUFPc5UN.js.map} +1 -1
  24. package/dist/{Calendar-CK-AAaSG.js → Calendar-CEf7ke8X.js} +11 -79
  25. package/dist/Calendar-CEf7ke8X.js.map +1 -0
  26. package/dist/Calendar.js +2 -2
  27. package/dist/Card-Bt0F6RTq.js.map +1 -1
  28. package/dist/{Checkbox-Cn4iNLW_.js → Checkbox-DBE35nMv.js} +3 -23
  29. package/dist/Checkbox-DBE35nMv.js.map +1 -0
  30. package/dist/{Checkbox-CboZhOtU.js → Checkbox-DVy-QESI.js} +3 -3
  31. package/dist/Checkbox-DVy-QESI.js.map +1 -0
  32. package/dist/Checkbox.js +1 -1
  33. package/dist/{Chip-UbrxYEqs.js → Chip-B4G4zaP-.js} +3 -3
  34. package/dist/Chip-B4G4zaP-.js.map +1 -0
  35. package/dist/Chip.js +1 -1
  36. package/dist/Combobox.js +1 -1
  37. package/dist/{DataTable-COExZbOC.js → DataTable-DbuXfDNJ.js} +8 -8
  38. package/dist/{DataTable-COExZbOC.js.map → DataTable-DbuXfDNJ.js.map} +1 -1
  39. package/dist/{DateFieldRange-CpTxlASD.js → DateFieldRange-nyj8mtUP.js} +7 -15
  40. package/dist/DateFieldRange-nyj8mtUP.js.map +1 -0
  41. package/dist/DateFieldRange.js +1 -1
  42. package/dist/{DateFieldSingle-DR2kfrzh.js → DateFieldSingle-BmCghXba.js} +6 -9
  43. package/dist/DateFieldSingle-BmCghXba.js.map +1 -0
  44. package/dist/DateFieldSingle.js +1 -1
  45. package/dist/{DateFieldYearless-4mS_2Mgw.js → DateFieldYearless-Df7fA85i.js} +4 -4
  46. package/dist/DateFieldYearless-Df7fA85i.js.map +1 -0
  47. package/dist/DateFieldYearless.js +1 -1
  48. package/dist/{DateFieldYearlessRange-C-yvKBkJ.js → DateFieldYearlessRange-DYpY4K1c.js} +3 -3
  49. package/dist/DateFieldYearlessRange-DYpY4K1c.js.map +1 -0
  50. package/dist/DateFieldYearlessRange.js +1 -1
  51. package/dist/{DaysOfTheWeek-Bo4w8SsT.js → DaysOfTheWeek-CyWGRqFG.js} +3 -3
  52. package/dist/DaysOfTheWeek-CyWGRqFG.js.map +1 -0
  53. package/dist/DaysOfTheWeek.js +1 -1
  54. package/dist/{Details-CVA5zbrR.js → Details-oM-nR4ju.js} +3 -1
  55. package/dist/Details-oM-nR4ju.js.map +1 -0
  56. package/dist/Details.js +1 -1
  57. package/dist/{Dialog-Ds25dKQp.js → Dialog-vSiZAR1y.js} +44 -102
  58. package/dist/Dialog-vSiZAR1y.js.map +1 -0
  59. package/dist/Dialog.js +1 -1
  60. package/dist/DialogCancelButton-DBL0aKTK.js.map +1 -1
  61. package/dist/DialogContext-DBgtApl9.js.map +1 -1
  62. package/dist/Divider-C7fp5Xb6.js.map +1 -1
  63. package/dist/Dnd.js +1 -1
  64. package/dist/DndHandleButton-BRlodkDO.js.map +1 -1
  65. package/dist/DndSort.js +4 -6
  66. package/dist/DndSort.js.map +1 -1
  67. package/dist/{Drawer-Da-bj_6o.js → Drawer-B4pxj_2P.js} +33 -103
  68. package/dist/Drawer-B4pxj_2P.js.map +1 -0
  69. package/dist/Drawer.js +1 -1
  70. package/dist/DrawerContext-BSpnzXVZ.js.map +1 -1
  71. package/dist/DrillDown.js +1 -1
  72. package/dist/DrillDown.module-1VBKDZRA.js.map +1 -1
  73. package/dist/{EditCard-CocV93gS.js → EditCard-CX1G7G2Q.js} +2 -2
  74. package/dist/EditCard-CX1G7G2Q.js.map +1 -0
  75. package/dist/EditCard.js +1 -1
  76. package/dist/{FieldLabel-6aFKQfyD.js → FieldLabel-CAusaqUY.js} +3 -4
  77. package/dist/FieldLabel-CAusaqUY.js.map +1 -0
  78. package/dist/FieldLabel.js +1 -1
  79. package/dist/FieldMessage-8c9yA_kw.js.map +1 -1
  80. package/dist/{FilterBar-CZT1ryz_.js → FilterBar-CKYf-1oU.js} +5 -5
  81. package/dist/{FilterBar-CZT1ryz_.js.map → FilterBar-CKYf-1oU.js.map} +1 -1
  82. package/dist/FilterBar.js +1 -1
  83. package/dist/Flex-CRF7gj0_.js.map +1 -1
  84. package/dist/{Grid-CvGQrIhE.js → Grid-BPCDtqoT.js} +2 -20
  85. package/dist/Grid-BPCDtqoT.js.map +1 -0
  86. package/dist/Grid.js +1 -1
  87. package/dist/Icon-B5zwN7GD.js.map +1 -1
  88. package/dist/{InputMask-CNV0Ucli.js → InputMask-xMpquXPU.js} +3 -3
  89. package/dist/{InputMask-CNV0Ucli.js.map → InputMask-xMpquXPU.js.map} +1 -1
  90. package/dist/InputMask.js +1 -1
  91. package/dist/{Layout-C2Q2hyLG.js → Layout-C8fKY7Eh.js} +2 -1
  92. package/dist/Layout-C8fKY7Eh.js.map +1 -0
  93. package/dist/Layout.js +1 -1
  94. package/dist/Link-D7ycmfQ_.js.map +1 -1
  95. package/dist/LinkButton-C0wps8r1.js.map +1 -1
  96. package/dist/{List-BvzfZ9TW.js → List-CTr2fk7l.js} +2 -11
  97. package/dist/List-CTr2fk7l.js.map +1 -0
  98. package/dist/List.js +1 -1
  99. package/dist/{ListView-DFAWrwzi.js → ListView-D6l1KY92.js} +4 -26
  100. package/dist/ListView-D6l1KY92.js.map +1 -0
  101. package/dist/ListView.js +1 -1
  102. package/dist/{Listbox-BErqErNN.js → Listbox-Dep1eJ3u.js} +4 -30
  103. package/dist/Listbox-Dep1eJ3u.js.map +1 -0
  104. package/dist/Listbox.js +1 -1
  105. package/dist/{Menu-BjPE_ODh.js → Menu-eLxQwmZk.js} +2 -22
  106. package/dist/Menu-eLxQwmZk.js.map +1 -0
  107. package/dist/Menu.js +1 -1
  108. package/dist/MultiSelectField.js +1 -1
  109. package/dist/{MultiSelectFieldSync-CqWUidCm.js → MultiSelectFieldSync-ZNoNOm6d.js} +6 -13
  110. package/dist/MultiSelectFieldSync-ZNoNOm6d.js.map +1 -0
  111. package/dist/MultiSelectMenu.js +1 -1
  112. package/dist/{MultiSelectMenuSync-DG3rKyQc.js → MultiSelectMenuSync-DrgqaUJj.js} +4 -4
  113. package/dist/MultiSelectMenuSync-DrgqaUJj.js.map +1 -0
  114. package/dist/{NumberField-DRYYJHec.js → NumberField-D5ZzEHg1.js} +3 -3
  115. package/dist/NumberField-D5ZzEHg1.js.map +1 -0
  116. package/dist/NumberField.js +1 -1
  117. package/dist/Overflow.js +1 -1
  118. package/dist/Overflow.js.map +1 -1
  119. package/dist/{Page-BmpojvuI.js → Page-B2HZzNGP.js} +12 -12
  120. package/dist/Page-B2HZzNGP.js.map +1 -0
  121. package/dist/Page.js +1 -1
  122. package/dist/{Pagination-Bc4fhdNm.js → Pagination-CAgXtt9t.js} +13 -9
  123. package/dist/Pagination-CAgXtt9t.js.map +1 -0
  124. package/dist/Pagination.js +1 -1
  125. package/dist/{Popover-BgVOsP4J.js → Popover-CjL2ixjB.js} +6 -74
  126. package/dist/Popover-CjL2ixjB.js.map +1 -0
  127. package/dist/Popover.js +1 -1
  128. package/dist/{ProgressBar-Chb0uKfL.js → ProgressBar-ClKcOcXq.js} +2 -2
  129. package/dist/ProgressBar-ClKcOcXq.js.map +1 -0
  130. package/dist/ProgressBar.js +1 -1
  131. package/dist/Radio-C2BJqWlV.js +31 -0
  132. package/dist/Radio-C2BJqWlV.js.map +1 -0
  133. package/dist/{Radio-DcNlFfSu.js → Radio-_ftIQSru.js} +3 -3
  134. package/dist/Radio-_ftIQSru.js.map +1 -0
  135. package/dist/Radio.js +1 -1
  136. package/dist/{RichTextEditor-DeO4p-S-.js → RichTextEditor-TcZUnqcp.js} +9 -9
  137. package/dist/{RichTextEditor-DeO4p-S-.js.map → RichTextEditor-TcZUnqcp.js.map} +1 -1
  138. package/dist/RichTextEditor.js +1 -1
  139. package/dist/{SavedFiltersButton-Cvf1mJk8.js → SavedFiltersButton-B8lf3L2T.js} +9 -9
  140. package/dist/{SavedFiltersButton-Cvf1mJk8.js.map → SavedFiltersButton-B8lf3L2T.js.map} +1 -1
  141. package/dist/SavedFiltersButton.js +1 -1
  142. package/dist/SearchField-ChoNtw8w.js.map +1 -1
  143. package/dist/SearchField-DX8hZyo2.js.map +1 -1
  144. package/dist/{SegmentedControl-CQ6DrbDc.js → SegmentedControl-CtKoYHoO.js} +2 -17
  145. package/dist/SegmentedControl-CtKoYHoO.js.map +1 -0
  146. package/dist/SegmentedControl.js +1 -1
  147. package/dist/{SelectCard-bp5hRyHK.js → SelectCard-BwIbfore.js} +4 -28
  148. package/dist/SelectCard-BwIbfore.js.map +1 -0
  149. package/dist/SelectCard.js +1 -1
  150. package/dist/SelectField.js +1 -1
  151. package/dist/{SelectFieldLabel-DZqxaZsp.js → SelectFieldLabel-7VTZ83QJ.js} +2 -2
  152. package/dist/SelectFieldLabel-7VTZ83QJ.js.map +1 -0
  153. package/dist/{SelectFieldSync-Wkx6DGpg.js → SelectFieldSync-CB75kkka.js} +7 -6
  154. package/dist/SelectFieldSync-CB75kkka.js.map +1 -0
  155. package/dist/SelectMenu.js +1 -1
  156. package/dist/{SelectMenuSync-O55TODxn.js → SelectMenuSync-DIMfovCI.js} +4 -4
  157. package/dist/SelectMenuSync-DIMfovCI.js.map +1 -0
  158. package/dist/{SelectOptions-0A8BYx1q.js → SelectOptions-si_rVLEZ.js} +2 -2
  159. package/dist/{SelectOptions-0A8BYx1q.js.map → SelectOptions-si_rVLEZ.js.map} +1 -1
  160. package/dist/{SelectTrigger-BfJ7DWYq.js → SelectTrigger-C3-Cne3D.js} +3 -3
  161. package/dist/SelectTrigger-C3-Cne3D.js.map +1 -0
  162. package/dist/SelectTrigger.js +1 -1
  163. package/dist/{SelectTriggerBase-DvsI-kSG.js → SelectTriggerBase-BnsTYWVb.js} +3 -5
  164. package/dist/SelectTriggerBase-BnsTYWVb.js.map +1 -0
  165. package/dist/{SideNav-BLXgM918.js → SideNav-CHG7i8Dy.js} +4 -57
  166. package/dist/SideNav-CHG7i8Dy.js.map +1 -0
  167. package/dist/SideNav.js +1 -1
  168. package/dist/Skeleton.js.map +1 -1
  169. package/dist/Spinner-B7tTWcP6.js.map +1 -1
  170. package/dist/SrOnly-pnf8ajnh.js.map +1 -1
  171. package/dist/{Stepper-CCKHWlUr.js → Stepper-C-QC9QHx.js} +10 -178
  172. package/dist/Stepper-C-QC9QHx.js.map +1 -0
  173. package/dist/Stepper.js +1 -1
  174. package/dist/{Switch-CrDmBj4D.js → Switch-DWq4QI8M.js} +2 -2
  175. package/dist/Switch-DWq4QI8M.js.map +1 -0
  176. package/dist/Switch.js +1 -1
  177. package/dist/{Tab-Bqfvg8Ce.js → Tab-mXEQ0ifM.js} +4 -58
  178. package/dist/Tab-mXEQ0ifM.js.map +1 -0
  179. package/dist/Tab.js +1 -1
  180. package/dist/Table.js +1 -1
  181. package/dist/{Text-CZccJAnm.js → Text-dONmlARH.js} +2 -2
  182. package/dist/Text-dONmlARH.js.map +1 -0
  183. package/dist/Text.js +1 -1
  184. package/dist/{TextField-D0f9LwgQ.js → TextField-CQ7e3mC4.js} +3 -3
  185. package/dist/TextField-CQ7e3mC4.js.map +1 -0
  186. package/dist/{TextField-DX5qyWPo.js → TextField-CtXjbtqa.js} +2 -2
  187. package/dist/TextField-CtXjbtqa.js.map +1 -0
  188. package/dist/TextField.js +1 -1
  189. package/dist/{Textarea-CdTcekFd.js → Textarea-DGVHQktZ.js} +3 -3
  190. package/dist/Textarea-DGVHQktZ.js.map +1 -0
  191. package/dist/Textarea.js +1 -1
  192. package/dist/{TimeField-BxNglWQt.js → TimeField-AttXPsQw.js} +5 -9
  193. package/dist/TimeField-AttXPsQw.js.map +1 -0
  194. package/dist/TimeField.js +1 -1
  195. package/dist/TimezoneMessage-BrKB_psP.js.map +1 -1
  196. package/dist/Toast.js +2 -2
  197. package/dist/{Toaster-C-Z_FMbW.js → Toaster-CNtAl-tF.js} +6 -18
  198. package/dist/Toaster-CNtAl-tF.js.map +1 -0
  199. package/dist/{Toaster-nyQgF9Ki.js → Toaster-DYO8NLTo.js} +3 -6
  200. package/dist/Toaster-DYO8NLTo.js.map +1 -0
  201. package/dist/{Toolbar-BUbMtBVz.js → Toolbar-BIbbaCxh.js} +8 -77
  202. package/dist/Toolbar-BIbbaCxh.js.map +1 -0
  203. package/dist/{Toolbar-BxAFPvbn.js → Toolbar-B_lHD0c2.js} +5 -5
  204. package/dist/{Toolbar-BxAFPvbn.js.map → Toolbar-B_lHD0c2.js.map} +1 -1
  205. package/dist/Toolbar.js +2 -2
  206. package/dist/{ToolbarButtonToggle-NSJ2XfXT.js → ToolbarButtonToggle-BMBmBdw1.js} +2 -2
  207. package/dist/{ToolbarButtonToggle-NSJ2XfXT.js.map → ToolbarButtonToggle-BMBmBdw1.js.map} +1 -1
  208. package/dist/{Tooltip-B4MSqIpg.js → Tooltip-C_VcYS9P.js} +3 -37
  209. package/dist/Tooltip-C_VcYS9P.js.map +1 -0
  210. package/dist/Tooltip.js +1 -1
  211. package/dist/TreeSelectField.js +1 -1
  212. package/dist/{TreeSelectFieldSync-DpvwlM7B.js → TreeSelectFieldSync-CKnFwROC.js} +5 -5
  213. package/dist/{TreeSelectFieldSync-DpvwlM7B.js.map → TreeSelectFieldSync-CKnFwROC.js.map} +1 -1
  214. package/dist/TreeSelectMenu.js +1 -1
  215. package/dist/{TreeSelectMenuSync-BDitYX_k.js → TreeSelectMenuSync-CK-x2_ne.js} +3 -3
  216. package/dist/{TreeSelectMenuSync-BDitYX_k.js.map → TreeSelectMenuSync-CK-x2_ne.js.map} +1 -1
  217. package/dist/{TypeaheadTextField-Cj09sEji.js → TypeaheadTextField-DqnUGXj0.js} +3 -3
  218. package/dist/{TypeaheadTextField-Cj09sEji.js.map → TypeaheadTextField-DqnUGXj0.js.map} +1 -1
  219. package/dist/TypeaheadTextField.js +1 -1
  220. package/dist/{YearlessDateInputWithPicker-CoomgSEK.js → YearlessDateInputWithPicker-aI4UIyMD.js} +5 -7
  221. package/dist/YearlessDateInputWithPicker-aI4UIyMD.js.map +1 -0
  222. package/dist/assets/icons/st/gnav_analytics_active.svg +1 -0
  223. package/dist/assets/icons/st/gnav_analytics_inactive.svg +1 -0
  224. package/dist/assets/icons/st.ts +3 -1
  225. package/dist/beta.js +17 -17
  226. package/dist/{bulkActionTypes-DAo3_ECS.js → bulkActionTypes-sbwWLsDi.js} +2 -2
  227. package/dist/{bulkActionTypes-DAo3_ECS.js.map → bulkActionTypes-sbwWLsDi.js.map} +1 -1
  228. package/dist/{filter-state-CZcczj37.js → filter-state-DW8YmRHb.js} +20 -20
  229. package/dist/{filter-state-CZcczj37.js.map → filter-state-DW8YmRHb.js.map} +1 -1
  230. package/dist/{index-BwV_Pz7v.js → index-Bldaza5t.js} +5 -1
  231. package/dist/index-Bldaza5t.js.map +1 -0
  232. package/dist/{index-BFxzUzoz.js → index-Cw2HFh0a.js} +2 -2
  233. package/dist/{index-BFxzUzoz.js.map → index-Cw2HFh0a.js.map} +1 -1
  234. package/dist/index.js +61 -171
  235. package/dist/index.js.map +1 -1
  236. package/dist/{makeZeroShortcutPreprocessor-CxsiGTRW.js → makeZeroShortcutPreprocessor-D5KWcgUA.js} +2 -4
  237. package/dist/makeZeroShortcutPreprocessor-D5KWcgUA.js.map +1 -0
  238. package/dist/src/beta/components/Page/Page.d.ts +1 -1
  239. package/dist/src/beta/components/Page/PageHeader.d.ts +7 -3
  240. package/dist/src/components/AiMark/AiMark.d.ts +9 -69
  241. package/dist/src/components/AiMark/internal/AiMarkIconAnimated.d.ts +2 -20
  242. package/dist/src/components/AiMark/internal/AiMarkInteractive.d.ts +4 -0
  243. package/dist/src/components/Alert/Alert.d.ts +10 -54
  244. package/dist/src/components/Announcement/Announcement.d.ts +7 -49
  245. package/dist/src/components/Avatar/Avatar.d.ts +5 -41
  246. package/dist/src/components/Avatar/AvatarGroup.d.ts +4 -25
  247. package/dist/src/components/Avatar/internal/Avatar.d.ts +1 -44
  248. package/dist/src/components/Avatar/internal/AvatarBase.d.ts +13 -53
  249. package/dist/src/components/Badge/Badge.d.ts +9 -42
  250. package/dist/src/components/Breadcrumbs/Breadcrumbs.d.ts +6 -33
  251. package/dist/src/components/Breadcrumbs/BreadcrumbsLink.d.ts +1 -15
  252. package/dist/src/components/Button/Button.d.ts +19 -41
  253. package/dist/src/components/Button/internal/buttonAiMarkUtils.d.ts +2 -5
  254. package/dist/src/components/ButtonCompound/ButtonCompound.d.ts +5 -28
  255. package/dist/src/components/ButtonLink/ButtonLink.d.ts +23 -59
  256. package/dist/src/components/ButtonToggle/ButtonToggle.d.ts +14 -51
  257. package/dist/src/components/Calendar/Calendar.d.ts +43 -239
  258. package/dist/src/components/Calendar/CalendarContext.d.ts +32 -102
  259. package/dist/src/components/Calendar/CalendarMonth.d.ts +1 -6
  260. package/dist/src/components/Calendar/CalendarMonthButton.d.ts +2 -11
  261. package/dist/src/components/Calendar/CalendarNextButton.d.ts +1 -8
  262. package/dist/src/components/Calendar/CalendarNowButton.d.ts +5 -12
  263. package/dist/src/components/Calendar/CalendarPrevButton.d.ts +1 -8
  264. package/dist/src/components/Calendar/CalendarYearButton.d.ts +2 -10
  265. package/dist/src/components/Calendar/internal/CalendarDay.d.ts +3 -13
  266. package/dist/src/components/Calendar/internal/CalendarMonthSelection.d.ts +3 -17
  267. package/dist/src/components/Calendar/internal/CalendarWeek.d.ts +5 -18
  268. package/dist/src/components/Calendar/internal/utils.d.ts +1 -0
  269. package/dist/src/components/Card/Card.d.ts +9 -33
  270. package/dist/src/components/Checkbox/Checkbox.d.ts +3 -50
  271. package/dist/src/components/Checkbox/CheckboxGroup.d.ts +21 -65
  272. package/dist/src/components/Checkbox/internal/Checkbox.d.ts +32 -90
  273. package/dist/src/components/Checkbox/internal/CheckboxGroupContext.d.ts +2 -14
  274. package/dist/src/components/Checkbox/types.d.ts +2 -0
  275. package/dist/src/components/Chip/Chip.d.ts +5 -41
  276. package/dist/src/components/Chip/internal/Chip.d.ts +13 -84
  277. package/dist/src/components/DateFieldRange/DateFieldRange.d.ts +27 -44
  278. package/dist/src/components/DateFieldRange/internal/DateFieldRangeCalendar.d.ts +7 -0
  279. package/dist/src/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +18 -11
  280. package/dist/src/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.d.ts +2 -0
  281. package/dist/src/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -7
  282. package/dist/src/components/DateFieldRange/internal/useDateFieldRangeState.d.ts +11 -33
  283. package/dist/src/components/DateFieldRange/internal/utils.d.ts +4 -0
  284. package/dist/src/components/DateFieldRange/parts.d.ts +2 -7
  285. package/dist/src/components/DateFieldSingle/DateFieldSingle.d.ts +24 -46
  286. package/dist/src/components/DateFieldSingle/internal/DateFieldSingleCalendar.d.ts +4 -0
  287. package/dist/src/components/DateFieldSingle/internal/MaskedDateInput.d.ts +15 -8
  288. package/dist/src/components/DateFieldSingle/internal/TimezoneMessage.d.ts +2 -0
  289. package/dist/src/components/DateFieldSingle/internal/maskito/datePlaceholderMask.d.ts +1 -0
  290. package/dist/src/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.d.ts +3 -5
  291. package/dist/src/components/DateFieldSingle/internal/useDateFieldSingleConversion.d.ts +3 -29
  292. package/dist/src/components/DateFieldSingle/internal/useDateFieldSingleState.d.ts +13 -22
  293. package/dist/src/components/DateFieldSingle/internal/utils.d.ts +6 -16
  294. package/dist/src/components/DateFieldSingle/parts.d.ts +2 -7
  295. package/dist/src/components/DateFieldSingle/types.d.ts +1 -0
  296. package/dist/src/components/DateFieldYearless/DateFieldYearless.d.ts +31 -96
  297. package/dist/src/components/DateFieldYearless/internal/PickerList.d.ts +12 -40
  298. package/dist/src/components/DateFieldYearless/internal/PickerListOption.d.ts +5 -22
  299. package/dist/src/components/DateFieldYearless/internal/YearlessDateInput.d.ts +23 -8
  300. package/dist/src/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +31 -90
  301. package/dist/src/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +6 -8
  302. package/dist/src/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +1 -0
  303. package/dist/src/components/DateFieldYearless/internal/maskito/yearlessDateSegmentsStepping.d.ts +3 -5
  304. package/dist/src/components/DateFieldYearless/internal/utils.d.ts +7 -36
  305. package/dist/src/components/DateFieldYearless/parts.d.ts +2 -4
  306. package/dist/src/components/DateFieldYearless/types.d.ts +3 -0
  307. package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +32 -48
  308. package/dist/src/components/DateFieldYearlessRange/parts.d.ts +2 -4
  309. package/dist/src/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +32 -93
  310. package/dist/src/components/Details/Details.d.ts +10 -38
  311. package/dist/src/components/Details/DetailsContent.d.ts +6 -30
  312. package/dist/src/components/Details/DetailsSummary.d.ts +2 -18
  313. package/dist/src/components/Details/internal/DetailsArrow.d.ts +1 -17
  314. package/dist/src/components/Dialog/Dialog.d.ts +41 -218
  315. package/dist/src/components/Dialog/DialogCancelButton.d.ts +2 -17
  316. package/dist/src/components/Dialog/DialogContent.d.ts +4 -35
  317. package/dist/src/components/Dialog/DialogFooter.d.ts +4 -26
  318. package/dist/src/components/Dialog/DialogHeader.d.ts +2 -17
  319. package/dist/src/components/Dialog/internal/DialogContext.d.ts +0 -3
  320. package/dist/src/components/Dialog/internal/useInitialFocus.d.ts +3 -14
  321. package/dist/src/components/Divider/Divider.d.ts +8 -44
  322. package/dist/src/components/Dnd/DndHandle.d.ts +1 -18
  323. package/dist/src/components/Dnd/DndHandleButton.d.ts +2 -26
  324. package/dist/src/components/Dnd/DndSortLine.d.ts +4 -31
  325. package/dist/src/components/Dnd/DndZone.d.ts +6 -43
  326. package/dist/src/components/Dnd/index.d.ts +8 -0
  327. package/dist/src/components/DndSort/DndSort.d.ts +2 -34
  328. package/dist/src/components/DndSort/DndSortCard.d.ts +7 -51
  329. package/dist/src/components/DndSort/DndSortZone.d.ts +17 -99
  330. package/dist/src/components/DndSort/index.d.ts +6 -0
  331. package/dist/src/components/DndSort/internal/DndSortContextProvider.d.ts +1 -3
  332. package/dist/src/components/DndSort/internal/DndSortItem.d.ts +0 -11
  333. package/dist/src/components/DndSort/internal/DndSortOverlay.d.ts +0 -4
  334. package/dist/src/components/DndSort/internal/DndSortZoneContextProvider.d.ts +1 -9
  335. package/dist/src/components/DndSort/internal/test-utils.d.ts +2 -9
  336. package/dist/src/components/DndSort/internal/utils.d.ts +6 -32
  337. package/dist/src/components/DndSort/types.d.ts +14 -35
  338. package/dist/src/components/Drawer/Drawer.d.ts +25 -151
  339. package/dist/src/components/Drawer/DrawerCancelButton.d.ts +2 -21
  340. package/dist/src/components/Drawer/DrawerContent.d.ts +4 -38
  341. package/dist/src/components/Drawer/DrawerFooter.d.ts +4 -30
  342. package/dist/src/components/Drawer/DrawerHeader.d.ts +9 -41
  343. package/dist/src/components/Drawer/index.d.ts +1 -1
  344. package/dist/src/components/Drawer/internal/DrawerContext.d.ts +0 -15
  345. package/dist/src/components/Drawer/internal/useDrawerContext.d.ts +1 -6
  346. package/dist/src/components/DrillDown/DrillDown.d.ts +20 -48
  347. package/dist/src/components/DrillDown/DrillDownContent.d.ts +1 -21
  348. package/dist/src/components/DrillDown/DrillDownFooter.d.ts +1 -25
  349. package/dist/src/components/DrillDown/DrillDownHeader.d.ts +3 -25
  350. package/dist/src/components/DrillDown/DrillDownNextButton.d.ts +2 -22
  351. package/dist/src/components/DrillDown/DrillDownPrevButton.d.ts +2 -22
  352. package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +3 -0
  353. package/dist/src/components/DrillDown/internal/useDrillDownContext.d.ts +1 -0
  354. package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +4 -0
  355. package/dist/src/components/DrillDown/useDrilldown.d.ts +4 -23
  356. package/dist/src/components/EditCard/EditCard.d.ts +21 -77
  357. package/dist/src/components/FieldLabel/FieldLabel.d.ts +13 -46
  358. package/dist/src/components/FieldLabel/internal/FieldLabelButton.d.ts +1 -20
  359. package/dist/src/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +2 -5
  360. package/dist/src/components/FieldMessage/FieldMessage.d.ts +18 -56
  361. package/dist/src/components/FieldMessage/utils.d.ts +2 -3
  362. package/dist/src/components/Flex/Flex.d.ts +12 -63
  363. package/dist/src/components/Flex/internal/FlexSpecificProps.d.ts +6 -22
  364. package/dist/src/components/Grid/Grid.d.ts +15 -92
  365. package/dist/src/components/Grid/internal/GridItem.d.ts +0 -23
  366. package/dist/src/components/Grid/internal/GridSpecificProps.d.ts +5 -19
  367. package/dist/src/components/Icon/Icon.d.ts +10 -58
  368. package/dist/src/components/Layout/Layout.d.ts +75 -127
  369. package/dist/src/components/Link/Link.d.ts +12 -38
  370. package/dist/src/components/Link/internal/Link.d.ts +7 -52
  371. package/dist/src/components/Link/internal/LinkHeadless.d.ts +3 -19
  372. package/dist/src/components/Link/useLinkStyles.d.ts +3 -8
  373. package/dist/src/components/LinkButton/LinkButton.d.ts +9 -28
  374. package/dist/src/components/List/List.d.ts +10 -48
  375. package/dist/src/components/List/ListItem.d.ts +1 -4
  376. package/dist/src/components/ListView/ListView.d.ts +4 -46
  377. package/dist/src/components/ListView/ListViewOption.d.ts +9 -20
  378. package/dist/src/components/ListView/ListViewOptionCell.d.ts +1 -11
  379. package/dist/src/components/ListView/internal/ListViewContext.d.ts +2 -13
  380. package/dist/src/components/ListView/internal/types.d.ts +17 -35
  381. package/dist/src/components/Listbox/Listbox.d.ts +32 -99
  382. package/dist/src/components/Listbox/ListboxOption.d.ts +7 -28
  383. package/dist/src/components/Listbox/ListboxOptionGroup.d.ts +6 -23
  384. package/dist/src/components/Listbox/internal/ListboxContext.d.ts +2 -20
  385. package/dist/src/components/Menu/Menu.d.ts +8 -48
  386. package/dist/src/components/Menu/MenuItem.d.ts +8 -41
  387. package/dist/src/components/Menu/internal/MenuContext.d.ts +0 -9
  388. package/dist/src/components/Menu/internal/MenuNested.d.ts +2 -35
  389. package/dist/src/components/Menu/internal/menuSelectors.d.ts +0 -3
  390. package/dist/src/components/Menu/types.d.ts +32 -40
  391. package/dist/src/components/MultiSelectField/MultiSelectField.d.ts +1 -19
  392. package/dist/src/components/MultiSelectField/MultiSelectFieldSync.d.ts +10 -65
  393. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -3
  394. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +1 -49
  395. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -4
  396. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +1 -4
  397. package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -2
  398. package/dist/src/components/MultiSelectField/internal/useChipLayout.d.ts +1 -7
  399. package/dist/src/components/MultiSelectField/internal/useComboMultiple.d.ts +3 -20
  400. package/dist/src/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +1 -6
  401. package/dist/src/components/MultiSelectField/parts.d.ts +0 -12
  402. package/dist/src/components/MultiSelectField/types.d.ts +97 -215
  403. package/dist/src/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -30
  404. package/dist/src/components/MultiSelectMenu/MultiSelectMenuSync.d.ts +10 -34
  405. package/dist/src/components/MultiSelectMenu/types.d.ts +75 -98
  406. package/dist/src/components/NumberField/NumberField.d.ts +76 -40
  407. package/dist/src/components/Overflow/Overflow.d.ts +17 -61
  408. package/dist/src/components/Overflow/OverflowText.d.ts +10 -60
  409. package/dist/src/components/Overflow/index.d.ts +4 -21
  410. package/dist/src/components/Page/Page.d.ts +8 -156
  411. package/dist/src/components/Page/PageContent.d.ts +4 -19
  412. package/dist/src/components/Page/PageContext.d.ts +9 -0
  413. package/dist/src/components/Page/PageFooter.d.ts +2 -15
  414. package/dist/src/components/Page/PageHeader.d.ts +40 -87
  415. package/dist/src/components/Page/PagePanel.d.ts +13 -52
  416. package/dist/src/components/Page/PageSidebar.d.ts +8 -41
  417. package/dist/src/components/Page/PageSidebarHeader.d.ts +2 -20
  418. package/dist/src/components/Page/pageBreakpoint.d.ts +6 -19
  419. package/dist/src/components/Pagination/Pagination.d.ts +44 -31
  420. package/dist/src/components/Pagination/internal/Pagination.d.ts +6 -23
  421. package/dist/src/components/Pagination/internal/PaginationItem.d.ts +5 -38
  422. package/dist/src/components/Pagination/internal/PaginationItemsPerPageMenu.d.ts +5 -35
  423. package/dist/src/components/Pagination/internal/PaginationOverflowMenu.d.ts +12 -52
  424. package/dist/src/components/Pagination/internal/usePaginationArray.d.ts +4 -19
  425. package/dist/src/components/Pagination/parts.d.ts +3 -14
  426. package/dist/src/components/Popover/Popover.d.ts +55 -296
  427. package/dist/src/components/Popover/PopoverButton.d.ts +2 -29
  428. package/dist/src/components/Popover/PopoverClose.d.ts +2 -28
  429. package/dist/src/components/Popover/PopoverContent.d.ts +8 -38
  430. package/dist/src/components/Popover/PopoverTrigger.d.ts +6 -32
  431. package/dist/src/components/Popover/internal/compareElements.d.ts +1 -0
  432. package/dist/src/components/Popover/internal/usePopoverContext.d.ts +1 -0
  433. package/dist/src/components/ProgressBar/ProgressBar.d.ts +17 -69
  434. package/dist/src/components/Radio/Radio.d.ts +3 -82
  435. package/dist/src/components/Radio/RadioGroup.d.ts +21 -73
  436. package/dist/src/components/Radio/internal/Radio.d.ts +22 -117
  437. package/dist/src/components/Radio/internal/RadioGroupContext.d.ts +2 -14
  438. package/dist/src/components/Radio/types.d.ts +2 -9
  439. package/dist/src/components/SearchField/SearchField.d.ts +5 -43
  440. package/dist/src/components/SearchField/internal/SearchField.d.ts +6 -53
  441. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +12 -82
  442. package/dist/src/components/SegmentedControl/SegmentedControlSegment.d.ts +12 -43
  443. package/dist/src/components/SegmentedControl/internal/SegmentedControlContext.d.ts +0 -15
  444. package/dist/src/components/SelectCard/SelectCard.d.ts +13 -78
  445. package/dist/src/components/SelectCard/SelectCardGroup.d.ts +13 -47
  446. package/dist/src/components/SelectCard/internal/SelectCardContext.d.ts +14 -51
  447. package/dist/src/components/SelectCard/internal/SelectCardProvider.d.ts +3 -29
  448. package/dist/src/components/SelectField/SelectField.d.ts +1 -21
  449. package/dist/src/components/SelectField/SelectFieldSync.d.ts +6 -44
  450. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -4
  451. package/dist/src/components/SelectField/internal/SelectFieldInput.d.ts +1 -41
  452. package/dist/src/components/SelectField/internal/SelectFieldLabel.d.ts +3 -30
  453. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -4
  454. package/dist/src/components/SelectField/internal/SelectFieldTrigger.d.ts +2 -5
  455. package/dist/src/components/SelectField/internal/useCombo.d.ts +1 -3
  456. package/dist/src/components/SelectField/internal/useSelectMode.d.ts +1 -4
  457. package/dist/src/components/SelectField/types.d.ts +95 -171
  458. package/dist/src/components/SelectMenu/SelectMenu.d.ts +1 -26
  459. package/dist/src/components/SelectMenu/SelectMenuSync.d.ts +6 -30
  460. package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +2 -0
  461. package/dist/src/components/SelectMenu/types.d.ts +65 -64
  462. package/dist/src/components/SelectTrigger/SelectTrigger.d.ts +19 -11
  463. package/dist/src/components/SelectTrigger/internal/SelectTriggerBase.d.ts +18 -2
  464. package/dist/src/components/SideNav/SideNav.d.ts +10 -77
  465. package/dist/src/components/SideNav/SideNavCollapsible.d.ts +14 -49
  466. package/dist/src/components/SideNav/SideNavContext.d.ts +0 -18
  467. package/dist/src/components/SideNav/SideNavGroup.d.ts +2 -27
  468. package/dist/src/components/SideNav/SideNavLink.d.ts +8 -35
  469. package/dist/src/components/SideNav/internal/SideNavContext.d.ts +1 -13
  470. package/dist/src/components/SideNav/internal/SideNavLink.d.ts +14 -50
  471. package/dist/src/components/SideNav/internal/SideNavProvider.d.ts +1 -17
  472. package/dist/src/components/SideNav/internal/utils.d.ts +1 -13
  473. package/dist/src/components/SideNav/useSideNav.d.ts +2 -3
  474. package/dist/src/components/Skeleton/SkeletonCircle.d.ts +5 -39
  475. package/dist/src/components/Skeleton/SkeletonPill.d.ts +5 -39
  476. package/dist/src/components/Skeleton/SkeletonRectangle.d.ts +5 -40
  477. package/dist/src/components/Skeleton/SkeletonText.d.ts +6 -43
  478. package/dist/src/components/Skeleton/index.d.ts +5 -0
  479. package/dist/src/components/Spinner/Spinner.d.ts +5 -34
  480. package/dist/src/components/SrOnly/SrOnly.d.ts +2 -13
  481. package/dist/src/components/Stepper/Stepper.d.ts +34 -210
  482. package/dist/src/components/Stepper/StepperFinalPanel.d.ts +2 -23
  483. package/dist/src/components/Stepper/StepperList.d.ts +1 -22
  484. package/dist/src/components/Stepper/StepperNextButton.d.ts +12 -52
  485. package/dist/src/components/Stepper/StepperPanel.d.ts +6 -37
  486. package/dist/src/components/Stepper/StepperPrevButton.d.ts +6 -32
  487. package/dist/src/components/Stepper/StepperStep.d.ts +8 -43
  488. package/dist/src/components/Stepper/base/StepperBase.d.ts +18 -67
  489. package/dist/src/components/Stepper/base/StepperBaseList.d.ts +1 -15
  490. package/dist/src/components/Stepper/base/StepperBasePanel.d.ts +6 -23
  491. package/dist/src/components/Stepper/base/StepperBaseStep.d.ts +14 -37
  492. package/dist/src/components/Stepper/internal/StepperWizardBootstrap.d.ts +4 -0
  493. package/dist/src/components/Stepper/internal/countRegisteredSteps.d.ts +1 -0
  494. package/dist/src/components/Switch/Switch.d.ts +14 -61
  495. package/dist/src/components/Tab/Tab.d.ts +14 -115
  496. package/dist/src/components/Tab/TabButton.d.ts +7 -39
  497. package/dist/src/components/Tab/TabList.d.ts +1 -20
  498. package/dist/src/components/Tab/TabPanel.d.ts +3 -24
  499. package/dist/src/components/Text/Text.d.ts +3 -32
  500. package/dist/src/components/Text/types.d.ts +13 -69
  501. package/dist/src/components/TextField/TextField.d.ts +6 -14
  502. package/dist/src/components/TextField/internal/TextField.d.ts +21 -11
  503. package/dist/src/components/Textarea/Textarea.d.ts +18 -57
  504. package/dist/src/components/Textarea/types.d.ts +7 -20
  505. package/dist/src/components/TimeField/TimeField.d.ts +14 -65
  506. package/dist/src/components/TimeField/internal/MaskedTimeInput.d.ts +10 -64
  507. package/dist/src/components/TimeField/internal/constants.d.ts +2 -12
  508. package/dist/src/components/TimeField/internal/maskito/timePlaceholderMask.d.ts +1 -13
  509. package/dist/src/components/TimeField/internal/types.d.ts +9 -14
  510. package/dist/src/components/TimeField/internal/utils/timeFormatting.d.ts +1 -8
  511. package/dist/src/components/TimeField/internal/utils/timeOptions.d.ts +2 -16
  512. package/dist/src/components/TimeField/internal/utils/timeParsing.d.ts +3 -29
  513. package/dist/src/components/TimeField/internal/utils/timeRounding.d.ts +5 -47
  514. package/dist/src/components/TimeField/internal/utils/timeValidation.d.ts +4 -22
  515. package/dist/src/components/Toast/Toaster.d.ts +2 -40
  516. package/dist/src/components/Toast/internal/Toast.d.ts +14 -75
  517. package/dist/src/components/Toast/internal/ToastProvider.d.ts +2 -64
  518. package/dist/src/components/Toast/internal/ToastStack.d.ts +13 -59
  519. package/dist/src/components/Toast/internal/Toaster.d.ts +18 -61
  520. package/dist/src/components/Toast/internal/ToasterPopover.d.ts +1 -16
  521. package/dist/src/components/Toast/internal/addOrUpdateToastHeight.d.ts +1 -6
  522. package/dist/src/components/Toast/internal/constants.d.ts +0 -15
  523. package/dist/src/components/Toast/internal/types.d.ts +1 -0
  524. package/dist/src/components/Toast/internal/useCloseToast.d.ts +1 -5
  525. package/dist/src/components/Toast/internal/useHotkeyFocus.d.ts +2 -10
  526. package/dist/src/components/Toast/internal/useShowMoreButtonPositionStyles.d.ts +1 -4
  527. package/dist/src/components/Toast/internal/useToastPositionStyles.d.ts +1 -5
  528. package/dist/src/components/Toast/internal/useToasts.d.ts +1 -5
  529. package/dist/src/components/Toast/toast.d.ts +14 -63
  530. package/dist/src/components/Toolbar/Toolbar.d.ts +16 -138
  531. package/dist/src/components/Toolbar/ToolbarButton.d.ts +4 -29
  532. package/dist/src/components/Toolbar/ToolbarButtonLink.d.ts +3 -28
  533. package/dist/src/components/Toolbar/ToolbarButtonToggle.d.ts +2 -24
  534. package/dist/src/components/Toolbar/ToolbarSelect.d.ts +12 -65
  535. package/dist/src/components/Toolbar/internal/ToolbarContext.d.ts +0 -31
  536. package/dist/src/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
  537. package/dist/src/components/Toolbar/internal/ToolbarItemWrapper.d.ts +1 -24
  538. package/dist/src/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +1 -23
  539. package/dist/src/components/Toolbar/internal/utils/accessibility.d.ts +4 -15
  540. package/dist/src/components/Toolbar/types.d.ts +7 -21
  541. package/dist/src/components/Tooltip/Tooltip.d.ts +17 -96
  542. package/dist/src/components/Tooltip/TooltipContent.d.ts +1 -23
  543. package/dist/src/components/Tooltip/TooltipTrigger.d.ts +3 -22
  544. package/dist/src/components/Tooltip/internal/TooltipContext.d.ts +0 -66
  545. package/dist/src/components/Tooltip/internal/useTooltipContext.d.ts +1 -14
  546. package/dist/{stripInlineMarkdown-CosQSmBr.js → stripInlineMarkdown-DmU2adBb.js} +2 -2
  547. package/dist/{stripInlineMarkdown-CosQSmBr.js.map → stripInlineMarkdown-DmU2adBb.js.map} +1 -1
  548. package/dist/{syncFilterUtils-_uwyt6FD.js → syncFilterUtils-CP4dhWVs.js} +3 -3
  549. package/dist/{syncFilterUtils-_uwyt6FD.js.map → syncFilterUtils-CP4dhWVs.js.map} +1 -1
  550. package/dist/token/core/component-variables.scss +145 -67
  551. package/dist/token/core/component.d.ts +39 -0
  552. package/dist/token/core/component.js +574 -67
  553. package/dist/token/core/component.scss +96 -57
  554. package/dist/token.js +613 -67
  555. package/dist/token.js.map +1 -1
  556. package/dist/{treeSync-Bp80Xduj.js → treeSync-CDrgjuw8.js} +3 -3
  557. package/dist/{treeSync-Bp80Xduj.js.map → treeSync-CDrgjuw8.js.map} +1 -1
  558. package/dist/useChipLayout-BBe6Tzyl.js.map +1 -1
  559. package/dist/useDrillDownContext-D5_NjqY4.js.map +1 -1
  560. package/dist/{useDrilldown-D5XGfAUT.js → useDrilldown-DV4qyVOI.js} +8 -3
  561. package/dist/{useDrilldown-D5XGfAUT.js.map → useDrilldown-DV4qyVOI.js.map} +1 -1
  562. package/dist/{useInfiniteCombobox-ORhH44Rp.js → useInfiniteCombobox-DvyQpdwv.js} +5 -5
  563. package/dist/{useInfiniteCombobox-ORhH44Rp.js.map → useInfiniteCombobox-DvyQpdwv.js.map} +1 -1
  564. package/dist/{useInitialFocus-CGybEc6x.js → useInitialFocus-0TZ78bPz.js} +2 -2
  565. package/dist/useInitialFocus-0TZ78bPz.js.map +1 -0
  566. package/dist/{useInvalidateOnOptionsChange-ieSgbkwT.js → useInvalidateOnOptionsChange-D3KWg4qK.js} +5 -5
  567. package/dist/{useInvalidateOnOptionsChange-ieSgbkwT.js.map → useInvalidateOnOptionsChange-D3KWg4qK.js.map} +1 -1
  568. package/dist/useMenuInteraction-nNF1dsrp.js.map +1 -1
  569. package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
  570. package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
  571. package/dist/utils-CM48ODEJ.js.map +1 -1
  572. package/package.json +2 -2
  573. package/dist/AiMark-CWufA6pV.js.map +0 -1
  574. package/dist/Alert-RkvFtmRP.js.map +0 -1
  575. package/dist/Avatar-DZxHhMTP.js.map +0 -1
  576. package/dist/Avatar-DkWoRhJu.js +0 -35
  577. package/dist/Avatar-DkWoRhJu.js.map +0 -1
  578. package/dist/Breadcrumbs-DbOrdao2.js.map +0 -1
  579. package/dist/Calendar-CK-AAaSG.js.map +0 -1
  580. package/dist/Checkbox-CboZhOtU.js.map +0 -1
  581. package/dist/Checkbox-Cn4iNLW_.js.map +0 -1
  582. package/dist/Chip-UbrxYEqs.js.map +0 -1
  583. package/dist/DateFieldRange-CpTxlASD.js.map +0 -1
  584. package/dist/DateFieldSingle-DR2kfrzh.js.map +0 -1
  585. package/dist/DateFieldYearless-4mS_2Mgw.js.map +0 -1
  586. package/dist/DateFieldYearlessRange-C-yvKBkJ.js.map +0 -1
  587. package/dist/DaysOfTheWeek-Bo4w8SsT.js.map +0 -1
  588. package/dist/Details-CVA5zbrR.js.map +0 -1
  589. package/dist/Dialog-Ds25dKQp.js.map +0 -1
  590. package/dist/Drawer-Da-bj_6o.js.map +0 -1
  591. package/dist/EditCard-CocV93gS.js.map +0 -1
  592. package/dist/FieldLabel-6aFKQfyD.js.map +0 -1
  593. package/dist/Grid-CvGQrIhE.js.map +0 -1
  594. package/dist/Layout-C2Q2hyLG.js.map +0 -1
  595. package/dist/List-BvzfZ9TW.js.map +0 -1
  596. package/dist/ListView-DFAWrwzi.js.map +0 -1
  597. package/dist/Listbox-BErqErNN.js.map +0 -1
  598. package/dist/Menu-BjPE_ODh.js.map +0 -1
  599. package/dist/MultiSelectFieldSync-CqWUidCm.js.map +0 -1
  600. package/dist/MultiSelectMenuSync-DG3rKyQc.js.map +0 -1
  601. package/dist/NumberField-DRYYJHec.js.map +0 -1
  602. package/dist/Page-BmpojvuI.js.map +0 -1
  603. package/dist/Pagination-Bc4fhdNm.js.map +0 -1
  604. package/dist/Popover-BgVOsP4J.js.map +0 -1
  605. package/dist/ProgressBar-Chb0uKfL.js.map +0 -1
  606. package/dist/Radio-DcNlFfSu.js.map +0 -1
  607. package/dist/Radio-gpMEsFss.js +0 -60
  608. package/dist/Radio-gpMEsFss.js.map +0 -1
  609. package/dist/SegmentedControl-CQ6DrbDc.js.map +0 -1
  610. package/dist/SelectCard-bp5hRyHK.js.map +0 -1
  611. package/dist/SelectFieldLabel-DZqxaZsp.js.map +0 -1
  612. package/dist/SelectFieldSync-Wkx6DGpg.js.map +0 -1
  613. package/dist/SelectMenuSync-O55TODxn.js.map +0 -1
  614. package/dist/SelectTrigger-BfJ7DWYq.js.map +0 -1
  615. package/dist/SelectTriggerBase-DvsI-kSG.js.map +0 -1
  616. package/dist/SideNav-BLXgM918.js.map +0 -1
  617. package/dist/Stepper-CCKHWlUr.js.map +0 -1
  618. package/dist/Switch-CrDmBj4D.js.map +0 -1
  619. package/dist/Tab-Bqfvg8Ce.js.map +0 -1
  620. package/dist/Text-CZccJAnm.js.map +0 -1
  621. package/dist/TextField-D0f9LwgQ.js.map +0 -1
  622. package/dist/TextField-DX5qyWPo.js.map +0 -1
  623. package/dist/Textarea-CdTcekFd.js.map +0 -1
  624. package/dist/TimeField-BxNglWQt.js.map +0 -1
  625. package/dist/Toaster-C-Z_FMbW.js.map +0 -1
  626. package/dist/Toaster-nyQgF9Ki.js.map +0 -1
  627. package/dist/Toolbar-BUbMtBVz.js.map +0 -1
  628. package/dist/Tooltip-B4MSqIpg.js.map +0 -1
  629. package/dist/YearlessDateInputWithPicker-CoomgSEK.js.map +0 -1
  630. package/dist/index-BwV_Pz7v.js.map +0 -1
  631. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +0 -1
  632. package/dist/useInitialFocus-CGybEc6x.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"Drawer-Da-bj_6o.js","sources":["../src/components/Drawer/internal/useDrawerContext.ts","../src/components/Drawer/DrawerCancelButton.tsx","../src/components/Drawer/DrawerHeader.tsx","../src/components/Drawer/DrawerFooter.tsx","../src/components/Drawer/DrawerContent.tsx","../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { DrawerContext } from \"./DrawerContext\";\n\n/**\n * Hook to access the drawer context.\n *\n * @returns The drawer context containing close function and ref\n * @throws Error if used outside of a DrawerContextProvider\n */\nexport function useDrawerContext() {\n const context = useContext(DrawerContext);\n if (!context) {\n throw new Error(\n \"useDrawerContext must be used within a DrawerContextProvider\",\n );\n }\n return context;\n}\n","import { type MouseEvent, forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../Button\";\nimport type { DataTrackingId } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/**\n * Props for the DrawerCancelButton component\n * @extends ButtonProps\n */\nexport type DrawerCancelButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * A button component that automatically closes the drawer when clicked.\n *\n * Features:\n * - Automatically closes the drawer when clicked\n * - Extends Button component functionality\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard button props\n * - Proper focus management\n * - Can be used anywhere within the drawer context\n *\n * @example\n * <DrawerCancelButton appearance=\"ghost\" size=\"small\">\n * Cancel\n * </DrawerCancelButton>\n */\nexport const DrawerCancelButton = forwardRef<\n HTMLButtonElement,\n DrawerCancelButtonProps\n>((props, ref) => {\n const { onClick, ...rest } = props;\n const { close } = useDrawerContext();\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DrawerCancelButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n close();\n };\n return (\n <Button\n aria-label=\"Close drawer\"\n data-anv=\"drawer-cancel-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n />\n );\n});\n\nDrawerCancelButton.displayName = \"DrawerCancelButton\";\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\nimport styles from \"./Drawer.module.scss\";\nimport { Text } from \"../Text\";\nimport { Menu } from \"../Menu\";\nimport { DrawerCancelButton } from \"./DrawerCancelButton\";\nimport cx from \"classnames\";\nimport type { DataTrackingId, Svg } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/**\n * Action item for the DrawerHeader overflow menu.\n */\nexport type DrawerHeaderAction = {\n /**\n * Visible text for the menu item.\n */\n label: string;\n /**\n * Callback invoked when the menu item is selected.\n */\n onClick: () => void;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Optional icon displayed before the label.\n */\n icon?: Svg;\n};\n\n/**\n * Props for the DrawerHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type DrawerHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId & {\n /**\n * Overflow menu items rendered left of the close button.\n */\n actions?: DrawerHeaderAction[];\n };\n\n/**\n * Header component for the drawer that displays a title and close button.\n *\n * Features:\n * - Displays the drawer title as a headline\n * - Includes an accessible close button\n * - Optional overflow menu for secondary header actions\n * - Sticky positioning at the top of the drawer\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Automatic close functionality\n *\n * @example\n * <Drawer.Header>Settings</Drawer.Header>\n */\nexport const DrawerHeader = forwardRef<HTMLElement, DrawerHeaderProps>(\n (props, ref) => {\n const { className, children, actions } = props;\n const { headerRef } = useDrawerContext();\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"DrawerHeader\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const drawerHeaderClasses = cx(styles.header, className);\n\n const closeButton = (\n <span className={styles[\"close-container\"]}>\n <DrawerCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close drawer\"\n data-anv=\"drawer-header-close-button\"\n icon={Close}\n />\n </span>\n );\n\n return (\n <header\n className={drawerHeaderClasses}\n data-anv=\"drawer-header\"\n data-tracking-id={trackingId}\n ref={useMergeRefs([ref, headerRef])}\n >\n <Text variant=\"headline\" el=\"h1\">\n {children}\n </Text>\n {actions?.length ? (\n <span className={styles[\"header-actions\"]}>\n <Menu\n icon={MoreVert}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"More actions\"\n data-anv=\"drawer-header-actions-button\"\n >\n {actions.map((action, index) => (\n <Menu.Item\n key={`${action.label}-${index}`}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n icon={action.icon}\n />\n ))}\n </Menu>\n {closeButton}\n </span>\n ) : (\n closeButton\n )}\n </header>\n );\n },\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport styles from \"./Drawer.module.scss\";\nimport cx from \"classnames\";\n\n/**\n * Props for the DrawerFooter component\n * @extends ComponentPropsWithoutRef<\"footer\">\n */\nexport type DrawerFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /**\n * When true, the footer will stick to the bottom of the drawer.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * Footer component for the drawer that displays action buttons and controls.\n *\n * Features:\n * - Flexible layout for action buttons and controls\n * - Optional sticky positioning at the bottom\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard footer element props\n * - Responsive design that adapts to content\n *\n * @example\n * <Drawer.Footer sticky>\n * <Button onClick={handleSave}>Save</Button>\n * <Button onClick={handleCancel}>Cancel</Button>\n * </Drawer.Footer>\n */\nexport const DrawerFooter = forwardRef<HTMLElement, DrawerFooterProps>(\n (props, ref) => {\n const { className, children, sticky = false, ...rest } = props;\n const drawerFooterClasses = cx(styles.footer, className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={drawerFooterClasses}\n data-anv=\"drawer-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useState,\n} from \"react\";\nimport styles from \"./Drawer.module.scss\";\nimport cx from \"classnames\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/**\n * Props for the DrawerContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DrawerContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * When true, the content will stick below the header during scroll.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * Content container for the drawer that holds the main content area.\n *\n * Features:\n * - Flexible content area with proper spacing\n * - Scrollable content when needed\n * - Optional sticky positioning below header\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard div element props\n * - Responsive design that adapts to content\n * - Proper focus management\n *\n * @example\n * // Basic content\n * <Drawer.Content>\n * <p>This is the main content of the drawer.</p>\n * </Drawer.Content>\n *\n * @example\n * // Sticky content (e.g., search field that remains visible while scrolling)\n * <Drawer.Content sticky>\n * <TextField placeholder=\"Filter results...\" />\n * </Drawer.Content>\n */\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n const { headerRef } = useDrawerContext();\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useEffect(() => {\n const headerElement = headerRef?.current;\n if (!sticky || !headerElement) return;\n\n const updateHeight = () => {\n setHeaderHeight(headerElement.offsetHeight || 0);\n };\n\n updateHeight();\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(headerElement);\n\n return () => resizeObserver.disconnect();\n }, [sticky, headerRef]);\n\n const contentClassNames = cx(styles[\"content\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n const stickyStyle = sticky ? { top: `${headerHeight}px` } : undefined;\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"drawer-content\"\n ref={ref}\n style={{ ...stickyStyle, ...rest.style }}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import styles from \"./Drawer.module.scss\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n useRef,\n useId,\n useCallback,\n useEffect,\n type SyntheticEvent,\n type KeyboardEvent,\n useMemo,\n useLayoutEffect,\n} from \"react\";\nimport { DrawerHeader } from \"./DrawerHeader\";\nimport { DrawerFooter } from \"./DrawerFooter\";\nimport { DrawerContent } from \"./DrawerContent\";\nimport { DrawerCancelButton } from \"./DrawerCancelButton\";\nimport {\n type OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n} from \"../../internal/hooks\";\nimport type {\n FocusableElement,\n DisableCloseOnEscapeOrClickProps,\n Size,\n} from \"../../types\";\nimport { registerLayer, unregisterLayer } from \"../../internal/utils\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\nimport { DrawerContext } from \"./internal/DrawerContext\";\nimport {\n DrillDownContext,\n type DrillDownContextProps,\n} from \"../DrillDown/internal/DrillDownContext\";\nimport { useDrillDownContextState } from \"../DrillDown/internal/useDrillDownContextState\";\nimport drillDownStyles from \"../DrillDown/DrillDown.module.scss\";\nimport { useInitialFocus } from \"../Dialog/internal/useInitialFocus\";\n\n/**\n * Props for the Drawer component\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends DialogTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DrawerProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /**\n * The size of the drawer.\n * @default \"medium\"\n */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\" | \"xlarge\">;\n /**\n * Controls whether the drawer is open or closed.\n * @default false\n */\n open?: boolean;\n /**\n * Callback function called after the drawer is animated closed.\n */\n onClose?: () => void;\n /**\n * Callback when clicking outside the drawer\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Enables scroll chaining behavior.\n * @link https://developer.mozilla.org/en-US/docs/Glossary/Scroll_chaining\n */\n enableScrollChaining?: boolean;\n /**\n * Given an array of focusable elements, return the initial focus target.\n * @param focusables - The focusable elements to pick from\n * @returns The initial focus target\n */\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /**\n * Sets the default DrillDown index when used in an uncontrolled way\n */\n defaultDrillDownIndex?: DrillDownContextProps[\"index\"];\n /**\n * Callback to pass context to useDrillDown hook\n */\n onDrillDownContextChange?: (context: DrillDownContextProps) => void;\n };\n\n/**\n * A slide-out drawer component that provides a modal-like experience from the side of the screen.\n *\n * Features:\n * - Slide-in animation from the side of the screen\n * - Keyboard navigation with focus trapping\n * - Escape key and click outside to close\n * - Configurable size variants (medium, large)\n * - Built-in toast support for notifications\n * - Automatic scroll locking when open\n * - Accessible with proper ARIA attributes\n * - Compound component structure with Header, Footer, Content, and CancelButton\n * - Transition state callbacks for animation control\n * - Optional scroll chaining support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Drawer open={isOpen} onClose={handleClose} size=\"medium\">\n * <Drawer.Header>Settings</Drawer.Header>\n * <Drawer.Content>Drawer content goes here</Drawer.Content>\n * <Drawer.Footer>\n * <Button onClick={handleSave}>Save</Button>\n * <Drawer.CancelButton>Cancel</Drawer.CancelButton>\n * </Drawer.Footer>\n * </Drawer>\n */\nexport const Drawer = Object.assign(\n forwardRef<HTMLDialogElement, DrawerProps>(function DrawerInner(props, ref) {\n const {\n className,\n open = false,\n children,\n onClose,\n // onCancel is destructured so that it is not passed to the dialog in ...rest\n onCancel,\n onKeyDown,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size = \"medium\",\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n initialFocusResolver,\n defaultDrillDownIndex,\n onDrillDownContextChange,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const drillDownContextValue = useDrillDownContextState({\n defaultDrillDownIndex,\n });\n\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n const previousOpenRef = useRef(open);\n\n useLayoutEffect(() => {\n if (open && !previousOpenRef.current) {\n drillDownContextValue.setHostTrigger?.(\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null,\n );\n }\n }, [open, drillDownContextValue]);\n\n useEffect(() => {\n previousOpenRef.current = open;\n }, [open]);\n\n useEffect(() => {\n if (state === \"closing\") {\n drillDownContextValue.onHostClose?.();\n }\n }, [state, drillDownContextValue]);\n\n useEffect(() => {\n if (state === \"closed\") {\n drillDownContextValue.onHostClosed?.();\n }\n }, [state, drillDownContextValue]);\n\n const drillDownContextProviderValue = useMemo(\n () => ({\n ...drillDownContextValue,\n hostIsInteractive: state !== \"closing\" && state !== \"closed\",\n }),\n [drillDownContextValue, state],\n );\n\n useLayoutEffect(() => {\n onDrillDownContextChange?.(drillDownContextProviderValue);\n }, [drillDownContextProviderValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const classNames = cx([styles.drawer, drillDownStyles.drawer], className, {\n [styles.remove]: state === \"closing\",\n [styles[size]]: size !== \"medium\",\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: false,\n });\n const firstFocusable = focusables?.[0];\n const lastFocusable = focusables?.[focusables.length - 1];\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n // Register/unregister with layer manager for proper stacking\n useEffect(() => {\n if (open) {\n registerLayer(id);\n } else {\n unregisterLayer(id);\n }\n\n // Cleanup when component unmounts\n return () => {\n unregisterLayer(id);\n };\n }, [open, id]);\n\n const computeFocus = useCallback((focusables: FocusableElement[]) => {\n const isHeaderChrome = (el: FocusableElement) =>\n el.dataset.anv === \"drawer-header-close-button\" ||\n el.dataset.anv === \"drawer-header-actions-button\";\n\n return (\n focusables.find((focusable) => !isHeaderChrome(focusable)) ||\n focusables.find(\n (focusable) => focusable.dataset.anv === \"drawer-header-close-button\",\n ) ||\n focusables[0]\n );\n }, []);\n\n useInitialFocus(elRef, {\n computeFocus: initialFocusResolver || computeFocus,\n });\n\n const onCancelHandler = (e: SyntheticEvent<HTMLDialogElement>) => {\n e.preventDefault();\n\n if (disableCloseOnEscape) return;\n onClose?.();\n };\n\n useOnClickOutside({\n onClickOutsideBegin: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClickOutside: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n layerId: id,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === firstFocusable) {\n e.preventDefault();\n (lastFocusable as HTMLElement)?.focus();\n return;\n }\n if (e.target === lastFocusable && !e.shiftKey) {\n e.preventDefault();\n (firstFocusable as HTMLElement)?.focus();\n return;\n }\n }\n };\n\n const contextValue = useMemo(() => {\n return { close: () => onClose?.(), headerRef, state };\n }, [onClose, state]);\n\n return (\n // dialog element does seem to be interactive on MDN guideline\n <dialog\n className={classNames}\n data-anv=\"drawer\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={combinedRef}\n onCancel={onCancelHandler}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={isOpenOrOpening}>\n <ToasterPopover>\n <ToasterContent id=\"drawer-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n\n <DrillDownContext.Provider value={drillDownContextProviderValue}>\n <DrawerContext.Provider value={contextValue}>\n <section\n ref={contentRef}\n className={styles.container}\n data-open={isOpenOrOpening}\n >\n {children}\n </section>\n </DrawerContext.Provider>\n </DrillDownContext.Provider>\n </dialog>\n );\n }),\n {\n /**\n * Header component for the drawer that displays a title and close button.\n *\n * Features:\n * - Displays the drawer title as a headline\n * - Includes an accessible close button\n * - Sticky positioning at the top of the drawer\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Automatic close functionality\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Drawer.Header>Settings</Drawer.Header>\n */\n Header: DrawerHeader,\n /**\n * Footer component for the drawer that displays action buttons and controls.\n *\n * Features:\n * - Flexible layout for action buttons and controls\n * - Optional sticky positioning at the bottom\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard footer element props\n * - Responsive design that adapts to content\n *\n * @example\n * <Drawer.Footer sticky>\n * <Button onClick={handleSave}>Save</Button>\n * <Drawer.CancelButton>Cancel</Drawer.CancelButton>\n * </Drawer.Footer>\n */\n Footer: DrawerFooter,\n /**\n * Content container for the drawer that holds the main content area.\n *\n * Features:\n * - Flexible content area with proper spacing\n * - Scrollable content when needed\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard div element props\n * - Responsive design that adapts to content\n * - Proper focus management\n *\n * @example\n * <Drawer.Content>\n * <p>This is the main content of the drawer.</p>\n * <p>It can contain any type of content.</p>\n * </Drawer.Content>\n */\n Content: DrawerContent,\n /**\n * A button component that automatically closes the drawer when clicked.\n *\n * Features:\n * - Automatically closes the drawer when clicked\n * - Extends Button component functionality\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard button props\n * - Proper focus management\n * - Can be used anywhere within the drawer context\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Drawer.CancelButton appearance=\"ghost\" size=\"small\">\n * Cancel\n * </Drawer.CancelButton>\n */\n CancelButton: DrawerCancelButton,\n },\n);\nDrawer.displayName = \"Drawer\";\n"],"names":["Close","MoreVert","focusables"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditCard-CocV93gS.js","sources":["../../hammer-icon/mdi/round/priority_high.svg","../src/components/EditCard/EditCard.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgPriorityHigh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 12, cy: 19, r: 2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2s2-.9 2-2V5c0-1.1-.9-2-2-2z\" }));\nexport default SvgPriorityHigh;\n","import cx from \"classnames\";\nimport styles from \"./EditCard.module.scss\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport PriorityHigh from \"@servicetitan/hammer-icon/mdi/round/priority_high.svg\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Card } from \"../Card\";\nimport { Text } from \"../Text\";\nimport { Icon } from \"../Icon\";\nimport { Button } from \"../Button\";\n\n/**\n * Props for the EditCard component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type EditCardProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * The header text to display. Can be a string or an object mapping states to different text.\n */\n headerText:\n | string\n | {\n \"not started\": string;\n \"in progress\": string;\n error: string;\n complete: string;\n };\n /**\n * The current state of the edit card.\n */\n state: EditCardState;\n /**\n * Text to display on the save button.\n * @default \"Save\"\n */\n saveButtonText?: string;\n /**\n * Text to display on the edit button.\n * @default \"Edit\"\n */\n editButtonText?: string;\n /**\n * Whether to disable the edit button.\n * @default false\n */\n disableEdit?: boolean;\n /**\n * Whether to disable the save button.\n * @default false\n */\n disableSave?: boolean;\n /**\n * Callback function called when the state changes.\n */\n onStateChange?: (changeType: EditCardChange) => void;\n };\n\n/**\n * The type of state change that can occur.\n * @property {\"edit\"} edit - User clicked the edit button to start editing\n * @property {\"save\"} save - User clicked the save button to save changes\n * @property {\"cancel\"} cancel - User clicked the cancel button to discard changes\n */\nexport type EditCardChange = \"edit\" | \"save\" | \"cancel\";\n\n/**\n * The current state of the edit card.\n * @property {\"not started\"} not started - Initial state, content is not being edited\n * @property {\"in progress\"} in progress - User is currently editing the content\n * @property {\"error\"} error - An error occurred during the edit process\n * @property {\"complete\"} complete - Edit was successfully completed\n */\nexport type EditCardState =\n | \"not started\"\n | \"in progress\"\n | \"error\"\n | \"complete\";\n\n/**\n * EditCard component for managing editable content with different states and actions.\n *\n * Features:\n * - Four distinct states: not started, in progress, error, and complete\n * - Visual indicators for each state with appropriate icons\n * - Dynamic header text that can change based on state\n * - Edit and save buttons with customizable text\n * - Optional button disabling for different states\n * - State change callbacks for handling user interactions\n * - Built on Card component with consistent styling\n * - Supports layout utilities for positioning and spacing\n * - Accessible with proper ARIA attributes\n * - Visual state indicators with color-coded borders\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <EditCard\n * headerText=\"User Profile\"\n * state=\"not started\"\n * onStateChange={(change) => console.log(change)}\n * >\n * <Text>Profile information goes here</Text>\n * </EditCard>\n */\nexport const EditCard = forwardRef<HTMLDivElement, EditCardProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n style,\n headerText,\n state,\n editButtonText = \"Edit\",\n saveButtonText = \"Save\",\n disableEdit = false,\n disableSave = false,\n onStateChange,\n ...rest\n } = componentProps;\n\n const kebabState = state?.replaceAll(\" \", \"-\");\n\n const editCardClassNames = cx(\n styles[\"edit-card\"],\n styles[`edit-card-${kebabState}`],\n className,\n );\n\n return (\n <Card\n padding=\"large\"\n className={editCardClassNames}\n data-anv=\"edit-card\"\n style={style}\n ref={ref}\n {...rest}\n >\n <div\n className={cx(styles.indicator, styles[`indicator-${kebabState}`])}\n >\n {state === \"complete\" && <Icon svg={Check} />}\n {state === \"error\" && <Icon svg={PriorityHigh} />}\n </div>\n <div className={styles.container}>\n <div className={styles.header}>\n <Text className={styles.heading} variant=\"headline\" el=\"h3\">\n {typeof headerText === \"string\" ? headerText : headerText[state]}\n </Text>\n {state !== \"in progress\" && (\n <Button\n disabled={disableEdit}\n onClick={() => onStateChange?.(\"edit\")}\n >\n {editButtonText}\n </Button>\n )}\n </div>\n {children && (\n <div className={styles.content} style={layoutStyles}>\n {children}\n </div>\n )}\n {state === \"in progress\" && (\n <div className={styles.footer}>\n <Button onClick={() => onStateChange?.(\"cancel\")}>Cancel</Button>\n <Button\n appearance=\"primary\"\n onClick={() => onStateChange?.(\"save\")}\n disabled={disableSave}\n >\n {saveButtonText}\n </Button>\n </div>\n )}\n </div>\n </Card>\n );\n },\n);\n\nEditCard.displayName = \"EditCard\";\n"],"names":["Check","PriorityHigh"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldLabel-6aFKQfyD.js","sources":["../src/internal/utils/inlineMarkdownRegex.ts","../src/internal/functions/inlineMarkdown.tsx","../src/components/FieldLabel/internal/FieldLabelMoreInfoIcon.tsx","../src/internal/components/InlineMarkdown/InlineMarkdown.tsx","../src/components/FieldLabel/FieldLabel.tsx"],"sourcesContent":["export const INLINE_MARKDOWN_REGEX =\n /\\*\\*\\*(.+?)\\*\\*\\*|\\*\\*(.+?)\\*\\*|\\*(.+?)\\*|==(.+?)==|`(.+?)`/g;\n","import type { ReactNode } from \"react\";\nimport styles from \"../components/InlineMarkdown/InlineMarkdown.module.scss\";\nimport { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Turns limited inline markdown into React nodes (`***` / `**` / `*` / `==` / `` ` ``).\n * The shared global regex needs `lastIndex` reset per call and saved around\n * nested parses. Code spans are not reparsed.\n */\nexport const parseInlineMarkdown = (text: string): ReactNode[] => {\n const parts: ReactNode[] = [];\n let lastIndex = 0;\n\n INLINE_MARKDOWN_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = INLINE_MARKDOWN_REGEX.exec(text)) !== null) {\n if (match.index > lastIndex) {\n parts.push(text.substring(lastIndex, match.index));\n }\n\n const key = match.index;\n const savedIndex = INLINE_MARKDOWN_REGEX.lastIndex;\n\n if (match[1]) {\n parts.push(\n <strong key={key}>\n <em>{parseInlineMarkdown(match[1])}</em>\n </strong>,\n );\n } else if (match[2]) {\n parts.push(<strong key={key}>{parseInlineMarkdown(match[2])}</strong>);\n } else if (match[3]) {\n parts.push(<em key={key}>{parseInlineMarkdown(match[3])}</em>);\n } else if (match[4]) {\n parts.push(\n <mark key={key} className={styles.highlight}>\n {parseInlineMarkdown(match[4])}\n </mark>,\n );\n } else if (match[5]) {\n parts.push(\n <code key={key} className={styles.code}>\n {match[5]}\n </code>,\n );\n }\n\n INLINE_MARKDOWN_REGEX.lastIndex = savedIndex;\n lastIndex = savedIndex;\n }\n\n if (lastIndex < text.length) {\n parts.push(text.substring(lastIndex));\n }\n\n return parts;\n};\n","import type { FieldLabelProps } from \"../FieldLabel\";\nimport { Tooltip } from \"../../Tooltip\";\nimport { FieldLabelButton } from \"./FieldLabelButton\";\nimport { Icon } from \"../../Icon\";\nimport Info from \"@servicetitan/hammer-icon/mdi/round/info.svg\";\nimport styles from \"../FieldLabel.module.scss\";\nimport { SrOnly } from \"../../SrOnly\";\n\n/**\n * Internal component for rendering the info icon button with tooltip.\n *\n * @param props - Component props\n * @param props.moreInfo - The content to display in the tooltip\n * @param props.moreInfoId - ID for the visually-hidden description span, used by aria-describedby on the associated input\n */\nexport const FieldLabelMoreInfoIcon = ({\n moreInfo,\n moreInfoId,\n}: {\n moreInfo: FieldLabelProps[\"moreInfo\"];\n moreInfoId?: string;\n}) => {\n return (\n <div className={styles[\"info-container\"]}>\n {moreInfoId && <SrOnly id={moreInfoId}>{moreInfo}</SrOnly>}\n <Tooltip\n placement=\"top\"\n offset={5}\n fallbackPlacements={[\"right\", \"bottom\", \"left\"]}\n >\n <Tooltip.Trigger className={styles[\"info-trigger\"]}>\n <FieldLabelButton aria-label=\"More information\">\n <Icon svg={Info} />\n </FieldLabelButton>\n </Tooltip.Trigger>\n <Tooltip.Content className={styles[\"info-content\"]}>\n {moreInfo}\n </Tooltip.Content>\n </Tooltip>\n </div>\n );\n};\n","import { useMemo } from \"react\";\nimport { parseInlineMarkdown } from \"../../functions/inlineMarkdown\";\n\nexport interface InlineMarkdownProps {\n /** Markdown source. Defaults to `\"\"`. */\n value?: string;\n}\n\n/** Turns limited inline markdown into React nodes. */\nexport const InlineMarkdown = ({ value = \"\" }: InlineMarkdownProps) => {\n const content = useMemo(() => parseInlineMarkdown(value), [value]);\n return <>{content}</>;\n};\n","import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ReactNode,\n type Ref,\n type ElementType,\n type JSX,\n type JSXElementConstructor,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./FieldLabel.module.scss\";\nimport type { TooltipProps } from \"../Tooltip\";\nimport { SrOnly } from \"../SrOnly\";\nimport { FieldLabelMoreInfoIcon } from \"./internal/FieldLabelMoreInfoIcon\";\nimport type { AiMarkWithTooltipOrPopoverProps } from \"../../types\";\nimport { AiMark } from \"../../components/AiMark\";\nimport { InlineMarkdown } from \"../../internal/components/InlineMarkdown\";\n\ntype IntrinsicAttributes<\n E extends keyof JSX.IntrinsicElements | JSXElementConstructor<unknown>,\n> = JSX.LibraryManagedAttributes<E, ComponentPropsWithoutRef<E>>;\n\ntype FieldLabelOwnProps<E extends ElementType = ElementType> =\n AiMarkWithTooltipOrPopoverProps & {\n /** The HTML element to render */\n el?: E;\n /** Unique identifier for the label element */\n id?: string;\n /**\n * Whether the field is required. Shows a red asterisk (*) when true.\n * @default false\n */\n required?: boolean;\n /** Additional information to display in a tooltip */\n moreInfo?: ReactNode;\n /** ID for the sr-only description span, referenced via aria-describedby on the associated input. @internal */\n moreInfoId?: string;\n /**\n * Controls the open state of the more info tooltip.\n * @default false\n * @deprecated The more info tooltip is now triggered by a keyboard-accessible button. This prop has no effect.\n */\n moreInfoOpen?: TooltipProps[\"open\"];\n };\n\n/**\n * Props for the FieldLabel component.\n */\nexport type FieldLabelProps<E extends ElementType = ElementType> =\n FieldLabelOwnProps<E> &\n Omit<IntrinsicAttributes<E>, keyof FieldLabelOwnProps>;\n\n/**\n * FieldLabel component for form field labels with optional required indicator and help tooltip.\n *\n * Features:\n * - Accessible form label with proper semantic HTML\n * - Optional required field indicator with red asterisk\n * - Help tooltip with info icon for additional context\n * - Screen reader support for required field announcement\n * - Keyboard-accessible info icon button for additional field context\n * - Flexible content support for label text and help information\n * - Proper ARIA attributes and semantic structure\n * - Responsive design with consistent typography\n * - Polymorphic element support for different HTML elements\n *\n * @example\n * <FieldLabel htmlFor=\"email\" required>\n * Email Address\n * </FieldLabel>\n * <input id=\"email\" type=\"email\" />\n *\n * @example\n * <FieldLabel\n * el=\"label\"\n * htmlFor=\"password\"\n * required\n * moreInfo=\"Password must be at least 8 characters long\"\n * >\n * Password\n * </FieldLabel>\n * <input id=\"password\" type=\"password\" />\n *\n * @example\n * <FieldLabel el=\"legend\" required>\n * Form Section\n * </FieldLabel>\n */\nconst FieldLabelElement = forwardRef(\n (\n {\n aiMark,\n el: Element = \"label\",\n children,\n className,\n moreInfo,\n moreInfoId,\n required,\n moreInfoOpen: _moreInfoOpen, // deprecated, ignored\n ...props\n }: FieldLabelProps,\n ref,\n ) => {\n const FieldLabelClassNames = cx([styles[\"label\"]], className);\n\n const labelText = (\n <span className={styles[\"label-text\"]}>\n {/* TODO(v4.0.0): remove typeof check — children will always be string */}\n {typeof children === \"string\" ? (\n <InlineMarkdown value={children} />\n ) : (\n children\n )}\n {required ? (\n <>\n <span aria-hidden className={styles[\"required\"]}>\n *\n </span>\n <SrOnly>Required</SrOnly>\n </>\n ) : null}\n </span>\n );\n\n const hasMoreInfoOrAiMark = moreInfo || aiMark;\n\n // When el=\"label\" with moreInfo, a <button> cannot be a descendant of <label> per HTML spec.\n // Restructure: outer div wrapper + inner <label display:contents> + button as siblings.\n if (Element === \"label\" && hasMoreInfoOrAiMark) {\n const { htmlFor, id, ...labelProps } =\n props as ComponentPropsWithoutRef<\"label\">;\n return (\n <div className={FieldLabelClassNames} ref={ref as Ref<HTMLDivElement>}>\n <div className={styles[\"top-container\"]}>\n <label\n htmlFor={htmlFor}\n id={id}\n data-anv=\"label\"\n {...(labelProps as ComponentPropsWithoutRef<\"label\">)}\n >\n {labelText}\n </label>\n {moreInfo && (\n <FieldLabelMoreInfoIcon\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n )}\n {aiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof aiMark === \"object\" ? aiMark : undefined\n }\n />\n )}\n </div>\n </div>\n );\n }\n\n return (\n <Element\n className={FieldLabelClassNames}\n data-anv=\"label\"\n ref={ref}\n {...props}\n >\n {hasMoreInfoOrAiMark ? (\n <div className={styles[\"top-container\"]}>\n {labelText}\n {moreInfo && (\n <FieldLabelMoreInfoIcon\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n )}\n {aiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof aiMark === \"object\" ? aiMark : undefined\n }\n />\n )}\n </div>\n ) : (\n labelText\n )}\n </Element>\n );\n },\n);\n\nFieldLabelElement.displayName = \"FieldLabel\";\n\n/**\n * FieldLabel component for form field labels with optional required indicator and help tooltip.\n *\n * Features:\n * - Accessible form label with proper semantic HTML\n * - Optional required field indicator with red asterisk\n * - Help tooltip with info icon for additional context\n * - Screen reader support for required field announcement\n * - Keyboard-accessible info icon button for additional field context\n * - Flexible content support for label text and help information\n * - Proper ARIA attributes and semantic structure\n * - Responsive design with consistent typography\n * - Polymorphic element support for different HTML elements\n *\n * @example\n * <FieldLabel htmlFor=\"email\" required>\n * Email Address\n * </FieldLabel>\n * <input id=\"email\" type=\"email\" />\n *\n * @example\n * <FieldLabel\n * el=\"label\"\n * htmlFor=\"password\"\n * required\n * moreInfo=\"Password must be at least 8 characters long\"\n * >\n * Password\n * </FieldLabel>\n * <input id=\"password\" type=\"password\" />\n *\n * @example\n * <FieldLabel el=\"legend\" required>\n * Form Section\n * </FieldLabel>\n */\nexport const FieldLabel = FieldLabelElement as <\n E extends ElementType = \"label\",\n>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: FieldLabelProps<E> & { ref?: React.Ref<any> },\n) => JSX.Element;\n"],"names":["styles","Info"],"mappings":";;;;;;;;;AAAO,MAAM,qBAAA,GACX;;;;;;;;;ACQK,MAAM,mBAAA,GAAsB,CAAC,IAAA,KAA8B;AAChE,EAAA,MAAM,QAAqB,EAAC;AAC5B,EAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,EAAA,qBAAA,CAAsB,SAAA,GAAY,CAAA;AAClC,EAAA,IAAI,KAAA;AAEJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,qBAAA,CAAsB,IAAA,CAAK,IAAI,OAAO,IAAA,EAAM;AAC1D,IAAA,IAAI,KAAA,CAAM,QAAQ,SAAA,EAAW;AAC3B,MAAA,KAAA,CAAM,KAAK,IAAA,CAAK,SAAA,CAAU,SAAA,EAAW,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,IACnD;AAEA,IAAA,MAAM,MAAM,KAAA,CAAM,KAAA;AAClB,IAAA,MAAM,aAAa,qBAAA,CAAsB,SAAA;AAEzC,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,MAAA,KAAA,CAAM,IAAA;AAAA,wBACJ,GAAA,CAAC,QAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,mBAAA,CAAoB,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,EAAA,EADxB,GAEb;AAAA,OACF;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,CAAM,CAAC,CAAA,EAAG;AACnB,MAAA,KAAA,CAAM,IAAA,qBAAM,QAAA,EAAA,EAAkB,QAAA,EAAA,mBAAA,CAAoB,MAAM,CAAC,CAAC,CAAA,EAAA,EAAlC,GAAoC,CAAS,CAAA;AAAA,IACvE,CAAA,MAAA,IAAW,KAAA,CAAM,CAAC,CAAA,EAAG;AACnB,MAAA,KAAA,CAAM,IAAA,qBAAM,IAAA,EAAA,EAAc,QAAA,EAAA,mBAAA,CAAoB,MAAM,CAAC,CAAC,CAAA,EAAA,EAAlC,GAAoC,CAAK,CAAA;AAAA,IAC/D,CAAA,MAAA,IAAW,KAAA,CAAM,CAAC,CAAA,EAAG;AACnB,MAAA,KAAA,CAAM,IAAA;AAAA,wBACJ,GAAA,CAAC,MAAA,EAAA,EAAe,SAAA,EAAWA,QAAA,CAAO,SAAA,EAC/B,8BAAoB,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EADpB,GAEX;AAAA,OACF;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,CAAM,CAAC,CAAA,EAAG;AACnB,MAAA,KAAA,CAAM,IAAA;AAAA,wBACJ,GAAA,CAAC,UAAe,SAAA,EAAWA,QAAA,CAAO,MAC/B,QAAA,EAAA,KAAA,CAAM,CAAC,KADC,GAEX;AAAA,OACF;AAAA,IACF;AAEA,IAAA,qBAAA,CAAsB,SAAA,GAAY,UAAA;AAClC,IAAA,SAAA,GAAY,UAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,GAAY,KAAK,MAAA,EAAQ;AAC3B,IAAA,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EACtC;AAEA,EAAA,OAAO,KAAA;AACT,CAAA;;;;;;;;;;;;;;;AC1CO,MAAM,yBAAyB,CAAC;AAAA,EACrC,QAAA;AAAA,EACA;AACF,CAAA,KAGM;AACJ,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,gBAAgB,CAAA,EACpC,QAAA,EAAA;AAAA,IAAA,UAAA,oBAAc,GAAA,CAAC,MAAA,EAAA,EAAO,EAAA,EAAI,UAAA,EAAa,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,oBACjD,IAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,CAAA;AAAA,QACR,kBAAA,EAAoB,CAAC,OAAA,EAAS,QAAA,EAAU,MAAM,CAAA;AAAA,QAE9C,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAQ,OAAA,EAAR,EAAgB,SAAA,EAAW,MAAA,CAAO,cAAc,CAAA,EAC/C,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,YAAA,EAAW,oBAC3B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAKC,OAAA,EAAM,GACnB,CAAA,EACF,CAAA;AAAA,0BACA,GAAA,CAAC,QAAQ,OAAA,EAAR,EAAgB,WAAW,MAAA,CAAO,cAAc,GAC9C,QAAA,EAAA,QAAA,EACH;AAAA;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAA;;AChCO,MAAM,cAAA,GAAiB,CAAC,EAAE,KAAA,GAAQ,IAAG,KAA2B;AACrE,EAAA,MAAM,OAAA,GAAU,QAAQ,MAAM,mBAAA,CAAoB,KAAK,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACjE,EAAA,uCAAU,QAAA,EAAA,OAAA,EAAQ,CAAA;AACpB,CAAA;;AC6EA,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CACE;AAAA,IACE,MAAA;AAAA,IACA,IAAI,OAAA,GAAU,OAAA;AAAA,IACd,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA,EAAc,aAAA;AAAA;AAAA,IACd,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,uBAAuB,EAAA,CAAG,CAAC,OAAO,OAAO,CAAC,GAAG,SAAS,CAAA;AAE5D,IAAA,MAAM,4BACJ,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,YAAY,CAAA,EAEjC,QAAA,EAAA;AAAA,MAAA,OAAO,aAAa,QAAA,mBACnB,GAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,UAAU,CAAA,GAEjC,QAAA;AAAA,MAED,2BACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,aAAA,EAAW,IAAA,EAAC,WAAW,MAAA,CAAO,UAAU,GAAG,QAAA,EAAA,GAAA,EAEjD,CAAA;AAAA,wBACA,GAAA,CAAC,UAAO,QAAA,EAAA,UAAA,EAAQ;AAAA,OAAA,EAClB,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAGF,IAAA,MAAM,sBAAsB,QAAA,IAAY,MAAA;AAIxC,IAAA,IAAI,OAAA,KAAY,WAAW,mBAAA,EAAqB;AAC9C,MAAA,MAAM,EAAE,OAAA,EAAS,EAAA,EAAI,GAAG,YAAW,GACjC,KAAA;AACF,MAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,oBAAA,EAAsB,GAAA,EACpC,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAe,CAAA,EACpC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,OAAA;AAAA,YACA,EAAA;AAAA,YACA,UAAA,EAAS,OAAA;AAAA,YACR,GAAI,UAAA;AAAA,YAEJ,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QACC,QAAA,oBACC,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,QAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,QAED,MAAA,oBACC,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,YAChC,IAAA,EAAK,UAAA;AAAA,YACL,sBAAA,EACE,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,GAAS;AAAA;AAAA;AAE1C,OAAA,EAEJ,CAAA,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,oBAAA;AAAA,QACX,UAAA,EAAS,OAAA;AAAA,QACT,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,gDACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,eAAe,CAAA,EACnC,QAAA,EAAA;AAAA,UAAA,SAAA;AAAA,UACA,QAAA,oBACC,GAAA;AAAA,YAAC,sBAAA;AAAA,YAAA;AAAA,cACC,QAAA;AAAA,cACA;AAAA;AAAA,WACF;AAAA,UAED,MAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,cAChC,IAAA,EAAK,UAAA;AAAA,cACL,sBAAA,EACE,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,GAAS;AAAA;AAAA;AAE1C,SAAA,EAEJ,CAAA,GAEA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,YAAA;AAsCzB,MAAM,UAAA,GAAa;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Grid-CvGQrIhE.js","sources":["../src/components/Grid/internal/GridItem.tsx","../src/components/Grid/Grid.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"../Grid.module.scss\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport type { LayoutUtilProps } from \"../../../types\";\n\n/**\n * Props for the GridItem component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type GridItemProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * GridItem component for individual items within a CSS Grid layout.\n *\n * Features:\n * - Individual grid item with full layout utility support\n * - Automatic grid item styling and class management\n * - Comprehensive layout utilities for positioning and sizing\n * - Support for all standard div element props\n * - Flexible grid positioning and sizing controls\n * - Automatic style generation and class management\n * - Works seamlessly with Grid component\n *\n * @example\n * <Grid templateColumns=\"repeat(2, 1fr)\" gap=\"4\">\n * <Grid.Item>Grid Item 1</Grid.Item>\n * <Grid.Item>Grid Item 2</Grid.Item>\n * </Grid>\n */\nexport const GridItem = forwardRef<HTMLDivElement, GridItemProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { className, children, style, ...rest } = componentProps;\n\n const gridItemClassNames = cx([styles[\"grid-item\"]], className, {});\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <div\n className={gridItemClassNames}\n data-anv=\"grid-item\"\n ref={ref}\n style={styleCombined}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nGridItem.displayName = \"GridItem\";\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport styles from \"./Grid.module.scss\";\nimport type { GridSpecificProps } from \"./internal/GridSpecificProps\";\nimport { GridItem } from \"./internal/GridItem\";\n\n/**\n * Props for the Grid component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends GridSpecificProps\n */\nexport type GridProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Applies `display: inline-grid` instead of `grid`\n */\n inline?: boolean;\n} & GridSpecificProps & {\n /**\n * Responsive props for small screens (sm breakpoint).\n */\n sm?: GridSpecificProps;\n /**\n * Responsive props for medium screens (md breakpoint).\n */\n md?: GridSpecificProps;\n /**\n * Responsive props for large screens (lg breakpoint).\n */\n lg?: GridSpecificProps;\n /**\n * Responsive props for extra large screens (xl breakpoint).\n */\n xl?: GridSpecificProps;\n /**\n * Responsive props for extra extra large screens (xxl breakpoint).\n */\n xxl?: GridSpecificProps;\n };\n\n/**\n * Grid component for creating responsive multi-column CSS Grid layouts that arrange content or tiles into evenly spaced columns and rows which reflow across breakpoints.\n *\n * Features:\n * - CSS Grid layout with full control over grid properties\n * - Support for both grid and inline-grid display modes\n * - Responsive design with breakpoint-specific props (sm, md, lg, xl, xxl)\n * - Comprehensive layout utilities for spacing, alignment, and positioning\n * - Template columns, rows, and areas configuration\n * - Auto columns and rows sizing\n * - Automatic style generation and class management\n * - Support for all standard div element props\n * - Flexible grid template and auto-sizing controls\n * - Automatic tracking ID generation for analytics\n * - Compound component structure with Item sub-component\n *\n * @example\n * <Grid templateColumns=\"repeat(3, 1fr)\" gap=\"4\">\n * <Grid.Item>Grid Item 1</Grid.Item>\n * <Grid.Item>Grid Item 2</Grid.Item>\n * <Grid.Item>Grid Item 3</Grid.Item>\n * </Grid>\n *\n * @example\n * <Grid\n * templateColumns=\"repeat(1, 1fr)\"\n * gap=\"2\"\n * md={{ templateColumns: \"repeat(3, 1fr)\", gap: \"4\" }}\n * >\n * <Grid.Item>Grid Item 1</Grid.Item>\n * <Grid.Item>Grid Item 2</Grid.Item>\n * <Grid.Item>Grid Item 3</Grid.Item>\n * </Grid>\n */\nexport const Grid = Object.assign(\n forwardRef<HTMLDivElement, GridProps>(function GridInner(props, ref) {\n const {\n inline,\n templateColumns,\n templateRows,\n templateAreas,\n autoColumns,\n autoRows,\n sm,\n md,\n lg,\n xl,\n xxl,\n ...nonLayoutProps\n } = props;\n const combineLayoutProps = {\n ...nonLayoutProps,\n gridTemplateColumns: props.templateColumns,\n gridTemplateRows: props.templateRows,\n gridTemplateAreas: props.templateAreas,\n gridAutoColumns: props.autoColumns,\n gridAutoRows: props.autoRows,\n sm: {\n ...sm,\n gridTemplateColumns: sm?.templateColumns,\n gridTemplateRows: sm?.templateRows,\n gridTemplateAreas: sm?.templateAreas,\n gridAutoColumns: sm?.autoColumns,\n gridAutoRows: sm?.autoRows,\n },\n md: {\n ...md,\n gridTemplateColumns: md?.templateColumns,\n gridTemplateRows: md?.templateRows,\n gridTemplateAreas: md?.templateAreas,\n gridAutoColumns: md?.autoColumns,\n gridAutoRows: md?.autoRows,\n },\n lg: {\n ...lg,\n gridTemplateColumns: lg?.templateColumns,\n gridTemplateRows: lg?.templateRows,\n gridTemplateAreas: lg?.templateAreas,\n gridAutoColumns: lg?.autoColumns,\n gridAutoRows: lg?.autoRows,\n },\n xl: {\n ...xl,\n gridTemplateColumns: xl?.templateColumns,\n gridTemplateRows: xl?.templateRows,\n gridTemplateAreas: xl?.templateAreas,\n gridAutoColumns: xl?.autoColumns,\n gridAutoRows: xl?.autoRows,\n },\n xxl: {\n ...xxl,\n gridTemplateColumns: xxl?.templateColumns,\n gridTemplateRows: xxl?.templateRows,\n gridTemplateAreas: xxl?.templateAreas,\n gridAutoColumns: xxl?.autoColumns,\n gridAutoRows: xxl?.autoRows,\n },\n };\n const { layoutStyles, componentProps } =\n useLayoutPropsUtil(combineLayoutProps);\n const { children, className, style, ...rest } = componentProps;\n\n const gridClassNames = cx(className, {\n [styles[\"grid\"]]: !inline,\n [styles[\"inline-grid\"]]: inline,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <div\n className={gridClassNames}\n data-anv=\"grid\"\n style={styleCombined}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n );\n }),\n {\n /**\n * GridItem component for individual items within a CSS Grid layout.\n *\n * Features:\n * - Individual grid item with full layout utility support\n * - Automatic grid item styling and class management\n * - Comprehensive layout utilities for positioning and sizing\n * - Support for all standard div element props\n * - Flexible grid positioning and sizing controls\n * - Automatic style generation and class management\n * - Works seamlessly with Grid component\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Grid templateColumns=\"repeat(2, 1fr)\" gap=\"4\">\n * <Grid.Item>Grid Item 1</Grid.Item>\n * <Grid.Item>Grid Item 2</Grid.Item>\n * </Grid>\n */\n Item: GridItem,\n },\n);\nGrid.displayName = \"Grid\";\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout-C2Q2hyLG.js","sources":["../src/components/Layout/Layout.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Layout.module.scss\";\n\n/**\n * Props for the Layout component.\n */\nexport type LayoutProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Whether the layout should be fluid (full width) instead of constrained */\n fluid?: boolean;\n /** The spacing variant for the layout grid */\n variant?: \"default\" | \"wide\" | \"narrow\";\n};\n\n/**\n * Props for the Layout.Item component.\n */\nexport type LayoutItemProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Default span across all breakpoints (1-12) */\n span?: number;\n /** Extra small breakpoint span (1-12) */\n xs?: number;\n /** Small breakpoint span (1-12) */\n sm?: number;\n /** Medium breakpoint span (1-12) */\n md?: number;\n /** Large breakpoint span (1-12) */\n lg?: number;\n /** Extra large breakpoint span (1-12) */\n xl?: number;\n /** Extra extra large breakpoint span (1-12) */\n xxl?: number;\n};\n\n// TODO: clamp span numbers higher than 12\n\n/**\n * Layout item component that defines grid columns within a Layout container.\n *\n * Features:\n * - Responsive grid columns with breakpoint-specific spans\n * - 12-column grid system for flexible layouts\n * - Breakpoint-specific span controls (xs, sm, md, lg, xl, xxl)\n * - Default span fallback for all breakpoints\n * - Automatic responsive behavior using container queries\n * - Semantic HTML structure with proper accessibility\n * - Flexible content area for any child components\n * - Consistent spacing and alignment with parent Layout\n * - Automatic tracking ID generation for analytics\n *\n * Breakpoints:\n * - xs: Extra small (mobile)\n * - sm: Small (tablet portrait)\n * - md: Medium (tablet landscape)\n * - lg: Large (desktop)\n * - xl: Extra large (large desktop)\n * - xxl: Extra extra large (ultra-wide)\n *\n * @example\n * <Layout>\n * <Layout.Item span={6} md={4} lg={3}>\n * <Card>Responsive Card</Card>\n * </Layout.Item>\n * <Layout.Item span={6} md={8} lg={9}>\n * <Card>Main Content</Card>\n * </Layout.Item>\n * </Layout>\n *\n * @example\n * <Layout>\n * <Layout.Item span={12} md={6}>\n * <h2>Left Column</h2>\n * <p>This takes full width on mobile, half width on medium+ screens.</p>\n * </Layout.Item>\n * <Layout.Item span={12} md={6}>\n * <h2>Right Column</h2>\n * <p>This also takes full width on mobile, half width on medium+ screens.</p>\n * </Layout.Item>\n * </Layout>\n *\n * @example\n * <Layout variant=\"wide\">\n * <Layout.Item span={1} sm={2} md={3} lg={4}>\n * <Button>Small Button</Button>\n * </Layout.Item>\n * <Layout.Item span={11} sm={10} md={9} lg={8}>\n * <TextField placeholder=\"Search...\" />\n * </Layout.Item>\n * </Layout>\n */\nexport const LayoutItem = forwardRef<HTMLDivElement, LayoutItemProps>(\n (\n { children, className, span = 12, xs, sm, md, lg, xl, xxl, ...props },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n {...props}\n className={cx(\n styles.cell,\n styles[`xs${xs || span}`],\n {\n [styles[`sm${sm}`]]: sm,\n [styles[`md${md}`]]: md,\n [styles[`lg${lg}`]]: lg,\n [styles[`xl${xl}`]]: xl,\n [styles[`xxl${xxl}`]]: xxl,\n },\n className,\n )}\n >\n {children}\n </div>\n );\n },\n);\n\nLayoutItem.displayName = \"LayoutItem\";\n\n/**\n * Layout container component that provides a responsive grid system.\n *\n * Features:\n * - CSS Grid-based responsive layout system\n * - Container with max-width constraint (1280px) by default\n * - Fluid option for full-width layouts\n * - Three spacing variants: default, wide, and narrow\n * - Container queries for responsive behavior\n * - Automatic tracking ID generation for analytics\n * - Semantic HTML structure with proper accessibility\n * - Flexible content area for child Layout.Item components\n * - Consistent spacing and alignment across breakpoints\n *\n * @example\n * <Layout>\n * <Layout.Item span={6}>Left Column</Layout.Item>\n * <Layout.Item span={6}>Right Column</Layout.Item>\n * </Layout>\n *\n * @example\n * <Layout fluid variant=\"wide\">\n * <Layout.Item span={4}>Column 1</Layout.Item>\n * <Layout.Item span={4}>Column 2</Layout.Item>\n * <Layout.Item span={4}>Column 3</Layout.Item>\n * </Layout>\n *\n * @example\n * <Layout variant=\"narrow\">\n * <Layout.Item span={12}>\n * <h1>Full Width Content</h1>\n * <p>This content spans the full width of the layout.</p>\n * </Layout.Item>\n * </Layout>\n */\nexport const Layout = Object.assign(\n forwardRef<HTMLDivElement, LayoutProps>(function LayoutInner(props, ref) {\n const {\n children,\n className,\n fluid = false,\n variant = \"default\",\n ...rest\n } = props;\n\n return (\n <div className={cx(styles.container, { [styles.fluid]: fluid })}>\n <div\n className={cx(\n styles.grid,\n {\n [styles.wide]: variant === \"wide\",\n [styles.narrow]: variant === \"narrow\",\n },\n className,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </div>\n );\n }),\n {\n Item: LayoutItem,\n },\n);\nLayout.displayName = \"Layout\";\nexport const LayoutElement = Layout;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FO,MAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CACE,EAAE,QAAA,EAAU,SAAA,EAAW,OAAO,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,GAAG,KAAA,IAC9D,GAAA,KACG;AACH,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,SAAA,EAAW,EAAA;AAAA,UACT,MAAA,CAAO,IAAA;AAAA,UACP,MAAA,CAAO,CAAA,EAAA,EAAK,EAAA,IAAM,IAAI,CAAA,CAAE,CAAA;AAAA,UACxB;AAAA,YACE,CAAC,MAAA,CAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAE,CAAC,GAAG,EAAA;AAAA,YACrB,CAAC,MAAA,CAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAE,CAAC,GAAG,EAAA;AAAA,YACrB,CAAC,MAAA,CAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAE,CAAC,GAAG,EAAA;AAAA,YACrB,CAAC,MAAA,CAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAE,CAAC,GAAG,EAAA;AAAA,YACrB,CAAC,MAAA,CAAO,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE,CAAC,GAAG;AAAA,WACzB;AAAA,UACA;AAAA,SACF;AAAA,QAEC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;AAqClB,MAAM,SAAS,MAAA,CAAO,MAAA;AAAA,EAC3B,UAAA,CAAwC,SAAS,WAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AACvE,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA,GAAQ,KAAA;AAAA,MACR,OAAA,GAAU,SAAA;AAAA,MACV,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,SAAA,EAAW,EAAE,CAAC,MAAA,CAAO,KAAK,GAAG,KAAA,EAAO,CAAA,EAC5D,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,MAAA,CAAO,IAAA;AAAA,UACP;AAAA,YACE,CAAC,MAAA,CAAO,IAAI,GAAG,OAAA,KAAY,MAAA;AAAA,YAC3B,CAAC,MAAA,CAAO,MAAM,GAAG,OAAA,KAAY;AAAA,WAC/B;AAAA,UACA;AAAA,SACF;AAAA,QACA,GAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ,CAAC,CAAA;AAAA,EACD;AAAA,IACE,IAAA,EAAM;AAAA;AAEV;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AACd,MAAM,aAAA,GAAgB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"List-BvzfZ9TW.js","sources":["../src/components/List/ListItem.tsx","../src/components/List/List.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, forwardRef, type Ref } from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./List.module.scss\";\n\n/**\n * Props for the ListItem component\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListItemProps = ComponentPropsWithoutRef<\"li\">;\n\nexport const ListItem = forwardRef<HTMLLIElement, ListItemProps>(\n (props, ref: Ref<HTMLLIElement>) => {\n const { className, children, ...rest } = props;\n\n return (\n <li\n ref={ref}\n className={cx(styles[\"item\"], className)}\n data-anv=\"list-item\"\n {...rest}\n >\n {children}\n </li>\n );\n },\n);\n\nListItem.displayName = \"ListItem\";\n","import { type ComponentPropsWithoutRef, forwardRef, type Ref } from \"react\";\nimport type { LayoutUtilProps, Size } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { ListItem } from \"./ListItem\";\n\nimport cx from \"classnames\";\nimport styles from \"./List.module.scss\";\n\n/** Size option for list typography */\nexport type ListSize = Extract<Size, \"small\" | \"medium\" | \"large\">;\n\n/**\n * Props for unordered list variant\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type UnorderedListProps = ComponentPropsWithoutRef<\"ul\"> &\n LayoutUtilProps & {\n /** Renders as unordered list (ul). Default. */\n variant?: \"unordered\";\n /** Typography size for list content. @default \"medium\" */\n size?: ListSize;\n };\n\n/**\n * Props for ordered list variant\n * @extends ComponentPropsWithoutRef<\"ol\">\n * @extends LayoutUtilProps\n */\nexport type OrderedListProps = ComponentPropsWithoutRef<\"ol\"> &\n LayoutUtilProps & {\n /** Renders as ordered list (ol). */\n variant: \"ordered\";\n /** Typography size for list content. @default \"medium\" */\n size?: ListSize;\n };\n\n/**\n * Props for the List component\n * @extends UnorderedListProps\n * @extends OrderedListProps\n */\nexport type ListProps = UnorderedListProps | OrderedListProps;\n\n/**\n * List component for displaying ordered or unordered lists with design system styling.\n *\n * Features:\n * - Supports unordered (ul) and ordered (ol) lists via variant prop\n * - Typography size options aligned with design tokens\n * - Semantic HTML and accessible list structure\n * - Supports nested lists\n * - Layout utilities for positioning and spacing\n *\n * @example\n * <List>\n * <List.Item>First item</List.Item>\n * <List.Item>Second item</List.Item>\n * </List>\n *\n * @example\n * <List variant=\"ordered\" start={1}>\n * <List.Item>Step one</List.Item>\n * <List.Item>Step two</List.Item>\n * </List>\n */\nexport const List = Object.assign(\n forwardRef<HTMLUListElement | HTMLOListElement, ListProps>(\n function ListInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n children,\n variant = \"unordered\",\n size = \"medium\",\n style,\n ...rest\n } = componentProps;\n\n const listClasses = cx(styles[\"list\"], className, {\n [styles[\"unordered\"]]: variant === \"unordered\",\n [styles[\"ordered\"]]: variant === \"ordered\",\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n if (variant === \"ordered\") {\n return (\n <ol\n ref={ref as Ref<HTMLOListElement>}\n className={listClasses}\n style={styleCombined}\n data-anv=\"list\"\n {...rest}\n >\n {children}\n </ol>\n );\n }\n\n return (\n <ul\n ref={ref as Ref<HTMLUListElement>}\n className={listClasses}\n style={styleCombined}\n data-anv=\"list\"\n {...rest}\n >\n {children}\n </ul>\n );\n },\n ),\n {\n /**\n * ListItem component for individual items within a List.\n *\n * Features:\n * - Renders as a semantic list item (li)\n * - Supports layout and styling via standard HTML attributes\n *\n * @example\n * <List.Item>Item content</List.Item>\n */\n Item: ListItem,\n },\n);\nList.displayName = \"List\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAWO,MAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,OAAO,GAAA,KAA4B;AAClC,IAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAEzC,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,MAAM,GAAG,SAAS,CAAA;AAAA,QACvC,UAAA,EAAS,WAAA;AAAA,QACR,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;;ACsChB,MAAM,OAAO,MAAA,CAAO,MAAA;AAAA,EACzB,UAAA;AAAA,IACE,SAAS,SAAA,CAAU,KAAA,EAAO,GAAA,EAAK;AAC7B,MAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,MAAA,MAAM;AAAA,QACJ,SAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA,GAAU,WAAA;AAAA,QACV,IAAA,GAAO,QAAA;AAAA,QACP,KAAA;AAAA,QACA,GAAG;AAAA,OACL,GAAI,cAAA;AAEJ,MAAA,MAAM,WAAA,GAAc,EAAA,CAAG,MAAA,CAAO,MAAM,GAAG,SAAA,EAAW;AAAA,QAChD,CAAC,MAAA,CAAO,WAAW,CAAC,GAAG,OAAA,KAAY,WAAA;AAAA,QACnC,CAAC,MAAA,CAAO,SAAS,CAAC,GAAG,OAAA,KAAY,SAAA;AAAA,QACjC,CAAC,MAAA,CAAO,OAAO,CAAC,GAAG,IAAA,KAAS,OAAA;AAAA,QAC5B,CAAC,MAAA,CAAO,OAAO,CAAC,GAAG,IAAA,KAAS;AAAA,OAC7B,CAAA;AAED,MAAA,MAAM,aAAA,GAAgB;AAAA,QACpB,GAAG,KAAA;AAAA,QACH,GAAG;AAAA,OACL;AAEA,MAAA,IAAI,YAAY,SAAA,EAAW;AACzB,QAAA,uBACE,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,SAAA,EAAW,WAAA;AAAA,YACX,KAAA,EAAO,aAAA;AAAA,YACP,UAAA,EAAS,MAAA;AAAA,YACR,GAAG,IAAA;AAAA,YAEH;AAAA;AAAA,SACH;AAAA,MAEJ;AAEA,MAAA,uBACE,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAW,WAAA;AAAA,UACX,KAAA,EAAO,aAAA;AAAA,UACP,UAAA,EAAS,MAAA;AAAA,UACR,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA,OACH;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWE,IAAA,EAAM;AAAA;AAEV;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListView-DFAWrwzi.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\n/**\n * Context properties for the ListView component\n */\nexport type ListViewContextProps = {\n /** Array of option objects for focus management */\n options?: Option[];\n /** Callback when selection changes */\n onSelectionChange?: (value: unknown[]) => void;\n /** Currently selected items */\n selectedItems: unknown[];\n /** Currently indeterminate items */\n indeterminateItems: unknown[];\n /** Array of items if using items prop */\n items?: unknown[];\n /** Function to set the selected items */\n setSelectedItems: Dispatch<\n SetStateAction<ListViewContextProps[\"selectedItems\"]>\n >;\n /** Whether the component is controlled */\n controlled?: boolean;\n};\n\nexport const ListViewContext = createContext<ListViewContextProps | null>(null);\n\n/**\n * Hook to access the listview context\n * @returns The listview context\n * @throws Error if used outside of a ListView component\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/**\n * Props for the ListViewOption component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListViewOptionProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onChange\"\n> & {\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Callback when the option changes */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state?: CheckboxState) => void;\n} & (\n | {\n /** The item object when using items prop */\n item: ItemType;\n }\n | {\n /** The display label for the option */\n label: string;\n }\n ) &\n DataTrackingId;\n\n/**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\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 // This is to satisfy the type checker and allow us to destructure the item and label props which \"could\" exist.\n // We're destructuring them because we don't want to forward them to the div element.\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\n/**\n * Helper function to check if a list view option item is in an array (e.g. selected items or indeterminate items)\n * @param itemLabel - The label of the item to check if it is in the array\n * @param array - The array to check if the item is in\n * @returns True if the item is in the array, false otherwise\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/**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\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 let activeElement: HTMLElement | null;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n (\n options[focusedItem.row].focusables[focusedItem.col] as HTMLElement\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 if (focusedItem.row === options.length - 1) {\n options[0].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(options[0].focusables[focusedItem.col].id);\n setFocusedItem((prev) => {\n return { ...prev, row: 0 };\n });\n break;\n }\n\n options[focusedItem.row + 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(\n options[focusedItem.row + 1].focusables[focusedItem.col].id,\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row + 1 };\n });\n break;\n case \"ArrowUp\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\",\n );\n if (focusedItem.row === 0) {\n options[options.length - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(\n options[options.length - 1].focusables[focusedItem.col].id,\n );\n setFocusedItem((prev) => {\n return { ...prev, row: options.length - 1 };\n });\n break;\n }\n\n options[focusedItem.row - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(\n options[focusedItem.row - 1].focusables[focusedItem.col].id,\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row - 1 };\n });\n break;\n case \"ArrowRight\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\",\n );\n if (focusedItem.col === options[focusedItem.row].focusables.length - 1) {\n options[focusedItem.row].focusables[0].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(options[focusedItem.row].focusables[0].id);\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: 0,\n };\n });\n break;\n }\n\n options[focusedItem.row].focusables[focusedItem.col + 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col + 1].id,\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col + 1 };\n });\n break;\n case \"ArrowLeft\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\",\n );\n if (focusedItem.col === 0) {\n options[focusedItem.row].focusables[\n options[focusedItem.row].focusables.length - 1\n ].setAttribute(\"data-interactive\", \"focus-visible\");\n currentFocusId(\n options[focusedItem.row].focusables[\n options[focusedItem.row].focusables.length - 1\n ].id,\n );\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: options[focusedItem.row].focusables.length - 1,\n };\n });\n break;\n }\n\n options[focusedItem.row].focusables[focusedItem.col - 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\",\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col - 1].id,\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col - 1 };\n });\n break;\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 * Props for the ListView component\n * @template T - The type of additional properties for items\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 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.ariaDisabled) return;\n const row = options.findIndex((option) => option.node === optionRow);\n if (!closestFocusable) {\n (options[row].focusables[0] as HTMLElement).click();\n return;\n }\n const col = Array.prototype.indexOf.call(\n options[row].focusables,\n closestFocusable?.getAttribute(\"data-anv\") === \"checkbox\"\n ? closestFocusable.children[0]\n : closestFocusable,\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 }, [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 // Helper to extract label from either string or ItemType\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/**\n * ListView component for displaying a list of selectable items in a grid layout.\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys\n * - Customizable item rendering\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Focus management for interactive elements\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView items={[{ label: \"Item 1\" }, { label: \"Item 2\" }]} onSelectionChange={handleSelection}>\n * {({ items }) => items.map(item => (\n * <ListView.Option key={item.label} item={item} />\n * ))}\n * </ListView>\n */\nexport const ListView = Object.assign(\n forwardRef(ListViewInner) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewInner>,\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell,\n },\n);\n"],"names":["children","rest"],"mappings":";;;;;;;;;;AAKO,SAAS,QAAA,CAAS,KAAA,EAAc,KAAA,EAAc,GAAA,EAAa;AAChE,EAAA,MAAM,WAAA,GAAc,CAAC,GAAG,KAAK,CAAA;AAC7B,EAAA,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AACzB,IAAA,MAAM,IAAI,CAAA,CAAE,GAAG,CAAA,EACb,CAAA,GAAI,EAAE,GAAG,CAAA;AAEX,IAAA,IAAI,MAAM,OAAA,CAAQ,CAAC,IAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AACvC,MAAA,OAAO,CAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,OAAO,EAAA;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,WAAA;AACT;;ACWO,MAAM,eAAA,GAAkB,cAA2C,IAAI,CAAA;AAOvE,SAAS,WAAA,GAAc;AAC5B,EAAA,MAAM,OAAA,GAAU,WAAW,eAAe,CAAA;AAE1C,EAAA,IAAI,WAAW,IAAA,EAAM;AACnB,IAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,EAC/D;AAEA,EAAA,OAAO,OAAA;AACT;;ACeO,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,EAAU,YAAA;AAAA,MACV,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,SAAA,GAAY,OAAuB,IAAI,CAAA;AAC7C,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,CAAC,GAAA,EAAK,SAAS,CAAC,CAAA;AAE/C,IAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAC3C,IAAA,MAAM,QAAQ,KAAA,EAAM;AACpB,IAAA,MAAM;AAAA,MACJ,aAAA;AAAA,MACA,gBAAA;AAAA,MACA,kBAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,QACE,WAAA,EAAY;AAChB,IAAA,MAAM,WACJ,MAAA,IAAU,cAAA,GACN,YAAA,IAAgB,cAAA,CAAe,KAAK,QAAA,GACpC,YAAA;AAEN,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAM,UAAA,GAAa,UAAU,OAAA,EAAS,gBAAA;AAAA,QACpC;AAAA,OACF;AACA,MAAA,UAAA,EAAY,OAAA,CAAQ,CAAC,IAAA,EAAM,CAAA,KAAM;AAC/B,QAAA,IAAA,CAAK,YAAA,CAAa,YAAY,IAAI,CAAA;AAClC,QAAA,IAAI,IAAA,CAAK,YAAA,CAAa,IAAI,CAAA,EAAG;AAC7B,QAAA,IAAA,CAAK,aAAa,IAAA,EAAM,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,CAAA;AAAA,MACzC,CAAC,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,IAAA,MAAM,QACJ,MAAA,IAAU,cAAA,GACN,cAAA,CAAe,IAAA,CAAK,QACpB,cAAA,CAAe,KAAA;AAErB,IAAA,MAAM,UAAA,GAAa,OAAA;AAAA,MACjB,MAAM,YAAA,CAAa,KAAA,EAAO,aAAa,CAAA;AAAA,MACvC,CAAC,eAAe,KAAK;AAAA,KACvB;AAEA,IAAA,MAAM,eAAA,GAAkB,OAAA;AAAA,MACtB,MAAM,YAAA,CAAa,KAAA,EAAO,kBAAkB,CAAA;AAAA,MAC5C,CAAC,oBAAoB,KAAK;AAAA,KAC5B;AAEA,IAAA,MAAM,eAAA,GAA6C,CAAC,CAAA,KAAM;AACxD,MAAA,QAAA,GAAW,CAAA,EAAG,EAAE,OAAA,EAAS,UAAA,EAAY,CAAA;AAAA,IACvC,CAAA;AAEA,IAAA,MAAM,iBAA2C,MAAM;AACrD,MAAA,mBAAA,EAAoB;AAAA,IACtB,CAAA;AAEA,IAAA,MAAM,2BAAA,GAA8B,CAAC,iBAAA,KAA8B;AACjE,MAAA,OAAQ,aAAA,CAAwC,MAAA;AAAA,QAC9C,CAAC,eAAA,KAAoB;AACnB,UAAA,IAAI,OAAO,oBAAoB,QAAA,EAAU;AACvC,YAAA,OAAO,eAAA,KAAoB,iBAAA;AAAA,UAC7B;AACA,UAAA,OAAO,gBAAgB,KAAA,KAAU,iBAAA;AAAA,QACnC;AAAA,OACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,wBAAA,GAA2B,CAAC,SAAA,KAAiC;AACjE,MAAA,OAAO,CAAC,GAAG,aAAA,EAAe,SAAS,CAAA;AAAA,IACrC,CAAA;AAEA,IAAA,SAAS,mBAAA,GAAsB;AAC7B,MAAA,MAAM,qBAAA,GAAwB,YAAA,CAAa,KAAA,EAAO,aAAa,CAAA;AAC/D,MAAA,MAAM,QAAA,GAAW,aAAa,iBAAA,GAAoB,gBAAA;AAClD,MAAA,IAAI,qBAAA,EAAuB;AACzB,QAAA,QAAA,GAAW,2BAAA,CAA4B,KAAK,CAAC,CAAA;AAAA,MAC/C,CAAA,MAAO;AACL,QAAA,QAAA;AAAA,UACE,wBAAA;AAAA,YACE,MAAA,IAAU,cAAA,GACN,cAAA,CAAe,IAAA,GACf,cAAA,CAAe;AAAA;AACrB,SACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,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,gBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM;AAAA,MACJ,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,GAAG;AAAA,KACL,GAAI,cAAA;AAOJ,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,WAAW,EAAA,CAAG,CAAC,OAAO,iBAAiB,CAAC,GAAG,SAAS,CAAA;AAAA,QACpD,UAAA,EAAS,iBAAA;AAAA,QACT,KAAA;AAAA,QACA,GAAA,EAAK,SAAA;AAAA,QACL,eAAA,EAAe,QAAA;AAAA,QACf,eAAA,EAAe,UAAA;AAAA,QACf,cAAY,KAAA,IAAS,QAAA;AAAA,QACrB,IAAA,EAAK,KAAA;AAAA,QACJ,GAAG,cAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAW,MAAA,CAAO,MAAM,GAAG,GAAA,EAAK,OAAA,EAAS,MAAK,UAAA,EACjD,QAAA,kBAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,QAAA;AAAA,cACA,OAAA,EAAS,kBAAkB,MAAA,GAAY,UAAA;AAAA,cACvC,aAAA,EAAe,eAAA;AAAA,cACf,cAAY,KAAA,IAAS,QAAA;AAAA,cACrB,QAAA,EAAU,eAAA;AAAA,cACV,OAAA,EAAS;AAAA;AAAA,WACX,EACF,CAAA;AAAA,UACC;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAQ7B,SAAS,YAAA,CACP,WACA,KAAA,EACS;AACT,EAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACX,CAAC,CAAA,KAAM,SAAA,KAAc,CAAA,IAAK,cAAe,CAAA,CAAe;AAAA,GAC1D;AACF;;AC7MO,MAAM,kBAAA,GAAqB,UAAA,CAGhC,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,KAAA;AACpB,EAAA,uBACE,GAAA,CAAC,SAAI,IAAA,EAAK,UAAA,EAAW,YAAS,sBAAA,EAAwB,GAAG,MAAM,GAAA,EAAU,CAAA;AAE7E,CAAC;AAED,kBAAA,CAAmB,WAAA,GAAc,oBAAA;;ACnB1B,MAAM,6BAA6B,CACxC,CAAA,EACA,SACA,WAAA,EACA,cAAA,EACA,QACA,cAAA,KACG;AACH,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,IAAI,aAAA;AACJ,EAAA,QAAQ,EAAE,IAAA;AAAM,IACd,KAAK,OAAA;AAAA,IACL,KAAK,OAAA;AACH,MACE,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,WAAW,WAAA,CAAY,GAAG,EACnD,KAAA,EAAM;AACR,MAAA,aAAA,GAAgB,iBAAiB,QAAQ,CAAA;AACzC,MAAA,IAAI,CAAC,aAAA,EAAe;AACpB,MAAA,aAAA,CAAc,KAAA,EAAM;AACpB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA;AAAA,IACF,KAAK,WAAA;AACH,MAAA,MAAA,EAAQ,KAAA,EAAM;AACd,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,eAAA;AAAA,QACnD;AAAA,OACF;AACA,MAAA,IAAI,WAAA,CAAY,GAAA,KAAQ,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC1C,QAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,YAAA;AAAA,UACrC,kBAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,cAAA,CAAe,QAAQ,CAAC,CAAA,CAAE,WAAW,WAAA,CAAY,GAAG,EAAE,EAAE,CAAA;AACxD,QAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,UAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAK,CAAA,EAAE;AAAA,QAC3B,CAAC,CAAA;AACD,QAAA;AAAA,MACF;AAEA,MAAA,OAAA,CAAQ,YAAY,GAAA,GAAM,CAAC,EAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,YAAA;AAAA,QACvD,kBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,cAAA;AAAA,QACE,OAAA,CAAQ,YAAY,GAAA,GAAM,CAAC,EAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE;AAAA,OAC3D;AACA,MAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,QAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAK,WAAA,CAAY,MAAM,CAAA,EAAE;AAAA,MAC7C,CAAC,CAAA;AACD,MAAA;AAAA,IACF,KAAK,SAAA;AACH,MAAA,MAAA,EAAQ,KAAA,EAAM;AACd,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,eAAA;AAAA,QACnD;AAAA,OACF;AACA,MAAA,IAAI,WAAA,CAAY,QAAQ,CAAA,EAAG;AACzB,QAAA,OAAA,CAAQ,QAAQ,MAAA,GAAS,CAAC,EAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,YAAA;AAAA,UACtD,kBAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,cAAA;AAAA,UACE,OAAA,CAAQ,QAAQ,MAAA,GAAS,CAAC,EAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE;AAAA,SAC1D;AACA,QAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,UAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAK,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAA,QAC5C,CAAC,CAAA;AACD,QAAA;AAAA,MACF;AAEA,MAAA,OAAA,CAAQ,YAAY,GAAA,GAAM,CAAC,EAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,YAAA;AAAA,QACvD,kBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,cAAA;AAAA,QACE,OAAA,CAAQ,YAAY,GAAA,GAAM,CAAC,EAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE;AAAA,OAC3D;AACA,MAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,QAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAK,WAAA,CAAY,MAAM,CAAA,EAAE;AAAA,MAC7C,CAAC,CAAA;AACD,MAAA;AAAA,IACF,KAAK,YAAA;AACH,MAAA,MAAA,EAAQ,KAAA,EAAM;AACd,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,eAAA;AAAA,QACnD;AAAA,OACF;AACA,MAAA,IAAI,WAAA,CAAY,QAAQ,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,UAAA,CAAW,SAAS,CAAA,EAAG;AACtE,QAAA,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,UAAA,CAAW,CAAC,CAAA,CAAE,YAAA;AAAA,UACrC,kBAAA;AAAA,UACA;AAAA,SACF;AACA,QAAA,cAAA,CAAe,QAAQ,WAAA,CAAY,GAAG,EAAE,UAAA,CAAW,CAAC,EAAE,EAAE,CAAA;AACxD,QAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH,GAAA,EAAK;AAAA,WACP;AAAA,QACF,CAAC,CAAA;AACD,QAAA;AAAA,MACF;AAEA,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,WAAW,WAAA,CAAY,GAAA,GAAM,CAAC,CAAA,CAAE,YAAA;AAAA,QACvD,kBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,cAAA;AAAA,QACE,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,WAAW,WAAA,CAAY,GAAA,GAAM,CAAC,CAAA,CAAE;AAAA,OAC3D;AACA,MAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,QAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAK,WAAA,CAAY,MAAM,CAAA,EAAE;AAAA,MAC7C,CAAC,CAAA;AACD,MAAA;AAAA,IACF,KAAK,WAAA;AACH,MAAA,MAAA,EAAQ,KAAA,EAAM;AACd,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,eAAA;AAAA,QACnD;AAAA,OACF;AACA,MAAA,IAAI,WAAA,CAAY,QAAQ,CAAA,EAAG;AACzB,QAAA,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,UAAA,CACvB,QAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,UAAA,CAAW,MAAA,GAAS,CAC/C,CAAA,CAAE,YAAA,CAAa,oBAAoB,eAAe,CAAA;AAClD,QAAA,cAAA;AAAA,UACE,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,UAAA,CACvB,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,UAAA,CAAW,MAAA,GAAS,CAC/C,CAAA,CAAE;AAAA,SACJ;AACA,QAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH,KAAK,OAAA,CAAQ,WAAA,CAAY,GAAG,CAAA,CAAE,WAAW,MAAA,GAAS;AAAA,WACpD;AAAA,QACF,CAAC,CAAA;AACD,QAAA;AAAA,MACF;AAEA,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,WAAW,WAAA,CAAY,GAAA,GAAM,CAAC,CAAA,CAAE,YAAA;AAAA,QACvD,kBAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,cAAA;AAAA,QACE,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,WAAW,WAAA,CAAY,GAAA,GAAM,CAAC,CAAA,CAAE;AAAA,OAC3D;AACA,MAAA,cAAA,CAAe,CAAC,IAAA,KAAS;AACvB,QAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAK,WAAA,CAAY,MAAM,CAAA,EAAE;AAAA,MAC7C,CAAC,CAAA;AACD,MAAA;AAGA;AAEN,CAAA;AAEO,MAAM,aAAA,GAAgB,CAAC,EAAA,KAAgB;AAC5C,EAAA,OAAO,EAAA,CAAG,gBAAA;AAAA,IACR;AAAA,GACF;AACF,CAAA;;ACzHA,SAAS,aAAA,CAAiB,OAAyB,GAAA,EAA0B;AAC3E,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,EAAA,MAAM;AAAA,IACJ,aAAA;AAAA,IACA,iBAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,eAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,cAAA;AAEJ,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAC/C,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAI,CAAA;AAClC,EAAA,MAAM,WAAA,GAAc,YAAA,CAAa,CAAC,GAAA,EAAK,WAAW,CAAC,CAAA;AACnD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,EAAmB;AACjD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,EAAiB;AAC3D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA;AAAA,IACxC,QAAA,IAAY,mBAAmB;AAAC,GAClC;AACA,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,QAAA,CAAsB;AAAA,IAC1D,GAAA,EAAK,CAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACN,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,KAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,IAAI,CAAC,eAAe,OAAA,EAAS;AAC7B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,CAAE,YAAA;AAAA,MACnD,kBAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA;AAAA,EACF,CAAA;AACA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,EAAG,eAAA;AAAA,MACpD;AAAA,KACF;AACA,IAAA;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,CAAA,KAAqC;AAC7D,IAAA,SAAA,GAAY,CAAC,CAAA;AACb,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,IAAA,0BAAA;AAAA,MACE,CAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,WAAA,CAAY,OAAA;AAAA,MACZ,CAAC,EAAA,KAAO,gBAAA,CAAiB,EAAE;AAAA,KAC7B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAAkC;AAC5D,IAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AACzB,IAAA,IAAI,OAAA,IAAW,YAAY,OAAA,EAAS;AAClC,MAAA,OAAA,CAAQ,YAAY,GAAG,CAAA,CAAE,UAAA,CAAW,WAAA,CAAY,GAAG,CAAA,EAAG,eAAA;AAAA,QACpD;AAAA,OACF;AAEA,MAAA,MAAM,gBAAA,GAAoB,EAAE,MAAA,CAAuB,OAAA;AAAA,QACjD;AAAA,OACF;AAEA,MAAA,MAAM,SAAA,GAAa,EAAE,MAAA,CAAuB,OAAA;AAAA,QAC1C;AAAA,OACF;AACA,MAAA,IAAI,CAAC,SAAA,IAAa,SAAA,CAAU,YAAA,EAAc;AAC1C,MAAA,MAAM,MAAM,OAAA,CAAQ,SAAA,CAAU,CAAC,MAAA,KAAW,MAAA,CAAO,SAAS,SAAS,CAAA;AACnE,MAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,QAAC,QAAQ,GAAG,CAAA,CAAE,UAAA,CAAW,CAAC,EAAkB,KAAA,EAAM;AAClD,QAAA;AAAA,MACF;AACA,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,SAAA,CAAU,OAAA,CAAQ,IAAA;AAAA,QAClC,OAAA,CAAQ,GAAG,CAAA,CAAE,UAAA;AAAA,QACb,gBAAA,EAAkB,aAAa,UAAU,CAAA,KAAM,aAC3C,gBAAA,CAAiB,QAAA,CAAS,CAAC,CAAA,GAC3B;AAAA,OACN;AACA,MAAA,cAAA,CAAe,EAAE,GAAA,EAAK,GAAA,EAAK,CAAA;AAAA,IAC7B;AAAA,EACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,YAAY,OAAA,EAAS;AAC1B,IAAA,MAAM,SAAA,GAAY,YAAY,OAAA,CAAQ,gBAAA;AAAA,MACpC;AAAA,KACF;AACA,IAAA,MAAM,WAAW,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA,CAAE,GAAA,CAAI,CAAC,MAAA,KAAW;AACrD,MAAA,MAAM,eAAA,GAAkB,cAAc,MAAM,CAAA;AAC5C,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,UAAA,EAAY;AAAA,OACd;AAAA,IACF,CAAC,CAAA;AACD,IAAA,UAAA,CAAW,QAAQ,CAAA;AAAA,EACrB,CAAA,EAAG,CAAC,KAAA,CAAM,QAAQ,CAAC,CAAA;AAEnB,EAAA,MAAM,iBAAA,GAAoB,MAAA,CAAkB,EAAE,CAAA;AAC9C,EAAA,MAAM,mBAAA,GAAsB,MAAA;AAAA,IAC1B,QAAA,IAAY,mBAAmB;AAAC,GAClC;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,aAAa,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,CAAO,KAAK,SAAS,CAAA;AAChE,IAAA,MAAM,oBAAA,GAAuB,QAAA,CAAS,aAAA,EAAe,UAAA,EAAY,OAAO,CAAA;AACxE,IAAA,IACE,KAAK,SAAA,CAAU,iBAAA,CAAkB,OAAO,CAAA,KACxC,IAAA,CAAK,UAAU,oBAAoB,CAAA;AAEnC,MAAA;AAEF,IAAA,iBAAA,GAAoB,oBAAoB,CAAA;AACxC,IAAA,iBAAA,CAAkB,OAAA,GAAU,oBAAA;AAAA,EAC9B,CAAA,EAAG,CAAC,iBAAA,EAAmB,OAAA,EAAS,aAAa,CAAC,CAAA;AAE9C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,QAAA,EAAU;AAGf,IAAA,MAAM,WAAW,CAAC,IAAA,KAChB,OAAO,IAAA,KAAS,QAAA,GAAW,OAAQ,IAAA,CAAqB,KAAA;AAE1D,IAAA,MAAM,mBAAoB,QAAA,CAAuB,MAAA;AAAA,MAC/C,CAAC,KAAK,OAAA,KAAY;AAChB,QAAA,MAAM,YAAA,GAAe,SAAS,OAAO,CAAA;AACrC,QAAA,MAAM,KAAA,GAAQ,IAAI,IAAA,CAAK,CAAC,SAAS,QAAA,CAAS,IAAI,MAAM,YAAY,CAAA;AAChE,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,OAAO,CAAC,GAAG,GAAA,EAAK,OAAO,CAAA;AAAA,QACzB,CAAA,MAAO;AACL,UAAA,OAAO,GAAA;AAAA,QACT;AAAA,MACF,CAAA;AAAA,MACA;AAAC,KACH;AAEA,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,aAAa,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,CAAO,KAAK,SAAS,CAAA;AAChE,IAAA,MAAM,eAAA,GAAkB,QAAA,CAAS,gBAAA,EAAkB,UAAA,EAAY,OAAO,CAAA;AACtE,IAAA,IACE,KAAK,SAAA,CAAU,mBAAA,CAAoB,OAAO,CAAA,KAC1C,IAAA,CAAK,UAAU,eAAe,CAAA;AAE9B,MAAA;AACF,IAAA,gBAAA,CAAiB,eAAe,CAAA;AAChC,IAAA,mBAAA,CAAoB,OAAA,GAAU,eAAA;AAAA,EAChC,CAAA,EAAG,CAAC,OAAA,EAAS,QAAQ,CAAC,CAAA;AAEtB,EAAA,MAAM,qBAAqB,EAAA,CAAG,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAA;AAE7D,EAAA,IAAI,cAAA,CAAe,UAAU,MAAA,EAAW;AACtC,IAAA,MAAM,EAAE,QAAA,EAAAA,SAAAA,EAAU,KAAA,EAAO,GAAGC,OAAK,GAAI,cAAA;AAIrC,IAAA,MAAM,cAAA,GAAiBD,SAAAA;AAGvB,IAAA,uBACE,GAAA;AAAA,MAAC,eAAA,CAAgB,QAAA;AAAA,MAAhB;AAAA,QACC,KAAA,EAAO;AAAA,UACL,OAAA;AAAA,UACA,iBAAA;AAAA,UAGA,kBAAA,EAAoB,iBAAiB,EAAC;AAAA,UACtC,aAAA;AAAA,UACA,gBAAA;AAAA,UACA,KAAA;AAAA,UACA,UAAA,EAAY,CAAC,CAAC;AAAA,SAChB;AAAA,QAEA,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,WAAA;AAAA,YACL,SAAA,EAAW,kBAAA;AAAA,YACX,KAAA,EAAO,aAAA;AAAA,YACP,UAAA,EAAS,UAAA;AAAA,YACT,IAAA,EAAK,MAAA;AAAA,YACL,sBAAA,EAAqB,MAAA;AAAA,YACrB,OAAA,EAAS,cAAA;AAAA,YACT,MAAA,EAAQ,aAAA;AAAA,YACR,SAAA,EAAW,gBAAA;AAAA,YACX,WAAA,EAAa,kBAAA;AAAA,YACb,uBAAA,EAAuB,aAAA;AAAA,YACvB,QAAA,EAAU,CAAA;AAAA,YACT,GAAGC,KAAAA;AAAA,YAEH,QAAA,EAAA,cAAA,GAAiB;AAAA,cAChB,KAAA,EAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAsB;AACtC,gBAAA,OAAO,IAAA;AAAA,cACT,CAAC;AAAA,aACF;AAAA;AAAA;AACH;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,MAAM,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,cAAA;AAC9B,EAAA,uBACE,GAAA;AAAA,IAAC,eAAA,CAAgB,QAAA;AAAA,IAAhB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,OAAA;AAAA,QACA,iBAAA;AAAA,QAGA,aAAA;AAAA,QACA,kBAAA,EAAoB,iBAAiB,EAAC;AAAA,QACtC,gBAAA;AAAA,QACA,UAAA,EAAY,CAAC,CAAC,QAAA,IAAY,CAAC,CAAC;AAAA,OAC9B;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,SAAA,EAAW,kBAAA;AAAA,UACX,KAAA,EAAO,aAAA;AAAA,UACP,UAAA,EAAS,UAAA;AAAA,UACT,IAAA,EAAK,MAAA;AAAA,UACL,OAAA,EAAS,cAAA;AAAA,UACT,MAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAW,gBAAA;AAAA,UACX,WAAA,EAAa,kBAAA;AAAA,UACb,uBAAA,EAAuB,aAAA;AAAA,UACvB,QAAA,EAAU,CAAA;AAAA,UACT,GAAG,IAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEA,aAAA,CAAc,WAAA,GAAc,UAAA;AAsBrB,MAAM,WAAW,MAAA,CAAO,MAAA;AAAA,EAC7B,WAAW,aAAa,CAAA;AAAA,EAGxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcE,MAAA,EAAQ,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYR,UAAA,EAAY;AAAA;AAEhB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Listbox-BErqErNN.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\n/**\n * Context properties for the Listbox component\n * @template T - The type of additional properties for items\n */\nexport type ListboxContextProps<T> = {\n /** ID of the currently focused option */\n currentFocus?: string;\n /** Function to set the currently focused option */\n setCurrentFocus: Dispatch<\n SetStateAction<ListboxContextProps<T>[\"currentFocus\"]>\n >;\n /** Currently selected option(s) */\n selected: ListboxProps<T>[\"defaultSelected\"];\n /** Function to set the selected option(s) */\n setSelected: Dispatch<SetStateAction<ListboxContextProps<T>[\"selected\"]>>;\n /** List of available option elements */\n options: NodeListOf<HTMLElement> | undefined;\n /** Current selection mode */\n selectionMode: Exclude<ListboxProps<T>[\"selectionMode\"], undefined>;\n /** Callback when selection changes */\n onSelectionChange: ListboxProps<T>[\"onSelectionChange\"];\n /** Whether auto-select on focus is disabled */\n disableAutoSelectOnFocus: boolean;\n /** Array of items if using items prop */\n items?: unknown[];\n /** Whether the component is controlled */\n controlled?: boolean;\n};\n\n/**\n * Context for sharing listbox state between components\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 * Hook to access the listbox context\n * @returns The listbox context\n * @throws Error if used outside of a Listbox component\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/**\n * Props for the ListboxOption component\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListboxOptionProps = ComponentPropsWithoutRef<\"li\"> & {\n /** The value of the option */\n value?: string;\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Flex alignment for items */\n alignItems?: FlexProps[\"alignItems\"];\n /** Flex justification for items */\n justifyItems?: FlexProps[\"justifyItems\"];\n /** Flex alignment for content */\n alignContent?: FlexProps[\"alignContent\"];\n /** Flex justification for content */\n justifyContent?: FlexProps[\"justifyContent\"];\n /** Flex place-items property */\n placeItems?: FlexProps[\"placeItems\"];\n /** Flex place-content property */\n placeContent?: FlexProps[\"placeContent\"];\n} & (\n | {\n /** The item object when using items prop */\n item: ItemType;\n /** The display label for the option (optional if item is provided) */\n label?: string;\n }\n | {\n /** The display label for the option */\n label: string;\n /** No item object when using label directly */\n item?: never;\n }\n ) &\n DataTrackingId;\n\n/**\n * ListboxOption component for individual selectable items within a listbox.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <ListboxOption value=\"option1\" label=\"Option 1\" />\n */\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/**\n * Props for the ListboxOptionGroup component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListboxOptionGroupProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Whether the group is disabled */\n disabled?: boolean;\n /** The label for the option group */\n label: string;\n};\n\n/**\n * ListboxOptionGroup component for grouping related options within a listbox.\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <ListboxOptionGroup label=\"Fruits\">\n * <ListboxOption value=\"apple\">Apple</ListboxOption>\n * <ListboxOption value=\"banana\">Banana</ListboxOption>\n * </ListboxOptionGroup>\n */\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/**\n * Represents an item in the listbox with a label and optional disabled state.\n * @template T - The type of additional properties for the item\n */\nexport type ListboxItemType<T> = T & {\n /** The display label for the item */\n label: string;\n /** Whether the item is disabled and cannot be selected */\n disabled?: boolean;\n};\n\n/**\n * Props for single selection mode without items array\n */\ntype SingleWithoutItems = {\n /** Selection mode for single item selection */\n selectionMode?: \"single\";\n /** Whether to disable automatic selection when focusing on an option */\n disableAutoSelectOnFocus?: boolean;\n /** Currently selected item (controlled) */\n selected?: string;\n /** Default selected item (uncontrolled) */\n defaultSelected?: string;\n /** Callback when selection changes */\n onSelectionChange?: (selected: string | undefined) => void;\n /** Items array - not allowed in this mode */\n items?: never;\n /** Child elements to render */\n children: ReactNode;\n};\n\n/**\n * Props for multiple selection mode without items array\n */\ntype MultipleWithoutItems = {\n /** Selection mode for multiple item selection */\n selectionMode: \"multiple\";\n /** Auto-select on focus is not available in multiple mode */\n disableAutoSelectOnFocus?: never;\n /** Currently selected items (controlled) */\n selected?: string[];\n /** Default selected items (uncontrolled) */\n defaultSelected?: string[];\n /** Callback when selection changes */\n onSelectionChange?: (selected: string[]) => void;\n /** Items array - not allowed in this mode */\n items?: never;\n /** Child elements to render */\n children: ReactNode;\n};\n\n/**\n * Props for single selection mode with items array\n * @template T - The type of additional properties for items\n */\ntype SingleWithItems<T> = {\n /** Selection mode for single item selection */\n selectionMode?: \"single\";\n /** Whether to disable automatic selection when focusing on an option */\n disableAutoSelectOnFocus?: boolean;\n /** Currently selected item (controlled) */\n selected?: ListboxItemType<T>;\n /** Default selected item (uncontrolled) */\n defaultSelected?: ListboxItemType<T>;\n /** Callback when selection changes */\n onSelectionChange?: (selected: ListboxItemType<T> | undefined) => void;\n /** Array of items to render */\n items: ListboxItemType<T>[];\n /** Optional render function for items */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\n/**\n * Props for multiple selection mode with items array\n * @template T - The type of additional properties for items\n */\ntype MultipleWithItems<T> = {\n /** Selection mode for multiple item selection */\n selectionMode: \"multiple\";\n /** Auto-select on focus is not available in multiple mode */\n disableAutoSelectOnFocus?: never;\n /** Currently selected items (controlled) */\n selected?: ListboxItemType<T>[];\n /** Default selected items (uncontrolled) */\n defaultSelected?: ListboxItemType<T>[];\n /** Callback when selection changes */\n onSelectionChange?: (selected: ListboxItemType<T>[]) => void;\n /** Array of items to render */\n items: ListboxItemType<T>[];\n /** Optional render function for items */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\n/**\n * Props for the Listbox component\n * @template T - The type of additional properties for items\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 // Select next matching item on first key press if the list of matches contains our current selection WITH looping\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/**\n * Listbox component for selecting one or more items from a keyboard-navigable, scrollable list of options\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nexport const Listbox = Object.assign(\n forwardRef(ListboxInner) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxInner>,\n {\n /**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["styles","Check","node"],"mappings":"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"}