@lablup/ui-common 0.1.0-alpha.9 → 0.2.0-alpha.16

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 (979) hide show
  1. package/NOTICE +62 -0
  2. package/README.md +521 -69
  3. package/astryx/components/AlertModal.doc.mjs +91 -0
  4. package/astryx/components/AlertModal.tsx +3 -0
  5. package/astryx/components/BoardItemTitle.doc.mjs +51 -0
  6. package/astryx/components/BoardItemTitle.tsx +3 -0
  7. package/astryx/components/BooleanToken.doc.mjs +57 -0
  8. package/astryx/components/BooleanToken.tsx +3 -0
  9. package/astryx/components/BulkEditFormItem.doc.mjs +68 -0
  10. package/astryx/components/BulkEditFormItem.tsx +3 -0
  11. package/astryx/components/BulkErrorModal.doc.mjs +75 -0
  12. package/astryx/components/BulkErrorModal.tsx +3 -0
  13. package/astryx/components/ColorPicker.doc.mjs +88 -0
  14. package/astryx/components/ColorPicker.tsx +3 -0
  15. package/astryx/components/ConfirmPopover.doc.mjs +99 -0
  16. package/astryx/components/ConfirmPopover.tsx +3 -0
  17. package/astryx/components/CountBadge.doc.mjs +93 -0
  18. package/astryx/components/CountBadge.tsx +3 -0
  19. package/astryx/components/CountdownBorder.doc.mjs +57 -0
  20. package/astryx/components/CountdownBorder.tsx +3 -0
  21. package/astryx/components/DataGrid.doc.mjs +166 -0
  22. package/astryx/components/DataGrid.tsx +3 -0
  23. package/astryx/components/DeleteConfirmModal.doc.mjs +163 -0
  24. package/astryx/components/DeleteConfirmModal.tsx +3 -0
  25. package/astryx/components/DividedRow.doc.mjs +85 -0
  26. package/astryx/components/DividedRow.tsx +3 -0
  27. package/astryx/components/DoubleBadge.doc.mjs +40 -0
  28. package/astryx/components/DoubleBadge.tsx +3 -0
  29. package/astryx/components/DoubleToken.doc.mjs +38 -0
  30. package/astryx/components/DoubleToken.tsx +3 -0
  31. package/astryx/components/Form.doc.mjs +113 -0
  32. package/astryx/components/Form.tsx +3 -0
  33. package/astryx/components/IconWithTooltip.doc.mjs +57 -0
  34. package/astryx/components/IconWithTooltip.tsx +3 -0
  35. package/astryx/components/ImageWithFallback.doc.mjs +47 -0
  36. package/astryx/components/ImageWithFallback.tsx +3 -0
  37. package/astryx/components/ListBanner.doc.mjs +50 -0
  38. package/astryx/components/ListBanner.tsx +3 -0
  39. package/astryx/components/Modal.doc.mjs +176 -0
  40. package/astryx/components/Modal.tsx +3 -0
  41. package/astryx/components/NotificationItem.doc.mjs +52 -0
  42. package/astryx/components/NotificationItem.tsx +3 -0
  43. package/astryx/components/NotificationStack.doc.mjs +66 -0
  44. package/astryx/components/NotificationStack.tsx +3 -0
  45. package/astryx/components/OverlayScrollbar.doc.mjs +49 -0
  46. package/astryx/components/OverlayScrollbar.tsx +3 -0
  47. package/astryx/components/PageHeader.doc.mjs +94 -0
  48. package/astryx/components/PageHeader.tsx +3 -0
  49. package/astryx/components/PagedSelector.doc.mjs +183 -0
  50. package/astryx/components/PagedSelector.tsx +3 -0
  51. package/astryx/components/ProgressWithLabel.doc.mjs +69 -0
  52. package/astryx/components/ProgressWithLabel.tsx +3 -0
  53. package/astryx/components/SelectionLabel.doc.mjs +55 -0
  54. package/astryx/components/SelectionLabel.tsx +3 -0
  55. package/astryx/components/Statistic.doc.mjs +84 -0
  56. package/astryx/components/Statistic.tsx +3 -0
  57. package/astryx/components/StepNumberInput.doc.mjs +102 -0
  58. package/astryx/components/StepNumberInput.tsx +3 -0
  59. package/astryx/components/TextHighlighter.doc.mjs +47 -0
  60. package/astryx/components/TextHighlighter.tsx +3 -0
  61. package/astryx/components/TokenList.doc.mjs +58 -0
  62. package/astryx/components/TokenList.tsx +3 -0
  63. package/astryx/components/TokenRow.doc.mjs +62 -0
  64. package/astryx/components/TokenRow.tsx +3 -0
  65. package/astryx/components/UncontrolledInput.doc.mjs +68 -0
  66. package/astryx/components/UncontrolledInput.tsx +3 -0
  67. package/astryx/components/UnitGrid.doc.mjs +107 -0
  68. package/astryx/components/UnitGrid.tsx +3 -0
  69. package/astryx/docs/ui-common.doc.mjs +112 -0
  70. package/astryx.integration.mjs +35 -0
  71. package/dist/assets/components/BoardItemTitle/BoardItemTitle.css +2 -0
  72. package/dist/assets/components/BulkErrorModal/BulkErrorModal.css +2 -0
  73. package/dist/assets/components/ColorPicker/ColorPicker.css +2 -0
  74. package/dist/assets/components/CountBadge/CountBadge.css +2 -0
  75. package/dist/assets/components/CountdownBorder/CountdownBorder.css +2 -0
  76. package/dist/assets/components/DataGrid/DataGrid.css +2 -0
  77. package/dist/assets/components/DeleteConfirmModal/DeleteConfirmModal.css +2 -0
  78. package/dist/assets/components/DigitPopIn/DigitPopIn.css +2 -0
  79. package/dist/assets/components/DividedRow/DividedRow.css +2 -0
  80. package/dist/assets/components/DoubleBadge/DoubleBadge.css +2 -0
  81. package/dist/assets/components/DoubleToken/DoubleToken.css +2 -0
  82. package/dist/assets/components/ErrorState/ErrorState.css +2 -1
  83. package/dist/assets/components/Form/FormItemVisual.css +2 -0
  84. package/dist/assets/components/IconWithTooltip/IconWithTooltip.css +2 -0
  85. package/dist/assets/components/ImageWithFallback/ImageWithFallback.css +2 -0
  86. package/dist/assets/components/ListBanner/ListBanner.css +2 -0
  87. package/dist/assets/components/Modal/Modal.css +2 -0
  88. package/dist/assets/components/NotificationItem/NotificationItem.css +2 -0
  89. package/dist/assets/components/NotificationStack/NotificationStack.css +2 -0
  90. package/dist/assets/components/OverlayScrollbar/OverlayScrollbar.css +2 -0
  91. package/dist/assets/components/PageHeader/PageHeader.css +2 -1
  92. package/dist/assets/components/PageLayout/PageLayout.css +2 -1
  93. package/dist/assets/components/PagedSelector/PagedSelector.css +2 -0
  94. package/dist/assets/components/ProgressWithLabel/ProgressWithLabel.css +2 -0
  95. package/dist/assets/components/Skeleton/SkeletonCard.css +2 -1
  96. package/dist/assets/components/Skeleton/SkeletonChart.css +2 -1
  97. package/dist/assets/components/Skeleton/SkeletonRow.css +2 -1
  98. package/dist/assets/components/Skeleton/SkeletonShape.css +2 -0
  99. package/dist/assets/components/Skeleton/SkeletonText.css +2 -1
  100. package/dist/assets/components/SmoothHeight/SmoothHeight.css +2 -1
  101. package/dist/assets/components/StatCard/StatCard.css +2 -1
  102. package/dist/assets/components/Statistic/Statistic.css +2 -0
  103. package/dist/assets/components/StepNumberInput/NumberStepper.css +2 -0
  104. package/dist/assets/components/TextHighlighter/TextHighlighter.css +2 -0
  105. package/dist/assets/components/TokenList/TokenList.css +2 -0
  106. package/dist/assets/components/TokenRow/TokenRow.css +2 -0
  107. package/dist/assets/components/UnitGrid/UnitGrid.css +2 -0
  108. package/dist/astryx/AppShell.d.ts +1 -0
  109. package/dist/astryx/AppShell.js +1 -0
  110. package/dist/astryx/AspectRatio.d.ts +1 -0
  111. package/dist/astryx/AspectRatio.js +1 -0
  112. package/dist/astryx/Avatar.d.ts +1 -0
  113. package/dist/astryx/Avatar.js +1 -0
  114. package/dist/astryx/AvatarGroup.d.ts +1 -0
  115. package/dist/astryx/AvatarGroup.js +1 -0
  116. package/dist/astryx/Badge.d.ts +1 -0
  117. package/dist/astryx/Badge.js +1 -0
  118. package/dist/astryx/Banner.d.ts +1 -0
  119. package/dist/astryx/Banner.js +1 -0
  120. package/dist/astryx/BaseProps.d.ts +1 -0
  121. package/dist/astryx/BaseProps.js +1 -0
  122. package/dist/astryx/Blockquote.d.ts +1 -0
  123. package/dist/astryx/Blockquote.js +1 -0
  124. package/dist/astryx/BottomSheet.d.ts +1 -0
  125. package/dist/astryx/BottomSheet.js +1 -0
  126. package/dist/astryx/Breadcrumbs.d.ts +1 -0
  127. package/dist/astryx/Breadcrumbs.js +1 -0
  128. package/dist/astryx/Button.d.ts +1 -0
  129. package/dist/astryx/Button.js +1 -0
  130. package/dist/astryx/ButtonGroup.d.ts +1 -0
  131. package/dist/astryx/ButtonGroup.js +1 -0
  132. package/dist/astryx/Calendar/utils.d.ts +1 -0
  133. package/dist/astryx/Calendar/utils.js +1 -0
  134. package/dist/astryx/Calendar.d.ts +1 -0
  135. package/dist/astryx/Calendar.js +1 -0
  136. package/dist/astryx/Card.d.ts +1 -0
  137. package/dist/astryx/Card.js +1 -0
  138. package/dist/astryx/Carousel.d.ts +1 -0
  139. package/dist/astryx/Carousel.js +1 -0
  140. package/dist/astryx/Center.d.ts +1 -0
  141. package/dist/astryx/Center.js +1 -0
  142. package/dist/astryx/Chat.d.ts +1 -0
  143. package/dist/astryx/Chat.js +1 -0
  144. package/dist/astryx/CheckboxInput.d.ts +1 -0
  145. package/dist/astryx/CheckboxInput.js +1 -0
  146. package/dist/astryx/CheckboxList.d.ts +1 -0
  147. package/dist/astryx/CheckboxList.js +1 -0
  148. package/dist/astryx/Citation.d.ts +1 -0
  149. package/dist/astryx/Citation.js +1 -0
  150. package/dist/astryx/ClickableCard.d.ts +1 -0
  151. package/dist/astryx/ClickableCard.js +1 -0
  152. package/dist/astryx/Code.d.ts +1 -0
  153. package/dist/astryx/Code.js +1 -0
  154. package/dist/astryx/CodeBlock.d.ts +1 -0
  155. package/dist/astryx/CodeBlock.js +1 -0
  156. package/dist/astryx/Collapsible.d.ts +1 -0
  157. package/dist/astryx/Collapsible.js +1 -0
  158. package/dist/astryx/CommandPalette.d.ts +1 -0
  159. package/dist/astryx/CommandPalette.js +1 -0
  160. package/dist/astryx/ContextMenu.d.ts +1 -0
  161. package/dist/astryx/ContextMenu.js +1 -0
  162. package/dist/astryx/DateInput.d.ts +1 -0
  163. package/dist/astryx/DateInput.js +1 -0
  164. package/dist/astryx/DateRangeInput.d.ts +1 -0
  165. package/dist/astryx/DateRangeInput.js +1 -0
  166. package/dist/astryx/DateTimeInput.d.ts +1 -0
  167. package/dist/astryx/DateTimeInput.js +1 -0
  168. package/dist/astryx/Divider.d.ts +1 -0
  169. package/dist/astryx/Divider.js +1 -0
  170. package/dist/astryx/DropdownMenu.d.ts +1 -0
  171. package/dist/astryx/DropdownMenu.js +1 -0
  172. package/dist/astryx/EmptyState.d.ts +1 -0
  173. package/dist/astryx/EmptyState.js +1 -0
  174. package/dist/astryx/Field.d.ts +1 -0
  175. package/dist/astryx/Field.js +1 -0
  176. package/dist/astryx/FieldStatus.d.ts +1 -0
  177. package/dist/astryx/FieldStatus.js +1 -0
  178. package/dist/astryx/FileInput.d.ts +1 -0
  179. package/dist/astryx/FileInput.js +1 -0
  180. package/dist/astryx/FormLayout.d.ts +1 -0
  181. package/dist/astryx/FormLayout.js +1 -0
  182. package/dist/astryx/Grid.d.ts +1 -0
  183. package/dist/astryx/Grid.js +1 -0
  184. package/dist/astryx/HStack.d.ts +1 -0
  185. package/dist/astryx/HStack.js +1 -0
  186. package/dist/astryx/Heading.d.ts +1 -0
  187. package/dist/astryx/Heading.js +1 -0
  188. package/dist/astryx/HoverCard.d.ts +1 -0
  189. package/dist/astryx/HoverCard.js +1 -0
  190. package/dist/astryx/Icon.d.ts +1 -0
  191. package/dist/astryx/Icon.js +1 -0
  192. package/dist/astryx/IconButton.d.ts +1 -0
  193. package/dist/astryx/IconButton.js +1 -0
  194. package/dist/astryx/Indicator.d.ts +1 -0
  195. package/dist/astryx/Indicator.js +1 -0
  196. package/dist/astryx/InputGroup.d.ts +1 -0
  197. package/dist/astryx/InputGroup.js +1 -0
  198. package/dist/astryx/InteractiveRoleContext.d.ts +1 -0
  199. package/dist/astryx/InteractiveRoleContext.js +1 -0
  200. package/dist/astryx/Item.d.ts +1 -0
  201. package/dist/astryx/Item.js +1 -0
  202. package/dist/astryx/Kbd.d.ts +1 -0
  203. package/dist/astryx/Kbd.js +1 -0
  204. package/dist/astryx/Layer.d.ts +1 -0
  205. package/dist/astryx/Layer.js +1 -0
  206. package/dist/astryx/Layout.d.ts +1 -0
  207. package/dist/astryx/Layout.js +1 -0
  208. package/dist/astryx/Lightbox.d.ts +1 -0
  209. package/dist/astryx/Lightbox.js +1 -0
  210. package/dist/astryx/Link.d.ts +1 -0
  211. package/dist/astryx/Link.js +1 -0
  212. package/dist/astryx/List.d.ts +1 -0
  213. package/dist/astryx/List.js +1 -0
  214. package/dist/astryx/Markdown/parser.d.ts +1 -0
  215. package/dist/astryx/Markdown/parser.js +1 -0
  216. package/dist/astryx/Markdown/plugins.d.ts +1 -0
  217. package/dist/astryx/Markdown/plugins.js +1 -0
  218. package/dist/astryx/Markdown/remark.d.ts +1 -0
  219. package/dist/astryx/Markdown/remark.js +1 -0
  220. package/dist/astryx/Markdown/utils.d.ts +1 -0
  221. package/dist/astryx/Markdown/utils.js +1 -0
  222. package/dist/astryx/Markdown.d.ts +1 -0
  223. package/dist/astryx/Markdown.js +1 -0
  224. package/dist/astryx/MetadataList.d.ts +1 -0
  225. package/dist/astryx/MetadataList.js +1 -0
  226. package/dist/astryx/MobileNav.d.ts +1 -0
  227. package/dist/astryx/MobileNav.js +1 -0
  228. package/dist/astryx/MoreMenu.d.ts +1 -0
  229. package/dist/astryx/MoreMenu.js +1 -0
  230. package/dist/astryx/MultiSelector.d.ts +1 -0
  231. package/dist/astryx/MultiSelector.js +1 -0
  232. package/dist/astryx/NavIcon.d.ts +1 -0
  233. package/dist/astryx/NavIcon.js +1 -0
  234. package/dist/astryx/NavMenu.d.ts +1 -0
  235. package/dist/astryx/NavMenu.js +1 -0
  236. package/dist/astryx/NumberInput.d.ts +1 -0
  237. package/dist/astryx/NumberInput.js +1 -0
  238. package/dist/astryx/Outline.d.ts +1 -0
  239. package/dist/astryx/Outline.js +1 -0
  240. package/dist/astryx/OverflowList.d.ts +1 -0
  241. package/dist/astryx/OverflowList.js +1 -0
  242. package/dist/astryx/Overlay.d.ts +1 -0
  243. package/dist/astryx/Overlay.js +1 -0
  244. package/dist/astryx/Pagination.d.ts +1 -0
  245. package/dist/astryx/Pagination.js +1 -0
  246. package/dist/astryx/Popover.d.ts +1 -0
  247. package/dist/astryx/Popover.js +1 -0
  248. package/dist/astryx/PowerSearch/utils.d.ts +1 -0
  249. package/dist/astryx/PowerSearch/utils.js +1 -0
  250. package/dist/astryx/PowerSearch.d.ts +1 -0
  251. package/dist/astryx/PowerSearch.js +1 -0
  252. package/dist/astryx/ProgressBar.d.ts +1 -0
  253. package/dist/astryx/ProgressBar.js +1 -0
  254. package/dist/astryx/RadioList.d.ts +1 -0
  255. package/dist/astryx/RadioList.js +1 -0
  256. package/dist/astryx/Resizable/utils.d.ts +1 -0
  257. package/dist/astryx/Resizable/utils.js +1 -0
  258. package/dist/astryx/Resizable.d.ts +1 -0
  259. package/dist/astryx/Resizable.js +1 -0
  260. package/dist/astryx/ScrollableArea.d.ts +1 -0
  261. package/dist/astryx/ScrollableArea.js +1 -0
  262. package/dist/astryx/Section.d.ts +1 -0
  263. package/dist/astryx/Section.js +1 -0
  264. package/dist/astryx/SegmentedControl.d.ts +1 -0
  265. package/dist/astryx/SegmentedControl.js +1 -0
  266. package/dist/astryx/SelectableCard.d.ts +1 -0
  267. package/dist/astryx/SelectableCard.js +1 -0
  268. package/dist/astryx/Selector/utils.d.ts +1 -0
  269. package/dist/astryx/Selector/utils.js +1 -0
  270. package/dist/astryx/Selector.d.ts +1 -0
  271. package/dist/astryx/Selector.js +1 -0
  272. package/dist/astryx/SideNav.d.ts +1 -0
  273. package/dist/astryx/SideNav.js +1 -0
  274. package/dist/astryx/SizeContext.d.ts +1 -0
  275. package/dist/astryx/SizeContext.js +1 -0
  276. package/dist/astryx/Skeleton.d.ts +1 -0
  277. package/dist/astryx/Skeleton.js +1 -0
  278. package/dist/astryx/Slider.d.ts +1 -0
  279. package/dist/astryx/Slider.js +1 -0
  280. package/dist/astryx/Spinner.d.ts +1 -0
  281. package/dist/astryx/Spinner.js +1 -0
  282. package/dist/astryx/Stack.d.ts +1 -0
  283. package/dist/astryx/Stack.js +1 -0
  284. package/dist/astryx/StatusDot.d.ts +1 -0
  285. package/dist/astryx/StatusDot.js +1 -0
  286. package/dist/astryx/Stepper.d.ts +1 -0
  287. package/dist/astryx/Stepper.js +1 -0
  288. package/dist/astryx/Switch.d.ts +1 -0
  289. package/dist/astryx/Switch.js +1 -0
  290. package/dist/astryx/TabList.d.ts +1 -0
  291. package/dist/astryx/TabList.js +1 -0
  292. package/dist/astryx/Table/utils.d.ts +1 -0
  293. package/dist/astryx/Table/utils.js +1 -0
  294. package/dist/astryx/Table.d.ts +1 -0
  295. package/dist/astryx/Table.js +1 -0
  296. package/dist/astryx/Text.d.ts +1 -0
  297. package/dist/astryx/Text.js +1 -0
  298. package/dist/astryx/TextArea.d.ts +1 -0
  299. package/dist/astryx/TextArea.js +1 -0
  300. package/dist/astryx/TextInput.d.ts +1 -0
  301. package/dist/astryx/TextInput.js +1 -0
  302. package/dist/astryx/Thumbnail.d.ts +1 -0
  303. package/dist/astryx/Thumbnail.js +1 -0
  304. package/dist/astryx/TimeInput.d.ts +1 -0
  305. package/dist/astryx/TimeInput.js +1 -0
  306. package/dist/astryx/Timer.d.ts +1 -0
  307. package/dist/astryx/Timer.js +1 -0
  308. package/dist/astryx/Timestamp.d.ts +1 -0
  309. package/dist/astryx/Timestamp.js +1 -0
  310. package/dist/astryx/Toast.d.ts +1 -0
  311. package/dist/astryx/Toast.js +1 -0
  312. package/dist/astryx/ToggleButton.d.ts +1 -0
  313. package/dist/astryx/ToggleButton.js +1 -0
  314. package/dist/astryx/Token.d.ts +1 -0
  315. package/dist/astryx/Token.js +1 -0
  316. package/dist/astryx/Tokenizer.d.ts +1 -0
  317. package/dist/astryx/Tokenizer.js +1 -0
  318. package/dist/astryx/Toolbar.d.ts +1 -0
  319. package/dist/astryx/Toolbar.js +1 -0
  320. package/dist/astryx/Tooltip.d.ts +1 -0
  321. package/dist/astryx/Tooltip.js +1 -0
  322. package/dist/astryx/TopNav.d.ts +1 -0
  323. package/dist/astryx/TopNav.js +1 -0
  324. package/dist/astryx/TreeList.d.ts +1 -0
  325. package/dist/astryx/TreeList.js +1 -0
  326. package/dist/astryx/Typeahead/utils.d.ts +1 -0
  327. package/dist/astryx/Typeahead/utils.js +1 -0
  328. package/dist/astryx/Typeahead.d.ts +1 -0
  329. package/dist/astryx/Typeahead.js +1 -0
  330. package/dist/astryx/VStack.d.ts +1 -0
  331. package/dist/astryx/VStack.js +1 -0
  332. package/dist/astryx/VisuallyHidden.d.ts +1 -0
  333. package/dist/astryx/VisuallyHidden.js +1 -0
  334. package/dist/astryx/astryx.css +3 -0
  335. package/dist/astryx/hooks.d.ts +1 -0
  336. package/dist/astryx/hooks.js +1 -0
  337. package/dist/astryx/i18n.d.ts +1 -0
  338. package/dist/astryx/i18n.js +1 -0
  339. package/dist/astryx/lab/lab.css +3 -0
  340. package/dist/astryx/lab.d.ts +6 -0
  341. package/dist/astryx/lab.js +6 -0
  342. package/dist/astryx/naming.d.ts +1 -0
  343. package/dist/astryx/naming.js +1 -0
  344. package/dist/astryx/reset.css +3 -0
  345. package/dist/astryx/tailwind-theme.css +3 -0
  346. package/dist/astryx/theme/neutral/built.d.ts +1 -0
  347. package/dist/astryx/theme/neutral/built.js +1 -0
  348. package/dist/astryx/theme/neutral/theme.css +3 -0
  349. package/dist/astryx/theme/neutral.d.ts +1 -0
  350. package/dist/astryx/theme/neutral.js +1 -0
  351. package/dist/astryx/theme/syntax.d.ts +1 -0
  352. package/dist/astryx/theme/syntax.js +1 -0
  353. package/dist/astryx/theme/tokens.d.ts +1 -0
  354. package/dist/astryx/theme/tokens.js +1 -0
  355. package/dist/astryx/theme/tokens.stylex.d.ts +1 -0
  356. package/dist/astryx/theme/tokens.stylex.js +1 -0
  357. package/dist/astryx/theme.d.ts +1 -0
  358. package/dist/astryx/theme.js +1 -0
  359. package/dist/astryx/utils.d.ts +1 -0
  360. package/dist/astryx/utils.js +1 -0
  361. package/dist/components/AlertModal/AlertModal.d.ts +14 -0
  362. package/dist/components/AlertModal/AlertModal.js +56 -0
  363. package/dist/components/AlertModal/AlertModal.js.map +1 -0
  364. package/dist/components/AlertModal/index.d.ts +2 -0
  365. package/dist/components/AlertModal/index.js +2 -0
  366. package/dist/components/BoardItemTitle/BoardItemTitle.d.ts +15 -0
  367. package/dist/components/BoardItemTitle/BoardItemTitle2.js +42 -0
  368. package/dist/components/BoardItemTitle/BoardItemTitle2.js.map +1 -0
  369. package/dist/components/BoardItemTitle/index.d.ts +2 -0
  370. package/dist/components/BoardItemTitle/index.js +2 -0
  371. package/dist/components/BooleanToken/BooleanToken.d.ts +15 -0
  372. package/dist/components/BooleanToken/BooleanToken.js +19 -0
  373. package/dist/components/BooleanToken/BooleanToken.js.map +1 -0
  374. package/dist/components/BooleanToken/BooleanToken.messages.d.ts +10 -0
  375. package/dist/components/BooleanToken/BooleanToken.messages.js +16 -0
  376. package/dist/components/BooleanToken/BooleanToken.messages.js.map +1 -0
  377. package/dist/components/BooleanToken/index.d.ts +2 -0
  378. package/dist/components/BooleanToken/index.js +2 -0
  379. package/dist/components/BulkEditFormItem/BulkEditFormItem.d.ts +24 -0
  380. package/dist/components/BulkEditFormItem/BulkEditFormItem.js +93 -0
  381. package/dist/components/BulkEditFormItem/BulkEditFormItem.js.map +1 -0
  382. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.d.ts +14 -0
  383. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.js +20 -0
  384. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.js.map +1 -0
  385. package/dist/components/BulkEditFormItem/index.d.ts +2 -0
  386. package/dist/components/BulkEditFormItem/index.js +2 -0
  387. package/dist/components/BulkErrorModal/BulkErrorModal.d.ts +23 -0
  388. package/dist/components/BulkErrorModal/BulkErrorModal.messages.d.ts +10 -0
  389. package/dist/components/BulkErrorModal/BulkErrorModal.messages.js +16 -0
  390. package/dist/components/BulkErrorModal/BulkErrorModal.messages.js.map +1 -0
  391. package/dist/components/BulkErrorModal/BulkErrorModal2.js +55 -0
  392. package/dist/components/BulkErrorModal/BulkErrorModal2.js.map +1 -0
  393. package/dist/components/BulkErrorModal/index.d.ts +2 -0
  394. package/dist/components/BulkErrorModal/index.js +2 -0
  395. package/dist/components/ColorPicker/ColorPicker.d.ts +43 -0
  396. package/dist/components/ColorPicker/ColorPicker.messages.d.ts +18 -0
  397. package/dist/components/ColorPicker/ColorPicker.messages.js +24 -0
  398. package/dist/components/ColorPicker/ColorPicker.messages.js.map +1 -0
  399. package/dist/components/ColorPicker/ColorPicker2.js +117 -0
  400. package/dist/components/ColorPicker/ColorPicker2.js.map +1 -0
  401. package/dist/components/ColorPicker/index.d.ts +2 -0
  402. package/dist/components/ColorPicker/index.js +2 -0
  403. package/dist/components/ConfirmPopover/ConfirmPopover.d.ts +35 -0
  404. package/dist/components/ConfirmPopover/ConfirmPopover.js +75 -0
  405. package/dist/components/ConfirmPopover/ConfirmPopover.js.map +1 -0
  406. package/dist/components/ConfirmPopover/index.d.ts +2 -0
  407. package/dist/components/ConfirmPopover/index.js +2 -0
  408. package/dist/components/CountBadge/CountBadge.d.ts +24 -0
  409. package/dist/components/CountBadge/CountBadge2.js +35 -0
  410. package/dist/components/CountBadge/CountBadge2.js.map +1 -0
  411. package/dist/components/CountBadge/index.d.ts +2 -0
  412. package/dist/components/CountBadge/index.js +2 -0
  413. package/dist/components/CountdownBorder/CountdownBorder.d.ts +22 -0
  414. package/dist/components/CountdownBorder/CountdownBorder2.js +63 -0
  415. package/dist/components/CountdownBorder/CountdownBorder2.js.map +1 -0
  416. package/dist/components/CountdownBorder/index.d.ts +2 -0
  417. package/dist/components/CountdownBorder/index.js +2 -0
  418. package/dist/components/DataGrid/DataGrid.d.ts +212 -0
  419. package/dist/components/DataGrid/DataGrid.messages.d.ts +70 -0
  420. package/dist/components/DataGrid/DataGrid.messages.js +76 -0
  421. package/dist/components/DataGrid/DataGrid.messages.js.map +1 -0
  422. package/dist/components/DataGrid/DataGrid2.js +447 -0
  423. package/dist/components/DataGrid/DataGrid2.js.map +1 -0
  424. package/dist/components/DataGrid/DataGridExportModal.d.ts +30 -0
  425. package/dist/components/DataGrid/DataGridExportModal.js +125 -0
  426. package/dist/components/DataGrid/DataGridExportModal.js.map +1 -0
  427. package/dist/components/DataGrid/DataGridSettingsModal.d.ts +36 -0
  428. package/dist/components/DataGrid/DataGridSettingsModal.js +177 -0
  429. package/dist/components/DataGrid/DataGridSettingsModal.js.map +1 -0
  430. package/dist/components/DataGrid/index.d.ts +6 -0
  431. package/dist/components/DataGrid/index.js +4 -0
  432. package/dist/components/DataGrid/nodeToPlainText.d.ts +6 -0
  433. package/dist/components/DataGrid/nodeToPlainText.js +9 -0
  434. package/dist/components/DataGrid/nodeToPlainText.js.map +1 -0
  435. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.d.ts +78 -0
  436. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.d.ts +30 -0
  437. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.js +36 -0
  438. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.js.map +1 -0
  439. package/dist/components/DeleteConfirmModal/DeleteConfirmModal2.js +102 -0
  440. package/dist/components/DeleteConfirmModal/DeleteConfirmModal2.js.map +1 -0
  441. package/dist/components/DeleteConfirmModal/index.d.ts +2 -0
  442. package/dist/components/DeleteConfirmModal/index.js +2 -0
  443. package/dist/components/DigitPopIn/DigitPopIn.d.ts +8 -0
  444. package/dist/components/DigitPopIn/DigitPopIn2.js +30 -0
  445. package/dist/components/DigitPopIn/DigitPopIn2.js.map +1 -0
  446. package/dist/components/DigitPopIn/index.d.ts +2 -0
  447. package/dist/components/DigitPopIn/index.js +2 -0
  448. package/dist/components/DividedRow/DividedRow.d.ts +27 -0
  449. package/dist/components/DividedRow/DividedRow2.js +63 -0
  450. package/dist/components/DividedRow/DividedRow2.js.map +1 -0
  451. package/dist/components/DividedRow/index.d.ts +2 -0
  452. package/dist/components/DividedRow/index.js +2 -0
  453. package/dist/components/DoubleBadge/DoubleBadge.d.ts +14 -0
  454. package/dist/components/DoubleBadge/DoubleBadge2.js +28 -0
  455. package/dist/components/DoubleBadge/DoubleBadge2.js.map +1 -0
  456. package/dist/components/DoubleBadge/index.d.ts +2 -0
  457. package/dist/components/DoubleBadge/index.js +2 -0
  458. package/dist/components/DoubleToken/DoubleToken.d.ts +24 -0
  459. package/dist/components/DoubleToken/DoubleToken2.js +38 -0
  460. package/dist/components/DoubleToken/DoubleToken2.js.map +1 -0
  461. package/dist/components/DoubleToken/index.d.ts +2 -0
  462. package/dist/components/DoubleToken/index.js +2 -0
  463. package/dist/components/ErrorState/ErrorState.d.ts +7 -16
  464. package/dist/components/ErrorState/ErrorState2.js +33 -33
  465. package/dist/components/ErrorState/ErrorState2.js.map +1 -1
  466. package/dist/components/Form/ErrorList.d.ts +13 -0
  467. package/dist/components/Form/ErrorList.js +21 -0
  468. package/dist/components/Form/ErrorList.js.map +1 -0
  469. package/dist/components/Form/Field.d.ts +88 -0
  470. package/dist/components/Form/Field.js +212 -0
  471. package/dist/components/Form/Field.js.map +1 -0
  472. package/dist/components/Form/Form.d.ts +70 -0
  473. package/dist/components/Form/Form.js +130 -0
  474. package/dist/components/Form/Form.js.map +1 -0
  475. package/dist/components/Form/Form.messages.d.ts +96 -0
  476. package/dist/components/Form/Form.messages.js +96 -0
  477. package/dist/components/Form/Form.messages.js.map +1 -0
  478. package/dist/components/Form/FormConfigProvider.d.ts +20 -0
  479. package/dist/components/Form/FormConfigProvider.js +31 -0
  480. package/dist/components/Form/FormConfigProvider.js.map +1 -0
  481. package/dist/components/Form/FormItem.d.ts +56 -0
  482. package/dist/components/Form/FormItem.js +164 -0
  483. package/dist/components/Form/FormItem.js.map +1 -0
  484. package/dist/components/Form/FormItemVisual.d.ts +56 -0
  485. package/dist/components/Form/FormItemVisual2.js +117 -0
  486. package/dist/components/Form/FormItemVisual2.js.map +1 -0
  487. package/dist/components/Form/FormStore.d.ts +109 -0
  488. package/dist/components/Form/FormStore.js +494 -0
  489. package/dist/components/Form/FormStore.js.map +1 -0
  490. package/dist/components/Form/List.d.ts +22 -0
  491. package/dist/components/Form/List.js +65 -0
  492. package/dist/components/Form/List.js.map +1 -0
  493. package/dist/components/Form/context.d.ts +91 -0
  494. package/dist/components/Form/context.js +34 -0
  495. package/dist/components/Form/context.js.map +1 -0
  496. package/dist/components/Form/feedbackIcons.d.ts +13 -0
  497. package/dist/components/Form/feedbackIcons.js +45 -0
  498. package/dist/components/Form/feedbackIcons.js.map +1 -0
  499. package/dist/components/Form/index.d.ts +30 -0
  500. package/dist/components/Form/index.js +18 -0
  501. package/dist/components/Form/index.js.map +1 -0
  502. package/dist/components/Form/interface.d.ts +212 -0
  503. package/dist/components/Form/isEqual.d.ts +1 -0
  504. package/dist/components/Form/isEqual.js +61 -0
  505. package/dist/components/Form/isEqual.js.map +1 -0
  506. package/dist/components/Form/messages.d.ts +15 -0
  507. package/dist/components/Form/messages.js +52 -0
  508. package/dist/components/Form/messages.js.map +1 -0
  509. package/dist/components/Form/namePath.d.ts +78 -0
  510. package/dist/components/Form/namePath.js +120 -0
  511. package/dist/components/Form/namePath.js.map +1 -0
  512. package/dist/components/Form/useWatch.d.ts +11 -0
  513. package/dist/components/Form/useWatch.js +43 -0
  514. package/dist/components/Form/useWatch.js.map +1 -0
  515. package/dist/components/Form/validate.d.ts +16 -0
  516. package/dist/components/Form/validate.js +214 -0
  517. package/dist/components/Form/validate.js.map +1 -0
  518. package/dist/components/IconWithTooltip/IconWithTooltip.d.ts +19 -0
  519. package/dist/components/IconWithTooltip/IconWithTooltip2.js +38 -0
  520. package/dist/components/IconWithTooltip/IconWithTooltip2.js.map +1 -0
  521. package/dist/components/IconWithTooltip/accessibleLabel.d.ts +2 -0
  522. package/dist/components/IconWithTooltip/accessibleLabel.js +33 -0
  523. package/dist/components/IconWithTooltip/accessibleLabel.js.map +1 -0
  524. package/dist/components/IconWithTooltip/index.d.ts +2 -0
  525. package/dist/components/IconWithTooltip/index.js +2 -0
  526. package/dist/components/ImageWithFallback/ImageWithFallback.d.ts +11 -0
  527. package/dist/components/ImageWithFallback/ImageWithFallback2.js +28 -0
  528. package/dist/components/ImageWithFallback/ImageWithFallback2.js.map +1 -0
  529. package/dist/components/ImageWithFallback/index.d.ts +2 -0
  530. package/dist/components/ImageWithFallback/index.js +2 -0
  531. package/dist/components/ListBanner/ListBanner.d.ts +17 -0
  532. package/dist/components/ListBanner/ListBanner2.js +27 -0
  533. package/dist/components/ListBanner/ListBanner2.js.map +1 -0
  534. package/dist/components/ListBanner/index.d.ts +2 -0
  535. package/dist/components/ListBanner/index.js +2 -0
  536. package/dist/components/Modal/Modal.d.ts +65 -0
  537. package/dist/components/Modal/Modal2.js +226 -0
  538. package/dist/components/Modal/Modal2.js.map +1 -0
  539. package/dist/components/Modal/index.d.ts +15 -0
  540. package/dist/components/Modal/index.js +4 -0
  541. package/dist/components/Modal/modalStack.d.ts +65 -0
  542. package/dist/components/Modal/modalStack.js +81 -0
  543. package/dist/components/Modal/modalStack.js.map +1 -0
  544. package/dist/components/NotificationItem/NotificationItem.d.ts +14 -0
  545. package/dist/components/NotificationItem/NotificationItem2.js +40 -0
  546. package/dist/components/NotificationItem/NotificationItem2.js.map +1 -0
  547. package/dist/components/NotificationItem/index.d.ts +2 -0
  548. package/dist/components/NotificationItem/index.js +2 -0
  549. package/dist/components/NotificationStack/NotificationStack.d.ts +56 -0
  550. package/dist/components/NotificationStack/NotificationStack.messages.d.ts +6 -0
  551. package/dist/components/NotificationStack/NotificationStack.messages.js +10 -0
  552. package/dist/components/NotificationStack/NotificationStack.messages.js.map +1 -0
  553. package/dist/components/NotificationStack/NotificationStack2.js +154 -0
  554. package/dist/components/NotificationStack/NotificationStack2.js.map +1 -0
  555. package/dist/components/NotificationStack/index.d.ts +2 -0
  556. package/dist/components/NotificationStack/index.js +2 -0
  557. package/dist/components/OverlayScrollbar/OverlayScrollbar.d.ts +13 -0
  558. package/dist/components/OverlayScrollbar/OverlayScrollbar2.js +69 -0
  559. package/dist/components/OverlayScrollbar/OverlayScrollbar2.js.map +1 -0
  560. package/dist/components/OverlayScrollbar/index.d.ts +2 -0
  561. package/dist/components/OverlayScrollbar/index.js +2 -0
  562. package/dist/components/PageHeader/PageHeader.d.ts +24 -8
  563. package/dist/components/PageHeader/PageHeader.messages.d.ts +6 -0
  564. package/dist/components/PageHeader/PageHeader.messages.js +10 -0
  565. package/dist/components/PageHeader/PageHeader.messages.js.map +1 -0
  566. package/dist/components/PageHeader/PageHeader2.js +57 -30
  567. package/dist/components/PageHeader/PageHeader2.js.map +1 -1
  568. package/dist/components/PageLayout/PageLayout2.js +2 -2
  569. package/dist/components/PageLayout/PageLayout2.js.map +1 -1
  570. package/dist/components/PagedSelector/PagedSelector.d.ts +107 -0
  571. package/dist/components/PagedSelector/PagedSelector.messages.d.ts +30 -0
  572. package/dist/components/PagedSelector/PagedSelector.messages.js +36 -0
  573. package/dist/components/PagedSelector/PagedSelector.messages.js.map +1 -0
  574. package/dist/components/PagedSelector/PagedSelector2.js +220 -0
  575. package/dist/components/PagedSelector/PagedSelector2.js.map +1 -0
  576. package/dist/components/PagedSelector/PanelSearchInput.d.ts +22 -0
  577. package/dist/components/PagedSelector/PanelSearchInput.js +95 -0
  578. package/dist/components/PagedSelector/PanelSearchInput.js.map +1 -0
  579. package/dist/components/PagedSelector/index.d.ts +2 -0
  580. package/dist/components/PagedSelector/index.js +2 -0
  581. package/dist/components/ProgressWithLabel/ProgressWithLabel.d.ts +26 -0
  582. package/dist/components/ProgressWithLabel/ProgressWithLabel2.js +44 -0
  583. package/dist/components/ProgressWithLabel/ProgressWithLabel2.js.map +1 -0
  584. package/dist/components/ProgressWithLabel/index.d.ts +2 -0
  585. package/dist/components/ProgressWithLabel/index.js +2 -0
  586. package/dist/components/SelectionLabel/SelectionLabel.d.ts +23 -0
  587. package/dist/components/SelectionLabel/SelectionLabel.js +29 -0
  588. package/dist/components/SelectionLabel/SelectionLabel.js.map +1 -0
  589. package/dist/components/SelectionLabel/SelectionLabel.messages.d.ts +10 -0
  590. package/dist/components/SelectionLabel/SelectionLabel.messages.js +16 -0
  591. package/dist/components/SelectionLabel/SelectionLabel.messages.js.map +1 -0
  592. package/dist/components/SelectionLabel/index.d.ts +2 -0
  593. package/dist/components/SelectionLabel/index.js +2 -0
  594. package/dist/components/Skeleton/Skeleton.messages.d.ts +18 -0
  595. package/dist/components/Skeleton/Skeleton.messages.js +24 -0
  596. package/dist/components/Skeleton/Skeleton.messages.js.map +1 -0
  597. package/dist/components/Skeleton/SkeletonCard.d.ts +4 -9
  598. package/dist/components/Skeleton/SkeletonCard2.js +53 -53
  599. package/dist/components/Skeleton/SkeletonCard2.js.map +1 -1
  600. package/dist/components/Skeleton/SkeletonChart.d.ts +5 -11
  601. package/dist/components/Skeleton/SkeletonChart2.js +51 -45
  602. package/dist/components/Skeleton/SkeletonChart2.js.map +1 -1
  603. package/dist/components/Skeleton/SkeletonRow.d.ts +5 -10
  604. package/dist/components/Skeleton/SkeletonRow2.js +35 -34
  605. package/dist/components/Skeleton/SkeletonRow2.js.map +1 -1
  606. package/dist/components/Skeleton/SkeletonShape.d.ts +10 -0
  607. package/dist/components/Skeleton/SkeletonShape2.js +23 -0
  608. package/dist/components/Skeleton/SkeletonShape2.js.map +1 -0
  609. package/dist/components/Skeleton/SkeletonText.d.ts +4 -9
  610. package/dist/components/Skeleton/SkeletonText2.js +22 -17
  611. package/dist/components/Skeleton/SkeletonText2.js.map +1 -1
  612. package/dist/components/Skeleton/index.d.ts +3 -5
  613. package/dist/components/Skeleton/index.js +4 -5
  614. package/dist/components/SmoothHeight/SmoothHeight2.js +2 -2
  615. package/dist/components/SmoothHeight/SmoothHeight2.js.map +1 -1
  616. package/dist/components/StatCard/StatCard.d.ts +28 -16
  617. package/dist/components/StatCard/StatCard2.js +96 -89
  618. package/dist/components/StatCard/StatCard2.js.map +1 -1
  619. package/dist/components/StatCard/index.d.ts +1 -1
  620. package/dist/components/Statistic/Statistic.d.ts +30 -0
  621. package/dist/components/Statistic/Statistic.messages.d.ts +6 -0
  622. package/dist/components/Statistic/Statistic.messages.js +10 -0
  623. package/dist/components/Statistic/Statistic.messages.js.map +1 -0
  624. package/dist/components/Statistic/Statistic2.js +75 -0
  625. package/dist/components/Statistic/Statistic2.js.map +1 -0
  626. package/dist/components/Statistic/index.d.ts +2 -0
  627. package/dist/components/Statistic/index.js +2 -0
  628. package/dist/components/StepNumberInput/NumberStepper.d.ts +29 -0
  629. package/dist/components/StepNumberInput/NumberStepper.messages.d.ts +10 -0
  630. package/dist/components/StepNumberInput/NumberStepper.messages.js +16 -0
  631. package/dist/components/StepNumberInput/NumberStepper.messages.js.map +1 -0
  632. package/dist/components/StepNumberInput/NumberStepper2.js +50 -0
  633. package/dist/components/StepNumberInput/NumberStepper2.js.map +1 -0
  634. package/dist/components/StepNumberInput/StepNumberInput.d.ts +33 -0
  635. package/dist/components/StepNumberInput/StepNumberInput.js +48 -0
  636. package/dist/components/StepNumberInput/StepNumberInput.js.map +1 -0
  637. package/dist/components/StepNumberInput/index.d.ts +4 -0
  638. package/dist/components/StepNumberInput/index.js +3 -0
  639. package/dist/components/TextHighlighter/TextHighlighter.d.ts +14 -0
  640. package/dist/components/TextHighlighter/TextHighlighter2.js +29 -0
  641. package/dist/components/TextHighlighter/TextHighlighter2.js.map +1 -0
  642. package/dist/components/TextHighlighter/index.d.ts +2 -0
  643. package/dist/components/TextHighlighter/index.js +2 -0
  644. package/dist/components/TokenList/TokenList.d.ts +18 -0
  645. package/dist/components/TokenList/TokenList2.js +55 -0
  646. package/dist/components/TokenList/TokenList2.js.map +1 -0
  647. package/dist/components/TokenList/index.d.ts +2 -0
  648. package/dist/components/TokenList/index.js +2 -0
  649. package/dist/components/TokenRow/TokenRow.d.ts +27 -0
  650. package/dist/components/TokenRow/TokenRow.messages.d.ts +6 -0
  651. package/dist/components/TokenRow/TokenRow.messages.js +10 -0
  652. package/dist/components/TokenRow/TokenRow.messages.js.map +1 -0
  653. package/dist/components/TokenRow/TokenRow2.js +29 -0
  654. package/dist/components/TokenRow/TokenRow2.js.map +1 -0
  655. package/dist/components/TokenRow/index.d.ts +2 -0
  656. package/dist/components/TokenRow/index.js +2 -0
  657. package/dist/components/UncontrolledInput/UncontrolledInput.d.ts +29 -0
  658. package/dist/components/UncontrolledInput/UncontrolledInput.js +49 -0
  659. package/dist/components/UncontrolledInput/UncontrolledInput.js.map +1 -0
  660. package/dist/components/UncontrolledInput/UncontrolledInput.messages.d.ts +6 -0
  661. package/dist/components/UncontrolledInput/UncontrolledInput.messages.js +10 -0
  662. package/dist/components/UncontrolledInput/UncontrolledInput.messages.js.map +1 -0
  663. package/dist/components/UncontrolledInput/index.d.ts +2 -0
  664. package/dist/components/UncontrolledInput/index.js +2 -0
  665. package/dist/components/UnitGrid/UnitGrid.d.ts +56 -0
  666. package/dist/components/UnitGrid/UnitGrid.geometry.d.ts +102 -0
  667. package/dist/components/UnitGrid/UnitGrid.geometry.js +172 -0
  668. package/dist/components/UnitGrid/UnitGrid.geometry.js.map +1 -0
  669. package/dist/components/UnitGrid/UnitGrid.messages.d.ts +14 -0
  670. package/dist/components/UnitGrid/UnitGrid.messages.js +20 -0
  671. package/dist/components/UnitGrid/UnitGrid.messages.js.map +1 -0
  672. package/dist/components/UnitGrid/UnitGrid2.js +393 -0
  673. package/dist/components/UnitGrid/UnitGrid2.js.map +1 -0
  674. package/dist/components/UnitGrid/UnitGridSkeleton.d.ts +9 -0
  675. package/dist/components/UnitGrid/UnitGridSkeleton.js +73 -0
  676. package/dist/components/UnitGrid/UnitGridSkeleton.js.map +1 -0
  677. package/dist/components/UnitGrid/index.d.ts +4 -0
  678. package/dist/components/UnitGrid/index.js +3 -0
  679. package/dist/forks/ComplexSelector/ComplexSelector.d.ts +144 -0
  680. package/dist/forks/ComplexSelector/ComplexSelector.js +157 -0
  681. package/dist/forks/ComplexSelector/ComplexSelector.js.map +1 -0
  682. package/dist/forks/ComplexSelector/ComplexSelector.styles.d.ts +129 -0
  683. package/dist/forks/ComplexSelector/ComplexSelector.styles.js +133 -0
  684. package/dist/forks/ComplexSelector/ComplexSelector.styles.js.map +1 -0
  685. package/dist/forks/ComplexSelector/index.d.ts +7 -0
  686. package/dist/forks/ComplexSelector/index.js +2 -0
  687. package/dist/forks/Drawer/Drawer.d.ts +109 -0
  688. package/dist/forks/Drawer/Drawer.js +76 -0
  689. package/dist/forks/Drawer/Drawer.js.map +1 -0
  690. package/dist/forks/Drawer/Drawer.styles.d.ts +106 -0
  691. package/dist/forks/Drawer/Drawer.styles.js +104 -0
  692. package/dist/forks/Drawer/Drawer.styles.js.map +1 -0
  693. package/dist/forks/Drawer/index.d.ts +6 -0
  694. package/dist/forks/Drawer/index.js +2 -0
  695. package/dist/forks/Drawer/useDrawerDialogPresence.d.ts +20 -0
  696. package/dist/forks/Drawer/useDrawerDialogPresence.js +83 -0
  697. package/dist/forks/Drawer/useDrawerDialogPresence.js.map +1 -0
  698. package/dist/forks/Tour/Tour.d.ts +58 -0
  699. package/dist/forks/Tour/Tour.js +55 -0
  700. package/dist/forks/Tour/Tour.js.map +1 -0
  701. package/dist/forks/Tour/TourContext.d.ts +37 -0
  702. package/dist/forks/Tour/TourContext.js +8 -0
  703. package/dist/forks/Tour/TourContext.js.map +1 -0
  704. package/dist/forks/Tour/TourStep.d.ts +43 -0
  705. package/dist/forks/Tour/TourStep.js +134 -0
  706. package/dist/forks/Tour/TourStep.js.map +1 -0
  707. package/dist/forks/Tour/TourStep.styles.d.ts +23 -0
  708. package/dist/forks/Tour/TourStep.styles.js +28 -0
  709. package/dist/forks/Tour/TourStep.styles.js.map +1 -0
  710. package/dist/forks/Tour/index.d.ts +11 -0
  711. package/dist/forks/Tour/index.js +4 -0
  712. package/dist/forks/Tour/useTour.d.ts +26 -0
  713. package/dist/forks/Tour/useTour.js +20 -0
  714. package/dist/forks/Tour/useTour.js.map +1 -0
  715. package/dist/forks/compiled.d.ts +5 -0
  716. package/dist/forks/compiled.js +8 -0
  717. package/dist/forks/compiled.js.map +1 -0
  718. package/dist/i18n/catalog.d.ts +12 -0
  719. package/dist/i18n/catalog.js +46 -0
  720. package/dist/i18n/catalog.js.map +1 -0
  721. package/dist/i18n/common.messages.d.ts +31 -0
  722. package/dist/i18n/common.messages.js +32 -0
  723. package/dist/i18n/common.messages.js.map +1 -0
  724. package/dist/i18n/index.d.ts +21 -0
  725. package/dist/i18n/index.js +3 -0
  726. package/dist/i18n/locales/de-DE.js +331 -0
  727. package/dist/i18n/locales/de-DE.js.map +1 -0
  728. package/dist/i18n/locales/el-GR.js +331 -0
  729. package/dist/i18n/locales/el-GR.js.map +1 -0
  730. package/dist/i18n/locales/es-ES.js +331 -0
  731. package/dist/i18n/locales/es-ES.js.map +1 -0
  732. package/dist/i18n/locales/fi-FI.js +331 -0
  733. package/dist/i18n/locales/fi-FI.js.map +1 -0
  734. package/dist/i18n/locales/fr-FR.js +331 -0
  735. package/dist/i18n/locales/fr-FR.js.map +1 -0
  736. package/dist/i18n/locales/id-ID.js +331 -0
  737. package/dist/i18n/locales/id-ID.js.map +1 -0
  738. package/dist/i18n/locales/it-IT.js +331 -0
  739. package/dist/i18n/locales/it-IT.js.map +1 -0
  740. package/dist/i18n/locales/ja-JP.js +351 -0
  741. package/dist/i18n/locales/ja-JP.js.map +1 -0
  742. package/dist/i18n/locales/ko-KR.js +351 -0
  743. package/dist/i18n/locales/ko-KR.js.map +1 -0
  744. package/dist/i18n/locales/mn-MN.js +327 -0
  745. package/dist/i18n/locales/mn-MN.js.map +1 -0
  746. package/dist/i18n/locales/ms-MY.js +331 -0
  747. package/dist/i18n/locales/ms-MY.js.map +1 -0
  748. package/dist/i18n/locales/pl-PL.js +331 -0
  749. package/dist/i18n/locales/pl-PL.js.map +1 -0
  750. package/dist/i18n/locales/pt-BR.js +331 -0
  751. package/dist/i18n/locales/pt-BR.js.map +1 -0
  752. package/dist/i18n/locales/pt-PT.js +331 -0
  753. package/dist/i18n/locales/pt-PT.js.map +1 -0
  754. package/dist/i18n/locales/ru-RU.js +331 -0
  755. package/dist/i18n/locales/ru-RU.js.map +1 -0
  756. package/dist/i18n/locales/th-TH.js +331 -0
  757. package/dist/i18n/locales/th-TH.js.map +1 -0
  758. package/dist/i18n/locales/tr-TR.js +331 -0
  759. package/dist/i18n/locales/tr-TR.js.map +1 -0
  760. package/dist/i18n/locales/vi-VN.js +331 -0
  761. package/dist/i18n/locales/vi-VN.js.map +1 -0
  762. package/dist/i18n/locales/zh-CN.js +331 -0
  763. package/dist/i18n/locales/zh-CN.js.map +1 -0
  764. package/dist/i18n/locales/zh-TW.js +331 -0
  765. package/dist/i18n/locales/zh-TW.js.map +1 -0
  766. package/dist/i18n/messages.d.ts +13 -0
  767. package/dist/i18n/messages.js +63 -0
  768. package/dist/i18n/messages.js.map +1 -0
  769. package/dist/i18n/translateWithNodes.d.ts +3 -0
  770. package/dist/i18n/translateWithNodes.js +14 -0
  771. package/dist/i18n/translateWithNodes.js.map +1 -0
  772. package/dist/i18n/useUicTranslator.d.ts +5 -0
  773. package/dist/i18n/useUicTranslator.js +38 -0
  774. package/dist/i18n/useUicTranslator.js.map +1 -0
  775. package/dist/index.d.ts +101 -27
  776. package/dist/index.js +63 -23
  777. package/dist/instance.d.ts +31 -0
  778. package/dist/instance.js +33 -0
  779. package/dist/instance.js.map +1 -0
  780. package/dist/legacy-tokens.css +177 -0
  781. package/dist/locales/af-ZA.generated.d.ts +8 -0
  782. package/dist/locales/af-ZA.generated.js +381 -0
  783. package/dist/locales/af-ZA.json +1483 -0
  784. package/dist/locales/ar-SA.generated.d.ts +8 -0
  785. package/dist/locales/ar-SA.generated.js +381 -0
  786. package/dist/locales/ar-SA.json +1483 -0
  787. package/dist/locales/ca-ES.generated.d.ts +8 -0
  788. package/dist/locales/ca-ES.generated.js +381 -0
  789. package/dist/locales/ca-ES.json +1483 -0
  790. package/dist/locales/cs-CZ.generated.d.ts +8 -0
  791. package/dist/locales/cs-CZ.generated.js +381 -0
  792. package/dist/locales/cs-CZ.json +1483 -0
  793. package/dist/locales/da-DK.generated.d.ts +8 -0
  794. package/dist/locales/da-DK.generated.js +381 -0
  795. package/dist/locales/da-DK.json +1483 -0
  796. package/dist/locales/de-DE.generated.d.ts +8 -0
  797. package/dist/locales/de-DE.generated.js +381 -0
  798. package/dist/locales/de-DE.json +1483 -0
  799. package/dist/locales/el-GR.generated.d.ts +8 -0
  800. package/dist/locales/el-GR.generated.js +381 -0
  801. package/dist/locales/el-GR.json +1483 -0
  802. package/dist/locales/en.generated.d.ts +8 -0
  803. package/dist/locales/en.generated.js +385 -0
  804. package/dist/locales/en.json +1498 -0
  805. package/dist/locales/es-ES.generated.d.ts +8 -0
  806. package/dist/locales/es-ES.generated.js +381 -0
  807. package/dist/locales/es-ES.json +1483 -0
  808. package/dist/locales/fi-FI.generated.d.ts +8 -0
  809. package/dist/locales/fi-FI.generated.js +381 -0
  810. package/dist/locales/fi-FI.json +1483 -0
  811. package/dist/locales/fr-FR.generated.d.ts +8 -0
  812. package/dist/locales/fr-FR.generated.js +381 -0
  813. package/dist/locales/fr-FR.json +1483 -0
  814. package/dist/locales/he-IL.generated.d.ts +8 -0
  815. package/dist/locales/he-IL.generated.js +381 -0
  816. package/dist/locales/he-IL.json +1483 -0
  817. package/dist/locales/hu-HU.generated.d.ts +8 -0
  818. package/dist/locales/hu-HU.generated.js +381 -0
  819. package/dist/locales/hu-HU.json +1483 -0
  820. package/dist/locales/it-IT.generated.d.ts +8 -0
  821. package/dist/locales/it-IT.generated.js +381 -0
  822. package/dist/locales/it-IT.json +1483 -0
  823. package/dist/locales/ja-JP.generated.d.ts +8 -0
  824. package/dist/locales/ja-JP.generated.js +381 -0
  825. package/dist/locales/ja-JP.json +1483 -0
  826. package/dist/locales/ko-KR.generated.d.ts +8 -0
  827. package/dist/locales/ko-KR.generated.js +381 -0
  828. package/dist/locales/ko-KR.json +1483 -0
  829. package/dist/locales/nl-NL.generated.d.ts +8 -0
  830. package/dist/locales/nl-NL.generated.js +381 -0
  831. package/dist/locales/nl-NL.json +1483 -0
  832. package/dist/locales/no-NO.generated.d.ts +8 -0
  833. package/dist/locales/no-NO.generated.js +381 -0
  834. package/dist/locales/no-NO.json +1483 -0
  835. package/dist/locales/pl-PL.generated.d.ts +8 -0
  836. package/dist/locales/pl-PL.generated.js +381 -0
  837. package/dist/locales/pl-PL.json +1483 -0
  838. package/dist/locales/pseudo.generated.d.ts +8 -0
  839. package/dist/locales/pseudo.generated.js +385 -0
  840. package/dist/locales/pseudo.json +1124 -0
  841. package/dist/locales/pt-BR.generated.d.ts +8 -0
  842. package/dist/locales/pt-BR.generated.js +381 -0
  843. package/dist/locales/pt-BR.json +1483 -0
  844. package/dist/locales/pt-PT.generated.d.ts +8 -0
  845. package/dist/locales/pt-PT.generated.js +381 -0
  846. package/dist/locales/pt-PT.json +1483 -0
  847. package/dist/locales/ro-RO.generated.d.ts +8 -0
  848. package/dist/locales/ro-RO.generated.js +381 -0
  849. package/dist/locales/ro-RO.json +1483 -0
  850. package/dist/locales/ru-RU.generated.d.ts +8 -0
  851. package/dist/locales/ru-RU.generated.js +381 -0
  852. package/dist/locales/ru-RU.json +1483 -0
  853. package/dist/locales/sr-SP.generated.d.ts +8 -0
  854. package/dist/locales/sr-SP.generated.js +381 -0
  855. package/dist/locales/sr-SP.json +1483 -0
  856. package/dist/locales/sv-SE.generated.d.ts +8 -0
  857. package/dist/locales/sv-SE.generated.js +381 -0
  858. package/dist/locales/sv-SE.json +1483 -0
  859. package/dist/locales/tr-TR.generated.d.ts +8 -0
  860. package/dist/locales/tr-TR.generated.js +381 -0
  861. package/dist/locales/tr-TR.json +1483 -0
  862. package/dist/locales/uk-UA.generated.d.ts +8 -0
  863. package/dist/locales/uk-UA.generated.js +381 -0
  864. package/dist/locales/uk-UA.json +1483 -0
  865. package/dist/locales/vi-VN.generated.d.ts +8 -0
  866. package/dist/locales/vi-VN.generated.js +381 -0
  867. package/dist/locales/vi-VN.json +1483 -0
  868. package/dist/locales/zh-CN.generated.d.ts +8 -0
  869. package/dist/locales/zh-CN.generated.js +381 -0
  870. package/dist/locales/zh-CN.json +1483 -0
  871. package/dist/locales/zh-TW.generated.d.ts +8 -0
  872. package/dist/locales/zh-TW.generated.js +381 -0
  873. package/dist/locales/zh-TW.json +1483 -0
  874. package/dist/styles/base.css +24 -2
  875. package/dist/styles/themes/orange-dark.css +4 -0
  876. package/dist/styles/themes/orange-light.css +4 -0
  877. package/dist/theme/lablup/built/lablup.d.ts +13 -0
  878. package/dist/theme/lablup/built/lablup.js +567 -0
  879. package/dist/theme/lablup/built/lablup.variants.d.ts +16 -0
  880. package/dist/theme/lablup/built/theme.css +720 -0
  881. package/dist/theme/lablup/index.d.ts +9 -0
  882. package/dist/theme/lablup/index.js +2 -0
  883. package/dist/theme/lablup/lablupTheme.d.ts +10 -0
  884. package/dist/theme/lablup/lablupTheme.js +21 -0
  885. package/dist/theme/lablup/lablupTheme.js.map +1 -0
  886. package/dist/ui-common-locales/de-DE.json +326 -0
  887. package/dist/ui-common-locales/el-GR.json +326 -0
  888. package/dist/ui-common-locales/en.json +346 -0
  889. package/dist/ui-common-locales/es-ES.json +326 -0
  890. package/dist/ui-common-locales/fi-FI.json +326 -0
  891. package/dist/ui-common-locales/fr-FR.json +326 -0
  892. package/dist/ui-common-locales/id-ID.json +326 -0
  893. package/dist/ui-common-locales/it-IT.json +326 -0
  894. package/dist/ui-common-locales/ja-JP.json +346 -0
  895. package/dist/ui-common-locales/ko-KR.json +346 -0
  896. package/dist/ui-common-locales/mn-MN.json +322 -0
  897. package/dist/ui-common-locales/ms-MY.json +326 -0
  898. package/dist/ui-common-locales/pl-PL.json +326 -0
  899. package/dist/ui-common-locales/pt-BR.json +326 -0
  900. package/dist/ui-common-locales/pt-PT.json +326 -0
  901. package/dist/ui-common-locales/ru-RU.json +326 -0
  902. package/dist/ui-common-locales/th-TH.json +326 -0
  903. package/dist/ui-common-locales/tr-TR.json +326 -0
  904. package/dist/ui-common-locales/vi-VN.json +326 -0
  905. package/dist/ui-common-locales/zh-CN.json +326 -0
  906. package/dist/ui-common-locales/zh-TW.json +326 -0
  907. package/dist/ui-common.css +51 -0
  908. package/exports.customs.json +62 -0
  909. package/exports.exclude.json +47 -0
  910. package/package.json +585 -21
  911. package/dist/assets/components/Badge/Badge.css +0 -1
  912. package/dist/assets/components/BaseCard/BaseCard.css +0 -1
  913. package/dist/assets/components/Button/Button.css +0 -1
  914. package/dist/assets/components/DataTable/DataTable.css +0 -1
  915. package/dist/assets/components/Drawer/Drawer.css +0 -1
  916. package/dist/assets/components/EmptyState/EmptyState.css +0 -1
  917. package/dist/assets/components/ProgressBar/ProgressBar.css +0 -1
  918. package/dist/assets/components/Skeleton/Skeleton.css +0 -1
  919. package/dist/assets/components/StatusTag/StatusTag.css +0 -1
  920. package/dist/assets/components/Tabs/Tabs.css +0 -1
  921. package/dist/assets/components/Tooltip/Tooltip.css +0 -1
  922. package/dist/components/Badge/Badge.d.ts +0 -7
  923. package/dist/components/Badge/Badge2.js +0 -20
  924. package/dist/components/Badge/Badge2.js.map +0 -1
  925. package/dist/components/Badge/index.d.ts +0 -2
  926. package/dist/components/Badge/index.js +0 -2
  927. package/dist/components/BaseCard/BaseCard.d.ts +0 -57
  928. package/dist/components/BaseCard/BaseCard2.js +0 -37
  929. package/dist/components/BaseCard/BaseCard2.js.map +0 -1
  930. package/dist/components/BaseCard/index.d.ts +0 -2
  931. package/dist/components/BaseCard/index.js +0 -2
  932. package/dist/components/Button/Button.d.ts +0 -54
  933. package/dist/components/Button/Button2.js +0 -75
  934. package/dist/components/Button/Button2.js.map +0 -1
  935. package/dist/components/Button/index.d.ts +0 -5
  936. package/dist/components/Button/index.js +0 -2
  937. package/dist/components/DataTable/DataTable.d.ts +0 -144
  938. package/dist/components/DataTable/DataTable2.js +0 -244
  939. package/dist/components/DataTable/DataTable2.js.map +0 -1
  940. package/dist/components/DataTable/index.d.ts +0 -2
  941. package/dist/components/DataTable/index.js +0 -2
  942. package/dist/components/Drawer/Drawer.d.ts +0 -25
  943. package/dist/components/Drawer/Drawer2.js +0 -107
  944. package/dist/components/Drawer/Drawer2.js.map +0 -1
  945. package/dist/components/Drawer/index.d.ts +0 -2
  946. package/dist/components/Drawer/index.js +0 -2
  947. package/dist/components/EmptyState/EmptyState.d.ts +0 -52
  948. package/dist/components/EmptyState/EmptyState.example.d.ts +0 -8
  949. package/dist/components/EmptyState/EmptyState2.js +0 -62
  950. package/dist/components/EmptyState/EmptyState2.js.map +0 -1
  951. package/dist/components/EmptyState/index.d.ts +0 -10
  952. package/dist/components/EmptyState/index.js +0 -2
  953. package/dist/components/ProgressBar/ProgressBar.d.ts +0 -22
  954. package/dist/components/ProgressBar/ProgressBar2.js +0 -37
  955. package/dist/components/ProgressBar/ProgressBar2.js.map +0 -1
  956. package/dist/components/ProgressBar/index.d.ts +0 -2
  957. package/dist/components/ProgressBar/index.js +0 -2
  958. package/dist/components/Skeleton/Skeleton.d.ts +0 -25
  959. package/dist/components/Skeleton/Skeleton2.js +0 -27
  960. package/dist/components/Skeleton/Skeleton2.js.map +0 -1
  961. package/dist/components/StatusTag/StatusTag.d.ts +0 -38
  962. package/dist/components/StatusTag/StatusTag2.js +0 -45
  963. package/dist/components/StatusTag/StatusTag2.js.map +0 -1
  964. package/dist/components/StatusTag/index.d.ts +0 -2
  965. package/dist/components/StatusTag/index.js +0 -2
  966. package/dist/components/Tabs/Tabs.d.ts +0 -94
  967. package/dist/components/Tabs/Tabs2.js +0 -412
  968. package/dist/components/Tabs/Tabs2.js.map +0 -1
  969. package/dist/components/Tabs/index.d.ts +0 -2
  970. package/dist/components/Tabs/index.js +0 -2
  971. package/dist/components/Tooltip/Tooltip.d.ts +0 -16
  972. package/dist/components/Tooltip/Tooltip2.js +0 -68
  973. package/dist/components/Tooltip/Tooltip2.js.map +0 -1
  974. package/dist/components/Tooltip/index.d.ts +0 -2
  975. package/dist/components/Tooltip/index.js +0 -2
  976. package/dist/hooks/index.js +0 -2
  977. package/dist/icons/AlertCircleIcon.d.ts +0 -11
  978. package/dist/icons/AlertCircleIcon.js +0 -26
  979. package/dist/icons/AlertCircleIcon.js.map +0 -1
@@ -0,0 +1,393 @@
1
+ import { useUicTranslator as e } from "../../i18n/useUicTranslator.js";
2
+ import { deriveMetrics as t, extractSegments as n, gridSize as r, groupConsecutiveSegments as i, latticeColsForWidth as a, letterCellIndices as ee, packGroups as te, placeCells as ne, platePath as re } from "./UnitGrid.geometry.js";
3
+ /* empty css */
4
+ import { useEffect as o, useEffectEvent as ie, useLayoutEffect as ae, useRef as s, useState as c } from "react";
5
+ import { HStack as l, VStack as oe } from "@astryxdesign/core/Stack";
6
+ import { Text as se } from "@astryxdesign/core/Text";
7
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
+ import { VisuallyHidden as ce } from "@astryxdesign/core/VisuallyHidden";
9
+ //#region src/components/UnitGrid/UnitGrid.tsx
10
+ var le = 256, ue = Array.from({ length: 7 }, (e, t) => `var(--unit-grid-group-${t + 1})`), de = 330, fe = 340, f = 6, pe = 150, me = "6 4", he = .6, p = "var(--unit-grid-cell-empty)", m = "var(--color-background-card)", h = "var(--unit-grid-ink-dark)", g = "var(--unit-grid-ink-light)", _ = (...e) => e.filter(Boolean).join(" "), v = (e) => {
11
+ if (e === void 0) return 1;
12
+ let t = parseFloat(e);
13
+ return Number.isFinite(t) ? e.endsWith("%") ? t / 100 : t : 1;
14
+ }, y = (e) => {
15
+ let t = e.trim(), n = /^#?([0-9a-f]{6})$/i.exec(t);
16
+ if (n) {
17
+ let [e, t, r] = [
18
+ 0,
19
+ 2,
20
+ 4
21
+ ].map((e) => parseInt(n[1].slice(e, e + 2), 16));
22
+ return [
23
+ e,
24
+ t,
25
+ r,
26
+ 1
27
+ ];
28
+ }
29
+ let r = /^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)(?:\s*[,/]\s*([\d.%]+))?/.exec(t);
30
+ if (r) return [
31
+ parseFloat(r[1]),
32
+ parseFloat(r[2]),
33
+ parseFloat(r[3]),
34
+ v(r[4])
35
+ ];
36
+ let i = /^color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.%]+))?/.exec(t);
37
+ return i ? [
38
+ parseFloat(i[1]) * 255,
39
+ parseFloat(i[2]) * 255,
40
+ parseFloat(i[3]) * 255,
41
+ v(i[4])
42
+ ] : null;
43
+ }, b = (e) => {
44
+ let [t, n, r] = e.map((e) => {
45
+ let t = e / 255;
46
+ return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
47
+ });
48
+ return .2126 * t + .7152 * n + .0722 * r;
49
+ }, x = (e) => {
50
+ let t = e === void 0 ? null : y(e);
51
+ return t ? b([
52
+ t[0],
53
+ t[1],
54
+ t[2]
55
+ ]) : null;
56
+ }, ge = (e, t) => (Math.max(e, t) + .05) / (Math.min(e, t) + .05), _e = (e, t) => {
57
+ (e.key === "Enter" || e.key === " ") && (e.key === " " && e.preventDefault(), t());
58
+ }, ve = (e, t) => {
59
+ let n = document.createElement("div");
60
+ n.setAttribute("aria-hidden", "true"), n.style.cssText = "position:absolute;visibility:hidden;pointer-events:none;width:0;height:0;overflow:hidden";
61
+ let r = t.map((e) => {
62
+ let t = document.createElement("div");
63
+ return t.style.color = e, n.appendChild(t), t;
64
+ });
65
+ e.appendChild(n);
66
+ let i = {};
67
+ return t.forEach((e, t) => {
68
+ i[e] = getComputedStyle(r[t]).color;
69
+ }), e.removeChild(n), i;
70
+ }, ye = (e) => {
71
+ let t = document.createElement("div");
72
+ t.setAttribute("aria-hidden", "true"), t.style.cssText = "position:fixed;top:0;left:0;width:0;height:0;visibility:hidden;pointer-events:none", e.appendChild(t);
73
+ let n = t.getBoundingClientRect();
74
+ return e.removeChild(t), {
75
+ left: n.left,
76
+ top: n.top
77
+ };
78
+ }, be = (e) => {
79
+ let n = getComputedStyle(e), r = (e, t) => {
80
+ let r = parseFloat(n.getPropertyValue(e));
81
+ return Number.isFinite(r) ? r : t;
82
+ };
83
+ return t(r("--spacing-4", 16), r("--spacing-0-5", 2), Math.min(r("--radius-element", 4), 4));
84
+ };
85
+ function S({ groups: v, layout: S = "serpentine", groupPalette: C, hueOverrides: xe, onHueOverrideChange: w, legendItems: T, renderGroupPopover: E, onClickGroup: D, emptyFallback: Se, maxUnitsPerGroup: Ce = le, columns: O, changeGroupColorLabel: we, colorSwatchLabel: k, className: Te, ...A }) {
86
+ let j = e(), M = C && C.length > 0 ? C : ue, N = s(null), P = s(null), [F, Ee] = c(0), I = v.filter((e) => e.units.length > 0), L = I.length > 0;
87
+ o(() => {
88
+ let e = P.current;
89
+ if (!e) return;
90
+ let t = new ResizeObserver((e) => {
91
+ Ee(e[0]?.contentRect.width ?? 0);
92
+ });
93
+ return t.observe(e), () => t.disconnect();
94
+ }, [L]);
95
+ let [R, De] = c(() => t()), [z, Oe] = c({}), B = Array.from(new Set(I.flatMap((e) => e.units.map((e) => e.color)))), ke = B.join(" "), Ae = ie(() => {
96
+ let e = N.current;
97
+ if (!e) return;
98
+ let t = be(e);
99
+ De((e) => e.cellPx === t.cellPx && e.gapPx === t.gapPx && e.radiusPx === t.radiusPx ? e : t);
100
+ let n = ve(e, [
101
+ ...B,
102
+ p,
103
+ m,
104
+ h,
105
+ g
106
+ ]);
107
+ Oe((e) => {
108
+ let t = Object.keys(n);
109
+ return t.length === Object.keys(e).length && t.every((t) => e[t] === n[t]) ? e : n;
110
+ });
111
+ }), [je, Me] = c(0);
112
+ o(() => {
113
+ let e = new MutationObserver(() => Me((e) => e + 1));
114
+ return e.observe(document.documentElement, {
115
+ attributes: !0,
116
+ attributeFilter: [
117
+ "data-theme",
118
+ "data-astryx-theme",
119
+ "class",
120
+ "style"
121
+ ]
122
+ }), () => e.disconnect();
123
+ }, []), ae(() => {
124
+ Ae();
125
+ }, [ke, je]);
126
+ let [V, H] = c(null), U = s(null), W = () => {
127
+ U.current &&= (clearTimeout(U.current), null);
128
+ }, G = () => {
129
+ W(), U.current = setTimeout(() => {
130
+ H(null), K(null);
131
+ }, pe);
132
+ };
133
+ o(() => W, []);
134
+ let [Ne, K] = c(null), Pe = Ne !== null && Ne === V, [q, Fe] = c(null);
135
+ o(() => {
136
+ if (V !== null) {
137
+ let e = P.current, t = e?.getBoundingClientRect(), n = e ? ye(e) : null;
138
+ Fe(t && n ? {
139
+ left: t.left,
140
+ top: t.top,
141
+ originLeft: n.left,
142
+ originTop: n.top
143
+ } : null);
144
+ }
145
+ }, [V]);
146
+ let Ie = V !== null;
147
+ o(() => {
148
+ if (!Ie) return;
149
+ let e = () => {
150
+ H(null), K(null);
151
+ };
152
+ return window.addEventListener("scroll", e, !0), () => window.removeEventListener("scroll", e, !0);
153
+ }, [Ie]);
154
+ let J = new Map(I.map((e) => [e.key, e])), Le = new Map(I.map((e, t) => [e.key, t])), Re = (e) => ((xe?.[e] ?? Le.get(e) ?? 0) % M.length + M.length) % M.length, Y = (e) => M[Re(e)], ze = (e) => ((J.get(e)?.label || e).charAt(0) || "?").toUpperCase(), Be = x(z[h]) ?? 0, Ve = x(z[g]) ?? 1, He = (e) => {
155
+ let t = e ?? .8;
156
+ return ge(t, Be) >= ge(t, Ve) ? h : g;
157
+ }, Ue = (e) => He(x(z[e] ?? e)), We = (() => {
158
+ let e = y(z[p] ?? "");
159
+ if (!e) return null;
160
+ if (e[3] >= 1) return b([
161
+ e[0],
162
+ e[1],
163
+ e[2]
164
+ ]);
165
+ let t = y(z[m] ?? "");
166
+ if (!t) return null;
167
+ let n = e[3];
168
+ return b([
169
+ e[0] * n + t[0] * (1 - n),
170
+ e[1] * n + t[1] * (1 - n),
171
+ e[2] * n + t[2] * (1 - n)
172
+ ]);
173
+ })(), Ge = (e) => e.fraction !== void 0 && e.fraction < he ? He(We) : Ue(e.color), Ke = O ?? a(F, R), qe = te(I, Ce), X = ne(qe, S, Ke, R), { width: Je, height: Ye } = r(X, Ke, R), Xe = i(n(X, R)), Ze = ee(X), Z = V === null ? null : J.get(V) ?? null, Qe = V === null ? void 0 : Ze.get(V), Q = Qe === void 0 ? null : X[Qe] ?? null, $e = () => {
174
+ H(null), K(null);
175
+ }, et = (e) => e.target.getAttribute?.("data-group-key") ?? null, tt = L && (O !== void 0 || F > 0), nt = Z !== null && V !== null && Q !== null && q !== null && (E !== void 0 || w !== void 0), $ = () => K((e) => e === V ? null : V);
176
+ return /* @__PURE__ */ d(oe, {
177
+ ref: N,
178
+ gap: 3,
179
+ align: "stretch",
180
+ className: _("uic-unit-grid", Te),
181
+ ...A,
182
+ children: [T && T.length > 0 && /* @__PURE__ */ u(l, {
183
+ gap: 3,
184
+ wrap: "wrap",
185
+ align: "center",
186
+ children: T.map((e, t) => /* @__PURE__ */ d(l, {
187
+ gap: 1,
188
+ align: "center",
189
+ children: [/* @__PURE__ */ u("svg", {
190
+ width: 10,
191
+ height: 10,
192
+ role: "img",
193
+ "aria-label": e.label,
194
+ children: /* @__PURE__ */ u("rect", {
195
+ width: 10,
196
+ height: 10,
197
+ rx: 2,
198
+ style: { fill: e.color }
199
+ })
200
+ }), /* @__PURE__ */ u(se, {
201
+ size: "sm",
202
+ color: "secondary",
203
+ children: e.label
204
+ })]
205
+ }, t))
206
+ }), L ? /* @__PURE__ */ d("div", {
207
+ ref: P,
208
+ className: "uic-unit-grid__wrapper",
209
+ children: [
210
+ tt && /* @__PURE__ */ d("svg", {
211
+ width: Je,
212
+ height: Ye,
213
+ role: "img",
214
+ "aria-label": A["aria-label"] ?? j("uic.UnitGrid.label"),
215
+ className: _("uic-unit-grid__svg", D !== void 0 && "uic-unit-grid__svg--clickable"),
216
+ onMouseMove: (e) => {
217
+ let t = et(e);
218
+ t === null ? G() : (W(), H(t));
219
+ },
220
+ onMouseLeave: G,
221
+ onClick: (e) => {
222
+ let t = et(e);
223
+ t !== null && D && D(t);
224
+ },
225
+ children: [Xe.map((e) => {
226
+ let t = e[0].groupKey, n = J.get(t), r = Y(t), i = V === t;
227
+ return /* @__PURE__ */ u("path", {
228
+ "data-group-key": t,
229
+ d: re(e, R),
230
+ style: {
231
+ fill: r,
232
+ stroke: r
233
+ },
234
+ fillOpacity: i ? .32 : .15,
235
+ strokeWidth: i ? 2.5 : 1.5,
236
+ strokeDasharray: n?.plateVariant === "dashed" ? me : void 0
237
+ }, t);
238
+ }), X.map((e, t) => {
239
+ let n = e.unit.fraction !== void 0 && e.unit.fraction < 1, r = V === e.groupKey;
240
+ return /* @__PURE__ */ d("g", { children: [
241
+ /* @__PURE__ */ u("rect", {
242
+ className: "uic-unit-grid__cell",
243
+ "data-group-key": e.groupKey,
244
+ x: e.px,
245
+ y: e.py,
246
+ width: R.cellPx,
247
+ height: R.cellPx,
248
+ rx: R.radiusPx,
249
+ style: {
250
+ fill: n ? p : e.unit.color,
251
+ stroke: r ? Y(e.groupKey) : "var(--unit-grid-cell-stroke)"
252
+ },
253
+ strokeWidth: r ? 1 : .5
254
+ }),
255
+ n && /* @__PURE__ */ u("rect", {
256
+ "data-group-key": e.groupKey,
257
+ x: e.px,
258
+ y: e.py + R.cellPx * (1 - (e.unit.fraction ?? 0)),
259
+ width: R.cellPx,
260
+ height: R.cellPx * (e.unit.fraction ?? 0),
261
+ rx: 1,
262
+ style: { fill: e.unit.color }
263
+ }),
264
+ Ze.get(e.groupKey) === t && /* @__PURE__ */ u("text", {
265
+ x: e.px + R.cellPx / 2,
266
+ y: e.py + R.cellPx / 2,
267
+ textAnchor: "middle",
268
+ dominantBaseline: "central",
269
+ fontSize: R.cellPx * .62,
270
+ fontWeight: 700,
271
+ pointerEvents: "none",
272
+ style: { fill: Ge(e.unit) },
273
+ children: ze(e.groupKey)
274
+ })
275
+ ] }, t);
276
+ })]
277
+ }),
278
+ /* @__PURE__ */ u(ce, {
279
+ as: "ul",
280
+ children: I.map((e) => /* @__PURE__ */ u("li", { children: e.label || e.key }, e.key))
281
+ }),
282
+ nt && /* @__PURE__ */ u("div", {
283
+ className: "uic-unit-grid__popover",
284
+ onMouseEnter: W,
285
+ onMouseLeave: G,
286
+ style: {
287
+ borderColor: Y(V),
288
+ ...(() => {
289
+ let e = q.left + Math.max(0, Math.min(Q.px - R.platePadX, Math.max(0, F - de))), t = q.top + Q.py, n = t >= fe, r = n ? t - R.platePadY - f : t + R.cellPx + R.platePadY + f, i = e - q.originLeft, a = r - q.originTop;
290
+ return n ? {
291
+ left: i,
292
+ top: a,
293
+ transform: "translateY(-100%)"
294
+ } : {
295
+ left: i,
296
+ top: a
297
+ };
298
+ })()
299
+ },
300
+ children: /* @__PURE__ */ d(oe, {
301
+ gap: 1.5,
302
+ align: "stretch",
303
+ children: [
304
+ Pe && w && /* @__PURE__ */ u(l, {
305
+ gap: 1,
306
+ align: "center",
307
+ children: M.map((e, t) => {
308
+ let n = () => {
309
+ w(V, t), K(null);
310
+ }, r = Re(V) === t;
311
+ return /* @__PURE__ */ d("svg", {
312
+ width: 20,
313
+ height: 20,
314
+ role: "button",
315
+ tabIndex: 0,
316
+ "aria-label": k ? k(t + 1) : j("uic.UnitGrid.useColor", { index: t + 1 }),
317
+ className: "uic-unit-grid__swatch",
318
+ onClick: n,
319
+ onKeyDown: (e) => _e(e, n),
320
+ children: [/* @__PURE__ */ u("rect", {
321
+ x: 1,
322
+ y: 1,
323
+ width: 18,
324
+ height: 18,
325
+ rx: 5,
326
+ style: {
327
+ fill: e,
328
+ stroke: e
329
+ },
330
+ fillOpacity: .35,
331
+ strokeWidth: r ? 2 : 1
332
+ }), r && /* @__PURE__ */ u("text", {
333
+ x: 10,
334
+ y: 10.5,
335
+ textAnchor: "middle",
336
+ dominantBaseline: "central",
337
+ fontSize: 11,
338
+ fontWeight: 700,
339
+ pointerEvents: "none",
340
+ style: { fill: e },
341
+ children: "✓"
342
+ })]
343
+ }, t);
344
+ })
345
+ }),
346
+ w && /* @__PURE__ */ d(l, {
347
+ gap: 1.5,
348
+ align: "center",
349
+ children: [/* @__PURE__ */ u("svg", {
350
+ width: 16,
351
+ height: 16,
352
+ role: "button",
353
+ tabIndex: 0,
354
+ "aria-label": we ?? j("uic.UnitGrid.changeGroupColor"),
355
+ className: "uic-unit-grid__swatch",
356
+ onClick: $,
357
+ onKeyDown: (e) => _e(e, $),
358
+ children: /* @__PURE__ */ u("rect", {
359
+ x: 1,
360
+ y: 1,
361
+ width: 14,
362
+ height: 14,
363
+ rx: 4,
364
+ style: {
365
+ fill: Y(V),
366
+ stroke: Y(V)
367
+ },
368
+ fillOpacity: .15,
369
+ strokeWidth: 1.5
370
+ })
371
+ }), /* @__PURE__ */ u(se, {
372
+ size: "sm",
373
+ weight: "semibold",
374
+ children: Z.label || Z.key
375
+ })]
376
+ }),
377
+ E?.(Z, {
378
+ hue: Y(V),
379
+ closePopover: $e
380
+ })
381
+ ]
382
+ })
383
+ })
384
+ ]
385
+ }) : Se ?? null]
386
+ });
387
+ }
388
+ S.displayName = "UnitGrid";
389
+ //#endregion
390
+ export { S as UnitGrid };
391
+
392
+ //# sourceMappingURL=UnitGrid2.js.map
393
+ import "../../assets/components/UnitGrid/UnitGrid.css";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitGrid2.js","names":[],"sources":["../../../src/components/UnitGrid/UnitGrid.tsx"],"sourcesContent":["/**\n * UnitGrid\n *\n * Groups of unit squares packed onto one shared lattice (serpentine or\n * word-wrap), each group merged into a tinted rounded plate, with a hover card\n * anchored to the group, an optional palette picker in it, and a legend row.\n * It knows nothing about what a unit is: callers pass the resolved colour of\n * every unit, the legend entries and the hover card body.\n *\n * Unit colours may be `var()` or `color-mix()` strings. The component resolves\n * them against its own cascade to pick, per group initial, the ink with the\n * better WCAG contrast.\n *\n * @example\n * <UnitGrid\n * aria-label=\"GPU allocation\"\n * groups={[{ key: \"a\", label: \"Alpha\", units: [{ color: \"var(--color-icon-blue)\" }] }]}\n * />\n */\nimport {\n useEffect,\n useEffectEvent,\n useLayoutEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from \"react\";\nimport { HStack, VStack } from \"@astryxdesign/core/Stack\";\nimport { Text } from \"@astryxdesign/core/Text\";\nimport { VisuallyHidden } from \"@astryxdesign/core/VisuallyHidden\";\n\nimport { useUicTranslator } from \"../../i18n/useUicTranslator\";\nimport {\n deriveMetrics,\n extractSegments,\n gridSize,\n groupConsecutiveSegments,\n latticeColsForWidth,\n letterCellIndices,\n packGroups,\n placeCells,\n platePath,\n type UnitGridLayout,\n type UnitGridMetrics,\n} from \"./UnitGrid.geometry\";\nimport \"./UnitGrid.css\";\n\nexport type { UnitGridLayout } from \"./UnitGrid.geometry\";\n\nconst DEFAULT_MAX_UNITS_PER_GROUP = 256;\n/** The seven hues declared in UnitGrid.css. */\nconst DEFAULT_PALETTE = Array.from(\n { length: 7 },\n (_, i) => `var(--unit-grid-group-${i + 1})`,\n);\n// Hover card geometry: clamp width, flip threshold, anchor offset, and the\n// hide delay that lets the pointer travel onto the card.\nconst POPOVER_CLAMP_WIDTH = 330;\nconst POPOVER_FLIP_MIN_TOP = 340;\nconst POPOVER_OFFSET = 6;\nconst POPOVER_HIDE_DELAY_MS = 150;\n// Legible at both plate stroke widths (1.5 at rest, 2.5 on hover).\nconst PLATE_DASH_PATTERN = \"6 4\";\n// The initial is vertically centred and fills grow bottom-up, so below this\n// fraction the initial sits on the empty underlay: pick ink against that.\nconst LETTER_ON_EMPTY_MAX_FRACTION = 0.6;\nconst EMPTY_FILL_COLOR = \"var(--unit-grid-cell-empty)\";\n// The empty fill is translucent; composite it over this before judging it.\nconst EMPTY_FILL_BACKDROP = \"var(--color-background-card)\";\nconst INK_DARK = \"var(--unit-grid-ink-dark)\";\nconst INK_LIGHT = \"var(--unit-grid-ink-light)\";\n\nconst cx = (...names: Array<string | false | undefined>) =>\n names.filter(Boolean).join(\" \");\n\nconst parseAlpha = (raw: string | undefined): number => {\n if (raw === undefined) return 1;\n const v = parseFloat(raw);\n if (!Number.isFinite(v)) return 1;\n return raw.endsWith(\"%\") ? v / 100 : v;\n};\n\n/** `[r, g, b (0..255), alpha (0..1)]` of `#rrggbb`, `rgb()` or `color(srgb)`. */\nconst parseColorChannels = (color: string): [number, number, number, number] | null => {\n const trimmed = color.trim();\n const hex = /^#?([0-9a-f]{6})$/i.exec(trimmed);\n if (hex) {\n const [r, g, b] = [0, 2, 4].map((i) => parseInt(hex[1]!.slice(i, i + 2), 16));\n return [r!, g!, b!, 1];\n }\n const rgb =\n /^rgba?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)[,\\s]+([\\d.]+)(?:\\s*[,/]\\s*([\\d.%]+))?/.exec(\n trimmed,\n );\n if (rgb) {\n return [\n parseFloat(rgb[1]!),\n parseFloat(rgb[2]!),\n parseFloat(rgb[3]!),\n parseAlpha(rgb[4]),\n ];\n }\n // color-mix() and color() fills serialize as `color(srgb r g b / a)`, 0..1.\n const srgb =\n /^color\\(srgb\\s+([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.%]+))?/.exec(trimmed);\n if (srgb) {\n return [\n parseFloat(srgb[1]!) * 255,\n parseFloat(srgb[2]!) * 255,\n parseFloat(srgb[3]!) * 255,\n parseAlpha(srgb[4]),\n ];\n }\n return null;\n};\n\nconst luminanceOfChannels = (channels: [number, number, number]): number => {\n const [r, g, b] = channels.map((c) => {\n const v = c / 255;\n return v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r! + 0.7152 * g! + 0.0722 * b!;\n};\n\n/** WCAG relative luminance, alpha ignored. */\nconst relativeLuminance = (color: string | undefined): number | null => {\n const channels = color === undefined ? null : parseColorChannels(color);\n return channels ? luminanceOfChannels([channels[0], channels[1], channels[2]]) : null;\n};\n\nconst contrastRatio = (a: number, b: number): number =>\n (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05);\n\n/** Keyboard activation for the SVG `role=\"button\"` picker controls. */\nconst activateOnKey = (e: KeyboardEvent<SVGSVGElement>, action: () => void): void => {\n if (e.key === \"Enter\" || e.key === \" \") {\n // Space must not scroll the page while it activates the control.\n if (e.key === \" \") e.preventDefault();\n action();\n }\n};\n\n/**\n * Resolve CSS colour strings, `var()` included, to computed colours through\n * hidden probes under `host`, so they see the component's own cascade.\n */\nconst resolveColorsInDOM = (\n host: HTMLElement,\n colors: readonly string[],\n): Record<string, string> => {\n const probeHost = document.createElement(\"div\");\n probeHost.setAttribute(\"aria-hidden\", \"true\");\n probeHost.style.cssText =\n \"position:absolute;visibility:hidden;pointer-events:none;width:0;height:0;overflow:hidden\";\n const probes = colors.map((color) => {\n const el = document.createElement(\"div\");\n el.style.color = color;\n probeHost.appendChild(el);\n return el;\n });\n host.appendChild(probeHost);\n const out: Record<string, string> = {};\n colors.forEach((color, i) => {\n out[color] = getComputedStyle(probes[i]!).color;\n });\n host.removeChild(probeHost);\n return out;\n};\n\n/**\n * Origin of the hover card's `position: fixed` containing block, in viewport\n * coordinates. A transformed ancestor (a drawer panel is one) takes over from\n * the viewport, so measured viewport rects are rebased onto it. (0, 0) when\n * the viewport is the origin.\n */\nconst fixedOriginIn = (host: HTMLElement): { left: number; top: number } => {\n const probe = document.createElement(\"div\");\n probe.setAttribute(\"aria-hidden\", \"true\");\n probe.style.cssText =\n \"position:fixed;top:0;left:0;width:0;height:0;visibility:hidden;pointer-events:none\";\n host.appendChild(probe);\n const r = probe.getBoundingClientRect();\n host.removeChild(probe);\n return { left: r.left, top: r.top };\n};\n\nconst readMetricsFromDOM = (host: HTMLElement): UnitGridMetrics => {\n const cs = getComputedStyle(host);\n const len = (name: string, fallback: number): number => {\n const v = parseFloat(cs.getPropertyValue(name));\n return Number.isFinite(v) ? v : fallback;\n };\n return deriveMetrics(\n len(\"--spacing-4\", 16),\n len(\"--spacing-0-5\", 2),\n Math.min(len(\"--radius-element\", 4), 4),\n );\n};\n\nexport interface UnitGridUnit {\n /** Fill colour of this unit's cell. */\n color: string;\n /** 0..1 partial fill; a fractional cell fills bottom-up. */\n fraction?: number;\n}\n\nexport interface UnitGridGroup {\n key: string;\n /** The group initial and the hover card title. @default key */\n label?: string;\n units: UnitGridUnit[];\n /** Plate outline; `dashed` marks a group as tentative. @default 'solid' */\n plateVariant?: \"solid\" | \"dashed\";\n}\n\nexport interface UnitGridLegendItem {\n color: string;\n label: string;\n}\n\nexport interface UnitGridProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"children\"\n> {\n groups: UnitGridGroup[];\n /** How groups flow along the lattice. @default 'serpentine' */\n layout?: UnitGridLayout;\n /** Group hues, cycled in flow order. @default the seven --unit-grid-group-N hues */\n groupPalette?: string[];\n /** Controlled palette-index overrides, keyed by group key. */\n hueOverrides?: Record<string, number>;\n /** Shows the palette picker in the hover card. */\n onHueOverrideChange?: (key: string, paletteIndex: number) => void;\n legendItems?: UnitGridLegendItem[];\n /** The hover card body for a group. */\n renderGroupPopover?: (\n group: UnitGridGroup,\n context: { hue: string; closePopover: () => void },\n ) => ReactNode;\n onClickGroup?: (key: string) => void;\n /** Rendered instead of the grid when no group has a unit. */\n emptyFallback?: ReactNode;\n /** Units drawn per group at most. @default 256 */\n maxUnitsPerGroup?: number;\n /**\n * Fixed lattice column count. Without it the count follows the measured\n * width (ResizeObserver); pass it for fixed layouts and in jsdom.\n */\n columns?: number;\n /** @default the catalog's uic.UnitGrid.changeGroupColor (\"Change group color\") */\n changeGroupColorLabel?: string;\n /** @default the catalog's uic.UnitGrid.useColor (\"Use color {index}\") */\n colorSwatchLabel?: (index: number) => string;\n}\n\nexport function UnitGrid({\n groups,\n layout = \"serpentine\",\n groupPalette,\n hueOverrides,\n onHueOverrideChange,\n legendItems,\n renderGroupPopover,\n onClickGroup,\n emptyFallback,\n maxUnitsPerGroup = DEFAULT_MAX_UNITS_PER_GROUP,\n columns,\n changeGroupColorLabel,\n colorSwatchLabel,\n className,\n ...divProps\n}: UnitGridProps) {\n const t = useUicTranslator();\n const palette =\n groupPalette && groupPalette.length > 0 ? groupPalette : DEFAULT_PALETTE;\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const [wrapperWidth, setWrapperWidth] = useState(0);\n\n const visibleGroups = groups.filter((g) => g.units.length > 0);\n const hasGroups = visibleGroups.length > 0;\n\n useEffect(() => {\n const el = wrapperRef.current;\n if (!el) return;\n const ro = new ResizeObserver((entries) => {\n setWrapperWidth(entries[0]?.contentRect.width ?? 0);\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, [hasGroups]);\n\n // Concrete colours (for the ink decision) and token-derived metrics,\n // resolved against the live cascade. Paint uses the raw strings, so var()\n // fills keep following the theme; only the ink decision is a snapshot.\n const [metrics, setMetrics] = useState<UnitGridMetrics>(() => deriveMetrics());\n const [resolvedColors, setResolvedColors] = useState<Record<string, string>>({});\n const distinctColors = Array.from(\n new Set(visibleGroups.flatMap((g) => g.units.map((u) => u.color))),\n );\n const colorsKey = distinctColors.join(\" \");\n const refreshResolved = useEffectEvent(() => {\n const host = rootRef.current;\n if (!host) return;\n const nextMetrics = readMetricsFromDOM(host);\n setMetrics((prev) =>\n prev.cellPx === nextMetrics.cellPx &&\n prev.gapPx === nextMetrics.gapPx &&\n prev.radiusPx === nextMetrics.radiusPx\n ? prev\n : nextMetrics,\n );\n const next = resolveColorsInDOM(host, [\n ...distinctColors,\n EMPTY_FILL_COLOR,\n EMPTY_FILL_BACKDROP,\n INK_DARK,\n INK_LIGHT,\n ]);\n setResolvedColors((prev) => {\n const keys = Object.keys(next);\n const same =\n keys.length === Object.keys(prev).length &&\n keys.every((k) => prev[k] === next[k]);\n return same ? prev : next;\n });\n });\n // A theme flip changes what the same var() strings resolve to, so the ink\n // snapshot re-probes when the root's theme attributes change.\n const [themeEpoch, setThemeEpoch] = useState(0);\n useEffect(() => {\n const observer = new MutationObserver(() => setThemeEpoch((e) => e + 1));\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"data-theme\", \"data-astryx-theme\", \"class\", \"style\"],\n });\n return () => observer.disconnect();\n }, []);\n useLayoutEffect(() => {\n refreshResolved();\n // refreshResolved is an effect event: it is never a dependency.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [colorsKey, themeEpoch]);\n\n // Hover card: hiding is delayed so the pointer can travel onto it.\n const [hoverKey, setHoverKey] = useState<string | null>(null);\n const hideTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const cancelHide = () => {\n if (hideTimer.current) {\n clearTimeout(hideTimer.current);\n hideTimer.current = null;\n }\n };\n const scheduleHide = () => {\n cancelHide();\n hideTimer.current = setTimeout(() => {\n setHoverKey(null);\n setPickerFor(null);\n }, POPOVER_HIDE_DELAY_MS);\n };\n useEffect(() => cancelHide, []);\n\n // The group the picker was opened for; hovering another group closes it.\n const [pickerFor, setPickerFor] = useState<string | null>(null);\n const pickerOpen = pickerFor !== null && pickerFor === hoverKey;\n\n const [wrapperRect, setWrapperRect] = useState<{\n left: number;\n top: number;\n originLeft: number;\n originTop: number;\n } | null>(null);\n useEffect(() => {\n if (hoverKey !== null) {\n const host = wrapperRef.current;\n const r = host?.getBoundingClientRect();\n const origin = host ? fixedOriginIn(host) : null;\n setWrapperRect(\n r && origin\n ? { left: r.left, top: r.top, originLeft: origin.left, originTop: origin.top }\n : null,\n );\n }\n }, [hoverKey]);\n\n // The card is fixed, so any scroll moves its anchor: dismiss it.\n const hoverOpen = hoverKey !== null;\n useEffect(() => {\n if (!hoverOpen) return;\n const onScroll = () => {\n setHoverKey(null);\n setPickerFor(null);\n };\n window.addEventListener(\"scroll\", onScroll, true);\n return () => window.removeEventListener(\"scroll\", onScroll, true);\n }, [hoverOpen]);\n\n const groupByKey = new Map(visibleGroups.map((g) => [g.key, g]));\n const flowIndexByKey = new Map(visibleGroups.map((g, i) => [g.key, i]));\n\n // Default hues cycle the palette in flow order, so neighbours differ;\n // overrides are keyed by the group's stable key.\n const hueIndexFor = (key: string): number => {\n const base = hueOverrides?.[key] ?? flowIndexByKey.get(key) ?? 0;\n return ((base % palette.length) + palette.length) % palette.length;\n };\n const hueFor = (key: string): string => palette[hueIndexFor(key)]!;\n\n const letterFor = (key: string): string => {\n const group = groupByKey.get(key);\n return ((group?.label || key).charAt(0) || \"?\").toUpperCase();\n };\n\n const inkDarkLuminance = relativeLuminance(resolvedColors[INK_DARK]) ?? 0;\n const inkLightLuminance = relativeLuminance(resolvedColors[INK_LIGHT]) ?? 1;\n const inkForLuminance = (fillLuminance: number | null): string => {\n // An unresolved fill (first paint, jsdom) is taken as light.\n const lum = fillLuminance ?? 0.8;\n return contrastRatio(lum, inkDarkLuminance) >= contrastRatio(lum, inkLightLuminance)\n ? INK_DARK\n : INK_LIGHT;\n };\n\n const inkFor = (color: string): string =>\n inkForLuminance(relativeLuminance(resolvedColors[color] ?? color));\n\n const emptyFillLuminance = ((): number | null => {\n const fg = parseColorChannels(resolvedColors[EMPTY_FILL_COLOR] ?? \"\");\n if (!fg) return null;\n if (fg[3] >= 1) return luminanceOfChannels([fg[0], fg[1], fg[2]]);\n const bg = parseColorChannels(resolvedColors[EMPTY_FILL_BACKDROP] ?? \"\");\n if (!bg) return null;\n const a = fg[3];\n return luminanceOfChannels([\n fg[0] * a + bg[0] * (1 - a),\n fg[1] * a + bg[1] * (1 - a),\n fg[2] * a + bg[2] * (1 - a),\n ]);\n })();\n\n const letterInkFor = (unit: UnitGridUnit): string =>\n unit.fraction !== undefined && unit.fraction < LETTER_ON_EMPTY_MAX_FRACTION\n ? inkForLuminance(emptyFillLuminance)\n : inkFor(unit.color);\n\n const latticeCols = columns ?? latticeColsForWidth(wrapperWidth, metrics);\n const packed = packGroups(visibleGroups, maxUnitsPerGroup);\n const placed = placeCells(packed, layout, latticeCols, metrics);\n const { width: svgWidth, height: svgHeight } = gridSize(placed, latticeCols, metrics);\n const segGroups = groupConsecutiveSegments(extractSegments(placed, metrics));\n const letterIdx = letterCellIndices(placed);\n\n const hoveredGroup = hoverKey === null ? null : (groupByKey.get(hoverKey) ?? null);\n const hoverAnchorIdx = hoverKey === null ? undefined : letterIdx.get(hoverKey);\n const hoverAnchor =\n hoverAnchorIdx === undefined ? null : (placed[hoverAnchorIdx] ?? null);\n const closePopover = () => {\n setHoverKey(null);\n setPickerFor(null);\n };\n\n const groupKeyFromEvent = (e: MouseEvent): string | null =>\n (e.target as Element).getAttribute?.(\"data-group-key\") ?? null;\n\n const showGrid = hasGroups && (columns !== undefined || wrapperWidth > 0);\n const showPopover =\n hoveredGroup !== null &&\n hoverKey !== null &&\n hoverAnchor !== null &&\n wrapperRect !== null &&\n (renderGroupPopover !== undefined || onHueOverrideChange !== undefined);\n\n const togglePicker = () => setPickerFor((v) => (v === hoverKey ? null : hoverKey));\n\n return (\n <VStack\n ref={rootRef}\n gap={3}\n align=\"stretch\"\n className={cx(\"uic-unit-grid\", className)}\n {...divProps}\n >\n {legendItems && legendItems.length > 0 && (\n <HStack gap={3} wrap=\"wrap\" align=\"center\">\n {legendItems.map((item, i) => (\n <HStack key={i} gap={1} align=\"center\">\n <svg width={10} height={10} role=\"img\" aria-label={item.label}>\n <rect width={10} height={10} rx={2} style={{ fill: item.color }} />\n </svg>\n <Text size=\"sm\" color=\"secondary\">\n {item.label}\n </Text>\n </HStack>\n ))}\n </HStack>\n )}\n {!hasGroups ? (\n (emptyFallback ?? null)\n ) : (\n <div ref={wrapperRef} className=\"uic-unit-grid__wrapper\">\n {showGrid && (\n <svg\n width={svgWidth}\n height={svgHeight}\n role=\"img\"\n aria-label={divProps[\"aria-label\"] ?? t(\"uic.UnitGrid.label\")}\n className={cx(\n \"uic-unit-grid__svg\",\n onClickGroup !== undefined && \"uic-unit-grid__svg--clickable\",\n )}\n onMouseMove={(e) => {\n const key = groupKeyFromEvent(e);\n if (key === null) {\n scheduleHide();\n } else {\n cancelHide();\n setHoverKey(key);\n }\n }}\n onMouseLeave={scheduleHide}\n onClick={(e) => {\n const key = groupKeyFromEvent(e);\n if (key !== null && onClickGroup) onClickGroup(key);\n }}\n >\n {segGroups.map((segs) => {\n const key = segs[0]!.groupKey;\n const group = groupByKey.get(key);\n const hue = hueFor(key);\n const hovered = hoverKey === key;\n // Hover strengthens the hovered group's tint and border\n // rather than dimming the others.\n return (\n <path\n key={key}\n data-group-key={key}\n d={platePath(segs, metrics)}\n style={{ fill: hue, stroke: hue }}\n fillOpacity={hovered ? 0.32 : 0.15}\n strokeWidth={hovered ? 2.5 : 1.5}\n strokeDasharray={\n group?.plateVariant === \"dashed\" ? PLATE_DASH_PATTERN : undefined\n }\n />\n );\n })}\n {placed.map((cell, i) => {\n const isPartial =\n cell.unit.fraction !== undefined && cell.unit.fraction < 1;\n const cellHovered = hoverKey === cell.groupKey;\n return (\n <g key={i}>\n <rect\n className=\"uic-unit-grid__cell\"\n data-group-key={cell.groupKey}\n x={cell.px}\n y={cell.py}\n width={metrics.cellPx}\n height={metrics.cellPx}\n rx={metrics.radiusPx}\n style={{\n fill: isPartial ? EMPTY_FILL_COLOR : cell.unit.color,\n stroke: cellHovered\n ? hueFor(cell.groupKey)\n : \"var(--unit-grid-cell-stroke)\",\n }}\n strokeWidth={cellHovered ? 1 : 0.5}\n />\n {isPartial && (\n <rect\n data-group-key={cell.groupKey}\n x={cell.px}\n y={cell.py + metrics.cellPx * (1 - (cell.unit.fraction ?? 0))}\n width={metrics.cellPx}\n height={metrics.cellPx * (cell.unit.fraction ?? 0)}\n rx={1}\n style={{ fill: cell.unit.color }}\n />\n )}\n {letterIdx.get(cell.groupKey) === i && (\n <text\n x={cell.px + metrics.cellPx / 2}\n y={cell.py + metrics.cellPx / 2}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={metrics.cellPx * 0.62}\n fontWeight={700}\n pointerEvents=\"none\"\n style={{ fill: letterInkFor(cell.unit) }}\n >\n {letterFor(cell.groupKey)}\n </text>\n )}\n </g>\n );\n })}\n </svg>\n )}\n {/* role=\"img\" flattens the svg for assistive technology, so the\n groups are listed here as well. */}\n <VisuallyHidden as=\"ul\">\n {visibleGroups.map((g) => (\n <li key={g.key}>{g.label || g.key}</li>\n ))}\n </VisuallyHidden>\n {showPopover && (\n <div\n className=\"uic-unit-grid__popover\"\n onMouseEnter={cancelHide}\n onMouseLeave={scheduleHide}\n style={{\n borderColor: hueFor(hoverKey),\n ...(() => {\n const viewportLeft =\n wrapperRect.left +\n Math.max(\n 0,\n Math.min(\n hoverAnchor.px - metrics.platePadX,\n Math.max(0, wrapperWidth - POPOVER_CLAMP_WIDTH),\n ),\n );\n const cellTop = wrapperRect.top + hoverAnchor.py;\n // Above the cell when the viewport has room, else below;\n // decided in viewport space, then rebased onto the block\n // the offsets resolve against.\n const flipAbove = cellTop >= POPOVER_FLIP_MIN_TOP;\n const viewportTop = flipAbove\n ? cellTop - metrics.platePadY - POPOVER_OFFSET\n : cellTop + metrics.cellPx + metrics.platePadY + POPOVER_OFFSET;\n const left = viewportLeft - wrapperRect.originLeft;\n const top = viewportTop - wrapperRect.originTop;\n return flipAbove\n ? { left, top, transform: \"translateY(-100%)\" }\n : { left, top };\n })(),\n }}\n >\n <VStack gap={1.5} align=\"stretch\">\n {pickerOpen && onHueOverrideChange && (\n <HStack gap={1} align=\"center\">\n {palette.map((hue, pi) => {\n const pickThis = () => {\n onHueOverrideChange(hoverKey, pi);\n setPickerFor(null);\n };\n const selected = hueIndexFor(hoverKey) === pi;\n return (\n <svg\n key={pi}\n width={20}\n height={20}\n role=\"button\"\n tabIndex={0}\n aria-label={\n colorSwatchLabel\n ? colorSwatchLabel(pi + 1)\n : t(\"uic.UnitGrid.useColor\", { index: pi + 1 })\n }\n className=\"uic-unit-grid__swatch\"\n onClick={pickThis}\n onKeyDown={(e) => activateOnKey(e, pickThis)}\n >\n <rect\n x={1}\n y={1}\n width={18}\n height={18}\n rx={5}\n style={{ fill: hue, stroke: hue }}\n fillOpacity={0.35}\n strokeWidth={selected ? 2 : 1}\n />\n {selected && (\n <text\n x={10}\n y={10.5}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={11}\n fontWeight={700}\n pointerEvents=\"none\"\n style={{ fill: hue }}\n >\n ✓\n </text>\n )}\n </svg>\n );\n })}\n </HStack>\n )}\n {onHueOverrideChange && (\n <HStack gap={1.5} align=\"center\">\n <svg\n width={16}\n height={16}\n role=\"button\"\n tabIndex={0}\n aria-label={\n changeGroupColorLabel ?? t(\"uic.UnitGrid.changeGroupColor\")\n }\n className=\"uic-unit-grid__swatch\"\n onClick={togglePicker}\n onKeyDown={(e) => activateOnKey(e, togglePicker)}\n >\n <rect\n x={1}\n y={1}\n width={14}\n height={14}\n rx={4}\n style={{ fill: hueFor(hoverKey), stroke: hueFor(hoverKey) }}\n fillOpacity={0.15}\n strokeWidth={1.5}\n />\n </svg>\n <Text size=\"sm\" weight=\"semibold\">\n {hoveredGroup.label || hoveredGroup.key}\n </Text>\n </HStack>\n )}\n {renderGroupPopover?.(hoveredGroup, {\n hue: hueFor(hoverKey),\n closePopover,\n })}\n </VStack>\n </div>\n )}\n </div>\n )}\n </VStack>\n );\n}\n\nUnitGrid.displayName = \"UnitGrid\";\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface UnitGridSkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
3
+ /** Lattice rows, two blocks each. @default 3 */
4
+ rows?: number;
5
+ }
6
+ export declare function UnitGridSkeleton({ rows, className, ...divProps }: UnitGridSkeletonProps): import("react").JSX.Element;
7
+ export declare namespace UnitGridSkeleton {
8
+ var displayName: string;
9
+ }
@@ -0,0 +1,73 @@
1
+ import { HStack as e, VStack as t } from "@astryxdesign/core/Stack";
2
+ import { Skeleton as n } from "@astryxdesign/core/Skeleton";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/components/UnitGrid/UnitGridSkeleton.tsx
5
+ var a = 3, o = [
6
+ 140,
7
+ 180,
8
+ 100
9
+ ], s = "var(--size-element-sm)", c = 5, l = 10, u = 40, d = 12, f = [
10
+ ["45%", "25%"],
11
+ ["30%", "40%"],
12
+ ["55%", "20%"]
13
+ ], p = "var(--size-element-sm)";
14
+ function m({ rows: m = a, className: h, ...g }) {
15
+ let _ = 0;
16
+ return /* @__PURE__ */ i(t, {
17
+ gap: 3,
18
+ align: "stretch",
19
+ className: ["uic-unit-grid-skeleton", h].filter(Boolean).join(" "),
20
+ ...g,
21
+ children: [
22
+ /* @__PURE__ */ r(e, {
23
+ gap: 3,
24
+ align: "center",
25
+ children: o.map((e, t) => /* @__PURE__ */ r(n, {
26
+ width: e,
27
+ height: s,
28
+ radius: 2,
29
+ index: _++
30
+ }, t))
31
+ }),
32
+ /* @__PURE__ */ r(e, {
33
+ gap: 3,
34
+ wrap: "wrap",
35
+ align: "center",
36
+ children: Array.from({ length: c }, (t, a) => /* @__PURE__ */ i(e, {
37
+ gap: 1,
38
+ align: "center",
39
+ children: [/* @__PURE__ */ r(n, {
40
+ width: l,
41
+ height: l,
42
+ radius: 1,
43
+ index: _++
44
+ }), /* @__PURE__ */ r(n, {
45
+ width: u,
46
+ height: d,
47
+ radius: 1,
48
+ index: _++
49
+ })]
50
+ }, a))
51
+ }),
52
+ Array.from({ length: Math.max(0, m) }, (t, i) => {
53
+ let a = f[i % f.length];
54
+ return /* @__PURE__ */ r(e, {
55
+ gap: 3,
56
+ align: "center",
57
+ className: "uic-unit-grid-skeleton__row",
58
+ children: a.map((e, t) => /* @__PURE__ */ r(n, {
59
+ width: e,
60
+ height: p,
61
+ radius: 1,
62
+ index: _++
63
+ }, t))
64
+ }, i);
65
+ })
66
+ ]
67
+ });
68
+ }
69
+ m.displayName = "UnitGridSkeleton";
70
+ //#endregion
71
+ export { m as UnitGridSkeleton };
72
+
73
+ //# sourceMappingURL=UnitGridSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitGridSkeleton.js","names":[],"sources":["../../../src/components/UnitGrid/UnitGridSkeleton.tsx"],"sourcesContent":["/**\n * UnitGridSkeleton\n *\n * The loading stand-in for a UnitGrid and the toolbar above it: a row of\n * control-sized bars, a legend row, then two blocks per lattice row. The\n * lattice is drawn at low fidelity on purpose; mimicking plates and cells\n * would read as detail while nothing is loaded.\n *\n * @example\n * <Suspense fallback={<UnitGridSkeleton />}>...</Suspense>\n */\nimport type { HTMLAttributes } from \"react\";\nimport { HStack, VStack } from \"@astryxdesign/core/Stack\";\nimport { Skeleton } from \"@astryxdesign/core/Skeleton\";\n\nconst DEFAULT_ROW_COUNT = 3;\n\n/** The toolbar's control widths: per control, not a scale, so no token. */\nconst TOOLBAR_PILL_WIDTHS = [140, 180, 100] as const;\nconst TOOLBAR_PILL_HEIGHT = \"var(--size-element-sm)\";\n\nconst LEGEND_ITEM_COUNT = 5;\nconst LEGEND_SWATCH_SIZE = 10;\nconst LEGEND_LABEL_WIDTH = 40;\nconst LEGEND_LABEL_HEIGHT = 12;\n\n/** Two blocks per row, widths varied so the rows read organic. */\nconst ROW_BLOCK_WIDTHS = [\n [\"45%\", \"25%\"],\n [\"30%\", \"40%\"],\n [\"55%\", \"20%\"],\n] as const;\nconst ROW_BLOCK_HEIGHT = \"var(--size-element-sm)\";\n\nexport interface UnitGridSkeletonProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"children\"\n> {\n /** Lattice rows, two blocks each. @default 3 */\n rows?: number;\n}\n\nexport function UnitGridSkeleton({\n rows = DEFAULT_ROW_COUNT,\n className,\n ...divProps\n}: UnitGridSkeletonProps) {\n // One running index across every bar, so the shimmer reads as one wave.\n let waveIndex = 0;\n\n return (\n <VStack\n gap={3}\n align=\"stretch\"\n className={[\"uic-unit-grid-skeleton\", className].filter(Boolean).join(\" \")}\n {...divProps}\n >\n <HStack gap={3} align=\"center\">\n {TOOLBAR_PILL_WIDTHS.map((width, i) => (\n <Skeleton\n key={i}\n width={width}\n height={TOOLBAR_PILL_HEIGHT}\n radius={2}\n index={waveIndex++}\n />\n ))}\n </HStack>\n <HStack gap={3} wrap=\"wrap\" align=\"center\">\n {Array.from({ length: LEGEND_ITEM_COUNT }, (_unused, i) => (\n <HStack key={i} gap={1} align=\"center\">\n <Skeleton\n width={LEGEND_SWATCH_SIZE}\n height={LEGEND_SWATCH_SIZE}\n radius={1}\n index={waveIndex++}\n />\n <Skeleton\n width={LEGEND_LABEL_WIDTH}\n height={LEGEND_LABEL_HEIGHT}\n radius={1}\n index={waveIndex++}\n />\n </HStack>\n ))}\n </HStack>\n {Array.from({ length: Math.max(0, rows) }, (_unused, rowIdx) => {\n const widths = ROW_BLOCK_WIDTHS[rowIdx % ROW_BLOCK_WIDTHS.length]!;\n return (\n <HStack\n key={rowIdx}\n gap={3}\n align=\"center\"\n className=\"uic-unit-grid-skeleton__row\"\n >\n {widths.map((width, blockIdx) => (\n <Skeleton\n key={blockIdx}\n width={width}\n height={ROW_BLOCK_HEIGHT}\n radius={1}\n index={waveIndex++}\n />\n ))}\n </HStack>\n );\n })}\n </VStack>\n );\n}\n\nUnitGridSkeleton.displayName = \"UnitGridSkeleton\";\n"],"mappings":";;;;AAeA,IAAM,IAAoB,GAGpB,IAAsB;CAAC;CAAK;CAAK;AAAG,GACpC,IAAsB,0BAEtB,IAAoB,GACpB,IAAqB,IACrB,IAAqB,IACrB,IAAsB,IAGtB,IAAmB;CACvB,CAAC,OAAO,KAAK;CACb,CAAC,OAAO,KAAK;CACb,CAAC,OAAO,KAAK;AACf,GACM,IAAmB;AAUzB,SAAgB,EAAiB,EAC/B,UAAO,GACP,cACA,GAAG,KACqB;CAExB,IAAI,IAAY;CAEhB,OACE,kBAAC,GAAD;EACE,KAAK;EACL,OAAM;EACN,WAAW,CAAC,0BAA0B,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EACzE,GAAI;EAJN,UAAA;GAME,kBAAC,GAAD;IAAQ,KAAK;IAAG,OAAM;IACnB,UAAA,EAAoB,KAAK,GAAO,MAC/B,kBAAC,GAAD;KAES;KACP,QAAQ;KACR,QAAQ;KACR,OAAO;IACR,GALM,CAKN,CACF;GACK,CAAA;GACR,kBAAC,GAAD;IAAQ,KAAK;IAAG,MAAK;IAAO,OAAM;IAC/B,UAAA,MAAM,KAAK,EAAE,QAAQ,EAAkB,IAAI,GAAS,MACnD,kBAAC,GAAD;KAAgB,KAAK;KAAG,OAAM;KAA9B,UAAA,CACE,kBAAC,GAAD;MACE,OAAO;MACP,QAAQ;MACR,QAAQ;MACR,OAAO;KACR,CAAA,GACD,kBAAC,GAAD;MACE,OAAO;MACP,QAAQ;MACR,QAAQ;MACR,OAAO;KACR,CAAA,CACK;IAbK,GAAA,CAaL,CACT;GACK,CAAA;GACP,MAAM,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,CAAI,EAAE,IAAI,GAAS,MAAW;IAC9D,IAAM,IAAS,EAAiB,IAAS,EAAiB;IAC1D,OACE,kBAAC,GAAD;KAEE,KAAK;KACL,OAAM;KACN,WAAU;KAET,UAAA,EAAO,KAAK,GAAO,MAClB,kBAAC,GAAD;MAES;MACP,QAAQ;MACR,QAAQ;MACR,OAAO;KACR,GALM,CAKN,CACF;IACK,GAdD,CAcC;GAEZ,CAAC;EACK;;AAEZ;AAEA,EAAiB,cAAc"}
@@ -0,0 +1,4 @@
1
+ export { UnitGrid } from './UnitGrid';
2
+ export type { UnitGridGroup, UnitGridLayout, UnitGridLegendItem, UnitGridProps, UnitGridUnit, } from './UnitGrid';
3
+ export { UnitGridSkeleton } from './UnitGridSkeleton';
4
+ export type { UnitGridSkeletonProps } from './UnitGridSkeleton';
@@ -0,0 +1,3 @@
1
+ import { UnitGrid as e } from "./UnitGrid2.js";
2
+ import { UnitGridSkeleton as t } from "./UnitGridSkeleton.js";
3
+ export { e as UnitGrid, t as UnitGridSkeleton };