@servicetitan/anvil2 2.9.2 → 3.0.1

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 (499) hide show
  1. package/CHANGELOG.md +79 -2
  2. package/dist/{AiMark-DhgDh95y.js → AiMark-B1-M3ZgP.js} +27 -26
  3. package/dist/{AiMark-DhgDh95y.js.map → AiMark-B1-M3ZgP.js.map} +1 -1
  4. package/dist/AiMark.css +246 -256
  5. package/dist/AiMark.js +1 -1
  6. package/dist/{Alert-DffLPz0l.js → Alert-C04WIw7A.js} +20 -31
  7. package/dist/Alert-C04WIw7A.js.map +1 -0
  8. package/dist/Alert.css +72 -90
  9. package/dist/Alert.js +1 -1
  10. package/dist/{Announcement-B9zm-_1S.js → Announcement-_C5g2Lzm.js} +14 -14
  11. package/dist/{Announcement-B9zm-_1S.js.map → Announcement-_C5g2Lzm.js.map} +1 -1
  12. package/dist/Announcement.css +108 -97
  13. package/dist/Announcement.js +1 -1
  14. package/dist/{AnvilProvider-DUPYyMc7.js → AnvilProvider-JXEbeQjR.js} +13 -8
  15. package/dist/AnvilProvider-JXEbeQjR.js.map +1 -0
  16. package/dist/AnvilProvider.css +1 -2
  17. package/dist/AnvilProvider.js +1 -1
  18. package/dist/{Avatar-ChybzixS.js → Avatar-BmNcLUg-.js} +2 -2
  19. package/dist/{Avatar-ChybzixS.js.map → Avatar-BmNcLUg-.js.map} +1 -1
  20. package/dist/{Avatar-BckUfs1N.js → Avatar-Cw8B8xZV.js} +24 -24
  21. package/dist/Avatar-Cw8B8xZV.js.map +1 -0
  22. package/dist/Avatar.css +116 -177
  23. package/dist/Avatar.js +2 -2
  24. package/dist/{Badge-C2W7Dls9.js → Badge-C_wTvtnB.js} +7 -7
  25. package/dist/{Badge-C2W7Dls9.js.map → Badge-C_wTvtnB.js.map} +1 -1
  26. package/dist/Badge.css +42 -50
  27. package/dist/Badge.js +1 -1
  28. package/dist/{Breadcrumbs-CkPZHJGM.js → Breadcrumbs-CAJMeA1D.js} +7 -7
  29. package/dist/{Breadcrumbs-CkPZHJGM.js.map → Breadcrumbs-CAJMeA1D.js.map} +1 -1
  30. package/dist/Breadcrumbs.css +37 -45
  31. package/dist/Breadcrumbs.js +1 -1
  32. package/dist/{Button-BdrrhBTI.js → Button-Bnt8XUI7.js} +13 -10
  33. package/dist/{Button-BdrrhBTI.js.map → Button-Bnt8XUI7.js.map} +1 -1
  34. package/dist/Button.css +274 -335
  35. package/dist/Button.js +1 -1
  36. package/dist/Button.module-DsGhJYRw.js +23 -0
  37. package/dist/Button.module-DsGhJYRw.js.map +1 -0
  38. package/dist/{ButtonCompound-Cmw3cgMY.js → ButtonCompound-DsrK7G3q.js} +11 -4
  39. package/dist/ButtonCompound-DsrK7G3q.js.map +1 -0
  40. package/dist/ButtonCompound.css +25 -0
  41. package/dist/ButtonCompound.js +1 -1
  42. package/dist/{ButtonLink-BJKTJER8.js → ButtonLink-j3h_wRNi.js} +9 -6
  43. package/dist/ButtonLink-j3h_wRNi.js.map +1 -0
  44. package/dist/ButtonLink.js +1 -1
  45. package/dist/{ButtonToggle-DaFQ3DBG.js → ButtonToggle-Ct9_5bhC.js} +7 -4
  46. package/dist/ButtonToggle-Ct9_5bhC.js.map +1 -0
  47. package/dist/ButtonToggle.css +109 -0
  48. package/dist/ButtonToggle.js +1 -1
  49. package/dist/{Calendar-CaWPwtb3.js → Calendar-BAbAagIx.js} +2 -2
  50. package/dist/{Calendar-CaWPwtb3.js.map → Calendar-BAbAagIx.js.map} +1 -1
  51. package/dist/{Calendar-0DG2so95.js → Calendar-CaCMa_jq.js} +38 -35
  52. package/dist/Calendar-CaCMa_jq.js.map +1 -0
  53. package/dist/Calendar.css +250 -301
  54. package/dist/Calendar.js +2 -2
  55. package/dist/{Card-wz71dEVA.js → Card-DSFuXUGk.js} +11 -11
  56. package/dist/{Card-wz71dEVA.js.map → Card-DSFuXUGk.js.map} +1 -1
  57. package/dist/Card.css +51 -65
  58. package/dist/Card.js +1 -1
  59. package/dist/{Checkbox-B1I1OfZU.js → Checkbox-BSAS8-DM.js} +28 -39
  60. package/dist/Checkbox-BSAS8-DM.js.map +1 -0
  61. package/dist/{Checkbox-CTR7JfWk.js → Checkbox-Ckl8EFpF.js} +2 -2
  62. package/dist/{Checkbox-CTR7JfWk.js.map → Checkbox-Ckl8EFpF.js.map} +1 -1
  63. package/dist/Checkbox.css +237 -271
  64. package/dist/Checkbox.js +1 -1
  65. package/dist/Checkbox.module-TYMeYIxw.js +28 -0
  66. package/dist/Checkbox.module-TYMeYIxw.js.map +1 -0
  67. package/dist/{Chip-lIWu8uXb.js → Chip-Da8c7tKP.js} +31 -23
  68. package/dist/Chip-Da8c7tKP.js.map +1 -0
  69. package/dist/Chip.css +191 -206
  70. package/dist/Chip.js +1 -1
  71. package/dist/{Combobox-Dt3AnO9Z.js → Combobox-CBLaT1lU.js} +59 -72
  72. package/dist/Combobox-CBLaT1lU.js.map +1 -0
  73. package/dist/Combobox.css +158 -176
  74. package/dist/Combobox.js +1 -1
  75. package/dist/{DataTable-bMoIuYBK.js → DataTable-BDXdCF7J.js} +73 -72
  76. package/dist/{DataTable-bMoIuYBK.js.map → DataTable-BDXdCF7J.js.map} +1 -1
  77. package/dist/DataTable.css +593 -780
  78. package/dist/{DateFieldRange-B_D6v-F7.js → DateFieldRange-DPTC3EZz.js} +6 -6
  79. package/dist/{DateFieldRange-B_D6v-F7.js.map → DateFieldRange-DPTC3EZz.js.map} +1 -1
  80. package/dist/DateFieldRange.js +1 -1
  81. package/dist/{DateFieldSingle-D_Ve0E6q.js → DateFieldSingle-w1G-zd9G.js} +6 -6
  82. package/dist/{DateFieldSingle-D_Ve0E6q.js.map → DateFieldSingle-w1G-zd9G.js.map} +1 -1
  83. package/dist/DateFieldSingle.js +1 -1
  84. package/dist/{DateFieldYearless-Bg7OLIsT.js → DateFieldYearless-DHNVc7Sd.js} +7 -7
  85. package/dist/{DateFieldYearless-Bg7OLIsT.js.map → DateFieldYearless-DHNVc7Sd.js.map} +1 -1
  86. package/dist/DateFieldYearless.js +1 -1
  87. package/dist/{DateFieldYearlessRange-C40uUmLK.js → DateFieldYearlessRange-C5ktVUgG.js} +10 -10
  88. package/dist/{DateFieldYearlessRange-C40uUmLK.js.map → DateFieldYearlessRange-C5ktVUgG.js.map} +1 -1
  89. package/dist/DateFieldYearlessRange.css +11 -19
  90. package/dist/DateFieldYearlessRange.js +1 -1
  91. package/dist/{DaysOfTheWeek-2a8Ukq59.js → DaysOfTheWeek-BubWkBZ0.js} +10 -10
  92. package/dist/{DaysOfTheWeek-2a8Ukq59.js.map → DaysOfTheWeek-BubWkBZ0.js.map} +1 -1
  93. package/dist/DaysOfTheWeek.css +19 -27
  94. package/dist/DaysOfTheWeek.js +1 -1
  95. package/dist/{Details-CZOIpNP_.js → Details-DYRJcLWL.js} +10 -10
  96. package/dist/{Details-CZOIpNP_.js.map → Details-DYRJcLWL.js.map} +1 -1
  97. package/dist/Details.css +134 -138
  98. package/dist/Details.js +1 -1
  99. package/dist/{Dialog-zxpNOCDS.js → Dialog-ByTyuybu.js} +29 -28
  100. package/dist/Dialog-ByTyuybu.js.map +1 -0
  101. package/dist/Dialog.css +108 -143
  102. package/dist/Dialog.js +1 -1
  103. package/dist/{DialogCancelButton-Czz4Wpse.js → DialogCancelButton-CbtQcf2J.js} +2 -2
  104. package/dist/{DialogCancelButton-Czz4Wpse.js.map → DialogCancelButton-CbtQcf2J.js.map} +1 -1
  105. package/dist/{Divider-B1UoK8ho.js → Divider-Ds3WKsKa.js} +19 -19
  106. package/dist/{Divider-B1UoK8ho.js.map → Divider-Ds3WKsKa.js.map} +1 -1
  107. package/dist/Divider.css +93 -169
  108. package/dist/Divider.js +1 -1
  109. package/dist/Dnd.js +1 -1
  110. package/dist/DndSort.css +18 -34
  111. package/dist/DndSort.js +10 -10
  112. package/dist/{Drawer-DkCcE434.js → Drawer-CwyfBcwt.js} +27 -28
  113. package/dist/{Drawer-DkCcE434.js.map → Drawer-CwyfBcwt.js.map} +1 -1
  114. package/dist/Drawer.css +109 -144
  115. package/dist/Drawer.js +1 -1
  116. package/dist/DrillDown.css +117 -131
  117. package/dist/DrillDown.js +1 -1
  118. package/dist/DrillDown.module-D1Bf9_yP.js +27 -0
  119. package/dist/{DrillDown.module-C8VOhzaF.js.map → DrillDown.module-D1Bf9_yP.js.map} +1 -1
  120. package/dist/{EditCard-BKHmnbKP.js → EditCard-DqLSnkih.js} +21 -20
  121. package/dist/{EditCard-BKHmnbKP.js.map → EditCard-DqLSnkih.js.map} +1 -1
  122. package/dist/EditCard.css +71 -65
  123. package/dist/EditCard.js +1 -1
  124. package/dist/{FieldLabel-M5v4-PAV.js → FieldLabel-DZWu5dMp.js} +17 -17
  125. package/dist/{FieldLabel-M5v4-PAV.js.map → FieldLabel-DZWu5dMp.js.map} +1 -1
  126. package/dist/FieldLabel.css +66 -102
  127. package/dist/FieldLabel.js +1 -1
  128. package/dist/FieldMessage-DzxfodaI.js +81 -0
  129. package/dist/FieldMessage-DzxfodaI.js.map +1 -0
  130. package/dist/FieldMessage.css +20 -29
  131. package/dist/FieldMessage.js +1 -1
  132. package/dist/{Toolbar-Dsaufi65.js → FilterBar-BU8StPPd.js} +129 -941
  133. package/dist/FilterBar-BU8StPPd.js.map +1 -0
  134. package/dist/FilterBar.css +59 -0
  135. package/dist/FilterBar.d.ts +6 -0
  136. package/dist/FilterBar.js +2 -0
  137. package/dist/FilterBar.js.map +1 -0
  138. package/dist/{Flex-WyyZm1bf.js → Flex-DOUtHiPi.js} +4 -4
  139. package/dist/{Flex-WyyZm1bf.js.map → Flex-DOUtHiPi.js.map} +1 -1
  140. package/dist/Flex.css +25 -28
  141. package/dist/Flex.js +1 -1
  142. package/dist/{Grid-DeYIx5k4.js → Grid-B1VVssDD.js} +5 -5
  143. package/dist/{Grid-DeYIx5k4.js.map → Grid-B1VVssDD.js.map} +1 -1
  144. package/dist/Grid.css +37 -54
  145. package/dist/Grid.js +1 -1
  146. package/dist/{Helper-B_FIOlhy.js → Helper-DtDeaYTn.js} +8 -10
  147. package/dist/Helper-DtDeaYTn.js.map +1 -0
  148. package/dist/Helper.css +4 -16
  149. package/dist/{Icon-DuIlne4x.js → Icon-BMMbp40n.js} +7 -7
  150. package/dist/{Icon-DuIlne4x.js.map → Icon-BMMbp40n.js.map} +1 -1
  151. package/dist/Icon.css +42 -48
  152. package/dist/Icon.js +1 -1
  153. package/dist/{InputMask-PVCfJodz.js → InputMask-EwEJlW-t.js} +3 -3
  154. package/dist/{InputMask-PVCfJodz.js.map → InputMask-EwEJlW-t.js.map} +1 -1
  155. package/dist/InputMask.js +1 -1
  156. package/dist/{InteractiveCard-GTYbR6Xy.js → InteractiveCard-CnW0m_F-.js} +7 -7
  157. package/dist/{InteractiveCard-GTYbR6Xy.js.map → InteractiveCard-CnW0m_F-.js.map} +1 -1
  158. package/dist/InteractiveCard.css +56 -57
  159. package/dist/InteractiveCard.js +1 -1
  160. package/dist/{Layout-CISAxILX.js → Layout-C2Q2hyLG.js} +80 -80
  161. package/dist/{Layout-CISAxILX.js.map → Layout-C2Q2hyLG.js.map} +1 -1
  162. package/dist/Layout.css +260 -324
  163. package/dist/Layout.js +1 -1
  164. package/dist/{Link-jTvzyXca.js → Link-BUgivkGS.js} +8 -8
  165. package/dist/{Link-jTvzyXca.js.map → Link-BUgivkGS.js.map} +1 -1
  166. package/dist/Link.css +48 -65
  167. package/dist/Link.js +1 -1
  168. package/dist/Link.module-DJc0cOlg.js +12 -0
  169. package/dist/Link.module-DJc0cOlg.js.map +1 -0
  170. package/dist/{LinkButton-DGyHR1E7.js → LinkButton-CuHSdGdj.js} +7 -16
  171. package/dist/LinkButton-CuHSdGdj.js.map +1 -0
  172. package/dist/LinkButton.js +1 -1
  173. package/dist/{List--KhCpjZn.js → List-BXyHWQ9e.js} +8 -8
  174. package/dist/{List--KhCpjZn.js.map → List-BXyHWQ9e.js.map} +1 -1
  175. package/dist/List.css +39 -58
  176. package/dist/List.js +1 -1
  177. package/dist/{ListView-DT32FdKH.js → ListView-DBO9Bl1H.js} +4 -4
  178. package/dist/{ListView-DT32FdKH.js.map → ListView-DBO9Bl1H.js.map} +1 -1
  179. package/dist/ListView.css +108 -120
  180. package/dist/ListView.js +1 -1
  181. package/dist/ListView.module-CRk9NfLG.js +9 -0
  182. package/dist/ListView.module-CRk9NfLG.js.map +1 -0
  183. package/dist/{Listbox-BR0HTJaM.js → Listbox-C0tjQFDF.js} +7 -7
  184. package/dist/{Listbox-BR0HTJaM.js.map → Listbox-C0tjQFDF.js.map} +1 -1
  185. package/dist/Listbox.css +102 -143
  186. package/dist/Listbox.js +1 -1
  187. package/dist/Listbox.module-CfpLm9pS.js +18 -0
  188. package/dist/Listbox.module-CfpLm9pS.js.map +1 -0
  189. package/dist/{LocalizationProvider-DWCyga_d.js → LocalizationProvider-CO8fQGqs.js} +2 -2
  190. package/dist/{LocalizationProvider-DWCyga_d.js.map → LocalizationProvider-CO8fQGqs.js.map} +1 -1
  191. package/dist/LocalizationProvider.js +1 -1
  192. package/dist/{Menu-CCavGohP.js → Menu-wpTyUDac.js} +10 -10
  193. package/dist/{Menu-CCavGohP.js.map → Menu-wpTyUDac.js.map} +1 -1
  194. package/dist/Menu.css +135 -137
  195. package/dist/Menu.js +1 -1
  196. package/dist/MultiSelectField.js +1 -1
  197. package/dist/{MultiSelectFieldSync-fV2O5J0N.js → MultiSelectFieldSync-ueey5UBM.js} +34 -33
  198. package/dist/MultiSelectFieldSync-ueey5UBM.js.map +1 -0
  199. package/dist/MultiSelectFieldSync.css +263 -257
  200. package/dist/MultiSelectMenu.js +1 -1
  201. package/dist/{MultiSelectMenuSync-BViWKlX1.js → MultiSelectMenuSync-D7hqugcQ.js} +4 -4
  202. package/dist/{MultiSelectMenuSync-BViWKlX1.js.map → MultiSelectMenuSync-D7hqugcQ.js.map} +1 -1
  203. package/dist/{NumberField-BxWTjbmF.js → NumberField-DJbdyatF.js} +15 -12
  204. package/dist/{NumberField-BxWTjbmF.js.map → NumberField-DJbdyatF.js.map} +1 -1
  205. package/dist/NumberField.css +34 -49
  206. package/dist/NumberField.js +1 -1
  207. package/dist/Overflow.css +143 -164
  208. package/dist/Overflow.js +44 -42
  209. package/dist/Overflow.js.map +1 -1
  210. package/dist/{Page-DFjOwTzH.js → Page-DbK-JKyB.js} +66 -66
  211. package/dist/Page-DbK-JKyB.js.map +1 -0
  212. package/dist/Page.css +384 -404
  213. package/dist/Page.js +1 -1
  214. package/dist/{Pagination-B9pdkp_V.js → Pagination-Bg5Nsdik.js} +29 -34
  215. package/dist/{Pagination-B9pdkp_V.js.map → Pagination-Bg5Nsdik.js.map} +1 -1
  216. package/dist/Pagination.css +63 -117
  217. package/dist/Pagination.js +1 -1
  218. package/dist/{Popover-CfG1IJP6.js → Popover-CyB7yzSf.js} +8 -8
  219. package/dist/{Popover-CfG1IJP6.js.map → Popover-CyB7yzSf.js.map} +1 -1
  220. package/dist/Popover.css +84 -97
  221. package/dist/Popover.js +1 -1
  222. package/dist/{ProgressBar-CFKKuXeN.js → ProgressBar-DSrjgLTx.js} +15 -15
  223. package/dist/{ProgressBar-CFKKuXeN.js.map → ProgressBar-DSrjgLTx.js.map} +1 -1
  224. package/dist/ProgressBar.css +59 -81
  225. package/dist/ProgressBar.js +1 -1
  226. package/dist/{Radio-CeVjHOXe.js → Radio-CQaXJ72d.js} +2 -2
  227. package/dist/{Radio-CeVjHOXe.js.map → Radio-CQaXJ72d.js.map} +1 -1
  228. package/dist/{Radio-Dda5sh2r.js → Radio-DO4UhbBE.js} +45 -48
  229. package/dist/Radio-DO4UhbBE.js.map +1 -0
  230. package/dist/Radio.css +233 -229
  231. package/dist/Radio.js +1 -1
  232. package/dist/{SearchField-im7AHGYo.js → SearchField-BKJOW-vI.js} +11 -20
  233. package/dist/SearchField-BKJOW-vI.js.map +1 -0
  234. package/dist/SearchField-BplvDpBG.js +13 -0
  235. package/dist/SearchField-BplvDpBG.js.map +1 -0
  236. package/dist/SearchField.css +22 -39
  237. package/dist/SearchField.js +1 -1
  238. package/dist/{SegmentedControl-B9NWUF7s.js → SegmentedControl-Chhqyyra.js} +15 -16
  239. package/dist/SegmentedControl-Chhqyyra.js.map +1 -0
  240. package/dist/SegmentedControl.css +103 -122
  241. package/dist/SegmentedControl.js +1 -1
  242. package/dist/SelectCard-CtXwY8FZ.js +351 -0
  243. package/dist/SelectCard-CtXwY8FZ.js.map +1 -0
  244. package/dist/SelectCard.css +135 -82
  245. package/dist/SelectCard.js +1 -1
  246. package/dist/SelectField.js +1 -1
  247. package/dist/{SelectFieldLabel-ChEvk0uS.js → SelectFieldLabel-DLT5dKbx.js} +3 -3
  248. package/dist/{SelectFieldLabel-ChEvk0uS.js.map → SelectFieldLabel-DLT5dKbx.js.map} +1 -1
  249. package/dist/{SelectFieldSync-CDIRIYv2.js → SelectFieldSync-W_-jTf7z.js} +9 -8
  250. package/dist/SelectFieldSync-W_-jTf7z.js.map +1 -0
  251. package/dist/SelectMenu.js +1 -1
  252. package/dist/{SelectMenuSync-DkQrikHz.js → SelectMenuSync-QcjbQtCO.js} +4 -4
  253. package/dist/{SelectMenuSync-DkQrikHz.js.map → SelectMenuSync-QcjbQtCO.js.map} +1 -1
  254. package/dist/{SelectOptions-BN1tCi7P.js → SelectOptions-BsX0f22q.js} +2 -2
  255. package/dist/{SelectOptions-BN1tCi7P.js.map → SelectOptions-BsX0f22q.js.map} +1 -1
  256. package/dist/{SelectTrigger-LZUtpAFW.js → SelectTrigger-BaDvF9JD.js} +5 -5
  257. package/dist/{SelectTrigger-LZUtpAFW.js.map → SelectTrigger-BaDvF9JD.js.map} +1 -1
  258. package/dist/SelectTrigger.js +1 -1
  259. package/dist/{SelectTriggerBase-qeFownmF.js → SelectTriggerBase-kMRqbXwu.js} +8 -7
  260. package/dist/{SelectTriggerBase-qeFownmF.js.map → SelectTriggerBase-kMRqbXwu.js.map} +1 -1
  261. package/dist/SelectTriggerBase.css +231 -305
  262. package/dist/SelectTriggerBase.module-DKF1FQnc.js +37 -0
  263. package/dist/SelectTriggerBase.module-DKF1FQnc.js.map +1 -0
  264. package/dist/{SideNav-CrxYExjh.js → SideNav-CZRVOSbt.js} +19 -14
  265. package/dist/SideNav-CZRVOSbt.js.map +1 -0
  266. package/dist/SideNav.css +126 -294
  267. package/dist/SideNav.js +1 -1
  268. package/dist/Skeleton.css +57 -65
  269. package/dist/Skeleton.js +16 -16
  270. package/dist/Skeleton.js.map +1 -1
  271. package/dist/{Spinner-BqmcE2pb.js → Spinner-lPMo68yW.js} +16 -17
  272. package/dist/Spinner-lPMo68yW.js.map +1 -0
  273. package/dist/Spinner.css +33 -43
  274. package/dist/Spinner.js +1 -1
  275. package/dist/{SrOnly-eUpYGpAT.js → SrOnly-pnf8ajnh.js} +2 -2
  276. package/dist/{SrOnly-eUpYGpAT.js.map → SrOnly-pnf8ajnh.js.map} +1 -1
  277. package/dist/SrOnly.css +12 -14
  278. package/dist/SrOnly.js +1 -1
  279. package/dist/StatusIcon-BwULopyH.js +57 -0
  280. package/dist/StatusIcon-BwULopyH.js.map +1 -0
  281. package/dist/StatusIcon.css +32 -0
  282. package/dist/{Stepper-Dt2xAXth.js → Stepper-CYY64NU1.js} +16 -16
  283. package/dist/{Stepper-Dt2xAXth.js.map → Stepper-CYY64NU1.js.map} +1 -1
  284. package/dist/Stepper.css +180 -239
  285. package/dist/Stepper.js +1 -1
  286. package/dist/{Switch-3u7oAQQV.js → Switch-DeBu4Ucg.js} +17 -13
  287. package/dist/{Switch-3u7oAQQV.js.map → Switch-DeBu4Ucg.js.map} +1 -1
  288. package/dist/Switch.css +109 -125
  289. package/dist/Switch.js +1 -1
  290. package/dist/{Tab-BZpTCG0i.js → Tab-CewPzmuK.js} +20 -34
  291. package/dist/Tab-CewPzmuK.js.map +1 -0
  292. package/dist/Tab.css +232 -194
  293. package/dist/Tab.js +1 -1
  294. package/dist/Table.js +1 -1
  295. package/dist/{Text-DQ78JchQ.js → Text-BH8gglCL.js} +15 -38
  296. package/dist/Text-BH8gglCL.js.map +1 -0
  297. package/dist/Text.css +101 -142
  298. package/dist/Text.js +1 -1
  299. package/dist/Text.module-BXrY87ui.js +23 -0
  300. package/dist/Text.module-BXrY87ui.js.map +1 -0
  301. package/dist/{TextField-DHk1k3cf.js → TextField-CRDTnuUN.js} +7 -7
  302. package/dist/{TextField-DHk1k3cf.js.map → TextField-CRDTnuUN.js.map} +1 -1
  303. package/dist/{TextField-Bu5kAe9_.js → TextField-YlMkDHp-.js} +2 -2
  304. package/dist/{TextField-Bu5kAe9_.js.map → TextField-YlMkDHp-.js.map} +1 -1
  305. package/dist/TextField.css +156 -148
  306. package/dist/TextField.js +1 -1
  307. package/dist/TextField.module-MRVo1X9H.js +23 -0
  308. package/dist/TextField.module-MRVo1X9H.js.map +1 -0
  309. package/dist/{Textarea-CYv02rxW.js → Textarea-CxXmr_Gx.js} +16 -13
  310. package/dist/{Textarea-CYv02rxW.js.map → Textarea-CxXmr_Gx.js.map} +1 -1
  311. package/dist/Textarea.css +71 -81
  312. package/dist/Textarea.js +1 -1
  313. package/dist/{ThemeProvider-CaYW3RuA.js → ThemeProvider-D4KdGCaP.js} +11 -9
  314. package/dist/ThemeProvider-D4KdGCaP.js.map +1 -0
  315. package/dist/ThemeProvider.css +586 -517
  316. package/dist/ThemeProvider.js +1 -1
  317. package/dist/{TimeField-BYtP64Qx.js → TimeField-Cz4tMYb3.js} +7 -7
  318. package/dist/{TimeField-BYtP64Qx.js.map → TimeField-Cz4tMYb3.js.map} +1 -1
  319. package/dist/TimeField.css +5 -8
  320. package/dist/TimeField.js +1 -1
  321. package/dist/{TimezoneMessage-Cnsl4cHT.js → TimezoneMessage-BrKB_psP.js} +2 -2
  322. package/dist/{TimezoneMessage-Cnsl4cHT.js.map → TimezoneMessage-BrKB_psP.js.map} +1 -1
  323. package/dist/TimezoneMessage.css +5 -5
  324. package/dist/Toast.js +2 -2
  325. package/dist/{Toaster-BRjGoIQu.js → Toaster-BV8RjmIN.js} +35 -34
  326. package/dist/Toaster-BV8RjmIN.js.map +1 -0
  327. package/dist/{Toaster-DO83u5o3.js → Toaster-DYGDohJT.js} +2 -2
  328. package/dist/{Toaster-DO83u5o3.js.map → Toaster-DYGDohJT.js.map} +1 -1
  329. package/dist/Toaster.css +210 -242
  330. package/dist/Toolbar-Dzj2KMEy.js +588 -0
  331. package/dist/Toolbar-Dzj2KMEy.js.map +1 -0
  332. package/dist/Toolbar.css +29 -204
  333. package/dist/Toolbar.js +2 -1
  334. package/dist/Toolbar.js.map +1 -1
  335. package/dist/ToolbarButtonToggle--2Ka05N8.js +284 -0
  336. package/dist/ToolbarButtonToggle--2Ka05N8.js.map +1 -0
  337. package/dist/ToolbarButtonToggle.css +41 -0
  338. package/dist/{Tooltip-C1PBRnJv.js → Tooltip-BlStOXN3.js} +8 -8
  339. package/dist/{Tooltip-C1PBRnJv.js.map → Tooltip-BlStOXN3.js.map} +1 -1
  340. package/dist/Tooltip.css +46 -58
  341. package/dist/Tooltip.js +1 -1
  342. package/dist/{YearlessDateInputWithPicker-CChqr1gR.js → YearlessDateInputWithPicker-DyytWt0x.js} +14 -16
  343. package/dist/{YearlessDateInputWithPicker-CChqr1gR.js.map → YearlessDateInputWithPicker-DyytWt0x.js.map} +1 -1
  344. package/dist/YearlessDateInputWithPicker.css +110 -196
  345. package/dist/assets/css-utils/a2-border.css +47 -45
  346. package/dist/assets/css-utils/a2-color.css +443 -227
  347. package/dist/assets/css-utils/a2-font.css +0 -2
  348. package/dist/assets/css-utils/a2-spacing.css +476 -478
  349. package/dist/assets/css-utils/a2-utils.css +992 -772
  350. package/dist/assets/css-utils/border.css +47 -45
  351. package/dist/assets/css-utils/color.css +443 -227
  352. package/dist/assets/css-utils/font.css +0 -2
  353. package/dist/assets/css-utils/spacing.css +476 -478
  354. package/dist/assets/css-utils/utils.css +992 -772
  355. package/dist/assets/icons/st/unsorted.svg +1 -1
  356. package/dist/beta/components/FilterBar/FilterBar.d.ts +87 -0
  357. package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterToggleButton.d.ts +1 -1
  358. package/dist/beta/components/FilterBar/index.d.ts +3 -0
  359. package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/FilterGroupContext.d.ts +5 -5
  360. package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/types.d.ts +2 -2
  361. package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/utils/test.d.ts +1 -0
  362. package/dist/beta/components/Toolbar/Toolbar.d.ts +0 -54
  363. package/dist/beta/components/Toolbar/index.d.ts +0 -1
  364. package/dist/beta/components/index.d.ts +1 -0
  365. package/dist/beta.js +12 -10
  366. package/dist/beta.js.map +1 -1
  367. package/dist/{indeterminate_check_box-B4zobNlt.js → check_box-0U1tbEAd.js} +2 -4
  368. package/dist/check_box-0U1tbEAd.js.map +1 -0
  369. package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
  370. package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
  371. package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
  372. package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
  373. package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
  374. package/dist/components/NumberField/NumberField.d.ts +1 -1
  375. package/dist/components/Page/Page.d.ts +2 -2
  376. package/dist/components/SearchField/internal/SearchField.d.ts +1 -1
  377. package/dist/components/Stepper/Stepper.d.ts +1 -1
  378. package/dist/components/Stepper/StepperStep.d.ts +1 -1
  379. package/dist/components/Tab/Tab.d.ts +1 -1
  380. package/dist/components/Tab/TabButton.d.ts +1 -1
  381. package/dist/indeterminate_check_box-jjLG4UY6.js +6 -0
  382. package/dist/indeterminate_check_box-jjLG4UY6.js.map +1 -0
  383. package/dist/{index-D6ag_WQW.js → index-ByMdotWU.js} +18 -18
  384. package/dist/{index-D6ag_WQW.js.map → index-ByMdotWU.js.map} +1 -1
  385. package/dist/index.css +98 -126
  386. package/dist/index.js +85 -82
  387. package/dist/index.js.map +1 -1
  388. package/dist/index2.css +57 -74
  389. package/dist/internal/components/StatusIcon/StatusIcon.d.ts +5 -5
  390. package/dist/internal/hooks/useSelectOrchestration.d.ts +1 -1
  391. package/dist/primitive-DXlHdTFb.js +1056 -0
  392. package/dist/primitive-DXlHdTFb.js.map +1 -0
  393. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +1 -0
  394. package/dist/{stripInlineMarkdown-V3M_UxQ8.js → stripInlineMarkdown-BWbMy7r_.js} +2 -2
  395. package/dist/{stripInlineMarkdown-V3M_UxQ8.js.map → stripInlineMarkdown-BWbMy7r_.js.map} +1 -1
  396. package/dist/{syncFilterUtils-DtOBvzdr.js → syncFilterUtils-nJS_tCsu.js} +50 -50
  397. package/dist/syncFilterUtils-nJS_tCsu.js.map +1 -0
  398. package/dist/syncFilterUtils.css +189 -217
  399. package/dist/token/core/component-variables.scss +1088 -131
  400. package/dist/token/core/component.d.ts +558 -0
  401. package/dist/token/core/component.js +6685 -249
  402. package/dist/token/core/component.scss +557 -69
  403. package/dist/token/core/css-utils/a2-border.css +47 -45
  404. package/dist/token/core/css-utils/a2-color.css +443 -227
  405. package/dist/token/core/css-utils/a2-font.css +0 -2
  406. package/dist/token/core/css-utils/a2-spacing.css +476 -478
  407. package/dist/token/core/css-utils/a2-utils.css +992 -772
  408. package/dist/token/core/css-utils/border.css +47 -45
  409. package/dist/token/core/css-utils/color.css +443 -227
  410. package/dist/token/core/css-utils/font.css +0 -2
  411. package/dist/token/core/css-utils/spacing.css +476 -478
  412. package/dist/token/core/css-utils/utils.css +992 -772
  413. package/dist/token/core/index.d.ts +6 -0
  414. package/dist/token/core/index.js +1 -1
  415. package/dist/token/core/primitive-variables.scss +148 -65
  416. package/dist/token/core/primitive.d.ts +209 -0
  417. package/dist/token/core/primitive.js +779 -61
  418. package/dist/token/core/primitive.scss +207 -124
  419. package/dist/token/core/semantic-variables.scss +363 -245
  420. package/dist/token/core/semantic.d.ts +221 -0
  421. package/dist/token/core/semantic.js +1592 -347
  422. package/dist/token/core/semantic.scss +219 -140
  423. package/dist/token.js +9075 -828
  424. package/dist/token.js.map +1 -1
  425. package/dist/{useBreakpoint-okJ64T1D.js → useBreakpoint-CeaUyHxh.js} +2 -2
  426. package/dist/{useBreakpoint-okJ64T1D.js.map → useBreakpoint-CeaUyHxh.js.map} +1 -1
  427. package/dist/useBreakpoint.js +1 -1
  428. package/dist/{useDrillDownContext-BssSasVB.js → useDrillDownContext-iUvoTget.js} +2 -2
  429. package/dist/{useDrillDownContext-BssSasVB.js.map → useDrillDownContext-iUvoTget.js.map} +1 -1
  430. package/dist/{useDrilldown-CK9KzXvI.js → useDrilldown-DwzT0Fse.js} +8 -8
  431. package/dist/{useDrilldown-CK9KzXvI.js.map → useDrilldown-DwzT0Fse.js.map} +1 -1
  432. package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-BUxEDMEG.js} +2 -2
  433. package/dist/{useInitialFocus-BIvXK1Rp.js.map → useInitialFocus-BUxEDMEG.js.map} +1 -1
  434. package/dist/{useLayoutPropsUtil-DMDdfIah.js → useLayoutPropsUtil-CB_zHDbW.js} +3 -3
  435. package/dist/{useLayoutPropsUtil-DMDdfIah.js.map → useLayoutPropsUtil-CB_zHDbW.js.map} +1 -1
  436. package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
  437. package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
  438. package/dist/{useToggleSelection-BMXohj4f.js → useToggleSelection-CAwGOeXk.js} +2 -2
  439. package/dist/{useToggleSelection-BMXohj4f.js.map → useToggleSelection-CAwGOeXk.js.map} +1 -1
  440. package/package.json +11 -11
  441. package/dist/Alert-DffLPz0l.js.map +0 -1
  442. package/dist/AnvilProvider-DUPYyMc7.js.map +0 -1
  443. package/dist/Avatar-BckUfs1N.js.map +0 -1
  444. package/dist/Button.module-wCtFYGVD.js +0 -26
  445. package/dist/Button.module-wCtFYGVD.js.map +0 -1
  446. package/dist/ButtonCompound-Cmw3cgMY.js.map +0 -1
  447. package/dist/ButtonLink-BJKTJER8.js.map +0 -1
  448. package/dist/ButtonToggle-DaFQ3DBG.js.map +0 -1
  449. package/dist/Calendar-0DG2so95.js.map +0 -1
  450. package/dist/Checkbox-B1I1OfZU.js.map +0 -1
  451. package/dist/Checkbox.module-EkRZO48Y.js +0 -28
  452. package/dist/Checkbox.module-EkRZO48Y.js.map +0 -1
  453. package/dist/Chip-lIWu8uXb.js.map +0 -1
  454. package/dist/Combobox-Dt3AnO9Z.js.map +0 -1
  455. package/dist/Dialog-zxpNOCDS.js.map +0 -1
  456. package/dist/DrillDown.module-C8VOhzaF.js +0 -27
  457. package/dist/FieldMessage-COHqUdj5.js +0 -132
  458. package/dist/FieldMessage-COHqUdj5.js.map +0 -1
  459. package/dist/Helper-B_FIOlhy.js.map +0 -1
  460. package/dist/Link.module-CZt9wvuD.js +0 -12
  461. package/dist/Link.module-CZt9wvuD.js.map +0 -1
  462. package/dist/LinkButton-DGyHR1E7.js.map +0 -1
  463. package/dist/LinkButton.css +0 -5
  464. package/dist/ListView.module-BilDg12y.js +0 -9
  465. package/dist/ListView.module-BilDg12y.js.map +0 -1
  466. package/dist/Listbox.module-HAXMOKvC.js +0 -18
  467. package/dist/Listbox.module-HAXMOKvC.js.map +0 -1
  468. package/dist/MultiSelectFieldSync-fV2O5J0N.js.map +0 -1
  469. package/dist/Page-DFjOwTzH.js.map +0 -1
  470. package/dist/Radio-Dda5sh2r.js.map +0 -1
  471. package/dist/SearchField-im7AHGYo.js.map +0 -1
  472. package/dist/SegmentedControl-B9NWUF7s.js.map +0 -1
  473. package/dist/SelectCard-COJn0wT6.js +0 -352
  474. package/dist/SelectCard-COJn0wT6.js.map +0 -1
  475. package/dist/SelectFieldSync-CDIRIYv2.js.map +0 -1
  476. package/dist/SelectTriggerBase.module-CKoq6qzX.js +0 -38
  477. package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +0 -1
  478. package/dist/SideNav-CrxYExjh.js.map +0 -1
  479. package/dist/Spinner-BqmcE2pb.js.map +0 -1
  480. package/dist/Tab-BZpTCG0i.js.map +0 -1
  481. package/dist/Text-DQ78JchQ.js.map +0 -1
  482. package/dist/TextField.module-BP-hDP5m.js +0 -22
  483. package/dist/TextField.module-BP-hDP5m.js.map +0 -1
  484. package/dist/ThemeProvider-CaYW3RuA.js.map +0 -1
  485. package/dist/Toaster-BRjGoIQu.js.map +0 -1
  486. package/dist/Toolbar-Dsaufi65.js.map +0 -1
  487. package/dist/beta/components/Toolbar/Filters/FilterGroup.d.ts +0 -25
  488. package/dist/indeterminate_check_box-B4zobNlt.js.map +0 -1
  489. package/dist/primitive-C3RFDRA8.js +0 -255
  490. package/dist/primitive-C3RFDRA8.js.map +0 -1
  491. package/dist/syncFilterUtils-DtOBvzdr.js.map +0 -1
  492. package/dist/token/core/raw.js +0 -234
  493. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterButton.d.ts +0 -0
  494. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDateRange.d.ts +0 -0
  495. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDateSingle.d.ts +0 -0
  496. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDrawer.d.ts +0 -0
  497. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterItemWrapper.d.ts +0 -0
  498. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterSelect.d.ts +0 -0
  499. /package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/utils/filter-state.d.ts +0 -0
@@ -1,255 +0,0 @@
1
- const BreakpointSm = { value: "640px" };
2
- const BreakpointMd = { value: "768px" };
3
- const BreakpointLg = { value: "1024px" };
4
- const BreakpointXl = { value: "1280px" };
5
- const BreakpointXxl = { value: "1536px" };
6
- const ColorBlue100 = { value: "#E0F2FF" };
7
- const ColorBlue200 = { value: "#B5DEFF" };
8
- const ColorBlue300 = { value: "#78BBFA" };
9
- const ColorBlue400 = { value: "#3892F3" };
10
- const ColorBlue500 = { value: "#0265DC" };
11
- const ColorBlue600 = { value: "#004491" };
12
- const ColorNeutral0 = { value: "#ffffff" };
13
- const ColorNeutral10 = { value: "#fcfcfc" };
14
- const ColorNeutral20 = { value: "#fafafa" };
15
- const ColorNeutral30 = { value: "#f7f7f7" };
16
- const ColorNeutral40 = { value: "#f5f5f5" };
17
- const ColorNeutral50 = { value: "#eeeeee" };
18
- const ColorNeutral60 = { value: "#dfe0e1" };
19
- const ColorNeutral70 = { value: "#bcbcbd" };
20
- const ColorNeutral80 = { value: "#949596" };
21
- const ColorNeutral90 = { value: "#737475" };
22
- const ColorNeutral100 = { value: "#606162" };
23
- const ColorNeutral200 = { value: "#444445" };
24
- const ColorNeutral300 = { value: "#2d2e31" };
25
- const ColorNeutral400 = { value: "#141414" };
26
- const ColorNeutral500 = { value: "#040404" };
27
- const ColorBlueGrey100 = { value: "#eaeff2" };
28
- const ColorBlueGrey200 = { value: "#d0d8dd" };
29
- const ColorBlueGrey300 = { value: "#b4c1c8" };
30
- const ColorBlueGrey400 = { value: "#8c9ca5" };
31
- const ColorBlueGrey500 = { value: "#6a7a85" };
32
- const ColorBlueGrey600 = { value: "#576671" };
33
- const ColorOrange100 = { value: "#ffeccc" };
34
- const ColorOrange200 = { value: "#fdd291" };
35
- const ColorOrange300 = { value: "#ffa037" };
36
- const ColorOrange400 = { value: "#e46f00" };
37
- const ColorOrange500 = { value: "#b14c00" };
38
- const ColorOrange600 = { value: "#7a2f00" };
39
- const ColorYellow100 = { value: "#fff9e2" };
40
- const ColorYellow200 = { value: "#fff0b1" };
41
- const ColorYellow300 = { value: "#ffe278" };
42
- const ColorYellow400 = { value: "#ffc902" };
43
- const ColorYellow500 = { value: "#ffbe00" };
44
- const ColorYellow600 = { value: "#de9500" };
45
- const ColorGreen100 = { value: "#CEF8E0" };
46
- const ColorGreen200 = { value: "#89ECBC" };
47
- const ColorGreen300 = { value: "#49CC93" };
48
- const ColorGreen400 = { value: "#15A46E" };
49
- const ColorGreen500 = { value: "#007A4D" };
50
- const ColorGreen600 = { value: "#005132" };
51
- const ColorCyan100 = { value: "#e3fcff" };
52
- const ColorCyan200 = { value: "#b1f3fa" };
53
- const ColorCyan300 = { value: "#13ceea" };
54
- const ColorCyan400 = { value: "#08bfdf" };
55
- const ColorCyan500 = { value: "#0ca5c0" };
56
- const ColorCyan600 = { value: "#038299" };
57
- const ColorPurple100 = { value: "#f1edff" };
58
- const ColorPurple200 = { value: "#c1b6f2" };
59
- const ColorPurple300 = { value: "#8772e5" };
60
- const ColorPurple400 = { value: "#6954c0" };
61
- const ColorPurple500 = { value: "#4f3a9e" };
62
- const ColorPurple600 = { value: "#422799" };
63
- const ColorRed100 = { value: "#ffece9" };
64
- const ColorRed200 = { value: "#ffb2a0" };
65
- const ColorRed300 = { value: "#ff745f" };
66
- const ColorRed400 = { value: "#f94d32" };
67
- const ColorRed500 = { value: "#e13212" };
68
- const ColorRed600 = { value: "#bf2a00" };
69
- const ColorMagenta100 = { value: "#fbeaf5" };
70
- const ColorMagenta200 = { value: "#faafe2" };
71
- const ColorMagenta300 = { value: "#d949a9" };
72
- const ColorMagenta400 = { value: "#b52d88" };
73
- const ColorMagenta500 = { value: "#982071" };
74
- const ColorMagenta600 = { value: "#7d165b" };
75
- const Duration = { value: "200ms" };
76
- const DurationInstant = { value: "0ms" };
77
- const DurationFast = { value: "100ms" };
78
- const DurationSlow = { value: "300ms" };
79
- const FontFamilyBase = { value: "'Nunito Sans', sans-serif" };
80
- const FontFamilyDisplay = { value: "'Sofia Pro', SofiaPro, sans-serif" };
81
- const FontLineHeightBase = { value: "1.5" };
82
- const FontLineHeightDisplay = { value: "1.25" };
83
- const FontWeightNormal = { value: "400" };
84
- const FontWeightSemibold = { value: "600" };
85
- const FontWeightBold = { value: "700" };
86
- const FontSize100 = { value: "0.625rem" };
87
- const FontSize200 = { value: "0.75rem" };
88
- const FontSize300 = { value: "0.875rem" };
89
- const FontSize400 = { value: "1rem" };
90
- const FontSize500 = { value: "1.25rem" };
91
- const FontSize600 = { value: "1.5rem" };
92
- const FontSize700 = { value: "1.75rem" };
93
- const FontSize800 = { value: "2rem" };
94
- const FontSize900 = { value: "2.25rem" };
95
- const Radius0 = { value: "0" };
96
- const Radius1 = { value: "0.1875rem" };
97
- const Radius2 = { value: "0.375rem" };
98
- const Radius3 = { value: "0.5625rem" };
99
- const Radius4 = { value: "0.75rem" };
100
- const Radius5 = { value: "0.9375rem" };
101
- const Radius6 = { value: "1.125rem" };
102
- const Radius7 = { value: "1.3125rem" };
103
- const Radius8 = { value: "1.5rem" };
104
- const Size0 = { value: "0rem" };
105
- const Size1 = { value: "0.25rem" };
106
- const Size2 = { value: "0.5rem" };
107
- const Size3 = { value: "0.75rem" };
108
- const Size4 = { value: "1rem" };
109
- const Size5 = { value: "1.25rem" };
110
- const Size6 = { value: "1.5rem" };
111
- const Size7 = { value: "1.75rem" };
112
- const Size8 = { value: "2rem" };
113
- const Size9 = { value: "2.25rem" };
114
- const Size10 = { value: "2.5rem" };
115
- const Size11 = { value: "2.75rem" };
116
- const Size12 = { value: "3rem" };
117
- const Size13 = { value: "3.25rem" };
118
- const Size14 = { value: "3.5rem" };
119
- const SizeQuarter = { value: "0.0625rem" };
120
- const SizeHalf = { value: "0.125rem" };
121
- const TransitionEase = { value: "cubic-bezier(.4, 0, .2, 1)" };
122
- const TransitionEaseIn = { value: "cubic-bezier(.4, 0, 1, 1)" };
123
- const TransitionEaseOut = { value: "cubic-bezier(0, 0, .4, 1)" };
124
- const TransitionEaseInOut = { value: "cubic-bezier(.4, 0, .6, 1)" };
125
-
126
- const primitive = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
127
- __proto__: null,
128
- BreakpointLg,
129
- BreakpointMd,
130
- BreakpointSm,
131
- BreakpointXl,
132
- BreakpointXxl,
133
- ColorBlue100,
134
- ColorBlue200,
135
- ColorBlue300,
136
- ColorBlue400,
137
- ColorBlue500,
138
- ColorBlue600,
139
- ColorBlueGrey100,
140
- ColorBlueGrey200,
141
- ColorBlueGrey300,
142
- ColorBlueGrey400,
143
- ColorBlueGrey500,
144
- ColorBlueGrey600,
145
- ColorCyan100,
146
- ColorCyan200,
147
- ColorCyan300,
148
- ColorCyan400,
149
- ColorCyan500,
150
- ColorCyan600,
151
- ColorGreen100,
152
- ColorGreen200,
153
- ColorGreen300,
154
- ColorGreen400,
155
- ColorGreen500,
156
- ColorGreen600,
157
- ColorMagenta100,
158
- ColorMagenta200,
159
- ColorMagenta300,
160
- ColorMagenta400,
161
- ColorMagenta500,
162
- ColorMagenta600,
163
- ColorNeutral0,
164
- ColorNeutral10,
165
- ColorNeutral100,
166
- ColorNeutral20,
167
- ColorNeutral200,
168
- ColorNeutral30,
169
- ColorNeutral300,
170
- ColorNeutral40,
171
- ColorNeutral400,
172
- ColorNeutral50,
173
- ColorNeutral500,
174
- ColorNeutral60,
175
- ColorNeutral70,
176
- ColorNeutral80,
177
- ColorNeutral90,
178
- ColorOrange100,
179
- ColorOrange200,
180
- ColorOrange300,
181
- ColorOrange400,
182
- ColorOrange500,
183
- ColorOrange600,
184
- ColorPurple100,
185
- ColorPurple200,
186
- ColorPurple300,
187
- ColorPurple400,
188
- ColorPurple500,
189
- ColorPurple600,
190
- ColorRed100,
191
- ColorRed200,
192
- ColorRed300,
193
- ColorRed400,
194
- ColorRed500,
195
- ColorRed600,
196
- ColorYellow100,
197
- ColorYellow200,
198
- ColorYellow300,
199
- ColorYellow400,
200
- ColorYellow500,
201
- ColorYellow600,
202
- Duration,
203
- DurationFast,
204
- DurationInstant,
205
- DurationSlow,
206
- FontFamilyBase,
207
- FontFamilyDisplay,
208
- FontLineHeightBase,
209
- FontLineHeightDisplay,
210
- FontSize100,
211
- FontSize200,
212
- FontSize300,
213
- FontSize400,
214
- FontSize500,
215
- FontSize600,
216
- FontSize700,
217
- FontSize800,
218
- FontSize900,
219
- FontWeightBold,
220
- FontWeightNormal,
221
- FontWeightSemibold,
222
- Radius0,
223
- Radius1,
224
- Radius2,
225
- Radius3,
226
- Radius4,
227
- Radius5,
228
- Radius6,
229
- Radius7,
230
- Radius8,
231
- Size0,
232
- Size1,
233
- Size10,
234
- Size11,
235
- Size12,
236
- Size13,
237
- Size14,
238
- Size2,
239
- Size3,
240
- Size4,
241
- Size5,
242
- Size6,
243
- Size7,
244
- Size8,
245
- Size9,
246
- SizeHalf,
247
- SizeQuarter,
248
- TransitionEase,
249
- TransitionEaseIn,
250
- TransitionEaseInOut,
251
- TransitionEaseOut
252
- }, Symbol.toStringTag, { value: 'Module' }));
253
-
254
- export { BreakpointXxl as B, Duration as D, BreakpointXl as a, BreakpointLg as b, BreakpointMd as c, BreakpointSm as d, DurationSlow as e, primitive as p };
255
- //# sourceMappingURL=primitive-C3RFDRA8.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitive-C3RFDRA8.js","sources":["../../hammer-token/build/web/core/primitive.js"],"sourcesContent":["export const BreakpointSm = { value: \"640px\" };\nexport const BreakpointMd = { value: \"768px\" };\nexport const BreakpointLg = { value: \"1024px\" };\nexport const BreakpointXl = { value: \"1280px\" };\nexport const BreakpointXxl = { value: \"1536px\" };\nexport const ColorBlue100 = { value: \"#E0F2FF\" };\nexport const ColorBlue200 = { value: \"#B5DEFF\" };\nexport const ColorBlue300 = { value: \"#78BBFA\" };\nexport const ColorBlue400 = { value: \"#3892F3\" };\nexport const ColorBlue500 = { value: \"#0265DC\" };\nexport const ColorBlue600 = { value: \"#004491\" };\nexport const ColorNeutral0 = { value: \"#ffffff\" };\nexport const ColorNeutral10 = { value: \"#fcfcfc\" };\nexport const ColorNeutral20 = { value: \"#fafafa\" };\nexport const ColorNeutral30 = { value: \"#f7f7f7\" };\nexport const ColorNeutral40 = { value: \"#f5f5f5\" };\nexport const ColorNeutral50 = { value: \"#eeeeee\" };\nexport const ColorNeutral60 = { value: \"#dfe0e1\" };\nexport const ColorNeutral70 = { value: \"#bcbcbd\" };\nexport const ColorNeutral80 = { value: \"#949596\" };\nexport const ColorNeutral90 = { value: \"#737475\" };\nexport const ColorNeutral100 = { value: \"#606162\" };\nexport const ColorNeutral200 = { value: \"#444445\" };\nexport const ColorNeutral300 = { value: \"#2d2e31\" };\nexport const ColorNeutral400 = { value: \"#141414\" };\nexport const ColorNeutral500 = { value: \"#040404\" };\nexport const ColorBlueGrey100 = { value: \"#eaeff2\" };\nexport const ColorBlueGrey200 = { value: \"#d0d8dd\" };\nexport const ColorBlueGrey300 = { value: \"#b4c1c8\" };\nexport const ColorBlueGrey400 = { value: \"#8c9ca5\" };\nexport const ColorBlueGrey500 = { value: \"#6a7a85\" };\nexport const ColorBlueGrey600 = { value: \"#576671\" };\nexport const ColorOrange100 = { value: \"#ffeccc\" };\nexport const ColorOrange200 = { value: \"#fdd291\" };\nexport const ColorOrange300 = { value: \"#ffa037\" };\nexport const ColorOrange400 = { value: \"#e46f00\" };\nexport const ColorOrange500 = { value: \"#b14c00\" };\nexport const ColorOrange600 = { value: \"#7a2f00\" };\nexport const ColorYellow100 = { value: \"#fff9e2\" };\nexport const ColorYellow200 = { value: \"#fff0b1\" };\nexport const ColorYellow300 = { value: \"#ffe278\" };\nexport const ColorYellow400 = { value: \"#ffc902\" };\nexport const ColorYellow500 = { value: \"#ffbe00\" };\nexport const ColorYellow600 = { value: \"#de9500\" };\nexport const ColorGreen100 = { value: \"#CEF8E0\" };\nexport const ColorGreen200 = { value: \"#89ECBC\" };\nexport const ColorGreen300 = { value: \"#49CC93\" };\nexport const ColorGreen400 = { value: \"#15A46E\" };\nexport const ColorGreen500 = { value: \"#007A4D\" };\nexport const ColorGreen600 = { value: \"#005132\" };\nexport const ColorCyan100 = { value: \"#e3fcff\" };\nexport const ColorCyan200 = { value: \"#b1f3fa\" };\nexport const ColorCyan300 = { value: \"#13ceea\" };\nexport const ColorCyan400 = { value: \"#08bfdf\" };\nexport const ColorCyan500 = { value: \"#0ca5c0\" };\nexport const ColorCyan600 = { value: \"#038299\" };\nexport const ColorPurple100 = { value: \"#f1edff\" };\nexport const ColorPurple200 = { value: \"#c1b6f2\" };\nexport const ColorPurple300 = { value: \"#8772e5\" };\nexport const ColorPurple400 = { value: \"#6954c0\" };\nexport const ColorPurple500 = { value: \"#4f3a9e\" };\nexport const ColorPurple600 = { value: \"#422799\" };\nexport const ColorRed100 = { value: \"#ffece9\" };\nexport const ColorRed200 = { value: \"#ffb2a0\" };\nexport const ColorRed300 = { value: \"#ff745f\" };\nexport const ColorRed400 = { value: \"#f94d32\" };\nexport const ColorRed500 = { value: \"#e13212\" };\nexport const ColorRed600 = { value: \"#bf2a00\" };\nexport const ColorMagenta100 = { value: \"#fbeaf5\" };\nexport const ColorMagenta200 = { value: \"#faafe2\" };\nexport const ColorMagenta300 = { value: \"#d949a9\" };\nexport const ColorMagenta400 = { value: \"#b52d88\" };\nexport const ColorMagenta500 = { value: \"#982071\" };\nexport const ColorMagenta600 = { value: \"#7d165b\" };\nexport const Duration = { value: \"200ms\" };\nexport const DurationInstant = { value: \"0ms\" };\nexport const DurationFast = { value: \"100ms\" };\nexport const DurationSlow = { value: \"300ms\" };\nexport const FontFamilyBase = { value: \"'Nunito Sans', sans-serif\" };\nexport const FontFamilyDisplay = { value: \"'Sofia Pro', SofiaPro, sans-serif\" };\nexport const FontLineHeightBase = { value: \"1.5\" };\nexport const FontLineHeightDisplay = { value: \"1.25\" };\nexport const FontWeightNormal = { value: \"400\" };\nexport const FontWeightSemibold = { value: \"600\" };\nexport const FontWeightBold = { value: \"700\" };\nexport const FontSize100 = { value: \"0.625rem\" };\nexport const FontSize200 = { value: \"0.75rem\" };\nexport const FontSize300 = { value: \"0.875rem\" };\nexport const FontSize400 = { value: \"1rem\" };\nexport const FontSize500 = { value: \"1.25rem\" };\nexport const FontSize600 = { value: \"1.5rem\" };\nexport const FontSize700 = { value: \"1.75rem\" };\nexport const FontSize800 = { value: \"2rem\" };\nexport const FontSize900 = { value: \"2.25rem\" };\nexport const Radius0 = { value: \"0\" };\nexport const Radius1 = { value: \"0.1875rem\" };\nexport const Radius2 = { value: \"0.375rem\" };\nexport const Radius3 = { value: \"0.5625rem\" };\nexport const Radius4 = { value: \"0.75rem\" };\nexport const Radius5 = { value: \"0.9375rem\" };\nexport const Radius6 = { value: \"1.125rem\" };\nexport const Radius7 = { value: \"1.3125rem\" };\nexport const Radius8 = { value: \"1.5rem\" };\nexport const Size0 = { value: \"0rem\" };\nexport const Size1 = { value: \"0.25rem\" };\nexport const Size2 = { value: \"0.5rem\" };\nexport const Size3 = { value: \"0.75rem\" };\nexport const Size4 = { value: \"1rem\" };\nexport const Size5 = { value: \"1.25rem\" };\nexport const Size6 = { value: \"1.5rem\" };\nexport const Size7 = { value: \"1.75rem\" };\nexport const Size8 = { value: \"2rem\" };\nexport const Size9 = { value: \"2.25rem\" };\nexport const Size10 = { value: \"2.5rem\" };\nexport const Size11 = { value: \"2.75rem\" };\nexport const Size12 = { value: \"3rem\" };\nexport const Size13 = { value: \"3.25rem\" };\nexport const Size14 = { value: \"3.5rem\" };\nexport const SizeQuarter = { value: \"0.0625rem\" };\nexport const SizeHalf = { value: \"0.125rem\" };\nexport const TransitionEase = { value: \"cubic-bezier(.4, 0, .2, 1)\" };\nexport const TransitionEaseIn = { value: \"cubic-bezier(.4, 0, 1, 1)\" };\nexport const TransitionEaseOut = { value: \"cubic-bezier(0, 0, .4, 1)\" };\nexport const TransitionEaseInOut = { value: \"cubic-bezier(.4, 0, .6, 1)\" };"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"syncFilterUtils-DtOBvzdr.js","sources":["../src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.ts","../src/internal/components/SelectOption.tsx","../src/internal/components/InView.tsx","../src/internal/hooks/useOptionsSections.ts","../src/internal/components/OptionsPanel.tsx","../src/internal/components/VirtualizedOptionsPanel.tsx","../src/internal/hooks/useDebouncedCallback/useDebouncedCallback.ts","../src/internal/components/OptionsPopover/OptionsPopover.tsx","../src/internal/components/OptionsDialog/OptionsDialog.tsx","../src/internal/hooks/usePinnedOptions.ts","../src/internal/hooks/useGroupedOptions.ts","../src/internal/hooks/useProcessedOptions.ts","../src/internal/functions/buildSelectItems.ts","../src/beta/hooks/useAdaptiveView/useAdaptiveView.tsx","../src/internal/hooks/useSelectOrchestration.ts","../src/internal/functions/syncFilterUtils.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n SelectFieldOption,\n SelectFieldPageLazyResult,\n SelectFieldOffsetLazyResult,\n SelectFieldGroupLazyResult,\n SelectFieldPropsLazyPage,\n SelectFieldPropsLazyOffset,\n SelectFieldPropsLazyGroup,\n SelectFieldPropsEager,\n} from \"../../../beta/components/SelectField/types\";\n\nexport const DEFAULT_PAGE_SIZE = 20;\nconst DEFAULT_CACHE_MAX_SIZE = 15;\n\n/**\n * Configuration for caching search results in useSelectFieldLoading.\n * When enabled, the full accumulated state (options, pagination cursor, hasMore)\n * is cached per search value, allowing instant restoration when returning to\n * a previous search.\n */\nexport type CacheConfig = {\n /**\n * Whether caching is enabled. Defaults to true.\n */\n enabled?: boolean;\n /**\n * Maximum number of search values to cache before clearing.\n * Defaults to 15.\n */\n maxSize?: number;\n};\n\n/**\n * The full state cached per search value, including accumulated options,\n * pagination cursor, and hasMore flag.\n */\ntype CachedSearchState = {\n options: SelectFieldOption[];\n hasMore: boolean;\n previousPage: number;\n previousOffset: number;\n previousGroup: string | number | null;\n};\n\ntype UseSelectFieldLoadingConfigLazyPage = Pick<\n SelectFieldPropsLazyPage,\n \"lazy\" | \"loadOptions\"\n> & {\n pageSize: number;\n cache?: CacheConfig;\n};\n\ntype UseSelectFieldLoadingConfigLazyOffset = Pick<\n SelectFieldPropsLazyOffset,\n \"lazy\" | \"loadOptions\"\n> & {\n limit: number;\n cache?: CacheConfig;\n};\n\ntype UseSelectFieldLoadingConfigLazyGroup = Pick<\n SelectFieldPropsLazyGroup,\n \"lazy\" | \"loadOptions\"\n> & {\n cache?: CacheConfig;\n};\n\ntype UseSelectFieldLoadingConfigEager = Pick<\n SelectFieldPropsEager,\n \"lazy\" | \"loadOptions\"\n> & {\n cache?: CacheConfig;\n};\n\nexport type UseSelectFieldLoadingConfig =\n | UseSelectFieldLoadingConfigLazyPage\n | UseSelectFieldLoadingConfigLazyOffset\n | UseSelectFieldLoadingConfigLazyGroup\n | UseSelectFieldLoadingConfigEager;\n\nexport type UseSelectFieldLoadingReturn = {\n /**\n * Current loaded options array\n */\n options: SelectFieldOption[];\n /**\n * Boolean indicating initial load in progress\n */\n loading: boolean;\n /**\n * Boolean indicating load more in progress\n */\n loadingMore: boolean;\n /**\n * Boolean indicating if more options are available\n */\n hasMore: boolean;\n /**\n * Function to load options. When initial is true, replaces options and sets loading state.\n * When initial is false or undefined, appends options and sets loadingMore state.\n * @param searchValue - The search value to load options for\n * @param options - Optional configuration\n * @param options.initial - Whether this is an initial load (replaces options) or continuation (appends options)\n */\n loadOptions: (\n searchValue: string,\n options?: { initial?: boolean },\n ) => Promise<void>;\n /**\n * Function to load more options (for pagination). Appends to existing options.\n * @param searchValue - The search value to load more options for\n */\n loadMore: (searchValue: string) => Promise<void>;\n /**\n * Function to reset all state to initial values\n */\n reset: () => void;\n /**\n * Function to clear the search results cache\n */\n clearCache: () => void;\n};\n\n/**\n * Custom hook for managing SelectField option loading state and logic.\n *\n * Features:\n * - Manages option loading state (loading, loadingMore, hasMore)\n * - Supports eager loading and three lazy loading modes (page, offset, group)\n * - Handles pagination state tracking for lazy loading\n * - Provides methods to load options (initial or continuation) and load more\n * - Automatically manages option replacement vs appending based on load type\n * - Tracks pagination state (page, offset, group) for lazy loading modes\n * - Provides reset functionality to clear all state\n *\n * @param config - Configuration object containing lazy mode, loadOptions function, and pagination settings\n * @returns Object containing options, loading states, and load functions\n *\n * @example\n * const { options, loading, loadingMore, hasMore, loadOptions, loadMore } = useSelectFieldLoading({\n * lazy: \"page\",\n * loadOptions: async (searchValue, page, pageSize) => {\n * const result = await fetchOptions(searchValue, page, pageSize);\n * return { options: result.items, hasMore: result.hasMore };\n * },\n * pageSize: 10\n * });\n */\nexport function useSelectFieldLoading(\n config: UseSelectFieldLoadingConfig,\n): UseSelectFieldLoadingReturn {\n const { lazy, loadOptions: loadOptionsProp, cache: cacheConfig } = config;\n\n // Cache configuration\n const cacheEnabled = cacheConfig?.enabled !== false;\n const cacheMaxSize = cacheConfig?.maxSize ?? DEFAULT_CACHE_MAX_SIZE;\n\n const [options, setOptions] = useState<SelectFieldOption[]>([]);\n const [hasMoreToLoad, setHasMoreToLoad] = useState(false);\n const [previousGroup, setPreviousGroup] = useState<string | number | null>(\n null,\n );\n const [previousPage, setPreviousPage] = useState<number>(0);\n const [previousOffset, setPreviousOffset] = useState<number>(0);\n const [loading, setLoading] = useState(false);\n const [loadingMore, setLoadingMore] = useState(false);\n\n // Cache state: stores full accumulated state per search value\n const [stateCache, setStateCache] = useState<Map<string, CachedSearchState>>(\n () => new Map(),\n );\n // Track the current search value to know which cache entry to update on loadMore\n const currentSearchValueRef = useRef<string>(\"\");\n // Track whether loadOptions has completed at least once, to distinguish\n // the initial empty state from an API response that returned zero results.\n const hasCompletedLoadRef = useRef(false);\n\n const appendOptions = useCallback((newOptions: SelectFieldOption[]) => {\n setOptions((prevOptions) => prevOptions.concat(newOptions));\n }, []);\n\n const pageSize =\n lazy === \"page\"\n ? (config as UseSelectFieldLoadingConfigLazyPage).pageSize\n : DEFAULT_PAGE_SIZE;\n const limit =\n lazy === \"offset\"\n ? (config as UseSelectFieldLoadingConfigLazyOffset).limit\n : DEFAULT_PAGE_SIZE;\n\n // Helper to restore state from cache\n const restoreFromCache = useCallback((cached: CachedSearchState) => {\n setOptions(cached.options);\n setHasMoreToLoad(cached.hasMore);\n setPreviousPage(cached.previousPage);\n setPreviousOffset(cached.previousOffset);\n setPreviousGroup(cached.previousGroup);\n }, []);\n\n // Sync current state to cache whenever options or pagination state changes.\n // This effect runs after React has batched all state updates from loadOptions/loadMore,\n // ensuring we cache the complete, up-to-date state.\n useEffect(() => {\n if (!cacheEnabled) return;\n const searchValue = currentSearchValueRef.current;\n // Don't cache the initial empty state before any load has completed\n if (!hasCompletedLoadRef.current) return;\n\n setStateCache((prev) => {\n // Clear cache if we've reached max size\n if (prev.size >= cacheMaxSize) {\n prev.clear();\n }\n\n prev.set(searchValue, {\n options,\n hasMore: hasMoreToLoad,\n previousPage,\n previousOffset,\n previousGroup,\n });\n return new Map(prev);\n });\n }, [\n cacheEnabled,\n cacheMaxSize,\n options,\n hasMoreToLoad,\n previousPage,\n previousOffset,\n previousGroup,\n ]);\n\n const loadOptions = useCallback(\n async (\n searchValue: string,\n options?: { initial?: boolean },\n ): Promise<void> => {\n const isInitial = !!options?.initial;\n\n // On initial load, check cache first\n if (isInitial && cacheEnabled) {\n const cached = stateCache.get(searchValue);\n if (cached) {\n // Restore full state from cache - no API call needed\n currentSearchValueRef.current = searchValue;\n restoreFromCache(cached);\n return;\n }\n }\n\n // Track current search value for cache updates on loadMore\n if (isInitial) {\n currentSearchValueRef.current = searchValue;\n }\n\n (isInitial ? setLoading : setLoadingMore)(true);\n\n try {\n if (!lazy) {\n const result = await loadOptionsProp(searchValue);\n const resolved = Array.isArray(result) ? result : await result;\n (isInitial ? setOptions : appendOptions)(resolved);\n } else {\n let result:\n | SelectFieldPageLazyResult\n | SelectFieldOffsetLazyResult\n | SelectFieldGroupLazyResult;\n\n if (lazy === \"page\") {\n const page = isInitial ? 0 : previousPage;\n result = await loadOptionsProp(searchValue, page, pageSize);\n setPreviousPage(isInitial ? 1 : page + 1);\n } else if (lazy === \"offset\") {\n const offset = isInitial ? 0 : previousOffset;\n result = await loadOptionsProp(searchValue, offset, limit);\n setPreviousOffset(isInitial ? limit : offset + limit);\n } else if (lazy === \"group\") {\n const group = isInitial ? null : previousGroup;\n result = await loadOptionsProp(searchValue, group);\n setPreviousGroup(\n result.options[result.options.length - 1]?.group ?? null,\n );\n } else {\n throw new Error(\n `Invalid lazy mode: ${lazy}. Expected 'page', 'offset', or 'group'.`,\n );\n }\n\n setHasMoreToLoad(result.hasMore ?? false);\n (isInitial ? setOptions : appendOptions)(result.options);\n }\n hasCompletedLoadRef.current = true;\n } finally {\n (isInitial ? setLoading : setLoadingMore)(false);\n }\n },\n [\n lazy,\n pageSize,\n limit,\n loadOptionsProp,\n appendOptions,\n previousPage,\n previousOffset,\n previousGroup,\n cacheEnabled,\n stateCache,\n restoreFromCache,\n ],\n );\n\n const loadMore = useCallback(\n async (searchValue: string): Promise<void> => {\n await loadOptions(searchValue, { initial: false });\n },\n [loadOptions],\n );\n\n const reset = useCallback(() => {\n setOptions([]);\n setHasMoreToLoad(false);\n setPreviousGroup(null);\n setPreviousPage(0);\n setPreviousOffset(0);\n setLoading(false);\n setLoadingMore(false);\n }, []);\n\n const clearCache = useCallback(() => {\n setStateCache(new Map());\n }, []);\n\n return {\n options,\n loading,\n loadingMore,\n hasMore: hasMoreToLoad,\n loadOptions,\n loadMore,\n reset,\n clearCache,\n };\n}\n","import { Flex } from \"../../components/Flex\";\nimport { SelectItem } from \"../types/selectFieldInternalTypes\";\nimport Icon from \"../../components/Icon\";\nimport { Avatar } from \"../../components/Avatar\";\nimport { Chip } from \"../../components/Chip\";\nimport styles from \"./SelectOption.module.scss\";\nimport CheckboxOutline from \"@servicetitan/hammer-icon/mdi/round/check_box_outline_blank.svg\";\nimport CheckboxChecked from \"@servicetitan/hammer-icon/mdi/round/check_box.svg\";\nimport CheckboxIndeterminate from \"@servicetitan/hammer-icon/mdi/round/indeterminate_check_box.svg\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport cx from \"classnames\";\nimport { useMemo } from \"react\";\nimport Text from \"../../components/Text\";\nimport { CheckState } from \"../../types\";\nimport Spinner from \"../../components/Spinner\";\nimport { GetItemPropsFn } from \"../types/selectFieldInternalTypes\";\n\nexport type SelectOptionProps = {\n item: SelectItem;\n index: number;\n highlighted: boolean;\n disabled: boolean;\n getItemProps: GetItemPropsFn;\n selectionType: \"single\" | \"multiple\";\n checked: CheckState;\n isListScrolled?: boolean;\n};\n\nexport const SelectOption = ({\n item,\n index,\n highlighted,\n disabled,\n getItemProps,\n selectionType,\n checked,\n isListScrolled = false,\n}: SelectOptionProps) => {\n const isBulkAction =\n item.type === \"select-all\" || item.type === \"select-filtered\";\n const checkbox = useMemo(() => {\n if (checked === \"checked\")\n return { icon: CheckboxChecked, class: styles[\"checked\"] };\n if (checked === \"unchecked\")\n return { icon: CheckboxOutline, class: styles[\"unchecked\"] };\n if (checked === \"indeterminate\")\n return { icon: CheckboxIndeterminate, class: styles[\"indeterminate\"] };\n return { icon: CheckboxOutline, class: styles[\"unchecked\"] };\n }, [checked]);\n\n const content = item.original.content;\n const hasAvatar = !!content?.avatar;\n const hasChips = !!content?.chips?.length;\n const hasIcon = !!content?.icon;\n\n return (\n <div\n key={item.id}\n data-item-index={index}\n {...getItemProps({\n item,\n index,\n \"data-type\": item.type,\n className: cx(styles[\"select-field-list-item\"], {\n [styles.highlighted]: highlighted,\n [styles.selected]: checked === \"checked\",\n [styles.disabled]: disabled,\n [styles.single]: selectionType === \"single\",\n [styles[\"bulk-action\"]]: isBulkAction,\n [styles.floating]: isBulkAction && isListScrolled,\n }),\n })}\n >\n {selectionType === \"multiple\" && (\n <div className={styles[\"side-content\"]}>\n {checked === \"loading\" ? (\n <Flex\n alignItems=\"center\"\n justifyContent=\"center\"\n style={{ height: \"1.5rem\", width: \"1.5rem\" }}\n >\n <Spinner size=\"small\" />\n </Flex>\n ) : (\n // Decorative: selection state is conveyed by aria-selected on the <li>\n <Icon\n aria-hidden=\"true\"\n size=\"large\"\n svg={checkbox.icon}\n className={cx(styles[\"checkbox\"], checkbox.class)}\n />\n )}\n </div>\n )}\n {hasAvatar && (\n // aria-hidden: Avatar has internal <SrOnly> text that would duplicate the option label\n <div className={styles[\"side-content\"]} aria-hidden=\"true\">\n <Avatar size=\"medium\" {...content!.avatar!} />\n </div>\n )}\n <Flex grow={1} shrink={1} direction=\"column\">\n <Text size=\"medium\">{content?.title ?? item.original.label}</Text>\n {content?.description && (\n <Text size=\"small\" className={styles[\"description\"]}>\n {content.description}\n </Text>\n )}\n {hasChips && (\n // Group label gives screen readers context that these are tags\n <Flex\n wrap=\"wrap\"\n gap=\"1\"\n className={styles[\"chips-row\"]}\n role=\"group\"\n aria-label=\"Tags\"\n >\n {content!.chips!.map((chip, i) => (\n <Chip key={`${chip.label}-${i}`} size=\"small\" {...chip} />\n ))}\n </Flex>\n )}\n </Flex>\n {hasIcon && (\n <div className={styles[\"side-content\"]}>\n {/* Treated as decorative unless consumer provides a label */}\n <Icon\n size=\"large\"\n svg={content!.icon!.svg}\n color={content!.icon!.color}\n aria-hidden={content!.icon!.label ? undefined : \"true\"}\n aria-label={content!.icon!.label}\n />\n </div>\n )}\n {selectionType === \"single\" && checked === \"checked\" && (\n <div className={styles[\"side-content\"]}>\n {/* Decorative: selection state is conveyed by aria-selected on the <li>, hence aria-hidden */}\n <Icon\n aria-hidden=\"true\"\n size=\"medium\"\n svg={Check}\n className={cx(styles[\"checkbox\"], styles[\"checked\"])}\n />\n </div>\n )}\n </div>\n );\n};\n","import { ReactNode } from \"react\";\nimport { useIntersectionObserver } from \"../hooks\";\n\n/**\n * Props for the InView component\n * @property {ReactNode} children - The content to render inside the visibility-tracked container\n * @property {(isVisible: boolean) => void} [onVisibilityChange] - Callback fired when visibility changes\n */\ntype InViewProps = {\n /**\n * The content to render inside the visibility-tracked container\n */\n children?: ReactNode;\n /**\n * Callback fired when the element's visibility in the viewport changes\n */\n onVisibilityChange?: (isVisible: boolean) => void;\n /**\n * The root margin for the intersection observer\n */\n rootMargin?: string;\n};\n\n/**\n * Internal component that detects when its content is visible in the viewport.\n *\n * Features:\n * - Uses Intersection Observer API for efficient visibility detection\n * - Fires callback when visibility state changes\n * - Handles browser compatibility gracefully\n * - Automatically cleans up observer on unmount\n *\n * @param props - Component props\n * @returns Wrapped children with visibility detection\n */\nexport const InView = ({\n children,\n onVisibilityChange,\n rootMargin,\n}: InViewProps) => {\n const { ref } = useIntersectionObserver({\n onChange: (isIntersecting) => {\n onVisibilityChange?.(isIntersecting);\n },\n rootMargin,\n });\n\n return <div ref={ref}>{children}</div>;\n};\n","import { useMemo } from \"react\";\nimport { SectionMeta, SelectItem } from \"../types/selectFieldInternalTypes\";\n\nexport type SectionItem = { item: SelectItem; index: number };\n\nexport type PinnedSection = {\n type: \"pinned\";\n label: string;\n items: SectionItem[];\n loading?: boolean;\n};\n\nexport type GroupSection = {\n type: \"group\";\n label: string;\n items: SectionItem[];\n};\n\nexport type FlatSection = {\n type: \"flat\";\n items: SectionItem[];\n};\n\nexport type Section = PinnedSection | GroupSection | FlatSection;\n\nexport type VirtualRow =\n | { type: \"item\"; item: SelectItem; index: number }\n | { type: \"header\"; label: string; sectionIndex: number }\n | { type: \"divider\"; sectionIndex: number }\n | { type: \"load-more\" };\n\n/**\n * Computes grouped sections from a flat items array and section metadata.\n * @param items - The flat items array\n * @param sectionsMeta - Section metadata describing pinned/group ranges\n * @returns Grouped sections for rendering\n */\nexport const useOptionsSections = (\n items: SelectItem[],\n sectionsMeta: SectionMeta[],\n): Section[] => {\n return useMemo((): Section[] => {\n if (sectionsMeta.length === 0) {\n return [\n {\n type: \"flat\",\n items: items.map((item, index) => ({ item, index })),\n },\n ];\n }\n\n const result: Section[] = [];\n\n const firstSectionStartIndex = Math.min(\n ...sectionsMeta.map((s) => s.startIndex),\n );\n\n if (firstSectionStartIndex > 0) {\n const flatItems: SectionItem[] = [];\n for (let i = 0; i < firstSectionStartIndex; i++) {\n if (items[i]) {\n flatItems.push({ item: items[i], index: i });\n }\n }\n if (flatItems.length > 0) {\n result.push({ type: \"flat\", items: flatItems });\n }\n }\n\n sectionsMeta.forEach((meta) => {\n const sectionItems: SectionItem[] = [];\n for (let i = meta.startIndex; i < meta.endIndex; i++) {\n if (items[i]) {\n sectionItems.push({ item: items[i], index: i });\n }\n }\n if (meta.type === \"pinned\") {\n if (sectionItems.length > 0 || meta.loading) {\n result.push({\n type: \"pinned\",\n label: meta.label,\n items: sectionItems,\n loading: meta.loading,\n });\n }\n } else if (sectionItems.length > 0) {\n result.push({\n type: \"group\",\n label: meta.label,\n items: sectionItems,\n });\n }\n });\n\n const lastSectionIndex =\n sectionsMeta.length > 0\n ? Math.max(...sectionsMeta.map((s) => s.endIndex))\n : 0;\n\n if (lastSectionIndex < items.length) {\n const flatItems: SectionItem[] = [];\n for (let i = lastSectionIndex; i < items.length; i++) {\n flatItems.push({ item: items[i], index: i });\n }\n if (flatItems.length > 0) {\n result.push({ type: \"flat\", items: flatItems });\n }\n }\n\n return result;\n }, [items, sectionsMeta]);\n};\n\n/**\n * Flattens grouped sections into a linear list of virtual rows for virtualization,\n * and builds a mapping from downshift item index to virtual row index.\n * @param sections - The grouped sections from useOptionsSections\n * @param hasMore - Whether there are more items to load\n * @returns The flat virtual row list and a downshift-to-virtual index mapping\n */\nexport function flattenSectionsToVirtualRows(\n sections: Section[],\n hasMore: boolean,\n): {\n virtualRows: VirtualRow[];\n downshiftIndexToVirtualRowIndex: Record<number, number>;\n stickyIndices: number[];\n} {\n const virtualRows: VirtualRow[] = [];\n const downshiftIndexToVirtualRowIndex: Record<number, number> = {};\n const stickyIndices: number[] = [];\n\n sections.forEach((section, sectionIndex) => {\n const isLastSection = sectionIndex === sections.length - 1;\n\n if (section.type === \"pinned\" || section.type === \"group\") {\n virtualRows.push({\n type: \"header\",\n label: section.label,\n sectionIndex,\n });\n\n section.items.forEach(({ item, index }) => {\n downshiftIndexToVirtualRowIndex[index] = virtualRows.length;\n virtualRows.push({ type: \"item\", item, index });\n });\n\n if (!isLastSection) {\n virtualRows.push({ type: \"divider\", sectionIndex });\n }\n } else {\n section.items.forEach(({ item, index }) => {\n const isBulkAction =\n item.type === \"select-all\" || item.type === \"select-filtered\";\n if (isBulkAction) {\n stickyIndices.push(virtualRows.length);\n }\n downshiftIndexToVirtualRowIndex[index] = virtualRows.length;\n virtualRows.push({ type: \"item\", item, index });\n });\n }\n });\n\n if (hasMore) {\n virtualRows.push({ type: \"load-more\" });\n }\n\n return { virtualRows, downshiftIndexToVirtualRowIndex, stickyIndices };\n}\n","import { SelectItem } from \"../types/selectFieldInternalTypes\";\nimport Spinner from \"../../components/Spinner\";\nimport Button from \"../../components/Button\";\nimport styles from \"./SelectOptions.module.scss\";\nimport cx from \"classnames\";\nimport {\n CSSProperties,\n forwardRef,\n ReactNode,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { SelectOption } from \"./SelectOption\";\nimport { InView } from \"./InView\";\nimport { Text } from \"../../components/Text\";\nimport { SrOnly } from \"../../components\";\nimport Divider from \"../../components/Divider\";\nimport { CheckState } from \"../../types\";\nimport {\n GetItemPropsFn,\n GetMenuPropsFn,\n SectionMeta,\n} from \"../types/selectFieldInternalTypes\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useOptionsSections } from \"../hooks/useOptionsSections\";\n\nexport type OptionsPanelHandle = {\n scrollToTop: () => void;\n scrollToIndex: (index: number) => void;\n};\n\nexport type OptionsPanelProps = {\n isOpen: boolean;\n items: SelectItem[];\n getMenuProps: GetMenuPropsFn;\n getItemProps: GetItemPropsFn;\n highlightedIndex: number;\n getCheckedState: (item: SelectItem) => CheckState;\n selectionType: \"single\" | \"multiple\";\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 OptionsPanel = forwardRef<OptionsPanelHandle, OptionsPanelProps>(\n (\n {\n isOpen,\n items,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n getCheckedState,\n selectionType,\n hasMore,\n onLoadMore,\n loading,\n loadingMore,\n disableAutoLoadMore,\n disabled,\n className,\n style,\n sectionsMeta = [],\n },\n ref,\n ) => {\n const baseId = useId();\n const scrollSentinelRef = useRef<HTMLDivElement>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n const [isScrolled, setIsScrolled] = useState(false);\n\n useImperativeHandle(ref, () => ({\n scrollToTop: () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = 0;\n }\n },\n scrollToIndex: (index: number) => {\n if (!scrollerRef.current) return;\n if (index <= 0) {\n // special case for first item allows group header to be visible\n scrollerRef.current.scrollTop = 0;\n return;\n }\n const item = scrollerRef.current.querySelector(\n `[data-item-index=\"${index}\"]`,\n );\n if (item) {\n item.scrollIntoView({ block: \"nearest\" });\n }\n },\n }));\n\n // IntersectionObserver to detect scroll state for sticky shadow.\n useEffect(() => {\n if (!isOpen) {\n setIsScrolled(false);\n return;\n }\n if (!scrollSentinelRef.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n setIsScrolled(!entry.isIntersecting);\n });\n },\n { threshold: 0, root: scrollerRef.current },\n );\n observer.observe(scrollSentinelRef.current);\n return () => observer.disconnect();\n }, [isOpen]);\n\n // Check if any pinned section is still loading its options.\n // If so, show the main list loading indicator to avoid layout shift.\n const anyPinnedLoading = sectionsMeta.some(\n (s) => s.type === \"pinned\" && s.loading,\n );\n\n const handleLoaderVisibilityChange = (visible: boolean) => {\n if (visible && !disableAutoLoadMore) {\n onLoadMore();\n }\n };\n\n const sections = useOptionsSections(items, sectionsMeta);\n\n const renderItem = (item: SelectItem, index: number): ReactNode => (\n <SelectOption\n key={item.id}\n item={item}\n index={index}\n getItemProps={getItemProps}\n selectionType={selectionType}\n checked={getCheckedState(item)}\n highlighted={highlightedIndex === index}\n disabled={(disabled || item.disabled) ?? false}\n isListScrolled={isScrolled}\n />\n );\n\n const renderSections = (): ReactNode[] => {\n const result: ReactNode[] = [];\n\n sections.forEach((section, sectionIndex) => {\n const isLastSection = sectionIndex === sections.length - 1;\n\n if (section.type === \"pinned\" || section.type === \"group\") {\n const labelId = `${baseId}-section-${sectionIndex}`;\n\n result.push(\n <div\n key={`section-${sectionIndex}`}\n role=\"group\"\n aria-labelledby={labelId}\n className={styles[\"pinned-section\"]}\n >\n <span id={labelId} className={styles[\"pinned-section-header\"]}>\n <Text variant=\"eyebrow\">{section.label}</Text>\n </span>\n <div className={styles[\"pinned-section-list\"]}>\n {section.items.map(({ item, index }) =>\n renderItem(item, index),\n )}\n </div>\n </div>,\n );\n if (!isLastSection) {\n result.push(\n // Decorative — group boundaries are already conveyed by role=\"group\" with aria-labelledby\n <div\n key={`divider-${sectionIndex}`}\n role=\"presentation\"\n aria-hidden=\"true\"\n className={styles[\"divider\"]}\n >\n <Divider />\n </div>,\n );\n }\n } else {\n // Flat items - render directly\n section.items.forEach(({ item, index }) => {\n result.push(renderItem(item, index));\n });\n }\n });\n\n return result;\n };\n\n const menuProps = getMenuProps({\n className: cx(styles[\"scroller\"], className),\n style,\n });\n\n const menuRef = useMergeRefs([menuProps.ref, scrollerRef]);\n\n return (\n <div {...menuProps} ref={menuRef}>\n <div className={styles[\"select-field-list\"]}>\n {isOpen && (\n <div\n ref={scrollSentinelRef}\n className={styles[\"scroll-sentinel\"]}\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n )}\n {isOpen && (\n <>\n {loading || anyPinnedLoading ? (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Spinner size=\"medium\" />\n </div>\n ) : items.length > 0 ? (\n renderSections()\n ) : (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Text subdued size=\"small\">\n No match found\n </Text>\n </div>\n )}\n </>\n )}\n {loadingMore ? (\n <div role=\"presentation\" className={styles[\"load-more\"]}>\n <Spinner size=\"small\" />\n <SrOnly>Loading more...</SrOnly>\n </div>\n ) : hasMore && !loading ? (\n <div role=\"presentation\">\n <InView\n onVisibilityChange={handleLoaderVisibilityChange}\n rootMargin=\"0px 0px -100px 0px\"\n >\n <div className={styles[\"load-more\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n onClick={onLoadMore}\n >\n Load more\n </Button>\n </div>\n </InView>\n </div>\n ) : null}\n </div>\n </div>\n );\n },\n);\n\nOptionsPanel.displayName = \"OptionsPanel\";\n","import Spinner from \"../../components/Spinner\";\nimport Button from \"../../components/Button\";\nimport styles from \"./SelectOptions.module.scss\";\nimport cx from \"classnames\";\nimport {\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { SelectOption } from \"./SelectOption\";\nimport { Text } from \"../../components/Text\";\nimport { SrOnly } from \"../../components\";\nimport Divider from \"../../components/Divider\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport {\n useOptionsSections,\n flattenSectionsToVirtualRows,\n VirtualRow,\n} from \"../hooks/useOptionsSections\";\nimport { defaultRangeExtractor, useVirtualizer } from \"@tanstack/react-virtual\";\nimport type { Range } from \"@tanstack/react-virtual\";\nimport { OptionsPanelProps, OptionsPanelHandle } from \"./OptionsPanel\";\n\nconst EST_PADDING_BLOCK = 16; // $size-2 * 2\nconst EST_LINE_HEIGHT = 18; // $size-4 + $size-half\nconst EST_CHIP_ROW_HEIGHT = 28; // $size-1 margin + ~24px chip\nconst EST_SIDE_CONTENT_HEIGHT = 40; // $size-10\nconst EST_HEADER_HEIGHT = 32;\nconst EST_DIVIDER_HEIGHT = 17;\nconst EST_LOAD_MORE_HEIGHT = 40;\nconst EST_BASE_ITEM_HEIGHT = EST_PADDING_BLOCK + EST_LINE_HEIGHT; // 34\n\nfunction estimateRowHeight(row: VirtualRow): number {\n if (row.type === \"header\") return EST_HEADER_HEIGHT;\n if (row.type === \"divider\") return EST_DIVIDER_HEIGHT;\n if (row.type === \"load-more\") return EST_LOAD_MORE_HEIGHT;\n\n const content = row.item.original.content;\n if (!content) return EST_BASE_ITEM_HEIGHT;\n\n let contentHeight = EST_LINE_HEIGHT;\n if (content.description) contentHeight += EST_LINE_HEIGHT;\n if (content.chips?.length) contentHeight += EST_CHIP_ROW_HEIGHT;\n if (content.avatar || content.icon)\n contentHeight = Math.max(contentHeight, EST_SIDE_CONTENT_HEIGHT);\n\n return EST_PADDING_BLOCK + contentHeight;\n}\n\nexport const VirtualizedOptionsPanel = forwardRef<\n OptionsPanelHandle,\n OptionsPanelProps\n>(\n (\n {\n isOpen,\n items,\n getMenuProps,\n getItemProps,\n highlightedIndex,\n getCheckedState,\n selectionType,\n hasMore,\n onLoadMore,\n loading,\n loadingMore,\n disableAutoLoadMore,\n disabled,\n className,\n style,\n sectionsMeta = [],\n },\n ref,\n ) => {\n const baseId = useId();\n const scrollSentinelRef = useRef<HTMLDivElement>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n const [isScrolled, setIsScrolled] = useState(false);\n\n useEffect(() => {\n if (!isOpen) {\n setIsScrolled(false);\n return;\n }\n if (!scrollSentinelRef.current) return;\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n setIsScrolled(!entry.isIntersecting);\n });\n },\n { threshold: 0, root: scrollerRef.current },\n );\n observer.observe(scrollSentinelRef.current);\n return () => observer.disconnect();\n }, [isOpen]);\n\n const anyPinnedLoading = sectionsMeta.some(\n (s) => s.type === \"pinned\" && s.loading,\n );\n\n const sections = useOptionsSections(items, sectionsMeta);\n\n const { virtualRows, downshiftIndexToVirtualRowIndex, stickyIndices } =\n useMemo(\n () => flattenSectionsToVirtualRows(sections, hasMore),\n [sections, hasMore],\n );\n\n const stickyHeightRef = useRef(EST_BASE_ITEM_HEIGHT);\n\n const rangeExtractor = useCallback(\n (range: Range) => {\n if (stickyIndices.length === 0) {\n return defaultRangeExtractor(range);\n }\n const activeStickyIndex =\n [...stickyIndices]\n .reverse()\n .find((index) => range.startIndex >= index) ?? 0;\n\n const next = new Set([\n activeStickyIndex,\n ...defaultRangeExtractor(range),\n ]);\n\n return [...next].sort((a, b) => a - b);\n },\n [stickyIndices],\n );\n\n const virtualizer = useVirtualizer({\n count: virtualRows.length,\n getScrollElement: () => scrollerRef.current,\n estimateSize: (index) => estimateRowHeight(virtualRows[index]),\n overscan: 5,\n rangeExtractor,\n scrollPaddingStart:\n stickyIndices.length > 0 ? stickyHeightRef.current : 0,\n enabled: isOpen,\n getItemKey: (index) => {\n const row = virtualRows[index];\n if (row.type === \"item\") return row.item.id;\n if (row.type === \"header\") return `header-${row.sectionIndex}`;\n if (row.type === \"divider\") return `divider-${row.sectionIndex}`;\n return \"load-more\";\n },\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n if (stickyIndices.length > 0) {\n const stickyItem = virtualItems.find((vi) =>\n stickyIndices.includes(vi.index),\n );\n if (stickyItem) {\n stickyHeightRef.current = stickyItem.size;\n }\n }\n\n const downshiftMapRef = useRef(downshiftIndexToVirtualRowIndex);\n downshiftMapRef.current = downshiftIndexToVirtualRowIndex;\n\n const virtualizerRef = useRef(virtualizer);\n virtualizerRef.current = virtualizer;\n\n useImperativeHandle(ref, () => ({\n scrollToTop: () => {\n if (virtualizerRef.current) {\n virtualizerRef.current.scrollToOffset(0);\n }\n },\n scrollToIndex: (index: number) => {\n if (index <= 0) {\n // special case for first item allows group header to be visible\n virtualizerRef.current.scrollToOffset(0);\n return;\n }\n const virtualRowIndex = downshiftMapRef.current[index];\n if (virtualRowIndex != null) {\n virtualizerRef.current.scrollToIndex(virtualRowIndex, {\n align: \"auto\",\n });\n }\n },\n }));\n\n const onLoadMoreRef = useRef(onLoadMore);\n onLoadMoreRef.current = onLoadMore;\n\n // Trigger load more when last item is visible\n useEffect(() => {\n if (!hasMore || loadingMore || disableAutoLoadMore) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n if (!lastItem) return;\n if (lastItem.index >= virtualRows.length - 1) {\n onLoadMoreRef.current();\n }\n }, [\n hasMore,\n loadingMore,\n disableAutoLoadMore,\n virtualItems,\n virtualRows.length,\n ]);\n\n const isSticky = useCallback(\n (index: number) => stickyIndices.includes(index),\n [stickyIndices],\n );\n\n const renderVirtualRow = (row: VirtualRow): ReactNode => {\n if (row.type === \"item\") {\n return (\n <SelectOption\n item={row.item}\n index={row.index}\n getItemProps={getItemProps}\n selectionType={selectionType}\n checked={getCheckedState(row.item)}\n highlighted={highlightedIndex === row.index}\n disabled={(disabled || row.item.disabled) ?? false}\n isListScrolled={isScrolled}\n />\n );\n }\n\n if (row.type === \"header\") {\n const labelId = `${baseId}-section-${row.sectionIndex}`;\n return (\n <div\n role=\"presentation\"\n aria-hidden=\"true\"\n className={styles[\"pinned-section-header\"]}\n >\n <span id={labelId}>\n <Text variant=\"eyebrow\">{row.label}</Text>\n </span>\n </div>\n );\n }\n\n if (row.type === \"divider\") {\n return (\n // Decorative — group boundaries are already conveyed by role=\"group\" with aria-labelledby\n <div\n role=\"presentation\"\n aria-hidden=\"true\"\n className={styles[\"divider\"]}\n >\n <Divider />\n </div>\n );\n }\n\n if (row.type === \"load-more\") {\n if (loadingMore) {\n return (\n <div role=\"presentation\" className={styles[\"load-more\"]}>\n <Spinner size=\"small\" />\n <SrOnly>Loading more...</SrOnly>\n </div>\n );\n }\n return (\n <div role=\"presentation\">\n <div className={styles[\"load-more\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n onClick={() => onLoadMoreRef.current()}\n >\n Load more\n </Button>\n </div>\n </div>\n );\n }\n\n return null;\n };\n\n const menuProps = getMenuProps({\n className: cx(styles[\"scroller\"], className),\n style,\n });\n\n const menuRef = useMergeRefs([menuProps.ref, scrollerRef]);\n\n return (\n <div {...menuProps} ref={menuRef}>\n <div className={styles[\"select-field-list\"]}>\n {isOpen && (\n <div\n ref={scrollSentinelRef}\n className={styles[\"scroll-sentinel\"]}\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n )}\n {isOpen && (\n <>\n {loading || anyPinnedLoading ? (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Spinner size=\"medium\" />\n </div>\n ) : items.length > 0 ? (\n <div\n role=\"presentation\"\n aria-hidden=\"true\"\n style={{\n height: virtualizer.getTotalSize(),\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {virtualItems.map((virtualItem) => {\n const row = virtualRows[virtualItem.index];\n const sticky = isSticky(virtualItem.index);\n\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n style={\n sticky\n ? {\n position: \"sticky\",\n top: 0,\n zIndex: 1,\n }\n : {\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualItem.start}px)`,\n }\n }\n >\n {renderVirtualRow(row)}\n </div>\n );\n })}\n </div>\n ) : (\n <div role=\"presentation\" className={styles[\"empty\"]}>\n <Text subdued size=\"small\">\n No match found\n </Text>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n );\n },\n);\n\nVirtualizedOptionsPanel.displayName = \"VirtualizedOptionsPanel\";\n","import { useRef, useEffect, useCallback } from \"react\";\n\n/**\n * Custom hook for creating a debounced version of a callback function.\n *\n * Features:\n * - Delays callback execution until after a specified delay period\n * - Cancels previous pending calls when a new one is made\n * - Maintains stable function reference (only changes when delay changes)\n * - Always uses the latest callback via ref (avoids stale closures)\n * - Properly cleans up timeouts on unmount and delay changes\n * - Supports async callbacks\n * - Type-safe with generics\n *\n * @param callback - The function to debounce\n * @param delay - Delay in milliseconds before executing the callback\n * @returns Debounced version of the callback with the same signature\n *\n * @example\n * const debouncedSearch = useDebouncedCallback(\n * (searchTerm: string) => {\n * performSearch(searchTerm);\n * },\n * 300\n * );\n *\n * // Later in event handler:\n * debouncedSearch(inputValue);\n */\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useDebouncedCallback<T extends (...args: any[]) => any>(\n callback: T,\n delay: number = 300,\n): T {\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const callbackRef = useRef(callback);\n\n // Update callback ref when it changes to always use the latest version\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n // Cleanup timeout on unmount and when delay changes\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n }, [delay]);\n\n const debouncedCallback = useCallback(\n ((...args: Parameters<T>) => {\n // Cancel any pending call\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n // Schedule new call\n timeoutRef.current = setTimeout(() => {\n callbackRef.current(...args);\n timeoutRef.current = null;\n }, delay);\n }) as T,\n [delay],\n );\n\n return debouncedCallback;\n}\n","import { ReactNode, RefObject, useCallback, useEffect, useRef } from \"react\";\n\nimport {\n autoPlacement,\n autoUpdate,\n computePosition,\n offset,\n size,\n} from \"@floating-ui/react\";\n\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside/useOnClickOutside\";\n\nimport styles from \"./OptionsPopover.module.scss\";\n\nexport type OptionsPopoverProps = {\n id: string;\n children: ReactNode;\n referenceElement: RefObject<HTMLElement>;\n open: boolean;\n onClickOutside: () => void;\n /** Controls the popover width strategy.\n * - `\"reference\"` — match the reference element's width\n * - `number` — fixed width in px\n * - `string` — any CSS width value (e.g. `\"20rem\"`)\n * - `undefined` (default) — intrinsic sizing (`max-content`)\n */\n width?: \"reference\" | number | string;\n};\n\nfunction resolveWidth(\n width: OptionsPopoverProps[\"width\"],\n referenceWidth: number,\n): string | undefined {\n if (width === \"reference\") return `${referenceWidth}px`;\n if (typeof width === \"number\") return `${width}px`;\n if (typeof width === \"string\") return width;\n return undefined;\n}\n\nexport const OptionsPopover = (props: OptionsPopoverProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { id, children, referenceElement, open, onClickOutside, width } = props;\n\n useOnClickOutside({\n targets: [ref.current ?? undefined, referenceElement.current ?? undefined],\n onClickOutside: onClickOutside,\n disable: !open,\n });\n\n useEffect(() => {\n if (open) {\n ref.current?.showPopover();\n } else {\n ref.current?.hidePopover();\n }\n }, [open]);\n\n const updatePosition = useCallback(async () => {\n if (!ref.current || !referenceElement.current) return;\n const position = await computePosition(\n referenceElement.current,\n ref.current,\n {\n placement: \"bottom-start\",\n middleware: [\n offset(8),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"top-start\",\n \"top-end\",\n ],\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ rects, elements, availableHeight, availableWidth }) {\n const resolved = resolveWidth(width, rects.reference.width);\n Object.assign(elements.floating.style, {\n ...(resolved != null && { width: resolved }),\n maxWidth: `${Math.max(0, availableWidth)}px`,\n maxHeight: `${Math.max(0, availableHeight)}px`,\n });\n },\n }),\n ],\n },\n );\n ref.current.style.left = `${position.x}px`;\n ref.current.style.top = `${position.y}px`;\n }, [ref, referenceElement, width]);\n\n useEffect(() => {\n if (!ref.current || !referenceElement.current || !open) return;\n const cleanup = autoUpdate(\n referenceElement.current,\n ref.current,\n updatePosition,\n );\n return () => {\n cleanup();\n };\n }, [referenceElement, ref, updatePosition, open]);\n\n return (\n <div\n ref={ref}\n id={id}\n className={styles[\"options-popover\"]}\n popover=\"manual\"\n >\n {children}\n </div>\n );\n};\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { Flex, FocusableElement, Text } from \"../../..\";\nimport { DialogCancelButton } from \"../../../components/Dialog/DialogCancelButton\";\nimport styles from \"./OptionsDialog.module.scss\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport { DialogContext } from \"../../../components/Dialog/internal/DialogContext\";\nimport { useDialogScrollLock } from \"../..\";\nimport { tabbable } from \"tabbable\";\n\nexport const OptionsDialog = ({\n id,\n isOpen,\n onClose,\n field,\n children,\n title,\n initialFocusResolver,\n}: {\n id: string;\n isOpen: boolean;\n onClose: () => void;\n title: string;\n field?: React.ReactNode;\n children: React.ReactNode;\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n}) => {\n const elRef = useRef<HTMLDialogElement>(null);\n const visualViewportHeightRef = useRef<HTMLDivElement>(null);\n\n useDialogScrollLock({\n open: isOpen,\n id,\n enableScrollChaining: false,\n elementRef: elRef,\n });\n\n const computeFocus = useCallback(\n (focusables: FocusableElement[]) => {\n if (initialFocusResolver) {\n return initialFocusResolver(focusables);\n }\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"dialog-cancel-button\",\n ) || focusables[0]\n );\n },\n [initialFocusResolver],\n );\n\n useEffect(() => {\n if (isOpen) {\n elRef.current?.showModal();\n if (elRef.current) {\n computeFocus(tabbable(elRef.current)).focus();\n }\n } else {\n elRef.current?.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Omitting computeFocus because we don't want to show/close the dialog on computeFocus change\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n const handleResize = () => {\n if (!visualViewportHeightRef.current) return;\n visualViewportHeightRef.current.style.height = `${window.visualViewport?.height ?? 0}px`;\n visualViewportHeightRef.current.style.maxHeight = `${window.visualViewport?.height ?? 0}px`;\n };\n window.visualViewport?.addEventListener(\"resize\", handleResize);\n return () => {\n window.visualViewport?.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [isOpen]);\n\n return (\n <dialog\n ref={elRef}\n id={id}\n data-anv=\"field-dialog\"\n className={styles[\"field-dialog\"]}\n onKeyDown={(e) => {\n if (e.code === \"Escape\") {\n e.preventDefault();\n onClose();\n }\n }}\n >\n <div\n className={styles[\"field-dialog-visual-viewport-height\"]}\n ref={visualViewportHeightRef}\n >\n <Flex direction=\"row\" className={styles[\"header\"]}>\n <Text variant=\"headline\" el=\"h1\">\n {title}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogContext.Provider value={{ close: onClose }}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </DialogContext.Provider>\n </span>\n </Flex>\n {field ? (\n <Flex direction=\"column\" className={styles[\"field\"]}>\n {field}\n </Flex>\n ) : null}\n <Flex direction=\"column\" className={styles[\"content\"]}>\n {children}\n </Flex>\n </div>\n </dialog>\n );\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n SelectFieldOption,\n SelectFieldPinnedOptions,\n SelectFieldPinnedOptionsSection,\n} from \"../../beta/components/SelectField/types\";\n\nconst DEFAULT_CACHE_SIZE = 15;\nconst STATIC_CACHE_KEY = \"__static__\";\n\n/**\n * Normalized pinned section structure used internally.\n * @property label - Section label (e.g., \"Recent\", \"Favorites\")\n * @property options - The pinned options for this section\n * @property loading - Whether this section is still loading its options\n */\nexport type NormalizedPinnedSection = {\n label: string;\n options: SelectFieldOption[];\n loading?: boolean;\n};\n\ntype UsePinnedOptionsResult = {\n pinnedSections: NormalizedPinnedSection[];\n};\n\ntype SectionConfig = {\n label: string;\n isDynamic: boolean;\n searchReactive: boolean;\n cacheSize: number;\n staticOptions: SelectFieldOption[] | undefined;\n loader:\n | ((sv: string) => SelectFieldOption[] | Promise<SelectFieldOption[]>)\n | undefined;\n};\n\n/**\n * Insert into a section's cache with max-size eviction.\n * Evicts the oldest entry (first key in Map) when the limit is exceeded.\n */\nfunction cacheSet(\n sectionCache: Map<string, SelectFieldOption[]>,\n key: string,\n value: SelectFieldOption[],\n maxSize: number,\n): void {\n // If this key already exists, delete it first so it moves to the end (most recent)\n if (sectionCache.has(key)) {\n sectionCache.delete(key);\n }\n sectionCache.set(key, value);\n // Evict oldest entries if over max size\n while (sectionCache.size > maxSize) {\n const oldest = sectionCache.keys().next().value;\n if (oldest !== undefined) {\n sectionCache.delete(oldest);\n }\n }\n}\n\n/**\n * Hook that normalizes and loads pinned options from various input formats.\n *\n * Handles:\n * - Labeled pinned options object\n * - Array of labeled pinned options objects\n *\n * Dynamic sections appear immediately with `loading: true` and empty options,\n * then transition to their resolved options once loaded. Results are cached\n * per section per search value so revisiting a previous search term is instant.\n *\n * Per-section configuration:\n * - `searchReactive` (default true): when false, loader is called once and the\n * result is reused for all search values.\n * - `cacheSize` (default 15): max number of search results cached per section.\n *\n * @param pinned - The pinned options configuration from props\n * @param searchValue - Current search input value\n * @returns Normalized pinned sections with per-section loading state\n */\nexport function usePinnedOptions(\n pinned: SelectFieldPinnedOptions | undefined,\n searchValue: string,\n): UsePinnedOptionsResult {\n const [dynamicResults, setDynamicResults] = useState<\n Record<number, SelectFieldOption[]>\n >({});\n const [loadingSet, setLoadingSet] = useState<Set<number>>(new Set());\n\n // Track the latest search value to avoid race conditions\n const latestSearchValueRef = useRef(searchValue);\n latestSearchValueRef.current = searchValue;\n\n // Per-section cache: sectionIndex -> Map<searchValue, options>\n const cacheRef = useRef<Map<number, Map<string, SelectFieldOption[]>>>(\n new Map(),\n );\n\n // Track non-reactive sections that have already been triggered to prevent\n // duplicate loader calls when search value changes during initial load\n const nonReactiveTriggeredRef = useRef<Set<number>>(new Set());\n\n // Normalize into an array of labeled sections\n const sections = useMemo((): SelectFieldPinnedOptionsSection[] => {\n if (!pinned) return [];\n return Array.isArray(pinned) ? pinned : [pinned];\n }, [pinned]);\n\n // Classify each section as static or dynamic, with per-section config\n const sectionConfig = useMemo((): SectionConfig[] => {\n return sections.map((section) => {\n const isDynamic = typeof section.options === \"function\";\n return {\n label: section.label,\n isDynamic,\n searchReactive: section.searchReactive ?? true,\n cacheSize: section.cacheSize ?? DEFAULT_CACHE_SIZE,\n staticOptions: isDynamic\n ? undefined\n : (section.options as SelectFieldOption[]),\n loader: isDynamic\n ? (section.options as (\n sv: string,\n ) => SelectFieldOption[] | Promise<SelectFieldOption[]>)\n : undefined,\n };\n });\n }, [sections]);\n\n // Clear cache and non-reactive tracking when section config changes.\n // Runs before the loader effect (declared first) so stale entries are\n // purged before any new loads read from the cache.\n useEffect(() => {\n cacheRef.current = new Map();\n nonReactiveTriggeredRef.current = new Set();\n }, [sectionConfig]);\n\n // Get or create a section's cache map\n const getSectionCache = useCallback(\n (index: number): Map<string, SelectFieldOption[]> => {\n let sectionCache = cacheRef.current.get(index);\n if (!sectionCache) {\n sectionCache = new Map();\n cacheRef.current.set(index, sectionCache);\n }\n return sectionCache;\n },\n [],\n );\n\n // Load a single dynamic section, updating state and cache on completion\n const loadSection = useCallback(\n (config: SectionConfig, index: number, loaderArg: string) => {\n const cacheKey = config.searchReactive ? loaderArg : STATIC_CACHE_KEY;\n\n const handleResult = (options: SelectFieldOption[]) => {\n // Non-reactive sections: always apply (no race condition, loaded once).\n // Reactive sections: only apply if this is still the latest search.\n if (\n !config.searchReactive ||\n latestSearchValueRef.current === loaderArg\n ) {\n const sectionCache = getSectionCache(index);\n cacheSet(sectionCache, cacheKey, options, config.cacheSize);\n setDynamicResults((prev) => ({ ...prev, [index]: options }));\n setLoadingSet((prev) => {\n const next = new Set(prev);\n next.delete(index);\n return next;\n });\n }\n };\n\n const handleError = (error: unknown) => {\n console.error(\"Failed to load pinned options:\", error);\n if (\n !config.searchReactive ||\n latestSearchValueRef.current === loaderArg\n ) {\n setDynamicResults((prev) => ({ ...prev, [index]: [] }));\n setLoadingSet((prev) => {\n const next = new Set(prev);\n next.delete(index);\n return next;\n });\n }\n };\n\n try {\n Promise.resolve(config.loader!(loaderArg))\n .then(handleResult)\n .catch(handleError);\n } catch (error) {\n handleError(error);\n }\n },\n [getSectionCache],\n );\n\n // Load dynamic options when searchValue or config changes\n useEffect(() => {\n const dynamicEntries = sectionConfig\n .map((config, index) => ({ config, index }))\n .filter(({ config }) => config.isDynamic);\n\n if (dynamicEntries.length === 0) return;\n\n const toLoad: { config: SectionConfig; index: number }[] = [];\n const preResolved: Record<number, SelectFieldOption[]> = {};\n\n dynamicEntries.forEach(({ config, index }) => {\n const sectionCache = getSectionCache(index);\n\n if (config.searchReactive) {\n // Reactive section: check cache for this specific search value\n const cached = sectionCache.get(searchValue);\n if (cached) {\n preResolved[index] = cached;\n } else {\n toLoad.push({ config, index });\n }\n } else {\n // Non-reactive section: use static cache entry, load at most once\n const cached = sectionCache.get(STATIC_CACHE_KEY);\n if (cached) {\n preResolved[index] = cached;\n } else if (!nonReactiveTriggeredRef.current.has(index)) {\n nonReactiveTriggeredRef.current.add(index);\n toLoad.push({ config, index });\n }\n // else: already triggered, still loading - shows as loading via fallthrough\n }\n });\n\n // If everything is cached, just set results immediately\n if (toLoad.length === 0) {\n setDynamicResults(preResolved);\n setLoadingSet(new Set());\n return;\n }\n\n // Set pre-resolved results and mark only uncached sections as loading\n const loadingIndices = toLoad.map(({ index }) => index);\n setDynamicResults(preResolved);\n setLoadingSet(new Set(loadingIndices));\n\n // Load each uncached dynamic section\n toLoad.forEach(({ config, index }) => {\n // Non-reactive sections always pass \"\" to the loader\n const loaderArg = config.searchReactive ? searchValue : \"\";\n loadSection(config, index, loaderArg);\n });\n }, [sectionConfig, searchValue, loadSection, getSectionCache]);\n\n // Build the final sections array with per-section loading state\n const pinnedSections = useMemo((): NormalizedPinnedSection[] => {\n return sectionConfig.map((config, index) => {\n if (!config.isDynamic) {\n return { label: config.label, options: config.staticOptions! };\n }\n // Dynamic section: show resolved results if available and not loading\n if (!loadingSet.has(index) && index in dynamicResults) {\n return {\n label: config.label,\n options: dynamicResults[index],\n };\n }\n // Otherwise it's still loading (or hasn't started yet)\n return { label: config.label, options: [], loading: true };\n });\n }, [sectionConfig, dynamicResults, loadingSet]);\n\n return { pinnedSections };\n}\n","import { useMemo } from \"react\";\nimport {\n SelectFieldGroupByValue,\n SelectFieldOption,\n} from \"../../beta/components/SelectField/types\";\nimport { SelectItem } from \"../types/selectFieldInternalTypes\";\n\n/**\n * Normalized group section structure used internally.\n * @property label - The group label (derived from groupToString or String(groupValue))\n * @property options - The options belonging to this group\n */\nexport type NormalizedGroupSection = {\n label: string;\n options: SelectFieldOption[];\n};\n\ntype UseGroupedOptionsResult = {\n /** Options that have a group property, converted to downshift items */\n groupedItems: SelectItem[];\n /** Options that don't have a group property, converted to downshift items */\n ungroupedItems: SelectItem[];\n /** Metadata about each group section for rendering */\n groupSections: NormalizedGroupSection[];\n};\n\n/**\n * Hook that processes options and groups them by their `group` property.\n *\n * Groups are ordered by insertion order (first occurrence of a group value\n * defines its position in the list).\n *\n * @param options - The options to process\n * @param groupToString - Optional function to convert group values to display labels\n * @returns Grouped items, ungrouped items, and group section metadata\n */\nexport function useGroupedOptions(\n options: SelectFieldOption[],\n groupToString?: (groupValue: SelectFieldGroupByValue) => string,\n): UseGroupedOptionsResult {\n return useMemo(() => {\n const groupedItems: SelectItem[] = [];\n const ungroupedItems: SelectItem[] = [];\n const groupSections: NormalizedGroupSection[] = [];\n\n // Map to track groups by their value, preserving insertion order\n const groupMap = new Map<\n SelectFieldGroupByValue,\n { label: string; options: SelectFieldOption[] }\n >();\n\n options.forEach((option) => {\n if (option.group !== undefined) {\n // Option has a group\n const groupValue = option.group;\n\n if (!groupMap.has(groupValue)) {\n // First occurrence of this group - create new entry\n const label = groupToString\n ? groupToString(groupValue)\n : String(groupValue);\n groupMap.set(groupValue, { label, options: [] });\n }\n\n // Add option to its group\n groupMap.get(groupValue)!.options.push(option);\n\n // Add to grouped items\n groupedItems.push({\n id: option.id,\n type: \"grouped-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n } else {\n // Option has no group - add to ungrouped\n ungroupedItems.push({\n id: option.id,\n type: \"option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n }\n });\n\n // Convert map to array (maintains insertion order)\n groupMap.forEach(({ label, options: groupOptions }) => {\n groupSections.push({ label, options: groupOptions });\n });\n\n return { groupedItems, ungroupedItems, groupSections };\n }, [options, groupToString]);\n}\n\n/**\n * Sorts group sections using the provided comparator function.\n * The group value is extracted from the first option in each section.\n *\n * @param sections - The group sections to sort\n * @param groupSorter - Comparator function for group values\n * @returns A new array of sorted sections\n */\nexport function sortGroupSections(\n sections: NormalizedGroupSection[],\n groupSorter: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number,\n): NormalizedGroupSection[] {\n return [...sections].sort((a, b) => {\n const groupA = a.options[0]?.group;\n const groupB = b.options[0]?.group;\n if (groupA === undefined || groupB === undefined) return 0;\n return groupSorter(groupA, groupB);\n });\n}\n","import { useMemo } from \"react\";\nimport {\n SelectFieldGroupByValue,\n SelectFieldOption,\n SelectFieldPinnedOptions,\n} from \"../../beta/components/SelectField/types\";\nimport { usePinnedOptions } from \"./usePinnedOptions\";\nimport { sortGroupSections, useGroupedOptions } from \"./useGroupedOptions\";\n\ntype UseProcessedOptionsParams = {\n options: SelectFieldOption[];\n pinned?: SelectFieldPinnedOptions;\n searchValue: string;\n groupToString?: (groupValue: SelectFieldGroupByValue) => string;\n groupSorter?: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number;\n};\n\n/**\n * Shared pipeline for processing options: pinned → grouped → sorted.\n * Used by all four downshift-wrapping hooks (useCombo, useSelectMode,\n * useComboMultiple, useSelectModeMultiple).\n */\nexport const useProcessedOptions = ({\n options,\n pinned,\n searchValue,\n groupToString,\n groupSorter,\n}: UseProcessedOptionsParams) => {\n const { pinnedSections } = usePinnedOptions(pinned, searchValue);\n\n const { ungroupedItems, groupSections: rawGroupSections } = useGroupedOptions(\n options,\n groupToString,\n );\n\n const groupSections = useMemo(() => {\n if (groupSorter && rawGroupSections.length > 0) {\n return sortGroupSections(rawGroupSections, groupSorter);\n }\n return rawGroupSections;\n }, [rawGroupSections, groupSorter]);\n\n return { pinnedSections, ungroupedItems, groupSections };\n};\n","import { SelectFieldOption } from \"../../beta/components/SelectField/types\";\nimport { SectionMeta, SelectItem } from \"../types/selectFieldInternalTypes\";\nimport { NormalizedPinnedSection } from \"../hooks/usePinnedOptions\";\nimport { NormalizedGroupSection } from \"../hooks/useGroupedOptions\";\n\nexport function toSelectItem(option: SelectFieldOption): SelectItem {\n return {\n id: option.id,\n type: \"option\",\n disabled: option.disabled ?? false,\n original: option,\n };\n}\n\ntype BuildSelectItemsParams = {\n prefixItems?: SelectItem[];\n pinnedSections: NormalizedPinnedSection[];\n groupSections: NormalizedGroupSection[];\n ungroupedItems: SelectItem[];\n};\n\n/**\n * Assembles the flat items array and sectionsMeta.\n * Order: prefixItems → pinned sections → group sections → ungrouped items.\n * Multi-select hooks pass bulk action items (select-all / select-filtered) as prefixItems;\n * single-select hooks omit it.\n */\nexport function buildSelectItems({\n prefixItems,\n pinnedSections,\n groupSections,\n ungroupedItems,\n}: BuildSelectItemsParams): {\n items: SelectItem[];\n sectionsMeta: SectionMeta[];\n} {\n const items: SelectItem[] = [];\n const meta: SectionMeta[] = [];\n\n if (prefixItems) {\n items.push(...prefixItems);\n }\n\n pinnedSections.forEach((section) => {\n const startIndex = items.length;\n\n section.options.forEach((option) => {\n items.push({\n id: option.id + \"-pinned\",\n type: \"pinned-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n });\n\n const endIndex = items.length;\n\n if (endIndex > startIndex || section.loading) {\n meta.push({\n type: \"pinned\",\n label: section.label,\n startIndex,\n endIndex,\n loading: section.loading,\n });\n }\n });\n\n groupSections.forEach((section) => {\n const startIndex = items.length;\n\n section.options.forEach((option) => {\n items.push({\n id: option.id,\n type: \"grouped-option\",\n original: option,\n disabled: option.disabled ?? false,\n });\n });\n\n const endIndex = items.length;\n\n if (endIndex > startIndex) {\n meta.push({\n type: \"group\",\n label: section.label,\n startIndex,\n endIndex,\n });\n }\n });\n\n items.push(...ungroupedItems);\n\n return { items, sectionsMeta: meta };\n}\n","import { useEffect, useState } from \"react\";\nimport { useBreakpoint } from \"../../../hooks\";\n\n/**\n * The type of view to render based on device characteristics.\n */\nexport type AdaptiveView = \"mobile\" | \"desktop\";\n\n/**\n * Return type for the useAdaptiveView hook.\n */\nexport interface UseAdaptiveViewReturn {\n /**\n * The current adaptive view type.\n */\n view: AdaptiveView;\n /**\n * True when the device should use mobile-optimized UI (Dialog).\n */\n isMobile: boolean;\n /**\n * True when the device should use desktop-optimized UI (Popover).\n */\n isDesktop: boolean;\n}\n\n/**\n * Detects whether the primary pointer is coarse (touch) using CSS media query.\n * Returns false during SSR or when matchMedia is unavailable.\n */\nfunction detectCoarsePointer(): boolean {\n if (typeof window === \"undefined\" || !window.matchMedia) {\n return false;\n }\n return window.matchMedia(\"(pointer: coarse)\").matches;\n}\n\n/**\n * Custom hook for detecting whether to use mobile or desktop UI patterns.\n *\n * This hook determines the optimal UI pattern (e.g., Dialog vs Popover) by combining:\n * - Screen size via useBreakpoint (viewport width)\n * - Pointer precision via CSS media query (pointer: coarse)\n *\n * A device is considered \"mobile\" when it has both:\n * - A small screen (below md breakpoint, < 768px)\n * - A coarse pointer (touch-primary input)\n *\n * This approach correctly identifies:\n * - Mobile phones → mobile view (Dialog)\n * - iPads/tablets → desktop view (Popover) due to larger screens\n * - Touch laptops → desktop view (Popover) due to fine pointer primary\n * - Desktop → desktop view (Popover)\n *\n * @returns Object containing view type and boolean flags for mobile/desktop\n *\n * @example\n * const { isMobile } = useAdaptiveView();\n *\n * return isMobile ? (\n * <Dialog>{children}</Dialog>\n * ) : (\n * <Popover>{children}</Popover>\n * );\n */\nexport function useAdaptiveView(): UseAdaptiveViewReturn {\n const breakpoint = useBreakpoint();\n const [hasCoarsePointer, setHasCoarsePointer] = useState(detectCoarsePointer);\n\n useEffect(() => {\n setHasCoarsePointer(detectCoarsePointer());\n\n // Listen for pointer capability changes (e.g., connecting/disconnecting a mouse)\n const mediaQuery = window.matchMedia(\"(pointer: coarse)\");\n const handleChange = (e: MediaQueryListEvent) => {\n setHasCoarsePointer(e.matches);\n };\n\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, []);\n\n const isSmallScreen = !breakpoint?.md;\n const isMobile = isSmallScreen && hasCoarsePointer;\n\n return {\n view: isMobile ? \"mobile\" : \"desktop\",\n isMobile,\n isDesktop: !isMobile,\n };\n}\n","import { ForwardedRef, useImperativeHandle, useMemo, useState } from \"react\";\nimport {\n useSelectFieldLoading,\n DEFAULT_PAGE_SIZE,\n} from \"./useSelectFieldLoading\";\nimport { useAdaptiveView } from \"../../beta/hooks/useAdaptiveView\";\n\nexport type UseSelectOrchestrationConfig = {\n lazy: false | \"page\" | \"offset\" | \"group\" | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n loadOptions: any;\n cache?: { enabled?: boolean; maxSize?: number };\n lazyOptions?: { pageSize?: number; limit?: number };\n initialLoad?: \"auto\" | \"immediate\" | \"open\";\n displayMenuAs?: \"auto\" | \"popover\" | \"dialog\";\n ref: ForwardedRef<{ clearCache: () => void; invalidate: () => void }>;\n};\n\n/**\n * Shared orchestration hook used by Select components\n * Centralizes adaptive view resolution, loading config construction, option loading lifecycle,\n * and imperative handle setup (clearCache/invalidate).\n */\nexport function useSelectOrchestration(config: UseSelectOrchestrationConfig) {\n const {\n lazy,\n loadOptions: loadOptionsProp,\n cache,\n lazyOptions,\n initialLoad: initialLoadProp = \"auto\",\n displayMenuAs: displayMenuAsProp = \"auto\",\n ref,\n } = config;\n\n const [initialLoadPerformed, setInitialLoadPerformed] = useState(false);\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const initialLoad =\n initialLoadProp === \"auto\" ? \"immediate\" : initialLoadProp;\n\n const pageSize =\n lazy === \"page\"\n ? (lazyOptions?.pageSize ?? DEFAULT_PAGE_SIZE)\n : DEFAULT_PAGE_SIZE;\n const limit =\n lazy === \"offset\"\n ? (lazyOptions?.limit ?? DEFAULT_PAGE_SIZE)\n : DEFAULT_PAGE_SIZE;\n\n const loadingHookConfig = useMemo(() => {\n const cacheConfig = {\n enabled: cache?.enabled,\n maxSize: cache?.maxSize,\n };\n if (lazy === \"page\")\n return {\n lazy: \"page\" as const,\n loadOptions: loadOptionsProp,\n pageSize,\n cache: cacheConfig,\n };\n if (lazy === \"offset\")\n return {\n lazy: \"offset\" as const,\n loadOptions: loadOptionsProp,\n limit,\n cache: cacheConfig,\n };\n if (lazy === \"group\")\n return {\n lazy: \"group\" as const,\n loadOptions: loadOptionsProp,\n cache: cacheConfig,\n };\n return {\n lazy: false as const,\n loadOptions: loadOptionsProp,\n cache: cacheConfig,\n };\n }, [lazy, loadOptionsProp, pageSize, limit, cache?.enabled, cache?.maxSize]);\n\n const {\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n clearCache,\n } = useSelectFieldLoading(loadingHookConfig);\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache,\n invalidate: () => {\n clearCache();\n setInitialLoadPerformed(false);\n },\n }),\n [clearCache],\n );\n\n return {\n displayAs,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n };\n}\n","import { matchSorter, MatchSorterOptions } from \"match-sorter\";\nimport {\n SelectFieldOption,\n SelectFieldGroupByValue,\n} from \"../../beta/components/SelectField/types\";\n\nexport type SyncFilterFn<T extends SelectFieldOption = SelectFieldOption> = (\n options: T[],\n searchValue: string,\n) => T[];\n\nexport const defaultSyncFilter: SyncFilterFn = (options, searchValue) =>\n matchSorter(options, searchValue, {\n keys: [\"label\", \"searchText\"],\n baseSort: (a, b) => a.index - b.index,\n });\n\nexport const toSyncFilterFn = <T extends SelectFieldOption = SelectFieldOption>(\n filter: SyncFilterFn<T> | MatchSorterOptions<T>,\n): SyncFilterFn<T> =>\n typeof filter === \"function\"\n ? filter\n : (options, searchValue) =>\n matchSorter(options, searchValue, {\n baseSort: (a, b) => a.index - b.index,\n ...filter,\n });\n\n/**\n * Sorts options by group using the provided comparator while maintaining\n * the original order within each group (stable sort).\n */\nexport const sortByGroup = <T extends SelectFieldOption = SelectFieldOption>(\n options: T[],\n groupSorter: (\n a: SelectFieldGroupByValue,\n b: SelectFieldGroupByValue,\n ) => number,\n): T[] => {\n const groupOrder = new Map<SelectFieldGroupByValue | undefined, number>();\n const uniqueGroups: (SelectFieldGroupByValue | undefined)[] = [];\n options.forEach((opt) => {\n if (!groupOrder.has(opt.group)) {\n groupOrder.set(opt.group, uniqueGroups.length);\n uniqueGroups.push(opt.group);\n }\n });\n\n uniqueGroups.sort((a, b) => {\n if (a === undefined && b === undefined) return 0;\n if (a === undefined) return 1;\n if (b === undefined) return -1;\n return groupSorter(a, b);\n });\n\n uniqueGroups.forEach((group, index) => {\n groupOrder.set(group, index);\n });\n\n return [...options].sort((a, b) => {\n const orderA = groupOrder.get(a.group) ?? Infinity;\n const orderB = groupOrder.get(b.group) ?? Infinity;\n return orderA - orderB;\n });\n};\n"],"names":["options","CheckboxChecked","styles","CheckboxOutline","CheckboxIndeterminate","Check","Close"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,iBAAA,GAAoB,EAAA;AACjC,MAAM,sBAAA,GAAyB,EAAA;AAwIxB,SAAS,sBACd,MAAA,EAC6B;AAC7B,EAAA,MAAM,EAAE,IAAA,EAAM,WAAA,EAAa,eAAA,EAAiB,KAAA,EAAO,aAAY,GAAI,MAAA;AAGnE,EAAA,MAAM,YAAA,GAAe,aAAa,OAAA,KAAY,KAAA;AAC9C,EAAA,MAAM,YAAA,GAAe,aAAa,OAAA,IAAW,sBAAA;AAE7C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAA8B,EAAE,CAAA;AAC9D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA;AAAA,IACxC;AAAA,GACF;AACA,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAiB,CAAC,CAAA;AAC1D,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAiB,CAAC,CAAA;AAC9D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,KAAK,CAAA;AAGpD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAA;AAAA,IAClC,0BAAU,GAAA;AAAI,GAChB;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAAe,EAAE,CAAA;AAG/C,EAAA,MAAM,mBAAA,GAAsB,OAAO,KAAK,CAAA;AAExC,EAAA,MAAM,aAAA,GAAgB,WAAA,CAAY,CAAC,UAAA,KAAoC;AACrE,IAAA,UAAA,CAAW,CAAC,WAAA,KAAgB,WAAA,CAAY,MAAA,CAAO,UAAU,CAAC,CAAA;AAAA,EAC5D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,QAAA,GACJ,IAAA,KAAS,MAAA,GACJ,MAAA,CAA+C,QAAA,GAChD,iBAAA;AACN,EAAA,MAAM,KAAA,GACJ,IAAA,KAAS,QAAA,GACJ,MAAA,CAAiD,KAAA,GAClD,iBAAA;AAGN,EAAA,MAAM,gBAAA,GAAmB,WAAA,CAAY,CAAC,MAAA,KAA8B;AAClE,IAAA,UAAA,CAAW,OAAO,OAAO,CAAA;AACzB,IAAA,gBAAA,CAAiB,OAAO,OAAO,CAAA;AAC/B,IAAA,eAAA,CAAgB,OAAO,YAAY,CAAA;AACnC,IAAA,iBAAA,CAAkB,OAAO,cAAc,CAAA;AACvC,IAAA,gBAAA,CAAiB,OAAO,aAAa,CAAA;AAAA,EACvC,CAAA,EAAG,EAAE,CAAA;AAKL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,YAAA,EAAc;AACnB,IAAA,MAAM,cAAc,qBAAA,CAAsB,OAAA;AAE1C,IAAA,IAAI,CAAC,oBAAoB,OAAA,EAAS;AAElC,IAAA,aAAA,CAAc,CAAC,IAAA,KAAS;AAEtB,MAAA,IAAI,IAAA,CAAK,QAAQ,YAAA,EAAc;AAC7B,QAAA,IAAA,CAAK,KAAA,EAAM;AAAA,MACb;AAEA,MAAA,IAAA,CAAK,IAAI,WAAA,EAAa;AAAA,QACpB,OAAA;AAAA,QACA,OAAA,EAAS,aAAA;AAAA,QACT,YAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA,OACD,CAAA;AACD,MAAA,OAAO,IAAI,IAAI,IAAI,CAAA;AAAA,IACrB,CAAC,CAAA;AAAA,EACH,CAAA,EAAG;AAAA,IACD,YAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,OACE,aACAA,QAAAA,KACkB;AAClB,MAAA,MAAM,SAAA,GAAY,CAAC,CAACA,QAAAA,EAAS,OAAA;AAG7B,MAAA,IAAI,aAAa,YAAA,EAAc;AAC7B,QAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAA,CAAI,WAAW,CAAA;AACzC,QAAA,IAAI,MAAA,EAAQ;AAEV,UAAA,qBAAA,CAAsB,OAAA,GAAU,WAAA;AAChC,UAAA,gBAAA,CAAiB,MAAM,CAAA;AACvB,UAAA;AAAA,QACF;AAAA,MACF;AAGA,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,qBAAA,CAAsB,OAAA,GAAU,WAAA;AAAA,MAClC;AAEA,MAAA,CAAC,SAAA,GAAY,UAAA,GAAa,cAAA,EAAgB,IAAI,CAAA;AAE9C,MAAA,IAAI;AACF,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,MAAM,MAAA,GAAS,MAAM,eAAA,CAAgB,WAAW,CAAA;AAChD,UAAA,MAAM,WAAW,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,GAAI,SAAS,MAAM,MAAA;AACxD,UAAA,CAAC,SAAA,GAAY,UAAA,GAAa,aAAA,EAAe,QAAQ,CAAA;AAAA,QACnD,CAAA,MAAO;AACL,UAAA,IAAI,MAAA;AAKJ,UAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,YAAA,MAAM,IAAA,GAAO,YAAY,CAAA,GAAI,YAAA;AAC7B,YAAA,MAAA,GAAS,MAAM,eAAA,CAAgB,WAAA,EAAa,IAAA,EAAM,QAAQ,CAAA;AAC1D,YAAA,eAAA,CAAgB,SAAA,GAAY,CAAA,GAAI,IAAA,GAAO,CAAC,CAAA;AAAA,UAC1C,CAAA,MAAA,IAAW,SAAS,QAAA,EAAU;AAC5B,YAAA,MAAM,MAAA,GAAS,YAAY,CAAA,GAAI,cAAA;AAC/B,YAAA,MAAA,GAAS,MAAM,eAAA,CAAgB,WAAA,EAAa,MAAA,EAAQ,KAAK,CAAA;AACzD,YAAA,iBAAA,CAAkB,SAAA,GAAY,KAAA,GAAQ,MAAA,GAAS,KAAK,CAAA;AAAA,UACtD,CAAA,MAAA,IAAW,SAAS,OAAA,EAAS;AAC3B,YAAA,MAAM,KAAA,GAAQ,YAAY,IAAA,GAAO,aAAA;AACjC,YAAA,MAAA,GAAS,MAAM,eAAA,CAAgB,WAAA,EAAa,KAAK,CAAA;AACjD,YAAA,gBAAA;AAAA,cACE,OAAO,OAAA,CAAQ,MAAA,CAAO,QAAQ,MAAA,GAAS,CAAC,GAAG,KAAA,IAAS;AAAA,aACtD;AAAA,UACF,CAAA,MAAO;AACL,YAAA,MAAM,IAAI,KAAA;AAAA,cACR,sBAAsB,IAAI,CAAA,wCAAA;AAAA,aAC5B;AAAA,UACF;AAEA,UAAA,gBAAA,CAAiB,MAAA,CAAO,WAAW,KAAK,CAAA;AACxC,UAAA,CAAC,SAAA,GAAY,UAAA,GAAa,aAAA,EAAe,MAAA,CAAO,OAAO,CAAA;AAAA,QACzD;AACA,QAAA,mBAAA,CAAoB,OAAA,GAAU,IAAA;AAAA,MAChC,CAAA,SAAE;AACA,QAAA,CAAC,SAAA,GAAY,UAAA,GAAa,cAAA,EAAgB,KAAK,CAAA;AAAA,MACjD;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,IAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,OAAO,WAAA,KAAuC;AAC5C,MAAA,MAAM,WAAA,CAAY,WAAA,EAAa,EAAE,OAAA,EAAS,OAAO,CAAA;AAAA,IACnD,CAAA;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,UAAA,CAAW,EAAE,CAAA;AACb,IAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,eAAA,CAAgB,CAAC,CAAA;AACjB,IAAA,iBAAA,CAAkB,CAAC,CAAA;AACnB,IAAA,UAAA,CAAW,KAAK,CAAA;AAChB,IAAA,cAAA,CAAe,KAAK,CAAA;AAAA,EACtB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAa,YAAY,MAAM;AACnC,IAAA,aAAA,iBAAc,IAAI,KAAK,CAAA;AAAA,EACzB,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA,EAAS,aAAA;AAAA,IACT,WAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5TO,MAAM,eAAe,CAAC;AAAA,EAC3B,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA,GAAiB;AACnB,CAAA,KAAyB;AACvB,EAAA,MAAM,YAAA,GACJ,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB,KAAK,IAAA,KAAS,iBAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,QAAQ,MAAM;AAC7B,IAAA,IAAI,OAAA,KAAY,SAAA;AACd,MAAA,OAAO,EAAE,IAAA,EAAMC,WAAA,EAAiB,KAAA,EAAOC,QAAA,CAAO,SAAS,CAAA,EAAE;AAC3D,IAAA,IAAI,OAAA,KAAY,WAAA;AACd,MAAA,OAAO,EAAE,IAAA,EAAMC,uBAAA,EAAiB,KAAA,EAAOD,QAAA,CAAO,WAAW,CAAA,EAAE;AAC7D,IAAA,IAAI,OAAA,KAAY,eAAA;AACd,MAAA,OAAO,EAAE,IAAA,EAAME,wBAAA,EAAuB,KAAA,EAAOF,QAAA,CAAO,eAAe,CAAA,EAAE;AACvE,IAAA,OAAO,EAAE,IAAA,EAAMC,uBAAA,EAAiB,KAAA,EAAOD,QAAA,CAAO,WAAW,CAAA,EAAE;AAAA,EAC7D,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,MAAM,OAAA,GAAU,KAAK,QAAA,CAAS,OAAA;AAC9B,EAAA,MAAM,SAAA,GAAY,CAAC,CAAC,OAAA,EAAS,MAAA;AAC7B,EAAA,MAAM,QAAA,GAAW,CAAC,CAAC,OAAA,EAAS,KAAA,EAAO,MAAA;AACnC,EAAA,MAAM,OAAA,GAAU,CAAC,CAAC,OAAA,EAAS,IAAA;AAE3B,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAEC,iBAAA,EAAiB,KAAA;AAAA,MAChB,GAAG,YAAA,CAAa;AAAA,QACf,IAAA;AAAA,QACA,KAAA;AAAA,QACA,aAAa,IAAA,CAAK,IAAA;AAAA,QAClB,SAAA,EAAW,EAAA,CAAGA,QAAA,CAAO,wBAAwB,CAAA,EAAG;AAAA,UAC9C,CAACA,QAAA,CAAO,WAAW,GAAG,WAAA;AAAA,UACtB,CAACA,QAAA,CAAO,QAAQ,GAAG,OAAA,KAAY,SAAA;AAAA,UAC/B,CAACA,QAAA,CAAO,QAAQ,GAAG,QAAA;AAAA,UACnB,CAACA,QAAA,CAAO,MAAM,GAAG,aAAA,KAAkB,QAAA;AAAA,UACnC,CAACA,QAAA,CAAO,aAAa,CAAC,GAAG,YAAA;AAAA,UACzB,CAACA,QAAA,CAAO,QAAQ,GAAG,YAAA,IAAgB;AAAA,SACpC;AAAA,OACF,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,QAAA,aAAA,KAAkB,UAAA,wBAChB,KAAA,EAAA,EAAI,SAAA,EAAWA,SAAO,cAAc,CAAA,EAClC,sBAAY,SAAA,mBACX,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,UAAA,EAAW,QAAA;AAAA,YACX,cAAA,EAAe,QAAA;AAAA,YACf,KAAA,EAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,OAAO,QAAA,EAAS;AAAA,YAE3C,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,OAAA,EAAQ;AAAA;AAAA,SACxB;AAAA;AAAA,0BAGA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAY,MAAA;AAAA,cACZ,IAAA,EAAK,OAAA;AAAA,cACL,KAAK,QAAA,CAAS,IAAA;AAAA,cACd,WAAW,EAAA,CAAGA,QAAA,CAAO,UAAU,CAAA,EAAG,SAAS,KAAK;AAAA;AAAA;AAClD,SAAA,EAEJ,CAAA;AAAA,QAED,SAAA;AAAA,wBAEC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,cAAc,CAAA,EAAG,aAAA,EAAY,MAAA,EAClD,QAAA,kBAAA,GAAA,CAAC,UAAO,IAAA,EAAK,QAAA,EAAU,GAAG,OAAA,CAAS,QAAS,CAAA,EAC9C,CAAA;AAAA,6BAED,IAAA,EAAA,EAAK,IAAA,EAAM,GAAG,MAAA,EAAQ,CAAA,EAAG,WAAU,QAAA,EAClC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAK,IAAA,EAAK,QAAA,EAAU,mBAAS,KAAA,IAAS,IAAA,CAAK,SAAS,KAAA,EAAM,CAAA;AAAA,UAC1D,OAAA,EAAS,WAAA,oBACR,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAWA,QAAA,CAAO,aAAa,CAAA,EAC/C,QAAA,EAAA,OAAA,CAAQ,WAAA,EACX,CAAA;AAAA,UAED,QAAA;AAAA,0BAEC,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,MAAA;AAAA,cACL,GAAA,EAAI,GAAA;AAAA,cACJ,SAAA,EAAWA,SAAO,WAAW,CAAA;AAAA,cAC7B,IAAA,EAAK,OAAA;AAAA,cACL,YAAA,EAAW,MAAA;AAAA,cAEV,kBAAS,KAAA,CAAO,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,yBACzB,IAAA,EAAA,EAAgC,IAAA,EAAK,OAAA,EAAS,GAAG,QAAvC,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,CAAC,EAA2B,CACzD;AAAA;AAAA;AACH,SAAA,EAEJ,CAAA;AAAA,QACC,2BACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,cAAc,CAAA,EAEnC,QAAA,kBAAA,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,GAAA,EAAK,QAAS,IAAA,CAAM,GAAA;AAAA,YACpB,KAAA,EAAO,QAAS,IAAA,CAAM,KAAA;AAAA,YACtB,aAAA,EAAa,OAAA,CAAS,IAAA,CAAM,KAAA,GAAQ,MAAA,GAAY,MAAA;AAAA,YAChD,YAAA,EAAY,QAAS,IAAA,CAAM;AAAA;AAAA,SAC7B,EACF,CAAA;AAAA,QAED,aAAA,KAAkB,YAAY,OAAA,KAAY,SAAA,wBACxC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,cAAc,CAAA,EAEnC,QAAA,kBAAA,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAY,MAAA;AAAA,YACZ,IAAA,EAAK,QAAA;AAAA,YACL,GAAA,EAAKG,QAAA;AAAA,YACL,WAAW,EAAA,CAAGH,QAAA,CAAO,UAAU,CAAA,EAAGA,QAAA,CAAO,SAAS,CAAC;AAAA;AAAA,SACrD,EACF;AAAA;AAAA,KAAA;AAAA,IAtFG,IAAA,CAAK;AAAA,GAwFZ;AAEJ,CAAA;;AChHO,MAAM,SAAS,CAAC;AAAA,EACrB,QAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA,KAAmB;AACjB,EAAA,MAAM,EAAE,GAAA,EAAI,GAAI,uBAAA,CAAwB;AAAA,IACtC,QAAA,EAAU,CAAC,cAAA,KAAmB;AAC5B,MAAA,kBAAA,GAAqB,cAAc,CAAA;AAAA,IACrC,CAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAW,QAAA,EAAS,CAAA;AAClC,CAAA;;ACXO,MAAM,kBAAA,GAAqB,CAChC,KAAA,EACA,YAAA,KACc;AACd,EAAA,OAAO,QAAQ,MAAiB;AAC9B,IAAA,IAAI,YAAA,CAAa,WAAW,CAAA,EAAG;AAC7B,MAAA,OAAO;AAAA,QACL;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,KAAA,EAAO,MAAM,GAAA,CAAI,CAAC,MAAM,KAAA,MAAW,EAAE,IAAA,EAAM,KAAA,EAAM,CAAE;AAAA;AACrD,OACF;AAAA,IACF;AAEA,IAAA,MAAM,SAAoB,EAAC;AAE3B,IAAA,MAAM,yBAAyB,IAAA,CAAK,GAAA;AAAA,MAClC,GAAG,YAAA,CAAa,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,UAAU;AAAA,KACzC;AAEA,IAAA,IAAI,yBAAyB,CAAA,EAAG;AAC9B,MAAA,MAAM,YAA2B,EAAC;AAClC,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,sBAAA,EAAwB,CAAA,EAAA,EAAK;AAC/C,QAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,UAAA,SAAA,CAAU,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,CAAM,CAAC,CAAA,EAAG,KAAA,EAAO,GAAG,CAAA;AAAA,QAC7C;AAAA,MACF;AACA,MAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACxB,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,WAAW,CAAA;AAAA,MAChD;AAAA,IACF;AAEA,IAAA,YAAA,CAAa,OAAA,CAAQ,CAAC,IAAA,KAAS;AAC7B,MAAA,MAAM,eAA8B,EAAC;AACrC,MAAA,KAAA,IAAS,IAAI,IAAA,CAAK,UAAA,EAAY,CAAA,GAAI,IAAA,CAAK,UAAU,CAAA,EAAA,EAAK;AACpD,QAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,UAAA,YAAA,CAAa,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,CAAM,CAAC,CAAA,EAAG,KAAA,EAAO,GAAG,CAAA;AAAA,QAChD;AAAA,MACF;AACA,MAAA,IAAI,IAAA,CAAK,SAAS,QAAA,EAAU;AAC1B,QAAA,IAAI,YAAA,CAAa,MAAA,GAAS,CAAA,IAAK,IAAA,CAAK,OAAA,EAAS;AAC3C,UAAA,MAAA,CAAO,IAAA,CAAK;AAAA,YACV,IAAA,EAAM,QAAA;AAAA,YACN,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,KAAA,EAAO,YAAA;AAAA,YACP,SAAS,IAAA,CAAK;AAAA,WACf,CAAA;AAAA,QACH;AAAA,MACF,CAAA,MAAA,IAAW,YAAA,CAAa,MAAA,GAAS,CAAA,EAAG;AAClC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,OAAA;AAAA,UACN,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,KAAA,EAAO;AAAA,SACR,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,gBAAA,GACJ,YAAA,CAAa,MAAA,GAAS,CAAA,GAClB,KAAK,GAAA,CAAI,GAAG,YAAA,CAAa,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAC,CAAA,GAC/C,CAAA;AAEN,IAAA,IAAI,gBAAA,GAAmB,MAAM,MAAA,EAAQ;AACnC,MAAA,MAAM,YAA2B,EAAC;AAClC,MAAA,KAAA,IAAS,CAAA,GAAI,gBAAA,EAAkB,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACpD,QAAA,SAAA,CAAU,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,CAAM,CAAC,CAAA,EAAG,KAAA,EAAO,GAAG,CAAA;AAAA,MAC7C;AACA,MAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACxB,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,WAAW,CAAA;AAAA,MAChD;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAA,EAAO,YAAY,CAAC,CAAA;AAC1B,CAAA;AASO,SAAS,4BAAA,CACd,UACA,OAAA,EAKA;AACA,EAAA,MAAM,cAA4B,EAAC;AACnC,EAAA,MAAM,kCAA0D,EAAC;AACjE,EAAA,MAAM,gBAA0B,EAAC;AAEjC,EAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,EAAS,YAAA,KAAiB;AAC1C,IAAA,MAAM,aAAA,GAAgB,YAAA,KAAiB,QAAA,CAAS,MAAA,GAAS,CAAA;AAEzD,IAAA,IAAI,OAAA,CAAQ,IAAA,KAAS,QAAA,IAAY,OAAA,CAAQ,SAAS,OAAA,EAAS;AACzD,MAAA,WAAA,CAAY,IAAA,CAAK;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAO,OAAA,CAAQ,KAAA;AAAA,QACf;AAAA,OACD,CAAA;AAED,MAAA,OAAA,CAAQ,MAAM,OAAA,CAAQ,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AACzC,QAAA,+BAAA,CAAgC,KAAK,IAAI,WAAA,CAAY,MAAA;AACrD,QAAA,WAAA,CAAY,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,OAAO,CAAA;AAAA,MAChD,CAAC,CAAA;AAED,MAAA,IAAI,CAAC,aAAA,EAAe;AAClB,QAAA,WAAA,CAAY,IAAA,CAAK,EAAE,IAAA,EAAM,SAAA,EAAW,cAAc,CAAA;AAAA,MACpD;AAAA,IACF,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,MAAM,OAAA,CAAQ,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AACzC,QAAA,MAAM,YAAA,GACJ,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB,KAAK,IAAA,KAAS,iBAAA;AAC9C,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,aAAA,CAAc,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,QACvC;AACA,QAAA,+BAAA,CAAgC,KAAK,IAAI,WAAA,CAAY,MAAA;AACrD,QAAA,WAAA,CAAY,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,OAAO,CAAA;AAAA,MAChD,CAAC,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,WAAA,CAAY,IAAA,CAAK,EAAE,IAAA,EAAM,WAAA,EAAa,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,EAAE,WAAA,EAAa,+BAAA,EAAiC,aAAA,EAAc;AACvE;;ACnHO,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CACE;AAAA,IACE,MAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,mBAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,eAAe;AAAC,KAElB,GAAA,KACG;AACH,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,iBAAA,GAAoB,OAAuB,IAAI,CAAA;AACrD,IAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAC/C,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAElD,IAAA,mBAAA,CAAoB,KAAK,OAAO;AAAA,MAC9B,aAAa,MAAM;AACjB,QAAA,IAAI,YAAY,OAAA,EAAS;AACvB,UAAA,WAAA,CAAY,QAAQ,SAAA,GAAY,CAAA;AAAA,QAClC;AAAA,MACF,CAAA;AAAA,MACA,aAAA,EAAe,CAAC,KAAA,KAAkB;AAChC,QAAA,IAAI,CAAC,YAAY,OAAA,EAAS;AAC1B,QAAA,IAAI,SAAS,CAAA,EAAG;AAEd,UAAA,WAAA,CAAY,QAAQ,SAAA,GAAY,CAAA;AAChC,UAAA;AAAA,QACF;AACA,QAAA,MAAM,IAAA,GAAO,YAAY,OAAA,CAAQ,aAAA;AAAA,UAC/B,qBAAqB,KAAK,CAAA,EAAA;AAAA,SAC5B;AACA,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,IAAA,CAAK,cAAA,CAAe,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,QAC1C;AAAA,MACF;AAAA,KACF,CAAE,CAAA;AAGF,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,aAAA,CAAc,KAAK,CAAA;AACnB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,CAAC,kBAAkB,OAAA,EAAS;AAChC,MAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,QACnB,CAAC,OAAA,KAAY;AACX,UAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,KAAA,KAAU;AACzB,YAAA,aAAA,CAAc,CAAC,MAAM,cAAc,CAAA;AAAA,UACrC,CAAC,CAAA;AAAA,QACH,CAAA;AAAA,QACA,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,YAAY,OAAA;AAAQ,OAC5C;AACA,MAAA,QAAA,CAAS,OAAA,CAAQ,kBAAkB,OAAO,CAAA;AAC1C,MAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,IACnC,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAIX,IAAA,MAAM,mBAAmB,YAAA,CAAa,IAAA;AAAA,MACpC,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,YAAY,CAAA,CAAE;AAAA,KAClC;AAEA,IAAA,MAAM,4BAAA,GAA+B,CAAC,OAAA,KAAqB;AACzD,MAAA,IAAI,OAAA,IAAW,CAAC,mBAAA,EAAqB;AACnC,QAAA,UAAA,EAAW;AAAA,MACb;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,KAAA,EAAO,YAAY,CAAA;AAEvD,IAAA,MAAM,UAAA,GAAa,CAAC,IAAA,EAAkB,KAAA,qBACpC,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QAEC,IAAA;AAAA,QACA,KAAA;AAAA,QACA,YAAA;AAAA,QACA,aAAA;AAAA,QACA,OAAA,EAAS,gBAAgB,IAAI,CAAA;AAAA,QAC7B,aAAa,gBAAA,KAAqB,KAAA;AAAA,QAClC,QAAA,EAAA,CAAW,QAAA,IAAY,IAAA,CAAK,QAAA,KAAa,KAAA;AAAA,QACzC,cAAA,EAAgB;AAAA,OAAA;AAAA,MARX,IAAA,CAAK;AAAA,KASZ;AAGF,IAAA,MAAM,iBAAiB,MAAmB;AACxC,MAAA,MAAM,SAAsB,EAAC;AAE7B,MAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,EAAS,YAAA,KAAiB;AAC1C,QAAA,MAAM,aAAA,GAAgB,YAAA,KAAiB,QAAA,CAAS,MAAA,GAAS,CAAA;AAEzD,QAAA,IAAI,OAAA,CAAQ,IAAA,KAAS,QAAA,IAAY,OAAA,CAAQ,SAAS,OAAA,EAAS;AACzD,UAAA,MAAM,OAAA,GAAU,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,YAAY,CAAA,CAAA;AAEjD,UAAA,MAAA,CAAO,IAAA;AAAA,4BACL,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,OAAA;AAAA,gBACL,iBAAA,EAAiB,OAAA;AAAA,gBACjB,SAAA,EAAWA,SAAO,gBAAgB,CAAA;AAAA,gBAElC,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAI,OAAA,EAAS,SAAA,EAAWA,QAAA,CAAO,uBAAuB,CAAA,EAC1D,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,SAAA,EAAW,QAAA,EAAA,OAAA,CAAQ,OAAM,CAAA,EACzC,CAAA;AAAA,sCACC,KAAA,EAAA,EAAI,SAAA,EAAWA,SAAO,qBAAqB,CAAA,EACzC,kBAAQ,KAAA,CAAM,GAAA;AAAA,oBAAI,CAAC,EAAE,IAAA,EAAM,OAAM,KAChC,UAAA,CAAW,MAAM,KAAK;AAAA,mBACxB,EACF;AAAA;AAAA,eAAA;AAAA,cAZK,WAAW,YAAY,CAAA;AAAA;AAa9B,WACF;AACA,UAAA,IAAI,CAAC,aAAA,EAAe;AAClB,YAAA,MAAA,CAAO,IAAA;AAAA;AAAA,8BAEL,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBAEC,IAAA,EAAK,cAAA;AAAA,kBACL,aAAA,EAAY,MAAA;AAAA,kBACZ,SAAA,EAAWA,SAAO,SAAS,CAAA;AAAA,kBAE3B,8BAAC,OAAA,EAAA,EAAQ;AAAA,iBAAA;AAAA,gBALJ,WAAW,YAAY,CAAA;AAAA;AAM9B,aACF;AAAA,UACF;AAAA,QACF,CAAA,MAAO;AAEL,UAAA,OAAA,CAAQ,MAAM,OAAA,CAAQ,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AACzC,YAAA,MAAA,CAAO,IAAA,CAAK,UAAA,CAAW,IAAA,EAAM,KAAK,CAAC,CAAA;AAAA,UACrC,CAAC,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAEA,IAAA,MAAM,YAAY,YAAA,CAAa;AAAA,MAC7B,SAAA,EAAW,EAAA,CAAGA,QAAA,CAAO,UAAU,GAAG,SAAS,CAAA;AAAA,MAC3C;AAAA,KACD,CAAA;AAED,IAAA,MAAM,UAAU,YAAA,CAAa,CAAC,SAAA,CAAU,GAAA,EAAK,WAAW,CAAC,CAAA;AAEzD,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAK,GAAG,SAAA,EAAW,GAAA,EAAK,OAAA,EACvB,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,mBAAmB,CAAA,EACvC,QAAA,EAAA;AAAA,MAAA,MAAA,oBACC,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,iBAAA;AAAA,UACL,SAAA,EAAWA,SAAO,iBAAiB,CAAA;AAAA,UACnC,IAAA,EAAK,cAAA;AAAA,UACL,aAAA,EAAY;AAAA;AAAA,OACd;AAAA,MAED,0BACC,GAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA,OAAA,IAAW,gBAAA,mBACV,GAAA,CAAC,SAAI,IAAA,EAAK,cAAA,EAAe,SAAA,EAAWA,QAAA,CAAO,OAAO,CAAA,EAChD,QAAA,kBAAA,GAAA,CAAC,WAAQ,IAAA,EAAK,QAAA,EAAS,GACzB,CAAA,GACE,KAAA,CAAM,MAAA,GAAS,CAAA,GACjB,gBAAe,mBAEf,GAAA,CAAC,SAAI,IAAA,EAAK,cAAA,EAAe,WAAWA,QAAA,CAAO,OAAO,CAAA,EAChD,QAAA,kBAAA,GAAA,CAAC,QAAK,OAAA,EAAO,IAAA,EAAC,MAAK,OAAA,EAAQ,QAAA,EAAA,gBAAA,EAE3B,GACF,CAAA,EAEJ,CAAA;AAAA,MAED,WAAA,wBACE,KAAA,EAAA,EAAI,IAAA,EAAK,gBAAe,SAAA,EAAWA,QAAA,CAAO,WAAW,CAAA,EACpD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,MAAK,OAAA,EAAQ,CAAA;AAAA,wBACtB,GAAA,CAAC,UAAO,QAAA,EAAA,iBAAA,EAAe;AAAA,OAAA,EACzB,IACE,OAAA,IAAW,CAAC,0BACd,GAAA,CAAC,KAAA,EAAA,EAAI,MAAK,cAAA,EACR,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,kBAAA,EAAoB,4BAAA;AAAA,UACpB,UAAA,EAAW,oBAAA;AAAA,UAEX,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,WAAW,CAAA,EAChC,QAAA,kBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,UAAA,EAAW,WAAA;AAAA,cACX,IAAA,EAAK,OAAA;AAAA,cACL,OAAA,EAAS,UAAA;AAAA,cACV,QAAA,EAAA;AAAA;AAAA,WAED,EACF;AAAA;AAAA,SAEJ,CAAA,GACE;AAAA,KAAA,EACN,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;AC1O3B,MAAM,iBAAA,GAAoB,EAAA;AAC1B,MAAM,eAAA,GAAkB,EAAA;AACxB,MAAM,mBAAA,GAAsB,EAAA;AAC5B,MAAM,uBAAA,GAA0B,EAAA;AAChC,MAAM,iBAAA,GAAoB,EAAA;AAC1B,MAAM,kBAAA,GAAqB,EAAA;AAC3B,MAAM,oBAAA,GAAuB,EAAA;AAC7B,MAAM,uBAAuB,iBAAA,GAAoB,eAAA;AAEjD,SAAS,kBAAkB,GAAA,EAAyB;AAClD,EAAA,IAAI,GAAA,CAAI,IAAA,KAAS,QAAA,EAAU,OAAO,iBAAA;AAClC,EAAA,IAAI,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW,OAAO,kBAAA;AACnC,EAAA,IAAI,GAAA,CAAI,IAAA,KAAS,WAAA,EAAa,OAAO,oBAAA;AAErC,EAAA,MAAM,OAAA,GAAU,GAAA,CAAI,IAAA,CAAK,QAAA,CAAS,OAAA;AAClC,EAAA,IAAI,CAAC,SAAS,OAAO,oBAAA;AAErB,EAAA,IAAI,aAAA,GAAgB,eAAA;AACpB,EAAA,IAAI,OAAA,CAAQ,aAAa,aAAA,IAAiB,eAAA;AAC1C,EAAA,IAAI,OAAA,CAAQ,KAAA,EAAO,MAAA,EAAQ,aAAA,IAAiB,mBAAA;AAC5C,EAAA,IAAI,OAAA,CAAQ,UAAU,OAAA,CAAQ,IAAA;AAC5B,IAAA,aAAA,GAAgB,IAAA,CAAK,GAAA,CAAI,aAAA,EAAe,uBAAuB,CAAA;AAEjE,EAAA,OAAO,iBAAA,GAAoB,aAAA;AAC7B;AAEO,MAAM,uBAAA,GAA0B,UAAA;AAAA,EAIrC,CACE;AAAA,IACE,MAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,mBAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,eAAe;AAAC,KAElB,GAAA,KACG;AACH,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,iBAAA,GAAoB,OAAuB,IAAI,CAAA;AACrD,IAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAC/C,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAElD,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,aAAA,CAAc,KAAK,CAAA;AACnB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,CAAC,kBAAkB,OAAA,EAAS;AAChC,MAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,QACnB,CAAC,OAAA,KAAY;AACX,UAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,KAAA,KAAU;AACzB,YAAA,aAAA,CAAc,CAAC,MAAM,cAAc,CAAA;AAAA,UACrC,CAAC,CAAA;AAAA,QACH,CAAA;AAAA,QACA,EAAE,SAAA,EAAW,CAAA,EAAG,IAAA,EAAM,YAAY,OAAA;AAAQ,OAC5C;AACA,MAAA,QAAA,CAAS,OAAA,CAAQ,kBAAkB,OAAO,CAAA;AAC1C,MAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,IACnC,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,IAAA,MAAM,mBAAmB,YAAA,CAAa,IAAA;AAAA,MACpC,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,KAAS,YAAY,CAAA,CAAE;AAAA,KAClC;AAEA,IAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,KAAA,EAAO,YAAY,CAAA;AAEvD,IAAA,MAAM,EAAE,WAAA,EAAa,+BAAA,EAAiC,aAAA,EAAc,GAClE,OAAA;AAAA,MACE,MAAM,4BAAA,CAA6B,QAAA,EAAU,OAAO,CAAA;AAAA,MACpD,CAAC,UAAU,OAAO;AAAA,KACpB;AAEF,IAAA,MAAM,eAAA,GAAkB,OAAO,oBAAoB,CAAA;AAEnD,IAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,MACrB,CAAC,KAAA,KAAiB;AAChB,QAAA,IAAI,aAAA,CAAc,WAAW,CAAA,EAAG;AAC9B,UAAA,OAAO,sBAAsB,KAAK,CAAA;AAAA,QACpC;AACA,QAAA,MAAM,iBAAA,GACJ,CAAC,GAAG,aAAa,CAAA,CACd,OAAA,EAAQ,CACR,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,UAAA,IAAc,KAAK,CAAA,IAAK,CAAA;AAEnD,QAAA,MAAM,IAAA,uBAAW,GAAA,CAAI;AAAA,UACnB,iBAAA;AAAA,UACA,GAAG,sBAAsB,KAAK;AAAA,SAC/B,CAAA;AAED,QAAA,OAAO,CAAC,GAAG,IAAI,CAAA,CAAE,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,GAAI,CAAC,CAAA;AAAA,MACvC,CAAA;AAAA,MACA,CAAC,aAAa;AAAA,KAChB;AAEA,IAAA,MAAM,cAAc,cAAA,CAAe;AAAA,MACjC,OAAO,WAAA,CAAY,MAAA;AAAA,MACnB,gBAAA,EAAkB,MAAM,WAAA,CAAY,OAAA;AAAA,MACpC,cAAc,CAAC,KAAA,KAAU,iBAAA,CAAkB,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,MAC7D,QAAA,EAAU,CAAA;AAAA,MACV,cAAA;AAAA,MACA,kBAAA,EACE,aAAA,CAAc,MAAA,GAAS,CAAA,GAAI,gBAAgB,OAAA,GAAU,CAAA;AAAA,MACvD,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,CAAC,KAAA,KAAU;AACrB,QAAA,MAAM,GAAA,GAAM,YAAY,KAAK,CAAA;AAC7B,QAAA,IAAI,GAAA,CAAI,IAAA,KAAS,MAAA,EAAQ,OAAO,IAAI,IAAA,CAAK,EAAA;AACzC,QAAA,IAAI,IAAI,IAAA,KAAS,QAAA,EAAU,OAAO,CAAA,OAAA,EAAU,IAAI,YAAY,CAAA,CAAA;AAC5D,QAAA,IAAI,IAAI,IAAA,KAAS,SAAA,EAAW,OAAO,CAAA,QAAA,EAAW,IAAI,YAAY,CAAA,CAAA;AAC9D,QAAA,OAAO,WAAA;AAAA,MACT;AAAA,KACD,CAAA;AAED,IAAA,MAAM,YAAA,GAAe,YAAY,eAAA,EAAgB;AAEjD,IAAA,IAAI,aAAA,CAAc,SAAS,CAAA,EAAG;AAC5B,MAAA,MAAM,aAAa,YAAA,CAAa,IAAA;AAAA,QAAK,CAAC,EAAA,KACpC,aAAA,CAAc,QAAA,CAAS,GAAG,KAAK;AAAA,OACjC;AACA,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,eAAA,CAAgB,UAAU,UAAA,CAAW,IAAA;AAAA,MACvC;AAAA,IACF;AAEA,IAAA,MAAM,eAAA,GAAkB,OAAO,+BAA+B,CAAA;AAC9D,IAAA,eAAA,CAAgB,OAAA,GAAU,+BAAA;AAE1B,IAAA,MAAM,cAAA,GAAiB,OAAO,WAAW,CAAA;AACzC,IAAA,cAAA,CAAe,OAAA,GAAU,WAAA;AAEzB,IAAA,mBAAA,CAAoB,KAAK,OAAO;AAAA,MAC9B,aAAa,MAAM;AACjB,QAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,UAAA,cAAA,CAAe,OAAA,CAAQ,eAAe,CAAC,CAAA;AAAA,QACzC;AAAA,MACF,CAAA;AAAA,MACA,aAAA,EAAe,CAAC,KAAA,KAAkB;AAChC,QAAA,IAAI,SAAS,CAAA,EAAG;AAEd,UAAA,cAAA,CAAe,OAAA,CAAQ,eAAe,CAAC,CAAA;AACvC,UAAA;AAAA,QACF;AACA,QAAA,MAAM,eAAA,GAAkB,eAAA,CAAgB,OAAA,CAAQ,KAAK,CAAA;AACrD,QAAA,IAAI,mBAAmB,IAAA,EAAM;AAC3B,UAAA,cAAA,CAAe,OAAA,CAAQ,cAAc,eAAA,EAAiB;AAAA,YACpD,KAAA,EAAO;AAAA,WACR,CAAA;AAAA,QACH;AAAA,MACF;AAAA,KACF,CAAE,CAAA;AAEF,IAAA,MAAM,aAAA,GAAgB,OAAO,UAAU,CAAA;AACvC,IAAA,aAAA,CAAc,OAAA,GAAU,UAAA;AAGxB,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,OAAA,IAAW,WAAA,IAAe,mBAAA,EAAqB;AACpD,MAAA,MAAM,QAAA,GAAW,YAAA,CAAa,YAAA,CAAa,MAAA,GAAS,CAAC,CAAA;AACrD,MAAA,IAAI,CAAC,QAAA,EAAU;AACf,MAAA,IAAI,QAAA,CAAS,KAAA,IAAS,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG;AAC5C,QAAA,aAAA,CAAc,OAAA,EAAQ;AAAA,MACxB;AAAA,IACF,CAAA,EAAG;AAAA,MACD,OAAA;AAAA,MACA,WAAA;AAAA,MACA,mBAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA,CAAY;AAAA,KACb,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,WAAA;AAAA,MACf,CAAC,KAAA,KAAkB,aAAA,CAAc,QAAA,CAAS,KAAK,CAAA;AAAA,MAC/C,CAAC,aAAa;AAAA,KAChB;AAEA,IAAA,MAAM,gBAAA,GAAmB,CAAC,GAAA,KAA+B;AACvD,MAAA,IAAI,GAAA,CAAI,SAAS,MAAA,EAAQ;AACvB,QAAA,uBACE,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,MAAM,GAAA,CAAI,IAAA;AAAA,YACV,OAAO,GAAA,CAAI,KAAA;AAAA,YACX,YAAA;AAAA,YACA,aAAA;AAAA,YACA,OAAA,EAAS,eAAA,CAAgB,GAAA,CAAI,IAAI,CAAA;AAAA,YACjC,WAAA,EAAa,qBAAqB,GAAA,CAAI,KAAA;AAAA,YACtC,QAAA,EAAA,CAAW,QAAA,IAAY,GAAA,CAAI,IAAA,CAAK,QAAA,KAAa,KAAA;AAAA,YAC7C,cAAA,EAAgB;AAAA;AAAA,SAClB;AAAA,MAEJ;AAEA,MAAA,IAAI,GAAA,CAAI,SAAS,QAAA,EAAU;AACzB,QAAA,MAAM,OAAA,GAAU,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,IAAI,YAAY,CAAA,CAAA;AACrD,QAAA,uBACE,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,cAAA;AAAA,YACL,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAWA,SAAO,uBAAuB,CAAA;AAAA,YAEzC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAI,OAAA,EACR,QAAA,kBAAA,GAAA,CAAC,QAAK,OAAA,EAAQ,SAAA,EAAW,QAAA,EAAA,GAAA,CAAI,KAAA,EAAM,CAAA,EACrC;AAAA;AAAA,SACF;AAAA,MAEJ;AAEA,MAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,QAAA;AAAA;AAAA,0BAEE,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,cAAA;AAAA,cACL,aAAA,EAAY,MAAA;AAAA,cACZ,SAAA,EAAWA,SAAO,SAAS,CAAA;AAAA,cAE3B,8BAAC,OAAA,EAAA,EAAQ;AAAA;AAAA;AACX;AAAA,MAEJ;AAEA,MAAA,IAAI,GAAA,CAAI,SAAS,WAAA,EAAa;AAC5B,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,4BACG,KAAA,EAAA,EAAI,IAAA,EAAK,gBAAe,SAAA,EAAWA,QAAA,CAAO,WAAW,CAAA,EACpD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,MAAK,OAAA,EAAQ,CAAA;AAAA,4BACtB,GAAA,CAAC,UAAO,QAAA,EAAA,iBAAA,EAAe;AAAA,WAAA,EACzB,CAAA;AAAA,QAEJ;AACA,QAAA,uBACE,GAAA,CAAC,SAAI,IAAA,EAAK,cAAA,EACR,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,WAAW,CAAA,EAChC,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,UAAA,EAAW,WAAA;AAAA,YACX,IAAA,EAAK,OAAA;AAAA,YACL,OAAA,EAAS,MAAM,aAAA,CAAc,OAAA,EAAQ;AAAA,YACtC,QAAA,EAAA;AAAA;AAAA,WAGH,CAAA,EACF,CAAA;AAAA,MAEJ;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAEA,IAAA,MAAM,YAAY,YAAA,CAAa;AAAA,MAC7B,SAAA,EAAW,EAAA,CAAGA,QAAA,CAAO,UAAU,GAAG,SAAS,CAAA;AAAA,MAC3C;AAAA,KACD,CAAA;AAED,IAAA,MAAM,UAAU,YAAA,CAAa,CAAC,SAAA,CAAU,GAAA,EAAK,WAAW,CAAC,CAAA;AAEzD,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAK,GAAG,SAAA,EAAW,GAAA,EAAK,OAAA,EACvB,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWA,QAAA,CAAO,mBAAmB,CAAA,EACvC,QAAA,EAAA;AAAA,MAAA,MAAA,oBACC,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,iBAAA;AAAA,UACL,SAAA,EAAWA,SAAO,iBAAiB,CAAA;AAAA,UACnC,IAAA,EAAK,cAAA;AAAA,UACL,aAAA,EAAY;AAAA;AAAA,OACd;AAAA,MAED,MAAA,oCAEI,QAAA,EAAA,OAAA,IAAW,gBAAA,uBACT,KAAA,EAAA,EAAI,IAAA,EAAK,gBAAe,SAAA,EAAWA,QAAA,CAAO,OAAO,CAAA,EAChD,QAAA,kBAAA,GAAA,CAAC,WAAQ,IAAA,EAAK,QAAA,EAAS,GACzB,CAAA,GACE,KAAA,CAAM,SAAS,CAAA,mBACjB,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,cAAA;AAAA,UACL,aAAA,EAAY,MAAA;AAAA,UACZ,KAAA,EAAO;AAAA,YACL,MAAA,EAAQ,YAAY,YAAA,EAAa;AAAA,YACjC,KAAA,EAAO,MAAA;AAAA,YACP,QAAA,EAAU;AAAA,WACZ;AAAA,UAEC,QAAA,EAAA,YAAA,CAAa,GAAA,CAAI,CAAC,WAAA,KAAgB;AACjC,YAAA,MAAM,GAAA,GAAM,WAAA,CAAY,WAAA,CAAY,KAAK,CAAA;AACzC,YAAA,MAAM,MAAA,GAAS,QAAA,CAAS,WAAA,CAAY,KAAK,CAAA;AAEzC,YAAA,uBACE,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBAEC,cAAY,WAAA,CAAY,KAAA;AAAA,gBACxB,KAAK,WAAA,CAAY,cAAA;AAAA,gBACjB,OACE,MAAA,GACI;AAAA,kBACE,QAAA,EAAU,QAAA;AAAA,kBACV,GAAA,EAAK,CAAA;AAAA,kBACL,MAAA,EAAQ;AAAA,iBACV,GACA;AAAA,kBACE,QAAA,EAAU,UAAA;AAAA,kBACV,GAAA,EAAK,CAAA;AAAA,kBACL,IAAA,EAAM,CAAA;AAAA,kBACN,KAAA,EAAO,MAAA;AAAA,kBACP,SAAA,EAAW,CAAA,WAAA,EAAc,WAAA,CAAY,KAAK,CAAA,GAAA;AAAA,iBAC5C;AAAA,gBAGL,2BAAiB,GAAG;AAAA,eAAA;AAAA,cAnBhB,WAAA,CAAY;AAAA,aAoBnB;AAAA,UAEJ,CAAC;AAAA;AAAA,0BAGH,GAAA,CAAC,KAAA,EAAA,EAAI,IAAA,EAAK,cAAA,EAAe,WAAWA,QAAA,CAAO,OAAO,CAAA,EAChD,QAAA,kBAAA,GAAA,CAAC,QAAK,OAAA,EAAO,IAAA,EAAC,MAAK,OAAA,EAAQ,QAAA,EAAA,gBAAA,EAE3B,GACF,CAAA,EAEJ;AAAA,KAAA,EAEJ,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;AAEA,uBAAA,CAAwB,WAAA,GAAc,yBAAA;;ACjV/B,SAAS,oBAAA,CACd,QAAA,EACA,KAAA,GAAgB,GAAA,EACb;AACH,EAAA,MAAM,UAAA,GAAa,OAA8B,IAAI,CAAA;AACrD,EAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AAGnC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EACxB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAGb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,WAAW,OAAA,EAAS;AACtB,QAAA,YAAA,CAAa,WAAW,OAAO,CAAA;AAC/B,QAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AAAA,MACvB;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,iBAAA,GAAoB,WAAA;AAAA,KACvB,IAAI,IAAA,KAAwB;AAE3B,MAAA,IAAI,WAAW,OAAA,EAAS;AACtB,QAAA,YAAA,CAAa,WAAW,OAAO,CAAA;AAAA,MACjC;AAGA,MAAA,UAAA,CAAW,OAAA,GAAU,WAAW,MAAM;AACpC,QAAA,WAAA,CAAY,OAAA,CAAQ,GAAG,IAAI,CAAA;AAC3B,QAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AAAA,MACvB,GAAG,KAAK,CAAA;AAAA,IACV,CAAA;AAAA,IACA,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,OAAO,iBAAA;AACT;;;;;;ACxCA,SAAS,YAAA,CACP,OACA,cAAA,EACoB;AACpB,EAAA,IAAI,KAAA,KAAU,WAAA,EAAa,OAAO,CAAA,EAAG,cAAc,CAAA,EAAA,CAAA;AACnD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,GAAG,KAAK,CAAA,EAAA,CAAA;AAC9C,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,OAAO,MAAA;AACT;AAEO,MAAM,cAAA,GAAiB,CAAC,KAAA,KAA+B;AAC5D,EAAA,MAAM,GAAA,GAAM,OAAuB,IAAI,CAAA;AACvC,EAAA,MAAM,EAAE,EAAA,EAAI,QAAA,EAAU,kBAAkB,IAAA,EAAM,cAAA,EAAgB,OAAM,GAAI,KAAA;AAExE,EAAA,iBAAA,CAAkB;AAAA,IAChB,SAAS,CAAC,GAAA,CAAI,WAAW,MAAA,EAAW,gBAAA,CAAiB,WAAW,MAAS,CAAA;AAAA,IACzE,cAAA;AAAA,IACA,SAAS,CAAC;AAAA,GACX,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,GAAA,CAAI,SAAS,WAAA,EAAY;AAAA,IAC3B,CAAA,MAAO;AACL,MAAA,GAAA,CAAI,SAAS,WAAA,EAAY;AAAA,IAC3B;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,cAAA,GAAiB,YAAY,YAAY;AAC7C,IAAA,IAAI,CAAC,GAAA,CAAI,OAAA,IAAW,CAAC,iBAAiB,OAAA,EAAS;AAC/C,IAAA,MAAM,WAAW,MAAM,eAAA;AAAA,MACrB,gBAAA,CAAiB,OAAA;AAAA,MACjB,GAAA,CAAI,OAAA;AAAA,MACJ;AAAA,QACE,SAAA,EAAW,cAAA;AAAA,QACX,UAAA,EAAY;AAAA,UACV,OAAO,CAAC,CAAA;AAAA,UACR,aAAA,CAAc;AAAA,YACZ,iBAAA,EAAmB;AAAA,cACjB,cAAA;AAAA,cACA,YAAA;AAAA,cACA,WAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,OAAA,EAAS;AAAA,WACV,CAAA;AAAA,UACD,IAAA,CAAK;AAAA,YACH,OAAA,EAAS,CAAA;AAAA,YACT,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,eAAA,EAAiB,gBAAe,EAAG;AAC1D,cAAA,MAAM,QAAA,GAAW,YAAA,CAAa,KAAA,EAAO,KAAA,CAAM,UAAU,KAAK,CAAA;AAC1D,cAAA,MAAA,CAAO,MAAA,CAAO,QAAA,CAAS,QAAA,CAAS,KAAA,EAAO;AAAA,gBACrC,GAAI,QAAA,IAAY,IAAA,IAAQ,EAAE,OAAO,QAAA,EAAS;AAAA,gBAC1C,UAAU,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,cAAc,CAAC,CAAA,EAAA,CAAA;AAAA,gBACxC,WAAW,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,eAAe,CAAC,CAAA,EAAA;AAAA,eAC3C,CAAA;AAAA,YACH;AAAA,WACD;AAAA;AACH;AACF,KACF;AACA,IAAA,GAAA,CAAI,OAAA,CAAQ,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,SAAS,CAAC,CAAA,EAAA,CAAA;AACtC,IAAA,GAAA,CAAI,OAAA,CAAQ,KAAA,CAAM,GAAA,GAAM,CAAA,EAAG,SAAS,CAAC,CAAA,EAAA,CAAA;AAAA,EACvC,CAAA,EAAG,CAAC,GAAA,EAAK,gBAAA,EAAkB,KAAK,CAAC,CAAA;AAEjC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,GAAA,CAAI,OAAA,IAAW,CAAC,gBAAA,CAAiB,OAAA,IAAW,CAAC,IAAA,EAAM;AACxD,IAAA,MAAM,OAAA,GAAU,UAAA;AAAA,MACd,gBAAA,CAAiB,OAAA;AAAA,MACjB,GAAA,CAAI,OAAA;AAAA,MACJ;AAAA,KACF;AACA,IAAA,OAAO,MAAM;AACX,MAAA,OAAA,EAAQ;AAAA,IACV,CAAA;AAAA,EACF,GAAG,CAAC,gBAAA,EAAkB,GAAA,EAAK,cAAA,EAAgB,IAAI,CAAC,CAAA;AAEhD,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA;AAAA,MACA,SAAA,EAAWA,SAAO,iBAAiB,CAAA;AAAA,MACnC,OAAA,EAAQ,QAAA;AAAA,MAEP;AAAA;AAAA,GACH;AAEJ;;;;;;;;;;;;;AC1GO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,EAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,KAQM;AACJ,EAAA,MAAM,KAAA,GAAQ,OAA0B,IAAI,CAAA;AAC5C,EAAA,MAAM,uBAAA,GAA0B,OAAuB,IAAI,CAAA;AAE3D,EAAA,mBAAA,CAAoB;AAAA,IAClB,IAAA,EAAM,MAAA;AAAA,IACN,EAAA;AAAA,IACA,oBAAA,EAAsB,KAAA;AAAA,IACtB,UAAA,EAAY;AAAA,GACb,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,UAAA,KAAmC;AAClC,MAAA,IAAI,oBAAA,EAAsB;AACxB,QAAA,OAAO,qBAAqB,UAAU,CAAA;AAAA,MACxC;AACA,MAAA,OACE,UAAA,CAAW,IAAA;AAAA,QACT,CAAC,SAAA,KAAc,SAAA,CAAU,OAAA,CAAQ,GAAA,KAAQ;AAAA,OAC3C,IAAK,WAAW,CAAC,CAAA;AAAA,IAErB,CAAA;AAAA,IACA,CAAC,oBAAoB;AAAA,GACvB;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,KAAA,CAAM,SAAS,SAAA,EAAU;AACzB,MAAA,IAAI,MAAM,OAAA,EAAS;AACjB,QAAA,YAAA,CAAa,QAAA,CAAS,KAAA,CAAM,OAAO,CAAC,EAAE,KAAA,EAAM;AAAA,MAC9C;AAAA,IACF,CAAA,MAAO;AACL,MAAA,KAAA,CAAM,SAAS,KAAA,EAAM;AAAA,IACvB;AAAA,EAEF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,MAAM,eAAe,MAAM;AACzB,QAAA,IAAI,CAAC,wBAAwB,OAAA,EAAS;AACtC,QAAA,uBAAA,CAAwB,QAAQ,KAAA,CAAM,MAAA,GAAS,GAAG,MAAA,CAAO,cAAA,EAAgB,UAAU,CAAC,CAAA,EAAA,CAAA;AACpF,QAAA,uBAAA,CAAwB,QAAQ,KAAA,CAAM,SAAA,GAAY,GAAG,MAAA,CAAO,cAAA,EAAgB,UAAU,CAAC,CAAA,EAAA,CAAA;AAAA,MACzF,CAAA;AACA,MAAA,MAAA,CAAO,cAAA,EAAgB,gBAAA,CAAiB,QAAA,EAAU,YAAY,CAAA;AAC9D,MAAA,OAAO,MAAM;AACX,QAAA,MAAA,CAAO,cAAA,EAAgB,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,MACnE,CAAA;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,KAAA;AAAA,MACL,EAAA;AAAA,MACA,UAAA,EAAS,cAAA;AAAA,MACT,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,MAChC,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,QAAA,IAAI,CAAA,CAAE,SAAS,QAAA,EAAU;AACvB,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,OAAA,EAAQ;AAAA,QACV;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,OAAO,qCAAqC,CAAA;AAAA,UACvD,GAAA,EAAK,uBAAA;AAAA,UAEL,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,QAAK,SAAA,EAAU,KAAA,EAAM,SAAA,EAAW,MAAA,CAAO,QAAQ,CAAA,EAC9C,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,UAAA,EAAW,EAAA,EAAG,MACzB,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,8BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,iBAAiB,CAAA,EACvC,QAAA,kBAAA,GAAA,CAAC,aAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,KAAA,EAAO,SAAQ,EAC9C,QAAA,kBAAA,GAAA;AAAA,gBAAC,kBAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,kBAChC,IAAA,EAAK,OAAA;AAAA,kBACL,UAAA,EAAW,OAAA;AAAA,kBACX,YAAA,EAAW,cAAA;AAAA,kBACX,IAAA,EAAMI;AAAA;AAAA,iBAEV,CAAA,EACF;AAAA,aAAA,EACF,CAAA;AAAA,YACC,KAAA,mBACC,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,WAAW,MAAA,CAAO,OAAO,CAAA,EAC/C,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,4BACJ,GAAA,CAAC,QAAK,SAAA,EAAU,QAAA,EAAS,WAAW,MAAA,CAAO,SAAS,GACjD,QAAA,EACH;AAAA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;;ACjHA,MAAM,kBAAA,GAAqB,EAAA;AAC3B,MAAM,gBAAA,GAAmB,YAAA;AAiCzB,SAAS,QAAA,CACP,YAAA,EACA,GAAA,EACA,KAAA,EACA,OAAA,EACM;AAEN,EAAA,IAAI,YAAA,CAAa,GAAA,CAAI,GAAG,CAAA,EAAG;AACzB,IAAA,YAAA,CAAa,OAAO,GAAG,CAAA;AAAA,EACzB;AACA,EAAA,YAAA,CAAa,GAAA,CAAI,KAAK,KAAK,CAAA;AAE3B,EAAA,OAAO,YAAA,CAAa,OAAO,OAAA,EAAS;AAClC,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,IAAA,EAAK,CAAE,MAAK,CAAE,KAAA;AAC1C,IAAA,IAAI,WAAW,MAAA,EAAW;AACxB,MAAA,YAAA,CAAa,OAAO,MAAM,CAAA;AAAA,IAC5B;AAAA,EACF;AACF;AAsBO,SAAS,gBAAA,CACd,QACA,WAAA,EACwB;AACxB,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,QAAA,CAE1C,EAAE,CAAA;AACJ,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,IAAI,QAAA,iBAAsB,IAAI,KAAK,CAAA;AAGnE,EAAA,MAAM,oBAAA,GAAuB,OAAO,WAAW,CAAA;AAC/C,EAAA,oBAAA,CAAqB,OAAA,GAAU,WAAA;AAG/B,EAAA,MAAM,QAAA,GAAW,MAAA;AAAA,wBACX,GAAA;AAAI,GACV;AAIA,EAAA,MAAM,uBAAA,GAA0B,MAAA,iBAAoB,IAAI,GAAA,EAAK,CAAA;AAG7D,EAAA,MAAM,QAAA,GAAW,QAAQ,MAAyC;AAChE,IAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,EAAC;AACrB,IAAA,OAAO,MAAM,OAAA,CAAQ,MAAM,CAAA,GAAI,MAAA,GAAS,CAAC,MAAM,CAAA;AAAA,EACjD,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAGX,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAuB;AACnD,IAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAY;AAC/B,MAAA,MAAM,SAAA,GAAY,OAAO,OAAA,CAAQ,OAAA,KAAY,UAAA;AAC7C,MAAA,OAAO;AAAA,QACL,OAAO,OAAA,CAAQ,KAAA;AAAA,QACf,SAAA;AAAA,QACA,cAAA,EAAgB,QAAQ,cAAA,IAAkB,IAAA;AAAA,QAC1C,SAAA,EAAW,QAAQ,SAAA,IAAa,kBAAA;AAAA,QAChC,aAAA,EAAe,SAAA,GACX,MAAA,GACC,OAAA,CAAQ,OAAA;AAAA,QACb,MAAA,EAAQ,SAAA,GACH,OAAA,CAAQ,OAAA,GAGT;AAAA,OACN;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAKb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,OAAA,uBAAc,GAAA,EAAI;AAC3B,IAAA,uBAAA,CAAwB,OAAA,uBAAc,GAAA,EAAI;AAAA,EAC5C,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAGlB,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,KAAA,KAAoD;AACnD,MAAA,IAAI,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA;AAC7C,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,YAAA,uBAAmB,GAAA,EAAI;AACvB,QAAA,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,YAAY,CAAA;AAAA,MAC1C;AACA,MAAA,OAAO,YAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAC,GACH;AAGA,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,MAAA,EAAuB,KAAA,EAAe,SAAA,KAAsB;AAC3D,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,cAAA,GAAiB,SAAA,GAAY,gBAAA;AAErD,MAAA,MAAM,YAAA,GAAe,CAAC,OAAA,KAAiC;AAGrD,QAAA,IACE,CAAC,MAAA,CAAO,cAAA,IACR,oBAAA,CAAqB,YAAY,SAAA,EACjC;AACA,UAAA,MAAM,YAAA,GAAe,gBAAgB,KAAK,CAAA;AAC1C,UAAA,QAAA,CAAS,YAAA,EAAc,QAAA,EAAU,OAAA,EAAS,MAAA,CAAO,SAAS,CAAA;AAC1D,UAAA,iBAAA,CAAkB,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,OAAA,EAAQ,CAAE,CAAA;AAC3D,UAAA,aAAA,CAAc,CAAC,IAAA,KAAS;AACtB,YAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,YAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,YAAA,OAAO,IAAA;AAAA,UACT,CAAC,CAAA;AAAA,QACH;AAAA,MACF,CAAA;AAEA,MAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAmB;AACtC,QAAA,OAAA,CAAQ,KAAA,CAAM,kCAAkC,KAAK,CAAA;AACrD,QAAA,IACE,CAAC,MAAA,CAAO,cAAA,IACR,oBAAA,CAAqB,YAAY,SAAA,EACjC;AACA,UAAA,iBAAA,CAAkB,CAAC,IAAA,MAAU,EAAE,GAAG,IAAA,EAAM,CAAC,KAAK,GAAG,EAAC,EAAE,CAAE,CAAA;AACtD,UAAA,aAAA,CAAc,CAAC,IAAA,KAAS;AACtB,YAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,YAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,YAAA,OAAO,IAAA;AAAA,UACT,CAAC,CAAA;AAAA,QACH;AAAA,MACF,CAAA;AAEA,MAAA,IAAI;AACF,QAAA,OAAA,CAAQ,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAQ,SAAS,CAAC,EACtC,IAAA,CAAK,YAAY,CAAA,CACjB,KAAA,CAAM,WAAW,CAAA;AAAA,MACtB,SAAS,KAAA,EAAO;AACd,QAAA,WAAA,CAAY,KAAK,CAAA;AAAA,MACnB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAGA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,iBAAiB,aAAA,CACpB,GAAA,CAAI,CAAC,MAAA,EAAQ,WAAW,EAAE,MAAA,EAAQ,KAAA,EAAM,CAAE,EAC1C,MAAA,CAAO,CAAC,EAAE,MAAA,EAAO,KAAM,OAAO,SAAS,CAAA;AAE1C,IAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AAEjC,IAAA,MAAM,SAAqD,EAAC;AAC5D,IAAA,MAAM,cAAmD,EAAC;AAE1D,IAAA,cAAA,CAAe,OAAA,CAAQ,CAAC,EAAE,MAAA,EAAQ,OAAM,KAAM;AAC5C,MAAA,MAAM,YAAA,GAAe,gBAAgB,KAAK,CAAA;AAE1C,MAAA,IAAI,OAAO,cAAA,EAAgB;AAEzB,QAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,WAAW,CAAA;AAC3C,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,WAAA,CAAY,KAAK,CAAA,GAAI,MAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,IAAA,CAAK,EAAE,MAAA,EAAQ,KAAA,EAAO,CAAA;AAAA,QAC/B;AAAA,MACF,CAAA,MAAO;AAEL,QAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,gBAAgB,CAAA;AAChD,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,WAAA,CAAY,KAAK,CAAA,GAAI,MAAA;AAAA,QACvB,WAAW,CAAC,uBAAA,CAAwB,OAAA,CAAQ,GAAA,CAAI,KAAK,CAAA,EAAG;AACtD,UAAA,uBAAA,CAAwB,OAAA,CAAQ,IAAI,KAAK,CAAA;AACzC,UAAA,MAAA,CAAO,IAAA,CAAK,EAAE,MAAA,EAAQ,KAAA,EAAO,CAAA;AAAA,QAC/B;AAAA,MAEF;AAAA,IACF,CAAC,CAAA;AAGD,IAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,MAAA,iBAAA,CAAkB,WAAW,CAAA;AAC7B,MAAA,aAAA,iBAAc,IAAI,KAAK,CAAA;AACvB,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,iBAAiB,MAAA,CAAO,GAAA,CAAI,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AACtD,IAAA,iBAAA,CAAkB,WAAW,CAAA;AAC7B,IAAA,aAAA,CAAc,IAAI,GAAA,CAAI,cAAc,CAAC,CAAA;AAGrC,IAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,EAAE,MAAA,EAAQ,OAAM,KAAM;AAEpC,MAAA,MAAM,SAAA,GAAY,MAAA,CAAO,cAAA,GAAiB,WAAA,GAAc,EAAA;AACxD,MAAA,WAAA,CAAY,MAAA,EAAQ,OAAO,SAAS,CAAA;AAAA,IACtC,CAAC,CAAA;AAAA,EACH,GAAG,CAAC,aAAA,EAAe,WAAA,EAAa,WAAA,EAAa,eAAe,CAAC,CAAA;AAG7D,EAAA,MAAM,cAAA,GAAiB,QAAQ,MAAiC;AAC9D,IAAA,OAAO,aAAA,CAAc,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,KAAU;AAC1C,MAAA,IAAI,CAAC,OAAO,SAAA,EAAW;AACrB,QAAA,OAAO,EAAE,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,OAAA,EAAS,OAAO,aAAA,EAAe;AAAA,MAC/D;AAEA,MAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,KAAK,CAAA,IAAK,SAAS,cAAA,EAAgB;AACrD,QAAA,OAAO;AAAA,UACL,OAAO,MAAA,CAAO,KAAA;AAAA,UACd,OAAA,EAAS,eAAe,KAAK;AAAA,SAC/B;AAAA,MACF;AAEA,MAAA,OAAO,EAAE,OAAO,MAAA,CAAO,KAAA,EAAO,SAAS,EAAC,EAAG,SAAS,IAAA,EAAK;AAAA,IAC3D,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,aAAA,EAAe,cAAA,EAAgB,UAAU,CAAC,CAAA;AAE9C,EAAA,OAAO,EAAE,cAAA,EAAe;AAC1B;;AC9OO,SAAS,iBAAA,CACd,SACA,aAAA,EACyB;AACzB,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAA,MAAM,eAA6B,EAAC;AACpC,IAAA,MAAM,iBAA+B,EAAC;AACtC,IAAA,MAAM,gBAA0C,EAAC;AAGjD,IAAA,MAAM,QAAA,uBAAe,GAAA,EAGnB;AAEF,IAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC1B,MAAA,IAAI,MAAA,CAAO,UAAU,MAAA,EAAW;AAE9B,QAAA,MAAM,aAAa,MAAA,CAAO,KAAA;AAE1B,QAAA,IAAI,CAAC,QAAA,CAAS,GAAA,CAAI,UAAU,CAAA,EAAG;AAE7B,UAAA,MAAM,QAAQ,aAAA,GACV,aAAA,CAAc,UAAU,CAAA,GACxB,OAAO,UAAU,CAAA;AACrB,UAAA,QAAA,CAAS,IAAI,UAAA,EAAY,EAAE,OAAO,OAAA,EAAS,IAAI,CAAA;AAAA,QACjD;AAGA,QAAA,QAAA,CAAS,GAAA,CAAI,UAAU,CAAA,CAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAG7C,QAAA,YAAA,CAAa,IAAA,CAAK;AAAA,UAChB,IAAI,MAAA,CAAO,EAAA;AAAA,UACX,IAAA,EAAM,gBAAA;AAAA,UACN,QAAA,EAAU,MAAA;AAAA,UACV,QAAA,EAAU,OAAO,QAAA,IAAY;AAAA,SAC9B,CAAA;AAAA,MACH,CAAA,MAAO;AAEL,QAAA,cAAA,CAAe,IAAA,CAAK;AAAA,UAClB,IAAI,MAAA,CAAO,EAAA;AAAA,UACX,IAAA,EAAM,QAAA;AAAA,UACN,QAAA,EAAU,MAAA;AAAA,UACV,QAAA,EAAU,OAAO,QAAA,IAAY;AAAA,SAC9B,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAGD,IAAA,QAAA,CAAS,QAAQ,CAAC,EAAE,KAAA,EAAO,OAAA,EAAS,cAAa,KAAM;AACrD,MAAA,aAAA,CAAc,IAAA,CAAK,EAAE,KAAA,EAAO,OAAA,EAAS,cAAc,CAAA;AAAA,IACrD,CAAC,CAAA;AAED,IAAA,OAAO,EAAE,YAAA,EAAc,cAAA,EAAgB,aAAA,EAAc;AAAA,EACvD,CAAA,EAAG,CAAC,OAAA,EAAS,aAAa,CAAC,CAAA;AAC7B;AAUO,SAAS,iBAAA,CACd,UACA,WAAA,EAI0B;AAC1B,EAAA,OAAO,CAAC,GAAG,QAAQ,EAAE,IAAA,CAAK,CAAC,GAAG,CAAA,KAAM;AAClC,IAAA,MAAM,MAAA,GAAS,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAA;AAC7B,IAAA,MAAM,MAAA,GAAS,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,EAAG,KAAA;AAC7B,IAAA,IAAI,MAAA,KAAW,MAAA,IAAa,MAAA,KAAW,MAAA,EAAW,OAAO,CAAA;AACzD,IAAA,OAAO,WAAA,CAAY,QAAQ,MAAM,CAAA;AAAA,EACnC,CAAC,CAAA;AACH;;AC1FO,MAAM,sBAAsB,CAAC;AAAA,EAClC,OAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAiC;AAC/B,EAAA,MAAM,EAAE,cAAA,EAAe,GAAI,gBAAA,CAAiB,QAAQ,WAAW,CAAA;AAE/D,EAAA,MAAM,EAAE,cAAA,EAAgB,aAAA,EAAe,gBAAA,EAAiB,GAAI,iBAAA;AAAA,IAC1D,OAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,aAAA,GAAgB,QAAQ,MAAM;AAClC,IAAA,IAAI,WAAA,IAAe,gBAAA,CAAiB,MAAA,GAAS,CAAA,EAAG;AAC9C,MAAA,OAAO,iBAAA,CAAkB,kBAAkB,WAAW,CAAA;AAAA,IACxD;AACA,IAAA,OAAO,gBAAA;AAAA,EACT,CAAA,EAAG,CAAC,gBAAA,EAAkB,WAAW,CAAC,CAAA;AAElC,EAAA,OAAO,EAAE,cAAA,EAAgB,cAAA,EAAgB,aAAA,EAAc;AACzD;;AC1CO,SAAS,aAAa,MAAA,EAAuC;AAClE,EAAA,OAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,OAAO,QAAA,IAAY,KAAA;AAAA,IAC7B,QAAA,EAAU;AAAA,GACZ;AACF;AAeO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,WAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAGE;AACA,EAAA,MAAM,QAAsB,EAAC;AAC7B,EAAA,MAAM,OAAsB,EAAC;AAE7B,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,KAAA,CAAM,IAAA,CAAK,GAAG,WAAW,CAAA;AAAA,EAC3B;AAEA,EAAA,cAAA,CAAe,OAAA,CAAQ,CAAC,OAAA,KAAY;AAClC,IAAA,MAAM,aAAa,KAAA,CAAM,MAAA;AAEzB,IAAA,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAClC,MAAA,KAAA,CAAM,IAAA,CAAK;AAAA,QACT,EAAA,EAAI,OAAO,EAAA,GAAK,SAAA;AAAA,QAChB,IAAA,EAAM,eAAA;AAAA,QACN,QAAA,EAAU,MAAA;AAAA,QACV,QAAA,EAAU,OAAO,QAAA,IAAY;AAAA,OAC9B,CAAA;AAAA,IACH,CAAC,CAAA;AAED,IAAA,MAAM,WAAW,KAAA,CAAM,MAAA;AAEvB,IAAA,IAAI,QAAA,GAAW,UAAA,IAAc,OAAA,CAAQ,OAAA,EAAS;AAC5C,MAAA,IAAA,CAAK,IAAA,CAAK;AAAA,QACR,IAAA,EAAM,QAAA;AAAA,QACN,OAAO,OAAA,CAAQ,KAAA;AAAA,QACf,UAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAS,OAAA,CAAQ;AAAA,OAClB,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,aAAA,CAAc,OAAA,CAAQ,CAAC,OAAA,KAAY;AACjC,IAAA,MAAM,aAAa,KAAA,CAAM,MAAA;AAEzB,IAAA,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAClC,MAAA,KAAA,CAAM,IAAA,CAAK;AAAA,QACT,IAAI,MAAA,CAAO,EAAA;AAAA,QACX,IAAA,EAAM,gBAAA;AAAA,QACN,QAAA,EAAU,MAAA;AAAA,QACV,QAAA,EAAU,OAAO,QAAA,IAAY;AAAA,OAC9B,CAAA;AAAA,IACH,CAAC,CAAA;AAED,IAAA,MAAM,WAAW,KAAA,CAAM,MAAA;AAEvB,IAAA,IAAI,WAAW,UAAA,EAAY;AACzB,MAAA,IAAA,CAAK,IAAA,CAAK;AAAA,QACR,IAAA,EAAM,OAAA;AAAA,QACN,OAAO,OAAA,CAAQ,KAAA;AAAA,QACf,UAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,KAAA,CAAM,IAAA,CAAK,GAAG,cAAc,CAAA;AAE5B,EAAA,OAAO,EAAE,KAAA,EAAO,YAAA,EAAc,IAAA,EAAK;AACrC;;ACjEA,SAAS,mBAAA,GAA+B;AACtC,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,IAAe,CAAC,OAAO,UAAA,EAAY;AACvD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA,CAAO,UAAA,CAAW,mBAAmB,CAAA,CAAE,OAAA;AAChD;AA8BO,SAAS,eAAA,GAAyC;AACvD,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,mBAAmB,CAAA;AAE5E,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,mBAAA,CAAoB,qBAAqB,CAAA;AAGzC,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,UAAA,CAAW,mBAAmB,CAAA;AACxD,IAAA,MAAM,YAAA,GAAe,CAAC,CAAA,KAA2B;AAC/C,MAAA,mBAAA,CAAoB,EAAE,OAAO,CAAA;AAAA,IAC/B,CAAA;AAEA,IAAA,UAAA,CAAW,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAClD,IAAA,OAAO,MAAM,UAAA,CAAW,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,EACpE,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,aAAA,GAAgB,CAAC,UAAA,EAAY,EAAA;AACnC,EAAA,MAAM,WAAW,aAAA,IAAiB,gBAAA;AAElC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,WAAW,QAAA,GAAW,SAAA;AAAA,IAC5B,QAAA;AAAA,IACA,WAAW,CAAC;AAAA,GACd;AACF;;ACnEO,SAAS,uBAAuB,MAAA,EAAsC;AAC3E,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,WAAA,EAAa,eAAA;AAAA,IACb,KAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAa,eAAA,GAAkB,MAAA;AAAA,IAC/B,eAAe,iBAAA,GAAoB,MAAA;AAAA,IACnC;AAAA,GACF,GAAI,MAAA;AAEJ,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAS,KAAK,CAAA;AAEtE,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,eAAA,EAAgB;AACrC,EAAA,MAAM,SAAA,GACJ,iBAAA,KAAsB,MAAA,GAClB,QAAA,GACE,WACA,SAAA,GACF,iBAAA;AAEN,EAAA,MAAM,WAAA,GACJ,eAAA,KAAoB,MAAA,GAAS,WAAA,GAAc,eAAA;AAE7C,EAAA,MAAM,QAAA,GACJ,IAAA,KAAS,MAAA,GACJ,WAAA,EAAa,YAAY,iBAAA,GAC1B,iBAAA;AACN,EAAA,MAAM,KAAA,GACJ,IAAA,KAAS,QAAA,GACJ,WAAA,EAAa,SAAS,iBAAA,GACvB,iBAAA;AAEN,EAAA,MAAM,iBAAA,GAAoB,QAAQ,MAAM;AACtC,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,SAAS,KAAA,EAAO,OAAA;AAAA,MAChB,SAAS,KAAA,EAAO;AAAA,KAClB;AACA,IAAA,IAAI,IAAA,KAAS,MAAA;AACX,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,WAAA,EAAa,eAAA;AAAA,QACb,QAAA;AAAA,QACA,KAAA,EAAO;AAAA,OACT;AACF,IAAA,IAAI,IAAA,KAAS,QAAA;AACX,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa,eAAA;AAAA,QACb,KAAA;AAAA,QACA,KAAA,EAAO;AAAA,OACT;AACF,IAAA,IAAI,IAAA,KAAS,OAAA;AACX,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,WAAA,EAAa,eAAA;AAAA,QACb,KAAA,EAAO;AAAA,OACT;AACF,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,KAAA;AAAA,MACN,WAAA,EAAa,eAAA;AAAA,MACb,KAAA,EAAO;AAAA,KACT;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,eAAA,EAAiB,QAAA,EAAU,OAAO,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAO,CAAC,CAAA;AAE3E,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,GAAI,sBAAsB,iBAAiB,CAAA;AAE3C,EAAA,mBAAA;AAAA,IACE,GAAA;AAAA,IACA,OAAO;AAAA,MACL,UAAA;AAAA,MACA,YAAY,MAAM;AAChB,QAAA,UAAA,EAAW;AACX,QAAA,uBAAA,CAAwB,KAAK,CAAA;AAAA,MAC/B;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,WAAA;AAAA,IACA,oBAAA;AAAA,IACA,uBAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;AC/GO,MAAM,oBAAkC,CAAC,OAAA,EAAS,WAAA,KACvD,WAAA,CAAY,SAAS,WAAA,EAAa;AAAA,EAChC,IAAA,EAAM,CAAC,OAAA,EAAS,YAAY,CAAA;AAAA,EAC5B,UAAU,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE;AAClC,CAAC;AAEI,MAAM,cAAA,GAAiB,CAC5B,MAAA,KAEA,OAAO,MAAA,KAAW,UAAA,GACd,MAAA,GACA,CAAC,OAAA,EAAS,WAAA,KACR,WAAA,CAAY,OAAA,EAAS,WAAA,EAAa;AAAA,EAChC,UAAU,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,KAAA;AAAA,EAChC,GAAG;AACL,CAAC;AAMF,MAAM,WAAA,GAAc,CACzB,OAAA,EACA,WAAA,KAIQ;AACR,EAAA,MAAM,UAAA,uBAAiB,GAAA,EAAiD;AACxE,EAAA,MAAM,eAAwD,EAAC;AAC/D,EAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACvB,IAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,KAAK,CAAA,EAAG;AAC9B,MAAA,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,YAAA,CAAa,MAAM,CAAA;AAC7C,MAAA,YAAA,CAAa,IAAA,CAAK,IAAI,KAAK,CAAA;AAAA,IAC7B;AAAA,EACF,CAAC,CAAA;AAED,EAAA,YAAA,CAAa,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC1B,IAAA,IAAI,CAAA,KAAM,MAAA,IAAa,CAAA,KAAM,MAAA,EAAW,OAAO,CAAA;AAC/C,IAAA,IAAI,CAAA,KAAM,QAAW,OAAO,CAAA;AAC5B,IAAA,IAAI,CAAA,KAAM,QAAW,OAAO,EAAA;AAC5B,IAAA,OAAO,WAAA,CAAY,GAAG,CAAC,CAAA;AAAA,EACzB,CAAC,CAAA;AAED,EAAA,YAAA,CAAa,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AACrC,IAAA,UAAA,CAAW,GAAA,CAAI,OAAO,KAAK,CAAA;AAAA,EAC7B,CAAC,CAAA;AAED,EAAA,OAAO,CAAC,GAAG,OAAO,EAAE,IAAA,CAAK,CAAC,GAAG,CAAA,KAAM;AACjC,IAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAA,CAAI,CAAA,CAAE,KAAK,CAAA,IAAK,QAAA;AAC1C,IAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAA,CAAI,CAAA,CAAE,KAAK,CAAA,IAAK,QAAA;AAC1C,IAAA,OAAO,MAAA,GAAS,MAAA;AAAA,EAClB,CAAC,CAAA;AACH;;;;"}