@servicetitan/anvil2 3.16.0 → 3.17.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 (296) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/{AiMark-BfmK30vL.js → AiMark-CYXbKuCA.js} +2 -2
  3. package/dist/{AiMark-BfmK30vL.js.map → AiMark-CYXbKuCA.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-lLo1N7Tj.js → Alert-CYpl0czJ.js} +3 -3
  6. package/dist/{Alert-lLo1N7Tj.js.map → Alert-CYpl0czJ.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-PfnsVVz1.js → Announcement-AN9HnhZ-.js} +2 -2
  9. package/dist/{Announcement-PfnsVVz1.js.map → Announcement-AN9HnhZ-.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{Breadcrumbs-RdL4Fvmu.js → Breadcrumbs-C0CXs9Ma.js} +2 -2
  12. package/dist/{Breadcrumbs-RdL4Fvmu.js.map → Breadcrumbs-C0CXs9Ma.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Button-Dn6-01xl.js → Button-B_E6ybA-.js} +3 -3
  15. package/dist/{Button-Dn6-01xl.js.map → Button-B_E6ybA-.js.map} +1 -1
  16. package/dist/Button.js +1 -1
  17. package/dist/{ButtonToggle-BSU8GBxr.js → ButtonToggle-D0eXySEM.js} +2 -2
  18. package/dist/{ButtonToggle-BSU8GBxr.js.map → ButtonToggle-D0eXySEM.js.map} +1 -1
  19. package/dist/ButtonToggle.js +1 -1
  20. package/dist/{luxon-wpz4A-OQ.js → Calendar-BAIyDHX9.js} +1761 -3
  21. package/dist/Calendar-BAIyDHX9.js.map +1 -0
  22. package/dist/{Calendar-DoLRAWLp.js → Calendar-C_NPqjx3.js} +2 -2
  23. package/dist/{Calendar-DoLRAWLp.js.map → Calendar-C_NPqjx3.js.map} +1 -1
  24. package/dist/Calendar.js +2 -2
  25. package/dist/{Checkbox-U-kuWhgc.js → Checkbox-4Ow8rCbD.js} +2 -2
  26. package/dist/{Checkbox-U-kuWhgc.js.map → Checkbox-4Ow8rCbD.js.map} +1 -1
  27. package/dist/{Checkbox-CVxbe-iN.js → Checkbox-f1vutjn0.js} +3 -3
  28. package/dist/{Checkbox-CVxbe-iN.js.map → Checkbox-f1vutjn0.js.map} +1 -1
  29. package/dist/Checkbox.js +1 -1
  30. package/dist/{Chip-2OydLs66.js → Chip-AIF0WiNS.js} +2 -2
  31. package/dist/{Chip-2OydLs66.js.map → Chip-AIF0WiNS.js.map} +1 -1
  32. package/dist/Chip.js +1 -1
  33. package/dist/Combobox.js +1 -1
  34. package/dist/{DataTable-DIXP9-Bx.js → DataTableEditColumnsDrawer-DRgJgso9.js} +1288 -263
  35. package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +1 -0
  36. package/dist/{DataTable.css → DataTableEditColumnsDrawer.css} +41 -0
  37. package/dist/{DateFieldRange-X2jdOTYY.js → DateFieldRange-D9PA985Z.js} +6 -7
  38. package/dist/{DateFieldRange-X2jdOTYY.js.map → DateFieldRange-D9PA985Z.js.map} +1 -1
  39. package/dist/DateFieldRange.js +1 -1
  40. package/dist/{DateFieldSingle-BJ16tpOz.js → DateFieldSingle-CMLojOb3.js} +6 -7
  41. package/dist/{DateFieldSingle-BJ16tpOz.js.map → DateFieldSingle-CMLojOb3.js.map} +1 -1
  42. package/dist/DateFieldSingle.js +1 -1
  43. package/dist/{DateFieldYearless-CMm8vtz_.js → DateFieldYearless-B5IyR75v.js} +4 -4
  44. package/dist/{DateFieldYearless-CMm8vtz_.js.map → DateFieldYearless-B5IyR75v.js.map} +1 -1
  45. package/dist/DateFieldYearless.js +1 -1
  46. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js → DateFieldYearlessRange-8yXILjx7.js} +3 -3
  47. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js.map → DateFieldYearlessRange-8yXILjx7.js.map} +1 -1
  48. package/dist/DateFieldYearlessRange.js +1 -1
  49. package/dist/{DaysOfTheWeek-BHXxs0Bo.js → DaysOfTheWeek-Cxp5VdYK.js} +3 -3
  50. package/dist/{DaysOfTheWeek-BHXxs0Bo.js.map → DaysOfTheWeek-Cxp5VdYK.js.map} +1 -1
  51. package/dist/DaysOfTheWeek.js +1 -1
  52. package/dist/{Dialog-_tHqOsbr.js → Dialog-KDAJphrA.js} +8 -7
  53. package/dist/Dialog-KDAJphrA.js.map +1 -0
  54. package/dist/Dialog.js +1 -1
  55. package/dist/{DialogCancelButton-C0r8hJ8Z.js → DialogCancelButton-CplrFu69.js} +2 -2
  56. package/dist/{DialogCancelButton-C0r8hJ8Z.js.map → DialogCancelButton-CplrFu69.js.map} +1 -1
  57. package/dist/Dnd.js +2 -2
  58. package/dist/{DndHandleButton-BRlodkDO.js → DndHandleButton-BJqj2hc0.js} +6 -4
  59. package/dist/DndHandleButton-BJqj2hc0.js.map +1 -0
  60. package/dist/DndSort.js +2 -2
  61. package/dist/{Drawer-D-ThWNp0.js → Drawer-C7E2NNnH.js} +9 -8
  62. package/dist/Drawer-C7E2NNnH.js.map +1 -0
  63. package/dist/Drawer.js +1 -1
  64. package/dist/DrillDown.css +41 -34
  65. package/dist/DrillDown.js +1 -1
  66. package/dist/DrillDown.module-BFE5BcJB.js +28 -0
  67. package/dist/DrillDown.module-BFE5BcJB.js.map +1 -0
  68. package/dist/{EditCard-B6l2vhBS.js → EditCard-CutlsXfK.js} +3 -3
  69. package/dist/{EditCard-B6l2vhBS.js.map → EditCard-CutlsXfK.js.map} +1 -1
  70. package/dist/EditCard.js +1 -1
  71. package/dist/{FieldLabel-ThEmUiAq.js → FieldLabel-DYcUS3A4.js} +2 -2
  72. package/dist/{FieldLabel-ThEmUiAq.js.map → FieldLabel-DYcUS3A4.js.map} +1 -1
  73. package/dist/FieldLabel.js +1 -1
  74. package/dist/{FilterBar-jFn8O7v7.js → FilterBar-DbDfZph-.js} +7 -7
  75. package/dist/{FilterBar-jFn8O7v7.js.map → FilterBar-DbDfZph-.js.map} +1 -1
  76. package/dist/FilterBar.js +1 -1
  77. package/dist/{InputMask-BQigi5oW.js → InputMask-BxdQc1ld.js} +3 -3
  78. package/dist/{InputMask-BQigi5oW.js.map → InputMask-BxdQc1ld.js.map} +1 -1
  79. package/dist/InputMask.js +1 -1
  80. package/dist/{ListView-YJscfG4x.js → ListView-BVanVvBk.js} +87 -108
  81. package/dist/ListView-BVanVvBk.js.map +1 -0
  82. package/dist/ListView.js +1 -1
  83. package/dist/{Listbox-CD9ZptSZ.js → Listbox-BR0YQIee.js} +2 -2
  84. package/dist/{Listbox-CD9ZptSZ.js.map → Listbox-BR0YQIee.js.map} +1 -1
  85. package/dist/Listbox.js +1 -1
  86. package/dist/{Menu-Da2OEN0o.js → Menu-DqP7YQgE.js} +2 -2
  87. package/dist/{Menu-Da2OEN0o.js.map → Menu-DqP7YQgE.js.map} +1 -1
  88. package/dist/Menu.js +1 -1
  89. package/dist/{MenuFooter-D__gg92C.js → MenuFooter-Dzhv0EfD.js} +2 -2
  90. package/dist/{MenuFooter-D__gg92C.js.map → MenuFooter-Dzhv0EfD.js.map} +1 -1
  91. package/dist/MultiSelectField.js +1 -1
  92. package/dist/{MultiSelectFieldSync-DuImKXuj.js → MultiSelectFieldSync-9253tott.js} +29 -29
  93. package/dist/{MultiSelectFieldSync-DuImKXuj.js.map → MultiSelectFieldSync-9253tott.js.map} +1 -1
  94. package/dist/MultiSelectFieldSync.css +71 -70
  95. package/dist/MultiSelectMenu.js +1 -1
  96. package/dist/{MultiSelectMenuSync-BhNXsgAN.js → MultiSelectMenuSync-BUJbWN2I.js} +5 -5
  97. package/dist/{MultiSelectMenuSync-BhNXsgAN.js.map → MultiSelectMenuSync-BUJbWN2I.js.map} +1 -1
  98. package/dist/{useNumberField-CXFYUZ_n.js → NumberField-DhxywJVp.js} +251 -5
  99. package/dist/NumberField-DhxywJVp.js.map +1 -0
  100. package/dist/NumberField.js +1 -1
  101. package/dist/{Page-ZSHNJs7z.js → Page-D_KL2tdK.js} +14 -13
  102. package/dist/{Page-ZSHNJs7z.js.map → Page-D_KL2tdK.js.map} +1 -1
  103. package/dist/Page.js +1 -1
  104. package/dist/{Pagination-Bsl99RRI.js → Pagination-DYpUtMha.js} +5 -5
  105. package/dist/{Pagination-Bsl99RRI.js.map → Pagination-DYpUtMha.js.map} +1 -1
  106. package/dist/Pagination.js +1 -1
  107. package/dist/{Popover-CIh1CsoJ.js → Popover-B2ix8Ji4.js} +2 -2
  108. package/dist/{Popover-CIh1CsoJ.js.map → Popover-B2ix8Ji4.js.map} +1 -1
  109. package/dist/Popover.js +1 -1
  110. package/dist/{ProgressBar-zPKYv4Il.js → ProgressBar-CjoOuJCi.js} +2 -2
  111. package/dist/{ProgressBar-zPKYv4Il.js.map → ProgressBar-CjoOuJCi.js.map} +1 -1
  112. package/dist/ProgressBar.js +1 -1
  113. package/dist/{Radio-C1VnatcL.js → Radio-Bz36_d0V.js} +2 -2
  114. package/dist/{Radio-C1VnatcL.js.map → Radio-Bz36_d0V.js.map} +1 -1
  115. package/dist/{Radio-BYowelK2.js → Radio-DOD1d9Vw.js} +3 -3
  116. package/dist/{Radio-BYowelK2.js.map → Radio-DOD1d9Vw.js.map} +1 -1
  117. package/dist/Radio.js +1 -1
  118. package/dist/{RichTextEditor-DcAVqd2d.js → RichTextEditor-BORVXVDw.js} +11 -11
  119. package/dist/{RichTextEditor-DcAVqd2d.js.map → RichTextEditor-BORVXVDw.js.map} +1 -1
  120. package/dist/RichTextEditor.js +1 -1
  121. package/dist/{SavedFiltersButton-Bl8mr-LB.js → SavedFiltersButton-vq_Kt4Qc.js} +10 -10
  122. package/dist/{SavedFiltersButton-Bl8mr-LB.js.map → SavedFiltersButton-vq_Kt4Qc.js.map} +1 -1
  123. package/dist/SavedFiltersButton.js +1 -1
  124. package/dist/{SegmentedControl-BHVJmmTH.js → SegmentedControl-BCqWq65N.js} +3 -3
  125. package/dist/{SegmentedControl-BHVJmmTH.js.map → SegmentedControl-BCqWq65N.js.map} +1 -1
  126. package/dist/SegmentedControl.js +1 -1
  127. package/dist/{SelectCard-DrmMU_GD.js → SelectCard-CJwetC1k.js} +3 -3
  128. package/dist/{SelectCard-DrmMU_GD.js.map → SelectCard-CJwetC1k.js.map} +1 -1
  129. package/dist/SelectCard.js +1 -1
  130. package/dist/SelectField.js +1 -1
  131. package/dist/{SelectFieldLabel-BxsKvfqo.js → SelectFieldLabel-BTKqybZm.js} +2 -2
  132. package/dist/{SelectFieldLabel-BxsKvfqo.js.map → SelectFieldLabel-BTKqybZm.js.map} +1 -1
  133. package/dist/{SelectFieldSync-SS7FELT3.js → SelectFieldSync-CoUi-BYw.js} +38 -11
  134. package/dist/SelectFieldSync-CoUi-BYw.js.map +1 -0
  135. package/dist/SelectMenu.js +1 -1
  136. package/dist/{SelectMenuSync-CPpE6vUG.js → SelectMenuSync-CvXx-6uU.js} +5 -5
  137. package/dist/{SelectMenuSync-CPpE6vUG.js.map → SelectMenuSync-CvXx-6uU.js.map} +1 -1
  138. package/dist/{SelectOptions-BDAu_9dv.js → SelectOptions-CGRUCyf4.js} +2 -2
  139. package/dist/{SelectOptions-BDAu_9dv.js.map → SelectOptions-CGRUCyf4.js.map} +1 -1
  140. package/dist/{SelectTrigger-B5h-aqhl.js → SelectTrigger-CRbl804u.js} +2 -2
  141. package/dist/{SelectTrigger-B5h-aqhl.js.map → SelectTrigger-CRbl804u.js.map} +1 -1
  142. package/dist/SelectTrigger.js +1 -1
  143. package/dist/{SelectTriggerBase-SML2Mlt-.js → SelectTriggerBase-BRUW_Zgc.js} +5 -5
  144. package/dist/{SelectTriggerBase-SML2Mlt-.js.map → SelectTriggerBase-BRUW_Zgc.js.map} +1 -1
  145. package/dist/SelectTriggerBase.css +51 -50
  146. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +40 -0
  147. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +1 -0
  148. package/dist/{Stepper-l_P6VPOv.js → Stepper-D3SHXfX1.js} +3 -3
  149. package/dist/{Stepper-l_P6VPOv.js.map → Stepper-D3SHXfX1.js.map} +1 -1
  150. package/dist/Stepper.js +1 -1
  151. package/dist/{Switch-1iNdXTik.js → Switch-rPPL4yEa.js} +2 -2
  152. package/dist/{Switch-1iNdXTik.js.map → Switch-rPPL4yEa.js.map} +1 -1
  153. package/dist/Switch.js +1 -1
  154. package/dist/{Tab-DR5YYXkq.js → Tab-CXwVQ5-G.js} +11 -7
  155. package/dist/Tab-CXwVQ5-G.js.map +1 -0
  156. package/dist/Tab.js +1 -1
  157. package/dist/Table.js +1 -1
  158. package/dist/{Text-rihxXHSe.js → Text-BRbkPr5s.js} +2 -2
  159. package/dist/{Text-rihxXHSe.js.map → Text-BRbkPr5s.js.map} +1 -1
  160. package/dist/Text.js +1 -1
  161. package/dist/{TextField-vuS7xeo-.js → TextField-B9hivHsD.js} +3 -3
  162. package/dist/{TextField-vuS7xeo-.js.map → TextField-B9hivHsD.js.map} +1 -1
  163. package/dist/{TextField-Bxd-Qzoi.js → TextField-DGRVg_Cw.js} +2 -2
  164. package/dist/{TextField-Bxd-Qzoi.js.map → TextField-DGRVg_Cw.js.map} +1 -1
  165. package/dist/TextField.js +1 -1
  166. package/dist/{Textarea-ppapJUwh.js → Textarea-DNqfV8rJ.js} +3 -3
  167. package/dist/{Textarea-ppapJUwh.js.map → Textarea-DNqfV8rJ.js.map} +1 -1
  168. package/dist/Textarea.js +1 -1
  169. package/dist/{TimeField-Hwt_oRbg.js → TimeField-DldMBNAj.js} +5 -5
  170. package/dist/{TimeField-Hwt_oRbg.js.map → TimeField-DldMBNAj.js.map} +1 -1
  171. package/dist/TimeField.js +1 -1
  172. package/dist/{TimezoneMessage-BrKB_psP.js → TimezoneMessage-CgVNxYpM.js} +2 -2
  173. package/dist/{TimezoneMessage-BrKB_psP.js.map → TimezoneMessage-CgVNxYpM.js.map} +1 -1
  174. package/dist/Toast.js +2 -2
  175. package/dist/{Toaster-dVGVVcat.js → Toaster-Bcy9XN3c.js} +2 -2
  176. package/dist/{Toaster-dVGVVcat.js.map → Toaster-Bcy9XN3c.js.map} +1 -1
  177. package/dist/{Toaster-SqkX0Kes.js → Toaster-C66ra4BK.js} +6 -8
  178. package/dist/Toaster-C66ra4BK.js.map +1 -0
  179. package/dist/{Toolbar-CMulzswf.js → Toolbar-Br-5yBxq.js} +5 -5
  180. package/dist/{Toolbar-CMulzswf.js.map → Toolbar-Br-5yBxq.js.map} +1 -1
  181. package/dist/{Toolbar-DGHZpFi9.js → Toolbar-DgPah7M3.js} +5 -5
  182. package/dist/{Toolbar-DGHZpFi9.js.map → Toolbar-DgPah7M3.js.map} +1 -1
  183. package/dist/Toolbar.js +2 -2
  184. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js → ToolbarButtonToggle-BDfoHeie.js} +2 -2
  185. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js.map → ToolbarButtonToggle-BDfoHeie.js.map} +1 -1
  186. package/dist/TreeSelectField.js +1 -1
  187. package/dist/{TreeSelectFieldSync-C0mXwYZL.js → TreeSelectFieldSync-1psUeqtG.js} +22 -22
  188. package/dist/{TreeSelectFieldSync-C0mXwYZL.js.map → TreeSelectFieldSync-1psUeqtG.js.map} +1 -1
  189. package/dist/TreeSelectFieldSync.css +36 -35
  190. package/dist/TreeSelectMenu.js +1 -1
  191. package/dist/{TreeSelectMenuSync-D2TvKxP-.js → TreeSelectMenuSync-DIPSYUnE.js} +4 -4
  192. package/dist/{TreeSelectMenuSync-D2TvKxP-.js.map → TreeSelectMenuSync-DIPSYUnE.js.map} +1 -1
  193. package/dist/{TypeaheadTextField-DgazozK7.js → TypeaheadTextField-Di9ulOBl.js} +3 -3
  194. package/dist/{TypeaheadTextField-DgazozK7.js.map → TypeaheadTextField-Di9ulOBl.js.map} +1 -1
  195. package/dist/TypeaheadTextField.js +1 -1
  196. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js → YearlessDateInputWithPicker-CQ2-6Uj4.js} +3 -3
  197. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js.map → YearlessDateInputWithPicker-CQ2-6Uj4.js.map} +1 -1
  198. package/dist/assets/icons/st/gnav_messages_active.svg +1 -0
  199. package/dist/assets/icons/st/gnav_messages_inactive.svg +1 -0
  200. package/dist/assets/icons/st.ts +2 -0
  201. package/dist/beta.js +17 -17
  202. package/dist/{bulkActionTypes-SukoplGV.js → bulkActionTypes-B71ZHjVu.js} +2 -2
  203. package/dist/{bulkActionTypes-SukoplGV.js.map → bulkActionTypes-B71ZHjVu.js.map} +1 -1
  204. package/dist/{filter-state-hDtCUggM.js → filter-state-Lw9qL0zP.js} +23 -23
  205. package/dist/{filter-state-hDtCUggM.js.map → filter-state-Lw9qL0zP.js.map} +1 -1
  206. package/dist/{index-C2dOrf4N.js → index-B3WhDZeI.js} +2 -2
  207. package/dist/{index-C2dOrf4N.js.map → index-B3WhDZeI.js.map} +1 -1
  208. package/dist/{index-Bldaza5t.js → index-CyN5oapA.js} +2 -2
  209. package/dist/{index-Bldaza5t.js.map → index-CyN5oapA.js.map} +1 -1
  210. package/dist/index-DfZCfS0S.js +36 -0
  211. package/dist/index-DfZCfS0S.js.map +1 -0
  212. package/dist/{index.esm-C2ZhC_8d.js → index.esm-CQXMoq5w.js} +2 -2
  213. package/dist/{index.esm-C2ZhC_8d.js.map → index.esm-CQXMoq5w.js.map} +1 -1
  214. package/dist/index.js +55 -53
  215. package/dist/index.js.map +1 -1
  216. package/dist/{react-ORV84FjM.js → react-CG1BUt2y.js} +5 -38
  217. package/dist/react-CG1BUt2y.js.map +1 -0
  218. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +31 -4
  219. package/dist/src/beta/components/Table/DataTable/DataTableEditColumnsDrawer.d.ts +18 -0
  220. package/dist/src/beta/components/Table/DataTable/index.d.ts +1 -0
  221. package/dist/src/beta/components/Table/DataTable/internal/DataTableAddRow.d.ts +11 -0
  222. package/dist/src/beta/components/Table/DataTable/internal/DataTableBulkActionBar.d.ts +23 -0
  223. package/dist/src/beta/components/Table/DataTable/internal/DataTableFilterToolbar.d.ts +12 -0
  224. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/EditColumnsDrawer.d.ts +29 -0
  225. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/columnLayout.d.ts +43 -0
  226. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/toEditColumnsSection.d.ts +7 -0
  227. package/dist/src/beta/components/Table/DataTable/parts.d.ts +17 -0
  228. package/dist/src/beta/components/Table/DataTable/types.d.ts +245 -2
  229. package/dist/src/beta/components/Table/types.d.ts +6 -0
  230. package/dist/src/components/DrillDown/DrillDownHeader.d.ts +11 -2
  231. package/dist/src/components/DrillDown/index.d.ts +1 -1
  232. package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +7 -2
  233. package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +6 -3
  234. package/dist/src/hooks/usePrefersReducedMotion/index.d.ts +2 -0
  235. package/dist/src/hooks/usePrefersReducedMotion/prefersReducedMotion.d.ts +6 -0
  236. package/dist/src/hooks/usePrefersReducedMotion/useReducedMotion.d.ts +5 -0
  237. package/dist/{stripInlineMarkdown-BhYLEiXu.js → stripInlineMarkdown-B6lAJb4-.js} +2 -2
  238. package/dist/{stripInlineMarkdown-BhYLEiXu.js.map → stripInlineMarkdown-B6lAJb4-.js.map} +1 -1
  239. package/dist/{syncFilterUtils-SMop8ckR.js → syncFilterUtils-DnhuqY1S.js} +4 -4
  240. package/dist/{syncFilterUtils-SMop8ckR.js.map → syncFilterUtils-DnhuqY1S.js.map} +1 -1
  241. package/dist/token/core/component-variables.scss +49 -49
  242. package/dist/token/core/component.js +49 -49
  243. package/dist/token/core/component.scss +40 -40
  244. package/dist/token.js +49 -49
  245. package/dist/token.js.map +1 -1
  246. package/dist/{treeSync-B38r1dRQ.js → treeSync-BDwht_1r.js} +3 -3
  247. package/dist/{treeSync-B38r1dRQ.js.map → treeSync-BDwht_1r.js.map} +1 -1
  248. package/dist/{use-reduced-motion-yYB9Tb0D.js → use-reduced-motion-CUshwaEW.js} +2 -2
  249. package/dist/{use-reduced-motion-yYB9Tb0D.js.map → use-reduced-motion-CUshwaEW.js.map} +1 -1
  250. package/dist/{useDrillDownContext-D5_NjqY4.js → useDrillDownContext-BLDjyNEt.js} +2 -2
  251. package/dist/{useDrillDownContext-D5_NjqY4.js.map → useDrillDownContext-BLDjyNEt.js.map} +1 -1
  252. package/dist/{useDrilldown-BOeeNUsy.js → useDrilldown-CGdhHs8L.js} +54 -21
  253. package/dist/{useDrilldown-BOeeNUsy.js.map → useDrilldown-CGdhHs8L.js.map} +1 -1
  254. package/dist/{useInfiniteCombobox-7oIT2Mzn.js → useInfiniteCombobox-Db0kaxCj.js} +4 -4
  255. package/dist/{useInfiniteCombobox-7oIT2Mzn.js.map → useInfiniteCombobox-Db0kaxCj.js.map} +1 -1
  256. package/dist/{useInitialFocus-CGybEc6x.js → useInitialFocus-fBiTU9l8.js} +7 -4
  257. package/dist/useInitialFocus-fBiTU9l8.js.map +1 -0
  258. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js → useInvalidateOnOptionsChange-PweyDORd.js} +4 -4
  259. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js.map → useInvalidateOnOptionsChange-PweyDORd.js.map} +1 -1
  260. package/dist/{usePrefersReducedMotion-DR9B_D6w.js → usePrefersReducedMotion-BLoVFiJL.js} +11 -3
  261. package/dist/usePrefersReducedMotion-BLoVFiJL.js.map +1 -0
  262. package/dist/usePrefersReducedMotion.js +2 -1
  263. package/dist/usePrefersReducedMotion.js.map +1 -1
  264. package/package.json +3 -3
  265. package/dist/Calendar-IzXG1aJw.js +0 -1761
  266. package/dist/Calendar-IzXG1aJw.js.map +0 -1
  267. package/dist/DataTable-DIXP9-Bx.js.map +0 -1
  268. package/dist/Dialog-_tHqOsbr.js.map +0 -1
  269. package/dist/DndHandleButton-BRlodkDO.js.map +0 -1
  270. package/dist/Drawer-D-ThWNp0.js.map +0 -1
  271. package/dist/DrillDown.module-1VBKDZRA.js +0 -27
  272. package/dist/DrillDown.module-1VBKDZRA.js.map +0 -1
  273. package/dist/Lato.css +0 -24
  274. package/dist/ListView-YJscfG4x.js.map +0 -1
  275. package/dist/NumberField-CxmJx4gs.js +0 -252
  276. package/dist/NumberField-CxmJx4gs.js.map +0 -1
  277. package/dist/SelectFieldSync-SS7FELT3.js.map +0 -1
  278. package/dist/SelectTriggerBase.module-mYOfdBGA.js +0 -40
  279. package/dist/SelectTriggerBase.module-mYOfdBGA.js.map +0 -1
  280. package/dist/Tab-DR5YYXkq.js.map +0 -1
  281. package/dist/Toaster-SqkX0Kes.js.map +0 -1
  282. package/dist/app-css.379821199ec8105f2efd.bundle.css +0 -57579
  283. package/dist/bugfix-71.1orion.css +0 -491
  284. package/dist/design-system.859a127fc3b66175f0f0.bundle.css +0 -34599
  285. package/dist/drag_indicator-BRHAPLSJ.js +0 -6
  286. package/dist/drag_indicator-BRHAPLSJ.js.map +0 -1
  287. package/dist/favicon.ico +0 -0
  288. package/dist/kendo-css.ed976099efbbcc8b0639.bundle.css +0 -20601
  289. package/dist/luxon-wpz4A-OQ.js.map +0 -1
  290. package/dist/main.e26f249642be9a4bd747.bundle.css +0 -50386
  291. package/dist/react-ORV84FjM.js.map +0 -1
  292. package/dist/sui.a9dc22e36a27b7ea1ee8.bundle.css +0 -41149
  293. package/dist/useInitialFocus-CGybEc6x.js.map +0 -1
  294. package/dist/useNumberField-CXFYUZ_n.js.map +0 -1
  295. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +0 -1
  296. package/dist/vite.svg +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSelectFieldSync-C0mXwYZL.js","sources":["../src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.tsx","../src/beta/components/TreeSelectField/TreeSelectField.tsx","../src/beta/components/TreeSelectField/TreeSelectFieldSync.tsx"],"sourcesContent":["import styles from \"./TreeSelectFieldInput.module.scss\";\nimport cx from \"classnames\";\nimport { Button } from \"../../../../components/Button\";\nimport { Chip } from \"../../../../components/Chip\";\nimport { Flex } from \"../../../../components/Flex\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport type { ReactElement, RefObject, KeyboardEvent, MouseEvent } from \"react\";\nimport { ANV_PART_ATTR } from \"../../../../internal/constants/anvParts\";\nimport type { TreeSelectFieldValue } from \"../types\";\nimport { PARTS } from \"../parts\";\nimport type { MultiSelectFieldChipProps } from \"../../../../components/MultiSelectField/types\";\nimport { useChipLayout } from \"../../../../components/MultiSelectField/internal/useChipLayout\";\n\nexport type TreeSelectFieldInputProps = {\n id?: string;\n placeholder?: string;\n size?: \"small\" | \"medium\" | \"large\";\n disabled?: boolean;\n readOnly?: boolean;\n error?: boolean;\n single?: boolean;\n singleRow?: boolean;\n maxChips?: number;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n selectedOptions: TreeSelectFieldValue[];\n onRemoveOption: (option: TreeSelectFieldValue) => void;\n getChipProps?: (value: TreeSelectFieldValue) => MultiSelectFieldChipProps;\n inputRef?: RefObject<HTMLInputElement>;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n searchValue?: string;\n onSearchChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onWrapperClick?: () => void;\n isOpen?: boolean;\n ariaControls?: string;\n disableSearch?: boolean;\n comboboxProps?: Record<string, unknown>;\n};\n\n/**\n * Renders the field trigger and toggle button. Multi-select search uses an\n * editable combobox; single-select or disabled search uses a read-only one.\n */\nexport const TreeSelectFieldInput = ({\n id,\n placeholder,\n size,\n disabled,\n readOnly,\n error,\n single,\n singleRow,\n maxChips,\n prefix,\n suffix,\n selectedOptions,\n onRemoveOption,\n getChipProps,\n inputRef,\n inputWrapperRef,\n searchValue,\n onSearchChange,\n onInputKeyDown,\n onWrapperClick,\n isOpen,\n ariaControls,\n disableSearch,\n comboboxProps,\n}: TreeSelectFieldInputProps) => {\n const { rowsRef, displayCount, hiddenCount } = useChipLayout({\n selectedOptionsLength: selectedOptions.length,\n singleRow,\n maxChips,\n });\n\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"disabled\"]]: disabled || readOnly,\n });\n\n const handleWrapperClick = (e: MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (target.closest(\"button\") || target.tagName === \"INPUT\") {\n return;\n }\n onWrapperClick?.();\n inputRef?.current?.focus();\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- Click-to-focus wrapper; nested controls own keyboard interaction.\n <div\n ref={inputWrapperRef}\n className={inputWrapperClassNames}\n onClick={handleWrapperClick}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n\n <div\n className={styles[\"rows-wrapper\"]}\n ref={rowsRef}\n data-single-row={singleRow || undefined}\n >\n {!single && selectedOptions.length > 0\n ? selectedOptions.slice(0, displayCount).map((option, index) => (\n <div\n key={`selected-item-${option.id}-${index}`}\n className={styles[\"chip-wrapper\"]}\n >\n <Chip\n {...getChipProps?.(option)}\n {...{ [ANV_PART_ATTR]: PARTS.chip }}\n label={option.label}\n onClose={\n disabled || readOnly || option.disabled\n ? undefined\n : () => onRemoveOption(option)\n }\n className={styles[\"chip\"]}\n title={option.label}\n />\n </div>\n ))\n : null}\n\n {hiddenCount > 0 ? (\n <div className={styles[\"chip-wrapper\"]}>\n <Chip\n label={`+${hiddenCount}`}\n className={styles[\"chip\"]}\n title={selectedOptions\n .slice(displayCount)\n .map((option) => option.label)\n .join(\", \")}\n {...{ [ANV_PART_ATTR]: PARTS.overflowChip }}\n />\n </div>\n ) : null}\n\n {!disableSearch && !single ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n value={searchValue}\n onChange={onSearchChange}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n\n {single || disableSearch ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n readOnly\n value={\n single && selectedOptions.length > 0\n ? selectedOptions[0].label\n : \"\"\n }\n disabled={disabled}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n </div>\n\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n\n <div className={styles[\"buttons-wrapper\"]}>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n icon={Chevron_Right}\n aria-label=\"toggle menu\"\n appearance=\"ghost\"\n size=\"small\"\n disabled={disabled}\n aria-expanded={isOpen}\n className={styles[\"toggle-button\"]}\n tabIndex={-1}\n {...{ [ANV_PART_ATTR]: PARTS.toggleButton }}\n onClick={() => {\n onWrapperClick?.();\n inputRef?.current?.focus();\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nTreeSelectFieldInput.displayName = \"TreeSelectFieldInput\";\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n TreeSelectFieldValue,\n} from \"./types\";\nimport type { DataAttributes } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks/useLayoutPropsUtil\";\nimport { warnDeprecatedErrorUsage } from \"../../../components/FieldMessage\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport { FieldLabel } from \"../../../components/FieldLabel\";\nimport { SrOnly } from \"../../../components/SrOnly\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { TreeSelectFieldInput } from \"./internal/TreeSelectFieldInput\";\nimport { useTreeLoader } from \"./internal/useTreeLoader\";\nimport { useTree } from \"./internal/useTree\";\nimport { TreeContent } from \"./internal/TreeContent\";\nimport { findNode } from \"./internal/treeUtils\";\nimport { useTreeLazyCascade } from \"./internal/useTreeLazyCascade\";\nimport triggerStyles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\n\n/**\n * Hierarchical select rendered in a popover or dialog.\n * Multi-select supports search; every mode uses a controlled value array.\n */\nexport const TreeSelectField = forwardRef<\n TreeSelectFieldHandle,\n TreeSelectFieldProps\n>((propsWithLayout, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(propsWithLayout);\n\n const dataAttributes = Object.fromEntries(\n Object.entries(componentProps).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n label,\n labelNode,\n hideLabel,\n placeholder,\n size,\n error,\n hint,\n moreInfo,\n labelAiMark,\n description,\n warning,\n required,\n disabled,\n readOnly,\n prefix,\n suffix,\n className,\n style,\n disableSearch,\n debounceMs = 200,\n searchValue: searchValueProp,\n onSearchChange,\n singleRow,\n maxChips,\n getChipProps,\n virtualize,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n displayMenuAs: displayMenuAsProp = \"auto\",\n } = componentProps;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const helperUid = useId();\n const moreInfoUid = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n warnDeprecatedErrorUsage(\"TreeSelectField\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n const hasHelperText = !!(hint || errorMessages || warning || description);\n const isSingleSelect = selectionMode === \"single\";\n // Single mode uses LEAF_ONLY/BRANCH_ONLY as click filters. Multi-select\n // always permits nonempty branches; BRANCH_ONLY blocks leaves and LEAF_ONLY\n // blocks empty branches.\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const isSearchControlled = searchValueProp !== undefined;\n const [internalSearchValue, setInternalSearchValue] = useState(\"\");\n const searchValue = isSearchControlled\n ? searchValueProp\n : internalSearchValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n if (!isSearchControlled) {\n setInternalSearchValue(v);\n }\n onSearchChange?.(v);\n },\n [isSearchControlled, onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const openMenu = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n loader.onOpen();\n }, [disabled, loader]);\n\n // The loader owns initial loading; this effect only handles later searches.\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to re-run when searchValue changes, not on loader reference changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value,\n onSelectedOptionsChange,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n closeMenuRef.current();\n inputRef.current?.focus();\n }, []);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(() => {\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n }, [handleSearchChange, resetLazyCascade]);\n\n useEffect(() => {\n closeMenuRef.current = closeMenu;\n }, [closeMenu]);\n\n useEffect(() => {\n if (disabled && isOpen) {\n closeMenu();\n }\n }, [disabled, isOpen, closeMenu]);\n\n const handleRemoveOption = useCallback(\n (option: TreeSelectFieldValue) => {\n const target = value.find((v) => v.id === option.id);\n // Disabled selected options are locked — chip close / keyboard removal\n // must not drop them from the value.\n if (target?.disabled) {\n return;\n }\n onSelectedOptionsChange(value.filter((v) => v.id !== option.id));\n },\n [value, onSelectedOptionsChange],\n );\n\n // Match string ids first so values such as \"003\" are not coerced to 3.\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const stringMatch = findNode(tree.nodes, nodeId);\n if (stringMatch) return stringMatch;\n const numId = Number(nodeId);\n return Number.isNaN(numId) ? undefined : findNode(tree.nodes, numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n if (isOpen) {\n e.stopPropagation();\n closeMenu();\n }\n return;\n }\n\n if (e.key === \"Tab\") {\n if (isOpen) closeMenu();\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n tree.onKeyDown(e);\n return;\n }\n\n if (\n e.key === \"Backspace\" &&\n !isSingleSelect &&\n !readOnly &&\n searchValue === \"\" &&\n value.length > 0\n ) {\n // Disabled selected options are locked and are skipped.\n const lastRemovable = [...value]\n .reverse()\n .find((option) => !option.disabled);\n if (lastRemovable) {\n handleRemoveOption(lastRemovable);\n }\n return;\n }\n\n if (isOpen) {\n // Route selection through lazy loading; preserve Space for search text.\n if (e.key === \"Enter\" || (e.key === \" \" && disableSearch)) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n // useTree expands branches but does not load their lazy children.\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n }\n },\n [\n isOpen,\n openMenu,\n closeMenu,\n isSingleSelect,\n readOnly,\n searchValue,\n value,\n handleRemoveOption,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (id: string | number) =>\n id === pendingToggleNodeId ? \"loading\" : tree.getCheckState(id),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown:\n handleInputKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n },\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n };\n\n const labelContent = (\n <FieldLabel\n el=\"label\"\n htmlFor={`${id}-input`}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n aiMark={labelAiMark}\n >\n {labelNode ?? label}\n </FieldLabel>\n );\n\n return (\n <div\n {...dataAttributes}\n data-anv=\"tree-select-field\"\n className={cx(triggerStyles[\"search-field\"], className)}\n style={{ ...layoutStyles, ...style }}\n >\n {hideLabel ? <SrOnly>{labelContent}</SrOnly> : labelContent}\n\n <TreeSelectFieldInput\n id={`${id}-input`}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow={singleRow}\n maxChips={maxChips}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n inputRef={inputRef}\n inputWrapperRef={inputWrapperRef}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n onWrapperClick={() => {\n if (!disabled) {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n inputRef.current?.focus();\n }\n }}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={disableSearch}\n comboboxProps={{\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? (true as const) : undefined,\n \"aria-activedescendant\": isOpen ? tree.activeDescendantId : undefined,\n onClick: disabled\n ? undefined\n : () => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n },\n }}\n />\n\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n\n {displayAs === \"dialog\" ? (\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen && !disabled}\n onClose={closeMenu}\n title={label}\n initialFocusResolver={(elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n }\n field={\n <TreeSelectFieldInput\n id={`${id}-dialog-input`}\n placeholder={placeholder}\n size=\"medium\"\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow\n maxChips={20}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={false}\n comboboxProps={{\n \"aria-activedescendant\": isOpen\n ? tree.activeDescendantId\n : undefined,\n }}\n />\n }\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsDialog>\n ) : (\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && !disabled}\n onClose={closeMenu}\n width=\"reference\"\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsPopover>\n )}\n </div>\n );\n});\n\nTreeSelectField.displayName = \"TreeSelectField\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectField } from \"./TreeSelectField\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"./internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectFieldSyncProps = Omit<\n TreeSelectFieldProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectFieldNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches. A function replaces that stage; the field still applies its\n * loaded-row substring filter.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectFieldNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectField}.\n * Filters `options` on the client and refreshes the field when they change.\n */\nexport const TreeSelectFieldSync = (props: TreeSelectFieldSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const fieldRef = useRef<TreeSelectFieldHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, options);\n\n return (\n <TreeSelectField\n ref={fieldRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectFieldSync.displayName = \"TreeSelectFieldSync\";\n"],"names":["Chevron_Right","id","triggerStyles"],"mappings":"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"}
1
+ {"version":3,"file":"TreeSelectFieldSync-1psUeqtG.js","sources":["../src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.tsx","../src/beta/components/TreeSelectField/TreeSelectField.tsx","../src/beta/components/TreeSelectField/TreeSelectFieldSync.tsx"],"sourcesContent":["import styles from \"./TreeSelectFieldInput.module.scss\";\nimport cx from \"classnames\";\nimport { Button } from \"../../../../components/Button\";\nimport { Chip } from \"../../../../components/Chip\";\nimport { Flex } from \"../../../../components/Flex\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport type { ReactElement, RefObject, KeyboardEvent, MouseEvent } from \"react\";\nimport { ANV_PART_ATTR } from \"../../../../internal/constants/anvParts\";\nimport type { TreeSelectFieldValue } from \"../types\";\nimport { PARTS } from \"../parts\";\nimport type { MultiSelectFieldChipProps } from \"../../../../components/MultiSelectField/types\";\nimport { useChipLayout } from \"../../../../components/MultiSelectField/internal/useChipLayout\";\n\nexport type TreeSelectFieldInputProps = {\n id?: string;\n placeholder?: string;\n size?: \"small\" | \"medium\" | \"large\";\n disabled?: boolean;\n readOnly?: boolean;\n error?: boolean;\n single?: boolean;\n singleRow?: boolean;\n maxChips?: number;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n selectedOptions: TreeSelectFieldValue[];\n onRemoveOption: (option: TreeSelectFieldValue) => void;\n getChipProps?: (value: TreeSelectFieldValue) => MultiSelectFieldChipProps;\n inputRef?: RefObject<HTMLInputElement>;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n searchValue?: string;\n onSearchChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onWrapperClick?: () => void;\n isOpen?: boolean;\n ariaControls?: string;\n disableSearch?: boolean;\n comboboxProps?: Record<string, unknown>;\n};\n\n/**\n * Renders the field trigger and toggle button. Multi-select search uses an\n * editable combobox; single-select or disabled search uses a read-only one.\n */\nexport const TreeSelectFieldInput = ({\n id,\n placeholder,\n size,\n disabled,\n readOnly,\n error,\n single,\n singleRow,\n maxChips,\n prefix,\n suffix,\n selectedOptions,\n onRemoveOption,\n getChipProps,\n inputRef,\n inputWrapperRef,\n searchValue,\n onSearchChange,\n onInputKeyDown,\n onWrapperClick,\n isOpen,\n ariaControls,\n disableSearch,\n comboboxProps,\n}: TreeSelectFieldInputProps) => {\n const { rowsRef, displayCount, hiddenCount } = useChipLayout({\n selectedOptionsLength: selectedOptions.length,\n singleRow,\n maxChips,\n });\n\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"disabled\"]]: disabled || readOnly,\n });\n\n const handleWrapperClick = (e: MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (target.closest(\"button\") || target.tagName === \"INPUT\") {\n return;\n }\n onWrapperClick?.();\n inputRef?.current?.focus();\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- Click-to-focus wrapper; nested controls own keyboard interaction.\n <div\n ref={inputWrapperRef}\n className={inputWrapperClassNames}\n onClick={handleWrapperClick}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n\n <div\n className={styles[\"rows-wrapper\"]}\n ref={rowsRef}\n data-single-row={singleRow || undefined}\n >\n {!single && selectedOptions.length > 0\n ? selectedOptions.slice(0, displayCount).map((option, index) => (\n <div\n key={`selected-item-${option.id}-${index}`}\n className={styles[\"chip-wrapper\"]}\n >\n <Chip\n {...getChipProps?.(option)}\n {...{ [ANV_PART_ATTR]: PARTS.chip }}\n label={option.label}\n onClose={\n disabled || readOnly || option.disabled\n ? undefined\n : () => onRemoveOption(option)\n }\n className={styles[\"chip\"]}\n title={option.label}\n />\n </div>\n ))\n : null}\n\n {hiddenCount > 0 ? (\n <div className={styles[\"chip-wrapper\"]}>\n <Chip\n label={`+${hiddenCount}`}\n className={styles[\"chip\"]}\n title={selectedOptions\n .slice(displayCount)\n .map((option) => option.label)\n .join(\", \")}\n {...{ [ANV_PART_ATTR]: PARTS.overflowChip }}\n />\n </div>\n ) : null}\n\n {!disableSearch && !single ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n value={searchValue}\n onChange={onSearchChange}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n\n {single || disableSearch ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n readOnly\n value={\n single && selectedOptions.length > 0\n ? selectedOptions[0].label\n : \"\"\n }\n disabled={disabled}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n </div>\n\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n\n <div className={styles[\"buttons-wrapper\"]}>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n icon={Chevron_Right}\n aria-label=\"toggle menu\"\n appearance=\"ghost\"\n size=\"small\"\n disabled={disabled}\n aria-expanded={isOpen}\n className={styles[\"toggle-button\"]}\n tabIndex={-1}\n {...{ [ANV_PART_ATTR]: PARTS.toggleButton }}\n onClick={() => {\n onWrapperClick?.();\n inputRef?.current?.focus();\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nTreeSelectFieldInput.displayName = \"TreeSelectFieldInput\";\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n TreeSelectFieldValue,\n} from \"./types\";\nimport type { DataAttributes } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks/useLayoutPropsUtil\";\nimport { warnDeprecatedErrorUsage } from \"../../../components/FieldMessage\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport { FieldLabel } from \"../../../components/FieldLabel\";\nimport { SrOnly } from \"../../../components/SrOnly\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { TreeSelectFieldInput } from \"./internal/TreeSelectFieldInput\";\nimport { useTreeLoader } from \"./internal/useTreeLoader\";\nimport { useTree } from \"./internal/useTree\";\nimport { TreeContent } from \"./internal/TreeContent\";\nimport { findNode } from \"./internal/treeUtils\";\nimport { useTreeLazyCascade } from \"./internal/useTreeLazyCascade\";\nimport triggerStyles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\n\n/**\n * Hierarchical select rendered in a popover or dialog.\n * Multi-select supports search; every mode uses a controlled value array.\n */\nexport const TreeSelectField = forwardRef<\n TreeSelectFieldHandle,\n TreeSelectFieldProps\n>((propsWithLayout, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(propsWithLayout);\n\n const dataAttributes = Object.fromEntries(\n Object.entries(componentProps).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n label,\n labelNode,\n hideLabel,\n placeholder,\n size,\n error,\n hint,\n moreInfo,\n labelAiMark,\n description,\n warning,\n required,\n disabled,\n readOnly,\n prefix,\n suffix,\n className,\n style,\n disableSearch,\n debounceMs = 200,\n searchValue: searchValueProp,\n onSearchChange,\n singleRow,\n maxChips,\n getChipProps,\n virtualize,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n displayMenuAs: displayMenuAsProp = \"auto\",\n } = componentProps;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const helperUid = useId();\n const moreInfoUid = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n warnDeprecatedErrorUsage(\"TreeSelectField\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n const hasHelperText = !!(hint || errorMessages || warning || description);\n const isSingleSelect = selectionMode === \"single\";\n // Single mode uses LEAF_ONLY/BRANCH_ONLY as click filters. Multi-select\n // always permits nonempty branches; BRANCH_ONLY blocks leaves and LEAF_ONLY\n // blocks empty branches.\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const isSearchControlled = searchValueProp !== undefined;\n const [internalSearchValue, setInternalSearchValue] = useState(\"\");\n const searchValue = isSearchControlled\n ? searchValueProp\n : internalSearchValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n if (!isSearchControlled) {\n setInternalSearchValue(v);\n }\n onSearchChange?.(v);\n },\n [isSearchControlled, onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const openMenu = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n loader.onOpen();\n }, [disabled, loader]);\n\n // The loader owns initial loading; this effect only handles later searches.\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to re-run when searchValue changes, not on loader reference changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value,\n onSelectedOptionsChange,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n closeMenuRef.current();\n inputRef.current?.focus();\n }, []);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(() => {\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n }, [handleSearchChange, resetLazyCascade]);\n\n useEffect(() => {\n closeMenuRef.current = closeMenu;\n }, [closeMenu]);\n\n useEffect(() => {\n if (disabled && isOpen) {\n closeMenu();\n }\n }, [disabled, isOpen, closeMenu]);\n\n const handleRemoveOption = useCallback(\n (option: TreeSelectFieldValue) => {\n const target = value.find((v) => v.id === option.id);\n // Disabled selected options are locked — chip close / keyboard removal\n // must not drop them from the value.\n if (target?.disabled) {\n return;\n }\n onSelectedOptionsChange(value.filter((v) => v.id !== option.id));\n },\n [value, onSelectedOptionsChange],\n );\n\n // Match string ids first so values such as \"003\" are not coerced to 3.\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const stringMatch = findNode(tree.nodes, nodeId);\n if (stringMatch) return stringMatch;\n const numId = Number(nodeId);\n return Number.isNaN(numId) ? undefined : findNode(tree.nodes, numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n if (isOpen) {\n e.stopPropagation();\n closeMenu();\n }\n return;\n }\n\n if (e.key === \"Tab\") {\n if (isOpen) closeMenu();\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n tree.onKeyDown(e);\n return;\n }\n\n if (\n e.key === \"Backspace\" &&\n !isSingleSelect &&\n !readOnly &&\n searchValue === \"\" &&\n value.length > 0\n ) {\n // Disabled selected options are locked and are skipped.\n const lastRemovable = [...value]\n .reverse()\n .find((option) => !option.disabled);\n if (lastRemovable) {\n handleRemoveOption(lastRemovable);\n }\n return;\n }\n\n if (isOpen) {\n // Route selection through lazy loading; preserve Space for search text.\n if (e.key === \"Enter\" || (e.key === \" \" && disableSearch)) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n // useTree expands branches but does not load their lazy children.\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n }\n },\n [\n isOpen,\n openMenu,\n closeMenu,\n isSingleSelect,\n readOnly,\n searchValue,\n value,\n handleRemoveOption,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (id: string | number) =>\n id === pendingToggleNodeId ? \"loading\" : tree.getCheckState(id),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown:\n handleInputKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n },\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n };\n\n const labelContent = (\n <FieldLabel\n el=\"label\"\n htmlFor={`${id}-input`}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n aiMark={labelAiMark}\n >\n {labelNode ?? label}\n </FieldLabel>\n );\n\n return (\n <div\n {...dataAttributes}\n data-anv=\"tree-select-field\"\n className={cx(triggerStyles[\"search-field\"], className)}\n style={{ ...layoutStyles, ...style }}\n >\n {hideLabel ? <SrOnly>{labelContent}</SrOnly> : labelContent}\n\n <TreeSelectFieldInput\n id={`${id}-input`}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow={singleRow}\n maxChips={maxChips}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n inputRef={inputRef}\n inputWrapperRef={inputWrapperRef}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n onWrapperClick={() => {\n if (!disabled) {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n inputRef.current?.focus();\n }\n }}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={disableSearch}\n comboboxProps={{\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? (true as const) : undefined,\n \"aria-activedescendant\": isOpen ? tree.activeDescendantId : undefined,\n onClick: disabled\n ? undefined\n : () => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n },\n }}\n />\n\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n\n {displayAs === \"dialog\" ? (\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen && !disabled}\n onClose={closeMenu}\n title={label}\n initialFocusResolver={(elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n }\n field={\n <TreeSelectFieldInput\n id={`${id}-dialog-input`}\n placeholder={placeholder}\n size=\"medium\"\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow\n maxChips={20}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={false}\n comboboxProps={{\n \"aria-activedescendant\": isOpen\n ? tree.activeDescendantId\n : undefined,\n }}\n />\n }\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsDialog>\n ) : (\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && !disabled}\n onClose={closeMenu}\n width=\"reference\"\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsPopover>\n )}\n </div>\n );\n});\n\nTreeSelectField.displayName = \"TreeSelectField\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectField } from \"./TreeSelectField\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"./internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectFieldSyncProps = Omit<\n TreeSelectFieldProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectFieldNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches. A function replaces that stage; the field still applies its\n * loaded-row substring filter.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectFieldNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectField}.\n * Filters `options` on the client and refreshes the field when they change.\n */\nexport const TreeSelectFieldSync = (props: TreeSelectFieldSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const fieldRef = useRef<TreeSelectFieldHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, options);\n\n return (\n <TreeSelectField\n ref={fieldRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectFieldSync.displayName = \"TreeSelectFieldSync\";\n"],"names":["Chevron_Right","id","triggerStyles"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- .anvil2 {/* BASE */._input-wrapper_5nu5i_2 {
1
+ .anvil2 {/* BASE */._input-wrapper_kzwd8_2 {
2
2
  --a2-mod-tree-select-field-input-height: calc(
3
3
  var(--a2-size-10, 2.5rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
4
4
  );
@@ -23,27 +23,27 @@
23
23
  padding-inline-end: var(--a2-mod-tree-select-field-input-padding-inline-end);
24
24
  padding-inline-start: var(--a2-size-3, 0.75rem);
25
25
  position: relative;
26
- }._input-wrapper_5nu5i_2:focus:not([disabled]), ._input-wrapper_5nu5i_2:focus-visible, ._input-wrapper_5nu5i_2:has(._input_5nu5i_2:focus-visible) {
26
+ }._input-wrapper_kzwd8_2:focus-visible, ._input-wrapper_kzwd8_2:has(._input_kzwd8_2:focus-visible) {
27
27
  outline-width: var(--a2-size-half, 0.125rem);
28
- }._input-wrapper_5nu5i_2:has(._input_5nu5i_2._error_5nu5i_31) {
28
+ }._input-wrapper_kzwd8_2:has(._input_kzwd8_2._error_kzwd8_31) {
29
29
  border-color: var(--a2-border-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-200, #ffac9e)));
30
- }._input-wrapper_5nu5i_2:focus:has(._input_5nu5i_2._error_5nu5i_31):not([disabled]), ._input-wrapper_5nu5i_2:focus-visible:has(._input_5nu5i_2._error_5nu5i_31), ._input-wrapper_5nu5i_2:has(._input_5nu5i_2._error_5nu5i_31:focus-visible) {
30
+ }._input-wrapper_kzwd8_2:focus-visible:has(._input_kzwd8_2._error_kzwd8_31), ._input-wrapper_kzwd8_2:has(._input_kzwd8_2._error_kzwd8_31:focus-visible) {
31
31
  outline-color: var(--a2-focus-ring-color-danger, var(--a2-status-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-400, #ff5b3d))));
32
32
  outline-width: var(--a2-size-half, 0.125rem);
33
- }._input-wrapper_5nu5i_2._disabled_5nu5i_38, ._input-wrapper_5nu5i_2[disabled], ._input-wrapper_5nu5i_2:has(._input_5nu5i_2:disabled) {
33
+ }._input-wrapper_kzwd8_2._disabled_kzwd8_38, ._input-wrapper_kzwd8_2[disabled], ._input-wrapper_kzwd8_2:has(._input_kzwd8_2:disabled) {
34
34
  opacity: 0.4;
35
- }._input-wrapper_5nu5i_2._disabled_5nu5i_38 *, ._input-wrapper_5nu5i_2[disabled] *, ._input-wrapper_5nu5i_2:has(._input_5nu5i_2:disabled) * {
35
+ }._input-wrapper_kzwd8_2._disabled_kzwd8_38 *, ._input-wrapper_kzwd8_2[disabled] *, ._input-wrapper_kzwd8_2:has(._input_kzwd8_2:disabled) * {
36
36
  cursor: not-allowed;
37
- }._input-wrapper_5nu5i_2[disabled], ._input-wrapper_5nu5i_2[readonly], ._input-wrapper_5nu5i_2._disabled_5nu5i_38 {
37
+ }._input-wrapper_kzwd8_2[disabled], ._input-wrapper_kzwd8_2[readonly], ._input-wrapper_kzwd8_2._disabled_kzwd8_38 {
38
38
  background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
39
- }._input-flex_5nu5i_48 {
39
+ }._input-flex_kzwd8_48 {
40
40
  flex: 1 1 var(--a2-mod-tree-select-field-input-min-width);
41
41
  min-width: var(--a2-mod-tree-select-field-input-min-width);
42
42
  overflow: hidden;
43
43
  text-overflow: ellipsis;
44
44
  white-space: nowrap;
45
45
  width: 0;
46
- }._input_5nu5i_2[type=text] {
46
+ }._input_kzwd8_2[type=text] {
47
47
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
48
48
  font-size: 100%;
49
49
  color: inherit;
@@ -64,22 +64,22 @@
64
64
  padding-inline: 0;
65
65
  transition: outline var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
66
66
  width: var(--a2-mod-tree-select-field-input-min-width);
67
- }._input_5nu5i_2[type=text]:focus {
67
+ }._input_kzwd8_2[type=text]:focus {
68
68
  box-shadow: none;
69
- }._input_5nu5i_2[type=text]::-moz-placeholder {
69
+ }._input_kzwd8_2[type=text]::-moz-placeholder {
70
70
  color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
71
- }._input_5nu5i_2[type=text]::placeholder {
71
+ }._input_kzwd8_2[type=text]::placeholder {
72
72
  color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
73
73
  }@media (prefers-reduced-motion: reduce) {
74
- ._input_5nu5i_2[type=text] {
74
+ ._input_kzwd8_2[type=text] {
75
75
  transition-duration: 0.01ms !important;
76
76
  transition-property: outline;
77
77
  }
78
- }input._input_5nu5i_2:-moz-read-only {
78
+ }input._input_kzwd8_2:-moz-read-only {
79
79
  background-color: inherit;
80
- }input._input_5nu5i_2:read-only {
80
+ }input._input_kzwd8_2:read-only {
81
81
  background-color: inherit;
82
- }._rows-wrapper_5nu5i_96 {
82
+ }._rows-wrapper_kzwd8_96 {
83
83
  align-items: stretch;
84
84
  display: flex;
85
85
  flex-direction: row;
@@ -88,22 +88,22 @@
88
88
  gap: 0 var(--a2-size-1, 0.25rem);
89
89
  max-width: 100%;
90
90
  width: 100%;
91
- }._rows-wrapper_5nu5i_96[data-single-row=true] {
91
+ }._rows-wrapper_kzwd8_96[data-single-row=true] {
92
92
  --a2-mod-tree-select-field-input-min-width: var(--a2-size-6, 1.5rem);
93
93
  max-height: var(--a2-mod-tree-select-field-input-height);
94
94
  overflow: hidden;
95
- }._rows-wrapper_5nu5i_96[data-single-row=true] ._input_5nu5i_2[type=text] {
95
+ }._rows-wrapper_kzwd8_96[data-single-row=true] ._input_kzwd8_2[type=text] {
96
96
  flex: 1 1 var(--a2-mod-tree-select-field-input-min-width);
97
97
  width: 100%;
98
- }._chip-wrapper_5nu5i_116 {
98
+ }._chip-wrapper_kzwd8_116 {
99
99
  align-items: center;
100
100
  display: flex;
101
101
  height: var(--a2-mod-tree-select-field-input-height);
102
102
  justify-content: center;
103
103
  max-width: 100%;
104
- }._chip_5nu5i_116 {
104
+ }._chip_kzwd8_116 {
105
105
  --a2-mod-chip-max-width: 100%;
106
- }._buttons-wrapper_5nu5i_128 {
106
+ }._buttons-wrapper_kzwd8_128 {
107
107
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
108
108
  font-size: 100%;
109
109
  color: inherit;
@@ -118,7 +118,7 @@
118
118
  inset-block-start: 0;
119
119
  inset-inline-end: 0;
120
120
  position: absolute;
121
- }._toggle-button-wrapper_5nu5i_145 {
121
+ }._toggle-button-wrapper_kzwd8_145 {
122
122
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
123
123
  font-size: 100%;
124
124
  color: inherit;
@@ -132,23 +132,24 @@
132
132
  align-items: center;
133
133
  cursor: pointer;
134
134
  display: flex;
135
- }._toggle-button_5nu5i_145 {
135
+ }._toggle-button_kzwd8_145 {
136
136
  --a2-mod-button-background-color: transparent;
137
137
  --a2-mod-button-foreground-color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
138
+ }._toggle-button_kzwd8_145 [data-anv=icon] {
138
139
  transform: rotate(90deg);
139
140
  transition: transform var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
140
- }._toggle-button_5nu5i_145[aria-expanded=true] {
141
- transform: rotate(270deg);
142
- }._toggle-button_5nu5i_145[data-interactive=hover]::before, ._toggle-button_5nu5i_145:hover::before, ._toggle-button_5nu5i_145:disabled:not(._loading-infinite_5nu5i_170, ._loading-progress_5nu5i_170), ._toggle-button_5nu5i_145._disabled_5nu5i_38:not(._loading-infinite_5nu5i_170, ._loading-progress_5nu5i_170), ._toggle-button_5nu5i_145[aria-disabled=true]:not(._loading-infinite_5nu5i_170, ._loading-progress_5nu5i_170) {
143
- --a2-mod-button-background-color: transparent;
144
141
  }@media (prefers-reduced-motion: reduce) {
145
- ._toggle-button_5nu5i_145 {
142
+ ._toggle-button_kzwd8_145 [data-anv=icon] {
146
143
  transition-duration: 0.01ms !important;
147
144
  }
148
- }[aria-expanded=true] ._toggle-button-wrapper_5nu5i_145 ._toggle-button_5nu5i_145 {
145
+ }._toggle-button_kzwd8_145[aria-expanded=true] [data-anv=icon] {
146
+ transform: rotate(270deg);
147
+ }._toggle-button_kzwd8_145[data-interactive=hover]::before, ._toggle-button_kzwd8_145:hover::before, ._toggle-button_kzwd8_145:disabled:not(._loading-infinite_kzwd8_177, ._loading-progress_kzwd8_177), ._toggle-button_kzwd8_145._disabled_kzwd8_38:not(._loading-infinite_kzwd8_177, ._loading-progress_kzwd8_177), ._toggle-button_kzwd8_145[aria-disabled=true]:not(._loading-infinite_kzwd8_177, ._loading-progress_kzwd8_177) {
148
+ --a2-mod-button-background-color: transparent;
149
+ }[aria-expanded=true] ._toggle-button-wrapper_kzwd8_145 ._toggle-button_kzwd8_145 [data-anv=icon] {
149
150
  transform: rotate(270deg);
150
- }._prefix_5nu5i_183,
151
- ._suffix_5nu5i_184 {
151
+ }._prefix_kzwd8_185,
152
+ ._suffix_kzwd8_186 {
152
153
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
153
154
  font-size: 100%;
154
155
  color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
@@ -164,16 +165,16 @@
164
165
  font-weight: var(--a2-font-weight-semibold, 600);
165
166
  justify-content: center;
166
167
  min-width: var(--a2-size-8, 2rem);
167
- }._prefix_5nu5i_183 {
168
+ }._prefix_kzwd8_185 {
168
169
  padding-inline-end: var(--a2-size-2, 0.5rem);
169
- }._suffix_5nu5i_184 {
170
+ }._suffix_kzwd8_186 {
170
171
  padding-inline-end: var(--a2-size-2, 0.5rem);
171
172
  padding-inline-start: var(--a2-size-2, 0.5rem);
172
- }/* MODIFIERS */._small_5nu5i_212 {
173
+ }/* MODIFIERS */._small_kzwd8_214 {
173
174
  --a2-mod-tree-select-field-input-height: calc(
174
175
  var(--a2-size-8, 2rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
175
176
  );
176
- }._large_5nu5i_218 {
177
+ }._large_kzwd8_220 {
177
178
  --a2-mod-tree-select-field-input-height: calc(
178
179
  var(--a2-size-12, 3rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
179
180
  );
@@ -1,2 +1,2 @@
1
- export { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-D2TvKxP-.js';
1
+ export { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-DIPSYUnE.js';
2
2
  //# sourceMappingURL=TreeSelectMenu.js.map
@@ -1,11 +1,11 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef, useId, useRef, useState, useCallback, useEffect, useImperativeHandle, useMemo } from 'react';
3
3
  import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
4
- import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-BD2VBpbK.js';
5
- import { M as MenuFooter } from './MenuFooter-D__gg92C.js';
4
+ import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-PweyDORd.js';
5
+ import { M as MenuFooter } from './MenuFooter-Dzhv0EfD.js';
6
6
  import { r as resolveConfirmation, u as useConfirmationDraft } from './confirmationTypes-DeRtO_Cw.js';
7
7
  import { a as arrayIdsEqual } from './arrayIdsEqual-DnevhwqN.js';
8
- import { u as useTreeLoader, a as useTree, b as useTreeLazyCascade, f as findNode, T as TreeContent, d as defaultTreeSyncFilter, t as toTreeSyncFilterFn, c as applyChildCounts } from './treeSync-B38r1dRQ.js';
8
+ import { u as useTreeLoader, a as useTree, b as useTreeLazyCascade, f as findNode, T as TreeContent, d as defaultTreeSyncFilter, t as toTreeSyncFilterFn, c as applyChildCounts } from './treeSync-BDwht_1r.js';
9
9
  import { S as SearchField } from './SearchField-ChoNtw8w.js';
10
10
 
11
11
  const PARTS = {
@@ -417,4 +417,4 @@ const TreeSelectMenuSync = (props) => {
417
417
  TreeSelectMenuSync.displayName = "TreeSelectMenuSync";
418
418
 
419
419
  export { TreeSelectMenuSync as T, TreeSelectMenu as a };
420
- //# sourceMappingURL=TreeSelectMenuSync-D2TvKxP-.js.map
420
+ //# sourceMappingURL=TreeSelectMenuSync-DIPSYUnE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSelectMenuSync-D2TvKxP-.js","sources":["../src/beta/components/TreeSelectMenu/parts.ts","../src/beta/components/TreeSelectMenu/TreeSelectMenu.tsx","../src/beta/components/TreeSelectMenu/TreeSelectMenuSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for TreeSelectMenu interactive sub-elements.\n *\n * Only the trigger and search input are owned here. Tree parts come from\n * TreeSelectField internals; shell and footer parts come from shared option\n * shells. Consumer `data-*` merges into the trigger bag because there is no\n * wrapper root.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n} as const;\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n type ChangeEvent,\n type KeyboardEvent,\n} from \"react\";\nimport type { TreeSelectMenuHandle, TreeSelectMenuProps } from \"./types\";\nimport type {\n TreeSelectFieldNode,\n TreeSelectFieldValue,\n} from \"../TreeSelectField/types\";\nimport { SearchField } from \"../../../components\";\nimport type { DataAttributes } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { MenuFooter } from \"../../../internal/components/MenuFooter/MenuFooter\";\nimport { useConfirmationDraft } from \"../../../internal/hooks/useConfirmationDraft\";\nimport { resolveConfirmation } from \"../../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../../internal/utils/arrayIdsEqual\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { useTreeLoader } from \"../TreeSelectField/internal/useTreeLoader\";\nimport { useTree } from \"../TreeSelectField/internal/useTree\";\nimport { TreeContent } from \"../TreeSelectField/internal/TreeContent\";\nimport { findNode } from \"../TreeSelectField/internal/treeUtils\";\nimport { useTreeLazyCascade } from \"../TreeSelectField/internal/useTreeLazyCascade\";\nimport { PARTS } from \"./parts\";\n\n/**\n * Searchable tree selection opened by a consumer-rendered trigger.\n * Supports async root/search loading and lazy branch loading in a popover or dialog.\n *\n * @example\n * <TreeSelectMenu\n * trigger={(triggerProps) => <Button {...triggerProps}>Select categories</Button>}\n * label=\"Categories\"\n * value={selected}\n * onSelectedOptionsChange={setSelected}\n * loadOptions={loadCategories}\n * />\n */\nexport const TreeSelectMenu = forwardRef<\n TreeSelectMenuHandle,\n TreeSelectMenuProps\n>((props, ref) => {\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n trigger,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n label,\n searchPlaceholder,\n displayMenuAs: displayMenuAsProp = \"auto\",\n virtualize,\n disableSearch,\n popoverWidth,\n debounceMs = 200,\n onSearchChange,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n confirmation: confirmationProp,\n clear,\n } = props;\n\n const confirmation = resolveConfirmation(confirmationProp);\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n const isSingleSelect = selectionMode === \"single\";\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const [inputValue, setInputValue] = useState(\"\");\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n setInputValue(v);\n onSearchChange?.(v);\n },\n [onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const pendingApplyRef = useRef(false);\n const {\n displayValue: draftValue,\n setDraft,\n apply,\n cancel,\n } = useConfirmationDraft<TreeSelectFieldValue[]>({\n value,\n onCommit: onSelectedOptionsChange,\n isOpen,\n enabled: confirmation.enabled,\n isEqual: arrayIdsEqual,\n });\n\n const openMenu = useCallback(() => {\n setIsOpen(true);\n loader.onOpen();\n }, [loader]);\n\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only re-run when searchValue changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value: draftValue,\n onSelectedOptionsChange: setDraft,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n // Auto-closing would discard the confirmation draft before Apply.\n if (confirmation.enabled) return;\n closeMenuRef.current();\n }, [confirmation.enabled]);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(\n (opts?: { restoreFocus?: boolean }) => {\n // Apply and Clear mark their closes as commits; every other close cancels.\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n\n const shouldRestoreFocus = opts?.restoreFocus ?? true;\n if (shouldRestoreFocus) {\n onExplicitClose?.();\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n });\n } else {\n onImplicitClose?.();\n }\n },\n [\n confirmation.enabled,\n cancel,\n handleSearchChange,\n resetLazyCascade,\n onImplicitClose,\n onExplicitClose,\n ],\n );\n\n useEffect(() => {\n closeMenuRef.current = () => closeMenu();\n }, [closeMenu]);\n\n const handleApply = useCallback(() => {\n apply();\n pendingApplyRef.current = true;\n closeMenu();\n }, [apply, closeMenu]);\n\n const handleCancel = useCallback(() => {\n closeMenu();\n }, [closeMenu]);\n\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const numId = Number(nodeId);\n return findNode(tree.nodes, Number.isNaN(numId) ? nodeId : numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleMenuKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === \"Escape\") {\n e.stopPropagation();\n closeMenu();\n return;\n }\n\n if (e.key === \"Tab\") {\n closeMenu({ restoreFocus: false });\n return;\n }\n\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n tree.onKeyDown(e);\n return;\n }\n\n if (e.key === \"Enter\" || (disableSearch && e.key === \" \")) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n },\n [\n onMenuKeyDown,\n closeMenu,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n }\n },\n [isOpen, openMenu],\n );\n\n const handleTriggerClick = useCallback(() => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [isOpen, openMenu, closeMenu]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n treePanelRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch]);\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const treePropsMerged = {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown: handleMenuKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n };\n\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (nodeId: string | number) =>\n nodeId === pendingToggleNodeId ? \"loading\" : tree.getCheckState(nodeId),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: treePropsMerged,\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n } as const;\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(e.target.value);\n },\n [handleSearchChange],\n );\n\n const handleSearchClear = useCallback(() => {\n handleSearchChange(\"\");\n }, [handleSearchChange]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={\n handleMenuKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={tree.activeDescendantId}\n aria-controls={`${id}-tree`}\n placeholder={searchPlaceholder}\n type=\"search\"\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n ) : null;\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const treeContent = (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n );\n\n const triggerProps = {\n ref: triggerRef,\n onClick: handleTriggerClick,\n onKeyDown: handleTriggerKeyDown,\n \"aria-haspopup\": \"tree\" as const,\n \"aria-controls\": `${id}-tree`,\n \"aria-expanded\": isOpen,\n \"data-state\": (isOpen ? \"open\" : \"close\") as \"open\" | \"close\",\n ...dataAttributes,\n [ANV_PART_ATTR]: PARTS.trigger,\n };\n\n const confirmationConfig = confirmation.enabled\n ? {\n applyLabel: confirmation.applyLabel,\n cancelLabel: confirmation.cancelLabel,\n onApply: handleApply,\n onCancel: handleCancel,\n }\n : undefined;\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n if (confirmation.enabled) pendingApplyRef.current = true;\n closeMenu();\n },\n }\n : undefined;\n // An empty MenuFooter still draws the shell's footer divider.\n const hasFooter = !!wrappedClear || !!confirmationConfig;\n const footer = hasFooter ? (\n <MenuFooter clear={wrappedClear} confirmation={confirmationConfig} />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={() => closeMenu()}\n title={label}\n field={searchInput ?? undefined}\n footer={footer}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n {isOpen ? treeContent : null}\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer}\n >\n {searchInput}\n {isOpen ? treeContent : null}\n </OptionsPopover>\n </>\n );\n});\n\nTreeSelectMenu.displayName = \"TreeSelectMenu\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectMenu } from \"./TreeSelectMenu\";\nimport type {\n TreeSelectMenuHandle,\n TreeSelectMenuNode,\n TreeSelectMenuProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"../TreeSelectField/internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectMenuSyncProps = Omit<\n TreeSelectMenuProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectMenuNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches; a function replaces that behavior.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectMenuNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectMenu}.\n * Filters `options` on the client and refreshes the menu when they change.\n */\nexport const TreeSelectMenuSync = (props: TreeSelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n // Full-tree counts keep filtered branches from appearing fully selected.\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const menuRef = useRef<TreeSelectMenuHandle>(null);\n useInvalidateOnOptionsChange(menuRef, options);\n\n return (\n <TreeSelectMenu\n ref={menuRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectMenuSync.displayName = \"TreeSelectMenuSync\";\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeSelectMenuSync-DIPSYUnE.js","sources":["../src/beta/components/TreeSelectMenu/parts.ts","../src/beta/components/TreeSelectMenu/TreeSelectMenu.tsx","../src/beta/components/TreeSelectMenu/TreeSelectMenuSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for TreeSelectMenu interactive sub-elements.\n *\n * Only the trigger and search input are owned here. Tree parts come from\n * TreeSelectField internals; shell and footer parts come from shared option\n * shells. Consumer `data-*` merges into the trigger bag because there is no\n * wrapper root.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n} as const;\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n type ChangeEvent,\n type KeyboardEvent,\n} from \"react\";\nimport type { TreeSelectMenuHandle, TreeSelectMenuProps } from \"./types\";\nimport type {\n TreeSelectFieldNode,\n TreeSelectFieldValue,\n} from \"../TreeSelectField/types\";\nimport { SearchField } from \"../../../components\";\nimport type { DataAttributes } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { MenuFooter } from \"../../../internal/components/MenuFooter/MenuFooter\";\nimport { useConfirmationDraft } from \"../../../internal/hooks/useConfirmationDraft\";\nimport { resolveConfirmation } from \"../../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../../internal/utils/arrayIdsEqual\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { useTreeLoader } from \"../TreeSelectField/internal/useTreeLoader\";\nimport { useTree } from \"../TreeSelectField/internal/useTree\";\nimport { TreeContent } from \"../TreeSelectField/internal/TreeContent\";\nimport { findNode } from \"../TreeSelectField/internal/treeUtils\";\nimport { useTreeLazyCascade } from \"../TreeSelectField/internal/useTreeLazyCascade\";\nimport { PARTS } from \"./parts\";\n\n/**\n * Searchable tree selection opened by a consumer-rendered trigger.\n * Supports async root/search loading and lazy branch loading in a popover or dialog.\n *\n * @example\n * <TreeSelectMenu\n * trigger={(triggerProps) => <Button {...triggerProps}>Select categories</Button>}\n * label=\"Categories\"\n * value={selected}\n * onSelectedOptionsChange={setSelected}\n * loadOptions={loadCategories}\n * />\n */\nexport const TreeSelectMenu = forwardRef<\n TreeSelectMenuHandle,\n TreeSelectMenuProps\n>((props, ref) => {\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n trigger,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n label,\n searchPlaceholder,\n displayMenuAs: displayMenuAsProp = \"auto\",\n virtualize,\n disableSearch,\n popoverWidth,\n debounceMs = 200,\n onSearchChange,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n confirmation: confirmationProp,\n clear,\n } = props;\n\n const confirmation = resolveConfirmation(confirmationProp);\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n const isSingleSelect = selectionMode === \"single\";\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const [inputValue, setInputValue] = useState(\"\");\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n setInputValue(v);\n onSearchChange?.(v);\n },\n [onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const pendingApplyRef = useRef(false);\n const {\n displayValue: draftValue,\n setDraft,\n apply,\n cancel,\n } = useConfirmationDraft<TreeSelectFieldValue[]>({\n value,\n onCommit: onSelectedOptionsChange,\n isOpen,\n enabled: confirmation.enabled,\n isEqual: arrayIdsEqual,\n });\n\n const openMenu = useCallback(() => {\n setIsOpen(true);\n loader.onOpen();\n }, [loader]);\n\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only re-run when searchValue changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value: draftValue,\n onSelectedOptionsChange: setDraft,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n // Auto-closing would discard the confirmation draft before Apply.\n if (confirmation.enabled) return;\n closeMenuRef.current();\n }, [confirmation.enabled]);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(\n (opts?: { restoreFocus?: boolean }) => {\n // Apply and Clear mark their closes as commits; every other close cancels.\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n\n const shouldRestoreFocus = opts?.restoreFocus ?? true;\n if (shouldRestoreFocus) {\n onExplicitClose?.();\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n });\n } else {\n onImplicitClose?.();\n }\n },\n [\n confirmation.enabled,\n cancel,\n handleSearchChange,\n resetLazyCascade,\n onImplicitClose,\n onExplicitClose,\n ],\n );\n\n useEffect(() => {\n closeMenuRef.current = () => closeMenu();\n }, [closeMenu]);\n\n const handleApply = useCallback(() => {\n apply();\n pendingApplyRef.current = true;\n closeMenu();\n }, [apply, closeMenu]);\n\n const handleCancel = useCallback(() => {\n closeMenu();\n }, [closeMenu]);\n\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const numId = Number(nodeId);\n return findNode(tree.nodes, Number.isNaN(numId) ? nodeId : numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleMenuKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === \"Escape\") {\n e.stopPropagation();\n closeMenu();\n return;\n }\n\n if (e.key === \"Tab\") {\n closeMenu({ restoreFocus: false });\n return;\n }\n\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n tree.onKeyDown(e);\n return;\n }\n\n if (e.key === \"Enter\" || (disableSearch && e.key === \" \")) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n },\n [\n onMenuKeyDown,\n closeMenu,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n }\n },\n [isOpen, openMenu],\n );\n\n const handleTriggerClick = useCallback(() => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [isOpen, openMenu, closeMenu]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n treePanelRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch]);\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const treePropsMerged = {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown: handleMenuKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n };\n\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (nodeId: string | number) =>\n nodeId === pendingToggleNodeId ? \"loading\" : tree.getCheckState(nodeId),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: treePropsMerged,\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n } as const;\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(e.target.value);\n },\n [handleSearchChange],\n );\n\n const handleSearchClear = useCallback(() => {\n handleSearchChange(\"\");\n }, [handleSearchChange]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={\n handleMenuKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={tree.activeDescendantId}\n aria-controls={`${id}-tree`}\n placeholder={searchPlaceholder}\n type=\"search\"\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n ) : null;\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const treeContent = (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n );\n\n const triggerProps = {\n ref: triggerRef,\n onClick: handleTriggerClick,\n onKeyDown: handleTriggerKeyDown,\n \"aria-haspopup\": \"tree\" as const,\n \"aria-controls\": `${id}-tree`,\n \"aria-expanded\": isOpen,\n \"data-state\": (isOpen ? \"open\" : \"close\") as \"open\" | \"close\",\n ...dataAttributes,\n [ANV_PART_ATTR]: PARTS.trigger,\n };\n\n const confirmationConfig = confirmation.enabled\n ? {\n applyLabel: confirmation.applyLabel,\n cancelLabel: confirmation.cancelLabel,\n onApply: handleApply,\n onCancel: handleCancel,\n }\n : undefined;\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n if (confirmation.enabled) pendingApplyRef.current = true;\n closeMenu();\n },\n }\n : undefined;\n // An empty MenuFooter still draws the shell's footer divider.\n const hasFooter = !!wrappedClear || !!confirmationConfig;\n const footer = hasFooter ? (\n <MenuFooter clear={wrappedClear} confirmation={confirmationConfig} />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={() => closeMenu()}\n title={label}\n field={searchInput ?? undefined}\n footer={footer}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n {isOpen ? treeContent : null}\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer}\n >\n {searchInput}\n {isOpen ? treeContent : null}\n </OptionsPopover>\n </>\n );\n});\n\nTreeSelectMenu.displayName = \"TreeSelectMenu\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectMenu } from \"./TreeSelectMenu\";\nimport type {\n TreeSelectMenuHandle,\n TreeSelectMenuNode,\n TreeSelectMenuProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"../TreeSelectField/internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectMenuSyncProps = Omit<\n TreeSelectMenuProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectMenuNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches; a function replaces that behavior.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectMenuNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectMenu}.\n * Filters `options` on the client and refreshes the menu when they change.\n */\nexport const TreeSelectMenuSync = (props: TreeSelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n // Full-tree counts keep filtered branches from appearing fully selected.\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const menuRef = useRef<TreeSelectMenuHandle>(null);\n useInvalidateOnOptionsChange(menuRef, options);\n\n return (\n <TreeSelectMenu\n ref={menuRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectMenuSync.displayName = \"TreeSelectMenuSync\";\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { forwardRef, useState, useRef, useId, useLayoutEffect, useCallback, useEffect } from 'react';
3
- import { P as Popover } from './Popover-CIh1CsoJ.js';
3
+ import { P as Popover } from './Popover-B2ix8Ji4.js';
4
4
  import { S as Spinner } from './Spinner-B7tTWcP6.js';
5
- import { T as TextField } from './TextField-Bxd-Qzoi.js';
5
+ import { T as TextField } from './TextField-DGRVg_Cw.js';
6
6
  import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
7
7
  import { c as cx } from './index-De1g9FRV.js';
8
8
  import { m as menuStyles } from './Menu.module-CMDgSO9k.js';
@@ -307,4 +307,4 @@ function TypeaheadTextField({
307
307
  TypeaheadTextField.displayName = "TypeaheadTextField";
308
308
 
309
309
  export { TypeaheadTextField as T };
310
- //# sourceMappingURL=TypeaheadTextField-DgazozK7.js.map
310
+ //# sourceMappingURL=TypeaheadTextField-Di9ulOBl.js.map