@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,30 @@
|
|
|
1
|
+
import type { MouseEventHandler } from 'react';
|
|
2
|
+
import type { ControlSize } from '../../utils/componentSizes.js';
|
|
3
|
+
type ButtonGroupSize = Exclude<ControlSize, 'lg'>;
|
|
4
|
+
interface ButtonGroupProps {
|
|
5
|
+
/** Button group color scheme to propagate to children */
|
|
6
|
+
color?: 'primary' | 'secondary';
|
|
7
|
+
/** Button group variant to propagate to children */
|
|
8
|
+
variant?: 'normal' | 'outlined' | 'plain';
|
|
9
|
+
/**
|
|
10
|
+
* Control height: xs=20px, sm=24px, md=32px. Cloned onto direct React children.
|
|
11
|
+
* Wrappers must forward it; otherwise set the same size on their inner controls.
|
|
12
|
+
*/
|
|
13
|
+
size?: ButtonGroupSize;
|
|
14
|
+
/** Additional CSS classes */
|
|
15
|
+
className?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Button or IconButton controls, optionally inside wrappers that render no
|
|
18
|
+
* extra DOM element. PopoverTrigger/DropdownMenuTrigger with asChild forward
|
|
19
|
+
* group props; Tooltip requires matching props on its inner control.
|
|
20
|
+
*/
|
|
21
|
+
children: React.ReactNode;
|
|
22
|
+
onMouseEnter?: MouseEventHandler<HTMLDivElement>;
|
|
23
|
+
onMouseLeave?: MouseEventHandler<HTMLDivElement>;
|
|
24
|
+
}
|
|
25
|
+
declare function ButtonGroup({ color, variant, size, className, children, onMouseEnter, onMouseLeave, }: ButtonGroupProps): import("react").JSX.Element;
|
|
26
|
+
declare namespace ButtonGroup {
|
|
27
|
+
var displayName: string;
|
|
28
|
+
}
|
|
29
|
+
export { ButtonGroup };
|
|
30
|
+
export type { ButtonGroupProps };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { Children, cloneElement, isValidElement } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region packages/components/src/components/ButtonGroup/ButtonGroup.tsx
|
|
5
|
+
function ButtonGroup({ color, variant, size, className, children, onMouseEnter, onMouseLeave }) {
|
|
6
|
+
const baseStyles = cn("inline-flex items-stretch", "[&>*:not(:first-child)]:border-l-0", "[&>*:not(:first-child):not(:last-child)]:rounded-none", "[&>*:first-child]:rounded-r-none", "[&>*:last-child]:rounded-l-none", "[&>*:only-child]:rounded", className);
|
|
7
|
+
const clonedChildren = Children.map(children, (child) => {
|
|
8
|
+
if (isValidElement(child)) return cloneElement(child, {
|
|
9
|
+
color,
|
|
10
|
+
size,
|
|
11
|
+
variant
|
|
12
|
+
});
|
|
13
|
+
return child;
|
|
14
|
+
});
|
|
15
|
+
return /* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: baseStyles,
|
|
17
|
+
onMouseEnter,
|
|
18
|
+
onMouseLeave,
|
|
19
|
+
children: clonedChildren
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
23
|
+
//#endregion
|
|
24
|
+
export { ButtonGroup };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=ButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.js","names":[],"sources":["../../../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["import type { MouseEventHandler } from 'react';\nimport { Children, cloneElement, isValidElement } from 'react';\n\nimport { cn } from '../../utils/cn';\nimport type { ControlSize } from '../../utils/componentSizes';\nimport type { ButtonProps } from '../Button';\nimport type { IconButtonProps } from '../IconButton';\n\ntype ButtonGroupSize = Exclude<ControlSize, 'lg'>;\n\ninterface ButtonGroupProps {\n /** Button group color scheme to propagate to children */\n color?: 'primary' | 'secondary';\n /** Button group variant to propagate to children */\n variant?: 'normal' | 'outlined' | 'plain';\n /**\n * Control height: xs=20px, sm=24px, md=32px. Cloned onto direct React children.\n * Wrappers must forward it; otherwise set the same size on their inner controls.\n */\n size?: ButtonGroupSize;\n /** Additional CSS classes */\n className?: string;\n /**\n * Button or IconButton controls, optionally inside wrappers that render no\n * extra DOM element. PopoverTrigger/DropdownMenuTrigger with asChild forward\n * group props; Tooltip requires matching props on its inner control.\n */\n children: React.ReactNode;\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n}\n\nfunction ButtonGroup({\n color,\n variant,\n size,\n className,\n children,\n onMouseEnter,\n onMouseLeave,\n}: ButtonGroupProps) {\n const baseStyles = cn(\n 'inline-flex items-stretch',\n '[&>*:not(:first-child)]:border-l-0', // Remove left border on all but first child\n '[&>*:not(:first-child):not(:last-child)]:rounded-none', // Remove border radius on middle children\n '[&>*:first-child]:rounded-r-none', // Remove right border radius on first child\n '[&>*:last-child]:rounded-l-none', // Remove left border radius on last child\n '[&>*:only-child]:rounded', // Preserve border radius when only one child\n className\n );\n\n const clonedChildren = Children.map(children, (child) => {\n if (isValidElement<ButtonProps | IconButtonProps>(child)) {\n // Replace direct-child props, including with undefined. Wrappers control\n // forwarding; Radix asChild gives explicitly set inner props precedence.\n const props: Partial<ButtonProps & IconButtonProps> = {\n color,\n size,\n variant,\n };\n\n return cloneElement(child, props);\n }\n return child;\n });\n\n return (\n <div\n className={baseStyles}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n {clonedChildren}\n </div>\n );\n}\n\nButtonGroup.displayName = 'ButtonGroup';\n\nexport { ButtonGroup };\nexport type { ButtonGroupProps };\n"],"mappings":";;;;AAgCA,SAAS,YAAY,EACnB,OACA,SACA,MACA,WACA,UACA,cACA,gBACmB;CACnB,MAAM,aAAa,GACjB,6BACA,sCACA,yDACA,oCACA,mCACA,4BACA,SACF;CAEA,MAAM,iBAAiB,SAAS,IAAI,WAAW,UAAU;EACvD,IAAI,eAA8C,KAAK,GASrD,OAAO,aAAa,OAAO;GALzB;GACA;GACA;EAGyB,CAAK;EAElC,OAAO;CACT,CAAC;CAED,OACE,oBAAC,OAAD;EACE,WAAW;EACG;EACA;EAEb,UAAA;CACE,CAAA;AAET;AAEA,YAAY,cAAc"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
export type CardIntent = 'plain' | 'neutral' | 'info';
|
|
3
|
+
export interface CardProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
intent?: CardIntent;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* A content surface that standardizes card color, border, radius, and padding
|
|
8
|
+
* while leaving content and layout to the consuming feature.
|
|
9
|
+
*/
|
|
10
|
+
export declare const Card: import("react").ForwardRefExoticComponent<CardProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region packages/components/src/components/Card/Card.tsx
|
|
5
|
+
var intentClasses = {
|
|
6
|
+
plain: "border-muted bg-elevated",
|
|
7
|
+
neutral: "border-muted bg-surface-level-2",
|
|
8
|
+
info: "border-brand-subtle bg-brand-subtle"
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* A content surface that standardizes card color, border, radius, and padding
|
|
12
|
+
* while leaving content and layout to the consuming feature.
|
|
13
|
+
*/
|
|
14
|
+
var Card = forwardRef(({ intent = "neutral", className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
15
|
+
ref,
|
|
16
|
+
className: cn("rounded-lg border p-space-4", intentClasses[intent], className),
|
|
17
|
+
...props
|
|
18
|
+
}));
|
|
19
|
+
Card.displayName = "Card";
|
|
20
|
+
//#endregion
|
|
21
|
+
export { Card };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=Card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.js","names":[],"sources":["../../../src/components/Card/Card.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react';\n\nimport { cn } from '../../utils/cn';\n\nexport type CardIntent = 'plain' | 'neutral' | 'info';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n intent?: CardIntent;\n}\n\nconst intentClasses: Record<CardIntent, string> = {\n plain: 'border-muted bg-elevated',\n neutral: 'border-muted bg-surface-level-2',\n info: 'border-brand-subtle bg-brand-subtle',\n};\n\n/**\n * A content surface that standardizes card color, border, radius, and padding\n * while leaving content and layout to the consuming feature.\n */\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ intent = 'neutral', className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border p-space-4',\n intentClasses[intent],\n className\n )}\n {...props}\n />\n )\n);\n\nCard.displayName = 'Card';\n"],"mappings":";;;;AAUA,IAAM,gBAA4C;CAChD,OAAO;CACP,SAAS;CACT,MAAM;AACR;;;;;AAMA,IAAa,OAAO,YACjB,EAAE,SAAS,WAAW,WAAW,GAAG,SAAS,QAC5C,oBAAC,OAAD;CACO;CACL,WAAW,GACT,+BACA,cAAc,SACd,SACF;CACA,GAAI;AACL,CAAA,CAEL;AAEA,KAAK,cAAc"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type ChartCardSkeletonVariant } from './ChartCardSkeleton.js';
|
|
3
|
+
export interface ChartCardActionButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'color'> {
|
|
4
|
+
/** Accessible label and tooltip text. */
|
|
5
|
+
label?: string;
|
|
6
|
+
}
|
|
7
|
+
export type ChartCardVariant = 'default' | 'full-width';
|
|
8
|
+
export type ChartCardState = 'ready' | 'loading' | 'error';
|
|
9
|
+
export interface ChartCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
10
|
+
/** Visible chart title rendered in the card header. */
|
|
11
|
+
title: ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Optional secondary text rendered beneath the title. Truncated to a single
|
|
14
|
+
* line to match the title's overflow behavior.
|
|
15
|
+
*/
|
|
16
|
+
description?: ReactNode;
|
|
17
|
+
/** Visual state of the card. Fetching and retry behavior remain external. */
|
|
18
|
+
state?: ChartCardState;
|
|
19
|
+
/** Chart-shaped loading state. Omit for the generic placeholder. */
|
|
20
|
+
skeletonVariant?: ChartCardSkeletonVariant;
|
|
21
|
+
/** Size the loading plot to match a compact or fixed-height chart. */
|
|
22
|
+
skeletonClassName?: string;
|
|
23
|
+
/** Layout state for the card. Full-width cards hide their move handle. */
|
|
24
|
+
variant?: ChartCardVariant;
|
|
25
|
+
/** Whether to show the chart's move handle. Requires dragHandleProps. */
|
|
26
|
+
isMovable?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Props for the move handle. Pass the listeners and attributes from the
|
|
29
|
+
* dashboard's drag-and-drop implementation; the card owns only the visual
|
|
30
|
+
* affordance.
|
|
31
|
+
*/
|
|
32
|
+
dragHandleProps?: ChartCardActionButtonProps;
|
|
33
|
+
/** Props for the optional expand button. Expansion state remains external. */
|
|
34
|
+
expandButtonProps?: ChartCardActionButtonProps;
|
|
35
|
+
/** Props for the optional close button. Closing behavior remains external. */
|
|
36
|
+
closeButtonProps?: ChartCardActionButtonProps;
|
|
37
|
+
/** Feature-owned controls rendered in the top-right header action area. */
|
|
38
|
+
headerActions?: ReactNode;
|
|
39
|
+
/**
|
|
40
|
+
* Feature-owned menu items rendered inside the card's overflow menu. The
|
|
41
|
+
* card supplies the trigger, positioning, and menu surface.
|
|
42
|
+
*/
|
|
43
|
+
menuItems?: ReactNode;
|
|
44
|
+
/** Classes applied to the chart-and-legend content region. */
|
|
45
|
+
contentClassName?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A lightweight, chart-library-agnostic container for dashboard
|
|
49
|
+
* visualizations. ChartCard standardizes the shell and header actions while
|
|
50
|
+
* leaving data fetching, chart rendering, drag behavior, and expansion
|
|
51
|
+
* behavior to the consuming feature.
|
|
52
|
+
*/
|
|
53
|
+
export declare const ChartCard: import("react").ForwardRefExoticComponent<ChartCardProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { Text } from "../Text/Text.js";
|
|
3
|
+
import { DotsSixVerticalIcon, XCloseIcon } from "../../icons/PaddedPhosphorIcons.js";
|
|
4
|
+
import { IconButton } from "../IconButton/IconButton.js";
|
|
5
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../DropdownMenu/DropdownMenu.js";
|
|
6
|
+
import { EmptyState } from "../EmptyState/EmptyState.js";
|
|
7
|
+
import { Skeleton } from "../Skeleton/Skeleton.js";
|
|
8
|
+
import { ChartCardSkeleton } from "./ChartCardSkeleton.js";
|
|
9
|
+
import { forwardRef, useId } from "react";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { WarningIcon } from "@phosphor-icons/react/dist/ssr/Warning";
|
|
12
|
+
import { ArrowsInSimpleIcon } from "@phosphor-icons/react/dist/ssr/ArrowsInSimple";
|
|
13
|
+
import { ArrowsOutSimpleIcon } from "@phosphor-icons/react/dist/ssr/ArrowsOutSimple";
|
|
14
|
+
import { DotsThreeVerticalIcon } from "@phosphor-icons/react/dist/ssr/DotsThreeVertical";
|
|
15
|
+
//#region packages/components/src/components/ChartCard/ChartCard.tsx
|
|
16
|
+
var ChartCardLoadingState = () => /* @__PURE__ */ jsxs("div", {
|
|
17
|
+
role: "status",
|
|
18
|
+
className: "flex min-h-[13.5rem] flex-1 flex-col gap-space-2",
|
|
19
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
20
|
+
className: "relative min-h-0 flex-1",
|
|
21
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "size-full rounded-md" }), /* @__PURE__ */ jsx(Text, {
|
|
22
|
+
variant: "sm",
|
|
23
|
+
color: "placeholder",
|
|
24
|
+
className: "absolute inset-0 flex items-center justify-center",
|
|
25
|
+
children: "Loading..."
|
|
26
|
+
})]
|
|
27
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
28
|
+
"aria-hidden": "true",
|
|
29
|
+
className: "flex min-w-0 items-center gap-space-2",
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-20" }),
|
|
32
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24" }),
|
|
33
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-40" }),
|
|
34
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-12" })
|
|
35
|
+
]
|
|
36
|
+
})]
|
|
37
|
+
});
|
|
38
|
+
var ChartCardErrorState = () => /* @__PURE__ */ jsx("div", {
|
|
39
|
+
role: "alert",
|
|
40
|
+
className: "flex min-h-0 flex-1 rounded-md",
|
|
41
|
+
children: /* @__PURE__ */ jsx(EmptyState, {
|
|
42
|
+
icon: WarningIcon,
|
|
43
|
+
iconWeight: "fill",
|
|
44
|
+
title: "There was an error while loading the chart.",
|
|
45
|
+
description: "Refresh the page to try again.",
|
|
46
|
+
className: "flex-1",
|
|
47
|
+
size: "sm"
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* A lightweight, chart-library-agnostic container for dashboard
|
|
52
|
+
* visualizations. ChartCard standardizes the shell and header actions while
|
|
53
|
+
* leaving data fetching, chart rendering, drag behavior, and expansion
|
|
54
|
+
* behavior to the consuming feature.
|
|
55
|
+
*/
|
|
56
|
+
var ChartCard = forwardRef(({ title, description, children, state = "ready", skeletonVariant, skeletonClassName, variant = "default", isMovable = false, dragHandleProps, expandButtonProps, closeButtonProps, headerActions, menuItems, className, contentClassName, "aria-labelledby": ariaLabelledBy, "aria-busy": ariaBusy, ...props }, ref) => {
|
|
57
|
+
const titleId = useId();
|
|
58
|
+
const isFullWidth = variant === "full-width";
|
|
59
|
+
const isLoading = state === "loading";
|
|
60
|
+
const showDragHandle = isMovable && dragHandleProps != null && !isFullWidth && !isLoading;
|
|
61
|
+
const { label: dragHandleLabel = "Move chart", className: dragHandleClassName, onClick: onDragHandleClick, ...dragButtonProps } = dragHandleProps ?? {};
|
|
62
|
+
const { label: expandButtonLabel = isFullWidth ? "Minimize chart" : "Expand chart", className: expandButtonClassName, onClick: onExpandClick, ...expandActionProps } = expandButtonProps ?? {};
|
|
63
|
+
const { label: closeButtonLabel = "Close chart", className: closeButtonClassName, onClick: onCloseClick, ...closeActionProps } = closeButtonProps ?? {};
|
|
64
|
+
return /* @__PURE__ */ jsxs("section", {
|
|
65
|
+
ref,
|
|
66
|
+
"aria-labelledby": ariaLabelledBy ?? titleId,
|
|
67
|
+
"aria-busy": ariaBusy ?? (isLoading || void 0),
|
|
68
|
+
className: cn("flex min-w-0 flex-col overflow-hidden border border-muted bg-surface-level-1", isFullWidth && "w-full", className),
|
|
69
|
+
...props,
|
|
70
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
71
|
+
className: "flex min-w-0 items-center justify-between gap-space-3 pl-space-3 pr-space-2 pt-space-2",
|
|
72
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
73
|
+
className: "flex min-w-0 flex-1 items-center",
|
|
74
|
+
children: [showDragHandle && /* @__PURE__ */ jsx(IconButton, {
|
|
75
|
+
...dragButtonProps,
|
|
76
|
+
icon: DotsSixVerticalIcon,
|
|
77
|
+
iconWeight: "regular",
|
|
78
|
+
label: dragHandleLabel,
|
|
79
|
+
size: "xs",
|
|
80
|
+
variant: "plain",
|
|
81
|
+
color: "secondary",
|
|
82
|
+
iconClassName: "size-4 text-icon-primary",
|
|
83
|
+
className: cn("cursor-grab touch-none active:cursor-grabbing", dragHandleClassName),
|
|
84
|
+
onClick: (event) => {
|
|
85
|
+
event.stopPropagation();
|
|
86
|
+
onDragHandleClick?.(event);
|
|
87
|
+
}
|
|
88
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
89
|
+
className: "flex min-w-0 flex-1 flex-col gap-space-1",
|
|
90
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
91
|
+
id: titleId,
|
|
92
|
+
as: "h3",
|
|
93
|
+
variant: "sm",
|
|
94
|
+
weight: "semibold",
|
|
95
|
+
className: "min-w-0 truncate",
|
|
96
|
+
children: title
|
|
97
|
+
}), description != null && description !== "" && /* @__PURE__ */ jsx(Text, {
|
|
98
|
+
variant: "xs",
|
|
99
|
+
color: "quaternary",
|
|
100
|
+
className: "min-w-0 truncate",
|
|
101
|
+
children: description
|
|
102
|
+
})]
|
|
103
|
+
})]
|
|
104
|
+
}), !isLoading && /* @__PURE__ */ jsxs("div", {
|
|
105
|
+
className: cn("flex shrink-0 items-center", Boolean(headerActions) && "gap-space-1"),
|
|
106
|
+
children: [
|
|
107
|
+
!!headerActions && /* @__PURE__ */ jsx("div", {
|
|
108
|
+
className: "flex items-center pr-space-1",
|
|
109
|
+
children: headerActions
|
|
110
|
+
}),
|
|
111
|
+
expandButtonProps != null && /* @__PURE__ */ jsx(IconButton, {
|
|
112
|
+
...expandActionProps,
|
|
113
|
+
icon: isFullWidth ? ArrowsInSimpleIcon : ArrowsOutSimpleIcon,
|
|
114
|
+
label: expandButtonLabel,
|
|
115
|
+
size: "xs",
|
|
116
|
+
variant: "plain",
|
|
117
|
+
color: "secondary",
|
|
118
|
+
iconClassName: "size-4 text-icon-primary",
|
|
119
|
+
className: expandButtonClassName,
|
|
120
|
+
onClick: (event) => {
|
|
121
|
+
event.stopPropagation();
|
|
122
|
+
onExpandClick?.(event);
|
|
123
|
+
}
|
|
124
|
+
}),
|
|
125
|
+
!!menuItems && /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(DropdownMenuTrigger, {
|
|
126
|
+
asChild: true,
|
|
127
|
+
children: /* @__PURE__ */ jsx(IconButton, {
|
|
128
|
+
icon: DotsThreeVerticalIcon,
|
|
129
|
+
iconWeight: "regular",
|
|
130
|
+
label: "More chart actions",
|
|
131
|
+
size: "xs",
|
|
132
|
+
variant: "plain",
|
|
133
|
+
color: "secondary",
|
|
134
|
+
iconClassName: "size-4 text-icon-primary",
|
|
135
|
+
onClick: (event) => event.stopPropagation()
|
|
136
|
+
})
|
|
137
|
+
}), /* @__PURE__ */ jsx(DropdownMenuContent, {
|
|
138
|
+
align: "end",
|
|
139
|
+
preventClickThrough: true,
|
|
140
|
+
onClick: (event) => event.stopPropagation(),
|
|
141
|
+
children: menuItems
|
|
142
|
+
})] }),
|
|
143
|
+
closeButtonProps != null && /* @__PURE__ */ jsx(IconButton, {
|
|
144
|
+
...closeActionProps,
|
|
145
|
+
icon: XCloseIcon,
|
|
146
|
+
label: closeButtonLabel,
|
|
147
|
+
size: "xs",
|
|
148
|
+
variant: "plain",
|
|
149
|
+
color: "secondary",
|
|
150
|
+
iconClassName: "text-icon-primary",
|
|
151
|
+
className: closeButtonClassName,
|
|
152
|
+
onClick: (event) => {
|
|
153
|
+
event.stopPropagation();
|
|
154
|
+
onCloseClick?.(event);
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
]
|
|
158
|
+
})]
|
|
159
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
160
|
+
className: cn("flex min-h-0 flex-1 flex-col gap-space-2 px-space-3 py-space-2", contentClassName),
|
|
161
|
+
children: state === "loading" ? skeletonVariant ? /* @__PURE__ */ jsx(ChartCardSkeleton, {
|
|
162
|
+
variant: skeletonVariant,
|
|
163
|
+
className: skeletonClassName
|
|
164
|
+
}) : /* @__PURE__ */ jsx(ChartCardLoadingState, {}) : state === "error" ? /* @__PURE__ */ jsx(ChartCardErrorState, {}) : children
|
|
165
|
+
})]
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
ChartCard.displayName = "ChartCard";
|
|
169
|
+
//#endregion
|
|
170
|
+
export { ChartCard };
|
|
171
|
+
|
|
172
|
+
//# sourceMappingURL=ChartCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartCard.js","names":[],"sources":["../../../src/components/ChartCard/ChartCard.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\n\nimport { ArrowsInSimpleIcon } from '@phosphor-icons/react/dist/ssr/ArrowsInSimple';\nimport { ArrowsOutSimpleIcon } from '@phosphor-icons/react/dist/ssr/ArrowsOutSimple';\nimport { DotsThreeVerticalIcon } from '@phosphor-icons/react/dist/ssr/DotsThreeVertical';\nimport { WarningIcon } from '@phosphor-icons/react/dist/ssr/Warning';\n\nimport {\n DotsSixVerticalIcon,\n XCloseIcon,\n} from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from '../DropdownMenu';\nimport { EmptyState } from '../EmptyState';\nimport { IconButton } from '../IconButton';\nimport { Skeleton } from '../Skeleton';\nimport { Text } from '../Text';\nimport {\n ChartCardSkeleton,\n type ChartCardSkeletonVariant,\n} from './ChartCardSkeleton';\n\nexport interface ChartCardActionButtonProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'children' | 'color'\n> {\n /** Accessible label and tooltip text. */\n label?: string;\n}\n\nexport type ChartCardVariant = 'default' | 'full-width';\n\nexport type ChartCardState = 'ready' | 'loading' | 'error';\n\nconst ChartCardLoadingState = () => (\n <div\n role=\"status\"\n className=\"flex min-h-[13.5rem] flex-1 flex-col gap-space-2\"\n >\n <div className=\"relative min-h-0 flex-1\">\n <Skeleton className=\"size-full rounded-md\" />\n <Text\n variant=\"sm\"\n color=\"placeholder\"\n className=\"absolute inset-0 flex items-center justify-center\"\n >\n Loading...\n </Text>\n </div>\n <div aria-hidden=\"true\" className=\"flex min-w-0 items-center gap-space-2\">\n <Skeleton className=\"h-4 w-20\" />\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-40\" />\n <Skeleton className=\"h-4 w-12\" />\n </div>\n </div>\n);\n\nconst ChartCardErrorState = () => (\n <div role=\"alert\" className=\"flex min-h-0 flex-1 rounded-md\">\n <EmptyState\n icon={WarningIcon}\n iconWeight=\"fill\"\n title=\"There was an error while loading the chart.\"\n description=\"Refresh the page to try again.\"\n className=\"flex-1\"\n size=\"sm\"\n />\n </div>\n);\n\nexport interface ChartCardProps extends Omit<\n HTMLAttributes<HTMLElement>,\n 'title'\n> {\n /** Visible chart title rendered in the card header. */\n title: ReactNode;\n /**\n * Optional secondary text rendered beneath the title. Truncated to a single\n * line to match the title's overflow behavior.\n */\n description?: ReactNode;\n /** Visual state of the card. Fetching and retry behavior remain external. */\n state?: ChartCardState;\n /** Chart-shaped loading state. Omit for the generic placeholder. */\n skeletonVariant?: ChartCardSkeletonVariant;\n /** Size the loading plot to match a compact or fixed-height chart. */\n skeletonClassName?: string;\n /** Layout state for the card. Full-width cards hide their move handle. */\n variant?: ChartCardVariant;\n /** Whether to show the chart's move handle. Requires dragHandleProps. */\n isMovable?: boolean;\n /**\n * Props for the move handle. Pass the listeners and attributes from the\n * dashboard's drag-and-drop implementation; the card owns only the visual\n * affordance.\n */\n dragHandleProps?: ChartCardActionButtonProps;\n /** Props for the optional expand button. Expansion state remains external. */\n expandButtonProps?: ChartCardActionButtonProps;\n /** Props for the optional close button. Closing behavior remains external. */\n closeButtonProps?: ChartCardActionButtonProps;\n /** Feature-owned controls rendered in the top-right header action area. */\n headerActions?: ReactNode;\n /**\n * Feature-owned menu items rendered inside the card's overflow menu. The\n * card supplies the trigger, positioning, and menu surface.\n */\n menuItems?: ReactNode;\n /** Classes applied to the chart-and-legend content region. */\n contentClassName?: string;\n}\n\n/**\n * A lightweight, chart-library-agnostic container for dashboard\n * visualizations. ChartCard standardizes the shell and header actions while\n * leaving data fetching, chart rendering, drag behavior, and expansion\n * behavior to the consuming feature.\n */\nexport const ChartCard = forwardRef<HTMLElement, ChartCardProps>(\n (\n {\n title,\n description,\n children,\n state = 'ready',\n skeletonVariant,\n skeletonClassName,\n variant = 'default',\n isMovable = false,\n dragHandleProps,\n expandButtonProps,\n closeButtonProps,\n headerActions,\n menuItems,\n className,\n contentClassName,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-busy': ariaBusy,\n ...props\n },\n ref\n ) => {\n const titleId = useId();\n const isFullWidth = variant === 'full-width';\n const isLoading = state === 'loading';\n const showDragHandle =\n isMovable && dragHandleProps != null && !isFullWidth && !isLoading;\n\n const {\n label: dragHandleLabel = 'Move chart',\n className: dragHandleClassName,\n onClick: onDragHandleClick,\n ...dragButtonProps\n } = dragHandleProps ?? {};\n const {\n label: expandButtonLabel = isFullWidth\n ? 'Minimize chart'\n : 'Expand chart',\n className: expandButtonClassName,\n onClick: onExpandClick,\n ...expandActionProps\n } = expandButtonProps ?? {};\n const {\n label: closeButtonLabel = 'Close chart',\n className: closeButtonClassName,\n onClick: onCloseClick,\n ...closeActionProps\n } = closeButtonProps ?? {};\n\n return (\n <section\n ref={ref}\n aria-labelledby={ariaLabelledBy ?? titleId}\n aria-busy={ariaBusy ?? (isLoading || undefined)}\n className={cn(\n 'flex min-w-0 flex-col overflow-hidden border border-muted bg-surface-level-1',\n isFullWidth && 'w-full',\n className\n )}\n {...props}\n >\n <div className=\"flex min-w-0 items-center justify-between gap-space-3 pl-space-3 pr-space-2 pt-space-2\">\n <div className=\"flex min-w-0 flex-1 items-center\">\n {showDragHandle && (\n <IconButton\n {...dragButtonProps}\n icon={DotsSixVerticalIcon}\n iconWeight=\"regular\"\n label={dragHandleLabel}\n size=\"xs\"\n variant=\"plain\"\n color=\"secondary\"\n iconClassName=\"size-4 text-icon-primary\"\n className={cn(\n 'cursor-grab touch-none active:cursor-grabbing',\n dragHandleClassName\n )}\n onClick={(event) => {\n event.stopPropagation();\n onDragHandleClick?.(event);\n }}\n />\n )}\n <div className=\"flex min-w-0 flex-1 flex-col gap-space-1\">\n <Text\n id={titleId}\n as=\"h3\"\n variant=\"sm\"\n weight=\"semibold\"\n className=\"min-w-0 truncate\"\n >\n {title}\n </Text>\n {description != null && description !== '' && (\n <Text\n variant=\"xs\"\n color=\"quaternary\"\n className=\"min-w-0 truncate\"\n >\n {description}\n </Text>\n )}\n </div>\n </div>\n\n {!isLoading && (\n <div\n className={cn(\n 'flex shrink-0 items-center',\n Boolean(headerActions) && 'gap-space-1'\n )}\n >\n {!!headerActions && (\n <div className=\"flex items-center pr-space-1\">\n {headerActions}\n </div>\n )}\n {expandButtonProps != null && (\n <IconButton\n {...expandActionProps}\n icon={isFullWidth ? ArrowsInSimpleIcon : ArrowsOutSimpleIcon}\n label={expandButtonLabel}\n size=\"xs\"\n variant=\"plain\"\n color=\"secondary\"\n iconClassName=\"size-4 text-icon-primary\"\n className={expandButtonClassName}\n onClick={(event) => {\n event.stopPropagation();\n onExpandClick?.(event);\n }}\n />\n )}\n {!!menuItems && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <IconButton\n icon={DotsThreeVerticalIcon}\n iconWeight=\"regular\"\n label=\"More chart actions\"\n size=\"xs\"\n variant=\"plain\"\n color=\"secondary\"\n iconClassName=\"size-4 text-icon-primary\"\n onClick={(event) => event.stopPropagation()}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n preventClickThrough\n onClick={(event) => event.stopPropagation()}\n >\n {menuItems}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n {closeButtonProps != null && (\n <IconButton\n {...closeActionProps}\n icon={XCloseIcon}\n label={closeButtonLabel}\n size=\"xs\"\n variant=\"plain\"\n color=\"secondary\"\n iconClassName=\"text-icon-primary\"\n className={closeButtonClassName}\n onClick={(event) => {\n event.stopPropagation();\n onCloseClick?.(event);\n }}\n />\n )}\n </div>\n )}\n </div>\n\n <div\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-space-2 px-space-3 py-space-2',\n contentClassName\n )}\n >\n {state === 'loading' ? (\n skeletonVariant ? (\n <ChartCardSkeleton\n variant={skeletonVariant}\n className={skeletonClassName}\n />\n ) : (\n <ChartCardLoadingState />\n )\n ) : state === 'error' ? (\n <ChartCardErrorState />\n ) : (\n children\n )}\n </div>\n </section>\n );\n }\n);\n\nChartCard.displayName = 'ChartCard';\n"],"mappings":";;;;;;;;;;;;;;;AA4CA,IAAM,8BACJ,qBAAC,OAAD;CACE,MAAK;CACL,WAAU;CAFZ,UAAA,CAIE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,uBAAwB,CAAA,GAC5C,oBAAC,MAAD;GACE,SAAQ;GACR,OAAM;GACN,WAAU;GACX,UAAA;EAEK,CAAA,CACH;CACL,CAAA,GAAA,qBAAC,OAAD;EAAK,eAAY;EAAO,WAAU;EAAlC,UAAA;GACE,oBAAC,UAAD,EAAU,WAAU,WAAY,CAAA;GAChC,oBAAC,UAAD,EAAU,WAAU,WAAY,CAAA;GAChC,oBAAC,UAAD,EAAU,WAAU,WAAY,CAAA;GAChC,oBAAC,UAAD,EAAU,WAAU,WAAY,CAAA;EAC7B;CACF,CAAA,CAAA;;AAGP,IAAM,4BACJ,oBAAC,OAAD;CAAK,MAAK;CAAQ,WAAU;CAC1B,UAAA,oBAAC,YAAD;EACE,MAAM;EACN,YAAW;EACX,OAAM;EACN,aAAY;EACZ,WAAU;EACV,MAAK;CACN,CAAA;AACE,CAAA;;;;;;;AAmDP,IAAa,YAAY,YAErB,EACE,OACA,aACA,UACA,QAAQ,SACR,iBACA,mBACA,UAAU,WACV,YAAY,OACZ,iBACA,mBACA,kBACA,eACA,WACA,WACA,kBACA,mBAAmB,gBACnB,aAAa,UACb,GAAG,SAEL,QACG;CACH,MAAM,UAAU,MAAM;CACtB,MAAM,cAAc,YAAY;CAChC,MAAM,YAAY,UAAU;CAC5B,MAAM,iBACJ,aAAa,mBAAmB,QAAQ,CAAC,eAAe,CAAC;CAE3D,MAAM,EACJ,OAAO,kBAAkB,cACzB,WAAW,qBACX,SAAS,mBACT,GAAG,oBACD,mBAAmB,CAAC;CACxB,MAAM,EACJ,OAAO,oBAAoB,cACvB,mBACA,gBACJ,WAAW,uBACX,SAAS,eACT,GAAG,sBACD,qBAAqB,CAAC;CAC1B,MAAM,EACJ,OAAO,mBAAmB,eAC1B,WAAW,sBACX,SAAS,cACT,GAAG,qBACD,oBAAoB,CAAC;CAEzB,OACE,qBAAC,WAAD;EACO;EACL,mBAAiB,kBAAkB;EACnC,aAAW,aAAa,aAAa,KAAA;EACrC,WAAW,GACT,gFACA,eAAe,UACf,SACF;EACA,GAAI;EATN,UAAA,CAWE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACG,kBACC,oBAAC,YAAD;KACE,GAAI;KACJ,MAAM;KACN,YAAW;KACX,OAAO;KACP,MAAK;KACL,SAAQ;KACR,OAAM;KACN,eAAc;KACd,WAAW,GACT,iDACA,mBACF;KACA,UAAU,UAAU;MAClB,MAAM,gBAAgB;MACtB,oBAAoB,KAAK;KAC3B;IACD,CAAA,GAEH,qBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,oBAAC,MAAD;MACE,IAAI;MACJ,IAAG;MACH,SAAQ;MACR,QAAO;MACP,WAAU;MAET,UAAA;KACG,CAAA,GACL,eAAe,QAAQ,gBAAgB,MACtC,oBAAC,MAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAET,UAAA;KACG,CAAA,CAEL;IACF,CAAA,CAAA;GAEJ,CAAA,GAAA,CAAC,aACA,qBAAC,OAAD;IACE,WAAW,GACT,8BACA,QAAQ,aAAa,KAAK,aAC5B;IAJF,UAAA;KAMG,CAAC,CAAC,iBACD,oBAAC,OAAD;MAAK,WAAU;MACZ,UAAA;KACE,CAAA;KAEN,qBAAqB,QACpB,oBAAC,YAAD;MACE,GAAI;MACJ,MAAM,cAAc,qBAAqB;MACzC,OAAO;MACP,MAAK;MACL,SAAQ;MACR,OAAM;MACN,eAAc;MACd,WAAW;MACX,UAAU,UAAU;OAClB,MAAM,gBAAgB;OACtB,gBAAgB,KAAK;MACvB;KACD,CAAA;KAEF,CAAC,CAAC,aACD,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,qBAAD;MAAqB,SAAA;MACnB,UAAA,oBAAC,YAAD;OACE,MAAM;OACN,YAAW;OACX,OAAM;OACN,MAAK;OACL,SAAQ;OACR,OAAM;OACN,eAAc;OACd,UAAU,UAAU,MAAM,gBAAgB;MAC3C,CAAA;KACkB,CAAA,GACrB,oBAAC,qBAAD;MACE,OAAM;MACN,qBAAA;MACA,UAAU,UAAU,MAAM,gBAAgB;MAEzC,UAAA;KACkB,CAAA,CACT,EAAA,CAAA;KAEf,oBAAoB,QACnB,oBAAC,YAAD;MACE,GAAI;MACJ,MAAM;MACN,OAAO;MACP,MAAK;MACL,SAAQ;MACR,OAAM;MACN,eAAc;MACd,WAAW;MACX,UAAU,UAAU;OAClB,MAAM,gBAAgB;OACtB,eAAe,KAAK;MACtB;KACD,CAAA;IAEA;GAEJ,CAAA,CAAA;EAEL,CAAA,GAAA,oBAAC,OAAD;GACE,WAAW,GACT,kEACA,gBACF;GAEC,UAAA,UAAU,YACT,kBACE,oBAAC,mBAAD;IACE,SAAS;IACT,WAAW;GACZ,CAAA,IAED,oBAAC,uBAAD,CAAwB,CAAA,IAExB,UAAU,UACZ,oBAAC,qBAAD,CAAsB,CAAA,IAEtB;EAEC,CAAA,CACE;;AAEb,CACF;AAEA,UAAU,cAAc"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
export type ChartCardSkeletonVariant = 'bar' | 'line' | 'donut' | 'metric' | 'sparkline';
|
|
3
|
+
export declare const ChartCardSkeleton: ({ variant, className, style, }: {
|
|
4
|
+
variant: ChartCardSkeletonVariant;
|
|
5
|
+
className?: string;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
}) => import("react").JSX.Element;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { Skeleton } from "../Skeleton/Skeleton.js";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region packages/components/src/components/ChartCard/ChartCardSkeleton.tsx
|
|
5
|
+
var BAR_HEIGHTS = [
|
|
6
|
+
"35%",
|
|
7
|
+
"62%",
|
|
8
|
+
"48%",
|
|
9
|
+
"78%",
|
|
10
|
+
"55%",
|
|
11
|
+
"70%",
|
|
12
|
+
"42%"
|
|
13
|
+
];
|
|
14
|
+
var LegendSkeleton = () => /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
"aria-hidden": "true",
|
|
16
|
+
className: "flex min-w-0 items-center gap-space-2",
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-20 motion-reduce:animate-none" }),
|
|
19
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24 motion-reduce:animate-none" }),
|
|
20
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-16 motion-reduce:animate-none" })
|
|
21
|
+
]
|
|
22
|
+
});
|
|
23
|
+
var Plot = ({ children }) => /* @__PURE__ */ jsx("div", {
|
|
24
|
+
className: "relative min-h-0 flex-1 border-b border-l border-muted",
|
|
25
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
26
|
+
className: "absolute inset-0 flex px-space-2",
|
|
27
|
+
children
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
var ChartCardSkeleton = ({ variant, className, style }) => /* @__PURE__ */ jsxs("div", {
|
|
31
|
+
role: "status",
|
|
32
|
+
"aria-label": "Loading chart",
|
|
33
|
+
style,
|
|
34
|
+
className: cn("flex min-h-[13.5rem] flex-1 flex-col gap-space-2", variant === "metric" && "min-h-0", className),
|
|
35
|
+
children: [
|
|
36
|
+
variant === "bar" && /* @__PURE__ */ jsx(Plot, { children: /* @__PURE__ */ jsx("div", {
|
|
37
|
+
className: "flex size-full items-end gap-space-2",
|
|
38
|
+
children: BAR_HEIGHTS.map((height, index) => /* @__PURE__ */ jsx(Skeleton, {
|
|
39
|
+
className: "min-w-0 flex-1 rounded-b-none rounded-t-md motion-reduce:animate-none",
|
|
40
|
+
style: { height }
|
|
41
|
+
}, index))
|
|
42
|
+
}) }),
|
|
43
|
+
(variant === "line" || variant === "sparkline") && /* @__PURE__ */ jsx(Plot, { children: /* @__PURE__ */ jsx(Skeleton, {
|
|
44
|
+
className: "size-full rounded-none motion-reduce:animate-none",
|
|
45
|
+
style: { clipPath: "polygon(0 63%, 20% 43%, 38% 56%, 60% 26%, 78% 40%, 100% 13%, 100% 17%, 78% 44%, 60% 30%, 38% 60%, 20% 47%, 0 67%)" }
|
|
46
|
+
}) }),
|
|
47
|
+
variant === "donut" && /* @__PURE__ */ jsx("div", {
|
|
48
|
+
className: "flex min-h-0 flex-1 items-center justify-center",
|
|
49
|
+
children: /* @__PURE__ */ jsx("div", { className: "size-32 animate-pulse rounded-full border-[1.5rem] border-muted motion-reduce:animate-none" })
|
|
50
|
+
}),
|
|
51
|
+
variant === "metric" && /* @__PURE__ */ jsxs("div", {
|
|
52
|
+
className: "flex min-h-0 flex-1 flex-col justify-center gap-space-2",
|
|
53
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-1/2 motion-reduce:animate-none" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-2/3 motion-reduce:animate-none" })]
|
|
54
|
+
}),
|
|
55
|
+
variant !== "metric" && /* @__PURE__ */ jsx(LegendSkeleton, {})
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
//#endregion
|
|
59
|
+
export { ChartCardSkeleton };
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=ChartCardSkeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartCardSkeleton.js","names":[],"sources":["../../../src/components/ChartCard/ChartCardSkeleton.tsx"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport { cn } from '../../utils/cn';\nimport { Skeleton } from '../Skeleton';\n\nexport type ChartCardSkeletonVariant =\n | 'bar'\n | 'line'\n | 'donut'\n | 'metric'\n | 'sparkline';\n\nconst BAR_HEIGHTS = ['35%', '62%', '48%', '78%', '55%', '70%', '42%'] as const;\n\nconst LegendSkeleton = () => (\n <div aria-hidden=\"true\" className=\"flex min-w-0 items-center gap-space-2\">\n <Skeleton className=\"h-4 w-20 motion-reduce:animate-none\" />\n <Skeleton className=\"h-4 w-24 motion-reduce:animate-none\" />\n <Skeleton className=\"h-4 w-16 motion-reduce:animate-none\" />\n </div>\n);\n\nconst Plot = ({ children }: { children: React.ReactNode }) => (\n <div className=\"relative min-h-0 flex-1 border-b border-l border-muted\">\n {/* Anchor percentage-sized marks to the plot even in auto-height cards. */}\n <div className=\"absolute inset-0 flex px-space-2\">{children}</div>\n </div>\n);\n\nexport const ChartCardSkeleton = ({\n variant,\n className,\n style,\n}: {\n variant: ChartCardSkeletonVariant;\n className?: string;\n style?: CSSProperties;\n}) => (\n <div\n role=\"status\"\n aria-label=\"Loading chart\"\n style={style}\n className={cn(\n 'flex min-h-[13.5rem] flex-1 flex-col gap-space-2',\n variant === 'metric' && 'min-h-0',\n className\n )}\n >\n {variant === 'bar' && (\n <Plot>\n <div className=\"flex size-full items-end gap-space-2\">\n {BAR_HEIGHTS.map((height, index) => (\n <Skeleton\n key={index}\n className=\"min-w-0 flex-1 rounded-b-none rounded-t-md motion-reduce:animate-none\"\n style={{ height }}\n />\n ))}\n </div>\n </Plot>\n )}\n {(variant === 'line' || variant === 'sparkline') && (\n <Plot>\n <Skeleton\n className=\"size-full rounded-none motion-reduce:animate-none\"\n style={{\n clipPath:\n 'polygon(0 63%, 20% 43%, 38% 56%, 60% 26%, 78% 40%, 100% 13%, 100% 17%, 78% 44%, 60% 30%, 38% 60%, 20% 47%, 0 67%)',\n }}\n />\n </Plot>\n )}\n {variant === 'donut' && (\n <div className=\"flex min-h-0 flex-1 items-center justify-center\">\n <div className=\"size-32 animate-pulse rounded-full border-[1.5rem] border-muted motion-reduce:animate-none\" />\n </div>\n )}\n {variant === 'metric' && (\n <div className=\"flex min-h-0 flex-1 flex-col justify-center gap-space-2\">\n <Skeleton className=\"h-9 w-1/2 motion-reduce:animate-none\" />\n <Skeleton className=\"h-4 w-2/3 motion-reduce:animate-none\" />\n </div>\n )}\n {variant !== 'metric' && <LegendSkeleton />}\n </div>\n);\n"],"mappings":";;;;AAYA,IAAM,cAAc;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAAK;AAEpE,IAAM,uBACJ,qBAAC,OAAD;CAAK,eAAY;CAAO,WAAU;CAAlC,UAAA;EACE,oBAAC,UAAD,EAAU,WAAU,sCAAuC,CAAA;EAC3D,oBAAC,UAAD,EAAU,WAAU,sCAAuC,CAAA;EAC3D,oBAAC,UAAD,EAAU,WAAU,sCAAuC,CAAA;CACxD;;AAGP,IAAM,QAAQ,EAAE,eACd,oBAAC,OAAD;CAAK,WAAU;CAEb,UAAA,oBAAC,OAAD;EAAK,WAAU;EAAoC;CAAc,CAAA;AAC9D,CAAA;AAGP,IAAa,qBAAqB,EAChC,SACA,WACA,YAMA,qBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACJ;CACP,WAAW,GACT,oDACA,YAAY,YAAY,WACxB,SACF;CARF,UAAA;EAUG,YAAY,SACX,oBAAC,MAAD,EAAA,UACE,oBAAC,OAAD;GAAK,WAAU;GACZ,UAAA,YAAY,KAAK,QAAQ,UACxB,oBAAC,UAAD;IAEE,WAAU;IACV,OAAO,EAAE,OAAO;GACjB,GAHM,KAGN,CACF;EACE,CAAA,EACD,CAAA;GAEN,YAAY,UAAU,YAAY,gBAClC,oBAAC,MAAD,EAAA,UACE,oBAAC,UAAD;GACE,WAAU;GACV,OAAO,EACL,UACE,oHACJ;EACD,CAAA,EACG,CAAA;EAEP,YAAY,WACX,oBAAC,OAAD;GAAK,WAAU;GACb,UAAA,oBAAC,OAAD,EAAK,WAAU,6FAA8F,CAAA;EAC1G,CAAA;EAEN,YAAY,YACX,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA,GAC5D,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA,CACzD;;EAEN,YAAY,YAAY,oBAAC,gBAAD,CAAiB,CAAA;CACvC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ChartCard } from './ChartCard.js';
|
|
2
|
+
export { ChartCardSkeleton } from './ChartCardSkeleton.js';
|
|
3
|
+
export type { ChartCardActionButtonProps, ChartCardProps, ChartCardState, ChartCardVariant, } from './ChartCard.js';
|
|
4
|
+
export type { ChartCardSkeletonVariant } from './ChartCardSkeleton.js';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
export type ChartLegendItem = {
|
|
3
|
+
id: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
value?: ReactNode;
|
|
6
|
+
secondaryValue?: ReactNode;
|
|
7
|
+
'aria-label'?: string;
|
|
8
|
+
markerColor?: string;
|
|
9
|
+
marker?: ReactNode;
|
|
10
|
+
selected?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type ChartLegendProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
|
|
13
|
+
items: readonly ChartLegendItem[];
|
|
14
|
+
layout?: 'inline' | 'list';
|
|
15
|
+
onItemClick?: (item: ChartLegendItem) => void;
|
|
16
|
+
/** Reports the legend item under the pointer or keyboard focus. */
|
|
17
|
+
onItemActiveChange?: (item: ChartLegendItem | null) => void;
|
|
18
|
+
};
|
|
19
|
+
export declare const ChartLegend: ({ layout, items, onItemActiveChange, ...props }: ChartLegendProps) => import("react").JSX.Element;
|