@langchain/macaw-components 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +27 -0
- package/dist/_chunks/ErrorState-CmPX01HV.js +13361 -0
- package/dist/_chunks/ErrorState-CmPX01HV.js.map +1 -0
- package/dist/_chunks/LoadingIndicator-DgtU9aqD.js +80 -0
- package/dist/_chunks/LoadingIndicator-DgtU9aqD.js.map +1 -0
- package/dist/base.css +305 -0
- package/dist/catalog.json +1675 -0
- package/dist/components/Avatar/Avatar.d.ts +28 -0
- package/dist/components/Avatar/Avatar.js +47 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.js +2 -0
- package/dist/components/Badge/Badge.d.ts +25 -0
- package/dist/components/Badge/Badge.js +82 -0
- package/dist/components/Badge/Badge.js.map +1 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/index.js +2 -0
- package/dist/components/Banner/Banner.d.ts +15 -0
- package/dist/components/Banner/Banner.js +102 -0
- package/dist/components/Banner/Banner.js.map +1 -0
- package/dist/components/Banner/index.d.ts +2 -0
- package/dist/components/Banner/index.js +2 -0
- package/dist/components/BarChart/AnimatedBar.d.ts +20 -0
- package/dist/components/BarChart/AnimatedBar.js +65 -0
- package/dist/components/BarChart/AnimatedBar.js.map +1 -0
- package/dist/components/BarChart/BarChart.d.ts +25 -0
- package/dist/components/BarChart/BarChart.js +248 -0
- package/dist/components/BarChart/BarChart.js.map +1 -0
- package/dist/components/BarChart/BarChart.types.d.ts +239 -0
- package/dist/components/BarChart/BarChart.types.js +0 -0
- package/dist/components/BarChart/BarChart.utils.d.ts +51 -0
- package/dist/components/BarChart/BarChart.utils.js +215 -0
- package/dist/components/BarChart/BarChart.utils.js.map +1 -0
- package/dist/components/BarChart/BarChartAxes.d.ts +22 -0
- package/dist/components/BarChart/BarChartAxes.js +144 -0
- package/dist/components/BarChart/BarChartAxes.js.map +1 -0
- package/dist/components/BarChart/BarChartGuides.d.ts +22 -0
- package/dist/components/BarChart/BarChartGuides.js +83 -0
- package/dist/components/BarChart/BarChartGuides.js.map +1 -0
- package/dist/components/BarChart/BarChartPlot.d.ts +40 -0
- package/dist/components/BarChart/BarChartPlot.js +262 -0
- package/dist/components/BarChart/BarChartPlot.js.map +1 -0
- package/dist/components/BarChart/constants.d.ts +21 -0
- package/dist/components/BarChart/constants.js +26 -0
- package/dist/components/BarChart/constants.js.map +1 -0
- package/dist/components/BarChart/index.d.ts +3 -0
- package/dist/components/BarChart/index.js +3 -0
- package/dist/components/Button/Button.d.ts +36 -0
- package/dist/components/Button/Button.js +99 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/constants.d.ts +26 -0
- package/dist/components/Button/constants.js +31 -0
- package/dist/components/Button/constants.js.map +1 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.js +2 -0
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +30 -0
- package/dist/components/ButtonGroup/ButtonGroup.js +26 -0
- package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/components/ButtonGroup/index.d.ts +2 -0
- package/dist/components/ButtonGroup/index.js +2 -0
- package/dist/components/Card/Card.d.ts +10 -0
- package/dist/components/Card/Card.js +23 -0
- package/dist/components/Card/Card.js.map +1 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Card/index.js +2 -0
- package/dist/components/ChartCard/ChartCard.d.ts +53 -0
- package/dist/components/ChartCard/ChartCard.js +172 -0
- package/dist/components/ChartCard/ChartCard.js.map +1 -0
- package/dist/components/ChartCard/ChartCardSkeleton.d.ts +7 -0
- package/dist/components/ChartCard/ChartCardSkeleton.js +61 -0
- package/dist/components/ChartCard/ChartCardSkeleton.js.map +1 -0
- package/dist/components/ChartCard/index.d.ts +4 -0
- package/dist/components/ChartCard/index.js +3 -0
- package/dist/components/ChartLegend/ChartLegend.d.ts +19 -0
- package/dist/components/ChartLegend/ChartLegend.js +195 -0
- package/dist/components/ChartLegend/ChartLegend.js.map +1 -0
- package/dist/components/ChartLegend/ChartLegendItemRenderer.d.ts +14 -0
- package/dist/components/ChartLegend/ChartLegendItemRenderer.js +90 -0
- package/dist/components/ChartLegend/ChartLegendItemRenderer.js.map +1 -0
- package/dist/components/ChartLegend/index.d.ts +3 -0
- package/dist/components/ChartLegend/index.js +3 -0
- package/dist/components/ChartLegend/useChartLegendActiveItem.d.ts +7 -0
- package/dist/components/ChartLegend/useChartLegendActiveItem.js +35 -0
- package/dist/components/ChartLegend/useChartLegendActiveItem.js.map +1 -0
- package/dist/components/ChartLegend/utils.d.ts +20 -0
- package/dist/components/ChartLegend/utils.js +33 -0
- package/dist/components/ChartLegend/utils.js.map +1 -0
- package/dist/components/ChartTooltip/ChartTooltip.d.ts +23 -0
- package/dist/components/ChartTooltip/ChartTooltip.js +83 -0
- package/dist/components/ChartTooltip/ChartTooltip.js.map +1 -0
- package/dist/components/ChartTooltip/index.d.ts +2 -0
- package/dist/components/ChartTooltip/index.js +2 -0
- package/dist/components/Checkbox/Checkbox.d.ts +58 -0
- package/dist/components/Checkbox/Checkbox.js +50 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/constants.d.ts +28 -0
- package/dist/components/Checkbox/constants.js +57 -0
- package/dist/components/Checkbox/constants.js.map +1 -0
- package/dist/components/Checkbox/getCheckedState.d.ts +6 -0
- package/dist/components/Checkbox/getCheckedState.js +14 -0
- package/dist/components/Checkbox/getCheckedState.js.map +1 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.js +3 -0
- package/dist/components/CircularProgress/CircularProgress.d.ts +54 -0
- package/dist/components/CircularProgress/CircularProgress.js +85 -0
- package/dist/components/CircularProgress/CircularProgress.js.map +1 -0
- package/dist/components/CircularProgress/index.d.ts +2 -0
- package/dist/components/CircularProgress/index.js +2 -0
- package/dist/components/Code/Code.utils.d.ts +24 -0
- package/dist/components/Code/Code.utils.js +160 -0
- package/dist/components/Code/Code.utils.js.map +1 -0
- package/dist/components/Code/CodeLite.d.ts +19 -0
- package/dist/components/Code/CodeLite.js +146 -0
- package/dist/components/Code/CodeLite.js.map +1 -0
- package/dist/components/Code/CodeLite.utils.d.ts +24 -0
- package/dist/components/Code/CodeLite.utils.js +273 -0
- package/dist/components/Code/CodeLite.utils.js.map +1 -0
- package/dist/components/Code/ImageReplacerExtension.d.ts +9 -0
- package/dist/components/Code/ImageReplacerExtension.js +227 -0
- package/dist/components/Code/ImageReplacerExtension.js.map +1 -0
- package/dist/components/Code/JsonHighlighterExtension.d.ts +4 -0
- package/dist/components/Code/JsonHighlighterExtension.js +172 -0
- package/dist/components/Code/JsonHighlighterExtension.js.map +1 -0
- package/dist/components/Code/constants.d.ts +6 -0
- package/dist/components/Code/constants.js +11 -0
- package/dist/components/Code/constants.js.map +1 -0
- package/dist/components/Code/index.d.ts +30 -0
- package/dist/components/Code/index.js +140 -0
- package/dist/components/Code/index.js.map +1 -0
- package/dist/components/Code/languages/json.d.ts +1 -0
- package/dist/components/Code/languages/json.js +7 -0
- package/dist/components/Code/languages/json.js.map +1 -0
- package/dist/components/Code/languages/languages.d.ts +7 -0
- package/dist/components/Code/languages/languages.js +12 -0
- package/dist/components/Code/languages/languages.js.map +1 -0
- package/dist/components/Code/languages/python.d.ts +1 -0
- package/dist/components/Code/languages/python.js +7 -0
- package/dist/components/Code/languages/python.js.map +1 -0
- package/dist/components/Code/languages/shell.d.ts +7 -0
- package/dist/components/Code/languages/shell.js +241 -0
- package/dist/components/Code/languages/shell.js.map +1 -0
- package/dist/components/Code/languages/typescript.d.ts +1 -0
- package/dist/components/Code/languages/typescript.js +7 -0
- package/dist/components/Code/languages/typescript.js.map +1 -0
- package/dist/components/Code/languages/yaml.d.ts +2 -0
- package/dist/components/Code/languages/yaml.js +44 -0
- package/dist/components/Code/languages/yaml.js.map +1 -0
- package/dist/components/Code/types.d.ts +8 -0
- package/dist/components/Code/types.js +0 -0
- package/dist/components/Code/utils.d.ts +4 -0
- package/dist/components/Code/utils.js +27 -0
- package/dist/components/Code/utils.js.map +1 -0
- package/dist/components/Command/Command.d.ts +78 -0
- package/dist/components/Command/Command.js +78 -0
- package/dist/components/Command/Command.js.map +1 -0
- package/dist/components/Command/CommandMenu.d.ts +65 -0
- package/dist/components/Command/CommandMenu.js +101 -0
- package/dist/components/Command/CommandMenu.js.map +1 -0
- package/dist/components/Command/index.d.ts +4 -0
- package/dist/components/Command/index.js +3 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts +9 -0
- package/dist/components/ContextMenu/ContextMenu.js +43 -0
- package/dist/components/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/ContextMenu/index.d.ts +1 -0
- package/dist/components/ContextMenu/index.js +2 -0
- package/dist/components/CopyButton/CopyButton.d.ts +24 -0
- package/dist/components/CopyButton/CopyButton.js +121 -0
- package/dist/components/CopyButton/CopyButton.js.map +1 -0
- package/dist/components/CopyButton/copyToClipboard.d.ts +1 -0
- package/dist/components/CopyButton/copyToClipboard.js +29 -0
- package/dist/components/CopyButton/copyToClipboard.js.map +1 -0
- package/dist/components/CopyButton/index.d.ts +4 -0
- package/dist/components/CopyButton/index.js +4 -0
- package/dist/components/CopyButton/useCopy.d.ts +10 -0
- package/dist/components/CopyButton/useCopy.js +46 -0
- package/dist/components/CopyButton/useCopy.js.map +1 -0
- package/dist/components/Dialog/index.d.ts +49 -0
- package/dist/components/Dialog/index.js +130 -0
- package/dist/components/Dialog/index.js.map +1 -0
- package/dist/components/Divider/Divider.d.ts +9 -0
- package/dist/components/Divider/Divider.js +27 -0
- package/dist/components/Divider/Divider.js.map +1 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Divider/index.js +2 -0
- package/dist/components/DonutChart/DonutChart.d.ts +101 -0
- package/dist/components/DonutChart/DonutChart.js +197 -0
- package/dist/components/DonutChart/DonutChart.js.map +1 -0
- package/dist/components/DonutChart/DonutChart.utils.d.ts +38 -0
- package/dist/components/DonutChart/DonutChart.utils.js +93 -0
- package/dist/components/DonutChart/DonutChart.utils.js.map +1 -0
- package/dist/components/DonutChart/constants.d.ts +7 -0
- package/dist/components/DonutChart/constants.js +12 -0
- package/dist/components/DonutChart/constants.js.map +1 -0
- package/dist/components/DonutChart/index.d.ts +4 -0
- package/dist/components/DonutChart/index.js +4 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +24 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +149 -0
- package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/DropdownMenu/index.d.ts +1 -0
- package/dist/components/DropdownMenu/index.js +2 -0
- package/dist/components/EmptyState/EmptyState.d.ts +26 -0
- package/dist/components/EmptyState/EmptyState.js +85 -0
- package/dist/components/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/EmptyState/index.d.ts +2 -0
- package/dist/components/EmptyState/index.js +2 -0
- package/dist/components/ErrorBoundary.d.ts +35 -0
- package/dist/components/ErrorBoundary.js +41 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/ErrorMessage/ErrorMessage.d.ts +17 -0
- package/dist/components/ErrorMessage/ErrorMessage.js +146 -0
- package/dist/components/ErrorMessage/ErrorMessage.js.map +1 -0
- package/dist/components/ErrorMessage/index.d.ts +2 -0
- package/dist/components/ErrorMessage/index.js +2 -0
- package/dist/components/ErrorState/ErrorState.d.ts +23 -0
- package/dist/components/ErrorState/ErrorState.js +2 -0
- package/dist/components/ErrorState/index.d.ts +2 -0
- package/dist/components/ErrorState/index.js +2 -0
- package/dist/components/GroupedTabs/GroupedTabs.d.ts +31 -0
- package/dist/components/GroupedTabs/GroupedTabs.js +92 -0
- package/dist/components/GroupedTabs/GroupedTabs.js.map +1 -0
- package/dist/components/GroupedTabs/index.d.ts +2 -0
- package/dist/components/GroupedTabs/index.js +2 -0
- package/dist/components/HoverCard.d.ts +4 -0
- package/dist/components/HoverCard.js +34 -0
- package/dist/components/HoverCard.js.map +1 -0
- package/dist/components/Icon/Icon.d.ts +25 -0
- package/dist/components/Icon/Icon.js +57 -0
- package/dist/components/Icon/Icon.js.map +1 -0
- package/dist/components/Icon/index.d.ts +2 -0
- package/dist/components/Icon/index.js +2 -0
- package/dist/components/IconButton/IconButton.d.ts +35 -0
- package/dist/components/IconButton/IconButton.js +73 -0
- package/dist/components/IconButton/IconButton.js.map +1 -0
- package/dist/components/IconButton/index.d.ts +2 -0
- package/dist/components/IconButton/index.js +2 -0
- package/dist/components/Input/Input.d.ts +72 -0
- package/dist/components/Input/Input.js +221 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/index.js +2 -0
- package/dist/components/Input/inputStyles.d.ts +28 -0
- package/dist/components/Input/inputStyles.js +45 -0
- package/dist/components/Input/inputStyles.js.map +1 -0
- package/dist/components/Kbd/Kbd.d.ts +15 -0
- package/dist/components/Kbd/Kbd.js +30 -0
- package/dist/components/Kbd/Kbd.js.map +1 -0
- package/dist/components/Kbd/index.d.ts +2 -0
- package/dist/components/Kbd/index.js +2 -0
- package/dist/components/LineChart/LineChart.d.ts +8 -0
- package/dist/components/LineChart/LineChart.js +194 -0
- package/dist/components/LineChart/LineChart.js.map +1 -0
- package/dist/components/LineChart/LineChart.types.d.ts +138 -0
- package/dist/components/LineChart/LineChart.types.js +0 -0
- package/dist/components/LineChart/LineChart.utils.d.ts +29 -0
- package/dist/components/LineChart/LineChart.utils.js +123 -0
- package/dist/components/LineChart/LineChart.utils.js.map +1 -0
- package/dist/components/LineChart/LineChartPlot.d.ts +43 -0
- package/dist/components/LineChart/LineChartPlot.js +306 -0
- package/dist/components/LineChart/LineChartPlot.js.map +1 -0
- package/dist/components/LineChart/constants.d.ts +3 -0
- package/dist/components/LineChart/constants.js +8 -0
- package/dist/components/LineChart/constants.js.map +1 -0
- package/dist/components/LineChart/index.d.ts +2 -0
- package/dist/components/LineChart/index.js +2 -0
- package/dist/components/LinearProgress/LinearProgress.d.ts +16 -0
- package/dist/components/LinearProgress/LinearProgress.js +42 -0
- package/dist/components/LinearProgress/LinearProgress.js.map +1 -0
- package/dist/components/LinearProgress/index.d.ts +2 -0
- package/dist/components/LinearProgress/index.js +2 -0
- package/dist/components/Link/Link.d.ts +30 -0
- package/dist/components/Link/Link.js +51 -0
- package/dist/components/Link/Link.js.map +1 -0
- package/dist/components/Link/index.d.ts +2 -0
- package/dist/components/Link/index.js +2 -0
- package/dist/components/Logo/index.d.ts +17 -0
- package/dist/components/Logo/index.js +705 -0
- package/dist/components/Logo/index.js.map +1 -0
- package/dist/components/MetricChart/MetricChart.d.ts +9 -0
- package/dist/components/MetricChart/MetricChart.js +42 -0
- package/dist/components/MetricChart/MetricChart.js.map +1 -0
- package/dist/components/MetricChart/formatters.d.ts +18 -0
- package/dist/components/MetricChart/formatters.js +34 -0
- package/dist/components/MetricChart/formatters.js.map +1 -0
- package/dist/components/MetricChart/index.d.ts +4 -0
- package/dist/components/MetricChart/index.js +3 -0
- package/dist/components/Pane/Pane.d.ts +29 -0
- package/dist/components/Pane/Pane.js +171 -0
- package/dist/components/Pane/Pane.js.map +1 -0
- package/dist/components/Pane/Pane.utils.d.ts +10 -0
- package/dist/components/Pane/Pane.utils.js +7 -0
- package/dist/components/Pane/Pane.utils.js.map +1 -0
- package/dist/components/Pane/index.d.ts +3 -0
- package/dist/components/Pane/index.js +3 -0
- package/dist/components/PlainTextEditor/hooks/useResizeTextEditor.d.ts +9 -0
- package/dist/components/PlainTextEditor/hooks/useResizeTextEditor.js +76 -0
- package/dist/components/PlainTextEditor/hooks/useResizeTextEditor.js.map +1 -0
- package/dist/components/PlainTextEditor/index.d.ts +18 -0
- package/dist/components/PlainTextEditor/index.js +71 -0
- package/dist/components/PlainTextEditor/index.js.map +1 -0
- package/dist/components/Popover/Popover.d.ts +13 -0
- package/dist/components/Popover/Popover.js +48 -0
- package/dist/components/Popover/Popover.js.map +1 -0
- package/dist/components/Popover/constants.d.ts +1 -0
- package/dist/components/Popover/constants.js +6 -0
- package/dist/components/Popover/constants.js.map +1 -0
- package/dist/components/Popover/index.d.ts +1 -0
- package/dist/components/Popover/index.js +2 -0
- package/dist/components/PortalSlot.d.ts +11 -0
- package/dist/components/PortalSlot.js +41 -0
- package/dist/components/PortalSlot.js.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +38 -0
- package/dist/components/ProgressBar/ProgressBar.js +82 -0
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/components/ProgressBar/index.d.ts +2 -0
- package/dist/components/ProgressBar/index.js +2 -0
- package/dist/components/RadioButton/RadioButton.d.ts +62 -0
- package/dist/components/RadioButton/RadioButton.js +38 -0
- package/dist/components/RadioButton/RadioButton.js.map +1 -0
- package/dist/components/RadioButton/constants.d.ts +30 -0
- package/dist/components/RadioButton/constants.js +55 -0
- package/dist/components/RadioButton/constants.js.map +1 -0
- package/dist/components/RadioButton/index.d.ts +2 -0
- package/dist/components/RadioButton/index.js +2 -0
- package/dist/components/RadioCard/RadioCard.d.ts +26 -0
- package/dist/components/RadioCard/RadioCard.js +43 -0
- package/dist/components/RadioCard/RadioCard.js.map +1 -0
- package/dist/components/RadioCard/index.d.ts +2 -0
- package/dist/components/RadioCard/index.js +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +5 -0
- package/dist/components/RadioGroup/RadioGroup.js +17 -0
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/RadioGroup/RadioGroupItem.d.ts +5 -0
- package/dist/components/RadioGroup/RadioGroupItem.js +22 -0
- package/dist/components/RadioGroup/RadioGroupItem.js.map +1 -0
- package/dist/components/RadioGroup/index.d.ts +4 -0
- package/dist/components/RadioGroup/index.js +3 -0
- package/dist/components/Select/Select.d.ts +84 -0
- package/dist/components/Select/Select.js +120 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/SelectPrimitive.d.ts +17 -0
- package/dist/components/Select/SelectPrimitive.js +126 -0
- package/dist/components/Select/SelectPrimitive.js.map +1 -0
- package/dist/components/Select/index.d.ts +4 -0
- package/dist/components/Select/index.js +3 -0
- package/dist/components/Skeleton/Skeleton.d.ts +13 -0
- package/dist/components/Skeleton/Skeleton.js +25 -0
- package/dist/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/Skeleton/index.d.ts +1 -0
- package/dist/components/Skeleton/index.js +2 -0
- package/dist/components/Slider/Slider.d.ts +33 -0
- package/dist/components/Slider/Slider.js +64 -0
- package/dist/components/Slider/Slider.js.map +1 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.js +2 -0
- package/dist/components/SparkLineChart/SparkLineChart.d.ts +14 -0
- package/dist/components/SparkLineChart/SparkLineChart.js +112 -0
- package/dist/components/SparkLineChart/SparkLineChart.js.map +1 -0
- package/dist/components/SparkLineChart/index.d.ts +2 -0
- package/dist/components/SparkLineChart/index.js +2 -0
- package/dist/components/Spinner/Spinner.d.ts +12 -0
- package/dist/components/Spinner/Spinner.js +33 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/Spinner/index.d.ts +1 -0
- package/dist/components/Spinner/index.js +2 -0
- package/dist/components/SplitViewPane/SplitViewPane.d.ts +41 -0
- package/dist/components/SplitViewPane/SplitViewPane.js +314 -0
- package/dist/components/SplitViewPane/SplitViewPane.js.map +1 -0
- package/dist/components/SplitViewPane/SplitViewPaneHeader.d.ts +22 -0
- package/dist/components/SplitViewPane/SplitViewPaneHeader.js +105 -0
- package/dist/components/SplitViewPane/SplitViewPaneHeader.js.map +1 -0
- package/dist/components/SplitViewPane/index.d.ts +2 -0
- package/dist/components/SplitViewPane/index.js +3 -0
- package/dist/components/SplitViewPane/openPaneRegistry.d.ts +2 -0
- package/dist/components/SplitViewPane/openPaneRegistry.js +49 -0
- package/dist/components/SplitViewPane/openPaneRegistry.js.map +1 -0
- package/dist/components/Switch/Switch.d.ts +35 -0
- package/dist/components/Switch/Switch.js +65 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.js +2 -0
- package/dist/components/Tabs/index.d.ts +27 -0
- package/dist/components/Tabs/index.js +45 -0
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/Text/Text.d.ts +13 -0
- package/dist/components/Text/Text.js +58 -0
- package/dist/components/Text/Text.js.map +1 -0
- package/dist/components/Text/index.d.ts +2 -0
- package/dist/components/Text/index.js +2 -0
- package/dist/components/TextVirtualizer.d.ts +8 -0
- package/dist/components/TextVirtualizer.js +53 -0
- package/dist/components/TextVirtualizer.js.map +1 -0
- package/dist/components/TextWithLinks.d.ts +6 -0
- package/dist/components/TextWithLinks.js +61 -0
- package/dist/components/TextWithLinks.js.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +47 -0
- package/dist/components/Textarea/Textarea.js +150 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/index.js +2 -0
- package/dist/components/ThinkingState/LoadingIndicator.d.ts +19 -0
- package/dist/components/ThinkingState/LoadingIndicator.js +2 -0
- package/dist/components/ThinkingState/NOTICE +25 -0
- package/dist/components/ThinkingState/ThinkingState.d.ts +21 -0
- package/dist/components/ThinkingState/ThinkingState.js +42 -0
- package/dist/components/ThinkingState/ThinkingState.js.map +1 -0
- package/dist/components/ThinkingState/ThinkingStateTimer.d.ts +9 -0
- package/dist/components/ThinkingState/ThinkingStateTimer.js +43 -0
- package/dist/components/ThinkingState/ThinkingStateTimer.js.map +1 -0
- package/dist/components/ThinkingState/index.d.ts +4 -0
- package/dist/components/ThinkingState/index.js +3 -0
- package/dist/components/Toast/ToastContext.d.ts +5 -0
- package/dist/components/Toast/ToastContext.js +9 -0
- package/dist/components/Toast/ToastContext.js.map +1 -0
- package/dist/components/Toast/index.d.ts +13 -0
- package/dist/components/Toast/index.js +166 -0
- package/dist/components/Toast/index.js.map +1 -0
- package/dist/components/Toast/useToast.d.ts +3 -0
- package/dist/components/Toast/useToast.js +11 -0
- package/dist/components/Toast/useToast.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +19 -0
- package/dist/components/Tooltip/Tooltip.js +57 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +3 -0
- package/dist/components/Tooltip/index.js +3 -0
- package/dist/components/TopList/TopList.d.ts +3 -0
- package/dist/components/TopList/TopList.js +186 -0
- package/dist/components/TopList/TopList.js.map +1 -0
- package/dist/components/TopList/TopList.types.d.ts +34 -0
- package/dist/components/TopList/TopList.types.js +0 -0
- package/dist/components/TopList/TopList.utils.d.ts +3 -0
- package/dist/components/TopList/TopList.utils.js +16 -0
- package/dist/components/TopList/TopList.utils.js.map +1 -0
- package/dist/components/TopList/index.d.ts +2 -0
- package/dist/components/TopList/index.js +2 -0
- package/dist/components/Typeahead/Typeahead.d.ts +5 -0
- package/dist/components/Typeahead/Typeahead.js +305 -0
- package/dist/components/Typeahead/Typeahead.js.map +1 -0
- package/dist/components/Typeahead/Typeahead.types.d.ts +99 -0
- package/dist/components/Typeahead/Typeahead.types.js +0 -0
- package/dist/components/Typeahead/Typeahead.utils.d.ts +25 -0
- package/dist/components/Typeahead/Typeahead.utils.js +73 -0
- package/dist/components/Typeahead/Typeahead.utils.js.map +1 -0
- package/dist/components/Typeahead/TypeaheadParts.d.ts +25 -0
- package/dist/components/Typeahead/TypeaheadParts.js +109 -0
- package/dist/components/Typeahead/TypeaheadParts.js.map +1 -0
- package/dist/components/Typeahead/TypeaheadView.d.ts +81 -0
- package/dist/components/Typeahead/TypeaheadView.js +228 -0
- package/dist/components/Typeahead/TypeaheadView.js.map +1 -0
- package/dist/components/Typeahead/index.d.ts +2 -0
- package/dist/components/Typeahead/index.js +2 -0
- package/dist/components/Typeahead/useTypeaheadDomSync.d.ts +15 -0
- package/dist/components/Typeahead/useTypeaheadDomSync.js +43 -0
- package/dist/components/Typeahead/useTypeaheadDomSync.js.map +1 -0
- package/dist/components/Typeahead/useTypeaheadUncontrolledInput.d.ts +11 -0
- package/dist/components/Typeahead/useTypeaheadUncontrolledInput.js +32 -0
- package/dist/components/Typeahead/useTypeaheadUncontrolledInput.js.map +1 -0
- package/dist/components/UnsavedChangesDialog.d.ts +14 -0
- package/dist/components/UnsavedChangesDialog.js +67 -0
- package/dist/components/UnsavedChangesDialog.js.map +1 -0
- package/dist/components/index.d.ts +58 -0
- package/dist/components/index.js +35 -0
- package/dist/components.css +102 -0
- package/dist/contexts/ErrorReporterContext.d.ts +6 -0
- package/dist/contexts/ErrorReporterContext.js +7 -0
- package/dist/contexts/ErrorReporterContext.js.map +1 -0
- package/dist/hooks/AppThemeProvider.d.ts +8 -0
- package/dist/hooks/AppThemeProvider.js +52 -0
- package/dist/hooks/AppThemeProvider.js.map +1 -0
- package/dist/hooks/useColorScheme.d.ts +20 -0
- package/dist/hooks/useColorScheme.js +50 -0
- package/dist/hooks/useColorScheme.js.map +1 -0
- package/dist/icons/LongTailPhosphorIcons.d.ts +51 -0
- package/dist/icons/LongTailPhosphorIcons.js +102 -0
- package/dist/icons/LongTailPhosphorIcons.js.map +1 -0
- package/dist/icons/PaddedPhosphorIcons.d.ts +17 -0
- package/dist/icons/PaddedPhosphorIcons.js +55 -0
- package/dist/icons/PaddedPhosphorIcons.js.map +1 -0
- package/dist/icons/WeightedPhosphorIcons.d.ts +45 -0
- package/dist/icons/WeightedPhosphorIcons.js +96 -0
- package/dist/icons/WeightedPhosphorIcons.js.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/index.js +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +36 -0
- package/dist/styles.css +10 -0
- package/dist/utilities.css +2 -0
- package/dist/utils/VirtuosoCustomScrollParentContext/index.d.ts +7 -0
- package/dist/utils/VirtuosoCustomScrollParentContext/index.js +15 -0
- package/dist/utils/VirtuosoCustomScrollParentContext/index.js.map +1 -0
- package/dist/utils/VirtuosoCustomScrollParentContext/useScrollParent.d.ts +4 -0
- package/dist/utils/VirtuosoCustomScrollParentContext/useScrollParent.js +10 -0
- package/dist/utils/VirtuosoCustomScrollParentContext/useScrollParent.js.map +1 -0
- package/dist/utils/ZIndexContext.d.ts +5 -0
- package/dist/utils/ZIndexContext.js +13 -0
- package/dist/utils/ZIndexContext.js.map +1 -0
- package/dist/utils/animation.d.ts +37 -0
- package/dist/utils/animation.js +42 -0
- package/dist/utils/animation.js.map +1 -0
- package/dist/utils/chartAxisLayout.d.ts +6 -0
- package/dist/utils/chartAxisLayout.js +8 -0
- package/dist/utils/chartAxisLayout.js.map +1 -0
- package/dist/utils/chartColors.d.ts +38 -0
- package/dist/utils/chartColors.js +78 -0
- package/dist/utils/chartColors.js.map +1 -0
- package/dist/utils/chartConstants.d.ts +10 -0
- package/dist/utils/chartConstants.js +15 -0
- package/dist/utils/chartConstants.js.map +1 -0
- package/dist/utils/chartValues.d.ts +2 -0
- package/dist/utils/chartValues.js +36 -0
- package/dist/utils/chartValues.js.map +1 -0
- package/dist/utils/clamp.d.ts +2 -0
- package/dist/utils/clamp.js +7 -0
- package/dist/utils/clamp.js.map +1 -0
- package/dist/utils/cn.d.ts +2 -0
- package/dist/utils/cn.js +191 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/componentSizes.d.ts +104 -0
- package/dist/utils/componentSizes.js +104 -0
- package/dist/utils/componentSizes.js.map +1 -0
- package/dist/utils/controlIconSizes.d.ts +10 -0
- package/dist/utils/controlIconSizes.js +32 -0
- package/dist/utils/controlIconSizes.js.map +1 -0
- package/dist/utils/csp-nonce.d.ts +11 -0
- package/dist/utils/csp-nonce.js +17 -0
- package/dist/utils/csp-nonce.js.map +1 -0
- package/dist/utils/get-closest-scroll-parent.d.ts +1 -0
- package/dist/utils/get-closest-scroll-parent.js +16 -0
- package/dist/utils/get-closest-scroll-parent.js.map +1 -0
- package/dist/utils/get-color-by-string.d.ts +1 -0
- package/dist/utils/get-color-by-string.js +10 -0
- package/dist/utils/get-color-by-string.js.map +1 -0
- package/dist/utils/getYAxisLeftMargin.d.ts +10 -0
- package/dist/utils/getYAxisLeftMargin.js +20 -0
- package/dist/utils/getYAxisLeftMargin.js.map +1 -0
- package/dist/utils/icon-types.d.ts +8 -0
- package/dist/utils/icon-types.js +0 -0
- package/dist/utils/lazy-codemirror-loader.d.ts +70 -0
- package/dist/utils/lazy-codemirror-loader.js +79 -0
- package/dist/utils/lazy-codemirror-loader.js.map +1 -0
- package/dist/utils/merge-refs.d.ts +2 -0
- package/dist/utils/merge-refs.js +13 -0
- package/dist/utils/merge-refs.js.map +1 -0
- package/dist/utils/parseTextLinks.d.ts +7 -0
- package/dist/utils/parseTextLinks.js +46 -0
- package/dist/utils/parseTextLinks.js.map +1 -0
- package/dist/utils/prettify-error-payload.d.ts +7 -0
- package/dist/utils/prettify-error-payload.js +188 -0
- package/dist/utils/prettify-error-payload.js.map +1 -0
- package/dist/utils/spacing.d.ts +30 -0
- package/dist/utils/spacing.js +34 -0
- package/dist/utils/spacing.js.map +1 -0
- package/dist/utils/useCodeMirror.d.ts +7 -0
- package/dist/utils/useCodeMirror.js +28 -0
- package/dist/utils/useCodeMirror.js.map +1 -0
- package/dist/utils/useZIndex.d.ts +52 -0
- package/dist/utils/useZIndex.js +62 -0
- package/dist/utils/useZIndex.js.map +1 -0
- package/dist/utils/zIndices.d.ts +42 -0
- package/dist/utils/zIndices.js +46 -0
- package/dist/utils/zIndices.js.map +1 -0
- package/docs/DESIGN.md +134 -0
- package/docs/STYLES.md +568 -0
- package/package.json +619 -0
- package/tailwind.preset.cjs +738 -0
- package/tailwind.preset.d.cts +5 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
2
|
+
import { type SelectionControlSize } from '../../utils/componentSizes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base props shared by all Checkbox variants.
|
|
5
|
+
* Extends Radix CheckboxProps to support all native checkbox functionality.
|
|
6
|
+
*/
|
|
7
|
+
interface CheckboxBaseProps extends Omit<CheckboxPrimitive.CheckboxProps, 'asChild'> {
|
|
8
|
+
/** Visual indicator size. The pointer target remains at least 24px. */
|
|
9
|
+
size?: SelectionControlSize;
|
|
10
|
+
/** Additional CSS classes for the container wrapper */
|
|
11
|
+
containerClassName?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Props for Checkbox with a visible label.
|
|
15
|
+
*/
|
|
16
|
+
interface CheckboxWithLabelProps extends CheckboxBaseProps {
|
|
17
|
+
/** Visible label text or React node displayed next to the checkbox */
|
|
18
|
+
label: React.ReactNode;
|
|
19
|
+
/** Additional CSS classes for the label */
|
|
20
|
+
labelClassName?: string;
|
|
21
|
+
'aria-label'?: never;
|
|
22
|
+
'aria-labelledby'?: never;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Props for Checkbox with aria-label (no visible label).
|
|
26
|
+
*/
|
|
27
|
+
interface CheckboxWithAriaLabelProps extends CheckboxBaseProps {
|
|
28
|
+
/** Accessible label for screen readers when no visible label is present */
|
|
29
|
+
'aria-label': string;
|
|
30
|
+
label?: never;
|
|
31
|
+
labelClassName?: never;
|
|
32
|
+
'aria-labelledby'?: never;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Props for Checkbox with aria-labelledby (labeled by external element).
|
|
36
|
+
*/
|
|
37
|
+
interface CheckboxWithAriaLabelledByProps extends CheckboxBaseProps {
|
|
38
|
+
/** ID of an element that labels this checkbox */
|
|
39
|
+
'aria-labelledby': string;
|
|
40
|
+
label?: never;
|
|
41
|
+
labelClassName?: never;
|
|
42
|
+
'aria-label'?: never;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Checkbox component props.
|
|
46
|
+
*
|
|
47
|
+
* For accessibility compliance (WCAG 2.1), checkboxes must have an accessible name.
|
|
48
|
+
* This is enforced at the type level by requiring one of:
|
|
49
|
+
* - `label`: A visible label displayed next to the checkbox
|
|
50
|
+
* - `aria-label`: An accessible label for screen readers (when no visible label)
|
|
51
|
+
* - `aria-labelledby`: Reference to an external labeling element
|
|
52
|
+
*
|
|
53
|
+
* @see https://www.w3.org/WAI/tutorials/forms/labels/
|
|
54
|
+
* @see https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/
|
|
55
|
+
*/
|
|
56
|
+
export type CheckboxProps = CheckboxWithLabelProps | CheckboxWithAriaLabelProps | CheckboxWithAriaLabelledByProps;
|
|
57
|
+
export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { SELECTION_CONTROL_HIT_AREA_STYLES } from "../../utils/componentSizes.js";
|
|
3
|
+
import { Text } from "../Text/Text.js";
|
|
4
|
+
import { CheckIcon, MinusIcon } from "../../icons/PaddedPhosphorIcons.js";
|
|
5
|
+
import { checkboxBaseStyles, checkboxFocusStyles, checkboxIconSizes, checkboxIndicatorStyles, checkboxRootStateStyles, checkboxSizeStyles } from "./constants.js";
|
|
6
|
+
import { forwardRef, useId } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
9
|
+
//#region packages/components/src/components/Checkbox/Checkbox.tsx
|
|
10
|
+
var Checkbox = forwardRef(({ checked, label, className, containerClassName, labelClassName, disabled, size = "sm", id, ...rest }, ref) => {
|
|
11
|
+
const generatedId = useId();
|
|
12
|
+
const checkboxId = id ?? generatedId;
|
|
13
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14
|
+
className: cn("flex items-center gap-space-2", containerClassName),
|
|
15
|
+
children: [/* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
|
|
16
|
+
ref,
|
|
17
|
+
className: cn(checkboxBaseStyles, checkboxFocusStyles, SELECTION_CONTROL_HIT_AREA_STYLES, checkboxSizeStyles[size], checkboxRootStateStyles, className),
|
|
18
|
+
id: checkboxId,
|
|
19
|
+
checked,
|
|
20
|
+
disabled,
|
|
21
|
+
...rest,
|
|
22
|
+
children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
|
|
23
|
+
className: cn("flex items-center justify-center", disabled ? checkboxIndicatorStyles.disabled : checkboxIndicatorStyles.enabled),
|
|
24
|
+
children: checked === "indeterminate" ? /* @__PURE__ */ jsx(MinusIcon, {
|
|
25
|
+
"aria-hidden": true,
|
|
26
|
+
size: checkboxIconSizes[size],
|
|
27
|
+
weight: "bold"
|
|
28
|
+
}) : /* @__PURE__ */ jsx(CheckIcon, {
|
|
29
|
+
"aria-hidden": true,
|
|
30
|
+
size: checkboxIconSizes[size],
|
|
31
|
+
weight: "bold"
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
}), label && /* @__PURE__ */ jsx("label", {
|
|
35
|
+
htmlFor: checkboxId,
|
|
36
|
+
className: cn("flex cursor-pointer items-center", disabled && "cursor-not-allowed"),
|
|
37
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
38
|
+
variant: "sm",
|
|
39
|
+
className: labelClassName,
|
|
40
|
+
color: disabled ? "tertiary" : void 0,
|
|
41
|
+
children: label
|
|
42
|
+
})
|
|
43
|
+
})]
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
Checkbox.displayName = "Checkbox";
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Checkbox };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":[],"sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react';\n\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\n\nimport { CheckIcon, MinusIcon } from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport {\n SELECTION_CONTROL_HIT_AREA_STYLES,\n type SelectionControlSize,\n} from '../../utils/componentSizes';\nimport { Text } from '../Text';\nimport {\n checkboxBaseStyles,\n checkboxFocusStyles,\n checkboxIconSizes,\n checkboxIndicatorStyles,\n checkboxRootStateStyles,\n checkboxSizeStyles,\n} from './constants';\n\n/**\n * Base props shared by all Checkbox variants.\n * Extends Radix CheckboxProps to support all native checkbox functionality.\n */\ninterface CheckboxBaseProps extends Omit<\n CheckboxPrimitive.CheckboxProps,\n 'asChild'\n> {\n /** Visual indicator size. The pointer target remains at least 24px. */\n size?: SelectionControlSize;\n /** Additional CSS classes for the container wrapper */\n containerClassName?: string;\n}\n\n/**\n * Props for Checkbox with a visible label.\n */\ninterface CheckboxWithLabelProps extends CheckboxBaseProps {\n /** Visible label text or React node displayed next to the checkbox */\n label: React.ReactNode;\n /** Additional CSS classes for the label */\n labelClassName?: string;\n 'aria-label'?: never;\n 'aria-labelledby'?: never;\n}\n\n/**\n * Props for Checkbox with aria-label (no visible label).\n */\ninterface CheckboxWithAriaLabelProps extends CheckboxBaseProps {\n /** Accessible label for screen readers when no visible label is present */\n 'aria-label': string;\n label?: never;\n labelClassName?: never;\n 'aria-labelledby'?: never;\n}\n\n/**\n * Props for Checkbox with aria-labelledby (labeled by external element).\n */\ninterface CheckboxWithAriaLabelledByProps extends CheckboxBaseProps {\n /** ID of an element that labels this checkbox */\n 'aria-labelledby': string;\n label?: never;\n labelClassName?: never;\n 'aria-label'?: never;\n}\n\n/**\n * Checkbox component props.\n *\n * For accessibility compliance (WCAG 2.1), checkboxes must have an accessible name.\n * This is enforced at the type level by requiring one of:\n * - `label`: A visible label displayed next to the checkbox\n * - `aria-label`: An accessible label for screen readers (when no visible label)\n * - `aria-labelledby`: Reference to an external labeling element\n *\n * @see https://www.w3.org/WAI/tutorials/forms/labels/\n * @see https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/\n */\nexport type CheckboxProps =\n | CheckboxWithLabelProps\n | CheckboxWithAriaLabelProps\n | CheckboxWithAriaLabelledByProps;\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n checked,\n label,\n className,\n containerClassName,\n labelClassName,\n disabled,\n size = 'sm',\n id,\n ...rest\n },\n ref\n ) => {\n const generatedId = useId();\n const checkboxId = id ?? generatedId;\n\n return (\n <div className={cn('flex items-center gap-space-2', containerClassName)}>\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n checkboxBaseStyles,\n checkboxFocusStyles,\n SELECTION_CONTROL_HIT_AREA_STYLES,\n checkboxSizeStyles[size],\n checkboxRootStateStyles,\n className\n )}\n id={checkboxId}\n checked={checked}\n disabled={disabled}\n {...rest}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\n 'flex items-center justify-center',\n disabled\n ? checkboxIndicatorStyles.disabled\n : checkboxIndicatorStyles.enabled\n )}\n >\n {checked === 'indeterminate' ? (\n <MinusIcon\n aria-hidden\n size={checkboxIconSizes[size]}\n weight=\"bold\"\n />\n ) : (\n <CheckIcon\n aria-hidden\n size={checkboxIconSizes[size]}\n weight=\"bold\"\n />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <label\n htmlFor={checkboxId}\n // `flex` collapses the label's inherited line box to the text it\n // wraps, so the row's `items-center` aligns the label against the\n // box instead of against a taller, invisible line box.\n className={cn(\n 'flex cursor-pointer items-center',\n disabled && 'cursor-not-allowed'\n )}\n >\n <Text\n variant=\"sm\"\n className={labelClassName}\n color={disabled ? 'tertiary' : undefined}\n >\n {label}\n </Text>\n </label>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n"],"mappings":";;;;;;;;;AAqFA,IAAa,WAAW,YAEpB,EACE,SACA,OACA,WACA,oBACA,gBACA,UACA,OAAO,MACP,IACA,GAAG,QAEL,QACG;CACH,MAAM,cAAc,MAAM;CAC1B,MAAM,aAAa,MAAM;CAEzB,OACE,qBAAC,OAAD;EAAK,WAAW,GAAG,iCAAiC,kBAAkB;EAAtE,UAAA,CACE,oBAAC,kBAAkB,MAAnB;GACO;GACL,WAAW,GACT,oBACA,qBACA,mCACA,mBAAmB,OACnB,yBACA,SACF;GACA,IAAI;GACK;GACC;GACV,GAAI;GAEJ,UAAA,oBAAC,kBAAkB,WAAnB;IACE,WAAW,GACT,oCACA,WACI,wBAAwB,WACxB,wBAAwB,OAC9B;IAEC,UAAA,YAAY,kBACX,oBAAC,WAAD;KACE,eAAA;KACA,MAAM,kBAAkB;KACxB,QAAO;IACR,CAAA,IAED,oBAAC,WAAD;KACE,eAAA;KACA,MAAM,kBAAkB;KACxB,QAAO;IACR,CAAA;GAEwB,CAAA;EACP,CAAA,GACvB,SACC,oBAAC,SAAD;GACE,SAAS;GAIT,WAAW,GACT,oCACA,YAAY,oBACd;GAEA,UAAA,oBAAC,MAAD;IACE,SAAQ;IACR,WAAW;IACX,OAAO,WAAW,aAAa,KAAA;IAE9B,UAAA;GACG,CAAA;EACD,CAAA,CAEN;;AAET,CACF;AAEA,SAAS,cAAc"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkbox style constants following the Button pattern.
|
|
3
|
+
* Styles are organized by category for maintainability.
|
|
4
|
+
*/
|
|
5
|
+
/** Base styles applied to all checkboxes */
|
|
6
|
+
export declare const checkboxBaseStyles = "flex shrink-0 items-center justify-center rounded-[3px] border bg-elevated transition-colors";
|
|
7
|
+
/** Focus ring styles: brand border + shadow haze */
|
|
8
|
+
export declare const checkboxFocusStyles = "focus-visible:border-brand focus-visible:outline-none focus-visible:shadow-[0_0_0_4px_var(--bg-brand-subtle)]";
|
|
9
|
+
/** Size variant styles */
|
|
10
|
+
export declare const checkboxSizeStyles: {
|
|
11
|
+
readonly sm: "size-4";
|
|
12
|
+
readonly md: "size-5";
|
|
13
|
+
};
|
|
14
|
+
/** Checkmark and indeterminate glyph canvases within each outer box. */
|
|
15
|
+
export declare const checkboxIconSizes: {
|
|
16
|
+
readonly sm: 12;
|
|
17
|
+
readonly md: 16;
|
|
18
|
+
};
|
|
19
|
+
/** Indicator styles for enabled/disabled states */
|
|
20
|
+
export declare const checkboxIndicatorStyles: {
|
|
21
|
+
readonly enabled: "text-control-active-foreground";
|
|
22
|
+
readonly disabled: "text-icon-disabled";
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Combined checkbox root styles - convenience export for component use.
|
|
26
|
+
* All state styles combined as an array to be spread in cn().
|
|
27
|
+
*/
|
|
28
|
+
export declare const checkboxRootStateStyles: readonly ["border-default", "data-[state=unchecked]:hover:bg-elevated-hover", "data-[state=checked]:border-transparent data-[state=checked]:bg-brand-300 hover:data-[state=checked]:bg-brand-400", "data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand-300 hover:data-[state=indeterminate]:bg-brand-400", "data-[disabled]:cursor-not-allowed data-[disabled]:border-ls-neutral-300 data-[disabled]:bg-disabled", "data-[disabled]:data-[state=unchecked]:hover:border-ls-neutral-300 data-[disabled]:data-[state=unchecked]:hover:shadow-none data-[disabled]:hover:bg-disabled", "data-[disabled]:data-[state=checked]:border-ls-neutral-300 data-[disabled]:data-[state=checked]:bg-disabled data-[disabled]:data-[state=checked]:hover:bg-disabled", "data-[disabled]:data-[state=indeterminate]:border-ls-neutral-300 data-[disabled]:data-[state=indeterminate]:bg-disabled data-[disabled]:data-[state=indeterminate]:hover:bg-disabled"];
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { SELECTION_CONTROL_SIZES } from "../../utils/componentSizes.js";
|
|
2
|
+
//#region packages/components/src/components/Checkbox/constants.ts
|
|
3
|
+
/**
|
|
4
|
+
* Checkbox style constants following the Button pattern.
|
|
5
|
+
* Styles are organized by category for maintainability.
|
|
6
|
+
*/
|
|
7
|
+
/** Base styles applied to all checkboxes */
|
|
8
|
+
var checkboxBaseStyles = "flex shrink-0 items-center justify-center rounded-[3px] border bg-elevated transition-colors";
|
|
9
|
+
/** Focus ring styles: brand border + shadow haze */
|
|
10
|
+
var checkboxFocusStyles = "focus-visible:border-brand focus-visible:outline-none focus-visible:shadow-[0_0_0_4px_var(--bg-brand-subtle)]";
|
|
11
|
+
/** Size variant styles */
|
|
12
|
+
var checkboxSizeStyles = {
|
|
13
|
+
sm: SELECTION_CONTROL_SIZES.sm.className,
|
|
14
|
+
md: SELECTION_CONTROL_SIZES.md.className
|
|
15
|
+
};
|
|
16
|
+
/** Checkmark and indeterminate glyph canvases within each outer box. */
|
|
17
|
+
var checkboxIconSizes = {
|
|
18
|
+
sm: 12,
|
|
19
|
+
md: 16
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* State styles using Radix data attributes.
|
|
23
|
+
* These are combined and applied via cn() in the component.
|
|
24
|
+
*/
|
|
25
|
+
var checkboxStateStyles = {
|
|
26
|
+
default: "border-default",
|
|
27
|
+
uncheckedHover: "data-[state=unchecked]:hover:bg-elevated-hover",
|
|
28
|
+
checked: "data-[state=checked]:border-transparent data-[state=checked]:bg-brand-300 hover:data-[state=checked]:bg-brand-400",
|
|
29
|
+
indeterminate: "data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand-300 hover:data-[state=indeterminate]:bg-brand-400",
|
|
30
|
+
disabledBase: "data-[disabled]:cursor-not-allowed data-[disabled]:border-ls-neutral-300 data-[disabled]:bg-disabled",
|
|
31
|
+
disabledUnchecked: "data-[disabled]:data-[state=unchecked]:hover:border-ls-neutral-300 data-[disabled]:data-[state=unchecked]:hover:shadow-none data-[disabled]:hover:bg-disabled",
|
|
32
|
+
disabledChecked: "data-[disabled]:data-[state=checked]:border-ls-neutral-300 data-[disabled]:data-[state=checked]:bg-disabled data-[disabled]:data-[state=checked]:hover:bg-disabled",
|
|
33
|
+
disabledIndeterminate: "data-[disabled]:data-[state=indeterminate]:border-ls-neutral-300 data-[disabled]:data-[state=indeterminate]:bg-disabled data-[disabled]:data-[state=indeterminate]:hover:bg-disabled"
|
|
34
|
+
};
|
|
35
|
+
/** Indicator styles for enabled/disabled states */
|
|
36
|
+
var checkboxIndicatorStyles = {
|
|
37
|
+
enabled: "text-control-active-foreground",
|
|
38
|
+
disabled: "text-icon-disabled"
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Combined checkbox root styles - convenience export for component use.
|
|
42
|
+
* All state styles combined as an array to be spread in cn().
|
|
43
|
+
*/
|
|
44
|
+
var checkboxRootStateStyles = [
|
|
45
|
+
checkboxStateStyles.default,
|
|
46
|
+
checkboxStateStyles.uncheckedHover,
|
|
47
|
+
checkboxStateStyles.checked,
|
|
48
|
+
checkboxStateStyles.indeterminate,
|
|
49
|
+
checkboxStateStyles.disabledBase,
|
|
50
|
+
checkboxStateStyles.disabledUnchecked,
|
|
51
|
+
checkboxStateStyles.disabledChecked,
|
|
52
|
+
checkboxStateStyles.disabledIndeterminate
|
|
53
|
+
];
|
|
54
|
+
//#endregion
|
|
55
|
+
export { checkboxBaseStyles, checkboxFocusStyles, checkboxIconSizes, checkboxIndicatorStyles, checkboxRootStateStyles, checkboxSizeStyles };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../../../src/components/Checkbox/constants.ts"],"sourcesContent":["import {\n SELECTION_CONTROL_SIZES,\n type SelectionControlSize,\n} from '../../utils/componentSizes';\n\n/**\n * Checkbox style constants following the Button pattern.\n * Styles are organized by category for maintainability.\n */\n\n/** Base styles applied to all checkboxes */\nexport const checkboxBaseStyles =\n 'flex shrink-0 items-center justify-center rounded-[3px] border bg-elevated transition-colors';\n\n/** Focus ring styles: brand border + shadow haze */\nexport const checkboxFocusStyles =\n 'focus-visible:border-brand focus-visible:outline-none focus-visible:shadow-[0_0_0_4px_var(--bg-brand-subtle)]';\n\n/** Size variant styles */\nexport const checkboxSizeStyles = {\n sm: SELECTION_CONTROL_SIZES.sm.className,\n md: SELECTION_CONTROL_SIZES.md.className,\n} as const satisfies Record<SelectionControlSize, string>;\n\n/** Checkmark and indeterminate glyph canvases within each outer box. */\nexport const checkboxIconSizes = {\n sm: 12,\n md: 16,\n} as const satisfies Record<SelectionControlSize, number>;\n\n/**\n * State styles using Radix data attributes.\n * These are combined and applied via cn() in the component.\n */\nconst checkboxStateStyles = {\n // Default border (unchecked state)\n default: 'border-default',\n\n // Unchecked hover - slight background change\n uncheckedHover: 'data-[state=unchecked]:hover:bg-elevated-hover',\n\n // Checked state - filled with brand color\n checked:\n 'data-[state=checked]:border-transparent data-[state=checked]:bg-brand-300 hover:data-[state=checked]:bg-brand-400',\n\n // Indeterminate state - same as checked\n indeterminate:\n 'data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand-300 hover:data-[state=indeterminate]:bg-brand-400',\n\n // Disabled base - applies to all states when disabled\n disabledBase:\n 'data-[disabled]:cursor-not-allowed data-[disabled]:border-ls-neutral-300 data-[disabled]:bg-disabled',\n\n // Disabled unchecked - override hover effects\n disabledUnchecked:\n 'data-[disabled]:data-[state=unchecked]:hover:border-ls-neutral-300 data-[disabled]:data-[state=unchecked]:hover:shadow-none data-[disabled]:hover:bg-disabled',\n\n // Disabled checked - override hover effects\n disabledChecked:\n 'data-[disabled]:data-[state=checked]:border-ls-neutral-300 data-[disabled]:data-[state=checked]:bg-disabled data-[disabled]:data-[state=checked]:hover:bg-disabled',\n\n // Disabled indeterminate - override hover effects\n disabledIndeterminate:\n 'data-[disabled]:data-[state=indeterminate]:border-ls-neutral-300 data-[disabled]:data-[state=indeterminate]:bg-disabled data-[disabled]:data-[state=indeterminate]:hover:bg-disabled',\n} as const;\n\n/** Indicator styles for enabled/disabled states */\nexport const checkboxIndicatorStyles = {\n enabled: 'text-control-active-foreground',\n disabled: 'text-icon-disabled',\n} as const;\n\n/**\n * Combined checkbox root styles - convenience export for component use.\n * All state styles combined as an array to be spread in cn().\n */\nexport const checkboxRootStateStyles = [\n checkboxStateStyles.default,\n checkboxStateStyles.uncheckedHover,\n checkboxStateStyles.checked,\n checkboxStateStyles.indeterminate,\n checkboxStateStyles.disabledBase,\n checkboxStateStyles.disabledUnchecked,\n checkboxStateStyles.disabledChecked,\n checkboxStateStyles.disabledIndeterminate,\n] as const;\n"],"mappings":";;;;;;;AAWA,IAAa,qBACX;;AAGF,IAAa,sBACX;;AAGF,IAAa,qBAAqB;CAChC,IAAI,wBAAwB,GAAG;CAC/B,IAAI,wBAAwB,GAAG;AACjC;;AAGA,IAAa,oBAAoB;CAC/B,IAAI;CACJ,IAAI;AACN;;;;;AAMA,IAAM,sBAAsB;CAE1B,SAAS;CAGT,gBAAgB;CAGhB,SACE;CAGF,eACE;CAGF,cACE;CAGF,mBACE;CAGF,iBACE;CAGF,uBACE;AACJ;;AAGA,IAAa,0BAA0B;CACrC,SAAS;CACT,UAAU;AACZ;;;;;AAMA,IAAa,0BAA0B;CACrC,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;CACpB,oBAAoB;AACtB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CheckedState } from '@radix-ui/react-checkbox';
|
|
2
|
+
/**
|
|
3
|
+
* Derives a Radix CheckedState from "all selected" and "some selected" booleans.
|
|
4
|
+
* Useful for "select all" checkboxes that need to show an indeterminate state.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getCheckedState(allSelected: boolean, someSelected: boolean): CheckedState;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region packages/components/src/components/Checkbox/getCheckedState.ts
|
|
2
|
+
/**
|
|
3
|
+
* Derives a Radix CheckedState from "all selected" and "some selected" booleans.
|
|
4
|
+
* Useful for "select all" checkboxes that need to show an indeterminate state.
|
|
5
|
+
*/
|
|
6
|
+
function getCheckedState(allSelected, someSelected) {
|
|
7
|
+
if (allSelected) return true;
|
|
8
|
+
if (someSelected) return "indeterminate";
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { getCheckedState };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=getCheckedState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCheckedState.js","names":[],"sources":["../../../src/components/Checkbox/getCheckedState.ts"],"sourcesContent":["import type { CheckedState } from '@radix-ui/react-checkbox';\n\n/**\n * Derives a Radix CheckedState from \"all selected\" and \"some selected\" booleans.\n * Useful for \"select all\" checkboxes that need to show an indeterminate state.\n */\nexport function getCheckedState(\n allSelected: boolean,\n someSelected: boolean\n): CheckedState {\n if (allSelected) return true;\n if (someSelected) return 'indeterminate';\n return false;\n}\n"],"mappings":";;;;;AAMA,SAAgB,gBACd,aACA,cACc;CACd,IAAI,aAAa,OAAO;CACxB,IAAI,cAAc,OAAO;CACzB,OAAO;AACT"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type ProgressSegmentVariant = 'brand' | 'success' | 'error' | 'warning';
|
|
2
|
+
export interface ProgressSegment {
|
|
3
|
+
/** Semantic color applied to the segment. */
|
|
4
|
+
variant: ProgressSegmentVariant;
|
|
5
|
+
percentage: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* CircularProgress renders a circular progress ring.
|
|
9
|
+
*
|
|
10
|
+
* Two modes:
|
|
11
|
+
* - **Determinate value** — pass `value` (0–1) for a single-color ring (e.g. a
|
|
12
|
+
* sampling rate). Renders with `role="progressbar"` for accessibility.
|
|
13
|
+
* - **Segments** — pass `segments` for a multi-color ring, each with its own
|
|
14
|
+
* color and fraction of the circle.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* // Determinate value (single ring)
|
|
19
|
+
* <CircularProgress value={0.73} size={16} strokeWidth={2} aria-label="Sampling rate" />
|
|
20
|
+
*
|
|
21
|
+
* // Multi-segment
|
|
22
|
+
* <CircularProgress
|
|
23
|
+
* segments={[
|
|
24
|
+
* { variant: 'success', percentage: 0.3 },
|
|
25
|
+
* { variant: 'error', percentage: 0.1 },
|
|
26
|
+
* ]}
|
|
27
|
+
* size={120}
|
|
28
|
+
* strokeWidth={8}
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
interface CircularProgressBaseProps {
|
|
33
|
+
size?: number;
|
|
34
|
+
strokeWidth?: number;
|
|
35
|
+
className?: string;
|
|
36
|
+
testId?: string;
|
|
37
|
+
}
|
|
38
|
+
interface CircularProgressValueProps extends CircularProgressBaseProps {
|
|
39
|
+
/** Determinate progress, 0–1. */
|
|
40
|
+
value: number;
|
|
41
|
+
segments?: never;
|
|
42
|
+
/** Accessible name describing the determinate value. */
|
|
43
|
+
'aria-label': string;
|
|
44
|
+
}
|
|
45
|
+
interface CircularProgressSegmentsProps extends CircularProgressBaseProps {
|
|
46
|
+
/** Multi-segment progress. */
|
|
47
|
+
segments: ProgressSegment[];
|
|
48
|
+
value?: never;
|
|
49
|
+
/** Accessible summary. Omit only when the ring is decorative. */
|
|
50
|
+
'aria-label'?: string;
|
|
51
|
+
}
|
|
52
|
+
export type CircularProgressProps = CircularProgressValueProps | CircularProgressSegmentsProps;
|
|
53
|
+
export declare function CircularProgress({ value, segments, size, strokeWidth, className, testId, 'aria-label': ariaLabel, }: CircularProgressProps): import("react").JSX.Element;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region packages/components/src/components/CircularProgress/CircularProgress.tsx
|
|
4
|
+
var segmentVariantClasses = {
|
|
5
|
+
brand: "text-icon-brand",
|
|
6
|
+
success: "text-success-secondary",
|
|
7
|
+
error: "text-error-secondary",
|
|
8
|
+
warning: "text-warning-secondary"
|
|
9
|
+
};
|
|
10
|
+
function normalizePercentage(percentage, max) {
|
|
11
|
+
if (!Number.isFinite(percentage)) return 0;
|
|
12
|
+
return Math.min(Math.max(percentage, 0), max);
|
|
13
|
+
}
|
|
14
|
+
function CircularProgress({ value, segments, size = 100, strokeWidth = 10, className, testId, "aria-label": ariaLabel }) {
|
|
15
|
+
const isValueMode = value != null;
|
|
16
|
+
const normalizedValue = normalizePercentage(value ?? 0, 1);
|
|
17
|
+
const resolvedSegments = segments ?? (value != null ? [{
|
|
18
|
+
variant: "brand",
|
|
19
|
+
percentage: normalizedValue
|
|
20
|
+
}] : []);
|
|
21
|
+
const radius = (size - strokeWidth) / 2;
|
|
22
|
+
const circumference = 2 * Math.PI * radius;
|
|
23
|
+
const center = size / 2;
|
|
24
|
+
let currentAngle = 0;
|
|
25
|
+
return /* @__PURE__ */ jsx("div", {
|
|
26
|
+
className: cn("relative inline-block", className),
|
|
27
|
+
"data-testid": testId,
|
|
28
|
+
style: {
|
|
29
|
+
width: size,
|
|
30
|
+
height: size
|
|
31
|
+
},
|
|
32
|
+
...isValueMode ? {
|
|
33
|
+
role: "progressbar",
|
|
34
|
+
"aria-label": ariaLabel,
|
|
35
|
+
"aria-valuenow": Math.round(normalizedValue * 100),
|
|
36
|
+
"aria-valuemin": 0,
|
|
37
|
+
"aria-valuemax": 100
|
|
38
|
+
} : ariaLabel ? {
|
|
39
|
+
role: "img",
|
|
40
|
+
"aria-label": ariaLabel
|
|
41
|
+
} : {},
|
|
42
|
+
children: /* @__PURE__ */ jsxs("svg", {
|
|
43
|
+
"aria-hidden": "true",
|
|
44
|
+
width: size,
|
|
45
|
+
height: size,
|
|
46
|
+
viewBox: `0 0 ${size} ${size}`,
|
|
47
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
48
|
+
cx: center,
|
|
49
|
+
cy: center,
|
|
50
|
+
r: radius,
|
|
51
|
+
fill: "none",
|
|
52
|
+
stroke: "currentColor",
|
|
53
|
+
strokeWidth,
|
|
54
|
+
className: "text-quaternary opacity-20"
|
|
55
|
+
}), resolvedSegments.map((segment, index) => {
|
|
56
|
+
const strokeDasharray = circumference;
|
|
57
|
+
const remainingPercentage = Math.max(1 - currentAngle, 0);
|
|
58
|
+
const normalizedPercentage = normalizePercentage(segment.percentage, remainingPercentage);
|
|
59
|
+
const strokeDashoffset = circumference * (1 - normalizedPercentage);
|
|
60
|
+
const rotation = currentAngle * 360 - 90;
|
|
61
|
+
currentAngle += normalizedPercentage;
|
|
62
|
+
return /* @__PURE__ */ jsx("circle", {
|
|
63
|
+
cx: center,
|
|
64
|
+
cy: center,
|
|
65
|
+
r: radius,
|
|
66
|
+
fill: "none",
|
|
67
|
+
stroke: "currentColor",
|
|
68
|
+
strokeWidth,
|
|
69
|
+
strokeLinecap: isValueMode ? "round" : "butt",
|
|
70
|
+
strokeDasharray,
|
|
71
|
+
strokeDashoffset,
|
|
72
|
+
className: cn(segmentVariantClasses[segment.variant], "transition-[stroke-dashoffset,transform] duration-slower ease-in-out motion-reduce:transition-none"),
|
|
73
|
+
style: {
|
|
74
|
+
transform: `rotate(${rotation}deg)`,
|
|
75
|
+
transformOrigin: `${center}px ${center}px`
|
|
76
|
+
}
|
|
77
|
+
}, index);
|
|
78
|
+
})]
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { CircularProgress };
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=CircularProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircularProgress.js","names":[],"sources":["../../../src/components/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import { cn } from '../../utils/cn';\n\nexport type ProgressSegmentVariant = 'brand' | 'success' | 'error' | 'warning';\n\nexport interface ProgressSegment {\n /** Semantic color applied to the segment. */\n variant: ProgressSegmentVariant;\n percentage: number;\n}\n\nconst segmentVariantClasses: Record<ProgressSegmentVariant, string> = {\n brand: 'text-icon-brand',\n success: 'text-success-secondary',\n error: 'text-error-secondary',\n warning: 'text-warning-secondary',\n};\n\nfunction normalizePercentage(percentage: number, max: number) {\n if (!Number.isFinite(percentage)) return 0;\n return Math.min(Math.max(percentage, 0), max);\n}\n\n/**\n * CircularProgress renders a circular progress ring.\n *\n * Two modes:\n * - **Determinate value** — pass `value` (0–1) for a single-color ring (e.g. a\n * sampling rate). Renders with `role=\"progressbar\"` for accessibility.\n * - **Segments** — pass `segments` for a multi-color ring, each with its own\n * color and fraction of the circle.\n *\n * @example\n * ```tsx\n * // Determinate value (single ring)\n * <CircularProgress value={0.73} size={16} strokeWidth={2} aria-label=\"Sampling rate\" />\n *\n * // Multi-segment\n * <CircularProgress\n * segments={[\n * { variant: 'success', percentage: 0.3 },\n * { variant: 'error', percentage: 0.1 },\n * ]}\n * size={120}\n * strokeWidth={8}\n * />\n * ```\n */\ninterface CircularProgressBaseProps {\n size?: number;\n strokeWidth?: number;\n className?: string;\n testId?: string;\n}\n\ninterface CircularProgressValueProps extends CircularProgressBaseProps {\n /** Determinate progress, 0–1. */\n value: number;\n segments?: never;\n /** Accessible name describing the determinate value. */\n 'aria-label': string;\n}\n\ninterface CircularProgressSegmentsProps extends CircularProgressBaseProps {\n /** Multi-segment progress. */\n segments: ProgressSegment[];\n value?: never;\n /** Accessible summary. Omit only when the ring is decorative. */\n 'aria-label'?: string;\n}\n\nexport type CircularProgressProps =\n | CircularProgressValueProps\n | CircularProgressSegmentsProps;\n\nexport function CircularProgress({\n value,\n segments,\n size = 100,\n strokeWidth = 10,\n className,\n testId,\n 'aria-label': ariaLabel,\n}: CircularProgressProps) {\n // Determinate single-value mode collapses to a one-segment ring.\n const isValueMode = value != null;\n const normalizedValue = normalizePercentage(value ?? 0, 1);\n const resolvedSegments: ProgressSegment[] =\n segments ??\n (value != null ? [{ variant: 'brand', percentage: normalizedValue }] : []);\n\n // Calculate dimensions\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const center = size / 2;\n\n // Calculate segment paths\n let currentAngle = 0;\n\n return (\n <div\n className={cn('relative inline-block', className)}\n data-testid={testId}\n style={{ width: size, height: size }}\n {...(isValueMode\n ? {\n role: 'progressbar',\n 'aria-label': ariaLabel,\n 'aria-valuenow': Math.round(normalizedValue * 100),\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n }\n : ariaLabel\n ? { role: 'img', 'aria-label': ariaLabel }\n : {})}\n >\n {/* Background circle */}\n <svg\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n >\n <circle\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n className=\"text-quaternary opacity-20\"\n />\n\n {/* Segments */}\n {resolvedSegments.map((segment, index) => {\n const strokeDasharray = circumference;\n const remainingPercentage = Math.max(1 - currentAngle, 0);\n const normalizedPercentage = normalizePercentage(\n segment.percentage,\n remainingPercentage\n );\n const strokeDashoffset = circumference * (1 - normalizedPercentage);\n\n // Calculate rotation for this segment\n const rotation = currentAngle * 360 - 90; // -90 to start at top\n currentAngle += normalizedPercentage;\n\n return (\n <circle\n key={index}\n cx={center}\n cy={center}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap={isValueMode ? 'round' : 'butt'}\n strokeDasharray={strokeDasharray}\n strokeDashoffset={strokeDashoffset}\n className={cn(\n segmentVariantClasses[segment.variant],\n 'transition-[stroke-dashoffset,transform] duration-slower ease-in-out motion-reduce:transition-none'\n )}\n style={{\n transform: `rotate(${rotation}deg)`,\n transformOrigin: `${center}px ${center}px`,\n }}\n />\n );\n })}\n </svg>\n </div>\n );\n}\n"],"mappings":";;;AAUA,IAAM,wBAAgE;CACpE,OAAO;CACP,SAAS;CACT,OAAO;CACP,SAAS;AACX;AAEA,SAAS,oBAAoB,YAAoB,KAAa;CAC5D,IAAI,CAAC,OAAO,SAAS,UAAU,GAAG,OAAO;CACzC,OAAO,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,GAAG;AAC9C;AAsDA,SAAgB,iBAAiB,EAC/B,OACA,UACA,OAAO,KACP,cAAc,IACd,WACA,QACA,cAAc,aACU;CAExB,MAAM,cAAc,SAAS;CAC7B,MAAM,kBAAkB,oBAAoB,SAAS,GAAG,CAAC;CACzD,MAAM,mBACJ,aACC,SAAS,OAAO,CAAC;EAAE,SAAS;EAAS,YAAY;CAAgB,CAAC,IAAI,CAAC;CAG1E,MAAM,UAAU,OAAO,eAAe;CACtC,MAAM,gBAAgB,IAAI,KAAK,KAAK;CACpC,MAAM,SAAS,OAAO;CAGtB,IAAI,eAAe;CAEnB,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,yBAAyB,SAAS;EAChD,eAAa;EACb,OAAO;GAAE,OAAO;GAAM,QAAQ;EAAK;EACnC,GAAK,cACD;GACE,MAAM;GACN,cAAc;GACd,iBAAiB,KAAK,MAAM,kBAAkB,GAAG;GACjD,iBAAiB;GACjB,iBAAiB;EACnB,IACA,YACE;GAAE,MAAM;GAAO,cAAc;EAAU,IACvC,CAAC;EAGP,UAAA,qBAAC,OAAD;GACE,eAAY;GACZ,OAAO;GACP,QAAQ;GACR,SAAS,OAAO,KAAK,GAAG;GAJ1B,UAAA,CAME,oBAAC,UAAD;IACE,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,MAAK;IACL,QAAO;IACM;IACb,WAAU;GACX,CAAA,GAGA,iBAAiB,KAAK,SAAS,UAAU;IACxC,MAAM,kBAAkB;IACxB,MAAM,sBAAsB,KAAK,IAAI,IAAI,cAAc,CAAC;IACxD,MAAM,uBAAuB,oBAC3B,QAAQ,YACR,mBACF;IACA,MAAM,mBAAmB,iBAAiB,IAAI;IAG9C,MAAM,WAAW,eAAe,MAAM;IACtC,gBAAgB;IAEhB,OACE,oBAAC,UAAD;KAEE,IAAI;KACJ,IAAI;KACJ,GAAG;KACH,MAAK;KACL,QAAO;KACM;KACb,eAAe,cAAc,UAAU;KACtB;KACC;KAClB,WAAW,GACT,sBAAsB,QAAQ,UAC9B,oGACF;KACA,OAAO;MACL,WAAW,UAAU,SAAS;MAC9B,iBAAiB,GAAG,OAAO,KAAK,OAAO;KACzC;IACD,GAlBM,KAkBN;GAEL,CAAC,CACE;;CACF,CAAA;AAET"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Extension, StateEffect } from '@codemirror/state';
|
|
2
|
+
import type { EditorView } from '@codemirror/view';
|
|
3
|
+
import type { CMBundle } from '../../utils/lazy-codemirror-loader.js';
|
|
4
|
+
import type { CodeLanguageType } from './types.js';
|
|
5
|
+
export type { Extension, StateEffect };
|
|
6
|
+
type DataConverter = {
|
|
7
|
+
parse: <T>(value: string) => T;
|
|
8
|
+
stringify: <T>(value: T) => string;
|
|
9
|
+
};
|
|
10
|
+
export declare const DATA_CONVERTERS: Record<CodeLanguageType, DataConverter>;
|
|
11
|
+
type SyntaxThemeOptions = {
|
|
12
|
+
settings?: {
|
|
13
|
+
background?: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function getSyntaxTheme(cm: CMBundle, isDarkMode: boolean, options?: SyntaxThemeOptions): any;
|
|
17
|
+
export declare function getLanguageExtension(cm: CMBundle, language: CodeLanguageType): {
|
|
18
|
+
language: Extension;
|
|
19
|
+
extensions?: Extension[];
|
|
20
|
+
};
|
|
21
|
+
export declare const foldAllExceptRoot: (cm: CMBundle) => (view: EditorView) => boolean;
|
|
22
|
+
export declare const useEditorTheme: (cm: CMBundle | null, { variant, }: {
|
|
23
|
+
variant?: "plain" | "full";
|
|
24
|
+
}) => Extension | null;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import * as YAML from "yaml";
|
|
3
|
+
//#region packages/components/src/components/Code/Code.utils.tsx
|
|
4
|
+
var passthroughConverter = {
|
|
5
|
+
parse: (value) => value,
|
|
6
|
+
stringify: (value) => String(value)
|
|
7
|
+
};
|
|
8
|
+
var DATA_CONVERTERS = {
|
|
9
|
+
json: {
|
|
10
|
+
parse: (value) => JSON.parse(value),
|
|
11
|
+
stringify: (value) => JSON.stringify(value, null, 2)
|
|
12
|
+
},
|
|
13
|
+
yaml: {
|
|
14
|
+
parse: (value) => YAML.parse(value),
|
|
15
|
+
stringify: (value) => YAML.stringify(value, { lineWidth: 0 })?.slice(0, -1) ?? ""
|
|
16
|
+
},
|
|
17
|
+
javascript: passthroughConverter,
|
|
18
|
+
typescript: passthroughConverter,
|
|
19
|
+
python: passthroughConverter,
|
|
20
|
+
shell: passthroughConverter,
|
|
21
|
+
markdown: passthroughConverter
|
|
22
|
+
};
|
|
23
|
+
function getSyntaxTheme(cm, isDarkMode, options) {
|
|
24
|
+
return isDarkMode ? cm.tokyoNightStormInit({
|
|
25
|
+
...options?.settings ? { settings: options.settings } : {},
|
|
26
|
+
styles: [{
|
|
27
|
+
tag: cm.lezerHighlightTags.content,
|
|
28
|
+
color: "#9ece6a"
|
|
29
|
+
}]
|
|
30
|
+
}) : cm.tokyoNightDayInit({
|
|
31
|
+
...options?.settings ? { settings: options.settings } : {},
|
|
32
|
+
styles: [{
|
|
33
|
+
tag: cm.lezerHighlightTags.content,
|
|
34
|
+
color: "#587539"
|
|
35
|
+
}]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function buildYamlLanguage(cm) {
|
|
39
|
+
const { LRLanguage, LanguageSupport, delimitedIndent, foldService, indentNodeProp, syntaxTree, syntaxTreeAvailable, lezerYamlParser } = cm;
|
|
40
|
+
const yamlParser = lezerYamlParser.configure({ props: [indentNodeProp.add({
|
|
41
|
+
Stream: (cx) => {
|
|
42
|
+
for (let before = cx.node.resolve(cx.pos, -1); before && before.to >= cx.pos; before = before.parent) {
|
|
43
|
+
if (before.name == "BlockLiteralContent" && before.from < before.to) return cx.baseIndentFor(before);
|
|
44
|
+
if (before.name == "BlockLiteral") return cx.baseIndentFor(before) + cx.unit;
|
|
45
|
+
if (before.name == "BlockSequence" || before.name == "BlockMapping") return cx.column(before.from, 1);
|
|
46
|
+
if (before.name == "QuotedLiteral") return null;
|
|
47
|
+
if (before.name == "Literal") {
|
|
48
|
+
const col = cx.column(before.from, 1);
|
|
49
|
+
if (col == cx.lineIndent(before.from, 1)) return col;
|
|
50
|
+
if (before.to > cx.pos) return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
},
|
|
55
|
+
FlowMapping: delimitedIndent({ closing: "}" }),
|
|
56
|
+
FlowSequence: delimitedIndent({ closing: "]" })
|
|
57
|
+
})] });
|
|
58
|
+
return {
|
|
59
|
+
language: new LanguageSupport(LRLanguage.define({
|
|
60
|
+
name: "yaml",
|
|
61
|
+
parser: yamlParser,
|
|
62
|
+
languageData: {
|
|
63
|
+
commentTokens: { line: "#" },
|
|
64
|
+
indentOnInput: /^\s*[\]}]$/
|
|
65
|
+
}
|
|
66
|
+
})),
|
|
67
|
+
extensions: [foldService.of((state, from, to) => {
|
|
68
|
+
const tree = syntaxTreeAvailable(state) ? syntaxTree(state) : yamlParser.parse(state.doc.toString());
|
|
69
|
+
if (tree.length < to) return null;
|
|
70
|
+
const end = tree.resolveInner(to, 1);
|
|
71
|
+
if (end.node.type.name === "Pair") return {
|
|
72
|
+
from: to,
|
|
73
|
+
to: end.node.to
|
|
74
|
+
};
|
|
75
|
+
return null;
|
|
76
|
+
})]
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function getLanguageExtension(cm, language) {
|
|
80
|
+
const { langJson, langJavascript, langPython, langMarkdown, StreamLanguage, legacyModeShell } = cm;
|
|
81
|
+
if (language === "yaml") return buildYamlLanguage(cm);
|
|
82
|
+
if (language === "json") return { language: langJson() };
|
|
83
|
+
if (language === "javascript") return { language: langJavascript() };
|
|
84
|
+
if (language === "typescript") return { language: langJavascript({ typescript: true }) };
|
|
85
|
+
if (language === "python") return { language: langPython() };
|
|
86
|
+
if (language === "shell") return { language: StreamLanguage.define(legacyModeShell) };
|
|
87
|
+
return { language: langMarkdown() };
|
|
88
|
+
}
|
|
89
|
+
var foldAllExceptRoot = (cm) => (view) => {
|
|
90
|
+
const { foldEffect, foldable } = cm;
|
|
91
|
+
const { state } = view;
|
|
92
|
+
const effects = [];
|
|
93
|
+
for (let pos = 0; pos < state.doc.length;) {
|
|
94
|
+
const line = view.lineBlockAt(pos);
|
|
95
|
+
let range = foldable(state, line.from, line.to);
|
|
96
|
+
if (range && range.from + range.to === state.doc.length) range = null;
|
|
97
|
+
if (range) effects.push(foldEffect.of(range));
|
|
98
|
+
pos = (range ? view.lineBlockAt(range.to) : line).to + 1;
|
|
99
|
+
}
|
|
100
|
+
if (effects.length) view.dispatch({ effects });
|
|
101
|
+
return !!effects.length;
|
|
102
|
+
};
|
|
103
|
+
var useEditorTheme = (cm, { variant }) => {
|
|
104
|
+
const textQuaternary = "var(--text-quaternary)";
|
|
105
|
+
return useMemo(() => {
|
|
106
|
+
if (!cm) return null;
|
|
107
|
+
return cm.EditorView.theme({
|
|
108
|
+
"&.cm-editor": { backgroundColor: "transparent" },
|
|
109
|
+
"&.cm-focused": { outline: "none" },
|
|
110
|
+
green: { background: "green" },
|
|
111
|
+
"& .cm-content": { padding: "12px" },
|
|
112
|
+
"& .cm-line": {
|
|
113
|
+
fontFamily: "'Fira Code', monospace",
|
|
114
|
+
padding: 0,
|
|
115
|
+
overflowAnchor: "none",
|
|
116
|
+
fontVariantLigatures: "none"
|
|
117
|
+
},
|
|
118
|
+
"& .cm-gutters.cm-gutters": {
|
|
119
|
+
backgroundColor: "transparent",
|
|
120
|
+
color: textQuaternary,
|
|
121
|
+
borderRight: "none"
|
|
122
|
+
},
|
|
123
|
+
"& .cm-lineNumbers": { minWidth: "32px" },
|
|
124
|
+
"& .cm-lineNumbers .cm-gutterElement": {
|
|
125
|
+
minWidth: "32px",
|
|
126
|
+
padding: "0 4px 0 8px"
|
|
127
|
+
},
|
|
128
|
+
"& .cm-foldGutter": { width: "20px" },
|
|
129
|
+
"& .cm-foldGutter .cm-gutterElement": {
|
|
130
|
+
padding: "0 2px",
|
|
131
|
+
textAlign: "center"
|
|
132
|
+
},
|
|
133
|
+
"& .cm-foldGutter span": {
|
|
134
|
+
color: textQuaternary,
|
|
135
|
+
fontSize: "16px",
|
|
136
|
+
lineHeight: "16px"
|
|
137
|
+
},
|
|
138
|
+
"& .cm-foldPlaceholder": {
|
|
139
|
+
backgroundColor: "var(--bg-surface-level-2)",
|
|
140
|
+
border: "1px solid var(--border-subtle)",
|
|
141
|
+
borderRadius: "var(--radius-xs)",
|
|
142
|
+
color: textQuaternary,
|
|
143
|
+
lineHeight: "1",
|
|
144
|
+
padding: "1px 2px"
|
|
145
|
+
},
|
|
146
|
+
...variant === "plain" && { "& .cm-content": {
|
|
147
|
+
padding: "13px",
|
|
148
|
+
paddingLeft: "0px"
|
|
149
|
+
} }
|
|
150
|
+
});
|
|
151
|
+
}, [
|
|
152
|
+
cm,
|
|
153
|
+
variant,
|
|
154
|
+
textQuaternary
|
|
155
|
+
]);
|
|
156
|
+
};
|
|
157
|
+
//#endregion
|
|
158
|
+
export { DATA_CONVERTERS, foldAllExceptRoot, getLanguageExtension, getSyntaxTheme, useEditorTheme };
|
|
159
|
+
|
|
160
|
+
//# sourceMappingURL=Code.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Code.utils.js","names":[],"sources":["../../../src/components/Code/Code.utils.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\nimport * as YAML from 'yaml';\n\nimport type { TreeIndentContext } from '@codemirror/language';\nimport type { Extension, StateEffect } from '@codemirror/state';\nimport type { EditorView } from '@codemirror/view';\nimport type { SyntaxNode } from '@lezer/common';\n\nimport type { CMBundle } from '../../utils/lazy-codemirror-loader';\nimport type { CodeLanguageType } from './types';\n\nexport type { Extension, StateEffect };\n\ntype DataConverter = {\n parse: <T>(value: string) => T;\n stringify: <T>(value: T) => string;\n};\n\nconst passthroughConverter: DataConverter = {\n parse: (value) => value as never,\n stringify: (value) => String(value),\n};\n\nexport const DATA_CONVERTERS: Record<CodeLanguageType, DataConverter> = {\n json: {\n parse: (value) => JSON.parse(value),\n stringify: (value) => JSON.stringify(value, null, 2),\n },\n yaml: {\n parse: (value) => YAML.parse(value),\n stringify: (value) =>\n (YAML.stringify(value, { lineWidth: 0 }) as string | undefined)?.slice(\n 0,\n -1\n ) ?? '',\n },\n javascript: passthroughConverter,\n typescript: passthroughConverter,\n python: passthroughConverter,\n shell: passthroughConverter,\n markdown: passthroughConverter,\n};\n\ntype SyntaxThemeOptions = {\n settings?: {\n background?: string;\n };\n};\n\nexport function getSyntaxTheme(\n cm: CMBundle,\n isDarkMode: boolean,\n options?: SyntaxThemeOptions\n) {\n return isDarkMode\n ? cm.tokyoNightStormInit({\n ...(options?.settings ? { settings: options.settings } : {}),\n styles: [{ tag: cm.lezerHighlightTags.content, color: '#9ece6a' }],\n })\n : cm.tokyoNightDayInit({\n ...(options?.settings ? { settings: options.settings } : {}),\n styles: [{ tag: cm.lezerHighlightTags.content, color: '#587539' }],\n });\n}\n\n// These helpers require the non-null bundle returned after CodeMirror loads.\n\nfunction buildYamlLanguage(cm: CMBundle) {\n const {\n LRLanguage,\n LanguageSupport,\n delimitedIndent,\n foldService,\n indentNodeProp,\n syntaxTree,\n syntaxTreeAvailable,\n lezerYamlParser,\n } = cm;\n\n const yamlParser = lezerYamlParser.configure({\n props: [\n indentNodeProp.add({\n Stream: (cx: TreeIndentContext) => {\n for (\n let before = cx.node.resolve(cx.pos, -1) as SyntaxNode | null;\n before && before.to >= cx.pos;\n before = before.parent\n ) {\n if (before.name == 'BlockLiteralContent' && before.from < before.to)\n return cx.baseIndentFor(before);\n if (before.name == 'BlockLiteral')\n return cx.baseIndentFor(before) + cx.unit;\n if (before.name == 'BlockSequence' || before.name == 'BlockMapping')\n return cx.column(before.from, 1);\n if (before.name == 'QuotedLiteral') return null;\n if (before.name == 'Literal') {\n const col = cx.column(before.from, 1);\n if (col == cx.lineIndent(before.from, 1)) return col;\n if (before.to > cx.pos) return null;\n }\n }\n return null;\n },\n FlowMapping: delimitedIndent({ closing: '}' }),\n FlowSequence: delimitedIndent({ closing: ']' }),\n }),\n ],\n });\n\n const yamlLanguage = LRLanguage.define({\n name: 'yaml',\n parser: yamlParser,\n languageData: {\n commentTokens: { line: '#' },\n indentOnInput: /^\\s*[\\]}]$/,\n },\n });\n\n const language = new LanguageSupport(yamlLanguage);\n const extensions: Extension[] = [\n foldService.of((state, from, to) => {\n void from;\n const tree = syntaxTreeAvailable(state)\n ? syntaxTree(state)\n : yamlParser.parse(state.doc.toString());\n if (tree.length < to) return null;\n\n const end = tree.resolveInner(to, 1);\n if (end.node.type.name === 'Pair') {\n return { from: to, to: end.node.to };\n }\n\n return null;\n }),\n ];\n\n return { language, extensions };\n}\n\nexport function getLanguageExtension(\n cm: CMBundle,\n language: CodeLanguageType\n): { language: Extension; extensions?: Extension[] } {\n const {\n langJson,\n langJavascript,\n langPython,\n langMarkdown,\n StreamLanguage,\n legacyModeShell,\n } = cm;\n\n if (language === 'yaml') return buildYamlLanguage(cm);\n if (language === 'json') return { language: langJson() };\n if (language === 'javascript') return { language: langJavascript() };\n if (language === 'typescript')\n return { language: langJavascript({ typescript: true }) };\n if (language === 'python') return { language: langPython() };\n if (language === 'shell')\n return { language: StreamLanguage.define(legacyModeShell) };\n return { language: langMarkdown() };\n}\n\nexport const foldAllExceptRoot = (cm: CMBundle) => (view: EditorView) => {\n const { foldEffect, foldable } = cm;\n const { state } = view;\n const effects: Array<StateEffect<unknown>> = [];\n for (let pos = 0; pos < state.doc.length; ) {\n const line = view.lineBlockAt(pos);\n let range = foldable(state, line.from, line.to);\n\n // avoid root node\n if (range && range.from + range.to === state.doc.length) {\n range = null;\n }\n\n if (range) effects.push(foldEffect.of(range));\n pos = (range ? view.lineBlockAt(range.to) : line).to + 1;\n }\n if (effects.length) {\n view.dispatch({ effects });\n }\n return !!effects.length;\n};\n\nexport const useEditorTheme = (\n cm: CMBundle | null,\n {\n variant,\n }: {\n variant?: 'plain' | 'full';\n }\n) => {\n const textQuaternary = 'var(--text-quaternary)';\n\n return useMemo(() => {\n if (!cm) return null;\n\n return cm.EditorView.theme({\n '&.cm-editor': {\n backgroundColor: 'transparent',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n green: {\n background: 'green',\n },\n '& .cm-content': {\n padding: '12px',\n },\n '& .cm-line': {\n fontFamily: \"'Fira Code', monospace\",\n padding: 0,\n overflowAnchor: 'none',\n fontVariantLigatures: 'none',\n },\n '& .cm-gutters.cm-gutters': {\n backgroundColor: 'transparent',\n color: textQuaternary,\n borderRight: 'none',\n },\n '& .cm-lineNumbers': {\n minWidth: '32px',\n },\n '& .cm-lineNumbers .cm-gutterElement': {\n minWidth: '32px',\n padding: '0 4px 0 8px',\n },\n '& .cm-foldGutter': {\n width: '20px',\n },\n '& .cm-foldGutter .cm-gutterElement': {\n padding: '0 2px',\n textAlign: 'center',\n },\n '& .cm-foldGutter span': {\n color: textQuaternary,\n fontSize: '16px',\n lineHeight: '16px',\n },\n '& .cm-foldPlaceholder': {\n backgroundColor: 'var(--bg-surface-level-2)',\n border: '1px solid var(--border-subtle)',\n borderRadius: 'var(--radius-xs)',\n color: textQuaternary,\n lineHeight: '1',\n padding: '1px 2px',\n },\n ...(variant === 'plain' && {\n '& .cm-content': {\n padding: '13px',\n paddingLeft: '0px',\n },\n }),\n });\n }, [cm, variant, textQuaternary]);\n};\n"],"mappings":"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"}
|