@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,152 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { createContext, forwardRef, useId, useState, useEffect, useContext } from 'react';
4
+ import '../../lib/api-request.js';
5
+ import { cn } from '../../lib/cn.js';
6
+ import { Tag } from '../Tag/Tag.js';
7
+ import styles from './RTEField.module.css.js';
8
+
9
+ const RTEFieldContext = createContext(null);
10
+ function useRTEField() {
11
+ const context = useContext(RTEFieldContext);
12
+ if (!context) throw new Error("useRTEField must be used within an RTEField");
13
+ return context;
14
+ }
15
+ function FullscreenIcon({ active }) {
16
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", width: "16", height: "16", fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: active ? /* @__PURE__ */ jsx("path", { d: "M6 2.5V6H2.5M10 2.5V6h3.5M6 13.5V10H2.5M10 13.5V10h3.5" }) : /* @__PURE__ */ jsx("path", { d: "M2.5 6V2.5H6M13.5 6V2.5H10M2.5 10v3.5H6M13.5 10v3.5H10" }) });
17
+ }
18
+ const RTEFieldRoot = forwardRef(function RTEField2({
19
+ label,
20
+ required = false,
21
+ description,
22
+ error,
23
+ length,
24
+ maxLength,
25
+ countMode = "characters",
26
+ readOnly = false,
27
+ disabled = false,
28
+ fullscreenEnabled = false,
29
+ fullscreen,
30
+ onFullscreenChange,
31
+ className,
32
+ children,
33
+ ...props
34
+ }, ref) {
35
+ const labelId = useId();
36
+ const descriptionId = useId();
37
+ const errorId = useId();
38
+ const hasError = error === true || typeof error === "string" && error.length > 0;
39
+ const errorMessage = typeof error === "string" ? error : void 0;
40
+ const isFsControlled = fullscreen !== void 0;
41
+ const [fsInternal, setFsInternal] = useState(false);
42
+ const isFullscreen = isFsControlled ? fullscreen : fsInternal;
43
+ function setFullscreen(next) {
44
+ if (!isFsControlled) setFsInternal(next);
45
+ onFullscreenChange?.(next);
46
+ }
47
+ useEffect(() => {
48
+ if (!isFullscreen) return;
49
+ const onKey = (event) => {
50
+ if (event.key === "Escape") setFullscreen(false);
51
+ };
52
+ document.addEventListener("keydown", onKey);
53
+ return () => document.removeEventListener("keydown", onKey);
54
+ });
55
+ const overLimit = maxLength != null && length != null && length > maxLength;
56
+ const nearLimit = maxLength != null && length != null && !overLimit && length >= maxLength * 0.9;
57
+ const counterState = overLimit ? "error" : nearLimit ? "warning" : void 0;
58
+ const invalid = hasError || overLimit;
59
+ const context = {
60
+ labelId,
61
+ descriptionId: description != null ? descriptionId : void 0,
62
+ errorId: errorMessage ? errorId : void 0,
63
+ disabled,
64
+ readOnly,
65
+ invalid
66
+ };
67
+ const showCounter = !readOnly && maxLength != null && length != null;
68
+ return /* @__PURE__ */ jsxs(RTEFieldContext.Provider, { value: context, children: [
69
+ isFullscreen ? /* @__PURE__ */ jsx("button", { type: "button", className: styles.scrim, "aria-label": "Exit fullscreen", onClick: () => setFullscreen(false) }) : null,
70
+ /* @__PURE__ */ jsxs("div", { ref, className: cn(styles.field, className), "data-fullscreen": isFullscreen || void 0, ...props, children: [
71
+ !readOnly ? /* @__PURE__ */ jsxs("div", { className: styles.labelRow, children: [
72
+ /* @__PURE__ */ jsxs("span", { className: styles.label, id: labelId, children: [
73
+ label,
74
+ required ? /* @__PURE__ */ jsxs("span", { className: styles.required, "aria-hidden": "true", children: [
75
+ " ",
76
+ "*"
77
+ ] }) : null
78
+ ] }),
79
+ showCounter ? /* @__PURE__ */ jsxs("span", { className: styles.counter, "data-state": counterState, "aria-hidden": "true", children: [
80
+ length,
81
+ countMode === "words" ? " words" : "",
82
+ " / ",
83
+ maxLength
84
+ ] }) : null
85
+ ] }) : /* @__PURE__ */ jsx("span", { className: styles.srOnly, id: labelId, children: label }),
86
+ description != null && !readOnly ? /* @__PURE__ */ jsx("div", { className: styles.description, id: descriptionId, children: description }) : null,
87
+ /* @__PURE__ */ jsxs("div", { className: styles.frame, "data-readonly": readOnly || void 0, "data-disabled": disabled || void 0, "aria-invalid": invalid || void 0, children: [
88
+ fullscreenEnabled && !readOnly ? /* @__PURE__ */ jsx(
89
+ "button",
90
+ {
91
+ type: "button",
92
+ className: styles.fullscreenToggle,
93
+ "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
94
+ "aria-pressed": isFullscreen,
95
+ onClick: () => setFullscreen(!isFullscreen),
96
+ children: /* @__PURE__ */ jsx(FullscreenIcon, { active: isFullscreen })
97
+ }
98
+ ) : null,
99
+ children
100
+ ] }),
101
+ errorMessage ? /* @__PURE__ */ jsxs("div", { className: styles.errorLine, id: errorId, role: "alert", children: [
102
+ /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", width: "14", height: "14", fill: "none", stroke: "currentColor", strokeWidth: 1.5, "aria-hidden": "true", children: [
103
+ /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "6.25" }),
104
+ /* @__PURE__ */ jsx("path", { d: "M8 5v3.4M8 10.8v.1", strokeLinecap: "round" })
105
+ ] }),
106
+ errorMessage
107
+ ] }) : null
108
+ ] })
109
+ ] });
110
+ });
111
+ const RTEFieldToolbar = forwardRef(function RTEFieldToolbar2({ className, onKeyDown, ...props }, ref) {
112
+ function handleKeyDown(event) {
113
+ onKeyDown?.(event);
114
+ if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
115
+ const buttons = Array.from(event.currentTarget.querySelectorAll("button:not([disabled])"));
116
+ const active = document.activeElement;
117
+ const current = active ? buttons.indexOf(active) : -1;
118
+ if (current === -1) return;
119
+ event.preventDefault();
120
+ const delta = event.key === "ArrowRight" ? 1 : -1;
121
+ const next = buttons[(current + delta + buttons.length) % buttons.length];
122
+ next?.focus();
123
+ }
124
+ return /* @__PURE__ */ jsx("div", { ref, className: cn(styles.toolbar, className), role: "toolbar", "aria-label": "Formatting", onKeyDown: handleKeyDown, ...props });
125
+ });
126
+ const RTEFieldToolbarButton = forwardRef(function RTEFieldToolbarButton2({ className, pressed, type, ...props }, ref) {
127
+ return /* @__PURE__ */ jsx("button", { ref, type: type ?? "button", className: cn(styles.toolbarButton, className), "aria-pressed": pressed, "data-pressed": pressed || void 0, ...props });
128
+ });
129
+ const RTEFieldToolbarDivider = forwardRef(function RTEFieldToolbarDivider2({ className }, ref) {
130
+ return /* @__PURE__ */ jsx("div", { ref, className: cn(styles.toolbarDivider, className), "aria-hidden": "true" });
131
+ });
132
+ const RTEFieldContent = forwardRef(function RTEFieldContent2({ className, ...props }, ref) {
133
+ return /* @__PURE__ */ jsx("div", { ref, className: cn(styles.content, className), ...props });
134
+ });
135
+ const RTEFieldAttachments = forwardRef(function RTEFieldAttachments2({ value, onRemove, className, ...props }, ref) {
136
+ if (value.length === 0) return null;
137
+ return /* @__PURE__ */ jsx("div", { ref, className: cn(styles.attachments, className), ...props, children: value.map((file) => /* @__PURE__ */ jsx(Tag, { size: "sm", onRemove: onRemove ? () => onRemove(file.id) : void 0, children: file.label }, file.id)) });
138
+ });
139
+ const RTEFieldFooter = forwardRef(function RTEFieldFooter2({ className, ...props }, ref) {
140
+ return /* @__PURE__ */ jsx("div", { ref, className: cn(styles.footer, className), ...props });
141
+ });
142
+ const RTEField = Object.assign(RTEFieldRoot, {
143
+ Toolbar: RTEFieldToolbar,
144
+ ToolbarButton: RTEFieldToolbarButton,
145
+ ToolbarDivider: RTEFieldToolbarDivider,
146
+ Content: RTEFieldContent,
147
+ Attachments: RTEFieldAttachments,
148
+ Footer: RTEFieldFooter
149
+ });
150
+
151
+ export { RTEField, RTEFieldAttachments, RTEFieldContent, RTEFieldFooter, RTEFieldToolbar, RTEFieldToolbarButton, RTEFieldToolbarDivider, useRTEField };
152
+ //# sourceMappingURL=RTEField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTEField.js","sources":["../../../src/components/RTEField/RTEField.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { createContext, forwardRef, type KeyboardEvent, useContext, useEffect, useId, useState } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport { Tag } from '../Tag';\nimport styles from './RTEField.module.css';\nimport {\n type RTEFieldAttachmentsProps,\n type RTEFieldContentProps,\n type RTEFieldContextValue,\n type RTEFieldFooterProps,\n type RTEFieldProps,\n type RTEFieldToolbarButtonProps,\n type RTEFieldToolbarProps,\n} from './RTEField.types';\n\n/**\n * Declaring the constants\n */\nconst RTEFieldContext = createContext<RTEFieldContextValue | null>(null);\n\n/** Access the field's a11y ids and state to wire an engine's editable element (aria-labelledby, etc.). */\nexport function useRTEField(): RTEFieldContextValue {\n const context = useContext(RTEFieldContext);\n if (!context) throw new Error('useRTEField must be used within an RTEField');\n return context;\n}\n\nfunction FullscreenIcon({ active }: { active: boolean }) {\n return (\n <svg viewBox='0 0 16 16' width='16' height='16' fill='none' stroke='currentColor' strokeWidth={1.5} strokeLinecap='round' strokeLinejoin='round' aria-hidden='true'>\n {active ? <path d='M6 2.5V6H2.5M10 2.5V6h3.5M6 13.5V10H2.5M10 13.5V10h3.5' /> : <path d='M2.5 6V2.5H6M13.5 6V2.5H10M2.5 10v3.5H6M13.5 10v3.5H10' />}\n </svg>\n );\n}\n\n/**\n * The field chrome around a rich-text engine — TipTap, Lexical, or ProseMirror mounts inside and the\n * wrapper makes it behave like every other Shadow UI form control (label, validation, focus, counter).\n * Its boundary of ownership is everything outside the engine's content element; it never reaches into\n * the document model. The whole frame takes the focus-field ring whenever focus is anywhere inside —\n * one field, one boundary. The editable element wires its own ARIA via `useRTEField`.\n */\nconst RTEFieldRoot = forwardRef<HTMLDivElement, RTEFieldProps>(function RTEField(\n {\n label,\n required = false,\n description,\n error,\n length,\n maxLength,\n countMode = 'characters',\n readOnly = false,\n disabled = false,\n fullscreenEnabled = false,\n fullscreen,\n onFullscreenChange,\n className,\n children,\n ...props\n },\n ref,\n) {\n const labelId = useId();\n const descriptionId = useId();\n const errorId = useId();\n const hasError = error === true || (typeof error === 'string' && error.length > 0);\n const errorMessage = typeof error === 'string' ? error : undefined;\n\n const isFsControlled = fullscreen !== undefined;\n const [fsInternal, setFsInternal] = useState(false);\n const isFullscreen = isFsControlled ? fullscreen : fsInternal;\n\n function setFullscreen(next: boolean): void {\n if (!isFsControlled) setFsInternal(next);\n onFullscreenChange?.(next);\n }\n\n // Esc leaves fullscreen.\n useEffect(() => {\n if (!isFullscreen) return;\n const onKey = (event: globalThis.KeyboardEvent) => {\n if (event.key === 'Escape') setFullscreen(false);\n };\n document.addEventListener('keydown', onKey);\n return () => document.removeEventListener('keydown', onKey);\n });\n\n const overLimit = maxLength != null && length != null && length > maxLength;\n const nearLimit = maxLength != null && length != null && !overLimit && length >= maxLength * 0.9;\n const counterState = overLimit ? 'error' : nearLimit ? 'warning' : undefined;\n const invalid = hasError || overLimit;\n\n const context: RTEFieldContextValue = {\n labelId,\n descriptionId: description != null ? descriptionId : undefined,\n errorId: errorMessage ? errorId : undefined,\n disabled,\n readOnly,\n invalid,\n };\n\n const showCounter = !readOnly && maxLength != null && length != null;\n\n return (\n <RTEFieldContext.Provider value={context}>\n {isFullscreen ? <button type='button' className={styles.scrim} aria-label='Exit fullscreen' onClick={() => setFullscreen(false)} /> : null}\n <div ref={ref} className={cn(styles.field, className)} data-fullscreen={isFullscreen || undefined} {...props}>\n {!readOnly ? (\n <div className={styles.labelRow}>\n <span className={styles.label} id={labelId}>\n {label}\n {required ? (\n <span className={styles.required} aria-hidden='true'>\n {' '}\n *\n </span>\n ) : null}\n </span>\n {showCounter ? (\n <span className={styles.counter} data-state={counterState} aria-hidden='true'>\n {length}\n {countMode === 'words' ? ' words' : ''} / {maxLength}\n </span>\n ) : null}\n </div>\n ) : (\n <span className={styles.srOnly} id={labelId}>\n {label}\n </span>\n )}\n\n {description != null && !readOnly ? (\n <div className={styles.description} id={descriptionId}>\n {description}\n </div>\n ) : null}\n\n <div className={styles.frame} data-readonly={readOnly || undefined} data-disabled={disabled || undefined} aria-invalid={invalid || undefined}>\n {fullscreenEnabled && !readOnly ? (\n <button\n type='button'\n className={styles.fullscreenToggle}\n aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'}\n aria-pressed={isFullscreen}\n onClick={() => setFullscreen(!isFullscreen)}\n >\n <FullscreenIcon active={isFullscreen} />\n </button>\n ) : null}\n {children}\n </div>\n\n {errorMessage ? (\n <div className={styles.errorLine} id={errorId} role='alert'>\n <svg viewBox='0 0 16 16' width='14' height='14' fill='none' stroke='currentColor' strokeWidth={1.5} aria-hidden='true'>\n <circle cx='8' cy='8' r='6.25' />\n <path d='M8 5v3.4M8 10.8v.1' strokeLinecap='round' />\n </svg>\n {errorMessage}\n </div>\n ) : null}\n </div>\n </RTEFieldContext.Provider>\n );\n});\n\n/** Toolbar region — one tab stop; arrow keys rove between the toggle buttons (ARIA toolbar pattern). */\nconst RTEFieldToolbar = forwardRef<HTMLDivElement, RTEFieldToolbarProps>(function RTEFieldToolbar({ className, onKeyDown, ...props }, ref) {\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>): void {\n onKeyDown?.(event);\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n const buttons = Array.from(event.currentTarget.querySelectorAll<HTMLButtonElement>('button:not([disabled])'));\n const active = document.activeElement as HTMLButtonElement | null;\n const current = active ? buttons.indexOf(active) : -1;\n if (current === -1) return;\n event.preventDefault();\n const delta = event.key === 'ArrowRight' ? 1 : -1;\n const next = buttons[(current + delta + buttons.length) % buttons.length];\n next?.focus();\n }\n\n return <div ref={ref} className={cn(styles.toolbar, className)} role='toolbar' aria-label='Formatting' onKeyDown={handleKeyDown} {...props} />;\n});\n\nconst RTEFieldToolbarButton = forwardRef<HTMLButtonElement, RTEFieldToolbarButtonProps>(function RTEFieldToolbarButton({ className, pressed, type, ...props }, ref) {\n return <button ref={ref} type={type ?? 'button'} className={cn(styles.toolbarButton, className)} aria-pressed={pressed} data-pressed={pressed || undefined} {...props} />;\n});\n\nconst RTEFieldToolbarDivider = forwardRef<HTMLDivElement, { className?: string }>(function RTEFieldToolbarDivider({ className }, ref) {\n return <div ref={ref} className={cn(styles.toolbarDivider, className)} aria-hidden='true' />;\n});\n\nconst RTEFieldContent = forwardRef<HTMLDivElement, RTEFieldContentProps>(function RTEFieldContent({ className, ...props }, ref) {\n return <div ref={ref} className={cn(styles.content, className)} {...props} />;\n});\n\nconst RTEFieldAttachments = forwardRef<HTMLDivElement, RTEFieldAttachmentsProps>(function RTEFieldAttachments({ value, onRemove, className, ...props }, ref) {\n if (value.length === 0) return null;\n return (\n <div ref={ref} className={cn(styles.attachments, className)} {...props}>\n {value.map(file => (\n <Tag key={file.id} size='sm' onRemove={onRemove ? () => onRemove(file.id) : undefined}>\n {file.label}\n </Tag>\n ))}\n </div>\n );\n});\n\nconst RTEFieldFooter = forwardRef<HTMLDivElement, RTEFieldFooterProps>(function RTEFieldFooter({ className, ...props }, ref) {\n return <div ref={ref} className={cn(styles.footer, className)} {...props} />;\n});\n\nexport const RTEField = Object.assign(RTEFieldRoot, {\n Toolbar: RTEFieldToolbar,\n ToolbarButton: RTEFieldToolbarButton,\n ToolbarDivider: RTEFieldToolbarDivider,\n Content: RTEFieldContent,\n Attachments: RTEFieldAttachments,\n Footer: RTEFieldFooter,\n});\n\nexport { RTEFieldAttachments, RTEFieldContent, RTEFieldFooter, RTEFieldToolbar, RTEFieldToolbarButton, RTEFieldToolbarDivider };\n"],"names":["RTEField","RTEFieldToolbar","RTEFieldToolbarButton","RTEFieldToolbarDivider","RTEFieldContent","RTEFieldAttachments","RTEFieldFooter"],"mappings":";;;;;;;;AAyBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAA2C,IAAI,CAAA,CAAA;AAGhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,WAAA,CAAA,CAAA,CAAoC,CAAA;AAClD,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,eAAe,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,EAAM,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,CAAA,CAAA,CAAA,CAA6C,CAAA,CAAA;AAC3E,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAwB,CAAA;AACvD,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,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAA,CAAA,CAAO,CAAA,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,GAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAA,CAAA,CAC1J,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,CAAS,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAA,CAAA,CAAE,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAE,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAyD,CAAA,EACnJ,CAAA,CAAA;AAEJ,CAAA;AASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASA,SAAAA,CACtE,CAAA;AAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CACA,GAAA,CAAA,CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACtB,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,IAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,QAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA;AAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,KAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAClD,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,iBAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEnD,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,CAAqB,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,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,CAAA,CAAA,CAAA,CAAc,IAAI,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CAC3B,CAAA;AAGA,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,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,KAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,QAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACjD,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,KAAK,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,mBAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAAA,CAAA,CAC5D,CAAC,CAAA,CAAA;AAED,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,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClE,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,aAAa,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,KAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAA;AAC7F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,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,CAAA,CAAA,CAAA,CAAU,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;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAA,CAAA,CAAA,CAAgC,CAAA;AAAA,CAAA,CAAA,CAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,IAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACrD,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA;AAEhE,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhB,CAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9B,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,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,GAAW,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,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,GAAK,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,CACtI,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,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,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,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,CACA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,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,CAAA,CAAA,CAAA,CAAA,IAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChC,QAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,2BACC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3C,QAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEP,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACN,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBACE,MAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,OAAA,CAAA,CAAS,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,CAAA,CAAc,aAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC7C,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAEC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,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,CACvB,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,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,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CAAA,CAAA,CACE,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,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,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,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,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,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChI,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,mBACrB,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB,YAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,aAAA,CAAc,CAAC,YAAY,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE1C,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,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxC,GACE,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACH,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wBACE,KAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,SAAA,CAAA,CAAW,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,IAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAA,CAAA,CAAM,CAAA,CAAA,CAAA,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,cAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9G,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAO,EAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAI,GAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA;AAAA,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,CAC/B,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACrD,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACN,CAAA;AAAA,CAAA,CAAA,CAAA,EACF,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAGD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,eAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,gBAAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,SAAA,CAAA,CAAW,CAAA,CAAA,CAAG,KAAA,CAAA,CAAM,CAAA,CAAG,GAAA,CAAA,CAAK,CAAA;AACzI,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,CAA4C,CAAA;AACjE,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,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,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,MAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAM,aAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAA,CAAA;AAC5G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,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,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,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,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,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,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,IAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,IAAQ,OAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,MAAM,CAAA,CAAA;AACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAAA,CAAA,CACd,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,YAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA;AAC9I,CAAC,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,qBAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,IAAA,CAAA,CAAM,CAAA,CAAA,CAAG,KAAA,CAAA,CAAM,CAAA,CAAG,GAAA,CAAA,CAAK,CAAA;AAClK,CAAA,CAAA,2BAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,GAAM,IAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,EAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,OAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA;AACzK,CAAC,CAAA,CAAA;AAED,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,IAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAuB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACpI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAC5F,CAAC,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiD,SAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAG,GAAA,CAAA,CAAK,CAAA;AAC9H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAC7E,CAAC,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,mBAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,SAAA,CAAA,CAAW,CAAA,CAAA,CAAG,KAAA,CAAA,CAAM,CAAA,CAAG,GAAA,CAAA,CAAK,CAAA;AAC3J,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAW,CAAA,CAAA,CAAG,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,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,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,qBACT,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAEf,CACD,CAAA,EACH,CAAA,CAAA;AAEJ,CAAC,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgD,SAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAG,GAAA,CAAA,CAAK,CAAA;AAC3H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,MAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAC5E,CAAC,CAAA,CAAA;AAEM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,YAAA,CAAA,CAAc,CAAA;AAAA,CAAA,CAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACf,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACb,MAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACV,CAAC,CAAA,CAAA;;"}
@@ -0,0 +1,4 @@
1
+ var styles = {"field":"sh-field_uFm-R","labelRow":"sh-labelRow_K-e22","label":"sh-label_zqGFB","required":"sh-required_xbIaS","counter":"sh-counter_Q-qGe","description":"sh-description_Nethy","frame":"sh-frame_vMdgb","fullscreenToggle":"sh-fullscreenToggle_CU2b0","toolbar":"sh-toolbar_lnVhJ","toolbarButton":"sh-toolbarButton_k0CNs","toolbarDivider":"sh-toolbarDivider_9UY8C","content":"sh-content_dWh3u","attachments":"sh-attachments_nGK9I","footer":"sh-footer_3eUun","errorLine":"sh-errorLine_bDg76","scrim":"sh-scrim_Cr0Le","srOnly":"sh-srOnly_tjUXG"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=RTEField.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTEField.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Importing npm packages
3
+ */
4
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
5
+ /**
6
+ * Defining types
7
+ */
8
+ export type RTECountMode = 'characters' | 'words';
9
+ export interface RTEFieldContextValue {
10
+ labelId: string;
11
+ descriptionId?: string;
12
+ errorId?: string;
13
+ disabled: boolean;
14
+ readOnly: boolean;
15
+ invalid: boolean;
16
+ }
17
+ export interface RTEFieldProps extends Omit<ComponentPropsWithoutRef<'div'>, 'onChange'> {
18
+ /** Field label — associated with the editor via `aria-labelledby` (exposed through context). */
19
+ label: ReactNode;
20
+ /** Required marker + `aria-required` on the field. @default false */
21
+ required?: boolean;
22
+ /** Helper text above the frame. */
23
+ description?: ReactNode;
24
+ /** `string` shows the error line and sets the danger hue; `true` sets the hue without a message. */
25
+ error?: string | boolean;
26
+ /** Current content length (the wrapper is engine-agnostic — the product supplies this). */
27
+ length?: number;
28
+ /** Enforced limit; drives the counter's warn/error crossings. */
29
+ maxLength?: number;
30
+ /** Count characters or words. @default 'characters' */
31
+ countMode?: RTECountMode;
32
+ /** Document mode — no toolbar/counter/footer, selectable content, sunken fill. @default false */
33
+ readOnly?: boolean;
34
+ /** Sunken fill, dimmed, no focus. @default false */
35
+ disabled?: boolean;
36
+ /** Show the fullscreen toggle. @default false */
37
+ fullscreenEnabled?: boolean;
38
+ /** Controlled fullscreen state. */
39
+ fullscreen?: boolean;
40
+ /** Fullscreen open/close callback. */
41
+ onFullscreenChange?: (fullscreen: boolean) => void;
42
+ /** `RTEField.Toolbar`, `.Content`, `.Attachments`, `.Footer`. */
43
+ children: ReactNode;
44
+ }
45
+ export type RTEFieldToolbarProps = ComponentPropsWithoutRef<'div'>;
46
+ export interface RTEFieldToolbarButtonProps extends Omit<ComponentPropsWithoutRef<'button'>, 'aria-label'> {
47
+ /** Required accessible name — a bare icon toggle without one is a defect. */
48
+ 'aria-label': string;
49
+ /** Toggle state — sets `aria-pressed` and the accent-soft pressed fill. */
50
+ pressed?: boolean;
51
+ }
52
+ export type RTEFieldContentProps = ComponentPropsWithoutRef<'div'>;
53
+ export type RTEFieldFooterProps = ComponentPropsWithoutRef<'div'>;
54
+ export interface RTEAttachment {
55
+ id: string;
56
+ label: string;
57
+ }
58
+ export interface RTEFieldAttachmentsProps extends Omit<ComponentPropsWithoutRef<'div'>, 'onChange'> {
59
+ value: RTEAttachment[];
60
+ onRemove?: (id: string) => void;
61
+ }
@@ -0,0 +1,2 @@
1
+ export * from './RTEField.js';
2
+ export * from './RTEField.types';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Importing user defined packages
3
+ */
4
+ /**
5
+ * Defining types
6
+ */
7
+ export interface RadioGroupContextValue {
8
+ /** Propagates the group's invalid state to every item's circle. */
9
+ invalid: boolean;
10
+ }
11
+ /**
12
+ * Declaring the constants
13
+ */
14
+ export declare const RadioGroupContext: import("react").Context<RadioGroupContextValue>;
15
+ export declare function useRadioGroupContext(): RadioGroupContextValue;
@@ -0,0 +1,9 @@
1
+ import { createContext, useContext } from 'react';
2
+
3
+ const RadioGroupContext = createContext({ invalid: false });
4
+ function useRadioGroupContext() {
5
+ return useContext(RadioGroupContext);
6
+ }
7
+
8
+ export { RadioGroupContext, useRadioGroupContext };
9
+ //# sourceMappingURL=RadioGroup.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.context.js","sources":["../../../src/components/RadioGroup/RadioGroup.context.ts"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { createContext, useContext } from 'react';\n\n/**\n * Importing user defined packages\n */\n\n/**\n * Defining types\n */\nexport interface RadioGroupContextValue {\n /** Propagates the group's invalid state to every item's circle. */\n invalid: boolean;\n}\n\n/**\n * Declaring the constants\n */\nexport const RadioGroupContext = createContext<RadioGroupContextValue>({ invalid: false });\n\nexport function useRadioGroupContext(): RadioGroupContextValue {\n return useContext(RadioGroupContext);\n}\n"],"names":[],"mappings":";;AAoBO,MAAM,iBAAA,GAAoB,aAAA,CAAsC,EAAE,OAAA,EAAS,OAAO;AAElF,SAAS,oBAAA,GAA+C;AAC7D,EAAA,OAAO,WAAW,iBAAiB,CAAA;AACrC;;;;"}
@@ -0,0 +1,7 @@
1
+ import { type RadioGroupProps, type RadioItemProps } from './RadioGroup.types';
2
+ declare const RadioItem: import("react").ForwardRefExoticComponent<RadioItemProps & import("react").RefAttributes<HTMLButtonElement>>;
3
+ /** Compound RadioGroup: the root plus `.Item`. */
4
+ export declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupProps & import("react").RefAttributes<HTMLDivElement>> & {
5
+ Item: import("react").ForwardRefExoticComponent<RadioItemProps & import("react").RefAttributes<HTMLButtonElement>>;
6
+ };
7
+ export { RadioItem };
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
4
+ import { forwardRef, useId } from 'react';
5
+ import '../../lib/api-request.js';
6
+ import { cn } from '../../lib/cn.js';
7
+ import { RadioGroupContext, useRadioGroupContext } from './RadioGroup.context.js';
8
+ import styles from './RadioGroup.module.css.js';
9
+
10
+ const RadioGroupRoot = forwardRef(function RadioGroup2({ label, invalid = false, className, children, ...props }, ref) {
11
+ const labelId = useId();
12
+ return /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: { invalid }, children: /* @__PURE__ */ jsxs(
13
+ RadioGroupPrimitive.Root,
14
+ {
15
+ ref,
16
+ className: cn(styles.group, className),
17
+ "aria-labelledby": label != null ? labelId : void 0,
18
+ "aria-invalid": invalid || void 0,
19
+ ...props,
20
+ children: [
21
+ label != null ? /* @__PURE__ */ jsx("span", { id: labelId, className: styles.groupLabel, children: label }) : null,
22
+ children
23
+ ]
24
+ }
25
+ ) });
26
+ });
27
+ const RadioItem = forwardRef(function RadioItem2({ label, description, id, className, disabled, ...props }, ref) {
28
+ const { invalid } = useRadioGroupContext();
29
+ const generatedId = useId();
30
+ const itemId = id ?? generatedId;
31
+ const descriptionId = description != null ? `${itemId}-description` : void 0;
32
+ return /* @__PURE__ */ jsxs("div", { className: cn(styles.item, className), "data-disabled": disabled || void 0, children: [
33
+ /* @__PURE__ */ jsx(RadioGroupPrimitive.Item, { ref, id: itemId, className: styles.circle, disabled, "data-invalid": invalid || void 0, "aria-describedby": descriptionId, ...props, children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, { className: styles.dot }) }),
34
+ /* @__PURE__ */ jsxs("div", { className: styles.text, children: [
35
+ /* @__PURE__ */ jsx("label", { htmlFor: itemId, className: styles.label, children: label }),
36
+ description != null ? /* @__PURE__ */ jsx("span", { id: descriptionId, className: styles.description, children: description }) : null
37
+ ] })
38
+ ] });
39
+ });
40
+ const RadioGroup = Object.assign(RadioGroupRoot, { Item: RadioItem });
41
+
42
+ export { RadioGroup, RadioItem };
43
+ //# sourceMappingURL=RadioGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { forwardRef, useId } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport { RadioGroupContext, useRadioGroupContext } from './RadioGroup.context';\nimport styles from './RadioGroup.module.css';\nimport { type RadioGroupProps, type RadioItemProps } from './RadioGroup.types';\n\n/**\n * Declaring the constants\n */\n\n/**\n * One choice from a small, always-visible set — the circular sibling of Checkbox with exclusive\n * semantics, built on Radix RadioGroup. The group is one tab stop; arrows move and select in a\n * single gesture (native roving tabindex). Compose with `RadioGroup.Item`.\n */\nconst RadioGroupRoot = forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup({ label, invalid = false, className, children, ...props }, ref) {\n const labelId = useId();\n return (\n <RadioGroupContext.Provider value={{ invalid }}>\n <RadioGroupPrimitive.Root\n ref={ref}\n className={cn(styles.group, className)}\n aria-labelledby={label != null ? labelId : undefined}\n aria-invalid={invalid || undefined}\n {...props}\n >\n {label != null ? (\n <span id={labelId} className={styles.groupLabel}>\n {label}\n </span>\n ) : null}\n {children}\n </RadioGroupPrimitive.Root>\n </RadioGroupContext.Provider>\n );\n});\n\nconst RadioItem = forwardRef<HTMLButtonElement, RadioItemProps>(function RadioItem({ label, description, id, className, disabled, ...props }, ref) {\n const { invalid } = useRadioGroupContext();\n const generatedId = useId();\n const itemId = id ?? generatedId;\n const descriptionId = description != null ? `${itemId}-description` : undefined;\n\n return (\n <div className={cn(styles.item, className)} data-disabled={disabled || undefined}>\n <RadioGroupPrimitive.Item ref={ref} id={itemId} className={styles.circle} disabled={disabled} data-invalid={invalid || undefined} aria-describedby={descriptionId} {...props}>\n <RadioGroupPrimitive.Indicator className={styles.dot} />\n </RadioGroupPrimitive.Item>\n <div className={styles.text}>\n <label htmlFor={itemId} className={styles.label}>\n {label}\n </label>\n {description != null ? (\n <span id={descriptionId} className={styles.description}>\n {description}\n </span>\n ) : null}\n </div>\n </div>\n );\n});\n\n/** Compound RadioGroup: the root plus `.Item`. */\nexport const RadioGroup = Object.assign(RadioGroupRoot, { Item: RadioItem });\n\nexport { RadioItem };\n"],"names":["RadioGroup","RadioItem"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var styles = {"group":"sh-group_YXEnI","groupLabel":"sh-groupLabel_xqi-9","item":"sh-item_W9-K2","circle":"sh-circle_H8l8G","dot":"sh-dot_g5wbC","text":"sh-text_Xs8B9","label":"sh-label_MxI-w","description":"sh-description_8L4Im"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=RadioGroup.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Importing npm packages
3
+ */
4
+ import type * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
5
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
6
+ /**
7
+ * Importing user defined packages
8
+ */
9
+ /**
10
+ * Defining types
11
+ */
12
+ export interface RadioGroupProps extends ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {
13
+ /** Optional group heading (a `<legend>`-style label); omit when wrapped by Form Field. */
14
+ label?: ReactNode;
15
+ /** Presentation-only invalid state: danger border on every unselected circle. */
16
+ invalid?: boolean;
17
+ }
18
+ export interface RadioItemProps extends Omit<ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>, 'children'> {
19
+ /** Visible label; the whole label is a click target. */
20
+ label: ReactNode;
21
+ /** Secondary line beneath the label, linked via `aria-describedby`. */
22
+ description?: ReactNode;
23
+ }
@@ -0,0 +1,3 @@
1
+ export * from './RadioGroup.js';
2
+ export * from './RadioGroup.context.js';
3
+ export * from './RadioGroup.types';
@@ -0,0 +1,8 @@
1
+ import { type RatingProps } from './Rating.types';
2
+ /**
3
+ * A star rating in two modes. Input is a radio group (role="radiogroup" with "1 star"…"n stars"
4
+ * radios — the native one-of-n pattern, form-post compatible): click commits immediately, clicking the
5
+ * current value clears it, arrows move within one focus ring. Display is a single image
6
+ * (role="img" aria-label="Rated 4.3 out of 5") supporting fractional fills — never n separate icons.
7
+ */
8
+ export declare function Rating({ value, defaultValue, onValueChange, max, size, readOnly, disabled, invalid, allowClear, labels, reviewCount, 'aria-label': ariaLabel, }: RatingProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,101 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useState } from 'react';
4
+ import '../../lib/api-request.js';
5
+ import { cn } from '../../lib/cn.js';
6
+ import styles from './Rating.module.css.js';
7
+
8
+ function StarIcon() {
9
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M10 1.5l2.6 5.3 5.9.9-4.2 4.1 1 5.8L10 15l-5.3 2.8 1-5.8L1.5 7.7l5.9-.9L10 1.5Z" }) });
10
+ }
11
+ function Rating({
12
+ value,
13
+ defaultValue = 0,
14
+ onValueChange,
15
+ max = 5,
16
+ size = "md",
17
+ readOnly = false,
18
+ disabled = false,
19
+ invalid = false,
20
+ allowClear = true,
21
+ labels,
22
+ reviewCount,
23
+ "aria-label": ariaLabel
24
+ }) {
25
+ const isControlled = value !== void 0;
26
+ const [internal, setInternal] = useState(defaultValue);
27
+ const current = isControlled ? value : internal;
28
+ const [hover, setHover] = useState(null);
29
+ const stars = Array.from({ length: max }, (_, index) => index + 1);
30
+ if (readOnly) {
31
+ const label = ariaLabel ?? `Rated ${current} out of ${max}${reviewCount != null ? `, ${reviewCount} reviews` : ""}`;
32
+ return /* @__PURE__ */ jsx("div", { className: styles.root, "data-size": size, role: "img", "aria-label": label, children: stars.map((star) => {
33
+ const fill = Math.max(0, Math.min(1, current - (star - 1)));
34
+ return /* @__PURE__ */ jsxs("span", { className: styles.star, "aria-hidden": "true", children: [
35
+ /* @__PURE__ */ jsx("span", { className: styles.outline, children: /* @__PURE__ */ jsx(StarIcon, {}) }),
36
+ /* @__PURE__ */ jsx("span", { className: styles.fill, style: { width: `${fill * 100}%` }, children: /* @__PURE__ */ jsx(StarIcon, {}) })
37
+ ] }, star);
38
+ }) });
39
+ }
40
+ function commit(next) {
41
+ if (!isControlled) setInternal(next);
42
+ onValueChange?.(next);
43
+ }
44
+ function activate(star) {
45
+ if (disabled) return;
46
+ if (star === current && allowClear) commit(0);
47
+ else commit(star);
48
+ }
49
+ function handleKeyDown(event) {
50
+ if (disabled) return;
51
+ if (event.key === "ArrowRight" || event.key === "ArrowUp") {
52
+ event.preventDefault();
53
+ commit(Math.min(max, current + 1));
54
+ } else if (event.key === "ArrowLeft" || event.key === "ArrowDown") {
55
+ event.preventDefault();
56
+ commit(Math.max(0, current - 1));
57
+ }
58
+ }
59
+ const shown = hover ?? current;
60
+ const meaning = labels && shown > 0 ? labels[shown - 1] : void 0;
61
+ return /* @__PURE__ */ jsxs("div", { className: styles.wrap, children: [
62
+ /* @__PURE__ */ jsx(
63
+ "div",
64
+ {
65
+ className: cn(styles.root, styles.input),
66
+ "data-size": size,
67
+ "data-invalid": invalid || void 0,
68
+ "data-disabled": disabled || void 0,
69
+ role: "radiogroup",
70
+ "aria-label": ariaLabel ?? "Rating",
71
+ onKeyDown: handleKeyDown,
72
+ onPointerLeave: () => setHover(null),
73
+ children: stars.map((star) => (
74
+ // biome-ignore lint/a11y/useSemanticElements: a star radio can't be a native <input type="radio">; role="radio" buttons in a role="radiogroup" is the sanctioned pattern
75
+ /* @__PURE__ */ jsx(
76
+ "button",
77
+ {
78
+ type: "button",
79
+ role: "radio",
80
+ "aria-checked": current === star,
81
+ "aria-label": `${star} ${star === 1 ? "star" : "stars"}`,
82
+ className: styles.starButton,
83
+ "data-filled": star <= shown || void 0,
84
+ "data-preview": hover != null && star <= hover || void 0,
85
+ tabIndex: current === star || current === 0 && star === 1 ? 0 : -1,
86
+ disabled,
87
+ onClick: () => activate(star),
88
+ onPointerEnter: () => setHover(star),
89
+ children: /* @__PURE__ */ jsx(StarIcon, {})
90
+ },
91
+ star
92
+ )
93
+ ))
94
+ }
95
+ ),
96
+ labels != null ? /* @__PURE__ */ jsx("span", { className: styles.meaning, children: meaning ?? "" }) : null
97
+ ] });
98
+ }
99
+
100
+ export { Rating };
101
+ //# sourceMappingURL=Rating.js.map