@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,28 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type VisualElementSize } from '../../utils/componentSizes.js';
|
|
3
|
+
type AvatarSize = VisualElementSize | 'lg' | 'xl';
|
|
4
|
+
type AvatarShape = 'circle' | 'square';
|
|
5
|
+
interface AvatarProps {
|
|
6
|
+
/** Outer box size: xxs=12px, xs=16px, sm=20px, md=24px, lg=36px, xl=48px. */
|
|
7
|
+
size?: AvatarSize;
|
|
8
|
+
shape?: AvatarShape;
|
|
9
|
+
/** Show a small notification dot in the top-right corner. */
|
|
10
|
+
badge?: boolean;
|
|
11
|
+
/** Wrap the avatar in a tooltip with this title. */
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
/** Extra classes on the avatar box. Can override size/text/color via `twMerge`. */
|
|
14
|
+
className?: string;
|
|
15
|
+
/** Text used for the initial and, unless `color` is set, the color hash. */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Renders an image instead of the initial when present. */
|
|
18
|
+
imageUrl?: string;
|
|
19
|
+
/** Overrides the color-from-string hash with an explicit gradient start color. */
|
|
20
|
+
color?: string;
|
|
21
|
+
/** Rendered instead of the initial when `label` is empty. */
|
|
22
|
+
fallbackIcon?: ReactNode;
|
|
23
|
+
/** Highlighted brand-fill state (e.g. the current user's own entry). */
|
|
24
|
+
active?: boolean;
|
|
25
|
+
}
|
|
26
|
+
declare const Avatar: import("react").ForwardRefExoticComponent<AvatarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
27
|
+
export { Avatar };
|
|
28
|
+
export type { AvatarProps, AvatarSize };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { VISUAL_ELEMENT_SIZES } from "../../utils/componentSizes.js";
|
|
3
|
+
import { getColorByString } from "../../utils/get-color-by-string.js";
|
|
4
|
+
import { Tooltip } from "../Tooltip/Tooltip.js";
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
|
+
import { sanitizeUrl } from "@braintree/sanitize-url";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
//#region packages/components/src/components/Avatar/Avatar.tsx
|
|
9
|
+
var BOX_SIZE = {
|
|
10
|
+
xxs: VISUAL_ELEMENT_SIZES.xxs.className,
|
|
11
|
+
xs: VISUAL_ELEMENT_SIZES.xs.className,
|
|
12
|
+
sm: VISUAL_ELEMENT_SIZES.sm.className,
|
|
13
|
+
md: VISUAL_ELEMENT_SIZES.md.className,
|
|
14
|
+
lg: "size-9",
|
|
15
|
+
xl: "size-12"
|
|
16
|
+
};
|
|
17
|
+
var TEXT_SIZE = {
|
|
18
|
+
xxs: "text-[0.625rem] leading-none",
|
|
19
|
+
xs: "text-xxs",
|
|
20
|
+
sm: "text-xs",
|
|
21
|
+
md: "text-sm",
|
|
22
|
+
lg: "text-lg",
|
|
23
|
+
xl: "text-xl"
|
|
24
|
+
};
|
|
25
|
+
var Avatar = forwardRef(({ size = "md", shape = "square", badge, tooltip, className, label, imageUrl, color, fallbackIcon, active }, ref) => {
|
|
26
|
+
const startColor = color ?? getColorByString(label);
|
|
27
|
+
const rounding = shape === "circle" ? "rounded-full" : "rounded-sm";
|
|
28
|
+
const inner = /* @__PURE__ */ jsxs("div", {
|
|
29
|
+
ref,
|
|
30
|
+
className: cn("relative inline-flex shrink-0 cursor-default items-center justify-center text-center font-medium uppercase text-white/90 transition-all", rounding, BOX_SIZE[size], TEXT_SIZE[size], active && "bg-brand", className),
|
|
31
|
+
style: active ? void 0 : { backgroundImage: `linear-gradient(to bottom right, ${startColor}, #aaaaaa)` },
|
|
32
|
+
children: [imageUrl ? /* @__PURE__ */ jsx("div", {
|
|
33
|
+
className: cn("absolute inset-0 size-full bg-cover bg-center", rounding),
|
|
34
|
+
style: { backgroundImage: `url(${sanitizeUrl(imageUrl)})` }
|
|
35
|
+
}) : label ? /* @__PURE__ */ jsx("span", { children: label.charAt(0) }) : fallbackIcon ?? null, badge && /* @__PURE__ */ jsx("div", { className: cn("absolute rounded-full border-current bg-error-strong outline-transparent", size === "xxs" ? "-right-0.5 -top-0.5 size-1.5 border" : "-right-1 -top-1 size-3 border-2") })]
|
|
36
|
+
});
|
|
37
|
+
if (tooltip) return /* @__PURE__ */ jsx(Tooltip, {
|
|
38
|
+
title: tooltip,
|
|
39
|
+
children: inner
|
|
40
|
+
});
|
|
41
|
+
return inner;
|
|
42
|
+
});
|
|
43
|
+
Avatar.displayName = "Avatar";
|
|
44
|
+
//#endregion
|
|
45
|
+
export { Avatar };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=Avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar.js","names":[],"sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n\nimport { cn } from '../../utils/cn';\nimport {\n VISUAL_ELEMENT_SIZES,\n type VisualElementSize,\n} from '../../utils/componentSizes';\nimport { getColorByString } from '../../utils/get-color-by-string';\nimport { Tooltip } from '../Tooltip';\n\ntype AvatarSize = VisualElementSize | 'lg' | 'xl';\ntype AvatarShape = 'circle' | 'square';\n\ninterface AvatarProps {\n /** Outer box size: xxs=12px, xs=16px, sm=20px, md=24px, lg=36px, xl=48px. */\n size?: AvatarSize;\n shape?: AvatarShape;\n /** Show a small notification dot in the top-right corner. */\n badge?: boolean;\n /** Wrap the avatar in a tooltip with this title. */\n tooltip?: string;\n /** Extra classes on the avatar box. Can override size/text/color via `twMerge`. */\n className?: string;\n /** Text used for the initial and, unless `color` is set, the color hash. */\n label: string;\n /** Renders an image instead of the initial when present. */\n imageUrl?: string;\n /** Overrides the color-from-string hash with an explicit gradient start color. */\n color?: string;\n /** Rendered instead of the initial when `label` is empty. */\n fallbackIcon?: ReactNode;\n /** Highlighted brand-fill state (e.g. the current user's own entry). */\n active?: boolean;\n}\n\n// The shared tiers use the visual-element scale. Identity-specific lg/xl tiers\n// remain larger so existing Avatar presentations retain their geometry.\nconst BOX_SIZE: Record<AvatarSize, 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-9',\n xl: 'size-12',\n};\n\nconst TEXT_SIZE: Record<AvatarSize, string> = {\n xxs: 'text-[0.625rem] leading-none',\n xs: 'text-xxs',\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-lg',\n xl: 'text-xl',\n};\n\nconst Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n size = 'md',\n shape = 'square',\n badge,\n tooltip,\n className,\n label,\n imageUrl,\n color,\n fallbackIcon,\n active,\n },\n ref\n ) => {\n const startColor = color ?? getColorByString(label);\n const rounding = shape === 'circle' ? 'rounded-full' : 'rounded-sm';\n\n const inner = (\n // The box is intentionally not `overflow-hidden` so the badge dot can\n // overflow the top-right corner. The image child clips itself instead.\n <div\n ref={ref}\n className={cn(\n 'relative inline-flex shrink-0 cursor-default items-center justify-center text-center font-medium uppercase text-white/90 transition-all',\n rounding,\n BOX_SIZE[size],\n TEXT_SIZE[size],\n active && 'bg-brand',\n className\n )}\n style={\n active\n ? undefined\n : {\n backgroundImage: `linear-gradient(to bottom right, ${startColor}, #aaaaaa)`,\n }\n }\n >\n {imageUrl ? (\n <div\n className={cn(\n 'absolute inset-0 size-full bg-cover bg-center',\n rounding\n )}\n style={{ backgroundImage: `url(${sanitizeUrl(imageUrl)})` }}\n />\n ) : label ? (\n <span>{label.charAt(0)}</span>\n ) : (\n (fallbackIcon ?? null)\n )}\n\n {badge && (\n <div\n className={cn(\n 'absolute rounded-full border-current bg-error-strong outline-transparent',\n size === 'xxs'\n ? '-right-0.5 -top-0.5 size-1.5 border'\n : '-right-1 -top-1 size-3 border-2'\n )}\n />\n )}\n </div>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{inner}</Tooltip>;\n }\n\n return inner;\n }\n);\n\nAvatar.displayName = 'Avatar';\n\nexport { Avatar };\nexport type { AvatarProps, AvatarSize };\n"],"mappings":";;;;;;;;AAwCA,IAAM,WAAuC;CAC3C,KAAK,qBAAqB,IAAI;CAC9B,IAAI,qBAAqB,GAAG;CAC5B,IAAI,qBAAqB,GAAG;CAC5B,IAAI,qBAAqB,GAAG;CAC5B,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,YAAwC;CAC5C,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,SAAS,YAEX,EACE,OAAO,MACP,QAAQ,UACR,OACA,SACA,WACA,OACA,UACA,OACA,cACA,UAEF,QACG;CACH,MAAM,aAAa,SAAS,iBAAiB,KAAK;CAClD,MAAM,WAAW,UAAU,WAAW,iBAAiB;CAEvD,MAAM,QAGJ,qBAAC,OAAD;EACO;EACL,WAAW,GACT,2IACA,UACA,SAAS,OACT,UAAU,OACV,UAAU,YACV,SACF;EACA,OACE,SACI,KAAA,IACA,EACE,iBAAiB,oCAAoC,WAAW,YAClE;EAfR,UAAA,CAkBG,WACC,oBAAC,OAAD;GACE,WAAW,GACT,iDACA,QACF;GACA,OAAO,EAAE,iBAAiB,OAAO,YAAY,QAAQ,EAAE,GAAG;EAC3D,CAAA,IACC,QACF,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAO,CAAC,EAAQ,CAAA,IAE5B,gBAAgB,MAGlB,SACC,oBAAC,OAAD,EACE,WAAW,GACT,4EACA,SAAS,QACL,wCACA,iCACN,EACD,CAAA,CAEA;;CAGP,IAAI,SACF,OAAO,oBAAC,SAAD;EAAS,OAAO;EAAU,UAAA;CAAe,CAAA;CAGlD,OAAO;AACT,CACF;AAEA,OAAO,cAAc"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { IconComponent, IconWeight } from '../../utils/icon-types.js';
|
|
3
|
+
import { type TextProps } from '../Text/index.js';
|
|
4
|
+
interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/** Badge style preset */
|
|
6
|
+
variant?: 'default' | 'manifestPreview';
|
|
7
|
+
rounded?: 'full' | 'none' | 'xs' | 'sm';
|
|
8
|
+
/** Badge color scheme */
|
|
9
|
+
color?: 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'special' | 'plain';
|
|
10
|
+
/** Text-label height. */
|
|
11
|
+
size?: 'xxs' | 'xs' | 'sm' | 'md';
|
|
12
|
+
/** Left decorator icon */
|
|
13
|
+
leftDecorator?: IconComponent;
|
|
14
|
+
/** Right decorator icon */
|
|
15
|
+
rightDecorator?: IconComponent;
|
|
16
|
+
/** Phosphor weight used for decorator icons. */
|
|
17
|
+
iconWeight?: IconWeight;
|
|
18
|
+
/** Badge content */
|
|
19
|
+
children?: string | ReactElement<SVGSVGElement>;
|
|
20
|
+
/** Font weight of text content */
|
|
21
|
+
textWeight?: TextProps['weight'];
|
|
22
|
+
}
|
|
23
|
+
declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
24
|
+
export { Badge };
|
|
25
|
+
export type { BadgeProps };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { Text } from "../Text/Text.js";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region packages/components/src/components/Badge/Badge.tsx
|
|
6
|
+
/** Exact outer heights: xxs/xs=16px, sm=20px, md=24px. */
|
|
7
|
+
var SIZE_BOX_CLASSES = {
|
|
8
|
+
xxs: "h-4 gap-space-1 px-space-1",
|
|
9
|
+
xs: "h-4 gap-space-1 px-space-1",
|
|
10
|
+
sm: "h-5 gap-space-1 px-space-1",
|
|
11
|
+
md: "h-6 gap-space-1 px-space-2"
|
|
12
|
+
};
|
|
13
|
+
var SIZE_TEXT_VARIANT = {
|
|
14
|
+
xxs: "xs",
|
|
15
|
+
xs: "xs",
|
|
16
|
+
sm: "sm",
|
|
17
|
+
md: "sm"
|
|
18
|
+
};
|
|
19
|
+
var SIZE_DEFAULT_WEIGHT = {
|
|
20
|
+
xxs: "normal",
|
|
21
|
+
xs: "medium",
|
|
22
|
+
sm: "medium",
|
|
23
|
+
md: "medium"
|
|
24
|
+
};
|
|
25
|
+
var SIZE_ICON_CLASSES = {
|
|
26
|
+
xxs: "size-3",
|
|
27
|
+
xs: "size-3",
|
|
28
|
+
sm: "size-3",
|
|
29
|
+
md: "size-4"
|
|
30
|
+
};
|
|
31
|
+
var Badge = forwardRef(({ variant = "default", color, size, rounded = "full", leftDecorator: LeftIcon, rightDecorator: RightIcon, iconWeight, className, children, textWeight, ...props }, ref) => {
|
|
32
|
+
const isString = typeof children === "string";
|
|
33
|
+
const isManifestPreview = variant === "manifestPreview";
|
|
34
|
+
const resolvedColor = color ?? (isManifestPreview ? "plain" : "secondary");
|
|
35
|
+
const resolvedSize = size ?? (isManifestPreview ? "sm" : "md");
|
|
36
|
+
const resolvedTextWeight = textWeight ?? SIZE_DEFAULT_WEIGHT[resolvedSize];
|
|
37
|
+
const baseStyles = cn("box-border inline-flex items-center justify-center border border-transparent", SIZE_BOX_CLASSES[resolvedSize], {
|
|
38
|
+
"rounded-xs": rounded === "xs" || rounded === "sm" || rounded === "none",
|
|
39
|
+
"rounded-full": rounded === "full",
|
|
40
|
+
border: resolvedColor === "plain"
|
|
41
|
+
});
|
|
42
|
+
const getColorStyles = () => {
|
|
43
|
+
switch (resolvedColor) {
|
|
44
|
+
case "primary": return "bg-brand-secondary text-brand-primary";
|
|
45
|
+
case "success": return "bg-success-secondary text-success-secondary";
|
|
46
|
+
case "error": return "bg-error-secondary text-error-secondary";
|
|
47
|
+
case "warning": return "bg-warning-secondary text-warning-secondary";
|
|
48
|
+
case "special": return "bg-ls-acid-50 text-ls-acid-700 dark:bg-ls-acid-200";
|
|
49
|
+
case "plain": return "bg-primary text-primary border-secondary";
|
|
50
|
+
default: return "bg-tertiary text-secondary";
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
54
|
+
ref,
|
|
55
|
+
className: cn(baseStyles, getColorStyles(), isManifestPreview && "min-w-0 max-w-full overflow-hidden whitespace-nowrap [&>span]:truncate", isManifestPreview && color == null && "bg-transparent text-secondary", className),
|
|
56
|
+
...props,
|
|
57
|
+
children: [
|
|
58
|
+
LeftIcon && /* @__PURE__ */ jsx(LeftIcon, {
|
|
59
|
+
"aria-hidden": true,
|
|
60
|
+
className: cn(SIZE_ICON_CLASSES[resolvedSize], "flex-shrink-0"),
|
|
61
|
+
weight: iconWeight
|
|
62
|
+
}),
|
|
63
|
+
isString ? /* @__PURE__ */ jsx(Text, {
|
|
64
|
+
as: "span",
|
|
65
|
+
variant: SIZE_TEXT_VARIANT[resolvedSize],
|
|
66
|
+
weight: resolvedTextWeight,
|
|
67
|
+
className: "tracking-tight",
|
|
68
|
+
children
|
|
69
|
+
}) : children,
|
|
70
|
+
RightIcon && /* @__PURE__ */ jsx(RightIcon, {
|
|
71
|
+
"aria-hidden": true,
|
|
72
|
+
className: cn(SIZE_ICON_CLASSES[resolvedSize], "flex-shrink-0"),
|
|
73
|
+
weight: iconWeight
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
Badge.displayName = "Badge";
|
|
79
|
+
//#endregion
|
|
80
|
+
export { Badge };
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=Badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.js","names":[],"sources":["../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { forwardRef } from 'react';\n\nimport { cn } from '../../utils/cn';\nimport type { IconComponent, IconWeight } from '../../utils/icon-types';\nimport { Text, type TextProps } from '../Text';\n\n// Only allow string or SVG icon as children\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Badge style preset */\n variant?: 'default' | 'manifestPreview';\n rounded?: 'full' | 'none' | 'xs' | 'sm';\n /** Badge color scheme */\n color?:\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'warning'\n | 'special'\n | 'plain';\n /** Text-label height. */\n size?: 'xxs' | 'xs' | 'sm' | 'md';\n /** Left decorator icon */\n leftDecorator?: IconComponent;\n\n /** Right decorator icon */\n rightDecorator?: IconComponent;\n\n /** Phosphor weight used for decorator icons. */\n iconWeight?: IconWeight;\n\n /** Badge content */\n children?: string | ReactElement<SVGSVGElement>;\n\n /** Font weight of text content */\n textWeight?: TextProps['weight'];\n}\n\ntype BadgeSize = NonNullable<BadgeProps['size']>;\n\n/** Exact outer heights: xxs/xs=16px, sm=20px, md=24px. */\nconst SIZE_BOX_CLASSES: Record<BadgeSize, string> = {\n xxs: 'h-4 gap-space-1 px-space-1',\n xs: 'h-4 gap-space-1 px-space-1',\n sm: 'h-5 gap-space-1 px-space-1',\n md: 'h-6 gap-space-1 px-space-2',\n};\n\nconst SIZE_TEXT_VARIANT: Record<BadgeSize, 'xs' | 'sm'> = {\n xxs: 'xs',\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n};\n\nconst SIZE_DEFAULT_WEIGHT: Record<\n BadgeSize,\n NonNullable<TextProps['weight']>\n> = {\n xxs: 'normal',\n xs: 'medium',\n sm: 'medium',\n md: 'medium',\n};\n\nconst SIZE_ICON_CLASSES: Record<BadgeSize, string> = {\n xxs: 'size-3',\n xs: 'size-3',\n sm: 'size-3',\n md: 'size-4',\n};\n\nconst Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n variant = 'default',\n color,\n size,\n rounded = 'full',\n leftDecorator: LeftIcon,\n rightDecorator: RightIcon,\n iconWeight,\n className,\n children,\n textWeight,\n ...props\n },\n ref\n ) => {\n const isString = typeof children === 'string';\n const isManifestPreview = variant === 'manifestPreview';\n const resolvedColor = color ?? (isManifestPreview ? 'plain' : 'secondary');\n const resolvedSize = size ?? (isManifestPreview ? 'sm' : 'md');\n const resolvedTextWeight = textWeight ?? SIZE_DEFAULT_WEIGHT[resolvedSize];\n const baseStyles = cn(\n 'box-border inline-flex items-center justify-center border border-transparent',\n SIZE_BOX_CLASSES[resolvedSize],\n {\n // TODO: we're only going to have 2 variants for the rounded prop. need to remove/rename the rounded prop\n 'rounded-xs':\n rounded === 'xs' || rounded === 'sm' || rounded === 'none',\n 'rounded-full': rounded === 'full',\n border: resolvedColor === 'plain',\n }\n );\n\n const getColorStyles = () => {\n switch (resolvedColor) {\n case 'primary':\n return 'bg-brand-secondary text-brand-primary';\n case 'success':\n return 'bg-success-secondary text-success-secondary';\n case 'error':\n return 'bg-error-secondary text-error-secondary';\n case 'warning':\n return 'bg-warning-secondary text-warning-secondary';\n case 'special':\n return 'bg-ls-acid-50 text-ls-acid-700 dark:bg-ls-acid-200';\n case 'plain':\n return 'bg-primary text-primary border-secondary';\n case 'secondary':\n default:\n return 'bg-tertiary text-secondary';\n }\n };\n\n return (\n <span\n ref={ref}\n className={cn(\n baseStyles,\n getColorStyles(),\n isManifestPreview &&\n 'min-w-0 max-w-full overflow-hidden whitespace-nowrap [&>span]:truncate',\n isManifestPreview && color == null && 'bg-transparent text-secondary',\n className\n )}\n {...props}\n >\n {LeftIcon && (\n <LeftIcon\n aria-hidden\n className={cn(SIZE_ICON_CLASSES[resolvedSize], 'flex-shrink-0')}\n weight={iconWeight}\n />\n )}\n {isString ? (\n <Text\n as=\"span\"\n variant={SIZE_TEXT_VARIANT[resolvedSize]}\n weight={resolvedTextWeight}\n className=\"tracking-tight\"\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {RightIcon && (\n <RightIcon\n aria-hidden\n className={cn(SIZE_ICON_CLASSES[resolvedSize], 'flex-shrink-0')}\n weight={iconWeight}\n />\n )}\n </span>\n );\n }\n);\n\nBadge.displayName = 'Badge';\n\nexport { Badge };\nexport type { BadgeProps };\n"],"mappings":";;;;;;AA0CA,IAAM,mBAA8C;CAClD,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,oBAAoD;CACxD,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,sBAGF;CACF,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,oBAA+C;CACnD,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,QAAQ,YAEV,EACE,UAAU,WACV,OACA,MACA,UAAU,QACV,eAAe,UACf,gBAAgB,WAChB,YACA,WACA,UACA,YACA,GAAG,SAEL,QACG;CACH,MAAM,WAAW,OAAO,aAAa;CACrC,MAAM,oBAAoB,YAAY;CACtC,MAAM,gBAAgB,UAAU,oBAAoB,UAAU;CAC9D,MAAM,eAAe,SAAS,oBAAoB,OAAO;CACzD,MAAM,qBAAqB,cAAc,oBAAoB;CAC7D,MAAM,aAAa,GACjB,gFACA,iBAAiB,eACjB;EAEE,cACE,YAAY,QAAQ,YAAY,QAAQ,YAAY;EACtD,gBAAgB,YAAY;EAC5B,QAAQ,kBAAkB;CAC5B,CACF;CAEA,MAAM,uBAAuB;EAC3B,QAAQ,eAAR;GACE,KAAK,WACH,OAAO;GACT,KAAK,WACH,OAAO;GACT,KAAK,SACH,OAAO;GACT,KAAK,WACH,OAAO;GACT,KAAK,WACH,OAAO;GACT,KAAK,SACH,OAAO;GAET,SACE,OAAO;EACX;CACF;CAEA,OACE,qBAAC,QAAD;EACO;EACL,WAAW,GACT,YACA,eAAe,GACf,qBACE,0EACF,qBAAqB,SAAS,QAAQ,iCACtC,SACF;EACA,GAAI;EAVN,UAAA;GAYG,YACC,oBAAC,UAAD;IACE,eAAA;IACA,WAAW,GAAG,kBAAkB,eAAe,eAAe;IAC9D,QAAQ;GACT,CAAA;GAEF,WACC,oBAAC,MAAD;IACE,IAAG;IACH,SAAS,kBAAkB;IAC3B,QAAQ;IACR,WAAU;IAET;GACG,CAAA,IAEN;GAED,aACC,oBAAC,WAAD;IACE,eAAA;IACA,WAAW,GAAG,kBAAkB,eAAe,eAAe;IAC9D,QAAQ;GACT,CAAA;EAEC;;AAEV,CACF;AAEA,MAAM,cAAc"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type BannerIntent = 'warning' | 'info' | 'success' | 'error' | 'neutral';
|
|
3
|
+
export type BannerProps = {
|
|
4
|
+
title?: string;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
dismissible?: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
intent?: BannerIntent;
|
|
9
|
+
shadow?: boolean;
|
|
10
|
+
onDismiss?: () => void;
|
|
11
|
+
icon?: ReactNode;
|
|
12
|
+
action?: ReactNode;
|
|
13
|
+
flush?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare const Banner: ({ title, children, dismissible, className, intent, shadow, onDismiss, icon, action, flush, }: BannerProps) => import("react").JSX.Element | null;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { Text } from "../Text/Text.js";
|
|
3
|
+
import { XIcon } from "../../icons/PaddedPhosphorIcons.js";
|
|
4
|
+
import { Icon } from "../Icon/Icon.js";
|
|
5
|
+
import { IconButton } from "../IconButton/IconButton.js";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { CheckCircleIcon } from "@phosphor-icons/react/dist/ssr/CheckCircle";
|
|
9
|
+
import { ExclamationMarkIcon } from "@phosphor-icons/react/dist/ssr/ExclamationMark";
|
|
10
|
+
import { InfoIcon } from "@phosphor-icons/react/dist/ssr/Info";
|
|
11
|
+
import { WarningIcon } from "@phosphor-icons/react/dist/ssr/Warning";
|
|
12
|
+
//#region packages/components/src/components/Banner/Banner.tsx
|
|
13
|
+
var Banner = ({ title, children, dismissible = false, className, intent = "warning", shadow = false, onDismiss, icon, action, flush = false }) => {
|
|
14
|
+
const [show, setShow] = useState(true);
|
|
15
|
+
const renderIcon = () => {
|
|
16
|
+
if (icon !== void 0) return icon;
|
|
17
|
+
switch (intent) {
|
|
18
|
+
case "warning": return /* @__PURE__ */ jsx(Icon, {
|
|
19
|
+
icon: WarningIcon,
|
|
20
|
+
weight: "fill",
|
|
21
|
+
size: "md",
|
|
22
|
+
className: "text-warning-secondary"
|
|
23
|
+
});
|
|
24
|
+
case "info": return /* @__PURE__ */ jsx(Icon, {
|
|
25
|
+
icon: InfoIcon,
|
|
26
|
+
weight: "fill",
|
|
27
|
+
size: "md",
|
|
28
|
+
className: "text-brand-100 dark:text-brand-600"
|
|
29
|
+
});
|
|
30
|
+
case "success": return /* @__PURE__ */ jsx(Icon, {
|
|
31
|
+
icon: CheckCircleIcon,
|
|
32
|
+
weight: "fill",
|
|
33
|
+
size: "md",
|
|
34
|
+
className: "text-success-secondary"
|
|
35
|
+
});
|
|
36
|
+
case "error": return /* @__PURE__ */ jsx(Icon, {
|
|
37
|
+
icon: ExclamationMarkIcon,
|
|
38
|
+
weight: "regular",
|
|
39
|
+
size: "md",
|
|
40
|
+
className: "text-error-secondary"
|
|
41
|
+
});
|
|
42
|
+
case "neutral": return /* @__PURE__ */ jsx(Icon, {
|
|
43
|
+
icon: InfoIcon,
|
|
44
|
+
weight: "fill",
|
|
45
|
+
size: "md",
|
|
46
|
+
className: "text-tertiary"
|
|
47
|
+
});
|
|
48
|
+
default: return null;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const titleElement = title == null ? null : /* @__PURE__ */ jsx(Text, {
|
|
52
|
+
as: "span",
|
|
53
|
+
variant: "sm",
|
|
54
|
+
weight: "medium",
|
|
55
|
+
color: "primary",
|
|
56
|
+
className: cn("whitespace-normal break-words", children != null && "mr-space-2"),
|
|
57
|
+
children: title
|
|
58
|
+
});
|
|
59
|
+
const contentElement = children == null ? null : typeof children === "string" ? /* @__PURE__ */ jsx(Text, {
|
|
60
|
+
as: "span",
|
|
61
|
+
variant: "sm",
|
|
62
|
+
weight: "normal",
|
|
63
|
+
color: "secondary",
|
|
64
|
+
className: "whitespace-normal break-words",
|
|
65
|
+
children
|
|
66
|
+
}) : children;
|
|
67
|
+
const iconElement = renderIcon();
|
|
68
|
+
const dismissButton = dismissible ? /* @__PURE__ */ jsx(IconButton, {
|
|
69
|
+
color: "secondary",
|
|
70
|
+
variant: "plain",
|
|
71
|
+
icon: XIcon,
|
|
72
|
+
label: "Close",
|
|
73
|
+
className: "shrink-0 self-center text-secondary hover:bg-transparent",
|
|
74
|
+
onClick: () => {
|
|
75
|
+
setShow(false);
|
|
76
|
+
onDismiss?.();
|
|
77
|
+
}
|
|
78
|
+
}) : null;
|
|
79
|
+
if (!show) return null;
|
|
80
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: cn("m-0 flex items-center gap-space-2 border border-transparent px-space-4 py-space-3 text-sm", shadow && "shadow-lg", intent === "warning" && "bg-warning", intent === "info" && "bg-brand-subtle-gradient", intent === "success" && "bg-success", intent === "error" && "bg-error", intent === "neutral" && "bg-elevated", intent === "neutral" && !flush && "border-default", !flush && "rounded-md", className),
|
|
82
|
+
children: [
|
|
83
|
+
iconElement != null && /* @__PURE__ */ jsx("div", {
|
|
84
|
+
className: "mr-space-1 flex shrink-0 items-center",
|
|
85
|
+
children: iconElement
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsxs("div", {
|
|
88
|
+
className: "min-w-0 flex-1",
|
|
89
|
+
children: [titleElement, contentElement]
|
|
90
|
+
}),
|
|
91
|
+
action ? /* @__PURE__ */ jsx("div", {
|
|
92
|
+
className: "flex shrink-0 items-center",
|
|
93
|
+
children: action
|
|
94
|
+
}) : null,
|
|
95
|
+
dismissButton
|
|
96
|
+
]
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
//#endregion
|
|
100
|
+
export { Banner };
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.js","names":[],"sources":["../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { useState } from 'react';\n\nimport { CheckCircleIcon } from '@phosphor-icons/react/dist/ssr/CheckCircle';\nimport { ExclamationMarkIcon } from '@phosphor-icons/react/dist/ssr/ExclamationMark';\nimport { InfoIcon } from '@phosphor-icons/react/dist/ssr/Info';\nimport { WarningIcon } from '@phosphor-icons/react/dist/ssr/Warning';\n\nimport { XIcon } from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport { Icon } from '../Icon';\nimport { IconButton } from '../IconButton';\nimport { Text } from '../Text';\n\nexport type BannerIntent = 'warning' | 'info' | 'success' | 'error' | 'neutral';\n\nexport type BannerProps = {\n title?: string;\n children?: ReactNode;\n dismissible?: boolean;\n className?: string;\n intent?: BannerIntent;\n shadow?: boolean;\n onDismiss?: () => void;\n icon?: ReactNode;\n action?: ReactNode;\n flush?: boolean;\n};\n\nexport const Banner = ({\n title,\n children,\n dismissible = false,\n className,\n intent = 'warning',\n shadow = false,\n onDismiss,\n icon,\n action,\n flush = false,\n}: BannerProps) => {\n const [show, setShow] = useState(true);\n\n const renderIcon = () => {\n if (icon !== undefined) {\n return icon;\n }\n switch (intent) {\n case 'warning':\n return (\n <Icon\n icon={WarningIcon}\n weight=\"fill\"\n size=\"md\"\n className=\"text-warning-secondary\"\n />\n );\n case 'info':\n return (\n <Icon\n icon={InfoIcon}\n weight=\"fill\"\n size=\"md\"\n className=\"text-brand-100 dark:text-brand-600\"\n />\n );\n case 'success':\n return (\n <Icon\n icon={CheckCircleIcon}\n weight=\"fill\"\n size=\"md\"\n className=\"text-success-secondary\"\n />\n );\n case 'error':\n return (\n <Icon\n icon={ExclamationMarkIcon}\n weight=\"regular\"\n size=\"md\"\n className=\"text-error-secondary\"\n />\n );\n case 'neutral':\n return (\n <Icon\n icon={InfoIcon}\n weight=\"fill\"\n size=\"md\"\n className=\"text-tertiary\"\n />\n );\n default:\n return null;\n }\n };\n\n const titleElement =\n title == null ? null : (\n <Text\n as=\"span\"\n variant=\"sm\"\n weight=\"medium\"\n color=\"primary\"\n className={cn(\n 'whitespace-normal break-words',\n children != null && 'mr-space-2'\n )}\n >\n {title}\n </Text>\n );\n\n const contentElement =\n children == null ? null : typeof children === 'string' ? (\n <Text\n as=\"span\"\n variant=\"sm\"\n weight=\"normal\"\n color=\"secondary\"\n className=\"whitespace-normal break-words\"\n >\n {children}\n </Text>\n ) : (\n children\n );\n\n const iconElement = renderIcon();\n\n const dismissButton = dismissible ? (\n <IconButton\n color=\"secondary\"\n variant=\"plain\"\n icon={XIcon}\n label=\"Close\"\n className=\"shrink-0 self-center text-secondary hover:bg-transparent\"\n onClick={() => {\n setShow(false);\n onDismiss?.();\n }}\n />\n ) : null;\n\n if (!show) return null;\n return (\n <div\n className={cn(\n 'm-0 flex items-center gap-space-2 border border-transparent px-space-4 py-space-3 text-sm',\n shadow && 'shadow-lg',\n intent === 'warning' && 'bg-warning',\n intent === 'info' && 'bg-brand-subtle-gradient',\n intent === 'success' && 'bg-success',\n intent === 'error' && 'bg-error',\n intent === 'neutral' && 'bg-elevated',\n intent === 'neutral' && !flush && 'border-default',\n !flush && 'rounded-md',\n className\n )}\n >\n {iconElement != null && (\n <div className=\"mr-space-1 flex shrink-0 items-center\">\n {iconElement}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n {titleElement}\n {contentElement}\n </div>\n {action ? (\n <div className=\"flex shrink-0 items-center\">{action}</div>\n ) : null}\n {dismissButton}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;AA6BA,IAAa,UAAU,EACrB,OACA,UACA,cAAc,OACd,WACA,SAAS,WACT,SAAS,OACT,WACA,MACA,QACA,QAAQ,YACS;CACjB,MAAM,CAAC,MAAM,WAAW,SAAS,IAAI;CAErC,MAAM,mBAAmB;EACvB,IAAI,SAAS,KAAA,GACX,OAAO;EAET,QAAQ,QAAR;GACE,KAAK,WACH,OACE,oBAAC,MAAD;IACE,MAAM;IACN,QAAO;IACP,MAAK;IACL,WAAU;GACX,CAAA;GAEL,KAAK,QACH,OACE,oBAAC,MAAD;IACE,MAAM;IACN,QAAO;IACP,MAAK;IACL,WAAU;GACX,CAAA;GAEL,KAAK,WACH,OACE,oBAAC,MAAD;IACE,MAAM;IACN,QAAO;IACP,MAAK;IACL,WAAU;GACX,CAAA;GAEL,KAAK,SACH,OACE,oBAAC,MAAD;IACE,MAAM;IACN,QAAO;IACP,MAAK;IACL,WAAU;GACX,CAAA;GAEL,KAAK,WACH,OACE,oBAAC,MAAD;IACE,MAAM;IACN,QAAO;IACP,MAAK;IACL,WAAU;GACX,CAAA;GAEL,SACE,OAAO;EACX;CACF;CAEA,MAAM,eACJ,SAAS,OAAO,OACd,oBAAC,MAAD;EACE,IAAG;EACH,SAAQ;EACR,QAAO;EACP,OAAM;EACN,WAAW,GACT,iCACA,YAAY,QAAQ,YACtB;EAEC,UAAA;CACG,CAAA;CAGV,MAAM,iBACJ,YAAY,OAAO,OAAO,OAAO,aAAa,WAC5C,oBAAC,MAAD;EACE,IAAG;EACH,SAAQ;EACR,QAAO;EACP,OAAM;EACN,WAAU;EAET;CACG,CAAA,IAEN;CAGJ,MAAM,cAAc,WAAW;CAE/B,MAAM,gBAAgB,cACpB,oBAAC,YAAD;EACE,OAAM;EACN,SAAQ;EACR,MAAM;EACN,OAAM;EACN,WAAU;EACV,eAAe;GACb,QAAQ,KAAK;GACb,YAAY;EACd;CACD,CAAA,IACC;CAEJ,IAAI,CAAC,MAAM,OAAO;CAClB,OACE,qBAAC,OAAD;EACE,WAAW,GACT,6FACA,UAAU,aACV,WAAW,aAAa,cACxB,WAAW,UAAU,4BACrB,WAAW,aAAa,cACxB,WAAW,WAAW,YACtB,WAAW,aAAa,eACxB,WAAW,aAAa,CAAC,SAAS,kBAClC,CAAC,SAAS,cACV,SACF;EAZF,UAAA;GAcG,eAAe,QACd,oBAAC,OAAD;IAAK,WAAU;IACZ,UAAA;GACE,CAAA;GAEP,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACG,cACA,cACE;;GACJ,SACC,oBAAC,OAAD;IAAK,WAAU;IAA8B,UAAA;GAAY,CAAA,IACvD;GACH;EACE;;AAET"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FocusEvent, KeyboardEvent, PointerEvent } from 'react';
|
|
2
|
+
import { type SpringValue } from '@react-spring/web';
|
|
3
|
+
import type { BarChartInteractionBar, BarChartOrientation, BarChartRenderedBar } from './BarChart.types.js';
|
|
4
|
+
type AnimatedBarProps = {
|
|
5
|
+
bar: BarChartRenderedBar;
|
|
6
|
+
orientation: BarChartOrientation;
|
|
7
|
+
animationProgress: SpringValue<number>;
|
|
8
|
+
animationStart: number;
|
|
9
|
+
animationEnd: number;
|
|
10
|
+
/** Naming the bar is what makes it a keyboard target. */
|
|
11
|
+
ariaLabel?: string;
|
|
12
|
+
isDimmed: boolean;
|
|
13
|
+
onPointerMove?: (bar: BarChartInteractionBar, event: PointerEvent<SVGPathElement>) => void;
|
|
14
|
+
onPointerOut?: () => void;
|
|
15
|
+
onActivate?: (bar: BarChartInteractionBar, event: PointerEvent<SVGPathElement> | KeyboardEvent<SVGPathElement>) => void;
|
|
16
|
+
onFocus?: (bar: BarChartInteractionBar, event: FocusEvent<SVGPathElement>) => void;
|
|
17
|
+
onBlur?: (bar: BarChartInteractionBar, event: FocusEvent<SVGPathElement>) => void;
|
|
18
|
+
};
|
|
19
|
+
export declare const AnimatedBar: ({ bar, orientation, animationProgress, animationStart, animationEnd, ariaLabel, isDimmed, onPointerMove, onPointerOut, onActivate, onFocus, onBlur, }: AnimatedBarProps) => import("react").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { CHART_DIMMED_OPACITY } from "../../utils/chartConstants.js";
|
|
3
|
+
import { clamp } from "../../utils/clamp.js";
|
|
4
|
+
import { getBarPath, toBarChartInteractionBar } from "./BarChart.utils.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { animated } from "@react-spring/web";
|
|
7
|
+
//#region packages/components/src/components/BarChart/AnimatedBar.tsx
|
|
8
|
+
var AnimatedBar = ({ bar, orientation, animationProgress, animationStart, animationEnd, ariaLabel, isDimmed, onPointerMove, onPointerOut, onActivate, onFocus, onBlur }) => {
|
|
9
|
+
const interactionBar = toBarChartInteractionBar(bar);
|
|
10
|
+
const isInteractive = onPointerMove != null || onPointerOut != null || onActivate != null;
|
|
11
|
+
const isButton = onActivate != null && ariaLabel != null;
|
|
12
|
+
const handlePointerUp = onActivate == null ? void 0 : (event) => {
|
|
13
|
+
if (event.button !== 0) return;
|
|
14
|
+
onActivate(interactionBar, event);
|
|
15
|
+
};
|
|
16
|
+
const handleKeyDown = onActivate == null ? void 0 : (event) => {
|
|
17
|
+
if (event.key !== "Enter" && event.key !== " ") return;
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
onActivate(interactionBar, event);
|
|
20
|
+
};
|
|
21
|
+
const handlePointerDown = (event) => {
|
|
22
|
+
if (event.pointerType === "mouse" && event.currentTarget.hasAttribute("tabindex")) event.preventDefault();
|
|
23
|
+
};
|
|
24
|
+
return /* @__PURE__ */ jsx(animated.path, {
|
|
25
|
+
d: animationProgress.to((progress) => {
|
|
26
|
+
const revealPosition = animationStart + (animationEnd - animationStart) * progress;
|
|
27
|
+
let { x, y, width, height } = bar;
|
|
28
|
+
if (orientation === "vertical") {
|
|
29
|
+
if (animationEnd < animationStart) {
|
|
30
|
+
const visibleStart = clamp(revealPosition, y, y + height);
|
|
31
|
+
height = y + height - visibleStart;
|
|
32
|
+
y = visibleStart;
|
|
33
|
+
} else height = clamp(revealPosition, y, y + height) - y;
|
|
34
|
+
} else if (animationEnd < animationStart) {
|
|
35
|
+
const visibleStart = clamp(revealPosition, x, x + width);
|
|
36
|
+
width = x + width - visibleStart;
|
|
37
|
+
x = visibleStart;
|
|
38
|
+
} else width = clamp(revealPosition, x, x + width) - x;
|
|
39
|
+
return getBarPath({
|
|
40
|
+
x,
|
|
41
|
+
y,
|
|
42
|
+
width,
|
|
43
|
+
height
|
|
44
|
+
});
|
|
45
|
+
}),
|
|
46
|
+
fill: bar.color,
|
|
47
|
+
opacity: isDimmed ? bar.opacity * CHART_DIMMED_OPACITY : bar.opacity,
|
|
48
|
+
className: cn("transition-opacity duration-fast focus-visible:stroke-focus focus-visible:stroke-2 focus-visible:outline-none motion-reduce:transition-none", isInteractive && "cursor-pointer"),
|
|
49
|
+
"data-bar-id": bar.id,
|
|
50
|
+
tabIndex: ariaLabel == null ? void 0 : 0,
|
|
51
|
+
"aria-label": ariaLabel,
|
|
52
|
+
role: isButton ? "button" : void 0,
|
|
53
|
+
onPointerMove: onPointerMove == null ? void 0 : (event) => onPointerMove(interactionBar, event),
|
|
54
|
+
onPointerDown: handlePointerDown,
|
|
55
|
+
onPointerOut,
|
|
56
|
+
onPointerUp: handlePointerUp,
|
|
57
|
+
onKeyDown: handleKeyDown,
|
|
58
|
+
onFocus: onFocus == null ? void 0 : (event) => onFocus(interactionBar, event),
|
|
59
|
+
onBlur: onBlur == null ? void 0 : (event) => onBlur(interactionBar, event)
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
//#endregion
|
|
63
|
+
export { AnimatedBar };
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=AnimatedBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnimatedBar.js","names":[],"sources":["../../../src/components/BarChart/AnimatedBar.tsx"],"sourcesContent":["import type { FocusEvent, KeyboardEvent, PointerEvent } from 'react';\n\nimport { animated, type SpringValue } from '@react-spring/web';\n\nimport { CHART_DIMMED_OPACITY } from '../../utils/chartConstants';\nimport { clamp } from '../../utils/clamp';\nimport { cn } from '../../utils/cn';\nimport type {\n BarChartInteractionBar,\n BarChartOrientation,\n BarChartRenderedBar,\n} from './BarChart.types';\nimport { getBarPath, toBarChartInteractionBar } from './BarChart.utils';\n\ntype AnimatedBarProps = {\n bar: BarChartRenderedBar;\n orientation: BarChartOrientation;\n animationProgress: SpringValue<number>;\n animationStart: number;\n animationEnd: number;\n /** Naming the bar is what makes it a keyboard target. */\n ariaLabel?: string;\n isDimmed: boolean;\n onPointerMove?: (\n bar: BarChartInteractionBar,\n event: PointerEvent<SVGPathElement>\n ) => void;\n onPointerOut?: () => void;\n onActivate?: (\n bar: BarChartInteractionBar,\n event: PointerEvent<SVGPathElement> | KeyboardEvent<SVGPathElement>\n ) => void;\n onFocus?: (\n bar: BarChartInteractionBar,\n event: FocusEvent<SVGPathElement>\n ) => void;\n onBlur?: (\n bar: BarChartInteractionBar,\n event: FocusEvent<SVGPathElement>\n ) => void;\n};\n\nexport const AnimatedBar = ({\n bar,\n orientation,\n animationProgress,\n animationStart,\n animationEnd,\n ariaLabel,\n isDimmed,\n onPointerMove,\n onPointerOut,\n onActivate,\n onFocus,\n onBlur,\n}: AnimatedBarProps) => {\n const interactionBar = toBarChartInteractionBar(bar);\n const isInteractive =\n onPointerMove != null || onPointerOut != null || onActivate != null;\n // A nameless bar must not claim the button role: it would be an unfocusable\n // control with no accessible name.\n const isButton = onActivate != null && ariaLabel != null;\n const handlePointerUp =\n onActivate == null\n ? undefined\n : (event: PointerEvent<SVGPathElement>) => {\n if (event.button !== 0) return;\n onActivate(interactionBar, event);\n };\n const handleKeyDown =\n onActivate == null\n ? undefined\n : (event: KeyboardEvent<SVGPathElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n onActivate(interactionBar, event);\n };\n const handlePointerDown = (event: PointerEvent<SVGPathElement>) => {\n // Chromium can match :focus-visible when a focusable SVG path is clicked.\n // Keep the focus indicator for keyboard navigation without showing it for\n // pointer interaction.\n if (\n event.pointerType === 'mouse' &&\n event.currentTarget.hasAttribute('tabindex')\n ) {\n event.preventDefault();\n }\n };\n\n return (\n <animated.path\n d={animationProgress.to((progress) => {\n const revealPosition =\n animationStart + (animationEnd - animationStart) * progress;\n let { x, y, width, height } = bar;\n\n if (orientation === 'vertical') {\n if (animationEnd < animationStart) {\n const visibleStart = clamp(revealPosition, y, y + height);\n height = y + height - visibleStart;\n y = visibleStart;\n } else {\n height = clamp(revealPosition, y, y + height) - y;\n }\n } else if (animationEnd < animationStart) {\n const visibleStart = clamp(revealPosition, x, x + width);\n width = x + width - visibleStart;\n x = visibleStart;\n } else {\n width = clamp(revealPosition, x, x + width) - x;\n }\n\n return getBarPath({ x, y, width, height });\n })}\n fill={bar.color}\n opacity={isDimmed ? bar.opacity * CHART_DIMMED_OPACITY : bar.opacity}\n className={cn(\n 'transition-opacity duration-fast focus-visible:stroke-focus focus-visible:stroke-2 focus-visible:outline-none motion-reduce:transition-none',\n isInteractive && 'cursor-pointer'\n )}\n data-bar-id={bar.id}\n tabIndex={ariaLabel == null ? undefined : 0}\n aria-label={ariaLabel}\n role={isButton ? 'button' : undefined}\n onPointerMove={\n onPointerMove == null\n ? undefined\n : (event) => onPointerMove(interactionBar, event)\n }\n onPointerDown={handlePointerDown}\n onPointerOut={onPointerOut}\n onPointerUp={handlePointerUp}\n onKeyDown={handleKeyDown}\n onFocus={\n onFocus == null ? undefined : (event) => onFocus(interactionBar, event)\n }\n onBlur={\n onBlur == null ? undefined : (event) => onBlur(interactionBar, event)\n }\n />\n );\n};\n"],"mappings":";;;;;;;AA0CA,IAAa,eAAe,EAC1B,KACA,aACA,mBACA,gBACA,cACA,WACA,UACA,eACA,cACA,YACA,SACA,aACsB;CACtB,MAAM,iBAAiB,yBAAyB,GAAG;CACnD,MAAM,gBACJ,iBAAiB,QAAQ,gBAAgB,QAAQ,cAAc;CAGjE,MAAM,WAAW,cAAc,QAAQ,aAAa;CACpD,MAAM,kBACJ,cAAc,OACV,KAAA,KACC,UAAwC;EACvC,IAAI,MAAM,WAAW,GAAG;EACxB,WAAW,gBAAgB,KAAK;CAClC;CACN,MAAM,gBACJ,cAAc,OACV,KAAA,KACC,UAAyC;EACxC,IAAI,MAAM,QAAQ,WAAW,MAAM,QAAQ,KAAK;EAChD,MAAM,eAAe;EACrB,WAAW,gBAAgB,KAAK;CAClC;CACN,MAAM,qBAAqB,UAAwC;EAIjE,IACE,MAAM,gBAAgB,WACtB,MAAM,cAAc,aAAa,UAAU,GAE3C,MAAM,eAAe;CAEzB;CAEA,OACE,oBAAC,SAAS,MAAV;EACE,GAAG,kBAAkB,IAAI,aAAa;GACpC,MAAM,iBACJ,kBAAkB,eAAe,kBAAkB;GACrD,IAAI,EAAE,GAAG,GAAG,OAAO,WAAW;GAE9B,IAAI,gBAAgB,YAAY;IAC9B,IAAI,eAAe,gBAAgB;KACjC,MAAM,eAAe,MAAM,gBAAgB,GAAG,IAAI,MAAM;KACxD,SAAS,IAAI,SAAS;KACtB,IAAI;IACN,OACE,SAAS,MAAM,gBAAgB,GAAG,IAAI,MAAM,IAAI;GAEpD,OAAO,IAAI,eAAe,gBAAgB;IACxC,MAAM,eAAe,MAAM,gBAAgB,GAAG,IAAI,KAAK;IACvD,QAAQ,IAAI,QAAQ;IACpB,IAAI;GACN,OACE,QAAQ,MAAM,gBAAgB,GAAG,IAAI,KAAK,IAAI;GAGhD,OAAO,WAAW;IAAE;IAAG;IAAG;IAAO;GAAO,CAAC;EAC3C,CAAC;EACD,MAAM,IAAI;EACV,SAAS,WAAW,IAAI,UAAU,uBAAuB,IAAI;EAC7D,WAAW,GACT,+IACA,iBAAiB,gBACnB;EACA,eAAa,IAAI;EACjB,UAAU,aAAa,OAAO,KAAA,IAAY;EAC1C,cAAY;EACZ,MAAM,WAAW,WAAW,KAAA;EAC5B,eACE,iBAAiB,OACb,KAAA,KACC,UAAU,cAAc,gBAAgB,KAAK;EAEpD,eAAe;EACD;EACd,aAAa;EACb,WAAW;EACX,SACE,WAAW,OAAO,KAAA,KAAa,UAAU,QAAQ,gBAAgB,KAAK;EAExE,QACE,UAAU,OAAO,KAAA,KAAa,UAAU,OAAO,gBAAgB,KAAK;CAEvE,CAAA;AAEL"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BarChartProps } from './BarChart.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Responsive, presentational bars for categorical and time-bucket data. Supports
|
|
4
|
+
* vertical or horizontal orientation, grouped or signed stacks, multiple value
|
|
5
|
+
* axes, threshold bands, controlled legend filtering, selection and active
|
|
6
|
+
* states, keyboard targets, and consumer-owned SVG slots. Bars always use
|
|
7
|
+
* square corners in every orientation and mode.
|
|
8
|
+
*
|
|
9
|
+
* The component is deliberately presentational: consumers retain fetching,
|
|
10
|
+
* sorting, Top-K/Other aggregation, formatting, tooltip content, links, frozen
|
|
11
|
+
* interaction state, and the loading and empty states — pair it with
|
|
12
|
+
* `ChartCard`, `ChartTooltip`, and `EmptyState`. Reach for `slots` before asking
|
|
13
|
+
* for a new prop; each slot receives the resolved scales and geometry.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <BarChart
|
|
18
|
+
* aria-label="Requests by environment"
|
|
19
|
+
* series={[{ id: 'prod', label: 'Production', data }]}
|
|
20
|
+
* selectedIds={selectedIds}
|
|
21
|
+
* legendProps={{ onItemClick: (item) => toggleId(item.id) }}
|
|
22
|
+
* />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare const BarChart: ({ series, categoryAxis, valueAxes, mode, orientation, selectedIds, grid, valueBands, activeCategory, activeGuideBarId, activeBarId, activeLegendItemId, selectionRange, categoryPadding, plotPadding, minimumPlotWidth, groupPadding, minimumBarSize, shouldAnimate, slots, isRendering, showLegend, legendProps, className, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, getBarAriaLabel, getCategoryAriaLabel, onDatumPointerDown, onDatumPointerMove, onDatumPointerOut, onDatumPointerUp, onDatumActivate, onDatumFocus, onDatumBlur, onBarPointerMove, onBarPointerOut, onBarActivate, onBarFocus, onBarBlur, ...rest }: BarChartProps) => import("react").JSX.Element;
|