@tinybigui/react 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -17
- package/dist/index.cjs +669 -408
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +9 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +59 -34
- package/dist/index.d.ts +59 -34
- package/dist/index.js +669 -408
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -49,5 +49,13 @@
|
|
|
49
49
|
stroke-dashoffset: -124px;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
@
|
|
52
|
+
@keyframes progress-wave-translate {
|
|
53
|
+
0% {
|
|
54
|
+
transform: translateX(0);
|
|
55
|
+
}
|
|
56
|
+
100% {
|
|
57
|
+
transform: translateX(var(--progress-wave-wavelength, -40px));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
@theme { --animate-progress-linear-indeterminate-1: progress-linear-indeterminate-1 var(--md-sys-motion-duration-long2) var(--md-sys-motion-easing-standard) infinite; --animate-progress-linear-indeterminate-2: progress-linear-indeterminate-2 var(--md-sys-motion-duration-long2) var(--md-sys-motion-easing-standard) infinite; --animate-progress-circular-rotate: progress-circular-rotate var(--md-sys-motion-duration-long4) linear infinite; --animate-progress-circular-dash: progress-circular-dash var(--md-sys-motion-duration-long4) var(--md-sys-motion-easing-standard) infinite; --animate-progress-wave-translate: progress-wave-translate var(--md-sys-motion-duration-extra-long4) linear infinite; }
|
|
53
61
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Progress/Progress.css"],"sourcesContent":["/*\n * Progress Indicator Animations\n * Material Design 3 motion tokens for indeterminate progress states.\n *\n * Keyframes are defined here (co-located with the component) per project\n * convention — they are NOT added to the global tokens.css.\n *\n * Motion tokens referenced (from packages/tokens/src/tokens.css):\n * --md-sys-motion-duration-
|
|
1
|
+
{"version":3,"sources":["../src/components/Progress/Progress.css"],"sourcesContent":["/*\n * Progress Indicator Animations\n * Material Design 3 motion tokens for indeterminate and wavy progress states.\n *\n * Keyframes are defined here (co-located with the component) per project\n * convention — they are NOT added to the global tokens.css.\n *\n * All timing values reference MD3 motion token CSS custom properties.\n * Hardcoded durations are forbidden — use the token vars below.\n *\n * Motion tokens referenced (from packages/tokens/src/tokens.css):\n * --md-sys-motion-duration-long2 : 500ms (linear indeterminate cycle)\n * --md-sys-motion-duration-long4 : 600ms (circular indeterminate rotation)\n * --md-sys-motion-duration-extra-long4 : 1000ms (wave horizontal translation)\n * --md-sys-motion-easing-standard : cubic-bezier(0.2, 0, 0, 1)\n */\n\n/* ---------------------------------------------------------------------------\n LINEAR INDETERMINATE\n Two-segment bar animation per MD3 spec.\n First segment: starts narrow at left, expands, then slides off right.\n Second segment: follows the first with a short delay.\n Duration: long2 = 500ms per cycle (repeating).\n --------------------------------------------------------------------------- */\n\n@keyframes progress-linear-indeterminate-1 {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@keyframes progress-linear-indeterminate-2 {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n\n/* ---------------------------------------------------------------------------\n CIRCULAR INDETERMINATE\n Two-part animation per MD3 spec:\n 1. Container rotation: continuous 360° spin.\n 2. Dash animation: stroke-dasharray pulses between a short and long arc.\n Rotation duration: long4 = 600ms per cycle (repeating).\n --------------------------------------------------------------------------- */\n\n@keyframes progress-circular-rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes progress-circular-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n}\n\n/* ---------------------------------------------------------------------------\n WAVY TRANSLATION\n Horizontal wave motion: the wavy path translates one full wavelength so\n the wave appears to flow continuously.\n Duration: extra-long4 = 1000ms per cycle (repeating).\n --------------------------------------------------------------------------- */\n\n@keyframes progress-wave-translate {\n 0% {\n transform: translateX(0);\n }\n 100% {\n /* Translate exactly one wavelength. The wavelength is baked into the SVG\n path so the visual loop is seamless. The actual translate distance is\n set via --progress-wave-wavelength CSS custom property on the element. */\n transform: translateX(var(--progress-wave-wavelength, -40px));\n }\n}\n\n/* ---------------------------------------------------------------------------\n TAILWIND @theme INTEGRATION\n Register animations so they can be used as Tailwind utilities.\n --------------------------------------------------------------------------- */\n\n@theme {\n --animate-progress-linear-indeterminate-1: progress-linear-indeterminate-1\n var(--md-sys-motion-duration-long2) var(--md-sys-motion-easing-standard) infinite;\n\n --animate-progress-linear-indeterminate-2: progress-linear-indeterminate-2\n var(--md-sys-motion-duration-long2) var(--md-sys-motion-easing-standard) infinite;\n\n --animate-progress-circular-rotate: progress-circular-rotate var(--md-sys-motion-duration-long4)\n linear infinite;\n\n --animate-progress-circular-dash: progress-circular-dash var(--md-sys-motion-duration-long4)\n var(--md-sys-motion-easing-standard) infinite;\n\n --animate-progress-wave-translate: progress-wave-translate\n var(--md-sys-motion-duration-extra-long4) linear infinite;\n}\n"],"mappings":";AAyBA,WAAW;AACT;AACE,UAAM;AACN,WAAO;AACT;AACA;AACE,UAAM;AACN,WAAO;AACT;AACA;AACE,UAAM;AACN,WAAO;AACT;AACF;AAEA,WAAW;AACT;AACE,UAAM;AACN,WAAO;AACT;AACA;AACE,UAAM;AACN,WAAO;AACT;AACA;AACE,UAAM;AACN,WAAO;AACT;AACF;AAUA,WAAW;AACT;AACE,eAAW,OAAO;AACpB;AACA;AACE,eAAW,OAAO;AACpB;AACF;AAEA,WAAW;AACT;AACE,sBAAkB,CAAC,EAAE;AACrB,uBAAmB;AACrB;AACA;AACE,sBAAkB,EAAE,EAAE;AACtB,uBAAmB;AACrB;AACA;AACE,sBAAkB,EAAE,EAAE;AACtB,uBAAmB;AACrB;AACF;AASA,WAAW;AACT;AACE,eAAW,WAAW;AACxB;AACA;AAIE,eAAW,WAAW,IAAI,0BAA0B,EAAE;AACxD;AACF;AAOA,OAAO,EACL,yCAAyC,EAAE,gCACzC,IAAI,gCAAgC,IAAI,iCAAiC,QAAQ,EAEnF,yCAAyC,EAAE,gCACzC,IAAI,gCAAgC,IAAI,iCAAiC,QAAQ,EAEnF,kCAAkC,EAAE,yBAAyB,IAAI,gCAC/D,OAAO,QAAQ,EAEjB,gCAAgC,EAAE,uBAAuB,IAAI,gCAC3D,IAAI,iCAAiC,QAAQ,EAE/C,iCAAiC,EAAE,wBACjC,IAAI,sCAAsC,OAAO,QAAQ;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -2624,25 +2624,25 @@ interface RadioHeadlessProps extends AriaRadioProps {
|
|
|
2624
2624
|
* Material Design 3 Radio Component (Layer 3: Styled)
|
|
2625
2625
|
*
|
|
2626
2626
|
* Built on React Aria for world-class accessibility.
|
|
2627
|
-
*
|
|
2628
|
-
*
|
|
2629
|
-
*
|
|
2627
|
+
* Implements the Variants-vs-States architecture: all interaction/selection/error
|
|
2628
|
+
* states are expressed as data-* attributes on the root and consumed by each
|
|
2629
|
+
* slot via group-data-[x]/radio Tailwind selectors — no state variants in CVA.
|
|
2630
2630
|
*
|
|
2631
2631
|
* Features:
|
|
2632
|
-
* - ✅
|
|
2632
|
+
* - ✅ Unselected / selected states
|
|
2633
|
+
* - ✅ Error/invalid state (via RadioGroup isInvalid)
|
|
2633
2634
|
* - ✅ Ripple effect (Material Design)
|
|
2634
2635
|
* - ✅ Full keyboard accessibility (via React Aria)
|
|
2635
2636
|
* - ✅ Screen reader support (via React Aria)
|
|
2636
|
-
* - ✅ Focus management (
|
|
2637
|
+
* - ✅ Focus management with MD3 focus ring (no animate-pulse)
|
|
2637
2638
|
* - ✅ Form integration (name, value props from RadioGroup)
|
|
2638
2639
|
*
|
|
2639
2640
|
* MD3 Specifications:
|
|
2640
|
-
* - Radio icon:
|
|
2641
|
-
* - Outer circle:
|
|
2642
|
-
* - Inner dot:
|
|
2643
|
-
* -
|
|
2644
|
-
* -
|
|
2645
|
-
* - Disabled: 38% opacity
|
|
2641
|
+
* - Radio icon: 20×20dp (within 40×40dp touch target)
|
|
2642
|
+
* - Outer circle border: 2dp
|
|
2643
|
+
* - Inner dot: 10dp (selected state, scale 0→1)
|
|
2644
|
+
* - State layers: 8% hover, 10% focus/pressed
|
|
2645
|
+
* - Disabled: 38% opacity (on root)
|
|
2646
2646
|
* - Label spacing: 16px (ml-4)
|
|
2647
2647
|
*
|
|
2648
2648
|
* @example
|
|
@@ -2663,11 +2663,6 @@ interface RadioHeadlessProps extends AriaRadioProps {
|
|
|
2663
2663
|
* <Radio value="a">Enabled</Radio>
|
|
2664
2664
|
* <Radio value="b" isDisabled>Disabled</Radio>
|
|
2665
2665
|
* </RadioGroup>
|
|
2666
|
-
*
|
|
2667
|
-
* // Custom styling
|
|
2668
|
-
* <Radio value="custom" className="my-custom-class">
|
|
2669
|
-
* Custom
|
|
2670
|
-
* </Radio>
|
|
2671
2666
|
* ```
|
|
2672
2667
|
*/
|
|
2673
2668
|
declare const Radio: React__default.ForwardRefExoticComponent<RadioProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
@@ -4150,7 +4145,9 @@ declare const HeadlessDrawerItem: React__default.ForwardRefExoticComponent<Headl
|
|
|
4150
4145
|
* Built on React Aria for world-class accessibility.
|
|
4151
4146
|
* Supports four variants: Linear Determinate, Linear Indeterminate,
|
|
4152
4147
|
* Circular Determinate, and Circular Indeterminate.
|
|
4153
|
-
*
|
|
4148
|
+
* Implements MD3 Expressive styling: colorful primary-container track,
|
|
4149
|
+
* 4dp indicator-track gap, fully-rounded segments, thick track option,
|
|
4150
|
+
* and optional wavy shape.
|
|
4154
4151
|
*
|
|
4155
4152
|
* @example
|
|
4156
4153
|
* ```tsx
|
|
@@ -4169,6 +4166,9 @@ declare const HeadlessDrawerItem: React__default.ForwardRefExoticComponent<Headl
|
|
|
4169
4166
|
* // Circular with size
|
|
4170
4167
|
* <Progress type="circular" indeterminate size="small" aria-label="Loading" />
|
|
4171
4168
|
*
|
|
4169
|
+
* // Thick wavy linear (MD3 Expressive)
|
|
4170
|
+
* <Progress type="linear" indeterminate shape="wavy" thickness="thick" aria-label="Loading" />
|
|
4171
|
+
*
|
|
4172
4172
|
* // Custom range
|
|
4173
4173
|
* <Progress type="linear" minValue={0} maxValue={200} value={150} label="Progress" />
|
|
4174
4174
|
* ```
|
|
@@ -4191,6 +4191,22 @@ interface ProgressProps extends AriaProgressBarProps {
|
|
|
4191
4191
|
* @default "medium"
|
|
4192
4192
|
*/
|
|
4193
4193
|
size?: "small" | "medium" | "large";
|
|
4194
|
+
/**
|
|
4195
|
+
* Visual shape of the progress indicator.
|
|
4196
|
+
* - `"flat"` — standard rounded rectangular/circular track.
|
|
4197
|
+
* - `"wavy"` — MD3 Expressive sine-wave active indicator.
|
|
4198
|
+
* Increases linear container height to accommodate wave amplitude.
|
|
4199
|
+
* Reduced-motion users receive a flat fallback automatically.
|
|
4200
|
+
* @default "flat"
|
|
4201
|
+
*/
|
|
4202
|
+
shape?: "flat" | "wavy";
|
|
4203
|
+
/**
|
|
4204
|
+
* Track thickness.
|
|
4205
|
+
* - `"default"` — 4dp per MD3 baseline spec.
|
|
4206
|
+
* - `"thick"` — 8dp MD3 Expressive variant (fully rounded, `trackCornerRadius` = 4dp).
|
|
4207
|
+
* @default "default"
|
|
4208
|
+
*/
|
|
4209
|
+
thickness?: "default" | "thick";
|
|
4194
4210
|
/**
|
|
4195
4211
|
* Additional CSS classes (Tailwind).
|
|
4196
4212
|
*/
|
|
@@ -4206,7 +4222,7 @@ interface ProgressProps extends AriaProgressBarProps {
|
|
|
4206
4222
|
* type="linear"
|
|
4207
4223
|
* value={50}
|
|
4208
4224
|
* label="Upload"
|
|
4209
|
-
* renderProgress={({ percentage }) => (
|
|
4225
|
+
* renderProgress={({ percentage, shape, thickness }) => (
|
|
4210
4226
|
* <div style={{ width: `${percentage}%` }} />
|
|
4211
4227
|
* )}
|
|
4212
4228
|
* />
|
|
@@ -4228,6 +4244,16 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4228
4244
|
* @default "medium"
|
|
4229
4245
|
*/
|
|
4230
4246
|
size?: "small" | "medium" | "large";
|
|
4247
|
+
/**
|
|
4248
|
+
* Visual shape of the progress indicator.
|
|
4249
|
+
* @default "flat"
|
|
4250
|
+
*/
|
|
4251
|
+
shape?: "flat" | "wavy";
|
|
4252
|
+
/**
|
|
4253
|
+
* Track thickness.
|
|
4254
|
+
* @default "default"
|
|
4255
|
+
*/
|
|
4256
|
+
thickness?: "default" | "thick";
|
|
4231
4257
|
/**
|
|
4232
4258
|
* Additional CSS classes.
|
|
4233
4259
|
*/
|
|
@@ -4245,6 +4271,8 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4245
4271
|
isIndeterminate: boolean;
|
|
4246
4272
|
type: "linear" | "circular";
|
|
4247
4273
|
size: "small" | "medium" | "large";
|
|
4274
|
+
shape: "flat" | "wavy";
|
|
4275
|
+
thickness: "default" | "thick";
|
|
4248
4276
|
}) => React__default.ReactNode;
|
|
4249
4277
|
}
|
|
4250
4278
|
|
|
@@ -4252,23 +4280,20 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4252
4280
|
* Material Design 3 Progress Indicator (Layer 3: Styled)
|
|
4253
4281
|
*
|
|
4254
4282
|
* Built on React Aria for world-class accessibility.
|
|
4255
|
-
*
|
|
4283
|
+
* Implements MD3 Expressive spec:
|
|
4284
|
+
* - Colorful track: primary-container (inactive), primary (active)
|
|
4285
|
+
* - 4dp indicator-track gap (linear + circular)
|
|
4286
|
+
* - Fully-rounded segments
|
|
4287
|
+
* - Optional thick (8dp) track
|
|
4288
|
+
* - Optional wavy shape with amplitude ramp
|
|
4289
|
+
* - useReducedMotion guard: wavy falls back to flat when reduced-motion is set
|
|
4290
|
+
*
|
|
4291
|
+
* Four variants driven by `type` × `indeterminate`:
|
|
4256
4292
|
* - Linear Determinate
|
|
4257
4293
|
* - Linear Indeterminate
|
|
4258
4294
|
* - Circular Determinate
|
|
4259
4295
|
* - Circular Indeterminate
|
|
4260
4296
|
*
|
|
4261
|
-
* MD3 Specifications:
|
|
4262
|
-
* - Linear track height: 4dp (h-1)
|
|
4263
|
-
* - Linear track shape: rounded-full
|
|
4264
|
-
* - Circular default size: 48dp (medium)
|
|
4265
|
-
* - Circular stroke width: 4dp (SVG attribute)
|
|
4266
|
-
* - Active track: primary
|
|
4267
|
-
* - Inactive track: surface-container-highest
|
|
4268
|
-
* - Determinate transitions: duration-medium4 + ease-standard
|
|
4269
|
-
* - Indeterminate linear cycle: duration-long2
|
|
4270
|
-
* - Indeterminate circular rotation: duration-long4
|
|
4271
|
-
*
|
|
4272
4297
|
* @example
|
|
4273
4298
|
* ```tsx
|
|
4274
4299
|
* // Linear determinate
|
|
@@ -4283,8 +4308,8 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4283
4308
|
* // Circular indeterminate
|
|
4284
4309
|
* <Progress type="circular" indeterminate aria-label="Loading" />
|
|
4285
4310
|
*
|
|
4286
|
-
* //
|
|
4287
|
-
* <Progress type="
|
|
4311
|
+
* // Thick wavy (MD3 Expressive)
|
|
4312
|
+
* <Progress type="linear" indeterminate shape="wavy" thickness="thick" aria-label="Loading" />
|
|
4288
4313
|
* ```
|
|
4289
4314
|
*/
|
|
4290
4315
|
declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
@@ -4300,7 +4325,7 @@ declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps &
|
|
|
4300
4325
|
* - Determinate and indeterminate progress support
|
|
4301
4326
|
* - Internationalized value label formatting via React Aria
|
|
4302
4327
|
* - Label linkage via aria-labelledby / aria-label
|
|
4303
|
-
* - Render prop for custom visual rendering
|
|
4328
|
+
* - Render prop for custom visual rendering (receives shape + thickness)
|
|
4304
4329
|
*
|
|
4305
4330
|
* @example
|
|
4306
4331
|
* ```tsx
|
|
@@ -4308,7 +4333,7 @@ declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps &
|
|
|
4308
4333
|
* <ProgressHeadless
|
|
4309
4334
|
* value={50}
|
|
4310
4335
|
* label="Upload"
|
|
4311
|
-
* renderProgress={({ percentage }) => (
|
|
4336
|
+
* renderProgress={({ percentage, shape, thickness }) => (
|
|
4312
4337
|
* <div style={{ width: `${percentage}%` }} />
|
|
4313
4338
|
* )}
|
|
4314
4339
|
* />
|
package/dist/index.d.ts
CHANGED
|
@@ -2624,25 +2624,25 @@ interface RadioHeadlessProps extends AriaRadioProps {
|
|
|
2624
2624
|
* Material Design 3 Radio Component (Layer 3: Styled)
|
|
2625
2625
|
*
|
|
2626
2626
|
* Built on React Aria for world-class accessibility.
|
|
2627
|
-
*
|
|
2628
|
-
*
|
|
2629
|
-
*
|
|
2627
|
+
* Implements the Variants-vs-States architecture: all interaction/selection/error
|
|
2628
|
+
* states are expressed as data-* attributes on the root and consumed by each
|
|
2629
|
+
* slot via group-data-[x]/radio Tailwind selectors — no state variants in CVA.
|
|
2630
2630
|
*
|
|
2631
2631
|
* Features:
|
|
2632
|
-
* - ✅
|
|
2632
|
+
* - ✅ Unselected / selected states
|
|
2633
|
+
* - ✅ Error/invalid state (via RadioGroup isInvalid)
|
|
2633
2634
|
* - ✅ Ripple effect (Material Design)
|
|
2634
2635
|
* - ✅ Full keyboard accessibility (via React Aria)
|
|
2635
2636
|
* - ✅ Screen reader support (via React Aria)
|
|
2636
|
-
* - ✅ Focus management (
|
|
2637
|
+
* - ✅ Focus management with MD3 focus ring (no animate-pulse)
|
|
2637
2638
|
* - ✅ Form integration (name, value props from RadioGroup)
|
|
2638
2639
|
*
|
|
2639
2640
|
* MD3 Specifications:
|
|
2640
|
-
* - Radio icon:
|
|
2641
|
-
* - Outer circle:
|
|
2642
|
-
* - Inner dot:
|
|
2643
|
-
* -
|
|
2644
|
-
* -
|
|
2645
|
-
* - Disabled: 38% opacity
|
|
2641
|
+
* - Radio icon: 20×20dp (within 40×40dp touch target)
|
|
2642
|
+
* - Outer circle border: 2dp
|
|
2643
|
+
* - Inner dot: 10dp (selected state, scale 0→1)
|
|
2644
|
+
* - State layers: 8% hover, 10% focus/pressed
|
|
2645
|
+
* - Disabled: 38% opacity (on root)
|
|
2646
2646
|
* - Label spacing: 16px (ml-4)
|
|
2647
2647
|
*
|
|
2648
2648
|
* @example
|
|
@@ -2663,11 +2663,6 @@ interface RadioHeadlessProps extends AriaRadioProps {
|
|
|
2663
2663
|
* <Radio value="a">Enabled</Radio>
|
|
2664
2664
|
* <Radio value="b" isDisabled>Disabled</Radio>
|
|
2665
2665
|
* </RadioGroup>
|
|
2666
|
-
*
|
|
2667
|
-
* // Custom styling
|
|
2668
|
-
* <Radio value="custom" className="my-custom-class">
|
|
2669
|
-
* Custom
|
|
2670
|
-
* </Radio>
|
|
2671
2666
|
* ```
|
|
2672
2667
|
*/
|
|
2673
2668
|
declare const Radio: React__default.ForwardRefExoticComponent<RadioProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
@@ -4150,7 +4145,9 @@ declare const HeadlessDrawerItem: React__default.ForwardRefExoticComponent<Headl
|
|
|
4150
4145
|
* Built on React Aria for world-class accessibility.
|
|
4151
4146
|
* Supports four variants: Linear Determinate, Linear Indeterminate,
|
|
4152
4147
|
* Circular Determinate, and Circular Indeterminate.
|
|
4153
|
-
*
|
|
4148
|
+
* Implements MD3 Expressive styling: colorful primary-container track,
|
|
4149
|
+
* 4dp indicator-track gap, fully-rounded segments, thick track option,
|
|
4150
|
+
* and optional wavy shape.
|
|
4154
4151
|
*
|
|
4155
4152
|
* @example
|
|
4156
4153
|
* ```tsx
|
|
@@ -4169,6 +4166,9 @@ declare const HeadlessDrawerItem: React__default.ForwardRefExoticComponent<Headl
|
|
|
4169
4166
|
* // Circular with size
|
|
4170
4167
|
* <Progress type="circular" indeterminate size="small" aria-label="Loading" />
|
|
4171
4168
|
*
|
|
4169
|
+
* // Thick wavy linear (MD3 Expressive)
|
|
4170
|
+
* <Progress type="linear" indeterminate shape="wavy" thickness="thick" aria-label="Loading" />
|
|
4171
|
+
*
|
|
4172
4172
|
* // Custom range
|
|
4173
4173
|
* <Progress type="linear" minValue={0} maxValue={200} value={150} label="Progress" />
|
|
4174
4174
|
* ```
|
|
@@ -4191,6 +4191,22 @@ interface ProgressProps extends AriaProgressBarProps {
|
|
|
4191
4191
|
* @default "medium"
|
|
4192
4192
|
*/
|
|
4193
4193
|
size?: "small" | "medium" | "large";
|
|
4194
|
+
/**
|
|
4195
|
+
* Visual shape of the progress indicator.
|
|
4196
|
+
* - `"flat"` — standard rounded rectangular/circular track.
|
|
4197
|
+
* - `"wavy"` — MD3 Expressive sine-wave active indicator.
|
|
4198
|
+
* Increases linear container height to accommodate wave amplitude.
|
|
4199
|
+
* Reduced-motion users receive a flat fallback automatically.
|
|
4200
|
+
* @default "flat"
|
|
4201
|
+
*/
|
|
4202
|
+
shape?: "flat" | "wavy";
|
|
4203
|
+
/**
|
|
4204
|
+
* Track thickness.
|
|
4205
|
+
* - `"default"` — 4dp per MD3 baseline spec.
|
|
4206
|
+
* - `"thick"` — 8dp MD3 Expressive variant (fully rounded, `trackCornerRadius` = 4dp).
|
|
4207
|
+
* @default "default"
|
|
4208
|
+
*/
|
|
4209
|
+
thickness?: "default" | "thick";
|
|
4194
4210
|
/**
|
|
4195
4211
|
* Additional CSS classes (Tailwind).
|
|
4196
4212
|
*/
|
|
@@ -4206,7 +4222,7 @@ interface ProgressProps extends AriaProgressBarProps {
|
|
|
4206
4222
|
* type="linear"
|
|
4207
4223
|
* value={50}
|
|
4208
4224
|
* label="Upload"
|
|
4209
|
-
* renderProgress={({ percentage }) => (
|
|
4225
|
+
* renderProgress={({ percentage, shape, thickness }) => (
|
|
4210
4226
|
* <div style={{ width: `${percentage}%` }} />
|
|
4211
4227
|
* )}
|
|
4212
4228
|
* />
|
|
@@ -4228,6 +4244,16 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4228
4244
|
* @default "medium"
|
|
4229
4245
|
*/
|
|
4230
4246
|
size?: "small" | "medium" | "large";
|
|
4247
|
+
/**
|
|
4248
|
+
* Visual shape of the progress indicator.
|
|
4249
|
+
* @default "flat"
|
|
4250
|
+
*/
|
|
4251
|
+
shape?: "flat" | "wavy";
|
|
4252
|
+
/**
|
|
4253
|
+
* Track thickness.
|
|
4254
|
+
* @default "default"
|
|
4255
|
+
*/
|
|
4256
|
+
thickness?: "default" | "thick";
|
|
4231
4257
|
/**
|
|
4232
4258
|
* Additional CSS classes.
|
|
4233
4259
|
*/
|
|
@@ -4245,6 +4271,8 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4245
4271
|
isIndeterminate: boolean;
|
|
4246
4272
|
type: "linear" | "circular";
|
|
4247
4273
|
size: "small" | "medium" | "large";
|
|
4274
|
+
shape: "flat" | "wavy";
|
|
4275
|
+
thickness: "default" | "thick";
|
|
4248
4276
|
}) => React__default.ReactNode;
|
|
4249
4277
|
}
|
|
4250
4278
|
|
|
@@ -4252,23 +4280,20 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4252
4280
|
* Material Design 3 Progress Indicator (Layer 3: Styled)
|
|
4253
4281
|
*
|
|
4254
4282
|
* Built on React Aria for world-class accessibility.
|
|
4255
|
-
*
|
|
4283
|
+
* Implements MD3 Expressive spec:
|
|
4284
|
+
* - Colorful track: primary-container (inactive), primary (active)
|
|
4285
|
+
* - 4dp indicator-track gap (linear + circular)
|
|
4286
|
+
* - Fully-rounded segments
|
|
4287
|
+
* - Optional thick (8dp) track
|
|
4288
|
+
* - Optional wavy shape with amplitude ramp
|
|
4289
|
+
* - useReducedMotion guard: wavy falls back to flat when reduced-motion is set
|
|
4290
|
+
*
|
|
4291
|
+
* Four variants driven by `type` × `indeterminate`:
|
|
4256
4292
|
* - Linear Determinate
|
|
4257
4293
|
* - Linear Indeterminate
|
|
4258
4294
|
* - Circular Determinate
|
|
4259
4295
|
* - Circular Indeterminate
|
|
4260
4296
|
*
|
|
4261
|
-
* MD3 Specifications:
|
|
4262
|
-
* - Linear track height: 4dp (h-1)
|
|
4263
|
-
* - Linear track shape: rounded-full
|
|
4264
|
-
* - Circular default size: 48dp (medium)
|
|
4265
|
-
* - Circular stroke width: 4dp (SVG attribute)
|
|
4266
|
-
* - Active track: primary
|
|
4267
|
-
* - Inactive track: surface-container-highest
|
|
4268
|
-
* - Determinate transitions: duration-medium4 + ease-standard
|
|
4269
|
-
* - Indeterminate linear cycle: duration-long2
|
|
4270
|
-
* - Indeterminate circular rotation: duration-long4
|
|
4271
|
-
*
|
|
4272
4297
|
* @example
|
|
4273
4298
|
* ```tsx
|
|
4274
4299
|
* // Linear determinate
|
|
@@ -4283,8 +4308,8 @@ interface ProgressHeadlessProps extends AriaProgressBarProps {
|
|
|
4283
4308
|
* // Circular indeterminate
|
|
4284
4309
|
* <Progress type="circular" indeterminate aria-label="Loading" />
|
|
4285
4310
|
*
|
|
4286
|
-
* //
|
|
4287
|
-
* <Progress type="
|
|
4311
|
+
* // Thick wavy (MD3 Expressive)
|
|
4312
|
+
* <Progress type="linear" indeterminate shape="wavy" thickness="thick" aria-label="Loading" />
|
|
4288
4313
|
* ```
|
|
4289
4314
|
*/
|
|
4290
4315
|
declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
@@ -4300,7 +4325,7 @@ declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps &
|
|
|
4300
4325
|
* - Determinate and indeterminate progress support
|
|
4301
4326
|
* - Internationalized value label formatting via React Aria
|
|
4302
4327
|
* - Label linkage via aria-labelledby / aria-label
|
|
4303
|
-
* - Render prop for custom visual rendering
|
|
4328
|
+
* - Render prop for custom visual rendering (receives shape + thickness)
|
|
4304
4329
|
*
|
|
4305
4330
|
* @example
|
|
4306
4331
|
* ```tsx
|
|
@@ -4308,7 +4333,7 @@ declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps &
|
|
|
4308
4333
|
* <ProgressHeadless
|
|
4309
4334
|
* value={50}
|
|
4310
4335
|
* label="Upload"
|
|
4311
|
-
* renderProgress={({ percentage }) => (
|
|
4336
|
+
* renderProgress={({ percentage, shape, thickness }) => (
|
|
4312
4337
|
* <div style={{ width: `${percentage}%` }} />
|
|
4313
4338
|
* )}
|
|
4314
4339
|
* />
|