@octans/ui 1.0.0 → 1.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.
Files changed (62) hide show
  1. package/README.md +45 -2
  2. package/dist/components/ActionList/ActionList.vue.d.ts +12 -4
  3. package/dist/components/ActionList/ActionListButton.vue.d.ts +13 -1
  4. package/dist/components/AppFrame/AppFrame.vue.d.ts +3 -3
  5. package/dist/components/Badge/Badge.vue.d.ts +3 -3
  6. package/dist/components/Banner/Banner.vue.d.ts +18 -0
  7. package/dist/components/Button/Button.vue.d.ts +66 -0
  8. package/dist/components/Calendar/types.d.ts +52 -0
  9. package/dist/components/CalendarHeatmap/CalendarHeatmap.vue.d.ts +1 -1
  10. package/dist/components/Card/CardSection.vue.d.ts +1 -1
  11. package/dist/components/ColorSelector/ColorSelector.vue.d.ts +1 -1
  12. package/dist/components/ColorSelector/types.d.ts +2 -2
  13. package/dist/components/DataTable/BulkActions.vue.d.ts +21 -3
  14. package/dist/components/DatePicker/types.d.ts +33 -0
  15. package/dist/components/FileInput/FileInput.vue.d.ts +104 -0
  16. package/dist/components/FileInput/ItemList.vue.d.ts +6 -0
  17. package/dist/components/FileInput/pageDrop.d.ts +23 -0
  18. package/dist/components/Filters/FilterActions.vue.d.ts +21 -3
  19. package/dist/components/Filters/FilterItem.vue.d.ts +31 -3
  20. package/dist/components/Filters/Filters.vue.d.ts +73 -9
  21. package/dist/components/Formatter/Formatter.vue.d.ts +18 -0
  22. package/dist/components/KeyboardKey/KeyboardKey.vue.d.ts +38 -0
  23. package/dist/components/KeyboardKey/index.d.ts +2 -0
  24. package/dist/components/Labelled/Labelled.vue.d.ts +18 -2
  25. package/dist/components/Modal/ModalSection.vue.d.ts +71 -0
  26. package/dist/components/Modal/index.d.ts +2 -1
  27. package/dist/components/Page/Page.vue.d.ts +34 -4
  28. package/dist/components/{Popper/Popper.vue.d.ts → Popover/Popover.vue.d.ts} +4 -4
  29. package/dist/components/Popover/index.d.ts +90 -0
  30. package/dist/components/{Popper → Popover}/types.d.ts +3 -3
  31. package/dist/components/RangeSlider/RangeSlider.vue.d.ts +27 -0
  32. package/dist/components/Select/Select.vue.d.ts +35 -3
  33. package/dist/components/SkeletonPage/SkeletonPage.vue.d.ts +19 -0
  34. package/dist/components/SkeletonPage/index.d.ts +2 -0
  35. package/dist/components/SkeletonPage/types.d.ts +26 -0
  36. package/dist/components/Tabs/Tabs.vue.d.ts +1 -14
  37. package/dist/components/Tabs/types.d.ts +11 -1
  38. package/dist/components/Tag/Tag.vue.d.ts +3 -3
  39. package/dist/components/TextField/types.d.ts +10 -0
  40. package/dist/components/TimePicker/types.d.ts +10 -0
  41. package/dist/components/ToggleSwitch/ToggleSwitch.vue.d.ts +8 -2
  42. package/dist/components/ToggleSwitch/types.d.ts +29 -0
  43. package/dist/components/Tooltip/Tooltip.vue.d.ts +2 -2
  44. package/dist/components/all.d.ts +3 -1
  45. package/dist/components/types.d.ts +5 -0
  46. package/dist/lib.d.ts +4 -1
  47. package/dist/reset.css +73 -0
  48. package/dist/style.css +1 -1
  49. package/dist/ui.js +4255 -3770
  50. package/dist/ui.umd.js +3 -3
  51. package/dist/utils/color.d.ts +11 -0
  52. package/dist/utils/contrastPairs.d.ts +39 -0
  53. package/dist/utils/createTheme.d.ts +29 -0
  54. package/dist/utils/customTheme.d.ts +1 -1
  55. package/dist/utils/date.d.ts +12 -1
  56. package/dist/utils/format.d.ts +8 -0
  57. package/dist/utils/positionPanel.d.ts +2 -2
  58. package/dist/utils/radix.d.ts +2 -2
  59. package/dist/utils/tokens.d.ts +1 -1
  60. package/package.json +29 -24
  61. package/skills/octans-ui/SKILL.md +303 -0
  62. package/dist/components/Popper/index.d.ts +0 -2
@@ -0,0 +1,38 @@
1
+ /**
2
+ * A single key on a keyboard, for documenting a shortcut in running text:
3
+ *
4
+ * ```vue
5
+ * Press <KeyboardKey>⌘</KeyboardKey><KeyboardKey>K</KeyboardKey> to search.
6
+ * ```
7
+ *
8
+ * It renders a real `<kbd>`, which is what says "keyboard input" to anything
9
+ * reading the page rather than looking at it — the styling is the smaller
10
+ * half of the job.
11
+ */
12
+ export interface KeyboardKeyProps {
13
+ /**
14
+ * The key to draw. The default slot works too and wins if both are given.
15
+ */
16
+ label?: string;
17
+ /**
18
+ * A smaller key, for a shortcut sitting inside a menu row or a table cell
19
+ * rather than in prose.
20
+ */
21
+ size?: 'small' | 'medium';
22
+ }
23
+ declare var __VLS_1: {};
24
+ type __VLS_Slots = {} & {
25
+ default?: (props: typeof __VLS_1) => any;
26
+ };
27
+ declare const __VLS_base: import('vue').DefineComponent<KeyboardKeyProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<KeyboardKeyProps> & Readonly<{}>, {
28
+ size: "small" | "medium";
29
+ label: string;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
34
+ type __VLS_WithSlots<T, S> = T & {
35
+ new (): {
36
+ $slots: S;
37
+ };
38
+ };
@@ -0,0 +1,2 @@
1
+ export { default as KeyboardKey } from './KeyboardKey.vue';
2
+ export type { KeyboardKeyProps } from './KeyboardKey.vue';
@@ -46,7 +46,15 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
46
46
  required: false;
47
47
  };
48
48
  /**
49
- * @deprecated Makes the label title bold.
49
+ * Marks the field as required, drawing an asterisk after the label.
50
+ *
51
+ * This is the VISUAL half only. The control that owns the field is
52
+ * responsible for the other half — `aria-required` on the input itself —
53
+ * which every form component in the library does when it forwards this.
54
+ *
55
+ * It used to bold the entire field instead, which was marked deprecated
56
+ * and did not survive: the bold inherited down into help text and the
57
+ * control, and said nothing about the field being required.
50
58
  */
51
59
  required: {
52
60
  type: BooleanConstructor;
@@ -99,7 +107,15 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
99
107
  required: false;
100
108
  };
101
109
  /**
102
- * @deprecated Makes the label title bold.
110
+ * Marks the field as required, drawing an asterisk after the label.
111
+ *
112
+ * This is the VISUAL half only. The control that owns the field is
113
+ * responsible for the other half — `aria-required` on the input itself —
114
+ * which every form component in the library does when it forwards this.
115
+ *
116
+ * It used to bold the entire field instead, which was marked deprecated
117
+ * and did not survive: the bold inherited down into help text and the
118
+ * control, and said nothing about the field being required.
103
119
  */
104
120
  required: {
105
121
  type: BooleanConstructor;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * A band of content inside a `Modal`, divided from the next by a rule — the
3
+ * same relationship `CardSection` has with `Card`, and deliberately the same
4
+ * shape, so knowing one is knowing the other.
5
+ *
6
+ * Modal's body is a plain slot, so sections are simply the children you put
7
+ * in it:
8
+ *
9
+ * ```vue
10
+ * <Modal :visible="visible" title="Settings">
11
+ * <ModalSection title="Account">…</ModalSection>
12
+ * <ModalSection title="Notifications">…</ModalSection>
13
+ * </Modal>
14
+ * ```
15
+ *
16
+ * The body's own padding steps aside when sections are present — see
17
+ * `data-modal-section` in Modal.vue — so a sectioned modal is not padded
18
+ * twice.
19
+ */
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
23
+ /**
24
+ * The title heading of the section.
25
+ */
26
+ title: {
27
+ type: StringConstructor;
28
+ };
29
+ /**
30
+ * Renders the section with a subtle background colour, for a band that
31
+ * should read as secondary to the ones around it.
32
+ */
33
+ subdued: {
34
+ type: BooleanConstructor;
35
+ };
36
+ /**
37
+ * Sections are padded by default. Turn it off for content that has to run
38
+ * to the section's edges — a table, a full-bleed image.
39
+ */
40
+ padded: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
45
+ [key: string]: any;
46
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
47
+ /**
48
+ * The title heading of the section.
49
+ */
50
+ title: {
51
+ type: StringConstructor;
52
+ };
53
+ /**
54
+ * Renders the section with a subtle background colour, for a band that
55
+ * should read as secondary to the ones around it.
56
+ */
57
+ subdued: {
58
+ type: BooleanConstructor;
59
+ };
60
+ /**
61
+ * Sections are padded by default. Turn it off for content that has to run
62
+ * to the section's edges — a table, a full-bleed image.
63
+ */
64
+ padded: {
65
+ type: BooleanConstructor;
66
+ default: boolean;
67
+ };
68
+ }>> & Readonly<{}>, {
69
+ subdued: boolean;
70
+ padded: boolean;
71
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -1,10 +1,11 @@
1
1
  import { default as Modal } from './Modal.vue';
2
2
  import { default as ModalHost } from './ModalHost.vue';
3
+ import { default as ModalSection } from './ModalSection.vue';
3
4
  import type * as Api from './api/types';
4
5
  export declare const genericModal: <Result = unknown>(opts: Api.GenericModalOptions) => Promise<Result | undefined>;
5
6
  export declare const alertModal: <Result = unknown>(opts: Api.AlertModalOptions) => Promise<Result | undefined>;
6
7
  export declare const confirmModal: <Result = boolean>(opts: Api.ConfirmModalOptions) => Promise<Result | undefined>;
7
8
  export declare const promptModal: <Result = string>(opts: Api.PromptModalOptions) => Promise<Result | undefined>;
8
- export { Modal, ModalHost };
9
+ export { Modal, ModalHost, ModalSection };
9
10
  export type { ModalProps } from './types';
10
11
  export type { ModalOptions, ModalActionType, AlertModalOptions, ConfirmModalOptions, GenericModalOptions, PromptModalOptions } from './api/types';
@@ -1,11 +1,41 @@
1
1
  import { PageProps } from './types';
2
- declare var __VLS_21: {}, __VLS_60: {}, __VLS_77: {};
2
+ declare var __VLS_1: {}, __VLS_8: {
3
+ breadcrumbs: import('./types').BreadcrumbType[];
4
+ }, __VLS_18: {}, __VLS_20: {
5
+ title: string | undefined;
6
+ }, __VLS_22: {}, __VLS_31: {}, __VLS_39: {
7
+ subtitle: string | undefined;
8
+ }, __VLS_41: {
9
+ actions: import('../types').ActionType[];
10
+ groups: import('./types').ActionGroupType[];
11
+ }, __VLS_63: {
12
+ sections: {
13
+ title: string;
14
+ items: import('../types').ActionType[];
15
+ }[];
16
+ }, __VLS_76: {}, __VLS_93: {};
3
17
  type __VLS_Slots = {} & {
4
- badge?: (props: typeof __VLS_21) => any;
18
+ loader?: (props: typeof __VLS_1) => any;
19
+ } & {
20
+ breadcrumbs?: (props: typeof __VLS_8) => any;
21
+ } & {
22
+ header?: (props: typeof __VLS_18) => any;
23
+ } & {
24
+ title?: (props: typeof __VLS_20) => any;
25
+ } & {
26
+ help?: (props: typeof __VLS_22) => any;
27
+ } & {
28
+ badge?: (props: typeof __VLS_31) => any;
29
+ } & {
30
+ subtitle?: (props: typeof __VLS_39) => any;
31
+ } & {
32
+ secondaryActions?: (props: typeof __VLS_41) => any;
33
+ } & {
34
+ collapsedActions?: (props: typeof __VLS_63) => any;
5
35
  } & {
6
- primaryAction?: (props: typeof __VLS_60) => any;
36
+ primaryAction?: (props: typeof __VLS_76) => any;
7
37
  } & {
8
- default?: (props: typeof __VLS_77) => any;
38
+ default?: (props: typeof __VLS_93) => any;
9
39
  };
10
40
  declare const __VLS_base: import('vue').DefineComponent<PageProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
11
41
  save: () => any;
@@ -1,4 +1,4 @@
1
- import { PopperProps } from './types';
1
+ import { PopoverProps } from './types';
2
2
  declare function show(): void;
3
3
  declare function hide(): void;
4
4
  declare function toggle(): void;
@@ -18,16 +18,16 @@ type __VLS_Slots = {} & {
18
18
  } & {
19
19
  default?: (props: typeof __VLS_40) => any;
20
20
  };
21
- declare const __VLS_base: import('vue').DefineComponent<PopperProps, {
21
+ declare const __VLS_base: import('vue').DefineComponent<PopoverProps, {
22
22
  show: typeof show;
23
23
  hide: typeof hide;
24
24
  toggle: typeof toggle;
25
25
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
26
26
  "update:visible": (val: boolean) => any;
27
- }, string, import('vue').PublicProps, Readonly<PopperProps> & Readonly<{
27
+ }, string, import('vue').PublicProps, Readonly<PopoverProps> & Readonly<{
28
28
  "onUpdate:visible"?: ((val: boolean) => any) | undefined;
29
29
  }>, {
30
- placement: import('./types').PopperPlacementType;
30
+ placement: import('./types').PopoverPlacementType;
31
31
  teleportTo: string;
32
32
  disabled: boolean;
33
33
  autoTriggerToggle: boolean;
@@ -0,0 +1,90 @@
1
+ import { PopoverPlacementType, PopoverProps } from './types';
2
+ export { default as Popover } from './Popover.vue';
3
+ export * from './types';
4
+ /**
5
+ * @deprecated Renamed to `Popover`.
6
+ *
7
+ * The component was never built on popper.js — it wraps reka-ui's Popover
8
+ * primitives — so the name pointed at a library the library does not use, and
9
+ * away from the thing every design system calls this. The alias keeps existing
10
+ * imports working and will be removed in a future major.
11
+ */
12
+ export declare const Popper: {
13
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<PopoverProps> & Readonly<{
14
+ "onUpdate:visible"?: ((val: boolean) => any) | undefined;
15
+ }>, {
16
+ show: () => void;
17
+ hide: () => void;
18
+ toggle: () => void;
19
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
+ "update:visible": (val: boolean) => any;
21
+ }, import('vue').PublicProps, {
22
+ placement: PopoverPlacementType;
23
+ teleportTo: string;
24
+ disabled: boolean;
25
+ autoTriggerToggle: boolean;
26
+ autoHide: boolean;
27
+ hover: boolean;
28
+ zIndex: number;
29
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
30
+ P: {};
31
+ B: {};
32
+ D: {};
33
+ C: {};
34
+ M: {};
35
+ Defaults: {};
36
+ }, Readonly<PopoverProps> & Readonly<{
37
+ "onUpdate:visible"?: ((val: boolean) => any) | undefined;
38
+ }>, {
39
+ show: () => void;
40
+ hide: () => void;
41
+ toggle: () => void;
42
+ }, {}, {}, {}, {
43
+ placement: PopoverPlacementType;
44
+ teleportTo: string;
45
+ disabled: boolean;
46
+ autoTriggerToggle: boolean;
47
+ autoHide: boolean;
48
+ hover: boolean;
49
+ zIndex: number;
50
+ }>;
51
+ __isFragment?: never;
52
+ __isTeleport?: never;
53
+ __isSuspense?: never;
54
+ } & import('vue').ComponentOptionsBase<Readonly<PopoverProps> & Readonly<{
55
+ "onUpdate:visible"?: ((val: boolean) => any) | undefined;
56
+ }>, {
57
+ show: () => void;
58
+ hide: () => void;
59
+ toggle: () => void;
60
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
61
+ "update:visible": (val: boolean) => any;
62
+ }, string, {
63
+ placement: PopoverPlacementType;
64
+ teleportTo: string;
65
+ disabled: boolean;
66
+ autoTriggerToggle: boolean;
67
+ autoHide: boolean;
68
+ hover: boolean;
69
+ zIndex: number;
70
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
71
+ $slots: {
72
+ trigger?: (props: {
73
+ visible: boolean;
74
+ show: () => void;
75
+ hide: () => void;
76
+ toggle: () => void;
77
+ }) => any;
78
+ } & {
79
+ default?: (props: {
80
+ visible: boolean;
81
+ show: () => void;
82
+ hide: () => void;
83
+ toggle: () => void;
84
+ }) => any;
85
+ };
86
+ });
87
+ /** @deprecated Renamed to `PopoverProps`. */
88
+ export type PopperProps = PopoverProps;
89
+ /** @deprecated Renamed to `PopoverPlacementType`. */
90
+ export type PopperPlacementType = PopoverPlacementType;
@@ -1,7 +1,7 @@
1
- export type PopperPlacementType = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';
2
- export interface PopperProps {
1
+ export type PopoverPlacementType = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';
2
+ export interface PopoverProps {
3
3
  visible?: boolean;
4
- placement?: PopperPlacementType;
4
+ placement?: PopoverPlacementType;
5
5
  teleportTo?: string;
6
6
  disabled?: boolean;
7
7
  /**
@@ -14,6 +14,19 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
14
14
  error: {
15
15
  type: PropType<string | false | null>;
16
16
  };
17
+ /**
18
+ * Marks the field as required: an asterisk after the label, and
19
+ * `aria-required` on the control.
20
+ *
21
+ * Announced, not enforced — it deliberately does NOT set the native
22
+ * `required` attribute, so the browser's own validation bubble stays out
23
+ * of the way of whatever the app does about errors. Use `error` to show a
24
+ * failure.
25
+ */
26
+ required: {
27
+ type: BooleanConstructor;
28
+ default: boolean;
29
+ };
17
30
  /**
18
31
  * Help text to show below the control.
19
32
  */
@@ -105,6 +118,19 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
105
118
  error: {
106
119
  type: PropType<string | false | null>;
107
120
  };
121
+ /**
122
+ * Marks the field as required: an asterisk after the label, and
123
+ * `aria-required` on the control.
124
+ *
125
+ * Announced, not enforced — it deliberately does NOT set the native
126
+ * `required` attribute, so the browser's own validation bubble stays out
127
+ * of the way of whatever the app does about errors. Use `error` to show a
128
+ * failure.
129
+ */
130
+ required: {
131
+ type: BooleanConstructor;
132
+ default: boolean;
133
+ };
108
134
  /**
109
135
  * Help text to show below the control.
110
136
  */
@@ -173,6 +199,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
173
199
  };
174
200
  }>> & Readonly<{}>, {
175
201
  disabled: boolean;
202
+ required: boolean;
176
203
  modelValue: number;
177
204
  readonly: boolean;
178
205
  showInput: boolean;
@@ -45,6 +45,19 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
45
45
  helpLink: {
46
46
  type: PropType<string | false | null>;
47
47
  };
48
+ /**
49
+ * Marks the field as required: an asterisk after the label, and
50
+ * `aria-required` on the control.
51
+ *
52
+ * Announced, not enforced — it deliberately does NOT set the native
53
+ * `required` attribute, so the browser's own validation bubble stays out
54
+ * of the way of whatever the app does about errors. Use `error` to show a
55
+ * failure.
56
+ */
57
+ required: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
48
61
  /**
49
62
  * A array of values when using the `multiple` mode, otherwise a single
50
63
  * value of any type.
@@ -324,6 +337,11 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
324
337
  onDragMove(event: MouseEvent): void;
325
338
  onDragEnd(event: MouseEvent): void;
326
339
  endDragTracking(): void;
340
+ /**
341
+ * Whether the release landed on the search row — the input, its magnifier
342
+ * or the padding around them, all of which read as "I am going to type".
343
+ */
344
+ searchAtPoint(x: number, y: number): boolean;
327
345
  /** The option under the pointer, if the release landed on one. */
328
346
  optionAtPoint(x: number, y: number): any;
329
347
  onBlur(): void;
@@ -376,6 +394,19 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
376
394
  helpLink: {
377
395
  type: PropType<string | false | null>;
378
396
  };
397
+ /**
398
+ * Marks the field as required: an asterisk after the label, and
399
+ * `aria-required` on the control.
400
+ *
401
+ * Announced, not enforced — it deliberately does NOT set the native
402
+ * `required` attribute, so the browser's own validation bubble stays out
403
+ * of the way of whatever the app does about errors. Use `error` to show a
404
+ * failure.
405
+ */
406
+ required: {
407
+ type: BooleanConstructor;
408
+ default: boolean;
409
+ };
379
410
  /**
380
411
  * A array of values when using the `multiple` mode, otherwise a single
381
412
  * value of any type.
@@ -594,6 +625,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
594
625
  }>, {
595
626
  disabled: boolean;
596
627
  loading: boolean;
628
+ required: boolean;
597
629
  modelValue: any;
598
630
  placeholder: string;
599
631
  readonly: boolean;
@@ -756,7 +788,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
756
788
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
757
789
  remove: () => any;
758
790
  }, import('vue').PublicProps, {
759
- tooltipPosition: import('../Popper').PopperPlacementType;
791
+ tooltipPosition: import('../Popover').PopoverPlacementType;
760
792
  required: boolean;
761
793
  }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
762
794
  P: {};
@@ -768,7 +800,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
768
800
  }, Readonly<import('../Tag/Tag.vue').TagProps> & Readonly<{
769
801
  onRemove?: (() => any) | undefined;
770
802
  }>, {}, {}, {}, {}, {
771
- tooltipPosition: import('../Popper').PopperPlacementType;
803
+ tooltipPosition: import('../Popover').PopoverPlacementType;
772
804
  required: boolean;
773
805
  }>;
774
806
  __isFragment?: never;
@@ -779,7 +811,7 @@ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractP
779
811
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
780
812
  remove: () => any;
781
813
  }, string, {
782
- tooltipPosition: import('../Popper').PopperPlacementType;
814
+ tooltipPosition: import('../Popover').PopoverPlacementType;
783
815
  required: boolean;
784
816
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
785
817
  $slots: {
@@ -0,0 +1,19 @@
1
+ import { SkeletonPageProps } from './types';
2
+ declare var __VLS_15: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_15) => any;
5
+ };
6
+ declare const __VLS_base: import('vue').DefineComponent<SkeletonPageProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkeletonPageProps> & Readonly<{}>, {
7
+ primaryAction: boolean;
8
+ size: "default" | "fullWidth" | "narrow" | "wide";
9
+ title: boolean;
10
+ cards: number;
11
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,2 @@
1
+ export { default as SkeletonPage } from './SkeletonPage.vue';
2
+ export * from './types';
@@ -0,0 +1,26 @@
1
+ import { PageProps } from '../Page';
2
+ export interface SkeletonPageProps {
3
+ /**
4
+ * The width preset, forwarded to the `Page` underneath.
5
+ *
6
+ * Set it to whatever the real page uses. That is the whole reason this
7
+ * renders a real `Page` rather than a loose stack of shapes — a skeleton at
8
+ * a different width moves the content sideways the moment it swaps out.
9
+ */
10
+ size?: PageProps['size'];
11
+ /**
12
+ * Draws a placeholder where the page title will be. On by default; turn it
13
+ * off for a page whose title you already know and can render for real.
14
+ */
15
+ title?: boolean;
16
+ /**
17
+ * Draws a button-shaped placeholder in the header, for a page that has a
18
+ * primary action.
19
+ */
20
+ primaryAction?: boolean;
21
+ /**
22
+ * How many skeleton cards to stack in the body. Ignored when the default
23
+ * slot is used.
24
+ */
25
+ cards?: number;
26
+ }
@@ -1,23 +1,10 @@
1
1
  import { TabType, TabsProps } from './types';
2
- declare var __VLS_1: {
3
- tab: TabType;
4
- };
5
- type __VLS_Slots = {} & {
6
- tab?: (props: typeof __VLS_1) => any;
7
- };
8
- declare const __VLS_base: import('vue').DefineComponent<TabsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
2
+ declare const __VLS_export: import('vue').DefineComponent<TabsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
9
3
  "update:selected": (value: string, tab: TabType) => any;
10
4
  }, string, import('vue').PublicProps, Readonly<TabsProps> & Readonly<{
11
5
  "onUpdate:selected"?: ((value: string, tab: TabType) => any) | undefined;
12
6
  }>, {
13
- theme: "blue" | "purple";
14
7
  tabs: TabType[];
15
8
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
9
  declare const _default: typeof __VLS_export;
18
10
  export default _default;
19
- type __VLS_WithSlots<T, S> = T & {
20
- new (): {
21
- $slots: S;
22
- };
23
- };
@@ -15,5 +15,15 @@ export interface TabsProps {
15
15
  /** The `value` of the currently selected tab. */
16
16
  selected?: string;
17
17
  tabs?: TabType[];
18
- theme?: 'blue' | 'purple';
18
+ /**
19
+ * How the selected tab is marked.
20
+ *
21
+ * - `underline` — a rule under the label
22
+ * - `bar` — a thicker rounded bar sitting on the divider
23
+ *
24
+ * Was `theme`, with the values `blue` and `purple`. Neither ever set a
25
+ * colour: both draw from the theme's own tokens, and the only difference
26
+ * was the shape of this indicator.
27
+ */
28
+ indicator?: 'underline' | 'bar';
19
29
  }
@@ -1,11 +1,11 @@
1
- import { PopperPlacementType } from '../Popper';
1
+ import { PopoverPlacementType } from '../Popover';
2
2
  export interface TagProps {
3
3
  /**
4
4
  * Disables the remove button.
5
5
  */
6
6
  required?: boolean;
7
7
  tooltip?: string | null;
8
- tooltipPosition?: PopperPlacementType;
8
+ tooltipPosition?: PopoverPlacementType;
9
9
  }
10
10
  declare var __VLS_1: {};
11
11
  type __VLS_Slots = {} & {
@@ -16,7 +16,7 @@ declare const __VLS_base: import('vue').DefineComponent<TagProps, {}, {}, {}, {}
16
16
  }, string, import('vue').PublicProps, Readonly<TagProps> & Readonly<{
17
17
  onRemove?: (() => any) | undefined;
18
18
  }>, {
19
- tooltipPosition: PopperPlacementType;
19
+ tooltipPosition: PopoverPlacementType;
20
20
  required: boolean;
21
21
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
22
22
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -127,4 +127,14 @@ export interface TextFieldProps {
127
127
  * fill from the right (e.g. thousands separators).
128
128
  */
129
129
  maskReversed?: boolean;
130
+ /**
131
+ * Marks the field as required: an asterisk after the label, and
132
+ * `aria-required` on the control.
133
+ *
134
+ * Announced, not enforced — it deliberately does NOT set the native
135
+ * `required` attribute, so the browser's own validation bubble stays out of
136
+ * the way of whatever the app does about errors. Use `error` to show a
137
+ * failure.
138
+ */
139
+ required?: boolean;
130
140
  }
@@ -82,6 +82,16 @@ export interface TimePickerProps {
82
82
  * when the field loses focus.
83
83
  */
84
84
  minuteStepStrict?: boolean;
85
+ /**
86
+ * Marks the field as required: an asterisk after the label, and
87
+ * `aria-required` on the control.
88
+ *
89
+ * Announced, not enforced — it deliberately does NOT set the native
90
+ * `required` attribute, so the browser's own validation bubble stays out of
91
+ * the way of whatever the app does about errors. Use `error` to show a
92
+ * failure.
93
+ */
94
+ required?: boolean;
85
95
  /**
86
96
  * @deprecated No longer used. The picker is now an inline input and does not
87
97
  * open a popper. Kept for backwards compatibility.
@@ -1,9 +1,9 @@
1
1
  import { ToggleSwitchProps } from './types';
2
- declare var __VLS_1: {
2
+ declare var __VLS_8: {
3
3
  checked: boolean;
4
4
  };
5
5
  type __VLS_Slots = {} & {
6
- handle?: (props: typeof __VLS_1) => any;
6
+ handle?: (props: typeof __VLS_8) => any;
7
7
  };
8
8
  declare const __VLS_base: import('vue').DefineComponent<ToggleSwitchProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
9
9
  "update:modelValue": (v: boolean) => any;
@@ -12,7 +12,13 @@ declare const __VLS_base: import('vue').DefineComponent<ToggleSwitchProps, {}, {
12
12
  }>, {
13
13
  disabled: boolean;
14
14
  size: "small" | "medium" | "large";
15
+ label: string | false | null;
16
+ error: string | false | null;
15
17
  color: string;
18
+ helpText: string | false | null;
19
+ required: boolean;
20
+ helpTextHtml: string | false | null;
21
+ helpLink: string | false | null;
16
22
  checked: boolean;
17
23
  trueValue: any;
18
24
  falseValue: any;