@lumx/react 3.20.1-alpha.29 → 3.20.1-alpha.30
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/_internal/Button-4b67daa8.js +98 -0
- package/_internal/Button-4b67daa8.js.map +1 -0
- package/_internal/ButtonRoot-a70baf82.js +118 -0
- package/_internal/ButtonRoot-a70baf82.js.map +1 -0
- package/_internal/Chip-70af04b4.js +144 -0
- package/_internal/Chip-70af04b4.js.map +1 -0
- package/_internal/ClickAwayProvider-1204f237.js +95 -0
- package/_internal/ClickAwayProvider-1204f237.js.map +1 -0
- package/_internal/DisabledStateContext-ea04260d.js +29 -0
- package/_internal/DisabledStateContext-ea04260d.js.map +1 -0
- package/_internal/HeadingLevelProvider-ebdcb0c7.js +61 -0
- package/_internal/HeadingLevelProvider-ebdcb0c7.js.map +1 -0
- package/_internal/IconButton-8d61f5be.js +77 -0
- package/_internal/IconButton-8d61f5be.js.map +1 -0
- package/_internal/ImageCaption-db44ec9e.js +75 -0
- package/_internal/ImageCaption-db44ec9e.js.map +1 -0
- package/_internal/List-c75646f2.js +818 -0
- package/_internal/List-c75646f2.js.map +1 -0
- package/_internal/PopoverDialog-35b2d87d.js +657 -0
- package/_internal/PopoverDialog-35b2d87d.js.map +1 -0
- package/_internal/Portal-3f86608e.js +45 -0
- package/_internal/Portal-3f86608e.js.map +1 -0
- package/_internal/RawClickable-2c2b6a89.js +52 -0
- package/_internal/RawClickable-2c2b6a89.js.map +1 -0
- package/_internal/Slides-ce641b5f.js +679 -0
- package/_internal/Slides-ce641b5f.js.map +1 -0
- package/_internal/ThemeContext-3181f000.js +14 -0
- package/_internal/ThemeContext-3181f000.js.map +1 -0
- package/_internal/Thumbnail-02bd6869.js +314 -0
- package/_internal/Thumbnail-02bd6869.js.map +1 -0
- package/_internal/components/alert-dialog-a24330ed.js +166 -0
- package/_internal/components/alert-dialog-a24330ed.js.map +1 -0
- package/_internal/components/autocomplete-70749e51.js +262 -0
- package/_internal/components/autocomplete-70749e51.js.map +1 -0
- package/_internal/components/avatar-ed9f4869.js +84 -0
- package/_internal/components/avatar-ed9f4869.js.map +1 -0
- package/_internal/components/badge-ccf47147.js +82 -0
- package/_internal/components/badge-ccf47147.js.map +1 -0
- package/_internal/components/button-9f710830.js +48 -0
- package/_internal/components/button-9f710830.js.map +1 -0
- package/_internal/components/checkbox-8ab51ef9.js +142 -0
- package/_internal/components/checkbox-8ab51ef9.js.map +1 -0
- package/_internal/components/chip-19e40755.js +103 -0
- package/_internal/components/chip-19e40755.js.map +1 -0
- package/_internal/components/comment-block-bb6a0603.js +139 -0
- package/_internal/components/comment-block-bb6a0603.js.map +1 -0
- package/_internal/components/date-picker-e4209b01.js +2 -0
- package/_internal/components/date-picker-e4209b01.js.map +1 -0
- package/_internal/components/dialog-30336ccb.js +239 -0
- package/_internal/components/dialog-30336ccb.js.map +1 -0
- package/_internal/components/divider-0e93aa3d.js +51 -0
- package/_internal/components/divider-0e93aa3d.js.map +1 -0
- package/_internal/components/drag-handle-ba2e7e67.js +52 -0
- package/_internal/components/drag-handle-ba2e7e67.js.map +1 -0
- package/_internal/components/dropdown-d18122d7.js +148 -0
- package/_internal/components/dropdown-d18122d7.js.map +1 -0
- package/_internal/components/expansion-panel-0b263437.js +169 -0
- package/_internal/components/expansion-panel-0b263437.js.map +1 -0
- package/_internal/components/flag-8f9a498a.js +60 -0
- package/_internal/components/flag-8f9a498a.js.map +1 -0
- package/_internal/components/flex-box-15be92f6.js +57 -0
- package/_internal/components/flex-box-15be92f6.js.map +1 -0
- package/_internal/components/generic-block-5d843f1e.js +128 -0
- package/_internal/components/generic-block-5d843f1e.js.map +1 -0
- package/_internal/components/grid-8c08dc4b.js +105 -0
- package/_internal/components/grid-8c08dc4b.js.map +1 -0
- package/_internal/components/grid-column-85e305e7.js +59 -0
- package/_internal/components/grid-column-85e305e7.js.map +1 -0
- package/_internal/components/heading-7bfafd7d.js +54 -0
- package/_internal/components/heading-7bfafd7d.js.map +1 -0
- package/_internal/components/icon-ee15673b.js +103 -0
- package/_internal/components/icon-ee15673b.js.map +1 -0
- package/_internal/components/image-block-3479abda.js +111 -0
- package/_internal/components/image-block-3479abda.js.map +1 -0
- package/_internal/components/image-lightbox-1d7ca133.js +758 -0
- package/_internal/components/image-lightbox-1d7ca133.js.map +1 -0
- package/_internal/components/inline-list-5ba8bb0f.js +75 -0
- package/_internal/components/inline-list-5ba8bb0f.js.map +1 -0
- package/_internal/components/input-helper-2e4e49fd.js +72 -0
- package/_internal/components/input-helper-2e4e49fd.js.map +1 -0
- package/_internal/components/input-label-30d199c3.js +60 -0
- package/_internal/components/input-label-30d199c3.js.map +1 -0
- package/_internal/components/lightbox-c5f9afd0.js +156 -0
- package/_internal/components/lightbox-c5f9afd0.js.map +1 -0
- package/_internal/components/link-43ee103e.js +73 -0
- package/_internal/components/link-43ee103e.js.map +1 -0
- package/_internal/components/link-preview-db0ee2d6.js +118 -0
- package/_internal/components/link-preview-db0ee2d6.js.map +1 -0
- package/_internal/components/list-2f256244.js +72 -0
- package/_internal/components/list-2f256244.js.map +1 -0
- package/_internal/components/message-f7674e0e.js +101 -0
- package/_internal/components/message-f7674e0e.js.map +1 -0
- package/_internal/components/mosaic-3effd0cf.js +95 -0
- package/_internal/components/mosaic-3effd0cf.js.map +1 -0
- package/_internal/components/navigation-3a5dc270.js +227 -0
- package/_internal/components/navigation-3a5dc270.js.map +1 -0
- package/_internal/components/notification-098c5600.js +146 -0
- package/_internal/components/notification-098c5600.js.map +1 -0
- package/_internal/components/popover-dfcddda4.js +3 -0
- package/_internal/components/popover-dfcddda4.js.map +1 -0
- package/_internal/components/post-block-69797e4d.js +110 -0
- package/_internal/components/post-block-69797e4d.js.map +1 -0
- package/_internal/components/progress-44bb0301.js +183 -0
- package/_internal/components/progress-44bb0301.js.map +1 -0
- package/_internal/components/progress-tracker-e0981fcc.js +309 -0
- package/_internal/components/progress-tracker-e0981fcc.js.map +1 -0
- package/_internal/components/radio-button-929c7bee.js +150 -0
- package/_internal/components/radio-button-929c7bee.js.map +1 -0
- package/_internal/components/select-64bc72a0.js +458 -0
- package/_internal/components/select-64bc72a0.js.map +1 -0
- package/_internal/components/side-navigation-c610c689.js +166 -0
- package/_internal/components/side-navigation-c610c689.js.map +1 -0
- package/_internal/components/skeleton-1ea8c82a.js +167 -0
- package/_internal/components/skeleton-1ea8c82a.js.map +1 -0
- package/_internal/components/slider-78cfaa67.js +312 -0
- package/_internal/components/slider-78cfaa67.js.map +1 -0
- package/_internal/components/slideshow-d8a943a7.js +151 -0
- package/_internal/components/slideshow-d8a943a7.js.map +1 -0
- package/_internal/components/switch-25b65051.js +122 -0
- package/_internal/components/switch-25b65051.js.map +1 -0
- package/_internal/components/table-ec20c66c.js +296 -0
- package/_internal/components/table-ec20c66c.js.map +1 -0
- package/_internal/components/tabs-89c055bd.js +299 -0
- package/_internal/components/tabs-89c055bd.js.map +1 -0
- package/_internal/components/text-d04d0f1b.js +2 -0
- package/_internal/components/text-d04d0f1b.js.map +1 -0
- package/_internal/components/text-field-8f13957e.js +361 -0
- package/_internal/components/text-field-8f13957e.js.map +1 -0
- package/_internal/components/thumbnail-1255957f.js +42 -0
- package/_internal/components/thumbnail-1255957f.js.map +1 -0
- package/_internal/components/toolbar-e7c984e6.js +62 -0
- package/_internal/components/toolbar-e7c984e6.js.map +1 -0
- package/_internal/components/tooltip-dcb43bbe.js +328 -0
- package/_internal/components/tooltip-dcb43bbe.js.map +1 -0
- package/_internal/components/uploader-7ef4db39.js +154 -0
- package/_internal/components/uploader-7ef4db39.js.map +1 -0
- package/_internal/components/user-block-24d97650.js +145 -0
- package/_internal/components/user-block-24d97650.js.map +1 -0
- package/_internal/constants-43721918.js +2170 -0
- package/_internal/constants-43721918.js.map +1 -0
- package/_internal/constants-d0e3f49e.js +24 -0
- package/_internal/constants-d0e3f49e.js.map +1 -0
- package/_internal/context-9d1336a1.js +19 -0
- package/_internal/context-9d1336a1.js.map +1 -0
- package/_internal/forwardRef-8bce732e.js +9 -0
- package/_internal/forwardRef-8bce732e.js.map +1 -0
- package/_internal/getFocusableElements-230173a8.js +13 -0
- package/_internal/getFocusableElements-230173a8.js.map +1 -0
- package/_internal/index-25c9e8c2.js +118 -0
- package/_internal/index-25c9e8c2.js.map +1 -0
- package/_internal/index-25d2a45e.js +437 -0
- package/_internal/index-25d2a45e.js.map +1 -0
- package/_internal/isComponent-b9762ff1.js +18 -0
- package/_internal/isComponent-b9762ff1.js.map +1 -0
- package/_internal/isComponentType-e806b848.js +9 -0
- package/_internal/isComponentType-e806b848.js.map +1 -0
- package/_internal/mergeRefs-f0d7d6ea.js +30 -0
- package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
- package/_internal/state-db358714.js +130 -0
- package/_internal/state-db358714.js.map +1 -0
- package/_internal/useBooleanState-2a3d237c.js +12 -0
- package/_internal/useBooleanState-2a3d237c.js.map +1 -0
- package/_internal/useCallbackOnEscape-b956a85d.js +64 -0
- package/_internal/useCallbackOnEscape-b956a85d.js.map +1 -0
- package/_internal/useDisableBodyScroll-36bd7352.js +219 -0
- package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
- package/_internal/useDisableStateProps-69e16b7c.js +36 -0
- package/_internal/useDisableStateProps-69e16b7c.js.map +1 -0
- package/_internal/useFocusTrap-2dbae79e.js +112 -0
- package/_internal/useFocusTrap-2dbae79e.js.map +1 -0
- package/_internal/useId-3a1facc0.js +18 -0
- package/_internal/useId-3a1facc0.js.map +1 -0
- package/_internal/useRovingTabIndex-7daf0f24.js +77 -0
- package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
- package/_internal/useTransitionVisibility-321fdbfa.js +50 -0
- package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
- package/_internal/wrapChildrenIconWithSpaces-50d705e6.js +20 -0
- package/_internal/wrapChildrenIconWithSpaces-50d705e6.js.map +1 -0
- package/index.js +63 -14033
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/utils/index.js +3 -158
- package/utils/index.js.map +1 -1
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import classNames from 'classnames';
|
|
2
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
3
|
+
import { u as useTheme } from '../ThemeContext-3181f000.js';
|
|
4
|
+
import { f as forwardRef } from '../forwardRef-8bce732e.js';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { Theme, Size } from '@lumx/core/js/constants';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Component display name.
|
|
10
|
+
*/
|
|
11
|
+
const COMPONENT_NAME$2 = 'ProgressLinear';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Component default class name and class prefix.
|
|
15
|
+
*/
|
|
16
|
+
const CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Component default props.
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_PROPS$2 = {};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* ProgressLinear component.
|
|
25
|
+
*
|
|
26
|
+
* @param props Component props.
|
|
27
|
+
* @param ref Component ref.
|
|
28
|
+
* @return React element.
|
|
29
|
+
*/
|
|
30
|
+
const ProgressLinear = forwardRef((props, ref) => {
|
|
31
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
32
|
+
const {
|
|
33
|
+
className,
|
|
34
|
+
theme = defaultTheme,
|
|
35
|
+
...forwardedProps
|
|
36
|
+
} = props;
|
|
37
|
+
return /*#__PURE__*/jsxs("div", {
|
|
38
|
+
ref: ref,
|
|
39
|
+
...forwardedProps,
|
|
40
|
+
className: classNames(className, handleBasicClasses({
|
|
41
|
+
prefix: CLASSNAME$2,
|
|
42
|
+
theme
|
|
43
|
+
})),
|
|
44
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
45
|
+
className: "lumx-progress-linear__line1"
|
|
46
|
+
}), /*#__PURE__*/jsx("div", {
|
|
47
|
+
className: "lumx-progress-linear__line2"
|
|
48
|
+
})]
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
ProgressLinear.displayName = COMPONENT_NAME$2;
|
|
52
|
+
ProgressLinear.className = CLASSNAME$2;
|
|
53
|
+
ProgressLinear.defaultProps = DEFAULT_PROPS$2;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Component display name.
|
|
57
|
+
*/
|
|
58
|
+
const COMPONENT_NAME$1 = 'ProgressCircular';
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Component default class name and class prefix.
|
|
62
|
+
*/
|
|
63
|
+
const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Component default props.
|
|
67
|
+
*/
|
|
68
|
+
const DEFAULT_PROPS$1 = {
|
|
69
|
+
size: Size.m,
|
|
70
|
+
display: 'block'
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* ProgressCircularProps component.
|
|
75
|
+
*
|
|
76
|
+
* @param props Component props.
|
|
77
|
+
* @param ref Component ref.
|
|
78
|
+
* @return React element.
|
|
79
|
+
*/
|
|
80
|
+
const ProgressCircular = forwardRef((props, ref) => {
|
|
81
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
82
|
+
const {
|
|
83
|
+
className,
|
|
84
|
+
theme = defaultTheme,
|
|
85
|
+
size = DEFAULT_PROPS$1.size,
|
|
86
|
+
display = DEFAULT_PROPS$1.display,
|
|
87
|
+
...forwardedProps
|
|
88
|
+
} = props;
|
|
89
|
+
const Element = display === 'block' ? 'div' : 'span';
|
|
90
|
+
return /*#__PURE__*/jsxs(Element, {
|
|
91
|
+
ref: ref,
|
|
92
|
+
...forwardedProps,
|
|
93
|
+
className: classNames(className, handleBasicClasses({
|
|
94
|
+
prefix: CLASSNAME$1,
|
|
95
|
+
theme,
|
|
96
|
+
size,
|
|
97
|
+
display
|
|
98
|
+
})),
|
|
99
|
+
children: [/*#__PURE__*/jsx(Element, {
|
|
100
|
+
className: "lumx-progress-circular__double-bounce1"
|
|
101
|
+
}), /*#__PURE__*/jsx(Element, {
|
|
102
|
+
className: "lumx-progress-circular__double-bounce2"
|
|
103
|
+
}), /*#__PURE__*/jsx("svg", {
|
|
104
|
+
className: "lumx-progress-circular__svg",
|
|
105
|
+
viewBox: "25 25 50 50",
|
|
106
|
+
children: /*#__PURE__*/jsx("circle", {
|
|
107
|
+
className: "lumx-progress-circular__path",
|
|
108
|
+
cx: "50",
|
|
109
|
+
cy: "50",
|
|
110
|
+
r: "20",
|
|
111
|
+
fill: "none",
|
|
112
|
+
strokeWidth: "5"
|
|
113
|
+
})
|
|
114
|
+
})]
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
ProgressCircular.displayName = COMPONENT_NAME$1;
|
|
118
|
+
ProgressCircular.className = CLASSNAME$1;
|
|
119
|
+
ProgressCircular.defaultProps = DEFAULT_PROPS$1;
|
|
120
|
+
|
|
121
|
+
const ProgressVariant = {
|
|
122
|
+
linear: 'linear',
|
|
123
|
+
circular: 'circular'
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Defines the props of the component.
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Component display name.
|
|
132
|
+
*/
|
|
133
|
+
const COMPONENT_NAME = 'Progress';
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Component default class name and class prefix.
|
|
137
|
+
*/
|
|
138
|
+
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Component default props.
|
|
142
|
+
*/
|
|
143
|
+
const DEFAULT_PROPS = {
|
|
144
|
+
variant: ProgressVariant.circular
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Progress component.
|
|
149
|
+
*
|
|
150
|
+
* @deprecated use `ProgressLinear` and `ProgressCircular` instead.
|
|
151
|
+
* @param props Component props.
|
|
152
|
+
* @param ref Component ref.
|
|
153
|
+
* @return React element.
|
|
154
|
+
*/
|
|
155
|
+
const Progress = forwardRef((props, ref) => {
|
|
156
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
157
|
+
const {
|
|
158
|
+
className,
|
|
159
|
+
theme = defaultTheme,
|
|
160
|
+
variant = DEFAULT_PROPS.variant,
|
|
161
|
+
...forwardedProps
|
|
162
|
+
} = props;
|
|
163
|
+
return /*#__PURE__*/jsxs("div", {
|
|
164
|
+
ref: ref,
|
|
165
|
+
...forwardedProps,
|
|
166
|
+
className: classNames(className, handleBasicClasses({
|
|
167
|
+
prefix: CLASSNAME,
|
|
168
|
+
theme,
|
|
169
|
+
variant
|
|
170
|
+
})),
|
|
171
|
+
children: [variant === ProgressVariant.circular && /*#__PURE__*/jsx(ProgressCircular, {
|
|
172
|
+
theme: theme
|
|
173
|
+
}), variant === ProgressVariant.linear && /*#__PURE__*/jsx(ProgressLinear, {
|
|
174
|
+
theme: theme
|
|
175
|
+
})]
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
Progress.displayName = COMPONENT_NAME;
|
|
179
|
+
Progress.className = CLASSNAME;
|
|
180
|
+
Progress.defaultProps = DEFAULT_PROPS;
|
|
181
|
+
|
|
182
|
+
export { Progress, ProgressCircular, ProgressLinear, ProgressVariant };
|
|
183
|
+
//# sourceMappingURL=progress-44bb0301.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-44bb0301.js","sources":["../../../src/components/progress/ProgressLinear.tsx","../../../src/components/progress/ProgressCircular.tsx","../../../src/components/progress/Progress.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport { Theme } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nexport interface ProgressLinearProps extends GenericProps, HasTheme {}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressLinear';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressLinearProps> = {};\n\n/**\n * ProgressLinear component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressLinear = forwardRef<ProgressLinearProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { className, theme = defaultTheme, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }))}\n >\n <div className=\"lumx-progress-linear__line1\" />\n <div className=\"lumx-progress-linear__line2\" />\n </div>\n );\n});\nProgressLinear.displayName = COMPONENT_NAME;\nProgressLinear.className = CLASSNAME;\nProgressLinear.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { Theme, Size } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Progress sizes.\n */\nexport type ProgressCircularSize = Extract<Size, 'xxs' | 'xs' | 's' | 'm'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressCircularProps extends GenericProps, HasTheme {\n /**\n * Progress circular size.\n */\n size?: ProgressCircularSize;\n /**\n * Progress display type (inline or block).\n * @default 'block'\n */\n display?: 'inline' | 'block';\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressCircular';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressCircularProps> = {\n size: Size.m,\n display: 'block',\n};\n\n/**\n * ProgressCircularProps component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressCircular = forwardRef<ProgressCircularProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n className,\n theme = defaultTheme,\n size = DEFAULT_PROPS.size,\n display = DEFAULT_PROPS.display,\n ...forwardedProps\n } = props;\n const Element = display === 'block' ? 'div' : 'span';\n\n return (\n <Element\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme, size, display }))}\n >\n <Element className=\"lumx-progress-circular__double-bounce1\" />\n <Element className=\"lumx-progress-circular__double-bounce2\" />\n\n <svg className=\"lumx-progress-circular__svg\" viewBox=\"25 25 50 50\">\n <circle className=\"lumx-progress-circular__path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" strokeWidth=\"5\" />\n </svg>\n </Element>\n );\n});\nProgressCircular.displayName = COMPONENT_NAME;\nProgressCircular.className = CLASSNAME;\nProgressCircular.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { Theme } from '@lumx/react';\nimport { GenericProps, HasTheme, ValueOf } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { ProgressLinear } from './ProgressLinear';\nimport { ProgressCircular } from './ProgressCircular';\n\n/**\n * Progress variants.\n */\nexport const ProgressVariant = { linear: 'linear', circular: 'circular' } as const;\nexport type ProgressVariant = ValueOf<typeof ProgressVariant>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressProps extends GenericProps, HasTheme {\n /** Progress variant. */\n variant?: ProgressVariant;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Progress';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressProps> = {\n variant: ProgressVariant.circular,\n};\n\n/**\n * Progress component.\n *\n * @deprecated use `ProgressLinear` and `ProgressCircular` instead.\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Progress = forwardRef<ProgressProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { className, theme = defaultTheme, variant = DEFAULT_PROPS.variant, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme, variant }))}\n >\n {variant === ProgressVariant.circular && <ProgressCircular theme={theme} />}\n {variant === ProgressVariant.linear && <ProgressLinear theme={theme} />}\n </div>\n );\n});\nProgress.displayName = COMPONENT_NAME;\nProgress.className = CLASSNAME;\nProgress.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","ProgressLinear","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","className","theme","forwardedProps","_jsxs","classNames","handleBasicClasses","prefix","children","_jsx","displayName","defaultProps","size","Size","m","display","ProgressCircular","Element","viewBox","cx","cy","r","fill","strokeWidth","ProgressVariant","linear","circular","variant","Progress"],"mappings":"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"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import React__default, { useReducer, useEffect, useCallback } from 'react';
|
|
2
|
+
import { r as reducer, I as INIT_STATE, T as TabProviderContext, u as useTabProviderContextState, a as useTabProviderContext } from '../state-db358714.js';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
6
|
+
import { m as mergeRefs } from '../mergeRefs-f0d7d6ea.js';
|
|
7
|
+
import { f as forwardRef } from '../forwardRef-8bce732e.js';
|
|
8
|
+
import { u as useRovingTabIndex } from '../useRovingTabIndex-7daf0f24.js';
|
|
9
|
+
import { mdiAlertCircle } from '@lumx/icons/esm/alert-circle';
|
|
10
|
+
import { mdiCheckCircle } from '@lumx/icons/esm/check-circle';
|
|
11
|
+
import { mdiRadioboxBlank } from '@lumx/icons/esm/radiobox-blank';
|
|
12
|
+
import { mdiRadioboxMarked } from '@lumx/icons/esm/radiobox-marked';
|
|
13
|
+
import { u as useDisableStateProps } from '../useDisableStateProps-69e16b7c.js';
|
|
14
|
+
import { Icon } from './icon-ee15673b.js';
|
|
15
|
+
import { Size, Kind, CSS_PREFIX } from '@lumx/core/js/constants';
|
|
16
|
+
import { InputLabel } from './input-label-30d199c3.js';
|
|
17
|
+
import { InputHelper } from './input-helper-2e4e49fd.js';
|
|
18
|
+
import '../constants-d0e3f49e.js';
|
|
19
|
+
|
|
20
|
+
const DEFAULT_PROPS$3 = {
|
|
21
|
+
isLazy: INIT_STATE.isLazy,
|
|
22
|
+
shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* This component provides a context in which steps can be defined and linked to their step panel.
|
|
27
|
+
*
|
|
28
|
+
* It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel
|
|
29
|
+
* components in the react tree.
|
|
30
|
+
*
|
|
31
|
+
* This works exactly as TabProvider so it uses TabProviderContext and tabs state.
|
|
32
|
+
*
|
|
33
|
+
* @param props React component props.
|
|
34
|
+
* @return React element.
|
|
35
|
+
*/
|
|
36
|
+
const ProgressTrackerProvider = props => {
|
|
37
|
+
const {
|
|
38
|
+
children,
|
|
39
|
+
onChange,
|
|
40
|
+
...propState
|
|
41
|
+
} = props;
|
|
42
|
+
const [state, dispatch] = useReducer(reducer, INIT_STATE);
|
|
43
|
+
|
|
44
|
+
// On prop state change => dispatch update.
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
dispatch({
|
|
47
|
+
type: 'update',
|
|
48
|
+
payload: {
|
|
49
|
+
...DEFAULT_PROPS$3,
|
|
50
|
+
...propState,
|
|
51
|
+
activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
|
+
[dispatch, ...Object.values(propState)]);
|
|
57
|
+
|
|
58
|
+
// On active tab index state change => send update to the onChange.
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
onChange(state.activeTabIndex);
|
|
64
|
+
},
|
|
65
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
66
|
+
[onChange, state.activeTabIndex]);
|
|
67
|
+
return /*#__PURE__*/jsx(TabProviderContext.Provider, {
|
|
68
|
+
value: [state, dispatch],
|
|
69
|
+
children: children
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
ProgressTrackerProvider.defaultProps = DEFAULT_PROPS$3;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Component display name.
|
|
76
|
+
*/
|
|
77
|
+
const COMPONENT_NAME$2 = 'ProgressTracker';
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Component default class name and class prefix.
|
|
81
|
+
*/
|
|
82
|
+
const CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Component default props.
|
|
86
|
+
*/
|
|
87
|
+
const DEFAULT_PROPS$2 = {};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* ProgressTracker component.
|
|
91
|
+
*
|
|
92
|
+
* Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
|
|
93
|
+
*
|
|
94
|
+
* @param props Component props.
|
|
95
|
+
* @param ref Component ref.
|
|
96
|
+
* @return React element.
|
|
97
|
+
*/
|
|
98
|
+
const ProgressTracker = forwardRef((props, ref) => {
|
|
99
|
+
const {
|
|
100
|
+
'aria-label': ariaLabel,
|
|
101
|
+
children,
|
|
102
|
+
className,
|
|
103
|
+
...forwardedProps
|
|
104
|
+
} = props;
|
|
105
|
+
const stepListRef = React__default.useRef(null);
|
|
106
|
+
useRovingTabIndex({
|
|
107
|
+
parentRef: stepListRef,
|
|
108
|
+
elementSelector: '[role="tab"]',
|
|
109
|
+
keepTabIndex: false,
|
|
110
|
+
extraDependencies: [children]
|
|
111
|
+
});
|
|
112
|
+
const state = useTabProviderContextState();
|
|
113
|
+
const numberOfSteps = state?.ids?.tab?.length || 0;
|
|
114
|
+
const backgroundPosition = numberOfSteps > 0 ? 100 / (numberOfSteps * 2) : 0;
|
|
115
|
+
const trackPosition = numberOfSteps > 0 ? 100 / (numberOfSteps - 1) * (state?.activeTabIndex || 0) / 100 : 0;
|
|
116
|
+
return /*#__PURE__*/jsxs("div", {
|
|
117
|
+
ref: mergeRefs(ref, stepListRef),
|
|
118
|
+
...forwardedProps,
|
|
119
|
+
className: classNames(className, CLASSNAME$2),
|
|
120
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
121
|
+
className: `${CLASSNAME$2}__steps`,
|
|
122
|
+
role: "tablist",
|
|
123
|
+
"aria-label": ariaLabel,
|
|
124
|
+
children: children
|
|
125
|
+
}), /*#__PURE__*/jsx("div", {
|
|
126
|
+
className: `${CLASSNAME$2}__background-bar`,
|
|
127
|
+
style: {
|
|
128
|
+
left: `${backgroundPosition}%`,
|
|
129
|
+
right: `${backgroundPosition}%`
|
|
130
|
+
}
|
|
131
|
+
}), /*#__PURE__*/jsx("div", {
|
|
132
|
+
className: `${CLASSNAME$2}__foreground-bar`,
|
|
133
|
+
style: {
|
|
134
|
+
left: `${backgroundPosition}%`,
|
|
135
|
+
right: `${backgroundPosition}%`,
|
|
136
|
+
transform: `scaleX(${trackPosition})`
|
|
137
|
+
}
|
|
138
|
+
})]
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
ProgressTracker.displayName = COMPONENT_NAME$2;
|
|
142
|
+
ProgressTracker.className = CLASSNAME$2;
|
|
143
|
+
ProgressTracker.defaultProps = DEFAULT_PROPS$2;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Component display name.
|
|
147
|
+
*/
|
|
148
|
+
const COMPONENT_NAME$1 = 'ProgressTrackerStep';
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Component default class name and class prefix.
|
|
152
|
+
*/
|
|
153
|
+
const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Component default props.
|
|
157
|
+
*/
|
|
158
|
+
const DEFAULT_PROPS$1 = {};
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* ProgressTrackerStep component.
|
|
162
|
+
*
|
|
163
|
+
* Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
|
|
164
|
+
*
|
|
165
|
+
* @param props Component props.
|
|
166
|
+
* @param ref Component ref.
|
|
167
|
+
* @return React element.
|
|
168
|
+
*/
|
|
169
|
+
const ProgressTrackerStep = forwardRef((props, ref) => {
|
|
170
|
+
const {
|
|
171
|
+
isAnyDisabled,
|
|
172
|
+
otherProps
|
|
173
|
+
} = useDisableStateProps(props);
|
|
174
|
+
const {
|
|
175
|
+
className,
|
|
176
|
+
hasError,
|
|
177
|
+
helper,
|
|
178
|
+
id,
|
|
179
|
+
isActive: propIsActive,
|
|
180
|
+
isComplete,
|
|
181
|
+
label,
|
|
182
|
+
onFocus,
|
|
183
|
+
onKeyPress,
|
|
184
|
+
tabIndex = -1,
|
|
185
|
+
...forwardedProps
|
|
186
|
+
} = otherProps;
|
|
187
|
+
const state = useTabProviderContext('tab', id);
|
|
188
|
+
const isActive = propIsActive || state?.isActive;
|
|
189
|
+
const changeToCurrentTab = useCallback(() => {
|
|
190
|
+
if (isAnyDisabled) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
state?.changeToTab();
|
|
194
|
+
}, [isAnyDisabled, state]);
|
|
195
|
+
const handleFocus = useCallback(event => {
|
|
196
|
+
onFocus?.(event);
|
|
197
|
+
if (state?.shouldActivateOnFocus) {
|
|
198
|
+
changeToCurrentTab();
|
|
199
|
+
}
|
|
200
|
+
}, [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus]);
|
|
201
|
+
const handleKeyPress = useCallback(event => {
|
|
202
|
+
onKeyPress?.(event);
|
|
203
|
+
if (event.key !== 'Enter') {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
changeToCurrentTab();
|
|
207
|
+
}, [changeToCurrentTab, onKeyPress]);
|
|
208
|
+
const getIcon = () => {
|
|
209
|
+
if (isComplete) {
|
|
210
|
+
return mdiCheckCircle;
|
|
211
|
+
}
|
|
212
|
+
if (isActive) {
|
|
213
|
+
return hasError ? mdiAlertCircle : mdiRadioboxMarked;
|
|
214
|
+
}
|
|
215
|
+
return mdiRadioboxBlank;
|
|
216
|
+
};
|
|
217
|
+
return /*#__PURE__*/jsxs("button", {
|
|
218
|
+
ref: ref,
|
|
219
|
+
...forwardedProps,
|
|
220
|
+
type: "button",
|
|
221
|
+
id: state?.tabId,
|
|
222
|
+
className: classNames(className, handleBasicClasses({
|
|
223
|
+
prefix: CLASSNAME$1,
|
|
224
|
+
hasError,
|
|
225
|
+
isActive,
|
|
226
|
+
isClickable: state && !isAnyDisabled,
|
|
227
|
+
isComplete
|
|
228
|
+
})),
|
|
229
|
+
onClick: changeToCurrentTab,
|
|
230
|
+
onKeyPress: handleKeyPress,
|
|
231
|
+
onFocus: handleFocus,
|
|
232
|
+
role: "tab",
|
|
233
|
+
tabIndex: isActive ? 0 : tabIndex,
|
|
234
|
+
"aria-disabled": isAnyDisabled,
|
|
235
|
+
"aria-selected": isActive,
|
|
236
|
+
"aria-controls": state?.tabPanelId,
|
|
237
|
+
children: [/*#__PURE__*/jsx(Icon, {
|
|
238
|
+
className: `${CLASSNAME$1}__state`,
|
|
239
|
+
icon: getIcon(),
|
|
240
|
+
size: Size.s
|
|
241
|
+
}), /*#__PURE__*/jsx(InputLabel, {
|
|
242
|
+
htmlFor: state?.tabId || '',
|
|
243
|
+
className: `${CLASSNAME$1}__label`,
|
|
244
|
+
children: label
|
|
245
|
+
}), helper && /*#__PURE__*/jsx(InputHelper, {
|
|
246
|
+
kind: hasError ? Kind.error : Kind.info,
|
|
247
|
+
className: `${CLASSNAME$1}__helper`,
|
|
248
|
+
children: helper
|
|
249
|
+
})]
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
ProgressTrackerStep.displayName = COMPONENT_NAME$1;
|
|
253
|
+
ProgressTrackerStep.className = CLASSNAME$1;
|
|
254
|
+
ProgressTrackerStep.defaultProps = DEFAULT_PROPS$1;
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Component display name.
|
|
258
|
+
*/
|
|
259
|
+
const COMPONENT_NAME = 'ProgressTrackerStepPanel';
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Component default class name and class prefix.
|
|
263
|
+
*/
|
|
264
|
+
const CLASSNAME = `${CSS_PREFIX}-step-panel`;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Component default props.
|
|
268
|
+
*/
|
|
269
|
+
const DEFAULT_PROPS = {};
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* ProgressTrackerStepPanel component.
|
|
273
|
+
*
|
|
274
|
+
* Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
|
|
275
|
+
*
|
|
276
|
+
* @param props Component props.
|
|
277
|
+
* @param ref Component ref.
|
|
278
|
+
* @return React element.
|
|
279
|
+
*/
|
|
280
|
+
const ProgressTrackerStepPanel = forwardRef((props, ref) => {
|
|
281
|
+
const {
|
|
282
|
+
children,
|
|
283
|
+
id,
|
|
284
|
+
className,
|
|
285
|
+
isActive: propIsActive,
|
|
286
|
+
...forwardedProps
|
|
287
|
+
} = props;
|
|
288
|
+
const state = useTabProviderContext('tabPanel', id);
|
|
289
|
+
const isActive = propIsActive || state?.isActive;
|
|
290
|
+
return /*#__PURE__*/jsx("div", {
|
|
291
|
+
ref: ref,
|
|
292
|
+
...forwardedProps,
|
|
293
|
+
id: state?.tabPanelId,
|
|
294
|
+
className: classNames(className, handleBasicClasses({
|
|
295
|
+
prefix: CLASSNAME,
|
|
296
|
+
isActive
|
|
297
|
+
})),
|
|
298
|
+
role: "tabpanel",
|
|
299
|
+
tabIndex: isActive ? 0 : -1,
|
|
300
|
+
"aria-labelledby": state?.tabId,
|
|
301
|
+
children: (!state?.isLazy || isActive) && children
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
ProgressTrackerStepPanel.displayName = COMPONENT_NAME;
|
|
305
|
+
ProgressTrackerStepPanel.className = CLASSNAME;
|
|
306
|
+
ProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS;
|
|
307
|
+
|
|
308
|
+
export { ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel };
|
|
309
|
+
//# sourceMappingURL=progress-tracker-e0981fcc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-tracker-e0981fcc.js","sources":["../../../src/components/progress-tracker/ProgressTrackerProvider.tsx","../../../src/components/progress-tracker/ProgressTracker.tsx","../../../src/components/progress-tracker/ProgressTrackerStep.tsx","../../../src/components/progress-tracker/ProgressTrackerStepPanel.tsx"],"sourcesContent":["import { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from '../tabs/state';\n\nexport interface ProgressTrackerProviderProps {\n /** Active step index. */\n activeStepIndex?: number;\n /** ProgressTrackerProvider children. */\n children: ReactNode;\n /** Step panel children should not render if the step panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n /** Step change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<ProgressTrackerProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which steps can be defined and linked to their step panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel\n * components in the react tree.\n *\n * This works exactly as TabProvider so it uses TabProviderContext and tabs state.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const ProgressTrackerProvider: React.FC<ProgressTrackerProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({\n type: 'update',\n payload: {\n ...DEFAULT_PROPS,\n ...propState,\n activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex,\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {\n return;\n }\n onChange(state.activeTabIndex);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nProgressTrackerProvider.defaultProps = DEFAULT_PROPS;\n","import React, { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\nimport { useTabProviderContextState } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerProps extends GenericProps {\n /** ARIA label (purpose of the set of steps). */\n ['aria-label']: string;\n /** Step list. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTracker';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerProps> = {};\n\n/**\n * ProgressTracker component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTracker = forwardRef<ProgressTrackerProps, HTMLDivElement>((props, ref) => {\n const { 'aria-label': ariaLabel, children, className, ...forwardedProps } = props;\n const stepListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: stepListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n const state = useTabProviderContextState();\n const numberOfSteps = state?.ids?.tab?.length || 0;\n const backgroundPosition: number = numberOfSteps > 0 ? 100 / (numberOfSteps * 2) : 0;\n const trackPosition: number =\n numberOfSteps > 0 ? ((100 / (numberOfSteps - 1)) * (state?.activeTabIndex || 0)) / 100 : 0;\n\n return (\n <div ref={mergeRefs(ref, stepListRef)} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n <div className={`${CLASSNAME}__steps`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n\n <div\n className={`${CLASSNAME}__background-bar`}\n style={{ left: `${backgroundPosition}%`, right: `${backgroundPosition}%` }}\n />\n\n <div\n className={`${CLASSNAME}__foreground-bar`}\n style={{\n left: `${backgroundPosition}%`,\n right: `${backgroundPosition}%`,\n transform: `scaleX(${trackPosition})`,\n }}\n />\n </div>\n );\n});\nProgressTracker.displayName = COMPONENT_NAME;\nProgressTracker.className = CLASSNAME;\nProgressTracker.defaultProps = DEFAULT_PROPS;\n","import { FocusEventHandler, KeyboardEventHandler, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiAlertCircle } from '@lumx/icons/esm/alert-circle';\nimport { mdiCheckCircle } from '@lumx/icons/esm/check-circle';\nimport { mdiRadioboxBlank } from '@lumx/icons/esm/radiobox-blank';\nimport { mdiRadioboxMarked } from '@lumx/icons/esm/radiobox-marked';\nimport { Icon, InputHelper, InputLabel, Kind, Size } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\nimport { useTabProviderContext } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Whether the step should be in error state or not. */\n hasError?: boolean;\n /** Helper text. */\n helper?: string | null;\n /** Native id property. */\n id?: string;\n /** Whether the current step is active or not. */\n isActive?: boolean;\n /** Whether the current step is completed or not. */\n isComplete?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: string | null;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStep';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepProps> = {};\n\n/**\n * ProgressTrackerStep component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStep = forwardRef<ProgressTrackerStepProps, HTMLButtonElement>((props, ref) => {\n const { isAnyDisabled, otherProps } = useDisableStateProps(props);\n const {\n className,\n hasError,\n helper,\n id,\n isActive: propIsActive,\n isComplete,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = otherProps;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isAnyDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isAnyDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n const getIcon = (): string => {\n if (isComplete) {\n return mdiCheckCircle;\n }\n\n if (isActive) {\n return hasError ? mdiAlertCircle : mdiRadioboxMarked;\n }\n\n return mdiRadioboxBlank;\n };\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n hasError,\n isActive,\n isClickable: state && !isAnyDisabled,\n isComplete,\n }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isAnyDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n <Icon className={`${CLASSNAME}__state`} icon={getIcon()} size={Size.s} />\n\n <InputLabel htmlFor={state?.tabId || ''} className={`${CLASSNAME}__label`}>\n {label}\n </InputLabel>\n\n {helper && (\n <InputHelper kind={hasError ? Kind.error : Kind.info} className={`${CLASSNAME}__helper`}>\n {helper}\n </InputHelper>\n )}\n </button>\n );\n});\nProgressTrackerStep.displayName = COMPONENT_NAME;\nProgressTrackerStep.className = CLASSNAME;\nProgressTrackerStep.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepPanelProps extends GenericProps {\n /** Native id property. */\n id?: string;\n /** Whether the step is active or not. */\n isActive?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStepPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-step-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepPanelProps> = {};\n\n/**\n * ProgressTrackerStepPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStepPanel = forwardRef<ProgressTrackerStepPanelProps, HTMLDivElement>((props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={isActive ? 0 : -1}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n});\nProgressTrackerStepPanel.displayName = COMPONENT_NAME;\nProgressTrackerStepPanel.className = CLASSNAME;\nProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","ProgressTrackerProvider","props","children","onChange","propState","state","dispatch","useReducer","reducer","useEffect","type","payload","activeTabIndex","activeStepIndex","Object","values","_jsx","TabProviderContext","Provider","value","defaultProps","COMPONENT_NAME","CLASSNAME","getRootClassName","ProgressTracker","forwardRef","ref","ariaLabel","className","forwardedProps","stepListRef","React","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","useTabProviderContextState","numberOfSteps","ids","tab","length","backgroundPosition","trackPosition","_jsxs","mergeRefs","classNames","role","style","left","right","transform","displayName","ProgressTrackerStep","isAnyDisabled","otherProps","useDisableStateProps","hasError","helper","id","isActive","propIsActive","isComplete","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","getIcon","mdiCheckCircle","mdiAlertCircle","mdiRadioboxMarked","mdiRadioboxBlank","tabId","handleBasicClasses","prefix","isClickable","onClick","tabPanelId","Icon","icon","size","Size","s","InputLabel","htmlFor","InputHelper","kind","Kind","error","info","CSS_PREFIX","ProgressTrackerStepPanel"],"mappings":"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"}
|