@galaxy-io/dls 1.6.1 → 2.0.1

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 (540) 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 +160 -124
  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 +33 -20
  46. package/dist/charts/ChartFrame.d.ts +71 -116
  47. package/dist/charts/ChartFrame.js +306 -97
  48. package/dist/charts/ChartGroupProvider.d.ts +30 -41
  49. package/dist/charts/ChartGroupProvider.js +20 -7
  50. package/dist/charts/ChartLegend.d.ts +37 -48
  51. package/dist/charts/ChartLegend.js +243 -125
  52. package/dist/charts/ChartMarkTargets.d.ts +12 -28
  53. package/dist/charts/ChartMarkTargets.js +34 -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 +307 -0
  60. package/dist/charts/LineChart.d.ts +54 -47
  61. package/dist/charts/LineChart.js +174 -121
  62. package/dist/charts/PieChart.d.ts +32 -53
  63. package/dist/charts/PieChart.js +159 -136
  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/chartSelection.d.ts +15 -0
  79. package/dist/charts/chartSelection.js +22 -0
  80. package/dist/charts/constants.d.ts +100 -256
  81. package/dist/charts/constants.js +109 -275
  82. package/dist/charts/heatmapGeometry.d.ts +95 -0
  83. package/dist/charts/heatmapGeometry.js +155 -0
  84. package/dist/charts/lineChartGeometry.d.ts +108 -58
  85. package/dist/charts/lineChartGeometry.js +120 -78
  86. package/dist/charts/pieChartGeometry.d.ts +66 -40
  87. package/dist/charts/pieChartGeometry.js +68 -38
  88. package/dist/charts/types.d.ts +206 -466
  89. package/dist/charts/types.js +55 -144
  90. package/dist/charts/useCartesianChartLayout.d.ts +28 -59
  91. package/dist/charts/useCartesianChartLayout.js +47 -32
  92. package/dist/charts/useChartDimensions.d.ts +19 -40
  93. package/dist/charts/useChartDimensions.js +40 -56
  94. package/dist/charts/useChartFormatters.d.ts +6 -15
  95. package/dist/charts/useChartFormatters.js +4 -9
  96. package/dist/charts/useChartInteraction.d.ts +69 -116
  97. package/dist/charts/useChartInteraction.js +148 -78
  98. package/dist/charts/useChartTooltipPosition.d.ts +29 -39
  99. package/dist/charts/useChartTooltipPosition.js +14 -5
  100. package/dist/charts/useSeriesColorResolver.d.ts +11 -33
  101. package/dist/charts/useSeriesColorResolver.js +19 -12
  102. package/dist/chips/Chip.d.ts +155 -44
  103. package/dist/chips/Chip.js +329 -155
  104. package/dist/chips/ChipGroup.d.ts +53 -0
  105. package/dist/chips/ChipGroup.js +98 -0
  106. package/dist/drawer/Drawer.d.ts +83 -17
  107. package/dist/drawer/Drawer.js +399 -65
  108. package/dist/dropdown/Dropdown.d.ts +80 -63
  109. package/dist/dropdown/Dropdown.js +127 -129
  110. package/dist/editor/CodeEditor.d.ts +119 -40
  111. package/dist/editor/CodeEditor.js +490 -400
  112. package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
  113. package/dist/editor/CodeEditorReactWidget.js +28 -21
  114. package/dist/feedback/Alert.d.ts +49 -0
  115. package/dist/feedback/Alert.js +172 -0
  116. package/dist/feedback/EmptyState.d.ts +39 -0
  117. package/dist/feedback/EmptyState.js +109 -0
  118. package/dist/feedback/ProgressBar.d.ts +125 -0
  119. package/dist/feedback/ProgressBar.js +183 -0
  120. package/dist/feedback/ProgressCircle.d.ts +99 -0
  121. package/dist/feedback/ProgressCircle.js +187 -0
  122. package/dist/feedback/Skeleton.d.ts +69 -0
  123. package/dist/feedback/Skeleton.js +130 -0
  124. package/dist/feedback/Spinner.d.ts +63 -0
  125. package/dist/feedback/Spinner.js +141 -0
  126. package/dist/fonts.css +70 -0
  127. package/dist/hooks/internal/useIsClient.d.ts +2 -0
  128. package/dist/hooks/internal/useIsClient.js +14 -0
  129. package/dist/hooks/useClipboard.d.ts +19 -0
  130. package/dist/hooks/useClipboard.js +45 -0
  131. package/dist/hooks/useControlledOpenState.d.ts +21 -0
  132. package/dist/hooks/useControlledOpenState.js +19 -0
  133. package/dist/hooks/useControlledState.d.ts +19 -0
  134. package/dist/hooks/useControlledState.js +22 -0
  135. package/dist/hooks/useDebouncedValue.d.ts +14 -0
  136. package/dist/hooks/useDebouncedValue.js +33 -0
  137. package/dist/hooks/useDisclosure.d.ts +26 -0
  138. package/dist/hooks/useDisclosure.js +36 -0
  139. package/dist/hooks/useDismiss.d.ts +23 -27
  140. package/dist/hooks/useDismiss.js +39 -27
  141. package/dist/hooks/useElementClientSize.d.ts +10 -10
  142. package/dist/hooks/useElementClientSize.js +8 -11
  143. package/dist/hooks/useElementWidth.d.ts +6 -13
  144. package/dist/hooks/useElementWidth.js +6 -14
  145. package/dist/hooks/useField.d.ts +47 -0
  146. package/dist/hooks/useField.js +40 -0
  147. package/dist/hooks/useHotkey.d.ts +77 -0
  148. package/dist/hooks/useHotkey.js +246 -0
  149. package/dist/hooks/useIsMac.d.ts +12 -0
  150. package/dist/hooks/useIsMac.js +27 -0
  151. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
  152. package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
  153. package/dist/hooks/useLocalStorage.d.ts +28 -0
  154. package/dist/hooks/useLocalStorage.js +145 -0
  155. package/dist/hooks/useMediaQuery.d.ts +11 -0
  156. package/dist/hooks/useMediaQuery.js +23 -0
  157. package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
  158. package/dist/hooks/usePrefersReducedMotion.js +25 -0
  159. package/dist/hooks/useResize.d.ts +42 -62
  160. package/dist/hooks/useResize.js +43 -31
  161. package/dist/icons/Icon.d.ts +64 -37
  162. package/dist/icons/Icon.js +96 -37
  163. package/dist/icons/internal/IconSlot.d.ts +10 -0
  164. package/dist/icons/internal/IconSlot.js +32 -0
  165. package/dist/inputs/CheckboxGroup.d.ts +115 -0
  166. package/dist/inputs/CheckboxGroup.js +183 -0
  167. package/dist/inputs/CheckboxInput.d.ts +98 -28
  168. package/dist/inputs/CheckboxInput.js +218 -88
  169. package/dist/inputs/ColorInput.d.ts +115 -29
  170. package/dist/inputs/ColorInput.js +748 -326
  171. package/dist/inputs/CopyInput.d.ts +49 -20
  172. package/dist/inputs/CopyInput.js +57 -49
  173. package/dist/inputs/CronInput.d.ts +94 -0
  174. package/dist/inputs/CronInput.js +618 -0
  175. package/dist/inputs/DateInput.d.ts +175 -28
  176. package/dist/inputs/DateInput.js +1109 -451
  177. package/dist/inputs/DurationInput.d.ts +101 -0
  178. package/dist/inputs/DurationInput.js +441 -0
  179. package/dist/inputs/Field.d.ts +75 -0
  180. package/dist/inputs/Field.js +247 -0
  181. package/dist/inputs/Fieldset.d.ts +53 -0
  182. package/dist/inputs/Fieldset.js +149 -0
  183. package/dist/inputs/FileInput.d.ts +110 -0
  184. package/dist/inputs/FileInput.js +476 -0
  185. package/dist/inputs/Input.d.ts +148 -187
  186. package/dist/inputs/Input.js +339 -259
  187. package/dist/inputs/KeyValueInput.d.ts +120 -0
  188. package/dist/inputs/KeyValueInput.js +383 -0
  189. package/dist/inputs/MultiSelectInput.d.ts +165 -54
  190. package/dist/inputs/MultiSelectInput.js +175 -559
  191. package/dist/inputs/NumberInput.d.ts +65 -9
  192. package/dist/inputs/NumberInput.js +197 -40
  193. package/dist/inputs/PasswordInput.d.ts +17 -12
  194. package/dist/inputs/PasswordInput.js +33 -33
  195. package/dist/inputs/PinInput.d.ts +117 -0
  196. package/dist/inputs/PinInput.js +364 -0
  197. package/dist/inputs/RadioGroup.d.ts +115 -0
  198. package/dist/inputs/RadioGroup.js +179 -0
  199. package/dist/inputs/RadioInput.d.ts +87 -24
  200. package/dist/inputs/RadioInput.js +182 -95
  201. package/dist/inputs/SearchInput.d.ts +66 -0
  202. package/dist/inputs/SearchInput.js +156 -0
  203. package/dist/inputs/SelectInput.d.ts +195 -55
  204. package/dist/inputs/SelectInput.js +1308 -446
  205. package/dist/inputs/SliderInput.d.ts +150 -30
  206. package/dist/inputs/SliderInput.js +441 -186
  207. package/dist/inputs/SwitchInput.d.ts +109 -0
  208. package/dist/inputs/SwitchInput.js +248 -0
  209. package/dist/inputs/TagInput.d.ts +117 -0
  210. package/dist/inputs/TagInput.js +408 -0
  211. package/dist/inputs/TextAreaInput.d.ts +146 -44
  212. package/dist/inputs/TextAreaInput.js +298 -198
  213. package/dist/inputs/TextInput.d.ts +4 -13
  214. package/dist/inputs/TextInput.js +13 -48
  215. package/dist/inputs/ToggleInput.d.ts +120 -22
  216. package/dist/inputs/ToggleInput.js +262 -116
  217. package/dist/inputs/internal/bareField.d.ts +18 -0
  218. package/dist/inputs/internal/bareField.js +38 -0
  219. package/dist/inputs/internal/devWarn.d.ts +7 -0
  220. package/dist/inputs/internal/devWarn.js +30 -0
  221. package/dist/inputs/internal/fieldFrame.d.ts +34 -0
  222. package/dist/inputs/internal/fieldFrame.js +64 -0
  223. package/dist/inputs/internal/fieldWiring.d.ts +50 -0
  224. package/dist/inputs/internal/fieldWiring.js +38 -0
  225. package/dist/inputs/internal/innerButton.d.ts +2 -0
  226. package/dist/inputs/internal/innerButton.js +24 -0
  227. package/dist/inputs/internal/ownField.d.ts +45 -0
  228. package/dist/inputs/internal/ownField.js +58 -0
  229. package/dist/inputs/internal/predicates.d.ts +9 -0
  230. package/dist/inputs/internal/predicates.js +11 -0
  231. package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
  232. package/dist/inputs/internal/useComboboxPopover.js +92 -0
  233. package/dist/json/JsonViewer.d.ts +62 -0
  234. package/dist/json/JsonViewer.js +483 -0
  235. package/dist/layout/Box.d.ts +87 -0
  236. package/dist/layout/Box.js +109 -0
  237. package/dist/layout/Divider.d.ts +25 -0
  238. package/dist/layout/Divider.js +70 -0
  239. package/dist/layout/Flex.d.ts +139 -0
  240. package/dist/layout/Flex.js +165 -0
  241. package/dist/layout/FlexItem.d.ts +72 -0
  242. package/dist/layout/FlexItem.js +84 -0
  243. package/dist/layout/Grid.d.ts +140 -0
  244. package/dist/layout/Grid.js +178 -0
  245. package/dist/layout/Portal.d.ts +29 -0
  246. package/dist/layout/Portal.js +27 -0
  247. package/dist/layout/ResizablePanels.d.ts +88 -0
  248. package/dist/layout/ResizablePanels.js +198 -0
  249. package/dist/layout/ResizeHandle.d.ts +48 -0
  250. package/dist/layout/ResizeHandle.js +143 -0
  251. package/dist/layout/ScrollArea.d.ts +30 -0
  252. package/dist/layout/ScrollArea.js +138 -0
  253. package/dist/links/Link.d.ts +101 -1
  254. package/dist/links/Link.js +166 -4
  255. package/dist/lists/BulletedList.d.ts +25 -7
  256. package/dist/lists/BulletedList.js +72 -27
  257. package/dist/lists/DescriptionList.d.ts +91 -0
  258. package/dist/lists/DescriptionList.js +147 -0
  259. package/dist/menu/ContextMenu.d.ts +64 -0
  260. package/dist/menu/ContextMenu.js +34 -0
  261. package/dist/menu/Menu.d.ts +280 -0
  262. package/dist/menu/Menu.js +1003 -0
  263. package/dist/modal/ConfirmDialog.d.ts +55 -0
  264. package/dist/modal/ConfirmDialog.js +151 -0
  265. package/dist/modal/Modal.d.ts +64 -14
  266. package/dist/modal/Modal.js +189 -48
  267. package/dist/navigation/Breadcrumbs.d.ts +65 -0
  268. package/dist/navigation/Breadcrumbs.js +243 -0
  269. package/dist/navigation/CommandPalette.d.ts +83 -0
  270. package/dist/navigation/CommandPalette.js +509 -0
  271. package/dist/navigation/Pagination.d.ts +87 -0
  272. package/dist/navigation/Pagination.js +300 -0
  273. package/dist/navigation/SidebarNav.d.ts +107 -0
  274. package/dist/navigation/SidebarNav.js +341 -0
  275. package/dist/navigation/Stepper.d.ts +52 -0
  276. package/dist/navigation/Stepper.js +207 -0
  277. package/dist/navigation/Tabs.d.ts +113 -0
  278. package/dist/navigation/Tabs.js +543 -0
  279. package/dist/navigation/Topbar.d.ts +20 -0
  280. package/dist/navigation/Topbar.js +62 -0
  281. package/dist/overlay/OverlayProvider.d.ts +28 -32
  282. package/dist/overlay/OverlayProvider.js +42 -93
  283. package/dist/overlay/useOverlay.d.ts +88 -12
  284. package/dist/overlay/useOverlay.js +220 -43
  285. package/dist/overlays/Popover.d.ts +114 -0
  286. package/dist/overlays/Popover.js +389 -0
  287. package/dist/shapes/Circle.d.ts +84 -8
  288. package/dist/shapes/Circle.js +122 -20
  289. package/dist/shapes/Square.d.ts +84 -8
  290. package/dist/shapes/Square.js +123 -20
  291. package/dist/styles/mixins.d.ts +35 -0
  292. package/dist/styles/mixins.js +60 -0
  293. package/dist/styles.css +1 -202
  294. package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
  295. package/dist/table/InfiniteSpreadsheet.js +762 -225
  296. package/dist/table/InfiniteTable.d.ts +116 -14
  297. package/dist/table/InfiniteTable.js +287 -429
  298. package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
  299. package/dist/table/SpreadsheetCellEditor.js +163 -84
  300. package/dist/table/TableCore.d.ts +252 -0
  301. package/dist/table/TableCore.js +1082 -0
  302. package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
  303. package/dist/table/VirtualizedInfiniteTable.js +280 -219
  304. package/dist/table/types.d.ts +66 -244
  305. package/dist/table/types.js +0 -51
  306. package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
  307. package/dist/table/useInfiniteScrollSentinel.js +38 -30
  308. package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
  309. package/dist/table/useSpreadsheetCellNavigation.js +141 -0
  310. package/dist/table/useTableColumnLayout.d.ts +90 -25
  311. package/dist/table/useTableColumnLayout.js +255 -50
  312. package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
  313. package/dist/table/useTableKeyboardNavigation.js +95 -71
  314. package/dist/table/useTableRowSelection.d.ts +24 -25
  315. package/dist/table/useTableRowSelection.js +57 -84
  316. package/dist/table/useTableVirtualizer.d.ts +20 -0
  317. package/dist/table/useTableVirtualizer.js +48 -0
  318. package/dist/text/Bold.d.ts +5 -6
  319. package/dist/text/Bold.js +16 -15
  320. package/dist/text/Code.d.ts +5 -6
  321. package/dist/text/Code.js +16 -25
  322. package/dist/text/CodeBlock.d.ts +77 -0
  323. package/dist/text/CodeBlock.js +373 -0
  324. package/dist/text/EditableText.d.ts +55 -15
  325. package/dist/text/EditableText.js +153 -135
  326. package/dist/text/Ellipsis.d.ts +34 -8
  327. package/dist/text/Ellipsis.js +55 -23
  328. package/dist/text/Kbd.d.ts +72 -0
  329. package/dist/text/Kbd.js +284 -0
  330. package/dist/text/MarkdownText.d.ts +27 -10
  331. package/dist/text/MarkdownText.js +317 -300
  332. package/dist/text/RequiredMarker.d.ts +17 -5
  333. package/dist/text/RequiredMarker.js +34 -36
  334. package/dist/text/Selectable.d.ts +5 -6
  335. package/dist/text/Selectable.js +16 -13
  336. package/dist/text/Span.d.ts +82 -0
  337. package/dist/text/Span.js +115 -0
  338. package/dist/text/Text.d.ts +128 -41
  339. package/dist/text/Text.js +209 -76
  340. package/dist/theme/GalaxyProvider.d.ts +75 -0
  341. package/dist/theme/GalaxyProvider.js +223 -0
  342. package/dist/theme/ThemeSwitcher.d.ts +52 -0
  343. package/dist/theme/ThemeSwitcher.js +94 -0
  344. package/dist/theme/enums.d.ts +118 -0
  345. package/dist/theme/enums.js +144 -0
  346. package/dist/theme/tokens/dark.d.ts +2 -0
  347. package/dist/theme/tokens/dark.js +275 -0
  348. package/dist/theme/tokens/generate.d.ts +15 -0
  349. package/dist/theme/tokens/generate.js +47 -0
  350. package/dist/theme/tokens/light.d.ts +2 -0
  351. package/dist/theme/tokens/light.js +274 -0
  352. package/dist/theme/tokens/palette.d.ts +14 -0
  353. package/dist/theme/tokens/palette.js +153 -0
  354. package/dist/theme/tokens/scales.d.ts +26 -0
  355. package/dist/theme/tokens/scales.js +154 -0
  356. package/dist/theme/tokens/t.d.ts +3 -0
  357. package/dist/theme/tokens/t.js +25 -0
  358. package/dist/theme/tokens/types.d.ts +189 -0
  359. package/dist/theme/tokens/types.js +0 -0
  360. package/dist/theme/useGalaxyTheme.d.ts +46 -0
  361. package/dist/theme/useGalaxyTheme.js +36 -0
  362. package/dist/theme/useInverseScope.d.ts +18 -0
  363. package/dist/theme/useInverseScope.js +33 -0
  364. package/dist/three/GalaxyLogomark3D.d.ts +46 -0
  365. package/dist/three/GalaxyLogomark3D.js +134 -0
  366. package/dist/three/assets/galaxy-logomark.js +4 -0
  367. package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
  368. package/dist/three/galaxyLogomark3DScene.js +165 -0
  369. package/dist/timeline/Timeline.d.ts +120 -0
  370. package/dist/timeline/Timeline.js +301 -0
  371. package/dist/toast/Toast.d.ts +43 -19
  372. package/dist/toast/Toast.js +130 -89
  373. package/dist/toast/ToastProvider.d.ts +23 -23
  374. package/dist/toast/ToastProvider.js +298 -101
  375. package/dist/toast/ToastViewport.d.ts +12 -0
  376. package/dist/toast/ToastViewport.js +210 -0
  377. package/dist/toast/useToast.d.ts +139 -5
  378. package/dist/toast/useToast.js +15 -13
  379. package/dist/tokens.css +654 -0
  380. package/dist/tooltip/Tooltip.d.ts +64 -44
  381. package/dist/tooltip/Tooltip.js +280 -73
  382. package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
  383. package/dist/tooltip/internal/LazyTooltip.js +53 -0
  384. package/dist/transform/Fade.d.ts +33 -11
  385. package/dist/transform/Fade.js +71 -19
  386. package/dist/transform/Flasher.d.ts +25 -0
  387. package/dist/transform/Flasher.js +39 -0
  388. package/dist/transform/Rotate.d.ts +24 -12
  389. package/dist/transform/Rotate.js +36 -22
  390. package/dist/transform/ScaleFade.d.ts +36 -11
  391. package/dist/transform/ScaleFade.js +86 -28
  392. package/dist/transform/internal/CollapseMotion.d.ts +10 -0
  393. package/dist/transform/internal/CollapseMotion.js +65 -0
  394. package/dist/tree/Tree.d.ts +85 -0
  395. package/dist/tree/Tree.js +387 -0
  396. package/dist/tree/treeRow.d.ts +39 -0
  397. package/dist/tree/treeRow.js +75 -0
  398. package/dist/utils/colors.d.ts +46 -13
  399. package/dist/utils/colors.js +92 -34
  400. package/dist/utils/css.d.ts +23 -0
  401. package/dist/utils/css.js +30 -0
  402. package/dist/utils/format.d.ts +58 -0
  403. package/dist/utils/format.js +220 -0
  404. package/dist/vite/index.d.ts +16 -0
  405. package/dist/vite/index.js +52 -0
  406. package/dist/widget/Widget.d.ts +164 -48
  407. package/dist/widget/Widget.js +335 -96
  408. package/dist/widget/WidgetGroup.d.ts +36 -0
  409. package/dist/widget/WidgetGroup.js +103 -0
  410. package/package.json +855 -157
  411. package/dist/accordion/Accordion.d.ts +0 -54
  412. package/dist/accordion/Accordion.js +0 -183
  413. package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
  414. package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
  415. package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
  416. package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
  417. package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
  418. package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
  419. package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
  420. package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
  421. package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
  422. package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
  423. package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
  424. package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
  425. package/dist/assets/models/galaxy-animation.js +0 -136666
  426. package/dist/assets/models/galaxy-logomark.js +0 -4
  427. package/dist/avatar/AvatarShimmer.d.ts +0 -30
  428. package/dist/avatar/AvatarShimmer.js +0 -22
  429. package/dist/backgrounds/CellGridBackground.d.ts +0 -24
  430. package/dist/backgrounds/CellGridBackground.js +0 -44
  431. package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
  432. package/dist/backgrounds/CrossGridBackground.js +0 -49
  433. package/dist/backgrounds/DotGridBackground.d.ts +0 -24
  434. package/dist/backgrounds/DotGridBackground.js +0 -47
  435. package/dist/badge/Badge.d.ts +0 -42
  436. package/dist/badge/Badge.js +0 -99
  437. package/dist/charts/ChartEmptyState.d.ts +0 -17
  438. package/dist/charts/ChartEmptyState.js +0 -29
  439. package/dist/charts/ProgressBar.d.ts +0 -29
  440. package/dist/charts/ProgressBar.js +0 -65
  441. package/dist/charts/chartTheme.d.ts +0 -18
  442. package/dist/charts/chartTheme.js +0 -26
  443. package/dist/containers/FlexItem.d.ts +0 -50
  444. package/dist/containers/FlexItem.js +0 -91
  445. package/dist/containers/FlexWrapper.d.ts +0 -96
  446. package/dist/containers/FlexWrapper.js +0 -143
  447. package/dist/containers/GridWrapper.d.ts +0 -79
  448. package/dist/containers/GridWrapper.js +0 -125
  449. package/dist/containers/Spacing.d.ts +0 -23
  450. package/dist/containers/Spacing.js +0 -59
  451. package/dist/containers/Wrapper.d.ts +0 -26
  452. package/dist/containers/Wrapper.js +0 -54
  453. package/dist/dividers/HorizontalDivider.d.ts +0 -7
  454. package/dist/dividers/HorizontalDivider.js +0 -39
  455. package/dist/dividers/VerticalDivider.d.ts +0 -6
  456. package/dist/dividers/VerticalDivider.js +0 -21
  457. package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
  458. package/dist/icons/GalaxyFilamentWordmark.js +0 -25
  459. package/dist/icons/GalaxyLogomark.d.ts +0 -13
  460. package/dist/icons/GalaxyLogomark.js +0 -27
  461. package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
  462. package/dist/icons/GalaxyLogomark3D.js +0 -319
  463. package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
  464. package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
  465. package/dist/icons/GalaxyWordmark.d.ts +0 -11
  466. package/dist/icons/GalaxyWordmark.js +0 -25
  467. package/dist/inputs/MultiTextInput.d.ts +0 -32
  468. package/dist/inputs/MultiTextInput.js +0 -180
  469. package/dist/inputs/SwitcherInput.d.ts +0 -30
  470. package/dist/inputs/SwitcherInput.js +0 -81
  471. package/dist/inputs/hooks.d.ts +0 -10
  472. package/dist/inputs/hooks.js +0 -22
  473. package/dist/overlay/constants.d.ts +0 -28
  474. package/dist/overlay/constants.js +0 -37
  475. package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
  476. package/dist/resizable/HorizontalResizeHandle.js +0 -38
  477. package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
  478. package/dist/resizable/VerticalResizeHandle.js +0 -39
  479. package/dist/table/SpreadsheetCell.d.ts +0 -21
  480. package/dist/table/SpreadsheetCell.js +0 -71
  481. package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
  482. package/dist/table/SpreadsheetHeaderCell.js +0 -91
  483. package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
  484. package/dist/table/SpreadsheetMenuItem.js +0 -33
  485. package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
  486. package/dist/table/SpreadsheetPrimitives.js +0 -105
  487. package/dist/table/SpreadsheetRow.d.ts +0 -33
  488. package/dist/table/SpreadsheetRow.js +0 -73
  489. package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
  490. package/dist/table/SpreadsheetRowActionCell.js +0 -51
  491. package/dist/table/TableExpandCell.d.ts +0 -11
  492. package/dist/table/TableExpandCell.js +0 -24
  493. package/dist/table/TableExpandedRow.d.ts +0 -16
  494. package/dist/table/TableExpandedRow.js +0 -77
  495. package/dist/table/TableHeaderCellContent.d.ts +0 -30
  496. package/dist/table/TableHeaderCellContent.js +0 -48
  497. package/dist/table/TablePrimitives.d.ts +0 -313
  498. package/dist/table/TablePrimitives.js +0 -302
  499. package/dist/table/TableSelectCell.d.ts +0 -18
  500. package/dist/table/TableSelectCell.js +0 -27
  501. package/dist/table/TableStatusRow.d.ts +0 -18
  502. package/dist/table/TableStatusRow.js +0 -50
  503. package/dist/table/useSpreadsheetEditing.d.ts +0 -13
  504. package/dist/table/useSpreadsheetEditing.js +0 -41
  505. package/dist/table/useTableColumnResize.d.ts +0 -38
  506. package/dist/table/useTableColumnResize.js +0 -155
  507. package/dist/table/useTableRowExpansion.d.ts +0 -24
  508. package/dist/table/useTableRowExpansion.js +0 -62
  509. package/dist/table/utils.d.ts +0 -50
  510. package/dist/table/utils.js +0 -78
  511. package/dist/text/HotKeys.d.ts +0 -30
  512. package/dist/text/HotKeys.js +0 -74
  513. package/dist/text/Paragraph.d.ts +0 -33
  514. package/dist/text/Paragraph.js +0 -83
  515. package/dist/text/TextShimmer.d.ts +0 -14
  516. package/dist/text/TextShimmer.js +0 -34
  517. package/dist/theme/GalaxyTheme.d.ts +0 -67
  518. package/dist/theme/GalaxyTheme.js +0 -119
  519. package/dist/theme/constants.d.ts +0 -8
  520. package/dist/theme/constants.js +0 -38
  521. package/dist/theme/index.d.ts +0 -6
  522. package/dist/theme/index.js +0 -7
  523. package/dist/theme/types.d.ts +0 -195
  524. package/dist/theme/types.js +0 -10
  525. package/dist/theme/typography.d.ts +0 -2
  526. package/dist/theme/typography.js +0 -73
  527. package/dist/theme/variants/dark.d.ts +0 -2
  528. package/dist/theme/variants/dark.js +0 -125
  529. package/dist/theme/variants/light.d.ts +0 -2
  530. package/dist/theme/variants/light.js +0 -125
  531. package/dist/toast/ToastContainer.d.ts +0 -10
  532. package/dist/toast/ToastContainer.js +0 -31
  533. package/dist/toast/ToastWrapper.d.ts +0 -6
  534. package/dist/toast/ToastWrapper.js +0 -27
  535. package/dist/transform/Flash.d.ts +0 -7
  536. package/dist/transform/Flash.js +0 -18
  537. package/dist/transform/Spin.d.ts +0 -14
  538. package/dist/transform/Spin.js +0 -25
  539. package/dist/utils/linaria.d.ts +0 -1
  540. 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;