@servicetitan/anvil2 3.0.0 → 3.0.2

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 (365) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +8 -6
  3. package/dist/{AiMark-B1-M3ZgP.js → AiMark-DiMotaq3.js} +3 -3
  4. package/dist/{AiMark-B1-M3ZgP.js.map → AiMark-DiMotaq3.js.map} +1 -1
  5. package/dist/AiMark.css +3 -3
  6. package/dist/AiMark.js +1 -1
  7. package/dist/{Alert-DmbqtMg_.js → Alert-DhhVURcl.js} +2 -2
  8. package/dist/{Alert-DmbqtMg_.js.map → Alert-DhhVURcl.js.map} +1 -1
  9. package/dist/Alert.css +1 -1
  10. package/dist/Alert.js +1 -1
  11. package/dist/Announcement.css +1 -1
  12. package/dist/AnvilProvider.css +1 -2
  13. package/dist/{Avatar-NbFc4Ovc.js → Avatar-BmNcLUg-.js} +2 -2
  14. package/dist/{Avatar-NbFc4Ovc.js.map → Avatar-BmNcLUg-.js.map} +1 -1
  15. package/dist/{Avatar-B4hRHku9.js → Avatar-Cw8B8xZV.js} +2 -2
  16. package/dist/Avatar-Cw8B8xZV.js.map +1 -0
  17. package/dist/Avatar.css +2 -2
  18. package/dist/Avatar.js +2 -2
  19. package/dist/Badge.css +1 -1
  20. package/dist/{Breadcrumbs-CYmciJ1D.js → Breadcrumbs-vvKOtFwN.js} +2 -2
  21. package/dist/{Breadcrumbs-CYmciJ1D.js.map → Breadcrumbs-vvKOtFwN.js.map} +1 -1
  22. package/dist/Breadcrumbs.css +1 -1
  23. package/dist/Breadcrumbs.js +1 -1
  24. package/dist/Button.css +1 -1
  25. package/dist/ButtonCompound.css +1 -1
  26. package/dist/ButtonToggle.css +1 -1
  27. package/dist/{Calendar-BAbAagIx.js → Calendar-BLvBN8Ou.js} +2 -2
  28. package/dist/{Calendar-BAbAagIx.js.map → Calendar-BLvBN8Ou.js.map} +1 -1
  29. package/dist/{Calendar-CaCMa_jq.js → Calendar-Dtn07sfJ.js} +2 -2
  30. package/dist/{Calendar-CaCMa_jq.js.map → Calendar-Dtn07sfJ.js.map} +1 -1
  31. package/dist/Calendar.css +2 -2
  32. package/dist/Calendar.js +2 -2
  33. package/dist/Card.css +1 -1
  34. package/dist/{Checkbox-BSAS8-DM.js → Checkbox-BngBrjEV.js} +3 -3
  35. package/dist/{Checkbox-BSAS8-DM.js.map → Checkbox-BngBrjEV.js.map} +1 -1
  36. package/dist/{Checkbox-Ckl8EFpF.js → Checkbox-lSwl_u26.js} +2 -2
  37. package/dist/{Checkbox-Ckl8EFpF.js.map → Checkbox-lSwl_u26.js.map} +1 -1
  38. package/dist/Checkbox.css +1 -1
  39. package/dist/Checkbox.js +1 -1
  40. package/dist/{Chip-CR5i8mQW.js → Chip-DBn3KRak.js} +3 -3
  41. package/dist/{Chip-CR5i8mQW.js.map → Chip-DBn3KRak.js.map} +1 -1
  42. package/dist/Chip.css +1 -1
  43. package/dist/Chip.js +1 -1
  44. package/dist/{Combobox-BffGTugd.js → Combobox-BqhvHG9H.js} +5 -5
  45. package/dist/{Combobox-BffGTugd.js.map → Combobox-BqhvHG9H.js.map} +1 -1
  46. package/dist/Combobox.css +1 -1
  47. package/dist/Combobox.js +1 -1
  48. package/dist/{DataTable-D9Xj1nq5.js → DataTable-CB-exG-7.js} +1173 -142
  49. package/dist/DataTable-CB-exG-7.js.map +1 -0
  50. package/dist/DataTable.css +274 -118
  51. package/dist/{DateFieldRange-DPTC3EZz.js → DateFieldRange-Ci-OHK6g.js} +4 -4
  52. package/dist/{DateFieldRange-DPTC3EZz.js.map → DateFieldRange-Ci-OHK6g.js.map} +1 -1
  53. package/dist/DateFieldRange.js +1 -1
  54. package/dist/{DateFieldSingle-w1G-zd9G.js → DateFieldSingle-JOEy4kSL.js} +4 -4
  55. package/dist/{DateFieldSingle-w1G-zd9G.js.map → DateFieldSingle-JOEy4kSL.js.map} +1 -1
  56. package/dist/DateFieldSingle.js +1 -1
  57. package/dist/{DateFieldYearless-DHNVc7Sd.js → DateFieldYearless-CIqPup6O.js} +4 -4
  58. package/dist/{DateFieldYearless-DHNVc7Sd.js.map → DateFieldYearless-CIqPup6O.js.map} +1 -1
  59. package/dist/DateFieldYearless.js +1 -1
  60. package/dist/{DateFieldYearlessRange-C5ktVUgG.js → DateFieldYearlessRange-Cf11uZhk.js} +3 -3
  61. package/dist/{DateFieldYearlessRange-C5ktVUgG.js.map → DateFieldYearlessRange-Cf11uZhk.js.map} +1 -1
  62. package/dist/DateFieldYearlessRange.css +1 -1
  63. package/dist/DateFieldYearlessRange.js +1 -1
  64. package/dist/{DaysOfTheWeek-BubWkBZ0.js → DaysOfTheWeek-R2-y7cqh.js} +3 -3
  65. package/dist/{DaysOfTheWeek-BubWkBZ0.js.map → DaysOfTheWeek-R2-y7cqh.js.map} +1 -1
  66. package/dist/DaysOfTheWeek.css +1 -1
  67. package/dist/DaysOfTheWeek.js +1 -1
  68. package/dist/Details.css +1 -1
  69. package/dist/{Dialog-DGmF6qx3.js → Dialog-C3yST7Ly.js} +5 -5
  70. package/dist/Dialog-C3yST7Ly.js.map +1 -0
  71. package/dist/Dialog.css +1 -1
  72. package/dist/Dialog.js +1 -1
  73. package/dist/Divider.css +1 -1
  74. package/dist/Dnd.js +2 -1
  75. package/dist/Dnd.js.map +1 -1
  76. package/dist/DndHandleButton-Dgt9G-dF.js +43 -0
  77. package/dist/DndHandleButton-Dgt9G-dF.js.map +1 -0
  78. package/dist/DndHandleButton.css +22 -0
  79. package/dist/DndSort.css +1 -1
  80. package/dist/DndSort.js +2 -1
  81. package/dist/DndSort.js.map +1 -1
  82. package/dist/{Drawer-iewBy1DW.js → Drawer-CouIrQ8u.js} +6 -6
  83. package/dist/{Drawer-iewBy1DW.js.map → Drawer-CouIrQ8u.js.map} +1 -1
  84. package/dist/Drawer.css +1 -1
  85. package/dist/Drawer.js +1 -1
  86. package/dist/DrillDown.css +1 -1
  87. package/dist/DrillDown.js +1 -1
  88. package/dist/{EditCard-D7-Ye7R0.js → EditCard-DFBjxF9l.js} +2 -2
  89. package/dist/{EditCard-D7-Ye7R0.js.map → EditCard-DFBjxF9l.js.map} +1 -1
  90. package/dist/EditCard.css +1 -1
  91. package/dist/EditCard.js +1 -1
  92. package/dist/{FieldLabel-DZWu5dMp.js → FieldLabel-rHPbiyR3.js} +3 -3
  93. package/dist/{FieldLabel-DZWu5dMp.js.map → FieldLabel-rHPbiyR3.js.map} +1 -1
  94. package/dist/FieldLabel.css +2 -2
  95. package/dist/FieldLabel.js +1 -1
  96. package/dist/FieldMessage.css +1 -1
  97. package/dist/{Toolbar-C1_etxss.js → FilterBar-kVue-bVK.js} +127 -939
  98. package/dist/FilterBar-kVue-bVK.js.map +1 -0
  99. package/dist/FilterBar.css +59 -0
  100. package/dist/FilterBar.d.ts +6 -0
  101. package/dist/FilterBar.js +2 -0
  102. package/dist/FilterBar.js.map +1 -0
  103. package/dist/Flex.css +1 -1
  104. package/dist/Grid.css +1 -1
  105. package/dist/Helper.css +1 -1
  106. package/dist/Icon.css +1 -1
  107. package/dist/{InputMask-EwEJlW-t.js → InputMask-DxbFpzo7.js} +3 -3
  108. package/dist/{InputMask-EwEJlW-t.js.map → InputMask-DxbFpzo7.js.map} +1 -1
  109. package/dist/InputMask.js +1 -1
  110. package/dist/InteractiveCard-KGs2b_al.js +119 -0
  111. package/dist/InteractiveCard-KGs2b_al.js.map +1 -0
  112. package/dist/InteractiveCard.css +22 -29
  113. package/dist/InteractiveCard.js +1 -1
  114. package/dist/Layout.css +1 -1
  115. package/dist/Link.css +1 -1
  116. package/dist/List.css +1 -1
  117. package/dist/{ListView-DBO9Bl1H.js → ListView-CYkuvkAy.js} +2 -2
  118. package/dist/{ListView-DBO9Bl1H.js.map → ListView-CYkuvkAy.js.map} +1 -1
  119. package/dist/ListView.css +1 -1
  120. package/dist/ListView.js +1 -1
  121. package/dist/{Listbox-DDlxpVu9.js → Listbox-BBrsMfO3.js} +2 -2
  122. package/dist/{Listbox-DDlxpVu9.js.map → Listbox-BBrsMfO3.js.map} +1 -1
  123. package/dist/Listbox.css +1 -1
  124. package/dist/Listbox.js +1 -1
  125. package/dist/Menu.css +1 -1
  126. package/dist/MultiSelectField.js +1 -1
  127. package/dist/{MultiSelectFieldSync-DZ3tm7zt.js → MultiSelectFieldSync-BWZQ4MFC.js} +5 -5
  128. package/dist/{MultiSelectFieldSync-DZ3tm7zt.js.map → MultiSelectFieldSync-BWZQ4MFC.js.map} +1 -1
  129. package/dist/MultiSelectFieldSync.css +1 -1
  130. package/dist/MultiSelectMenu.js +1 -1
  131. package/dist/{MultiSelectMenuSync-dgO9SmHi.js → MultiSelectMenuSync-Bl4ty0je.js} +4 -4
  132. package/dist/{MultiSelectMenuSync-dgO9SmHi.js.map → MultiSelectMenuSync-Bl4ty0je.js.map} +1 -1
  133. package/dist/{NumberField-DJbdyatF.js → NumberField-DMHJ2Cyi.js} +4 -5
  134. package/dist/NumberField-DMHJ2Cyi.js.map +1 -0
  135. package/dist/NumberField.css +1 -1
  136. package/dist/NumberField.js +1 -1
  137. package/dist/Overflow.css +2 -2
  138. package/dist/Overflow.js +1 -1
  139. package/dist/{Page-Be1Blwme.js → Page-Blw4TE5J.js} +9 -9
  140. package/dist/{Page-Be1Blwme.js.map → Page-Blw4TE5J.js.map} +1 -1
  141. package/dist/Page.css +1 -1
  142. package/dist/Page.js +1 -1
  143. package/dist/{Pagination-USDJM5vi.js → Pagination-DYNH3WeU.js} +2 -2
  144. package/dist/{Pagination-USDJM5vi.js.map → Pagination-DYNH3WeU.js.map} +1 -1
  145. package/dist/Pagination.css +6 -6
  146. package/dist/Pagination.js +1 -1
  147. package/dist/{Popover-CyB7yzSf.js → Popover-C_XdNvAZ.js} +2 -2
  148. package/dist/{Popover-CyB7yzSf.js.map → Popover-C_XdNvAZ.js.map} +1 -1
  149. package/dist/Popover.css +1 -1
  150. package/dist/Popover.js +1 -1
  151. package/dist/{ProgressBar-DSrjgLTx.js → ProgressBar-BwHaAD25.js} +2 -2
  152. package/dist/{ProgressBar-DSrjgLTx.js.map → ProgressBar-BwHaAD25.js.map} +1 -1
  153. package/dist/ProgressBar.css +1 -1
  154. package/dist/ProgressBar.js +1 -1
  155. package/dist/{Radio-CQaXJ72d.js → Radio-DJ6KgfcS.js} +2 -2
  156. package/dist/{Radio-CQaXJ72d.js.map → Radio-DJ6KgfcS.js.map} +1 -1
  157. package/dist/{Radio-DO4UhbBE.js → Radio-IksHWkBl.js} +3 -3
  158. package/dist/{Radio-DO4UhbBE.js.map → Radio-IksHWkBl.js.map} +1 -1
  159. package/dist/Radio.css +1 -1
  160. package/dist/Radio.js +1 -1
  161. package/dist/RichTextEditor-C_Boj8QP.js +30852 -0
  162. package/dist/RichTextEditor-C_Boj8QP.js.map +1 -0
  163. package/dist/RichTextEditor.css +178 -0
  164. package/dist/RichTextEditor.d.ts +2 -0
  165. package/dist/RichTextEditor.js +2 -0
  166. package/dist/RichTextEditor.js.map +1 -0
  167. package/dist/{SearchField-CsRGYZx3.js → SearchField-BKJOW-vI.js} +3 -10
  168. package/dist/SearchField-BKJOW-vI.js.map +1 -0
  169. package/dist/SearchField-BplvDpBG.js +13 -0
  170. package/dist/SearchField-BplvDpBG.js.map +1 -0
  171. package/dist/SearchField.css +1 -1
  172. package/dist/SearchField.js +1 -1
  173. package/dist/SegmentedControl.css +1 -1
  174. package/dist/{SelectCard-CtXwY8FZ.js → SelectCard-E-13CjHS.js} +3 -3
  175. package/dist/{SelectCard-CtXwY8FZ.js.map → SelectCard-E-13CjHS.js.map} +1 -1
  176. package/dist/SelectCard.css +1 -1
  177. package/dist/SelectCard.js +1 -1
  178. package/dist/SelectField.js +1 -1
  179. package/dist/{SelectFieldLabel-DLT5dKbx.js → SelectFieldLabel-C-MrQm-n.js} +2 -2
  180. package/dist/{SelectFieldLabel-DLT5dKbx.js.map → SelectFieldLabel-C-MrQm-n.js.map} +1 -1
  181. package/dist/{SelectFieldSync-C44hPeeS.js → SelectFieldSync-BbJFd_bV.js} +4 -4
  182. package/dist/{SelectFieldSync-C44hPeeS.js.map → SelectFieldSync-BbJFd_bV.js.map} +1 -1
  183. package/dist/SelectMenu.js +1 -1
  184. package/dist/{SelectMenuSync-V97oN85V.js → SelectMenuSync-CBMdmGTU.js} +4 -4
  185. package/dist/{SelectMenuSync-V97oN85V.js.map → SelectMenuSync-CBMdmGTU.js.map} +1 -1
  186. package/dist/{SelectOptions-CDoo4AUu.js → SelectOptions-BT9OCfPh.js} +2 -2
  187. package/dist/{SelectOptions-CDoo4AUu.js.map → SelectOptions-BT9OCfPh.js.map} +1 -1
  188. package/dist/{SelectTrigger-BWN3Tx43.js → SelectTrigger-DtyxYDzP.js} +3 -3
  189. package/dist/{SelectTrigger-BWN3Tx43.js.map → SelectTrigger-DtyxYDzP.js.map} +1 -1
  190. package/dist/SelectTrigger.js +1 -1
  191. package/dist/{SelectTriggerBase-Do7lQ5rw.js → SelectTriggerBase-Xwq929Wr.js} +3 -3
  192. package/dist/{SelectTriggerBase-Do7lQ5rw.js.map → SelectTriggerBase-Xwq929Wr.js.map} +1 -1
  193. package/dist/SelectTriggerBase.css +1 -1
  194. package/dist/SideNav.css +1 -1
  195. package/dist/Skeleton.css +1 -1
  196. package/dist/Spinner.css +1 -1
  197. package/dist/SrOnly.css +1 -1
  198. package/dist/StatusIcon.css +1 -1
  199. package/dist/Stepper.css +4 -4
  200. package/dist/{Switch-DeBu4Ucg.js → Switch-CElshQ9N.js} +2 -2
  201. package/dist/{Switch-DeBu4Ucg.js.map → Switch-CElshQ9N.js.map} +1 -1
  202. package/dist/Switch.css +1 -1
  203. package/dist/Switch.js +1 -1
  204. package/dist/Tab.css +1 -1
  205. package/dist/Table.js +1 -1
  206. package/dist/{Text-J5YtSSXY.js → Text-C0F8AkvH.js} +5 -5
  207. package/dist/Text-C0F8AkvH.js.map +1 -0
  208. package/dist/Text.css +1 -1
  209. package/dist/Text.js +1 -1
  210. package/dist/{TextField-CRDTnuUN.js → TextField-CLZEj0aI.js} +3 -3
  211. package/dist/{TextField-CRDTnuUN.js.map → TextField-CLZEj0aI.js.map} +1 -1
  212. package/dist/{TextField-YlMkDHp-.js → TextField-yL52fx5R.js} +2 -2
  213. package/dist/{TextField-YlMkDHp-.js.map → TextField-yL52fx5R.js.map} +1 -1
  214. package/dist/TextField.css +1 -1
  215. package/dist/TextField.js +1 -1
  216. package/dist/{Textarea-CxXmr_Gx.js → Textarea-CGgyvnM8.js} +3 -3
  217. package/dist/{Textarea-CxXmr_Gx.js.map → Textarea-CGgyvnM8.js.map} +1 -1
  218. package/dist/Textarea.css +1 -1
  219. package/dist/Textarea.js +1 -1
  220. package/dist/ThemeProvider.css +0 -1
  221. package/dist/{TimeField-DTg0CE5L.js → TimeField-BEvxjjFp.js} +4 -4
  222. package/dist/{TimeField-DTg0CE5L.js.map → TimeField-BEvxjjFp.js.map} +1 -1
  223. package/dist/TimeField.css +1 -1
  224. package/dist/TimeField.js +1 -1
  225. package/dist/TimezoneMessage.css +1 -1
  226. package/dist/Toast.js +2 -2
  227. package/dist/{Toaster-Bq42x6Gx.js → Toaster-DllJAOK8.js} +3 -3
  228. package/dist/{Toaster-Bq42x6Gx.js.map → Toaster-DllJAOK8.js.map} +1 -1
  229. package/dist/{Toaster-Dly3rfva.js → Toaster-DuadB8pq.js} +2 -2
  230. package/dist/{Toaster-Dly3rfva.js.map → Toaster-DuadB8pq.js.map} +1 -1
  231. package/dist/Toaster.css +1 -1
  232. package/dist/Toolbar-J5cakHba.js +588 -0
  233. package/dist/Toolbar-J5cakHba.js.map +1 -0
  234. package/dist/Toolbar-QYRQv45Y.js +780 -0
  235. package/dist/Toolbar-QYRQv45Y.js.map +1 -0
  236. package/dist/Toolbar.css +2 -96
  237. package/dist/Toolbar.js +2 -1
  238. package/dist/Toolbar.js.map +1 -1
  239. package/dist/{index2.css → Toolbar2.css} +1 -1
  240. package/dist/ToolbarButtonToggle-Ch0SH4oH.js +285 -0
  241. package/dist/ToolbarButtonToggle-Ch0SH4oH.js.map +1 -0
  242. package/dist/ToolbarButtonToggle.css +41 -0
  243. package/dist/{Tooltip-BlStOXN3.js → Tooltip-lBmgi5ZB.js} +7 -6
  244. package/dist/Tooltip-lBmgi5ZB.js.map +1 -0
  245. package/dist/Tooltip.css +7 -6
  246. package/dist/Tooltip.js +1 -1
  247. package/dist/{YearlessDateInputWithPicker-DyytWt0x.js → YearlessDateInputWithPicker-DryLX8sA.js} +2 -2
  248. package/dist/{YearlessDateInputWithPicker-DyytWt0x.js.map → YearlessDateInputWithPicker-DryLX8sA.js.map} +1 -1
  249. package/dist/YearlessDateInputWithPicker.css +2 -2
  250. package/dist/add-BcQkAUip.js +6 -0
  251. package/dist/add-BcQkAUip.js.map +1 -0
  252. package/dist/assets/css-utils/a2-border.css +23 -53
  253. package/dist/assets/css-utils/a2-color.css +221 -449
  254. package/dist/assets/css-utils/a2-font.css +21 -47
  255. package/dist/assets/css-utils/a2-spacing.css +238 -481
  256. package/dist/assets/css-utils/a2-utils.css +497 -1002
  257. package/dist/assets/css-utils/border.css +23 -53
  258. package/dist/assets/css-utils/color.css +221 -449
  259. package/dist/assets/css-utils/font.css +21 -47
  260. package/dist/assets/css-utils/spacing.css +238 -481
  261. package/dist/assets/css-utils/utils.css +497 -1002
  262. package/dist/assets/icons/st/unsorted.svg +1 -1
  263. package/dist/beta/components/FilterBar/FilterBar.d.ts +87 -0
  264. package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterToggleButton.d.ts +1 -1
  265. package/dist/beta/components/FilterBar/index.d.ts +3 -0
  266. package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/FilterGroupContext.d.ts +5 -5
  267. package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/types.d.ts +2 -2
  268. package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/utils/test.d.ts +1 -0
  269. package/dist/beta/components/InteractiveCard/InteractiveCard.d.ts +3 -1
  270. package/dist/beta/components/RichTextEditor/RichTextEditor.d.ts +27 -0
  271. package/dist/beta/components/RichTextEditor/index.d.ts +2 -0
  272. package/dist/beta/components/RichTextEditor/internal/LinkPopover.d.ts +14 -0
  273. package/dist/beta/components/RichTextEditor/internal/MentionList.d.ts +14 -0
  274. package/dist/beta/components/RichTextEditor/internal/MentionNodeView.d.ts +11 -0
  275. package/dist/beta/components/RichTextEditor/internal/MentionPopover.d.ts +16 -0
  276. package/dist/beta/components/RichTextEditor/internal/RichTextEditorContext.d.ts +57 -0
  277. package/dist/beta/components/RichTextEditor/internal/RichTextEditorDragHandle.d.ts +6 -0
  278. package/dist/beta/components/RichTextEditor/internal/RichTextEditorMockData.d.ts +8 -0
  279. package/dist/beta/components/RichTextEditor/internal/RichTextEditorProvider.d.ts +8 -0
  280. package/dist/beta/components/RichTextEditor/internal/RichTextEditorToolbar.d.ts +1 -0
  281. package/dist/beta/components/RichTextEditor/internal/YouTubeEmbedPrompt.d.ts +11 -0
  282. package/dist/beta/components/RichTextEditor/internal/YouTubePopover.d.ts +11 -0
  283. package/dist/beta/components/RichTextEditor/internal/extensions/ImageUploadExtension.d.ts +3 -0
  284. package/dist/beta/components/RichTextEditor/internal/extensions/LinkKeyboardShortcutExtension.d.ts +8 -0
  285. package/dist/beta/components/RichTextEditor/internal/extensions/MentionExtension.d.ts +18 -0
  286. package/dist/beta/components/RichTextEditor/internal/extensions/YoutubeExtension.d.ts +8 -0
  287. package/dist/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +32 -0
  288. package/dist/beta/components/RichTextEditor/types.d.ts +103 -0
  289. package/dist/beta/components/Table/DataTable/DataTable.d.ts +40 -1
  290. package/dist/beta/components/Table/DataTable/internal/DataTableBody.d.ts +22 -0
  291. package/dist/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +18 -1
  292. package/dist/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +16 -0
  293. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCustomCell.d.ts +8 -0
  294. package/dist/beta/components/Table/DataTable/internal/editable-cells/useCustomEditHelpers.d.ts +49 -0
  295. package/dist/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +9 -5
  296. package/dist/beta/components/Table/DataTable/internal/util/cellTypeHelpers.d.ts +3 -0
  297. package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +13 -1
  298. package/dist/beta/components/Table/createColumnHelper.d.ts +48 -22
  299. package/dist/beta/components/Table/internal/getCommonPinningClasses.d.ts +1 -1
  300. package/dist/beta/components/Table/types.d.ts +311 -7
  301. package/dist/beta/components/Toolbar/Toolbar.d.ts +0 -54
  302. package/dist/beta/components/Toolbar/index.d.ts +0 -1
  303. package/dist/beta/components/index.d.ts +2 -0
  304. package/dist/beta.js +13 -10
  305. package/dist/beta.js.map +1 -1
  306. package/dist/components/Toolbar/internal/utils/accessibility.d.ts +5 -0
  307. package/dist/getKeyboardFocusableElements-B_U9rt6y.js +11 -0
  308. package/dist/getKeyboardFocusableElements-B_U9rt6y.js.map +1 -0
  309. package/dist/index-DUzqzmOX.js +17044 -0
  310. package/dist/index-DUzqzmOX.js.map +1 -0
  311. package/dist/index-DtsM4pjR.js +71 -0
  312. package/dist/index-DtsM4pjR.js.map +1 -0
  313. package/dist/index.css +1 -22
  314. package/dist/index.js +49 -813
  315. package/dist/index.js.map +1 -1
  316. package/dist/internal/components/Surface/Surface.d.ts +141 -0
  317. package/dist/internal/components/Surface/index.d.ts +1 -0
  318. package/dist/internal/components/index.d.ts +1 -0
  319. package/dist/internal/functions/getKeyboardFocusableElements.d.ts +11 -0
  320. package/dist/{stripInlineMarkdown-BWbMy7r_.js → stripInlineMarkdown-BOi-eJO3.js} +2 -2
  321. package/dist/{stripInlineMarkdown-BWbMy7r_.js.map → stripInlineMarkdown-BOi-eJO3.js.map} +1 -1
  322. package/dist/{syncFilterUtils-BLcRXQfd.js → syncFilterUtils-Gvm81gyv.js} +5 -5
  323. package/dist/{syncFilterUtils-BLcRXQfd.js.map → syncFilterUtils-Gvm81gyv.js.map} +1 -1
  324. package/dist/syncFilterUtils.css +4 -4
  325. package/dist/token/core/css-utils/a2-border.css +0 -30
  326. package/dist/token/core/css-utils/a2-color.css +0 -228
  327. package/dist/token/core/css-utils/a2-font.css +1 -27
  328. package/dist/token/core/css-utils/a2-spacing.css +1 -244
  329. package/dist/token/core/css-utils/a2-utils.css +0 -505
  330. package/dist/token/core/css-utils/border.css +0 -30
  331. package/dist/token/core/css-utils/color.css +0 -228
  332. package/dist/token/core/css-utils/font.css +1 -27
  333. package/dist/token/core/css-utils/spacing.css +1 -244
  334. package/dist/token/core/css-utils/utils.css +0 -505
  335. package/dist/{useDrilldown-D5WWJRU2.js → useDrilldown-6SfknQ2s.js} +3 -3
  336. package/dist/{useDrilldown-D5WWJRU2.js.map → useDrilldown-6SfknQ2s.js.map} +1 -1
  337. package/dist/{useInitialFocus-BUxEDMEG.js → useInitialFocus-BIvXK1Rp.js} +2 -2
  338. package/dist/{useInitialFocus-BUxEDMEG.js.map → useInitialFocus-BIvXK1Rp.js.map} +1 -1
  339. package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
  340. package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
  341. package/dist/{useToggleSelection-D_2qS0P1.js → useToggleSelection-odFvSS5t.js} +2 -2
  342. package/dist/{useToggleSelection-D_2qS0P1.js.map → useToggleSelection-odFvSS5t.js.map} +1 -1
  343. package/package.json +26 -11
  344. package/dist/Avatar-B4hRHku9.js.map +0 -1
  345. package/dist/DataTable-D9Xj1nq5.js.map +0 -1
  346. package/dist/Dialog-DGmF6qx3.js.map +0 -1
  347. package/dist/InteractiveCard-CnW0m_F-.js +0 -87
  348. package/dist/InteractiveCard-CnW0m_F-.js.map +0 -1
  349. package/dist/NumberField-DJbdyatF.js.map +0 -1
  350. package/dist/SearchField-CsRGYZx3.js.map +0 -1
  351. package/dist/Text-J5YtSSXY.js.map +0 -1
  352. package/dist/Toolbar-C1_etxss.js.map +0 -1
  353. package/dist/Tooltip-BlStOXN3.js.map +0 -1
  354. package/dist/beta/components/Toolbar/Filters/FilterGroup.d.ts +0 -25
  355. package/dist/getKeyboardFocusableElements-QqcABz0D.js +0 -12
  356. package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +0 -1
  357. package/dist/index-ByMdotWU.js +0 -107
  358. package/dist/index-ByMdotWU.js.map +0 -1
  359. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterButton.d.ts +0 -0
  360. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDateRange.d.ts +0 -0
  361. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDateSingle.d.ts +0 -0
  362. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDrawer.d.ts +0 -0
  363. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterItemWrapper.d.ts +0 -0
  364. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterSelect.d.ts +0 -0
  365. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/utils/filter-state.d.ts +0 -0
@@ -0,0 +1,780 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { createContext, useContext, useId, useRef, useCallback, useEffect, forwardRef, useState, useMemo } from 'react';
3
+ import { B as Button } from './Button-Bnt8XUI7.js';
4
+ import { T as Tooltip } from './Tooltip-lBmgi5ZB.js';
5
+ import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-B_U9rt6y.js';
6
+ import { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';
7
+ import { c as cx } from './index-De1g9FRV.js';
8
+ import { useTrackingId } from './useTrackingId.js';
9
+ import { B as ButtonToggle } from './ButtonToggle-Ct9_5bhC.js';
10
+ import { B as ButtonLink } from './ButtonLink-j3h_wRNi.js';
11
+ import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
12
+ import { L as Listbox } from './Listbox-BBrsMfO3.js';
13
+ import { P as Popover } from './AiMark-DiMotaq3.js';
14
+ import { F as Flex } from './Flex-DOUtHiPi.js';
15
+ import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
16
+ import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
17
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-CB_zHDbW.js';
18
+ import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
19
+
20
+ import './Toolbar2.css';const OverflowItemContext = createContext({
21
+ isInOverflowMenu: false
22
+ });
23
+ const useOverFlowItemContext = () => useContext(OverflowItemContext);
24
+
25
+ const ToolbarContext = createContext({
26
+ overflowItems: [],
27
+ addItem: () => {
28
+ return;
29
+ },
30
+ removeItem: () => {
31
+ return;
32
+ },
33
+ toolbarRef: { current: null },
34
+ orderedIds: [],
35
+ overflow: "wrap",
36
+ size: "xsmall"
37
+ });
38
+ const useToolbarSize = () => useContext(ToolbarContext).size;
39
+
40
+ function getToolbarElements(toolbarElement) {
41
+ const toolbarContent = toolbarElement.querySelector(
42
+ '[data-anv="toolbar-content"]'
43
+ );
44
+ const mainItems = getKeyboardFocusableElements(toolbarContent).filter(
45
+ (item) => {
46
+ const isVisible = !item.closest('[aria-hidden="true"]');
47
+ const isNotInMenuContent = !item.closest('[data-anv="menu-content"]');
48
+ const isNotInPopoverContent = !item.closest(
49
+ '[data-anv="popover-content"]'
50
+ );
51
+ return isVisible && isNotInMenuContent && isNotInPopoverContent;
52
+ }
53
+ );
54
+ const overflowTrigger = toolbarElement.querySelector(
55
+ '[data-anv="toolbar-overflow-trigger"]'
56
+ );
57
+ return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;
58
+ }
59
+ function updateToolbarItemsTabIndex(toolbarElement, activeItem) {
60
+ if (!toolbarElement) return;
61
+ const items = getToolbarElements(toolbarElement);
62
+ if (!items.length) return;
63
+ let activeIndex = 0;
64
+ if (typeof activeItem === "number") {
65
+ activeIndex = Math.max(0, Math.min(activeItem, items.length - 1));
66
+ } else if (activeItem instanceof Element) {
67
+ const foundIndex = items.indexOf(activeItem);
68
+ if (foundIndex !== -1) {
69
+ activeIndex = foundIndex;
70
+ }
71
+ }
72
+ items.forEach((item, index) => {
73
+ item.setAttribute("tabindex", index === activeIndex ? "0" : "-1");
74
+ });
75
+ return items[activeIndex];
76
+ }
77
+ function handleToolbarKeyDown(event, toolbarElement) {
78
+ if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;
79
+ const items = getToolbarElements(toolbarElement);
80
+ if (!items.length) return;
81
+ const activeElement = event.target;
82
+ if (!toolbarElement.contains(activeElement)) return;
83
+ const activeItem = items.find(
84
+ (item) => item === activeElement || Array.from(item.children).some((child) => child === activeElement)
85
+ );
86
+ const activeIndex = activeItem ? items.indexOf(activeItem) : -1;
87
+ if (activeIndex === -1) return;
88
+ let nextIndex = activeIndex;
89
+ const isVertical = toolbarElement.getAttribute("aria-orientation") === "vertical";
90
+ switch (event.key) {
91
+ case "ArrowLeft":
92
+ case "ArrowUp":
93
+ event.preventDefault();
94
+ if (isVertical && event.key === "ArrowUp" || !isVertical && event.key === "ArrowLeft") {
95
+ nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;
96
+ }
97
+ break;
98
+ case "ArrowRight":
99
+ case "ArrowDown":
100
+ event.preventDefault();
101
+ if (isVertical && event.key === "ArrowDown" || !isVertical && event.key === "ArrowRight") {
102
+ nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;
103
+ }
104
+ break;
105
+ case "Home":
106
+ event.preventDefault();
107
+ nextIndex = 0;
108
+ break;
109
+ case "End":
110
+ event.preventDefault();
111
+ nextIndex = items.length - 1;
112
+ break;
113
+ default:
114
+ return;
115
+ }
116
+ updateToolbarItemsTabIndex(toolbarElement, nextIndex);
117
+ items[nextIndex]?.focus();
118
+ }
119
+ const handleMenuKeyboardNavigation = (event) => {
120
+ const menuItems = Array.from(
121
+ event.currentTarget.querySelectorAll('[role="menuitem"]')
122
+ ).map((menuItem) => {
123
+ return getKeyboardFocusableElements(menuItem)[0] || menuItem;
124
+ });
125
+ if (!menuItems.length) return;
126
+ const currentIndex = menuItems.indexOf(document.activeElement);
127
+ if (currentIndex === -1) return;
128
+ let nextIndex = currentIndex;
129
+ const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;
130
+ if (isModifierKey) return;
131
+ switch (event.key) {
132
+ case "ArrowDown":
133
+ case "ArrowUp": {
134
+ event.preventDefault();
135
+ const direction = event.key === "ArrowDown" ? 1 : -1;
136
+ nextIndex = (currentIndex + direction + menuItems.length) % menuItems.length;
137
+ break;
138
+ }
139
+ case "Home":
140
+ event.preventDefault();
141
+ nextIndex = 0;
142
+ break;
143
+ case "End":
144
+ event.preventDefault();
145
+ nextIndex = menuItems.length - 1;
146
+ break;
147
+ default:
148
+ return;
149
+ }
150
+ menuItems[nextIndex]?.focus();
151
+ };
152
+
153
+ const toolbar = "_toolbar_8m7of_1";
154
+ const styles = {
155
+ toolbar: toolbar,
156
+ "toolbar-content": "_toolbar-content_8m7of_5",
157
+ "toolbar-overflow-content": "_toolbar-overflow-content_8m7of_9",
158
+ "toolbar-button-item": "_toolbar-button-item_8m7of_17",
159
+ "toolbar-button-toggle-item": "_toolbar-button-toggle-item_8m7of_26",
160
+ "toolbar-overflow-trigger": "_toolbar-overflow-trigger_8m7of_49",
161
+ "toolbar-item": "_toolbar-item_8m7of_60",
162
+ "overflow-collapse": "_overflow-collapse_8m7of_66"
163
+ };
164
+
165
+ const ToolbarItemWrapper = ({
166
+ item,
167
+ children
168
+ }) => {
169
+ const { addItem, removeItem, toolbarRef, overflow } = useContext(ToolbarContext);
170
+ const itemId = useId();
171
+ const elementRef = useRef(null);
172
+ const prevIntersectingRef = useRef(true);
173
+ const isCollapseMode = overflow === "collapse";
174
+ const handleVisibilityChange = useCallback(
175
+ (isVisible) => {
176
+ if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;
177
+ const itemWithId = { ...item, id: itemId };
178
+ if (isVisible) {
179
+ removeItem(itemWithId);
180
+ } else {
181
+ addItem(itemWithId);
182
+ }
183
+ prevIntersectingRef.current = isVisible;
184
+ },
185
+ [isCollapseMode, item, itemId, addItem, removeItem]
186
+ );
187
+ const { isIntersecting, ref } = useIntersectionObserver({
188
+ root: isCollapseMode ? toolbarRef.current : null,
189
+ threshold: 1,
190
+ initialIsIntersecting: false,
191
+ onChange: handleVisibilityChange
192
+ });
193
+ const setRefCallback = useCallback(
194
+ (node) => {
195
+ elementRef.current = node;
196
+ if (isCollapseMode) {
197
+ ref(node);
198
+ }
199
+ },
200
+ [ref, isCollapseMode]
201
+ );
202
+ const handleFocusOrClick = useCallback(() => {
203
+ if (!toolbarRef.current || !elementRef.current) return;
204
+ const currentElement = elementRef.current.querySelector("button, a, input");
205
+ if (!currentElement) return;
206
+ updateToolbarItemsTabIndex(toolbarRef.current, currentElement);
207
+ }, [toolbarRef]);
208
+ useEffect(() => {
209
+ const interactiveEl = elementRef.current?.querySelector("button, a, input");
210
+ if (!interactiveEl) return;
211
+ interactiveEl.addEventListener("focus", handleFocusOrClick);
212
+ interactiveEl.addEventListener("click", handleFocusOrClick);
213
+ return () => {
214
+ interactiveEl.removeEventListener("focus", handleFocusOrClick);
215
+ interactiveEl.removeEventListener("click", handleFocusOrClick);
216
+ };
217
+ }, [handleFocusOrClick]);
218
+ useEffect(() => {
219
+ if (isCollapseMode) {
220
+ prevIntersectingRef.current = true;
221
+ }
222
+ }, [isCollapseMode]);
223
+ const isHidden = isCollapseMode && !isIntersecting;
224
+ return /* @__PURE__ */ jsx(
225
+ "div",
226
+ {
227
+ ref: setRefCallback,
228
+ className: styles["toolbar-item"],
229
+ style: { visibility: isHidden ? "hidden" : "visible" },
230
+ "aria-hidden": isHidden,
231
+ ...{ inert: isHidden ? "" : void 0 },
232
+ "data-id": itemId,
233
+ "data-anv": "toolbar-item",
234
+ children
235
+ }
236
+ );
237
+ };
238
+
239
+ const ToolbarButton = forwardRef(
240
+ (props, ref) => {
241
+ const { appearance = "ghost", className, children, ...rest } = props;
242
+ const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};
243
+ const size = useToolbarSize();
244
+ const trackingId = useTrackingId({
245
+ name: "ToolbarButton",
246
+ data: {
247
+ disabled: props.disabled,
248
+ "aria-label": props["aria-label"],
249
+ children: props.children
250
+ },
251
+ hasOverride: !!props["data-tracking-id"]
252
+ });
253
+ const buttonClassNames = cx(className, styles["toolbar-button-item"]);
254
+ const item = children ? /* @__PURE__ */ jsx(
255
+ Button,
256
+ {
257
+ ref,
258
+ "data-tracking-id": trackingId,
259
+ appearance,
260
+ size,
261
+ "data-anv": "toolbar-button",
262
+ className: buttonClassNames,
263
+ ...rest,
264
+ children
265
+ }
266
+ ) : /* @__PURE__ */ jsxs(Tooltip, { children: [
267
+ /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(
268
+ Button,
269
+ {
270
+ ref,
271
+ "data-tracking-id": trackingId,
272
+ appearance,
273
+ size,
274
+ "data-anv": "toolbar-button",
275
+ className: buttonClassNames,
276
+ ...rest
277
+ }
278
+ ) }),
279
+ /* @__PURE__ */ jsx(Tooltip.Content, { children: rest["aria-label"] })
280
+ ] });
281
+ if (isInOverflowMenu) {
282
+ return item;
283
+ }
284
+ return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: "button" }, children: item });
285
+ }
286
+ );
287
+ ToolbarButton.displayName = "ToolbarButton";
288
+
289
+ const ToolbarButtonToggle = forwardRef((props, _ref) => {
290
+ const { className, children, ...rest } = props;
291
+ const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};
292
+ const size = useToolbarSize();
293
+ const trackingId = useTrackingId({
294
+ name: "ToolbarButtonToggle",
295
+ data: {
296
+ checked: props.checked,
297
+ disabled: props.disabled,
298
+ "aria-label": props["aria-label"],
299
+ children: props.children
300
+ },
301
+ hasOverride: !!props["data-tracking-id"]
302
+ });
303
+ const buttonToggleClassNames = cx(
304
+ className,
305
+ styles["toolbar-button-item"],
306
+ styles["toolbar-button-toggle-item"]
307
+ );
308
+ const item = children ? /* @__PURE__ */ jsx(
309
+ ButtonToggle,
310
+ {
311
+ "data-tracking-id": trackingId,
312
+ size,
313
+ "data-anv": "toolbar-button-toggle",
314
+ className: buttonToggleClassNames,
315
+ ...rest,
316
+ children
317
+ }
318
+ ) : /* @__PURE__ */ jsxs(Tooltip, { children: [
319
+ /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(
320
+ ButtonToggle,
321
+ {
322
+ "data-tracking-id": trackingId,
323
+ size,
324
+ "data-anv": "toolbar-button-toggle",
325
+ className: buttonToggleClassNames,
326
+ ...rest
327
+ }
328
+ ) }),
329
+ /* @__PURE__ */ jsx(Tooltip.Content, { children: rest["aria-label"] })
330
+ ] });
331
+ if (isInOverflowMenu) {
332
+ return item;
333
+ }
334
+ return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: "buttonToggle" }, children: item });
335
+ });
336
+ ToolbarButtonToggle.displayName = "ToolbarButtonToggle";
337
+
338
+ const ToolbarButtonLink = forwardRef((props, _ref) => {
339
+ const { appearance = "ghost", className, children, icon, ...rest } = props;
340
+ const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};
341
+ const size = useToolbarSize();
342
+ const trackingId = useTrackingId({
343
+ name: "ToolbarButtonLink",
344
+ data: {
345
+ href: props.href,
346
+ disabled: props.disabled,
347
+ "aria-label": props["aria-label"],
348
+ children: props.children,
349
+ target: props.target
350
+ },
351
+ hasOverride: !!props["data-tracking-id"]
352
+ });
353
+ const buttonLinkClassNames = cx(className, styles["toolbar-button-item"]);
354
+ const item = children ? /* @__PURE__ */ jsx(
355
+ ButtonLink,
356
+ {
357
+ "data-tracking-id": trackingId,
358
+ appearance,
359
+ size,
360
+ icon,
361
+ "data-anv": "toolbar-button-link",
362
+ className: buttonLinkClassNames,
363
+ ...rest,
364
+ children
365
+ }
366
+ ) : /* @__PURE__ */ jsxs(Tooltip, { children: [
367
+ /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(
368
+ ButtonLink,
369
+ {
370
+ "data-tracking-id": trackingId,
371
+ appearance,
372
+ size,
373
+ icon,
374
+ "data-anv": "toolbar-button-link",
375
+ className: buttonLinkClassNames,
376
+ ...rest,
377
+ children
378
+ }
379
+ ) }),
380
+ /* @__PURE__ */ jsx(Tooltip.Content, { children: rest["aria-label"] })
381
+ ] });
382
+ if (isInOverflowMenu) {
383
+ return item;
384
+ }
385
+ return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: "buttonLink" }, children: item });
386
+ });
387
+ ToolbarButtonLink.displayName = "ToolbarButtonLink";
388
+
389
+ const ToolbarSelect = forwardRef(
390
+ (props, _ref) => {
391
+ const {
392
+ appearance = "ghost",
393
+ onChange,
394
+ selected: selectedItemId,
395
+ accessibleLabel,
396
+ className,
397
+ items,
398
+ ...rest
399
+ } = props;
400
+ const selectId = useId();
401
+ const [isPopoverOpen, setIsPopoverOpen] = useState(false);
402
+ const defaultId = items.length > 0 ? items[0].id : "";
403
+ const [internalSelectedId, setInternalSelectedId] = useState(defaultId);
404
+ const selectedId = selectedItemId ?? internalSelectedId;
405
+ const selectedItem = items.find((item2) => item2.id === selectedId) || items.find((item2) => item2.id === defaultId);
406
+ useEffect(() => {
407
+ if (!selectedItemId && items.length > 0 && !items.some((item2) => item2.id === internalSelectedId)) {
408
+ setInternalSelectedId(items[0].id);
409
+ }
410
+ }, [items, selectedItemId, internalSelectedId]);
411
+ const handleSelectionChange = (selected) => {
412
+ if (selected?.id) {
413
+ if (selectedItemId === void 0) {
414
+ setInternalSelectedId(selected.id);
415
+ }
416
+ onChange?.(selected.id);
417
+ setIsPopoverOpen(false);
418
+ }
419
+ };
420
+ const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};
421
+ const toolbarSize = useToolbarSize();
422
+ const trackingId = useTrackingId({
423
+ name: "ToolbarSelect",
424
+ data: {
425
+ selected: props.selected,
426
+ disabled: props.disabled,
427
+ "aria-label": props["aria-label"],
428
+ items: props.items
429
+ },
430
+ hasOverride: !!props["data-tracking-id"]
431
+ });
432
+ const buttonClassNames = cx(className, styles["toolbar-button-item"]);
433
+ const item = /* @__PURE__ */ jsxs(
434
+ Popover,
435
+ {
436
+ noPadding: true,
437
+ open: isPopoverOpen,
438
+ onClickOutside: () => {
439
+ setIsPopoverOpen(false);
440
+ },
441
+ onClose: () => {
442
+ setIsPopoverOpen(false);
443
+ },
444
+ children: [
445
+ /* @__PURE__ */ jsx(
446
+ Popover.Button,
447
+ {
448
+ "data-tracking-id": trackingId,
449
+ appearance,
450
+ size: toolbarSize,
451
+ icon: { after: SvgArrowDropDown },
452
+ className: buttonClassNames,
453
+ id: selectId,
454
+ "data-anv": "toolbar-select",
455
+ onClick: () => {
456
+ setIsPopoverOpen(!isPopoverOpen);
457
+ },
458
+ ...rest,
459
+ children: selectedItem?.label
460
+ }
461
+ ),
462
+ /* @__PURE__ */ jsx(
463
+ Popover.Content,
464
+ {
465
+ className: styles["toolbar-select-content"],
466
+ "aria-label": accessibleLabel,
467
+ children: /* @__PURE__ */ jsx(
468
+ Listbox,
469
+ {
470
+ selected: selectedItem,
471
+ onSelectionChange: handleSelectionChange,
472
+ items,
473
+ "aria-labelledby": selectId,
474
+ disableAutoSelectOnFocus: true,
475
+ children: ({ items: items2 }) => items2.map((item2) => /* @__PURE__ */ jsx(Listbox.Option, { item: item2, children: item2.label }, item2.label))
476
+ }
477
+ )
478
+ }
479
+ )
480
+ ]
481
+ }
482
+ );
483
+ if (isInOverflowMenu) {
484
+ return item;
485
+ }
486
+ return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: "select" }, children: item });
487
+ }
488
+ );
489
+ ToolbarSelect.displayName = "ToolbarSelect";
490
+
491
+ const OverflowItem = ({ itemType, itemProps }) => {
492
+ switch (itemType) {
493
+ case "button":
494
+ return /* @__PURE__ */ jsx(ToolbarButton, { ...itemProps });
495
+ case "buttonToggle":
496
+ return /* @__PURE__ */ jsx(ToolbarButtonToggle, { ...itemProps });
497
+ case "buttonLink":
498
+ return /* @__PURE__ */ jsx(ToolbarButtonLink, { ...itemProps });
499
+ case "select":
500
+ return /* @__PURE__ */ jsx(ToolbarSelect, { ...itemProps });
501
+ default:
502
+ return null;
503
+ }
504
+ };
505
+ const ToolbarOverflowMenu = ({
506
+ additionalItems,
507
+ direction
508
+ }) => {
509
+ const { overflowItems, orderedIds } = useContext(ToolbarContext);
510
+ const menuTriggerId = useId();
511
+ const size = useToolbarSize();
512
+ const orderedItems = useMemo(() => {
513
+ const allElements = orderedIds?.map((id) => {
514
+ return overflowItems.find((item) => item.id === id);
515
+ });
516
+ return allElements?.filter((item) => item !== void 0) || [];
517
+ }, [orderedIds, overflowItems]);
518
+ const popoverButtonClassNames = cx(
519
+ styles["toolbar-button-item"],
520
+ styles["toolbar-overflow-trigger"]
521
+ );
522
+ const overflowIcon = direction === "horizontal" ? SvgMoreHoriz : SvgMoreVert;
523
+ return /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [
524
+ /* @__PURE__ */ jsx(
525
+ Popover.Button,
526
+ {
527
+ size,
528
+ appearance: "ghost",
529
+ id: menuTriggerId,
530
+ className: popoverButtonClassNames,
531
+ "data-anv": "toolbar-overflow-trigger",
532
+ "aria-label": "Additional toolbar options",
533
+ icon: overflowIcon
534
+ }
535
+ ),
536
+ /* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsx(OverflowItemContext.Provider, { value: { isInOverflowMenu: true }, children: /* @__PURE__ */ jsxs(
537
+ "ul",
538
+ {
539
+ role: "menu",
540
+ className: styles["toolbar-overflow-content"],
541
+ "data-anv": "toolbar-overflow-menu",
542
+ "aria-labelledby": menuTriggerId,
543
+ onKeyDown: handleMenuKeyboardNavigation,
544
+ children: [
545
+ orderedItems.map((item) => {
546
+ const { itemType, itemProps, id } = item;
547
+ return /* @__PURE__ */ jsx(
548
+ "li",
549
+ {
550
+ role: "menuitem",
551
+ "data-anv": "toolbar-overflow-item",
552
+ children: /* @__PURE__ */ jsx(
553
+ OverflowItem,
554
+ {
555
+ itemType,
556
+ itemProps,
557
+ id
558
+ }
559
+ )
560
+ },
561
+ `${itemType}-${id}`
562
+ );
563
+ }),
564
+ additionalItems?.map((item, index) => /* @__PURE__ */ jsx(
565
+ "li",
566
+ {
567
+ role: "menuitem",
568
+ "data-anv": "toolbar-overflow-item",
569
+ children: item
570
+ },
571
+ `additional-item-${index}`
572
+ ))
573
+ ]
574
+ }
575
+ ) }) })
576
+ ] });
577
+ };
578
+
579
+ const Toolbar = Object.assign(
580
+ forwardRef(function ToolbarInner(props, ref) {
581
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
582
+ const {
583
+ associatedContent,
584
+ className,
585
+ children,
586
+ style,
587
+ direction = "horizontal",
588
+ overflow = "wrap",
589
+ onKeyDown,
590
+ additionalItems,
591
+ size = "xsmall",
592
+ ...rest
593
+ } = componentProps;
594
+ const [overflowItems, setOverflowItems] = useState([]);
595
+ const toolbarItemsRef = useRef(null);
596
+ const toolbarRef = useRef(null);
597
+ const [orderedIds, setOrderedIds] = useState([]);
598
+ useEffect(() => {
599
+ const newOrderedIds = Array.from(
600
+ toolbarItemsRef.current?.querySelectorAll("[data-id]") || []
601
+ ).map((el) => {
602
+ return el.getAttribute("data-id");
603
+ });
604
+ setOrderedIds(newOrderedIds);
605
+ }, [children]);
606
+ const addItem = useCallback((item) => {
607
+ setOverflowItems((prev) => [...prev, item]);
608
+ }, []);
609
+ const removeItem = useCallback((item) => {
610
+ setOverflowItems(
611
+ (prev) => prev.filter((component) => component.id !== item.id)
612
+ );
613
+ }, []);
614
+ useEffect(() => {
615
+ if (toolbarRef.current) {
616
+ updateToolbarItemsTabIndex(toolbarRef.current);
617
+ }
618
+ }, [children]);
619
+ const handleKeyDown = useCallback(
620
+ (event) => {
621
+ if (toolbarRef.current) {
622
+ handleToolbarKeyDown(event, toolbarRef.current);
623
+ }
624
+ onKeyDown?.(event);
625
+ },
626
+ [onKeyDown]
627
+ );
628
+ const showOverflowMenu = overflow === "collapse" && overflowItems.length > 0 || !!additionalItems;
629
+ const value = useMemo(
630
+ () => ({
631
+ overflowItems,
632
+ addItem,
633
+ removeItem,
634
+ toolbarRef,
635
+ orderedIds,
636
+ overflow,
637
+ size
638
+ }),
639
+ [
640
+ overflowItems,
641
+ addItem,
642
+ removeItem,
643
+ toolbarRef,
644
+ orderedIds,
645
+ overflow,
646
+ size
647
+ ]
648
+ );
649
+ const styleCombined = {
650
+ ...style,
651
+ ...layoutStyles
652
+ };
653
+ const toolbarClassNames = cx(styles["toolbar"], className);
654
+ const toolbarContentClassNames = cx(styles["toolbar-content"], {
655
+ [styles[`overflow-${overflow}`]]: overflow
656
+ });
657
+ return /* @__PURE__ */ jsx(ToolbarContext.Provider, { value, children: /* @__PURE__ */ jsxs(
658
+ Flex,
659
+ {
660
+ direction: direction === "horizontal" ? "row" : "column",
661
+ wrap: overflow === "wrap" ? "wrap" : "nowrap",
662
+ alignItems: "center",
663
+ className: toolbarClassNames,
664
+ style: styleCombined,
665
+ ref: useMergeRefs([toolbarRef, ref]),
666
+ role: "toolbar",
667
+ "data-anv": "toolbar",
668
+ "aria-orientation": direction,
669
+ "aria-label": `Toolbar for ${associatedContent}. Use arrow keys to navigate through toolbar controls.`,
670
+ onKeyDown: handleKeyDown,
671
+ ...rest,
672
+ children: [
673
+ /* @__PURE__ */ jsx(
674
+ Flex,
675
+ {
676
+ ref: useMergeRefs([toolbarItemsRef, ref]),
677
+ className: toolbarContentClassNames,
678
+ direction: direction === "horizontal" ? "row" : "column",
679
+ wrap: overflow === "wrap" ? "wrap" : "nowrap",
680
+ alignItems: "center",
681
+ grow: 1,
682
+ "data-anv": "toolbar-content",
683
+ children
684
+ }
685
+ ),
686
+ showOverflowMenu && /* @__PURE__ */ jsx(
687
+ ToolbarOverflowMenu,
688
+ {
689
+ direction,
690
+ additionalItems
691
+ }
692
+ )
693
+ ]
694
+ }
695
+ ) });
696
+ }),
697
+ {
698
+ /**
699
+ * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.
700
+ *
701
+ * Features:
702
+ * - Designed specifically for toolbar integration
703
+ * - Consistent styling with other toolbar items
704
+ * - Automatic tooltip for icon-only buttons
705
+ * - Overflow menu support
706
+ * - Accessibility enforcement for aria-labels
707
+ * - Ghost and primary appearance options
708
+ * - Automatic tracking ID generation for analytics
709
+ *
710
+ * @example
711
+ * <Toolbar.Button icon={BoldIcon} aria-label="Bold text" />
712
+ *
713
+ * @example
714
+ * <Toolbar.Button appearance="primary">
715
+ * Save
716
+ * </Toolbar.Button>
717
+ */
718
+ Button: ToolbarButton,
719
+ /**
720
+ * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.
721
+ *
722
+ * Features:
723
+ * - Toggle state management
724
+ * - Designed specifically for toolbar integration
725
+ * - Consistent styling with other toolbar items
726
+ * - Overflow menu support
727
+ * - Accessibility enforcement for aria-labels
728
+ * - Ghost and primary appearance options
729
+ * - Automatic tracking ID generation for analytics
730
+ *
731
+ * @example
732
+ * <Toolbar.ButtonToggle icon={BoldIcon} aria-label="Bold" checked={isBold} />
733
+ */
734
+ ButtonToggle: ToolbarButtonToggle,
735
+ /**
736
+ * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.
737
+ *
738
+ * Features:
739
+ * - Link functionality with href support
740
+ * - Designed specifically for toolbar integration
741
+ * - Consistent styling with other toolbar items
742
+ * - Overflow menu support
743
+ * - Accessibility enforcement for aria-labels
744
+ * - Ghost and primary appearance options
745
+ * - Automatic tracking ID generation for analytics
746
+ *
747
+ * @example
748
+ * <Toolbar.ButtonLink href="/help">
749
+ * Help
750
+ * </Toolbar.ButtonLink>
751
+ */
752
+ ButtonLink: ToolbarButtonLink,
753
+ /**
754
+ * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.
755
+ *
756
+ * Features:
757
+ * - Dropdown menu with selectable options
758
+ * - Controlled and uncontrolled usage patterns
759
+ * - Automatic overflow menu integration
760
+ * - Accessibility support with proper ARIA labels
761
+ * - Ghost and primary appearance options
762
+ * - Dropdown arrow icon indicator
763
+ * - Listbox integration for keyboard navigation
764
+ * - Automatic tracking ID generation for analytics
765
+ *
766
+ * @example
767
+ * <Toolbar.Select
768
+ * items={fontOptions}
769
+ * selected="arial"
770
+ * accessibleLabel="Font family"
771
+ * onChange={(id) => setFont(id)}
772
+ * />
773
+ */
774
+ Select: ToolbarSelect
775
+ }
776
+ );
777
+ Toolbar.displayName = "Toolbar";
778
+
779
+ export { Toolbar as T };
780
+ //# sourceMappingURL=Toolbar-QYRQv45Y.js.map