@misoto22/kioku-ui 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +21 -0
- package/dist/Alert/Alert.d.ts +7 -0
- package/dist/Alert/Alert.doc.d.ts +11 -0
- package/dist/Alert/Alert.doc.js +15 -0
- package/dist/Alert/Alert.js +149 -0
- package/dist/Alert/index.d.ts +1 -0
- package/dist/Alert/index.js +2 -0
- package/dist/AsyncState/AsyncState.d.ts +30 -0
- package/dist/AsyncState/AsyncState.doc.d.ts +16 -0
- package/dist/AsyncState/AsyncState.doc.js +16 -0
- package/dist/AsyncState/AsyncState.js +36 -0
- package/dist/AsyncState/index.d.ts +1 -0
- package/dist/AsyncState/index.js +2 -0
- package/dist/Badge/Badge.d.ts +10 -0
- package/dist/Badge/Badge.doc.d.ts +11 -0
- package/dist/Badge/Badge.doc.js +12 -0
- package/dist/Badge/Badge.js +58 -0
- package/dist/Badge/index.d.ts +1 -0
- package/dist/Badge/index.js +2 -0
- package/dist/Button/Button.d.ts +18 -0
- package/dist/Button/Button.doc.d.ts +11 -0
- package/dist/Button/Button.doc.js +18 -0
- package/dist/Button/Button.js +151 -0
- package/dist/Button/index.d.ts +1 -0
- package/dist/Button/index.js +2 -0
- package/dist/Card/Card.d.ts +6 -0
- package/dist/Card/Card.doc.d.ts +11 -0
- package/dist/Card/Card.doc.js +15 -0
- package/dist/Card/Card.js +41 -0
- package/dist/Card/index.d.ts +1 -0
- package/dist/Card/index.js +2 -0
- package/dist/CardFooter/CardFooter.d.ts +3 -0
- package/dist/CardFooter/CardFooter.doc.d.ts +11 -0
- package/dist/CardFooter/CardFooter.doc.js +12 -0
- package/dist/CardFooter/CardFooter.js +16 -0
- package/dist/CardFooter/index.d.ts +1 -0
- package/dist/CardFooter/index.js +2 -0
- package/dist/CardHeader/CardHeader.d.ts +3 -0
- package/dist/CardHeader/CardHeader.doc.d.ts +11 -0
- package/dist/CardHeader/CardHeader.doc.js +12 -0
- package/dist/CardHeader/CardHeader.js +16 -0
- package/dist/CardHeader/index.d.ts +1 -0
- package/dist/CardHeader/index.js +2 -0
- package/dist/Center/Center.d.ts +3 -0
- package/dist/Center/Center.doc.d.ts +11 -0
- package/dist/Center/Center.doc.js +12 -0
- package/dist/Center/Center.js +15 -0
- package/dist/Center/index.d.ts +1 -0
- package/dist/Center/index.js +2 -0
- package/dist/Divider/Divider.d.ts +3 -0
- package/dist/Divider/Divider.doc.d.ts +11 -0
- package/dist/Divider/Divider.doc.js +12 -0
- package/dist/Divider/Divider.js +12 -0
- package/dist/Divider/index.d.ts +1 -0
- package/dist/Divider/index.js +2 -0
- package/dist/EmptyState/EmptyState.d.ts +11 -0
- package/dist/EmptyState/EmptyState.doc.d.ts +16 -0
- package/dist/EmptyState/EmptyState.doc.js +25 -0
- package/dist/EmptyState/EmptyState.js +55 -0
- package/dist/EmptyState/index.d.ts +1 -0
- package/dist/EmptyState/index.js +2 -0
- package/dist/Field/Field.d.ts +21 -0
- package/dist/Field/Field.doc.d.ts +16 -0
- package/dist/Field/Field.doc.js +28 -0
- package/dist/Field/Field.js +117 -0
- package/dist/Field/index.d.ts +1 -0
- package/dist/Field/index.js +2 -0
- package/dist/Grid/Grid.d.ts +7 -0
- package/dist/Grid/Grid.doc.d.ts +11 -0
- package/dist/Grid/Grid.doc.js +15 -0
- package/dist/Grid/Grid.js +76 -0
- package/dist/Grid/index.d.ts +1 -0
- package/dist/Grid/index.js +2 -0
- package/dist/Heading/Heading.d.ts +293 -0
- package/dist/Heading/Heading.doc.d.ts +16 -0
- package/dist/Heading/Heading.doc.js +19 -0
- package/dist/Heading/Heading.js +47 -0
- package/dist/Heading/index.d.ts +1 -0
- package/dist/Heading/index.js +2 -0
- package/dist/IconButton/IconButton.d.ts +9 -0
- package/dist/IconButton/IconButton.doc.d.ts +16 -0
- package/dist/IconButton/IconButton.doc.js +22 -0
- package/dist/IconButton/IconButton.js +11 -0
- package/dist/IconButton/index.d.ts +1 -0
- package/dist/IconButton/index.js +2 -0
- package/dist/MetricGrid/MetricGrid.d.ts +10 -0
- package/dist/MetricGrid/MetricGrid.doc.d.ts +12 -0
- package/dist/MetricGrid/MetricGrid.doc.js +13 -0
- package/dist/MetricGrid/MetricGrid.js +37 -0
- package/dist/MetricGrid/index.d.ts +1 -0
- package/dist/MetricGrid/index.js +2 -0
- package/dist/Section/Section.d.ts +6 -0
- package/dist/Section/Section.doc.d.ts +11 -0
- package/dist/Section/Section.doc.js +12 -0
- package/dist/Section/Section.js +49 -0
- package/dist/Section/index.d.ts +1 -0
- package/dist/Section/index.js +2 -0
- package/dist/SegmentedControl/SegmentedControl.d.ts +31 -0
- package/dist/SegmentedControl/SegmentedControl.doc.d.ts +16 -0
- package/dist/SegmentedControl/SegmentedControl.doc.js +34 -0
- package/dist/SegmentedControl/SegmentedControl.js +108 -0
- package/dist/SegmentedControl/index.d.ts +1 -0
- package/dist/SegmentedControl/index.js +2 -0
- package/dist/Skeleton/Skeleton.d.ts +5 -0
- package/dist/Skeleton/Skeleton.doc.d.ts +11 -0
- package/dist/Skeleton/Skeleton.doc.js +12 -0
- package/dist/Skeleton/Skeleton.js +20 -0
- package/dist/Skeleton/index.d.ts +1 -0
- package/dist/Skeleton/index.js +2 -0
- package/dist/Spinner/Spinner.d.ts +6 -0
- package/dist/Spinner/Spinner.doc.d.ts +12 -0
- package/dist/Spinner/Spinner.doc.js +13 -0
- package/dist/Spinner/Spinner.js +25 -0
- package/dist/Spinner/index.d.ts +1 -0
- package/dist/Spinner/index.js +2 -0
- package/dist/Stack/Stack.d.ts +7 -0
- package/dist/Stack/Stack.doc.d.ts +11 -0
- package/dist/Stack/Stack.doc.js +15 -0
- package/dist/Stack/Stack.js +77 -0
- package/dist/Stack/index.d.ts +1 -0
- package/dist/Stack/index.js +2 -0
- package/dist/StatusDot/StatusDot.d.ts +8 -0
- package/dist/StatusDot/StatusDot.doc.d.ts +16 -0
- package/dist/StatusDot/StatusDot.doc.js +16 -0
- package/dist/StatusDot/StatusDot.js +46 -0
- package/dist/StatusDot/index.d.ts +1 -0
- package/dist/StatusDot/index.js +2 -0
- package/dist/Table/Table.d.ts +20 -0
- package/dist/Table/Table.doc.d.ts +92 -0
- package/dist/Table/Table.doc.js +94 -0
- package/dist/Table/Table.js +205 -0
- package/dist/Table/index.d.ts +1 -0
- package/dist/Table/index.js +2 -0
- package/dist/Text/Text.d.ts +7 -0
- package/dist/Text/Text.doc.d.ts +11 -0
- package/dist/Text/Text.doc.js +15 -0
- package/dist/Text/Text.js +50 -0
- package/dist/Text/index.d.ts +1 -0
- package/dist/Text/index.js +2 -0
- package/dist/TextArea/TextArea.d.ts +16 -0
- package/dist/TextArea/TextArea.doc.d.ts +11 -0
- package/dist/TextArea/TextArea.doc.js +30 -0
- package/dist/TextArea/TextArea.js +47 -0
- package/dist/TextArea/index.d.ts +1 -0
- package/dist/TextArea/index.js +2 -0
- package/dist/TextInput/TextInput.d.ts +16 -0
- package/dist/TextInput/TextInput.doc.d.ts +11 -0
- package/dist/TextInput/TextInput.doc.js +30 -0
- package/dist/TextInput/TextInput.js +49 -0
- package/dist/TextInput/index.d.ts +1 -0
- package/dist/TextInput/index.js +2 -0
- package/dist/Toggle/Toggle.d.ts +16 -0
- package/dist/Toggle/Toggle.doc.d.ts +11 -0
- package/dist/Toggle/Toggle.doc.js +21 -0
- package/dist/Toggle/Toggle.js +64 -0
- package/dist/Toggle/index.d.ts +1 -0
- package/dist/Toggle/index.js +2 -0
- package/dist/VisuallyHidden/VisuallyHidden.d.ts +3 -0
- package/dist/VisuallyHidden/VisuallyHidden.doc.d.ts +11 -0
- package/dist/VisuallyHidden/VisuallyHidden.doc.js +12 -0
- package/dist/VisuallyHidden/VisuallyHidden.js +15 -0
- package/dist/VisuallyHidden/index.d.ts +1 -0
- package/dist/VisuallyHidden/index.js +2 -0
- package/dist/authoring.stylex.d.ts +75 -0
- package/dist/authoring.stylex.js +77 -0
- package/dist/components/Alert.d.ts +7 -0
- package/dist/components/Alert.doc.d.ts +11 -0
- package/dist/components/Alert.doc.js +15 -0
- package/dist/components/Alert.js +149 -0
- package/dist/components/AsyncState.d.ts +30 -0
- package/dist/components/AsyncState.doc.d.ts +16 -0
- package/dist/components/AsyncState.doc.js +16 -0
- package/dist/components/AsyncState.js +36 -0
- package/dist/components/Badge.d.ts +10 -0
- package/dist/components/Badge.doc.d.ts +11 -0
- package/dist/components/Badge.doc.js +12 -0
- package/dist/components/Badge.js +58 -0
- package/dist/components/Button.d.ts +18 -0
- package/dist/components/Button.doc.d.ts +11 -0
- package/dist/components/Button.doc.js +18 -0
- package/dist/components/Button.js +151 -0
- package/dist/components/Card.d.ts +6 -0
- package/dist/components/Card.doc.d.ts +11 -0
- package/dist/components/Card.doc.js +15 -0
- package/dist/components/Card.js +41 -0
- package/dist/components/CardFooter.d.ts +3 -0
- package/dist/components/CardFooter.doc.d.ts +11 -0
- package/dist/components/CardFooter.doc.js +12 -0
- package/dist/components/CardFooter.js +16 -0
- package/dist/components/CardHeader.d.ts +3 -0
- package/dist/components/CardHeader.doc.d.ts +11 -0
- package/dist/components/CardHeader.doc.js +12 -0
- package/dist/components/CardHeader.js +16 -0
- package/dist/components/Center.d.ts +3 -0
- package/dist/components/Center.doc.d.ts +11 -0
- package/dist/components/Center.doc.js +12 -0
- package/dist/components/Center.js +15 -0
- package/dist/components/Divider.d.ts +3 -0
- package/dist/components/Divider.doc.d.ts +11 -0
- package/dist/components/Divider.doc.js +12 -0
- package/dist/components/Divider.js +12 -0
- package/dist/components/EmptyState.d.ts +11 -0
- package/dist/components/EmptyState.doc.d.ts +16 -0
- package/dist/components/EmptyState.doc.js +25 -0
- package/dist/components/EmptyState.js +55 -0
- package/dist/components/Field.d.ts +21 -0
- package/dist/components/Field.doc.d.ts +16 -0
- package/dist/components/Field.doc.js +28 -0
- package/dist/components/Field.js +117 -0
- package/dist/components/Grid.d.ts +7 -0
- package/dist/components/Grid.doc.d.ts +11 -0
- package/dist/components/Grid.doc.js +15 -0
- package/dist/components/Grid.js +76 -0
- package/dist/components/Heading.d.ts +293 -0
- package/dist/components/Heading.doc.d.ts +16 -0
- package/dist/components/Heading.doc.js +19 -0
- package/dist/components/Heading.js +46 -0
- package/dist/components/IconButton.d.ts +9 -0
- package/dist/components/IconButton.doc.d.ts +16 -0
- package/dist/components/IconButton.doc.js +22 -0
- package/dist/components/IconButton.js +11 -0
- package/dist/components/MetricGrid.d.ts +10 -0
- package/dist/components/MetricGrid.doc.d.ts +12 -0
- package/dist/components/MetricGrid.doc.js +13 -0
- package/dist/components/MetricGrid.js +37 -0
- package/dist/components/Section.d.ts +6 -0
- package/dist/components/Section.doc.d.ts +11 -0
- package/dist/components/Section.doc.js +12 -0
- package/dist/components/Section.js +49 -0
- package/dist/components/SegmentedControl.d.ts +31 -0
- package/dist/components/SegmentedControl.doc.d.ts +16 -0
- package/dist/components/SegmentedControl.doc.js +34 -0
- package/dist/components/SegmentedControl.js +108 -0
- package/dist/components/Skeleton.d.ts +5 -0
- package/dist/components/Skeleton.doc.d.ts +11 -0
- package/dist/components/Skeleton.doc.js +12 -0
- package/dist/components/Skeleton.js +20 -0
- package/dist/components/Spinner.d.ts +6 -0
- package/dist/components/Spinner.doc.d.ts +12 -0
- package/dist/components/Spinner.doc.js +13 -0
- package/dist/components/Spinner.js +25 -0
- package/dist/components/Stack.d.ts +7 -0
- package/dist/components/Stack.doc.d.ts +11 -0
- package/dist/components/Stack.doc.js +15 -0
- package/dist/components/Stack.js +77 -0
- package/dist/components/StatusDot.d.ts +8 -0
- package/dist/components/StatusDot.doc.d.ts +16 -0
- package/dist/components/StatusDot.doc.js +16 -0
- package/dist/components/StatusDot.js +46 -0
- package/dist/components/Table.d.ts +20 -0
- package/dist/components/Table.doc.d.ts +92 -0
- package/dist/components/Table.doc.js +94 -0
- package/dist/components/Table.js +205 -0
- package/dist/components/Text.d.ts +7 -0
- package/dist/components/Text.doc.d.ts +11 -0
- package/dist/components/Text.doc.js +15 -0
- package/dist/components/Text.js +50 -0
- package/dist/components/TextArea.d.ts +16 -0
- package/dist/components/TextArea.doc.d.ts +11 -0
- package/dist/components/TextArea.doc.js +30 -0
- package/dist/components/TextArea.js +47 -0
- package/dist/components/TextInput.d.ts +16 -0
- package/dist/components/TextInput.doc.d.ts +11 -0
- package/dist/components/TextInput.doc.js +30 -0
- package/dist/components/TextInput.js +49 -0
- package/dist/components/Toggle.d.ts +16 -0
- package/dist/components/Toggle.doc.d.ts +11 -0
- package/dist/components/Toggle.doc.js +21 -0
- package/dist/components/Toggle.js +64 -0
- package/dist/components/VisuallyHidden.d.ts +3 -0
- package/dist/components/VisuallyHidden.doc.d.ts +11 -0
- package/dist/components/VisuallyHidden.doc.js +12 -0
- package/dist/components/VisuallyHidden.js +15 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.js +28 -0
- package/dist/docs/index.d.ts +33 -0
- package/dist/docs/index.js +33 -0
- package/dist/docs/types.d.ts +15 -0
- package/dist/docs/types.js +25 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +32 -0
- package/dist/navigation/LinkProvider.d.ts +9 -0
- package/dist/navigation/LinkProvider.doc.d.ts +27 -0
- package/dist/navigation/LinkProvider.doc.js +27 -0
- package/dist/navigation/LinkProvider.js +22 -0
- package/dist/navigation/index.d.ts +1 -0
- package/dist/navigation/index.js +2 -0
- package/dist/styles/global.stylex.d.ts +20 -0
- package/dist/styles/global.stylex.js +22 -0
- package/dist/styles/index.css +14 -0
- package/dist/styles/reset.css +35 -0
- package/dist/styles/stylex.css +212 -0
- package/dist/theme/Theme.d.ts +24 -0
- package/dist/theme/Theme.doc.d.ts +16 -0
- package/dist/theme/Theme.doc.js +27 -0
- package/dist/theme/Theme.js +110 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.js +2 -0
- package/dist/tokens/contracts.d.ts +140 -0
- package/dist/tokens/contracts.js +102 -0
- package/package.json +93 -0
- package/src/Alert/Alert.doc.ts +21 -0
- package/src/Alert/Alert.tsx +129 -0
- package/src/Alert/index.ts +1 -0
- package/src/AsyncState/AsyncState.doc.ts +21 -0
- package/src/AsyncState/AsyncState.tsx +75 -0
- package/src/AsyncState/index.ts +5 -0
- package/src/Badge/Badge.doc.ts +15 -0
- package/src/Badge/Badge.tsx +58 -0
- package/src/Badge/index.ts +6 -0
- package/src/Button/Button.doc.ts +17 -0
- package/src/Button/Button.tsx +176 -0
- package/src/Button/index.ts +7 -0
- package/src/Card/Card.doc.ts +22 -0
- package/src/Card/Card.tsx +44 -0
- package/src/Card/index.ts +1 -0
- package/src/CardFooter/CardFooter.doc.ts +12 -0
- package/src/CardFooter/CardFooter.tsx +27 -0
- package/src/CardFooter/index.ts +1 -0
- package/src/CardHeader/CardHeader.doc.ts +12 -0
- package/src/CardHeader/CardHeader.tsx +27 -0
- package/src/CardHeader/index.ts +1 -0
- package/src/Center/Center.doc.ts +12 -0
- package/src/Center/Center.tsx +20 -0
- package/src/Center/index.ts +1 -0
- package/src/Divider/Divider.doc.ts +12 -0
- package/src/Divider/Divider.tsx +20 -0
- package/src/Divider/index.ts +1 -0
- package/src/EmptyState/EmptyState.doc.ts +31 -0
- package/src/EmptyState/EmptyState.tsx +87 -0
- package/src/EmptyState/index.ts +6 -0
- package/src/Field/Field.doc.ts +34 -0
- package/src/Field/Field.tsx +126 -0
- package/src/Field/index.ts +6 -0
- package/src/Grid/Grid.doc.ts +16 -0
- package/src/Grid/Grid.tsx +54 -0
- package/src/Grid/index.ts +1 -0
- package/src/Heading/Heading.doc.ts +26 -0
- package/src/Heading/Heading.tsx +48 -0
- package/src/Heading/index.ts +1 -0
- package/src/IconButton/IconButton.doc.ts +24 -0
- package/src/IconButton/IconButton.tsx +18 -0
- package/src/IconButton/index.ts +1 -0
- package/src/MetricGrid/MetricGrid.doc.ts +19 -0
- package/src/MetricGrid/MetricGrid.tsx +72 -0
- package/src/MetricGrid/index.ts +5 -0
- package/src/Section/Section.doc.ts +12 -0
- package/src/Section/Section.tsx +38 -0
- package/src/Section/index.ts +1 -0
- package/src/SegmentedControl/SegmentedControl.doc.ts +51 -0
- package/src/SegmentedControl/SegmentedControl.tsx +238 -0
- package/src/SegmentedControl/index.ts +5 -0
- package/src/Skeleton/Skeleton.doc.ts +15 -0
- package/src/Skeleton/Skeleton.tsx +45 -0
- package/src/Skeleton/index.ts +1 -0
- package/src/Spinner/Spinner.doc.ts +19 -0
- package/src/Spinner/Spinner.tsx +47 -0
- package/src/Spinner/index.ts +1 -0
- package/src/Stack/Stack.doc.ts +13 -0
- package/src/Stack/Stack.tsx +57 -0
- package/src/Stack/index.ts +1 -0
- package/src/StatusDot/StatusDot.doc.ts +23 -0
- package/src/StatusDot/StatusDot.tsx +35 -0
- package/src/StatusDot/index.ts +1 -0
- package/src/Table/Table.doc.ts +104 -0
- package/src/Table/Table.tsx +222 -0
- package/src/Table/index.ts +18 -0
- package/src/Text/Text.doc.ts +17 -0
- package/src/Text/Text.tsx +43 -0
- package/src/Text/index.ts +1 -0
- package/src/TextArea/TextArea.doc.ts +43 -0
- package/src/TextArea/TextArea.tsx +119 -0
- package/src/TextArea/index.ts +1 -0
- package/src/TextInput/TextInput.doc.ts +43 -0
- package/src/TextInput/TextInput.tsx +122 -0
- package/src/TextInput/index.ts +1 -0
- package/src/Toggle/Toggle.doc.ts +30 -0
- package/src/Toggle/Toggle.tsx +139 -0
- package/src/Toggle/index.ts +1 -0
- package/src/VisuallyHidden/VisuallyHidden.doc.ts +18 -0
- package/src/VisuallyHidden/VisuallyHidden.tsx +28 -0
- package/src/VisuallyHidden/index.ts +1 -0
- package/src/authoring.stylex.ts +76 -0
- package/src/docs/index.ts +122 -0
- package/src/docs/types.ts +51 -0
- package/src/index.ts +102 -0
- package/src/navigation/LinkProvider.doc.ts +32 -0
- package/src/navigation/LinkProvider.tsx +32 -0
- package/src/navigation/index.ts +7 -0
- package/src/styles/global.stylex.ts +23 -0
- package/src/styles/index.css +14 -0
- package/src/styles/reset.css +35 -0
- package/src/theme/Theme.doc.ts +38 -0
- package/src/theme/Theme.tsx +195 -0
- package/src/theme/index.ts +9 -0
- package/src/tokens/contracts.ts +210 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as stylex from '@stylexjs/stylex';
|
|
2
|
+
import {
|
|
3
|
+
createContext,
|
|
4
|
+
useContext,
|
|
5
|
+
useId,
|
|
6
|
+
type HTMLAttributes,
|
|
7
|
+
type ReactNode,
|
|
8
|
+
} from 'react';
|
|
9
|
+
|
|
10
|
+
import {semanticTokens} from '../authoring.stylex.js';
|
|
11
|
+
import type {StatusTone} from '../Badge/index.js';
|
|
12
|
+
|
|
13
|
+
interface FieldContextValue {
|
|
14
|
+
readonly controlId: string;
|
|
15
|
+
readonly describedBy: string | undefined;
|
|
16
|
+
readonly invalid: boolean;
|
|
17
|
+
readonly required: boolean;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const FieldContext = createContext<FieldContextValue | null>(null);
|
|
21
|
+
|
|
22
|
+
const styles = stylex.create({
|
|
23
|
+
root: {display: 'grid', gap: semanticTokens.spacingXs},
|
|
24
|
+
label: {
|
|
25
|
+
alignItems: 'baseline',
|
|
26
|
+
color: semanticTokens.colorText,
|
|
27
|
+
display: 'flex',
|
|
28
|
+
fontFamily: semanticTokens.fontFamilyBody,
|
|
29
|
+
fontSize: semanticTokens.fontSizeSm,
|
|
30
|
+
fontWeight: semanticTokens.fontWeightMedium,
|
|
31
|
+
gap: semanticTokens.spacingSm,
|
|
32
|
+
justifyContent: 'space-between',
|
|
33
|
+
},
|
|
34
|
+
annotation: {
|
|
35
|
+
color: semanticTokens.colorTextMuted,
|
|
36
|
+
fontWeight: semanticTokens.fontWeightRegular,
|
|
37
|
+
},
|
|
38
|
+
message: {
|
|
39
|
+
fontFamily: semanticTokens.fontFamilyBody,
|
|
40
|
+
fontSize: semanticTokens.fontSizeSm,
|
|
41
|
+
margin: 0,
|
|
42
|
+
},
|
|
43
|
+
description: {color: semanticTokens.colorTextSecondary},
|
|
44
|
+
info: {color: semanticTokens.statusInfoText},
|
|
45
|
+
success: {color: semanticTokens.statusSuccessText},
|
|
46
|
+
warning: {color: semanticTokens.statusWarningText},
|
|
47
|
+
danger: {color: semanticTokens.statusDangerText},
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
/** Native requirement metadata displayed alongside the field label. */
|
|
51
|
+
export type FieldNecessity = 'required' | 'optional';
|
|
52
|
+
|
|
53
|
+
export interface FieldProps extends Omit<
|
|
54
|
+
HTMLAttributes<HTMLDivElement>,
|
|
55
|
+
'className'
|
|
56
|
+
> {
|
|
57
|
+
readonly controlId?: string;
|
|
58
|
+
readonly description?: ReactNode;
|
|
59
|
+
readonly label: ReactNode;
|
|
60
|
+
readonly necessity?: FieldNecessity;
|
|
61
|
+
readonly status?: ReactNode;
|
|
62
|
+
readonly statusTone?: StatusTone;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function Field({
|
|
66
|
+
children,
|
|
67
|
+
controlId,
|
|
68
|
+
description,
|
|
69
|
+
label,
|
|
70
|
+
necessity,
|
|
71
|
+
status,
|
|
72
|
+
statusTone = 'danger',
|
|
73
|
+
...props
|
|
74
|
+
}: FieldProps) {
|
|
75
|
+
const generatedId = useId();
|
|
76
|
+
const resolvedControlId = controlId ?? `${generatedId}-control`;
|
|
77
|
+
const descriptionId = description ? `${generatedId}-description` : undefined;
|
|
78
|
+
const statusId = status ? `${generatedId}-status` : undefined;
|
|
79
|
+
const describedBy =
|
|
80
|
+
[descriptionId, statusId].filter(Boolean).join(' ') || undefined;
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<FieldContext.Provider
|
|
84
|
+
value={{
|
|
85
|
+
controlId: resolvedControlId,
|
|
86
|
+
describedBy,
|
|
87
|
+
invalid: Boolean(status && statusTone === 'danger'),
|
|
88
|
+
required: necessity === 'required',
|
|
89
|
+
}}
|
|
90
|
+
>
|
|
91
|
+
<div {...props} {...stylex.props(styles.root)}>
|
|
92
|
+
<label htmlFor={resolvedControlId} {...stylex.props(styles.label)}>
|
|
93
|
+
<span>{label}</span>
|
|
94
|
+
{necessity ? (
|
|
95
|
+
<span
|
|
96
|
+
{...stylex.props(styles.annotation)}
|
|
97
|
+
>{` (${necessity})`}</span>
|
|
98
|
+
) : null}
|
|
99
|
+
</label>
|
|
100
|
+
{children}
|
|
101
|
+
{description ? (
|
|
102
|
+
<p
|
|
103
|
+
id={descriptionId}
|
|
104
|
+
{...stylex.props(styles.message, styles.description)}
|
|
105
|
+
>
|
|
106
|
+
{description}
|
|
107
|
+
</p>
|
|
108
|
+
) : null}
|
|
109
|
+
{status ? (
|
|
110
|
+
<p
|
|
111
|
+
aria-live={statusTone === 'danger' ? 'assertive' : 'polite'}
|
|
112
|
+
id={statusId}
|
|
113
|
+
role={statusTone === 'danger' ? 'alert' : 'status'}
|
|
114
|
+
{...stylex.props(styles.message, styles[statusTone])}
|
|
115
|
+
>
|
|
116
|
+
{status}
|
|
117
|
+
</p>
|
|
118
|
+
) : null}
|
|
119
|
+
</div>
|
|
120
|
+
</FieldContext.Provider>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function useFieldControl() {
|
|
125
|
+
return useContext(FieldContext);
|
|
126
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type {ComponentDoc} from '../docs/types.js';
|
|
2
|
+
|
|
3
|
+
export const gridDoc = {
|
|
4
|
+
name: 'Grid',
|
|
5
|
+
description: 'Arranges content in a fixed, semantic-token-spaced grid.',
|
|
6
|
+
props: [
|
|
7
|
+
{
|
|
8
|
+
name: 'columns',
|
|
9
|
+
description: 'Optional number of columns from 1 through 4.',
|
|
10
|
+
},
|
|
11
|
+
{name: 'gap', description: 'Optional semantic gap token.'},
|
|
12
|
+
],
|
|
13
|
+
inheritedProps: ['HTMLAttributes<HTMLDivElement> except className'],
|
|
14
|
+
example: '<Grid columns={2}><Text>First</Text><Text>Second</Text></Grid>',
|
|
15
|
+
storyId: 'core-grid--default',
|
|
16
|
+
} satisfies ComponentDoc;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as stylex from '@stylexjs/stylex';
|
|
2
|
+
import type {HTMLAttributes} from 'react';
|
|
3
|
+
|
|
4
|
+
import {semanticTokens} from '../authoring.stylex.js';
|
|
5
|
+
import type {Space} from '../Stack/index.js';
|
|
6
|
+
|
|
7
|
+
const styles = stylex.create({
|
|
8
|
+
base: {display: 'grid'},
|
|
9
|
+
columnOne: {gridTemplateColumns: 'repeat(1, minmax(0, 1fr))'},
|
|
10
|
+
columnTwo: {gridTemplateColumns: 'repeat(2, minmax(0, 1fr))'},
|
|
11
|
+
columnThree: {gridTemplateColumns: 'repeat(3, minmax(0, 1fr))'},
|
|
12
|
+
columnFour: {gridTemplateColumns: 'repeat(4, minmax(0, 1fr))'},
|
|
13
|
+
gapXs: {gap: semanticTokens.spacingXs},
|
|
14
|
+
gapSm: {gap: semanticTokens.spacingSm},
|
|
15
|
+
gapMd: {gap: semanticTokens.spacingMd},
|
|
16
|
+
gapLg: {gap: semanticTokens.spacingLg},
|
|
17
|
+
gapXl: {gap: semanticTokens.spacingXl},
|
|
18
|
+
gap2xl: {gap: semanticTokens.spacing2xl},
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export interface GridProps extends Omit<
|
|
22
|
+
HTMLAttributes<HTMLDivElement>,
|
|
23
|
+
'className'
|
|
24
|
+
> {
|
|
25
|
+
readonly columns?: 1 | 2 | 3 | 4;
|
|
26
|
+
readonly gap?: Space;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const columnStyles = {
|
|
30
|
+
1: styles.columnOne,
|
|
31
|
+
2: styles.columnTwo,
|
|
32
|
+
3: styles.columnThree,
|
|
33
|
+
4: styles.columnFour,
|
|
34
|
+
} as const;
|
|
35
|
+
|
|
36
|
+
const gaps = {
|
|
37
|
+
xs: styles.gapXs,
|
|
38
|
+
sm: styles.gapSm,
|
|
39
|
+
md: styles.gapMd,
|
|
40
|
+
lg: styles.gapLg,
|
|
41
|
+
xl: styles.gapXl,
|
|
42
|
+
'2xl': styles.gap2xl,
|
|
43
|
+
} as const;
|
|
44
|
+
|
|
45
|
+
export function Grid({columns = 1, gap = 'md', children, ...props}: GridProps) {
|
|
46
|
+
return (
|
|
47
|
+
<div
|
|
48
|
+
{...props}
|
|
49
|
+
{...stylex.props(styles.base, columnStyles[columns], gaps[gap])}
|
|
50
|
+
>
|
|
51
|
+
{children}
|
|
52
|
+
</div>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {Grid, type GridProps} from './Grid.js';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type {ComponentDoc} from '../docs/types.js';
|
|
2
|
+
|
|
3
|
+
export const headingDoc = {
|
|
4
|
+
name: 'Heading',
|
|
5
|
+
description: 'Renders a native heading at the requested document level.',
|
|
6
|
+
props: [
|
|
7
|
+
{
|
|
8
|
+
name: 'family',
|
|
9
|
+
description:
|
|
10
|
+
'Optional "interface" family, or explicit "display" family for page-level and editorial headings.',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'level',
|
|
14
|
+
description: 'Required native heading level from 1 through 6.',
|
|
15
|
+
required: true,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'size',
|
|
19
|
+
description:
|
|
20
|
+
'Optional semantic size: "page", "section", or "subsection".',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
inheritedProps: ['HTMLAttributes<HTMLHeadingElement> except className'],
|
|
24
|
+
example: '<Heading level={2} size="section">Section title</Heading>',
|
|
25
|
+
storyId: 'core-heading--default',
|
|
26
|
+
} satisfies ComponentDoc;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as stylex from '@stylexjs/stylex';
|
|
2
|
+
import {createElement, type HTMLAttributes} from 'react';
|
|
3
|
+
|
|
4
|
+
import {semanticTokens} from '../authoring.stylex.js';
|
|
5
|
+
|
|
6
|
+
const styles = stylex.create({
|
|
7
|
+
base: {
|
|
8
|
+
color: semanticTokens.colorText,
|
|
9
|
+
fontFamily: semanticTokens.fontFamilyHeading,
|
|
10
|
+
fontWeight: semanticTokens.fontWeightStrong,
|
|
11
|
+
lineHeight: semanticTokens.lineHeightHeading,
|
|
12
|
+
margin: 0,
|
|
13
|
+
},
|
|
14
|
+
page: {fontSize: semanticTokens.fontSize2xl},
|
|
15
|
+
section: {fontSize: semanticTokens.fontSizeXl},
|
|
16
|
+
subsection: {fontSize: semanticTokens.fontSizeLg},
|
|
17
|
+
interface: {fontFamily: semanticTokens.fontFamilyHeading},
|
|
18
|
+
display: {
|
|
19
|
+
fontFamily: semanticTokens.fontFamilyDisplay,
|
|
20
|
+
fontSynthesis: 'none',
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
25
|
+
export type HeadingFamily = 'interface' | 'display';
|
|
26
|
+
|
|
27
|
+
export interface HeadingProps extends Omit<
|
|
28
|
+
HTMLAttributes<HTMLHeadingElement>,
|
|
29
|
+
'className'
|
|
30
|
+
> {
|
|
31
|
+
readonly family?: HeadingFamily;
|
|
32
|
+
readonly level: HeadingLevel;
|
|
33
|
+
readonly size?: 'page' | 'section' | 'subsection';
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function Heading({
|
|
37
|
+
children,
|
|
38
|
+
family = 'interface',
|
|
39
|
+
level,
|
|
40
|
+
size = 'section',
|
|
41
|
+
...props
|
|
42
|
+
}: HeadingProps) {
|
|
43
|
+
return createElement(
|
|
44
|
+
`h${level}`,
|
|
45
|
+
{...props, ...stylex.props(styles.base, styles[size], styles[family])},
|
|
46
|
+
children,
|
|
47
|
+
);
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {Heading, type HeadingFamily, type HeadingProps} from './Heading.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type {ComponentDoc} from '../docs/types.js';
|
|
2
|
+
|
|
3
|
+
export const iconButtonDoc = {
|
|
4
|
+
name: 'IconButton',
|
|
5
|
+
description: 'Triggers an icon-only action with a required accessible label.',
|
|
6
|
+
props: [
|
|
7
|
+
{
|
|
8
|
+
name: 'aria-label',
|
|
9
|
+
description: 'Names the icon-only action.',
|
|
10
|
+
required: true,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'loading',
|
|
14
|
+
description: 'Shows progress and disables native activation.',
|
|
15
|
+
},
|
|
16
|
+
{name: 'size', description: 'Selects the fixed square control size.'},
|
|
17
|
+
{name: 'variant', description: 'Selects a semantic visual emphasis.'},
|
|
18
|
+
],
|
|
19
|
+
inheritedProps: [
|
|
20
|
+
'ButtonHTMLAttributes<HTMLButtonElement> except aria-label and className',
|
|
21
|
+
],
|
|
22
|
+
example: '<IconButton aria-label="Close"><CloseIcon /></IconButton>',
|
|
23
|
+
storyId: 'core-icon-button--default',
|
|
24
|
+
} satisfies ComponentDoc;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ActionControl,
|
|
3
|
+
type ButtonProps,
|
|
4
|
+
type ButtonVariant,
|
|
5
|
+
type ControlSize,
|
|
6
|
+
} from '../Button/index.js';
|
|
7
|
+
|
|
8
|
+
/** Props for an icon-only native action button with a required name. */
|
|
9
|
+
export interface IconButtonProps extends Omit<ButtonProps, 'aria-label'> {
|
|
10
|
+
readonly 'aria-label': string;
|
|
11
|
+
readonly loading?: boolean;
|
|
12
|
+
readonly size?: ControlSize;
|
|
13
|
+
readonly variant?: ButtonVariant;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function IconButton(props: IconButtonProps) {
|
|
17
|
+
return <ActionControl {...props} iconOnly />;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {IconButton, type IconButtonProps} from './IconButton.js';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type {ComponentDoc} from '../docs/types.js';
|
|
2
|
+
|
|
3
|
+
export const metricGridDoc = {
|
|
4
|
+
name: 'MetricGrid',
|
|
5
|
+
description:
|
|
6
|
+
'Presents consumer-supplied labels and values with responsive description-list hierarchy.',
|
|
7
|
+
props: [
|
|
8
|
+
{
|
|
9
|
+
name: 'items',
|
|
10
|
+
description: 'Supplies metric labels, values, and optional detail.',
|
|
11
|
+
required: true,
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
inheritedProps: [
|
|
15
|
+
'HTMLAttributes<HTMLDListElement> except children and className',
|
|
16
|
+
],
|
|
17
|
+
example: '<MetricGrid items={[{label: "Total", value: "24"}]} />',
|
|
18
|
+
storyId: 'core-metric-grid--default',
|
|
19
|
+
} satisfies ComponentDoc;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as stylex from '@stylexjs/stylex';
|
|
2
|
+
import type {HTMLAttributes, ReactNode} from 'react';
|
|
3
|
+
|
|
4
|
+
import {semanticTokens} from '../authoring.stylex.js';
|
|
5
|
+
|
|
6
|
+
const minimumColumnWidth = `calc(${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl} + ${semanticTokens.spacing2xl})`;
|
|
7
|
+
|
|
8
|
+
const styles = stylex.create({
|
|
9
|
+
root: {
|
|
10
|
+
display: 'grid',
|
|
11
|
+
gap: semanticTokens.spacingLg,
|
|
12
|
+
gridTemplateColumns: `repeat(auto-fit, minmax(min(100%, ${minimumColumnWidth}), 1fr))`,
|
|
13
|
+
margin: 0,
|
|
14
|
+
},
|
|
15
|
+
item: {
|
|
16
|
+
backgroundColor: semanticTokens.colorSurface,
|
|
17
|
+
borderColor: semanticTokens.borderDefault,
|
|
18
|
+
borderRadius: semanticTokens.radiusContainer,
|
|
19
|
+
borderStyle: semanticTokens.borderStyle,
|
|
20
|
+
borderWidth: semanticTokens.borderWidth,
|
|
21
|
+
display: 'grid',
|
|
22
|
+
gap: semanticTokens.spacingXs,
|
|
23
|
+
padding: semanticTokens.spacingLg,
|
|
24
|
+
},
|
|
25
|
+
label: {
|
|
26
|
+
color: semanticTokens.colorTextSecondary,
|
|
27
|
+
fontFamily: semanticTokens.fontFamilyBody,
|
|
28
|
+
fontSize: semanticTokens.fontSizeSm,
|
|
29
|
+
},
|
|
30
|
+
value: {
|
|
31
|
+
color: semanticTokens.colorText,
|
|
32
|
+
fontFamily: semanticTokens.fontFamilyHeading,
|
|
33
|
+
fontSize: semanticTokens.fontSizeXl,
|
|
34
|
+
fontWeight: semanticTokens.fontWeightStrong,
|
|
35
|
+
margin: 0,
|
|
36
|
+
},
|
|
37
|
+
detail: {
|
|
38
|
+
color: semanticTokens.colorTextMuted,
|
|
39
|
+
fontFamily: semanticTokens.fontFamilyBody,
|
|
40
|
+
fontSize: semanticTokens.fontSizeSm,
|
|
41
|
+
margin: 0,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export interface MetricGridItem {
|
|
46
|
+
readonly detail?: ReactNode;
|
|
47
|
+
readonly label: ReactNode;
|
|
48
|
+
readonly value: ReactNode;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface MetricGridProps extends Omit<
|
|
52
|
+
HTMLAttributes<HTMLDListElement>,
|
|
53
|
+
'children' | 'className'
|
|
54
|
+
> {
|
|
55
|
+
readonly items: readonly MetricGridItem[];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function MetricGrid({items, ...props}: MetricGridProps) {
|
|
59
|
+
return (
|
|
60
|
+
<dl {...props} {...stylex.props(styles.root)}>
|
|
61
|
+
{items.map((item, index) => (
|
|
62
|
+
<div key={index} {...stylex.props(styles.item)}>
|
|
63
|
+
<dt {...stylex.props(styles.label)}>{item.label}</dt>
|
|
64
|
+
<dd {...stylex.props(styles.value)}>{item.value}</dd>
|
|
65
|
+
{item.detail ? (
|
|
66
|
+
<dd {...stylex.props(styles.detail)}>{item.detail}</dd>
|
|
67
|
+
) : null}
|
|
68
|
+
</div>
|
|
69
|
+
))}
|
|
70
|
+
</dl>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type {ComponentDoc} from '../docs/types.js';
|
|
2
|
+
|
|
3
|
+
export const sectionDoc = {
|
|
4
|
+
name: 'Section',
|
|
5
|
+
description: 'Groups related content in a native section landmark.',
|
|
6
|
+
props: [
|
|
7
|
+
{name: 'padding', description: 'Optional semantic block-padding token.'},
|
|
8
|
+
],
|
|
9
|
+
inheritedProps: ['HTMLAttributes<HTMLElement> except className'],
|
|
10
|
+
example: '<Section aria-label="Preferences"><Text>Content</Text></Section>',
|
|
11
|
+
storyId: 'core-section--default',
|
|
12
|
+
} satisfies ComponentDoc;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as stylex from '@stylexjs/stylex';
|
|
2
|
+
import type {HTMLAttributes} from 'react';
|
|
3
|
+
|
|
4
|
+
import {semanticTokens} from '../authoring.stylex.js';
|
|
5
|
+
import type {Space} from '../Stack/index.js';
|
|
6
|
+
|
|
7
|
+
const styles = stylex.create({
|
|
8
|
+
paddingXs: {paddingBlock: semanticTokens.spacingXs},
|
|
9
|
+
paddingSm: {paddingBlock: semanticTokens.spacingSm},
|
|
10
|
+
paddingMd: {paddingBlock: semanticTokens.spacingMd},
|
|
11
|
+
paddingLg: {paddingBlock: semanticTokens.spacingLg},
|
|
12
|
+
paddingXl: {paddingBlock: semanticTokens.spacingXl},
|
|
13
|
+
padding2xl: {paddingBlock: semanticTokens.spacing2xl},
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const paddings = {
|
|
17
|
+
xs: styles.paddingXs,
|
|
18
|
+
sm: styles.paddingSm,
|
|
19
|
+
md: styles.paddingMd,
|
|
20
|
+
lg: styles.paddingLg,
|
|
21
|
+
xl: styles.paddingXl,
|
|
22
|
+
'2xl': styles.padding2xl,
|
|
23
|
+
} as const;
|
|
24
|
+
|
|
25
|
+
export interface SectionProps extends Omit<
|
|
26
|
+
HTMLAttributes<HTMLElement>,
|
|
27
|
+
'className'
|
|
28
|
+
> {
|
|
29
|
+
readonly padding?: Space;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function Section({children, padding = 'xl', ...props}: SectionProps) {
|
|
33
|
+
return (
|
|
34
|
+
<section {...props} {...stylex.props(paddings[padding])}>
|
|
35
|
+
{children}
|
|
36
|
+
</section>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {Section, type SectionProps} from './Section.js';
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type {ComponentDoc} from '../docs/types.js';
|
|
2
|
+
|
|
3
|
+
export const segmentedControlDoc = {
|
|
4
|
+
name: 'SegmentedControl',
|
|
5
|
+
description:
|
|
6
|
+
'Chooses one supplied option with roving radio-group keyboard behavior.',
|
|
7
|
+
props: [
|
|
8
|
+
{
|
|
9
|
+
name: 'aria-label',
|
|
10
|
+
description:
|
|
11
|
+
'Directly names the radiogroup when no external label is used.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'aria-labelledby',
|
|
15
|
+
description: 'References the element that names the radiogroup.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'defaultValue',
|
|
19
|
+
description:
|
|
20
|
+
'Sets the initial value for uncontrolled selection while preserving roving focus.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'disabled',
|
|
24
|
+
description:
|
|
25
|
+
'Disables every option and removes the group from tab order.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'onValueChange',
|
|
29
|
+
description: 'Receives the next value selected by pointer or keyboard.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'options',
|
|
33
|
+
description: 'Supplies labels, values, and disabled states.',
|
|
34
|
+
required: true,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'orientation',
|
|
38
|
+
description: 'Selects horizontal or vertical arrow-key behavior.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'value',
|
|
42
|
+
description:
|
|
43
|
+
'Controls the current selected value; pointer and keyboard intent is reported through onValueChange.',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
inheritedProps: [
|
|
47
|
+
'HTMLAttributes<HTMLDivElement> except aria-label, aria-labelledby, className, defaultValue, and onChange',
|
|
48
|
+
],
|
|
49
|
+
example: '<SegmentedControl aria-label="Alignment" options={options} />',
|
|
50
|
+
storyId: 'core-segmented-control--default',
|
|
51
|
+
} satisfies ComponentDoc;
|