@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
|
@@ -84,7 +84,10 @@ export namespace Drawer {
|
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
86
|
* Renders the portal, scrim, viewport and popup. `Drawer.Root` `swipeDirection` picks the edge.
|
|
87
|
-
*
|
|
87
|
+
* A `down` or `up` drawer spans the viewport width with 24px padding, and rounds the two corners
|
|
88
|
+
* away from its edge at radius `sm`. A `left` or `right` drawer is 440px wide and fills the
|
|
89
|
+
* viewport height, with 32px padding, and rounds the two corners away from its edge at radius
|
|
90
|
+
* `lg`. Corners on the viewport edge stay square. The popup scrolls when its content overflows. `ref`, `className` and `style` reach the popup.
|
|
88
91
|
*/
|
|
89
92
|
export function Popup(props: Popup.Props) {
|
|
90
93
|
const { children, className, closeButton = false, vars, ...attributes } = props
|
|
@@ -104,7 +107,7 @@ export namespace Drawer {
|
|
|
104
107
|
<BaseUi.Drawer.Close
|
|
105
108
|
aria-label="Close"
|
|
106
109
|
render={
|
|
107
|
-
<Button shape="icon" size="medium" variant="secondary" {...
|
|
110
|
+
<Button shape="icon" size="medium" variant="secondary" {...styles.close()} />
|
|
108
111
|
}
|
|
109
112
|
>
|
|
110
113
|
<CloseIcon />
|
|
@@ -121,7 +124,8 @@ export namespace Drawer {
|
|
|
121
124
|
zyzz.Props.Variants<typeof styles.popup> &
|
|
122
125
|
Pick<BaseUi.Drawer.Popup.Props, 'finalFocus' | 'initialFocus' | 'render'> & {
|
|
123
126
|
/**
|
|
124
|
-
* Renders a top-right X button, labelled "Close", that closes the drawer.
|
|
127
|
+
* Renders a top-right X button, labelled "Close", that closes the drawer. The
|
|
128
|
+
* `Drawer.Title` then starts 8px lower, so it centers on the button.
|
|
125
129
|
*
|
|
126
130
|
* @default false
|
|
127
131
|
*/
|
|
@@ -136,6 +140,7 @@ export namespace Drawer {
|
|
|
136
140
|
return (
|
|
137
141
|
<BaseUi.Drawer.Title
|
|
138
142
|
{...attributes}
|
|
143
|
+
data-drawer-title=""
|
|
139
144
|
{...dialog.title({ className, style: props.style, vars })}
|
|
140
145
|
/>
|
|
141
146
|
)
|
|
@@ -149,7 +154,7 @@ export namespace Drawer {
|
|
|
149
154
|
namespace styles {
|
|
150
155
|
export const backdrop = style(
|
|
151
156
|
{
|
|
152
|
-
backgroundColor: '
|
|
157
|
+
backgroundColor: 'neutral.100',
|
|
153
158
|
inset: '0',
|
|
154
159
|
opacity: 'calc(0.4 * (1 - var(--drawer-swipe-progress, 0))) !custom',
|
|
155
160
|
position: 'fixed',
|
|
@@ -169,17 +174,34 @@ namespace styles {
|
|
|
169
174
|
{ id: 'tds/web/drawer/backdrop' },
|
|
170
175
|
)
|
|
171
176
|
|
|
177
|
+
// The button sits in the padding corner of the popup, which the title keeps clear.
|
|
178
|
+
export const close = style(
|
|
179
|
+
{
|
|
180
|
+
insetBlockStart: '24',
|
|
181
|
+
insetInlineEnd: '24',
|
|
182
|
+
position: 'absolute',
|
|
183
|
+
selectors: {
|
|
184
|
+
'[data-swipe-direction="left"] > &, [data-swipe-direction="right"] > &': {
|
|
185
|
+
insetBlockStart: '32',
|
|
186
|
+
insetInlineEnd: '32',
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
{ id: 'tds/web/drawer/close' },
|
|
191
|
+
)
|
|
192
|
+
|
|
172
193
|
export const content = style(
|
|
173
194
|
{ boxSizing: 'border-box', marginInline: 'auto !custom', maxWidth: '512' },
|
|
174
195
|
{ id: 'tds/web/drawer/content' },
|
|
175
196
|
)
|
|
176
197
|
|
|
198
|
+
// The Wallet Modal shadow has no Platform equivalent, so it stays a literal, as in `Dialog`.
|
|
177
199
|
export const popup = style(
|
|
178
200
|
{
|
|
179
|
-
backgroundColor: 'background.
|
|
180
|
-
boxShadow: '
|
|
201
|
+
backgroundColor: 'background.elevated',
|
|
202
|
+
boxShadow: '0 1px 2px #0000000a, 0 16px 48px -12px #00000024 !custom',
|
|
181
203
|
boxSizing: 'border-box',
|
|
182
|
-
color: '
|
|
204
|
+
color: 'content.primary',
|
|
183
205
|
maxHeight: '100% !custom',
|
|
184
206
|
outline: 'none !custom',
|
|
185
207
|
overflowY: 'auto',
|
|
@@ -189,7 +211,7 @@ namespace styles {
|
|
|
189
211
|
transitionDuration: '320',
|
|
190
212
|
transitionProperty: 'opacity, transform',
|
|
191
213
|
transitionTimingFunction: 'spring',
|
|
192
|
-
typography: '
|
|
214
|
+
typography: 'body.b2',
|
|
193
215
|
willChange: 'transform',
|
|
194
216
|
selectors: {
|
|
195
217
|
'&[data-ending-style]': {
|
|
@@ -197,8 +219,8 @@ namespace styles {
|
|
|
197
219
|
},
|
|
198
220
|
'&[data-swipe-direction="down"]': {
|
|
199
221
|
alignSelf: 'end',
|
|
200
|
-
borderTopLeftRadius: '
|
|
201
|
-
borderTopRightRadius: '
|
|
222
|
+
borderTopLeftRadius: 'sm',
|
|
223
|
+
borderTopRightRadius: 'sm',
|
|
202
224
|
paddingBottom: 'calc(24px + env(safe-area-inset-bottom, 0px)) !custom',
|
|
203
225
|
transform: 'translateY(var(--drawer-swipe-movement-y, 0px)) !custom',
|
|
204
226
|
width: '100% !custom',
|
|
@@ -206,31 +228,33 @@ namespace styles {
|
|
|
206
228
|
'&[data-swipe-direction="down"][data-ending-style], &[data-swipe-direction="down"][data-starting-style]':
|
|
207
229
|
{ transform: 'translateY(100%) !custom' },
|
|
208
230
|
'&[data-swipe-direction="left"]': {
|
|
209
|
-
borderBottomRightRadius: '
|
|
210
|
-
borderTopRightRadius: '
|
|
231
|
+
borderBottomRightRadius: 'lg',
|
|
232
|
+
borderTopRightRadius: 'lg',
|
|
211
233
|
height: '100% !custom',
|
|
212
234
|
justifySelf: 'start',
|
|
213
235
|
maxWidth: 'calc(100vw - 3rem) !custom',
|
|
236
|
+
padding: '32',
|
|
214
237
|
transform: 'translateX(var(--drawer-swipe-movement-x, 0px)) !custom',
|
|
215
|
-
width: '
|
|
238
|
+
width: '27.5rem !custom',
|
|
216
239
|
},
|
|
217
240
|
'&[data-swipe-direction="left"][data-ending-style], &[data-swipe-direction="left"][data-starting-style]':
|
|
218
241
|
{ transform: 'translateX(-100%) !custom' },
|
|
219
242
|
'&[data-swipe-direction="right"]': {
|
|
220
|
-
borderBottomLeftRadius: '
|
|
221
|
-
borderTopLeftRadius: '
|
|
243
|
+
borderBottomLeftRadius: 'lg',
|
|
244
|
+
borderTopLeftRadius: 'lg',
|
|
222
245
|
height: '100% !custom',
|
|
223
246
|
justifySelf: 'end',
|
|
224
247
|
maxWidth: 'calc(100vw - 3rem) !custom',
|
|
248
|
+
padding: '32',
|
|
225
249
|
transform: 'translateX(var(--drawer-swipe-movement-x, 0px)) !custom',
|
|
226
|
-
width: '
|
|
250
|
+
width: '27.5rem !custom',
|
|
227
251
|
},
|
|
228
252
|
'&[data-swipe-direction="right"][data-ending-style], &[data-swipe-direction="right"][data-starting-style]':
|
|
229
253
|
{ transform: 'translateX(100%) !custom' },
|
|
230
254
|
'&[data-swipe-direction="up"]': {
|
|
231
255
|
alignSelf: 'start',
|
|
232
|
-
borderBottomLeftRadius: '
|
|
233
|
-
borderBottomRightRadius: '
|
|
256
|
+
borderBottomLeftRadius: 'sm',
|
|
257
|
+
borderBottomRightRadius: 'sm',
|
|
234
258
|
transform: 'translateY(var(--drawer-swipe-movement-y, 0px)) !custom',
|
|
235
259
|
width: '100% !custom',
|
|
236
260
|
},
|
|
@@ -238,6 +262,9 @@ namespace styles {
|
|
|
238
262
|
{ transform: 'translateY(-100%) !custom' },
|
|
239
263
|
// The popup follows the pointer without lag while swiping.
|
|
240
264
|
'&[data-swiping]': { transitionDuration: '0', userSelect: 'none' },
|
|
265
|
+
// The title keeps 16px clear of the 40px close button and centers on it, as in a dialog
|
|
266
|
+
// header.
|
|
267
|
+
'&[data-close-button] [data-drawer-title]': { paddingInlineEnd: '56', paddingTop: '8' },
|
|
241
268
|
},
|
|
242
269
|
'@media (prefers-reduced-motion: reduce)': {
|
|
243
270
|
transitionProperty: 'opacity',
|
|
@@ -9,6 +9,8 @@ import { style } from '../zyzz.config.js'
|
|
|
9
9
|
* - Explain why the area is empty and what to do next.
|
|
10
10
|
* - Offer one primary action that resolves the empty state.
|
|
11
11
|
* - `Empty.Title` renders an `h3`, so place the state under an `h2` section heading.
|
|
12
|
+
* - Use a `Spinner` instead of `Empty.Icon` while the region waits on another task, such as a
|
|
13
|
+
* checkout in another window. The icon or spinner sits 16px above the title.
|
|
12
14
|
*
|
|
13
15
|
* @example
|
|
14
16
|
* <Empty.Root>
|
|
@@ -102,10 +104,10 @@ namespace styles {
|
|
|
102
104
|
|
|
103
105
|
export const description = style(
|
|
104
106
|
{
|
|
105
|
-
color: '
|
|
107
|
+
color: 'content.secondary',
|
|
106
108
|
margin: '0',
|
|
107
|
-
maxWidth: '
|
|
108
|
-
typography: '
|
|
109
|
+
maxWidth: '360',
|
|
110
|
+
typography: 'body.b2',
|
|
109
111
|
},
|
|
110
112
|
{ id: 'tds/web/empty/description' },
|
|
111
113
|
)
|
|
@@ -113,14 +115,15 @@ namespace styles {
|
|
|
113
115
|
export const icon = style(
|
|
114
116
|
{
|
|
115
117
|
alignItems: 'center',
|
|
116
|
-
backgroundColor: '
|
|
118
|
+
backgroundColor: 'container.regular',
|
|
117
119
|
borderRadius: 'full',
|
|
118
|
-
color: '
|
|
120
|
+
color: 'content.secondary',
|
|
121
|
+
cornerShape: 'round',
|
|
119
122
|
display: 'flex',
|
|
120
123
|
fontSize: '24',
|
|
121
124
|
height: '48',
|
|
122
125
|
justifyContent: 'center',
|
|
123
|
-
marginBlockEnd: '
|
|
126
|
+
marginBlockEnd: '12',
|
|
124
127
|
width: '48',
|
|
125
128
|
},
|
|
126
129
|
{ id: 'tds/web/empty/icon' },
|
|
@@ -132,16 +135,18 @@ namespace styles {
|
|
|
132
135
|
boxSizing: 'border-box',
|
|
133
136
|
display: 'flex',
|
|
134
137
|
flexDirection: 'column',
|
|
135
|
-
paddingBlock: '
|
|
138
|
+
paddingBlock: '24',
|
|
136
139
|
paddingInline: '16',
|
|
137
140
|
rowGap: '4',
|
|
141
|
+
// A spinner in place of the icon leaves the same 16px above the title.
|
|
142
|
+
selectors: { '& > [role="progressbar"]': { marginBlockEnd: '12' } },
|
|
138
143
|
textAlign: 'center',
|
|
139
144
|
},
|
|
140
145
|
{ id: 'tds/web/empty' },
|
|
141
146
|
)
|
|
142
147
|
|
|
143
148
|
export const title = style(
|
|
144
|
-
{ color: '
|
|
149
|
+
{ color: 'content.primary', margin: '0', typography: 'heading.h3' },
|
|
145
150
|
{ id: 'tds/web/empty/title' },
|
|
146
151
|
)
|
|
147
152
|
}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import * as BaseUi from '@base-ui/react/field'
|
|
2
|
-
import { type ComponentPropsWithRef,
|
|
2
|
+
import { type ComponentPropsWithRef, useRef, useState } from 'react'
|
|
3
3
|
import type * as zyzz from 'zyzz'
|
|
4
4
|
import { style } from '../zyzz.config.js'
|
|
5
|
-
import * as FieldVariant from './internal/FieldVariant.js'
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
* Labeled form field.
|
|
9
|
-
*
|
|
10
|
-
* `default` places the label above the field. The label and
|
|
11
|
-
* row gap follow the `size` of the control inside, and an error replaces the description.
|
|
12
|
-
* `setting` puts the label and description beside a trailing control, and `size="small"` makes
|
|
13
|
-
* that row compact.
|
|
7
|
+
* Labeled form field. The label sits 12px above the control and the message 12px below it, and a
|
|
8
|
+
* shown error replaces the description.
|
|
14
9
|
*
|
|
15
10
|
* - Give every control a visible `Field.Label`. Base UI links it to the control.
|
|
16
11
|
* - Base UI adds `Field.Description` and a shown `Field.Error` to the control's `aria-describedby`.
|
|
@@ -19,9 +14,9 @@ import * as FieldVariant from './internal/FieldVariant.js'
|
|
|
19
14
|
* @example
|
|
20
15
|
* <Field.Root invalid={invalid}>
|
|
21
16
|
* <Field.Label>Email</Field.Label>
|
|
22
|
-
* <
|
|
23
|
-
* <
|
|
24
|
-
* </
|
|
17
|
+
* <TextInput.Group>
|
|
18
|
+
* <TextInput.Control type="email" />
|
|
19
|
+
* </TextInput.Group>
|
|
25
20
|
* <Field.Description>Used for receipts.</Field.Description>
|
|
26
21
|
* <Field.Error match={invalid}>Enter a valid email.</Field.Error>
|
|
27
22
|
* </Field.Root>
|
|
@@ -34,9 +29,7 @@ import * as FieldVariant from './internal/FieldVariant.js'
|
|
|
34
29
|
*/
|
|
35
30
|
export namespace Field {
|
|
36
31
|
/**
|
|
37
|
-
* Owns validity, dirty, touched and filled state for one control
|
|
38
|
-
* controls inside. Without `variant`, it inherits the variant of an enclosing `Fieldset` or
|
|
39
|
-
* `Field`, falling back to `default`.
|
|
32
|
+
* Owns validity, dirty, touched and filled state for one control.
|
|
40
33
|
*
|
|
41
34
|
* When a native `form` submit finds the control invalid, such as an empty `required` input, the
|
|
42
35
|
* field validates and shows `Field.Error`. Outside `onBlur` mode, it then revalidates on each
|
|
@@ -51,44 +44,36 @@ export namespace Field {
|
|
|
51
44
|
actionsRef = actions,
|
|
52
45
|
className,
|
|
53
46
|
onInvalidCapture,
|
|
54
|
-
size,
|
|
55
47
|
success = false,
|
|
56
48
|
validationMode,
|
|
57
|
-
variant,
|
|
58
49
|
vars,
|
|
59
50
|
...attributes
|
|
60
51
|
} = props
|
|
61
|
-
const inherited = useContext(FieldVariant.Context)
|
|
62
|
-
const resolved = variant ?? inherited ?? 'default'
|
|
63
52
|
const [submitted, setSubmitted] = useState(false)
|
|
64
53
|
|
|
65
54
|
return (
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
data-variant={resolved}
|
|
75
|
-
onInvalidCapture={(event) => {
|
|
76
|
-
onInvalidCapture?.(event)
|
|
55
|
+
<BaseUi.Field.Root
|
|
56
|
+
{...attributes}
|
|
57
|
+
{...styles.root({ className, style: props.style, vars })}
|
|
58
|
+
actionsRef={actionsRef}
|
|
59
|
+
data-field=""
|
|
60
|
+
data-success={success || undefined}
|
|
61
|
+
onInvalidCapture={(event) => {
|
|
62
|
+
onInvalidCapture?.(event)
|
|
77
63
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
64
|
+
// Base UI runs submit validation only inside its own Form. A native form fires `invalid`
|
|
65
|
+
// on each failing control instead, and the event does not bubble. `checkValidity()` and
|
|
66
|
+
// `reportValidity()` fire it too, but only a submit attempt marks the form's controls
|
|
67
|
+
// `:user-invalid` first. `invalid` targets only form controls.
|
|
68
|
+
if (!(event.target as Element).matches(':user-invalid')) return
|
|
83
69
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</FieldVariant.Context.Provider>
|
|
70
|
+
actionsRef.current?.validate()
|
|
71
|
+
setSubmitted(true)
|
|
72
|
+
}}
|
|
73
|
+
// Base UI's Form counts submits to revalidate `onSubmit` fields on change. A native
|
|
74
|
+
// form has no count, so a failed submit switches the field to `onChange`.
|
|
75
|
+
validationMode={submitted && validationMode !== 'onBlur' ? 'onChange' : validationMode}
|
|
76
|
+
/>
|
|
92
77
|
)
|
|
93
78
|
}
|
|
94
79
|
|
|
@@ -108,15 +93,8 @@ export namespace Field {
|
|
|
108
93
|
| 'validationDebounceTime'
|
|
109
94
|
| 'validationMode'
|
|
110
95
|
> & {
|
|
111
|
-
/**
|
|
112
|
-
* The density of a `setting` row: `medium` (default) or `small`, which sets smaller text and
|
|
113
|
-
* less padding. Other variants follow the size of the control inside instead.
|
|
114
|
-
*/
|
|
115
|
-
size?: 'medium' | 'small' | undefined
|
|
116
|
-
/** Marks the value as accepted. Controls inside take the success tint and ring. */
|
|
96
|
+
/** Marks the value as accepted. Text fields inside end with a check. */
|
|
117
97
|
success?: boolean | undefined
|
|
118
|
-
/** The label layout: `default`, `stacked` or `setting`. */
|
|
119
|
-
variant?: FieldVariant.Variant | undefined
|
|
120
98
|
}
|
|
121
99
|
}
|
|
122
100
|
|
|
@@ -138,6 +116,27 @@ export namespace Field {
|
|
|
138
116
|
Pick<BaseUi.Field.Label.Props, 'nativeLabel' | 'render'>
|
|
139
117
|
}
|
|
140
118
|
|
|
119
|
+
/**
|
|
120
|
+
* Regular-weight text at the end of the label row, such as "Optional". Place it inside
|
|
121
|
+
* `Field.Label`, so it joins the control's accessible name.
|
|
122
|
+
*/
|
|
123
|
+
export function SecondaryLabel(props: SecondaryLabel.Props) {
|
|
124
|
+
const { className, vars, ...attributes } = props
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<span
|
|
128
|
+
{...attributes}
|
|
129
|
+
{...styles.secondaryLabel({ className, style: props.style, vars })}
|
|
130
|
+
data-field-secondary=""
|
|
131
|
+
/>
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export namespace SecondaryLabel {
|
|
136
|
+
export type Props = ComponentPropsWithRef<'span'> &
|
|
137
|
+
zyzz.Props.Variants<typeof styles.secondaryLabel>
|
|
138
|
+
}
|
|
139
|
+
|
|
141
140
|
/** Hint text rendered as a `p`. It fades out while a `Field.Error` is shown. */
|
|
142
141
|
export function Description(props: Description.Props) {
|
|
143
142
|
const { className, vars, ...attributes } = props
|
|
@@ -204,22 +203,15 @@ namespace styles {
|
|
|
204
203
|
*/
|
|
205
204
|
export const description = style(
|
|
206
205
|
{
|
|
207
|
-
color: '
|
|
206
|
+
color: 'content.secondary',
|
|
208
207
|
margin: '0',
|
|
209
208
|
transitionDuration: '200',
|
|
210
209
|
transitionProperty: 'color, filter, opacity, transform !custom',
|
|
211
210
|
transitionTimingFunction: 'snappy',
|
|
212
|
-
typography: '
|
|
211
|
+
typography: 'body.b3',
|
|
213
212
|
selectors: {
|
|
214
|
-
// Matches the label's size so the label, control and description read as one rhythm.
|
|
215
|
-
':has(> [data-size="medium"], > * > [data-size="medium"]) > &': {
|
|
216
|
-
typography: 'label.13',
|
|
217
|
-
},
|
|
218
|
-
':has(> [data-size="small"], > * > [data-size="small"]) > &': {
|
|
219
|
-
typography: 'label.12',
|
|
220
|
-
},
|
|
221
213
|
':has(> [data-field-error]:not([data-ending-style])) > &': {
|
|
222
|
-
color: '
|
|
214
|
+
color: 'content.negative',
|
|
223
215
|
filter: 'blur(2px) !custom',
|
|
224
216
|
insetBlockEnd: '0',
|
|
225
217
|
insetInline: '0',
|
|
@@ -229,8 +221,9 @@ namespace styles {
|
|
|
229
221
|
transform: 'translateY(-4px) !custom',
|
|
230
222
|
transitionDuration: '150',
|
|
231
223
|
},
|
|
232
|
-
|
|
233
|
-
'[data-
|
|
224
|
+
// An accepted value reads its message in the positive color, as an error does in negative.
|
|
225
|
+
'[data-success] > &': { color: 'content.positive' },
|
|
226
|
+
'[data-disabled] &': { color: 'content.subtle' },
|
|
234
227
|
},
|
|
235
228
|
'@media (prefers-reduced-motion: reduce)': {
|
|
236
229
|
transitionProperty: 'opacity !custom',
|
|
@@ -248,20 +241,14 @@ namespace styles {
|
|
|
248
241
|
/** Takes the description's slot, rising in from below and back out as it clears. */
|
|
249
242
|
export const error = style(
|
|
250
243
|
{
|
|
251
|
-
color: '
|
|
244
|
+
color: 'content.negative',
|
|
252
245
|
transitionDuration: '200',
|
|
253
246
|
transitionProperty: 'color, filter, opacity, transform !custom',
|
|
254
247
|
transitionTimingFunction: 'snappy',
|
|
255
|
-
typography: '
|
|
248
|
+
typography: 'body.b3',
|
|
256
249
|
selectors: {
|
|
257
|
-
':has(> [data-size="medium"], > * > [data-size="medium"]) > &': {
|
|
258
|
-
typography: 'label.13',
|
|
259
|
-
},
|
|
260
|
-
':has(> [data-size="small"], > * > [data-size="small"]) > &': {
|
|
261
|
-
typography: 'label.12',
|
|
262
|
-
},
|
|
263
250
|
'&[data-ending-style]': {
|
|
264
|
-
color: '
|
|
251
|
+
color: 'content.secondary',
|
|
265
252
|
filter: 'blur(2px) !custom',
|
|
266
253
|
insetBlockEnd: '0',
|
|
267
254
|
insetInline: '0',
|
|
@@ -271,7 +258,7 @@ namespace styles {
|
|
|
271
258
|
transitionDuration: '150',
|
|
272
259
|
},
|
|
273
260
|
'&[data-starting-style]': {
|
|
274
|
-
color: '
|
|
261
|
+
color: 'content.secondary',
|
|
275
262
|
filter: 'blur(2px) !custom',
|
|
276
263
|
opacity: '0 !custom',
|
|
277
264
|
transform: 'translateY(4px) !custom',
|
|
@@ -297,55 +284,14 @@ namespace styles {
|
|
|
297
284
|
|
|
298
285
|
export const label = style(
|
|
299
286
|
{
|
|
300
|
-
color: '
|
|
287
|
+
color: 'content.primary',
|
|
301
288
|
transitionDuration: '160',
|
|
302
289
|
transitionProperty: 'color, opacity !custom',
|
|
303
290
|
transitionTimingFunction: 'snappy',
|
|
304
|
-
typography: '
|
|
291
|
+
typography: 'body.b2Strong',
|
|
305
292
|
selectors: {
|
|
306
|
-
|
|
307
|
-
'
|
|
308
|
-
typography: 'label.13.strong',
|
|
309
|
-
},
|
|
310
|
-
':has(> [data-size="small"], > * > [data-size="small"]) > &': {
|
|
311
|
-
typography: 'label.12.strong',
|
|
312
|
-
},
|
|
313
|
-
'[data-disabled] &': { opacity: 'disabled' },
|
|
314
|
-
'[data-variant="setting"] > &': { gridColumn: '1 !custom', typography: 'copy.15.strong' },
|
|
315
|
-
'[data-variant="setting"][data-field-size="small"] > &': {
|
|
316
|
-
typography: 'copy.14.strong',
|
|
317
|
-
},
|
|
318
|
-
'[data-variant="stacked"] > &': {
|
|
319
|
-
alignSelf: 'start !custom',
|
|
320
|
-
color: 'gray.900',
|
|
321
|
-
gridArea: '1 / 1',
|
|
322
|
-
insetInlineStart: '0',
|
|
323
|
-
marginInline: '16',
|
|
324
|
-
pointerEvents: 'none',
|
|
325
|
-
transform: 'translateY(10px) !custom',
|
|
326
|
-
transformOrigin: 'left top !custom',
|
|
327
|
-
transitionDuration: '240',
|
|
328
|
-
transitionProperty: 'color, opacity, transform !custom',
|
|
329
|
-
transitionTimingFunction: 'spring',
|
|
330
|
-
typography: 'label.14',
|
|
331
|
-
zIndex: '1 !custom',
|
|
332
|
-
},
|
|
333
|
-
'[data-variant="stacked"][data-filled] > &, [data-variant="stacked"][data-focused] > &': {
|
|
334
|
-
transform: 'translateY(3px) scale(0.75) !custom',
|
|
335
|
-
},
|
|
336
|
-
// The resting label centers in the field, then floats into its top padding.
|
|
337
|
-
'[data-variant="stacked"]:has(> [data-size="large"], > * > [data-size="large"]) > &': {
|
|
338
|
-
marginInline: '20',
|
|
339
|
-
transform: 'translateY(18px) !custom',
|
|
340
|
-
typography: 'label.16',
|
|
341
|
-
},
|
|
342
|
-
':is([data-variant="stacked"][data-filled], [data-variant="stacked"][data-focused]):has(> [data-size="large"], > * > [data-size="large"]) > &':
|
|
343
|
-
{ transform: 'translateY(8px) scale(0.75) !custom' },
|
|
344
|
-
},
|
|
345
|
-
'@media (prefers-reduced-motion: reduce)': {
|
|
346
|
-
selectors: {
|
|
347
|
-
'[data-variant="stacked"] > &': { transitionProperty: 'color, opacity !custom' },
|
|
348
|
-
},
|
|
293
|
+
'&:has(> [data-field-secondary])': { columnGap: '8', display: 'flex' },
|
|
294
|
+
'[data-disabled] &': { color: 'content.tertiary' },
|
|
349
295
|
},
|
|
350
296
|
},
|
|
351
297
|
{ id: 'tds/web/field/label' },
|
|
@@ -358,25 +304,25 @@ namespace styles {
|
|
|
358
304
|
display: 'grid',
|
|
359
305
|
gridTemplateColumns: 'minmax(0, 1fr) !custom',
|
|
360
306
|
position: 'relative',
|
|
361
|
-
|
|
362
|
-
rowGap: '8',
|
|
307
|
+
rowGap: '12',
|
|
363
308
|
selectors: {
|
|
364
|
-
'&:has(> [data-size="small"], > * > [data-size="small"])': { rowGap: '6' },
|
|
365
309
|
// A list of options reads as one block under its label, so it sits further away than one control.
|
|
366
|
-
'&:has(> [role="radiogroup"], > [role="group"] [role="checkbox"])': { rowGap: '
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
columnGap: '16',
|
|
370
|
-
gridTemplateColumns: 'minmax(0, 1fr) auto !custom',
|
|
371
|
-
paddingBlock: '16',
|
|
372
|
-
rowGap: '4',
|
|
373
|
-
},
|
|
374
|
-
'&[data-variant="setting"][data-field-size="small"]': {
|
|
375
|
-
paddingBlock: '12',
|
|
376
|
-
rowGap: '2',
|
|
377
|
-
},
|
|
310
|
+
'&:has(> [role="radiogroup"], > [role="group"] [role="checkbox"])': { rowGap: '16' },
|
|
311
|
+
// The message of a code sits 8px below its slots, as the Code Input design places it.
|
|
312
|
+
'&:has(> [data-otp-field])': { rowGap: '8' },
|
|
378
313
|
},
|
|
379
314
|
},
|
|
380
315
|
{ id: 'tds/web/field' },
|
|
381
316
|
)
|
|
317
|
+
|
|
318
|
+
// Text keeps 4.5:1 contrast, so it takes the secondary color rather than tertiary.
|
|
319
|
+
export const secondaryLabel = style(
|
|
320
|
+
{
|
|
321
|
+
color: 'content.secondary',
|
|
322
|
+
marginInlineStart: 'auto !custom',
|
|
323
|
+
typography: 'body.b2',
|
|
324
|
+
selectors: { '[data-disabled] &': { color: 'content.tertiary' } },
|
|
325
|
+
},
|
|
326
|
+
{ id: 'tds/web/field/secondary-label' },
|
|
327
|
+
)
|
|
382
328
|
}
|
|
@@ -2,24 +2,23 @@ import * as BaseUi from '@base-ui/react/fieldset'
|
|
|
2
2
|
import type { ComponentPropsWithRef } from 'react'
|
|
3
3
|
import type * as zyzz from 'zyzz'
|
|
4
4
|
import { style } from '../zyzz.config.js'
|
|
5
|
-
import * as FieldVariant from './internal/FieldVariant.js'
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
* Groups fields under a legend
|
|
9
|
-
*
|
|
7
|
+
* Groups fields under a legend. Renders a native `fieldset` named by its `Fieldset.Legend` through
|
|
8
|
+
* `aria-labelledby`.
|
|
10
9
|
*
|
|
11
10
|
* - Group related controls, such as radios, checkboxes or the parts of an address.
|
|
12
11
|
* - Write the legend as the question the group answers.
|
|
13
12
|
* - Avoid nesting fieldsets.
|
|
14
13
|
*
|
|
15
14
|
* @example
|
|
16
|
-
* <Fieldset.Root
|
|
15
|
+
* <Fieldset.Root>
|
|
17
16
|
* <Fieldset.Legend>Recipient</Fieldset.Legend>
|
|
18
17
|
* <Field.Root>
|
|
19
18
|
* <Field.Label>Name</Field.Label>
|
|
20
|
-
* <
|
|
21
|
-
* <
|
|
22
|
-
* </
|
|
19
|
+
* <TextInput.Group>
|
|
20
|
+
* <TextInput.Control />
|
|
21
|
+
* </TextInput.Group>
|
|
23
22
|
* </Field.Root>
|
|
24
23
|
* </Fieldset.Root>
|
|
25
24
|
*
|
|
@@ -30,34 +29,24 @@ import * as FieldVariant from './internal/FieldVariant.js'
|
|
|
30
29
|
*/
|
|
31
30
|
export namespace Fieldset {
|
|
32
31
|
/**
|
|
33
|
-
* Renders the `fieldset` and stacks its fields
|
|
34
|
-
*
|
|
35
|
-
* `setting` rows touch, since their own padding spaces them. `disabled` disables the
|
|
36
|
-
* native controls inside and every nested `Field.Root`.
|
|
32
|
+
* Renders the `fieldset` and stacks its fields 16px apart, with 12px under the legend.
|
|
33
|
+
* `disabled` disables the native controls inside and every nested `Field.Root`.
|
|
37
34
|
*/
|
|
38
35
|
export function Root(props: Root.Props) {
|
|
39
|
-
const { className,
|
|
36
|
+
const { className, vars, ...attributes } = props
|
|
40
37
|
|
|
41
38
|
return (
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
/>
|
|
47
|
-
</FieldVariant.Context.Provider>
|
|
39
|
+
<BaseUi.Fieldset.Root
|
|
40
|
+
{...attributes}
|
|
41
|
+
{...styles.root({ className, style: props.style, vars })}
|
|
42
|
+
/>
|
|
48
43
|
)
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
export namespace Root {
|
|
52
47
|
export type Props = ComponentPropsWithRef<'fieldset'> &
|
|
53
48
|
zyzz.Props.Variants<typeof styles.root> &
|
|
54
|
-
Pick<BaseUi.Fieldset.Root.Props, 'render'>
|
|
55
|
-
/**
|
|
56
|
-
* Layout that nested `Field.Root` parts inherit unless they set their own `variant`. Fields
|
|
57
|
-
* fall back to `default` when neither sets one.
|
|
58
|
-
*/
|
|
59
|
-
variant?: FieldVariant.Variant | undefined
|
|
60
|
-
}
|
|
49
|
+
Pick<BaseUi.Fieldset.Root.Props, 'render'>
|
|
61
50
|
}
|
|
62
51
|
|
|
63
52
|
/**
|
|
@@ -85,7 +74,7 @@ export namespace Fieldset {
|
|
|
85
74
|
|
|
86
75
|
namespace styles {
|
|
87
76
|
export const legend = style(
|
|
88
|
-
{ color: '
|
|
77
|
+
{ color: 'content.primary', typography: 'body.b1Strong' },
|
|
89
78
|
{ id: 'tds/web/fieldset/legend' },
|
|
90
79
|
)
|
|
91
80
|
|
|
@@ -97,20 +86,10 @@ namespace styles {
|
|
|
97
86
|
margin: '0',
|
|
98
87
|
minWidth: '0',
|
|
99
88
|
padding: '0',
|
|
100
|
-
// Margins instead of `row-gap`, so the
|
|
89
|
+
// Margins instead of `row-gap`, so the legend can sit closer than the fields.
|
|
101
90
|
selectors: {
|
|
102
|
-
// Fields sit as far apart as their controls' size suggests: 12, 16 or 24px.
|
|
103
91
|
'& > * + *': { marginBlockStart: '16' },
|
|
104
|
-
// The size sits on a direct control, or on the control of a field. Setting rows keep 16px, and
|
|
105
|
-
// a small stacked field renders medium. `:where` keeps the legend rule below in charge.
|
|
106
|
-
'& > * + :where(:not([data-variant="setting"], [data-variant="stacked"])):where([data-size="small"], :has(> [data-size="small"], > * > [data-size="small"]))':
|
|
107
|
-
{ marginBlockStart: '12' },
|
|
108
|
-
'& > * + :where(:not([data-variant="setting"])):where([data-size="large"], :has(> [data-size="large"], > * > [data-size="large"]))':
|
|
109
|
-
{ marginBlockStart: '24' },
|
|
110
92
|
'& > [data-fieldset-legend] + *': { marginBlockStart: '12' },
|
|
111
|
-
'& > :is([data-fieldset-legend], [data-variant="setting"]) + [data-variant="setting"]': {
|
|
112
|
-
marginBlockStart: '0',
|
|
113
|
-
},
|
|
114
93
|
},
|
|
115
94
|
},
|
|
116
95
|
{ id: 'tds/web/fieldset' },
|