@raylang/vue 0.8.0 → 0.10.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.
- package/components/code.js +2 -2
- package/components/command-palette.js +1 -1
- package/components/doc-tabs.js +13 -0
- package/components/input.js +1 -1
- package/components/menu.js +2 -2
- package/components/mode-input.js +9 -0
- package/components/password-input.js +1 -1
- package/components/path-input.js +1 -1
- package/components/sidebar.js +2 -2
- package/components/tabs.js +2 -2
- package/components/textarea.js +1 -1
- package/index.d.ts +185 -2
- package/index.js +4 -2
- package/package.json +2 -2
package/components/code.js
CHANGED
|
@@ -4,6 +4,6 @@ import "@raylang/elements/code";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayCode = /*#__PURE__*/ createComponent("RayCode", "ray-code", {
|
|
7
|
-
properties: ["code", "language", "filename", "lineNumbers", "highlight", "wrap", "maxHeight", "expanded", "hideCopy", "hideHeader", "size", "radius", "copyLabel", "copiedLabel"],
|
|
8
|
-
booleans: ["lineNumbers", "wrap", "expanded", "hideCopy", "hideHeader"],
|
|
7
|
+
properties: ["code", "language", "filename", "lineNumbers", "highlight", "wrap", "verbatim", "maxHeight", "expanded", "hideCopy", "hideHeader", "size", "radius", "copyLabel", "copiedLabel"],
|
|
8
|
+
booleans: ["lineNumbers", "wrap", "verbatim", "expanded", "hideCopy", "hideHeader"],
|
|
9
9
|
});
|
|
@@ -4,7 +4,7 @@ import "@raylang/elements/command-palette";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayCommandPalette = /*#__PURE__*/ createComponent("RayCommandPalette", "ray-command-palette", {
|
|
7
|
-
properties: ["open", "actions", "query", "placeholder", "hotkey", "limit", "emptyLabel", "label", "hideHint", "nativeMenus", "overlayBlur"],
|
|
7
|
+
properties: ["open", "actions", "query", "placeholder", "hotkey", "limit", "emptyLabel", "label", "hideHint", "navigateLabel", "runLabel", "closeLabel", "nativeMenus", "overlayBlur"],
|
|
8
8
|
booleans: ["open", "hideHint", "nativeMenus"],
|
|
9
9
|
model: { prop: "open", events: ["ray-open", "ray-close"] },
|
|
10
10
|
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Generated by ray-elements tools from component.toml files. Do not edit.
|
|
2
|
+
|
|
3
|
+
import "@raylang/elements/doc-tabs";
|
|
4
|
+
import { createComponent } from "../create.js";
|
|
5
|
+
|
|
6
|
+
export const RayDocTabs = /*#__PURE__*/ createComponent("RayDocTabs", "ray-doc-tabs", {
|
|
7
|
+
properties: ["value", "panel", "label", "closeLabel", "dirtyLabel"],
|
|
8
|
+
booleans: [],
|
|
9
|
+
});
|
|
10
|
+
export const RayDocTab = /*#__PURE__*/ createComponent("RayDocTab", "ray-doc-tab", {
|
|
11
|
+
properties: ["value", "dirty", "hideClose"],
|
|
12
|
+
booleans: ["dirty", "hideClose"],
|
|
13
|
+
});
|
package/components/input.js
CHANGED
|
@@ -4,7 +4,7 @@ import "@raylang/elements/input";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayInput = /*#__PURE__*/ createComponent("RayInput", "ray-input", {
|
|
7
|
-
properties: ["value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant"],
|
|
7
|
+
properties: ["value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant", "highlight", "complete", "suggestionsLabel"],
|
|
8
8
|
booleans: ["required", "disabled", "readonly"],
|
|
9
9
|
model: { prop: "value", events: ["input"] },
|
|
10
10
|
});
|
package/components/menu.js
CHANGED
|
@@ -9,8 +9,8 @@ export const RayMenu = /*#__PURE__*/ createComponent("RayMenu", "ray-menu", {
|
|
|
9
9
|
model: { prop: "open", events: ["ray-open", "ray-close"] },
|
|
10
10
|
});
|
|
11
11
|
export const RayMenuItem = /*#__PURE__*/ createComponent("RayMenuItem", "ray-menu-item", {
|
|
12
|
-
properties: ["value", "disabled", "color"],
|
|
13
|
-
booleans: ["disabled"],
|
|
12
|
+
properties: ["value", "disabled", "color", "type", "checked", "name"],
|
|
13
|
+
booleans: ["disabled", "checked"],
|
|
14
14
|
});
|
|
15
15
|
export const RayMenuLabel = /*#__PURE__*/ createComponent("RayMenuLabel", "ray-menu-label", {
|
|
16
16
|
properties: [],
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Generated by ray-elements tools from component.toml files. Do not edit.
|
|
2
|
+
|
|
3
|
+
import "@raylang/elements/mode-input";
|
|
4
|
+
import { createComponent } from "../create.js";
|
|
5
|
+
|
|
6
|
+
export const RayModeInput = /*#__PURE__*/ createComponent("RayModeInput", "ray-mode-input", {
|
|
7
|
+
properties: ["mode", "options", "display", "position", "menuLabel", "nativeMenu", "value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant", "highlight", "complete", "suggestionsLabel"],
|
|
8
|
+
booleans: ["nativeMenu", "required", "disabled", "readonly"],
|
|
9
|
+
});
|
|
@@ -4,6 +4,6 @@ import "@raylang/elements/password-input";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayPasswordInput = /*#__PURE__*/ createComponent("RayPasswordInput", "ray-password-input", {
|
|
7
|
-
properties: ["visible", "showLabel", "hideLabel", "value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant"],
|
|
7
|
+
properties: ["visible", "showLabel", "hideLabel", "value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant", "highlight", "complete", "suggestionsLabel"],
|
|
8
8
|
booleans: ["visible", "required", "disabled", "readonly"],
|
|
9
9
|
});
|
package/components/path-input.js
CHANGED
|
@@ -4,6 +4,6 @@ import "@raylang/elements/path-input";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayPathInput = /*#__PURE__*/ createComponent("RayPathInput", "ray-path-input", {
|
|
7
|
-
properties: ["mode", "accept", "browseLabel", "dialogTitle", "value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant"],
|
|
7
|
+
properties: ["mode", "accept", "browseLabel", "dialogTitle", "value", "type", "name", "label", "description", "descriptionPosition", "error", "placeholder", "required", "disabled", "readonly", "size", "radius", "variant", "highlight", "complete", "suggestionsLabel"],
|
|
8
8
|
booleans: ["required", "disabled", "readonly"],
|
|
9
9
|
});
|
package/components/sidebar.js
CHANGED
|
@@ -4,8 +4,8 @@ import "@raylang/elements/sidebar";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RaySidebar = /*#__PURE__*/ createComponent("RaySidebar", "ray-sidebar", {
|
|
7
|
-
properties: ["collapsed", "open", "side", "variant", "width", "collapsedWidth", "breakpoint", "label"],
|
|
8
|
-
booleans: ["collapsed", "open"],
|
|
7
|
+
properties: ["collapsed", "collapse", "open", "side", "variant", "width", "collapsedWidth", "breakpoint", "label", "resizable", "minWidth", "maxWidth", "autosave", "resizeLabel"],
|
|
8
|
+
booleans: ["collapsed", "open", "resizable"],
|
|
9
9
|
});
|
|
10
10
|
export const RaySidebarGroup = /*#__PURE__*/ createComponent("RaySidebarGroup", "ray-sidebar-group", {
|
|
11
11
|
properties: ["label"],
|
package/components/tabs.js
CHANGED
|
@@ -4,12 +4,12 @@ import "@raylang/elements/tabs";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayTabs = /*#__PURE__*/ createComponent("RayTabs", "ray-tabs", {
|
|
7
|
-
properties: ["value", "variant", "orientation", "color", "activation", "grow"],
|
|
7
|
+
properties: ["value", "variant", "orientation", "color", "size", "activation", "grow"],
|
|
8
8
|
booleans: ["grow"],
|
|
9
9
|
model: { prop: "value", events: ["change"] },
|
|
10
10
|
});
|
|
11
11
|
export const RayTab = /*#__PURE__*/ createComponent("RayTab", "ray-tab", {
|
|
12
|
-
properties: ["value", "disabled"],
|
|
12
|
+
properties: ["value", "disabled", "count"],
|
|
13
13
|
booleans: ["disabled"],
|
|
14
14
|
});
|
|
15
15
|
export const RayTabPanel = /*#__PURE__*/ createComponent("RayTabPanel", "ray-tab-panel", {
|
package/components/textarea.js
CHANGED
|
@@ -4,7 +4,7 @@ import "@raylang/elements/textarea";
|
|
|
4
4
|
import { createComponent } from "../create.js";
|
|
5
5
|
|
|
6
6
|
export const RayTextarea = /*#__PURE__*/ createComponent("RayTextarea", "ray-textarea", {
|
|
7
|
-
properties: ["value", "rows", "autosize", "maxRows", "name", "label", "description", "descriptionPosition", "error", "required", "disabled", "readonly", "size", "variant", "radius"],
|
|
7
|
+
properties: ["value", "rows", "autosize", "maxRows", "name", "label", "description", "descriptionPosition", "error", "required", "disabled", "readonly", "size", "variant", "highlight", "complete", "suggestionsLabel", "radius"],
|
|
8
8
|
booleans: ["autosize", "required", "disabled", "readonly"],
|
|
9
9
|
model: { prop: "value", events: ["input"] },
|
|
10
10
|
});
|
package/index.d.ts
CHANGED
|
@@ -531,6 +531,12 @@ export interface RayInputProps {
|
|
|
531
531
|
radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
532
532
|
/** Box style. */
|
|
533
533
|
variant?: "default" | "filled" | "unstyled";
|
|
534
|
+
/** Marks ranges of the text, painted behind it: called with the text on every change (typed or set), it returns { start, end, kind?, title? } offsets. kind "error" is red with a wavy underline; any other kind is styled with ::part(highlight-<kind>); title is the tooltip over the range. Ranges must not overlap. */
|
|
535
|
+
highlight?: ((text: string) => Ray.HighlightRange[]) | null;
|
|
536
|
+
/** Inline suggestions: called as the user types (and on Ctrl+Space) with the text and the caret, it returns the part of the text a suggestion would replace and the suggestions ({ from, to, items }), or null for none. A list opens under that part (ArrowUp/Down, Enter or Tab to accept, Escape to close); the chosen item's value replaces from–to as an undoable edit, then ray-complete fires. The field becomes a combobox (aria-autocomplete, aria-expanded, aria-activedescendant). */
|
|
537
|
+
complete?: ((text: string, caret: number) => Ray.CompletionResult | null | Promise<Ray.CompletionResult | null>) | null;
|
|
538
|
+
/** Accessible name of the suggestion list. */
|
|
539
|
+
suggestionsLabel?: string;
|
|
534
540
|
/** v-model: the element's `value`. */
|
|
535
541
|
modelValue?: string;
|
|
536
542
|
"onUpdate:modelValue"?: (value: string) => void;
|
|
@@ -556,6 +562,8 @@ export interface RayInputProps {
|
|
|
556
562
|
enterkeyhint?: string;
|
|
557
563
|
/** Id of a <datalist> with suggestions. */
|
|
558
564
|
list?: string;
|
|
565
|
+
/** A suggestion was accepted (the text already has it). */
|
|
566
|
+
onRayComplete?: (event: CustomEvent<{ item: Ray.CompletionItem; from: number; to: number }>) => void;
|
|
559
567
|
/** On every edit (value already updated). */
|
|
560
568
|
onInput?: (event: Event) => void;
|
|
561
569
|
/** When an edit is committed (blur, Enter). */
|
|
@@ -564,6 +572,87 @@ export interface RayInputProps {
|
|
|
564
572
|
/** <ray-input> as a Vue component. */
|
|
565
573
|
export declare const RayInput: DefineComponent<RayInputProps>;
|
|
566
574
|
|
|
575
|
+
export interface RayModeInputProps {
|
|
576
|
+
/** The chosen mode's value (default: the first). Setting it applies that mode without ray-mode-change. */
|
|
577
|
+
mode?: string;
|
|
578
|
+
/** The modes; when not set, the <option> children. */
|
|
579
|
+
options?: Ray.ModeOption[];
|
|
580
|
+
/** What the trigger shows: the mode's hint or label, its icon, or both. Default: the icon when the mode has one, else the label. */
|
|
581
|
+
display?: "label" | "icon" | "both";
|
|
582
|
+
/** The side of the field the trigger sits on. */
|
|
583
|
+
position?: "start" | "end";
|
|
584
|
+
/** The trigger's accessible name, read with the current mode ("Mode: File"). */
|
|
585
|
+
menuLabel?: string;
|
|
586
|
+
/** With a native host (a std/ui window with the bridge), the system's menu (no descriptions there). */
|
|
587
|
+
nativeMenu?: boolean;
|
|
588
|
+
/** Current value. The value attribute is the initial value (restored on form reset). */
|
|
589
|
+
value?: string;
|
|
590
|
+
/** Input type. */
|
|
591
|
+
type?: "text" | "email" | "password" | "search" | "number" | "url" | "tel";
|
|
592
|
+
/** Form field name. */
|
|
593
|
+
name?: string;
|
|
594
|
+
/** Visible label (also the accessible name). */
|
|
595
|
+
label?: string;
|
|
596
|
+
/** Help text under the label. */
|
|
597
|
+
description?: string;
|
|
598
|
+
/** The description before the control (help first) or after it, with the error (fields in a row stay aligned). */
|
|
599
|
+
descriptionPosition?: "above" | "below";
|
|
600
|
+
/** Error text; marks the field invalid (display only — does not block submit). */
|
|
601
|
+
error?: string;
|
|
602
|
+
/** Placeholder text. */
|
|
603
|
+
placeholder?: string;
|
|
604
|
+
/** Required for form submission; shows an asterisk. */
|
|
605
|
+
required?: boolean;
|
|
606
|
+
/** Not editable nor submitted. */
|
|
607
|
+
disabled?: boolean;
|
|
608
|
+
/** Not editable, still submitted. */
|
|
609
|
+
readonly?: boolean;
|
|
610
|
+
/** Height and font size. */
|
|
611
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
612
|
+
/** Corner radius. */
|
|
613
|
+
radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
614
|
+
/** Box style. */
|
|
615
|
+
variant?: "default" | "filled" | "unstyled";
|
|
616
|
+
/** Marks ranges of the text, painted behind it: called with the text on every change (typed or set), it returns { start, end, kind?, title? } offsets. kind "error" is red with a wavy underline; any other kind is styled with ::part(highlight-<kind>); title is the tooltip over the range. Ranges must not overlap. */
|
|
617
|
+
highlight?: ((text: string) => Ray.HighlightRange[]) | null;
|
|
618
|
+
/** Inline suggestions: called as the user types (and on Ctrl+Space) with the text and the caret, it returns the part of the text a suggestion would replace and the suggestions ({ from, to, items }), or null for none. A list opens under that part (ArrowUp/Down, Enter or Tab to accept, Escape to close); the chosen item's value replaces from–to as an undoable edit, then ray-complete fires. The field becomes a combobox (aria-autocomplete, aria-expanded, aria-activedescendant). */
|
|
619
|
+
complete?: ((text: string, caret: number) => Ray.CompletionResult | null | Promise<Ray.CompletionResult | null>) | null;
|
|
620
|
+
/** Accessible name of the suggestion list. */
|
|
621
|
+
suggestionsLabel?: string;
|
|
622
|
+
/** Forwarded to the inner input. */
|
|
623
|
+
autocomplete?: string;
|
|
624
|
+
/** Virtual keyboard hint. */
|
|
625
|
+
inputmode?: string;
|
|
626
|
+
/** Validation pattern (regular expression). */
|
|
627
|
+
pattern?: string;
|
|
628
|
+
/** Minimum (number/date types). */
|
|
629
|
+
min?: string;
|
|
630
|
+
/** Maximum (number/date types). */
|
|
631
|
+
max?: string;
|
|
632
|
+
/** Step (number types). */
|
|
633
|
+
step?: string;
|
|
634
|
+
/** Minimum length. */
|
|
635
|
+
minlength?: string;
|
|
636
|
+
/** Maximum length. */
|
|
637
|
+
maxlength?: string;
|
|
638
|
+
/** Mobile auto-capitalization. */
|
|
639
|
+
autocapitalize?: string;
|
|
640
|
+
/** Label of the Enter key on virtual keyboards. */
|
|
641
|
+
enterkeyhint?: string;
|
|
642
|
+
/** Id of a <datalist> with suggestions. */
|
|
643
|
+
list?: string;
|
|
644
|
+
/** The user chose a mode (mode is already the new one); cancelable: preventDefault keeps the previous mode. */
|
|
645
|
+
onRayModeChange?: (event: CustomEvent<{ mode: string; previous: string | null; option: Ray.ModeOption }>) => void;
|
|
646
|
+
/** A suggestion was accepted (the text already has it). */
|
|
647
|
+
onRayComplete?: (event: CustomEvent<{ item: Ray.CompletionItem; from: number; to: number }>) => void;
|
|
648
|
+
/** On every edit (value already updated). */
|
|
649
|
+
onInput?: (event: Event) => void;
|
|
650
|
+
/** When an edit is committed (blur, Enter). */
|
|
651
|
+
onChange?: (event: Event) => void;
|
|
652
|
+
}
|
|
653
|
+
/** <ray-mode-input> as a Vue component. */
|
|
654
|
+
export declare const RayModeInput: DefineComponent<RayModeInputProps>;
|
|
655
|
+
|
|
567
656
|
export interface RayNumberInputProps {
|
|
568
657
|
/** The number (undefined when empty). */
|
|
569
658
|
value?: number;
|
|
@@ -659,6 +748,12 @@ export interface RayPasswordInputProps {
|
|
|
659
748
|
radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
660
749
|
/** Box style. */
|
|
661
750
|
variant?: "default" | "filled" | "unstyled";
|
|
751
|
+
/** Marks ranges of the text, painted behind it: called with the text on every change (typed or set), it returns { start, end, kind?, title? } offsets. kind "error" is red with a wavy underline; any other kind is styled with ::part(highlight-<kind>); title is the tooltip over the range. Ranges must not overlap. */
|
|
752
|
+
highlight?: ((text: string) => Ray.HighlightRange[]) | null;
|
|
753
|
+
/** Inline suggestions: called as the user types (and on Ctrl+Space) with the text and the caret, it returns the part of the text a suggestion would replace and the suggestions ({ from, to, items }), or null for none. A list opens under that part (ArrowUp/Down, Enter or Tab to accept, Escape to close); the chosen item's value replaces from–to as an undoable edit, then ray-complete fires. The field becomes a combobox (aria-autocomplete, aria-expanded, aria-activedescendant). */
|
|
754
|
+
complete?: ((text: string, caret: number) => Ray.CompletionResult | null | Promise<Ray.CompletionResult | null>) | null;
|
|
755
|
+
/** Accessible name of the suggestion list. */
|
|
756
|
+
suggestionsLabel?: string;
|
|
662
757
|
/** Forwarded to the inner input. */
|
|
663
758
|
autocomplete?: string;
|
|
664
759
|
/** Virtual keyboard hint. */
|
|
@@ -683,6 +778,8 @@ export interface RayPasswordInputProps {
|
|
|
683
778
|
list?: string;
|
|
684
779
|
/** The user showed or hid the password. */
|
|
685
780
|
onRayVisibilityChange?: (event: CustomEvent<{ visible: boolean }>) => void;
|
|
781
|
+
/** A suggestion was accepted (the text already has it). */
|
|
782
|
+
onRayComplete?: (event: CustomEvent<{ item: Ray.CompletionItem; from: number; to: number }>) => void;
|
|
686
783
|
/** On every edit (value already updated). */
|
|
687
784
|
onInput?: (event: Event) => void;
|
|
688
785
|
/** When an edit is committed (blur, Enter). */
|
|
@@ -728,6 +825,12 @@ export interface RayPathInputProps {
|
|
|
728
825
|
radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
729
826
|
/** Box style. */
|
|
730
827
|
variant?: "default" | "filled" | "unstyled";
|
|
828
|
+
/** Marks ranges of the text, painted behind it: called with the text on every change (typed or set), it returns { start, end, kind?, title? } offsets. kind "error" is red with a wavy underline; any other kind is styled with ::part(highlight-<kind>); title is the tooltip over the range. Ranges must not overlap. */
|
|
829
|
+
highlight?: ((text: string) => Ray.HighlightRange[]) | null;
|
|
830
|
+
/** Inline suggestions: called as the user types (and on Ctrl+Space) with the text and the caret, it returns the part of the text a suggestion would replace and the suggestions ({ from, to, items }), or null for none. A list opens under that part (ArrowUp/Down, Enter or Tab to accept, Escape to close); the chosen item's value replaces from–to as an undoable edit, then ray-complete fires. The field becomes a combobox (aria-autocomplete, aria-expanded, aria-activedescendant). */
|
|
831
|
+
complete?: ((text: string, caret: number) => Ray.CompletionResult | null | Promise<Ray.CompletionResult | null>) | null;
|
|
832
|
+
/** Accessible name of the suggestion list. */
|
|
833
|
+
suggestionsLabel?: string;
|
|
731
834
|
/** Forwarded to the inner input. */
|
|
732
835
|
autocomplete?: string;
|
|
733
836
|
/** Virtual keyboard hint. */
|
|
@@ -754,6 +857,8 @@ export interface RayPathInputProps {
|
|
|
754
857
|
onChange?: (event: Event) => void;
|
|
755
858
|
/** The system dialog failed. */
|
|
756
859
|
onRayError?: (event: CustomEvent<{ error: Error }>) => void;
|
|
860
|
+
/** A suggestion was accepted (the text already has it). */
|
|
861
|
+
onRayComplete?: (event: CustomEvent<{ item: Ray.CompletionItem; from: number; to: number }>) => void;
|
|
757
862
|
/** On every edit (value already updated). */
|
|
758
863
|
onInput?: (event: Event) => void;
|
|
759
864
|
}
|
|
@@ -1071,6 +1176,12 @@ export interface RayTextareaProps {
|
|
|
1071
1176
|
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
1072
1177
|
/** Box style. */
|
|
1073
1178
|
variant?: "default" | "filled" | "unstyled";
|
|
1179
|
+
/** Marks ranges of the text, painted behind it: called with the text on every change (typed or set), it returns { start, end, kind?, title? } offsets. kind "error" is red with a wavy underline; any other kind is styled with ::part(highlight-<kind>); title is the tooltip over the range. Ranges must not overlap. */
|
|
1180
|
+
highlight?: ((text: string) => Ray.HighlightRange[]) | null;
|
|
1181
|
+
/** Inline suggestions: called as the user types (and on Ctrl+Space) with the text and the caret, it returns the part of the text a suggestion would replace and the suggestions ({ from, to, items }), or null for none. A list opens under that part (ArrowUp/Down, Enter or Tab to accept, Escape to close); the chosen item's value replaces from–to as an undoable edit, then ray-complete fires. The field becomes a combobox (aria-autocomplete, aria-expanded, aria-activedescendant). */
|
|
1182
|
+
complete?: ((text: string, caret: number) => Ray.CompletionResult | null | Promise<Ray.CompletionResult | null>) | null;
|
|
1183
|
+
/** Accessible name of the suggestion list. */
|
|
1184
|
+
suggestionsLabel?: string;
|
|
1074
1185
|
/** Corner radius. */
|
|
1075
1186
|
radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
|
|
1076
1187
|
/** v-model: the element's `value`. */
|
|
@@ -1086,6 +1197,8 @@ export interface RayTextareaProps {
|
|
|
1086
1197
|
maxlength?: string;
|
|
1087
1198
|
/** soft or hard. */
|
|
1088
1199
|
wrap?: string;
|
|
1200
|
+
/** A suggestion was accepted (the text already has it). */
|
|
1201
|
+
onRayComplete?: (event: CustomEvent<{ item: Ray.CompletionItem; from: number; to: number }>) => void;
|
|
1089
1202
|
/** On every edit. */
|
|
1090
1203
|
onInput?: (event: Event) => void;
|
|
1091
1204
|
/** When an edit is committed. */
|
|
@@ -1169,6 +1282,36 @@ export interface RayBreadcrumbProps {
|
|
|
1169
1282
|
/** <ray-breadcrumb> as a Vue component. */
|
|
1170
1283
|
export declare const RayBreadcrumb: DefineComponent<RayBreadcrumbProps>;
|
|
1171
1284
|
|
|
1285
|
+
export interface RayDocTabsProps {
|
|
1286
|
+
/** Value of the selected tab (default: the first). */
|
|
1287
|
+
value?: string;
|
|
1288
|
+
/** The id of the shared panel: it gets role=tabpanel and aria-labelledby the selected tab; the tabs get aria-controls. */
|
|
1289
|
+
panel?: string;
|
|
1290
|
+
/** Accessible name of the tab list ("Open requests"). */
|
|
1291
|
+
label?: string;
|
|
1292
|
+
/** Tooltip of the ×. */
|
|
1293
|
+
closeLabel?: string;
|
|
1294
|
+
/** What assistive technology hears after the name of a dirty tab. */
|
|
1295
|
+
dirtyLabel?: string;
|
|
1296
|
+
/** The selected tab changed: a click, the arrow keys, or the selected tab removed. */
|
|
1297
|
+
onChange?: (event: Event) => void;
|
|
1298
|
+
/** The × was clicked, the tab middle-clicked, or Delete/Backspace pressed on it: remove the tab to close it (not fired for hide-close tabs). */
|
|
1299
|
+
onRayRequestClose?: (event: CustomEvent<{ value: string; tab: Ray.RayDocTab; source: "button" | "middle" | "key" }>) => void;
|
|
1300
|
+
}
|
|
1301
|
+
/** <ray-doc-tabs> as a Vue component. */
|
|
1302
|
+
export declare const RayDocTabs: DefineComponent<RayDocTabsProps>;
|
|
1303
|
+
|
|
1304
|
+
export interface RayDocTabProps {
|
|
1305
|
+
/** Identifies the document (ray-doc-tabs value). */
|
|
1306
|
+
value?: string;
|
|
1307
|
+
/** Unsaved changes: a dot in place of the ×, which comes back under the pointer. */
|
|
1308
|
+
dirty?: boolean;
|
|
1309
|
+
/** Cannot be closed: no ×, no middle click, no Delete. */
|
|
1310
|
+
hideClose?: boolean;
|
|
1311
|
+
}
|
|
1312
|
+
/** <ray-doc-tab> as a Vue component. */
|
|
1313
|
+
export declare const RayDocTab: DefineComponent<RayDocTabProps>;
|
|
1314
|
+
|
|
1172
1315
|
export interface RayNavLinkProps {
|
|
1173
1316
|
/** Text. */
|
|
1174
1317
|
label?: string;
|
|
@@ -1230,8 +1373,10 @@ export interface RayPaginationProps {
|
|
|
1230
1373
|
export declare const RayPagination: DefineComponent<RayPaginationProps>;
|
|
1231
1374
|
|
|
1232
1375
|
export interface RaySidebarProps {
|
|
1233
|
-
/** Wide screens: an icon rail
|
|
1376
|
+
/** Wide screens: collapsed as collapse says (an icon rail, or out of view). */
|
|
1234
1377
|
collapsed?: boolean;
|
|
1378
|
+
/** What collapsed does on wide screens: icon, a rail of the nav links' icons; offcanvas, hidden entirely (no width, out of the tab order). */
|
|
1379
|
+
collapse?: "icon" | "offcanvas";
|
|
1235
1380
|
/** Narrow screens: the drawer is shown (modal, focus trapped; Escape, backdrop click or a followed link close it). */
|
|
1236
1381
|
open?: boolean;
|
|
1237
1382
|
/** The edge it sits on (its border faces the content, its narrow-screen drawer slides from there): start/end follow the writing direction; left/right are sides of the screen. */
|
|
@@ -1246,6 +1391,18 @@ export interface RaySidebarProps {
|
|
|
1246
1391
|
breakpoint?: string;
|
|
1247
1392
|
/** Accessible name of its navigation. */
|
|
1248
1393
|
label?: string;
|
|
1394
|
+
/** Wide screens, expanded: its inner edge drags (or, focused, arrow-keys; Shift is faster, Home/End go to the limits) the width between min-width and max-width. */
|
|
1395
|
+
resizable?: boolean;
|
|
1396
|
+
/** Narrowest width when resizing, in px. */
|
|
1397
|
+
minWidth?: number;
|
|
1398
|
+
/** Widest width when resizing, in px. */
|
|
1399
|
+
maxWidth?: number;
|
|
1400
|
+
/** A key: the resized width is saved in localStorage and restored. A later change of width wins. */
|
|
1401
|
+
autosave?: string;
|
|
1402
|
+
/** Accessible name of the resize edge. */
|
|
1403
|
+
resizeLabel?: string;
|
|
1404
|
+
/** After a drag or a key resized it (resizable). */
|
|
1405
|
+
onRayResize?: (event: CustomEvent<{ width: number }>) => void;
|
|
1249
1406
|
/** After toggle(). */
|
|
1250
1407
|
onRayToggle?: (event: CustomEvent<{ collapsed: boolean; open: boolean; mobile: boolean }>) => void;
|
|
1251
1408
|
/** The drawer opened (narrow screens). */
|
|
@@ -1317,6 +1474,8 @@ export interface RayTabsProps {
|
|
|
1317
1474
|
orientation?: "horizontal" | "vertical";
|
|
1318
1475
|
/** Active indicator color. */
|
|
1319
1476
|
color?: string;
|
|
1477
|
+
/** Height, font size and padding of the tabs (xs for a compact bar). */
|
|
1478
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
1320
1479
|
/** manual: arrows move focus, Enter/Space activates. */
|
|
1321
1480
|
activation?: "auto" | "manual";
|
|
1322
1481
|
/** Tabs share the full width. */
|
|
@@ -1335,6 +1494,8 @@ export interface RayTabProps {
|
|
|
1335
1494
|
value?: string;
|
|
1336
1495
|
/** Cannot be activated. */
|
|
1337
1496
|
disabled?: boolean;
|
|
1497
|
+
/** A small number after the label ("3", "99+"), lighter than a badge; part of the tab's accessible name. Empty: none. */
|
|
1498
|
+
count?: string;
|
|
1338
1499
|
}
|
|
1339
1500
|
/** <ray-tab> as a Vue component. */
|
|
1340
1501
|
export declare const RayTab: DefineComponent<RayTabProps>;
|
|
@@ -1365,6 +1526,12 @@ export interface RayCommandPaletteProps {
|
|
|
1365
1526
|
label?: string;
|
|
1366
1527
|
/** No keyboard hint at the bottom. */
|
|
1367
1528
|
hideHint?: boolean;
|
|
1529
|
+
/** The keyboard hint's word for ↑↓. */
|
|
1530
|
+
navigateLabel?: string;
|
|
1531
|
+
/** The keyboard hint's word for ↵. */
|
|
1532
|
+
runLabel?: string;
|
|
1533
|
+
/** The keyboard hint's word for esc. */
|
|
1534
|
+
closeLabel?: string;
|
|
1368
1535
|
/** With a native host (ray-elements/core/raylang.js in a std/ui window, menus declared with elements/bridge), also lists the app's menu bar, grouped by menu with its shortcuts; running one gives the program the menu's own event. */
|
|
1369
1536
|
nativeMenus?: boolean;
|
|
1370
1537
|
/** Blur of the page behind: px ("8"), a CSS length or "none". Default: --ray-overlay-blur ([overlay] blur in tokens.toml). */
|
|
@@ -1468,6 +1635,8 @@ export interface RayMenuProps {
|
|
|
1468
1635
|
"onUpdate:modelValue"?: (value: boolean) => void;
|
|
1469
1636
|
/** An item was chosen; detail: { value, item }. */
|
|
1470
1637
|
onRaySelect?: (event: CustomEvent<{ value: string; item: Ray.RayMenuItem }>) => void;
|
|
1638
|
+
/** Its trigger is about to open it (click, Arrow keys, right click), before the items are read, native menu included: fill items that depend on what was clicked here. Cancelable (preventDefault keeps it closed). Not fired by show() or open = true. detail: { event }. */
|
|
1639
|
+
onRayRequestOpen?: (event: CustomEvent<{ event: Event }>) => void;
|
|
1471
1640
|
/** After it opened. */
|
|
1472
1641
|
onRayOpen?: (event: CustomEvent<unknown>) => void;
|
|
1473
1642
|
/** After it closed. */
|
|
@@ -1483,6 +1652,12 @@ export interface RayMenuItemProps {
|
|
|
1483
1652
|
disabled?: boolean;
|
|
1484
1653
|
/** Text and hover color (e.g. red for destructive actions). */
|
|
1485
1654
|
color?: string;
|
|
1655
|
+
/** checkbox: choosing it toggles checked (menuitemcheckbox); radio: choosing it checks it and unchecks the radio items of the menu with the same name (menuitemradio). Both show a check mark when checked, in the native menu too. */
|
|
1656
|
+
type?: "item" | "checkbox" | "radio";
|
|
1657
|
+
/** Checked (checkbox and radio items). Already updated when ray-select fires. */
|
|
1658
|
+
checked?: boolean;
|
|
1659
|
+
/** The group of a radio item: one checked per name in the menu. */
|
|
1660
|
+
name?: string;
|
|
1486
1661
|
}
|
|
1487
1662
|
/** <ray-menu-item> as a Vue component. */
|
|
1488
1663
|
export declare const RayMenuItem: DefineComponent<RayMenuItemProps>;
|
|
@@ -1712,6 +1887,8 @@ export interface RayCodeProps {
|
|
|
1712
1887
|
highlight?: string;
|
|
1713
1888
|
/** Wraps long lines instead of scrolling sideways. */
|
|
1714
1889
|
wrap?: boolean;
|
|
1890
|
+
/** Shows and copies the text exactly as given: no common indentation or blank first and last lines removed. For data (a response body, a log) rather than code written in the page. */
|
|
1891
|
+
verbatim?: boolean;
|
|
1715
1892
|
/** Height before it scrolls: px as a number, or a CSS length. A taller block gets a "Show all N lines" button. */
|
|
1716
1893
|
maxHeight?: string;
|
|
1717
1894
|
/** Shown whole, past max-height. */
|
|
@@ -2205,7 +2382,7 @@ export interface RaySplitProps {
|
|
|
2205
2382
|
collapsed?: boolean;
|
|
2206
2383
|
/** The divider cannot be moved. */
|
|
2207
2384
|
disabled?: boolean;
|
|
2208
|
-
/** A key: the size
|
|
2385
|
+
/** A key: the size and the collapsed state are saved in localStorage and restored (a saved state wins over the collapsed attribute). */
|
|
2209
2386
|
autosave?: string;
|
|
2210
2387
|
/** After a drag, a key or a collapse. */
|
|
2211
2388
|
onRayResize?: (event: CustomEvent<{ size: number; collapsed: boolean }>) => void;
|
|
@@ -2266,6 +2443,7 @@ export declare const components: {
|
|
|
2266
2443
|
RayCalendar: typeof RayCalendar;
|
|
2267
2444
|
RayFileUpload: typeof RayFileUpload;
|
|
2268
2445
|
RayInput: typeof RayInput;
|
|
2446
|
+
RayModeInput: typeof RayModeInput;
|
|
2269
2447
|
RayNumberInput: typeof RayNumberInput;
|
|
2270
2448
|
RayPasswordInput: typeof RayPasswordInput;
|
|
2271
2449
|
RayPathInput: typeof RayPathInput;
|
|
@@ -2282,6 +2460,8 @@ export declare const components: {
|
|
|
2282
2460
|
RayBottomNavItem: typeof RayBottomNavItem;
|
|
2283
2461
|
RayBreadcrumbs: typeof RayBreadcrumbs;
|
|
2284
2462
|
RayBreadcrumb: typeof RayBreadcrumb;
|
|
2463
|
+
RayDocTabs: typeof RayDocTabs;
|
|
2464
|
+
RayDocTab: typeof RayDocTab;
|
|
2285
2465
|
RayNavLink: typeof RayNavLink;
|
|
2286
2466
|
RayPagination: typeof RayPagination;
|
|
2287
2467
|
RaySidebar: typeof RaySidebar;
|
|
@@ -2361,6 +2541,7 @@ declare module "vue" {
|
|
|
2361
2541
|
RayCalendar: typeof RayCalendar;
|
|
2362
2542
|
RayFileUpload: typeof RayFileUpload;
|
|
2363
2543
|
RayInput: typeof RayInput;
|
|
2544
|
+
RayModeInput: typeof RayModeInput;
|
|
2364
2545
|
RayNumberInput: typeof RayNumberInput;
|
|
2365
2546
|
RayPasswordInput: typeof RayPasswordInput;
|
|
2366
2547
|
RayPathInput: typeof RayPathInput;
|
|
@@ -2377,6 +2558,8 @@ declare module "vue" {
|
|
|
2377
2558
|
RayBottomNavItem: typeof RayBottomNavItem;
|
|
2378
2559
|
RayBreadcrumbs: typeof RayBreadcrumbs;
|
|
2379
2560
|
RayBreadcrumb: typeof RayBreadcrumb;
|
|
2561
|
+
RayDocTabs: typeof RayDocTabs;
|
|
2562
|
+
RayDocTab: typeof RayDocTab;
|
|
2380
2563
|
RayNavLink: typeof RayNavLink;
|
|
2381
2564
|
RayPagination: typeof RayPagination;
|
|
2382
2565
|
RaySidebar: typeof RaySidebar;
|
package/index.js
CHANGED
|
@@ -16,6 +16,7 @@ import { RayCombobox } from "./components/combobox.js";
|
|
|
16
16
|
import { RayDatePicker, RayCalendar } from "./components/date-picker.js";
|
|
17
17
|
import { RayFileUpload } from "./components/file-upload.js";
|
|
18
18
|
import { RayInput } from "./components/input.js";
|
|
19
|
+
import { RayModeInput } from "./components/mode-input.js";
|
|
19
20
|
import { RayNumberInput } from "./components/number-input.js";
|
|
20
21
|
import { RayPasswordInput } from "./components/password-input.js";
|
|
21
22
|
import { RayPathInput } from "./components/path-input.js";
|
|
@@ -28,6 +29,7 @@ import { RaySwitch } from "./components/switch.js";
|
|
|
28
29
|
import { RayTextarea } from "./components/textarea.js";
|
|
29
30
|
import { RayBottomNav, RayBottomNavItem } from "./components/bottom-nav.js";
|
|
30
31
|
import { RayBreadcrumbs, RayBreadcrumb } from "./components/breadcrumbs.js";
|
|
32
|
+
import { RayDocTabs, RayDocTab } from "./components/doc-tabs.js";
|
|
31
33
|
import { RayNavLink } from "./components/nav-link.js";
|
|
32
34
|
import { RayPagination } from "./components/pagination.js";
|
|
33
35
|
import { RaySidebar, RaySidebarGroup } from "./components/sidebar.js";
|
|
@@ -77,9 +79,9 @@ import { RayThemeToggle } from "./components/theme-toggle.js";
|
|
|
77
79
|
|
|
78
80
|
// The factories, to wrap your own custom elements the same way.
|
|
79
81
|
export { createComponent, createPlugin } from "./create.js";
|
|
80
|
-
export { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RayRadioCard, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RayRingProgress, RaySkeleton, RaySpinner, RayStepDots, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
|
|
82
|
+
export { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayModeInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RayRadioCard, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayDocTabs, RayDocTab, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RayRingProgress, RaySkeleton, RaySpinner, RayStepDots, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
|
|
81
83
|
|
|
82
|
-
export const components = { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RayRadioCard, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RayRingProgress, RaySkeleton, RaySpinner, RayStepDots, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
|
|
84
|
+
export const components = { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayModeInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RayRadioCard, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayDocTabs, RayDocTab, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RayRingProgress, RaySkeleton, RaySpinner, RayStepDots, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
|
|
83
85
|
|
|
84
86
|
/** app.use(RayElements) registers every component globally. */
|
|
85
87
|
export const RayElements = /*#__PURE__*/ createPlugin(components);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raylang/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Vue 3 wrappers (with v-model) of the ray-elements web components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": ["web-components", "design-system", "ui", "raylang", "vue"],
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"sideEffects": false,
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"@raylang/elements": "^0.
|
|
31
|
+
"@raylang/elements": "^0.10.0",
|
|
32
32
|
"vue": ">=3.3"
|
|
33
33
|
}
|
|
34
34
|
}
|