@servicetitan/anvil2 2.0.2 → 2.0.3

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 (273) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{Alert-DREZhnU9.js → Alert-DXoEusod.js} +4 -4
  3. package/dist/{Alert-DREZhnU9.js.map → Alert-DXoEusod.js.map} +1 -1
  4. package/dist/Alert.js +1 -1
  5. package/dist/{Announcement-CRaUI73J.js → Announcement-SAypScAu.js} +4 -4
  6. package/dist/{Announcement-CRaUI73J.js.map → Announcement-SAypScAu.js.map} +1 -1
  7. package/dist/Announcement.js +1 -1
  8. package/dist/{AnvilProvider-bEeSKwNj.js → AnvilProvider-C3pjoStP.js} +4 -4
  9. package/dist/{AnvilProvider-bEeSKwNj.js.map → AnvilProvider-C3pjoStP.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Avatar-DQN2dNgB.js → Avatar-COMPK7Ym.js} +2 -2
  12. package/dist/{Avatar-DQN2dNgB.js.map → Avatar-COMPK7Ym.js.map} +1 -1
  13. package/dist/{Avatar-B4RLfLCS.js → Avatar-DShevhcs.js} +2 -2
  14. package/dist/{Avatar-B4RLfLCS.js.map → Avatar-DShevhcs.js.map} +1 -1
  15. package/dist/Avatar.js +2 -2
  16. package/dist/{Badge-BrysDYfx.js → Badge-CS-CwcOQ.js} +2 -2
  17. package/dist/{Badge-BrysDYfx.js.map → Badge-CS-CwcOQ.js.map} +1 -1
  18. package/dist/Badge.js +1 -1
  19. package/dist/{Breadcrumbs-CsVxbt4N.js → Breadcrumbs-CEVH4s23.js} +5 -5
  20. package/dist/{Breadcrumbs-CsVxbt4N.js.map → Breadcrumbs-CEVH4s23.js.map} +1 -1
  21. package/dist/Breadcrumbs.js +1 -1
  22. package/dist/{Button-B__Q1BA5.js → Button-l7pTJdPc.js} +3 -3
  23. package/dist/{Button-B__Q1BA5.js.map → Button-l7pTJdPc.js.map} +1 -1
  24. package/dist/Button.js +1 -1
  25. package/dist/{ButtonCompound-BB_WRzP4.js → ButtonCompound-CX2kHgWe.js} +2 -2
  26. package/dist/{ButtonCompound-BB_WRzP4.js.map → ButtonCompound-CX2kHgWe.js.map} +1 -1
  27. package/dist/ButtonCompound.js +1 -1
  28. package/dist/{ButtonLink-Dy0nfK_C.js → ButtonLink-CRlyK750.js} +3 -3
  29. package/dist/{ButtonLink-Dy0nfK_C.js.map → ButtonLink-CRlyK750.js.map} +1 -1
  30. package/dist/ButtonLink.js +1 -1
  31. package/dist/{ButtonToggle-DVwe4l6m.js → ButtonToggle-BOVP_jEN.js} +3 -3
  32. package/dist/{ButtonToggle-DVwe4l6m.js.map → ButtonToggle-BOVP_jEN.js.map} +1 -1
  33. package/dist/ButtonToggle.js +1 -1
  34. package/dist/{Calendar-BO9QiBJG.js → Calendar-BTr5I3t-.js} +2 -2
  35. package/dist/{Calendar-BO9QiBJG.js.map → Calendar-BTr5I3t-.js.map} +1 -1
  36. package/dist/{Calendar-BFWJ7Rlq.js → Calendar-DUGQQkga.js} +5 -5
  37. package/dist/{Calendar-BFWJ7Rlq.js.map → Calendar-DUGQQkga.js.map} +1 -1
  38. package/dist/Calendar.js +2 -2
  39. package/dist/{Card-TovA8Io5.js → Card-DDH7gI8m.js} +2 -2
  40. package/dist/{Card-TovA8Io5.js.map → Card-DDH7gI8m.js.map} +1 -1
  41. package/dist/Card.js +1 -1
  42. package/dist/{Checkbox-BrIThtCS.js → Checkbox-9VbydUcM.js} +6 -6
  43. package/dist/{Checkbox-BrIThtCS.js.map → Checkbox-9VbydUcM.js.map} +1 -1
  44. package/dist/{Checkbox-Igz3R72o.js → Checkbox-ZXftLNwB.js} +2 -2
  45. package/dist/{Checkbox-Igz3R72o.js.map → Checkbox-ZXftLNwB.js.map} +1 -1
  46. package/dist/Checkbox.js +1 -1
  47. package/dist/{Chip-U9Ly2Ykq.js → Chip-Bc7jiIJ1.js} +4 -4
  48. package/dist/{Chip-U9Ly2Ykq.js.map → Chip-Bc7jiIJ1.js.map} +1 -1
  49. package/dist/Chip.js +1 -1
  50. package/dist/{Combobox-OUK7p5gp.js → Combobox-CNObHLjp.js} +9 -9
  51. package/dist/{Combobox-OUK7p5gp.js.map → Combobox-CNObHLjp.js.map} +1 -1
  52. package/dist/Combobox.js +1 -1
  53. package/dist/{DataTable-BPJeSvOx.js → DataTable-CQpySyDq.js} +154 -29
  54. package/dist/DataTable-CQpySyDq.js.map +1 -0
  55. package/dist/{DateFieldRange-CanMYRgZ.js → DateFieldRange-Cfnw1Chk.js} +5 -5
  56. package/dist/{DateFieldRange-CanMYRgZ.js.map → DateFieldRange-Cfnw1Chk.js.map} +1 -1
  57. package/dist/DateFieldRange.js +1 -1
  58. package/dist/{DateFieldSingle-CShe2aHZ.js → DateFieldSingle-BRuERJAl.js} +5 -5
  59. package/dist/{DateFieldSingle-CShe2aHZ.js.map → DateFieldSingle-BRuERJAl.js.map} +1 -1
  60. package/dist/DateFieldSingle.js +1 -1
  61. package/dist/{DateFieldYearless-MBQ233Xa.js → DateFieldYearless-Dw1k3_PY.js} +5 -5
  62. package/dist/{DateFieldYearless-MBQ233Xa.js.map → DateFieldYearless-Dw1k3_PY.js.map} +1 -1
  63. package/dist/DateFieldYearless.js +1 -1
  64. package/dist/{DateFieldYearlessRange-BBtaFzsE.js → DateFieldYearlessRange--plyld10.js} +6 -6
  65. package/dist/{DateFieldYearlessRange-BBtaFzsE.js.map → DateFieldYearlessRange--plyld10.js.map} +1 -1
  66. package/dist/DateFieldYearlessRange.js +1 -1
  67. package/dist/{DaysOfTheWeek-DOsJyEdk.js → DaysOfTheWeek-vE310Rjp.js} +6 -6
  68. package/dist/{DaysOfTheWeek-DOsJyEdk.js.map → DaysOfTheWeek-vE310Rjp.js.map} +1 -1
  69. package/dist/DaysOfTheWeek.js +1 -1
  70. package/dist/{Details-D_Iil6qI.js → Details-BF0-a1by.js} +3 -3
  71. package/dist/{Details-D_Iil6qI.js.map → Details-BF0-a1by.js.map} +1 -1
  72. package/dist/Details.js +1 -1
  73. package/dist/{Dialog-3pjJJiED.js → Dialog-DZPaz84r.js} +7 -6
  74. package/dist/{Dialog-3pjJJiED.js.map → Dialog-DZPaz84r.js.map} +1 -1
  75. package/dist/Dialog.js +1 -1
  76. package/dist/{DialogCancelButton-D0r_OFKS.js → DialogCancelButton-GuN5lgR-.js} +2 -2
  77. package/dist/{DialogCancelButton-D0r_OFKS.js.map → DialogCancelButton-GuN5lgR-.js.map} +1 -1
  78. package/dist/DialogContext-DBgtApl9.js.map +1 -1
  79. package/dist/{Divider-CJvAnDYV.js → Divider-De04mOU6.js} +2 -2
  80. package/dist/{Divider-CJvAnDYV.js.map → Divider-De04mOU6.js.map} +1 -1
  81. package/dist/Divider.js +1 -1
  82. package/dist/Dnd.js +1 -1
  83. package/dist/DndSort.js +17 -7
  84. package/dist/DndSort.js.map +1 -1
  85. package/dist/{Drawer-BPPWM11Z.js → Drawer-pMQOa2jH.js} +9 -10
  86. package/dist/Drawer-pMQOa2jH.js.map +1 -0
  87. package/dist/Drawer.js +1 -1
  88. package/dist/DrawerContext-BSpnzXVZ.js +6 -0
  89. package/dist/DrawerContext-BSpnzXVZ.js.map +1 -0
  90. package/dist/DrillDown.js +1 -1
  91. package/dist/{EditCard-DgHXddkx.js → EditCard-DAiE-Hsc.js} +6 -6
  92. package/dist/{EditCard-DgHXddkx.js.map → EditCard-DAiE-Hsc.js.map} +1 -1
  93. package/dist/EditCard.js +1 -1
  94. package/dist/{FieldDialog-NcMR2ATl.js → FieldDialog-Be54L3E-.js} +381 -18
  95. package/dist/FieldDialog-Be54L3E-.js.map +1 -0
  96. package/dist/FieldDialog.css +22 -5
  97. package/dist/{FieldLabel-EjKzPf0f.js → FieldLabel-DSrHbw9U.js} +3 -3
  98. package/dist/{FieldLabel-EjKzPf0f.js.map → FieldLabel-DSrHbw9U.js.map} +1 -1
  99. package/dist/FieldLabel.js +1 -1
  100. package/dist/{FieldMessage-CRNo4fd5.js → FieldMessage-tEr6rWXS.js} +2 -2
  101. package/dist/{FieldMessage-CRNo4fd5.js.map → FieldMessage-tEr6rWXS.js.map} +1 -1
  102. package/dist/FieldMessage.js +1 -1
  103. package/dist/{Flex-DKS51qTf.js → Flex-CUtXN-C0.js} +2 -2
  104. package/dist/{Flex-DKS51qTf.js.map → Flex-CUtXN-C0.js.map} +1 -1
  105. package/dist/Flex.js +1 -1
  106. package/dist/{Grid-BUmKiLhz.js → Grid-CatFkT0X.js} +2 -2
  107. package/dist/{Grid-BUmKiLhz.js.map → Grid-CatFkT0X.js.map} +1 -1
  108. package/dist/Grid.js +1 -1
  109. package/dist/{Helper-xZuAxaI0.js → Helper-CK-XjpR3.js} +2 -2
  110. package/dist/{Helper-xZuAxaI0.js.map → Helper-CK-XjpR3.js.map} +1 -1
  111. package/dist/{Icon-BckjFkbw.js → Icon-Bcil6aBo.js} +2 -2
  112. package/dist/{Icon-BckjFkbw.js.map → Icon-Bcil6aBo.js.map} +1 -1
  113. package/dist/Icon.js +1 -1
  114. package/dist/{InputMask-DS9TWqfO.js → InputMask-DoqWRi3t.js} +2 -2
  115. package/dist/{InputMask-DS9TWqfO.js.map → InputMask-DoqWRi3t.js.map} +1 -1
  116. package/dist/InputMask.js +1 -1
  117. package/dist/{InteractiveCard-CvX95yR4.js → InteractiveCard-OszQGxGw.js} +2 -2
  118. package/dist/{InteractiveCard-CvX95yR4.js.map → InteractiveCard-OszQGxGw.js.map} +1 -1
  119. package/dist/InteractiveCard.js +1 -1
  120. package/dist/{Link-DT8scNJ-.js → Link-B3reiL5f.js} +3 -3
  121. package/dist/{Link-DT8scNJ-.js.map → Link-B3reiL5f.js.map} +1 -1
  122. package/dist/Link.js +1 -1
  123. package/dist/{LinkButton-BMce3lWm.js → LinkButton-D62f2os3.js} +2 -2
  124. package/dist/{LinkButton-BMce3lWm.js.map → LinkButton-D62f2os3.js.map} +1 -1
  125. package/dist/LinkButton.js +1 -1
  126. package/dist/{ListView-CRDUPrbQ.js → ListView-CtRhYAls.js} +3 -3
  127. package/dist/{ListView-CRDUPrbQ.js.map → ListView-CtRhYAls.js.map} +1 -1
  128. package/dist/ListView.js +1 -1
  129. package/dist/{Listbox-BFT6SBf3.js → Listbox-DMyxIokT.js} +5 -5
  130. package/dist/{Listbox-BFT6SBf3.js.map → Listbox-DMyxIokT.js.map} +1 -1
  131. package/dist/Listbox.js +1 -1
  132. package/dist/{LocalizationProvider-u6xdKCBi.js → LocalizationProvider-ay-XWdlo.js} +2 -2
  133. package/dist/{LocalizationProvider-u6xdKCBi.js.map → LocalizationProvider-ay-XWdlo.js.map} +1 -1
  134. package/dist/LocalizationProvider.js +1 -1
  135. package/dist/{Menu-Dh0q__vE.js → Menu-3LIfRdTk.js} +3 -3
  136. package/dist/{Menu-Dh0q__vE.js.map → Menu-3LIfRdTk.js.map} +1 -1
  137. package/dist/Menu.js +1 -1
  138. package/dist/MultiSelectField.js +1 -1
  139. package/dist/{MultiSelectFieldSync-7nxS5Fdi.js → MultiSelectFieldSync-xj7jXas-.js} +120 -94
  140. package/dist/MultiSelectFieldSync-xj7jXas-.js.map +1 -0
  141. package/dist/{NumberField-Dmm1YQNn.js → NumberField-W1k8V5Qq.js} +6 -6
  142. package/dist/{NumberField-Dmm1YQNn.js.map → NumberField-W1k8V5Qq.js.map} +1 -1
  143. package/dist/NumberField.js +1 -1
  144. package/dist/Overflow.js +2 -2
  145. package/dist/{Page-C5nExhiH.js → Page-vc7zs4tn.js} +16 -16
  146. package/dist/{Page-C5nExhiH.js.map → Page-vc7zs4tn.js.map} +1 -1
  147. package/dist/Page.js +1 -1
  148. package/dist/{Pagination-CimQTC7M.js → Pagination-DIatYUXX.js} +7 -7
  149. package/dist/{Pagination-CimQTC7M.js.map → Pagination-DIatYUXX.js.map} +1 -1
  150. package/dist/Pagination.js +1 -1
  151. package/dist/{Popover-CJLSDpgR.js → Popover-OOLK0hUz.js} +2 -2
  152. package/dist/{Popover-CJLSDpgR.js.map → Popover-OOLK0hUz.js.map} +1 -1
  153. package/dist/Popover.js +1 -1
  154. package/dist/{ProgressBar-CSkAu2F4.js → ProgressBar-HA9RPZfC.js} +6 -6
  155. package/dist/{ProgressBar-CSkAu2F4.js.map → ProgressBar-HA9RPZfC.js.map} +1 -1
  156. package/dist/ProgressBar.js +1 -1
  157. package/dist/{Radio-CRv09Kbt.js → Radio-31wKzlZ4.js} +6 -6
  158. package/dist/{Radio-CRv09Kbt.js.map → Radio-31wKzlZ4.js.map} +1 -1
  159. package/dist/{Radio-D_8PAnkC.js → Radio-BwWDJuLF.js} +2 -2
  160. package/dist/{Radio-D_8PAnkC.js.map → Radio-BwWDJuLF.js.map} +1 -1
  161. package/dist/Radio.js +1 -1
  162. package/dist/{SearchField-0DZvPwPZ.js → SearchField-CoeaOip5.js} +3 -3
  163. package/dist/{SearchField-0DZvPwPZ.js.map → SearchField-CoeaOip5.js.map} +1 -1
  164. package/dist/SearchField.js +1 -1
  165. package/dist/{SegmentedControl-CMBQf7uo.js → SegmentedControl-CzTtiYS9.js} +3 -3
  166. package/dist/{SegmentedControl-CMBQf7uo.js.map → SegmentedControl-CzTtiYS9.js.map} +1 -1
  167. package/dist/SegmentedControl.js +1 -1
  168. package/dist/{SelectCard-B9RLpwtX.js → SelectCard-C91twG1S.js} +5 -5
  169. package/dist/{SelectCard-B9RLpwtX.js.map → SelectCard-C91twG1S.js.map} +1 -1
  170. package/dist/SelectCard.js +1 -1
  171. package/dist/SelectField.js +1 -1
  172. package/dist/{SelectFieldSync-BsDUUM84.js → SelectFieldSync-BFsJssdD.js} +163 -96
  173. package/dist/SelectFieldSync-BFsJssdD.js.map +1 -0
  174. package/dist/{SelectTrigger-DVLdDbfd.js → SelectTrigger-Cxhx9IVo.js} +5 -5
  175. package/dist/{SelectTrigger-DVLdDbfd.js.map → SelectTrigger-Cxhx9IVo.js.map} +1 -1
  176. package/dist/SelectTrigger.js +1 -1
  177. package/dist/{SelectTriggerBase-B3vw_qnJ.js → SelectTriggerBase-aaOWep-V.js} +6 -6
  178. package/dist/{SelectTriggerBase-B3vw_qnJ.js.map → SelectTriggerBase-aaOWep-V.js.map} +1 -1
  179. package/dist/{SideNav-DzcESFKB.js → SideNav-CbMGsIPM.js} +3 -3
  180. package/dist/{SideNav-DzcESFKB.js.map → SideNav-CbMGsIPM.js.map} +1 -1
  181. package/dist/SideNav.js +1 -1
  182. package/dist/Skeleton.js +1 -1
  183. package/dist/{Stepper-DXL6Ikux.js → Stepper-Jv9A3Ned.js} +5 -5
  184. package/dist/{Stepper-DXL6Ikux.js.map → Stepper-Jv9A3Ned.js.map} +1 -1
  185. package/dist/Stepper.js +1 -1
  186. package/dist/{Switch-CkZm45S3.js → Switch-DQICcdAv.js} +5 -5
  187. package/dist/{Switch-CkZm45S3.js.map → Switch-DQICcdAv.js.map} +1 -1
  188. package/dist/Switch.js +1 -1
  189. package/dist/{Tab-8a1qCMFA.js → Tab-CeXt6A_D.js} +4 -4
  190. package/dist/{Tab-8a1qCMFA.js.map → Tab-CeXt6A_D.js.map} +1 -1
  191. package/dist/Tab.js +1 -1
  192. package/dist/Table.js +1 -1
  193. package/dist/{Text-rR4bxNLd.js → Text-DhheKsns.js} +2 -2
  194. package/dist/{Text-rR4bxNLd.js.map → Text-DhheKsns.js.map} +1 -1
  195. package/dist/Text.js +1 -1
  196. package/dist/{TextField-Bm9ElAU1.js → TextField-CDiiYSlT.js} +4 -4
  197. package/dist/{TextField-Bm9ElAU1.js.map → TextField-CDiiYSlT.js.map} +1 -1
  198. package/dist/{TextField-B_ciNx06.js → TextField-CnYxS52Y.js} +2 -2
  199. package/dist/{TextField-B_ciNx06.js.map → TextField-CnYxS52Y.js.map} +1 -1
  200. package/dist/TextField.js +1 -1
  201. package/dist/{Textarea-stXDixWH.js → Textarea-BnHIDj2P.js} +4 -4
  202. package/dist/{Textarea-stXDixWH.js.map → Textarea-BnHIDj2P.js.map} +1 -1
  203. package/dist/Textarea.js +1 -1
  204. package/dist/{ThemeProvider-DyYBQz5m.js → ThemeProvider-BEt_iJgf.js} +5 -5
  205. package/dist/{ThemeProvider-DyYBQz5m.js.map → ThemeProvider-BEt_iJgf.js.map} +1 -1
  206. package/dist/ThemeProvider.css +14 -14
  207. package/dist/ThemeProvider.js +1 -1
  208. package/dist/{TimeField-BeaCSkdZ.js → TimeField-ChqK40k_.js} +6 -6
  209. package/dist/{TimeField-BeaCSkdZ.js.map → TimeField-ChqK40k_.js.map} +1 -1
  210. package/dist/TimeField.js +1 -1
  211. package/dist/Toast.js +2 -2
  212. package/dist/{Toaster-99KNznN3.js → Toaster-BlycAc63.js} +15 -9
  213. package/dist/Toaster-BlycAc63.js.map +1 -0
  214. package/dist/{Toaster-Br0IeKtP.js → Toaster-DW_bi2L9.js} +2 -2
  215. package/dist/{Toaster-Br0IeKtP.js.map → Toaster-DW_bi2L9.js.map} +1 -1
  216. package/dist/{Toolbar-Cjo7eAhI.js → Toolbar-CUjj2YEZ.js} +20 -20
  217. package/dist/{Toolbar-Cjo7eAhI.js.map → Toolbar-CUjj2YEZ.js.map} +1 -1
  218. package/dist/Toolbar.js +1 -1
  219. package/dist/{Tooltip-CIsvQwWo.js → Tooltip-CUiAJXak.js} +2 -2
  220. package/dist/{Tooltip-CIsvQwWo.js.map → Tooltip-CUiAJXak.js.map} +1 -1
  221. package/dist/Tooltip.js +1 -1
  222. package/dist/{YearlessDateInputWithPicker-BVRZlf9Y.js → YearlessDateInputWithPicker-DZSb8sPf.js} +5 -5
  223. package/dist/{YearlessDateInputWithPicker-BVRZlf9Y.js.map → YearlessDateInputWithPicker-DZSb8sPf.js.map} +1 -1
  224. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +3 -1
  225. package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +13 -6
  226. package/dist/beta/components/MultiSelectField/stories/MultiSelectField.stories.data.d.ts +10 -1
  227. package/dist/beta/components/MultiSelectField/types.d.ts +34 -32
  228. package/dist/beta/components/SelectField/SelectFieldSync.d.ts +11 -1
  229. package/dist/beta/components/SelectField/internal/FieldListBase.d.ts +27 -0
  230. package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +3 -1
  231. package/dist/beta/components/SelectField/internal/types.d.ts +16 -0
  232. package/dist/beta/components/SelectField/internal/useCombo.d.ts +8 -3
  233. package/dist/beta/components/SelectField/internal/useGroupedOptions.d.ts +39 -0
  234. package/dist/beta/components/SelectField/internal/usePinnedOptions.d.ts +37 -0
  235. package/dist/beta/components/SelectField/types.d.ts +33 -10
  236. package/dist/beta/components/Table/columnTypeDefaults.d.ts +51 -0
  237. package/dist/beta/components/Table/createColumnHelper.d.ts +88 -26
  238. package/dist/beta/components/Table/index.d.ts +1 -0
  239. package/dist/beta/components/Table/types.d.ts +188 -19
  240. package/dist/beta/hooks/useAdaptiveView/index.d.ts +1 -0
  241. package/dist/beta.js +8 -8
  242. package/dist/components/Checkbox/internal/Checkbox.d.ts +1 -1
  243. package/dist/components/Dialog/internal/DialogContext.d.ts +5 -0
  244. package/dist/components/DndSort/DndSort.d.ts +1 -0
  245. package/dist/components/Drawer/internal/DrawerContext.d.ts +5 -0
  246. package/dist/components/FieldLabel/FieldLabel.d.ts +3 -1
  247. package/dist/{index-DVtI3CrN.js → index-DFvIVS57.js} +3 -3
  248. package/dist/{index-DVtI3CrN.js.map → index-DFvIVS57.js.map} +1 -1
  249. package/dist/index.js +64 -64
  250. package/dist/{primitive-BByug0kD.js → primitive-C3RFDRA8.js} +11 -11
  251. package/dist/{primitive-BByug0kD.js.map → primitive-C3RFDRA8.js.map} +1 -1
  252. package/dist/token/core/primitive-variables.scss +10 -10
  253. package/dist/token/core/primitive.js +10 -10
  254. package/dist/token/core/primitive.scss +10 -10
  255. package/dist/token.js +1 -1
  256. package/dist/{useBreakpoint-BGCsBhQ7.js → useBreakpoint-BP3HZXmh.js} +2 -2
  257. package/dist/{useBreakpoint-BGCsBhQ7.js.map → useBreakpoint-BP3HZXmh.js.map} +1 -1
  258. package/dist/useBreakpoint.js +1 -1
  259. package/dist/{useDrilldown-pzr3387k.js → useDrilldown-lAdB3FFW.js} +4 -4
  260. package/dist/{useDrilldown-pzr3387k.js.map → useDrilldown-lAdB3FFW.js.map} +1 -1
  261. package/dist/{useInitialFocus-DfFGsgjO.js → useInitialFocus-nOW12jQ5.js} +20 -17
  262. package/dist/useInitialFocus-nOW12jQ5.js.map +1 -0
  263. package/dist/{useLayoutPropsUtil-BlIWftBb.js → useLayoutPropsUtil-loxbyklF.js} +3 -3
  264. package/dist/{useLayoutPropsUtil-BlIWftBb.js.map → useLayoutPropsUtil-loxbyklF.js.map} +1 -1
  265. package/package.json +5 -5
  266. package/dist/DataTable-BPJeSvOx.js.map +0 -1
  267. package/dist/Drawer-BPPWM11Z.js.map +0 -1
  268. package/dist/FieldDialog-NcMR2ATl.js.map +0 -1
  269. package/dist/MultiSelectFieldSync-7nxS5Fdi.js.map +0 -1
  270. package/dist/SelectFieldSync-BsDUUM84.js.map +0 -1
  271. package/dist/Toaster-99KNznN3.js.map +0 -1
  272. package/dist/useInitialFocus-DfFGsgjO.js.map +0 -1
  273. /package/dist/beta/hooks/{useAdaptiveView.d.ts → useAdaptiveView/useAdaptiveView.d.ts} +0 -0
@@ -1,72 +1,29 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { u as useDownshiftEnvironment, a as useCombobox, m as matchSorter } from './match-sorter.esm-B3vwg1-X.js';
3
- import { useMemo, forwardRef, useState, useRef, useId, useImperativeHandle, useCallback, useEffect } from 'react';
4
- import { S as Spinner } from './Spinner-CpEm3Lud.js';
5
- import { B as Button } from './Button-B__Q1BA5.js';
6
- import { s as styles, S as SelectFieldListItem, I as InView, u as useAdaptiveView, D as DEFAULT_PAGE_SIZE, a as useSelectFieldLoading, b as useDebouncedCallback, c as SelectFieldLabel, F as FieldDialog, d as FieldPopover } from './FieldDialog-NcMR2ATl.js';
3
+ import { useCallback, useState, useMemo, forwardRef, useRef, useId, useImperativeHandle, useEffect } from 'react';
4
+ import { F as FieldListBase, a as usePinnedOptions, b as useGroupedOptions, s as sortGroupSections, u as useAdaptiveView, D as DEFAULT_PAGE_SIZE, c as useSelectFieldLoading, d as useDebouncedCallback, S as SelectFieldLabel, e as FieldDialog, f as FieldPopover } from './FieldDialog-Be54L3E-.js';
5
+ import { s as styles } from './SelectTriggerBase.module-B0NFRlQP.js';
7
6
  import { c as cx } from './index-SvGbrGuT.js';
8
- import { T as Text } from './Text-rR4bxNLd.js';
9
- import { S as SrOnly } from './SrOnly-CrdBTl6E.js';
10
- import { s as styles$1 } from './SelectTriggerBase.module-B0NFRlQP.js';
7
+ import { B as Button } from './Button-l7pTJdPc.js';
11
8
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
12
9
  import { S as SvgClose } from './close-DZj38AEh.js';
13
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
14
- import { F as FieldMessage } from './FieldMessage-CRNo4fd5.js';
10
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-loxbyklF.js';
11
+ import { F as FieldMessage } from './FieldMessage-tEr6rWXS.js';
15
12
 
16
13
  const SelectFieldList = ({
17
- isOpen,
18
- items,
19
- getMenuProps,
20
- getItemProps,
21
- highlightedIndex,
22
14
  selectedOption,
23
- hasMore,
24
- onLoadMore,
25
- loading,
26
- loadingMore,
27
- disableAutoLoadMore,
28
- disabled,
29
- className,
30
- style
15
+ ...rest
31
16
  }) => {
32
- const handleLoaderVisibilityChange = (visible) => {
33
- if (visible && !disableAutoLoadMore) {
34
- onLoadMore();
35
- }
36
- };
37
- return /* @__PURE__ */ jsxs(
38
- "div",
17
+ const getCheckedState = useCallback(
18
+ (item) => selectedOption?.id === item.original.id ? "checked" : "unchecked",
19
+ [selectedOption]
20
+ );
21
+ return /* @__PURE__ */ jsx(
22
+ FieldListBase,
39
23
  {
40
- ...getMenuProps({
41
- className: cx(styles["scroller"], className),
42
- style
43
- }),
44
- children: [
45
- /* @__PURE__ */ jsx("ul", { className: cx(styles["select-field-list"]), children: isOpen && /* @__PURE__ */ jsx(Fragment, { children: loading ? /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Spinner, { size: "medium" }) }) : items.length > 0 ? items.map((item, index) => /* @__PURE__ */ jsx(
46
- SelectFieldListItem,
47
- {
48
- item,
49
- index,
50
- getItemProps,
51
- selectionType: "single",
52
- checked: selectedOption?.id === item.original.id ? "checked" : "unchecked",
53
- highlighted: highlightedIndex === index,
54
- disabled: (disabled || item.disabled) ?? false
55
- },
56
- item.id
57
- )) : /* @__PURE__ */ jsx("div", { className: styles["empty"], children: /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No match found" }) }) }) }),
58
- loadingMore ? /* @__PURE__ */ jsxs("div", { className: styles["load-more"], children: [
59
- /* @__PURE__ */ jsx(Spinner, { size: "small" }),
60
- /* @__PURE__ */ jsx(SrOnly, { children: "Loading more..." })
61
- ] }) : hasMore && !loading ? /* @__PURE__ */ jsx(
62
- InView,
63
- {
64
- onVisibilityChange: handleLoaderVisibilityChange,
65
- rootMargin: "0px 0px -100px 0px",
66
- children: /* @__PURE__ */ jsx("div", { className: styles["load-more"], children: /* @__PURE__ */ jsx(Button, { appearance: "secondary", size: "small", onClick: onLoadMore, children: "Load more" }) })
67
- }
68
- ) : null
69
- ]
24
+ ...rest,
25
+ selectionType: "single",
26
+ getCheckedState
70
27
  }
71
28
  );
72
29
  };
@@ -90,12 +47,12 @@ const SelectFieldInput = ({
90
47
  prefix,
91
48
  suffix
92
49
  }) => {
93
- const inputWrapperClassNames = cx(styles$1["input-wrapper"], {
94
- [styles$1["small"]]: size === "small",
95
- [styles$1["large"]]: size === "large",
96
- [styles$1["no-clear-button"]]: disableClearButton,
97
- [styles$1["no-toggle-button"]]: disableToggleButton,
98
- [styles$1["disabled"]]: disabled || readOnly
50
+ const inputWrapperClassNames = cx(styles["input-wrapper"], {
51
+ [styles["small"]]: size === "small",
52
+ [styles["large"]]: size === "large",
53
+ [styles["no-clear-button"]]: disableClearButton,
54
+ [styles["no-toggle-button"]]: disableToggleButton,
55
+ [styles["disabled"]]: disabled || readOnly
99
56
  });
100
57
  return /* @__PURE__ */ jsxs(
101
58
  "div",
@@ -104,7 +61,7 @@ const SelectFieldInput = ({
104
61
  ...htmlInputWrapperProps,
105
62
  className: cx(inputWrapperClassNames, htmlInputWrapperProps?.className),
106
63
  children: [
107
- prefix ? /* @__PURE__ */ jsx("div", { className: styles$1["prefix"], children: prefix }) : null,
64
+ prefix ? /* @__PURE__ */ jsx("div", { className: styles["prefix"], children: prefix }) : null,
108
65
  /* @__PURE__ */ jsx(
109
66
  "input",
110
67
  {
@@ -114,27 +71,27 @@ const SelectFieldInput = ({
114
71
  readOnly,
115
72
  required,
116
73
  ...inputProps,
117
- className: cx(styles$1["input"], inputProps?.className, {
118
- [styles$1["error"]]: error
74
+ className: cx(styles["input"], inputProps?.className, {
75
+ [styles["error"]]: error
119
76
  })
120
77
  }
121
78
  ),
122
- suffix ? /* @__PURE__ */ jsx("div", { className: styles$1["suffix"], children: suffix }) : null,
123
- /* @__PURE__ */ jsxs("div", { className: styles$1["buttons-wrapper"], children: [
124
- disableClearButton ? null : /* @__PURE__ */ jsx("div", { className: styles$1["close-button-wrapper"], children: /* @__PURE__ */ jsx(
79
+ suffix ? /* @__PURE__ */ jsx("div", { className: styles["suffix"], children: suffix }) : null,
80
+ /* @__PURE__ */ jsxs("div", { className: styles["buttons-wrapper"], children: [
81
+ disableClearButton ? null : /* @__PURE__ */ jsx("div", { className: styles["close-button-wrapper"], children: /* @__PURE__ */ jsx(
125
82
  Button,
126
83
  {
127
84
  icon: SvgClose,
128
85
  "aria-label": "clear selection",
129
86
  appearance: "ghost",
130
87
  size: "small",
131
- className: styles$1["close-button"],
88
+ className: styles["close-button"],
132
89
  onClick: () => {
133
90
  onClear?.();
134
91
  }
135
92
  }
136
93
  ) }),
137
- disableToggleButton ? null : /* @__PURE__ */ jsx("div", { className: styles$1["toggle-button-wrapper"], children: /* @__PURE__ */ jsx(
94
+ disableToggleButton ? null : /* @__PURE__ */ jsx("div", { className: styles["toggle-button-wrapper"], children: /* @__PURE__ */ jsx(
138
95
  Button,
139
96
  {
140
97
  icon: SvgChevronRight,
@@ -144,7 +101,7 @@ const SelectFieldInput = ({
144
101
  disabled,
145
102
  ...toggleButtonProps,
146
103
  className: cx(
147
- styles$1["toggle-button"],
104
+ styles["toggle-button"],
148
105
  toggleButtonProps?.className
149
106
  )
150
107
  }
@@ -158,7 +115,9 @@ SelectFieldInput.displayName = "SelectFieldInput";
158
115
 
159
116
  const useCombo = ({
160
117
  options,
161
- pinnedOptions,
118
+ pinned,
119
+ groupToString,
120
+ groupSorter,
162
121
  selectAll,
163
122
  selectedOption,
164
123
  onSelectedOptionChange,
@@ -168,19 +127,78 @@ const useCombo = ({
168
127
  disableHighlightOnOpen = false,
169
128
  disabled
170
129
  }) => {
171
- const downshiftItems = useMemo(() => {
172
- const items = options.map(
173
- mapOptionToDownshiftItem
174
- );
130
+ const [inputValue, setInputValue] = useState(selectedOption?.label ?? "");
131
+ const effectiveSearchValue = selectedOption?.label === inputValue ? "" : inputValue;
132
+ const { pinnedSections } = usePinnedOptions(pinned, effectiveSearchValue);
133
+ const { ungroupedItems, groupSections: rawGroupSections } = useGroupedOptions(
134
+ options,
135
+ groupToString
136
+ );
137
+ const groupSections = useMemo(() => {
138
+ if (groupSorter && rawGroupSections.length > 0) {
139
+ return sortGroupSections(rawGroupSections, groupSorter);
140
+ }
141
+ return rawGroupSections;
142
+ }, [rawGroupSections, groupSorter]);
143
+ const { downshiftItems, sectionsMeta } = useMemo(() => {
144
+ const items = [];
145
+ const meta = [];
146
+ pinnedSections.forEach((section) => {
147
+ const startIndex = items.length;
148
+ section.options.forEach((option) => {
149
+ items.push({
150
+ id: option.id + "-pinned",
151
+ type: "pinned-option",
152
+ original: option,
153
+ disabled: option.disabled ?? false
154
+ });
155
+ });
156
+ const endIndex = items.length;
157
+ if (endIndex > startIndex || section.loading) {
158
+ meta.push({
159
+ type: "pinned",
160
+ label: section.label,
161
+ startIndex,
162
+ endIndex,
163
+ loading: section.loading
164
+ });
165
+ }
166
+ });
167
+ groupSections.forEach((section) => {
168
+ const startIndex = items.length;
169
+ section.options.forEach((option) => {
170
+ items.push({
171
+ id: option.id,
172
+ type: "grouped-option",
173
+ original: option,
174
+ disabled: option.disabled ?? false
175
+ });
176
+ });
177
+ const endIndex = items.length;
178
+ if (endIndex > startIndex) {
179
+ meta.push({
180
+ type: "group",
181
+ label: section.label,
182
+ startIndex,
183
+ endIndex
184
+ });
185
+ }
186
+ });
187
+ items.push(...ungroupedItems);
175
188
  if (selectAll) {
189
+ meta.forEach((m) => {
190
+ m.startIndex += 1;
191
+ m.endIndex += 1;
192
+ });
176
193
  items.unshift({
177
194
  id: "select-all",
178
195
  type: "select-all",
179
- original: { id: "select-all", label: selectAll.label ?? "Select All" }
196
+ original: { id: "select-all", label: selectAll.label ?? "Select All" },
197
+ disabled: false
180
198
  });
181
199
  }
182
- return items;
183
- }, [options, pinnedOptions, selectAll]);
200
+ return { downshiftItems: items, sectionsMeta: meta };
201
+ }, [pinnedSections, groupSections, ungroupedItems, selectAll]);
184
202
  const selectedDownshiftItem = useMemo(() => {
185
203
  return selectedOption ? mapOptionToDownshiftItem(selectedOption) : null;
186
204
  }, [selectedOption]);
@@ -193,7 +211,6 @@ const useCombo = ({
193
211
  getMenuProps,
194
212
  getInputProps,
195
213
  getItemProps,
196
- inputValue,
197
214
  closeMenu,
198
215
  openMenu,
199
216
  setHighlightedIndex
@@ -206,21 +223,26 @@ const useCombo = ({
206
223
  },
207
224
  environment,
208
225
  selectedItem: selectedDownshiftItem,
226
+ inputValue,
227
+ // Controlled input value
209
228
  onSelectedItemChange: ({
210
229
  selectedItem: si
211
230
  }) => {
212
- if (si && si.type === "option") {
231
+ if (si && (si.type === "option" || si.type === "pinned-option" || si.type === "grouped-option")) {
213
232
  onSelectedOptionChange(si.original);
214
233
  } else {
215
234
  onSelectedOptionChange(null);
216
235
  }
217
236
  },
218
- onInputValueChange,
237
+ onInputValueChange: (changes) => {
238
+ setInputValue(changes.inputValue ?? "");
239
+ onInputValueChange?.(changes);
240
+ },
219
241
  onIsOpenChange: (changes) => {
220
242
  onIsOpenChange?.(changes);
221
243
  if (changes.isOpen && !disableHighlightOnOpen) {
222
244
  const selectedItemIndex = downshiftItems.findIndex(
223
- (item) => item.id === selectedDownshiftItem?.id
245
+ (item) => item.original.id === selectedOption?.id
224
246
  );
225
247
  setHighlightedIndex(selectedItemIndex);
226
248
  }
@@ -242,6 +264,7 @@ const useCombo = ({
242
264
  highlightedIndex,
243
265
  isOpen,
244
266
  downshiftItems,
267
+ sectionsMeta,
245
268
  closeMenu,
246
269
  openMenu
247
270
  };
@@ -321,8 +344,11 @@ const SelectField = forwardRef(
321
344
  prefix,
322
345
  suffix,
323
346
  className,
324
- style
347
+ style,
348
+ pinned
325
349
  } = componentProps;
350
+ const groupToString = "groupToString" in componentProps ? componentProps.groupToString : void 0;
351
+ const groupSorter = "groupSorter" in componentProps ? componentProps.groupSorter : void 0;
326
352
  const autoId = useId();
327
353
  const id = idProp ?? autoId;
328
354
  const helperUid = useId();
@@ -415,12 +441,15 @@ const SelectField = forwardRef(
415
441
  getItemProps,
416
442
  inputValue,
417
443
  downshiftItems,
418
- closeMenu
444
+ closeMenu,
445
+ sectionsMeta
419
446
  } = useCombo({
420
447
  displayAs,
421
448
  disabled: isDisabledOrReadOnly,
422
449
  options,
423
- pinnedOptions: [],
450
+ pinned,
451
+ groupToString,
452
+ groupSorter,
424
453
  selectedOption,
425
454
  onSelectedOptionChange: (selectedOption2) => {
426
455
  onSelectedOptionChange(selectedOption2);
@@ -434,7 +463,7 @@ const SelectField = forwardRef(
434
463
  }
435
464
  },
436
465
  onInputValueChange: ({ inputValue: iv }) => {
437
- debouncedOptionLoader(iv);
466
+ debouncedOptionLoader(iv ?? "");
438
467
  }
439
468
  });
440
469
  useEffect(() => {
@@ -462,7 +491,7 @@ const SelectField = forwardRef(
462
491
  return /* @__PURE__ */ jsxs(
463
492
  "div",
464
493
  {
465
- className: className ? `${styles$1["search-field"]} ${className}` : styles$1["search-field"],
494
+ className: className ? `${styles["search-field"]} ${className}` : styles["search-field"],
466
495
  style: { ...layoutStyles, ...style },
467
496
  ref: wrapperDivRef,
468
497
  children: [
@@ -543,6 +572,7 @@ const SelectField = forwardRef(
543
572
  {
544
573
  isOpen: true,
545
574
  items: downshiftItems,
575
+ sectionsMeta,
546
576
  getMenuProps,
547
577
  getItemProps,
548
578
  highlightedIndex,
@@ -567,7 +597,7 @@ const SelectField = forwardRef(
567
597
  return /* @__PURE__ */ jsxs(
568
598
  "div",
569
599
  {
570
- className: className ? `${styles$1["search-field"]} ${className}` : styles$1["search-field"],
600
+ className: className ? `${styles["search-field"]} ${className}` : styles["search-field"],
571
601
  style: { ...layoutStyles, ...style },
572
602
  children: [
573
603
  /* @__PURE__ */ jsx(
@@ -629,6 +659,7 @@ const SelectField = forwardRef(
629
659
  {
630
660
  isOpen,
631
661
  items: downshiftItems,
662
+ sectionsMeta,
632
663
  getMenuProps,
633
664
  getItemProps,
634
665
  highlightedIndex,
@@ -657,18 +688,54 @@ const defaultFilter = (options, searchValue) => {
657
688
  keys: ["label", "searchText"]
658
689
  });
659
690
  };
691
+ const sortByGroup = (options, groupSorter) => {
692
+ const groupOrder = /* @__PURE__ */ new Map();
693
+ const uniqueGroups = [];
694
+ options.forEach((opt) => {
695
+ if (!groupOrder.has(opt.group)) {
696
+ groupOrder.set(opt.group, uniqueGroups.length);
697
+ uniqueGroups.push(opt.group);
698
+ }
699
+ });
700
+ uniqueGroups.sort((a, b) => {
701
+ if (a === void 0 && b === void 0) return 0;
702
+ if (a === void 0) return 1;
703
+ if (b === void 0) return -1;
704
+ return groupSorter(a, b);
705
+ });
706
+ uniqueGroups.forEach((group, index) => {
707
+ groupOrder.set(group, index);
708
+ });
709
+ return [...options].sort((a, b) => {
710
+ const orderA = groupOrder.get(a.group) ?? Infinity;
711
+ const orderB = groupOrder.get(b.group) ?? Infinity;
712
+ return orderA - orderB;
713
+ });
714
+ };
660
715
  const SelectFieldSync = (props) => {
661
- const { options, filter: filterProp = defaultFilter, ...rest } = props;
716
+ const {
717
+ options,
718
+ filter: filterProp = defaultFilter,
719
+ groupSorter,
720
+ ...rest
721
+ } = props;
662
722
  const filter = typeof filterProp === "function" ? filterProp : (options2, searchValue) => matchSorter(
663
723
  options2,
664
724
  searchValue,
665
725
  filterProp
666
726
  );
727
+ const loadOptions = (searchValue) => {
728
+ const filtered = filter(options, searchValue);
729
+ if (groupSorter) {
730
+ return sortByGroup(filtered, groupSorter);
731
+ }
732
+ return filtered;
733
+ };
667
734
  return /* @__PURE__ */ jsx(
668
735
  SelectField,
669
736
  {
670
737
  lazy: false,
671
- loadOptions: (searchValue) => filter(options, searchValue),
738
+ loadOptions,
672
739
  debounceMs: 0,
673
740
  ...rest
674
741
  }
@@ -676,4 +743,4 @@ const SelectFieldSync = (props) => {
676
743
  };
677
744
 
678
745
  export { SelectField as S, SelectFieldSync as a };
679
- //# sourceMappingURL=SelectFieldSync-BsDUUM84.js.map
746
+ //# sourceMappingURL=SelectFieldSync-BFsJssdD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectFieldSync-BFsJssdD.js","sources":["../src/beta/components/SelectField/internal/SelectFieldList.tsx","../src/beta/components/SelectField/internal/SelectFieldInput.tsx","../src/beta/components/SelectField/internal/useCombo.tsx","../src/beta/components/SelectField/SelectField.tsx","../src/beta/components/SelectField/SelectFieldSync.tsx"],"sourcesContent":["import { SelectFieldDownshiftItem, SelectFieldOption } from \"../types\";\nimport { UseComboboxPropGetters } from \"downshift\";\nimport { CSSProperties, useCallback } from \"react\";\nimport { CheckState } from \"../../../../types\";\nimport { FieldListBase } from \"./FieldListBase\";\nimport { SectionMeta } from \"./types\";\n\ntype GetMenuProps =\n UseComboboxPropGetters<SelectFieldDownshiftItem>[\"getMenuProps\"];\ntype GetItemProps =\n UseComboboxPropGetters<SelectFieldDownshiftItem>[\"getItemProps\"];\n\nexport type SelectFieldListProps = {\n isOpen: boolean;\n items: SelectFieldDownshiftItem[];\n getMenuProps: GetMenuProps;\n getItemProps: GetItemProps;\n highlightedIndex: number;\n selectedOption: SelectFieldOption | null;\n hasMore: boolean;\n onLoadMore: () => void;\n loading: boolean;\n loadingMore: boolean;\n disableAutoLoadMore?: boolean;\n disabled?: boolean;\n className?: string;\n style?: CSSProperties;\n sectionsMeta?: SectionMeta[];\n};\n\nexport const SelectFieldList = ({\n selectedOption,\n ...rest\n}: SelectFieldListProps) => {\n const getCheckedState = useCallback(\n (item: SelectFieldDownshiftItem): CheckState =>\n selectedOption?.id === item.original.id ? \"checked\" : \"unchecked\",\n [selectedOption],\n );\n\n return (\n <FieldListBase\n {...rest}\n selectionType=\"single\"\n getCheckedState={getCheckedState}\n />\n );\n};\n\nSelectFieldList.displayName = \"SelectFieldList\";\n","import styles from \"../../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\nimport cx from \"classnames\";\nimport { PassThroughProps, Size } from \"../../../../types\";\nimport { Button } from \"../../../../components/Button\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport { ReactElement, RefObject } from \"react\";\n\n/**\n * Props for the SelectFieldInput component\n * @property {string} [placeholder] - Placeholder text displayed when input is empty\n * @property {Extract<Size, \"small\" | \"medium\" | \"large\">} [size] - Size variant of the input\n * @property {boolean} [disableClearButton] - Hides the clear button when true\n * @property {boolean} [disableToggleButton] - Hides the toggle button when true\n * @property {boolean} [disabled] - Disables the input entirely\n * @property {boolean} [readOnly] - Cannot be modified but remains interactive\n * @property {boolean} [required] - Marks the input as required for form validation\n * @property {boolean} [error] - Shows error styling on the input when true\n * @property {() => void} [onClear] - Callback fired when the clear button is clicked\n * @property {string} [id] - HTML id attribute for the input element\n * @property {string} [popoverTarget] - Target identifier for popover association\n * @property {RefObject<HTMLDivElement>} [inputWrapperRef] - Ref for the input wrapper div element\n * @property {PassThroughProps<\"div\">} [htmlInputWrapperProps] - Additional props passed to the wrapper div\n * @property {PassThroughProps<\"input\">} [inputProps] - Additional props passed to the input element\n * @property {PassThroughProps<\"button\">} [toggleButtonProps] - Additional props passed to the toggle button\n * @property {string | ReactElement} [prefix] - Content to display before the input\n * @property {string | ReactElement} [suffix] - Content to display after the input\n */\nexport type SelectFieldInputProps = {\n placeholder?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n disableClearButton?: boolean;\n disableToggleButton?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n error?: boolean;\n onClear?: () => void;\n id?: string;\n popoverTarget?: string;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n htmlInputWrapperProps?: PassThroughProps<\"div\">;\n inputProps?: PassThroughProps<\"input\">;\n toggleButtonProps?: PassThroughProps<\"button\">;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n};\n\n/**\n * Internal input component for the SelectField that provides the text input and action buttons.\n *\n * Features:\n * - Text input for filtering and displaying selected values\n * - Optional clear button for removing the current selection\n * - Optional toggle button for opening/closing the dropdown menu\n * - Supports multiple size variants (small, medium, large)\n * - Fully accessible with proper ARIA labels on buttons\n * - Supports pass-through props for customization of internal elements\n * - Optional prefix and suffix content\n * - Error state styling\n *\n * @example\n * <SelectFieldInput\n * placeholder=\"Search...\"\n * size=\"medium\"\n * onClear={() => handleClear()}\n * prefix=\"$\"\n * />\n */\nexport const SelectFieldInput = ({\n placeholder,\n size,\n disableClearButton,\n disableToggleButton,\n disabled,\n readOnly,\n required,\n error,\n onClear,\n id,\n inputWrapperRef,\n htmlInputWrapperProps,\n inputProps,\n toggleButtonProps,\n prefix,\n suffix,\n}: SelectFieldInputProps) => {\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"no-clear-button\"]]: disableClearButton,\n [styles[\"no-toggle-button\"]]: disableToggleButton,\n [styles[\"disabled\"]]: disabled || readOnly,\n });\n\n return (\n <div\n ref={inputWrapperRef}\n {...htmlInputWrapperProps}\n className={cx(inputWrapperClassNames, htmlInputWrapperProps?.className)}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n <input\n id={id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n {...inputProps}\n className={cx(styles[\"input\"], inputProps?.className, {\n [styles[\"error\"]]: error,\n })}\n />\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n <div className={styles[\"buttons-wrapper\"]}>\n {disableClearButton ? null : (\n <div className={styles[\"close-button-wrapper\"]}>\n <Button\n icon={Close}\n aria-label=\"clear selection\"\n appearance=\"ghost\"\n size=\"small\"\n className={styles[\"close-button\"]}\n onClick={() => {\n onClear?.();\n }}\n />\n </div>\n )}\n {disableToggleButton ? null : (\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 {...toggleButtonProps}\n className={cx(\n styles[\"toggle-button\"],\n toggleButtonProps?.className,\n )}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nSelectFieldInput.displayName = \"SelectFieldInput\";\n","import {\n useCombobox,\n UseComboboxProps,\n UseComboboxState,\n UseComboboxStateChangeOptions,\n} from \"downshift\";\nimport { useDownshiftEnvironment } from \"../../../../internal/hooks\";\nimport {\n SelectFieldDownshiftItem,\n SelectFieldGroupByValue,\n SelectFieldOption,\n SelectFieldPinnedOptions,\n} from \"../types\";\nimport { useMemo, useState } from \"react\";\nimport { usePinnedOptions } from \"./usePinnedOptions\";\nimport { sortGroupSections, useGroupedOptions } from \"./useGroupedOptions\";\nimport { SectionMeta } from \"./types\";\n\nexport type { SectionMeta };\n\nexport type UseComboOptions = {\n // An array of currently loaded options\n options: SelectFieldOption[];\n // Pinned options configuration (raw prop)\n pinned?: SelectFieldPinnedOptions;\n // Function to convert a group value to a display label\n groupToString?: (groupValue: SelectFieldGroupByValue) => string;\n // Function to sort group sections\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n selectAll?: {\n label: string;\n onClick: () => void;\n };\n selectedOption: SelectFieldOption | null;\n onSelectedOptionChange: (option: SelectFieldOption | null) => void;\n displayAs: \"popover\" | \"dialog\";\n disableHighlightOnOpen?: boolean;\n disabled: boolean;\n} & Pick<\n UseComboboxProps<SelectFieldDownshiftItem>,\n \"onInputValueChange\" | \"onIsOpenChange\"\n>;\n\n/**\n * The purpose of useCombo is to provide an abstraction over the downshift combobox hook.\n */\nexport const useCombo = ({\n options,\n pinned,\n groupToString,\n groupSorter,\n selectAll,\n selectedOption,\n onSelectedOptionChange,\n onInputValueChange,\n onIsOpenChange,\n displayAs = \"popover\",\n disableHighlightOnOpen = false,\n disabled,\n}: UseComboOptions) => {\n // Controlled input value state - needed so usePinnedOptions can access it\n // before useCombobox is called\n const [inputValue, setInputValue] = useState(selectedOption?.label ?? \"\");\n\n // Compute effective search value (empty if showing selected option's label)\n const effectiveSearchValue =\n selectedOption?.label === inputValue ? \"\" : inputValue;\n\n // Load pinned options based on current search value\n const { pinnedSections } = usePinnedOptions(pinned, effectiveSearchValue);\n\n // Process options for grouping\n const { ungroupedItems, groupSections: rawGroupSections } = useGroupedOptions(\n options,\n groupToString,\n );\n\n // Apply custom group sorting if provided\n const groupSections = useMemo(() => {\n if (groupSorter && rawGroupSections.length > 0) {\n return sortGroupSections(rawGroupSections, groupSorter);\n }\n return rawGroupSections;\n }, [rawGroupSections, groupSorter]);\n\n // Build all items and combined section metadata\n // Order: pinned sections -> group sections -> flat items\n const { downshiftItems, sectionsMeta } = useMemo(() => {\n const items: SelectFieldDownshiftItem[] = [];\n const meta: SectionMeta[] = [];\n\n // 1. Add pinned sections\n pinnedSections.forEach((section) => {\n const startIndex = items.length;\n\n section.options.forEach((option) => {\n items.push({\n id: option.id + \"-pinned\",\n type: \"pinned-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n });\n\n const endIndex = items.length;\n\n // Always add metadata for pinned sections (even while loading with 0 items)\n if (endIndex > startIndex || section.loading) {\n meta.push({\n type: \"pinned\",\n label: section.label,\n startIndex,\n endIndex,\n loading: section.loading,\n });\n }\n });\n\n // 2. Add group sections (with their items)\n groupSections.forEach((section) => {\n const startIndex = items.length;\n\n section.options.forEach((option) => {\n items.push({\n id: option.id,\n type: \"grouped-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n });\n\n const endIndex = items.length;\n\n // Only add metadata if the section has options\n if (endIndex > startIndex) {\n meta.push({\n type: \"group\",\n label: section.label,\n startIndex,\n endIndex,\n });\n }\n });\n\n // 3. Add ungrouped items (flat)\n items.push(...ungroupedItems);\n\n // Add the select all option to the top of the list if it is provided\n if (selectAll) {\n // Shift all section indices by 1 to account for select-all\n meta.forEach((m) => {\n m.startIndex += 1;\n m.endIndex += 1;\n });\n\n items.unshift({\n id: \"select-all\",\n type: \"select-all\",\n original: { id: \"select-all\", label: selectAll.label ?? \"Select All\" },\n disabled: false,\n });\n }\n\n return { downshiftItems: items, sectionsMeta: meta };\n }, [pinnedSections, groupSections, ungroupedItems, selectAll]);\n\n const selectedDownshiftItem = useMemo(() => {\n return selectedOption ? mapOptionToDownshiftItem(selectedOption) : null;\n }, [selectedOption]);\n\n const { ref: wrapperDivRef, environment } = useDownshiftEnvironment();\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n closeMenu,\n openMenu,\n setHighlightedIndex,\n } = useCombobox({\n isItemDisabled: (item, _index) => {\n if (!item) {\n return false; // Downshift passes -1 index with an undefined item. Ignore it.\n }\n return (disabled || item.disabled) ?? false;\n },\n environment: environment,\n selectedItem: selectedDownshiftItem,\n inputValue, // Controlled input value\n onSelectedItemChange: ({\n selectedItem: si,\n }: {\n selectedItem: SelectFieldDownshiftItem;\n }) => {\n // Regular, pinned, and grouped options are all selectable\n if (\n si &&\n (si.type === \"option\" ||\n si.type === \"pinned-option\" ||\n si.type === \"grouped-option\")\n ) {\n onSelectedOptionChange(si.original);\n } else {\n onSelectedOptionChange(null);\n }\n },\n onInputValueChange: (changes) => {\n // Update local state\n setInputValue(changes.inputValue ?? \"\");\n // Call external handler\n onInputValueChange?.(changes);\n },\n onIsOpenChange: (changes) => {\n onIsOpenChange?.(changes);\n if (changes.isOpen && !disableHighlightOnOpen) {\n const selectedItemIndex = downshiftItems.findIndex(\n (item) => item.original.id === selectedOption?.id,\n );\n setHighlightedIndex(selectedItemIndex);\n }\n },\n items: downshiftItems,\n itemToString(item: SelectFieldDownshiftItem | null) {\n return item?.original.label ?? \"\";\n },\n stateReducer: (state, actionAndChanges) =>\n stateReducer(state, actionAndChanges, displayAs),\n });\n\n return {\n inputValue,\n wrapperDivRef,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n highlightedIndex,\n isOpen,\n downshiftItems,\n sectionsMeta,\n closeMenu,\n openMenu,\n };\n};\n\nfunction mapOptionToDownshiftItem(\n option: SelectFieldOption,\n): SelectFieldDownshiftItem {\n return {\n id: option.id,\n type: \"option\",\n disabled: option.disabled ?? false,\n original: option,\n };\n}\n\nfunction stateReducer(\n state: UseComboboxState<SelectFieldDownshiftItem>,\n actionAndChanges: UseComboboxStateChangeOptions<SelectFieldDownshiftItem>,\n displayAs: \"popover\" | \"dialog\",\n) {\n const { type, changes } = actionAndChanges;\n // this prevents the menu from being closed when the user selects an item with 'Enter' or mouse\n switch (type) {\n case useCombobox.stateChangeTypes.InputBlur:\n // keep the dialog open if the user blurs the input while the dialog is open\n if (displayAs === \"dialog\" && state.isOpen) {\n return {\n ...changes,\n isOpen: state.isOpen,\n };\n }\n return {\n ...changes,\n inputValue: state.selectedItem?.original.label ?? state.inputValue,\n };\n case useCombobox.stateChangeTypes.InputKeyDownEscape:\n case useCombobox.stateChangeTypes.FunctionCloseMenu:\n return {\n ...changes,\n inputValue: state.selectedItem?.original.label ?? state.inputValue,\n };\n case useCombobox.stateChangeTypes.InputClick:\n if (displayAs === \"dialog\" && state.isOpen) {\n // keep the dialog open if the user clicks the input while the dialog is open\n return {\n ...changes,\n isOpen: state.isOpen,\n };\n }\n return changes;\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return changes;\n default:\n return changes; // otherwise business as usual.\n }\n}\n","import { SelectFieldHandle, SelectFieldProps } from \"./types\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n useId,\n useRef,\n} from \"react\";\nimport { SelectFieldList } from \"./internal/SelectFieldList\";\nimport { SelectFieldInput } from \"./internal/SelectFieldInput\";\nimport { SelectFieldLabel } from \"./internal/SelectFieldLabel\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks/useLayoutPropsUtil\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport {\n useSelectFieldLoading,\n DEFAULT_PAGE_SIZE,\n} from \"../../../internal/hooks/useSelectFieldLoading\";\nimport styles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\nimport { useCombo } from \"./internal/useCombo\";\nimport { FieldPopover } from \"./internal/FieldPopover/FieldPopover\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { FieldDialog } from \"./internal/FieldDialog/FieldDialog\";\nimport { FieldMessage } from \"../../../components\";\n\nexport const SelectField = forwardRef<SelectFieldHandle, SelectFieldProps>(\n (propsWithLayout, ref) => {\n const { layoutStyles, componentProps: componentProps } =\n useLayoutPropsUtil(propsWithLayout);\n const [initialLoadPerformed, setInitialLoadPerformed] = useState(false);\n\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n\n const {\n id: idProp,\n value: selectedOption,\n initialLoad: initialLoadProp = \"auto\",\n displayMenuAs: displayMenuAsProp = \"auto\",\n lazy,\n loadOptions: loadOptionsProp,\n label,\n labelNode,\n hideLabel,\n placeholder,\n disableClearButton: disableClearButtonProp = false,\n debounceMs = 200,\n onSelectedOptionChange,\n cache,\n size,\n error,\n hint,\n description,\n errorAriaLive: errorAriaLiveProp = \"assertive\",\n required,\n disabled,\n readOnly,\n prefix,\n suffix,\n className,\n style,\n pinned,\n } = componentProps;\n\n // Extract groupToString if available (only on lazy: \"group\" or eager mode)\n const groupToString =\n \"groupToString\" in componentProps\n ? componentProps.groupToString\n : undefined;\n\n // Extract groupSorter if available (only on lazy: \"group\" or eager mode)\n const groupSorter =\n \"groupSorter\" in componentProps ? componentProps.groupSorter : undefined;\n const autoId = useId();\n const id = idProp ?? autoId;\n const helperUid = useId();\n\n const [shouldAriaLive, setShouldAriaLive] = useState(false);\n\n const handleFocus = () => {\n setShouldAriaLive(true);\n };\n const handleBlur = () => {\n // console.log(\"handleBlur\");\n setShouldAriaLive(false);\n };\n\n const errorMessage = typeof error !== \"boolean\" ? error : undefined;\n const hasHelperText = hint || errorMessage || description;\n const isDisabledOrReadOnly = (disabled || readOnly) ?? false;\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const initialLoad =\n initialLoadProp === \"auto\" ? \"immediate\" : initialLoadProp;\n\n const pageSize =\n lazy === \"page\" && \"lazyOptions\" in componentProps\n ? (componentProps.lazyOptions?.pageSize ?? DEFAULT_PAGE_SIZE)\n : DEFAULT_PAGE_SIZE;\n const limit =\n lazy === \"offset\" && \"lazyOptions\" in componentProps\n ? (componentProps.lazyOptions?.limit ?? DEFAULT_PAGE_SIZE)\n : DEFAULT_PAGE_SIZE;\n\n const loadingHookConfig = useMemo(() => {\n const cacheConfig = {\n enabled: cache?.enabled,\n maxSize: cache?.maxSize,\n };\n if (lazy === \"page\")\n return {\n lazy: \"page\" as const,\n loadOptions: loadOptionsProp,\n pageSize,\n cache: cacheConfig,\n };\n if (lazy === \"offset\")\n return {\n lazy: \"offset\" as const,\n loadOptions: loadOptionsProp,\n limit,\n cache: cacheConfig,\n };\n if (lazy === \"group\")\n return {\n lazy: \"group\" as const,\n loadOptions: loadOptionsProp,\n cache: cacheConfig,\n };\n return {\n lazy: false as const,\n loadOptions: loadOptionsProp,\n cache: cacheConfig,\n };\n }, [\n lazy,\n loadOptionsProp,\n pageSize,\n limit,\n cache?.enabled,\n cache?.maxSize,\n ]);\n\n const {\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n clearCache,\n } = useSelectFieldLoading(loadingHookConfig);\n\n useImperativeHandle(ref, () => ({ clearCache }), [clearCache]);\n\n const debouncedOptionLoader = useDebouncedCallback((inputValue: string) => {\n loadOptions(selectedOption?.label === inputValue ? \"\" : inputValue, {\n initial: true,\n });\n }, debounceMs);\n\n const adjustInputValueForSelectedOption = useCallback(\n (inputValue: string) => {\n if (selectedOption?.label === inputValue) {\n return \"\";\n } else {\n return inputValue;\n }\n },\n [selectedOption?.label],\n );\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n wrapperDivRef,\n highlightedIndex,\n getItemProps,\n inputValue,\n downshiftItems,\n closeMenu,\n sectionsMeta,\n } = useCombo({\n displayAs,\n disabled: isDisabledOrReadOnly,\n options,\n pinned,\n groupToString,\n groupSorter,\n selectedOption,\n onSelectedOptionChange: (selectedOption) => {\n onSelectedOptionChange(selectedOption);\n },\n async onIsOpenChange(changes) {\n if (initialLoad === \"open\" && !initialLoadPerformed && changes.isOpen) {\n await loadOptions(adjustInputValueForSelectedOption(inputValue), {\n initial: true,\n });\n setInitialLoadPerformed(true);\n }\n },\n onInputValueChange: ({ inputValue: iv }) => {\n debouncedOptionLoader(iv ?? \"\");\n },\n });\n\n useEffect(() => {\n const performInitialLoad = async () => {\n if (initialLoad === \"immediate\" && !initialLoadPerformed) {\n await loadOptions(adjustInputValueForSelectedOption(inputValue), {\n initial: true,\n });\n setInitialLoadPerformed(true);\n }\n };\n performInitialLoad();\n }, [\n loadOptions,\n initialLoadPerformed,\n initialLoad,\n inputValue,\n adjustInputValueForSelectedOption,\n ]);\n\n const handleLoadMore = async () => {\n await loadMore(adjustInputValueForSelectedOption(inputValue));\n };\n\n const disableClearButton =\n disableClearButtonProp || !selectedOption || isDisabledOrReadOnly;\n\n if (displayAs === \"dialog\") {\n return (\n <div\n className={\n className\n ? `${styles[\"search-field\"]} ${className}`\n : styles[\"search-field\"]\n }\n style={{ ...layoutStyles, ...style }}\n ref={wrapperDivRef}\n >\n <SelectFieldLabel\n label={label}\n labelNode={labelNode}\n hideLabel={hideLabel}\n getLabelProps={getLabelProps}\n required={required}\n />\n <SelectFieldInput\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n disableToggleButton={false}\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n toggleButtonProps={getToggleButtonProps()}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-input`}\n inputProps={getInputProps({\n \"aria-describedby\": hasHelperText ? helperUid : undefined,\n \"aria-invalid\": error ? true : undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n })}\n size={size}\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n errorMessage={errorMessage}\n errorAriaLive={\n isOpen || shouldAriaLive ? errorAriaLiveProp : \"off\"\n }\n description={description}\n />\n ) : null}\n <FieldDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={closeMenu}\n title={label}\n field={\n <SelectFieldInput\n disabled={disabled}\n readOnly={readOnly}\n inputProps={getInputProps()}\n disableToggleButton\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-dialog-input`}\n inputWrapperRef={inputWrapperRef}\n size=\"medium\" // always \"medium\" for the dialog\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n }\n initialFocusResolver={(elements) => {\n return (\n elements.find((element) => element.tagName === \"INPUT\") ||\n elements[0]\n );\n }}\n >\n <SelectFieldList\n isOpen // always \"open\" = always show the list in the dialog\n items={downshiftItems}\n sectionsMeta={sectionsMeta}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n disabled={isDisabledOrReadOnly}\n style={{\n paddingInline: 24,\n paddingBlockEnd: 24,\n }}\n />\n </FieldDialog>\n </div>\n );\n }\n\n return (\n <div\n className={\n className\n ? `${styles[\"search-field\"]} ${className}`\n : styles[\"search-field\"]\n }\n style={{ ...layoutStyles, ...style }}\n >\n <SelectFieldLabel\n label={label}\n labelNode={labelNode}\n hideLabel={hideLabel}\n getLabelProps={getLabelProps}\n required={required}\n />\n <SelectFieldInput\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n inputProps={getInputProps({\n popovertarget: `${id}-popover`,\n \"aria-describedby\": hasHelperText ? helperUid : undefined,\n \"aria-invalid\": error ? true : undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n })}\n toggleButtonProps={getToggleButtonProps()}\n disableToggleButton={false}\n placeholder={placeholder}\n disableClearButton={disableClearButton}\n onClear={() => onSelectedOptionChange(null)}\n id={`${id}-input`}\n popoverTarget={`${id}-popover`}\n inputWrapperRef={inputWrapperRef}\n size={size}\n error={!!error}\n prefix={prefix}\n suffix={suffix}\n />\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n errorMessage={errorMessage}\n errorAriaLive={isOpen || shouldAriaLive ? errorAriaLiveProp : \"off\"}\n description={description}\n />\n ) : null}\n\n <FieldPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && displayAs === \"popover\"}\n onClickOutside={closeMenu}\n >\n <SelectFieldList\n isOpen={isOpen}\n items={downshiftItems}\n sectionsMeta={sectionsMeta}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOption={selectedOption}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n disabled={isDisabledOrReadOnly}\n style={{\n padding: 8,\n }}\n />\n </FieldPopover>\n </div>\n );\n },\n);\n\nSelectField.displayName = \"SelectField\";\n","import { matchSorter, MatchSorterOptions } from \"match-sorter\";\nimport { SelectField } from \"./SelectField\";\nimport {\n SelectFieldProps,\n SelectFieldOption,\n SelectFieldGroupByValue,\n} from \"./types\";\n\nexport type SelectFieldSyncProps = Omit<\n SelectFieldProps,\n \"loadOptions\" | \"lazy\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /**\n * The options to display in the select field.\n */\n options: SelectFieldOption[];\n /**\n * The filter to use to filter the options.\n * Can be a function to filter the options, or a MatchSorterOptions object to customize the default filtering.\n *\n * @example\n * <SelectFieldSync\n * options={options}\n * filter={(options, searchValue) => {\n * return options.filter((option) => {\n * return option.label?.toLowerCase().includes(searchValue.toLowerCase());\n * });\n * }}\n * />\n *\n * @example\n * <SelectFieldSync\n * options={options}\n * filter={{ keys: [\"label\"] }}\n * />\n */\n filter?:\n | ((\n options: SelectFieldOption[],\n searchValue: string,\n ) => SelectFieldOption[])\n | MatchSorterOptions;\n /**\n * Function to compare two group values for sorting.\n * When provided, options are sorted by group using this comparator,\n * then by match-sort order within each group.\n * @param a - First group value to compare\n * @param b - Second group value to compare\n * @returns Negative if a < b, positive if a > b, zero if equal\n */\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n};\n\nconst defaultFilter = (options: SelectFieldOption[], searchValue: string) => {\n return matchSorter(options, searchValue, {\n keys: [\"label\", \"searchText\"],\n });\n};\n\n/**\n * Sorts options by group using the provided comparator while maintaining\n * the original order within each group (stable sort).\n */\nconst sortByGroup = (\n options: SelectFieldOption[],\n groupSorter: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number,\n): SelectFieldOption[] => {\n // Create a map to track the sort order of each group\n const groupOrder = new Map<SelectFieldGroupByValue | undefined, number>();\n\n // Get unique groups in their natural order, then sort them\n const uniqueGroups: (SelectFieldGroupByValue | undefined)[] = [];\n options.forEach((opt) => {\n if (!groupOrder.has(opt.group)) {\n groupOrder.set(opt.group, uniqueGroups.length);\n uniqueGroups.push(opt.group);\n }\n });\n\n // Sort groups (undefined/ungrouped items go last)\n uniqueGroups.sort((a, b) => {\n // Ungrouped items (undefined) always come last\n if (a === undefined && b === undefined) return 0;\n if (a === undefined) return 1;\n if (b === undefined) return -1;\n return groupSorter(a, b);\n });\n\n // Update group order map with sorted positions\n uniqueGroups.forEach((group, index) => {\n groupOrder.set(group, index);\n });\n\n // Sort options by group order (stable sort preserves match-sort order within groups)\n return [...options].sort((a, b) => {\n const orderA = groupOrder.get(a.group) ?? Infinity;\n const orderB = groupOrder.get(b.group) ?? Infinity;\n return orderA - orderB;\n });\n};\n\n/**\n * SelectFieldSync is a simplified version of SelectField that is used to display a list of options in a select field.\n *\n * Features:\n * - Accepts `options` instead of `loadOptions` and `lazy`.\n * - Performs client-side filtering of the options.\n * - Optionally accepts a function to filter the options, or a MatchSorterOptions object to customize the default filtering.\n * - Supports grouping with optional group sorting via `groupSorter`.\n * - Supports all the other props of SelectField.\n */\nexport const SelectFieldSync = (props: SelectFieldSyncProps) => {\n const {\n options,\n filter: filterProp = defaultFilter,\n groupSorter,\n ...rest\n } = props;\n\n const filter =\n typeof filterProp === \"function\"\n ? filterProp\n : (options: SelectFieldOption[], searchValue: string) =>\n matchSorter<SelectFieldOption>(\n options,\n searchValue,\n filterProp as MatchSorterOptions<SelectFieldOption>,\n );\n\n const loadOptions = (searchValue: string) => {\n // First, filter options using match-sorter\n const filtered = filter(options, searchValue);\n\n // Then, sort by group if groupSorter is provided\n if (groupSorter) {\n return sortByGroup(filtered, groupSorter);\n }\n\n return filtered;\n };\n\n return (\n <SelectField\n lazy={false}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n"],"names":["Close","Chevron_Right","inputValue","selectedOption","options"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { A as Avatar } from './Avatar-B4RLfLCS.js';
3
- import { I as Icon } from './Icon-BckjFkbw.js';
4
- import { S as SelectTriggerBase, d as defaultItemToString, a as defaultItemToKey } from './SelectTriggerBase-B3vw_qnJ.js';
5
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
2
+ import { A as Avatar } from './Avatar-DShevhcs.js';
3
+ import { I as Icon } from './Icon-Bcil6aBo.js';
4
+ import { S as SelectTriggerBase, d as defaultItemToString, a as defaultItemToKey } from './SelectTriggerBase-aaOWep-V.js';
5
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-loxbyklF.js';
6
6
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
7
7
  import { useTrackingId } from './useTrackingId.js';
8
8
 
@@ -122,4 +122,4 @@ const SelectTrigger = function(props) {
122
122
  };
123
123
 
124
124
  export { SelectTrigger as S };
125
- //# sourceMappingURL=SelectTrigger-DVLdDbfd.js.map
125
+ //# sourceMappingURL=SelectTrigger-Cxhx9IVo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger-DVLdDbfd.js","sources":["../src/components/SelectTrigger/SelectTrigger.tsx"],"sourcesContent":["import { Dispatch, SetStateAction } from \"react\";\nimport {\n UseComboboxProps as UseDownshiftComboboxProps,\n UseMultipleSelectionProps as UseDownshiftMultipleSelectionProps,\n} from \"downshift\";\n\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { DataTrackingId, DistributiveOmit } from \"../../types\";\nimport { FieldLabelProps } from \"../FieldLabel\";\nimport { Icon, IconProps } from \"../Icon\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport {\n SelectTriggerBase,\n SelectTriggerBaseProps,\n} from \"./internal/SelectTriggerBase\";\nimport {\n defaultItemToKey,\n defaultItemToString,\n} from \"../Combobox/internal/ComboboxUtils\";\n\nexport type SelectTriggerProps<Item> = DistributiveOmit<\n SelectTriggerBaseProps<Item>,\n \"prefix\" | \"selectedItem\" | \"selectedItems\" | \"onChange\"\n> &\n Pick<FieldLabelProps, \"required\" | \"moreInfo\" | \"moreInfoOpen\"> &\n Pick<UseDownshiftComboboxProps<Item>, \"itemToString\" | \"itemToKey\"> &\n DataTrackingId & {\n prefix?:\n | string\n | { icon: DistributiveOmit<IconProps, \"size\"> }\n | { avatar: DistributiveOmit<AvatarProps, \"size\"> };\n } & (\n | {\n multiple?: never;\n onChange?:\n | Dispatch<SetStateAction<Item | null>>\n | ((arg: Item | null) => void);\n selectedItem: UseDownshiftComboboxProps<Item>[\"selectedItem\"];\n selectedItems?: never;\n }\n | {\n multiple: true;\n onChange?:\n | Dispatch<SetStateAction<Item[] | null>>\n | ((arg: Item[] | null) => void);\n selectedItem?: never;\n selectedItems: UseDownshiftMultipleSelectionProps<Item>[\"selectedItems\"];\n }\n );\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: look into unknown\nexport const SelectTrigger = function <Item = any>(\n props: SelectTriggerProps<Item>,\n) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n className,\n style,\n label,\n size,\n error,\n hint,\n description,\n required,\n moreInfo,\n moreInfoOpen,\n prefix: prefixProp,\n suffix,\n maxRows,\n selectedItemProps = () => ({}),\n id,\n placeholder,\n disabled: isDisabled,\n readOnly: isReadOnly,\n onClick,\n multiple,\n onChange,\n disableClearSelection,\n itemToString: itemToStringProp,\n itemToKey: itemToKeyProp,\n selectedItem = null,\n selectedItems = [],\n ...rest\n } = componentProps;\n\n const itemToString = itemToStringProp ?? defaultItemToString<Item>;\n const itemToKey = itemToKeyProp ?? defaultItemToKey<Item>;\n\n function removeSelectedItem(item: Item) {\n if (multiple) {\n onChange?.(\n selectedItems.filter(\n (selectedItem: Item) => itemToKey(selectedItem) !== itemToKey(item),\n ),\n );\n } else if (itemToKey(selectedItem) === itemToKey(item)) {\n onChange?.(null);\n }\n }\n\n function reset() {\n if (multiple) {\n onChange?.([]);\n } else {\n onChange?.(null);\n }\n }\n\n const noClearButton = isDisabled || isReadOnly || disableClearSelection;\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const data = {\n label: childrenToString(props.label),\n size: props.size,\n required: props.required,\n moreInfo: props.moreInfo,\n moreInfoOpen: props.moreInfoOpen,\n description: childrenToString(props.description),\n hint: props.hint,\n labelProps: props.labelProps,\n };\n\n const trackingId = useTrackingId({\n name: \"ComboboxSearchField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const prefix =\n prefixProp == null || typeof prefixProp === \"string\" ? (\n prefixProp\n ) : \"icon\" in prefixProp ? (\n <Icon {...prefixProp.icon} />\n ) : \"avatar\" in prefixProp ? (\n <Avatar\n {...prefixProp.avatar}\n size={props.size === \"small\" ? \"small\" : \"medium\"}\n />\n ) : (\n prefixProp\n );\n\n return (\n <SelectTriggerBase\n data-anv=\"select-trigger\"\n data-tracking-id={trackingId}\n className={className}\n style={styleCombined}\n label={label}\n size={size}\n error={error}\n hint={hint}\n description={description}\n labelProps={{\n required,\n moreInfo,\n moreInfoOpen,\n }}\n prefix={prefix}\n suffix={suffix}\n maxRows={maxRows}\n selectedItemProps={selectedItemProps}\n id={id}\n placeholder={placeholder}\n disabled={isDisabled}\n readOnly={isReadOnly}\n itemToString={itemToString}\n removeSelectedItem={removeSelectedItem}\n disableClearSelection={noClearButton}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n onClearButtonClick={reset}\n inputWrapperProps={{ onClick }}\n inputProps={rest}\n />\n );\n};\n"],"names":["selectedItem"],"mappings":"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"}
1
+ {"version":3,"file":"SelectTrigger-Cxhx9IVo.js","sources":["../src/components/SelectTrigger/SelectTrigger.tsx"],"sourcesContent":["import { Dispatch, SetStateAction } from \"react\";\nimport {\n UseComboboxProps as UseDownshiftComboboxProps,\n UseMultipleSelectionProps as UseDownshiftMultipleSelectionProps,\n} from \"downshift\";\n\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { DataTrackingId, DistributiveOmit } from \"../../types\";\nimport { FieldLabelProps } from \"../FieldLabel\";\nimport { Icon, IconProps } from \"../Icon\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport {\n SelectTriggerBase,\n SelectTriggerBaseProps,\n} from \"./internal/SelectTriggerBase\";\nimport {\n defaultItemToKey,\n defaultItemToString,\n} from \"../Combobox/internal/ComboboxUtils\";\n\nexport type SelectTriggerProps<Item> = DistributiveOmit<\n SelectTriggerBaseProps<Item>,\n \"prefix\" | \"selectedItem\" | \"selectedItems\" | \"onChange\"\n> &\n Pick<FieldLabelProps, \"required\" | \"moreInfo\" | \"moreInfoOpen\"> &\n Pick<UseDownshiftComboboxProps<Item>, \"itemToString\" | \"itemToKey\"> &\n DataTrackingId & {\n prefix?:\n | string\n | { icon: DistributiveOmit<IconProps, \"size\"> }\n | { avatar: DistributiveOmit<AvatarProps, \"size\"> };\n } & (\n | {\n multiple?: never;\n onChange?:\n | Dispatch<SetStateAction<Item | null>>\n | ((arg: Item | null) => void);\n selectedItem: UseDownshiftComboboxProps<Item>[\"selectedItem\"];\n selectedItems?: never;\n }\n | {\n multiple: true;\n onChange?:\n | Dispatch<SetStateAction<Item[] | null>>\n | ((arg: Item[] | null) => void);\n selectedItem?: never;\n selectedItems: UseDownshiftMultipleSelectionProps<Item>[\"selectedItems\"];\n }\n );\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO: look into unknown\nexport const SelectTrigger = function <Item = any>(\n props: SelectTriggerProps<Item>,\n) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n className,\n style,\n label,\n size,\n error,\n hint,\n description,\n required,\n moreInfo,\n moreInfoOpen,\n prefix: prefixProp,\n suffix,\n maxRows,\n selectedItemProps = () => ({}),\n id,\n placeholder,\n disabled: isDisabled,\n readOnly: isReadOnly,\n onClick,\n multiple,\n onChange,\n disableClearSelection,\n itemToString: itemToStringProp,\n itemToKey: itemToKeyProp,\n selectedItem = null,\n selectedItems = [],\n ...rest\n } = componentProps;\n\n const itemToString = itemToStringProp ?? defaultItemToString<Item>;\n const itemToKey = itemToKeyProp ?? defaultItemToKey<Item>;\n\n function removeSelectedItem(item: Item) {\n if (multiple) {\n onChange?.(\n selectedItems.filter(\n (selectedItem: Item) => itemToKey(selectedItem) !== itemToKey(item),\n ),\n );\n } else if (itemToKey(selectedItem) === itemToKey(item)) {\n onChange?.(null);\n }\n }\n\n function reset() {\n if (multiple) {\n onChange?.([]);\n } else {\n onChange?.(null);\n }\n }\n\n const noClearButton = isDisabled || isReadOnly || disableClearSelection;\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const data = {\n label: childrenToString(props.label),\n size: props.size,\n required: props.required,\n moreInfo: props.moreInfo,\n moreInfoOpen: props.moreInfoOpen,\n description: childrenToString(props.description),\n hint: props.hint,\n labelProps: props.labelProps,\n };\n\n const trackingId = useTrackingId({\n name: \"ComboboxSearchField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const prefix =\n prefixProp == null || typeof prefixProp === \"string\" ? (\n prefixProp\n ) : \"icon\" in prefixProp ? (\n <Icon {...prefixProp.icon} />\n ) : \"avatar\" in prefixProp ? (\n <Avatar\n {...prefixProp.avatar}\n size={props.size === \"small\" ? \"small\" : \"medium\"}\n />\n ) : (\n prefixProp\n );\n\n return (\n <SelectTriggerBase\n data-anv=\"select-trigger\"\n data-tracking-id={trackingId}\n className={className}\n style={styleCombined}\n label={label}\n size={size}\n error={error}\n hint={hint}\n description={description}\n labelProps={{\n required,\n moreInfo,\n moreInfoOpen,\n }}\n prefix={prefix}\n suffix={suffix}\n maxRows={maxRows}\n selectedItemProps={selectedItemProps}\n id={id}\n placeholder={placeholder}\n disabled={isDisabled}\n readOnly={isReadOnly}\n itemToString={itemToString}\n removeSelectedItem={removeSelectedItem}\n disableClearSelection={noClearButton}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n onClearButtonClick={reset}\n inputWrapperProps={{ onClick }}\n inputProps={rest}\n />\n );\n};\n"],"names":["selectedItem"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { S as SelectTrigger, S as default } from './SelectTrigger-DVLdDbfd.js';
1
+ export { S as SelectTrigger, S as default } from './SelectTrigger-Cxhx9IVo.js';
2
2
  //# sourceMappingURL=SelectTrigger.js.map