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

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 (909) hide show
  1. package/NOTICE +62 -0
  2. package/README.md +490 -68
  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/utils.d.ts +1 -0
  215. package/dist/astryx/Markdown/utils.js +1 -0
  216. package/dist/astryx/Markdown.d.ts +1 -0
  217. package/dist/astryx/Markdown.js +1 -0
  218. package/dist/astryx/MetadataList.d.ts +1 -0
  219. package/dist/astryx/MetadataList.js +1 -0
  220. package/dist/astryx/MobileNav.d.ts +1 -0
  221. package/dist/astryx/MobileNav.js +1 -0
  222. package/dist/astryx/MoreMenu.d.ts +1 -0
  223. package/dist/astryx/MoreMenu.js +1 -0
  224. package/dist/astryx/MultiSelector.d.ts +1 -0
  225. package/dist/astryx/MultiSelector.js +1 -0
  226. package/dist/astryx/NavIcon.d.ts +1 -0
  227. package/dist/astryx/NavIcon.js +1 -0
  228. package/dist/astryx/NavMenu.d.ts +1 -0
  229. package/dist/astryx/NavMenu.js +1 -0
  230. package/dist/astryx/NumberInput.d.ts +1 -0
  231. package/dist/astryx/NumberInput.js +1 -0
  232. package/dist/astryx/Outline.d.ts +1 -0
  233. package/dist/astryx/Outline.js +1 -0
  234. package/dist/astryx/OverflowList.d.ts +1 -0
  235. package/dist/astryx/OverflowList.js +1 -0
  236. package/dist/astryx/Overlay.d.ts +1 -0
  237. package/dist/astryx/Overlay.js +1 -0
  238. package/dist/astryx/Pagination.d.ts +1 -0
  239. package/dist/astryx/Pagination.js +1 -0
  240. package/dist/astryx/Popover.d.ts +1 -0
  241. package/dist/astryx/Popover.js +1 -0
  242. package/dist/astryx/PowerSearch/utils.d.ts +1 -0
  243. package/dist/astryx/PowerSearch/utils.js +1 -0
  244. package/dist/astryx/PowerSearch.d.ts +1 -0
  245. package/dist/astryx/PowerSearch.js +1 -0
  246. package/dist/astryx/ProgressBar.d.ts +1 -0
  247. package/dist/astryx/ProgressBar.js +1 -0
  248. package/dist/astryx/RadioList.d.ts +1 -0
  249. package/dist/astryx/RadioList.js +1 -0
  250. package/dist/astryx/Resizable/utils.d.ts +1 -0
  251. package/dist/astryx/Resizable/utils.js +1 -0
  252. package/dist/astryx/Resizable.d.ts +1 -0
  253. package/dist/astryx/Resizable.js +1 -0
  254. package/dist/astryx/ScrollableArea.d.ts +1 -0
  255. package/dist/astryx/ScrollableArea.js +1 -0
  256. package/dist/astryx/Section.d.ts +1 -0
  257. package/dist/astryx/Section.js +1 -0
  258. package/dist/astryx/SegmentedControl.d.ts +1 -0
  259. package/dist/astryx/SegmentedControl.js +1 -0
  260. package/dist/astryx/SelectableCard.d.ts +1 -0
  261. package/dist/astryx/SelectableCard.js +1 -0
  262. package/dist/astryx/Selector/utils.d.ts +1 -0
  263. package/dist/astryx/Selector/utils.js +1 -0
  264. package/dist/astryx/Selector.d.ts +1 -0
  265. package/dist/astryx/Selector.js +1 -0
  266. package/dist/astryx/SideNav.d.ts +1 -0
  267. package/dist/astryx/SideNav.js +1 -0
  268. package/dist/astryx/SizeContext.d.ts +1 -0
  269. package/dist/astryx/SizeContext.js +1 -0
  270. package/dist/astryx/Skeleton.d.ts +1 -0
  271. package/dist/astryx/Skeleton.js +1 -0
  272. package/dist/astryx/Slider.d.ts +1 -0
  273. package/dist/astryx/Slider.js +1 -0
  274. package/dist/astryx/Spinner.d.ts +1 -0
  275. package/dist/astryx/Spinner.js +1 -0
  276. package/dist/astryx/Stack.d.ts +1 -0
  277. package/dist/astryx/Stack.js +1 -0
  278. package/dist/astryx/StatusDot.d.ts +1 -0
  279. package/dist/astryx/StatusDot.js +1 -0
  280. package/dist/astryx/Stepper.d.ts +1 -0
  281. package/dist/astryx/Stepper.js +1 -0
  282. package/dist/astryx/Switch.d.ts +1 -0
  283. package/dist/astryx/Switch.js +1 -0
  284. package/dist/astryx/TabList.d.ts +1 -0
  285. package/dist/astryx/TabList.js +1 -0
  286. package/dist/astryx/Table/utils.d.ts +1 -0
  287. package/dist/astryx/Table/utils.js +1 -0
  288. package/dist/astryx/Table.d.ts +1 -0
  289. package/dist/astryx/Table.js +1 -0
  290. package/dist/astryx/Text.d.ts +1 -0
  291. package/dist/astryx/Text.js +1 -0
  292. package/dist/astryx/TextArea.d.ts +1 -0
  293. package/dist/astryx/TextArea.js +1 -0
  294. package/dist/astryx/TextInput.d.ts +1 -0
  295. package/dist/astryx/TextInput.js +1 -0
  296. package/dist/astryx/Thumbnail.d.ts +1 -0
  297. package/dist/astryx/Thumbnail.js +1 -0
  298. package/dist/astryx/TimeInput.d.ts +1 -0
  299. package/dist/astryx/TimeInput.js +1 -0
  300. package/dist/astryx/Timestamp.d.ts +1 -0
  301. package/dist/astryx/Timestamp.js +1 -0
  302. package/dist/astryx/Toast.d.ts +1 -0
  303. package/dist/astryx/Toast.js +1 -0
  304. package/dist/astryx/ToggleButton.d.ts +1 -0
  305. package/dist/astryx/ToggleButton.js +1 -0
  306. package/dist/astryx/Token.d.ts +1 -0
  307. package/dist/astryx/Token.js +1 -0
  308. package/dist/astryx/Tokenizer.d.ts +1 -0
  309. package/dist/astryx/Tokenizer.js +1 -0
  310. package/dist/astryx/Toolbar.d.ts +1 -0
  311. package/dist/astryx/Toolbar.js +1 -0
  312. package/dist/astryx/Tooltip.d.ts +1 -0
  313. package/dist/astryx/Tooltip.js +1 -0
  314. package/dist/astryx/TopNav.d.ts +1 -0
  315. package/dist/astryx/TopNav.js +1 -0
  316. package/dist/astryx/TreeList.d.ts +1 -0
  317. package/dist/astryx/TreeList.js +1 -0
  318. package/dist/astryx/Typeahead/utils.d.ts +1 -0
  319. package/dist/astryx/Typeahead/utils.js +1 -0
  320. package/dist/astryx/Typeahead.d.ts +1 -0
  321. package/dist/astryx/Typeahead.js +1 -0
  322. package/dist/astryx/VStack.d.ts +1 -0
  323. package/dist/astryx/VStack.js +1 -0
  324. package/dist/astryx/VisuallyHidden.d.ts +1 -0
  325. package/dist/astryx/VisuallyHidden.js +1 -0
  326. package/dist/astryx/astryx.css +3 -0
  327. package/dist/astryx/hooks.d.ts +1 -0
  328. package/dist/astryx/hooks.js +1 -0
  329. package/dist/astryx/i18n.d.ts +1 -0
  330. package/dist/astryx/i18n.js +1 -0
  331. package/dist/astryx/lab/lab.css +3 -0
  332. package/dist/astryx/lab.d.ts +6 -0
  333. package/dist/astryx/lab.js +6 -0
  334. package/dist/astryx/naming.d.ts +1 -0
  335. package/dist/astryx/naming.js +1 -0
  336. package/dist/astryx/reset.css +3 -0
  337. package/dist/astryx/tailwind-theme.css +3 -0
  338. package/dist/astryx/theme/neutral/built.d.ts +1 -0
  339. package/dist/astryx/theme/neutral/built.js +1 -0
  340. package/dist/astryx/theme/neutral/theme.css +3 -0
  341. package/dist/astryx/theme/neutral.d.ts +1 -0
  342. package/dist/astryx/theme/neutral.js +1 -0
  343. package/dist/astryx/theme/syntax.d.ts +1 -0
  344. package/dist/astryx/theme/syntax.js +1 -0
  345. package/dist/astryx/theme/tokens.d.ts +1 -0
  346. package/dist/astryx/theme/tokens.js +1 -0
  347. package/dist/astryx/theme/tokens.stylex.d.ts +1 -0
  348. package/dist/astryx/theme/tokens.stylex.js +1 -0
  349. package/dist/astryx/theme.d.ts +1 -0
  350. package/dist/astryx/theme.js +1 -0
  351. package/dist/astryx/utils.d.ts +1 -0
  352. package/dist/astryx/utils.js +1 -0
  353. package/dist/components/AlertModal/AlertModal.d.ts +14 -0
  354. package/dist/components/AlertModal/AlertModal.js +56 -0
  355. package/dist/components/AlertModal/AlertModal.js.map +1 -0
  356. package/dist/components/AlertModal/index.d.ts +2 -0
  357. package/dist/components/AlertModal/index.js +2 -0
  358. package/dist/components/BoardItemTitle/BoardItemTitle.d.ts +15 -0
  359. package/dist/components/BoardItemTitle/BoardItemTitle2.js +42 -0
  360. package/dist/components/BoardItemTitle/BoardItemTitle2.js.map +1 -0
  361. package/dist/components/BoardItemTitle/index.d.ts +2 -0
  362. package/dist/components/BoardItemTitle/index.js +2 -0
  363. package/dist/components/BooleanToken/BooleanToken.d.ts +15 -0
  364. package/dist/components/BooleanToken/BooleanToken.js +19 -0
  365. package/dist/components/BooleanToken/BooleanToken.js.map +1 -0
  366. package/dist/components/BooleanToken/BooleanToken.messages.d.ts +10 -0
  367. package/dist/components/BooleanToken/BooleanToken.messages.js +16 -0
  368. package/dist/components/BooleanToken/BooleanToken.messages.js.map +1 -0
  369. package/dist/components/BooleanToken/index.d.ts +2 -0
  370. package/dist/components/BooleanToken/index.js +2 -0
  371. package/dist/components/BulkEditFormItem/BulkEditFormItem.d.ts +24 -0
  372. package/dist/components/BulkEditFormItem/BulkEditFormItem.js +93 -0
  373. package/dist/components/BulkEditFormItem/BulkEditFormItem.js.map +1 -0
  374. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.d.ts +14 -0
  375. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.js +20 -0
  376. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.js.map +1 -0
  377. package/dist/components/BulkEditFormItem/index.d.ts +2 -0
  378. package/dist/components/BulkEditFormItem/index.js +2 -0
  379. package/dist/components/BulkErrorModal/BulkErrorModal.d.ts +23 -0
  380. package/dist/components/BulkErrorModal/BulkErrorModal.messages.d.ts +10 -0
  381. package/dist/components/BulkErrorModal/BulkErrorModal.messages.js +16 -0
  382. package/dist/components/BulkErrorModal/BulkErrorModal.messages.js.map +1 -0
  383. package/dist/components/BulkErrorModal/BulkErrorModal2.js +55 -0
  384. package/dist/components/BulkErrorModal/BulkErrorModal2.js.map +1 -0
  385. package/dist/components/BulkErrorModal/index.d.ts +2 -0
  386. package/dist/components/BulkErrorModal/index.js +2 -0
  387. package/dist/components/ColorPicker/ColorPicker.d.ts +43 -0
  388. package/dist/components/ColorPicker/ColorPicker.messages.d.ts +18 -0
  389. package/dist/components/ColorPicker/ColorPicker.messages.js +24 -0
  390. package/dist/components/ColorPicker/ColorPicker.messages.js.map +1 -0
  391. package/dist/components/ColorPicker/ColorPicker2.js +117 -0
  392. package/dist/components/ColorPicker/ColorPicker2.js.map +1 -0
  393. package/dist/components/ColorPicker/index.d.ts +2 -0
  394. package/dist/components/ColorPicker/index.js +2 -0
  395. package/dist/components/ConfirmPopover/ConfirmPopover.d.ts +35 -0
  396. package/dist/components/ConfirmPopover/ConfirmPopover.js +75 -0
  397. package/dist/components/ConfirmPopover/ConfirmPopover.js.map +1 -0
  398. package/dist/components/ConfirmPopover/index.d.ts +2 -0
  399. package/dist/components/ConfirmPopover/index.js +2 -0
  400. package/dist/components/CountBadge/CountBadge.d.ts +24 -0
  401. package/dist/components/CountBadge/CountBadge2.js +35 -0
  402. package/dist/components/CountBadge/CountBadge2.js.map +1 -0
  403. package/dist/components/CountBadge/index.d.ts +2 -0
  404. package/dist/components/CountBadge/index.js +2 -0
  405. package/dist/components/CountdownBorder/CountdownBorder.d.ts +22 -0
  406. package/dist/components/CountdownBorder/CountdownBorder2.js +63 -0
  407. package/dist/components/CountdownBorder/CountdownBorder2.js.map +1 -0
  408. package/dist/components/CountdownBorder/index.d.ts +2 -0
  409. package/dist/components/CountdownBorder/index.js +2 -0
  410. package/dist/components/DataGrid/DataGrid.d.ts +212 -0
  411. package/dist/components/DataGrid/DataGrid.messages.d.ts +70 -0
  412. package/dist/components/DataGrid/DataGrid.messages.js +76 -0
  413. package/dist/components/DataGrid/DataGrid.messages.js.map +1 -0
  414. package/dist/components/DataGrid/DataGrid2.js +447 -0
  415. package/dist/components/DataGrid/DataGrid2.js.map +1 -0
  416. package/dist/components/DataGrid/DataGridExportModal.d.ts +30 -0
  417. package/dist/components/DataGrid/DataGridExportModal.js +125 -0
  418. package/dist/components/DataGrid/DataGridExportModal.js.map +1 -0
  419. package/dist/components/DataGrid/DataGridSettingsModal.d.ts +36 -0
  420. package/dist/components/DataGrid/DataGridSettingsModal.js +177 -0
  421. package/dist/components/DataGrid/DataGridSettingsModal.js.map +1 -0
  422. package/dist/components/DataGrid/index.d.ts +6 -0
  423. package/dist/components/DataGrid/index.js +4 -0
  424. package/dist/components/DataGrid/nodeToPlainText.d.ts +6 -0
  425. package/dist/components/DataGrid/nodeToPlainText.js +9 -0
  426. package/dist/components/DataGrid/nodeToPlainText.js.map +1 -0
  427. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.d.ts +78 -0
  428. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.d.ts +30 -0
  429. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.js +36 -0
  430. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.js.map +1 -0
  431. package/dist/components/DeleteConfirmModal/DeleteConfirmModal2.js +102 -0
  432. package/dist/components/DeleteConfirmModal/DeleteConfirmModal2.js.map +1 -0
  433. package/dist/components/DeleteConfirmModal/index.d.ts +2 -0
  434. package/dist/components/DeleteConfirmModal/index.js +2 -0
  435. package/dist/components/DigitPopIn/DigitPopIn.d.ts +8 -0
  436. package/dist/components/DigitPopIn/DigitPopIn2.js +30 -0
  437. package/dist/components/DigitPopIn/DigitPopIn2.js.map +1 -0
  438. package/dist/components/DigitPopIn/index.d.ts +2 -0
  439. package/dist/components/DigitPopIn/index.js +2 -0
  440. package/dist/components/DividedRow/DividedRow.d.ts +27 -0
  441. package/dist/components/DividedRow/DividedRow2.js +63 -0
  442. package/dist/components/DividedRow/DividedRow2.js.map +1 -0
  443. package/dist/components/DividedRow/index.d.ts +2 -0
  444. package/dist/components/DividedRow/index.js +2 -0
  445. package/dist/components/DoubleBadge/DoubleBadge.d.ts +14 -0
  446. package/dist/components/DoubleBadge/DoubleBadge2.js +28 -0
  447. package/dist/components/DoubleBadge/DoubleBadge2.js.map +1 -0
  448. package/dist/components/DoubleBadge/index.d.ts +2 -0
  449. package/dist/components/DoubleBadge/index.js +2 -0
  450. package/dist/components/DoubleToken/DoubleToken.d.ts +24 -0
  451. package/dist/components/DoubleToken/DoubleToken2.js +38 -0
  452. package/dist/components/DoubleToken/DoubleToken2.js.map +1 -0
  453. package/dist/components/DoubleToken/index.d.ts +2 -0
  454. package/dist/components/DoubleToken/index.js +2 -0
  455. package/dist/components/ErrorState/ErrorState.d.ts +7 -16
  456. package/dist/components/ErrorState/ErrorState2.js +33 -33
  457. package/dist/components/ErrorState/ErrorState2.js.map +1 -1
  458. package/dist/components/Form/ErrorList.d.ts +13 -0
  459. package/dist/components/Form/ErrorList.js +21 -0
  460. package/dist/components/Form/ErrorList.js.map +1 -0
  461. package/dist/components/Form/Field.d.ts +88 -0
  462. package/dist/components/Form/Field.js +212 -0
  463. package/dist/components/Form/Field.js.map +1 -0
  464. package/dist/components/Form/Form.d.ts +70 -0
  465. package/dist/components/Form/Form.js +130 -0
  466. package/dist/components/Form/Form.js.map +1 -0
  467. package/dist/components/Form/Form.messages.d.ts +96 -0
  468. package/dist/components/Form/Form.messages.js +96 -0
  469. package/dist/components/Form/Form.messages.js.map +1 -0
  470. package/dist/components/Form/FormConfigProvider.d.ts +20 -0
  471. package/dist/components/Form/FormConfigProvider.js +31 -0
  472. package/dist/components/Form/FormConfigProvider.js.map +1 -0
  473. package/dist/components/Form/FormItem.d.ts +56 -0
  474. package/dist/components/Form/FormItem.js +164 -0
  475. package/dist/components/Form/FormItem.js.map +1 -0
  476. package/dist/components/Form/FormItemVisual.d.ts +56 -0
  477. package/dist/components/Form/FormItemVisual2.js +117 -0
  478. package/dist/components/Form/FormItemVisual2.js.map +1 -0
  479. package/dist/components/Form/FormStore.d.ts +109 -0
  480. package/dist/components/Form/FormStore.js +494 -0
  481. package/dist/components/Form/FormStore.js.map +1 -0
  482. package/dist/components/Form/List.d.ts +22 -0
  483. package/dist/components/Form/List.js +65 -0
  484. package/dist/components/Form/List.js.map +1 -0
  485. package/dist/components/Form/context.d.ts +91 -0
  486. package/dist/components/Form/context.js +34 -0
  487. package/dist/components/Form/context.js.map +1 -0
  488. package/dist/components/Form/feedbackIcons.d.ts +13 -0
  489. package/dist/components/Form/feedbackIcons.js +45 -0
  490. package/dist/components/Form/feedbackIcons.js.map +1 -0
  491. package/dist/components/Form/index.d.ts +30 -0
  492. package/dist/components/Form/index.js +18 -0
  493. package/dist/components/Form/index.js.map +1 -0
  494. package/dist/components/Form/interface.d.ts +212 -0
  495. package/dist/components/Form/isEqual.d.ts +1 -0
  496. package/dist/components/Form/isEqual.js +61 -0
  497. package/dist/components/Form/isEqual.js.map +1 -0
  498. package/dist/components/Form/messages.d.ts +15 -0
  499. package/dist/components/Form/messages.js +52 -0
  500. package/dist/components/Form/messages.js.map +1 -0
  501. package/dist/components/Form/namePath.d.ts +78 -0
  502. package/dist/components/Form/namePath.js +120 -0
  503. package/dist/components/Form/namePath.js.map +1 -0
  504. package/dist/components/Form/useWatch.d.ts +11 -0
  505. package/dist/components/Form/useWatch.js +43 -0
  506. package/dist/components/Form/useWatch.js.map +1 -0
  507. package/dist/components/Form/validate.d.ts +16 -0
  508. package/dist/components/Form/validate.js +214 -0
  509. package/dist/components/Form/validate.js.map +1 -0
  510. package/dist/components/IconWithTooltip/IconWithTooltip.d.ts +19 -0
  511. package/dist/components/IconWithTooltip/IconWithTooltip2.js +38 -0
  512. package/dist/components/IconWithTooltip/IconWithTooltip2.js.map +1 -0
  513. package/dist/components/IconWithTooltip/accessibleLabel.d.ts +2 -0
  514. package/dist/components/IconWithTooltip/accessibleLabel.js +33 -0
  515. package/dist/components/IconWithTooltip/accessibleLabel.js.map +1 -0
  516. package/dist/components/IconWithTooltip/index.d.ts +2 -0
  517. package/dist/components/IconWithTooltip/index.js +2 -0
  518. package/dist/components/ImageWithFallback/ImageWithFallback.d.ts +11 -0
  519. package/dist/components/ImageWithFallback/ImageWithFallback2.js +28 -0
  520. package/dist/components/ImageWithFallback/ImageWithFallback2.js.map +1 -0
  521. package/dist/components/ImageWithFallback/index.d.ts +2 -0
  522. package/dist/components/ImageWithFallback/index.js +2 -0
  523. package/dist/components/ListBanner/ListBanner.d.ts +17 -0
  524. package/dist/components/ListBanner/ListBanner2.js +27 -0
  525. package/dist/components/ListBanner/ListBanner2.js.map +1 -0
  526. package/dist/components/ListBanner/index.d.ts +2 -0
  527. package/dist/components/ListBanner/index.js +2 -0
  528. package/dist/components/Modal/Modal.d.ts +65 -0
  529. package/dist/components/Modal/Modal2.js +226 -0
  530. package/dist/components/Modal/Modal2.js.map +1 -0
  531. package/dist/components/Modal/index.d.ts +15 -0
  532. package/dist/components/Modal/index.js +4 -0
  533. package/dist/components/Modal/modalStack.d.ts +64 -0
  534. package/dist/components/Modal/modalStack.js +81 -0
  535. package/dist/components/Modal/modalStack.js.map +1 -0
  536. package/dist/components/NotificationItem/NotificationItem.d.ts +14 -0
  537. package/dist/components/NotificationItem/NotificationItem2.js +40 -0
  538. package/dist/components/NotificationItem/NotificationItem2.js.map +1 -0
  539. package/dist/components/NotificationItem/index.d.ts +2 -0
  540. package/dist/components/NotificationItem/index.js +2 -0
  541. package/dist/components/NotificationStack/NotificationStack.d.ts +56 -0
  542. package/dist/components/NotificationStack/NotificationStack.messages.d.ts +6 -0
  543. package/dist/components/NotificationStack/NotificationStack.messages.js +10 -0
  544. package/dist/components/NotificationStack/NotificationStack.messages.js.map +1 -0
  545. package/dist/components/NotificationStack/NotificationStack2.js +154 -0
  546. package/dist/components/NotificationStack/NotificationStack2.js.map +1 -0
  547. package/dist/components/NotificationStack/index.d.ts +2 -0
  548. package/dist/components/NotificationStack/index.js +2 -0
  549. package/dist/components/OverlayScrollbar/OverlayScrollbar.d.ts +13 -0
  550. package/dist/components/OverlayScrollbar/OverlayScrollbar2.js +69 -0
  551. package/dist/components/OverlayScrollbar/OverlayScrollbar2.js.map +1 -0
  552. package/dist/components/OverlayScrollbar/index.d.ts +2 -0
  553. package/dist/components/OverlayScrollbar/index.js +2 -0
  554. package/dist/components/PageHeader/PageHeader.d.ts +24 -8
  555. package/dist/components/PageHeader/PageHeader.messages.d.ts +6 -0
  556. package/dist/components/PageHeader/PageHeader.messages.js +10 -0
  557. package/dist/components/PageHeader/PageHeader.messages.js.map +1 -0
  558. package/dist/components/PageHeader/PageHeader2.js +57 -30
  559. package/dist/components/PageHeader/PageHeader2.js.map +1 -1
  560. package/dist/components/PageLayout/PageLayout2.js +2 -2
  561. package/dist/components/PageLayout/PageLayout2.js.map +1 -1
  562. package/dist/components/PagedSelector/PagedSelector.d.ts +107 -0
  563. package/dist/components/PagedSelector/PagedSelector.messages.d.ts +30 -0
  564. package/dist/components/PagedSelector/PagedSelector.messages.js +36 -0
  565. package/dist/components/PagedSelector/PagedSelector.messages.js.map +1 -0
  566. package/dist/components/PagedSelector/PagedSelector2.js +220 -0
  567. package/dist/components/PagedSelector/PagedSelector2.js.map +1 -0
  568. package/dist/components/PagedSelector/PanelSearchInput.d.ts +22 -0
  569. package/dist/components/PagedSelector/PanelSearchInput.js +95 -0
  570. package/dist/components/PagedSelector/PanelSearchInput.js.map +1 -0
  571. package/dist/components/PagedSelector/index.d.ts +2 -0
  572. package/dist/components/PagedSelector/index.js +2 -0
  573. package/dist/components/ProgressWithLabel/ProgressWithLabel.d.ts +26 -0
  574. package/dist/components/ProgressWithLabel/ProgressWithLabel2.js +44 -0
  575. package/dist/components/ProgressWithLabel/ProgressWithLabel2.js.map +1 -0
  576. package/dist/components/ProgressWithLabel/index.d.ts +2 -0
  577. package/dist/components/ProgressWithLabel/index.js +2 -0
  578. package/dist/components/SelectionLabel/SelectionLabel.d.ts +23 -0
  579. package/dist/components/SelectionLabel/SelectionLabel.js +29 -0
  580. package/dist/components/SelectionLabel/SelectionLabel.js.map +1 -0
  581. package/dist/components/SelectionLabel/SelectionLabel.messages.d.ts +10 -0
  582. package/dist/components/SelectionLabel/SelectionLabel.messages.js +16 -0
  583. package/dist/components/SelectionLabel/SelectionLabel.messages.js.map +1 -0
  584. package/dist/components/SelectionLabel/index.d.ts +2 -0
  585. package/dist/components/SelectionLabel/index.js +2 -0
  586. package/dist/components/Skeleton/Skeleton.messages.d.ts +18 -0
  587. package/dist/components/Skeleton/Skeleton.messages.js +24 -0
  588. package/dist/components/Skeleton/Skeleton.messages.js.map +1 -0
  589. package/dist/components/Skeleton/SkeletonCard.d.ts +4 -9
  590. package/dist/components/Skeleton/SkeletonCard2.js +53 -53
  591. package/dist/components/Skeleton/SkeletonCard2.js.map +1 -1
  592. package/dist/components/Skeleton/SkeletonChart.d.ts +5 -11
  593. package/dist/components/Skeleton/SkeletonChart2.js +51 -45
  594. package/dist/components/Skeleton/SkeletonChart2.js.map +1 -1
  595. package/dist/components/Skeleton/SkeletonRow.d.ts +5 -10
  596. package/dist/components/Skeleton/SkeletonRow2.js +35 -34
  597. package/dist/components/Skeleton/SkeletonRow2.js.map +1 -1
  598. package/dist/components/Skeleton/SkeletonShape.d.ts +10 -0
  599. package/dist/components/Skeleton/SkeletonShape2.js +23 -0
  600. package/dist/components/Skeleton/SkeletonShape2.js.map +1 -0
  601. package/dist/components/Skeleton/SkeletonText.d.ts +4 -9
  602. package/dist/components/Skeleton/SkeletonText2.js +22 -17
  603. package/dist/components/Skeleton/SkeletonText2.js.map +1 -1
  604. package/dist/components/Skeleton/index.d.ts +3 -5
  605. package/dist/components/Skeleton/index.js +4 -5
  606. package/dist/components/SmoothHeight/SmoothHeight2.js +2 -2
  607. package/dist/components/SmoothHeight/SmoothHeight2.js.map +1 -1
  608. package/dist/components/StatCard/StatCard.d.ts +28 -16
  609. package/dist/components/StatCard/StatCard2.js +96 -89
  610. package/dist/components/StatCard/StatCard2.js.map +1 -1
  611. package/dist/components/StatCard/index.d.ts +1 -1
  612. package/dist/components/Statistic/Statistic.d.ts +30 -0
  613. package/dist/components/Statistic/Statistic.messages.d.ts +6 -0
  614. package/dist/components/Statistic/Statistic.messages.js +10 -0
  615. package/dist/components/Statistic/Statistic.messages.js.map +1 -0
  616. package/dist/components/Statistic/Statistic2.js +75 -0
  617. package/dist/components/Statistic/Statistic2.js.map +1 -0
  618. package/dist/components/Statistic/index.d.ts +2 -0
  619. package/dist/components/Statistic/index.js +2 -0
  620. package/dist/components/StepNumberInput/NumberStepper.d.ts +29 -0
  621. package/dist/components/StepNumberInput/NumberStepper.messages.d.ts +10 -0
  622. package/dist/components/StepNumberInput/NumberStepper.messages.js +16 -0
  623. package/dist/components/StepNumberInput/NumberStepper.messages.js.map +1 -0
  624. package/dist/components/StepNumberInput/NumberStepper2.js +50 -0
  625. package/dist/components/StepNumberInput/NumberStepper2.js.map +1 -0
  626. package/dist/components/StepNumberInput/StepNumberInput.d.ts +33 -0
  627. package/dist/components/StepNumberInput/StepNumberInput.js +48 -0
  628. package/dist/components/StepNumberInput/StepNumberInput.js.map +1 -0
  629. package/dist/components/StepNumberInput/index.d.ts +4 -0
  630. package/dist/components/StepNumberInput/index.js +3 -0
  631. package/dist/components/TextHighlighter/TextHighlighter.d.ts +14 -0
  632. package/dist/components/TextHighlighter/TextHighlighter2.js +29 -0
  633. package/dist/components/TextHighlighter/TextHighlighter2.js.map +1 -0
  634. package/dist/components/TextHighlighter/index.d.ts +2 -0
  635. package/dist/components/TextHighlighter/index.js +2 -0
  636. package/dist/components/TokenList/TokenList.d.ts +18 -0
  637. package/dist/components/TokenList/TokenList2.js +55 -0
  638. package/dist/components/TokenList/TokenList2.js.map +1 -0
  639. package/dist/components/TokenList/index.d.ts +2 -0
  640. package/dist/components/TokenList/index.js +2 -0
  641. package/dist/components/TokenRow/TokenRow.d.ts +27 -0
  642. package/dist/components/TokenRow/TokenRow.messages.d.ts +6 -0
  643. package/dist/components/TokenRow/TokenRow.messages.js +10 -0
  644. package/dist/components/TokenRow/TokenRow.messages.js.map +1 -0
  645. package/dist/components/TokenRow/TokenRow2.js +29 -0
  646. package/dist/components/TokenRow/TokenRow2.js.map +1 -0
  647. package/dist/components/TokenRow/index.d.ts +2 -0
  648. package/dist/components/TokenRow/index.js +2 -0
  649. package/dist/components/UncontrolledInput/UncontrolledInput.d.ts +29 -0
  650. package/dist/components/UncontrolledInput/UncontrolledInput.js +49 -0
  651. package/dist/components/UncontrolledInput/UncontrolledInput.js.map +1 -0
  652. package/dist/components/UncontrolledInput/UncontrolledInput.messages.d.ts +6 -0
  653. package/dist/components/UncontrolledInput/UncontrolledInput.messages.js +10 -0
  654. package/dist/components/UncontrolledInput/UncontrolledInput.messages.js.map +1 -0
  655. package/dist/components/UncontrolledInput/index.d.ts +2 -0
  656. package/dist/components/UncontrolledInput/index.js +2 -0
  657. package/dist/components/UnitGrid/UnitGrid.d.ts +56 -0
  658. package/dist/components/UnitGrid/UnitGrid.geometry.d.ts +102 -0
  659. package/dist/components/UnitGrid/UnitGrid.geometry.js +172 -0
  660. package/dist/components/UnitGrid/UnitGrid.geometry.js.map +1 -0
  661. package/dist/components/UnitGrid/UnitGrid.messages.d.ts +14 -0
  662. package/dist/components/UnitGrid/UnitGrid.messages.js +20 -0
  663. package/dist/components/UnitGrid/UnitGrid.messages.js.map +1 -0
  664. package/dist/components/UnitGrid/UnitGrid2.js +393 -0
  665. package/dist/components/UnitGrid/UnitGrid2.js.map +1 -0
  666. package/dist/components/UnitGrid/UnitGridSkeleton.d.ts +9 -0
  667. package/dist/components/UnitGrid/UnitGridSkeleton.js +73 -0
  668. package/dist/components/UnitGrid/UnitGridSkeleton.js.map +1 -0
  669. package/dist/components/UnitGrid/index.d.ts +4 -0
  670. package/dist/components/UnitGrid/index.js +3 -0
  671. package/dist/forks/ComplexSelector/ComplexSelector.d.ts +144 -0
  672. package/dist/forks/ComplexSelector/ComplexSelector.js +157 -0
  673. package/dist/forks/ComplexSelector/ComplexSelector.js.map +1 -0
  674. package/dist/forks/ComplexSelector/ComplexSelector.styles.d.ts +125 -0
  675. package/dist/forks/ComplexSelector/ComplexSelector.styles.js +129 -0
  676. package/dist/forks/ComplexSelector/ComplexSelector.styles.js.map +1 -0
  677. package/dist/forks/ComplexSelector/index.d.ts +7 -0
  678. package/dist/forks/ComplexSelector/index.js +2 -0
  679. package/dist/forks/Drawer/Drawer.d.ts +98 -0
  680. package/dist/forks/Drawer/Drawer.js +94 -0
  681. package/dist/forks/Drawer/Drawer.js.map +1 -0
  682. package/dist/forks/Drawer/Drawer.styles.d.ts +99 -0
  683. package/dist/forks/Drawer/Drawer.styles.js +94 -0
  684. package/dist/forks/Drawer/Drawer.styles.js.map +1 -0
  685. package/dist/forks/Drawer/index.d.ts +6 -0
  686. package/dist/forks/Drawer/index.js +2 -0
  687. package/dist/forks/Drawer/useDrawerDialogPresence.d.ts +19 -0
  688. package/dist/forks/Drawer/useDrawerDialogPresence.js +62 -0
  689. package/dist/forks/Drawer/useDrawerDialogPresence.js.map +1 -0
  690. package/dist/forks/Tour/Tour.d.ts +58 -0
  691. package/dist/forks/Tour/Tour.js +55 -0
  692. package/dist/forks/Tour/Tour.js.map +1 -0
  693. package/dist/forks/Tour/TourContext.d.ts +37 -0
  694. package/dist/forks/Tour/TourContext.js +8 -0
  695. package/dist/forks/Tour/TourContext.js.map +1 -0
  696. package/dist/forks/Tour/TourStep.d.ts +43 -0
  697. package/dist/forks/Tour/TourStep.js +134 -0
  698. package/dist/forks/Tour/TourStep.js.map +1 -0
  699. package/dist/forks/Tour/TourStep.styles.d.ts +23 -0
  700. package/dist/forks/Tour/TourStep.styles.js +28 -0
  701. package/dist/forks/Tour/TourStep.styles.js.map +1 -0
  702. package/dist/forks/Tour/index.d.ts +11 -0
  703. package/dist/forks/Tour/index.js +4 -0
  704. package/dist/forks/Tour/useTour.d.ts +26 -0
  705. package/dist/forks/Tour/useTour.js +20 -0
  706. package/dist/forks/Tour/useTour.js.map +1 -0
  707. package/dist/forks/compiled.d.ts +5 -0
  708. package/dist/forks/compiled.js +8 -0
  709. package/dist/forks/compiled.js.map +1 -0
  710. package/dist/i18n/catalog.d.ts +12 -0
  711. package/dist/i18n/catalog.js +46 -0
  712. package/dist/i18n/catalog.js.map +1 -0
  713. package/dist/i18n/common.messages.d.ts +31 -0
  714. package/dist/i18n/common.messages.js +32 -0
  715. package/dist/i18n/common.messages.js.map +1 -0
  716. package/dist/i18n/index.d.ts +21 -0
  717. package/dist/i18n/index.js +3 -0
  718. package/dist/i18n/locales/de-DE.js +331 -0
  719. package/dist/i18n/locales/de-DE.js.map +1 -0
  720. package/dist/i18n/locales/el-GR.js +331 -0
  721. package/dist/i18n/locales/el-GR.js.map +1 -0
  722. package/dist/i18n/locales/es-ES.js +331 -0
  723. package/dist/i18n/locales/es-ES.js.map +1 -0
  724. package/dist/i18n/locales/fi-FI.js +331 -0
  725. package/dist/i18n/locales/fi-FI.js.map +1 -0
  726. package/dist/i18n/locales/fr-FR.js +331 -0
  727. package/dist/i18n/locales/fr-FR.js.map +1 -0
  728. package/dist/i18n/locales/id-ID.js +331 -0
  729. package/dist/i18n/locales/id-ID.js.map +1 -0
  730. package/dist/i18n/locales/it-IT.js +331 -0
  731. package/dist/i18n/locales/it-IT.js.map +1 -0
  732. package/dist/i18n/locales/ja-JP.js +351 -0
  733. package/dist/i18n/locales/ja-JP.js.map +1 -0
  734. package/dist/i18n/locales/ko-KR.js +351 -0
  735. package/dist/i18n/locales/ko-KR.js.map +1 -0
  736. package/dist/i18n/locales/mn-MN.js +327 -0
  737. package/dist/i18n/locales/mn-MN.js.map +1 -0
  738. package/dist/i18n/locales/ms-MY.js +331 -0
  739. package/dist/i18n/locales/ms-MY.js.map +1 -0
  740. package/dist/i18n/locales/pl-PL.js +331 -0
  741. package/dist/i18n/locales/pl-PL.js.map +1 -0
  742. package/dist/i18n/locales/pt-BR.js +331 -0
  743. package/dist/i18n/locales/pt-BR.js.map +1 -0
  744. package/dist/i18n/locales/pt-PT.js +331 -0
  745. package/dist/i18n/locales/pt-PT.js.map +1 -0
  746. package/dist/i18n/locales/ru-RU.js +331 -0
  747. package/dist/i18n/locales/ru-RU.js.map +1 -0
  748. package/dist/i18n/locales/th-TH.js +331 -0
  749. package/dist/i18n/locales/th-TH.js.map +1 -0
  750. package/dist/i18n/locales/tr-TR.js +331 -0
  751. package/dist/i18n/locales/tr-TR.js.map +1 -0
  752. package/dist/i18n/locales/vi-VN.js +331 -0
  753. package/dist/i18n/locales/vi-VN.js.map +1 -0
  754. package/dist/i18n/locales/zh-CN.js +331 -0
  755. package/dist/i18n/locales/zh-CN.js.map +1 -0
  756. package/dist/i18n/locales/zh-TW.js +331 -0
  757. package/dist/i18n/locales/zh-TW.js.map +1 -0
  758. package/dist/i18n/messages.d.ts +13 -0
  759. package/dist/i18n/messages.js +63 -0
  760. package/dist/i18n/messages.js.map +1 -0
  761. package/dist/i18n/translateWithNodes.d.ts +3 -0
  762. package/dist/i18n/translateWithNodes.js +14 -0
  763. package/dist/i18n/translateWithNodes.js.map +1 -0
  764. package/dist/i18n/useUicTranslator.d.ts +5 -0
  765. package/dist/i18n/useUicTranslator.js +38 -0
  766. package/dist/i18n/useUicTranslator.js.map +1 -0
  767. package/dist/index.d.ts +101 -27
  768. package/dist/index.js +63 -23
  769. package/dist/instance.d.ts +31 -0
  770. package/dist/instance.js +33 -0
  771. package/dist/instance.js.map +1 -0
  772. package/dist/legacy-tokens.css +177 -0
  773. package/dist/locales/af-ZA.json +954 -0
  774. package/dist/locales/ar-SA.json +994 -0
  775. package/dist/locales/ca-ES.json +970 -0
  776. package/dist/locales/cs-CZ.json +986 -0
  777. package/dist/locales/da-DK.json +962 -0
  778. package/dist/locales/de-DE.json +962 -0
  779. package/dist/locales/el-GR.json +986 -0
  780. package/dist/locales/en.json +1482 -0
  781. package/dist/locales/es-ES.json +974 -0
  782. package/dist/locales/fi-FI.json +986 -0
  783. package/dist/locales/fr-FR.json +950 -0
  784. package/dist/locales/he-IL.json +986 -0
  785. package/dist/locales/hu-HU.json +986 -0
  786. package/dist/locales/it-IT.json +974 -0
  787. package/dist/locales/ja-JP.json +994 -0
  788. package/dist/locales/ko-KR.json +986 -0
  789. package/dist/locales/nl-NL.json +950 -0
  790. package/dist/locales/no-NO.json +974 -0
  791. package/dist/locales/pl-PL.json +978 -0
  792. package/dist/locales/pseudo.json +1112 -0
  793. package/dist/locales/pt-BR.json +978 -0
  794. package/dist/locales/pt-PT.json +978 -0
  795. package/dist/locales/ro-RO.json +978 -0
  796. package/dist/locales/ru-RU.json +986 -0
  797. package/dist/locales/sr-SP.json +986 -0
  798. package/dist/locales/sv-SE.json +982 -0
  799. package/dist/locales/tr-TR.json +986 -0
  800. package/dist/locales/uk-UA.json +986 -0
  801. package/dist/locales/vi-VN.json +982 -0
  802. package/dist/locales/zh-CN.json +994 -0
  803. package/dist/locales/zh-TW.json +994 -0
  804. package/dist/styles/base.css +24 -2
  805. package/dist/styles/themes/orange-dark.css +4 -0
  806. package/dist/styles/themes/orange-light.css +4 -0
  807. package/dist/theme/lablup/built/lablup.d.ts +13 -0
  808. package/dist/theme/lablup/built/lablup.js +567 -0
  809. package/dist/theme/lablup/built/lablup.variants.d.ts +16 -0
  810. package/dist/theme/lablup/built/theme.css +716 -0
  811. package/dist/theme/lablup/index.d.ts +9 -0
  812. package/dist/theme/lablup/index.js +2 -0
  813. package/dist/theme/lablup/lablupTheme.d.ts +10 -0
  814. package/dist/theme/lablup/lablupTheme.js +21 -0
  815. package/dist/theme/lablup/lablupTheme.js.map +1 -0
  816. package/dist/ui-common-locales/de-DE.json +326 -0
  817. package/dist/ui-common-locales/el-GR.json +326 -0
  818. package/dist/ui-common-locales/en.json +346 -0
  819. package/dist/ui-common-locales/es-ES.json +326 -0
  820. package/dist/ui-common-locales/fi-FI.json +326 -0
  821. package/dist/ui-common-locales/fr-FR.json +326 -0
  822. package/dist/ui-common-locales/id-ID.json +326 -0
  823. package/dist/ui-common-locales/it-IT.json +326 -0
  824. package/dist/ui-common-locales/ja-JP.json +346 -0
  825. package/dist/ui-common-locales/ko-KR.json +346 -0
  826. package/dist/ui-common-locales/mn-MN.json +322 -0
  827. package/dist/ui-common-locales/ms-MY.json +326 -0
  828. package/dist/ui-common-locales/pl-PL.json +326 -0
  829. package/dist/ui-common-locales/pt-BR.json +326 -0
  830. package/dist/ui-common-locales/pt-PT.json +326 -0
  831. package/dist/ui-common-locales/ru-RU.json +326 -0
  832. package/dist/ui-common-locales/th-TH.json +326 -0
  833. package/dist/ui-common-locales/tr-TR.json +326 -0
  834. package/dist/ui-common-locales/vi-VN.json +326 -0
  835. package/dist/ui-common-locales/zh-CN.json +326 -0
  836. package/dist/ui-common-locales/zh-TW.json +326 -0
  837. package/dist/ui-common.css +51 -0
  838. package/exports.customs.json +62 -0
  839. package/exports.exclude.json +47 -0
  840. package/package.json +565 -21
  841. package/dist/assets/components/Badge/Badge.css +0 -1
  842. package/dist/assets/components/BaseCard/BaseCard.css +0 -1
  843. package/dist/assets/components/Button/Button.css +0 -1
  844. package/dist/assets/components/DataTable/DataTable.css +0 -1
  845. package/dist/assets/components/Drawer/Drawer.css +0 -1
  846. package/dist/assets/components/EmptyState/EmptyState.css +0 -1
  847. package/dist/assets/components/ProgressBar/ProgressBar.css +0 -1
  848. package/dist/assets/components/Skeleton/Skeleton.css +0 -1
  849. package/dist/assets/components/StatusTag/StatusTag.css +0 -1
  850. package/dist/assets/components/Tabs/Tabs.css +0 -1
  851. package/dist/assets/components/Tooltip/Tooltip.css +0 -1
  852. package/dist/components/Badge/Badge.d.ts +0 -7
  853. package/dist/components/Badge/Badge2.js +0 -20
  854. package/dist/components/Badge/Badge2.js.map +0 -1
  855. package/dist/components/Badge/index.d.ts +0 -2
  856. package/dist/components/Badge/index.js +0 -2
  857. package/dist/components/BaseCard/BaseCard.d.ts +0 -57
  858. package/dist/components/BaseCard/BaseCard2.js +0 -37
  859. package/dist/components/BaseCard/BaseCard2.js.map +0 -1
  860. package/dist/components/BaseCard/index.d.ts +0 -2
  861. package/dist/components/BaseCard/index.js +0 -2
  862. package/dist/components/Button/Button.d.ts +0 -54
  863. package/dist/components/Button/Button2.js +0 -75
  864. package/dist/components/Button/Button2.js.map +0 -1
  865. package/dist/components/Button/index.d.ts +0 -5
  866. package/dist/components/Button/index.js +0 -2
  867. package/dist/components/DataTable/DataTable.d.ts +0 -144
  868. package/dist/components/DataTable/DataTable2.js +0 -244
  869. package/dist/components/DataTable/DataTable2.js.map +0 -1
  870. package/dist/components/DataTable/index.d.ts +0 -2
  871. package/dist/components/DataTable/index.js +0 -2
  872. package/dist/components/Drawer/Drawer.d.ts +0 -25
  873. package/dist/components/Drawer/Drawer2.js +0 -107
  874. package/dist/components/Drawer/Drawer2.js.map +0 -1
  875. package/dist/components/Drawer/index.d.ts +0 -2
  876. package/dist/components/Drawer/index.js +0 -2
  877. package/dist/components/EmptyState/EmptyState.d.ts +0 -52
  878. package/dist/components/EmptyState/EmptyState.example.d.ts +0 -8
  879. package/dist/components/EmptyState/EmptyState2.js +0 -62
  880. package/dist/components/EmptyState/EmptyState2.js.map +0 -1
  881. package/dist/components/EmptyState/index.d.ts +0 -10
  882. package/dist/components/EmptyState/index.js +0 -2
  883. package/dist/components/ProgressBar/ProgressBar.d.ts +0 -22
  884. package/dist/components/ProgressBar/ProgressBar2.js +0 -37
  885. package/dist/components/ProgressBar/ProgressBar2.js.map +0 -1
  886. package/dist/components/ProgressBar/index.d.ts +0 -2
  887. package/dist/components/ProgressBar/index.js +0 -2
  888. package/dist/components/Skeleton/Skeleton.d.ts +0 -25
  889. package/dist/components/Skeleton/Skeleton2.js +0 -27
  890. package/dist/components/Skeleton/Skeleton2.js.map +0 -1
  891. package/dist/components/StatusTag/StatusTag.d.ts +0 -38
  892. package/dist/components/StatusTag/StatusTag2.js +0 -45
  893. package/dist/components/StatusTag/StatusTag2.js.map +0 -1
  894. package/dist/components/StatusTag/index.d.ts +0 -2
  895. package/dist/components/StatusTag/index.js +0 -2
  896. package/dist/components/Tabs/Tabs.d.ts +0 -94
  897. package/dist/components/Tabs/Tabs2.js +0 -412
  898. package/dist/components/Tabs/Tabs2.js.map +0 -1
  899. package/dist/components/Tabs/index.d.ts +0 -2
  900. package/dist/components/Tabs/index.js +0 -2
  901. package/dist/components/Tooltip/Tooltip.d.ts +0 -16
  902. package/dist/components/Tooltip/Tooltip2.js +0 -68
  903. package/dist/components/Tooltip/Tooltip2.js.map +0 -1
  904. package/dist/components/Tooltip/index.d.ts +0 -2
  905. package/dist/components/Tooltip/index.js +0 -2
  906. package/dist/hooks/index.js +0 -2
  907. package/dist/icons/AlertCircleIcon.d.ts +0 -11
  908. package/dist/icons/AlertCircleIcon.js +0 -26
  909. package/dist/icons/AlertCircleIcon.js.map +0 -1
package/README.md CHANGED
@@ -1,34 +1,104 @@
1
1
  # @lablup/ui-common
2
2
 
3
- Product-neutral UI components and design tokens shared across Lablup products.
3
+ Lablup's UI layer on top of [Astryx](https://github.com/facebook/astryx).
4
+
5
+ It gives Lablup products three things through one dependency:
6
+
7
+ - **Astryx itself**, re-exported 1:1. Every Astryx subpath exists here under the
8
+ same name.
9
+ - **The Lablup brand theme**, as an Astryx theme.
10
+ - **A few components of its own**, built on Astryx, for patterns Astryx does not
11
+ cover.
4
12
 
5
13
  Consumers are Lablup product frontends, including
6
14
  [all-smi](https://github.com/lablup/all-smi). The package holds presentation
7
15
  only. It has no API client, no application state, no router, and no
8
- desktop-shell integration, because those differ per product and are what makes
9
- a component impossible to share.
16
+ desktop-shell integration.
10
17
 
11
18
  ## Install
12
19
 
13
20
  ```
14
- pnpm add @lablup/ui-common
21
+ pnpm add @lablup/ui-common @stylexjs/stylex
22
+ ```
23
+
24
+ That is npmjs, which needs no authentication.
25
+
26
+ Peer dependencies:
27
+
28
+ - `react` and `react-dom` ^19.2. Components use `useEffectEvent`, which
29
+ React 19.2 made stable.
30
+ - `@stylexjs/stylex` ^0.19. It is the one runtime copy that Astryx, ui-common
31
+ and your own StyleX code share.
32
+ - `@astryxdesign/lab`, optional. Install it only if you use
33
+ `@lablup/ui-common/lab`. It is pinned to the exact canary ui-common is built
34
+ against, and it needs the override below.
35
+
36
+ Astryx itself (`@astryxdesign/core`, `@astryxdesign/theme-neutral`) comes in
37
+ as ui-common's own dependencies, pinned exactly. The `ui-common` bin and the
38
+ Astryx CLI it wraps are a separate dev-time package, `@lablup/ui-common-cli`
39
+ ([The ui-common CLI](#the-ui-common-cli)).
40
+ `lucide-react` (the icon set Astryx's neutral theme already depends on) and
41
+ `intl-messageformat` come in the same way.
42
+ Do not add them to your project. ui-common owns the Astryx version. Two copies
43
+ of Astryx means two copies of its React contexts, and components stop seeing
44
+ the theme.
45
+
46
+ ### pnpm 10 and later
47
+
48
+ `@astryxdesign/core` and `@astryxdesign/cli` have `postinstall` scripts. pnpm
49
+ 10 and later run no dependency's install scripts until the project decides
50
+ about each one: pnpm 10 installs and prints a warning, pnpm 11 fails
51
+ `pnpm install` with `ERR_PNPM_IGNORED_BUILDS`. The scripts only print an
52
+ `astryx init` hint, so decline them, in `pnpm-workspace.yaml`:
53
+
54
+ ```yaml
55
+ allowBuilds:
56
+ "@astryxdesign/cli": false
57
+ "@astryxdesign/core": false
58
+ ```
59
+
60
+ This repository's own `pnpm-workspace.yaml` does the same. npm runs the
61
+ scripts, or asks about them, and needs nothing.
62
+
63
+ ### With `@lablup/ui-common/lab`
64
+
65
+ The lab canary declares an exact peer on the core canary it was cut from, not
66
+ on the core ui-common pins. Without an override, pnpm installs that canary
67
+ core beside ui-common's, npm nests it under lab, and `@lablup/ui-common/lab`
68
+ runs on the second copy. Add the override for your package manager, next to
69
+ `@astryxdesign/lab` itself (`ui-common upgrade` adds both when it moves a
70
+ Drawer to lab):
71
+
72
+ pnpm, in `pnpm-workspace.yaml` (pnpm 10 and later read settings only from
73
+ there):
74
+
75
+ ```yaml
76
+ overrides:
77
+ "@astryxdesign/lab>@astryxdesign/core": "0.6.2"
15
78
  ```
16
79
 
17
- That is npmjs, which needs no authentication and is the right route for
18
- essentially everyone, including open-source consumers and forked CI.
80
+ npm, in the root `package.json`:
81
+
82
+ ```json
83
+ "overrides": {
84
+ "@astryxdesign/lab": { "@astryxdesign/core": "0.6.2" }
85
+ }
86
+ ```
19
87
 
20
- `react` and `react-dom` are peer dependencies. Version 18 and 19 are both
21
- supported.
88
+ The version is the `@astryxdesign/core` that ui-common pins; it moves with
89
+ each ui-common release that moves Astryx. Then `pnpm why @astryxdesign/core`
90
+ (or `npm ls @astryxdesign/core`) lists one version. pnpm may still warn that
91
+ lab's peer is unmet; with the override that is expected. A project that already
92
+ lists `@astryxdesign/core` itself, at the same version, gets the same effect
93
+ from pnpm resolving the peer to its own copy.
22
94
 
23
95
  ### The GitHub Packages mirror
24
96
 
25
97
  The same versions are also published to GitHub Packages for projects that
26
- already authenticate to GitHub. It is a mirror, not a different package, so
27
- there is no reason to prefer it unless your organization requires it.
98
+ already authenticate to GitHub. It is a mirror, not a different package.
28
99
 
29
- GitHub Packages requires authentication **even for public packages**, which is
30
- why it is not the default route here. To use it, point the scope at that
31
- registry:
100
+ GitHub Packages requires authentication **even for public packages**. To use
101
+ it, point the scope at that registry:
32
102
 
33
103
  ```
34
104
  # .npmrc
@@ -50,106 +120,458 @@ env:
50
120
  Locally, use a personal access token with `read:packages`, in your user
51
121
  `~/.npmrc` and never in a project file.
52
122
 
123
+ ## Set up
124
+
125
+ Declare the layer order first in your app's entry stylesheet, then load the
126
+ stylesheets in this order:
127
+
128
+ ```css
129
+ @layer reset, theme, base, astryx-base, astryx-theme, ui-common, components, utilities;
130
+
131
+ @import "@lablup/ui-common/reset.css";
132
+ @import "@lablup/ui-common/astryx.css";
133
+ @import "@lablup/ui-common/theme/lablup/theme.css";
134
+ @import "@lablup/ui-common/ui-common.css";
135
+ /* Only if you use @lablup/ui-common/lab: */
136
+ @import "@lablup/ui-common/lab/lab.css";
137
+ ```
138
+
139
+ Every stylesheet ui-common ships starts with the same `@layer` statement too,
140
+ component sheets included. A layer's place is fixed by the first stylesheet
141
+ that names it, and a component's sheet (imported by its module) usually
142
+ reaches the page before your entry stylesheet does. Without the statement in
143
+ the component sheets, `ui-common` would be the lowest layer and Astryx's base
144
+ styles would beat ui-common's. Declaring it in your entry stylesheet as well
145
+ is still recommended: it documents the order, and it places your own
146
+ `components` and `utilities` layers wherever your sheets load. Repeating an
147
+ identical statement changes nothing.
148
+
149
+ Wrap the app in the theme:
150
+
151
+ ```tsx
152
+ import { Theme } from "@lablup/ui-common";
153
+ import { lablupTheme } from "@lablup/ui-common/theme/lablup/built";
154
+
155
+ <Theme theme={lablupTheme}>
156
+ <App />
157
+ </Theme>;
158
+ ```
159
+
160
+ `<Theme theme={lablupTheme}>` is required. `theme.css` is scoped to
161
+ `[data-astryx-theme="lablup"]`, which only `<Theme>` sets, so without it the
162
+ app renders Astryx's default palette. No error is raised.
163
+
164
+ Dark mode is the `mode` prop: `<Theme theme={lablupTheme} mode="dark">`,
165
+ `"light"`, or `"system"` (the default, which follows the OS). The root
166
+ `<Theme>` owns `html[data-theme]`: it sets `light` or `dark`, removes the
167
+ attribute for `system`, and removes it on unmount. A 0.1-style toggle that
168
+ writes its own value there, such as `data-theme="orange-dark"`, no longer
169
+ works. Switch `mode` instead.
170
+
171
+ `/theme/lablup/built` pairs with `theme.css` and injects nothing at runtime.
172
+ `@lablup/ui-common/theme/lablup` is the same theme as source, for runtime
173
+ injection or for extending it with `defineTheme`. Use one or the other.
174
+ Astryx's neutral theme is mirrored the same way at `/theme/neutral`.
175
+
176
+ The theme names its font family (Ubuntu Sans, then Pretendard Variable) but
177
+ does not load it. Loading fonts is the app's job.
178
+
179
+ ### Tests (Vitest with jsdom)
180
+
181
+ ui-common's modules import their stylesheets, and Node cannot load a `.css`
182
+ import from `node_modules`. Vitest externalises dependencies by default, so a
183
+ test that imports ui-common fails with `Unknown file extension ".css"`.
184
+ Let Vitest process the package instead:
185
+
186
+ ```ts
187
+ // vitest.config.ts
188
+ export default defineConfig({
189
+ test: {
190
+ environment: "jsdom",
191
+ server: { deps: { inline: [/@lablup\/ui-common/] } },
192
+ },
193
+ });
194
+ ```
195
+
196
+ ### Two copies
197
+
198
+ In development, ui-common warns in the console when a second copy of itself
199
+ is loaded, and says whether the copies also run on separate copies of
200
+ `@astryxdesign/core`. Two copies do not share the modal stack, and with two
201
+ Astryx cores the `Theme` and i18n providers stop reaching components. Dedupe
202
+ until `pnpm why @lablup/ui-common` lists one version.
203
+
204
+ ### Layers
205
+
206
+ | Layer | Owner |
207
+ | ------------------------- | ----------------------------------- |
208
+ | `reset`, `theme`, `base` | Astryx reset, your own base rules |
209
+ | `astryx-base` | Astryx component styles |
210
+ | `astryx-theme` | theme overrides, including Lablup's |
211
+ | `ui-common` | ui-common's own styles |
212
+ | `components`, `utilities` | yours |
213
+
214
+ ui-common's styles beat Astryx's base and theme styles for the primitives they
215
+ wrap. Your `components` layer beats ui-common. Unlayered rules beat all of it.
216
+
53
217
  ## Use
54
218
 
55
- Import from the root, or from a component subpath when you want the smallest
56
- possible graph:
219
+ Astryx components come from the root or from their own subpath, exactly as in
220
+ Astryx:
57
221
 
58
222
  ```tsx
59
- import { Button, StatusTag } from "@lablup/ui-common";
60
- import { Drawer } from "@lablup/ui-common/components/Drawer";
223
+ import { Button, Text } from "@lablup/ui-common";
224
+ import { Table } from "@lablup/ui-common/Table";
225
+ import { useClipboard } from "@lablup/ui-common/hooks";
61
226
  ```
62
227
 
63
- Styling is opt-in and split so that importing a component never drags in every
64
- theme:
228
+ StyleX users import tokens from the `.stylex` subpath. The StyleX compiler
229
+ recognises a theme import by that suffix, so the root barrel will not do:
65
230
 
66
231
  ```ts
67
- // The token contract the components resolve against. Required.
68
- // It also carries the default palette, so this alone is a working theme.
69
- import "@lablup/ui-common/styles/base.css";
232
+ import { colorVars, spacingVars } from "@lablup/ui-common/theme/tokens.stylex";
233
+ ```
234
+
235
+ Lab components live at `@lablup/ui-common/lab`.
236
+
237
+ ui-common's own components come from the root, and from the subpaths below:
238
+
239
+ ```tsx
240
+ import { PageHeader, PageLayout, StatCard } from "@lablup/ui-common";
241
+ import { Modal } from "@lablup/ui-common/Modal";
242
+ ```
243
+
244
+ | Component | What it is | Subpath |
245
+ | -------------------------------------------------------------- | ----------------------------------------------------------- | -------------------------------- |
246
+ | `Modal` | The dialog, in place of Astryx `Dialog`. See below. | `/Modal` |
247
+ | `PageLayout` | A page's width clamp (`standard`, `wide`, `full`) | `/components/PageLayout` |
248
+ | `PageHeader` | A page's title, description, actions and error banner | `/components/PageHeader` |
249
+ | `StatCard` | A dashboard metric, on Astryx `Card` | `/components/StatCard` |
250
+ | `ErrorState` | A full-area error with recovery actions | `/components/ErrorState` |
251
+ | `SkeletonCard`, `SkeletonText`, `SkeletonChart`, `SkeletonRow` | Loading placeholders drawn with Astryx `Skeleton` | `/components/Skeleton` |
252
+ | `SmoothHeight` | Animates a container toward its content's height | `/components/SmoothHeight` |
253
+ | `DigitPopIn` | A number whose characters pop in, one after another | `/components/DigitPopIn` |
254
+ | `CountBadge` | A count or dot overlaid on its child's corner | `/components/CountBadge` |
255
+ | `DoubleBadge` | A run of Badges welded into one chip | `/components/DoubleBadge` |
256
+ | `BooleanToken` | An on/off value as a Token | `/components/BooleanToken` |
257
+ | `IconWithTooltip` | A focusable glyph that explains itself in a Tooltip | `/components/IconWithTooltip` |
258
+ | `ImageWithFallback` | An image that renders a fallback node when it fails to load | `/components/ImageWithFallback` |
259
+ | `NotificationStack` | Floating notices with task progress and actions | `/components/NotificationStack` |
260
+ | `OverlayScrollbar` | A persistent scroll thumb drawn over a scroll container | `/components/OverlayScrollbar` |
261
+ | `ConfirmPopover` | A one-click confirmation anchored to its trigger | `/components/ConfirmPopover` |
262
+ | `PagedSelector` | A searchable selector over options loaded a page at a time | `/components/PagedSelector` |
263
+ | `SelectionLabel` | "3 selected", with a button that clears the selection | `/components/SelectionLabel` |
264
+ | `UncontrolledInput` | A field that reports its value on Enter or blur | `/components/UncontrolledInput` |
265
+ | `AlertModal` | An alert dialog, in place of Astryx `AlertDialog` | `/AlertModal` |
266
+ | `DeleteConfirmModal` | Confirms a deletion, with typed confirmation when needed | `/components/DeleteConfirmModal` |
267
+ | `StepNumberInput`, `NumberStepper` | A number field that steps along a list of values | `/components/StepNumberInput` |
268
+ | `BoardItemTitle` | A dashboard panel's sticky title row | `/components/BoardItemTitle` |
269
+ | `Statistic` | A metric with a caption, a large value and a notched bar | `/components/Statistic` |
270
+ | `DividedRow` | A wrapping row with dividers between neighbours on a line | `/components/DividedRow` |
271
+ | `TokenList` | Values inline, the rest behind `+N` on hover | `/components/TokenList` |
272
+ | `TokenRow` | Tokens cut off with "and N more" | `/components/TokenRow` |
273
+ | `NotificationItem` | The title, description, actions and footer of one notice | `/components/NotificationItem` |
274
+ | `UnitGrid`, `UnitGridSkeleton` | Groups of unit squares on one lattice, with a hover card | `/components/UnitGrid` |
275
+ | `ColorPicker` | A hex colour field on the platform colour input | `/components/ColorPicker` |
276
+ | `Form` and its hooks | A form engine with antd's form API. See below. | `/Form` |
277
+ | `BulkEditFormItem` | A form item that edits one field across many records | `/components/BulkEditFormItem` |
278
+ | `DataGrid`, `DataGridSettingsModal`, `DataGridExportModal` | A table with paging, sorting, selection and column settings | `/components/DataGrid` |
279
+ | `BulkErrorModal` | The failed items of a bulk operation, in a grid | `/components/BulkErrorModal` |
280
+ | `ProgressWithLabel` | A bar that carries its label and value label | `/components/ProgressWithLabel` |
281
+ | `TextHighlighter` | Marks a search keyword in a string | `/components/TextHighlighter` |
282
+ | `CountdownBorder` | A border that fills as a countdown to a refresh | `/components/CountdownBorder` |
283
+ | `DoubleToken` | A run of Tokens welded into one chip | `/components/DoubleToken` |
284
+ | `ListBanner` | A Banner that lists items, scrolling past a height | `/components/ListBanner` |
285
+ | `usePrefersReducedMotion` | The `prefers-reduced-motion` media query, as a hook | root only |
286
+
287
+ Their styles live in `@layer ui-common`, under `uic-` class names.
288
+
289
+ ### Modal
290
+
291
+ `Modal` takes every prop Astryx `Dialog` takes, so a `Dialog` call site moves
292
+ over by renaming the import: `@astryxdesign/core/Dialog` becomes
293
+ `@lablup/ui-common/Modal`, `Dialog` becomes `Modal`, `DialogProps` becomes
294
+ `ModalProps`. `DialogHeader`, `DialogPosition`, `DialogPurpose` and
295
+ `DialogVariant` are re-exported unchanged, and as `ModalHeader`,
296
+ `ModalPosition`, `ModalPurpose` and `ModalVariant`. One difference is visible
297
+ to a caller: `ref` reaches the `div` that carries `role="dialog"`, not a
298
+ `<dialog>` element.
299
+
300
+ What it adds:
301
+
302
+ - It renders into a `document.body` portal instead of the browser's top layer,
303
+ so whatever the app layers above the modal band, such as a notification
304
+ stack, stays visible. The band is `z-index` 1100 to 10999 by default;
305
+ `configureModalZIndex({ base, step, max })` moves it.
306
+ - While a modal is open, the topmost one is `aria-modal="true"` and the rest
307
+ of the page is `inert`, as `showModal()` would make it. Two things stay
308
+ reachable: modal roots, and elements marked `data-uic-modal-live`
309
+ (`MODAL_LIVE_ATTRIBUTE`). `NotificationStack` marks itself, so notices over a
310
+ modal can still be read and dismissed; mark your own live region the same
311
+ way, and call `refreshModalBackground()` if it mounts while a modal is open.
312
+ An `inert` the page set itself is left as it was.
313
+ - A modal opened from inside another paints above it. Only the topmost one
314
+ traps focus and takes Escape; covered ones are `inert`. Other portalled
315
+ surfaces (a drawer) join the same stack with `useModalLevel`, which also
316
+ keeps them out of the inert background.
317
+ - Content mounts on first open and stays mounted while closed.
318
+ `unmountOnClose` drops it. `afterOpenChange` reports each open and close.
319
+ - With `title`, `onAction` or `footer`, it lays out a header, the body and a
320
+ footer with a primary action and Cancel. `onAction` may return a promise; the
321
+ button stays pending until it settles. It does not close the modal.
70
322
 
71
- // Optional, and only if you switch themes at runtime through [data-theme].
72
- import "@lablup/ui-common/styles/themes/orange-dark.css";
323
+ ```tsx
324
+ <Modal
325
+ isOpen={isOpen}
326
+ onOpenChange={setIsOpen}
327
+ title="Rename folder"
328
+ actionLabel="Rename"
329
+ onAction={async () => {
330
+ await rename(name);
331
+ setIsOpen(false);
332
+ }}
333
+ >
334
+ <TextInput label="Name" value={name} onChange={setName} />
335
+ </Modal>
73
336
  ```
74
337
 
75
- The package ships the theming mechanism and one default palette, the Lablup
76
- brand orange. A product with its own visual identity defines its own
77
- `[data-theme]` blocks over the same 116 token names and ships them itself,
78
- rather than the package accumulating everyone's palettes. The source product
79
- does exactly that with its five families.
338
+ ### Form
339
+
340
+ `@lablup/ui-common/Form` is a form engine with antd's form API: `Form`,
341
+ `Form.Item`, `Form.List`, `Form.ErrorList`, `Form.Provider`,
342
+ `Form.useForm`, `Form.useWatch`, `Form.useFormInstance` and
343
+ `Form.Item.useStatus`, with antd's rules (`required`, `message`,
344
+ `validator`, `type`, `min`, `max`, `pattern`, `whitespace`,
345
+ `warningOnly`). It keeps antd's names on purpose: it is a form-state API,
346
+ not a component, so code written against antd's form moves over by changing
347
+ the import. The item shell renders on Astryx tokens.
348
+
349
+ ```tsx
350
+ import { Form } from "@lablup/ui-common/Form";
80
351
 
81
- Component CSS travels with the component: importing `Button` brings
82
- `Button.css` with it, so a subpath import pulls that component's styles and no
83
- others. The two entry points above are the only stylesheets you import by hand,
84
- and `base.css` is the one you must not skip, since it carries the tokens every
85
- component resolves against.
352
+ const [form] = Form.useForm();
86
353
 
87
- ## Text is yours, not ours
354
+ <Form form={form} layout="vertical" onFinish={save}>
355
+ <Form.Item name="name" label="Name" rules={[{ required: true }]}>
356
+ <TextInput label="Name" isLabelHidden />
357
+ </Form.Item>
358
+ </Form>;
359
+ ```
88
360
 
89
- No component calls a translation function or reads a locale key. Every
90
- user-facing string is a prop with an English default:
361
+ - Validation messages come from ui-common's catalog in the locale of the
362
+ nearest `InternationalizationProvider` (see Strings). `FormConfigProvider`
363
+ sets `validateMessages`, `requiredMark` and `optionalLabel` app-wide; a
364
+ form's own `validateMessages` wins over both.
365
+ - A control shows its item's validation state by reading
366
+ `Form.Item.useStatus()` or `FormItemInputContext`.
367
+ - `form.scrollToField` and `scrollToFirstError` find the control by
368
+ `data-uic-field-id`, which `Form.Item` puts on its child; Astryx inputs
369
+ keep `data-*` attributes.
370
+ - The DOM is `.uic-form` (with `data-layout`) and `.uic-form-item` with
371
+ `__label`, `__label--required`, `__control`, `__control-input`,
372
+ `__explain`, `__explain-error`, `__explain-warning` and `__extra`.
373
+ The item carries `data-layout`, `data-size` and `data-status`. These
374
+ class names are the public hooks for tests and product CSS.
375
+ - Three custom properties adjust it: `--form-item-margin-bottom`
376
+ (default `--spacing-6`), `--form-item-gap` (label to control in a
377
+ vertical item, default `--spacing-2`) and `--form-item-line-height`
378
+ (default `--text-body-leading`). Help, extra, the tooltip glyph and the
379
+ optional suffix take the theme's `--color-text-description` where the
380
+ theme declares one, else `--color-text-secondary`.
381
+
382
+ ### What is hidden
383
+
384
+ A few Astryx subpaths are deliberately not re-exported. They are listed, with
385
+ the reason and the replacement, in [`exports.exclude.json`](exports.exclude.json).
386
+ Today that is `Dialog` (use `Modal`), `AlertDialog` (use `AlertModal`) and two
387
+ Astryx CLI data files.
388
+
389
+ ### Name rule
390
+
391
+ A ui-common component never shares a name with an Astryx core or lab export.
392
+ If a name is `Button`, it is Astryx's `Button`. The same holds the other way:
393
+ `DialogHeader` from `@lablup/ui-common/Modal` is Astryx's own `DialogHeader`.
394
+
395
+ ## Strings
396
+
397
+ ui-common's components show a few built-in strings. Every one of them is also a
398
+ prop, and an explicit prop always wins.
399
+
400
+ The defaults resolve through Astryx's own `InternationalizationProvider`.
401
+ Supply translations once, at the provider:
91
402
 
92
403
  ```tsx
93
- <Drawer isOpen={open} onClose={close} closeLabel={t("common.closeDrawer")}>
94
- ...
95
- </Drawer>
404
+ import { InternationalizationProvider } from "@lablup/ui-common/i18n";
405
+ import { mergeMessages, uiCommonMessages } from "@lablup/ui-common/i18n-catalog";
406
+ import astryxKo from "@lablup/ui-common/locales/ko-KR.json";
407
+
408
+ <InternationalizationProvider
409
+ locale="ko-KR"
410
+ messages={mergeMessages({ "ko-KR": astryxKo }, uiCommonMessages)}
411
+ >
412
+ <App />
413
+ </InternationalizationProvider>;
96
414
  ```
97
415
 
98
- A consumer with no i18n setup gets working, accessible English. A consumer with
99
- translations passes them in. Neither ends up depending on the other's locale
100
- bundle.
416
+ - `@lablup/ui-common/locales/<locale>.json` is Astryx's own catalog.
417
+ - `@lablup/ui-common/ui-common-locales/<locale>.json` is ui-common's.
418
+ - Without a provider, everything renders in English.
419
+
420
+ ui-common never uses a product i18n runtime.
101
421
 
102
- ## Design tokens are API
422
+ ## Upgrading from 0.1
103
423
 
104
- Components resolve their colors, spacing, motion, radii, and shadows from
105
- `--token-*` custom properties. Those properties are a versioned part of the
106
- public surface: renaming or removing one is a breaking change, exactly like
107
- renaming a prop. Every token a component reads has a fallback, so a consumer
108
- that adopts a component without adopting a theme still renders.
424
+ Removed in 0.2, each replaced by Astryx:
109
425
 
110
- ## What gets in
426
+ | 0.1 | 0.2 |
427
+ | ------------- | ------------------------------------- |
428
+ | `Badge` | `Badge`, or `Token` for a chip |
429
+ | `BaseCard` | `Card`, or `ClickableCard` |
430
+ | `Button` | `Button`, or `IconButton` |
431
+ | `DataTable` | `Table` |
432
+ | `Drawer` | `Drawer` from `@lablup/ui-common/lab` |
433
+ | `EmptyState` | `EmptyState` |
434
+ | `ProgressBar` | `ProgressBar` |
435
+ | `Select` | `Selector` |
436
+ | `Skeleton` | `Skeleton` (the composites stay) |
437
+ | `StatusTag` | `StatusDot` |
438
+ | `Tabs` | `TabList` |
439
+ | `Tooltip` | `Tooltip` |
111
440
 
112
- The package is not a home for every reusable-looking component. A component is
113
- admitted when all three hold:
441
+ The kept components keep their 0.1 props. Their class names moved to `uic-`
442
+ (`page-header` is `uic-page-header`), so CSS or tests that select the old
443
+ names need updating. [`packages/cli/migration/0.1-to-0.2.json`](packages/cli/migration/0.1-to-0.2.json)
444
+ lists every import, prop, class and stylesheet change in a form the upgrade
445
+ tool reads.
114
446
 
115
- 1. It is product-neutral, taking generic view models and callbacks rather than
116
- any product's API types.
117
- 2. It has a concrete consumer in more than one product, present or committed.
118
- 3. It brings its accessibility and behavior tests with it.
447
+ Before you start, read [docs/migrating-to-0.2.md](docs/migrating-to-0.2.md):
448
+ the problems the first app hit when it moved onto 0.2, and a checklist.
119
449
 
120
- Anything that fails one of these stays with the product that needs it. See
121
- [CONTRIBUTING.md](CONTRIBUTING.md).
450
+ Let the upgrade tool do the mechanical part. It ships in
451
+ `@lablup/ui-common-cli`, so run it one-off from the project still on 0.1:
452
+
453
+ ```
454
+ pnpm dlx @lablup/ui-common-cli@next upgrade --from 0.1 --dry-run # writes nothing; prints the changes and the report
455
+ pnpm dlx @lablup/ui-common-cli@next upgrade --from 0.1 # applies it
456
+ ```
457
+
458
+ (`npx @lablup/ui-common-cli@next upgrade --from 0.1` with npm.) Keep the
459
+ `@next` while 0.2 is in prerelease: the CLI has published only prereleases,
460
+ which go to the `next` dist-tag, and npm points `latest` at a package's first
461
+ publish, so a bare `@lablup/ui-common-cli` resolves to its first alpha. Drop
462
+ `@next` once 0.2.0 is published. It bumps
463
+ `@lablup/ui-common` in `package.json` and adds `@lablup/ui-common-cli` as a
464
+ devDependency at the same version; then run your install, and later upgrades
465
+ are `pnpm exec ui-common upgrade --from <old version>`.
466
+
467
+ It moves the imports, reshapes the props it can prove safe, rewrites the
468
+ `styles/base.css` import into the 0.2 stylesheet set (or, in an app that
469
+ never imported it, imports that set first in the app's entry script), wraps
470
+ the app's root render (`createRoot(…).render(<App />)`) in
471
+ `<Theme theme={lablupTheme}>` when no module uses `<Theme>` yet, and updates
472
+ `package.json`. Code that imports a moved component through a module of your
473
+ own that re-exports it (a barrel such as `@/components/common`, found through
474
+ relative paths and your tsconfig `paths`) gets the same rewrite. A component of
475
+ yours that wraps one and takes its props is listed in the report instead: its
476
+ props are yours to change. Everything else is a `TODO(ui-common-upgrade)` comment in the
477
+ code and a line in `ui-common-upgrade-report.md`, together with the CSS, DOM
478
+ queries, tests and module mocks that still name 0.1 classes, custom
479
+ properties of yours that Astryx declares too, and code that switches 0.1
480
+ themes through `data-theme`. Steps the app cannot work without (the
481
+ stylesheets or `<Theme>`, where the upgrade could not add them) open the
482
+ report under "Action required".
483
+
484
+ Deprecated in 0.2, removed in 0.3:
485
+
486
+ - **`--token-*` custom properties.** Astryx's token set is the contract now.
487
+ `@lablup/ui-common/legacy-tokens.css` declares every old name as the matching
488
+ Astryx token, inside `@layer ui-common`, so code that reads them keeps
489
+ working while it moves.
490
+ - **`styles/base.css` and `styles/themes/*.css`.** Use the Lablup theme. No
491
+ ui-common component reads them any more; they stay one release so existing
492
+ imports keep resolving while the upgrade tool rewrites them.
122
493
 
123
494
  ## What is deliberately absent
124
495
 
125
496
  - API clients, endpoints, and authentication.
126
497
  - Application state, stores, and routing.
127
498
  - Tauri APIs and plugins, and any desktop-shell assumption.
128
- - Product locale keys and any application-global i18n instance.
499
+ - Product i18n runtimes and product locale keys.
129
500
  - Anything from the private AI companion package. The dependency runs the
130
501
  other way, and CI fails if it ever reverses.
131
502
 
503
+ ## The ui-common CLI
504
+
505
+ The `ui-common` bin is its own package, `@lablup/ui-common-cli`, released at
506
+ the same version as `@lablup/ui-common` and taking it as a peer. It wraps the
507
+ Astryx CLI it pins, so a project needs no `@astryxdesign/*` dependency of its
508
+ own to use it. Being separate keeps the Astryx CLI and the codemod toolchain
509
+ (jscodeshift, postcss) out of a production install, the way Astryx splits
510
+ `@astryxdesign/cli` from `@astryxdesign/core`. Keep it a devDependency pinned
511
+ to the same version as `@lablup/ui-common`, and bump the two together:
512
+
513
+ ```
514
+ pnpm add -D @lablup/ui-common-cli@<the @lablup/ui-common version>
515
+ ```
516
+
517
+ Under pnpm 11, allow or decline the Astryx packages' postinstall (it only
518
+ prints an `astryx init` nudge) in `pnpm-workspace.yaml`, or the install stops
519
+ with `ERR_PNPM_IGNORED_BUILDS` (`ui-common upgrade` adds the entries a pnpm
520
+ project does not decide yet):
521
+
522
+ ```yaml
523
+ allowBuilds:
524
+ "@astryxdesign/core": false
525
+ "@astryxdesign/cli": false
526
+ ```
527
+
528
+ Then:
529
+
530
+ ```
531
+ pnpm exec ui-common component Button # any Astryx command: component, search,
532
+ pnpm exec ui-common search "date picker" # docs, build, template, theme, hook, ...
533
+ pnpm exec ui-common agents --write AGENTS.md
534
+ pnpm exec ui-common upgrade --from 0.1 --dry-run
535
+ ```
536
+
537
+ | Command | What it does |
538
+ | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
539
+ | `ui-common <astryx command> …` | Runs the pinned Astryx CLI and rewrites its output to ui-common: `@astryxdesign/core/<X>` is `@lablup/ui-common/<X>`, `@astryxdesign/lab` is `@lablup/ui-common/lab`, `@astryxdesign/theme-neutral` is `@lablup/ui-common/theme/neutral`, and commands read `ui-common …`. A name ui-common hides gets a note ("Use Modal, not Dialog"). `--json` output stays valid JSON; the note goes to stderr. The exit code is Astryx's. |
540
+ | `ui-common astryx …` | The same, without rewriting. |
541
+ | `ui-common agents [--write <file>] [--check]` | Prints the agent block: Astryx's `init --features agents` block, rewritten, plus ui-common's rules. It sits between `<!-- UI-COMMON:START -->` and `<!-- UI-COMMON:END -->`, which `astryx init` never touches. `--write` replaces the block in place and keeps the rest of the file; `--check` exits 1 when it is stale. |
542
+ | `ui-common upgrade [--from <v>] [--to <v>] [--dry-run] [--diff] [--report <path>] [--scan <path>]… [paths…]` | Runs the codemods between two ui-common versions over `src/` (or `paths`), updates `package.json`, and writes `ui-common-upgrade-report.md` (a `--dry-run` writes nothing and prints the report, unless `--report` names a file). The report's manual-review findings come from the whole project (tests, e2e specs, scripts), or only from the `--scan` paths. `--from` defaults to the version `package.json` declares, `--to` to the CLI's own (the ui-common version it ships with). |
543
+ | `ui-common sync-astryx <version> [--lab <v>] [--as <v>] [--dry-run]` | Maintainers only; see [CONTRIBUTING.md](CONTRIBUTING.md#bumping-astryx). |
544
+
545
+ Exit codes: a passed-through command exits with Astryx's code. ui-common's own
546
+ commands exit 0 on success, 1 on a failed check or run, and 2 on bad arguments.
547
+
548
+ `component`, `search` and the other lookups find `@astryxdesign/core` through
549
+ the project's `@lablup/ui-common`, so they work in a project that depends on
550
+ ui-common (and the CLI) alone. Without the CLI installed, any command runs
551
+ one-off as `pnpm dlx @lablup/ui-common-cli@next <command>` (or `npx`; plain
552
+ `@lablup/ui-common-cli` once 0.2.0 is published).
553
+
554
+ ui-common is also an Astryx CLI integration: `ui-common docs ui-common` (or
555
+ `astryx docs ui-common`) explains the layer, and `ui-common component Modal`
556
+ documents ui-common's own components.
557
+
132
558
  ## Development
133
559
 
134
560
  ```
135
561
  pnpm install
136
- pnpm run verify # typecheck, lint, format, boundary, test, build, pack
562
+ pnpm run verify # typecheck, lint, format, boundary, theme, test, build, pack, integration
137
563
  pnpm run test:watch
138
564
  ```
139
565
 
140
- `pnpm run verify` is what CI runs. It ends by packing the real tarball and
141
- asserting that every path in the exports map resolves inside it, then a
142
- separate job installs that tarball into a clean external React project under
143
- `fixture/`. Building green and being installable are different claims, and the
144
- second is the one consumers depend on.
566
+ See [CONTRIBUTING.md](CONTRIBUTING.md) and [docs/astryx.md](docs/astryx.md).
145
567
 
146
568
  ## Provenance
147
569
 
148
570
  The initial component and token slice was extracted from an existing Lablup
149
571
  product frontend. The import is clean: no upstream git history was published
150
- here. The detailed migration record, including the source commit for each
151
- imported file, lives in that product's own repository.
572
+ here.
152
573
 
153
574
  ## License
154
575
 
155
- [Apache-2.0](LICENSE). See [NOTICE](NOTICE).
576
+ [Apache-2.0](LICENSE). See [NOTICE](NOTICE). Astryx is MIT-licensed by Meta
577
+ Platforms, Inc. It is a dependency, not vendored.