@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.
- package/README.md +47 -50
- package/biome/index.json +74 -0
- package/biome/plugins/no-hex-literal.grit +20 -0
- package/biome/plugins/no-inline-style.grit +13 -0
- package/biome/plugins/no-margin.grit +9 -0
- package/biome/plugins/warn/no-hex-literal.grit +23 -0
- package/biome/plugins/warn/no-inline-style.grit +13 -0
- package/biome/plugins/warn/no-margin.grit +9 -0
- package/dist/a11y/FocusScope.d.ts +44 -0
- package/dist/a11y/FocusScope.js +229 -0
- package/dist/a11y/VisuallyHidden.d.ts +21 -0
- package/dist/a11y/VisuallyHidden.js +30 -0
- package/dist/avatar/Avatar.d.ts +56 -14
- package/dist/avatar/Avatar.js +250 -96
- package/dist/avatar/AvatarGroup.d.ts +43 -0
- package/dist/avatar/AvatarGroup.js +153 -0
- package/dist/backgrounds/GridBackground.d.ts +48 -0
- package/dist/backgrounds/GridBackground.js +146 -0
- package/dist/beacons/Beacon.d.ts +86 -22
- package/dist/beacons/Beacon.js +170 -47
- package/dist/brand/GalaxyFilamentWordmark.d.ts +30 -0
- package/dist/brand/GalaxyFilamentWordmark.js +39 -0
- package/dist/brand/GalaxyLogomark.d.ts +26 -0
- package/dist/brand/GalaxyLogomark.js +41 -0
- package/dist/brand/GalaxyLogomarkAnimation.d.ts +36 -0
- package/dist/brand/GalaxyLogomarkAnimation.js +107 -0
- package/dist/brand/GalaxyWordmark.d.ts +30 -0
- package/dist/brand/GalaxyWordmark.js +63 -0
- package/dist/brand/assets/galaxy-logomark-animation.js +136678 -0
- package/dist/brand/brandMark.d.ts +26 -0
- package/dist/brand/brandMark.js +35 -0
- package/dist/buttons/Button.d.ts +148 -59
- package/dist/buttons/Button.js +437 -227
- package/dist/buttons/ButtonGroup.d.ts +38 -0
- package/dist/buttons/ButtonGroup.js +68 -0
- package/dist/buttons/CopyButton.d.ts +77 -0
- package/dist/buttons/CopyButton.js +65 -0
- package/dist/charts/AreaChart.d.ts +49 -0
- package/dist/charts/AreaChart.js +31 -0
- package/dist/charts/BarChart.d.ts +54 -67
- package/dist/charts/BarChart.js +136 -116
- package/dist/charts/ChartAxis.d.ts +35 -40
- package/dist/charts/ChartAxis.js +114 -90
- package/dist/charts/ChartCategoryTargets.d.ts +12 -26
- package/dist/charts/ChartCategoryTargets.js +32 -20
- package/dist/charts/ChartFrame.d.ts +69 -116
- package/dist/charts/ChartFrame.js +253 -119
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +27 -48
- package/dist/charts/ChartLegend.js +206 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +33 -20
- package/dist/charts/ChartPrimitives.d.ts +50 -305
- package/dist/charts/ChartPrimitives.js +65 -413
- package/dist/charts/ChartTooltip.d.ts +20 -26
- package/dist/charts/ChartTooltip.js +77 -40
- package/dist/charts/Heatmap.d.ts +35 -0
- package/dist/charts/Heatmap.js +295 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +159 -117
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +149 -135
- package/dist/charts/Sparkline.d.ts +107 -0
- package/dist/charts/Sparkline.js +244 -0
- package/dist/charts/StatChart.d.ts +37 -13
- package/dist/charts/StatChart.js +82 -35
- package/dist/charts/barChartGeometry.d.ts +138 -86
- package/dist/charts/barChartGeometry.js +122 -101
- package/dist/charts/barChartLegend.d.ts +14 -18
- package/dist/charts/barChartLegend.js +18 -13
- package/dist/charts/chartFormat.d.ts +12 -18
- package/dist/charts/chartFormat.js +20 -52
- package/dist/charts/chartPalette.d.ts +33 -0
- package/dist/charts/chartPalette.js +68 -0
- package/dist/charts/chartScales.d.ts +41 -108
- package/dist/charts/chartScales.js +62 -128
- package/dist/charts/constants.d.ts +96 -256
- package/dist/charts/constants.js +105 -275
- package/dist/charts/heatmapGeometry.d.ts +95 -0
- package/dist/charts/heatmapGeometry.js +155 -0
- package/dist/charts/lineChartGeometry.d.ts +108 -58
- package/dist/charts/lineChartGeometry.js +120 -78
- package/dist/charts/pieChartGeometry.d.ts +66 -40
- package/dist/charts/pieChartGeometry.js +68 -38
- package/dist/charts/types.d.ts +197 -466
- package/dist/charts/types.js +55 -144
- package/dist/charts/useCartesianChartLayout.d.ts +28 -59
- package/dist/charts/useCartesianChartLayout.js +47 -32
- package/dist/charts/useChartDimensions.d.ts +19 -40
- package/dist/charts/useChartDimensions.js +40 -56
- package/dist/charts/useChartFormatters.d.ts +6 -15
- package/dist/charts/useChartFormatters.js +4 -9
- package/dist/charts/useChartInteraction.d.ts +47 -116
- package/dist/charts/useChartInteraction.js +95 -71
- package/dist/charts/useChartTooltipPosition.d.ts +29 -39
- package/dist/charts/useChartTooltipPosition.js +14 -5
- package/dist/charts/useSeriesColorResolver.d.ts +11 -33
- package/dist/charts/useSeriesColorResolver.js +19 -12
- package/dist/chips/Chip.d.ts +155 -44
- package/dist/chips/Chip.js +329 -155
- package/dist/chips/ChipGroup.d.ts +53 -0
- package/dist/chips/ChipGroup.js +98 -0
- package/dist/drawer/Drawer.d.ts +81 -17
- package/dist/drawer/Drawer.js +370 -65
- package/dist/dropdown/Dropdown.d.ts +80 -63
- package/dist/dropdown/Dropdown.js +127 -129
- package/dist/editor/CodeEditor.d.ts +119 -40
- package/dist/editor/CodeEditor.js +490 -400
- package/dist/editor/CodeEditorReactWidget.d.ts +20 -17
- package/dist/editor/CodeEditorReactWidget.js +28 -21
- package/dist/feedback/Alert.d.ts +49 -0
- package/dist/feedback/Alert.js +172 -0
- package/dist/feedback/EmptyState.d.ts +39 -0
- package/dist/feedback/EmptyState.js +109 -0
- package/dist/feedback/ProgressBar.d.ts +125 -0
- package/dist/feedback/ProgressBar.js +183 -0
- package/dist/feedback/ProgressCircle.d.ts +99 -0
- package/dist/feedback/ProgressCircle.js +187 -0
- package/dist/feedback/Skeleton.d.ts +69 -0
- package/dist/feedback/Skeleton.js +130 -0
- package/dist/feedback/Spinner.d.ts +63 -0
- package/dist/feedback/Spinner.js +141 -0
- package/dist/fonts.css +70 -0
- package/dist/hooks/internal/useIsClient.d.ts +2 -0
- package/dist/hooks/internal/useIsClient.js +14 -0
- package/dist/hooks/useClipboard.d.ts +19 -0
- package/dist/hooks/useClipboard.js +45 -0
- package/dist/hooks/useControlledOpenState.d.ts +21 -0
- package/dist/hooks/useControlledOpenState.js +19 -0
- package/dist/hooks/useControlledState.d.ts +19 -0
- package/dist/hooks/useControlledState.js +22 -0
- package/dist/hooks/useDebouncedValue.d.ts +14 -0
- package/dist/hooks/useDebouncedValue.js +33 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +36 -0
- package/dist/hooks/useDismiss.d.ts +23 -27
- package/dist/hooks/useDismiss.js +39 -27
- package/dist/hooks/useElementClientSize.d.ts +10 -10
- package/dist/hooks/useElementClientSize.js +8 -11
- package/dist/hooks/useElementWidth.d.ts +6 -13
- package/dist/hooks/useElementWidth.js +6 -14
- package/dist/hooks/useField.d.ts +47 -0
- package/dist/hooks/useField.js +40 -0
- package/dist/hooks/useHotkey.d.ts +77 -0
- package/dist/hooks/useHotkey.js +246 -0
- package/dist/hooks/useIsMac.d.ts +12 -0
- package/dist/hooks/useIsMac.js +27 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +17 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +20 -0
- package/dist/hooks/useLocalStorage.d.ts +28 -0
- package/dist/hooks/useLocalStorage.js +145 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.js +23 -0
- package/dist/hooks/usePrefersReducedMotion.d.ts +12 -0
- package/dist/hooks/usePrefersReducedMotion.js +25 -0
- package/dist/hooks/useResize.d.ts +42 -62
- package/dist/hooks/useResize.js +43 -31
- package/dist/icons/Icon.d.ts +64 -37
- package/dist/icons/Icon.js +96 -37
- package/dist/icons/internal/IconSlot.d.ts +10 -0
- package/dist/icons/internal/IconSlot.js +32 -0
- package/dist/inputs/CheckboxGroup.d.ts +115 -0
- package/dist/inputs/CheckboxGroup.js +183 -0
- package/dist/inputs/CheckboxInput.d.ts +98 -28
- package/dist/inputs/CheckboxInput.js +218 -88
- package/dist/inputs/ColorInput.d.ts +115 -29
- package/dist/inputs/ColorInput.js +748 -326
- package/dist/inputs/CopyInput.d.ts +49 -20
- package/dist/inputs/CopyInput.js +57 -49
- package/dist/inputs/CronInput.d.ts +94 -0
- package/dist/inputs/CronInput.js +618 -0
- package/dist/inputs/DateInput.d.ts +175 -28
- package/dist/inputs/DateInput.js +1109 -451
- package/dist/inputs/DurationInput.d.ts +101 -0
- package/dist/inputs/DurationInput.js +441 -0
- package/dist/inputs/Field.d.ts +75 -0
- package/dist/inputs/Field.js +247 -0
- package/dist/inputs/Fieldset.d.ts +53 -0
- package/dist/inputs/Fieldset.js +149 -0
- package/dist/inputs/FileInput.d.ts +110 -0
- package/dist/inputs/FileInput.js +476 -0
- package/dist/inputs/Input.d.ts +148 -187
- package/dist/inputs/Input.js +339 -259
- package/dist/inputs/KeyValueInput.d.ts +120 -0
- package/dist/inputs/KeyValueInput.js +383 -0
- package/dist/inputs/MultiSelectInput.d.ts +165 -54
- package/dist/inputs/MultiSelectInput.js +175 -559
- package/dist/inputs/NumberInput.d.ts +65 -9
- package/dist/inputs/NumberInput.js +197 -40
- package/dist/inputs/PasswordInput.d.ts +17 -12
- package/dist/inputs/PasswordInput.js +33 -33
- package/dist/inputs/PinInput.d.ts +117 -0
- package/dist/inputs/PinInput.js +364 -0
- package/dist/inputs/RadioGroup.d.ts +115 -0
- package/dist/inputs/RadioGroup.js +179 -0
- package/dist/inputs/RadioInput.d.ts +87 -24
- package/dist/inputs/RadioInput.js +182 -95
- package/dist/inputs/SearchInput.d.ts +66 -0
- package/dist/inputs/SearchInput.js +156 -0
- package/dist/inputs/SelectInput.d.ts +195 -55
- package/dist/inputs/SelectInput.js +1308 -446
- package/dist/inputs/SliderInput.d.ts +150 -30
- package/dist/inputs/SliderInput.js +441 -186
- package/dist/inputs/SwitchInput.d.ts +109 -0
- package/dist/inputs/SwitchInput.js +248 -0
- package/dist/inputs/TagInput.d.ts +117 -0
- package/dist/inputs/TagInput.js +408 -0
- package/dist/inputs/TextAreaInput.d.ts +146 -44
- package/dist/inputs/TextAreaInput.js +292 -198
- package/dist/inputs/TextInput.d.ts +4 -13
- package/dist/inputs/TextInput.js +13 -48
- package/dist/inputs/ToggleInput.d.ts +120 -22
- package/dist/inputs/ToggleInput.js +262 -116
- package/dist/inputs/internal/bareField.d.ts +18 -0
- package/dist/inputs/internal/bareField.js +38 -0
- package/dist/inputs/internal/devWarn.d.ts +7 -0
- package/dist/inputs/internal/devWarn.js +30 -0
- package/dist/inputs/internal/fieldFrame.d.ts +34 -0
- package/dist/inputs/internal/fieldFrame.js +64 -0
- package/dist/inputs/internal/fieldWiring.d.ts +50 -0
- package/dist/inputs/internal/fieldWiring.js +38 -0
- package/dist/inputs/internal/innerButton.d.ts +2 -0
- package/dist/inputs/internal/innerButton.js +24 -0
- package/dist/inputs/internal/ownField.d.ts +45 -0
- package/dist/inputs/internal/ownField.js +58 -0
- package/dist/inputs/internal/predicates.d.ts +9 -0
- package/dist/inputs/internal/predicates.js +11 -0
- package/dist/inputs/internal/useComboboxPopover.d.ts +46 -0
- package/dist/inputs/internal/useComboboxPopover.js +92 -0
- package/dist/json/JsonViewer.d.ts +62 -0
- package/dist/json/JsonViewer.js +483 -0
- package/dist/layout/Box.d.ts +87 -0
- package/dist/layout/Box.js +109 -0
- package/dist/layout/Divider.d.ts +25 -0
- package/dist/layout/Divider.js +70 -0
- package/dist/layout/Flex.d.ts +139 -0
- package/dist/layout/Flex.js +165 -0
- package/dist/layout/FlexItem.d.ts +72 -0
- package/dist/layout/FlexItem.js +84 -0
- package/dist/layout/Grid.d.ts +140 -0
- package/dist/layout/Grid.js +178 -0
- package/dist/layout/Portal.d.ts +29 -0
- package/dist/layout/Portal.js +27 -0
- package/dist/layout/ResizablePanels.d.ts +88 -0
- package/dist/layout/ResizablePanels.js +198 -0
- package/dist/layout/ResizeHandle.d.ts +48 -0
- package/dist/layout/ResizeHandle.js +143 -0
- package/dist/layout/ScrollArea.d.ts +30 -0
- package/dist/layout/ScrollArea.js +138 -0
- package/dist/links/Link.d.ts +101 -1
- package/dist/links/Link.js +166 -4
- package/dist/lists/BulletedList.d.ts +25 -7
- package/dist/lists/BulletedList.js +72 -27
- package/dist/lists/DescriptionList.d.ts +91 -0
- package/dist/lists/DescriptionList.js +147 -0
- package/dist/menu/ContextMenu.d.ts +64 -0
- package/dist/menu/ContextMenu.js +34 -0
- package/dist/menu/Menu.d.ts +280 -0
- package/dist/menu/Menu.js +1003 -0
- package/dist/modal/ConfirmDialog.d.ts +55 -0
- package/dist/modal/ConfirmDialog.js +151 -0
- package/dist/modal/Modal.d.ts +64 -14
- package/dist/modal/Modal.js +189 -48
- package/dist/navigation/Breadcrumbs.d.ts +65 -0
- package/dist/navigation/Breadcrumbs.js +243 -0
- package/dist/navigation/CommandPalette.d.ts +83 -0
- package/dist/navigation/CommandPalette.js +509 -0
- package/dist/navigation/Pagination.d.ts +87 -0
- package/dist/navigation/Pagination.js +300 -0
- package/dist/navigation/SidebarNav.d.ts +107 -0
- package/dist/navigation/SidebarNav.js +341 -0
- package/dist/navigation/Stepper.d.ts +52 -0
- package/dist/navigation/Stepper.js +207 -0
- package/dist/navigation/Tabs.d.ts +113 -0
- package/dist/navigation/Tabs.js +543 -0
- package/dist/navigation/Topbar.d.ts +20 -0
- package/dist/navigation/Topbar.js +62 -0
- package/dist/overlay/OverlayProvider.d.ts +28 -32
- package/dist/overlay/OverlayProvider.js +42 -93
- package/dist/overlay/useOverlay.d.ts +88 -12
- package/dist/overlay/useOverlay.js +220 -43
- package/dist/overlays/Popover.d.ts +114 -0
- package/dist/overlays/Popover.js +389 -0
- package/dist/shapes/Circle.d.ts +84 -8
- package/dist/shapes/Circle.js +122 -20
- package/dist/shapes/Square.d.ts +84 -8
- package/dist/shapes/Square.js +123 -20
- package/dist/styles/mixins.d.ts +35 -0
- package/dist/styles/mixins.js +60 -0
- package/dist/styles.css +1 -202
- package/dist/table/InfiniteSpreadsheet.d.ts +140 -10
- package/dist/table/InfiniteSpreadsheet.js +762 -225
- package/dist/table/InfiniteTable.d.ts +116 -14
- package/dist/table/InfiniteTable.js +287 -429
- package/dist/table/SpreadsheetCellEditor.d.ts +54 -6
- package/dist/table/SpreadsheetCellEditor.js +163 -84
- package/dist/table/TableCore.d.ts +252 -0
- package/dist/table/TableCore.js +1077 -0
- package/dist/table/VirtualizedInfiniteTable.d.ts +104 -14
- package/dist/table/VirtualizedInfiniteTable.js +280 -219
- package/dist/table/types.d.ts +66 -244
- package/dist/table/types.js +0 -51
- package/dist/table/useInfiniteScrollSentinel.d.ts +25 -21
- package/dist/table/useInfiniteScrollSentinel.js +38 -30
- package/dist/table/useSpreadsheetCellNavigation.d.ts +44 -0
- package/dist/table/useSpreadsheetCellNavigation.js +141 -0
- package/dist/table/useTableColumnLayout.d.ts +90 -25
- package/dist/table/useTableColumnLayout.js +255 -50
- package/dist/table/useTableKeyboardNavigation.d.ts +32 -21
- package/dist/table/useTableKeyboardNavigation.js +95 -71
- package/dist/table/useTableRowSelection.d.ts +24 -25
- package/dist/table/useTableRowSelection.js +57 -84
- package/dist/table/useTableVirtualizer.d.ts +20 -0
- package/dist/table/useTableVirtualizer.js +48 -0
- package/dist/text/Bold.d.ts +5 -6
- package/dist/text/Bold.js +16 -15
- package/dist/text/Code.d.ts +5 -6
- package/dist/text/Code.js +16 -25
- package/dist/text/CodeBlock.d.ts +77 -0
- package/dist/text/CodeBlock.js +373 -0
- package/dist/text/EditableText.d.ts +55 -15
- package/dist/text/EditableText.js +153 -135
- package/dist/text/Ellipsis.d.ts +34 -8
- package/dist/text/Ellipsis.js +55 -23
- package/dist/text/Kbd.d.ts +72 -0
- package/dist/text/Kbd.js +284 -0
- package/dist/text/MarkdownText.d.ts +27 -10
- package/dist/text/MarkdownText.js +317 -300
- package/dist/text/RequiredMarker.d.ts +17 -5
- package/dist/text/RequiredMarker.js +34 -36
- package/dist/text/Selectable.d.ts +5 -6
- package/dist/text/Selectable.js +16 -13
- package/dist/text/Span.d.ts +82 -0
- package/dist/text/Span.js +115 -0
- package/dist/text/Text.d.ts +128 -41
- package/dist/text/Text.js +209 -76
- package/dist/theme/GalaxyProvider.d.ts +75 -0
- package/dist/theme/GalaxyProvider.js +223 -0
- package/dist/theme/ThemeSwitcher.d.ts +52 -0
- package/dist/theme/ThemeSwitcher.js +94 -0
- package/dist/theme/enums.d.ts +118 -0
- package/dist/theme/enums.js +144 -0
- package/dist/theme/tokens/dark.d.ts +2 -0
- package/dist/theme/tokens/dark.js +275 -0
- package/dist/theme/tokens/generate.d.ts +15 -0
- package/dist/theme/tokens/generate.js +47 -0
- package/dist/theme/tokens/light.d.ts +2 -0
- package/dist/theme/tokens/light.js +274 -0
- package/dist/theme/tokens/palette.d.ts +14 -0
- package/dist/theme/tokens/palette.js +153 -0
- package/dist/theme/tokens/scales.d.ts +26 -0
- package/dist/theme/tokens/scales.js +154 -0
- package/dist/theme/tokens/t.d.ts +3 -0
- package/dist/theme/tokens/t.js +25 -0
- package/dist/theme/tokens/types.d.ts +189 -0
- package/dist/theme/tokens/types.js +0 -0
- package/dist/theme/useGalaxyTheme.d.ts +46 -0
- package/dist/theme/useGalaxyTheme.js +36 -0
- package/dist/theme/useInverseScope.d.ts +18 -0
- package/dist/theme/useInverseScope.js +33 -0
- package/dist/three/GalaxyLogomark3D.d.ts +46 -0
- package/dist/three/GalaxyLogomark3D.js +134 -0
- package/dist/three/assets/galaxy-logomark.js +4 -0
- package/dist/three/galaxyLogomark3DScene.d.ts +27 -0
- package/dist/three/galaxyLogomark3DScene.js +165 -0
- package/dist/timeline/Timeline.d.ts +99 -0
- package/dist/timeline/Timeline.js +269 -0
- package/dist/toast/Toast.d.ts +43 -19
- package/dist/toast/Toast.js +130 -89
- package/dist/toast/ToastProvider.d.ts +23 -23
- package/dist/toast/ToastProvider.js +298 -101
- package/dist/toast/ToastViewport.d.ts +12 -0
- package/dist/toast/ToastViewport.js +210 -0
- package/dist/toast/useToast.d.ts +139 -5
- package/dist/toast/useToast.js +15 -13
- package/dist/tokens.css +654 -0
- package/dist/tooltip/Tooltip.d.ts +64 -44
- package/dist/tooltip/Tooltip.js +280 -73
- package/dist/tooltip/internal/LazyTooltip.d.ts +7 -0
- package/dist/tooltip/internal/LazyTooltip.js +53 -0
- package/dist/transform/Fade.d.ts +33 -11
- package/dist/transform/Fade.js +71 -19
- package/dist/transform/Flasher.d.ts +25 -0
- package/dist/transform/Flasher.js +39 -0
- package/dist/transform/Rotate.d.ts +24 -12
- package/dist/transform/Rotate.js +36 -22
- package/dist/transform/ScaleFade.d.ts +36 -11
- package/dist/transform/ScaleFade.js +86 -28
- package/dist/transform/internal/CollapseMotion.d.ts +10 -0
- package/dist/transform/internal/CollapseMotion.js +65 -0
- package/dist/tree/Tree.d.ts +85 -0
- package/dist/tree/Tree.js +387 -0
- package/dist/tree/treeRow.d.ts +39 -0
- package/dist/tree/treeRow.js +75 -0
- package/dist/utils/colors.d.ts +46 -13
- package/dist/utils/colors.js +92 -34
- package/dist/utils/css.d.ts +23 -0
- package/dist/utils/css.js +30 -0
- package/dist/utils/format.d.ts +58 -0
- package/dist/utils/format.js +220 -0
- package/dist/vite/index.d.ts +16 -0
- package/dist/vite/index.js +52 -0
- package/dist/widget/Widget.d.ts +164 -48
- package/dist/widget/Widget.js +335 -96
- package/dist/widget/WidgetGroup.d.ts +36 -0
- package/dist/widget/WidgetGroup.js +103 -0
- package/package.json +851 -157
- package/dist/accordion/Accordion.d.ts +0 -54
- package/dist/accordion/Accordion.js +0 -183
- package/dist/assets/components/GalaxyFilamentWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkDark.js +0 -14
- package/dist/assets/components/GalaxyFilamentWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyFilamentWordmarkLight.js +0 -14
- package/dist/assets/components/GalaxyLogomarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkDark.js +0 -11
- package/dist/assets/components/GalaxyLogomarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyLogomarkLight.js +0 -17
- package/dist/assets/components/GalaxyWordmarkDark.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkDark.js +0 -15
- package/dist/assets/components/GalaxyWordmarkLight.d.ts +0 -3
- package/dist/assets/components/GalaxyWordmarkLight.js +0 -28
- package/dist/assets/models/galaxy-animation.js +0 -136666
- package/dist/assets/models/galaxy-logomark.js +0 -4
- package/dist/avatar/AvatarShimmer.d.ts +0 -30
- package/dist/avatar/AvatarShimmer.js +0 -22
- package/dist/backgrounds/CellGridBackground.d.ts +0 -24
- package/dist/backgrounds/CellGridBackground.js +0 -44
- package/dist/backgrounds/CrossGridBackground.d.ts +0 -26
- package/dist/backgrounds/CrossGridBackground.js +0 -49
- package/dist/backgrounds/DotGridBackground.d.ts +0 -24
- package/dist/backgrounds/DotGridBackground.js +0 -47
- package/dist/badge/Badge.d.ts +0 -42
- package/dist/badge/Badge.js +0 -99
- package/dist/charts/ChartEmptyState.d.ts +0 -17
- package/dist/charts/ChartEmptyState.js +0 -29
- package/dist/charts/ProgressBar.d.ts +0 -29
- package/dist/charts/ProgressBar.js +0 -65
- package/dist/charts/chartTheme.d.ts +0 -18
- package/dist/charts/chartTheme.js +0 -26
- package/dist/containers/FlexItem.d.ts +0 -50
- package/dist/containers/FlexItem.js +0 -91
- package/dist/containers/FlexWrapper.d.ts +0 -96
- package/dist/containers/FlexWrapper.js +0 -143
- package/dist/containers/GridWrapper.d.ts +0 -79
- package/dist/containers/GridWrapper.js +0 -125
- package/dist/containers/Spacing.d.ts +0 -23
- package/dist/containers/Spacing.js +0 -59
- package/dist/containers/Wrapper.d.ts +0 -26
- package/dist/containers/Wrapper.js +0 -54
- package/dist/dividers/HorizontalDivider.d.ts +0 -7
- package/dist/dividers/HorizontalDivider.js +0 -39
- package/dist/dividers/VerticalDivider.d.ts +0 -6
- package/dist/dividers/VerticalDivider.js +0 -21
- package/dist/icons/GalaxyFilamentWordmark.d.ts +0 -11
- package/dist/icons/GalaxyFilamentWordmark.js +0 -25
- package/dist/icons/GalaxyLogomark.d.ts +0 -13
- package/dist/icons/GalaxyLogomark.js +0 -27
- package/dist/icons/GalaxyLogomark3D.d.ts +0 -56
- package/dist/icons/GalaxyLogomark3D.js +0 -319
- package/dist/icons/GalaxyLogomarkAnimation.d.ts +0 -18
- package/dist/icons/GalaxyLogomarkAnimation.js +0 -48
- package/dist/icons/GalaxyWordmark.d.ts +0 -11
- package/dist/icons/GalaxyWordmark.js +0 -25
- package/dist/inputs/MultiTextInput.d.ts +0 -32
- package/dist/inputs/MultiTextInput.js +0 -180
- package/dist/inputs/SwitcherInput.d.ts +0 -30
- package/dist/inputs/SwitcherInput.js +0 -81
- package/dist/inputs/hooks.d.ts +0 -10
- package/dist/inputs/hooks.js +0 -22
- package/dist/overlay/constants.d.ts +0 -28
- package/dist/overlay/constants.js +0 -37
- package/dist/resizable/HorizontalResizeHandle.d.ts +0 -17
- package/dist/resizable/HorizontalResizeHandle.js +0 -38
- package/dist/resizable/VerticalResizeHandle.d.ts +0 -18
- package/dist/resizable/VerticalResizeHandle.js +0 -39
- package/dist/table/SpreadsheetCell.d.ts +0 -21
- package/dist/table/SpreadsheetCell.js +0 -71
- package/dist/table/SpreadsheetHeaderCell.d.ts +0 -23
- package/dist/table/SpreadsheetHeaderCell.js +0 -91
- package/dist/table/SpreadsheetMenuItem.d.ts +0 -14
- package/dist/table/SpreadsheetMenuItem.js +0 -33
- package/dist/table/SpreadsheetPrimitives.d.ts +0 -172
- package/dist/table/SpreadsheetPrimitives.js +0 -105
- package/dist/table/SpreadsheetRow.d.ts +0 -33
- package/dist/table/SpreadsheetRow.js +0 -73
- package/dist/table/SpreadsheetRowActionCell.d.ts +0 -14
- package/dist/table/SpreadsheetRowActionCell.js +0 -51
- package/dist/table/TableExpandCell.d.ts +0 -11
- package/dist/table/TableExpandCell.js +0 -24
- package/dist/table/TableExpandedRow.d.ts +0 -16
- package/dist/table/TableExpandedRow.js +0 -77
- package/dist/table/TableHeaderCellContent.d.ts +0 -30
- package/dist/table/TableHeaderCellContent.js +0 -48
- package/dist/table/TablePrimitives.d.ts +0 -313
- package/dist/table/TablePrimitives.js +0 -302
- package/dist/table/TableSelectCell.d.ts +0 -18
- package/dist/table/TableSelectCell.js +0 -27
- package/dist/table/TableStatusRow.d.ts +0 -18
- package/dist/table/TableStatusRow.js +0 -50
- package/dist/table/useSpreadsheetEditing.d.ts +0 -13
- package/dist/table/useSpreadsheetEditing.js +0 -41
- package/dist/table/useTableColumnResize.d.ts +0 -38
- package/dist/table/useTableColumnResize.js +0 -155
- package/dist/table/useTableRowExpansion.d.ts +0 -24
- package/dist/table/useTableRowExpansion.js +0 -62
- package/dist/table/utils.d.ts +0 -50
- package/dist/table/utils.js +0 -78
- package/dist/text/HotKeys.d.ts +0 -30
- package/dist/text/HotKeys.js +0 -74
- package/dist/text/Paragraph.d.ts +0 -33
- package/dist/text/Paragraph.js +0 -83
- package/dist/text/TextShimmer.d.ts +0 -14
- package/dist/text/TextShimmer.js +0 -34
- package/dist/theme/GalaxyTheme.d.ts +0 -67
- package/dist/theme/GalaxyTheme.js +0 -119
- package/dist/theme/constants.d.ts +0 -8
- package/dist/theme/constants.js +0 -38
- package/dist/theme/index.d.ts +0 -6
- package/dist/theme/index.js +0 -7
- package/dist/theme/types.d.ts +0 -195
- package/dist/theme/types.js +0 -10
- package/dist/theme/typography.d.ts +0 -2
- package/dist/theme/typography.js +0 -73
- package/dist/theme/variants/dark.d.ts +0 -2
- package/dist/theme/variants/dark.js +0 -125
- package/dist/theme/variants/light.d.ts +0 -2
- package/dist/theme/variants/light.js +0 -125
- package/dist/toast/ToastContainer.d.ts +0 -10
- package/dist/toast/ToastContainer.js +0 -31
- package/dist/toast/ToastWrapper.d.ts +0 -6
- package/dist/toast/ToastWrapper.js +0 -27
- package/dist/transform/Flash.d.ts +0 -7
- package/dist/transform/Flash.js +0 -18
- package/dist/transform/Spin.d.ts +0 -14
- package/dist/transform/Spin.js +0 -25
- package/dist/utils/linaria.d.ts +0 -1
- package/dist/utils/linaria.js +0 -8
|
@@ -1,10 +1,66 @@
|
|
|
1
|
-
import { type InputProps } from "./Input";
|
|
2
|
-
/** Every `
|
|
3
|
-
export type NumberInputProps = Omit<InputProps
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { type InputProps } from "./Input.js";
|
|
2
|
+
/** Every `Input` prop except the string value quartet and what NumberInput fixes, plus its own. */
|
|
3
|
+
export type NumberInputProps = Omit<InputProps, "type" | "value" | "defaultValue" | "onChange" | "onEnter" | "isClearable" | "inputMode" | "maxLength" | "spellCheck"> & {
|
|
4
|
+
/** Controlled committed value. `null` is an empty field. */
|
|
5
|
+
value?: number | null;
|
|
6
|
+
/**
|
|
7
|
+
* Initial value while uncontrolled.
|
|
8
|
+
* @default null
|
|
9
|
+
*/
|
|
10
|
+
defaultValue?: number | null;
|
|
11
|
+
/** Called when a value is committed (blur, Enter or a step), clamped and rounded, and only if it changed. `null` when cleared. */
|
|
12
|
+
onChange?: (value: number | null) => void;
|
|
13
|
+
/** Called after Enter commits, with the committed value. Enter still submits a surrounding form. */
|
|
14
|
+
onEnter?: (value: number | null) => void;
|
|
15
|
+
/** Lowest allowed value. Commits and steps clamp to it. */
|
|
16
|
+
min?: number;
|
|
17
|
+
/** Highest allowed value. Commits and steps clamp to it. */
|
|
18
|
+
max?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Amount the arrow keys and steppers add or subtract. PageUp / PageDown use ten steps.
|
|
21
|
+
* @default 1
|
|
22
|
+
*/
|
|
23
|
+
step?: number;
|
|
24
|
+
/** Maximum fraction digits; commits round to it. `0` allows integers only. Unset keeps what was typed. */
|
|
25
|
+
precision?: number;
|
|
26
|
+
/** Display text while the field is not focused, e.g. `formatNumber`. The raw number shows while editing. */
|
|
27
|
+
format?: (value: number) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Shows `−` / `+` buttons at the end of the field.
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
hasSteppers?: boolean;
|
|
33
|
+
};
|
|
34
|
+
/** A single-line number field: `Input` with `type="text"`, parsing, clamping and stepping at its edge. */
|
|
35
|
+
declare const NumberInput: import("react").ForwardRefExoticComponent<Omit<InputProps, "value" | "defaultValue" | "onChange" | "spellCheck" | "inputMode" | "type" | "onEnter" | "maxLength" | "isClearable"> & {
|
|
36
|
+
/** Controlled committed value. `null` is an empty field. */
|
|
37
|
+
value?: number | null;
|
|
38
|
+
/**
|
|
39
|
+
* Initial value while uncontrolled.
|
|
40
|
+
* @default null
|
|
41
|
+
*/
|
|
42
|
+
defaultValue?: number | null;
|
|
43
|
+
/** Called when a value is committed (blur, Enter or a step), clamped and rounded, and only if it changed. `null` when cleared. */
|
|
44
|
+
onChange?: (value: number | null) => void;
|
|
45
|
+
/** Called after Enter commits, with the committed value. Enter still submits a surrounding form. */
|
|
46
|
+
onEnter?: (value: number | null) => void;
|
|
47
|
+
/** Lowest allowed value. Commits and steps clamp to it. */
|
|
48
|
+
min?: number;
|
|
49
|
+
/** Highest allowed value. Commits and steps clamp to it. */
|
|
50
|
+
max?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Amount the arrow keys and steppers add or subtract. PageUp / PageDown use ten steps.
|
|
53
|
+
* @default 1
|
|
54
|
+
*/
|
|
55
|
+
step?: number;
|
|
56
|
+
/** Maximum fraction digits; commits round to it. `0` allows integers only. Unset keeps what was typed. */
|
|
57
|
+
precision?: number;
|
|
58
|
+
/** Display text while the field is not focused, e.g. `formatNumber`. The raw number shows while editing. */
|
|
59
|
+
format?: (value: number) => string;
|
|
60
|
+
/**
|
|
61
|
+
* Shows `−` / `+` buttons at the end of the field.
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
hasSteppers?: boolean;
|
|
65
|
+
} & import("react").RefAttributes<HTMLInputElement>>;
|
|
10
66
|
export default NumberInput;
|
|
@@ -1,49 +1,206 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { useControlledState } from "../hooks/useControlledState.js";
|
|
2
|
+
import Button, { ButtonVariant } from "../buttons/Button.js";
|
|
3
|
+
import "./internal/innerButton.js";
|
|
4
|
+
import Input, { INPUT_SIZE_TO_BUTTON_SIZE_MAP, InputSize } from "./Input.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
import { styled } from "@linaria/react";
|
|
7
|
+
import { forwardRef, useState } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { cx } from "@linaria/core";
|
|
10
|
+
import { MinusIcon, PlusIcon } from "@phosphor-icons/react";
|
|
4
11
|
//#region src/inputs/NumberInput.tsx
|
|
5
12
|
/**
|
|
6
|
-
* A
|
|
7
|
-
*
|
|
8
|
-
*
|
|
13
|
+
* A single-line field for one number. The user types it, or steps it with the arrow keys
|
|
14
|
+
* (`ArrowUp` / `ArrowDown`, `PageUp` / `PageDown` ×10, `Home` / `End` to the bounds) or the
|
|
15
|
+
* optional `−` / `+` buttons (`hasSteppers`). Its value is a `number`, or `null` when empty.
|
|
16
|
+
*
|
|
17
|
+
* A preset over `Input` (base): Input holds the text being typed, and NumberInput converts at its
|
|
18
|
+
* edge. `onChange` fires on **commit** (blur, Enter or a step) with the value clamped to
|
|
19
|
+
* `min` / `max` and rounded to `precision`, never per keystroke. While not focused the field can
|
|
20
|
+
* show `format(value)` (`formatNumber`, `formatBytes`, …); the raw number shows while editing.
|
|
21
|
+
* Units are Input's `suffix` / `prefix`. `InputSize` / `InputVariant` are imported from
|
|
22
|
+
* `inputs/Input`. It never validates: out-of-range values are clamped, not rejected.
|
|
23
|
+
*
|
|
24
|
+
* Replaces 1.x `NumberInput` (`type="number"` and per-keystroke clamping are gone; `width` →
|
|
25
|
+
* `fillWidth`, `isMonospace` → `family`, `labelTooltip` → wrap in `Field`).
|
|
9
26
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
27
|
+
/** Tabular digits, so the value keeps its width while stepping (lands on Input's root). */
|
|
28
|
+
var NUMBER_INPUT_CSS = "gx-NumberInput-NUMBER_INPUT_CSS-n19kajw4";
|
|
29
|
+
/** The `−` / `+` group (and any `trailing`), 2px apart. */
|
|
30
|
+
var Steppers = /*#__PURE__*/ styled("span")({
|
|
31
|
+
name: "Steppers",
|
|
32
|
+
class: "gx-NumberInput-Steppers-s1qkbe08",
|
|
33
|
+
propsAsIs: false
|
|
34
|
+
});
|
|
35
|
+
/** Drafts that commit `null`: nothing, or a sign / point with no digits. */
|
|
36
|
+
var EMPTY_DRAFTS = new Set([
|
|
37
|
+
"",
|
|
38
|
+
"-",
|
|
39
|
+
".",
|
|
40
|
+
"-."
|
|
41
|
+
]);
|
|
42
|
+
/** Separators removed from typed or pasted text (`1,204` → `1204`). */
|
|
43
|
+
var SEPARATORS = /[\s,_]/g;
|
|
44
|
+
/** The most fraction digits `toFixed` accepts. */
|
|
45
|
+
var MAX_FRACTION_DIGITS = 100;
|
|
46
|
+
/** Fraction digits of a finite number, exponent notation included (`1e-7` → 7). */
|
|
47
|
+
function countFractionDigits(n) {
|
|
48
|
+
if (!Number.isFinite(n)) return 0;
|
|
49
|
+
const [mantissa = "", exponent] = String(n).split("e");
|
|
50
|
+
const fraction = mantissa.split(".")[1]?.length ?? 0;
|
|
51
|
+
return Math.max(0, fraction - (exponent === void 0 ? 0 : Number(exponent)));
|
|
52
|
+
}
|
|
53
|
+
/** Rounds to at most `digits` fraction digits. */
|
|
54
|
+
function roundTo(n, digits) {
|
|
55
|
+
return Number(n.toFixed(Math.min(Math.max(digits, 0), MAX_FRACTION_DIGITS)));
|
|
56
|
+
}
|
|
57
|
+
/** The raw text of a committed value, shown while editing. */
|
|
58
|
+
function toRawText(value) {
|
|
59
|
+
return value === null ? "" : String(value);
|
|
60
|
+
}
|
|
61
|
+
/** A single-line number field: `Input` with `type="text"`, parsing, clamping and stepping at its edge. */
|
|
62
|
+
var NumberInput = forwardRef(function NumberInput(props, ref) {
|
|
63
|
+
const { value, defaultValue, onChange, onEnter, min, max, step = 1, precision, format, hasSteppers = false, trailing, size = InputSize.MEDIUM, isDisabled = false, isReadOnly = false, onFocus, onBlur, onKeyDown, className, style, ...rest } = props;
|
|
64
|
+
const [committed, setCommitted] = useControlledState({
|
|
13
65
|
value,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
66
|
+
defaultValue: defaultValue ?? null,
|
|
67
|
+
onChange
|
|
68
|
+
});
|
|
69
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
70
|
+
/** The text being edited, or `null` when the field shows the committed value. */
|
|
71
|
+
const [draft, setDraft] = useState(null);
|
|
72
|
+
const [seenValue, setSeenValue] = useState(committed);
|
|
73
|
+
if (!Object.is(seenValue, committed)) {
|
|
74
|
+
setSeenValue(committed);
|
|
75
|
+
setDraft(null);
|
|
76
|
+
}
|
|
77
|
+
const isBlocked = isDisabled || isReadOnly;
|
|
78
|
+
const allowsNegative = min === void 0 || min < 0;
|
|
79
|
+
const allowsFraction = precision !== 0;
|
|
80
|
+
const inputMode = allowsNegative ? "text" : precision === 0 ? "numeric" : "decimal";
|
|
81
|
+
const shownText = draft ?? (committed === null ? "" : isFocused || format === void 0 ? String(committed) : format(committed));
|
|
82
|
+
const clamp = (n) => {
|
|
83
|
+
if (min !== void 0 && n < min) return min;
|
|
84
|
+
if (max !== void 0 && n > max) return max;
|
|
85
|
+
return n;
|
|
86
|
+
};
|
|
87
|
+
/** Sets the committed value if it differs from `current`, and shows it. */
|
|
88
|
+
const commitValue = (next, current = committed) => {
|
|
89
|
+
if (!Object.is(next, current)) setCommitted(next);
|
|
90
|
+
setDraft(null);
|
|
91
|
+
return next;
|
|
92
|
+
};
|
|
93
|
+
/** Parses the draft (if any), rounds and clamps it, and commits. Returns the committed value. */
|
|
94
|
+
const commit = () => {
|
|
95
|
+
if (draft === null) return committed;
|
|
96
|
+
if (EMPTY_DRAFTS.has(draft)) return commitValue(null);
|
|
97
|
+
const parsed = Number(draft);
|
|
98
|
+
if (Number.isNaN(parsed)) return commitValue(committed);
|
|
99
|
+
return commitValue(clamp(precision === void 0 ? parsed : roundTo(parsed, precision)));
|
|
100
|
+
};
|
|
101
|
+
/** Commits, then adds `amount` (or starts at `min ?? 0` from empty). */
|
|
102
|
+
const stepBy = (amount) => {
|
|
103
|
+
if (isBlocked) return;
|
|
104
|
+
const base = commit();
|
|
105
|
+
if (base === null) {
|
|
106
|
+
commitValue(clamp(min ?? 0), base);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const digits = Math.max(countFractionDigits(base), countFractionDigits(step));
|
|
110
|
+
let next = roundTo(base + amount, digits);
|
|
111
|
+
if (precision !== void 0) next = roundTo(next, precision);
|
|
112
|
+
commitValue(clamp(next), base);
|
|
113
|
+
};
|
|
114
|
+
const handleDraft = (next) => {
|
|
115
|
+
const cleaned = next.replace(SEPARATORS, "");
|
|
116
|
+
if (new RegExp(`^${allowsNegative ? "-?" : ""}\\d*${allowsFraction ? "(\\.\\d*)?" : ""}$`).test(cleaned)) setDraft(cleaned);
|
|
117
|
+
};
|
|
118
|
+
const handleEnter = () => {
|
|
119
|
+
const result = commit();
|
|
120
|
+
onEnter?.(result);
|
|
121
|
+
};
|
|
122
|
+
const handleFocus = (event) => {
|
|
123
|
+
onFocus?.(event);
|
|
124
|
+
setIsFocused(true);
|
|
125
|
+
};
|
|
126
|
+
const handleBlur = (event) => {
|
|
127
|
+
onBlur?.(event);
|
|
128
|
+
commit();
|
|
129
|
+
setIsFocused(false);
|
|
130
|
+
};
|
|
131
|
+
const handleKeyDown = (event) => {
|
|
132
|
+
onKeyDown?.(event);
|
|
133
|
+
if (event.defaultPrevented || event.nativeEvent.isComposing) return;
|
|
134
|
+
switch (event.key) {
|
|
135
|
+
case "ArrowUp":
|
|
136
|
+
case "ArrowDown":
|
|
137
|
+
case "PageUp":
|
|
138
|
+
case "PageDown": {
|
|
139
|
+
if (isBlocked) return;
|
|
140
|
+
event.preventDefault();
|
|
141
|
+
const amount = event.key === "PageUp" || event.key === "PageDown" ? step * 10 : step;
|
|
142
|
+
stepBy(event.key === "ArrowUp" || event.key === "PageUp" ? amount : -amount);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
case "Home":
|
|
146
|
+
case "End": {
|
|
147
|
+
const bound = event.key === "Home" ? min : max;
|
|
148
|
+
if (bound === void 0 || isBlocked) return;
|
|
149
|
+
event.preventDefault();
|
|
150
|
+
commitValue(bound);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
case "Escape":
|
|
154
|
+
if (draft === null || draft === toRawText(committed)) return;
|
|
155
|
+
event.stopPropagation();
|
|
156
|
+
setDraft(null);
|
|
157
|
+
return;
|
|
158
|
+
default: return;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const showsSteppers = hasSteppers && !isReadOnly;
|
|
162
|
+
const hasTrailing = trailing !== void 0 && trailing !== null && trailing !== false;
|
|
163
|
+
const trailingNode = showsSteppers ? /* @__PURE__ */ jsxs(Steppers, { children: [
|
|
164
|
+
hasTrailing && trailing,
|
|
165
|
+
/* @__PURE__ */ jsx(Button, {
|
|
166
|
+
variant: ButtonVariant.TERTIARY,
|
|
167
|
+
size: INPUT_SIZE_TO_BUTTON_SIZE_MAP[size],
|
|
168
|
+
icon: MinusIcon,
|
|
169
|
+
ariaLabel: "Decrease",
|
|
170
|
+
isDisabled: isDisabled || committed !== null && min !== void 0 && committed <= min,
|
|
171
|
+
onClick: () => stepBy(-step),
|
|
172
|
+
className: cx(size === InputSize.X_SMALL && "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd")
|
|
173
|
+
}),
|
|
174
|
+
/* @__PURE__ */ jsx(Button, {
|
|
175
|
+
variant: ButtonVariant.TERTIARY,
|
|
176
|
+
size: INPUT_SIZE_TO_BUTTON_SIZE_MAP[size],
|
|
177
|
+
icon: PlusIcon,
|
|
178
|
+
ariaLabel: "Increase",
|
|
179
|
+
isDisabled: isDisabled || committed !== null && max !== void 0 && committed >= max,
|
|
180
|
+
onClick: () => stepBy(step),
|
|
181
|
+
className: cx(size === InputSize.X_SMALL && "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd")
|
|
182
|
+
})
|
|
183
|
+
] }) : hasTrailing ? trailing : void 0;
|
|
184
|
+
return /* @__PURE__ */ jsx(Input, {
|
|
185
|
+
ref,
|
|
186
|
+
...rest,
|
|
18
187
|
size,
|
|
19
|
-
leading,
|
|
20
|
-
trailing,
|
|
21
|
-
error,
|
|
22
|
-
isError,
|
|
23
|
-
isRequired,
|
|
24
188
|
isDisabled,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
]),
|
|
39
|
-
onFocus,
|
|
40
|
-
onBlur,
|
|
41
|
-
onKeyDown,
|
|
42
|
-
parse: Number,
|
|
43
|
-
width,
|
|
44
|
-
fillWidth,
|
|
45
|
-
isMonospace
|
|
189
|
+
isReadOnly,
|
|
190
|
+
type: "text",
|
|
191
|
+
inputMode,
|
|
192
|
+
spellCheck: false,
|
|
193
|
+
value: shownText,
|
|
194
|
+
onChange: handleDraft,
|
|
195
|
+
onEnter: handleEnter,
|
|
196
|
+
onFocus: handleFocus,
|
|
197
|
+
onBlur: handleBlur,
|
|
198
|
+
onKeyDown: handleKeyDown,
|
|
199
|
+
trailing: trailingNode,
|
|
200
|
+
className: cx(NUMBER_INPUT_CSS, className),
|
|
201
|
+
...style === void 0 ? {} : { style }
|
|
46
202
|
});
|
|
47
|
-
};
|
|
203
|
+
});
|
|
204
|
+
NumberInput.displayName = "NumberInput";
|
|
48
205
|
//#endregion
|
|
49
206
|
export { NumberInput as default };
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { type InputProps } from "./Input";
|
|
2
|
-
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { type InputProps } from "./Input.js";
|
|
2
|
+
/** Every `Input` prop except those the password field fixes or owns, with its own `autoComplete` default. */
|
|
3
|
+
export type PasswordInputProps = Omit<InputProps, "type" | "trailing" | "isClearable" | "prefix" | "suffix" | "inputMode" | "spellCheck" | "autoComplete"> & {
|
|
4
|
+
/**
|
|
5
|
+
* Password-manager hint. Use `"new-password"` on sign-up and change-password forms.
|
|
6
|
+
* @default "current-password"
|
|
7
|
+
*/
|
|
8
|
+
autoComplete?: InputProps["autoComplete"];
|
|
9
|
+
};
|
|
10
|
+
/** A masked single-line field with a "Show password" toggle: `Input` with `type="password"`. */
|
|
11
|
+
declare const PasswordInput: import("react").ForwardRefExoticComponent<Omit<InputProps, "spellCheck" | "prefix" | "inputMode" | "type" | "trailing" | "autoComplete" | "suffix" | "isClearable"> & {
|
|
12
|
+
/**
|
|
13
|
+
* Password-manager hint. Use `"new-password"` on sign-up and change-password forms.
|
|
14
|
+
* @default "current-password"
|
|
15
|
+
*/
|
|
16
|
+
autoComplete?: InputProps["autoComplete"];
|
|
17
|
+
} & import("react").RefAttributes<HTMLInputElement>>;
|
|
13
18
|
export default PasswordInput;
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Button, { ButtonVariant } from "../buttons/Button.js";
|
|
2
|
+
import "./internal/innerButton.js";
|
|
3
|
+
import Input, { INPUT_SIZE_TO_BUTTON_SIZE_MAP, InputSize } from "./Input.js";
|
|
2
4
|
import { forwardRef, useState } from "react";
|
|
3
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { cx } from "@linaria/core";
|
|
4
7
|
import { EyeIcon, EyeSlashIcon } from "@phosphor-icons/react";
|
|
5
8
|
//#region src/inputs/PasswordInput.tsx
|
|
6
|
-
var DEFAULT_STATE = { showPassword: false };
|
|
7
9
|
/**
|
|
8
|
-
* A
|
|
9
|
-
*
|
|
10
|
+
* A single-line field whose value is masked, with a reveal toggle at its end. A preset over `Input`
|
|
11
|
+
* (base), like `TextInput`: it renders a real `Input` with `type="password"` (`"text"` while
|
|
12
|
+
* revealed), puts the toggle in Input's `trailing` slot using Input's in-field action pattern (a
|
|
13
|
+
* `TERTIARY` icon-only `Button` at the rung's in-field button size), and sets password-friendly
|
|
14
|
+
* defaults (`autoComplete="current-password"`, spell-check off). Every other prop is Input's;
|
|
15
|
+
* `InputSize` / `InputVariant` are imported from `inputs/Input`.
|
|
16
|
+
*
|
|
17
|
+
* PasswordInput holds no strength or matching rules: the app validates and passes `error`.
|
|
18
|
+
* Replaces 1.x `PasswordInput` (its unnamed bare toggle is now a named `aria-pressed` Button;
|
|
19
|
+
* `width` → `fillWidth`, `isMonospace` → `family`, `labelTooltip` → wrap in `Field`).
|
|
10
20
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
21
|
+
/** A masked single-line field with a "Show password" toggle: `Input` with `type="password"`. */
|
|
22
|
+
var PasswordInput = forwardRef(function PasswordInput(props, ref) {
|
|
23
|
+
const { autoComplete = "current-password", size = InputSize.MEDIUM, isDisabled = false, ...rest } = props;
|
|
24
|
+
const [isRevealed, setIsRevealed] = useState(false);
|
|
25
|
+
const toggle = /* @__PURE__ */ jsx(Button, {
|
|
26
|
+
variant: ButtonVariant.TERTIARY,
|
|
27
|
+
size: INPUT_SIZE_TO_BUTTON_SIZE_MAP[size],
|
|
28
|
+
icon: isRevealed ? EyeSlashIcon : EyeIcon,
|
|
29
|
+
ariaLabel: "Show password",
|
|
30
|
+
"aria-pressed": isRevealed,
|
|
31
|
+
isDisabled,
|
|
32
|
+
onClick: () => setIsRevealed(!isRevealed),
|
|
33
|
+
className: cx(size === InputSize.X_SMALL && "gx-innerButton-X_SMALL_INNER_BUTTON_CSS-x1ep0pcd")
|
|
34
|
+
});
|
|
13
35
|
return /* @__PURE__ */ jsx(Input, {
|
|
14
36
|
ref,
|
|
15
|
-
|
|
16
|
-
onChange,
|
|
17
|
-
variant,
|
|
37
|
+
...rest,
|
|
18
38
|
size,
|
|
19
|
-
type: state.showPassword ? "text" : "password",
|
|
20
|
-
value,
|
|
21
|
-
placeholder,
|
|
22
|
-
label,
|
|
23
|
-
labelTooltip,
|
|
24
|
-
leading,
|
|
25
|
-
trailing: {
|
|
26
|
-
icon: state.showPassword ? EyeSlashIcon : EyeIcon,
|
|
27
|
-
onClick: () => setState({
|
|
28
|
-
...state,
|
|
29
|
-
showPassword: !state.showPassword
|
|
30
|
-
}),
|
|
31
|
-
isDisabled
|
|
32
|
-
},
|
|
33
|
-
error,
|
|
34
|
-
isError,
|
|
35
|
-
isRequired,
|
|
36
39
|
isDisabled,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
width,
|
|
42
|
-
fillWidth,
|
|
43
|
-
isMonospace
|
|
40
|
+
type: isRevealed ? "text" : "password",
|
|
41
|
+
autoComplete,
|
|
42
|
+
spellCheck: false,
|
|
43
|
+
trailing: toggle
|
|
44
44
|
});
|
|
45
45
|
});
|
|
46
46
|
PasswordInput.displayName = "PasswordInput";
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type InputHTMLAttributes } from "react";
|
|
2
|
+
/** Canonical rungs; PinInput exposes three (EXAMPLES §14). Boxes are squares of the rung height. */
|
|
3
|
+
export declare enum PinInputSize {
|
|
4
|
+
/** 24px boxes, body_md mono characters. */
|
|
5
|
+
SMALL = "SMALL",
|
|
6
|
+
/** 32px boxes, body_lg mono characters. The default. */
|
|
7
|
+
MEDIUM = "MEDIUM",
|
|
8
|
+
/** 36px boxes, heading_sm mono characters. */
|
|
9
|
+
LARGE = "LARGE"
|
|
10
|
+
}
|
|
11
|
+
/** Resting fill of each box (Constitution V-A surface set; the 1.x InputVariant members). */
|
|
12
|
+
export declare enum PinInputVariant {
|
|
13
|
+
/** `background.base` fill. */
|
|
14
|
+
BASE = "BASE",
|
|
15
|
+
/** `background.primary` fill. The default. */
|
|
16
|
+
PRIMARY = "PRIMARY",
|
|
17
|
+
/** `background.secondary` fill. */
|
|
18
|
+
SECONDARY = "SECONDARY",
|
|
19
|
+
/** `background.tertiary` fill. */
|
|
20
|
+
TERTIARY = "TERTIARY"
|
|
21
|
+
}
|
|
22
|
+
/** Which characters a box accepts (EXAMPLES §14). */
|
|
23
|
+
export declare enum PinInputType {
|
|
24
|
+
/** 0–9; the numeric keypad on mobile. The default. */
|
|
25
|
+
NUMERIC = "NUMERIC",
|
|
26
|
+
/** A–Z, a–z, 0–9, kept in the case typed; the text keyboard. */
|
|
27
|
+
ALPHANUMERIC = "ALPHANUMERIC"
|
|
28
|
+
}
|
|
29
|
+
/** The one native attribute PinInput passes through (kept out of the lint-checked props list). */
|
|
30
|
+
interface PinInputNativeProps {
|
|
31
|
+
/**
|
|
32
|
+
* Focus the first empty box on mount.
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
autoFocus?: InputHTMLAttributes<HTMLInputElement>["autoFocus"];
|
|
36
|
+
}
|
|
37
|
+
export interface PinInputProps extends AriaAttributes, PinInputNativeProps {
|
|
38
|
+
/**
|
|
39
|
+
* Number of boxes. Floored; values below 1 render 1.
|
|
40
|
+
* @default 6
|
|
41
|
+
*/
|
|
42
|
+
length?: number;
|
|
43
|
+
/** Controlled code: the characters typed so far, from the first box, with no gaps. Pass it with `onChange`. */
|
|
44
|
+
value?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Initial code while uncontrolled.
|
|
47
|
+
* @default ""
|
|
48
|
+
*/
|
|
49
|
+
defaultValue?: string;
|
|
50
|
+
/** Called with the whole code (possibly partial) after every edit, paste or deletion. */
|
|
51
|
+
onChange?: (value: string) => void;
|
|
52
|
+
/** Called once, after `onChange`, each time an edit makes the code `length` characters long. */
|
|
53
|
+
onComplete?: (value: string) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Which characters are accepted. Others are ignored when typed or pasted. Also sets the mobile keyboard.
|
|
56
|
+
* @default PinInputType.NUMERIC
|
|
57
|
+
*/
|
|
58
|
+
type?: PinInputType;
|
|
59
|
+
/**
|
|
60
|
+
* Show dots instead of characters, for codes that should not be read over a shoulder.
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
isMasked?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Box rung: 24 / 32 / 36px squares.
|
|
66
|
+
* @default PinInputSize.MEDIUM
|
|
67
|
+
*/
|
|
68
|
+
size?: PinInputSize;
|
|
69
|
+
/**
|
|
70
|
+
* Resting fill of each box, from the surface set. Ignored with `isGhost`.
|
|
71
|
+
* @default PinInputVariant.PRIMARY
|
|
72
|
+
*/
|
|
73
|
+
variant?: PinInputVariant;
|
|
74
|
+
/**
|
|
75
|
+
* Ghost boxes: no fill and no hairline at rest; a box shows its frame on hover and focus (1.x
|
|
76
|
+
* `TRANSPARENT`).
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
79
|
+
isGhost?: boolean;
|
|
80
|
+
/** Label above the boxes, rendered through `Field`. For a description, wrap the PinInput in `Field` instead. */
|
|
81
|
+
label?: string;
|
|
82
|
+
/** Message from the app ("Code is incorrect"), shown under the boxes through `Field`. Also turns every box's border red and sets `aria-invalid`. */
|
|
83
|
+
error?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Error borders and `aria-invalid` without a message. `error` implies it.
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
88
|
+
isError?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* No box is focusable or editable. Shows the disabled look.
|
|
91
|
+
* @default false
|
|
92
|
+
*/
|
|
93
|
+
isDisabled?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Boxes are focusable and the code is readable, but nothing can be typed, deleted or pasted.
|
|
96
|
+
* @default false
|
|
97
|
+
*/
|
|
98
|
+
isReadOnly?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Required marker on the `label` (via `Field`) and `aria-required` on every box. No validation.
|
|
101
|
+
* @default false
|
|
102
|
+
*/
|
|
103
|
+
isRequired?: boolean;
|
|
104
|
+
/** Accessible name of the group when there is no visible label (no `label` and no wrapping `Field`). */
|
|
105
|
+
ariaLabel?: string;
|
|
106
|
+
/** DOM id of the first box. A wrapping `Field`'s label points to it, and the other boxes derive their ids from it. */
|
|
107
|
+
id?: string;
|
|
108
|
+
/** Any `data-*` attribute, forwarded to the group root. */
|
|
109
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
110
|
+
/** Extra class on the root: the `Field` wrapper when PinInput renders one, otherwise the group. */
|
|
111
|
+
className?: string;
|
|
112
|
+
/** Inline style on the root; only for setting CSS custom properties. */
|
|
113
|
+
style?: CSSProperties;
|
|
114
|
+
}
|
|
115
|
+
/** One box per character, for OTP and confirmation codes. */
|
|
116
|
+
declare const PinInput: import("react").ForwardRefExoticComponent<PinInputProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
117
|
+
export default PinInput;
|