@webx-ui/core 0.3.1 → 0.5.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 (54) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +40 -0
  2. package/dist/components/Accordion/index.d.ts +2 -0
  3. package/dist/components/Accordion/types.d.ts +25 -0
  4. package/dist/components/AccordionItem/AccordionItem.d.ts +41 -0
  5. package/dist/components/AccordionItem/index.d.ts +2 -0
  6. package/dist/components/AccordionItem/types.d.ts +12 -0
  7. package/dist/components/Action/Action.d.ts +4 -4
  8. package/dist/components/Autocomplete/Autocomplete.d.ts +9 -9
  9. package/dist/components/Badge/Badge.d.ts +1 -1
  10. package/dist/components/Button/Button.d.ts +3 -3
  11. package/dist/components/ButtonGroup/ButtonGroup.d.ts +3 -3
  12. package/dist/components/Card/Card.d.ts +1 -1
  13. package/dist/components/Cascader/Cascader.d.ts +7 -7
  14. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  15. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
  16. package/dist/components/DatePicker/DatePicker.d.ts +8 -8
  17. package/dist/components/DateRangePicker/DateRangePicker.d.ts +7 -7
  18. package/dist/components/DateTimePicker/DateTimePicker.d.ts +1 -1
  19. package/dist/components/DropdownItem/DropdownItem.d.ts +3 -3
  20. package/dist/components/EntityCard/EntityCard.d.ts +4 -4
  21. package/dist/components/FormItem/FormItem.d.ts +2 -2
  22. package/dist/components/Icon/Icon.d.ts +1 -1
  23. package/dist/components/Indicator/Indicator.d.ts +2 -2
  24. package/dist/components/Input/Input.d.ts +5 -5
  25. package/dist/components/Kanban/Kanban.d.ts +82 -0
  26. package/dist/components/Kanban/index.d.ts +2 -0
  27. package/dist/components/Kanban/types.d.ts +83 -0
  28. package/dist/components/Link/Link.d.ts +3 -3
  29. package/dist/components/Popover/Popover.d.ts +75 -0
  30. package/dist/components/Popover/index.d.ts +2 -0
  31. package/dist/components/Popover/types.d.ts +34 -0
  32. package/dist/components/Prose/Prose.d.ts +1 -1
  33. package/dist/components/Radio/Radio.d.ts +1 -1
  34. package/dist/components/RichText/RichText.d.ts +1 -1
  35. package/dist/components/RichText/ToolbarButton.d.ts +1 -1
  36. package/dist/components/Select/Select.d.ts +10 -10
  37. package/dist/components/Statistic/Statistic.d.ts +1 -1
  38. package/dist/components/Switch/Switch.d.ts +1 -1
  39. package/dist/components/Tab/Tab.d.ts +32 -0
  40. package/dist/components/Tab/index.d.ts +2 -0
  41. package/dist/components/Tab/types.d.ts +15 -0
  42. package/dist/components/Tabs/Tabs.d.ts +58 -0
  43. package/dist/components/Tabs/index.d.ts +2 -0
  44. package/dist/components/Tabs/types.d.ts +37 -0
  45. package/dist/components/TagsInput/TagsInput.d.ts +2 -2
  46. package/dist/components/Text/Text.d.ts +1 -1
  47. package/dist/components/Textarea/Textarea.d.ts +2 -2
  48. package/dist/components/TimePicker/TimePicker.d.ts +1 -1
  49. package/dist/components/index.d.ts +6 -0
  50. package/dist/composables/useAccordion.d.ts +16 -0
  51. package/dist/index.js +4762 -2332
  52. package/dist/index.js.map +1 -1
  53. package/dist/style.css +1 -1
  54. package/package.json +3 -2
@@ -0,0 +1,83 @@
1
+ export type KanbanId = string | number;
2
+ /** Colour of the line above a column's heading. */
3
+ export type KanbanTone = 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';
4
+ export type KanbanSize = 'sm' | 'md';
5
+ /** How something was moved — worth knowing when you animate or undo. */
6
+ export type KanbanVia = 'pointer' | 'keyboard';
7
+ /** The least a card has to carry: something to key it by. */
8
+ export interface KanbanCard {
9
+ id: KanbanId;
10
+ [key: string]: unknown;
11
+ }
12
+ export interface KanbanColumn<T extends KanbanCard = KanbanCard> {
13
+ id: KanbanId;
14
+ title?: string;
15
+ /** The cards, in the order they are shown. The board writes moves back into it. */
16
+ items: T[];
17
+ /**
18
+ * How many cards the column is meant to hold. At the limit the count turns red and
19
+ * nothing more can be dropped in — a work-in-progress limit, the point of a board.
20
+ */
21
+ limit?: number;
22
+ /** Colour of the rule above the heading. */
23
+ tone?: KanbanTone;
24
+ /** Cards can be neither taken from this column nor put into it. */
25
+ disabled?: boolean;
26
+ }
27
+ /** Where a card came from and where it went. */
28
+ export interface KanbanMove<T extends KanbanCard = KanbanCard> {
29
+ card: T;
30
+ from: {
31
+ column: KanbanId;
32
+ index: number;
33
+ };
34
+ to: {
35
+ column: KanbanId;
36
+ index: number;
37
+ };
38
+ via: KanbanVia;
39
+ }
40
+ /** Where a column came from and where it went. */
41
+ export interface KanbanColumnMove<T extends KanbanCard = KanbanCard> {
42
+ column: KanbanColumn<T>;
43
+ from: number;
44
+ to: number;
45
+ via: KanbanVia;
46
+ }
47
+ export interface KanbanProps<T extends KanbanCard = KanbanCard> {
48
+ /** The columns, each carrying its own cards. */
49
+ columns: KanbanColumn<T>[];
50
+ /** Boards that share a name exchange cards. Left alone, a board keeps to itself. */
51
+ group?: string;
52
+ size?: KanbanSize;
53
+ /** Width of a column: a number is pixels, a string is any CSS length. */
54
+ columnWidth?: number | string;
55
+ /** Nothing on the board can be moved. */
56
+ disabled?: boolean;
57
+ /** CSS selector for the part of a card that starts a drag. */
58
+ handle?: string;
59
+ /** Shows an add button under every column, which emits `add`. */
60
+ addable?: boolean;
61
+ addLabel?: string;
62
+ /** Lets a column be folded down to a strip. Use `v-model:collapsed` to remember it. */
63
+ collapsible?: boolean;
64
+ /** Columns can be dragged into another order, by their heading. */
65
+ reorderColumns?: boolean;
66
+ /** Shows an add button after the last column, which emits `add-column`. */
67
+ columnAddable?: boolean;
68
+ addColumnLabel?: string;
69
+ /** Shown in a column with no cards. */
70
+ emptyText?: string;
71
+ /** Accessible name for the board. */
72
+ ariaLabel?: string;
73
+ }
74
+ export interface KanbanEmits<T extends KanbanCard = KanbanCard> {
75
+ /** A card changed position or column. The arrays have already been updated. */
76
+ move: [move: KanbanMove<T>];
77
+ /** A column changed position. */
78
+ 'column-move': [move: KanbanColumnMove<T>];
79
+ /** The add button under a column was pressed. */
80
+ add: [column: KanbanColumn<T>];
81
+ /** The add button after the last column was pressed. */
82
+ 'add-column': [];
83
+ }
@@ -15,11 +15,11 @@ declare const __VLS_component: import('vue').DefineComponent<LinkProps, {}, {},
15
15
  onClick?: ((event: MouseEvent) => any) | undefined;
16
16
  }>, {
17
17
  size: import('..').TextSize;
18
+ disabled: boolean;
18
19
  type: import('./types').LinkType;
19
- href: string;
20
- target: string;
21
20
  as: string | import('vue').Component;
22
- disabled: boolean;
21
+ target: string;
22
+ href: string;
23
23
  rel: string;
24
24
  underline: import('./types').LinkUnderline;
25
25
  weight: import('..').TextWeight;
@@ -0,0 +1,75 @@
1
+ import { PopoverProps } from './types';
2
+ type __VLS_Props = PopoverProps;
3
+ declare function close(): void;
4
+ type __VLS_PublicProps = {
5
+ 'open'?: boolean;
6
+ } & __VLS_Props;
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: Readonly<{
10
+ /** The control the panel hangs off. Exactly one element. */
11
+ trigger?: (props: {
12
+ open: boolean;
13
+ }) => unknown;
14
+ /** The panel. */
15
+ default?: (props: {
16
+ close: () => void;
17
+ }) => unknown;
18
+ /** Replaces `title`. */
19
+ title?: () => unknown;
20
+ /** A row under the panel — where the Save and Cancel usually go. */
21
+ footer?: (props: {
22
+ close: () => void;
23
+ }) => unknown;
24
+ }> & {
25
+ /** The control the panel hangs off. Exactly one element. */
26
+ trigger?: (props: {
27
+ open: boolean;
28
+ }) => unknown;
29
+ /** The panel. */
30
+ default?: (props: {
31
+ close: () => void;
32
+ }) => unknown;
33
+ /** Replaces `title`. */
34
+ title?: () => unknown;
35
+ /** A row under the panel — where the Save and Cancel usually go. */
36
+ footer?: (props: {
37
+ close: () => void;
38
+ }) => unknown;
39
+ };
40
+ refs: {};
41
+ rootEl: any;
42
+ };
43
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
44
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
45
+ close: typeof close;
46
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
47
+ close: () => any;
48
+ open: () => any;
49
+ "update:open": (value: boolean) => any;
50
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
51
+ onClose?: (() => any) | undefined;
52
+ onOpen?: (() => any) | undefined;
53
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
54
+ }>, {
55
+ disabled: boolean;
56
+ title: string;
57
+ side: import('./types').PopoverSide;
58
+ align: import('./types').PopoverAlign;
59
+ offset: number;
60
+ alignOffset: number;
61
+ teleport: boolean;
62
+ modal: boolean;
63
+ ariaLabel: string;
64
+ closable: boolean;
65
+ closeLabel: string;
66
+ arrow: boolean;
67
+ width: number | string;
68
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
69
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
70
+ export default _default;
71
+ type __VLS_WithTemplateSlots<T, S> = T & {
72
+ new (): {
73
+ $slots: S;
74
+ };
75
+ };
@@ -0,0 +1,2 @@
1
+ export { default as WxPopover } from './Popover';
2
+ export type * from './types';
@@ -0,0 +1,34 @@
1
+ export type PopoverSide = 'top' | 'right' | 'bottom' | 'left';
2
+ export type PopoverAlign = 'start' | 'center' | 'end';
3
+ export interface PopoverProps {
4
+ /** Which side of the trigger the panel prefers; it flips when there is no room. */
5
+ side?: PopoverSide;
6
+ /** How the panel lines up with the trigger along that side. */
7
+ align?: PopoverAlign;
8
+ /** Distance from the trigger, in pixels. */
9
+ offset?: number;
10
+ /** Shift along the alignment axis, in pixels. */
11
+ alignOffset?: number;
12
+ /** Draws the little pointer at the trigger. */
13
+ arrow?: boolean;
14
+ /** Heading of the panel. The `title` slot replaces it. */
15
+ title?: string;
16
+ /** Width of the panel: a number in pixels, or any CSS length. */
17
+ width?: number | string;
18
+ /** Render the panel in a portal so it escapes `overflow: hidden`. */
19
+ teleport?: boolean;
20
+ /** Block the page behind the panel and trap focus in it. */
21
+ modal?: boolean;
22
+ /** The trigger stops opening anything. */
23
+ disabled?: boolean;
24
+ /** Adds a × in the heading. */
25
+ closable?: boolean;
26
+ /** Label of that ×, for screen readers. */
27
+ closeLabel?: string;
28
+ /** Accessible name for the panel when it has no visible heading. */
29
+ ariaLabel?: string;
30
+ }
31
+ export interface PopoverEmits {
32
+ open: [];
33
+ close: [];
34
+ }
@@ -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<ProseProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ProseProps> & Readonly<{}>, {
12
12
  size: import('./types').ProseSize;
13
- html: string;
14
13
  as: string;
14
+ html: string;
15
15
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
16
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
17
17
  export default _default;
@@ -22,8 +22,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
22
22
  }>, {
23
23
  name: string;
24
24
  size: import('../..').ControlSize;
25
- label: string;
26
25
  disabled: boolean;
26
+ label: string;
27
27
  ariaLabel: string;
28
28
  id: string;
29
29
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -20,10 +20,10 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
20
20
  onFocus?: (() => any) | undefined;
21
21
  onUploadError?: ((error: unknown, file: File) => any) | undefined;
22
22
  }>, {
23
- upload: import('./types').RichTextUpload;
24
23
  size: import('../..').ControlSize;
25
24
  disabled: boolean;
26
25
  placeholder: string;
26
+ upload: import('./types').RichTextUpload;
27
27
  ariaLabel: string;
28
28
  status: import('../..').ControlStatus;
29
29
  id: string;
@@ -12,9 +12,9 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
12
12
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
13
13
  onClick?: (() => any) | undefined;
14
14
  }>, {
15
+ disabled: boolean;
15
16
  text: string;
16
17
  icon: string;
17
- disabled: boolean;
18
18
  active: boolean;
19
19
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
20
20
  export default _default;
@@ -13,32 +13,32 @@ declare function __VLS_template(): {
13
13
  };
14
14
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
15
  declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
- close: () => any;
17
- search: (term: string) => any;
18
- clear: () => any;
19
- open: () => any;
20
16
  change: (value: SelectModelValue) => any;
17
+ search: (term: string) => any;
21
18
  "update:modelValue": (value: SelectModelValue) => any;
19
+ close: () => any;
20
+ open: () => any;
21
+ clear: () => any;
22
22
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
23
- onClose?: (() => any) | undefined;
24
- onSearch?: ((term: string) => any) | undefined;
25
- onClear?: (() => any) | undefined;
26
- onOpen?: (() => any) | undefined;
27
23
  onChange?: ((value: SelectModelValue) => any) | undefined;
24
+ onSearch?: ((term: string) => any) | undefined;
28
25
  "onUpdate:modelValue"?: ((value: SelectModelValue) => any) | undefined;
26
+ onClose?: (() => any) | undefined;
27
+ onOpen?: (() => any) | undefined;
28
+ onClear?: (() => any) | undefined;
29
29
  }>, {
30
30
  name: string;
31
+ multiple: boolean;
31
32
  size: import('../..').ControlSize;
32
33
  disabled: boolean;
33
- teleport: boolean;
34
34
  placeholder: string;
35
+ teleport: boolean;
35
36
  ariaLabel: string;
36
37
  options: import('./types').SelectOption[];
37
38
  emptyText: string;
38
39
  clearable: boolean;
39
40
  status: import('../..').ControlStatus;
40
41
  id: string;
41
- multiple: boolean;
42
42
  filterable: boolean;
43
43
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
44
44
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -15,9 +15,9 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
15
  declare const __VLS_component: import('vue').DefineComponent<StatisticProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<StatisticProps> & Readonly<{}>, {
16
16
  size: import('./types').StatisticSize;
17
17
  title: string;
18
+ value: number | string;
18
19
  tone: import('..').TextTone;
19
20
  align: import('..').TextAlign;
20
- value: number | string;
21
21
  precision: number;
22
22
  locale: string;
23
23
  grouping: boolean;
@@ -22,8 +22,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
22
22
  }>, {
23
23
  name: string;
24
24
  size: import('../..').ControlSize;
25
- label: string;
26
25
  disabled: boolean;
26
+ label: string;
27
27
  ariaLabel: string;
28
28
  id: string;
29
29
  activeValue: ChoiceValue;
@@ -0,0 +1,32 @@
1
+ import { TabProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: Readonly<{
5
+ /** The panel. */
6
+ default?: () => unknown;
7
+ /** Replaces `label` in the strip — an avatar, a coloured dot, anything. */
8
+ label?: () => unknown;
9
+ }> & {
10
+ /** The panel. */
11
+ default?: () => unknown;
12
+ /** Replaces `label` in the strip — an avatar, a coloured dot, anything. */
13
+ label?: () => unknown;
14
+ };
15
+ refs: {};
16
+ rootEl: any;
17
+ };
18
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
19
+ declare const __VLS_component: import('vue').DefineComponent<TabProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TabProps> & Readonly<{}>, {
20
+ disabled: boolean;
21
+ label: string;
22
+ icon: import('..').IconName;
23
+ badge: string | number;
24
+ keepAlive: boolean;
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
27
+ export default _default;
28
+ type __VLS_WithTemplateSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1,2 @@
1
+ export { default as WxTab } from './Tab';
2
+ export type * from './types';
@@ -0,0 +1,15 @@
1
+ import { IconName } from '../Icon/types';
2
+ import { TabValue } from '../Tabs/types';
3
+ export interface TabProps {
4
+ /** Unique within the tabs; this is what `v-model` holds. */
5
+ value: TabValue;
6
+ /** Text of the tab itself. The `label` slot replaces it. */
7
+ label?: string;
8
+ /** Icon before the label. */
9
+ icon?: IconName;
10
+ /** A count or a short marker after the label. */
11
+ badge?: string | number;
12
+ disabled?: boolean;
13
+ /** Keep this one panel mounted while it is hidden, whatever the tabs say. */
14
+ keepAlive?: boolean;
15
+ }
@@ -0,0 +1,58 @@
1
+ import { TabsProps, TabValue } from './types';
2
+ type __VLS_Props = TabsProps;
3
+ declare function measure(): void;
4
+ /**
5
+ * `instant` is for the first placement: a strip that opens on its eighth tab should
6
+ * already be there, not slide there while the page is still settling.
7
+ */
8
+ declare function revealActive(instant?: boolean): void;
9
+ type __VLS_PublicProps = {
10
+ modelValue?: TabValue | undefined;
11
+ } & __VLS_Props;
12
+ declare function __VLS_template(): {
13
+ attrs: Partial<{}>;
14
+ slots: Readonly<{
15
+ /** The `WxTab`s. */
16
+ default?: () => unknown;
17
+ /** Sits at the end of the strip — a button, a filter, a count. */
18
+ extra?: () => unknown;
19
+ }> & {
20
+ /** The `WxTab`s. */
21
+ default?: () => unknown;
22
+ /** Sits at the end of the strip — a button, a filter, a count. */
23
+ extra?: () => unknown;
24
+ };
25
+ refs: {
26
+ scroller: HTMLDivElement;
27
+ };
28
+ rootEl: any;
29
+ };
30
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
31
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
32
+ measure: typeof measure;
33
+ revealActive: typeof revealActive;
34
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
35
+ change: (value: TabValue) => any;
36
+ "update:modelValue": (value: TabValue | undefined) => any;
37
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
38
+ onChange?: ((value: TabValue) => any) | undefined;
39
+ "onUpdate:modelValue"?: ((value: TabValue | undefined) => any) | undefined;
40
+ }>, {
41
+ variant: import('./types').TabsVariant;
42
+ size: import('./types').TabsSize;
43
+ orientation: import('./types').TabsOrientation;
44
+ align: import('./types').TabsAlign;
45
+ ariaLabel: string;
46
+ loop: boolean;
47
+ keepAlive: boolean;
48
+ activationMode: import('./types').TabsActivationMode;
49
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
50
+ scroller: HTMLDivElement;
51
+ }, any>;
52
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
53
+ export default _default;
54
+ type __VLS_WithTemplateSlots<T, S> = T & {
55
+ new (): {
56
+ $slots: S;
57
+ };
58
+ };
@@ -0,0 +1,2 @@
1
+ export { default as WxTabs } from './Tabs';
2
+ export type * from './types';
@@ -0,0 +1,37 @@
1
+ import { IconName } from '../Icon/types';
2
+ /** Reka's tabs key their panels by string or number; ours do the same. */
3
+ export type TabValue = string | number;
4
+ export type TabsVariant = 'line' | 'pill' | 'card';
5
+ export type TabsSize = 'sm' | 'md';
6
+ export type TabsOrientation = 'horizontal' | 'vertical';
7
+ export type TabsAlign = 'start' | 'center' | 'end' | 'stretch';
8
+ export type TabsActivationMode = 'automatic' | 'manual';
9
+ export interface TabsProps {
10
+ /** Underlined strip, a segmented control, or folder tabs. */
11
+ variant?: TabsVariant;
12
+ size?: TabsSize;
13
+ /** A column of tabs beside the panel. It falls back to a strip in a narrow container. */
14
+ orientation?: TabsOrientation;
15
+ /** Where the tabs sit in the strip; `stretch` splits the width between them. */
16
+ align?: TabsAlign;
17
+ /** Whether arrow keys switch the panel as they move, or only move focus. */
18
+ activationMode?: TabsActivationMode;
19
+ /** Keep hidden panels in the DOM, so form state and scroll position survive a switch. */
20
+ keepAlive?: boolean;
21
+ /** Arrow keys wrap around from the last tab to the first. */
22
+ loop?: boolean;
23
+ /** Accessible name for the tab strip. */
24
+ ariaLabel?: string;
25
+ }
26
+ export interface TabsEmits {
27
+ change: [value: TabValue];
28
+ }
29
+ /** What `WxTabs` reads off each `WxTab` in its slot to build the strip. */
30
+ export interface TabDescriptor {
31
+ value: TabValue;
32
+ label?: string;
33
+ icon?: IconName;
34
+ badge?: string | number;
35
+ disabled: boolean;
36
+ labelSlot?: () => unknown;
37
+ }
@@ -6,12 +6,12 @@ type __VLS_PublicProps = {
6
6
  declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
7
7
  focus: () => void | undefined;
8
8
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
- search: (term: string) => any;
10
9
  change: (value: string[]) => any;
10
+ search: (term: string) => any;
11
11
  "update:modelValue": (value: string[]) => any;
12
12
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
- onSearch?: ((term: string) => any) | undefined;
14
13
  onChange?: ((value: string[]) => any) | undefined;
14
+ onSearch?: ((term: string) => any) | undefined;
15
15
  "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
16
16
  }>, {
17
17
  name: string;
@@ -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<TextProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TextProps> & Readonly<{}>, {
12
12
  size: import('./types').TextSize;
13
- tone: import('./types').TextTone;
14
13
  as: string;
14
+ tone: import('./types').TextTone;
15
15
  align: import('./types').TextAlign;
16
16
  truncate: boolean | number;
17
17
  weight: import('./types').TextWeight;
@@ -9,15 +9,15 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
9
9
  select: () => void | undefined;
10
10
  textarea: import('vue').Ref<HTMLTextAreaElement | null, HTMLTextAreaElement | null>;
11
11
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
- input: (value: string) => any;
13
12
  change: (value: string) => any;
14
13
  "update:modelValue": (value: TextareaModelValue) => any;
14
+ input: (value: string) => any;
15
15
  blur: (event: FocusEvent) => any;
16
16
  focus: (event: FocusEvent) => any;
17
17
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
- onInput?: ((value: string) => any) | undefined;
19
18
  onChange?: ((value: string) => any) | undefined;
20
19
  "onUpdate:modelValue"?: ((value: TextareaModelValue) => any) | undefined;
20
+ onInput?: ((value: string) => any) | undefined;
21
21
  onBlur?: ((event: FocusEvent) => any) | undefined;
22
22
  onFocus?: ((event: FocusEvent) => any) | undefined;
23
23
  }>, {
@@ -25,8 +25,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
25
25
  name: string;
26
26
  size: import('../..').ControlSize;
27
27
  disabled: boolean;
28
- teleport: boolean | string;
29
28
  placeholder: string;
29
+ teleport: boolean | string;
30
30
  ariaLabel: string;
31
31
  clearable: boolean;
32
32
  status: import('../..').ControlStatus;
@@ -1,3 +1,5 @@
1
+ export * from './Accordion';
2
+ export * from './AccordionItem';
1
3
  export * from './Action';
2
4
  export * from './Actions';
3
5
  export * from './Autocomplete';
@@ -23,8 +25,10 @@ export * from './Icon';
23
25
  export * from './Indicator';
24
26
  export * from './Input';
25
27
  export * from './InputNumber';
28
+ export * from './Kanban';
26
29
  export * from './Link';
27
30
  export * from './Pagination';
31
+ export * from './Popover';
28
32
  export * from './Prose';
29
33
  export * from './Radio';
30
34
  export * from './RadioGroup';
@@ -34,7 +38,9 @@ export * from './Select';
34
38
  export * from './Slider';
35
39
  export * from './Statistic';
36
40
  export * from './Switch';
41
+ export * from './Tab';
37
42
  export * from './Table';
43
+ export * from './Tabs';
38
44
  export * from './TagsInput';
39
45
  export * from './Text';
40
46
  export * from './Textarea';
@@ -0,0 +1,16 @@
1
+ import { ComputedRef, InjectionKey } from 'vue';
2
+ export type AccordionSize = 'sm' | 'md';
3
+ /** Boxed as one list, each panel its own card, or nothing but rules between them. */
4
+ export type AccordionVariant = 'bordered' | 'separated' | 'plain';
5
+ /** Which side of the header the chevron sits on. */
6
+ export type AccordionIconPosition = 'start' | 'end';
7
+ /** What `WxAccordion` hands down to the items inside it. */
8
+ export interface AccordionContext {
9
+ size: ComputedRef<AccordionSize>;
10
+ variant: ComputedRef<AccordionVariant>;
11
+ iconPosition: ComputedRef<AccordionIconPosition>;
12
+ /** The element each header is written as, so a page keeps one heading outline. */
13
+ headingTag: ComputedRef<string>;
14
+ }
15
+ export declare const accordionKey: InjectionKey<AccordionContext>;
16
+ export declare function useAccordion(): AccordionContext | null;