@raylang/elements 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/ray-elements.d.ts CHANGED
@@ -811,6 +811,12 @@ export interface RayFileUploadEventMap extends HTMLElementEventMap {
811
811
  }
812
812
 
813
813
  // --- Input (input)
814
+ /** A range of a field's text to mark (ray-input and ray-textarea highlight): offsets into the text, end excluded. */
815
+ export type HighlightRange = { start: number; end: number; kind?: string; title?: string };
816
+ /** A suggestion of a field's complete(): value is inserted; label (default: value) and detail are shown, description under them. */
817
+ export type CompletionItem = { value: string; label?: string; detail?: string; description?: string };
818
+ /** What complete() returns: the part of the text (offsets, to excluded) a suggestion replaces, and the suggestions. */
819
+ export type CompletionResult = { from: number; to: number; items: CompletionItem[] };
814
820
  /** <ray-input> Also forwards placeholder, autocomplete, inputmode, pattern, min, max, step, minlength, maxlength, spellcheck, autocapitalize, enterkeyhint and list to the inner input. Enter submits its form as a native field does: through the first submit button (ray-button type="submit" included; nothing when it is disabled), or, without one, only when the form has a single text field. */
815
821
  export declare class RayInput extends FieldControl {
816
822
  /** Current value. The value attribute is the initial value (restored on form reset). */
@@ -841,8 +847,59 @@ export declare class RayInput extends FieldControl {
841
847
  radius: "xs" | "sm" | "md" | "lg" | "xl" | "full" | undefined;
842
848
  /** Box style. */
843
849
  variant: "default" | "filled" | "unstyled";
850
+ /** 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. */
851
+ highlight: ((text: string) => HighlightRange[]) | null;
852
+ /** 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). */
853
+ complete: ((text: string, caret: number) => CompletionResult | null | Promise<CompletionResult | null>) | null;
854
+ /** Accessible name of the suggestion list. */
855
+ suggestionsLabel: string;
844
856
  /** Selects the text. */
845
857
  select(): void;
858
+ /** Runs highlight again, when what it marks changed but the text did not. */
859
+ refreshHighlight(): void;
860
+ addEventListener<K extends keyof RayInputEventMap>(type: K, listener: (this: RayInput, ev: RayInputEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
861
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
862
+ removeEventListener<K extends keyof RayInputEventMap>(type: K, listener: (this: RayInput, ev: RayInputEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
863
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
864
+ }
865
+ export interface RayInputEventMap extends HTMLElementEventMap {
866
+ /** A suggestion was accepted (the text already has it). */
867
+ "ray-complete": CustomEvent<{ item: CompletionItem; from: number; to: number }>;
868
+ }
869
+
870
+ // --- Mode input (mode-input)
871
+ /** A mode of ray-mode-input: hint is the trigger's short text ("€"), attrs the attributes it sets on the field. */
872
+ export type ModeOption = { value: string; label: string; icon?: string; hint?: string; description?: string; disabled?: boolean; attrs?: Record<string, string> };
873
+ /** <ray-mode-input> Declare the modes as <option> children (label, data-icon, data-hint, data-description, disabled, and data-set-<attribute> for each attribute the mode sets on the field) or with the options property. A mode's attributes replace the field's own while it is chosen and give them back after. The menu is a ray-menu of radio items in the field's shadow root; Alt+ArrowDown opens it from the field, and the trigger keeps the caret in the field. */
874
+ export declare class RayModeInput extends RayInput {
875
+ /** The chosen mode's value (default: the first). Setting it applies that mode without ray-mode-change. */
876
+ mode: string | undefined;
877
+ /** The modes; when not set, the <option> children. */
878
+ options: ModeOption[] | undefined;
879
+ /** 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. */
880
+ display: "label" | "icon" | "both" | undefined;
881
+ /** The side of the field the trigger sits on. */
882
+ position: "start" | "end";
883
+ /** The trigger's accessible name, read with the current mode ("Mode: File"). */
884
+ menuLabel: string;
885
+ /** With a native host (a std/ui window with the bridge), the system's menu (no descriptions there). */
886
+ nativeMenu: boolean | undefined;
887
+ /** The modes in use. */
888
+ readonly modes: ModeOption[];
889
+ /** The chosen mode. */
890
+ readonly currentOption: ModeOption | null;
891
+ /** Chooses a mode as the user would (fires ray-mode-change). */
892
+ choose(value: string): void;
893
+ addEventListener<K extends keyof RayModeInputEventMap>(type: K, listener: (this: RayModeInput, ev: RayModeInputEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
894
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
895
+ removeEventListener<K extends keyof RayModeInputEventMap>(type: K, listener: (this: RayModeInput, ev: RayModeInputEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
896
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
897
+ }
898
+ export interface RayModeInputEventMap extends HTMLElementEventMap {
899
+ /** The user chose a mode (mode is already the new one); cancelable: preventDefault keeps the previous mode. */
900
+ "ray-mode-change": CustomEvent<{ mode: string; previous: string | null; option: ModeOption }>;
901
+ /** A suggestion was accepted (the text already has it). */
902
+ "ray-complete": CustomEvent<{ item: CompletionItem; from: number; to: number }>;
846
903
  }
847
904
 
848
905
  // --- Number input (number-input)
@@ -901,6 +958,8 @@ export declare class RayPasswordInput extends RayInput {
901
958
  export interface RayPasswordInputEventMap extends HTMLElementEventMap {
902
959
  /** The user showed or hid the password. */
903
960
  "ray-visibility-change": CustomEvent<{ visible: boolean }>;
961
+ /** A suggestion was accepted (the text already has it). */
962
+ "ray-complete": CustomEvent<{ item: CompletionItem; from: number; to: number }>;
904
963
  }
905
964
 
906
965
  // --- Path input (path-input)
@@ -930,6 +989,8 @@ export declare class RayPathInput extends RayInput {
930
989
  export interface RayPathInputEventMap extends HTMLElementEventMap {
931
990
  /** The system dialog failed. */
932
991
  "ray-error": CustomEvent<{ error: Error }>;
992
+ /** A suggestion was accepted (the text already has it). */
993
+ "ray-complete": CustomEvent<{ item: CompletionItem; from: number; to: number }>;
933
994
  }
934
995
 
935
996
  // --- Radio group (radio)
@@ -1183,6 +1244,22 @@ export declare class RayTextarea extends FieldControl {
1183
1244
  size: "xs" | "sm" | "md" | "lg" | "xl";
1184
1245
  /** Box style. */
1185
1246
  variant: "default" | "filled" | "unstyled";
1247
+ /** 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. */
1248
+ highlight: ((text: string) => HighlightRange[]) | null;
1249
+ /** 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). */
1250
+ complete: ((text: string, caret: number) => CompletionResult | null | Promise<CompletionResult | null>) | null;
1251
+ /** Accessible name of the suggestion list. */
1252
+ suggestionsLabel: string;
1253
+ /** Runs highlight again, when what it marks changed but the text did not. */
1254
+ refreshHighlight(): void;
1255
+ addEventListener<K extends keyof RayTextareaEventMap>(type: K, listener: (this: RayTextarea, ev: RayTextareaEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
1256
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1257
+ removeEventListener<K extends keyof RayTextareaEventMap>(type: K, listener: (this: RayTextarea, ev: RayTextareaEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
1258
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1259
+ }
1260
+ export interface RayTextareaEventMap extends HTMLElementEventMap {
1261
+ /** A suggestion was accepted (the text already has it). */
1262
+ "ray-complete": CustomEvent<{ item: CompletionItem; from: number; to: number }>;
1186
1263
  }
1187
1264
 
1188
1265
  // --- Bottom nav (bottom-nav)
@@ -1263,6 +1340,42 @@ export declare class RayBreadcrumb extends RayElement {
1263
1340
  current: boolean | undefined;
1264
1341
  }
1265
1342
 
1343
+ // --- Document tabs (doc-tabs)
1344
+ /** <ray-doc-tabs> Unlike ray-tabs, a tab has no panel of its own: they all control the element named by panel, whose content the app fills for the selected one. Closing is the app's: the ×, a middle click or Delete/Backspace fire ray-request-close, and the app removes the tab (after asking about unsaved changes, if it must). When the selected tab is removed, the one at its place is selected (change) and, if the closed tab had the focus, focused. More tabs than width: the bar scrolls sideways, fades the edge that hides tabs (data-overflow-start / data-overflow-end on the host), scrolls with a vertical wheel and keeps the selected tab in view. */
1345
+ export declare class RayDocTabs extends RayElement {
1346
+ /** Value of the selected tab (default: the first). */
1347
+ value: string | undefined;
1348
+ /** The id of the shared panel: it gets role=tabpanel and aria-labelledby the selected tab; the tabs get aria-controls. */
1349
+ panel: string | undefined;
1350
+ /** Accessible name of the tab list ("Open requests"). */
1351
+ label: string | undefined;
1352
+ /** Tooltip of the ×. */
1353
+ closeLabel: string;
1354
+ /** What assistive technology hears after the name of a dirty tab. */
1355
+ dirtyLabel: string;
1356
+ /** Its tabs, in order. */
1357
+ readonly tabs: RayDocTab[];
1358
+ /** The shared panel, found by the panel id. */
1359
+ readonly panelElement: HTMLElement | null;
1360
+ addEventListener<K extends keyof RayDocTabsEventMap>(type: K, listener: (this: RayDocTabs, ev: RayDocTabsEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
1361
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1362
+ removeEventListener<K extends keyof RayDocTabsEventMap>(type: K, listener: (this: RayDocTabs, ev: RayDocTabsEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
1363
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1364
+ }
1365
+ export interface RayDocTabsEventMap extends HTMLElementEventMap {
1366
+ /** 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). */
1367
+ "ray-request-close": CustomEvent<{ value: string; tab: RayDocTab; source: "button" | "middle" | "key" }>;
1368
+ }
1369
+ /** <ray-doc-tab> A document's tab: an icon or tag (slot left), its name (cut with an ellipsis; give the full one in title), and the × or the unsaved dot. */
1370
+ export declare class RayDocTab extends RayElement {
1371
+ /** Identifies the document (ray-doc-tabs value). */
1372
+ value: string | undefined;
1373
+ /** Unsaved changes: a dot in place of the ×, which comes back under the pointer. */
1374
+ dirty: boolean | undefined;
1375
+ /** Cannot be closed: no ×, no middle click, no Delete. */
1376
+ hideClose: boolean | undefined;
1377
+ }
1378
+
1266
1379
  // --- Nav link (nav-link)
1267
1380
  /** <ray-nav-link> A link with href (aria-current=page when active), or a button that toggles its nested links. */
1268
1381
  export declare class RayNavLink extends RayElement {
@@ -1340,8 +1453,10 @@ export declare class RayPagination extends RayElement {
1340
1453
  // --- Sidebar (sidebar)
1341
1454
  /** <ray-sidebar> Put ray-sidebar-group + ray-nav-link (with an icon in slot=left) inside. Collapsed, nav links show only their icon (the label becomes the tooltip) and the host has the collapsed attribute, so your own header/footer content can hide with CSS (ray-sidebar[collapsed] .brand-name { display: none }). */
1342
1455
  export declare class RaySidebar extends RayElement {
1343
- /** Wide screens: an icon rail instead of the full panel. */
1456
+ /** Wide screens: collapsed as collapse says (an icon rail, or out of view). */
1344
1457
  collapsed: boolean | undefined;
1458
+ /** What collapsed does on wide screens: icon, a rail of the nav links' icons; offcanvas, hidden entirely (no width, out of the tab order). */
1459
+ collapse: "icon" | "offcanvas";
1345
1460
  /** Narrow screens: the drawer is shown (modal, focus trapped; Escape, backdrop click or a followed link close it). */
1346
1461
  open: boolean | undefined;
1347
1462
  /** 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. */
@@ -1356,6 +1471,16 @@ export declare class RaySidebar extends RayElement {
1356
1471
  breakpoint: string;
1357
1472
  /** Accessible name of its navigation. */
1358
1473
  label: string;
1474
+ /** 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. */
1475
+ resizable: boolean | undefined;
1476
+ /** Narrowest width when resizing, in px. */
1477
+ minWidth: number;
1478
+ /** Widest width when resizing, in px. */
1479
+ maxWidth: number;
1480
+ /** A key: the resized width is saved in localStorage and restored. A later change of width wins. */
1481
+ autosave: string | undefined;
1482
+ /** Accessible name of the resize edge. */
1483
+ resizeLabel: string;
1359
1484
  /** Collapses/expands on wide screens; opens/closes the drawer on narrow ones. */
1360
1485
  toggle(): void;
1361
1486
  /** Whether it is in drawer mode (at or below the breakpoint). */
@@ -1366,6 +1491,8 @@ export declare class RaySidebar extends RayElement {
1366
1491
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1367
1492
  }
1368
1493
  export interface RaySidebarEventMap extends HTMLElementEventMap {
1494
+ /** After a drag or a key resized it (resizable). */
1495
+ "ray-resize": CustomEvent<{ width: number }>;
1369
1496
  /** After toggle(). */
1370
1497
  "ray-toggle": CustomEvent<{ collapsed: boolean; open: boolean; mobile: boolean }>;
1371
1498
  /** The drawer opened (narrow screens). */
@@ -1424,7 +1551,7 @@ export declare class RayStep extends RayElement {
1424
1551
  }
1425
1552
 
1426
1553
  // --- Tabs (tabs)
1427
- /** <ray-tabs> Tabs and panels (WAI-ARIA tabs pattern): arrows, Home/End, automatic or manual activation. */
1554
+ /** <ray-tabs> More tabs than width: the list scrolls sideways, fades the edge that hides tabs, scrolls with a vertical wheel and keeps the selected tab in view. The host then carries data-overflow-start and data-overflow-end (following the writing direction), to style it further. */
1428
1555
  export declare class RayTabs extends RayElement {
1429
1556
  /** Value of the active tab (default: the first enabled one). */
1430
1557
  value: string | undefined;
@@ -1434,6 +1561,8 @@ export declare class RayTabs extends RayElement {
1434
1561
  orientation: "horizontal" | "vertical";
1435
1562
  /** Active indicator color. */
1436
1563
  color: string | undefined;
1564
+ /** Height, font size and padding of the tabs (xs for a compact bar). */
1565
+ size: "xs" | "sm" | "md" | "lg" | "xl";
1437
1566
  /** manual: arrows move focus, Enter/Space activates. */
1438
1567
  activation: "auto" | "manual";
1439
1568
  /** Tabs share the full width. */
@@ -1449,6 +1578,8 @@ export declare class RayTab extends RayElement {
1449
1578
  value: string | undefined;
1450
1579
  /** Cannot be activated. */
1451
1580
  disabled: boolean | undefined;
1581
+ /** A small number after the label ("3", "99+"), lighter than a badge; part of the tab's accessible name. Empty: none. */
1582
+ count: string | undefined;
1452
1583
  }
1453
1584
  /** <ray-tab-panel> Tabs and panels (WAI-ARIA tabs pattern): arrows, Home/End, automatic or manual activation. */
1454
1585
  export declare class RayTabPanel extends RayElement {
@@ -1457,8 +1588,8 @@ export declare class RayTabPanel extends RayElement {
1457
1588
  }
1458
1589
 
1459
1590
  // --- Command palette (command-palette)
1460
- /** An action of ray-command-palette. */
1461
- export type CommandAction = { id?: string; label: string; description?: string; group?: string; keywords?: string | string[]; shortcut?: string; icon?: string | Node; disabled?: boolean; native?: boolean; tag?: string; onSelect?: (action: CommandAction) => void };
1591
+ /** An action of ray-command-palette. icon is a 1.25rem square (a registered icon name, text or a Node); prefix is content of any width before the label (text or a Node, e.g. a ray-badge with an HTTP method), not searched. */
1592
+ export type CommandAction = { id?: string; label: string; description?: string; group?: string; keywords?: string | string[]; shortcut?: string; icon?: string | Node; prefix?: string | Node; disabled?: boolean; native?: boolean; tag?: string; onSelect?: (action: CommandAction) => void };
1462
1593
  /** How well an action matches a query (0 = not at all). */
1463
1594
  export declare function score(action: CommandAction, query: string): number;
1464
1595
  /** <ray-command-palette> Running an action fires ray-select and calls its onSelect. The best matches come first, grouped. */
@@ -1481,6 +1612,12 @@ export declare class RayCommandPalette extends RayElement {
1481
1612
  label: string;
1482
1613
  /** No keyboard hint at the bottom. */
1483
1614
  hideHint: boolean | undefined;
1615
+ /** The keyboard hint's word for ↑↓. */
1616
+ navigateLabel: string;
1617
+ /** The keyboard hint's word for ↵. */
1618
+ runLabel: string;
1619
+ /** The keyboard hint's word for esc. */
1620
+ closeLabel: string;
1484
1621
  /** 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. */
1485
1622
  nativeMenus: boolean | undefined;
1486
1623
  /** Blur of the page behind: px ("8"), a CSS length or "none". Default: --ray-overlay-blur ([overlay] blur in tokens.toml). */
@@ -1630,6 +1767,8 @@ export declare class RayMenu extends Floating {
1630
1767
  export interface RayMenuEventMap extends HTMLElementEventMap {
1631
1768
  /** An item was chosen; detail: { value, item }. */
1632
1769
  "ray-select": CustomEvent<{ value: string; item: RayMenuItem }>;
1770
+ /** 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 }. */
1771
+ "ray-request-open": CustomEvent<{ event: Event }>;
1633
1772
  /** After it opened. */
1634
1773
  "ray-open": CustomEvent<unknown>;
1635
1774
  /** After it closed. */
@@ -1643,6 +1782,14 @@ export declare class RayMenuItem extends RayElement {
1643
1782
  disabled: boolean | undefined;
1644
1783
  /** Text and hover color (e.g. red for destructive actions). */
1645
1784
  color: string | undefined;
1785
+ /** 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. */
1786
+ type: "item" | "checkbox" | "radio";
1787
+ /** Checked (checkbox and radio items). Already updated when ray-select fires. */
1788
+ checked: boolean | undefined;
1789
+ /** The group of a radio item: one checked per name in the menu. */
1790
+ name: string | undefined;
1791
+ /** Whether type is checkbox or radio. */
1792
+ readonly checkable: boolean;
1646
1793
  }
1647
1794
  /** <ray-menu-label> A section caption inside the menu. */
1648
1795
  export declare class RayMenuLabel extends RayElement {
@@ -1890,7 +2037,7 @@ export declare class RayCarousel extends RayElement {
1890
2037
  export declare function setHighlighter(fn: ((code: string, lang: string) => string | Node | null | undefined | Promise<string | Node | null | undefined>) | null): void;
1891
2038
  /** The built-in highlighter: tokens of type keyword, string, number, comment, function, type, tag, attr, punctuation or text. */
1892
2039
  export declare function tokenize(code: string, lang?: string): [type: string, text: string][];
1893
- /** <ray-code> The code comes from the code property, a <script type="text/plain"> child (raw text: anything but a closing script tag), a <template> child (parsed as HTML: the easiest for markup, but a < that is not a tag, as in Promise<void>, breaks it), or the element's text; common indentation and blank edges are removed. Built-in languages: js/ts (jsx, tsx), json, html/xml/svg/vue, css, shell, ray and diff; others show as plain text. Library classes painted with the tokens: Prism's .token.*, highlight.js's .hljs-*, and Shiki's css-variables theme. */
2040
+ /** <ray-code> The code comes from the code property, a <script type="text/plain"> child (raw text: anything but a closing script tag), a <template> child (parsed as HTML: the easiest for markup, but a < that is not a tag, as in Promise<void>, breaks it), or the element's text; common indentation and blank edges are removed (not with verbatim). Built-in languages: js/ts (jsx, tsx), json, html/xml/svg/vue, css, shell, ray and diff; others show as plain text. Library classes painted with the tokens: Prism's .token.*, highlight.js's .hljs-*, and Shiki's css-variables theme. */
1894
2041
  export declare class RayCode extends RayElement {
1895
2042
  /** The code, from script (the most convenient in React and Vue). Wins over the content. */
1896
2043
  code: string | undefined;
@@ -1904,6 +2051,8 @@ export declare class RayCode extends RayElement {
1904
2051
  highlight: string | undefined;
1905
2052
  /** Wraps long lines instead of scrolling sideways. */
1906
2053
  wrap: boolean | undefined;
2054
+ /** 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. */
2055
+ verbatim: boolean | undefined;
1907
2056
  /** Height before it scrolls: px as a number, or a CSS length. A taller block gets a "Show all N lines" button. */
1908
2057
  maxHeight: string | undefined;
1909
2058
  /** Shown whole, past max-height. */
@@ -2481,7 +2630,7 @@ export declare class RaySplit extends RayElement {
2481
2630
  collapsed: boolean | undefined;
2482
2631
  /** The divider cannot be moved. */
2483
2632
  disabled: boolean | undefined;
2484
- /** A key: the size is saved in localStorage and restored. */
2633
+ /** A key: the size and the collapsed state are saved in localStorage and restored (a saved state wins over the collapsed attribute). */
2485
2634
  autosave: string | undefined;
2486
2635
  /** The start pane's size in px. */
2487
2636
  readonly size: number;
@@ -2557,6 +2706,7 @@ declare global {
2557
2706
  "ray-calendar": RayCalendar;
2558
2707
  "ray-file-upload": RayFileUpload;
2559
2708
  "ray-input": RayInput;
2709
+ "ray-mode-input": RayModeInput;
2560
2710
  "ray-number-input": RayNumberInput;
2561
2711
  "ray-password-input": RayPasswordInput;
2562
2712
  "ray-path-input": RayPathInput;
@@ -2573,6 +2723,8 @@ declare global {
2573
2723
  "ray-bottom-nav-item": RayBottomNavItem;
2574
2724
  "ray-breadcrumbs": RayBreadcrumbs;
2575
2725
  "ray-breadcrumb": RayBreadcrumb;
2726
+ "ray-doc-tabs": RayDocTabs;
2727
+ "ray-doc-tab": RayDocTab;
2576
2728
  "ray-nav-link": RayNavLink;
2577
2729
  "ray-pagination": RayPagination;
2578
2730
  "ray-sidebar": RaySidebar;