@tempoxyz/ds 0.2.5 → 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/Inter-cyrillic-ext.woff2 +0 -0
- package/dist/fonts/Inter-cyrillic.woff2 +0 -0
- package/dist/fonts/Inter-greek-ext.woff2 +0 -0
- package/dist/fonts/Inter-greek.woff2 +0 -0
- package/dist/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/fonts/Inter-latin.woff2 +0 -0
- package/dist/fonts/Inter-symbols.woff2 +0 -0
- package/dist/fonts/Inter-vietnamese.woff2 +0 -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/mobile/Haptics.d.ts +39 -0
- package/dist/mobile/Haptics.d.ts.map +1 -0
- package/dist/mobile/Haptics.js +51 -0
- package/dist/mobile/Haptics.js.map +1 -0
- package/dist/mobile/components/Button.d.ts.map +1 -1
- package/dist/mobile/components/Button.js +3 -3
- package/dist/mobile/components/Button.js.map +1 -1
- package/dist/mobile/components/IconButton.d.ts.map +1 -1
- package/dist/mobile/components/IconButton.js +3 -3
- package/dist/mobile/components/IconButton.js.map +1 -1
- package/dist/mobile/components/Spinner.js +1 -1
- package/dist/mobile/components/Spinner.js.map +1 -1
- package/dist/mobile/components/TextButton.d.ts.map +1 -1
- package/dist/mobile/components/TextButton.js +3 -3
- package/dist/mobile/components/TextButton.js.map +1 -1
- package/dist/mobile/components/TextInput.js +1 -1
- package/dist/mobile/components/TextInput.js.map +1 -1
- package/dist/mobile/components/Toast.js +1 -1
- package/dist/mobile/components/Toast.js.map +1 -1
- package/dist/mobile/components/Toggle.d.ts.map +1 -1
- package/dist/mobile/components/Toggle.js +2 -2
- package/dist/mobile/components/Toggle.js.map +1 -1
- package/dist/mobile/index.d.ts +2 -0
- package/dist/mobile/index.d.ts.map +1 -1
- package/dist/mobile/index.js +2 -0
- package/dist/mobile/index.js.map +1 -1
- package/dist/mobile/useColor.d.ts +23 -0
- package/dist/mobile/useColor.d.ts.map +1 -0
- package/dist/mobile/useColor.js +29 -0
- package/dist/mobile/useColor.js.map +1 -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 +8 -8
- 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 +3 -3
- 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 +32 -38
- 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 +33 -21
- 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 -34
- 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 +6 -6
- 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 +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 +14 -10
- 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 +8 -8
- 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 +9 -6
- package/dist/web/components/Checkbox.js.map +1 -1
- package/dist/web/components/Checkbox.js.zyzz.json +1 -1
- package/dist/web/components/CheckboxGroup.css +1 -1
- package/dist/web/components/CheckboxGroup.js +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 +33 -9
- 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 +11 -11
- 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.css +1 -1
- package/dist/web/components/Container.js +1 -3
- package/dist/web/components/Container.js.zyzz.json +1 -1
- package/dist/web/components/CopyButton.css +1 -1
- package/dist/web/components/CopyButton.js +4 -4
- 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 +8 -8
- 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 +94 -27
- 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 +13 -7
- 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 +7 -5
- 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 +12 -15
- 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 +9 -11
- 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 +6 -6
- package/dist/web/components/Gauge.js.map +1 -1
- package/dist/web/components/Gauge.js.zyzz.json +1 -1
- package/dist/web/components/Grid.css +1 -1
- package/dist/web/components/Grid.js +1 -3
- 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 +10 -10
- package/dist/web/components/Hex.js +6 -6
- 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 -0
- package/dist/web/components/Identicon.d.ts.map +1 -1
- package/dist/web/components/Identicon.js +1 -3
- package/dist/web/components/Identicon.js.map +1 -1
- package/dist/web/components/Identicon.js.zyzz.json +1 -1
- package/dist/web/components/Inline.css +1 -1
- package/dist/web/components/Inline.js +1 -3
- package/dist/web/components/Inline.js.zyzz.json +1 -1
- package/dist/web/components/Inset.css +1 -1
- package/dist/web/components/Inset.js +1 -3
- 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 +3 -3
- 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 +3 -3
- 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 +15 -10
- 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 +8 -8
- 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 +13 -10
- 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 +6 -6
- 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 +5 -5
- 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 +6 -6
- 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 +1 -3
- 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 +4 -4
- 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 +4 -4
- 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 +91 -19
- 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 -3
- 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 +6 -6
- 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 +48 -11
- 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 +13 -8
- 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.css +1 -1
- package/dist/web/components/Stack.js +1 -3
- 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 +7 -6
- 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 +19 -14
- 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 +14 -16
- 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 +91 -25
- 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 +44 -15
- 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 -14
- 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 +10 -10
- 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 +26 -90
- 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 +2 -2
- 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 +9 -8
- 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 -8
- 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 +13 -13
- 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 -699
- 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 +2935 -3480
- package/dist/web/zyzz.config.d.ts.map +1 -1
- package/dist/web/zyzz.config.js +39 -3
- package/dist/web/zyzz.config.js.map +1 -1
- package/dist/web/zyzz.config.js.zyzz.json +1 -1
- package/package.json +180 -4
- package/src/fonts/Inter-cyrillic-ext.woff2 +0 -0
- package/src/fonts/Inter-cyrillic.woff2 +0 -0
- package/src/fonts/Inter-greek-ext.woff2 +0 -0
- package/src/fonts/Inter-greek.woff2 +0 -0
- package/src/fonts/Inter-latin-ext.woff2 +0 -0
- package/src/fonts/Inter-latin.woff2 +0 -0
- package/src/fonts/Inter-symbols.woff2 +0 -0
- package/src/fonts/Inter-vietnamese.woff2 +0 -0
- 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 +22 -1
- package/src/mobile/Haptics.ts +55 -0
- package/src/mobile/README.md +97 -1
- package/src/mobile/components/Button.tsx +3 -3
- package/src/mobile/components/IconButton.tsx +3 -3
- package/src/mobile/components/Spinner.tsx +1 -1
- package/src/mobile/components/TextButton.tsx +3 -3
- package/src/mobile/components/TextInput.tsx +1 -1
- package/src/mobile/components/Toast.tsx +1 -1
- package/src/mobile/components/Toggle.tsx +2 -2
- package/src/mobile/index.ts +2 -0
- package/src/mobile/useColor.ts +31 -0
- 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 +11 -11
- package/src/web/components/IconTile.tsx +57 -0
- package/src/web/components/Identicon.tsx +6 -1
- 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 +481 -526
- package/src/web/zyzz.config.ts +326 -12
- package/dist/fonts/GeistMono-Variable.woff2 +0 -0
- package/dist/mobile/internal/useColor.d.ts +0 -4
- package/dist/mobile/internal/useColor.d.ts.map +0 -1
- package/dist/mobile/internal/useColor.js +0 -12
- package/dist/mobile/internal/useColor.js.map +0 -1
- 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 -29
- 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 -432
- package/dist/web/components/Rows.d.ts.map +0 -1
- package/dist/web/components/Rows.js +0 -160
- 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/mobile/internal/useColor.ts +0 -13
- package/src/web/components/Callout.tsx +0 -241
- package/src/web/components/IconChip.tsx +0 -54
- package/src/web/components/Rows.tsx +0 -529
- package/src/web/components/Tag.tsx +0 -149
- package/src/web/components/internal/FieldVariant.ts +0 -6
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useState } from 'react'
|
|
2
2
|
import { TextMorph } from 'torph/react'
|
|
3
|
-
import type * as zyzz from 'zyzz'
|
|
4
3
|
import { style } from '../zyzz.config.js'
|
|
5
|
-
import {
|
|
4
|
+
import { TextInput } from './TextInput.js'
|
|
6
5
|
import * as AmountContext from './internal/AmountContext.js'
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
10
|
-
* separators, and input that is not a non-negative decimal is rejected.
|
|
8
|
+
* The amount card: a filled surface with heading-size digits. The value is a raw string with a dot
|
|
9
|
+
* separator and no grouping separators, and input that is not a non-negative decimal is rejected.
|
|
11
10
|
*
|
|
12
11
|
* The text around a comma decides whether it groups thousands or separates decimals:
|
|
13
12
|
*
|
|
@@ -25,17 +24,20 @@ import * as AmountContext from './internal/AmountContext.js'
|
|
|
25
24
|
* `Control` is a text input with `inputMode="decimal"`, so mobile keyboards show digits without
|
|
26
25
|
* the scroll and spinner behavior of `type="number"`.
|
|
27
26
|
*
|
|
28
|
-
* -
|
|
29
|
-
*
|
|
30
|
-
* -
|
|
31
|
-
* -
|
|
27
|
+
* - Inside a `Field.Root`, put the `Field.Label` and `Field.Description` in the root. They take
|
|
28
|
+
* their own rows above and below the amount.
|
|
29
|
+
* - Name the token beside the digits with a `Token`, which opens a token picker.
|
|
30
|
+
* - Explain an invalid amount with text, such as `Field.Error`, not only the red fill.
|
|
32
31
|
*
|
|
33
32
|
* @example
|
|
34
|
-
* <
|
|
35
|
-
* <AmountInput.
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
33
|
+
* <Field.Root>
|
|
34
|
+
* <AmountInput.Root onValueChange={setValue} value={value}>
|
|
35
|
+
* <Field.Label>You send</Field.Label>
|
|
36
|
+
* <AmountInput.Control placeholder="0.00" />
|
|
37
|
+
* <Token symbol="pathUSD" />
|
|
38
|
+
* <Field.Description>Balance 2,480.32</Field.Description>
|
|
39
|
+
* </AmountInput.Root>
|
|
40
|
+
* </Field.Root>
|
|
39
41
|
*
|
|
40
42
|
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/text | MDN input type text}
|
|
41
43
|
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inputmode | MDN inputmode attribute}
|
|
@@ -45,12 +47,12 @@ import * as AmountContext from './internal/AmountContext.js'
|
|
|
45
47
|
*/
|
|
46
48
|
export namespace AmountInput {
|
|
47
49
|
/**
|
|
48
|
-
* Owns the amount and renders
|
|
49
|
-
*
|
|
50
|
-
*
|
|
50
|
+
* Owns the amount and renders the card as a `TextInput.Group`, so `invalid` applies here. Pass
|
|
51
|
+
* `value` and `onValueChange` to control it. A rejected keystroke leaves the value unchanged and
|
|
52
|
+
* does not call `onValueChange`.
|
|
51
53
|
*/
|
|
52
54
|
export function Root(props: Root.Props) {
|
|
53
|
-
const { defaultValue = '', onValueChange, value: controlled, ...attributes } = props
|
|
55
|
+
const { className, defaultValue = '', onValueChange, value: controlled, ...attributes } = props
|
|
54
56
|
const [uncontrolled, setUncontrolled] = useState(defaultValue)
|
|
55
57
|
const value = controlled ?? uncontrolled
|
|
56
58
|
|
|
@@ -64,13 +66,16 @@ export namespace AmountInput {
|
|
|
64
66
|
},
|
|
65
67
|
}}
|
|
66
68
|
>
|
|
67
|
-
<
|
|
69
|
+
<TextInput.Group {...attributes} {...styles.root({ className, style: props.style })} />
|
|
68
70
|
</AmountContext.Context.Provider>
|
|
69
71
|
)
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
export namespace Root {
|
|
73
|
-
export type Props = Omit<
|
|
75
|
+
export type Props = Omit<
|
|
76
|
+
TextInput.Group.Props,
|
|
77
|
+
'defaultValue' | 'onChange' | 'success' | 'variant'
|
|
78
|
+
> & {
|
|
74
79
|
/** @default '' */
|
|
75
80
|
defaultValue?: string | undefined
|
|
76
81
|
onValueChange?: ((value: string) => void) | undefined
|
|
@@ -82,14 +87,14 @@ export namespace AmountInput {
|
|
|
82
87
|
export function Control(props: Control.Props) {
|
|
83
88
|
const amount = AmountContext.use()
|
|
84
89
|
const [typed, setTyped] = useState<{ caret: number | null; text: string; value: string }>()
|
|
85
|
-
// Typed edits morph at the caret.
|
|
90
|
+
// Typed edits morph at the caret. Values the app sets roll digits by place value.
|
|
86
91
|
const edit = typed?.value === amount.value ? typed : undefined
|
|
87
92
|
const caret = edit?.caret ?? undefined
|
|
88
93
|
const text = edit?.text ?? amount.value
|
|
89
94
|
|
|
90
95
|
return (
|
|
91
96
|
<span {...styles.control()}>
|
|
92
|
-
<
|
|
97
|
+
<TextInput.Control
|
|
93
98
|
autoComplete="off"
|
|
94
99
|
inputMode="decimal"
|
|
95
100
|
{...props}
|
|
@@ -116,39 +121,10 @@ export namespace AmountInput {
|
|
|
116
121
|
|
|
117
122
|
export namespace Control {
|
|
118
123
|
export type Props = Omit<
|
|
119
|
-
|
|
124
|
+
TextInput.Control.Props,
|
|
120
125
|
'defaultValue' | 'onChange' | 'onValueChange' | 'type' | 'value'
|
|
121
126
|
>
|
|
122
127
|
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Shortcut for the largest allowed amount. Hidden while the field is invalid. It renders a
|
|
126
|
-
* `type="button"` labelled "Max" by default and does not change the value itself, so set the
|
|
127
|
-
* amount from `onClick`.
|
|
128
|
-
*/
|
|
129
|
-
export function Max(props: Max.Props) {
|
|
130
|
-
const { children, className, vars, ...attributes } = props
|
|
131
|
-
|
|
132
|
-
return (
|
|
133
|
-
<button
|
|
134
|
-
type="button"
|
|
135
|
-
{...attributes}
|
|
136
|
-
{...styles.max({ className, style: props.style, vars })}
|
|
137
|
-
>
|
|
138
|
-
{children ?? 'Max'}
|
|
139
|
-
</button>
|
|
140
|
-
)
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export namespace Max {
|
|
144
|
-
export type Props = ComponentPropsWithRef<'button'> & zyzz.Props.Variants<typeof styles.max>
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/** Leading adornment, such as a currency symbol. Same component as `Input.Prefix`. */
|
|
148
|
-
export const Prefix = Input.Prefix
|
|
149
|
-
|
|
150
|
-
/** Trailing adornment, such as a token code. Same component as `Input.Suffix`. */
|
|
151
|
-
export const Suffix = Input.Suffix
|
|
152
128
|
}
|
|
153
129
|
|
|
154
130
|
/** Returns the raw decimal for typed text, or `undefined` when it is not a non-negative decimal. */
|
|
@@ -181,108 +157,57 @@ namespace styles {
|
|
|
181
157
|
{ id: 'tds/web/amount-input/control' },
|
|
182
158
|
)
|
|
183
159
|
|
|
160
|
+
// The placeholder takes the subtle color, lighter than the tertiary placeholder of a text field.
|
|
184
161
|
export const input = style(
|
|
185
162
|
{
|
|
186
163
|
gridArea: '1 / 1 !custom',
|
|
187
164
|
WebkitTextFillColor: 'transparent !custom',
|
|
188
165
|
width: '100% !custom',
|
|
189
|
-
selectors: { '&::placeholder': { WebkitTextFillColor: 'currentColor !custom' } },
|
|
190
|
-
},
|
|
191
|
-
{ id: 'tds/web/amount-input/input' },
|
|
192
|
-
)
|
|
193
|
-
|
|
194
|
-
export const max = style(
|
|
195
|
-
{
|
|
196
|
-
backgroundColor: 'grayAlpha.200',
|
|
197
|
-
border: 'none !custom',
|
|
198
|
-
color: 'foreground',
|
|
199
|
-
cursor: 'pointer',
|
|
200
|
-
flexShrink: '0 !custom',
|
|
201
|
-
outlineColor: 'transparent !custom',
|
|
202
|
-
outlineOffset: '0',
|
|
203
|
-
outlineStyle: 'solid !custom',
|
|
204
|
-
outlineWidth: '2',
|
|
205
|
-
position: 'relative',
|
|
206
|
-
transitionDuration: '160',
|
|
207
|
-
transitionProperty: 'background-color, outline-color, outline-offset, scale',
|
|
208
|
-
transitionTimingFunction: 'snappy',
|
|
209
166
|
selectors: {
|
|
210
|
-
|
|
211
|
-
'[data-size="large"] > &': {
|
|
212
|
-
borderRadius: '8',
|
|
213
|
-
height: '40',
|
|
214
|
-
marginInlineEnd: '-12',
|
|
215
|
-
paddingInline: '16',
|
|
216
|
-
typography: 'button.14',
|
|
217
|
-
},
|
|
218
|
-
'[data-size="medium"] > &': {
|
|
219
|
-
borderRadius: '6',
|
|
220
|
-
height: '28',
|
|
221
|
-
marginInlineEnd: '-10',
|
|
222
|
-
paddingInline: '12',
|
|
223
|
-
typography: 'button.12',
|
|
224
|
-
},
|
|
225
|
-
'[data-size="small"] > &': {
|
|
226
|
-
borderRadius: '4',
|
|
227
|
-
height: '24',
|
|
228
|
-
marginInlineEnd: '-8',
|
|
229
|
-
paddingInline: '8',
|
|
230
|
-
typography: 'button.12',
|
|
231
|
-
},
|
|
232
|
-
// A small stacked field takes the medium size, so Max takes the medium inset.
|
|
233
|
-
'[data-variant="stacked"] > [data-size="small"] > &': {
|
|
234
|
-
borderRadius: '6',
|
|
235
|
-
height: '28',
|
|
236
|
-
marginInlineEnd: '-10',
|
|
237
|
-
paddingInline: '12',
|
|
238
|
-
typography: 'button.12',
|
|
239
|
-
},
|
|
240
|
-
// A card group keeps its padding, so Max sits on the content edge.
|
|
241
|
-
'[data-variant="card"] > &': {
|
|
242
|
-
borderRadius: '8',
|
|
243
|
-
height: '32',
|
|
244
|
-
marginInlineEnd: '0',
|
|
245
|
-
paddingInline: '12',
|
|
246
|
-
typography: 'button.12',
|
|
247
|
-
},
|
|
248
|
-
'&::after': { content: '"" !custom', inset: '-4', position: 'absolute' },
|
|
249
|
-
'&:active': { scale: 'press' },
|
|
250
|
-
'&:focus-visible': { outlineColor: 'blue.700', outlineOffset: '2' },
|
|
251
|
-
'&:hover': { backgroundColor: 'grayAlpha.300' },
|
|
252
|
-
'[data-invalid] &': { display: 'none' },
|
|
253
|
-
},
|
|
254
|
-
'@media (prefers-reduced-motion: reduce)': {
|
|
255
|
-
transitionProperty: 'background-color, outline-color',
|
|
256
|
-
selectors: { '&:active': { scale: 'none !custom' } },
|
|
167
|
+
'&::placeholder': { color: 'content.subtle', WebkitTextFillColor: 'currentColor !custom' },
|
|
257
168
|
},
|
|
258
169
|
},
|
|
259
|
-
{ id: 'tds/web/amount-input/
|
|
170
|
+
{ id: 'tds/web/amount-input/input' },
|
|
260
171
|
)
|
|
261
172
|
|
|
262
|
-
//
|
|
173
|
+
// Inherits the root's type, as `TextInput.Control` does, so the morphing text covers the input text.
|
|
263
174
|
export const morph = style(
|
|
264
175
|
{
|
|
265
|
-
color: '
|
|
176
|
+
color: 'content.primary',
|
|
266
177
|
font: 'inherit !custom',
|
|
267
178
|
gridArea: '1 / 1 !custom',
|
|
268
179
|
overflow: 'hidden',
|
|
269
180
|
pointerEvents: 'none !custom',
|
|
270
181
|
whiteSpace: 'pre',
|
|
182
|
+
selectors: { ':has(> input:disabled) > &': { color: 'content.subtle' } },
|
|
183
|
+
},
|
|
184
|
+
{ id: 'tds/web/amount-input/morph' },
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Overrides the 48px field of `TextInput.Group`, whose rules load first. It wraps onto rows, so a
|
|
189
|
+
* `Field.Label` and `Field.Description` inside take their own lines.
|
|
190
|
+
*/
|
|
191
|
+
export const root = style(
|
|
192
|
+
{
|
|
193
|
+
borderRadius: 'sm',
|
|
194
|
+
flexWrap: 'wrap',
|
|
195
|
+
height: 'auto !custom',
|
|
196
|
+
paddingBlock: '16',
|
|
197
|
+
paddingInline: '20',
|
|
198
|
+
rowGap: '8',
|
|
199
|
+
typography: 'heading.h1',
|
|
271
200
|
selectors: {
|
|
272
|
-
'
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
typography: 'heading.20',
|
|
201
|
+
'& > label': {
|
|
202
|
+
color: 'content.secondary',
|
|
203
|
+
flexBasis: '100% !custom',
|
|
204
|
+
typography: 'body.b3',
|
|
277
205
|
},
|
|
278
|
-
'[data-
|
|
279
|
-
|
|
280
|
-
},
|
|
281
|
-
// The value sits below the floating label, which needs more room in a large field.
|
|
282
|
-
'[data-variant="stacked"] &': { paddingTop: '12' },
|
|
283
|
-
'[data-variant="stacked"] [data-size="large"] &': { paddingTop: '16' },
|
|
206
|
+
'& > :is(p, [data-field-error])': { flexBasis: '100% !custom' },
|
|
207
|
+
// A `Field.Description`, such as the balance, takes the tertiary color.
|
|
208
|
+
'& > p': { color: 'content.tertiary' },
|
|
284
209
|
},
|
|
285
210
|
},
|
|
286
|
-
{ id: 'tds/web/amount-input
|
|
211
|
+
{ id: 'tds/web/amount-input' },
|
|
287
212
|
)
|
|
288
213
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from 'react'
|
|
9
9
|
import type * as zyzz from 'zyzz'
|
|
10
10
|
import { keyframes } from 'zyzz/web'
|
|
11
|
-
import { style, variants } from '../zyzz.config.js'
|
|
11
|
+
import { style, variants, vars } from '../zyzz.config.js'
|
|
12
12
|
|
|
13
13
|
type Context = {
|
|
14
14
|
container: HTMLDivElement | null
|
|
@@ -42,7 +42,8 @@ function useShell() {
|
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Application frame with a sticky sidebar beside a content column. `align="center"` centers both
|
|
45
|
-
* on wide viewports,
|
|
45
|
+
* on wide viewports, with the sidebar fill to the start edge and the header bar to the end edge.
|
|
46
|
+
* `align="start"` pins the sidebar left with content filling the rest.
|
|
46
47
|
* Below 1024px the sidebar moves into a drawer that `AppShell.Trigger` opens from the right edge.
|
|
47
48
|
*
|
|
48
49
|
* - Name the `Sidebar` with `aria-label`. It labels the `aside` on wide viewports and the drawer
|
|
@@ -69,11 +70,23 @@ function useShell() {
|
|
|
69
70
|
* @see {@link https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html | WCAG 2.2 Focus Order}
|
|
70
71
|
*/
|
|
71
72
|
export namespace AppShell {
|
|
72
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Renders the 56px page header bar at the top of `Main`, in the fill of the sidebar with a bottom
|
|
75
|
+
* border, holding the title, actions and the compact-viewport `Trigger`. It spans the full width
|
|
76
|
+
* of `Main`. With `align="center"` on wide viewports, its fill and border continue to the end
|
|
77
|
+
* edge. A `Main` that scrolls itself clips them at its own edge, so scroll the root instead when
|
|
78
|
+
* the shell fills a fixed-height region.
|
|
79
|
+
*/
|
|
73
80
|
export function Header(props: Header.Props) {
|
|
74
81
|
const { className, vars, ...attributes } = props
|
|
75
82
|
|
|
76
|
-
return
|
|
83
|
+
return (
|
|
84
|
+
<header
|
|
85
|
+
{...attributes}
|
|
86
|
+
{...styles.header({ className, style: props.style, vars })}
|
|
87
|
+
data-app-shell-header=""
|
|
88
|
+
/>
|
|
89
|
+
)
|
|
77
90
|
}
|
|
78
91
|
|
|
79
92
|
export namespace Header {
|
|
@@ -156,7 +169,7 @@ export namespace AppShell {
|
|
|
156
169
|
}
|
|
157
170
|
|
|
158
171
|
/**
|
|
159
|
-
* Renders a sticky `aside` from 1024px, `var(--sidebar-width,
|
|
172
|
+
* Renders a sticky `aside` from 1024px, `var(--sidebar-width, 16rem)` wide. Below that it
|
|
160
173
|
* renders a modal Base UI drawer popup as an `aside` with the dialog role, which takes focus on
|
|
161
174
|
* open, returns it to the trigger on close, and dismisses with Escape, the backdrop or a swipe
|
|
162
175
|
* right. Server rendering always emits the wide layout.
|
|
@@ -206,6 +219,7 @@ export namespace AppShell {
|
|
|
206
219
|
zyzz.Props.Variants<typeof styles.sidebarBody>
|
|
207
220
|
}
|
|
208
221
|
|
|
222
|
+
/** The bottom of the sidebar, such as the account menu. It stays at the bottom edge. */
|
|
209
223
|
export function SidebarFooter(props: SidebarFooter.Props) {
|
|
210
224
|
const { className, vars, ...attributes } = props
|
|
211
225
|
|
|
@@ -219,6 +233,7 @@ export namespace AppShell {
|
|
|
219
233
|
zyzz.Props.Variants<typeof styles.sidebarFooter>
|
|
220
234
|
}
|
|
221
235
|
|
|
236
|
+
/** The top of the sidebar, such as the product or project switcher. */
|
|
222
237
|
export function SidebarHeader(props: SidebarHeader.Props) {
|
|
223
238
|
const { className, vars, ...attributes } = props
|
|
224
239
|
|
|
@@ -290,7 +305,7 @@ const fadeOut = keyframes(
|
|
|
290
305
|
namespace styles {
|
|
291
306
|
export const backdrop = style(
|
|
292
307
|
{
|
|
293
|
-
backgroundColor: '
|
|
308
|
+
backgroundColor: 'neutral.100',
|
|
294
309
|
inset: '0',
|
|
295
310
|
opacity: '0.6 !custom',
|
|
296
311
|
position: 'fixed',
|
|
@@ -310,6 +325,7 @@ namespace styles {
|
|
|
310
325
|
{
|
|
311
326
|
backgroundColor: 'currentColor !custom',
|
|
312
327
|
borderRadius: 'full',
|
|
328
|
+
cornerShape: 'round',
|
|
313
329
|
height: '2',
|
|
314
330
|
insetInlineStart: '0',
|
|
315
331
|
position: 'absolute',
|
|
@@ -341,7 +357,7 @@ namespace styles {
|
|
|
341
357
|
|
|
342
358
|
export const drawer = style(
|
|
343
359
|
{
|
|
344
|
-
borderInlineStartColor: '
|
|
360
|
+
borderInlineStartColor: 'line.secondary',
|
|
345
361
|
borderInlineStartStyle: 'solid',
|
|
346
362
|
borderInlineStartWidth: '1px !custom',
|
|
347
363
|
height: '100% !custom',
|
|
@@ -373,19 +389,30 @@ namespace styles {
|
|
|
373
389
|
{ id: 'tds/web/app-shell/drawer' },
|
|
374
390
|
)
|
|
375
391
|
|
|
392
|
+
// The bar bleeds into the padding of `Main`, so it spans the column and starts at its top edge.
|
|
393
|
+
// The header takes the fill of the sidebar, so the two frame the page.
|
|
376
394
|
export const header = variants(
|
|
377
395
|
{
|
|
378
396
|
base: {
|
|
379
397
|
alignItems: 'center',
|
|
398
|
+
backgroundColor: 'background.sidebar',
|
|
399
|
+
borderBottomColor: 'line.secondary',
|
|
400
|
+
borderBottomStyle: 'solid',
|
|
401
|
+
borderBottomWidth: '1px !custom',
|
|
402
|
+
boxSizing: 'border-box',
|
|
380
403
|
columnGap: '8',
|
|
381
404
|
display: 'flex',
|
|
382
405
|
justifyContent: 'space-between',
|
|
383
406
|
marginBottom: '24',
|
|
407
|
+
marginInline: '-16',
|
|
408
|
+
marginTop: '-20',
|
|
409
|
+
minHeight: '56',
|
|
384
410
|
minWidth: '0',
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
411
|
+
paddingInline: '16',
|
|
412
|
+
'@media (min-width: 640px)': { marginInline: '-2rem !custom', paddingInline: '24' },
|
|
413
|
+
// Below 1024px the fixed trigger covers the end of the bar, so header actions end 8px
|
|
414
|
+
// before it: its 40px plus its 16px inset.
|
|
415
|
+
'@media (max-width: 1023px)': { paddingInlineEnd: '64' },
|
|
389
416
|
},
|
|
390
417
|
},
|
|
391
418
|
{ id: 'tds/web/app-shell/header' },
|
|
@@ -413,14 +440,16 @@ namespace styles {
|
|
|
413
440
|
{
|
|
414
441
|
base: {
|
|
415
442
|
backgroundColor: 'background.primary',
|
|
416
|
-
color: '
|
|
443
|
+
color: 'content.primary',
|
|
417
444
|
display: 'flex',
|
|
418
445
|
minHeight: '100dvh !custom',
|
|
419
446
|
position: 'relative',
|
|
420
|
-
typography: '
|
|
447
|
+
typography: 'body.b2',
|
|
421
448
|
selectors: {
|
|
422
|
-
// Equal gutters center the sidebar and content column on wide viewports.
|
|
449
|
+
// Equal gutters center the sidebar and content column on wide viewports. The start
|
|
450
|
+
// gutter takes the fill of the sidebar, so the sidebar reaches the start edge.
|
|
423
451
|
'&::after, &::before': { content: '"" !custom', flex: '1 !custom' },
|
|
452
|
+
'&::before': { backgroundColor: 'background.sidebar' },
|
|
424
453
|
},
|
|
425
454
|
'@media (max-width: 1023px)': {
|
|
426
455
|
selectors: { '&::after, &::before': { display: 'none !custom' } },
|
|
@@ -429,7 +458,23 @@ namespace styles {
|
|
|
429
458
|
defaultVariants: { align: 'center' },
|
|
430
459
|
variants: {
|
|
431
460
|
align: {
|
|
432
|
-
|
|
461
|
+
// The header bar continues across the end gutter as the outset of a border image, which
|
|
462
|
+
// is ink overflow. It adds no scroll and changes no layout, and a scrolling `Main` clips
|
|
463
|
+
// it at its own edge. The image draws the fill and the 1px bottom border of the header.
|
|
464
|
+
// The outset takes the gutter from the viewport width, since the root of an application
|
|
465
|
+
// frame spans the viewport.
|
|
466
|
+
center: {
|
|
467
|
+
'@media (min-width: 1024px)': {
|
|
468
|
+
selectors: {
|
|
469
|
+
'& > main > [data-app-shell-header]': {
|
|
470
|
+
borderImageOutset: `0 max(0px, calc((100vw - var(--sidebar-width, 16rem) - ${vars.container['1024']}) / 2)) 0 0 !custom`,
|
|
471
|
+
borderImageSlice: '0 fill !custom',
|
|
472
|
+
borderImageSource: `linear-gradient(${vars.color.background.sidebar} calc(100% - 1px), ${vars.color.line.secondary} 0) !custom`,
|
|
473
|
+
borderImageWidth: '0 !custom',
|
|
474
|
+
},
|
|
475
|
+
},
|
|
476
|
+
},
|
|
477
|
+
},
|
|
433
478
|
start: {
|
|
434
479
|
selectors: {
|
|
435
480
|
'&::after, &::before': { display: 'none !custom' },
|
|
@@ -445,15 +490,15 @@ namespace styles {
|
|
|
445
490
|
export const sidebar = variants(
|
|
446
491
|
{
|
|
447
492
|
base: {
|
|
448
|
-
backgroundColor: 'background.
|
|
493
|
+
backgroundColor: 'background.sidebar',
|
|
449
494
|
boxSizing: 'border-box',
|
|
450
495
|
display: 'flex',
|
|
451
496
|
flexDirection: 'column',
|
|
452
497
|
flexShrink: '0 !custom',
|
|
453
498
|
minHeight: '0',
|
|
454
|
-
paddingBottom: '
|
|
455
|
-
paddingInline: '
|
|
456
|
-
rowGap: '
|
|
499
|
+
paddingBottom: '16',
|
|
500
|
+
paddingInline: '12',
|
|
501
|
+
rowGap: '16',
|
|
457
502
|
},
|
|
458
503
|
},
|
|
459
504
|
{ id: 'tds/web/app-shell/sidebar' },
|
|
@@ -463,14 +508,14 @@ namespace styles {
|
|
|
463
508
|
// server-rendered markup, which always emits the wide layout.
|
|
464
509
|
export const inline = style(
|
|
465
510
|
{
|
|
466
|
-
borderInlineEndColor: '
|
|
511
|
+
borderInlineEndColor: 'line.secondary',
|
|
467
512
|
borderInlineEndStyle: 'solid',
|
|
468
513
|
borderInlineEndWidth: '1px !custom',
|
|
469
514
|
height: '100dvh !custom',
|
|
470
515
|
insetBlockStart: '0',
|
|
471
516
|
overflowY: 'auto',
|
|
472
517
|
position: 'sticky',
|
|
473
|
-
width: 'var(--sidebar-width,
|
|
518
|
+
width: 'var(--sidebar-width, 16rem) !custom',
|
|
474
519
|
'@media (max-width: 1023px)': { display: 'none !custom' },
|
|
475
520
|
},
|
|
476
521
|
{ id: 'tds/web/app-shell/inline' },
|
|
@@ -479,20 +524,24 @@ namespace styles {
|
|
|
479
524
|
export const sidebarBody = variants(
|
|
480
525
|
{
|
|
481
526
|
base: {
|
|
527
|
+
// Custom string values only take literal CSS, so the thumb color reaches `scrollbarColor` through a property.
|
|
528
|
+
'--tds-sidebar-scrollbar-thumb': `${vars.color.line.primary}`,
|
|
482
529
|
flex: '1 !custom',
|
|
483
530
|
// Bleeding into the sidebar's inline padding puts the scrollbar at the sidebar edge.
|
|
484
|
-
marginInline: '-
|
|
531
|
+
marginInline: '-12',
|
|
485
532
|
minHeight: '0',
|
|
486
533
|
overflowY: 'auto',
|
|
487
534
|
overscrollBehavior: 'contain',
|
|
488
|
-
paddingInline: '
|
|
535
|
+
paddingInline: '12',
|
|
536
|
+
// A transparent track leaves only the thin thumb over the sidebar fill.
|
|
537
|
+
scrollbarColor: 'var(--tds-sidebar-scrollbar-thumb) transparent !custom',
|
|
489
538
|
// Classic scrollbars keep their own lane instead of covering content at the edge.
|
|
490
539
|
scrollbarGutter: 'stable',
|
|
491
540
|
scrollbarWidth: 'thin',
|
|
492
541
|
selectors: {
|
|
493
542
|
// Curtains fade content into the sidebar at whichever end has more to scroll.
|
|
494
543
|
'&::after, &::before': {
|
|
495
|
-
backgroundColor: 'background.
|
|
544
|
+
backgroundColor: 'background.sidebar',
|
|
496
545
|
content: '"" !custom',
|
|
497
546
|
display: 'block',
|
|
498
547
|
height: '24',
|
|
@@ -530,23 +579,32 @@ namespace styles {
|
|
|
530
579
|
{ id: 'tds/web/app-shell/sidebar-body' },
|
|
531
580
|
)
|
|
532
581
|
|
|
582
|
+
// The automatic top margin keeps the footer at the bottom edge when no `SidebarBody` grows.
|
|
533
583
|
export const sidebarFooter = variants(
|
|
534
|
-
{
|
|
584
|
+
{
|
|
585
|
+
base: {
|
|
586
|
+
display: 'flex',
|
|
587
|
+
flexDirection: 'column',
|
|
588
|
+
flexShrink: '0 !custom',
|
|
589
|
+
marginTop: 'auto !custom',
|
|
590
|
+
rowGap: '8',
|
|
591
|
+
},
|
|
592
|
+
},
|
|
535
593
|
{ id: 'tds/web/app-shell/sidebar-footer' },
|
|
536
594
|
)
|
|
537
595
|
|
|
538
596
|
export const sidebarHeader = variants(
|
|
539
|
-
{ base: { flexShrink: '0 !custom', paddingTop: '
|
|
597
|
+
{ base: { flexShrink: '0 !custom', paddingTop: '16' } },
|
|
540
598
|
{ id: 'tds/web/app-shell/sidebar-header' },
|
|
541
599
|
)
|
|
542
600
|
|
|
543
601
|
export const title = variants(
|
|
544
602
|
{
|
|
545
603
|
base: {
|
|
546
|
-
color: '
|
|
604
|
+
color: 'content.primary',
|
|
547
605
|
margin: '0',
|
|
548
606
|
minWidth: '0',
|
|
549
|
-
typography: 'heading.
|
|
607
|
+
typography: 'heading.h2',
|
|
550
608
|
},
|
|
551
609
|
},
|
|
552
610
|
{ id: 'tds/web/app-shell/title' },
|
|
@@ -556,18 +614,19 @@ namespace styles {
|
|
|
556
614
|
{
|
|
557
615
|
base: {
|
|
558
616
|
alignItems: 'center',
|
|
559
|
-
backgroundColor: 'background.
|
|
560
|
-
borderColor: '
|
|
617
|
+
backgroundColor: 'background.elevated',
|
|
618
|
+
borderColor: 'line.secondary',
|
|
561
619
|
borderRadius: 'full',
|
|
562
620
|
borderStyle: 'solid',
|
|
563
|
-
borderWidth: '
|
|
564
|
-
boxShadow: 'raised',
|
|
621
|
+
borderWidth: 'regular',
|
|
565
622
|
boxSizing: 'border-box',
|
|
566
|
-
color: '
|
|
623
|
+
color: 'content.primary',
|
|
624
|
+
cornerShape: 'round',
|
|
567
625
|
cursor: 'pointer',
|
|
568
626
|
display: 'inline-flex',
|
|
569
627
|
height: '40',
|
|
570
|
-
|
|
628
|
+
// Centers the button on the 56px header bar.
|
|
629
|
+
insetBlockStart: '8',
|
|
571
630
|
insetInlineEnd: '16',
|
|
572
631
|
justifyContent: 'center',
|
|
573
632
|
outlineColor: 'transparent !custom',
|
|
@@ -584,8 +643,8 @@ namespace styles {
|
|
|
584
643
|
zIndex: 'modal',
|
|
585
644
|
selectors: {
|
|
586
645
|
'&:active': { transform: 'scale(0.96) !custom' },
|
|
587
|
-
'&:focus-visible': { outlineColor: '
|
|
588
|
-
'&:hover': { backgroundColor: '
|
|
646
|
+
'&:focus-visible': { outlineColor: 'border.focus', outlineOffset: '2' },
|
|
647
|
+
'&:hover': { backgroundColor: 'container.regular' },
|
|
589
648
|
// While open, the button rides out with the drawer and rests 8px outside its left edge,
|
|
590
649
|
// so the close mark never covers the sidebar. The width matches the drawer's.
|
|
591
650
|
'&[data-popup-open]': {
|