@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.
Files changed (89) hide show
  1. package/dist/components/Board.d.ts +23 -0
  2. package/dist/components/Board.vue.d.ts +16 -8
  3. package/dist/components/Board.vue.d.ts.map +1 -1
  4. package/dist/components/Button.vue.d.ts.map +1 -1
  5. package/dist/components/Charts/GanttChart.vue.d.ts.map +1 -1
  6. package/dist/components/Charts/InterpolationChart.vue.d.ts.map +1 -1
  7. package/dist/components/Charts/shared/palette.d.ts +76 -1
  8. package/dist/components/Charts/shared/palette.d.ts.map +1 -1
  9. package/dist/components/CommandPalette.vue.d.ts.map +1 -1
  10. package/dist/components/Confirm.d.ts +199 -0
  11. package/dist/components/Confirm.env.d.ts +52 -0
  12. package/dist/components/Confirm.env.d.ts.map +1 -0
  13. package/dist/components/Confirm.vue.d.ts +61 -0
  14. package/dist/components/Confirm.vue.d.ts.map +1 -0
  15. package/dist/components/DatePicker.vue.d.ts +1 -1
  16. package/dist/components/InlineEdit.d.ts +24 -0
  17. package/dist/components/InlineEdit.vue.d.ts +20 -0
  18. package/dist/components/InlineEdit.vue.d.ts.map +1 -0
  19. package/dist/components/InlineLoading.d.ts +37 -0
  20. package/dist/components/InlineLoading.vue.d.ts +30 -0
  21. package/dist/components/InlineLoading.vue.d.ts.map +1 -0
  22. package/dist/components/MenuItem.vue.d.ts +1 -1
  23. package/dist/components/Modal.d.ts +35 -1
  24. package/dist/components/Modal.vue.d.ts +10 -1
  25. package/dist/components/Modal.vue.d.ts.map +1 -1
  26. package/dist/components/NotificationCenter.d.ts +184 -0
  27. package/dist/components/NotificationCenter.vue.d.ts +130 -0
  28. package/dist/components/NotificationCenter.vue.d.ts.map +1 -0
  29. package/dist/components/NotificationCenterItem.d.ts +53 -0
  30. package/dist/components/NotificationCenterItem.vue.d.ts +36 -0
  31. package/dist/components/NotificationCenterItem.vue.d.ts.map +1 -0
  32. package/dist/components/ProgressBar.vue.d.ts.map +1 -1
  33. package/dist/components/Shell.d.ts +138 -8
  34. package/dist/components/Shell.vue.d.ts +30 -3
  35. package/dist/components/Shell.vue.d.ts.map +1 -1
  36. package/dist/components/ShellPanel.d.ts +16 -0
  37. package/dist/components/ShellPanel.vue.d.ts +1 -0
  38. package/dist/components/ShellPanel.vue.d.ts.map +1 -1
  39. package/dist/components/SidebarLink.d.ts +14 -1
  40. package/dist/components/Skeleton.d.ts +87 -0
  41. package/dist/components/Skeleton.vue.d.ts +17 -0
  42. package/dist/components/Skeleton.vue.d.ts.map +1 -0
  43. package/dist/components/Spinner.d.ts +80 -0
  44. package/dist/components/Spinner.overlay.d.ts +56 -0
  45. package/dist/components/Spinner.overlay.d.ts.map +1 -0
  46. package/dist/components/Spinner.vue.d.ts +25 -0
  47. package/dist/components/Spinner.vue.d.ts.map +1 -0
  48. package/dist/components/Stepper.context.d.ts +48 -0
  49. package/dist/components/Stepper.context.d.ts.map +1 -0
  50. package/dist/components/Stepper.d.ts +101 -0
  51. package/dist/components/Stepper.vue.d.ts +31 -0
  52. package/dist/components/Stepper.vue.d.ts.map +1 -0
  53. package/dist/components/StepperStep.vue.d.ts +24 -0
  54. package/dist/components/StepperStep.vue.d.ts.map +1 -0
  55. package/dist/components/TextInput.vue.d.ts +2 -2
  56. package/dist/components/TextInput.vue.d.ts.map +1 -1
  57. package/dist/components/Toast.vue.d.ts +43 -0
  58. package/dist/components/Toast.vue.d.ts.map +1 -1
  59. package/dist/components/Toaster.d.ts +93 -0
  60. package/dist/components/Toaster.vue.d.ts +30 -0
  61. package/dist/components/Toaster.vue.d.ts.map +1 -0
  62. package/dist/components/UserMenu.vue.d.ts.map +1 -1
  63. package/dist/components/index.d.ts.map +1 -1
  64. package/dist/composables/useConfirm.composable.d.ts +45 -0
  65. package/dist/composables/useConfirm.composable.d.ts.map +1 -0
  66. package/dist/composables/useInlineLoading.composable.d.ts +43 -0
  67. package/dist/composables/useInlineLoading.composable.d.ts.map +1 -0
  68. package/dist/composables/useLoadingAnnouncer.composable.d.ts +63 -0
  69. package/dist/composables/useLoadingAnnouncer.composable.d.ts.map +1 -0
  70. package/dist/composables/useScrollLock.composable.d.ts +47 -0
  71. package/dist/composables/useScrollLock.composable.d.ts.map +1 -0
  72. package/dist/composables/useShellSlot.composable.d.ts +193 -0
  73. package/dist/composables/useShellSlot.composable.d.ts.map +1 -0
  74. package/dist/composables/useToast.composable.d.ts +325 -0
  75. package/dist/composables/useToast.composable.d.ts.map +1 -0
  76. package/dist/directives/ToolTip.content.d.ts +20 -0
  77. package/dist/directives/ToolTip.content.d.ts.map +1 -0
  78. package/dist/directives/ToolTip.directive.d.ts +94 -8
  79. package/dist/directives/ToolTip.directive.d.ts.map +1 -1
  80. package/dist/global.d.ts +20 -0
  81. package/dist/index.cjs +8 -9
  82. package/dist/index.mjs +13970 -10511
  83. package/dist/main.d.ts +46 -3
  84. package/dist/main.d.ts.map +1 -1
  85. package/dist/ui.css +1 -1
  86. package/package.json +1 -1
  87. package/src/styles/_reset.scss +5 -0
  88. package/src/styles/_theme.scss +171 -0
  89. 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, clamped
28
- * between the `inspectorSize` width (the floor) and 50% of the viewport.
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` (the default / reset state)
37
- * means "use the `inspectorSize` width". The component emits
38
- * `update:inspectorWidth` on drag and on double-click reset; the consumer
39
- * owns persistence.
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 { IShellProps, TInspectorSize, TSidebarVariant }
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, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
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: import("./Shell.d").TInspectorSize;
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":"AAklBA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA2WvC,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;AAOlD,QAAA,MAAM,UAAU;;;;;;;;;;;6EAId,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"}
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":"AAkSA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAwBvE,iBAAS,OAAO,CAAC,IAAI,EAAE,eAAe,QAErC;AAwLD,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"}
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
- /** Tooltip text shown to the right of the sidebar on hover. */
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"}