@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
package/README.md CHANGED
@@ -1,34 +1,132 @@
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.
17
+
18
+ ## Versions
19
+
20
+ | Line | Branch | State | Install |
21
+ | ---- | ------------- | ---------------------------- | ------------------------------- |
22
+ | 0.2 | `main` | Developed here (prereleases) | `@lablup/ui-common@next` |
23
+ | 0.1 | `release/0.1` | Maintained: fixes only | `@lablup/ui-common@release-0.1` |
24
+
25
+ Until 0.2.0 is published, the `latest` dist-tag still points at 0.1's last
26
+ alpha, so a bare `pnpm add @lablup/ui-common` installs 0.1: name `@next` for
27
+ 0.2.
28
+
29
+ An app that stays on 0.1 keeps getting fixes as patch releases of the 0.1
30
+ line, published under the `release-0.1` dist-tag, never under `next` or
31
+ `latest`. 0.1 never had a plain release, so its fixes continue its prerelease
32
+ sequence (`0.1.0-alpha.24`, `0.1.0-alpha.25`, …), which a `^0.1.0-alpha.N`
33
+ range already accepts; an exact pin moves by hand:
34
+
35
+ ```
36
+ pnpm add @lablup/ui-common@release-0.1
37
+ ```
38
+
39
+ 0.1's own README and CHANGELOG are on the
40
+ [`release/0.1`](https://github.com/lablup/ui-common/tree/release/0.1) branch.
41
+ To fix a bug in 0.1, open the pull request against `release/0.1`
42
+ ([CONTRIBUTING.md](CONTRIBUTING.md#patching-an-older-line)). Moving to 0.2 is
43
+ [Upgrading from 0.1](#upgrading-from-01).
10
44
 
11
45
  ## Install
12
46
 
13
47
  ```
14
- pnpm add @lablup/ui-common
48
+ pnpm add @lablup/ui-common@next @stylexjs/stylex
15
49
  ```
16
50
 
17
- That is npmjs, which needs no authentication and is the right route for
18
- essentially everyone, including open-source consumers and forked CI.
51
+ That is npmjs, which needs no authentication. Drop `@next` once 0.2.0 is
52
+ published ([Versions](#versions)).
53
+
54
+ Peer dependencies:
55
+
56
+ - `react` and `react-dom` ^19.2. Components use `useEffectEvent`, which
57
+ React 19.2 made stable.
58
+ - `@stylexjs/stylex` ^0.19. It is the one runtime copy that Astryx, ui-common
59
+ and your own StyleX code share.
60
+ - `@astryxdesign/lab`, optional. Install it only if you use
61
+ `@lablup/ui-common/lab`. It is pinned to the exact canary ui-common is built
62
+ against, and it needs the override below.
63
+
64
+ Astryx itself (`@astryxdesign/core`, `@astryxdesign/theme-neutral`) comes in
65
+ as ui-common's own dependencies, pinned exactly. The `ui-common` bin and the
66
+ Astryx CLI it wraps are a separate dev-time package, `@lablup/ui-common-cli`
67
+ ([The ui-common CLI](#the-ui-common-cli)).
68
+ `lucide-react` (the icon set Astryx's neutral theme already depends on) and
69
+ `intl-messageformat` come in the same way.
70
+ Do not add them to your project. ui-common owns the Astryx version. Two copies
71
+ of Astryx means two copies of its React contexts, and components stop seeing
72
+ the theme.
73
+
74
+ ### pnpm 10 and later
75
+
76
+ `@astryxdesign/core` and `@astryxdesign/cli` have `postinstall` scripts. pnpm
77
+ 10 and later run no dependency's install scripts until the project decides
78
+ about each one: pnpm 10 installs and prints a warning, pnpm 11 fails
79
+ `pnpm install` with `ERR_PNPM_IGNORED_BUILDS`. The scripts only print an
80
+ `astryx init` hint, so decline them, in `pnpm-workspace.yaml`:
81
+
82
+ ```yaml
83
+ allowBuilds:
84
+ "@astryxdesign/cli": false
85
+ "@astryxdesign/core": false
86
+ ```
87
+
88
+ This repository's own `pnpm-workspace.yaml` does the same. npm runs the
89
+ scripts, or asks about them, and needs nothing.
90
+
91
+ ### With `@lablup/ui-common/lab`
92
+
93
+ The lab canary declares an exact peer on the core canary it was cut from, not
94
+ on the core ui-common pins. Without an override, pnpm installs that canary
95
+ core beside ui-common's, npm nests it under lab, and `@lablup/ui-common/lab`
96
+ runs on the second copy. Add the override for your package manager, next to
97
+ `@astryxdesign/lab` itself (`ui-common upgrade` adds both when it moves a
98
+ Drawer to lab):
99
+
100
+ pnpm, in `pnpm-workspace.yaml` (pnpm 10 and later read settings only from
101
+ there):
102
+
103
+ ```yaml
104
+ overrides:
105
+ "@astryxdesign/lab>@astryxdesign/core": "0.6.5"
106
+ ```
19
107
 
20
- `react` and `react-dom` are peer dependencies. Version 18 and 19 are both
21
- supported.
108
+ npm, in the root `package.json`:
109
+
110
+ ```json
111
+ "overrides": {
112
+ "@astryxdesign/lab": { "@astryxdesign/core": "0.6.5" }
113
+ }
114
+ ```
115
+
116
+ The version is the `@astryxdesign/core` that ui-common pins; it moves with
117
+ each ui-common release that moves Astryx. Then `pnpm why @astryxdesign/core`
118
+ (or `npm ls @astryxdesign/core`) lists one version. pnpm may still warn that
119
+ lab's peer is unmet; with the override that is expected. A project that already
120
+ lists `@astryxdesign/core` itself, at the same version, gets the same effect
121
+ from pnpm resolving the peer to its own copy.
22
122
 
23
123
  ### The GitHub Packages mirror
24
124
 
25
125
  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.
126
+ already authenticate to GitHub. It is a mirror, not a different package.
28
127
 
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:
128
+ GitHub Packages requires authentication **even for public packages**. To use
129
+ it, point the scope at that registry:
32
130
 
33
131
  ```
34
132
  # .npmrc
@@ -50,106 +148,460 @@ env:
50
148
  Locally, use a personal access token with `read:packages`, in your user
51
149
  `~/.npmrc` and never in a project file.
52
150
 
53
- ## Use
151
+ ## Set up
152
+
153
+ Declare the layer order first in your app's entry stylesheet, then load the
154
+ stylesheets in this order:
54
155
 
55
- Import from the root, or from a component subpath when you want the smallest
56
- possible graph:
156
+ ```css
157
+ @layer reset, theme, base, astryx-base, astryx-theme, ui-common, components, utilities;
158
+
159
+ @import "@lablup/ui-common/reset.css";
160
+ @import "@lablup/ui-common/astryx.css";
161
+ @import "@lablup/ui-common/theme/lablup/theme.css";
162
+ @import "@lablup/ui-common/ui-common.css";
163
+ /* Only if you use @lablup/ui-common/lab: */
164
+ @import "@lablup/ui-common/lab/lab.css";
165
+ ```
166
+
167
+ Every stylesheet ui-common ships starts with the same `@layer` statement too,
168
+ component sheets included. A layer's place is fixed by the first stylesheet
169
+ that names it, and a component's sheet (imported by its module) usually
170
+ reaches the page before your entry stylesheet does. Without the statement in
171
+ the component sheets, `ui-common` would be the lowest layer and Astryx's base
172
+ styles would beat ui-common's. Declaring it in your entry stylesheet as well
173
+ is still recommended: it documents the order, and it places your own
174
+ `components` and `utilities` layers wherever your sheets load. Repeating an
175
+ identical statement changes nothing.
176
+
177
+ Wrap the app in the theme:
57
178
 
58
179
  ```tsx
59
- import { Button, StatusTag } from "@lablup/ui-common";
60
- import { Drawer } from "@lablup/ui-common/components/Drawer";
180
+ import { Theme } from "@lablup/ui-common";
181
+ import { lablupTheme } from "@lablup/ui-common/theme/lablup/built";
182
+
183
+ <Theme theme={lablupTheme}>
184
+ <App />
185
+ </Theme>;
61
186
  ```
62
187
 
63
- Styling is opt-in and split so that importing a component never drags in every
64
- theme:
188
+ `<Theme theme={lablupTheme}>` is required. `theme.css` is scoped to
189
+ `[data-astryx-theme="lablup"]`, which only `<Theme>` sets, so without it the
190
+ app renders Astryx's default palette. No error is raised.
191
+
192
+ Dark mode is the `mode` prop: `<Theme theme={lablupTheme} mode="dark">`,
193
+ `"light"`, or `"system"` (the default, which follows the OS). The root
194
+ `<Theme>` owns `html[data-theme]`: it sets `light` or `dark`, removes the
195
+ attribute for `system`, and removes it on unmount. A 0.1-style toggle that
196
+ writes its own value there, such as `data-theme="orange-dark"`, no longer
197
+ works. Switch `mode` instead.
198
+
199
+ `/theme/lablup/built` pairs with `theme.css` and injects nothing at runtime.
200
+ `@lablup/ui-common/theme/lablup` is the same theme as source, for runtime
201
+ injection or for extending it with `defineTheme`. Use one or the other.
202
+ Astryx's neutral theme is mirrored the same way at `/theme/neutral`.
203
+
204
+ The theme names its font family (Ubuntu Sans, then Pretendard Variable) but
205
+ does not load it. Loading fonts is the app's job.
206
+
207
+ ### Tests (Vitest with jsdom)
208
+
209
+ ui-common's modules import their stylesheets, and Node cannot load a `.css`
210
+ import from `node_modules`. Vitest externalises dependencies by default, so a
211
+ test that imports ui-common fails with `Unknown file extension ".css"`.
212
+ Let Vitest process the package instead:
65
213
 
66
214
  ```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";
215
+ // vitest.config.ts
216
+ export default defineConfig({
217
+ test: {
218
+ environment: "jsdom",
219
+ server: { deps: { inline: [/@lablup\/ui-common/] } },
220
+ },
221
+ });
222
+ ```
223
+
224
+ ### Two copies
225
+
226
+ In development, ui-common warns in the console when a second copy of itself
227
+ is loaded, and says whether the copies also run on separate copies of
228
+ `@astryxdesign/core`. Two copies do not share the modal stack, and with two
229
+ Astryx cores the `Theme` and i18n providers stop reaching components. Dedupe
230
+ until `pnpm why @lablup/ui-common` lists one version.
231
+
232
+ ### Layers
70
233
 
71
- // Optional, and only if you switch themes at runtime through [data-theme].
72
- import "@lablup/ui-common/styles/themes/orange-dark.css";
234
+ | Layer | Owner |
235
+ | ------------------------- | ----------------------------------- |
236
+ | `reset`, `theme`, `base` | Astryx reset, your own base rules |
237
+ | `astryx-base` | Astryx component styles |
238
+ | `astryx-theme` | theme overrides, including Lablup's |
239
+ | `ui-common` | ui-common's own styles |
240
+ | `components`, `utilities` | yours |
241
+
242
+ ui-common's styles beat Astryx's base and theme styles for the primitives they
243
+ wrap. Your `components` layer beats ui-common. Unlayered rules beat all of it.
244
+
245
+ ## Use
246
+
247
+ Astryx components come from the root or from their own subpath, exactly as in
248
+ Astryx:
249
+
250
+ ```tsx
251
+ import { Button, Text } from "@lablup/ui-common";
252
+ import { Table } from "@lablup/ui-common/Table";
253
+ import { useClipboard } from "@lablup/ui-common/hooks";
73
254
  ```
74
255
 
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.
256
+ StyleX users import tokens from the `.stylex` subpath. The StyleX compiler
257
+ recognises a theme import by that suffix, so the root barrel will not do:
80
258
 
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.
259
+ ```ts
260
+ import { colorVars, spacingVars } from "@lablup/ui-common/theme/tokens.stylex";
261
+ ```
86
262
 
87
- ## Text is yours, not ours
263
+ Lab components live at `@lablup/ui-common/lab`.
88
264
 
89
- No component calls a translation function or reads a locale key. Every
90
- user-facing string is a prop with an English default:
265
+ ui-common's own components come from the root, and from the subpaths below:
91
266
 
92
267
  ```tsx
93
- <Drawer isOpen={open} onClose={close} closeLabel={t("common.closeDrawer")}>
94
- ...
95
- </Drawer>
268
+ import { PageHeader, PageLayout, StatCard } from "@lablup/ui-common";
269
+ import { Modal } from "@lablup/ui-common/Modal";
96
270
  ```
97
271
 
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.
272
+ | Component | What it is | Subpath |
273
+ | -------------------------------------------------------------- | ----------------------------------------------------------- | -------------------------------- |
274
+ | `Modal` | The dialog, in place of Astryx `Dialog`. See below. | `/Modal` |
275
+ | `PageLayout` | A page's width clamp (`standard`, `wide`, `full`) | `/components/PageLayout` |
276
+ | `PageHeader` | A page's title, description, actions and error banner | `/components/PageHeader` |
277
+ | `StatCard` | A dashboard metric, on Astryx `Card` | `/components/StatCard` |
278
+ | `ErrorState` | A full-area error with recovery actions | `/components/ErrorState` |
279
+ | `SkeletonCard`, `SkeletonText`, `SkeletonChart`, `SkeletonRow` | Loading placeholders drawn with Astryx `Skeleton` | `/components/Skeleton` |
280
+ | `SmoothHeight` | Animates a container toward its content's height | `/components/SmoothHeight` |
281
+ | `DigitPopIn` | A number whose characters pop in, one after another | `/components/DigitPopIn` |
282
+ | `CountBadge` | A count or dot overlaid on its child's corner | `/components/CountBadge` |
283
+ | `DoubleBadge` | A run of Badges welded into one chip | `/components/DoubleBadge` |
284
+ | `BooleanToken` | An on/off value as a Token | `/components/BooleanToken` |
285
+ | `IconWithTooltip` | A focusable glyph that explains itself in a Tooltip | `/components/IconWithTooltip` |
286
+ | `ImageWithFallback` | An image that renders a fallback node when it fails to load | `/components/ImageWithFallback` |
287
+ | `NotificationStack` | Floating notices with task progress and actions | `/components/NotificationStack` |
288
+ | `OverlayScrollbar` | A persistent scroll thumb drawn over a scroll container | `/components/OverlayScrollbar` |
289
+ | `ConfirmPopover` | A one-click confirmation anchored to its trigger | `/components/ConfirmPopover` |
290
+ | `PagedSelector` | A searchable selector over options loaded a page at a time | `/components/PagedSelector` |
291
+ | `SelectionLabel` | "3 selected", with a button that clears the selection | `/components/SelectionLabel` |
292
+ | `UncontrolledInput` | A field that reports its value on Enter or blur | `/components/UncontrolledInput` |
293
+ | `AlertModal` | An alert dialog, in place of Astryx `AlertDialog` | `/AlertModal` |
294
+ | `DeleteConfirmModal` | Confirms a deletion, with typed confirmation when needed | `/components/DeleteConfirmModal` |
295
+ | `StepNumberInput`, `NumberStepper` | A number field that steps along a list of values | `/components/StepNumberInput` |
296
+ | `BoardItemTitle` | A dashboard panel's sticky title row | `/components/BoardItemTitle` |
297
+ | `Statistic` | A metric with a caption, a large value and a notched bar | `/components/Statistic` |
298
+ | `DividedRow` | A wrapping row with dividers between neighbours on a line | `/components/DividedRow` |
299
+ | `TokenList` | Values inline, the rest behind `+N` on hover | `/components/TokenList` |
300
+ | `TokenRow` | Tokens cut off with "and N more" | `/components/TokenRow` |
301
+ | `NotificationItem` | The title, description, actions and footer of one notice | `/components/NotificationItem` |
302
+ | `UnitGrid`, `UnitGridSkeleton` | Groups of unit squares on one lattice, with a hover card | `/components/UnitGrid` |
303
+ | `ColorPicker` | A hex colour field on the platform colour input | `/components/ColorPicker` |
304
+ | `Form` and its hooks | A form engine with antd's form API. See below. | `/Form` |
305
+ | `BulkEditFormItem` | A form item that edits one field across many records | `/components/BulkEditFormItem` |
306
+ | `DataGrid`, `DataGridSettingsModal`, `DataGridExportModal` | A table with paging, sorting, selection and column settings | `/components/DataGrid` |
307
+ | `BulkErrorModal` | The failed items of a bulk operation, in a grid | `/components/BulkErrorModal` |
308
+ | `ProgressWithLabel` | A bar that carries its label and value label | `/components/ProgressWithLabel` |
309
+ | `TextHighlighter` | Marks a search keyword in a string | `/components/TextHighlighter` |
310
+ | `CountdownBorder` | A border that fills as a countdown to a refresh | `/components/CountdownBorder` |
311
+ | `DoubleToken` | A run of Tokens welded into one chip | `/components/DoubleToken` |
312
+ | `ListBanner` | A Banner that lists items, scrolling past a height | `/components/ListBanner` |
313
+ | `usePrefersReducedMotion` | The `prefers-reduced-motion` media query, as a hook | root only |
314
+
315
+ Their styles live in `@layer ui-common`, under `uic-` class names.
316
+
317
+ ### Modal
318
+
319
+ `Modal` takes every prop Astryx `Dialog` takes, so a `Dialog` call site moves
320
+ over by renaming the import: `@astryxdesign/core/Dialog` becomes
321
+ `@lablup/ui-common/Modal`, `Dialog` becomes `Modal`, `DialogProps` becomes
322
+ `ModalProps`. `DialogHeader`, `DialogPosition`, `DialogPurpose` and
323
+ `DialogVariant` are re-exported unchanged, and as `ModalHeader`,
324
+ `ModalPosition`, `ModalPurpose` and `ModalVariant`. One difference is visible
325
+ to a caller: `ref` reaches the `div` that carries `role="dialog"`, not a
326
+ `<dialog>` element.
327
+
328
+ What it adds:
329
+
330
+ - It renders into a `document.body` portal instead of the browser's top layer,
331
+ so whatever the app layers above the modal band, such as a notification
332
+ stack, stays visible. The band is `z-index` 1100 to 10999 by default;
333
+ `configureModalZIndex({ base, step, max })` moves it.
334
+ - While a modal is open, the topmost one is `aria-modal="true"` and the rest
335
+ of the page is `inert`, as `showModal()` would make it. Two things stay
336
+ reachable: modal roots, and elements marked `data-uic-modal-live`
337
+ (`MODAL_LIVE_ATTRIBUTE`). `NotificationStack` marks itself, so notices over a
338
+ modal can still be read and dismissed; mark your own live region the same
339
+ way, and call `refreshModalBackground()` if it mounts while a modal is open.
340
+ An `inert` the page set itself is left as it was.
341
+ - A modal opened from inside another paints above it. Only the topmost one
342
+ traps focus and takes Escape; covered ones are `inert`. Other portalled
343
+ surfaces (a drawer) join the same stack with `useModalLevel`, which also
344
+ keeps them out of the inert background.
345
+ - Content mounts on first open and stays mounted while closed.
346
+ `unmountOnClose` drops it. `afterOpenChange` reports each open and close.
347
+ - With `title`, `onAction` or `footer`, it lays out a header, the body and a
348
+ footer with a primary action and Cancel. `onAction` may return a promise; the
349
+ button stays pending until it settles. It does not close the modal.
101
350
 
102
- ## Design tokens are API
351
+ ```tsx
352
+ <Modal
353
+ isOpen={isOpen}
354
+ onOpenChange={setIsOpen}
355
+ title="Rename folder"
356
+ actionLabel="Rename"
357
+ onAction={async () => {
358
+ await rename(name);
359
+ setIsOpen(false);
360
+ }}
361
+ >
362
+ <TextInput label="Name" value={name} onChange={setName} />
363
+ </Modal>
364
+ ```
103
365
 
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.
366
+ ### Form
109
367
 
110
- ## What gets in
368
+ `@lablup/ui-common/Form` is a form engine with antd's form API: `Form`,
369
+ `Form.Item`, `Form.List`, `Form.ErrorList`, `Form.Provider`,
370
+ `Form.useForm`, `Form.useWatch`, `Form.useFormInstance` and
371
+ `Form.Item.useStatus`, with antd's rules (`required`, `message`,
372
+ `validator`, `type`, `min`, `max`, `pattern`, `whitespace`,
373
+ `warningOnly`). It keeps antd's names on purpose: it is a form-state API,
374
+ not a component, so code written against antd's form moves over by changing
375
+ the import. The item shell renders on Astryx tokens.
376
+
377
+ ```tsx
378
+ import { Form } from "@lablup/ui-common/Form";
379
+
380
+ const [form] = Form.useForm();
381
+
382
+ <Form form={form} layout="vertical" onFinish={save}>
383
+ <Form.Item name="name" label="Name" rules={[{ required: true }]}>
384
+ <TextInput label="Name" isLabelHidden />
385
+ </Form.Item>
386
+ </Form>;
387
+ ```
388
+
389
+ - Validation messages come from ui-common's catalog in the locale of the
390
+ nearest `InternationalizationProvider` (see Strings). `FormConfigProvider`
391
+ sets `validateMessages`, `requiredMark` and `optionalLabel` app-wide; a
392
+ form's own `validateMessages` wins over both.
393
+ - A control shows its item's validation state by reading
394
+ `Form.Item.useStatus()` or `FormItemInputContext`.
395
+ - `form.scrollToField` and `scrollToFirstError` find the control by
396
+ `data-uic-field-id`, which `Form.Item` puts on its child; Astryx inputs
397
+ keep `data-*` attributes.
398
+ - The DOM is `.uic-form` (with `data-layout`) and `.uic-form-item` with
399
+ `__label`, `__label--required`, `__control`, `__control-input`,
400
+ `__explain`, `__explain-error`, `__explain-warning` and `__extra`.
401
+ The item carries `data-layout`, `data-size` and `data-status`. These
402
+ class names are the public hooks for tests and product CSS.
403
+ - Three custom properties adjust it: `--form-item-margin-bottom`
404
+ (default `--spacing-6`), `--form-item-gap` (label to control in a
405
+ vertical item, default `--spacing-2`) and `--form-item-line-height`
406
+ (default `--text-body-leading`). Help, extra, the tooltip glyph and the
407
+ optional suffix take the theme's `--color-text-description` where the
408
+ theme declares one, else `--color-text-secondary`.
409
+
410
+ ### What is hidden
411
+
412
+ A few Astryx subpaths are deliberately not re-exported. They are listed, with
413
+ the reason and the replacement, in [`exports.exclude.json`](exports.exclude.json).
414
+ Today that is `Dialog` (use `Modal`), `AlertDialog` (use `AlertModal`) and two
415
+ Astryx CLI data files.
416
+
417
+ ### Name rule
418
+
419
+ A ui-common component never shares a name with an Astryx core or lab export.
420
+ If a name is `Button`, it is Astryx's `Button`. The same holds the other way:
421
+ `DialogHeader` from `@lablup/ui-common/Modal` is Astryx's own `DialogHeader`.
422
+
423
+ ## Strings
424
+
425
+ ui-common's components show a few built-in strings. Every one of them is also a
426
+ prop, and an explicit prop always wins.
427
+
428
+ The defaults resolve through Astryx's own `InternationalizationProvider`.
429
+ Supply translations once, at the provider:
430
+
431
+ ```tsx
432
+ import { InternationalizationProvider } from "@lablup/ui-common/i18n";
433
+ import { mergeMessages, uiCommonMessages } from "@lablup/ui-common/i18n-catalog";
434
+ import astryxKo from "@lablup/ui-common/locales/ko-KR.json";
435
+
436
+ <InternationalizationProvider
437
+ locale="ko-KR"
438
+ messages={mergeMessages({ "ko-KR": astryxKo }, uiCommonMessages)}
439
+ >
440
+ <App />
441
+ </InternationalizationProvider>;
442
+ ```
111
443
 
112
- The package is not a home for every reusable-looking component. A component is
113
- admitted when all three hold:
444
+ - `@lablup/ui-common/locales/<locale>.json` is Astryx's own catalog;
445
+ `@lablup/ui-common/locales/<locale>.generated.js` is the same catalog as a
446
+ compact string map, without translator descriptions.
447
+ - `@lablup/ui-common/ui-common-locales/<locale>.json` is ui-common's.
448
+ - Without a provider, everything renders in English.
449
+
450
+ ui-common never uses a product i18n runtime.
451
+
452
+ ## Upgrading from 0.1
453
+
454
+ Removed in 0.2, each replaced by Astryx:
455
+
456
+ | 0.1 | 0.2 |
457
+ | ------------- | ------------------------------------- |
458
+ | `Badge` | `Badge`, or `Token` for a chip |
459
+ | `BaseCard` | `Card`, or `ClickableCard` |
460
+ | `Button` | `Button`, or `IconButton` |
461
+ | `DataTable` | `Table` |
462
+ | `Drawer` | `Drawer` from `@lablup/ui-common/lab` |
463
+ | `EmptyState` | `EmptyState` |
464
+ | `ProgressBar` | `ProgressBar` |
465
+ | `Select` | `Selector` |
466
+ | `Skeleton` | `Skeleton` (the composites stay) |
467
+ | `StatusTag` | `StatusDot` |
468
+ | `Tabs` | `TabList` |
469
+ | `Tooltip` | `Tooltip` |
470
+
471
+ The kept components keep their 0.1 props. Their class names moved to `uic-`
472
+ (`page-header` is `uic-page-header`), so CSS or tests that select the old
473
+ names need updating. [`packages/cli/migration/0.1-to-0.2.json`](packages/cli/migration/0.1-to-0.2.json)
474
+ lists every import, prop, class and stylesheet change in a form the upgrade
475
+ tool reads.
476
+
477
+ Before you start, read [docs/migrating-to-0.2.md](docs/migrating-to-0.2.md):
478
+ the problems the first app hit when it moved onto 0.2, and a checklist.
479
+
480
+ Let the upgrade tool do the mechanical part. It ships in
481
+ `@lablup/ui-common-cli`, so run it one-off from the project still on 0.1:
114
482
 
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.
483
+ ```
484
+ pnpm dlx @lablup/ui-common-cli@next upgrade --from 0.1 --dry-run # writes nothing; prints the changes and the report
485
+ pnpm dlx @lablup/ui-common-cli@next upgrade --from 0.1 # applies it
486
+ ```
119
487
 
120
- Anything that fails one of these stays with the product that needs it. See
121
- [CONTRIBUTING.md](CONTRIBUTING.md).
488
+ (`npx @lablup/ui-common-cli@next upgrade --from 0.1` with npm.) Keep the
489
+ `@next` while 0.2 is in prerelease: the CLI has published only prereleases,
490
+ which go to the `next` dist-tag, and npm points `latest` at a package's first
491
+ publish, so a bare `@lablup/ui-common-cli` resolves to its first alpha. Drop
492
+ `@next` once 0.2.0 is published. It bumps
493
+ `@lablup/ui-common` in `package.json` and adds `@lablup/ui-common-cli` as a
494
+ devDependency at the same version; then run your install, and later upgrades
495
+ are `pnpm exec ui-common upgrade --from <old version>`.
496
+
497
+ It moves the imports, reshapes the props it can prove safe, rewrites the
498
+ `styles/base.css` import into the 0.2 stylesheet set (or, in an app that
499
+ never imported it, imports that set first in the app's entry script), wraps
500
+ the app's root render (`createRoot(…).render(<App />)`) in
501
+ `<Theme theme={lablupTheme}>` when no module uses `<Theme>` yet, and updates
502
+ `package.json`. Code that imports a moved component through a module of your
503
+ own that re-exports it (a barrel such as `@/components/common`, found through
504
+ relative paths and your tsconfig `paths`) gets the same rewrite. A component of
505
+ yours that wraps one and takes its props is listed in the report instead: its
506
+ props are yours to change. Everything else is a `TODO(ui-common-upgrade)` comment in the
507
+ code and a line in `ui-common-upgrade-report.md`, together with the CSS, DOM
508
+ queries, tests and module mocks that still name 0.1 classes, custom
509
+ properties of yours that Astryx declares too, and code that switches 0.1
510
+ themes through `data-theme`. Steps the app cannot work without (the
511
+ stylesheets or `<Theme>`, where the upgrade could not add them) open the
512
+ report under "Action required".
513
+
514
+ Deprecated in 0.2, removed in 0.3:
515
+
516
+ - **`--token-*` custom properties.** Astryx's token set is the contract now.
517
+ `@lablup/ui-common/legacy-tokens.css` declares every old name as the matching
518
+ Astryx token, inside `@layer ui-common`, so code that reads them keeps
519
+ working while it moves.
520
+ - **`styles/base.css` and `styles/themes/*.css`.** Use the Lablup theme. No
521
+ ui-common component reads them any more; they stay one release so existing
522
+ imports keep resolving while the upgrade tool rewrites them.
122
523
 
123
524
  ## What is deliberately absent
124
525
 
125
526
  - API clients, endpoints, and authentication.
126
527
  - Application state, stores, and routing.
127
528
  - Tauri APIs and plugins, and any desktop-shell assumption.
128
- - Product locale keys and any application-global i18n instance.
529
+ - Product i18n runtimes and product locale keys.
129
530
  - Anything from the private AI companion package. The dependency runs the
130
531
  other way, and CI fails if it ever reverses.
131
532
 
533
+ ## The ui-common CLI
534
+
535
+ The `ui-common` bin is its own package, `@lablup/ui-common-cli`, released at
536
+ the same version as `@lablup/ui-common` and taking it as a peer. It wraps the
537
+ Astryx CLI it pins, so a project needs no `@astryxdesign/*` dependency of its
538
+ own to use it. Being separate keeps the Astryx CLI and the codemod toolchain
539
+ (jscodeshift, postcss) out of a production install, the way Astryx splits
540
+ `@astryxdesign/cli` from `@astryxdesign/core`. Keep it a devDependency pinned
541
+ to the same version as `@lablup/ui-common`, and bump the two together:
542
+
543
+ ```
544
+ pnpm add -D @lablup/ui-common-cli@<the @lablup/ui-common version>
545
+ ```
546
+
547
+ Under pnpm 11, allow or decline the Astryx packages' postinstall (it only
548
+ prints an `astryx init` nudge) in `pnpm-workspace.yaml`, or the install stops
549
+ with `ERR_PNPM_IGNORED_BUILDS` (`ui-common upgrade` adds the entries a pnpm
550
+ project does not decide yet):
551
+
552
+ ```yaml
553
+ allowBuilds:
554
+ "@astryxdesign/core": false
555
+ "@astryxdesign/cli": false
556
+ ```
557
+
558
+ Then:
559
+
560
+ ```
561
+ pnpm exec ui-common component Button # any Astryx command: component, search,
562
+ pnpm exec ui-common search "date picker" # docs, build, template, theme, hook, ...
563
+ pnpm exec ui-common agents --write AGENTS.md
564
+ pnpm exec ui-common upgrade --from 0.1 --dry-run
565
+ ```
566
+
567
+ | Command | What it does |
568
+ | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
569
+ | `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. |
570
+ | `ui-common astryx …` | The same, without rewriting. |
571
+ | `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. |
572
+ | `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). |
573
+ | `ui-common sync-astryx <version> [--lab <v>] [--as <v>] [--dry-run]` | Maintainers only; see [CONTRIBUTING.md](CONTRIBUTING.md#bumping-astryx). |
574
+
575
+ Exit codes: a passed-through command exits with Astryx's code. ui-common's own
576
+ commands exit 0 on success, 1 on a failed check or run, and 2 on bad arguments.
577
+
578
+ `component`, `search` and the other lookups find `@astryxdesign/core` through
579
+ the project's `@lablup/ui-common`, so they work in a project that depends on
580
+ ui-common (and the CLI) alone. Without the CLI installed, any command runs
581
+ one-off as `pnpm dlx @lablup/ui-common-cli@next <command>` (or `npx`; plain
582
+ `@lablup/ui-common-cli` once 0.2.0 is published).
583
+
584
+ ui-common is also an Astryx CLI integration: `ui-common docs ui-common` (or
585
+ `astryx docs ui-common`) explains the layer, and `ui-common component Modal`
586
+ documents ui-common's own components.
587
+
132
588
  ## Development
133
589
 
134
590
  ```
135
591
  pnpm install
136
- pnpm run verify # typecheck, lint, format, boundary, test, build, pack
592
+ pnpm run verify # typecheck, lint, format, boundary, theme, test, build, pack, integration
137
593
  pnpm run test:watch
138
594
  ```
139
595
 
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.
596
+ See [CONTRIBUTING.md](CONTRIBUTING.md) and [docs/astryx.md](docs/astryx.md).
145
597
 
146
598
  ## Provenance
147
599
 
148
600
  The initial component and token slice was extracted from an existing Lablup
149
601
  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.
602
+ here.
152
603
 
153
604
  ## License
154
605
 
155
- [Apache-2.0](LICENSE). See [NOTICE](NOTICE).
606
+ [Apache-2.0](LICENSE). See [NOTICE](NOTICE). Astryx is MIT-licensed by Meta
607
+ Platforms, Inc. It is a dependency, not vendored.