@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
|
@@ -1,443 +1,533 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useControlledState } from "../hooks/useControlledState.js";
|
|
2
|
+
import { t } from "../theme/tokens/t.js";
|
|
3
|
+
import { GalaxyThemeContext } from "../theme/useGalaxyTheme.js";
|
|
4
|
+
import { useField } from "../hooks/useField.js";
|
|
5
|
+
import { hexToRgb, rgbToHsl } from "../utils/colors.js";
|
|
4
6
|
/* empty css */
|
|
5
7
|
import { styled } from "@linaria/react";
|
|
6
|
-
import {
|
|
7
|
-
import { useMemo } from "react";
|
|
8
|
+
import { forwardRef, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
8
9
|
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
import { cx } from "@linaria/core";
|
|
11
|
+
import { Prec } from "@codemirror/state";
|
|
9
12
|
import { EditorView, keymap } from "@codemirror/view";
|
|
10
13
|
import { tags } from "@lezer/highlight";
|
|
11
|
-
import { langs, loadLanguage } from "@uiw/codemirror-extensions-langs";
|
|
12
14
|
import { createTheme } from "@uiw/codemirror-themes";
|
|
13
15
|
import CodeMirror from "@uiw/react-codemirror";
|
|
14
16
|
//#region src/editor/CodeEditor.tsx
|
|
15
|
-
/**
|
|
17
|
+
/** Resting fill of the editor frame (Constitution V-A surface set; 1.x members). 1.x `noBorder` is `isGhost`. */
|
|
16
18
|
var CodeEditorVariant = /* @__PURE__ */ function(CodeEditorVariant) {
|
|
19
|
+
/** `background.base`. */
|
|
17
20
|
CodeEditorVariant["BASE"] = "BASE";
|
|
21
|
+
/** `background.primary`. The default. */
|
|
18
22
|
CodeEditorVariant["PRIMARY"] = "PRIMARY";
|
|
23
|
+
/** `background.secondary`. */
|
|
19
24
|
CodeEditorVariant["SECONDARY"] = "SECONDARY";
|
|
25
|
+
/** `background.tertiary`. */
|
|
20
26
|
CodeEditorVariant["TERTIARY"] = "TERTIARY";
|
|
21
27
|
return CodeEditorVariant;
|
|
22
28
|
}({});
|
|
23
|
-
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
/** Grammar used to highlight and edit the document. The `CodeBlockLanguage` set minus GRAPHQL. */
|
|
30
|
+
var CodeEditorLanguage = /* @__PURE__ */ function(CodeEditorLanguage) {
|
|
31
|
+
/** No grammar: unhighlighted text. */
|
|
32
|
+
CodeEditorLanguage["PLAIN"] = "PLAIN";
|
|
33
|
+
/** Shell scripts and commands. */
|
|
34
|
+
CodeEditorLanguage["BASH"] = "BASH";
|
|
35
|
+
/** CSS. */
|
|
36
|
+
CodeEditorLanguage["CSS"] = "CSS";
|
|
37
|
+
/** Go. */
|
|
38
|
+
CodeEditorLanguage["GO"] = "GO";
|
|
39
|
+
/** HTML. */
|
|
40
|
+
CodeEditorLanguage["HTML"] = "HTML";
|
|
41
|
+
/** JavaScript. */
|
|
42
|
+
CodeEditorLanguage["JAVASCRIPT"] = "JAVASCRIPT";
|
|
43
|
+
/** JSON. */
|
|
44
|
+
CodeEditorLanguage["JSON"] = "JSON";
|
|
45
|
+
/** JavaScript with JSX. */
|
|
46
|
+
CodeEditorLanguage["JSX"] = "JSX";
|
|
47
|
+
/** Markdown. */
|
|
48
|
+
CodeEditorLanguage["MARKDOWN"] = "MARKDOWN";
|
|
49
|
+
/** Protocol Buffers. */
|
|
50
|
+
CodeEditorLanguage["PROTOBUF"] = "PROTOBUF";
|
|
51
|
+
/** Python. */
|
|
52
|
+
CodeEditorLanguage["PYTHON"] = "PYTHON";
|
|
53
|
+
/** Rust. */
|
|
54
|
+
CodeEditorLanguage["RUST"] = "RUST";
|
|
55
|
+
/** SQL. */
|
|
56
|
+
CodeEditorLanguage["SQL"] = "SQL";
|
|
57
|
+
/** TOML. */
|
|
58
|
+
CodeEditorLanguage["TOML"] = "TOML";
|
|
59
|
+
/** TypeScript with JSX. */
|
|
60
|
+
CodeEditorLanguage["TSX"] = "TSX";
|
|
61
|
+
/** TypeScript. */
|
|
62
|
+
CodeEditorLanguage["TYPESCRIPT"] = "TYPESCRIPT";
|
|
63
|
+
/** YAML. */
|
|
64
|
+
CodeEditorLanguage["YAML"] = "YAML";
|
|
65
|
+
return CodeEditorLanguage;
|
|
66
|
+
}({});
|
|
67
|
+
/** `@uiw/codemirror-extensions-langs` key per language (exhaustive; `PLAIN` loads nothing). */
|
|
68
|
+
var CODE_EDITOR_LANGUAGE_TO_LANG_NAME_MAP = {
|
|
69
|
+
["BASH"]: "bash",
|
|
70
|
+
["CSS"]: "css",
|
|
71
|
+
["GO"]: "go",
|
|
72
|
+
["HTML"]: "html",
|
|
73
|
+
["JAVASCRIPT"]: "js",
|
|
74
|
+
["JSON"]: "json",
|
|
75
|
+
["JSX"]: "jsx",
|
|
76
|
+
["MARKDOWN"]: "markdown",
|
|
77
|
+
["PROTOBUF"]: "proto",
|
|
78
|
+
["PYTHON"]: "python",
|
|
79
|
+
["RUST"]: "rs",
|
|
80
|
+
["SQL"]: "sql",
|
|
81
|
+
["TOML"]: "toml",
|
|
82
|
+
["TSX"]: "tsx",
|
|
83
|
+
["TYPESCRIPT"]: "ts",
|
|
84
|
+
["YAML"]: "yaml"
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* The frame: surface, hairline and radius; CodeMirror fills it. Focus does not change the frame
|
|
88
|
+
* (no focus border, no inset line): the editor usually sits in a form between a header and a
|
|
89
|
+
* footer, and the caret and selection already show where focus is. Hover does not change it either.
|
|
90
|
+
*/
|
|
91
|
+
var Root = /*#__PURE__*/ styled("div")({
|
|
92
|
+
name: "Root",
|
|
93
|
+
class: "gx-CodeEditor-rwfaerb",
|
|
94
|
+
propsAsIs: false
|
|
95
|
+
});
|
|
96
|
+
/**
|
|
97
|
+
* Rest look per variant: fill and hairline color (restated from Input). The fill is
|
|
98
|
+
* `--gx-code-editor-fill`, which the line-number gutter also paints so scrolled code passes under it.
|
|
99
|
+
*/
|
|
100
|
+
var CODE_EDITOR_VARIANT_TO_CSS_MAP = {
|
|
101
|
+
["BASE"]: "gx-CodeEditor-BASE-b1tjlkiu",
|
|
102
|
+
["PRIMARY"]: "gx-CodeEditor-PRIMARY-p1wy6p36",
|
|
103
|
+
["SECONDARY"]: "gx-CodeEditor-SECONDARY-s17h1t09",
|
|
104
|
+
["TERTIARY"]: "gx-CodeEditor-TERTIARY-t2pkkyv"
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* `isGhost`: no fill and no hairline at rest. Declared after the variant map, which it replaces.
|
|
108
|
+
* The gutter assumes the usual `background.primary` panel behind it; on another surface the app sets
|
|
109
|
+
* `--gx-code-editor-fill` (through `style`) to that surface.
|
|
110
|
+
*/
|
|
111
|
+
var GHOST_CSS = "gx-CodeEditor-GHOST_CSS-gxzddl0";
|
|
112
|
+
/** Error border, at rest and while focused (also on a ghost frame). */
|
|
113
|
+
var ERROR_CSS = "gx-CodeEditor-ERROR_CSS-e16ii38u";
|
|
114
|
+
/** CodeBlock's token table mapped onto `@lezer/highlight` tags, so read-only and editable code match. */
|
|
115
|
+
function getHighlightStyles() {
|
|
116
|
+
return [
|
|
117
|
+
{
|
|
118
|
+
tag: [
|
|
119
|
+
tags.comment,
|
|
120
|
+
tags.lineComment,
|
|
121
|
+
tags.blockComment,
|
|
122
|
+
tags.docComment,
|
|
123
|
+
tags.meta,
|
|
124
|
+
tags.annotation,
|
|
125
|
+
tags.processingInstruction
|
|
126
|
+
],
|
|
127
|
+
color: t.color.text.tertiary,
|
|
128
|
+
fontStyle: "italic"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
tag: [
|
|
132
|
+
tags.punctuation,
|
|
133
|
+
tags.operator,
|
|
134
|
+
tags.separator,
|
|
135
|
+
tags.bracket,
|
|
136
|
+
tags.angleBracket,
|
|
137
|
+
tags.squareBracket,
|
|
138
|
+
tags.paren,
|
|
139
|
+
tags.brace,
|
|
140
|
+
tags.derefOperator
|
|
141
|
+
],
|
|
142
|
+
color: t.color.text.secondary
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
tag: [
|
|
146
|
+
tags.keyword,
|
|
147
|
+
tags.modifier,
|
|
148
|
+
tags.controlKeyword,
|
|
149
|
+
tags.operatorKeyword,
|
|
150
|
+
tags.definitionKeyword,
|
|
151
|
+
tags.moduleKeyword,
|
|
152
|
+
tags.self,
|
|
153
|
+
tags.bool,
|
|
154
|
+
tags.null,
|
|
155
|
+
tags.atom,
|
|
156
|
+
tags.constant(tags.name)
|
|
157
|
+
],
|
|
158
|
+
color: t.color.text.purple
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
tag: [
|
|
162
|
+
tags.string,
|
|
163
|
+
tags.special(tags.string),
|
|
164
|
+
tags.character,
|
|
165
|
+
tags.escape,
|
|
166
|
+
tags.docString,
|
|
167
|
+
tags.attributeValue,
|
|
168
|
+
tags.regexp,
|
|
169
|
+
tags.url,
|
|
170
|
+
tags.link,
|
|
171
|
+
tags.inserted
|
|
172
|
+
],
|
|
173
|
+
color: t.color.text.green
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
tag: [
|
|
177
|
+
tags.number,
|
|
178
|
+
tags.integer,
|
|
179
|
+
tags.float,
|
|
180
|
+
tags.unit
|
|
181
|
+
],
|
|
182
|
+
color: t.color.text.orange
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
tag: [
|
|
186
|
+
tags.function(tags.variableName),
|
|
187
|
+
tags.function(tags.propertyName),
|
|
188
|
+
tags.definition(tags.function(tags.variableName))
|
|
189
|
+
],
|
|
190
|
+
color: t.color.text.blue
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
tag: [
|
|
194
|
+
tags.className,
|
|
195
|
+
tags.typeName,
|
|
196
|
+
tags.definition(tags.typeName),
|
|
197
|
+
tags.namespace,
|
|
198
|
+
tags.standard(tags.variableName)
|
|
199
|
+
],
|
|
200
|
+
color: t.color.text.yellow
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
tag: [tags.tagName, tags.labelName],
|
|
204
|
+
color: t.color.text.pink
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
tag: [tags.attributeName, tags.special(tags.variableName)],
|
|
208
|
+
color: t.color.text.teal
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
tag: [tags.deleted, tags.invalid],
|
|
212
|
+
color: t.color.text.red
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
tag: [
|
|
216
|
+
tags.heading,
|
|
217
|
+
tags.heading1,
|
|
218
|
+
tags.heading2,
|
|
219
|
+
tags.heading3,
|
|
220
|
+
tags.heading4,
|
|
221
|
+
tags.heading5,
|
|
222
|
+
tags.heading6,
|
|
223
|
+
tags.strong
|
|
224
|
+
],
|
|
225
|
+
fontWeight: t.font.mono.weight.medium
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
tag: tags.emphasis,
|
|
229
|
+
fontStyle: "italic"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
tag: tags.strikethrough,
|
|
233
|
+
color: t.color.text.tertiary,
|
|
234
|
+
textDecoration: "line-through"
|
|
235
|
+
}
|
|
236
|
+
];
|
|
36
237
|
}
|
|
37
|
-
|
|
238
|
+
/** The focus outline, written out for CodeMirror's own buttons (the `FOCUS_RING` values). */
|
|
239
|
+
function getFocusOutline() {
|
|
240
|
+
return {
|
|
241
|
+
borderColor: t.color.border.focused,
|
|
242
|
+
outline: `1px solid ${t.color.border.focused}`,
|
|
243
|
+
outlineOffset: "1px"
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/** Everything that is not syntax: content inset, gutters, popups, the search panel. All `t.*`. */
|
|
247
|
+
function getEditorViewTheme() {
|
|
248
|
+
const hairline = `0.5px solid ${t.color.border.primary}`;
|
|
249
|
+
const sansBodyMd = {
|
|
250
|
+
fontFamily: t.font.sans.family,
|
|
251
|
+
fontSize: t.font.sans.size.body_md
|
|
252
|
+
};
|
|
38
253
|
return EditorView.theme({
|
|
39
|
-
"
|
|
40
|
-
".cm-
|
|
41
|
-
|
|
254
|
+
"&.cm-focused": { outline: "none" },
|
|
255
|
+
".cm-scroller": {
|
|
256
|
+
overflow: "auto",
|
|
257
|
+
fontFamily: t.font.mono.family,
|
|
258
|
+
lineHeight: t.font.mono.height.body_lg,
|
|
259
|
+
letterSpacing: t.font.mono.spacing.body_md
|
|
260
|
+
},
|
|
261
|
+
".cm-content": { padding: `${t.space[8]} 0` },
|
|
262
|
+
".cm-line": { padding: `0 ${t.space[12]}` },
|
|
263
|
+
".cm-gutters": {
|
|
264
|
+
border: "none",
|
|
265
|
+
color: t.color.text.tertiary
|
|
266
|
+
},
|
|
267
|
+
".cm-lineNumbers .cm-gutterElement": {
|
|
268
|
+
padding: `0 ${t.space[4]} 0 ${t.space[12]}`,
|
|
269
|
+
fontVariantNumeric: "tabular-nums"
|
|
270
|
+
},
|
|
271
|
+
".cm-foldGutter .cm-gutterElement": {
|
|
272
|
+
padding: `0 ${t.space[4]}`,
|
|
273
|
+
color: t.color.text.tertiary
|
|
274
|
+
},
|
|
275
|
+
".cm-activeLineGutter": { backgroundColor: "transparent" },
|
|
276
|
+
".cm-placeholder": { color: t.color.text.tertiary },
|
|
277
|
+
".cm-matchingBracket": {
|
|
278
|
+
backgroundColor: t.color.opacity.fg12,
|
|
279
|
+
outline: "none"
|
|
280
|
+
},
|
|
281
|
+
".cm-nonmatchingBracket": {
|
|
282
|
+
color: t.color.text.error,
|
|
283
|
+
backgroundColor: "transparent"
|
|
284
|
+
},
|
|
285
|
+
".cm-searchMatch": {
|
|
286
|
+
backgroundColor: t.color.background.yellow,
|
|
287
|
+
outline: "none"
|
|
288
|
+
},
|
|
289
|
+
".cm-searchMatch.cm-searchMatch-selected": { backgroundColor: t.color.background.yellow },
|
|
290
|
+
".cm-foldPlaceholder": {
|
|
291
|
+
backgroundColor: t.color.background.tertiary,
|
|
292
|
+
border: hairline,
|
|
293
|
+
borderRadius: t.radius.sm,
|
|
294
|
+
color: t.color.text.secondary,
|
|
295
|
+
padding: `0 ${t.space[4]}`
|
|
296
|
+
},
|
|
297
|
+
".cm-tooltip": {
|
|
298
|
+
backgroundColor: t.color.background.tertiary,
|
|
299
|
+
border: hairline,
|
|
300
|
+
borderRadius: t.radius.md,
|
|
301
|
+
color: t.color.text.primary,
|
|
302
|
+
overflow: "hidden"
|
|
303
|
+
},
|
|
304
|
+
".cm-tooltip.cm-tooltip-autocomplete > ul": {
|
|
305
|
+
fontFamily: t.font.mono.family,
|
|
306
|
+
fontSize: t.font.mono.size.body_md
|
|
307
|
+
},
|
|
308
|
+
".cm-tooltip.cm-tooltip-autocomplete > ul > li": {
|
|
309
|
+
padding: `${t.space[2]} ${t.space[8]}`,
|
|
310
|
+
lineHeight: t.font.mono.height.body_md
|
|
311
|
+
},
|
|
312
|
+
".cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]": {
|
|
313
|
+
backgroundColor: t.color.background.pressed,
|
|
314
|
+
color: t.color.text.primary
|
|
315
|
+
},
|
|
316
|
+
".cm-completionDetail": {
|
|
317
|
+
color: t.color.text.tertiary,
|
|
318
|
+
fontStyle: "normal"
|
|
319
|
+
},
|
|
320
|
+
".cm-completionMatchedText": {
|
|
321
|
+
textDecoration: "none",
|
|
322
|
+
fontWeight: t.font.mono.weight.medium
|
|
323
|
+
},
|
|
324
|
+
".cm-panels": {
|
|
325
|
+
backgroundColor: "transparent",
|
|
326
|
+
color: t.color.text.primary
|
|
327
|
+
},
|
|
328
|
+
".cm-panels.cm-panels-top": {
|
|
329
|
+
borderBottom: "none",
|
|
330
|
+
padding: t.space[8]
|
|
331
|
+
},
|
|
332
|
+
".cm-panels.cm-panels-bottom": {
|
|
333
|
+
borderTop: "none",
|
|
334
|
+
padding: t.space[8]
|
|
335
|
+
},
|
|
42
336
|
".cm-panel.cm-search": {
|
|
43
|
-
|
|
44
|
-
|
|
337
|
+
display: "flex",
|
|
338
|
+
alignItems: "center",
|
|
339
|
+
gap: t.space[4],
|
|
45
340
|
width: "fit-content",
|
|
46
|
-
maxWidth: "
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
backgroundColor:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
".cm-panel.cm-search
|
|
55
|
-
".cm-panel.cm-search .cm-textfield[name=replace], .cm-panel.cm-search .cm-button[name=replace], .cm-panel.cm-search .cm-button[name=replaceAll], .cm-panel.cm-search label:has(input[name=case]), .cm-panel.cm-search label:has(input[name=re]), .cm-panel.cm-search label:has(input[name=word]), .cm-panel.cm-search [name=close], .cm-panel.cm-search br": { display: "none" },
|
|
341
|
+
maxWidth: "100%",
|
|
342
|
+
boxSizing: "border-box",
|
|
343
|
+
padding: t.space[4],
|
|
344
|
+
backgroundColor: t.color.background.tertiary,
|
|
345
|
+
border: hairline,
|
|
346
|
+
borderRadius: t.radius.md,
|
|
347
|
+
...sansBodyMd
|
|
348
|
+
},
|
|
349
|
+
".cm-panel.cm-search .cm-textfield[name=replace], .cm-panel.cm-search .cm-button[name=replace], .cm-panel.cm-search .cm-button[name=replaceAll], .cm-panel.cm-search label, .cm-panel.cm-search [name=close], .cm-panel.cm-search br": { display: "none" },
|
|
56
350
|
".cm-panel.cm-search .cm-textfield": {
|
|
57
|
-
height:
|
|
58
|
-
minHeight: "24px",
|
|
59
|
-
maxHeight: "24px",
|
|
60
|
-
padding: "0 6px",
|
|
61
|
-
margin: 0,
|
|
351
|
+
height: t.size.control.small,
|
|
62
352
|
boxSizing: "border-box",
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
color:
|
|
69
|
-
|
|
70
|
-
fontSize: theme.font.sans.size.body_md,
|
|
71
|
-
lineHeight: "24px",
|
|
72
|
-
fontWeight: theme.font.sans.weight.regular,
|
|
353
|
+
margin: 0,
|
|
354
|
+
padding: `0 ${t.space[8]}`,
|
|
355
|
+
border: hairline,
|
|
356
|
+
borderRadius: t.radius.md,
|
|
357
|
+
backgroundColor: t.color.background.primary,
|
|
358
|
+
color: t.color.text.primary,
|
|
359
|
+
...sansBodyMd,
|
|
73
360
|
outline: "none",
|
|
74
|
-
|
|
75
|
-
"
|
|
361
|
+
transition: `border-color ${t.duration.fast} ease-in-out`,
|
|
362
|
+
"&::placeholder": { color: t.color.text.tertiary },
|
|
363
|
+
"&:focus": { borderColor: t.color.border.focused }
|
|
76
364
|
},
|
|
77
365
|
".cm-panel.cm-search .cm-button": {
|
|
78
|
-
height:
|
|
79
|
-
minHeight: "24px",
|
|
80
|
-
maxHeight: "24px",
|
|
81
|
-
padding: "0 10px",
|
|
82
|
-
margin: 0,
|
|
366
|
+
height: t.size.control.small,
|
|
83
367
|
boxSizing: "border-box",
|
|
84
|
-
|
|
85
|
-
|
|
368
|
+
margin: 0,
|
|
369
|
+
padding: `0 ${t.space[8]}`,
|
|
86
370
|
border: "0.5px solid transparent",
|
|
371
|
+
borderRadius: t.radius.md,
|
|
87
372
|
background: "transparent",
|
|
88
373
|
backgroundImage: "none",
|
|
89
|
-
color:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
lineHeight: "24px",
|
|
93
|
-
fontWeight: theme.font.sans.weight.medium,
|
|
374
|
+
color: t.color.text.primary,
|
|
375
|
+
...sansBodyMd,
|
|
376
|
+
fontWeight: t.font.sans.weight.medium,
|
|
94
377
|
textTransform: "capitalize",
|
|
95
378
|
cursor: "pointer",
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
verticalAlign: "middle",
|
|
100
|
-
whiteSpace: "nowrap",
|
|
101
|
-
appearance: "none",
|
|
102
|
-
WebkitAppearance: "none",
|
|
103
|
-
boxShadow: "none",
|
|
104
|
-
filter: "none",
|
|
105
|
-
transition: "background-color 0.075s ease-in-out, border 0.075s ease-in-out",
|
|
106
|
-
"&:hover": {
|
|
107
|
-
backgroundColor: theme.color.background.secondary,
|
|
108
|
-
borderColor: theme.color.border.primary
|
|
109
|
-
}
|
|
379
|
+
transition: `background-color ${t.duration.fast} ease-in-out`,
|
|
380
|
+
"&:hover": { backgroundColor: t.color.background.hovered },
|
|
381
|
+
"&:focus-visible": getFocusOutline()
|
|
110
382
|
}
|
|
111
383
|
});
|
|
112
384
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
theme:
|
|
385
|
+
/** The DLS CodeMirror theme per `isDark` × `isReadOnly`, built on first use (never at module scope). */
|
|
386
|
+
var THEME_CACHE = /* @__PURE__ */ new Map();
|
|
387
|
+
/** CodeMirror's theme from tokens; `isDark` only sets CodeMirror's own `dark` flag. */
|
|
388
|
+
function getCodeEditorTheme(isDark, isReadOnly) {
|
|
389
|
+
const key = `${isDark}:${isReadOnly}`;
|
|
390
|
+
const cached = THEME_CACHE.get(key);
|
|
391
|
+
if (cached !== void 0) return cached;
|
|
392
|
+
const theme = [createTheme({
|
|
393
|
+
theme: isDark ? "dark" : "light",
|
|
122
394
|
settings: {
|
|
123
|
-
background:
|
|
124
|
-
foreground:
|
|
125
|
-
caret:
|
|
126
|
-
selection:
|
|
127
|
-
selectionMatch:
|
|
395
|
+
background: "transparent",
|
|
396
|
+
foreground: t.color.text.primary,
|
|
397
|
+
caret: t.color.text.primary,
|
|
398
|
+
selection: t.color.opacity.fg16,
|
|
399
|
+
selectionMatch: "transparent",
|
|
128
400
|
lineHighlight: "transparent",
|
|
129
|
-
gutterBackground:
|
|
130
|
-
gutterForeground:
|
|
131
|
-
gutterActiveForeground:
|
|
401
|
+
gutterBackground: `var(--gx-code-editor-fill, ${t.color.background.primary})`,
|
|
402
|
+
gutterForeground: t.color.text.tertiary,
|
|
403
|
+
gutterActiveForeground: isReadOnly ? t.color.text.tertiary : t.color.text.primary,
|
|
132
404
|
gutterBorder: "transparent",
|
|
133
|
-
fontFamily:
|
|
134
|
-
fontSize:
|
|
135
|
-
},
|
|
136
|
-
styles:
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
fontStyle: "italic"
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
tag: tags.lineComment,
|
|
144
|
-
color: theme.color.text.tertiary,
|
|
145
|
-
fontStyle: "italic"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
tag: tags.blockComment,
|
|
149
|
-
color: theme.color.text.tertiary,
|
|
150
|
-
fontStyle: "italic"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
tag: tags.variableName,
|
|
154
|
-
color: theme.color.text.primary
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
tag: tags.definition(tags.variableName),
|
|
158
|
-
color: theme.color.text.primary
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
tag: tags.propertyName,
|
|
162
|
-
color: theme.color.text.purple
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
tag: tags.definition(tags.propertyName),
|
|
166
|
-
color: theme.color.text.purple
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
tag: tags.string,
|
|
170
|
-
color: theme.color.text.primary
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
tag: tags.special(tags.string),
|
|
174
|
-
color: theme.color.text.primary
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
tag: tags.character,
|
|
178
|
-
color: theme.color.text.primary
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
tag: tags.escape,
|
|
182
|
-
color: theme.color.text.primary
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
tag: tags.number,
|
|
186
|
-
color: theme.color.text.pink
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
tag: tags.integer,
|
|
190
|
-
color: theme.color.text.pink
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
tag: tags.float,
|
|
194
|
-
color: theme.color.text.pink
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
tag: tags.bool,
|
|
198
|
-
color: theme.color.text.pink
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
tag: tags.null,
|
|
202
|
-
color: theme.color.text.pink
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
tag: tags.atom,
|
|
206
|
-
color: theme.color.text.pink
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
tag: tags.keyword,
|
|
210
|
-
color: theme.color.text.blue,
|
|
211
|
-
fontWeight: "500"
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
tag: tags.modifier,
|
|
215
|
-
color: theme.color.text.blue
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
tag: tags.self,
|
|
219
|
-
color: theme.color.text.blue
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
tag: tags.operator,
|
|
223
|
-
color: theme.color.text.tertiary
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
tag: tags.punctuation,
|
|
227
|
-
color: theme.color.text.tertiary
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
tag: tags.separator,
|
|
231
|
-
color: theme.color.text.tertiary
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
tag: tags.bracket,
|
|
235
|
-
color: theme.color.text.tertiary
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
tag: tags.angleBracket,
|
|
239
|
-
color: theme.color.text.tertiary
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
tag: tags.squareBracket,
|
|
243
|
-
color: theme.color.text.tertiary
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
tag: tags.paren,
|
|
247
|
-
color: theme.color.text.tertiary
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
tag: tags.brace,
|
|
251
|
-
color: theme.color.text.tertiary
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
tag: tags.special(tags.brace),
|
|
255
|
-
color: theme.color.text.teal
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
tag: tags.className,
|
|
259
|
-
color: theme.color.text.purple
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
tag: tags.typeName,
|
|
263
|
-
color: theme.color.text.purple
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
tag: tags.definition(tags.typeName),
|
|
267
|
-
color: theme.color.text.purple
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
tag: tags.namespace,
|
|
271
|
-
color: theme.color.text.teal
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
tag: tags.function(tags.variableName),
|
|
275
|
-
color: theme.color.text.blue
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
tag: tags.definition(tags.function(tags.variableName)),
|
|
279
|
-
color: theme.color.text.blue
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
tag: tags.function(tags.propertyName),
|
|
283
|
-
color: theme.color.text.teal
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
tag: tags.tagName,
|
|
287
|
-
color: theme.color.text.pink
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
tag: tags.attributeName,
|
|
291
|
-
color: theme.color.text.blue
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
tag: tags.attributeValue,
|
|
295
|
-
color: theme.color.text.green
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
tag: tags.heading,
|
|
299
|
-
color: theme.color.text.pink,
|
|
300
|
-
fontWeight: "bold"
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
tag: tags.heading1,
|
|
304
|
-
color: theme.color.text.pink,
|
|
305
|
-
fontWeight: "bold"
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
tag: tags.heading2,
|
|
309
|
-
color: theme.color.text.orange,
|
|
310
|
-
fontWeight: "bold"
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
tag: tags.heading3,
|
|
314
|
-
color: theme.color.text.teal,
|
|
315
|
-
fontWeight: "bold"
|
|
316
|
-
},
|
|
317
|
-
{
|
|
318
|
-
tag: tags.link,
|
|
319
|
-
color: theme.color.text.blue,
|
|
320
|
-
textDecoration: "underline"
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
tag: tags.url,
|
|
324
|
-
color: theme.color.text.teal,
|
|
325
|
-
textDecoration: "underline"
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
tag: tags.emphasis,
|
|
329
|
-
color: theme.color.text.lime,
|
|
330
|
-
fontStyle: "italic"
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
tag: tags.strong,
|
|
334
|
-
color: theme.color.text.purple,
|
|
335
|
-
fontWeight: "bold"
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
tag: tags.strikethrough,
|
|
339
|
-
color: theme.color.text.tertiary,
|
|
340
|
-
textDecoration: "line-through"
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
tag: tags.regexp,
|
|
344
|
-
color: theme.color.text.yellow
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
tag: tags.labelName,
|
|
348
|
-
color: theme.color.text.lime
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
tag: tags.meta,
|
|
352
|
-
color: theme.color.text.tertiary
|
|
353
|
-
},
|
|
354
|
-
{
|
|
355
|
-
tag: tags.annotation,
|
|
356
|
-
color: theme.color.text.tertiary
|
|
357
|
-
},
|
|
358
|
-
{
|
|
359
|
-
tag: tags.processingInstruction,
|
|
360
|
-
color: theme.color.text.tertiary
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
tag: tags.invalid,
|
|
364
|
-
color: theme.color.text.error
|
|
365
|
-
}
|
|
366
|
-
]
|
|
367
|
-
});
|
|
405
|
+
fontFamily: t.font.mono.family,
|
|
406
|
+
fontSize: t.font.mono.size.body_md
|
|
407
|
+
},
|
|
408
|
+
styles: getHighlightStyles()
|
|
409
|
+
}), getEditorViewTheme()];
|
|
410
|
+
THEME_CACHE.set(key, theme);
|
|
411
|
+
return theme;
|
|
368
412
|
}
|
|
369
|
-
/**
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
const
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
}
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
413
|
+
/** The pending or settled import of the grammar package (set lazily, never at module scope). */
|
|
414
|
+
var langsModulePromise;
|
|
415
|
+
/** One stable `Extension` per language, shared by every editor. */
|
|
416
|
+
var LANGUAGE_CACHE = /* @__PURE__ */ new Map();
|
|
417
|
+
/** Loads a grammar (the package is its own lazy chunk); resolves `undefined` for `PLAIN`. */
|
|
418
|
+
async function loadCodeEditorLanguage(language) {
|
|
419
|
+
if (language === "PLAIN") return void 0;
|
|
420
|
+
const cached = LANGUAGE_CACHE.get(language);
|
|
421
|
+
if (cached !== void 0) return cached;
|
|
422
|
+
langsModulePromise ??= import("@uiw/codemirror-extensions-langs");
|
|
423
|
+
const { langs } = await langsModulePromise;
|
|
424
|
+
const extension = langs[CODE_EDITOR_LANGUAGE_TO_LANG_NAME_MAP[language]]();
|
|
425
|
+
LANGUAGE_CACHE.set(language, extension);
|
|
426
|
+
return extension;
|
|
427
|
+
}
|
|
428
|
+
/** True for a non-empty string. */
|
|
429
|
+
function isFilled(text) {
|
|
430
|
+
return text !== void 0 && text !== "";
|
|
431
|
+
}
|
|
432
|
+
/** The multi-line code editor: CodeMirror 6 in the DLS input frame. */
|
|
433
|
+
var CodeEditor = forwardRef(function CodeEditor({ value, defaultValue = "", onChange, onExecute, language = "PLAIN", placeholder, variant = "PRIMARY", isGhost = false, hasLineNumbers = false, isReadOnly = false, isError = false, extensions, ariaLabel, id, className, style, ...rest }, ref) {
|
|
434
|
+
const field = useField();
|
|
435
|
+
const themeContext = useContext(GalaxyThemeContext);
|
|
436
|
+
const [currentValue, setValue] = useControlledState({
|
|
437
|
+
value,
|
|
438
|
+
defaultValue,
|
|
439
|
+
onChange
|
|
440
|
+
});
|
|
441
|
+
const hasError = isError || field?.isError === true;
|
|
442
|
+
const isEditable = !isReadOnly;
|
|
443
|
+
const ariaPassthrough = {};
|
|
444
|
+
const dataPassthrough = {};
|
|
445
|
+
for (const [key, attribute] of Object.entries(rest)) if (key.startsWith("data-")) dataPassthrough[key] = attribute;
|
|
446
|
+
else if (key.startsWith("aria-") && attribute !== void 0 && attribute !== null) ariaPassthrough[key] = String(attribute);
|
|
447
|
+
const { "aria-label": passedAriaLabel, "aria-describedby": passedDescribedBy, ...otherAria } = ariaPassthrough;
|
|
448
|
+
const contentAttributeMap = {};
|
|
449
|
+
const contentId = field?.controlId ?? id;
|
|
450
|
+
if (isFilled(contentId)) contentAttributeMap.id = contentId;
|
|
451
|
+
const accessibleName = ariaLabel ?? passedAriaLabel;
|
|
452
|
+
if (isFilled(accessibleName)) contentAttributeMap["aria-label"] = accessibleName;
|
|
453
|
+
if (field?.labelId !== void 0) contentAttributeMap["aria-labelledby"] = field.labelId;
|
|
454
|
+
const describedBy = [field?.describedBy, passedDescribedBy].filter(isFilled).join(" ");
|
|
455
|
+
if (describedBy !== "") contentAttributeMap["aria-describedby"] = describedBy;
|
|
456
|
+
if (hasError) contentAttributeMap["aria-invalid"] = "true";
|
|
457
|
+
if (field?.isRequired === true) contentAttributeMap["aria-required"] = "true";
|
|
458
|
+
if (isReadOnly) contentAttributeMap["aria-readonly"] = "true";
|
|
459
|
+
Object.assign(contentAttributeMap, otherAria);
|
|
460
|
+
const contentAttributesKey = JSON.stringify(contentAttributeMap);
|
|
461
|
+
const contentAttributes = useMemo(() => EditorView.contentAttributes.of(JSON.parse(contentAttributesKey)), [contentAttributesKey]);
|
|
462
|
+
const onExecuteRef = useRef(onExecute);
|
|
463
|
+
onExecuteRef.current = onExecute;
|
|
464
|
+
const executeKeymap = useMemo(() => Prec.highest(keymap.of([{
|
|
465
|
+
key: "Mod-Enter",
|
|
466
|
+
run: (view) => {
|
|
467
|
+
const handler = onExecuteRef.current;
|
|
468
|
+
if (view.state.readOnly || handler === void 0) return false;
|
|
469
|
+
handler(view.state.doc.toString());
|
|
470
|
+
return true;
|
|
471
|
+
}
|
|
472
|
+
}])), []);
|
|
473
|
+
const [loadedLanguage, setLoadedLanguage] = useState();
|
|
474
|
+
useEffect(() => {
|
|
475
|
+
if (language === "PLAIN") return;
|
|
476
|
+
let isCurrent = true;
|
|
477
|
+
loadCodeEditorLanguage(language).then((extension) => {
|
|
478
|
+
if (isCurrent && extension !== void 0) setLoadedLanguage({
|
|
479
|
+
language,
|
|
480
|
+
extension
|
|
481
|
+
});
|
|
482
|
+
}, () => {});
|
|
483
|
+
return () => {
|
|
484
|
+
isCurrent = false;
|
|
485
|
+
};
|
|
486
|
+
}, [language]);
|
|
487
|
+
const languageExtension = loadedLanguage !== void 0 && loadedLanguage.language === language ? loadedLanguage.extension : void 0;
|
|
488
|
+
const baseColor = themeContext?.theme.color.background.base;
|
|
489
|
+
const themeExtension = getCodeEditorTheme(baseColor === void 0 ? false : rgbToHsl(hexToRgb(baseColor)).l < .5, isReadOnly);
|
|
490
|
+
const allExtensions = useMemo(() => [
|
|
491
|
+
contentAttributes,
|
|
492
|
+
executeKeymap,
|
|
493
|
+
...languageExtension === void 0 ? [] : [languageExtension],
|
|
494
|
+
...extensions ?? []
|
|
495
|
+
], [
|
|
496
|
+
contentAttributes,
|
|
497
|
+
executeKeymap,
|
|
498
|
+
languageExtension,
|
|
499
|
+
extensions
|
|
425
500
|
]);
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
501
|
+
const basicSetup = useMemo(() => ({
|
|
502
|
+
lineNumbers: hasLineNumbers,
|
|
503
|
+
foldGutter: hasLineNumbers,
|
|
504
|
+
highlightActiveLine: false,
|
|
505
|
+
highlightActiveLineGutter: false,
|
|
506
|
+
highlightSelectionMatches: false
|
|
507
|
+
}), [hasLineNumbers]);
|
|
508
|
+
const setValueRef = useRef(setValue);
|
|
509
|
+
setValueRef.current = setValue;
|
|
510
|
+
const handleChange = useCallback((next) => setValueRef.current(next), []);
|
|
511
|
+
return /* @__PURE__ */ jsx(Root, {
|
|
512
|
+
ref,
|
|
513
|
+
...dataPassthrough,
|
|
514
|
+
className: cx(isGhost ? GHOST_CSS : CODE_EDITOR_VARIANT_TO_CSS_MAP[variant], hasError && ERROR_CSS, className),
|
|
515
|
+
style,
|
|
429
516
|
children: /* @__PURE__ */ jsx(CodeMirror, {
|
|
430
|
-
value:
|
|
431
|
-
|
|
432
|
-
|
|
517
|
+
value: currentValue,
|
|
518
|
+
onChange: handleChange,
|
|
519
|
+
theme: themeExtension,
|
|
520
|
+
basicSetup,
|
|
521
|
+
readOnly: isReadOnly,
|
|
522
|
+
editable: true,
|
|
523
|
+
indentWithTab: isEditable,
|
|
524
|
+
placeholder: placeholder ?? "",
|
|
433
525
|
height: "100%",
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
basicSetup: { lineNumbers: !noLineNumbers },
|
|
437
|
-
extensions,
|
|
438
|
-
onChange
|
|
526
|
+
width: "100%",
|
|
527
|
+
extensions: allExtensions
|
|
439
528
|
})
|
|
440
529
|
});
|
|
441
|
-
};
|
|
530
|
+
});
|
|
531
|
+
CodeEditor.displayName = "CodeEditor";
|
|
442
532
|
//#endregion
|
|
443
|
-
export {
|
|
533
|
+
export { CodeEditorLanguage, CodeEditorVariant, CodeEditor as default };
|