@seed-design/react 1.0.6 → 1.1.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/lib/components/ActionButton/ActionButton.cjs +7 -1
- package/lib/components/ActionButton/ActionButton.d.ts +7 -1
- package/lib/components/ActionButton/ActionButton.d.ts.map +1 -1
- package/lib/components/ActionButton/ActionButton.js +7 -1
- package/lib/components/BottomSheet/BottomSheet.cjs +14 -18
- package/lib/components/BottomSheet/BottomSheet.d.ts +12 -19
- package/lib/components/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/lib/components/BottomSheet/BottomSheet.js +14 -18
- package/lib/components/BottomSheet/BottomSheet.namespace.cjs +2 -0
- package/lib/components/BottomSheet/BottomSheet.namespace.d.ts +1 -0
- package/lib/components/BottomSheet/BottomSheet.namespace.d.ts.map +1 -1
- package/lib/components/BottomSheet/BottomSheet.namespace.js +1 -0
- package/lib/components/BottomSheetHandle/BottomSheetHandle.cjs +20 -0
- package/lib/components/BottomSheetHandle/BottomSheetHandle.d.ts +6 -0
- package/lib/components/BottomSheetHandle/BottomSheetHandle.d.ts.map +1 -0
- package/lib/components/BottomSheetHandle/BottomSheetHandle.js +16 -0
- package/lib/components/BottomSheetHandle/index.cjs +9 -0
- package/lib/components/BottomSheetHandle/index.d.ts +2 -0
- package/lib/components/BottomSheetHandle/index.d.ts.map +1 -0
- package/lib/components/BottomSheetHandle/index.js +1 -0
- package/lib/components/Chip/Chip.cjs +4 -3
- package/lib/components/Chip/Chip.d.ts.map +1 -1
- package/lib/components/Chip/Chip.js +4 -3
- package/lib/components/Field/Field.cjs +108 -0
- package/lib/components/Field/Field.d.ts +41 -0
- package/lib/components/Field/Field.d.ts.map +1 -0
- package/lib/components/Field/Field.js +96 -0
- package/lib/components/Field/Field.namespace.cjs +17 -0
- package/lib/components/Field/Field.namespace.d.ts +2 -0
- package/lib/components/Field/Field.namespace.d.ts.map +1 -0
- package/lib/components/Field/Field.namespace.js +1 -0
- package/lib/components/Field/index.cjs +19 -0
- package/lib/components/Field/index.d.ts +3 -0
- package/lib/components/Field/index.d.ts.map +1 -0
- package/lib/components/Field/index.js +3 -0
- package/lib/components/FieldButton/FieldButton.cjs +201 -0
- package/lib/components/FieldButton/FieldButton.d.ts +61 -0
- package/lib/components/FieldButton/FieldButton.d.ts.map +1 -0
- package/lib/components/FieldButton/FieldButton.js +161 -0
- package/lib/components/FieldButton/FieldButton.namespace.cjs +26 -0
- package/lib/components/FieldButton/FieldButton.namespace.d.ts +2 -0
- package/lib/components/FieldButton/FieldButton.namespace.d.ts.map +1 -0
- package/lib/components/FieldButton/FieldButton.namespace.js +1 -0
- package/lib/components/FieldButton/index.cjs +28 -0
- package/lib/components/FieldButton/index.d.ts +3 -0
- package/lib/components/FieldButton/index.d.ts.map +1 -0
- package/lib/components/FieldButton/index.js +3 -0
- package/lib/components/HelpBubble/HelpBubble.d.ts +1 -1
- package/lib/components/List/List.cjs +5 -4
- package/lib/components/List/List.d.ts.map +1 -1
- package/lib/components/List/List.js +5 -4
- package/lib/components/PageBanner/PageBanner.cjs +8 -3
- package/lib/components/PageBanner/PageBanner.d.ts +5 -2
- package/lib/components/PageBanner/PageBanner.d.ts.map +1 -1
- package/lib/components/PageBanner/PageBanner.js +7 -3
- package/lib/components/PageBanner/PageBanner.namespace.cjs +2 -1
- package/lib/components/PageBanner/PageBanner.namespace.d.ts +1 -1
- package/lib/components/PageBanner/PageBanner.namespace.d.ts.map +1 -1
- package/lib/components/PageBanner/PageBanner.namespace.js +1 -1
- package/lib/components/PageBanner/index.cjs +2 -1
- package/lib/components/PageBanner/index.d.ts +1 -1
- package/lib/components/PageBanner/index.d.ts.map +1 -1
- package/lib/components/PageBanner/index.js +1 -1
- package/lib/components/Slider/Slider.cjs +110 -0
- package/lib/components/Slider/Slider.d.ts +51 -0
- package/lib/components/Slider/Slider.d.ts.map +1 -0
- package/lib/components/Slider/Slider.js +94 -0
- package/lib/components/Slider/Slider.namespace.cjs +21 -0
- package/lib/components/Slider/Slider.namespace.d.ts +2 -0
- package/lib/components/Slider/Slider.namespace.d.ts.map +1 -0
- package/lib/components/Slider/Slider.namespace.js +1 -0
- package/lib/components/Slider/index.cjs +23 -0
- package/lib/components/Slider/index.d.ts +3 -0
- package/lib/components/Slider/index.d.ts.map +1 -0
- package/lib/components/Slider/index.js +3 -0
- package/lib/components/TextField/TextField.cjs +54 -74
- package/lib/components/TextField/TextField.d.ts +2 -35
- package/lib/components/TextField/TextField.d.ts.map +1 -1
- package/lib/components/TextField/TextField.js +56 -65
- package/lib/components/TextField/TextField.namespace.cjs +0 -11
- package/lib/components/TextField/TextField.namespace.d.ts +1 -1
- package/lib/components/TextField/TextField.namespace.d.ts.map +1 -1
- package/lib/components/TextField/TextField.namespace.js +1 -1
- package/lib/components/TextField/TextField.test.d.ts +1 -0
- package/lib/components/TextField/TextField.test.d.ts.map +1 -0
- package/lib/components/TextField/index.cjs +2 -11
- package/lib/components/TextField/index.d.ts +2 -1
- package/lib/components/TextField/index.d.ts.map +1 -1
- package/lib/components/TextField/index.js +2 -1
- package/lib/components/TextField/memoize.cjs +18 -0
- package/lib/components/TextField/memoize.d.ts +2 -0
- package/lib/components/TextField/memoize.d.ts.map +1 -0
- package/lib/components/TextField/memoize.js +14 -0
- package/lib/components/TextField/useTextFieldWithGraphemes.cjs +52 -0
- package/lib/components/TextField/useTextFieldWithGraphemes.d.ts +23 -0
- package/lib/components/TextField/useTextFieldWithGraphemes.d.ts.map +1 -0
- package/lib/components/TextField/useTextFieldWithGraphemes.js +48 -0
- package/lib/components/TextField/useTextFieldWithGraphemes.test.d.ts +1 -0
- package/lib/components/TextField/useTextFieldWithGraphemes.test.d.ts.map +1 -0
- package/lib/components/index.cjs +53 -12
- package/lib/components/index.d.ts +3 -0
- package/lib/components/index.d.ts.map +1 -1
- package/lib/components/index.js +12 -2
- package/lib/index.cjs +53 -12
- package/lib/index.js +12 -2
- package/lib/node_modules/unicode-segmenter/_grapheme_data.cjs +23 -0
- package/lib/node_modules/unicode-segmenter/_grapheme_data.js +19 -0
- package/lib/node_modules/unicode-segmenter/_incb_data.cjs +29 -0
- package/lib/node_modules/unicode-segmenter/_incb_data.js +25 -0
- package/lib/node_modules/unicode-segmenter/core.cjs +83 -0
- package/lib/node_modules/unicode-segmenter/core.js +78 -0
- package/lib/node_modules/unicode-segmenter/grapheme.cjs +312 -0
- package/lib/node_modules/unicode-segmenter/grapheme.js +307 -0
- package/lib/primitive.cjs +7 -0
- package/lib/primitive.d.ts +1 -0
- package/lib/primitive.d.ts.map +1 -1
- package/lib/primitive.js +1 -0
- package/lib/utils/createWithStateProps.cjs +8 -4
- package/lib/utils/createWithStateProps.d.ts +6 -3
- package/lib/utils/createWithStateProps.d.ts.map +1 -1
- package/lib/utils/createWithStateProps.js +8 -4
- package/package.json +9 -6
- package/src/components/ActionButton/ActionButton.tsx +21 -2
- package/src/components/BottomSheet/BottomSheet.namespace.ts +5 -0
- package/src/components/BottomSheet/BottomSheet.tsx +24 -38
- package/src/components/BottomSheetHandle/BottomSheetHandle.tsx +22 -0
- package/src/components/BottomSheetHandle/index.ts +1 -0
- package/src/components/Chip/Chip.tsx +4 -3
- package/src/components/Field/Field.namespace.ts +19 -0
- package/src/components/Field/Field.tsx +136 -0
- package/src/components/Field/index.ts +21 -0
- package/src/components/FieldButton/FieldButton.namespace.ts +38 -0
- package/src/components/FieldButton/FieldButton.tsx +249 -0
- package/src/components/FieldButton/index.ts +40 -0
- package/src/components/HelpBubble/HelpBubble.tsx +1 -1
- package/src/components/List/List.tsx +5 -4
- package/src/components/PageBanner/PageBanner.namespace.ts +4 -2
- package/src/components/PageBanner/PageBanner.tsx +10 -3
- package/src/components/PageBanner/index.ts +4 -2
- package/src/components/Slider/Slider.namespace.ts +28 -0
- package/src/components/Slider/Slider.tsx +154 -0
- package/src/components/Slider/index.ts +30 -0
- package/src/components/TextField/TextField.namespace.ts +2 -24
- package/src/components/TextField/TextField.test.tsx +260 -0
- package/src/components/TextField/TextField.tsx +67 -143
- package/src/components/TextField/index.ts +7 -24
- package/src/components/TextField/memoize.ts +14 -0
- package/src/components/TextField/useTextFieldWithGraphemes.test.tsx +301 -0
- package/src/components/TextField/useTextFieldWithGraphemes.ts +65 -0
- package/src/components/index.ts +3 -0
- package/src/primitive.ts +1 -0
- package/src/utils/createWithStateProps.tsx +14 -9
- package/lib/components/List/ListHeader.namespace.d.ts +0 -2
- package/lib/components/List/ListHeader.namespace.d.ts.map +0 -1
- package/src/components/List/ListHeader.namespace.ts +0 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { Primitive, type PrimitiveProps } from "@seed-design/react-primitive";
|
|
2
|
+
import { FieldButton, useFieldButtonContext } from "@seed-design/react-field-button";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { createSlotRecipeContext } from "../../utils/createSlotRecipeContext";
|
|
5
|
+
import { createWithStateProps } from "../../utils/createWithStateProps";
|
|
6
|
+
import { field, type FieldVariantProps } from "@seed-design/css/recipes/field";
|
|
7
|
+
import { fieldLabel, type FieldLabelVariantProps } from "@seed-design/css/recipes/field-label";
|
|
8
|
+
import { InternalIcon, type InternalIconProps } from "../private/Icon";
|
|
9
|
+
import { inputButton } from "@seed-design/css/recipes/input-button";
|
|
10
|
+
import clsx from "clsx";
|
|
11
|
+
|
|
12
|
+
const { withContext: withFieldContext, withProvider: withFieldProvider } =
|
|
13
|
+
createSlotRecipeContext(field);
|
|
14
|
+
const { withProvider, withContext, useClassNames } = createSlotRecipeContext(inputButton);
|
|
15
|
+
const {
|
|
16
|
+
withProvider: withLabelProvider,
|
|
17
|
+
withContext: withLabelContext,
|
|
18
|
+
useClassNames: useLabelClassNames,
|
|
19
|
+
} = createSlotRecipeContext(fieldLabel);
|
|
20
|
+
|
|
21
|
+
const withStateProps = createWithStateProps([useFieldButtonContext]);
|
|
22
|
+
|
|
23
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
24
|
+
|
|
25
|
+
export interface FieldButtonRootProps extends FieldVariantProps, FieldButton.RootProps {}
|
|
26
|
+
|
|
27
|
+
export const FieldButtonRoot = withFieldProvider<HTMLDivElement, FieldButtonRootProps>(
|
|
28
|
+
FieldButton.Root,
|
|
29
|
+
"root",
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
33
|
+
|
|
34
|
+
export interface FieldButtonHeaderProps
|
|
35
|
+
extends PrimitiveProps,
|
|
36
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
37
|
+
|
|
38
|
+
export const FieldButtonHeader = withFieldContext<HTMLDivElement, FieldButtonHeaderProps>(
|
|
39
|
+
withStateProps(Primitive.div),
|
|
40
|
+
"header",
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
export interface FieldButtonLabelProps
|
|
44
|
+
extends PrimitiveProps,
|
|
45
|
+
FieldLabelVariantProps,
|
|
46
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
47
|
+
|
|
48
|
+
export const FieldButtonLabel = withLabelProvider<HTMLDivElement, FieldButtonLabelProps>(
|
|
49
|
+
withStateProps(Primitive.div),
|
|
50
|
+
"root",
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
export interface FieldButtonIndicatorTextProps
|
|
54
|
+
extends PrimitiveProps,
|
|
55
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
56
|
+
|
|
57
|
+
export const FieldButtonIndicatorText = withLabelContext<
|
|
58
|
+
HTMLSpanElement,
|
|
59
|
+
FieldButtonIndicatorTextProps
|
|
60
|
+
>(withStateProps(Primitive.span), "indicatorText");
|
|
61
|
+
|
|
62
|
+
export interface FieldButtonRequiredIndicatorProps extends React.SVGProps<SVGElement> {}
|
|
63
|
+
|
|
64
|
+
export const FieldButtonRequiredIndicator = React.forwardRef<
|
|
65
|
+
SVGSVGElement,
|
|
66
|
+
FieldButtonRequiredIndicatorProps
|
|
67
|
+
>(({ className, ...props }, ref) => {
|
|
68
|
+
const { indicatorIcon } = useLabelClassNames();
|
|
69
|
+
|
|
70
|
+
return (
|
|
71
|
+
<InternalIcon
|
|
72
|
+
svg={
|
|
73
|
+
// biome-ignore lint/a11y/noSvgWithoutTitle: InternalIcon is aria-hidden
|
|
74
|
+
<svg
|
|
75
|
+
viewBox="0 0 6 6"
|
|
76
|
+
fill="none"
|
|
77
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
78
|
+
className={clsx(indicatorIcon, className)}
|
|
79
|
+
>
|
|
80
|
+
<path
|
|
81
|
+
d="M3.75002 1.55859L4.41318 1.09468C4.75243 0.857361 5.21982 0.939865 5.45732 1.27899C5.69499 1.61836 5.61243 2.08615 5.27295 2.32366L4.30763 2.99902L5.27372 3.67612C5.61285 3.91381 5.69517 4.38137 5.45761 4.72059C5.21999 5.0599 4.7523 5.14233 4.41299 4.90471L3.75002 4.44043V5.25C3.75002 5.66421 3.41423 6 3.00002 6C2.5858 6 2.25002 5.66421 2.25002 5.25V4.44043L1.58704 4.90471C1.24773 5.14233 0.780041 5.0599 0.542418 4.72059C0.304856 4.38137 0.387176 3.91381 0.726309 3.67612L1.6924 2.99902L0.727079 2.32366C0.387603 2.08615 0.305043 1.61836 0.542707 1.27899C0.780206 0.939865 1.2476 0.857361 1.58685 1.09468L2.25002 1.55859V0.75C2.25002 0.335786 2.5858 0 3.00002 0C3.41423 0 3.75002 0.335786 3.75002 0.75V1.55859Z"
|
|
82
|
+
fill="currentColor"
|
|
83
|
+
/>
|
|
84
|
+
</svg>
|
|
85
|
+
}
|
|
86
|
+
ref={ref}
|
|
87
|
+
{...props}
|
|
88
|
+
/>
|
|
89
|
+
);
|
|
90
|
+
});
|
|
91
|
+
FieldButtonRequiredIndicator.displayName = "FieldButtonRequiredIndicator";
|
|
92
|
+
|
|
93
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
94
|
+
|
|
95
|
+
export interface FieldButtonPrefixIconProps extends InternalIconProps {}
|
|
96
|
+
|
|
97
|
+
export const FieldButtonPrefixIcon = withContext<SVGSVGElement, FieldButtonPrefixIconProps>(
|
|
98
|
+
withStateProps(InternalIcon),
|
|
99
|
+
"prefixIcon",
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
export interface FieldButtonPrefixTextProps
|
|
103
|
+
extends PrimitiveProps,
|
|
104
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
105
|
+
|
|
106
|
+
export const FieldButtonPrefixText = React.forwardRef<HTMLSpanElement, FieldButtonPrefixTextProps>(
|
|
107
|
+
({ className, ...props }, ref) => {
|
|
108
|
+
const { stateProps } = useFieldButtonContext();
|
|
109
|
+
const { prefixText } = useClassNames();
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<Primitive.span
|
|
113
|
+
className={clsx(prefixText, className)}
|
|
114
|
+
ref={ref}
|
|
115
|
+
aria-hidden
|
|
116
|
+
{...stateProps}
|
|
117
|
+
{...props}
|
|
118
|
+
/>
|
|
119
|
+
);
|
|
120
|
+
},
|
|
121
|
+
);
|
|
122
|
+
FieldButtonPrefixText.displayName = "FieldButtonPrefixText";
|
|
123
|
+
|
|
124
|
+
export interface FieldButtonSuffixIconProps extends InternalIconProps {}
|
|
125
|
+
|
|
126
|
+
export const FieldButtonSuffixIcon = withContext<SVGSVGElement, FieldButtonSuffixIconProps>(
|
|
127
|
+
withStateProps(InternalIcon),
|
|
128
|
+
"suffixIcon",
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
export interface FieldButtonSuffixTextProps
|
|
132
|
+
extends PrimitiveProps,
|
|
133
|
+
React.HTMLAttributes<HTMLSpanElement> {}
|
|
134
|
+
|
|
135
|
+
export const FieldButtonSuffixText = React.forwardRef<HTMLSpanElement, FieldButtonSuffixTextProps>(
|
|
136
|
+
({ className, ...props }, ref) => {
|
|
137
|
+
const { stateProps } = useFieldButtonContext();
|
|
138
|
+
const { suffixText } = useClassNames();
|
|
139
|
+
|
|
140
|
+
return (
|
|
141
|
+
<Primitive.span
|
|
142
|
+
className={clsx(suffixText, className)}
|
|
143
|
+
ref={ref}
|
|
144
|
+
aria-hidden
|
|
145
|
+
{...stateProps}
|
|
146
|
+
{...props}
|
|
147
|
+
/>
|
|
148
|
+
);
|
|
149
|
+
},
|
|
150
|
+
);
|
|
151
|
+
FieldButtonSuffixText.displayName = "FieldButtonSuffixText";
|
|
152
|
+
|
|
153
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
154
|
+
|
|
155
|
+
export interface FieldButtonFooterProps
|
|
156
|
+
extends PrimitiveProps,
|
|
157
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
158
|
+
|
|
159
|
+
export const FieldButtonFooter = withFieldContext<HTMLDivElement, FieldButtonFooterProps>(
|
|
160
|
+
withStateProps(Primitive.div),
|
|
161
|
+
"footer",
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
export interface FieldButtonDescriptionProps extends FieldButton.DescriptionProps {}
|
|
165
|
+
|
|
166
|
+
export const FieldButtonDescription = withFieldContext<
|
|
167
|
+
HTMLSpanElement,
|
|
168
|
+
FieldButtonDescriptionProps
|
|
169
|
+
>(FieldButton.Description, "description");
|
|
170
|
+
|
|
171
|
+
export interface FieldButtonErrorMessageProps extends FieldButton.ErrorMessageProps {}
|
|
172
|
+
|
|
173
|
+
export const FieldButtonErrorMessage = withFieldContext<
|
|
174
|
+
HTMLSpanElement,
|
|
175
|
+
FieldButtonErrorMessageProps
|
|
176
|
+
>(FieldButton.ErrorMessage, "errorMessage");
|
|
177
|
+
|
|
178
|
+
////////////////////////////////////////////////////////////////////////////////////
|
|
179
|
+
|
|
180
|
+
export interface FieldButtonHiddenInputProps extends FieldButton.HiddenInputProps {}
|
|
181
|
+
|
|
182
|
+
export const FieldButtonHiddenInput = FieldButton.HiddenInput;
|
|
183
|
+
|
|
184
|
+
export interface FieldButtonButtonProps extends FieldButton.ButtonProps {}
|
|
185
|
+
|
|
186
|
+
export const FieldButtonButton = withContext<HTMLButtonElement, FieldButtonButtonProps>(
|
|
187
|
+
FieldButton.Button,
|
|
188
|
+
"button",
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
export interface FieldButtonControlProps
|
|
192
|
+
extends PrimitiveProps,
|
|
193
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
194
|
+
|
|
195
|
+
export const FieldButtonControl = withProvider<HTMLDivElement, FieldButtonControlProps>(
|
|
196
|
+
withStateProps(Primitive.div),
|
|
197
|
+
"root",
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
export interface FieldButtonClearButtonProps extends FieldButton.ClearButtonProps {}
|
|
201
|
+
|
|
202
|
+
export const FieldButtonClearButton = withContext<HTMLButtonElement, FieldButtonClearButtonProps>(
|
|
203
|
+
FieldButton.ClearButton,
|
|
204
|
+
"clearButton",
|
|
205
|
+
);
|
|
206
|
+
|
|
207
|
+
export interface FieldButtonValueProps
|
|
208
|
+
extends PrimitiveProps,
|
|
209
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
210
|
+
|
|
211
|
+
export const FieldButtonValue = React.forwardRef<HTMLDivElement, FieldButtonValueProps>(
|
|
212
|
+
({ className, ...props }, ref) => {
|
|
213
|
+
const { stateProps } = useFieldButtonContext();
|
|
214
|
+
const { value } = useClassNames();
|
|
215
|
+
|
|
216
|
+
return (
|
|
217
|
+
<Primitive.div
|
|
218
|
+
className={clsx(value, className)}
|
|
219
|
+
ref={ref}
|
|
220
|
+
aria-hidden
|
|
221
|
+
{...stateProps}
|
|
222
|
+
{...props}
|
|
223
|
+
/>
|
|
224
|
+
);
|
|
225
|
+
},
|
|
226
|
+
);
|
|
227
|
+
FieldButtonValue.displayName = "FieldButtonValue";
|
|
228
|
+
|
|
229
|
+
export interface FieldButtonPlaceholderProps
|
|
230
|
+
extends PrimitiveProps,
|
|
231
|
+
React.HTMLAttributes<HTMLDivElement> {}
|
|
232
|
+
|
|
233
|
+
export const FieldButtonPlaceholder = React.forwardRef<HTMLDivElement, FieldButtonPlaceholderProps>(
|
|
234
|
+
({ className, ...props }, ref) => {
|
|
235
|
+
const { stateProps } = useFieldButtonContext();
|
|
236
|
+
const { placeholder } = useClassNames();
|
|
237
|
+
|
|
238
|
+
return (
|
|
239
|
+
<Primitive.div
|
|
240
|
+
className={clsx(placeholder, className)}
|
|
241
|
+
ref={ref}
|
|
242
|
+
aria-hidden
|
|
243
|
+
{...stateProps}
|
|
244
|
+
{...props}
|
|
245
|
+
/>
|
|
246
|
+
);
|
|
247
|
+
},
|
|
248
|
+
);
|
|
249
|
+
FieldButtonPlaceholder.displayName = "FieldButtonPlaceholder";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export {
|
|
2
|
+
FieldButtonButton,
|
|
3
|
+
FieldButtonClearButton,
|
|
4
|
+
FieldButtonDescription,
|
|
5
|
+
FieldButtonErrorMessage,
|
|
6
|
+
FieldButtonRoot,
|
|
7
|
+
FieldButtonFooter,
|
|
8
|
+
FieldButtonHeader,
|
|
9
|
+
FieldButtonHiddenInput,
|
|
10
|
+
FieldButtonIndicatorText,
|
|
11
|
+
FieldButtonLabel,
|
|
12
|
+
FieldButtonPlaceholder,
|
|
13
|
+
FieldButtonPrefixIcon,
|
|
14
|
+
FieldButtonPrefixText,
|
|
15
|
+
FieldButtonRequiredIndicator,
|
|
16
|
+
FieldButtonControl,
|
|
17
|
+
FieldButtonSuffixIcon,
|
|
18
|
+
FieldButtonSuffixText,
|
|
19
|
+
FieldButtonValue,
|
|
20
|
+
type FieldButtonButtonProps,
|
|
21
|
+
type FieldButtonClearButtonProps,
|
|
22
|
+
type FieldButtonDescriptionProps,
|
|
23
|
+
type FieldButtonErrorMessageProps,
|
|
24
|
+
type FieldButtonRootProps,
|
|
25
|
+
type FieldButtonFooterProps,
|
|
26
|
+
type FieldButtonHeaderProps,
|
|
27
|
+
type FieldButtonHiddenInputProps,
|
|
28
|
+
type FieldButtonIndicatorTextProps,
|
|
29
|
+
type FieldButtonLabelProps,
|
|
30
|
+
type FieldButtonPlaceholderProps,
|
|
31
|
+
type FieldButtonPrefixIconProps,
|
|
32
|
+
type FieldButtonPrefixTextProps,
|
|
33
|
+
type FieldButtonRequiredIndicatorProps,
|
|
34
|
+
type FieldButtonControlProps,
|
|
35
|
+
type FieldButtonSuffixIconProps,
|
|
36
|
+
type FieldButtonSuffixTextProps,
|
|
37
|
+
type FieldButtonValueProps,
|
|
38
|
+
} from "./FieldButton";
|
|
39
|
+
|
|
40
|
+
export * as FieldButton from "./FieldButton.namespace";
|
|
@@ -88,7 +88,7 @@ export const HelpBubbleArrow = withContext<HTMLDivElement, HelpBubbleArrowProps>
|
|
|
88
88
|
export interface HelpBubbleArrowTipProps extends React.SVGProps<SVGSVGElement> {
|
|
89
89
|
/**
|
|
90
90
|
* radius of the arrow tip
|
|
91
|
-
* @default
|
|
91
|
+
* @default 2
|
|
92
92
|
*/
|
|
93
93
|
tipRadius?: number;
|
|
94
94
|
}
|
|
@@ -12,10 +12,11 @@ import { useRadioGroupItemContext } from "@seed-design/react-radio-group";
|
|
|
12
12
|
import { useSwitchContext } from "@seed-design/react-switch";
|
|
13
13
|
|
|
14
14
|
const { withContext, withProvider } = createSlotRecipeContext(listItem);
|
|
15
|
-
const withStateProps = createWithStateProps(
|
|
16
|
-
|
|
17
|
-
{ strict: false },
|
|
18
|
-
|
|
15
|
+
const withStateProps = createWithStateProps([
|
|
16
|
+
{ useContext: useCheckboxContext, strict: false },
|
|
17
|
+
{ useContext: useRadioGroupItemContext, strict: false },
|
|
18
|
+
{ useContext: useSwitchContext, strict: false },
|
|
19
|
+
]);
|
|
19
20
|
|
|
20
21
|
export interface ListRootProps extends VStackProps {}
|
|
21
22
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
export {
|
|
2
|
+
PageBannerBody as Body,
|
|
2
3
|
PageBannerCloseButton as CloseButton,
|
|
3
|
-
|
|
4
|
+
PageBannerContent as Content,
|
|
4
5
|
PageBannerDescription as Description,
|
|
5
6
|
PageBannerButton as Button,
|
|
6
7
|
PageBannerRoot as Root,
|
|
7
8
|
PageBannerTitle as Title,
|
|
9
|
+
type PageBannerBodyProps as BodyProps,
|
|
8
10
|
type PageBannerCloseButtonProps as CloseButtonProps,
|
|
9
|
-
type
|
|
11
|
+
type PageBannerContentProps as ContentProps,
|
|
10
12
|
type PageBannerDescriptionProps as DescriptionProps,
|
|
11
13
|
type PageBannerButtonProps as ButtonProps,
|
|
12
14
|
type PageBannerRootProps as RootProps,
|
|
@@ -18,13 +18,20 @@ export const PageBannerRoot = withProvider<HTMLDivElement, PageBannerRootProps>(
|
|
|
18
18
|
"root",
|
|
19
19
|
);
|
|
20
20
|
|
|
21
|
-
export interface
|
|
21
|
+
export interface PageBannerContentProps
|
|
22
22
|
extends PrimitiveProps,
|
|
23
23
|
React.HTMLAttributes<HTMLDivElement> {}
|
|
24
24
|
|
|
25
|
-
export const
|
|
25
|
+
export const PageBannerContent = withContext<HTMLDivElement, PageBannerContentProps>(
|
|
26
26
|
Primitive.div,
|
|
27
|
-
"
|
|
27
|
+
"content",
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
export interface PageBannerBodyProps extends PrimitiveProps, React.HTMLAttributes<HTMLDivElement> {}
|
|
31
|
+
|
|
32
|
+
export const PageBannerBody = withContext<HTMLDivElement, PageBannerBodyProps>(
|
|
33
|
+
Primitive.div,
|
|
34
|
+
"body",
|
|
28
35
|
);
|
|
29
36
|
|
|
30
37
|
export interface PageBannerTitleProps
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
export {
|
|
2
|
+
PageBannerBody,
|
|
2
3
|
PageBannerCloseButton,
|
|
3
|
-
|
|
4
|
+
PageBannerContent,
|
|
4
5
|
PageBannerDescription,
|
|
5
6
|
PageBannerButton,
|
|
6
7
|
PageBannerRoot,
|
|
7
8
|
PageBannerTitle,
|
|
9
|
+
type PageBannerBodyProps,
|
|
8
10
|
type PageBannerCloseButtonProps,
|
|
9
|
-
type
|
|
11
|
+
type PageBannerContentProps,
|
|
10
12
|
type PageBannerDescriptionProps,
|
|
11
13
|
type PageBannerButtonProps,
|
|
12
14
|
type PageBannerRootProps,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export {
|
|
2
|
+
SliderRoot as Root,
|
|
3
|
+
SliderControl as Control,
|
|
4
|
+
SliderTrack as Track,
|
|
5
|
+
SliderRange as Range,
|
|
6
|
+
SliderThumb as Thumb,
|
|
7
|
+
SliderHiddenInput as HiddenInput,
|
|
8
|
+
SliderTick as Tick,
|
|
9
|
+
SliderMarkers as Markers,
|
|
10
|
+
SliderMarker as Marker,
|
|
11
|
+
SliderValueIndicatorRoot as ValueIndicatorRoot,
|
|
12
|
+
SliderValueIndicatorArrow as ValueIndicatorArrow,
|
|
13
|
+
SliderValueIndicatorArrowTip as ValueIndicatorArrowTip,
|
|
14
|
+
SliderValueIndicatorLabel as ValueIndicatorLabel,
|
|
15
|
+
type SliderRootProps as RootProps,
|
|
16
|
+
type SliderControlProps as ControlProps,
|
|
17
|
+
type SliderTrackProps as TrackProps,
|
|
18
|
+
type SliderRangeProps as RangeProps,
|
|
19
|
+
type SliderThumbProps as ThumbProps,
|
|
20
|
+
type SliderHiddenInputProps as HiddenInputProps,
|
|
21
|
+
type SliderTickProps as TickProps,
|
|
22
|
+
type SliderMarkersProps as MarkersProps,
|
|
23
|
+
type SliderMarkerProps as MarkerProps,
|
|
24
|
+
type SliderValueIndicatorRootProps as ValueIndicatorRootProps,
|
|
25
|
+
type SliderValueIndicatorArrowProps as ValueIndicatorArrowProps,
|
|
26
|
+
type SliderValueIndicatorArrowTipProps as ValueIndicatorArrowTipProps,
|
|
27
|
+
type SliderValueIndicatorLabelProps as ValueIndicatorLabelProps,
|
|
28
|
+
} from "./Slider";
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { slider, type SliderVariantProps } from "@seed-design/css/recipes/slider";
|
|
4
|
+
import { sliderTick, type SliderTickVariantProps } from "@seed-design/css/recipes/slider-tick";
|
|
5
|
+
import {
|
|
6
|
+
sliderMarker,
|
|
7
|
+
type SliderMarkerVariantProps,
|
|
8
|
+
} from "@seed-design/css/recipes/slider-marker";
|
|
9
|
+
import { Primitive, type PrimitiveProps } from "@seed-design/react-primitive";
|
|
10
|
+
import { createSlotRecipeContext } from "../../utils/createSlotRecipeContext";
|
|
11
|
+
import { Slider, useSliderContext } from "@seed-design/react-slider";
|
|
12
|
+
import { forwardRef, useState, type HTMLAttributes } from "react";
|
|
13
|
+
import { createWithStateProps } from "../../utils/createWithStateProps";
|
|
14
|
+
import { createRecipeContext } from "../../utils/createRecipeContext";
|
|
15
|
+
import clsx from "clsx";
|
|
16
|
+
import { mergeProps } from "@seed-design/dom-utils";
|
|
17
|
+
import { useFieldContext } from "@seed-design/react-field";
|
|
18
|
+
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
19
|
+
|
|
20
|
+
const { withProvider, withContext, useClassNames } = createSlotRecipeContext(slider);
|
|
21
|
+
const { withContext: withTickContext } = createRecipeContext(sliderTick);
|
|
22
|
+
const { withContext: withMarkerContext } = createRecipeContext(sliderMarker);
|
|
23
|
+
|
|
24
|
+
const withFieldStateProps = createWithStateProps([{ useContext: useFieldContext, strict: false }]);
|
|
25
|
+
const withStateProps = createWithStateProps([
|
|
26
|
+
useSliderContext,
|
|
27
|
+
{ useContext: useFieldContext, strict: false },
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
export interface SliderRootProps extends SliderVariantProps, Slider.RootProps {}
|
|
31
|
+
|
|
32
|
+
export const SliderRoot = withProvider<HTMLDivElement, SliderRootProps>(Slider.Root, "root");
|
|
33
|
+
|
|
34
|
+
export interface SliderControlProps extends PrimitiveProps, HTMLAttributes<HTMLDivElement> {}
|
|
35
|
+
|
|
36
|
+
export const SliderControl = withContext<HTMLDivElement, SliderControlProps>(
|
|
37
|
+
withStateProps(Primitive.div),
|
|
38
|
+
"control",
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
export interface SliderTrackProps extends PrimitiveProps, HTMLAttributes<HTMLDivElement> {}
|
|
42
|
+
|
|
43
|
+
export const SliderTrack = withContext<HTMLDivElement, SliderTrackProps>(
|
|
44
|
+
withStateProps(Primitive.div),
|
|
45
|
+
"track",
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
export interface SliderRangeProps extends Slider.RangeProps {}
|
|
49
|
+
|
|
50
|
+
export const SliderRange = withContext<HTMLDivElement, SliderRangeProps>(
|
|
51
|
+
withFieldStateProps(Slider.Range),
|
|
52
|
+
"range",
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
export interface SliderThumbProps extends Slider.ThumbProps {}
|
|
56
|
+
|
|
57
|
+
export const SliderThumb = forwardRef<HTMLDivElement, Slider.ThumbProps>(
|
|
58
|
+
({ thumbIndex, className, ...props }, ref) => {
|
|
59
|
+
const classNames = useClassNames();
|
|
60
|
+
|
|
61
|
+
const fieldContext = useFieldContext({ strict: false });
|
|
62
|
+
const mergedProps = mergeProps(fieldContext?.inputAriaAttributes ?? {}, props); // intentionally omits Field stateProps here because each thumb is styled individually
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<Slider.Thumb
|
|
66
|
+
ref={ref}
|
|
67
|
+
className={clsx(classNames.thumb, className)}
|
|
68
|
+
thumbIndex={thumbIndex}
|
|
69
|
+
{...mergedProps}
|
|
70
|
+
/>
|
|
71
|
+
);
|
|
72
|
+
},
|
|
73
|
+
);
|
|
74
|
+
SliderThumb.displayName = "SliderThumb";
|
|
75
|
+
|
|
76
|
+
export interface SliderHiddenInputProps extends Slider.HiddenInputProps {}
|
|
77
|
+
|
|
78
|
+
export const SliderHiddenInput = Slider.HiddenInput;
|
|
79
|
+
|
|
80
|
+
export interface SliderTickProps extends SliderTickVariantProps, Slider.TickProps {}
|
|
81
|
+
|
|
82
|
+
export const SliderTick = withTickContext<HTMLDivElement, SliderTickProps>(Slider.Tick);
|
|
83
|
+
|
|
84
|
+
export interface SliderMarkersProps extends PrimitiveProps, HTMLAttributes<HTMLDivElement> {}
|
|
85
|
+
|
|
86
|
+
export const SliderMarkers = withContext<HTMLDivElement, SliderMarkersProps>(
|
|
87
|
+
withStateProps(Primitive.div),
|
|
88
|
+
"markers",
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
export interface SliderMarkerProps extends SliderMarkerVariantProps, Slider.MarkerProps {}
|
|
92
|
+
|
|
93
|
+
export const SliderMarker = withMarkerContext<HTMLDivElement, SliderMarkerProps>(
|
|
94
|
+
withFieldStateProps(Slider.Marker),
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
export interface SliderValueIndicatorRootProps extends Slider.ValueIndicatorRootProps {}
|
|
98
|
+
|
|
99
|
+
export const SliderValueIndicatorRoot = withContext<HTMLDivElement, SliderValueIndicatorRootProps>(
|
|
100
|
+
Slider.ValueIndicatorRoot,
|
|
101
|
+
"valueIndicatorRoot",
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
export interface SliderValueIndicatorLabelProps extends Slider.ValueIndicatorLabelProps {}
|
|
105
|
+
|
|
106
|
+
export const SliderValueIndicatorLabel = Slider.ValueIndicatorLabel;
|
|
107
|
+
|
|
108
|
+
export interface SliderValueIndicatorArrowProps
|
|
109
|
+
extends PrimitiveProps,
|
|
110
|
+
HTMLAttributes<HTMLDivElement> {}
|
|
111
|
+
|
|
112
|
+
export const SliderValueIndicatorArrow = withContext<
|
|
113
|
+
HTMLDivElement,
|
|
114
|
+
SliderValueIndicatorArrowProps
|
|
115
|
+
>(withStateProps(Primitive.div), "valueIndicatorArrow");
|
|
116
|
+
|
|
117
|
+
export interface SliderValueIndicatorArrowTipProps extends React.SVGProps<SVGSVGElement> {
|
|
118
|
+
/**
|
|
119
|
+
* radius of the arrow tip
|
|
120
|
+
* @default 2
|
|
121
|
+
*/
|
|
122
|
+
tipRadius?: number;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export const SliderValueIndicatorArrowTip = forwardRef<
|
|
126
|
+
SVGSVGElement,
|
|
127
|
+
SliderValueIndicatorArrowTipProps
|
|
128
|
+
>(({ tipRadius = 2, className, ...otherProps }, ref) => {
|
|
129
|
+
const [valueIndicatorArrowTip, setValueIndicatorArrowTip] = useState<SVGSVGElement | null>(null);
|
|
130
|
+
|
|
131
|
+
const width = valueIndicatorArrowTip?.clientWidth ?? 0;
|
|
132
|
+
const height = valueIndicatorArrowTip?.clientHeight ?? 0;
|
|
133
|
+
|
|
134
|
+
const pathData = `M0,0
|
|
135
|
+
H${width}
|
|
136
|
+
L${width / 2 + tipRadius},${height - tipRadius}
|
|
137
|
+
Q${width / 2},${height} ${width / 2 - tipRadius},${height - tipRadius}
|
|
138
|
+
Z`;
|
|
139
|
+
|
|
140
|
+
const classNames = useClassNames();
|
|
141
|
+
|
|
142
|
+
return (
|
|
143
|
+
<svg
|
|
144
|
+
aria-hidden="true"
|
|
145
|
+
viewBox={`0 0 ${width} ${height}`}
|
|
146
|
+
ref={composeRefs(setValueIndicatorArrowTip, ref)}
|
|
147
|
+
className={clsx(classNames.valueIndicatorArrowTip, className)}
|
|
148
|
+
{...otherProps}
|
|
149
|
+
>
|
|
150
|
+
<path stroke="none" d={pathData} />
|
|
151
|
+
</svg>
|
|
152
|
+
);
|
|
153
|
+
});
|
|
154
|
+
SliderValueIndicatorArrowTip.displayName = "SliderValueIndicatorArrowTip";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export {
|
|
2
|
+
SliderRoot,
|
|
3
|
+
SliderControl,
|
|
4
|
+
SliderTrack,
|
|
5
|
+
SliderRange,
|
|
6
|
+
SliderThumb,
|
|
7
|
+
SliderHiddenInput,
|
|
8
|
+
SliderTick,
|
|
9
|
+
SliderMarkers,
|
|
10
|
+
SliderMarker,
|
|
11
|
+
SliderValueIndicatorRoot,
|
|
12
|
+
SliderValueIndicatorArrow,
|
|
13
|
+
SliderValueIndicatorArrowTip,
|
|
14
|
+
SliderValueIndicatorLabel,
|
|
15
|
+
type SliderRootProps,
|
|
16
|
+
type SliderControlProps,
|
|
17
|
+
type SliderTrackProps,
|
|
18
|
+
type SliderRangeProps,
|
|
19
|
+
type SliderThumbProps,
|
|
20
|
+
type SliderHiddenInputProps,
|
|
21
|
+
type SliderTickProps,
|
|
22
|
+
type SliderMarkersProps,
|
|
23
|
+
type SliderMarkerProps,
|
|
24
|
+
type SliderValueIndicatorRootProps,
|
|
25
|
+
type SliderValueIndicatorArrowProps,
|
|
26
|
+
type SliderValueIndicatorArrowTipProps,
|
|
27
|
+
type SliderValueIndicatorLabelProps,
|
|
28
|
+
} from "./Slider";
|
|
29
|
+
|
|
30
|
+
export * as Slider from "./Slider.namespace";
|
|
@@ -1,38 +1,16 @@
|
|
|
1
1
|
export {
|
|
2
|
-
|
|
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,
|
|
2
|
+
TextFieldRoot as Root,
|
|
11
3
|
TextFieldInput as Input,
|
|
12
4
|
TextFieldTextarea as Textarea,
|
|
13
|
-
TextFieldLabel as Label,
|
|
14
|
-
TextFieldMaxCharacterCount as MaxCharacterCount,
|
|
15
5
|
TextFieldPrefixIcon as PrefixIcon,
|
|
16
6
|
TextFieldPrefixText as PrefixText,
|
|
17
|
-
TextFieldRoot as Root,
|
|
18
7
|
TextFieldSuffixIcon as SuffixIcon,
|
|
19
8
|
TextFieldSuffixText as SuffixText,
|
|
20
|
-
type
|
|
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,
|
|
9
|
+
type TextFieldRootProps as RootProps,
|
|
29
10
|
type TextFieldInputProps as InputProps,
|
|
30
11
|
type TextFieldTextareaProps as TextareaProps,
|
|
31
|
-
type TextFieldLabelProps as LabelProps,
|
|
32
|
-
type TextFieldMaxCharacterCountProps as MaxCharacterCountProps,
|
|
33
12
|
type TextFieldPrefixIconProps as PrefixIconProps,
|
|
34
13
|
type TextFieldPrefixTextProps as PrefixTextProps,
|
|
35
|
-
type TextFieldRootProps as RootProps,
|
|
36
14
|
type TextFieldSuffixIconProps as SuffixIconProps,
|
|
37
15
|
type TextFieldSuffixTextProps as SuffixTextProps,
|
|
38
16
|
} from "./TextField";
|