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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (909) hide show
  1. package/NOTICE +62 -0
  2. package/README.md +490 -68
  3. package/astryx/components/AlertModal.doc.mjs +91 -0
  4. package/astryx/components/AlertModal.tsx +3 -0
  5. package/astryx/components/BoardItemTitle.doc.mjs +51 -0
  6. package/astryx/components/BoardItemTitle.tsx +3 -0
  7. package/astryx/components/BooleanToken.doc.mjs +57 -0
  8. package/astryx/components/BooleanToken.tsx +3 -0
  9. package/astryx/components/BulkEditFormItem.doc.mjs +68 -0
  10. package/astryx/components/BulkEditFormItem.tsx +3 -0
  11. package/astryx/components/BulkErrorModal.doc.mjs +75 -0
  12. package/astryx/components/BulkErrorModal.tsx +3 -0
  13. package/astryx/components/ColorPicker.doc.mjs +88 -0
  14. package/astryx/components/ColorPicker.tsx +3 -0
  15. package/astryx/components/ConfirmPopover.doc.mjs +99 -0
  16. package/astryx/components/ConfirmPopover.tsx +3 -0
  17. package/astryx/components/CountBadge.doc.mjs +93 -0
  18. package/astryx/components/CountBadge.tsx +3 -0
  19. package/astryx/components/CountdownBorder.doc.mjs +57 -0
  20. package/astryx/components/CountdownBorder.tsx +3 -0
  21. package/astryx/components/DataGrid.doc.mjs +166 -0
  22. package/astryx/components/DataGrid.tsx +3 -0
  23. package/astryx/components/DeleteConfirmModal.doc.mjs +163 -0
  24. package/astryx/components/DeleteConfirmModal.tsx +3 -0
  25. package/astryx/components/DividedRow.doc.mjs +85 -0
  26. package/astryx/components/DividedRow.tsx +3 -0
  27. package/astryx/components/DoubleBadge.doc.mjs +40 -0
  28. package/astryx/components/DoubleBadge.tsx +3 -0
  29. package/astryx/components/DoubleToken.doc.mjs +38 -0
  30. package/astryx/components/DoubleToken.tsx +3 -0
  31. package/astryx/components/Form.doc.mjs +113 -0
  32. package/astryx/components/Form.tsx +3 -0
  33. package/astryx/components/IconWithTooltip.doc.mjs +57 -0
  34. package/astryx/components/IconWithTooltip.tsx +3 -0
  35. package/astryx/components/ImageWithFallback.doc.mjs +47 -0
  36. package/astryx/components/ImageWithFallback.tsx +3 -0
  37. package/astryx/components/ListBanner.doc.mjs +50 -0
  38. package/astryx/components/ListBanner.tsx +3 -0
  39. package/astryx/components/Modal.doc.mjs +176 -0
  40. package/astryx/components/Modal.tsx +3 -0
  41. package/astryx/components/NotificationItem.doc.mjs +52 -0
  42. package/astryx/components/NotificationItem.tsx +3 -0
  43. package/astryx/components/NotificationStack.doc.mjs +66 -0
  44. package/astryx/components/NotificationStack.tsx +3 -0
  45. package/astryx/components/OverlayScrollbar.doc.mjs +49 -0
  46. package/astryx/components/OverlayScrollbar.tsx +3 -0
  47. package/astryx/components/PageHeader.doc.mjs +94 -0
  48. package/astryx/components/PageHeader.tsx +3 -0
  49. package/astryx/components/PagedSelector.doc.mjs +183 -0
  50. package/astryx/components/PagedSelector.tsx +3 -0
  51. package/astryx/components/ProgressWithLabel.doc.mjs +69 -0
  52. package/astryx/components/ProgressWithLabel.tsx +3 -0
  53. package/astryx/components/SelectionLabel.doc.mjs +55 -0
  54. package/astryx/components/SelectionLabel.tsx +3 -0
  55. package/astryx/components/Statistic.doc.mjs +84 -0
  56. package/astryx/components/Statistic.tsx +3 -0
  57. package/astryx/components/StepNumberInput.doc.mjs +102 -0
  58. package/astryx/components/StepNumberInput.tsx +3 -0
  59. package/astryx/components/TextHighlighter.doc.mjs +47 -0
  60. package/astryx/components/TextHighlighter.tsx +3 -0
  61. package/astryx/components/TokenList.doc.mjs +58 -0
  62. package/astryx/components/TokenList.tsx +3 -0
  63. package/astryx/components/TokenRow.doc.mjs +62 -0
  64. package/astryx/components/TokenRow.tsx +3 -0
  65. package/astryx/components/UncontrolledInput.doc.mjs +68 -0
  66. package/astryx/components/UncontrolledInput.tsx +3 -0
  67. package/astryx/components/UnitGrid.doc.mjs +107 -0
  68. package/astryx/components/UnitGrid.tsx +3 -0
  69. package/astryx/docs/ui-common.doc.mjs +112 -0
  70. package/astryx.integration.mjs +35 -0
  71. package/dist/assets/components/BoardItemTitle/BoardItemTitle.css +2 -0
  72. package/dist/assets/components/BulkErrorModal/BulkErrorModal.css +2 -0
  73. package/dist/assets/components/ColorPicker/ColorPicker.css +2 -0
  74. package/dist/assets/components/CountBadge/CountBadge.css +2 -0
  75. package/dist/assets/components/CountdownBorder/CountdownBorder.css +2 -0
  76. package/dist/assets/components/DataGrid/DataGrid.css +2 -0
  77. package/dist/assets/components/DeleteConfirmModal/DeleteConfirmModal.css +2 -0
  78. package/dist/assets/components/DigitPopIn/DigitPopIn.css +2 -0
  79. package/dist/assets/components/DividedRow/DividedRow.css +2 -0
  80. package/dist/assets/components/DoubleBadge/DoubleBadge.css +2 -0
  81. package/dist/assets/components/DoubleToken/DoubleToken.css +2 -0
  82. package/dist/assets/components/ErrorState/ErrorState.css +2 -1
  83. package/dist/assets/components/Form/FormItemVisual.css +2 -0
  84. package/dist/assets/components/IconWithTooltip/IconWithTooltip.css +2 -0
  85. package/dist/assets/components/ImageWithFallback/ImageWithFallback.css +2 -0
  86. package/dist/assets/components/ListBanner/ListBanner.css +2 -0
  87. package/dist/assets/components/Modal/Modal.css +2 -0
  88. package/dist/assets/components/NotificationItem/NotificationItem.css +2 -0
  89. package/dist/assets/components/NotificationStack/NotificationStack.css +2 -0
  90. package/dist/assets/components/OverlayScrollbar/OverlayScrollbar.css +2 -0
  91. package/dist/assets/components/PageHeader/PageHeader.css +2 -1
  92. package/dist/assets/components/PageLayout/PageLayout.css +2 -1
  93. package/dist/assets/components/PagedSelector/PagedSelector.css +2 -0
  94. package/dist/assets/components/ProgressWithLabel/ProgressWithLabel.css +2 -0
  95. package/dist/assets/components/Skeleton/SkeletonCard.css +2 -1
  96. package/dist/assets/components/Skeleton/SkeletonChart.css +2 -1
  97. package/dist/assets/components/Skeleton/SkeletonRow.css +2 -1
  98. package/dist/assets/components/Skeleton/SkeletonShape.css +2 -0
  99. package/dist/assets/components/Skeleton/SkeletonText.css +2 -1
  100. package/dist/assets/components/SmoothHeight/SmoothHeight.css +2 -1
  101. package/dist/assets/components/StatCard/StatCard.css +2 -1
  102. package/dist/assets/components/Statistic/Statistic.css +2 -0
  103. package/dist/assets/components/StepNumberInput/NumberStepper.css +2 -0
  104. package/dist/assets/components/TextHighlighter/TextHighlighter.css +2 -0
  105. package/dist/assets/components/TokenList/TokenList.css +2 -0
  106. package/dist/assets/components/TokenRow/TokenRow.css +2 -0
  107. package/dist/assets/components/UnitGrid/UnitGrid.css +2 -0
  108. package/dist/astryx/AppShell.d.ts +1 -0
  109. package/dist/astryx/AppShell.js +1 -0
  110. package/dist/astryx/AspectRatio.d.ts +1 -0
  111. package/dist/astryx/AspectRatio.js +1 -0
  112. package/dist/astryx/Avatar.d.ts +1 -0
  113. package/dist/astryx/Avatar.js +1 -0
  114. package/dist/astryx/AvatarGroup.d.ts +1 -0
  115. package/dist/astryx/AvatarGroup.js +1 -0
  116. package/dist/astryx/Badge.d.ts +1 -0
  117. package/dist/astryx/Badge.js +1 -0
  118. package/dist/astryx/Banner.d.ts +1 -0
  119. package/dist/astryx/Banner.js +1 -0
  120. package/dist/astryx/BaseProps.d.ts +1 -0
  121. package/dist/astryx/BaseProps.js +1 -0
  122. package/dist/astryx/Blockquote.d.ts +1 -0
  123. package/dist/astryx/Blockquote.js +1 -0
  124. package/dist/astryx/BottomSheet.d.ts +1 -0
  125. package/dist/astryx/BottomSheet.js +1 -0
  126. package/dist/astryx/Breadcrumbs.d.ts +1 -0
  127. package/dist/astryx/Breadcrumbs.js +1 -0
  128. package/dist/astryx/Button.d.ts +1 -0
  129. package/dist/astryx/Button.js +1 -0
  130. package/dist/astryx/ButtonGroup.d.ts +1 -0
  131. package/dist/astryx/ButtonGroup.js +1 -0
  132. package/dist/astryx/Calendar/utils.d.ts +1 -0
  133. package/dist/astryx/Calendar/utils.js +1 -0
  134. package/dist/astryx/Calendar.d.ts +1 -0
  135. package/dist/astryx/Calendar.js +1 -0
  136. package/dist/astryx/Card.d.ts +1 -0
  137. package/dist/astryx/Card.js +1 -0
  138. package/dist/astryx/Carousel.d.ts +1 -0
  139. package/dist/astryx/Carousel.js +1 -0
  140. package/dist/astryx/Center.d.ts +1 -0
  141. package/dist/astryx/Center.js +1 -0
  142. package/dist/astryx/Chat.d.ts +1 -0
  143. package/dist/astryx/Chat.js +1 -0
  144. package/dist/astryx/CheckboxInput.d.ts +1 -0
  145. package/dist/astryx/CheckboxInput.js +1 -0
  146. package/dist/astryx/CheckboxList.d.ts +1 -0
  147. package/dist/astryx/CheckboxList.js +1 -0
  148. package/dist/astryx/Citation.d.ts +1 -0
  149. package/dist/astryx/Citation.js +1 -0
  150. package/dist/astryx/ClickableCard.d.ts +1 -0
  151. package/dist/astryx/ClickableCard.js +1 -0
  152. package/dist/astryx/Code.d.ts +1 -0
  153. package/dist/astryx/Code.js +1 -0
  154. package/dist/astryx/CodeBlock.d.ts +1 -0
  155. package/dist/astryx/CodeBlock.js +1 -0
  156. package/dist/astryx/Collapsible.d.ts +1 -0
  157. package/dist/astryx/Collapsible.js +1 -0
  158. package/dist/astryx/CommandPalette.d.ts +1 -0
  159. package/dist/astryx/CommandPalette.js +1 -0
  160. package/dist/astryx/ContextMenu.d.ts +1 -0
  161. package/dist/astryx/ContextMenu.js +1 -0
  162. package/dist/astryx/DateInput.d.ts +1 -0
  163. package/dist/astryx/DateInput.js +1 -0
  164. package/dist/astryx/DateRangeInput.d.ts +1 -0
  165. package/dist/astryx/DateRangeInput.js +1 -0
  166. package/dist/astryx/DateTimeInput.d.ts +1 -0
  167. package/dist/astryx/DateTimeInput.js +1 -0
  168. package/dist/astryx/Divider.d.ts +1 -0
  169. package/dist/astryx/Divider.js +1 -0
  170. package/dist/astryx/DropdownMenu.d.ts +1 -0
  171. package/dist/astryx/DropdownMenu.js +1 -0
  172. package/dist/astryx/EmptyState.d.ts +1 -0
  173. package/dist/astryx/EmptyState.js +1 -0
  174. package/dist/astryx/Field.d.ts +1 -0
  175. package/dist/astryx/Field.js +1 -0
  176. package/dist/astryx/FieldStatus.d.ts +1 -0
  177. package/dist/astryx/FieldStatus.js +1 -0
  178. package/dist/astryx/FileInput.d.ts +1 -0
  179. package/dist/astryx/FileInput.js +1 -0
  180. package/dist/astryx/FormLayout.d.ts +1 -0
  181. package/dist/astryx/FormLayout.js +1 -0
  182. package/dist/astryx/Grid.d.ts +1 -0
  183. package/dist/astryx/Grid.js +1 -0
  184. package/dist/astryx/HStack.d.ts +1 -0
  185. package/dist/astryx/HStack.js +1 -0
  186. package/dist/astryx/Heading.d.ts +1 -0
  187. package/dist/astryx/Heading.js +1 -0
  188. package/dist/astryx/HoverCard.d.ts +1 -0
  189. package/dist/astryx/HoverCard.js +1 -0
  190. package/dist/astryx/Icon.d.ts +1 -0
  191. package/dist/astryx/Icon.js +1 -0
  192. package/dist/astryx/IconButton.d.ts +1 -0
  193. package/dist/astryx/IconButton.js +1 -0
  194. package/dist/astryx/Indicator.d.ts +1 -0
  195. package/dist/astryx/Indicator.js +1 -0
  196. package/dist/astryx/InputGroup.d.ts +1 -0
  197. package/dist/astryx/InputGroup.js +1 -0
  198. package/dist/astryx/InteractiveRoleContext.d.ts +1 -0
  199. package/dist/astryx/InteractiveRoleContext.js +1 -0
  200. package/dist/astryx/Item.d.ts +1 -0
  201. package/dist/astryx/Item.js +1 -0
  202. package/dist/astryx/Kbd.d.ts +1 -0
  203. package/dist/astryx/Kbd.js +1 -0
  204. package/dist/astryx/Layer.d.ts +1 -0
  205. package/dist/astryx/Layer.js +1 -0
  206. package/dist/astryx/Layout.d.ts +1 -0
  207. package/dist/astryx/Layout.js +1 -0
  208. package/dist/astryx/Lightbox.d.ts +1 -0
  209. package/dist/astryx/Lightbox.js +1 -0
  210. package/dist/astryx/Link.d.ts +1 -0
  211. package/dist/astryx/Link.js +1 -0
  212. package/dist/astryx/List.d.ts +1 -0
  213. package/dist/astryx/List.js +1 -0
  214. package/dist/astryx/Markdown/utils.d.ts +1 -0
  215. package/dist/astryx/Markdown/utils.js +1 -0
  216. package/dist/astryx/Markdown.d.ts +1 -0
  217. package/dist/astryx/Markdown.js +1 -0
  218. package/dist/astryx/MetadataList.d.ts +1 -0
  219. package/dist/astryx/MetadataList.js +1 -0
  220. package/dist/astryx/MobileNav.d.ts +1 -0
  221. package/dist/astryx/MobileNav.js +1 -0
  222. package/dist/astryx/MoreMenu.d.ts +1 -0
  223. package/dist/astryx/MoreMenu.js +1 -0
  224. package/dist/astryx/MultiSelector.d.ts +1 -0
  225. package/dist/astryx/MultiSelector.js +1 -0
  226. package/dist/astryx/NavIcon.d.ts +1 -0
  227. package/dist/astryx/NavIcon.js +1 -0
  228. package/dist/astryx/NavMenu.d.ts +1 -0
  229. package/dist/astryx/NavMenu.js +1 -0
  230. package/dist/astryx/NumberInput.d.ts +1 -0
  231. package/dist/astryx/NumberInput.js +1 -0
  232. package/dist/astryx/Outline.d.ts +1 -0
  233. package/dist/astryx/Outline.js +1 -0
  234. package/dist/astryx/OverflowList.d.ts +1 -0
  235. package/dist/astryx/OverflowList.js +1 -0
  236. package/dist/astryx/Overlay.d.ts +1 -0
  237. package/dist/astryx/Overlay.js +1 -0
  238. package/dist/astryx/Pagination.d.ts +1 -0
  239. package/dist/astryx/Pagination.js +1 -0
  240. package/dist/astryx/Popover.d.ts +1 -0
  241. package/dist/astryx/Popover.js +1 -0
  242. package/dist/astryx/PowerSearch/utils.d.ts +1 -0
  243. package/dist/astryx/PowerSearch/utils.js +1 -0
  244. package/dist/astryx/PowerSearch.d.ts +1 -0
  245. package/dist/astryx/PowerSearch.js +1 -0
  246. package/dist/astryx/ProgressBar.d.ts +1 -0
  247. package/dist/astryx/ProgressBar.js +1 -0
  248. package/dist/astryx/RadioList.d.ts +1 -0
  249. package/dist/astryx/RadioList.js +1 -0
  250. package/dist/astryx/Resizable/utils.d.ts +1 -0
  251. package/dist/astryx/Resizable/utils.js +1 -0
  252. package/dist/astryx/Resizable.d.ts +1 -0
  253. package/dist/astryx/Resizable.js +1 -0
  254. package/dist/astryx/ScrollableArea.d.ts +1 -0
  255. package/dist/astryx/ScrollableArea.js +1 -0
  256. package/dist/astryx/Section.d.ts +1 -0
  257. package/dist/astryx/Section.js +1 -0
  258. package/dist/astryx/SegmentedControl.d.ts +1 -0
  259. package/dist/astryx/SegmentedControl.js +1 -0
  260. package/dist/astryx/SelectableCard.d.ts +1 -0
  261. package/dist/astryx/SelectableCard.js +1 -0
  262. package/dist/astryx/Selector/utils.d.ts +1 -0
  263. package/dist/astryx/Selector/utils.js +1 -0
  264. package/dist/astryx/Selector.d.ts +1 -0
  265. package/dist/astryx/Selector.js +1 -0
  266. package/dist/astryx/SideNav.d.ts +1 -0
  267. package/dist/astryx/SideNav.js +1 -0
  268. package/dist/astryx/SizeContext.d.ts +1 -0
  269. package/dist/astryx/SizeContext.js +1 -0
  270. package/dist/astryx/Skeleton.d.ts +1 -0
  271. package/dist/astryx/Skeleton.js +1 -0
  272. package/dist/astryx/Slider.d.ts +1 -0
  273. package/dist/astryx/Slider.js +1 -0
  274. package/dist/astryx/Spinner.d.ts +1 -0
  275. package/dist/astryx/Spinner.js +1 -0
  276. package/dist/astryx/Stack.d.ts +1 -0
  277. package/dist/astryx/Stack.js +1 -0
  278. package/dist/astryx/StatusDot.d.ts +1 -0
  279. package/dist/astryx/StatusDot.js +1 -0
  280. package/dist/astryx/Stepper.d.ts +1 -0
  281. package/dist/astryx/Stepper.js +1 -0
  282. package/dist/astryx/Switch.d.ts +1 -0
  283. package/dist/astryx/Switch.js +1 -0
  284. package/dist/astryx/TabList.d.ts +1 -0
  285. package/dist/astryx/TabList.js +1 -0
  286. package/dist/astryx/Table/utils.d.ts +1 -0
  287. package/dist/astryx/Table/utils.js +1 -0
  288. package/dist/astryx/Table.d.ts +1 -0
  289. package/dist/astryx/Table.js +1 -0
  290. package/dist/astryx/Text.d.ts +1 -0
  291. package/dist/astryx/Text.js +1 -0
  292. package/dist/astryx/TextArea.d.ts +1 -0
  293. package/dist/astryx/TextArea.js +1 -0
  294. package/dist/astryx/TextInput.d.ts +1 -0
  295. package/dist/astryx/TextInput.js +1 -0
  296. package/dist/astryx/Thumbnail.d.ts +1 -0
  297. package/dist/astryx/Thumbnail.js +1 -0
  298. package/dist/astryx/TimeInput.d.ts +1 -0
  299. package/dist/astryx/TimeInput.js +1 -0
  300. package/dist/astryx/Timestamp.d.ts +1 -0
  301. package/dist/astryx/Timestamp.js +1 -0
  302. package/dist/astryx/Toast.d.ts +1 -0
  303. package/dist/astryx/Toast.js +1 -0
  304. package/dist/astryx/ToggleButton.d.ts +1 -0
  305. package/dist/astryx/ToggleButton.js +1 -0
  306. package/dist/astryx/Token.d.ts +1 -0
  307. package/dist/astryx/Token.js +1 -0
  308. package/dist/astryx/Tokenizer.d.ts +1 -0
  309. package/dist/astryx/Tokenizer.js +1 -0
  310. package/dist/astryx/Toolbar.d.ts +1 -0
  311. package/dist/astryx/Toolbar.js +1 -0
  312. package/dist/astryx/Tooltip.d.ts +1 -0
  313. package/dist/astryx/Tooltip.js +1 -0
  314. package/dist/astryx/TopNav.d.ts +1 -0
  315. package/dist/astryx/TopNav.js +1 -0
  316. package/dist/astryx/TreeList.d.ts +1 -0
  317. package/dist/astryx/TreeList.js +1 -0
  318. package/dist/astryx/Typeahead/utils.d.ts +1 -0
  319. package/dist/astryx/Typeahead/utils.js +1 -0
  320. package/dist/astryx/Typeahead.d.ts +1 -0
  321. package/dist/astryx/Typeahead.js +1 -0
  322. package/dist/astryx/VStack.d.ts +1 -0
  323. package/dist/astryx/VStack.js +1 -0
  324. package/dist/astryx/VisuallyHidden.d.ts +1 -0
  325. package/dist/astryx/VisuallyHidden.js +1 -0
  326. package/dist/astryx/astryx.css +3 -0
  327. package/dist/astryx/hooks.d.ts +1 -0
  328. package/dist/astryx/hooks.js +1 -0
  329. package/dist/astryx/i18n.d.ts +1 -0
  330. package/dist/astryx/i18n.js +1 -0
  331. package/dist/astryx/lab/lab.css +3 -0
  332. package/dist/astryx/lab.d.ts +6 -0
  333. package/dist/astryx/lab.js +6 -0
  334. package/dist/astryx/naming.d.ts +1 -0
  335. package/dist/astryx/naming.js +1 -0
  336. package/dist/astryx/reset.css +3 -0
  337. package/dist/astryx/tailwind-theme.css +3 -0
  338. package/dist/astryx/theme/neutral/built.d.ts +1 -0
  339. package/dist/astryx/theme/neutral/built.js +1 -0
  340. package/dist/astryx/theme/neutral/theme.css +3 -0
  341. package/dist/astryx/theme/neutral.d.ts +1 -0
  342. package/dist/astryx/theme/neutral.js +1 -0
  343. package/dist/astryx/theme/syntax.d.ts +1 -0
  344. package/dist/astryx/theme/syntax.js +1 -0
  345. package/dist/astryx/theme/tokens.d.ts +1 -0
  346. package/dist/astryx/theme/tokens.js +1 -0
  347. package/dist/astryx/theme/tokens.stylex.d.ts +1 -0
  348. package/dist/astryx/theme/tokens.stylex.js +1 -0
  349. package/dist/astryx/theme.d.ts +1 -0
  350. package/dist/astryx/theme.js +1 -0
  351. package/dist/astryx/utils.d.ts +1 -0
  352. package/dist/astryx/utils.js +1 -0
  353. package/dist/components/AlertModal/AlertModal.d.ts +14 -0
  354. package/dist/components/AlertModal/AlertModal.js +56 -0
  355. package/dist/components/AlertModal/AlertModal.js.map +1 -0
  356. package/dist/components/AlertModal/index.d.ts +2 -0
  357. package/dist/components/AlertModal/index.js +2 -0
  358. package/dist/components/BoardItemTitle/BoardItemTitle.d.ts +15 -0
  359. package/dist/components/BoardItemTitle/BoardItemTitle2.js +42 -0
  360. package/dist/components/BoardItemTitle/BoardItemTitle2.js.map +1 -0
  361. package/dist/components/BoardItemTitle/index.d.ts +2 -0
  362. package/dist/components/BoardItemTitle/index.js +2 -0
  363. package/dist/components/BooleanToken/BooleanToken.d.ts +15 -0
  364. package/dist/components/BooleanToken/BooleanToken.js +19 -0
  365. package/dist/components/BooleanToken/BooleanToken.js.map +1 -0
  366. package/dist/components/BooleanToken/BooleanToken.messages.d.ts +10 -0
  367. package/dist/components/BooleanToken/BooleanToken.messages.js +16 -0
  368. package/dist/components/BooleanToken/BooleanToken.messages.js.map +1 -0
  369. package/dist/components/BooleanToken/index.d.ts +2 -0
  370. package/dist/components/BooleanToken/index.js +2 -0
  371. package/dist/components/BulkEditFormItem/BulkEditFormItem.d.ts +24 -0
  372. package/dist/components/BulkEditFormItem/BulkEditFormItem.js +93 -0
  373. package/dist/components/BulkEditFormItem/BulkEditFormItem.js.map +1 -0
  374. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.d.ts +14 -0
  375. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.js +20 -0
  376. package/dist/components/BulkEditFormItem/BulkEditFormItem.messages.js.map +1 -0
  377. package/dist/components/BulkEditFormItem/index.d.ts +2 -0
  378. package/dist/components/BulkEditFormItem/index.js +2 -0
  379. package/dist/components/BulkErrorModal/BulkErrorModal.d.ts +23 -0
  380. package/dist/components/BulkErrorModal/BulkErrorModal.messages.d.ts +10 -0
  381. package/dist/components/BulkErrorModal/BulkErrorModal.messages.js +16 -0
  382. package/dist/components/BulkErrorModal/BulkErrorModal.messages.js.map +1 -0
  383. package/dist/components/BulkErrorModal/BulkErrorModal2.js +55 -0
  384. package/dist/components/BulkErrorModal/BulkErrorModal2.js.map +1 -0
  385. package/dist/components/BulkErrorModal/index.d.ts +2 -0
  386. package/dist/components/BulkErrorModal/index.js +2 -0
  387. package/dist/components/ColorPicker/ColorPicker.d.ts +43 -0
  388. package/dist/components/ColorPicker/ColorPicker.messages.d.ts +18 -0
  389. package/dist/components/ColorPicker/ColorPicker.messages.js +24 -0
  390. package/dist/components/ColorPicker/ColorPicker.messages.js.map +1 -0
  391. package/dist/components/ColorPicker/ColorPicker2.js +117 -0
  392. package/dist/components/ColorPicker/ColorPicker2.js.map +1 -0
  393. package/dist/components/ColorPicker/index.d.ts +2 -0
  394. package/dist/components/ColorPicker/index.js +2 -0
  395. package/dist/components/ConfirmPopover/ConfirmPopover.d.ts +35 -0
  396. package/dist/components/ConfirmPopover/ConfirmPopover.js +75 -0
  397. package/dist/components/ConfirmPopover/ConfirmPopover.js.map +1 -0
  398. package/dist/components/ConfirmPopover/index.d.ts +2 -0
  399. package/dist/components/ConfirmPopover/index.js +2 -0
  400. package/dist/components/CountBadge/CountBadge.d.ts +24 -0
  401. package/dist/components/CountBadge/CountBadge2.js +35 -0
  402. package/dist/components/CountBadge/CountBadge2.js.map +1 -0
  403. package/dist/components/CountBadge/index.d.ts +2 -0
  404. package/dist/components/CountBadge/index.js +2 -0
  405. package/dist/components/CountdownBorder/CountdownBorder.d.ts +22 -0
  406. package/dist/components/CountdownBorder/CountdownBorder2.js +63 -0
  407. package/dist/components/CountdownBorder/CountdownBorder2.js.map +1 -0
  408. package/dist/components/CountdownBorder/index.d.ts +2 -0
  409. package/dist/components/CountdownBorder/index.js +2 -0
  410. package/dist/components/DataGrid/DataGrid.d.ts +212 -0
  411. package/dist/components/DataGrid/DataGrid.messages.d.ts +70 -0
  412. package/dist/components/DataGrid/DataGrid.messages.js +76 -0
  413. package/dist/components/DataGrid/DataGrid.messages.js.map +1 -0
  414. package/dist/components/DataGrid/DataGrid2.js +447 -0
  415. package/dist/components/DataGrid/DataGrid2.js.map +1 -0
  416. package/dist/components/DataGrid/DataGridExportModal.d.ts +30 -0
  417. package/dist/components/DataGrid/DataGridExportModal.js +125 -0
  418. package/dist/components/DataGrid/DataGridExportModal.js.map +1 -0
  419. package/dist/components/DataGrid/DataGridSettingsModal.d.ts +36 -0
  420. package/dist/components/DataGrid/DataGridSettingsModal.js +177 -0
  421. package/dist/components/DataGrid/DataGridSettingsModal.js.map +1 -0
  422. package/dist/components/DataGrid/index.d.ts +6 -0
  423. package/dist/components/DataGrid/index.js +4 -0
  424. package/dist/components/DataGrid/nodeToPlainText.d.ts +6 -0
  425. package/dist/components/DataGrid/nodeToPlainText.js +9 -0
  426. package/dist/components/DataGrid/nodeToPlainText.js.map +1 -0
  427. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.d.ts +78 -0
  428. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.d.ts +30 -0
  429. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.js +36 -0
  430. package/dist/components/DeleteConfirmModal/DeleteConfirmModal.messages.js.map +1 -0
  431. package/dist/components/DeleteConfirmModal/DeleteConfirmModal2.js +102 -0
  432. package/dist/components/DeleteConfirmModal/DeleteConfirmModal2.js.map +1 -0
  433. package/dist/components/DeleteConfirmModal/index.d.ts +2 -0
  434. package/dist/components/DeleteConfirmModal/index.js +2 -0
  435. package/dist/components/DigitPopIn/DigitPopIn.d.ts +8 -0
  436. package/dist/components/DigitPopIn/DigitPopIn2.js +30 -0
  437. package/dist/components/DigitPopIn/DigitPopIn2.js.map +1 -0
  438. package/dist/components/DigitPopIn/index.d.ts +2 -0
  439. package/dist/components/DigitPopIn/index.js +2 -0
  440. package/dist/components/DividedRow/DividedRow.d.ts +27 -0
  441. package/dist/components/DividedRow/DividedRow2.js +63 -0
  442. package/dist/components/DividedRow/DividedRow2.js.map +1 -0
  443. package/dist/components/DividedRow/index.d.ts +2 -0
  444. package/dist/components/DividedRow/index.js +2 -0
  445. package/dist/components/DoubleBadge/DoubleBadge.d.ts +14 -0
  446. package/dist/components/DoubleBadge/DoubleBadge2.js +28 -0
  447. package/dist/components/DoubleBadge/DoubleBadge2.js.map +1 -0
  448. package/dist/components/DoubleBadge/index.d.ts +2 -0
  449. package/dist/components/DoubleBadge/index.js +2 -0
  450. package/dist/components/DoubleToken/DoubleToken.d.ts +24 -0
  451. package/dist/components/DoubleToken/DoubleToken2.js +38 -0
  452. package/dist/components/DoubleToken/DoubleToken2.js.map +1 -0
  453. package/dist/components/DoubleToken/index.d.ts +2 -0
  454. package/dist/components/DoubleToken/index.js +2 -0
  455. package/dist/components/ErrorState/ErrorState.d.ts +7 -16
  456. package/dist/components/ErrorState/ErrorState2.js +33 -33
  457. package/dist/components/ErrorState/ErrorState2.js.map +1 -1
  458. package/dist/components/Form/ErrorList.d.ts +13 -0
  459. package/dist/components/Form/ErrorList.js +21 -0
  460. package/dist/components/Form/ErrorList.js.map +1 -0
  461. package/dist/components/Form/Field.d.ts +88 -0
  462. package/dist/components/Form/Field.js +212 -0
  463. package/dist/components/Form/Field.js.map +1 -0
  464. package/dist/components/Form/Form.d.ts +70 -0
  465. package/dist/components/Form/Form.js +130 -0
  466. package/dist/components/Form/Form.js.map +1 -0
  467. package/dist/components/Form/Form.messages.d.ts +96 -0
  468. package/dist/components/Form/Form.messages.js +96 -0
  469. package/dist/components/Form/Form.messages.js.map +1 -0
  470. package/dist/components/Form/FormConfigProvider.d.ts +20 -0
  471. package/dist/components/Form/FormConfigProvider.js +31 -0
  472. package/dist/components/Form/FormConfigProvider.js.map +1 -0
  473. package/dist/components/Form/FormItem.d.ts +56 -0
  474. package/dist/components/Form/FormItem.js +164 -0
  475. package/dist/components/Form/FormItem.js.map +1 -0
  476. package/dist/components/Form/FormItemVisual.d.ts +56 -0
  477. package/dist/components/Form/FormItemVisual2.js +117 -0
  478. package/dist/components/Form/FormItemVisual2.js.map +1 -0
  479. package/dist/components/Form/FormStore.d.ts +109 -0
  480. package/dist/components/Form/FormStore.js +494 -0
  481. package/dist/components/Form/FormStore.js.map +1 -0
  482. package/dist/components/Form/List.d.ts +22 -0
  483. package/dist/components/Form/List.js +65 -0
  484. package/dist/components/Form/List.js.map +1 -0
  485. package/dist/components/Form/context.d.ts +91 -0
  486. package/dist/components/Form/context.js +34 -0
  487. package/dist/components/Form/context.js.map +1 -0
  488. package/dist/components/Form/feedbackIcons.d.ts +13 -0
  489. package/dist/components/Form/feedbackIcons.js +45 -0
  490. package/dist/components/Form/feedbackIcons.js.map +1 -0
  491. package/dist/components/Form/index.d.ts +30 -0
  492. package/dist/components/Form/index.js +18 -0
  493. package/dist/components/Form/index.js.map +1 -0
  494. package/dist/components/Form/interface.d.ts +212 -0
  495. package/dist/components/Form/isEqual.d.ts +1 -0
  496. package/dist/components/Form/isEqual.js +61 -0
  497. package/dist/components/Form/isEqual.js.map +1 -0
  498. package/dist/components/Form/messages.d.ts +15 -0
  499. package/dist/components/Form/messages.js +52 -0
  500. package/dist/components/Form/messages.js.map +1 -0
  501. package/dist/components/Form/namePath.d.ts +78 -0
  502. package/dist/components/Form/namePath.js +120 -0
  503. package/dist/components/Form/namePath.js.map +1 -0
  504. package/dist/components/Form/useWatch.d.ts +11 -0
  505. package/dist/components/Form/useWatch.js +43 -0
  506. package/dist/components/Form/useWatch.js.map +1 -0
  507. package/dist/components/Form/validate.d.ts +16 -0
  508. package/dist/components/Form/validate.js +214 -0
  509. package/dist/components/Form/validate.js.map +1 -0
  510. package/dist/components/IconWithTooltip/IconWithTooltip.d.ts +19 -0
  511. package/dist/components/IconWithTooltip/IconWithTooltip2.js +38 -0
  512. package/dist/components/IconWithTooltip/IconWithTooltip2.js.map +1 -0
  513. package/dist/components/IconWithTooltip/accessibleLabel.d.ts +2 -0
  514. package/dist/components/IconWithTooltip/accessibleLabel.js +33 -0
  515. package/dist/components/IconWithTooltip/accessibleLabel.js.map +1 -0
  516. package/dist/components/IconWithTooltip/index.d.ts +2 -0
  517. package/dist/components/IconWithTooltip/index.js +2 -0
  518. package/dist/components/ImageWithFallback/ImageWithFallback.d.ts +11 -0
  519. package/dist/components/ImageWithFallback/ImageWithFallback2.js +28 -0
  520. package/dist/components/ImageWithFallback/ImageWithFallback2.js.map +1 -0
  521. package/dist/components/ImageWithFallback/index.d.ts +2 -0
  522. package/dist/components/ImageWithFallback/index.js +2 -0
  523. package/dist/components/ListBanner/ListBanner.d.ts +17 -0
  524. package/dist/components/ListBanner/ListBanner2.js +27 -0
  525. package/dist/components/ListBanner/ListBanner2.js.map +1 -0
  526. package/dist/components/ListBanner/index.d.ts +2 -0
  527. package/dist/components/ListBanner/index.js +2 -0
  528. package/dist/components/Modal/Modal.d.ts +65 -0
  529. package/dist/components/Modal/Modal2.js +226 -0
  530. package/dist/components/Modal/Modal2.js.map +1 -0
  531. package/dist/components/Modal/index.d.ts +15 -0
  532. package/dist/components/Modal/index.js +4 -0
  533. package/dist/components/Modal/modalStack.d.ts +64 -0
  534. package/dist/components/Modal/modalStack.js +81 -0
  535. package/dist/components/Modal/modalStack.js.map +1 -0
  536. package/dist/components/NotificationItem/NotificationItem.d.ts +14 -0
  537. package/dist/components/NotificationItem/NotificationItem2.js +40 -0
  538. package/dist/components/NotificationItem/NotificationItem2.js.map +1 -0
  539. package/dist/components/NotificationItem/index.d.ts +2 -0
  540. package/dist/components/NotificationItem/index.js +2 -0
  541. package/dist/components/NotificationStack/NotificationStack.d.ts +56 -0
  542. package/dist/components/NotificationStack/NotificationStack.messages.d.ts +6 -0
  543. package/dist/components/NotificationStack/NotificationStack.messages.js +10 -0
  544. package/dist/components/NotificationStack/NotificationStack.messages.js.map +1 -0
  545. package/dist/components/NotificationStack/NotificationStack2.js +154 -0
  546. package/dist/components/NotificationStack/NotificationStack2.js.map +1 -0
  547. package/dist/components/NotificationStack/index.d.ts +2 -0
  548. package/dist/components/NotificationStack/index.js +2 -0
  549. package/dist/components/OverlayScrollbar/OverlayScrollbar.d.ts +13 -0
  550. package/dist/components/OverlayScrollbar/OverlayScrollbar2.js +69 -0
  551. package/dist/components/OverlayScrollbar/OverlayScrollbar2.js.map +1 -0
  552. package/dist/components/OverlayScrollbar/index.d.ts +2 -0
  553. package/dist/components/OverlayScrollbar/index.js +2 -0
  554. package/dist/components/PageHeader/PageHeader.d.ts +24 -8
  555. package/dist/components/PageHeader/PageHeader.messages.d.ts +6 -0
  556. package/dist/components/PageHeader/PageHeader.messages.js +10 -0
  557. package/dist/components/PageHeader/PageHeader.messages.js.map +1 -0
  558. package/dist/components/PageHeader/PageHeader2.js +57 -30
  559. package/dist/components/PageHeader/PageHeader2.js.map +1 -1
  560. package/dist/components/PageLayout/PageLayout2.js +2 -2
  561. package/dist/components/PageLayout/PageLayout2.js.map +1 -1
  562. package/dist/components/PagedSelector/PagedSelector.d.ts +107 -0
  563. package/dist/components/PagedSelector/PagedSelector.messages.d.ts +30 -0
  564. package/dist/components/PagedSelector/PagedSelector.messages.js +36 -0
  565. package/dist/components/PagedSelector/PagedSelector.messages.js.map +1 -0
  566. package/dist/components/PagedSelector/PagedSelector2.js +220 -0
  567. package/dist/components/PagedSelector/PagedSelector2.js.map +1 -0
  568. package/dist/components/PagedSelector/PanelSearchInput.d.ts +22 -0
  569. package/dist/components/PagedSelector/PanelSearchInput.js +95 -0
  570. package/dist/components/PagedSelector/PanelSearchInput.js.map +1 -0
  571. package/dist/components/PagedSelector/index.d.ts +2 -0
  572. package/dist/components/PagedSelector/index.js +2 -0
  573. package/dist/components/ProgressWithLabel/ProgressWithLabel.d.ts +26 -0
  574. package/dist/components/ProgressWithLabel/ProgressWithLabel2.js +44 -0
  575. package/dist/components/ProgressWithLabel/ProgressWithLabel2.js.map +1 -0
  576. package/dist/components/ProgressWithLabel/index.d.ts +2 -0
  577. package/dist/components/ProgressWithLabel/index.js +2 -0
  578. package/dist/components/SelectionLabel/SelectionLabel.d.ts +23 -0
  579. package/dist/components/SelectionLabel/SelectionLabel.js +29 -0
  580. package/dist/components/SelectionLabel/SelectionLabel.js.map +1 -0
  581. package/dist/components/SelectionLabel/SelectionLabel.messages.d.ts +10 -0
  582. package/dist/components/SelectionLabel/SelectionLabel.messages.js +16 -0
  583. package/dist/components/SelectionLabel/SelectionLabel.messages.js.map +1 -0
  584. package/dist/components/SelectionLabel/index.d.ts +2 -0
  585. package/dist/components/SelectionLabel/index.js +2 -0
  586. package/dist/components/Skeleton/Skeleton.messages.d.ts +18 -0
  587. package/dist/components/Skeleton/Skeleton.messages.js +24 -0
  588. package/dist/components/Skeleton/Skeleton.messages.js.map +1 -0
  589. package/dist/components/Skeleton/SkeletonCard.d.ts +4 -9
  590. package/dist/components/Skeleton/SkeletonCard2.js +53 -53
  591. package/dist/components/Skeleton/SkeletonCard2.js.map +1 -1
  592. package/dist/components/Skeleton/SkeletonChart.d.ts +5 -11
  593. package/dist/components/Skeleton/SkeletonChart2.js +51 -45
  594. package/dist/components/Skeleton/SkeletonChart2.js.map +1 -1
  595. package/dist/components/Skeleton/SkeletonRow.d.ts +5 -10
  596. package/dist/components/Skeleton/SkeletonRow2.js +35 -34
  597. package/dist/components/Skeleton/SkeletonRow2.js.map +1 -1
  598. package/dist/components/Skeleton/SkeletonShape.d.ts +10 -0
  599. package/dist/components/Skeleton/SkeletonShape2.js +23 -0
  600. package/dist/components/Skeleton/SkeletonShape2.js.map +1 -0
  601. package/dist/components/Skeleton/SkeletonText.d.ts +4 -9
  602. package/dist/components/Skeleton/SkeletonText2.js +22 -17
  603. package/dist/components/Skeleton/SkeletonText2.js.map +1 -1
  604. package/dist/components/Skeleton/index.d.ts +3 -5
  605. package/dist/components/Skeleton/index.js +4 -5
  606. package/dist/components/SmoothHeight/SmoothHeight2.js +2 -2
  607. package/dist/components/SmoothHeight/SmoothHeight2.js.map +1 -1
  608. package/dist/components/StatCard/StatCard.d.ts +28 -16
  609. package/dist/components/StatCard/StatCard2.js +96 -89
  610. package/dist/components/StatCard/StatCard2.js.map +1 -1
  611. package/dist/components/StatCard/index.d.ts +1 -1
  612. package/dist/components/Statistic/Statistic.d.ts +30 -0
  613. package/dist/components/Statistic/Statistic.messages.d.ts +6 -0
  614. package/dist/components/Statistic/Statistic.messages.js +10 -0
  615. package/dist/components/Statistic/Statistic.messages.js.map +1 -0
  616. package/dist/components/Statistic/Statistic2.js +75 -0
  617. package/dist/components/Statistic/Statistic2.js.map +1 -0
  618. package/dist/components/Statistic/index.d.ts +2 -0
  619. package/dist/components/Statistic/index.js +2 -0
  620. package/dist/components/StepNumberInput/NumberStepper.d.ts +29 -0
  621. package/dist/components/StepNumberInput/NumberStepper.messages.d.ts +10 -0
  622. package/dist/components/StepNumberInput/NumberStepper.messages.js +16 -0
  623. package/dist/components/StepNumberInput/NumberStepper.messages.js.map +1 -0
  624. package/dist/components/StepNumberInput/NumberStepper2.js +50 -0
  625. package/dist/components/StepNumberInput/NumberStepper2.js.map +1 -0
  626. package/dist/components/StepNumberInput/StepNumberInput.d.ts +33 -0
  627. package/dist/components/StepNumberInput/StepNumberInput.js +48 -0
  628. package/dist/components/StepNumberInput/StepNumberInput.js.map +1 -0
  629. package/dist/components/StepNumberInput/index.d.ts +4 -0
  630. package/dist/components/StepNumberInput/index.js +3 -0
  631. package/dist/components/TextHighlighter/TextHighlighter.d.ts +14 -0
  632. package/dist/components/TextHighlighter/TextHighlighter2.js +29 -0
  633. package/dist/components/TextHighlighter/TextHighlighter2.js.map +1 -0
  634. package/dist/components/TextHighlighter/index.d.ts +2 -0
  635. package/dist/components/TextHighlighter/index.js +2 -0
  636. package/dist/components/TokenList/TokenList.d.ts +18 -0
  637. package/dist/components/TokenList/TokenList2.js +55 -0
  638. package/dist/components/TokenList/TokenList2.js.map +1 -0
  639. package/dist/components/TokenList/index.d.ts +2 -0
  640. package/dist/components/TokenList/index.js +2 -0
  641. package/dist/components/TokenRow/TokenRow.d.ts +27 -0
  642. package/dist/components/TokenRow/TokenRow.messages.d.ts +6 -0
  643. package/dist/components/TokenRow/TokenRow.messages.js +10 -0
  644. package/dist/components/TokenRow/TokenRow.messages.js.map +1 -0
  645. package/dist/components/TokenRow/TokenRow2.js +29 -0
  646. package/dist/components/TokenRow/TokenRow2.js.map +1 -0
  647. package/dist/components/TokenRow/index.d.ts +2 -0
  648. package/dist/components/TokenRow/index.js +2 -0
  649. package/dist/components/UncontrolledInput/UncontrolledInput.d.ts +29 -0
  650. package/dist/components/UncontrolledInput/UncontrolledInput.js +49 -0
  651. package/dist/components/UncontrolledInput/UncontrolledInput.js.map +1 -0
  652. package/dist/components/UncontrolledInput/UncontrolledInput.messages.d.ts +6 -0
  653. package/dist/components/UncontrolledInput/UncontrolledInput.messages.js +10 -0
  654. package/dist/components/UncontrolledInput/UncontrolledInput.messages.js.map +1 -0
  655. package/dist/components/UncontrolledInput/index.d.ts +2 -0
  656. package/dist/components/UncontrolledInput/index.js +2 -0
  657. package/dist/components/UnitGrid/UnitGrid.d.ts +56 -0
  658. package/dist/components/UnitGrid/UnitGrid.geometry.d.ts +102 -0
  659. package/dist/components/UnitGrid/UnitGrid.geometry.js +172 -0
  660. package/dist/components/UnitGrid/UnitGrid.geometry.js.map +1 -0
  661. package/dist/components/UnitGrid/UnitGrid.messages.d.ts +14 -0
  662. package/dist/components/UnitGrid/UnitGrid.messages.js +20 -0
  663. package/dist/components/UnitGrid/UnitGrid.messages.js.map +1 -0
  664. package/dist/components/UnitGrid/UnitGrid2.js +393 -0
  665. package/dist/components/UnitGrid/UnitGrid2.js.map +1 -0
  666. package/dist/components/UnitGrid/UnitGridSkeleton.d.ts +9 -0
  667. package/dist/components/UnitGrid/UnitGridSkeleton.js +73 -0
  668. package/dist/components/UnitGrid/UnitGridSkeleton.js.map +1 -0
  669. package/dist/components/UnitGrid/index.d.ts +4 -0
  670. package/dist/components/UnitGrid/index.js +3 -0
  671. package/dist/forks/ComplexSelector/ComplexSelector.d.ts +144 -0
  672. package/dist/forks/ComplexSelector/ComplexSelector.js +157 -0
  673. package/dist/forks/ComplexSelector/ComplexSelector.js.map +1 -0
  674. package/dist/forks/ComplexSelector/ComplexSelector.styles.d.ts +125 -0
  675. package/dist/forks/ComplexSelector/ComplexSelector.styles.js +129 -0
  676. package/dist/forks/ComplexSelector/ComplexSelector.styles.js.map +1 -0
  677. package/dist/forks/ComplexSelector/index.d.ts +7 -0
  678. package/dist/forks/ComplexSelector/index.js +2 -0
  679. package/dist/forks/Drawer/Drawer.d.ts +98 -0
  680. package/dist/forks/Drawer/Drawer.js +94 -0
  681. package/dist/forks/Drawer/Drawer.js.map +1 -0
  682. package/dist/forks/Drawer/Drawer.styles.d.ts +99 -0
  683. package/dist/forks/Drawer/Drawer.styles.js +94 -0
  684. package/dist/forks/Drawer/Drawer.styles.js.map +1 -0
  685. package/dist/forks/Drawer/index.d.ts +6 -0
  686. package/dist/forks/Drawer/index.js +2 -0
  687. package/dist/forks/Drawer/useDrawerDialogPresence.d.ts +19 -0
  688. package/dist/forks/Drawer/useDrawerDialogPresence.js +62 -0
  689. package/dist/forks/Drawer/useDrawerDialogPresence.js.map +1 -0
  690. package/dist/forks/Tour/Tour.d.ts +58 -0
  691. package/dist/forks/Tour/Tour.js +55 -0
  692. package/dist/forks/Tour/Tour.js.map +1 -0
  693. package/dist/forks/Tour/TourContext.d.ts +37 -0
  694. package/dist/forks/Tour/TourContext.js +8 -0
  695. package/dist/forks/Tour/TourContext.js.map +1 -0
  696. package/dist/forks/Tour/TourStep.d.ts +43 -0
  697. package/dist/forks/Tour/TourStep.js +134 -0
  698. package/dist/forks/Tour/TourStep.js.map +1 -0
  699. package/dist/forks/Tour/TourStep.styles.d.ts +23 -0
  700. package/dist/forks/Tour/TourStep.styles.js +28 -0
  701. package/dist/forks/Tour/TourStep.styles.js.map +1 -0
  702. package/dist/forks/Tour/index.d.ts +11 -0
  703. package/dist/forks/Tour/index.js +4 -0
  704. package/dist/forks/Tour/useTour.d.ts +26 -0
  705. package/dist/forks/Tour/useTour.js +20 -0
  706. package/dist/forks/Tour/useTour.js.map +1 -0
  707. package/dist/forks/compiled.d.ts +5 -0
  708. package/dist/forks/compiled.js +8 -0
  709. package/dist/forks/compiled.js.map +1 -0
  710. package/dist/i18n/catalog.d.ts +12 -0
  711. package/dist/i18n/catalog.js +46 -0
  712. package/dist/i18n/catalog.js.map +1 -0
  713. package/dist/i18n/common.messages.d.ts +31 -0
  714. package/dist/i18n/common.messages.js +32 -0
  715. package/dist/i18n/common.messages.js.map +1 -0
  716. package/dist/i18n/index.d.ts +21 -0
  717. package/dist/i18n/index.js +3 -0
  718. package/dist/i18n/locales/de-DE.js +331 -0
  719. package/dist/i18n/locales/de-DE.js.map +1 -0
  720. package/dist/i18n/locales/el-GR.js +331 -0
  721. package/dist/i18n/locales/el-GR.js.map +1 -0
  722. package/dist/i18n/locales/es-ES.js +331 -0
  723. package/dist/i18n/locales/es-ES.js.map +1 -0
  724. package/dist/i18n/locales/fi-FI.js +331 -0
  725. package/dist/i18n/locales/fi-FI.js.map +1 -0
  726. package/dist/i18n/locales/fr-FR.js +331 -0
  727. package/dist/i18n/locales/fr-FR.js.map +1 -0
  728. package/dist/i18n/locales/id-ID.js +331 -0
  729. package/dist/i18n/locales/id-ID.js.map +1 -0
  730. package/dist/i18n/locales/it-IT.js +331 -0
  731. package/dist/i18n/locales/it-IT.js.map +1 -0
  732. package/dist/i18n/locales/ja-JP.js +351 -0
  733. package/dist/i18n/locales/ja-JP.js.map +1 -0
  734. package/dist/i18n/locales/ko-KR.js +351 -0
  735. package/dist/i18n/locales/ko-KR.js.map +1 -0
  736. package/dist/i18n/locales/mn-MN.js +327 -0
  737. package/dist/i18n/locales/mn-MN.js.map +1 -0
  738. package/dist/i18n/locales/ms-MY.js +331 -0
  739. package/dist/i18n/locales/ms-MY.js.map +1 -0
  740. package/dist/i18n/locales/pl-PL.js +331 -0
  741. package/dist/i18n/locales/pl-PL.js.map +1 -0
  742. package/dist/i18n/locales/pt-BR.js +331 -0
  743. package/dist/i18n/locales/pt-BR.js.map +1 -0
  744. package/dist/i18n/locales/pt-PT.js +331 -0
  745. package/dist/i18n/locales/pt-PT.js.map +1 -0
  746. package/dist/i18n/locales/ru-RU.js +331 -0
  747. package/dist/i18n/locales/ru-RU.js.map +1 -0
  748. package/dist/i18n/locales/th-TH.js +331 -0
  749. package/dist/i18n/locales/th-TH.js.map +1 -0
  750. package/dist/i18n/locales/tr-TR.js +331 -0
  751. package/dist/i18n/locales/tr-TR.js.map +1 -0
  752. package/dist/i18n/locales/vi-VN.js +331 -0
  753. package/dist/i18n/locales/vi-VN.js.map +1 -0
  754. package/dist/i18n/locales/zh-CN.js +331 -0
  755. package/dist/i18n/locales/zh-CN.js.map +1 -0
  756. package/dist/i18n/locales/zh-TW.js +331 -0
  757. package/dist/i18n/locales/zh-TW.js.map +1 -0
  758. package/dist/i18n/messages.d.ts +13 -0
  759. package/dist/i18n/messages.js +63 -0
  760. package/dist/i18n/messages.js.map +1 -0
  761. package/dist/i18n/translateWithNodes.d.ts +3 -0
  762. package/dist/i18n/translateWithNodes.js +14 -0
  763. package/dist/i18n/translateWithNodes.js.map +1 -0
  764. package/dist/i18n/useUicTranslator.d.ts +5 -0
  765. package/dist/i18n/useUicTranslator.js +38 -0
  766. package/dist/i18n/useUicTranslator.js.map +1 -0
  767. package/dist/index.d.ts +101 -27
  768. package/dist/index.js +63 -23
  769. package/dist/instance.d.ts +31 -0
  770. package/dist/instance.js +33 -0
  771. package/dist/instance.js.map +1 -0
  772. package/dist/legacy-tokens.css +177 -0
  773. package/dist/locales/af-ZA.json +954 -0
  774. package/dist/locales/ar-SA.json +994 -0
  775. package/dist/locales/ca-ES.json +970 -0
  776. package/dist/locales/cs-CZ.json +986 -0
  777. package/dist/locales/da-DK.json +962 -0
  778. package/dist/locales/de-DE.json +962 -0
  779. package/dist/locales/el-GR.json +986 -0
  780. package/dist/locales/en.json +1482 -0
  781. package/dist/locales/es-ES.json +974 -0
  782. package/dist/locales/fi-FI.json +986 -0
  783. package/dist/locales/fr-FR.json +950 -0
  784. package/dist/locales/he-IL.json +986 -0
  785. package/dist/locales/hu-HU.json +986 -0
  786. package/dist/locales/it-IT.json +974 -0
  787. package/dist/locales/ja-JP.json +994 -0
  788. package/dist/locales/ko-KR.json +986 -0
  789. package/dist/locales/nl-NL.json +950 -0
  790. package/dist/locales/no-NO.json +974 -0
  791. package/dist/locales/pl-PL.json +978 -0
  792. package/dist/locales/pseudo.json +1112 -0
  793. package/dist/locales/pt-BR.json +978 -0
  794. package/dist/locales/pt-PT.json +978 -0
  795. package/dist/locales/ro-RO.json +978 -0
  796. package/dist/locales/ru-RU.json +986 -0
  797. package/dist/locales/sr-SP.json +986 -0
  798. package/dist/locales/sv-SE.json +982 -0
  799. package/dist/locales/tr-TR.json +986 -0
  800. package/dist/locales/uk-UA.json +986 -0
  801. package/dist/locales/vi-VN.json +982 -0
  802. package/dist/locales/zh-CN.json +994 -0
  803. package/dist/locales/zh-TW.json +994 -0
  804. package/dist/styles/base.css +29 -2
  805. package/dist/styles/themes/orange-dark.css +4 -0
  806. package/dist/styles/themes/orange-light.css +4 -0
  807. package/dist/theme/lablup/built/lablup.d.ts +13 -0
  808. package/dist/theme/lablup/built/lablup.js +567 -0
  809. package/dist/theme/lablup/built/lablup.variants.d.ts +16 -0
  810. package/dist/theme/lablup/built/theme.css +716 -0
  811. package/dist/theme/lablup/index.d.ts +9 -0
  812. package/dist/theme/lablup/index.js +2 -0
  813. package/dist/theme/lablup/lablupTheme.d.ts +10 -0
  814. package/dist/theme/lablup/lablupTheme.js +21 -0
  815. package/dist/theme/lablup/lablupTheme.js.map +1 -0
  816. package/dist/ui-common-locales/de-DE.json +326 -0
  817. package/dist/ui-common-locales/el-GR.json +326 -0
  818. package/dist/ui-common-locales/en.json +346 -0
  819. package/dist/ui-common-locales/es-ES.json +326 -0
  820. package/dist/ui-common-locales/fi-FI.json +326 -0
  821. package/dist/ui-common-locales/fr-FR.json +326 -0
  822. package/dist/ui-common-locales/id-ID.json +326 -0
  823. package/dist/ui-common-locales/it-IT.json +326 -0
  824. package/dist/ui-common-locales/ja-JP.json +346 -0
  825. package/dist/ui-common-locales/ko-KR.json +346 -0
  826. package/dist/ui-common-locales/mn-MN.json +322 -0
  827. package/dist/ui-common-locales/ms-MY.json +326 -0
  828. package/dist/ui-common-locales/pl-PL.json +326 -0
  829. package/dist/ui-common-locales/pt-BR.json +326 -0
  830. package/dist/ui-common-locales/pt-PT.json +326 -0
  831. package/dist/ui-common-locales/ru-RU.json +326 -0
  832. package/dist/ui-common-locales/th-TH.json +326 -0
  833. package/dist/ui-common-locales/tr-TR.json +326 -0
  834. package/dist/ui-common-locales/vi-VN.json +326 -0
  835. package/dist/ui-common-locales/zh-CN.json +326 -0
  836. package/dist/ui-common-locales/zh-TW.json +326 -0
  837. package/dist/ui-common.css +51 -0
  838. package/exports.customs.json +62 -0
  839. package/exports.exclude.json +47 -0
  840. package/package.json +565 -21
  841. package/dist/assets/components/Badge/Badge.css +0 -1
  842. package/dist/assets/components/BaseCard/BaseCard.css +0 -1
  843. package/dist/assets/components/Button/Button.css +0 -1
  844. package/dist/assets/components/DataTable/DataTable.css +0 -1
  845. package/dist/assets/components/Drawer/Drawer.css +0 -1
  846. package/dist/assets/components/EmptyState/EmptyState.css +0 -1
  847. package/dist/assets/components/ProgressBar/ProgressBar.css +0 -1
  848. package/dist/assets/components/Skeleton/Skeleton.css +0 -1
  849. package/dist/assets/components/StatusTag/StatusTag.css +0 -1
  850. package/dist/assets/components/Tabs/Tabs.css +0 -1
  851. package/dist/assets/components/Tooltip/Tooltip.css +0 -1
  852. package/dist/components/Badge/Badge.d.ts +0 -7
  853. package/dist/components/Badge/Badge2.js +0 -20
  854. package/dist/components/Badge/Badge2.js.map +0 -1
  855. package/dist/components/Badge/index.d.ts +0 -2
  856. package/dist/components/Badge/index.js +0 -2
  857. package/dist/components/BaseCard/BaseCard.d.ts +0 -57
  858. package/dist/components/BaseCard/BaseCard2.js +0 -37
  859. package/dist/components/BaseCard/BaseCard2.js.map +0 -1
  860. package/dist/components/BaseCard/index.d.ts +0 -2
  861. package/dist/components/BaseCard/index.js +0 -2
  862. package/dist/components/Button/Button.d.ts +0 -54
  863. package/dist/components/Button/Button2.js +0 -75
  864. package/dist/components/Button/Button2.js.map +0 -1
  865. package/dist/components/Button/index.d.ts +0 -5
  866. package/dist/components/Button/index.js +0 -2
  867. package/dist/components/DataTable/DataTable.d.ts +0 -144
  868. package/dist/components/DataTable/DataTable2.js +0 -244
  869. package/dist/components/DataTable/DataTable2.js.map +0 -1
  870. package/dist/components/DataTable/index.d.ts +0 -2
  871. package/dist/components/DataTable/index.js +0 -2
  872. package/dist/components/Drawer/Drawer.d.ts +0 -25
  873. package/dist/components/Drawer/Drawer2.js +0 -107
  874. package/dist/components/Drawer/Drawer2.js.map +0 -1
  875. package/dist/components/Drawer/index.d.ts +0 -2
  876. package/dist/components/Drawer/index.js +0 -2
  877. package/dist/components/EmptyState/EmptyState.d.ts +0 -52
  878. package/dist/components/EmptyState/EmptyState.example.d.ts +0 -8
  879. package/dist/components/EmptyState/EmptyState2.js +0 -62
  880. package/dist/components/EmptyState/EmptyState2.js.map +0 -1
  881. package/dist/components/EmptyState/index.d.ts +0 -10
  882. package/dist/components/EmptyState/index.js +0 -2
  883. package/dist/components/ProgressBar/ProgressBar.d.ts +0 -22
  884. package/dist/components/ProgressBar/ProgressBar2.js +0 -37
  885. package/dist/components/ProgressBar/ProgressBar2.js.map +0 -1
  886. package/dist/components/ProgressBar/index.d.ts +0 -2
  887. package/dist/components/ProgressBar/index.js +0 -2
  888. package/dist/components/Skeleton/Skeleton.d.ts +0 -25
  889. package/dist/components/Skeleton/Skeleton2.js +0 -27
  890. package/dist/components/Skeleton/Skeleton2.js.map +0 -1
  891. package/dist/components/StatusTag/StatusTag.d.ts +0 -38
  892. package/dist/components/StatusTag/StatusTag2.js +0 -45
  893. package/dist/components/StatusTag/StatusTag2.js.map +0 -1
  894. package/dist/components/StatusTag/index.d.ts +0 -2
  895. package/dist/components/StatusTag/index.js +0 -2
  896. package/dist/components/Tabs/Tabs.d.ts +0 -94
  897. package/dist/components/Tabs/Tabs2.js +0 -412
  898. package/dist/components/Tabs/Tabs2.js.map +0 -1
  899. package/dist/components/Tabs/index.d.ts +0 -2
  900. package/dist/components/Tabs/index.js +0 -2
  901. package/dist/components/Tooltip/Tooltip.d.ts +0 -16
  902. package/dist/components/Tooltip/Tooltip2.js +0 -68
  903. package/dist/components/Tooltip/Tooltip2.js.map +0 -1
  904. package/dist/components/Tooltip/index.d.ts +0 -2
  905. package/dist/components/Tooltip/index.js +0 -2
  906. package/dist/hooks/index.js +0 -2
  907. package/dist/icons/AlertCircleIcon.d.ts +0 -11
  908. package/dist/icons/AlertCircleIcon.js +0 -26
  909. package/dist/icons/AlertCircleIcon.js.map +0 -1
@@ -0,0 +1,220 @@
1
+ import { useUicTranslator as e } from "../../i18n/useUicTranslator.js";
2
+ import { compiledStyles as t } from "../../forks/compiled.js";
3
+ import { ComplexSelector as n } from "../../forks/ComplexSelector/ComplexSelector.js";
4
+ import { PanelSearchInput as r } from "./PanelSearchInput.js";
5
+ /* empty css */
6
+ import { useId as i, useLayoutEffect as ee, useRef as a, useState as o } from "react";
7
+ import { HStack as s } from "@astryxdesign/core/Stack";
8
+ import { Text as c } from "@astryxdesign/core/Text";
9
+ import { themeProps as te } from "@astryxdesign/core/utils";
10
+ import { Fragment as ne, jsx as l, jsxs as u } from "react/jsx-runtime";
11
+ import { Token as d } from "@astryxdesign/core/Token";
12
+ import { Spinner as f } from "@astryxdesign/core/Spinner";
13
+ import { Divider as re } from "@astryxdesign/core/Divider";
14
+ import { useIndicator as p } from "@astryxdesign/core/Indicator";
15
+ import { SelectorOption as ie } from "@astryxdesign/core/Selector";
16
+ import { VisuallyHidden as m } from "@astryxdesign/core/VisuallyHidden";
17
+ //#region src/components/PagedSelector/PagedSelector.tsx
18
+ var h = { padding: "x1717udv" }, g = t({ reset: {
19
+ kmVPX3: h.padding,
20
+ $$css: !0
21
+ } });
22
+ function _(t) {
23
+ let { label: h, options: _, labels: ae, placeholder: oe, hasSearch: v = !0, searchValue: se, onSearchChange: ce, searchPlaceholder: le, searchLabel: y, clearSearchLabel: b, onEndReached: x, endReachedThreshold: ue = 30, onAtEndChange: S, isLoadingMore: C, totalCount: w, formatTotalCount: de, emptyText: T, header: fe, footer: E, listMaxHeight: pe = 260, triggerDisplay: me = "labels", maxTriggerItems: he = 3, selectionIndicator: D = "check", hasClear: ge, onClear: O, onOpenChange: k, isLoading: A, size: j, isMultiple: M, value: _e, onChange: ve, ...N } = t, P = e(), F = p("check"), I = p("checkbox"), L = i(), ye = i(), R = t.isMultiple ? [...t.value ?? []] : t.value == null ? [] : [t.value], z = a(/* @__PURE__ */ new Map());
24
+ for (let e of _) z.current.set(e.value, e.label);
25
+ let B = (e) => ae?.[e] ?? _.find((t) => t.value === e)?.label ?? z.current.get(e) ?? e, V = (e) => {
26
+ let n = e.map((e) => ({
27
+ value: e,
28
+ label: B(e)
29
+ }));
30
+ t.isMultiple ? t.onChange?.(e, n) : t.onChange?.(e[0] ?? null, n[0] ?? null);
31
+ }, [H, U] = o(-1), [be, xe] = o(""), Se = se ?? be, W = a(!1), G = (e) => `${ye}-option-${e}`, K = _.length === 0 || H < 0 ? -1 : Math.min(H, _.length - 1), q = K >= 0 && _[K]?.isDisabled ? -1 : K, J = (e, t) => {
32
+ for (let n = e; n >= 0 && n < _.length; n += t) if (!_[n]?.isDisabled) return n;
33
+ return -1;
34
+ };
35
+ ee(() => {
36
+ q < 0 || document.getElementById(G(q))?.scrollIntoView({ block: "nearest" });
37
+ }, [q]);
38
+ let Ce = (e) => {
39
+ if (!x && !S) return;
40
+ let t = e.currentTarget, n = t.scrollHeight - t.scrollTop - t.clientHeight <= ue;
41
+ n !== W.current && (W.current = n, S?.(n), n && x?.());
42
+ }, Y = (e) => R.includes(e), X = (e, t) => {
43
+ if (!M) {
44
+ V([e.value]), t();
45
+ return;
46
+ }
47
+ V(Y(e.value) ? R.filter((t) => t !== e.value) : [...R, e.value]);
48
+ }, Z = (e, t, n) => {
49
+ if (_.length === 0) return;
50
+ let r = (e) => {
51
+ e >= 0 && U(e);
52
+ };
53
+ switch (e.key) {
54
+ case "ArrowDown":
55
+ e.preventDefault(), r(J(q < 0 ? 0 : q + 1, 1));
56
+ break;
57
+ case "ArrowUp":
58
+ e.preventDefault(), r(q < 0 ? J(0, 1) : J(q - 1, -1));
59
+ break;
60
+ case "Home":
61
+ e.preventDefault(), r(J(0, 1));
62
+ break;
63
+ case "End":
64
+ e.preventDefault(), r(J(_.length - 1, -1));
65
+ break;
66
+ case " ":
67
+ case "Enter": {
68
+ if (e.key === " " && !n) break;
69
+ let r = _[q];
70
+ if (!r || r.isDisabled) break;
71
+ e.preventDefault(), X(r, t);
72
+ break;
73
+ }
74
+ }
75
+ }, we = (() => {
76
+ if (R.length === 0) return;
77
+ if (!M) return B(R[0]);
78
+ let e = R.slice(0, he), t = R.length - e.length;
79
+ if (me === "badges") return /* @__PURE__ */ u(s, {
80
+ gap: .5,
81
+ vAlign: "center",
82
+ wrap: "wrap",
83
+ children: [e.map((e) => /* @__PURE__ */ l(d, {
84
+ label: B(e),
85
+ size: "sm"
86
+ }, e)), t > 0 ? /* @__PURE__ */ l(c, {
87
+ color: "secondary",
88
+ children: `+${t}`
89
+ }) : null]
90
+ });
91
+ let n = e.map(B).join(", ");
92
+ return t > 0 ? `${n}, +${t}` : n;
93
+ })(), Q = (e) => de?.(e) ?? P("uic.PagedSelector.totalItems", { total: e }), $ = P("uic.PagedSelector.loading");
94
+ return /* @__PURE__ */ l(n, {
95
+ ...N,
96
+ label: h,
97
+ value: R,
98
+ onChange: V,
99
+ triggerLabel: we,
100
+ placeholder: oe ?? P("uic.PagedSelector.placeholder", { label: h }),
101
+ isLoading: A,
102
+ size: j,
103
+ hasClear: ge,
104
+ onClear: O ?? (() => V([])),
105
+ onOpenChange: (e) => {
106
+ e || U(-1), k?.(e);
107
+ },
108
+ contentXstyle: g.reset,
109
+ children: (e, t, n) => /* @__PURE__ */ u("div", { children: [
110
+ v ? /* @__PURE__ */ u(ne, { children: [/* @__PURE__ */ l(r, {
111
+ label: y ?? P("uic.PagedSelector.searchOptions"),
112
+ clearLabel: b ?? P("uic.PagedSelector.clearSearch"),
113
+ placeholder: le ?? P("uic.PagedSelector.searchPlaceholder"),
114
+ value: Se,
115
+ onValueChange: (e) => {
116
+ xe(e), U(J(0, 1)), ce?.(e);
117
+ },
118
+ onKeyDown: (e) => Z(e, n, !1),
119
+ "aria-controls": L,
120
+ "aria-activedescendant": q >= 0 ? G(q) : void 0
121
+ }), /* @__PURE__ */ l(re, {})] }) : null,
122
+ fe,
123
+ /* @__PURE__ */ l("div", {
124
+ id: L,
125
+ role: "listbox",
126
+ "aria-label": h,
127
+ "aria-multiselectable": M || void 0,
128
+ tabIndex: v ? void 0 : 0,
129
+ "aria-activedescendant": !v && q >= 0 ? G(q) : void 0,
130
+ onKeyDown: v ? void 0 : (e) => Z(e, n, !0),
131
+ onScroll: Ce,
132
+ className: "uic-paged-selector__listbox",
133
+ style: { maxHeight: pe },
134
+ children: _.length === 0 ? /* @__PURE__ */ l("div", {
135
+ className: "uic-paged-selector__empty",
136
+ children: T === void 0 ? A ? /* @__PURE__ */ u(s, {
137
+ gap: 1,
138
+ vAlign: "center",
139
+ hAlign: "center",
140
+ children: [/* @__PURE__ */ l(f, { size: "sm" }), /* @__PURE__ */ l(c, {
141
+ color: "secondary",
142
+ children: $
143
+ })]
144
+ }) : /* @__PURE__ */ l(c, {
145
+ color: "secondary",
146
+ children: P("uic.PagedSelector.noResults")
147
+ }) : T
148
+ }) : _.map((e, t) => {
149
+ let r = Y(e.value), i = e.isDisabled ?? !1;
150
+ return /* @__PURE__ */ u("div", {
151
+ id: G(t),
152
+ role: "option",
153
+ "aria-selected": r,
154
+ "aria-disabled": i || void 0,
155
+ className: "uic-paged-selector__option",
156
+ "data-size": j === "sm" ? "sm" : void 0,
157
+ "data-selected": r ? "true" : void 0,
158
+ "data-highlighted": t === q ? "true" : void 0,
159
+ "data-disabled": i ? "true" : void 0,
160
+ onClick: () => {
161
+ i || (U(t), X(e, n));
162
+ },
163
+ onMouseEnter: () => {
164
+ i || U(t);
165
+ },
166
+ children: [
167
+ D === "checkbox" && /* @__PURE__ */ l("span", {
168
+ className: "uic-paged-selector__option-mark",
169
+ children: /* @__PURE__ */ l(I, {
170
+ state: r ? "checked" : "unchecked",
171
+ size: "sm",
172
+ isDisabled: i
173
+ })
174
+ }),
175
+ /* @__PURE__ */ l("span", {
176
+ className: "uic-paged-selector__option-content",
177
+ children: /* @__PURE__ */ l(ie, {
178
+ icon: e.icon,
179
+ label: e.labelContent ?? e.label,
180
+ description: e.description,
181
+ endContent: e.endContent
182
+ })
183
+ }),
184
+ D === "check" && /* @__PURE__ */ l("span", {
185
+ className: "uic-paged-selector__option-mark",
186
+ children: /* @__PURE__ */ l(F, {
187
+ state: r ? "checked" : "unchecked",
188
+ size: "sm",
189
+ isDisabled: i,
190
+ ...te("selector-check")
191
+ })
192
+ })
193
+ ]
194
+ }, e.value);
195
+ })
196
+ }),
197
+ (typeof E == "function" ? E(n) : E) ?? (typeof w == "number" && w > 0 ? /* @__PURE__ */ u(s, {
198
+ gap: 1,
199
+ vAlign: "center",
200
+ hAlign: "end",
201
+ className: "uic-paged-selector__foot",
202
+ children: [C ? /* @__PURE__ */ l(f, { size: "sm" }) : null, /* @__PURE__ */ l(c, {
203
+ color: "secondary",
204
+ size: "sm",
205
+ children: Q(w)
206
+ })]
207
+ }) : null),
208
+ /* @__PURE__ */ l(m, {
209
+ as: "div",
210
+ "aria-live": "polite",
211
+ children: _.length === 0 && A ? $ : Q(_.length)
212
+ })
213
+ ] })
214
+ });
215
+ }
216
+ //#endregion
217
+ export { h as CONTENT_RESET, _ as PagedSelector };
218
+
219
+ //# sourceMappingURL=PagedSelector2.js.map
220
+ import "../../assets/components/PagedSelector/PagedSelector.css";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PagedSelector2.js","names":[],"sources":["../../../src/components/PagedSelector/PagedSelector.tsx"],"sourcesContent":["/**\n * PagedSelector\n *\n * A searchable selector, single or multiple, over a list that loads a page at\n * a time: scrolling the panel near its end calls `onEndReached`, which is\n * where a consumer loads the next page (a Relay `loadNext`, a cursor fetch).\n * Search is the consumer's too: `onSearchChange` reports every keystroke.\n *\n * Astryx's `Selector` / `MultiSelector` mount every option and have no\n * scroll callback; `Typeahead` replaces its list on each query. This is\n * built on `ComplexSelector` (ui-common's copy), which owns the field,\n * trigger, popover and focus return and hands the panel body back, so the\n * body can own the scroll container. The body is drawn the way `Selector`'s\n * is: Astryx's panel search row, then option rows with the theme's check.\n *\n * - `value` holds option values: a string (or null) alone, a string array\n * with `isMultiple`. `onChange` also gets each chosen value's label, so a\n * consumer can keep labels for values that are not on the loaded page.\n * - A selected value missing from `options` (on another page, or filtered out\n * by the query) is named from `labels`, then from any page it was seen on,\n * then shown as the value itself.\n * - Keyboard: ArrowUp/Down, Home/End move a highlight that skips disabled\n * rows; Enter commits it, and Space too when there is no search box. The\n * panel is `ComplexSelector`'s dialog holding a listbox, not an ARIA\n * combobox.\n * - Options render one DOM row each; paging is what keeps that bounded.\n *\n * @example\n * <PagedSelector\n * label=\"Owner\"\n * value={ownerId}\n * onChange={(id) => setOwnerId(id)}\n * options={users.map((u) => ({ value: u.id, label: u.email }))}\n * onSearchChange={setQuery}\n * onEndReached={() => hasNext && loadNext(10)}\n * isLoadingMore={isLoadingNext}\n * totalCount={count}\n * />\n */\nimport { useId, useLayoutEffect, useRef, useState, type ReactNode } from \"react\";\nimport {\n ComplexSelector,\n type ComplexSelectorProps,\n} from \"../../forks/ComplexSelector\";\nimport { compiledStyles } from \"../../forks/compiled\";\nimport { Divider } from \"@astryxdesign/core/Divider\";\nimport { useIndicator } from \"@astryxdesign/core/Indicator\";\nimport { SelectorOption } from \"@astryxdesign/core/Selector\";\nimport { Spinner } from \"@astryxdesign/core/Spinner\";\nimport { HStack } from \"@astryxdesign/core/Stack\";\nimport { Text } from \"@astryxdesign/core/Text\";\nimport { Token } from \"@astryxdesign/core/Token\";\nimport { VisuallyHidden } from \"@astryxdesign/core/VisuallyHidden\";\nimport { themeProps } from \"@astryxdesign/core/utils\";\n\nimport { useUicTranslator } from \"../../i18n/useUicTranslator\";\nimport { PanelSearchInput } from \"./PanelSearchInput\";\nimport \"./PagedSelector.css\";\n\nexport interface PagedSelectorOption {\n value: string;\n /** The option's name: the trigger text and the row's accessible name. */\n label: string;\n /** Drawn in the row in place of `label`, for a row richer than a string. */\n labelContent?: ReactNode;\n /** Leading visual (avatar, glyph). */\n icon?: ReactNode;\n /** Secondary line under the label. */\n description?: ReactNode;\n /** Trailing content (tokens, meta). */\n endContent?: ReactNode;\n isDisabled?: boolean;\n}\n\n/** A chosen value with its label, as `onChange` reports it. */\nexport interface PagedSelectorSelectedItem {\n value: string;\n label: string;\n}\n\ntype Passthrough = Pick<\n ComplexSelectorProps<string[]>,\n | \"label\"\n | \"isLabelHidden\"\n | \"description\"\n | \"isOptional\"\n | \"isRequired\"\n | \"isDisabled\"\n | \"isLoading\"\n | \"status\"\n | \"statusVariant\"\n | \"labelTooltip\"\n | \"size\"\n | \"variant\"\n | \"startIcon\"\n | \"width\"\n | \"placement\"\n | \"alignment\"\n | \"onOpenChange\"\n | \"xstyle\"\n | \"className\"\n | \"style\"\n | \"data-testid\"\n>;\n\ninterface PagedSelectorBaseProps extends Passthrough {\n /** The loaded options, every page so far, in order. */\n options: readonly PagedSelectorOption[];\n /** Labels for selected values that may not be among `options`. */\n labels?: Readonly<Record<string, string>>;\n /**\n * Placeholder while nothing is selected.\n * @default the catalog's uic.PagedSelector.placeholder (\"Select {label}\")\n */\n placeholder?: string;\n /** Show the search box at the top of the panel. @default true */\n hasSearch?: boolean;\n /** Controlled search text; uncontrolled without it. */\n searchValue?: string;\n /** Called on every keystroke in the search box; debounce it yourself. */\n onSearchChange?: (searchValue: string) => void;\n /** @default the catalog's uic.PagedSelector.searchPlaceholder (\"Search\") */\n searchPlaceholder?: string;\n /** @default the catalog's uic.PagedSelector.searchOptions (\"Search options\") */\n searchLabel?: string;\n /** @default the catalog's uic.PagedSelector.clearSearch (\"Clear search options\") */\n clearSearchLabel?: string;\n /**\n * Called once each time the list is scrolled to within\n * `endReachedThreshold` px of its end. Load the next page here.\n */\n onEndReached?: () => void;\n /** Distance from the end, in px, that counts as reaching it. @default 30 */\n endReachedThreshold?: number;\n /** Called when the list arrives at, or leaves, its end. */\n onAtEndChange?: (isAtEnd: boolean) => void;\n /** A spinner in the foot while the next page loads. */\n isLoadingMore?: boolean;\n /** Options in all pages; shows the \"Total N items\" foot when positive. */\n totalCount?: number;\n /** @default the catalog's uic.PagedSelector.totalItems (\"Total {total} items\") */\n formatTotalCount?: (total: number) => string;\n /**\n * Replaces the empty list's content, the loading row included.\n * @default the catalog's uic.PagedSelector.loading while `isLoading`, else\n * uic.PagedSelector.noResults (\"No results\")\n */\n emptyText?: ReactNode;\n /** Above the option list, under the search box. */\n header?: ReactNode;\n /** Below the option list, in place of the total count. A function gets `close`. */\n footer?: ReactNode | ((close: () => void) => ReactNode);\n /** Height the option list scrolls within, in px. @default 260 */\n listMaxHeight?: number;\n /**\n * How a multiple selection shows in the trigger: `labels` (\"A, B, C, +2\",\n * as `MultiSelector`) or `badges` (tokens). @default \"labels\"\n */\n triggerDisplay?: \"labels\" | \"badges\";\n /** Selected items the trigger names before \"+N\". @default 3 */\n maxTriggerItems?: number;\n /** How a selected row is marked: the theme's check at its end, or a checkbox at its start. @default \"check\" */\n selectionIndicator?: \"check\" | \"checkbox\";\n /** A clear button in the trigger while something is selected. */\n hasClear?: boolean;\n /** Runs on clear. @default onChange(null) alone, onChange([]) with isMultiple */\n onClear?: () => void;\n}\n\nexport interface PagedSelectorSingleProps extends PagedSelectorBaseProps {\n isMultiple?: false;\n value?: string | null;\n onChange?: (value: string | null, item: PagedSelectorSelectedItem | null) => void;\n}\n\nexport interface PagedSelectorMultipleProps extends PagedSelectorBaseProps {\n isMultiple: true;\n value?: readonly string[];\n onChange?: (value: string[], items: PagedSelectorSelectedItem[]) => void;\n}\n\nexport type PagedSelectorProps = PagedSelectorSingleProps | PagedSelectorMultipleProps;\n\n/**\n * `ComplexSelector` insets its panel body by `--spacing-3`; this body brings\n * Selector's own gutters, so the inset goes. Astryx's compiled `padding: 0`\n * class (kmVPX3 is StyleX's key for `padding`), so no StyleX compiler is\n * needed; the test suite fails if astryx.css stops defining it.\n */\nexport const CONTENT_RESET = { padding: \"x1717udv\" } as const;\nconst contentStyles = compiledStyles({\n reset: { kmVPX3: CONTENT_RESET.padding, $$css: true },\n});\n\nexport function PagedSelector(props: PagedSelectorProps) {\n const {\n label,\n options,\n labels,\n placeholder,\n hasSearch = true,\n searchValue,\n onSearchChange,\n searchPlaceholder,\n searchLabel,\n clearSearchLabel,\n onEndReached,\n endReachedThreshold = 30,\n onAtEndChange,\n isLoadingMore,\n totalCount,\n formatTotalCount,\n emptyText,\n header,\n footer,\n listMaxHeight = 260,\n triggerDisplay = \"labels\",\n maxTriggerItems = 3,\n selectionIndicator = \"check\",\n hasClear,\n onClear,\n onOpenChange,\n isLoading,\n size,\n isMultiple,\n value: _value,\n onChange: _onChange,\n ...rest\n } = props;\n const t = useUicTranslator();\n const CheckMark = useIndicator(\"check\");\n const CheckboxMark = useIndicator(\"checkbox\");\n const listboxId = useId();\n const optionIdPrefix = useId();\n\n const selectedValues: string[] = props.isMultiple\n ? [...(props.value ?? [])]\n : props.value != null\n ? [props.value]\n : [];\n\n // Labels of every option seen, so a value picked from a page the list has\n // since dropped (a new query) keeps its name.\n const seenLabels = useRef(new Map<string, string>());\n for (const option of options) seenLabels.current.set(option.value, option.label);\n const labelOf = (value: string) =>\n labels?.[value] ??\n options.find((option) => option.value === value)?.label ??\n seenLabels.current.get(value) ??\n value;\n\n const emit = (values: string[]) => {\n const items = values.map((value) => ({ value, label: labelOf(value) }));\n if (props.isMultiple) props.onChange?.(values, items);\n else props.onChange?.(values[0] ?? null, items[0] ?? null);\n };\n\n // -1: an opened Astryx Selector highlights nothing until the pointer or an\n // arrow key picks a row.\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const [internalSearch, setInternalSearch] = useState(\"\");\n const search = searchValue ?? internalSearch;\n const isAtEnd = useRef(false);\n\n const optionIdOf = (index: number) => `${optionIdPrefix}-option-${index}`;\n const clampedIndex =\n options.length === 0 || highlightedIndex < 0\n ? -1\n : Math.min(highlightedIndex, options.length - 1);\n // A row that went disabled under a page append does not keep the highlight.\n const activeIndex =\n clampedIndex >= 0 && options[clampedIndex]?.isDisabled ? -1 : clampedIndex;\n\n const nextEnabledIndex = (from: number, step: 1 | -1) => {\n for (let i = from; i >= 0 && i < options.length; i += step) {\n if (!options[i]?.isDisabled) return i;\n }\n return -1;\n };\n\n useLayoutEffect(() => {\n if (activeIndex < 0) return;\n document\n .getElementById(optionIdOf(activeIndex))\n ?.scrollIntoView({ block: \"nearest\" });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeIndex]);\n\n const handleScroll = (event: React.UIEvent<HTMLDivElement>) => {\n if (!onEndReached && !onAtEndChange) return;\n const el = event.currentTarget;\n const isAtEndNow =\n el.scrollHeight - el.scrollTop - el.clientHeight <= endReachedThreshold;\n if (isAtEndNow === isAtEnd.current) return;\n isAtEnd.current = isAtEndNow;\n onAtEndChange?.(isAtEndNow);\n if (isAtEndNow) onEndReached?.();\n };\n\n const isSelected = (value: string) => selectedValues.includes(value);\n\n const commit = (option: PagedSelectorOption, close: () => void) => {\n if (!isMultiple) {\n emit([option.value]);\n close();\n return;\n }\n emit(\n isSelected(option.value)\n ? selectedValues.filter((value) => value !== option.value)\n : [...selectedValues, option.value],\n );\n };\n\n // Shared by the search box and, with no search box, the listbox itself.\n // Space commits only where it is not typing into the search box.\n const handleNavKeyDown = (\n event: React.KeyboardEvent<HTMLElement>,\n close: () => void,\n hasSpaceCommit: boolean,\n ) => {\n if (options.length === 0) return;\n const moveTo = (index: number) => {\n if (index >= 0) setHighlightedIndex(index);\n };\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n moveTo(nextEnabledIndex(activeIndex < 0 ? 0 : activeIndex + 1, 1));\n break;\n case \"ArrowUp\":\n event.preventDefault();\n moveTo(\n activeIndex < 0\n ? nextEnabledIndex(0, 1)\n : nextEnabledIndex(activeIndex - 1, -1),\n );\n break;\n case \"Home\":\n event.preventDefault();\n moveTo(nextEnabledIndex(0, 1));\n break;\n case \"End\":\n event.preventDefault();\n moveTo(nextEnabledIndex(options.length - 1, -1));\n break;\n case \" \":\n case \"Enter\": {\n if (event.key === \" \" && !hasSpaceCommit) break;\n const option = options[activeIndex];\n if (!option || option.isDisabled) break;\n event.preventDefault();\n commit(option, close);\n break;\n }\n default:\n break;\n }\n };\n\n const triggerLabel = (() => {\n if (selectedValues.length === 0) return undefined;\n if (!isMultiple) return labelOf(selectedValues[0]!);\n const shown = selectedValues.slice(0, maxTriggerItems);\n const remaining = selectedValues.length - shown.length;\n if (triggerDisplay === \"badges\") {\n // Display-only: the trigger is ComplexSelector's own <button>, so a\n // removable token would nest a button in a button.\n return (\n <HStack gap={0.5} vAlign=\"center\" wrap=\"wrap\">\n {shown.map((value) => (\n <Token key={value} label={labelOf(value)} size=\"sm\" />\n ))}\n {remaining > 0 ? <Text color=\"secondary\">{`+${remaining}`}</Text> : null}\n </HStack>\n );\n }\n const joined = shown.map(labelOf).join(\", \");\n return remaining > 0 ? `${joined}, +${remaining}` : joined;\n })();\n\n const totalText = (total: number) =>\n formatTotalCount?.(total) ?? t(\"uic.PagedSelector.totalItems\", { total });\n const loadingText = t(\"uic.PagedSelector.loading\");\n\n return (\n <ComplexSelector<string[]>\n {...rest}\n label={label}\n value={selectedValues}\n onChange={emit}\n triggerLabel={triggerLabel}\n placeholder={placeholder ?? t(\"uic.PagedSelector.placeholder\", { label })}\n isLoading={isLoading}\n size={size}\n hasClear={hasClear}\n onClear={onClear ?? (() => emit([]))}\n onOpenChange={(isOpen) => {\n // Astryx drops its highlight when the panel closes, so the next open\n // starts clean.\n if (!isOpen) setHighlightedIndex(-1);\n onOpenChange?.(isOpen);\n }}\n contentXstyle={contentStyles.reset}\n >\n {(_current, _commit, close) => (\n <div>\n {hasSearch ? (\n <>\n <PanelSearchInput\n label={searchLabel ?? t(\"uic.PagedSelector.searchOptions\")}\n clearLabel={clearSearchLabel ?? t(\"uic.PagedSelector.clearSearch\")}\n placeholder={\n searchPlaceholder ?? t(\"uic.PagedSelector.searchPlaceholder\")\n }\n value={search}\n onValueChange={(next) => {\n setInternalSearch(next);\n // Seeds the first selectable row, so type-then-Enter works.\n setHighlightedIndex(nextEnabledIndex(0, 1));\n onSearchChange?.(next);\n }}\n onKeyDown={(event) => handleNavKeyDown(event, close, false)}\n aria-controls={listboxId}\n aria-activedescendant={\n activeIndex >= 0 ? optionIdOf(activeIndex) : undefined\n }\n />\n <Divider />\n </>\n ) : null}\n {header}\n <div\n id={listboxId}\n role=\"listbox\"\n aria-label={label}\n aria-multiselectable={isMultiple || undefined}\n // With no search box nothing else in the panel takes focus, so the\n // popover's autofocus lands here and the arrows work.\n tabIndex={hasSearch ? undefined : 0}\n aria-activedescendant={\n !hasSearch && activeIndex >= 0 ? optionIdOf(activeIndex) : undefined\n }\n onKeyDown={\n hasSearch ? undefined : (event) => handleNavKeyDown(event, close, true)\n }\n onScroll={handleScroll}\n className=\"uic-paged-selector__listbox\"\n style={{ maxHeight: listMaxHeight }}\n >\n {options.length === 0 ? (\n <div className=\"uic-paged-selector__empty\">\n {emptyText !== undefined ? (\n emptyText\n ) : isLoading ? (\n <HStack gap={1} vAlign=\"center\" hAlign=\"center\">\n <Spinner size=\"sm\" />\n <Text color=\"secondary\">{loadingText}</Text>\n </HStack>\n ) : (\n <Text color=\"secondary\">{t(\"uic.PagedSelector.noResults\")}</Text>\n )}\n </div>\n ) : (\n options.map((option, index) => {\n const selected = isSelected(option.value);\n const isDisabled = option.isDisabled ?? false;\n return (\n <div\n key={option.value}\n id={optionIdOf(index)}\n role=\"option\"\n aria-selected={selected}\n aria-disabled={isDisabled || undefined}\n className=\"uic-paged-selector__option\"\n data-size={size === \"sm\" ? \"sm\" : undefined}\n data-selected={selected ? \"true\" : undefined}\n data-highlighted={index === activeIndex ? \"true\" : undefined}\n data-disabled={isDisabled ? \"true\" : undefined}\n onClick={() => {\n if (isDisabled) return;\n setHighlightedIndex(index);\n commit(option, close);\n }}\n onMouseEnter={() => {\n if (!isDisabled) setHighlightedIndex(index);\n }}\n >\n {selectionIndicator === \"checkbox\" && (\n <span className=\"uic-paged-selector__option-mark\">\n <CheckboxMark\n state={selected ? \"checked\" : \"unchecked\"}\n size=\"sm\"\n isDisabled={isDisabled}\n />\n </span>\n )}\n <span className=\"uic-paged-selector__option-content\">\n <SelectorOption\n icon={option.icon}\n label={option.labelContent ?? option.label}\n description={option.description}\n endContent={option.endContent}\n />\n </span>\n {/* Rendered with the state passed down: a theme that swaps\n the check for a radio draws its empty circle too. */}\n {selectionIndicator === \"check\" && (\n <span className=\"uic-paged-selector__option-mark\">\n <CheckMark\n state={selected ? \"checked\" : \"unchecked\"}\n size=\"sm\"\n isDisabled={isDisabled}\n {...themeProps(\"selector-check\")}\n />\n </span>\n )}\n </div>\n );\n })\n )}\n </div>\n {(typeof footer === \"function\" ? footer(close) : footer) ??\n (typeof totalCount === \"number\" && totalCount > 0 ? (\n <HStack\n gap={1}\n vAlign=\"center\"\n hAlign=\"end\"\n className=\"uic-paged-selector__foot\"\n >\n {isLoadingMore ? <Spinner size=\"sm\" /> : null}\n <Text color=\"secondary\" size=\"sm\">\n {totalText(totalCount)}\n </Text>\n </HStack>\n ) : null)}\n <VisuallyHidden as=\"div\" aria-live=\"polite\">\n {options.length === 0 && isLoading\n ? loadingText\n : totalText(options.length)}\n </VisuallyHidden>\n </div>\n )}\n </ComplexSelector>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { KeyboardEventHandler, Ref } from 'react';
2
+ /** Astryx's compiled classes, from dist/Field/PanelSearchInput.js and Selector's `searchRowInput`. */
3
+ export declare const PANEL_SEARCH_CLASS_NAMES: {
4
+ /** `styles.wrapper` with Selector's popover `searchRowInput` padding. */
5
+ readonly wrapper: "xu0wf1k x2hg6jq";
6
+ readonly field: "x9f619 x78zum5 x6s0dn4 x1txdalj xh8yej3 x1vofgu7 xf314gf xh6dtrn xkdsq27 xuedmi6 x12w9bfk xlr8y92";
7
+ /** Added to `field` while focus arrived by keyboard: draws the inset ring. */
8
+ readonly fieldKeyboardFocus: "x1gnnqk1 x1btxeh5";
9
+ readonly input: "x1iyjqo2 xs83m0k xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1tgivj0 x9ynric xcr08ib xdk3u5w x1kq96og x1a2a7pz xeyghm5";
10
+ };
11
+ export interface PanelSearchInputProps {
12
+ ref?: Ref<HTMLInputElement>;
13
+ label: string;
14
+ clearLabel: string;
15
+ placeholder?: string;
16
+ value: string;
17
+ onValueChange: (value: string) => void;
18
+ onKeyDown?: KeyboardEventHandler<HTMLInputElement>;
19
+ "aria-controls"?: string;
20
+ "aria-activedescendant"?: string;
21
+ }
22
+ export declare function PanelSearchInput({ ref, label, clearLabel, placeholder, value, onValueChange, onKeyDown, ...ariaProps }: PanelSearchInputProps): import("react").JSX.Element;
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { compiledStyles as e } from "../../forks/compiled.js";
3
+ import { useCallback as t, useEffect as n, useState as r } from "react";
4
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ import { Icon as o } from "@astryxdesign/core/Icon";
6
+ import { InputClearButton as s } from "@astryxdesign/core/Field";
7
+ //#region src/components/PagedSelector/PanelSearchInput.tsx
8
+ var c = {
9
+ wrapper: "xu0wf1k x2hg6jq",
10
+ field: "x9f619 x78zum5 x6s0dn4 x1txdalj xh8yej3 x1vofgu7 xf314gf xh6dtrn xkdsq27 xuedmi6 x12w9bfk xlr8y92",
11
+ fieldKeyboardFocus: "x1gnnqk1 x1btxeh5",
12
+ input: "x1iyjqo2 xs83m0k xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1tgivj0 x9ynric xcr08ib xdk3u5w x1kq96og x1a2a7pz xeyghm5"
13
+ }, l = e({ icon: {
14
+ k1xSpc: "x78zum5",
15
+ kGNEyG: "x6s0dn4",
16
+ kmuXW: "x2lah0s",
17
+ $$css: !0
18
+ } }), u = Symbol.for("@astryxdesign/core/interaction-modality/v1");
19
+ function d(e) {
20
+ let t = e[u];
21
+ if (t != null) return t;
22
+ let n = {
23
+ modality: "keyboard",
24
+ isListening: !1,
25
+ onPointerDown: () => {
26
+ n.modality = "pointer";
27
+ },
28
+ onKeyDown: (e) => {
29
+ e.metaKey || e.altKey || e.ctrlKey || (n.modality = "keyboard");
30
+ }
31
+ };
32
+ return Object.defineProperty(e, u, { value: n }), n;
33
+ }
34
+ function f() {
35
+ if (typeof document > "u") return;
36
+ let e = d(document);
37
+ e.isListening || (e.isListening = !0, document.addEventListener("pointerdown", e.onPointerDown, {
38
+ capture: !0,
39
+ passive: !0
40
+ }), document.addEventListener("keydown", e.onKeyDown, {
41
+ capture: !0,
42
+ passive: !0
43
+ }));
44
+ }
45
+ function p() {
46
+ return typeof document > "u" ? "keyboard" : d(document).modality;
47
+ }
48
+ function m({ ref: e, label: u, clearLabel: d, placeholder: m, value: h, onValueChange: g, onKeyDown: _, ...v }) {
49
+ let [y, b] = r(!1), [x, S] = r(null);
50
+ n(() => f(), []);
51
+ let C = t((t) => {
52
+ S(t), typeof e == "function" ? e(t) : e != null && (e.current = t);
53
+ }, [e]), w = t((e) => {
54
+ g(""), !e || e.detail === 0 ? x?.focus() : requestAnimationFrame(() => x?.focus({ preventScroll: !0 }));
55
+ }, [x, g]);
56
+ return /* @__PURE__ */ i("div", {
57
+ className: c.wrapper,
58
+ children: /* @__PURE__ */ a("div", {
59
+ "data-keyboard-focus": y ? "true" : void 0,
60
+ className: y ? `${c.field} ${c.fieldKeyboardFocus}` : c.field,
61
+ children: [
62
+ /* @__PURE__ */ i(o, {
63
+ icon: "search",
64
+ size: "sm",
65
+ color: "secondary",
66
+ xstyle: l.icon
67
+ }),
68
+ /* @__PURE__ */ i("input", {
69
+ ref: C,
70
+ type: "text",
71
+ "aria-label": u,
72
+ placeholder: m,
73
+ value: h,
74
+ onChange: (e) => g(e.target.value),
75
+ onKeyDown: _,
76
+ onFocus: () => b(p() === "keyboard"),
77
+ onBlur: () => b(!1),
78
+ className: c.input,
79
+ role: "combobox",
80
+ "aria-expanded": !0,
81
+ "aria-autocomplete": "list",
82
+ ...v
83
+ }),
84
+ h !== "" && /* @__PURE__ */ i(s, {
85
+ label: d,
86
+ onClick: w
87
+ })
88
+ ]
89
+ })
90
+ });
91
+ }
92
+ //#endregion
93
+ export { c as PANEL_SEARCH_CLASS_NAMES, m as PanelSearchInput };
94
+
95
+ //# sourceMappingURL=PanelSearchInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelSearchInput.js","names":[],"sources":["../../../src/components/PagedSelector/PanelSearchInput.tsx"],"sourcesContent":["// Copyright (c) Meta Platforms, Inc. and affiliates.\n// Modifications copyright (c) Lablup Inc.\n//\n// Adapted from @astryxdesign/core 0.6.2, dist/Field/PanelSearchInput.js and\n// dist/utils/interactionModality.js (MIT; see NOTICE). Neither is exported by\n// the package; Selector and MultiSelector use them for their search row.\n\n\"use client\";\n\n/**\n * The search row at the top of PagedSelector's panel: magnifier, borderless\n * input, and a clear button once a query is typed, in a rounded box shaped\n * like the option rows beneath it. Astryx's own, so the row reads exactly as\n * `Selector`'s does.\n *\n * It renders with the class names Astryx compiled for this version (their\n * rules arrive with `astryx.css`), so it needs no stylesheet and no StyleX\n * compiler. The keyboard-only focus ring is Astryx's too. The test suite\n * fails when an Astryx bump drops one of these classes.\n */\nimport {\n useCallback,\n useEffect,\n useState,\n type KeyboardEventHandler,\n type Ref,\n} from \"react\";\nimport { InputClearButton } from \"@astryxdesign/core/Field\";\nimport { Icon } from \"@astryxdesign/core/Icon\";\n\nimport { compiledStyles } from \"../../forks/compiled\";\n\n/** Astryx's compiled classes, from dist/Field/PanelSearchInput.js and Selector's `searchRowInput`. */\nexport const PANEL_SEARCH_CLASS_NAMES = {\n /** `styles.wrapper` with Selector's popover `searchRowInput` padding. */\n wrapper: \"xu0wf1k x2hg6jq\",\n field:\n \"x9f619 x78zum5 x6s0dn4 x1txdalj xh8yej3 x1vofgu7 xf314gf xh6dtrn xkdsq27 xuedmi6 x12w9bfk xlr8y92\",\n /** Added to `field` while focus arrived by keyboard: draws the inset ring. */\n fieldKeyboardFocus: \"x1gnnqk1 x1btxeh5\",\n input:\n \"x1iyjqo2 xs83m0k xeuugli x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1tgivj0 x9ynric xcr08ib xdk3u5w x1kq96og x1a2a7pz xeyghm5\",\n} as const;\n\nconst iconStyles = compiledStyles({\n icon: { k1xSpc: \"x78zum5\", kGNEyG: \"x6s0dn4\", kmuXW: \"x2lah0s\", $$css: true },\n});\n\n// Astryx's interaction-modality store, shared through the same document\n// symbol, so this copy and Astryx's agree on how the user last interacted.\n// `:focus-visible` matches a text input focused by pointer too, so the ring\n// is gated on the last modality being the keyboard.\ntype Modality = \"keyboard\" | \"pointer\";\ntype ModalityStore = {\n modality: Modality;\n isListening: boolean;\n onPointerDown: () => void;\n onKeyDown: (event: KeyboardEvent) => void;\n};\nconst MODALITY_STORE_KEY = Symbol.for(\"@astryxdesign/core/interaction-modality/v1\");\n\nfunction getModalityStore(doc: Document): ModalityStore {\n const holder = doc as unknown as Record<symbol, ModalityStore | undefined>;\n const existing = holder[MODALITY_STORE_KEY];\n if (existing != null) return existing;\n const store: ModalityStore = {\n modality: \"keyboard\",\n isListening: false,\n onPointerDown: () => {\n store.modality = \"pointer\";\n },\n onKeyDown: (event) => {\n if (event.metaKey || event.altKey || event.ctrlKey) return;\n store.modality = \"keyboard\";\n },\n };\n Object.defineProperty(doc, MODALITY_STORE_KEY, { value: store });\n return store;\n}\n\nfunction trackInteractionModality(): void {\n if (typeof document === \"undefined\") return;\n const store = getModalityStore(document);\n if (store.isListening) return;\n store.isListening = true;\n document.addEventListener(\"pointerdown\", store.onPointerDown, {\n capture: true,\n passive: true,\n });\n document.addEventListener(\"keydown\", store.onKeyDown, {\n capture: true,\n passive: true,\n });\n}\n\nfunction getInteractionModality(): Modality {\n return typeof document === \"undefined\"\n ? \"keyboard\"\n : getModalityStore(document).modality;\n}\n\nexport interface PanelSearchInputProps {\n ref?: Ref<HTMLInputElement>;\n label: string;\n clearLabel: string;\n placeholder?: string;\n value: string;\n onValueChange: (value: string) => void;\n onKeyDown?: KeyboardEventHandler<HTMLInputElement>;\n \"aria-controls\"?: string;\n \"aria-activedescendant\"?: string;\n}\n\nexport function PanelSearchInput({\n ref,\n label,\n clearLabel,\n placeholder,\n value,\n onValueChange,\n onKeyDown,\n ...ariaProps\n}: PanelSearchInputProps) {\n const [isKeyboardFocus, setIsKeyboardFocus] = useState(false);\n const [input, setInput] = useState<HTMLInputElement | null>(null);\n\n useEffect(() => trackInteractionModality(), []);\n\n const attachInput = useCallback(\n (node: HTMLInputElement | null) => {\n setInput(node);\n if (typeof ref === \"function\") ref(node);\n else if (ref != null)\n (ref as { current: HTMLInputElement | null }).current = node;\n },\n [ref],\n );\n\n const handleClear = useCallback(\n (event?: React.MouseEvent) => {\n onValueChange(\"\");\n // Upstream: keyboard keeps focus synchronously; a tap defers it past the\n // button's unmount so touch browsers do not jump the page.\n if (!event || event.detail === 0) input?.focus();\n else requestAnimationFrame(() => input?.focus({ preventScroll: true }));\n },\n [input, onValueChange],\n );\n\n return (\n <div className={PANEL_SEARCH_CLASS_NAMES.wrapper}>\n <div\n data-keyboard-focus={isKeyboardFocus ? \"true\" : undefined}\n className={\n isKeyboardFocus\n ? `${PANEL_SEARCH_CLASS_NAMES.field} ${PANEL_SEARCH_CLASS_NAMES.fieldKeyboardFocus}`\n : PANEL_SEARCH_CLASS_NAMES.field\n }\n >\n <Icon icon=\"search\" size=\"sm\" color=\"secondary\" xstyle={iconStyles.icon} />\n <input\n ref={attachInput}\n type=\"text\"\n aria-label={label}\n placeholder={placeholder}\n value={value}\n onChange={(event) => onValueChange(event.target.value)}\n onKeyDown={onKeyDown}\n onFocus={() => setIsKeyboardFocus(getInteractionModality() === \"keyboard\")}\n onBlur={() => setIsKeyboardFocus(false)}\n className={PANEL_SEARCH_CLASS_NAMES.input}\n role=\"combobox\"\n aria-expanded\n aria-autocomplete=\"list\"\n {...ariaProps}\n />\n {value !== \"\" && <InputClearButton label={clearLabel} onClick={handleClear} />}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAiCA,IAAa,IAA2B;CAEtC,SAAS;CACT,OACE;CAEF,oBAAoB;CACpB,OACE;AACJ,GAEM,IAAa,EAAe,EAChC,MAAM;CAAE,QAAQ;CAAW,QAAQ;CAAW,OAAO;CAAW,OAAO;AAAK,EAC9E,CAAC,GAaK,IAAqB,OAAO,IAAI,4CAA4C;AAElF,SAAS,EAAiB,GAA8B;CAEtD,IAAM,IAAW,EAAO;CACxB,IAAI,KAAY,MAAM,OAAO;CAC7B,IAAM,IAAuB;EAC3B,UAAU;EACV,aAAa;EACb,qBAAqB;GACnB,EAAM,WAAW;EACnB;EACA,YAAY,MAAU;GAChB,EAAM,WAAW,EAAM,UAAU,EAAM,YAC3C,EAAM,WAAW;EACnB;CACF;CAEA,OADA,OAAO,eAAe,GAAK,GAAoB,EAAE,OAAO,EAAM,CAAC,GACxD;AACT;AAEA,SAAS,IAAiC;CACxC,IAAI,OAAO,WAAa,KAAa;CACrC,IAAM,IAAQ,EAAiB,QAAQ;CACnC,EAAM,gBACV,EAAM,cAAc,IACpB,SAAS,iBAAiB,eAAe,EAAM,eAAe;EAC5D,SAAS;EACT,SAAS;CACX,CAAC,GACD,SAAS,iBAAiB,WAAW,EAAM,WAAW;EACpD,SAAS;EACT,SAAS;CACX,CAAC;AACH;AAEA,SAAS,IAAmC;CAC1C,OAAO,OAAO,WAAa,MACvB,aACA,EAAiB,QAAQ,CAAC,CAAC;AACjC;AAcA,SAAgB,EAAiB,EAC/B,QACA,UACA,eACA,gBACA,UACA,kBACA,cACA,GAAG,KACqB;CACxB,IAAM,CAAC,GAAiB,KAAsB,EAAS,EAAK,GACtD,CAAC,GAAO,KAAY,EAAkC,IAAI;CAEhE,QAAgB,EAAyB,GAAG,CAAC,CAAC;CAE9C,IAAM,IAAc,GACjB,MAAkC;EAEjC,AADA,EAAS,CAAI,GACT,OAAO,KAAQ,aAAY,EAAI,CAAI,IAC9B,KAAO,SACd,EAA8C,UAAU;CAC5D,GACA,CAAC,CAAG,CACN,GAEM,IAAc,GACjB,MAA6B;EAI5B,AAHA,EAAc,EAAE,GAGZ,CAAC,KAAS,EAAM,WAAW,IAAG,GAAO,MAAM,IAC1C,4BAA4B,GAAO,MAAM,EAAE,eAAe,GAAK,CAAC,CAAC;CACxE,GACA,CAAC,GAAO,CAAa,CACvB;CAEA,OACE,kBAAC,OAAD;EAAK,WAAW,EAAyB;EACvC,UAAA,kBAAC,OAAD;GACE,uBAAqB,IAAkB,SAAS,KAAA;GAChD,WACE,IACI,GAAG,EAAyB,MAAM,GAAG,EAAyB,uBAC9D,EAAyB;GALjC,UAAA;IAQE,kBAAC,GAAD;KAAM,MAAK;KAAS,MAAK;KAAK,OAAM;KAAY,QAAQ,EAAW;IAAO,CAAA;IAC1E,kBAAC,SAAD;KACE,KAAK;KACL,MAAK;KACL,cAAY;KACC;KACN;KACP,WAAW,MAAU,EAAc,EAAM,OAAO,KAAK;KAC1C;KACX,eAAe,EAAmB,EAAuB,MAAM,UAAU;KACzE,cAAc,EAAmB,EAAK;KACtC,WAAW,EAAyB;KACpC,MAAK;KACL,iBAAA;KACA,qBAAkB;KAClB,GAAI;IACL,CAAA;IACA,MAAU,MAAM,kBAAC,GAAD;KAAkB,OAAO;KAAY,SAAS;IAAc,CAAA;GAC1E;;CACF,CAAA;AAET"}
@@ -0,0 +1,2 @@
1
+ export { PagedSelector } from './PagedSelector';
2
+ export type { PagedSelectorMultipleProps, PagedSelectorOption, PagedSelectorProps, PagedSelectorSelectedItem, PagedSelectorSingleProps, } from './PagedSelector';
@@ -0,0 +1,2 @@
1
+ import { PagedSelector as e } from "./PagedSelector2.js";
2
+ export { e as PagedSelector };
@@ -0,0 +1,26 @@
1
+ import { CSSProperties, ReactElement, ReactNode } from 'react';
2
+ export interface ProgressWithLabelProps {
3
+ /** Start label, usually what is measured. */
4
+ label?: ReactNode;
5
+ /** End label, usually the amount. */
6
+ valueLabel?: ReactNode;
7
+ /** Fill, in percent. Values above 100 fill the bar. */
8
+ value?: number;
9
+ /** Whether the end label shows. Its space stays reserved. Default: true */
10
+ hasValueLabel?: boolean;
11
+ /** Fill colour: any CSS colour or `var()`. */
12
+ color?: string;
13
+ /** Width of the bar. Without it the bar grows to fill its flex container. */
14
+ width?: CSSProperties["width"];
15
+ /** Label size. Default: "sm" */
16
+ size?: "sm" | "md" | "lg";
17
+ className?: string;
18
+ /** Inline style of the frame. */
19
+ style?: CSSProperties;
20
+ /** Inline style of both labels. */
21
+ labelStyle?: CSSProperties;
22
+ }
23
+ export declare function ProgressWithLabel({ label, valueLabel, value, hasValueLabel, color, width, size, className, style, labelStyle, }: ProgressWithLabelProps): ReactElement;
24
+ export declare namespace ProgressWithLabel {
25
+ var displayName: string;
26
+ }
@@ -0,0 +1,44 @@
1
+ /* empty css */
2
+ import { Text as e } from "@astryxdesign/core/Text";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ //#region src/components/ProgressWithLabel/ProgressWithLabel.tsx
5
+ function r({ label: r, valueLabel: i, value: a, hasValueLabel: o = !0, color: s, width: c, size: l = "sm", className: u, style: d, labelStyle: f }) {
6
+ let p = a === void 0 || Number.isNaN(a), m = !a || Number.isNaN(a) ? 0 : Math.min(a, 100), h = typeof c == "number" || typeof c == "string";
7
+ return /* @__PURE__ */ n("div", {
8
+ className: [
9
+ "uic-progress-with-label",
10
+ `uic-progress-with-label--${l}`,
11
+ !h && "uic-progress-with-label--grow",
12
+ u
13
+ ].filter(Boolean).join(" "),
14
+ style: {
15
+ ...h ? { width: c } : null,
16
+ ...d
17
+ },
18
+ children: [/* @__PURE__ */ t("div", {
19
+ className: "uic-progress-with-label__fill",
20
+ style: {
21
+ width: `${m}%`,
22
+ ...s ? { backgroundColor: s } : null
23
+ }
24
+ }), /* @__PURE__ */ n("div", {
25
+ className: "uic-progress-with-label__labels",
26
+ children: [/* @__PURE__ */ t(e, {
27
+ className: "uic-progress-with-label__text",
28
+ style: f,
29
+ children: r
30
+ }), /* @__PURE__ */ t(e, {
31
+ className: "uic-progress-with-label__text uic-progress-with-label__value",
32
+ color: p ? "disabled" : void 0,
33
+ style: f,
34
+ children: o ? i : " "
35
+ })]
36
+ })]
37
+ });
38
+ }
39
+ r.displayName = "ProgressWithLabel";
40
+ //#endregion
41
+ export { r as ProgressWithLabel };
42
+
43
+ //# sourceMappingURL=ProgressWithLabel2.js.map
44
+ import "../../assets/components/ProgressWithLabel/ProgressWithLabel.css";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressWithLabel2.js","names":[],"sources":["../../../src/components/ProgressWithLabel/ProgressWithLabel.tsx"],"sourcesContent":["/**\n * ProgressWithLabel\n *\n * A bar that carries its own labels: `label` at the start and `valueLabel` at\n * the end, over a fill of `value` percent. For compact resource readouts in\n * table cells and cards (\"CPU 3 / 8 cores\"). A missing or NaN `value` draws\n * no fill and greys the value label.\n *\n * The fill is `color`, by default Astryx `--color-success`. The frame's\n * corner is `--progress-with-label-radius` (default `--radius-inner`).\n *\n * @example\n * <ProgressWithLabel label=\"CPU\" valueLabel=\"3 / 8\" value={37.5} width={160} />\n */\nimport type { CSSProperties, ReactElement, ReactNode } from \"react\";\nimport { Text } from \"@astryxdesign/core/Text\";\n\nimport \"./ProgressWithLabel.css\";\n\nexport interface ProgressWithLabelProps {\n /** Start label, usually what is measured. */\n label?: ReactNode;\n /** End label, usually the amount. */\n valueLabel?: ReactNode;\n /** Fill, in percent. Values above 100 fill the bar. */\n value?: number;\n /** Whether the end label shows. Its space stays reserved. Default: true */\n hasValueLabel?: boolean;\n /** Fill colour: any CSS colour or `var()`. */\n color?: string;\n /** Width of the bar. Without it the bar grows to fill its flex container. */\n width?: CSSProperties[\"width\"];\n /** Label size. Default: \"sm\" */\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n /** Inline style of the frame. */\n style?: CSSProperties;\n /** Inline style of both labels. */\n labelStyle?: CSSProperties;\n}\n\nexport function ProgressWithLabel({\n label,\n valueLabel,\n value,\n hasValueLabel = true,\n color,\n width,\n size = \"sm\",\n className,\n style,\n labelStyle,\n}: ProgressWithLabelProps): ReactElement {\n const isValueMissing = value === undefined || Number.isNaN(value);\n const fill = !value || Number.isNaN(value) ? 0 : Math.min(value, 100);\n const hasWidth = typeof width === \"number\" || typeof width === \"string\";\n\n return (\n <div\n className={[\n \"uic-progress-with-label\",\n `uic-progress-with-label--${size}`,\n !hasWidth && \"uic-progress-with-label--grow\",\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n style={{\n ...(hasWidth ? { width } : null),\n ...style,\n }}\n >\n <div\n className=\"uic-progress-with-label__fill\"\n style={{ width: `${fill}%`, ...(color ? { backgroundColor: color } : null) }}\n />\n <div className=\"uic-progress-with-label__labels\">\n <Text className=\"uic-progress-with-label__text\" style={labelStyle}>\n {label}\n </Text>\n <Text\n className=\"uic-progress-with-label__text uic-progress-with-label__value\"\n color={isValueMissing ? \"disabled\" : undefined}\n style={labelStyle}\n >\n {hasValueLabel ? valueLabel : \" \"}\n </Text>\n </div>\n </div>\n );\n}\n\nProgressWithLabel.displayName = \"ProgressWithLabel\";\n"],"mappings":";;;;AAyCA,SAAgB,EAAkB,EAChC,UACA,eACA,UACA,mBAAgB,IAChB,UACA,UACA,UAAO,MACP,cACA,UACA,iBACuC;CACvC,IAAM,IAAiB,MAAU,KAAA,KAAa,OAAO,MAAM,CAAK,GAC1D,IAAO,CAAC,KAAS,OAAO,MAAM,CAAK,IAAI,IAAI,KAAK,IAAI,GAAO,GAAG,GAC9D,IAAW,OAAO,KAAU,YAAY,OAAO,KAAU;CAE/D,OACE,kBAAC,OAAD;EACE,WAAW;GACT;GACA,4BAA4B;GAC5B,CAAC,KAAY;GACb;EACF,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;EACX,OAAO;GACL,GAAI,IAAW,EAAE,SAAM,IAAI;GAC3B,GAAG;EACL;EAZF,UAAA,CAcE,kBAAC,OAAD;GACE,WAAU;GACV,OAAO;IAAE,OAAO,GAAG,EAAK;IAAI,GAAI,IAAQ,EAAE,iBAAiB,EAAM,IAAI;GAAM;EAC5E,CAAA,GACD,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,kBAAC,GAAD;IAAM,WAAU;IAAgC,OAAO;IACpD,UAAA;GACG,CAAA,GACN,kBAAC,GAAD;IACE,WAAU;IACV,OAAO,IAAiB,aAAa,KAAA;IACrC,OAAO;IAEN,UAAA,IAAgB,IAAa;GAC1B,CAAA,CACH;EACF,CAAA,CAAA;;AAET;AAEA,EAAkB,cAAc"}
@@ -0,0 +1,2 @@
1
+ export { ProgressWithLabel } from './ProgressWithLabel';
2
+ export type { ProgressWithLabelProps } from './ProgressWithLabel';
@@ -0,0 +1,2 @@
1
+ import { ProgressWithLabel as e } from "./ProgressWithLabel2.js";
2
+ export { e as ProgressWithLabel };
@@ -0,0 +1,23 @@
1
+ import { ReactNode } from 'react';
2
+ export interface SelectionLabelProps {
3
+ /** How many items are selected. 0 or less renders nothing. */
4
+ count: number;
5
+ /** Clears the selection. Without it, no clear button renders. */
6
+ onClear?: () => void;
7
+ /**
8
+ * The text. @default the catalog's uic.SelectionLabel.selectedCount
9
+ * ("{count} selected")
10
+ */
11
+ label?: string;
12
+ /**
13
+ * Accessible name and tooltip of the clear button.
14
+ * @default the catalog's uic.SelectionLabel.clear ("Deselect all")
15
+ */
16
+ clearLabel?: string;
17
+ /** Glyph of the clear button. @default the theme's `close` icon */
18
+ clearIcon?: ReactNode;
19
+ }
20
+ export declare function SelectionLabel({ count, onClear, label, clearLabel, clearIcon, }: SelectionLabelProps): import("react").JSX.Element | null;
21
+ export declare namespace SelectionLabel {
22
+ var displayName: string;
23
+ }
@@ -0,0 +1,29 @@
1
+ import { useUicTranslator as e } from "../../i18n/useUicTranslator.js";
2
+ import { HStack as t } from "@astryxdesign/core/Stack";
3
+ import { Text as n } from "@astryxdesign/core/Text";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { Icon as a } from "@astryxdesign/core/Icon";
6
+ import { IconButton as o } from "@astryxdesign/core/IconButton";
7
+ //#region src/components/SelectionLabel/SelectionLabel.tsx
8
+ function s({ count: s, onClear: c, label: l, clearLabel: u, clearIcon: d }) {
9
+ let f = e();
10
+ if (s <= 0) return null;
11
+ let p = u ?? f("uic.SelectionLabel.clear");
12
+ return /* @__PURE__ */ i(t, {
13
+ gap: 1,
14
+ align: "center",
15
+ children: [/* @__PURE__ */ r(n, { children: l ?? f("uic.SelectionLabel.selectedCount", { count: s }) }), c ? /* @__PURE__ */ r(o, {
16
+ variant: "ghost",
17
+ size: "sm",
18
+ icon: d ?? /* @__PURE__ */ r(a, { icon: "close" }),
19
+ label: p,
20
+ tooltip: p,
21
+ onClick: c
22
+ }) : null]
23
+ });
24
+ }
25
+ s.displayName = "SelectionLabel";
26
+ //#endregion
27
+ export { s as SelectionLabel };
28
+
29
+ //# sourceMappingURL=SelectionLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionLabel.js","names":[],"sources":["../../../src/components/SelectionLabel/SelectionLabel.tsx"],"sourcesContent":["/**\n * SelectionLabel\n *\n * \"3 selected\" beside a bulk-action toolbar, with an optional button that\n * clears the selection. Renders nothing while `count` is 0 or less.\n *\n * @example\n * <SelectionLabel count={selectedKeys.length} onClear={() => setSelectedKeys([])} />\n */\nimport type { ReactNode } from \"react\";\nimport { Icon } from \"@astryxdesign/core/Icon\";\nimport { IconButton } from \"@astryxdesign/core/IconButton\";\nimport { HStack } from \"@astryxdesign/core/Stack\";\nimport { Text } from \"@astryxdesign/core/Text\";\n\nimport { useUicTranslator } from \"../../i18n/useUicTranslator\";\n\nexport interface SelectionLabelProps {\n /** How many items are selected. 0 or less renders nothing. */\n count: number;\n /** Clears the selection. Without it, no clear button renders. */\n onClear?: () => void;\n /**\n * The text. @default the catalog's uic.SelectionLabel.selectedCount\n * (\"{count} selected\")\n */\n label?: string;\n /**\n * Accessible name and tooltip of the clear button.\n * @default the catalog's uic.SelectionLabel.clear (\"Deselect all\")\n */\n clearLabel?: string;\n /** Glyph of the clear button. @default the theme's `close` icon */\n clearIcon?: ReactNode;\n}\n\nexport function SelectionLabel({\n count,\n onClear,\n label,\n clearLabel,\n clearIcon,\n}: SelectionLabelProps) {\n const t = useUicTranslator();\n if (count <= 0) return null;\n const clearText = clearLabel ?? t(\"uic.SelectionLabel.clear\");\n return (\n <HStack gap={1} align=\"center\">\n <Text>{label ?? t(\"uic.SelectionLabel.selectedCount\", { count })}</Text>\n {onClear ? (\n <IconButton\n variant=\"ghost\"\n size=\"sm\"\n icon={clearIcon ?? <Icon icon=\"close\" />}\n label={clearText}\n tooltip={clearText}\n onClick={onClear}\n />\n ) : null}\n </HStack>\n );\n}\n\nSelectionLabel.displayName = \"SelectionLabel\";\n"],"mappings":";;;;;;;AAoCA,SAAgB,EAAe,EAC7B,UACA,YACA,UACA,eACA,gBACsB;CACtB,IAAM,IAAI,EAAiB;CAC3B,IAAI,KAAS,GAAG,OAAO;CACvB,IAAM,IAAY,KAAc,EAAE,0BAA0B;CAC5D,OACE,kBAAC,GAAD;EAAQ,KAAK;EAAG,OAAM;EAAtB,UAAA,CACE,kBAAC,GAAD,EAAA,UAAO,KAAS,EAAE,oCAAoC,EAAE,SAAM,CAAC,EAAQ,CAAA,GACtE,IACC,kBAAC,GAAD;GACE,SAAQ;GACR,MAAK;GACL,MAAM,KAAa,kBAAC,GAAD,EAAM,MAAK,QAAS,CAAA;GACvC,OAAO;GACP,SAAS;GACT,SAAS;EACV,CAAA,IACC,IACE;;AAEZ;AAEA,EAAe,cAAc"}
@@ -0,0 +1,10 @@
1
+ export declare const selectionLabelMessages: {
2
+ readonly "uic.SelectionLabel.selectedCount": {
3
+ readonly defaultMessage: "{count} selected";
4
+ readonly description: "How many items are selected, e.g. rows of a table; {count} is the number";
5
+ };
6
+ readonly "uic.SelectionLabel.clear": {
7
+ readonly defaultMessage: "Deselect all";
8
+ readonly description: "Button that clears the whole selection";
9
+ };
10
+ };
@@ -0,0 +1,16 @@
1
+ import { defineMessages as e } from "../../i18n/catalog.js";
2
+ //#region src/components/SelectionLabel/SelectionLabel.messages.ts
3
+ var t = e({
4
+ "uic.SelectionLabel.selectedCount": {
5
+ defaultMessage: "{count} selected",
6
+ description: "How many items are selected, e.g. rows of a table; {count} is the number"
7
+ },
8
+ "uic.SelectionLabel.clear": {
9
+ defaultMessage: "Deselect all",
10
+ description: "Button that clears the whole selection"
11
+ }
12
+ });
13
+ //#endregion
14
+ export { t as selectionLabelMessages };
15
+
16
+ //# sourceMappingURL=SelectionLabel.messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionLabel.messages.js","names":[],"sources":["../../../src/components/SelectionLabel/SelectionLabel.messages.ts"],"sourcesContent":["import { defineMessages } from \"../../i18n/catalog\";\n\nexport const selectionLabelMessages = defineMessages({\n \"uic.SelectionLabel.selectedCount\": {\n defaultMessage: \"{count} selected\",\n description:\n \"How many items are selected, e.g. rows of a table; {count} is the number\",\n },\n \"uic.SelectionLabel.clear\": {\n defaultMessage: \"Deselect all\",\n description: \"Button that clears the whole selection\",\n },\n});\n"],"mappings":";;AAEA,IAAa,IAAyB,EAAe;CACnD,oCAAoC;EAClC,gBAAgB;EAChB,aACE;CACJ;CACA,4BAA4B;EAC1B,gBAAgB;EAChB,aAAa;CACf;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SelectionLabel } from './SelectionLabel';
2
+ export type { SelectionLabelProps } from './SelectionLabel';
@@ -0,0 +1,2 @@
1
+ import { SelectionLabel as e } from "./SelectionLabel.js";
2
+ export { e as SelectionLabel };