@webx-ui/core 0.20.0 → 0.22.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 (46) hide show
  1. package/dist/components/Action/Action.d.ts +1 -0
  2. package/dist/components/Action/types.d.ts +4 -1
  3. package/dist/components/ActionBar/ActionBar.d.ts +22 -0
  4. package/dist/components/ActionBar/index.d.ts +2 -0
  5. package/dist/components/ActionBar/types.d.ts +13 -0
  6. package/dist/components/Actions/Actions.d.ts +2 -2
  7. package/dist/components/Actions/types.d.ts +5 -1
  8. package/dist/components/Aside/Aside.d.ts +6 -1
  9. package/dist/components/Aside/types.d.ts +21 -1
  10. package/dist/components/Countdown/Countdown.d.ts +1 -1
  11. package/dist/components/Dialog/Dialog.d.ts +3 -3
  12. package/dist/components/Drawer/Drawer.d.ts +2 -1
  13. package/dist/components/Drawer/types.d.ts +6 -0
  14. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  15. package/dist/components/FileCard/FileCard.d.ts +3 -0
  16. package/dist/components/FileCard/types.d.ts +14 -0
  17. package/dist/components/Footer/Footer.d.ts +1 -1
  18. package/dist/components/Header/Header.d.ts +2 -1
  19. package/dist/components/Header/types.d.ts +10 -1
  20. package/dist/components/Heading/Heading.d.ts +1 -1
  21. package/dist/components/Icon/icons.d.ts +1 -0
  22. package/dist/components/Image/Image.d.ts +1 -1
  23. package/dist/components/ImageEditor/ImageEditor.d.ts +1 -1
  24. package/dist/components/Indicator/Indicator.d.ts +1 -1
  25. package/dist/components/Loading/Loading.d.ts +1 -1
  26. package/dist/components/Main/Main.d.ts +1 -1
  27. package/dist/components/Popconfirm/Popconfirm.d.ts +2 -2
  28. package/dist/components/Popover/Popover.d.ts +4 -4
  29. package/dist/components/Row/types.d.ts +1 -1
  30. package/dist/components/Scrollbar/Scrollbar.d.ts +1 -1
  31. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  32. package/dist/components/Statistic/Statistic.d.ts +1 -1
  33. package/dist/components/Table/types.d.ts +13 -0
  34. package/dist/components/Tabs/Tabs.d.ts +4 -0
  35. package/dist/components/Tabs/types.d.ts +25 -0
  36. package/dist/components/Text/Text.d.ts +1 -1
  37. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  38. package/dist/components/Transfer/Transfer.d.ts +1 -1
  39. package/dist/components/Tree/types.d.ts +1 -1
  40. package/dist/components/index.d.ts +1 -0
  41. package/dist/index.js +5171 -4987
  42. package/dist/index.js.map +1 -1
  43. package/dist/internal/ConfirmDialog.d.ts +1 -1
  44. package/dist/internal/ImageEditorDialog.d.ts +2 -2
  45. package/dist/style.css +1 -1
  46. package/package.json +2 -2
@@ -25,6 +25,7 @@ declare const __VLS_component: import('vue').DefineComponent<ActionProps, {}, {}
25
25
  tone: ActionTone;
26
26
  href: string;
27
27
  hidden: boolean;
28
+ tooltipSide: import('..').TooltipSide;
28
29
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
30
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
30
31
  export default _default;
@@ -1,5 +1,6 @@
1
1
  import { Component } from 'vue';
2
2
  import { IconName } from '../Icon/types';
3
+ import { TooltipSide } from '../Tooltip/types';
3
4
  /**
4
5
  * What the action does. It picks the icon, the colour and the accessible name, so a
5
6
  * row of actions stays consistent across screens — `icon`, `tone` and `label`
@@ -14,7 +15,7 @@ export interface ActionProps {
14
15
  icon?: IconName;
15
16
  /** Colour to use instead of the one the type picks. */
16
17
  tone?: ActionTone;
17
- /** Native tooltip; also the accessible name when `label` is not given. */
18
+ /** What the tooltip says; also the accessible name when `label` is not given. */
18
19
  title?: string;
19
20
  /** Accessible name. Needed whenever `title` is absent and the type is not enough. */
20
21
  label?: string;
@@ -31,6 +32,8 @@ export interface ActionProps {
31
32
  hidden?: boolean;
32
33
  /** Defaults to the size of the enclosing `WxActions`. */
33
34
  size?: ActionSize;
35
+ /** Which side of the button the tooltip prefers. It flips when there is no room. */
36
+ tooltipSide?: TooltipSide;
34
37
  }
35
38
  export interface ActionEmits {
36
39
  click: [event: MouseEvent];
@@ -0,0 +1,22 @@
1
+ import { ActionBarProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ state?(_: {}): any;
6
+ default?(_: {}): any;
7
+ };
8
+ refs: {};
9
+ rootEl: HTMLDivElement;
10
+ };
11
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
12
+ declare const __VLS_component: import('vue').DefineComponent<ActionBarProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ActionBarProps> & Readonly<{}>, {
13
+ bordered: boolean;
14
+ sticky: boolean;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
16
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
17
+ export default _default;
18
+ type __VLS_WithTemplateSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,2 @@
1
+ export { default as WxActionBar } from './ActionBar';
2
+ export type * from './types';
@@ -0,0 +1,13 @@
1
+ export interface ActionBarProps {
2
+ /**
3
+ * Keeps the bar at the bottom of the window while there is screen left below it, and
4
+ * lets it settle into its place in the flow at the end.
5
+ *
6
+ * `--wx-action-bar-bottom` is how far off the bottom edge it stops, so a shell that
7
+ * insets its column can say so; the strip below the bar is painted over, or the content
8
+ * scrolling past would show through it.
9
+ */
10
+ sticky?: boolean;
11
+ /** Rule around the bar. Off leaves the surface and the shadow. */
12
+ bordered?: boolean;
13
+ }
@@ -25,7 +25,7 @@ declare function __VLS_template(): {
25
25
  };
26
26
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
27
27
  declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
28
- collapsed: import('vue').Ref<boolean, boolean>;
28
+ collapsed: import('vue').ComputedRef<boolean>;
29
29
  measure: typeof measure;
30
30
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
31
31
  collapse: (collapsed: boolean) => any;
@@ -36,8 +36,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
36
36
  }>, {
37
37
  size: import('..').ActionSize;
38
38
  align: import('./types').ActionsAlign;
39
- collapse: boolean;
40
39
  ariaLabel: string;
40
+ collapse: boolean | "always";
41
41
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
42
42
  root: HTMLDivElement;
43
43
  row: HTMLDivElement;
@@ -9,8 +9,12 @@ export interface ActionsProps {
9
9
  * Collapses the row into a dropdown as soon as it no longer fits the container.
10
10
  * The container has to have a width of its own — a table cell, a card, a column —
11
11
  * otherwise there is nothing to measure against.
12
+ *
13
+ * `'always'` never draws the row at all: the actions are a menu whatever the width,
14
+ * which is what a list wants when every row in the panel has to open the same way
15
+ * whether it holds one action or seven.
12
16
  */
13
- collapse?: boolean;
17
+ collapse?: boolean | 'always';
14
18
  /** Accessible name of the group, e.g. "Row actions". */
15
19
  ariaLabel?: string;
16
20
  }
@@ -2,7 +2,10 @@ import { AsideProps } from './types';
2
2
  declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
4
  slots: {
5
+ top?(_: {}): any;
5
6
  default?(_: {}): any;
7
+ default?(_: {}): any;
8
+ bottom?(_: {}): any;
6
9
  };
7
10
  refs: {};
8
11
  rootEl: HTMLElement;
@@ -11,10 +14,12 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
14
  declare const __VLS_component: import('vue').DefineComponent<AsideProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<AsideProps> & Readonly<{}>, {
12
15
  bordered: boolean;
13
16
  side: "start" | "end";
14
- collapsed: boolean;
15
17
  width: number | string;
18
+ sticky: boolean;
19
+ collapsed: boolean;
16
20
  collapsedWidth: number | string;
17
21
  scroll: boolean;
22
+ floating: boolean;
18
23
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
19
24
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
20
25
  export default _default;
@@ -9,6 +9,26 @@ export interface AsideProps {
9
9
  side?: 'start' | 'end';
10
10
  /** Rule between the column and the page. */
11
11
  bordered?: boolean;
12
- /** Scrolls the column on its own, independently of the page. */
12
+ /**
13
+ * Scrolls the column on its own, independently of the page. With the `top` or
14
+ * `bottom` slots in use it is the middle zone that scrolls, so that the brand and
15
+ * the account stay where they are put.
16
+ */
13
17
  scroll?: boolean;
18
+ /**
19
+ * Keeps the column in place while the page scrolls past it, at its own height
20
+ * rather than the page's. This is the shape a sidebar has next to a document that
21
+ * scrolls natively; `scroll` is the other one, where the column carries the
22
+ * scrollbar itself.
23
+ *
24
+ * The offset from the top and the height are `--wx-aside-top` and
25
+ * `--wx-aside-height`, so a shell that insets the column can say so.
26
+ */
27
+ sticky?: boolean;
28
+ /**
29
+ * Draws the column as a card — its own border, radius and shadow — instead of as
30
+ * a wall between the menu and the page. Pair it with `bordered` off: the rule on
31
+ * one side is what the card replaces.
32
+ */
33
+ floating?: boolean;
14
34
  }
@@ -26,8 +26,8 @@ declare const __VLS_component: import('vue').DefineComponent<CountdownProps, {
26
26
  }>, {
27
27
  size: import('..').StatisticSize;
28
28
  title: string;
29
- tone: import('..').TextTone;
30
29
  align: import('..').TextAlign;
30
+ tone: import('..').TextTone;
31
31
  format: string;
32
32
  prefix: string;
33
33
  suffix: string;
@@ -76,14 +76,14 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
76
76
  onLayout?: ((layout: DialogLayout) => any) | undefined;
77
77
  }>, {
78
78
  title: string;
79
- modal: boolean;
79
+ width: number | string;
80
+ height: number | string;
80
81
  ariaLabel: string;
82
+ modal: boolean;
81
83
  closable: boolean;
82
84
  closeLabel: string;
83
- width: number | string;
84
85
  scroll: import('./types').DialogScroll;
85
86
  minHeight: number;
86
- height: number | string;
87
87
  stickyFooter: boolean;
88
88
  minWidth: number;
89
89
  sidebarWidth: number | string;
@@ -76,8 +76,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
76
76
  size: number | string;
77
77
  title: string;
78
78
  side: import('./types').DrawerSide;
79
- modal: boolean;
80
79
  ariaLabel: string;
80
+ modal: boolean;
81
81
  closable: boolean;
82
82
  closeLabel: string;
83
83
  sidebarWidth: number | string;
@@ -87,6 +87,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
87
87
  resizable: boolean;
88
88
  persist: string;
89
89
  minSize: number;
90
+ fullScreen: boolean;
90
91
  resizeLabel: string;
91
92
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
92
93
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -33,6 +33,12 @@ export interface DrawerProps {
33
33
  resizable?: boolean;
34
34
  /** Remember the size under this key, in `localStorage`. */
35
35
  persist?: string;
36
+ /**
37
+ * On a narrow screen the panel takes the whole of it. Off keeps the declared size there,
38
+ * so a strip of the page stays visible — which is right for a panel that is navigation
39
+ * rather than work: a menu 260px wide is a menu, and one that covers the phone is a page.
40
+ */
41
+ fullScreen?: boolean;
36
42
  /** Accessible name for the panel when it has no visible heading. */
37
43
  ariaLabel?: string;
38
44
  /** Label of the resize handle, for screen readers. */
@@ -31,10 +31,10 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
31
31
  side: import('./types').DropdownSide;
32
32
  align: import('./types').DropdownAlign;
33
33
  offset: number;
34
+ teleport: boolean;
34
35
  alignOffset: number;
35
36
  closeOnClick: boolean;
36
37
  matchTriggerWidth: boolean;
37
- teleport: boolean;
38
38
  modal: boolean;
39
39
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
40
40
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -180,6 +180,8 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
180
180
  removable: boolean;
181
181
  confirmRemove: boolean;
182
182
  copyable: boolean;
183
+ downloadUrl: string;
184
+ actionsMenu: boolean;
183
185
  renameLabel: string;
184
186
  saveLabel: string;
185
187
  cancelLabel: string;
@@ -187,6 +189,7 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
187
189
  removeLabel: string;
188
190
  removeConfirmText: string;
189
191
  copyLabel: string;
192
+ downloadLabel: string;
190
193
  copiedLabel: string;
191
194
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
192
195
  field: ({
@@ -39,6 +39,19 @@ export interface FileCardProps {
39
39
  confirmRemove?: boolean;
40
40
  /** Offers copying `url` to the clipboard. */
41
41
  copyable?: boolean;
42
+ /**
43
+ * Offers saving the file, from this address. Separate from `url` on purpose: what a card
44
+ * shows a file with may be a signed address on another host, and a browser ignores the
45
+ * download attribute across origins — it navigates instead. What downloads is whatever the
46
+ * caller can serve from its own.
47
+ */
48
+ downloadUrl?: string;
49
+ /**
50
+ * The actions are a `···` menu at every width, rather than a row of icons that folds into
51
+ * one when it runs out of room. For a grid inside a panel where every other list puts a
52
+ * record's actions behind the same menu — one place to look, whatever the card's size.
53
+ */
54
+ actionsMenu?: boolean;
42
55
  renameLabel?: string;
43
56
  /** The two buttons under the field renaming opens. */
44
57
  saveLabel?: string;
@@ -48,6 +61,7 @@ export interface FileCardProps {
48
61
  /** The question `confirmRemove` asks. The file name is worth putting in it. */
49
62
  removeConfirmText?: string;
50
63
  copyLabel?: string;
64
+ downloadLabel?: string;
51
65
  /** Shown on the copy action for a moment after it worked. */
52
66
  copiedLabel?: string;
53
67
  }
@@ -11,8 +11,8 @@ declare function __VLS_template(): {
11
11
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
12
12
  declare const __VLS_component: import('vue').DefineComponent<FooterProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<FooterProps> & Readonly<{}>, {
13
13
  bordered: boolean;
14
- padding: "none" | "sm" | "md" | "lg";
15
14
  height: number | string;
15
+ padding: "none" | "sm" | "md" | "lg";
16
16
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
17
17
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
18
18
  export default _default;
@@ -11,9 +11,10 @@ declare function __VLS_template(): {
11
11
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
12
12
  declare const __VLS_component: import('vue').DefineComponent<HeaderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<HeaderProps> & Readonly<{}>, {
13
13
  bordered: boolean;
14
+ height: number | string;
14
15
  sticky: boolean;
16
+ floating: boolean;
15
17
  padding: "none" | "sm" | "md" | "lg";
16
- height: number | string;
17
18
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
18
19
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
19
20
  export default _default;
@@ -3,8 +3,17 @@ export interface HeaderProps {
3
3
  height?: number | string;
4
4
  /** Rule along the bottom edge, separating the bar from the page. */
5
5
  bordered?: boolean;
6
- /** Keeps the bar in place while the page scrolls under it. */
6
+ /**
7
+ * Keeps the bar in place while the page scrolls under it. How far from the top it
8
+ * stops is `--wx-header-top`, so a shell that insets the bar can say so.
9
+ */
7
10
  sticky?: boolean;
11
+ /**
12
+ * Draws the bar as a card — its own border, radius and shadow — with the page
13
+ * showing all around it. Pair it with `bordered` off: the rule along the bottom
14
+ * edge is what the card replaces.
15
+ */
16
+ floating?: boolean;
8
17
  /** Inner padding. `none` hands the bar over to whatever is inside it. */
9
18
  padding?: 'none' | 'sm' | 'md' | 'lg';
10
19
  }
@@ -10,8 +10,8 @@ declare function __VLS_template(): {
10
10
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
11
  declare const __VLS_component: import('vue').DefineComponent<HeadingProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<HeadingProps> & Readonly<{}>, {
12
12
  size: HeadingSize;
13
- tone: import('..').TextTone;
14
13
  align: import('..').TextAlign;
14
+ tone: import('..').TextTone;
15
15
  level: HeadingLevel;
16
16
  truncate: boolean;
17
17
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -48,6 +48,7 @@ export declare const builtinIcons: {
48
48
  readonly home: "<path d=\"M4 10.5 12 4l8 6.5V19a1.5 1.5 0 0 1-1.5 1.5H15V14H9v6.5H5.5A1.5 1.5 0 0 1 4 19Z\"/>";
49
49
  readonly file: "<path d=\"M13.5 3.5H7a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9zm0 0V9H19\"/>";
50
50
  readonly folder: "<path d=\"M3.5 7a2 2 0 0 1 2-2h3.2a2 2 0 0 1 1.5.7l1.3 1.5h7a2 2 0 0 1 2 2v8.3a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z\"/>";
51
+ readonly 'folder-move': string;
51
52
  readonly image: "<rect x=\"3.5\" y=\"4.5\" width=\"17\" height=\"15\" rx=\"2.5\"/><circle cx=\"8.75\" cy=\"9.75\" r=\"1.75\"/><path d=\"m4 17 4.5-4.2a2 2 0 0 1 2.7 0l3 2.8 1.6-1.5a2 2 0 0 1 2.7 0L20 16\"/>";
52
53
  readonly calendar: "<rect x=\"3.5\" y=\"5.5\" width=\"17\" height=\"15\" rx=\"2.5\"/><path d=\"M3.5 10h17M8 3.5V7M16 3.5V7\"/>";
53
54
  readonly clock: "<circle cx=\"12\" cy=\"12\" r=\"8.5\"/><path d=\"M12 7.5V12l3 2\"/>";
@@ -25,12 +25,12 @@ declare const __VLS_component: import('vue').DefineComponent<ImageProps, {}, {},
25
25
  }>, {
26
26
  placeholder: string;
27
27
  width: number | string;
28
+ height: number | string;
28
29
  src: string;
29
30
  alt: string;
30
31
  fit: import('./types').ImageFit;
31
32
  lazy: boolean;
32
33
  preview: boolean;
33
- height: number | string;
34
34
  radius: number | string;
35
35
  previewLabel: string;
36
36
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
@@ -31,13 +31,13 @@ declare const _default: import('vue').DefineComponent<ImageEditorProps, {
31
31
  }>, {
32
32
  disabled: boolean;
33
33
  footer: boolean;
34
+ maxWidth: number;
34
35
  maxHeight: number;
35
36
  format: "auto" | "image/jpeg" | "image/png" | "image/webp";
36
37
  background: string;
37
38
  filters: boolean;
38
39
  resizable: boolean;
39
40
  minSize: number;
40
- maxWidth: number;
41
41
  saveLabel: string;
42
42
  cancelLabel: string;
43
43
  ratio: ImageEditorRatio;
@@ -13,8 +13,8 @@ declare const __VLS_component: import('vue').DefineComponent<IndicatorProps, {},
13
13
  type: import('./types').IndicatorType;
14
14
  label: string;
15
15
  value: number | string;
16
- hidden: boolean;
17
16
  offset: [number, number];
17
+ hidden: boolean;
18
18
  max: number;
19
19
  dot: boolean;
20
20
  showZero: boolean;
@@ -19,10 +19,10 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
19
19
  declare const __VLS_component: import('vue').DefineComponent<LoadingProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<LoadingProps> & Readonly<{}>, {
20
20
  size: import('./types').LoadingSize;
21
21
  text: string;
22
+ delay: number;
22
23
  ariaLabel: string;
23
24
  loading: boolean;
24
25
  blur: boolean;
25
- delay: number;
26
26
  fullscreen: boolean;
27
27
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
28
28
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -9,9 +9,9 @@ declare function __VLS_template(): {
9
9
  };
10
10
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
11
  declare const __VLS_component: import('vue').DefineComponent<MainProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<MainProps> & Readonly<{}>, {
12
+ maxWidth: number | string;
12
13
  scroll: boolean;
13
14
  padding: "none" | "sm" | "md" | "lg";
14
- maxWidth: number | string;
15
15
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
16
16
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
17
17
  export default _default;
@@ -52,13 +52,13 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
52
52
  side: import('..').PopoverSide;
53
53
  align: import('..').PopoverAlign;
54
54
  offset: number;
55
- description: string;
55
+ arrow: boolean;
56
56
  width: number | string;
57
+ description: string;
57
58
  loading: boolean;
58
59
  confirmText: string;
59
60
  cancelText: string;
60
61
  confirmType: import('..').ButtonType;
61
- arrow: boolean;
62
62
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
63
63
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
64
64
  export default _default;
@@ -57,14 +57,14 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
57
57
  side: import('./types').PopoverSide;
58
58
  align: import('./types').PopoverAlign;
59
59
  offset: number;
60
- alignOffset: number;
60
+ arrow: boolean;
61
61
  teleport: boolean;
62
- modal: boolean;
62
+ width: number | string;
63
+ alignOffset: number;
63
64
  ariaLabel: string;
65
+ modal: boolean;
64
66
  closable: boolean;
65
67
  closeLabel: string;
66
- width: number | string;
67
- arrow: boolean;
68
68
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
69
69
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
70
70
  export default _default;
@@ -2,7 +2,7 @@ import { Component } from 'vue';
2
2
  export type RowJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
3
3
  export type RowAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
4
4
  export interface RowProps {
5
- /** Gap between columns: pixels as a number, or any CSS length. */
5
+ /** Gap between columns: pixels as a number, or any CSS length. Defaults to the panel's step. */
6
6
  gutter?: number | string;
7
7
  /** Gap between rows once the columns wrap. Defaults to `gutter`. */
8
8
  gutterY?: number | string;
@@ -22,9 +22,9 @@ declare const __VLS_component: import('vue').DefineComponent<ScrollbarProps, {
22
22
  onScroll?: ((event: Event) => any) | undefined;
23
23
  }>, {
24
24
  size: import('./types').ScrollbarSize;
25
+ height: number | string;
25
26
  always: boolean;
26
27
  maxHeight: number | string;
27
- height: number | string;
28
28
  axis: import('./types').ScrollbarAxis;
29
29
  chainScroll: boolean;
30
30
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
@@ -18,8 +18,8 @@ declare function __VLS_template(): {
18
18
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
19
19
  declare const __VLS_component: import('vue').DefineComponent<SkeletonProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {
20
20
  title: boolean;
21
- loading: boolean;
22
21
  delay: number;
22
+ loading: boolean;
23
23
  rows: number;
24
24
  animated: boolean;
25
25
  avatar: boolean;
@@ -16,8 +16,8 @@ declare const __VLS_component: import('vue').DefineComponent<StatisticProps, {},
16
16
  size: import('./types').StatisticSize;
17
17
  title: string;
18
18
  value: number | string;
19
- tone: import('..').TextTone;
20
19
  align: import('..').TextAlign;
20
+ tone: import('..').TextTone;
21
21
  precision: number;
22
22
  locale: string;
23
23
  grouping: boolean;
@@ -162,6 +162,19 @@ export interface TableProps<T = TableRow> {
162
162
  bordered?: boolean;
163
163
  /** Highlight the row under the pointer. */
164
164
  hover?: boolean;
165
+ /**
166
+ * Whether a click on a row leads anywhere.
167
+ *
168
+ * Left alone it is inferred from whether anybody is listening for `row-click` — the caller has
169
+ * already said it by listening, and a second way to say the same thing is a second thing to
170
+ * get wrong. Said out loud when the answer changes while the table is on screen: the vnode a
171
+ * component was rendered with is not reactive, so the inference runs once and never again, and
172
+ * a list that puts its destination away — a bin, an archive, a picker that takes several at a
173
+ * time — would keep the cursor and the highlight it no longer earns.
174
+ *
175
+ * `false` is the whole promise withdrawn: no pointer, no highlight, and no `row-click` either.
176
+ */
177
+ clickable?: boolean;
165
178
  size?: ControlSize;
166
179
  /** Adds the checkbox column. */
167
180
  selectable?: boolean;
@@ -23,6 +23,7 @@ declare function __VLS_template(): {
23
23
  extra?: () => unknown;
24
24
  };
25
25
  refs: {
26
+ layout: HTMLDivElement;
26
27
  scroller: HTMLDivElement;
27
28
  };
28
29
  rootEl: any;
@@ -43,10 +44,13 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
43
44
  orientation: import('./types').TabsOrientation;
44
45
  align: import('./types').TabsAlign;
45
46
  ariaLabel: string;
47
+ items: import('./types').TabItem[];
46
48
  loop: boolean;
47
49
  keepAlive: boolean;
50
+ collapseBelow: number;
48
51
  activationMode: import('./types').TabsActivationMode;
49
52
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
53
+ layout: HTMLDivElement;
50
54
  scroller: HTMLDivElement;
51
55
  }, any>;
52
56
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -6,7 +6,32 @@ export type TabsSize = 'sm' | 'md';
6
6
  export type TabsOrientation = 'horizontal' | 'vertical';
7
7
  export type TabsAlign = 'start' | 'center' | 'end' | 'stretch';
8
8
  export type TabsActivationMode = 'automatic' | 'manual';
9
+ /** One tab of a strip that has no panels of its own. */
10
+ export interface TabItem {
11
+ value: TabValue;
12
+ label?: string;
13
+ icon?: IconName;
14
+ badge?: string | number;
15
+ disabled?: boolean;
16
+ }
9
17
  export interface TabsProps {
18
+ /**
19
+ * Builds the strip from a list instead of from the `WxTab`s in the slot, and treats the
20
+ * default slot as the one panel under it — the panel does not change with the tab, what
21
+ * is inside it does.
22
+ *
23
+ * This is what a list screen switches views with: the table stays mounted, keeping its
24
+ * search, its page and its scroll, and the tab only says which rows it is asking for.
25
+ */
26
+ items?: TabItem[];
27
+ /**
28
+ * Below this container width the strip folds into a single switch labelled with the view
29
+ * that is open. Only in `items` mode; `0` — the default — never folds.
30
+ *
31
+ * A strip is worth scrolling while it is navigation somebody reads along. Five views of a
32
+ * list on a phone are not that: they are one question with one answer showing.
33
+ */
34
+ collapseBelow?: number;
10
35
  /** Underlined strip, a segmented control, or folder tabs. */
11
36
  variant?: TabsVariant;
12
37
  size?: TabsSize;
@@ -11,8 +11,8 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
11
  declare const __VLS_component: import('vue').DefineComponent<TextProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TextProps> & Readonly<{}>, {
12
12
  size: import('./types').TextSize;
13
13
  as: string;
14
- tone: import('./types').TextTone;
15
14
  align: import('./types').TextAlign;
15
+ tone: import('./types').TextTone;
16
16
  italic: boolean;
17
17
  truncate: boolean | number;
18
18
  mono: boolean;
@@ -30,10 +30,10 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
30
30
  side: import('./types').TooltipSide;
31
31
  align: import('./types').TooltipAlign;
32
32
  offset: number;
33
- teleport: boolean;
34
33
  delay: number;
35
34
  arrow: boolean;
36
35
  maxWidth: number | string;
36
+ teleport: boolean;
37
37
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
38
38
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
39
39
  export default _default;
@@ -39,8 +39,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
39
39
  }>, {
40
40
  size: import('../..').ControlSize;
41
41
  disabled: boolean;
42
- emptyText: string;
43
42
  height: number | string;
43
+ emptyText: string;
44
44
  items: TransferItem[];
45
45
  searchable: boolean;
46
46
  searchPlaceholder: string;
@@ -78,7 +78,7 @@ export interface TreeProps<T = TreeNode> {
78
78
  filter?: string;
79
79
  /** Draws the guide lines that connect a child to its parent. */
80
80
  showLines?: boolean;
81
- /** How far one level sits from the next, in pixels. */
81
+ /** How far one level sits from the next, in pixels — the guide line included. */
82
82
  indent?: number;
83
83
  size?: TreeSize;
84
84
  /** Shown when there is nothing to draw. */
@@ -1,6 +1,7 @@
1
1
  export * from './Accordion';
2
2
  export * from './AccordionItem';
3
3
  export * from './Action';
4
+ export * from './ActionBar';
4
5
  export * from './Actions';
5
6
  export * from './Affix';
6
7
  export * from './Alert';