@servicetitan/anvil2 3.17.0 → 3.18.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 (302) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/{AiMark-CYXbKuCA.js → AiMark-Ca7WmL-9.js} +113 -32
  3. package/dist/AiMark-Ca7WmL-9.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-CYpl0czJ.js → Alert-BOqBFMUV.js} +2 -2
  6. package/dist/{Alert-CYpl0czJ.js.map → Alert-BOqBFMUV.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-DagOuc9c.js → AnvilProvider-BVTxXzoS.js} +3 -3
  9. package/dist/{AnvilProvider-DagOuc9c.js.map → AnvilProvider-BVTxXzoS.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Breadcrumbs-C0CXs9Ma.js → Breadcrumbs-1MCqy-gU.js} +2 -2
  12. package/dist/{Breadcrumbs-C0CXs9Ma.js.map → Breadcrumbs-1MCqy-gU.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Calendar-BAIyDHX9.js → Calendar-BcsuV4Xv.js} +2 -2
  15. package/dist/{Calendar-BAIyDHX9.js.map → Calendar-BcsuV4Xv.js.map} +1 -1
  16. package/dist/{Calendar-C_NPqjx3.js → Calendar-oBRbQqnG.js} +2 -2
  17. package/dist/{Calendar-C_NPqjx3.js.map → Calendar-oBRbQqnG.js.map} +1 -1
  18. package/dist/Calendar.js +2 -2
  19. package/dist/{Checkbox-4Ow8rCbD.js → Checkbox-BCaUzwF_.js} +2 -2
  20. package/dist/{Checkbox-4Ow8rCbD.js.map → Checkbox-BCaUzwF_.js.map} +1 -1
  21. package/dist/{Checkbox-f1vutjn0.js → Checkbox-BocPrjKC.js} +4 -4
  22. package/dist/{Checkbox-f1vutjn0.js.map → Checkbox-BocPrjKC.js.map} +1 -1
  23. package/dist/Checkbox.js +1 -1
  24. package/dist/{Chip-AIF0WiNS.js → Chip-BWqgUX71.js} +11 -24
  25. package/dist/Chip-BWqgUX71.js.map +1 -0
  26. package/dist/Chip.js +1 -1
  27. package/dist/Combobox.js +1 -1
  28. package/dist/{DataTableEditColumnsDrawer-DRgJgso9.js → DataTableEditColumnsDrawer-C7OHRsJU.js} +101 -42
  29. package/dist/DataTableEditColumnsDrawer-C7OHRsJU.js.map +1 -0
  30. package/dist/DataTableEditColumnsDrawer.css +49 -33
  31. package/dist/{DateFieldRange-D9PA985Z.js → DateFieldRange-BPcsS6TW.js} +5 -5
  32. package/dist/{DateFieldRange-D9PA985Z.js.map → DateFieldRange-BPcsS6TW.js.map} +1 -1
  33. package/dist/DateFieldRange.js +1 -1
  34. package/dist/{DateFieldSingle-CMLojOb3.js → DateFieldSingle-BRMhe0OM.js} +5 -5
  35. package/dist/{DateFieldSingle-CMLojOb3.js.map → DateFieldSingle-BRMhe0OM.js.map} +1 -1
  36. package/dist/DateFieldSingle.js +1 -1
  37. package/dist/{DateFieldYearless-B5IyR75v.js → DateFieldYearless-NOgDKzrJ.js} +6 -6
  38. package/dist/{DateFieldYearless-B5IyR75v.js.map → DateFieldYearless-NOgDKzrJ.js.map} +1 -1
  39. package/dist/DateFieldYearless.js +1 -1
  40. package/dist/{DateFieldYearlessRange-8yXILjx7.js → DateFieldYearlessRange-ChvypgXC.js} +5 -5
  41. package/dist/{DateFieldYearlessRange-8yXILjx7.js.map → DateFieldYearlessRange-ChvypgXC.js.map} +1 -1
  42. package/dist/DateFieldYearlessRange.js +1 -1
  43. package/dist/{DaysOfTheWeek-Cxp5VdYK.js → DaysOfTheWeek-nYitIKnQ.js} +3 -3
  44. package/dist/{DaysOfTheWeek-Cxp5VdYK.js.map → DaysOfTheWeek-nYitIKnQ.js.map} +1 -1
  45. package/dist/DaysOfTheWeek.js +1 -1
  46. package/dist/Details-B2F3auTX.js +216 -0
  47. package/dist/Details-B2F3auTX.js.map +1 -0
  48. package/dist/{Details-BxqP-5vp.js → Details-DQ-_Mg4o.js} +3 -3
  49. package/dist/{Details-BxqP-5vp.js.map → Details-DQ-_Mg4o.js.map} +1 -1
  50. package/dist/Details.css +92 -68
  51. package/dist/Details.js +1 -1
  52. package/dist/Details2.css +137 -0
  53. package/dist/{Dialog-KDAJphrA.js → Dialog-BgWoV2on.js} +6 -4
  54. package/dist/Dialog-BgWoV2on.js.map +1 -0
  55. package/dist/Dialog.js +1 -1
  56. package/dist/{Drawer-C7E2NNnH.js → Drawer-BVBLtGn_.js} +7 -5
  57. package/dist/Drawer-BVBLtGn_.js.map +1 -0
  58. package/dist/Drawer.js +1 -1
  59. package/dist/DrillDown.js +1 -1
  60. package/dist/{EditCard-CutlsXfK.js → EditCard-hivZDPZh.js} +2 -2
  61. package/dist/{EditCard-CutlsXfK.js.map → EditCard-hivZDPZh.js.map} +1 -1
  62. package/dist/EditCard.js +1 -1
  63. package/dist/{FieldLabel-DYcUS3A4.js → FieldLabel-Cn559Brf.js} +8 -58
  64. package/dist/FieldLabel-Cn559Brf.js.map +1 -0
  65. package/dist/FieldLabel.css +1 -12
  66. package/dist/FieldLabel.js +1 -1
  67. package/dist/FieldMessage.js +1 -1
  68. package/dist/{FilterBar-DbDfZph-.js → FilterBar-COd38Ent.js} +5 -5
  69. package/dist/{FilterBar-DbDfZph-.js.map → FilterBar-COd38Ent.js.map} +1 -1
  70. package/dist/FilterBar.js +1 -1
  71. package/dist/InlineMarkdown-CL1tKR01.js +87 -0
  72. package/dist/InlineMarkdown-CL1tKR01.js.map +1 -0
  73. package/dist/InlineMarkdown.css +12 -0
  74. package/dist/{InputMask-BxdQc1ld.js → InputMask-DICWdeiF.js} +3 -3
  75. package/dist/{InputMask-BxdQc1ld.js.map → InputMask-DICWdeiF.js.map} +1 -1
  76. package/dist/InputMask.js +1 -1
  77. package/dist/{ListView-BVanVvBk.js → ListView-BeGBn5Vk.js} +2 -2
  78. package/dist/{ListView-BVanVvBk.js.map → ListView-BeGBn5Vk.js.map} +1 -1
  79. package/dist/ListView.js +1 -1
  80. package/dist/{Listbox-BR0YQIee.js → Listbox-n1CmJ2gh.js} +2 -2
  81. package/dist/{Listbox-BR0YQIee.js.map → Listbox-n1CmJ2gh.js.map} +1 -1
  82. package/dist/Listbox.js +1 -1
  83. package/dist/MultiSelectField.js +1 -1
  84. package/dist/{MultiSelectFieldSync-9253tott.js → MultiSelectFieldSync-CWsOdu-o.js} +44 -62
  85. package/dist/MultiSelectFieldSync-CWsOdu-o.js.map +1 -0
  86. package/dist/MultiSelectFieldSync.css +107 -69
  87. package/dist/MultiSelectMenu.js +1 -1
  88. package/dist/{MultiSelectMenuSync-BUJbWN2I.js → MultiSelectMenuSync-AVcf8ZUZ.js} +16 -29
  89. package/dist/MultiSelectMenuSync-AVcf8ZUZ.js.map +1 -0
  90. package/dist/{NumberField-DhxywJVp.js → NumberField-DjOvcCa1.js} +5 -5
  91. package/dist/{NumberField-DhxywJVp.js.map → NumberField-DjOvcCa1.js.map} +1 -1
  92. package/dist/NumberField.js +1 -1
  93. package/dist/{Page-D_KL2tdK.js → Page-_dh-JesM.js} +128 -80
  94. package/dist/Page-_dh-JesM.js.map +1 -0
  95. package/dist/Page.css +85 -80
  96. package/dist/Page.js +1 -1
  97. package/dist/{Pagination-DYpUtMha.js → Pagination-CsSpaTCs.js} +2 -2
  98. package/dist/{Pagination-DYpUtMha.js.map → Pagination-CsSpaTCs.js.map} +1 -1
  99. package/dist/Pagination.js +1 -1
  100. package/dist/{Popover-B2ix8Ji4.js → Popover-CEKl0WY3.js} +3 -3
  101. package/dist/{Popover-B2ix8Ji4.js.map → Popover-CEKl0WY3.js.map} +1 -1
  102. package/dist/Popover.js +1 -1
  103. package/dist/{ProgressBar-CjoOuJCi.js → ProgressBar-ubCKKewC.js} +3 -3
  104. package/dist/{ProgressBar-CjoOuJCi.js.map → ProgressBar-ubCKKewC.js.map} +1 -1
  105. package/dist/ProgressBar.js +1 -1
  106. package/dist/{Radio-Bz36_d0V.js → Radio-DkB6zFsS.js} +2 -2
  107. package/dist/{Radio-Bz36_d0V.js.map → Radio-DkB6zFsS.js.map} +1 -1
  108. package/dist/{Radio-DOD1d9Vw.js → Radio-q1Vp_ZQG.js} +4 -4
  109. package/dist/{Radio-DOD1d9Vw.js.map → Radio-q1Vp_ZQG.js.map} +1 -1
  110. package/dist/Radio.js +1 -1
  111. package/dist/{RichTextEditor-BORVXVDw.js → RichTextEditor-BHt6sWMA.js} +8 -8
  112. package/dist/{RichTextEditor-BORVXVDw.js.map → RichTextEditor-BHt6sWMA.js.map} +1 -1
  113. package/dist/RichTextEditor.js +1 -1
  114. package/dist/{SavedFiltersButton-vq_Kt4Qc.js → SavedFiltersButton-Cl58iHZe.js} +9 -9
  115. package/dist/{SavedFiltersButton-vq_Kt4Qc.js.map → SavedFiltersButton-Cl58iHZe.js.map} +1 -1
  116. package/dist/SavedFiltersButton.js +1 -1
  117. package/dist/{SearchField-ChoNtw8w.js → SearchField-Bk-Ltu4v.js} +2 -2
  118. package/dist/{SearchField-ChoNtw8w.js.map → SearchField-Bk-Ltu4v.js.map} +1 -1
  119. package/dist/{SearchField-DX8hZyo2.js → SearchField-INVftpNM.js} +2 -2
  120. package/dist/{SearchField-DX8hZyo2.js.map → SearchField-INVftpNM.js.map} +1 -1
  121. package/dist/SearchField.js +1 -1
  122. package/dist/{SelectCard-CJwetC1k.js → SelectCard-DeAUW1bL.js} +3 -3
  123. package/dist/{SelectCard-CJwetC1k.js.map → SelectCard-DeAUW1bL.js.map} +1 -1
  124. package/dist/SelectCard.js +1 -1
  125. package/dist/SelectField.js +1 -1
  126. package/dist/{SelectFieldLabel-BTKqybZm.js → SelectFieldLabel-DaXwIFZj.js} +2 -2
  127. package/dist/{SelectFieldLabel-BTKqybZm.js.map → SelectFieldLabel-DaXwIFZj.js.map} +1 -1
  128. package/dist/{SelectFieldSync-CoUi-BYw.js → SelectFieldSync-DpZL4wDo.js} +47 -68
  129. package/dist/SelectFieldSync-DpZL4wDo.js.map +1 -0
  130. package/dist/SelectMenu.js +1 -1
  131. package/dist/{SelectMenuSync-CvXx-6uU.js → SelectMenuSync-Klna2oqs.js} +16 -35
  132. package/dist/SelectMenuSync-Klna2oqs.js.map +1 -0
  133. package/dist/{SelectOptions-CGRUCyf4.js → SelectOptions-DGYYFU8i.js} +2 -2
  134. package/dist/{SelectOptions-CGRUCyf4.js.map → SelectOptions-DGYYFU8i.js.map} +1 -1
  135. package/dist/{SelectTrigger-CRbl804u.js → SelectTrigger-DKY7rpZn.js} +2 -2
  136. package/dist/{SelectTrigger-CRbl804u.js.map → SelectTrigger-DKY7rpZn.js.map} +1 -1
  137. package/dist/SelectTrigger.js +1 -1
  138. package/dist/{SelectTriggerBase-BRUW_Zgc.js → SelectTriggerBase-DUYq_L-6.js} +5 -5
  139. package/dist/{SelectTriggerBase-BRUW_Zgc.js.map → SelectTriggerBase-DUYq_L-6.js.map} +1 -1
  140. package/dist/SelectTriggerBase.css +94 -56
  141. package/dist/SelectTriggerBase.module-C-NmZbg4.js +41 -0
  142. package/dist/SelectTriggerBase.module-C-NmZbg4.js.map +1 -0
  143. package/dist/{Switch-rPPL4yEa.js → Switch-C9yQgF4w.js} +2 -2
  144. package/dist/{Switch-rPPL4yEa.js.map → Switch-C9yQgF4w.js.map} +1 -1
  145. package/dist/Switch.js +1 -1
  146. package/dist/Table.js +1 -1
  147. package/dist/{Text-BRbkPr5s.js → Text-D4SWT4u-.js} +2 -2
  148. package/dist/{Text-BRbkPr5s.js.map → Text-D4SWT4u-.js.map} +1 -1
  149. package/dist/Text.js +1 -1
  150. package/dist/{TextField-B9hivHsD.js → TextField-CKXSxube.js} +5 -5
  151. package/dist/{TextField-B9hivHsD.js.map → TextField-CKXSxube.js.map} +1 -1
  152. package/dist/{TextField-DGRVg_Cw.js → TextField-DmdT2k0w.js} +2 -2
  153. package/dist/{TextField-DGRVg_Cw.js.map → TextField-DmdT2k0w.js.map} +1 -1
  154. package/dist/TextField.css +38 -23
  155. package/dist/TextField.js +1 -1
  156. package/dist/TextField.module-B3y6caP9.js +25 -0
  157. package/dist/TextField.module-B3y6caP9.js.map +1 -0
  158. package/dist/{Textarea-DNqfV8rJ.js → Textarea-Dv__veBJ.js} +11 -11
  159. package/dist/{Textarea-DNqfV8rJ.js.map → Textarea-Dv__veBJ.js.map} +1 -1
  160. package/dist/Textarea.css +26 -11
  161. package/dist/Textarea.js +1 -1
  162. package/dist/{ThemeProvider-DW-Mflv6.js → ThemeProvider-DS2aL89d.js} +2 -2
  163. package/dist/{ThemeProvider-DW-Mflv6.js.map → ThemeProvider-DS2aL89d.js.map} +1 -1
  164. package/dist/ThemeProvider.css +6 -4
  165. package/dist/ThemeProvider.js +1 -1
  166. package/dist/ThemeProvider.module-BkKwAw2f.js +8 -0
  167. package/dist/ThemeProvider.module-BkKwAw2f.js.map +1 -0
  168. package/dist/{TimeField-DldMBNAj.js → TimeField-De9qBimk.js} +48 -10
  169. package/dist/TimeField-De9qBimk.js.map +1 -0
  170. package/dist/TimeField.js +1 -1
  171. package/dist/{TimezoneMessage-CgVNxYpM.js → TimezoneMessage-DEJX87S3.js} +2 -2
  172. package/dist/{TimezoneMessage-CgVNxYpM.js.map → TimezoneMessage-DEJX87S3.js.map} +1 -1
  173. package/dist/Toast.js +2 -2
  174. package/dist/{Toaster-Bcy9XN3c.js → Toaster-BlwTxTLf.js} +2 -2
  175. package/dist/{Toaster-Bcy9XN3c.js.map → Toaster-BlwTxTLf.js.map} +1 -1
  176. package/dist/{Toaster-C66ra4BK.js → Toaster-sO16N9b5.js} +23 -9
  177. package/dist/Toaster-sO16N9b5.js.map +1 -0
  178. package/dist/{Toolbar-DgPah7M3.js → Toolbar-BhrHuIN7.js} +6 -6
  179. package/dist/{Toolbar-DgPah7M3.js.map → Toolbar-BhrHuIN7.js.map} +1 -1
  180. package/dist/{Toolbar-Br-5yBxq.js → Toolbar-Buq2zze0.js} +4 -4
  181. package/dist/{Toolbar-Br-5yBxq.js.map → Toolbar-Buq2zze0.js.map} +1 -1
  182. package/dist/Toolbar.js +2 -2
  183. package/dist/{ToolbarButtonToggle-BDfoHeie.js → ToolbarButtonToggle-CNIaqVWl.js} +2 -2
  184. package/dist/{ToolbarButtonToggle-BDfoHeie.js.map → ToolbarButtonToggle-CNIaqVWl.js.map} +1 -1
  185. package/dist/{Tooltip-C_VcYS9P.js → Tooltip-CsTkZqMg.js} +3 -3
  186. package/dist/{Tooltip-C_VcYS9P.js.map → Tooltip-CsTkZqMg.js.map} +1 -1
  187. package/dist/Tooltip.js +1 -1
  188. package/dist/TreeSelectField.js +1 -1
  189. package/dist/{TreeSelectFieldSync-1psUeqtG.js → TreeSelectFieldSync-B7w31kbz.js} +22 -22
  190. package/dist/{TreeSelectFieldSync-1psUeqtG.js.map → TreeSelectFieldSync-B7w31kbz.js.map} +1 -1
  191. package/dist/TreeSelectFieldSync.css +57 -34
  192. package/dist/TreeSelectMenu.js +1 -1
  193. package/dist/{TreeSelectMenuSync-DIPSYUnE.js → TreeSelectMenuSync-EjxlvDZp.js} +4 -4
  194. package/dist/{TreeSelectMenuSync-DIPSYUnE.js.map → TreeSelectMenuSync-EjxlvDZp.js.map} +1 -1
  195. package/dist/{TypeaheadTextField-Di9ulOBl.js → TypeaheadTextField-DTOkaJda.js} +3 -3
  196. package/dist/{TypeaheadTextField-Di9ulOBl.js.map → TypeaheadTextField-DTOkaJda.js.map} +1 -1
  197. package/dist/TypeaheadTextField.js +1 -1
  198. package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js → YearlessDateInputWithPicker-DJUQypnF.js} +3 -3
  199. package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js.map → YearlessDateInputWithPicker-DJUQypnF.js.map} +1 -1
  200. package/dist/beta.js +19 -18
  201. package/dist/beta.js.map +1 -1
  202. package/dist/{bulkActionTypes-B71ZHjVu.js → bulkActionTypes-bznuvizE.js} +2 -2
  203. package/dist/{bulkActionTypes-B71ZHjVu.js.map → bulkActionTypes-bznuvizE.js.map} +1 -1
  204. package/dist/{filter-state-Lw9qL0zP.js → filter-state-DxwL15y1.js} +23 -23
  205. package/dist/{filter-state-Lw9qL0zP.js.map → filter-state-DxwL15y1.js.map} +1 -1
  206. package/dist/{index-B3WhDZeI.js → index-Bn56UnMm.js} +2 -2
  207. package/dist/{index-B3WhDZeI.js.map → index-Bn56UnMm.js.map} +1 -1
  208. package/dist/index.js +157 -115
  209. package/dist/index.js.map +1 -1
  210. package/dist/index2.css +78 -73
  211. package/dist/{portalScopeClassNames-DA28LrXe.js → portalScopeClassNames-CMdDYHE0.js} +2 -2
  212. package/dist/{portalScopeClassNames-DA28LrXe.js.map → portalScopeClassNames-CMdDYHE0.js.map} +1 -1
  213. package/dist/src/beta/components/Details/Details.d.ts +25 -0
  214. package/dist/src/beta/components/Details/DetailsSummary.d.ts +121 -0
  215. package/dist/src/beta/components/Details/index.d.ts +4 -0
  216. package/dist/src/beta/components/Details/internal/DetailsArrow.d.ts +11 -0
  217. package/dist/src/beta/components/Details/internal/DetailsSummaryCells.d.ts +5 -0
  218. package/dist/src/beta/components/Page/Page.d.ts +1 -0
  219. package/dist/src/beta/components/Page/PageSidebar.d.ts +12 -0
  220. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +3 -3
  221. package/dist/src/beta/components/Table/DataTable/internal/context/tabbables/CellTabbablesQueue.d.ts +23 -0
  222. package/dist/src/beta/components/Table/DataTable/types.d.ts +11 -0
  223. package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +4 -4
  224. package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +4 -4
  225. package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +4 -4
  226. package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +4 -4
  227. package/dist/src/beta/components/index.d.ts +1 -0
  228. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  229. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  230. package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -1
  231. package/dist/src/components/Page/Page.d.ts +1 -0
  232. package/dist/src/components/Page/PageSidebar.d.ts +12 -0
  233. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  234. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  235. package/dist/src/internal/components/InlineMarkdown/InlineMarkdown.d.ts +8 -1
  236. package/dist/src/internal/components/InlineMarkdown/index.d.ts +1 -1
  237. package/dist/src/internal/components/Popover/Popover.d.ts +10 -5
  238. package/dist/src/internal/components/Popover/internal/verticalPlacement.d.ts +9 -0
  239. package/dist/src/internal/contexts/DisableConditionalUnmountWarningContext.d.ts +6 -0
  240. package/dist/src/internal/contexts/SuppressPanelSwapWarningContext.d.ts +13 -0
  241. package/dist/src/internal/functions/inlineMarkdown.d.ts +5 -2
  242. package/dist/src/internal/functions/stripInlineMarkdown.d.ts +4 -2
  243. package/dist/src/internal/hooks/index.d.ts +1 -0
  244. package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +9 -1
  245. package/dist/src/internal/hooks/useSelectOrchestration.d.ts +0 -1
  246. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/index.d.ts +1 -0
  247. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/useWarnOnConditionalUnmount.d.ts +1 -0
  248. package/dist/src/internal/testing/keepMutationObserversAlive.d.ts +9 -0
  249. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +0 -1
  250. package/dist/src/internal/utils/inlineMarkdownRegex.d.ts +5 -0
  251. package/dist/stripInlineMarkdown-BV12XXzl.js +35 -0
  252. package/dist/stripInlineMarkdown-BV12XXzl.js.map +1 -0
  253. package/dist/{syncFilterUtils-DnhuqY1S.js → syncFilterUtils-BNbAB0jz.js} +109 -38
  254. package/dist/syncFilterUtils-BNbAB0jz.js.map +1 -0
  255. package/dist/token/core/component-variables.scss +3 -0
  256. package/dist/token/core/component.d.ts +2 -0
  257. package/dist/token/core/component.js +17 -0
  258. package/dist/token/core/component.scss +2 -0
  259. package/dist/token/core/semantic-variables.scss +2 -0
  260. package/dist/token/core/semantic.d.ts +1 -0
  261. package/dist/token/core/semantic.js +13 -0
  262. package/dist/token/core/semantic.scss +1 -0
  263. package/dist/token.js +33 -0
  264. package/dist/token.js.map +1 -1
  265. package/dist/{treeSync-BDwht_1r.js → treeSync-BELsX1gY.js} +3 -3
  266. package/dist/{treeSync-BDwht_1r.js.map → treeSync-BELsX1gY.js.map} +1 -1
  267. package/dist/{useDrilldown-CGdhHs8L.js → useDrilldown-B8pIhfWa.js} +3 -3
  268. package/dist/{useDrilldown-CGdhHs8L.js.map → useDrilldown-B8pIhfWa.js.map} +1 -1
  269. package/dist/{useInfiniteCombobox-Db0kaxCj.js → useInfiniteCombobox-ZZalag0-.js} +4 -4
  270. package/dist/{useInfiniteCombobox-Db0kaxCj.js.map → useInfiniteCombobox-ZZalag0-.js.map} +1 -1
  271. package/dist/{useInitialFocus-fBiTU9l8.js → useInitialFocus-KdirjHEb.js} +45 -13
  272. package/dist/useInitialFocus-KdirjHEb.js.map +1 -0
  273. package/dist/{useInvalidateOnOptionsChange-PweyDORd.js → useInvalidateOnOptionsChange-ChrPmbtS.js} +5 -5
  274. package/dist/{useInvalidateOnOptionsChange-PweyDORd.js.map → useInvalidateOnOptionsChange-ChrPmbtS.js.map} +1 -1
  275. package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
  276. package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
  277. package/dist/{utils-CM48ODEJ.js → utils-DwLrXpmt.js} +2 -2
  278. package/dist/{utils-CM48ODEJ.js.map → utils-DwLrXpmt.js.map} +1 -1
  279. package/package.json +3 -3
  280. package/dist/AiMark-CYXbKuCA.js.map +0 -1
  281. package/dist/Chip-AIF0WiNS.js.map +0 -1
  282. package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +0 -1
  283. package/dist/Dialog-KDAJphrA.js.map +0 -1
  284. package/dist/Drawer-C7E2NNnH.js.map +0 -1
  285. package/dist/FieldLabel-DYcUS3A4.js.map +0 -1
  286. package/dist/MultiSelectFieldSync-9253tott.js.map +0 -1
  287. package/dist/MultiSelectMenuSync-BUJbWN2I.js.map +0 -1
  288. package/dist/Page-D_KL2tdK.js.map +0 -1
  289. package/dist/SelectFieldSync-CoUi-BYw.js.map +0 -1
  290. package/dist/SelectMenuSync-CvXx-6uU.js.map +0 -1
  291. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +0 -40
  292. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +0 -1
  293. package/dist/TextField.module-DklyLNKz.js +0 -25
  294. package/dist/TextField.module-DklyLNKz.js.map +0 -1
  295. package/dist/ThemeProvider.module-B9qgsQ8S.js +0 -8
  296. package/dist/ThemeProvider.module-B9qgsQ8S.js.map +0 -1
  297. package/dist/TimeField-DldMBNAj.js.map +0 -1
  298. package/dist/Toaster-C66ra4BK.js.map +0 -1
  299. package/dist/stripInlineMarkdown-B6lAJb4-.js +0 -25
  300. package/dist/stripInlineMarkdown-B6lAJb4-.js.map +0 -1
  301. package/dist/syncFilterUtils-DnhuqY1S.js.map +0 -1
  302. package/dist/useInitialFocus-fBiTU9l8.js.map +0 -1
@@ -0,0 +1,137 @@
1
+ .anvil2 {._details_qxy6k_1 {
2
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
3
+ font-size: 100%;
4
+ color: inherit;
5
+ margin: 0;
6
+ padding: 0;
7
+ border-style: none;
8
+ border-width: 0;
9
+ border-color: transparent;
10
+ box-sizing: border-box;
11
+ display: flex;
12
+ flex-direction: column;
13
+ flex-grow: 1;
14
+ }._summary_qxy6k_16 {
15
+ --a2-internal-details-summary-background-color: var(
16
+ --a2-mod-details-summary-background-color
17
+ );
18
+ --a2-internal-details-summary-foreground-color: var(
19
+ --a2-mod-details-summary-foreground-color
20
+ );
21
+ --a2-mod-details-summary-foreground-color: var(--a2-details-summary-foreground-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
22
+ --a2-mod-details-summary-foreground-color-hover: var(--a2-details-summary-foreground-color-hover, var(--a2-foreground-color-default-hover, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
23
+ --a2-mod-details-summary-foreground-color-active: var(--a2-details-summary-foreground-color-active, var(--a2-foreground-color-default-active, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
24
+ --a2-mod-details-summary-background-color: transparent;
25
+ --a2-mod-details-summary-background-color-active: var(--a2-details-summary-background-color-active, var(--a2-background-color-transparent-default-active, light-dark(rgba(139, 139, 139, 0.1607843137), rgba(255, 255, 255, 0.1607843137))));
26
+ --a2-mod-details-summary-background-color-hover: var(--a2-details-summary-background-color-hover, var(--a2-background-color-transparent-default-hover, light-dark(rgba(139, 139, 139, 0.0784313725), rgba(255, 255, 255, 0.0784313725))));
27
+ --a2-mod-details-summary-focus-ring-color: var(--a2-details-summary-focus-ring-color, var(--a2-focus-ring-color-default, var(--a2-status-color-info, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff)))));
28
+ --a2-mod-details-summary-outline-width: 0;
29
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
30
+ font-size: 100%;
31
+ color: inherit;
32
+ margin: 0;
33
+ padding: 0;
34
+ border-style: none;
35
+ border-width: 0;
36
+ border-color: transparent;
37
+ box-sizing: border-box;
38
+ display: flex;
39
+ align-items: center;
40
+ background-color: var(--a2-internal-details-summary-background-color);
41
+ border-radius: var(--a2-border-radius-medium, var(--a2-radius-2, 0.375rem));
42
+ color: var(--a2-internal-details-summary-foreground-color);
43
+ cursor: pointer;
44
+ font-family: var(--a2-font-family-display, "Sofia Pro", SofiaPro, sans-serif);
45
+ font-size: var(--a2-font-size-400, 1rem);
46
+ font-style: normal;
47
+ font-weight: var(--a2-font-weight-bold, 700);
48
+ line-height: 1.25;
49
+ outline: var(--a2-mod-details-summary-outline-width) solid var(--a2-mod-details-summary-focus-ring-color);
50
+ outline-offset: var(--a2-size-half, 0.125rem);
51
+ padding-block: var(--a2-size-2, 0.5rem);
52
+ padding-inline: var(--a2-size-4, 1rem);
53
+ transition: outline var(--a2-mod-details-summary-transition-duration, var(--a2-duration-default, 200ms)) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
54
+ width: 100%;
55
+ }._summary_qxy6k_16[data-interactive=focus-visible], ._summary_qxy6k_16:focus-visible {
56
+ --a2-mod-details-summary-outline-width: var(--a2-size-half, 0.125rem);
57
+ }._summary_qxy6k_16[data-interactive=hover], ._summary_qxy6k_16:hover {
58
+ --a2-internal-details-summary-background-color: var(
59
+ --a2-mod-details-summary-background-color-hover
60
+ );
61
+ --a2-internal-details-summary-foreground-color: var(
62
+ --a2-mod-details-summary-foreground-color-hover
63
+ );
64
+ }._summary_qxy6k_16[data-interactive=active], ._summary_qxy6k_16:active {
65
+ --a2-internal-details-summary-background-color: var(
66
+ --a2-mod-details-summary-background-color-active
67
+ );
68
+ --a2-internal-details-summary-foreground-color: var(
69
+ --a2-mod-details-summary-foreground-color-active
70
+ );
71
+ }@media (prefers-reduced-motion: reduce) {
72
+ ._summary_qxy6k_16 {
73
+ --a2-mod-details-summary-transition-duration: 0.01ms;
74
+ }
75
+ }._label_qxy6k_83 {
76
+ flex: 1;
77
+ text-align: start;
78
+ text-box: trim-both cap alphabetic;
79
+ }._arrow_qxy6k_89 {
80
+ display: flex;
81
+ inset-inline-start: var(--a2-size-quarter, 0.0625rem);
82
+ position: relative;
83
+ transition: all var(--a2-mod-details-arrow-transition-duration, var(--a2-duration-default, 200ms)) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
84
+ }@media (prefers-reduced-motion: reduce) {
85
+ ._arrow_qxy6k_89 {
86
+ --a2-mod-details-arrow-transition-duration: 0.01ms;
87
+ }
88
+ }._is-expanded_qxy6k_101 {
89
+ transform: rotate(90deg);
90
+ }._content-wrapper_qxy6k_105 {
91
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
92
+ font-size: 100%;
93
+ color: inherit;
94
+ margin: 0;
95
+ padding: 0;
96
+ border-style: none;
97
+ border-width: 0;
98
+ border-color: transparent;
99
+ box-sizing: border-box;
100
+ display: grid;
101
+ grid-template-rows: 0fr;
102
+ opacity: 0;
103
+ transition-behavior: allow-discrete;
104
+ transition-duration: var(--a2-mod-details-content-wrapper-transition-duration, var(--a2-duration-default, 200ms));
105
+ transition-property: max-height, grid-template-rows, opacity;
106
+ transition-timing-function: var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
107
+ visibility: hidden;
108
+ }@media (prefers-reduced-motion: reduce) {
109
+ ._content-wrapper_qxy6k_105 {
110
+ --a2-mod-details-content-wrapper-transition-duration: 0.01ms;
111
+ }
112
+ }._content_qxy6k_105 {
113
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
114
+ font-size: 100%;
115
+ color: var(--a2-details-content-foreground-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
116
+ margin: 0;
117
+ padding: 0;
118
+ border-style: none;
119
+ border-width: 0;
120
+ border-color: transparent;
121
+ box-sizing: border-box;
122
+ display: block;
123
+ overflow: hidden;
124
+ padding-inline: var(--a2-size-6, 1.5rem);
125
+ }._expanded_qxy6k_145 {
126
+ grid-template-rows: 1fr;
127
+ max-height: -moz-fit-content;
128
+ max-height: fit-content;
129
+ opacity: 1;
130
+ padding-block-end: var(--a2-size-2, 0.5rem);
131
+ padding-block-start: var(--a2-size-2, 0.5rem);
132
+ visibility: visible;
133
+ }._expanded_qxy6k_145 > ._content_qxy6k_105 {
134
+ --a2-mod-details-content-padding-block-end: var(--a2-size-1, 0.25rem);
135
+ padding-block-end: var(--a2-mod-details-content-padding-block-end);
136
+ }
137
+ }
@@ -2,15 +2,15 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useState, useEffect, useRef, useId, useCallback, useLayoutEffect, useMemo } from 'react';
3
3
  import { S as SvgClose } from './close-DZj38AEh.js';
4
4
  import { c as cx } from './index-De1g9FRV.js';
5
- import { T as Text } from './Text-BRbkPr5s.js';
5
+ import { T as Text } from './Text-D4SWT4u-.js';
6
6
  import { u as useDialogContext, D as DialogCancelButton } from './DialogCancelButton-CplrFu69.js';
7
7
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
8
8
  import { useTrackingId } from './useTrackingId.js';
9
9
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
10
10
  import { D as DialogContext } from './DialogContext-DBgtApl9.js';
11
11
  import { d as drillDownStyles, D as DrillDownContext } from './DrillDown.module-BFE5BcJB.js';
12
- import { u as useDrillDownContextState, a as useDialogTransitionStates, b as useKeyboardFocusables, c as useInitialFocus } from './useInitialFocus-fBiTU9l8.js';
13
- import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-C66ra4BK.js';
12
+ import { u as useWarnOnConditionalUnmount, a as useDrillDownContextState, b as useDialogTransitionStates, c as useKeyboardFocusables, d as useInitialFocus } from './useInitialFocus-KdirjHEb.js';
13
+ import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-sO16N9b5.js';
14
14
  import { r as registerLayer, u as unregisterLayer, a as useOnClickOutside } from './useOnClickOutside-Zw5vzxSq.js';
15
15
  import { u as useDialogScrollLock } from './useDialogScrollLock-BW-aVboo.js';
16
16
 
@@ -141,6 +141,7 @@ const DialogContent = forwardRef(
141
141
  );
142
142
  DialogContent.displayName = "DialogContent";
143
143
 
144
+ const CONDITIONAL_UNMOUNT_WARNING = "[Anvil2 Dialog] Dialog was unmounted while still open. Prefer keeping it mounted and controlling visibility with the `open` prop when the host stays in the tree.";
144
145
  const Dialog = Object.assign(
145
146
  forwardRef(function DialogInner(props, ref) {
146
147
  const {
@@ -168,6 +169,7 @@ const Dialog = Object.assign(
168
169
  const contentRef = useRef(null);
169
170
  const toasterRef = useRef(null);
170
171
  const headerRef = useRef(null);
172
+ useWarnOnConditionalUnmount(open, CONDITIONAL_UNMOUNT_WARNING);
171
173
  const [hasOpenPopover, setHasOpenPopover] = useState(false);
172
174
  const drillDownContextValue = useDrillDownContextState({
173
175
  defaultDrillDownIndex,
@@ -346,4 +348,4 @@ const Dialog = Object.assign(
346
348
  Dialog.displayName = "Dialog";
347
349
 
348
350
  export { Dialog as D };
349
- //# sourceMappingURL=Dialog-KDAJphrA.js.map
351
+ //# sourceMappingURL=Dialog-BgWoV2on.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog-BgWoV2on.js","sources":["../src/components/Dialog/DialogHeader.tsx","../src/components/Dialog/DialogFooter.tsx","../src/components/Dialog/DialogContent.tsx","../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport cx from \"classnames\";\n\nimport { Text } from \"../Text\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\n\nimport styles from \"./Dialog.module.scss\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\n\n/** @extends ComponentPropsWithoutRef<\"header\"> */\nexport type DialogHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId;\n\n/** Dialog heading with a built-in close control. */\nexport const DialogHeader = forwardRef<HTMLDivElement, DialogHeaderProps>(\n (props: DialogHeaderProps, ref) => {\n const { children, className, ...rest } = props;\n const { headerRef } = useDialogContext();\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"Dialog\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const headerClassNames = cx(className, styles[\"header\"]);\n\n return (\n <header\n className={headerClassNames}\n data-anv=\"dialog-header\"\n data-tracking-id={trackingId}\n ref={useMergeRefs([ref, headerRef])}\n {...rest}\n >\n <Text variant=\"headline\" el=\"h1\" className={styles[\"title\"]}>\n {children}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </span>\n </header>\n );\n },\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\n\n/** @extends ComponentPropsWithoutRef<\"footer\"> */\nexport type DialogFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /** Keeps the action row visible at the bottom of scrolling content. Defaults to `false`. */\n sticky?: boolean;\n};\n\n/** Action row at the end of a dialog. */\nexport const DialogFooter = forwardRef<HTMLElement, DialogFooterProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n\n const footerClassNames = cx(styles[\"footer\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={footerClassNames}\n data-anv=\"dialog-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useState,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type DialogContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Pins the content below the changing header while the dialog scrolls. Defaults to `false`. */\n sticky?: boolean;\n};\n\n/** Main content region of a `Dialog`. */\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n const { headerRef } = useDialogContext();\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useEffect(() => {\n const headerElement = headerRef?.current;\n if (!sticky || !headerElement) return;\n\n const updateHeight = () => {\n setHeaderHeight(headerElement.offsetHeight || 0);\n };\n\n updateHeight();\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(headerElement);\n\n return () => resizeObserver.disconnect();\n }, [sticky, headerRef]);\n\n const contentClassNames = cx(styles[\"content\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n const stickyStyle = sticky ? { top: `${headerHeight}px` } : undefined;\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"dialog-content\"\n ref={ref}\n style={{ ...stickyStyle, ...rest.style }}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDialogContent.displayName = \"DialogContent\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type KeyboardEvent,\n useMemo,\n useLayoutEffect,\n} from \"react\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\nimport {\n type OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n useWarnOnConditionalUnmount,\n} from \"../../internal/hooks\";\nimport type {\n FocusableElement,\n DisableCloseOnEscapeOrClickProps,\n Size,\n} from \"../../types\";\nimport { registerLayer, unregisterLayer } from \"../../internal/utils\";\nimport {\n DialogContext,\n type DialogContextProps,\n} from \"./internal/DialogContext\";\nimport {\n DrillDownContext,\n type DrillDownContextProps,\n} from \"../DrillDown/internal/DrillDownContext\";\nimport { useDrillDownContextState } from \"../DrillDown/internal/useDrillDownContextState\";\nimport styles from \"./Dialog.module.scss\";\nimport drillDownStyles from \"../DrillDown/DrillDown.module.scss\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\n\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\nimport { useInitialFocus } from \"./internal/useInitialFocus\";\n\nconst CONDITIONAL_UNMOUNT_WARNING =\n \"[Anvil2 Dialog] Dialog was unmounted while still open. Prefer keeping it mounted and controlling visibility with the `open` prop when the host stays in the tree.\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends OpenCloseTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DialogProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /** Expands the dialog to the viewport instead of using `size`. Defaults to `false`. */\n fullScreen?: boolean;\n /** Width preset used outside full-screen mode. Defaults to `medium`. */\n size?: Extract<Size, \"medium\" | \"large\" | \"xlarge\">;\n\n /** Controls whether the dialog is shown. Defaults to `false`. */\n open?: boolean;\n /** Called by Escape, outside-click, and `Dialog.CancelButton` close actions. */\n onClose?: () => void;\n /** Called on an outside click even when that click is not allowed to close the dialog. */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /** Allows scrolling to continue into the page instead of locking the shadow host. */\n enableScrollChaining?: boolean;\n /**\n * Chooses initial focus from the dialog's tabbable elements. By default,\n * cancel buttons are skipped when another target is available.\n */\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /** DrillDown panel opened when navigation begins. Defaults to index `0`. */\n defaultDrillDownIndex?: DrillDownContextProps[\"index\"];\n /** Receives the current DrillDown controls and whether the dialog is interactive. */\n onDrillDownContextChange?: (context: DrillDownContextProps) => void;\n };\n\n/**\n * Controlled modal dialog with focus trapping, animated transitions, and\n * compound header, content, footer, and cancel-button regions.\n */\nexport const Dialog = Object.assign(\n forwardRef<HTMLDialogElement, DialogProps>(function DialogInner(props, ref) {\n const {\n className,\n open = false,\n children,\n onClose,\n onKeyDown,\n fullScreen = false,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size,\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n initialFocusResolver,\n defaultDrillDownIndex,\n onDrillDownContextChange,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLElement>(null);\n\n useWarnOnConditionalUnmount(open, CONDITIONAL_UNMOUNT_WARNING);\n\n const [hasOpenPopover, setHasOpenPopover] =\n useState<DialogContextProps[\"hasOpenPopover\"]>(false);\n\n const drillDownContextValue = useDrillDownContextState({\n defaultDrillDownIndex,\n host: \"dialog\",\n });\n\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n const previousOpenRef = useRef(open);\n\n useLayoutEffect(() => {\n if (open && !previousOpenRef.current) {\n drillDownContextValue.setHostTrigger?.(\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null,\n );\n }\n }, [open, drillDownContextValue]);\n\n useEffect(() => {\n previousOpenRef.current = open;\n }, [open]);\n\n useEffect(() => {\n if (state === \"closing\") {\n drillDownContextValue.onHostClose?.();\n }\n }, [state, drillDownContextValue]);\n\n useEffect(() => {\n if (state === \"closed\") {\n drillDownContextValue.onHostClosed?.();\n }\n }, [state, drillDownContextValue]);\n\n const drillDownContextProviderValue = useMemo(\n () => ({\n ...drillDownContextValue,\n hostIsInteractive: state !== \"closing\" && state !== \"closed\",\n }),\n [drillDownContextValue, state],\n );\n\n useLayoutEffect(() => {\n onDrillDownContextChange?.(drillDownContextProviderValue);\n }, [drillDownContextProviderValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const initial = useRef(true);\n useEffect(() => {\n if (initial.current) {\n initial.current = false;\n }\n }, [id, isOpenOrOpening]);\n\n const classNames = cx([styles.dialog, drillDownStyles.dialog], className, {\n [styles[\"closing\"]]: state === \"closing\",\n [styles[\"fullscreen\"]]: fullScreen,\n ...(size && size !== \"medium\" && { [styles[size]]: true }),\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: true,\n });\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n useEffect(() => {\n if (open) {\n registerLayer(id);\n } else {\n unregisterLayer(id);\n }\n\n return () => {\n unregisterLayer(id);\n };\n }, [open, id]);\n\n useOnClickOutside({\n onClickOutsideBegin: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClickOutside: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n layerId: id,\n });\n\n const computeFocus = useCallback((focusables: FocusableElement[]) => {\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"dialog-cancel-button\",\n ) || focusables[0]\n );\n }, []);\n\n useInitialFocus(elRef, {\n computeFocus: initialFocusResolver || computeFocus,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\") {\n e.preventDefault();\n if (disableCloseOnEscape) return;\n if (hasOpenPopover) return;\n onClose?.();\n return;\n }\n\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === focusables?.[0]) {\n e.preventDefault();\n (focusables[focusables.length - 1] as HTMLElement)?.focus();\n return;\n }\n if (e.target === focusables?.[focusables.length - 1] && !e.shiftKey) {\n e.preventDefault();\n focusables[0].focus();\n return;\n }\n }\n };\n\n return (\n <dialog\n className={classNames}\n data-anv=\"dialog\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={useMergeRefs([ref, elRef])}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={open}>\n <ToasterPopover>\n <ToasterContent id=\"dialog-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n\n <DrillDownContext.Provider value={drillDownContextProviderValue}>\n <DialogContext.Provider\n value={{\n close: () => onClose?.(),\n ref: elRef,\n hasOpenPopover,\n setHasOpenPopover,\n headerRef,\n state,\n }}\n >\n <section\n ref={contentRef}\n className={styles[\"container\"]}\n data-open={open}\n >\n <div className={styles[\"scroller\"]}>{children}</div>\n </section>\n </DialogContext.Provider>\n </DrillDownContext.Provider>\n </dialog>\n );\n }),\n {\n /** Renders the dialog title and close control. */\n Header: DialogHeader,\n /** Groups actions at the end of the dialog. */\n Footer: DialogFooter,\n /** Renders the dialog's main content region. */\n Content: DialogContent,\n /** Closes the dialog after running its own click handler. */\n CancelButton: DialogCancelButton,\n },\n);\nDialog.displayName = \"Dialog\";\nexport const DialogElement = Dialog;\n"],"names":["Close","focusables"],"mappings":"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"}
package/dist/Dialog.js CHANGED
@@ -1,2 +1,2 @@
1
- export { D as Dialog, D as default } from './Dialog-KDAJphrA.js';
1
+ export { D as Dialog, D as default } from './Dialog-BgWoV2on.js';
2
2
  //# sourceMappingURL=Dialog.js.map
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useContext, forwardRef, useState, useEffect, useRef, useId, useCallback, useLayoutEffect, useMemo } from 'react';
3
3
  import { S as SvgClose } from './close-DZj38AEh.js';
4
4
  import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
5
- import { T as Text } from './Text-BRbkPr5s.js';
5
+ import { T as Text } from './Text-D4SWT4u-.js';
6
6
  import { M as Menu } from './Menu-DqP7YQgE.js';
7
7
  import { B as Button } from './Button-B_E6ybA-.js';
8
8
  import { D as DrawerContext } from './DrawerContext-BSpnzXVZ.js';
@@ -10,9 +10,9 @@ import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
10
10
  import { useTrackingId } from './useTrackingId.js';
11
11
  import { c as cx } from './index-De1g9FRV.js';
12
12
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
13
- import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-C66ra4BK.js';
13
+ import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-sO16N9b5.js';
14
14
  import { d as drillDownStyles, D as DrillDownContext } from './DrillDown.module-BFE5BcJB.js';
15
- import { u as useDrillDownContextState, a as useDialogTransitionStates, b as useKeyboardFocusables, c as useInitialFocus } from './useInitialFocus-fBiTU9l8.js';
15
+ import { u as useWarnOnConditionalUnmount, a as useDrillDownContextState, b as useDialogTransitionStates, c as useKeyboardFocusables, d as useInitialFocus } from './useInitialFocus-KdirjHEb.js';
16
16
  import { u as useDialogScrollLock } from './useDialogScrollLock-BW-aVboo.js';
17
17
  import { r as registerLayer, u as unregisterLayer, a as useOnClickOutside } from './useOnClickOutside-Zw5vzxSq.js';
18
18
 
@@ -205,6 +205,7 @@ const DrawerContent = forwardRef(
205
205
  );
206
206
  DrawerContent.displayName = "DrawerContent";
207
207
 
208
+ const CONDITIONAL_UNMOUNT_WARNING = "[Anvil2 Drawer] Drawer was unmounted while still open. Prefer keeping it mounted and controlling visibility with the `open` prop when the host stays in the tree.";
208
209
  const Drawer = Object.assign(
209
210
  forwardRef(function DrawerInner(props, ref) {
210
211
  const {
@@ -234,6 +235,7 @@ const Drawer = Object.assign(
234
235
  const toasterRef = useRef(null);
235
236
  const headerRef = useRef(null);
236
237
  const combinedRef = useMergeRefs([elRef, ref]);
238
+ useWarnOnConditionalUnmount(open, CONDITIONAL_UNMOUNT_WARNING);
237
239
  const drillDownContextValue = useDrillDownContextState({
238
240
  defaultDrillDownIndex,
239
241
  host: "drawer"
@@ -289,7 +291,7 @@ const Drawer = Object.assign(
289
291
  [styles[size]]: size !== "medium"
290
292
  });
291
293
  const { focusables } = useKeyboardFocusables(contentRef, {
292
- observeChange: false
294
+ observeChange: true
293
295
  });
294
296
  const firstFocusable = focusables?.[0];
295
297
  const lastFocusable = focusables?.[focusables.length - 1];
@@ -396,4 +398,4 @@ const Drawer = Object.assign(
396
398
  Drawer.displayName = "Drawer";
397
399
 
398
400
  export { Drawer as D };
399
- //# sourceMappingURL=Drawer-C7E2NNnH.js.map
401
+ //# sourceMappingURL=Drawer-BVBLtGn_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer-BVBLtGn_.js","sources":["../src/components/Drawer/internal/useDrawerContext.ts","../src/components/Drawer/DrawerCancelButton.tsx","../src/components/Drawer/DrawerHeader.tsx","../src/components/Drawer/DrawerFooter.tsx","../src/components/Drawer/DrawerContent.tsx","../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { DrawerContext } from \"./DrawerContext\";\n\n/** Returns the enclosing drawer context; throws when used outside a drawer. */\nexport function useDrawerContext() {\n const context = useContext(DrawerContext);\n if (!context) {\n throw new Error(\n \"useDrawerContext must be used within a DrawerContextProvider\",\n );\n }\n return context;\n}\n","import { type MouseEvent, forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"../Button\";\nimport type { DataTrackingId } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/** @extends ButtonProps */\nexport type DrawerCancelButtonProps = ButtonProps & DataTrackingId;\n\n/** Button that runs its click handler before closing the enclosing drawer. */\nexport const DrawerCancelButton = forwardRef<\n HTMLButtonElement,\n DrawerCancelButtonProps\n>((props, ref) => {\n const { onClick, ...rest } = props;\n const { close } = useDrawerContext();\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DrawerCancelButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n close();\n };\n return (\n <Button\n aria-label=\"Close drawer\"\n data-anv=\"drawer-cancel-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n />\n );\n});\n\nDrawerCancelButton.displayName = \"DrawerCancelButton\";\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\nimport styles from \"./Drawer.module.scss\";\nimport { Text } from \"../Text\";\nimport { Menu } from \"../Menu\";\nimport { DrawerCancelButton } from \"./DrawerCancelButton\";\nimport cx from \"classnames\";\nimport type { DataTrackingId, Svg } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/** Command shown in `Drawer.Header`'s overflow menu. */\nexport type DrawerHeaderAction = {\n /** Visible and accessible menu-item text. */\n label: string;\n /** Runs when the item is selected; does not close the drawer. */\n onClick: () => void;\n /** Prevents selection. Defaults to `false`. */\n disabled?: boolean;\n /** Leading icon shown before the label. */\n icon?: Svg;\n};\n\n/** @extends ComponentPropsWithoutRef<\"header\"> */\nexport type DrawerHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId & {\n /** Commands placed in an overflow menu before the close control. */\n actions?: DrawerHeaderAction[];\n };\n\n/** Drawer heading with optional overflow actions and a built-in close control. */\nexport const DrawerHeader = forwardRef<HTMLElement, DrawerHeaderProps>(\n (props, ref) => {\n const { className, children, actions } = props;\n const { headerRef } = useDrawerContext();\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"DrawerHeader\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const drawerHeaderClasses = cx(styles.header, className);\n\n const closeButton = (\n <span className={styles[\"close-container\"]}>\n <DrawerCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close drawer\"\n data-anv=\"drawer-header-close-button\"\n icon={Close}\n />\n </span>\n );\n\n return (\n <header\n className={drawerHeaderClasses}\n data-anv=\"drawer-header\"\n data-tracking-id={trackingId}\n ref={useMergeRefs([ref, headerRef])}\n >\n <Text variant=\"headline\" el=\"h1\">\n {children}\n </Text>\n {actions?.length ? (\n <span className={styles[\"header-actions\"]}>\n <Menu\n icon={MoreVert}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"More actions\"\n data-anv=\"drawer-header-actions-button\"\n >\n {actions.map((action, index) => (\n <Menu.Item\n key={`${action.label}-${index}`}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n icon={action.icon}\n />\n ))}\n </Menu>\n {closeButton}\n </span>\n ) : (\n closeButton\n )}\n </header>\n );\n },\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport styles from \"./Drawer.module.scss\";\nimport cx from \"classnames\";\n\n/** @extends ComponentPropsWithoutRef<\"footer\"> */\nexport type DrawerFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /** Keeps the action row visible at the bottom of scrolling content. Defaults to `false`. */\n sticky?: boolean;\n};\n\n/** Action row at the end of a drawer. */\nexport const DrawerFooter = forwardRef<HTMLElement, DrawerFooterProps>(\n (props, ref) => {\n const { className, children, sticky = false, ...rest } = props;\n const drawerFooterClasses = cx(styles.footer, className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={drawerFooterClasses}\n data-anv=\"drawer-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useState,\n} from \"react\";\nimport styles from \"./Drawer.module.scss\";\nimport cx from \"classnames\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/** @extends ComponentPropsWithoutRef<\"div\"> */\nexport type DrawerContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Pins the content below the changing header while the drawer scrolls. Defaults to `false`. */\n sticky?: boolean;\n};\n\n/** Main content region of a `Drawer`. */\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n const { headerRef } = useDrawerContext();\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useEffect(() => {\n const headerElement = headerRef?.current;\n if (!sticky || !headerElement) return;\n\n const updateHeight = () => {\n setHeaderHeight(headerElement.offsetHeight || 0);\n };\n\n updateHeight();\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(headerElement);\n\n return () => resizeObserver.disconnect();\n }, [sticky, headerRef]);\n\n const contentClassNames = cx(styles[\"content\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n const stickyStyle = sticky ? { top: `${headerHeight}px` } : undefined;\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"drawer-content\"\n ref={ref}\n style={{ ...stickyStyle, ...rest.style }}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import styles from \"./Drawer.module.scss\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n useRef,\n useId,\n useCallback,\n useEffect,\n type SyntheticEvent,\n type KeyboardEvent,\n useMemo,\n useLayoutEffect,\n} from \"react\";\nimport { DrawerHeader } from \"./DrawerHeader\";\nimport { DrawerFooter } from \"./DrawerFooter\";\nimport { DrawerContent } from \"./DrawerContent\";\nimport { DrawerCancelButton } from \"./DrawerCancelButton\";\nimport {\n type OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n useWarnOnConditionalUnmount,\n} from \"../../internal/hooks\";\nimport type {\n FocusableElement,\n DisableCloseOnEscapeOrClickProps,\n Size,\n} from \"../../types\";\nimport { registerLayer, unregisterLayer } from \"../../internal/utils\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\nimport { DrawerContext } from \"./internal/DrawerContext\";\nimport {\n DrillDownContext,\n type DrillDownContextProps,\n} from \"../DrillDown/internal/DrillDownContext\";\nimport { useDrillDownContextState } from \"../DrillDown/internal/useDrillDownContextState\";\nimport drillDownStyles from \"../DrillDown/DrillDown.module.scss\";\nimport { useInitialFocus } from \"../Dialog/internal/useInitialFocus\";\n\nconst CONDITIONAL_UNMOUNT_WARNING =\n \"[Anvil2 Drawer] Drawer was unmounted while still open. Prefer keeping it mounted and controlling visibility with the `open` prop when the host stays in the tree.\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends OpenCloseTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DrawerProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /** Width preset. Defaults to `medium`. */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\" | \"xlarge\">;\n /** Controls whether the drawer is shown. Defaults to `false`. */\n open?: boolean;\n /** Called by Escape, outside-click, and `Drawer.CancelButton` close actions. */\n onClose?: () => void;\n /** Called on an outside click even when that click is not allowed to close the drawer. */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /** Allows scrolling to continue into the page instead of locking the shadow host. */\n enableScrollChaining?: boolean;\n /**\n * Chooses initial focus from the drawer's tabbable elements. By default,\n * header controls are skipped when another target is available.\n */\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /** DrillDown panel opened when navigation begins. Defaults to index `0`. */\n defaultDrillDownIndex?: DrillDownContextProps[\"index\"];\n /** Receives the current DrillDown controls and whether the drawer is interactive. */\n onDrillDownContextChange?: (context: DrillDownContextProps) => void;\n };\n\n/**\n * Controlled modal side panel with focus trapping, animated transitions, and\n * compound header, content, footer, and cancel-button regions.\n */\nexport const Drawer = Object.assign(\n forwardRef<HTMLDialogElement, DrawerProps>(function DrawerInner(props, ref) {\n const {\n className,\n open = false,\n children,\n onClose,\n // onCancel is destructured so that it is not passed to the dialog in ...rest\n onCancel,\n onKeyDown,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size = \"medium\",\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n initialFocusResolver,\n defaultDrillDownIndex,\n onDrillDownContextChange,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n useWarnOnConditionalUnmount(open, CONDITIONAL_UNMOUNT_WARNING);\n\n const drillDownContextValue = useDrillDownContextState({\n defaultDrillDownIndex,\n host: \"drawer\",\n });\n\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n const previousOpenRef = useRef(open);\n\n useLayoutEffect(() => {\n if (open && !previousOpenRef.current) {\n drillDownContextValue.setHostTrigger?.(\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null,\n );\n }\n }, [open, drillDownContextValue]);\n\n useEffect(() => {\n previousOpenRef.current = open;\n }, [open]);\n\n useEffect(() => {\n if (state === \"closing\") {\n drillDownContextValue.onHostClose?.();\n }\n }, [state, drillDownContextValue]);\n\n useEffect(() => {\n if (state === \"closed\") {\n drillDownContextValue.onHostClosed?.();\n }\n }, [state, drillDownContextValue]);\n\n const drillDownContextProviderValue = useMemo(\n () => ({\n ...drillDownContextValue,\n hostIsInteractive: state !== \"closing\" && state !== \"closed\",\n }),\n [drillDownContextValue, state],\n );\n\n useLayoutEffect(() => {\n onDrillDownContextChange?.(drillDownContextProviderValue);\n }, [drillDownContextProviderValue]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const classNames = cx([styles.drawer, drillDownStyles.drawer], className, {\n [styles.remove]: state === \"closing\",\n [styles[size]]: size !== \"medium\",\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: true,\n });\n const firstFocusable = focusables?.[0];\n const lastFocusable = focusables?.[focusables.length - 1];\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n useEffect(() => {\n if (open) {\n registerLayer(id);\n } else {\n unregisterLayer(id);\n }\n\n return () => {\n unregisterLayer(id);\n };\n }, [open, id]);\n\n const computeFocus = useCallback((focusables: FocusableElement[]) => {\n const isHeaderChrome = (el: FocusableElement) =>\n el.dataset.anv === \"drawer-header-close-button\" ||\n el.dataset.anv === \"drawer-header-actions-button\";\n\n return (\n focusables.find((focusable) => !isHeaderChrome(focusable)) ||\n focusables.find(\n (focusable) => focusable.dataset.anv === \"drawer-header-close-button\",\n ) ||\n focusables[0]\n );\n }, []);\n\n useInitialFocus(elRef, {\n computeFocus: initialFocusResolver || computeFocus,\n });\n\n const onCancelHandler = (e: SyntheticEvent<HTMLDialogElement>) => {\n e.preventDefault();\n\n if (disableCloseOnEscape) return;\n onClose?.();\n };\n\n useOnClickOutside({\n onClickOutsideBegin: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClickOutside: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n layerId: id,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === firstFocusable) {\n e.preventDefault();\n (lastFocusable as HTMLElement)?.focus();\n return;\n }\n if (e.target === lastFocusable && !e.shiftKey) {\n e.preventDefault();\n (firstFocusable as HTMLElement)?.focus();\n return;\n }\n }\n };\n\n const contextValue = useMemo(() => {\n return { close: () => onClose?.(), headerRef, state };\n }, [onClose, state]);\n\n return (\n <dialog\n className={classNames}\n data-anv=\"drawer\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={combinedRef}\n onCancel={onCancelHandler}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={isOpenOrOpening}>\n <ToasterPopover>\n <ToasterContent id=\"drawer-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n\n <DrillDownContext.Provider value={drillDownContextProviderValue}>\n <DrawerContext.Provider value={contextValue}>\n <section\n ref={contentRef}\n className={styles.container}\n data-open={isOpenOrOpening}\n >\n {children}\n </section>\n </DrawerContext.Provider>\n </DrillDownContext.Provider>\n </dialog>\n );\n }),\n {\n /** Renders the drawer title, optional actions, and close control. */\n Header: DrawerHeader,\n /** Groups actions at the end of the drawer. */\n Footer: DrawerFooter,\n /** Renders the drawer's main content region. */\n Content: DrawerContent,\n /** Closes the drawer after running its own click handler. */\n CancelButton: DrawerCancelButton,\n },\n);\nDrawer.displayName = \"Drawer\";\n"],"names":["Close","MoreVert","focusables"],"mappings":"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"}
package/dist/Drawer.js CHANGED
@@ -1,2 +1,2 @@
1
- export { D as Drawer, D as default } from './Drawer-C7E2NNnH.js';
1
+ export { D as Drawer, D as default } from './Drawer-BVBLtGn_.js';
2
2
  //# sourceMappingURL=Drawer.js.map
package/dist/DrillDown.js CHANGED
@@ -1,2 +1,2 @@
1
- export { D as DrillDown, b as DrillDownContent, c as DrillDownFooter, a as DrillDownHeader, d as DrillDownNextButton, e as DrillDownPrevButton, D as default, u as useDrillDown } from './useDrilldown-CGdhHs8L.js';
1
+ export { D as DrillDown, b as DrillDownContent, c as DrillDownFooter, a as DrillDownHeader, d as DrillDownNextButton, e as DrillDownPrevButton, D as default, u as useDrillDown } from './useDrilldown-B8pIhfWa.js';
2
2
  //# sourceMappingURL=DrillDown.js.map
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { forwardRef } from 'react';
5
5
  import { S as SvgCheck } from './check-Cf67OWrZ.js';
6
6
  import { C as Card } from './Card-Bt0F6RTq.js';
7
- import { T as Text } from './Text-BRbkPr5s.js';
7
+ import { T as Text } from './Text-D4SWT4u-.js';
8
8
  import { I as Icon } from './Icon-B5zwN7GD.js';
9
9
  import { B as Button } from './Button-B_E6ybA-.js';
10
10
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
@@ -109,4 +109,4 @@ const EditCard = forwardRef(
109
109
  EditCard.displayName = "EditCard";
110
110
 
111
111
  export { EditCard as E };
112
- //# sourceMappingURL=EditCard-CutlsXfK.js.map
112
+ //# sourceMappingURL=EditCard-hivZDPZh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditCard-CutlsXfK.js","sources":["../../hammer-icon/mdi/round/priority_high.svg","../src/components/EditCard/EditCard.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgPriorityHigh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 12, cy: 19, r: 2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2s2-.9 2-2V5c0-1.1-.9-2-2-2z\" }));\nexport default SvgPriorityHigh;\n","import cx from \"classnames\";\nimport styles from \"./EditCard.module.scss\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport PriorityHigh from \"@servicetitan/hammer-icon/mdi/round/priority_high.svg\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Card } from \"../Card\";\nimport { Text } from \"../Text\";\nimport { Icon } from \"../Icon\";\nimport { Button } from \"../Button\";\n\nexport type EditCardProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Heading. Object form picks the string for the current `state`.\n */\n headerText:\n | string\n | {\n \"not started\": string;\n \"in progress\": string;\n error: string;\n complete: string;\n };\n /**\n * Which chrome to show. `in progress` swaps Edit for Cancel/Save.\n */\n state: EditCardState;\n /** Save control label. Defaults to `\"Save\"`. */\n saveButtonText?: string;\n /** Edit control label. Defaults to `\"Edit\"`. */\n editButtonText?: string;\n /** Disables Edit when it is shown. Defaults to `false`. */\n disableEdit?: boolean;\n /** Disables Save when it is shown. Defaults to `false`. */\n disableSave?: boolean;\n /**\n * Reports `\"edit\"`, `\"save\"`, or `\"cancel\"` from the matching button.\n * Does not update `state` itself.\n */\n onStateChange?: (changeType: EditCardChange) => void;\n };\n\n/** Action reported by {@link EditCardProps.onStateChange}. */\nexport type EditCardChange = \"edit\" | \"save\" | \"cancel\";\n\n/**\n * Display and which actions are shown. `in progress` is Cancel/Save; the\n * others are Edit, with an indicator on `error` and `complete`.\n */\nexport type EditCardState =\n | \"not started\"\n | \"in progress\"\n | \"error\"\n | \"complete\";\n\n/**\n * Card with a state-driven header, status indicator, and Edit or Cancel/Save\n * actions.\n */\nexport const EditCard = forwardRef<HTMLDivElement, EditCardProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n style,\n headerText,\n state,\n editButtonText = \"Edit\",\n saveButtonText = \"Save\",\n disableEdit = false,\n disableSave = false,\n onStateChange,\n ...rest\n } = componentProps;\n\n const kebabState = state?.replaceAll(\" \", \"-\");\n\n const editCardClassNames = cx(\n styles[\"edit-card\"],\n styles[`edit-card-${kebabState}`],\n className,\n );\n\n return (\n <Card\n padding=\"large\"\n className={editCardClassNames}\n data-anv=\"edit-card\"\n style={style}\n ref={ref}\n {...rest}\n >\n <div\n className={cx(styles.indicator, styles[`indicator-${kebabState}`])}\n >\n {state === \"complete\" && <Icon svg={Check} />}\n {state === \"error\" && <Icon svg={PriorityHigh} />}\n </div>\n <div className={styles.container}>\n <div className={styles.header}>\n <Text className={styles.heading} variant=\"headline\" el=\"h3\">\n {typeof headerText === \"string\" ? headerText : headerText[state]}\n </Text>\n {state !== \"in progress\" && (\n <Button\n disabled={disableEdit}\n onClick={() => onStateChange?.(\"edit\")}\n >\n {editButtonText}\n </Button>\n )}\n </div>\n {children && (\n <div className={styles.content} style={layoutStyles}>\n {children}\n </div>\n )}\n {state === \"in progress\" && (\n <div className={styles.footer}>\n <Button onClick={() => onStateChange?.(\"cancel\")}>Cancel</Button>\n <Button\n appearance=\"primary\"\n onClick={() => onStateChange?.(\"save\")}\n disabled={disableSave}\n >\n {saveButtonText}\n </Button>\n </div>\n )}\n </div>\n </Card>\n );\n },\n);\n\nEditCard.displayName = \"EditCard\";\n"],"names":["Check","PriorityHigh"],"mappings":"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"}
1
+ {"version":3,"file":"EditCard-hivZDPZh.js","sources":["../../hammer-icon/mdi/round/priority_high.svg","../src/components/EditCard/EditCard.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgPriorityHigh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 12, cy: 19, r: 2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2s2-.9 2-2V5c0-1.1-.9-2-2-2z\" }));\nexport default SvgPriorityHigh;\n","import cx from \"classnames\";\nimport styles from \"./EditCard.module.scss\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport PriorityHigh from \"@servicetitan/hammer-icon/mdi/round/priority_high.svg\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { Card } from \"../Card\";\nimport { Text } from \"../Text\";\nimport { Icon } from \"../Icon\";\nimport { Button } from \"../Button\";\n\nexport type EditCardProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Heading. Object form picks the string for the current `state`.\n */\n headerText:\n | string\n | {\n \"not started\": string;\n \"in progress\": string;\n error: string;\n complete: string;\n };\n /**\n * Which chrome to show. `in progress` swaps Edit for Cancel/Save.\n */\n state: EditCardState;\n /** Save control label. Defaults to `\"Save\"`. */\n saveButtonText?: string;\n /** Edit control label. Defaults to `\"Edit\"`. */\n editButtonText?: string;\n /** Disables Edit when it is shown. Defaults to `false`. */\n disableEdit?: boolean;\n /** Disables Save when it is shown. Defaults to `false`. */\n disableSave?: boolean;\n /**\n * Reports `\"edit\"`, `\"save\"`, or `\"cancel\"` from the matching button.\n * Does not update `state` itself.\n */\n onStateChange?: (changeType: EditCardChange) => void;\n };\n\n/** Action reported by {@link EditCardProps.onStateChange}. */\nexport type EditCardChange = \"edit\" | \"save\" | \"cancel\";\n\n/**\n * Display and which actions are shown. `in progress` is Cancel/Save; the\n * others are Edit, with an indicator on `error` and `complete`.\n */\nexport type EditCardState =\n | \"not started\"\n | \"in progress\"\n | \"error\"\n | \"complete\";\n\n/**\n * Card with a state-driven header, status indicator, and Edit or Cancel/Save\n * actions.\n */\nexport const EditCard = forwardRef<HTMLDivElement, EditCardProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n style,\n headerText,\n state,\n editButtonText = \"Edit\",\n saveButtonText = \"Save\",\n disableEdit = false,\n disableSave = false,\n onStateChange,\n ...rest\n } = componentProps;\n\n const kebabState = state?.replaceAll(\" \", \"-\");\n\n const editCardClassNames = cx(\n styles[\"edit-card\"],\n styles[`edit-card-${kebabState}`],\n className,\n );\n\n return (\n <Card\n padding=\"large\"\n className={editCardClassNames}\n data-anv=\"edit-card\"\n style={style}\n ref={ref}\n {...rest}\n >\n <div\n className={cx(styles.indicator, styles[`indicator-${kebabState}`])}\n >\n {state === \"complete\" && <Icon svg={Check} />}\n {state === \"error\" && <Icon svg={PriorityHigh} />}\n </div>\n <div className={styles.container}>\n <div className={styles.header}>\n <Text className={styles.heading} variant=\"headline\" el=\"h3\">\n {typeof headerText === \"string\" ? headerText : headerText[state]}\n </Text>\n {state !== \"in progress\" && (\n <Button\n disabled={disableEdit}\n onClick={() => onStateChange?.(\"edit\")}\n >\n {editButtonText}\n </Button>\n )}\n </div>\n {children && (\n <div className={styles.content} style={layoutStyles}>\n {children}\n </div>\n )}\n {state === \"in progress\" && (\n <div className={styles.footer}>\n <Button onClick={() => onStateChange?.(\"cancel\")}>Cancel</Button>\n <Button\n appearance=\"primary\"\n onClick={() => onStateChange?.(\"save\")}\n disabled={disableSave}\n >\n {saveButtonText}\n </Button>\n </div>\n )}\n </div>\n </Card>\n );\n },\n);\n\nEditCard.displayName = \"EditCard\";\n"],"names":["Check","PriorityHigh"],"mappings":"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"}
package/dist/EditCard.js CHANGED
@@ -1,2 +1,2 @@
1
- export { E as EditCard, E as default } from './EditCard-CutlsXfK.js';
1
+ export { E as EditCard, E as default } from './EditCard-hivZDPZh.js';
2
2
  //# sourceMappingURL=EditCard.js.map
@@ -1,59 +1,14 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { useMemo, forwardRef } from 'react';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
3
  import { c as cx } from './index-De1g9FRV.js';
4
4
  import { S as SrOnly } from './SrOnly-pnf8ajnh.js';
5
- import { T as Tooltip } from './Tooltip-C_VcYS9P.js';
6
- import { F as FieldLabelButton, A as AiMark } from './AiMark-CYXbKuCA.js';
5
+ import { T as Tooltip } from './Tooltip-CsTkZqMg.js';
6
+ import { F as FieldLabelButton, A as AiMark } from './AiMark-Ca7WmL-9.js';
7
7
  import { I as Icon } from './Icon-B5zwN7GD.js';
8
8
  import { S as SvgInfo } from './info-CYpG6tcI.js';
9
+ import { b as InlineMarkdown } from './InlineMarkdown-CL1tKR01.js';
9
10
 
10
- import './FieldLabel.css';const INLINE_MARKDOWN_REGEX = /\*\*\*(.+?)\*\*\*|\*\*(.+?)\*\*|\*(.+?)\*|==(.+?)==|`(.+?)`/g;
11
-
12
- const highlight = "_highlight_1v2if_1";
13
- const code = "_code_1v2if_7";
14
- const styles$1 = {
15
- highlight: highlight,
16
- code: code
17
- };
18
-
19
- const parseInlineMarkdown = (text) => {
20
- const parts = [];
21
- let lastIndex = 0;
22
- INLINE_MARKDOWN_REGEX.lastIndex = 0;
23
- let match;
24
- while ((match = INLINE_MARKDOWN_REGEX.exec(text)) !== null) {
25
- if (match.index > lastIndex) {
26
- parts.push(text.substring(lastIndex, match.index));
27
- }
28
- const key = match.index;
29
- const savedIndex = INLINE_MARKDOWN_REGEX.lastIndex;
30
- if (match[1]) {
31
- parts.push(
32
- /* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx("em", { children: parseInlineMarkdown(match[1]) }) }, key)
33
- );
34
- } else if (match[2]) {
35
- parts.push(/* @__PURE__ */ jsx("strong", { children: parseInlineMarkdown(match[2]) }, key));
36
- } else if (match[3]) {
37
- parts.push(/* @__PURE__ */ jsx("em", { children: parseInlineMarkdown(match[3]) }, key));
38
- } else if (match[4]) {
39
- parts.push(
40
- /* @__PURE__ */ jsx("mark", { className: styles$1.highlight, children: parseInlineMarkdown(match[4]) }, key)
41
- );
42
- } else if (match[5]) {
43
- parts.push(
44
- /* @__PURE__ */ jsx("code", { className: styles$1.code, children: match[5] }, key)
45
- );
46
- }
47
- INLINE_MARKDOWN_REGEX.lastIndex = savedIndex;
48
- lastIndex = savedIndex;
49
- }
50
- if (lastIndex < text.length) {
51
- parts.push(text.substring(lastIndex));
52
- }
53
- return parts;
54
- };
55
-
56
- const label = "_label_13ezo_1";
11
+ import './FieldLabel.css';const label = "_label_13ezo_1";
57
12
  const required = "_required_13ezo_50";
58
13
  const styles = {
59
14
  label: label,
@@ -87,11 +42,6 @@ const FieldLabelMoreInfoIcon = ({
87
42
  ] });
88
43
  };
89
44
 
90
- const InlineMarkdown = ({ value = "" }) => {
91
- const content = useMemo(() => parseInlineMarkdown(value), [value]);
92
- return /* @__PURE__ */ jsx(Fragment, { children: content });
93
- };
94
-
95
45
  const FieldLabelElement = forwardRef(
96
46
  ({
97
47
  aiMark,
@@ -175,5 +125,5 @@ const FieldLabelElement = forwardRef(
175
125
  FieldLabelElement.displayName = "FieldLabel";
176
126
  const FieldLabel = FieldLabelElement;
177
127
 
178
- export { FieldLabel as F, INLINE_MARKDOWN_REGEX as I };
179
- //# sourceMappingURL=FieldLabel-DYcUS3A4.js.map
128
+ export { FieldLabel as F };
129
+ //# sourceMappingURL=FieldLabel-Cn559Brf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldLabel-Cn559Brf.js","sources":["../src/components/FieldLabel/internal/FieldLabelMoreInfoIcon.tsx","../src/components/FieldLabel/FieldLabel.tsx"],"sourcesContent":["import type { FieldLabelProps } from \"../FieldLabel\";\nimport { Tooltip } from \"../../Tooltip\";\nimport { FieldLabelButton } from \"./FieldLabelButton\";\nimport { Icon } from \"../../Icon\";\nimport Info from \"@servicetitan/hammer-icon/mdi/round/info.svg\";\nimport styles from \"../FieldLabel.module.scss\";\nimport { SrOnly } from \"../../SrOnly\";\n\n/**\n * Info button that opens `moreInfo` in a tooltip. Optional `moreInfoId`\n * duplicates the copy in {@link SrOnly} for `aria-describedby`.\n */\nexport const FieldLabelMoreInfoIcon = ({\n moreInfo,\n moreInfoId,\n}: {\n moreInfo: FieldLabelProps[\"moreInfo\"];\n moreInfoId?: string;\n}) => {\n return (\n <div className={styles[\"info-container\"]}>\n {moreInfoId && <SrOnly id={moreInfoId}>{moreInfo}</SrOnly>}\n <Tooltip\n placement=\"top\"\n offset={5}\n fallbackPlacements={[\"right\", \"bottom\", \"left\"]}\n >\n <Tooltip.Trigger className={styles[\"info-trigger\"]}>\n <FieldLabelButton aria-label=\"More information\">\n <Icon svg={Info} />\n </FieldLabelButton>\n </Tooltip.Trigger>\n <Tooltip.Content className={styles[\"info-content\"]}>\n {moreInfo}\n </Tooltip.Content>\n </Tooltip>\n </div>\n );\n};\n","import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ReactNode,\n type Ref,\n type ElementType,\n type JSX,\n type JSXElementConstructor,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./FieldLabel.module.scss\";\nimport type { TooltipProps } from \"../Tooltip\";\nimport { SrOnly } from \"../SrOnly\";\nimport { FieldLabelMoreInfoIcon } from \"./internal/FieldLabelMoreInfoIcon\";\nimport type { AiMarkWithTooltipOrPopoverProps } from \"../../types\";\nimport { AiMark } from \"../../components/AiMark\";\nimport { InlineMarkdown } from \"../../internal/components/InlineMarkdown\";\n\ntype IntrinsicAttributes<\n E extends keyof JSX.IntrinsicElements | JSXElementConstructor<unknown>,\n> = JSX.LibraryManagedAttributes<E, ComponentPropsWithoutRef<E>>;\n\ntype FieldLabelOwnProps<E extends ElementType = ElementType> =\n AiMarkWithTooltipOrPopoverProps & {\n /** Root element. Defaults to `label`. */\n el?: E;\n id?: string;\n /**\n * Shows a visible asterisk and a screen-reader \"Required\". Defaults to\n * `false`.\n */\n required?: boolean;\n /** Tooltip content for the info button after the label. */\n moreInfo?: ReactNode;\n /**\n * @internal ID of the visually hidden more-info copy for the control's\n * `aria-describedby`.\n */\n moreInfoId?: string;\n /**\n * @deprecated The more-info tooltip is a keyboard-accessible button. This\n * prop has no effect.\n */\n moreInfoOpen?: TooltipProps[\"open\"];\n };\n\nexport type FieldLabelProps<E extends ElementType = ElementType> =\n FieldLabelOwnProps<E> &\n Omit<IntrinsicAttributes<E>, keyof FieldLabelOwnProps>;\n\nconst FieldLabelElement = forwardRef(\n (\n {\n aiMark,\n el: Element = \"label\",\n children,\n className,\n moreInfo,\n moreInfoId,\n required,\n moreInfoOpen: _moreInfoOpen,\n ...props\n }: FieldLabelProps,\n ref,\n ) => {\n const FieldLabelClassNames = cx([styles[\"label\"]], className);\n\n const labelText = (\n <span className={styles[\"label-text\"]}>\n {/* TODO(v4.0.0): remove typeof check — children will always be string */}\n {typeof children === \"string\" ? (\n <InlineMarkdown value={children} />\n ) : (\n children\n )}\n {required ? (\n <>\n <span aria-hidden className={styles[\"required\"]}>\n *\n </span>\n <SrOnly>Required</SrOnly>\n </>\n ) : null}\n </span>\n );\n\n const hasMoreInfoOrAiMark = moreInfo || aiMark;\n\n // A <button> cannot be a descendant of <label>. Wrap in a `div` and keep\n // the label as a sibling of moreInfo/aiMark when either is set.\n if (Element === \"label\" && hasMoreInfoOrAiMark) {\n const { htmlFor, id, ...labelProps } =\n props as ComponentPropsWithoutRef<\"label\">;\n return (\n <div className={FieldLabelClassNames} ref={ref as Ref<HTMLDivElement>}>\n <div className={styles[\"top-container\"]}>\n <label\n htmlFor={htmlFor}\n id={id}\n data-anv=\"label\"\n {...(labelProps as ComponentPropsWithoutRef<\"label\">)}\n >\n {labelText}\n </label>\n {moreInfo && (\n <FieldLabelMoreInfoIcon\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n )}\n {aiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof aiMark === \"object\" ? aiMark : undefined\n }\n />\n )}\n </div>\n </div>\n );\n }\n\n return (\n <Element\n className={FieldLabelClassNames}\n data-anv=\"label\"\n ref={ref}\n {...props}\n >\n {hasMoreInfoOrAiMark ? (\n <div className={styles[\"top-container\"]}>\n {labelText}\n {moreInfo && (\n <FieldLabelMoreInfoIcon\n moreInfo={moreInfo}\n moreInfoId={moreInfoId}\n />\n )}\n {aiMark && (\n <AiMark\n className={styles[\"ai-mark-icon\"]}\n type=\"gradient\"\n popoverOrTooltipConfig={\n typeof aiMark === \"object\" ? aiMark : undefined\n }\n />\n )}\n </div>\n ) : (\n labelText\n )}\n </Element>\n );\n },\n);\n\nFieldLabelElement.displayName = \"FieldLabel\";\n\n/**\n * Form label. String children go through inline markdown. When `el` is `label`\n * (the default) and `moreInfo` or `aiMark` is set, `ref` lands on a wrapping\n * `div` so the button is not nested in `<label>`.\n */\nexport const FieldLabel = FieldLabelElement as <\n E extends ElementType = \"label\",\n>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: FieldLabelProps<E> & { ref?: React.Ref<any> },\n) => JSX.Element;\n"],"names":["Info"],"mappings":"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"}
@@ -1,15 +1,4 @@
1
- .anvil2 {._highlight_1v2if_1 {
2
- background-color: var(--a2-background-color-warning, var(--a2-status-color-warning, light-dark(var(--a2-color-yellow-500, #ffbe00), var(--a2-color-yellow-300, #ffe278))));
3
- border-radius: var(--a2-border-radius-small, var(--a2-radius-1, 0.1875rem));
4
- padding-inline: var(--a2-size-half, 0.125rem);
5
- }code._code_1v2if_7 {
6
- font-family: monospace;
7
- font-size: var(--a2-font-size-200, 0.75rem);
8
- background-color: var(--a2-background-color-stronger, light-dark(var(--a2-color-neutral-50, #eeeeee), var(--a2-color-neutral-700, #404040)));
9
- border-radius: var(--a2-border-radius-small, var(--a2-radius-1, 0.1875rem));
10
- padding: var(--a2-size-half, 0.125rem);
11
- }
12
- }.anvil2 {._label_13ezo_1 {
1
+ .anvil2 {._label_13ezo_1 {
13
2
  --a2-mod-field-label-foreground-color: var(--a2-field-label-foreground-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
14
3
  --a2-mod-field-label-required-color: var(--a2-field-label-required-color, var(--a2-foreground-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-400, #ff5b3d))));
15
4
  --a2-mod-tooltip-display: flex;
@@ -1,2 +1,2 @@
1
- export { F as FieldLabel, F as default } from './FieldLabel-DYcUS3A4.js';
1
+ export { F as FieldLabel, F as default } from './FieldLabel-Cn559Brf.js';
2
2
  //# sourceMappingURL=FieldLabel.js.map
@@ -1,3 +1,3 @@
1
1
  export { F as FieldMessage, F as default } from './FieldMessage-8c9yA_kw.js';
2
- export { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
2
+ export { w as warnDeprecatedErrorUsage } from './utils-DwLrXpmt.js';
3
3
  //# sourceMappingURL=FieldMessage.js.map
@@ -2,14 +2,14 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useState, useEffect, useContext, useRef, useCallback, useMemo, forwardRef } from 'react';
4
4
  import { S as SvgClose } from './close-DZj38AEh.js';
5
- import { F as FilterGroupContext, g as getActiveFilters, h as hasFilterSelectionChanged, c as cloneFiltersWithItemRefs, u as updateSingleFilter, a as checkActiveFilters, b as getAdapter, s as styles, P as PARTS, D as DateListDialog, r as resetFilters, p as preserveFilterState, d as FilterItemWrapper } from './filter-state-Lw9qL0zP.js';
5
+ import { F as FilterGroupContext, g as getActiveFilters, h as hasFilterSelectionChanged, c as cloneFiltersWithItemRefs, u as updateSingleFilter, a as checkActiveFilters, b as getAdapter, s as styles, P as PARTS, D as DateListDialog, r as resetFilters, p as preserveFilterState, d as FilterItemWrapper } from './filter-state-DxwL15y1.js';
6
6
  import { B as Button } from './Button-B_E6ybA-.js';
7
7
  import { F as Flex } from './Flex-CRF7gj0_.js';
8
8
  import { B as ButtonToggle } from './ButtonToggle-D0eXySEM.js';
9
9
  import { A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
10
- import { C as Chip } from './Chip-AIF0WiNS.js';
11
- import { D as Drawer } from './Drawer-C7E2NNnH.js';
12
- import { u as useToolbarSize, a as updateToolbarItemsTabIndex, g as getToolbarElements, h as handleToolbarKeyDown, b as ToolbarContext } from './ToolbarButtonToggle-BDfoHeie.js';
10
+ import { C as Chip } from './Chip-BWqgUX71.js';
11
+ import { D as Drawer } from './Drawer-BVBLtGn_.js';
12
+ import { u as useToolbarSize, a as updateToolbarItemsTabIndex, g as getToolbarElements, h as handleToolbarKeyDown, b as ToolbarContext } from './ToolbarButtonToggle-CNIaqVWl.js';
13
13
  import { c as cx } from './index-De1g9FRV.js';
14
14
  import { d as BreakpointSm, c as BreakpointMd, b as BreakpointLg, a as BreakpointXl, B as BreakpointXxl } from './primitive-BXgYQTTw.js';
15
15
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
@@ -453,4 +453,4 @@ const FilterBar = forwardRef(
453
453
  FilterBar.displayName = "FilterBar";
454
454
 
455
455
  export { FilterBar as F };
456
- //# sourceMappingURL=FilterBar-DbDfZph-.js.map
456
+ //# sourceMappingURL=FilterBar-COd38Ent.js.map