@servicetitan/anvil2 3.5.0 → 3.6.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 (264) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{AiMark-D3nw58ho.js → AiMark-voHPSerQ.js} +26 -11
  3. package/dist/{AiMark-D3nw58ho.js.map → AiMark-voHPSerQ.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-CSV4hRBD.js → Alert-CPe0yh6A.js} +3 -3
  6. package/dist/{Alert-CSV4hRBD.js.map → Alert-CPe0yh6A.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-4w6XjLcB.js → Announcement-DU0J4111.js} +3 -3
  9. package/dist/{Announcement-4w6XjLcB.js.map → Announcement-DU0J4111.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{Breadcrumbs-BkZVA_ux.js → Breadcrumbs-VzOM2nBU.js} +4 -4
  12. package/dist/{Breadcrumbs-BkZVA_ux.js.map → Breadcrumbs-VzOM2nBU.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Button-CjeF1Agb.js → Button-BNzCI47m.js} +2 -2
  15. package/dist/{Button-CjeF1Agb.js.map → Button-BNzCI47m.js.map} +1 -1
  16. package/dist/Button.js +1 -1
  17. package/dist/{ButtonLink-BSReBbc3.js → ButtonLink-PlW08u41.js} +2 -2
  18. package/dist/{ButtonLink-BSReBbc3.js.map → ButtonLink-PlW08u41.js.map} +1 -1
  19. package/dist/ButtonLink.js +1 -1
  20. package/dist/{ButtonToggle-CnOsM7-u.js → ButtonToggle-DBGc7dIn.js} +2 -2
  21. package/dist/{ButtonToggle-CnOsM7-u.js.map → ButtonToggle-DBGc7dIn.js.map} +1 -1
  22. package/dist/ButtonToggle.js +1 -1
  23. package/dist/{Calendar-Cw2UKiof.js → Calendar-CekTYzdT.js} +3 -3
  24. package/dist/{Calendar-Cw2UKiof.js.map → Calendar-CekTYzdT.js.map} +1 -1
  25. package/dist/{Calendar-CJaZFWmO.js → Calendar-MRUB0XU7.js} +2 -2
  26. package/dist/Calendar-MRUB0XU7.js.map +1 -0
  27. package/dist/Calendar.js +2 -2
  28. package/dist/{Checkbox-7KubQWJc.js → Checkbox-C3rtd-Xe.js} +4 -4
  29. package/dist/{Checkbox-7KubQWJc.js.map → Checkbox-C3rtd-Xe.js.map} +1 -1
  30. package/dist/{Checkbox-Bq2EfltF.js → Checkbox-zz9TyZWn.js} +2 -2
  31. package/dist/{Checkbox-Bq2EfltF.js.map → Checkbox-zz9TyZWn.js.map} +1 -1
  32. package/dist/Checkbox.js +1 -1
  33. package/dist/{Chip-yyEbwLdG.js → Chip-CxgryK86.js} +3 -3
  34. package/dist/{Chip-yyEbwLdG.js.map → Chip-CxgryK86.js.map} +1 -1
  35. package/dist/Chip.js +1 -1
  36. package/dist/Combobox.js +1 -1
  37. package/dist/{DataTable-BgD9Sh-7.js → DataTable-BpqLvU92.js} +11 -9
  38. package/dist/{DataTable-BgD9Sh-7.js.map → DataTable-BpqLvU92.js.map} +1 -1
  39. package/dist/{DateFieldRange-OlkU5oeu.js → DateFieldRange-CP7QgS6P.js} +5 -5
  40. package/dist/{DateFieldRange-OlkU5oeu.js.map → DateFieldRange-CP7QgS6P.js.map} +1 -1
  41. package/dist/DateFieldRange.js +1 -1
  42. package/dist/{DateFieldSingle-BGGlLAID.js → DateFieldSingle-CgMPTi1v.js} +5 -5
  43. package/dist/{DateFieldSingle-BGGlLAID.js.map → DateFieldSingle-CgMPTi1v.js.map} +1 -1
  44. package/dist/DateFieldSingle.js +1 -1
  45. package/dist/{DateFieldYearless-X9_F3VFM.js → DateFieldYearless-DYjvqxRb.js} +4 -4
  46. package/dist/{DateFieldYearless-X9_F3VFM.js.map → DateFieldYearless-DYjvqxRb.js.map} +1 -1
  47. package/dist/DateFieldYearless.js +1 -1
  48. package/dist/{DateFieldYearlessRange-CWdTbFDF.js → DateFieldYearlessRange-lQdJGOaS.js} +4 -4
  49. package/dist/DateFieldYearlessRange-lQdJGOaS.js.map +1 -0
  50. package/dist/DateFieldYearlessRange.js +1 -1
  51. package/dist/{DaysOfTheWeek-DfNYEwbg.js → DaysOfTheWeek-Ci-SKebP.js} +3 -3
  52. package/dist/{DaysOfTheWeek-DfNYEwbg.js.map → DaysOfTheWeek-Ci-SKebP.js.map} +1 -1
  53. package/dist/DaysOfTheWeek.js +1 -1
  54. package/dist/{Details-Xb49PJ-r.js → Details-DkteVZbk.js} +2 -2
  55. package/dist/{Details-Xb49PJ-r.js.map → Details-DkteVZbk.js.map} +1 -1
  56. package/dist/Details.js +1 -1
  57. package/dist/{Dialog-BpS3KScw.js → Dialog-BxulNN8n.js} +21 -21
  58. package/dist/{Dialog-BpS3KScw.js.map → Dialog-BxulNN8n.js.map} +1 -1
  59. package/dist/Dialog.css +32 -31
  60. package/dist/Dialog.js +1 -1
  61. package/dist/{DialogCancelButton-CIGGMaOE.js → DialogCancelButton-DmSUPuCR.js} +2 -2
  62. package/dist/{DialogCancelButton-CIGGMaOE.js.map → DialogCancelButton-DmSUPuCR.js.map} +1 -1
  63. package/dist/Dnd.js +2 -2
  64. package/dist/{DndHandleButton-B_Geiaeb.js → DndHandleButton-Ck5nc8w2.js} +2 -2
  65. package/dist/{DndHandleButton-B_Geiaeb.js.map → DndHandleButton-Ck5nc8w2.js.map} +1 -1
  66. package/dist/DndSort.js +2 -2
  67. package/dist/{Drawer-CxVIDCIB.js → Drawer-_spmOgwH.js} +4 -4
  68. package/dist/{Drawer-CxVIDCIB.js.map → Drawer-_spmOgwH.js.map} +1 -1
  69. package/dist/Drawer.js +1 -1
  70. package/dist/DrillDown.js +1 -1
  71. package/dist/{EditCard-T5mbl573.js → EditCard-ZpF032WP.js} +4 -4
  72. package/dist/{EditCard-T5mbl573.js.map → EditCard-ZpF032WP.js.map} +1 -1
  73. package/dist/EditCard.js +1 -1
  74. package/dist/{FieldLabel-Dfg4wEra.js → FieldLabel-Cm5A1Jcx.js} +3 -3
  75. package/dist/{FieldLabel-Dfg4wEra.js.map → FieldLabel-Cm5A1Jcx.js.map} +1 -1
  76. package/dist/FieldLabel.js +1 -1
  77. package/dist/{FilterBar-CA4MDEF-.js → FilterBar-CvyMubuw.js} +7 -7
  78. package/dist/{FilterBar-CA4MDEF-.js.map → FilterBar-CvyMubuw.js.map} +1 -1
  79. package/dist/FilterBar.js +1 -1
  80. package/dist/Icon-B4uCvMU9.js +107 -0
  81. package/dist/Icon-B4uCvMU9.js.map +1 -0
  82. package/dist/Icon.js +1 -1
  83. package/dist/{InputMask-C8ZAwqFi.js → InputMask-CX6XiOOm.js} +3 -3
  84. package/dist/{InputMask-C8ZAwqFi.js.map → InputMask-CX6XiOOm.js.map} +1 -1
  85. package/dist/InputMask.js +1 -1
  86. package/dist/{Link-DI4eVVdI.js → Link-C7dtI5K6.js} +2 -2
  87. package/dist/{Link-DI4eVVdI.js.map → Link-C7dtI5K6.js.map} +1 -1
  88. package/dist/Link.js +1 -1
  89. package/dist/LinkButton-C0wps8r1.js.map +1 -1
  90. package/dist/{ListView-BMo04Epa.js → ListView-DpveXOsN.js} +2 -2
  91. package/dist/{ListView-BMo04Epa.js.map → ListView-DpveXOsN.js.map} +1 -1
  92. package/dist/ListView.js +1 -1
  93. package/dist/{Listbox-BQRMsA0L.js → Listbox-Cdwaofd2.js} +21 -21
  94. package/dist/Listbox-Cdwaofd2.js.map +1 -0
  95. package/dist/Listbox.js +1 -1
  96. package/dist/{Menu-BAya9Qnd.js → Menu-DmEXQLXt.js} +3 -3
  97. package/dist/{Menu-BAya9Qnd.js.map → Menu-DmEXQLXt.js.map} +1 -1
  98. package/dist/Menu.js +1 -1
  99. package/dist/{MenuFooter-BZTsAaOz.js → MenuFooter-Ck9L599M.js} +2 -2
  100. package/dist/{MenuFooter-BZTsAaOz.js.map → MenuFooter-Ck9L599M.js.map} +1 -1
  101. package/dist/MultiSelectField.js +1 -1
  102. package/dist/{MultiSelectFieldSync-Cn3tNZcf.js → MultiSelectFieldSync-BHST0FEe.js} +7 -7
  103. package/dist/{MultiSelectFieldSync-Cn3tNZcf.js.map → MultiSelectFieldSync-BHST0FEe.js.map} +1 -1
  104. package/dist/MultiSelectMenu.js +1 -1
  105. package/dist/{MultiSelectMenuSync-FH_hXlIa.js → MultiSelectMenuSync-BaKxbMLu.js} +6 -6
  106. package/dist/{MultiSelectMenuSync-FH_hXlIa.js.map → MultiSelectMenuSync-BaKxbMLu.js.map} +1 -1
  107. package/dist/{NumberField-DdaBRyCJ.js → NumberField-CjC6KHKl.js} +5 -5
  108. package/dist/NumberField-CjC6KHKl.js.map +1 -0
  109. package/dist/NumberField.js +1 -1
  110. package/dist/Overflow.js.map +1 -1
  111. package/dist/{Page-DpUv1L7T.js → Page-BreBQ3pG.js} +11 -11
  112. package/dist/{Page-DpUv1L7T.js.map → Page-BreBQ3pG.js.map} +1 -1
  113. package/dist/Page.js +1 -1
  114. package/dist/{Pagination-Dm10ZvKj.js → Pagination-CmqAut6y.js} +5 -5
  115. package/dist/{Pagination-Dm10ZvKj.js.map → Pagination-CmqAut6y.js.map} +1 -1
  116. package/dist/Pagination.js +1 -1
  117. package/dist/{Popover-C-pv_ah6.js → Popover-CdRuNv3C.js} +2 -2
  118. package/dist/{Popover-C-pv_ah6.js.map → Popover-CdRuNv3C.js.map} +1 -1
  119. package/dist/Popover.js +1 -1
  120. package/dist/{ProgressBar-fwE4FkQt.js → ProgressBar-065vjsQ0.js} +3 -3
  121. package/dist/{ProgressBar-fwE4FkQt.js.map → ProgressBar-065vjsQ0.js.map} +1 -1
  122. package/dist/ProgressBar.js +1 -1
  123. package/dist/{Radio-DUKkDky9.js → Radio-D9w_-JYw.js} +2 -2
  124. package/dist/{Radio-DUKkDky9.js.map → Radio-D9w_-JYw.js.map} +1 -1
  125. package/dist/{Radio-BuzABI6-.js → Radio-dyLcVmUw.js} +4 -4
  126. package/dist/{Radio-BuzABI6-.js.map → Radio-dyLcVmUw.js.map} +1 -1
  127. package/dist/Radio.js +1 -1
  128. package/dist/{RichTextEditor-x0anoUnS.js → RichTextEditor-byoMZaJy.js} +14172 -7454
  129. package/dist/RichTextEditor-byoMZaJy.js.map +1 -0
  130. package/dist/RichTextEditor.css +42 -40
  131. package/dist/RichTextEditor.js +1 -1
  132. package/dist/{SavedFiltersButton-DgP-7upC.js → SavedFiltersButton-DlzfvW03.js} +10 -10
  133. package/dist/{SavedFiltersButton-DgP-7upC.js.map → SavedFiltersButton-DlzfvW03.js.map} +1 -1
  134. package/dist/SavedFiltersButton.js +1 -1
  135. package/dist/{SearchField-GMJ6vfV9.js → SearchField-B7fIOJf-.js} +2 -2
  136. package/dist/{SearchField-GMJ6vfV9.js.map → SearchField-B7fIOJf-.js.map} +1 -1
  137. package/dist/{SearchField-hjWzcHZF.js → SearchField-X4B7f23E.js} +2 -2
  138. package/dist/{SearchField-hjWzcHZF.js.map → SearchField-X4B7f23E.js.map} +1 -1
  139. package/dist/SearchField.js +1 -1
  140. package/dist/{SegmentedControl-fBjqazBR.js → SegmentedControl-Be6jCglV.js} +2 -2
  141. package/dist/{SegmentedControl-fBjqazBR.js.map → SegmentedControl-Be6jCglV.js.map} +1 -1
  142. package/dist/SegmentedControl.js +1 -1
  143. package/dist/{SelectCard-CKlBGGSW.js → SelectCard-CMSG_ba1.js} +4 -4
  144. package/dist/{SelectCard-CKlBGGSW.js.map → SelectCard-CMSG_ba1.js.map} +1 -1
  145. package/dist/SelectCard.js +1 -1
  146. package/dist/SelectField.js +1 -1
  147. package/dist/{SelectFieldLabel-_LjbBRaT.js → SelectFieldLabel-dKVBaki2.js} +2 -2
  148. package/dist/{SelectFieldLabel-_LjbBRaT.js.map → SelectFieldLabel-dKVBaki2.js.map} +1 -1
  149. package/dist/{SelectFieldSync-DUwFm6OH.js → SelectFieldSync-BqL3zlbZ.js} +6 -6
  150. package/dist/{SelectFieldSync-DUwFm6OH.js.map → SelectFieldSync-BqL3zlbZ.js.map} +1 -1
  151. package/dist/SelectMenu.js +1 -1
  152. package/dist/{SelectMenuSync-BZ3iXj3n.js → SelectMenuSync-BRvi9YTw.js} +6 -6
  153. package/dist/{SelectMenuSync-BZ3iXj3n.js.map → SelectMenuSync-BRvi9YTw.js.map} +1 -1
  154. package/dist/{SelectOptions-DDindDgw.js → SelectOptions-LUHWLYgJ.js} +2 -2
  155. package/dist/{SelectOptions-DDindDgw.js.map → SelectOptions-LUHWLYgJ.js.map} +1 -1
  156. package/dist/{SelectTrigger-DZ33_p3P.js → SelectTrigger-APxYfL3V.js} +3 -3
  157. package/dist/SelectTrigger-APxYfL3V.js.map +1 -0
  158. package/dist/SelectTrigger.js +1 -1
  159. package/dist/{SelectTriggerBase-DcP0Fsia.js → SelectTriggerBase-lYieONTb.js} +4 -4
  160. package/dist/{SelectTriggerBase-DcP0Fsia.js.map → SelectTriggerBase-lYieONTb.js.map} +1 -1
  161. package/dist/{SideNav-BNMwTm1u.js → SideNav-DoxX8Vi-.js} +2 -2
  162. package/dist/{SideNav-BNMwTm1u.js.map → SideNav-DoxX8Vi-.js.map} +1 -1
  163. package/dist/SideNav.js +1 -1
  164. package/dist/{Stepper-Bp5XkY2q.js → Stepper-CvaR7OoT.js} +3 -3
  165. package/dist/{Stepper-Bp5XkY2q.js.map → Stepper-CvaR7OoT.js.map} +1 -1
  166. package/dist/Stepper.js +1 -1
  167. package/dist/{Switch-DEDfnLGU.js → Switch-Bm3qqjd6.js} +3 -3
  168. package/dist/{Switch-DEDfnLGU.js.map → Switch-Bm3qqjd6.js.map} +1 -1
  169. package/dist/Switch.js +1 -1
  170. package/dist/{Tab-FOIali7o.js → Tab-Cy4G562A.js} +2 -2
  171. package/dist/{Tab-FOIali7o.js.map → Tab-Cy4G562A.js.map} +1 -1
  172. package/dist/Tab.js +1 -1
  173. package/dist/Table.js +1 -1
  174. package/dist/{Text-Dp-1foEc.js → Text-mDcQHC2U.js} +2 -2
  175. package/dist/{Text-Dp-1foEc.js.map → Text-mDcQHC2U.js.map} +1 -1
  176. package/dist/Text.js +1 -1
  177. package/dist/{TextField-B0iTBGho.js → TextField-CUVsDfWo.js} +3 -3
  178. package/dist/{TextField-B0iTBGho.js.map → TextField-CUVsDfWo.js.map} +1 -1
  179. package/dist/{TextField-CwJliCi7.js → TextField-WQTlqKso.js} +2 -2
  180. package/dist/TextField-WQTlqKso.js.map +1 -0
  181. package/dist/TextField.js +1 -1
  182. package/dist/{Textarea-CU3j_Yo0.js → Textarea-CW3KGuB9.js} +3 -3
  183. package/dist/{Textarea-CU3j_Yo0.js.map → Textarea-CW3KGuB9.js.map} +1 -1
  184. package/dist/Textarea.js +1 -1
  185. package/dist/{TimeField-CpMwgKDi.js → TimeField-JA3gXyS7.js} +5 -5
  186. package/dist/{TimeField-CpMwgKDi.js.map → TimeField-JA3gXyS7.js.map} +1 -1
  187. package/dist/TimeField.js +1 -1
  188. package/dist/Toast.js +2 -2
  189. package/dist/{Toaster-Djn0LfKr.js → Toaster-DMZng3Im.js} +4 -4
  190. package/dist/{Toaster-Djn0LfKr.js.map → Toaster-DMZng3Im.js.map} +1 -1
  191. package/dist/{Toaster-D75ZXkU1.js → Toaster-fPcgIF7Q.js} +2 -2
  192. package/dist/{Toaster-D75ZXkU1.js.map → Toaster-fPcgIF7Q.js.map} +1 -1
  193. package/dist/{Toolbar-DjkQ2_cV.js → Toolbar-BfGcDXgC.js} +8 -8
  194. package/dist/{Toolbar-DjkQ2_cV.js.map → Toolbar-BfGcDXgC.js.map} +1 -1
  195. package/dist/{Toolbar--psHvtjP.js → Toolbar-Dlu39v69.js} +6 -6
  196. package/dist/{Toolbar--psHvtjP.js.map → Toolbar-Dlu39v69.js.map} +1 -1
  197. package/dist/Toolbar.js +2 -2
  198. package/dist/{ToolbarButtonToggle-D62XxVp0.js → ToolbarButtonToggle-3xbnm1Qr.js} +2 -2
  199. package/dist/{ToolbarButtonToggle-D62XxVp0.js.map → ToolbarButtonToggle-3xbnm1Qr.js.map} +1 -1
  200. package/dist/TreeSelectField.js +1 -1
  201. package/dist/{TreeSelectFieldSync-DR0Tzn2b.js → TreeSelectFieldSync-CdtC8d3Q.js} +6 -6
  202. package/dist/{TreeSelectFieldSync-DR0Tzn2b.js.map → TreeSelectFieldSync-CdtC8d3Q.js.map} +1 -1
  203. package/dist/TreeSelectMenu.js +1 -1
  204. package/dist/{TreeSelectMenuSync-B8GmAstR.js → TreeSelectMenuSync-CPuQWUNU.js} +5 -5
  205. package/dist/{TreeSelectMenuSync-B8GmAstR.js.map → TreeSelectMenuSync-CPuQWUNU.js.map} +1 -1
  206. package/dist/{TypeaheadTextField-N_6q6ojK.js → TypeaheadTextField-BkLECKZY.js} +3 -3
  207. package/dist/TypeaheadTextField-BkLECKZY.js.map +1 -0
  208. package/dist/TypeaheadTextField.js +1 -1
  209. package/dist/{YearlessDateInputWithPicker-w3VGYELR.js → YearlessDateInputWithPicker-Bd8JnTaZ.js} +3 -3
  210. package/dist/{YearlessDateInputWithPicker-w3VGYELR.js.map → YearlessDateInputWithPicker-Bd8JnTaZ.js.map} +1 -1
  211. package/dist/beta.js +16 -16
  212. package/dist/{bulkActionTypes-wU7Cby5y.js → bulkActionTypes-DPC382hi.js} +2 -2
  213. package/dist/{bulkActionTypes-wU7Cby5y.js.map → bulkActionTypes-DPC382hi.js.map} +1 -1
  214. package/dist/{filter-state-CSA3wjAR.js → filter-state-BdfBSXYO.js} +23 -23
  215. package/dist/{filter-state-CSA3wjAR.js.map → filter-state-BdfBSXYO.js.map} +1 -1
  216. package/dist/{index-BN9SK9L3.js → index-B7BIlotN.js} +289 -1074
  217. package/dist/index-B7BIlotN.js.map +1 -0
  218. package/dist/{index-Bg9IAYMO.js → index-SZMmvI3D.js} +2 -2
  219. package/dist/{index-Bg9IAYMO.js.map → index-SZMmvI3D.js.map} +1 -1
  220. package/dist/index.js +54 -54
  221. package/dist/src/beta/components/Calendar/Calendar.d.ts +19 -0
  222. package/dist/src/beta/components/RichTextEditor/RichTextEditor.d.ts +4 -2
  223. package/dist/src/beta/components/RichTextEditor/internal/RichTextEditorProvider.d.ts +1 -1
  224. package/dist/src/beta/components/RichTextEditor/internal/extensions/SafeImageExtension.d.ts +13 -0
  225. package/dist/src/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +2 -2
  226. package/dist/src/beta/components/RichTextEditor/types.d.ts +42 -1
  227. package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +19 -0
  228. package/dist/src/components/DateFieldRange/DateFieldRange.d.ts +21 -0
  229. package/dist/src/components/DateFieldSingle/DateFieldSingle.d.ts +20 -0
  230. package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +19 -0
  231. package/dist/src/components/FieldLabel/FieldLabel.d.ts +36 -0
  232. package/dist/src/components/LinkButton/LinkButton.d.ts +13 -0
  233. package/dist/src/components/Listbox/Listbox.d.ts +3 -3
  234. package/dist/src/components/NumberField/NumberField.d.ts +21 -0
  235. package/dist/src/components/Overflow/Overflow.d.ts +22 -0
  236. package/dist/src/components/SelectTrigger/SelectTrigger.d.ts +19 -0
  237. package/dist/src/components/TextField/TextField.d.ts +14 -0
  238. package/dist/src/internal/components/Popover/internal/PopoverContext.d.ts +4 -0
  239. package/dist/src/internal/utils/index.d.ts +1 -0
  240. package/dist/src/internal/utils/uniquifySvgDomIds.d.ts +12 -0
  241. package/dist/{stripInlineMarkdown-_rZx_gXG.js → stripInlineMarkdown-BZzgG-Zm.js} +2 -2
  242. package/dist/{stripInlineMarkdown-_rZx_gXG.js.map → stripInlineMarkdown-BZzgG-Zm.js.map} +1 -1
  243. package/dist/{syncFilterUtils-CpDXQtFA.js → syncFilterUtils-Cec5y3hY.js} +5 -5
  244. package/dist/{syncFilterUtils-CpDXQtFA.js.map → syncFilterUtils-Cec5y3hY.js.map} +1 -1
  245. package/dist/{treeSync-Dcq1ntVm.js → treeSync-oC-VZpP0.js} +4 -4
  246. package/dist/{treeSync-Dcq1ntVm.js.map → treeSync-oC-VZpP0.js.map} +1 -1
  247. package/dist/{useAdaptiveView-B8-BkcBX.js → useAdaptiveView-AvsDkChF.js} +5 -5
  248. package/dist/{useAdaptiveView-B8-BkcBX.js.map → useAdaptiveView-AvsDkChF.js.map} +1 -1
  249. package/dist/{useDrilldown-DmILG6sb.js → useDrilldown-PmrZ4BXn.js} +3 -3
  250. package/dist/{useDrilldown-DmILG6sb.js.map → useDrilldown-PmrZ4BXn.js.map} +1 -1
  251. package/dist/{useInfiniteCombobox-BfM3muPW.js → useInfiniteCombobox-C78WQZx4.js} +5 -5
  252. package/dist/{useInfiniteCombobox-BfM3muPW.js.map → useInfiniteCombobox-C78WQZx4.js.map} +1 -1
  253. package/package.json +17 -16
  254. package/dist/Calendar-CJaZFWmO.js.map +0 -1
  255. package/dist/DateFieldYearlessRange-CWdTbFDF.js.map +0 -1
  256. package/dist/Icon-BEwHECSM.js +0 -56
  257. package/dist/Icon-BEwHECSM.js.map +0 -1
  258. package/dist/Listbox-BQRMsA0L.js.map +0 -1
  259. package/dist/NumberField-DdaBRyCJ.js.map +0 -1
  260. package/dist/RichTextEditor-x0anoUnS.js.map +0 -1
  261. package/dist/SelectTrigger-DZ33_p3P.js.map +0 -1
  262. package/dist/TextField-CwJliCi7.js.map +0 -1
  263. package/dist/TypeaheadTextField-N_6q6ojK.js.map +0 -1
  264. package/dist/index-BN9SK9L3.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectTrigger-DZ33_p3P.js","sources":["../src/components/SelectTrigger/SelectTrigger.tsx"],"sourcesContent":["import { Dispatch, SetStateAction } from \"react\";\nimport {\n UseComboboxProps as UseDownshiftComboboxProps,\n UseMultipleSelectionProps as UseDownshiftMultipleSelectionProps,\n} from \"downshift\";\n\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { DataTrackingId, DistributiveOmit } from \"../../types\";\nimport { FieldLabelProps } from \"../FieldLabel\";\nimport { Icon, IconProps } from \"../Icon\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport {\n SelectTriggerBase,\n SelectTriggerBaseProps,\n} from \"./internal/SelectTriggerBase\";\nimport {\n defaultItemToKey,\n defaultItemToString,\n} from \"../Combobox/internal/ComboboxUtils\";\n\nexport type SelectTriggerProps<Item> = DistributiveOmit<\n SelectTriggerBaseProps<Item>,\n \"prefix\" | \"selectedItem\" | \"selectedItems\" | \"onChange\"\n> &\n Pick<FieldLabelProps, \"required\" | \"moreInfo\"> &\n Pick<UseDownshiftComboboxProps<Item>, \"itemToString\" | \"itemToKey\"> &\n DataTrackingId & {\n prefix?:\n | string\n | { icon: DistributiveOmit<IconProps, \"size\"> }\n | { avatar: DistributiveOmit<AvatarProps, \"size\"> };\n } & (\n | {\n multiple?: never;\n onChange?:\n | Dispatch<SetStateAction<Item | null>>\n | ((arg: Item | null) => void);\n selectedItem: UseDownshiftComboboxProps<Item>[\"selectedItem\"];\n selectedItems?: never;\n }\n | {\n multiple: true;\n onChange?:\n | Dispatch<SetStateAction<Item[] | null>>\n | ((arg: Item[] | null) => void);\n selectedItem?: never;\n selectedItems: UseDownshiftMultipleSelectionProps<Item>[\"selectedItems\"];\n }\n );\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: look into unknown\nexport const SelectTrigger = function <Item = any>(\n props: SelectTriggerProps<Item>,\n) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n className,\n style,\n label,\n size,\n error,\n hint,\n description,\n required,\n moreInfo,\n prefix: prefixProp,\n suffix,\n maxRows,\n selectedItemProps = () => ({}),\n id,\n placeholder,\n disabled: isDisabled,\n readOnly: isReadOnly,\n onClick,\n multiple,\n onChange,\n disableClearSelection,\n itemToString: itemToStringProp,\n itemToKey: itemToKeyProp,\n selectedItem = null,\n selectedItems = [],\n ...rest\n } = componentProps;\n\n const itemToString = itemToStringProp ?? defaultItemToString<Item>;\n const itemToKey = itemToKeyProp ?? defaultItemToKey<Item>;\n\n function removeSelectedItem(item: Item) {\n if (multiple) {\n onChange?.(\n selectedItems.filter(\n (selectedItem: Item) => itemToKey(selectedItem) !== itemToKey(item),\n ),\n );\n } else if (itemToKey(selectedItem) === itemToKey(item)) {\n onChange?.(null);\n }\n }\n\n function reset() {\n if (multiple) {\n onChange?.([]);\n } else {\n onChange?.(null);\n }\n }\n\n const noClearButton = isDisabled || isReadOnly || disableClearSelection;\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n size: props.size,\n required: props.required,\n moreInfo: props.moreInfo,\n description: childrenToString(props.description),\n hint: props.hint,\n labelProps: labelPropsWithoutAiMark,\n };\n\n const trackingId = useTrackingId({\n name: \"ComboboxSearchField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const prefix =\n prefixProp == null || typeof prefixProp === \"string\" ? (\n prefixProp\n ) : \"icon\" in prefixProp ? (\n <Icon {...prefixProp.icon} />\n ) : \"avatar\" in prefixProp ? (\n <Avatar\n {...prefixProp.avatar}\n size={props.size === \"small\" ? \"small\" : \"medium\"}\n />\n ) : (\n prefixProp\n );\n\n return (\n <SelectTriggerBase\n data-anv=\"select-trigger\"\n data-tracking-id={trackingId}\n className={className}\n style={styleCombined}\n label={label}\n size={size}\n error={error}\n hint={hint}\n description={description}\n labelProps={{\n aiMark,\n moreInfo,\n required,\n }}\n prefix={prefix}\n suffix={suffix}\n maxRows={maxRows}\n selectedItemProps={selectedItemProps}\n id={id}\n placeholder={placeholder}\n disabled={isDisabled}\n readOnly={isReadOnly}\n itemToString={itemToString}\n removeSelectedItem={removeSelectedItem}\n disableClearSelection={noClearButton}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n onClearButtonClick={reset}\n inputWrapperProps={{ onClick }}\n inputProps={rest}\n />\n );\n};\n"],"names":["selectedItem"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextField-CwJliCi7.js","sources":["../src/components/TextField/TextField.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport {\n TextField as CoreTextField,\n TextFieldProps as CoreTextFieldProps,\n} from \"./internal/TextField\";\nimport { MaxLengthCounterProps } from \"../../types\";\n\nexport type TextFieldProps = Omit<CoreTextFieldProps, \"prefix\"> & {\n prefix?: string;\n} & MaxLengthCounterProps;\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (props, ref) => {\n return <CoreTextField ref={ref} {...props} />;\n },\n);\n\nTextField.displayName = \"TextField\";\n"],"names":["CoreTextField"],"mappings":";;;;AAWO,MAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,uBAAO,GAAA,CAACA,WAAA,EAAA,EAAc,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC7C;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypeaheadTextField-N_6q6ojK.js","sources":["../src/beta/components/TypeaheadTextField/internal/SuggestionItem.tsx","../src/beta/components/TypeaheadTextField/TypeaheadTextField.tsx"],"sourcesContent":["import { HTMLAttributes, ReactNode, forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport menuStyles from \"../../../../components/Menu/Menu.module.scss\";\nimport styles from \"./SuggestionItem.module.scss\";\n\nexport type SuggestionItemProps = HTMLAttributes<HTMLDivElement> & {\n /** Visible label content for the option. */\n label: ReactNode;\n /**\n * Reflects ARIA selection state on the `role=\"option\"` element. Drives the\n * `aria-activedescendant` highlight: set it for the option the user has\n * navigated to with the arrow keys and would commit on Enter. Do not use it\n * for \"this suggestion was previously chosen\", which isn't a meaningful\n * state for a suggestion list.\n */\n selected?: boolean;\n /** Disables selection and dims the row. */\n disabled?: boolean;\n};\n\n/*\n * A single suggestion row inside a combobox-style listbox.\n *\n * Reuses Menu's `.item` style for visual consistency but renders\n * `role=\"option\"` / `aria-selected` (instead of `role=\"menuitem\"`) so it\n * pairs correctly with the `role=\"listbox\"` container TypeaheadTextField\n * puts around it — matching the combobox WAI-ARIA pattern and giving screen\n * readers the right semantics (e.g. \"Apple, 1 of 5\" instead of \"menu item\").\n *\n * Rendered as a non-focusable <div> (not a <button>): the combobox keeps DOM\n * focus on the input and expresses the current option via the input's\n * `aria-activedescendant` pointing at this row's id. The row is never a tab\n * stop and never receives focus itself.\n *\n * Intentionally lighter than Menu.Item: text-only (no icon slot, since\n * suggestion lists are pure text), no MenuContext dependency, no auto-close\n * coupling, and no \"menu item\" tracking name — the parent owns close +\n * selection.\n */\nexport const SuggestionItem = forwardRef<HTMLDivElement, SuggestionItemProps>(\n ({ label, selected, disabled, className, ...rest }, ref) => (\n <div\n {...rest}\n ref={ref}\n role=\"option\"\n aria-selected={selected ?? false}\n aria-disabled={disabled || undefined}\n data-anv=\"suggestion-option\"\n className={cx(menuStyles[\"item\"], styles[\"option\"], className)}\n >\n {label}\n </div>\n ),\n);\n\nSuggestionItem.displayName = \"SuggestionItem\";\n","import {\n CSSProperties,\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Popover } from \"../../../components/Popover\";\nimport { Spinner } from \"../../../components/Spinner\";\nimport { TextField, TextFieldProps } from \"../../../components/TextField\";\nimport { mergeRefs } from \"../../../hooks/useMergeRefs/useMergeRefs\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks/useOptionallyControlledState\";\nimport { DistributiveOmit } from \"../../../types\";\nimport { SuggestionItem } from \"./internal/SuggestionItem\";\nimport styles from \"./TypeaheadTextField.module.scss\";\n\nexport type TypeaheadTextFieldOption<T = string> = {\n label: string;\n value: T;\n};\n\ntype LoadOptionsResult<T> =\n | TypeaheadTextFieldOption<T>[]\n | Promise<TypeaheadTextFieldOption<T>[]>;\n\n// DistributiveOmit (not plain Omit) so the discriminated union arms inside\n// TextFieldProps — particularly MaxLengthCounterProps (`showCounter: true`\n// requires `maxLength`) — survive the omit. Plain Omit collapses unions to\n// their common keys and widens `showCounter` to `boolean | undefined`, which\n// then fails to satisfy either arm when spread back onto <TextField />.\nexport type TypeaheadTextFieldProps<T = string> = DistributiveOmit<\n TextFieldProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"suffix\"\n> & {\n /**\n * Controlled input value.\n */\n value?: string;\n /**\n * Default input value for uncontrolled mode.\n */\n defaultValue?: string;\n /**\n * Fired whenever the input value changes (from typing, selection, or clear).\n */\n onChange?: (value: string) => void;\n /**\n * Returns suggestions for the current input value.\n * May be synchronous or return a Promise.\n */\n loadOptions: (search: string) => LoadOptionsResult<T>;\n /**\n * Fired when a suggestion is selected from the menu.\n */\n onSelectOption?: (option: TypeaheadTextFieldOption<T>) => void;\n /**\n * Debounce in ms between an input change and the loadOptions call.\n * @default 300\n */\n debounceMs?: number;\n /**\n * Label shown when there are no suggestions to render.\n * @default \"No suggestions found\"\n */\n noSuggestionsLabel?: string;\n /**\n * Label shown while suggestions are loading and there are no options yet.\n * @default \"Loading...\"\n */\n loadingLabel?: string;\n /**\n * Custom renderer for the label of an option row.\n */\n renderOption?: (option: TypeaheadTextFieldOption<T>) => ReactNode;\n /**\n * If true, the suggestion menu opens whenever the input is focused and has\n * a non-empty value.\n * @default true\n */\n openOnFocus?: boolean;\n /**\n * If true, also opens the menu on focus/click when the input is empty.\n * Useful for \"show all\" style menus that don't require pre-typing.\n * @default false\n */\n openOnEmptyFocus?: boolean;\n};\n\nconst SUFFIX_SLOT_WIDTH = 20;\n\nexport function TypeaheadTextField<T = string>({\n value: valueProp,\n defaultValue,\n onChange,\n loadOptions,\n onSelectOption,\n debounceMs = 300,\n noSuggestionsLabel = \"No suggestions found\",\n loadingLabel = \"Loading...\",\n renderOption,\n openOnFocus = true,\n openOnEmptyFocus = false,\n onFocus,\n onBlur,\n onKeyDown,\n onClick,\n disabled,\n readOnly,\n loading: loadingProp,\n ...textFieldProps\n}: TypeaheadTextFieldProps<T>) {\n const [value, setValue] = useOptionallyControlledState<string>({\n controlledValue: valueProp,\n defaultValue: defaultValue ?? \"\",\n onChange,\n });\n\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<TypeaheadTextFieldOption<T>[]>([]);\n const [internalLoading, setInternalLoading] = useState(false);\n const loading = loadingProp ?? internalLoading;\n\n // Index of the option the user has navigated to with the arrow keys, or -1\n // when none is active. DOM focus stays on the input the whole time; this\n // index drives the input's `aria-activedescendant` and each row's\n // `aria-selected` (the WAI-ARIA combobox active-descendant pattern, matching\n // SelectField/MultiSelectField). It is NOT moved into the list as DOM focus.\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const listRef = useRef<HTMLDivElement>(null);\n // Wrapping div around the TextField — measured only, so the popover\n // (sized to content via Popover's default `width: max-content`) can be\n // pinned to at least the visible TextField width via the listbox's\n // `min-width` CSS variable below.\n const wrapperRef = useRef<HTMLDivElement>(null);\n // Stable id so the combobox input's `aria-controls` matches the listbox.\n const listboxId = useId();\n // Per-option id, referenced by the input's `aria-activedescendant` and set\n // on each row so AT can resolve the active descendant to a real element.\n const optionId = (index: number) => `${listboxId}-option-${index}`;\n const [wrapperWidth, setWrapperWidth] = useState(0);\n\n // Track the visible TextField box width and feed it to the listbox as a\n // min-width. ResizeObserver fires on layout changes (parent flex resize,\n // window resize, etc.); useLayoutEffect runs the initial measurement\n // synchronously so the popover never opens with a stale width on first\n // paint.\n useLayoutEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) return;\n const measure = () => {\n const next = wrapper.offsetWidth;\n setWrapperWidth((prev) => (prev === next ? prev : next));\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(wrapper);\n return () => ro.disconnect();\n }, []);\n\n // Track the latest in-flight request id to ignore stale async results.\n const requestIdRef = useRef(0);\n const loadOptionsRef = useRef(loadOptions);\n loadOptionsRef.current = loadOptions;\n\n const performLoad = useCallback(async (search: string) => {\n const reqId = ++requestIdRef.current;\n try {\n const result = await Promise.resolve(loadOptionsRef.current(search));\n if (requestIdRef.current === reqId) {\n setOptions(result);\n }\n } catch {\n if (requestIdRef.current === reqId) {\n setOptions([]);\n }\n } finally {\n if (requestIdRef.current === reqId) {\n setInternalLoading(false);\n }\n }\n }, []);\n\n const debouncedLoad = useDebouncedCallback(performLoad, debounceMs);\n\n const isInteractive = !disabled && !readOnly;\n\n const requestOpen = useCallback(\n (search: string) => {\n if (!isInteractive) return;\n setOpen(true);\n setInternalLoading(true);\n debouncedLoad(search);\n },\n [debouncedLoad, isInteractive],\n );\n\n // Any new result set (a fresh load, or typing that refilters) invalidates\n // the previous highlight — start over with nothing active.\n useEffect(() => {\n setHighlightedIndex(-1);\n }, [options]);\n\n // Closing the menu clears the active descendant so it doesn't linger on the\n // input's accessibility tree while the listbox is hidden.\n useEffect(() => {\n if (!open) setHighlightedIndex(-1);\n }, [open]);\n\n // Keep the highlighted row in view as the user arrows past the visible\n // window. `block: \"nearest\"` scrolls the minimum needed without yanking the\n // list around. Focus stays on the input, so this is the only scroll driver.\n useEffect(() => {\n if (!open || highlightedIndex < 0) return;\n const active = listRef.current?.querySelector<HTMLElement>(\n `#${CSS.escape(`${listboxId}-option-${highlightedIndex}`)}`,\n );\n active?.scrollIntoView({ block: \"nearest\" });\n }, [highlightedIndex, open, listboxId]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const next = event.target.value;\n setValue(next);\n requestOpen(next);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n if (!isInteractive || !openOnFocus) return;\n // After selection or Escape from inside the menu, focus may return to\n // the input from a list item. Don't reopen in that case.\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (relatedTarget && listRef.current?.contains(relatedTarget)) return;\n if (!value && !openOnEmptyFocus) return;\n requestOpen(value);\n };\n\n const handleClick = (event: MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n if (!isInteractive || open) return;\n if (!value && !openOnEmptyFocus) return;\n requestOpen(value);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n // Close when focus leaves the input AND isn't going into the menu list\n // (clicking an option). Popover doesn't close on input blur by itself.\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (relatedTarget && listRef.current?.contains(relatedTarget)) return;\n setOpen(false);\n };\n\n const handleSelect = (option: TypeaheadTextFieldOption<T>) => {\n setValue(option.label);\n setOpen(false);\n onSelectOption?.(option);\n // Focus never left the input (options aren't focusable), so there is\n // nothing to restore here.\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n if (event.key === \"Escape\" && open) {\n event.stopPropagation();\n event.preventDefault();\n setOpen(false);\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n // Closed → just open. Options aren't rendered yet, so there is nothing\n // to highlight; the user presses ArrowDown again once they've loaded.\n if (!open) {\n requestOpen(value);\n return;\n }\n if (options.length === 0) return;\n // Wrap to the top from the end; from -1 (nothing active) go to the first.\n setHighlightedIndex((i) => (i >= options.length - 1 ? 0 : i + 1));\n return;\n }\n\n if (event.key === \"ArrowUp\") {\n if (!open) return;\n event.preventDefault();\n if (options.length === 0) return;\n // Wrap to the bottom from the top; from -1 go to the last.\n setHighlightedIndex((i) => (i <= 0 ? options.length - 1 : i - 1));\n return;\n }\n\n if (event.key === \"Enter\" && open && highlightedIndex >= 0) {\n const option = options[highlightedIndex];\n if (option) {\n // Prevent the keystroke from submitting an enclosing form when the\n // user is committing a highlighted suggestion.\n event.preventDefault();\n handleSelect(option);\n }\n }\n };\n\n // The suffix slot is ALWAYS rendered with a fixed-width container so the\n // textfield never reflows when the spinner appears/disappears or the clear\n // button toggles. Without this, each keystroke would jiggle the field width.\n const suffix = (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: SUFFIX_SLOT_WIDTH,\n height: SUFFIX_SLOT_WIDTH,\n }}\n data-anv=\"typeahead-suffix\"\n >\n {loading ? (\n <Spinner size=\"small\" inherit />\n ) : (\n // Invisible placeholder reserves the slot width so the textfield\n // doesn't reflow when transitioning from empty to typed.\n <span\n aria-hidden\n style={{ display: \"inline-block\", width: 1, height: 1 }}\n />\n )}\n </span>\n );\n\n const renderList = () => {\n // Loading / empty are informational, not selectable — rendered as plain\n // text outside the role=\"option\" set so screen readers don't announce\n // them as \"1 of 1\" options. `aria-live=\"polite\"` on the loading state\n // lets users hear when suggestions arrive after an async fetch.\n if (loading && options.length === 0) {\n return (\n <div role=\"presentation\" aria-live=\"polite\" data-typeahead-status>\n {loadingLabel}\n </div>\n );\n }\n if (options.length === 0) {\n return (\n <div role=\"presentation\" data-typeahead-status>\n {noSuggestionsLabel}\n </div>\n );\n }\n return options.map((option, i) => (\n <SuggestionItem\n key={`${option.label}-${i}`}\n id={optionId(i)}\n label={renderOption ? renderOption(option) : option.label}\n selected={i === highlightedIndex}\n onClick={() => handleSelect(option)}\n // Keep input focus during mousedown so blur doesn't fire prematurely.\n onMouseDown={(e) => e.preventDefault()}\n // Pointer hover syncs the active descendant so mouse and keyboard\n // share a single highlight (Enter commits whatever the pointer last\n // hovered).\n onMouseEnter={() => setHighlightedIndex(i)}\n />\n ));\n };\n\n return (\n <Popover\n open={open}\n onClose={() => setOpen(false)}\n onClickOutside={() => setOpen(false)}\n disableCaret\n disableTriggerFocus\n // Constrain to the vertical axis only — without this, floating-ui's\n // flip middleware will fall back to the left/right side of the\n // trigger when vertical space is tight (e.g. narrow viewports). A\n // suggestion list pinned to the side of an input is disorienting;\n // we'd rather it flip top<->bottom or stay clipped than jump axes.\n disableFlipFallback\n noPadding\n placement=\"bottom-start\"\n >\n <Popover.Trigger>\n {(triggerProps) => {\n // Popover.Trigger wires up click-to-toggle and keyboard handlers\n // intended for buttons. We strip those — the TextField has its own\n // change/click semantics, and we drive open state explicitly.\n const {\n onClick: _ignoreTriggerClick,\n onKeyDown: _ignoreTriggerKey,\n onFocus: _ignoreTriggerFocus,\n onBlur: _ignoreTriggerBlur,\n onMouseEnter: _ignoreTriggerEnter,\n onMouseLeave: _ignoreTriggerLeave,\n ref,\n ...rest\n } = triggerProps;\n const popoverRef = ref as unknown as Ref<HTMLInputElement>;\n return (\n // Wrapping div is measurement-only — it gives us the visible\n // TextField box width (which includes the suffix slot) so the\n // listbox can stretch to match. Popover positioning still anchors\n // to the inner <input> via the merged ref to avoid the 8px gap\n // that would appear if the popover measured this wrapper's\n // bottom edge.\n <div ref={wrapperRef} style={{ width: \"100%\" }}>\n <TextField\n {...textFieldProps}\n {...rest}\n ref={mergeRefs([popoverRef, inputRef])}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n suffix={suffix}\n style={{ width: \"100%\", ...textFieldProps.style }}\n // WAI-ARIA combobox attrs: the input is the combobox, the\n // popover content is the listbox it controls. `aria-haspopup`\n // and `aria-autocomplete` tell AT this is a suggestion-style\n // combobox; `aria-expanded` reflects open state;\n // `aria-controls` points at the listbox id.\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded={open}\n aria-controls={listboxId}\n // Names the option the user is navigating to without moving\n // DOM focus off the input — the active-descendant half of the\n // combobox pattern. Cleared when nothing is highlighted.\n aria-activedescendant={\n open && highlightedIndex >= 0\n ? optionId(highlightedIndex)\n : undefined\n }\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n />\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content>\n <div\n ref={listRef}\n role=\"listbox\"\n id={listboxId}\n className={styles[\"listbox\"]}\n // Floor the listbox at the visible TextField width — with the\n // Popover sized to its content (no `matchReferenceWidth`), this\n // is what keeps the popover from collapsing narrower than the\n // field while still letting it grow for long suggestions.\n style={\n {\n \"--typeahead-min-width\": `${wrapperWidth}px`,\n } as CSSProperties\n }\n data-typeahead-list\n >\n {renderList()}\n </div>\n </Popover.Content>\n </Popover>\n );\n}\n\nTypeaheadTextField.displayName = \"TypeaheadTextField\";\n"],"names":["styles"],"mappings":"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"}