@seed-design/react 0.0.1-alpha-20250210081704
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 +7 -0
- package/lib/components/ActionButton/ActionButton.d.ts +24 -0
- package/lib/components/ActionButton/ActionButton.d.ts.map +1 -0
- package/lib/components/ActionButton/ActionButton.namespace.d.ts +2 -0
- package/lib/components/ActionButton/ActionButton.namespace.d.ts.map +1 -0
- package/lib/components/ActionButton/index.d.ts +3 -0
- package/lib/components/ActionButton/index.d.ts.map +1 -0
- package/lib/components/ActionChip/ActionChip.d.ts +23 -0
- package/lib/components/ActionChip/ActionChip.d.ts.map +1 -0
- package/lib/components/ActionChip/ActionChip.namespace.d.ts +2 -0
- package/lib/components/ActionChip/ActionChip.namespace.d.ts.map +1 -0
- package/lib/components/ActionChip/index.d.ts +3 -0
- package/lib/components/ActionChip/index.d.ts.map +1 -0
- package/lib/components/ActionSheet/ActionSheet.d.ts +47 -0
- package/lib/components/ActionSheet/ActionSheet.d.ts.map +1 -0
- package/lib/components/ActionSheet/ActionSheet.namespace.d.ts +2 -0
- package/lib/components/ActionSheet/ActionSheet.namespace.d.ts.map +1 -0
- package/lib/components/ActionSheet/index.d.ts +3 -0
- package/lib/components/ActionSheet/index.d.ts.map +1 -0
- package/lib/components/Avatar/Avatar.d.ts +21 -0
- package/lib/components/Avatar/Avatar.d.ts.map +1 -0
- package/lib/components/Avatar/Avatar.namespace.d.ts +2 -0
- package/lib/components/Avatar/Avatar.namespace.d.ts.map +1 -0
- package/lib/components/Avatar/index.d.ts +3 -0
- package/lib/components/Avatar/index.d.ts.map +1 -0
- package/lib/components/Badge/Badge.d.ts +10 -0
- package/lib/components/Badge/Badge.d.ts.map +1 -0
- package/lib/components/Badge/Badge.namespace.d.ts +2 -0
- package/lib/components/Badge/Badge.namespace.d.ts.map +1 -0
- package/lib/components/Badge/index.d.ts +3 -0
- package/lib/components/Badge/index.d.ts.map +1 -0
- package/lib/components/BottomSheet/BottomSheet.d.ts +42 -0
- package/lib/components/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/lib/components/BottomSheet/BottomSheet.namespace.d.ts +2 -0
- package/lib/components/BottomSheet/BottomSheet.namespace.d.ts.map +1 -0
- package/lib/components/BottomSheet/index.d.ts +3 -0
- package/lib/components/BottomSheet/index.d.ts.map +1 -0
- package/lib/components/Box/Box.d.ts +50 -0
- package/lib/components/Box/Box.d.ts.map +1 -0
- package/lib/components/Box/index.d.ts +2 -0
- package/lib/components/Box/index.d.ts.map +1 -0
- package/lib/components/Callout/Callout.d.ts +33 -0
- package/lib/components/Callout/Callout.d.ts.map +1 -0
- package/lib/components/Callout/Callout.namespace.d.ts +2 -0
- package/lib/components/Callout/Callout.namespace.d.ts.map +1 -0
- package/lib/components/Callout/index.d.ts +3 -0
- package/lib/components/Callout/index.d.ts.map +1 -0
- package/lib/components/Celcius/Celcius.d.ts +6 -0
- package/lib/components/Celcius/Celcius.d.ts.map +1 -0
- package/lib/components/Celcius/index.d.ts +2 -0
- package/lib/components/Celcius/index.d.ts.map +1 -0
- package/lib/components/Checkbox/Checkbox.d.ts +31 -0
- package/lib/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/lib/components/Checkbox/Checkbox.namespace.d.ts +2 -0
- package/lib/components/Checkbox/Checkbox.namespace.d.ts.map +1 -0
- package/lib/components/Checkbox/index.d.ts +3 -0
- package/lib/components/Checkbox/index.d.ts.map +1 -0
- package/lib/components/ChipTabs/ChipTabs.d.ts +26 -0
- package/lib/components/ChipTabs/ChipTabs.d.ts.map +1 -0
- package/lib/components/ChipTabs/ChipTabs.namespace.d.ts +2 -0
- package/lib/components/ChipTabs/ChipTabs.namespace.d.ts.map +1 -0
- package/lib/components/ChipTabs/index.d.ts +3 -0
- package/lib/components/ChipTabs/index.d.ts.map +1 -0
- package/lib/components/Columns/Columns.d.ts +10 -0
- package/lib/components/Columns/Columns.d.ts.map +1 -0
- package/lib/components/Columns/index.d.ts +2 -0
- package/lib/components/Columns/index.d.ts.map +1 -0
- package/lib/components/ControlChip/ControlChip.d.ts +25 -0
- package/lib/components/ControlChip/ControlChip.d.ts.map +1 -0
- package/lib/components/ControlChip/ControlChip.namespace.d.ts +2 -0
- package/lib/components/ControlChip/ControlChip.namespace.d.ts.map +1 -0
- package/lib/components/ControlChip/index.d.ts +3 -0
- package/lib/components/ControlChip/index.d.ts.map +1 -0
- package/lib/components/Dialog/Dialog.d.ts +34 -0
- package/lib/components/Dialog/Dialog.d.ts.map +1 -0
- package/lib/components/Dialog/Dialog.namespace.d.ts +2 -0
- package/lib/components/Dialog/Dialog.namespace.d.ts.map +1 -0
- package/lib/components/Dialog/index.d.ts +3 -0
- package/lib/components/Dialog/index.d.ts.map +1 -0
- package/lib/components/ExtendedActionSheet/ExtendedActionSheet.d.ts +54 -0
- package/lib/components/ExtendedActionSheet/ExtendedActionSheet.d.ts.map +1 -0
- package/lib/components/ExtendedActionSheet/ExtendedActionSheet.namespace.d.ts +2 -0
- package/lib/components/ExtendedActionSheet/ExtendedActionSheet.namespace.d.ts.map +1 -0
- package/lib/components/ExtendedActionSheet/index.d.ts +3 -0
- package/lib/components/ExtendedActionSheet/index.d.ts.map +1 -0
- package/lib/components/ExtendedFab/ExtendedFab.d.ts +13 -0
- package/lib/components/ExtendedFab/ExtendedFab.d.ts.map +1 -0
- package/lib/components/ExtendedFab/ExtendedFab.namespace.d.ts +2 -0
- package/lib/components/ExtendedFab/ExtendedFab.namespace.d.ts.map +1 -0
- package/lib/components/ExtendedFab/index.d.ts +3 -0
- package/lib/components/ExtendedFab/index.d.ts.map +1 -0
- package/lib/components/Fab/Fab.d.ts +11 -0
- package/lib/components/Fab/Fab.d.ts.map +1 -0
- package/lib/components/Fab/Fab.namespace.d.ts +2 -0
- package/lib/components/Fab/Fab.namespace.d.ts.map +1 -0
- package/lib/components/Fab/index.d.ts +3 -0
- package/lib/components/Fab/index.d.ts.map +1 -0
- package/lib/components/Flex/Flex.d.ts +12 -0
- package/lib/components/Flex/Flex.d.ts.map +1 -0
- package/lib/components/Flex/index.d.ts +2 -0
- package/lib/components/Flex/index.d.ts.map +1 -0
- package/lib/components/HelpBubble/HelpBubble.d.ts +47 -0
- package/lib/components/HelpBubble/HelpBubble.d.ts.map +1 -0
- package/lib/components/HelpBubble/HelpBubble.namespace.d.ts +2 -0
- package/lib/components/HelpBubble/HelpBubble.namespace.d.ts.map +1 -0
- package/lib/components/HelpBubble/index.d.ts +3 -0
- package/lib/components/HelpBubble/index.d.ts.map +1 -0
- package/lib/components/Inline/Inline.d.ts +6 -0
- package/lib/components/Inline/Inline.d.ts.map +1 -0
- package/lib/components/Inline/index.d.ts +2 -0
- package/lib/components/Inline/index.d.ts.map +1 -0
- package/lib/components/InlineBanner/InlineBanner.d.ts +36 -0
- package/lib/components/InlineBanner/InlineBanner.d.ts.map +1 -0
- package/lib/components/InlineBanner/InlineBanner.namespace.d.ts +2 -0
- package/lib/components/InlineBanner/InlineBanner.namespace.d.ts.map +1 -0
- package/lib/components/InlineBanner/index.d.ts +3 -0
- package/lib/components/InlineBanner/index.d.ts.map +1 -0
- package/lib/components/MannerTempBadge/MannerTempBadge.d.ts +10 -0
- package/lib/components/MannerTempBadge/MannerTempBadge.d.ts.map +1 -0
- package/lib/components/MannerTempBadge/MannerTempBadge.namespace.d.ts +2 -0
- package/lib/components/MannerTempBadge/MannerTempBadge.namespace.d.ts.map +1 -0
- package/lib/components/MannerTempBadge/index.d.ts +3 -0
- package/lib/components/MannerTempBadge/index.d.ts.map +1 -0
- package/lib/components/ProgressCircle/ProgressCircle.d.ts +12 -0
- package/lib/components/ProgressCircle/ProgressCircle.d.ts.map +1 -0
- package/lib/components/ProgressCircle/ProgressCircle.namespace.d.ts +2 -0
- package/lib/components/ProgressCircle/ProgressCircle.namespace.d.ts.map +1 -0
- package/lib/components/ProgressCircle/index.d.ts +3 -0
- package/lib/components/ProgressCircle/index.d.ts.map +1 -0
- package/lib/components/PullToRefresh/PullToRefresh.d.ts +12 -0
- package/lib/components/PullToRefresh/PullToRefresh.d.ts.map +1 -0
- package/lib/components/PullToRefresh/PullToRefresh.namespace.d.ts +2 -0
- package/lib/components/PullToRefresh/PullToRefresh.namespace.d.ts.map +1 -0
- package/lib/components/PullToRefresh/index.d.ts +3 -0
- package/lib/components/PullToRefresh/index.d.ts.map +1 -0
- package/lib/components/ReactionButton/ReactionButton.d.ts +22 -0
- package/lib/components/ReactionButton/ReactionButton.d.ts.map +1 -0
- package/lib/components/ReactionButton/ReactionButton.namespace.d.ts +2 -0
- package/lib/components/ReactionButton/ReactionButton.namespace.d.ts.map +1 -0
- package/lib/components/ReactionButton/index.d.ts +3 -0
- package/lib/components/ReactionButton/index.d.ts.map +1 -0
- package/lib/components/SegmentedControl/SegmentedControl.d.ts +19 -0
- package/lib/components/SegmentedControl/SegmentedControl.d.ts.map +1 -0
- package/lib/components/SegmentedControl/SegmentedControl.namespace.d.ts +2 -0
- package/lib/components/SegmentedControl/SegmentedControl.namespace.d.ts.map +1 -0
- package/lib/components/SegmentedControl/index.d.ts +3 -0
- package/lib/components/SegmentedControl/index.d.ts.map +1 -0
- package/lib/components/SelectBox/CheckSelectBox.d.ts +32 -0
- package/lib/components/SelectBox/CheckSelectBox.d.ts.map +1 -0
- package/lib/components/SelectBox/CheckSelectBox.namespace.d.ts +2 -0
- package/lib/components/SelectBox/CheckSelectBox.namespace.d.ts.map +1 -0
- package/lib/components/SelectBox/RadioSelectBox.d.ts +28 -0
- package/lib/components/SelectBox/RadioSelectBox.d.ts.map +1 -0
- package/lib/components/SelectBox/RadioSelectBox.namespace.d.ts +2 -0
- package/lib/components/SelectBox/RadioSelectBox.namespace.d.ts.map +1 -0
- package/lib/components/SelectBox/index.d.ts +5 -0
- package/lib/components/SelectBox/index.d.ts.map +1 -0
- package/lib/components/Skeleton/Skeleton.d.ts +7 -0
- package/lib/components/Skeleton/Skeleton.d.ts.map +1 -0
- package/lib/components/Skeleton/index.d.ts +2 -0
- package/lib/components/Skeleton/index.d.ts.map +1 -0
- package/lib/components/Snackbar/Snackbar.d.ts +35 -0
- package/lib/components/Snackbar/Snackbar.d.ts.map +1 -0
- package/lib/components/Snackbar/Snackbar.namespace.d.ts +2 -0
- package/lib/components/Snackbar/Snackbar.namespace.d.ts.map +1 -0
- package/lib/components/Snackbar/index.d.ts +5 -0
- package/lib/components/Snackbar/index.d.ts.map +1 -0
- package/lib/components/Snackbar/useSnackbarAdapter.d.ts +11 -0
- package/lib/components/Snackbar/useSnackbarAdapter.d.ts.map +1 -0
- package/lib/components/Stack/Stack.d.ts +6 -0
- package/lib/components/Stack/Stack.d.ts.map +1 -0
- package/lib/components/Stack/index.d.ts +2 -0
- package/lib/components/Stack/index.d.ts.map +1 -0
- package/lib/components/Switch/Switch.d.ts +19 -0
- package/lib/components/Switch/Switch.d.ts.map +1 -0
- package/lib/components/Switch/Switch.namespace.d.ts +2 -0
- package/lib/components/Switch/Switch.namespace.d.ts.map +1 -0
- package/lib/components/Switch/index.d.ts +3 -0
- package/lib/components/Switch/index.d.ts.map +1 -0
- package/lib/components/Tabs/Tabs.d.ts +32 -0
- package/lib/components/Tabs/Tabs.d.ts.map +1 -0
- package/lib/components/Tabs/Tabs.namespace.d.ts +2 -0
- package/lib/components/Tabs/Tabs.namespace.d.ts.map +1 -0
- package/lib/components/Tabs/index.d.ts +3 -0
- package/lib/components/Tabs/index.d.ts.map +1 -0
- package/lib/components/Text/Text.d.ts +36 -0
- package/lib/components/Text/Text.d.ts.map +1 -0
- package/lib/components/Text/index.d.ts +2 -0
- package/lib/components/Text/index.d.ts.map +1 -0
- package/lib/components/TextButton/TextButton.d.ts +17 -0
- package/lib/components/TextButton/TextButton.d.ts.map +1 -0
- package/lib/components/TextButton/TextButton.namespace.d.ts +2 -0
- package/lib/components/TextButton/TextButton.namespace.d.ts.map +1 -0
- package/lib/components/TextButton/index.d.ts +3 -0
- package/lib/components/TextButton/index.d.ts.map +1 -0
- package/lib/components/TextField/TextField.d.ts +65 -0
- package/lib/components/TextField/TextField.d.ts.map +1 -0
- package/lib/components/TextField/TextField.namespace.d.ts +2 -0
- package/lib/components/TextField/TextField.namespace.d.ts.map +1 -0
- package/lib/components/TextField/index.d.ts +3 -0
- package/lib/components/TextField/index.d.ts.map +1 -0
- package/lib/components/ToggleButton/ToggleButton.d.ts +22 -0
- package/lib/components/ToggleButton/ToggleButton.d.ts.map +1 -0
- package/lib/components/ToggleButton/ToggleButton.namespace.d.ts +2 -0
- package/lib/components/ToggleButton/ToggleButton.namespace.d.ts.map +1 -0
- package/lib/components/ToggleButton/index.d.ts +3 -0
- package/lib/components/ToggleButton/index.d.ts.map +1 -0
- package/lib/components/VisuallyHidden/VisuallyHidden.d.ts +6 -0
- package/lib/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
- package/lib/components/VisuallyHidden/index.d.ts +2 -0
- package/lib/components/VisuallyHidden/index.d.ts.map +1 -0
- package/lib/components/index.d.ts +38 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/private/Icon.d.ts +5 -0
- package/lib/components/private/Icon.d.ts.map +1 -0
- package/lib/components/private/useDismissible.d.ts +1665 -0
- package/lib/components/private/useDismissible.d.ts.map +1 -0
- package/lib/components/private/usePendingButton.d.ts +831 -0
- package/lib/components/private/usePendingButton.d.ts.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +2309 -0
- package/lib/index.js.map +7 -0
- package/lib/index.mjs +2318 -0
- package/lib/index.mjs.map +7 -0
- package/lib/primitive.d.ts +12 -0
- package/lib/primitive.d.ts.map +1 -0
- package/lib/primitive.js +31 -0
- package/lib/primitive.js.map +7 -0
- package/lib/primitive.mjs +13 -0
- package/lib/primitive.mjs.map +7 -0
- package/lib/utils/createStyleContext.d.ts +24 -0
- package/lib/utils/createStyleContext.d.ts.map +1 -0
- package/lib/utils/createWithStateProps.d.ts +10 -0
- package/lib/utils/createWithStateProps.d.ts.map +1 -0
- package/lib/vars.d.ts +2 -0
- package/lib/vars.d.ts.map +1 -0
- package/lib/vars.js +21 -0
- package/lib/vars.js.map +7 -0
- package/lib/vars.mjs +3 -0
- package/lib/vars.mjs.map +7 -0
- package/package.json +80 -0
- package/src/components/ActionButton/ActionButton.namespace.ts +14 -0
- package/src/components/ActionButton/ActionButton.tsx +98 -0
- package/src/components/ActionButton/index.ts +16 -0
- package/src/components/ActionChip/ActionChip.namespace.ts +14 -0
- package/src/components/ActionChip/ActionChip.tsx +54 -0
- package/src/components/ActionChip/index.ts +16 -0
- package/src/components/ActionSheet/ActionSheet.namespace.ts +28 -0
- package/src/components/ActionSheet/ActionSheet.tsx +150 -0
- package/src/components/ActionSheet/index.ts +30 -0
- package/src/components/Avatar/Avatar.namespace.ts +12 -0
- package/src/components/Avatar/Avatar.tsx +69 -0
- package/src/components/Avatar/index.ts +14 -0
- package/src/components/Badge/Badge.namespace.ts +6 -0
- package/src/components/Badge/Badge.tsx +21 -0
- package/src/components/Badge/index.ts +8 -0
- package/src/components/BottomSheet/BottomSheet.namespace.ts +26 -0
- package/src/components/BottomSheet/BottomSheet.tsx +123 -0
- package/src/components/BottomSheet/index.ts +28 -0
- package/src/components/Box/Box.tsx +303 -0
- package/src/components/Box/index.ts +1 -0
- package/src/components/Callout/Callout.namespace.ts +20 -0
- package/src/components/Callout/Callout.tsx +101 -0
- package/src/components/Callout/index.ts +22 -0
- package/src/components/Celcius/Celcius.tsx +9 -0
- package/src/components/Celcius/index.ts +4 -0
- package/src/components/Checkbox/Checkbox.namespace.ts +12 -0
- package/src/components/Checkbox/Checkbox.tsx +96 -0
- package/src/components/Checkbox/index.ts +14 -0
- package/src/components/ChipTabs/ChipTabs.namespace.ts +16 -0
- package/src/components/ChipTabs/ChipTabs.tsx +80 -0
- package/src/components/ChipTabs/index.ts +18 -0
- package/src/components/Columns/Columns.tsx +38 -0
- package/src/components/Columns/index.ts +1 -0
- package/src/components/ControlChip/ControlChip.namespace.ts +15 -0
- package/src/components/ControlChip/ControlChip.tsx +63 -0
- package/src/components/ControlChip/index.ts +17 -0
- package/src/components/Dialog/Dialog.namespace.ts +22 -0
- package/src/components/Dialog/Dialog.tsx +94 -0
- package/src/components/Dialog/index.ts +24 -0
- package/src/components/ExtendedActionSheet/ExtendedActionSheet.namespace.ts +32 -0
- package/src/components/ExtendedActionSheet/ExtendedActionSheet.tsx +181 -0
- package/src/components/ExtendedActionSheet/index.ts +34 -0
- package/src/components/ExtendedFab/ExtendedFab.namespace.ts +8 -0
- package/src/components/ExtendedFab/ExtendedFab.tsx +44 -0
- package/src/components/ExtendedFab/index.ts +10 -0
- package/src/components/Fab/Fab.namespace.ts +6 -0
- package/src/components/Fab/Fab.tsx +22 -0
- package/src/components/Fab/index.ts +8 -0
- package/src/components/Flex/Flex.tsx +19 -0
- package/src/components/Flex/index.ts +1 -0
- package/src/components/HelpBubble/HelpBubble.namespace.ts +25 -0
- package/src/components/HelpBubble/HelpBubble.tsx +158 -0
- package/src/components/HelpBubble/index.ts +28 -0
- package/src/components/Inline/Inline.tsx +18 -0
- package/src/components/Inline/index.ts +1 -0
- package/src/components/InlineBanner/InlineBanner.namespace.ts +22 -0
- package/src/components/InlineBanner/InlineBanner.tsx +105 -0
- package/src/components/InlineBanner/index.ts +24 -0
- package/src/components/MannerTempBadge/MannerTempBadge.namespace.ts +6 -0
- package/src/components/MannerTempBadge/MannerTempBadge.tsx +32 -0
- package/src/components/MannerTempBadge/index.ts +8 -0
- package/src/components/ProgressCircle/ProgressCircle.namespace.ts +8 -0
- package/src/components/ProgressCircle/ProgressCircle.tsx +31 -0
- package/src/components/ProgressCircle/index.ts +10 -0
- package/src/components/PullToRefresh/PullToRefresh.namespace.ts +8 -0
- package/src/components/PullToRefresh/PullToRefresh.tsx +25 -0
- package/src/components/PullToRefresh/index.ts +10 -0
- package/src/components/ReactionButton/ReactionButton.namespace.ts +12 -0
- package/src/components/ReactionButton/ReactionButton.tsx +80 -0
- package/src/components/ReactionButton/index.ts +14 -0
- package/src/components/SegmentedControl/SegmentedControl.namespace.ts +12 -0
- package/src/components/SegmentedControl/SegmentedControl.tsx +53 -0
- package/src/components/SegmentedControl/index.ts +14 -0
- package/src/components/SelectBox/CheckSelectBox.namespace.ts +18 -0
- package/src/components/SelectBox/CheckSelectBox.tsx +79 -0
- package/src/components/SelectBox/RadioSelectBox.namespace.ts +18 -0
- package/src/components/SelectBox/RadioSelectBox.tsx +73 -0
- package/src/components/SelectBox/index.ts +40 -0
- package/src/components/Skeleton/Skeleton.tsx +13 -0
- package/src/components/Skeleton/index.ts +1 -0
- package/src/components/Snackbar/Snackbar.namespace.ts +20 -0
- package/src/components/Snackbar/Snackbar.tsx +100 -0
- package/src/components/Snackbar/index.ts +32 -0
- package/src/components/Snackbar/useSnackbarAdapter.ts +28 -0
- package/src/components/Stack/Stack.tsx +8 -0
- package/src/components/Stack/index.ts +1 -0
- package/src/components/Switch/Switch.namespace.ts +12 -0
- package/src/components/Switch/Switch.tsx +50 -0
- package/src/components/Switch/index.ts +14 -0
- package/src/components/Tabs/Tabs.namespace.ts +20 -0
- package/src/components/Tabs/Tabs.tsx +94 -0
- package/src/components/Tabs/index.ts +22 -0
- package/src/components/Text/Text.tsx +139 -0
- package/src/components/Text/index.tsx +1 -0
- package/src/components/TextButton/TextButton.namespace.ts +10 -0
- package/src/components/TextButton/TextButton.tsx +41 -0
- package/src/components/TextButton/index.ts +12 -0
- package/src/components/TextField/TextField.namespace.tsx +38 -0
- package/src/components/TextField/TextField.tsx +258 -0
- package/src/components/TextField/index.tsx +40 -0
- package/src/components/ToggleButton/ToggleButton.namespace.ts +12 -0
- package/src/components/ToggleButton/ToggleButton.tsx +75 -0
- package/src/components/ToggleButton/index.ts +14 -0
- package/src/components/VisuallyHidden/VisuallyHidden.tsx +13 -0
- package/src/components/VisuallyHidden/index.tsx +1 -0
- package/src/components/index.ts +37 -0
- package/src/components/private/Icon.tsx +15 -0
- package/src/components/private/useDismissible.tsx +86 -0
- package/src/components/private/usePendingButton.tsx +45 -0
- package/src/index.tsx +1 -0
- package/src/primitive.ts +11 -0
- package/src/utils/createStyleContext.tsx +125 -0
- package/src/utils/createWithStateProps.tsx +28 -0
- package/src/vars.ts +1 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Primitive, type PrimitiveProps } from "@seed-design/react-primitive";
|
|
2
|
+
import {
|
|
3
|
+
Tabs as TabsPrimitive,
|
|
4
|
+
useTabsContext,
|
|
5
|
+
useTabsTriggerContext,
|
|
6
|
+
} from "@seed-design/react-tabs";
|
|
7
|
+
import { tabs, type TabsVariantProps } from "@seed-design/recipe/tabs";
|
|
8
|
+
import { createStyleContext } from "../../utils/createStyleContext";
|
|
9
|
+
import { createWithStateProps } from "../../utils/createWithStateProps";
|
|
10
|
+
import type React from "react";
|
|
11
|
+
|
|
12
|
+
const { withProvider, withContext } = createStyleContext(tabs);
|
|
13
|
+
const withStateProps = createWithStateProps([useTabsContext, useTabsTriggerContext], {
|
|
14
|
+
strict: false,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
18
|
+
|
|
19
|
+
export interface TabsRootProps extends TabsVariantProps, TabsPrimitive.RootProps {}
|
|
20
|
+
|
|
21
|
+
export const TabsRoot = withProvider<HTMLDivElement, TabsRootProps>(TabsPrimitive.Root, "root");
|
|
22
|
+
|
|
23
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
24
|
+
|
|
25
|
+
export interface TabsListProps extends TabsPrimitive.ListProps {}
|
|
26
|
+
|
|
27
|
+
export const TabsList = withContext<HTMLDivElement, TabsListProps>(TabsPrimitive.List, "list");
|
|
28
|
+
|
|
29
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
30
|
+
|
|
31
|
+
export interface TabsTriggerProps extends TabsPrimitive.TriggerProps {}
|
|
32
|
+
|
|
33
|
+
export const TabsTrigger = withContext<HTMLButtonElement, TabsTriggerProps>(
|
|
34
|
+
TabsPrimitive.Trigger,
|
|
35
|
+
"trigger",
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
39
|
+
|
|
40
|
+
export interface TabsTriggerLabelProps
|
|
41
|
+
extends PrimitiveProps,
|
|
42
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
43
|
+
|
|
44
|
+
export const TabsTriggerLabel = withContext<HTMLSpanElement, TabsTriggerLabelProps>(
|
|
45
|
+
withStateProps(Primitive.span),
|
|
46
|
+
"triggerLabel",
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
50
|
+
|
|
51
|
+
export interface TabsTriggerNotificationProps
|
|
52
|
+
extends PrimitiveProps,
|
|
53
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
54
|
+
|
|
55
|
+
export const TabsTriggerNotification = withContext<HTMLDivElement, TabsTriggerNotificationProps>(
|
|
56
|
+
withStateProps(Primitive.div),
|
|
57
|
+
"triggerNotification",
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
61
|
+
|
|
62
|
+
export interface TabsIndicatorProps extends TabsPrimitive.IndicatorProps {}
|
|
63
|
+
|
|
64
|
+
export const TabsIndicator = withContext<HTMLSpanElement, TabsIndicatorProps>(
|
|
65
|
+
TabsPrimitive.Indicator,
|
|
66
|
+
"indicator",
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
70
|
+
|
|
71
|
+
export interface TabsContentProps extends TabsPrimitive.ContentProps {}
|
|
72
|
+
|
|
73
|
+
export const TabsContent = withContext<HTMLSpanElement, TabsContentProps>(
|
|
74
|
+
TabsPrimitive.Content,
|
|
75
|
+
"content",
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
79
|
+
|
|
80
|
+
export interface TabsCarouselProps extends TabsPrimitive.CarouselProps {}
|
|
81
|
+
|
|
82
|
+
export const TabsCarousel = withContext<HTMLDivElement, TabsCarouselProps>(
|
|
83
|
+
TabsPrimitive.Carousel,
|
|
84
|
+
"carousel",
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
88
|
+
|
|
89
|
+
export interface TabsCarouselCameraProps extends TabsPrimitive.CarouselCameraProps {}
|
|
90
|
+
|
|
91
|
+
export const TabsCarouselCamera = withContext<HTMLDivElement, TabsCarouselCameraProps>(
|
|
92
|
+
TabsPrimitive.CarouselCamera,
|
|
93
|
+
"carouselCamera",
|
|
94
|
+
);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export {
|
|
2
|
+
TabsContent,
|
|
3
|
+
TabsIndicator,
|
|
4
|
+
TabsList,
|
|
5
|
+
TabsRoot,
|
|
6
|
+
TabsCarouselCamera,
|
|
7
|
+
TabsCarousel,
|
|
8
|
+
TabsTrigger,
|
|
9
|
+
TabsTriggerLabel,
|
|
10
|
+
TabsTriggerNotification,
|
|
11
|
+
type TabsContentProps,
|
|
12
|
+
type TabsIndicatorProps,
|
|
13
|
+
type TabsListProps,
|
|
14
|
+
type TabsRootProps,
|
|
15
|
+
type TabsCarouselCameraProps,
|
|
16
|
+
type TabsCarouselProps,
|
|
17
|
+
type TabsTriggerLabelProps,
|
|
18
|
+
type TabsTriggerNotificationProps,
|
|
19
|
+
type TabsTriggerProps,
|
|
20
|
+
} from "./Tabs";
|
|
21
|
+
|
|
22
|
+
export * as Tabs from "./Tabs.namespace";
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { text, type TextVariantProps } from "@seed-design/recipe/text";
|
|
2
|
+
import {
|
|
3
|
+
vars,
|
|
4
|
+
type ColorFg,
|
|
5
|
+
type ColorPalette,
|
|
6
|
+
type FontSize,
|
|
7
|
+
type FontWeight,
|
|
8
|
+
type LineHeight,
|
|
9
|
+
} from "@seed-design/vars";
|
|
10
|
+
import clsx from "clsx";
|
|
11
|
+
import type * as React from "react";
|
|
12
|
+
import { useMemo } from "react";
|
|
13
|
+
|
|
14
|
+
function handleColor(color: string | undefined) {
|
|
15
|
+
if (!color) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const [type, value] = color.split(".");
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
return vars.$color[type][value] ?? undefined;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function handleFontWeight(fontWeight: string | undefined) {
|
|
24
|
+
if (!fontWeight) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
return vars.$fontWeight[fontWeight] ?? undefined;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function handleFontSize(size: string | undefined) {
|
|
32
|
+
if (!size) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
// @ts-ignore
|
|
36
|
+
return vars.$fontSize[size] ?? size;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function handleLineHeight(lineHeight: string | undefined) {
|
|
40
|
+
if (!lineHeight) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
return vars.$lineHeight[lineHeight] ?? lineHeight;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface TextProps
|
|
48
|
+
extends Omit<TextVariantProps, "maxLines">,
|
|
49
|
+
React.HTMLAttributes<HTMLSpanElement> {
|
|
50
|
+
/**
|
|
51
|
+
* The element to render as
|
|
52
|
+
* @default "span"
|
|
53
|
+
*/
|
|
54
|
+
as?: "dt" | "dd" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "strong" | "legend";
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The color of the text.
|
|
58
|
+
*/
|
|
59
|
+
color?: `fg.${ColorFg}` | `palette.${ColorPalette}`;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The font size of the text. Partially overrides the textStyle.
|
|
63
|
+
*/
|
|
64
|
+
fontSize?: FontSize;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* The line height of the text. Partially overrides the textStyle.
|
|
68
|
+
*/
|
|
69
|
+
lineHeight?: LineHeight;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* The font weight of the text. Partially overrides the textStyle.
|
|
73
|
+
*/
|
|
74
|
+
fontWeight?: FontWeight;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The maximum number of lines to display. If the text overflows, it will be truncated.
|
|
78
|
+
*/
|
|
79
|
+
maxLines?: number;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The alignment of the text.
|
|
83
|
+
*/
|
|
84
|
+
align?: "left" | "center" | "right";
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function mapMaxLines(maxLines: number | undefined): "none" | "single" | "multi" {
|
|
88
|
+
if (maxLines === undefined) {
|
|
89
|
+
return "none";
|
|
90
|
+
}
|
|
91
|
+
if (maxLines === 1) {
|
|
92
|
+
return "single";
|
|
93
|
+
}
|
|
94
|
+
return "multi";
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export const Text = ({
|
|
98
|
+
as,
|
|
99
|
+
color,
|
|
100
|
+
textStyle,
|
|
101
|
+
fontSize,
|
|
102
|
+
lineHeight,
|
|
103
|
+
fontWeight,
|
|
104
|
+
maxLines,
|
|
105
|
+
children,
|
|
106
|
+
className,
|
|
107
|
+
style,
|
|
108
|
+
...otherProps
|
|
109
|
+
}: TextProps) => {
|
|
110
|
+
const Comp = as || "span";
|
|
111
|
+
const classNames = useMemo(
|
|
112
|
+
() =>
|
|
113
|
+
text({
|
|
114
|
+
textStyle,
|
|
115
|
+
maxLines: mapMaxLines(maxLines),
|
|
116
|
+
}),
|
|
117
|
+
[textStyle, maxLines],
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
return (
|
|
121
|
+
<Comp
|
|
122
|
+
className={clsx(classNames.root, className)}
|
|
123
|
+
style={
|
|
124
|
+
{
|
|
125
|
+
"--seed-max-lines": maxLines,
|
|
126
|
+
"--seed-text-color": handleColor(color),
|
|
127
|
+
"--seed-font-size": handleFontSize(fontSize),
|
|
128
|
+
"--seed-line-height": handleLineHeight(lineHeight ?? fontSize),
|
|
129
|
+
"--seed-font-weight": handleFontWeight(fontWeight),
|
|
130
|
+
"--seed-text-align": otherProps.align,
|
|
131
|
+
...style,
|
|
132
|
+
} as React.CSSProperties
|
|
133
|
+
}
|
|
134
|
+
{...otherProps}
|
|
135
|
+
>
|
|
136
|
+
{children}
|
|
137
|
+
</Comp>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Text";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export {
|
|
2
|
+
TextButtonLabel as Label,
|
|
3
|
+
TextButtonPrefixIcon as PrefixIcon,
|
|
4
|
+
TextButtonRoot as Root,
|
|
5
|
+
TextButtonSuffixIcon as SuffixIcon,
|
|
6
|
+
type TextButtonLabelProps as LabelProps,
|
|
7
|
+
type TextButtonPrefixIconProps as PrefixIconProps,
|
|
8
|
+
type TextButtonRootProps as RootProps,
|
|
9
|
+
type TextButtonSuffixIconProps as SuffixIconProps,
|
|
10
|
+
} from "./TextButton";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Primitive, type PrimitiveProps } from "@seed-design/react-primitive";
|
|
2
|
+
import { textButton, type TextButtonVariantProps } from "@seed-design/recipe/textButton";
|
|
3
|
+
import { createStyleContext } from "../../utils/createStyleContext";
|
|
4
|
+
import { Icon, type IconProps } from "../private/Icon";
|
|
5
|
+
|
|
6
|
+
import type * as React from "react";
|
|
7
|
+
|
|
8
|
+
const { withProvider, withContext } = createStyleContext(textButton);
|
|
9
|
+
|
|
10
|
+
export interface TextButtonRootProps
|
|
11
|
+
extends TextButtonVariantProps,
|
|
12
|
+
PrimitiveProps,
|
|
13
|
+
React.ButtonHTMLAttributes<HTMLButtonElement> {}
|
|
14
|
+
|
|
15
|
+
export const TextButtonRoot = withProvider<HTMLButtonElement, TextButtonRootProps>(
|
|
16
|
+
Primitive.button,
|
|
17
|
+
"root",
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
export interface TextButtonLabelProps
|
|
21
|
+
extends PrimitiveProps,
|
|
22
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
23
|
+
|
|
24
|
+
export const TextButtonLabel = withContext<HTMLSpanElement, TextButtonLabelProps>(
|
|
25
|
+
Primitive.span,
|
|
26
|
+
"label",
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export interface TextButtonPrefixIconProps extends IconProps {}
|
|
30
|
+
|
|
31
|
+
export const TextButtonPrefixIcon = withContext<SVGSVGElement, TextButtonPrefixIconProps>(
|
|
32
|
+
Icon,
|
|
33
|
+
"prefixIcon",
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
export interface TextButtonSuffixIconProps extends IconProps {}
|
|
37
|
+
|
|
38
|
+
export const TextButtonSuffixIcon = withContext<SVGSVGElement, TextButtonSuffixIconProps>(
|
|
39
|
+
Icon,
|
|
40
|
+
"suffixIcon",
|
|
41
|
+
);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export {
|
|
2
|
+
TextButtonLabel,
|
|
3
|
+
TextButtonPrefixIcon,
|
|
4
|
+
TextButtonRoot,
|
|
5
|
+
TextButtonSuffixIcon,
|
|
6
|
+
type TextButtonLabelProps,
|
|
7
|
+
type TextButtonPrefixIconProps,
|
|
8
|
+
type TextButtonRootProps,
|
|
9
|
+
type TextButtonSuffixIconProps,
|
|
10
|
+
} from "./TextButton";
|
|
11
|
+
|
|
12
|
+
export * as TextButton from "./TextButton.namespace";
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export {
|
|
2
|
+
TextFieldCharacterCount as CharacterCount,
|
|
3
|
+
TextFieldCharacterCountArea as CharacterCountArea,
|
|
4
|
+
TextFieldDescription as Description,
|
|
5
|
+
TextFieldErrorIcon as ErrorIcon,
|
|
6
|
+
TextFieldErrorMessage as ErrorMessage,
|
|
7
|
+
TextFieldField as Field,
|
|
8
|
+
TextFieldFooter as Footer,
|
|
9
|
+
TextFieldHeader as Header,
|
|
10
|
+
TextFieldIndicator as Indicator,
|
|
11
|
+
TextFieldInput as Input,
|
|
12
|
+
TextFieldTextarea as Textarea,
|
|
13
|
+
TextFieldLabel as Label,
|
|
14
|
+
TextFieldMaxCharacterCount as MaxCharacterCount,
|
|
15
|
+
TextFieldPrefixIcon as PrefixIcon,
|
|
16
|
+
TextFieldPrefixText as PrefixText,
|
|
17
|
+
TextFieldRoot as Root,
|
|
18
|
+
TextFieldSuffixIcon as SuffixIcon,
|
|
19
|
+
TextFieldSuffixText as SuffixText,
|
|
20
|
+
type TextFieldCharacterCountAreaProps as CharacterCountAreaProps,
|
|
21
|
+
type TextFieldCharacterCountProps as CharacterCountProps,
|
|
22
|
+
type TextFieldDescriptionProps as DescriptionProps,
|
|
23
|
+
type TextFieldErrorIconProps as ErrorIconProps,
|
|
24
|
+
type TextFieldErrorMessageProps as ErrorMessageProps,
|
|
25
|
+
type TextFieldFieldProps as FieldProps,
|
|
26
|
+
type TextFieldFooterProps as FooterProps,
|
|
27
|
+
type TextFieldHeaderProps as HeaderProps,
|
|
28
|
+
type TextFieldIndicatorProps as IndicatorProps,
|
|
29
|
+
type TextFieldInputProps as InputProps,
|
|
30
|
+
type TextFieldTextareaProps as TextareaProps,
|
|
31
|
+
type TextFieldLabelProps as LabelProps,
|
|
32
|
+
type TextFieldMaxCharacterCountProps as MaxCharacterCountProps,
|
|
33
|
+
type TextFieldPrefixIconProps as PrefixIconProps,
|
|
34
|
+
type TextFieldPrefixTextProps as PrefixTextProps,
|
|
35
|
+
type TextFieldRootProps as RootProps,
|
|
36
|
+
type TextFieldSuffixIconProps as SuffixIconProps,
|
|
37
|
+
type TextFieldSuffixTextProps as SuffixTextProps,
|
|
38
|
+
} from "./TextField";
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { useLayoutEffect } from "@radix-ui/react-use-layout-effect";
|
|
2
|
+
import { Primitive, type PrimitiveProps } from "@seed-design/react-primitive";
|
|
3
|
+
import { TextField, useTextFieldContext } from "@seed-design/react-text-field";
|
|
4
|
+
import { textField, type TextFieldVariantProps } from "@seed-design/recipe/textField";
|
|
5
|
+
import clsx from "clsx";
|
|
6
|
+
import type * as React from "react";
|
|
7
|
+
import { forwardRef, useCallback, useRef } from "react";
|
|
8
|
+
import { createStyleContext } from "../../utils/createStyleContext";
|
|
9
|
+
import { createWithStateProps } from "../../utils/createWithStateProps";
|
|
10
|
+
import { Icon, type IconProps } from "../private/Icon";
|
|
11
|
+
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
12
|
+
|
|
13
|
+
const { withProvider, withContext, useClassNames } = createStyleContext(textField);
|
|
14
|
+
const withStateProps = createWithStateProps([useTextFieldContext]);
|
|
15
|
+
|
|
16
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
17
|
+
|
|
18
|
+
export interface TextFieldRootProps extends TextFieldVariantProps, TextField.RootProps {}
|
|
19
|
+
|
|
20
|
+
export const TextFieldRoot = withProvider<HTMLDivElement, TextFieldRootProps>(
|
|
21
|
+
TextField.Root,
|
|
22
|
+
"root",
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
26
|
+
|
|
27
|
+
export interface TextFieldHeaderProps
|
|
28
|
+
extends PrimitiveProps,
|
|
29
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
30
|
+
|
|
31
|
+
export const TextFieldHeader = withContext<HTMLDivElement, TextFieldHeaderProps>(
|
|
32
|
+
withStateProps(Primitive.div),
|
|
33
|
+
"header",
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
37
|
+
|
|
38
|
+
export interface TextFieldLabelProps extends TextField.LabelProps {}
|
|
39
|
+
|
|
40
|
+
export const TextFieldLabel = withContext<HTMLLabelElement, TextFieldLabelProps>(
|
|
41
|
+
TextField.Label,
|
|
42
|
+
"label",
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
46
|
+
|
|
47
|
+
export interface TextFieldIndicatorProps
|
|
48
|
+
extends PrimitiveProps,
|
|
49
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
50
|
+
|
|
51
|
+
export const TextFieldIndicator = forwardRef<HTMLSpanElement, TextFieldIndicatorProps>(
|
|
52
|
+
(props, ref) => {
|
|
53
|
+
const { className, ...otherProps } = props;
|
|
54
|
+
const classNames = useClassNames();
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<>
|
|
58
|
+
<Primitive.span> </Primitive.span>
|
|
59
|
+
<Primitive.span
|
|
60
|
+
ref={ref}
|
|
61
|
+
className={clsx(classNames.indicator, className)}
|
|
62
|
+
{...otherProps}
|
|
63
|
+
/>
|
|
64
|
+
</>
|
|
65
|
+
);
|
|
66
|
+
},
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
70
|
+
|
|
71
|
+
export interface TextFieldFieldProps extends PrimitiveProps, React.HTMLAttributes<HTMLDivElement> {}
|
|
72
|
+
|
|
73
|
+
export const TextFieldField = withContext<HTMLDivElement, TextFieldFieldProps>(
|
|
74
|
+
withStateProps(Primitive.div),
|
|
75
|
+
"field",
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
79
|
+
|
|
80
|
+
export interface TextFieldPrefixIconProps extends IconProps {}
|
|
81
|
+
|
|
82
|
+
export const TextFieldPrefixIcon = withContext<SVGSVGElement, TextFieldPrefixIconProps>(
|
|
83
|
+
withStateProps(Icon),
|
|
84
|
+
"prefixIcon",
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
88
|
+
|
|
89
|
+
export interface TextFieldPrefixTextProps
|
|
90
|
+
extends PrimitiveProps,
|
|
91
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
92
|
+
|
|
93
|
+
export const TextFieldPrefixText = withContext<HTMLSpanElement, TextFieldPrefixTextProps>(
|
|
94
|
+
withStateProps(Primitive.span),
|
|
95
|
+
"prefixText",
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
99
|
+
|
|
100
|
+
export interface TextFieldSuffixIconProps extends IconProps {}
|
|
101
|
+
|
|
102
|
+
export const TextFieldSuffixIcon = withContext<SVGSVGElement, TextFieldSuffixIconProps>(
|
|
103
|
+
withStateProps(Icon),
|
|
104
|
+
"suffixIcon",
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
108
|
+
|
|
109
|
+
export interface TextFieldSuffixTextProps
|
|
110
|
+
extends PrimitiveProps,
|
|
111
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
112
|
+
|
|
113
|
+
export const TextFieldSuffixText = withContext<HTMLSpanElement, TextFieldSuffixTextProps>(
|
|
114
|
+
withStateProps(Primitive.span),
|
|
115
|
+
"suffixText",
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
119
|
+
|
|
120
|
+
export interface TextFieldInputProps extends TextField.InputProps {}
|
|
121
|
+
|
|
122
|
+
export const TextFieldInput = withContext<HTMLInputElement, TextFieldInputProps>(
|
|
123
|
+
TextField.Input,
|
|
124
|
+
"value",
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
128
|
+
|
|
129
|
+
export interface TextFieldTextareaProps extends TextField.TextareaProps {
|
|
130
|
+
/**
|
|
131
|
+
* If true, the textarea will automatically resize based on its content.
|
|
132
|
+
* @default true
|
|
133
|
+
*/
|
|
134
|
+
autoresize?: boolean;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export const TextFieldTextarea = forwardRef<HTMLTextAreaElement, TextFieldTextareaProps>(
|
|
138
|
+
(props, ref) => {
|
|
139
|
+
const { className, autoresize = true, ...otherProps } = props;
|
|
140
|
+
const classNames = useClassNames();
|
|
141
|
+
const { value } = useTextFieldContext();
|
|
142
|
+
|
|
143
|
+
// referenced from React Spectrum
|
|
144
|
+
const inputRef = useRef<HTMLTextAreaElement>(null);
|
|
145
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: intended
|
|
146
|
+
const onHeightChange = useCallback(() => {
|
|
147
|
+
if (!inputRef.current) return;
|
|
148
|
+
if (otherProps.style?.height) return;
|
|
149
|
+
if (!autoresize) return;
|
|
150
|
+
|
|
151
|
+
// Quiet textareas always grow based on their text content.
|
|
152
|
+
// Standard textareas also grow by default, unless an explicit height is set.
|
|
153
|
+
|
|
154
|
+
const input = inputRef.current;
|
|
155
|
+
const prevAlignment = input.style.alignSelf;
|
|
156
|
+
const prevOverflow = input.style.overflow;
|
|
157
|
+
// Firefox scroll position is lost when overflow: 'hidden' is applied so we skip applying it.
|
|
158
|
+
// The measure/applied height is also incorrect/reset if we turn on and off
|
|
159
|
+
// overflow: hidden in Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1787062
|
|
160
|
+
const isFirefox = "MozAppearance" in input.style;
|
|
161
|
+
if (!isFirefox) {
|
|
162
|
+
input.style.overflow = "hidden";
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
input.style.alignSelf = "start";
|
|
166
|
+
input.style.height = "auto";
|
|
167
|
+
|
|
168
|
+
// offsetHeight - clientHeight accounts for the border/padding.
|
|
169
|
+
input.style.height = `${input.scrollHeight + (input.offsetHeight - input.clientHeight)}px`;
|
|
170
|
+
|
|
171
|
+
input.style.overflow = prevOverflow;
|
|
172
|
+
input.style.alignSelf = prevAlignment;
|
|
173
|
+
}, [inputRef, otherProps.style?.height, autoresize]);
|
|
174
|
+
|
|
175
|
+
useLayoutEffect(() => {
|
|
176
|
+
if (inputRef.current) {
|
|
177
|
+
onHeightChange();
|
|
178
|
+
}
|
|
179
|
+
}, [onHeightChange, value, inputRef]);
|
|
180
|
+
|
|
181
|
+
return (
|
|
182
|
+
<TextField.Textarea
|
|
183
|
+
ref={composeRefs(inputRef, ref)}
|
|
184
|
+
{...otherProps}
|
|
185
|
+
className={clsx(classNames.value, className)}
|
|
186
|
+
/>
|
|
187
|
+
);
|
|
188
|
+
},
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
192
|
+
|
|
193
|
+
export interface TextFieldFooterProps
|
|
194
|
+
extends PrimitiveProps,
|
|
195
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
196
|
+
|
|
197
|
+
export const TextFieldFooter = withContext<HTMLDivElement, TextFieldFooterProps>(
|
|
198
|
+
withStateProps(Primitive.div),
|
|
199
|
+
"footer",
|
|
200
|
+
);
|
|
201
|
+
|
|
202
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
203
|
+
|
|
204
|
+
export interface TextFieldDescriptionProps extends TextField.DescriptionProps {}
|
|
205
|
+
|
|
206
|
+
export const TextFieldDescription = withContext<HTMLSpanElement, TextFieldDescriptionProps>(
|
|
207
|
+
TextField.Description,
|
|
208
|
+
"description",
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
212
|
+
|
|
213
|
+
export interface TextFieldErrorMessageProps extends TextField.ErrorMessageProps {}
|
|
214
|
+
|
|
215
|
+
export const TextFieldErrorMessage = withContext<HTMLSpanElement, TextFieldErrorMessageProps>(
|
|
216
|
+
TextField.ErrorMessage,
|
|
217
|
+
"errorMessage",
|
|
218
|
+
);
|
|
219
|
+
|
|
220
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
221
|
+
|
|
222
|
+
export interface TextFieldErrorIconProps extends IconProps {}
|
|
223
|
+
|
|
224
|
+
export const TextFieldErrorIcon = withContext<SVGSVGElement, TextFieldErrorIconProps>(
|
|
225
|
+
withStateProps(Icon),
|
|
226
|
+
"errorIcon",
|
|
227
|
+
);
|
|
228
|
+
|
|
229
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
230
|
+
|
|
231
|
+
export interface TextFieldCharacterCountAreaProps
|
|
232
|
+
extends PrimitiveProps,
|
|
233
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
234
|
+
|
|
235
|
+
export const TextFieldCharacterCountArea = withContext<
|
|
236
|
+
HTMLDivElement,
|
|
237
|
+
TextFieldCharacterCountAreaProps
|
|
238
|
+
>(withStateProps(Primitive.div), "characterCountArea");
|
|
239
|
+
|
|
240
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
241
|
+
|
|
242
|
+
export interface TextFieldCharacterCountProps extends TextField.GraphemeCountProps {}
|
|
243
|
+
|
|
244
|
+
export const TextFieldCharacterCount = withContext<HTMLDivElement, TextFieldCharacterCountProps>(
|
|
245
|
+
TextField.GraphemeCount,
|
|
246
|
+
"characterCount",
|
|
247
|
+
);
|
|
248
|
+
|
|
249
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
250
|
+
|
|
251
|
+
export interface TextFieldMaxCharacterCountProps
|
|
252
|
+
extends PrimitiveProps,
|
|
253
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
254
|
+
|
|
255
|
+
export const TextFieldMaxCharacterCount = withContext<
|
|
256
|
+
HTMLSpanElement,
|
|
257
|
+
TextFieldMaxCharacterCountProps
|
|
258
|
+
>(withStateProps(Primitive.span), "maxCharacterCount");
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export {
|
|
2
|
+
TextFieldCharacterCount,
|
|
3
|
+
TextFieldCharacterCountArea,
|
|
4
|
+
TextFieldDescription,
|
|
5
|
+
TextFieldErrorIcon,
|
|
6
|
+
TextFieldErrorMessage,
|
|
7
|
+
TextFieldField,
|
|
8
|
+
TextFieldFooter,
|
|
9
|
+
TextFieldHeader,
|
|
10
|
+
TextFieldIndicator,
|
|
11
|
+
TextFieldInput,
|
|
12
|
+
TextFieldTextarea,
|
|
13
|
+
TextFieldLabel,
|
|
14
|
+
TextFieldMaxCharacterCount,
|
|
15
|
+
TextFieldPrefixIcon,
|
|
16
|
+
TextFieldPrefixText,
|
|
17
|
+
TextFieldRoot,
|
|
18
|
+
TextFieldSuffixIcon,
|
|
19
|
+
TextFieldSuffixText,
|
|
20
|
+
type TextFieldCharacterCountAreaProps,
|
|
21
|
+
type TextFieldCharacterCountProps,
|
|
22
|
+
type TextFieldDescriptionProps,
|
|
23
|
+
type TextFieldErrorIconProps,
|
|
24
|
+
type TextFieldErrorMessageProps,
|
|
25
|
+
type TextFieldFieldProps,
|
|
26
|
+
type TextFieldFooterProps,
|
|
27
|
+
type TextFieldHeaderProps,
|
|
28
|
+
type TextFieldIndicatorProps,
|
|
29
|
+
type TextFieldInputProps,
|
|
30
|
+
type TextFieldTextareaProps,
|
|
31
|
+
type TextFieldLabelProps,
|
|
32
|
+
type TextFieldMaxCharacterCountProps,
|
|
33
|
+
type TextFieldPrefixIconProps,
|
|
34
|
+
type TextFieldPrefixTextProps,
|
|
35
|
+
type TextFieldRootProps,
|
|
36
|
+
type TextFieldSuffixIconProps,
|
|
37
|
+
type TextFieldSuffixTextProps,
|
|
38
|
+
} from "./TextField";
|
|
39
|
+
|
|
40
|
+
export * as TextField from "./TextField.namespace";
|