@servicetitan/anvil2 3.7.1 → 3.9.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 (418) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{AiMark-DKAIkwNU.js → AiMark-2_O4tKv_.js} +5 -5
  3. package/dist/AiMark-2_O4tKv_.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-tsu15fCc.js → Alert-DtM7NDN9.js} +3 -3
  6. package/dist/Alert-DtM7NDN9.js.map +1 -0
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-DU0J4111.js → Announcement-CGglhMfd.js} +3 -3
  9. package/dist/Announcement-CGglhMfd.js.map +1 -0
  10. package/dist/Announcement.js +1 -1
  11. package/dist/AnvilProvider-b3gvW6Md.js.map +1 -1
  12. package/dist/Avatar-CoQcOHWU.js.map +1 -1
  13. package/dist/Avatar-DX96Mxe7.js.map +1 -1
  14. package/dist/Badge-BNrYBFiU.js.map +1 -1
  15. package/dist/Badge.css +2 -3
  16. package/dist/{Breadcrumbs-CoqJO7Ca.js → Breadcrumbs-Bmqmw5F5.js} +4 -4
  17. package/dist/Breadcrumbs-Bmqmw5F5.js.map +1 -0
  18. package/dist/Breadcrumbs.js +1 -1
  19. package/dist/{Button-BNzCI47m.js → Button-Dwh_Nd4l.js} +6 -8
  20. package/dist/Button-Dwh_Nd4l.js.map +1 -0
  21. package/dist/Button.js +1 -1
  22. package/dist/ButtonCompound-D7kA0qXr.js.map +1 -1
  23. package/dist/{ButtonLink-PlW08u41.js → ButtonLink-DOFAxNvC.js} +2 -2
  24. package/dist/ButtonLink-DOFAxNvC.js.map +1 -0
  25. package/dist/ButtonLink.js +1 -1
  26. package/dist/{ButtonToggle-DBGc7dIn.js → ButtonToggle-DKDBD1g3.js} +2 -2
  27. package/dist/ButtonToggle-DKDBD1g3.js.map +1 -0
  28. package/dist/ButtonToggle.js +1 -1
  29. package/dist/{Calendar-Csw2CkqE.js → Calendar-CUgFbnKj.js} +2 -2
  30. package/dist/Calendar-CUgFbnKj.js.map +1 -0
  31. package/dist/{Calendar-DnwCL7gm.js → Calendar-D_fqe0-J.js} +11 -4
  32. package/dist/Calendar-D_fqe0-J.js.map +1 -0
  33. package/dist/Calendar.js +2 -2
  34. package/dist/Card-Bt0F6RTq.js.map +1 -1
  35. package/dist/{Checkbox-DGU3JwZA.js → Checkbox-4wRmrann.js} +2 -2
  36. package/dist/Checkbox-4wRmrann.js.map +1 -0
  37. package/dist/{Checkbox-Cmn1o3Ta.js → Checkbox-DoxWcbfv.js} +5 -5
  38. package/dist/Checkbox-DoxWcbfv.js.map +1 -0
  39. package/dist/Checkbox.js +1 -1
  40. package/dist/{Chip-BsGckplA.js → Chip-D6Q0J0Xe.js} +3 -3
  41. package/dist/Chip-D6Q0J0Xe.js.map +1 -0
  42. package/dist/Chip.js +1 -1
  43. package/dist/Combobox.js +1 -1
  44. package/dist/{DataTable-BLK4-7QQ.js → DataTable-CRzQKN_P.js} +11 -11
  45. package/dist/DataTable-CRzQKN_P.js.map +1 -0
  46. package/dist/DataTable.css +2 -3
  47. package/dist/{DateFieldRange-BnNrQvuG.js → DateFieldRange-CHbrYgsD.js} +12 -5
  48. package/dist/DateFieldRange-CHbrYgsD.js.map +1 -0
  49. package/dist/DateFieldRange.js +1 -1
  50. package/dist/{DateFieldSingle-CwcV_AOp.js → DateFieldSingle-D-KZ3NL0.js} +12 -5
  51. package/dist/DateFieldSingle-D-KZ3NL0.js.map +1 -0
  52. package/dist/DateFieldSingle.js +1 -1
  53. package/dist/{DateFieldYearless-HntvaWSJ.js → DateFieldYearless-DouEX24o.js} +5 -5
  54. package/dist/DateFieldYearless-DouEX24o.js.map +1 -0
  55. package/dist/DateFieldYearless.js +1 -1
  56. package/dist/{DateFieldYearlessRange-BPvJvBob.js → DateFieldYearlessRange-B_bImgyn.js} +5 -5
  57. package/dist/DateFieldYearlessRange-B_bImgyn.js.map +1 -0
  58. package/dist/DateFieldYearlessRange.js +1 -1
  59. package/dist/{DaysOfTheWeek-4Cd2WK7u.js → DaysOfTheWeek--FBi44iw.js} +5 -5
  60. package/dist/DaysOfTheWeek--FBi44iw.js.map +1 -0
  61. package/dist/DaysOfTheWeek.js +1 -1
  62. package/dist/{Details-DkteVZbk.js → Details-CVA5zbrR.js} +2 -2
  63. package/dist/Details-CVA5zbrR.js.map +1 -0
  64. package/dist/Details.js +1 -1
  65. package/dist/{Dialog-CE2fxzJR.js → Dialog-Clh3jaX8.js} +5 -5
  66. package/dist/Dialog-Clh3jaX8.js.map +1 -0
  67. package/dist/Dialog.js +1 -1
  68. package/dist/{DialogCancelButton-DmSUPuCR.js → DialogCancelButton-DBL0aKTK.js} +2 -2
  69. package/dist/DialogCancelButton-DBL0aKTK.js.map +1 -0
  70. package/dist/DialogContext-DBgtApl9.js.map +1 -1
  71. package/dist/Divider-C7fp5Xb6.js.map +1 -1
  72. package/dist/Dnd.js +2 -2
  73. package/dist/{DndHandleButton-Ck5nc8w2.js → DndHandleButton-BRlodkDO.js} +2 -2
  74. package/dist/{DndHandleButton-Ck5nc8w2.js.map → DndHandleButton-BRlodkDO.js.map} +1 -1
  75. package/dist/DndSort.js +4 -4
  76. package/dist/DndSort.js.map +1 -1
  77. package/dist/{Drawer-CWLwXp1D.js → Drawer-h2Mut1lB.js} +61 -34
  78. package/dist/Drawer-h2Mut1lB.js.map +1 -0
  79. package/dist/Drawer.css +34 -28
  80. package/dist/Drawer.js +1 -1
  81. package/dist/DrawerContext-BSpnzXVZ.js.map +1 -1
  82. package/dist/DrillDown.js +1 -1
  83. package/dist/DrillDown.module-D1Bf9_yP.js.map +1 -1
  84. package/dist/{EditCard-DqFAx5cl.js → EditCard-QohYSylF.js} +4 -4
  85. package/dist/EditCard-QohYSylF.js.map +1 -0
  86. package/dist/EditCard.js +1 -1
  87. package/dist/{FieldLabel-v6vMVVWB.js → FieldLabel-SzH61hCb.js} +3 -3
  88. package/dist/FieldLabel-SzH61hCb.js.map +1 -0
  89. package/dist/FieldLabel.js +1 -1
  90. package/dist/{FilterBar-Ce22r7lY.js → FilterBar-CBTAkEri.js} +8 -8
  91. package/dist/FilterBar-CBTAkEri.js.map +1 -0
  92. package/dist/FilterBar.js +1 -1
  93. package/dist/{Flex-Bb3iHExM.js → Flex-CRF7gj0_.js} +3 -3
  94. package/dist/Flex-CRF7gj0_.js.map +1 -0
  95. package/dist/Flex.css +2 -4
  96. package/dist/Flex.js +1 -1
  97. package/dist/{Grid-ho1pGJ5L.js → Grid-CvGQrIhE.js} +4 -4
  98. package/dist/Grid-CvGQrIhE.js.map +1 -0
  99. package/dist/Grid.css +3 -5
  100. package/dist/Grid.js +1 -1
  101. package/dist/{Helper-B_VAFgGd.js → Helper-Bq6Npkgh.js} +2 -2
  102. package/dist/Helper-Bq6Npkgh.js.map +1 -0
  103. package/dist/{Icon-B4uCvMU9.js → Icon-B5zwN7GD.js} +4 -4
  104. package/dist/Icon-B5zwN7GD.js.map +1 -0
  105. package/dist/Icon.js +1 -1
  106. package/dist/{InputMask-DnbZnynw.js → InputMask-CQONHcTq.js} +3 -3
  107. package/dist/InputMask-CQONHcTq.js.map +1 -0
  108. package/dist/InputMask.js +1 -1
  109. package/dist/InteractiveCard-C0g5PxB6.js.map +1 -1
  110. package/dist/Layout-C2Q2hyLG.js.map +1 -1
  111. package/dist/{Link-C7dtI5K6.js → Link-D7ycmfQ_.js} +2 -2
  112. package/dist/Link-D7ycmfQ_.js.map +1 -0
  113. package/dist/Link.css +2 -4
  114. package/dist/Link.js +1 -1
  115. package/dist/LinkButton-C0wps8r1.js.map +1 -1
  116. package/dist/List-BvzfZ9TW.js.map +1 -1
  117. package/dist/{ListView-Dy4m0aQb.js → ListView-BgGEwal3.js} +3 -3
  118. package/dist/ListView-BgGEwal3.js.map +1 -0
  119. package/dist/ListView.js +1 -1
  120. package/dist/{Listbox-By-gyw1j.js → Listbox-Cw_2W62S.js} +4 -4
  121. package/dist/Listbox-Cw_2W62S.js.map +1 -0
  122. package/dist/Listbox.js +1 -1
  123. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
  124. package/dist/LocalizationProvider-BPcOU7YX.js.map +1 -1
  125. package/dist/{Menu-DmEXQLXt.js → Menu-DNOOmDQC.js} +3 -3
  126. package/dist/Menu-DNOOmDQC.js.map +1 -0
  127. package/dist/Menu.js +1 -1
  128. package/dist/{MenuFooter-Ck9L599M.js → MenuFooter-BXcNxNnX.js} +2 -2
  129. package/dist/MenuFooter-BXcNxNnX.js.map +1 -0
  130. package/dist/MultiSelectField.js +1 -1
  131. package/dist/{MultiSelectFieldSync-CGOAko_r.js → MultiSelectFieldSync-CpfsWecG.js} +18 -8
  132. package/dist/MultiSelectFieldSync-CpfsWecG.js.map +1 -0
  133. package/dist/MultiSelectMenu.js +1 -1
  134. package/dist/{MultiSelectMenuSync-DTRWdqGg.js → MultiSelectMenuSync-CtyLYyDE.js} +10 -8
  135. package/dist/MultiSelectMenuSync-CtyLYyDE.js.map +1 -0
  136. package/dist/{NumberField-BuAlvtg_.js → NumberField-B1761jkf.js} +7 -7
  137. package/dist/NumberField-B1761jkf.js.map +1 -0
  138. package/dist/NumberField.css +2 -3
  139. package/dist/NumberField.js +1 -1
  140. package/dist/Overflow.js +1 -1
  141. package/dist/Overflow.js.map +1 -1
  142. package/dist/{Page-DBKu3XYh.js → Page-B6E3Gbji.js} +13 -13
  143. package/dist/Page-B6E3Gbji.js.map +1 -0
  144. package/dist/Page.js +1 -1
  145. package/dist/{Pagination-Ceh0uZhU.js → Pagination-DF7iMeJe.js} +6 -6
  146. package/dist/Pagination-DF7iMeJe.js.map +1 -0
  147. package/dist/Pagination.js +1 -1
  148. package/dist/{Popover-hQKMGTiJ.js → Popover-CjsE5FG0.js} +3 -3
  149. package/dist/Popover-CjsE5FG0.js.map +1 -0
  150. package/dist/Popover.js +1 -1
  151. package/dist/PortalProvider-Cj_y3gbC.js.map +1 -1
  152. package/dist/{ProgressBar-CFdDZFV9.js → ProgressBar-Coh2nTJ1.js} +6 -6
  153. package/dist/ProgressBar-Coh2nTJ1.js.map +1 -0
  154. package/dist/ProgressBar.js +1 -1
  155. package/dist/{Radio-Dey7KUCQ.js → Radio-BxSL1PoP.js} +2 -2
  156. package/dist/Radio-BxSL1PoP.js.map +1 -0
  157. package/dist/{Radio-ARjSflvI.js → Radio-J4Iv3wbJ.js} +5 -5
  158. package/dist/Radio-J4Iv3wbJ.js.map +1 -0
  159. package/dist/Radio.js +1 -1
  160. package/dist/{RichTextEditor-B4ZPAevY.js → RichTextEditor-CLo8yoUP.js} +13 -13
  161. package/dist/RichTextEditor-CLo8yoUP.js.map +1 -0
  162. package/dist/RichTextEditor.css +1 -2
  163. package/dist/RichTextEditor.js +1 -1
  164. package/dist/{SavedFiltersButton-DPISXV2b.js → SavedFiltersButton-FcYVncxU.js} +12 -12
  165. package/dist/SavedFiltersButton-FcYVncxU.js.map +1 -0
  166. package/dist/SavedFiltersButton.js +1 -1
  167. package/dist/{SearchField-B7fIOJf-.js → SearchField-ChoNtw8w.js} +2 -2
  168. package/dist/SearchField-ChoNtw8w.js.map +1 -0
  169. package/dist/{SearchField-X4B7f23E.js → SearchField-DX8hZyo2.js} +2 -2
  170. package/dist/SearchField-DX8hZyo2.js.map +1 -0
  171. package/dist/SearchField.js +1 -1
  172. package/dist/{SegmentedControl-Be6jCglV.js → SegmentedControl-CQ6DrbDc.js} +2 -2
  173. package/dist/SegmentedControl-CQ6DrbDc.js.map +1 -0
  174. package/dist/SegmentedControl.css +2 -3
  175. package/dist/SegmentedControl.js +1 -1
  176. package/dist/{SelectCard-DtEUPxgj.js → SelectCard-BTfhPyHH.js} +4 -4
  177. package/dist/SelectCard-BTfhPyHH.js.map +1 -0
  178. package/dist/SelectCard.js +1 -1
  179. package/dist/SelectField.js +1 -1
  180. package/dist/{SelectFieldLabel-DB3o9bDD.js → SelectFieldLabel-CjY6zFJA.js} +2 -2
  181. package/dist/SelectFieldLabel-CjY6zFJA.js.map +1 -0
  182. package/dist/{SelectFieldSync-B5r-wl1D.js → SelectFieldSync-Bi8HsMYP.js} +23 -8
  183. package/dist/SelectFieldSync-Bi8HsMYP.js.map +1 -0
  184. package/dist/SelectMenu.js +1 -1
  185. package/dist/{SelectMenuSync-CqKMKaWt.js → SelectMenuSync-DKg4g5nN.js} +7 -7
  186. package/dist/SelectMenuSync-DKg4g5nN.js.map +1 -0
  187. package/dist/{SelectOptions-VVJ4D-0C.js → SelectOptions-DszNAjxB.js} +2 -2
  188. package/dist/SelectOptions-DszNAjxB.js.map +1 -0
  189. package/dist/{SelectTrigger-TRI2LhJR.js → SelectTrigger-DNIc5ttg.js} +4 -4
  190. package/dist/SelectTrigger-DNIc5ttg.js.map +1 -0
  191. package/dist/SelectTrigger.js +1 -1
  192. package/dist/{SelectTriggerBase-D1nOad4B.js → SelectTriggerBase-1Cc6EUBw.js} +10 -14
  193. package/dist/SelectTriggerBase-1Cc6EUBw.js.map +1 -0
  194. package/dist/SelectTriggerBase.css +2 -3
  195. package/dist/{SideNav-DoxX8Vi-.js → SideNav-DZRXOYHs.js} +2 -2
  196. package/dist/SideNav-DZRXOYHs.js.map +1 -0
  197. package/dist/SideNav.js +1 -1
  198. package/dist/Skeleton.js.map +1 -1
  199. package/dist/Spinner-B7tTWcP6.js.map +1 -1
  200. package/dist/SrOnly-pnf8ajnh.js.map +1 -1
  201. package/dist/{Stepper-CvaR7OoT.js → Stepper-BX_gDWLE.js} +4 -4
  202. package/dist/Stepper-BX_gDWLE.js.map +1 -0
  203. package/dist/Stepper.css +1 -2
  204. package/dist/Stepper.js +1 -1
  205. package/dist/{Switch-ClbHJvDU.js → Switch-BpjBYm-U.js} +5 -5
  206. package/dist/Switch-BpjBYm-U.js.map +1 -0
  207. package/dist/Switch.js +1 -1
  208. package/dist/{Tab-Cy4G562A.js → Tab-Bqfvg8Ce.js} +53 -23
  209. package/dist/Tab-Bqfvg8Ce.js.map +1 -0
  210. package/dist/Tab.css +35 -31
  211. package/dist/Tab.js +1 -1
  212. package/dist/Table.js +1 -1
  213. package/dist/{Text-BjYHzUGW.js → Text-CIoD_RK4.js} +2 -2
  214. package/dist/Text-CIoD_RK4.js.map +1 -0
  215. package/dist/Text.js +1 -1
  216. package/dist/{TextField-DX6-K3jO.js → TextField-CzzvLI5_.js} +4 -4
  217. package/dist/TextField-CzzvLI5_.js.map +1 -0
  218. package/dist/{TextField-BsVxym0-.js → TextField-D3sRS5q1.js} +2 -2
  219. package/dist/TextField-D3sRS5q1.js.map +1 -0
  220. package/dist/TextField.js +1 -1
  221. package/dist/{Textarea-B3z6Y7VU.js → Textarea-B3C7AkPj.js} +4 -4
  222. package/dist/Textarea-B3C7AkPj.js.map +1 -0
  223. package/dist/Textarea.js +1 -1
  224. package/dist/ThemeProvider-Sd8LK0A9.js.map +1 -1
  225. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  226. package/dist/{TimeField-Bmcwic3C.js → TimeField-L9B_X6-H.js} +31 -9
  227. package/dist/TimeField-L9B_X6-H.js.map +1 -0
  228. package/dist/TimeField.js +1 -1
  229. package/dist/TimezoneMessage-BrKB_psP.js.map +1 -1
  230. package/dist/Toast.js +2 -2
  231. package/dist/{Toaster-CvY-A7zY.js → Toaster-CAI7tX8q.js} +4 -4
  232. package/dist/Toaster-CAI7tX8q.js.map +1 -0
  233. package/dist/{Toaster-CTjkTMie.js → Toaster-DZxf0N9g.js} +2 -2
  234. package/dist/Toaster-DZxf0N9g.js.map +1 -0
  235. package/dist/{Toolbar-BpCO-4zj.js → Toolbar-2VQIjU5b.js} +9 -9
  236. package/dist/Toolbar-2VQIjU5b.js.map +1 -0
  237. package/dist/{Toolbar-pdJXcqY0.js → Toolbar-BbImThIu.js} +7 -7
  238. package/dist/Toolbar-BbImThIu.js.map +1 -0
  239. package/dist/Toolbar.js +2 -2
  240. package/dist/{ToolbarButtonToggle-3xbnm1Qr.js → ToolbarButtonToggle-Bc0XvCM9.js} +2 -2
  241. package/dist/ToolbarButtonToggle-Bc0XvCM9.js.map +1 -0
  242. package/dist/Tooltip-BC8lnFhe.js.map +1 -1
  243. package/dist/TrackingProvider-Co4lyoI9.js.map +1 -1
  244. package/dist/TrackingProviderContext-CrVA7KHv.js.map +1 -1
  245. package/dist/TreeSelectField.js +1 -1
  246. package/dist/{TreeSelectFieldSync-Cz8uOdpT.js → TreeSelectFieldSync-DUHVmOQa.js} +19 -8
  247. package/dist/TreeSelectFieldSync-DUHVmOQa.js.map +1 -0
  248. package/dist/TreeSelectMenu.js +1 -1
  249. package/dist/{TreeSelectMenuSync-Bk8BN6_B.js → TreeSelectMenuSync-DVoYUG7F.js} +8 -8
  250. package/dist/TreeSelectMenuSync-DVoYUG7F.js.map +1 -0
  251. package/dist/{TypeaheadTextField-Dg7O5Yu5.js → TypeaheadTextField-9Nkkd4c4.js} +3 -3
  252. package/dist/TypeaheadTextField-9Nkkd4c4.js.map +1 -0
  253. package/dist/TypeaheadTextField.js +1 -1
  254. package/dist/{YearlessDateInputWithPicker-CpnLg01W.js → YearlessDateInputWithPicker-CM9mmz8s.js} +16 -6
  255. package/dist/YearlessDateInputWithPicker-CM9mmz8s.js.map +1 -0
  256. package/dist/beta.js +16 -16
  257. package/dist/{bulkActionTypes-B20IInUD.js → bulkActionTypes-BnZNAru6.js} +2 -2
  258. package/dist/bulkActionTypes-BnZNAru6.js.map +1 -0
  259. package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
  260. package/dist/{filter-state-CuiHPC94.js → filter-state-XmqhkURU.js} +37 -33
  261. package/dist/filter-state-XmqhkURU.js.map +1 -0
  262. package/dist/{index-B12T0Vxa.js → index-BwNeldDw.js} +2 -2
  263. package/dist/{index-B12T0Vxa.js.map → index-BwNeldDw.js.map} +1 -1
  264. package/dist/{index-SZMmvI3D.js → index-BwV_Pz7v.js} +2 -2
  265. package/dist/index-BwV_Pz7v.js.map +1 -0
  266. package/dist/index.js +56 -56
  267. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
  268. package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
  269. package/dist/src/beta/components/Toolbar/index.d.ts +1 -1
  270. package/dist/src/components/Alert/Alert.d.ts +2 -4
  271. package/dist/src/components/Announcement/Announcement.d.ts +2 -4
  272. package/dist/src/components/Breadcrumbs/index.d.ts +1 -1
  273. package/dist/src/components/ButtonCompound/ButtonCompound.d.ts +2 -4
  274. package/dist/src/components/ButtonLink/ButtonLink.d.ts +2 -4
  275. package/dist/src/components/ButtonToggle/ButtonToggle.d.ts +2 -4
  276. package/dist/src/components/Calendar/Calendar.d.ts +3 -1
  277. package/dist/src/components/Calendar/index.d.ts +1 -1
  278. package/dist/src/components/Checkbox/index.d.ts +2 -2
  279. package/dist/src/components/Combobox/Combobox.d.ts +2 -2
  280. package/dist/src/components/Combobox/ComboboxEmpty.d.ts +1 -1
  281. package/dist/src/components/Combobox/index.d.ts +2 -2
  282. package/dist/src/components/DateFieldSingle/index.d.ts +1 -1
  283. package/dist/src/components/DateFieldYearless/index.d.ts +1 -1
  284. package/dist/src/components/Details/index.d.ts +2 -2
  285. package/dist/src/components/Dialog/index.d.ts +4 -4
  286. package/dist/src/components/DndSort/index.d.ts +3 -3
  287. package/dist/src/components/Drawer/Drawer.d.ts +3 -1
  288. package/dist/src/components/Drawer/DrawerHeader.d.ts +35 -3
  289. package/dist/src/components/Drawer/index.d.ts +4 -4
  290. package/dist/src/components/Grid/index.d.ts +1 -1
  291. package/dist/src/components/List/index.d.ts +1 -1
  292. package/dist/src/components/Listbox/index.d.ts +2 -2
  293. package/dist/src/components/Menu/index.d.ts +1 -1
  294. package/dist/src/components/Overflow/index.d.ts +1 -1
  295. package/dist/src/components/Popover/index.d.ts +4 -4
  296. package/dist/src/components/Radio/index.d.ts +2 -2
  297. package/dist/src/components/SelectCard/index.d.ts +1 -1
  298. package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +7 -1
  299. package/dist/src/components/SideNav/index.d.ts +3 -3
  300. package/dist/src/components/Stepper/index.d.ts +6 -6
  301. package/dist/src/components/Tab/index.d.ts +3 -3
  302. package/dist/src/components/TimeField/index.d.ts +1 -1
  303. package/dist/src/components/Toolbar/index.d.ts +5 -5
  304. package/dist/src/components/Tooltip/index.d.ts +2 -2
  305. package/dist/src/internal/components/Popover/index.d.ts +4 -4
  306. package/dist/src/providers/ThemeProvider/index.d.ts +2 -2
  307. package/dist/src/providers/TrackingProvider/index.d.ts +1 -1
  308. package/dist/src/types/index.d.ts +3 -3
  309. package/dist/{stripInlineMarkdown-C-3FEh_E.js → stripInlineMarkdown-BfNNOWPk.js} +2 -2
  310. package/dist/{stripInlineMarkdown-C-3FEh_E.js.map → stripInlineMarkdown-BfNNOWPk.js.map} +1 -1
  311. package/dist/{syncFilterUtils-CU5iJQSC.js → syncFilterUtils-UVNoFsDr.js} +5 -5
  312. package/dist/syncFilterUtils-UVNoFsDr.js.map +1 -0
  313. package/dist/{treeSync-CUf4vwDm.js → treeSync-CiU5d6rF.js} +4 -4
  314. package/dist/{treeSync-CUf4vwDm.js.map → treeSync-CiU5d6rF.js.map} +1 -1
  315. package/dist/{useAdaptiveView-C0F7qnLD.js → useAdaptiveView-C_WvM4-P.js} +7 -7
  316. package/dist/useAdaptiveView-C_WvM4-P.js.map +1 -0
  317. package/dist/useChipLayout-BWZfKDgd.js.map +1 -1
  318. package/dist/{useDrilldown-CCsr0_3L.js → useDrilldown-D7DKSs7E.js} +5 -5
  319. package/dist/{useDrilldown-CCsr0_3L.js.map → useDrilldown-D7DKSs7E.js.map} +1 -1
  320. package/dist/useFocusWithin-hi77jsrB.js.map +1 -1
  321. package/dist/{useInfiniteCombobox-HSttRaX5.js → useInfiniteCombobox-COJTJxCZ.js} +70 -68
  322. package/dist/useInfiniteCombobox-COJTJxCZ.js.map +1 -0
  323. package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-BUxEDMEG.js} +2 -2
  324. package/dist/useInitialFocus-BUxEDMEG.js.map +1 -0
  325. package/dist/useLayoutPropsUtil-DjqeAJZ9.js.map +1 -1
  326. package/dist/{useMenuInteraction-NEJXUD4I.js → useMenuInteraction-AgrXU8kv.js} +8 -2
  327. package/dist/useMenuInteraction-AgrXU8kv.js.map +1 -0
  328. package/dist/{useNumberField-D_ic9i2q.js → useNumberField-CXFYUZ_n.js} +4 -2
  329. package/dist/useNumberField-CXFYUZ_n.js.map +1 -0
  330. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
  331. package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
  332. package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
  333. package/dist/useSize.js.map +1 -1
  334. package/dist/useSwipe-Cp-CJxLU.js.map +1 -1
  335. package/package.json +6 -4
  336. package/dist/AiMark-DKAIkwNU.js.map +0 -1
  337. package/dist/Alert-tsu15fCc.js.map +0 -1
  338. package/dist/Announcement-DU0J4111.js.map +0 -1
  339. package/dist/Breadcrumbs-CoqJO7Ca.js.map +0 -1
  340. package/dist/Button-BNzCI47m.js.map +0 -1
  341. package/dist/ButtonLink-PlW08u41.js.map +0 -1
  342. package/dist/ButtonToggle-DBGc7dIn.js.map +0 -1
  343. package/dist/Calendar-Csw2CkqE.js.map +0 -1
  344. package/dist/Calendar-DnwCL7gm.js.map +0 -1
  345. package/dist/Checkbox-Cmn1o3Ta.js.map +0 -1
  346. package/dist/Checkbox-DGU3JwZA.js.map +0 -1
  347. package/dist/Chip-BsGckplA.js.map +0 -1
  348. package/dist/DataTable-BLK4-7QQ.js.map +0 -1
  349. package/dist/DateFieldRange-BnNrQvuG.js.map +0 -1
  350. package/dist/DateFieldSingle-CwcV_AOp.js.map +0 -1
  351. package/dist/DateFieldYearless-HntvaWSJ.js.map +0 -1
  352. package/dist/DateFieldYearlessRange-BPvJvBob.js.map +0 -1
  353. package/dist/DaysOfTheWeek-4Cd2WK7u.js.map +0 -1
  354. package/dist/Details-DkteVZbk.js.map +0 -1
  355. package/dist/Dialog-CE2fxzJR.js.map +0 -1
  356. package/dist/DialogCancelButton-DmSUPuCR.js.map +0 -1
  357. package/dist/Drawer-CWLwXp1D.js.map +0 -1
  358. package/dist/EditCard-DqFAx5cl.js.map +0 -1
  359. package/dist/FieldLabel-v6vMVVWB.js.map +0 -1
  360. package/dist/FilterBar-Ce22r7lY.js.map +0 -1
  361. package/dist/Flex-Bb3iHExM.js.map +0 -1
  362. package/dist/Grid-ho1pGJ5L.js.map +0 -1
  363. package/dist/Helper-B_VAFgGd.js.map +0 -1
  364. package/dist/Icon-B4uCvMU9.js.map +0 -1
  365. package/dist/InputMask-DnbZnynw.js.map +0 -1
  366. package/dist/Link-C7dtI5K6.js.map +0 -1
  367. package/dist/ListView-Dy4m0aQb.js.map +0 -1
  368. package/dist/Listbox-By-gyw1j.js.map +0 -1
  369. package/dist/Menu-DmEXQLXt.js.map +0 -1
  370. package/dist/MenuFooter-Ck9L599M.js.map +0 -1
  371. package/dist/MultiSelectFieldSync-CGOAko_r.js.map +0 -1
  372. package/dist/MultiSelectMenuSync-DTRWdqGg.js.map +0 -1
  373. package/dist/NumberField-BuAlvtg_.js.map +0 -1
  374. package/dist/Page-DBKu3XYh.js.map +0 -1
  375. package/dist/Pagination-Ceh0uZhU.js.map +0 -1
  376. package/dist/Popover-hQKMGTiJ.js.map +0 -1
  377. package/dist/ProgressBar-CFdDZFV9.js.map +0 -1
  378. package/dist/Radio-ARjSflvI.js.map +0 -1
  379. package/dist/Radio-Dey7KUCQ.js.map +0 -1
  380. package/dist/RichTextEditor-B4ZPAevY.js.map +0 -1
  381. package/dist/SavedFiltersButton-DPISXV2b.js.map +0 -1
  382. package/dist/SearchField-B7fIOJf-.js.map +0 -1
  383. package/dist/SearchField-X4B7f23E.js.map +0 -1
  384. package/dist/SegmentedControl-Be6jCglV.js.map +0 -1
  385. package/dist/SelectCard-DtEUPxgj.js.map +0 -1
  386. package/dist/SelectFieldLabel-DB3o9bDD.js.map +0 -1
  387. package/dist/SelectFieldSync-B5r-wl1D.js.map +0 -1
  388. package/dist/SelectMenuSync-CqKMKaWt.js.map +0 -1
  389. package/dist/SelectOptions-VVJ4D-0C.js.map +0 -1
  390. package/dist/SelectTrigger-TRI2LhJR.js.map +0 -1
  391. package/dist/SelectTriggerBase-D1nOad4B.js.map +0 -1
  392. package/dist/SideNav-DoxX8Vi-.js.map +0 -1
  393. package/dist/Stepper-CvaR7OoT.js.map +0 -1
  394. package/dist/Switch-ClbHJvDU.js.map +0 -1
  395. package/dist/Tab-Cy4G562A.js.map +0 -1
  396. package/dist/Text-BjYHzUGW.js.map +0 -1
  397. package/dist/TextField-BsVxym0-.js.map +0 -1
  398. package/dist/TextField-DX6-K3jO.js.map +0 -1
  399. package/dist/Textarea-B3z6Y7VU.js.map +0 -1
  400. package/dist/TimeField-Bmcwic3C.js.map +0 -1
  401. package/dist/Toaster-CTjkTMie.js.map +0 -1
  402. package/dist/Toaster-CvY-A7zY.js.map +0 -1
  403. package/dist/Toolbar-BpCO-4zj.js.map +0 -1
  404. package/dist/Toolbar-pdJXcqY0.js.map +0 -1
  405. package/dist/ToolbarButtonToggle-3xbnm1Qr.js.map +0 -1
  406. package/dist/TreeSelectFieldSync-Cz8uOdpT.js.map +0 -1
  407. package/dist/TreeSelectMenuSync-Bk8BN6_B.js.map +0 -1
  408. package/dist/TypeaheadTextField-Dg7O5Yu5.js.map +0 -1
  409. package/dist/YearlessDateInputWithPicker-CpnLg01W.js.map +0 -1
  410. package/dist/bulkActionTypes-B20IInUD.js.map +0 -1
  411. package/dist/filter-state-CuiHPC94.js.map +0 -1
  412. package/dist/index-SZMmvI3D.js.map +0 -1
  413. package/dist/syncFilterUtils-CU5iJQSC.js.map +0 -1
  414. package/dist/useAdaptiveView-C0F7qnLD.js.map +0 -1
  415. package/dist/useInfiniteCombobox-HSttRaX5.js.map +0 -1
  416. package/dist/useInitialFocus-BIvXK1Rp.js.map +0 -1
  417. package/dist/useMenuInteraction-NEJXUD4I.js.map +0 -1
  418. package/dist/useNumberField-D_ic9i2q.js.map +0 -1
@@ -7,7 +7,7 @@ import { u as useReducedMotion } from './use-reduced-motion-CqjZZ5QB.js';
7
7
  import { useTrackingId } from './useTrackingId.js';
8
8
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
9
9
  import { M as MotionConfigContext, a as isHTMLElement, u as useConstant, P as PresenceContext, b as usePresence, c as useIsomorphicLayoutEffect, L as LayoutGroupContext, m as motion } from './proxy-DEehATlA.js';
10
- import { I as Icon } from './Icon-B4uCvMU9.js';
10
+ import { I as Icon } from './Icon-B5zwN7GD.js';
11
11
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
12
12
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
13
13
 
@@ -318,26 +318,30 @@ const initialValue = {
318
318
  };
319
319
  const TabContext = createContext(initialValue);
320
320
 
321
- const tab = "_tab_1arfj_1";
322
- const fill = "_fill_1arfj_40";
323
- const inner = "_inner_1arfj_88";
324
- const indicator = "_indicator_1arfj_106";
325
- const scroller = "_scroller_1arfj_135";
326
- const right = "_right_1arfj_147";
327
- const left = "_left_1arfj_147";
321
+ const tab = "_tab_pfiva_1";
322
+ const fill = "_fill_pfiva_40";
323
+ const inner = "_inner_pfiva_88";
324
+ const indicator = "_indicator_pfiva_106";
325
+ const scroller = "_scroller_pfiva_135";
326
+ const start = "_start_pfiva_146";
327
+ const end = "_end_pfiva_149";
328
+ const right = "_right_pfiva_153";
329
+ const left = "_left_pfiva_153";
328
330
  const styles = {
329
331
  tab: tab,
330
332
  fill: fill,
331
- "tab-button": "_tab-button_1arfj_44",
333
+ "tab-button": "_tab-button_pfiva_44",
332
334
  inner: inner,
333
335
  indicator: indicator,
334
- "tab-list": "_tab-list_1arfj_116",
336
+ "tab-list": "_tab-list_pfiva_116",
335
337
  scroller: scroller,
338
+ start: start,
339
+ end: end,
336
340
  right: right,
337
341
  left: left,
338
- "overflow-prev": "_overflow-prev_1arfj_173",
339
- "overflow-next": "_overflow-next_1arfj_174",
340
- "tab-panel": "_tab-panel_1arfj_220"
342
+ "overflow-prev": "_overflow-prev_pfiva_179",
343
+ "overflow-next": "_overflow-next_pfiva_180",
344
+ "tab-panel": "_tab-panel_pfiva_226"
341
345
  };
342
346
 
343
347
  const TabButton = forwardRef(
@@ -435,10 +439,13 @@ const TabList = forwardRef(
435
439
  "aria-labelledby": ariaLabelledBy,
436
440
  ...rest
437
441
  } = props;
438
- const { goToPrev, gotoNext, dir } = useContext(TabContext);
442
+ const { dir } = useContext(TabContext);
439
443
  const [leftOverflow, setLeftOverflow] = useState(false);
440
444
  const [rightOverflow, setRightOverflow] = useState(false);
441
445
  const scrollRef = useRef(null);
446
+ const hasMeasuredPaddingDeps = useRef(false);
447
+ const startOverflow = dir === "ltr" ? leftOverflow : rightOverflow;
448
+ const endOverflow = dir === "ltr" ? rightOverflow : leftOverflow;
442
449
  const calculateOverflow = useCallback(
443
450
  (el) => {
444
451
  const leftOverflows = dir === "ltr" ? el.scrollLeft > 0 : el.scrollLeft > el.offsetWidth - el.scrollWidth + 1;
@@ -449,23 +456,44 @@ const TabList = forwardRef(
449
456
  [dir]
450
457
  );
451
458
  useLayoutEffect(() => {
452
- if (!scrollRef.current) return;
459
+ const scroller = scrollRef.current;
460
+ if (!scroller) return;
461
+ calculateOverflow(scroller);
453
462
  const observer = new ResizeObserver((entries) => {
454
463
  for (const entry of entries) {
455
464
  calculateOverflow(entry.target);
456
465
  }
457
466
  });
458
- observer.observe(scrollRef.current);
467
+ observer.observe(scroller);
459
468
  return () => {
460
469
  observer.disconnect();
461
470
  };
462
471
  }, [calculateOverflow]);
472
+ useLayoutEffect(() => {
473
+ if (!hasMeasuredPaddingDeps.current) {
474
+ hasMeasuredPaddingDeps.current = true;
475
+ return;
476
+ }
477
+ const scroller = scrollRef.current;
478
+ if (!scroller) return;
479
+ calculateOverflow(scroller);
480
+ }, [calculateOverflow, startOverflow, endOverflow]);
481
+ const scrollOverflow = (direction) => {
482
+ const scroller = scrollRef.current;
483
+ if (!scroller) return;
484
+ const scrollAmount = scroller.clientWidth * 0.75;
485
+ const forward = direction === "next" ? scrollAmount : -scrollAmount;
486
+ const delta = dir === "ltr" ? forward : -forward;
487
+ scroller.scrollBy({ left: delta, behavior: "smooth" });
488
+ };
463
489
  const overflowPosition = (e) => {
464
490
  const target = e.target;
465
491
  calculateOverflow(target);
466
492
  };
467
493
  const tabListClassNames = cx(styles["tab-list"], className);
468
494
  const scrollerClassNames = cx(styles["scroller"], {
495
+ [styles["start"]]: startOverflow,
496
+ [styles["end"]]: endOverflow,
469
497
  [styles["left"]]: leftOverflow,
470
498
  [styles["right"]]: rightOverflow
471
499
  });
@@ -477,13 +505,14 @@ const TabList = forwardRef(
477
505
  "data-anv": "tab-list",
478
506
  ref,
479
507
  children: [
480
- (dir === "ltr" ? leftOverflow : rightOverflow) && /* @__PURE__ */ jsx(
508
+ startOverflow && /* @__PURE__ */ jsx(
481
509
  "button",
482
510
  {
511
+ type: "button",
483
512
  tabIndex: -1,
484
- onClick: () => goToPrev?.(false),
513
+ onClick: () => scrollOverflow("prev"),
485
514
  className: styles["overflow-prev"],
486
- "aria-label": "Previous tab",
515
+ "aria-label": "Scroll tabs back",
487
516
  children: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowBack, "aria-hidden": true, size: "medium" })
488
517
  }
489
518
  ),
@@ -501,13 +530,14 @@ const TabList = forwardRef(
501
530
  children
502
531
  }
503
532
  ),
504
- (dir === "ltr" ? rightOverflow : leftOverflow) && /* @__PURE__ */ jsx(
533
+ endOverflow && /* @__PURE__ */ jsx(
505
534
  "button",
506
535
  {
536
+ type: "button",
507
537
  tabIndex: -1,
508
- onClick: () => gotoNext?.(false),
538
+ onClick: () => scrollOverflow("next"),
509
539
  className: styles["overflow-next"],
510
- "aria-label": "Next tab",
540
+ "aria-label": "Scroll tabs forward",
511
541
  children: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowForward, "aria-hidden": true, size: "medium" })
512
542
  }
513
543
  )
@@ -790,4 +820,4 @@ const Tab = Object.assign(
790
820
  Tab.displayName = "Tab";
791
821
 
792
822
  export { Tab as T };
793
- //# sourceMappingURL=Tab-Cy4G562A.js.map
823
+ //# sourceMappingURL=Tab-Bqfvg8Ce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab-Bqfvg8Ce.js","sources":["../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../src/components/Tab/internal/TabContext.tsx","../src/components/Tab/TabButton.tsx","../../hammer-icon/mdi/round/arrow_back.svg","../../hammer-icon/mdi/round/arrow_forward.svg","../src/components/Tab/TabList.tsx","../src/components/Tab/TabPanel.tsx","../src/components/Tab/Tab.tsx"],"sourcesContent":["\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { isHTMLElement } from 'motion-dom';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const parent = element.offsetParent;\n const parentWidth = isHTMLElement(parent)\n ? parent.offsetWidth || 0\n : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent, anchorX, root }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left, right } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n const x = anchorX === \"left\" ? `left: ${left}` : `right: ${right}`;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n const parent = root ?? document.head;\n parent.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n ${x}px !important;\n top: ${top}px !important;\n }\n `);\n }\n return () => {\n if (parent.contains(style)) {\n parent.removeChild(style);\n }\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, root }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n let isReusedContext = true;\n let context = useMemo(() => {\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n };\n }, [isPresent, presenceChildren, onExitComplete]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n if (presenceAffectsLayout && isReusedContext) {\n context = { ...context };\n }\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = (jsx(PopChild, { isPresent: isPresent, anchorX: anchorX, root: root, children: children }));\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { Children, isValidElement } from 'react';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n\nexport { getChildKey, onlyElements };\n","\"use client\";\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { useMemo, useRef, useState, useContext } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { usePresence } from './use-presence.mjs';\nimport { onlyElements, getChildKey } from './utils.mjs';\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", root }) => {\n const [isParentPresent, safeToRemove] = usePresence(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */\n const presentChildren = useMemo(() => onlyElements(children), [children]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */\n const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */\n const isInitialRender = useRef(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */\n const pendingPresentChildren = useRef(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */\n const exitComplete = useConstant(() => new Map());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */\n const [diffedChildren, setDiffedChildren] = useState(presentChildren);\n const [renderedChildren, setRenderedChildren] = useState(presentChildren);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const key = getChildKey(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n }\n else {\n exitComplete.delete(key);\n }\n }\n }, [renderedChildren, presentKeys.length, presentKeys.join(\"-\")]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [...presentChildren];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */\n for (let i = 0; i < renderedChildren.length; i++) {\n const child = renderedChildren[i];\n const key = getChildKey(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */\n if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren(onlyElements(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */\n return null;\n }\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */\n const { forceRender } = useContext(LayoutGroupContext);\n return (jsx(Fragment, { children: renderedChildren.map((child) => {\n const key = getChildKey(child);\n const isPresent = propagate && !isParentPresent\n ? false\n : presentChildren === renderedChildren ||\n presentKeys.includes(key);\n const onExit = () => {\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n }\n else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete) => {\n if (!isExitComplete)\n isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender?.();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && safeToRemove?.();\n onExitComplete && onExitComplete();\n }\n };\n return (jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial\n ? undefined\n : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, root: root, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, children: child }, key));\n }) }));\n};\n\nexport { AnimatePresence };\n","import {\n createContext,\n type Dispatch,\n type KeyboardEvent,\n type SetStateAction,\n} from \"react\";\n\ntype TabContextProps = {\n current: number; // id of tabpanel\n setCurrent?: Dispatch<SetStateAction<number | undefined>>;\n focus: number; // id of tabpanel\n setFocus?: Dispatch<SetStateAction<number>>;\n items?: NodeListOf<HTMLElement>;\n uid?: string;\n onKeyDownHandler?: (e: KeyboardEvent<HTMLButtonElement>) => void;\n gotoNext?: (refocus?: boolean) => void;\n goToPrev?: (refocus?: boolean) => void;\n dir?: string;\n};\n\nconst initialValue = {\n current: 0,\n focus: 0,\n};\n\nexport const TabContext = createContext<TabContextProps>(initialValue);\n","import {\n forwardRef,\n useContext,\n type MouseEvent,\n useRef,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n} from \"react\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { motion, useReducedMotion } from \"motion/react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport type { DataTrackingId } from \"../../types\";\nimport { TabContext } from \"./internal/TabContext\";\n\nimport styles from \"./Tab.module.scss\";\nimport cx from \"classnames\";\n/**\n * Props for the TabButton component\n * @extends Omit<ComponentPropsWithoutRef<\"button\">, \"onClick\" | \"disabled\">\n */\nexport type TabButtonProps = Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"onClick\" | \"disabled\"\n> & {\n /**\n * Unique identifier for the tab button.\n */\n id: string;\n /**\n * ID of the tab panel that this button controls.\n */\n controls: string;\n /**\n * Callback function called when the tab button is clicked.\n * @param e The mouse event\n * @param index The index of the tab button\n */\n onClick?: (e: MouseEvent<HTMLButtonElement>, index?: number) => void;\n} & DataTrackingId;\n\n/**\n * TabButton component for individual tab navigation buttons.\n *\n * Features:\n * - Automatic ARIA attributes for accessibility\n * - Visual indicator for active state\n * - Keyboard navigation support\n * - Smooth animations with reduced motion support\n * - Proper focus management\n * - RTL language support\n *\n * @example\n * <Tab.Button id=\"tab1\" controls=\"panel1\" onClick={(e, index) => console.log('Tab clicked:', index)}>\n * First Tab\n * </Tab.Button>\n */\nexport const TabButton = forwardRef<HTMLButtonElement, TabButtonProps>(\n (props, ref) => {\n const buttonRef = useRef<HTMLButtonElement>(null);\n const shouldReduceMotion = useReducedMotion();\n const {\n current,\n items,\n setCurrent,\n focus,\n setFocus,\n onKeyDownHandler: focusController,\n uid,\n } = useContext(TabContext);\n\n const {\n onClick,\n children,\n onFocus,\n onKeyDown,\n controls,\n id,\n className,\n style,\n ...rest\n } = props;\n\n const index =\n items && Array.prototype.indexOf.call(items, buttonRef.current);\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n if (index === undefined) return;\n onClick?.(e, index);\n\n setCurrent?.(index);\n\n setFocus?.(index);\n items?.[index].focus();\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n focusController?.(e);\n onKeyDown?.(e);\n };\n\n const data = {\n id,\n controls,\n };\n\n const trackingId = useTrackingId({\n name: \"TabButton\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const tabButtonClassNames = cx(styles[\"tab-button\"], className);\n\n return (\n <button\n data-tracking-id={trackingId}\n type=\"button\"\n role=\"tab\"\n data-anv=\"tab-button\"\n id={id}\n className={tabButtonClassNames}\n aria-selected={items?.[current].id === id}\n aria-controls={controls}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n tabIndex={items?.[focus].id === id ? 0 : -1}\n {...rest}\n ref={useMergeRefs([buttonRef, ref])}\n >\n <span className={styles[\"inner\"]}>{children}</span>\n {items?.[current].id === id && (\n <motion.span\n layoutId={uid}\n className={styles[\"indicator\"]}\n transition={{\n duration: shouldReduceMotion\n ? 0\n : +core.primitive.DurationDefault.value.replace(\"ms\", \"\") /\n 1000,\n }}\n />\n )}\n </button>\n );\n },\n);\n\nTabButton.displayName = \"TabButton\";\n","import * as React from \"react\";\nconst SvgArrowBack = (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: \"M19 11H7.83l4.88-4.88c.39-.39.39-1.03 0-1.42a.996.996 0 0 0-1.41 0l-6.59 6.59a.996.996 0 0 0 0 1.41l6.59 6.59a.996.996 0 1 0 1.41-1.41L7.83 13H19c.55 0 1-.45 1-1s-.45-1-1-1z\" }));\nexport default SvgArrowBack;\n","import * as React from \"react\";\nconst SvgArrowForward = (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: \"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42.39.39 1.02.39 1.41 0l6.59-6.59a.996.996 0 0 0 0-1.41l-6.58-6.6a.996.996 0 1 0-1.41 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1z\" }));\nexport default SvgArrowForward;\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useState,\n type UIEvent,\n useContext,\n useLayoutEffect,\n useRef,\n useCallback,\n} from \"react\";\nimport ArrowBack from \"@servicetitan/hammer-icon/mdi/round/arrow_back.svg\";\nimport ArrowForward from \"@servicetitan/hammer-icon/mdi/round/arrow_forward.svg\";\nimport { Icon } from \"../Icon\";\n\nimport cx from \"classnames\";\nimport styles from \"./Tab.module.scss\";\nimport { TabContext } from \"./internal/TabContext\";\n\n/**\n * Props for the TabList component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type TabListProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * TabList component for containing and managing tab buttons.\n *\n * Features:\n * - Horizontal scrolling for overflow tabs\n * - Navigation arrows for overflow content\n * - RTL language support\n * - Automatic overflow detection\n * - Proper ARIA roles for accessibility\n * - Smooth scrolling behavior\n * - Visual indicator positioning\n *\n * @example\n * <Tab.List>\n * <Tab.Button id=\"tab1\" controls=\"panel1\">First Tab</Tab.Button>\n * <Tab.Button id=\"tab2\" controls=\"panel2\">Second Tab</Tab.Button>\n * <Tab.Button id=\"tab3\" controls=\"panel3\">Third Tab</Tab.Button>\n * </Tab.List>\n */\nexport const TabList = forwardRef<HTMLDivElement, TabListProps>(\n (props, ref) => {\n const {\n className,\n children,\n onKeyDown,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...rest\n } = props;\n const { dir } = useContext(TabContext);\n const [leftOverflow, setLeftOverflow] = useState(false);\n const [rightOverflow, setRightOverflow] = useState(false);\n const scrollRef = useRef<HTMLDivElement>(null);\n const hasMeasuredPaddingDeps = useRef(false);\n const startOverflow = dir === \"ltr\" ? leftOverflow : rightOverflow;\n const endOverflow = dir === \"ltr\" ? rightOverflow : leftOverflow;\n\n const calculateOverflow = useCallback(\n (el: HTMLElement) => {\n const leftOverflows =\n dir === \"ltr\"\n ? el.scrollLeft > 0\n : el.scrollLeft > el.offsetWidth - el.scrollWidth + 1;\n const rightOverflows =\n dir === \"ltr\"\n ? el.scrollLeft < el.scrollWidth - el.offsetWidth\n : el.scrollLeft < 0;\n setLeftOverflow(leftOverflows);\n setRightOverflow(rightOverflows);\n },\n [dir],\n );\n\n useLayoutEffect(() => {\n const scroller = scrollRef.current;\n if (!scroller) return;\n\n calculateOverflow(scroller);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n calculateOverflow(entry.target as HTMLElement);\n }\n });\n\n observer.observe(scroller);\n\n return () => {\n observer.disconnect();\n };\n }, [calculateOverflow]);\n\n // Re-measure after inset padding toggles (skip mount; the effect above covers that).\n useLayoutEffect(() => {\n if (!hasMeasuredPaddingDeps.current) {\n hasMeasuredPaddingDeps.current = true;\n return;\n }\n const scroller = scrollRef.current;\n if (!scroller) return;\n calculateOverflow(scroller);\n }, [calculateOverflow, startOverflow, endOverflow]);\n\n const scrollOverflow = (direction: \"prev\" | \"next\") => {\n const scroller = scrollRef.current;\n if (!scroller) return;\n\n const scrollAmount = scroller.clientWidth * 0.75;\n const forward = direction === \"next\" ? scrollAmount : -scrollAmount;\n const delta = dir === \"ltr\" ? forward : -forward;\n\n scroller.scrollBy({ left: delta, behavior: \"smooth\" });\n };\n\n // update overflow position on scroll\n const overflowPosition = (e: UIEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n calculateOverflow(target);\n };\n\n const tabListClassNames = cx(styles[\"tab-list\"], className);\n\n // Logical start/end drive inset padding (with the chevrons). Physical\n // left/right drive the mask fades, which use physical gradient directions.\n const scrollerClassNames = cx(styles[\"scroller\"], {\n [styles[\"start\"]]: startOverflow,\n [styles[\"end\"]]: endOverflow,\n [styles[\"left\"]]: leftOverflow,\n [styles[\"right\"]]: rightOverflow,\n });\n\n return (\n <div\n {...rest}\n className={tabListClassNames}\n data-anv=\"tab-list\"\n ref={ref}\n >\n {startOverflow && (\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => scrollOverflow(\"prev\")}\n className={styles[\"overflow-prev\"]}\n aria-label=\"Scroll tabs back\"\n >\n <Icon svg={ArrowBack} aria-hidden size=\"medium\" />\n </button>\n )}\n <div\n onScroll={overflowPosition}\n onKeyDown={onKeyDown}\n className={scrollerClassNames}\n role=\"tablist\"\n tabIndex={-1}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n ref={scrollRef}\n >\n {children}\n </div>\n {endOverflow && (\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={() => scrollOverflow(\"next\")}\n className={styles[\"overflow-next\"]}\n aria-label=\"Scroll tabs forward\"\n >\n <Icon svg={ArrowForward} aria-hidden size=\"medium\" />\n </button>\n )}\n </div>\n );\n },\n);\n\nTabList.displayName = \"TabList\";\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport { motion } from \"motion/react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport { TabContext } from \"./internal/TabContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Tab.module.scss\";\n\n/**\n * Props for the TabPanel component\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n */\nexport type TabPanelProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> & {\n /**\n * Unique identifier for the tab panel.\n */\n id: string;\n};\n\n/**\n * TabPanel component for displaying tab content.\n *\n * Features:\n * - Automatic visibility based on active tab\n * - Smooth fade animations\n * - Proper ARIA attributes for accessibility\n * - Automatic association with tab buttons\n * - Focus management\n * - Layout animations\n *\n * @example\n * <Tab.Panel id=\"panel1\">\n * <h2>First Tab Content</h2>\n * <p>This is the content for the first tab.</p>\n * </Tab.Panel>\n */\nexport const TabPanel = forwardRef<HTMLDivElement, TabPanelProps>(\n (props, ref) => {\n const { id, className, ...rest } = props;\n const { current, items } = useContext(TabContext);\n\n let labelledby;\n\n items?.forEach((el) => {\n const controlId = el.getAttribute(\"aria-controls\");\n if (controlId === id) {\n labelledby = el.id;\n }\n });\n const currentId = items?.[current]?.getAttribute(\"aria-controls\");\n const isCurrent = currentId === id;\n\n const tabPanelClassNames = cx(styles[\"tab-panel\"], className);\n\n if (!isCurrent) return null;\n return (\n <motion.div\n className={tabPanelClassNames}\n transition={{\n opacity: {\n duration:\n +core.primitive.DurationSlow.value.replace(\"ms\", \"\") / 1000,\n },\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n layout\n {...rest}\n role=\"tabpanel\"\n data-anv=\"tab-panel\"\n id={id}\n aria-labelledby={labelledby}\n tabIndex={0}\n ref={ref}\n />\n );\n },\n);\n\nTabPanel.displayName = \"TabPanel\";\n","import {\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { TabButton } from \"./TabButton\";\nimport { TabList } from \"./TabList\";\nimport { TabPanel } from \"./TabPanel\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../internal/hooks\";\nimport { TabContext } from \"./internal/TabContext\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { useMergeRefs } from \"../../hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./Tab.module.scss\";\n\n/**\n * Props for the Tab component\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\">\n * @extends LayoutUtilProps\n */\nexport type TabProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onAnimationStart\" | \"onDragStart\" | \"onDragEnd\" | \"onDrag\"\n> &\n LayoutUtilProps & {\n /**\n * The index of the tab that should be active by default.\n * Use for uncontrolled usage. For controlled usage, use `index` instead.\n * @default 0\n */\n defaultIndex?: number;\n /**\n * The index of the currently active tab.\n * Use for controlled usage. For uncontrolled usage, use `defaultIndex` instead.\n */\n index?: number;\n /**\n * Callback fired when the active tab changes.\n * Use with `index` for controlled usage.\n * @param index The index of the newly active tab\n */\n onIndexChange?: (index: number) => void;\n /**\n * Whether the tabs should fill the available width.\n * @default false\n */\n fill?: boolean;\n };\n\n/**\n * Tab component: a tabbed navigation control for switching between panels, sections, or views using a horizontal row of tabs.\n *\n * Features:\n * - Keyboard navigation support (arrow keys, Enter, Space)\n * - Accessible with proper ARIA roles and attributes\n * - Smooth animations and transitions\n * - RTL language support\n * - Automatic focus management\n * - Scroll behavior for overflow tabs\n * - Compound component pattern with Tab.Button, Tab.List, and Tab.Panel\n * - Supports controlled state via `index` and `onIndexChange` props\n * - Supports layout utilities for positioning and spacing\n *\n * @example\n * // Uncontrolled\n * <Tab defaultIndex={0}>\n * <Tab.List>\n * <Tab.Button id=\"tab1\" controls=\"panel1\">First Tab</Tab.Button>\n * <Tab.Button id=\"tab2\" controls=\"panel2\">Second Tab</Tab.Button>\n * </Tab.List>\n * <Tab.Panel id=\"panel1\">Content for first tab</Tab.Panel>\n * <Tab.Panel id=\"panel2\">Content for second tab</Tab.Panel>\n * </Tab>\n *\n * @example\n * // Controlled\n * <Tab index={activeIndex} onIndexChange={setActiveIndex}>\n * <Tab.List>\n * <Tab.Button id=\"tab1\" controls=\"panel1\">First Tab</Tab.Button>\n * <Tab.Button id=\"tab2\" controls=\"panel2\">Second Tab</Tab.Button>\n * </Tab.List>\n * <Tab.Panel id=\"panel1\">Content for first tab</Tab.Panel>\n * <Tab.Panel id=\"panel2\">Content for second tab</Tab.Panel>\n * </Tab>\n */\nexport const Tab = Object.assign(\n forwardRef<HTMLDivElement, TabProps>(function TabInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n defaultIndex,\n index,\n onIndexChange,\n className,\n style,\n fill,\n ...rest\n } = componentProps;\n const tabRef = useRef<HTMLDivElement>(null);\n const [items, setItems] = useState<NodeListOf<HTMLElement>>();\n const [current, setCurrent] = useOptionallyControlledState<number>({\n controlledValue: index,\n defaultValue: defaultIndex ?? 0,\n onChange: onIndexChange,\n });\n // Controlled mode is determined at render time; switching between controlled and uncontrolled at runtime is not supported.\n const isControlled = index !== undefined;\n const [focus, setFocus] = useState<number>(defaultIndex ?? 0);\n const [dir, setDir] = useState(\"ltr\");\n const uid = useId();\n\n useEffect(() => {\n setItems(tabRef.current?.querySelectorAll(\"[role=tab]:not([disabled])\"));\n }, [tabRef]);\n\n useEffect(() => {\n if (tabRef.current?.closest(\"[dir]\")?.getAttribute(\"dir\") === \"rtl\") {\n setDir(\"rtl\");\n } else {\n setDir(\"ltr\");\n }\n }, []);\n\n useEffect(() => {\n if (!isControlled) return;\n const tablistEl = tabRef.current?.querySelector(\"[role=tablist]\");\n const hasFocusInTablist =\n tablistEl?.contains(document.activeElement) ?? false;\n if (!hasFocusInTablist) setFocus(index!);\n }, [index, isControlled]);\n\n useEffect(() => {\n if (!tabRef.current) return;\n\n const mutationCallback = () => {\n setItems(\n tabRef.current?.querySelectorAll(\"[role=tab]:not([disabled])\"),\n );\n };\n\n const observer = new MutationObserver(mutationCallback);\n observer.observe(tabRef.current, {\n childList: true, // Observe changes to child elements\n subtree: true, // Observe changes to descendants of the target\n attributes: true, // Observe changes to attributes\n characterData: true, // Observe changes to text content\n });\n return () => {\n observer.disconnect();\n };\n }, []);\n\n // scroll behavior of the focus tab item\n const focusScroller = (node: HTMLElement | undefined) => {\n node?.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"center\",\n });\n };\n\n const gotoNext = useCallback(\n (_refocus = true) => {\n if (focus + 1 === items?.length) {\n setFocus?.(0);\n items?.[0].focus();\n focusScroller(items?.[0]);\n return;\n }\n setFocus?.(focus + 1);\n items?.[focus + 1].focus();\n focusScroller(items?.[focus + 1]);\n },\n [focus, items],\n );\n\n const goToPrev = useCallback(\n (_refocus = true) => {\n if (focus === 0) {\n const lastItemIndex = items ? items?.length - 1 : 0;\n setFocus?.(lastItemIndex);\n items?.[lastItemIndex].focus();\n focusScroller(items?.[lastItemIndex]);\n return;\n }\n setFocus?.(focus - 1);\n items?.[focus - 1].focus();\n focusScroller(items?.[focus - 1]);\n },\n [focus, items],\n );\n\n const onKeyDownHandler = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n setCurrent?.(focus);\n break;\n case \"ArrowRight\":\n e.preventDefault();\n if (dir === \"ltr\") {\n gotoNext();\n } else {\n goToPrev();\n }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (dir === \"ltr\") {\n goToPrev();\n } else {\n gotoNext();\n }\n break;\n default:\n break;\n }\n },\n [dir, focus, goToPrev, gotoNext, setCurrent],\n );\n\n const value = useMemo(\n () => ({\n current,\n setCurrent,\n focus,\n setFocus,\n items,\n uid,\n onKeyDownHandler,\n gotoNext,\n goToPrev,\n dir,\n }),\n [\n current,\n setCurrent,\n focus,\n goToPrev,\n gotoNext,\n items,\n onKeyDownHandler,\n uid,\n dir,\n ],\n );\n\n const tabClassNames = cx(styles[\"tab\"], className, {\n [styles[\"fill\"]]: fill,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <TabContext.Provider value={value}>\n <AnimatePresence initial={false}>\n <motion.div\n transition={{ duration: 0 }}\n layout\n className={tabClassNames}\n data-anv=\"tab\"\n style={styleCombined}\n {...rest}\n ref={useMergeRefs([tabRef, ref])}\n />\n </AnimatePresence>\n </TabContext.Provider>\n );\n }),\n {\n /**\n * TabButton component for individual tab navigation buttons.\n *\n * Features:\n * - Automatic ARIA attributes for accessibility\n * - Visual indicator for active state\n * - Keyboard navigation support\n * - Smooth animations with reduced motion support\n * - Proper focus management\n * - RTL language support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Tab.Button id=\"tab1\" controls=\"panel1\" onClick={(e, index) => console.log('Tab clicked:', index)}>\n * First Tab\n * </Tab.Button>\n */\n Button: TabButton,\n /**\n * TabList component for containing and managing tab buttons.\n *\n * Features:\n * - Horizontal scrolling for overflow tabs\n * - Navigation arrows for overflow content\n * - RTL language support\n * - Automatic overflow detection\n * - Proper ARIA roles for accessibility\n * - Smooth scrolling behavior\n * - Visual indicator positioning\n *\n * @example\n * <Tab.List>\n * <Tab.Button id=\"tab1\" controls=\"panel1\">First Tab</Tab.Button>\n * <Tab.Button id=\"tab2\" controls=\"panel2\">Second Tab</Tab.Button>\n * <Tab.Button id=\"tab3\" controls=\"panel3\">Third Tab</Tab.Button>\n * </Tab.List>\n */\n List: TabList,\n /**\n * TabPanel component for displaying tab content.\n *\n * Features:\n * - Automatic visibility based on active tab\n * - Smooth fade animations\n * - Proper ARIA attributes for accessibility\n * - Automatic association with tab buttons\n * - Focus management\n * - Layout animations\n *\n * @example\n * <Tab.Panel id=\"panel1\">\n * <h2>First Tab Content</h2>\n * <p>This is the content for the first tab.</p>\n * </Tab.Panel>\n */\n Panel: TabPanel,\n },\n);\nTab.displayName = \"Tab\";\n"],"names":["index","core.primitive.DurationDefault","ArrowBack","ArrowForward","core.primitive.DurationSlow"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
package/dist/Tab.css CHANGED
@@ -1,4 +1,4 @@
1
- .anvil2 {._tab_1arfj_1 {
1
+ .anvil2 {._tab_pfiva_1 {
2
2
  --a2-internal-tab-button-foreground-color: var(
3
3
  --a2-mod-tab-button-foreground-color
4
4
  );
@@ -35,9 +35,9 @@
35
35
  max-width: 100%;
36
36
  overflow: hidden;
37
37
  padding: var(--a2-size-1, 0.25rem);
38
- }._fill_1arfj_40 {
38
+ }._fill_pfiva_40 {
39
39
  --a2-mod-tab-button-flex-basis: 100%;
40
- }._tab-button_1arfj_44 {
40
+ }._tab-button_pfiva_44 {
41
41
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
42
42
  font-size: 100%;
43
43
  color: inherit;
@@ -65,23 +65,23 @@
65
65
  color: var(--a2-mod-tab-button-foreground-color);
66
66
  background-color: var(--a2-internal-tab-button-background-color);
67
67
  transition: background-color var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1)), outline var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
68
- }._tab-button_1arfj_44[data-interactive=hover], ._tab-button_1arfj_44:hover {
68
+ }._tab-button_pfiva_44[data-interactive=hover], ._tab-button_pfiva_44:hover {
69
69
  --a2-internal-tab-button-background-color: var(
70
70
  --a2-mod-tab-background-color-hover
71
71
  );
72
72
  --a2-internal-tab-button-foreground-color: var(
73
73
  --a2-mod-tab-button-foreground-color-hover
74
74
  );
75
- }._tab-button_1arfj_44[data-interactive=active], ._tab-button_1arfj_44:active {
75
+ }._tab-button_pfiva_44[data-interactive=active], ._tab-button_pfiva_44:active {
76
76
  --a2-internal-tab-button-background-color: var(
77
77
  --a2-mod-tab-background-color-active
78
78
  );
79
79
  --a2-internal-tab-button-foreground-color: var(
80
80
  --a2-mod-tab-button-foreground-color-active
81
81
  );
82
- }._tab-button_1arfj_44[data-interactive=focus-visible] ._inner_1arfj_88, ._tab-button_1arfj_44:focus-visible ._inner_1arfj_88 {
82
+ }._tab-button_pfiva_44[data-interactive=focus-visible] ._inner_pfiva_88, ._tab-button_pfiva_44:focus-visible ._inner_pfiva_88 {
83
83
  outline-width: var(--a2-size-half, 0.125rem);
84
- }._inner_1arfj_88 {
84
+ }._inner_pfiva_88 {
85
85
  border-radius: var(--a2-border-radius-small, var(--a2-radius-1, 0.1875rem));
86
86
  min-width: var(--a2-size-6, 1.5rem);
87
87
  outline: 0 solid var(--a2-mod-tab-focus-ring-color);
@@ -93,7 +93,7 @@
93
93
  text-align: center;
94
94
  text-overflow: ellipsis;
95
95
  white-space: nowrap;
96
- }._indicator_1arfj_106 {
96
+ }._indicator_pfiva_106 {
97
97
  background-color: var(--a2-tab-button-selected-indicator-background-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
98
98
  display: block;
99
99
  height: var(--a2-size-half, 0.125rem);
@@ -101,7 +101,7 @@
101
101
  inset-inline-end: 0;
102
102
  inset-inline-start: 0;
103
103
  position: absolute;
104
- }._tab-list_1arfj_116 {
104
+ }._tab-list_pfiva_116 {
105
105
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
106
106
  font-size: 100%;
107
107
  color: inherit;
@@ -118,16 +118,20 @@
118
118
  justify-content: flex-start;
119
119
  overflow: auto;
120
120
  position: relative;
121
- }._scroller_1arfj_135 {
121
+ }._scroller_pfiva_135 {
122
122
  -webkit-mask-image: var(--a2-mod-tab-scroller-mask-image, none);
123
123
  display: flex;
124
124
  flex-grow: 1;
125
125
  mask-image: var(--a2-mod-tab-scroller-mask-image, none);
126
126
  outline: none;
127
127
  overflow: scroll;
128
- }._scroller_1arfj_135::-webkit-scrollbar {
128
+ }._scroller_pfiva_135::-webkit-scrollbar {
129
129
  display: none;
130
- }._right_1arfj_147._left_1arfj_147 {
130
+ }._scroller_pfiva_135._start_pfiva_146 {
131
+ padding-inline-start: calc(var(--a2-mod-tab-overflow-button-size) + var(--a2-size-2, 0.5rem));
132
+ }._scroller_pfiva_135._end_pfiva_149 {
133
+ padding-inline-end: calc(var(--a2-mod-tab-overflow-button-size) + var(--a2-size-2, 0.5rem));
134
+ }._right_pfiva_153._left_pfiva_153 {
131
135
  --a2-mod-tab-scroller-mask-image: linear-gradient(
132
136
  to left,
133
137
  transparent var(--a2-mod-tab-mask-fade-desktop),
@@ -135,20 +139,20 @@
135
139
  black calc(100% - 4rem),
136
140
  transparent var(--a2-mod-tab-mask-fade-desktop)
137
141
  );
138
- }._right_1arfj_147 {
142
+ }._right_pfiva_153 {
139
143
  --a2-mod-tab-scroller-mask-image: linear-gradient(
140
144
  to left,
141
145
  transparent var(--a2-mod-tab-mask-fade-desktop),
142
146
  black 4rem
143
147
  );
144
- }._left_1arfj_147 {
148
+ }._left_pfiva_153 {
145
149
  --a2-mod-tab-scroller-mask-image: linear-gradient(
146
150
  to right,
147
151
  transparent var(--a2-mod-tab-mask-fade-desktop),
148
152
  black 4rem
149
153
  );
150
- }._overflow-prev_1arfj_173,
151
- ._overflow-next_1arfj_174 {
154
+ }._overflow-prev_pfiva_179,
155
+ ._overflow-next_pfiva_180 {
152
156
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
153
157
  font-size: 100%;
154
158
  color: inherit;
@@ -168,9 +172,9 @@
168
172
  position: absolute;
169
173
  transition: background-color var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
170
174
  width: var(--a2-mod-tab-overflow-button-size);
171
- z-index: 1;
172
- }._overflow-prev_1arfj_173:hover::before,
173
- ._overflow-next_1arfj_174:hover::before {
175
+ z-index: 2;
176
+ }._overflow-prev_pfiva_179:hover::before,
177
+ ._overflow-next_pfiva_180:hover::before {
174
178
  background-color: var(--a2-mod-tab-background-color-hover);
175
179
  border-radius: var(--a2-mod-tab-overflow-button-border-radius);
176
180
  content: "";
@@ -178,15 +182,15 @@
178
182
  position: absolute;
179
183
  width: 100%;
180
184
  }@media (prefers-reduced-motion: reduce) {
181
- ._overflow-prev_1arfj_173,
182
- ._overflow-next_1arfj_174 {
185
+ ._overflow-prev_pfiva_179,
186
+ ._overflow-next_pfiva_180 {
183
187
  transition-duration: 0.01ms !important;
184
188
  }
185
- }._overflow-prev_1arfj_173 {
189
+ }._overflow-prev_pfiva_179 {
186
190
  inset-inline-start: var(--a2-size-1, 0.25rem);
187
- }._overflow-next_1arfj_174 {
191
+ }._overflow-next_pfiva_180 {
188
192
  inset-inline-end: var(--a2-size-1, 0.25rem);
189
- }._tab-panel_1arfj_220 {
193
+ }._tab-panel_pfiva_226 {
190
194
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
191
195
  font-size: 100%;
192
196
  color: inherit;
@@ -199,11 +203,11 @@
199
203
  display: revert-layer;
200
204
  font-size: var(--a2-typography-paragraph-size-default, var(--a2-font-size-400, 1rem));
201
205
  }@media (hover: none) and (pointer: coarse) {
202
- ._overflow-prev_1arfj_173,
203
- ._overflow-next_1arfj_174 {
206
+ ._overflow-prev_pfiva_179,
207
+ ._overflow-next_pfiva_180 {
204
208
  display: none;
205
209
  }
206
- ._right_1arfj_147._left_1arfj_147 {
210
+ ._right_pfiva_153._left_pfiva_153 {
207
211
  --a2-mod-tab-scroller-mask-image: linear-gradient(
208
212
  to left,
209
213
  transparent var(--a2-mod-tab-mask-fade-mobile),
@@ -212,22 +216,22 @@
212
216
  transparent var(--a2-mod-tab-mask-fade-mobile)
213
217
  );
214
218
  }
215
- ._right_1arfj_147 {
219
+ ._right_pfiva_153 {
216
220
  --a2-mod-tab-scroller-mask-image: linear-gradient(
217
221
  to left,
218
222
  transparent var(--a2-mod-tab-mask-fade-mobile),
219
223
  black 4rem
220
224
  );
221
225
  }
222
- ._left_1arfj_147 {
226
+ ._left_pfiva_153 {
223
227
  --a2-mod-tab-scroller-mask-image: linear-gradient(
224
228
  to right,
225
229
  transparent var(--a2-mod-tab-mask-fade-mobile),
226
230
  black 4rem
227
231
  );
228
232
  }
229
- }[dir=rtl] ._overflow-next_1arfj_174,
230
- [dir=rtl] ._overflow-prev_1arfj_173 {
233
+ }[dir=rtl] ._overflow-next_pfiva_180,
234
+ [dir=rtl] ._overflow-prev_pfiva_179 {
231
235
  rotate: 180deg;
232
236
  }
233
237
  }
package/dist/Tab.js CHANGED
@@ -1,2 +1,2 @@
1
- export { T as Tab, T as default } from './Tab-Cy4G562A.js';
1
+ export { T as Tab, T as default } from './Tab-Bqfvg8Ce.js';
2
2
  //# sourceMappingURL=Tab.js.map
package/dist/Table.js CHANGED
@@ -1,2 +1,2 @@
1
- export { C as COLUMN_TYPE_DEFAULTS, D as DataTable, b as booleanFormatter, a as chipsFormatter, c as createColumnHelper, d as currencyFormatter, i as dateFormatPresets, e as dateFormatter, f as dateTimeFormatter, g as getColumnTypeDefaults, h as htmlFormatter, m as markdownFormatter, n as numberFormatter, p as percentFormatter, r as resolveColumnTypeConfig, t as timeFormatPresets, j as timeFormatter, y as yearlessDateFormatter } from './DataTable-BLK4-7QQ.js';
1
+ export { C as COLUMN_TYPE_DEFAULTS, D as DataTable, b as booleanFormatter, a as chipsFormatter, c as createColumnHelper, d as currencyFormatter, i as dateFormatPresets, e as dateFormatter, f as dateTimeFormatter, g as getColumnTypeDefaults, h as htmlFormatter, m as markdownFormatter, n as numberFormatter, p as percentFormatter, r as resolveColumnTypeConfig, t as timeFormatPresets, j as timeFormatter, y as yearlessDateFormatter } from './DataTable-CRzQKN_P.js';
2
2
  //# sourceMappingURL=Table.js.map
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { c as cx } from './index-De1g9FRV.js';
3
3
  import { forwardRef } from 'react';
4
4
  import { t as textStyles } from './Text.module-BcVew1AQ.js';
5
- import { A as AiMark } from './AiMark-DKAIkwNU.js';
5
+ import { A as AiMark } from './AiMark-2_O4tKv_.js';
6
6
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
7
7
 
8
8
  const Text = forwardRef((props, ref) => {
@@ -120,4 +120,4 @@ const Text = forwardRef((props, ref) => {
120
120
  Text.displayName = "Text";
121
121
 
122
122
  export { Text as T };
123
- //# sourceMappingURL=Text-BjYHzUGW.js.map
123
+ //# sourceMappingURL=Text-CIoD_RK4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text-CIoD_RK4.js","sources":["../src/components/Text/Text.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { forwardRef, type LegacyRef } from \"react\";\nimport styles from \"./Text.module.scss\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { AiMark } from \"../AiMark\";\nimport type {\n BodyTextInlineProps,\n BodyTextProps,\n EyebrowProps,\n HeadlineProps,\n} from \"./types\";\n\n/**\n * Props for the Text component\n * @extends HeadlineProps<\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\">\n * @extends EyebrowProps\n * @extends BodyTextProps\n * @extends BodyTextInlineProps\n */\nexport type TextProps =\n | HeadlineProps<\"h1\">\n | HeadlineProps<\"h2\">\n | HeadlineProps<\"h3\">\n | HeadlineProps<\"h4\">\n | HeadlineProps<\"h5\">\n | HeadlineProps<\"h6\">\n | EyebrowProps\n | BodyTextProps\n | BodyTextInlineProps;\n\n/**\n * Text component for displaying various types of text content with consistent styling.\n *\n * Features:\n * - Multiple text variants (headline, eyebrow, body)\n * - Semantic HTML elements (h1-h6, p, span)\n * - Multiple size options for each variant\n *\n * @example\n * <Text variant=\"headline\" el=\"h1\" size=\"large\">Main Heading</Text>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">Sub Heading</Text>\n *\n * @example\n * <Text variant=\"eyebrow\" size=\"small\">Category Label</Text>\n *\n * @example\n * <Text size=\"large\">Large body text</Text>\n * <Text subdued>Deemphasized text</Text>\n * <Text inline>Inline text within other text</Text>\n */\nexport const Text = forwardRef<\n HTMLHeadingElement | HTMLSpanElement | HTMLParagraphElement,\n TextProps\n>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n if (props.variant === \"headline\") {\n const {\n variant: _,\n children,\n className,\n el: HeadlineElement,\n size = \"medium\",\n style,\n aiMark,\n ...rest\n } = componentProps;\n\n const TextClasses = classnames(styles[\"headline\"], className, {\n [styles[`${size}`]]: size !== \"medium\",\n });\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const aiMarkSize = size === \"small\" ? \"medium\" : size;\n\n const aiMarkNode = aiMark && (\n <span className={styles[\"headline-ai-mark\"]}>\n <AiMark\n type=\"gradient\"\n collapsePadding=\"block\"\n size={aiMarkSize}\n popoverOrTooltipConfig={\n typeof aiMark === \"object\" ? aiMark : undefined\n }\n />\n </span>\n );\n\n return (\n // @ts-expect-error ts(2604) HeadlineElement will work as element tag\n <HeadlineElement\n ref={ref as LegacyRef<HTMLHeadingElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {aiMarkNode ? (\n <span className={styles[\"headline-with-ai-mark\"]}>\n {children}\n {aiMarkNode}\n </span>\n ) : (\n children\n )}\n </HeadlineElement>\n );\n } else if (props.variant === \"eyebrow\") {\n const {\n variant: _,\n children,\n className,\n size = \"medium\",\n style,\n ...rest\n } = componentProps;\n\n const TextClasses = classnames(styles[\"eyebrow\"], className, {\n [styles[`${size}`]]: size !== \"medium\",\n });\n\n const styleCombined = { ...style, ...layoutStyles };\n\n return (\n <span\n ref={ref as LegacyRef<HTMLSpanElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {children}\n </span>\n );\n } else {\n const {\n variant: _,\n children,\n className,\n subdued,\n inline,\n style,\n size = \"medium\",\n ...rest\n } = componentProps;\n\n const TextClasses = classnames(styles[\"bodytext\"], className, {\n [styles[`${size}`]]: size !== \"medium\",\n [styles[\"subdued\"]]: subdued,\n [styles[\"inline\"]]: inline,\n });\n\n const styleCombined = { ...style, ...layoutStyles };\n\n if (inline) {\n return (\n <span\n ref={ref as LegacyRef<HTMLSpanElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {children}\n </span>\n );\n } else {\n return (\n <p\n ref={ref as LegacyRef<HTMLParagraphElement>}\n className={TextClasses}\n data-anv=\"text\"\n style={styleCombined}\n {...rest}\n >\n {children}\n </p>\n );\n }\n }\n});\n\nText.displayName = \"Text\";\n"],"names":["classnames","styles"],"mappings":"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"}
package/dist/Text.js CHANGED
@@ -1,2 +1,2 @@
1
- export { T as Text, T as default } from './Text-BjYHzUGW.js';
1
+ export { T as Text, T as default } from './Text-CIoD_RK4.js';
2
2
  //# sourceMappingURL=Text.js.map
@@ -4,15 +4,15 @@ import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
4
4
  import { S as Spinner } from './Spinner-B7tTWcP6.js';
5
5
  import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
6
6
  import { c as cx } from './index-De1g9FRV.js';
7
- import { F as FieldLabel } from './FieldLabel-v6vMVVWB.js';
7
+ import { F as FieldLabel } from './FieldLabel-SzH61hCb.js';
8
8
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
9
9
  import { useTrackingId } from './useTrackingId.js';
10
10
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
11
11
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
12
12
  import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
13
- import { s as stripInlineMarkdown } from './stripInlineMarkdown-C-3FEh_E.js';
13
+ import { s as stripInlineMarkdown } from './stripInlineMarkdown-BfNNOWPk.js';
14
14
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
15
- import { H as Helper } from './Helper-B_VAFgGd.js';
15
+ import { H as Helper } from './Helper-Bq6Npkgh.js';
16
16
 
17
17
  const TextField = forwardRef(
18
18
  (props, ref) => {
@@ -215,4 +215,4 @@ const TextField = forwardRef(
215
215
  TextField.displayName = "InternalTextField";
216
216
 
217
217
  export { TextField as T };
218
- //# sourceMappingURL=TextField-DX6-K3jO.js.map
218
+ //# sourceMappingURL=TextField-CzzvLI5_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField-CzzvLI5_.js","sources":["../src/components/TextField/internal/TextField.tsx"],"sourcesContent":["import {\n type ChangeEventHandler,\n type ComponentPropsWithoutRef,\n type FocusEventHandler,\n type ReactElement,\n type ReactNode,\n type Ref,\n forwardRef,\n isValidElement,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId, useMergeRefs } from \"../../../hooks\";\nimport type {\n DataTrackingId,\n LayoutUtilProps,\n Size,\n MaxLengthCounterProps,\n} from \"../../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../../internal/hooks\";\nimport { Helper, type HelperProps } from \"../../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../../FieldMessage\";\nimport { Spinner } from \"../../Spinner\";\nimport styles from \"../TextField.module.scss\";\nimport cx from \"classnames\";\nimport { FieldLabel, type FieldLabelProps } from \"../../FieldLabel\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../../internal/functions\";\n\nexport type TextFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n \"size\" | \"prefix\"\n> &\n LayoutUtilProps & {\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 // TODO(v4.0.0): make label required and type string\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n * Passing `ReactNode` is deprecated — use a plain string with inline markdown instead.\n */\n label?: FieldLabelProps[\"children\"];\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n type?: \"text\" | \"email\" | \"tel\" | \"url\" | \"password\" | \"number\";\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n labelProps?: FieldLabelProps;\n moreInfo?: ReactNode;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & MaxLengthCounterProps &\n DataTrackingId;\n\nexport const TextField = forwardRef(\n (props: TextFieldProps, ref: Ref<HTMLInputElement>) => {\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n prefix: childrenToString(props.prefix),\n hint: childrenToString(props.hint),\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"TextField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n type = \"text\",\n required,\n onChange,\n onFocus,\n onBlur,\n id: idProp,\n description,\n hint,\n showCounter,\n maxLength,\n loading,\n disabled,\n labelProps,\n style,\n placeholder,\n warning,\n \"aria-label\": ariaLabelProp,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isTyping, setIsTyping] = useState(false);\n\n // Use the optionally controlled state for value\n const [value, setValue] = useOptionallyControlledState<typeof valueProp>({\n controlledValue: valueProp,\n defaultValue: defaultValueProp,\n });\n\n const length = useMemo(() => {\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n Array.isArray(value)\n ) {\n return String(value).length;\n }\n return 0;\n }, [value]);\n\n const onChangeHandler: ChangeEventHandler<HTMLInputElement> = (e) => {\n setValue(e.target.value);\n onChange?.(e);\n if (!isTyping) {\n setIsTyping(true);\n }\n };\n\n const blurHandler: FocusEventHandler<HTMLInputElement> = (e) => {\n onBlur?.(e);\n if (isTyping) {\n setIsTyping(false);\n }\n };\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n\n const prefixUid = useId();\n const suffixUid = useId();\n\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"TextField\", error);\n\n // TODO(v4.0.0): remove these warnings once label is required string\n if (label === undefined) {\n warnOnce(\n \"TextField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n } else if (typeof label !== \"string\") {\n warnOnce(\n \"TextField: Passing ReactNode to label 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 styleCombined = { ...style, ...layoutStyles };\n\n const hasHelperText =\n hint || showCounter || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div\n className={cx(styles[\"textfield\"], className)}\n data-anv=\"textfield\"\n style={styleCombined}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"highlight\"]]: isHighlighted,\n })}\n role=\"presentation\"\n onClick={(e) => {\n inputRef.current?.focus();\n if (e.target !== inputRef.current) {\n inputRef.current?.click();\n }\n }}\n >\n {prefix ? (\n <div\n aria-hidden\n className={styles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(styles[\"input\"], {\n [styles[\"error\"]]: error,\n })}\n onChange={onChangeHandler}\n onFocus={onFocus}\n onBlur={blurHandler}\n ref={useMergeRefs([ref, inputRef])}\n required={required}\n maxLength={maxLength}\n placeholder={placeholder}\n type={type}\n disabled={disabled}\n value={value ?? \"\"}\n data-tracking-id={trackingId}\n {...rest}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : ariaLabelProp || (label ? undefined : placeholder) // TODO(v4.0.0): this can all be removed once label is required. Aria-label should no longer be a separate prop passed through.\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div className={styles[\"loading-spinner-wrapper\"]}>\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={styles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n maxLength={maxLength}\n inputLength={length}\n isTyping={isTyping}\n showCounter={showCounter}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\nTextField.displayName = \"InternalTextField\";\n"],"names":["styles"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
- import { T as TextField$1 } from './TextField-DX6-K3jO.js';
3
+ import { T as TextField$1 } from './TextField-CzzvLI5_.js';
4
4
 
5
5
  const TextField = forwardRef(
6
6
  (props, ref) => {
@@ -10,4 +10,4 @@ const TextField = forwardRef(
10
10
  TextField.displayName = "TextField";
11
11
 
12
12
  export { TextField as T };
13
- //# sourceMappingURL=TextField-BsVxym0-.js.map
13
+ //# sourceMappingURL=TextField-D3sRS5q1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField-D3sRS5q1.js","sources":["../src/components/TextField/TextField.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport {\n TextField as CoreTextField,\n type TextFieldProps as CoreTextFieldProps,\n} from \"./internal/TextField\";\nimport type { MaxLengthCounterProps } from \"../../types\";\n\nexport type TextFieldProps = Omit<CoreTextFieldProps, \"prefix\"> & {\n prefix?: string;\n} & MaxLengthCounterProps;\n\n/**\n * TextField component for single-line text input.\n *\n * Features:\n * - Label, hint, description, error, and warning messaging\n * - Optional prefix/suffix content (text, icon, or element)\n * - Character counter via `showCounter`/`maxLength`\n * - Loading state with spinner, and disabled/read-only states\n * - Configurable `size` and native input `type`\n * - Full accessibility support via `FieldLabel`\n *\n * @example\n * <TextField label=\"Email\" type=\"email\" placeholder=\"you@example.com\" />\n */\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (props, ref) => {\n return <CoreTextField ref={ref} {...props} />;\n },\n);\n\nTextField.displayName = \"TextField\";\n"],"names":["CoreTextField"],"mappings":";;;;AAyBO,MAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,uBAAO,GAAA,CAACA,WAAA,EAAA,EAAc,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC7C;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;;;;"}