@nubisco/ui 3.2.0 → 3.4.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/dist/components/Board.d.ts +23 -0
- package/dist/components/Board.vue.d.ts +16 -8
- package/dist/components/Board.vue.d.ts.map +1 -1
- package/dist/components/Button.vue.d.ts.map +1 -1
- package/dist/components/Charts/GanttChart.vue.d.ts.map +1 -1
- package/dist/components/Charts/InterpolationChart.vue.d.ts.map +1 -1
- package/dist/components/Charts/shared/palette.d.ts +76 -1
- package/dist/components/Charts/shared/palette.d.ts.map +1 -1
- package/dist/components/CommandPalette.vue.d.ts.map +1 -1
- package/dist/components/Confirm.d.ts +199 -0
- package/dist/components/Confirm.env.d.ts +52 -0
- package/dist/components/Confirm.env.d.ts.map +1 -0
- package/dist/components/Confirm.vue.d.ts +61 -0
- package/dist/components/Confirm.vue.d.ts.map +1 -0
- package/dist/components/DatePicker.vue.d.ts +1 -1
- package/dist/components/InlineEdit.d.ts +24 -0
- package/dist/components/InlineEdit.vue.d.ts +20 -0
- package/dist/components/InlineEdit.vue.d.ts.map +1 -0
- package/dist/components/InlineLoading.d.ts +37 -0
- package/dist/components/InlineLoading.vue.d.ts +30 -0
- package/dist/components/InlineLoading.vue.d.ts.map +1 -0
- package/dist/components/MenuItem.vue.d.ts +1 -1
- package/dist/components/Modal.d.ts +35 -1
- package/dist/components/Modal.vue.d.ts +10 -1
- package/dist/components/Modal.vue.d.ts.map +1 -1
- package/dist/components/NotificationCenter.d.ts +184 -0
- package/dist/components/NotificationCenter.vue.d.ts +130 -0
- package/dist/components/NotificationCenter.vue.d.ts.map +1 -0
- package/dist/components/NotificationCenterItem.d.ts +53 -0
- package/dist/components/NotificationCenterItem.vue.d.ts +36 -0
- package/dist/components/NotificationCenterItem.vue.d.ts.map +1 -0
- package/dist/components/ProgressBar.vue.d.ts.map +1 -1
- package/dist/components/Shell.d.ts +138 -8
- package/dist/components/Shell.vue.d.ts +30 -3
- package/dist/components/Shell.vue.d.ts.map +1 -1
- package/dist/components/ShellPanel.d.ts +16 -0
- package/dist/components/ShellPanel.vue.d.ts +1 -0
- package/dist/components/ShellPanel.vue.d.ts.map +1 -1
- package/dist/components/SidebarLink.d.ts +14 -1
- package/dist/components/Skeleton.d.ts +87 -0
- package/dist/components/Skeleton.vue.d.ts +17 -0
- package/dist/components/Skeleton.vue.d.ts.map +1 -0
- package/dist/components/Spinner.d.ts +80 -0
- package/dist/components/Spinner.overlay.d.ts +56 -0
- package/dist/components/Spinner.overlay.d.ts.map +1 -0
- package/dist/components/Spinner.vue.d.ts +25 -0
- package/dist/components/Spinner.vue.d.ts.map +1 -0
- package/dist/components/Stepper.context.d.ts +48 -0
- package/dist/components/Stepper.context.d.ts.map +1 -0
- package/dist/components/Stepper.d.ts +101 -0
- package/dist/components/Stepper.vue.d.ts +31 -0
- package/dist/components/Stepper.vue.d.ts.map +1 -0
- package/dist/components/StepperStep.vue.d.ts +24 -0
- package/dist/components/StepperStep.vue.d.ts.map +1 -0
- package/dist/components/TextInput.vue.d.ts +2 -2
- package/dist/components/TextInput.vue.d.ts.map +1 -1
- package/dist/components/Toast.vue.d.ts +43 -0
- package/dist/components/Toast.vue.d.ts.map +1 -1
- package/dist/components/Toaster.d.ts +93 -0
- package/dist/components/Toaster.vue.d.ts +30 -0
- package/dist/components/Toaster.vue.d.ts.map +1 -0
- package/dist/components/UserMenu.vue.d.ts.map +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/composables/useConfirm.composable.d.ts +45 -0
- package/dist/composables/useConfirm.composable.d.ts.map +1 -0
- package/dist/composables/useInlineLoading.composable.d.ts +43 -0
- package/dist/composables/useInlineLoading.composable.d.ts.map +1 -0
- package/dist/composables/useLoadingAnnouncer.composable.d.ts +63 -0
- package/dist/composables/useLoadingAnnouncer.composable.d.ts.map +1 -0
- package/dist/composables/useScrollLock.composable.d.ts +47 -0
- package/dist/composables/useScrollLock.composable.d.ts.map +1 -0
- package/dist/composables/useShellSlot.composable.d.ts +193 -0
- package/dist/composables/useShellSlot.composable.d.ts.map +1 -0
- package/dist/composables/useToast.composable.d.ts +325 -0
- package/dist/composables/useToast.composable.d.ts.map +1 -0
- package/dist/directives/ToolTip.content.d.ts +20 -0
- package/dist/directives/ToolTip.content.d.ts.map +1 -0
- package/dist/directives/ToolTip.directive.d.ts +94 -8
- package/dist/directives/ToolTip.directive.d.ts.map +1 -1
- package/dist/global.d.ts +20 -0
- package/dist/index.cjs +8 -9
- package/dist/index.mjs +13970 -10511
- package/dist/main.d.ts +46 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/ui.css +1 -1
- package/package.json +1 -1
- package/src/styles/_reset.scss +5 -0
- package/src/styles/_theme.scss +171 -0
- package/src/styles/directives/_tooltip.scss +143 -21
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
type TInspectorSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
2
2
|
type TSidebarVariant = 'compact' | 'verbose'
|
|
3
|
+
type TShellTopbar = 'auto' | 'always' | 'never'
|
|
4
|
+
type TShellCollapseAt = 'md' | 'lg' | 'none'
|
|
3
5
|
|
|
4
6
|
interface IShellProps {
|
|
5
7
|
/**
|
|
6
8
|
* Whether the inspector column is visible.
|
|
9
|
+
*
|
|
10
|
+
* Controlled or uncontrolled, on the same rule as `sidebarOpen` and
|
|
11
|
+
* `inspectorWidth`: pass it (as `v-model:inspector-visible`) and the
|
|
12
|
+
* application owns the state, leave it out and the shell owns it. Either way
|
|
13
|
+
* `update:inspectorVisible` is emitted when the shell closes the inspector
|
|
14
|
+
* itself, which happens on Escape and on the sheet's dismiss button below
|
|
15
|
+
* `collapseAt`.
|
|
16
|
+
*
|
|
17
|
+
* The shell will always be able to close its own sheet: a shell given
|
|
18
|
+
* `:inspector-visible="true"` with nothing listening for the update still
|
|
19
|
+
* hides the overlay locally rather than leaving the user trapped behind it.
|
|
20
|
+
* That override is scoped to the overlay and clears itself as soon as the
|
|
21
|
+
* application sets the prop true again or the frame stops collapsing, so the
|
|
22
|
+
* desktop column is untouched by it.
|
|
7
23
|
* @default false
|
|
8
24
|
*/
|
|
9
25
|
inspectorVisible?: boolean
|
|
@@ -24,19 +40,32 @@ interface IShellProps {
|
|
|
24
40
|
*/
|
|
25
41
|
inspectorSize?: TInspectorSize
|
|
26
42
|
/**
|
|
27
|
-
* Allow the user to resize the inspector by dragging its left edge
|
|
28
|
-
*
|
|
43
|
+
* Allow the user to resize the inspector by dragging its left edge (or by
|
|
44
|
+
* focusing the handle and using the arrow keys), clamped between 288px (the
|
|
45
|
+
* floor) and 50% of the current viewport. The upper clamp is re-evaluated
|
|
46
|
+
* when the window resizes, so a width persisted on a wide monitor cannot
|
|
47
|
+
* squeeze the body on a narrow one.
|
|
29
48
|
* Double-clicking the handle resets to the `inspectorSize` default. Pair with
|
|
30
|
-
* `v-model:inspector-width` to persist the chosen width
|
|
49
|
+
* `v-model:inspector-width` to persist the chosen width; without it the shell
|
|
50
|
+
* keeps the width itself, so `resizable` alone is a working control rather
|
|
51
|
+
* than a handle that moves nothing.
|
|
31
52
|
* @default false
|
|
32
53
|
*/
|
|
33
54
|
resizable?: boolean
|
|
34
55
|
/**
|
|
35
56
|
* The user-chosen inspector width in pixels when `resizable` is on, as a
|
|
36
|
-
* v-model (`v-model:inspector-width`). `null`
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
57
|
+
* v-model (`v-model:inspector-width`). `null` means "use the `inspectorSize`
|
|
58
|
+
* width", which is what a reset emits.
|
|
59
|
+
*
|
|
60
|
+
* Controlled or uncontrolled, decided once at setup by whether the prop was
|
|
61
|
+
* passed at all:
|
|
62
|
+
*
|
|
63
|
+
* - passed (including as `null`): the application owns the width and the
|
|
64
|
+
* shell renders exactly what it is given. `update:inspectorWidth` is
|
|
65
|
+
* emitted on drag, on the arrow keys and on reset.
|
|
66
|
+
* - omitted: the shell owns the width internally. The handle still works and
|
|
67
|
+
* still emits, so an application can listen without binding, but nothing
|
|
68
|
+
* has to be stored for the drag to do anything.
|
|
40
69
|
*/
|
|
41
70
|
inspectorWidth?: number | null
|
|
42
71
|
/**
|
|
@@ -55,6 +84,107 @@ interface IShellProps {
|
|
|
55
84
|
* @default 'compact'
|
|
56
85
|
*/
|
|
57
86
|
sidebarVariant?: TSidebarVariant
|
|
87
|
+
/**
|
|
88
|
+
* When the topbar strip is rendered.
|
|
89
|
+
*
|
|
90
|
+
* - 'auto': rendered only when `topbar-left` or `topbar-right` has content,
|
|
91
|
+
* or a view has claimed one of them with `useShellSlot()`. An application
|
|
92
|
+
* that passes neither gets no empty 50px bar and no border line to hide
|
|
93
|
+
* from the outside.
|
|
94
|
+
* - 'always': rendered unconditionally. This is what the shell did before
|
|
95
|
+
* the check existed; set it if a layout depends on the bar's height being
|
|
96
|
+
* reserved even while it is empty.
|
|
97
|
+
* - 'never': never rendered, whatever the slots say. For a full-bleed route
|
|
98
|
+
* inside an application whose shell is declared once, further up.
|
|
99
|
+
*
|
|
100
|
+
* @default 'auto'
|
|
101
|
+
*/
|
|
102
|
+
topbar?: TShellTopbar
|
|
103
|
+
/**
|
|
104
|
+
* Render the "skip to content" link as the shell's first focusable element.
|
|
105
|
+
*
|
|
106
|
+
* The shell is the only component that knows where the main region is, so it
|
|
107
|
+
* is the only one that can wire a skip link without the application inventing
|
|
108
|
+
* an id. It is visually hidden until focused, so the first Tab on any page
|
|
109
|
+
* offers it and nothing else changes.
|
|
110
|
+
*
|
|
111
|
+
* Set to `false` only if the application already ships its own.
|
|
112
|
+
* @default true
|
|
113
|
+
*/
|
|
114
|
+
skipToContent?: boolean
|
|
115
|
+
/**
|
|
116
|
+
* Label for the skip link. Override for a localised application.
|
|
117
|
+
* @default 'Skip to content'
|
|
118
|
+
*/
|
|
119
|
+
skipToContentLabel?: string
|
|
120
|
+
/**
|
|
121
|
+
* The `id` put on the `<main>` element, and the skip link's target. Set it
|
|
122
|
+
* when something outside the shell needs to address the main region by a
|
|
123
|
+
* known id (a router scroll behaviour, an `aria-controls`). Defaults to a
|
|
124
|
+
* per-instance stable id, so two shells on one page do not collide.
|
|
125
|
+
*/
|
|
126
|
+
mainId?: string
|
|
127
|
+
/**
|
|
128
|
+
* Accessible name for the sidebar `<nav>` landmark. Two navigation landmarks
|
|
129
|
+
* on a page (the rail plus in-page nav) are indistinguishable in a landmark
|
|
130
|
+
* list without one.
|
|
131
|
+
* @default 'Primary'
|
|
132
|
+
*/
|
|
133
|
+
sidebarLabel?: string
|
|
134
|
+
/**
|
|
135
|
+
* Accessible name for the inspector `<aside>` landmark.
|
|
136
|
+
* @default 'Inspector'
|
|
137
|
+
*/
|
|
138
|
+
inspectorLabel?: string
|
|
139
|
+
/**
|
|
140
|
+
* The viewport width below which the frame stops being three columns.
|
|
141
|
+
*
|
|
142
|
+
* A 240px verbose rail plus a 288px inspector leaves nothing for the page on
|
|
143
|
+
* a phone, and the frame is `height: 100dvh; overflow: hidden`, so there is
|
|
144
|
+
* no scroll to escape into. Below this width the sidebar becomes an overlay
|
|
145
|
+
* drawer behind a toggle button and the inspector becomes a full-screen
|
|
146
|
+
* sheet over the content row, topbar included, carrying its own dismiss
|
|
147
|
+
* button. The same thing happens at 200% browser zoom on a
|
|
148
|
+
* laptop, because zoom shrinks the viewport in CSS pixels, which is the
|
|
149
|
+
* WCAG 1.4.10 reflow case.
|
|
150
|
+
*
|
|
151
|
+
* - 'md': collapse below 672px. The default.
|
|
152
|
+
* - 'lg': collapse below 1056px. For products whose rail is verbose and
|
|
153
|
+
* whose inspector is usually open.
|
|
154
|
+
* - 'none': never collapse. The pre-3.3 layout, for a frame that is only
|
|
155
|
+
* ever shown on a desktop (an installed desktop build, a control room).
|
|
156
|
+
*
|
|
157
|
+
* @default 'md'
|
|
158
|
+
*/
|
|
159
|
+
collapseAt?: TShellCollapseAt
|
|
160
|
+
/**
|
|
161
|
+
* Whether the navigation drawer is open at collapsed widths. Optional: pass
|
|
162
|
+
* it (as `v-model:sidebar-open`) to drive the drawer from the application,
|
|
163
|
+
* leave it out and the shell owns the state itself. Ignored above
|
|
164
|
+
* `collapseAt`, where the sidebar is a permanent column.
|
|
165
|
+
*/
|
|
166
|
+
sidebarOpen?: boolean
|
|
167
|
+
/**
|
|
168
|
+
* Accessible name for the button that opens the navigation drawer. The
|
|
169
|
+
* button carries `aria-expanded`, so the label should name the thing, not
|
|
170
|
+
* the action: "Navigation", not "Open navigation".
|
|
171
|
+
* @default 'Navigation'
|
|
172
|
+
*/
|
|
173
|
+
navToggleLabel?: string
|
|
174
|
+
/**
|
|
175
|
+
* Accessible name for the button that closes the inspector sheet below
|
|
176
|
+
* `collapseAt`. The button is rendered only in that overlay state, where the
|
|
177
|
+
* sheet covers the topbar and therefore any close control the product put
|
|
178
|
+
* there.
|
|
179
|
+
* @default 'Close inspector'
|
|
180
|
+
*/
|
|
181
|
+
inspectorCloseLabel?: string
|
|
58
182
|
}
|
|
59
183
|
|
|
60
|
-
export {
|
|
184
|
+
export {
|
|
185
|
+
IShellProps,
|
|
186
|
+
TInspectorSize,
|
|
187
|
+
TSidebarVariant,
|
|
188
|
+
TShellTopbar,
|
|
189
|
+
TShellCollapseAt,
|
|
190
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { IShellProps } from './Shell.d';
|
|
1
|
+
import { IShellProps, TInspectorSize } from './Shell.d';
|
|
2
|
+
declare function setDrawerOpen(open: boolean): void;
|
|
3
|
+
declare function setInspectorVisible(visible: boolean): void;
|
|
2
4
|
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_9: {}, __VLS_11: {}, __VLS_13: {}, __VLS_15: {}, __VLS_17: {}, __VLS_19: {}, __VLS_27: {}, __VLS_29: {}, __VLS_31: {};
|
|
3
5
|
type __VLS_Slots = {} & {
|
|
4
6
|
'outer-menu'?: (props: typeof __VLS_1) => any;
|
|
@@ -27,17 +29,42 @@ type __VLS_Slots = {} & {
|
|
|
27
29
|
} & {
|
|
28
30
|
inspector?: (props: typeof __VLS_31) => any;
|
|
29
31
|
};
|
|
30
|
-
declare const __VLS_base: import("vue").DefineComponent<IShellProps, {
|
|
32
|
+
declare const __VLS_base: import("vue").DefineComponent<IShellProps, {
|
|
33
|
+
/** The `<main>` element, so a parent can scroll or measure the page ground. */
|
|
34
|
+
mainEl: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
35
|
+
/** The sidebar `<nav>`, or null when no sidebar slot has content. */
|
|
36
|
+
sidebarEl: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
37
|
+
/** The inspector `<aside>`. Always present; it animates from zero width. */
|
|
38
|
+
inspectorEl: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
39
|
+
/** Move focus to the main region, exactly as the skip link does. */
|
|
40
|
+
focusMain: () => void | undefined;
|
|
41
|
+
/** Open or close the navigation drawer. No-op above `collapseAt`. */
|
|
42
|
+
setSidebarOpen: typeof setDrawerOpen;
|
|
43
|
+
/** Show or hide the inspector, and emit `update:inspectorVisible`. */
|
|
44
|
+
setInspectorVisible: typeof setInspectorVisible;
|
|
45
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
31
46
|
"update:inspectorWidth": (width: number | null) => any;
|
|
47
|
+
"update:sidebarOpen": (open: boolean) => any;
|
|
48
|
+
"update:inspectorVisible": (visible: boolean) => any;
|
|
32
49
|
}, string, import("vue").PublicProps, Readonly<IShellProps> & Readonly<{
|
|
33
50
|
"onUpdate:inspectorWidth"?: ((width: number | null) => any) | undefined;
|
|
51
|
+
"onUpdate:sidebarOpen"?: ((open: boolean) => any) | undefined;
|
|
52
|
+
"onUpdate:inspectorVisible"?: ((visible: boolean) => any) | undefined;
|
|
34
53
|
}>, {
|
|
35
54
|
inspectorVisible: boolean;
|
|
36
55
|
inspectorExpanded: boolean;
|
|
37
|
-
inspectorSize:
|
|
56
|
+
inspectorSize: TInspectorSize;
|
|
38
57
|
resizable: boolean;
|
|
39
58
|
mainPadding: boolean;
|
|
40
59
|
sidebarVariant: import("./Shell.d").TSidebarVariant;
|
|
60
|
+
topbar: import("./Shell.d").TShellTopbar;
|
|
61
|
+
skipToContent: boolean;
|
|
62
|
+
skipToContentLabel: string;
|
|
63
|
+
sidebarLabel: string;
|
|
64
|
+
inspectorLabel: string;
|
|
65
|
+
collapseAt: import("./Shell.d").TShellCollapseAt;
|
|
66
|
+
navToggleLabel: string;
|
|
67
|
+
inspectorCloseLabel: string;
|
|
41
68
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
42
69
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
43
70
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shell.vue.d.ts","sourceRoot":"","sources":["../../src/components/Shell.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Shell.vue.d.ts","sourceRoot":"","sources":["../../src/components/Shell.vue"],"names":[],"mappings":"AAoqDA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAuSvD,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,QAGnC;AA2FD,iBAAS,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAQ5C;AA0yBD,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAC5Q,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACjD;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACrD;IAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACjD;IAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC9C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAWlD,QAAA,MAAM,UAAU;IArcd,+EAA+E;;IAE/E,qEAAqE;;IAErE,4EAA4E;;IAE5E,oEAAoE;;IAEpE,qEAAqE;;IAErE,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;6EAgctE,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -30,4 +30,20 @@ export interface IShellPanelProps {
|
|
|
30
30
|
* @default false
|
|
31
31
|
*/
|
|
32
32
|
fluid?: boolean
|
|
33
|
+
/**
|
|
34
|
+
* Claim the parent's height and scroll internally. Same name and same
|
|
35
|
+
* semantics as `fill` on NbDataTable: the panel becomes a flex item that
|
|
36
|
+
* takes the space left in a bounded flex column, its header stays pinned,
|
|
37
|
+
* and the content region gets the scrollbar.
|
|
38
|
+
*
|
|
39
|
+
* Like the table, it claims a height rather than creating one: an ancestor
|
|
40
|
+
* has to bound it (a flex column with `min-height: 0`, which NbShell's
|
|
41
|
+
* `bottom` region and inspector column already are).
|
|
42
|
+
*
|
|
43
|
+
* Wins over `fluid` when both are set, and has no effect on a `collapsed`
|
|
44
|
+
* panel, which is header-only by definition.
|
|
45
|
+
*
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
fill?: boolean
|
|
33
49
|
}
|
|
@@ -18,6 +18,7 @@ declare const __VLS_base: import("vue").DefineComponent<IShellPanelProps, {
|
|
|
18
18
|
"onUpdate:size"?: ((size: TShellPanelSize) => any) | undefined;
|
|
19
19
|
}>, {
|
|
20
20
|
size: TShellPanelSize;
|
|
21
|
+
fill: boolean;
|
|
21
22
|
title: string;
|
|
22
23
|
fluid: boolean;
|
|
23
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellPanel.vue.d.ts","sourceRoot":"","sources":["../../src/components/ShellPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShellPanel.vue.d.ts","sourceRoot":"","sources":["../../src/components/ShellPanel.vue"],"names":[],"mappings":"AAwWA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAyBvE,iBAAS,OAAO,CAAC,IAAI,EAAE,eAAe,QAErC;AAkND,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO,IAAW,CAAE;AACjF,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -8,7 +8,20 @@ interface ISidebarLinkProps {
|
|
|
8
8
|
to?: string | Record<string, unknown>
|
|
9
9
|
/** External href — renders as a plain `<a>`. Used when `to` is not set. */
|
|
10
10
|
href?: string
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Tooltip text shown to the right of the sidebar on hover.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Use the `v-nb-tooltip` directive instead. This prop renders a
|
|
15
|
+
* CSS-only `::after` chip that is hover-only (a keyboard user tabbing the
|
|
16
|
+
* sidebar gets nothing), gives the link no accessible name, cannot flip or
|
|
17
|
+
* clamp against the viewport, and is fixed to the right of the anchor, so it
|
|
18
|
+
* is clipped by any sidebar that is not the shell's own. It works only on
|
|
19
|
+
* this one component, which is why three apps rebuilt the affordance by hand
|
|
20
|
+
* for their topbars. `v-nb-tooltip="{ body: 'Settings' }"` replaces it and
|
|
21
|
+
* additionally names the link for assistive technology. The prop still works
|
|
22
|
+
* and is not scheduled for removal, but new code should not use it.
|
|
23
|
+
* See /ui/directives/tooltip.
|
|
24
|
+
*/
|
|
12
25
|
tooltip?: string
|
|
13
26
|
/** Marks the link as the currently active route. */
|
|
14
27
|
active?: boolean
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { IDefaultProps } from '../types/Props.d'
|
|
2
|
+
|
|
3
|
+
enum ESkeletonVariant {
|
|
4
|
+
/** One or more body text lines, sized from a type set. */
|
|
5
|
+
Text = 'text',
|
|
6
|
+
/** A single line sized from a heading type set. */
|
|
7
|
+
Heading = 'heading',
|
|
8
|
+
/** A rectangle: cards, images, charts, map panes, table cells. */
|
|
9
|
+
Block = 'block',
|
|
10
|
+
/** A circle: avatars and round icon buttons. */
|
|
11
|
+
Circle = 'circle',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Type sets the text and heading variants can borrow their metrics from.
|
|
16
|
+
* These are the same names the `--nb-type-*` custom properties are generated
|
|
17
|
+
* from, so a skeleton line is exactly as tall as the text that replaces it.
|
|
18
|
+
*
|
|
19
|
+
* The code sets are here because monospaced blocks are the worst offenders for
|
|
20
|
+
* layout shift: a JSON viewer placeholder measured with body metrics is a
|
|
21
|
+
* different height from the code that lands in it. `display-01` and
|
|
22
|
+
* `display-02` are left out on purpose, since marketing hero type does not
|
|
23
|
+
* arrive asynchronously.
|
|
24
|
+
*/
|
|
25
|
+
type TSkeletonTypeSet =
|
|
26
|
+
| 'label-sm'
|
|
27
|
+
| 'label-md'
|
|
28
|
+
| 'label-lg'
|
|
29
|
+
| 'body-sm'
|
|
30
|
+
| 'body-md'
|
|
31
|
+
| 'body-lg'
|
|
32
|
+
| 'code-sm'
|
|
33
|
+
| 'code-md'
|
|
34
|
+
| 'code-lg'
|
|
35
|
+
| 'heading-01'
|
|
36
|
+
| 'heading-02'
|
|
37
|
+
| 'heading-03'
|
|
38
|
+
| 'heading-04'
|
|
39
|
+
| 'heading-05'
|
|
40
|
+
| 'heading-06'
|
|
41
|
+
|
|
42
|
+
interface ISkeletonProps extends IDefaultProps {
|
|
43
|
+
/** Shape family. */
|
|
44
|
+
variant?: `${ESkeletonVariant}`
|
|
45
|
+
/** Type set the line height is derived from. Text and heading variants only. */
|
|
46
|
+
type?: TSkeletonTypeSet
|
|
47
|
+
/** Number of text lines. Text variant only. */
|
|
48
|
+
lines?: number
|
|
49
|
+
/**
|
|
50
|
+
* Width of the last line when there is more than one, so a paragraph does
|
|
51
|
+
* not read as a solid rectangle. Any CSS length or percentage.
|
|
52
|
+
*/
|
|
53
|
+
lastLineWidth?: string
|
|
54
|
+
/** Width of the placeholder. A number is treated as pixels. */
|
|
55
|
+
width?: string | number
|
|
56
|
+
/**
|
|
57
|
+
* Height of the placeholder. Block and circle variants only: text sizes
|
|
58
|
+
* itself from `type`. A number is treated as pixels.
|
|
59
|
+
*/
|
|
60
|
+
height?: string | number
|
|
61
|
+
/** Corner radius step. Ignored by the circle variant. */
|
|
62
|
+
radius?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'pill'
|
|
63
|
+
/** Turns the shimmer off. Static placeholders still read as loading. */
|
|
64
|
+
animated?: boolean
|
|
65
|
+
/**
|
|
66
|
+
* Accessible announcement. Set it on ONE skeleton per loading region and
|
|
67
|
+
* leave the rest silent, otherwise a table of forty placeholders announces
|
|
68
|
+
* itself forty times.
|
|
69
|
+
*/
|
|
70
|
+
label?: string
|
|
71
|
+
/**
|
|
72
|
+
* Announced once, politely, when the skeleton unmounts ("Comments loaded").
|
|
73
|
+
* The swap from placeholder to content is silent otherwise: the live region
|
|
74
|
+
* that said "loading" is removed at the same moment the content arrives, so
|
|
75
|
+
* nothing is left to speak. Set it on the same single skeleton that carries
|
|
76
|
+
* `label`.
|
|
77
|
+
*
|
|
78
|
+
* It is announced on any unmount, because a component cannot read a prop
|
|
79
|
+
* changed by the same render that removed it. Where the load can fail, call
|
|
80
|
+
* `suppressLoadingAnnouncement()` in the catch (or drive the request through
|
|
81
|
+
* `useInlineLoading`, which does it for you) so a failure is not reported as
|
|
82
|
+
* an arrival.
|
|
83
|
+
*/
|
|
84
|
+
completeLabel?: string
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { ESkeletonVariant, ISkeletonProps, TSkeletonTypeSet }
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ESkeletonVariant, ISkeletonProps, TSkeletonTypeSet } from './Skeleton.d';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<ISkeletonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ISkeletonProps> & Readonly<{}>, {
|
|
3
|
+
label: string;
|
|
4
|
+
type: TSkeletonTypeSet;
|
|
5
|
+
height: string | number;
|
|
6
|
+
width: string | number;
|
|
7
|
+
id: string;
|
|
8
|
+
variant: `${ESkeletonVariant}`;
|
|
9
|
+
lines: number;
|
|
10
|
+
completeLabel: string;
|
|
11
|
+
lastLineWidth: string;
|
|
12
|
+
radius: "none" | "xs" | "sm" | "md" | "lg" | "pill";
|
|
13
|
+
animated: boolean;
|
|
14
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
//# sourceMappingURL=Skeleton.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.vue.d.ts","sourceRoot":"","sources":["../../src/components/Skeleton.vue"],"names":[],"mappings":"AAwYA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,cAAc,CAAA;AAqPrB,QAAA,MAAM,YAAY;;;;;;;;;;;;6EAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { IDefaultProps } from '../types/Props.d'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Diameter is derived from the field height scale: a spinner is always half
|
|
5
|
+
* the height of the field or button of the same size, so `size="md"` lines up
|
|
6
|
+
* optically inside an `md` control without any per-call-site nudging.
|
|
7
|
+
*/
|
|
8
|
+
enum ESpinnerSize {
|
|
9
|
+
ExtraSmall = 'xs',
|
|
10
|
+
Small = 'sm',
|
|
11
|
+
Medium = 'md',
|
|
12
|
+
Large = 'lg',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
enum ESpinnerOverlay {
|
|
16
|
+
/** Inline: the spinner sits in normal flow and takes only its own box. */
|
|
17
|
+
None = 'none',
|
|
18
|
+
/**
|
|
19
|
+
* Covers the nearest positioned ancestor, and blocks it: everything that was
|
|
20
|
+
* inside that ancestor when the spinner appeared is marked `inert` and the
|
|
21
|
+
* ancestor is marked `aria-busy` until it leaves. That ancestor must be
|
|
22
|
+
* positioned.
|
|
23
|
+
*/
|
|
24
|
+
Container = 'container',
|
|
25
|
+
/**
|
|
26
|
+
* Covers the viewport and blocks the application as it stood when it
|
|
27
|
+
* appeared. Anything opened afterwards (a dialog raised by the work itself)
|
|
28
|
+
* paints above it and stays usable.
|
|
29
|
+
*/
|
|
30
|
+
Page = 'page',
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
enum ESpinnerTone {
|
|
34
|
+
/** Brand primary. The default for standalone spinners. */
|
|
35
|
+
Primary = 'primary',
|
|
36
|
+
/** Inherits `color` from the parent, for spinners inside buttons or rows. */
|
|
37
|
+
Inherit = 'inherit',
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface ISpinnerProps extends IDefaultProps {
|
|
41
|
+
/** Diameter step, mapped to half the matching field height. */
|
|
42
|
+
size?: `${ESpinnerSize}`
|
|
43
|
+
/**
|
|
44
|
+
* Accessible name announced by the live region. Say what is loading
|
|
45
|
+
* ("Loading invoices"), not that something is loading.
|
|
46
|
+
*/
|
|
47
|
+
label?: string
|
|
48
|
+
/** Renders `label` as visible text beside the ring as well as announcing it. */
|
|
49
|
+
showLabel?: boolean
|
|
50
|
+
/** Where the spinner is placed: inline, over its container, or over the page. */
|
|
51
|
+
overlay?: `${ESpinnerOverlay}`
|
|
52
|
+
/** Ring colour source. */
|
|
53
|
+
tone?: `${ESpinnerTone}`
|
|
54
|
+
/**
|
|
55
|
+
* Milliseconds to wait before appearing. A spinner that flashes for 80ms is
|
|
56
|
+
* noise, so give fast operations a delay of 300 or so and they resolve
|
|
57
|
+
* before anything is drawn.
|
|
58
|
+
*/
|
|
59
|
+
delay?: number
|
|
60
|
+
/**
|
|
61
|
+
* Announced once, politely, when the spinner unmounts because the work
|
|
62
|
+
* finished ("Invoices loaded"). A spinner that simply disappears tells a
|
|
63
|
+
* screen reader user nothing, so pair this with `label` on any load the user
|
|
64
|
+
* is waiting on rather than watching. Skipped when the spinner never became
|
|
65
|
+
* visible (a `delay` that outlived the request) and when `decorative`.
|
|
66
|
+
*/
|
|
67
|
+
completeLabel?: string
|
|
68
|
+
/**
|
|
69
|
+
* Drops the role, the live region and the label. Use it only when an
|
|
70
|
+
* ancestor already announces the loading state (NbInlineLoading does this,
|
|
71
|
+
* and a button that swaps its own label for a spinner should too), so the
|
|
72
|
+
* same message is not announced twice.
|
|
73
|
+
*
|
|
74
|
+
* Ignored by `overlay="page"`: a full-viewport scrim is the element holding
|
|
75
|
+
* focus and nothing else is left to name it.
|
|
76
|
+
*/
|
|
77
|
+
decorative?: boolean
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { ESpinnerSize, ESpinnerOverlay, ESpinnerTone, ISpinnerProps }
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True for the overlay that arrived first, which is the only one allowed to
|
|
3
|
+
* paint the scrim. Reactive: if the bottom overlay leaves while a second is
|
|
4
|
+
* still up, the survivor takes over the paint rather than blocking invisibly.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isBasePageOverlay(key: symbol): boolean;
|
|
7
|
+
/** The overlay currently on top of the stack, for tests and debugging. */
|
|
8
|
+
export declare function topPageOverlay(): HTMLElement | null;
|
|
9
|
+
/**
|
|
10
|
+
* Marks a host that a blocking overlay must never inert.
|
|
11
|
+
*
|
|
12
|
+
* `inert` is deliberately blunt: it removes a subtree from hit testing, from
|
|
13
|
+
* the tab order AND from the accessibility tree. That is exactly right for the
|
|
14
|
+
* application, and exactly wrong for a node whose only job is to be read out.
|
|
15
|
+
* A toast raised while the page is blocked ("Session expired", "Import
|
|
16
|
+
* finished") is the message the blocked user most needs, and it paints above
|
|
17
|
+
* the scrim by token (`--nb-zindex-toast` is `--nb-zindex-modal` plus 50). If
|
|
18
|
+
* the region that speaks it is inert, the message is painted and silent, which
|
|
19
|
+
* is precisely the paint-and-focus disagreement this module claims to make
|
|
20
|
+
* impossible.
|
|
21
|
+
*
|
|
22
|
+
* So: put `data-nb-overlay-exempt` on any host that exists to announce rather
|
|
23
|
+
* than to be operated. In the library that is `NbToaster`'s announcer and its
|
|
24
|
+
* stack, plus the shared loading announcer. In an application it is any live
|
|
25
|
+
* region you own and mount at the top of the document. Nothing else should
|
|
26
|
+
* carry it: a form that opts itself out of blocking is a form the user can
|
|
27
|
+
* submit while the page says it cannot be used.
|
|
28
|
+
*/
|
|
29
|
+
export declare const NB_OVERLAY_EXEMPT_ATTR = "data-nb-overlay-exempt";
|
|
30
|
+
/**
|
|
31
|
+
* Marks an element as exempt and returns a function that puts it back.
|
|
32
|
+
*
|
|
33
|
+
* For application-owned live regions. Call it once, when the region is
|
|
34
|
+
* mounted; the attribute is read at claim time, so an overlay that is already
|
|
35
|
+
* up does not pick it up retroactively.
|
|
36
|
+
*/
|
|
37
|
+
export declare function markOverlayExempt(element: HTMLElement): () => void;
|
|
38
|
+
export declare function claimPageOverlay(key: symbol, element: HTMLElement): void;
|
|
39
|
+
export declare function releasePageOverlay(key: symbol): void;
|
|
40
|
+
/**
|
|
41
|
+
* Blocks one region rather than the page, for `overlay="container"`.
|
|
42
|
+
*
|
|
43
|
+
* A scrim over a panel stops the mouse and nothing else: the controls under it
|
|
44
|
+
* keep their place in the tab order, so a keyboard user tabs straight into a
|
|
45
|
+
* form that is visibly unavailable and submits it. The same snapshot rule
|
|
46
|
+
* applies here, scoped to the covered container: everything in it at the
|
|
47
|
+
* moment the spinner appeared is inert until the spinner leaves, the container
|
|
48
|
+
* is marked `aria-busy` so assistive tech reads it as being rebuilt, and both
|
|
49
|
+
* attributes are put back exactly as they were found.
|
|
50
|
+
*
|
|
51
|
+
* Returns the release function. Calling it twice is a no-op.
|
|
52
|
+
*/
|
|
53
|
+
export declare function containRegion(container: HTMLElement, exclude: HTMLElement): () => void;
|
|
54
|
+
/** Test helper: drops all state and puts every borrowed attribute back. */
|
|
55
|
+
export declare function resetPageOverlays(): void;
|
|
56
|
+
//# sourceMappingURL=Spinner.overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.overlay.d.ts","sourceRoot":"","sources":["../../src/components/Spinner.overlay.ts"],"names":[],"mappings":"AAuEA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAInD;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AA8B9D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,IAAI,CAMlE;AAqID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CA6BxE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBpD;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,WAAW,GACnB,MAAM,IAAI,CAoBZ;AA6BD,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ESpinnerOverlay, ESpinnerSize, ESpinnerTone, ISpinnerProps } from './Spinner.d';
|
|
2
|
+
declare var __VLS_7: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_7) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<ISpinnerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ISpinnerProps> & Readonly<{}>, {
|
|
7
|
+
size: `${ESpinnerSize}`;
|
|
8
|
+
label: string;
|
|
9
|
+
id: string;
|
|
10
|
+
overlay: `${ESpinnerOverlay}`;
|
|
11
|
+
tone: `${ESpinnerTone}`;
|
|
12
|
+
showLabel: boolean;
|
|
13
|
+
delay: number;
|
|
14
|
+
completeLabel: string;
|
|
15
|
+
decorative: boolean;
|
|
16
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
21
|
+
new (): {
|
|
22
|
+
$slots: S;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=Spinner.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.vue.d.ts","sourceRoot":"","sources":["../../src/components/Spinner.vue"],"names":[],"mappings":"AAifA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACd,MAAM,aAAa,CAAA;AAsVpB,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAO/C,QAAA,MAAM,UAAU;;;;;;;;;;6EAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ComputedRef, InjectionKey, Ref } from 'vue';
|
|
2
|
+
import type { EStepStatus, IStepperLabels } from './Stepper.d';
|
|
3
|
+
/**
|
|
4
|
+
* One step's entry in the parent's registry.
|
|
5
|
+
*
|
|
6
|
+
* `el` is a getter rather than an element because a step registers during
|
|
7
|
+
* `setup()`, before its `<li>` exists. The parent calls it once the DOM is
|
|
8
|
+
* there, which is how the registry can be re-sorted into document order.
|
|
9
|
+
*/
|
|
10
|
+
export interface IStepperEntry {
|
|
11
|
+
uid: string;
|
|
12
|
+
disabled: ComputedRef<boolean>;
|
|
13
|
+
el: () => HTMLElement | null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* What an `NbStepperStep` needs from the `NbStepper` around it.
|
|
17
|
+
*
|
|
18
|
+
* Lives in a `.ts` rather than the `.d.ts` beside it because `Symbol()` is a
|
|
19
|
+
* runtime value, matching `Accordion.context.ts`.
|
|
20
|
+
*/
|
|
21
|
+
export interface IStepperContext {
|
|
22
|
+
/** Index of the current step. */
|
|
23
|
+
current: Readonly<Ref<number>>;
|
|
24
|
+
/** Furthest index reached, which is the boundary `navigable` opens up. */
|
|
25
|
+
furthest: Readonly<Ref<number>>;
|
|
26
|
+
orientation: Readonly<Ref<string>>;
|
|
27
|
+
size: Readonly<Ref<string>>;
|
|
28
|
+
navigable: Readonly<Ref<boolean>>;
|
|
29
|
+
labels: ComputedRef<Required<IStepperLabels>>;
|
|
30
|
+
/**
|
|
31
|
+
* Registered step ids in **document order**, which is the single source of
|
|
32
|
+
* every step's number and derived status. Mount order is not document order
|
|
33
|
+
* once a step is added, removed or moved after the first render.
|
|
34
|
+
*/
|
|
35
|
+
order: Readonly<Ref<string[]>>;
|
|
36
|
+
/** Index of the one step that holds `tabindex="0"`, or -1 when none does. */
|
|
37
|
+
tabbable: ComputedRef<number>;
|
|
38
|
+
/** Add a step and get back its remover. */
|
|
39
|
+
register: (entry: IStepperEntry) => () => void;
|
|
40
|
+
/** Whether a step at `index` may be clicked back to. */
|
|
41
|
+
clickable: (index: number, disabled: boolean) => boolean;
|
|
42
|
+
/** Move to a step. Ignored unless `clickable` agrees. */
|
|
43
|
+
select: (index: number, disabled: boolean) => void;
|
|
44
|
+
}
|
|
45
|
+
/** Status resolution shared by the step and its tests. */
|
|
46
|
+
export type TStepStatus = `${EStepStatus}`;
|
|
47
|
+
export declare const NB_STEPPER_CONTEXT: InjectionKey<IStepperContext>;
|
|
48
|
+
//# sourceMappingURL=Stepper.context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stepper.context.d.ts","sourceRoot":"","sources":["../../src/components/Stepper.context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9B,EAAE,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9B,0EAA0E;IAC1E,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/B,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAClC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3B,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACjC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;IAC7C;;;;OAIG;IACH,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC9B,6EAA6E;IAC7E,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,IAAI,CAAA;IAC9C,wDAAwD;IACxD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAA;IACxD,yDAAyD;IACzD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD;AAED,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,GAAG,WAAW,EAAE,CAAA;AAE1C,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,eAAe,CAC/B,CAAA"}
|