@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.
- 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 +160 -124
- 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 +33 -20
- package/dist/charts/ChartFrame.d.ts +71 -116
- package/dist/charts/ChartFrame.js +306 -97
- package/dist/charts/ChartGroupProvider.d.ts +30 -41
- package/dist/charts/ChartGroupProvider.js +20 -7
- package/dist/charts/ChartLegend.d.ts +37 -48
- package/dist/charts/ChartLegend.js +243 -125
- package/dist/charts/ChartMarkTargets.d.ts +12 -28
- package/dist/charts/ChartMarkTargets.js +34 -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 +307 -0
- package/dist/charts/LineChart.d.ts +54 -47
- package/dist/charts/LineChart.js +174 -121
- package/dist/charts/PieChart.d.ts +32 -53
- package/dist/charts/PieChart.js +159 -136
- 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/chartSelection.d.ts +15 -0
- package/dist/charts/chartSelection.js +22 -0
- package/dist/charts/constants.d.ts +100 -256
- package/dist/charts/constants.js +109 -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 +206 -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 +69 -116
- package/dist/charts/useChartInteraction.js +148 -78
- 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 +83 -17
- package/dist/drawer/Drawer.js +399 -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 +298 -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 +1082 -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 +120 -0
- package/dist/timeline/Timeline.js +301 -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 +855 -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
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import VisuallyHidden from "../a11y/VisuallyHidden.js";
|
|
2
|
+
import { Orientation, Placement } from "../theme/enums.js";
|
|
3
|
+
import Text, { TextSize, TextVariant } from "../text/Text.js";
|
|
4
|
+
import Tooltip from "../tooltip/Tooltip.js";
|
|
5
|
+
import Icon, { IconVariant } from "../icons/Icon.js";
|
|
6
|
+
import { FieldContext } from "../hooks/useField.js";
|
|
7
|
+
import RequiredMarker from "../text/RequiredMarker.js";
|
|
8
|
+
import { hasContent } from "./internal/predicates.js";
|
|
9
|
+
import { joinIds } from "./internal/fieldWiring.js";
|
|
10
|
+
/* empty css */
|
|
11
|
+
import { styled } from "@linaria/react";
|
|
12
|
+
import { forwardRef, useId, useMemo } from "react";
|
|
13
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
import { cx } from "@linaria/core";
|
|
15
|
+
import { InfoIcon } from "@phosphor-icons/react";
|
|
16
|
+
//#region src/inputs/Field.tsx
|
|
17
|
+
/**
|
|
18
|
+
* The frame around one form control: the label above it (or beside it, `HORIZONTAL`), an optional
|
|
19
|
+
* description, and the error and character counter under it. It wires them to the control through
|
|
20
|
+
* `FieldContext` (read with `useField()` from `hooks/useField`): the label's `htmlFor` is the
|
|
21
|
+
* Field's `id`, the description, counter and error ids go to `aria-describedby`, and `error` and
|
|
22
|
+
* `isRequired` reach the control as `aria-invalid` and `aria-required`.
|
|
23
|
+
*
|
|
24
|
+
* Field does not validate, hold a value or draw a box around the control. Inputs that take `label`
|
|
25
|
+
* directly render a Field internally; a control wrapped in a Field must not also take `label`.
|
|
26
|
+
* Replaces 1.x `InputLabel` and the label and error lines every 1.x input drew for itself.
|
|
27
|
+
*/
|
|
28
|
+
/** Rung of the control the Field frames (Constitution III-A.4). Use the control's own size. */
|
|
29
|
+
var FieldSize = /* @__PURE__ */ function(FieldSize) {
|
|
30
|
+
/** 20px control: caption label, caption help. */
|
|
31
|
+
FieldSize["X_SMALL"] = "X_SMALL";
|
|
32
|
+
/** 24px control: body_sm label, caption help. */
|
|
33
|
+
FieldSize["SMALL"] = "SMALL";
|
|
34
|
+
/** 32px control: body_md label, body_sm help. The default; matches 1.x. */
|
|
35
|
+
FieldSize["MEDIUM"] = "MEDIUM";
|
|
36
|
+
/** 36px control: body_lg label, body_sm help. */
|
|
37
|
+
FieldSize["LARGE"] = "LARGE";
|
|
38
|
+
/** 40px control: body_lg label, body_md help. */
|
|
39
|
+
FieldSize["X_LARGE"] = "X_LARGE";
|
|
40
|
+
return FieldSize;
|
|
41
|
+
}({});
|
|
42
|
+
/** The frame. Layout comes from the orientation map; the parts name their grid areas. */
|
|
43
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
44
|
+
name: "Root",
|
|
45
|
+
class: "gx-Field-rp2xtcu",
|
|
46
|
+
propsAsIs: false
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* Label row and description. In `HORIZONTAL` it spans both rows of the label column and is pushed
|
|
50
|
+
* down by `--gx-field-header-offset` so the label's line centers on the control's first row.
|
|
51
|
+
*/
|
|
52
|
+
var Header = /*#__PURE__*/ styled("div")({
|
|
53
|
+
name: "Header",
|
|
54
|
+
class: "gx-Field-Header-h1tweyt9",
|
|
55
|
+
propsAsIs: false
|
|
56
|
+
});
|
|
57
|
+
/** Label and info trigger at the start, `actions` at the end. */
|
|
58
|
+
var LabelRow = /*#__PURE__*/ styled("div")({
|
|
59
|
+
name: "LabelRow",
|
|
60
|
+
class: "gx-Field-LabelRow-l1kmsddo",
|
|
61
|
+
propsAsIs: false
|
|
62
|
+
});
|
|
63
|
+
/** The label and its info trigger. */
|
|
64
|
+
var LabelGroup = /*#__PURE__*/ styled("div")({
|
|
65
|
+
name: "LabelGroup",
|
|
66
|
+
class: "gx-Field-LabelGroup-lcak6xp",
|
|
67
|
+
propsAsIs: false
|
|
68
|
+
});
|
|
69
|
+
/** The `actions` slot at the end of the label row. */
|
|
70
|
+
var ActionsGroup = /*#__PURE__*/ styled("div")({
|
|
71
|
+
name: "ActionsGroup",
|
|
72
|
+
class: "gx-Field-ActionsGroup-a1mil3ie",
|
|
73
|
+
propsAsIs: false
|
|
74
|
+
});
|
|
75
|
+
/** The `<label>`: the name (with the asterisk inside) and "(optional)". Wraps, never truncates. */
|
|
76
|
+
var Label = /*#__PURE__*/ styled("label")({
|
|
77
|
+
name: "Label",
|
|
78
|
+
class: "gx-Field-Label-l1fpgi4g",
|
|
79
|
+
propsAsIs: false
|
|
80
|
+
});
|
|
81
|
+
/** The info icon button beside the label. Outside the `<label>`, so no interactive content nests in it. */
|
|
82
|
+
var InfoTrigger = /*#__PURE__*/ styled("button")({
|
|
83
|
+
name: "InfoTrigger",
|
|
84
|
+
class: "gx-Field-InfoTrigger-i18ubaw",
|
|
85
|
+
propsAsIs: false
|
|
86
|
+
});
|
|
87
|
+
/** Holds the control at its own width; a control with `fillWidth` fills the Field. */
|
|
88
|
+
var ControlSlot = /*#__PURE__*/ styled("div")({
|
|
89
|
+
name: "ControlSlot",
|
|
90
|
+
class: "gx-Field-ControlSlot-cb8lcf8",
|
|
91
|
+
propsAsIs: false
|
|
92
|
+
});
|
|
93
|
+
/** Error in column 1, counter right-aligned in column 2. */
|
|
94
|
+
var Footer = /*#__PURE__*/ styled("div")({
|
|
95
|
+
name: "Footer",
|
|
96
|
+
class: "gx-Field-Footer-fuxw401",
|
|
97
|
+
propsAsIs: false
|
|
98
|
+
});
|
|
99
|
+
/** Keeps the counter in the right column when there is no error. */
|
|
100
|
+
var COUNTER_CSS = "gx-Field-COUNTER_CSS-cgr2f4k";
|
|
101
|
+
/** Stack (1.x 4px rhythm) or a `1fr : 2fr` label column beside the control. */
|
|
102
|
+
var FIELD_ORIENTATION_TO_CSS_MAP = {
|
|
103
|
+
[Orientation.VERTICAL]: "gx-Field-Orientation_VERTICAL-o2oy45q",
|
|
104
|
+
[Orientation.HORIZONTAL]: "gx-Field-Orientation_HORIZONTAL-o11kkysf"
|
|
105
|
+
};
|
|
106
|
+
/** `--gx-field-label-offset` = (control height − label line) / 2, read by the horizontal layout. */
|
|
107
|
+
var FIELD_SIZE_TO_CSS_MAP = {
|
|
108
|
+
["X_SMALL"]: "gx-Field-X_SMALL-x6a5r9b",
|
|
109
|
+
["SMALL"]: "gx-Field-SMALL-s1hxuzdf",
|
|
110
|
+
["MEDIUM"]: "gx-Field-MEDIUM-m1wgl2f1",
|
|
111
|
+
["LARGE"]: "gx-Field-LARGE-lnkg4jz",
|
|
112
|
+
["X_LARGE"]: "gx-Field-X_LARGE-x1qywk8g"
|
|
113
|
+
};
|
|
114
|
+
/** Stretch to the parent's width. */
|
|
115
|
+
var FILL_WIDTH_CSS = "gx-Field-FILL_WIDTH_CSS-fc3vdiy";
|
|
116
|
+
/** Label step per rung: the canonical control text (Constitution III-A.4). */
|
|
117
|
+
var FIELD_SIZE_TO_LABEL_TEXT_SIZE_MAP = {
|
|
118
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
119
|
+
["SMALL"]: TextSize.BODY_SM,
|
|
120
|
+
["MEDIUM"]: TextSize.BODY_MD,
|
|
121
|
+
["LARGE"]: TextSize.BODY_LG,
|
|
122
|
+
["X_LARGE"]: TextSize.BODY_LG
|
|
123
|
+
};
|
|
124
|
+
/** Description, error and counter step per rung: one step quieter, floored at `caption`. */
|
|
125
|
+
var FIELD_SIZE_TO_HELP_TEXT_SIZE_MAP = {
|
|
126
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
127
|
+
["SMALL"]: TextSize.CAPTION,
|
|
128
|
+
["MEDIUM"]: TextSize.BODY_SM,
|
|
129
|
+
["LARGE"]: TextSize.BODY_SM,
|
|
130
|
+
["X_LARGE"]: TextSize.BODY_MD
|
|
131
|
+
};
|
|
132
|
+
/** Info icon px per rung. */
|
|
133
|
+
var FIELD_SIZE_TO_ICON_PX_MAP = {
|
|
134
|
+
["X_SMALL"]: 12,
|
|
135
|
+
["SMALL"]: 12,
|
|
136
|
+
["MEDIUM"]: 12,
|
|
137
|
+
["LARGE"]: 14,
|
|
138
|
+
["X_LARGE"]: 14
|
|
139
|
+
};
|
|
140
|
+
/** Label, description, error and counter around one control, wired to it for assistive tech. */
|
|
141
|
+
var Field = forwardRef(function Field({ children, label, description, error, isRequired = false, isOptional = false, labelTooltip, actions, maxLength, count = 0, orientation = Orientation.VERTICAL, size = "MEDIUM", fillWidth = false, id, className, style, ...rest }, ref) {
|
|
142
|
+
const generatedId = useId();
|
|
143
|
+
const controlId = id ?? generatedId;
|
|
144
|
+
const hasLabel = label !== void 0 && label !== "";
|
|
145
|
+
const hasTooltip = hasContent(labelTooltip);
|
|
146
|
+
const hasActions = hasContent(actions);
|
|
147
|
+
const hasDescription = hasContent(description);
|
|
148
|
+
const hasError = error !== void 0 && error !== "";
|
|
149
|
+
const hasCounter = maxLength !== void 0;
|
|
150
|
+
const labelId = hasLabel ? `${controlId}-label` : void 0;
|
|
151
|
+
const descriptionId = `${controlId}-description`;
|
|
152
|
+
const counterId = `${controlId}-counter`;
|
|
153
|
+
const errorId = `${controlId}-error`;
|
|
154
|
+
const describedBy = joinIds([
|
|
155
|
+
hasDescription && descriptionId,
|
|
156
|
+
hasCounter && counterId,
|
|
157
|
+
hasError && errorId
|
|
158
|
+
]);
|
|
159
|
+
const contextValue = useMemo(() => ({
|
|
160
|
+
controlId,
|
|
161
|
+
labelId,
|
|
162
|
+
describedBy,
|
|
163
|
+
isRequired,
|
|
164
|
+
isError: hasError
|
|
165
|
+
}), [
|
|
166
|
+
controlId,
|
|
167
|
+
labelId,
|
|
168
|
+
describedBy,
|
|
169
|
+
isRequired,
|
|
170
|
+
hasError
|
|
171
|
+
]);
|
|
172
|
+
const labelSize = FIELD_SIZE_TO_LABEL_TEXT_SIZE_MAP[size];
|
|
173
|
+
const helpSize = FIELD_SIZE_TO_HELP_TEXT_SIZE_MAP[size];
|
|
174
|
+
const hasLabelRow = hasLabel || hasTooltip || hasActions;
|
|
175
|
+
const hasHeader = hasLabelRow || hasDescription || orientation === Orientation.HORIZONTAL;
|
|
176
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
177
|
+
...rest,
|
|
178
|
+
ref,
|
|
179
|
+
className: cx(FIELD_ORIENTATION_TO_CSS_MAP[orientation], FIELD_SIZE_TO_CSS_MAP[size], fillWidth && FILL_WIDTH_CSS, className),
|
|
180
|
+
style,
|
|
181
|
+
children: /* @__PURE__ */ jsxs(FieldContext.Provider, {
|
|
182
|
+
value: contextValue,
|
|
183
|
+
children: [
|
|
184
|
+
hasHeader && /* @__PURE__ */ jsxs(Header, { children: [hasLabelRow && /* @__PURE__ */ jsxs(LabelRow, { children: [/* @__PURE__ */ jsxs(LabelGroup, { children: [hasLabel && /* @__PURE__ */ jsxs(Label, {
|
|
185
|
+
htmlFor: controlId,
|
|
186
|
+
id: labelId,
|
|
187
|
+
children: [/* @__PURE__ */ jsxs(Text, {
|
|
188
|
+
as: "span",
|
|
189
|
+
size: labelSize,
|
|
190
|
+
variant: TextVariant.SECONDARY,
|
|
191
|
+
children: [label, isRequired && /* @__PURE__ */ jsx(RequiredMarker, {})]
|
|
192
|
+
}), isOptional && !isRequired && /* @__PURE__ */ jsx(Text, {
|
|
193
|
+
as: "span",
|
|
194
|
+
size: labelSize,
|
|
195
|
+
variant: TextVariant.TERTIARY,
|
|
196
|
+
children: "(optional)"
|
|
197
|
+
})]
|
|
198
|
+
}), hasTooltip && /* @__PURE__ */ jsx(Tooltip, {
|
|
199
|
+
body: labelTooltip,
|
|
200
|
+
placement: Placement.RIGHT,
|
|
201
|
+
children: /* @__PURE__ */ jsx(InfoTrigger, {
|
|
202
|
+
type: "button",
|
|
203
|
+
"aria-label": "More information",
|
|
204
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
205
|
+
component: InfoIcon,
|
|
206
|
+
size: FIELD_SIZE_TO_ICON_PX_MAP[size],
|
|
207
|
+
variant: IconVariant.INHERIT
|
|
208
|
+
})
|
|
209
|
+
})
|
|
210
|
+
})] }), hasActions && /* @__PURE__ */ jsx(ActionsGroup, { children: actions })] }), hasDescription && /* @__PURE__ */ jsx(Text, {
|
|
211
|
+
as: "p",
|
|
212
|
+
id: descriptionId,
|
|
213
|
+
size: helpSize,
|
|
214
|
+
variant: TextVariant.TERTIARY,
|
|
215
|
+
children: description
|
|
216
|
+
})] }),
|
|
217
|
+
/* @__PURE__ */ jsx(ControlSlot, { children }),
|
|
218
|
+
(hasError || hasCounter) && /* @__PURE__ */ jsxs(Footer, { children: [hasError && /* @__PURE__ */ jsx(Text, {
|
|
219
|
+
as: "p",
|
|
220
|
+
id: errorId,
|
|
221
|
+
size: helpSize,
|
|
222
|
+
variant: TextVariant.ERROR,
|
|
223
|
+
children: error
|
|
224
|
+
}), hasCounter && /* @__PURE__ */ jsxs(Text, {
|
|
225
|
+
as: "span",
|
|
226
|
+
id: counterId,
|
|
227
|
+
size: helpSize,
|
|
228
|
+
variant: count > maxLength ? TextVariant.ERROR : TextVariant.TERTIARY,
|
|
229
|
+
isTabular: true,
|
|
230
|
+
className: COUNTER_CSS,
|
|
231
|
+
children: [
|
|
232
|
+
count,
|
|
233
|
+
" / ",
|
|
234
|
+
maxLength,
|
|
235
|
+
/* @__PURE__ */ jsx(VisuallyHidden, {
|
|
236
|
+
as: "span",
|
|
237
|
+
children: " characters"
|
|
238
|
+
})
|
|
239
|
+
]
|
|
240
|
+
})] })
|
|
241
|
+
]
|
|
242
|
+
})
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
Field.displayName = "Field";
|
|
246
|
+
//#endregion
|
|
247
|
+
export { FieldSize, Field as default };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
/** Rung of the controls the Fieldset groups (Constitution III-A.4). Use the controls' own size. */
|
|
3
|
+
export declare enum FieldsetSize {
|
|
4
|
+
/** 20px controls: caption title and help, 8px between children. */
|
|
5
|
+
X_SMALL = "X_SMALL",
|
|
6
|
+
/** 24px controls: body_sm title, caption help, 12px between children. */
|
|
7
|
+
SMALL = "SMALL",
|
|
8
|
+
/** 32px controls: body_md title, body_sm help, 16px between children. The default. */
|
|
9
|
+
MEDIUM = "MEDIUM",
|
|
10
|
+
/** 36px controls: body_lg title, body_sm help, 16px between children. */
|
|
11
|
+
LARGE = "LARGE",
|
|
12
|
+
/** 40px controls: body_lg title, body_md help, 16px between children. */
|
|
13
|
+
X_LARGE = "X_LARGE"
|
|
14
|
+
}
|
|
15
|
+
export interface FieldsetProps extends AriaAttributes {
|
|
16
|
+
/** The grouped controls, usually `Field`s. Laid out in a column. */
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
/** The group's title, rendered as the `<legend>`. Required: it is the group's accessible name. */
|
|
19
|
+
label: string;
|
|
20
|
+
/** Help copy under the title. Text and inline `Link`s only. */
|
|
21
|
+
description?: ReactNode;
|
|
22
|
+
/** Group-level message under the controls ("Choose at least one"). */
|
|
23
|
+
error?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Shows the red asterisk after the title. Mark each required control too.
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
isRequired?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Shows "(optional)" after the title. Ignored when `isRequired`.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
isOptional?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The rung of the controls inside. Sets the title and help type steps and the gap between children.
|
|
36
|
+
* @default FieldsetSize.MEDIUM
|
|
37
|
+
*/
|
|
38
|
+
size?: FieldsetSize;
|
|
39
|
+
/**
|
|
40
|
+
* DOM id on the `<fieldset>`; the description and error ids derive from it.
|
|
41
|
+
* @default useId()
|
|
42
|
+
*/
|
|
43
|
+
id?: string;
|
|
44
|
+
/** Any `data-*` attribute, forwarded to the `<fieldset>`. */
|
|
45
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
46
|
+
/** Extra class on the `<fieldset>`. */
|
|
47
|
+
className?: string;
|
|
48
|
+
/** Inline style on the `<fieldset>`; only for setting CSS custom properties. */
|
|
49
|
+
style?: CSSProperties;
|
|
50
|
+
}
|
|
51
|
+
/** A titled group of controls: `<fieldset>` + `<legend>`, description, children and group error. */
|
|
52
|
+
declare const Fieldset: import("react").ForwardRefExoticComponent<FieldsetProps & import("react").RefAttributes<HTMLFieldSetElement>>;
|
|
53
|
+
export default Fieldset;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
|
|
2
|
+
import RequiredMarker from "../text/RequiredMarker.js";
|
|
3
|
+
import { hasContent } from "./internal/predicates.js";
|
|
4
|
+
import { joinIds } from "./internal/fieldWiring.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
import { styled } from "@linaria/react";
|
|
7
|
+
import { forwardRef, useId } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { cx } from "@linaria/core";
|
|
10
|
+
//#region src/inputs/Fieldset.tsx
|
|
11
|
+
/**
|
|
12
|
+
* Names a group of related controls: a section of a form ("Connection", "Notifications") or the
|
|
13
|
+
* options that answer one question. It renders a native `<fieldset>` whose `<legend>` is the title
|
|
14
|
+
* (`label`), so assistive tech announces the group's name when focus enters it. An optional
|
|
15
|
+
* `description` sits under the title and an optional group-level `error` under the controls; both
|
|
16
|
+
* are linked from the `<fieldset>` with `aria-describedby`. The children stack in a column with the
|
|
17
|
+
* form's spacing for the rung (`size`).
|
|
18
|
+
*
|
|
19
|
+
* The legend is floated (`float: left; width: 100%`, every following part `clear: both`) so it lays
|
|
20
|
+
* out like a normal block in every browser instead of being drawn in the fieldset's border area,
|
|
21
|
+
* while still naming the group.
|
|
22
|
+
*
|
|
23
|
+
* Fieldset does not draw a box (a bordered panel is `Box`), validate, manage values or disable its
|
|
24
|
+
* controls; one control's label is `Field`.
|
|
25
|
+
*/
|
|
26
|
+
/** Rung of the controls the Fieldset groups (Constitution III-A.4). Use the controls' own size. */
|
|
27
|
+
var FieldsetSize = /* @__PURE__ */ function(FieldsetSize) {
|
|
28
|
+
/** 20px controls: caption title and help, 8px between children. */
|
|
29
|
+
FieldsetSize["X_SMALL"] = "X_SMALL";
|
|
30
|
+
/** 24px controls: body_sm title, caption help, 12px between children. */
|
|
31
|
+
FieldsetSize["SMALL"] = "SMALL";
|
|
32
|
+
/** 32px controls: body_md title, body_sm help, 16px between children. The default. */
|
|
33
|
+
FieldsetSize["MEDIUM"] = "MEDIUM";
|
|
34
|
+
/** 36px controls: body_lg title, body_sm help, 16px between children. */
|
|
35
|
+
FieldsetSize["LARGE"] = "LARGE";
|
|
36
|
+
/** 40px controls: body_lg title, body_md help, 16px between children. */
|
|
37
|
+
FieldsetSize["X_LARGE"] = "X_LARGE";
|
|
38
|
+
return FieldsetSize;
|
|
39
|
+
}({});
|
|
40
|
+
/** The `<fieldset>`, stripped to a plain block that may shrink in a flex or grid track. */
|
|
41
|
+
var Root = /*#__PURE__*/ styled("fieldset")({
|
|
42
|
+
name: "Root",
|
|
43
|
+
class: "gx-Fieldset-r9krani",
|
|
44
|
+
propsAsIs: false
|
|
45
|
+
});
|
|
46
|
+
/** The floated `<legend>`: title, asterisk and "(optional)" on one wrapping line. */
|
|
47
|
+
var Legend = /*#__PURE__*/ styled("legend")({
|
|
48
|
+
name: "Legend",
|
|
49
|
+
class: "gx-Fieldset-Legend-l1r8t67q",
|
|
50
|
+
propsAsIs: false
|
|
51
|
+
});
|
|
52
|
+
/** Help copy under the title. */
|
|
53
|
+
var Description = /*#__PURE__*/ styled("div")({
|
|
54
|
+
name: "Description",
|
|
55
|
+
class: "gx-Fieldset-Description-d88yn2d",
|
|
56
|
+
propsAsIs: false
|
|
57
|
+
});
|
|
58
|
+
/** The grouped controls, in a column. The gap comes from the size map. */
|
|
59
|
+
var Body = /*#__PURE__*/ styled("div")({
|
|
60
|
+
name: "Body",
|
|
61
|
+
class: "gx-Fieldset-Body-bm2zy39",
|
|
62
|
+
propsAsIs: false
|
|
63
|
+
});
|
|
64
|
+
/** The group-level error under the controls. */
|
|
65
|
+
var ErrorRow = /*#__PURE__*/ styled("div")({
|
|
66
|
+
name: "ErrorRow",
|
|
67
|
+
class: "gx-Fieldset-ErrorRow-e9guo5n",
|
|
68
|
+
propsAsIs: false
|
|
69
|
+
});
|
|
70
|
+
/** Gap between children per rung (8 / 12 / 16 / 16 / 16px). */
|
|
71
|
+
var FIELDSET_SIZE_TO_CSS_MAP = {
|
|
72
|
+
["X_SMALL"]: "gx-Fieldset-X_SMALL-xj0pwmy",
|
|
73
|
+
["SMALL"]: "gx-Fieldset-SMALL-svpuxtn",
|
|
74
|
+
["MEDIUM"]: "gx-Fieldset-MEDIUM-mur66uc",
|
|
75
|
+
["LARGE"]: "gx-Fieldset-LARGE-ls5534t",
|
|
76
|
+
["X_LARGE"]: "gx-Fieldset-X_LARGE-x1s55kv3"
|
|
77
|
+
};
|
|
78
|
+
/** Title step per rung: the canonical control text, the same as Field's label. */
|
|
79
|
+
var FIELDSET_SIZE_TO_LABEL_TEXT_SIZE_MAP = {
|
|
80
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
81
|
+
["SMALL"]: TextSize.BODY_SM,
|
|
82
|
+
["MEDIUM"]: TextSize.BODY_MD,
|
|
83
|
+
["LARGE"]: TextSize.BODY_LG,
|
|
84
|
+
["X_LARGE"]: TextSize.BODY_LG
|
|
85
|
+
};
|
|
86
|
+
/** Description and error step per rung: the same as Field's help text. */
|
|
87
|
+
var FIELDSET_SIZE_TO_HELP_TEXT_SIZE_MAP = {
|
|
88
|
+
["X_SMALL"]: TextSize.CAPTION,
|
|
89
|
+
["SMALL"]: TextSize.CAPTION,
|
|
90
|
+
["MEDIUM"]: TextSize.BODY_SM,
|
|
91
|
+
["LARGE"]: TextSize.BODY_SM,
|
|
92
|
+
["X_LARGE"]: TextSize.BODY_MD
|
|
93
|
+
};
|
|
94
|
+
/** A titled group of controls: `<fieldset>` + `<legend>`, description, children and group error. */
|
|
95
|
+
var Fieldset = forwardRef(function Fieldset({ children, label, description, error, isRequired = false, isOptional = false, size = "MEDIUM", id, "aria-describedby": ariaDescribedBy, className, style, ...rest }, ref) {
|
|
96
|
+
const generatedId = useId();
|
|
97
|
+
const rootId = id ?? generatedId;
|
|
98
|
+
const descriptionId = `${rootId}-description`;
|
|
99
|
+
const errorId = `${rootId}-error`;
|
|
100
|
+
const hasDescription = hasContent(description);
|
|
101
|
+
const hasError = error !== void 0 && error !== "";
|
|
102
|
+
const describedBy = joinIds([
|
|
103
|
+
hasDescription && descriptionId,
|
|
104
|
+
hasError && errorId,
|
|
105
|
+
ariaDescribedBy
|
|
106
|
+
]);
|
|
107
|
+
const labelSize = FIELDSET_SIZE_TO_LABEL_TEXT_SIZE_MAP[size];
|
|
108
|
+
const helpSize = FIELDSET_SIZE_TO_HELP_TEXT_SIZE_MAP[size];
|
|
109
|
+
return /* @__PURE__ */ jsxs(Root, {
|
|
110
|
+
...rest,
|
|
111
|
+
ref,
|
|
112
|
+
id: rootId,
|
|
113
|
+
"aria-describedby": describedBy,
|
|
114
|
+
className: cx(FIELDSET_SIZE_TO_CSS_MAP[size], className),
|
|
115
|
+
style,
|
|
116
|
+
children: [
|
|
117
|
+
/* @__PURE__ */ jsxs(Legend, { children: [/* @__PURE__ */ jsxs(Text, {
|
|
118
|
+
as: "span",
|
|
119
|
+
size: labelSize,
|
|
120
|
+
variant: TextVariant.PRIMARY,
|
|
121
|
+
weight: TextWeight.MEDIUM,
|
|
122
|
+
children: [label, isRequired && /* @__PURE__ */ jsx(RequiredMarker, {})]
|
|
123
|
+
}), isOptional && !isRequired && /* @__PURE__ */ jsx(Text, {
|
|
124
|
+
as: "span",
|
|
125
|
+
size: labelSize,
|
|
126
|
+
variant: TextVariant.TERTIARY,
|
|
127
|
+
children: "(optional)"
|
|
128
|
+
})] }),
|
|
129
|
+
hasDescription && /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(Text, {
|
|
130
|
+
as: "p",
|
|
131
|
+
id: descriptionId,
|
|
132
|
+
size: helpSize,
|
|
133
|
+
variant: TextVariant.TERTIARY,
|
|
134
|
+
children: description
|
|
135
|
+
}) }),
|
|
136
|
+
/* @__PURE__ */ jsx(Body, { children }),
|
|
137
|
+
hasError && /* @__PURE__ */ jsx(ErrorRow, { children: /* @__PURE__ */ jsx(Text, {
|
|
138
|
+
as: "p",
|
|
139
|
+
id: errorId,
|
|
140
|
+
size: helpSize,
|
|
141
|
+
variant: TextVariant.ERROR,
|
|
142
|
+
children: error
|
|
143
|
+
}) })
|
|
144
|
+
]
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
Fieldset.displayName = "Fieldset";
|
|
148
|
+
//#endregion
|
|
149
|
+
export { FieldsetSize, Fieldset as default };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type AriaAttributes, type CSSProperties, type ReactNode } from "react";
|
|
2
|
+
/** Canonical rungs; FileInput exposes three. Sets the button, the file rows, and the zone's padding and text. */
|
|
3
|
+
export declare enum FileInputSize {
|
|
4
|
+
/** 24px button and rows, body_sm text, 16px zone padding. */
|
|
5
|
+
SMALL = "SMALL",
|
|
6
|
+
/** 32px button and rows, body_md text, 24px zone padding. The default. */
|
|
7
|
+
MEDIUM = "MEDIUM",
|
|
8
|
+
/** 36px button and rows, body_lg text, 32px zone padding. */
|
|
9
|
+
LARGE = "LARGE"
|
|
10
|
+
}
|
|
11
|
+
/** Resting fill of the drop zone (Constitution V-A surface set; the 1.x `InputVariant` members). */
|
|
12
|
+
export declare enum FileInputVariant {
|
|
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
|
+
export interface FileInputProps extends AriaAttributes {
|
|
23
|
+
/** Controlled list of chosen files, in the order they were added. Pass it with `onChange`. */
|
|
24
|
+
value?: File[];
|
|
25
|
+
/**
|
|
26
|
+
* Initial files while uncontrolled.
|
|
27
|
+
* @default []
|
|
28
|
+
*/
|
|
29
|
+
defaultValue?: File[];
|
|
30
|
+
/** Called with the whole next list when files are added or removed. */
|
|
31
|
+
onChange?: (value: File[]) => void;
|
|
32
|
+
/** Called with the files FileInput did not add: not matching `accept`, folders, or extras beyond one when not `isMultiple`. */
|
|
33
|
+
onReject?: (files: File[]) => void;
|
|
34
|
+
/** Allowed types in the native `accept` syntax: MIME types, `type/*` wildcards and `.ext` extensions, comma-separated. Applies to the picker and to drops. All files when unset. */
|
|
35
|
+
accept?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Allow several files. Without it, choosing or dropping a file replaces the current one.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isMultiple?: boolean;
|
|
41
|
+
/** Replaces a file row's remove button: upload progress, a status chip, or the app's own actions. Return `null` to leave the row without actions. */
|
|
42
|
+
renderFileActions?: (file: File, index: number) => ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Rung of the button, the file rows and the zone's padding and text: 24 / 32 / 36px controls.
|
|
45
|
+
* @default FileInputSize.MEDIUM
|
|
46
|
+
*/
|
|
47
|
+
size?: FileInputSize;
|
|
48
|
+
/**
|
|
49
|
+
* Resting fill of the drop zone, from the surface set. Ignored with `isGhost`.
|
|
50
|
+
* @default FileInputVariant.PRIMARY
|
|
51
|
+
*/
|
|
52
|
+
variant?: FileInputVariant;
|
|
53
|
+
/**
|
|
54
|
+
* Ghost drop zone: no fill and no dashed hairline at rest; the dashed frame appears on hover, while
|
|
55
|
+
* the button inside has focus, and while files are dragged over it. For a zone set into a panel that
|
|
56
|
+
* already frames it.
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
isGhost?: boolean;
|
|
60
|
+
/** Label above the control, rendered through `Field`. For a description (the accepted types and limits), wrap it in `Field` instead. */
|
|
61
|
+
label?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Text in the drop zone above the button.
|
|
64
|
+
* @default "Drop files here" ("Drop a file here" without isMultiple)
|
|
65
|
+
*/
|
|
66
|
+
placeholder?: string;
|
|
67
|
+
/** Message from the app ("File is larger than 50 MB"), shown under the control through `Field` and linked to the button. It also turns the zone's border red. */
|
|
68
|
+
error?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Error border without a message. `error` implies it.
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
73
|
+
isError?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Nothing can be dropped, chosen or removed. Shows the disabled look.
|
|
76
|
+
* @default false
|
|
77
|
+
*/
|
|
78
|
+
isDisabled?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Shows the file list without the drop zone and without remove buttons.
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
83
|
+
isReadOnly?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Required marker on the `label` (via `Field`). It does no validation.
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
88
|
+
isRequired?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Stretch to the parent's width. Without it, the control is 320px wide.
|
|
91
|
+
* @default false
|
|
92
|
+
*/
|
|
93
|
+
fillWidth?: boolean;
|
|
94
|
+
/** Accessible name of the group when there is no visible label (no `label` and no wrapping `Field`). */
|
|
95
|
+
ariaLabel?: string;
|
|
96
|
+
/**
|
|
97
|
+
* DOM id of the group. A wrapping `Field`'s id wins.
|
|
98
|
+
* @default useId()
|
|
99
|
+
*/
|
|
100
|
+
id?: string;
|
|
101
|
+
/** Any `data-*` attribute, forwarded to the group root. */
|
|
102
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
103
|
+
/** Extra class on the root: the `Field` wrapper when FileInput renders one, otherwise the group. */
|
|
104
|
+
className?: string;
|
|
105
|
+
/** Inline style on the root; only for setting CSS custom properties. */
|
|
106
|
+
style?: CSSProperties;
|
|
107
|
+
}
|
|
108
|
+
/** A drop zone and a "Choose files" button over a hidden native file input, with the chosen files listed. */
|
|
109
|
+
declare const FileInput: import("react").ForwardRefExoticComponent<FileInputProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
110
|
+
export default FileInput;
|