@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":"Radio-DcNlFfSu.js","sources":["../src/components/Radio/internal/RadioGroupContext.tsx","../src/components/Radio/RadioGroup.tsx","../../hammer-icon/mdi/two-tone/radio_button_unchecked.svg","../../hammer-icon/mdi/two-tone/radio_button_checked.svg","../src/components/Radio/internal/Radio.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\n/**\n * Context value for RadioGroup\n * @property {boolean} hasError - Whether the group has an error state\n */\nexport type RadioGroupContextValue = {\n /**\n * Whether the radio group has an error state\n */\n hasError: boolean;\n};\n\n/**\n * Context for sharing state between RadioGroup and child Radio components\n */\nexport const RadioGroupContext = createContext<\n RadioGroupContextValue | undefined\n>(undefined);\n\n/**\n * Hook to access RadioGroup context from child Radio components\n * @returns RadioGroupContextValue if inside a RadioGroup, undefined otherwise\n */\nexport const useRadioGroupContext = () => {\n return useContext(RadioGroupContext);\n};\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactElement,\n useId,\n useMemo,\n} from \"react\";\nimport { stripInlineMarkdown, warnOnce } from \"../../internal/functions\";\nimport styles from \"./Radio.module.scss\";\nimport cx from \"classnames\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport type { FieldLabelProps as FieldLabelElementProps } from \"../FieldLabel\";\nimport type { FieldLabelProps as InternalFieldLabelProps } from \"../../internal/types\";\nimport type { HelperProps } from \"../../internal/components\";\nimport FieldMessage, { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport { RadioGroupContext } from \"./internal/RadioGroupContext\";\n\n/**\n * Props for the RadioGroup component\n * @extends ComponentPropsWithoutRef<\"fieldset\">\n * @extends LayoutUtilProps\n * @extends Omit<InternalFieldLabelProps, \"labelProps\">\n */\nexport type RadioGroupProps = ComponentPropsWithoutRef<\"fieldset\"> &\n LayoutUtilProps &\n Omit<InternalFieldLabelProps, \"labelProps\"> & {\n /**\n * Required flag for label\n * @remarks This does not enforce error when nothing is selected\n */\n required?: boolean;\n\n // TODO(v4.0.0): type becomes string only\n /**\n * Legend for the fieldset.\n * Passing `ReactNode` is deprecated — use a plain string with inline markdown instead.\n */\n legend: string | ReactElement;\n\n /**\n * Additional props for the legend `FieldLabel` (for example `aiMark`, `className`).\n */\n legendProps?: Omit<FieldLabelElementProps, \"el\">;\n\n /**\n * When `true`, hides the visual label row. The sr-only `<legend>` always remains for AT.\n * @default false\n */\n hideLabel?: boolean;\n\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n\n /**\n * Description text to display below the field.\n */\n description?: HelperProps[\"description\"];\n\n /**\n * Hint text to display below the field.\n */\n hint?: HelperProps[\"hint\"];\n };\n\n/**\n * RadioGroup component for grouping related radio options.\n *\n * Features:\n * - Groups multiple radio options together\n * - Legend support for group labeling\n * - Required field indication\n * - Accessibility support with proper fieldset semantics\n * - Layout utility props for positioning and spacing\n * - Focus and blur event handling\n * - More info support for additional context\n * - Automatic alignment based on flex direction\n *\n * @example\n * <RadioGroup legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </RadioGroup>\n *\n * @example\n * <RadioGroup\n * legend=\"Horizontal layout\"\n * flexDirection=\"row\"\n * gap=\"4\"\n * >\n * <Radio label=\"Yes\" value=\"yes\" />\n * <Radio label=\"No\" value=\"no\" />\n * </RadioGroup>\n */\nexport const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n children,\n description,\n error,\n errorAriaLive: _errorAriaLive,\n hint,\n warning,\n legend,\n moreInfo,\n legendProps,\n onBlur,\n onFocus,\n required,\n style,\n hideLabel = false,\n ...rest\n } = componentProps;\n\n const RadioGroupClassNames = cx(styles[\"radio-group\"], className);\n const helperUid = useId();\n const moreInfoUid = useId();\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n alignItems:\n layoutStyles?.alignItems ??\n (layoutStyles?.flexDirection === \"row\" ? \"center\" : undefined),\n };\n\n warnDeprecatedErrorUsage(\"RadioGroup\", error);\n\n // TODO(v4.0.0): remove once legend is string only\n if (typeof legend !== \"string\") {\n warnOnce(\n \"RadioGroup: Passing ReactNode to legend is deprecated. Use a plain string with inline markdown instead.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const contextValue = useMemo(\n () => ({\n hasError: !!error,\n }),\n [error],\n );\n\n return (\n <fieldset\n role=\"radiogroup\"\n data-anv=\"radio-group\"\n className={RadioGroupClassNames}\n aria-required={required}\n style={styleCombined}\n ref={ref}\n onFocus={onFocus}\n onBlur={onBlur}\n {...rest}\n aria-describedby={ariaDescribedBy}\n >\n <legend className={styles[\"legend\"]}>\n {/* TODO(v4.0.0): remove typeof check — legend will always be string */}\n {typeof legend === \"string\" ? stripInlineMarkdown(legend) : legend}\n {required && \", required\"}\n </legend>\n {!hideLabel && (\n <div className={styles[\"label-row\"]}>\n <FieldLabel\n aria-hidden\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n {...legendProps}\n className={legendProps?.className}\n >\n {legend}\n </FieldLabel>\n </div>\n )}\n <RadioGroupContext.Provider value={contextValue}>\n <div\n className={styles[\"children\"]}\n style={{\n flexDirection: layoutStyles?.flexDirection,\n gap: layoutStyles?.gap,\n }}\n >\n {children}\n </div>\n </RadioGroupContext.Provider>\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n </fieldset>\n );\n },\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","import * as React from \"react\";\nconst SvgRadioButtonUnchecked = (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(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" }));\nexport default SvgRadioButtonUnchecked;\n","import * as React from \"react\";\nconst SvgRadioButtonChecked = (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(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 12, cy: 12, r: 5 }));\nexport default SvgRadioButtonChecked;\n","import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ChangeEvent,\n type ReactElement,\n useId,\n useState,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Icon } from \"../../Icon\";\nimport Radio_outline from \"@servicetitan/hammer-icon/mdi/two-tone/radio_button_unchecked.svg\";\nimport Radio_checked from \"@servicetitan/hammer-icon/mdi/two-tone/radio_button_checked.svg\";\nimport styles from \"../Radio.module.scss\";\nimport type { LayoutUtilProps, Svg } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport { Helper, type HelperProps } from \"../../../internal/components\";\nimport type { RadioState } from \"../types\";\nimport { useRadioGroupContext } from \"./RadioGroupContext\";\n\n/**\n * Props for the Radio component\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\">\n * @extends LayoutUtilProps\n */\nexport type RadioProps = Omit<ComponentPropsWithoutRef<\"input\">, \"onChange\"> &\n LayoutUtilProps & {\n /**\n * Controlled state\n * @default false\n */\n checked?: boolean;\n\n /**\n * Uncontrolled state\n * @default false\n */\n defaultChecked?: boolean;\n\n /**\n * Callback when radio is changed\n */\n onChange?: (e: ChangeEvent<HTMLInputElement>, state?: RadioState) => void;\n\n /**\n * Label for Radio\n * @remarks This should either be a string or have text content inside for accessibility\n */\n label?: ReactElement | string;\n\n /**\n * Error state for the radio\n * @default false\n */\n error?: boolean;\n\n /**\n * Icon overrides for checked and unchecked states\n */\n icons?: {\n /**\n * Icon to display when radio is checked\n */\n checked?: Svg;\n /**\n * Icon to display when radio is unchecked\n */\n unchecked?: Svg;\n };\n\n /**\n * Description text to display below the radio\n */\n description?: HelperProps[\"description\"];\n\n /**\n * When true, hides the radio for visual users\n * @default false\n */\n hideRadio?: boolean;\n\n /**\n * Additional className applied to the label wrapper span\n */\n labelWrapperClassName?: string;\n };\n\nconst RadioElement = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n checked: checkedProp,\n defaultChecked,\n value,\n icons,\n error,\n label,\n onChange,\n style,\n description,\n hideRadio = false,\n labelWrapperClassName,\n ...rest\n } = componentProps;\n const [checked, setChecked] = useState(checkedProp ?? defaultChecked);\n\n const groupContext = useRadioGroupContext();\n\n const {\n checked: checkedIcon = Radio_checked,\n unchecked: uncheckedIcon = Radio_outline,\n } = { ...icons };\n\n const isControlled = typeof checkedProp !== \"undefined\";\n\n const onChangeHandler = (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setChecked(e.target.checked);\n }\n onChange?.(e, { value, checked: checkedProp ?? e.target.checked });\n };\n\n const helperUid = useId();\n\n // Combine local error state with group error state\n const hasError = error || groupContext?.hasError;\n\n const wrapperClassNames = cx(\n styles[\"wrapper\"],\n { [styles[\"focus\"]]: hideRadio },\n className,\n );\n\n const radioClassNames = cx(styles[\"radio\"], {\n [styles[\"radio-error\"]]: hasError,\n [styles[\"radio-checked\"]]: isControlled ? checkedProp : checked,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <div className={wrapperClassNames} style={styleCombined} data-anv=\"radio\">\n <label className={radioClassNames}>\n <input\n type=\"radio\"\n aria-checked={isControlled ? checkedProp : checked}\n checked={isControlled ? checkedProp : undefined}\n defaultChecked={defaultChecked}\n value={value}\n onChange={onChangeHandler}\n aria-describedby={description ? helperUid : undefined}\n ref={ref}\n {...rest}\n />\n\n <span\n className={cx(styles[\"icon-wrapper\"], {\n [styles[\"sr-only\"]]: hideRadio,\n })}\n aria-hidden\n >\n <Icon\n size=\"large\"\n svg={\n (isControlled ? checkedProp : checked)\n ? checkedIcon\n : uncheckedIcon\n }\n className={styles[\"icon\"]}\n />\n </span>\n\n <span\n className={cx(labelWrapperClassName, {\n [styles[\"focus-label\"]]: hideRadio,\n })}\n >\n {label}\n </span>\n </label>\n\n {description ? (\n <div className={styles[\"helper-wrapper\"]}>\n <Helper id={helperUid} description={description} />\n </div>\n ) : null}\n </div>\n );\n});\n\nRadioElement.displayName = \"RadioElement\";\n\n/**\n * Radio component for single selection from a group of options.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Customizable icons for checked and unchecked states\n * - Error state with visual indicators\n * - Description text support\n * - Accessibility support with proper ARIA attributes\n * - Layout utility props for positioning and spacing\n * - Optional radio hiding for visual users\n * - Flexible labeling options\n * - Group support via Radio.Group\n *\n * @example\n * <Radio\n * label=\"Option 1\"\n * value=\"option1\"\n * checked={selectedValue === \"option1\"}\n * onChange={(e, state) => setSelectedValue(state?.value)}\n * />\n *\n * @example\n * <Radio\n * label=\"Custom styled option\"\n * value=\"custom\"\n * icons={{\n * checked: CustomCheckedIcon,\n * unchecked: CustomUncheckedIcon\n * }}\n * description=\"This option has custom styling\"\n * />\n *\n * @example\n * <Radio.Group legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </Radio.Group>\n */\nexport const Radio = RadioElement;\n"],"names":["Radio_checked","Radio_outline"],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { R as Radio$1, a as RadioGroup } from './Radio-DcNlFfSu.js';
4
- import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
5
- import { useTrackingId } from './useTrackingId.js';
6
-
7
- const Radio = Object.assign(
8
- forwardRef(function RadioInner(props, ref) {
9
- const data = {
10
- label: childrenToString(props.label),
11
- ariaLabel: props["aria-label"],
12
- ariaLabelledBy: props["aria-labelledby"],
13
- name: props.name,
14
- value: props.value
15
- };
16
- const trackingId = useTrackingId({
17
- name: "Radio",
18
- data,
19
- hasOverride: !!props["data-tracking-id"]
20
- });
21
- return /* @__PURE__ */ jsx(Radio$1, { ref, "data-tracking-id": trackingId, ...props });
22
- }),
23
- {
24
- /**
25
- * RadioGroup component for grouping related radio options.
26
- *
27
- * Features:
28
- * - Groups multiple radio options together
29
- * - Legend support for group labeling
30
- * - Required field indication
31
- * - Accessibility support with proper fieldset semantics
32
- * - Layout utility props for positioning and spacing
33
- * - Focus and blur event handling
34
- * - More info support for additional context
35
- * - Automatic alignment based on flex direction
36
- *
37
- * @example
38
- * <RadioGroup legend="Choose your preference" required>
39
- * <Radio label="Option A" value="a" />
40
- * <Radio label="Option B" value="b" />
41
- * <Radio label="Option C" value="c" />
42
- * </RadioGroup>
43
- *
44
- * @example
45
- * <RadioGroup
46
- * legend="Horizontal layout"
47
- * flexDirection="row"
48
- * gap="4"
49
- * >
50
- * <Radio label="Yes" value="yes" />
51
- * <Radio label="No" value="no" />
52
- * </RadioGroup>
53
- */
54
- Group: RadioGroup
55
- }
56
- );
57
- Radio.displayName = Radio$1?.displayName ?? "RadioElement";
58
-
59
- export { Radio as R };
60
- //# sourceMappingURL=Radio-gpMEsFss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Radio-gpMEsFss.js","sources":["../src/components/Radio/Radio.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport {\n type RadioProps as CoreRadioProps,\n Radio as CoreRadio,\n} from \"./internal/Radio\";\nimport { RadioGroup } from \"./RadioGroup\";\nimport { useTrackingId } from \"../../hooks\";\nimport type { DataTrackingId } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\n\n/**\n * Props for the Radio component\n * @property {boolean} [checked] - Controlled state\n * @property {boolean} [defaultChecked] - Uncontrolled state\n * @property {Function} [onChange] - Callback when radio is changed\n * @property {ReactElement | string} [label] - Label for Radio\n * @property {boolean} [error] - Error state for the radio\n * @property {object} [icons] - Icon overrides for checked and unchecked states\n * @property {string} [description] - Description text to display below the radio\n * @property {string} [aria-label] - Accessible label for the radio\n * @property {string} [aria-labelledby] - ID of element that labels the radio\n * @property {string} [name] - Name attribute for the radio\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n * @extends DataTrackingId\n */\nexport type RadioProps = Omit<CoreRadioProps, \"hideRadio\"> & DataTrackingId;\n\n/**\n * Radio component: a radio button group for choosing exactly one option from a mutually exclusive set of choices.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Customizable icons for checked and unchecked states\n * - Error state with visual indicators\n * - Description text support\n * - Accessibility support with proper ARIA attributes\n * - Layout utility props for positioning and spacing\n * - Flexible labeling options\n * - Group support via Radio.Group\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Radio\n * label=\"Option 1\"\n * value=\"option1\"\n * checked={selectedValue === \"option1\"}\n * onChange={(e, state) => setSelectedValue(state?.value)}\n * />\n *\n * @example\n * <Radio\n * label=\"Custom styled option\"\n * value=\"custom\"\n * icons={{\n * checked: CustomCheckedIcon,\n * unchecked: CustomUncheckedIcon\n * }}\n * description=\"This option has custom styling\"\n * />\n *\n * @example\n * <Radio.Group legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </Radio.Group>\n */\nexport const Radio = Object.assign(\n forwardRef<HTMLInputElement, RadioProps>(function RadioInner(props, ref) {\n const data = {\n label: childrenToString(props.label),\n ariaLabel: props[\"aria-label\"],\n ariaLabelledBy: props[\"aria-labelledby\"],\n name: props.name,\n value: props.value,\n };\n\n const trackingId = useTrackingId({\n name: \"Radio\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreRadio ref={ref} data-tracking-id={trackingId} {...props} />;\n }),\n {\n /**\n * RadioGroup component for grouping related radio options.\n *\n * Features:\n * - Groups multiple radio options together\n * - Legend support for group labeling\n * - Required field indication\n * - Accessibility support with proper fieldset semantics\n * - Layout utility props for positioning and spacing\n * - Focus and blur event handling\n * - More info support for additional context\n * - Automatic alignment based on flex direction\n *\n * @example\n * <RadioGroup legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </RadioGroup>\n *\n * @example\n * <RadioGroup\n * legend=\"Horizontal layout\"\n * flexDirection=\"row\"\n * gap=\"4\"\n * >\n * <Radio label=\"Yes\" value=\"yes\" />\n * <Radio label=\"No\" value=\"no\" />\n * </RadioGroup>\n */\n Group: RadioGroup,\n },\n);\nRadio.displayName = CoreRadio?.displayName ?? \"RadioElement\";\n"],"names":["CoreRadio"],"mappings":";;;;;;AAmEO,MAAM,QAAQ,MAAA,CAAO,MAAA;AAAA,EAC1B,UAAA,CAAyC,SAAS,UAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AACvE,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,KAAA,EAAO,gBAAA,CAAiB,KAAA,CAAM,KAAK,CAAA;AAAA,MACnC,SAAA,EAAW,MAAM,YAAY,CAAA;AAAA,MAC7B,cAAA,EAAgB,MAAM,iBAAiB,CAAA;AAAA,MACvC,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,OAAO,KAAA,CAAM;AAAA,KACf;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,OAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AACD,IAAA,2BAAQA,OAAA,EAAA,EAAU,GAAA,EAAU,kBAAA,EAAkB,UAAA,EAAa,GAAG,KAAA,EAAO,CAAA;AAAA,EACvE,CAAC,CAAA;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA+BE,KAAA,EAAO;AAAA;AAEX;AACA,KAAA,CAAM,WAAA,GAAcA,SAAW,WAAA,IAAe,cAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SegmentedControl-CQ6DrbDc.js","sources":["../src/components/SegmentedControl/internal/SegmentedControlContext.ts","../src/components/SegmentedControl/SegmentedControlSegment.tsx","../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nimport type { SegmentedControlSegmentProps } from \"../SegmentedControlSegment\";\nimport type { SegmentedControlProps } from \"../SegmentedControl\";\n\n/**\n * Context props for SegmentedControl internal state management\n */\nexport type SegmentedControlContextProps = {\n /**\n * Currently selected segment value\n */\n current?: SegmentedControlSegmentProps[\"value\"];\n /**\n * Function to set the current segment\n */\n setCurrent?: (value: SegmentedControlSegmentProps[\"value\"]) => void;\n /**\n * Change handler for the segmented control\n */\n onChange?: SegmentedControlProps[\"onChange\"];\n /**\n * Name attribute for radio inputs\n */\n name?: string;\n};\n\nexport const SegmentedControlContext =\n createContext<SegmentedControlContextProps>({});\n","import {\n useContext,\n useRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { core } from \"@servicetitan/hammer-token\";\n\nimport type { DataTrackingId } from \"../../types\";\nimport { Icon, type IconProps } from \"../Icon\";\nimport { motion, useReducedMotion } from \"motion/react\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\n\nimport { SegmentedControlContext } from \"./internal/SegmentedControlContext\";\n\nimport styles from \"./SegmentedControl.module.scss\";\n\n/**\n * State object returned by segment interactions\n */\nexport type SegmentState = {\n /**\n * Whether the segment is checked\n */\n checked: boolean;\n /**\n * The value of the segment\n */\n value?: SegmentedControlSegmentProps[\"value\"];\n};\n\n/**\n * Props for the SegmentedControlSegment component\n * @extends ComponentPropsWithoutRef<\"label\">\n */\nexport type SegmentedControlSegmentProps = ComponentPropsWithoutRef<\"label\"> & {\n /**\n * Optional icon to display in the segment\n */\n icon?: IconProps[\"svg\"];\n /**\n * Value of the segment\n */\n value: string;\n /**\n * The content to display in the segment\n */\n children?: React.ReactNode;\n} & DataTrackingId;\n\n/**\n * SegmentedControlSegment component for individual segments within a segmented control.\n *\n * Features:\n * - Individual segment with radio input\n * - Optional icon support\n * - Animated selection indicator\n * - Accessibility support with proper ARIA attributes\n * - Context integration with parent SegmentedControl\n * - Motion animations with reduced motion support\n * - Icon-only mode when no children provided\n * - Data tracking id support\n *\n * @example\n * <SegmentedControl.Segment value=\"option1\" icon={Icon1}>\n * Option 1\n * </SegmentedControl.Segment>\n *\n * @example\n * <SegmentedControl.Segment value=\"icon-only\" icon={IconOnly} />\n */\nexport const SegmentedControlSegment = forwardRef<\n HTMLLabelElement,\n SegmentedControlSegmentProps\n>((props, ref) => {\n const {\n icon,\n value,\n children,\n className,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const shouldReduceMotion = useReducedMotion();\n const { current, setCurrent, name } = useContext(SegmentedControlContext);\n const labelRef = useRef<HTMLSpanElement>(null);\n\n const classNames = cx(styles.segment, className, {\n [styles[\"icon-only\"]]: icon && !children,\n });\n\n const data = {\n value: props.value,\n };\n\n const trackingId = useTrackingId({\n name: \"SegmentedControlSegment\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n // For icon-only segments (no children), use aria-label if provided, otherwise fall back to value\n const computedAriaLabel = !children ? ariaLabel || value : undefined;\n\n return (\n <>\n <label\n className={classNames}\n ref={useMergeRefs([labelRef, ref])}\n data-tracking-id={trackingId}\n data-anv=\"segmented-control-segment\"\n aria-label={computedAriaLabel}\n {...rest}\n >\n <input\n type=\"radio\"\n name={name}\n value={value}\n onChange={() => setCurrent?.(value)}\n checked={current === value}\n aria-checked={current === value}\n className={styles[\"input\"]}\n />\n {icon ? <Icon svg={icon} aria-hidden /> : null}\n {children}\n {current === value && (\n <motion.span\n layoutId={name}\n className={styles[\"select-indicator\"]}\n transition={{\n duration: shouldReduceMotion\n ? 0\n : +core.primitive.DurationDefault.value.replace(\"ms\", \"\") /\n 1000,\n }}\n />\n )}\n </label>\n </>\n );\n});\n\nSegmentedControlSegment.displayName = \"SegmentedControlSegment\";\n","import {\n forwardRef,\n useId,\n type ComponentPropsWithoutRef,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { motion } from \"motion/react\";\n\nimport type { DataTrackingId, LayoutUtilProps, Size } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { useOptionallyControlledState } from \"../../internal/hooks\";\n\nimport { SegmentedControlContext } from \"./internal/SegmentedControlContext\";\nimport {\n SegmentedControlSegment,\n type SegmentedControlSegmentProps,\n} from \"./SegmentedControlSegment\";\n\nimport styles from \"./SegmentedControl.module.scss\";\n\n/**\n * Base props for SegmentedControl component\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\">\n * @extends LayoutUtilProps\n */\ntype BaseSegmentedControlProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\" | \"onChange\"\n> &\n LayoutUtilProps &\n DataTrackingId & {\n /**\n * Callback when segment is changed\n */\n onChange?: (value: SegmentedControlSegmentProps[\"value\"]) => void;\n\n /**\n * Size of the segment\n * @default \"medium\"\n */\n size?: Extract<Size, \"small\" | \"medium\">;\n\n /**\n * Whether to fill available width\n * @default false\n */\n fill?: boolean;\n\n /**\n * Name attribute for radio inputs\n * @remarks If empty, it will auto generate one using useId()\n */\n name?: string;\n\n /**\n * The segments to render within the segmented control\n */\n children?: React.ReactNode;\n };\n\n/**\n * Props for controlled SegmentedControl\n */\ntype ControlledSegmentedControlProps = BaseSegmentedControlProps & {\n /**\n * Selected segment (controlled mode)\n */\n selected: SegmentedControlSegmentProps[\"value\"];\n defaultSelected?: never;\n};\n\n/**\n * Props for uncontrolled SegmentedControl\n */\ntype UncontrolledSegmentedControlProps = BaseSegmentedControlProps & {\n /**\n * Initial selection (uncontrolled mode)\n */\n defaultSelected: SegmentedControlSegmentProps[\"value\"];\n selected?: never;\n};\n\n/**\n * Props for the SegmentedControl component\n */\nexport type SegmentedControlProps =\n | ControlledSegmentedControlProps\n | UncontrolledSegmentedControlProps;\n\n/**\n * SegmentedControl component for selecting one option from a group of related choices — a horizontal set of segmented buttons, a segmented toggle or view switcher, for switching between a few mutually exclusive views or options such as list versus map.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Multiple size variants (small, medium)\n * - Optional fill width mode\n * - Smooth animations with motion\n * - Accessibility support with proper radio group semantics\n * - Layout utility props for positioning and spacing\n * - Context-based state management\n * - Auto-generated or custom name attributes\n * - Segment support via SegmentedControl.Segment\n * - Data tracking id support\n *\n * @example\n * <SegmentedControl\n * selected={selectedValue}\n * onChange={setSelectedValue}\n * size=\"medium\"\n * >\n * <SegmentedControl.Segment value=\"option1\">Option 1</SegmentedControl.Segment>\n * <SegmentedControl.Segment value=\"option2\">Option 2</SegmentedControl.Segment>\n * <SegmentedControl.Segment value=\"option3\">Option 3</SegmentedControl.Segment>\n * </SegmentedControl>\n *\n * @example\n * <SegmentedControl\n * defaultSelected=\"small\"\n * size=\"small\"\n * fill\n * >\n * <SegmentedControl.Segment value=\"small\" icon={SmallIcon}>Small</SegmentedControl.Segment>\n * <SegmentedControl.Segment value=\"large\" icon={LargeIcon}>Large</SegmentedControl.Segment>\n * </SegmentedControl>\n */\nexport const SegmentedControl = Object.assign(\n forwardRef<HTMLDivElement, SegmentedControlProps>(\n function SegmentedControlInner(props, ref) {\n const {\n className,\n onClick,\n onChange,\n children,\n size = \"medium\",\n defaultSelected,\n selected,\n name,\n fill,\n ...rest\n } = props;\n\n const [current, setCurrent] = useOptionallyControlledState({\n controlledValue: selected,\n defaultValue: defaultSelected,\n onChange,\n });\n\n const segmentedControlRef = useRef<HTMLDivElement>(null);\n\n const SegmentedControlClassNames = cx(\n styles[\"segmented-control\"],\n styles[size],\n className,\n {\n [styles.fill]: fill,\n },\n );\n\n const uid = useId();\n\n const data = {\n name: props.name,\n };\n\n const trackingId = useTrackingId({\n name: \"SegmentedControl\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <motion.div\n transition={{ duration: 0 }}\n layout\n role=\"radiogroup\"\n className={SegmentedControlClassNames}\n data-anv=\"segmented-control\"\n data-tracking-id={trackingId}\n ref={useMergeRefs([segmentedControlRef, ref])}\n {...rest}\n >\n <SegmentedControlContext.Provider\n value={{ current, setCurrent, name: name ?? uid }}\n >\n {children}\n </SegmentedControlContext.Provider>\n </motion.div>\n );\n },\n ),\n {\n /**\n * SegmentedControlSegment component for individual segments within a segmented control.\n *\n * Features:\n * - Individual segment with radio input\n * - Optional icon support\n * - Animated selection indicator\n * - Accessibility support with proper ARIA attributes\n * - Context integration with parent SegmentedControl\n * - Motion animations with reduced motion support\n *\n * @example\n * <SegmentedControl.Segment value=\"option1\" icon={Icon1}>\n * Option 1\n * </SegmentedControl.Segment>\n */\n Segment: SegmentedControlSegment,\n },\n);\nSegmentedControl.displayName = \"SegmentedControl\";\n\nexport default SegmentedControl;\n"],"names":["core.primitive.DurationDefault"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectCard-bp5hRyHK.js","sources":["../src/components/SelectCard/internal/SelectCardContext.tsx","../src/components/SelectCard/internal/SelectCardProvider.tsx","../src/components/SelectCard/SelectCardGroup.tsx","../src/components/SelectCard/SelectCard.tsx"],"sourcesContent":["import { type ChangeEvent, createContext, useContext } from \"react\";\n\n/**\n * Interface for the select card state\n */\nexport interface ISelectCardState {\n /**\n * When `true`, adds the item to the selected state holder.\n */\n checked: boolean;\n\n /**\n * Gives an explicit id to each item in the set.\n */\n id?: string | number;\n}\n\n/**\n * Interface for the select card onChange options\n */\nexport interface ISelectCardOnChangeOptions {\n /**\n * When `true`, doesn't fire the user's `onChange`\n */\n internal?: boolean;\n}\n\n/**\n * Interface for the select card context\n */\nexport interface ISelectCardContext {\n /**\n * Callback function that is triggered when the selection state changes.\n *\n * @callback OnChangeCallback\n * @param {ChangeEvent<HTMLInputElement>} [e] - The native HTML input change event.\n * @param {ISelectCardState} [state] - The current state of the select card component after the change.\n * @returns {void}\n */\n onChange?: (\n e?: ChangeEvent<HTMLInputElement>,\n state?: ISelectCardState,\n options?: ISelectCardOnChangeOptions,\n ) => void;\n\n /**\n * Sets how many cards the user can select, either 'single' (radio buttons) or 'multiple' (checkboxes)\n */\n selectionMode: \"single\" | \"multiple\";\n\n /**\n * Used internally to create a UUID for the HTML `name` property on radios.\n */\n radioName: string;\n\n /**\n * Creates a set of ids that are selected.\n */\n selection: Set<string | number>;\n\n /**\n * When `true`, indicates that selection is controlled at the group level via the `value` prop.\n * @default false\n */\n isGroupControlled?: boolean;\n\n /**\n * When `true`, the group was given a `defaultValue` and owns the initial selection state.\n * Individual `SelectCard` mount syncs should be skipped to avoid overriding it.\n * @default false\n */\n hasGroupDefault?: boolean;\n\n /**\n * When `true`, displays a checkbox or radio indicator in a separate column on the left side of the card.\n * The indicator type (checkbox or radio) is automatically determined by the selection mode from SelectCard.Group context.\n * @default false\n */\n showSelectIndicator?: boolean;\n}\n\nexport const SelectCardContext = createContext<ISelectCardContext | null>(null);\n\n/**\n * Custom hook for accessing the SelectCard context.\n * @returns The SelectCard context or null if not within a SelectCardProvider\n */\nexport const useSelectCardContext = () => useContext(SelectCardContext);\n","import {\n type ChangeEvent,\n type ReactNode,\n useId,\n useMemo,\n useState,\n} from \"react\";\nimport {\n type ISelectCardContext,\n type ISelectCardOnChangeOptions,\n type ISelectCardState,\n SelectCardContext,\n} from \"./SelectCardContext\";\n\n/**\n * Props for the SelectCardProvider component\n * @extends Omit<ISelectCardContext, \"radioName\" | \"selection\">\n */\ninterface ISelectCardProviderProps\n extends Omit<ISelectCardContext, \"radioName\" | \"selection\"> {\n children: ReactNode;\n\n /**\n * Controlled selection state. When provided, the group becomes controlled.\n * Array of `SelectCard` ids that are currently selected.\n */\n value?: Array<string | number>;\n\n /**\n * Initial selection state for uncontrolled usage.\n * Array of `SelectCard` ids that are selected on first render.\n */\n defaultValue?: Array<string | number>;\n}\n\n/**\n * SelectCardProvider component for managing selection state across SelectCard components.\n *\n * Features:\n * - Provides context for SelectCard components to share selection state\n * - Manages selection mode (single vs multiple)\n * - Handles selection state updates and callbacks\n * - Generates unique radio button names for single selection mode\n * - Maintains a set of selected card IDs\n * - Integrates with SelectCardGroup for automatic context provision\n *\n * @example\n * <SelectCardProvider\n * selectionMode=\"multiple\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"1\" onChange={() => {}}>Option 1</SelectCard>\n * <SelectCard id=\"2\" onChange={() => {}}>Option 2</SelectCard>\n * </SelectCardProvider>\n */\nexport const SelectCardProvider = ({\n children,\n defaultValue,\n onChange,\n selectionMode,\n showSelectIndicator,\n value,\n}: ISelectCardProviderProps) => {\n const isControlled = value !== undefined;\n const [internalSelection, setInternalSelection] = useState<\n Set<string | number>\n >(() => {\n const ids = defaultValue ?? [];\n return new Set(selectionMode === \"single\" ? ids.slice(0, 1) : ids);\n });\n const selection = useMemo(() => {\n if (!isControlled) return internalSelection;\n const ids = value ?? [];\n return new Set(selectionMode === \"single\" ? ids.slice(0, 1) : ids);\n }, [isControlled, value, internalSelection, selectionMode]);\n\n const radioName = useId();\n\n const handleChange = (\n e?: ChangeEvent<HTMLInputElement>,\n state?: ISelectCardState,\n options?: ISelectCardOnChangeOptions,\n ) => {\n if (!state || !state.id) {\n if (!options?.internal) {\n onChange?.(e, state);\n }\n\n return;\n }\n\n // Update internal selection when uncontrolled\n if (!isControlled) {\n if (selectionMode === \"single\") {\n setInternalSelection(state.checked ? new Set([state.id]) : new Set());\n } else {\n setInternalSelection((prev) => {\n const next = new Set(prev);\n if (state.checked) {\n next.add(state.id!);\n } else {\n next.delete(state.id!);\n }\n return next;\n });\n }\n }\n\n if (!options?.internal) {\n onChange?.(e, state);\n }\n };\n\n const context = {\n hasGroupDefault: defaultValue !== undefined,\n isGroupControlled: isControlled,\n selectionMode,\n onChange: handleChange,\n radioName,\n selection,\n showSelectIndicator,\n };\n\n return (\n <SelectCardContext.Provider value={context}>\n {children}\n </SelectCardContext.Provider>\n );\n};\n","import { forwardRef, type ReactNode } from \"react\";\nimport {\n CheckboxGroup,\n type CheckboxGroupProps,\n} from \"../Checkbox/CheckboxGroup\";\nimport { RadioGroup } from \"../Radio/RadioGroup\";\nimport { SelectCardProvider } from \"./internal/SelectCardProvider\";\nimport type { ISelectCardContext } from \"./internal/SelectCardContext\";\n\n/**\n * Props for the SelectCardGroup component\n * @extends Omit<ISelectCardContext, \"radioName\" | \"selection\">\n */\nexport interface SelectCardGroupProps\n extends Omit<ISelectCardContext, \"radioName\" | \"selection\">,\n Pick<CheckboxGroupProps, \"moreInfo\"> {\n /**\n * Associates the legend with content below.\n */\n ariaLabelledBy?: string;\n\n children?: ReactNode;\n\n /**\n * Initial selection state for uncontrolled usage.\n * Array of `SelectCard` ids that are selected on first render.\n * Takes precedence over individual `SelectCard` `defaultChecked` props.\n */\n defaultValue?: Array<string | number>;\n\n /**\n * Sets the legend on the group.\n */\n legend: CheckboxGroupProps[\"legend\"];\n\n /**\n * Additional props for the legend `FieldLabel` (for example `aiMark`, `className`).\n */\n legendProps?: CheckboxGroupProps[\"legendProps\"];\n\n /**\n * When `true`, sets \"required\" text in label.\n * @accessibility This does not enforce error when nothing is selected.\n * @default false\n */\n required?: boolean;\n\n /**\n * When `true`, displays a checkbox or radio indicator in a separate column on the left side of the card.\n * The indicator type (checkbox or radio) is automatically determined by the `selectionMode` setting.\n * @default false\n */\n showSelectIndicator?: boolean;\n\n /**\n * Controlled selection state. When provided, the group becomes controlled.\n * Array of `SelectCard` ids that are currently selected.\n */\n value?: Array<string | number>;\n}\n\n/**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n * - Integrates with CheckboxGroup and RadioGroup for proper form semantics\n * - Supports AI mark indicator\n *\n * @example\n * <SelectCardGroup\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * legendProps={{ aiMark: true }}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\" el=\"h3\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\" el=\"h3\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCardGroup>\n */\nexport const SelectCardGroup = forwardRef<\n HTMLInputElement,\n SelectCardGroupProps\n>((props, _ref) => {\n const {\n ariaLabelledBy,\n children,\n defaultValue,\n legend,\n legendProps,\n moreInfo,\n onChange,\n required = false,\n selectionMode,\n showSelectIndicator = false,\n value,\n ...rest\n } = props;\n\n return (\n <SelectCardProvider\n defaultValue={defaultValue}\n onChange={onChange}\n selectionMode={selectionMode}\n showSelectIndicator={showSelectIndicator}\n value={value}\n >\n {selectionMode === \"multiple\" && (\n <CheckboxGroup\n aria-labelledby={ariaLabelledBy}\n legend={legend}\n legendProps={legendProps}\n required={required}\n moreInfo={moreInfo}\n {...rest}\n >\n {children}\n </CheckboxGroup>\n )}\n {selectionMode === \"single\" && (\n <RadioGroup\n aria-labelledby={ariaLabelledBy}\n legend={legend}\n legendProps={legendProps}\n required={required}\n moreInfo={moreInfo}\n {...rest}\n >\n {children}\n </RadioGroup>\n )}\n </SelectCardProvider>\n );\n});\n\nSelectCardGroup.displayName = \"SelectCardGroup\";\n","import {\n useLayoutEffect,\n useState,\n useRef,\n forwardRef,\n type ChangeEvent,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport { SelectCardGroup } from \"./SelectCardGroup\";\nimport { Card, type CardProps } from \"../Card\";\nimport { Radio, type RadioProps } from \"../Radio/internal/Radio\";\nimport { Checkbox, type CheckboxProps } from \"../Checkbox/internal/Checkbox\";\nimport { useOptionallyControlledState } from \"../../internal/hooks\";\nimport { useSelectCardContext } from \"./internal/SelectCardContext\";\nimport { Icon } from \"../Icon\";\n\nimport CheckboxOutline from \"@servicetitan/hammer-icon/mdi/round/check_box_outline_blank.svg\";\nimport CheckboxChecked from \"@servicetitan/hammer-icon/mdi/round/check_box.svg\";\nimport RadioOutline from \"@servicetitan/hammer-icon/mdi/two-tone/radio_button_unchecked.svg\";\nimport RadioChecked from \"@servicetitan/hammer-icon/mdi/two-tone/radio_button_checked.svg\";\n\nimport styles from \"./SelectCard.module.scss\";\n\n/**\n * Props for the SelectCard component\n * @extends Omit<CardProps, \"onChange\" | \"id\">\n */\nexport interface SelectCardProps extends Omit<CardProps, \"onChange\" | \"id\"> {\n /**\n * Passes props to the underlying `<Checkbox />` component.\n */\n checkboxProps?: Omit<CheckboxProps, \"label\">;\n\n /**\n * Controlled state. When provided, the component becomes controlled.\n */\n checked?: boolean;\n\n /**\n * Uncontrolled initial state. Ignored when inside a `SelectCard.Group` that sets `defaultValue`.\n */\n defaultChecked?: boolean;\n\n /**\n * When `true`, disables the card.\n */\n disabled?: boolean;\n\n /**\n * When `true`, sets error styling on the card.\n */\n errored?: boolean;\n\n /**\n * A unique identifier for the card, used to track the selection state.\n */\n id: string | number;\n\n /**\n * Function called on selection state change.\n */\n onChange?: (value: boolean) => void;\n\n /**\n * Passes props to the underlying `<Radio />` component.\n */\n radioProps?: Omit<RadioProps, \"label\">;\n\n /**\n * Removes the drop shadow effect on the card.\n */\n removeDropShadow?: boolean;\n\n /**\n * When `true`, displays a checkbox or radio indicator in a separate column on the left side of the card.\n * The indicator type (checkbox or radio) is automatically determined by the `selectionMode` prop on the\n * `SelectCard.Group`, and defaults to checkbox if no `SelectCard.Group` is used.\n * @default false\n */\n showSelectIndicator?: boolean;\n}\n\nconst SelectCardElement = forwardRef<HTMLInputElement, SelectCardProps>(\n (props, ref) => {\n const {\n checkboxProps,\n children,\n checked: checkedProp,\n className,\n defaultChecked: defaultCheckedProp,\n disabled,\n errored,\n radioProps,\n onChange,\n removeDropShadow,\n showSelectIndicator = false,\n id,\n ...rest\n } = props;\n\n const [checked, setChecked] = useOptionallyControlledState<boolean>({\n controlledValue: checkedProp,\n defaultValue: defaultCheckedProp || false,\n onChange,\n });\n\n const context = useSelectCardContext();\n const isCardControlled = checkedProp !== undefined;\n const isGroupControlled = context?.isGroupControlled ?? false;\n\n // we need to re-render after setting the initial selection state on context\n const [_, setForceRenderCount] = useState(0);\n useLayoutEffect(() => {\n // Sync initial checked state to context (for both controlled and uncontrolled modes).\n // Skip when group is controlled — the group's value prop owns the selection Set.\n const initialChecked = checkedProp ?? defaultCheckedProp;\n if (initialChecked && !isGroupControlled && !context?.hasGroupDefault) {\n context?.onChange?.(\n undefined,\n {\n id,\n checked: initialChecked,\n },\n { internal: true },\n );\n\n setForceRenderCount((prev) => prev + 1);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Sync controlled state changes to context (skip initial mount - handled by above effect)\n const isFirstRender = useRef(true);\n useLayoutEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (isCardControlled && context) {\n // In single selection mode, only sync when checked is true.\n // Unchecking is implicit when another card becomes checked.\n // Syncing checked=false would clear the entire selection.\n if (context.selectionMode === \"single\" && !checkedProp) {\n return;\n }\n context.onChange?.(\n undefined,\n {\n id,\n checked: checkedProp!,\n },\n { internal: true },\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkedProp]);\n\n const handleChange = (event?: ChangeEvent<HTMLInputElement>) => {\n const newChecked = event ? event.target.checked : false;\n setChecked(newChecked);\n context?.onChange?.(event, {\n id,\n checked: newChecked,\n });\n };\n\n // A selection in the group context supersedes the normal checked state of the card\n const isChecked = context ? context.selection.has(id) : checked;\n const showIndicator = context?.showSelectIndicator || showSelectIndicator;\n\n // When group is controlled (value prop), drive input from context selection.\n // When group has defaultValue, it takes precedence — ignore individual defaultChecked.\n const inputChecked = isGroupControlled\n ? isChecked\n : isCardControlled\n ? checkedProp\n : undefined;\n const inputDefaultChecked =\n isGroupControlled || isCardControlled\n ? undefined\n : context?.hasGroupDefault\n ? context.selection.has(id)\n : defaultCheckedProp;\n\n const contentClassName = cx(styles[\"select-card\"], className, {\n [styles[\"select-card--remove-drop-shadow\"]]: removeDropShadow,\n [styles[\"select-card--checked\"]]: isChecked,\n [styles[\"select-card--selected\"]]: isChecked && !errored,\n [styles[\"select-card--errored\"]]: errored,\n [styles[\"select-card--disabled\"]]: disabled,\n });\n\n const iconClassNames = cx({\n [styles[\"icon-checked\"]]: isChecked && !errored && !disabled,\n [styles[\"icon-unchecked\"]]: !isChecked && !disabled,\n [styles[\"icon-checked-error\"]]: errored && !disabled,\n [styles[\"icon-checked-disabled\"]]: disabled,\n });\n\n return (\n <>\n {(!context || context?.selectionMode === \"multiple\") && (\n <Checkbox\n {...checkboxProps}\n className={cx(\n styles[\"select-card-wrapper\"],\n checkboxProps?.className,\n {\n [styles[\"select-card-checkbox-unchecked\"]]:\n !isChecked && !errored,\n [styles[\"select-card-checkbox-checked\"]]: isChecked && !errored,\n [styles[\"select-card-checkbox-error\"]]: errored,\n },\n )}\n labelWrapperClassName={styles[\"select-card-label\"]}\n checked={inputChecked}\n defaultChecked={inputDefaultChecked}\n onChange={handleChange}\n disabled={disabled}\n ref={ref}\n label={\n <Card\n {...rest}\n className={contentClassName}\n flex={showIndicator ? \"1\" : undefined}\n gap={showIndicator ? \"2\" : undefined}\n alignItems={showIndicator ? \"flex-start\" : undefined}\n >\n {showIndicator ? (\n <>\n <span className={styles[\"icon-wrapper\"]} aria-hidden>\n <Icon\n size=\"large\"\n svg={isChecked ? CheckboxChecked : CheckboxOutline}\n className={iconClassNames}\n />\n </span>\n {children}\n </>\n ) : (\n children\n )}\n </Card>\n }\n hideCheckbox\n />\n )}\n {context?.selectionMode === \"single\" && (\n <Radio\n {...radioProps}\n className={cx(\n styles[\"select-card-wrapper\"],\n radioProps?.className,\n {\n [styles[\"select-card-checkbox-unchecked\"]]:\n !isChecked && !errored,\n [styles[\"select-card-checkbox-checked\"]]: isChecked && !errored,\n [styles[\"select-card-checkbox-error\"]]: errored,\n },\n )}\n labelWrapperClassName={styles[\"select-card-label\"]}\n checked={inputChecked}\n defaultChecked={inputDefaultChecked}\n onChange={handleChange}\n disabled={disabled}\n ref={ref}\n name={context.radioName}\n label={\n <Card\n {...rest}\n className={contentClassName}\n flex={showIndicator ? \"1\" : undefined}\n gap={showIndicator ? \"2\" : undefined}\n alignItems={showIndicator ? \"flex-start\" : undefined}\n >\n {showIndicator ? (\n <>\n <span className={styles[\"icon-wrapper\"]} aria-hidden>\n <Icon\n size=\"large\"\n svg={isChecked ? RadioChecked : RadioOutline}\n className={iconClassNames}\n />\n </span>\n {children}\n </>\n ) : (\n children\n )}\n </Card>\n }\n hideRadio\n />\n )}\n </>\n );\n },\n);\n\nSelectCardElement.displayName = \"SelectCard\";\n\n/**\n * SelectCard component for creating interactive card-based selection interfaces.\n *\n * Features:\n * - Supports both single selection (radio) and multiple selection (checkbox) modes\n * - Automatic context detection for selection behavior\n * - Visual feedback for selected, disabled, and error states\n * - Accessible with proper ARIA roles and keyboard navigation\n * - Customizable styling through Card component props\n * - Hover and focus states with smooth transitions\n * - Integration with SelectCardGroup for grouped selection\n *\n * @example\n * <SelectCard\n * id=\"option-1\"\n * onChange={(checked) => console.log('Selected:', checked)}\n * >\n * <Text variant=\"headline\" size=\"small\">Option 1</Text>\n * <Text>Description of option 1</Text>\n * </SelectCard>\n */\nexport const SelectCard = Object.assign(SelectCardElement, {\n /**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n *\n * @example\n * <SelectCard.Group\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCard.Group>\n */\n Group: SelectCardGroup,\n});\n"],"names":["CheckboxChecked","CheckboxOutline","RadioChecked","RadioOutline"],"mappings":";;;;;;;;;;AAiFO,MAAM,iBAAA,GAAoB,cAAyC,IAAI,CAAA;AAMvE,MAAM,oBAAA,GAAuB,MAAM,UAAA,CAAW,iBAAiB,CAAA;;AChC/D,MAAM,qBAAqB,CAAC;AAAA,EACjC,QAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAEhD,MAAM;AACN,IAAA,MAAM,GAAA,GAAM,gBAAgB,EAAC;AAC7B,IAAA,OAAO,IAAI,IAAI,aAAA,KAAkB,QAAA,GAAW,IAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,GAAG,CAAA;AAAA,EACnE,CAAC,CAAA;AACD,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAM;AAC9B,IAAA,IAAI,CAAC,cAAc,OAAO,iBAAA;AAC1B,IAAA,MAAM,GAAA,GAAM,SAAS,EAAC;AACtB,IAAA,OAAO,IAAI,IAAI,aAAA,KAAkB,QAAA,GAAW,IAAI,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,GAAI,GAAG,CAAA;AAAA,EACnE,GAAG,CAAC,YAAA,EAAc,KAAA,EAAO,iBAAA,EAAmB,aAAa,CAAC,CAAA;AAE1D,EAAA,MAAM,YAAY,KAAA,EAAM;AAExB,EAAA,MAAM,YAAA,GAAe,CACnB,CAAA,EACA,KAAA,EACA,OAAA,KACG;AACH,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,KAAA,CAAM,EAAA,EAAI;AACvB,MAAA,IAAI,CAAC,SAAS,QAAA,EAAU;AACtB,QAAA,QAAA,GAAW,GAAG,KAAK,CAAA;AAAA,MACrB;AAEA,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,IAAI,kBAAkB,QAAA,EAAU;AAC9B,QAAA,oBAAA,CAAqB,KAAA,CAAM,OAAA,mBAAU,IAAI,GAAA,CAAI,CAAC,KAAA,CAAM,EAAE,CAAC,CAAA,mBAAI,IAAI,GAAA,EAAK,CAAA;AAAA,MACtE,CAAA,MAAO;AACL,QAAA,oBAAA,CAAqB,CAAC,IAAA,KAAS;AAC7B,UAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,UAAA,IAAI,MAAM,OAAA,EAAS;AACjB,YAAA,IAAA,CAAK,GAAA,CAAI,MAAM,EAAG,CAAA;AAAA,UACpB,CAAA,MAAO;AACL,YAAA,IAAA,CAAK,MAAA,CAAO,MAAM,EAAG,CAAA;AAAA,UACvB;AACA,UAAA,OAAO,IAAA;AAAA,QACT,CAAC,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,SAAS,QAAA,EAAU;AACtB,MAAA,QAAA,GAAW,GAAG,KAAK,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,iBAAiB,YAAA,KAAiB,MAAA;AAAA,IAClC,iBAAA,EAAmB,YAAA;AAAA,IACnB,aAAA;AAAA,IACA,QAAA,EAAU,YAAA;AAAA,IACV,SAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,2BACG,iBAAA,CAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,SAChC,QAAA,EACH,CAAA;AAEJ,CAAA;;ACvCO,MAAM,eAAA,GAAkB,UAAA,CAG7B,CAAC,KAAA,EAAO,IAAA,KAAS;AACjB,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,aAAA;AAAA,IACA,mBAAA,GAAsB,KAAA;AAAA,IACtB,KAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,uBACE,IAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,YAAA;AAAA,MACA,QAAA;AAAA,MACA,aAAA;AAAA,MACA,mBAAA;AAAA,MACA,KAAA;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,aAAA,KAAkB,UAAA,oBACjB,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,iBAAA,EAAiB,cAAA;AAAA,YACjB,MAAA;AAAA,YACA,WAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACC,GAAG,IAAA;AAAA,YAEH;AAAA;AAAA,SACH;AAAA,QAED,kBAAkB,QAAA,oBACjB,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,iBAAA,EAAiB,cAAA;AAAA,YACjB,MAAA;AAAA,YACA,WAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACC,GAAG,IAAA;AAAA,YAEH;AAAA;AAAA;AACH;AAAA;AAAA,GAEJ;AAEJ,CAAC,CAAA;AAED,eAAA,CAAgB,WAAA,GAAc,iBAAA;;;;;;;;;;;;;;;;;;;;;AC7D9B,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM;AAAA,MACJ,aAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA,EAAS,WAAA;AAAA,MACT,SAAA;AAAA,MACA,cAAA,EAAgB,kBAAA;AAAA,MAChB,QAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,gBAAA;AAAA,MACA,mBAAA,GAAsB,KAAA;AAAA,MACtB,EAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,4BAAA,CAAsC;AAAA,MAClE,eAAA,EAAiB,WAAA;AAAA,MACjB,cAAc,kBAAA,IAAsB,KAAA;AAAA,MACpC;AAAA,KACD,CAAA;AAED,IAAA,MAAM,UAAU,oBAAA,EAAqB;AACrC,IAAA,MAAM,mBAAmB,WAAA,KAAgB,MAAA;AACzC,IAAA,MAAM,iBAAA,GAAoB,SAAS,iBAAA,IAAqB,KAAA;AAGxD,IAAA,MAAM,CAAC,CAAA,EAAG,mBAAmB,CAAA,GAAI,SAAS,CAAC,CAAA;AAC3C,IAAA,eAAA,CAAgB,MAAM;AAGpB,MAAA,MAAM,iBAAiB,WAAA,IAAe,kBAAA;AACtC,MAAA,IAAI,cAAA,IAAkB,CAAC,iBAAA,IAAqB,CAAC,SAAS,eAAA,EAAiB;AACrE,QAAA,OAAA,EAAS,QAAA;AAAA,UACP,MAAA;AAAA,UACA;AAAA,YACE,EAAA;AAAA,YACA,OAAA,EAAS;AAAA,WACX;AAAA,UACA,EAAE,UAAU,IAAA;AAAK,SACnB;AAEA,QAAA,mBAAA,CAAoB,CAAC,IAAA,KAAS,IAAA,GAAO,CAAC,CAAA;AAAA,MACxC;AAAA,IAEF,CAAA,EAAG,EAAE,CAAA;AAGL,IAAA,MAAM,aAAA,GAAgB,OAAO,IAAI,CAAA;AACjC,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,cAAc,OAAA,EAAS;AACzB,QAAA,aAAA,CAAc,OAAA,GAAU,KAAA;AACxB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,oBAAoB,OAAA,EAAS;AAI/B,QAAA,IAAI,OAAA,CAAQ,aAAA,KAAkB,QAAA,IAAY,CAAC,WAAA,EAAa;AACtD,UAAA;AAAA,QACF;AACA,QAAA,OAAA,CAAQ,QAAA;AAAA,UACN,MAAA;AAAA,UACA;AAAA,YACE,EAAA;AAAA,YACA,OAAA,EAAS;AAAA,WACX;AAAA,UACA,EAAE,UAAU,IAAA;AAAK,SACnB;AAAA,MACF;AAAA,IAEF,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA0C;AAC9D,MAAA,MAAM,UAAA,GAAa,KAAA,GAAQ,KAAA,CAAM,MAAA,CAAO,OAAA,GAAU,KAAA;AAClD,MAAA,UAAA,CAAW,UAAU,CAAA;AACrB,MAAA,OAAA,EAAS,WAAW,KAAA,EAAO;AAAA,QACzB,EAAA;AAAA,QACA,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH,CAAA;AAGA,IAAA,MAAM,YAAY,OAAA,GAAU,OAAA,CAAQ,SAAA,CAAU,GAAA,CAAI,EAAE,CAAA,GAAI,OAAA;AACxD,IAAA,MAAM,aAAA,GAAgB,SAAS,mBAAA,IAAuB,mBAAA;AAItD,IAAA,MAAM,YAAA,GAAe,iBAAA,GACjB,SAAA,GACA,gBAAA,GACE,WAAA,GACA,MAAA;AACN,IAAA,MAAM,mBAAA,GACJ,iBAAA,IAAqB,gBAAA,GACjB,MAAA,GACA,OAAA,EAAS,kBACP,OAAA,CAAQ,SAAA,CAAU,GAAA,CAAI,EAAE,CAAA,GACxB,kBAAA;AAER,IAAA,MAAM,gBAAA,GAAmB,EAAA,CAAG,MAAA,CAAO,aAAa,GAAG,SAAA,EAAW;AAAA,MAC5D,CAAC,MAAA,CAAO,iCAAiC,CAAC,GAAG,gBAAA;AAAA,MAC7C,CAAC,MAAA,CAAO,sBAAsB,CAAC,GAAG,SAAA;AAAA,MAClC,CAAC,MAAA,CAAO,uBAAuB,CAAC,GAAG,aAAa,CAAC,OAAA;AAAA,MACjD,CAAC,MAAA,CAAO,sBAAsB,CAAC,GAAG,OAAA;AAAA,MAClC,CAAC,MAAA,CAAO,uBAAuB,CAAC,GAAG;AAAA,KACpC,CAAA;AAED,IAAA,MAAM,iBAAiB,EAAA,CAAG;AAAA,MACxB,CAAC,OAAO,cAAc,CAAC,GAAG,SAAA,IAAa,CAAC,WAAW,CAAC,QAAA;AAAA,MACpD,CAAC,MAAA,CAAO,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,QAAA;AAAA,MAC3C,CAAC,MAAA,CAAO,oBAAoB,CAAC,GAAG,WAAW,CAAC,QAAA;AAAA,MAC5C,CAAC,MAAA,CAAO,uBAAuB,CAAC,GAAG;AAAA,KACpC,CAAA;AAED,IAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACI,QAAA,EAAA;AAAA,MAAA,CAAA,CAAC,OAAA,IAAW,OAAA,EAAS,aAAA,KAAkB,UAAA,qBACvC,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACE,GAAG,aAAA;AAAA,UACJ,SAAA,EAAW,EAAA;AAAA,YACT,OAAO,qBAAqB,CAAA;AAAA,YAC5B,aAAA,EAAe,SAAA;AAAA,YACf;AAAA,cACE,CAAC,MAAA,CAAO,gCAAgC,CAAC,GACvC,CAAC,aAAa,CAAC,OAAA;AAAA,cACjB,CAAC,MAAA,CAAO,8BAA8B,CAAC,GAAG,aAAa,CAAC,OAAA;AAAA,cACxD,CAAC,MAAA,CAAO,4BAA4B,CAAC,GAAG;AAAA;AAC1C,WACF;AAAA,UACA,qBAAA,EAAuB,OAAO,mBAAmB,CAAA;AAAA,UACjD,OAAA,EAAS,YAAA;AAAA,UACT,cAAA,EAAgB,mBAAA;AAAA,UAChB,QAAA,EAAU,YAAA;AAAA,UACV,QAAA;AAAA,UACA,GAAA;AAAA,UACA,KAAA,kBACE,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACE,GAAG,IAAA;AAAA,cACJ,SAAA,EAAW,gBAAA;AAAA,cACX,IAAA,EAAM,gBAAgB,GAAA,GAAM,MAAA;AAAA,cAC5B,GAAA,EAAK,gBAAgB,GAAA,GAAM,MAAA;AAAA,cAC3B,UAAA,EAAY,gBAAgB,YAAA,GAAe,MAAA;AAAA,cAE1C,0CACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,UAAK,SAAA,EAAW,MAAA,CAAO,cAAc,CAAA,EAAG,eAAW,IAAA,EAClD,QAAA,kBAAA,GAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,OAAA;AAAA,oBACL,GAAA,EAAK,YAAYA,WAAA,GAAkBC,uBAAA;AAAA,oBACnC,SAAA,EAAW;AAAA;AAAA,iBACb,EACF,CAAA;AAAA,gBACC;AAAA,eAAA,EACH,CAAA,GAEA;AAAA;AAAA,WAEJ;AAAA,UAEF,YAAA,EAAY;AAAA;AAAA,OACd;AAAA,MAED,OAAA,EAAS,kBAAkB,QAAA,oBAC1B,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,UAAA;AAAA,UACJ,SAAA,EAAW,EAAA;AAAA,YACT,OAAO,qBAAqB,CAAA;AAAA,YAC5B,UAAA,EAAY,SAAA;AAAA,YACZ;AAAA,cACE,CAAC,MAAA,CAAO,gCAAgC,CAAC,GACvC,CAAC,aAAa,CAAC,OAAA;AAAA,cACjB,CAAC,MAAA,CAAO,8BAA8B,CAAC,GAAG,aAAa,CAAC,OAAA;AAAA,cACxD,CAAC,MAAA,CAAO,4BAA4B,CAAC,GAAG;AAAA;AAC1C,WACF;AAAA,UACA,qBAAA,EAAuB,OAAO,mBAAmB,CAAA;AAAA,UACjD,OAAA,EAAS,YAAA;AAAA,UACT,cAAA,EAAgB,mBAAA;AAAA,UAChB,QAAA,EAAU,YAAA;AAAA,UACV,QAAA;AAAA,UACA,GAAA;AAAA,UACA,MAAM,OAAA,CAAQ,SAAA;AAAA,UACd,KAAA,kBACE,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACE,GAAG,IAAA;AAAA,cACJ,SAAA,EAAW,gBAAA;AAAA,cACX,IAAA,EAAM,gBAAgB,GAAA,GAAM,MAAA;AAAA,cAC5B,GAAA,EAAK,gBAAgB,GAAA,GAAM,MAAA;AAAA,cAC3B,UAAA,EAAY,gBAAgB,YAAA,GAAe,MAAA;AAAA,cAE1C,0CACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,UAAK,SAAA,EAAW,MAAA,CAAO,cAAc,CAAA,EAAG,eAAW,IAAA,EAClD,QAAA,kBAAA,GAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,OAAA;AAAA,oBACL,GAAA,EAAK,YAAYC,qBAAA,GAAeC,uBAAA;AAAA,oBAChC,SAAA,EAAW;AAAA;AAAA,iBACb,EACF,CAAA;AAAA,gBACC;AAAA,eAAA,EACH,CAAA,GAEA;AAAA;AAAA,WAEJ;AAAA,UAEF,SAAA,EAAS;AAAA;AAAA;AACX,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,YAAA;AAuBzB,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,iBAAA,EAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BzD,KAAA,EAAO;AACT,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectFieldLabel-DZqxaZsp.js","sources":["../src/internal/functions/popoverTargetDomProps.ts","../src/components/SelectField/internal/SelectFieldLabel.tsx"],"sourcesContent":["import { version as reactVersion } from \"react\";\n\n/** React 18 warns on `popoverTarget`; React 19 warns on `popovertarget`. Missing `id` is `{}`. */\nexport function popoverTargetDomProps(\n id: string | undefined,\n version: string = reactVersion,\n) {\n return id\n ? {\n [Number.parseInt(version, 10) >= 19\n ? \"popoverTarget\"\n : \"popovertarget\"]: id,\n }\n : {};\n}\n","import type { ReactNode } from \"react\";\nimport {\n FieldLabel,\n type FieldLabelProps,\n} from \"../../../components/FieldLabel\";\nimport { SrOnly } from \"../../../components/SrOnly\";\n\ntype GetLabelProps = (options?: object) => { id: string; htmlFor: string };\n\n/**\n * Props for the SelectFieldLabel component\n * @property {AiMarkWithTooltipOrPopoverProps} aiMark - The AI mark to display\n * @property {string} label - The text content to display as the label\n * @property {GetLabelProps} getLabelProps - Downshift getter function that returns accessibility props for the label\n * @property {boolean} [required] - Whether the field is required. Shows a red asterisk (*) when true.\n * @property {ReactNode} [moreInfo] - Additional information to display in a tooltip\n * @property {string} [moreInfoId] - ID for the sr-only description span, referenced via aria-describedby on the associated input\n * @property {boolean} [moreInfoOpen] - Controls the open state of the more info tooltip\n * @property {boolean} [hideLabel] - Visually hides the label while keeping it accessible to screen readers\n */\nexport type SelectFieldLabelProps = {\n aiMark?: FieldLabelProps[\"aiMark\"];\n label: string;\n getLabelProps: GetLabelProps;\n hideLabel?: boolean;\n moreInfo?: ReactNode;\n moreInfoId?: string;\n moreInfoOpen?: boolean;\n required?: boolean;\n};\n\n/**\n * Internal label component for the SelectField that renders an accessible label element.\n *\n * Features:\n * - Renders a FieldLabel with proper accessibility attributes from Downshift\n * - Automatically associates the label with the combobox input\n * - Supports screen readers with proper labeling\n * - Optional required field indicator with red asterisk\n * - Help tooltip with info icon for additional context\n * - Can visually hide the label while maintaining accessibility\n *\n * @example\n * <SelectFieldLabel\n * label=\"Select an option\"\n * getLabelProps={getLabelProps}\n * required\n * moreInfo=\"Choose from available options\"\n * />\n */\nexport const SelectFieldLabel = ({\n aiMark,\n label,\n getLabelProps,\n hideLabel = false,\n moreInfo,\n moreInfoId,\n moreInfoOpen,\n required,\n}: SelectFieldLabelProps) => {\n const labelContent = (\n <FieldLabel\n {...getLabelProps()}\n aiMark={aiMark}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n moreInfoOpen={moreInfoOpen}\n >\n {label}\n </FieldLabel>\n );\n\n if (hideLabel) {\n return <SrOnly>{labelContent}</SrOnly>;\n }\n\n return labelContent;\n};\n"],"names":["version","reactVersion"],"mappings":";;;;;AAGO,SAAS,qBAAA,CACd,EAAA,EACAA,SAAA,GAAkBC,OAAA,EAClB;AACA,EAAA,OAAO,EAAA,GACH;AAAA,IACE,CAAC,OAAO,QAAA,CAASD,SAAA,EAAS,EAAE,CAAA,IAAK,EAAA,GAC7B,eAAA,GACA,eAAe,GAAG;AAAA,MAExB,EAAC;AACP;;ACoCO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,MAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,KAA6B;AAC3B,EAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACE,GAAG,aAAA,EAAc;AAAA,MAClB,MAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBAAO,GAAA,CAAC,UAAQ,QAAA,EAAA,YAAA,EAAa,CAAA;AAAA,EAC/B;AAEA,EAAA,OAAO,YAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectFieldSync-Wkx6DGpg.js","sources":["../src/components/SelectField/parts.ts","../src/components/SelectField/internal/SelectFieldInput.tsx","../src/components/SelectField/internal/useCombo.tsx","../src/components/SelectField/internal/SelectFieldComboboxMode.tsx","../src/components/SelectField/internal/SelectFieldTrigger.tsx","../src/components/SelectField/internal/useSelectMode.ts","../src/components/SelectField/internal/SelectFieldSelectMode.tsx","../src/components/SelectField/SelectField.tsx","../src/components/SelectField/SelectFieldSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for SelectField's interactive sub-elements.\n *\n * Scope a query by the consumer's `data-cy` on the field root\n * (`[data-cy=\"x\"] [data-anv-part=\"input\"]`). Portaled parts (`menu`, `option`,\n * `dialog`, `popover`) come from the shared option internals and render in the\n * top layer — target them by part attribute or the field's `#{id}-popover` /\n * `#{id}-dialog`.\n *\n * Every role SelectField needs is a shared one, so all values come from\n * `COMMON_PART`.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n clearButton: COMMON_PART.clearButton,\n toggleButton: COMMON_PART.toggleButton,\n} as const;\n","import styles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\nimport cx from \"classnames\";\nimport type { PassThroughProps, Size } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\nimport { Button } from \"../../../components/Button\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport type { ReactElement, RefObject } from \"react\";\n\n/**\n * Props for the SelectFieldInput component\n * @property {string} [placeholder] - Placeholder text displayed when input is empty\n * @property {Extract<Size, \"small\" | \"medium\" | \"large\">} [size] - Size variant of the input\n * @property {boolean} [disableClearButton] - Hides the clear button when true\n * @property {boolean} [disableToggleButton] - Hides the toggle button when true\n * @property {boolean} [disabled] - Disables the input entirely\n * @property {boolean} [readOnly] - Cannot be modified but remains interactive\n * @property {boolean} [isHighlighted] - Applies a subdued primary background to draw attention to the field\n * @property {boolean} [required] - Marks the input as required for form validation\n * @property {boolean} [error] - Shows error styling on the input when true\n * @property {() => void} [onClear] - Callback fired when the clear button is clicked\n * @property {string} [id] - HTML id attribute for the input element\n * @property {RefObject<HTMLDivElement>} [inputWrapperRef] - Ref for the input wrapper div element\n * @property {PassThroughProps<\"div\">} [htmlInputWrapperProps] - Additional props passed to the wrapper div\n * @property {PassThroughProps<\"input\">} [inputProps] - Additional props passed to the input element\n * @property {PassThroughProps<\"button\">} [toggleButtonProps] - Additional props passed to the toggle button\n * @property {string | ReactElement} [prefix] - Content to display before the input\n * @property {string | ReactElement} [suffix] - Content to display after the input\n */\nexport type SelectFieldInputProps = {\n placeholder?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n disableClearButton?: boolean;\n disableToggleButton?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n isHighlighted?: boolean;\n required?: boolean;\n error?: boolean;\n onClear?: () => void;\n id?: string;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n htmlInputWrapperProps?: PassThroughProps<\"div\">;\n inputProps?: PassThroughProps<\"input\">;\n toggleButtonProps?: PassThroughProps<\"button\">;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n};\n\n/**\n * Internal input component for the SelectField that provides the text input and action buttons.\n *\n * Features:\n * - Text input for filtering and displaying selected values\n * - Optional clear button for removing the current selection\n * - Optional toggle button for opening/closing the dropdown menu\n * - Supports multiple size variants (small, medium, large)\n * - Fully accessible with proper ARIA labels on buttons\n * - Supports pass-through props for customization of internal elements\n * - Optional prefix and suffix content\n * - Error state styling\n *\n * @example\n * <SelectFieldInput\n * placeholder=\"Search...\"\n * size=\"medium\"\n * onClear={() => handleClear()}\n * prefix=\"$\"\n * />\n */\nexport const SelectFieldInput = ({\n placeholder,\n size,\n disableClearButton,\n disableToggleButton,\n disabled,\n readOnly,\n isHighlighted,\n required,\n error,\n onClear,\n id,\n inputWrapperRef,\n htmlInputWrapperProps,\n inputProps,\n toggleButtonProps,\n prefix,\n suffix,\n}: SelectFieldInputProps) => {\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"no-clear-button\"]]: disableClearButton,\n [styles[\"no-toggle-button\"]]: disableToggleButton,\n [styles[\"disabled\"]]: disabled || readOnly,\n [styles[\"is-disabled\"]]: disabled,\n [styles[\"highlight\"]]: isHighlighted,\n });\n\n return (\n <div\n ref={inputWrapperRef}\n {...htmlInputWrapperProps}\n className={cx(inputWrapperClassNames, htmlInputWrapperProps?.className)}\n aria-disabled={disabled || undefined}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n <input\n type=\"text\"\n id={id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n {...inputProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n className={cx(styles[\"input\"], inputProps?.className, {\n [styles[\"error\"]]: error,\n })}\n />\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n <div className={styles[\"buttons-wrapper\"]}>\n {disableClearButton ? null : (\n <div className={styles[\"close-button-wrapper\"]}>\n <Button\n icon={Close}\n aria-label=\"clear selection\"\n appearance=\"ghost\"\n size=\"small\"\n className={styles[\"close-button\"]}\n {...{ [ANV_PART_ATTR]: PARTS.clearButton }}\n onClick={() => {\n onClear?.();\n }}\n />\n </div>\n )}\n {disableToggleButton ? null : (\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n icon={Chevron_Right}\n aria-label=\"toggle menu\"\n appearance=\"ghost\"\n size=\"small\"\n {...toggleButtonProps}\n disabled={disabled}\n {...{ [ANV_PART_ATTR]: PARTS.toggleButton }}\n className={cx(\n styles[\"toggle-button\"],\n toggleButtonProps?.className,\n )}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nSelectFieldInput.displayName = \"SelectFieldInput\";\n","import {\n useCombobox,\n type UseComboboxProps,\n type UseComboboxState,\n type UseComboboxStateChangeOptions,\n} from \"downshift\";\nimport { useDownshiftEnvironment } from \"../../../internal/hooks\";\nimport type {\n SelectFieldGroupByValue,\n SelectFieldOption,\n SelectFieldPinnedOptions,\n} from \"../types\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport type {\n SectionMeta,\n SelectItem,\n} from \"../../../internal/types/selectFieldInternalTypes\";\nimport { useProcessedOptions } from \"../../../internal/hooks/useProcessedOptions\";\nimport {\n buildSelectItems,\n toSelectItem,\n} from \"../../../internal/functions/buildSelectItems\";\n\nexport type { SectionMeta };\n\nexport type UseComboOptions<TID extends string | number> = {\n // An array of currently loaded options\n options: SelectFieldOption<TID>[];\n // Pinned options configuration (raw prop)\n pinned?: SelectFieldPinnedOptions<TID>;\n // Function to convert a group value to a display label\n groupToString?: (groupValue: SelectFieldGroupByValue) => string;\n // Function to sort group sections\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n selectedOption: SelectFieldOption<TID> | null;\n onSelectedOptionChange: (option: SelectFieldOption<TID> | null) => void;\n displayAs: \"popover\" | \"dialog\";\n disableHighlightOnOpen?: boolean;\n disabled: boolean;\n virtualize?: boolean;\n onScrollToHighlight?: (index: number) => void;\n} & Pick<UseComboboxProps<SelectItem>, \"onInputValueChange\" | \"onIsOpenChange\">;\n\n/**\n * The purpose of useCombo is to provide an abstraction over the downshift combobox hook.\n */\nexport const useCombo = <TID extends string | number>({\n options,\n pinned,\n groupToString,\n groupSorter,\n selectedOption,\n onSelectedOptionChange,\n onInputValueChange,\n onIsOpenChange,\n displayAs = \"popover\",\n disableHighlightOnOpen = false,\n disabled,\n virtualize = false,\n onScrollToHighlight,\n}: UseComboOptions<TID>) => {\n // Controlled input value state - needed so usePinnedOptions can access it\n // before useCombobox is called\n const [inputValue, setInputValue] = useState(selectedOption?.label ?? \"\");\n\n // Compute effective search value (empty if showing selected option's label)\n const effectiveSearchValue =\n selectedOption?.label === inputValue ? \"\" : inputValue;\n\n const { pinnedSections, ungroupedItems, groupSections } = useProcessedOptions(\n {\n options,\n pinned,\n searchValue: effectiveSearchValue,\n groupToString,\n groupSorter,\n },\n );\n\n const { items, sectionsMeta } = useMemo(\n () =>\n buildSelectItems({\n pinnedSections,\n groupSections,\n ungroupedItems,\n }),\n [pinnedSections, groupSections, ungroupedItems],\n );\n\n const selectedDownshiftItem = useMemo(() => {\n return selectedOption ? toSelectItem(selectedOption) : null;\n }, [selectedOption]);\n\n const { ref: wrapperDivRef, environment } = useDownshiftEnvironment();\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n closeMenu,\n openMenu,\n setHighlightedIndex,\n } = useCombobox({\n isItemDisabled: (item, _index) => {\n if (!item) {\n return false; // Downshift passes -1 index with an undefined item. Ignore it.\n }\n return (disabled || item.disabled) ?? false;\n },\n environment: environment,\n selectedItem: selectedDownshiftItem,\n inputValue, // Controlled input value\n onSelectedItemChange: ({\n selectedItem: si,\n }: {\n selectedItem: SelectItem<TID>;\n }) => {\n // Regular, pinned, and grouped options are all selectable\n if (\n si &&\n (si.type === \"option\" ||\n si.type === \"pinned-option\" ||\n si.type === \"grouped-option\")\n ) {\n onSelectedOptionChange(si.original);\n } else {\n onSelectedOptionChange(null);\n }\n },\n onInputValueChange: (changes) => {\n // Update local state\n setInputValue(changes.inputValue ?? \"\");\n // Call external handler\n onInputValueChange?.(changes);\n },\n onHighlightedIndexChange: ({ type, highlightedIndex: idx }) => {\n if (type !== useCombobox.stateChangeTypes.ItemMouseMove && idx >= 0) {\n onScrollToHighlight?.(idx);\n }\n },\n onIsOpenChange: (changes) => {\n onIsOpenChange?.(changes);\n if (changes.isOpen && !disableHighlightOnOpen) {\n const selectedItemIndex = items.findIndex(\n (item) => item.original.id === selectedOption?.id,\n );\n setHighlightedIndex(selectedItemIndex);\n }\n },\n items: items,\n itemToString(item: SelectItem | null) {\n return item?.original.label ?? \"\";\n },\n stateReducer: (state, actionAndChanges) =>\n stateReducer(state, actionAndChanges, displayAs),\n ...(virtualize && { scrollIntoView: () => {} }),\n });\n\n useEffect(() => {\n if (disabled) {\n closeMenu();\n }\n }, [disabled, closeMenu]);\n\n return {\n inputValue,\n wrapperDivRef,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n highlightedIndex,\n isOpen,\n items,\n sectionsMeta,\n closeMenu,\n openMenu,\n };\n};\n\nfunction stateReducer<TID extends string | number>(\n state: UseComboboxState<SelectItem<TID>>,\n actionAndChanges: UseComboboxStateChangeOptions<SelectItem<TID>>,\n displayAs: \"popover\" | \"dialog\",\n) {\n const { type, changes } = actionAndChanges;\n // this prevents the menu from being closed when the user selects an item with 'Enter' or mouse\n switch (type) {\n case useCombobox.stateChangeTypes.InputBlur:\n // keep the dialog open if the user blurs the input while the dialog is open\n if (displayAs === \"dialog\" && state.isOpen) {\n return {\n ...changes,\n isOpen: state.isOpen,\n };\n }\n return {\n ...changes,\n inputValue: state.selectedItem?.original.label ?? state.inputValue,\n };\n case useCombobox.stateChangeTypes.InputKeyDownEscape:\n case useCombobox.stateChangeTypes.FunctionCloseMenu:\n return {\n ...changes,\n inputValue: state.selectedItem?.original.label ?? state.inputValue,\n };\n case useCombobox.stateChangeTypes.InputClick:\n if (displayAs === \"dialog\" && state.isOpen) {\n // keep the dialog open if the user clicks the input while the dialog is open\n return {\n ...changes,\n isOpen: state.isOpen,\n };\n }\n return changes;\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return changes;\n default:\n return changes; // otherwise business as usual.\n }\n}\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { SelectOptions } from \"../../../internal/components/SelectOptions\";\nimport type { OptionsPanelHandle } from \"../../../internal/components/OptionsPanel\";\nimport { SelectFieldInput } from \"./SelectFieldInput\";\nimport { SelectFieldLabel } from \"./SelectFieldLabel\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport styles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\nimport { useCombo } from \"./useCombo\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { AddNewItemButton } from \"../../../internal/components/AddNewItemButton\";\nimport { shouldShowAddNewItem } from \"../../../internal/types/addNewItemTypes\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport { popoverTargetDomProps } from \"../../../internal/functions/popoverTargetDomProps\";\nimport type { SelectFieldComboboxInternalProps } from \"../../../internal/types/selectFieldInternalTypes\";\n\n/**\n * Combobox mode: searchable select using useCombobox.\n * This is the default behavior when disableSearch is false.\n */\nexport const SelectFieldComboboxMode = <TID extends string | number>({\n id,\n helperUid,\n selectedOption,\n onSelectedOptionChange,\n displayAs,\n isDisabledOrReadOnly,\n disabled,\n labelAiMark,\n readOnly,\n isHighlighted,\n required,\n placeholder,\n size,\n error,\n hasHelperText,\n disableClearButton,\n prefix,\n suffix,\n label,\n hideLabel,\n hint,\n moreInfo,\n moreInfoId,\n errorMessages,\n warning,\n description,\n className,\n style,\n layoutStyles,\n pinned,\n groupToString,\n groupSorter,\n virtualize,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n inputWrapperRef,\n debounceMs,\n addItemLabel,\n onAddNewItem,\n dataAttributes,\n}: SelectFieldComboboxInternalProps<TID>) => {\n const listRef = useRef<OptionsPanelHandle>(null);\n\n const debouncedOptionLoader = useDebouncedCallback((inputValue: string) => {\n loadOptions(selectedOption?.label === inputValue ? \"\" : inputValue, {\n initial: true,\n });\n }, debounceMs);\n\n const adjustInputValueForSelectedOption = useCallback(\n (inputValue: string) => {\n return selectedOption?.label === inputValue ? \"\" : inputValue;\n },\n [selectedOption?.label],\n );\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n wrapperDivRef,\n highlightedIndex,\n getItemProps,\n inputValue,\n items,\n closeMenu,\n sectionsMeta,\n } = useCombo({\n displayAs,\n disabled: isDisabledOrReadOnly,\n options,\n pinned,\n groupToString,\n groupSorter,\n selectedOption,\n virtualize,\n onSelectedOptionChange: (opt) => onSelectedOptionChange(opt),\n async onIsOpenChange(changes) {\n if (initialLoad === \"open\" && !initialLoadPerformed && changes.isOpen) {\n await loadOptions(adjustInputValueForSelectedOption(inputValue), {\n initial: true,\n });\n setInitialLoadPerformed(true);\n }\n },\n onInputValueChange: ({ inputValue: iv }) => {\n debouncedOptionLoader(iv ?? \"\");\n },\n onScrollToHighlight: (i) => listRef.current?.scrollToIndex(i),\n });\n\n useEffect(() => {\n const performInitialLoad = async () => {\n if (initialLoad === \"immediate\" && !initialLoadPerformed) {\n await loadOptions(adjustInputValueForSelectedOption(inputValue), {\n initial: true,\n });\n setInitialLoadPerformed(true);\n }\n };\n performInitialLoad();\n }, [\n loadOptions,\n initialLoadPerformed,\n initialLoad,\n inputValue,\n adjustInputValueForSelectedOption,\n setInitialLoadPerformed,\n ]);\n\n const handleLoadMore = async () => {\n await loadMore(adjustInputValueForSelectedOption(inputValue));\n };\n\n const addNewItemButton = shouldShowAddNewItem(\n onAddNewItem,\n addItemLabel,\n inputValue,\n ) ? (\n <AddNewItemButton\n searchText={inputValue}\n addItemLabel={addItemLabel}\n onAddNewItem={onAddNewItem}\n onCloseMenu={closeMenu}\n />\n ) : null;\n\n if (displayAs === \"dialog\") {\n return (\n <div\n {...dataAttributes}\n data-anv=\"select-field\"\n className={\n className\n ? `${styles[\"search-field\"]} ${className}`\n : styles[\"search-field\"]\n }\n style={{ ...layoutStyles, ...style }}\n ref={wrapperDivRef}\n >\n <SelectFieldLabel\n aiMark={labelAiMark}\n label={label}\n hideLabel={hideLabel}\n getLabelProps={getLabelProps}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n <SelectFieldInput\n disabled={disabled}\n readOnly={readOnly}\n isHighlighted={isHighlighted}\n required={required}\n disableToggleButton={false}\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n toggleButtonProps={getToggleButtonProps({ disabled: !!disabled })}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-input`}\n inputProps={getInputProps({\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoId]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? true : undefined,\n })}\n size={size}\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={closeMenu}\n title={label}\n field={\n <SelectFieldInput\n disabled={disabled}\n readOnly={readOnly}\n isHighlighted={isHighlighted}\n inputProps={getInputProps()}\n disableToggleButton\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-dialog-input`}\n inputWrapperRef={inputWrapperRef}\n size=\"medium\"\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n }\n initialFocusResolver={(elements) => {\n return (\n elements.find((element) => element.tagName === \"INPUT\") ||\n elements[0]\n );\n }}\n footer={addNewItemButton ?? undefined}\n >\n <SelectOptions\n ref={listRef}\n isOpen\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n disabled={isDisabledOrReadOnly}\n virtualize={virtualize}\n />\n </OptionsDialog>\n </div>\n );\n }\n\n return (\n <div\n {...dataAttributes}\n data-anv=\"select-field\"\n className={\n className\n ? `${styles[\"search-field\"]} ${className}`\n : styles[\"search-field\"]\n }\n style={{ ...layoutStyles, ...style }}\n >\n <SelectFieldLabel\n aiMark={labelAiMark}\n label={label}\n hideLabel={hideLabel}\n getLabelProps={getLabelProps}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n <SelectFieldInput\n disabled={disabled}\n readOnly={readOnly}\n isHighlighted={isHighlighted}\n required={required}\n inputProps={getInputProps({\n ...popoverTargetDomProps(`${id}-popover`),\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoId]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? true : undefined,\n })}\n toggleButtonProps={getToggleButtonProps({ disabled: !!disabled })}\n disableToggleButton={false}\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-input`}\n inputWrapperRef={inputWrapperRef}\n size={size}\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && displayAs === \"popover\"}\n onClose={closeMenu}\n width=\"reference\"\n footer={addNewItemButton ?? undefined}\n >\n <SelectOptions\n ref={listRef}\n isOpen={isOpen}\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n disabled={isDisabledOrReadOnly}\n virtualize={virtualize}\n />\n </OptionsPopover>\n </div>\n );\n};\n","import styles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\nimport cx from \"classnames\";\nimport type { Size } from \"../../../types\";\nimport { Button } from \"../../../components/Button\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport type { ReactElement, RefObject } from \"react\";\nimport { useMergeRefs } from \"../../../hooks/useMergeRefs/useMergeRefs\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { popoverTargetDomProps } from \"../../../internal/functions/popoverTargetDomProps\";\nimport { PARTS } from \"../parts\";\n\nexport type SelectFieldTriggerProps = {\n placeholder?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n disableClearButton?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n isHighlighted?: boolean;\n error?: boolean;\n onClear?: () => void;\n id?: string;\n popoverTarget?: string;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toggleButtonProps?: Record<string, any>;\n /** The display text (selected option label or empty) */\n displayValue?: string;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n};\n\n/**\n * Non-searchable select trigger for SelectField when disableSearch is true.\n * Renders a div-based trigger instead of an input, suitable for the listbox ARIA pattern.\n */\nexport const SelectFieldTrigger = ({\n placeholder,\n size,\n disableClearButton,\n disabled,\n readOnly,\n isHighlighted,\n error,\n onClear,\n id,\n inputWrapperRef,\n toggleButtonProps,\n displayValue,\n prefix,\n suffix,\n popoverTarget,\n}: SelectFieldTriggerProps) => {\n const { ref: downshiftRef, ...restToggleButtonProps } =\n toggleButtonProps ?? {};\n const mergedRef = useMergeRefs([inputWrapperRef, downshiftRef]);\n\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"no-clear-button\"]]: disableClearButton,\n [styles[\"disabled\"]]: disabled || readOnly,\n [styles[\"is-disabled\"]]: disabled,\n [styles[\"highlight\"]]: isHighlighted,\n });\n\n return (\n <div style={{ position: \"relative\" }}>\n <div\n ref={mergedRef}\n {...restToggleButtonProps}\n {...popoverTargetDomProps(popoverTarget)}\n id={id}\n aria-disabled={disabled || undefined}\n onClick={disabled ? undefined : restToggleButtonProps.onClick}\n onKeyDown={disabled ? undefined : restToggleButtonProps.onKeyDown}\n {...{ [ANV_PART_ATTR]: PARTS.trigger }}\n className={cx(inputWrapperClassNames, restToggleButtonProps?.className)}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n <div\n className={cx(styles[\"input\"], {\n [styles[\"error\"]]: error,\n })}\n >\n {displayValue ? (\n <span>{displayValue}</span>\n ) : (\n <span className={styles[\"fake-placeholder\"]}>{placeholder}</span>\n )}\n </div>\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n <div className={styles[\"buttons-wrapper\"]}>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n icon={Chevron_Right}\n aria-label=\"toggle menu\"\n appearance=\"ghost\"\n size=\"small\"\n disabled={disabled}\n tabIndex={-1}\n {...{ [ANV_PART_ATTR]: PARTS.toggleButton }}\n className={styles[\"toggle-button\"]}\n />\n </div>\n </div>\n </div>\n {disableClearButton ? null : (\n <div\n className={styles[\"buttons-wrapper\"]}\n style={{\n insetInlineEnd: \"2rem\",\n ...(size === \"small\"\n ? {}\n : {\n insetBlock: \"0\",\n }),\n }}\n >\n <div className={styles[\"close-button-wrapper\"]}>\n <Button\n icon={Close}\n aria-label=\"clear selection\"\n appearance=\"ghost\"\n size=\"small\"\n className={styles[\"close-button\"]}\n {...{ [ANV_PART_ATTR]: PARTS.clearButton }}\n onClick={(e) => {\n e.stopPropagation();\n onClear?.();\n }}\n />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nSelectFieldTrigger.displayName = \"SelectFieldTrigger\";\n","import {\n useSelect,\n type UseSelectState,\n type UseSelectStateChangeOptions,\n} from \"downshift\";\nimport { useDownshiftEnvironment } from \"../../../internal/hooks\";\nimport type {\n SelectFieldGroupByValue,\n SelectFieldOption,\n SelectFieldPinnedOptions,\n} from \"../types\";\nimport type { SelectItem } from \"../../../internal/types/selectFieldInternalTypes\";\nimport { useEffect, useMemo } from \"react\";\nimport { useProcessedOptions } from \"../../../internal/hooks/useProcessedOptions\";\nimport {\n buildSelectItems,\n toSelectItem,\n} from \"../../../internal/functions/buildSelectItems\";\n\nexport type UseSelectModeOptions<TID extends string | number> = {\n options: SelectFieldOption<TID>[];\n pinned?: SelectFieldPinnedOptions<TID>;\n groupToString?: (groupValue: SelectFieldGroupByValue) => string;\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n selectedOption: SelectFieldOption<TID> | null;\n onSelectedOptionChange: (option: SelectFieldOption<TID> | null) => void;\n onIsOpenChange?: (changes: { isOpen?: boolean }) => void;\n displayAs: \"popover\" | \"dialog\";\n disableHighlightOnOpen?: boolean;\n disabled: boolean;\n virtualize?: boolean;\n onScrollToHighlight?: (index: number) => void;\n};\n\n/**\n * Wraps downshift's useSelect for non-searchable select fields.\n * Returns a compatible interface to useCombo (minus getInputProps/inputValue).\n */\nexport const useSelectMode = <TID extends string | number>({\n options,\n pinned,\n groupToString,\n groupSorter,\n selectedOption,\n onSelectedOptionChange,\n onIsOpenChange,\n displayAs = \"popover\",\n disableHighlightOnOpen = false,\n disabled,\n virtualize = false,\n onScrollToHighlight,\n}: UseSelectModeOptions<TID>) => {\n const { pinnedSections, ungroupedItems, groupSections } = useProcessedOptions(\n {\n options,\n pinned,\n searchValue: \"\",\n groupToString,\n groupSorter,\n },\n );\n\n const { items, sectionsMeta } = useMemo(\n () =>\n buildSelectItems<TID>({\n pinnedSections,\n groupSections,\n ungroupedItems,\n }),\n [pinnedSections, groupSections, ungroupedItems],\n );\n\n const selectedDownshiftItem = useMemo(() => {\n return selectedOption ? toSelectItem(selectedOption) : null;\n }, [selectedOption]);\n\n const { ref: wrapperDivRef, environment } = useDownshiftEnvironment();\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n closeMenu,\n openMenu,\n setHighlightedIndex,\n } = useSelect<SelectItem<TID>>({\n isItemDisabled: (item) => {\n if (!item) return false;\n return (disabled || item.disabled) ?? false;\n },\n environment,\n selectedItem: selectedDownshiftItem,\n onSelectedItemChange: ({\n selectedItem: si,\n }: {\n selectedItem: SelectItem<TID>;\n }) => {\n if (\n si &&\n (si.type === \"option\" ||\n si.type === \"pinned-option\" ||\n si.type === \"grouped-option\")\n ) {\n onSelectedOptionChange(si.original);\n } else {\n onSelectedOptionChange(null);\n }\n },\n onHighlightedIndexChange: ({ type, highlightedIndex: idx }) => {\n if (type !== useSelect.stateChangeTypes.ItemMouseMove && idx >= 0) {\n onScrollToHighlight?.(idx);\n }\n },\n onIsOpenChange: (changes) => {\n onIsOpenChange?.(changes);\n if (changes.isOpen && !disableHighlightOnOpen) {\n const selectedItemIndex = items.findIndex(\n (item) => item.original.id === selectedOption?.id,\n );\n setHighlightedIndex(selectedItemIndex);\n }\n },\n items: items,\n itemToString(item: SelectItem | null) {\n return item?.original.label ?? \"\";\n },\n stateReducer: (state, actionAndChanges) =>\n stateReducer(state, actionAndChanges, displayAs),\n ...(virtualize && { scrollIntoView: () => {} }),\n });\n\n useEffect(() => {\n if (disabled) {\n closeMenu();\n }\n }, [disabled, closeMenu]);\n\n return {\n wrapperDivRef,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n isOpen,\n items,\n sectionsMeta,\n closeMenu,\n openMenu,\n };\n};\n\nfunction stateReducer<TID extends string | number>(\n state: UseSelectState<SelectItem<TID>>,\n actionAndChanges: UseSelectStateChangeOptions<SelectItem<TID>>,\n displayAs: \"popover\" | \"dialog\",\n) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (displayAs === \"dialog\" && state.isOpen) {\n return { ...changes, isOpen: state.isOpen };\n }\n return changes;\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEscape:\n case useSelect.stateChangeTypes.FunctionCloseMenu:\n return changes;\n case useSelect.stateChangeTypes.ToggleButtonClick:\n if (displayAs === \"dialog\" && state.isOpen) {\n return { ...changes, isOpen: state.isOpen };\n }\n return changes;\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ItemClick:\n return changes;\n default:\n return changes;\n }\n}\n","import { useEffect, useRef } from \"react\";\nimport { SelectOptions } from \"../../../internal/components/SelectOptions\";\nimport type { OptionsPanelHandle } from \"../../../internal/components/OptionsPanel\";\nimport { SelectFieldTrigger } from \"./SelectFieldTrigger\";\nimport { SelectFieldLabel } from \"./SelectFieldLabel\";\nimport styles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\nimport { useSelectMode } from \"./useSelectMode\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { AddNewItemButton } from \"../../../internal/components/AddNewItemButton\";\nimport { shouldShowAddNewItem } from \"../../../internal/types/addNewItemTypes\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport type { SelectFieldBaseInternalProps } from \"../../../internal/types/selectFieldInternalTypes\";\n\n/**\n * Select mode: non-searchable select using useSelect.\n * Active when disableSearch is true.\n */\nexport const SelectFieldSelectMode = <\n TID extends string | number = string | number,\n>({\n labelAiMark,\n id,\n helperUid,\n selectedOption,\n onSelectedOptionChange,\n displayAs,\n isDisabledOrReadOnly,\n disabled,\n readOnly,\n isHighlighted,\n placeholder,\n size,\n error,\n hasHelperText,\n disableClearButton,\n prefix,\n suffix,\n label,\n hideLabel,\n hint,\n moreInfo,\n moreInfoId,\n errorMessages,\n warning,\n description,\n className,\n style,\n layoutStyles,\n pinned,\n groupToString,\n groupSorter,\n virtualize,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n inputWrapperRef,\n required,\n addItemLabel,\n onAddNewItem,\n dataAttributes,\n}: SelectFieldBaseInternalProps<TID>) => {\n const listRef = useRef<OptionsPanelHandle>(null);\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n wrapperDivRef,\n highlightedIndex,\n getItemProps,\n items,\n closeMenu,\n sectionsMeta,\n } = useSelectMode({\n displayAs,\n disabled: isDisabledOrReadOnly,\n options,\n pinned,\n groupToString,\n groupSorter,\n selectedOption,\n virtualize,\n onSelectedOptionChange: (opt) => onSelectedOptionChange(opt),\n async onIsOpenChange(changes) {\n if (initialLoad === \"open\" && !initialLoadPerformed && changes.isOpen) {\n await loadOptions(\"\", { initial: true });\n setInitialLoadPerformed(true);\n }\n },\n onScrollToHighlight: (i) => listRef.current?.scrollToIndex(i),\n });\n\n useEffect(() => {\n const performInitialLoad = async () => {\n if (initialLoad === \"immediate\" && !initialLoadPerformed) {\n await loadOptions(\"\", { initial: true });\n setInitialLoadPerformed(true);\n }\n };\n performInitialLoad();\n }, [loadOptions, initialLoadPerformed, initialLoad, setInitialLoadPerformed]);\n\n const handleLoadMore = async () => {\n await loadMore(\"\");\n };\n\n const addNewItemButton = shouldShowAddNewItem(\n onAddNewItem,\n addItemLabel,\n \"\",\n ) ? (\n <AddNewItemButton\n searchText=\"\"\n addItemLabel={addItemLabel}\n onAddNewItem={onAddNewItem}\n onCloseMenu={closeMenu}\n />\n ) : null;\n\n const toggleButtonProps = getToggleButtonProps({\n disabled: !!disabled,\n \"aria-required\": required ? true : undefined,\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoId]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? true : undefined,\n } as Record<string, unknown>);\n\n if (displayAs === \"dialog\") {\n return (\n <div\n {...dataAttributes}\n data-anv=\"select-field\"\n className={\n className\n ? `${styles[\"search-field\"]} ${className}`\n : styles[\"search-field\"]\n }\n style={{ ...layoutStyles, ...style }}\n ref={wrapperDivRef}\n >\n <SelectFieldLabel\n aiMark={labelAiMark}\n label={label}\n hideLabel={hideLabel}\n getLabelProps={getLabelProps}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n <SelectFieldTrigger\n disabled={disabled}\n readOnly={readOnly}\n isHighlighted={isHighlighted}\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n toggleButtonProps={toggleButtonProps}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-trigger`}\n inputWrapperRef={inputWrapperRef}\n displayValue={selectedOption?.label}\n size={size}\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={closeMenu}\n title={label}\n footer={addNewItemButton ?? undefined}\n >\n <SelectOptions\n ref={listRef}\n isOpen\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) =>\n getMenuProps({\n ...opts,\n style: { ...opts?.style, outline: \"none\" },\n onKeyDown: toggleButtonProps.onKeyDown,\n tabIndex: 0,\n \"aria-activedescendant\":\n toggleButtonProps[\"aria-activedescendant\"],\n })\n }\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n disabled={isDisabledOrReadOnly}\n virtualize={virtualize}\n />\n </OptionsDialog>\n </div>\n );\n }\n\n return (\n <div\n {...dataAttributes}\n data-anv=\"select-field\"\n className={\n className\n ? `${styles[\"search-field\"]} ${className}`\n : styles[\"search-field\"]\n }\n style={{ ...layoutStyles, ...style }}\n >\n <SelectFieldLabel\n aiMark={labelAiMark}\n label={label}\n hideLabel={hideLabel}\n getLabelProps={getLabelProps}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n <SelectFieldTrigger\n disabled={disabled}\n readOnly={readOnly}\n isHighlighted={isHighlighted}\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n toggleButtonProps={toggleButtonProps}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-trigger`}\n popoverTarget={`${id}-popover`}\n inputWrapperRef={inputWrapperRef}\n displayValue={selectedOption?.label}\n size={size}\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && displayAs === \"popover\"}\n onClose={closeMenu}\n width=\"reference\"\n footer={addNewItemButton ?? undefined}\n >\n <SelectOptions\n ref={listRef}\n isOpen={isOpen}\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n disabled={isDisabledOrReadOnly}\n virtualize={virtualize}\n />\n </OptionsPopover>\n </div>\n );\n};\n","import type { SelectFieldHandle, SelectFieldProps } from \"./types\";\nimport {\n type ForwardedRef,\n forwardRef,\n type ReactNode,\n useId,\n useRef,\n} from \"react\";\nimport type { DataAttributes } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks/useLayoutPropsUtil\";\nimport { warnDeprecatedErrorUsage } from \"../../components/FieldMessage\";\nimport { SelectFieldComboboxMode } from \"./internal/SelectFieldComboboxMode\";\nimport { SelectFieldSelectMode } from \"./internal/SelectFieldSelectMode\";\nimport type {\n SelectFieldBaseInternalProps,\n SelectFieldComboboxInternalProps,\n} from \"../../internal/types/selectFieldInternalTypes\";\nimport { useSelectOrchestration } from \"../../internal/hooks/useSelectOrchestration\";\n\nconst SelectFieldInner = <TID extends string | number>(\n propsWithLayout: SelectFieldProps<TID>,\n ref: ForwardedRef<SelectFieldHandle>,\n) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(propsWithLayout);\n\n const dataAttributes = Object.fromEntries(\n Object.entries(componentProps).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n\n const {\n id: idProp,\n value: selectedOption,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n lazy,\n loadOptions: loadOptionsProp,\n label,\n labelAiMark,\n hideLabel,\n placeholder,\n disableClearButton: disableClearButtonProp = false,\n debounceMs = 200,\n onSelectedOptionChange,\n cache,\n size,\n error,\n hint,\n moreInfo,\n description,\n errorAriaLive: _errorAriaLive,\n required,\n disabled,\n readOnly,\n isHighlighted,\n prefix,\n suffix,\n warning,\n className,\n style,\n pinned,\n virtualize,\n disableSearch,\n addItemLabel,\n onAddNewItem,\n } = componentProps;\n\n const groupToString =\n \"groupToString\" in componentProps\n ? componentProps.groupToString\n : undefined;\n const groupSorter =\n \"groupSorter\" in componentProps ? componentProps.groupSorter : undefined;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"SelectField\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n const hasHelperText = !!(hint || errorMessages || warning || description);\n const isDisabledOrReadOnly = (disabled || readOnly) ?? false;\n\n const {\n displayAs,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n } = useSelectOrchestration<TID>({\n lazy,\n loadOptions: loadOptionsProp,\n cache,\n lazyOptions:\n \"lazyOptions\" in componentProps ? componentProps.lazyOptions : undefined,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n ref,\n });\n\n const disableClearButton =\n disableClearButtonProp || !selectedOption || isDisabledOrReadOnly;\n\n const baseProps: SelectFieldBaseInternalProps<TID> = {\n id,\n helperUid,\n selectedOption,\n onSelectedOptionChange,\n displayAs,\n isDisabledOrReadOnly,\n disabled,\n readOnly,\n isHighlighted,\n required,\n placeholder,\n size,\n error,\n hasHelperText,\n disableClearButton,\n prefix,\n suffix,\n label,\n labelAiMark,\n hideLabel,\n hint,\n moreInfo,\n moreInfoId: moreInfo ? moreInfoUid : undefined,\n errorMessages,\n warning,\n description,\n className,\n style,\n layoutStyles,\n pinned,\n groupToString,\n groupSorter,\n virtualize,\n addItemLabel,\n onAddNewItem,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n inputWrapperRef,\n dataAttributes,\n };\n\n if (disableSearch) {\n return <SelectFieldSelectMode {...baseProps} />;\n }\n\n const comboboxProps: SelectFieldComboboxInternalProps<TID> = {\n ...baseProps,\n debounceMs,\n };\n\n return <SelectFieldComboboxMode {...comboboxProps} />;\n};\n\n/**\n * SelectField component for selecting a single option from a searchable dropdown.\n *\n * Features:\n * - Async option loading with caching, lazy pagination (page, offset, group), and debounced search\n * - Supports pinned option sections (static or dynamically loaded)\n * - Grouped options with custom sort and label functions\n * - Combobox mode (searchable) and select mode (non-searchable) via disableSearch\n * - Dialog and popover display modes with auto-detection based on viewport\n * - Imperative handle for cache management (clearCache, invalidate)\n * - Optional \"Add new item\" affordance below the option list with consumer-owned dialog\n * - Supports layout utilities for positioning and spacing\n *\n * @example\n * <SelectField\n * label=\"Technician\"\n * value={selected}\n * onSelectedOptionChange={setSelected}\n * loadOptions={async (search) => fetchTechnicians(search)}\n * />\n */\nexport const SelectField = Object.assign(forwardRef(SelectFieldInner), {\n displayName: \"SelectField\",\n}) as <TID extends string | number = string | number>(\n propsWithLayout: SelectFieldProps<TID> & {\n ref?: ForwardedRef<SelectFieldHandle>;\n },\n) => ReactNode;\n","import { useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { SelectField } from \"./SelectField\";\nimport type {\n SelectFieldHandle,\n SelectFieldProps,\n SelectFieldOption,\n SelectFieldGroupByValue,\n} from \"./types\";\nimport {\n type SyncFilterFn,\n defaultSyncFilter,\n toSyncFilterFn,\n sortByGroup,\n} from \"../../internal/functions/syncFilterUtils\";\nimport { useInvalidateOnOptionsChange } from \"../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type SelectFieldSyncProps<\n TID extends string | number = string | number,\n> = Omit<\n SelectFieldProps<TID>,\n \"loadOptions\" | \"lazy\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /**\n * The options to display in the select field.\n */\n options: SelectFieldOption<TID>[];\n /**\n * Controls how options are filtered and sorted when the user types a search value.\n * Can be a function that returns options in the desired display order,\n * or a MatchSorterOptions object to customize the default match-sorter behavior.\n *\n * Before any search is performed, options appear in the order they are supplied.\n * By default, options are filtered by `label` and `searchText` using match-sorter,\n * which also ranks results by match quality (best matches first).\n *\n * @example\n * <SelectFieldSync\n * options={options}\n * filter={(options, searchValue) => {\n * return options.filter((option) => {\n * return option.label?.toLowerCase().includes(searchValue.toLowerCase());\n * });\n * }}\n * />\n *\n * @example\n * <SelectFieldSync\n * options={options}\n * filter={{ keys: [\"label\"] }}\n * />\n */\n filter?: SyncFilterFn<TID> | MatchSorterOptions<SelectFieldOption<TID>>;\n /**\n * Function to compare two group values for sorting.\n * When provided, options are sorted by group using this comparator,\n * then by match-sort order within each group.\n * @param a - First group value to compare\n * @param b - Second group value to compare\n * @returns Negative if a < b, positive if a > b, zero if equal\n */\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n};\n\n/**\n * SelectFieldSync is a simplified version of SelectField that is used to display a list of options in a select field.\n *\n * Features:\n * - Accepts `options` instead of `loadOptions` and `lazy`.\n * - Performs client-side filtering of the options.\n * - Optionally accepts a function to filter the options, or a MatchSorterOptions object to customize the default filtering.\n * - Supports grouping with optional group sorting via `groupSorter`.\n * - Supports all the other props of SelectField.\n */\nexport const SelectFieldSync = <TID extends string | number>(\n props: SelectFieldSyncProps<TID>,\n) => {\n const {\n options,\n filter: filterProp = defaultSyncFilter,\n groupSorter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toSyncFilterFn<TID>(filterProp), [filterProp]);\n\n const loadOptions = (searchValue: string) => {\n const filtered = filter(options, searchValue);\n return groupSorter ? sortByGroup<TID>(filtered, groupSorter) : filtered;\n };\n\n const fieldRef = useRef<SelectFieldHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, options);\n\n return (\n <SelectField\n ref={fieldRef}\n lazy={false}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n"],"names":["Close","Chevron_Right","stateReducer","inputValue"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectMenuSync-O55TODxn.js","sources":["../src/components/SelectMenu/parts.ts","../src/components/SelectMenu/SelectMenu.tsx","../src/components/SelectMenu/SelectMenuSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for SelectMenu interactive sub-elements.\n *\n * There is no wrapper root — attach consumer `data-*` (e.g. `data-cy`) via\n * props; they are merged into the trigger render-prop bag. Portaled\n * `menu` / `option` / `popover` / `dialog` / footer buttons come from shared\n * internals (not redeclared here).\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n} as const;\n","import type { SelectMenuHandle, SelectMenuProps } from \"./types\";\nimport {\n type ChangeEvent,\n type KeyboardEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { SelectOptions } from \"../../internal/components/SelectOptions\";\nimport { useDebouncedCallback } from \"../../internal/hooks/useDebouncedCallback\";\nimport { OptionsPopover } from \"../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../internal/components/OptionsDialog/OptionsDialog\";\nimport { MenuFooter } from \"../../internal/components/MenuFooter/MenuFooter\";\nimport { AddNewItemButton } from \"../../internal/components/AddNewItemButton\";\nimport { shouldShowAddNewItem } from \"../../internal/types/addNewItemTypes\";\nimport { useProcessedOptions } from \"../../internal/hooks/useProcessedOptions\";\nimport { buildSelectItems } from \"../../internal/functions/buildSelectItems\";\nimport { useMenuInteraction } from \"./internal/useMenuInteraction\";\nimport type { SelectItem } from \"../../internal/types/selectFieldInternalTypes\";\nimport { useSelectOrchestration } from \"../../internal/hooks/useSelectOrchestration\";\nimport { SearchField } from \"../../components\";\nimport type { DataAttributes } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { PARTS } from \"./parts\";\n\n/**\n * SelectMenu component for selecting a single option from a dropdown triggered by any element.\n *\n * Features:\n * - Attaches to any trigger element via a render prop\n * - Optional search input rendered inside the popover/dialog\n * - Lazy loading with pagination (page, offset, or group modes)\n * - Pinned options support\n * - Grouped options support\n * - Supports both popover and dialog display modes\n * - Adaptive display based on device (mobile uses dialog)\n * - Cache support for loadOptions results\n * - Full accessibility support with ARIA attributes\n * - Controlled selection state\n * - Configurable popover width\n * - Optional \"Add new item\" affordance below the option list with consumer-owned dialog\n *\n * @example\n * <SelectMenu\n * trigger={(props) => <Button {...props}>Select a book</Button>}\n * label=\"Books\"\n * value={selectedOption}\n * onSelectedOptionChange={setSelectedOption}\n * loadOptions={loadOptions}\n * />\n */\nexport const SelectMenu = forwardRef<SelectMenuHandle, SelectMenuProps>(\n (props, ref) => {\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n value: selectedOption,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n lazy,\n loadOptions: loadOptionsProp,\n label,\n searchPlaceholder,\n debounceMs = 200,\n onSelectedOptionChange,\n cache,\n pinned,\n virtualize,\n disableSearch,\n popoverWidth,\n trigger,\n onSearchChange,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n addItemLabel,\n onAddNewItem,\n clear,\n } = props;\n\n const groupToString =\n \"groupToString\" in props ? props.groupToString : undefined;\n const groupSorter = \"groupSorter\" in props ? props.groupSorter : undefined;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n\n const {\n displayAs,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n } = useSelectOrchestration({\n lazy,\n loadOptions: loadOptionsProp,\n cache,\n lazyOptions: \"lazyOptions\" in props ? props.lazyOptions : undefined,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n ref,\n });\n\n const [inputValue, setInputValue] = useState(\"\");\n\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const { pinnedSections, ungroupedItems, groupSections } =\n useProcessedOptions({\n options,\n pinned,\n searchValue,\n groupToString,\n groupSorter,\n });\n\n const { items, sectionsMeta } = useMemo(\n () =>\n buildSelectItems({\n pinnedSections,\n groupSections,\n ungroupedItems,\n }),\n [pinnedSections, groupSections, ungroupedItems],\n );\n\n const selectedItemIds = useMemo(\n () => new Set(selectedOption ? [selectedOption.id] : []),\n [selectedOption],\n );\n\n const handleItemActivate = useCallback(\n (item: SelectItem) => {\n if (\n item.type === \"option\" ||\n item.type === \"pinned-option\" ||\n item.type === \"grouped-option\"\n ) {\n onSelectedOptionChange(item.original);\n } else {\n onSelectedOptionChange(null);\n }\n },\n [onSelectedOptionChange],\n );\n\n const [isOpen, setIsOpen] = useState(false);\n\n const {\n closeMenu,\n highlightedIndex,\n setHighlightedIndex,\n getTriggerProps,\n getMenuProps,\n getItemProps,\n listRef,\n menuContainerRef,\n handleKeyDown,\n } = useMenuInteraction({\n items: items,\n sectionsMeta,\n onItemActivate: handleItemActivate,\n selectedItemIds,\n displayAs,\n closeOnActivate: true,\n id,\n triggerRef,\n label,\n isOpen,\n setIsOpen,\n onImplicitClose,\n onExplicitClose,\n });\n\n const debouncedOptionLoader = useDebouncedCallback((value: string) => {\n loadOptions(value, { initial: true });\n }, debounceMs);\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setInputValue(value);\n debouncedOptionLoader(value);\n onSearchChange?.(value);\n },\n [debouncedOptionLoader, onSearchChange],\n );\n\n const handleInputKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n handleKeyDown(e);\n },\n [handleKeyDown, onMenuKeyDown],\n );\n\n const getMenuPropsWithKeyDown: typeof getMenuProps = useCallback(\n (opts) => {\n const menuProps = getMenuProps(opts);\n if (!onMenuKeyDown) return menuProps;\n return {\n ...menuProps,\n onKeyDown: (e: KeyboardEvent) => {\n onMenuKeyDown(e);\n menuProps.onKeyDown(e);\n },\n };\n },\n [getMenuProps, onMenuKeyDown],\n );\n\n useEffect(() => {\n const performInitialLoad = async () => {\n if (initialLoad === \"immediate\" && !initialLoadPerformed) {\n await loadOptions(\"\", { initial: true });\n setInitialLoadPerformed(true);\n }\n };\n performInitialLoad();\n }, [\n loadOptions,\n initialLoadPerformed,\n initialLoad,\n setInitialLoadPerformed,\n ]);\n\n const prevIsOpenRef = useRef(false);\n useEffect(() => {\n const wasOpen = prevIsOpenRef.current;\n prevIsOpenRef.current = isOpen;\n\n if (isOpen && !wasOpen) {\n if (initialLoad === \"open\" && !initialLoadPerformed) {\n loadOptions(\"\", { initial: true }).then(() => {\n setInitialLoadPerformed(true);\n });\n }\n const selectedIdx = items.findIndex(\n (item) => item.original.id === selectedOption?.id,\n );\n if (selectedIdx >= 0) {\n setHighlightedIndex(selectedIdx);\n }\n }\n\n if (!isOpen && wasOpen) {\n setInputValue(\"\");\n loadOptions(\"\", { initial: true });\n }\n }, [\n isOpen,\n initialLoad,\n initialLoadPerformed,\n loadOptions,\n setInitialLoadPerformed,\n items,\n selectedOption?.id,\n setHighlightedIndex,\n ]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n menuContainerRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch, menuContainerRef]);\n\n const handleLoadMore = async () => {\n await loadMore(searchValue);\n };\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const triggerProps = {\n ...getTriggerProps(),\n ...dataAttributes,\n [ANV_PART_ATTR]: PARTS.trigger,\n };\n\n const menuPropsForAria = getMenuProps();\n const activeDescendant = menuPropsForAria[\"aria-activedescendant\"];\n\n const handleSearchClear = useCallback(() => {\n setInputValue(\"\");\n debouncedOptionLoader(\"\");\n onSearchChange?.(\"\");\n }, [debouncedOptionLoader, onSearchChange]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={\n handleInputChange as React.ChangeEventHandler<HTMLInputElement>\n }\n onKeyDown={\n handleInputKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={activeDescendant}\n aria-controls={menuPropsForAria.id}\n placeholder={searchPlaceholder}\n type=\"search\"\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n ) : null;\n\n const addNewItemButton = shouldShowAddNewItem(\n onAddNewItem,\n addItemLabel,\n inputValue,\n ) ? (\n <AddNewItemButton\n searchText={inputValue}\n addItemLabel={addItemLabel}\n onAddNewItem={onAddNewItem}\n onCloseMenu={() => closeMenu({ restoreFocus: false })}\n />\n ) : null;\n\n // Wrap clear's onClick so clicking Clear always also closes the menu and\n // returns focus to the trigger.\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n closeMenu();\n },\n }\n : undefined;\n // Only render a footer when at least one slot has content; passing an empty\n // <MenuFooter/> would still draw the popover's footer divider.\n const hasFooter = !!wrappedClear || !!addNewItemButton;\n const footer = hasFooter ? (\n <MenuFooter clear={wrappedClear} addNew={addNewItemButton} />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={closeMenu}\n title={label}\n field={searchInput ?? undefined}\n footer={footer ?? undefined}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n <SelectOptions\n ref={listRef}\n isOpen\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) => {\n const menuProps = getMenuPropsWithKeyDown(opts);\n if (disableSearch) {\n return menuProps;\n }\n return { ...menuProps, tabIndex: -1 };\n }}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n virtualize={virtualize}\n />\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen && displayAs === \"popover\"}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer ?? undefined}\n >\n {searchInput}\n <SelectOptions\n ref={listRef}\n isOpen={isOpen}\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) => {\n const menuProps = getMenuPropsWithKeyDown(opts);\n if (disableSearch) {\n return menuProps;\n }\n return { ...menuProps, tabIndex: -1 };\n }}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n virtualize={virtualize}\n />\n </OptionsPopover>\n </>\n );\n },\n);\n\nSelectMenu.displayName = \"SelectMenu\";\n","import { useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { SelectMenu } from \"./SelectMenu\";\nimport type {\n SelectMenuHandle,\n SelectMenuProps,\n SelectMenuOption,\n SelectMenuGroupByValue,\n} from \"./types\";\nimport {\n type SyncFilterFn,\n defaultSyncFilter,\n toSyncFilterFn,\n sortByGroup,\n} from \"../../internal/functions/syncFilterUtils\";\nimport { useInvalidateOnOptionsChange } from \"../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type SelectMenuSyncProps = Omit<\n SelectMenuProps,\n \"loadOptions\" | \"lazy\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /**\n * The options to display in the select menu.\n */\n options: SelectMenuOption[];\n /**\n * Controls how options are filtered and sorted when the user types a search value.\n * Can be a function that returns options in the desired display order,\n * or a MatchSorterOptions object to customize the default match-sorter behavior.\n *\n * By default, options are filtered by `label` and `searchText` using match-sorter.\n */\n filter?: SyncFilterFn | MatchSorterOptions<SelectMenuOption>;\n /**\n * Custom comparator function to sort groups.\n */\n groupSorter?: (\n a: SelectMenuGroupByValue,\n b: SelectMenuGroupByValue,\n ) => number;\n};\n\n/**\n * SelectMenuSync is a simplified version of SelectMenu for client-side option sets.\n *\n * Features:\n * - Accepts `options` instead of `loadOptions` and `lazy`\n * - Performs client-side filtering of the options\n * - Optionally accepts a custom filter function or MatchSorterOptions\n * - Supports grouping with optional group sorting via `groupSorter`\n * - Supports all other props of SelectMenu\n *\n * @example\n * <SelectMenuSync\n * trigger={(props) => <Button {...props}>Pick a book</Button>}\n * label=\"Books\"\n * options={bookOptions}\n * value={selectedOption}\n * onSelectedOptionChange={setSelectedOption}\n * />\n */\nexport const SelectMenuSync = (props: SelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultSyncFilter,\n groupSorter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toSyncFilterFn(filterProp), [filterProp]);\n\n const loadOptions = (searchValue: string) => {\n const filtered = filter(options, searchValue);\n return groupSorter ? sortByGroup(filtered, groupSorter) : filtered;\n };\n\n const fieldRef = useRef<SelectMenuHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, options);\n\n return (\n <SelectMenu\n ref={fieldRef}\n lazy={false}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectTrigger-BfJ7DWYq.js","sources":["../src/components/SelectTrigger/SelectTrigger.tsx"],"sourcesContent":["import type { Dispatch, SetStateAction } from \"react\";\nimport type {\n UseComboboxProps as UseDownshiftComboboxProps,\n UseMultipleSelectionProps as UseDownshiftMultipleSelectionProps,\n} from \"downshift\";\n\nimport { Avatar, type AvatarProps } from \"../Avatar\";\nimport { childrenToString } from \"../../internal/functions\";\nimport type { DataTrackingId, DistributiveOmit } from \"../../types\";\nimport type { FieldLabelProps } from \"../FieldLabel\";\nimport { Icon, type IconProps } from \"../Icon\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport {\n SelectTriggerBase,\n type SelectTriggerBaseProps,\n} from \"./internal/SelectTriggerBase\";\nimport {\n defaultItemToKey,\n defaultItemToString,\n} from \"../Combobox/internal/ComboboxUtils\";\n\nexport type SelectTriggerProps<Item> = DistributiveOmit<\n SelectTriggerBaseProps<Item>,\n \"prefix\" | \"selectedItem\" | \"selectedItems\" | \"onChange\"\n> &\n Pick<FieldLabelProps, \"required\" | \"moreInfo\"> &\n Pick<UseDownshiftComboboxProps<Item>, \"itemToString\" | \"itemToKey\"> &\n DataTrackingId & {\n prefix?:\n | string\n | { icon: DistributiveOmit<IconProps, \"size\"> }\n | { avatar: DistributiveOmit<AvatarProps, \"size\"> };\n } & (\n | {\n multiple?: never;\n onChange?:\n | Dispatch<SetStateAction<Item | null>>\n | ((arg: Item | null) => void);\n selectedItem: UseDownshiftComboboxProps<Item>[\"selectedItem\"];\n selectedItems?: never;\n }\n | {\n multiple: true;\n onChange?:\n | Dispatch<SetStateAction<Item[] | null>>\n | ((arg: Item[] | null) => void);\n selectedItem?: never;\n selectedItems: UseDownshiftMultipleSelectionProps<Item>[\"selectedItems\"];\n }\n );\n\n/**\n * SelectTrigger component — a field-styled button for opening a custom\n * select-like menu (e.g. paired with `Combobox.Content` or a custom\n * popover), for building select components that need a trigger different\n * from `SelectMenu`'s built-in one.\n *\n * Features:\n * - Single (`selectedItem`) or multiple (`selectedItems`) selection display\n * - Optional prefix as text, an icon, or an avatar\n * - Label, hint, description, error, and required-field messaging\n * - Full accessibility support via `FieldLabel`\n *\n * @example\n * <SelectTrigger\n * label=\"Assignee\"\n * selectedItem={selected}\n * itemToString={(item) => item?.name ?? \"\"}\n * />\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: look into unknown\nexport const SelectTrigger = <Item = any>(props: SelectTriggerProps<Item>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n className,\n style,\n label,\n size,\n error,\n hint,\n description,\n required,\n moreInfo,\n prefix: prefixProp,\n suffix,\n maxRows,\n selectedItemProps = () => ({}),\n id,\n placeholder,\n disabled: isDisabled,\n readOnly: isReadOnly,\n onClick,\n multiple,\n onChange,\n disableClearSelection,\n itemToString: itemToStringProp,\n itemToKey: itemToKeyProp,\n selectedItem = null,\n selectedItems = [],\n ...rest\n } = componentProps;\n\n const itemToString = itemToStringProp ?? defaultItemToString<Item>;\n const itemToKey = itemToKeyProp ?? defaultItemToKey<Item>;\n\n function removeSelectedItem(item: Item) {\n if (multiple) {\n onChange?.(\n selectedItems.filter(\n (selectedItem: Item) => itemToKey(selectedItem) !== itemToKey(item),\n ),\n );\n } else if (itemToKey(selectedItem) === itemToKey(item)) {\n onChange?.(null);\n }\n }\n\n function reset() {\n if (multiple) {\n onChange?.([]);\n } else {\n onChange?.(null);\n }\n }\n\n const noClearButton = isDisabled || isReadOnly || disableClearSelection;\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n size: props.size,\n required: props.required,\n moreInfo: props.moreInfo,\n description: childrenToString(props.description),\n hint: props.hint,\n labelProps: labelPropsWithoutAiMark,\n };\n\n const trackingId = useTrackingId({\n name: \"ComboboxSearchField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const prefix =\n prefixProp == null || typeof prefixProp === \"string\" ? (\n prefixProp\n ) : \"icon\" in prefixProp ? (\n <Icon {...prefixProp.icon} />\n ) : \"avatar\" in prefixProp ? (\n <Avatar\n {...prefixProp.avatar}\n size={props.size === \"small\" ? \"small\" : \"medium\"}\n />\n ) : (\n prefixProp\n );\n\n return (\n <SelectTriggerBase\n data-anv=\"select-trigger\"\n data-tracking-id={trackingId}\n className={className}\n style={styleCombined}\n label={label}\n size={size}\n error={error}\n hint={hint}\n description={description}\n labelProps={{\n aiMark,\n moreInfo,\n required,\n }}\n prefix={prefix}\n suffix={suffix}\n maxRows={maxRows}\n selectedItemProps={selectedItemProps}\n id={id}\n placeholder={placeholder}\n disabled={isDisabled}\n readOnly={isReadOnly}\n itemToString={itemToString}\n removeSelectedItem={removeSelectedItem}\n disableClearSelection={noClearButton}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n onClearButtonClick={reset}\n inputWrapperProps={{ onClick }}\n inputProps={rest}\n />\n );\n};\n"],"names":["selectedItem"],"mappings":"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"}