@leabankab/component-library 7.2.0 → 7.3.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/CHANGELOG.md +41 -0
- package/dist/component-library.es.js +2126 -1983
- package/dist/component-library.es.js.map +1 -1
- package/dist/component-library.umd.js +11 -18
- package/dist/component-library.umd.js.map +1 -1
- package/dist/components/buttons/button-base.d.ts +5 -5
- package/dist/components/buttons/button.d.ts +2 -2
- package/dist/components/buttons/icon-button.d.ts +1 -1
- package/dist/components/feedback/alert-parts.d.ts +328 -0
- package/dist/components/feedback/alert.d.ts +13 -18
- package/dist/components/feedback/global-alert.d.ts +24 -0
- package/dist/components/feedback/index.d.ts +1 -0
- package/dist/components/layout/stack.d.ts +1 -1
- package/dist/components/navigation/index.d.ts +2 -0
- package/dist/components/navigation/linear-form-stepper.d.ts +58 -0
- package/dist/components/navigation/step-progress.d.ts +60 -0
- package/dist/components/ui/app-header.d.ts +21 -0
- package/dist/components/ui/brand-divider.d.ts +7 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/cookie-consent-react.cjs +1 -1
- package/dist/cookie-consent-react.cjs.map +1 -1
- package/dist/cookie-consent-react.mjs +15 -15
- package/dist/cookie-consent-react.mjs.map +1 -1
- package/dist/cookie-consent.css +1 -1
- package/dist/index.css +1 -1
- package/dist/theme/tokens/index.d.ts +1 -0
- package/dist/theme/tokens/opacity.d.ts +5 -0
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Button as BaseButton } from '@base-ui/react/button';
|
|
2
|
-
export type ButtonVariant = "
|
|
2
|
+
export type ButtonVariant = "solid" | "outline" | "ghost";
|
|
3
3
|
export type ButtonColor = "accent" | "neutral" | "danger";
|
|
4
4
|
export type ButtonSize = "sm" | "md" | "lg";
|
|
5
5
|
export type ButtonBaseProps = Omit<BaseButton.Props, "color"> & {
|
|
6
6
|
/**
|
|
7
7
|
* Visual weight.
|
|
8
|
-
* - `"
|
|
9
|
-
* - `"
|
|
10
|
-
* - `"
|
|
11
|
-
* @default "
|
|
8
|
+
* - `"solid"` — filled, for the main action.
|
|
9
|
+
* - `"outline"` — bordered, no fill.
|
|
10
|
+
* - `"ghost"` — no border or fill until hovered.
|
|
11
|
+
* @default "solid"
|
|
12
12
|
*/
|
|
13
13
|
variant?: ButtonVariant;
|
|
14
14
|
/**
|
|
@@ -14,11 +14,11 @@ export type ButtonProps = ButtonBaseProps & {
|
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* A button built on Base UI's `Button` primitive and styled with Lea's design
|
|
17
|
-
* tokens. Pick a `variant` (`
|
|
17
|
+
* tokens. Pick a `variant` (`solid`, `outline`, `ghost`), a `color`
|
|
18
18
|
* (`accent`, `neutral`, `danger`) and a `size` (`sm`, `md`, `lg`).
|
|
19
19
|
*
|
|
20
20
|
* ```tsx
|
|
21
|
-
* <Button variant="
|
|
21
|
+
* <Button variant="outline" startIcon={<Plus aria-hidden />}>Add</Button>
|
|
22
22
|
* ```
|
|
23
23
|
*
|
|
24
24
|
* To render a link that looks like a button, pass the link through `render`.
|
|
@@ -21,7 +21,7 @@ export type IconButtonProps = Omit<ButtonBaseProps, "children" | "aria-label" |
|
|
|
21
21
|
* `aria-label` or `aria-labelledby`.
|
|
22
22
|
*
|
|
23
23
|
* ```tsx
|
|
24
|
-
* <IconButton aria-label="Add" variant="
|
|
24
|
+
* <IconButton aria-label="Add" variant="outline">
|
|
25
25
|
* <Plus aria-hidden />
|
|
26
26
|
* </IconButton>
|
|
27
27
|
* ```
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { ComponentPropsWithRef, ReactNode, SyntheticEvent } from 'react';
|
|
2
|
+
export type AlertSeverity = "success" | "info" | "warning" | "error";
|
|
3
|
+
export type AlertColor = AlertSeverity | "purple" | "grey";
|
|
4
|
+
export type AlertVariant = "standard" | "filled" | "outlined";
|
|
5
|
+
export type AlertSize = "sm" | "lg";
|
|
6
|
+
export type AlertProps = Omit<ComponentPropsWithRef<"div">, "color"> & {
|
|
7
|
+
/**
|
|
8
|
+
* Semantic meaning — picks the icon and how screen readers announce it.
|
|
9
|
+
* @default "success", or "info" with a brand `color`
|
|
10
|
+
*/
|
|
11
|
+
severity?: AlertSeverity;
|
|
12
|
+
/**
|
|
13
|
+
* Colour scheme. Defaults to the colour of `severity`. `"purple"` and
|
|
14
|
+
* `"grey"` carry no status meaning.
|
|
15
|
+
*/
|
|
16
|
+
color?: AlertColor;
|
|
17
|
+
/**
|
|
18
|
+
* `"standard"` is a tinted fill, `"filled"` a solid one, `"outlined"` a
|
|
19
|
+
* border only.
|
|
20
|
+
* @default "standard"
|
|
21
|
+
*/
|
|
22
|
+
variant?: AlertVariant;
|
|
23
|
+
/**
|
|
24
|
+
* `"sm"` for tighter padding and smaller text.
|
|
25
|
+
* @default "lg"
|
|
26
|
+
*/
|
|
27
|
+
size?: AlertSize;
|
|
28
|
+
/** Replaces the severity icon. Pass `false` to hide it. */
|
|
29
|
+
icon?: ReactNode | false;
|
|
30
|
+
/** Content for the end of the alert, e.g. a button. Replaces the close button. */
|
|
31
|
+
action?: ReactNode;
|
|
32
|
+
/** Renders a close button that calls this when pressed. */
|
|
33
|
+
onClose?: (event: SyntheticEvent) => void;
|
|
34
|
+
/** Accessible name of the close button. Defaults to a translated "Close". */
|
|
35
|
+
closeLabel?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the props shared by `Alert` and `GlobalAlert` into the root's
|
|
39
|
+
* attributes and its inner markup. Internal — not exported from the package.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveAlert({ severity, color, variant, size, icon, action, onClose, closeLabel, role, children, ...rest }: AlertProps): {
|
|
42
|
+
rootProps: {
|
|
43
|
+
role: import('react').AriaRole;
|
|
44
|
+
"data-color": "purple" | "grey" | "success" | "error" | "info" | "warning";
|
|
45
|
+
"data-variant": AlertVariant;
|
|
46
|
+
"data-size": AlertSize;
|
|
47
|
+
content?: string | undefined | undefined;
|
|
48
|
+
translate?: "yes" | "no" | undefined | undefined;
|
|
49
|
+
hidden?: boolean | undefined | undefined;
|
|
50
|
+
slot?: string | undefined | undefined;
|
|
51
|
+
style?: import('react').CSSProperties | undefined;
|
|
52
|
+
title?: string | undefined | undefined;
|
|
53
|
+
onAnimationStart?: import('react').AnimationEventHandler<HTMLDivElement> | undefined;
|
|
54
|
+
onDragStart?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
55
|
+
onDragEnd?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
56
|
+
onDrag?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
57
|
+
ref?: import('react').Ref<HTMLDivElement> | undefined;
|
|
58
|
+
key?: import('react').Key | null | undefined;
|
|
59
|
+
defaultChecked?: boolean | undefined | undefined;
|
|
60
|
+
defaultValue?: string | number | readonly string[] | undefined;
|
|
61
|
+
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
62
|
+
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
63
|
+
accessKey?: string | undefined | undefined;
|
|
64
|
+
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
65
|
+
autoFocus?: boolean | undefined | undefined;
|
|
66
|
+
className?: string | undefined | undefined;
|
|
67
|
+
contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
|
|
68
|
+
contextMenu?: string | undefined | undefined;
|
|
69
|
+
dir?: string | undefined | undefined;
|
|
70
|
+
draggable?: (boolean | "true" | "false") | undefined;
|
|
71
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
72
|
+
id?: string | undefined | undefined;
|
|
73
|
+
lang?: string | undefined | undefined;
|
|
74
|
+
nonce?: string | undefined | undefined;
|
|
75
|
+
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
76
|
+
tabIndex?: number | undefined | undefined;
|
|
77
|
+
radioGroup?: string | undefined | undefined;
|
|
78
|
+
about?: string | undefined | undefined;
|
|
79
|
+
datatype?: string | undefined | undefined;
|
|
80
|
+
inlist?: any;
|
|
81
|
+
prefix?: string | undefined | undefined;
|
|
82
|
+
property?: string | undefined | undefined;
|
|
83
|
+
rel?: string | undefined | undefined;
|
|
84
|
+
resource?: string | undefined | undefined;
|
|
85
|
+
rev?: string | undefined | undefined;
|
|
86
|
+
typeof?: string | undefined | undefined;
|
|
87
|
+
vocab?: string | undefined | undefined;
|
|
88
|
+
autoCorrect?: string | undefined | undefined;
|
|
89
|
+
autoSave?: string | undefined | undefined;
|
|
90
|
+
itemProp?: string | undefined | undefined;
|
|
91
|
+
itemScope?: boolean | undefined | undefined;
|
|
92
|
+
itemType?: string | undefined | undefined;
|
|
93
|
+
itemID?: string | undefined | undefined;
|
|
94
|
+
itemRef?: string | undefined | undefined;
|
|
95
|
+
results?: number | undefined | undefined;
|
|
96
|
+
security?: string | undefined | undefined;
|
|
97
|
+
unselectable?: "on" | "off" | undefined | undefined;
|
|
98
|
+
popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
|
|
99
|
+
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
|
|
100
|
+
popoverTarget?: string | undefined | undefined;
|
|
101
|
+
inert?: boolean | undefined | undefined;
|
|
102
|
+
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
103
|
+
is?: string | undefined | undefined;
|
|
104
|
+
exportparts?: string | undefined | undefined;
|
|
105
|
+
part?: string | undefined | undefined;
|
|
106
|
+
"aria-activedescendant"?: string | undefined | undefined;
|
|
107
|
+
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
108
|
+
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
|
|
109
|
+
"aria-braillelabel"?: string | undefined | undefined;
|
|
110
|
+
"aria-brailleroledescription"?: string | undefined | undefined;
|
|
111
|
+
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
112
|
+
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
113
|
+
"aria-colcount"?: number | undefined | undefined;
|
|
114
|
+
"aria-colindex"?: number | undefined | undefined;
|
|
115
|
+
"aria-colindextext"?: string | undefined | undefined;
|
|
116
|
+
"aria-colspan"?: number | undefined | undefined;
|
|
117
|
+
"aria-controls"?: string | undefined | undefined;
|
|
118
|
+
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
|
|
119
|
+
"aria-describedby"?: string | undefined | undefined;
|
|
120
|
+
"aria-description"?: string | undefined | undefined;
|
|
121
|
+
"aria-details"?: string | undefined | undefined;
|
|
122
|
+
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
123
|
+
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
|
|
124
|
+
"aria-errormessage"?: string | undefined | undefined;
|
|
125
|
+
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
126
|
+
"aria-flowto"?: string | undefined | undefined;
|
|
127
|
+
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
128
|
+
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
|
|
129
|
+
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
130
|
+
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
|
|
131
|
+
"aria-keyshortcuts"?: string | undefined | undefined;
|
|
132
|
+
"aria-label"?: string | undefined | undefined;
|
|
133
|
+
"aria-labelledby"?: string | undefined | undefined;
|
|
134
|
+
"aria-level"?: number | undefined | undefined;
|
|
135
|
+
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
|
|
136
|
+
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
137
|
+
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
138
|
+
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
139
|
+
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
|
|
140
|
+
"aria-owns"?: string | undefined | undefined;
|
|
141
|
+
"aria-placeholder"?: string | undefined | undefined;
|
|
142
|
+
"aria-posinset"?: number | undefined | undefined;
|
|
143
|
+
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
144
|
+
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
145
|
+
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
|
|
146
|
+
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
147
|
+
"aria-roledescription"?: string | undefined | undefined;
|
|
148
|
+
"aria-rowcount"?: number | undefined | undefined;
|
|
149
|
+
"aria-rowindex"?: number | undefined | undefined;
|
|
150
|
+
"aria-rowindextext"?: string | undefined | undefined;
|
|
151
|
+
"aria-rowspan"?: number | undefined | undefined;
|
|
152
|
+
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
153
|
+
"aria-setsize"?: number | undefined | undefined;
|
|
154
|
+
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
|
|
155
|
+
"aria-valuemax"?: number | undefined | undefined;
|
|
156
|
+
"aria-valuemin"?: number | undefined | undefined;
|
|
157
|
+
"aria-valuenow"?: number | undefined | undefined;
|
|
158
|
+
"aria-valuetext"?: string | undefined | undefined;
|
|
159
|
+
dangerouslySetInnerHTML?: {
|
|
160
|
+
__html: string | TrustedHTML;
|
|
161
|
+
} | undefined | undefined;
|
|
162
|
+
onCopy?: import('react').ClipboardEventHandler<HTMLDivElement> | undefined;
|
|
163
|
+
onCopyCapture?: import('react').ClipboardEventHandler<HTMLDivElement> | undefined;
|
|
164
|
+
onCut?: import('react').ClipboardEventHandler<HTMLDivElement> | undefined;
|
|
165
|
+
onCutCapture?: import('react').ClipboardEventHandler<HTMLDivElement> | undefined;
|
|
166
|
+
onPaste?: import('react').ClipboardEventHandler<HTMLDivElement> | undefined;
|
|
167
|
+
onPasteCapture?: import('react').ClipboardEventHandler<HTMLDivElement> | undefined;
|
|
168
|
+
onCompositionEnd?: import('react').CompositionEventHandler<HTMLDivElement> | undefined;
|
|
169
|
+
onCompositionEndCapture?: import('react').CompositionEventHandler<HTMLDivElement> | undefined;
|
|
170
|
+
onCompositionStart?: import('react').CompositionEventHandler<HTMLDivElement> | undefined;
|
|
171
|
+
onCompositionStartCapture?: import('react').CompositionEventHandler<HTMLDivElement> | undefined;
|
|
172
|
+
onCompositionUpdate?: import('react').CompositionEventHandler<HTMLDivElement> | undefined;
|
|
173
|
+
onCompositionUpdateCapture?: import('react').CompositionEventHandler<HTMLDivElement> | undefined;
|
|
174
|
+
onFocus?: import('react').FocusEventHandler<HTMLDivElement> | undefined;
|
|
175
|
+
onFocusCapture?: import('react').FocusEventHandler<HTMLDivElement> | undefined;
|
|
176
|
+
onBlur?: import('react').FocusEventHandler<HTMLDivElement> | undefined;
|
|
177
|
+
onBlurCapture?: import('react').FocusEventHandler<HTMLDivElement> | undefined;
|
|
178
|
+
onChange?: import('react').ChangeEventHandler<HTMLDivElement, Element> | undefined;
|
|
179
|
+
onChangeCapture?: import('react').ChangeEventHandler<HTMLDivElement, Element> | undefined;
|
|
180
|
+
onBeforeInput?: import('react').InputEventHandler<HTMLDivElement> | undefined;
|
|
181
|
+
onBeforeInputCapture?: import('react').InputEventHandler<HTMLDivElement> | undefined;
|
|
182
|
+
onInput?: import('react').InputEventHandler<HTMLDivElement> | undefined;
|
|
183
|
+
onInputCapture?: import('react').InputEventHandler<HTMLDivElement> | undefined;
|
|
184
|
+
onReset?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
185
|
+
onResetCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
186
|
+
onSubmit?: import('react').SubmitEventHandler<HTMLDivElement> | undefined;
|
|
187
|
+
onSubmitCapture?: import('react').SubmitEventHandler<HTMLDivElement> | undefined;
|
|
188
|
+
onInvalid?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
189
|
+
onInvalidCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
190
|
+
onLoad?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
191
|
+
onLoadCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
192
|
+
onError?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
193
|
+
onErrorCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
194
|
+
onKeyDown?: import('react').KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
195
|
+
onKeyDownCapture?: import('react').KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
196
|
+
onKeyPress?: import('react').KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
197
|
+
onKeyPressCapture?: import('react').KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
198
|
+
onKeyUp?: import('react').KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
199
|
+
onKeyUpCapture?: import('react').KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
200
|
+
onAbort?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
201
|
+
onAbortCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
202
|
+
onCanPlay?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
203
|
+
onCanPlayCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
204
|
+
onCanPlayThrough?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
205
|
+
onCanPlayThroughCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
206
|
+
onDurationChange?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
207
|
+
onDurationChangeCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
208
|
+
onEmptied?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
209
|
+
onEmptiedCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
210
|
+
onEncrypted?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
211
|
+
onEncryptedCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
212
|
+
onEnded?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
213
|
+
onEndedCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
214
|
+
onLoadedData?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
215
|
+
onLoadedDataCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
216
|
+
onLoadedMetadata?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
217
|
+
onLoadedMetadataCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
218
|
+
onLoadStart?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
219
|
+
onLoadStartCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
220
|
+
onPause?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
221
|
+
onPauseCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
222
|
+
onPlay?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
223
|
+
onPlayCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
224
|
+
onPlaying?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
225
|
+
onPlayingCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
226
|
+
onProgress?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
227
|
+
onProgressCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
228
|
+
onRateChange?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
229
|
+
onRateChangeCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
230
|
+
onSeeked?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
231
|
+
onSeekedCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
232
|
+
onSeeking?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
233
|
+
onSeekingCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
234
|
+
onStalled?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
235
|
+
onStalledCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
236
|
+
onSuspend?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
237
|
+
onSuspendCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
238
|
+
onTimeUpdate?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
239
|
+
onTimeUpdateCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
240
|
+
onVolumeChange?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
241
|
+
onVolumeChangeCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
242
|
+
onWaiting?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
243
|
+
onWaitingCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
244
|
+
onAuxClick?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
245
|
+
onAuxClickCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
246
|
+
onClick?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
247
|
+
onClickCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
248
|
+
onContextMenu?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
249
|
+
onContextMenuCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
250
|
+
onDoubleClick?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
251
|
+
onDoubleClickCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
252
|
+
onDragCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
253
|
+
onDragEndCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
254
|
+
onDragEnter?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
255
|
+
onDragEnterCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
256
|
+
onDragExit?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
257
|
+
onDragExitCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
258
|
+
onDragLeave?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
259
|
+
onDragLeaveCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
260
|
+
onDragOver?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
261
|
+
onDragOverCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
262
|
+
onDragStartCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
263
|
+
onDrop?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
264
|
+
onDropCapture?: import('react').DragEventHandler<HTMLDivElement> | undefined;
|
|
265
|
+
onMouseDown?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
266
|
+
onMouseDownCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
267
|
+
onMouseEnter?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
268
|
+
onMouseLeave?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
269
|
+
onMouseMove?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
270
|
+
onMouseMoveCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
271
|
+
onMouseOut?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
272
|
+
onMouseOutCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
273
|
+
onMouseOver?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
274
|
+
onMouseOverCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
275
|
+
onMouseUp?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
276
|
+
onMouseUpCapture?: import('react').MouseEventHandler<HTMLDivElement> | undefined;
|
|
277
|
+
onSelect?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
278
|
+
onSelectCapture?: import('react').ReactEventHandler<HTMLDivElement> | undefined;
|
|
279
|
+
onTouchCancel?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
280
|
+
onTouchCancelCapture?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
281
|
+
onTouchEnd?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
282
|
+
onTouchEndCapture?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
283
|
+
onTouchMove?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
284
|
+
onTouchMoveCapture?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
285
|
+
onTouchStart?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
286
|
+
onTouchStartCapture?: import('react').TouchEventHandler<HTMLDivElement> | undefined;
|
|
287
|
+
onPointerDown?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
288
|
+
onPointerDownCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
289
|
+
onPointerMove?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
290
|
+
onPointerMoveCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
291
|
+
onPointerUp?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
292
|
+
onPointerUpCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
293
|
+
onPointerCancel?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
294
|
+
onPointerCancelCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
295
|
+
onPointerEnter?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
296
|
+
onPointerLeave?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
297
|
+
onPointerOver?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
298
|
+
onPointerOverCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
299
|
+
onPointerOut?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
300
|
+
onPointerOutCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
301
|
+
onGotPointerCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
302
|
+
onGotPointerCaptureCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
303
|
+
onLostPointerCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
304
|
+
onLostPointerCaptureCapture?: import('react').PointerEventHandler<HTMLDivElement> | undefined;
|
|
305
|
+
onScroll?: import('react').UIEventHandler<HTMLDivElement> | undefined;
|
|
306
|
+
onScrollCapture?: import('react').UIEventHandler<HTMLDivElement> | undefined;
|
|
307
|
+
onScrollEnd?: import('react').UIEventHandler<HTMLDivElement> | undefined;
|
|
308
|
+
onScrollEndCapture?: import('react').UIEventHandler<HTMLDivElement> | undefined;
|
|
309
|
+
onWheel?: import('react').WheelEventHandler<HTMLDivElement> | undefined;
|
|
310
|
+
onWheelCapture?: import('react').WheelEventHandler<HTMLDivElement> | undefined;
|
|
311
|
+
onAnimationStartCapture?: import('react').AnimationEventHandler<HTMLDivElement> | undefined;
|
|
312
|
+
onAnimationEnd?: import('react').AnimationEventHandler<HTMLDivElement> | undefined;
|
|
313
|
+
onAnimationEndCapture?: import('react').AnimationEventHandler<HTMLDivElement> | undefined;
|
|
314
|
+
onAnimationIteration?: import('react').AnimationEventHandler<HTMLDivElement> | undefined;
|
|
315
|
+
onAnimationIterationCapture?: import('react').AnimationEventHandler<HTMLDivElement> | undefined;
|
|
316
|
+
onToggle?: import('react').ToggleEventHandler<HTMLDivElement> | undefined;
|
|
317
|
+
onBeforeToggle?: import('react').ToggleEventHandler<HTMLDivElement> | undefined;
|
|
318
|
+
onTransitionCancel?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
319
|
+
onTransitionCancelCapture?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
320
|
+
onTransitionEnd?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
321
|
+
onTransitionEndCapture?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
322
|
+
onTransitionRun?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
323
|
+
onTransitionRunCapture?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
324
|
+
onTransitionStart?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
325
|
+
onTransitionStartCapture?: import('react').TransitionEventHandler<HTMLDivElement> | undefined;
|
|
326
|
+
};
|
|
327
|
+
content: import("react").JSX.Element;
|
|
328
|
+
};
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export type AlertProps
|
|
4
|
-
/** Semantic meaning — picks the icon and how screen readers announce it. */
|
|
5
|
-
severity?: AlertColor;
|
|
6
|
-
/** `"lg"` (default) or `"sm"` for tighter padding and smaller text. */
|
|
7
|
-
size?: AlertSize;
|
|
8
|
-
};
|
|
1
|
+
import { ComponentPropsWithRef } from 'react';
|
|
2
|
+
import { AlertProps } from './alert-parts';
|
|
3
|
+
export type { AlertColor, AlertProps, AlertSeverity, AlertSize, AlertVariant, } from './alert-parts';
|
|
9
4
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* `
|
|
13
|
-
* `
|
|
14
|
-
* override.
|
|
5
|
+
* A message with Lea Bank's status colours. The ARIA `role` is derived from
|
|
6
|
+
* `severity`: `error` / `warning` announce assertively (`role="alert"`) while
|
|
7
|
+
* `info` / `success` announce politely (`role="status"`). Pass an explicit
|
|
8
|
+
* `role` to override.
|
|
15
9
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* it per-instance with MUI's `closeText`.
|
|
10
|
+
* With `onClose`, a close button is rendered with a translated accessible
|
|
11
|
+
* name — override it per-instance with `closeLabel`.
|
|
19
12
|
*
|
|
20
13
|
* ```tsx
|
|
21
14
|
* <Alert color="purple" size="sm">
|
|
@@ -23,5 +16,7 @@ export type AlertProps = Omit<MuiAlertProps, "severity"> & {
|
|
|
23
16
|
* </Alert>
|
|
24
17
|
* ```
|
|
25
18
|
*/
|
|
26
|
-
export declare function Alert({
|
|
27
|
-
export
|
|
19
|
+
export declare function Alert({ className, ...props }: AlertProps): import("react").JSX.Element;
|
|
20
|
+
export type AlertTitleProps = ComponentPropsWithRef<"div">;
|
|
21
|
+
/** A heading above the alert's message. */
|
|
22
|
+
export declare function AlertTitle({ className, ...rest }: AlertTitleProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AlertProps } from './alert-parts';
|
|
2
|
+
export type GlobalAlertProps = AlertProps & {
|
|
3
|
+
/**
|
|
4
|
+
* Lets the content span the full width instead of stopping at the `lg`
|
|
5
|
+
* breakpoint. The side padding stays.
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
fluid?: boolean;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* An `Alert` that spans the whole page width, for messages about the whole
|
|
12
|
+
* page or session. Place it directly above or below `AppHeader`. It takes the
|
|
13
|
+
* same props and styling as `Alert`, without the rounded corners, and its
|
|
14
|
+
* content follows the `Container` breakpoints and side padding.
|
|
15
|
+
*
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <AppHeader />
|
|
18
|
+
* <GlobalAlert severity="warning" onClose={dismiss}>
|
|
19
|
+
* <AlertTitle>Planned maintenance</AlertTitle>
|
|
20
|
+
* Online banking is unavailable tonight from 22:00 to 23:00.
|
|
21
|
+
* </GlobalAlert>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function GlobalAlert({ fluid, className, ...props }: GlobalAlertProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ProgressCircleColor } from './progress-circle';
|
|
3
|
+
import { StepperLabels } from './use-stepper-labels';
|
|
4
|
+
export type LinearFormStepperProps = {
|
|
5
|
+
/** Active step (1-based). */
|
|
6
|
+
currentStep: number;
|
|
7
|
+
/**
|
|
8
|
+
* Total number of steps. May change between renders, e.g. when the next step
|
|
9
|
+
* from the API reveals a different path; the bar animates to the new value.
|
|
10
|
+
*/
|
|
11
|
+
totalSteps: number;
|
|
12
|
+
/** Title of the current step. Rendered as a heading and names the progress bar. */
|
|
13
|
+
title: ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Called when the back button is pressed. The back button only renders when
|
|
16
|
+
* this is provided, so omit it on the first step or in forms without a back
|
|
17
|
+
* flow.
|
|
18
|
+
*/
|
|
19
|
+
onBack?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Bar colour.
|
|
22
|
+
* @default "purple"
|
|
23
|
+
*/
|
|
24
|
+
color?: ProgressCircleColor;
|
|
25
|
+
/**
|
|
26
|
+
* Heading level of the title.
|
|
27
|
+
* @default "h1"
|
|
28
|
+
*/
|
|
29
|
+
headingLevel?: "h1" | "h2" | "h3";
|
|
30
|
+
/**
|
|
31
|
+
* Id applied to the title. Defaults to a generated id. Use it to move focus to
|
|
32
|
+
* the title when the step changes so the new step is announced. Must be
|
|
33
|
+
* unique in the document.
|
|
34
|
+
*/
|
|
35
|
+
titleId?: string;
|
|
36
|
+
/** Override the built-in translated labels per-instance. */
|
|
37
|
+
labels?: StepperLabels;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Header for a multi-step form whose steps aren't all known up front: a linear
|
|
41
|
+
* progress bar above the current step's title, with an optional back button.
|
|
42
|
+
* Use `FormStepper` instead when the full step list is known.
|
|
43
|
+
*
|
|
44
|
+
* The bar is a `progressbar` named by the title heading, with the step count
|
|
45
|
+
* (`"step X of Y"`) as its value text. The title carries `tabIndex={-1}`; move
|
|
46
|
+
* focus to it (via `titleId`) whenever the step changes so screen-reader users
|
|
47
|
+
* hear the new step.
|
|
48
|
+
*
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <LinearFormStepper
|
|
51
|
+
* currentStep={2}
|
|
52
|
+
* totalSteps={5}
|
|
53
|
+
* title="Refinancing"
|
|
54
|
+
* onBack={() => history.back()}
|
|
55
|
+
* />
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const LinearFormStepper: ({ currentStep, totalSteps, title, onBack, color, headingLevel: Heading, titleId, labels, }: LinearFormStepperProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { LinearFormStepperProps } from './linear-form-stepper';
|
|
3
|
+
/**
|
|
4
|
+
* The step a flow is on, already resolved by the app. The library never
|
|
5
|
+
* defines steps: the app maps its own step (e.g. from the API) to a position
|
|
6
|
+
* and a translated title, then reports it.
|
|
7
|
+
*/
|
|
8
|
+
export type StepProgress = {
|
|
9
|
+
/** Active step (1-based). */
|
|
10
|
+
currentStep: number;
|
|
11
|
+
/** Total number of steps. May change as the flow reveals its path. */
|
|
12
|
+
totalSteps: number;
|
|
13
|
+
/** Translated title of the current step. */
|
|
14
|
+
title: string;
|
|
15
|
+
};
|
|
16
|
+
export type StepProgressProviderProps = {
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Progress to show on the first render, before any page has reported, e.g.
|
|
20
|
+
* so a server-rendered layout paints the bar straight away.
|
|
21
|
+
*/
|
|
22
|
+
initialProgress?: StepProgress;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Holds the step a persistent flow header shows. Put it in the flow layout,
|
|
26
|
+
* above the route's loading boundary, so the header survives step navigations
|
|
27
|
+
* instead of remounting with the page, and its bar animates between steps.
|
|
28
|
+
*
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <StepProgressProvider>
|
|
31
|
+
* <StepProgressHeader onBack={router.back} />
|
|
32
|
+
* {children}
|
|
33
|
+
* </StepProgressProvider>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const StepProgressProvider: ({ children, initialProgress, }: StepProgressProviderProps) => import("react").JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* The last reported step, or `null` before anything has been reported or
|
|
39
|
+
* outside a `StepProgressProvider`. Use it to render `FormStepper` or a custom
|
|
40
|
+
* header from the same state.
|
|
41
|
+
*/
|
|
42
|
+
export declare const useStepProgress: () => StepProgress | null;
|
|
43
|
+
/**
|
|
44
|
+
* Publishes the current step to the nearest `StepProgressProvider`. Pass
|
|
45
|
+
* `null` while the step isn't resolved yet; nothing is reported then. Never
|
|
46
|
+
* clears on unmount, so the header holds its value while the next route's
|
|
47
|
+
* loading fallback is on screen.
|
|
48
|
+
*
|
|
49
|
+
* ```tsx
|
|
50
|
+
* useReportStepProgress({ currentStep: 2, totalSteps: 5, title: t("income") });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const useReportStepProgress: (progress: StepProgress | null) => void;
|
|
54
|
+
export type StepProgressHeaderProps = Omit<LinearFormStepperProps, "currentStep" | "totalSteps" | "title">;
|
|
55
|
+
/**
|
|
56
|
+
* A `LinearFormStepper` driven by the nearest `StepProgressProvider`. Renders
|
|
57
|
+
* nothing until a step has been reported. Everything except the step itself
|
|
58
|
+
* (`onBack`, `color`, `headingLevel`, …) is passed as props.
|
|
59
|
+
*/
|
|
60
|
+
export declare const StepProgressHeader: (props: StepProgressHeaderProps) => import("react").JSX.Element | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type AppHeaderProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Shows the brand divider under the header. Without it, the header gets a
|
|
5
|
+
* bottom border instead.
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
brandDivider?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Lets the content span the full width instead of stopping at the `lg`
|
|
11
|
+
* breakpoint. The side padding stays.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
fluid?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Content for the right-hand side, e.g. buttons. Without children the logo
|
|
17
|
+
* is centred.
|
|
18
|
+
*/
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
};
|
|
21
|
+
export declare const AppHeader: ({ brandDivider, fluid, children, }: AppHeaderProps) => import("react").JSX.Element;
|
|
@@ -3,4 +3,10 @@
|
|
|
3
3
|
* Brand Divider in Lea colors
|
|
4
4
|
*
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type BrandDividerProps = {
|
|
7
|
+
/**
|
|
8
|
+
* The size of the divider.
|
|
9
|
+
*/
|
|
10
|
+
size?: "sm" | "md" | "lg";
|
|
11
|
+
};
|
|
12
|
+
export declare const BrandDivider: ({ size }: BrandDividerProps) => import("react").JSX.Element;
|