@tempoxyz/ds 0.2.6 → 0.3.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/README.md +2 -0
- package/dist/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Bold.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Medium.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-Regular.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
- package/dist/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- package/dist/fonts/Pilat-Black-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Black-other.woff2 +0 -0
- package/dist/fonts/Pilat-Black.woff2 +0 -0
- package/dist/fonts/Pilat-Bold-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Bold-other.woff2 +0 -0
- package/dist/fonts/Pilat-Bold.woff2 +0 -0
- package/dist/fonts/Pilat-Book-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Book-other.woff2 +0 -0
- package/dist/fonts/Pilat-Book.woff2 +0 -0
- package/dist/fonts/Pilat-Demi-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Demi-other.woff2 +0 -0
- package/dist/fonts/Pilat-Demi.woff2 +0 -0
- package/dist/fonts/Pilat-Heavy-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Heavy-other.woff2 +0 -0
- package/dist/fonts/Pilat-Heavy.woff2 +0 -0
- package/dist/fonts/Pilat-Light-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Light-other.woff2 +0 -0
- package/dist/fonts/Pilat-Light.woff2 +0 -0
- package/dist/fonts/Pilat-Regular-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Regular-other.woff2 +0 -0
- package/dist/fonts/Pilat-Regular.woff2 +0 -0
- package/dist/fonts/Pilat-Thin-latin.woff2 +0 -0
- package/dist/fonts/Pilat-Thin-other.woff2 +0 -0
- package/dist/fonts/Pilat-Thin.woff2 +0 -0
- package/dist/oxlint/rules/PreferComponent.js +6 -6
- package/dist/oxlint/rules/PreferComponent.js.map +1 -1
- package/dist/web/components/Accordion.css +1 -1
- package/dist/web/components/Accordion.d.ts +7 -7
- package/dist/web/components/Accordion.js.map +1 -1
- package/dist/web/components/Accordion.js.zyzz.json +1 -1
- package/dist/web/components/AgentLogo.css +1 -0
- package/dist/web/components/AgentLogo.d.ts +206 -0
- package/dist/web/components/AgentLogo.d.ts.map +1 -0
- package/dist/web/components/AgentLogo.js +86 -0
- package/dist/web/components/AgentLogo.js.map +1 -0
- package/dist/web/components/AgentLogo.js.zyzz.json +1 -0
- package/dist/web/components/Alert.css +1 -0
- package/dist/web/components/Alert.d.ts +156 -0
- package/dist/web/components/Alert.d.ts.map +1 -0
- package/dist/web/components/Alert.js +92 -0
- package/dist/web/components/Alert.js.map +1 -0
- package/dist/web/components/Alert.js.zyzz.json +1 -0
- package/dist/web/components/AlertDialog.d.ts +40 -28
- package/dist/web/components/AlertDialog.d.ts.map +1 -1
- package/dist/web/components/AlertDialog.js +31 -36
- package/dist/web/components/AlertDialog.js.map +1 -1
- package/dist/web/components/AlertDialog.js.zyzz.json +1 -1
- package/dist/web/components/Amount.css +1 -1
- package/dist/web/components/Amount.d.ts +5 -5
- package/dist/web/components/Amount.d.ts.map +1 -1
- package/dist/web/components/Amount.js.map +1 -1
- package/dist/web/components/Amount.js.zyzz.json +1 -1
- package/dist/web/components/AmountInput.css +1 -1
- package/dist/web/components/AmountInput.d.ts +20 -39
- package/dist/web/components/AmountInput.d.ts.map +1 -1
- package/dist/web/components/AmountInput.js +31 -37
- package/dist/web/components/AmountInput.js.map +1 -1
- package/dist/web/components/AmountInput.js.zyzz.json +1 -1
- package/dist/web/components/AppShell.css +1 -1
- package/dist/web/components/AppShell.d.ts +65 -29
- package/dist/web/components/AppShell.d.ts.map +1 -1
- package/dist/web/components/AppShell.js +31 -19
- package/dist/web/components/AppShell.js.map +1 -1
- package/dist/web/components/AppShell.js.zyzz.json +1 -1
- package/dist/web/components/AssetChip.css +1 -0
- package/dist/web/components/AssetChip.d.ts +38 -0
- package/dist/web/components/AssetChip.d.ts.map +1 -0
- package/dist/web/components/AssetChip.js +47 -0
- package/dist/web/components/AssetChip.js.map +1 -0
- package/dist/web/components/AssetChip.js.zyzz.json +1 -0
- package/dist/web/components/Autocomplete.d.ts +2 -2
- package/dist/web/components/Autocomplete.js +4 -4
- package/dist/web/components/Autocomplete.js.map +1 -1
- package/dist/web/components/Autocomplete.js.zyzz.json +1 -1
- package/dist/web/components/Avatar.css +1 -1
- package/dist/web/components/Avatar.d.ts +40 -115
- package/dist/web/components/Avatar.d.ts.map +1 -1
- package/dist/web/components/Avatar.js +19 -32
- package/dist/web/components/Avatar.js.map +1 -1
- package/dist/web/components/Avatar.js.zyzz.json +1 -1
- package/dist/web/components/Badge.css +1 -0
- package/dist/web/components/Badge.d.ts +134 -0
- package/dist/web/components/Badge.d.ts.map +1 -0
- package/dist/web/components/Badge.js +38 -0
- package/dist/web/components/Badge.js.map +1 -0
- package/dist/web/components/Badge.js.zyzz.json +1 -0
- package/dist/web/components/Banner.css +1 -1
- package/dist/web/components/Banner.d.ts +12 -12
- package/dist/web/components/Banner.d.ts.map +1 -1
- package/dist/web/components/Banner.js +5 -5
- package/dist/web/components/Banner.js.map +1 -1
- package/dist/web/components/Banner.js.zyzz.json +1 -1
- package/dist/web/components/BarChart.css +1 -0
- package/dist/web/components/BarChart.d.ts +155 -0
- package/dist/web/components/BarChart.d.ts.map +1 -0
- package/dist/web/components/BarChart.js +119 -0
- package/dist/web/components/BarChart.js.map +1 -0
- package/dist/web/components/BarChart.js.zyzz.json +1 -0
- package/dist/web/components/Breadcrumbs.css +1 -1
- package/dist/web/components/Breadcrumbs.d.ts +6 -6
- package/dist/web/components/Breadcrumbs.js.map +1 -1
- package/dist/web/components/Breadcrumbs.js.zyzz.json +1 -1
- package/dist/web/components/Button.css +1 -1
- package/dist/web/components/Button.d.ts +166 -35
- package/dist/web/components/Button.d.ts.map +1 -1
- package/dist/web/components/Button.js +13 -9
- package/dist/web/components/Button.js.map +1 -1
- package/dist/web/components/Button.js.zyzz.json +1 -1
- package/dist/web/components/ButtonGroup.css +1 -0
- package/dist/web/components/ButtonGroup.d.ts +56 -0
- package/dist/web/components/ButtonGroup.d.ts.map +1 -0
- package/dist/web/components/ButtonGroup.js +33 -0
- package/dist/web/components/ButtonGroup.js.map +1 -0
- package/dist/web/components/ButtonGroup.js.zyzz.json +1 -0
- package/dist/web/components/Calendar.css +1 -1
- package/dist/web/components/Calendar.d.ts.map +1 -1
- package/dist/web/components/Calendar.js +7 -7
- package/dist/web/components/Calendar.js.map +1 -1
- package/dist/web/components/Calendar.js.zyzz.json +1 -1
- package/dist/web/components/Checkbox.css +1 -1
- package/dist/web/components/Checkbox.d.ts +11 -11
- package/dist/web/components/Checkbox.d.ts.map +1 -1
- package/dist/web/components/Checkbox.js +4 -1
- package/dist/web/components/Checkbox.js.map +1 -1
- package/dist/web/components/Checkbox.js.zyzz.json +1 -1
- package/dist/web/components/CheckboxGroup.js.zyzz.json +1 -1
- package/dist/web/components/ChoiceGroup.css +1 -1
- package/dist/web/components/ChoiceGroup.d.ts +44 -16
- package/dist/web/components/ChoiceGroup.d.ts.map +1 -1
- package/dist/web/components/ChoiceGroup.js +32 -8
- package/dist/web/components/ChoiceGroup.js.map +1 -1
- package/dist/web/components/ChoiceGroup.js.zyzz.json +1 -1
- package/dist/web/components/Choicebox.css +1 -1
- package/dist/web/components/Choicebox.d.ts +9 -9
- package/dist/web/components/Choicebox.d.ts.map +1 -1
- package/dist/web/components/Choicebox.js +6 -6
- package/dist/web/components/Choicebox.js.map +1 -1
- package/dist/web/components/Choicebox.js.zyzz.json +1 -1
- package/dist/web/components/Combobox.css +1 -1
- package/dist/web/components/Combobox.d.ts +2 -2
- package/dist/web/components/Combobox.d.ts.map +1 -1
- package/dist/web/components/Combobox.js +8 -8
- package/dist/web/components/Combobox.js.map +1 -1
- package/dist/web/components/Combobox.js.zyzz.json +1 -1
- package/dist/web/components/Container.js.zyzz.json +1 -1
- package/dist/web/components/CopyButton.js +1 -1
- package/dist/web/components/CopyButton.js.map +1 -1
- package/dist/web/components/CopyButton.js.zyzz.json +1 -1
- package/dist/web/components/DatePicker.css +1 -1
- package/dist/web/components/DatePicker.d.ts +37 -56
- package/dist/web/components/DatePicker.d.ts.map +1 -1
- package/dist/web/components/DatePicker.js +7 -7
- package/dist/web/components/DatePicker.js.map +1 -1
- package/dist/web/components/DatePicker.js.zyzz.json +1 -1
- package/dist/web/components/Dialog.css +1 -1
- package/dist/web/components/Dialog.d.ts +189 -20
- package/dist/web/components/Dialog.d.ts.map +1 -1
- package/dist/web/components/Dialog.js +93 -26
- package/dist/web/components/Dialog.js.map +1 -1
- package/dist/web/components/Dialog.js.zyzz.json +1 -1
- package/dist/web/components/Drawer.css +1 -1
- package/dist/web/components/Drawer.d.ts +7 -2
- package/dist/web/components/Drawer.d.ts.map +1 -1
- package/dist/web/components/Drawer.js +12 -6
- package/dist/web/components/Drawer.js.map +1 -1
- package/dist/web/components/Drawer.js.zyzz.json +1 -1
- package/dist/web/components/Empty.css +1 -1
- package/dist/web/components/Empty.d.ts +2 -0
- package/dist/web/components/Empty.d.ts.map +1 -1
- package/dist/web/components/Empty.js +5 -3
- package/dist/web/components/Empty.js.map +1 -1
- package/dist/web/components/Empty.js.zyzz.json +1 -1
- package/dist/web/components/Field.css +1 -1
- package/dist/web/components/Field.d.ts +16 -21
- package/dist/web/components/Field.d.ts.map +1 -1
- package/dist/web/components/Field.js +38 -36
- package/dist/web/components/Field.js.map +1 -1
- package/dist/web/components/Field.js.zyzz.json +1 -1
- package/dist/web/components/Fieldset.css +1 -1
- package/dist/web/components/Fieldset.d.ts +9 -18
- package/dist/web/components/Fieldset.d.ts.map +1 -1
- package/dist/web/components/Fieldset.js +11 -14
- package/dist/web/components/Fieldset.js.map +1 -1
- package/dist/web/components/Fieldset.js.zyzz.json +1 -1
- package/dist/web/components/Frame.css +1 -1
- package/dist/web/components/Frame.d.ts +13 -19
- package/dist/web/components/Frame.d.ts.map +1 -1
- package/dist/web/components/Frame.js +8 -8
- package/dist/web/components/Frame.js.map +1 -1
- package/dist/web/components/Frame.js.zyzz.json +1 -1
- package/dist/web/components/Gauge.css +1 -1
- package/dist/web/components/Gauge.d.ts +2 -2
- package/dist/web/components/Gauge.d.ts.map +1 -1
- package/dist/web/components/Gauge.js.map +1 -1
- package/dist/web/components/Gauge.js.zyzz.json +1 -1
- package/dist/web/components/Grid.js.zyzz.json +1 -1
- package/dist/web/components/Hex.css +1 -1
- package/dist/web/components/Hex.d.ts +11 -53
- package/dist/web/components/Hex.d.ts.map +1 -1
- package/dist/web/components/Hex.js +5 -7
- package/dist/web/components/Hex.js.map +1 -1
- package/dist/web/components/Hex.js.zyzz.json +1 -1
- package/dist/web/components/IconTile.css +1 -0
- package/dist/web/components/IconTile.d.ts +62 -0
- package/dist/web/components/IconTile.d.ts.map +1 -0
- package/dist/web/components/IconTile.js +28 -0
- package/dist/web/components/IconTile.js.map +1 -0
- package/dist/web/components/IconTile.js.zyzz.json +1 -0
- package/dist/web/components/Identicon.css +1 -1
- package/dist/web/components/Identicon.d.ts +1 -8
- package/dist/web/components/Identicon.d.ts.map +1 -1
- package/dist/web/components/Identicon.js +1 -4
- package/dist/web/components/Identicon.js.map +1 -1
- package/dist/web/components/Identicon.js.zyzz.json +1 -1
- package/dist/web/components/Inline.js.zyzz.json +1 -1
- package/dist/web/components/Inset.js.zyzz.json +1 -1
- package/dist/web/components/Kbd.css +1 -1
- package/dist/web/components/Kbd.d.ts +7 -7
- package/dist/web/components/Kbd.js.map +1 -1
- package/dist/web/components/Kbd.js.zyzz.json +1 -1
- package/dist/web/components/ListGroup.css +1 -0
- package/dist/web/components/ListGroup.d.ts +483 -0
- package/dist/web/components/ListGroup.d.ts.map +1 -0
- package/dist/web/components/ListGroup.js +266 -0
- package/dist/web/components/ListGroup.js.map +1 -0
- package/dist/web/components/ListGroup.js.zyzz.json +1 -0
- package/dist/web/components/LoadingDots.css +1 -1
- package/dist/web/components/LoadingDots.d.ts.map +1 -1
- package/dist/web/components/LoadingDots.js +2 -2
- package/dist/web/components/LoadingDots.js.map +1 -1
- package/dist/web/components/LoadingDots.js.zyzz.json +1 -1
- package/dist/web/components/Menu.css +1 -1
- package/dist/web/components/Menu.d.ts +39 -20
- package/dist/web/components/Menu.d.ts.map +1 -1
- package/dist/web/components/Menu.js +12 -7
- package/dist/web/components/Menu.js.map +1 -1
- package/dist/web/components/Menu.js.zyzz.json +1 -1
- package/dist/web/components/NetworkLogo.css +1 -0
- package/dist/web/components/NetworkLogo.d.ts +58 -0
- package/dist/web/components/NetworkLogo.d.ts.map +1 -0
- package/dist/web/components/NetworkLogo.js +40 -0
- package/dist/web/components/NetworkLogo.js.map +1 -0
- package/dist/web/components/NetworkLogo.js.zyzz.json +1 -0
- package/dist/web/components/NumberField.css +1 -1
- package/dist/web/components/NumberField.d.ts +3 -3
- package/dist/web/components/NumberField.d.ts.map +1 -1
- package/dist/web/components/NumberField.js +5 -5
- package/dist/web/components/NumberField.js.map +1 -1
- package/dist/web/components/NumberField.js.zyzz.json +1 -1
- package/dist/web/components/OtpField.css +1 -1
- package/dist/web/components/OtpField.d.ts +8 -68
- package/dist/web/components/OtpField.d.ts.map +1 -1
- package/dist/web/components/OtpField.js +12 -9
- package/dist/web/components/OtpField.js.map +1 -1
- package/dist/web/components/OtpField.js.zyzz.json +1 -1
- package/dist/web/components/Pagination.css +1 -1
- package/dist/web/components/Pagination.d.ts +16 -14
- package/dist/web/components/Pagination.d.ts.map +1 -1
- package/dist/web/components/Pagination.js +3 -3
- package/dist/web/components/Pagination.js.map +1 -1
- package/dist/web/components/Pagination.js.zyzz.json +1 -1
- package/dist/web/components/Popover.css +1 -1
- package/dist/web/components/Popover.js.map +1 -1
- package/dist/web/components/Popover.js.zyzz.json +1 -1
- package/dist/web/components/Progress.css +1 -1
- package/dist/web/components/Progress.d.ts +2 -2
- package/dist/web/components/Progress.d.ts.map +1 -1
- package/dist/web/components/Progress.js +5 -5
- package/dist/web/components/Progress.js.map +1 -1
- package/dist/web/components/Progress.js.zyzz.json +1 -1
- package/dist/web/components/Qr.css +1 -1
- package/dist/web/components/Qr.d.ts +1 -1
- package/dist/web/components/Qr.js.map +1 -1
- package/dist/web/components/Qr.js.zyzz.json +1 -1
- package/dist/web/components/RadioGroup.css +1 -1
- package/dist/web/components/RadioGroup.d.ts.map +1 -1
- package/dist/web/components/RadioGroup.js +2 -2
- package/dist/web/components/RadioGroup.js.map +1 -1
- package/dist/web/components/RadioGroup.js.zyzz.json +1 -1
- package/dist/web/components/SecretValue.css +1 -1
- package/dist/web/components/SecretValue.d.ts +7 -7
- package/dist/web/components/SecretValue.js +1 -1
- package/dist/web/components/SecretValue.js.map +1 -1
- package/dist/web/components/SecretValue.js.zyzz.json +1 -1
- package/dist/web/components/Select.css +1 -1
- package/dist/web/components/Select.d.ts +64 -2
- package/dist/web/components/Select.d.ts.map +1 -1
- package/dist/web/components/Select.js +24 -7
- package/dist/web/components/Select.js.map +1 -1
- package/dist/web/components/Select.js.zyzz.json +1 -1
- package/dist/web/components/Separator.css +1 -1
- package/dist/web/components/Separator.d.ts +17 -3
- package/dist/web/components/Separator.d.ts.map +1 -1
- package/dist/web/components/Separator.js +40 -5
- package/dist/web/components/Separator.js.map +1 -1
- package/dist/web/components/Separator.js.zyzz.json +1 -1
- package/dist/web/components/SidebarMenu.css +1 -1
- package/dist/web/components/SidebarMenu.d.ts +186 -39
- package/dist/web/components/SidebarMenu.d.ts.map +1 -1
- package/dist/web/components/SidebarMenu.js +90 -18
- package/dist/web/components/SidebarMenu.js.map +1 -1
- package/dist/web/components/SidebarMenu.js.zyzz.json +1 -1
- package/dist/web/components/Skeleton.css +1 -1
- package/dist/web/components/Skeleton.d.ts +5 -3
- package/dist/web/components/Skeleton.d.ts.map +1 -1
- package/dist/web/components/Skeleton.js +1 -1
- package/dist/web/components/Skeleton.js.map +1 -1
- package/dist/web/components/Skeleton.js.zyzz.json +1 -1
- package/dist/web/components/Slider.css +1 -1
- package/dist/web/components/Slider.d.ts.map +1 -1
- package/dist/web/components/Slider.js +5 -5
- package/dist/web/components/Slider.js.map +1 -1
- package/dist/web/components/Slider.js.zyzz.json +1 -1
- package/dist/web/components/Snippet.css +1 -1
- package/dist/web/components/Snippet.d.ts +27 -65
- package/dist/web/components/Snippet.d.ts.map +1 -1
- package/dist/web/components/Snippet.js +47 -10
- package/dist/web/components/Snippet.js.map +1 -1
- package/dist/web/components/Snippet.js.zyzz.json +1 -1
- package/dist/web/components/Spinner.css +1 -1
- package/dist/web/components/Spinner.d.ts +25 -16
- package/dist/web/components/Spinner.d.ts.map +1 -1
- package/dist/web/components/Spinner.js +11 -6
- package/dist/web/components/Spinner.js.map +1 -1
- package/dist/web/components/Spinner.js.zyzz.json +1 -1
- package/dist/web/components/SplitBar.css +1 -0
- package/dist/web/components/SplitBar.d.ts +99 -0
- package/dist/web/components/SplitBar.d.ts.map +1 -0
- package/dist/web/components/SplitBar.js +49 -0
- package/dist/web/components/SplitBar.js.map +1 -0
- package/dist/web/components/SplitBar.js.zyzz.json +1 -0
- package/dist/web/components/SplitButton.css +1 -1
- package/dist/web/components/SplitButton.d.ts +4 -1
- package/dist/web/components/SplitButton.d.ts.map +1 -1
- package/dist/web/components/SplitButton.js +2 -2
- package/dist/web/components/SplitButton.js.map +1 -1
- package/dist/web/components/SplitButton.js.zyzz.json +1 -1
- package/dist/web/components/Stack.js.zyzz.json +1 -1
- package/dist/web/components/StatusChip.css +1 -0
- package/dist/web/components/StatusChip.d.ts +162 -0
- package/dist/web/components/StatusChip.d.ts.map +1 -0
- package/dist/web/components/StatusChip.js +37 -0
- package/dist/web/components/StatusChip.js.map +1 -0
- package/dist/web/components/StatusChip.js.zyzz.json +1 -0
- package/dist/web/components/StatusRow.css +1 -0
- package/dist/web/components/StatusRow.d.ts +121 -0
- package/dist/web/components/StatusRow.d.ts.map +1 -0
- package/dist/web/components/StatusRow.js +75 -0
- package/dist/web/components/StatusRow.js.map +1 -0
- package/dist/web/components/StatusRow.js.zyzz.json +1 -0
- package/dist/web/components/Stepper.css +1 -1
- package/dist/web/components/Stepper.d.ts +10 -7
- package/dist/web/components/Stepper.d.ts.map +1 -1
- package/dist/web/components/Stepper.js +5 -4
- package/dist/web/components/Stepper.js.map +1 -1
- package/dist/web/components/Stepper.js.zyzz.json +1 -1
- package/dist/web/components/Surface.css +1 -1
- package/dist/web/components/Surface.d.ts +56 -119
- package/dist/web/components/Surface.d.ts.map +1 -1
- package/dist/web/components/Surface.js +16 -9
- package/dist/web/components/Surface.js.map +1 -1
- package/dist/web/components/Surface.js.zyzz.json +1 -1
- package/dist/web/components/Switch.css +1 -1
- package/dist/web/components/Switch.d.ts +14 -18
- package/dist/web/components/Switch.d.ts.map +1 -1
- package/dist/web/components/Switch.js +13 -15
- package/dist/web/components/Switch.js.map +1 -1
- package/dist/web/components/Switch.js.zyzz.json +1 -1
- package/dist/web/components/Table.css +1 -1
- package/dist/web/components/Table.d.ts +152 -67
- package/dist/web/components/Table.d.ts.map +1 -1
- package/dist/web/components/Table.js +92 -24
- package/dist/web/components/Table.js.map +1 -1
- package/dist/web/components/Table.js.zyzz.json +1 -1
- package/dist/web/components/Tabs.css +1 -1
- package/dist/web/components/Tabs.d.ts +49 -42
- package/dist/web/components/Tabs.d.ts.map +1 -1
- package/dist/web/components/Tabs.js +45 -14
- package/dist/web/components/Tabs.js.map +1 -1
- package/dist/web/components/Tabs.js.zyzz.json +1 -1
- package/dist/web/components/TempoLogo.css +1 -0
- package/dist/web/components/TempoLogo.d.ts +47 -0
- package/dist/web/components/TempoLogo.d.ts.map +1 -0
- package/dist/web/components/TempoLogo.js +48 -0
- package/dist/web/components/TempoLogo.js.map +1 -0
- package/dist/web/components/TempoLogo.js.zyzz.json +1 -0
- package/dist/web/components/TextInput.css +1 -0
- package/dist/web/components/{Input.d.ts → TextInput.d.ts} +27 -18
- package/dist/web/components/TextInput.d.ts.map +1 -0
- package/dist/web/components/TextInput.js +138 -0
- package/dist/web/components/TextInput.js.map +1 -0
- package/dist/web/components/TextInput.js.zyzz.json +1 -0
- package/dist/web/components/Textarea.css +1 -1
- package/dist/web/components/Textarea.d.ts +29 -74
- package/dist/web/components/Textarea.d.ts.map +1 -1
- package/dist/web/components/Textarea.js +5 -12
- package/dist/web/components/Textarea.js.map +1 -1
- package/dist/web/components/Textarea.js.zyzz.json +1 -1
- package/dist/web/components/Toast.css +1 -1
- package/dist/web/components/Toast.d.ts +4 -4
- package/dist/web/components/Toast.d.ts.map +1 -1
- package/dist/web/components/Toast.js +9 -9
- package/dist/web/components/Toast.js.map +1 -1
- package/dist/web/components/Toast.js.zyzz.json +1 -1
- package/dist/web/components/Token.css +1 -1
- package/dist/web/components/Token.d.ts +32 -90
- package/dist/web/components/Token.d.ts.map +1 -1
- package/dist/web/components/Token.js +27 -89
- package/dist/web/components/Token.js.map +1 -1
- package/dist/web/components/Token.js.zyzz.json +1 -1
- package/dist/web/components/TokenLogo.css +1 -0
- package/dist/web/components/TokenLogo.d.ts +117 -0
- package/dist/web/components/TokenLogo.d.ts.map +1 -0
- package/dist/web/components/TokenLogo.js +112 -0
- package/dist/web/components/TokenLogo.js.map +1 -0
- package/dist/web/components/TokenLogo.js.zyzz.json +1 -0
- package/dist/web/components/Tooltip.css +1 -1
- package/dist/web/components/Tooltip.js.map +1 -1
- package/dist/web/components/Tooltip.js.zyzz.json +1 -1
- package/dist/web/components/VerificationCode.css +1 -0
- package/dist/web/components/VerificationCode.d.ts +47 -0
- package/dist/web/components/VerificationCode.d.ts.map +1 -0
- package/dist/web/components/VerificationCode.js +55 -0
- package/dist/web/components/VerificationCode.js.map +1 -0
- package/dist/web/components/VerificationCode.js.zyzz.json +1 -0
- package/dist/web/components/Visual.css +1 -0
- package/dist/web/components/Visual.d.ts +65 -0
- package/dist/web/components/Visual.d.ts.map +1 -0
- package/dist/web/components/Visual.js +51 -0
- package/dist/web/components/Visual.js.map +1 -0
- package/dist/web/components/Visual.js.zyzz.json +1 -0
- package/dist/web/components/internal/Field.css +1 -1
- package/dist/web/components/internal/Field.d.ts +41 -87
- package/dist/web/components/internal/Field.d.ts.map +1 -1
- package/dist/web/components/internal/Field.js +8 -7
- package/dist/web/components/internal/Field.js.map +1 -1
- package/dist/web/components/internal/Field.js.zyzz.json +1 -1
- package/dist/web/components/internal/InputGroup.css +1 -1
- package/dist/web/components/internal/InputGroup.d.ts +38 -99
- package/dist/web/components/internal/InputGroup.d.ts.map +1 -1
- package/dist/web/components/internal/InputGroup.js +6 -6
- package/dist/web/components/internal/InputGroup.js.map +1 -1
- package/dist/web/components/internal/InputGroup.js.zyzz.json +1 -1
- package/dist/web/components/internal/Listbox.css +1 -1
- package/dist/web/components/internal/Listbox.d.ts +8 -8
- package/dist/web/components/internal/Listbox.js.map +1 -1
- package/dist/web/components/internal/Listbox.js.zyzz.json +1 -1
- package/dist/web/components/internal/RowDisabled.d.ts +3 -0
- package/dist/web/components/internal/RowDisabled.d.ts.map +1 -0
- package/dist/web/components/internal/RowDisabled.js +9 -0
- package/dist/web/components/internal/RowDisabled.js.map +1 -0
- package/dist/web/components/internal/RowsSize.d.ts +2 -3
- package/dist/web/components/internal/RowsSize.d.ts.map +1 -1
- package/dist/web/components/internal/RowsSize.js +3 -3
- package/dist/web/components/internal/RowsSize.js.map +1 -1
- package/dist/web/index.d.ts +18 -6
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +18 -6
- package/dist/web/index.js.map +1 -1
- package/dist/web/index.js.zyzz.json +1 -1
- package/dist/web/vars.d.ts +591 -706
- package/dist/web/vars.d.ts.map +1 -1
- package/dist/web/vars.js +7 -6
- package/dist/web/vars.js.map +1 -1
- package/dist/web/vars.js.zyzz.json +1 -1
- package/dist/web/zyzz.config.d.ts +2933 -3513
- package/dist/web/zyzz.config.d.ts.map +1 -1
- package/dist/web/zyzz.config.js +29 -3
- package/dist/web/zyzz.config.js.map +1 -1
- package/dist/web/zyzz.config.js.zyzz.json +1 -1
- package/package.json +149 -5
- package/src/fonts/JetBrainsMono-Bold-latin.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Bold-other.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Bold.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Medium-latin.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Medium-other.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Medium.woff2 +0 -0
- package/src/fonts/{Geist-OFL.txt → JetBrainsMono-OFL.txt} +4 -3
- package/src/fonts/JetBrainsMono-Regular-latin.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Regular-other.woff2 +0 -0
- package/src/fonts/JetBrainsMono-Regular.woff2 +0 -0
- package/src/fonts/JetBrainsMono-SemiBold-latin.woff2 +0 -0
- package/src/fonts/JetBrainsMono-SemiBold-other.woff2 +0 -0
- package/src/fonts/JetBrainsMono-SemiBold.woff2 +0 -0
- package/src/fonts/Pilat-Black-latin.woff2 +0 -0
- package/src/fonts/Pilat-Black-other.woff2 +0 -0
- package/src/fonts/Pilat-Black.woff2 +0 -0
- package/src/fonts/Pilat-Bold-latin.woff2 +0 -0
- package/src/fonts/Pilat-Bold-other.woff2 +0 -0
- package/src/fonts/Pilat-Bold.woff2 +0 -0
- package/src/fonts/Pilat-Book-latin.woff2 +0 -0
- package/src/fonts/Pilat-Book-other.woff2 +0 -0
- package/src/fonts/Pilat-Book.woff2 +0 -0
- package/src/fonts/Pilat-Demi-latin.woff2 +0 -0
- package/src/fonts/Pilat-Demi-other.woff2 +0 -0
- package/src/fonts/Pilat-Demi.woff2 +0 -0
- package/src/fonts/Pilat-Heavy-latin.woff2 +0 -0
- package/src/fonts/Pilat-Heavy-other.woff2 +0 -0
- package/src/fonts/Pilat-Heavy.woff2 +0 -0
- package/src/fonts/Pilat-Light-latin.woff2 +0 -0
- package/src/fonts/Pilat-Light-other.woff2 +0 -0
- package/src/fonts/Pilat-Light.woff2 +0 -0
- package/src/fonts/Pilat-Regular-latin.woff2 +0 -0
- package/src/fonts/Pilat-Regular-other.woff2 +0 -0
- package/src/fonts/Pilat-Regular.woff2 +0 -0
- package/src/fonts/Pilat-Thin-latin.woff2 +0 -0
- package/src/fonts/Pilat-Thin-other.woff2 +0 -0
- package/src/fonts/Pilat-Thin.woff2 +0 -0
- package/src/fonts/README.md +15 -2
- package/src/oxlint/rules/PreferComponent.ts +6 -6
- package/src/web/README.md +7 -7
- package/src/web/components/Accordion.tsx +8 -8
- package/src/web/components/AgentLogo.tsx +330 -0
- package/src/web/components/Alert.tsx +301 -0
- package/src/web/components/AlertDialog.tsx +47 -111
- package/src/web/components/Amount.tsx +6 -6
- package/src/web/components/AmountInput.tsx +59 -134
- package/src/web/components/AppShell.tsx +95 -36
- package/src/web/components/AssetChip.tsx +110 -0
- package/src/web/components/Autocomplete.tsx +4 -4
- package/src/web/components/Avatar.tsx +42 -119
- package/src/web/components/Badge.tsx +120 -0
- package/src/web/components/Banner.tsx +13 -11
- package/src/web/components/BarChart.tsx +427 -0
- package/src/web/components/Breadcrumbs.tsx +7 -7
- package/src/web/components/Button.tsx +156 -42
- package/src/web/components/ButtonGroup.tsx +59 -0
- package/src/web/components/Calendar.tsx +15 -13
- package/src/web/components/Checkbox.tsx +14 -11
- package/src/web/components/ChoiceGroup.tsx +107 -26
- package/src/web/components/Choicebox.tsx +30 -28
- package/src/web/components/Combobox.tsx +10 -8
- package/src/web/components/CopyButton.tsx +1 -1
- package/src/web/components/DatePicker.tsx +42 -61
- package/src/web/components/Dialog.tsx +267 -71
- package/src/web/components/Drawer.tsx +45 -18
- package/src/web/components/Empty.tsx +13 -8
- package/src/web/components/Field.tsx +78 -132
- package/src/web/components/Fieldset.tsx +16 -37
- package/src/web/components/Frame.tsx +13 -20
- package/src/web/components/Gauge.tsx +4 -4
- package/src/web/components/Hex.tsx +13 -56
- package/src/web/components/IconTile.tsx +57 -0
- package/src/web/components/Identicon.tsx +1 -10
- package/src/web/components/Kbd.tsx +8 -8
- package/src/web/components/ListGroup.tsx +776 -0
- package/src/web/components/LoadingDots.tsx +1 -0
- package/src/web/components/Menu.tsx +50 -35
- package/src/web/components/NetworkLogo.tsx +208 -0
- package/src/web/components/NumberField.tsx +18 -33
- package/src/web/components/OtpField.tsx +51 -102
- package/src/web/components/Pagination.tsx +16 -14
- package/src/web/components/Popover.tsx +8 -8
- package/src/web/components/Progress.tsx +7 -5
- package/src/web/components/Qr.tsx +1 -1
- package/src/web/components/RadioGroup.tsx +9 -7
- package/src/web/components/SecretValue.tsx +11 -11
- package/src/web/components/Select.tsx +87 -26
- package/src/web/components/Separator.tsx +95 -7
- package/src/web/components/SidebarMenu.tsx +294 -51
- package/src/web/components/Skeleton.tsx +5 -5
- package/src/web/components/Slider.tsx +12 -6
- package/src/web/components/Snippet.tsx +134 -75
- package/src/web/components/Spinner.tsx +38 -12
- package/src/web/components/SplitBar.tsx +158 -0
- package/src/web/components/SplitButton.tsx +26 -17
- package/src/web/components/StatusChip.tsx +138 -0
- package/src/web/components/StatusRow.tsx +162 -0
- package/src/web/components/Stepper.tsx +11 -8
- package/src/web/components/Surface.tsx +70 -95
- package/src/web/components/Switch.tsx +25 -29
- package/src/web/components/Table.tsx +281 -70
- package/src/web/components/Tabs.tsx +93 -50
- package/src/web/components/TempoLogo.tsx +89 -0
- package/src/web/components/{Input.tsx → TextInput.tsx} +87 -118
- package/src/web/components/Textarea.tsx +33 -78
- package/src/web/components/Toast.tsx +24 -22
- package/src/web/components/Token.tsx +106 -172
- package/src/web/components/TokenLogo.tsx +217 -0
- package/src/web/components/Tooltip.tsx +3 -3
- package/src/web/components/VerificationCode.tsx +97 -0
- package/src/web/components/Visual.tsx +166 -0
- package/src/web/components/internal/Field.ts +63 -72
- package/src/web/components/internal/InputGroup.ts +44 -101
- package/src/web/components/internal/Listbox.ts +20 -20
- package/src/web/components/internal/RowDisabled.ts +9 -0
- package/src/web/components/internal/RowsSize.ts +3 -5
- package/src/web/components/visuals/Passkey.svg +21 -0
- package/src/web/index.ts +18 -6
- package/src/web/logos/Base.svg +10 -0
- package/src/web/logos/Ethereum.svg +16 -0
- package/src/web/logos/HyperEVM.svg +27 -0
- package/src/web/logos/Polygon.svg +15 -0
- package/src/web/logos/README.md +14 -0
- package/src/web/logos/Solana.svg +11 -0
- package/src/web/logos/Tempo.svg +11 -0
- package/src/web/vars.ts +480 -534
- package/src/web/zyzz.config.ts +255 -12
- package/dist/fonts/GeistMono-Variable.woff2 +0 -0
- package/dist/web/components/AlertDialog.css +0 -1
- package/dist/web/components/Callout.css +0 -1
- package/dist/web/components/Callout.d.ts +0 -161
- package/dist/web/components/Callout.d.ts.map +0 -1
- package/dist/web/components/Callout.js +0 -83
- package/dist/web/components/Callout.js.map +0 -1
- package/dist/web/components/Callout.js.zyzz.json +0 -1
- package/dist/web/components/IconChip.css +0 -1
- package/dist/web/components/IconChip.d.ts +0 -53
- package/dist/web/components/IconChip.d.ts.map +0 -1
- package/dist/web/components/IconChip.js +0 -27
- package/dist/web/components/IconChip.js.map +0 -1
- package/dist/web/components/IconChip.js.zyzz.json +0 -1
- package/dist/web/components/Input.css +0 -1
- package/dist/web/components/Input.d.ts.map +0 -1
- package/dist/web/components/Input.js +0 -118
- package/dist/web/components/Input.js.map +0 -1
- package/dist/web/components/Input.js.zyzz.json +0 -1
- package/dist/web/components/Rows.css +0 -1
- package/dist/web/components/Rows.d.ts +0 -484
- package/dist/web/components/Rows.d.ts.map +0 -1
- package/dist/web/components/Rows.js +0 -171
- package/dist/web/components/Rows.js.map +0 -1
- package/dist/web/components/Rows.js.zyzz.json +0 -1
- package/dist/web/components/Tag.css +0 -1
- package/dist/web/components/Tag.d.ts +0 -171
- package/dist/web/components/Tag.d.ts.map +0 -1
- package/dist/web/components/Tag.js +0 -52
- package/dist/web/components/Tag.js.map +0 -1
- package/dist/web/components/Tag.js.zyzz.json +0 -1
- package/dist/web/components/internal/FieldVariant.d.ts +0 -4
- package/dist/web/components/internal/FieldVariant.d.ts.map +0 -1
- package/dist/web/components/internal/FieldVariant.js +0 -4
- package/dist/web/components/internal/FieldVariant.js.map +0 -1
- package/src/fonts/GeistMono-Variable.woff2 +0 -0
- package/src/web/components/Callout.tsx +0 -241
- package/src/web/components/IconChip.tsx +0 -54
- package/src/web/components/Rows.tsx +0 -588
- package/src/web/components/Tag.tsx +0 -149
- package/src/web/components/internal/FieldVariant.ts +0 -6
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ComponentPropsWithRef, type ReactNode, useRef } from 'react'
|
|
2
2
|
import type * as zyzz from 'zyzz'
|
|
3
3
|
import { style, variants } from '../zyzz.config.js'
|
|
4
4
|
import { CopyButton } from './CopyButton.js'
|
|
5
5
|
import { useCopy } from './internal/useCopy.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* A
|
|
9
|
-
*
|
|
8
|
+
* A command or value in a `code` element, with a copy button at the top end. A click anywhere on
|
|
9
|
+
* the command copies `children` unless an `onClick` handler calls `preventDefault()`. The button
|
|
10
10
|
* is the keyboard path and announces `Copied` through a polite status region.
|
|
11
11
|
*
|
|
12
12
|
* - Pass only the command text. The `prompt` glyph is decorative, hidden from assistive technology
|
|
13
13
|
* and never copied.
|
|
14
|
-
* -
|
|
14
|
+
* - The first word, the program, renders in the primary color, and the arguments after it in the
|
|
15
|
+
* secondary color. Long commands wrap, and wrapped lines align with the arguments.
|
|
16
|
+
* - Pass a `Tabs.List` as `tabs` to switch between commands, such as one per agent. Wrap the
|
|
17
|
+
* snippet in `Tabs.Root`, and pass the command of the active tab as `children`.
|
|
15
18
|
* - Name the copy button with `labels.copy`, such as `Copy install command`, when a page shows
|
|
16
19
|
* several snippets. It defaults to `Copy`.
|
|
17
20
|
*
|
|
@@ -24,28 +27,80 @@ import { useCopy } from './internal/useCopy.js'
|
|
|
24
27
|
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html | WCAG 2.2 Status Messages}
|
|
25
28
|
*/
|
|
26
29
|
export function Snippet(props: Snippet.Props) {
|
|
27
|
-
const {
|
|
30
|
+
const {
|
|
31
|
+
children,
|
|
32
|
+
className,
|
|
33
|
+
labels,
|
|
34
|
+
onClick,
|
|
35
|
+
prompt = '$',
|
|
36
|
+
// The deprecated size has no style, and stays off the element.
|
|
37
|
+
size: _size,
|
|
38
|
+
tabs,
|
|
39
|
+
vars,
|
|
40
|
+
...attributes
|
|
41
|
+
} = props
|
|
42
|
+
const header = useRef<HTMLDivElement>(null)
|
|
28
43
|
const state = useCopy(children)
|
|
29
44
|
|
|
45
|
+
// The program ends at the first whitespace. The arguments keep that whitespace, so the text
|
|
46
|
+
// reads, selects and copies as one command.
|
|
47
|
+
const [, program = '', rest = ''] = /^(\S*)([\s\S]*)$/.exec(children) ?? []
|
|
48
|
+
|
|
49
|
+
// Each part of the command takes a whole number of pixels, rounded up as the design sizes its
|
|
50
|
+
// texts, and the next part starts 8px after it. Every glyph of the mono face advances by `1ch`,
|
|
51
|
+
// so the margin after a part adds the rest.
|
|
52
|
+
const width = (text: string) => `round(up, ${text.length}ch, 1px)`
|
|
53
|
+
const gap = (text: string) => `calc(${width(text)} + 8px - ${text.length}ch)`
|
|
54
|
+
// Wrapped lines start under the arguments.
|
|
55
|
+
const indent = rest
|
|
56
|
+
? `calc(${prompt ? `${width(prompt)} + 8px + ` : ''}${width(program)} + 8px)`
|
|
57
|
+
: undefined
|
|
58
|
+
|
|
30
59
|
return (
|
|
31
60
|
<div
|
|
32
61
|
data-copied={state.copied || undefined}
|
|
33
62
|
{...attributes}
|
|
34
63
|
onClick={(event) => {
|
|
35
64
|
onClick?.(event)
|
|
36
|
-
|
|
65
|
+
// The tabs switch the command, so a click on them does not copy.
|
|
66
|
+
if (event.defaultPrevented || header.current?.contains(event.target as Node)) return
|
|
67
|
+
void state.copy()
|
|
37
68
|
}}
|
|
38
|
-
{...styles.root({ className,
|
|
69
|
+
{...styles.root({ className, style: props.style, vars })}
|
|
39
70
|
>
|
|
40
|
-
{
|
|
41
|
-
<
|
|
42
|
-
{
|
|
43
|
-
</
|
|
71
|
+
{tabs && (
|
|
72
|
+
<div ref={header} {...styles.tabs()}>
|
|
73
|
+
{tabs}
|
|
74
|
+
</div>
|
|
44
75
|
)}
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
76
|
+
<div {...styles.command()}>
|
|
77
|
+
<code
|
|
78
|
+
{...styles.text({
|
|
79
|
+
style: indent
|
|
80
|
+
? { paddingInlineStart: indent, textIndent: `calc(-1 * ${indent})` }
|
|
81
|
+
: undefined,
|
|
82
|
+
})}
|
|
83
|
+
>
|
|
84
|
+
{prompt && (
|
|
85
|
+
<span
|
|
86
|
+
aria-hidden="true"
|
|
87
|
+
{...styles.prompt({ style: { marginInlineEnd: gap(prompt) } })}
|
|
88
|
+
>
|
|
89
|
+
{prompt}
|
|
90
|
+
</span>
|
|
91
|
+
)}
|
|
92
|
+
<span
|
|
93
|
+
{...styles.program({
|
|
94
|
+
// The space before the arguments advances by another `1ch`.
|
|
95
|
+
style: rest ? { marginInlineEnd: `calc(${gap(program)} - 1ch)` } : undefined,
|
|
96
|
+
})}
|
|
97
|
+
>
|
|
98
|
+
{program}
|
|
99
|
+
</span>
|
|
100
|
+
{rest}
|
|
101
|
+
</code>
|
|
102
|
+
<CopyButton aria-label={labels?.copy ?? 'Copy'} copied={state.copied} value={children} />
|
|
103
|
+
</div>
|
|
49
104
|
</div>
|
|
50
105
|
)
|
|
51
106
|
}
|
|
@@ -65,89 +120,93 @@ export namespace Snippet {
|
|
|
65
120
|
* @default '$'
|
|
66
121
|
*/
|
|
67
122
|
prompt?: string | false | undefined
|
|
123
|
+
/**
|
|
124
|
+
* Has no effect. The snippet has one size, and its height follows the lines of the command.
|
|
125
|
+
* @deprecated Remove the prop.
|
|
126
|
+
*/
|
|
127
|
+
size?: 'large' | 'medium' | 'small' | undefined
|
|
128
|
+
/**
|
|
129
|
+
* A `Tabs.List` shown above the command, inside the border and over a rule. A click on it
|
|
130
|
+
* does not copy. Absent by default.
|
|
131
|
+
*/
|
|
132
|
+
tabs?: ReactNode | undefined
|
|
68
133
|
}
|
|
69
134
|
}
|
|
70
135
|
|
|
71
136
|
namespace styles {
|
|
137
|
+
// The copy button sits in the corner, and fills on hover anywhere on the command, since a click
|
|
138
|
+
// there copies. The fill selectors outrank the hover and press fills of the button, and the
|
|
139
|
+
// copied fill stays last, so it wins over the hover fill.
|
|
140
|
+
export const command = style(
|
|
141
|
+
{
|
|
142
|
+
alignItems: 'flex-start',
|
|
143
|
+
backgroundColor: 'container.subtle',
|
|
144
|
+
columnGap: '12',
|
|
145
|
+
cursor: 'pointer',
|
|
146
|
+
display: 'flex',
|
|
147
|
+
padding: '16',
|
|
148
|
+
selectors: {
|
|
149
|
+
'& > button': { color: 'content.secondary' },
|
|
150
|
+
'&:active > button:not(:disabled)': { scale: 'press' },
|
|
151
|
+
'&:hover > button:not(:disabled)': { backgroundColor: 'container.strong' },
|
|
152
|
+
'& > button[data-copied]:not(:disabled)': {
|
|
153
|
+
backgroundColor: 'container.positive',
|
|
154
|
+
color: 'content.positive',
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
158
|
+
selectors: { '&:active > button:not(:disabled)': { scale: 'none !custom' } },
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
{ id: 'tds/web/snippet/command' },
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
export const program = style({ color: 'content.primary' }, { id: 'tds/web/snippet/program' })
|
|
165
|
+
|
|
72
166
|
export const prompt = style(
|
|
73
|
-
{ color: '
|
|
167
|
+
{ color: 'content.tertiary', userSelect: 'none' },
|
|
74
168
|
{ id: 'tds/web/snippet/prompt' },
|
|
75
169
|
)
|
|
76
170
|
|
|
171
|
+
// The snippet clips the command to its corners.
|
|
77
172
|
export const root = variants(
|
|
78
173
|
{
|
|
79
174
|
base: {
|
|
80
|
-
|
|
81
|
-
|
|
175
|
+
backgroundColor: 'background.elevated',
|
|
176
|
+
borderColor: 'line.secondary',
|
|
177
|
+
borderRadius: 'sm',
|
|
178
|
+
borderStyle: 'solid',
|
|
179
|
+
borderWidth: 'regular',
|
|
82
180
|
boxSizing: 'border-box',
|
|
83
|
-
color: '
|
|
84
|
-
columnGap: '8',
|
|
85
|
-
cursor: 'pointer',
|
|
86
|
-
display: 'flex',
|
|
181
|
+
color: 'content.secondary',
|
|
87
182
|
minWidth: '0',
|
|
183
|
+
overflow: 'hidden',
|
|
88
184
|
position: 'relative',
|
|
89
|
-
transitionDuration: '200ms, 160ms !custom',
|
|
90
|
-
transitionProperty: 'background-color, scale',
|
|
91
|
-
transitionTimingFunction: 'snappy',
|
|
92
|
-
typography: 'label.14.mono',
|
|
93
|
-
selectors: {
|
|
94
|
-
// Inner buttons keep their own hover, so the block only reacts beside them.
|
|
95
|
-
'&:hover:not(:has(button:hover))': { backgroundColor: 'grayAlpha.200' },
|
|
96
|
-
'&:active:not(:has(button:active))': { scale: 'press' },
|
|
97
|
-
'&[data-copied]': { backgroundColor: 'green.200' },
|
|
98
|
-
},
|
|
99
|
-
'@media (prefers-reduced-motion: reduce)': {
|
|
100
|
-
transitionProperty: 'background-color',
|
|
101
|
-
selectors: { '&:active:not(:has(button:active))': { scale: 'none !custom' } },
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
defaultVariants: { size: 'medium' },
|
|
105
|
-
variants: {
|
|
106
|
-
// Heights and radii match Input: 32, 40 and 56px.
|
|
107
|
-
size: {
|
|
108
|
-
large: {
|
|
109
|
-
borderRadius: '16',
|
|
110
|
-
height: '56',
|
|
111
|
-
paddingInlineEnd: '8',
|
|
112
|
-
paddingInlineStart: '20',
|
|
113
|
-
},
|
|
114
|
-
medium: {
|
|
115
|
-
borderRadius: '12',
|
|
116
|
-
height: '40',
|
|
117
|
-
paddingInlineEnd: '4',
|
|
118
|
-
paddingInlineStart: '16',
|
|
119
|
-
},
|
|
120
|
-
small: {
|
|
121
|
-
borderRadius: '8',
|
|
122
|
-
height: '32',
|
|
123
|
-
paddingInlineEnd: '4',
|
|
124
|
-
paddingInlineStart: '12',
|
|
125
|
-
selectors: { '& > button': { height: '24', minWidth: '24', width: '24' } },
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
185
|
},
|
|
129
186
|
},
|
|
130
187
|
{ id: 'tds/web/snippet' },
|
|
131
188
|
)
|
|
132
189
|
|
|
190
|
+
// The tabs touch the top edge, where the snippet clips, so their focus rings draw inside them.
|
|
191
|
+
export const tabs = style(
|
|
192
|
+
{
|
|
193
|
+
borderBlockEndColor: 'line.secondary',
|
|
194
|
+
borderBlockEndStyle: 'solid',
|
|
195
|
+
borderBlockEndWidth: 'regular',
|
|
196
|
+
paddingInline: '8',
|
|
197
|
+
selectors: { '& [role="tab"]': { outlineOffset: '-2' } },
|
|
198
|
+
},
|
|
199
|
+
{ id: 'tds/web/snippet/tabs' },
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
// A one-line command centers on the copy button, and a longer one starts level with it.
|
|
133
203
|
export const text = style(
|
|
134
204
|
{
|
|
205
|
+
alignSelf: 'center',
|
|
135
206
|
flexGrow: '1 !custom',
|
|
136
|
-
fontFamily: 'mono',
|
|
137
207
|
minWidth: '0',
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
outlineStyle: 'solid !custom',
|
|
141
|
-
outlineWidth: '2',
|
|
142
|
-
overflowX: 'auto',
|
|
143
|
-
transitionDuration: '160',
|
|
144
|
-
transitionProperty: 'outline-color, outline-offset',
|
|
145
|
-
transitionTimingFunction: 'snappy',
|
|
146
|
-
whiteSpace: 'nowrap',
|
|
147
|
-
selectors: {
|
|
148
|
-
'&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
|
|
149
|
-
},
|
|
150
|
-
'@media (prefers-reduced-motion: reduce)': { transitionProperty: 'outline-color' },
|
|
208
|
+
overflowWrap: 'anywhere',
|
|
209
|
+
typography: 'mono.m1',
|
|
151
210
|
},
|
|
152
211
|
{ id: 'tds/web/snippet/text' },
|
|
153
212
|
)
|
|
@@ -6,15 +6,17 @@ import { style, variants } from '../zyzz.config.js'
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* An indeterminate loading indicator. Renders a Base UI `Progress.Root` with
|
|
9
|
-
* `role="progressbar"`, no `aria-valuenow`, and the name `Loading`. The
|
|
10
|
-
* `currentColor` and
|
|
9
|
+
* `role="progressbar"`, no `aria-valuenow`, and the name `Loading`. The arc draws in
|
|
10
|
+
* `currentColor` on a faint track, black in light mode and the text color in dark mode, and stops
|
|
11
|
+
* rotating under `prefers-reduced-motion: reduce`. `elevated` places it on a 44px elevated tile
|
|
12
|
+
* with a shadow.
|
|
11
13
|
*
|
|
12
14
|
* - Pass `aria-label` to say what is loading, such as `Loading transactions`.
|
|
13
15
|
* - Show it only after a short delay, so fast responses do not flash an indicator.
|
|
14
16
|
* - Prefer `Skeleton` when the shape of the loading content is known.
|
|
15
17
|
*
|
|
16
18
|
* @example
|
|
17
|
-
* <Spinner aria-label="Loading transactions"
|
|
19
|
+
* <Spinner aria-label="Loading transactions" elevated />
|
|
18
20
|
*
|
|
19
21
|
* @see {@link https://base-ui.com/react/components/progress | Base UI Progress}
|
|
20
22
|
* @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/progressbar_role | MDN progressbar role}
|
|
@@ -22,18 +24,22 @@ import { style, variants } from '../zyzz.config.js'
|
|
|
22
24
|
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html | WCAG 2.2 Pause, Stop, Hide}
|
|
23
25
|
*/
|
|
24
26
|
export function Spinner(props: Spinner.Props) {
|
|
25
|
-
const { className,
|
|
27
|
+
const { className, elevated, vars, ...attributes } = props
|
|
26
28
|
|
|
27
29
|
return (
|
|
28
30
|
<BaseUi.Progress.Root
|
|
29
31
|
aria-label="Loading"
|
|
30
32
|
{...attributes}
|
|
31
|
-
{...styles.spinner({ className,
|
|
33
|
+
{...styles.spinner({ className, elevated, style: props.style, vars })}
|
|
32
34
|
value={null}
|
|
33
35
|
>
|
|
34
36
|
<svg aria-hidden="true" {...styles.glyph()} fill="none" viewBox="0 0 16 16">
|
|
35
|
-
<circle cx="8" cy="8" r="6"
|
|
36
|
-
<path
|
|
37
|
+
<circle cx="8" cy="8" r="6" strokeOpacity="0.08" {...styles.track()} />
|
|
38
|
+
<path
|
|
39
|
+
d="M14 7.97422C14 9.3007 13.5642 10.5901 12.7601 11.6425C11.9561 12.6948 10.8287 13.4514 9.55292 13.7947C8.27712 14.138 6.92417 14.0489 5.70391 13.5413C4.48364 13.0337 3.46426 12.1359 2.80386 10.9871C2.14345 9.83835 1.87894 8.50283 2.05134 7.1877C2.22374 5.87257 2.82342 4.65132 3.75737 3.71336C4.69132 2.77539 5.90734 2.17314 7.21685 2"
|
|
40
|
+
stroke="currentColor"
|
|
41
|
+
strokeLinecap="round"
|
|
42
|
+
/>
|
|
37
43
|
</svg>
|
|
38
44
|
</BaseUi.Progress.Root>
|
|
39
45
|
)
|
|
@@ -63,19 +69,39 @@ namespace styles {
|
|
|
63
69
|
export const spinner = variants(
|
|
64
70
|
{
|
|
65
71
|
base: {
|
|
72
|
+
alignItems: 'center',
|
|
66
73
|
color: 'inherit !custom',
|
|
67
74
|
display: 'inline-flex',
|
|
68
75
|
flexShrink: '0 !custom',
|
|
76
|
+
height: '16',
|
|
77
|
+
justifyContent: 'center',
|
|
78
|
+
width: '16',
|
|
69
79
|
},
|
|
70
|
-
defaultVariants: {
|
|
80
|
+
defaultVariants: { elevated: false },
|
|
71
81
|
variants: {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
82
|
+
// The tile is a 44px square around the 16px ring.
|
|
83
|
+
elevated: {
|
|
84
|
+
false: {},
|
|
85
|
+
true: {
|
|
86
|
+
backgroundColor: 'background.elevated',
|
|
87
|
+
borderRadius: 'xs',
|
|
88
|
+
// Web has no elevated shadow step, so this repeats the Mobile `shadow.elevated` layers, in
|
|
89
|
+
// the order of the Figma Spinner.
|
|
90
|
+
boxShadow: '0 12px 36px #0000000a, 0 8px 32px #0000000a, 0 4px 12px #0000000a !custom',
|
|
91
|
+
height: '44',
|
|
92
|
+
width: '44',
|
|
93
|
+
selectors: { '& > svg': { height: '16', width: '16' } },
|
|
94
|
+
},
|
|
76
95
|
},
|
|
77
96
|
},
|
|
78
97
|
},
|
|
79
98
|
{ id: 'tds/web/spinner' },
|
|
80
99
|
)
|
|
100
|
+
|
|
101
|
+
// Figma draws the track in black at 8% in every scheme. Its black has no dark value, so the dark
|
|
102
|
+
// track keeps the text color, which stays visible on a dark surface.
|
|
103
|
+
export const track = style(
|
|
104
|
+
{ stroke: 'light-dark(#000, currentColor) !custom' },
|
|
105
|
+
{ id: 'tds/web/spinner/track' },
|
|
106
|
+
)
|
|
81
107
|
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react'
|
|
2
|
+
import type * as zyzz from 'zyzz'
|
|
3
|
+
import { style, variants } from '../zyzz.config.js'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A bar that splits one total between two parts, such as the funds available to a wallet and the
|
|
7
|
+
* funds set aside for its agents, with a legend under it. It renders a `div`. The bar is hidden
|
|
8
|
+
* from assistive technology, so the legend carries each label and value.
|
|
9
|
+
*
|
|
10
|
+
* - Pass the two parts in reading order. The first fills in `content.primary`, and the second in
|
|
11
|
+
* `content.subtle`.
|
|
12
|
+
* - Give each part a `text` with its formatted value, such as `$75.62`.
|
|
13
|
+
* - Use `BarChart` for values over time, and `Progress` for one task.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <SplitBar
|
|
17
|
+
* items={[
|
|
18
|
+
* { label: 'Available', text: '$75.62', value: 75.62 },
|
|
19
|
+
* { label: 'Agents', text: '$8.58', value: 8.58 },
|
|
20
|
+
* ]}
|
|
21
|
+
* />
|
|
22
|
+
*
|
|
23
|
+
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/use-of-color.html | WCAG 2.2 Use of Color}
|
|
24
|
+
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.html | WCAG 2.2 Info and Relationships}
|
|
25
|
+
*/
|
|
26
|
+
export function SplitBar(props: SplitBar.Props) {
|
|
27
|
+
const { className, items, vars, ...attributes } = props
|
|
28
|
+
const total = items.reduce((sum, item) => sum + Math.max(item.value, 0), 0)
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<div {...attributes} {...styles.root({ className, style: props.style, vars })}>
|
|
32
|
+
<div aria-hidden="true" {...styles.track()}>
|
|
33
|
+
{items.map((item, index) =>
|
|
34
|
+
item.value > 0 ? (
|
|
35
|
+
<span
|
|
36
|
+
key={index}
|
|
37
|
+
// Each segment grows by its share of the total. Grow factors that sum to less than 1
|
|
38
|
+
// would leave part of the track unfilled.
|
|
39
|
+
{...styles.segment({
|
|
40
|
+
part: index === 0 ? 'first' : 'second',
|
|
41
|
+
style: { flexGrow: item.value / total },
|
|
42
|
+
})}
|
|
43
|
+
/>
|
|
44
|
+
) : null,
|
|
45
|
+
)}
|
|
46
|
+
</div>
|
|
47
|
+
<div {...styles.legend()}>
|
|
48
|
+
{items.map((item, index) => (
|
|
49
|
+
<span key={index} {...styles.entry()}>
|
|
50
|
+
<span
|
|
51
|
+
aria-hidden="true"
|
|
52
|
+
{...styles.swatch({ part: index === 0 ? 'first' : 'second' })}
|
|
53
|
+
/>
|
|
54
|
+
<span {...styles.label()}>{item.label}</span>
|
|
55
|
+
<span {...styles.text()}>{item.text}</span>
|
|
56
|
+
</span>
|
|
57
|
+
))}
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export namespace SplitBar {
|
|
64
|
+
/** One part of the total. */
|
|
65
|
+
export type Item = {
|
|
66
|
+
/** Name of the part in the legend, such as Available. */
|
|
67
|
+
label: ReactNode
|
|
68
|
+
/** Formatted value of the part in the legend, such as `$75.62`. */
|
|
69
|
+
text: ReactNode
|
|
70
|
+
/**
|
|
71
|
+
* Share of the bar, in a unit that both parts share. A part of 0 draws no segment, and the
|
|
72
|
+
* other part fills the track.
|
|
73
|
+
*/
|
|
74
|
+
value: number
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export type Props = Omit<ComponentPropsWithRef<'div'>, 'children'> &
|
|
78
|
+
zyzz.Props.Variants<typeof styles.root> & {
|
|
79
|
+
/** The two parts, in reading order. */
|
|
80
|
+
items: readonly [Item, Item]
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
namespace styles {
|
|
85
|
+
export const entry = style(
|
|
86
|
+
{ alignItems: 'center', columnGap: '6', display: 'inline-flex', whiteSpace: 'nowrap' },
|
|
87
|
+
{ id: 'tds/web/split-bar/entry' },
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
export const label = style(
|
|
91
|
+
{ color: 'content.primary', typography: 'body.b3' },
|
|
92
|
+
{ id: 'tds/web/split-bar/label' },
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
// The legend pins its first entry to the start and its last to the end.
|
|
96
|
+
export const legend = style(
|
|
97
|
+
{ columnGap: '16', display: 'flex', flexWrap: 'wrap', justifyContent: 'space-between' },
|
|
98
|
+
{ id: 'tds/web/split-bar/legend' },
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
export const root = variants(
|
|
102
|
+
{ base: { display: 'flex', flexDirection: 'column', rowGap: '10' } },
|
|
103
|
+
{ id: 'tds/web/split-bar' },
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
export const segment = variants(
|
|
107
|
+
{
|
|
108
|
+
base: { flexBasis: '0', height: '100% !custom', minWidth: '0' },
|
|
109
|
+
defaultVariants: { part: 'first' },
|
|
110
|
+
variants: {
|
|
111
|
+
part: {
|
|
112
|
+
first: { backgroundColor: 'content.primary' },
|
|
113
|
+
second: { backgroundColor: 'content.subtle' },
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
{ id: 'tds/web/split-bar/segment' },
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
// A swatch keeps a 2px corner, which no radius token sets.
|
|
121
|
+
export const swatch = variants(
|
|
122
|
+
{
|
|
123
|
+
base: {
|
|
124
|
+
borderRadius: 'calc(0.125rem * var(--tds-corner-scale, 1)) !custom',
|
|
125
|
+
flexShrink: '0 !custom',
|
|
126
|
+
height: '8',
|
|
127
|
+
width: '8',
|
|
128
|
+
},
|
|
129
|
+
defaultVariants: { part: 'first' },
|
|
130
|
+
variants: {
|
|
131
|
+
part: {
|
|
132
|
+
first: { backgroundColor: 'content.primary' },
|
|
133
|
+
second: { backgroundColor: 'content.subtle' },
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
{ id: 'tds/web/split-bar/swatch' },
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
export const text = style(
|
|
141
|
+
{ color: 'content.secondary', typography: 'body.b3' },
|
|
142
|
+
{ id: 'tds/web/split-bar/text' },
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
// The track clips the segments to its pill, and leaves 2px of the track between them.
|
|
146
|
+
export const track = style(
|
|
147
|
+
{
|
|
148
|
+
backgroundColor: 'container.strong',
|
|
149
|
+
borderRadius: 'full',
|
|
150
|
+
columnGap: '2',
|
|
151
|
+
cornerShape: 'round',
|
|
152
|
+
display: 'flex',
|
|
153
|
+
height: '8',
|
|
154
|
+
overflow: 'hidden',
|
|
155
|
+
},
|
|
156
|
+
{ id: 'tds/web/split-bar/track' },
|
|
157
|
+
)
|
|
158
|
+
}
|
|
@@ -52,6 +52,7 @@ export namespace SplitButton {
|
|
|
52
52
|
return (
|
|
53
53
|
<splitContext.Provider value={{ size, variant }}>
|
|
54
54
|
<div
|
|
55
|
+
data-variant={variant ?? 'primary'}
|
|
55
56
|
role="group"
|
|
56
57
|
{...attributes}
|
|
57
58
|
{...styles.root({ className, style: props.style, vars })}
|
|
@@ -63,7 +64,10 @@ export namespace SplitButton {
|
|
|
63
64
|
export namespace Root {
|
|
64
65
|
export type Props = ComponentPropsWithRef<'div'> &
|
|
65
66
|
zyzz.Props.Variants<typeof styles.root> &
|
|
66
|
-
Pick<Button.Props, '
|
|
67
|
+
Pick<Button.Props, 'variant'> & {
|
|
68
|
+
/** Size of both buttons. The 24px `xsmall` pill can't join a trigger, so it is left out. */
|
|
69
|
+
size?: Exclude<Button.Props['size'], 'xsmall'> | undefined
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
/** Opens the menu. Pass an `aria-label`, since the default chevron has no text. */
|
|
@@ -96,24 +100,17 @@ namespace styles {
|
|
|
96
100
|
display: 'inline-flex',
|
|
97
101
|
selectors: {
|
|
98
102
|
'& > :first-child': {
|
|
99
|
-
borderBottomRightRadius: '
|
|
100
|
-
borderTopRightRadius: '
|
|
103
|
+
borderBottomRightRadius: 'none',
|
|
104
|
+
borderTopRightRadius: 'none',
|
|
101
105
|
},
|
|
102
|
-
// The trigger is a segment of the group, so its outer corners follow the action's
|
|
103
|
-
//
|
|
106
|
+
// The trigger is a segment of the group, so its outer corners follow the action's radius
|
|
107
|
+
// and squircle rather than the circle of an icon button.
|
|
104
108
|
'& > [aria-haspopup]': {
|
|
105
|
-
borderBottomLeftRadius: '
|
|
106
|
-
borderBottomRightRadius: '
|
|
107
|
-
borderTopLeftRadius: '
|
|
108
|
-
borderTopRightRadius: '
|
|
109
|
-
|
|
110
|
-
'& > [aria-haspopup][data-size="large"]': {
|
|
111
|
-
borderBottomRightRadius: '16',
|
|
112
|
-
borderTopRightRadius: '16',
|
|
113
|
-
},
|
|
114
|
-
'& > [aria-haspopup][data-size="small"]': {
|
|
115
|
-
borderBottomRightRadius: '8',
|
|
116
|
-
borderTopRightRadius: '8',
|
|
109
|
+
borderBottomLeftRadius: 'none',
|
|
110
|
+
borderBottomRightRadius: 'xs',
|
|
111
|
+
borderTopLeftRadius: 'none',
|
|
112
|
+
borderTopRightRadius: 'xs',
|
|
113
|
+
cornerShape: 'squircle',
|
|
117
114
|
},
|
|
118
115
|
'& > [aria-haspopup] > svg': {
|
|
119
116
|
transitionDuration: '240',
|
|
@@ -121,6 +118,18 @@ namespace styles {
|
|
|
121
118
|
transitionTimingFunction: 'spring',
|
|
122
119
|
},
|
|
123
120
|
'& > [data-popup-open] > svg': { transform: 'rotate(180deg) !custom' },
|
|
121
|
+
// A primary trigger takes the fills of the primary action, not the fixed fill of a primary
|
|
122
|
+
// icon button. Each pressed fill follows its hover fill, so it wins while pressed.
|
|
123
|
+
'&[data-variant="primary"] > [aria-haspopup]': {
|
|
124
|
+
backgroundColor: 'inverse.background.primary',
|
|
125
|
+
color: 'inverse.content.primary',
|
|
126
|
+
},
|
|
127
|
+
'&[data-variant="primary"] > [aria-haspopup]:hover:not(:disabled)': {
|
|
128
|
+
backgroundColor: 'action.primary.fill.hover',
|
|
129
|
+
},
|
|
130
|
+
'&[data-variant="primary"] > [aria-haspopup]:active:not(:disabled)': {
|
|
131
|
+
backgroundColor: 'action.primary.fill.pressed',
|
|
132
|
+
},
|
|
124
133
|
},
|
|
125
134
|
'@media (prefers-reduced-motion: reduce)': {
|
|
126
135
|
selectors: { '& > [aria-haspopup] > svg': { transitionProperty: 'none' } },
|