@shadow-library/ui 0.1.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/README.md +21 -23
  2. package/components/Accordion/Accordion.context.d.ts +7 -0
  3. package/components/Accordion/Accordion.context.js +6 -0
  4. package/components/Accordion/Accordion.context.js.map +1 -0
  5. package/components/Accordion/Accordion.d.ts +12 -0
  6. package/components/Accordion/Accordion.js +34 -0
  7. package/components/Accordion/Accordion.js.map +1 -0
  8. package/components/Accordion/Accordion.module.css.js +4 -0
  9. package/components/Accordion/Accordion.module.css.js.map +1 -0
  10. package/components/Accordion/Accordion.types.d.ts +39 -0
  11. package/components/Accordion/index.d.ts +2 -0
  12. package/components/Alert/Alert.d.ts +8 -0
  13. package/components/Alert/Alert.js +26 -0
  14. package/components/Alert/Alert.js.map +1 -0
  15. package/components/Alert/Alert.module.css.js +4 -0
  16. package/components/Alert/Alert.module.css.js.map +1 -0
  17. package/components/Alert/Alert.types.d.ts +22 -0
  18. package/components/Alert/index.d.ts +2 -0
  19. package/components/Avatar/Avatar.context.d.ts +9 -0
  20. package/components/Avatar/Avatar.context.js +6 -0
  21. package/components/Avatar/Avatar.context.js.map +1 -0
  22. package/components/Avatar/Avatar.d.ts +13 -0
  23. package/components/Avatar/Avatar.js +66 -0
  24. package/components/Avatar/Avatar.js.map +1 -0
  25. package/components/Avatar/Avatar.module.css.js +4 -0
  26. package/components/Avatar/Avatar.module.css.js.map +1 -0
  27. package/components/Avatar/Avatar.types.d.ts +32 -0
  28. package/components/Avatar/index.d.ts +2 -0
  29. package/components/Badge/Badge.d.ts +8 -0
  30. package/components/Badge/Badge.js +23 -0
  31. package/components/Badge/Badge.js.map +1 -0
  32. package/components/Badge/Badge.module.css.js +4 -0
  33. package/components/Badge/Badge.module.css.js.map +1 -0
  34. package/components/Badge/Badge.types.d.ts +25 -0
  35. package/components/Badge/index.d.ts +2 -0
  36. package/components/Banner/Banner.d.ts +8 -0
  37. package/components/Banner/Banner.js +74 -0
  38. package/components/Banner/Banner.js.map +1 -0
  39. package/components/Banner/Banner.module.css.js +4 -0
  40. package/components/Banner/Banner.module.css.js.map +1 -0
  41. package/components/Banner/Banner.provider.d.ts +20 -0
  42. package/components/Banner/Banner.provider.js +34 -0
  43. package/components/Banner/Banner.provider.js.map +1 -0
  44. package/components/Banner/Banner.store.d.ts +18 -0
  45. package/components/Banner/Banner.store.js +62 -0
  46. package/components/Banner/Banner.store.js.map +1 -0
  47. package/components/Banner/Banner.types.d.ts +42 -0
  48. package/components/Banner/index.d.ts +4 -0
  49. package/components/BottomSheet/BottomSheet.d.ts +8 -0
  50. package/components/BottomSheet/BottomSheet.js +127 -0
  51. package/components/BottomSheet/BottomSheet.js.map +1 -0
  52. package/components/BottomSheet/BottomSheet.module.css.js +4 -0
  53. package/components/BottomSheet/BottomSheet.module.css.js.map +1 -0
  54. package/components/BottomSheet/BottomSheet.types.d.ts +34 -0
  55. package/components/BottomSheet/index.d.ts +2 -0
  56. package/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
  57. package/components/Breadcrumbs/Breadcrumbs.js +39 -0
  58. package/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
  59. package/components/Breadcrumbs/Breadcrumbs.module.css.js +4 -0
  60. package/components/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
  61. package/components/Breadcrumbs/Breadcrumbs.types.d.ts +17 -0
  62. package/components/Breadcrumbs/index.d.ts +2 -0
  63. package/components/Button/Button.d.ts +12 -0
  64. package/components/Button/Button.js +52 -0
  65. package/components/Button/Button.js.map +1 -0
  66. package/components/Button/Button.module.css.js +4 -0
  67. package/components/Button/Button.module.css.js.map +1 -0
  68. package/components/Button/Button.types.d.ts +34 -0
  69. package/components/Button/index.d.ts +2 -0
  70. package/components/ButtonGroup/ButtonGroup.context.d.ts +23 -0
  71. package/components/ButtonGroup/ButtonGroup.context.js +9 -0
  72. package/components/ButtonGroup/ButtonGroup.context.js.map +1 -0
  73. package/components/ButtonGroup/ButtonGroup.d.ts +7 -0
  74. package/components/ButtonGroup/ButtonGroup.js +92 -0
  75. package/components/ButtonGroup/ButtonGroup.js.map +1 -0
  76. package/components/ButtonGroup/ButtonGroup.module.css.js +4 -0
  77. package/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -0
  78. package/components/ButtonGroup/ButtonGroup.types.d.ts +28 -0
  79. package/components/ButtonGroup/index.d.ts +3 -0
  80. package/components/Calendar/Calendar.d.ts +8 -0
  81. package/components/Calendar/Calendar.js +197 -0
  82. package/components/Calendar/Calendar.js.map +1 -0
  83. package/components/Calendar/Calendar.module.css.js +4 -0
  84. package/components/Calendar/Calendar.module.css.js.map +1 -0
  85. package/components/Calendar/Calendar.types.d.ts +32 -0
  86. package/components/Calendar/index.d.ts +2 -0
  87. package/components/Card/Card.d.ts +6 -0
  88. package/components/Card/Card.js +36 -0
  89. package/components/Card/Card.js.map +1 -0
  90. package/components/Card/Card.module.css.js +4 -0
  91. package/components/Card/Card.module.css.js.map +1 -0
  92. package/components/Card/Card.types.d.ts +30 -0
  93. package/components/Card/index.d.ts +2 -0
  94. package/components/Checkbox/Checkbox.d.ts +7 -0
  95. package/components/Checkbox/Checkbox.js +46 -0
  96. package/components/Checkbox/Checkbox.js.map +1 -0
  97. package/components/Checkbox/Checkbox.module.css.js +4 -0
  98. package/components/Checkbox/Checkbox.module.css.js.map +1 -0
  99. package/components/Checkbox/Checkbox.types.d.ts +19 -0
  100. package/components/Checkbox/index.d.ts +2 -0
  101. package/components/ColorPicker/ColorPicker.d.ts +10 -0
  102. package/components/ColorPicker/ColorPicker.js +340 -0
  103. package/components/ColorPicker/ColorPicker.js.map +1 -0
  104. package/components/ColorPicker/ColorPicker.module.css.js +4 -0
  105. package/components/ColorPicker/ColorPicker.module.css.js.map +1 -0
  106. package/components/ColorPicker/ColorPicker.types.d.ts +33 -0
  107. package/components/ColorPicker/index.d.ts +2 -0
  108. package/components/Combobox/Combobox.d.ts +9 -0
  109. package/components/Combobox/Combobox.js +316 -0
  110. package/components/Combobox/Combobox.js.map +1 -0
  111. package/components/Combobox/Combobox.module.css.js +4 -0
  112. package/components/Combobox/Combobox.module.css.js.map +1 -0
  113. package/components/Combobox/Combobox.types.d.ts +57 -0
  114. package/components/Combobox/index.d.ts +2 -0
  115. package/components/CommandPalette/CommandPalette.d.ts +9 -0
  116. package/components/CommandPalette/CommandPalette.js +197 -0
  117. package/components/CommandPalette/CommandPalette.js.map +1 -0
  118. package/components/CommandPalette/CommandPalette.module.css.js +4 -0
  119. package/components/CommandPalette/CommandPalette.module.css.js.map +1 -0
  120. package/components/CommandPalette/CommandPalette.types.d.ts +41 -0
  121. package/components/CommandPalette/index.d.ts +2 -0
  122. package/components/ContextMenu/ContextMenu.d.ts +34 -0
  123. package/components/ContextMenu/ContextMenu.js +98 -0
  124. package/components/ContextMenu/ContextMenu.js.map +1 -0
  125. package/components/ContextMenu/ContextMenu.types.d.ts +30 -0
  126. package/components/ContextMenu/index.d.ts +2 -0
  127. package/components/DataGrid/DataGrid.d.ts +8 -0
  128. package/components/DataGrid/DataGrid.js +192 -0
  129. package/components/DataGrid/DataGrid.js.map +1 -0
  130. package/components/DataGrid/DataGrid.module.css.js +4 -0
  131. package/components/DataGrid/DataGrid.module.css.js.map +1 -0
  132. package/components/DataGrid/DataGrid.types.d.ts +43 -0
  133. package/components/DataGrid/index.d.ts +2 -0
  134. package/components/DatePicker/DatePicker.d.ts +9 -0
  135. package/components/DatePicker/DatePicker.js +218 -0
  136. package/components/DatePicker/DatePicker.js.map +1 -0
  137. package/components/DatePicker/DatePicker.module.css.js +4 -0
  138. package/components/DatePicker/DatePicker.module.css.js.map +1 -0
  139. package/components/DatePicker/DatePicker.types.d.ts +39 -0
  140. package/components/DatePicker/index.d.ts +2 -0
  141. package/components/DateRangePicker/DateRangePicker.d.ts +8 -0
  142. package/components/DateRangePicker/DateRangePicker.js +139 -0
  143. package/components/DateRangePicker/DateRangePicker.js.map +1 -0
  144. package/components/DateRangePicker/DateRangePicker.module.css.js +4 -0
  145. package/components/DateRangePicker/DateRangePicker.module.css.js.map +1 -0
  146. package/components/DateRangePicker/DateRangePicker.types.d.ts +34 -0
  147. package/components/DateRangePicker/index.d.ts +2 -0
  148. package/components/DescriptionList/DescriptionList.d.ts +12 -0
  149. package/components/DescriptionList/DescriptionList.js +96 -0
  150. package/components/DescriptionList/DescriptionList.js.map +1 -0
  151. package/components/DescriptionList/DescriptionList.module.css.js +4 -0
  152. package/components/DescriptionList/DescriptionList.module.css.js.map +1 -0
  153. package/components/DescriptionList/DescriptionList.types.d.ts +35 -0
  154. package/components/DescriptionList/index.d.ts +2 -0
  155. package/components/Dialog/Dialog.d.ts +30 -0
  156. package/components/Dialog/Dialog.js +89 -0
  157. package/components/Dialog/Dialog.js.map +1 -0
  158. package/components/Dialog/Dialog.module.css.js +4 -0
  159. package/components/Dialog/Dialog.module.css.js.map +1 -0
  160. package/components/Dialog/Dialog.types.d.ts +59 -0
  161. package/components/Dialog/index.d.ts +2 -0
  162. package/components/Drawer/Drawer.context.d.ts +9 -0
  163. package/components/Drawer/Drawer.context.js +7 -0
  164. package/components/Drawer/Drawer.context.js.map +1 -0
  165. package/components/Drawer/Drawer.d.ts +20 -0
  166. package/components/Drawer/Drawer.js +63 -0
  167. package/components/Drawer/Drawer.js.map +1 -0
  168. package/components/Drawer/Drawer.module.css.js +4 -0
  169. package/components/Drawer/Drawer.module.css.js.map +1 -0
  170. package/components/Drawer/Drawer.types.d.ts +42 -0
  171. package/components/Drawer/index.d.ts +2 -0
  172. package/components/DropdownMenu/DropdownMenu.d.ts +33 -0
  173. package/components/DropdownMenu/DropdownMenu.js +98 -0
  174. package/components/DropdownMenu/DropdownMenu.js.map +1 -0
  175. package/components/DropdownMenu/DropdownMenu.module.css.js +4 -0
  176. package/components/DropdownMenu/DropdownMenu.module.css.js.map +1 -0
  177. package/components/DropdownMenu/DropdownMenu.types.d.ts +34 -0
  178. package/components/DropdownMenu/index.d.ts +2 -0
  179. package/components/EmptyState/EmptyState.d.ts +8 -0
  180. package/components/EmptyState/EmptyState.js +24 -0
  181. package/components/EmptyState/EmptyState.js.map +1 -0
  182. package/components/EmptyState/EmptyState.module.css.js +4 -0
  183. package/components/EmptyState/EmptyState.module.css.js.map +1 -0
  184. package/components/EmptyState/EmptyState.types.d.ts +26 -0
  185. package/components/EmptyState/index.d.ts +2 -0
  186. package/components/FileUpload/FileUpload.d.ts +9 -0
  187. package/components/FileUpload/FileUpload.js +174 -0
  188. package/components/FileUpload/FileUpload.js.map +1 -0
  189. package/components/FileUpload/FileUpload.module.css.js +4 -0
  190. package/components/FileUpload/FileUpload.module.css.js.map +1 -0
  191. package/components/FileUpload/FileUpload.types.d.ts +41 -0
  192. package/components/FileUpload/index.d.ts +2 -0
  193. package/components/FormField/FormField.context.d.ts +22 -0
  194. package/components/FormField/FormField.context.js +9 -0
  195. package/components/FormField/FormField.context.js.map +1 -0
  196. package/components/FormField/FormField.d.ts +8 -0
  197. package/components/FormField/FormField.js +44 -0
  198. package/components/FormField/FormField.js.map +1 -0
  199. package/components/FormField/FormField.module.css.js +4 -0
  200. package/components/FormField/FormField.module.css.js.map +1 -0
  201. package/components/FormField/FormField.types.d.ts +28 -0
  202. package/components/FormField/index.d.ts +3 -0
  203. package/components/HoverCard/HoverCard.d.ts +10 -0
  204. package/components/HoverCard/HoverCard.js +59 -0
  205. package/components/HoverCard/HoverCard.js.map +1 -0
  206. package/components/HoverCard/HoverCard.module.css.js +4 -0
  207. package/components/HoverCard/HoverCard.module.css.js.map +1 -0
  208. package/components/HoverCard/HoverCard.types.d.ts +35 -0
  209. package/components/HoverCard/index.d.ts +2 -0
  210. package/components/IconButton/IconButton.d.ts +13 -0
  211. package/components/IconButton/IconButton.js +44 -0
  212. package/components/IconButton/IconButton.js.map +1 -0
  213. package/components/IconButton/IconButton.module.css.js +4 -0
  214. package/components/IconButton/IconButton.module.css.js.map +1 -0
  215. package/components/IconButton/IconButton.types.d.ts +29 -0
  216. package/components/IconButton/index.d.ts +2 -0
  217. package/components/Input/Input.d.ts +9 -0
  218. package/components/Input/Input.js +102 -0
  219. package/components/Input/Input.js.map +1 -0
  220. package/components/Input/Input.module.css.js +4 -0
  221. package/components/Input/Input.module.css.js.map +1 -0
  222. package/components/Input/Input.types.d.ts +32 -0
  223. package/components/Input/index.d.ts +2 -0
  224. package/components/Kbd/Kbd.d.ts +9 -0
  225. package/components/Kbd/Kbd.js +65 -0
  226. package/components/Kbd/Kbd.js.map +1 -0
  227. package/components/Kbd/Kbd.module.css.js +4 -0
  228. package/components/Kbd/Kbd.module.css.js.map +1 -0
  229. package/components/Kbd/Kbd.types.d.ts +15 -0
  230. package/components/Kbd/index.d.ts +2 -0
  231. package/components/MultiSelect/MultiSelect.d.ts +7 -0
  232. package/components/MultiSelect/MultiSelect.js +297 -0
  233. package/components/MultiSelect/MultiSelect.js.map +1 -0
  234. package/components/MultiSelect/MultiSelect.module.css.js +4 -0
  235. package/components/MultiSelect/MultiSelect.module.css.js.map +1 -0
  236. package/components/MultiSelect/MultiSelect.types.d.ts +60 -0
  237. package/components/MultiSelect/index.d.ts +2 -0
  238. package/components/NotificationCenter/NotificationCenter.d.ts +9 -0
  239. package/components/NotificationCenter/NotificationCenter.js +83 -0
  240. package/components/NotificationCenter/NotificationCenter.js.map +1 -0
  241. package/components/NotificationCenter/NotificationCenter.module.css.js +4 -0
  242. package/components/NotificationCenter/NotificationCenter.module.css.js.map +1 -0
  243. package/components/NotificationCenter/NotificationCenter.types.d.ts +95 -0
  244. package/components/NotificationCenter/NotificationList.d.ts +8 -0
  245. package/components/NotificationCenter/NotificationList.js +105 -0
  246. package/components/NotificationCenter/NotificationList.js.map +1 -0
  247. package/components/NotificationCenter/index.d.ts +3 -0
  248. package/components/NumberStepper/NumberStepper.d.ts +9 -0
  249. package/components/NumberStepper/NumberStepper.js +184 -0
  250. package/components/NumberStepper/NumberStepper.js.map +1 -0
  251. package/components/NumberStepper/NumberStepper.module.css.js +4 -0
  252. package/components/NumberStepper/NumberStepper.module.css.js.map +1 -0
  253. package/components/NumberStepper/NumberStepper.types.d.ts +36 -0
  254. package/components/NumberStepper/index.d.ts +2 -0
  255. package/components/OtpInput/OtpInput.d.ts +11 -0
  256. package/components/OtpInput/OtpInput.js +143 -0
  257. package/components/OtpInput/OtpInput.js.map +1 -0
  258. package/components/OtpInput/OtpInput.module.css.js +4 -0
  259. package/components/OtpInput/OtpInput.module.css.js.map +1 -0
  260. package/components/OtpInput/OtpInput.types.d.ts +45 -0
  261. package/components/OtpInput/index.d.ts +2 -0
  262. package/components/Pagination/Pagination.d.ts +8 -0
  263. package/components/Pagination/Pagination.js +100 -0
  264. package/components/Pagination/Pagination.js.map +1 -0
  265. package/components/Pagination/Pagination.module.css.js +4 -0
  266. package/components/Pagination/Pagination.module.css.js.map +1 -0
  267. package/components/Pagination/Pagination.types.d.ts +32 -0
  268. package/components/Pagination/index.d.ts +2 -0
  269. package/components/Popover/Popover.d.ts +22 -0
  270. package/components/Popover/Popover.js +48 -0
  271. package/components/Popover/Popover.js.map +1 -0
  272. package/components/Popover/Popover.module.css.js +4 -0
  273. package/components/Popover/Popover.module.css.js.map +1 -0
  274. package/components/Popover/Popover.types.d.ts +23 -0
  275. package/components/Popover/index.d.ts +2 -0
  276. package/components/Progress/Progress.d.ts +7 -0
  277. package/components/Progress/Progress.js +36 -0
  278. package/components/Progress/Progress.js.map +1 -0
  279. package/components/Progress/Progress.module.css.js +4 -0
  280. package/components/Progress/Progress.module.css.js.map +1 -0
  281. package/components/Progress/Progress.types.d.ts +23 -0
  282. package/components/Progress/index.d.ts +2 -0
  283. package/components/RTEField/RTEField.d.ts +23 -0
  284. package/components/RTEField/RTEField.js +152 -0
  285. package/components/RTEField/RTEField.js.map +1 -0
  286. package/components/RTEField/RTEField.module.css.js +4 -0
  287. package/components/RTEField/RTEField.module.css.js.map +1 -0
  288. package/components/RTEField/RTEField.types.d.ts +61 -0
  289. package/components/RTEField/index.d.ts +2 -0
  290. package/components/RadioGroup/RadioGroup.context.d.ts +15 -0
  291. package/components/RadioGroup/RadioGroup.context.js +9 -0
  292. package/components/RadioGroup/RadioGroup.context.js.map +1 -0
  293. package/components/RadioGroup/RadioGroup.d.ts +7 -0
  294. package/components/RadioGroup/RadioGroup.js +43 -0
  295. package/components/RadioGroup/RadioGroup.js.map +1 -0
  296. package/components/RadioGroup/RadioGroup.module.css.js +4 -0
  297. package/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
  298. package/components/RadioGroup/RadioGroup.types.d.ts +23 -0
  299. package/components/RadioGroup/index.d.ts +3 -0
  300. package/components/Rating/Rating.d.ts +8 -0
  301. package/components/Rating/Rating.js +101 -0
  302. package/components/Rating/Rating.js.map +1 -0
  303. package/components/Rating/Rating.module.css.js +4 -0
  304. package/components/Rating/Rating.module.css.js.map +1 -0
  305. package/components/Rating/Rating.types.d.ts +28 -0
  306. package/components/Rating/index.d.ts +2 -0
  307. package/components/SegmentedControl/SegmentedControl.d.ts +8 -0
  308. package/components/SegmentedControl/SegmentedControl.js +20 -0
  309. package/components/SegmentedControl/SegmentedControl.js.map +1 -0
  310. package/components/SegmentedControl/SegmentedControl.module.css.js +4 -0
  311. package/components/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
  312. package/components/SegmentedControl/SegmentedControl.types.d.ts +16 -0
  313. package/components/SegmentedControl/index.d.ts +2 -0
  314. package/components/Select/Select.d.ts +22 -0
  315. package/components/Select/Select.js +102 -0
  316. package/components/Select/Select.js.map +1 -0
  317. package/components/Select/Select.module.css.js +4 -0
  318. package/components/Select/Select.module.css.js.map +1 -0
  319. package/components/Select/Select.types.d.ts +45 -0
  320. package/components/Select/index.d.ts +2 -0
  321. package/components/Shell/Shell.d.ts +13 -0
  322. package/components/Shell/Shell.js +37 -0
  323. package/components/Shell/Shell.js.map +1 -0
  324. package/components/Shell/Shell.module.css.js +4 -0
  325. package/components/Shell/Shell.module.css.js.map +1 -0
  326. package/components/Shell/Shell.types.d.ts +31 -0
  327. package/components/Shell/index.d.ts +2 -0
  328. package/components/Sidebar/Sidebar.context.d.ts +6 -0
  329. package/components/Sidebar/Sidebar.context.js +6 -0
  330. package/components/Sidebar/Sidebar.context.js.map +1 -0
  331. package/components/Sidebar/Sidebar.d.ts +13 -0
  332. package/components/Sidebar/Sidebar.js +102 -0
  333. package/components/Sidebar/Sidebar.js.map +1 -0
  334. package/components/Sidebar/Sidebar.module.css.js +4 -0
  335. package/components/Sidebar/Sidebar.module.css.js.map +1 -0
  336. package/components/Sidebar/Sidebar.types.d.ts +45 -0
  337. package/components/Sidebar/index.d.ts +2 -0
  338. package/components/Skeleton/Skeleton.d.ts +13 -0
  339. package/components/Skeleton/Skeleton.js +48 -0
  340. package/components/Skeleton/Skeleton.js.map +1 -0
  341. package/components/Skeleton/Skeleton.module.css.js +4 -0
  342. package/components/Skeleton/Skeleton.module.css.js.map +1 -0
  343. package/components/Skeleton/Skeleton.types.d.ts +26 -0
  344. package/components/Skeleton/index.d.ts +2 -0
  345. package/components/Slider/Slider.d.ts +8 -0
  346. package/components/Slider/Slider.js +84 -0
  347. package/components/Slider/Slider.js.map +1 -0
  348. package/components/Slider/Slider.module.css.js +4 -0
  349. package/components/Slider/Slider.module.css.js.map +1 -0
  350. package/components/Slider/Slider.types.d.ts +35 -0
  351. package/components/Slider/index.d.ts +2 -0
  352. package/components/Spinner/Spinner.d.ts +7 -0
  353. package/components/Spinner/Spinner.js +16 -0
  354. package/components/Spinner/Spinner.js.map +1 -0
  355. package/components/Spinner/Spinner.module.css.js +4 -0
  356. package/components/Spinner/Spinner.module.css.js.map +1 -0
  357. package/components/Spinner/Spinner.types.d.ts +14 -0
  358. package/components/Spinner/index.d.ts +2 -0
  359. package/components/SplitPane/SplitPane.d.ts +18 -0
  360. package/components/SplitPane/SplitPane.js +169 -0
  361. package/components/SplitPane/SplitPane.js.map +1 -0
  362. package/components/SplitPane/SplitPane.module.css.js +4 -0
  363. package/components/SplitPane/SplitPane.module.css.js.map +1 -0
  364. package/components/SplitPane/SplitPane.types.d.ts +40 -0
  365. package/components/SplitPane/index.d.ts +2 -0
  366. package/components/Statistic/Statistic.d.ts +8 -0
  367. package/components/Statistic/Statistic.js +106 -0
  368. package/components/Statistic/Statistic.js.map +1 -0
  369. package/components/Statistic/Statistic.module.css.js +4 -0
  370. package/components/Statistic/Statistic.module.css.js.map +1 -0
  371. package/components/Statistic/Statistic.types.d.ts +42 -0
  372. package/components/Statistic/index.d.ts +2 -0
  373. package/components/Stepper/Stepper.d.ts +15 -0
  374. package/components/Stepper/Stepper.js +148 -0
  375. package/components/Stepper/Stepper.js.map +1 -0
  376. package/components/Stepper/Stepper.module.css.js +4 -0
  377. package/components/Stepper/Stepper.module.css.js.map +1 -0
  378. package/components/Stepper/Stepper.types.d.ts +48 -0
  379. package/components/Stepper/index.d.ts +2 -0
  380. package/components/Switch/Switch.d.ts +10 -0
  381. package/components/Switch/Switch.js +37 -0
  382. package/components/Switch/Switch.js.map +1 -0
  383. package/components/Switch/Switch.module.css.js +4 -0
  384. package/components/Switch/Switch.module.css.js.map +1 -0
  385. package/components/Switch/Switch.types.d.ts +19 -0
  386. package/components/Switch/index.d.ts +2 -0
  387. package/components/Table/Table.d.ts +14 -0
  388. package/components/Table/Table.js +131 -0
  389. package/components/Table/Table.js.map +1 -0
  390. package/components/Table/Table.module.css.js +4 -0
  391. package/components/Table/Table.module.css.js.map +1 -0
  392. package/components/Table/Table.types.d.ts +62 -0
  393. package/components/Table/index.d.ts +2 -0
  394. package/components/Tabs/Tabs.d.ts +18 -0
  395. package/components/Tabs/Tabs.js +32 -0
  396. package/components/Tabs/Tabs.js.map +1 -0
  397. package/components/Tabs/Tabs.module.css.js +4 -0
  398. package/components/Tabs/Tabs.module.css.js.map +1 -0
  399. package/components/Tabs/Tabs.types.d.ts +20 -0
  400. package/components/Tabs/index.d.ts +2 -0
  401. package/components/Tag/Tag.d.ts +8 -0
  402. package/components/Tag/Tag.js +25 -0
  403. package/components/Tag/Tag.js.map +1 -0
  404. package/components/Tag/Tag.module.css.js +4 -0
  405. package/components/Tag/Tag.module.css.js.map +1 -0
  406. package/components/Tag/Tag.types.d.ts +18 -0
  407. package/components/Tag/index.d.ts +2 -0
  408. package/components/Textarea/Textarea.d.ts +9 -0
  409. package/components/Textarea/Textarea.js +86 -0
  410. package/components/Textarea/Textarea.js.map +1 -0
  411. package/components/Textarea/Textarea.module.css.js +4 -0
  412. package/components/Textarea/Textarea.module.css.js.map +1 -0
  413. package/components/Textarea/Textarea.types.d.ts +27 -0
  414. package/components/Textarea/index.d.ts +2 -0
  415. package/components/TimePicker/TimePicker.d.ts +8 -0
  416. package/components/TimePicker/TimePicker.js +220 -0
  417. package/components/TimePicker/TimePicker.js.map +1 -0
  418. package/components/TimePicker/TimePicker.module.css.js +4 -0
  419. package/components/TimePicker/TimePicker.module.css.js.map +1 -0
  420. package/components/TimePicker/TimePicker.types.d.ts +29 -0
  421. package/components/TimePicker/index.d.ts +2 -0
  422. package/components/Timeline/Timeline.d.ts +6 -0
  423. package/components/Timeline/Timeline.js +49 -0
  424. package/components/Timeline/Timeline.js.map +1 -0
  425. package/components/Timeline/Timeline.module.css.js +4 -0
  426. package/components/Timeline/Timeline.module.css.js.map +1 -0
  427. package/components/Timeline/Timeline.types.d.ts +19 -0
  428. package/components/Timeline/index.d.ts +2 -0
  429. package/components/Toast/Toast.d.ts +11 -0
  430. package/components/Toast/Toast.js +75 -0
  431. package/components/Toast/Toast.js.map +1 -0
  432. package/components/Toast/Toast.module.css.js +4 -0
  433. package/components/Toast/Toast.module.css.js.map +1 -0
  434. package/components/Toast/Toast.store.d.ts +29 -0
  435. package/components/Toast/Toast.store.js +53 -0
  436. package/components/Toast/Toast.store.js.map +1 -0
  437. package/components/Toast/Toast.types.d.ts +40 -0
  438. package/components/Toast/index.d.ts +3 -0
  439. package/components/TokenInput/TokenInput.d.ts +8 -0
  440. package/components/TokenInput/TokenInput.js +206 -0
  441. package/components/TokenInput/TokenInput.js.map +1 -0
  442. package/components/TokenInput/TokenInput.module.css.js +4 -0
  443. package/components/TokenInput/TokenInput.module.css.js.map +1 -0
  444. package/components/TokenInput/TokenInput.types.d.ts +38 -0
  445. package/components/TokenInput/index.d.ts +2 -0
  446. package/components/Tooltip/Tooltip.d.ts +17 -0
  447. package/components/Tooltip/Tooltip.js +32 -0
  448. package/components/Tooltip/Tooltip.js.map +1 -0
  449. package/components/Tooltip/Tooltip.module.css.js +4 -0
  450. package/components/Tooltip/Tooltip.module.css.js.map +1 -0
  451. package/components/Tooltip/Tooltip.types.d.ts +38 -0
  452. package/components/Tooltip/index.d.ts +2 -0
  453. package/components/TopNavigation/TopNavigation.d.ts +4 -0
  454. package/components/TopNavigation/TopNavigation.js +46 -0
  455. package/components/TopNavigation/TopNavigation.js.map +1 -0
  456. package/components/TopNavigation/TopNavigation.module.css.js +4 -0
  457. package/components/TopNavigation/TopNavigation.module.css.js.map +1 -0
  458. package/components/TopNavigation/TopNavigation.types.d.ts +23 -0
  459. package/components/TopNavigation/index.d.ts +2 -0
  460. package/components/TreeView/TreeView.d.ts +8 -0
  461. package/components/TreeView/TreeView.js +224 -0
  462. package/components/TreeView/TreeView.js.map +1 -0
  463. package/components/TreeView/TreeView.module.css.js +4 -0
  464. package/components/TreeView/TreeView.module.css.js.map +1 -0
  465. package/components/TreeView/TreeView.types.d.ts +34 -0
  466. package/components/TreeView/index.d.ts +2 -0
  467. package/components/index.d.ts +62 -0
  468. package/hooks/index.d.ts +1 -0
  469. package/hooks/useDeferredLoading.d.ts +16 -0
  470. package/hooks/useDeferredLoading.js +26 -0
  471. package/hooks/useDeferredLoading.js.map +1 -0
  472. package/index.d.ts +2 -3
  473. package/index.js +73 -4
  474. package/index.js.map +1 -1
  475. package/lib/api-request.js +5 -3
  476. package/lib/api-request.js.map +1 -1
  477. package/lib/cn.d.ts +19 -0
  478. package/lib/cn.js +8 -0
  479. package/lib/cn.js.map +1 -0
  480. package/lib/date.d.ts +17 -0
  481. package/lib/date.js +54 -0
  482. package/lib/date.js.map +1 -0
  483. package/lib/index.d.ts +3 -0
  484. package/lib/merge-refs.d.ts +15 -0
  485. package/lib/merge-refs.js +11 -0
  486. package/lib/merge-refs.js.map +1 -0
  487. package/package.json +34 -12
  488. package/styles.css +1 -1
  489. package/styles.css.map +1 -1
  490. package/styles.layer.css +1 -1
  491. package/components/AppLayout/AppLayout.d.ts +0 -21
  492. package/components/AppLayout/AppLayout.js +0 -34
  493. package/components/AppLayout/AppLayout.js.map +0 -1
  494. package/components/AppLayout/AppLayout.module.css.js +0 -4
  495. package/components/AppLayout/AppLayout.module.css.js.map +0 -1
  496. package/components/AppLayout/ContentFooter.d.ts +0 -12
  497. package/components/AppLayout/ContentFooter.js +0 -11
  498. package/components/AppLayout/ContentFooter.js.map +0 -1
  499. package/components/AppLayout/SideNavbar.d.ts +0 -21
  500. package/components/AppLayout/SideNavbar.js +0 -43
  501. package/components/AppLayout/SideNavbar.js.map +0 -1
  502. package/components/AppLayout/SideNavbarGroup.d.ts +0 -19
  503. package/components/AppLayout/SideNavbarGroup.js +0 -16
  504. package/components/AppLayout/SideNavbarGroup.js.map +0 -1
  505. package/components/AppLayout/SideNavbarItem.d.ts +0 -19
  506. package/components/AppLayout/SideNavbarItem.js +0 -74
  507. package/components/AppLayout/SideNavbarItem.js.map +0 -1
  508. package/components/AppLayout/TopNavbar.d.ts +0 -20
  509. package/components/AppLayout/TopNavbar.js +0 -38
  510. package/components/AppLayout/TopNavbar.js.map +0 -1
  511. package/components/AppLayout/app-layout.utils.d.ts +0 -14
  512. package/components/AppLayout/app-layout.utils.js +0 -6
  513. package/components/AppLayout/app-layout.utils.js.map +0 -1
  514. package/components/AppLayout/hooks/use-active-nav-label.d.ts +0 -2
  515. package/components/AppLayout/hooks/use-active-nav-label.js +0 -29
  516. package/components/AppLayout/hooks/use-active-nav-label.js.map +0 -1
  517. package/components/AppLayout/hooks/use-layout-state.d.ts +0 -20
  518. package/components/AppLayout/hooks/use-layout-state.js +0 -14
  519. package/components/AppLayout/hooks/use-layout-state.js.map +0 -1
  520. package/components/AppLayout/hooks/use-side-navbar-item.d.ts +0 -11
  521. package/components/AppLayout/hooks/use-side-navbar-item.js +0 -26
  522. package/components/AppLayout/hooks/use-side-navbar-item.js.map +0 -1
  523. package/components/AppLayout/index.d.ts +0 -2
  524. package/components/AppLayout/layout.types.d.ts +0 -59
  525. package/components/Logo/Alphabets.d.ts +0 -39
  526. package/components/Logo/Alphabets.js +0 -119
  527. package/components/Logo/Alphabets.js.map +0 -1
  528. package/components/Logo/BrandMark.d.ts +0 -16
  529. package/components/Logo/BrandMark.js +0 -39
  530. package/components/Logo/BrandMark.js.map +0 -1
  531. package/components/Logo/Logo.d.ts +0 -17
  532. package/components/Logo/Logo.js +0 -22
  533. package/components/Logo/Logo.js.map +0 -1
  534. package/components/Logo/Logo.module.css.js +0 -4
  535. package/components/Logo/Logo.module.css.js.map +0 -1
  536. package/components/Logo/hooks/use-logo.d.ts +0 -9
  537. package/components/Logo/hooks/use-logo.js +0 -16
  538. package/components/Logo/hooks/use-logo.js.map +0 -1
  539. package/components/Logo/index.d.ts +0 -2
  540. package/styles/AppLayout.module.css +0 -82
  541. package/styles/Logo.module.css +0 -51
  542. package/theme.d.ts +0 -161
  543. package/theme.js +0 -112
  544. package/theme.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ import { type SplitPaneHandleProps, type SplitPanePaneProps, type SplitPaneProps } from './SplitPane.types';
2
+ /** Marker component — the container reads its props and renders the pane content. */
3
+ export declare function SplitPanePane(_: SplitPanePaneProps): null;
4
+ /** Marker component — the container reads its aria-label and renders the actual handle. */
5
+ export declare function SplitPaneHandle(_: SplitPaneHandleProps): null;
6
+ /**
7
+ * Two regions, one negotiable boundary. Where App Shell and Sidebar fix the layout, the Split Pane
8
+ * hands the boundary to the user — resize, collapse, and remember — and owns nothing else; pane content
9
+ * is opaque. The handle follows the WAI-ARIA window-splitter pattern (role=separator with valuenow/
10
+ * min/max) and is a real tab stop: every outcome (resize, collapse, reset) is reachable from the
11
+ * keyboard. Nest by placing a Split Pane inside a Pane; each container owns its own handle and key.
12
+ */
13
+ declare function SplitPaneRoot({ direction, autoSaveId, onResize, children, className }: SplitPaneProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare const SplitPane: typeof SplitPaneRoot & {
15
+ Pane: typeof SplitPanePane;
16
+ Handle: typeof SplitPaneHandle;
17
+ };
18
+ export {};
@@ -0,0 +1,169 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { Children, useRef, useState, useLayoutEffect, useEffect, isValidElement } from 'react';
4
+ import '../../lib/api-request.js';
5
+ import { cn } from '../../lib/cn.js';
6
+ import styles from './SplitPane.module.css.js';
7
+
8
+ const COLLAPSE_SLOP = 40;
9
+ const KEY_STEP = 16;
10
+ function SplitPanePane(_) {
11
+ return null;
12
+ }
13
+ function SplitPaneHandle(_) {
14
+ return null;
15
+ }
16
+ function isPane(node) {
17
+ return isValidElement(node) && node.type === SplitPanePane;
18
+ }
19
+ function isHandle(node) {
20
+ return isValidElement(node) && node.type === SplitPaneHandle;
21
+ }
22
+ function resolveSize(size, containerLen, fallback) {
23
+ if (size === void 0) return fallback;
24
+ if (typeof size === "number") return size;
25
+ return Number.parseFloat(size) / 100 * containerLen;
26
+ }
27
+ function SplitPaneRoot({ direction = "horizontal", autoSaveId, onResize, children, className }) {
28
+ const nodes = Children.toArray(children);
29
+ const panes = nodes.filter(isPane);
30
+ const handle = nodes.find(isHandle);
31
+ const first = panes[0]?.props;
32
+ const second = panes[1]?.props;
33
+ const containerRef = useRef(null);
34
+ const [containerLen, setContainerLen] = useState(0);
35
+ const [size, setSize] = useState(null);
36
+ const [collapsed, setCollapsed] = useState(false);
37
+ const [dragging, setDragging] = useState(false);
38
+ const lastSize = useRef(0);
39
+ const storageKey = autoSaveId ? `sh-splitpane:${autoSaveId}` : null;
40
+ useLayoutEffect(() => {
41
+ const node = containerRef.current;
42
+ if (!node) return;
43
+ const measure = () => setContainerLen(direction === "horizontal" ? node.clientWidth : node.clientHeight);
44
+ measure();
45
+ if (typeof ResizeObserver === "undefined") return;
46
+ const observer = new ResizeObserver(measure);
47
+ observer.observe(node);
48
+ return () => observer.disconnect();
49
+ }, [direction]);
50
+ useEffect(() => {
51
+ if (containerLen === 0 || size !== null) return;
52
+ let fraction = null;
53
+ if (storageKey) {
54
+ const saved = globalThis.localStorage?.getItem(storageKey);
55
+ if (saved) fraction = Number.parseFloat(saved);
56
+ }
57
+ const initial = fraction != null && Number.isFinite(fraction) ? fraction * containerLen : resolveSize(first?.defaultSize, containerLen, containerLen * 0.3);
58
+ setSize(clamp(initial));
59
+ }, [containerLen]);
60
+ function bounds() {
61
+ const min2 = resolveSize(first?.minSize, containerLen, 120);
62
+ const secondMin = resolveSize(second?.minSize, containerLen, 120);
63
+ const max2 = Math.min(resolveSize(first?.maxSize, containerLen, containerLen - secondMin), containerLen - secondMin);
64
+ return { min: min2, max: max2 };
65
+ }
66
+ function clamp(value) {
67
+ const { min: min2, max: max2 } = bounds();
68
+ return Math.max(min2, Math.min(max2, value));
69
+ }
70
+ function commit(next) {
71
+ setSize(next);
72
+ if (storageKey && containerLen > 0) globalThis.localStorage?.setItem(storageKey, String(next / containerLen));
73
+ if (containerLen > 0) onResize?.(Math.round(next / containerLen * 100));
74
+ }
75
+ const drag = useRef({ startPos: 0, startSize: 0 });
76
+ function onPointerDown(event) {
77
+ if (event.button !== 0) return;
78
+ drag.current = { startPos: direction === "horizontal" ? event.clientX : event.clientY, startSize: collapsed ? 0 : size ?? 0 };
79
+ event.currentTarget.setPointerCapture(event.pointerId);
80
+ setDragging(true);
81
+ }
82
+ function onPointerMove(event) {
83
+ if (!dragging) return;
84
+ const pos = direction === "horizontal" ? event.clientX : event.clientY;
85
+ const raw = drag.current.startSize + (pos - drag.current.startPos);
86
+ const { min: min2 } = bounds();
87
+ if (first?.collapsible && raw < min2 - COLLAPSE_SLOP) {
88
+ if (!collapsed) {
89
+ lastSize.current = size ?? min2;
90
+ setCollapsed(true);
91
+ }
92
+ return;
93
+ }
94
+ if (collapsed) setCollapsed(false);
95
+ setSize(clamp(raw));
96
+ }
97
+ function onPointerUp(event) {
98
+ if (!dragging) return;
99
+ setDragging(false);
100
+ event.currentTarget.releasePointerCapture(event.pointerId);
101
+ if (!collapsed && size != null) commit(size);
102
+ }
103
+ function onDoubleClick() {
104
+ setCollapsed(false);
105
+ commit(clamp(resolveSize(first?.defaultSize, containerLen, containerLen * 0.3)));
106
+ }
107
+ function onKeyDown(event) {
108
+ const decrease = direction === "horizontal" ? "ArrowLeft" : "ArrowUp";
109
+ const increase = direction === "horizontal" ? "ArrowRight" : "ArrowDown";
110
+ const { min: min2, max: max2 } = bounds();
111
+ if (event.key === decrease || event.key === increase) {
112
+ event.preventDefault();
113
+ if (collapsed) setCollapsed(false);
114
+ const base = collapsed ? 0 : size ?? min2;
115
+ commit(clamp(base + (event.key === increase ? KEY_STEP : -KEY_STEP)));
116
+ } else if (event.key === "Home") {
117
+ event.preventDefault();
118
+ commit(min2);
119
+ } else if (event.key === "End") {
120
+ event.preventDefault();
121
+ commit(max2);
122
+ } else if (event.key === "Enter" && first?.collapsible) {
123
+ event.preventDefault();
124
+ toggleCollapse();
125
+ }
126
+ }
127
+ function toggleCollapse() {
128
+ if (collapsed) {
129
+ setCollapsed(false);
130
+ commit(clamp(lastSize.current || resolveSize(first?.defaultSize, containerLen, containerLen * 0.3)));
131
+ } else {
132
+ lastSize.current = size ?? 0;
133
+ setCollapsed(true);
134
+ }
135
+ }
136
+ const { min, max } = bounds();
137
+ const effectiveSize = collapsed ? 0 : size ?? 0;
138
+ const valueNow = containerLen > 0 ? Math.round(effectiveSize / containerLen * 100) : 0;
139
+ const handleLabel = handle?.props["aria-label"] ?? "Resize panes";
140
+ return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: cn(styles.container, className), "data-direction": direction, "data-dragging": dragging || void 0, children: [
141
+ /* @__PURE__ */ jsx("div", { className: styles.pane, style: { flexBasis: effectiveSize, display: collapsed ? "none" : void 0 }, hidden: collapsed, children: first?.children }),
142
+ collapsed ? /* @__PURE__ */ jsx("button", { type: "button", className: styles.rail, onClick: toggleCollapse, children: first?.collapseLabel ?? "panel" }) : null,
143
+ /* @__PURE__ */ jsx(
144
+ "div",
145
+ {
146
+ className: styles.handle,
147
+ role: "separator",
148
+ tabIndex: 0,
149
+ "aria-label": handleLabel,
150
+ "aria-orientation": direction === "horizontal" ? "vertical" : "horizontal",
151
+ "aria-valuenow": valueNow,
152
+ "aria-valuemin": containerLen > 0 ? Math.round(min / containerLen * 100) : 0,
153
+ "aria-valuemax": containerLen > 0 ? Math.round(max / containerLen * 100) : 100,
154
+ onPointerDown,
155
+ onPointerMove,
156
+ onPointerUp,
157
+ onPointerCancel: onPointerUp,
158
+ onDoubleClick,
159
+ onKeyDown,
160
+ children: /* @__PURE__ */ jsx("span", { className: styles.handleLine, "aria-hidden": "true" })
161
+ }
162
+ ),
163
+ /* @__PURE__ */ jsx("div", { className: styles.pane, style: { flex: "1 1 0" }, children: second?.children })
164
+ ] });
165
+ }
166
+ const SplitPane = Object.assign(SplitPaneRoot, { Pane: SplitPanePane, Handle: SplitPaneHandle });
167
+
168
+ export { SplitPane, SplitPaneHandle, SplitPanePane };
169
+ //# sourceMappingURL=SplitPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.js","sources":["../../../src/components/SplitPane/SplitPane.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { Children, isValidElement, type KeyboardEvent, type PointerEvent, type ReactElement, type ReactNode, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport styles from './SplitPane.module.css';\nimport { type SplitPaneHandleProps, type SplitPanePaneProps, type SplitPaneProps, type SplitSize } from './SplitPane.types';\n\n/**\n * Declaring the constants\n */\nconst COLLAPSE_SLOP = 40; // drag this many px past a collapsible pane's min to snap it collapsed\nconst KEY_STEP = 16; // px moved per arrow key\n\n/** Marker component — the container reads its props and renders the pane content. */\nexport function SplitPanePane(_: SplitPanePaneProps): null {\n return null;\n}\n\n/** Marker component — the container reads its aria-label and renders the actual handle. */\nexport function SplitPaneHandle(_: SplitPaneHandleProps): null {\n return null;\n}\n\nfunction isPane(node: ReactNode): node is ReactElement<SplitPanePaneProps> {\n return isValidElement(node) && node.type === SplitPanePane;\n}\nfunction isHandle(node: ReactNode): node is ReactElement<SplitPaneHandleProps> {\n return isValidElement(node) && node.type === SplitPaneHandle;\n}\n\n/** Resolve a px/percent size against the container length; `undefined` falls back. */\nfunction resolveSize(size: SplitSize | undefined, containerLen: number, fallback: number): number {\n if (size === undefined) return fallback;\n if (typeof size === 'number') return size;\n return (Number.parseFloat(size) / 100) * containerLen;\n}\n\n/**\n * Two regions, one negotiable boundary. Where App Shell and Sidebar fix the layout, the Split Pane\n * hands the boundary to the user — resize, collapse, and remember — and owns nothing else; pane content\n * is opaque. The handle follows the WAI-ARIA window-splitter pattern (role=separator with valuenow/\n * min/max) and is a real tab stop: every outcome (resize, collapse, reset) is reachable from the\n * keyboard. Nest by placing a Split Pane inside a Pane; each container owns its own handle and key.\n */\nfunction SplitPaneRoot({ direction = 'horizontal', autoSaveId, onResize, children, className }: SplitPaneProps) {\n const nodes = Children.toArray(children);\n const panes = nodes.filter(isPane);\n const handle = nodes.find(isHandle);\n const first = panes[0]?.props;\n const second = panes[1]?.props;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [containerLen, setContainerLen] = useState(0);\n const [size, setSize] = useState<number | null>(null); // px of the first pane\n const [collapsed, setCollapsed] = useState(false);\n const [dragging, setDragging] = useState(false);\n const lastSize = useRef(0);\n const storageKey = autoSaveId ? `sh-splitpane:${autoSaveId}` : null;\n\n // Measure the container along the split axis.\n useLayoutEffect(() => {\n const node = containerRef.current;\n if (!node) return;\n const measure = () => setContainerLen(direction === 'horizontal' ? node.clientWidth : node.clientHeight);\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(node);\n return () => observer.disconnect();\n }, [direction]);\n\n // Initialize (from storage or defaultSize) once the container is measured.\n // biome-ignore lint/correctness/useExhaustiveDependencies: one-time init guarded by `size === null`; only the container measurement should retrigger it\n useEffect(() => {\n if (containerLen === 0 || size !== null) return;\n let fraction: number | null = null;\n if (storageKey) {\n const saved = globalThis.localStorage?.getItem(storageKey);\n if (saved) fraction = Number.parseFloat(saved);\n }\n const initial = fraction != null && Number.isFinite(fraction) ? fraction * containerLen : resolveSize(first?.defaultSize, containerLen, containerLen * 0.3);\n setSize(clamp(initial));\n }, [containerLen]);\n\n function bounds(): { min: number; max: number } {\n const min = resolveSize(first?.minSize, containerLen, 120);\n const secondMin = resolveSize(second?.minSize, containerLen, 120);\n const max = Math.min(resolveSize(first?.maxSize, containerLen, containerLen - secondMin), containerLen - secondMin);\n return { min, max };\n }\n\n function clamp(value: number): number {\n const { min, max } = bounds();\n return Math.max(min, Math.min(max, value));\n }\n\n function commit(next: number): void {\n setSize(next);\n if (storageKey && containerLen > 0) globalThis.localStorage?.setItem(storageKey, String(next / containerLen));\n if (containerLen > 0) onResize?.(Math.round((next / containerLen) * 100));\n }\n\n const drag = useRef({ startPos: 0, startSize: 0 });\n\n function onPointerDown(event: PointerEvent<HTMLDivElement>): void {\n if (event.button !== 0) return;\n drag.current = { startPos: direction === 'horizontal' ? event.clientX : event.clientY, startSize: collapsed ? 0 : (size ?? 0) };\n event.currentTarget.setPointerCapture(event.pointerId);\n setDragging(true);\n }\n\n function onPointerMove(event: PointerEvent<HTMLDivElement>): void {\n if (!dragging) return;\n const pos = direction === 'horizontal' ? event.clientX : event.clientY;\n const raw = drag.current.startSize + (pos - drag.current.startPos);\n const { min } = bounds();\n if (first?.collapsible && raw < min - COLLAPSE_SLOP) {\n if (!collapsed) {\n lastSize.current = size ?? min;\n setCollapsed(true);\n }\n return;\n }\n if (collapsed) setCollapsed(false);\n setSize(clamp(raw));\n }\n\n function onPointerUp(event: PointerEvent<HTMLDivElement>): void {\n if (!dragging) return;\n setDragging(false);\n event.currentTarget.releasePointerCapture(event.pointerId);\n if (!collapsed && size != null) commit(size);\n }\n\n function onDoubleClick(): void {\n setCollapsed(false);\n commit(clamp(resolveSize(first?.defaultSize, containerLen, containerLen * 0.3)));\n }\n\n function onKeyDown(event: KeyboardEvent<HTMLDivElement>): void {\n const decrease = direction === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n const increase = direction === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n const { min, max } = bounds();\n if (event.key === decrease || event.key === increase) {\n event.preventDefault();\n if (collapsed) setCollapsed(false);\n const base = collapsed ? 0 : (size ?? min);\n commit(clamp(base + (event.key === increase ? KEY_STEP : -KEY_STEP)));\n } else if (event.key === 'Home') {\n event.preventDefault();\n commit(min);\n } else if (event.key === 'End') {\n event.preventDefault();\n commit(max);\n } else if (event.key === 'Enter' && first?.collapsible) {\n event.preventDefault();\n toggleCollapse();\n }\n }\n\n function toggleCollapse(): void {\n if (collapsed) {\n setCollapsed(false);\n commit(clamp(lastSize.current || resolveSize(first?.defaultSize, containerLen, containerLen * 0.3)));\n } else {\n lastSize.current = size ?? 0;\n setCollapsed(true);\n }\n }\n\n const { min, max } = bounds();\n const effectiveSize = collapsed ? 0 : (size ?? 0);\n const valueNow = containerLen > 0 ? Math.round((effectiveSize / containerLen) * 100) : 0;\n const handleLabel = handle?.props['aria-label'] ?? 'Resize panes';\n\n return (\n <div ref={containerRef} className={cn(styles.container, className)} data-direction={direction} data-dragging={dragging || undefined}>\n <div className={styles.pane} style={{ flexBasis: effectiveSize, display: collapsed ? 'none' : undefined }} hidden={collapsed}>\n {first?.children}\n </div>\n\n {collapsed ? (\n <button type='button' className={styles.rail} onClick={toggleCollapse}>\n {first?.collapseLabel ?? 'panel'}\n </button>\n ) : null}\n\n {/* biome-ignore lint/a11y/useSemanticElements: a focusable window-splitter is role=separator with valuenow, not an <hr> */}\n <div\n className={styles.handle}\n role='separator'\n tabIndex={0}\n aria-label={handleLabel}\n aria-orientation={direction === 'horizontal' ? 'vertical' : 'horizontal'}\n aria-valuenow={valueNow}\n aria-valuemin={containerLen > 0 ? Math.round((min / containerLen) * 100) : 0}\n aria-valuemax={containerLen > 0 ? Math.round((max / containerLen) * 100) : 100}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n onDoubleClick={onDoubleClick}\n onKeyDown={onKeyDown}\n >\n <span className={styles.handleLine} aria-hidden='true' />\n </div>\n\n <div className={styles.pane} style={{ flex: '1 1 0' }}>\n {second?.children}\n </div>\n </div>\n );\n}\n\nexport const SplitPane = Object.assign(SplitPaneRoot, { Pane: SplitPanePane, Handle: SplitPaneHandle });\n"],"names":["min","max"],"mappings":";;;;;;;AAgBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA;AAGV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAA6B,CAAA;AACzD,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;AAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,CAA+B,CAAA;AAC7D,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2D,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAI,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6D,CAAA;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAI,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,CAAA;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,WAAA,CAAY,CAAA,CAAA,CAAA,CAAA,EAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,QAAA,CAAA,CAA0B,CAAA;AAChG,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,KAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA;AASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,QAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAmB,CAAA;AAC9G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,QAAQ,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEzB,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,EAAuB,IAAI,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAC,CAAA,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAwB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAC9C,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAC,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAG/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,IAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,EAAK,YAAY,CAAA,CAAA;AACvG,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAQ,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAmB,WAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,OAAO,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,IAAI,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,UAAA,CAAA,CAAW,CAAA;AAAA,CAAA,CACnC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA;AAId,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,YAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,IAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,UAAA,CAAA,CAAY,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,YAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAC/C,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,GAAG,CAAA,CAAA;AAC1J,CAAA,CAAA,CAAA,CAAA,OAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA;AAAA,CAAA,CACxB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA;AAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,MAAA,CAAA,CAAA,CAAuC,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAG,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAG,CAAA,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,IAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AAClH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAAD,IAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAA;AAAA,CAAA,CACpB,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAID,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,EAAK,GAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA;AAAA,CAAA,CAC3C,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,UAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAe,CAAA,CAAA,CAAG,UAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,UAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA;AAC5G,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,GAAG,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,YAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AAAA,CAAA,CAC1E,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,IAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,GAAG,CAAA,CAAA;AAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,MAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAG,CAAA;AAC9H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,iBAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAClB,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,IAAM,CAAA,CAAA,CAAA,CAAA,CAAK,OAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,QAAA,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAAD,IAAAA,CAAAA,CAAI,CAAA,CAAA,CAAI,MAAA,CAAA,CAAO,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,GAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,IAAQA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnB,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAwB,KAAK,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,OAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AAAA,CAAA,CACpB,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAA;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,qBAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,QAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAC7C,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,aAAA,CAAA,CAAA,CAAsB,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,cAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAe,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA;AAAA,CAAA,CACjF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4C,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,MAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAwB,KAAK,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,KAAQ,KAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACtE,CAAA,MAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAA,CAAA,CAAQ,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAAG,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACZ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAA,CAAA,CAAO,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAG,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAe,CAAA;AAAA,CAAA,CAAA,CAAA,CACjB,CAAA;AAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,cAAA,CAAA,CAAA,CAAuB,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAA,CAAA,CAAW,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,YAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACnB,CAAA;AAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,GAAA,CAAA,CAAI,CAAA,CAAA,CAAI,MAAA,CAAA,CAAO,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,aAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAC/C,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,eAAe,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAO,aAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAG,CAAA,GAAI,CAAA,CAAA;AACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxH,QAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,KAAI,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,SAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAChH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACV,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAEC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpD,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAC3B,CAAA,GACE,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGJ,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,YAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACf,eAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAO,GAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAG,CAAA,GAAI,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3E,eAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAO,GAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAG,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,8BAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,MAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CACzD,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CACjD,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACX,CAAA;AAAA,CAAA,CAAA,CAAA,EACF,CAAA,CAAA;AAEJ,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,eAAA,CAAA,CAAiB,CAAA,CAAA;;"}
@@ -0,0 +1,4 @@
1
+ var styles = {"container":"sh-container_1eJcH","pane":"sh-pane_tz3FM","handle":"sh-handle_Si1Fh","handleLine":"sh-handleLine_V75qM","rail":"sh-rail_lRs84"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=SplitPane.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Importing npm packages
3
+ */
4
+ import { type ReactNode } from 'react';
5
+ /**
6
+ * Defining types
7
+ */
8
+ export type SplitDirection = 'horizontal' | 'vertical';
9
+ /** A size in px (number) or a percentage of the container (`'25%'`). */
10
+ export type SplitSize = number | `${number}%`;
11
+ export interface SplitPanePaneProps {
12
+ /** Starting size of this pane along the split axis. Only the first pane's size is authoritative. */
13
+ defaultSize?: SplitSize;
14
+ /** Smallest honest size — the width/height at which the content still works, not 0. */
15
+ minSize?: SplitSize;
16
+ /** Largest size. */
17
+ maxSize?: SplitSize;
18
+ /** Allow drag-past-min collapse, leaving a labeled restore rail. Auxiliary panes only. */
19
+ collapsible?: boolean;
20
+ /** Label for the collapsed pane's restore control. @default 'panel' */
21
+ collapseLabel?: string;
22
+ /** Pane content — opaque to the container. */
23
+ children?: ReactNode;
24
+ className?: string;
25
+ }
26
+ export interface SplitPaneHandleProps {
27
+ /** Names what the handle resizes ("Resize explorer") for the window-splitter pattern. */
28
+ 'aria-label'?: string;
29
+ }
30
+ export interface SplitPaneProps {
31
+ /** Split axis: `horizontal` lays panes in columns, `vertical` in rows. @default 'horizontal' */
32
+ direction?: SplitDirection;
33
+ /** Persistence key — the boundary position is saved per surface (localStorage). */
34
+ autoSaveId?: string;
35
+ /** Fires on resize commit with the first pane's size as a percentage. */
36
+ onResize?: (percent: number) => void;
37
+ /** Exactly `Pane, Handle, Pane`. */
38
+ children: ReactNode;
39
+ className?: string;
40
+ }
@@ -0,0 +1,2 @@
1
+ export * from './SplitPane.js';
2
+ export * from './SplitPane.types';
@@ -0,0 +1,8 @@
1
+ import { type StatisticProps } from './Statistic.types';
2
+ /**
3
+ * One metric: label, value, and an honest delta. The primitive that KPI rows and dashboard headers
4
+ * compose from — sentiment is declared (`positiveIs`), never inferred from the arrow's direction, so a
5
+ * rising churn number can never render green. The value is always a raw number formatted through
6
+ * `Intl.NumberFormat`; it is the tile content, not the tile — place it in a Card, grid, or page header.
7
+ */
8
+ export declare const Statistic: import("react").ForwardRefExoticComponent<StatisticProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,106 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import '../../lib/api-request.js';
5
+ import { cn } from '../../lib/cn.js';
6
+ import { Skeleton } from '../Skeleton/Skeleton.js';
7
+ import styles from './Statistic.module.css.js';
8
+
9
+ function sentimentOf(delta, positiveIs) {
10
+ if (delta === 0 || positiveIs === "neither") return "neutral";
11
+ const good = positiveIs === "up" && delta > 0 || positiveIs === "down" && delta < 0;
12
+ return good ? "good" : "bad";
13
+ }
14
+ function DeltaArrow({ direction }) {
15
+ if (direction === 0)
16
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 12 12", width: "11", height: "11", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M2.5 6h7" }) });
17
+ return /* @__PURE__ */ jsx(
18
+ "svg",
19
+ {
20
+ viewBox: "0 0 12 12",
21
+ width: "11",
22
+ height: "11",
23
+ fill: "none",
24
+ stroke: "currentColor",
25
+ strokeWidth: 1.75,
26
+ strokeLinecap: "round",
27
+ strokeLinejoin: "round",
28
+ "aria-hidden": "true",
29
+ "data-direction": direction,
30
+ children: /* @__PURE__ */ jsx("path", { d: direction > 0 ? "M6 9.5V2.5M3 5.5 6 2.5l3 3" : "M6 2.5v7M3 6.5 6 9.5l3-3" })
31
+ }
32
+ );
33
+ }
34
+ const Statistic = forwardRef(function Statistic2({
35
+ label,
36
+ value,
37
+ unit,
38
+ size = "md",
39
+ delta,
40
+ positiveIs = "neither",
41
+ comparison,
42
+ format,
43
+ locale,
44
+ href,
45
+ onClick,
46
+ spark,
47
+ loading = false,
48
+ error = false,
49
+ announceUpdates = false,
50
+ className,
51
+ ...props
52
+ }, ref) {
53
+ const nf = new Intl.NumberFormat(locale, format);
54
+ const valueText = nf.format(value);
55
+ const isCompact = format?.notation === "compact";
56
+ const exactText = isCompact ? new Intl.NumberFormat(locale).format(value) : valueText;
57
+ const hasDelta = delta !== void 0 && !loading && !error;
58
+ const direction = hasDelta ? Math.sign(delta) : 0;
59
+ const sentiment = hasDelta ? sentimentOf(delta, positiveIs) : "neutral";
60
+ const deltaText = hasDelta ? new Intl.NumberFormat(locale, { style: "percent", maximumFractionDigits: 1 }).format(Math.abs(delta)) : "";
61
+ const announcement = (() => {
62
+ if (loading) return `${label}: loading`;
63
+ if (error) return `${label}: data unavailable`;
64
+ const head = `${label}: ${exactText}${unit ? ` ${unit}` : ""}`;
65
+ if (!hasDelta) return head;
66
+ const dir = direction > 0 ? "up" : direction < 0 ? "down" : "unchanged";
67
+ const mood = sentiment === "good" ? ", improving" : sentiment === "bad" ? ", worsening" : "";
68
+ return `${head}, ${dir} ${deltaText}${comparison ? ` versus ${comparison}` : ""}${mood}`;
69
+ })();
70
+ const interactive = href !== void 0 || onClick !== void 0;
71
+ const Wrapper = href !== void 0 ? "a" : interactive ? "button" : "div";
72
+ const wrapperProps = href !== void 0 ? { href } : interactive ? { type: "button", onClick } : {};
73
+ return /* @__PURE__ */ jsxs(
74
+ Wrapper,
75
+ {
76
+ ref,
77
+ className: cn(styles.root, className),
78
+ "data-size": size,
79
+ "data-interactive": interactive || void 0,
80
+ "aria-label": interactive ? announcement : void 0,
81
+ ...wrapperProps,
82
+ ...props,
83
+ children: [
84
+ /* @__PURE__ */ jsxs("div", { className: styles.visual, "aria-hidden": "true", children: [
85
+ /* @__PURE__ */ jsx("span", { className: styles.label, children: label }),
86
+ /* @__PURE__ */ jsxs("span", { className: styles.valueRow, children: [
87
+ loading ? /* @__PURE__ */ jsx(Skeleton, { className: styles.valueSkeleton, shape: "rect" }) : error ? /* @__PURE__ */ jsx("span", { className: styles.value, title: "Data unavailable", children: "\u2014" }) : /* @__PURE__ */ jsx("span", { className: styles.value, title: isCompact ? exactText : void 0, children: valueText }, valueText),
88
+ unit && !loading && !error ? /* @__PURE__ */ jsx("span", { className: styles.unit, children: unit }) : null,
89
+ spark ? /* @__PURE__ */ jsx("span", { className: styles.spark, children: spark }) : null
90
+ ] }),
91
+ hasDelta ? /* @__PURE__ */ jsxs("span", { className: styles.deltaRow, children: [
92
+ /* @__PURE__ */ jsxs("span", { className: styles.delta, "data-sentiment": sentiment, children: [
93
+ /* @__PURE__ */ jsx(DeltaArrow, { direction }),
94
+ deltaText
95
+ ] }),
96
+ comparison ? /* @__PURE__ */ jsx("span", { className: styles.comparison, children: comparison }) : null
97
+ ] }) : null
98
+ ] }),
99
+ interactive ? null : /* @__PURE__ */ jsx("span", { className: styles.srOnly, "aria-live": announceUpdates ? "polite" : void 0, children: announcement })
100
+ ]
101
+ }
102
+ );
103
+ });
104
+
105
+ export { Statistic };
106
+ //# sourceMappingURL=Statistic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Statistic.js","sources":["../../../src/components/Statistic/Statistic.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { type ElementType, forwardRef } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport { Skeleton } from '../Skeleton';\nimport styles from './Statistic.module.css';\nimport { type StatisticPositiveIs, type StatisticProps } from './Statistic.types';\n\n/**\n * Declaring the constants\n */\ntype Sentiment = 'good' | 'bad' | 'neutral';\n\nfunction sentimentOf(delta: number, positiveIs: StatisticPositiveIs): Sentiment {\n if (delta === 0 || positiveIs === 'neither') return 'neutral';\n const good = (positiveIs === 'up' && delta > 0) || (positiveIs === 'down' && delta < 0);\n return good ? 'good' : 'bad';\n}\n\nfunction DeltaArrow({ direction }: { direction: -1 | 0 | 1 }) {\n if (direction === 0)\n return (\n <svg viewBox='0 0 12 12' width='11' height='11' fill='none' stroke='currentColor' strokeWidth={1.75} strokeLinecap='round' aria-hidden='true'>\n <path d='M2.5 6h7' />\n </svg>\n );\n return (\n <svg\n viewBox='0 0 12 12'\n width='11'\n height='11'\n fill='none'\n stroke='currentColor'\n strokeWidth={1.75}\n strokeLinecap='round'\n strokeLinejoin='round'\n aria-hidden='true'\n data-direction={direction}\n >\n <path d={direction > 0 ? 'M6 9.5V2.5M3 5.5 6 2.5l3 3' : 'M6 2.5v7M3 6.5 6 9.5l3-3'} />\n </svg>\n );\n}\n\n/**\n * One metric: label, value, and an honest delta. The primitive that KPI rows and dashboard headers\n * compose from — sentiment is declared (`positiveIs`), never inferred from the arrow's direction, so a\n * rising churn number can never render green. The value is always a raw number formatted through\n * `Intl.NumberFormat`; it is the tile content, not the tile — place it in a Card, grid, or page header.\n */\nexport const Statistic = forwardRef<HTMLDivElement, StatisticProps>(function Statistic(\n {\n label,\n value,\n unit,\n size = 'md',\n delta,\n positiveIs = 'neither',\n comparison,\n format,\n locale,\n href,\n onClick,\n spark,\n loading = false,\n error = false,\n announceUpdates = false,\n className,\n ...props\n },\n ref,\n) {\n const nf = new Intl.NumberFormat(locale, format);\n const valueText = nf.format(value);\n const isCompact = format?.notation === 'compact';\n const exactText = isCompact ? new Intl.NumberFormat(locale).format(value) : valueText;\n\n const hasDelta = delta !== undefined && !loading && !error;\n const direction = hasDelta ? (Math.sign(delta) as -1 | 0 | 1) : 0;\n const sentiment = hasDelta ? sentimentOf(delta, positiveIs) : 'neutral';\n const deltaText = hasDelta ? new Intl.NumberFormat(locale, { style: 'percent', maximumFractionDigits: 1 }).format(Math.abs(delta)) : '';\n\n const announcement = (() => {\n if (loading) return `${label}: loading`;\n if (error) return `${label}: data unavailable`;\n const head = `${label}: ${exactText}${unit ? ` ${unit}` : ''}`;\n if (!hasDelta) return head;\n const dir = direction > 0 ? 'up' : direction < 0 ? 'down' : 'unchanged';\n const mood = sentiment === 'good' ? ', improving' : sentiment === 'bad' ? ', worsening' : '';\n return `${head}, ${dir} ${deltaText}${comparison ? ` versus ${comparison}` : ''}${mood}`;\n })();\n\n const interactive = href !== undefined || onClick !== undefined;\n const Wrapper = (href !== undefined ? 'a' : interactive ? 'button' : 'div') as ElementType;\n const wrapperProps = href !== undefined ? { href } : interactive ? { type: 'button' as const, onClick } : {};\n\n return (\n <Wrapper\n ref={ref}\n className={cn(styles.root, className)}\n data-size={size}\n data-interactive={interactive || undefined}\n aria-label={interactive ? announcement : undefined}\n {...wrapperProps}\n {...props}\n >\n <div className={styles.visual} aria-hidden='true'>\n <span className={styles.label}>{label}</span>\n <span className={styles.valueRow}>\n {loading ? (\n <Skeleton className={styles.valueSkeleton} shape='rect' />\n ) : error ? (\n <span className={styles.value} title='Data unavailable'>\n —\n </span>\n ) : (\n <span key={valueText} className={styles.value} title={isCompact ? exactText : undefined}>\n {valueText}\n </span>\n )}\n {unit && !loading && !error ? <span className={styles.unit}>{unit}</span> : null}\n {spark ? <span className={styles.spark}>{spark}</span> : null}\n </span>\n {hasDelta ? (\n <span className={styles.deltaRow}>\n <span className={styles.delta} data-sentiment={sentiment}>\n <DeltaArrow direction={direction} />\n {deltaText}\n </span>\n {comparison ? <span className={styles.comparison}>{comparison}</span> : null}\n </span>\n ) : null}\n </div>\n {interactive ? null : (\n <span className={styles.srOnly} aria-live={announceUpdates ? 'polite' : undefined}>\n {announcement}\n </span>\n )}\n </Wrapper>\n );\n});\n"],"names":["Statistic"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var styles = {"root":"sh-root_Fn6vF","visual":"sh-visual_OAKUT","label":"sh-label_O256y","valueRow":"sh-valueRow_DOGI7","value":"sh-value_Af9tB","unit":"sh-unit_6TdK6","spark":"sh-spark_c4rzL","valueSkeleton":"sh-valueSkeleton_WDLlb","deltaRow":"sh-deltaRow_JQZ80","delta":"sh-delta_AZ1sI","comparison":"sh-comparison_LGxeF","srOnly":"sh-srOnly_hLtXv"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=Statistic.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Statistic.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Importing npm packages
3
+ */
4
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
5
+ /**
6
+ * Defining types
7
+ */
8
+ export type StatisticSize = 'sm' | 'md' | 'lg';
9
+ /** Which direction is the good one — declared, never inferred from the delta's sign. */
10
+ export type StatisticPositiveIs = 'up' | 'down' | 'neither';
11
+ export interface StatisticProps extends Omit<ComponentPropsWithoutRef<'div'>, 'title' | 'onClick'> {
12
+ /** The metric name. Rendered as the label and used in the accessible sentence. */
13
+ label: string;
14
+ /** The raw number. Formatting is the component's job — pre-formatted strings are rejected by the type. */
15
+ value: number;
16
+ /** Trailing unit, baseline-tucked (`%`, `ms`, `req/s`). */
17
+ unit?: string;
18
+ /** Value type scale. @default 'md' */
19
+ size?: StatisticSize;
20
+ /** Signed fraction change (`0.12` = +12%). Omit for a static metric with no baseline. */
21
+ delta?: number;
22
+ /** Which direction counts as good. Declare it on every metric with a delta; absent → neutral (no false green). */
23
+ positiveIs?: StatisticPositiveIs;
24
+ /** The baseline caption ("vs last week") — required reading whenever a delta renders. */
25
+ comparison?: string;
26
+ /** `Intl.NumberFormat` options (compact notation, fraction digits, grouping). */
27
+ format?: Intl.NumberFormatOptions;
28
+ /** Formatting locale. @default the runtime default */
29
+ locale?: string;
30
+ /** Makes the whole block a drill-in link. */
31
+ href?: string;
32
+ /** Makes the whole block an activatable target. */
33
+ onClick?: () => void;
34
+ /** Optional trailing mini-visual (sparkline, Progress) reserved at 48×20. Charting stays out of scope. */
35
+ spark?: ReactNode;
36
+ /** Skeleton the value while the label renders immediately. */
37
+ loading?: boolean;
38
+ /** Value unavailable — renders an em dash with a warning affordance instead of a stale number. */
39
+ error?: boolean;
40
+ /** Announce value changes politely — for genuine monitoring surfaces only. @default false */
41
+ announceUpdates?: boolean;
42
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Statistic.js';
2
+ export * from './Statistic.types';
@@ -0,0 +1,15 @@
1
+ import { type StepperProps, type StepperStepProps } from './Stepper.types';
2
+ /** Marker component — the parent reads its props and renders the current step's children. */
3
+ export declare function StepperStep(_: StepperStepProps): null;
4
+ /**
5
+ * Multi-step flow progress with a validation-gated state machine — the indicator, content region, and
6
+ * wizard footer shipped together so the grammar can't drift between flows. Forward movement is gated on
7
+ * per-step validation; backward movement is always free and preserves step data. Revisiting a step
8
+ * resets its declared downstream dependencies to upcoming (the invalidation contract). State is carried
9
+ * by glyphs (check / number / ! / dash), never color alone. A headless `useStepper` is a follow-up.
10
+ */
11
+ declare function StepperRoot({ current, defaultCurrent, onCurrentChange, linear, orientation, status, continueLabel, finishLabel, children, className, }: StepperProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare const Stepper: typeof StepperRoot & {
13
+ Step: typeof StepperStep;
14
+ };
15
+ export {};