@servicetitan/anvil2 1.37.2 → 1.38.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 (388) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/{Alert-DMk5bG5T-kR7Uzp64.js → Alert-C3WoRkeN-D_6Yf63F.js} +5 -5
  3. package/dist/{Alert-DMk5bG5T-kR7Uzp64.js.map → Alert-C3WoRkeN-D_6Yf63F.js.map} +1 -1
  4. package/dist/{Alert-BsFFiu7g.js → Alert-DipY5OlC.js} +3 -2
  5. package/dist/Alert-DipY5OlC.js.map +1 -0
  6. package/dist/Alert.js +1 -1
  7. package/dist/{Announcement-BawOyXV3.js → Announcement-ButSjdLn.js} +5 -4
  8. package/dist/Announcement-ButSjdLn.js.map +1 -0
  9. package/dist/Announcement.js +1 -1
  10. package/dist/{AnvilProvider-DJ4lYJVW.js → AnvilProvider-Lh8YtV03.js} +2 -2
  11. package/dist/{AnvilProvider-DJ4lYJVW.js.map → AnvilProvider-Lh8YtV03.js.map} +1 -1
  12. package/dist/AnvilProvider.js +1 -1
  13. package/dist/{Avatar-C2IfIAxL-BUio7c00.js → Avatar-B20IdOEO-Di14brYV.js} +23 -4
  14. package/dist/Avatar-B20IdOEO-Di14brYV.js.map +1 -0
  15. package/dist/Avatar-hNOToS9S.js +42 -0
  16. package/dist/Avatar-hNOToS9S.js.map +1 -0
  17. package/dist/Avatar.js +1 -1
  18. package/dist/{Badge-Bko3Cw3L.js → Badge-7aZfE-LH.js} +3 -2
  19. package/dist/{Badge-Bko3Cw3L.js.map → Badge-7aZfE-LH.js.map} +1 -1
  20. package/dist/Badge.js +1 -1
  21. package/dist/{Breadcrumbs-BP5QXVje.js → Breadcrumbs-DJbCkSeD.js} +35 -5
  22. package/dist/Breadcrumbs-DJbCkSeD.js.map +1 -0
  23. package/dist/Breadcrumbs.js +1 -1
  24. package/dist/{Button-C-QpfgfF-CRBE7KiD.js → Button-BaHFf1AT-BQy-PFB5.js} +3 -3
  25. package/dist/{Button-C-QpfgfF-CRBE7KiD.js.map → Button-BaHFf1AT-BQy-PFB5.js.map} +1 -1
  26. package/dist/{Button-NTFmgcbr.js → Button-DMQKV2sV.js} +4 -3
  27. package/dist/Button-DMQKV2sV.js.map +1 -0
  28. package/dist/Button.js +1 -1
  29. package/dist/{ButtonCompound-Dp5J4W81-BkZ68L4-.js → ButtonCompound-Cs2A5X-Z-Dl3InVab.js} +2 -2
  30. package/dist/{ButtonCompound-Dp5J4W81-BkZ68L4-.js.map → ButtonCompound-Cs2A5X-Z-Dl3InVab.js.map} +1 -1
  31. package/dist/{ButtonCompound-DlgIyoB9.js → ButtonCompound-DGuF0zzT.js} +3 -2
  32. package/dist/ButtonCompound-DGuF0zzT.js.map +1 -0
  33. package/dist/ButtonCompound.js +1 -1
  34. package/dist/{ButtonLink-CSaxjhI2-KLVGwWjE.js → ButtonLink-5qlX0uZx-b9H7MGhk.js} +6 -4
  35. package/dist/ButtonLink-5qlX0uZx-b9H7MGhk.js.map +1 -0
  36. package/dist/{ButtonLink-B_uUWBLY.js → ButtonLink-B0NJuVk5.js} +4 -3
  37. package/dist/ButtonLink-B0NJuVk5.js.map +1 -0
  38. package/dist/ButtonLink.js +1 -1
  39. package/dist/{ButtonToggle-CvXIngRd-BiWpOOWr.js → ButtonToggle-Bm4KRl3o-B1-LbfjY.js} +3 -3
  40. package/dist/{ButtonToggle-CvXIngRd-BiWpOOWr.js.map → ButtonToggle-Bm4KRl3o-B1-LbfjY.js.map} +1 -1
  41. package/dist/{ButtonToggle-D3tcTRq9.js → ButtonToggle-CKVyEODc.js} +3 -2
  42. package/dist/ButtonToggle-CKVyEODc.js.map +1 -0
  43. package/dist/ButtonToggle.js +1 -1
  44. package/dist/{Calendar-Bn00Dnc--DcCNi1xz.js → Calendar-CohGSWFp-DFYJkf7Y.js} +9 -9
  45. package/dist/{Calendar-Bn00Dnc--DcCNi1xz.js.map → Calendar-CohGSWFp-DFYJkf7Y.js.map} +1 -1
  46. package/dist/Calendar-jl0s6W7p.js +130 -0
  47. package/dist/Calendar-jl0s6W7p.js.map +1 -0
  48. package/dist/Calendar.js +1 -1
  49. package/dist/{Card-DgxiRqS_.js → Card-U2IJPk8B.js} +3 -2
  50. package/dist/Card-U2IJPk8B.js.map +1 -0
  51. package/dist/{Card-BNT0qpxt-OPUNKZW6.js → Card-ZknG-yim-7W6rYSFV.js} +3 -3
  52. package/dist/{Card-BNT0qpxt-OPUNKZW6.js.map → Card-ZknG-yim-7W6rYSFV.js.map} +1 -1
  53. package/dist/Card.js +1 -1
  54. package/dist/{Checkbox-BIlp8xmW.js → Checkbox-DbDwtefR.js} +25 -2
  55. package/dist/Checkbox-DbDwtefR.js.map +1 -0
  56. package/dist/{Checkbox-CRurfeRE-BR_NXfh6.js → Checkbox-TIcImbEx-EgjesTNn.js} +6 -5
  57. package/dist/Checkbox-TIcImbEx-EgjesTNn.js.map +1 -0
  58. package/dist/Checkbox.js +1 -1
  59. package/dist/{Chip-BQ58RQ3v.js → Chip-BlLavyIK.js} +2 -2
  60. package/dist/Chip-BlLavyIK.js.map +1 -0
  61. package/dist/{Chip-DwiMFYBm-CIDM1d8e.js → Chip-_daV8CmM-CTke7zH4.js} +5 -5
  62. package/dist/{Chip-DwiMFYBm-CIDM1d8e.js.map → Chip-_daV8CmM-CTke7zH4.js.map} +1 -1
  63. package/dist/Chip.js +1 -1
  64. package/dist/{Combobox-Dde7-7tv.js → Combobox-7ADxZKDE.js} +187 -24
  65. package/dist/Combobox-7ADxZKDE.js.map +1 -0
  66. package/dist/Combobox.js +1 -1
  67. package/dist/{DateField-D-eVP6xh.js → DateField-CUO_26rh.js} +18 -13
  68. package/dist/DateField-CUO_26rh.js.map +1 -0
  69. package/dist/DateField.js +1 -1
  70. package/dist/{DaysOfTheWeek-Dz-aZ-LW.js → DaysOfTheWeek-CEKoAJSv.js} +7 -7
  71. package/dist/DaysOfTheWeek-CEKoAJSv.js.map +1 -0
  72. package/dist/DaysOfTheWeek.js +1 -1
  73. package/dist/{Details-ChZdA5Yo.js → Details-DVg0EOkv.js} +51 -3
  74. package/dist/Details-DVg0EOkv.js.map +1 -0
  75. package/dist/Details.js +1 -1
  76. package/dist/{Dialog-DJhN8QWP.js → Dialog-D6zpW-GE.js} +125 -4
  77. package/dist/Dialog-D6zpW-GE.js.map +1 -0
  78. package/dist/Dialog.js +1 -1
  79. package/dist/{Divider-Crum3dyV.js → Divider-CN36wX4s.js} +3 -2
  80. package/dist/Divider-CN36wX4s.js.map +1 -0
  81. package/dist/Divider.js +1 -1
  82. package/dist/Dnd.js +1 -1
  83. package/dist/{DndSort-Dy_D1EnT.js → DndSort-Cl0FCNQm.js} +6 -6
  84. package/dist/{DndSort-Dy_D1EnT.js.map → DndSort-Cl0FCNQm.js.map} +1 -1
  85. package/dist/DndSort.js +1 -1
  86. package/dist/Drawer-qb7Q0BAm.js +142 -0
  87. package/dist/Drawer-qb7Q0BAm.js.map +1 -0
  88. package/dist/Drawer.js +1 -1
  89. package/dist/{EditCard-BNwoKJ_6.js → EditCard-C0hD1VPA.js} +7 -6
  90. package/dist/EditCard-C0hD1VPA.js.map +1 -0
  91. package/dist/EditCard.js +1 -1
  92. package/dist/{FieldMessage-CERWyhwG.js → FieldMessage-Cg3zcgk5.js} +2 -2
  93. package/dist/FieldMessage-Cg3zcgk5.js.map +1 -0
  94. package/dist/{FieldMessage-Js4e1ezw-DZ6YDx24.js → FieldMessage-ChFXWVDb-loVSCnCM.js} +3 -3
  95. package/dist/{FieldMessage-Js4e1ezw-DZ6YDx24.js.map → FieldMessage-ChFXWVDb-loVSCnCM.js.map} +1 -1
  96. package/dist/FieldMessage.js +1 -1
  97. package/dist/{Flex-EX9xObMl-BPBQ7nb5.js → Flex-CiK7uNUu-BfxHG4L0.js} +3 -3
  98. package/dist/{Flex-EX9xObMl-BPBQ7nb5.js.map → Flex-CiK7uNUu-BfxHG4L0.js.map} +1 -1
  99. package/dist/{Flex-DT1l-wJc.js → Flex-Ln6PmaDl.js} +3 -2
  100. package/dist/Flex-Ln6PmaDl.js.map +1 -0
  101. package/dist/Flex.js +1 -1
  102. package/dist/Grid-CMcDeSYT.js +33 -0
  103. package/dist/Grid-CMcDeSYT.js.map +1 -0
  104. package/dist/{Grid-BmNHm7Fa.js → Grid-DFAd8mTe.js} +2 -2
  105. package/dist/{Grid-BmNHm7Fa.js.map → Grid-DFAd8mTe.js.map} +1 -1
  106. package/dist/Grid.js +1 -1
  107. package/dist/{HammerProvider-BEJW4XcH-BBKdl0zs.js → HammerProvider-CYP98rq3-Dd9GVIyP.js} +3 -3
  108. package/dist/{HammerProvider-BEJW4XcH-BBKdl0zs.js.map → HammerProvider-CYP98rq3-Dd9GVIyP.js.map} +1 -1
  109. package/dist/Helper-C9sHaTrI-C5fAsK6i.js +46 -0
  110. package/dist/Helper-C9sHaTrI-C5fAsK6i.js.map +1 -0
  111. package/dist/Helper-C9sHaTrI.css +21 -0
  112. package/dist/{Icon-BrdmZw1i-CG-LzgEz.js → Icon-B6HmlQiR-BxQkO3X5.js} +3 -3
  113. package/dist/{Icon-BrdmZw1i-CG-LzgEz.js.map → Icon-B6HmlQiR-BxQkO3X5.js.map} +1 -1
  114. package/dist/{Icon-CcUV8glf.js → Icon-BgKqBmlj.js} +3 -2
  115. package/dist/Icon-BgKqBmlj.js.map +1 -0
  116. package/dist/Icon.js +1 -1
  117. package/dist/{InputMask-CeqX68uX.js → InputMask-DKPqOpHs.js} +3 -2
  118. package/dist/InputMask-DKPqOpHs.js.map +1 -0
  119. package/dist/InputMask-kJ-hlK0O-Ctwa0U7r.js +231 -0
  120. package/dist/InputMask-kJ-hlK0O-Ctwa0U7r.js.map +1 -0
  121. package/dist/InputMask.js +1 -1
  122. package/dist/Layout-CUUb2PVr.js.map +1 -1
  123. package/dist/{Link-K3nk4QAp.js → Link-DZa0wmkA.js} +3 -3
  124. package/dist/Link-DZa0wmkA.js.map +1 -0
  125. package/dist/{Link-CVN5Mwtx-B08PO1ef.js → Link-Dqp_XXl_-Bv20l_tY.js} +4 -4
  126. package/dist/{Link-CVN5Mwtx-B08PO1ef.js.map → Link-Dqp_XXl_-Bv20l_tY.js.map} +1 -1
  127. package/dist/Link.js +1 -1
  128. package/dist/{ListView-zlg5FlKW.js → ListView-0xHc5wT6.js} +87 -47
  129. package/dist/ListView-0xHc5wT6.js.map +1 -0
  130. package/dist/ListView.js +1 -1
  131. package/dist/{Listbox-DLlT8qbJ-BvhkfmIf.js → Listbox-BvJLSAVO-Br5k6fmq.js} +51 -10
  132. package/dist/Listbox-BvJLSAVO-Br5k6fmq.js.map +1 -0
  133. package/dist/Listbox-dVARiucB.js +67 -0
  134. package/dist/Listbox-dVARiucB.js.map +1 -0
  135. package/dist/Listbox.js +1 -1
  136. package/dist/{LocalizationProvider-FkvhW-le-DPTpcI0N.js → LocalizationProvider-VtRAfGBT-Bo8XuFoE.js} +2 -2
  137. package/dist/{LocalizationProvider-FkvhW-le-DPTpcI0N.js.map → LocalizationProvider-VtRAfGBT-Bo8XuFoE.js.map} +1 -1
  138. package/dist/LocalizationProvider.js +1 -1
  139. package/dist/{Menu-BjzTwENs.js → Menu-BAuADOyt.js} +60 -10
  140. package/dist/Menu-BAuADOyt.js.map +1 -0
  141. package/dist/Menu.js +1 -1
  142. package/dist/{Overflow-vc1mxjUD.js → Overflow-B6rIOkAI.js} +27 -2
  143. package/dist/Overflow-B6rIOkAI.js.map +1 -0
  144. package/dist/{Overflow-ENfRRD_5-DLHLZ02e.js → Overflow-BrXwlYpn-CtqaiNgb.js} +25 -4
  145. package/dist/Overflow-BrXwlYpn-CtqaiNgb.js.map +1 -0
  146. package/dist/Overflow.js +1 -1
  147. package/dist/{Page-CSM-a2UE.js → Page-CtwsyE3i.js} +131 -15
  148. package/dist/Page-CtwsyE3i.js.map +1 -0
  149. package/dist/Page.js +1 -1
  150. package/dist/Popover-Bnkwq99S.js +135 -0
  151. package/dist/Popover-Bnkwq99S.js.map +1 -0
  152. package/dist/{Popover-CpyYXmal-I-E-B4u8.js → Popover-VztF0YHt-ci3tYiye.js} +80 -8
  153. package/dist/Popover-VztF0YHt-ci3tYiye.js.map +1 -0
  154. package/dist/Popover.js +1 -1
  155. package/dist/{ProgressBar-B25Wxpaf.js → ProgressBar-BotOFymw.js} +3 -2
  156. package/dist/ProgressBar-BotOFymw.js.map +1 -0
  157. package/dist/{ProgressBar-CeClhdcf-Dcft7ZjO.js → ProgressBar-Cfi5zZRy-BpESsdh_.js} +164 -99
  158. package/dist/ProgressBar-Cfi5zZRy-BpESsdh_.js.map +1 -0
  159. package/dist/ProgressBar-Cfi5zZRy.css +671 -0
  160. package/dist/ProgressBar.js +1 -1
  161. package/dist/{Radio-BlMDLvPw-DUeywcYR.js → Radio-7U7IBI58-BDhdZJoC.js} +25 -5
  162. package/dist/Radio-7U7IBI58-BDhdZJoC.js.map +1 -0
  163. package/dist/Radio-D4rRt1a6.js +66 -0
  164. package/dist/Radio-D4rRt1a6.js.map +1 -0
  165. package/dist/Radio.js +1 -1
  166. package/dist/{SearchField-D3z4LjJg.js → SearchField-Bz4HPxCQ.js} +5 -4
  167. package/dist/SearchField-Bz4HPxCQ.js.map +1 -0
  168. package/dist/SearchField.js +1 -1
  169. package/dist/{SegmentedControl-D_ADGpVy.js → SegmentedControl-DKMQuf7s.js} +41 -2
  170. package/dist/SegmentedControl-DKMQuf7s.js.map +1 -0
  171. package/dist/SegmentedControl.js +1 -1
  172. package/dist/{SelectCard-D26y01WZ-BWN9G09J.js → SelectCard-B5EqtxOK-CpCgVjV8.js} +46 -17
  173. package/dist/SelectCard-B5EqtxOK-CpCgVjV8.js.map +1 -0
  174. package/dist/SelectCard.js +1 -1
  175. package/dist/SelectCardGroup-DsHZgCqA.js +49 -0
  176. package/dist/SelectCardGroup-DsHZgCqA.js.map +1 -0
  177. package/dist/{SideNav-C7wc1_JK.js → SideNav-DEoGpeqJ.js} +130 -10
  178. package/dist/SideNav-DEoGpeqJ.js.map +1 -0
  179. package/dist/SideNav.js +1 -1
  180. package/dist/Skeleton-COxTdwjO.js +398 -0
  181. package/dist/Skeleton-COxTdwjO.js.map +1 -0
  182. package/dist/Skeleton.js +1 -1
  183. package/dist/{Spinner-Bc5-_6pK.js → Spinner-C1r3COiQ.js} +2 -1
  184. package/dist/Spinner-C1r3COiQ.js.map +1 -0
  185. package/dist/Spinner.js +1 -1
  186. package/dist/SrOnly-C_I8eH4C.js.map +1 -1
  187. package/dist/{Stepper-Bp0w8eRW.js → Stepper-CwIV7ZiT.js} +281 -6
  188. package/dist/Stepper-CwIV7ZiT.js.map +1 -0
  189. package/dist/Stepper.js +1 -1
  190. package/dist/{Switch-BbHIwrGc.js → Switch-Dd9tJFmG.js} +20 -10
  191. package/dist/Switch-Dd9tJFmG.js.map +1 -0
  192. package/dist/Switch.css +23 -24
  193. package/dist/Switch.js +1 -1
  194. package/dist/{Tab-DcOQTX5Z.js → Tab-BSC7e4rM.js} +127 -10
  195. package/dist/Tab-BSC7e4rM.js.map +1 -0
  196. package/dist/Tab.js +1 -1
  197. package/dist/{Text-BDYfD8j4.js → Text-B91g6xKn.js} +3 -2
  198. package/dist/Text-B91g6xKn.js.map +1 -0
  199. package/dist/{Text-CN_-FF7J-Dzoy8A70.js → Text-DCvcLCvf-DlmnnjTR.js} +3 -3
  200. package/dist/{Text-CN_-FF7J-Dzoy8A70.js.map → Text-DCvcLCvf-DlmnnjTR.js.map} +1 -1
  201. package/dist/Text.js +1 -1
  202. package/dist/{TextField-Ds9EKvSs.js → TextField-BYyyw3m2.js} +3 -2
  203. package/dist/{TextField-Ds9EKvSs.js.map → TextField-BYyyw3m2.js.map} +1 -1
  204. package/dist/{TextField-Bp1q4hMI-2jGZG2k2.js → TextField-CGJtMoil-CJqYM83o.js} +4 -3
  205. package/dist/TextField-CGJtMoil-CJqYM83o.js.map +1 -0
  206. package/dist/TextField.js +1 -1
  207. package/dist/{Textarea-CMELRfU8.js → Textarea-AczEXhHB.js} +5 -3
  208. package/dist/Textarea-AczEXhHB.js.map +1 -0
  209. package/dist/Textarea.js +1 -1
  210. package/dist/{ThemeProvider-D2x18Y1l.js → ThemeProvider-BKave7Ha.js} +2 -2
  211. package/dist/{ThemeProvider-D2x18Y1l.js.map → ThemeProvider-BKave7Ha.js.map} +1 -1
  212. package/dist/{ThemeProvider-BIeaAmWx-DVYOQ6bw.js → ThemeProvider-CR67FJg0-DYVRlJRA.js} +3 -3
  213. package/dist/{ThemeProvider-BIeaAmWx-DVYOQ6bw.js.map → ThemeProvider-CR67FJg0-DYVRlJRA.js.map} +1 -1
  214. package/dist/ThemeProvider.js +1 -1
  215. package/dist/Toast.js +1 -1
  216. package/dist/{Toolbar-CYwR6GQG.js → Toolbar-Cu3u0TRX.js} +183 -14
  217. package/dist/Toolbar-Cu3u0TRX.js.map +1 -0
  218. package/dist/Toolbar.css +1 -11
  219. package/dist/Toolbar.js +1 -1
  220. package/dist/Tooltip-BL_bgvwA.js +73 -0
  221. package/dist/Tooltip-BL_bgvwA.js.map +1 -0
  222. package/dist/Tooltip.js +1 -1
  223. package/dist/assets/icons/st/insurance_work_queue.svg +1 -0
  224. package/dist/assets/icons/st/production_work_queue.svg +1 -0
  225. package/dist/assets/icons/st.ts +2 -0
  226. package/dist/components/Alert/Alert.d.ts +37 -0
  227. package/dist/components/Announcement/Announcement.d.ts +37 -0
  228. package/dist/components/Avatar/Avatar.d.ts +73 -0
  229. package/dist/components/Badge/Badge.d.ts +27 -0
  230. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +39 -0
  231. package/dist/components/Button/Button.d.ts +28 -0
  232. package/dist/components/ButtonCompound/ButtonCompound.d.ts +24 -0
  233. package/dist/components/ButtonLink/ButtonLink.d.ts +30 -0
  234. package/dist/components/ButtonToggle/ButtonToggle.d.ts +32 -0
  235. package/dist/components/Calendar/Calendar.d.ts +114 -0
  236. package/dist/components/Card/Card.d.ts +24 -0
  237. package/dist/components/Checkbox/Checkbox.d.ts +77 -0
  238. package/dist/components/Chip/Chip.d.ts +34 -0
  239. package/dist/components/Combobox/Combobox.d.ts +442 -2
  240. package/dist/components/DateField/DateField.d.ts +65 -0
  241. package/dist/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +44 -6
  242. package/dist/components/Details/Details.d.ts +68 -0
  243. package/dist/components/Dialog/Dialog.d.ts +178 -0
  244. package/dist/components/Divider/Divider.d.ts +24 -0
  245. package/dist/components/Drawer/Drawer.d.ts +200 -0
  246. package/dist/components/EditCard/EditCard.d.ts +50 -0
  247. package/dist/components/FieldMessage/FieldMessage.d.ts +31 -0
  248. package/dist/components/Flex/Flex.d.ts +48 -0
  249. package/dist/components/Grid/Grid.d.ts +74 -0
  250. package/dist/components/Icon/Icon.d.ts +39 -0
  251. package/dist/components/InputMask/InputMask.d.ts +57 -0
  252. package/dist/components/Layout/Layout.d.ts +131 -0
  253. package/dist/components/Link/Link.d.ts +47 -0
  254. package/dist/components/ListView/ListView.d.ts +85 -0
  255. package/dist/components/Listbox/Listbox.d.ts +124 -0
  256. package/dist/components/Menu/Menu.d.ts +85 -1
  257. package/dist/components/Overflow/Overflow.d.ts +84 -0
  258. package/dist/components/Page/Page.d.ts +443 -0
  259. package/dist/components/Popover/Popover.d.ts +268 -0
  260. package/dist/components/ProgressBar/ProgressBar.d.ts +52 -0
  261. package/dist/components/Radio/Radio.d.ts +121 -0
  262. package/dist/components/SearchField/SearchField.d.ts +37 -0
  263. package/dist/components/SegmentedControl/SegmentedControl.d.ts +98 -0
  264. package/dist/components/SelectCard/SelectCard.d.ts +60 -0
  265. package/dist/components/SelectCard/SelectCardGroup.d.ts +37 -0
  266. package/dist/components/SideNav/SideNav.d.ts +192 -2
  267. package/dist/components/SideNav/SideNavProvider.d.ts +30 -0
  268. package/dist/components/Skeleton/Skeleton.d.ts +130 -0
  269. package/dist/components/Spinner/Spinner.d.ts +25 -0
  270. package/dist/components/SrOnly/SrOnly.d.ts +19 -0
  271. package/dist/components/Stepper/Stepper.d.ts +335 -0
  272. package/dist/components/Switch/Switch.d.ts +33 -0
  273. package/dist/components/Tab/Tab.d.ts +152 -0
  274. package/dist/components/Text/Text.d.ts +37 -0
  275. package/dist/components/Textarea/Textarea.d.ts +50 -0
  276. package/dist/components/Toast/Toaster.d.ts +43 -0
  277. package/dist/components/Toast/toast.d.ts +31 -0
  278. package/dist/components/Toolbar/Toolbar.d.ts +251 -0
  279. package/dist/components/Tooltip/Tooltip.d.ts +123 -0
  280. package/dist/{floating-ui.react-Domgunz0.js → floating-ui.react-BFNinq1w.js} +2 -2
  281. package/dist/{floating-ui.react-Domgunz0.js.map → floating-ui.react-BFNinq1w.js.map} +1 -1
  282. package/dist/hooks/useSize/index.d.ts +15 -0
  283. package/dist/hooks/useTrackingId/index.d.ts +19 -0
  284. package/dist/{index-CdSSO4ct-elKOdXPf.js → index-CKfiQx8n-4nziUo7G.js} +4 -4
  285. package/dist/{index-CdSSO4ct-elKOdXPf.js.map → index-CKfiQx8n-4nziUo7G.js.map} +1 -1
  286. package/dist/index.js +57 -57
  287. package/dist/{toast-C-6NdR43.js → toast-B39L6vJ0.js} +3 -3
  288. package/dist/toast-B39L6vJ0.js.map +1 -0
  289. package/dist/{useLayoutPropsUtil-GT5myWCm-Clw_nEze.js → useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js} +6 -4
  290. package/dist/useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js.map +1 -0
  291. package/dist/useLinkStyles.js +1 -1
  292. package/dist/useSize.js.map +1 -1
  293. package/dist/{useSwipe-DIUHs7T5-DIUHs7T5.js → useSwipe-CULmVQEk-CULmVQEk.js} +2 -2
  294. package/dist/useSwipe-CULmVQEk-CULmVQEk.js.map +1 -0
  295. package/dist/useSwipe.js +1 -1
  296. package/dist/useTrackingId.js.map +1 -1
  297. package/package.json +3 -2
  298. package/dist/Alert-BsFFiu7g.js.map +0 -1
  299. package/dist/Announcement-BawOyXV3.js.map +0 -1
  300. package/dist/Avatar-C2IfIAxL-BUio7c00.js.map +0 -1
  301. package/dist/Avatar-DYCN2A_l.js +0 -20
  302. package/dist/Avatar-DYCN2A_l.js.map +0 -1
  303. package/dist/Breadcrumbs-BP5QXVje.js.map +0 -1
  304. package/dist/Button-NTFmgcbr.js.map +0 -1
  305. package/dist/Button2.css +0 -8
  306. package/dist/ButtonCompound-DlgIyoB9.js.map +0 -1
  307. package/dist/ButtonLink-B_uUWBLY.js.map +0 -1
  308. package/dist/ButtonLink-CSaxjhI2-KLVGwWjE.js.map +0 -1
  309. package/dist/ButtonLink.css +0 -10
  310. package/dist/ButtonToggle-D3tcTRq9.js.map +0 -1
  311. package/dist/Calendar-B4MO-Uhv.js +0 -57
  312. package/dist/Calendar-B4MO-Uhv.js.map +0 -1
  313. package/dist/Card-DgxiRqS_.js.map +0 -1
  314. package/dist/Checkbox-BIlp8xmW.js.map +0 -1
  315. package/dist/Checkbox-CRurfeRE-BR_NXfh6.js.map +0 -1
  316. package/dist/Chip-BQ58RQ3v.js.map +0 -1
  317. package/dist/Combobox-Dde7-7tv.js.map +0 -1
  318. package/dist/DateField-D-eVP6xh.js.map +0 -1
  319. package/dist/DaysOfTheWeek-Dz-aZ-LW.js.map +0 -1
  320. package/dist/Details-ChZdA5Yo.js.map +0 -1
  321. package/dist/Dialog-DJhN8QWP.js.map +0 -1
  322. package/dist/Divider-Crum3dyV.js.map +0 -1
  323. package/dist/Drawer-BFfakO8h.js +0 -66
  324. package/dist/Drawer-BFfakO8h.js.map +0 -1
  325. package/dist/EditCard-BNwoKJ_6.js.map +0 -1
  326. package/dist/FieldMessage-CERWyhwG.js.map +0 -1
  327. package/dist/Flex-DT1l-wJc.js.map +0 -1
  328. package/dist/Grid-h9VbEjJe.js +0 -14
  329. package/dist/Grid-h9VbEjJe.js.map +0 -1
  330. package/dist/Icon-CcUV8glf.js.map +0 -1
  331. package/dist/InputMask-CeqX68uX.js.map +0 -1
  332. package/dist/InputMask-DfpkWGmY-D8QEut94.js +0 -323
  333. package/dist/InputMask-DfpkWGmY-D8QEut94.js.map +0 -1
  334. package/dist/Link-K3nk4QAp.js.map +0 -1
  335. package/dist/ListView-zlg5FlKW.js.map +0 -1
  336. package/dist/Listbox-36Mda5DS.js +0 -37
  337. package/dist/Listbox-36Mda5DS.js.map +0 -1
  338. package/dist/Listbox-DLlT8qbJ-BvhkfmIf.js.map +0 -1
  339. package/dist/Menu-BjzTwENs.js.map +0 -1
  340. package/dist/Overflow-ENfRRD_5-DLHLZ02e.js.map +0 -1
  341. package/dist/Overflow-vc1mxjUD.js.map +0 -1
  342. package/dist/Page-CSM-a2UE.js.map +0 -1
  343. package/dist/Popover-CpyYXmal-I-E-B4u8.js.map +0 -1
  344. package/dist/Popover-a81z9wSj.js +0 -56
  345. package/dist/Popover-a81z9wSj.js.map +0 -1
  346. package/dist/ProgressBar-B25Wxpaf.js.map +0 -1
  347. package/dist/ProgressBar-CeClhdcf-Dcft7ZjO.js.map +0 -1
  348. package/dist/ProgressBar-CeClhdcf.css +0 -666
  349. package/dist/Radio-BlMDLvPw-DUeywcYR.js.map +0 -1
  350. package/dist/Radio-D3CqAXiM.js +0 -34
  351. package/dist/Radio-D3CqAXiM.js.map +0 -1
  352. package/dist/SearchField-D3z4LjJg.js.map +0 -1
  353. package/dist/SegmentedControl-D_ADGpVy.js.map +0 -1
  354. package/dist/SelectCard-D26y01WZ-BWN9G09J.js.map +0 -1
  355. package/dist/SelectCardGroup-DxA6P-Q7.js +0 -21
  356. package/dist/SelectCardGroup-DxA6P-Q7.js.map +0 -1
  357. package/dist/SideNav-C7wc1_JK.js.map +0 -1
  358. package/dist/Skeleton-CdzDKQi4.js +0 -215
  359. package/dist/Skeleton-CdzDKQi4.js.map +0 -1
  360. package/dist/Spinner-Bc5-_6pK.js.map +0 -1
  361. package/dist/Stepper-Bp0w8eRW.js.map +0 -1
  362. package/dist/Switch-BbHIwrGc.js.map +0 -1
  363. package/dist/Tab-DcOQTX5Z.js.map +0 -1
  364. package/dist/Text-BDYfD8j4.js.map +0 -1
  365. package/dist/TextField-Bp1q4hMI-2jGZG2k2.js.map +0 -1
  366. package/dist/Textarea-CMELRfU8.js.map +0 -1
  367. package/dist/Toolbar-CYwR6GQG.js.map +0 -1
  368. package/dist/Tooltip-C-UNrFz3.js +0 -34
  369. package/dist/Tooltip-C-UNrFz3.js.map +0 -1
  370. package/dist/toast-C-6NdR43.js.map +0 -1
  371. package/dist/useLayoutPropsUtil-GT5myWCm-Clw_nEze.js.map +0 -1
  372. package/dist/useSwipe-DIUHs7T5-DIUHs7T5.js.map +0 -1
  373. /package/dist/{Alert-DMk5bG5T.css → Alert-C3WoRkeN.css} +0 -0
  374. /package/dist/{Avatar-C2IfIAxL.css → Avatar-B20IdOEO.css} +0 -0
  375. /package/dist/{Calendar-Bn00Dnc-.css → Calendar-CohGSWFp.css} +0 -0
  376. /package/dist/{Card-BNT0qpxt.css → Card-ZknG-yim.css} +0 -0
  377. /package/dist/{Chip-DwiMFYBm.css → Chip-_daV8CmM.css} +0 -0
  378. /package/dist/{FieldMessage-Js4e1ezw.css → FieldMessage-ChFXWVDb.css} +0 -0
  379. /package/dist/{Flex-EX9xObMl.css → Flex-CiK7uNUu.css} +0 -0
  380. /package/dist/{Icon-BrdmZw1i.css → Icon-B6HmlQiR.css} +0 -0
  381. /package/dist/{Link-CVN5Mwtx.css → Link-Dqp_XXl_.css} +0 -0
  382. /package/dist/{Overflow-ENfRRD_5.css → Overflow-BrXwlYpn.css} +0 -0
  383. /package/dist/{Popover-CpyYXmal.css → Popover-VztF0YHt.css} +0 -0
  384. /package/dist/{Radio-BlMDLvPw.css → Radio-7U7IBI58.css} +0 -0
  385. /package/dist/{SelectCard-D26y01WZ.css → SelectCard-B5EqtxOK.css} +0 -0
  386. /package/dist/{Text-CN_-FF7J.css → Text-DCvcLCvf.css} +0 -0
  387. /package/dist/{ThemeProvider-BIeaAmWx.css → ThemeProvider-CR67FJg0.css} +0 -0
  388. /package/dist/{index-CdSSO4ct.css → index-CKfiQx8n.css} +0 -0
@@ -3,10 +3,10 @@ import { forwardRef, useRef, useId, useState, useEffect, useContext, createConte
3
3
  import { useTrackingId } from './useTrackingId.js';
4
4
  import { c as cx } from './index-tZvMCc77.js';
5
5
  import { s as styles } from './ListView.module-MVsNF0X0-MVsNF0X0.js';
6
- import { g as getActiveElement } from './ProgressBar-CeClhdcf-Dcft7ZjO.js';
7
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-GT5myWCm-Clw_nEze.js';
6
+ import { g as getActiveElement } from './ProgressBar-Cfi5zZRy-BpESsdh_.js';
7
+ import { a as Checkbox } from './Checkbox-TIcImbEx-EgjesTNn.js';
8
8
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
9
- import { a as Checkbox } from './Checkbox-CRurfeRE-BR_NXfh6.js';
9
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
10
10
 
11
11
  function mapOrder(array, order, key) {
12
12
  array.sort(function(a, b) {
@@ -150,19 +150,24 @@ const listViewKeyboardNavigation = (e, options, focusedItem, setFocusedItem, par
150
150
  }
151
151
  };
152
152
 
153
+ const ListViewContext = createContext(null);
154
+
155
+ function useListView() {
156
+ const context = useContext(ListViewContext);
157
+ if (context == null) {
158
+ throw new Error("useListView must be wrapped in <ListView />");
159
+ }
160
+ return context;
161
+ }
162
+
153
163
  const ListViewOption$1 = forwardRef(
154
164
  (props, ref) => {
155
165
  const {
156
166
  className,
157
167
  children,
158
- onClick,
159
- onKeyDown,
160
- onKeyUp,
161
- onBlur,
162
168
  onChange,
163
169
  style,
164
170
  disabled: disabledProp,
165
- id,
166
171
  ...remainingProps
167
172
  } = props;
168
173
  const optionRef = useRef(null);
@@ -171,7 +176,7 @@ const ListViewOption$1 = forwardRef(
171
176
  const cellRef = useRef(null);
172
177
  const rowId = useId();
173
178
  const [isSelected, setIsSelected] = useState(false);
174
- const { selectedItems, setSelectedItems, controlled } = useListView();
179
+ const { selectedItems, setSelectedItems, controlled, onSelectionChange } = useListView();
175
180
  const disabled = "item" in remainingProps ? disabledProp || remainingProps.item.disabled : disabledProp;
176
181
  useEffect(() => {
177
182
  const focusables = optionRef.current?.querySelectorAll(
@@ -200,38 +205,33 @@ const ListViewOption$1 = forwardRef(
200
205
  onChange?.(e, { checked: isSelected });
201
206
  };
202
207
  const onClickHandler = () => {
203
- if (controlled) return;
204
208
  updateSelectedItems();
205
209
  };
210
+ const removeItemFromSelectedItems = (itemToRemove) => {
211
+ return selectedItems.filter((item) => {
212
+ if (typeof itemToRemove === "string") {
213
+ return item !== itemToRemove;
214
+ }
215
+ return item?.label !== itemToRemove.label;
216
+ });
217
+ };
218
+ const addItemFromSelectedItems = (itemToAdd) => {
219
+ return [...selectedItems, itemToAdd];
220
+ };
206
221
  function updateSelectedItems() {
207
- if ("item" in remainingProps) {
208
- const isPartOfSelectedItems = selectedItems.some((item) => {
209
- return item.label === remainingProps.item.label;
210
- });
211
- if (isPartOfSelectedItems) {
212
- setSelectedItems(
213
- (prev) => prev.filter(
214
- (item) => item?.label !== remainingProps.item.label
215
- )
216
- );
217
- setIsSelected(false);
218
- } else {
219
- setSelectedItems((prev) => [...prev, remainingProps.item]);
220
- setIsSelected(true);
222
+ const currentItem = "item" in remainingProps ? remainingProps.item : remainingProps.label;
223
+ const isPartOfSelectedItems = selectedItems.some((item) => {
224
+ if (typeof currentItem === "string") {
225
+ return item === currentItem;
221
226
  }
227
+ return item?.label === currentItem.label;
228
+ });
229
+ const newSelectedItems = isPartOfSelectedItems ? removeItemFromSelectedItems(currentItem) : addItemFromSelectedItems(currentItem);
230
+ if (controlled) {
231
+ onSelectionChange?.(newSelectedItems);
222
232
  } else {
223
- const isPartOfSelectedItems = selectedItems.some((item) => {
224
- return item === remainingProps.label;
225
- });
226
- if (isPartOfSelectedItems) {
227
- setSelectedItems(
228
- (prev) => prev.filter((item) => item !== remainingProps.label)
229
- );
230
- setIsSelected(false);
231
- } else {
232
- setSelectedItems((prev) => [...prev, remainingProps.label]);
233
- setIsSelected(true);
234
- }
233
+ setSelectedItems(newSelectedItems);
234
+ setIsSelected(!isPartOfSelectedItems);
235
235
  }
236
236
  }
237
237
  if ("item" in remainingProps) {
@@ -302,7 +302,6 @@ const ListViewOptionCell$1 = forwardRef((props, ref) => {
302
302
  });
303
303
  ListViewOptionCell$1.displayName = "ListViewOptionCell";
304
304
 
305
- const ListViewContext = createContext(null);
306
305
  const getFocusables = (el) => {
307
306
  return el.querySelectorAll(
308
307
  "button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])"
@@ -335,7 +334,7 @@ const ListViewElement$1 = function(props, ref) {
335
334
  ...style,
336
335
  ...layoutStyles
337
336
  };
338
- const onFocusHandler = (e) => {
337
+ const onFocusHandler = () => {
339
338
  if (!isFocusVisible.current) return;
340
339
  if (!options) return;
341
340
  options[focusedItem.row].focusables[focusedItem.col].setAttribute(
@@ -431,7 +430,6 @@ const ListViewElement$1 = function(props, ref) {
431
430
  const orderedSelected = mapOrder(filterDuplicates, compareArr, "label");
432
431
  if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelected))
433
432
  return;
434
- onSelectionChange?.(orderedSelected);
435
433
  setSelectedItems(orderedSelected);
436
434
  prevSelectedItems.current = orderedSelected;
437
435
  }, [onSelectionChange, options, selected]);
@@ -507,18 +505,34 @@ const ListViewElement$1 = function(props, ref) {
507
505
  }
508
506
  );
509
507
  };
510
- function useListView() {
511
- const context = useContext(ListViewContext);
512
- if (context == null) {
513
- throw new Error("useListView must be wrapped in <ListView />");
514
- }
515
- return context;
516
- }
517
508
  ListViewElement$1.displayName = "ListView";
518
509
  const ListView$1 = Object.assign(
519
510
  forwardRef(ListViewElement$1),
520
511
  {
512
+ /**
513
+ * ListViewOption component for individual selectable items within a listview.
514
+ *
515
+ * Features:
516
+ * - Displays selectable options with proper ARIA attributes
517
+ * - Supports disabled state for non-selectable options
518
+ * - Keyboard navigation support
519
+ * - Accessible with screen reader support
520
+ *
521
+ * @example
522
+ * <ListView.Option item={{ label: "Option 1" }} />
523
+ */
521
524
  Option: ListViewOption$1,
525
+ /**
526
+ * ListViewOptionCell component for rendering a cell within a listview option.
527
+ *
528
+ * Features:
529
+ * - Renders a grid cell for option content
530
+ * - Supports custom content and layout
531
+ * - Accessible with proper ARIA attributes
532
+ *
533
+ * @example
534
+ * <ListView.OptionCell>Custom cell content</ListView.OptionCell>
535
+ */
522
536
  OptionCell: ListViewOptionCell$1
523
537
  }
524
538
  );
@@ -539,18 +553,44 @@ const ListViewOption = forwardRef(
539
553
  return /* @__PURE__ */ jsx(ListViewOption$1, { ref, "data-tracking-id": trackingId, ...props });
540
554
  }
541
555
  );
556
+ ListViewOption.displayName = ListViewOption$1.displayName;
542
557
  const ListViewOptionCell = forwardRef(
543
558
  (props, ref) => {
544
559
  return /* @__PURE__ */ jsx(ListViewOptionCell$1, { ref, ...props });
545
560
  }
546
561
  );
562
+ ListViewOptionCell.displayName = ListViewOptionCell$1.displayName;
547
563
  const ListView = Object.assign(
548
564
  forwardRef(ListViewElement),
549
565
  {
566
+ /**
567
+ * ListViewOption component for individual selectable items within a listview.
568
+ *
569
+ * Features:
570
+ * - Displays selectable options with proper ARIA attributes
571
+ * - Supports disabled state for non-selectable options
572
+ * - Keyboard navigation support
573
+ * - Accessible with screen reader support
574
+ * - Automatic tracking ID generation for analytics
575
+ *
576
+ * @example
577
+ * <ListView.Option item={{ label: "Option 1" }} />
578
+ */
550
579
  Option: ListViewOption,
580
+ /**
581
+ * ListViewOptionCell component for rendering a cell within a listview option.
582
+ *
583
+ * Features:
584
+ * - Renders a grid cell for option content
585
+ * - Supports custom content and layout
586
+ * - Accessible with proper ARIA attributes
587
+ *
588
+ * @example
589
+ * <ListView.OptionCell>Custom cell content</ListView.OptionCell>
590
+ */
551
591
  OptionCell: ListViewOptionCell
552
592
  }
553
593
  );
554
594
 
555
595
  export { ListView as L, ListViewOption as a, ListViewOptionCell as b };
556
- //# sourceMappingURL=ListView-zlg5FlKW.js.map
596
+ //# sourceMappingURL=ListView-0xHc5wT6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListView-0xHc5wT6.js","sources":["../../hammer-react/dist/ListView-wQ7ruaGX.js","../src/components/ListView/ListView.tsx"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { createContext, useContext, forwardRef, useRef, useId, useState, useEffect } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './ListView.module-MVsNF0X0.js';\nimport { q as getActiveElement } from './ProgressBar-Cfi5zZRy.js';\nimport { C as Checkbox } from './Checkbox-TIcImbEx.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nfunction mapOrder(array, order, key) {\n array.sort(function(a, b) {\n const A = a[key], B = b[key];\n if (order.indexOf(A) > order.indexOf(B)) {\n return 1;\n } else {\n return -1;\n }\n });\n return array;\n}\n\nconst listViewKeyboardNavigation = (e, options, focusedItem, setFocusedItem, parent, currentFocusId) => {\n if (!options) return;\n let activeElement;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n options[focusedItem.row].focusables[focusedItem.col].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 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 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 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[options[focusedItem.row].focusables.length - 1].setAttribute(\"data-interactive\", \"focus-visible\");\n currentFocusId(\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].id\n );\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: options[focusedItem.row].focusables.length - 1\n };\n });\n break;\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};\n\nconst ListViewContext = createContext(null);\n\nfunction useListView() {\n const context = useContext(ListViewContext);\n if (context == null) {\n throw new Error(\"useListView must be wrapped in <ListView />\");\n }\n return context;\n}\n\nconst ListViewOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n onChange,\n style,\n disabled: disabledProp,\n ...remainingProps\n } = props;\n const optionRef = useRef(null);\n const mergedRef = useMergeRefs([ref, optionRef]);\n const itemRef = useRef();\n const cellRef = useRef(null);\n const rowId = useId();\n const [isSelected, setIsSelected] = useState(false);\n const { selectedItems, setSelectedItems, controlled, onSelectionChange } = useListView();\n const disabled = \"item\" in remainingProps ? disabledProp || remainingProps.item.disabled : disabledProp;\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 useEffect(() => {\n if (\"item\" in remainingProps) {\n const isPartOfSelectedItems = selectedItems.some((item) => {\n return item.label === remainingProps.item.label;\n });\n setIsSelected(isPartOfSelectedItems);\n } else {\n const isPartOfSelectedItems = selectedItems.includes(\n remainingProps.label\n );\n setIsSelected(isPartOfSelectedItems);\n }\n }, [controlled, remainingProps, selectedItems]);\n const onChangeHandler = (e) => {\n onChange?.(e, { checked: isSelected });\n };\n const onClickHandler = () => {\n updateSelectedItems();\n };\n const removeItemFromSelectedItems = (itemToRemove) => {\n return selectedItems.filter((item) => {\n if (typeof itemToRemove === \"string\") {\n return item !== itemToRemove;\n }\n return item?.label !== itemToRemove.label;\n });\n };\n const addItemFromSelectedItems = (itemToAdd) => {\n return [...selectedItems, itemToAdd];\n };\n function updateSelectedItems() {\n const currentItem = \"item\" in remainingProps ? remainingProps.item : remainingProps.label;\n const isPartOfSelectedItems = selectedItems.some((item) => {\n if (typeof currentItem === \"string\") {\n return item === currentItem;\n }\n return item?.label === currentItem.label;\n });\n const newSelectedItems = isPartOfSelectedItems ? removeItemFromSelectedItems(currentItem) : addItemFromSelectedItems(currentItem);\n if (controlled) {\n onSelectionChange?.(newSelectedItems);\n } else {\n setSelectedItems(newSelectedItems);\n setIsSelected(!isPartOfSelectedItems);\n }\n }\n if (\"item\" in remainingProps) {\n itemRef.current = remainingProps.item;\n const { item, ...rest } = remainingProps;\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": item.label,\n role: \"row\",\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": item.label,\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n role: \"row\",\n ...remainingProps,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n);\nListViewOption.displayName = \"ListViewOption\";\n\nconst ListViewOptionCell = forwardRef((props, ref) => {\n const { ...rest } = props;\n return /* @__PURE__ */ jsx(\"div\", { role: \"gridcell\", \"data-anv\": \"listview-option-cell\", ...rest, ref });\n});\nListViewOptionCell.displayName = \"ListViewOptionCell\";\n\nconst getFocusables = (el) => {\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};\nconst ListViewElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n onSelectionChange,\n className,\n selected,\n defaultSelected,\n style,\n onKeyDown,\n ...remainingProps\n } = componentProps;\n const ListViewRef = useRef(null);\n const isFocusVisible = useRef(true);\n const combinedRef = useMergeRefs([ref, ListViewRef]);\n const [options, setOptions] = useState();\n const [currentActive, setCurrentActive] = useState();\n const [selectedItems, setSelectedItems] = useState(\n selected ?? defaultSelected ?? []\n );\n const [focusedItem, setFocusedItem] = useState({\n row: 0,\n col: 0\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\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 const onKeyDownHandler = (e) => {\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 const onMouseDownHandler = (e) => {\n isFocusVisible.current = false;\n if (options && ListViewRef.current) {\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n const closestFocusable = e.target.closest(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [data-anv='checkbox']\"\n );\n const optionRow = e.target.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].click();\n return;\n }\n const col = Array.prototype.indexOf.call(\n options[row].focusables,\n closestFocusable?.getAttribute(\"data-anv\") === \"checkbox\" ? closestFocusable.children[0] : closestFocusable\n );\n setFocusedItem({ row, col });\n }\n };\n useEffect(() => {\n if (!ListViewRef.current) return;\n const optionArr = ListViewRef.current.querySelectorAll(\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 const prevSelectedItems = useRef();\n useEffect(() => {\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelectedItems = mapOrder(selectedItems, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelectedItems))\n return;\n onSelectionChange?.(orderedSelectedItems);\n prevSelectedItems.current = orderedSelectedItems;\n }, [onSelectionChange, options, selectedItems]);\n useEffect(() => {\n if (!selected) return;\n const filterDuplicates = selected.reduce(\n (acc, current) => {\n const isDup = acc.find((item) => item.label === current.label);\n if (!isDup) {\n return acc.concat([current]);\n } else {\n return acc;\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 (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelected))\n return;\n setSelectedItems(orderedSelected);\n prevSelectedItems.current = orderedSelected;\n }, [onSelectionChange, options, selected]);\n const ListViewClassNames = cx([styles[\"listview\"]], className);\n if (\"items\" in remainingProps) {\n const { children: children2, items, ...rest2 } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n items,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\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 ...rest2,\n children: children2?.({\n items: items.map((item) => {\n return item;\n })\n })\n }\n )\n }\n );\n }\n const { children, ...rest } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\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 children\n }\n )\n }\n );\n};\nListViewElement.displayName = \"ListView\";\nconst ListView = Object.assign(\n forwardRef(ListViewElement),\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 */\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\nexport { ListView as L, ListViewOption as a, ListViewOptionCell as b };\n//# sourceMappingURL=ListView-wQ7ruaGX.js.map\n","import {\n ListViewProps as CoreListViewProps,\n ListView as CoreListView,\n ListViewOption as CoreListViewOption,\n ListViewOptionCell as CoreListViewOptionCell,\n ListViewOptionProps as CoreListViewOptionProps,\n} from \"@servicetitan/hammer-react\";\nimport { ComponentPropsWithoutRef, ForwardedRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the ListView component\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {Array} [selected] - Currently selected items (controlled)\n * @property {Array} [items] - Array of items to render\n * @property {Array} [defaultSelected] - Default selected items (uncontrolled)\n * @property {function} [children] - Optional render function for items\n * @extends LayoutUtilProps\n */\nexport type ListViewProps<T> = CoreListViewProps<T>;\n\n/**\n * Props for the ListViewOption component\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {function} [onChange] - Callback when the option changes\n * @property {object} [item] - The item object when using items prop\n * @property {string} [label] - The display label for the option\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListViewOptionProps = CoreListViewOptionProps & DataTrackingId;\n\nconst ListViewElement = function <T>(\n props: ListViewProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListView ref={ref} {...props} />;\n};\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 */\nexport const ListViewOption = forwardRef(\n (props: ListViewOptionProps, ref: Ref<HTMLDivElement>) => {\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 return (\n <CoreListViewOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\nListViewOption.displayName = CoreListViewOption.displayName;\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 (props: ComponentPropsWithoutRef<\"div\">, ref: Ref<HTMLDivElement>) => {\n return <CoreListViewOptionCell ref={ref} {...props} />;\n },\n);\nListViewOptionCell.displayName = CoreListViewOptionCell.displayName;\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(ListViewElement) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewElement>,\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":["ListViewOption","ListViewOptionCell","ListViewElement","ListView","CoreListView","CoreListViewOption","CoreListViewOptionCell"],"mappings":"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"}
package/dist/ListView.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-zlg5FlKW.js';
1
+ export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-0xHc5wT6.js';
2
2
  //# sourceMappingURL=ListView.js.map
@@ -2,11 +2,11 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState, useEffect, forwardRef, useContext, createContext, useRef, useMemo } from 'react';
3
3
  import { c as cx } from './index-tZvMCc77.js';
4
4
  import { s as styles } from './Listbox.module-DcBE8Zmo-DcBE8Zmo.js';
5
- import { T as Text } from './Text-CN_-FF7J-Dzoy8A70.js';
6
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-GT5myWCm-Clw_nEze.js';
5
+ import { T as Text } from './Text-DCvcLCvf-DlmnnjTR.js';
6
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
7
7
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
8
- import { I as Icon } from './Icon-BrdmZw1i-CG-LzgEz.js';
9
- import { F as Flex } from './Flex-EX9xObMl-BPBQ7nb5.js';
8
+ import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
9
+ import { F as Flex } from './Flex-CiK7uNUu-BfxHG4L0.js';
10
10
  import { S as SvgCheck } from './check-Cf67OWrZ.js';
11
11
 
12
12
  const useTypeAhead = (timeout = 750) => {
@@ -97,17 +97,23 @@ const ListboxOption = forwardRef(
97
97
  setCurrentFocus?.(label);
98
98
  if (selectionMode === "single") {
99
99
  if (!item && selected === label || item && selected?.label === label) {
100
- !controlled && setSelected?.(void 0);
100
+ if (!controlled) {
101
+ setSelected?.(void 0);
102
+ }
101
103
  onSelectionChange?.(void 0);
102
104
  return;
103
105
  }
104
106
  if (item) {
105
- !controlled && setSelected?.(item);
107
+ if (!controlled) {
108
+ setSelected?.(item);
109
+ }
106
110
  onSelectionChange?.(item);
107
111
  return;
108
112
  }
109
113
  if (!item) {
110
- !controlled && setSelected?.(label);
114
+ if (!controlled) {
115
+ setSelected?.(label);
116
+ }
111
117
  onSelectionChange?.(label);
112
118
  return;
113
119
  }
@@ -216,11 +222,19 @@ const onListboxKeyDown = (e, context) => {
216
222
  switch (e.code) {
217
223
  case "ArrowDown":
218
224
  e.preventDefault();
219
- currentIndex === options.length - 1 ? goTo(options[0], 0, context) : goTo(options[currentIndex + 1], currentIndex + 1, context);
225
+ if (currentIndex === options.length - 1) {
226
+ goTo(options[0], 0, context);
227
+ } else {
228
+ goTo(options[currentIndex + 1], currentIndex + 1, context);
229
+ }
220
230
  break;
221
231
  case "ArrowUp":
222
232
  e.preventDefault();
223
- currentIndex === 0 ? goTo(options[options.length - 1], options.length - 1, context) : goTo(options[currentIndex - 1], currentIndex - 1, context);
233
+ if (currentIndex === 0) {
234
+ goTo(options[options.length - 1], options.length - 1, context);
235
+ } else {
236
+ goTo(options[currentIndex - 1], currentIndex - 1, context);
237
+ }
224
238
  break;
225
239
  case "Home":
226
240
  e.preventDefault();
@@ -531,10 +545,37 @@ ListboxElement.displayName = "Listbox";
531
545
  const Listbox = Object.assign(
532
546
  forwardRef(ListboxElement),
533
547
  {
548
+ /**
549
+ * ListboxOption component for individual selectable items within a listbox.
550
+ *
551
+ * Features:
552
+ * - Displays selectable options with proper ARIA attributes
553
+ * - Supports disabled state for non-selectable options
554
+ * - Keyboard navigation support
555
+ * - Accessible with screen reader support
556
+ *
557
+ * @example
558
+ * <Listbox.Option value="option1" label="Option 1" />
559
+ */
534
560
  Option: ListboxOption,
561
+ /**
562
+ * ListboxOptionGroup component for grouping related options within a listbox.
563
+ *
564
+ * Features:
565
+ * - Groups related options with a descriptive label
566
+ * - Maintains proper ARIA structure for accessibility
567
+ * - Supports keyboard navigation within groups
568
+ * - Visual separation of option categories
569
+ *
570
+ * @example
571
+ * <Listbox.OptionGroup label="Fruits">
572
+ * <Listbox.Option value="apple">Apple</Listbox.Option>
573
+ * <Listbox.Option value="banana">Banana</Listbox.Option>
574
+ * </Listbox.OptionGroup>
575
+ */
535
576
  OptionGroup: ListboxOptionGroup
536
577
  }
537
578
  );
538
579
 
539
580
  export { ListboxOption as L, ListboxOptionGroup as a, Listbox as b };
540
- //# sourceMappingURL=Listbox-DLlT8qbJ-BvhkfmIf.js.map
581
+ //# sourceMappingURL=Listbox-BvJLSAVO-Br5k6fmq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Listbox-BvJLSAVO-Br5k6fmq.js","sources":["../../hammer-react/dist/useTypeAhead-D_x_x3nw.js","../../hammer-react/dist/Listbox-BvJLSAVO.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst useTypeAhead = (timeout = 750) => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n const updateTypeAhead = (char) => setTypeAhead((prev) => prev + char);\n return [typeAhead, updateTypeAhead];\n};\n\nexport { useTypeAhead as u };\n//# sourceMappingURL=useTypeAhead-D_x_x3nw.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, createContext, useContext, useRef, useState, useEffect, useMemo } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './Listbox.module-DcBE8Zmo.js';\nimport { u as useTypeAhead } from './useTypeAhead-D_x_x3nw.js';\nimport { T as Text } from './Text-DCvcLCvf.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport Check from '@servicetitan/hammer-icon/mdi/round/check.svg';\n\nconst ListboxOptionGroupContext = createContext({});\nconst ListboxOptionGroup = forwardRef((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n const optionGroupCx = cx(styles[\"option-group\"], className);\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled\n });\n return /* @__PURE__ */ jsx(ListboxOptionGroupContext.Provider, { value: { disabled }, children: /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-anv\": \"listbox-option-group\",\n className: optionGroupCx,\n ref,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(Text, { variant: \"eyebrow\", className: labelCx, children: label }),\n children\n ]\n }\n ) });\n});\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n\nconst ListboxOption = forwardRef(\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 const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled\n } = useListbox();\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n const label = labelProp || item?.label || \"\";\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled = groupDisabled || disabledProp || item?.disabled || false;\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) ? selected : selected ? [selected] : [];\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 const onClickHandler = (e) => {\n if (disabled) return;\n onClick?.(e);\n setCurrentFocus?.(label);\n if (selectionMode === \"single\") {\n if (!item && selected === label || item && selected?.label === label) {\n if (!controlled) {\n setSelected?.(void 0);\n }\n onSelectionChange?.(void 0);\n return;\n }\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item && selectedItems.some((selectedItem) => selectedItem.label === label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n return /* @__PURE__ */ jsxs(\n \"li\",\n {\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,\n value: value ?? label,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n className: styles[\"children\"],\n grow: 1,\n shrink: 1,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n children\n }\n ),\n /* @__PURE__ */ jsx(\n Icon,\n {\n \"aria-hidden\": true,\n svg: Check,\n inherit: true,\n className: styles[\"Icon\"],\n style: { opacity: isSelected() ? 1 : 0 }\n }\n )\n ]\n }\n );\n }\n);\nListboxOption.displayName = \"ListboxOption\";\n\nconst scrollToOption = (node) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\"\n });\n};\nconst onListboxKeyDown = (e, context) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled\n } = context;\n if (!options) return;\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus\n );\n const currentIndex = Array.from(options).indexOf(currentNode);\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 case \"Enter\":\n case \"Space\":\n e.preventDefault();\n if (!currentFocus) return;\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (typeof selected === \"object\" ? selected.label === currentFocus : selected === currentFocus) {\n setSelected?.(void 0);\n onSelectionChange?.(void 0);\n return;\n }\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n if (!items) {\n setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : [selected];\n if (items) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n setSelected?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n onSelectionChange?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n return;\n }\n setSelected?.([...selectedItems, currentFocus]);\n onSelectionChange?.([...selectedItems, currentFocus]);\n }\n }\n break;\n }\n};\nconst goTo = (option, index, context) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled\n } = context;\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n setCurrentFocus(option?.id);\n if (controlled) return;\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n\nconst ListboxContext = createContext(\n null\n);\nconst ListboxElement = function(props, ref) {\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 const listboxRef = useRef(null);\n const [selected, setSelected] = useState(\n selectedProp || defaultSelected\n );\n const [options, setOptions] = useState();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState(\n Array.isArray(selected) ? typeof selected[0] === \"object\" ? selected[0].label : selected[0] : typeof selected === \"object\" ? selected?.label : selected\n );\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n const controlled = selectedProp !== void 0;\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 useEffect(() => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n }, [selectedProp]);\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes = options && Array.from(options).filter(\n (node2) => node2.innerText.toLowerCase().startsWith(lowerTypeAhead)\n );\n if (!nodes?.length) {\n return;\n }\n let node = nodes[0];\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n const focusIndex = currentFocus ? nodes.map((node2) => node2.id).indexOf(currentFocus) : -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 setCurrentFocus(node.id);\n scrollToOption(node);\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n }, [typeAhead]);\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\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 onListboxKeyDown(e, {\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items\n });\n };\n const onFocusHandler = (e) => {\n onFocus?.(e);\n if (!options) return;\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selected?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\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 if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n };\n const mergeRef = useMergeRefs([ref, listboxRef]);\n const styleCombined = {\n ...style,\n ...layoutStyles\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 return /* @__PURE__ */ jsx(ListboxContext.Provider, { value, children: /* @__PURE__ */ jsx(\n \"ul\",\n {\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 children: items ? children?.({ items }) : children\n }\n ) });\n};\nconst useListbox = () => {\n const context = useContext(ListboxContext);\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n return context;\n};\nListboxElement.displayName = \"Listbox\";\nconst Listbox = Object.assign(\n forwardRef(ListboxElement),\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 * <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\nexport { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };\n//# sourceMappingURL=Listbox-BvJLSAVO.js.map\n"],"names":["Check"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { useTrackingId } from './useTrackingId.js';
4
+ import { L as ListboxOption$1, a as ListboxOptionGroup$1, b as Listbox$1 } from './Listbox-BvJLSAVO-Br5k6fmq.js';
5
+
6
+ const ListboxElement = function(props, ref) {
7
+ return /* @__PURE__ */ jsx(Listbox$1, { ref, ...props });
8
+ };
9
+ const ListboxOption = forwardRef(
10
+ (props, ref) => {
11
+ const data = {
12
+ value: props.value,
13
+ label: "item" in props ? props.item?.label : props.label
14
+ };
15
+ const trackingId = useTrackingId({
16
+ name: "ListboxOption",
17
+ data,
18
+ hasOverride: !!props["data-tracking-id"]
19
+ });
20
+ return /* @__PURE__ */ jsx(ListboxOption$1, { ref, "data-tracking-id": trackingId, ...props });
21
+ }
22
+ );
23
+ ListboxOption.displayName = ListboxOption$1.displayName;
24
+ const ListboxOptionGroup = forwardRef(
25
+ (props, ref) => {
26
+ return /* @__PURE__ */ jsx(ListboxOptionGroup$1, { ref, ...props });
27
+ }
28
+ );
29
+ ListboxOptionGroup.displayName = ListboxOptionGroup$1.displayName;
30
+ const Listbox = Object.assign(
31
+ forwardRef(ListboxElement),
32
+ {
33
+ /**
34
+ * ListboxOption component for individual selectable items within a listbox
35
+ *
36
+ * Features:
37
+ * - Displays selectable options with proper ARIA attributes
38
+ * - Supports disabled state for non-selectable options
39
+ * - Keyboard navigation support
40
+ * - Automatic tracking ID generation for analytics
41
+ * - Accessible with screen reader support
42
+ *
43
+ * @example
44
+ * <Listbox.Option value="option1" label="Option 1" />
45
+ */
46
+ Option: ListboxOption,
47
+ /**
48
+ * ListboxOptionGroup component for grouping related options within a listbox
49
+ *
50
+ * Features:
51
+ * - Groups related options with a descriptive label
52
+ * - Maintains proper ARIA structure for accessibility
53
+ * - Supports keyboard navigation within groups
54
+ * - Visual separation of option categories
55
+ *
56
+ * @example
57
+ * <Listbox.OptionGroup label="Fruits">
58
+ * <Listbox.Option value="apple">Apple</Listbox.Option>
59
+ * <Listbox.Option value="banana">Banana</Listbox.Option>
60
+ * </Listbox.OptionGroup>
61
+ */
62
+ OptionGroup: ListboxOptionGroup
63
+ }
64
+ );
65
+
66
+ export { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };
67
+ //# sourceMappingURL=Listbox-dVARiucB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Listbox-dVARiucB.js","sources":["../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import {\n ListboxProps as CoreListboxProps,\n Listbox as CoreListbox,\n ListboxOption as CoreListboxOption,\n ListboxOptionProps as CoreListboxOptionProps,\n ListboxOptionGroup as CoreListboxOptionGroup,\n ListboxOptionGroupProps as CoreListboxOptionGroupProps,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef, ForwardedRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Listbox component\n * @property {\"single\" | \"multiple\"} [selectionMode] - Selection mode for the listbox\n * @property {boolean} [disableAutoSelectOnFocus] - Whether to disable automatic selection when focusing on an option\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [selected] - Currently selected item(s) (controlled)\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [defaultSelected] - Default selected item(s) (uncontrolled)\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {ItemType<T>[]} [items] - Array of items to render (when using items prop)\n * @property {ReactNode | function} [children] - Child elements or render function for items\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = CoreListboxProps<T>;\n\n/**\n * Props for the ListboxOption component\n * @property {string} value - The value of the option\n * @property {string} [label] - The display label for the option\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {ItemType<T>} [item] - The item object when using items prop\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListboxOptionProps = CoreListboxOptionProps & DataTrackingId;\n\n/**\n * Props for the ListboxOptionGroup component\n * @property {string} label - The label for the option group\n * @property {ReactNode} children - The options within this group\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListboxOptionGroupProps = CoreListboxOptionGroupProps;\n\n/**\n * Listbox component for selecting one or more items from a list\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 */\nconst ListboxElement = function <T>(\n props: ListboxProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListbox ref={ref} {...props} />;\n};\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 * <ListboxOption value=\"option1\" label=\"Option 1\" />\n */\nexport const ListboxOption = forwardRef(\n (props: ListboxOptionProps, ref: Ref<HTMLLIElement>) => {\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 return (\n <CoreListboxOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\n\nListboxOption.displayName = CoreListboxOption.displayName;\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 (props: ListboxOptionGroupProps, ref: Ref<HTMLDivElement>) => {\n return <CoreListboxOptionGroup ref={ref} {...props} />;\n },\n);\nListboxOptionGroup.displayName = CoreListboxOptionGroup.displayName;\n\n/**\n * Listbox component for selecting one or more items from a list\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(ListboxElement) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxElement>,\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":["CoreListbox","CoreListboxOption","CoreListboxOptionGroup"],"mappings":";;;;;AAiEA,MAAM,cAAA,GAAiB,SACrB,KAAA,EACA,GACA,EAAA;AACA,EAAA,uBAAQ,GAAA,CAAAA,SAAA,EAAA,EAAY,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAC3C,CAAA;AAeO,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,CAAC,OAA2B,GAA4B,KAAA;AACtD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,KAAM,CAAA,KAAA;AAAA,MACb,OAAO,MAAU,IAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA;AAAA,KACrD;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,eAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BACGC,eAAkB,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAG5E;AAEA,aAAA,CAAc,cAAcA,eAAkB,CAAA,WAAA;AAiBvC,MAAM,kBAAqB,GAAA,UAAA;AAAA,EAChC,CAAC,OAAgC,GAA6B,KAAA;AAC5D,IAAA,uBAAQ,GAAA,CAAAC,oBAAA,EAAA,EAAuB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAExD;AACA,kBAAA,CAAmB,cAAcA,oBAAuB,CAAA,WAAA;AAuBjD,MAAM,UAAU,MAAO,CAAA,MAAA;AAAA,EAC5B,WAAW,cAAc,CAAA;AAAA,EAGzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcE,MAAQ,EAAA,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBR,WAAa,EAAA;AAAA;AAEjB;;;;"}
package/dist/Listbox.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup, L as default } from './Listbox-36Mda5DS.js';
1
+ export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup, L as default } from './Listbox-dVARiucB.js';
2
2
  //# sourceMappingURL=Listbox.js.map
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
3
  import { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR-BUIYgNp2.js';
4
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-GT5myWCm-Clw_nEze.js';
4
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
5
5
 
6
6
  const LocalizationProvider = (props) => {
7
7
  const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
@@ -14,4 +14,4 @@ const LocalizationProvider = (props) => {
14
14
  };
15
15
 
16
16
  export { LocalizationProvider as L };
17
- //# sourceMappingURL=LocalizationProvider-FkvhW-le-DPTpcI0N.js.map
17
+ //# sourceMappingURL=LocalizationProvider-VtRAfGBT-Bo8XuFoE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalizationProvider-FkvhW-le-DPTpcI0N.js","sources":["../../hammer-react/dist/LocalizationProvider-FkvhW-le.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { useMemo } from 'react';\nimport { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-GT5myWCm.js';\n\nconst LocalizationProvider = (props) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, translationData, style, ...rest } = componentProps;\n const { locale = \"en\", dir, translations } = translationData;\n const styleCombined = { ...style, ...layoutStyles };\n const { translations: t } = useTranslations(translations);\n const value = useMemo(() => ({ t, locale }), [locale, t]);\n return /* @__PURE__ */ jsx(LocalizationContext.Provider, { value, children: /* @__PURE__ */ jsx(\"div\", { style: styleCombined, ...rest, dir, children }) });\n};\n\nexport { LocalizationProvider as L };\n//# sourceMappingURL=LocalizationProvider-FkvhW-le.js.map\n"],"names":[],"mappings":";;;;;AAKK,MAAC,oBAAoB,GAAG,CAAC,KAAK,KAAK;AACxC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;AACtE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,eAAe;AAC9D,EAAE,MAAM,aAAa,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE;AACrD,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3D,EAAE,uBAAuB,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC7J;;;;"}
1
+ {"version":3,"file":"LocalizationProvider-VtRAfGBT-Bo8XuFoE.js","sources":["../../hammer-react/dist/LocalizationProvider-VtRAfGBT.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { useMemo } from 'react';\nimport { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nconst LocalizationProvider = (props) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, translationData, style, ...rest } = componentProps;\n const { locale = \"en\", dir, translations } = translationData;\n const styleCombined = { ...style, ...layoutStyles };\n const { translations: t } = useTranslations(translations);\n const value = useMemo(() => ({ t, locale }), [locale, t]);\n return /* @__PURE__ */ jsx(LocalizationContext.Provider, { value, children: /* @__PURE__ */ jsx(\"div\", { style: styleCombined, ...rest, dir, children }) });\n};\n\nexport { LocalizationProvider as L };\n//# sourceMappingURL=LocalizationProvider-VtRAfGBT.js.map\n"],"names":[],"mappings":";;;;;AAKK,MAAC,oBAAoB,GAAG,CAAC,KAAK,KAAK;AACxC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;AACtE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,eAAe;AAC9D,EAAE,MAAM,aAAa,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE;AACrD,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3D,EAAE,uBAAuB,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC7J;;;;"}
@@ -1,3 +1,3 @@
1
- export { L as LocalizationProvider, L as default } from './LocalizationProvider-FkvhW-le-DPTpcI0N.js';
1
+ export { L as LocalizationProvider, L as default } from './LocalizationProvider-VtRAfGBT-Bo8XuFoE.js';
2
2
  export { L as LocalizationContext, u as useLocalizationContext } from './LocalizationContext-UsmB5mnR-BUIYgNp2.js';
3
3
  //# sourceMappingURL=LocalizationProvider.js.map