@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,126 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import zIndices from "../../utils/zIndices.js";
|
|
3
|
+
import { useZIndex } from "../../utils/useZIndex.js";
|
|
4
|
+
import { ZIndexProvider } from "../../utils/ZIndexContext.js";
|
|
5
|
+
import { CaretDownIcon, CaretUpIcon, CheckIcon } from "../../icons/PaddedPhosphorIcons.js";
|
|
6
|
+
import * as React$1 from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
9
|
+
import * as RadixSelect from "@radix-ui/react-select";
|
|
10
|
+
//#region packages/components/src/components/Select/SelectPrimitive.tsx
|
|
11
|
+
var SelectRoot = (props) => {
|
|
12
|
+
const [open = false, onOpenChange] = useControllableState({
|
|
13
|
+
prop: props.open,
|
|
14
|
+
defaultProp: props.defaultOpen ?? false,
|
|
15
|
+
onChange: props.onOpenChange
|
|
16
|
+
});
|
|
17
|
+
return /* @__PURE__ */ jsx(RadixSelect.Root, {
|
|
18
|
+
...props,
|
|
19
|
+
open,
|
|
20
|
+
onOpenChange,
|
|
21
|
+
defaultOpen: void 0
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
var SelectTrigger = React$1.forwardRef(({ className, children, iconClassName, ...props }, ref) => {
|
|
25
|
+
if (props.asChild) return /* @__PURE__ */ jsx(RadixSelect.Trigger, {
|
|
26
|
+
ref,
|
|
27
|
+
className: cn("flex items-center justify-between gap-space-2 rounded-md border border-default bg-transparent p-1.5 px-2.5 text-sm focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-secondary [&>span]:line-clamp-1", className),
|
|
28
|
+
...props,
|
|
29
|
+
children: props.asChild ? children : /* @__PURE__ */ jsx("span", { children })
|
|
30
|
+
});
|
|
31
|
+
return /* @__PURE__ */ jsxs(RadixSelect.Trigger, {
|
|
32
|
+
ref,
|
|
33
|
+
className: cn("flex items-center justify-between gap-space-2 rounded-md border border-default bg-transparent p-1.5 px-2.5 text-sm focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-secondary [&>span]:line-clamp-1", className),
|
|
34
|
+
...props,
|
|
35
|
+
children: [children, /* @__PURE__ */ jsx(RadixSelect.Icon, {
|
|
36
|
+
asChild: true,
|
|
37
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
38
|
+
"aria-hidden": true,
|
|
39
|
+
className: cn("inline-flex h-4 w-4 text-icon-primary", iconClassName),
|
|
40
|
+
children: /* @__PURE__ */ jsx(CaretDownIcon, {
|
|
41
|
+
size: "100%",
|
|
42
|
+
weight: "regular"
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
SelectTrigger.displayName = RadixSelect.Trigger.displayName;
|
|
49
|
+
var SelectScrollUpButton = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadixSelect.ScrollUpButton, {
|
|
50
|
+
ref,
|
|
51
|
+
className: cn("flex cursor-default items-center justify-center py-space-1", className),
|
|
52
|
+
...props,
|
|
53
|
+
children: /* @__PURE__ */ jsx(CaretUpIcon, {
|
|
54
|
+
"aria-hidden": true,
|
|
55
|
+
size: 16,
|
|
56
|
+
weight: "regular"
|
|
57
|
+
})
|
|
58
|
+
}));
|
|
59
|
+
SelectScrollUpButton.displayName = RadixSelect.ScrollUpButton.displayName;
|
|
60
|
+
var SelectScrollDownButton = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadixSelect.ScrollDownButton, {
|
|
61
|
+
ref,
|
|
62
|
+
className: cn("flex cursor-default items-center justify-center py-space-1", className),
|
|
63
|
+
...props,
|
|
64
|
+
children: /* @__PURE__ */ jsx(CaretDownIcon, {
|
|
65
|
+
"aria-hidden": true,
|
|
66
|
+
size: 16,
|
|
67
|
+
weight: "regular"
|
|
68
|
+
})
|
|
69
|
+
}));
|
|
70
|
+
SelectScrollDownButton.displayName = RadixSelect.ScrollDownButton.displayName;
|
|
71
|
+
var SelectContent = React$1.forwardRef(({ className, children, position = "popper", ...props }, ref) => {
|
|
72
|
+
const zIndex = useZIndex(zIndices.popover);
|
|
73
|
+
return /* @__PURE__ */ jsx(RadixSelect.Portal, { children: /* @__PURE__ */ jsx(RadixSelect.Content, {
|
|
74
|
+
ref,
|
|
75
|
+
className: cn("relative max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-default bg-elevated shadow-md", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
|
|
76
|
+
position,
|
|
77
|
+
...props,
|
|
78
|
+
style: {
|
|
79
|
+
zIndex,
|
|
80
|
+
...props.style
|
|
81
|
+
},
|
|
82
|
+
children: /* @__PURE__ */ jsxs(ZIndexProvider, {
|
|
83
|
+
value: zIndex,
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
86
|
+
/* @__PURE__ */ jsx(RadixSelect.Viewport, {
|
|
87
|
+
className: cn("p-space-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),
|
|
88
|
+
children
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ jsx(SelectScrollDownButton, {})
|
|
91
|
+
]
|
|
92
|
+
})
|
|
93
|
+
}) });
|
|
94
|
+
});
|
|
95
|
+
SelectContent.displayName = RadixSelect.Content.displayName;
|
|
96
|
+
var SelectLabel = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadixSelect.Label, {
|
|
97
|
+
ref,
|
|
98
|
+
className: cn("py-1.5 pl-space-6 pr-space-2 text-sm font-semibold", className),
|
|
99
|
+
...props
|
|
100
|
+
}));
|
|
101
|
+
SelectLabel.displayName = RadixSelect.Label.displayName;
|
|
102
|
+
var SelectItem = React$1.forwardRef(({ className, children, checkmarkPosition = "left", selectedIndicator = "checkmark", ...props }, ref) => /* @__PURE__ */ jsxs(RadixSelect.Item, {
|
|
103
|
+
ref,
|
|
104
|
+
className: cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pr-space-2 text-sm outline-none focus:bg-elevated-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50", selectedIndicator === "background" ? "pl-space-2 data-[state=checked]:bg-selected data-[state=checked]:focus:bg-selected-hover" : checkmarkPosition === "left" ? "pl-space-6" : "pl-space-2", className),
|
|
105
|
+
...props,
|
|
106
|
+
children: [selectedIndicator === "checkmark" && /* @__PURE__ */ jsx("span", {
|
|
107
|
+
className: cn("absolute flex h-3.5 w-3.5 items-center justify-center", checkmarkPosition === "left" ? "left-2" : "right-2"),
|
|
108
|
+
children: /* @__PURE__ */ jsx(RadixSelect.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {
|
|
109
|
+
"aria-hidden": true,
|
|
110
|
+
size: 16,
|
|
111
|
+
weight: "regular"
|
|
112
|
+
}) })
|
|
113
|
+
}), /* @__PURE__ */ jsx(RadixSelect.ItemText, { children })]
|
|
114
|
+
}));
|
|
115
|
+
SelectItem.displayName = RadixSelect.Item.displayName;
|
|
116
|
+
var SelectSeparator = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadixSelect.Separator, {
|
|
117
|
+
ref,
|
|
118
|
+
className: cn("-mx-space-1 my-space-1 h-px border-b border-subtle", className),
|
|
119
|
+
...props
|
|
120
|
+
}));
|
|
121
|
+
SelectSeparator.displayName = RadixSelect.Separator.displayName;
|
|
122
|
+
var SelectValue = RadixSelect.Value;
|
|
123
|
+
//#endregion
|
|
124
|
+
export { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectSeparator, SelectTrigger, SelectValue };
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=SelectPrimitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectPrimitive.js","names":[],"sources":["../../../src/components/Select/SelectPrimitive.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport * as RadixSelect from '@radix-ui/react-select';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\n\nimport {\n CaretDownIcon,\n CaretUpIcon,\n CheckIcon,\n} from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport { useZIndex } from '../../utils/useZIndex';\nimport { ZIndexProvider } from '../../utils/ZIndexContext';\nimport zIndices from '../../utils/zIndices';\n\nexport const SelectRoot: typeof RadixSelect.Root = (props) => {\n const [open = false, onOpenChange] = useControllableState({\n prop: props.open,\n defaultProp: props.defaultOpen ?? false,\n onChange: props.onOpenChange,\n });\n\n return (\n <RadixSelect.Root\n {...props}\n open={open}\n onOpenChange={onOpenChange}\n defaultOpen={undefined}\n />\n );\n};\n\nexport type SelectTriggerProps = React.ComponentPropsWithoutRef<\n typeof RadixSelect.Trigger\n> & {\n iconClassName?: string;\n};\n\nexport const SelectTrigger = React.forwardRef<\n React.ElementRef<typeof RadixSelect.Trigger>,\n SelectTriggerProps\n>(({ className, children, iconClassName, ...props }, ref) => {\n if (props.asChild) {\n return (\n <RadixSelect.Trigger\n ref={ref}\n className={cn(\n 'flex items-center justify-between gap-space-2 rounded-md border border-default bg-transparent p-1.5 px-2.5 text-sm focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-secondary [&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {props.asChild ? children : <span>{children}</span>}\n </RadixSelect.Trigger>\n );\n }\n\n return (\n <RadixSelect.Trigger\n ref={ref}\n className={cn(\n 'flex items-center justify-between gap-space-2 rounded-md border border-default bg-transparent p-1.5 px-2.5 text-sm focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-secondary [&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <RadixSelect.Icon asChild>\n <span\n aria-hidden\n className={cn('inline-flex h-4 w-4 text-icon-primary', iconClassName)}\n >\n <CaretDownIcon size=\"100%\" weight=\"regular\" />\n </span>\n </RadixSelect.Icon>\n </RadixSelect.Trigger>\n );\n});\nSelectTrigger.displayName = RadixSelect.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof RadixSelect.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof RadixSelect.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <RadixSelect.ScrollUpButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-space-1',\n className\n )}\n {...props}\n >\n <CaretUpIcon aria-hidden size={16} weight=\"regular\" />\n </RadixSelect.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = RadixSelect.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof RadixSelect.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof RadixSelect.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <RadixSelect.ScrollDownButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-space-1',\n className\n )}\n {...props}\n >\n <CaretDownIcon aria-hidden size={16} weight=\"regular\" />\n </RadixSelect.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = RadixSelect.ScrollDownButton.displayName;\n\nexport const SelectContent = React.forwardRef<\n React.ElementRef<typeof RadixSelect.Content>,\n React.ComponentPropsWithoutRef<typeof RadixSelect.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => {\n const zIndex = useZIndex(zIndices.popover);\n\n return (\n <RadixSelect.Portal>\n <RadixSelect.Content\n ref={ref}\n className={cn(\n 'relative max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-default bg-elevated shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n {...props}\n style={{ zIndex, ...props.style }}\n >\n <ZIndexProvider value={zIndex}>\n <SelectScrollUpButton />\n <RadixSelect.Viewport\n className={cn(\n 'p-space-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </RadixSelect.Viewport>\n <SelectScrollDownButton />\n </ZIndexProvider>\n </RadixSelect.Content>\n </RadixSelect.Portal>\n );\n});\nSelectContent.displayName = RadixSelect.Content.displayName;\n\nexport const SelectLabel = React.forwardRef<\n React.ElementRef<typeof RadixSelect.Label>,\n React.ComponentPropsWithoutRef<typeof RadixSelect.Label>\n>(({ className, ...props }, ref) => (\n <RadixSelect.Label\n ref={ref}\n className={cn(\n 'py-1.5 pl-space-6 pr-space-2 text-sm font-semibold',\n className\n )}\n {...props}\n />\n));\nSelectLabel.displayName = RadixSelect.Label.displayName;\n\nexport const SelectItem = React.forwardRef<\n React.ElementRef<typeof RadixSelect.Item>,\n React.ComponentPropsWithoutRef<typeof RadixSelect.Item> & {\n checkmarkPosition?: 'left' | 'right';\n selectedIndicator?: 'checkmark' | 'background';\n }\n>(\n (\n {\n className,\n children,\n checkmarkPosition = 'left',\n selectedIndicator = 'checkmark',\n ...props\n },\n ref\n ) => (\n <RadixSelect.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pr-space-2 text-sm outline-none focus:bg-elevated-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n selectedIndicator === 'background'\n ? 'pl-space-2 data-[state=checked]:bg-selected data-[state=checked]:focus:bg-selected-hover'\n : checkmarkPosition === 'left'\n ? 'pl-space-6'\n : 'pl-space-2',\n className\n )}\n {...props}\n >\n {selectedIndicator === 'checkmark' && (\n <span\n className={cn(\n 'absolute flex h-3.5 w-3.5 items-center justify-center',\n checkmarkPosition === 'left' ? 'left-2' : 'right-2'\n )}\n >\n <RadixSelect.ItemIndicator>\n <CheckIcon aria-hidden size={16} weight=\"regular\" />\n </RadixSelect.ItemIndicator>\n </span>\n )}\n\n <RadixSelect.ItemText>{children}</RadixSelect.ItemText>\n </RadixSelect.Item>\n )\n);\nSelectItem.displayName = RadixSelect.Item.displayName;\n\nexport const SelectSeparator = React.forwardRef<\n React.ElementRef<typeof RadixSelect.Separator>,\n React.ComponentPropsWithoutRef<typeof RadixSelect.Separator>\n>(({ className, ...props }, ref) => (\n <RadixSelect.Separator\n ref={ref}\n className={cn(\n '-mx-space-1 my-space-1 h-px border-b border-subtle',\n className\n )}\n {...props}\n />\n));\nSelectSeparator.displayName = RadixSelect.Separator.displayName;\n\nexport const SelectValue = RadixSelect.Value;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Select } from './Select.js';
|
|
2
|
+
export type { SelectGroup, SelectOption, SelectProps, SelectSize, } from './Select.js';
|
|
3
|
+
export { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectSeparator, SelectTrigger, SelectValue, } from './SelectPrimitive.js';
|
|
4
|
+
export type { SelectTriggerProps } from './SelectPrimitive.js';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Select } from "./Select.js";
|
|
2
|
+
import { SelectContent, SelectItem, SelectLabel, SelectRoot, SelectSeparator, SelectTrigger, SelectValue } from "./SelectPrimitive.js";
|
|
3
|
+
export { Select, SelectContent, SelectItem, SelectLabel, SelectRoot, SelectSeparator, SelectTrigger, SelectValue };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface SkeletonProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
as?: 'div' | 'span';
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
}
|
|
6
|
+
export declare const Skeleton: React.FC<SkeletonProps>;
|
|
7
|
+
export declare const SkeletonRows: ({ rows, className, skeletonClassName, }: {
|
|
8
|
+
rows: number;
|
|
9
|
+
className?: string;
|
|
10
|
+
skeletonClassName?: string;
|
|
11
|
+
}) => import("react").JSX.Element;
|
|
12
|
+
export declare const CircleSkeleton: ({ className, style }: SkeletonProps) => import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region packages/components/src/components/Skeleton/Skeleton.tsx
|
|
4
|
+
var Skeleton = ({ className, style, as = "div" }) => {
|
|
5
|
+
return /* @__PURE__ */ jsx(as === "div" ? "div" : "span", {
|
|
6
|
+
className: cn("h-4 w-full animate-pulse rounded bg-surface-level-3", className),
|
|
7
|
+
style
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var SkeletonRows = ({ rows, className, skeletonClassName }) => {
|
|
11
|
+
return /* @__PURE__ */ jsx("div", {
|
|
12
|
+
className: cn("flex flex-col gap-space-2", className),
|
|
13
|
+
children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsx(Skeleton, { className: skeletonClassName }, index))
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var CircleSkeleton = ({ className, style }) => {
|
|
17
|
+
return /* @__PURE__ */ jsx("div", {
|
|
18
|
+
className: cn("h-5 w-5 animate-pulse rounded-full bg-surface-level-3", className),
|
|
19
|
+
style
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { CircleSkeleton, Skeleton, SkeletonRows };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.js","names":[],"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from '../../utils/cn';\n\ninterface SkeletonProps {\n className?: string;\n as?: 'div' | 'span';\n style?: React.CSSProperties;\n}\n\nexport const Skeleton: React.FC<SkeletonProps> = ({\n className,\n style,\n as = 'div',\n}) => {\n const Component = as === 'div' ? 'div' : 'span';\n return (\n <Component\n className={cn(\n 'h-4 w-full animate-pulse rounded bg-surface-level-3',\n className\n )}\n style={style}\n />\n );\n};\n\nexport const SkeletonRows = ({\n rows,\n className,\n skeletonClassName,\n}: {\n rows: number;\n className?: string;\n skeletonClassName?: string;\n}) => {\n return (\n <div className={cn('flex flex-col gap-space-2', className)}>\n {Array.from({ length: rows }).map((_, index) => (\n <Skeleton key={index} className={skeletonClassName} />\n ))}\n </div>\n );\n};\n\nexport const CircleSkeleton = ({ className, style }: SkeletonProps) => {\n return (\n <div\n className={cn(\n 'h-5 w-5 animate-pulse rounded-full bg-surface-level-3',\n className\n )}\n style={style}\n />\n );\n};\n"],"mappings":";;;AAQA,IAAa,YAAqC,EAChD,WACA,OACA,KAAK,YACD;CAEJ,OACE,oBAFgB,OAAO,QAAQ,QAAQ,QAEvC;EACE,WAAW,GACT,uDACA,SACF;EACO;CACR,CAAA;AAEL;AAEA,IAAa,gBAAgB,EAC3B,MACA,WACA,wBAKI;CACJ,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,6BAA6B,SAAS;EACtD,UAAA,MAAM,KAAK,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,UACpC,oBAAC,UAAD,EAAsB,WAAW,kBAAoB,GAAtC,KAAsC,CACtD;CACE,CAAA;AAET;AAEA,IAAa,kBAAkB,EAAE,WAAW,YAA2B;CACrE,OACE,oBAAC,OAAD;EACE,WAAW,GACT,yDACA,SACF;EACO;CACR,CAAA;AAEL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Skeleton, SkeletonRows, CircleSkeleton } from './Skeleton.js';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface SliderStepLabel {
|
|
2
|
+
value: number;
|
|
3
|
+
label?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SliderProps {
|
|
6
|
+
/** Current value. Pass a number for a single thumb, number[] for a range slider. */
|
|
7
|
+
value?: number | number[];
|
|
8
|
+
/** Default value (uncontrolled). */
|
|
9
|
+
defaultValue?: number | number[];
|
|
10
|
+
/** Called continuously as the value changes. */
|
|
11
|
+
onChange?: (value: number | number[]) => void;
|
|
12
|
+
/** Called when the user finishes dragging (mouse/touch up or keyboard interaction ends). */
|
|
13
|
+
onChangeCommitted?: (value: number | number[]) => void;
|
|
14
|
+
min?: number;
|
|
15
|
+
max?: number;
|
|
16
|
+
step?: number;
|
|
17
|
+
stepLabels?: SliderStepLabel[];
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
className?: string;
|
|
20
|
+
/** Track treatment; `thick` is the meter-weight bar. */
|
|
21
|
+
variant?: 'default' | 'thick';
|
|
22
|
+
'aria-label'?: string;
|
|
23
|
+
'aria-labelledby'?: string;
|
|
24
|
+
'data-testid'?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Slider built on the Radix UI Slider primitive. Supports single-thumb and
|
|
28
|
+
* range (multi-thumb) modes, optional labeled steps, and disabled state.
|
|
29
|
+
*
|
|
30
|
+
* When stepLabels are present, the Root's hit area extends to cover the label
|
|
31
|
+
* row — clicking a label moves the thumb to that X position.
|
|
32
|
+
*/
|
|
33
|
+
export declare const Slider: ({ value, defaultValue, onChange, onChangeCommitted, min, max, step, stepLabels, disabled, className, variant, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "data-testid": testId, }: SliderProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { SELECTION_CONTROL_HIT_AREA_STYLES, SELECTION_CONTROL_SIZES } from "../../utils/componentSizes.js";
|
|
3
|
+
import { Text } from "../Text/Text.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
6
|
+
//#region packages/components/src/components/Slider/Slider.tsx
|
|
7
|
+
function toArray(v) {
|
|
8
|
+
if (v === void 0) return void 0;
|
|
9
|
+
return Array.isArray(v) ? v : [v];
|
|
10
|
+
}
|
|
11
|
+
function fromArray(v, wasArray) {
|
|
12
|
+
return wasArray ? v : v[0];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Slider built on the Radix UI Slider primitive. Supports single-thumb and
|
|
16
|
+
* range (multi-thumb) modes, optional labeled steps, and disabled state.
|
|
17
|
+
*
|
|
18
|
+
* When stepLabels are present, the Root's hit area extends to cover the label
|
|
19
|
+
* row — clicking a label moves the thumb to that X position.
|
|
20
|
+
*/
|
|
21
|
+
var Slider = ({ value, defaultValue, onChange, onChangeCommitted, min = 0, max = 100, step = 1, stepLabels, disabled = false, className, variant = "default", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "data-testid": testId }) => {
|
|
22
|
+
const isRange = Array.isArray(value ?? defaultValue);
|
|
23
|
+
const labeledSteps = stepLabels?.filter((s) => s.label);
|
|
24
|
+
const hasLabels = !!labeledSteps && labeledSteps.length > 0;
|
|
25
|
+
return /* @__PURE__ */ jsxs(SliderPrimitive.Root, {
|
|
26
|
+
className: cn("relative flex w-full touch-none select-none items-center", hasLabels && "pb-7", className),
|
|
27
|
+
value: toArray(value),
|
|
28
|
+
defaultValue: toArray(defaultValue),
|
|
29
|
+
min,
|
|
30
|
+
max,
|
|
31
|
+
step,
|
|
32
|
+
disabled,
|
|
33
|
+
onValueChange: (v) => onChange?.(fromArray(v, isRange)),
|
|
34
|
+
onValueCommit: (v) => onChangeCommitted?.(fromArray(v, isRange)),
|
|
35
|
+
"aria-label": ariaLabel,
|
|
36
|
+
"aria-labelledby": ariaLabelledby,
|
|
37
|
+
"data-testid": testId,
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsx(SliderPrimitive.Track, {
|
|
40
|
+
className: cn("relative w-full grow overflow-hidden", variant === "thick" ? "mx-2 h-2 rounded-xs bg-surface-level-3" : "h-1.5 rounded-full bg-surface-level-4"),
|
|
41
|
+
children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: cn("absolute h-full", disabled ? "data-[disabled]:bg-brand-subtle" : "bg-control-active") })
|
|
42
|
+
}),
|
|
43
|
+
(toArray(value) ?? toArray(defaultValue) ?? [0]).map((_, i) => /* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: cn("block rounded-full border-2 shadow transition", SELECTION_CONTROL_SIZES.sm.className, SELECTION_CONTROL_HIT_AREA_STYLES, "focus-visible:shadow-[0_0_0_4px_var(--bg-brand-subtle)] focus-visible:outline-none", disabled ? "border-muted bg-surface-level-3" : "cursor-pointer border-brand-300 bg-control-thumb hover:border-brand-400 dark:border-brand-500 dark:hover:border-brand-600") }, i)),
|
|
44
|
+
hasLabels && /* @__PURE__ */ jsx("div", {
|
|
45
|
+
"aria-hidden": true,
|
|
46
|
+
className: "absolute bottom-2 w-full cursor-pointer",
|
|
47
|
+
children: labeledSteps.map((s) => /* @__PURE__ */ jsx(Text, {
|
|
48
|
+
as: "span",
|
|
49
|
+
variant: "xs",
|
|
50
|
+
className: "absolute -translate-x-1/2 truncate text-secondary",
|
|
51
|
+
style: {
|
|
52
|
+
left: `${(s.value - min) / (max - min) * 100}%`,
|
|
53
|
+
maxWidth: `${100 / labeledSteps.length}%`
|
|
54
|
+
},
|
|
55
|
+
children: s.label
|
|
56
|
+
}, s.value))
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
//#endregion
|
|
62
|
+
export { Slider };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=Slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.js","names":[],"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '../../utils/cn';\nimport {\n SELECTION_CONTROL_HIT_AREA_STYLES,\n SELECTION_CONTROL_SIZES,\n} from '../../utils/componentSizes';\nimport { Text } from '../Text';\n\nexport interface SliderStepLabel {\n value: number;\n label?: string;\n}\n\nexport interface SliderProps {\n /** Current value. Pass a number for a single thumb, number[] for a range slider. */\n value?: number | number[];\n /** Default value (uncontrolled). */\n defaultValue?: number | number[];\n /** Called continuously as the value changes. */\n onChange?: (value: number | number[]) => void;\n /** Called when the user finishes dragging (mouse/touch up or keyboard interaction ends). */\n onChangeCommitted?: (value: number | number[]) => void;\n min?: number;\n max?: number;\n step?: number;\n stepLabels?: SliderStepLabel[];\n disabled?: boolean;\n className?: string;\n /** Track treatment; `thick` is the meter-weight bar. */\n variant?: 'default' | 'thick';\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'data-testid'?: string;\n}\n\nfunction toArray(v: number | number[] | undefined): number[] | undefined {\n if (v === undefined) return undefined;\n return Array.isArray(v) ? v : [v];\n}\n\nfunction fromArray(v: number[], wasArray: boolean): number | number[] {\n return wasArray ? v : v[0];\n}\n\n/**\n * Slider built on the Radix UI Slider primitive. Supports single-thumb and\n * range (multi-thumb) modes, optional labeled steps, and disabled state.\n *\n * When stepLabels are present, the Root's hit area extends to cover the label\n * row — clicking a label moves the thumb to that X position.\n */\nexport const Slider = ({\n value,\n defaultValue,\n onChange,\n onChangeCommitted,\n min = 0,\n max = 100,\n step = 1,\n stepLabels,\n disabled = false,\n className,\n variant = 'default',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'data-testid': testId,\n}: SliderProps) => {\n const isRange = Array.isArray(value ?? defaultValue);\n const labeledSteps = stepLabels?.filter((s) => s.label);\n const hasLabels = !!labeledSteps && labeledSteps.length > 0;\n\n return (\n <SliderPrimitive.Root\n className={cn(\n 'relative flex w-full touch-none select-none items-center',\n hasLabels && 'pb-7',\n className\n )}\n value={toArray(value)}\n defaultValue={toArray(defaultValue)}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n onValueChange={(v) => onChange?.(fromArray(v, isRange))}\n onValueCommit={(v) => onChangeCommitted?.(fromArray(v, isRange))}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n data-testid={testId}\n >\n <SliderPrimitive.Track\n className={cn(\n 'relative w-full grow overflow-hidden',\n variant === 'thick'\n ? 'mx-2 h-2 rounded-xs bg-surface-level-3'\n : 'h-1.5 rounded-full bg-surface-level-4'\n )}\n >\n <SliderPrimitive.Range\n className={cn(\n 'absolute h-full',\n disabled ? 'data-[disabled]:bg-brand-subtle' : 'bg-control-active'\n )}\n />\n </SliderPrimitive.Track>\n\n {(toArray(value) ?? toArray(defaultValue) ?? [0]).map((_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className={cn(\n 'block rounded-full border-2 shadow transition',\n SELECTION_CONTROL_SIZES.sm.className,\n SELECTION_CONTROL_HIT_AREA_STYLES,\n 'focus-visible:shadow-[0_0_0_4px_var(--bg-brand-subtle)] focus-visible:outline-none',\n disabled\n ? 'border-muted bg-surface-level-3'\n : 'cursor-pointer border-brand-300 bg-control-thumb hover:border-brand-400 dark:border-brand-500 dark:hover:border-brand-600'\n )}\n />\n ))}\n\n {hasLabels && (\n <div aria-hidden className=\"absolute bottom-2 w-full cursor-pointer\">\n {labeledSteps.map((s) => (\n <Text\n key={s.value}\n as=\"span\"\n variant=\"xs\"\n className=\"absolute -translate-x-1/2 truncate text-secondary\"\n // Left as non-tailwind on purpose for better readability on label positioning\n style={{\n left: `${((s.value - min) / (max - min)) * 100}%`,\n maxWidth: `${100 / labeledSteps.length}%`,\n }}\n >\n {s.label}\n </Text>\n ))}\n </div>\n )}\n </SliderPrimitive.Root>\n );\n};\n"],"mappings":";;;;;;AAoCA,SAAS,QAAQ,GAAwD;CACvE,IAAI,MAAM,KAAA,GAAW,OAAO,KAAA;CAC5B,OAAO,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;AAClC;AAEA,SAAS,UAAU,GAAa,UAAsC;CACpE,OAAO,WAAW,IAAI,EAAE;AAC1B;;;;;;;;AASA,IAAa,UAAU,EACrB,OACA,cACA,UACA,mBACA,MAAM,GACN,MAAM,KACN,OAAO,GACP,YACA,WAAW,OACX,WACA,UAAU,WACV,cAAc,WACd,mBAAmB,gBACnB,eAAe,aACE;CACjB,MAAM,UAAU,MAAM,QAAQ,SAAS,YAAY;CACnD,MAAM,eAAe,YAAY,QAAQ,MAAM,EAAE,KAAK;CACtD,MAAM,YAAY,CAAC,CAAC,gBAAgB,aAAa,SAAS;CAE1D,OACE,qBAAC,gBAAgB,MAAjB;EACE,WAAW,GACT,4DACA,aAAa,QACb,SACF;EACA,OAAO,QAAQ,KAAK;EACpB,cAAc,QAAQ,YAAY;EAC7B;EACA;EACC;EACI;EACV,gBAAgB,MAAM,WAAW,UAAU,GAAG,OAAO,CAAC;EACtD,gBAAgB,MAAM,oBAAoB,UAAU,GAAG,OAAO,CAAC;EAC/D,cAAY;EACZ,mBAAiB;EACjB,eAAa;EAhBf,UAAA;GAkBE,oBAAC,gBAAgB,OAAjB;IACE,WAAW,GACT,wCACA,YAAY,UACR,2CACA,uCACN;IAEA,UAAA,oBAAC,gBAAgB,OAAjB,EACE,WAAW,GACT,mBACA,WAAW,oCAAoC,mBACjD,EACD,CAAA;GACoB,CAAA;IAErB,QAAQ,KAAK,KAAK,QAAQ,YAAY,KAAK,CAAC,CAAC,EAAA,CAAG,KAAK,GAAG,MACxD,oBAAC,gBAAgB,OAAjB,EAEE,WAAW,GACT,iDACA,wBAAwB,GAAG,WAC3B,mCACA,sFACA,WACI,oCACA,2HACN,EACD,GAVM,CAUN,CACF;GAEA,aACC,oBAAC,OAAD;IAAK,eAAA;IAAY,WAAU;IACxB,UAAA,aAAa,KAAK,MACjB,oBAAC,MAAD;KAEE,IAAG;KACH,SAAQ;KACR,WAAU;KAEV,OAAO;MACL,MAAM,IAAK,EAAE,QAAQ,QAAQ,MAAM,OAAQ,IAAI;MAC/C,UAAU,GAAG,MAAM,aAAa,OAAO;KACzC;KAEC,UAAA,EAAE;IACC,GAXC,EAAE,KAWH,CACP;GACE,CAAA;EAEa;;AAE1B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type SVGProps } from 'react';
|
|
2
|
+
export interface SparkLinePoint {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
export type SparkLineChartColor = 'brand' | 'neutral' | 'success' | 'warning' | 'error';
|
|
7
|
+
export interface SparkLineChartProps extends Omit<SVGProps<SVGSVGElement>, 'children' | 'color'> {
|
|
8
|
+
data: readonly SparkLinePoint[];
|
|
9
|
+
color?: SparkLineChartColor;
|
|
10
|
+
/** Animates the chart unless reduced motion is preferred. Defaults to true. */
|
|
11
|
+
shouldAnimate?: boolean;
|
|
12
|
+
'aria-label'?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const SparkLineChart: ({ data, color, shouldAnimate, className, "aria-label": ariaLabel, ...props }: SparkLineChartProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { CHART_OTHER_COLOR, CHART_STATUS_COLORS, getCategoricalLineChartColor } from "../../utils/chartColors.js";
|
|
3
|
+
import { useId } from "react";
|
|
4
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { animated, useReducedMotion, useSpring } from "@react-spring/web";
|
|
6
|
+
//#region packages/components/src/components/SparkLineChart/SparkLineChart.tsx
|
|
7
|
+
var VIEWBOX_WIDTH = 100;
|
|
8
|
+
var VIEWBOX_HEIGHT = 100;
|
|
9
|
+
var VERTICAL_PADDING = 2;
|
|
10
|
+
var SPARKLINE_COLORS = {
|
|
11
|
+
brand: getCategoricalLineChartColor(0),
|
|
12
|
+
neutral: CHART_OTHER_COLOR,
|
|
13
|
+
success: CHART_STATUS_COLORS.positive,
|
|
14
|
+
warning: CHART_STATUS_COLORS.warning,
|
|
15
|
+
error: CHART_STATUS_COLORS.negative
|
|
16
|
+
};
|
|
17
|
+
var getPaths = (data) => {
|
|
18
|
+
const points = data.filter(({ x, y }) => Number.isFinite(x) && Number.isFinite(y));
|
|
19
|
+
if (points.length < 2) return null;
|
|
20
|
+
const xs = points.map(({ x }) => x);
|
|
21
|
+
const ys = points.map(({ y }) => y);
|
|
22
|
+
const xMin = Math.min(...xs);
|
|
23
|
+
const xMax = Math.max(...xs);
|
|
24
|
+
const yMin = Math.min(...ys);
|
|
25
|
+
const yMax = Math.max(...ys);
|
|
26
|
+
const xSpan = xMax - xMin;
|
|
27
|
+
const ySpan = yMax - yMin;
|
|
28
|
+
const usableHeight = 96;
|
|
29
|
+
const normalizedPoints = points.map(({ x, y }, index) => {
|
|
30
|
+
return {
|
|
31
|
+
x: xSpan === 0 ? index / (points.length - 1) * VIEWBOX_WIDTH : (x - xMin) / xSpan * VIEWBOX_WIDTH,
|
|
32
|
+
y: ySpan === 0 ? VIEWBOX_HEIGHT / 2 : VERTICAL_PADDING + (1 - (y - yMin) / ySpan) * usableHeight
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
const pathPoints = normalizedPoints.map(({ x, y }) => `${x},${y}`);
|
|
36
|
+
const firstX = normalizedPoints[0]?.x ?? 0;
|
|
37
|
+
const lastX = normalizedPoints.at(-1)?.x ?? VIEWBOX_WIDTH;
|
|
38
|
+
const line = `M${pathPoints.join(" L")}`;
|
|
39
|
+
return {
|
|
40
|
+
area: `M${firstX},${VIEWBOX_HEIGHT} L${pathPoints.join(" L")} L${lastX},${VIEWBOX_HEIGHT} Z`,
|
|
41
|
+
line
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
var SparkLineChart = ({ data, color = "brand", shouldAnimate = true, className, "aria-label": ariaLabel = "Trend sparkline", ...props }) => {
|
|
45
|
+
const paths = getPaths(data);
|
|
46
|
+
const gradientId = useId().replace(/:/g, "");
|
|
47
|
+
const revealClipId = `${gradientId}-reveal`;
|
|
48
|
+
const prefersReducedMotion = useReducedMotion();
|
|
49
|
+
const spring = useSpring({
|
|
50
|
+
from: { progress: 0 },
|
|
51
|
+
to: { progress: paths == null ? 0 : 1 },
|
|
52
|
+
config: {
|
|
53
|
+
tension: 60,
|
|
54
|
+
friction: 18
|
|
55
|
+
},
|
|
56
|
+
immediate: (prefersReducedMotion ?? false) || !shouldAnimate
|
|
57
|
+
});
|
|
58
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
59
|
+
...props,
|
|
60
|
+
role: "img",
|
|
61
|
+
"aria-label": ariaLabel,
|
|
62
|
+
focusable: "false",
|
|
63
|
+
viewBox: `0 0 ${VIEWBOX_WIDTH} ${VIEWBOX_HEIGHT}`,
|
|
64
|
+
preserveAspectRatio: "none",
|
|
65
|
+
className: cn("block h-full w-full", className),
|
|
66
|
+
children: paths != null && /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
67
|
+
/* @__PURE__ */ jsxs("defs", { children: [/* @__PURE__ */ jsxs("linearGradient", {
|
|
68
|
+
id: gradientId,
|
|
69
|
+
x1: "0",
|
|
70
|
+
y1: "0",
|
|
71
|
+
x2: "0",
|
|
72
|
+
y2: "1",
|
|
73
|
+
children: [/* @__PURE__ */ jsx("stop", {
|
|
74
|
+
offset: "0%",
|
|
75
|
+
stopColor: SPARKLINE_COLORS[color],
|
|
76
|
+
stopOpacity: .18
|
|
77
|
+
}), /* @__PURE__ */ jsx("stop", {
|
|
78
|
+
offset: "100%",
|
|
79
|
+
stopColor: SPARKLINE_COLORS[color],
|
|
80
|
+
stopOpacity: .02
|
|
81
|
+
})]
|
|
82
|
+
}), /* @__PURE__ */ jsx("clipPath", {
|
|
83
|
+
id: revealClipId,
|
|
84
|
+
children: /* @__PURE__ */ jsx(animated.rect, {
|
|
85
|
+
x: 0,
|
|
86
|
+
y: 0,
|
|
87
|
+
width: spring.progress.to((progress) => progress * VIEWBOX_WIDTH),
|
|
88
|
+
height: VIEWBOX_HEIGHT
|
|
89
|
+
})
|
|
90
|
+
})] }),
|
|
91
|
+
/* @__PURE__ */ jsx(animated.path, {
|
|
92
|
+
d: paths.area,
|
|
93
|
+
fill: `url(#${gradientId})`,
|
|
94
|
+
opacity: spring.progress
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ jsx(animated.path, {
|
|
97
|
+
d: paths.line,
|
|
98
|
+
fill: "none",
|
|
99
|
+
stroke: SPARKLINE_COLORS[color],
|
|
100
|
+
strokeWidth: 1.5,
|
|
101
|
+
strokeLinecap: "round",
|
|
102
|
+
strokeLinejoin: "round",
|
|
103
|
+
vectorEffect: "non-scaling-stroke",
|
|
104
|
+
clipPath: `url(#${revealClipId})`
|
|
105
|
+
})
|
|
106
|
+
] })
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
//#endregion
|
|
110
|
+
export { SparkLineChart };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=SparkLineChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SparkLineChart.js","names":[],"sources":["../../../src/components/SparkLineChart/SparkLineChart.tsx"],"sourcesContent":["import { useId, type SVGProps } from 'react';\n\nimport { animated, useReducedMotion, useSpring } from '@react-spring/web';\n\nimport {\n CHART_OTHER_COLOR,\n CHART_STATUS_COLORS,\n getCategoricalLineChartColor,\n} from '../../utils/chartColors';\nimport { cn } from '../../utils/cn';\n\nexport interface SparkLinePoint {\n x: number;\n y: number;\n}\n\nexport type SparkLineChartColor =\n | 'brand'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'error';\n\nexport interface SparkLineChartProps extends Omit<\n SVGProps<SVGSVGElement>,\n 'children' | 'color'\n> {\n data: readonly SparkLinePoint[];\n color?: SparkLineChartColor;\n /** Animates the chart unless reduced motion is preferred. Defaults to true. */\n shouldAnimate?: boolean;\n 'aria-label'?: string;\n}\n\nconst VIEWBOX_WIDTH = 100;\nconst VIEWBOX_HEIGHT = 100;\nconst VERTICAL_PADDING = 2;\nconst SPARKLINE_COLORS: Record<SparkLineChartColor, string> = {\n brand: getCategoricalLineChartColor(0),\n neutral: CHART_OTHER_COLOR,\n success: CHART_STATUS_COLORS.positive,\n warning: CHART_STATUS_COLORS.warning,\n error: CHART_STATUS_COLORS.negative,\n};\n\nconst getPaths = (data: readonly SparkLinePoint[]) => {\n const points = data.filter(\n ({ x, y }) => Number.isFinite(x) && Number.isFinite(y)\n );\n if (points.length < 2) return null;\n\n const xs = points.map(({ x }) => x);\n const ys = points.map(({ y }) => y);\n const xMin = Math.min(...xs);\n const xMax = Math.max(...xs);\n const yMin = Math.min(...ys);\n const yMax = Math.max(...ys);\n const xSpan = xMax - xMin;\n const ySpan = yMax - yMin;\n const usableHeight = VIEWBOX_HEIGHT - VERTICAL_PADDING * 2;\n\n const normalizedPoints = points.map(({ x, y }, index) => {\n const normalizedX =\n xSpan === 0\n ? (index / (points.length - 1)) * VIEWBOX_WIDTH\n : ((x - xMin) / xSpan) * VIEWBOX_WIDTH;\n const normalizedY =\n ySpan === 0\n ? VIEWBOX_HEIGHT / 2\n : VERTICAL_PADDING + (1 - (y - yMin) / ySpan) * usableHeight;\n return { x: normalizedX, y: normalizedY };\n });\n\n const pathPoints = normalizedPoints.map(({ x, y }) => `${x},${y}`);\n const firstX = normalizedPoints[0]?.x ?? 0;\n const lastX = normalizedPoints.at(-1)?.x ?? VIEWBOX_WIDTH;\n const line = `M${pathPoints.join(' L')}`;\n const area = `M${firstX},${VIEWBOX_HEIGHT} L${pathPoints.join(\n ' L'\n )} L${lastX},${VIEWBOX_HEIGHT} Z`;\n\n return { area, line };\n};\n\nexport const SparkLineChart = ({\n data,\n color = 'brand',\n shouldAnimate = true,\n className,\n 'aria-label': ariaLabel = 'Trend sparkline',\n ...props\n}: SparkLineChartProps) => {\n const paths = getPaths(data);\n const gradientId = useId().replace(/:/g, '');\n const revealClipId = `${gradientId}-reveal`;\n const prefersReducedMotion = useReducedMotion();\n const spring = useSpring({\n from: { progress: 0 },\n to: { progress: paths == null ? 0 : 1 },\n config: { tension: 60, friction: 18 },\n immediate: (prefersReducedMotion ?? false) || !shouldAnimate,\n });\n\n return (\n <svg\n {...props}\n role=\"img\"\n aria-label={ariaLabel}\n focusable=\"false\"\n viewBox={`0 0 ${VIEWBOX_WIDTH} ${VIEWBOX_HEIGHT}`}\n preserveAspectRatio=\"none\"\n className={cn('block h-full w-full', className)}\n >\n {paths != null && (\n <>\n <defs>\n <linearGradient id={gradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop\n offset=\"0%\"\n stopColor={SPARKLINE_COLORS[color]}\n stopOpacity={0.18}\n />\n <stop\n offset=\"100%\"\n stopColor={SPARKLINE_COLORS[color]}\n stopOpacity={0.02}\n />\n </linearGradient>\n <clipPath id={revealClipId}>\n <animated.rect\n x={0}\n y={0}\n width={spring.progress.to(\n (progress) => progress * VIEWBOX_WIDTH\n )}\n height={VIEWBOX_HEIGHT}\n />\n </clipPath>\n </defs>\n <animated.path\n d={paths.area}\n fill={`url(#${gradientId})`}\n opacity={spring.progress}\n />\n <animated.path\n d={paths.line}\n fill=\"none\"\n stroke={SPARKLINE_COLORS[color]}\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n clipPath={`url(#${revealClipId})`}\n />\n </>\n )}\n </svg>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SVGProps } from 'react';
|
|
2
|
+
import { type VisualElementSize } from '../../utils/componentSizes.js';
|
|
3
|
+
import type { IconWeight } from '../../utils/icon-types.js';
|
|
4
|
+
type SpinnerSize = VisualElementSize | 'lg';
|
|
5
|
+
declare const SpinnerIcon: ({ weight, ...props }: SVGProps<SVGSVGElement> & {
|
|
6
|
+
weight?: IconWeight;
|
|
7
|
+
}) => import("react").JSX.Element;
|
|
8
|
+
declare const Spinner: ({ size, className, }: {
|
|
9
|
+
size?: SpinnerSize;
|
|
10
|
+
className?: string;
|
|
11
|
+
}) => import("react").JSX.Element;
|
|
12
|
+
export { Spinner, SpinnerIcon };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { VISUAL_ELEMENT_SIZES } from "../../utils/componentSizes.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { SpinnerGapIcon } from "@phosphor-icons/react/dist/ssr/SpinnerGap";
|
|
5
|
+
//#region packages/components/src/components/Spinner/Spinner.tsx
|
|
6
|
+
var SPINNER_SIZE = {
|
|
7
|
+
xxs: VISUAL_ELEMENT_SIZES.xxs.className,
|
|
8
|
+
xs: VISUAL_ELEMENT_SIZES.xs.className,
|
|
9
|
+
sm: VISUAL_ELEMENT_SIZES.sm.className,
|
|
10
|
+
md: VISUAL_ELEMENT_SIZES.md.className,
|
|
11
|
+
lg: "size-8"
|
|
12
|
+
};
|
|
13
|
+
var SpinnerIcon = ({ weight = "regular", ...props }) => {
|
|
14
|
+
const spinnerProps = {
|
|
15
|
+
...props,
|
|
16
|
+
"aria-hidden": true,
|
|
17
|
+
className: cn("animate-spin", props.className)
|
|
18
|
+
};
|
|
19
|
+
return /* @__PURE__ */ jsx(SpinnerGapIcon, {
|
|
20
|
+
...spinnerProps,
|
|
21
|
+
weight
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
var Spinner = ({ size = "sm", className }) => {
|
|
25
|
+
return /* @__PURE__ */ jsx(SpinnerIcon, {
|
|
26
|
+
weight: size === "xxs" || size === "xs" ? "bold" : "regular",
|
|
27
|
+
className: cn(SPINNER_SIZE[size], className)
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { Spinner, SpinnerIcon };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","names":[],"sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\nimport { SpinnerGapIcon } from '@phosphor-icons/react/dist/ssr/SpinnerGap';\n\nimport { cn } from '../../utils/cn';\nimport {\n VISUAL_ELEMENT_SIZES,\n type VisualElementSize,\n} from '../../utils/componentSizes';\nimport type { IconWeight } from '../../utils/icon-types';\n\ntype SpinnerSize = VisualElementSize | 'lg';\n\nconst SPINNER_SIZE: Record<SpinnerSize, string> = {\n xxs: VISUAL_ELEMENT_SIZES.xxs.className,\n xs: VISUAL_ELEMENT_SIZES.xs.className,\n sm: VISUAL_ELEMENT_SIZES.sm.className,\n md: VISUAL_ELEMENT_SIZES.md.className,\n lg: 'size-8',\n};\n\nconst SpinnerIcon = ({\n weight = 'regular',\n ...props\n}: SVGProps<SVGSVGElement> & { weight?: IconWeight }) => {\n const spinnerProps = {\n ...props,\n 'aria-hidden': true,\n className: cn('animate-spin', props.className),\n };\n return <SpinnerGapIcon {...spinnerProps} weight={weight} />;\n};\n\nconst Spinner = ({\n size = 'sm',\n className,\n}: {\n size?: SpinnerSize;\n className?: string;\n}) => {\n return (\n <SpinnerIcon\n weight={size === 'xxs' || size === 'xs' ? 'bold' : 'regular'}\n className={cn(SPINNER_SIZE[size], className)}\n />\n );\n};\n\nexport { Spinner, SpinnerIcon };\n"],"mappings":";;;;;AAaA,IAAM,eAA4C;CAChD,KAAK,qBAAqB,IAAI;CAC9B,IAAI,qBAAqB,GAAG;CAC5B,IAAI,qBAAqB,GAAG;CAC5B,IAAI,qBAAqB,GAAG;CAC5B,IAAI;AACN;AAEA,IAAM,eAAe,EACnB,SAAS,WACT,GAAG,YACoD;CACvD,MAAM,eAAe;EACnB,GAAG;EACH,eAAe;EACf,WAAW,GAAG,gBAAgB,MAAM,SAAS;CAC/C;CACA,OAAO,oBAAC,gBAAD;EAAgB,GAAI;EAAsB;CAAS,CAAA;AAC5D;AAEA,IAAM,WAAW,EACf,OAAO,MACP,gBAII;CACJ,OACE,oBAAC,aAAD;EACE,QAAQ,SAAS,SAAS,SAAS,OAAO,SAAS;EACnD,WAAW,GAAG,aAAa,OAAO,SAAS;CAC5C,CAAA;AAEL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Spinner, SpinnerIcon } from './Spinner.js';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export { HeaderTitleActionSlot } from './SplitViewPaneHeader.js';
|
|
3
|
+
export declare const CustomHeaderSlot: {
|
|
4
|
+
Fill: (props: {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}) => import("react").ReactPortal | null;
|
|
7
|
+
Slot: (props: import("react").HTMLAttributes<HTMLDivElement>) => import("react").JSX.Element;
|
|
8
|
+
Context: (props: {
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}) => import("react").JSX.Element;
|
|
11
|
+
useCanFillSlot: () => boolean;
|
|
12
|
+
};
|
|
13
|
+
export type SplitViewPaneProps = {
|
|
14
|
+
open: boolean;
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
className?: string;
|
|
17
|
+
sidePaneId?: string;
|
|
18
|
+
hideArrows?: boolean;
|
|
19
|
+
customHeader?: ReactNode;
|
|
20
|
+
defaultWidthPx?: number;
|
|
21
|
+
overrideWidthPx?: number;
|
|
22
|
+
minWidthPx?: number;
|
|
23
|
+
useCustomHeaderSlot?: boolean;
|
|
24
|
+
requireConfirmationOnClose?: boolean;
|
|
25
|
+
dismissOnOutsideClick?: boolean;
|
|
26
|
+
scrollContainer?: 'outer' | 'inner';
|
|
27
|
+
headerClassName?: string;
|
|
28
|
+
} & ({
|
|
29
|
+
title?: undefined;
|
|
30
|
+
onClose?: undefined;
|
|
31
|
+
onExpand?: undefined;
|
|
32
|
+
onNext?: undefined;
|
|
33
|
+
onPrevious?: undefined;
|
|
34
|
+
} | {
|
|
35
|
+
title?: ReactNode;
|
|
36
|
+
onClose: () => void;
|
|
37
|
+
onExpand?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
38
|
+
onNext?: () => void;
|
|
39
|
+
onPrevious?: () => void;
|
|
40
|
+
});
|
|
41
|
+
export declare function SplitViewPane({ open, onClose, onExpand, onNext, onPrevious, children, title, className, sidePaneId, hideArrows, customHeader, useCustomHeaderSlot, defaultWidthPx, overrideWidthPx, minWidthPx, requireConfirmationOnClose, dismissOnOutsideClick, scrollContainer, headerClassName, }: SplitViewPaneProps): import("react").JSX.Element;
|