@tempoxyz/ds 0.2.6 → 0.3.1
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 +161 -0
- package/dist/web/components/Alert.d.ts.map +1 -0
- package/dist/web/components/Alert.js +97 -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 +172 -28
- package/dist/web/components/AppShell.d.ts.map +1 -1
- package/dist/web/components/AppShell.js +89 -29
- 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 +167 -32
- package/dist/web/components/Button.d.ts.map +1 -1
- package/dist/web/components/Button.js +14 -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 +530 -0
- package/dist/web/components/ListGroup.d.ts.map +1 -0
- package/dist/web/components/ListGroup.js +270 -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 +26 -9
- 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 +238 -39
- package/dist/web/components/SidebarMenu.d.ts.map +1 -1
- package/dist/web/components/SidebarMenu.js +123 -20
- 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 +123 -101
- package/dist/web/components/Surface.d.ts.map +1 -1
- package/dist/web/components/Surface.js +20 -10
- 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/components/internal/TabBar.d.ts +33 -0
- package/dist/web/components/internal/TabBar.d.ts.map +1 -0
- package/dist/web/components/internal/TabBar.js +30 -0
- package/dist/web/components/internal/TabBar.js.map +1 -0
- package/dist/web/components/internal/Text.d.ts +9 -0
- package/dist/web/components/internal/Text.d.ts.map +1 -0
- package/dist/web/components/internal/Text.js +35 -0
- package/dist/web/components/internal/Text.js.map +1 -0
- 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 +612 -704
- 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 +3041 -3506
- 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 +321 -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 +367 -43
- 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 +122 -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 +159 -41
- 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 +273 -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 +857 -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 +89 -26
- package/src/web/components/Separator.tsx +95 -7
- package/src/web/components/SidebarMenu.tsx +390 -53
- 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 +172 -93
- 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/internal/TabBar.ts +52 -0
- package/src/web/components/internal/Text.ts +39 -0
- 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 +493 -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
|
@@ -150,17 +150,18 @@ namespace styles {
|
|
|
150
150
|
export const action = style(
|
|
151
151
|
{
|
|
152
152
|
alignItems: 'center',
|
|
153
|
-
backgroundColor: '
|
|
153
|
+
backgroundColor: 'container.regular',
|
|
154
154
|
border: 'none !custom',
|
|
155
155
|
borderRadius: 'full',
|
|
156
|
-
color: '
|
|
156
|
+
color: 'content.primary',
|
|
157
|
+
cornerShape: 'round',
|
|
157
158
|
cursor: 'pointer',
|
|
158
159
|
display: 'inline-flex',
|
|
159
160
|
flexShrink: '0 !custom',
|
|
160
161
|
height: '32',
|
|
161
162
|
paddingInline: '12',
|
|
162
163
|
// Weight overrides the typography token, so it stays after it.
|
|
163
|
-
typography: '
|
|
164
|
+
typography: 'body.b3Strong',
|
|
164
165
|
outlineColor: 'transparent !custom',
|
|
165
166
|
outlineOffset: '0',
|
|
166
167
|
outlineStyle: 'solid !custom',
|
|
@@ -170,11 +171,11 @@ namespace styles {
|
|
|
170
171
|
transitionTimingFunction: 'snappy',
|
|
171
172
|
selectors: {
|
|
172
173
|
'&:active': {
|
|
173
|
-
backgroundColor: '
|
|
174
|
+
backgroundColor: 'line.primary',
|
|
174
175
|
scale: 'press',
|
|
175
176
|
},
|
|
176
|
-
'&:focus-visible': { outlineColor: '
|
|
177
|
-
'&:hover': { backgroundColor: '
|
|
177
|
+
'&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
|
|
178
|
+
'&:hover': { backgroundColor: 'container.strong' },
|
|
178
179
|
},
|
|
179
180
|
'@media (prefers-reduced-motion: reduce)': {
|
|
180
181
|
transitionProperty: 'background-color, outline-color',
|
|
@@ -201,7 +202,8 @@ namespace styles {
|
|
|
201
202
|
backgroundColor: 'transparent !custom',
|
|
202
203
|
border: 'none !custom',
|
|
203
204
|
borderRadius: 'full',
|
|
204
|
-
color: '
|
|
205
|
+
color: 'content.tertiary',
|
|
206
|
+
cornerShape: 'round',
|
|
205
207
|
cursor: 'pointer',
|
|
206
208
|
display: 'inline-flex',
|
|
207
209
|
flexShrink: '0 !custom',
|
|
@@ -219,8 +221,8 @@ namespace styles {
|
|
|
219
221
|
transitionTimingFunction: 'snappy',
|
|
220
222
|
selectors: {
|
|
221
223
|
'&:active': { scale: 'press' },
|
|
222
|
-
'&:focus-visible': { outlineColor: '
|
|
223
|
-
'&:hover': { backgroundColor: '
|
|
224
|
+
'&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
|
|
225
|
+
'&:hover': { backgroundColor: 'container.regular' },
|
|
224
226
|
},
|
|
225
227
|
'@media (prefers-reduced-motion: reduce)': {
|
|
226
228
|
transitionProperty: 'background-color, outline-color',
|
|
@@ -252,7 +254,7 @@ namespace styles {
|
|
|
252
254
|
)
|
|
253
255
|
|
|
254
256
|
export const description = style(
|
|
255
|
-
{ color: '
|
|
257
|
+
{ color: 'content.secondary', margin: '0', typography: 'body.b2' },
|
|
256
258
|
{ id: 'tds/web/toast/description' },
|
|
257
259
|
)
|
|
258
260
|
|
|
@@ -261,11 +263,11 @@ namespace styles {
|
|
|
261
263
|
base: { display: 'inline-flex', flexShrink: '0 !custom', fontSize: '20' },
|
|
262
264
|
variants: {
|
|
263
265
|
intent: {
|
|
264
|
-
info: { color: 'blue.
|
|
265
|
-
negative: { color: '
|
|
266
|
+
info: { color: 'accent.blue.background' },
|
|
267
|
+
negative: { color: 'content.negative' },
|
|
266
268
|
neutral: {},
|
|
267
|
-
positive: { color: '
|
|
268
|
-
warning: { color: '
|
|
269
|
+
positive: { color: 'content.positive' },
|
|
270
|
+
warning: { color: 'content.warning' },
|
|
269
271
|
},
|
|
270
272
|
},
|
|
271
273
|
},
|
|
@@ -274,11 +276,11 @@ namespace styles {
|
|
|
274
276
|
|
|
275
277
|
export const root = style(
|
|
276
278
|
{
|
|
277
|
-
backgroundColor: 'background.
|
|
278
|
-
borderRadius: '
|
|
279
|
-
boxShadow: '
|
|
279
|
+
backgroundColor: 'background.elevated',
|
|
280
|
+
borderRadius: 'sm',
|
|
281
|
+
boxShadow: 'regular',
|
|
280
282
|
boxSizing: 'border-box',
|
|
281
|
-
color: '
|
|
283
|
+
color: 'content.primary',
|
|
282
284
|
height: 'var(--toast-frontmost-height, var(--toast-height)) !custom',
|
|
283
285
|
insetInline: '0',
|
|
284
286
|
insetBlockEnd: '0',
|
|
@@ -295,7 +297,7 @@ namespace styles {
|
|
|
295
297
|
selectors: {
|
|
296
298
|
'&::after': {
|
|
297
299
|
content: '"" !custom',
|
|
298
|
-
height: '
|
|
300
|
+
height: '16',
|
|
299
301
|
insetBlockStart: '100% !custom',
|
|
300
302
|
insetInline: '0',
|
|
301
303
|
position: 'absolute',
|
|
@@ -332,7 +334,7 @@ namespace styles {
|
|
|
332
334
|
)
|
|
333
335
|
|
|
334
336
|
export const title = style(
|
|
335
|
-
{ color: '
|
|
337
|
+
{ color: 'content.primary', margin: '0', typography: 'body.b2Strong' },
|
|
336
338
|
{ id: 'tds/web/toast/title' },
|
|
337
339
|
)
|
|
338
340
|
|
|
@@ -341,13 +343,13 @@ namespace styles {
|
|
|
341
343
|
insetBlockEnd: '16',
|
|
342
344
|
insetInline: '16',
|
|
343
345
|
margin: 'auto !custom',
|
|
344
|
-
maxWidth: '
|
|
346
|
+
maxWidth: '360',
|
|
345
347
|
position: 'fixed',
|
|
346
348
|
zIndex: 'toast',
|
|
347
349
|
'@media (min-width: 40rem)': {
|
|
348
350
|
insetInlineStart: 'auto !custom',
|
|
349
351
|
margin: '0',
|
|
350
|
-
width: '
|
|
352
|
+
width: '360',
|
|
351
353
|
},
|
|
352
354
|
},
|
|
353
355
|
{ id: 'tds/web/toast/viewport' },
|
|
@@ -1,197 +1,131 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import * as BaseUi from '@base-ui/react/button'
|
|
2
|
+
import type { ComponentPropsWithRef } from 'react'
|
|
3
3
|
import type * as zyzz from 'zyzz'
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const defaultChainId = 4217
|
|
8
|
-
const service = 'https://tokenlist.tempo.xyz'
|
|
9
|
-
|
|
10
|
-
const TokenContext = createContext<{
|
|
11
|
-
/** In-flight symbol lookups, shared by the tokens under one `Token.Provider`. */
|
|
12
|
-
addresses?: Map<string, Promise<string | undefined>> | undefined
|
|
13
|
-
chainId: number
|
|
14
|
-
resolveAddress: Token.ResolveAddress
|
|
15
|
-
resolveSrc: Token.ResolveSrc
|
|
16
|
-
}>({ chainId: defaultChainId, resolveAddress: asset, resolveSrc: url })
|
|
17
|
-
|
|
18
|
-
async function asset(options: Token.ResolveAddress.Options) {
|
|
19
|
-
const response = await fetch(`${service}/asset/${options.chainId}/${options.symbol}`)
|
|
20
|
-
if (!response.ok) return undefined
|
|
21
|
-
return ((await response.json()) as { address?: string | undefined }).address
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function url(options: Token.ResolveSrc.Options) {
|
|
25
|
-
return `${service}/icon/${options.chainId}/${options.address.toLowerCase()}`
|
|
26
|
-
}
|
|
4
|
+
import { ChevronDown } from '../icons/ChevronDown.js'
|
|
5
|
+
import { style } from '../zyzz.config.js'
|
|
6
|
+
import { TokenLogo } from './TokenLogo.js'
|
|
27
7
|
|
|
28
8
|
/**
|
|
29
|
-
* A
|
|
30
|
-
*
|
|
31
|
-
*
|
|
9
|
+
* A pill with a token's logo and symbol. By default it renders a native `<button>`, built on Base
|
|
10
|
+
* UI Button, with a chevron that marks it as the trigger of a token picker. Set `readOnly` to
|
|
11
|
+
* render a `<span>` without the chevron, for reviews and receipts.
|
|
32
12
|
*
|
|
33
|
-
* -
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* -
|
|
13
|
+
* - The symbol is the visible label and the button's accessible name. The logo is decorative.
|
|
14
|
+
* - Pass the pill to a trigger's `render`, such as
|
|
15
|
+
* `<Dialog.Trigger render={<Token symbol="pathUSD" />} />`.
|
|
16
|
+
* - Pass `address` when you have it, so the logo loads without a symbol lookup.
|
|
17
|
+
* - The logo resolves through the nearest `TokenLogo.Provider`.
|
|
37
18
|
*
|
|
38
19
|
* @example
|
|
39
|
-
* <Token symbol="pathUSD" />
|
|
40
|
-
* <Token
|
|
20
|
+
* <Token address={address} onClick={openPicker} symbol="pathUSD" />
|
|
21
|
+
* <Token readOnly symbol="USDC" />
|
|
41
22
|
*
|
|
42
|
-
* @see {@link https://
|
|
43
|
-
* @see {@link https://www.w3.org/WAI/
|
|
23
|
+
* @see {@link https://base-ui.com/react/components/button | Base UI Button}
|
|
24
|
+
* @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/button/ | WAI-ARIA APG Button pattern}
|
|
25
|
+
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html | WCAG 2.2 Name, Role, Value}
|
|
44
26
|
*/
|
|
45
27
|
export function Token(props: Token.Props) {
|
|
46
|
-
const { address, chainId, className,
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const source =
|
|
53
|
-
src ?? (resolved ? inherited.resolveSrc({ address: resolved, chainId: chain, symbol }) : '')
|
|
54
|
-
const [loaded, setLoaded] = useState<{ status: 'error' | 'loaded'; url: string } | undefined>()
|
|
55
|
-
const status = (() => {
|
|
56
|
-
if (source) return loaded?.url === source ? loaded.status : 'loading'
|
|
57
|
-
return key && lookup?.key !== key ? 'loading' : 'error'
|
|
58
|
-
})()
|
|
59
|
-
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
if (!key || !symbol) return
|
|
62
|
-
|
|
63
|
-
let active = true
|
|
64
|
-
const pending =
|
|
65
|
-
inherited.addresses?.get(key) ??
|
|
66
|
-
inherited.resolveAddress({ chainId: chain, symbol }).catch(() => undefined)
|
|
67
|
-
inherited.addresses?.set(key, pending)
|
|
68
|
-
|
|
69
|
-
pending.then((next) => active && setLookup({ address: next, key }))
|
|
28
|
+
const { address, chainId, className, readOnly, src, symbol, vars, ...attributes } = props
|
|
29
|
+
const logo = address ? (
|
|
30
|
+
<TokenLogo address={address} chainId={chainId} size="medium" src={src} />
|
|
31
|
+
) : (
|
|
32
|
+
<TokenLogo chainId={chainId} size="medium" src={src} symbol={symbol} />
|
|
33
|
+
)
|
|
70
34
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
35
|
+
if (readOnly)
|
|
36
|
+
return (
|
|
37
|
+
<span {...attributes} {...styles.token({ className, style: props.style, vars })}>
|
|
38
|
+
{logo}
|
|
39
|
+
{symbol}
|
|
40
|
+
</span>
|
|
41
|
+
)
|
|
75
42
|
|
|
76
43
|
return (
|
|
77
|
-
<
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
data-status={status}
|
|
83
|
-
onError={(event) => {
|
|
84
|
-
props.onError?.(event)
|
|
85
|
-
if (source) setLoaded({ status: 'error', url: source })
|
|
86
|
-
}}
|
|
87
|
-
onLoad={(event) => {
|
|
88
|
-
if (status === 'error' || !source) return
|
|
89
|
-
|
|
90
|
-
props.onLoad?.(event)
|
|
91
|
-
setLoaded({ status: 'loaded', url: source })
|
|
92
|
-
}}
|
|
93
|
-
ref={(node) => {
|
|
94
|
-
if (typeof ref === 'function') ref(node)
|
|
95
|
-
else if (ref) ref.current = node
|
|
96
|
-
|
|
97
|
-
// A cached image can finish before hydration attaches the load handlers.
|
|
98
|
-
if (source && node?.complete && loaded?.url !== source)
|
|
99
|
-
setLoaded({ status: node.naturalWidth > 0 ? 'loaded' : 'error', url: source })
|
|
100
|
-
}}
|
|
101
|
-
// A blank image hides the browser's broken-image glyph while loading a symbol or after a failure.
|
|
102
|
-
src={status === 'error' || !source ? blank : source}
|
|
103
|
-
/>
|
|
44
|
+
<BaseUi.Button {...attributes} {...styles.token({ className, style: props.style, vars })}>
|
|
45
|
+
{logo}
|
|
46
|
+
{symbol}
|
|
47
|
+
<ChevronDown />
|
|
48
|
+
</BaseUi.Button>
|
|
104
49
|
)
|
|
105
50
|
}
|
|
106
51
|
|
|
107
52
|
export namespace Token {
|
|
108
|
-
export type Props =
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
| {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
export type Options = { chainId: number; symbol: string }
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/** Builds the icon URL for a token. Defaults to the Tempo token list service. */
|
|
136
|
-
export type ResolveSrc = (options: ResolveSrc.Options) => string
|
|
137
|
-
|
|
138
|
-
export namespace ResolveSrc {
|
|
139
|
-
export type Options = { address: string; chainId: number; symbol?: string | undefined }
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Sets the default `chainId` and icon sources for nested tokens. Tokens under one provider share
|
|
144
|
-
* a single lookup per symbol.
|
|
145
|
-
*/
|
|
146
|
-
export function Provider(props: Provider.Props) {
|
|
147
|
-
const [addresses] = useState(() => new Map<string, Promise<string | undefined>>())
|
|
148
|
-
|
|
149
|
-
return (
|
|
150
|
-
<TokenContext
|
|
151
|
-
value={{
|
|
152
|
-
addresses,
|
|
153
|
-
chainId: props.chainId ?? defaultChainId,
|
|
154
|
-
resolveAddress: props.resolveAddress ?? asset,
|
|
155
|
-
resolveSrc: props.resolveSrc ?? url,
|
|
156
|
-
}}
|
|
157
|
-
>
|
|
158
|
-
{props.children}
|
|
159
|
-
</TokenContext>
|
|
53
|
+
export type Props = zyzz.Props.Variants<typeof styles.token> & {
|
|
54
|
+
/** Token contract address, which loads the logo directly. Without it, `symbol` resolves the logo. */
|
|
55
|
+
address?: string | undefined
|
|
56
|
+
/**
|
|
57
|
+
* Chain to resolve the logo on. Falls back to the nearest `TokenLogo.Provider`, then Tempo mainnet.
|
|
58
|
+
* @default 4217
|
|
59
|
+
*/
|
|
60
|
+
chainId?: number | undefined
|
|
61
|
+
/** Logo URL, which skips resolution. */
|
|
62
|
+
src?: string | undefined
|
|
63
|
+
/** Token symbol, such as `pathUSD`, shown as the label. */
|
|
64
|
+
symbol: string
|
|
65
|
+
} & (
|
|
66
|
+
| (Omit<ComponentPropsWithRef<'button'>, 'children'> & {
|
|
67
|
+
/**
|
|
68
|
+
* Renders a read-only `span` without the chevron, for reviews and receipts.
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
readOnly?: false | undefined
|
|
72
|
+
})
|
|
73
|
+
| (Omit<ComponentPropsWithRef<'span'>, 'children'> & {
|
|
74
|
+
/** Renders a read-only `span` without the chevron, for reviews and receipts. */
|
|
75
|
+
readOnly: true
|
|
76
|
+
})
|
|
160
77
|
)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export namespace Provider {
|
|
164
|
-
export type Props = {
|
|
165
|
-
/**
|
|
166
|
-
* Chain for nested tokens without their own `chainId`.
|
|
167
|
-
* @default 4217
|
|
168
|
-
*/
|
|
169
|
-
chainId?: number | undefined
|
|
170
|
-
children?: ReactNode | undefined
|
|
171
|
-
resolveAddress?: ResolveAddress | undefined
|
|
172
|
-
resolveSrc?: ResolveSrc | undefined
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
78
|
}
|
|
176
79
|
|
|
177
80
|
namespace styles {
|
|
178
|
-
|
|
81
|
+
// Figma's Token pill: 36px tall, 8px leading and 12px trailing padding around a 20px logo.
|
|
82
|
+
export const token = style(
|
|
179
83
|
{
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
84
|
+
alignItems: 'center',
|
|
85
|
+
backgroundColor: 'background.elevated',
|
|
86
|
+
borderColor: 'line.primary',
|
|
87
|
+
borderRadius: 'full',
|
|
88
|
+
borderStyle: 'solid',
|
|
89
|
+
borderWidth: 'regular',
|
|
90
|
+
boxSizing: 'border-box',
|
|
91
|
+
color: 'content.primary',
|
|
92
|
+
columnGap: '8',
|
|
93
|
+
cornerShape: 'round',
|
|
94
|
+
display: 'inline-flex',
|
|
95
|
+
flexShrink: '0 !custom',
|
|
96
|
+
height: '36',
|
|
97
|
+
paddingBlock: '0',
|
|
98
|
+
paddingInlineEnd: '12',
|
|
99
|
+
paddingInlineStart: '8',
|
|
100
|
+
typography: 'body.b2Strong',
|
|
101
|
+
verticalAlign: 'middle',
|
|
102
|
+
whiteSpace: 'nowrap',
|
|
103
|
+
selectors: {
|
|
104
|
+
'& > svg': { color: 'content.tertiary', flexShrink: '0 !custom', fontSize: '16' },
|
|
105
|
+
'&:is(button)': {
|
|
106
|
+
cursor: 'pointer',
|
|
107
|
+
outlineColor: 'transparent !custom',
|
|
108
|
+
outlineOffset: '2',
|
|
109
|
+
outlineStyle: 'solid !custom',
|
|
110
|
+
outlineWidth: '2',
|
|
111
|
+
transitionDuration: '160',
|
|
112
|
+
transitionProperty: 'opacity, outline-color, scale',
|
|
113
|
+
transitionTimingFunction: 'snappy',
|
|
114
|
+
userSelect: 'none',
|
|
115
|
+
},
|
|
116
|
+
'&:is(button):active:not(:disabled)': { scale: 'press', transitionDuration: '100' },
|
|
117
|
+
'&:is(button):disabled': { cursor: 'default', opacity: 'disabled' },
|
|
118
|
+
'&:is(button):focus-visible': { outlineColor: 'border.focus' },
|
|
119
|
+
'&:is(button):hover:not(:disabled)': { opacity: 'hover' },
|
|
120
|
+
},
|
|
121
|
+
'@media (forced-colors: active)': {
|
|
122
|
+
outlineStyle: 'none !custom',
|
|
123
|
+
selectors: { '&:is(button):focus-visible': { outlineStyle: 'solid !custom' } },
|
|
188
124
|
},
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
medium: { height: '24', width: '24' },
|
|
194
|
-
small: { height: '16', width: '16' },
|
|
125
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
126
|
+
selectors: {
|
|
127
|
+
'&:is(button)': { transitionProperty: 'opacity, outline-color' },
|
|
128
|
+
'&:is(button):active:not(:disabled)': { scale: 'none !custom' },
|
|
195
129
|
},
|
|
196
130
|
},
|
|
197
131
|
},
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react'
|
|
2
|
+
import { createContext, use, useEffect, useState } from 'react'
|
|
3
|
+
import type * as zyzz from 'zyzz'
|
|
4
|
+
import { variants } from '../zyzz.config.js'
|
|
5
|
+
|
|
6
|
+
const blank = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='
|
|
7
|
+
const defaultChainId = 4217
|
|
8
|
+
const service = 'https://tokenlist.tempo.xyz'
|
|
9
|
+
|
|
10
|
+
const TokenContext = createContext<{
|
|
11
|
+
/** In-flight symbol lookups, shared by the tokens under one `TokenLogo.Provider`. */
|
|
12
|
+
addresses?: Map<string, Promise<string | undefined>> | undefined
|
|
13
|
+
chainId: number
|
|
14
|
+
resolveAddress: TokenLogo.ResolveAddress
|
|
15
|
+
resolveSrc: TokenLogo.ResolveSrc
|
|
16
|
+
}>({ chainId: defaultChainId, resolveAddress: asset, resolveSrc: url })
|
|
17
|
+
|
|
18
|
+
async function asset(options: TokenLogo.ResolveAddress.Options) {
|
|
19
|
+
const response = await fetch(`${service}/asset/${options.chainId}/${options.symbol}`)
|
|
20
|
+
if (!response.ok) return undefined
|
|
21
|
+
return ((await response.json()) as { address?: string | undefined }).address
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function url(options: TokenLogo.ResolveSrc.Options) {
|
|
25
|
+
return `${service}/icon/${options.chainId}/${options.address.toLowerCase()}`
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A token icon rendered as an `img`, found by contract `address` or by `symbol`. A symbol resolves
|
|
30
|
+
* to its address first, through the Tempo token list service unless `TokenLogo.Provider` overrides
|
|
31
|
+
* it. Pass `src` to skip resolution. A gray circle shows while loading and after a failure.
|
|
32
|
+
*
|
|
33
|
+
* - `alt` is empty unless set, which suits an icon beside the token name. Pass the name as `alt`
|
|
34
|
+
* when the icon stands alone.
|
|
35
|
+
* - Wrap lists in `TokenLogo.Provider` so tokens with the same symbol share one lookup.
|
|
36
|
+
* - Prefer `address` when you have it, since a symbol lookup adds a request before the image.
|
|
37
|
+
* - Use `small` (16px) inline beside an amount, `medium` (20px) in a `Token` pill, and `large`
|
|
38
|
+
* (32px) in list rows. Use `Token` for a token label or picker trigger.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* <TokenLogo symbol="pathUSD" />
|
|
42
|
+
* <TokenLogo address={address} alt="pathUSD" size="large" />
|
|
43
|
+
*
|
|
44
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/img | MDN img element}
|
|
45
|
+
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/non-text-content.html | WCAG 2.2 Non-text Content}
|
|
46
|
+
*/
|
|
47
|
+
export function TokenLogo(props: TokenLogo.Props) {
|
|
48
|
+
const { address, chainId, className, ref, size, src, symbol, vars, ...attributes } = props
|
|
49
|
+
const inherited = use(TokenContext)
|
|
50
|
+
const chain = chainId ?? inherited.chainId
|
|
51
|
+
const key = symbol && !src && !address ? `${chain}/${symbol.toLowerCase()}` : undefined
|
|
52
|
+
const [lookup, setLookup] = useState<{ address: string | undefined; key: string }>()
|
|
53
|
+
const resolved = address ?? (lookup?.key === key ? lookup?.address : undefined)
|
|
54
|
+
const source =
|
|
55
|
+
src ?? (resolved ? inherited.resolveSrc({ address: resolved, chainId: chain, symbol }) : '')
|
|
56
|
+
const [loaded, setLoaded] = useState<{ status: 'error' | 'loaded'; url: string } | undefined>()
|
|
57
|
+
const status = (() => {
|
|
58
|
+
if (source) return loaded?.url === source ? loaded.status : 'loading'
|
|
59
|
+
return key && lookup?.key !== key ? 'loading' : 'error'
|
|
60
|
+
})()
|
|
61
|
+
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (!key || !symbol) return
|
|
64
|
+
|
|
65
|
+
let active = true
|
|
66
|
+
const pending =
|
|
67
|
+
inherited.addresses?.get(key) ??
|
|
68
|
+
inherited.resolveAddress({ chainId: chain, symbol }).catch(() => undefined)
|
|
69
|
+
inherited.addresses?.set(key, pending)
|
|
70
|
+
|
|
71
|
+
pending.then((next) => {
|
|
72
|
+
// A failed or unknown lookup leaves the cache, so a token that mounts later requests it again.
|
|
73
|
+
if (next === undefined && inherited.addresses?.get(key) === pending)
|
|
74
|
+
inherited.addresses.delete(key)
|
|
75
|
+
|
|
76
|
+
if (active) setLookup({ address: next, key })
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
return () => {
|
|
80
|
+
active = false
|
|
81
|
+
}
|
|
82
|
+
// The lookup follows the chain and symbol, not the context object or the resolver, which a
|
|
83
|
+
// provider can recreate on every render. Otherwise each render requests a failed lookup again.
|
|
84
|
+
}, [chain, inherited.addresses, key, symbol])
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<img
|
|
88
|
+
alt=""
|
|
89
|
+
draggable={false}
|
|
90
|
+
{...attributes}
|
|
91
|
+
{...styles.token({ className, size, style: props.style, vars })}
|
|
92
|
+
data-status={status}
|
|
93
|
+
onError={(event) => {
|
|
94
|
+
props.onError?.(event)
|
|
95
|
+
if (source) setLoaded({ status: 'error', url: source })
|
|
96
|
+
}}
|
|
97
|
+
onLoad={(event) => {
|
|
98
|
+
if (status === 'error' || !source) return
|
|
99
|
+
|
|
100
|
+
props.onLoad?.(event)
|
|
101
|
+
setLoaded({ status: 'loaded', url: source })
|
|
102
|
+
}}
|
|
103
|
+
ref={(node) => {
|
|
104
|
+
if (typeof ref === 'function') ref(node)
|
|
105
|
+
else if (ref) ref.current = node
|
|
106
|
+
|
|
107
|
+
// A cached image can finish before hydration attaches the load handlers.
|
|
108
|
+
if (source && node?.complete && loaded?.url !== source)
|
|
109
|
+
setLoaded({ status: node.naturalWidth > 0 ? 'loaded' : 'error', url: source })
|
|
110
|
+
}}
|
|
111
|
+
// A blank image hides the browser's broken-image glyph while loading a symbol or after a failure.
|
|
112
|
+
src={status === 'error' || !source ? blank : source}
|
|
113
|
+
/>
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export namespace TokenLogo {
|
|
118
|
+
export type Props = Omit<ComponentPropsWithRef<'img'>, 'height' | 'width'> &
|
|
119
|
+
zyzz.Props.Variants<typeof styles.token> & {
|
|
120
|
+
/**
|
|
121
|
+
* Chain to resolve on. Falls back to the nearest `TokenLogo.Provider`, then Tempo mainnet.
|
|
122
|
+
* @default 4217
|
|
123
|
+
*/
|
|
124
|
+
chainId?: number | undefined
|
|
125
|
+
} & (
|
|
126
|
+
| {
|
|
127
|
+
/** Token contract address. */
|
|
128
|
+
address: string
|
|
129
|
+
symbol?: undefined
|
|
130
|
+
}
|
|
131
|
+
| {
|
|
132
|
+
address?: undefined
|
|
133
|
+
/** Token symbol, such as `pathUSD`. Matched case-insensitively. */
|
|
134
|
+
symbol: string
|
|
135
|
+
}
|
|
136
|
+
| {
|
|
137
|
+
address?: undefined
|
|
138
|
+
/** Icon URL, which skips the address and symbol lookups. */
|
|
139
|
+
src: string
|
|
140
|
+
symbol?: undefined
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
/** Finds the contract address for a symbol. Defaults to the Tempo token list service. */
|
|
145
|
+
export type ResolveAddress = (options: ResolveAddress.Options) => Promise<string | undefined>
|
|
146
|
+
|
|
147
|
+
export namespace ResolveAddress {
|
|
148
|
+
export type Options = { chainId: number; symbol: string }
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/** Builds the icon URL for a token. Defaults to the Tempo token list service. */
|
|
152
|
+
export type ResolveSrc = (options: ResolveSrc.Options) => string
|
|
153
|
+
|
|
154
|
+
export namespace ResolveSrc {
|
|
155
|
+
export type Options = { address: string; chainId: number; symbol?: string | undefined }
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Sets the default `chainId` and icon sources for nested tokens. Tokens under one provider share
|
|
160
|
+
* a single lookup per symbol.
|
|
161
|
+
*/
|
|
162
|
+
export function Provider(props: Provider.Props) {
|
|
163
|
+
const [addresses] = useState(() => new Map<string, Promise<string | undefined>>())
|
|
164
|
+
|
|
165
|
+
return (
|
|
166
|
+
<TokenContext
|
|
167
|
+
value={{
|
|
168
|
+
addresses,
|
|
169
|
+
chainId: props.chainId ?? defaultChainId,
|
|
170
|
+
resolveAddress: props.resolveAddress ?? asset,
|
|
171
|
+
resolveSrc: props.resolveSrc ?? url,
|
|
172
|
+
}}
|
|
173
|
+
>
|
|
174
|
+
{props.children}
|
|
175
|
+
</TokenContext>
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export namespace Provider {
|
|
180
|
+
export type Props = {
|
|
181
|
+
/**
|
|
182
|
+
* Chain for nested tokens without their own `chainId`.
|
|
183
|
+
* @default 4217
|
|
184
|
+
*/
|
|
185
|
+
chainId?: number | undefined
|
|
186
|
+
children?: ReactNode | undefined
|
|
187
|
+
resolveAddress?: ResolveAddress | undefined
|
|
188
|
+
resolveSrc?: ResolveSrc | undefined
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
namespace styles {
|
|
194
|
+
export const token = variants(
|
|
195
|
+
{
|
|
196
|
+
base: {
|
|
197
|
+
backgroundColor: 'container.strong',
|
|
198
|
+
borderRadius: 'full',
|
|
199
|
+
cornerShape: 'round',
|
|
200
|
+
display: 'inline-block',
|
|
201
|
+
flexShrink: '0 !custom',
|
|
202
|
+
objectFit: 'cover',
|
|
203
|
+
verticalAlign: 'middle',
|
|
204
|
+
selectors: { '&[data-status="loaded"]': { backgroundColor: 'transparent !custom' } },
|
|
205
|
+
},
|
|
206
|
+
defaultVariants: { size: 'medium' },
|
|
207
|
+
variants: {
|
|
208
|
+
size: {
|
|
209
|
+
large: { height: '32', width: '32' },
|
|
210
|
+
medium: { height: '20', width: '20' },
|
|
211
|
+
small: { height: '16', width: '16' },
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
{ id: 'tds/web/token-logo' },
|
|
216
|
+
)
|
|
217
|
+
}
|