@webx-ui/core 0.38.0 → 0.40.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.
@@ -38,6 +38,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
38
38
  align: import('./types').ActionsAlign;
39
39
  ariaLabel: string;
40
40
  collapse: boolean | "always";
41
+ moreLabel: string;
41
42
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
42
43
  root: HTMLDivElement;
43
44
  row: HTMLDivElement;
@@ -17,6 +17,11 @@ export interface ActionsProps {
17
17
  collapse?: boolean | 'always';
18
18
  /** Accessible name of the group, e.g. "Row actions". */
19
19
  ariaLabel?: string;
20
+ /**
21
+ * The name of the button the folded-up menu opens from — its tip and its accessible name.
22
+ * English by default, like every word of a component: whoever places it knows the language.
23
+ */
24
+ moreLabel?: string;
20
25
  }
21
26
  export interface ActionsEmits {
22
27
  /** The row collapsed into the dropdown, or came back out of it. */
@@ -40,6 +40,9 @@ declare function __VLS_template(): {
40
40
  readonly autocomplete?: string | undefined;
41
41
  readonly ariaLabel?: string | undefined;
42
42
  readonly localized?: boolean | undefined;
43
+ readonly tokens?: import('../..').TokenOption[] | undefined;
44
+ readonly tokensTitle?: string | undefined;
45
+ readonly tokensLabel?: string | undefined;
43
46
  readonly onChange?: ((value: string) => any) | undefined;
44
47
  readonly "onUpdate:modelValue"?: ((value: import('..').InputModelValue) => any) | undefined;
45
48
  readonly onInput?: ((value: string) => any) | undefined;
@@ -51,7 +54,9 @@ declare function __VLS_template(): {
51
54
  $refs: {
52
55
  [x: string]: unknown;
53
56
  } & {
57
+ rootRef: HTMLDivElement;
54
58
  inputRef: HTMLInputElement;
59
+ mirrorRef: HTMLSpanElement;
55
60
  };
56
61
  $slots: Readonly<{
57
62
  [name: string]: import('vue').Slot<any> | undefined;
@@ -96,6 +101,9 @@ declare function __VLS_template(): {
96
101
  maxlength: number;
97
102
  showCount: boolean;
98
103
  localized: boolean;
104
+ tokens: import('../..').TokenOption[];
105
+ tokensTitle: string;
106
+ tokensLabel: string;
99
107
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
100
108
  beforeCreate?: (() => void) | (() => void)[];
101
109
  created?: (() => void) | (() => void)[];
@@ -130,6 +138,9 @@ declare function __VLS_template(): {
130
138
  maxlength: number;
131
139
  showCount: boolean;
132
140
  localized: boolean;
141
+ tokens: import('../..').TokenOption[];
142
+ tokensTitle: string;
143
+ tokensLabel: string;
133
144
  }> & Omit<Readonly<{
134
145
  modelValue?: import('..').InputModelValue;
135
146
  } & import('..').InputProps> & Readonly<{
@@ -139,7 +150,7 @@ declare function __VLS_template(): {
139
150
  onClear?: (() => any) | undefined;
140
151
  onBlur?: ((event: FocusEvent) => any) | undefined;
141
152
  onFocus?: ((event: FocusEvent) => any) | undefined;
142
- }>, "input" | "select" | "blur" | "focus" | ("size" | "disabled" | "type" | "placeholder" | "ariaLabel" | "clearable" | "status" | "id" | "readonly" | "autocomplete" | "maxlength" | "showCount" | "localized")> & {
153
+ }>, "input" | "select" | "blur" | "focus" | ("size" | "disabled" | "type" | "placeholder" | "ariaLabel" | "clearable" | "status" | "id" | "readonly" | "autocomplete" | "maxlength" | "showCount" | "localized" | "tokens" | "tokensTitle" | "tokensLabel")> & {
143
154
  focus: () => void | undefined;
144
155
  blur: () => void | undefined;
145
156
  select: () => void | undefined;
@@ -158,12 +169,14 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
158
169
  declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
159
170
  edit: () => any;
160
171
  copy: (url: string) => any;
172
+ view: () => any;
161
173
  remove: () => any;
162
174
  rename: (name: string) => any;
163
175
  "copy-error": (error: unknown) => any;
164
176
  }, string, import('vue').PublicProps, Readonly<FileCardProps> & Readonly<{
165
177
  onEdit?: (() => any) | undefined;
166
178
  onCopy?: ((url: string) => any) | undefined;
179
+ onView?: (() => any) | undefined;
167
180
  onRemove?: (() => any) | undefined;
168
181
  onRename?: ((name: string) => any) | undefined;
169
182
  "onCopy-error"?: ((error: unknown) => any) | undefined;
@@ -172,11 +185,15 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
172
185
  disabled: boolean;
173
186
  type: string;
174
187
  icon: import('..').IconName;
188
+ moreLabel: string;
175
189
  url: string;
176
190
  selected: boolean;
177
191
  thumbnail: string;
192
+ extension: string;
193
+ showExtension: boolean;
178
194
  renamable: boolean;
179
195
  editable: boolean;
196
+ viewable: boolean;
180
197
  removable: boolean;
181
198
  confirmRemove: boolean;
182
199
  copyable: boolean;
@@ -186,11 +203,13 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
186
203
  saveLabel: string;
187
204
  cancelLabel: string;
188
205
  editLabel: string;
206
+ viewLabel: string;
189
207
  removeLabel: string;
190
208
  removeConfirmText: string;
191
209
  copyLabel: string;
192
210
  downloadLabel: string;
193
211
  copiedLabel: string;
212
+ actionsLabel: string;
194
213
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
195
214
  field: ({
196
215
  $: import('vue').ComponentInternalInstance;
@@ -210,6 +229,9 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
210
229
  readonly autocomplete?: string | undefined;
211
230
  readonly ariaLabel?: string | undefined;
212
231
  readonly localized?: boolean | undefined;
232
+ readonly tokens?: import('../..').TokenOption[] | undefined;
233
+ readonly tokensTitle?: string | undefined;
234
+ readonly tokensLabel?: string | undefined;
213
235
  readonly onChange?: ((value: string) => any) | undefined;
214
236
  readonly "onUpdate:modelValue"?: ((value: import('..').InputModelValue) => any) | undefined;
215
237
  readonly onInput?: ((value: string) => any) | undefined;
@@ -221,7 +243,9 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
221
243
  $refs: {
222
244
  [x: string]: unknown;
223
245
  } & {
246
+ rootRef: HTMLDivElement;
224
247
  inputRef: HTMLInputElement;
248
+ mirrorRef: HTMLSpanElement;
225
249
  };
226
250
  $slots: Readonly<{
227
251
  [name: string]: import('vue').Slot<any> | undefined;
@@ -266,6 +290,9 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
266
290
  maxlength: number;
267
291
  showCount: boolean;
268
292
  localized: boolean;
293
+ tokens: import('../..').TokenOption[];
294
+ tokensTitle: string;
295
+ tokensLabel: string;
269
296
  }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
270
297
  beforeCreate?: (() => void) | (() => void)[];
271
298
  created?: (() => void) | (() => void)[];
@@ -300,6 +327,9 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
300
327
  maxlength: number;
301
328
  showCount: boolean;
302
329
  localized: boolean;
330
+ tokens: import('../..').TokenOption[];
331
+ tokensTitle: string;
332
+ tokensLabel: string;
303
333
  }> & Omit<Readonly<{
304
334
  modelValue?: import('..').InputModelValue;
305
335
  } & import('..').InputProps> & Readonly<{
@@ -309,7 +339,7 @@ declare const __VLS_component: import('vue').DefineComponent<FileCardProps, {},
309
339
  onClear?: (() => any) | undefined;
310
340
  onBlur?: ((event: FocusEvent) => any) | undefined;
311
341
  onFocus?: ((event: FocusEvent) => any) | undefined;
312
- }>, "input" | "select" | "blur" | "focus" | ("size" | "disabled" | "type" | "placeholder" | "ariaLabel" | "clearable" | "status" | "id" | "readonly" | "autocomplete" | "maxlength" | "showCount" | "localized")> & {
342
+ }>, "input" | "select" | "blur" | "focus" | ("size" | "disabled" | "type" | "placeholder" | "ariaLabel" | "clearable" | "status" | "id" | "readonly" | "autocomplete" | "maxlength" | "showCount" | "localized" | "tokens" | "tokensTitle" | "tokensLabel")> & {
313
343
  focus: () => void | undefined;
314
344
  blur: () => void | undefined;
315
345
  select: () => void | undefined;
@@ -17,6 +17,17 @@ export interface FileCardProps {
17
17
  type?: string;
18
18
  /** Icon to draw instead of the one the extension picks. */
19
19
  icon?: IconName;
20
+ /**
21
+ * The extension, for a `name` that does not carry one — a library that shows titles rather
22
+ * than file names. Given, it picks the glyph and the word under it instead of the name.
23
+ */
24
+ extension?: string;
25
+ /**
26
+ * Puts the extension in a corner of a picture too, not only under a glyph. A grid of
27
+ * thumbnails looks alike whether the files are JPEGs or PNGs, and the format is often
28
+ * exactly what somebody is looking for.
29
+ */
30
+ showExtension?: boolean;
20
31
  /** Draws the card as chosen. The choosing itself belongs to whatever holds the cards. */
21
32
  selected?: boolean;
22
33
  size?: FileCardSize;
@@ -30,6 +41,12 @@ export interface FileCardProps {
30
41
  * nothing to open for a `.zip`.
31
42
  */
32
43
  editable?: boolean;
44
+ /**
45
+ * Offers the view action — "show this picture large" — which the card only reports: a
46
+ * lightbox over one file is a poorer thing than one over the grid it is in, and only whoever
47
+ * holds the cards knows the grid. Pictures only.
48
+ */
49
+ viewable?: boolean;
33
50
  removable?: boolean;
34
51
  /**
35
52
  * Asks before deleting. On, because a file deleted from a grid of thumbnails is a file
@@ -57,6 +74,7 @@ export interface FileCardProps {
57
74
  saveLabel?: string;
58
75
  cancelLabel?: string;
59
76
  editLabel?: string;
77
+ viewLabel?: string;
60
78
  removeLabel?: string;
61
79
  /** The question `confirmRemove` asks. The file name is worth putting in it. */
62
80
  removeConfirmText?: string;
@@ -64,12 +82,18 @@ export interface FileCardProps {
64
82
  downloadLabel?: string;
65
83
  /** Shown on the copy action for a moment after it worked. */
66
84
  copiedLabel?: string;
85
+ /** The button the folded-up actions open from. */
86
+ moreLabel?: string;
87
+ /** The accessible name of the actions, said with the file's name in it. */
88
+ actionsLabel?: string;
67
89
  }
68
90
  export interface FileCardEmits {
69
91
  /** A new name was committed. The file is not renamed until the caller says so. */
70
92
  rename: [name: string];
71
93
  /** Open this picture in an editor. */
72
94
  edit: [];
95
+ /** Show this picture large. */
96
+ view: [];
73
97
  remove: [];
74
98
  /** The URL reached the clipboard. */
75
99
  copy: [url: string];
@@ -16,6 +16,8 @@ export declare const builtinIcons: {
16
16
  readonly edit: "<path d=\"M4 20h4L19.5 8.5a2.83 2.83 0 0 0-4-4L4 16v4Z\"/><path d=\"m14.5 5.5 4 4\"/>";
17
17
  readonly trash: "<path d=\"M4 7h16M10 7V5.5A1.5 1.5 0 0 1 11.5 4h1A1.5 1.5 0 0 1 14 5.5V7M6.5 7l.8 11.6a2 2 0 0 0 2 1.9h5.4a2 2 0 0 0 2-1.9L17.5 7\"/><path d=\"M10 11v5.5M14 11v5.5\"/>";
18
18
  readonly copy: "<rect x=\"8.5\" y=\"8.5\" width=\"11\" height=\"11\" rx=\"2.2\"/><path d=\"M15.5 8.5v-2a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h2\"/>";
19
+ readonly clipboard: "<rect x=\"8.5\" y=\"2.8\" width=\"7\" height=\"3.6\" rx=\"1\"/><path d=\"M15.5 4.6H17a2 2 0 0 1 2 2V19a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6.6a2 2 0 0 1 2-2h1.5\"/>";
20
+ readonly 'clipboard-paste': "<rect x=\"8.5\" y=\"2.8\" width=\"7\" height=\"3.6\" rx=\"1\"/><path d=\"M15.5 4.6H17a2 2 0 0 1 2 2V19a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6.6a2 2 0 0 1 2-2h1.5\"/><path d=\"M12 10v7M9.2 14.4 12 17.2l2.8-2.8\"/>";
19
21
  readonly search: "<circle cx=\"11\" cy=\"11\" r=\"6.5\"/><path d=\"m16 16 4.5 4.5\"/>";
20
22
  readonly 'zoom-in': "<circle cx=\"11\" cy=\"11\" r=\"6.5\"/><path d=\"m16 16 4.5 4.5M8.5 11h5M11 8.5v5\"/>";
21
23
  readonly 'zoom-out': "<circle cx=\"11\" cy=\"11\" r=\"6.5\"/><path d=\"m16 16 4.5 4.5M8.5 11h5\"/>";
@@ -17,8 +17,8 @@ declare const __VLS_component: import('vue').DefineComponent<IndicatorProps, {},
17
17
  hidden: boolean;
18
18
  max: number;
19
19
  dot: boolean;
20
- showZero: boolean;
21
20
  placement: import('./types').IndicatorPlacement;
21
+ showZero: boolean;
22
22
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
23
23
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
24
24
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { TokenOption } from '../../composables/useTokens';
1
2
  import { InputModelValue, InputProps } from './types';
2
3
  type __VLS_Props = InputProps;
3
4
  type __VLS_PublicProps = {
@@ -10,7 +11,9 @@ declare function __VLS_template(): {
10
11
  suffix?(_: {}): any;
11
12
  };
12
13
  refs: {
14
+ rootRef: HTMLDivElement;
13
15
  inputRef: HTMLInputElement;
16
+ mirrorRef: HTMLSpanElement;
14
17
  };
15
18
  rootEl: any;
16
19
  };
@@ -48,8 +51,13 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
48
51
  maxlength: number;
49
52
  showCount: boolean;
50
53
  localized: boolean;
54
+ tokens: TokenOption[];
55
+ tokensTitle: string;
56
+ tokensLabel: string;
51
57
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
58
+ rootRef: HTMLDivElement;
52
59
  inputRef: HTMLInputElement;
60
+ mirrorRef: HTMLSpanElement;
53
61
  }, any>;
54
62
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
55
63
  export default _default;
@@ -1,8 +1,9 @@
1
1
  import { LocalizedFieldProps, LocalizedValue } from '../../composables/useLocalized';
2
+ import { TokenFieldProps } from '../../composables/useTokens';
2
3
  export type InputSize = 'sm' | 'md' | 'lg';
3
4
  export type InputStatus = 'default' | 'success' | 'warning' | 'error';
4
5
  export type InputNativeType = 'text' | 'password' | 'email' | 'number' | 'search' | 'tel' | 'url';
5
- export interface InputProps extends LocalizedFieldProps {
6
+ export interface InputProps extends LocalizedFieldProps, TokenFieldProps {
6
7
  /** Overrides the id generated for the control (and used by a WxFormItem label). */
7
8
  id?: string;
8
9
  /** `type` attribute of the underlying `<input>`. */
@@ -21,6 +21,15 @@ export interface RepeaterProps<T extends object = Record<string, unknown>> {
21
21
  newItem?: () => T;
22
22
  addLabel?: string;
23
23
  removeLabel?: string;
24
+ /**
25
+ * Removing a row asks first, in a popover by the button: a row is often a whole record's
26
+ * worth of typing, and the button sits where a hand reaching for the row's header lands.
27
+ */
28
+ confirmRemove?: boolean;
29
+ /** The question `confirmRemove` asks. */
30
+ removeQuestion?: string;
31
+ /** The button of that question that keeps the row. */
32
+ cancelLabel?: string;
24
33
  /** What the grip is called to a screen reader. */
25
34
  dragLabel?: string;
26
35
  /** Rows fold to their header, so a long form stays readable. */
@@ -1,3 +1,4 @@
1
+ import { TokenOption } from '../../composables/useTokens';
1
2
  import { RichTextLabels, RichTextModelValue, RichTextProps, RichTextTool } from './types';
2
3
  type __VLS_Props = RichTextProps;
3
4
  type __VLS_PublicProps = {
@@ -27,14 +28,19 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
27
28
  ariaLabel: string;
28
29
  status: import('../..').ControlStatus;
29
30
  id: string;
31
+ inline: boolean;
30
32
  readonly: boolean;
31
33
  minHeight: string;
32
34
  localized: boolean;
35
+ tokens: TokenOption[];
36
+ tokensTitle: string;
37
+ tokensLabel: string;
33
38
  tools: RichTextTool[];
34
39
  pickImage: import('./types').RichTextImagePicker;
35
40
  accept: string[];
36
41
  labels: RichTextLabels;
37
42
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
43
+ rootRef: HTMLDivElement;
38
44
  fileInput: HTMLInputElement;
39
45
  }, any>;
40
46
  export default _default;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The HTML behind the editor, as a person reads and edits it.
3
+ *
4
+ * Tiptap writes the document as one line, which is unreadable past a paragraph. Blocks go on
5
+ * lines of their own here, and whatever holds other blocks indents them. Whitespace between
6
+ * blocks means nothing to the parser, so the document that comes back is the one that went in.
7
+ */
8
+ export declare function formatHtml(html: string, indent?: string): string;
9
+ /**
10
+ * What a document loses on its way into the editor: the tags and attributes the editor's schema
11
+ * does not know, each named once. ProseMirror drops them without a word, which is fine for a
12
+ * paste and not for markup a person has just typed by hand.
13
+ *
14
+ * Counted rather than merely listed, so that one `<span>` the editor keeps does not vouch for
15
+ * the nine it drops. What the editor adds — a paragraph around bare text, its own `rel` on a
16
+ * link — is not a loss and is not reported.
17
+ */
18
+ export declare function lostMarkup(before: string, after: string): string[];
@@ -4,6 +4,8 @@ import { RichTextTableTool, RichTextTool } from './types';
4
4
  * declared inside `<script setup>` — it is hoisted out of `setup()`.
5
5
  */
6
6
  export declare const DEFAULT_TOOLS: RichTextTool[];
7
+ /** What an inline field offers: the marks a line of a heading is ever given. */
8
+ export declare const INLINE_TOOLS: RichTextTool[];
7
9
  export declare const DEFAULT_ACCEPT: string[];
8
10
  export interface ToolMeta {
9
11
  label: string;
@@ -1,17 +1,24 @@
1
1
  import { ControlSize, ControlStatus } from '../../composables/useFormField';
2
2
  import { LocalizedFieldProps, LocalizedValue } from '../../composables/useLocalized';
3
- export type RichTextTool = 'bold' | 'italic' | 'strike' | 'code' | 'h2' | 'h3' | 'h4' | 'bulletList' | 'orderedList' | 'blockquote' | 'hr' | 'link' | 'table' | 'image' | 'youtube' | 'undo' | 'redo'
3
+ import { TokenFieldProps } from '../../composables/useTokens';
4
+ export type RichTextTool = 'bold' | 'italic'
5
+ /** The accent of an inline field: a bare `<span>` the site's styles colour. */
6
+ | 'accent' | 'strike' | 'code' | 'h2' | 'h3' | 'h4' | 'bulletList' | 'orderedList' | 'blockquote' | 'hr' | 'link' | 'table' | 'image' | 'youtube' | 'undo' | 'redo'
7
+ /** Shows the document as HTML to read and edit by hand. */
8
+ | 'source'
4
9
  /** A vertical rule between groups. */
5
10
  | 'divider';
6
11
  /** The keys of the second toolbar, the one that appears inside a table. */
7
12
  export type RichTextTableTool = 'addRowAfter' | 'addRowBefore' | 'addColumnAfter' | 'addColumnBefore' | 'deleteRow' | 'deleteColumn' | 'mergeOrSplit' | 'deleteTable';
8
13
  /**
9
14
  * Everything this editor says out loud: a tooltip on every button, the two lines of the link
10
- * bar, and the word shown while a file is going up.
15
+ * bar, the word shown while a file is going up, and the warning the source view gives.
11
16
  */
12
17
  export type RichTextLabelKey = Exclude<RichTextTool, 'divider'> | RichTextTableTool
13
18
  /** The accessible name of the toolbar itself. */
14
- | 'toolbar' | 'linkAddress' | 'youtubeAddress' | 'apply' | 'cancel' | 'uploading';
19
+ | 'toolbar' | 'linkAddress' | 'youtubeAddress' | 'apply' | 'cancel' | 'uploading'
20
+ /** The warning before the editor drops markup typed in the source, and its two answers. */
21
+ | 'sourceLoss' | 'sourceDrop' | 'sourceKeep';
15
22
  /**
16
23
  * What the editor calls its own buttons. It knows nothing about the panel it is opened in, so
17
24
  * whoever opens it translates it; a key left out stays English.
@@ -42,7 +49,7 @@ export type RichTextUpload = (file: File) => Promise<RichTextImage>;
42
49
  export type RichTextImagePicker = () => Promise<RichTextImage | string | null>;
43
50
  /** One language's HTML, or every language's when the field is localized. */
44
51
  export type RichTextModelValue = string | LocalizedValue;
45
- export interface RichTextProps extends LocalizedFieldProps {
52
+ export interface RichTextProps extends LocalizedFieldProps, TokenFieldProps {
46
53
  placeholder?: string;
47
54
  disabled?: boolean;
48
55
  readonly?: boolean;
@@ -51,6 +58,12 @@ export interface RichTextProps extends LocalizedFieldProps {
51
58
  id?: string;
52
59
  /** Accessible label used when there is no visible `<label>`. */
53
60
  ariaLabel?: string;
61
+ /**
62
+ * One line of text with a few marks instead of a document: no paragraphs, no Enter, and the
63
+ * value is the bare line — `Deeply heard<span>.</span> Gently guided` — for a heading or a
64
+ * caption that carries a touch of markup. The toolbar defaults to bold, italic and accent.
65
+ */
66
+ inline?: boolean;
54
67
  /** Height of the editing area before it starts growing. */
55
68
  minHeight?: string;
56
69
  /** Which buttons the toolbar shows, in order. */
@@ -37,6 +37,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
37
37
  threshold: number;
38
38
  touch: boolean;
39
39
  clickSelect: boolean;
40
+ dragItems: boolean;
40
41
  edgeScroll: number;
41
42
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
42
43
  root: HTMLDivElement;
@@ -18,6 +18,12 @@ export interface SelectionAreaProps {
18
18
  * because on a touch screen a drag means scroll — a tap still picks either way.
19
19
  */
20
20
  touch?: boolean;
21
+ /**
22
+ * Items can be dragged somewhere else — onto a folder, into another list — with the
23
+ * browser's own drag and drop. A press on an item then never becomes a box (the drag is
24
+ * the item's), and a box starts from the background only. A click still picks.
25
+ */
26
+ dragItems?: boolean;
21
27
  /** How near the scroller's edge the pointer scrolls it, in pixels. `0` never does. */
22
28
  edgeScroll?: number;
23
29
  disabled?: boolean;
@@ -1,3 +1,4 @@
1
+ import { TokenOption } from '../../composables/useTokens';
1
2
  import { TextareaModelValue, TextareaProps } from './types';
2
3
  type __VLS_Props = TextareaProps;
3
4
  type __VLS_PublicProps = {
@@ -32,9 +33,14 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
32
33
  maxlength: number;
33
34
  showCount: boolean;
34
35
  localized: boolean;
36
+ tokens: TokenOption[];
37
+ tokensTitle: string;
38
+ tokensLabel: string;
35
39
  rows: number;
36
40
  autosize: boolean | import('./types').AutosizeOptions;
37
41
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
42
+ rootRef: HTMLDivElement;
38
43
  textareaRef: HTMLTextAreaElement;
44
+ mirrorRef: HTMLDivElement;
39
45
  }, any>;
40
46
  export default _default;
@@ -1,10 +1,11 @@
1
1
  import { ControlSize, ControlStatus } from '../../composables/useFormField';
2
2
  import { LocalizedFieldProps, LocalizedValue } from '../../composables/useLocalized';
3
+ import { TokenFieldProps } from '../../composables/useTokens';
3
4
  export interface AutosizeOptions {
4
5
  minRows?: number;
5
6
  maxRows?: number;
6
7
  }
7
- export interface TextareaProps extends LocalizedFieldProps {
8
+ export interface TextareaProps extends LocalizedFieldProps, TokenFieldProps {
8
9
  size?: ControlSize;
9
10
  status?: ControlStatus;
10
11
  id?: string;
@@ -16,7 +16,53 @@ declare function __VLS_template(): {
16
16
  /** The tip itself, when the text is not enough. */
17
17
  content?: () => unknown;
18
18
  };
19
- refs: {};
19
+ refs: {
20
+ trigger: ({
21
+ $: import('vue').ComponentInternalInstance;
22
+ $data: {};
23
+ $props: {
24
+ readonly reference?: import('reka-ui').ReferenceElement | undefined;
25
+ readonly asChild?: boolean | undefined;
26
+ readonly as?: (import('reka-ui').AsTag | import('vue').Component) | undefined;
27
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
28
+ $attrs: import('vue').Attrs;
29
+ $refs: {
30
+ [x: string]: unknown;
31
+ };
32
+ $slots: Readonly<{
33
+ [name: string]: import('vue').Slot<any> | undefined;
34
+ }>;
35
+ $root: import('vue').ComponentPublicInstance | null;
36
+ $parent: import('vue').ComponentPublicInstance | null;
37
+ $host: Element | null;
38
+ $emit: (event: string, ...args: any[]) => void;
39
+ $el: any;
40
+ $options: import('vue').ComponentOptionsBase<Readonly<import('reka-ui').TooltipTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
41
+ beforeCreate?: (() => void) | (() => void)[];
42
+ created?: (() => void) | (() => void)[];
43
+ beforeMount?: (() => void) | (() => void)[];
44
+ mounted?: (() => void) | (() => void)[];
45
+ beforeUpdate?: (() => void) | (() => void)[];
46
+ updated?: (() => void) | (() => void)[];
47
+ activated?: (() => void) | (() => void)[];
48
+ deactivated?: (() => void) | (() => void)[];
49
+ beforeDestroy?: (() => void) | (() => void)[];
50
+ beforeUnmount?: (() => void) | (() => void)[];
51
+ destroyed?: (() => void) | (() => void)[];
52
+ unmounted?: (() => void) | (() => void)[];
53
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
54
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
55
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
56
+ };
57
+ $forceUpdate: () => void;
58
+ $nextTick: typeof import('vue').nextTick;
59
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
60
+ } & Readonly<{}> & Omit<Readonly<import('reka-ui').TooltipTriggerProps> & Readonly<{}>, never> & {} & import('vue').ComponentCustomProperties & {} & {
61
+ $slots: {
62
+ default?: (props: {}) => any;
63
+ };
64
+ }) | null;
65
+ };
20
66
  rootEl: any;
21
67
  };
22
68
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
@@ -34,7 +80,53 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
34
80
  arrow: boolean;
35
81
  maxWidth: number | string;
36
82
  teleport: boolean;
37
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
83
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
84
+ trigger: ({
85
+ $: import('vue').ComponentInternalInstance;
86
+ $data: {};
87
+ $props: {
88
+ readonly reference?: import('reka-ui').ReferenceElement | undefined;
89
+ readonly asChild?: boolean | undefined;
90
+ readonly as?: (import('reka-ui').AsTag | import('vue').Component) | undefined;
91
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
92
+ $attrs: import('vue').Attrs;
93
+ $refs: {
94
+ [x: string]: unknown;
95
+ };
96
+ $slots: Readonly<{
97
+ [name: string]: import('vue').Slot<any> | undefined;
98
+ }>;
99
+ $root: import('vue').ComponentPublicInstance | null;
100
+ $parent: import('vue').ComponentPublicInstance | null;
101
+ $host: Element | null;
102
+ $emit: (event: string, ...args: any[]) => void;
103
+ $el: any;
104
+ $options: import('vue').ComponentOptionsBase<Readonly<import('reka-ui').TooltipTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
105
+ beforeCreate?: (() => void) | (() => void)[];
106
+ created?: (() => void) | (() => void)[];
107
+ beforeMount?: (() => void) | (() => void)[];
108
+ mounted?: (() => void) | (() => void)[];
109
+ beforeUpdate?: (() => void) | (() => void)[];
110
+ updated?: (() => void) | (() => void)[];
111
+ activated?: (() => void) | (() => void)[];
112
+ deactivated?: (() => void) | (() => void)[];
113
+ beforeDestroy?: (() => void) | (() => void)[];
114
+ beforeUnmount?: (() => void) | (() => void)[];
115
+ destroyed?: (() => void) | (() => void)[];
116
+ unmounted?: (() => void) | (() => void)[];
117
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
118
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
119
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
120
+ };
121
+ $forceUpdate: () => void;
122
+ $nextTick: typeof import('vue').nextTick;
123
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
124
+ } & Readonly<{}> & Omit<Readonly<import('reka-ui').TooltipTriggerProps> & Readonly<{}>, never> & {} & import('vue').ComponentCustomProperties & {} & {
125
+ $slots: {
126
+ default?: (props: {}) => any;
127
+ };
128
+ }) | null;
129
+ }, any>;
38
130
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
39
131
  export default _default;
40
132
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -85,6 +85,10 @@ export interface TreeProps<T = TreeNode> {
85
85
  emptyText?: string;
86
86
  /** What the drag handle is called, before the name of the node it holds. */
87
87
  dragLabel?: string;
88
+ /** What the button that opens a branch is called, before the node's name. */
89
+ expandLabel?: string;
90
+ /** What the same button is called while the branch is open. */
91
+ collapseLabel?: string;
88
92
  /** Accessible name for the tree. */
89
93
  ariaLabel?: string;
90
94
  }