@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,228 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import { CONTROL_SIZES } from "../../utils/componentSizes.js";
|
|
3
|
+
import { Text } from "../Text/Text.js";
|
|
4
|
+
import { CaretDownIcon } from "../../icons/PaddedPhosphorIcons.js";
|
|
5
|
+
import { Icon } from "../Icon/Icon.js";
|
|
6
|
+
import { Popover, PopoverAnchor, PopoverContent } from "../Popover/Popover.js";
|
|
7
|
+
import { Command as Command$1, CommandEmpty, CommandItem, CommandList } from "../Command/Command.js";
|
|
8
|
+
import { CONTROL_ICON_SIZES } from "../../utils/controlIconSizes.js";
|
|
9
|
+
import { isTypeaheadOption } from "./Typeahead.utils.js";
|
|
10
|
+
import { TypeaheadClearButton, TypeaheadCreateOption, TypeaheadDefaultOption, TypeaheadDefaultTag } from "./TypeaheadParts.js";
|
|
11
|
+
import { useRef } from "react";
|
|
12
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { MagnifyingGlassIcon } from "@phosphor-icons/react/dist/ssr/MagnifyingGlass";
|
|
14
|
+
import { Command } from "cmdk";
|
|
15
|
+
//#region packages/components/src/components/Typeahead/TypeaheadView.tsx
|
|
16
|
+
var CONTROL_RADIUS_CLASSES = {
|
|
17
|
+
xs: "rounded-xs",
|
|
18
|
+
sm: "rounded-sm",
|
|
19
|
+
md: "rounded-md",
|
|
20
|
+
lg: "rounded-md"
|
|
21
|
+
};
|
|
22
|
+
var MULTIPLE_INPUT_HEIGHT_CLASSES = {
|
|
23
|
+
xs: "h-4",
|
|
24
|
+
sm: "h-5",
|
|
25
|
+
md: "h-6",
|
|
26
|
+
lg: "h-6"
|
|
27
|
+
};
|
|
28
|
+
var INPUT_TEXT_CLASSES = {
|
|
29
|
+
xs: "text-xxs leading-[1.15]",
|
|
30
|
+
sm: "text-xs leading-normal",
|
|
31
|
+
md: "text-sm leading-normal",
|
|
32
|
+
lg: "text-sm leading-normal"
|
|
33
|
+
};
|
|
34
|
+
function TypeaheadView({ root, state, ids, input, selection, list, createOption, popoverContentRef }) {
|
|
35
|
+
const controlRef = useRef(null);
|
|
36
|
+
const preventInputDismiss = (event) => {
|
|
37
|
+
if (open && event.target instanceof HTMLInputElement && event.target.getAttribute("role") === "combobox" && controlRef.current?.contains(event.target)) event.preventDefault();
|
|
38
|
+
};
|
|
39
|
+
const { ref: rootRef, handleBlur, dataTestId, className } = root;
|
|
40
|
+
const { size, disabled, isError, multiple, open, setOpen } = state;
|
|
41
|
+
const { commandLabel, resolvedInputId, listId, selectedSummaryId, inputAriaLabel } = ids;
|
|
42
|
+
const { value: inputValue, onValueChange: handleInputValueChange, onKeyDown: handleKeyDown, placeholder, leftDecorator, showPlaceholderWithValues, autoFocus, autoComplete, setNode: setInputNode, focus: focusInput } = input;
|
|
43
|
+
const { selectedValues, selectedKeys, getTagProps, renderTags, getLabel, getValue, showClearButton, clearValue, forcePopupIcon, selectedSummary } = selection;
|
|
44
|
+
const { ref: listRef, items, emptyText, emptyState, listFooter, hideEmptyList, optionIsDisabled, selectValue, renderOption } = list;
|
|
45
|
+
const hasValue = selectedValues.length > 0;
|
|
46
|
+
const visibleItems = open ? items : [];
|
|
47
|
+
const visibleShowCreateOption = open && createOption.show;
|
|
48
|
+
const showEmptyState = open && visibleItems.length === 0 && !visibleShowCreateOption && (emptyState != null || !hideEmptyList);
|
|
49
|
+
const controlHeightClass = multiple ? CONTROL_SIZES[size].minHeightClassName : CONTROL_SIZES[size].heightClassName;
|
|
50
|
+
const controlPaddingClass = size === "xs" || size === "sm" ? "px-space-2" : "px-space-3";
|
|
51
|
+
const renderedTags = multiple && (renderTags ? renderTags(selectedValues, getTagProps) : selectedValues.map((selected, index) => {
|
|
52
|
+
const tagProps = getTagProps({ index });
|
|
53
|
+
return /* @__PURE__ */ jsx(TypeaheadDefaultTag, {
|
|
54
|
+
selected,
|
|
55
|
+
index,
|
|
56
|
+
disabled,
|
|
57
|
+
size,
|
|
58
|
+
getLabel,
|
|
59
|
+
getValue,
|
|
60
|
+
onRemove: tagProps.onDelete
|
|
61
|
+
}, `${getValue(selected)}-${index}`);
|
|
62
|
+
}));
|
|
63
|
+
const inputField = /* @__PURE__ */ jsxs("div", {
|
|
64
|
+
className: cn("flex items-center gap-space-2", multiple ? "min-w-0 flex-1" : "flex-1", !multiple && (size === "xs" ? "min-w-12" : "min-w-16")),
|
|
65
|
+
children: [leftDecorator != null ? /* @__PURE__ */ jsx("div", {
|
|
66
|
+
className: "flex min-w-0 shrink items-center text-icon-tertiary",
|
|
67
|
+
children: leftDecorator
|
|
68
|
+
}) : !multiple && !hasValue ? /* @__PURE__ */ jsx(Icon, {
|
|
69
|
+
"aria-hidden": true,
|
|
70
|
+
icon: MagnifyingGlassIcon,
|
|
71
|
+
iconClassName: CONTROL_ICON_SIZES[size].iconClassName,
|
|
72
|
+
className: "text-icon-tertiary",
|
|
73
|
+
weight: "regular"
|
|
74
|
+
}) : null, /* @__PURE__ */ jsx(Command.Input, {
|
|
75
|
+
ref: setInputNode,
|
|
76
|
+
id: resolvedInputId,
|
|
77
|
+
value: inputValue,
|
|
78
|
+
onValueChange: handleInputValueChange,
|
|
79
|
+
onFocus: () => {
|
|
80
|
+
if (!disabled) setOpen(true);
|
|
81
|
+
},
|
|
82
|
+
onKeyDown: handleKeyDown,
|
|
83
|
+
placeholder: hasValue && multiple && !showPlaceholderWithValues ? void 0 : placeholder,
|
|
84
|
+
disabled,
|
|
85
|
+
autoFocus,
|
|
86
|
+
autoComplete,
|
|
87
|
+
role: "combobox",
|
|
88
|
+
"aria-expanded": open,
|
|
89
|
+
"aria-controls": listId,
|
|
90
|
+
"aria-autocomplete": "list",
|
|
91
|
+
"aria-haspopup": "listbox",
|
|
92
|
+
"aria-invalid": isError || void 0,
|
|
93
|
+
"aria-describedby": multiple ? selectedSummaryId : void 0,
|
|
94
|
+
"aria-label": inputAriaLabel,
|
|
95
|
+
className: cn("min-w-0 max-w-full border-none bg-transparent p-0 outline-none placeholder:text-placeholder", INPUT_TEXT_CLASSES[size], disabled && "cursor-not-allowed", multiple ? cn(MULTIPLE_INPUT_HEIGHT_CLASSES[size], "w-full") : "h-full w-full flex-1")
|
|
96
|
+
})]
|
|
97
|
+
});
|
|
98
|
+
const actionControls = /* @__PURE__ */ jsxs("div", {
|
|
99
|
+
className: cn("flex shrink-0 items-center gap-space-1 text-icon-tertiary", multiple ? "self-center" : "ml-auto"),
|
|
100
|
+
style: { marginInlineEnd: showClearButton && !forcePopupIcon ? CONTROL_ICON_SIZES[size].actionOffset : void 0 },
|
|
101
|
+
children: [showClearButton && /* @__PURE__ */ jsx(TypeaheadClearButton, {
|
|
102
|
+
size,
|
|
103
|
+
label: multiple ? "Clear selections" : "Clear selection",
|
|
104
|
+
onClick: (event) => {
|
|
105
|
+
event.stopPropagation();
|
|
106
|
+
clearValue();
|
|
107
|
+
}
|
|
108
|
+
}), forcePopupIcon && /* @__PURE__ */ jsx(Icon, {
|
|
109
|
+
"aria-hidden": true,
|
|
110
|
+
icon: CaretDownIcon,
|
|
111
|
+
iconClassName: CONTROL_ICON_SIZES[size].iconClassName,
|
|
112
|
+
className: cn("text-icon-tertiary transition-transform", open && "rotate-180"),
|
|
113
|
+
weight: "regular"
|
|
114
|
+
})]
|
|
115
|
+
});
|
|
116
|
+
return /* @__PURE__ */ jsx(Command$1, {
|
|
117
|
+
ref: rootRef,
|
|
118
|
+
shouldFilter: false,
|
|
119
|
+
label: commandLabel,
|
|
120
|
+
className: "overflow-visible bg-transparent",
|
|
121
|
+
children: /* @__PURE__ */ jsxs(Popover, {
|
|
122
|
+
open,
|
|
123
|
+
onOpenChange: setOpen,
|
|
124
|
+
children: [
|
|
125
|
+
/* @__PURE__ */ jsx(PopoverAnchor, {
|
|
126
|
+
asChild: true,
|
|
127
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
128
|
+
ref: controlRef,
|
|
129
|
+
...root.props,
|
|
130
|
+
"data-testid": dataTestId,
|
|
131
|
+
onBlur: handleBlur,
|
|
132
|
+
className: cn("w-full cursor-text border border-default bg-elevated text-primary transition-colors", multiple ? "flex flex-wrap items-center gap-space-1" : "flex items-center gap-space-1 overflow-hidden", "focus-within:border-focus focus-within:bg-elevated hover:bg-elevated-hover", controlHeightClass, multiple && {
|
|
133
|
+
"px-space-1 py-0": size === "xs",
|
|
134
|
+
"px-space-1 py-px": size === "sm",
|
|
135
|
+
"px-space-2 py-0.5": size === "md",
|
|
136
|
+
"px-space-3 py-space-1": size === "lg"
|
|
137
|
+
}, !multiple && controlPaddingClass, CONTROL_RADIUS_CLASSES[size], isError && "border-error focus-within:border-error", disabled && "cursor-not-allowed border-disabled bg-disabled text-disabled opacity-70", className),
|
|
138
|
+
onClick: (event) => {
|
|
139
|
+
root.props.onClick?.(event);
|
|
140
|
+
if (!disabled) {
|
|
141
|
+
focusInput();
|
|
142
|
+
setOpen(true);
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
children: multiple ? /* @__PURE__ */ jsxs(Fragment$1, { children: [renderedTags, /* @__PURE__ */ jsxs("div", {
|
|
146
|
+
className: "flex min-w-16 flex-1 items-center gap-space-1",
|
|
147
|
+
children: [inputField, actionControls]
|
|
148
|
+
})] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [inputField, actionControls] })
|
|
149
|
+
})
|
|
150
|
+
}),
|
|
151
|
+
multiple && /* @__PURE__ */ jsx("span", {
|
|
152
|
+
id: selectedSummaryId,
|
|
153
|
+
className: "sr-only",
|
|
154
|
+
"aria-live": "polite",
|
|
155
|
+
"aria-atomic": "true",
|
|
156
|
+
children: selectedSummary
|
|
157
|
+
}),
|
|
158
|
+
/* @__PURE__ */ jsx(PopoverContent, {
|
|
159
|
+
ref: popoverContentRef,
|
|
160
|
+
hidden: !open,
|
|
161
|
+
className: cn("w-[var(--radix-popover-trigger-width)] min-w-48 max-w-[calc(100vw-1rem)] bg-elevated p-space-1 text-primary", !open && "hidden"),
|
|
162
|
+
align: "start",
|
|
163
|
+
sideOffset: 4,
|
|
164
|
+
forceMount: true,
|
|
165
|
+
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
166
|
+
onCloseAutoFocus: (event) => event.preventDefault(),
|
|
167
|
+
onFocusOutside: preventInputDismiss,
|
|
168
|
+
onInteractOutside: preventInputDismiss,
|
|
169
|
+
children: /* @__PURE__ */ jsxs(CommandList, {
|
|
170
|
+
ref: listRef,
|
|
171
|
+
id: listId,
|
|
172
|
+
"aria-label": `${commandLabel} options`,
|
|
173
|
+
"aria-multiselectable": multiple ? true : void 0,
|
|
174
|
+
className: "max-h-[18.75rem]",
|
|
175
|
+
children: [
|
|
176
|
+
showEmptyState && /* @__PURE__ */ jsx(CommandEmpty, { children: emptyState ?? /* @__PURE__ */ jsx(Text, {
|
|
177
|
+
variant: "sm",
|
|
178
|
+
color: "secondary",
|
|
179
|
+
children: emptyText
|
|
180
|
+
}) }),
|
|
181
|
+
visibleItems.map((item) => {
|
|
182
|
+
const { option } = item;
|
|
183
|
+
const optionKey = getValue(option);
|
|
184
|
+
const optionLabel = getLabel(option);
|
|
185
|
+
const selected = selectedKeys.has(optionKey);
|
|
186
|
+
const optionDisabled = optionIsDisabled(item);
|
|
187
|
+
const optionState = {
|
|
188
|
+
selected,
|
|
189
|
+
disabled: optionDisabled,
|
|
190
|
+
inputValue
|
|
191
|
+
};
|
|
192
|
+
return /* @__PURE__ */ jsx(CommandItem, {
|
|
193
|
+
value: optionKey,
|
|
194
|
+
disabled: optionDisabled,
|
|
195
|
+
keywords: isTypeaheadOption(option) ? [optionLabel, ...option.keywords ?? []] : [optionLabel],
|
|
196
|
+
onSelect: () => selectValue(option),
|
|
197
|
+
"aria-checked": multiple ? selected : void 0,
|
|
198
|
+
className: cn("flex items-center gap-space-2 rounded-sm px-space-2 py-space-2 text-sm text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2", optionDisabled && "text-disabled"),
|
|
199
|
+
children: renderOption && item.source === "option" ? renderOption(option, optionState) : /* @__PURE__ */ jsx(TypeaheadDefaultOption, {
|
|
200
|
+
option,
|
|
201
|
+
state: optionState,
|
|
202
|
+
getLabel
|
|
203
|
+
})
|
|
204
|
+
}, optionKey);
|
|
205
|
+
}),
|
|
206
|
+
visibleShowCreateOption && /* @__PURE__ */ jsx(CommandItem, {
|
|
207
|
+
value: `__typeahead_create__${createOption.inputValue}`,
|
|
208
|
+
keywords: [createOption.inputValue],
|
|
209
|
+
onSelect: createOption.onCreate,
|
|
210
|
+
"aria-label": createOption.inputValue ? `Add ${createOption.inputValue}` : "Add new",
|
|
211
|
+
className: "flex items-center gap-space-2 rounded-sm p-space-2 text-sm text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2",
|
|
212
|
+
children: /* @__PURE__ */ jsx(TypeaheadCreateOption, {
|
|
213
|
+
inputValue: createOption.inputValue,
|
|
214
|
+
label: createOption.label
|
|
215
|
+
})
|
|
216
|
+
}),
|
|
217
|
+
listFooter
|
|
218
|
+
]
|
|
219
|
+
})
|
|
220
|
+
})
|
|
221
|
+
]
|
|
222
|
+
})
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
//#endregion
|
|
226
|
+
export { TypeaheadView };
|
|
227
|
+
|
|
228
|
+
//# sourceMappingURL=TypeaheadView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeaheadView.js","names":[],"sources":["../../../src/components/Typeahead/TypeaheadView.tsx"],"sourcesContent":["/* eslint-disable max-lines -- Keep the control, tag layout, and popover rendering together in this view. */\nimport type {\n FocusEvent,\n HTMLAttributes,\n KeyboardEvent,\n ReactNode,\n Ref,\n} from 'react';\nimport { useRef } from 'react';\n\nimport { Command as CommandPrimitive } from 'cmdk';\n\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react/dist/ssr/MagnifyingGlass';\n\nimport { CaretDownIcon } from '../../icons/PaddedPhosphorIcons';\nimport { cn } from '../../utils/cn';\nimport { CONTROL_SIZES } from '../../utils/componentSizes';\nimport { CONTROL_ICON_SIZES } from '../../utils/controlIconSizes';\nimport { Command, CommandEmpty, CommandItem, CommandList } from '../Command';\nimport { Icon } from '../Icon';\nimport { Popover, PopoverAnchor, PopoverContent } from '../Popover';\nimport { Text } from '../Text';\nimport type {\n TypeaheadListItem,\n TypeaheadMultipleValue,\n TypeaheadRenderOptionState,\n TypeaheadSelectedValue,\n TypeaheadSize,\n TypeaheadTagProps,\n} from './Typeahead.types';\nimport { isTypeaheadOption } from './Typeahead.utils';\nimport {\n TypeaheadClearButton,\n TypeaheadCreateOption,\n TypeaheadDefaultOption,\n TypeaheadDefaultTag,\n} from './TypeaheadParts';\n\ninterface TypeaheadViewRootProps {\n ref: Ref<HTMLDivElement>;\n props: HTMLAttributes<HTMLDivElement>;\n handleBlur: (event: FocusEvent<HTMLDivElement>) => void;\n dataTestId?: string;\n className?: string;\n}\n\ninterface TypeaheadViewState {\n size: TypeaheadSize;\n disabled: boolean;\n isError: boolean;\n multiple?: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\ninterface TypeaheadViewIds {\n commandLabel: string;\n resolvedInputId: string;\n listId: string;\n selectedSummaryId: string;\n inputAriaLabel?: string;\n}\n\ninterface TypeaheadViewInputProps {\n value: string;\n onValueChange: (value: string) => void;\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;\n placeholder: string;\n leftDecorator?: ReactNode;\n showPlaceholderWithValues: boolean;\n autoFocus?: boolean;\n autoComplete?: string;\n setNode: (node: HTMLInputElement | null) => void;\n focus: () => void;\n}\n\ninterface TypeaheadViewSelectionProps<TOption> {\n selectedValues: TypeaheadMultipleValue<TOption>;\n selectedKeys: Set<string>;\n getTagProps: (params: { index: number }) => TypeaheadTagProps;\n renderTags?: (\n value: TypeaheadMultipleValue<TOption>,\n getTagProps: (params: { index: number }) => TypeaheadTagProps\n ) => ReactNode;\n getLabel: (option: TypeaheadSelectedValue<TOption>) => string;\n getValue: (option: TypeaheadSelectedValue<TOption>) => string;\n showClearButton: boolean;\n clearValue: () => void;\n forcePopupIcon: boolean;\n selectedSummary?: string;\n}\n\ninterface TypeaheadViewListProps<TOption> {\n ref: Ref<HTMLDivElement>;\n items: TypeaheadListItem<TOption>[];\n emptyText: string;\n emptyState?: ReactNode;\n listFooter?: ReactNode;\n hideEmptyList: boolean;\n optionIsDisabled: (item: TypeaheadListItem<TOption>) => boolean;\n selectValue: (selected: TypeaheadSelectedValue<TOption>) => void;\n renderOption?: (\n option: TOption,\n state: TypeaheadRenderOptionState\n ) => ReactNode;\n}\n\ninterface TypeaheadViewCreateOptionProps {\n show: boolean;\n inputValue: string;\n label?: ReactNode;\n onCreate: () => void;\n}\n\ninterface TypeaheadViewProps<TOption> {\n root: TypeaheadViewRootProps;\n state: TypeaheadViewState;\n ids: TypeaheadViewIds;\n input: TypeaheadViewInputProps;\n selection: TypeaheadViewSelectionProps<TOption>;\n list: TypeaheadViewListProps<TOption>;\n createOption: TypeaheadViewCreateOptionProps;\n popoverContentRef: Ref<HTMLDivElement>;\n}\n\nconst CONTROL_RADIUS_CLASSES = {\n xs: 'rounded-xs',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-md',\n} as const satisfies Record<TypeaheadSize, string>;\n\nconst MULTIPLE_INPUT_HEIGHT_CLASSES = {\n xs: 'h-4',\n sm: 'h-5',\n md: 'h-6',\n lg: 'h-6',\n} as const satisfies Record<TypeaheadSize, string>;\n\nconst INPUT_TEXT_CLASSES = {\n xs: 'text-xxs leading-[1.15]',\n sm: 'text-xs leading-normal',\n md: 'text-sm leading-normal',\n lg: 'text-sm leading-normal',\n} as const satisfies Record<TypeaheadSize, string>;\n\nexport function TypeaheadView<TOption>({\n root,\n state,\n ids,\n input,\n selection,\n list,\n createOption,\n popoverContentRef,\n}: TypeaheadViewProps<TOption>) {\n const controlRef = useRef<HTMLDivElement | null>(null);\n const preventInputDismiss = (event: Event) => {\n if (\n open &&\n event.target instanceof HTMLInputElement &&\n event.target.getAttribute('role') === 'combobox' &&\n controlRef.current?.contains(event.target)\n ) {\n event.preventDefault();\n }\n };\n const { ref: rootRef, handleBlur, dataTestId, className } = root;\n const { size, disabled, isError, multiple, open, setOpen } = state;\n const {\n commandLabel,\n resolvedInputId,\n listId,\n selectedSummaryId,\n inputAriaLabel,\n } = ids;\n const {\n value: inputValue,\n onValueChange: handleInputValueChange,\n onKeyDown: handleKeyDown,\n placeholder,\n leftDecorator,\n showPlaceholderWithValues,\n autoFocus,\n autoComplete,\n setNode: setInputNode,\n focus: focusInput,\n } = input;\n const {\n selectedValues,\n selectedKeys,\n getTagProps,\n renderTags,\n getLabel,\n getValue,\n showClearButton,\n clearValue,\n forcePopupIcon,\n selectedSummary,\n } = selection;\n const {\n ref: listRef,\n items,\n emptyText,\n emptyState,\n listFooter,\n hideEmptyList,\n optionIsDisabled,\n selectValue,\n renderOption,\n } = list;\n const hasValue = selectedValues.length > 0;\n const visibleItems = open ? items : [];\n const visibleShowCreateOption = open && createOption.show;\n const showEmptyState =\n open &&\n visibleItems.length === 0 &&\n !visibleShowCreateOption &&\n (emptyState != null || !hideEmptyList);\n const controlHeightClass = multiple\n ? CONTROL_SIZES[size].minHeightClassName\n : CONTROL_SIZES[size].heightClassName;\n const controlPaddingClass =\n size === 'xs' || size === 'sm' ? 'px-space-2' : 'px-space-3';\n const renderedTags =\n multiple &&\n (renderTags\n ? renderTags(selectedValues, getTagProps)\n : selectedValues.map((selected, index) => {\n const tagProps = getTagProps({ index });\n return (\n <TypeaheadDefaultTag\n key={`${getValue(selected)}-${index}`}\n selected={selected}\n index={index}\n disabled={disabled}\n size={size}\n getLabel={getLabel}\n getValue={getValue}\n onRemove={tagProps.onDelete}\n />\n );\n }));\n const inputField = (\n <div\n className={cn(\n 'flex items-center gap-space-2',\n multiple ? 'min-w-0 flex-1' : 'flex-1',\n !multiple && (size === 'xs' ? 'min-w-12' : 'min-w-16')\n )}\n >\n {leftDecorator != null ? (\n <div className=\"flex min-w-0 shrink items-center text-icon-tertiary\">\n {leftDecorator}\n </div>\n ) : !multiple && !hasValue ? (\n <Icon\n aria-hidden\n icon={MagnifyingGlassIcon}\n iconClassName={CONTROL_ICON_SIZES[size].iconClassName}\n className=\"text-icon-tertiary\"\n weight=\"regular\"\n />\n ) : null}\n {/*\n cmdk rewrites some of these combobox attributes as the query changes, so\n useTypeaheadDomSync re-asserts them imperatively. Keep the two attribute\n sets in sync when editing either here or in that hook.\n */}\n <CommandPrimitive.Input\n ref={setInputNode}\n id={resolvedInputId}\n value={inputValue}\n onValueChange={handleInputValueChange}\n onFocus={() => {\n if (!disabled) {\n setOpen(true);\n }\n }}\n onKeyDown={handleKeyDown}\n placeholder={\n hasValue && multiple && !showPlaceholderWithValues\n ? undefined\n : placeholder\n }\n disabled={disabled}\n autoFocus={autoFocus}\n autoComplete={autoComplete}\n role=\"combobox\"\n aria-expanded={open}\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-invalid={isError || undefined}\n aria-describedby={multiple ? selectedSummaryId : undefined}\n aria-label={inputAriaLabel}\n className={cn(\n 'min-w-0 max-w-full border-none bg-transparent p-0 outline-none placeholder:text-placeholder',\n INPUT_TEXT_CLASSES[size],\n disabled && 'cursor-not-allowed',\n multiple\n ? cn(MULTIPLE_INPUT_HEIGHT_CLASSES[size], 'w-full')\n : 'h-full w-full flex-1'\n )}\n />\n </div>\n );\n const actionControls = (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-space-1 text-icon-tertiary',\n multiple ? 'self-center' : 'ml-auto'\n )}\n style={{\n marginInlineEnd:\n showClearButton && !forcePopupIcon\n ? CONTROL_ICON_SIZES[size].actionOffset\n : undefined,\n }}\n >\n {showClearButton && (\n <TypeaheadClearButton\n size={size}\n label={multiple ? 'Clear selections' : 'Clear selection'}\n onClick={(event) => {\n event.stopPropagation();\n clearValue();\n }}\n />\n )}\n {forcePopupIcon && (\n <Icon\n aria-hidden\n icon={CaretDownIcon}\n iconClassName={CONTROL_ICON_SIZES[size].iconClassName}\n className={cn(\n 'text-icon-tertiary transition-transform',\n open && 'rotate-180'\n )}\n weight=\"regular\"\n />\n )}\n </div>\n );\n\n return (\n <Command\n ref={rootRef}\n shouldFilter={false}\n label={commandLabel}\n className=\"overflow-visible bg-transparent\"\n >\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverAnchor asChild>\n <div\n ref={controlRef}\n {...root.props}\n data-testid={dataTestId}\n onBlur={handleBlur}\n className={cn(\n 'w-full cursor-text border border-default bg-elevated text-primary transition-colors',\n multiple\n ? 'flex flex-wrap items-center gap-space-1'\n : 'flex items-center gap-space-1 overflow-hidden',\n 'focus-within:border-focus focus-within:bg-elevated hover:bg-elevated-hover',\n controlHeightClass,\n multiple && {\n 'px-space-1 py-0': size === 'xs',\n 'px-space-1 py-px': size === 'sm',\n 'px-space-2 py-0.5': size === 'md',\n 'px-space-3 py-space-1': size === 'lg',\n },\n !multiple && controlPaddingClass,\n CONTROL_RADIUS_CLASSES[size],\n isError && 'border-error focus-within:border-error',\n disabled &&\n 'cursor-not-allowed border-disabled bg-disabled text-disabled opacity-70',\n className\n )}\n onClick={(event) => {\n root.props.onClick?.(event);\n if (!disabled) {\n focusInput();\n setOpen(true);\n }\n }}\n >\n {multiple ? (\n <>\n {renderedTags}\n <div className=\"flex min-w-16 flex-1 items-center gap-space-1\">\n {inputField}\n {actionControls}\n </div>\n </>\n ) : (\n <>\n {inputField}\n {actionControls}\n </>\n )}\n </div>\n </PopoverAnchor>\n\n {multiple && (\n <span\n id={selectedSummaryId}\n className=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {selectedSummary}\n </span>\n )}\n\n <PopoverContent\n ref={popoverContentRef}\n hidden={!open}\n className={cn(\n 'w-[var(--radix-popover-trigger-width)] min-w-48 max-w-[calc(100vw-1rem)] bg-elevated p-space-1 text-primary',\n !open && 'hidden'\n )}\n align=\"start\"\n sideOffset={4}\n forceMount\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onFocusOutside={preventInputDismiss}\n onInteractOutside={preventInputDismiss}\n >\n <CommandList\n ref={listRef}\n id={listId}\n aria-label={`${commandLabel} options`}\n aria-multiselectable={multiple ? true : undefined}\n className=\"max-h-[18.75rem]\"\n >\n {showEmptyState && (\n <CommandEmpty>\n {emptyState ?? (\n <Text variant=\"sm\" color=\"secondary\">\n {emptyText}\n </Text>\n )}\n </CommandEmpty>\n )}\n\n {visibleItems.map((item) => {\n const { option } = item;\n const optionKey = getValue(option);\n const optionLabel = getLabel(option);\n const selected = selectedKeys.has(optionKey);\n const optionDisabled = optionIsDisabled(item);\n const optionState = {\n selected,\n disabled: optionDisabled,\n inputValue,\n };\n\n return (\n <CommandItem\n key={optionKey}\n value={optionKey}\n disabled={optionDisabled}\n keywords={\n isTypeaheadOption(option)\n ? [optionLabel, ...(option.keywords ?? [])]\n : [optionLabel]\n }\n onSelect={() => selectValue(option)}\n aria-checked={multiple ? selected : undefined}\n className={cn(\n 'flex items-center gap-space-2 rounded-sm px-space-2 py-space-2 text-sm text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2',\n optionDisabled && 'text-disabled'\n )}\n >\n {renderOption && item.source === 'option' ? (\n renderOption(option as TOption, optionState)\n ) : (\n <TypeaheadDefaultOption\n option={option}\n state={optionState}\n getLabel={getLabel}\n />\n )}\n </CommandItem>\n );\n })}\n\n {visibleShowCreateOption && (\n <CommandItem\n value={`__typeahead_create__${createOption.inputValue}`}\n keywords={[createOption.inputValue]}\n onSelect={createOption.onCreate}\n aria-label={\n createOption.inputValue\n ? `Add ${createOption.inputValue}`\n : 'Add new'\n }\n className=\"flex items-center gap-space-2 rounded-sm p-space-2 text-sm text-primary hover:bg-surface-level-2 aria-selected:bg-surface-level-2\"\n >\n <TypeaheadCreateOption\n inputValue={createOption.inputValue}\n label={createOption.label}\n />\n </CommandItem>\n )}\n\n {listFooter}\n </CommandList>\n </PopoverContent>\n </Popover>\n </Command>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AA6HA,IAAM,yBAAyB;CAC7B,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,gCAAgC;CACpC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,qBAAqB;CACzB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,SAAgB,cAAuB,EACrC,MACA,OACA,KACA,OACA,WACA,MACA,cACA,qBAC8B;CAC9B,MAAM,aAAa,OAA8B,IAAI;CACrD,MAAM,uBAAuB,UAAiB;EAC5C,IACE,QACA,MAAM,kBAAkB,oBACxB,MAAM,OAAO,aAAa,MAAM,MAAM,cACtC,WAAW,SAAS,SAAS,MAAM,MAAM,GAEzC,MAAM,eAAe;CAEzB;CACA,MAAM,EAAE,KAAK,SAAS,YAAY,YAAY,cAAc;CAC5D,MAAM,EAAE,MAAM,UAAU,SAAS,UAAU,MAAM,YAAY;CAC7D,MAAM,EACJ,cACA,iBACA,QACA,mBACA,mBACE;CACJ,MAAM,EACJ,OAAO,YACP,eAAe,wBACf,WAAW,eACX,aACA,eACA,2BACA,WACA,cACA,SAAS,cACT,OAAO,eACL;CACJ,MAAM,EACJ,gBACA,cACA,aACA,YACA,UACA,UACA,iBACA,YACA,gBACA,oBACE;CACJ,MAAM,EACJ,KAAK,SACL,OACA,WACA,YACA,YACA,eACA,kBACA,aACA,iBACE;CACJ,MAAM,WAAW,eAAe,SAAS;CACzC,MAAM,eAAe,OAAO,QAAQ,CAAC;CACrC,MAAM,0BAA0B,QAAQ,aAAa;CACrD,MAAM,iBACJ,QACA,aAAa,WAAW,KACxB,CAAC,4BACA,cAAc,QAAQ,CAAC;CAC1B,MAAM,qBAAqB,WACvB,cAAc,KAAK,CAAC,qBACpB,cAAc,KAAK,CAAC;CACxB,MAAM,sBACJ,SAAS,QAAQ,SAAS,OAAO,eAAe;CAClD,MAAM,eACJ,aACC,aACG,WAAW,gBAAgB,WAAW,IACtC,eAAe,KAAK,UAAU,UAAU;EACtC,MAAM,WAAW,YAAY,EAAE,MAAM,CAAC;EACtC,OACE,oBAAC,qBAAD;GAEY;GACH;GACG;GACJ;GACI;GACA;GACV,UAAU,SAAS;EACpB,GARM,GAAG,SAAS,QAAQ,EAAE,GAAG,OAQ/B;CAEL,CAAC;CACP,MAAM,aACJ,qBAAC,OAAD;EACE,WAAW,GACT,iCACA,WAAW,mBAAmB,UAC9B,CAAC,aAAa,SAAS,OAAO,aAAa,WAC7C;EALF,UAAA,CAOG,iBAAiB,OAChB,oBAAC,OAAD;GAAK,WAAU;GACZ,UAAA;EACE,CAAA,IACH,CAAC,YAAY,CAAC,WAChB,oBAAC,MAAD;GACE,eAAA;GACA,MAAM;GACN,eAAe,mBAAmB,KAAK,CAAC;GACxC,WAAU;GACV,QAAO;EACR,CAAA,IACC,MAMJ,oBAAC,QAAiB,OAAlB;GACE,KAAK;GACL,IAAI;GACJ,OAAO;GACP,eAAe;GACf,eAAe;IACb,IAAI,CAAC,UACH,QAAQ,IAAI;GAEhB;GACA,WAAW;GACX,aACE,YAAY,YAAY,CAAC,4BACrB,KAAA,IACA;GAEI;GACC;GACG;GACd,MAAK;GACL,iBAAe;GACf,iBAAe;GACf,qBAAkB;GAClB,iBAAc;GACd,gBAAc,WAAW,KAAA;GACzB,oBAAkB,WAAW,oBAAoB,KAAA;GACjD,cAAY;GACZ,WAAW,GACT,+FACA,mBAAmB,OACnB,YAAY,sBACZ,WACI,GAAG,8BAA8B,OAAO,QAAQ,IAChD,sBACN;EACD,CAAA,CACE;;CAEP,MAAM,iBACJ,qBAAC,OAAD;EACE,WAAW,GACT,6DACA,WAAW,gBAAgB,SAC7B;EACA,OAAO,EACL,iBACE,mBAAmB,CAAC,iBAChB,mBAAmB,KAAK,CAAC,eACzB,KAAA,EACR;EAVF,UAAA,CAYG,mBACC,oBAAC,sBAAD;GACQ;GACN,OAAO,WAAW,qBAAqB;GACvC,UAAU,UAAU;IAClB,MAAM,gBAAgB;IACtB,WAAW;GACb;EACD,CAAA,GAEF,kBACC,oBAAC,MAAD;GACE,eAAA;GACA,MAAM;GACN,eAAe,mBAAmB,KAAK,CAAC;GACxC,WAAW,GACT,2CACA,QAAQ,YACV;GACA,QAAO;EACR,CAAA,CAEA;;CAGP,OACE,oBAAC,WAAD;EACE,KAAK;EACL,cAAc;EACd,OAAO;EACP,WAAU;EAEV,UAAA,qBAAC,SAAD;GAAe;GAAM,cAAc;GAAnC,UAAA;IACE,oBAAC,eAAD;KAAe,SAAA;KACb,UAAA,oBAAC,OAAD;MACE,KAAK;MACL,GAAI,KAAK;MACT,eAAa;MACb,QAAQ;MACR,WAAW,GACT,uFACA,WACI,4CACA,iDACJ,8EACA,oBACA,YAAY;OACV,mBAAmB,SAAS;OAC5B,oBAAoB,SAAS;OAC7B,qBAAqB,SAAS;OAC9B,yBAAyB,SAAS;MACpC,GACA,CAAC,YAAY,qBACb,uBAAuB,OACvB,WAAW,0CACX,YACE,2EACF,SACF;MACA,UAAU,UAAU;OAClB,KAAK,MAAM,UAAU,KAAK;OAC1B,IAAI,CAAC,UAAU;QACb,WAAW;QACX,QAAQ,IAAI;OACd;MACF;MAEC,UAAA,WACC,qBAAA,YAAA,EAAA,UAAA,CACG,cACD,qBAAC,OAAD;OAAK,WAAU;OAAf,UAAA,CACG,YACA,cACE;MACL,CAAA,CAAA,EAAA,CAAA,IAEF,qBAAA,YAAA,EAAA,UAAA,CACG,YACA,cACD,EAAA,CAAA;KAED,CAAA;IACQ,CAAA;IAEd,YACC,oBAAC,QAAD;KACE,IAAI;KACJ,WAAU;KACV,aAAU;KACV,eAAY;KAEX,UAAA;IACG,CAAA;IAGR,oBAAC,gBAAD;KACE,KAAK;KACL,QAAQ,CAAC;KACT,WAAW,GACT,+GACA,CAAC,QAAQ,QACX;KACA,OAAM;KACN,YAAY;KACZ,YAAA;KACA,kBAAkB,UAAU,MAAM,eAAe;KACjD,mBAAmB,UAAU,MAAM,eAAe;KAClD,gBAAgB;KAChB,mBAAmB;KAEnB,UAAA,qBAAC,aAAD;MACE,KAAK;MACL,IAAI;MACJ,cAAY,GAAG,aAAa;MAC5B,wBAAsB,WAAW,OAAO,KAAA;MACxC,WAAU;MALZ,UAAA;OAOG,kBACC,oBAAC,cAAD,EAAA,UACG,cACC,oBAAC,MAAD;QAAM,SAAQ;QAAK,OAAM;QACtB,UAAA;OACG,CAAA,EAEI,CAAA;OAGf,aAAa,KAAK,SAAS;QAC1B,MAAM,EAAE,WAAW;QACnB,MAAM,YAAY,SAAS,MAAM;QACjC,MAAM,cAAc,SAAS,MAAM;QACnC,MAAM,WAAW,aAAa,IAAI,SAAS;QAC3C,MAAM,iBAAiB,iBAAiB,IAAI;QAC5C,MAAM,cAAc;SAClB;SACA,UAAU;SACV;QACF;QAEA,OACE,oBAAC,aAAD;SAEE,OAAO;SACP,UAAU;SACV,UACE,kBAAkB,MAAM,IACpB,CAAC,aAAa,GAAI,OAAO,YAAY,CAAC,CAAE,IACxC,CAAC,WAAW;SAElB,gBAAgB,YAAY,MAAM;SAClC,gBAAc,WAAW,WAAW,KAAA;SACpC,WAAW,GACT,iJACA,kBAAkB,eACpB;SAEC,UAAA,gBAAgB,KAAK,WAAW,WAC/B,aAAa,QAAmB,WAAW,IAE3C,oBAAC,wBAAD;UACU;UACR,OAAO;UACG;SACX,CAAA;QAEQ,GAxBN,SAwBM;OAEjB,CAAC;OAEA,2BACC,oBAAC,aAAD;QACE,OAAO,uBAAuB,aAAa;QAC3C,UAAU,CAAC,aAAa,UAAU;QAClC,UAAU,aAAa;QACvB,cACE,aAAa,aACT,OAAO,aAAa,eACpB;QAEN,WAAU;QAEV,UAAA,oBAAC,uBAAD;SACE,YAAY,aAAa;SACzB,OAAO,aAAa;QACrB,CAAA;OACU,CAAA;OAGd;MACU;;IACC,CAAA;GACT;;CACF,CAAA;AAEb"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
export declare function useTypeaheadDomSync({ autoComplete, commandLabel, inputAriaLabel, inputRef, inputValue, isError, listId, listRef, multiple, open, resolvedInputId, selectedSummaryId, }: {
|
|
3
|
+
autoComplete?: string;
|
|
4
|
+
commandLabel: string;
|
|
5
|
+
inputAriaLabel?: string;
|
|
6
|
+
inputRef: RefObject<HTMLInputElement | null>;
|
|
7
|
+
inputValue: string;
|
|
8
|
+
isError: boolean;
|
|
9
|
+
listId: string;
|
|
10
|
+
listRef: RefObject<HTMLDivElement | null>;
|
|
11
|
+
multiple?: boolean;
|
|
12
|
+
open: boolean;
|
|
13
|
+
resolvedInputId: string;
|
|
14
|
+
selectedSummaryId: string;
|
|
15
|
+
}): void;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
//#region packages/components/src/components/Typeahead/useTypeaheadDomSync.ts
|
|
3
|
+
function useTypeaheadDomSync({ autoComplete, commandLabel, inputAriaLabel, inputRef, inputValue, isError, listId, listRef, multiple, open, resolvedInputId, selectedSummaryId }) {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const input = inputRef.current;
|
|
6
|
+
const list = listRef.current;
|
|
7
|
+
input?.setAttribute("id", resolvedInputId);
|
|
8
|
+
input?.setAttribute("aria-controls", listId);
|
|
9
|
+
input?.setAttribute("aria-expanded", String(open));
|
|
10
|
+
input?.setAttribute("aria-haspopup", "listbox");
|
|
11
|
+
input?.setAttribute("autocomplete", autoComplete ?? "off");
|
|
12
|
+
if (inputAriaLabel) input?.setAttribute("aria-label", inputAriaLabel);
|
|
13
|
+
else {
|
|
14
|
+
input?.removeAttribute("aria-label");
|
|
15
|
+
input?.removeAttribute("aria-labelledby");
|
|
16
|
+
}
|
|
17
|
+
if (isError) input?.setAttribute("aria-invalid", "true");
|
|
18
|
+
else input?.removeAttribute("aria-invalid");
|
|
19
|
+
if (multiple) input?.setAttribute("aria-describedby", selectedSummaryId);
|
|
20
|
+
else input?.removeAttribute("aria-describedby");
|
|
21
|
+
list?.setAttribute("id", listId);
|
|
22
|
+
list?.setAttribute("aria-label", `${commandLabel} options`);
|
|
23
|
+
if (multiple) list?.setAttribute("aria-multiselectable", "true");
|
|
24
|
+
else list?.removeAttribute("aria-multiselectable");
|
|
25
|
+
}, [
|
|
26
|
+
autoComplete,
|
|
27
|
+
commandLabel,
|
|
28
|
+
inputAriaLabel,
|
|
29
|
+
inputRef,
|
|
30
|
+
inputValue,
|
|
31
|
+
isError,
|
|
32
|
+
listId,
|
|
33
|
+
listRef,
|
|
34
|
+
multiple,
|
|
35
|
+
open,
|
|
36
|
+
resolvedInputId,
|
|
37
|
+
selectedSummaryId
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { useTypeaheadDomSync };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=useTypeaheadDomSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTypeaheadDomSync.js","names":[],"sources":["../../../src/components/Typeahead/useTypeaheadDomSync.ts"],"sourcesContent":["import type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nexport function useTypeaheadDomSync({\n autoComplete,\n commandLabel,\n inputAriaLabel,\n inputRef,\n inputValue,\n isError,\n listId,\n listRef,\n multiple,\n open,\n resolvedInputId,\n selectedSummaryId,\n}: {\n autoComplete?: string;\n commandLabel: string;\n inputAriaLabel?: string;\n inputRef: RefObject<HTMLInputElement | null>;\n inputValue: string;\n isError: boolean;\n listId: string;\n listRef: RefObject<HTMLDivElement | null>;\n multiple?: boolean;\n open: boolean;\n resolvedInputId: string;\n selectedSummaryId: string;\n}) {\n useEffect(() => {\n // cmdk owns these DOM nodes and may rewrite combobox attributes as input changes.\n const input = inputRef.current;\n const list = listRef.current;\n\n input?.setAttribute('id', resolvedInputId);\n input?.setAttribute('aria-controls', listId);\n input?.setAttribute('aria-expanded', String(open));\n input?.setAttribute('aria-haspopup', 'listbox');\n input?.setAttribute('autocomplete', autoComplete ?? 'off');\n if (inputAriaLabel) {\n input?.setAttribute('aria-label', inputAriaLabel);\n } else {\n input?.removeAttribute('aria-label');\n input?.removeAttribute('aria-labelledby');\n }\n if (isError) {\n input?.setAttribute('aria-invalid', 'true');\n } else {\n input?.removeAttribute('aria-invalid');\n }\n if (multiple) {\n input?.setAttribute('aria-describedby', selectedSummaryId);\n } else {\n input?.removeAttribute('aria-describedby');\n }\n\n list?.setAttribute('id', listId);\n list?.setAttribute('aria-label', `${commandLabel} options`);\n if (multiple) {\n list?.setAttribute('aria-multiselectable', 'true');\n } else {\n list?.removeAttribute('aria-multiselectable');\n }\n }, [\n autoComplete,\n commandLabel,\n inputAriaLabel,\n inputRef,\n inputValue,\n isError,\n listId,\n listRef,\n multiple,\n open,\n resolvedInputId,\n selectedSummaryId,\n ]);\n}\n"],"mappings":";;AAGA,SAAgB,oBAAoB,EAClC,cACA,cACA,gBACA,UACA,YACA,SACA,QACA,SACA,UACA,MACA,iBACA,qBAcC;CACD,gBAAgB;EAEd,MAAM,QAAQ,SAAS;EACvB,MAAM,OAAO,QAAQ;EAErB,OAAO,aAAa,MAAM,eAAe;EACzC,OAAO,aAAa,iBAAiB,MAAM;EAC3C,OAAO,aAAa,iBAAiB,OAAO,IAAI,CAAC;EACjD,OAAO,aAAa,iBAAiB,SAAS;EAC9C,OAAO,aAAa,gBAAgB,gBAAgB,KAAK;EACzD,IAAI,gBACF,OAAO,aAAa,cAAc,cAAc;OAC3C;GACL,OAAO,gBAAgB,YAAY;GACnC,OAAO,gBAAgB,iBAAiB;EAC1C;EACA,IAAI,SACF,OAAO,aAAa,gBAAgB,MAAM;OAE1C,OAAO,gBAAgB,cAAc;EAEvC,IAAI,UACF,OAAO,aAAa,oBAAoB,iBAAiB;OAEzD,OAAO,gBAAgB,kBAAkB;EAG3C,MAAM,aAAa,MAAM,MAAM;EAC/B,MAAM,aAAa,cAAc,GAAG,aAAa,SAAS;EAC1D,IAAI,UACF,MAAM,aAAa,wBAAwB,MAAM;OAEjD,MAAM,gBAAgB,sBAAsB;CAEhD,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TypeaheadMultipleValue, TypeaheadSelectedValue, TypeaheadSingleValue } from './Typeahead.types.js';
|
|
2
|
+
export declare function useTypeaheadUncontrolledInput<TOption>({ clearOnBlur, controlledInputValue, freeSolo, getLabel, multiple, open, setUncontrolledInputValue, value, }: {
|
|
3
|
+
clearOnBlur?: boolean;
|
|
4
|
+
controlledInputValue?: string;
|
|
5
|
+
freeSolo: boolean;
|
|
6
|
+
getLabel: (option: TypeaheadSelectedValue<TOption>) => string;
|
|
7
|
+
multiple?: boolean;
|
|
8
|
+
open: boolean;
|
|
9
|
+
setUncontrolledInputValue: (value: string) => void;
|
|
10
|
+
value: TypeaheadSingleValue<TOption> | TypeaheadMultipleValue<TOption>;
|
|
11
|
+
}): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
//#region packages/components/src/components/Typeahead/useTypeaheadUncontrolledInput.ts
|
|
3
|
+
function useTypeaheadUncontrolledInput({ clearOnBlur, controlledInputValue, freeSolo, getLabel, multiple, open, setUncontrolledInputValue, value }) {
|
|
4
|
+
const singleValue = Array.isArray(value) ? null : value;
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
if (controlledInputValue !== void 0 || multiple) return;
|
|
7
|
+
setUncontrolledInputValue(singleValue == null ? "" : getLabel(singleValue));
|
|
8
|
+
}, [
|
|
9
|
+
controlledInputValue,
|
|
10
|
+
getLabel,
|
|
11
|
+
multiple,
|
|
12
|
+
setUncontrolledInputValue,
|
|
13
|
+
singleValue
|
|
14
|
+
]);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (open || controlledInputValue !== void 0) return;
|
|
17
|
+
if (clearOnBlur ?? !freeSolo) setUncontrolledInputValue(multiple || singleValue == null ? "" : getLabel(singleValue));
|
|
18
|
+
}, [
|
|
19
|
+
clearOnBlur,
|
|
20
|
+
controlledInputValue,
|
|
21
|
+
freeSolo,
|
|
22
|
+
getLabel,
|
|
23
|
+
multiple,
|
|
24
|
+
open,
|
|
25
|
+
setUncontrolledInputValue,
|
|
26
|
+
singleValue
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { useTypeaheadUncontrolledInput };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=useTypeaheadUncontrolledInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTypeaheadUncontrolledInput.js","names":[],"sources":["../../../src/components/Typeahead/useTypeaheadUncontrolledInput.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport type {\n TypeaheadMultipleValue,\n TypeaheadSelectedValue,\n TypeaheadSingleValue,\n} from './Typeahead.types';\n\nexport function useTypeaheadUncontrolledInput<TOption>({\n clearOnBlur,\n controlledInputValue,\n freeSolo,\n getLabel,\n multiple,\n open,\n setUncontrolledInputValue,\n value,\n}: {\n clearOnBlur?: boolean;\n controlledInputValue?: string;\n freeSolo: boolean;\n getLabel: (option: TypeaheadSelectedValue<TOption>) => string;\n multiple?: boolean;\n open: boolean;\n setUncontrolledInputValue: (value: string) => void;\n value: TypeaheadSingleValue<TOption> | TypeaheadMultipleValue<TOption>;\n}) {\n const singleValue: TypeaheadSingleValue<TOption> = Array.isArray(value)\n ? null\n : value;\n\n useEffect(() => {\n if (controlledInputValue !== undefined || multiple) return;\n setUncontrolledInputValue(singleValue == null ? '' : getLabel(singleValue));\n }, [\n controlledInputValue,\n getLabel,\n multiple,\n setUncontrolledInputValue,\n singleValue,\n ]);\n\n useEffect(() => {\n if (open || controlledInputValue !== undefined) return;\n if (clearOnBlur ?? !freeSolo) {\n setUncontrolledInputValue(\n multiple || singleValue == null ? '' : getLabel(singleValue)\n );\n }\n }, [\n clearOnBlur,\n controlledInputValue,\n freeSolo,\n getLabel,\n multiple,\n open,\n setUncontrolledInputValue,\n singleValue,\n ]);\n}\n"],"mappings":";;AAQA,SAAgB,8BAAuC,EACrD,aACA,sBACA,UACA,UACA,UACA,MACA,2BACA,SAUC;CACD,MAAM,cAA6C,MAAM,QAAQ,KAAK,IAClE,OACA;CAEJ,gBAAgB;EACd,IAAI,yBAAyB,KAAA,KAAa,UAAU;EACpD,0BAA0B,eAAe,OAAO,KAAK,SAAS,WAAW,CAAC;CAC5E,GAAG;EACD;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,gBAAgB;EACd,IAAI,QAAQ,yBAAyB,KAAA,GAAW;EAChD,IAAI,eAAe,CAAC,UAClB,0BACE,YAAY,eAAe,OAAO,KAAK,SAAS,WAAW,CAC7D;CAEJ,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
type TProps = {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onConfirm?: () => Promise<void> | void;
|
|
6
|
+
onDiscard?: () => void;
|
|
7
|
+
title: string;
|
|
8
|
+
description: string;
|
|
9
|
+
saveCopy?: string | ReactNode;
|
|
10
|
+
discardCopy?: string;
|
|
11
|
+
disabledSaveTooltip?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const UnsavedChangesDialog: FC<TProps>;
|
|
14
|
+
export default UnsavedChangesDialog;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Text } from "./Text/Text.js";
|
|
2
|
+
import { Tooltip } from "./Tooltip/Tooltip.js";
|
|
3
|
+
import { Button } from "./Button/Button.js";
|
|
4
|
+
import { Dialog, DialogContent } from "./Dialog/index.js";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { FloppyDiskIcon } from "@phosphor-icons/react/dist/ssr/FloppyDisk";
|
|
7
|
+
import { WarningCircleIcon } from "@phosphor-icons/react/dist/ssr/WarningCircle";
|
|
8
|
+
//#region packages/components/src/components/UnsavedChangesDialog.tsx
|
|
9
|
+
var UnsavedChangesDialog = ({ isOpen, onClose, onConfirm, onDiscard, title, description, saveCopy = "Save", discardCopy = "Discard", disabledSaveTooltip }) => {
|
|
10
|
+
return /* @__PURE__ */ jsx(Dialog, {
|
|
11
|
+
open: isOpen,
|
|
12
|
+
onOpenChange: (open) => !open && onClose(),
|
|
13
|
+
children: /* @__PURE__ */ jsxs(DialogContent, {
|
|
14
|
+
className: "w-96 flex-col rounded-lg bg-background shadow-xl",
|
|
15
|
+
onEscapeKeyDown: (e) => {
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
onClose();
|
|
18
|
+
},
|
|
19
|
+
title,
|
|
20
|
+
titleIcon: onConfirm ? FloppyDiskIcon : WarningCircleIcon,
|
|
21
|
+
titleIconIntent: onConfirm ? "info" : "warning",
|
|
22
|
+
showClose: false,
|
|
23
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
24
|
+
variant: "sm",
|
|
25
|
+
color: "secondary",
|
|
26
|
+
children: description
|
|
27
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
28
|
+
className: "flex w-full flex-row justify-end gap-2",
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ jsx(Button, {
|
|
31
|
+
"data-testid": "save-confirmation-modal-cancel-button",
|
|
32
|
+
size: "sm",
|
|
33
|
+
color: "secondary",
|
|
34
|
+
onClick: onClose,
|
|
35
|
+
children: "Cancel"
|
|
36
|
+
}),
|
|
37
|
+
onDiscard && /* @__PURE__ */ jsx(Button, {
|
|
38
|
+
size: "sm",
|
|
39
|
+
"data-testid": "save-confirmation-modal-discard-button",
|
|
40
|
+
color: "error",
|
|
41
|
+
variant: "outlined",
|
|
42
|
+
onClick: onDiscard,
|
|
43
|
+
children: discardCopy
|
|
44
|
+
}),
|
|
45
|
+
onConfirm && /* @__PURE__ */ jsx(Tooltip, {
|
|
46
|
+
title: disabledSaveTooltip,
|
|
47
|
+
children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Button, {
|
|
48
|
+
size: "sm",
|
|
49
|
+
"data-testid": "save-confirmation-modal-save-button",
|
|
50
|
+
color: "primary",
|
|
51
|
+
disabled: !!disabledSaveTooltip,
|
|
52
|
+
onClick: async () => {
|
|
53
|
+
await onConfirm();
|
|
54
|
+
onClose();
|
|
55
|
+
},
|
|
56
|
+
children: saveCopy
|
|
57
|
+
}) })
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
})]
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
//#endregion
|
|
65
|
+
export { UnsavedChangesDialog as default };
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=UnsavedChangesDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnsavedChangesDialog.js","names":[],"sources":["../../src/components/UnsavedChangesDialog.tsx"],"sourcesContent":["import type { FC, ReactNode } from 'react';\n\nimport { FloppyDiskIcon } from '@phosphor-icons/react/dist/ssr/FloppyDisk';\nimport { WarningCircleIcon } from '@phosphor-icons/react/dist/ssr/WarningCircle';\n\nimport { Button } from './Button';\nimport { Dialog, DialogContent } from './Dialog';\nimport { Text } from './Text';\nimport { Tooltip } from './Tooltip';\n\ntype TProps = {\n isOpen: boolean;\n onClose: () => void;\n onConfirm?: () => Promise<void> | void;\n onDiscard?: () => void;\n title: string;\n description: string;\n saveCopy?: string | ReactNode;\n discardCopy?: string;\n disabledSaveTooltip?: string;\n};\n\nconst UnsavedChangesDialog: FC<TProps> = ({\n isOpen,\n onClose,\n onConfirm,\n onDiscard,\n title,\n description,\n saveCopy = 'Save',\n discardCopy = 'Discard',\n disabledSaveTooltip,\n}) => {\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>\n <DialogContent\n className=\"w-96 flex-col rounded-lg bg-background shadow-xl\"\n onEscapeKeyDown={(e) => {\n e.preventDefault();\n onClose();\n }}\n title={title}\n titleIcon={onConfirm ? FloppyDiskIcon : WarningCircleIcon}\n titleIconIntent={onConfirm ? 'info' : 'warning'}\n showClose={false}\n >\n <Text variant=\"sm\" color=\"secondary\">\n {description}\n </Text>\n <div className=\"flex w-full flex-row justify-end gap-2\">\n <Button\n data-testid=\"save-confirmation-modal-cancel-button\"\n size=\"sm\"\n color=\"secondary\"\n onClick={onClose}\n >\n Cancel\n </Button>\n {onDiscard && (\n <Button\n size=\"sm\"\n data-testid=\"save-confirmation-modal-discard-button\"\n color=\"error\"\n variant=\"outlined\"\n onClick={onDiscard}\n >\n {discardCopy}\n </Button>\n )}\n\n {onConfirm && (\n <Tooltip title={disabledSaveTooltip}>\n <div>\n <Button\n size=\"sm\"\n data-testid=\"save-confirmation-modal-save-button\"\n color=\"primary\"\n disabled={!!disabledSaveTooltip}\n onClick={async () => {\n await onConfirm();\n onClose();\n }}\n >\n {saveCopy}\n </Button>\n </div>\n </Tooltip>\n )}\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default UnsavedChangesDialog;\n"],"mappings":";;;;;;;;AAsBA,IAAM,wBAAoC,EACxC,QACA,SACA,WACA,WACA,OACA,aACA,WAAW,QACX,cAAc,WACd,0BACI;CACJ,OACE,oBAAC,QAAD;EAAQ,MAAM;EAAQ,eAAe,SAAS,CAAC,QAAQ,QAAQ;EAC7D,UAAA,qBAAC,eAAD;GACE,WAAU;GACV,kBAAkB,MAAM;IACtB,EAAE,eAAe;IACjB,QAAQ;GACV;GACO;GACP,WAAW,YAAY,iBAAiB;GACxC,iBAAiB,YAAY,SAAS;GACtC,WAAW;GATb,UAAA,CAWE,oBAAC,MAAD;IAAM,SAAQ;IAAK,OAAM;IACtB,UAAA;GACG,CAAA,GACN,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,oBAAC,QAAD;MACE,eAAY;MACZ,MAAK;MACL,OAAM;MACN,SAAS;MACV,UAAA;KAEO,CAAA;KACP,aACC,oBAAC,QAAD;MACE,MAAK;MACL,eAAY;MACZ,OAAM;MACN,SAAQ;MACR,SAAS;MAER,UAAA;KACK,CAAA;KAGT,aACC,oBAAC,SAAD;MAAS,OAAO;MACd,UAAA,oBAAC,OAAD,EAAA,UACE,oBAAC,QAAD;OACE,MAAK;OACL,eAAY;OACZ,OAAM;OACN,UAAU,CAAC,CAAC;OACZ,SAAS,YAAY;QACnB,MAAM,UAAU;QAChB,QAAQ;OACV;OAEC,UAAA;MACK,CAAA,EACL,CAAA;KACE,CAAA;IAER;GACQ,CAAA,CAAA;;CACT,CAAA;AAEZ"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export { Button } from './Button/index.js';
|
|
2
|
+
export type { ButtonProps } from './Button/index.js';
|
|
3
|
+
export { ButtonGroup } from './ButtonGroup/index.js';
|
|
4
|
+
export type { ButtonGroupProps } from './ButtonGroup/index.js';
|
|
5
|
+
export { Card } from './Card/index.js';
|
|
6
|
+
export type { CardIntent, CardProps } from './Card/index.js';
|
|
7
|
+
export { Divider } from './Divider/index.js';
|
|
8
|
+
export type { DividerProps } from './Divider/index.js';
|
|
9
|
+
export { EmptyState } from './EmptyState/index.js';
|
|
10
|
+
export type { EmptyStateProps, EmptyStateSize, EmptyStateVariant, } from './EmptyState/index.js';
|
|
11
|
+
export { Avatar } from './Avatar/index.js';
|
|
12
|
+
export type { AvatarProps } from './Avatar/index.js';
|
|
13
|
+
export { ErrorState } from './ErrorState/index.js';
|
|
14
|
+
export type { ErrorStateProps } from './ErrorState/index.js';
|
|
15
|
+
export { Badge } from './Badge/index.js';
|
|
16
|
+
export type { BadgeProps } from './Badge/index.js';
|
|
17
|
+
export { Banner } from './Banner/Banner.js';
|
|
18
|
+
export type { BannerProps } from './Banner/Banner.js';
|
|
19
|
+
export { Checkbox, getCheckedState } from './Checkbox/index.js';
|
|
20
|
+
export type { CheckboxProps } from './Checkbox/index.js';
|
|
21
|
+
export { ChartTooltip, ChartTooltipBody, ChartTooltipHeader, ChartTooltipRow, } from './ChartTooltip/index.js';
|
|
22
|
+
export type { ChartTooltipBodyProps, ChartTooltipHeaderProps, ChartTooltipProps, ChartTooltipRowProps, } from './ChartTooltip/index.js';
|
|
23
|
+
export { RadioButton } from './RadioButton/index.js';
|
|
24
|
+
export type { RadioButtonProps } from './RadioButton/index.js';
|
|
25
|
+
export { RadioCard } from './RadioCard/RadioCard.js';
|
|
26
|
+
export type { RadioCardProps } from './RadioCard/RadioCard.js';
|
|
27
|
+
export { RadioGroup, RadioGroupItem } from './RadioGroup/index.js';
|
|
28
|
+
export type { RadioGroupProps, RadioGroupItemProps } from './RadioGroup/index.js';
|
|
29
|
+
export { Icon } from './Icon/index.js';
|
|
30
|
+
export type { IconComponent, IconProps } from './Icon/index.js';
|
|
31
|
+
export { IconButton } from './IconButton/index.js';
|
|
32
|
+
export type { IconButtonProps } from './IconButton/index.js';
|
|
33
|
+
export { Kbd, KbdGroup } from './Kbd/index.js';
|
|
34
|
+
export type { KbdProps, KbdGroupProps } from './Kbd/index.js';
|
|
35
|
+
export { Input } from './Input/index.js';
|
|
36
|
+
export type { InputIconAction, InputProps } from './Input/index.js';
|
|
37
|
+
export { Textarea } from './Textarea/index.js';
|
|
38
|
+
export type { TextareaProps } from './Textarea/index.js';
|
|
39
|
+
export { Link } from './Link/index.js';
|
|
40
|
+
export type { LinkProps } from './Link/index.js';
|
|
41
|
+
export { Text } from './Text/index.js';
|
|
42
|
+
export type { TextProps } from './Text/index.js';
|
|
43
|
+
export { Tooltip, TooltipProvider } from './Tooltip/index.js';
|
|
44
|
+
export type { TooltipProps } from './Tooltip/index.js';
|
|
45
|
+
export { GroupedTabs } from './GroupedTabs/GroupedTabs.js';
|
|
46
|
+
export type { GroupedTabOption, GroupedTabsProps, } from './GroupedTabs/GroupedTabs.js';
|
|
47
|
+
export { Spinner, SpinnerIcon } from './Spinner/index.js';
|
|
48
|
+
export { Skeleton, SkeletonRows, CircleSkeleton } from './Skeleton/index.js';
|
|
49
|
+
export { LinearProgress } from './LinearProgress/index.js';
|
|
50
|
+
export type { LinearProgressProps } from './LinearProgress/index.js';
|
|
51
|
+
export { formatMetricCurrency, formatMetricDate, formatMetricDuration, formatMetricNumber, formatMetricTime, MetricChart, } from './MetricChart/index.js';
|
|
52
|
+
export type { MetricChartProps, MetricChartSize, MetricCurrencyFormatOptions, MetricDateTimeFormatOptions, MetricDurationFormatOptions, MetricDurationUnit, MetricNumberFormatOptions, } from './MetricChart/index.js';
|
|
53
|
+
export { ProgressBar } from './ProgressBar/index.js';
|
|
54
|
+
export type { ProgressBarColor, ProgressBarLabelPosition, ProgressBarProps, ProgressBarSize, } from './ProgressBar/index.js';
|
|
55
|
+
export { Slider } from './Slider/index.js';
|
|
56
|
+
export type { SliderProps, SliderStepLabel } from './Slider/index.js';
|
|
57
|
+
export { Switch } from './Switch/index.js';
|
|
58
|
+
export type { SwitchProps } from './Switch/index.js';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Text } from "./Text/Text.js";
|
|
2
|
+
import { Tooltip } from "./Tooltip/Tooltip.js";
|
|
3
|
+
import { TooltipProvider } from "./Tooltip/index.js";
|
|
4
|
+
import { Avatar } from "./Avatar/Avatar.js";
|
|
5
|
+
import { Badge } from "./Badge/Badge.js";
|
|
6
|
+
import { Icon } from "./Icon/Icon.js";
|
|
7
|
+
import { Spinner, SpinnerIcon } from "./Spinner/Spinner.js";
|
|
8
|
+
import { IconButton } from "./IconButton/IconButton.js";
|
|
9
|
+
import { Banner } from "./Banner/Banner.js";
|
|
10
|
+
import { Button } from "./Button/Button.js";
|
|
11
|
+
import { ButtonGroup } from "./ButtonGroup/ButtonGroup.js";
|
|
12
|
+
import { Card } from "./Card/Card.js";
|
|
13
|
+
import { Link } from "./Link/Link.js";
|
|
14
|
+
import { EmptyState } from "./EmptyState/EmptyState.js";
|
|
15
|
+
import { CircleSkeleton, Skeleton, SkeletonRows } from "./Skeleton/Skeleton.js";
|
|
16
|
+
import { ChartTooltip, ChartTooltipBody, ChartTooltipHeader, ChartTooltipRow } from "./ChartTooltip/ChartTooltip.js";
|
|
17
|
+
import { Checkbox } from "./Checkbox/Checkbox.js";
|
|
18
|
+
import { getCheckedState } from "./Checkbox/getCheckedState.js";
|
|
19
|
+
import { Divider } from "./Divider/Divider.js";
|
|
20
|
+
import { t as ErrorState } from "../_chunks/ErrorState-CmPX01HV.js";
|
|
21
|
+
import { GroupedTabs } from "./GroupedTabs/GroupedTabs.js";
|
|
22
|
+
import { Input } from "./Input/Input.js";
|
|
23
|
+
import { Kbd, KbdGroup } from "./Kbd/Kbd.js";
|
|
24
|
+
import { LinearProgress } from "./LinearProgress/LinearProgress.js";
|
|
25
|
+
import { MetricChart } from "./MetricChart/MetricChart.js";
|
|
26
|
+
import { formatMetricCurrency, formatMetricDate, formatMetricDuration, formatMetricNumber, formatMetricTime } from "./MetricChart/formatters.js";
|
|
27
|
+
import { ProgressBar } from "./ProgressBar/ProgressBar.js";
|
|
28
|
+
import { RadioButton } from "./RadioButton/RadioButton.js";
|
|
29
|
+
import { RadioCard } from "./RadioCard/RadioCard.js";
|
|
30
|
+
import { RadioGroup } from "./RadioGroup/RadioGroup.js";
|
|
31
|
+
import { RadioGroupItem } from "./RadioGroup/RadioGroupItem.js";
|
|
32
|
+
import { Slider } from "./Slider/Slider.js";
|
|
33
|
+
import { Switch } from "./Switch/Switch.js";
|
|
34
|
+
import { Textarea } from "./Textarea/Textarea.js";
|
|
35
|
+
export { Avatar, Badge, Banner, Button, ButtonGroup, Card, ChartTooltip, ChartTooltipBody, ChartTooltipHeader, ChartTooltipRow, Checkbox, CircleSkeleton, Divider, EmptyState, ErrorState, GroupedTabs, Icon, IconButton, Input, Kbd, KbdGroup, LinearProgress, Link, MetricChart, ProgressBar, RadioButton, RadioCard, RadioGroup, RadioGroupItem, Skeleton, SkeletonRows, Slider, Spinner, SpinnerIcon, Switch, Text, Textarea, Tooltip, TooltipProvider, formatMetricCurrency, formatMetricDate, formatMetricDuration, formatMetricNumber, formatMetricTime, getCheckedState };
|