@jobber/components 8.24.0 → 8.24.2-visual-reg-5479aeb.18
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/ProgressIndicator.d.ts +1 -0
- package/{DescriptionList.js → ProgressIndicator.js} +3 -3
- package/dist/AtlantisThemeContext/AtlantisThemeContext.d.ts +1 -1
- package/dist/AtlantisThemeContext/index.cjs +1 -2
- package/dist/AtlantisThemeContext/index.mjs +1 -2
- package/dist/AtlantisThemeContext/themeStore.d.ts +11 -0
- package/dist/AtlantisThemeContext/types.d.ts +14 -0
- package/dist/AtlantisThemeContext/updateTheme.d.ts +1 -1
- package/dist/AtlantisThemeContext-cjs.js +58 -17
- package/dist/AtlantisThemeContext-es.js +60 -20
- package/dist/Avatar-cjs.js +3 -2
- package/dist/Avatar-es.js +3 -2
- package/dist/BottomSheet-cjs.js +8 -7
- package/dist/BottomSheet-es.js +9 -8
- package/dist/ComboboxChipRemove-es.js +2 -2
- package/dist/DatePicker-es.js +1 -1
- package/dist/Dialog/Dialog.d.ts +47 -3
- package/dist/Dialog/Dialog.types.d.ts +1 -15
- package/dist/Dialog/DialogBottomSheet.d.ts +12 -13
- package/dist/Dialog/DialogModal.d.ts +11 -11
- package/dist/Dialog/dialogComposableShared.d.ts +13 -3
- package/dist/DrawerDescription-cjs.js +4 -97
- package/dist/DrawerDescription-es.js +6 -98
- package/dist/InputNumberExperimental-cjs.js +21 -25
- package/dist/InputNumberExperimental-es.js +22 -26
- package/dist/MenuSubmenuTrigger-es.js +3 -3
- package/dist/Modal/index.cjs +12 -2
- package/dist/Modal/index.mjs +13 -3
- package/dist/ProgressBar/ProgressBar.d.ts +7 -0
- package/dist/ProgressBar-cjs.js +4 -0
- package/dist/ProgressBar-es.js +4 -0
- package/dist/ProgressIndicator/ProgressIndicator.d.ts +60 -0
- package/dist/ProgressIndicator/index.cjs +9 -0
- package/dist/ProgressIndicator/index.d.ts +1 -0
- package/dist/ProgressIndicator/index.mjs +3 -0
- package/dist/ProgressIndicator-cjs.js +43 -0
- package/dist/ProgressIndicator-es.js +41 -0
- package/dist/ScrollAreaViewport-cjs.js +2122 -12
- package/dist/ScrollAreaViewport-es.js +2118 -13
- package/dist/dialogReturnFocus-cjs.js +61 -34
- package/dist/dialogReturnFocus-es.js +63 -36
- package/dist/docs/AtlantisThemeContext/AtlantisThemeContext.md +41 -0
- package/dist/docs/DataTable/DataTable.md +0 -4
- package/dist/docs/Dialog/Dialog.md +1006 -0
- package/dist/docs/Icon/Icon.md +60 -53
- package/dist/docs/InputNumberExperimental/InputNumberExperimental.md +578 -0
- package/dist/docs/ProgressBar/ProgressBar.md +9 -0
- package/dist/docs/ProgressIndicator/ProgressIndicator.md +105 -0
- package/dist/docs/Table/Table.md +1 -3
- package/dist/docs/index.md +3 -1
- package/dist/index.cjs +3 -4
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +2 -3
- package/dist/isTypedArray-es.js +1 -1
- package/dist/primitives/InputNumberExperimental/InputNumberExperimental.d.ts +31 -15
- package/dist/primitives/InputNumberExperimental/types.d.ts +0 -1
- package/dist/styles.css +172 -51
- package/dist/unstyledPrimitives/index.cjs +218 -2230
- package/dist/unstyledPrimitives/index.mjs +224 -2236
- package/dist/useButton-es.js +1 -1
- package/dist/useScrollLock-es.js +2 -2
- package/dist/useScrollToActive-es.js +1 -1
- package/dist/utils/meta/meta.json +1 -1
- package/package.json +7 -7
- package/DescriptionList.d.ts +0 -1
- package/dist/DescriptionList/DescriptionList.d.ts +0 -11
- package/dist/DescriptionList/index.cjs +0 -10
- package/dist/DescriptionList/index.d.ts +0 -1
- package/dist/DescriptionList/index.mjs +0 -4
- package/dist/DescriptionList-cjs.js +0 -14
- package/dist/DescriptionList-es.js +0 -12
- package/dist/docs/DescriptionList/DescriptionList.md +0 -25
- package/dist/updateTheme-cjs.js +0 -20
- package/dist/updateTheme-es.js +0 -18
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Progress Indicator
|
|
2
|
+
|
|
3
|
+
`ProgressIndicator` communicates **determinate** progress — a known fraction of
|
|
4
|
+
a task that has been completed. Use it when you can express progress as
|
|
5
|
+
`value / max`, such as a multi-step setup wizard or a file upload with a known
|
|
6
|
+
total size.
|
|
7
|
+
|
|
8
|
+
For indeterminate activity (loading time or fraction unknown), use
|
|
9
|
+
[ActivityIndicator](../ActivityIndicator/ActivityIndicator.md) instead.
|
|
10
|
+
|
|
11
|
+
Some great use cases for a `ProgressIndicator` include:
|
|
12
|
+
|
|
13
|
+
* Setup wizards, where we know how many steps the user has completed and how
|
|
14
|
+
many steps remain (use `variation="stepped"`).
|
|
15
|
+
* File uploads, where we know the total file size and how much data has already
|
|
16
|
+
been sent (use the default `variation="continuous"`).
|
|
17
|
+
|
|
18
|
+
## Design & usage guidelines
|
|
19
|
+
|
|
20
|
+
The default `ProgressIndicator` size is `base` (16px tall) and can be used in
|
|
21
|
+
most cases. The `small` (8px) and `smaller` (4px) sizes should be used when the
|
|
22
|
+
indicator sits inline with text or in tight surface layouts.
|
|
23
|
+
|
|
24
|
+
`ProgressIndicator` always fills the width of its parent. Layout — including
|
|
25
|
+
inline-vs-block placement — is the consumer's responsibility. Wrap the indicator
|
|
26
|
+
with your own flex / `<Stack>` / `<Box>` container, or pass a `className` /
|
|
27
|
+
`style`, to control the surrounding layout.
|
|
28
|
+
|
|
29
|
+
### Continuous vs. stepped
|
|
30
|
+
|
|
31
|
+
Use `variation="continuous"` (the default) when progress is a smooth value
|
|
32
|
+
between `0` and `max` — for example, a file upload where any percentage is
|
|
33
|
+
meaningful.
|
|
34
|
+
|
|
35
|
+
Use `variation="stepped"` when progress is naturally segmented — for example, a
|
|
36
|
+
multi-step wizard where the user is on step 2 of 5. Stepped renders `max`
|
|
37
|
+
discrete segments and fills the first `value` of them.
|
|
38
|
+
|
|
39
|
+
## Accessibility
|
|
40
|
+
|
|
41
|
+
`ProgressIndicator` announces itself politely to assistive technology:
|
|
42
|
+
|
|
43
|
+
* `role="progressbar"` marks the root element as a progress bar.
|
|
44
|
+
* `aria-valuenow`, `aria-valuemin`, and `aria-valuemax` reflect the current
|
|
45
|
+
progress so screen readers can announce the value as a percentage or ratio
|
|
46
|
+
appropriately.
|
|
47
|
+
* `aria-label` defaults to a localized-as-English template: `"{value}%"` when
|
|
48
|
+
`max === 100` (or `max` is omitted), and `"{value} / {max}"` otherwise. Pass a
|
|
49
|
+
custom `ariaLabel` to localize or to describe the specific activity (e.g.
|
|
50
|
+
`ariaLabel="Uploading file"`).
|
|
51
|
+
|
|
52
|
+
In the stepped variation, the individual segments are presentational `<div>`s
|
|
53
|
+
with no `role` or `aria-*` attributes. The whole indicator announces once as a
|
|
54
|
+
single progressbar — the outer `aria-valuenow` / `aria-valuemax` already carry
|
|
55
|
+
the progress information.
|
|
56
|
+
|
|
57
|
+
The indicator does not participate in the keyboard tab order.
|
|
58
|
+
|
|
59
|
+
### Reduced motion
|
|
60
|
+
|
|
61
|
+
The width transition between `value` updates is intentionally **preserved**
|
|
62
|
+
under
|
|
63
|
+
[`prefers-reduced-motion: reduce`](https://developer.mozilla.org/docs/Web/CSS/@media/prefers-reduced-motion).
|
|
64
|
+
The slide between progress values conveys functional information about progress,
|
|
65
|
+
direction, and magnitude — it is exempt under
|
|
66
|
+
[WCAG 2.3.3 ("Animation from Interactions")](https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions.html).
|
|
67
|
+
Removing the transition would make progress harder to perceive, not easier.
|
|
68
|
+
|
|
69
|
+
## Relationship to ProgressBar
|
|
70
|
+
|
|
71
|
+
The legacy [ProgressBar](../ProgressBar/ProgressBar.md) component remains available
|
|
72
|
+
and unchanged. New code should prefer `ProgressIndicator`. A follow-up change is
|
|
73
|
+
expected to consolidate `ProgressBar` onto `ProgressIndicator`.
|
|
74
|
+
|
|
75
|
+
`ProgressIndicator` renames `ProgressBar`'s props to align with HTML5
|
|
76
|
+
`<progress>` semantics and mobile naming:
|
|
77
|
+
|
|
78
|
+
| `ProgressBar` (legacy) | `ProgressIndicator` (new) |
|
|
79
|
+
| ---------------------- | ------------------------- |
|
|
80
|
+
| `currentStep` | `value` |
|
|
81
|
+
| `totalSteps` | `max` |
|
|
82
|
+
| `variation="progress"` | `variation="continuous"` |
|
|
83
|
+
| `UNSAFE_className` | `className` |
|
|
84
|
+
| `UNSAFE_style` | `style` |
|
|
85
|
+
|
|
86
|
+
## Mobile
|
|
87
|
+
|
|
88
|
+
Mobile (`@jobber/components-native`) has its own `ProgressBar` with a richer
|
|
89
|
+
API. The mobile `ProgressIndicator` counterpart is forthcoming as a separate
|
|
90
|
+
deliverable.
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
## Props
|
|
94
|
+
|
|
95
|
+
### Web
|
|
96
|
+
|
|
97
|
+
| Prop | Type | Required | Default | Description |
|
|
98
|
+
|------|------|----------|---------|-------------|
|
|
99
|
+
| `value` | `number` | Yes | — | Current progress. Expected to be in the range `0..max` inclusive. |
|
|
100
|
+
| `ariaLabel` | `string` | No | — | Accessible label exposed via `aria-label` on the root element. When omitted, defaults to `"{value}%"` when `max === 1... |
|
|
101
|
+
| `className` | `string` | No | — | Custom class name merged onto the root element alongside the component's own classes. |
|
|
102
|
+
| `max` | `number` | No | `100` | Maximum value. Pass `max={4}` with `value={2}` for "2 of 4 steps"; pass `value={75}` for "75%". |
|
|
103
|
+
| `size` | `"base" | "small" | "smaller"` | No | `base` | Visual size. `smaller` renders at 4px tall, `small` at 8px, `base` at 16px. |
|
|
104
|
+
| `style` | `CSSProperties` | No | — | Custom inline styles applied to the root element. |
|
|
105
|
+
| `variation` | `"continuous" | "stepped"` | No | `continuous` | Visual variation: - `continuous` renders a single fill bar driven by `value / max`. - `stepped` renders `max` segment... |
|
package/dist/docs/Table/Table.md
CHANGED
|
@@ -25,9 +25,7 @@ distinctions in dollar amounts, inventory counts, and other key business data.
|
|
|
25
25
|
|
|
26
26
|
To list more complex collections of information (such as multi-line content like
|
|
27
27
|
a detailed property address), you may want to consider the
|
|
28
|
-
[List](../List/List.md) component.
|
|
29
|
-
a 1:1 label-to-data relationship (for example, the issued and due dates on an
|
|
30
|
-
invoice), consider using [DescriptionList](../DescriptionList/DescriptionList.md).
|
|
28
|
+
[List](../List/List.md) component.
|
|
31
29
|
|
|
32
30
|
|
|
33
31
|
## Configuration
|
package/dist/docs/index.md
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
[DataTable](./DataTable/DataTable.md)
|
|
28
28
|
[Datepicker](./Datepicker/Datepicker.md)
|
|
29
29
|
[DatePickerNotes](./DatePickerNotes/DatePickerNotes.md)
|
|
30
|
-
[
|
|
30
|
+
[Dialog](./Dialog/Dialog.md)
|
|
31
31
|
[disabled-states](./disabled-states/disabled-states.md)
|
|
32
32
|
[Disclosure](./Disclosure/Disclosure.md)
|
|
33
33
|
[Divider](./Divider/Divider.md)
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
[InputFile](./InputFile/InputFile.md)
|
|
55
55
|
[InputGroup](./InputGroup/InputGroup.md)
|
|
56
56
|
[InputNumber](./InputNumber/InputNumber.md)
|
|
57
|
+
[InputNumberExperimental](./InputNumberExperimental/InputNumberExperimental.md)
|
|
57
58
|
[InputPhoneNumber](./InputPhoneNumber/InputPhoneNumber.md)
|
|
58
59
|
[InputText](./InputText/InputText.md)
|
|
59
60
|
[InputTime](./InputTime/InputTime.md)
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
[Popover](./Popover/Popover.md)
|
|
74
75
|
[product-vocabulary](./product-vocabulary/product-vocabulary.md)
|
|
75
76
|
[ProgressBar](./ProgressBar/ProgressBar.md)
|
|
77
|
+
[ProgressIndicator](./ProgressIndicator/ProgressIndicator.md)
|
|
76
78
|
[Radii](./Radii/Radii.md)
|
|
77
79
|
[RadioGroup](./RadioGroup/RadioGroup.md)
|
|
78
80
|
[ResponsiveBreakpoint](./ResponsiveBreakpoint/ResponsiveBreakpoint.md)
|
package/dist/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
var ActivityIndicator = require('./ActivityIndicator-cjs.js');
|
|
4
4
|
var AtlantisContext = require('./AtlantisContext-cjs.js');
|
|
5
5
|
var AtlantisThemeContext = require('./AtlantisThemeContext-cjs.js');
|
|
6
|
-
var updateTheme = require('./updateTheme-cjs.js');
|
|
7
6
|
var Autocomplete = require('./Autocomplete-cjs.js');
|
|
8
7
|
var Avatar = require('./Avatar-cjs.js');
|
|
9
8
|
var Banner = require('./Banner-cjs.js');
|
|
@@ -33,7 +32,6 @@ require('@jobber/hooks');
|
|
|
33
32
|
require('./DataTableTable-cjs.js');
|
|
34
33
|
var reactTable = require('@tanstack/react-table');
|
|
35
34
|
var DatePicker = require('./DatePicker-cjs.js');
|
|
36
|
-
var DescriptionList = require('./DescriptionList-cjs.js');
|
|
37
35
|
var dialogReturnFocus = require('./dialogReturnFocus-cjs.js');
|
|
38
36
|
var Disclosure = require('./Disclosure-cjs.js');
|
|
39
37
|
var Divider = require('./Divider-cjs.js');
|
|
@@ -70,6 +68,7 @@ var MultiSelect = require('./MultiSelect-cjs.js');
|
|
|
70
68
|
var Page = require('./Page-cjs.js');
|
|
71
69
|
var Popover = require('./Popover-cjs.js');
|
|
72
70
|
var ProgressBar = require('./ProgressBar-cjs.js');
|
|
71
|
+
var ProgressIndicator = require('./ProgressIndicator-cjs.js');
|
|
73
72
|
var RadioGroup = require('./RadioGroup-cjs.js');
|
|
74
73
|
var ResponsiveSwitcher = require('./ResponsiveSwitcher-cjs.js');
|
|
75
74
|
var LegacySelect = require('./LegacySelect-cjs.js');
|
|
@@ -214,8 +213,8 @@ exports.useAtlantisContext = AtlantisContext.useAtlantisContext;
|
|
|
214
213
|
exports.AtlantisThemeContextProvider = AtlantisThemeContext.AtlantisThemeContextProvider;
|
|
215
214
|
exports.THEME_CHANGE_EVENT = AtlantisThemeContext.THEME_CHANGE_EVENT;
|
|
216
215
|
exports.atlantisThemeContextDefaultValues = AtlantisThemeContext.atlantisThemeContextDefaultValues;
|
|
216
|
+
exports.updateTheme = AtlantisThemeContext.updateTheme;
|
|
217
217
|
exports.useAtlantisTheme = AtlantisThemeContext.useAtlantisTheme;
|
|
218
|
-
exports.updateTheme = updateTheme.updateTheme;
|
|
219
218
|
exports.Autocomplete = Autocomplete.Autocomplete;
|
|
220
219
|
exports.Avatar = Avatar.Avatar;
|
|
221
220
|
exports.Banner = Banner.Banner;
|
|
@@ -248,7 +247,6 @@ Object.defineProperty(exports, "createColumnHelper", {
|
|
|
248
247
|
get: function () { return reactTable.createColumnHelper; }
|
|
249
248
|
});
|
|
250
249
|
exports.DatePicker = DatePicker.DatePicker;
|
|
251
|
-
exports.DescriptionList = DescriptionList.DescriptionList;
|
|
252
250
|
exports.Dialog = dialogReturnFocus.Dialog;
|
|
253
251
|
exports.getDialogReturnFocus = dialogReturnFocus.getDialogReturnFocus;
|
|
254
252
|
exports.getFirstFocusableWithin = dialogReturnFocus.getFirstFocusableWithin;
|
|
@@ -316,6 +314,7 @@ exports.Popover = Popover.Popover;
|
|
|
316
314
|
exports.usePopoverContext = Popover.usePopoverContext;
|
|
317
315
|
exports.usePopoverStyles = Popover.usePopoverStyles;
|
|
318
316
|
exports.ProgressBar = ProgressBar.ProgressBar;
|
|
317
|
+
exports.ProgressIndicator = ProgressIndicator.ProgressIndicator;
|
|
319
318
|
exports.RadioGroup = RadioGroup.RadioGroup;
|
|
320
319
|
exports.RadioOption = RadioGroup.RadioOption;
|
|
321
320
|
exports.ResponsiveSwitcher = ResponsiveSwitcher.ResponsiveSwitcher;
|
package/dist/index.d.mts
CHANGED
|
@@ -23,7 +23,6 @@ export * from "./DataDump";
|
|
|
23
23
|
export * from "./DataList";
|
|
24
24
|
export { DataTable, createColumnHelper } from "./DataTable";
|
|
25
25
|
export * from "./DatePicker";
|
|
26
|
-
export * from "./DescriptionList";
|
|
27
26
|
export * from "./Dialog";
|
|
28
27
|
export * from "./Disclosure";
|
|
29
28
|
export * from "./Divider";
|
|
@@ -60,6 +59,7 @@ export * from "./MultiSelect";
|
|
|
60
59
|
export * from "./Page";
|
|
61
60
|
export * from "./Popover";
|
|
62
61
|
export * from "./ProgressBar";
|
|
62
|
+
export * from "./ProgressIndicator";
|
|
63
63
|
export * from "./RadioGroup";
|
|
64
64
|
export * from "./ResponsiveSwitcher";
|
|
65
65
|
export * from "./LegacySelect";
|
package/dist/index.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ export * from "./DataDump";
|
|
|
23
23
|
export * from "./DataList";
|
|
24
24
|
export { DataTable, createColumnHelper } from "./DataTable";
|
|
25
25
|
export * from "./DatePicker";
|
|
26
|
-
export * from "./DescriptionList";
|
|
27
26
|
export * from "./Dialog";
|
|
28
27
|
export * from "./Disclosure";
|
|
29
28
|
export * from "./Divider";
|
|
@@ -60,6 +59,7 @@ export * from "./MultiSelect";
|
|
|
60
59
|
export * from "./Page";
|
|
61
60
|
export * from "./Popover";
|
|
62
61
|
export * from "./ProgressBar";
|
|
62
|
+
export * from "./ProgressIndicator";
|
|
63
63
|
export * from "./RadioGroup";
|
|
64
64
|
export * from "./ResponsiveSwitcher";
|
|
65
65
|
export * from "./LegacySelect";
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export { A as ActivityIndicator } from './ActivityIndicator-es.js';
|
|
2
2
|
export { A as AtlantisContext, a as atlantisContextDefaultValues, u as useAtlantisContext } from './AtlantisContext-es.js';
|
|
3
|
-
export { A as AtlantisThemeContextProvider, T as THEME_CHANGE_EVENT, a as atlantisThemeContextDefaultValues, u as useAtlantisTheme } from './AtlantisThemeContext-es.js';
|
|
4
|
-
export { u as updateTheme } from './updateTheme-es.js';
|
|
3
|
+
export { A as AtlantisThemeContextProvider, T as THEME_CHANGE_EVENT, a as atlantisThemeContextDefaultValues, b as updateTheme, u as useAtlantisTheme } from './AtlantisThemeContext-es.js';
|
|
5
4
|
export { A as Autocomplete } from './Autocomplete-es.js';
|
|
6
5
|
export { A as Avatar } from './Avatar-es.js';
|
|
7
6
|
export { B as Banner } from './Banner-es.js';
|
|
@@ -31,7 +30,6 @@ import '@jobber/hooks';
|
|
|
31
30
|
import './DataTableTable-es.js';
|
|
32
31
|
export { createColumnHelper } from '@tanstack/react-table';
|
|
33
32
|
export { D as DatePicker } from './DatePicker-es.js';
|
|
34
|
-
export { D as DescriptionList } from './DescriptionList-es.js';
|
|
35
33
|
export { D as Dialog, g as getDialogReturnFocus, a as getFirstFocusableWithin } from './dialogReturnFocus-es.js';
|
|
36
34
|
export { D as Disclosure } from './Disclosure-es.js';
|
|
37
35
|
export { D as Divider } from './Divider-es.js';
|
|
@@ -68,6 +66,7 @@ export { M as MultiSelect } from './MultiSelect-es.js';
|
|
|
68
66
|
export { P as Page } from './Page-es.js';
|
|
69
67
|
export { P as Popover, u as usePopoverContext, a as usePopoverStyles } from './Popover-es.js';
|
|
70
68
|
export { P as ProgressBar } from './ProgressBar-es.js';
|
|
69
|
+
export { P as ProgressIndicator } from './ProgressIndicator-es.js';
|
|
71
70
|
export { R as RadioGroup, a as RadioOption } from './RadioGroup-es.js';
|
|
72
71
|
export { R as ResponsiveSwitcher } from './ResponsiveSwitcher-es.js';
|
|
73
72
|
export { L as LegacySelect, S as Option } from './LegacySelect-es.js';
|
package/dist/isTypedArray-es.js
CHANGED
|
@@ -586,4 +586,4 @@ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedA
|
|
|
586
586
|
|
|
587
587
|
var isTypedArray_1 = isTypedArray;
|
|
588
588
|
|
|
589
|
-
export { _isPrototype as _, isArray_1 as a, isArrayLike_1 as b, isBufferExports as c, isTypedArray_1 as d, _overArg as e, _getNative as f, _Map as g, _toSource as h, isArguments_1 as i,
|
|
589
|
+
export { _isPrototype as _, isArray_1 as a, isArrayLike_1 as b, isBufferExports as c, isTypedArray_1 as d, _overArg as e, _getNative as f, _Map as g, _toSource as h, isArguments_1 as i, _baseUnary as j, isFunction_1 as k, isLength_1 as l, _nodeUtilExports as m };
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import type { Ref } from "react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import type { InputNumberExperimentalAffixCompoundProps, InputNumberExperimentalDescriptionProps, InputNumberExperimentalErrorProps, InputNumberExperimentalFooterProps, InputNumberExperimentalGroupProps, InputNumberExperimentalInputProps, InputNumberExperimentalLabelProps, InputNumberExperimentalLoadingProps, InputNumberExperimentalProps, InputNumberExperimentalRef, InputNumberExperimentalStepButtonProps, InputNumberExperimentalStepperProps, InputNumberExperimentalWrapperProps } from "./types";
|
|
4
|
+
declare function InputNumberExperimentalWrapper({ ref, ...props }: InputNumberExperimentalWrapperProps & {
|
|
5
|
+
readonly ref?: Ref<InputNumberExperimentalRef>;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
|
+
declare namespace InputNumberExperimentalWrapper {
|
|
8
|
+
var displayName: string;
|
|
9
|
+
}
|
|
3
10
|
declare function InputNumberExperimentalGroup({ children, className, style, }: InputNumberExperimentalGroupProps): React.JSX.Element;
|
|
4
11
|
declare namespace InputNumberExperimentalGroup {
|
|
5
12
|
var displayName: string;
|
|
@@ -44,18 +51,27 @@ declare function InputNumberExperimentalAffixCompound({ variation, label, icon,
|
|
|
44
51
|
declare namespace InputNumberExperimentalAffixCompound {
|
|
45
52
|
var displayName: string;
|
|
46
53
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Sugar layer: composes the parts from props. This is the same composition a
|
|
56
|
+
* consumer would write by hand with `<InputNumberExperimental.Wrapper>` and the
|
|
57
|
+
* parts — to customize a single piece, copy this tree and swap that part.
|
|
58
|
+
*/
|
|
59
|
+
declare function InputNumberExperimental({ ref, ...props }: InputNumberExperimentalProps & {
|
|
60
|
+
readonly ref?: Ref<InputNumberExperimentalRef>;
|
|
61
|
+
}): React.JSX.Element;
|
|
62
|
+
declare namespace InputNumberExperimental {
|
|
63
|
+
var displayName: string;
|
|
64
|
+
var Wrapper: typeof InputNumberExperimentalWrapper;
|
|
65
|
+
var Group: typeof InputNumberExperimentalGroup;
|
|
66
|
+
var Footer: typeof InputNumberExperimentalFooter;
|
|
67
|
+
var Input: typeof InputNumberExperimentalInput;
|
|
68
|
+
var Label: typeof InputNumberExperimentalLabel;
|
|
69
|
+
var Description: typeof InputNumberExperimentalDescription;
|
|
70
|
+
var Error: typeof InputNumberExperimentalError;
|
|
71
|
+
var Loading: typeof InputNumberExperimentalLoading;
|
|
72
|
+
var Stepper: typeof InputNumberExperimentalStepper;
|
|
73
|
+
var Increment: typeof InputNumberExperimentalIncrement;
|
|
74
|
+
var Decrement: typeof InputNumberExperimentalDecrement;
|
|
75
|
+
var Affix: typeof InputNumberExperimentalAffixCompound;
|
|
76
|
+
}
|
|
77
|
+
export { InputNumberExperimental };
|
|
@@ -63,7 +63,6 @@ export interface InputNumberExperimentalWrapperProps extends InputNumberExperime
|
|
|
63
63
|
*/
|
|
64
64
|
readonly loading?: boolean;
|
|
65
65
|
readonly max?: number;
|
|
66
|
-
readonly maxLength?: number;
|
|
67
66
|
readonly min?: number;
|
|
68
67
|
readonly name?: string;
|
|
69
68
|
readonly onBlur?: (event?: FocusEvent<HTMLInputElement>) => void;
|
package/dist/styles.css
CHANGED
|
@@ -4055,7 +4055,7 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
|
|
|
4055
4055
|
*/
|
|
4056
4056
|
}
|
|
4057
4057
|
|
|
4058
|
-
.Qf3IFhKJwQ0-:has(~ ._868PDAA3U2M-[data-nested-drawer-open]) {
|
|
4058
|
+
.Qf3IFhKJwQ0-:has(~ .U069n8h0urk- ._868PDAA3U2M-[data-nested-drawer-open]) {
|
|
4059
4059
|
background-color: transparent;
|
|
4060
4060
|
}
|
|
4061
4061
|
|
|
@@ -4154,6 +4154,24 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
|
|
|
4154
4154
|
}
|
|
4155
4155
|
}
|
|
4156
4156
|
|
|
4157
|
+
/*
|
|
4158
|
+
* Positioning container for the popup, spanning the whole screen. Base UI's
|
|
4159
|
+
* Drawer expects the popup to render within a viewport (it enables swipe
|
|
4160
|
+
* handling and touch scroll locking). The popup positions itself (fixed, pinned
|
|
4161
|
+
* to the bottom); the viewport only establishes the full-screen area above the
|
|
4162
|
+
* backdrop.
|
|
4163
|
+
*/
|
|
4164
|
+
|
|
4165
|
+
.U069n8h0urk- {
|
|
4166
|
+
position: fixed;
|
|
4167
|
+
top: 0;
|
|
4168
|
+
right: 0;
|
|
4169
|
+
bottom: 0;
|
|
4170
|
+
left: 0;
|
|
4171
|
+
z-index: 1001;
|
|
4172
|
+
z-index: var(--elevation-modal);
|
|
4173
|
+
}
|
|
4174
|
+
|
|
4157
4175
|
.yL7--3ni8BM- {
|
|
4158
4176
|
display: -ms-flexbox;
|
|
4159
4177
|
display: flex;
|
|
@@ -4176,6 +4194,11 @@ a._7BLGtYNuJOU-.zgRx3ehZ2z8-:hover {
|
|
|
4176
4194
|
line-height: 0;
|
|
4177
4195
|
}
|
|
4178
4196
|
|
|
4197
|
+
.yL7--3ni8BM- p {
|
|
4198
|
+
margin-top: 1px;
|
|
4199
|
+
margin-top: var(--space-minuscule);
|
|
4200
|
+
}
|
|
4201
|
+
|
|
4179
4202
|
.qWsLxPjCBI8- {
|
|
4180
4203
|
display: inline-block;
|
|
4181
4204
|
margin-bottom: 4px;
|
|
@@ -10365,47 +10388,6 @@ h2.react-datepicker__current-month {
|
|
|
10365
10388
|
color: var(--color-heading);
|
|
10366
10389
|
}
|
|
10367
10390
|
|
|
10368
|
-
.BkruJ2-bRWg- {
|
|
10369
|
-
margin: 0;
|
|
10370
|
-
}
|
|
10371
|
-
|
|
10372
|
-
.tpCvfS7kyDQ- {
|
|
10373
|
-
display: -ms-flexbox;
|
|
10374
|
-
display: flex;
|
|
10375
|
-
-ms-flex-wrap: wrap;
|
|
10376
|
-
flex-wrap: wrap;
|
|
10377
|
-
padding: 8px 0;
|
|
10378
|
-
padding: var(--space-small) 0;
|
|
10379
|
-
border-bottom: 1px solid hsl(200, 13%, 87%);
|
|
10380
|
-
border-bottom: var(--border-base) solid var(--color-border);
|
|
10381
|
-
}
|
|
10382
|
-
|
|
10383
|
-
.tpCvfS7kyDQ-:first-child {
|
|
10384
|
-
padding-top: 0;
|
|
10385
|
-
}
|
|
10386
|
-
|
|
10387
|
-
.tpCvfS7kyDQ-:last-child {
|
|
10388
|
-
padding-bottom: 0;
|
|
10389
|
-
border-bottom: none;
|
|
10390
|
-
}
|
|
10391
|
-
|
|
10392
|
-
.tpCvfS7kyDQ- dd {
|
|
10393
|
-
min-width: calc(16px * 7.5);
|
|
10394
|
-
min-width: calc(var(--base-unit) * 7.5);
|
|
10395
|
-
box-sizing: border-box;
|
|
10396
|
-
padding-right: 8px;
|
|
10397
|
-
padding-right: var(--space-small);
|
|
10398
|
-
-webkit-margin-start: 0;
|
|
10399
|
-
margin-left: 0;
|
|
10400
|
-
-ms-flex: 1 1 60%;
|
|
10401
|
-
flex: 1 1 60%;
|
|
10402
|
-
}
|
|
10403
|
-
|
|
10404
|
-
.tpCvfS7kyDQ- dt {
|
|
10405
|
-
-ms-flex: 1 1 40%;
|
|
10406
|
-
flex: 1 1 40%;
|
|
10407
|
-
}
|
|
10408
|
-
|
|
10409
10391
|
/* Dialog Sizes */
|
|
10410
10392
|
.uYYyCR3l6E8- {
|
|
10411
10393
|
--dialog-popup-max-width: 440px;
|
|
@@ -10417,8 +10399,14 @@ h2.react-datepicker__current-month {
|
|
|
10417
10399
|
--dialog-popup-max-width: 1032px;
|
|
10418
10400
|
}
|
|
10419
10401
|
.nJoCr8oWJ7w- {
|
|
10420
|
-
|
|
10421
|
-
|
|
10402
|
+
/* Use 100% (not 100vw) so the popup fills the viewport's scrollable content
|
|
10403
|
+
box rather than the full vw since the vertical scrollbar takes up layout space */
|
|
10404
|
+
--dialog-popup-width: 100%;
|
|
10405
|
+
--dialog-popup-max-width: 100%;
|
|
10406
|
+
/* Always cap the popup to the viewport height for full-screen, regardless of
|
|
10407
|
+
whether any region is sticky. Without this, the "nothing-sticky" scroll
|
|
10408
|
+
composition will not be able to scroll. */
|
|
10409
|
+
--dialog-popup-max-height: 100dvh;
|
|
10422
10410
|
--dialog-popup-min-height: 100dvh;
|
|
10423
10411
|
/* No margins full screen — the viewport also drops its padding-block for
|
|
10424
10412
|
fullScreen (below) so the popup sits flush against every edge. Zeroing the
|
|
@@ -10492,12 +10480,8 @@ h2.react-datepicker__current-month {
|
|
|
10492
10480
|
padding: 0 24px 24px;
|
|
10493
10481
|
padding: 0 var(--space-large) var(--space-large);
|
|
10494
10482
|
}
|
|
10495
|
-
/* Slide the
|
|
10483
|
+
/* Slide the sheet up on open, down on close. */
|
|
10496
10484
|
.vmcZRwOcNMo- {
|
|
10497
|
-
-webkit-transform: translateY(0px);
|
|
10498
|
-
-webkit-transform: translateY(var(--drawer-swipe-movement-y, 0px));
|
|
10499
|
-
transform: translateY(0px);
|
|
10500
|
-
transform: translateY(var(--drawer-swipe-movement-y, 0px));
|
|
10501
10485
|
transition: -webkit-transform 200ms ease;
|
|
10502
10486
|
transition: -webkit-transform var(--timing-base) ease;
|
|
10503
10487
|
transition: transform 200ms ease;
|
|
@@ -10510,12 +10494,44 @@ h2.react-datepicker__current-month {
|
|
|
10510
10494
|
-webkit-transform: translateY(100%);
|
|
10511
10495
|
transform: translateY(100%);
|
|
10512
10496
|
}
|
|
10497
|
+
/*
|
|
10498
|
+
* Only transform the sheet mid-swipe, never while it's just sitting open.
|
|
10499
|
+
* Why it matters: any transform on this element makes its `position: fixed`
|
|
10500
|
+
* children size themselves to the sheet instead of the screen. FilterPicker's
|
|
10501
|
+
* click-away layer is one of those fixed, full-screen children — with a
|
|
10502
|
+
* transform here it shrinks to the sheet's box, so tapping the backdrop misses
|
|
10503
|
+
* it, hits the sheet, and closes the whole sheet instead of just the picker.
|
|
10504
|
+
* A swipe is the one time we need the transform, and there's no open picker to
|
|
10505
|
+
* break then. base-ui adds `data-swiping` and updates the movement variable
|
|
10506
|
+
* while a swipe is happening.
|
|
10507
|
+
*/
|
|
10508
|
+
.vmcZRwOcNMo-[data-swiping] {
|
|
10509
|
+
-webkit-transform: translateY(0px);
|
|
10510
|
+
-webkit-transform: translateY(var(--drawer-swipe-movement-y, 0px));
|
|
10511
|
+
transform: translateY(0px);
|
|
10512
|
+
transform: translateY(var(--drawer-swipe-movement-y, 0px));
|
|
10513
|
+
}
|
|
10513
10514
|
/* Full-screen bottom sheet */
|
|
10514
10515
|
.vmcZRwOcNMo-[data-size="fullScreen"] {
|
|
10515
10516
|
height: 100dvh;
|
|
10516
10517
|
max-height: 100dvh;
|
|
10517
10518
|
border-radius: 0;
|
|
10518
10519
|
}
|
|
10520
|
+
/* The sheet content renders inside a `Drawer.Content` region (`data-drawer-content`,
|
|
10521
|
+
swipe-ignored so a nested floater can catch an outside press). It's a direct
|
|
10522
|
+
child of the popup, so pass the popup's flex column through it — otherwise the
|
|
10523
|
+
Header/ScrollArea/Footer no longer flex against the popup and the scroll region
|
|
10524
|
+
can't fill/scroll (most visibly on fullScreen at 100dvh). */
|
|
10525
|
+
.vmcZRwOcNMo- > [data-drawer-content] {
|
|
10526
|
+
display: -ms-flexbox;
|
|
10527
|
+
display: flex;
|
|
10528
|
+
-ms-flex: 1 1 auto;
|
|
10529
|
+
flex: 1 1 auto;
|
|
10530
|
+
min-height: 0;
|
|
10531
|
+
-ms-flex-direction: column;
|
|
10532
|
+
flex-direction: column;
|
|
10533
|
+
overflow: hidden;
|
|
10534
|
+
}
|
|
10519
10535
|
/* Scroll divider — shown on a sticky Header/Footer only while the scroll region
|
|
10520
10536
|
actually overflows (BaseUI sets `data-has-overflow-y` on the ScrollArea root
|
|
10521
10537
|
when its content overflows). */
|
|
@@ -10584,8 +10600,12 @@ h2.react-datepicker__current-month {
|
|
|
10584
10600
|
background-color: transparent;
|
|
10585
10601
|
backdrop-filter: none;
|
|
10586
10602
|
}
|
|
10587
|
-
/* Bottom sheet backdrop
|
|
10588
|
-
|
|
10603
|
+
/* Bottom sheet backdrop. The sheet popup (`data-dialog-variant="sheet"`) renders
|
|
10604
|
+
inside the drawer viewport, which is the backdrop's following sibling, so
|
|
10605
|
+
target the viewport by its testid then match the sheet popup within it. */
|
|
10606
|
+
[data-testid="ATL-BottomSheet-Backdrop"]:has(
|
|
10607
|
+
~ [data-testid="ATL-BottomSheet-Viewport"] [data-dialog-variant="sheet"]
|
|
10608
|
+
) {
|
|
10589
10609
|
background-color: rgba(121, 119, 114, 0.48);
|
|
10590
10610
|
backdrop-filter: blur(2px);
|
|
10591
10611
|
}
|
|
@@ -13104,6 +13124,107 @@ input.oOrjwubmsVA- {
|
|
|
13104
13124
|
transform: rotate(-45deg);
|
|
13105
13125
|
}
|
|
13106
13126
|
|
|
13127
|
+
/*
|
|
13128
|
+
* ProgressIndicator
|
|
13129
|
+
*
|
|
13130
|
+
* Determinate progress, rendered as a horizontal bar. The component supports
|
|
13131
|
+
* two variations:
|
|
13132
|
+
*
|
|
13133
|
+
* - `continuous` — a single fill element whose width is driven by the
|
|
13134
|
+
* CSS-registered custom property `--progress-indicator--fill-amount` (a <number> from
|
|
13135
|
+
* 0 to 100). The browser interpolates the number during a
|
|
13136
|
+
* `transition: width var(--timing-base) ease-out`.
|
|
13137
|
+
* - `stepped` — N presentational segment children, the first `value` of
|
|
13138
|
+
* which are filled. The outer shell is the flex container.
|
|
13139
|
+
*
|
|
13140
|
+
* Colour tokens mirror ActivityIndicator: fill / filled segments use
|
|
13141
|
+
* --color-interactive--subtle; track / empty segments use
|
|
13142
|
+
* --color-surface--active.
|
|
13143
|
+
*
|
|
13144
|
+
* The width transition is intentionally preserved under
|
|
13145
|
+
* prefers-reduced-motion: reduce because the slide between progress values
|
|
13146
|
+
* conveys functional information about progress (WCAG 2.3.3, "Animation from
|
|
13147
|
+
* Interactions"). Removing it would make progress harder to perceive, not
|
|
13148
|
+
* easier.
|
|
13149
|
+
*/
|
|
13150
|
+
|
|
13151
|
+
/*
|
|
13152
|
+
* Register --progress-indicator--fill-amount so the browser knows it is a real <number>
|
|
13153
|
+
* and can interpolate between values during the width transition. Without
|
|
13154
|
+
* this @property declaration the custom property is treated as an opaque
|
|
13155
|
+
* string and the transition would snap rather than animate smoothly.
|
|
13156
|
+
*/
|
|
13157
|
+
|
|
13158
|
+
@property --progress-indicator--fill-amount {
|
|
13159
|
+
syntax: "<number>";
|
|
13160
|
+
inherits: false;
|
|
13161
|
+
initial-value: 0;
|
|
13162
|
+
}
|
|
13163
|
+
|
|
13164
|
+
.-TBRV1VUsfc- {
|
|
13165
|
+
--progress-indicator--height: 16px;
|
|
13166
|
+
|
|
13167
|
+
width: 100%;
|
|
13168
|
+
height: 16px;
|
|
13169
|
+
height: var(--progress-indicator--height);
|
|
13170
|
+
}
|
|
13171
|
+
|
|
13172
|
+
.MStgN8AhV3s- {
|
|
13173
|
+
--progress-indicator--height: 4px;
|
|
13174
|
+
}
|
|
13175
|
+
|
|
13176
|
+
.iAlYWHjs6JQ- {
|
|
13177
|
+
--progress-indicator--height: 8px;
|
|
13178
|
+
}
|
|
13179
|
+
|
|
13180
|
+
.WWEzA1-OjSM- {
|
|
13181
|
+
--progress-indicator--height: 16px;
|
|
13182
|
+
}
|
|
13183
|
+
|
|
13184
|
+
/* Continuous: the indicator IS the track; the .fill child sits on top. */
|
|
13185
|
+
|
|
13186
|
+
.r9ShSj58V6w- {
|
|
13187
|
+
border-radius: calc(var(--progress-indicator--height) / 2);
|
|
13188
|
+
overflow: hidden;
|
|
13189
|
+
background-color: hsl(40, 9%, 85%);
|
|
13190
|
+
background-color: var(--color-surface--active);
|
|
13191
|
+
}
|
|
13192
|
+
|
|
13193
|
+
.Hsuq8zT-KzY- {
|
|
13194
|
+
width: calc(var(--progress-indicator--fill-amount) * 1%);
|
|
13195
|
+
height: 100%;
|
|
13196
|
+
border-radius: inherit;
|
|
13197
|
+
background-color: hsl(198, 35%, 21%);
|
|
13198
|
+
background-color: var(--color-interactive--subtle);
|
|
13199
|
+
transition: width 200ms ease-out;
|
|
13200
|
+
transition: width var(--timing-base) ease-out;
|
|
13201
|
+
}
|
|
13202
|
+
|
|
13203
|
+
/* Stepped: the indicator IS the flex container; segments are direct children. */
|
|
13204
|
+
|
|
13205
|
+
.FB1e9bL90tI- {
|
|
13206
|
+
display: -ms-flexbox;
|
|
13207
|
+
display: flex;
|
|
13208
|
+
-ms-flex-direction: row;
|
|
13209
|
+
flex-direction: row;
|
|
13210
|
+
gap: 8px;
|
|
13211
|
+
gap: var(--space-small);
|
|
13212
|
+
}
|
|
13213
|
+
|
|
13214
|
+
.bpLIiDGlsCs- {
|
|
13215
|
+
height: 100%;
|
|
13216
|
+
border-radius: calc(var(--progress-indicator--height) / 2);
|
|
13217
|
+
background-color: hsl(40, 9%, 85%);
|
|
13218
|
+
background-color: var(--color-surface--active);
|
|
13219
|
+
-ms-flex: 1 1 0px;
|
|
13220
|
+
flex: 1 1 0;
|
|
13221
|
+
}
|
|
13222
|
+
|
|
13223
|
+
.bpLIiDGlsCs-._0FxmImvY-04- {
|
|
13224
|
+
background-color: hsl(198, 35%, 21%);
|
|
13225
|
+
background-color: var(--color-interactive--subtle);
|
|
13226
|
+
}
|
|
13227
|
+
|
|
13107
13228
|
.KZfSK2vhTyI- {
|
|
13108
13229
|
--radio--checked-thickness: 6px;
|
|
13109
13230
|
--radio-diameter: 20px;
|