@servicetitan/anvil2 3.13.7 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/{AiMark-D8dx3b1Q.js → AiMark-CWufA6pV.js} +7 -62
  3. package/dist/{AiMark-D8dx3b1Q.js.map → AiMark-CWufA6pV.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-N-Es76Om.js → Alert-RkvFtmRP.js} +2 -2
  6. package/dist/{Alert-N-Es76Om.js.map → Alert-RkvFtmRP.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-D8msiELo.js → AnvilProvider-DagOuc9c.js} +2 -3
  9. package/dist/AnvilProvider-DagOuc9c.js.map +1 -0
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/Avatar-DZxHhMTP.js.map +1 -1
  12. package/dist/{Breadcrumbs-Di0HJmcH.js → Breadcrumbs-DbOrdao2.js} +2 -2
  13. package/dist/{Breadcrumbs-Di0HJmcH.js.map → Breadcrumbs-DbOrdao2.js.map} +1 -1
  14. package/dist/Breadcrumbs.js +1 -1
  15. package/dist/Button-Dwh_Nd4l.js.map +1 -1
  16. package/dist/{Calendar-kSH8F7gx.js → Calendar-CK-AAaSG.js} +2 -2
  17. package/dist/Calendar-CK-AAaSG.js.map +1 -0
  18. package/dist/{Calendar-DV149Rqb.js → Calendar-DLnn6dJE.js} +2 -2
  19. package/dist/{Calendar-DV149Rqb.js.map → Calendar-DLnn6dJE.js.map} +1 -1
  20. package/dist/Calendar.js +2 -2
  21. package/dist/{Checkbox-CknwM231.js → Checkbox-CboZhOtU.js} +3 -3
  22. package/dist/{Checkbox-CknwM231.js.map → Checkbox-CboZhOtU.js.map} +1 -1
  23. package/dist/{Checkbox-FvMXGsgi.js → Checkbox-Cn4iNLW_.js} +2 -2
  24. package/dist/{Checkbox-FvMXGsgi.js.map → Checkbox-Cn4iNLW_.js.map} +1 -1
  25. package/dist/Checkbox.js +1 -1
  26. package/dist/{Chip-COkotNvt.js → Chip-UbrxYEqs.js} +2 -2
  27. package/dist/{Chip-COkotNvt.js.map → Chip-UbrxYEqs.js.map} +1 -1
  28. package/dist/Chip.js +1 -1
  29. package/dist/Combobox.js +1 -1
  30. package/dist/{DataTable-D0YlJ7IA.js → DataTable-COExZbOC.js} +10 -22
  31. package/dist/DataTable-COExZbOC.js.map +1 -0
  32. package/dist/{DateFieldRange-B7-z7KXC.js → DateFieldRange-CpTxlASD.js} +5 -5
  33. package/dist/{DateFieldRange-B7-z7KXC.js.map → DateFieldRange-CpTxlASD.js.map} +1 -1
  34. package/dist/DateFieldRange.js +1 -1
  35. package/dist/{DateFieldSingle-B3aY-9vO.js → DateFieldSingle-DR2kfrzh.js} +5 -5
  36. package/dist/{DateFieldSingle-B3aY-9vO.js.map → DateFieldSingle-DR2kfrzh.js.map} +1 -1
  37. package/dist/DateFieldSingle.js +1 -1
  38. package/dist/{DateFieldYearless-BYwWvHXD.js → DateFieldYearless-4mS_2Mgw.js} +5 -5
  39. package/dist/{DateFieldYearless-BYwWvHXD.js.map → DateFieldYearless-4mS_2Mgw.js.map} +1 -1
  40. package/dist/DateFieldYearless.js +1 -1
  41. package/dist/{DateFieldYearlessRange-cyDptr2S.js → DateFieldYearlessRange-C-yvKBkJ.js} +4 -4
  42. package/dist/{DateFieldYearlessRange-cyDptr2S.js.map → DateFieldYearlessRange-C-yvKBkJ.js.map} +1 -1
  43. package/dist/DateFieldYearlessRange.js +1 -1
  44. package/dist/{DaysOfTheWeek-Re26vN8g.js → DaysOfTheWeek-Bo4w8SsT.js} +2 -2
  45. package/dist/{DaysOfTheWeek-Re26vN8g.js.map → DaysOfTheWeek-Bo4w8SsT.js.map} +1 -1
  46. package/dist/DaysOfTheWeek.js +1 -1
  47. package/dist/{Dialog-BMPFoRQh.js → Dialog-Ds25dKQp.js} +4 -4
  48. package/dist/{Dialog-BMPFoRQh.js.map → Dialog-Ds25dKQp.js.map} +1 -1
  49. package/dist/Dialog.js +1 -1
  50. package/dist/{Drawer-BCw_ZHSD.js → Drawer-Da-bj_6o.js} +4 -4
  51. package/dist/{Drawer-BCw_ZHSD.js.map → Drawer-Da-bj_6o.js.map} +1 -1
  52. package/dist/Drawer.js +1 -1
  53. package/dist/DrillDown.js +1 -1
  54. package/dist/{EditCard-CTEk64eN.js → EditCard-CocV93gS.js} +2 -2
  55. package/dist/{EditCard-CTEk64eN.js.map → EditCard-CocV93gS.js.map} +1 -1
  56. package/dist/EditCard.js +1 -1
  57. package/dist/{FieldLabel-CYCk2rz-.js → FieldLabel-6aFKQfyD.js} +2 -2
  58. package/dist/FieldLabel-6aFKQfyD.js.map +1 -0
  59. package/dist/FieldLabel.js +1 -1
  60. package/dist/{FilterBar-CrIPZKvL.js → FilterBar-CZT1ryz_.js} +6 -7
  61. package/dist/FilterBar-CZT1ryz_.js.map +1 -0
  62. package/dist/FilterBar.js +1 -1
  63. package/dist/Helper-BHpOgh7k.js.map +1 -1
  64. package/dist/Icon-B5zwN7GD.js.map +1 -1
  65. package/dist/{InputMask-Bm7ZYtQy.js → InputMask-CNV0Ucli.js} +3 -3
  66. package/dist/{InputMask-Bm7ZYtQy.js.map → InputMask-CNV0Ucli.js.map} +1 -1
  67. package/dist/InputMask.js +1 -1
  68. package/dist/{ListView-Bkv1ZCSu.js → ListView-DFAWrwzi.js} +2 -2
  69. package/dist/ListView-DFAWrwzi.js.map +1 -0
  70. package/dist/ListView.js +1 -1
  71. package/dist/{Listbox-BWy_uBqm.js → Listbox-BErqErNN.js} +2 -2
  72. package/dist/Listbox-BErqErNN.js.map +1 -0
  73. package/dist/Listbox.js +1 -1
  74. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
  75. package/dist/LocalizationProvider-BPcOU7YX.js.map +1 -1
  76. package/dist/{MenuFooter--lBF8OjJ.js → MenuFooter-fGSZYh8e.js} +2 -2
  77. package/dist/MenuFooter-fGSZYh8e.js.map +1 -0
  78. package/dist/MultiSelectField.js +1 -1
  79. package/dist/{MultiSelectFieldSync-gH-TQnq3.js → MultiSelectFieldSync-CqWUidCm.js} +8 -8
  80. package/dist/MultiSelectFieldSync-CqWUidCm.js.map +1 -0
  81. package/dist/MultiSelectMenu.js +1 -1
  82. package/dist/{MultiSelectMenuSync-QmhjWA05.js → MultiSelectMenuSync-DG3rKyQc.js} +6 -6
  83. package/dist/{MultiSelectMenuSync-QmhjWA05.js.map → MultiSelectMenuSync-DG3rKyQc.js.map} +1 -1
  84. package/dist/{NumberField-BOLMhpdk.js → NumberField-DRYYJHec.js} +3 -3
  85. package/dist/{NumberField-BOLMhpdk.js.map → NumberField-DRYYJHec.js.map} +1 -1
  86. package/dist/NumberField.js +1 -1
  87. package/dist/{Page-D4RYSd8t.js → Page-BmpojvuI.js} +8 -8
  88. package/dist/{Page-D4RYSd8t.js.map → Page-BmpojvuI.js.map} +1 -1
  89. package/dist/Page.js +1 -1
  90. package/dist/{Pagination-Hjalx9ZX.js → Pagination-Bc4fhdNm.js} +3 -3
  91. package/dist/{Pagination-Hjalx9ZX.js.map → Pagination-Bc4fhdNm.js.map} +1 -1
  92. package/dist/Pagination.js +1 -1
  93. package/dist/{Popover-BQ-R2hs0.js → Popover-BgVOsP4J.js} +2 -2
  94. package/dist/{Popover-BQ-R2hs0.js.map → Popover-BgVOsP4J.js.map} +1 -1
  95. package/dist/Popover.js +1 -1
  96. package/dist/PortalProvider-Cj_y3gbC.js.map +1 -1
  97. package/dist/{ProgressBar-BUmYFa81.js → ProgressBar-Chb0uKfL.js} +2 -2
  98. package/dist/{ProgressBar-BUmYFa81.js.map → ProgressBar-Chb0uKfL.js.map} +1 -1
  99. package/dist/ProgressBar.js +1 -1
  100. package/dist/{Radio-BgbBIhPS.js → Radio-DcNlFfSu.js} +3 -3
  101. package/dist/{Radio-BgbBIhPS.js.map → Radio-DcNlFfSu.js.map} +1 -1
  102. package/dist/{Radio-C2pWQ84U.js → Radio-gpMEsFss.js} +2 -2
  103. package/dist/{Radio-C2pWQ84U.js.map → Radio-gpMEsFss.js.map} +1 -1
  104. package/dist/Radio.js +1 -1
  105. package/dist/{RichTextEditor-Chzl-zeW.js → RichTextEditor-DeO4p-S-.js} +8 -8
  106. package/dist/{RichTextEditor-Chzl-zeW.js.map → RichTextEditor-DeO4p-S-.js.map} +1 -1
  107. package/dist/RichTextEditor.js +1 -1
  108. package/dist/{SavedFiltersButton-D0J5KTsI.js → SavedFiltersButton-Cvf1mJk8.js} +10 -10
  109. package/dist/{SavedFiltersButton-D0J5KTsI.js.map → SavedFiltersButton-Cvf1mJk8.js.map} +1 -1
  110. package/dist/SavedFiltersButton.js +1 -1
  111. package/dist/{SelectCard-BGTB3ay0.js → SelectCard-bp5hRyHK.js} +3 -3
  112. package/dist/{SelectCard-BGTB3ay0.js.map → SelectCard-bp5hRyHK.js.map} +1 -1
  113. package/dist/SelectCard.js +1 -1
  114. package/dist/SelectField.js +1 -1
  115. package/dist/{SelectFieldLabel-CcX2GAym.js → SelectFieldLabel-DZqxaZsp.js} +2 -2
  116. package/dist/SelectFieldLabel-DZqxaZsp.js.map +1 -0
  117. package/dist/{SelectFieldSync-BjJN7FC3.js → SelectFieldSync-Wkx6DGpg.js} +7 -7
  118. package/dist/{SelectFieldSync-BjJN7FC3.js.map → SelectFieldSync-Wkx6DGpg.js.map} +1 -1
  119. package/dist/SelectMenu.js +1 -1
  120. package/dist/{SelectMenuSync-iZsNTote.js → SelectMenuSync-O55TODxn.js} +6 -6
  121. package/dist/{SelectMenuSync-iZsNTote.js.map → SelectMenuSync-O55TODxn.js.map} +1 -1
  122. package/dist/{SelectOptions-BeehD5VV.js → SelectOptions-0A8BYx1q.js} +2 -2
  123. package/dist/SelectOptions-0A8BYx1q.js.map +1 -0
  124. package/dist/{SelectTrigger-BQAVMm3E.js → SelectTrigger-BfJ7DWYq.js} +2 -2
  125. package/dist/{SelectTrigger-BQAVMm3E.js.map → SelectTrigger-BfJ7DWYq.js.map} +1 -1
  126. package/dist/SelectTrigger.js +1 -1
  127. package/dist/{SelectTriggerBase-BV-QNhII.js → SelectTriggerBase-DvsI-kSG.js} +3 -3
  128. package/dist/{SelectTriggerBase-BV-QNhII.js.map → SelectTriggerBase-DvsI-kSG.js.map} +1 -1
  129. package/dist/StatusIcon-BqorkNJf.js.map +1 -1
  130. package/dist/{Switch-DWaFomvP.js → Switch-CrDmBj4D.js} +2 -2
  131. package/dist/{Switch-DWaFomvP.js.map → Switch-CrDmBj4D.js.map} +1 -1
  132. package/dist/Switch.js +1 -1
  133. package/dist/Table.js +1 -1
  134. package/dist/{Text-D2TIPmZ2.js → Text-CZccJAnm.js} +2 -2
  135. package/dist/{Text-D2TIPmZ2.js.map → Text-CZccJAnm.js.map} +1 -1
  136. package/dist/Text.js +1 -1
  137. package/dist/{TextField-wIc7ic0E.js → TextField-D0f9LwgQ.js} +3 -3
  138. package/dist/{TextField-wIc7ic0E.js.map → TextField-D0f9LwgQ.js.map} +1 -1
  139. package/dist/{TextField-DJaBZ4Je.js → TextField-DX5qyWPo.js} +2 -2
  140. package/dist/{TextField-DJaBZ4Je.js.map → TextField-DX5qyWPo.js.map} +1 -1
  141. package/dist/TextField.js +1 -1
  142. package/dist/{Textarea-D4c6VjNs.js → Textarea-CdTcekFd.js} +3 -3
  143. package/dist/{Textarea-D4c6VjNs.js.map → Textarea-CdTcekFd.js.map} +1 -1
  144. package/dist/Textarea.js +1 -1
  145. package/dist/ThemeProvider-DW-Mflv6.js.map +1 -1
  146. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  147. package/dist/{TimeField-DpnX_t31.js → TimeField-BxNglWQt.js} +4 -4
  148. package/dist/TimeField-BxNglWQt.js.map +1 -0
  149. package/dist/TimeField.js +1 -1
  150. package/dist/Toast.js +2 -2
  151. package/dist/{Toaster-Cl9BSxHs.js → Toaster-C-Z_FMbW.js} +3 -3
  152. package/dist/{Toaster-Cl9BSxHs.js.map → Toaster-C-Z_FMbW.js.map} +1 -1
  153. package/dist/{Toaster-11pmgwx5.js → Toaster-nyQgF9Ki.js} +2 -2
  154. package/dist/{Toaster-11pmgwx5.js.map → Toaster-nyQgF9Ki.js.map} +1 -1
  155. package/dist/{Toolbar-C9_Z1wAt.js → Toolbar-BUbMtBVz.js} +4 -4
  156. package/dist/{Toolbar-C9_Z1wAt.js.map → Toolbar-BUbMtBVz.js.map} +1 -1
  157. package/dist/{Toolbar-Dq9KOJoH.js → Toolbar-BxAFPvbn.js} +5 -5
  158. package/dist/{Toolbar-Dq9KOJoH.js.map → Toolbar-BxAFPvbn.js.map} +1 -1
  159. package/dist/Toolbar.js +2 -2
  160. package/dist/{ToolbarButtonToggle-BGnYIt6-.js → ToolbarButtonToggle-NSJ2XfXT.js} +2 -2
  161. package/dist/{ToolbarButtonToggle-BGnYIt6-.js.map → ToolbarButtonToggle-NSJ2XfXT.js.map} +1 -1
  162. package/dist/TrackingProvider-Co4lyoI9.js.map +1 -1
  163. package/dist/TrackingProviderContext-CrVA7KHv.js.map +1 -1
  164. package/dist/TreeSelectField.js +1 -1
  165. package/dist/{TreeSelectFieldSync-CoWxg7tA.js → TreeSelectFieldSync-DpvwlM7B.js} +6 -6
  166. package/dist/{TreeSelectFieldSync-CoWxg7tA.js.map → TreeSelectFieldSync-DpvwlM7B.js.map} +1 -1
  167. package/dist/TreeSelectMenu.js +1 -1
  168. package/dist/{TreeSelectMenuSync-CmJa0lyW.js → TreeSelectMenuSync-BDitYX_k.js} +5 -5
  169. package/dist/{TreeSelectMenuSync-CmJa0lyW.js.map → TreeSelectMenuSync-BDitYX_k.js.map} +1 -1
  170. package/dist/{TypeaheadTextField-2kW-oCMo.js → TypeaheadTextField-Cj09sEji.js} +3 -3
  171. package/dist/{TypeaheadTextField-2kW-oCMo.js.map → TypeaheadTextField-Cj09sEji.js.map} +1 -1
  172. package/dist/TypeaheadTextField.js +1 -1
  173. package/dist/{YearlessDateInputWithPicker-C0FwNBKR.js → YearlessDateInputWithPicker-CoomgSEK.js} +3 -3
  174. package/dist/{YearlessDateInputWithPicker-C0FwNBKR.js.map → YearlessDateInputWithPicker-CoomgSEK.js.map} +1 -1
  175. package/dist/anvParts-DFVq7-Cm.js +25 -0
  176. package/dist/anvParts-DFVq7-Cm.js.map +1 -0
  177. package/dist/arrayIdsEqual-DnevhwqN.js.map +1 -1
  178. package/dist/assets/icons/st/gnav_automations_active.svg +1 -0
  179. package/dist/assets/icons/st/gnav_automations_inactive.svg +1 -0
  180. package/dist/assets/icons/st/gnav_command_center_active.svg +1 -0
  181. package/dist/assets/icons/st/gnav_command_center_inactive.svg +1 -0
  182. package/dist/assets/icons/st.ts +4 -0
  183. package/dist/beta.js +17 -17
  184. package/dist/{bulkActionTypes-Ct2cwT7b.js → bulkActionTypes-DAo3_ECS.js} +2 -2
  185. package/dist/bulkActionTypes-DAo3_ECS.js.map +1 -0
  186. package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
  187. package/dist/confirmationTypes-DeRtO_Cw.js.map +1 -1
  188. package/dist/{downshift.esm-xtSnQp44.js → downshift.esm-U4VMqrF-.js} +3 -1
  189. package/dist/downshift.esm-U4VMqrF-.js.map +1 -0
  190. package/dist/{filter-state-lWKlYjeQ.js → filter-state-CZcczj37.js} +21 -21
  191. package/dist/{filter-state-lWKlYjeQ.js.map → filter-state-CZcczj37.js.map} +1 -1
  192. package/dist/floating-ui.react-dom-BIKT960u.js.map +1 -1
  193. package/dist/getActiveElement-BcSyVE7S.js.map +1 -1
  194. package/dist/getKeyboardFocusableElements-B_U9rt6y.js.map +1 -1
  195. package/dist/{index-BHztJ8H6.js → index-BFxzUzoz.js} +2 -2
  196. package/dist/{index-BHztJ8H6.js.map → index-BFxzUzoz.js.map} +1 -1
  197. package/dist/index.js +42 -43
  198. package/dist/index.js.map +1 -1
  199. package/dist/portalScopeClassNames-DA28LrXe.js.map +1 -1
  200. package/dist/src/hooks/useAccessibleColor/useAccessibleColor.d.ts +3 -28
  201. package/dist/src/hooks/useBreakpoint/useBreakpoint.d.ts +15 -60
  202. package/dist/src/hooks/useMergeRefs/useMergeRefs.d.ts +3 -20
  203. package/dist/src/hooks/usePrefersColorScheme/usePrefersColorScheme.d.ts +2 -11
  204. package/dist/src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +2 -10
  205. package/dist/src/hooks/useSize/index.d.ts +2 -13
  206. package/dist/src/hooks/useSwipe/useSwipe.d.ts +3 -20
  207. package/dist/src/hooks/useTrackingId/index.d.ts +6 -17
  208. package/dist/src/internal/components/AddNewItemButton.d.ts +4 -30
  209. package/dist/src/internal/components/Helper/Helper.d.ts +12 -8
  210. package/dist/src/internal/components/InView.d.ts +4 -24
  211. package/dist/src/internal/components/InlineMarkdown/InlineMarkdown.d.ts +2 -19
  212. package/dist/src/internal/components/Label/Label.d.ts +12 -51
  213. package/dist/src/internal/components/ManualTestLayout/ManualTestLayout.d.ts +3 -2
  214. package/dist/src/internal/components/MenuFooter/MenuFooter.d.ts +11 -17
  215. package/dist/src/internal/components/MultiSelectOptions.d.ts +15 -0
  216. package/dist/src/internal/components/OptionCheckbox.d.ts +2 -0
  217. package/dist/src/internal/components/OptionContentArea.d.ts +4 -0
  218. package/dist/src/internal/components/OptionRow.d.ts +4 -0
  219. package/dist/src/internal/components/OptionsDialog/OptionsDialog.d.ts +13 -1
  220. package/dist/src/internal/components/OptionsPanel.d.ts +16 -0
  221. package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +9 -14
  222. package/dist/src/internal/components/Popover/Popover.d.ts +45 -180
  223. package/dist/src/internal/components/Popover/PopoverButton.d.ts +0 -20
  224. package/dist/src/internal/components/Popover/PopoverClose.d.ts +0 -20
  225. package/dist/src/internal/components/Popover/PopoverContent.d.ts +4 -25
  226. package/dist/src/internal/components/Popover/PopoverTrigger.d.ts +1 -23
  227. package/dist/src/internal/components/Popover/internal/PopoverContext.d.ts +0 -21
  228. package/dist/src/internal/components/Popover/internal/usePopoverContext.d.ts +1 -3
  229. package/dist/src/internal/components/SelectOption.d.ts +8 -0
  230. package/dist/src/internal/components/SelectOptions.d.ts +15 -0
  231. package/dist/src/internal/components/Shadow/Shadow.d.ts +1 -0
  232. package/dist/src/internal/components/StatusIcon/StatusIcon.d.ts +4 -33
  233. package/dist/src/internal/components/Surface/Surface.d.ts +40 -73
  234. package/dist/src/internal/components/Surface/surfaceGeometry.d.ts +12 -0
  235. package/dist/src/internal/components/VirtualizedOptionsPanel.d.ts +1 -0
  236. package/dist/src/internal/components/YearSelector/YearSelector.d.ts +14 -48
  237. package/dist/src/internal/components/YearSelector/internal/YearItem.d.ts +1 -0
  238. package/dist/src/internal/components/YearSelector/internal/useYearSelectorKeys.d.ts +4 -0
  239. package/dist/src/internal/constants/anvParts.d.ts +3 -55
  240. package/dist/src/internal/flubber/a2c.d.ts +0 -4
  241. package/dist/src/internal/flubber/arc.d.ts +0 -4
  242. package/dist/src/internal/flubber/bezier.d.ts +0 -4
  243. package/dist/src/internal/flubber/errors.d.ts +0 -4
  244. package/dist/src/internal/flubber/index.d.ts +0 -4
  245. package/dist/src/internal/flubber/interpolate.d.ts +3 -0
  246. package/dist/src/internal/flubber/linear.d.ts +0 -4
  247. package/dist/src/internal/flubber/parse.d.ts +0 -4
  248. package/dist/src/internal/flubber/path-properties.d.ts +0 -4
  249. package/dist/src/internal/functions/areOptionsValueEqual.d.ts +2 -5
  250. package/dist/src/internal/functions/buildSelectItems.d.ts +2 -4
  251. package/dist/src/internal/functions/childrenToString.d.ts +3 -21
  252. package/dist/src/internal/functions/getActiveElement.d.ts +4 -0
  253. package/dist/src/internal/functions/getInitial.d.ts +3 -13
  254. package/dist/src/internal/functions/getKeyboardFocusableElements.d.ts +6 -30
  255. package/dist/src/internal/functions/inlineMarkdown.d.ts +3 -16
  256. package/dist/src/internal/functions/isThenable.d.ts +1 -1
  257. package/dist/src/internal/functions/kebabize.d.ts +3 -13
  258. package/dist/src/internal/functions/mapOrder.d.ts +4 -0
  259. package/dist/src/internal/functions/popoverTargetDomProps.d.ts +1 -1
  260. package/dist/src/internal/functions/portalScopeClassNames.d.ts +6 -13
  261. package/dist/src/internal/functions/safePopover.d.ts +2 -0
  262. package/dist/src/internal/functions/sizeToToken.d.ts +1 -0
  263. package/dist/src/internal/functions/stripInlineMarkdown.d.ts +3 -5
  264. package/dist/src/internal/functions/syncFilterUtils.d.ts +4 -2
  265. package/dist/src/internal/functions/warnOnce.d.ts +1 -2
  266. package/dist/src/internal/hooks/useBulkActionRunner.d.ts +4 -27
  267. package/dist/src/internal/hooks/useCommitSelectionIfChanged.d.ts +7 -14
  268. package/dist/src/internal/hooks/useConfirmationDraft.d.ts +4 -4
  269. package/dist/src/internal/hooks/useContainerQuery/useContainerQuery.d.ts +2 -33
  270. package/dist/src/internal/hooks/useDebouncedCallback/useDebouncedCallback.d.ts +3 -25
  271. package/dist/src/internal/hooks/useDialogScrollLock/useDialogScrollLock.d.ts +6 -31
  272. package/dist/src/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.d.ts +2 -27
  273. package/dist/src/internal/hooks/useDownshiftEnvironment/useDownshiftEnvironment.d.ts +8 -24
  274. package/dist/src/internal/hooks/useFocusWithin/useFocusWithin.d.ts +3 -14
  275. package/dist/src/internal/hooks/useGroupedOptions.d.ts +4 -22
  276. package/dist/src/internal/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +4 -47
  277. package/dist/src/internal/hooks/useInvalidateOnOptionsChange.d.ts +2 -7
  278. package/dist/src/internal/hooks/useIsScrollable/useIsScrollable.d.ts +1 -5
  279. package/dist/src/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +1 -38
  280. package/dist/src/internal/hooks/useLayoutPropsUtil/useLayoutPropsUtil.d.ts +2 -38
  281. package/dist/src/internal/hooks/useNumberField/internal/createNumberMaskOptions.d.ts +2 -5
  282. package/dist/src/internal/hooks/useNumberField/internal/createTrailingZerosHandlers.d.ts +1 -2
  283. package/dist/src/internal/hooks/useNumberField/internal/numberMaskUtils.d.ts +0 -6
  284. package/dist/src/internal/hooks/useNumberField/internal/useNumberFieldInputMode.d.ts +2 -17
  285. package/dist/src/internal/hooks/useNumberField/internal/useNumberFieldKeys.d.ts +4 -30
  286. package/dist/src/internal/hooks/useNumberField/useNumberField.d.ts +19 -65
  287. package/dist/src/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +5 -33
  288. package/dist/src/internal/hooks/useOpenCloseTransitionStates/useOpenCloseTransitionStates.d.ts +4 -28
  289. package/dist/src/internal/hooks/useOptionallyControlledState/useOptionallyControlledState.d.ts +2 -46
  290. package/dist/src/internal/hooks/useOptionsSections.d.ts +4 -9
  291. package/dist/src/internal/hooks/usePinnedOptions.d.ts +4 -24
  292. package/dist/src/internal/hooks/usePlatform/usePlatform.d.ts +3 -50
  293. package/dist/src/internal/hooks/usePopoverCloseDelayWorkaround/usePopoverCloseDelayWorkaround.d.ts +4 -0
  294. package/dist/src/internal/hooks/usePopoverTransitionStates/usePopoverTransitionStates.d.ts +1 -21
  295. package/dist/src/internal/hooks/usePrevious/usePrevious.d.ts +1 -0
  296. package/dist/src/internal/hooks/useProcessedOptions.d.ts +2 -3
  297. package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +18 -61
  298. package/dist/src/internal/hooks/useSelectOrchestration.d.ts +4 -3
  299. package/dist/src/internal/hooks/useToggleSelection.d.ts +3 -3
  300. package/dist/src/internal/hooks/useTypeAhead/useTypeAhead.d.ts +3 -11
  301. package/dist/src/internal/testing/anvPartsContract.d.ts +9 -9
  302. package/dist/src/internal/testing/reactHostProps.d.ts +2 -2
  303. package/dist/src/internal/types/addNewItemTypes.d.ts +14 -16
  304. package/dist/src/internal/types/argTypes.d.ts +2 -0
  305. package/dist/src/internal/types/bulkActionTypes.d.ts +12 -41
  306. package/dist/src/internal/types/confirmationTypes.d.ts +6 -7
  307. package/dist/src/internal/types/optionContent.d.ts +6 -9
  308. package/dist/src/internal/types/props.d.ts +6 -1
  309. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +10 -12
  310. package/dist/src/internal/utils/arrayIdsEqual.d.ts +1 -5
  311. package/dist/src/internal/utils/generateChromaticStickersheetProps.d.ts +4 -8
  312. package/dist/src/internal/utils/inlineMarkdownRegex.d.ts +0 -4
  313. package/dist/src/internal/utils/layerManager.d.ts +5 -28
  314. package/dist/src/internal/utils/uniquifySvgDomIds.d.ts +0 -2
  315. package/dist/src/providers/AnvilProvider/AnvilProvider.d.ts +4 -0
  316. package/dist/src/providers/AnvilProvider/AnvilProviderContext.d.ts +16 -6
  317. package/dist/src/providers/LocalizationProvider/LocalizationContext.d.ts +7 -0
  318. package/dist/src/providers/LocalizationProvider/LocalizationProvider.d.ts +6 -0
  319. package/dist/src/providers/LocalizationProvider/LocalizationStoryWrapper.d.ts +1 -0
  320. package/dist/src/providers/LocalizationProvider/useTranslations.d.ts +6 -0
  321. package/dist/src/providers/PortalProvider/PortalProvider.d.ts +1 -0
  322. package/dist/src/providers/PortalProvider/PortalProviderContext.d.ts +3 -0
  323. package/dist/src/providers/ThemeProvider/ThemeProvider.d.ts +16 -0
  324. package/dist/src/providers/ThemeProvider/index.d.ts +1 -1
  325. package/dist/src/providers/ThemeProvider/internal/ThemeProviderContext.d.ts +2 -0
  326. package/dist/src/providers/ThemeProvider/themeToCssVars.d.ts +3 -4
  327. package/dist/src/providers/ThemeProvider/useTheme.d.ts +5 -0
  328. package/dist/src/providers/TrackingProvider/TrackingProvider.d.ts +1 -0
  329. package/dist/src/providers/TrackingProvider/TrackingProviderContext.d.ts +7 -0
  330. package/dist/src/providers/TrackingProvider/useTrackingContext.d.ts +5 -0
  331. package/dist/src/themes/carto.d.ts +3 -43
  332. package/dist/src/types/DataTrackingId.d.ts +1 -0
  333. package/dist/src/types/DistributiveOmit.d.ts +1 -14
  334. package/dist/src/types/MaxLengthCounterProps.d.ts +4 -0
  335. package/dist/src/types/PassThroughProps.d.ts +3 -0
  336. package/dist/src/types/ai-marks.d.ts +14 -45
  337. package/dist/src/types/ianaZones.d.ts +2 -0
  338. package/dist/src/types/locales.d.ts +1 -0
  339. package/dist/src/types/props.d.ts +14 -16
  340. package/dist/{stripInlineMarkdown-82hVO9EP.js → stripInlineMarkdown-CosQSmBr.js} +2 -2
  341. package/dist/stripInlineMarkdown-CosQSmBr.js.map +1 -0
  342. package/dist/{syncFilterUtils-CKXbRZG8.js → syncFilterUtils-_uwyt6FD.js} +20 -19
  343. package/dist/syncFilterUtils-_uwyt6FD.js.map +1 -0
  344. package/dist/themes.js.map +1 -1
  345. package/dist/token/core/component-variables.scss +156 -0
  346. package/dist/token/core/component.d.ts +78 -0
  347. package/dist/token/core/component.js +1018 -0
  348. package/dist/token/core/component.scss +82 -0
  349. package/dist/token.js +1096 -0
  350. package/dist/token.js.map +1 -1
  351. package/dist/{treeSync-ONC4TbTR.js → treeSync-Bp80Xduj.js} +4 -4
  352. package/dist/{treeSync-ONC4TbTR.js.map → treeSync-Bp80Xduj.js.map} +1 -1
  353. package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -1
  354. package/dist/useBreakpoint-BBNRlMGZ.js.map +1 -1
  355. package/dist/useDebouncedCallback-DLkapjcP.js.map +1 -1
  356. package/dist/useDialogScrollLock-BW-aVboo.js.map +1 -1
  357. package/dist/{useDrilldown-CicFEJpD.js → useDrilldown-D5XGfAUT.js} +3 -3
  358. package/dist/{useDrilldown-CicFEJpD.js.map → useDrilldown-D5XGfAUT.js.map} +1 -1
  359. package/dist/useFocusWithin-hi77jsrB.js.map +1 -1
  360. package/dist/{useInfiniteCombobox-DJoVEIk6.js → useInfiniteCombobox-ORhH44Rp.js} +6 -6
  361. package/dist/{useInfiniteCombobox-DJoVEIk6.js.map → useInfiniteCombobox-ORhH44Rp.js.map} +1 -1
  362. package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-CGybEc6x.js} +2 -6
  363. package/dist/useInitialFocus-CGybEc6x.js.map +1 -0
  364. package/dist/useIntersectionObserver-BEmMDO3P.js.map +1 -1
  365. package/dist/{useInvalidateOnOptionsChange-C6tF7696.js → useInvalidateOnOptionsChange-ieSgbkwT.js} +4 -4
  366. package/dist/useInvalidateOnOptionsChange-ieSgbkwT.js.map +1 -0
  367. package/dist/useLayoutPropsUtil-DjqeAJZ9.js.map +1 -1
  368. package/dist/useMergeRefs-Dfmtq9cI.js.map +1 -1
  369. package/dist/useNumberField-CXFYUZ_n.js.map +1 -1
  370. package/dist/useOnClickOutside-Zw5vzxSq.js.map +1 -1
  371. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
  372. package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
  373. package/dist/usePopoverTransitionStates-CDXCdyKa.js.map +1 -0
  374. package/dist/usePrefersColorScheme-CwOF0TjZ.js.map +1 -1
  375. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -1
  376. package/dist/usePrevious-Bvq-5auG.js.map +1 -1
  377. package/dist/useSize.js.map +1 -1
  378. package/dist/useSwipe-Cp-CJxLU.js.map +1 -1
  379. package/dist/useTheme-B4i6a3bM.js.map +1 -1
  380. package/dist/useTrackingContext-C522P4sv.js.map +1 -1
  381. package/dist/useTrackingId.js.map +1 -1
  382. package/dist/warnOnce-Y9PRHcU4.js.map +1 -1
  383. package/package.json +2 -2
  384. package/dist/AnvilProvider-D8msiELo.js.map +0 -1
  385. package/dist/Calendar-kSH8F7gx.js.map +0 -1
  386. package/dist/DataTable-D0YlJ7IA.js.map +0 -1
  387. package/dist/FieldLabel-CYCk2rz-.js.map +0 -1
  388. package/dist/FilterBar-CrIPZKvL.js.map +0 -1
  389. package/dist/ListView-Bkv1ZCSu.js.map +0 -1
  390. package/dist/Listbox-BWy_uBqm.js.map +0 -1
  391. package/dist/MenuFooter--lBF8OjJ.js.map +0 -1
  392. package/dist/MultiSelectFieldSync-gH-TQnq3.js.map +0 -1
  393. package/dist/SelectFieldLabel-CcX2GAym.js.map +0 -1
  394. package/dist/SelectOptions-BeehD5VV.js.map +0 -1
  395. package/dist/TimeField-DpnX_t31.js.map +0 -1
  396. package/dist/anvParts-BGg5dgfl.js +0 -43
  397. package/dist/anvParts-BGg5dgfl.js.map +0 -1
  398. package/dist/bulkActionTypes-Ct2cwT7b.js.map +0 -1
  399. package/dist/downshift.esm-xtSnQp44.js.map +0 -1
  400. package/dist/stripInlineMarkdown-82hVO9EP.js.map +0 -1
  401. package/dist/syncFilterUtils-CKXbRZG8.js.map +0 -1
  402. package/dist/useInitialFocus-BIvXK1Rp.js.map +0 -1
  403. package/dist/useInvalidateOnOptionsChange-C6tF7696.js.map +0 -1
  404. package/dist/usePopoverTransitionStates-B1opfxxn.js.map +0 -1
@@ -3,15 +3,15 @@ import { S as Spinner } from './Spinner-B7tTWcP6.js';
3
3
  import { B as Button } from './Button-Dwh_Nd4l.js';
4
4
  import { c as cx } from './index-De1g9FRV.js';
5
5
  import { useState, useRef, useCallback, useEffect, useMemo, forwardRef, useId, useImperativeHandle } from 'react';
6
- import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-BGg5dgfl.js';
6
+ import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
7
7
  import { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';
8
- import { T as Text } from './Text-D2TIPmZ2.js';
8
+ import { T as Text } from './Text-CZccJAnm.js';
9
9
  import { D as Divider } from './Divider-C7fp5Xb6.js';
10
10
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
11
11
  import { S as SrOnly } from './SrOnly-pnf8ajnh.js';
12
12
  import { I as Icon } from './Icon-B5zwN7GD.js';
13
13
  import { S as SvgCheck } from './check-Cf67OWrZ.js';
14
- import { i as isThenable, c as OptionRow, d as OptionRowSideContent, e as OptionCheckbox, f as OptionContentArea, b as useAdaptiveView } from './useInvalidateOnOptionsChange-C6tF7696.js';
14
+ import { i as isThenable, c as OptionRow, d as OptionRowSideContent, e as OptionCheckbox, f as OptionContentArea, b as useAdaptiveView } from './useInvalidateOnOptionsChange-ieSgbkwT.js';
15
15
  import { d as defaultRangeExtractor, u as useVirtualizer } from './index-DXeGMe23.js';
16
16
  import { S as SvgAdd } from './add-BcQkAUip.js';
17
17
  import { m as matchSorter } from './match-sorter.esm-CGAauEiU.js';
@@ -481,7 +481,7 @@ const OptionsPanel = forwardRef(
481
481
  );
482
482
  if (!isLastSection) {
483
483
  result.push(
484
- // Decorative — group boundaries are already conveyed by role="group" with aria-labelledby
484
+ // Visual only; role=group and aria-labelledby already name the sections.
485
485
  /* @__PURE__ */ jsx(
486
486
  "div",
487
487
  {
@@ -634,6 +634,7 @@ const VirtualizedOptionsPanel = forwardRef(
634
634
  estimateSize: (index) => estimateRowHeight(virtualRows[index]),
635
635
  overscan: 5,
636
636
  rangeExtractor,
637
+ // Keep scrolled-to rows from landing under the stuck header.
637
638
  scrollPaddingStart: stickyIndices.length > 0 ? stickyHeightRef.current : 0,
638
639
  enabled: isOpen,
639
640
  getItemKey: (index) => {
@@ -714,30 +715,30 @@ const VirtualizedOptionsPanel = forwardRef(
714
715
  }
715
716
  if (row.type === "header") {
716
717
  const labelId = `${baseId}-section-${row.sectionIndex}`;
717
- return /* @__PURE__ */ jsx(
718
- "div",
719
- {
720
- role: "presentation",
721
- "aria-hidden": "true",
722
- className: styles$1["pinned-section-header"],
723
- children: /* @__PURE__ */ jsx("span", { id: labelId, children: /* @__PURE__ */ jsx(Text, { variant: "eyebrow", children: row.label }) })
724
- }
725
- );
726
- }
727
- if (row.type === "divider") {
728
718
  return (
729
- // Decorative — group boundaries are already conveyed by role="group" with aria-labelledby
719
+ // Flattened virtual rows cannot wrap a labelled group.
730
720
  /* @__PURE__ */ jsx(
731
721
  "div",
732
722
  {
733
723
  role: "presentation",
734
724
  "aria-hidden": "true",
735
- className: styles$1["divider"],
736
- children: /* @__PURE__ */ jsx(Divider, {})
725
+ className: styles$1["pinned-section-header"],
726
+ children: /* @__PURE__ */ jsx("span", { id: labelId, children: /* @__PURE__ */ jsx(Text, { variant: "eyebrow", children: row.label }) })
737
727
  }
738
728
  )
739
729
  );
740
730
  }
731
+ if (row.type === "divider") {
732
+ return /* @__PURE__ */ jsx(
733
+ "div",
734
+ {
735
+ role: "presentation",
736
+ "aria-hidden": "true",
737
+ className: styles$1["divider"],
738
+ children: /* @__PURE__ */ jsx(Divider, {})
739
+ }
740
+ );
741
+ }
741
742
  if (row.type === "load-more") {
742
743
  if (loadingMore) {
743
744
  return /* @__PURE__ */ jsxs("div", { role: "presentation", className: styles$1["load-more"], children: [
@@ -1240,4 +1241,4 @@ const sortByGroup = (options, groupSorter) => {
1240
1241
  };
1241
1242
 
1242
1243
  export { AddNewItemButton as A, OptionsPanel as O, VirtualizedOptionsPanel as V, useProcessedOptions as a, buildSelectItems as b, sortByGroup as c, defaultSyncFilter as d, toSelectItem as e, shouldShowAddNewItem as s, toSyncFilterFn as t, useSelectOrchestration as u };
1243
- //# sourceMappingURL=syncFilterUtils-CKXbRZG8.js.map
1244
+ //# sourceMappingURL=syncFilterUtils-_uwyt6FD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncFilterUtils-_uwyt6FD.js","sources":["../src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.ts","../src/internal/components/SelectOption.tsx","../src/internal/components/InView.tsx","../src/internal/hooks/useOptionsSections.ts","../src/internal/components/OptionsPanel.tsx","../src/internal/components/VirtualizedOptionsPanel.tsx","../src/internal/hooks/usePinnedOptions.ts","../src/internal/hooks/useGroupedOptions.ts","../src/internal/hooks/useProcessedOptions.ts","../src/internal/functions/buildSelectItems.ts","../src/internal/types/addNewItemTypes.ts","../src/internal/components/AddNewItemButton.tsx","../src/internal/hooks/useSelectOrchestration.ts","../src/internal/functions/syncFilterUtils.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport type {\n SelectFieldOption,\n SelectFieldPageLazyResult,\n SelectFieldOffsetLazyResult,\n SelectFieldGroupLazyResult,\n SelectFieldPropsLazyPage,\n SelectFieldPropsLazyOffset,\n SelectFieldPropsLazyGroup,\n SelectFieldPropsEager,\n} from \"../../../components/SelectField/types\";\nimport { isThenable } from \"../../functions/isThenable\";\n\nexport const DEFAULT_PAGE_SIZE = 20;\nconst DEFAULT_CACHE_MAX_SIZE = 15;\n\n/**\n * Cache policy for per-search snapshots. Stays on unless `enabled` is `false`.\n */\nexport type CacheConfig = {\n /** Off only when `false`. Defaults to on. */\n enabled?: boolean;\n /** Distinct search keys kept. Exceeding this wipes the map. Defaults to `15`. */\n maxSize?: number;\n};\n\ntype CachedSearchState<TID extends string | number> = {\n options: SelectFieldOption<TID>[];\n hasMore: boolean;\n previousPage: number;\n previousOffset: number;\n previousGroup: string | number | null;\n};\n\ntype UseSelectFieldLoadingConfigLazyPage<TID extends string | number> = Pick<\n SelectFieldPropsLazyPage<TID>,\n \"lazy\" | \"loadOptions\"\n> & {\n pageSize: number;\n cache?: CacheConfig;\n};\n\ntype UseSelectFieldLoadingConfigLazyOffset<TID extends string | number> = Pick<\n SelectFieldPropsLazyOffset<TID>,\n \"lazy\" | \"loadOptions\"\n> & {\n limit: number;\n cache?: CacheConfig;\n};\n\ntype UseSelectFieldLoadingConfigLazyGroup<TID extends string | number> = Pick<\n SelectFieldPropsLazyGroup<TID>,\n \"lazy\" | \"loadOptions\"\n> & {\n cache?: CacheConfig;\n};\n\ntype UseSelectFieldLoadingConfigEager<TID extends string | number> = Pick<\n SelectFieldPropsEager<TID>,\n \"lazy\" | \"loadOptions\"\n> & {\n cache?: CacheConfig;\n};\n\n/**\n * Discriminated by `lazy`: omitted/`false` is eager; `\"page\"` needs `pageSize`;\n * `\"offset\"` needs `limit`; `\"group\"` pages by option `group`.\n */\nexport type UseSelectFieldLoadingConfig<TID extends string | number> =\n | UseSelectFieldLoadingConfigLazyPage<TID>\n | UseSelectFieldLoadingConfigLazyOffset<TID>\n | UseSelectFieldLoadingConfigLazyGroup<TID>\n | UseSelectFieldLoadingConfigEager<TID>;\n\nexport type UseSelectFieldLoadingReturn<TID extends string | number> = {\n /** Replaced on `{ initial: true }`; appended on load-more. Empty until the first load. */\n options: SelectFieldOption<TID>[];\n /** True only while an initial fetch is in flight. Sync eager loads skip this. */\n loading: boolean;\n /** True while a continuation fetch is in flight. */\n loadingMore: boolean;\n /** From the last lazy result; stays `false` in eager mode. */\n hasMore: boolean;\n /**\n * `{ initial: true }` replaces options (or restores a cache hit). Otherwise\n * appends.\n */\n loadOptions: (\n searchValue: string,\n options?: { initial?: boolean },\n ) => Promise<void>;\n /** Same as `loadOptions(searchValue, { initial: false })`. */\n loadMore: (searchValue: string) => Promise<void>;\n /** Clears options, pagination, and busy flags. Does not call `clearCache`. */\n reset: () => void;\n /** Drops cached searches. In-memory options stay. */\n clearCache: () => void;\n};\n\n/**\n * Loads SelectField options for eager or lazy (`page` / `offset` / `group`)\n * modes. Starts empty; callers must invoke `loadOptions`.\n */\nexport function useSelectFieldLoading<TID extends string | number>(\n config: UseSelectFieldLoadingConfig<TID>,\n): UseSelectFieldLoadingReturn<TID> {\n const { lazy, loadOptions: loadOptionsProp, cache: cacheConfig } = config;\n\n const cacheEnabled = cacheConfig?.enabled !== false;\n const cacheMaxSize = cacheConfig?.maxSize ?? DEFAULT_CACHE_MAX_SIZE;\n\n const [options, setOptions] = useState<SelectFieldOption<TID>[]>([]);\n const [hasMoreToLoad, setHasMoreToLoad] = useState(false);\n const [previousGroup, setPreviousGroup] = useState<string | number | null>(\n null,\n );\n const [previousPage, setPreviousPage] = useState<number>(0);\n const [previousOffset, setPreviousOffset] = useState<number>(0);\n const [loading, setLoading] = useState(false);\n const [loadingMore, setLoadingMore] = useState(false);\n\n const [stateCache, setStateCache] = useState<\n Map<string, CachedSearchState<TID>>\n >(() => new Map());\n const currentSearchValueRef = useRef<string>(\"\");\n // Distinguishes \"never loaded\" empty from an empty API result so the cache\n // effect does not snapshot the first paint.\n const hasCompletedLoadRef = useRef(false);\n\n const appendOptions = useCallback((newOptions: SelectFieldOption<TID>[]) => {\n setOptions((prevOptions) => prevOptions.concat(newOptions));\n }, []);\n\n const pageSize =\n lazy === \"page\"\n ? (config as UseSelectFieldLoadingConfigLazyPage<TID>).pageSize\n : DEFAULT_PAGE_SIZE;\n const limit =\n lazy === \"offset\"\n ? (config as UseSelectFieldLoadingConfigLazyOffset<TID>).limit\n : DEFAULT_PAGE_SIZE;\n\n const restoreFromCache = useCallback((cached: CachedSearchState<TID>) => {\n setOptions(cached.options);\n setHasMoreToLoad(cached.hasMore);\n setPreviousPage(cached.previousPage);\n setPreviousOffset(cached.previousOffset);\n setPreviousGroup(cached.previousGroup);\n }, []);\n\n // Runs after batched load updates so the snapshot includes options + cursor.\n useEffect(() => {\n if (!cacheEnabled) return;\n const searchValue = currentSearchValueRef.current;\n if (!hasCompletedLoadRef.current) return;\n\n setStateCache((prev) => {\n // Not LRU: at capacity, every snapshot write wipes the map first.\n if (prev.size >= cacheMaxSize) {\n prev.clear();\n }\n\n prev.set(searchValue, {\n options,\n hasMore: hasMoreToLoad,\n previousPage,\n previousOffset,\n previousGroup,\n });\n return new Map(prev);\n });\n }, [\n cacheEnabled,\n cacheMaxSize,\n options,\n hasMoreToLoad,\n previousPage,\n previousOffset,\n previousGroup,\n ]);\n\n const loadOptions = useCallback(\n async (\n searchValue: string,\n options?: { initial?: boolean },\n ): Promise<void> => {\n const isInitial = !!options?.initial;\n\n if (isInitial && cacheEnabled) {\n const cached = stateCache.get(searchValue);\n if (cached) {\n currentSearchValueRef.current = searchValue;\n restoreFromCache(cached);\n return;\n }\n }\n\n if (isInitial) {\n currentSearchValueRef.current = searchValue;\n }\n\n const setBusy = isInitial ? setLoading : setLoadingMore;\n\n const applyEagerResult = (resolved: SelectFieldOption<TID>[]) => {\n (isInitial ? setOptions : appendOptions)(resolved);\n hasCompletedLoadRef.current = true;\n };\n\n if (!lazy) {\n const result = loadOptionsProp(searchValue);\n if (!isThenable(result)) {\n // Yield so this commit's cache effect does not snapshot empty options.\n await Promise.resolve();\n applyEagerResult(result);\n return;\n }\n\n setBusy(true);\n try {\n const awaited = await result;\n applyEagerResult(Array.isArray(awaited) ? awaited : await awaited);\n } finally {\n setBusy(false);\n }\n return;\n }\n\n setBusy(true);\n try {\n let result:\n | SelectFieldPageLazyResult<TID>\n | SelectFieldOffsetLazyResult<TID>\n | SelectFieldGroupLazyResult<TID>;\n\n if (lazy === \"page\") {\n const page = isInitial ? 0 : previousPage;\n result = await loadOptionsProp(searchValue, page, pageSize);\n setPreviousPage(isInitial ? 1 : page + 1);\n } else if (lazy === \"offset\") {\n const offset = isInitial ? 0 : previousOffset;\n result = await loadOptionsProp(searchValue, offset, limit);\n setPreviousOffset(isInitial ? limit : offset + limit);\n } else if (lazy === \"group\") {\n const group = isInitial ? null : previousGroup;\n result = await loadOptionsProp(searchValue, group);\n setPreviousGroup(\n result.options[result.options.length - 1]?.group ?? null,\n );\n } else {\n throw new Error(\n `Invalid lazy mode: ${lazy}. Expected 'page', 'offset', or 'group'.`,\n );\n }\n\n setHasMoreToLoad(result.hasMore ?? false);\n (isInitial ? setOptions : appendOptions)(result.options);\n hasCompletedLoadRef.current = true;\n } finally {\n setBusy(false);\n }\n },\n [\n lazy,\n pageSize,\n limit,\n loadOptionsProp,\n appendOptions,\n previousPage,\n previousOffset,\n previousGroup,\n cacheEnabled,\n stateCache,\n restoreFromCache,\n ],\n );\n\n const loadMore = useCallback(\n async (searchValue: string): Promise<void> => {\n await loadOptions(searchValue, { initial: false });\n },\n [loadOptions],\n );\n\n const reset = useCallback(() => {\n setOptions([]);\n setHasMoreToLoad(false);\n setPreviousGroup(null);\n setPreviousPage(0);\n setPreviousOffset(0);\n setLoading(false);\n setLoadingMore(false);\n }, []);\n\n const clearCache = useCallback(() => {\n setStateCache(new Map());\n }, []);\n\n return {\n options,\n loading,\n loadingMore,\n hasMore: hasMoreToLoad,\n loadOptions,\n loadMore,\n reset,\n clearCache,\n };\n}\n","import type { SelectItem } from \"../types/selectFieldInternalTypes\";\nimport Icon from \"../../components/Icon\";\nimport styles from \"./SelectOption.module.scss\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport cx from \"classnames\";\nimport type { CheckState } from \"../../types\";\nimport type { GetItemPropsFn } from \"../types/selectFieldInternalTypes\";\nimport { OptionCheckbox } from \"./OptionCheckbox\";\nimport { OptionContentArea } from \"./OptionContentArea\";\nimport { OptionRow, OptionRowSideContent } from \"./OptionRow\";\nimport { ANV_PART_ATTR, COMMON_PART } from \"../constants/anvParts\";\n\nexport type SelectOptionProps = {\n item: SelectItem;\n /** Position passed to the host's item-prop getter. */\n index: number;\n /** Whether the host currently highlights this row. */\n highlighted: boolean;\n /** Applies disabled row styling. */\n disabled: boolean;\n /** Supplies the host listbox's interaction and accessibility props. */\n getItemProps: GetItemPropsFn;\n /** Chooses a leading checkbox or trailing selected checkmark. */\n selectionType: \"single\" | \"multiple\";\n /** Selection state shown by the row indicator. */\n checked: CheckState;\n /** Adds separation styling to sticky bulk-action rows after scrolling. */\n isListScrolled?: boolean;\n};\n\n/** Renders a select item with its content and selection indicator. */\nexport const SelectOption = ({\n item,\n index,\n highlighted,\n disabled,\n getItemProps,\n selectionType,\n checked,\n isListScrolled = false,\n}: SelectOptionProps) => {\n const isBulkAction =\n item.type === \"select-all\" || item.type === \"select-filtered\";\n const isSingleSelected = selectionType === \"single\" && checked === \"checked\";\n\n return (\n <OptionRow\n key={item.id}\n data-item-index={index}\n disabled={disabled}\n {...getItemProps({\n item,\n index,\n \"data-type\": item.type,\n [ANV_PART_ATTR]: COMMON_PART.option,\n className: cx(styles[\"select-option\"], {\n [styles.highlighted]: highlighted && !isSingleSelected,\n [styles[\"single-selected\"]]: isSingleSelected && !highlighted,\n [styles[\"single-selected-highlighted\"]]:\n isSingleSelected && highlighted,\n [styles[\"bulk-action\"]]: isBulkAction,\n [styles.floating]: isBulkAction && isListScrolled,\n }),\n })}\n >\n {selectionType === \"multiple\" && (\n <OptionRowSideContent>\n <OptionCheckbox checkState={checked} />\n </OptionRowSideContent>\n )}\n <OptionContentArea\n label={item.original.label}\n content={item.original.content}\n />\n {selectionType === \"single\" && checked === \"checked\" && (\n <OptionRowSideContent>\n <Icon\n aria-hidden=\"true\"\n size=\"medium\"\n svg={Check}\n className={styles[\"checkmark\"]}\n />\n </OptionRowSideContent>\n )}\n </OptionRow>\n );\n};\n","import type { ReactNode } from \"react\";\nimport { useIntersectionObserver } from \"../hooks\";\n\ntype InViewProps = {\n children?: ReactNode;\n /** Receives each observed viewport-visibility change. */\n onVisibilityChange?: (isVisible: boolean) => void;\n /** Expands or contracts the viewport bounds using CSS margin syntax. */\n rootMargin?: string;\n};\n\n/**\n * Wraps content in an Intersection Observer target and reports viewport\n * visibility.\n */\nexport const InView = ({\n children,\n onVisibilityChange,\n rootMargin,\n}: InViewProps) => {\n const { ref } = useIntersectionObserver({\n onChange: (isIntersecting) => {\n onVisibilityChange?.(isIntersecting);\n },\n rootMargin,\n });\n\n return <div ref={ref}>{children}</div>;\n};\n","import { useMemo } from \"react\";\nimport type {\n SectionMeta,\n SelectItem,\n} from \"../types/selectFieldInternalTypes\";\n\nexport type SectionItem = { item: SelectItem; index: number };\n\nexport type PinnedSection = {\n type: \"pinned\";\n label: string;\n items: SectionItem[];\n loading?: boolean;\n};\n\nexport type GroupSection = {\n type: \"group\";\n label: string;\n items: SectionItem[];\n};\n\nexport type FlatSection = {\n type: \"flat\";\n items: SectionItem[];\n};\n\nexport type Section = PinnedSection | GroupSection | FlatSection;\n\nexport type VirtualRow =\n | { type: \"item\"; item: SelectItem; index: number }\n | { type: \"header\"; label: string; sectionIndex: number }\n | { type: \"divider\"; sectionIndex: number }\n | { type: \"load-more\" };\n\n/**\n * Partitions a flat item list into indexed pinned, grouped, and unsectioned\n * ranges.\n */\nexport const useOptionsSections = (\n items: SelectItem[],\n sectionsMeta: SectionMeta[],\n): Section[] => {\n return useMemo((): Section[] => {\n if (sectionsMeta.length === 0) {\n return [\n {\n type: \"flat\",\n items: items.map((item, index) => ({ item, index })),\n },\n ];\n }\n\n const result: Section[] = [];\n\n const firstSectionStartIndex = Math.min(\n ...sectionsMeta.map((s) => s.startIndex),\n );\n\n if (firstSectionStartIndex > 0) {\n const flatItems: SectionItem[] = [];\n for (let i = 0; i < firstSectionStartIndex; i++) {\n if (items[i]) {\n flatItems.push({ item: items[i], index: i });\n }\n }\n if (flatItems.length > 0) {\n result.push({ type: \"flat\", items: flatItems });\n }\n }\n\n sectionsMeta.forEach((meta) => {\n const sectionItems: SectionItem[] = [];\n for (let i = meta.startIndex; i < meta.endIndex; i++) {\n if (items[i]) {\n sectionItems.push({ item: items[i], index: i });\n }\n }\n if (meta.type === \"pinned\") {\n if (sectionItems.length > 0 || meta.loading) {\n result.push({\n type: \"pinned\",\n label: meta.label,\n items: sectionItems,\n loading: meta.loading,\n });\n }\n } else if (sectionItems.length > 0) {\n result.push({\n type: \"group\",\n label: meta.label,\n items: sectionItems,\n });\n }\n });\n\n const lastSectionIndex =\n sectionsMeta.length > 0\n ? Math.max(...sectionsMeta.map((s) => s.endIndex))\n : 0;\n\n if (lastSectionIndex < items.length) {\n const flatItems: SectionItem[] = [];\n for (let i = lastSectionIndex; i < items.length; i++) {\n flatItems.push({ item: items[i], index: i });\n }\n if (flatItems.length > 0) {\n result.push({ type: \"flat\", items: flatItems });\n }\n }\n\n return result;\n }, [items, sectionsMeta]);\n};\n\n/**\n * Builds virtual rows and index metadata, marking bulk-action rows as sticky\n * and appending a load-more row when requested.\n */\nexport function flattenSectionsToVirtualRows(\n sections: Section[],\n hasMore: boolean,\n): {\n virtualRows: VirtualRow[];\n downshiftIndexToVirtualRowIndex: Record<number, number>;\n stickyIndices: number[];\n} {\n const virtualRows: VirtualRow[] = [];\n const downshiftIndexToVirtualRowIndex: Record<number, number> = {};\n const stickyIndices: number[] = [];\n\n sections.forEach((section, sectionIndex) => {\n const isLastSection = sectionIndex === sections.length - 1;\n\n if (section.type === \"pinned\" || section.type === \"group\") {\n virtualRows.push({\n type: \"header\",\n label: section.label,\n sectionIndex,\n });\n\n section.items.forEach(({ item, index }) => {\n downshiftIndexToVirtualRowIndex[index] = virtualRows.length;\n virtualRows.push({ type: \"item\", item, index });\n });\n\n if (!isLastSection) {\n virtualRows.push({ type: \"divider\", sectionIndex });\n }\n } else {\n section.items.forEach(({ item, index }) => {\n const isBulkAction =\n item.type === \"select-all\" || item.type === \"select-filtered\";\n if (isBulkAction) {\n stickyIndices.push(virtualRows.length);\n }\n downshiftIndexToVirtualRowIndex[index] = virtualRows.length;\n virtualRows.push({ type: \"item\", item, index });\n });\n }\n });\n\n if (hasMore) {\n virtualRows.push({ type: \"load-more\" });\n }\n\n return { virtualRows, downshiftIndexToVirtualRowIndex, stickyIndices };\n}\n","import type { SelectItem } from \"../types/selectFieldInternalTypes\";\nimport Spinner from \"../../components/Spinner\";\nimport Button from \"../../components/Button\";\nimport styles from \"./SelectOptions.module.scss\";\nimport cx from \"classnames\";\nimport {\n type CSSProperties,\n forwardRef,\n type ReactNode,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { SelectOption } from \"./SelectOption\";\nimport { ANV_PART_ATTR, COMMON_PART } from \"../constants/anvParts\";\nimport { InView } from \"./InView\";\nimport { Text } from \"../../components/Text\";\nimport { SrOnly } from \"../../components\";\nimport Divider from \"../../components/Divider\";\nimport type { CheckState } from \"../../types\";\nimport type {\n GetItemPropsFn,\n GetMenuPropsFn,\n SectionMeta,\n} from \"../types/selectFieldInternalTypes\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useOptionsSections } from \"../hooks/useOptionsSections\";\n\nexport type OptionsPanelHandle = {\n scrollToTop: () => void;\n /** Scrolls the row at `index` into view. `<= 0` shows a leading group header. */\n scrollToIndex: (index: number) => void;\n};\n\nexport type OptionsPanelProps = {\n /** When false, option rows stay unmounted inside the menu scroller. */\n isOpen: boolean;\n /** Flattened option, pinned/group, and bulk-action rows. */\n items: SelectItem[];\n /** Downshift getter for the menu scroller. */\n getMenuProps: GetMenuPropsFn;\n /** Downshift getter for each option row. */\n getItemProps: GetItemPropsFn;\n /** Host highlight index into `items`. */\n highlightedIndex: number;\n /** Selection indicator shown on each row. */\n getCheckedState: (item: SelectItem) => CheckState;\n /** Leading checkbox vs trailing selected checkmark. */\n selectionType: \"single\" | \"multiple\";\n /** When true, shows the load-more control. */\n hasMore: boolean;\n /** Fetches the next page of options. */\n onLoadMore: () => void;\n /** Replaces the list with a spinner while the current page loads. */\n loading: boolean;\n /** Spinner in the load-more slot. */\n loadingMore: boolean;\n /** Skips automatic next-page fetch; the Load more button remains. */\n disableAutoLoadMore?: boolean;\n /** Disables every row, in addition to per-item `disabled`. */\n disabled?: boolean;\n className?: string;\n style?: CSSProperties;\n /** Pinned and group ranges over `items`. */\n sectionsMeta?: SectionMeta[];\n};\n\n/** Non-virtualized option list scroller. */\nexport const OptionsPanel = forwardRef<OptionsPanelHandle, OptionsPanelProps>(\n (\n {\n isOpen,\n items,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n getCheckedState,\n selectionType,\n hasMore,\n onLoadMore,\n loading,\n loadingMore,\n disableAutoLoadMore,\n disabled,\n className,\n style,\n sectionsMeta = [],\n },\n ref,\n ) => {\n const baseId = useId();\n const scrollSentinelRef = useRef<HTMLDivElement>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n const [isScrolled, setIsScrolled] = useState(false);\n\n useImperativeHandle(ref, () => ({\n scrollToTop: () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = 0;\n }\n },\n scrollToIndex: (index: number) => {\n if (!scrollerRef.current) return;\n if (index <= 0) {\n // Nearest-item scroll would clip a leading group header.\n scrollerRef.current.scrollTop = 0;\n return;\n }\n const item = scrollerRef.current.querySelector(\n `[data-item-index=\"${index}\"]`,\n );\n if (item) {\n item.scrollIntoView({ block: \"nearest\" });\n }\n },\n }));\n\n // Sentinel leaving the scroller means sticky bulk rows should show a shadow.\n useEffect(() => {\n if (!isOpen) {\n setIsScrolled(false);\n return;\n }\n if (!scrollSentinelRef.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n setIsScrolled(!entry.isIntersecting);\n });\n },\n { threshold: 0, root: scrollerRef.current },\n );\n observer.observe(scrollSentinelRef.current);\n return () => observer.disconnect();\n }, [isOpen]);\n\n // Keep the full-panel spinner so an empty pinned placeholder does not collapse the list.\n const anyPinnedLoading = sectionsMeta.some(\n (s) => s.type === \"pinned\" && s.loading,\n );\n\n const handleLoaderVisibilityChange = (visible: boolean) => {\n if (visible && !disableAutoLoadMore) {\n onLoadMore();\n }\n };\n\n const sections = useOptionsSections(items, sectionsMeta);\n\n const renderItem = (item: SelectItem, index: number): ReactNode => (\n <SelectOption\n key={item.id}\n item={item}\n index={index}\n getItemProps={getItemProps}\n selectionType={selectionType}\n checked={getCheckedState(item)}\n highlighted={highlightedIndex === index}\n disabled={(disabled || item.disabled) ?? false}\n isListScrolled={isScrolled}\n />\n );\n\n const renderSections = (): ReactNode[] => {\n const result: ReactNode[] = [];\n\n sections.forEach((section, sectionIndex) => {\n const isLastSection = sectionIndex === sections.length - 1;\n\n if (section.type === \"pinned\" || section.type === \"group\") {\n const labelId = `${baseId}-section-${sectionIndex}`;\n\n result.push(\n <div\n key={`section-${sectionIndex}`}\n role=\"group\"\n aria-labelledby={labelId}\n className={styles[\"pinned-section\"]}\n >\n <span id={labelId} className={styles[\"pinned-section-header\"]}>\n <Text variant=\"eyebrow\">{section.label}</Text>\n </span>\n <div className={styles[\"pinned-section-list\"]}>\n {section.items.map(({ item, index }) =>\n renderItem(item, index),\n )}\n </div>\n </div>,\n );\n if (!isLastSection) {\n result.push(\n // Visual only; role=group and aria-labelledby already name the sections.\n <div\n key={`divider-${sectionIndex}`}\n role=\"presentation\"\n aria-hidden=\"true\"\n className={styles[\"divider\"]}\n >\n <Divider />\n </div>,\n );\n }\n } else {\n section.items.forEach(({ item, index }) => {\n result.push(renderItem(item, index));\n });\n }\n });\n\n return result;\n };\n\n const menuProps = getMenuProps({\n className: cx(styles[\"scroller\"], className),\n style,\n [ANV_PART_ATTR]: COMMON_PART.menu,\n });\n\n const menuRef = useMergeRefs([menuProps.ref, scrollerRef]);\n\n return (\n <div {...menuProps} ref={menuRef}>\n <div className={styles[\"select-field-list\"]}>\n {isOpen && (\n <div\n ref={scrollSentinelRef}\n className={styles[\"scroll-sentinel\"]}\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n )}\n {isOpen && (\n <>\n {loading || anyPinnedLoading ? (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Spinner size=\"medium\" />\n </div>\n ) : items.length > 0 ? (\n renderSections()\n ) : (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Text subdued size=\"small\">\n No match found\n </Text>\n </div>\n )}\n </>\n )}\n {loadingMore ? (\n <div role=\"presentation\" className={styles[\"load-more\"]}>\n <Spinner size=\"small\" />\n <SrOnly>Loading more...</SrOnly>\n </div>\n ) : hasMore && !loading ? (\n <div role=\"presentation\">\n <InView\n onVisibilityChange={handleLoaderVisibilityChange}\n rootMargin=\"0px 0px -100px 0px\"\n >\n <div className={styles[\"load-more\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n onClick={onLoadMore}\n {...{ [ANV_PART_ATTR]: COMMON_PART.loadMoreButton }}\n >\n Load more\n </Button>\n </div>\n </InView>\n </div>\n ) : null}\n </div>\n </div>\n );\n },\n);\n\nOptionsPanel.displayName = \"OptionsPanel\";\n","import Spinner from \"../../components/Spinner\";\nimport Button from \"../../components/Button\";\nimport styles from \"./SelectOptions.module.scss\";\nimport cx from \"classnames\";\nimport {\n forwardRef,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { SelectOption } from \"./SelectOption\";\nimport { Text } from \"../../components/Text\";\nimport { SrOnly } from \"../../components\";\nimport Divider from \"../../components/Divider\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport {\n useOptionsSections,\n flattenSectionsToVirtualRows,\n type VirtualRow,\n} from \"../hooks/useOptionsSections\";\nimport { defaultRangeExtractor, useVirtualizer } from \"@tanstack/react-virtual\";\nimport type { Range } from \"@tanstack/react-virtual\";\nimport type { OptionsPanelProps, OptionsPanelHandle } from \"./OptionsPanel\";\nimport { ANV_PART_ATTR, COMMON_PART } from \"../constants/anvParts\";\n\nconst EST_PADDING_BLOCK = 16; // $size-2 * 2\nconst EST_LINE_HEIGHT = 18; // $size-4 + $size-half\nconst EST_CHIP_ROW_HEIGHT = 28; // $size-1 + chip\nconst EST_SIDE_CONTENT_HEIGHT = 40; // $size-10\nconst EST_HEADER_HEIGHT = 32;\nconst EST_DIVIDER_HEIGHT = 17;\nconst EST_LOAD_MORE_HEIGHT = 40;\nconst EST_BASE_ITEM_HEIGHT = EST_PADDING_BLOCK + EST_LINE_HEIGHT;\n\nfunction estimateRowHeight(row: VirtualRow): number {\n if (row.type === \"header\") return EST_HEADER_HEIGHT;\n if (row.type === \"divider\") return EST_DIVIDER_HEIGHT;\n if (row.type === \"load-more\") return EST_LOAD_MORE_HEIGHT;\n\n const content = row.item.original.content;\n if (!content) return EST_BASE_ITEM_HEIGHT;\n\n let contentHeight = EST_LINE_HEIGHT;\n if (content.description) contentHeight += EST_LINE_HEIGHT;\n if (content.chips?.length) contentHeight += EST_CHIP_ROW_HEIGHT;\n if (content.avatar || content.icon)\n contentHeight = Math.max(contentHeight, EST_SIDE_CONTENT_HEIGHT);\n\n return EST_PADDING_BLOCK + contentHeight;\n}\n\n/** Virtualized {@link OptionsPanel} scroller. */\nexport const VirtualizedOptionsPanel = forwardRef<\n OptionsPanelHandle,\n OptionsPanelProps\n>(\n (\n {\n isOpen,\n items,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n getCheckedState,\n selectionType,\n hasMore,\n onLoadMore,\n loading,\n loadingMore,\n disableAutoLoadMore,\n disabled,\n className,\n style,\n sectionsMeta = [],\n },\n ref,\n ) => {\n const baseId = useId();\n const scrollSentinelRef = useRef<HTMLDivElement>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n const [isScrolled, setIsScrolled] = useState(false);\n\n // Sentinel leaving the scroller means sticky bulk rows should show a shadow.\n useEffect(() => {\n if (!isOpen) {\n setIsScrolled(false);\n return;\n }\n if (!scrollSentinelRef.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n setIsScrolled(!entry.isIntersecting);\n });\n },\n { threshold: 0, root: scrollerRef.current },\n );\n observer.observe(scrollSentinelRef.current);\n return () => observer.disconnect();\n }, [isOpen]);\n\n // Keep the full-panel spinner so an empty pinned placeholder does not collapse the list.\n const anyPinnedLoading = sectionsMeta.some(\n (s) => s.type === \"pinned\" && s.loading,\n );\n\n const sections = useOptionsSections(items, sectionsMeta);\n\n const { virtualRows, downshiftIndexToVirtualRowIndex, stickyIndices } =\n useMemo(\n () => flattenSectionsToVirtualRows(sections, hasMore),\n [sections, hasMore],\n );\n\n const stickyHeightRef = useRef(EST_BASE_ITEM_HEIGHT);\n\n // Keep the stuck header in the measured range so it is not virtualized away.\n const rangeExtractor = useCallback(\n (range: Range) => {\n if (stickyIndices.length === 0) {\n return defaultRangeExtractor(range);\n }\n const activeStickyIndex =\n [...stickyIndices]\n .reverse()\n .find((index) => range.startIndex >= index) ?? 0;\n\n const next = new Set([\n activeStickyIndex,\n ...defaultRangeExtractor(range),\n ]);\n\n return [...next].sort((a, b) => a - b);\n },\n [stickyIndices],\n );\n\n const virtualizer = useVirtualizer({\n count: virtualRows.length,\n getScrollElement: () => scrollerRef.current,\n estimateSize: (index) => estimateRowHeight(virtualRows[index]),\n overscan: 5,\n rangeExtractor,\n // Keep scrolled-to rows from landing under the stuck header.\n scrollPaddingStart:\n stickyIndices.length > 0 ? stickyHeightRef.current : 0,\n enabled: isOpen,\n getItemKey: (index) => {\n const row = virtualRows[index];\n if (row.type === \"item\") return row.item.id;\n if (row.type === \"header\") return `header-${row.sectionIndex}`;\n if (row.type === \"divider\") return `divider-${row.sectionIndex}`;\n return \"load-more\";\n },\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n if (stickyIndices.length > 0) {\n const stickyItem = virtualItems.find((vi) =>\n stickyIndices.includes(vi.index),\n );\n if (stickyItem) {\n stickyHeightRef.current = stickyItem.size;\n }\n }\n\n const downshiftMapRef = useRef(downshiftIndexToVirtualRowIndex);\n downshiftMapRef.current = downshiftIndexToVirtualRowIndex;\n\n const virtualizerRef = useRef(virtualizer);\n virtualizerRef.current = virtualizer;\n\n useImperativeHandle(ref, () => ({\n scrollToTop: () => {\n if (virtualizerRef.current) {\n virtualizerRef.current.scrollToOffset(0);\n }\n },\n scrollToIndex: (index: number) => {\n if (index <= 0) {\n // Nearest-item scroll would clip a leading group header.\n virtualizerRef.current.scrollToOffset(0);\n return;\n }\n const virtualRowIndex = downshiftMapRef.current[index];\n if (virtualRowIndex != null) {\n virtualizerRef.current.scrollToIndex(virtualRowIndex, {\n align: \"auto\",\n });\n }\n },\n }));\n\n const onLoadMoreRef = useRef(onLoadMore);\n onLoadMoreRef.current = onLoadMore;\n\n // Last rendered virtual row standing in for the non-virtual InView sentinel.\n useEffect(() => {\n if (!hasMore || loadingMore || disableAutoLoadMore) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n if (!lastItem) return;\n if (lastItem.index >= virtualRows.length - 1) {\n onLoadMoreRef.current();\n }\n }, [\n hasMore,\n loadingMore,\n disableAutoLoadMore,\n virtualItems,\n virtualRows.length,\n ]);\n\n const isSticky = useCallback(\n (index: number) => stickyIndices.includes(index),\n [stickyIndices],\n );\n\n const renderVirtualRow = (row: VirtualRow): ReactNode => {\n if (row.type === \"item\") {\n return (\n <SelectOption\n item={row.item}\n index={row.index}\n getItemProps={getItemProps}\n selectionType={selectionType}\n checked={getCheckedState(row.item)}\n highlighted={highlightedIndex === row.index}\n disabled={(disabled || row.item.disabled) ?? false}\n isListScrolled={isScrolled}\n />\n );\n }\n\n if (row.type === \"header\") {\n const labelId = `${baseId}-section-${row.sectionIndex}`;\n return (\n // Flattened virtual rows cannot wrap a labelled group.\n <div\n role=\"presentation\"\n aria-hidden=\"true\"\n className={styles[\"pinned-section-header\"]}\n >\n <span id={labelId}>\n <Text variant=\"eyebrow\">{row.label}</Text>\n </span>\n </div>\n );\n }\n\n if (row.type === \"divider\") {\n return (\n <div\n role=\"presentation\"\n aria-hidden=\"true\"\n className={styles[\"divider\"]}\n >\n <Divider />\n </div>\n );\n }\n\n if (row.type === \"load-more\") {\n if (loadingMore) {\n return (\n <div role=\"presentation\" className={styles[\"load-more\"]}>\n <Spinner size=\"small\" />\n <SrOnly>Loading more...</SrOnly>\n </div>\n );\n }\n return (\n <div role=\"presentation\">\n <div className={styles[\"load-more\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n onClick={() => onLoadMoreRef.current()}\n {...{ [ANV_PART_ATTR]: COMMON_PART.loadMoreButton }}\n >\n Load more\n </Button>\n </div>\n </div>\n );\n }\n\n return null;\n };\n\n const menuProps = getMenuProps({\n className: cx(styles[\"scroller\"], className),\n style,\n [ANV_PART_ATTR]: COMMON_PART.menu,\n });\n\n const menuRef = useMergeRefs([menuProps.ref, scrollerRef]);\n\n return (\n <div {...menuProps} ref={menuRef}>\n <div className={styles[\"select-field-list\"]}>\n {isOpen && (\n <div\n ref={scrollSentinelRef}\n className={styles[\"scroll-sentinel\"]}\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n )}\n {isOpen && (\n <>\n {loading || anyPinnedLoading ? (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Spinner size=\"medium\" />\n </div>\n ) : items.length > 0 ? (\n <div\n role=\"presentation\"\n aria-hidden=\"true\"\n style={{\n height: virtualizer.getTotalSize(),\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {virtualItems.map((virtualItem) => {\n const row = virtualRows[virtualItem.index];\n const sticky = isSticky(virtualItem.index);\n\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n style={\n sticky\n ? {\n position: \"sticky\",\n top: 0,\n zIndex: 1,\n }\n : {\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualItem.start}px)`,\n }\n }\n >\n {renderVirtualRow(row)}\n </div>\n );\n })}\n </div>\n ) : (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Text subdued size=\"small\">\n No match found\n </Text>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n );\n },\n);\n\nVirtualizedOptionsPanel.displayName = \"VirtualizedOptionsPanel\";\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n SelectFieldOption,\n SelectFieldPinnedOptions,\n SelectFieldPinnedOptionsSection,\n} from \"../../components/SelectField/types\";\n\nconst DEFAULT_CACHE_SIZE = 15;\nconst STATIC_CACHE_KEY = \"__static__\";\n\n/** A pinned section normalized for item building. */\nexport type NormalizedPinnedSection<TID extends string | number> = {\n label: string;\n options: SelectFieldOption<TID>[];\n loading?: boolean;\n};\n\ntype UsePinnedOptionsResult<TID extends string | number> = {\n pinnedSections: NormalizedPinnedSection<TID>[];\n};\n\ntype SectionConfig<TID extends string | number> = {\n label: string;\n isDynamic: boolean;\n searchReactive: boolean;\n cacheSize: number;\n staticOptions: SelectFieldOption<TID>[] | undefined;\n loader:\n | ((\n sv: string,\n ) => SelectFieldOption<TID>[] | Promise<SelectFieldOption<TID>[]>)\n | undefined;\n};\n\n/**\n * Writes a cache entry and evicts the least-recently written entries over the\n * limit.\n */\nfunction cacheSet(\n sectionCache: Map<string, SelectFieldOption[]>,\n key: string,\n value: SelectFieldOption[],\n maxSize: number,\n): void {\n // Re-insert so this key is newest; Map.set preserves its existing order.\n if (sectionCache.has(key)) {\n sectionCache.delete(key);\n }\n sectionCache.set(key, value);\n while (sectionCache.size > maxSize) {\n const oldest = sectionCache.keys().next().value;\n if (oldest !== undefined) {\n sectionCache.delete(oldest);\n }\n }\n}\n\n/**\n * Normalizes static and loaded pinned sections, caching dynamic results by\n * section and search value. Non-reactive loaders run once with an empty search;\n * unresolved sections are returned empty with `loading: true`.\n */\nexport function usePinnedOptions<TID extends string | number>(\n pinned: SelectFieldPinnedOptions<TID> | undefined,\n searchValue: string,\n): UsePinnedOptionsResult<TID> {\n const [dynamicResults, setDynamicResults] = useState<\n Record<number, SelectFieldOption<TID>[]>\n >({});\n const [loadingSet, setLoadingSet] = useState<Set<number>>(new Set());\n\n const latestSearchValueRef = useRef(searchValue);\n latestSearchValueRef.current = searchValue;\n\n const cacheRef = useRef<Map<number, Map<string, SelectFieldOption<TID>[]>>>(\n new Map(),\n );\n\n // Prevent duplicate non-reactive loads while the first request is pending.\n const nonReactiveTriggeredRef = useRef<Set<number>>(new Set());\n\n const sections = useMemo((): SelectFieldPinnedOptionsSection<TID>[] => {\n if (!pinned) return [];\n return Array.isArray(pinned) ? pinned : [pinned];\n }, [pinned]);\n\n const sectionConfig = useMemo((): SectionConfig<TID>[] => {\n return sections.map((section) => {\n const isDynamic = typeof section.options === \"function\";\n return {\n label: section.label,\n isDynamic,\n searchReactive: section.searchReactive ?? true,\n cacheSize: section.cacheSize ?? DEFAULT_CACHE_SIZE,\n staticOptions: isDynamic\n ? undefined\n : (section.options as SelectFieldOption<TID>[]),\n loader: isDynamic\n ? (section.options as (\n sv: string,\n ) => SelectFieldOption<TID>[] | Promise<SelectFieldOption<TID>[]>)\n : undefined,\n };\n });\n }, [sections]);\n\n // Reset before the loader effect can read the previous configuration's cache.\n useEffect(() => {\n cacheRef.current = new Map();\n nonReactiveTriggeredRef.current = new Set();\n }, [sectionConfig]);\n\n const getSectionCache = useCallback(\n (index: number): Map<string, SelectFieldOption<TID>[]> => {\n let sectionCache = cacheRef.current.get(index);\n if (!sectionCache) {\n sectionCache = new Map();\n cacheRef.current.set(index, sectionCache);\n }\n return sectionCache;\n },\n [],\n );\n\n const loadSection = useCallback(\n (config: SectionConfig<TID>, index: number, loaderArg: string) => {\n const cacheKey = config.searchReactive ? loaderArg : STATIC_CACHE_KEY;\n\n const handleResult = (options: SelectFieldOption<TID>[]) => {\n // Reactive results expire when search moves on; non-reactive always apply.\n if (\n !config.searchReactive ||\n latestSearchValueRef.current === loaderArg\n ) {\n const sectionCache = getSectionCache(index);\n cacheSet(sectionCache, cacheKey, options, config.cacheSize);\n setDynamicResults((prev) => ({ ...prev, [index]: options }));\n setLoadingSet((prev) => {\n const next = new Set(prev);\n next.delete(index);\n return next;\n });\n }\n };\n\n const handleError = (error: unknown) => {\n console.error(\"Failed to load pinned options:\", error);\n if (\n !config.searchReactive ||\n latestSearchValueRef.current === loaderArg\n ) {\n setDynamicResults((prev) => ({ ...prev, [index]: [] }));\n setLoadingSet((prev) => {\n const next = new Set(prev);\n next.delete(index);\n return next;\n });\n }\n };\n\n try {\n Promise.resolve(config.loader!(loaderArg))\n .then(handleResult)\n .catch(handleError);\n } catch (error) {\n handleError(error);\n }\n },\n [getSectionCache],\n );\n\n useEffect(() => {\n const dynamicEntries = sectionConfig\n .map((config, index) => ({ config, index }))\n .filter(({ config }) => config.isDynamic);\n\n if (dynamicEntries.length === 0) return;\n\n const toLoad: { config: SectionConfig<TID>; index: number }[] = [];\n const preResolved: Record<number, SelectFieldOption<TID>[]> = {};\n\n dynamicEntries.forEach(({ config, index }) => {\n const sectionCache = getSectionCache(index);\n\n if (config.searchReactive) {\n const cached = sectionCache.get(searchValue);\n if (cached) {\n preResolved[index] = cached;\n } else {\n toLoad.push({ config, index });\n }\n } else {\n const cached = sectionCache.get(STATIC_CACHE_KEY);\n if (cached) {\n preResolved[index] = cached;\n } else if (!nonReactiveTriggeredRef.current.has(index)) {\n nonReactiveTriggeredRef.current.add(index);\n toLoad.push({ config, index });\n }\n // Omitting an in-flight section preserves the empty, loading fallback.\n }\n });\n\n if (toLoad.length === 0) {\n setDynamicResults(preResolved);\n setLoadingSet(new Set());\n return;\n }\n\n const loadingIndices = toLoad.map(({ index }) => index);\n setDynamicResults(preResolved);\n setLoadingSet(new Set(loadingIndices));\n\n toLoad.forEach(({ config, index }) => {\n const loaderArg = config.searchReactive ? searchValue : \"\";\n loadSection(config, index, loaderArg);\n });\n }, [sectionConfig, searchValue, loadSection, getSectionCache]);\n\n const pinnedSections = useMemo((): NormalizedPinnedSection<TID>[] => {\n return sectionConfig.map((config, index) => {\n if (!config.isDynamic) {\n return { label: config.label, options: config.staticOptions! };\n }\n if (!loadingSet.has(index) && index in dynamicResults) {\n return {\n label: config.label,\n options: dynamicResults[index],\n };\n }\n return { label: config.label, options: [], loading: true };\n });\n }, [sectionConfig, dynamicResults, loadingSet]);\n\n return { pinnedSections };\n}\n","import { useMemo } from \"react\";\nimport type {\n SelectFieldGroupByValue,\n SelectFieldOption,\n} from \"../../components/SelectField/types\";\nimport type { SelectItem } from \"../types/selectFieldInternalTypes\";\n\n/** A group label and its options, normalized for section rendering. */\nexport type NormalizedGroupSection<TID extends string | number> = {\n label: string;\n options: SelectFieldOption<TID>[];\n};\n\ntype UseGroupedOptionsResult<TID extends string | number> = {\n groupedItems: SelectItem<TID>[];\n ungroupedItems: SelectItem<TID>[];\n groupSections: NormalizedGroupSection<TID>[];\n};\n\n/**\n * Partitions options into Downshift items and group sections, preserving\n * first-seen group order.\n */\nexport function useGroupedOptions<TID extends string | number>(\n options: SelectFieldOption<TID>[],\n groupToString?: (groupValue: SelectFieldGroupByValue) => string,\n): UseGroupedOptionsResult<TID> {\n return useMemo(() => {\n const groupedItems: SelectItem<TID>[] = [];\n const ungroupedItems: SelectItem<TID>[] = [];\n const groupSections: NormalizedGroupSection<TID>[] = [];\n\n const groupMap = new Map<\n SelectFieldGroupByValue,\n { label: string; options: SelectFieldOption<TID>[] }\n >();\n\n options.forEach((option) => {\n if (option.group !== undefined) {\n const groupValue = option.group;\n\n if (!groupMap.has(groupValue)) {\n const label = groupToString\n ? groupToString(groupValue)\n : String(groupValue);\n groupMap.set(groupValue, { label, options: [] });\n }\n\n groupMap.get(groupValue)!.options.push(option);\n\n groupedItems.push({\n id: option.id,\n type: \"grouped-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n } else {\n ungroupedItems.push({\n id: option.id,\n type: \"option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n }\n });\n\n groupMap.forEach(({ label, options: groupOptions }) => {\n groupSections.push({ label, options: groupOptions });\n });\n\n return { groupedItems, ungroupedItems, groupSections };\n }, [options, groupToString]);\n}\n\n/**\n * Returns group sections sorted by each section's first option group value.\n */\nexport function sortGroupSections<TID extends string | number>(\n sections: NormalizedGroupSection<TID>[],\n groupSorter: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number,\n): NormalizedGroupSection<TID>[] {\n return [...sections].sort((a, b) => {\n const groupA = a.options[0]?.group;\n const groupB = b.options[0]?.group;\n if (groupA === undefined || groupB === undefined) return 0;\n return groupSorter(groupA, groupB);\n });\n}\n","import { useMemo } from \"react\";\nimport type {\n SelectFieldGroupByValue,\n SelectFieldOption,\n SelectFieldPinnedOptions,\n} from \"../../components/SelectField/types\";\nimport { usePinnedOptions } from \"./usePinnedOptions\";\nimport { sortGroupSections, useGroupedOptions } from \"./useGroupedOptions\";\n\ntype UseProcessedOptionsParams<TID extends string | number> = {\n options: SelectFieldOption<TID>[];\n pinned?: SelectFieldPinnedOptions<TID>;\n searchValue: string;\n groupToString?: (groupValue: SelectFieldGroupByValue) => string;\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n};\n\n/**\n * Combines pinned-option loading with grouped and ungrouped option\n * normalization, then optionally sorts the groups.\n */\nexport const useProcessedOptions = <TID extends string | number>({\n options,\n pinned,\n searchValue,\n groupToString,\n groupSorter,\n}: UseProcessedOptionsParams<TID>) => {\n const { pinnedSections } = usePinnedOptions(pinned, searchValue);\n\n const { ungroupedItems, groupSections: rawGroupSections } = useGroupedOptions(\n options,\n groupToString,\n );\n\n const groupSections = useMemo(() => {\n if (groupSorter && rawGroupSections.length > 0) {\n return sortGroupSections(rawGroupSections, groupSorter);\n }\n return rawGroupSections;\n }, [rawGroupSections, groupSorter]);\n\n return { pinnedSections, ungroupedItems, groupSections };\n};\n","import type { SelectFieldOption } from \"../../components/SelectField/types\";\nimport type {\n SectionMeta,\n SelectItem,\n} from \"../types/selectFieldInternalTypes\";\nimport type { NormalizedPinnedSection } from \"../hooks/usePinnedOptions\";\nimport type { NormalizedGroupSection } from \"../hooks/useGroupedOptions\";\n\nexport function toSelectItem<TID extends string | number>(\n option: SelectFieldOption<TID>,\n): SelectItem<TID> {\n return {\n id: option.id,\n type: \"option\",\n disabled: option.disabled ?? false,\n original: option,\n };\n}\n\ntype BuildSelectItemsParams<TID extends string | number> = {\n prefixItems?: SelectItem[];\n pinnedSections: NormalizedPinnedSection<TID>[];\n groupSections: NormalizedGroupSection<TID>[];\n ungroupedItems: SelectItem<TID>[];\n};\n\n/**\n * Flattens normalized select sections into render items and indexed section\n * metadata.\n */\nexport function buildSelectItems<TID extends string | number>({\n prefixItems,\n pinnedSections,\n groupSections,\n ungroupedItems,\n}: BuildSelectItemsParams<TID>): {\n items: SelectItem<TID>[];\n sectionsMeta: SectionMeta[];\n} {\n const items: SelectItem<TID>[] = [];\n const meta: SectionMeta[] = [];\n\n if (prefixItems) {\n items.push(...(prefixItems as SelectItem<TID>[]));\n }\n\n pinnedSections.forEach((section) => {\n const startIndex = items.length;\n\n section.options.forEach((option) => {\n items.push({\n id: option.id + \"-pinned\",\n type: \"pinned-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n });\n\n const endIndex = items.length;\n\n if (endIndex > startIndex || section.loading) {\n meta.push({\n type: \"pinned\",\n label: section.label,\n startIndex,\n endIndex,\n loading: section.loading,\n });\n }\n });\n\n groupSections.forEach((section) => {\n const startIndex = items.length;\n\n section.options.forEach((option) => {\n items.push({\n id: option.id,\n type: \"grouped-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n });\n\n const endIndex = items.length;\n\n if (endIndex > startIndex) {\n meta.push({\n type: \"group\",\n label: section.label,\n startIndex,\n endIndex,\n });\n }\n });\n\n items.push(...ungroupedItems);\n\n return { items, sectionsMeta: meta };\n}\n","import type { ReactNode } from \"react\";\n\n/**\n * Shared \"Add new item\" affordance. The button mounts when `onAddNewItem` is\n * set and {@link resolveAddItemLabel} returns a node.\n */\nexport type AddNewItemProps = {\n /**\n * Button label. A callback receives the current search text and may return\n * `null`/`undefined` to hide the button. Omitted static labels fall back to\n * `\"Add new item\"`.\n */\n addItemLabel?: ReactNode | ((searchText: string) => ReactNode);\n /**\n * Called with the current search text after the host menu closes. Consumers\n * own overlay, list, and selection updates.\n */\n onAddNewItem?: (searchText: string) => void;\n};\n\n/** Resolves the add-new button label for the current search text. */\nexport function resolveAddItemLabel(\n addItemLabel: AddNewItemProps[\"addItemLabel\"],\n searchText: string,\n): ReactNode | null {\n if (typeof addItemLabel === \"function\") {\n return addItemLabel(searchText) ?? null;\n }\n return addItemLabel ?? \"Add new item\";\n}\n\n/**\n * Whether the add-new button should mount. Hosts use this so an empty footer\n * (and its divider) is not rendered when a label callback hides the button.\n */\nexport function shouldShowAddNewItem(\n onAddNewItem: AddNewItemProps[\"onAddNewItem\"],\n addItemLabel: AddNewItemProps[\"addItemLabel\"],\n searchText: string,\n): boolean {\n return (\n onAddNewItem != null &&\n resolveAddItemLabel(addItemLabel, searchText) != null\n );\n}\n","import Button from \"../../components/Button\";\nimport Add from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport {\n type AddNewItemProps,\n resolveAddItemLabel,\n} from \"../types/addNewItemTypes\";\nimport { ANV_PART_ATTR, COMMON_PART } from \"../constants/anvParts\";\n\nexport type AddNewItemButtonProps = AddNewItemProps & {\n /** Passed to the label callback and add-item handler. */\n searchText: string;\n /** Closes the host menu before the add-item handler runs. */\n onCloseMenu?: () => void;\n};\n\n/**\n * Add-new affordance for select menus. It remains unmounted without a handler\n * or when the label callback returns `null`/`undefined`.\n */\nexport const AddNewItemButton = ({\n searchText,\n addItemLabel,\n onAddNewItem,\n onCloseMenu,\n}: AddNewItemButtonProps) => {\n if (!onAddNewItem) return null;\n\n const resolvedLabel = resolveAddItemLabel(addItemLabel, searchText);\n if (resolvedLabel == null) return null;\n\n return (\n <Button\n appearance=\"secondary\"\n size=\"small\"\n icon={{ before: Add }}\n // Safari does not focus buttons on mousedown; without preventDefault the\n // popover's focusout listener fires with relatedTarget=null and closes\n // the menu before the click handler runs.\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n onCloseMenu?.();\n onAddNewItem(searchText);\n }}\n style={{ width: \"100%\" }}\n {...{ [ANV_PART_ATTR]: COMMON_PART.addNewItemButton }}\n >\n {resolvedLabel}\n </Button>\n );\n};\n\nAddNewItemButton.displayName = \"AddNewItemButton\";\n","import {\n type ForwardedRef,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\";\nimport {\n useSelectFieldLoading,\n DEFAULT_PAGE_SIZE,\n} from \"./useSelectFieldLoading\";\nimport { useAdaptiveView } from \"../../beta/hooks/useAdaptiveView\";\n\nexport type UseSelectOrchestrationConfig = {\n lazy: false | \"page\" | \"offset\" | \"group\" | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n loadOptions: any;\n cache?: { enabled?: boolean; maxSize?: number };\n lazyOptions?: { pageSize?: number; limit?: number };\n initialLoad?: \"auto\" | \"immediate\" | \"open\";\n displayMenuAs?: \"auto\" | \"popover\" | \"dialog\";\n ref: ForwardedRef<{ clearCache: () => void; invalidate: () => void }>;\n};\n\n/**\n * Resolves menu surface and initial-load mode, then wires option loading and\n * an imperative `clearCache` / `invalidate` handle. `displayMenuAs: \"auto\"` is\n * dialog on mobile and popover otherwise; `initialLoad: \"auto\"` is immediate.\n * `invalidate` also resets `initialLoadPerformed`.\n */\nexport function useSelectOrchestration<TID extends string | number>(\n config: UseSelectOrchestrationConfig,\n) {\n const {\n lazy,\n loadOptions: loadOptionsProp,\n cache,\n lazyOptions,\n initialLoad: initialLoadProp = \"auto\",\n displayMenuAs: displayMenuAsProp = \"auto\",\n ref,\n } = config;\n\n const [initialLoadPerformed, setInitialLoadPerformed] = useState(false);\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const initialLoad =\n initialLoadProp === \"auto\" ? \"immediate\" : initialLoadProp;\n\n const pageSize =\n lazy === \"page\"\n ? (lazyOptions?.pageSize ?? DEFAULT_PAGE_SIZE)\n : DEFAULT_PAGE_SIZE;\n const limit =\n lazy === \"offset\"\n ? (lazyOptions?.limit ?? DEFAULT_PAGE_SIZE)\n : DEFAULT_PAGE_SIZE;\n\n const loadingHookConfig = useMemo(() => {\n const cacheConfig = {\n enabled: cache?.enabled,\n maxSize: cache?.maxSize,\n };\n if (lazy === \"page\")\n return {\n lazy: \"page\" as const,\n loadOptions: loadOptionsProp,\n pageSize,\n cache: cacheConfig,\n };\n if (lazy === \"offset\")\n return {\n lazy: \"offset\" as const,\n loadOptions: loadOptionsProp,\n limit,\n cache: cacheConfig,\n };\n if (lazy === \"group\")\n return {\n lazy: \"group\" as const,\n loadOptions: loadOptionsProp,\n cache: cacheConfig,\n };\n return {\n lazy: false as const,\n loadOptions: loadOptionsProp,\n cache: cacheConfig,\n };\n }, [lazy, loadOptionsProp, pageSize, limit, cache?.enabled, cache?.maxSize]);\n\n const {\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n clearCache,\n } = useSelectFieldLoading<TID>(loadingHookConfig);\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache,\n invalidate: () => {\n clearCache();\n setInitialLoadPerformed(false);\n },\n }),\n [clearCache],\n );\n\n return {\n displayAs,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n };\n}\n","import { matchSorter, type MatchSorterOptions } from \"match-sorter\";\nimport type {\n SelectFieldOption,\n SelectFieldGroupByValue,\n} from \"../../components/SelectField/types\";\n\nexport type SyncFilterFn<\n TID extends string | number = string | number,\n T extends SelectFieldOption<TID> = SelectFieldOption<TID>,\n> = (options: T[], searchValue: string) => T[];\n\n/** Filters by label and search text, preserving input order for equal matches. */\nexport const defaultSyncFilter = <\n TID extends string | number,\n T extends SelectFieldOption<TID> = SelectFieldOption<TID>,\n>(\n options: T[],\n searchValue: string,\n) =>\n matchSorter(options, searchValue, {\n keys: [\"label\", \"searchText\"],\n baseSort: (a, b) => a.index - b.index,\n });\n\n/** Normalizes a filter function or match-sorter options into a sync filter. */\nexport const toSyncFilterFn = <\n TID extends string | number,\n T extends SelectFieldOption<TID> = SelectFieldOption<TID>,\n>(\n filter: SyncFilterFn<TID, T> | MatchSorterOptions<T>,\n): SyncFilterFn<TID, T> =>\n typeof filter === \"function\"\n ? filter\n : (options, searchValue) =>\n matchSorter(options, searchValue, {\n baseSort: (a, b) => a.index - b.index,\n ...filter,\n });\n\n/**\n * Orders groups with the comparator, keeps options stable within each group,\n * and places ungrouped options last.\n */\nexport const sortByGroup = <\n TID extends string | number,\n T extends SelectFieldOption<TID> = SelectFieldOption<TID>,\n>(\n options: T[],\n groupSorter: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number,\n): T[] => {\n const groupOrder = new Map<SelectFieldGroupByValue | undefined, number>();\n const uniqueGroups: (SelectFieldGroupByValue | undefined)[] = [];\n options.forEach((opt) => {\n if (!groupOrder.has(opt.group)) {\n groupOrder.set(opt.group, uniqueGroups.length);\n uniqueGroups.push(opt.group);\n }\n });\n\n uniqueGroups.sort((a, b) => {\n if (a === undefined && b === undefined) return 0;\n if (a === undefined) return 1;\n if (b === undefined) return -1;\n return groupSorter(a, b);\n });\n\n uniqueGroups.forEach((group, index) => {\n groupOrder.set(group, index);\n });\n\n return [...options].sort((a, b) => {\n const orderA = groupOrder.get(a.group) ?? Infinity;\n const orderB = groupOrder.get(b.group) ?? Infinity;\n return orderA - orderB;\n });\n};\n"],"names":["options","Check","styles","Add"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sources":["../src/themes/carto.ts"],"sourcesContent":["import type { CustomThemeType } from \"../providers/ThemeProvider\";\n\n/**\n * Anvil2 theme overrides aligned with AI Kit (Carto) font families and radius\n * scale.\n *\n * Radius (Carto → Anvil2):\n * - `radius.sharp` → `BorderRadiusNone` (`0`)\n * - `radius.100` → `BorderRadiusSmall` (`0.25rem`, checkboxes)\n * - `radius.trim` → `BorderRadiusMedium` (`0.75rem`, buttons / inputs)\n * - `radius.moderate` → `BorderRadiusLarge` (`1rem`, cards / menus)\n * - `radius.generous` → `BorderRadiusXlarge` (`1.5rem`, panels)\n * - `radius.full` → `BorderRadiusCircular` (`50%`)\n *\n * Typography (Carto → Anvil2):\n * - `typography.fontFamily.functional` → base / paragraph / label family (Inter)\n * - `typography.fontFamily.expressive` → display / heading family (Sofia Pro)\n * - `typography.weight.neutral` → paragraph weight (`400`)\n * - `typography.weight.structured` → `FontWeightSemibold` (`500`; buttons, chips, labels)\n * - `typography.weight.emphatic` → heading weight (`700`)\n * - Bold UI emphasis → `FontWeightBold` (`600`; calendar selection, stepper, avatar, etc.)\n *\n * Components keep `$font-weight-semibold` / `$font-weight-bold` (and semantic\n * typography tokens for real text roles). Carto retunes those primitives so\n * existing component CSS picks up the new weights without per-component remaps.\n *\n * Surfaces (Carto → Anvil2):\n * - Popover / Menu content and arrow fills → `BackgroundColorDefault`\n * (`var(--a2-background-color-default)`, which resolves via `light-dark()`).\n * Applies anywhere that consumes `$popover-content-background-color` /\n * `$popover-arrow-fill-color` (public Popover, internal Popover,\n * OptionsPopover) or `$menu-content-background-color` /\n * `$menu-arrow-background-color` (Menu). Tooltip uses a separate token and\n * is unaffected.\n *\n * Consumers still need to load Inter (and Sofia Pro when using headings). The\n * kit loads Inter from Google Fonts; AnvilProvider already pulls in Sofia Pro\n * via `@servicetitan/anvil-fonts`.\n *\n * @example\n * ```tsx\n * import { ThemeProvider } from \"@servicetitan/anvil2\";\n * import { carto } from \"@servicetitan/anvil2/themes\";\n *\n * <ThemeProvider theme={carto}>{children}</ThemeProvider>\n * ```\n */\nexport const carto = {\n primitive: {\n FontFamilyBase: { value: '\"Inter\", sans-serif' },\n FontFamilyDisplay: { value: '\"Sofia Pro\", system-ui, sans-serif' },\n FontWeightSemibold: { value: \"500\" },\n FontWeightBold: { value: \"600\" },\n },\n semantic: {\n BorderRadiusNone: { value: \"0\" },\n BorderRadiusSmall: { value: \"0.25rem\" },\n BorderRadiusMedium: { value: \"0.75rem\" },\n BorderRadiusLarge: { value: \"1rem\" },\n BorderRadiusXlarge: { value: \"1.5rem\" },\n BorderRadiusCircular: { value: \"50%\" },\n\n TypographyParagraphFontFamily: { value: '\"Inter\", sans-serif' },\n TypographyParagraphFontWeight: { value: \"400\" },\n TypographyLabelFontFamily: { value: '\"Inter\", sans-serif' },\n TypographyLabelFontWeight: { value: \"500\" },\n TypographyHeadingFontFamily: {\n value: '\"Sofia Pro\", system-ui, sans-serif',\n },\n TypographyHeadingFontWeight: { value: \"700\" },\n },\n component: {\n PopoverContentBackgroundColor: {\n value: \"var(--a2-background-color-default)\",\n },\n PopoverArrowFillColor: { value: \"var(--a2-background-color-default)\" },\n MenuContentBackgroundColor: {\n value: \"var(--a2-background-color-default)\",\n },\n MenuArrowBackgroundColor: { value: \"var(--a2-background-color-default)\" },\n },\n} as const satisfies CustomThemeType;\n"],"names":[],"mappings":"AA+CO,MAAM,KAAA,GAAQ;AAAA,EACnB,SAAA,EAAW;AAAA,IACT,cAAA,EAAgB,EAAE,KAAA,EAAO,qBAAA,EAAsB;AAAA,IAC/C,iBAAA,EAAmB,EAAE,KAAA,EAAO,oCAAA,EAAqC;AAAA,IACjE,kBAAA,EAAoB,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IACnC,cAAA,EAAgB,EAAE,KAAA,EAAO,KAAA;AAAM,GACjC;AAAA,EACA,QAAA,EAAU;AAAA,IACR,gBAAA,EAAkB,EAAE,KAAA,EAAO,GAAA,EAAI;AAAA,IAC/B,iBAAA,EAAmB,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,IACtC,kBAAA,EAAoB,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,IACvC,iBAAA,EAAmB,EAAE,KAAA,EAAO,MAAA,EAAO;AAAA,IACnC,kBAAA,EAAoB,EAAE,KAAA,EAAO,QAAA,EAAS;AAAA,IACtC,oBAAA,EAAsB,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IAErC,6BAAA,EAA+B,EAAE,KAAA,EAAO,qBAAA,EAAsB;AAAA,IAC9D,6BAAA,EAA+B,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IAC9C,yBAAA,EAA2B,EAAE,KAAA,EAAO,qBAAA,EAAsB;AAAA,IAC1D,yBAAA,EAA2B,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IAC1C,2BAAA,EAA6B;AAAA,MAC3B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,2BAAA,EAA6B,EAAE,KAAA,EAAO,KAAA;AAAM,GAC9C;AAAA,EACA,SAAA,EAAW;AAAA,IACT,6BAAA,EAA+B;AAAA,MAC7B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,qBAAA,EAAuB,EAAE,KAAA,EAAO,oCAAA,EAAqC;AAAA,IACrE,0BAAA,EAA4B;AAAA,MAC1B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,wBAAA,EAA0B,EAAE,KAAA,EAAO,oCAAA;AAAqC;AAE5E;;;;"}
1
+ {"version":3,"file":"themes.js","sources":["../src/themes/carto.ts"],"sourcesContent":["import type { CustomThemeType } from \"../providers/ThemeProvider\";\n\n/**\n * Carto-aligned {@link CustomThemeType}: Inter/Sofia Pro, retuned radius and\n * weights, and default-background Popover/Menu surfaces. Tooltip tokens are\n * unchanged. Load Inter yourself; {@link AnvilProvider} already loads Sofia Pro.\n */\nexport const carto = {\n primitive: {\n FontFamilyBase: { value: '\"Inter\", sans-serif' },\n FontFamilyDisplay: { value: '\"Sofia Pro\", system-ui, sans-serif' },\n FontWeightSemibold: { value: \"500\" },\n FontWeightBold: { value: \"600\" },\n },\n semantic: {\n BorderRadiusNone: { value: \"0\" },\n BorderRadiusSmall: { value: \"0.25rem\" },\n BorderRadiusMedium: { value: \"0.75rem\" },\n BorderRadiusLarge: { value: \"1rem\" },\n BorderRadiusXlarge: { value: \"1.5rem\" },\n BorderRadiusCircular: { value: \"50%\" },\n\n TypographyParagraphFontFamily: { value: '\"Inter\", sans-serif' },\n TypographyParagraphFontWeight: { value: \"400\" },\n TypographyLabelFontFamily: { value: '\"Inter\", sans-serif' },\n TypographyLabelFontWeight: { value: \"500\" },\n TypographyHeadingFontFamily: {\n value: '\"Sofia Pro\", system-ui, sans-serif',\n },\n TypographyHeadingFontWeight: { value: \"700\" },\n },\n component: {\n PopoverContentBackgroundColor: {\n value: \"var(--a2-background-color-default)\",\n },\n PopoverArrowFillColor: { value: \"var(--a2-background-color-default)\" },\n MenuContentBackgroundColor: {\n value: \"var(--a2-background-color-default)\",\n },\n MenuArrowBackgroundColor: { value: \"var(--a2-background-color-default)\" },\n },\n} as const satisfies CustomThemeType;\n"],"names":[],"mappings":"AAOO,MAAM,KAAA,GAAQ;AAAA,EACnB,SAAA,EAAW;AAAA,IACT,cAAA,EAAgB,EAAE,KAAA,EAAO,qBAAA,EAAsB;AAAA,IAC/C,iBAAA,EAAmB,EAAE,KAAA,EAAO,oCAAA,EAAqC;AAAA,IACjE,kBAAA,EAAoB,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IACnC,cAAA,EAAgB,EAAE,KAAA,EAAO,KAAA;AAAM,GACjC;AAAA,EACA,QAAA,EAAU;AAAA,IACR,gBAAA,EAAkB,EAAE,KAAA,EAAO,GAAA,EAAI;AAAA,IAC/B,iBAAA,EAAmB,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,IACtC,kBAAA,EAAoB,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,IACvC,iBAAA,EAAmB,EAAE,KAAA,EAAO,MAAA,EAAO;AAAA,IACnC,kBAAA,EAAoB,EAAE,KAAA,EAAO,QAAA,EAAS;AAAA,IACtC,oBAAA,EAAsB,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IAErC,6BAAA,EAA+B,EAAE,KAAA,EAAO,qBAAA,EAAsB;AAAA,IAC9D,6BAAA,EAA+B,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IAC9C,yBAAA,EAA2B,EAAE,KAAA,EAAO,qBAAA,EAAsB;AAAA,IAC1D,yBAAA,EAA2B,EAAE,KAAA,EAAO,KAAA,EAAM;AAAA,IAC1C,2BAAA,EAA6B;AAAA,MAC3B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,2BAAA,EAA6B,EAAE,KAAA,EAAO,KAAA;AAAM,GAC9C;AAAA,EACA,SAAA,EAAW;AAAA,IACT,6BAAA,EAA+B;AAAA,MAC7B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,qBAAA,EAAuB,EAAE,KAAA,EAAO,oCAAA,EAAqC;AAAA,IACrE,0BAAA,EAA4B;AAAA,MAC1B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,wBAAA,EAA0B,EAAE,KAAA,EAAO,oCAAA;AAAqC;AAE5E;;;;"}
@@ -190,6 +190,84 @@ $light: (
190
190
  chip-close-background-color: "rgba(0, 0, 0, 0)",
191
191
  chip-close-background-color-hover: var(--a2-color-neutral-300, #a8a8a8),
192
192
  chip-close-background-color-active: var(--a2-color-neutral-400, #8b8b8b),
193
+ chip-default-background-color: var(--a2-color-neutral-20, #f9f9f9),
194
+ chip-default-background-color-hover: var(--a2-color-neutral-50, #eeeeee),
195
+ chip-default-background-color-active: var(--a2-color-neutral-200, #c4c4c4),
196
+ chip-default-border-color: var(--a2-color-neutral-50, #eeeeee),
197
+ chip-default-border-color-hover: var(--a2-color-neutral-200, #c4c4c4),
198
+ chip-default-border-color-active: var(--a2-color-neutral-300, #a8a8a8),
199
+ chip-info-background-color: var(--a2-color-blue-100, #cce3ff),
200
+ chip-info-background-color-hover: var(--a2-color-blue-200, #9ecaff),
201
+ chip-info-background-color-active: var(--a2-color-blue-200, #9ecaff),
202
+ chip-info-border-color: var(--a2-color-blue-200, #9ecaff),
203
+ chip-info-border-color-hover: var(--a2-color-blue-300, #70b1ff),
204
+ chip-info-border-color-active: var(--a2-color-blue-400, #3d95ff),
205
+ chip-success-background-color: var(--a2-color-green-100, #b8f5dd),
206
+ chip-success-background-color-hover: var(--a2-color-green-200, #70ebbc),
207
+ chip-success-background-color-active: var(--a2-color-green-300, #3be3a2),
208
+ chip-success-border-color: var(--a2-color-green-200, #70ebbc),
209
+ chip-success-border-color-hover: var(--a2-color-green-300, #3be3a2),
210
+ chip-success-border-color-active: var(--a2-color-green-400, #0bd085),
211
+ chip-warning-background-color: var(--a2-color-yellow-100, #fff9e2),
212
+ chip-warning-background-color-hover: var(--a2-color-yellow-200, #fff0b1),
213
+ chip-warning-background-color-active: var(--a2-color-yellow-300, #ffe278),
214
+ chip-warning-border-color: var(--a2-color-yellow-200, #fff0b1),
215
+ chip-warning-border-color-hover: var(--a2-color-yellow-300, #ffe278),
216
+ chip-warning-border-color-active: var(--a2-color-yellow-400, #ffc902),
217
+ chip-danger-background-color: var(--a2-color-red-50, #ffe9e5),
218
+ chip-danger-background-color-hover: var(--a2-color-red-100, #ffd4cc),
219
+ chip-danger-background-color-active: var(--a2-color-red-200, #ffac9e),
220
+ chip-danger-border-color: var(--a2-color-red-100, #ffd4cc),
221
+ chip-danger-border-color-hover: var(--a2-color-red-200, #ffac9e),
222
+ chip-danger-border-color-active: var(--a2-color-red-300, #ff8670),
223
+ chip-in-progress-background-color: var(--a2-color-cyan-50, #daf7fc),
224
+ chip-in-progress-background-color-hover: var(--a2-color-cyan-100, #c2f2fb),
225
+ chip-in-progress-background-color-active: var(--a2-color-cyan-200, #7fe5f6),
226
+ chip-in-progress-border-color: var(--a2-color-cyan-100, #c2f2fb),
227
+ chip-in-progress-border-color-hover: var(--a2-color-cyan-200, #7fe5f6),
228
+ chip-in-progress-border-color-active: var(--a2-color-cyan-300, #45d8f2),
229
+ chip-table-entity-background-color: var(--a2-color-blue-grey-100, #dce4ea),
230
+ chip-table-entity-background-color-hover: var(--a2-color-blue-grey-200, #b9c9d5),
231
+ chip-table-entity-background-color-active: var(--a2-color-blue-grey-300, #99b1c2),
232
+ chip-table-entity-border-color: var(--a2-color-blue-grey-200, #b9c9d5),
233
+ chip-table-entity-border-color-hover: var(--a2-color-blue-grey-300, #99b1c2),
234
+ chip-table-entity-border-color-active: var(--a2-color-blue-grey-400, #7899b0),
235
+ chip-brown-background-color: var(--a2-color-brown-100, #eddace),
236
+ chip-brown-background-color-hover: var(--a2-color-brown-100, #eddace),
237
+ chip-brown-background-color-active: var(--a2-color-brown-100, #eddace),
238
+ chip-brown-border-color: var(--a2-color-brown-200, #e1c1ad),
239
+ chip-brown-border-color-hover: var(--a2-color-brown-300, #d4a487),
240
+ chip-brown-border-color-active: var(--a2-color-brown-400, #c5855e),
241
+ chip-lime-background-color: var(--a2-color-lime-100, #e3eccf),
242
+ chip-lime-background-color-hover: var(--a2-color-lime-200, #c3d595),
243
+ chip-lime-background-color-active: var(--a2-color-lime-300, #a8c26a),
244
+ chip-lime-border-color: var(--a2-color-lime-200, #c3d595),
245
+ chip-lime-border-color-hover: var(--a2-color-lime-300, #a8c26a),
246
+ chip-lime-border-color-active: var(--a2-color-lime-400, #8aad39),
247
+ chip-magenta-background-color: var(--a2-color-magenta-100, #f8ddef),
248
+ chip-magenta-background-color-hover: var(--a2-color-magenta-200, #efb3db),
249
+ chip-magenta-background-color-active: var(--a2-color-magenta-300, #e892cc),
250
+ chip-magenta-border-color: var(--a2-color-magenta-200, #efb3db),
251
+ chip-magenta-border-color-hover: var(--a2-color-magenta-300, #e892cc),
252
+ chip-magenta-border-color-active: var(--a2-color-magenta-400, #eb61be),
253
+ chip-mauve-background-color: var(--a2-color-mauves-100, #fff4f0),
254
+ chip-mauve-background-color-hover: var(--a2-color-mauves-200, #ffe4db),
255
+ chip-mauve-background-color-active: var(--a2-color-mauves-300, #ffd1c2),
256
+ chip-mauve-border-color: var(--a2-color-mauves-100, #fff4f0),
257
+ chip-mauve-border-color-hover: var(--a2-color-mauves-200, #ffe4db),
258
+ chip-mauve-border-color-active: var(--a2-color-mauves-300, #ffd1c2),
259
+ chip-orange-background-color: var(--a2-color-orange-100, #ffddb7),
260
+ chip-orange-background-color-hover: var(--a2-color-orange-100, #ffddb7),
261
+ chip-orange-background-color-active: var(--a2-color-orange-100, #ffddb7),
262
+ chip-orange-border-color: var(--a2-color-orange-200, #ffc07a),
263
+ chip-orange-border-color-hover: var(--a2-color-orange-300, #ffa037),
264
+ chip-orange-border-color-active: var(--a2-color-orange-400, #e37700),
265
+ chip-purple-background-color: var(--a2-color-purple-100, #e7e4f6),
266
+ chip-purple-background-color-hover: var(--a2-color-purple-100, #e7e4f6),
267
+ chip-purple-background-color-active: var(--a2-color-purple-100, #e7e4f6),
268
+ chip-purple-border-color: var(--a2-color-purple-200, #c9c2eb),
269
+ chip-purple-border-color-hover: var(--a2-color-purple-300, #b1a7e2),
270
+ chip-purple-border-color-active: var(--a2-color-purple-400, #9688d7),
193
271
  combobox-item-default-background-color: var(--a2-background-color-transparent-default, "rgba(0, 0, 0, 0)"),
194
272
  combobox-item-default-background-color-hover: #8b8b8b14,
195
273
  combobox-item-default-background-color-active: #8b8b8b29,
@@ -726,6 +804,84 @@ $dark: (
726
804
  chip-close-background-color: rgba(0, 0, 0, 0),
727
805
  chip-close-background-color-hover: var(--a2-color-neutral-400, #8b8b8b),
728
806
  chip-close-background-color-active: var(--a2-color-neutral-300, #a8a8a8),
807
+ chip-default-background-color: var(--a2-color-neutral-800, #292929),
808
+ chip-default-background-color-hover: var(--a2-color-neutral-700, #404040),
809
+ chip-default-background-color-active: var(--a2-color-neutral-500, #707070),
810
+ chip-default-border-color: var(--a2-color-neutral-700, #404040),
811
+ chip-default-border-color-hover: var(--a2-color-neutral-600, #545454),
812
+ chip-default-border-color-active: var(--a2-color-neutral-500, #707070),
813
+ chip-info-background-color: var(--a2-color-blue-900, #002047),
814
+ chip-info-background-color-hover: var(--a2-color-blue-800, #003472),
815
+ chip-info-background-color-active: var(--a2-color-blue-700, #1d4ca3),
816
+ chip-info-border-color: var(--a2-color-blue-950, #000b19),
817
+ chip-info-border-color-hover: var(--a2-color-blue-900, #002047),
818
+ chip-info-border-color-active: var(--a2-color-blue-800, #003472),
819
+ chip-success-background-color: var(--a2-color-green-900, #022c1c),
820
+ chip-success-background-color-hover: var(--a2-color-green-800, #04482e),
821
+ chip-success-background-color-active: var(--a2-color-green-700, #05613e),
822
+ chip-success-border-color: var(--a2-color-green-950, #010f0a),
823
+ chip-success-border-color-hover: var(--a2-color-green-900, #022c1c),
824
+ chip-success-border-color-active: var(--a2-color-green-800, #04482e),
825
+ chip-warning-background-color: var(--a2-color-yellow-900, #382500),
826
+ chip-warning-background-color-hover: var(--a2-color-yellow-800, #704b00),
827
+ chip-warning-background-color-active: var(--a2-color-yellow-700, #c98600),
828
+ chip-warning-border-color: var(--a2-color-yellow-950, #191100),
829
+ chip-warning-border-color-hover: var(--a2-color-yellow-900, #382500),
830
+ chip-warning-border-color-active: var(--a2-color-yellow-800, #704b00),
831
+ chip-danger-background-color: var(--a2-color-red-900, #470b00),
832
+ chip-danger-background-color-hover: var(--a2-color-red-800, #731100),
833
+ chip-danger-background-color-active: var(--a2-color-red-700, #a31900),
834
+ chip-danger-border-color: var(--a2-color-red-950, #0a0200),
835
+ chip-danger-border-color-hover: var(--a2-color-red-900, #470b00),
836
+ chip-danger-border-color-active: var(--a2-color-red-800, #731100),
837
+ chip-in-progress-background-color: var(--a2-color-cyan-900, #032025),
838
+ chip-in-progress-background-color-hover: var(--a2-color-cyan-800, #05424d),
839
+ chip-in-progress-background-color-active: var(--a2-color-cyan-700, #075563),
840
+ chip-in-progress-border-color: var(--a2-color-cyan-950, #011013),
841
+ chip-in-progress-border-color-hover: var(--a2-color-cyan-900, #032025),
842
+ chip-in-progress-border-color-active: var(--a2-color-cyan-800, #05424d),
843
+ chip-table-entity-background-color: var(--a2-color-blue-grey-900, #192329),
844
+ chip-table-entity-background-color-hover: var(--a2-color-blue-grey-800, #24333d),
845
+ chip-table-entity-background-color-active: var(--a2-color-blue-grey-700, #344856),
846
+ chip-table-entity-border-color: var(--a2-color-blue-grey-950, #090d10),
847
+ chip-table-entity-border-color-hover: var(--a2-color-blue-grey-900, #192329),
848
+ chip-table-entity-border-color-active: var(--a2-color-blue-grey-800, #24333d),
849
+ chip-brown-background-color: var(--a2-color-brown-900, #1e120b),
850
+ chip-brown-background-color-hover: var(--a2-color-brown-800, #432918),
851
+ chip-brown-background-color-active: var(--a2-color-brown-700, #5e3922),
852
+ chip-brown-border-color: var(--a2-color-brown-950, #0c0704),
853
+ chip-brown-border-color-hover: var(--a2-color-brown-900, #1e120b),
854
+ chip-brown-border-color-active: var(--a2-color-brown-800, #432918),
855
+ chip-lime-background-color: var(--a2-color-lime-900, #111801),
856
+ chip-lime-background-color-hover: var(--a2-color-lime-800, #2a3a03),
857
+ chip-lime-background-color-active: var(--a2-color-lime-700, #3a5007),
858
+ chip-lime-border-color: var(--a2-color-lime-950, #0a0f01),
859
+ chip-lime-border-color-hover: var(--a2-color-lime-900, #111801),
860
+ chip-lime-border-color-active: var(--a2-color-lime-800, #2a3a03),
861
+ chip-magenta-background-color: var(--a2-color-magenta-900, #26081c),
862
+ chip-magenta-background-color-hover: var(--a2-color-magenta-800, #591342),
863
+ chip-magenta-background-color-active: var(--a2-color-magenta-700, #831b60),
864
+ chip-magenta-border-color: var(--a2-color-magenta-950, #15040f),
865
+ chip-magenta-border-color-hover: var(--a2-color-magenta-900, #26081c),
866
+ chip-magenta-border-color-active: var(--a2-color-magenta-800, #591342),
867
+ chip-mauve-background-color: var(--a2-color-mauves-900, #411d11),
868
+ chip-mauve-background-color-hover: var(--a2-color-mauves-800, #823a21),
869
+ chip-mauve-background-color-active: var(--a2-color-mauves-700, #d27151),
870
+ chip-mauve-border-color: var(--a2-color-mauves-950, #200e08),
871
+ chip-mauve-border-color-hover: var(--a2-color-mauves-900, #411d11),
872
+ chip-mauve-border-color-active: var(--a2-color-mauves-800, #823a21),
873
+ chip-orange-background-color: var(--a2-color-orange-900, #2e1900),
874
+ chip-orange-background-color-hover: var(--a2-color-orange-800, #4d2800),
875
+ chip-orange-background-color-active: var(--a2-color-orange-700, #693700),
876
+ chip-orange-border-color: var(--a2-color-orange-950, #140b00),
877
+ chip-orange-border-color-hover: var(--a2-color-orange-900, #2e1900),
878
+ chip-orange-border-color-active: var(--a2-color-orange-800, #4d2800),
879
+ chip-purple-background-color: var(--a2-color-purple-900, #191338),
880
+ chip-purple-background-color-hover: var(--a2-color-purple-800, #2e2267),
881
+ chip-purple-background-color-active: var(--a2-color-purple-700, #3f2f8e),
882
+ chip-purple-border-color: var(--a2-color-purple-950, #100c25),
883
+ chip-purple-border-color-hover: var(--a2-color-purple-900, #191338),
884
+ chip-purple-border-color-active: var(--a2-color-purple-800, #2e2267),
729
885
  combobox-item-default-background-color: var(--a2-background-color-transparent-default, "rgba(0, 0, 0, 0)"),
730
886
  combobox-item-default-background-color-hover: #ffffff14,
731
887
  combobox-item-default-background-color-active: #ffffff29,
@@ -198,6 +198,84 @@ export declare const ChipFocusRingColor: TokenObj;
198
198
  export declare const ChipCloseBackgroundColor: TokenObj;
199
199
  export declare const ChipCloseBackgroundColorHover: TokenObj;
200
200
  export declare const ChipCloseBackgroundColorActive: TokenObj;
201
+ export declare const ChipDefaultBackgroundColor: TokenObj;
202
+ export declare const ChipDefaultBackgroundColorHover: TokenObj;
203
+ export declare const ChipDefaultBackgroundColorActive: TokenObj;
204
+ export declare const ChipDefaultBorderColor: TokenObj;
205
+ export declare const ChipDefaultBorderColorHover: TokenObj;
206
+ export declare const ChipDefaultBorderColorActive: TokenObj;
207
+ export declare const ChipInfoBackgroundColor: TokenObj;
208
+ export declare const ChipInfoBackgroundColorHover: TokenObj;
209
+ export declare const ChipInfoBackgroundColorActive: TokenObj;
210
+ export declare const ChipInfoBorderColor: TokenObj;
211
+ export declare const ChipInfoBorderColorHover: TokenObj;
212
+ export declare const ChipInfoBorderColorActive: TokenObj;
213
+ export declare const ChipSuccessBackgroundColor: TokenObj;
214
+ export declare const ChipSuccessBackgroundColorHover: TokenObj;
215
+ export declare const ChipSuccessBackgroundColorActive: TokenObj;
216
+ export declare const ChipSuccessBorderColor: TokenObj;
217
+ export declare const ChipSuccessBorderColorHover: TokenObj;
218
+ export declare const ChipSuccessBorderColorActive: TokenObj;
219
+ export declare const ChipWarningBackgroundColor: TokenObj;
220
+ export declare const ChipWarningBackgroundColorHover: TokenObj;
221
+ export declare const ChipWarningBackgroundColorActive: TokenObj;
222
+ export declare const ChipWarningBorderColor: TokenObj;
223
+ export declare const ChipWarningBorderColorHover: TokenObj;
224
+ export declare const ChipWarningBorderColorActive: TokenObj;
225
+ export declare const ChipDangerBackgroundColor: TokenObj;
226
+ export declare const ChipDangerBackgroundColorHover: TokenObj;
227
+ export declare const ChipDangerBackgroundColorActive: TokenObj;
228
+ export declare const ChipDangerBorderColor: TokenObj;
229
+ export declare const ChipDangerBorderColorHover: TokenObj;
230
+ export declare const ChipDangerBorderColorActive: TokenObj;
231
+ export declare const ChipInProgressBackgroundColor: TokenObj;
232
+ export declare const ChipInProgressBackgroundColorHover: TokenObj;
233
+ export declare const ChipInProgressBackgroundColorActive: TokenObj;
234
+ export declare const ChipInProgressBorderColor: TokenObj;
235
+ export declare const ChipInProgressBorderColorHover: TokenObj;
236
+ export declare const ChipInProgressBorderColorActive: TokenObj;
237
+ export declare const ChipTableEntityBackgroundColor: TokenObj;
238
+ export declare const ChipTableEntityBackgroundColorHover: TokenObj;
239
+ export declare const ChipTableEntityBackgroundColorActive: TokenObj;
240
+ export declare const ChipTableEntityBorderColor: TokenObj;
241
+ export declare const ChipTableEntityBorderColorHover: TokenObj;
242
+ export declare const ChipTableEntityBorderColorActive: TokenObj;
243
+ export declare const ChipBrownBackgroundColor: TokenObj;
244
+ export declare const ChipBrownBackgroundColorHover: TokenObj;
245
+ export declare const ChipBrownBackgroundColorActive: TokenObj;
246
+ export declare const ChipBrownBorderColor: TokenObj;
247
+ export declare const ChipBrownBorderColorHover: TokenObj;
248
+ export declare const ChipBrownBorderColorActive: TokenObj;
249
+ export declare const ChipLimeBackgroundColor: TokenObj;
250
+ export declare const ChipLimeBackgroundColorHover: TokenObj;
251
+ export declare const ChipLimeBackgroundColorActive: TokenObj;
252
+ export declare const ChipLimeBorderColor: TokenObj;
253
+ export declare const ChipLimeBorderColorHover: TokenObj;
254
+ export declare const ChipLimeBorderColorActive: TokenObj;
255
+ export declare const ChipMagentaBackgroundColor: TokenObj;
256
+ export declare const ChipMagentaBackgroundColorHover: TokenObj;
257
+ export declare const ChipMagentaBackgroundColorActive: TokenObj;
258
+ export declare const ChipMagentaBorderColor: TokenObj;
259
+ export declare const ChipMagentaBorderColorHover: TokenObj;
260
+ export declare const ChipMagentaBorderColorActive: TokenObj;
261
+ export declare const ChipMauveBackgroundColor: TokenObj;
262
+ export declare const ChipMauveBackgroundColorHover: TokenObj;
263
+ export declare const ChipMauveBackgroundColorActive: TokenObj;
264
+ export declare const ChipMauveBorderColor: TokenObj;
265
+ export declare const ChipMauveBorderColorHover: TokenObj;
266
+ export declare const ChipMauveBorderColorActive: TokenObj;
267
+ export declare const ChipOrangeBackgroundColor: TokenObj;
268
+ export declare const ChipOrangeBackgroundColorHover: TokenObj;
269
+ export declare const ChipOrangeBackgroundColorActive: TokenObj;
270
+ export declare const ChipOrangeBorderColor: TokenObj;
271
+ export declare const ChipOrangeBorderColorHover: TokenObj;
272
+ export declare const ChipOrangeBorderColorActive: TokenObj;
273
+ export declare const ChipPurpleBackgroundColor: TokenObj;
274
+ export declare const ChipPurpleBackgroundColorHover: TokenObj;
275
+ export declare const ChipPurpleBackgroundColorActive: TokenObj;
276
+ export declare const ChipPurpleBorderColor: TokenObj;
277
+ export declare const ChipPurpleBorderColorHover: TokenObj;
278
+ export declare const ChipPurpleBorderColorActive: TokenObj;
201
279
  export declare const ComboboxItemDefaultBackgroundColor: TokenObj;
202
280
  export declare const ComboboxItemDefaultBackgroundColorHover: TokenObj;
203
281
  export declare const ComboboxItemDefaultBackgroundColorActive: TokenObj;