@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
@@ -1,148 +1,166 @@
1
- import { withTheme } from "../theme/GalaxyTheme.js";
1
+ import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
2
+ import { FontFamily } from "../theme/enums.js";
2
3
  import Text, { TextSize, TextVariant, TextWeight } from "./Text.js";
3
- import FlexWrapper, { AlignItems } from "../containers/FlexWrapper.js";
4
+ import { useControlledState } from "../hooks/useControlledState.js";
4
5
  /* empty css */
5
- import { styled } from "@linaria/react";
6
- import { match } from "ts-pattern";
7
- import { useState } from "react";
8
- import { jsx } from "react/jsx-runtime";
6
+ import { forwardRef, useEffect, useRef, useState } from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { cx } from "@linaria/core";
9
9
  //#region src/text/EditableText.tsx
10
- var EditableTextWrapper = /*#__PURE__*/ styled("div")({
11
- name: "EditableTextWrapper",
12
- class: "et5f6jm",
13
- propsAsIs: false
14
- });
15
- var _exp2 = () => ({ theme, $variant }) => {
16
- return match($variant).with(TextVariant.PRIMARY, () => theme.color.text.primary).with(TextVariant.PRIMARY_ALT, () => theme.color.text.primaryAlt).with(TextVariant.SECONDARY, () => theme.color.text.secondary).with(TextVariant.SECONDARY_ALT, () => theme.color.text.secondaryAlt).with(TextVariant.TERTIARY, () => theme.color.text.tertiary).with(TextVariant.TERTIARY_ALT, () => theme.color.text.tertiaryAlt).with(TextVariant.DISABLED, () => theme.color.text.disabled).with(TextVariant.SUCCESS, () => theme.color.text.success).with(TextVariant.ERROR, () => theme.color.text.error).with(TextVariant.WARNING, () => theme.color.text.warning).with(TextVariant.LIME, () => theme.color.text.lime).with(TextVariant.PURPLE, () => theme.color.text.purple).with(TextVariant.TEAL, () => theme.color.text.teal).with(TextVariant.YELLOW, () => theme.color.text.yellow).with(TextVariant.ORANGE, () => theme.color.text.orange).with(TextVariant.PINK, () => theme.color.text.pink).with(TextVariant.BLUE, () => theme.color.text.blue).exhaustive();
17
- };
18
- var _exp3 = () => ({ theme, $isMonospace }) => $isMonospace ? theme.font.mono.family : theme.font.sans.family;
19
- var _exp4 = () => ({ theme, $size }) => {
20
- return match($size).with(TextSize.CAPTION, () => theme.font.sans.size.caption).with(TextSize.BODY_SM, () => theme.font.sans.size.body_sm).with(TextSize.BODY_MD, () => theme.font.sans.size.body_md).with(TextSize.BODY_LG, () => theme.font.sans.size.body_lg).with(TextSize.HEADING_SM, () => theme.font.sans.size.heading_sm).with(TextSize.HEADING_MD, () => theme.font.sans.size.heading_md).with(TextSize.HEADING_LG, () => theme.font.sans.size.heading_lg).exhaustive();
21
- };
22
- var _exp5 = () => ({ theme, $weight }) => {
23
- return match($weight).with(TextWeight.REGULAR, () => theme.font.sans.weight.regular).with(TextWeight.MEDIUM, () => theme.font.sans.weight.medium).exhaustive();
24
- };
25
- var _exp6 = () => ({ theme, $size }) => {
26
- return match($size).with(TextSize.CAPTION, () => theme.font.sans.height.caption).with(TextSize.BODY_SM, () => theme.font.sans.height.body_sm).with(TextSize.BODY_MD, () => theme.font.sans.height.body_md).with(TextSize.BODY_LG, () => theme.font.sans.height.body_lg).with(TextSize.HEADING_SM, () => theme.font.sans.height.heading_sm).with(TextSize.HEADING_MD, () => theme.font.sans.height.heading_md).with(TextSize.HEADING_LG, () => theme.font.sans.height.heading_lg).exhaustive();
27
- };
28
- var _exp7 = () => ({ theme, $size }) => {
29
- return match($size).with(TextSize.CAPTION, () => theme.font.sans.spacing.caption).with(TextSize.BODY_SM, () => theme.font.sans.spacing.body_sm).with(TextSize.BODY_MD, () => theme.font.sans.spacing.body_md).with(TextSize.BODY_LG, () => theme.font.sans.spacing.body_lg).with(TextSize.HEADING_SM, () => theme.font.sans.spacing.heading_sm).with(TextSize.HEADING_MD, () => theme.font.sans.spacing.heading_md).with(TextSize.HEADING_LG, () => theme.font.sans.spacing.heading_lg).exhaustive();
30
- };
31
- var _exp8 = () => ({ $align }) => $align ?? "left";
32
- var EditableTextInput = withTheme(/*#__PURE__*/ styled("input")({
33
- name: "EditableTextInput",
34
- class: "ekaqvqt",
35
- propsAsIs: false,
36
- vars: {
37
- "ekaqvqt-0": [_exp6()],
38
- "ekaqvqt-1": [_exp2()],
39
- "ekaqvqt-2": [_exp3()],
40
- "ekaqvqt-3": [_exp4()],
41
- "ekaqvqt-4": [_exp5()],
42
- "ekaqvqt-5": [_exp7()],
43
- "ekaqvqt-6": [_exp8()]
44
- }
45
- }));
46
- var _exp9 = () => ({ theme }) => theme.color.border.tertiary;
47
- var EditableTextText = withTheme(/*#__PURE__*/ styled("span")({
48
- name: "EditableTextText",
49
- class: "e1j2x5d3",
50
- propsAsIs: false,
51
- vars: { "e1j2x5d3-0": [_exp9()] }
52
- }));
53
10
  /**
54
- * Click-to-edit text. Renders as `Text` until clicked, then swaps to an inline
55
- * input. Accepts every `TextProps` styling prop on top of its own.
11
+ * Click-to-rename text. It reads as ordinary `Text` until the user clicks it (or presses Enter /
12
+ * Space on it), then becomes an inline text field in the same type: Enter or blur commits, Escape
13
+ * cancels. For renaming one thing in place, one line at a time; a labelled, validated field is
14
+ * `Field` + `TextInput`, multi-line editing is `TextAreaInput`.
56
15
  *
57
- * Holds the draft internally and only calls `onSave` on commit, so it works as
58
- * an uncontrolled field — `label` is the starting value, not a bound one.
16
+ * The outer `Text as="span"` owns the type metrics (size, line height, letter spacing, family,
17
+ * weight, color) for both modes; the button, its inner `Text`, the hidden sizer and the input
18
+ * inherit them, so switching modes moves nothing. The field is exactly as wide as its text: a
19
+ * hidden sizer holding the draft shares one grid cell with the input (no `field-sizing`). The field
20
+ * is bare: no frame, fill or focus ring, only the caret, so editing looks like typing in place.
59
21
  */
60
- var EditableText = ({ label, onSave, size = TextSize.BODY_MD, variant = TextVariant.PRIMARY, weight = TextWeight.REGULAR, align = "left", isMonospace = false, ...textProps }) => {
61
- const [state, setState] = useState(() => ({
62
- localLabel: label,
63
- editedLabel: label,
64
- isEditing: false,
65
- isHovered: false
66
- }));
67
- const handleClick = (e) => {
68
- e.preventDefault();
69
- e.stopPropagation();
70
- setState((prev) => ({
71
- ...prev,
72
- isHovered: false,
73
- isEditing: true
74
- }));
75
- };
76
- const handleMouseEnter = () => {
77
- setState((prev) => ({
78
- ...prev,
79
- isHovered: true
80
- }));
81
- };
82
- const handleMouseLeave = () => {
83
- setState((prev) => ({
84
- ...prev,
85
- isHovered: false
86
- }));
87
- };
88
- const handleInputFocus = (e) => {
89
- e.target.select();
22
+ /** The outer `Text`: an inline box as wide as its content, never wider than its parent. */
23
+ var Root = "gx-EditableText-rt5f6jm";
24
+ var FILL_WIDTH_CSS = "gx-EditableText-FILL_WIDTH_CSS-fkaqvqt";
25
+ var DISPLAY_CSS = "gx-EditableText-DISPLAY_CSS-d1j2x5d3";
26
+ /** A decoration, not a border, so the hover / focus cue adds no height. */
27
+ var BUTTON_CSS = "gx-EditableText-BUTTON_CSS-b12zn331";
28
+ var FIELD_WRAPPER_CSS = "gx-EditableText-FIELD_WRAPPER_CSS-f1y3v9qg";
29
+ /** With `fillWidth`, the button and the field take the whole root, so neither mode changes width. */
30
+ var FILL_CHILD_CSS = "gx-EditableText-FILL_CHILD_CSS-f1hzos16";
31
+ /** Holds the draft so the grid cell, and so the input, is exactly as wide as the text. */
32
+ var SIZER_CSS = "gx-EditableText-SIZER_CSS-sa44p0k";
33
+ /**
34
+ * The field: no frame, fill, focus ring or padding of its own, only the caret (and the selected
35
+ * text on entry), so the text does not move between modes and the edit reads as typing in place.
36
+ */
37
+ var INPUT_CSS = "gx-EditableText-INPUT_CSS-iogpntu";
38
+ /** Inline text that turns into a same-type field on click and commits on Enter or blur. */
39
+ var EditableText = forwardRef(function EditableText({ value, defaultValue, onChange, ariaLabel, placeholder, size = TextSize.BODY_MD, weight = TextWeight.REGULAR, family = FontFamily.SANS, maxLength, isDisabled = false, fillWidth = false, className, ...rest }, ref) {
40
+ const [committed, setCommitted] = useControlledState({
41
+ value,
42
+ defaultValue: defaultValue ?? "",
43
+ onChange
44
+ });
45
+ const [isEditing, setIsEditing] = useState(false);
46
+ const [draft, setDraft] = useState("");
47
+ const buttonRef = useRef(null);
48
+ const inputRef = useRef(null);
49
+ /** True from the moment an edit ends until the next one starts: the input's late blur is ignored. */
50
+ const hasEndedRef = useRef(true);
51
+ /** Set by Enter / Escape: focus the button once it is back in the DOM. */
52
+ const shouldRestoreFocusRef = useRef(false);
53
+ const isFieldShown = isEditing && !isDisabled;
54
+ useEffect(() => {
55
+ if (isDisabled && isEditing) {
56
+ hasEndedRef.current = true;
57
+ setIsEditing(false);
58
+ }
59
+ }, [isDisabled, isEditing]);
60
+ useIsomorphicLayoutEffect(() => {
61
+ if (isFieldShown) inputRef.current?.focus();
62
+ else if (shouldRestoreFocusRef.current) {
63
+ shouldRestoreFocusRef.current = false;
64
+ buttonRef.current?.focus();
65
+ }
66
+ }, [isFieldShown]);
67
+ const startEditing = () => {
68
+ if (isDisabled) return;
69
+ hasEndedRef.current = false;
70
+ setDraft(committed);
71
+ setIsEditing(true);
90
72
  };
91
- const handleChange = (e) => {
92
- e.preventDefault();
93
- e.stopPropagation();
94
- setState((prev) => ({
95
- ...prev,
96
- editedLabel: e.target.value
97
- }));
73
+ const commit = (shouldRestoreFocus) => {
74
+ if (hasEndedRef.current) return;
75
+ hasEndedRef.current = true;
76
+ shouldRestoreFocusRef.current = shouldRestoreFocus;
77
+ if (draft !== committed) setCommitted(draft);
78
+ setIsEditing(false);
98
79
  };
99
- const handleSave = () => {
100
- setState((prev) => ({
101
- ...prev,
102
- isEditing: false
103
- }));
104
- onSave(state.editedLabel);
80
+ const cancel = () => {
81
+ if (hasEndedRef.current) return;
82
+ hasEndedRef.current = true;
83
+ shouldRestoreFocusRef.current = true;
84
+ setDraft(committed);
85
+ setIsEditing(false);
105
86
  };
106
- const handleKeyDown = (e) => {
107
- if (e.key === "Enter") handleSave();
108
- else if (e.key === "Escape") setState((prev) => ({
109
- ...prev,
110
- isEditing: false,
111
- editedLabel: label
112
- }));
87
+ const handleKeyDown = (event) => {
88
+ if (event.key === "Enter") {
89
+ if (event.nativeEvent.isComposing) return;
90
+ event.preventDefault();
91
+ commit(true);
92
+ } else if (event.key === "Escape") {
93
+ event.preventDefault();
94
+ event.stopPropagation();
95
+ event.nativeEvent.stopImmediatePropagation();
96
+ cancel();
97
+ }
113
98
  };
114
- return /* @__PURE__ */ jsx(EditableTextWrapper, { children: state.isEditing ? /* @__PURE__ */ jsx(EditableTextInput, {
115
- value: state.editedLabel,
116
- onChange: handleChange,
117
- onBlur: handleSave,
118
- onFocus: handleInputFocus,
119
- onKeyDown: handleKeyDown,
120
- maxLength: 128,
121
- $size: size,
122
- $variant: variant,
123
- $weight: weight,
124
- $align: align,
125
- $isMonospace: isMonospace,
126
- autoFocus: true,
127
- placeholder: label
128
- }) : /* @__PURE__ */ jsx(EditableTextText, {
129
- onClick: handleClick,
130
- onMouseEnter: handleMouseEnter,
131
- onMouseLeave: handleMouseLeave,
132
- children: /* @__PURE__ */ jsx(FlexWrapper, {
133
- alignItems: AlignItems.END,
134
- gap: 4,
135
- children: /* @__PURE__ */ jsx(Text, {
136
- ...textProps,
137
- size,
138
- variant,
139
- weight,
140
- align,
141
- isMonospace,
142
- children: state.editedLabel
143
- })
99
+ const shownText = committed || placeholder || "";
100
+ let content;
101
+ if (isFieldShown) content = /* @__PURE__ */ jsxs("span", {
102
+ className: cx(FIELD_WRAPPER_CSS, fillWidth && FILL_CHILD_CSS),
103
+ children: [/* @__PURE__ */ jsx("span", {
104
+ className: SIZER_CSS,
105
+ "aria-hidden": true,
106
+ children: draft || placeholder || " "
107
+ }), /* @__PURE__ */ jsx("input", {
108
+ className: INPUT_CSS,
109
+ type: "text",
110
+ size: 1,
111
+ value: draft,
112
+ placeholder,
113
+ maxLength,
114
+ "aria-label": ariaLabel,
115
+ ref: inputRef,
116
+ onFocus: (event) => event.currentTarget.select(),
117
+ onChange: (event) => setDraft(event.currentTarget.value),
118
+ onKeyDown: handleKeyDown,
119
+ onBlur: () => commit(false)
120
+ })]
121
+ });
122
+ else if (isDisabled) content = /* @__PURE__ */ jsx("span", {
123
+ className: DISPLAY_CSS,
124
+ children: /* @__PURE__ */ jsx(Text, {
125
+ as: "span",
126
+ size,
127
+ weight,
128
+ family,
129
+ variant: TextVariant.INHERIT,
130
+ lineClamp: 1,
131
+ shouldTooltipOnOverflow: true,
132
+ children: shownText
144
133
  })
145
- }) });
146
- };
134
+ });
135
+ else content = /* @__PURE__ */ jsx("button", {
136
+ ref: buttonRef,
137
+ type: "button",
138
+ className: cx(DISPLAY_CSS, BUTTON_CSS, fillWidth && FILL_CHILD_CSS),
139
+ "aria-label": shownText ? `${ariaLabel}: ${shownText}` : ariaLabel,
140
+ onClick: startEditing,
141
+ children: /* @__PURE__ */ jsx(Text, {
142
+ as: "span",
143
+ size,
144
+ weight,
145
+ family,
146
+ variant: committed ? TextVariant.INHERIT : TextVariant.TERTIARY,
147
+ lineClamp: 1,
148
+ shouldTooltipOnOverflow: true,
149
+ children: shownText
150
+ })
151
+ });
152
+ return /* @__PURE__ */ jsx(Text, {
153
+ ...rest,
154
+ as: "span",
155
+ ref,
156
+ size,
157
+ weight,
158
+ family,
159
+ variant: isDisabled ? TextVariant.DISABLED : TextVariant.PRIMARY,
160
+ className: cx(Root, fillWidth && FILL_WIDTH_CSS, className),
161
+ children: content
162
+ });
163
+ });
164
+ EditableText.displayName = "EditableText";
147
165
  //#endregion
148
166
  export { EditableText as default };
@@ -1,12 +1,38 @@
1
- export interface EllipsisProps {
2
- /** Animate the dots. Static when false. */
1
+ import { type AriaAttributes, type CSSProperties } from "react";
2
+ /** Color role of the dots (color set subset, Constitution V-A). */
3
+ export declare enum EllipsisVariant {
4
+ /** Primary copy, `text.primary`. */
5
+ PRIMARY = "PRIMARY",
6
+ /** Supporting copy, `text.secondary`. The default. */
7
+ SECONDARY = "SECONDARY",
8
+ /** Hints and metadata, `text.tertiary`. */
9
+ TERTIARY = "TERTIARY"
10
+ }
11
+ export interface EllipsisProps extends AriaAttributes {
12
+ /**
13
+ * Pulse the dots in sequence. Static "..." when false.
14
+ * @default true
15
+ */
3
16
  isPulse?: boolean;
4
- /** Duration of one pulse cycle in seconds. @default 1 */
17
+ /**
18
+ * Length of one pulse cycle, in milliseconds.
19
+ * @default 1200
20
+ */
5
21
  speed?: number;
22
+ /**
23
+ * Color role of the dots.
24
+ * @default EllipsisVariant.SECONDARY
25
+ */
26
+ variant?: EllipsisVariant;
27
+ /** DOM id on the span. */
28
+ id?: string;
29
+ /** Any `data-*` attribute, forwarded to the span. */
30
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
31
+ /** Extra class on the span. */
32
+ className?: string;
33
+ /** Inline style on the span; only for setting CSS custom properties. */
34
+ style?: CSSProperties;
6
35
  }
7
- /**
8
- * Three dots that pulse in sequence — the "…thinking" affordance. Renders the
9
- * literal characters, so it aligns with adjacent text rather than a spinner.
10
- */
11
- declare const Ellipsis: ({ isPulse, speed }: EllipsisProps) => import("react").JSX.Element;
36
+ /** Three dots that pulse in sequence: the "…thinking" affordance after a label. */
37
+ declare const Ellipsis: import("react").ForwardRefExoticComponent<EllipsisProps & import("react").RefAttributes<HTMLSpanElement>>;
12
38
  export default Ellipsis;
@@ -1,32 +1,64 @@
1
+ import Span, { SpanVariant } from "./Span.js";
1
2
  /* empty css */
2
- import { styled } from "@linaria/react";
3
+ import { forwardRef } from "react";
3
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { cx } from "@linaria/core";
4
6
  //#region src/text/Ellipsis.tsx
5
- var _exp = () => ({ $speed }) => $speed;
6
- var _exp2 = () => ({ $isPulse }) => $isPulse ? "running" : "paused";
7
- var StyledEllipsis = /*#__PURE__*/ styled("span")({
8
- name: "StyledEllipsis",
9
- class: "szfsuud",
10
- propsAsIs: false,
11
- vars: {
12
- "szfsuud-0": [_exp(), "s"],
13
- "szfsuud-1": [_exp2()]
14
- }
15
- });
16
7
  /**
17
- * Three dots that pulse in sequence — the "…thinking" affordance. Renders the
18
- * literal characters, so it aligns with adjacent text rather than a spinner.
8
+ * The animated loading ellipsis: three dots that pulse in sequence after a label ("Generating…").
9
+ * It is a loading affordance, not truncation (truncation is `Text lineClamp`). It renders the literal
10
+ * characters through `Span`, so it inherits the enclosing `Text`'s step, family and line height and
11
+ * sits on its baseline; `variant` sets the color.
12
+ *
13
+ * `speed` is continuous, so it is written as the `--gx-ellipsis-speed` custom property in `style`
14
+ * (the Span `hex` pattern) and read by the pulse block; the second and third dots start a sixth and
15
+ * a third of a cycle late. Under `prefers-reduced-motion` (and a provider's `reducedMotion`) the
16
+ * animation is removed and the dots render as a static, full-color "...". The dots are decorative
17
+ * (`aria-hidden`): the label beside them carries the meaning.
18
+ */
19
+ /** Color role of the dots (color set subset, Constitution V-A). */
20
+ var EllipsisVariant = /* @__PURE__ */ function(EllipsisVariant) {
21
+ /** Primary copy, `text.primary`. */
22
+ EllipsisVariant["PRIMARY"] = "PRIMARY";
23
+ /** Supporting copy, `text.secondary`. The default. */
24
+ EllipsisVariant["SECONDARY"] = "SECONDARY";
25
+ /** Hints and metadata, `text.tertiary`. */
26
+ EllipsisVariant["TERTIARY"] = "TERTIARY";
27
+ return EllipsisVariant;
28
+ }({});
29
+ /** Each `EllipsisVariant` is the `SpanVariant` of the same name. */
30
+ var ELLIPSIS_VARIANT_TO_SPAN_VARIANT_MAP = {
31
+ ["PRIMARY"]: SpanVariant.PRIMARY,
32
+ ["SECONDARY"]: SpanVariant.SECONDARY,
33
+ ["TERTIARY"]: SpanVariant.TERTIARY
34
+ };
35
+ /** The three dots never break across lines. */
36
+ var ROOT_CSS = "gx-Ellipsis-ROOT_CSS-rzfsuud";
37
+ /**
38
+ * The 1.x pulse: each dot rests at half opacity and peaks at 40% of the cycle, staggered. The
39
+ * keyframes are global, so the name is `gx-` prefixed.
19
40
  */
20
- var Ellipsis = ({ isPulse = false, speed = 1 }) => {
21
- return /* @__PURE__ */ jsxs(StyledEllipsis, {
22
- $isPulse: isPulse,
23
- $speed: speed,
41
+ var PULSE_CSS = "gx-Ellipsis-PULSE_CSS-p17l0lus";
42
+ /** Three dots that pulse in sequence: the "…thinking" affordance after a label. */
43
+ var Ellipsis = forwardRef(function Ellipsis({ isPulse = true, speed = 1200, variant = "SECONDARY", className, style, ...rest }, ref) {
44
+ const variables = { "--gx-ellipsis-speed": `${speed}ms` };
45
+ return /* @__PURE__ */ jsxs(Span, {
46
+ "aria-hidden": true,
47
+ ...rest,
48
+ ref,
49
+ variant: ELLIPSIS_VARIANT_TO_SPAN_VARIANT_MAP[variant],
50
+ className: cx(ROOT_CSS, isPulse && PULSE_CSS, className),
51
+ style: {
52
+ ...variables,
53
+ ...style
54
+ },
24
55
  children: [
25
- /* @__PURE__ */ jsx("span", { children: "." }),
26
- /* @__PURE__ */ jsx("span", { children: "." }),
27
- /* @__PURE__ */ jsx("span", { children: "." })
56
+ /* @__PURE__ */ jsx(Span, { children: "." }),
57
+ /* @__PURE__ */ jsx(Span, { children: "." }),
58
+ /* @__PURE__ */ jsx(Span, { children: "." })
28
59
  ]
29
60
  });
30
- };
61
+ });
62
+ Ellipsis.displayName = "Ellipsis";
31
63
  //#endregion
32
- export { Ellipsis as default };
64
+ export { EllipsisVariant, Ellipsis as default };
@@ -0,0 +1,72 @@
1
+ import { type AriaAttributes, type CSSProperties } from "react";
2
+ import { FontFamily } from "../theme/enums.js";
3
+ /** Cap fill: a surface step (Constitution V-A surface set). */
4
+ export declare enum KbdVariant {
5
+ /** The canvas fill, `background.base`. */
6
+ BASE = "BASE",
7
+ /** A panel fill, `background.primary`. */
8
+ PRIMARY = "PRIMARY",
9
+ /** A raised fill, `background.secondary`. */
10
+ SECONDARY = "SECONDARY",
11
+ /** The most elevated fill, `background.tertiary`. The default (1.x unset). */
12
+ TERTIARY = "TERTIARY"
13
+ }
14
+ /** Canonical rungs; the member names the control rung or text step the caps sit with. */
15
+ export declare enum KbdSize {
16
+ /** 12px caps, caption text; beside a 20px control or `CAPTION` text. */
17
+ X_SMALL = "X_SMALL",
18
+ /** 16px caps, caption text; beside a 24px control or `BODY_SM` text. */
19
+ SMALL = "SMALL",
20
+ /** 16px caps, `body_sm` text; beside a 32px control or `BODY_MD` text. The default. */
21
+ MEDIUM = "MEDIUM",
22
+ /** 20px caps, `body_md` text; beside a 36px control or `BODY_LG` / `HEADING_SM` text. */
23
+ LARGE = "LARGE",
24
+ /** 20px caps, `body_md` text; beside a 40px control. */
25
+ X_LARGE = "X_LARGE"
26
+ }
27
+ export interface KbdProps extends AriaAttributes {
28
+ /**
29
+ * Keys in press order, one cap per entry. `useHotkey` grammar tokens (`"mod"`, `"shift"`,
30
+ * `"enter"`, `"k"`) get platform labels; any other string renders verbatim. An empty array
31
+ * renders nothing.
32
+ */
33
+ hotKeys: string[];
34
+ /**
35
+ * Cap fill (surface step). Ignored with `isPlain`.
36
+ * @default KbdVariant.TERTIARY
37
+ */
38
+ variant?: KbdVariant;
39
+ /**
40
+ * No fill, no border, and the host's text color (`color: inherit`): for caps on a solid host
41
+ * such as a `PRIMARY` or `ERROR` Button. `variant` is ignored.
42
+ * @default false
43
+ */
44
+ isPlain?: boolean;
45
+ /**
46
+ * Matches the rung of the control the caps sit in, or the text step they sit beside.
47
+ * @default KbdSize.MEDIUM
48
+ */
49
+ size?: KbdSize;
50
+ /**
51
+ * Cap type family. `MONO` for code-adjacent contexts.
52
+ * @default FontFamily.SANS
53
+ */
54
+ family?: FontFamily;
55
+ /**
56
+ * Disabled look (`text.disabled`, `border.disabled`) for a shortcut inside a disabled host. Kbd
57
+ * itself is never interactive.
58
+ * @default false
59
+ */
60
+ isDisabled?: boolean;
61
+ /** DOM id on the root `<kbd>`. */
62
+ id?: string;
63
+ /** Any `data-*` attribute, forwarded to the root `<kbd>`. */
64
+ [dataAttribute: `data-${string}`]: string | number | boolean | undefined;
65
+ /** Extra class on the root `<kbd>`. */
66
+ className?: string;
67
+ /** Inline style on the root `<kbd>`; only for setting CSS custom properties. */
68
+ style?: CSSProperties;
69
+ }
70
+ /** A keyboard shortcut as key caps, with platform-aware labels. Display only. */
71
+ declare const Kbd: import("react").ForwardRefExoticComponent<KbdProps & import("react").RefAttributes<HTMLElement>>;
72
+ export default Kbd;