@servicetitan/anvil2 3.0.6 → 3.0.8

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 (361) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/{AiMark-BXL0sWIV.js → AiMark-CS6MvraM.js} +5 -4
  3. package/dist/{AiMark-BXL0sWIV.js.map → AiMark-CS6MvraM.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-BNH0UD2s.js → Alert-CNDLoh6b.js} +2 -2
  6. package/dist/{Alert-BNH0UD2s.js.map → Alert-CNDLoh6b.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-J9DjoJiB.js → AnvilProvider-BFK29dL5.js} +3 -2
  9. package/dist/{AnvilProvider-J9DjoJiB.js.map → AnvilProvider-BFK29dL5.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Avatar-FDHyqiCy.js → Avatar-Bl-Dxbhf.js} +7 -2
  12. package/dist/Avatar-Bl-Dxbhf.js.map +1 -0
  13. package/dist/{Avatar-B_cRQqKR.js → Avatar-CdAIJ5VK.js} +2 -2
  14. package/dist/{Avatar-B_cRQqKR.js.map → Avatar-CdAIJ5VK.js.map} +1 -1
  15. package/dist/Avatar.js +2 -2
  16. package/dist/{Breadcrumbs-Bzxbdu-S.js → Breadcrumbs--Xt6l_2L.js} +2 -2
  17. package/dist/{Breadcrumbs-Bzxbdu-S.js.map → Breadcrumbs--Xt6l_2L.js.map} +1 -1
  18. package/dist/Breadcrumbs.js +1 -1
  19. package/dist/{Calendar-DS5eWpGF.js → Calendar-5mAxtdNh.js} +2 -2
  20. package/dist/{Calendar-DS5eWpGF.js.map → Calendar-5mAxtdNh.js.map} +1 -1
  21. package/dist/{Calendar-BYNFAWpZ.js → Calendar-rITorBvD.js} +5 -3
  22. package/dist/{Calendar-BYNFAWpZ.js.map → Calendar-rITorBvD.js.map} +1 -1
  23. package/dist/Calendar.js +2 -2
  24. package/dist/{Checkbox-BeIzx_ZX.js → Checkbox-BYWhkYoK.js} +2 -2
  25. package/dist/{Checkbox-BeIzx_ZX.js.map → Checkbox-BYWhkYoK.js.map} +1 -1
  26. package/dist/{Checkbox-BB3BDJsK.js → Checkbox-DTzoDcJl.js} +3 -3
  27. package/dist/{Checkbox-BB3BDJsK.js.map → Checkbox-DTzoDcJl.js.map} +1 -1
  28. package/dist/Checkbox.js +1 -1
  29. package/dist/{Chip-D2k5X_wX.js → Chip-CyMNyEPR.js} +3 -3
  30. package/dist/{Chip-D2k5X_wX.js.map → Chip-CyMNyEPR.js.map} +1 -1
  31. package/dist/Chip.js +1 -1
  32. package/dist/Combobox.js +1 -2
  33. package/dist/Combobox.js.map +1 -1
  34. package/dist/{DataTable-0kOuVgSB.js → DataTable-Dwhwvm6R.js} +205 -78
  35. package/dist/DataTable-Dwhwvm6R.js.map +1 -0
  36. package/dist/DataTable.css +47 -5
  37. package/dist/{DateFieldRange-Be_I9GTp.js → DateFieldRange-BUug1tUy.js} +27 -15
  38. package/dist/DateFieldRange-BUug1tUy.js.map +1 -0
  39. package/dist/DateFieldRange.js +1 -1
  40. package/dist/{DateFieldSingle-CsrsY9i8.js → DateFieldSingle-DR7faQGD.js} +5 -5
  41. package/dist/{DateFieldSingle-CsrsY9i8.js.map → DateFieldSingle-DR7faQGD.js.map} +1 -1
  42. package/dist/DateFieldSingle.js +1 -1
  43. package/dist/{DateFieldYearless-m_Hl2gMY.js → DateFieldYearless-7MFcR7L6.js} +4 -4
  44. package/dist/{DateFieldYearless-m_Hl2gMY.js.map → DateFieldYearless-7MFcR7L6.js.map} +1 -1
  45. package/dist/DateFieldYearless.js +1 -1
  46. package/dist/{DateFieldYearlessRange-DNqSTBDr.js → DateFieldYearlessRange-DGtdyISH.js} +3 -3
  47. package/dist/{DateFieldYearlessRange-DNqSTBDr.js.map → DateFieldYearlessRange-DGtdyISH.js.map} +1 -1
  48. package/dist/DateFieldYearlessRange.js +1 -1
  49. package/dist/{DaysOfTheWeek-D58z_eF3.js → DaysOfTheWeek-C7oN9nIe.js} +3 -3
  50. package/dist/{DaysOfTheWeek-D58z_eF3.js.map → DaysOfTheWeek-C7oN9nIe.js.map} +1 -1
  51. package/dist/DaysOfTheWeek.js +1 -1
  52. package/dist/{Dialog-CD-SDfPT.js → Dialog-dE9c90iR.js} +4 -4
  53. package/dist/{Dialog-CD-SDfPT.js.map → Dialog-dE9c90iR.js.map} +1 -1
  54. package/dist/Dialog.js +1 -1
  55. package/dist/{Drawer-s2y0xcgV.js → Drawer-Dk0MsaOU.js} +3 -3
  56. package/dist/{Drawer-s2y0xcgV.js.map → Drawer-Dk0MsaOU.js.map} +1 -1
  57. package/dist/Drawer.js +1 -1
  58. package/dist/DrillDown.js +1 -1
  59. package/dist/{EditCard-B25pj0Jx.js → EditCard-DV2N7zWr.js} +2 -2
  60. package/dist/{EditCard-B25pj0Jx.js.map → EditCard-DV2N7zWr.js.map} +1 -1
  61. package/dist/EditCard.js +1 -1
  62. package/dist/{FieldLabel-D1qPAGtB.js → FieldLabel-VVn8GR64.js} +3 -3
  63. package/dist/{FieldLabel-D1qPAGtB.js.map → FieldLabel-VVn8GR64.js.map} +1 -1
  64. package/dist/FieldLabel.js +1 -1
  65. package/dist/FilterBar-CXGsoWw5.js +413 -0
  66. package/dist/FilterBar-CXGsoWw5.js.map +1 -0
  67. package/dist/FilterBar.js +1 -1
  68. package/dist/{InputMask-BDl09V4u.js → InputMask-VBHWGZGN.js} +3 -3
  69. package/dist/{InputMask-BDl09V4u.js.map → InputMask-VBHWGZGN.js.map} +1 -1
  70. package/dist/InputMask.js +1 -1
  71. package/dist/{ListView-CcRRh1ap.js → ListView-BUrfz75g.js} +6 -6
  72. package/dist/{ListView-CcRRh1ap.js.map → ListView-BUrfz75g.js.map} +1 -1
  73. package/dist/ListView.js +1 -1
  74. package/dist/{ListView.module-CKUQP3kf.js → ListView.module-DfqtCL3Q.js} +3 -3
  75. package/dist/ListView.module-DfqtCL3Q.js.map +1 -0
  76. package/dist/{Listbox-CvQHBFWb.js → Listbox-CRY-0BkS.js} +2 -2
  77. package/dist/{Listbox-CvQHBFWb.js.map → Listbox-CRY-0BkS.js.map} +1 -1
  78. package/dist/Listbox.js +1 -1
  79. package/dist/{Menu-W0c-xKdX.js → Menu-DNJ0YqjA.js} +11 -7
  80. package/dist/Menu-DNJ0YqjA.js.map +1 -0
  81. package/dist/Menu.js +1 -1
  82. package/dist/MenuFooter-CrsZdXvN.js +115 -0
  83. package/dist/MenuFooter-CrsZdXvN.js.map +1 -0
  84. package/dist/MenuFooter.css +28 -0
  85. package/dist/MultiSelectField.js +1 -1
  86. package/dist/{MultiSelectFieldSync-BMVROOjy.js → MultiSelectFieldSync-CIuy3aRD.js} +64 -79
  87. package/dist/MultiSelectFieldSync-CIuy3aRD.js.map +1 -0
  88. package/dist/MultiSelectFieldSync.css +72 -69
  89. package/dist/MultiSelectMenu.js +1 -1
  90. package/dist/{MultiSelectMenuSync-BNPp_2Bm.js → MultiSelectMenuSync-Drz8SEk9.js} +150 -46
  91. package/dist/MultiSelectMenuSync-Drz8SEk9.js.map +1 -0
  92. package/dist/{NumberField-BymFZhIJ.js → NumberField-bgYX7JGs.js} +3 -3
  93. package/dist/{NumberField-BymFZhIJ.js.map → NumberField-bgYX7JGs.js.map} +1 -1
  94. package/dist/NumberField.js +1 -1
  95. package/dist/{Page-SBy27-Wv.js → Page-BSHydn4p.js} +9 -9
  96. package/dist/{Page-SBy27-Wv.js.map → Page-BSHydn4p.js.map} +1 -1
  97. package/dist/Page.js +1 -1
  98. package/dist/{Pagination-Cm8-K6VH.js → Pagination-CAeyJ7Pl.js} +193 -27
  99. package/dist/Pagination-CAeyJ7Pl.js.map +1 -0
  100. package/dist/Pagination.css +4 -2
  101. package/dist/Pagination.js +1 -1
  102. package/dist/{Popover-8mTJoMy7.js → Popover-Cq5tirFz.js} +11 -5
  103. package/dist/Popover-Cq5tirFz.js.map +1 -0
  104. package/dist/Popover.js +1 -1
  105. package/dist/{ProgressBar-C1CkQHV5.js → ProgressBar-ByR50ln7.js} +2 -2
  106. package/dist/{ProgressBar-C1CkQHV5.js.map → ProgressBar-ByR50ln7.js.map} +1 -1
  107. package/dist/ProgressBar.js +1 -1
  108. package/dist/{Radio-BcHMk8dD.js → Radio-CPuctRpl.js} +2 -2
  109. package/dist/{Radio-BcHMk8dD.js.map → Radio-CPuctRpl.js.map} +1 -1
  110. package/dist/{Radio-D5WyQN2i.js → Radio-WlsZFRzX.js} +3 -3
  111. package/dist/{Radio-D5WyQN2i.js.map → Radio-WlsZFRzX.js.map} +1 -1
  112. package/dist/Radio.js +1 -1
  113. package/dist/{RichTextEditor-DstVbYch.js → RichTextEditor-CoPXdaWI.js} +78 -42
  114. package/dist/RichTextEditor-CoPXdaWI.js.map +1 -0
  115. package/dist/RichTextEditor.js +1 -1
  116. package/dist/SavedFiltersButton-DzJijqHz.js +651 -0
  117. package/dist/SavedFiltersButton-DzJijqHz.js.map +1 -0
  118. package/dist/SavedFiltersButton.css +8 -0
  119. package/dist/SavedFiltersButton.d.ts +1 -0
  120. package/dist/SavedFiltersButton.js +2 -0
  121. package/dist/SavedFiltersButton.js.map +1 -0
  122. package/dist/{SearchField-3tUPU8hH.js → SearchField-BMHJCVFu.js} +2 -2
  123. package/dist/{SearchField-3tUPU8hH.js.map → SearchField-BMHJCVFu.js.map} +1 -1
  124. package/dist/{SearchField-BcQZ5e0x.js → SearchField-fXc_vWEr.js} +2 -2
  125. package/dist/{SearchField-BcQZ5e0x.js.map → SearchField-fXc_vWEr.js.map} +1 -1
  126. package/dist/SearchField.js +1 -1
  127. package/dist/{SelectCard-BN-LI14f.js → SelectCard-DLWLHi_i.js} +3 -3
  128. package/dist/{SelectCard-BN-LI14f.js.map → SelectCard-DLWLHi_i.js.map} +1 -1
  129. package/dist/SelectCard.js +1 -1
  130. package/dist/SelectField.js +1 -1
  131. package/dist/{SelectFieldLabel-UbQT7fDD.js → SelectFieldLabel-vemffdmu.js} +2 -2
  132. package/dist/{SelectFieldLabel-UbQT7fDD.js.map → SelectFieldLabel-vemffdmu.js.map} +1 -1
  133. package/dist/{SelectFieldSync-BeDYbJ2M.js → SelectFieldSync-DlGiJ-Iy.js} +5 -4
  134. package/dist/{SelectFieldSync-BeDYbJ2M.js.map → SelectFieldSync-DlGiJ-Iy.js.map} +1 -1
  135. package/dist/SelectMenu.js +1 -1
  136. package/dist/{SelectMenuSync-C-PFemsQ.js → SelectMenuSync-CAweNjRL.js} +23 -9
  137. package/dist/SelectMenuSync-CAweNjRL.js.map +1 -0
  138. package/dist/{SelectOptions-Tr11Ckqw.js → SelectOptions-BGCap9fZ.js} +2 -2
  139. package/dist/{SelectOptions-Tr11Ckqw.js.map → SelectOptions-BGCap9fZ.js.map} +1 -1
  140. package/dist/{SelectTrigger-DTz7V-Xx.js → SelectTrigger-BbneVXMz.js} +3 -3
  141. package/dist/{SelectTrigger-DTz7V-Xx.js.map → SelectTrigger-BbneVXMz.js.map} +1 -1
  142. package/dist/SelectTrigger.js +1 -1
  143. package/dist/{SelectTriggerBase-Ds6I7Qbr.js → SelectTriggerBase-BjIOERXr.js} +136 -40
  144. package/dist/SelectTriggerBase-BjIOERXr.js.map +1 -0
  145. package/dist/{Switch-onmiKoRd.js → Switch-B6bKmpwN.js} +3 -3
  146. package/dist/{Switch-onmiKoRd.js.map → Switch-B6bKmpwN.js.map} +1 -1
  147. package/dist/Switch.js +1 -1
  148. package/dist/Table.js +1 -1
  149. package/dist/{Text-BTzgTpqu.js → Text-w2gWn4K6.js} +2 -2
  150. package/dist/{Text-BTzgTpqu.js.map → Text-w2gWn4K6.js.map} +1 -1
  151. package/dist/Text.js +1 -1
  152. package/dist/{TextField-WTYZJlX3.js → TextField-BQsCh5Nb.js} +2 -2
  153. package/dist/{TextField-WTYZJlX3.js.map → TextField-BQsCh5Nb.js.map} +1 -1
  154. package/dist/{TextField-rVfctM1E.js → TextField-DJ3gEIP6.js} +3 -3
  155. package/dist/{TextField-rVfctM1E.js.map → TextField-DJ3gEIP6.js.map} +1 -1
  156. package/dist/TextField.js +1 -1
  157. package/dist/{Textarea-PXjppEQ6.js → Textarea-BK4Vf84K.js} +3 -3
  158. package/dist/{Textarea-PXjppEQ6.js.map → Textarea-BK4Vf84K.js.map} +1 -1
  159. package/dist/Textarea.js +1 -1
  160. package/dist/{ThemeProvider-D4KdGCaP.js → ThemeProvider-BC6wbuLU.js} +4 -9
  161. package/dist/{ThemeProvider-D4KdGCaP.js.map → ThemeProvider-BC6wbuLU.js.map} +1 -1
  162. package/dist/ThemeProvider.js +1 -1
  163. package/dist/ThemeProvider.module-D9pNGYjP.js +8 -0
  164. package/dist/ThemeProvider.module-D9pNGYjP.js.map +1 -0
  165. package/dist/{TimeField-BJPXIv6W.js → TimeField-B4IW2B_o.js} +4 -4
  166. package/dist/{TimeField-BJPXIv6W.js.map → TimeField-B4IW2B_o.js.map} +1 -1
  167. package/dist/TimeField.js +1 -1
  168. package/dist/Toast.js +2 -2
  169. package/dist/{Toaster-CoChsMD0.js → Toaster-BGY2IzF5.js} +53 -48
  170. package/dist/Toaster-BGY2IzF5.js.map +1 -0
  171. package/dist/{Toaster-DXLc86VD.js → Toaster-DTF9qnTy.js} +2 -2
  172. package/dist/{Toaster-DXLc86VD.js.map → Toaster-DTF9qnTy.js.map} +1 -1
  173. package/dist/{Toolbar-Bt3kShho.js → Toolbar-DObrJ_S5.js} +5 -4
  174. package/dist/{Toolbar-Bt3kShho.js.map → Toolbar-DObrJ_S5.js.map} +1 -1
  175. package/dist/{Toolbar-BUd9eNkq.js → Toolbar-DRJGKk8D.js} +7 -6
  176. package/dist/{Toolbar-BUd9eNkq.js.map → Toolbar-DRJGKk8D.js.map} +1 -1
  177. package/dist/Toolbar.js +2 -2
  178. package/dist/{ToolbarButtonToggle-C06cqJ6F.js → ToolbarButtonToggle-BCKgA8FE.js} +5 -4
  179. package/dist/ToolbarButtonToggle-BCKgA8FE.js.map +1 -0
  180. package/dist/{Tooltip-yr1D06BE.js → Tooltip-DqS6xDUf.js} +27 -25
  181. package/dist/Tooltip-DqS6xDUf.js.map +1 -0
  182. package/dist/Tooltip.js +1 -1
  183. package/dist/TreeSelectField.d.ts +1 -0
  184. package/dist/TreeSelectField.js +2 -0
  185. package/dist/TreeSelectField.js.map +1 -0
  186. package/dist/TreeSelectFieldSync-Do5ffU0b.js +609 -0
  187. package/dist/TreeSelectFieldSync-Do5ffU0b.js.map +1 -0
  188. package/dist/TreeSelectFieldSync.css +173 -0
  189. package/dist/TreeSelectMenu.d.ts +1 -0
  190. package/dist/TreeSelectMenu.js +2 -0
  191. package/dist/TreeSelectMenu.js.map +1 -0
  192. package/dist/TreeSelectMenuSync-s05Ly6lj.js +413 -0
  193. package/dist/TreeSelectMenuSync-s05Ly6lj.js.map +1 -0
  194. package/dist/{YearlessDateInputWithPicker-BIcVgz-J.js → YearlessDateInputWithPicker-BHfFjCqE.js} +2 -2
  195. package/dist/{YearlessDateInputWithPicker-BIcVgz-J.js.map → YearlessDateInputWithPicker-BHfFjCqE.js.map} +1 -1
  196. package/dist/beta.js +15 -12
  197. package/dist/beta.js.map +1 -1
  198. package/dist/confirmationTypes-CG7xl50f.js +75 -0
  199. package/dist/confirmationTypes-CG7xl50f.js.map +1 -0
  200. package/dist/filter-state-DyMDjdRS.js +1867 -0
  201. package/dist/filter-state-DyMDjdRS.js.map +1 -0
  202. package/dist/{FilterBar.css → filter-state.css} +19 -33
  203. package/dist/{floating-ui.react-dom-CHrYz13o.js → floating-ui.react-dom-BIKT960u.js} +2 -2
  204. package/dist/{floating-ui.react-dom-CHrYz13o.js.map → floating-ui.react-dom-BIKT960u.js.map} +1 -1
  205. package/dist/{index-DVYRUKtW.js → index-fSKD4ey4.js} +79 -109
  206. package/dist/{index-DVYRUKtW.js.map → index-fSKD4ey4.js.map} +1 -1
  207. package/dist/index.js +43 -44
  208. package/dist/index.js.map +1 -1
  209. package/dist/keyboard_arrow_left-CiE1n99w.js +6 -0
  210. package/dist/keyboard_arrow_left-CiE1n99w.js.map +1 -0
  211. package/dist/keyboard_arrow_right-DMloHg_F.js +6 -0
  212. package/dist/keyboard_arrow_right-DMloHg_F.js.map +1 -0
  213. package/dist/portalScopeClassNames-jlZkdug_.js +7 -0
  214. package/dist/portalScopeClassNames-jlZkdug_.js.map +1 -0
  215. package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -10
  216. package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +15 -5
  217. package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +34 -29
  218. package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +31 -22
  219. package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -1
  220. package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +4 -12
  221. package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +29 -0
  222. package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +86 -0
  223. package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +29 -0
  224. package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +2 -2
  225. package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +50 -0
  226. package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
  227. package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +5 -9
  228. package/dist/src/beta/components/FilterBar/internal/adapters/asyncMultiSelect.d.ts +6 -0
  229. package/dist/src/beta/components/FilterBar/internal/adapters/asyncSelect.d.ts +6 -0
  230. package/dist/src/beta/components/FilterBar/internal/adapters/asyncTree.d.ts +6 -0
  231. package/dist/src/beta/components/FilterBar/internal/adapters/boolean.d.ts +3 -0
  232. package/dist/src/beta/components/FilterBar/internal/adapters/custom.d.ts +3 -0
  233. package/dist/src/beta/components/FilterBar/internal/adapters/date.d.ts +5 -0
  234. package/dist/src/beta/components/FilterBar/internal/adapters/dateList.d.ts +5 -0
  235. package/dist/src/beta/components/FilterBar/internal/adapters/dateRange.d.ts +8 -0
  236. package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +15 -0
  237. package/dist/src/beta/components/FilterBar/internal/adapters/multiSelect.d.ts +6 -0
  238. package/dist/src/beta/components/FilterBar/internal/adapters/numericRange.d.ts +3 -0
  239. package/dist/src/beta/components/FilterBar/internal/adapters/singleSelect.d.ts +6 -0
  240. package/dist/src/beta/components/FilterBar/internal/adapters/textInput.d.ts +3 -0
  241. package/dist/src/beta/components/FilterBar/internal/adapters/tree.d.ts +6 -0
  242. package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +81 -0
  243. package/dist/src/beta/components/FilterBar/internal/types.d.ts +223 -61
  244. package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +2 -2
  245. package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +2 -40
  246. package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +16 -28
  247. package/dist/src/beta/components/FilterBar/internal/utils/value-compare.d.ts +14 -0
  248. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  249. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  250. package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +4 -2
  251. package/dist/src/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +7 -5
  252. package/dist/src/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +5 -2
  253. package/dist/src/beta/components/MultiSelectField/types.d.ts +21 -36
  254. package/dist/src/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -0
  255. package/dist/src/beta/components/MultiSelectMenu/types.d.ts +52 -12
  256. package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +40 -0
  257. package/dist/src/beta/components/SavedFiltersButton/index.d.ts +2 -0
  258. package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +27 -0
  259. package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +38 -0
  260. package/dist/src/beta/components/SavedFiltersButton/types.d.ts +147 -0
  261. package/dist/src/beta/components/SelectField/types.d.ts +7 -11
  262. package/dist/src/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +8 -1
  263. package/dist/src/beta/components/SelectMenu/types.d.ts +21 -1
  264. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +4 -6
  265. package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +6 -1
  266. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +6 -0
  267. package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -11
  268. package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +0 -2
  269. package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +1 -0
  270. package/dist/src/beta/components/Table/DataTable/types.d.ts +43 -10
  271. package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +3 -2
  272. package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +68 -0
  273. package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +64 -0
  274. package/dist/src/beta/components/TreeSelectField/index.d.ts +3 -0
  275. package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +31 -0
  276. package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +56 -0
  277. package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +56 -0
  278. package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +82 -0
  279. package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +57 -0
  280. package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +33 -0
  281. package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +25 -0
  282. package/dist/src/beta/components/TreeSelectField/internal/types.d.ts +12 -0
  283. package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +99 -0
  284. package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +93 -0
  285. package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +42 -0
  286. package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +56 -0
  287. package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +58 -0
  288. package/dist/src/beta/components/TreeSelectField/stories/TreeSelectField.stories.data.d.ts +21 -0
  289. package/dist/src/beta/components/TreeSelectField/types.d.ts +124 -0
  290. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +29 -0
  291. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +65 -0
  292. package/dist/src/beta/components/TreeSelectMenu/index.d.ts +4 -0
  293. package/dist/src/beta/components/TreeSelectMenu/types.d.ts +103 -0
  294. package/dist/src/beta/components/index.d.ts +3 -0
  295. package/dist/src/components/Pagination/internal/Pagination.d.ts +1 -0
  296. package/dist/src/components/Pagination/internal/PaginationOverflowMenu.d.ts +12 -1
  297. package/dist/src/internal/components/MenuFooter/MenuFooter.d.ts +43 -0
  298. package/dist/src/internal/components/OptionCheckbox.d.ts +6 -0
  299. package/dist/src/internal/components/OptionContentArea.d.ts +8 -0
  300. package/dist/src/internal/components/OptionRow.d.ts +10 -0
  301. package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +4 -4
  302. package/dist/src/internal/functions/portalScopeClassNames.d.ts +14 -0
  303. package/dist/src/internal/hooks/index.d.ts +2 -0
  304. package/dist/src/internal/hooks/useBulkActionRunner.d.ts +41 -0
  305. package/dist/src/internal/hooks/useConfirmationDraft.d.ts +21 -0
  306. package/dist/src/internal/types/bulkActionTypes.d.ts +39 -0
  307. package/dist/src/internal/types/confirmationTypes.d.ts +19 -0
  308. package/dist/src/internal/types/optionContent.d.ts +19 -0
  309. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -0
  310. package/dist/src/internal/utils/arrayIdsEqual.d.ts +10 -0
  311. package/dist/src/internal/utils/index.d.ts +1 -0
  312. package/dist/{stripInlineMarkdown-C5DNxxwf.js → stripInlineMarkdown-C0bVmYgG.js} +2 -2
  313. package/dist/{stripInlineMarkdown-C5DNxxwf.js.map → stripInlineMarkdown-C0bVmYgG.js.map} +1 -1
  314. package/dist/{syncFilterUtils-COxBIkt6.js → syncFilterUtils-DZqeVWTS.js} +49 -385
  315. package/dist/syncFilterUtils-DZqeVWTS.js.map +1 -0
  316. package/dist/syncFilterUtils.css +21 -164
  317. package/dist/treeSync-Cz3H08cr.js +1453 -0
  318. package/dist/treeSync-Cz3H08cr.js.map +1 -0
  319. package/dist/treeSync.css +40 -0
  320. package/dist/useAdaptiveView-CeYKH0Me.js +386 -0
  321. package/dist/useAdaptiveView-CeYKH0Me.js.map +1 -0
  322. package/dist/useAdaptiveView.css +181 -0
  323. package/dist/useChipLayout-BWZfKDgd.js +51 -0
  324. package/dist/useChipLayout-BWZfKDgd.js.map +1 -0
  325. package/dist/{useDrilldown-KZ9rRsXQ.js → useDrilldown-BJ2dHHKV.js} +2 -2
  326. package/dist/{useDrilldown-KZ9rRsXQ.js.map → useDrilldown-BJ2dHHKV.js.map} +1 -1
  327. package/dist/{Combobox-Cp7M4-4r.js → useInfiniteCombobox-C6TDFfds.js} +206 -31
  328. package/dist/useInfiniteCombobox-C6TDFfds.js.map +1 -0
  329. package/dist/{useMenuInteraction-C4RU5Fdq.js → useMenuInteraction-NEJXUD4I.js} +5 -4
  330. package/dist/useMenuInteraction-NEJXUD4I.js.map +1 -0
  331. package/dist/{useToggleSelection-B5PnTuT2.js → useToggleSelection-Bn7h-gGD.js} +53 -4
  332. package/dist/useToggleSelection-Bn7h-gGD.js.map +1 -0
  333. package/package.json +3 -5
  334. package/dist/Avatar-FDHyqiCy.js.map +0 -1
  335. package/dist/Combobox-Cp7M4-4r.js.map +0 -1
  336. package/dist/DataTable-0kOuVgSB.js.map +0 -1
  337. package/dist/DateFieldRange-Be_I9GTp.js.map +0 -1
  338. package/dist/FilterBar-yysyZ-t1.js +0 -1797
  339. package/dist/FilterBar-yysyZ-t1.js.map +0 -1
  340. package/dist/ListView.module-CKUQP3kf.js.map +0 -1
  341. package/dist/Menu-W0c-xKdX.js.map +0 -1
  342. package/dist/MultiSelectFieldSync-BMVROOjy.js.map +0 -1
  343. package/dist/MultiSelectMenuSync-BNPp_2Bm.js.map +0 -1
  344. package/dist/Pagination-Cm8-K6VH.js.map +0 -1
  345. package/dist/Popover-8mTJoMy7.js.map +0 -1
  346. package/dist/RichTextEditor-DstVbYch.js.map +0 -1
  347. package/dist/SelectMenuSync-C-PFemsQ.js.map +0 -1
  348. package/dist/SelectTriggerBase-Ds6I7Qbr.js.map +0 -1
  349. package/dist/Toaster-CoChsMD0.js.map +0 -1
  350. package/dist/ToolbarButtonToggle-C06cqJ6F.js.map +0 -1
  351. package/dist/Tooltip-yr1D06BE.js.map +0 -1
  352. package/dist/keyboard_arrow_right-DZWNVytH.js +0 -8
  353. package/dist/keyboard_arrow_right-DZWNVytH.js.map +0 -1
  354. package/dist/src/beta/components/FilterBar/FilterButton.d.ts +0 -33
  355. package/dist/src/beta/components/FilterBar/FilterSelect.d.ts +0 -29
  356. package/dist/syncFilterUtils-COxBIkt6.js.map +0 -1
  357. package/dist/useInfiniteCombobox-WcRgC9p6.js +0 -179
  358. package/dist/useInfiniteCombobox-WcRgC9p6.js.map +0 -1
  359. package/dist/useMenuInteraction-C4RU5Fdq.js.map +0 -1
  360. package/dist/useToggleSelection-B5PnTuT2.js.map +0 -1
  361. /package/dist/{Combobox.css → useInfiniteCombobox.css} +0 -0
@@ -0,0 +1,386 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { c as cx } from './index-De1g9FRV.js';
3
+ import { I as Icon } from './Icon-feeG7gXA.js';
4
+ import { S as Spinner } from './Spinner-B7tTWcP6.js';
5
+ import { a as SvgCheckBoxOutlineBlank, S as SvgCheckBox } from './check_box-0U1tbEAd.js';
6
+ import { S as SvgIndeterminateCheckBox } from './indeterminate_check_box-jjLG4UY6.js';
7
+ import { F as Flex } from './Flex-_orhvoxS.js';
8
+ import { T as Text } from './Text-w2gWn4K6.js';
9
+ import { A as Avatar } from './Avatar-CdAIJ5VK.js';
10
+ import { C as Chip } from './Chip-CyMNyEPR.js';
11
+ import { forwardRef, useRef, useCallback, useEffect, useState } from 'react';
12
+ import { a as useOnClickOutside } from './useOnClickOutside-Zw5vzxSq.js';
13
+ import { p as portalScopeClassNames } from './portalScopeClassNames-jlZkdug_.js';
14
+ import { c as computePosition, o as offset, h as autoPlacement, g as size, a as autoUpdate } from './floating-ui.react-dom-BIKT960u.js';
15
+ import { D as DialogCancelButton } from './DialogCancelButton-DcidFC38.js';
16
+ import { S as SvgClose } from './close-DZj38AEh.js';
17
+ import { D as DialogContext } from './DialogContext-DBgtApl9.js';
18
+ import { t as tabbable } from './usePopoverTransitionStates-CDXCdyKa.js';
19
+ import { u as useDialogScrollLock } from './useDialogScrollLock-BW-aVboo.js';
20
+ import { u as useBreakpoint } from './useBreakpoint-CeaUyHxh.js';
21
+
22
+ import './useAdaptiveView.css';const checkbox = "_checkbox_1xh9p_1";
23
+ const checked = "_checked_1xh9p_9";
24
+ const unchecked = "_unchecked_1xh9p_13";
25
+ const indeterminate = "_indeterminate_1xh9p_17";
26
+ const loading = "_loading_1xh9p_21";
27
+ const styles$4 = {
28
+ checkbox: checkbox,
29
+ checked: checked,
30
+ unchecked: unchecked,
31
+ indeterminate: indeterminate,
32
+ loading: loading
33
+ };
34
+
35
+ const iconMap = {
36
+ checked: SvgCheckBox,
37
+ unchecked: SvgCheckBoxOutlineBlank,
38
+ indeterminate: SvgIndeterminateCheckBox
39
+ };
40
+ function OptionCheckbox({ checkState, className }) {
41
+ if (checkState === "loading") {
42
+ return /* @__PURE__ */ jsx("span", { className: cx(styles$4["loading"], className), children: /* @__PURE__ */ jsx(Spinner, { size: "small", "aria-hidden": "true" }) });
43
+ }
44
+ return /* @__PURE__ */ jsx(
45
+ Icon,
46
+ {
47
+ "aria-hidden": "true",
48
+ size: "large",
49
+ svg: iconMap[checkState],
50
+ className: cx(styles$4["checkbox"], styles$4[checkState], className)
51
+ }
52
+ );
53
+ }
54
+
55
+ const disabled = "_disabled_1tqi5_27";
56
+ const styles$3 = {
57
+ "option-row": "_option-row_1tqi5_2",
58
+ disabled: disabled,
59
+ "side-content": "_side-content_1tqi5_35"
60
+ };
61
+
62
+ const OptionRow = forwardRef(
63
+ function OptionRow2({ disabled, children, className, ...rest }, ref) {
64
+ const optionRowClass = cx(
65
+ styles$3["option-row"],
66
+ { [styles$3["disabled"]]: disabled },
67
+ className
68
+ );
69
+ return /* @__PURE__ */ jsx("div", { ref, ...rest, className: optionRowClass, children });
70
+ }
71
+ );
72
+ const OptionRowSideContent = forwardRef(function OptionRowSideContent2({ children, className, ...rest }, ref) {
73
+ const sideContentClass = cx(styles$3["side-content"], className);
74
+ return /* @__PURE__ */ jsx("div", { ref, ...rest, className: sideContentClass, children });
75
+ });
76
+
77
+ const title = "_title_te5wz_1";
78
+ const description = "_description_te5wz_10";
79
+ const styles$2 = {
80
+ title: title,
81
+ description: description,
82
+ "chips-row": "_chips-row_te5wz_21"
83
+ };
84
+
85
+ function OptionContentArea({
86
+ label,
87
+ content,
88
+ children
89
+ }) {
90
+ const hasAvatar = !!content?.avatar;
91
+ const hasChips = !!content?.chips?.length;
92
+ const hasIcon = !!content?.icon;
93
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
94
+ hasAvatar && /* @__PURE__ */ jsx(OptionRowSideContent, { "aria-hidden": "true", children: /* @__PURE__ */ jsx(Avatar, { size: "medium", ...content.avatar }) }),
95
+ /* @__PURE__ */ jsxs(Flex, { grow: 1, shrink: 1, direction: "column", justifyContent: "center", children: [
96
+ /* @__PURE__ */ jsx(Text, { size: "small", className: styles$2["title"], children: content?.title ?? label }),
97
+ content?.description && /* @__PURE__ */ jsx(Text, { size: "small", className: styles$2["description"], children: content.description }),
98
+ hasChips && /* @__PURE__ */ jsx(
99
+ Flex,
100
+ {
101
+ wrap: "wrap",
102
+ gap: "1",
103
+ className: styles$2["chips-row"],
104
+ role: "group",
105
+ "aria-label": "Tags",
106
+ children: content.chips.map((chip, i) => /* @__PURE__ */ jsx(Chip, { size: "small", ...chip }, `${chip.label}-${i}`))
107
+ }
108
+ ),
109
+ children
110
+ ] }),
111
+ hasIcon && /* @__PURE__ */ jsx(OptionRowSideContent, { children: /* @__PURE__ */ jsx(
112
+ Icon,
113
+ {
114
+ size: "large",
115
+ svg: content.icon.svg,
116
+ color: content.icon.color,
117
+ "aria-hidden": content.icon.label ? void 0 : "true",
118
+ "aria-label": content.icon.label
119
+ }
120
+ ) })
121
+ ] });
122
+ }
123
+
124
+ const styles$1 = {
125
+ "options-popover": "_options-popover_1gogz_2",
126
+ "options-popover-body": "_options-popover-body_1gogz_37",
127
+ "options-popover-footer": "_options-popover-footer_1gogz_46"
128
+ };
129
+
130
+ function resolveWidth(width, referenceWidth) {
131
+ if (width === "reference") return `${referenceWidth}px`;
132
+ if (typeof width === "number") return `${width}px`;
133
+ if (typeof width === "string") return width;
134
+ return void 0;
135
+ }
136
+ const OptionsPopover = (props) => {
137
+ const ref = useRef(null);
138
+ const { id, children, referenceElement, open, onClose, width, footer } = props;
139
+ const lastCloseRef = useRef(0);
140
+ const safeClose = useCallback(() => {
141
+ const now = Date.now();
142
+ if (now - lastCloseRef.current < 50) return;
143
+ lastCloseRef.current = now;
144
+ onClose();
145
+ }, [onClose]);
146
+ useOnClickOutside({
147
+ targets: [ref.current ?? void 0, referenceElement.current ?? void 0],
148
+ onClickOutside: safeClose,
149
+ disable: !open
150
+ });
151
+ useEffect(() => {
152
+ if (open) {
153
+ ref.current?.showPopover();
154
+ } else {
155
+ ref.current?.hidePopover();
156
+ }
157
+ }, [open]);
158
+ useEffect(() => {
159
+ if (!open) return;
160
+ const popoverEl = ref.current;
161
+ if (!popoverEl) return;
162
+ const handleFocusOut = (e) => {
163
+ const next = e.relatedTarget;
164
+ if (!next) {
165
+ safeClose();
166
+ return;
167
+ }
168
+ if (popoverEl.contains(next)) return;
169
+ const trigger = referenceElement.current;
170
+ if (trigger && trigger.contains(next)) return;
171
+ safeClose();
172
+ };
173
+ popoverEl.addEventListener("focusout", handleFocusOut);
174
+ return () => popoverEl.removeEventListener("focusout", handleFocusOut);
175
+ }, [open, safeClose, referenceElement]);
176
+ useEffect(() => {
177
+ if (!open) return;
178
+ const popoverEl = ref.current;
179
+ if (!popoverEl) return;
180
+ const handleKeyDown = (e) => {
181
+ if (e.key !== "Escape" || e.defaultPrevented) return;
182
+ e.preventDefault();
183
+ referenceElement.current?.focus();
184
+ safeClose();
185
+ };
186
+ popoverEl.addEventListener("keydown", handleKeyDown);
187
+ return () => popoverEl.removeEventListener("keydown", handleKeyDown);
188
+ }, [open, safeClose, referenceElement]);
189
+ const updatePosition = useCallback(async () => {
190
+ if (!ref.current || !referenceElement.current) return;
191
+ const position = await computePosition(
192
+ referenceElement.current,
193
+ ref.current,
194
+ {
195
+ placement: "bottom-start",
196
+ middleware: [
197
+ offset(8),
198
+ autoPlacement({
199
+ allowedPlacements: [
200
+ "bottom-start",
201
+ "bottom-end",
202
+ "top-start",
203
+ "top-end"
204
+ ],
205
+ padding: 8
206
+ }),
207
+ size({
208
+ padding: 8,
209
+ apply({ rects, elements, availableHeight, availableWidth }) {
210
+ const resolved = resolveWidth(width, rects.reference.width);
211
+ Object.assign(elements.floating.style, {
212
+ ...resolved != null && { width: resolved },
213
+ maxWidth: `${Math.max(0, availableWidth)}px`,
214
+ maxHeight: `${Math.max(0, availableHeight)}px`
215
+ });
216
+ }
217
+ })
218
+ ]
219
+ }
220
+ );
221
+ ref.current.style.left = `${position.x}px`;
222
+ ref.current.style.top = `${position.y}px`;
223
+ }, [ref, referenceElement, width]);
224
+ useEffect(() => {
225
+ if (!ref.current || !referenceElement.current || !open) return;
226
+ const cleanup = autoUpdate(
227
+ referenceElement.current,
228
+ ref.current,
229
+ updatePosition
230
+ );
231
+ return () => {
232
+ cleanup();
233
+ };
234
+ }, [referenceElement, ref, updatePosition, open]);
235
+ return /* @__PURE__ */ jsxs(
236
+ "div",
237
+ {
238
+ ref,
239
+ id,
240
+ className: cx(styles$1["options-popover"], portalScopeClassNames),
241
+ popover: "manual",
242
+ "data-anv": "popover-content",
243
+ children: [
244
+ /* @__PURE__ */ jsx("div", { className: styles$1["options-popover-body"], children }),
245
+ footer ? /* @__PURE__ */ jsx("div", { className: styles$1["options-popover-footer"], children: footer }) : null
246
+ ]
247
+ }
248
+ );
249
+ };
250
+
251
+ const header = "_header_1lxz8_41";
252
+ const field = "_field_1lxz8_2";
253
+ const content = "_content_1lxz8_54";
254
+ const footer = "_footer_1lxz8_60";
255
+ const styles = {
256
+ "field-dialog": "_field-dialog_1lxz8_2",
257
+ "field-dialog-visual-viewport-height": "_field-dialog-visual-viewport-height_1lxz8_21",
258
+ header: header,
259
+ field: field,
260
+ content: content,
261
+ footer: footer
262
+ };
263
+
264
+ const OptionsDialog = ({
265
+ id,
266
+ isOpen,
267
+ onClose,
268
+ field,
269
+ children,
270
+ title,
271
+ initialFocusResolver,
272
+ footer
273
+ }) => {
274
+ const elRef = useRef(null);
275
+ const visualViewportHeightRef = useRef(null);
276
+ useDialogScrollLock({
277
+ open: isOpen,
278
+ id,
279
+ enableScrollChaining: false,
280
+ elementRef: elRef
281
+ });
282
+ const computeFocus = useCallback(
283
+ (focusables) => {
284
+ if (initialFocusResolver) {
285
+ return initialFocusResolver(focusables);
286
+ }
287
+ return focusables.find(
288
+ (focusable) => focusable.dataset.anv !== "dialog-cancel-button"
289
+ ) || focusables[0];
290
+ },
291
+ [initialFocusResolver]
292
+ );
293
+ useEffect(() => {
294
+ if (isOpen) {
295
+ elRef.current?.showModal();
296
+ if (elRef.current) {
297
+ computeFocus(tabbable(elRef.current)).focus();
298
+ }
299
+ } else {
300
+ elRef.current?.close();
301
+ }
302
+ }, [isOpen]);
303
+ useEffect(() => {
304
+ if (isOpen) {
305
+ const handleResize = () => {
306
+ if (!visualViewportHeightRef.current) return;
307
+ visualViewportHeightRef.current.style.height = `${window.visualViewport?.height ?? 0}px`;
308
+ visualViewportHeightRef.current.style.maxHeight = `${window.visualViewport?.height ?? 0}px`;
309
+ };
310
+ window.visualViewport?.addEventListener("resize", handleResize);
311
+ return () => {
312
+ window.visualViewport?.removeEventListener("resize", handleResize);
313
+ };
314
+ }
315
+ }, [isOpen]);
316
+ return /* @__PURE__ */ jsx(
317
+ "dialog",
318
+ {
319
+ ref: elRef,
320
+ id,
321
+ "data-anv": "field-dialog",
322
+ className: styles["field-dialog"],
323
+ onKeyDown: (e) => {
324
+ if (e.code === "Escape") {
325
+ e.preventDefault();
326
+ onClose();
327
+ }
328
+ },
329
+ children: /* @__PURE__ */ jsxs(
330
+ "div",
331
+ {
332
+ className: styles["field-dialog-visual-viewport-height"],
333
+ ref: visualViewportHeightRef,
334
+ children: [
335
+ /* @__PURE__ */ jsxs(Flex, { direction: "row", className: styles["header"], children: [
336
+ /* @__PURE__ */ jsx(Text, { variant: "headline", el: "h1", children: title }),
337
+ /* @__PURE__ */ jsx("span", { className: styles["close-container"], children: /* @__PURE__ */ jsx(DialogContext.Provider, { value: { close: onClose }, children: /* @__PURE__ */ jsx(
338
+ DialogCancelButton,
339
+ {
340
+ className: styles["close-button"],
341
+ size: "small",
342
+ appearance: "ghost",
343
+ "aria-label": "Close dialog",
344
+ icon: SvgClose
345
+ }
346
+ ) }) })
347
+ ] }),
348
+ field ? /* @__PURE__ */ jsx(Flex, { direction: "column", className: styles["field"], children: field }) : null,
349
+ /* @__PURE__ */ jsx(Flex, { direction: "column", className: styles["content"], children }),
350
+ footer ? /* @__PURE__ */ jsx("div", { className: styles["footer"], children: footer }) : null
351
+ ]
352
+ }
353
+ )
354
+ }
355
+ );
356
+ };
357
+
358
+ function detectCoarsePointer() {
359
+ if (typeof window === "undefined" || !window.matchMedia) {
360
+ return false;
361
+ }
362
+ return window.matchMedia("(pointer: coarse)").matches;
363
+ }
364
+ function useAdaptiveView() {
365
+ const breakpoint = useBreakpoint();
366
+ const [hasCoarsePointer, setHasCoarsePointer] = useState(detectCoarsePointer);
367
+ useEffect(() => {
368
+ setHasCoarsePointer(detectCoarsePointer());
369
+ const mediaQuery = window.matchMedia("(pointer: coarse)");
370
+ const handleChange = (e) => {
371
+ setHasCoarsePointer(e.matches);
372
+ };
373
+ mediaQuery.addEventListener("change", handleChange);
374
+ return () => mediaQuery.removeEventListener("change", handleChange);
375
+ }, []);
376
+ const isSmallScreen = !breakpoint?.md;
377
+ const isMobile = isSmallScreen && hasCoarsePointer;
378
+ return {
379
+ view: isMobile ? "mobile" : "desktop",
380
+ isMobile,
381
+ isDesktop: !isMobile
382
+ };
383
+ }
384
+
385
+ export { OptionsDialog as O, OptionsPopover as a, OptionRow as b, OptionRowSideContent as c, OptionCheckbox as d, OptionContentArea as e, useAdaptiveView as u };
386
+ //# sourceMappingURL=useAdaptiveView-CeYKH0Me.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdaptiveView-CeYKH0Me.js","sources":["../src/internal/components/OptionCheckbox.tsx","../src/internal/components/OptionRow.tsx","../src/internal/components/OptionContentArea.tsx","../src/internal/components/OptionsPopover/OptionsPopover.tsx","../src/internal/components/OptionsDialog/OptionsDialog.tsx","../src/beta/hooks/useAdaptiveView/useAdaptiveView.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { Icon } from \"../../components/Icon\";\nimport { Spinner } from \"../../components/Spinner\";\nimport CheckboxOutline from \"@servicetitan/hammer-icon/mdi/round/check_box_outline_blank.svg\";\nimport CheckboxChecked from \"@servicetitan/hammer-icon/mdi/round/check_box.svg\";\nimport CheckboxIndeterminate from \"@servicetitan/hammer-icon/mdi/round/indeterminate_check_box.svg\";\nimport { CheckState } from \"../../types\";\nimport styles from \"./OptionCheckbox.module.scss\";\n\nexport type OptionCheckboxProps = {\n checkState: CheckState;\n className?: string;\n};\n\nconst iconMap = {\n checked: CheckboxChecked,\n unchecked: CheckboxOutline,\n indeterminate: CheckboxIndeterminate,\n} as const;\n\nexport function OptionCheckbox({ checkState, className }: OptionCheckboxProps) {\n if (checkState === \"loading\") {\n return (\n <span className={cx(styles[\"loading\"], className)}>\n <Spinner size=\"small\" aria-hidden=\"true\" />\n </span>\n );\n }\n\n return (\n <Icon\n aria-hidden=\"true\"\n size=\"large\"\n svg={iconMap[checkState]}\n className={cx(styles[\"checkbox\"], styles[checkState], className)}\n />\n );\n}\n","import { ComponentPropsWithoutRef, forwardRef, ReactNode } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./OptionRow.module.scss\";\n\nexport type OptionRowProps = ComponentPropsWithoutRef<\"div\"> & {\n disabled?: boolean;\n};\n\nexport const OptionRow = forwardRef<HTMLDivElement, OptionRowProps>(\n function OptionRow({ disabled, children, className, ...rest }, ref) {\n const optionRowClass = cx(\n styles[\"option-row\"],\n { [styles[\"disabled\"]]: disabled },\n className,\n );\n return (\n <div ref={ref} {...rest} className={optionRowClass}>\n {children}\n </div>\n );\n },\n);\n\nexport const OptionRowSideContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\"> & { children: ReactNode }\n>(function OptionRowSideContent({ children, className, ...rest }, ref) {\n const sideContentClass = cx(styles[\"side-content\"], className);\n return (\n <div ref={ref} {...rest} className={sideContentClass}>\n {children}\n </div>\n );\n});\n","import { ReactNode } from \"react\";\nimport { Flex } from \"../../components/Flex\";\nimport { Text } from \"../../components/Text\";\nimport { Avatar } from \"../../components/Avatar\";\nimport { Chip } from \"../../components/Chip\";\nimport { Icon } from \"../../components/Icon\";\nimport type { OptionContent } from \"../types/optionContent\";\nimport { OptionRowSideContent } from \"./OptionRow\";\nimport styles from \"./OptionContentArea.module.scss\";\n\nexport type OptionContentAreaProps = {\n label: string;\n content?: OptionContent;\n children?: ReactNode;\n};\n\nexport function OptionContentArea({\n label,\n content,\n children,\n}: OptionContentAreaProps) {\n const hasAvatar = !!content?.avatar;\n const hasChips = !!content?.chips?.length;\n const hasIcon = !!content?.icon;\n\n return (\n <>\n {hasAvatar && (\n <OptionRowSideContent aria-hidden=\"true\">\n <Avatar size=\"medium\" {...content!.avatar!} />\n </OptionRowSideContent>\n )}\n <Flex grow={1} shrink={1} direction=\"column\" justifyContent=\"center\">\n <Text size=\"small\" className={styles[\"title\"]}>\n {content?.title ?? label}\n </Text>\n {content?.description && (\n <Text size=\"small\" className={styles[\"description\"]}>\n {content.description}\n </Text>\n )}\n {hasChips && (\n <Flex\n wrap=\"wrap\"\n gap=\"1\"\n className={styles[\"chips-row\"]}\n role=\"group\"\n aria-label=\"Tags\"\n >\n {content!.chips!.map((chip, i) => (\n <Chip key={`${chip.label}-${i}`} size=\"small\" {...chip} />\n ))}\n </Flex>\n )}\n {children}\n </Flex>\n {hasIcon && (\n <OptionRowSideContent>\n <Icon\n size=\"large\"\n svg={content!.icon!.svg}\n color={content!.icon!.color}\n aria-hidden={content!.icon!.label ? undefined : \"true\"}\n aria-label={content!.icon!.label}\n />\n </OptionRowSideContent>\n )}\n </>\n );\n}\n","import { ReactNode, RefObject, useCallback, useEffect, useRef } from \"react\";\n\nimport {\n autoPlacement,\n autoUpdate,\n computePosition,\n offset,\n size,\n} from \"@floating-ui/react\";\n\nimport cx from \"classnames\";\n\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside/useOnClickOutside\";\nimport { portalScopeClassNames } from \"../../functions/portalScopeClassNames\";\n\nimport styles from \"./OptionsPopover.module.scss\";\n\nexport type OptionsPopoverProps = {\n id: string;\n children: ReactNode;\n referenceElement: RefObject<HTMLElement>;\n open: boolean;\n /**\n * Fired when the popover should close (click-outside, focus-out, or\n * Escape). On Escape, the popover restores focus to `referenceElement`\n * before invoking this callback; for other paths focus has already moved\n * elsewhere intentionally.\n */\n onClose: () => void;\n /** Controls the popover width strategy.\n * - `\"reference\"` — match the reference element's width\n * - `number` — fixed width in px\n * - `string` — any CSS width value (e.g. `\"20rem\"`)\n * - `undefined` (default) — intrinsic sizing (`max-content`)\n */\n width?: \"reference\" | number | string;\n /**\n * Optional content rendered as a full-bleed footer region inside the popover\n * shell, separated from the body by a top border. The popover suppresses its\n * own bottom padding so the footer can hug the popover's lower edge.\n */\n footer?: ReactNode;\n};\n\nfunction resolveWidth(\n width: OptionsPopoverProps[\"width\"],\n referenceWidth: number,\n): string | undefined {\n if (width === \"reference\") return `${referenceWidth}px`;\n if (typeof width === \"number\") return `${width}px`;\n if (typeof width === \"string\") return width;\n return undefined;\n}\n\nexport const OptionsPopover = (props: OptionsPopoverProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { id, children, referenceElement, open, onClose, width, footer } =\n props;\n\n // A single click-outside on a focusable element fires both the\n // useOnClickOutside (pointerup) path and the focusout path below. Dedupe\n // so onClose runs at most once per user action.\n const lastCloseRef = useRef(0);\n const safeClose = useCallback(() => {\n const now = Date.now();\n if (now - lastCloseRef.current < 50) return;\n lastCloseRef.current = now;\n onClose();\n }, [onClose]);\n\n useOnClickOutside({\n targets: [ref.current ?? undefined, referenceElement.current ?? undefined],\n onClickOutside: safeClose,\n disable: !open,\n });\n\n useEffect(() => {\n if (open) {\n ref.current?.showPopover();\n } else {\n ref.current?.hidePopover();\n }\n }, [open]);\n\n // Close when focus leaves the popover (and isn't moving to the trigger\n // element, which has its own click/focus handling). This is the keyboard\n // counterpart to useOnClickOutside.\n useEffect(() => {\n if (!open) return;\n const popoverEl = ref.current;\n if (!popoverEl) return;\n const handleFocusOut = (e: FocusEvent) => {\n const next = e.relatedTarget as Node | null;\n if (!next) {\n // Focus moved to nothing tracked (e.g. body). Treat as exit.\n safeClose();\n return;\n }\n if (popoverEl.contains(next)) return;\n const trigger = referenceElement.current;\n if (trigger && trigger.contains(next)) return;\n safeClose();\n };\n popoverEl.addEventListener(\"focusout\", handleFocusOut);\n return () => popoverEl.removeEventListener(\"focusout\", handleFocusOut);\n }, [open, safeClose, referenceElement]);\n\n // Close on Escape from anywhere inside the popover (e.g. when focus is on\n // the footer button, where no host hook is listening). Focus is restored to\n // the reference element before onClose fires so consumers don't need to\n // manage trigger focus themselves. If a downstream handler (search input,\n // listbox) already handled Escape and called preventDefault, defer to it.\n useEffect(() => {\n if (!open) return;\n const popoverEl = ref.current;\n if (!popoverEl) return;\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Escape\" || e.defaultPrevented) return;\n e.preventDefault();\n referenceElement.current?.focus();\n safeClose();\n };\n popoverEl.addEventListener(\"keydown\", handleKeyDown);\n return () => popoverEl.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, safeClose, referenceElement]);\n\n const updatePosition = useCallback(async () => {\n if (!ref.current || !referenceElement.current) return;\n const position = await computePosition(\n referenceElement.current,\n ref.current,\n {\n placement: \"bottom-start\",\n middleware: [\n offset(8),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"top-start\",\n \"top-end\",\n ],\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ rects, elements, availableHeight, availableWidth }) {\n const resolved = resolveWidth(width, rects.reference.width);\n Object.assign(elements.floating.style, {\n ...(resolved != null && { width: resolved }),\n maxWidth: `${Math.max(0, availableWidth)}px`,\n maxHeight: `${Math.max(0, availableHeight)}px`,\n });\n },\n }),\n ],\n },\n );\n ref.current.style.left = `${position.x}px`;\n ref.current.style.top = `${position.y}px`;\n }, [ref, referenceElement, width]);\n\n useEffect(() => {\n if (!ref.current || !referenceElement.current || !open) return;\n const cleanup = autoUpdate(\n referenceElement.current,\n ref.current,\n updatePosition,\n );\n return () => {\n cleanup();\n };\n }, [referenceElement, ref, updatePosition, open]);\n\n return (\n <div\n ref={ref}\n id={id}\n className={cx(styles[\"options-popover\"], portalScopeClassNames)}\n popover=\"manual\"\n data-anv=\"popover-content\"\n >\n <div className={styles[\"options-popover-body\"]}>{children}</div>\n {footer ? (\n <div className={styles[\"options-popover-footer\"]}>{footer}</div>\n ) : null}\n </div>\n );\n};\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { Flex, FocusableElement, Text } from \"../../..\";\nimport { DialogCancelButton } from \"../../../components/Dialog/DialogCancelButton\";\nimport styles from \"./OptionsDialog.module.scss\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport { DialogContext } from \"../../../components/Dialog/internal/DialogContext\";\nimport { useDialogScrollLock } from \"../..\";\nimport { tabbable } from \"tabbable\";\n\nexport const OptionsDialog = ({\n id,\n isOpen,\n onClose,\n field,\n children,\n title,\n initialFocusResolver,\n footer,\n}: {\n id: string;\n isOpen: boolean;\n onClose: () => void;\n title: string;\n field?: React.ReactNode;\n children: React.ReactNode;\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /** Optional content rendered below the dialog body. */\n footer?: React.ReactNode;\n}) => {\n const elRef = useRef<HTMLDialogElement>(null);\n const visualViewportHeightRef = useRef<HTMLDivElement>(null);\n\n useDialogScrollLock({\n open: isOpen,\n id,\n enableScrollChaining: false,\n elementRef: elRef,\n });\n\n const computeFocus = useCallback(\n (focusables: FocusableElement[]) => {\n if (initialFocusResolver) {\n return initialFocusResolver(focusables);\n }\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"dialog-cancel-button\",\n ) || focusables[0]\n );\n },\n [initialFocusResolver],\n );\n\n useEffect(() => {\n if (isOpen) {\n elRef.current?.showModal();\n if (elRef.current) {\n computeFocus(tabbable(elRef.current)).focus();\n }\n } else {\n elRef.current?.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Omitting computeFocus because we don't want to show/close the dialog on computeFocus change\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n const handleResize = () => {\n if (!visualViewportHeightRef.current) return;\n visualViewportHeightRef.current.style.height = `${window.visualViewport?.height ?? 0}px`;\n visualViewportHeightRef.current.style.maxHeight = `${window.visualViewport?.height ?? 0}px`;\n };\n window.visualViewport?.addEventListener(\"resize\", handleResize);\n return () => {\n window.visualViewport?.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [isOpen]);\n\n return (\n <dialog\n ref={elRef}\n id={id}\n data-anv=\"field-dialog\"\n className={styles[\"field-dialog\"]}\n onKeyDown={(e) => {\n if (e.code === \"Escape\") {\n e.preventDefault();\n onClose();\n }\n }}\n >\n <div\n className={styles[\"field-dialog-visual-viewport-height\"]}\n ref={visualViewportHeightRef}\n >\n <Flex direction=\"row\" className={styles[\"header\"]}>\n <Text variant=\"headline\" el=\"h1\">\n {title}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogContext.Provider value={{ close: onClose }}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </DialogContext.Provider>\n </span>\n </Flex>\n {field ? (\n <Flex direction=\"column\" className={styles[\"field\"]}>\n {field}\n </Flex>\n ) : null}\n <Flex direction=\"column\" className={styles[\"content\"]}>\n {children}\n </Flex>\n {footer ? <div className={styles[\"footer\"]}>{footer}</div> : null}\n </div>\n </dialog>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useBreakpoint } from \"../../../hooks\";\n\n/**\n * The type of view to render based on device characteristics.\n */\nexport type AdaptiveView = \"mobile\" | \"desktop\";\n\n/**\n * Return type for the useAdaptiveView hook.\n */\nexport interface UseAdaptiveViewReturn {\n /**\n * The current adaptive view type.\n */\n view: AdaptiveView;\n /**\n * True when the device should use mobile-optimized UI (Dialog).\n */\n isMobile: boolean;\n /**\n * True when the device should use desktop-optimized UI (Popover).\n */\n isDesktop: boolean;\n}\n\n/**\n * Detects whether the primary pointer is coarse (touch) using CSS media query.\n * Returns false during SSR or when matchMedia is unavailable.\n */\nfunction detectCoarsePointer(): boolean {\n if (typeof window === \"undefined\" || !window.matchMedia) {\n return false;\n }\n return window.matchMedia(\"(pointer: coarse)\").matches;\n}\n\n/**\n * Custom hook for detecting whether to use mobile or desktop UI patterns.\n *\n * This hook determines the optimal UI pattern (e.g., Dialog vs Popover) by combining:\n * - Screen size via useBreakpoint (viewport width)\n * - Pointer precision via CSS media query (pointer: coarse)\n *\n * A device is considered \"mobile\" when it has both:\n * - A small screen (below md breakpoint, < 768px)\n * - A coarse pointer (touch-primary input)\n *\n * This approach correctly identifies:\n * - Mobile phones → mobile view (Dialog)\n * - iPads/tablets → desktop view (Popover) due to larger screens\n * - Touch laptops → desktop view (Popover) due to fine pointer primary\n * - Desktop → desktop view (Popover)\n *\n * @returns Object containing view type and boolean flags for mobile/desktop\n *\n * @example\n * const { isMobile } = useAdaptiveView();\n *\n * return isMobile ? (\n * <Dialog>{children}</Dialog>\n * ) : (\n * <Popover>{children}</Popover>\n * );\n */\nexport function useAdaptiveView(): UseAdaptiveViewReturn {\n const breakpoint = useBreakpoint();\n const [hasCoarsePointer, setHasCoarsePointer] = useState(detectCoarsePointer);\n\n useEffect(() => {\n setHasCoarsePointer(detectCoarsePointer());\n\n // Listen for pointer capability changes (e.g., connecting/disconnecting a mouse)\n const mediaQuery = window.matchMedia(\"(pointer: coarse)\");\n const handleChange = (e: MediaQueryListEvent) => {\n setHasCoarsePointer(e.matches);\n };\n\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, []);\n\n const isSmallScreen = !breakpoint?.md;\n const isMobile = isSmallScreen && hasCoarsePointer;\n\n return {\n view: isMobile ? \"mobile\" : \"desktop\",\n isMobile,\n isDesktop: !isMobile,\n };\n}\n"],"names":["CheckboxChecked","CheckboxOutline","CheckboxIndeterminate","styles","OptionRow","OptionRowSideContent","Close"],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ .anvil2 {._checkbox_1xh9p_1 {
2
+ --a2-mod-option-checkbox-checked-color: var(--a2-checkbox-default-checked-icon-color, var(--a2-foreground-color-primary, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff))));
3
+ --a2-mod-option-checkbox-unchecked-color: var(--a2-checkbox-default-unchecked-icon-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
4
+ border-radius: var(--a2-checkbox-border-radius, var(--a2-border-radius-small, var(--a2-radius-1, 0.1875rem)));
5
+ display: flex;
6
+ flex-shrink: 0;
7
+ }._checked_1xh9p_9 {
8
+ color: var(--a2-mod-option-checkbox-checked-color);
9
+ }._unchecked_1xh9p_13 {
10
+ color: var(--a2-mod-option-checkbox-unchecked-color);
11
+ }._indeterminate_1xh9p_17 {
12
+ color: var(--a2-mod-option-checkbox-checked-color);
13
+ }._loading_1xh9p_21 {
14
+ align-items: center;
15
+ display: flex;
16
+ height: 1.5rem;
17
+ justify-content: center;
18
+ width: 1.5rem;
19
+ }
20
+ }.anvil2 {/* BASE */._option-row_1tqi5_2 {
21
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
22
+ font-size: 100%;
23
+ color: inherit;
24
+ margin: 0;
25
+ padding: 0;
26
+ border-style: none;
27
+ border-width: 0;
28
+ border-color: transparent;
29
+ box-sizing: border-box;
30
+ display: flex;
31
+ align-items: stretch;
32
+ background-color: var(--a2-mod-option-row-background-color, var(--a2-background-color-transparent-default, rgba(0, 0, 0, 0)));
33
+ border-radius: var(--a2-border-radius-medium, var(--a2-radius-2, 0.375rem));
34
+ box-sizing: border-box;
35
+ color: var(--a2-mod-option-row-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
36
+ cursor: pointer;
37
+ gap: var(--a2-size-2, 0.5rem);
38
+ line-height: calc(var(--a2-size-4, 1rem) + var(--a2-size-half, 0.125rem));
39
+ padding-block: var(--a2-size-2, 0.5rem);
40
+ padding-inline-end: var(--a2-size-4, 1rem);
41
+ padding-inline-start: var(--a2-size-4, 1rem);
42
+ position: relative;
43
+ width: 100%;
44
+ }._option-row_1tqi5_2:active:not(._disabled_1tqi5_27) {
45
+ --a2-mod-option-row-background-color: var(
46
+ --a2-mod-option-row-background-color-active,
47
+ var(--a2-background-color-transparent-default-active, light-dark(color-mix(in srgb, var(--a2-color-neutral-400, #8b8b8b) 16%, transparent), color-mix(in srgb, var(--a2-color-neutral-0, #ffffff) 16%, transparent)))
48
+ );
49
+ --a2-mod-option-row-color: var(--a2-mod-option-row-color-active);
50
+ }._side-content_1tqi5_35 {
51
+ align-items: center;
52
+ display: flex;
53
+ flex-shrink: 0;
54
+ max-height: var(--a2-size-10, 2.5rem);
55
+ }/* MODIFIERS */._disabled_1tqi5_27 {
56
+ cursor: not-allowed;
57
+ opacity: 0.5;
58
+ }
59
+ }.anvil2 {._title_te5wz_1 {
60
+ display: -webkit-box;
61
+ -webkit-box-orient: vertical;
62
+ -webkit-line-clamp: var(--a2-mod-option-content-title-line-clamp, 3);
63
+ line-clamp: var(--a2-mod-option-content-title-line-clamp, 3);
64
+ overflow: hidden;
65
+ text-overflow: ellipsis;
66
+ }._description_te5wz_10 {
67
+ display: -webkit-box;
68
+ -webkit-box-orient: vertical;
69
+ -webkit-line-clamp: var(--a2-mod-option-content-description-line-clamp, 3);
70
+ line-clamp: var(--a2-mod-option-content-description-line-clamp, 3);
71
+ overflow: hidden;
72
+ text-overflow: ellipsis;
73
+ color: var(--a2-mod-option-content-description-color, var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4))));
74
+ font-size: var(--a2-font-size-200, 0.75rem);
75
+ }._chips-row_te5wz_21 {
76
+ margin-block-start: var(--a2-size-1, 0.25rem);
77
+ }
78
+ }.anvil2 {/* BASE */._options-popover_1gogz_2 {
79
+ --a2-mod-popover-background-color: var(--a2-popover-content-background-color, var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929))));
80
+ --a2-mod-popover-border-color: var(--a2-popover-content-border-color, var(--a2-border-color-subdued, light-dark(var(--a2-color-neutral-80, #e6e6e6), var(--a2-color-neutral-700, #404040))));
81
+ --a2-mod-popover-shadow-color: var(--a2-popover-content-shadow-color, var(--a2-shadow-color-default, light-dark(rgba(26, 26, 26, 0.0784313725), rgba(255, 255, 255, 0.0784313725))));
82
+ --a2-mod-option-row-background-color: var(--a2-mod-popover-background-color);
83
+ --a2-mod-option-row-background-color-highlighted: var(--a2-background-color-strong-hover, light-dark(var(--a2-color-neutral-50, #eeeeee), var(--a2-color-neutral-700, #404040)));
84
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
85
+ font-size: 100%;
86
+ color: inherit;
87
+ margin: 0;
88
+ padding: 0;
89
+ border-style: solid;
90
+ border-width: var(--a2-size-quarter, 0.0625rem);
91
+ border-color: var(--a2-mod-popover-border-color);
92
+ box-sizing: border-box;
93
+ display: revert-layer;
94
+ background-color: var(--a2-mod-popover-background-color);
95
+ border-color: var(--a2-mod-popover-border-color);
96
+ border-radius: var(--a2-border-radius-medium, var(--a2-radius-2, 0.375rem));
97
+ box-shadow: var(--a2-shadow-size-float, var(--a2-size-0, 0rem) var(--a2-size-half, 0.125rem) var(--a2-size-2, 0.5rem)) var(--a2-mod-popover-shadow-color);
98
+ box-sizing: border-box;
99
+ margin: 0 !important;
100
+ max-width: 100%;
101
+ overflow: hidden;
102
+ padding: 0;
103
+ position: absolute;
104
+ white-space: pre-line;
105
+ width: -moz-max-content;
106
+ width: max-content;
107
+ will-change: transform;
108
+ }._options-popover_1gogz_2:popover-open {
109
+ display: flex;
110
+ flex-direction: column;
111
+ }._options-popover-body_1gogz_37 {
112
+ display: flex;
113
+ flex: 1 1 auto;
114
+ flex-direction: column;
115
+ gap: var(--a2-size-2, 0.5rem);
116
+ min-height: 0;
117
+ padding: var(--a2-size-2, 0.5rem);
118
+ }._options-popover-footer_1gogz_46 {
119
+ background: var(--a2-background-color-strong);
120
+ border-block-start: var(--a2-size-quarter, 0.0625rem) solid var(--a2-mod-popover-border-color);
121
+ display: flex;
122
+ flex: 0 0 auto;
123
+ flex-direction: column;
124
+ padding: var(--a2-size-2, 0.5rem);
125
+ }
126
+ }.anvil2 {/* BASE */._field-dialog_1lxz8_2 {
127
+ --a2-mod-field-dialog-padding: var(--a2-size-6, 1.5rem);
128
+ --a2-mod-option-row-background-color: Canvas;
129
+ --a2-mod-option-row-background-color-highlighted: var(--a2-background-color-default-hover, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
130
+ --a2-mod-options-dialog-border-color: var(--a2-color-neutral-80, #e6e6e6);
131
+ border: 0;
132
+ bottom: 0;
133
+ box-sizing: border-box;
134
+ height: 100dvh;
135
+ left: 0;
136
+ margin: 0;
137
+ outline: none;
138
+ padding: 0;
139
+ right: 0;
140
+ top: 0;
141
+ touch-action: none;
142
+ width: 100vw;
143
+ }._field-dialog-visual-viewport-height_1lxz8_21 {
144
+ box-sizing: border-box;
145
+ display: grid;
146
+ grid-auto-rows: auto;
147
+ grid-template-areas: "header" "field" "content" "footer";
148
+ grid-template-columns: 100%;
149
+ grid-template-rows: auto auto 1fr auto;
150
+ height: 100%;
151
+ overflow: hidden;
152
+ }._field-dialog_1lxz8_2:modal {
153
+ max-height: 100lvh;
154
+ max-width: 100vw;
155
+ }._field-dialog_1lxz8_2:modal::backdrop {
156
+ height: 100lvh;
157
+ }._header_1lxz8_41 {
158
+ grid-area: header;
159
+ justify-content: space-between;
160
+ padding-block: var(--a2-mod-field-dialog-padding);
161
+ padding-inline: var(--a2-mod-field-dialog-padding);
162
+ }._field_1lxz8_2 {
163
+ grid-area: field;
164
+ padding-block-end: var(--a2-size-2, 0.5rem);
165
+ padding-inline: var(--a2-mod-field-dialog-padding);
166
+ }._content_1lxz8_54 {
167
+ grid-area: content;
168
+ min-height: 0;
169
+ padding-inline: var(--a2-mod-field-dialog-padding);
170
+ }._footer_1lxz8_60 {
171
+ display: flex;
172
+ flex-direction: column;
173
+ grid-area: footer;
174
+ padding: var(--a2-size-2, 0.5rem);
175
+ border-block-start: var(--a2-size-quarter, 0.0625rem) solid var(--a2-mod-options-dialog-border-color);
176
+ }
177
+ }body:has(dialog[data-anv="field-dialog"][open]) {
178
+ overflow: hidden;
179
+ }body:has([data-anv-field-dialogs-open="true"]) {
180
+ overflow: hidden;
181
+ }