@galaxy-io/dls 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/README.md +47 -50
  2. package/biome/index.json +74 -0
  3. package/biome/plugins/no-hex-literal.grit +20 -0
  4. package/biome/plugins/no-inline-style.grit +13 -0
  5. package/biome/plugins/no-margin.grit +9 -0
  6. package/biome/plugins/warn/no-hex-literal.grit +23 -0
  7. package/biome/plugins/warn/no-inline-style.grit +13 -0
  8. package/biome/plugins/warn/no-margin.grit +9 -0
  9. package/dist/a11y/FocusScope.d.ts +44 -0
  10. package/dist/a11y/FocusScope.js +229 -0
  11. package/dist/a11y/VisuallyHidden.d.ts +21 -0
  12. package/dist/a11y/VisuallyHidden.js +30 -0
  13. package/dist/avatar/Avatar.d.ts +56 -14
  14. package/dist/avatar/Avatar.js +250 -96
  15. package/dist/avatar/AvatarGroup.d.ts +43 -0
  16. package/dist/avatar/AvatarGroup.js +153 -0
  17. package/dist/backgrounds/GridBackground.d.ts +48 -0
  18. package/dist/backgrounds/GridBackground.js +146 -0
  19. package/dist/beacons/Beacon.d.ts +86 -22
  20. package/dist/beacons/Beacon.js +170 -47
  21. package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
  22. package/dist/brand/GalaxyFilamentWordmark.js +39 -0
  23. package/dist/brand/GalaxyLogomark.d.ts +26 -0
  24. package/dist/brand/GalaxyLogomark.js +41 -0
  25. package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
  26. package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
  27. package/dist/brand/GalaxyWordmark.d.ts +30 -0
  28. package/dist/brand/GalaxyWordmark.js +63 -0
  29. package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
  30. package/dist/brand/brandMark.d.ts +26 -0
  31. package/dist/brand/brandMark.js +35 -0
  32. package/dist/buttons/Button.d.ts +148 -59
  33. package/dist/buttons/Button.js +437 -227
  34. package/dist/buttons/ButtonGroup.d.ts +38 -0
  35. package/dist/buttons/ButtonGroup.js +68 -0
  36. package/dist/buttons/CopyButton.d.ts +77 -0
  37. package/dist/buttons/CopyButton.js +65 -0
  38. package/dist/charts/AreaChart.d.ts +49 -0
  39. package/dist/charts/AreaChart.js +31 -0
  40. package/dist/charts/BarChart.d.ts +54 -67
  41. package/dist/charts/BarChart.js +136 -116
  42. package/dist/charts/ChartAxis.d.ts +35 -40
  43. package/dist/charts/ChartAxis.js +114 -90
  44. package/dist/charts/ChartCategoryTargets.d.ts +12 -26
  45. package/dist/charts/ChartCategoryTargets.js +32 -20
  46. package/dist/charts/ChartFrame.d.ts +69 -116
  47. package/dist/charts/ChartFrame.js +253 -119
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +27 -48
  51. package/dist/charts/ChartLegend.js +206 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +33 -20
  54. package/dist/charts/ChartPrimitives.d.ts +50 -305
  55. package/dist/charts/ChartPrimitives.js +65 -413
  56. package/dist/charts/ChartTooltip.d.ts +20 -26
  57. package/dist/charts/ChartTooltip.js +77 -40
  58. package/dist/charts/Heatmap.d.ts +35 -0
  59. package/dist/charts/Heatmap.js +295 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +159 -117
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +149 -135
  64. package/dist/charts/Sparkline.d.ts +107 -0
  65. package/dist/charts/Sparkline.js +244 -0
  66. package/dist/charts/StatChart.d.ts +37 -13
  67. package/dist/charts/StatChart.js +82 -35
  68. package/dist/charts/barChartGeometry.d.ts +138 -86
  69. package/dist/charts/barChartGeometry.js +122 -101
  70. package/dist/charts/barChartLegend.d.ts +14 -18
  71. package/dist/charts/barChartLegend.js +18 -13
  72. package/dist/charts/chartFormat.d.ts +12 -18
  73. package/dist/charts/chartFormat.js +20 -52
  74. package/dist/charts/chartPalette.d.ts +33 -0
  75. package/dist/charts/chartPalette.js +68 -0
  76. package/dist/charts/chartScales.d.ts +41 -108
  77. package/dist/charts/chartScales.js +62 -128
  78. package/dist/charts/constants.d.ts +96 -256
  79. package/dist/charts/constants.js +105 -275
  80. package/dist/charts/heatmapGeometry.d.ts +95 -0
  81. package/dist/charts/heatmapGeometry.js +155 -0
  82. package/dist/charts/lineChartGeometry.d.ts +108 -58
  83. package/dist/charts/lineChartGeometry.js +120 -78
  84. package/dist/charts/pieChartGeometry.d.ts +66 -40
  85. package/dist/charts/pieChartGeometry.js +68 -38
  86. package/dist/charts/types.d.ts +197 -466
  87. package/dist/charts/types.js +55 -144
  88. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  89. package/dist/charts/useCartesianChartLayout.js +47 -32
  90. package/dist/charts/useChartDimensions.d.ts +19 -40
  91. package/dist/charts/useChartDimensions.js +40 -56
  92. package/dist/charts/useChartFormatters.d.ts +6 -15
  93. package/dist/charts/useChartFormatters.js +4 -9
  94. package/dist/charts/useChartInteraction.d.ts +47 -116
  95. package/dist/charts/useChartInteraction.js +95 -71
  96. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  97. package/dist/charts/useChartTooltipPosition.js +14 -5
  98. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  99. package/dist/charts/useSeriesColorResolver.js +19 -12
  100. package/dist/chips/Chip.d.ts +155 -44
  101. package/dist/chips/Chip.js +329 -155
  102. package/dist/chips/ChipGroup.d.ts +53 -0
  103. package/dist/chips/ChipGroup.js +98 -0
  104. package/dist/drawer/Drawer.d.ts +81 -17
  105. package/dist/drawer/Drawer.js +370 -65
  106. package/dist/dropdown/Dropdown.d.ts +80 -63
  107. package/dist/dropdown/Dropdown.js +127 -129
  108. package/dist/editor/CodeEditor.d.ts +119 -40
  109. package/dist/editor/CodeEditor.js +490 -400
  110. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  111. package/dist/editor/CodeEditorReactWidget.js +28 -21
  112. package/dist/feedback/Alert.d.ts +49 -0
  113. package/dist/feedback/Alert.js +172 -0
  114. package/dist/feedback/EmptyState.d.ts +39 -0
  115. package/dist/feedback/EmptyState.js +109 -0
  116. package/dist/feedback/ProgressBar.d.ts +125 -0
  117. package/dist/feedback/ProgressBar.js +183 -0
  118. package/dist/feedback/ProgressCircle.d.ts +99 -0
  119. package/dist/feedback/ProgressCircle.js +187 -0
  120. package/dist/feedback/Skeleton.d.ts +69 -0
  121. package/dist/feedback/Skeleton.js +130 -0
  122. package/dist/feedback/Spinner.d.ts +63 -0
  123. package/dist/feedback/Spinner.js +141 -0
  124. package/dist/fonts.css +70 -0
  125. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  126. package/dist/hooks/internal/useIsClient.js +14 -0
  127. package/dist/hooks/useClipboard.d.ts +19 -0
  128. package/dist/hooks/useClipboard.js +45 -0
  129. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  130. package/dist/hooks/useControlledOpenState.js +19 -0
  131. package/dist/hooks/useControlledState.d.ts +19 -0
  132. package/dist/hooks/useControlledState.js +22 -0
  133. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  134. package/dist/hooks/useDebouncedValue.js +33 -0
  135. package/dist/hooks/useDisclosure.d.ts +26 -0
  136. package/dist/hooks/useDisclosure.js +36 -0
  137. package/dist/hooks/useDismiss.d.ts +23 -27
  138. package/dist/hooks/useDismiss.js +39 -27
  139. package/dist/hooks/useElementClientSize.d.ts +10 -10
  140. package/dist/hooks/useElementClientSize.js +8 -11
  141. package/dist/hooks/useElementWidth.d.ts +6 -13
  142. package/dist/hooks/useElementWidth.js +6 -14
  143. package/dist/hooks/useField.d.ts +47 -0
  144. package/dist/hooks/useField.js +40 -0
  145. package/dist/hooks/useHotkey.d.ts +77 -0
  146. package/dist/hooks/useHotkey.js +246 -0
  147. package/dist/hooks/useIsMac.d.ts +12 -0
  148. package/dist/hooks/useIsMac.js +27 -0
  149. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  150. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  151. package/dist/hooks/useLocalStorage.d.ts +28 -0
  152. package/dist/hooks/useLocalStorage.js +145 -0
  153. package/dist/hooks/useMediaQuery.d.ts +11 -0
  154. package/dist/hooks/useMediaQuery.js +23 -0
  155. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  156. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  157. package/dist/hooks/useResize.d.ts +42 -62
  158. package/dist/hooks/useResize.js +43 -31
  159. package/dist/icons/Icon.d.ts +64 -37
  160. package/dist/icons/Icon.js +96 -37
  161. package/dist/icons/internal/IconSlot.d.ts +10 -0
  162. package/dist/icons/internal/IconSlot.js +32 -0
  163. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  164. package/dist/inputs/CheckboxGroup.js +183 -0
  165. package/dist/inputs/CheckboxInput.d.ts +98 -28
  166. package/dist/inputs/CheckboxInput.js +218 -88
  167. package/dist/inputs/ColorInput.d.ts +115 -29
  168. package/dist/inputs/ColorInput.js +748 -326
  169. package/dist/inputs/CopyInput.d.ts +49 -20
  170. package/dist/inputs/CopyInput.js +57 -49
  171. package/dist/inputs/CronInput.d.ts +94 -0
  172. package/dist/inputs/CronInput.js +618 -0
  173. package/dist/inputs/DateInput.d.ts +175 -28
  174. package/dist/inputs/DateInput.js +1109 -451
  175. package/dist/inputs/DurationInput.d.ts +101 -0
  176. package/dist/inputs/DurationInput.js +441 -0
  177. package/dist/inputs/Field.d.ts +75 -0
  178. package/dist/inputs/Field.js +247 -0
  179. package/dist/inputs/Fieldset.d.ts +53 -0
  180. package/dist/inputs/Fieldset.js +149 -0
  181. package/dist/inputs/FileInput.d.ts +110 -0
  182. package/dist/inputs/FileInput.js +476 -0
  183. package/dist/inputs/Input.d.ts +148 -187
  184. package/dist/inputs/Input.js +339 -259
  185. package/dist/inputs/KeyValueInput.d.ts +120 -0
  186. package/dist/inputs/KeyValueInput.js +383 -0
  187. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  188. package/dist/inputs/MultiSelectInput.js +175 -559
  189. package/dist/inputs/NumberInput.d.ts +65 -9
  190. package/dist/inputs/NumberInput.js +197 -40
  191. package/dist/inputs/PasswordInput.d.ts +17 -12
  192. package/dist/inputs/PasswordInput.js +33 -33
  193. package/dist/inputs/PinInput.d.ts +117 -0
  194. package/dist/inputs/PinInput.js +364 -0
  195. package/dist/inputs/RadioGroup.d.ts +115 -0
  196. package/dist/inputs/RadioGroup.js +179 -0
  197. package/dist/inputs/RadioInput.d.ts +87 -24
  198. package/dist/inputs/RadioInput.js +182 -95
  199. package/dist/inputs/SearchInput.d.ts +66 -0
  200. package/dist/inputs/SearchInput.js +156 -0
  201. package/dist/inputs/SelectInput.d.ts +195 -55
  202. package/dist/inputs/SelectInput.js +1308 -446
  203. package/dist/inputs/SliderInput.d.ts +150 -30
  204. package/dist/inputs/SliderInput.js +441 -186
  205. package/dist/inputs/SwitchInput.d.ts +109 -0
  206. package/dist/inputs/SwitchInput.js +248 -0
  207. package/dist/inputs/TagInput.d.ts +117 -0
  208. package/dist/inputs/TagInput.js +408 -0
  209. package/dist/inputs/TextAreaInput.d.ts +146 -44
  210. package/dist/inputs/TextAreaInput.js +292 -198
  211. package/dist/inputs/TextInput.d.ts +4 -13
  212. package/dist/inputs/TextInput.js +13 -48
  213. package/dist/inputs/ToggleInput.d.ts +120 -22
  214. package/dist/inputs/ToggleInput.js +262 -116
  215. package/dist/inputs/internal/bareField.d.ts +18 -0
  216. package/dist/inputs/internal/bareField.js +38 -0
  217. package/dist/inputs/internal/devWarn.d.ts +7 -0
  218. package/dist/inputs/internal/devWarn.js +30 -0
  219. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  220. package/dist/inputs/internal/fieldFrame.js +64 -0
  221. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  222. package/dist/inputs/internal/fieldWiring.js +38 -0
  223. package/dist/inputs/internal/innerButton.d.ts +2 -0
  224. package/dist/inputs/internal/innerButton.js +24 -0
  225. package/dist/inputs/internal/ownField.d.ts +45 -0
  226. package/dist/inputs/internal/ownField.js +58 -0
  227. package/dist/inputs/internal/predicates.d.ts +9 -0
  228. package/dist/inputs/internal/predicates.js +11 -0
  229. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  230. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  231. package/dist/json/JsonViewer.d.ts +62 -0
  232. package/dist/json/JsonViewer.js +483 -0
  233. package/dist/layout/Box.d.ts +87 -0
  234. package/dist/layout/Box.js +109 -0
  235. package/dist/layout/Divider.d.ts +25 -0
  236. package/dist/layout/Divider.js +70 -0
  237. package/dist/layout/Flex.d.ts +139 -0
  238. package/dist/layout/Flex.js +165 -0
  239. package/dist/layout/FlexItem.d.ts +72 -0
  240. package/dist/layout/FlexItem.js +84 -0
  241. package/dist/layout/Grid.d.ts +140 -0
  242. package/dist/layout/Grid.js +178 -0
  243. package/dist/layout/Portal.d.ts +29 -0
  244. package/dist/layout/Portal.js +27 -0
  245. package/dist/layout/ResizablePanels.d.ts +88 -0
  246. package/dist/layout/ResizablePanels.js +198 -0
  247. package/dist/layout/ResizeHandle.d.ts +48 -0
  248. package/dist/layout/ResizeHandle.js +143 -0
  249. package/dist/layout/ScrollArea.d.ts +30 -0
  250. package/dist/layout/ScrollArea.js +138 -0
  251. package/dist/links/Link.d.ts +101 -1
  252. package/dist/links/Link.js +166 -4
  253. package/dist/lists/BulletedList.d.ts +25 -7
  254. package/dist/lists/BulletedList.js +72 -27
  255. package/dist/lists/DescriptionList.d.ts +91 -0
  256. package/dist/lists/DescriptionList.js +147 -0
  257. package/dist/menu/ContextMenu.d.ts +64 -0
  258. package/dist/menu/ContextMenu.js +34 -0
  259. package/dist/menu/Menu.d.ts +280 -0
  260. package/dist/menu/Menu.js +1003 -0
  261. package/dist/modal/ConfirmDialog.d.ts +55 -0
  262. package/dist/modal/ConfirmDialog.js +151 -0
  263. package/dist/modal/Modal.d.ts +64 -14
  264. package/dist/modal/Modal.js +189 -48
  265. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  266. package/dist/navigation/Breadcrumbs.js +243 -0
  267. package/dist/navigation/CommandPalette.d.ts +83 -0
  268. package/dist/navigation/CommandPalette.js +509 -0
  269. package/dist/navigation/Pagination.d.ts +87 -0
  270. package/dist/navigation/Pagination.js +300 -0
  271. package/dist/navigation/SidebarNav.d.ts +107 -0
  272. package/dist/navigation/SidebarNav.js +341 -0
  273. package/dist/navigation/Stepper.d.ts +52 -0
  274. package/dist/navigation/Stepper.js +207 -0
  275. package/dist/navigation/Tabs.d.ts +113 -0
  276. package/dist/navigation/Tabs.js +543 -0
  277. package/dist/navigation/Topbar.d.ts +20 -0
  278. package/dist/navigation/Topbar.js +62 -0
  279. package/dist/overlay/OverlayProvider.d.ts +28 -32
  280. package/dist/overlay/OverlayProvider.js +42 -93
  281. package/dist/overlay/useOverlay.d.ts +88 -12
  282. package/dist/overlay/useOverlay.js +220 -43
  283. package/dist/overlays/Popover.d.ts +114 -0
  284. package/dist/overlays/Popover.js +389 -0
  285. package/dist/shapes/Circle.d.ts +84 -8
  286. package/dist/shapes/Circle.js +122 -20
  287. package/dist/shapes/Square.d.ts +84 -8
  288. package/dist/shapes/Square.js +123 -20
  289. package/dist/styles/mixins.d.ts +35 -0
  290. package/dist/styles/mixins.js +60 -0
  291. package/dist/styles.css +1 -202
  292. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  293. package/dist/table/InfiniteSpreadsheet.js +762 -225
  294. package/dist/table/InfiniteTable.d.ts +116 -14
  295. package/dist/table/InfiniteTable.js +287 -429
  296. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  297. package/dist/table/SpreadsheetCellEditor.js +163 -84
  298. package/dist/table/TableCore.d.ts +252 -0
  299. package/dist/table/TableCore.js +1077 -0
  300. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  301. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  302. package/dist/table/types.d.ts +66 -244
  303. package/dist/table/types.js +0 -51
  304. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  305. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  306. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  307. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  308. package/dist/table/useTableColumnLayout.d.ts +90 -25
  309. package/dist/table/useTableColumnLayout.js +255 -50
  310. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  311. package/dist/table/useTableKeyboardNavigation.js +95 -71
  312. package/dist/table/useTableRowSelection.d.ts +24 -25
  313. package/dist/table/useTableRowSelection.js +57 -84
  314. package/dist/table/useTableVirtualizer.d.ts +20 -0
  315. package/dist/table/useTableVirtualizer.js +48 -0
  316. package/dist/text/Bold.d.ts +5 -6
  317. package/dist/text/Bold.js +16 -15
  318. package/dist/text/Code.d.ts +5 -6
  319. package/dist/text/Code.js +16 -25
  320. package/dist/text/CodeBlock.d.ts +77 -0
  321. package/dist/text/CodeBlock.js +373 -0
  322. package/dist/text/EditableText.d.ts +55 -15
  323. package/dist/text/EditableText.js +153 -135
  324. package/dist/text/Ellipsis.d.ts +34 -8
  325. package/dist/text/Ellipsis.js +55 -23
  326. package/dist/text/Kbd.d.ts +72 -0
  327. package/dist/text/Kbd.js +284 -0
  328. package/dist/text/MarkdownText.d.ts +27 -10
  329. package/dist/text/MarkdownText.js +317 -300
  330. package/dist/text/RequiredMarker.d.ts +17 -5
  331. package/dist/text/RequiredMarker.js +34 -36
  332. package/dist/text/Selectable.d.ts +5 -6
  333. package/dist/text/Selectable.js +16 -13
  334. package/dist/text/Span.d.ts +82 -0
  335. package/dist/text/Span.js +115 -0
  336. package/dist/text/Text.d.ts +128 -41
  337. package/dist/text/Text.js +209 -76
  338. package/dist/theme/GalaxyProvider.d.ts +75 -0
  339. package/dist/theme/GalaxyProvider.js +223 -0
  340. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  341. package/dist/theme/ThemeSwitcher.js +94 -0
  342. package/dist/theme/enums.d.ts +118 -0
  343. package/dist/theme/enums.js +144 -0
  344. package/dist/theme/tokens/dark.d.ts +2 -0
  345. package/dist/theme/tokens/dark.js +275 -0
  346. package/dist/theme/tokens/generate.d.ts +15 -0
  347. package/dist/theme/tokens/generate.js +47 -0
  348. package/dist/theme/tokens/light.d.ts +2 -0
  349. package/dist/theme/tokens/light.js +274 -0
  350. package/dist/theme/tokens/palette.d.ts +14 -0
  351. package/dist/theme/tokens/palette.js +153 -0
  352. package/dist/theme/tokens/scales.d.ts +26 -0
  353. package/dist/theme/tokens/scales.js +154 -0
  354. package/dist/theme/tokens/t.d.ts +3 -0
  355. package/dist/theme/tokens/t.js +25 -0
  356. package/dist/theme/tokens/types.d.ts +189 -0
  357. package/dist/theme/tokens/types.js +0 -0
  358. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  359. package/dist/theme/useGalaxyTheme.js +36 -0
  360. package/dist/theme/useInverseScope.d.ts +18 -0
  361. package/dist/theme/useInverseScope.js +33 -0
  362. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  363. package/dist/three/GalaxyLogomark3D.js +134 -0
  364. package/dist/three/assets/galaxy-logomark.js +4 -0
  365. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  366. package/dist/three/galaxyLogomark3DScene.js +165 -0
  367. package/dist/timeline/Timeline.d.ts +99 -0
  368. package/dist/timeline/Timeline.js +269 -0
  369. package/dist/toast/Toast.d.ts +43 -19
  370. package/dist/toast/Toast.js +130 -89
  371. package/dist/toast/ToastProvider.d.ts +23 -23
  372. package/dist/toast/ToastProvider.js +298 -101
  373. package/dist/toast/ToastViewport.d.ts +12 -0
  374. package/dist/toast/ToastViewport.js +210 -0
  375. package/dist/toast/useToast.d.ts +139 -5
  376. package/dist/toast/useToast.js +15 -13
  377. package/dist/tokens.css +654 -0
  378. package/dist/tooltip/Tooltip.d.ts +64 -44
  379. package/dist/tooltip/Tooltip.js +280 -73
  380. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  381. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  382. package/dist/transform/Fade.d.ts +33 -11
  383. package/dist/transform/Fade.js +71 -19
  384. package/dist/transform/Flasher.d.ts +25 -0
  385. package/dist/transform/Flasher.js +39 -0
  386. package/dist/transform/Rotate.d.ts +24 -12
  387. package/dist/transform/Rotate.js +36 -22
  388. package/dist/transform/ScaleFade.d.ts +36 -11
  389. package/dist/transform/ScaleFade.js +86 -28
  390. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  391. package/dist/transform/internal/CollapseMotion.js +65 -0
  392. package/dist/tree/Tree.d.ts +85 -0
  393. package/dist/tree/Tree.js +387 -0
  394. package/dist/tree/treeRow.d.ts +39 -0
  395. package/dist/tree/treeRow.js +75 -0
  396. package/dist/utils/colors.d.ts +46 -13
  397. package/dist/utils/colors.js +92 -34
  398. package/dist/utils/css.d.ts +23 -0
  399. package/dist/utils/css.js +30 -0
  400. package/dist/utils/format.d.ts +58 -0
  401. package/dist/utils/format.js +220 -0
  402. package/dist/vite/index.d.ts +16 -0
  403. package/dist/vite/index.js +52 -0
  404. package/dist/widget/Widget.d.ts +164 -48
  405. package/dist/widget/Widget.js +335 -96
  406. package/dist/widget/WidgetGroup.d.ts +36 -0
  407. package/dist/widget/WidgetGroup.js +103 -0
  408. package/package.json +851 -157
  409. package/dist/accordion/Accordion.d.ts +0 -54
  410. package/dist/accordion/Accordion.js +0 -183
  411. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  412. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  413. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  415. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  416. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  417. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  419. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  420. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  421. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  423. package/dist/assets/models/galaxy-animation.js +0 -136666
  424. package/dist/assets/models/galaxy-logomark.js +0 -4
  425. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  426. package/dist/avatar/AvatarShimmer.js +0 -22
  427. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  428. package/dist/backgrounds/CellGridBackground.js +0 -44
  429. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  430. package/dist/backgrounds/CrossGridBackground.js +0 -49
  431. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  432. package/dist/backgrounds/DotGridBackground.js +0 -47
  433. package/dist/badge/Badge.d.ts +0 -42
  434. package/dist/badge/Badge.js +0 -99
  435. package/dist/charts/ChartEmptyState.d.ts +0 -17
  436. package/dist/charts/ChartEmptyState.js +0 -29
  437. package/dist/charts/ProgressBar.d.ts +0 -29
  438. package/dist/charts/ProgressBar.js +0 -65
  439. package/dist/charts/chartTheme.d.ts +0 -18
  440. package/dist/charts/chartTheme.js +0 -26
  441. package/dist/containers/FlexItem.d.ts +0 -50
  442. package/dist/containers/FlexItem.js +0 -91
  443. package/dist/containers/FlexWrapper.d.ts +0 -96
  444. package/dist/containers/FlexWrapper.js +0 -143
  445. package/dist/containers/GridWrapper.d.ts +0 -79
  446. package/dist/containers/GridWrapper.js +0 -125
  447. package/dist/containers/Spacing.d.ts +0 -23
  448. package/dist/containers/Spacing.js +0 -59
  449. package/dist/containers/Wrapper.d.ts +0 -26
  450. package/dist/containers/Wrapper.js +0 -54
  451. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  452. package/dist/dividers/HorizontalDivider.js +0 -39
  453. package/dist/dividers/VerticalDivider.d.ts +0 -6
  454. package/dist/dividers/VerticalDivider.js +0 -21
  455. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  456. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  457. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  458. package/dist/icons/GalaxyLogomark.js +0 -27
  459. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  460. package/dist/icons/GalaxyLogomark3D.js +0 -319
  461. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  462. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  463. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  464. package/dist/icons/GalaxyWordmark.js +0 -25
  465. package/dist/inputs/MultiTextInput.d.ts +0 -32
  466. package/dist/inputs/MultiTextInput.js +0 -180
  467. package/dist/inputs/SwitcherInput.d.ts +0 -30
  468. package/dist/inputs/SwitcherInput.js +0 -81
  469. package/dist/inputs/hooks.d.ts +0 -10
  470. package/dist/inputs/hooks.js +0 -22
  471. package/dist/overlay/constants.d.ts +0 -28
  472. package/dist/overlay/constants.js +0 -37
  473. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  474. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  475. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  476. package/dist/resizable/VerticalResizeHandle.js +0 -39
  477. package/dist/table/SpreadsheetCell.d.ts +0 -21
  478. package/dist/table/SpreadsheetCell.js +0 -71
  479. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  480. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  481. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  482. package/dist/table/SpreadsheetMenuItem.js +0 -33
  483. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  484. package/dist/table/SpreadsheetPrimitives.js +0 -105
  485. package/dist/table/SpreadsheetRow.d.ts +0 -33
  486. package/dist/table/SpreadsheetRow.js +0 -73
  487. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  488. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  489. package/dist/table/TableExpandCell.d.ts +0 -11
  490. package/dist/table/TableExpandCell.js +0 -24
  491. package/dist/table/TableExpandedRow.d.ts +0 -16
  492. package/dist/table/TableExpandedRow.js +0 -77
  493. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  494. package/dist/table/TableHeaderCellContent.js +0 -48
  495. package/dist/table/TablePrimitives.d.ts +0 -313
  496. package/dist/table/TablePrimitives.js +0 -302
  497. package/dist/table/TableSelectCell.d.ts +0 -18
  498. package/dist/table/TableSelectCell.js +0 -27
  499. package/dist/table/TableStatusRow.d.ts +0 -18
  500. package/dist/table/TableStatusRow.js +0 -50
  501. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  502. package/dist/table/useSpreadsheetEditing.js +0 -41
  503. package/dist/table/useTableColumnResize.d.ts +0 -38
  504. package/dist/table/useTableColumnResize.js +0 -155
  505. package/dist/table/useTableRowExpansion.d.ts +0 -24
  506. package/dist/table/useTableRowExpansion.js +0 -62
  507. package/dist/table/utils.d.ts +0 -50
  508. package/dist/table/utils.js +0 -78
  509. package/dist/text/HotKeys.d.ts +0 -30
  510. package/dist/text/HotKeys.js +0 -74
  511. package/dist/text/Paragraph.d.ts +0 -33
  512. package/dist/text/Paragraph.js +0 -83
  513. package/dist/text/TextShimmer.d.ts +0 -14
  514. package/dist/text/TextShimmer.js +0 -34
  515. package/dist/theme/GalaxyTheme.d.ts +0 -67
  516. package/dist/theme/GalaxyTheme.js +0 -119
  517. package/dist/theme/constants.d.ts +0 -8
  518. package/dist/theme/constants.js +0 -38
  519. package/dist/theme/index.d.ts +0 -6
  520. package/dist/theme/index.js +0 -7
  521. package/dist/theme/types.d.ts +0 -195
  522. package/dist/theme/types.js +0 -10
  523. package/dist/theme/typography.d.ts +0 -2
  524. package/dist/theme/typography.js +0 -73
  525. package/dist/theme/variants/dark.d.ts +0 -2
  526. package/dist/theme/variants/dark.js +0 -125
  527. package/dist/theme/variants/light.d.ts +0 -2
  528. package/dist/theme/variants/light.js +0 -125
  529. package/dist/toast/ToastContainer.d.ts +0 -10
  530. package/dist/toast/ToastContainer.js +0 -31
  531. package/dist/toast/ToastWrapper.d.ts +0 -6
  532. package/dist/toast/ToastWrapper.js +0 -27
  533. package/dist/transform/Flash.d.ts +0 -7
  534. package/dist/transform/Flash.js +0 -18
  535. package/dist/transform/Spin.d.ts +0 -14
  536. package/dist/transform/Spin.js +0 -25
  537. package/dist/utils/linaria.d.ts +0 -1
  538. package/dist/utils/linaria.js +0 -8
@@ -0,0 +1,183 @@
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import { formatPercent } from "../utils/format.js";
3
+ /* empty css */
4
+ import { styled } from "@linaria/react";
5
+ import { forwardRef, useId } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { cx } from "@linaria/core";
8
+ //#region src/feedback/ProgressBar.tsx
9
+ /**
10
+ * The horizontal progress bar: a thin track that fills from the start edge to show how much of a
11
+ * measured task is done (a sync, an upload, an onboarding checklist, a quota). An optional visible
12
+ * `label` sits above the bar and `shouldShowValue` puts the formatted percentage at the end of that
13
+ * line. `isIndeterminate` sweeps a segment along the track while the total is not known yet.
14
+ *
15
+ * The bar sibling of `ProgressCircle`, with the same props (`value`, `label` / `ariaLabel`, `size`,
16
+ * `variant` / `color`, `shouldShowValue`), defaults and ARIA: a `role="progressbar"`, not a live
17
+ * region. Only the bar has `isIndeterminate` (a ring with no known value is `Spinner`). The value
18
+ * is one unitless custom property (`--gx-progress-bar-value`) read as the fill's `scaleX`.
19
+ *
20
+ * Replaces 1.x `charts/ProgressBar` (`percentage` → `value`, `height` → `size`; `noSliverOnZero`
21
+ * and `noAnimation` are gone; a name is now required).
22
+ */
23
+ /** Canonical rungs; the member names the rung of the text the bar sits with. */
24
+ var ProgressBarSize = /* @__PURE__ */ function(ProgressBarSize) {
25
+ /** 2px track, caption label. */
26
+ ProgressBarSize["X_SMALL"] = "X_SMALL";
27
+ /** 4px track, body_sm label. */
28
+ ProgressBarSize["SMALL"] = "SMALL";
29
+ /** 4px track, body_md label. The default (1.x `height` 4). */
30
+ ProgressBarSize["MEDIUM"] = "MEDIUM";
31
+ /** 6px track, body_lg label. */
32
+ ProgressBarSize["LARGE"] = "LARGE";
33
+ /** 8px track, body_lg label. */
34
+ ProgressBarSize["X_LARGE"] = "X_LARGE";
35
+ return ProgressBarSize;
36
+ }({});
37
+ /** Fill color (Constitution V-A color set, subset; the same members as `ProgressCircleVariant`). */
38
+ var ProgressBarVariant = /* @__PURE__ */ function(ProgressBarVariant) {
39
+ /** `text.primary`. The default. */
40
+ ProgressBarVariant["PRIMARY"] = "PRIMARY";
41
+ /** `text.secondary`. */
42
+ ProgressBarVariant["SECONDARY"] = "SECONDARY";
43
+ /** `text.tertiary`. */
44
+ ProgressBarVariant["TERTIARY"] = "TERTIARY";
45
+ /** `text.success`: healthy, on track, complete. */
46
+ ProgressBarVariant["SUCCESS"] = "SUCCESS";
47
+ /** `text.warning`: at risk, nearing a limit. */
48
+ ProgressBarVariant["WARNING"] = "WARNING";
49
+ /** `text.error`: failing, over a limit. */
50
+ ProgressBarVariant["ERROR"] = "ERROR";
51
+ return ProgressBarVariant;
52
+ }({});
53
+ /** A block that spans its parent: the label line over the track. */
54
+ var Root = /*#__PURE__*/ styled("div")({
55
+ name: "Root",
56
+ class: "gx-ProgressBar-r12nr8gl",
57
+ propsAsIs: false
58
+ });
59
+ /** The label at the start, the value at the end of the same line. */
60
+ var Header = /*#__PURE__*/ styled("div")({
61
+ name: "Header",
62
+ class: "gx-ProgressBar-Header-hesav0t",
63
+ propsAsIs: false
64
+ });
65
+ /**
66
+ * The 1.x track, from tokens; it clips the fill's corners. The hairline is drawn by a layer under
67
+ * the fill instead of the track's own border: browsers round a 0.5px border up to one device pixel,
68
+ * which on a 1x screen would leave no room for the fill inside a 2px track.
69
+ */
70
+ var Track = /*#__PURE__*/ styled("div")({
71
+ name: "Track",
72
+ class: "gx-ProgressBar-Track-t1cxqn1j",
73
+ propsAsIs: false
74
+ });
75
+ /** A full-width block scaled to the value: paint-only motion, eased at `duration.base`. */
76
+ var Fill = /*#__PURE__*/ styled("div")({
77
+ name: "Fill",
78
+ class: "gx-ProgressBar-Fill-f1xq51tl",
79
+ propsAsIs: false
80
+ });
81
+ /**
82
+ * A third-width segment that sweeps the track every `duration.base × 10` (1.5s). At rest (reduced
83
+ * motion) it sits in the middle third, which cannot be read as "a third done". The keyframes are
84
+ * global, so the name is `gx-` prefixed.
85
+ */
86
+ var INDETERMINATE_CSS = "gx-ProgressBar-INDETERMINATE_CSS-ifwzsb";
87
+ /** Puts the value in the second column, so it sits at the end of the line with or without a label. */
88
+ var VALUE_CSS = "gx-ProgressBar-VALUE_CSS-v1tz8l3d";
89
+ /** Sets `color` on the root; the fill reads `currentColor`. The label and value stay secondary. */
90
+ var PROGRESS_BAR_VARIANT_TO_CSS_MAP = {
91
+ ["PRIMARY"]: "gx-ProgressBar-PRIMARY-p1mmftma",
92
+ ["SECONDARY"]: "gx-ProgressBar-SECONDARY-szuthhn",
93
+ ["TERTIARY"]: "gx-ProgressBar-TERTIARY-t8vjpd0",
94
+ ["SUCCESS"]: "gx-ProgressBar-SUCCESS-sgk7jdy",
95
+ ["WARNING"]: "gx-ProgressBar-WARNING-w1w2olvo",
96
+ ["ERROR"]: "gx-ProgressBar-ERROR-e1qre8wf"
97
+ };
98
+ /** Categorical `color`: `text.<family>` on the root, the way a status variant renders. */
99
+ var PROGRESS_BAR_COLOR_TO_CSS_MAP = {
100
+ red: "gx-ProgressBar-red-reiy0oi",
101
+ orange: "gx-ProgressBar-orange-o1epzlep",
102
+ amber: "gx-ProgressBar-amber-aasg8k0",
103
+ yellow: "gx-ProgressBar-yellow-y1kkinrj",
104
+ lime: "gx-ProgressBar-lime-lcvje08",
105
+ green: "gx-ProgressBar-green-gb5j54q",
106
+ emerald: "gx-ProgressBar-emerald-elbvi15",
107
+ teal: "gx-ProgressBar-teal-twaqggx",
108
+ cyan: "gx-ProgressBar-cyan-c6fb74o",
109
+ sky: "gx-ProgressBar-sky-s13m8tjk",
110
+ blue: "gx-ProgressBar-blue-b195062s",
111
+ indigo: "gx-ProgressBar-indigo-i1tjg1hb",
112
+ violet: "gx-ProgressBar-violet-v1hc7niq",
113
+ purple: "gx-ProgressBar-purple-p31v6jj",
114
+ fuchsia: "gx-ProgressBar-fuchsia-f1idth2y",
115
+ pink: "gx-ProgressBar-pink-psz64tr",
116
+ rose: "gx-ProgressBar-rose-r121jrhu"
117
+ };
118
+ /** Track thickness and the gap between the label line and the track. */
119
+ var PROGRESS_BAR_SIZE_TO_CSS_MAP = {
120
+ ["X_SMALL"]: "gx-ProgressBar-X_SMALL-xoqk5ch",
121
+ ["SMALL"]: "gx-ProgressBar-SMALL-s1luqk3n",
122
+ ["MEDIUM"]: "gx-ProgressBar-MEDIUM-m1hbdj3k",
123
+ ["LARGE"]: "gx-ProgressBar-LARGE-l17skgql",
124
+ ["X_LARGE"]: "gx-ProgressBar-X_LARGE-x1i0eise"
125
+ };
126
+ /** The label and value are the rung's text step (the ProgressCircle table). */
127
+ var PROGRESS_BAR_SIZE_TO_TEXT_SIZE_MAP = {
128
+ ["X_SMALL"]: TextSize.CAPTION,
129
+ ["SMALL"]: TextSize.BODY_SM,
130
+ ["MEDIUM"]: TextSize.BODY_MD,
131
+ ["LARGE"]: TextSize.BODY_LG,
132
+ ["X_LARGE"]: TextSize.BODY_LG
133
+ };
134
+ /** 0–100; `NaN` → 0. */
135
+ function clampPercent(value) {
136
+ if (Number.isNaN(value)) return 0;
137
+ return Math.min(100, Math.max(0, value));
138
+ }
139
+ /** A horizontal progress bar with an optional label line. */
140
+ var ProgressBar = forwardRef(function ProgressBar({ value, isIndeterminate = false, shouldShowValue = false, variant = "PRIMARY", color, size = "MEDIUM", label, ariaLabel, className, style, ...rest }, ref) {
141
+ const labelId = useId();
142
+ const clamped = isIndeterminate || value === void 0 ? 0 : clampPercent(value);
143
+ const hasLabel = Boolean(label);
144
+ const isValueShown = shouldShowValue && !isIndeterminate;
145
+ const textSize = PROGRESS_BAR_SIZE_TO_TEXT_SIZE_MAP[size];
146
+ const percentText = formatPercent(clamped / 100);
147
+ const variables = { "--gx-progress-bar-value": String(clamped) };
148
+ return /* @__PURE__ */ jsxs(Root, {
149
+ ...rest,
150
+ ref,
151
+ role: "progressbar",
152
+ "aria-valuemin": 0,
153
+ "aria-valuemax": 100,
154
+ "aria-valuenow": isIndeterminate ? void 0 : Math.round(clamped),
155
+ "aria-valuetext": isIndeterminate ? void 0 : rest["aria-valuetext"] ?? percentText,
156
+ "aria-label": hasLabel ? rest["aria-label"] : ariaLabel ?? rest["aria-label"],
157
+ "aria-labelledby": hasLabel ? labelId : rest["aria-labelledby"],
158
+ className: cx(color !== void 0 ? PROGRESS_BAR_COLOR_TO_CSS_MAP[color] : PROGRESS_BAR_VARIANT_TO_CSS_MAP[variant], PROGRESS_BAR_SIZE_TO_CSS_MAP[size], className),
159
+ style: {
160
+ ...variables,
161
+ ...style
162
+ },
163
+ children: [(hasLabel || isValueShown) && /* @__PURE__ */ jsxs(Header, { children: [hasLabel && /* @__PURE__ */ jsx(Text, {
164
+ as: "span",
165
+ id: labelId,
166
+ size: textSize,
167
+ variant: TextVariant.SECONDARY,
168
+ lineClamp: 1,
169
+ children: label
170
+ }), isValueShown && /* @__PURE__ */ jsx(Text, {
171
+ as: "span",
172
+ size: textSize,
173
+ variant: TextVariant.SECONDARY,
174
+ isTabular: true,
175
+ "aria-hidden": true,
176
+ className: VALUE_CSS,
177
+ children: percentText
178
+ })] }), /* @__PURE__ */ jsx(Track, { children: /* @__PURE__ */ jsx(Fill, { className: cx(isIndeterminate && INDETERMINATE_CSS) }) })]
179
+ });
180
+ });
181
+ ProgressBar.displayName = "ProgressBar";
182
+ //#endregion
183
+ export { ProgressBarSize, ProgressBarVariant, ProgressBar as default };
@@ -0,0 +1,99 @@
1
+ import { type AriaAttributes, type CSSProperties } from "react";
2
+ import type { PaletteColor } from "../theme/tokens/types.js";
3
+ /** Canonical rungs; the member names the control rung the ring sits in. */
4
+ export declare enum ProgressCircleSize {
5
+ /** 20px rung: 12px ring, caption label. */
6
+ X_SMALL = "X_SMALL",
7
+ /** 24px rung: 12px ring, body_sm label. */
8
+ SMALL = "SMALL",
9
+ /** 32px rung: 14px ring, body_md label. The default. */
10
+ MEDIUM = "MEDIUM",
11
+ /** 36px rung: 14px ring, body_lg label. */
12
+ LARGE = "LARGE",
13
+ /** 40px rung: 16px ring, body_lg label. */
14
+ X_LARGE = "X_LARGE"
15
+ }
16
+ /** Arc color (Constitution V-A color set, subset; the same members as `ProgressBarVariant`). */
17
+ export declare enum ProgressCircleVariant {
18
+ /** `text.primary`. The default. */
19
+ PRIMARY = "PRIMARY",
20
+ /** `text.secondary`. */
21
+ SECONDARY = "SECONDARY",
22
+ /** `text.tertiary`. */
23
+ TERTIARY = "TERTIARY",
24
+ /** `text.success`: healthy, on track, complete. */
25
+ SUCCESS = "SUCCESS",
26
+ /** `text.warning`: at risk, nearing a limit. */
27
+ WARNING = "WARNING",
28
+ /** `text.error`: failing, over a limit. */
29
+ ERROR = "ERROR"
30
+ }
31
+ /** The value, the size and the shown value (everything except the color pair, the name pair and the passthrough). */
32
+ interface ProgressCircleBaseProps extends AriaAttributes {
33
+ /** Progress from 0 to 100. Clamped to that range; `NaN` counts as 0. */
34
+ value: number;
35
+ /**
36
+ * The control rung the ring sits in: the ring is that rung's icon size (12 / 12 / 14 / 14 / 16px, the same footprint as `Spinner`), and `label` and the value take its type step (`caption` / `body_sm` / `body_md` / `body_lg` / `body_lg`).
37
+ * @default ProgressCircleSize.MEDIUM
38
+ */
39
+ size?: ProgressCircleSize;
40
+ /**
41
+ * Shows the formatted percentage ("40%") after the ring and the label.
42
+ * @default false
43
+ */
44
+ shouldShowValue?: boolean;
45
+ }
46
+ /** A ring colored by meaning (`variant`), or the default `PRIMARY`. */
47
+ interface ProgressCircleVariantProps {
48
+ /**
49
+ * Color of the arc: a neutral step, or a status when the progress means something (healthy, at risk, failing). Not with `color`.
50
+ * @default ProgressCircleVariant.PRIMARY
51
+ */
52
+ variant?: ProgressCircleVariant;
53
+ /** Categorical palette family. Not with `variant`. */
54
+ color?: undefined;
55
+ }
56
+ /** A ring colored by category (`color`). */
57
+ interface ProgressCircleColorProps {
58
+ /**
59
+ * Color of the arc: a neutral step, or a status when the progress means something (healthy, at risk, failing). Not with `color`.
60
+ * @default ProgressCircleVariant.PRIMARY
61
+ */
62
+ variant?: undefined;
63
+ /**
64
+ * Categorical palette family (`"blue"`, `"violet"`, …): the arc takes `text.<family>`, the way a
65
+ * status variant renders. For a category's color (a source type, a team); meanings take
66
+ * `variant`. Not with `variant`.
67
+ */
68
+ color: PaletteColor;
69
+ }
70
+ /** The passthrough, kept last so `className` and `style` close the props table. */
71
+ interface ProgressCirclePassthroughProps {
72
+ /** DOM id on the root `<span>`. */
73
+ id?: string;
74
+ /** Any `data-*` attribute, forwarded to the root `<span>`. */
75
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
76
+ /** Extra class on the root `<span>`. */
77
+ className?: string;
78
+ /** Inline style on the root `<span>`; only for setting CSS custom properties. Merged after `--gx-progress-circle-value`. */
79
+ style?: CSSProperties;
80
+ }
81
+ /** A visible label, which is also the accessible name. */
82
+ interface ProgressCircleLabelledProps {
83
+ /** Visible text after the ring ("Uploading"). It is also the progress bar's accessible name. */
84
+ label: string;
85
+ /** Accessible name when there is no visible `label` ("Upload progress"). The type requires `label` or `ariaLabel`. */
86
+ ariaLabel?: string;
87
+ }
88
+ /** No visible label: the accessible name is required. */
89
+ interface ProgressCircleUnlabelledProps {
90
+ /** Visible text after the ring ("Uploading"). It is also the progress bar's accessible name. */
91
+ label?: undefined;
92
+ /** Accessible name when there is no visible `label` ("Upload progress"). The type requires `label` or `ariaLabel`. */
93
+ ariaLabel: string;
94
+ }
95
+ /** ProgressCircle props. `label` or `ariaLabel` is required; `variant` and `color` are exclusive. */
96
+ export type ProgressCircleProps = ProgressCircleBaseProps & (ProgressCircleVariantProps | ProgressCircleColorProps) & (ProgressCircleLabelledProps | ProgressCircleUnlabelledProps) & ProgressCirclePassthroughProps;
97
+ /** A determinate progress ring with an optional label and value after it. */
98
+ declare const ProgressCircle: import("react").ForwardRefExoticComponent<ProgressCircleProps & import("react").RefAttributes<HTMLSpanElement>>;
99
+ export default ProgressCircle;
@@ -0,0 +1,187 @@
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import { formatPercent } from "../utils/format.js";
3
+ /* empty css */
4
+ import { styled } from "@linaria/react";
5
+ import { forwardRef, useId } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { cx } from "@linaria/core";
8
+ //#region src/feedback/ProgressCircle.tsx
9
+ /**
10
+ * The determinate progress ring: an arc that fills clockwise from 12 o'clock to show how much of
11
+ * a measured task is done (an upload, an import, a quota). The ring is the rung's icon size, the
12
+ * same footprint as `Spinner`, so a host swaps Spinner (unknown progress) for ProgressCircle
13
+ * (known progress) without moving anything. Optionally a visible `label` after it, and
14
+ * `shouldShowValue` for the formatted percentage after that.
15
+ *
16
+ * The ring sibling of `ProgressBar`, with the same props (`value`, `label` / `ariaLabel`, `size`,
17
+ * `variant` / `color`, `shouldShowValue`), defaults and ARIA: a `role="progressbar"`, not a live
18
+ * region. The value is one unitless custom property
19
+ * (`--gx-progress-circle-value`) read as the arc's dash length: the circles use
20
+ * `pathLength={100}`, so the dash length is the percentage. Not indeterminate (`Spinner`), not
21
+ * the bar (`ProgressBar`), not a gauge (a chart).
22
+ */
23
+ /** Canonical rungs; the member names the control rung the ring sits in. */
24
+ var ProgressCircleSize = /* @__PURE__ */ function(ProgressCircleSize) {
25
+ /** 20px rung: 12px ring, caption label. */
26
+ ProgressCircleSize["X_SMALL"] = "X_SMALL";
27
+ /** 24px rung: 12px ring, body_sm label. */
28
+ ProgressCircleSize["SMALL"] = "SMALL";
29
+ /** 32px rung: 14px ring, body_md label. The default. */
30
+ ProgressCircleSize["MEDIUM"] = "MEDIUM";
31
+ /** 36px rung: 14px ring, body_lg label. */
32
+ ProgressCircleSize["LARGE"] = "LARGE";
33
+ /** 40px rung: 16px ring, body_lg label. */
34
+ ProgressCircleSize["X_LARGE"] = "X_LARGE";
35
+ return ProgressCircleSize;
36
+ }({});
37
+ /** Arc color (Constitution V-A color set, subset; the same members as `ProgressBarVariant`). */
38
+ var ProgressCircleVariant = /* @__PURE__ */ function(ProgressCircleVariant) {
39
+ /** `text.primary`. The default. */
40
+ ProgressCircleVariant["PRIMARY"] = "PRIMARY";
41
+ /** `text.secondary`. */
42
+ ProgressCircleVariant["SECONDARY"] = "SECONDARY";
43
+ /** `text.tertiary`. */
44
+ ProgressCircleVariant["TERTIARY"] = "TERTIARY";
45
+ /** `text.success`: healthy, on track, complete. */
46
+ ProgressCircleVariant["SUCCESS"] = "SUCCESS";
47
+ /** `text.warning`: at risk, nearing a limit. */
48
+ ProgressCircleVariant["WARNING"] = "WARNING";
49
+ /** `text.error`: failing, over a limit. */
50
+ ProgressCircleVariant["ERROR"] = "ERROR";
51
+ return ProgressCircleVariant;
52
+ }({});
53
+ /** Phrasing content only (`span`, `svg`), so a ProgressCircle is valid inside a `<button>`. */
54
+ var Root = /*#__PURE__*/ styled("span")({
55
+ name: "Root",
56
+ class: "gx-ProgressCircle-r15f649n",
57
+ propsAsIs: false
58
+ });
59
+ /** Rotated so the arc starts at 12 o'clock and runs clockwise. */
60
+ var Ring = /*#__PURE__*/ styled("svg")({
61
+ name: "Ring",
62
+ class: "gx-ProgressCircle-Ring-ro2p09q",
63
+ propsAsIs: false
64
+ });
65
+ var Track = /*#__PURE__*/ styled("circle")({
66
+ name: "Track",
67
+ class: "gx-ProgressCircle-Track-t1b25kg7",
68
+ propsAsIs: true
69
+ });
70
+ /** Butt caps keep 0 empty and 100 a closed ring. */
71
+ var Arc = /*#__PURE__*/ styled("circle")({
72
+ name: "Arc",
73
+ class: "gx-ProgressCircle-Arc-a15y101x",
74
+ propsAsIs: true
75
+ });
76
+ /** Sets `color` on the root; the arc reads `currentColor`. The label and value stay secondary. */
77
+ var PROGRESS_CIRCLE_VARIANT_TO_CSS_MAP = {
78
+ ["PRIMARY"]: "gx-ProgressCircle-PRIMARY-p1wen69c",
79
+ ["SECONDARY"]: "gx-ProgressCircle-SECONDARY-spm8o6t",
80
+ ["TERTIARY"]: "gx-ProgressCircle-TERTIARY-t16byt1k",
81
+ ["SUCCESS"]: "gx-ProgressCircle-SUCCESS-s1ev72rx",
82
+ ["WARNING"]: "gx-ProgressCircle-WARNING-w1ii09vl",
83
+ ["ERROR"]: "gx-ProgressCircle-ERROR-e149xl4a"
84
+ };
85
+ /** Categorical `color`: `text.<family>` on the root, the way a status variant renders. */
86
+ var PROGRESS_CIRCLE_COLOR_TO_CSS_MAP = {
87
+ red: "gx-ProgressCircle-red-r5wr4fy",
88
+ orange: "gx-ProgressCircle-orange-o3cpdk8",
89
+ amber: "gx-ProgressCircle-amber-a3bcytf",
90
+ yellow: "gx-ProgressCircle-yellow-y1b1indu",
91
+ lime: "gx-ProgressCircle-lime-ls32e8h",
92
+ green: "gx-ProgressCircle-green-g1z891t",
93
+ emerald: "gx-ProgressCircle-emerald-e169l71b",
94
+ teal: "gx-ProgressCircle-teal-t7wy6jh",
95
+ cyan: "gx-ProgressCircle-cyan-cid9v1r",
96
+ sky: "gx-ProgressCircle-sky-sphjv2k",
97
+ blue: "gx-ProgressCircle-blue-b14y8mwv",
98
+ indigo: "gx-ProgressCircle-indigo-i1gpmklw",
99
+ violet: "gx-ProgressCircle-violet-v15o8mw",
100
+ purple: "gx-ProgressCircle-purple-p865hhm",
101
+ fuchsia: "gx-ProgressCircle-fuchsia-f1lkh9dd",
102
+ pink: "gx-ProgressCircle-pink-p4a8qsx",
103
+ rose: "gx-ProgressCircle-rose-rzljd4b"
104
+ };
105
+ /** Ring box, root height (the rung's text line height) and gap: the Spinner table. */
106
+ var PROGRESS_CIRCLE_SIZE_TO_CSS_MAP = {
107
+ ["X_SMALL"]: "gx-ProgressCircle-X_SMALL-xoz9zwb",
108
+ ["SMALL"]: "gx-ProgressCircle-SMALL-si0gudm",
109
+ ["MEDIUM"]: "gx-ProgressCircle-MEDIUM-m1tg3t7s",
110
+ ["LARGE"]: "gx-ProgressCircle-LARGE-l1tizbqg",
111
+ ["X_LARGE"]: "gx-ProgressCircle-X_LARGE-xuuqsnf"
112
+ };
113
+ /** The label and value are the rung's text step (the ProgressBar table). */
114
+ var PROGRESS_CIRCLE_SIZE_TO_TEXT_SIZE_MAP = {
115
+ ["X_SMALL"]: TextSize.CAPTION,
116
+ ["SMALL"]: TextSize.BODY_SM,
117
+ ["MEDIUM"]: TextSize.BODY_MD,
118
+ ["LARGE"]: TextSize.BODY_LG,
119
+ ["X_LARGE"]: TextSize.BODY_LG
120
+ };
121
+ /** 0–100; `NaN` → 0. */
122
+ function clampPercent(value) {
123
+ if (Number.isNaN(value)) return 0;
124
+ return Math.min(100, Math.max(0, value));
125
+ }
126
+ /** A determinate progress ring with an optional label and value after it. */
127
+ var ProgressCircle = forwardRef(function ProgressCircle({ value, shouldShowValue = false, variant = "PRIMARY", color, size = "MEDIUM", label, ariaLabel, className, style, ...rest }, ref) {
128
+ const labelId = useId();
129
+ const clamped = clampPercent(value);
130
+ const hasLabel = Boolean(label);
131
+ const textSize = PROGRESS_CIRCLE_SIZE_TO_TEXT_SIZE_MAP[size];
132
+ const percentText = formatPercent(clamped / 100);
133
+ const variables = { "--gx-progress-circle-value": String(clamped) };
134
+ return /* @__PURE__ */ jsxs(Root, {
135
+ ...rest,
136
+ ref,
137
+ role: "progressbar",
138
+ "aria-valuemin": 0,
139
+ "aria-valuemax": 100,
140
+ "aria-valuenow": Math.round(clamped),
141
+ "aria-valuetext": rest["aria-valuetext"] ?? percentText,
142
+ "aria-label": hasLabel ? rest["aria-label"] : ariaLabel ?? rest["aria-label"],
143
+ "aria-labelledby": hasLabel ? labelId : rest["aria-labelledby"],
144
+ className: cx(color !== void 0 ? PROGRESS_CIRCLE_COLOR_TO_CSS_MAP[color] : PROGRESS_CIRCLE_VARIANT_TO_CSS_MAP[variant], PROGRESS_CIRCLE_SIZE_TO_CSS_MAP[size], className),
145
+ style: {
146
+ ...variables,
147
+ ...style
148
+ },
149
+ children: [
150
+ /* @__PURE__ */ jsxs(Ring, {
151
+ viewBox: "0 0 16 16",
152
+ "aria-hidden": true,
153
+ focusable: "false",
154
+ children: [/* @__PURE__ */ jsx(Track, {
155
+ cx: 8,
156
+ cy: 8,
157
+ r: 7,
158
+ pathLength: 100
159
+ }), /* @__PURE__ */ jsx(Arc, {
160
+ cx: 8,
161
+ cy: 8,
162
+ r: 7,
163
+ pathLength: 100
164
+ })]
165
+ }),
166
+ hasLabel && /* @__PURE__ */ jsx(Text, {
167
+ as: "span",
168
+ id: labelId,
169
+ size: textSize,
170
+ variant: TextVariant.SECONDARY,
171
+ isTabular: true,
172
+ children: label
173
+ }),
174
+ shouldShowValue && /* @__PURE__ */ jsx(Text, {
175
+ as: "span",
176
+ size: textSize,
177
+ variant: TextVariant.SECONDARY,
178
+ isTabular: true,
179
+ "aria-hidden": true,
180
+ children: percentText
181
+ })
182
+ ]
183
+ });
184
+ });
185
+ ProgressCircle.displayName = "ProgressCircle";
186
+ //#endregion
187
+ export { ProgressCircleSize, ProgressCircleVariant, ProgressCircle as default };
@@ -0,0 +1,69 @@
1
+ import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
2
+ /** Canonical rungs; the member names the control rung the placeholder stands in for. */
3
+ export declare enum SkeletonSize {
4
+ /** 20px rung: `TEXT` 12px line (`caption`), `CIRCLE` 20px, `RECT` 20px. */
5
+ X_SMALL = "X_SMALL",
6
+ /** 24px rung: `TEXT` 16px line (`body_sm`), `CIRCLE` 24px, `RECT` 24px. */
7
+ SMALL = "SMALL",
8
+ /** 32px rung: `TEXT` 16px line (`body_md`), `CIRCLE` 32px, `RECT` 32px. The default. */
9
+ MEDIUM = "MEDIUM",
10
+ /** 36px rung: `TEXT` 20px line (`body_lg`), `CIRCLE` 36px, `RECT` 36px. */
11
+ LARGE = "LARGE",
12
+ /** 40px rung: `TEXT` 20px line (`body_lg`), `CIRCLE` 40px, `RECT` 40px. */
13
+ X_LARGE = "X_LARGE"
14
+ }
15
+ /** Shape of the placeholder (Constitution V-A local mode set: TEXT / CIRCLE / RECT). */
16
+ export declare enum SkeletonVariant {
17
+ /** One or more text lines. The default. */
18
+ TEXT = "TEXT",
19
+ /** A circle: an avatar, a round icon. */
20
+ CIRCLE = "CIRCLE",
21
+ /** A rectangle: a control, an image, a block. */
22
+ RECT = "RECT"
23
+ }
24
+ export interface SkeletonProps extends AriaAttributes {
25
+ /**
26
+ * Shape of the placeholder: text lines, a circle, or a rectangle. In wrapper mode it sets only
27
+ * the corner radius.
28
+ * @default SkeletonVariant.TEXT
29
+ */
30
+ variant?: SkeletonVariant;
31
+ /**
32
+ * The control rung the placeholder stands in for. `TEXT`: the rung's text line height.
33
+ * `CIRCLE`: diameter = rung height. `RECT`: minimum height = rung height. Ignored in wrapper
34
+ * mode.
35
+ * @default SkeletonSize.MEDIUM
36
+ */
37
+ size?: SkeletonSize;
38
+ /**
39
+ * `TEXT` only: number of lines; with more than one, the last line is 80% wide. Floored; values
40
+ * below 1 render 1. Ignored in wrapper mode.
41
+ * @default 1
42
+ */
43
+ lines?: number;
44
+ /**
45
+ * Wrapper mode only: while `true`, `children` are hidden and the placeholder takes their exact
46
+ * box; while `false`, `children` render as-is. A standalone Skeleton always renders.
47
+ * @default false
48
+ */
49
+ isLoading?: boolean;
50
+ /** The content to stand in for. Passing it switches on wrapper mode. */
51
+ children?: ReactNode;
52
+ /**
53
+ * Wrapper mode: stretch to the parent's width instead of hugging `children` (for content that
54
+ * fills its width). A standalone `TEXT` or `RECT` always fills its parent.
55
+ * @default false
56
+ */
57
+ fillWidth?: boolean;
58
+ /** DOM id on the root `<span>` while the placeholder renders. */
59
+ id?: string;
60
+ /** Any `data-*` attribute, forwarded to the root `<span>` while the placeholder renders. */
61
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
62
+ /** Extra class on the root `<span>` while the placeholder renders. */
63
+ className?: string;
64
+ /** Inline style on the root `<span>`; only for setting CSS custom properties. */
65
+ style?: CSSProperties;
66
+ }
67
+ /** A pulsing placeholder in the shape of text lines, a circle or a rectangle, or of `children`. */
68
+ declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLSpanElement>>;
69
+ export default Skeleton;
@@ -0,0 +1,130 @@
1
+ /* empty css */
2
+ import { styled } from "@linaria/react";
3
+ import { forwardRef } from "react";
4
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
5
+ import { cx } from "@linaria/core";
6
+ //#region src/feedback/Skeleton.tsx
7
+ /**
8
+ * The loading placeholder: a quiet pulsing fill that holds the shape of content that has not
9
+ * arrived yet, so the layout does not jump when it does. Replaces 1.x `TextShimmer` and
10
+ * `AvatarShimmer`.
11
+ *
12
+ * Two modes, switched by the presence of `children`:
13
+ * - **Standalone** (`<Skeleton variant={…} size={…} />`) draws a shape sized from the control
14
+ * rungs: text lines (`TEXT`, the rung's line height), a circle (`CIRCLE`, the rung height), or
15
+ * a rectangle (`RECT`, at least the rung height, filling a parent with a definite height).
16
+ * `TEXT` and `RECT` fill their parent's width; size them with the parent.
17
+ * - **Wrapper** (`<Skeleton isLoading>{content}</Skeleton>`) hides the content while `isLoading`
18
+ * and paints the placeholder over exactly the content's box. When loading ends it returns
19
+ * `children` unwrapped.
20
+ *
21
+ * Always `aria-hidden`: the loading region sets `aria-busy="true"` on itself and, if the wait
22
+ * should be announced, holds one `Spinner`. Not an unmeasured "working" indicator (`Spinner`) and
23
+ * not progress (`ProgressBar`, `ProgressCircle`).
24
+ */
25
+ /** Canonical rungs; the member names the control rung the placeholder stands in for. */
26
+ var SkeletonSize = /* @__PURE__ */ function(SkeletonSize) {
27
+ /** 20px rung: `TEXT` 12px line (`caption`), `CIRCLE` 20px, `RECT` 20px. */
28
+ SkeletonSize["X_SMALL"] = "X_SMALL";
29
+ /** 24px rung: `TEXT` 16px line (`body_sm`), `CIRCLE` 24px, `RECT` 24px. */
30
+ SkeletonSize["SMALL"] = "SMALL";
31
+ /** 32px rung: `TEXT` 16px line (`body_md`), `CIRCLE` 32px, `RECT` 32px. The default. */
32
+ SkeletonSize["MEDIUM"] = "MEDIUM";
33
+ /** 36px rung: `TEXT` 20px line (`body_lg`), `CIRCLE` 36px, `RECT` 36px. */
34
+ SkeletonSize["LARGE"] = "LARGE";
35
+ /** 40px rung: `TEXT` 20px line (`body_lg`), `CIRCLE` 40px, `RECT` 40px. */
36
+ SkeletonSize["X_LARGE"] = "X_LARGE";
37
+ return SkeletonSize;
38
+ }({});
39
+ /** Shape of the placeholder (Constitution V-A local mode set: TEXT / CIRCLE / RECT). */
40
+ var SkeletonVariant = /* @__PURE__ */ function(SkeletonVariant) {
41
+ /** One or more text lines. The default. */
42
+ SkeletonVariant["TEXT"] = "TEXT";
43
+ /** A circle: an avatar, a round icon. */
44
+ SkeletonVariant["CIRCLE"] = "CIRCLE";
45
+ /** A rectangle: a control, an image, a block. */
46
+ SkeletonVariant["RECT"] = "RECT";
47
+ return SkeletonVariant;
48
+ }({});
49
+ /** All `span`s (phrasing content), so a Skeleton is valid inside a `<button>`. */
50
+ var Root = /*#__PURE__*/ styled("span")({
51
+ name: "Root",
52
+ class: "gx-Skeleton-r1mbj6xy",
53
+ propsAsIs: false
54
+ });
55
+ /** One text line: the line height minus 4px, so it sits 2px inside its line box. */
56
+ var Bar = /*#__PURE__*/ styled("span")({
57
+ name: "Bar",
58
+ class: "gx-Skeleton-Bar-b16jbogi",
59
+ propsAsIs: false
60
+ });
61
+ /**
62
+ * Wrapper mode's content holder: lays out as if absent (`display: contents`), keeps its box, is
63
+ * not painted, and leaves the tab order and the accessibility tree (`visibility: hidden`).
64
+ */
65
+ var Content = /*#__PURE__*/ styled("span")({
66
+ name: "Content",
67
+ class: "gx-Skeleton-Content-cya5pft",
68
+ propsAsIs: false
69
+ });
70
+ /**
71
+ * The 1.x opacity pulse (0.75 → 0.25 → 0.75), 2.4s. The keyframes are global, so the name is
72
+ * `gx-` prefixed. `REDUCED_MOTION` stops it at `opacity: 0.75`.
73
+ */
74
+ var PULSE_CSS = "gx-Skeleton-PULSE_CSS-p1rhnmpm";
75
+ /** Sets the rung's text line height and control height as custom properties on the root. */
76
+ var SKELETON_SIZE_TO_CSS_MAP = {
77
+ ["X_SMALL"]: "gx-Skeleton-X_SMALL-x1skcjsy",
78
+ ["SMALL"]: "gx-Skeleton-SMALL-s44fhjo",
79
+ ["MEDIUM"]: "gx-Skeleton-MEDIUM-m575bv0",
80
+ ["LARGE"]: "gx-Skeleton-LARGE-lrnwudx",
81
+ ["X_LARGE"]: "gx-Skeleton-X_LARGE-x1ocp1hc"
82
+ };
83
+ /** Standalone shapes. `TEXT` is a column of `Bar`s exactly `lines × line height` tall. */
84
+ var SKELETON_VARIANT_TO_CSS_MAP = {
85
+ ["TEXT"]: "gx-Skeleton-TEXT-t1l8sj4g",
86
+ ["CIRCLE"]: "gx-Skeleton-CIRCLE-c152d2f9",
87
+ ["RECT"]: "gx-Skeleton-RECT-r1eoumjp"
88
+ };
89
+ /** Wrapper mode's corner radius by variant: text inline, circle round, rectangle a control. */
90
+ var SKELETON_VARIANT_TO_RADIUS_CSS_MAP = {
91
+ ["TEXT"]: "gx-Skeleton-TEXT-tz7uzak",
92
+ ["CIRCLE"]: "gx-Skeleton-CIRCLE-c4pgw74",
93
+ ["RECT"]: "gx-Skeleton-RECT-r14qcxh7"
94
+ };
95
+ /** Wrapper mode while loading: hugs the content's box, filled. */
96
+ var WRAPPER_CSS = "gx-Skeleton-WRAPPER_CSS-w1rlj9la";
97
+ /** Wrapper mode `fillWidth`: stretch to the parent's width. */
98
+ var FILL_WIDTH_CSS = "gx-Skeleton-FILL_WIDTH_CSS-fkhva6f";
99
+ /** One stable key per line: `lines` floored, at least 1 (a non-finite value renders 1). */
100
+ function toLineKeys(lines) {
101
+ const count = Number.isFinite(lines) ? Math.max(1, Math.floor(lines)) : 1;
102
+ return Array.from({ length: count }, (_, index) => `line-${index + 1}`);
103
+ }
104
+ /** A pulsing placeholder in the shape of text lines, a circle or a rectangle, or of `children`. */
105
+ var Skeleton = forwardRef(function Skeleton({ variant = "TEXT", size = "MEDIUM", lines = 1, isLoading = false, children, fillWidth = false, id, className, style, ...rest }, ref) {
106
+ if (children !== void 0) {
107
+ if (!isLoading) return /* @__PURE__ */ jsx(Fragment$1, { children });
108
+ return /* @__PURE__ */ jsx(Root, {
109
+ ...rest,
110
+ "aria-hidden": "true",
111
+ ref,
112
+ id,
113
+ className: cx(PULSE_CSS, WRAPPER_CSS, SKELETON_VARIANT_TO_RADIUS_CSS_MAP[variant], fillWidth && FILL_WIDTH_CSS, className),
114
+ style,
115
+ children: /* @__PURE__ */ jsx(Content, { children })
116
+ });
117
+ }
118
+ return /* @__PURE__ */ jsx(Root, {
119
+ ...rest,
120
+ "aria-hidden": "true",
121
+ ref,
122
+ id,
123
+ className: cx(PULSE_CSS, SKELETON_SIZE_TO_CSS_MAP[size], SKELETON_VARIANT_TO_CSS_MAP[variant], className),
124
+ style,
125
+ children: variant === "TEXT" ? toLineKeys(lines).map((lineKey) => /* @__PURE__ */ jsx(Bar, {}, lineKey)) : null
126
+ });
127
+ });
128
+ Skeleton.displayName = "Skeleton";
129
+ //#endregion
130
+ export { SkeletonSize, SkeletonVariant, Skeleton as default };