@ziyarago/ui 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -5
  3. package/dist/llms-full.txt +3 -3
  4. package/dist/llms.txt +2 -2
  5. package/dist/manifest.json +316 -2
  6. package/docs/INTEGRATION.md +3 -0
  7. package/package.json +10 -25
  8. package/src/core/components.js +0 -11
  9. package/src/core/components2.js +1 -71
  10. package/src/core/components3.js +2 -44
  11. package/src/core/components4.js +0 -38
  12. package/src/core/components6.js +0 -50
  13. package/src/core/components7.js +0 -34
  14. package/src/core/pages.js +2 -36
  15. package/src/i18n/components/index.js +0 -72
  16. package/src/internal.js +10 -0
  17. package/src/meta/index.js +2 -0
  18. package/src/meta/pages.js +1 -1
  19. package/src/react/index.js +0 -106
  20. package/src/vue/index.js +1 -1
  21. package/types/internal.d.ts +30 -0
  22. package/types/meta.d.ts +5 -0
  23. package/types/react.d.ts +136 -4143
  24. package/types/vue-global.d.ts +0 -106
  25. package/types/vue.d.ts +145 -3598
  26. package/docs/MIGRATION.md +0 -455
  27. package/src/compat/index.js +0 -469
  28. package/src/compat/map.js +0 -282
  29. package/src/compat/resolver.js +0 -22
  30. package/src/compat/vite.js +0 -29
  31. package/src/i18n/components/ActionCard.js +0 -5
  32. package/src/i18n/components/Actionsheet.js +0 -5
  33. package/src/i18n/components/CallCard.js +0 -5
  34. package/src/i18n/components/CallRow.js +0 -5
  35. package/src/i18n/components/Carousel.js +0 -5
  36. package/src/i18n/components/ChartCard.js +0 -5
  37. package/src/i18n/components/ChatAi.js +0 -5
  38. package/src/i18n/components/ChipInput.js +0 -5
  39. package/src/i18n/components/ContactPanel.js +0 -5
  40. package/src/i18n/components/DataGroup.js +0 -5
  41. package/src/i18n/components/DealCard.js +0 -5
  42. package/src/i18n/components/FullscreenDialog.js +0 -5
  43. package/src/i18n/components/Gallery.js +0 -5
  44. package/src/i18n/components/GuestCard.js +0 -5
  45. package/src/i18n/components/ImageUpload.js +0 -5
  46. package/src/i18n/components/ImageViewer.js +0 -5
  47. package/src/i18n/components/IncomingCall.js +0 -5
  48. package/src/i18n/components/InlineEdit.js +0 -5
  49. package/src/i18n/components/IntegrationCard.js +0 -5
  50. package/src/i18n/components/Map.js +0 -5
  51. package/src/i18n/components/NotificationBell.js +0 -5
  52. package/src/i18n/components/PricingCard.js +0 -5
  53. package/src/i18n/components/QiblaCompass.js +0 -5
  54. package/src/i18n/components/RamadanTracker.js +0 -5
  55. package/src/i18n/components/RangeCalendar.js +0 -5
  56. package/src/i18n/components/RangeSlider.js +0 -5
  57. package/src/i18n/components/RichEditor.js +0 -5
  58. package/src/i18n/components/Screensaver.js +0 -5
  59. package/src/i18n/components/Sortable.js +0 -5
  60. package/src/i18n/components/StepDialog.js +0 -5
  61. package/src/i18n/components/StepForm.js +0 -5
  62. package/src/i18n/components/TabTiles.js +0 -5
  63. package/src/i18n/components/Tour.js +0 -5
  64. package/src/i18n/components/TourCard.js +0 -5
  65. package/src/i18n/components/TourPopover.js +0 -5
  66. package/src/i18n/components/TreeSelect.js +0 -5
  67. package/types/compat-resolver.d.ts +0 -12
  68. package/types/compat-vite.d.ts +0 -11
  69. package/types/compat.d.ts +0 -176
package/types/vue.d.ts CHANGED
@@ -25,111 +25,6 @@ export interface UiAccordionProps {
25
25
  export interface UiAccordionSlots {}
26
26
  export const UiAccordion: UiVueComponent<UiAccordionProps, UiAccordionSlots>;
27
27
 
28
- /**
29
- * Card with a title and built-in collapse, refresh and remove controls.
30
- * Note: With collapsed set, update it from the collapse event, otherwise the card will not toggle.
31
- * Note: Removing hides the card until the component is remounted; also remove it from your data on the remove event.
32
- */
33
- export interface UiActionCardProps {
34
- /** Card title. */
35
- title: string;
36
- /** Text under the title. */
37
- subtitle?: string;
38
- /** Controlled collapsed state. When omitted the card keeps it internally. */
39
- collapsed?: boolean;
40
- /** Controlled refresh spinner. When omitted, Refresh shows the spinner for 1.8s by itself. */
41
- loading?: boolean;
42
- /**
43
- * Card padding and font size.
44
- * @default 'md'
45
- */
46
- size?: Size;
47
- /**
48
- * Called with the new collapsed boolean when the collapse button is clicked.
49
- * @event collapse
50
- */
51
- onCollapse?: (collapsed: boolean) => void;
52
- /**
53
- * Refresh button clicked. Pass loading to show your own spinner.
54
- * @event refresh
55
- */
56
- onRefresh?: () => void;
57
- /**
58
- * Remove button clicked; the card hides itself afterwards.
59
- * @event remove
60
- */
61
- onRemove?: () => void;
62
- }
63
- export interface UiActionCardSlots {
64
- /** Card body. Hidden while collapsed. */
65
- default?: () => any;
66
- }
67
- export const UiActionCard: UiVueComponent<UiActionCardProps, UiActionCardSlots>;
68
-
69
- /**
70
- * Floating vertical or horizontal rail of icon buttons with a highlighted active item.
71
- * Note: Items other than the active one are shown as ghost buttons; label is the accessible name.
72
- */
73
- export interface UiActionRailProps {
74
- /**
75
- * Rail entries. An item with separator: true renders a divider instead of a button.
76
- * @default []
77
- */
78
- items: { value?: string; icon?: string; label?: string; separator?: boolean }[];
79
- /** Value of the active item. Changed via the change event. */
80
- value?: string;
81
- /**
82
- * Button size inside the rail.
83
- * @default 'md'
84
- */
85
- size?: Size;
86
- /**
87
- * Called with the value of the clicked item.
88
- * @event change
89
- */
90
- onChange?: (value: string) => void;
91
- }
92
- export interface UiActionRailSlots {}
93
- export const UiActionRail: UiVueComponent<UiActionRailProps, UiActionRailSlots>;
94
-
95
- /** Bottom sheet with a list of actions and a Cancel button; use for mobile "more actions" menus. */
96
- export interface UiActionsheetProps {
97
- /**
98
- * Shows the sheet when true; renders nothing when false.
99
- * @default false
100
- */
101
- open?: boolean;
102
- /** Optional heading. */
103
- title?: string;
104
- /**
105
- * Actions. Each item runs its own onClick, then select, then the sheet closes. Tone "danger" colors it red.
106
- * @default []
107
- */
108
- items?: { label: string; icon?: string; tone?: 'danger'; disabled?: boolean; onClick?: () => void }[];
109
- /**
110
- * Text of the cancel row.
111
- * @default 'Cancel'
112
- */
113
- cancelLabel?: string;
114
- /**
115
- * Scale of sheet width and padding.
116
- * @default 'md'
117
- */
118
- size?: Size;
119
- /**
120
- * Called with the whole clicked item after its onClick.
121
- * @event select
122
- */
123
- onSelect?: (item: NonNullable<UiActionsheetProps['items']>[number]) => void;
124
- /**
125
- * Called after any item is chosen, on Cancel, on the Escape key and on a scrim click.
126
- * @event close
127
- */
128
- onClose?: () => void;
129
- }
130
- export interface UiActionsheetSlots {}
131
- export const UiActionsheet: UiVueComponent<UiActionsheetProps, UiActionsheetSlots>;
132
-
133
28
  /**
134
29
  * Inline message block with a tone icon, optional title and close button; use for form errors, notices and results inside a page.
135
30
  * Note: Has role="alert", so screen readers announce it when it appears.
@@ -244,47 +139,6 @@ export interface UiAuthLayoutSlots {
244
139
  }
245
140
  export const UiAuthLayout: UiVueComponent<UiAuthLayoutProps, UiAuthLayoutSlots>;
246
141
 
247
- /**
248
- * Sign-in layout with a media panel: dark photo card with floating avatars, light gradient card with a social-proof pill, or a tinted panel with a glass caption. The default slot is the form.
249
- * Note: logo, footer, image, people are props in both Vue and React. The media panel is hidden below the form on narrow screens (stacks under it).
250
- */
251
- export interface UiAuthShowcaseProps {
252
- /**
253
- * 'photo': one framed card, media on the left. 'light': gradient form card, proof pill below, glass caption on the media. 'tint': like light, with a coloured panel, a heading on the media and cyan accent.
254
- * @default 'photo'
255
- */
256
- variant?: 'photo' | 'light' | 'tint';
257
- /** Form heading. */
258
- title: string;
259
- /** Text under the heading. */
260
- subtitle?: string;
261
- /** Logo node above the heading. */
262
- logo?: VNode;
263
- /** Content under the fields, for example "No account? Sign up". */
264
- footer?: VNode;
265
- /** URL of the media image. Without it the panel shows an accent gradient. */
266
- image?: string;
267
- /** Large text on the media panel (photo and tint). */
268
- headline?: string;
269
- /** Small text on the media panel (photo) or inside the glass bar (light, tint). */
270
- caption?: string;
271
- /** Line at the bottom of the media panel; photo only. */
272
- quote?: string;
273
- /** Pill labels inside the glass bar; light and tint. */
274
- chips?: string[];
275
- /** Avatars: floating on the photo, stacked in the proof pill. */
276
- people?: { name: string; src?: string }[];
277
- /** Social-proof title, e.g. "Join 20k+ users"; light and tint. Shows the pill under the form. */
278
- proof?: string;
279
- /** Second line of the proof pill. */
280
- proofHint?: string;
281
- }
282
- export interface UiAuthShowcaseSlots {
283
- /** Form fields and buttons. React passes them as children. */
284
- default?: () => any;
285
- }
286
- export const UiAuthShowcase: UiVueComponent<UiAuthShowcaseProps, UiAuthShowcaseSlots>;
287
-
288
142
  /**
289
143
  * Two-column sign-in layout with a brand panel on the left and the form on the right.
290
144
  * Note: logo and aside are props in both Vue and React (pass a VNode / element).
@@ -404,29 +258,6 @@ export interface UiBannerSlots {
404
258
  }
405
259
  export const UiBanner: UiVueComponent<UiBannerProps, UiBannerSlots>;
406
260
 
407
- /** Compact booking summary: code, status, guest, hotel, dates and total. */
408
- export interface UiBookingCardProps {
409
- /** Booking reference, monospaced. */
410
- code: string;
411
- /** Status text. Confirmed is green, Pending amber, Cancelled red; any other value gets a neutral badge. */
412
- status?: 'Confirmed' | 'Pending' | 'Cancelled' | string;
413
- /** Guest name, also drives the avatar initials. */
414
- guest?: string;
415
- /** Hotel name under the guest. */
416
- hotel?: string;
417
- /** Preformatted date range, e.g. "12-19 Mar". */
418
- dates?: string;
419
- /** Total, formatted as "SAR 1 200". */
420
- amount?: number;
421
- /**
422
- * Scales padding, text and avatars.
423
- * @default 'md'
424
- */
425
- size?: Size;
426
- }
427
- export interface UiBookingCardSlots {}
428
- export const UiBookingCard: UiVueComponent<UiBookingCardProps, UiBookingCardSlots>;
429
-
430
261
  /**
431
262
  * Panel anchored to the bottom of the screen with a grab handle; use for mobile pickers and short forms.
432
263
  * Note: The handle is decorative: it does not support dragging.
@@ -612,108 +443,6 @@ export interface UiCalendarProps {
612
443
  export interface UiCalendarSlots {}
613
444
  export const UiCalendar: UiVueComponent<UiCalendarProps, UiCalendarSlots>;
614
445
 
615
- /** Month calendar that marks days with events, wrapping Calendar with a list-style events prop. */
616
- export interface UiCalendarViewProps {
617
- /**
618
- * Marked days. date is "YYYY-MM-DD"; label shows as the day tooltip.
619
- * @default []
620
- */
621
- events?: { date: string; label: string }[];
622
- /**
623
- * Selected date. Vue v-model, React modelValue + onChange.
624
- * @remarks Forwarded to the inner element.
625
- */
626
- modelValue?: string | number | Date;
627
- /**
628
- * BCP 47 locale for month and weekday names.
629
- * @default 'en-GB'
630
- * @remarks Forwarded to the inner element.
631
- */
632
- locale?: string;
633
- /**
634
- * First day of the week, 0 is Sunday and 1 is Monday.
635
- * @default 1
636
- * @remarks Forwarded to the inner element.
637
- */
638
- weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
639
- /**
640
- * Called with the clicked Date (local time). Forwarded to Calendar.
641
- * @event change
642
- */
643
- onChange?: (date: Date) => void;
644
- /** v-model update. Emitted together with `change`. */
645
- 'onUpdate:modelValue'?: (value: Date) => void;
646
- }
647
- export interface UiCalendarViewSlots {}
648
- export const UiCalendarView: UiVueComponent<UiCalendarViewProps, UiCalendarViewSlots>;
649
-
650
- /** Call recording card with status badge, a playback progress bar and duration. */
651
- export interface UiCallCardProps {
652
- /** Caller name. */
653
- name: string;
654
- /** Phone number. */
655
- phone?: string;
656
- /** Badge text. Known statuses (case-insensitive): Answered green, Missed and Declined red, Voicemail and Busy amber, Ringing blue. Any other value is neutral. The badge is hidden when empty. */
657
- status?: 'Answered' | 'Missed' | 'Voicemail' | 'Busy' | 'Declined' | string;
658
- /** Extra or overriding status to tone mapping, e.g. { "No answer": "warning" }. */
659
- statusTones?: Record<string, 'success' | 'danger' | 'warning' | 'info' | 'brand'>;
660
- /**
661
- * Playback progress 0-100.
662
- * @default 0
663
- */
664
- progress?: number;
665
- /** Duration in seconds. */
666
- duration?: number;
667
- /**
668
- * Minute and second unit labels for the duration.
669
- * @default { m: 'm', s: 's' }
670
- */
671
- durUnits?: { m?: string; s?: string };
672
- /** Override built-in English strings. play is the aria-label of the play button. */
673
- labels?: { play?: string };
674
- /**
675
- * Scales padding, text and avatars.
676
- * @default 'md'
677
- */
678
- size?: Size;
679
- /**
680
- * Called with no arguments when the play button is clicked.
681
- * @event play
682
- */
683
- onPlay?: () => void;
684
- }
685
- export interface UiCallCardSlots {}
686
- export const UiCallCard: UiVueComponent<UiCallCardProps, UiCallCardSlots>;
687
-
688
- /** One-line call log row with avatar, status, duration and a play button. */
689
- export interface UiCallRowProps {
690
- /** Caller name. */
691
- name: string;
692
- /** Status text before the duration, e.g. "Answered". */
693
- status?: string;
694
- /** Duration in seconds, formatted as "3 m 05 s" (units from durUnits); shows a dash when missing. */
695
- duration?: number;
696
- /**
697
- * Minute and second unit labels for localized durations, e.g. { m: "min", s: "sec" }.
698
- * @default { m: 'm', s: 's' }
699
- */
700
- durUnits?: { m?: string; s?: string };
701
- /** Override built-in English strings. play is the aria-label of the play button. */
702
- labels?: { play?: string };
703
- /**
704
- * Scales padding, text and avatars.
705
- * @default 'md'
706
- */
707
- size?: Size;
708
- /**
709
- * Called with no arguments when the play button is clicked.
710
- * @event play
711
- */
712
- onPlay?: () => void;
713
- }
714
- export interface UiCallRowSlots {}
715
- export const UiCallRow: UiVueComponent<UiCallRowProps, UiCallRowSlots>;
716
-
717
446
  /**
718
447
  * Glass surface container with an optional title header, used to group related content.
719
448
  * Note: Vue slot names are React props (actions) and children (default).
@@ -762,42 +491,6 @@ export interface UiCardSlots {
762
491
  }
763
492
  export const UiCard: UiVueComponent<UiCardProps, UiCardSlots>;
764
493
 
765
- /**
766
- * Slideshow of image slides with captions, arrows and dot pagination.
767
- * Note: Arrows wrap around at both ends and are hidden with fewer than 2 slides; an empty items array renders an empty frame.
768
- * Note: Autoplay has no visible pause button; hover or focus pauses it. Prefer a manual carousel for essential content.
769
- */
770
- export interface UiCarouselProps {
771
- /**
772
- * Slides. title and sub form the caption over the image.
773
- * @default []
774
- */
775
- items: { image?: string; title: string; sub?: string }[];
776
- /** Controlled active slide index. When set, the carousel only changes slide when you update it from onChange; when omitted it keeps its own state starting at 0. */
777
- index?: number;
778
- /** Advance automatically every N milliseconds (true = 5000). Starts only in the browser, pauses while the pointer is over or focus is inside the carousel and while the tab is hidden, and is disabled for prefers-reduced-motion and data-motion="off". Needs at least 2 slides. */
779
- autoplay?: number | boolean;
780
- /** Accessible name of the carousel region. */
781
- label?: string;
782
- /**
783
- * Override the aria-labels of the arrows and dots.
784
- * @default { prev: 'Previous', next: 'Next', slide: 'Slide' }
785
- */
786
- labels?: { prev?: string; next?: string; slide?: string };
787
- /**
788
- * Slide aspect ratio and caption size: xs 16/6, sm 16/7, md 16/8, lg 16/9, xl 16/10.
789
- * @default 'md'
790
- */
791
- size?: Size;
792
- /**
793
- * Called with the new slide index on arrow, dot, keyboard (left and right arrows) and autoplay changes.
794
- * @event change
795
- */
796
- onChange?: (index: number) => void;
797
- }
798
- export interface UiCarouselSlots {}
799
- export const UiCarousel: UiVueComponent<UiCarouselProps, UiCarouselSlots>;
800
-
801
494
  /** Centers its children horizontally and vertically. */
802
495
  export interface UiCenterProps {
803
496
  /**
@@ -814,67 +507,6 @@ export interface UiCenterSlots {
814
507
  }
815
508
  export const UiCenter: UiVueComponent<UiCenterProps, UiCenterSlots>;
816
509
 
817
- /** Card shell for a chart with title, subtitle and an optional overflow menu; put the chart in the default slot. */
818
- export interface UiChartCardProps {
819
- /** Card title. */
820
- title: string;
821
- /** Muted line under the title. */
822
- subtitle?: string;
823
- /** Labels of overflow menu items shown behind a three-dot button. An item named "Delete" is styled as danger. */
824
- menu?: string[];
825
- /**
826
- * Padding, gap and title size.
827
- * @default 'md'
828
- */
829
- size?: Size;
830
- /**
831
- * Called with the clicked menu item label (the string from menu); the menu closes afterwards.
832
- * @event menu
833
- */
834
- onMenu?: (label: string) => void;
835
- }
836
- export interface UiChartCardSlots {
837
- /** Chart or any content shown below the header. */
838
- default?: () => any;
839
- }
840
- export const UiChartCard: UiVueComponent<UiChartCardProps, UiChartCardSlots>;
841
-
842
- /**
843
- * Chat panel with message bubbles, a typing indicator and an input, for AI assistant UIs.
844
- * Note: Append the user message and the reply to messages yourself; set loading while waiting.
845
- */
846
- export interface UiChatAiProps {
847
- /**
848
- * Conversation in order. Any role other than "user" renders as an assistant bubble.
849
- * @default []
850
- */
851
- messages: { role: 'user' | 'ai'; text: string }[];
852
- /**
853
- * Shows the typing dots and disables sending.
854
- * @default false
855
- */
856
- loading?: boolean;
857
- /**
858
- * Header title; also the aria-label. The header renders only when set.
859
- * @default 'Assistant'
860
- */
861
- title?: string;
862
- /** Muted text next to the title. */
863
- subtitle?: string;
864
- /**
865
- * Input placeholder.
866
- * @default Ask anything…
867
- */
868
- placeholder?: string;
869
- /**
870
- * Called with the trimmed message text when the user presses Enter or the send button. The component does not append it to messages.
871
- * @event send
872
- */
873
- onSend?: (text: string) => void;
874
- }
875
- export interface UiChatAiSlots {}
876
- export const UiChatAi: UiVueComponent<UiChatAiProps, UiChatAiSlots>;
877
-
878
510
  /**
879
511
  * Boolean checkbox with an inline label. Use for opt-ins and independent yes/no choices.
880
512
  * Note: Rendered as a button with role="checkbox". When disabled it is dimmed, shows a not-allowed cursor and ignores clicks.
@@ -958,51 +590,6 @@ export interface UiChipSlots {
958
590
  }
959
591
  export const UiChip: UiVueComponent<UiChipProps, UiChipSlots>;
960
592
 
961
- /**
962
- * Input that turns typed text into removable chips. Use for tags, keywords and email lists.
963
- * Note: Enter or comma adds a chip, Backspace on empty input removes the last one. Duplicates are ignored.
964
- */
965
- export interface UiChipInputProps {
966
- /**
967
- * Current chips.
968
- * @default []
969
- */
970
- modelValue?: string[];
971
- /** Maximum number of chips. Extra entries are ignored. */
972
- maxItems?: number;
973
- /**
974
- * Label shown above the control.
975
- * @remarks Forwarded to the inner element.
976
- */
977
- label?: string;
978
- /** Placeholder, shown only while there are no chips. */
979
- placeholder?: string;
980
- /**
981
- * Helper text under the control. Hidden while error is set.
982
- * @remarks Forwarded to the inner element.
983
- */
984
- hint?: string;
985
- /**
986
- * Error message under the control. Turns the control red and is announced with role="alert".
987
- * @remarks Forwarded to the inner element.
988
- */
989
- error?: string;
990
- /**
991
- * Control height, font and padding scale.
992
- * @default 'md'
993
- */
994
- size?: Size;
995
- /**
996
- * Called with the new array when a chip is added or removed.
997
- * @event change
998
- */
999
- onChange?: (value: string[]) => void;
1000
- /** v-model update. Emitted together with `change`. */
1001
- 'onUpdate:modelValue'?: (value: string[]) => void;
1002
- }
1003
- export interface UiChipInputSlots {}
1004
- export const UiChipInput: UiVueComponent<UiChipInputProps, UiChipInputSlots>;
1005
-
1006
593
  /**
1007
594
  * Code block with a header (title or language) and a copy button; use for snippets and commands.
1008
595
  * Note: The header falls back to the text "code" when neither title nor language is set.
@@ -1065,39 +652,6 @@ export interface UiCodeInputProps {
1065
652
  export interface UiCodeInputSlots {}
1066
653
  export const UiCodeInput: UiVueComponent<UiCodeInputProps, UiCodeInputSlots>;
1067
654
 
1068
- /**
1069
- * Swatch row for choosing a color from presets. Use for tags, labels and theme accents.
1070
- * Note: Preset-only: there is no free color input.
1071
- */
1072
- export interface UiColorPickerProps {
1073
- /** Selected color, same string as in presets. */
1074
- modelValue?: string;
1075
- /**
1076
- * CSS colors offered as swatches.
1077
- * @default ['#BC926A', '#5FAACC', '#3FD13F', '#E26E5F', '#E8B964', '#A98BD6', '#1B1919']
1078
- */
1079
- presets?: string[];
1080
- /**
1081
- * Label shown above the control.
1082
- * @remarks Forwarded to the inner element.
1083
- */
1084
- label?: string;
1085
- /**
1086
- * Swatch size.
1087
- * @default 'md'
1088
- */
1089
- size?: Size;
1090
- /**
1091
- * Called with the clicked color string.
1092
- * @event change
1093
- */
1094
- onChange?: (value: string) => void;
1095
- /** v-model update. Emitted together with `change`. */
1096
- 'onUpdate:modelValue'?: (value: string) => void;
1097
- }
1098
- export interface UiColorPickerSlots {}
1099
- export const UiColorPicker: UiVueComponent<UiColorPickerProps, UiColorPickerSlots>;
1100
-
1101
655
  /**
1102
656
  * Searchable single-choice dropdown. Use for long option lists where typing to filter is faster than scrolling.
1103
657
  * Note: Selecting from the list is the only way to set a value: free text is never emitted.
@@ -1161,33 +715,12 @@ export interface UiComboboxProps {
1161
715
  export interface UiComboboxSlots {}
1162
716
  export const UiCombobox: UiVueComponent<UiComboboxProps, UiComboboxSlots>;
1163
717
 
1164
- /** Floating glass toolbar of icon buttons; use for selection actions or editor tools. */
1165
- export interface UiCommandBarProps {
1166
- /**
1167
- * Buttons. label is the tooltip and aria-label, icon defaults to "circle", separator true draws a divider.
1168
- * @default []
1169
- */
1170
- items?: { id: string; icon?: string; label: string; disabled?: boolean; separator?: boolean }[];
1171
- /**
1172
- * Scale of button size and padding.
1173
- * @default 'md'
1174
- */
1175
- size?: Size;
1176
- /**
1177
- * Called with the item id when a button is clicked.
1178
- * @event action
1179
- */
1180
- onAction?: (id: string) => void;
1181
- }
1182
- export interface UiCommandBarSlots {}
1183
- export const UiCommandBar: UiVueComponent<UiCommandBarProps, UiCommandBarSlots>;
1184
-
1185
- /**
1186
- * Searchable list of commands in a top-aligned dialog; use for a Cmd+K launcher.
1187
- * Note: Keyboard: ArrowDown/ArrowUp move the active command (wraps around, aria-selected), Enter runs it, Escape closes. The active item resets to the first one when the query changes.
1188
- * Note: The input receives focus on open and Tab stays inside the dialog. There is no global hotkey; bind Cmd+K yourself.
1189
- */
1190
- export interface UiCommandPaletteProps {
718
+ /**
719
+ * Searchable list of commands in a top-aligned dialog; use for a Cmd+K launcher.
720
+ * Note: Keyboard: ArrowDown/ArrowUp move the active command (wraps around, aria-selected), Enter runs it, Escape closes. The active item resets to the first one when the query changes.
721
+ * Note: The input receives focus on open and Tab stays inside the dialog. There is no global hotkey; bind Cmd+K yourself.
722
+ */
723
+ export interface UiCommandPaletteProps {
1191
724
  /**
1192
725
  * Shows the palette when true; renders nothing when false.
1193
726
  * @default false
@@ -1276,41 +809,6 @@ export interface UiConfirmDialogProps {
1276
809
  export interface UiConfirmDialogSlots {}
1277
810
  export const UiConfirmDialog: UiVueComponent<UiConfirmDialogProps, UiConfirmDialogSlots>;
1278
811
 
1279
- /** Contact detail card with avatar, role, contact fields and Call / Message buttons. */
1280
- export interface UiContactPanelProps {
1281
- /** Contact name. */
1282
- name: string;
1283
- /** Role or company under the name. */
1284
- role?: string;
1285
- /** Phone row. */
1286
- phone?: string;
1287
- /** Telegram handle row. */
1288
- telegram?: string;
1289
- /** Email row. */
1290
- email?: string;
1291
- /** City row. */
1292
- city?: string;
1293
- /** Override built-in English strings. */
1294
- labels?: { call?: string; message?: string };
1295
- /**
1296
- * Scales padding, text and avatars.
1297
- * @default 'md'
1298
- */
1299
- size?: Size;
1300
- /**
1301
- * Called with no arguments when Call is clicked.
1302
- * @event call
1303
- */
1304
- onCall?: () => void;
1305
- /**
1306
- * Called with no arguments when Message is clicked.
1307
- * @event message
1308
- */
1309
- onMessage?: () => void;
1310
- }
1311
- export interface UiContactPanelSlots {}
1312
- export const UiContactPanel: UiVueComponent<UiContactPanelProps, UiContactPanelSlots>;
1313
-
1314
812
  /**
1315
813
  * Wraps an area and shows a menu at the cursor on right click; use for row and canvas actions.
1316
814
  * Note: The native context menu is prevented inside the area. Clicking outside, right-clicking again or pressing Escape closes it.
@@ -1372,46 +870,6 @@ export interface UiCopyButtonProps {
1372
870
  export interface UiCopyButtonSlots {}
1373
871
  export const UiCopyButton: UiVueComponent<UiCopyButtonProps, UiCopyButtonSlots>;
1374
872
 
1375
- /** Row with a country code badge, amount, country name and a percentage change. */
1376
- export interface UiCountryRowProps {
1377
- /** Short code shown in the circle, such as "UZ". */
1378
- code: string;
1379
- /** Country name. */
1380
- name: string;
1381
- /** Formatted amount shown in bold. */
1382
- amount: string | number;
1383
- /** Percentage change such as "+8%" or "-2%". */
1384
- pct?: string;
1385
- }
1386
- export interface UiCountryRowSlots {}
1387
- export const UiCountryRow: UiVueComponent<UiCountryRowProps, UiCountryRowSlots>;
1388
-
1389
- /**
1390
- * Table whose rows are collapsed into labeled groups, with optional per-row expandable details.
1391
- * Note: Open/collapsed state is internal; groups start expanded.
1392
- */
1393
- export interface UiDataGroupProps {
1394
- /**
1395
- * Column definitions, same shape as DataTable without sorting.
1396
- * @default []
1397
- */
1398
- columns: { key: string; label: string; num?: boolean; render?: (value: any, row: any) => VNode | string }[];
1399
- /**
1400
- * Groups shown as collapsible header rows with a row count. Group labels must be unique.
1401
- * @default []
1402
- */
1403
- groups: { label: string; rows: ({ id: string | number; [key: string]: any })[] }[];
1404
- /** Renders the detail panel under a row. When set, an expand chevron column appears. */
1405
- expand?: (row: any) => VNode | string;
1406
- /**
1407
- * Row density and font size.
1408
- * @default 'md'
1409
- */
1410
- size?: Size;
1411
- }
1412
- export interface UiDataGroupSlots {}
1413
- export const UiDataGroup: UiVueComponent<UiDataGroupProps, UiDataGroupSlots>;
1414
-
1415
873
  /** Switches between loading, empty, error, offline and the real content based on one state value; wrap any data-driven block with it. */
1416
874
  export interface UiDataStateProps {
1417
875
  /**
@@ -1584,37 +1042,6 @@ export interface UiDatePickerProps {
1584
1042
  export interface UiDatePickerSlots {}
1585
1043
  export const UiDatePicker: UiVueComponent<UiDatePickerProps, UiDatePickerSlots>;
1586
1044
 
1587
- /** CRM deal card with stage badge, amount, win probability and owner; the card type inside PipelineBoard. */
1588
- export interface UiDealCardProps {
1589
- /** Deal title. */
1590
- title: string;
1591
- /** Stage badge text; no badge when omitted. */
1592
- stage?: string;
1593
- /**
1594
- * Badge tone for the stage.
1595
- * @default 'info'
1596
- */
1597
- tone?: 'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info';
1598
- /** Large amount, rendered as given. */
1599
- amount?: string | number;
1600
- /**
1601
- * Win probability 0-100, shown as a progress bar and percent.
1602
- * @default 0
1603
- */
1604
- probability?: number;
1605
- /** Owner name with avatar. */
1606
- owner?: string;
1607
- /** Due date caption, right aligned. */
1608
- due?: string;
1609
- /**
1610
- * Scales padding, text and avatars.
1611
- * @default 'md'
1612
- */
1613
- size?: Size;
1614
- }
1615
- export interface UiDealCardSlots {}
1616
- export const UiDealCard: UiVueComponent<UiDealCardProps, UiDealCardSlots>;
1617
-
1618
1045
  /** Definition list of label and value pairs for record details. */
1619
1046
  export interface UiDescriptionsProps {
1620
1047
  /**
@@ -1765,32 +1192,6 @@ export interface UiErrorPageSlots {
1765
1192
  }
1766
1193
  export const UiErrorPage: UiVueComponent<UiErrorPageProps, UiErrorPageSlots>;
1767
1194
 
1768
- /**
1769
- * Floating action button for the main action of a screen; extended when a label is given.
1770
- * Note: Always pass label: it is the accessible name. Without it the button falls back to the icon name as aria-label (for example "plus"), which is rarely a good description.
1771
- */
1772
- export interface UiFabProps {
1773
- /**
1774
- * Icon name.
1775
- * @default 'plus'
1776
- */
1777
- icon?: string;
1778
- /** Text next to the icon (extended FAB) and the accessible name. */
1779
- label?: string;
1780
- /**
1781
- * Button height: xs 36px, sm 44px, md 56px, lg 64px, xl 72px.
1782
- * @default 'md'
1783
- */
1784
- size?: Size;
1785
- /**
1786
- * Native click event.
1787
- * @event click
1788
- */
1789
- onClick?: (event: MouseEvent) => void;
1790
- }
1791
- export interface UiFabSlots {}
1792
- export const UiFab: UiVueComponent<UiFabProps, UiFabSlots>;
1793
-
1794
1195
  /**
1795
1196
  * Drop-zone style file picker. Use for documents and attachments.
1796
1197
  * Note: Click, Enter or Space opens the picker; files can also be dropped onto the zone, which highlights while dragging.
@@ -1941,76 +1342,6 @@ export interface UiFormFieldSlots {
1941
1342
  }
1942
1343
  export const UiFormField: UiVueComponent<UiFormFieldProps, UiFormFieldSlots>;
1943
1344
 
1944
- /**
1945
- * Full-screen dialog with a close button, title and Save action in the header; use for long editing flows on mobile.
1946
- * Note: Has aria-modal. Escape calls close; on open focus moves into the dialog, Tab is trapped inside it and focus returns to the previously focused element on close.
1947
- */
1948
- export interface UiFullscreenDialogProps {
1949
- /**
1950
- * Shows the dialog when true; renders nothing when false.
1951
- * @default false
1952
- */
1953
- open?: boolean;
1954
- /** Header text and aria-label. */
1955
- title?: string;
1956
- /**
1957
- * Text of the save button in the header.
1958
- * @default 'Save'
1959
- */
1960
- saveLabel?: string;
1961
- /**
1962
- * Called on the close icon button or the Escape key.
1963
- * @event close
1964
- */
1965
- onClose?: () => void;
1966
- /**
1967
- * Called on the header save button.
1968
- * @event save
1969
- */
1970
- onSave?: () => void;
1971
- }
1972
- export interface UiFullscreenDialogSlots {
1973
- /** Dialog content. */
1974
- default?: () => any;
1975
- }
1976
- export const UiFullscreenDialog: UiVueComponent<UiFullscreenDialogProps, UiFullscreenDialogSlots>;
1977
-
1978
- /**
1979
- * Large image with a counter and a thumbnail strip for browsing a set of photos.
1980
- * Note: An empty or missing images array renders an empty frame (no counter, no thumbnails). Invalid index values are clamped to the available range.
1981
- */
1982
- export interface UiGalleryProps {
1983
- /**
1984
- * Image URLs. The first one is shown initially; clicking a thumbnail switches the main image.
1985
- * @default []
1986
- */
1987
- images: string[];
1988
- /**
1989
- * Accessible description of the main image.
1990
- * @default ''
1991
- */
1992
- alt?: string;
1993
- /** Controlled active image index. When set, the gallery only changes image when you update it from onChange; when omitted it keeps its own state starting at 0. */
1994
- index?: number;
1995
- /**
1996
- * Override the thumbnail aria-label prefix.
1997
- * @default { photo: 'Photo' }
1998
- */
1999
- labels?: { photo?: string };
2000
- /**
2001
- * Thumbnail strip size.
2002
- * @default 'md'
2003
- */
2004
- size?: Size;
2005
- /**
2006
- * Called with the new image index when a thumbnail is clicked.
2007
- * @event change
2008
- */
2009
- onChange?: (index: number) => void;
2010
- }
2011
- export interface UiGallerySlots {}
2012
- export const UiGallery: UiVueComponent<UiGalleryProps, UiGallerySlots>;
2013
-
2014
1345
  /** CSS grid with a fixed column count or auto-fit columns of a minimum width. */
2015
1346
  export interface UiGridProps {
2016
1347
  /** Fixed number of equal columns. When set, min is ignored. */
@@ -2039,73 +1370,6 @@ export interface UiGridSlots {
2039
1370
  }
2040
1371
  export const UiGrid: UiVueComponent<UiGridProps, UiGridSlots>;
2041
1372
 
2042
- /**
2043
- * Single-choice dropdown with option groups under headings. Use for long lists that have natural categories.
2044
- * Note: The popup closes on outside click and on Escape.
2045
- */
2046
- export interface UiGroupedSelectProps {
2047
- /** Value of the selected option. */
2048
- modelValue?: string | number;
2049
- /**
2050
- * Groups with a heading and their options. Option values must be unique across groups. An option with disabled: true cannot be chosen.
2051
- * @default []
2052
- */
2053
- groups?: { label: string; options: { value: string | number; label: string; disabled?: boolean }[] }[];
2054
- /**
2055
- * Label shown above the control.
2056
- * @remarks Forwarded to the inner element.
2057
- */
2058
- label?: string;
2059
- /** Shown when nothing is selected. Defaults to "—". */
2060
- placeholder?: string;
2061
- /**
2062
- * Disables the control.
2063
- * @default false
2064
- */
2065
- disabled?: boolean;
2066
- /**
2067
- * Control height, font and padding scale.
2068
- * @default 'md'
2069
- */
2070
- size?: Size;
2071
- /**
2072
- * Called with the value of the chosen option.
2073
- * @event change
2074
- */
2075
- onChange?: (value: string | number) => void;
2076
- /** v-model update. Emitted together with `change`. */
2077
- 'onUpdate:modelValue'?: (value: string | number) => void;
2078
- }
2079
- export interface UiGroupedSelectSlots {}
2080
- export const UiGroupedSelect: UiVueComponent<UiGroupedSelectProps, UiGroupedSelectSlots>;
2081
-
2082
- /** Guest profile card with avatar, country, stay length and tags. */
2083
- export interface UiGuestCardProps {
2084
- /** Guest name. */
2085
- name: string;
2086
- /** Country shown in the subtitle. */
2087
- country?: string;
2088
- /** Number of nights, shown as "N nights". */
2089
- nights?: number;
2090
- /**
2091
- * Shows a VIP badge.
2092
- * @default false
2093
- */
2094
- vip?: boolean;
2095
- /**
2096
- * Preference tags, e.g. "Halal", "Late check-in".
2097
- * @default []
2098
- */
2099
- tags?: string[];
2100
- /**
2101
- * Scales padding, text and avatars.
2102
- * @default 'md'
2103
- */
2104
- size?: Size;
2105
- }
2106
- export interface UiGuestCardSlots {}
2107
- export const UiGuestCard: UiVueComponent<UiGuestCardProps, UiGuestCardSlots>;
2108
-
2109
1373
  /** Horizontal flex row with a configurable gap. */
2110
1374
  export interface UiHStackProps {
2111
1375
  /**
@@ -2175,89 +1439,6 @@ export interface UiHeadingSlots {
2175
1439
  }
2176
1440
  export const UiHeading: UiVueComponent<UiHeadingProps, UiHeadingSlots>;
2177
1441
 
2178
- /** Wide promotional banner with title, text, a big value, optional action and a background image. */
2179
- export interface UiHeroBannerProps {
2180
- /** Banner heading. */
2181
- title: string;
2182
- /** Supporting paragraph. */
2183
- text?: string;
2184
- /** Large number or price shown under the text. */
2185
- value?: string | number;
2186
- /** Label of the primary button. The button renders only when set. */
2187
- cta?: string;
2188
- /** Image URL shown on the right side. */
2189
- image?: string;
2190
- /**
2191
- * Called when the call-to-action button is clicked.
2192
- * @event cta
2193
- */
2194
- onCta?: () => void;
2195
- }
2196
- export interface UiHeroBannerSlots {
2197
- /** Extra content placed before the button. */
2198
- default?: () => any;
2199
- }
2200
- export const UiHeroBanner: UiVueComponent<UiHeroBannerProps, UiHeroBannerSlots>;
2201
-
2202
- /**
2203
- * Hotel listing card with photo, tags, stars, distance, rating and nightly price; use in catalogs and search results.
2204
- * Note: Currency is hard-coded to SAR.
2205
- * Note: Wrap in a clickable element yourself; the card has no click handler.
2206
- */
2207
- export interface UiHotelCardProps {
2208
- /** Hotel name. */
2209
- name: string;
2210
- /** Photo URL, used as the card background image. */
2211
- image?: string;
2212
- /**
2213
- * Brand badges over the photo, e.g. "Haram view".
2214
- * @default []
2215
- */
2216
- tags?: string[];
2217
- /**
2218
- * Star class 0-5, rendered as repeated stars.
2219
- * @default 0
2220
- */
2221
- stars?: number;
2222
- /** Distance caption next to the stars, e.g. "120 m to the Haram". */
2223
- distance?: string;
2224
- /** Guest rating shown in a green badge, e.g. 9.2. */
2225
- rating?: string | number;
2226
- /** Price per unit, formatted with thousand separators; the currency label is fixed to SAR. */
2227
- price?: number;
2228
- /**
2229
- * Unit after "SAR /", e.g. "night".
2230
- * @default 'night'
2231
- */
2232
- night?: string;
2233
- /**
2234
- * Scales padding, text and avatars.
2235
- * @default 'md'
2236
- */
2237
- size?: Size;
2238
- }
2239
- export interface UiHotelCardSlots {}
2240
- export const UiHotelCard: UiVueComponent<UiHotelCardProps, UiHotelCardSlots>;
2241
-
2242
- /**
2243
- * Rich card shown on hover or keyboard focus of a trigger; use for previews of users, links or entities.
2244
- * Note: The wrapper is focusable (tabIndex 0), so the card also opens on focus.
2245
- */
2246
- export interface UiHoverCardProps {
2247
- /** Content that triggers the card. */
2248
- trigger?: string | VNode;
2249
- /**
2250
- * Scale of card width (200 to 400 px) and padding.
2251
- * @default 'md'
2252
- */
2253
- size?: Size;
2254
- }
2255
- export interface UiHoverCardSlots {
2256
- /** Card content. */
2257
- default?: () => any;
2258
- }
2259
- export const UiHoverCard: UiVueComponent<UiHoverCardProps, UiHoverCardSlots>;
2260
-
2261
1442
  /**
2262
1443
  * Renders a named icon from the library at a chosen size.
2263
1444
  * Note: The icon is aria-hidden; add a label on the surrounding control for accessibility.
@@ -2330,269 +1511,52 @@ export interface UiIconTileSlots {}
2330
1511
  export const UiIconTile: UiVueComponent<UiIconTileProps, UiIconTileSlots>;
2331
1512
 
2332
1513
  /**
2333
- * Image picker with a live preview, square or circular. Use for avatars, covers and logos.
2334
- * Note: The preview is kept in internal state, so it updates even without updating modelValue.
1514
+ * Keyboard key cap for shortcuts such as Ctrl or K.
1515
+ * Note: Render one Kbd per key and combine them in a row for chords.
2335
1516
  */
2336
- export interface UiImageUploadProps {
2337
- /** Image URL or data URL to show before the user picks a new file. */
2338
- modelValue?: string;
2339
- /**
2340
- * circle gives a round avatar-style crop, otherwise rounded corners.
2341
- * @default 'square'
2342
- */
2343
- shape?: 'square' | 'circle';
2344
- /**
2345
- * CSS aspect-ratio of the box, e.g. "16/9".
2346
- * @default '1/1'
2347
- */
2348
- aspect?: string;
2349
- /**
2350
- * Text shown in the empty state.
2351
- * @default 'Upload'
2352
- */
2353
- hint?: string;
2354
- /**
2355
- * Label shown above the control.
2356
- * @remarks Forwarded to the inner element.
2357
- */
2358
- label?: string;
1517
+ export interface UiKbdProps {
2359
1518
  /**
2360
- * Maximum width: 112, 128, 160, 192 or 224 px. A number is used as px directly.
1519
+ * Key cap size.
2361
1520
  * @default 'md'
2362
1521
  */
2363
1522
  size?: Size;
1523
+ }
1524
+ export interface UiKbdSlots {
1525
+ /** Key label. */
1526
+ default?: () => any;
1527
+ }
1528
+ export const UiKbd: UiVueComponent<UiKbdProps, UiKbdSlots>;
1529
+
1530
+ /** Key metric tile with a label, large value and optional delta, for dashboards. */
1531
+ export interface UiKpiTileProps {
1532
+ /** Metric name. */
1533
+ label: string;
1534
+ /** Main value, shown large. */
1535
+ value: string | number;
1536
+ /** Small text next to the delta. */
1537
+ sub?: string;
1538
+ /** Change indicator such as "+12%" or "-3.4%". A leading "-" renders as a decrease, anything else as an increase. */
1539
+ delta?: string;
1540
+ /** Filled brand tile or dark inverse tile. Omit for the default glass tile. */
1541
+ variant?: 'brand' | 'inverse';
2364
1542
  /**
2365
- * Called with (dataUrl, file): the picked image as a data URL and the original File.
2366
- * @event change
1543
+ * Padding and value size.
1544
+ * @default 'md'
2367
1545
  */
2368
- onChange?: (dataUrl: string, file: File) => void;
2369
- /** v-model update. Emitted together with `change`. */
2370
- 'onUpdate:modelValue'?: (value: string, file: File) => void;
1546
+ size?: Size;
2371
1547
  }
2372
- export interface UiImageUploadSlots {}
2373
- export const UiImageUpload: UiVueComponent<UiImageUploadProps, UiImageUploadSlots>;
1548
+ export interface UiKpiTileSlots {}
1549
+ export const UiKpiTile: UiVueComponent<UiKpiTileProps, UiKpiTileSlots>;
2374
1550
 
2375
- /**
2376
- * Full-screen lightbox for one or several images with previous/next buttons and a counter.
2377
- * Note: Navigation buttons appear only when there is more than one image.
2378
- */
2379
- export interface UiImageViewerProps {
1551
+ /** Image box with a fixed aspect ratio and rounded corners, rendered as a background image. */
1552
+ export interface UiLazyImageProps {
1553
+ /** Image URL. An empty placeholder is shown without it. */
1554
+ src?: string;
2380
1555
  /**
2381
- * Shows the viewer when true; renders nothing when false.
2382
- * @default false
1556
+ * Accessible description, exposed as aria-label on role="img".
1557
+ * @default ''
2383
1558
  */
2384
- open?: boolean;
2385
- /**
2386
- * Image URLs.
2387
- * @default []
2388
- */
2389
- images?: string[];
2390
- /**
2391
- * Index of the image to start on.
2392
- * @default 0
2393
- */
2394
- index?: number;
2395
- /** Alt text of the image and aria-label of the dialog (default "Image viewer"). */
2396
- alt?: string;
2397
- /**
2398
- * Called on the close button or a click on the backdrop.
2399
- * @event close
2400
- */
2401
- onClose?: () => void;
2402
- }
2403
- export interface UiImageViewerSlots {}
2404
- export const UiImageViewer: UiVueComponent<UiImageViewerProps, UiImageViewerSlots>;
2405
-
2406
- /** Glass banner for an incoming call with Decline and Answer buttons. */
2407
- export interface UiIncomingCallProps {
2408
- /** Caller name. */
2409
- name: string;
2410
- /** Caller number. */
2411
- phone?: string;
2412
- /**
2413
- * Caption above the name.
2414
- * @default Incoming call
2415
- */
2416
- label?: string;
2417
- /** Decline button click. */
2418
- onDecline?: () => void;
2419
- /** Answer button click. */
2420
- onAnswer?: () => void;
2421
- /**
2422
- * Scales padding, text and avatars.
2423
- * @default 'md'
2424
- */
2425
- size?: Size;
2426
- }
2427
- export interface UiIncomingCallSlots {}
2428
- export const UiIncomingCall: UiVueComponent<UiIncomingCallProps, UiIncomingCallSlots>;
2429
-
2430
- /** Text that turns into an input on click. Use for renaming and quick edits without a form. */
2431
- export interface UiInlineEditProps {
2432
- /**
2433
- * Current text.
2434
- * @default ''
2435
- */
2436
- modelValue?: string;
2437
- /**
2438
- * Shown when the value is empty.
2439
- * @default Click to edit
2440
- */
2441
- emptyText?: string;
2442
- /**
2443
- * Control height, font and padding scale.
2444
- * @default 'md'
2445
- */
2446
- size?: Size;
2447
- /**
2448
- * Called with the edited text on Enter or on the save button. Escape cancels.
2449
- * @event change
2450
- */
2451
- onChange?: (value: string) => void;
2452
- /** v-model update. Emitted together with `change`. */
2453
- 'onUpdate:modelValue'?: (value: string) => void;
2454
- }
2455
- export interface UiInlineEditSlots {}
2456
- export const UiInlineEdit: UiVueComponent<UiInlineEditProps, UiInlineEditSlots>;
2457
-
2458
- /**
2459
- * Card for a third-party integration showing its connection status and a connect or manage button.
2460
- * Note: Translate badge and button texts with labels.
2461
- * Note: Unknown status values behave as "off".
2462
- */
2463
- export interface UiIntegrationCardProps {
2464
- /** Integration name. */
2465
- name: string;
2466
- /** Short explanation under the name. */
2467
- description?: string;
2468
- /**
2469
- * Connection state. Sets the badge (Connected, Error, Not linked) and button (Manage, Reconnect, Link).
2470
- * @default 'off'
2471
- */
2472
- status?: 'connected' | 'error' | 'off';
2473
- /**
2474
- * Badge and button texts per status; missing keys keep the English defaults.
2475
- * @default { connected: 'Connected', error: 'Error', off: 'Not linked', manage: 'Manage', reconnect: 'Reconnect', link: 'Link' }
2476
- */
2477
- labels?: { connected?: string; error?: string; off?: string; manage?: string; reconnect?: string; link?: string };
2478
- /**
2479
- * Card padding and title size.
2480
- * @default 'md'
2481
- */
2482
- size?: Size;
2483
- /**
2484
- * Called when the button is clicked, for connecting, reconnecting or managing.
2485
- * @event toggle
2486
- */
2487
- onToggle?: () => void;
2488
- }
2489
- export interface UiIntegrationCardSlots {}
2490
- export const UiIntegrationCard: UiVueComponent<UiIntegrationCardProps, UiIntegrationCardSlots>;
2491
-
2492
- /** Simple kanban card with title, subtitle, free content and an optional tag. */
2493
- export interface UiKanbanCardProps {
2494
- /** Card title. */
2495
- title: string;
2496
- /** Subtitle under the title. */
2497
- sub?: string;
2498
- /** Badge at the bottom. */
2499
- tag?: string;
2500
- /** Badge tone for tag. */
2501
- tone?: 'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info';
2502
- /**
2503
- * Scales padding, text and avatars.
2504
- * @default 'md'
2505
- */
2506
- size?: Size;
2507
- }
2508
- export interface UiKanbanCardSlots {
2509
- /** Extra content between the subtitle and the tag. React passes it as children. */
2510
- default?: () => any;
2511
- }
2512
- export const UiKanbanCard: UiVueComponent<UiKanbanCardProps, UiKanbanCardSlots>;
2513
-
2514
- /** Single kanban column with a title, count badge and stacked cards. */
2515
- export interface UiKanbanColumnProps {
2516
- /** Column heading. */
2517
- title: string;
2518
- /** Count badge; defaults to the number of children. */
2519
- count?: number;
2520
- /**
2521
- * Scales padding, text and avatars.
2522
- * @default 'md'
2523
- */
2524
- size?: Size;
2525
- }
2526
- export interface UiKanbanColumnSlots {
2527
- /** Cards, usually KanbanCard or DealCard. React passes them as children. */
2528
- default?: () => any;
2529
- }
2530
- export const UiKanbanColumn: UiVueComponent<UiKanbanColumnProps, UiKanbanColumnSlots>;
2531
-
2532
- /**
2533
- * Keyboard key cap for shortcuts such as Ctrl or K.
2534
- * Note: Render one Kbd per key and combine them in a row for chords.
2535
- */
2536
- export interface UiKbdProps {
2537
- /**
2538
- * Key cap size.
2539
- * @default 'md'
2540
- */
2541
- size?: Size;
2542
- }
2543
- export interface UiKbdSlots {
2544
- /** Key label. */
2545
- default?: () => any;
2546
- }
2547
- export const UiKbd: UiVueComponent<UiKbdProps, UiKbdSlots>;
2548
-
2549
- /** Compact inline metric with a label, value and delta, for toolbars and card headers. */
2550
- export interface UiKpiInlineProps {
2551
- /** Metric name. */
2552
- label: string;
2553
- /** Main value. */
2554
- value: string | number;
2555
- /** Change indicator such as "+12%" or "-3.4%". A leading "-" renders as a decrease, anything else as an increase. */
2556
- delta?: string;
2557
- /**
2558
- * Value font size.
2559
- * @default 'md'
2560
- */
2561
- size?: Size;
2562
- }
2563
- export interface UiKpiInlineSlots {}
2564
- export const UiKpiInline: UiVueComponent<UiKpiInlineProps, UiKpiInlineSlots>;
2565
-
2566
- /** Key metric tile with a label, large value and optional delta, for dashboards. */
2567
- export interface UiKpiTileProps {
2568
- /** Metric name. */
2569
- label: string;
2570
- /** Main value, shown large. */
2571
- value: string | number;
2572
- /** Small text next to the delta. */
2573
- sub?: string;
2574
- /** Change indicator such as "+12%" or "-3.4%". A leading "-" renders as a decrease, anything else as an increase. */
2575
- delta?: string;
2576
- /** Filled brand tile or dark inverse tile. Omit for the default glass tile. */
2577
- variant?: 'brand' | 'inverse';
2578
- /**
2579
- * Padding and value size.
2580
- * @default 'md'
2581
- */
2582
- size?: Size;
2583
- }
2584
- export interface UiKpiTileSlots {}
2585
- export const UiKpiTile: UiVueComponent<UiKpiTileProps, UiKpiTileSlots>;
2586
-
2587
- /** Image box with a fixed aspect ratio and rounded corners, rendered as a background image. */
2588
- export interface UiLazyImageProps {
2589
- /** Image URL. An empty placeholder is shown without it. */
2590
- src?: string;
2591
- /**
2592
- * Accessible description, exposed as aria-label on role="img".
2593
- * @default ''
2594
- */
2595
- alt?: string;
1559
+ alt?: string;
2596
1560
  /**
2597
1561
  * CSS aspect-ratio value such as "1/1" or "4/3".
2598
1562
  * @default '16/9'
@@ -2607,29 +1571,6 @@ export interface UiLazyImageProps {
2607
1571
  export interface UiLazyImageSlots {}
2608
1572
  export const UiLazyImage: UiVueComponent<UiLazyImageProps, UiLazyImageSlots>;
2609
1573
 
2610
- /** CRM lead card with avatar, code, phone and amount. */
2611
- export interface UiLeadCardProps {
2612
- /** Lead name. */
2613
- name: string;
2614
- /** Lead or deal code under the name, monospaced. */
2615
- code?: string;
2616
- /** Optional badge text, e.g. a source or status. */
2617
- tag?: string;
2618
- /** Badge tone for tag; neutral when omitted. */
2619
- tone?: 'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info';
2620
- /** Phone number with a phone icon. */
2621
- phone?: string;
2622
- /** Amount shown on the right, rendered as given (format it yourself). */
2623
- amount?: string | number;
2624
- /**
2625
- * Scales padding, text and avatars.
2626
- * @default 'md'
2627
- */
2628
- size?: Size;
2629
- }
2630
- export interface UiLeadCardSlots {}
2631
- export const UiLeadCard: UiVueComponent<UiLeadCardProps, UiLeadCardSlots>;
2632
-
2633
1574
  /**
2634
1575
  * Styled anchor for in-text and standalone links, with optional external-link behavior.
2635
1576
  * Note: Without href the link points to "#"; for SPA routing use onClick and prevent default.
@@ -2667,33 +1608,6 @@ export interface UiLinkSlots {
2667
1608
  }
2668
1609
  export const UiLink: UiVueComponent<UiLinkProps, UiLinkSlots>;
2669
1610
 
2670
- /**
2671
- * Frosted liquid-glass panel with adjustable corner radius and blur.
2672
- * Note: Backdrop blur is visible only over a colorful or image background.
2673
- */
2674
- export interface UiLiquidGlassProps {
2675
- /**
2676
- * Corner radius. Numbers are pixels.
2677
- * @default 24
2678
- */
2679
- radius?: number | string;
2680
- /**
2681
- * Backdrop blur radius. Numbers are pixels.
2682
- * @default 18
2683
- */
2684
- blur?: number | string;
2685
- /**
2686
- * Inner padding.
2687
- * @default 'md'
2688
- */
2689
- size?: Size;
2690
- }
2691
- export interface UiLiquidGlassSlots {
2692
- /** Panel content. */
2693
- default?: () => any;
2694
- }
2695
- export const UiLiquidGlass: UiVueComponent<UiLiquidGlassProps, UiLiquidGlassSlots>;
2696
-
2697
1611
  /** Wrapper that dims its content and shows a spinner on top while loading; use over cards, tables or forms during a refresh. */
2698
1612
  export interface UiLoadingOverlayProps {
2699
1613
  /**
@@ -2762,76 +1676,6 @@ export interface UiLoginFormProps {
2762
1676
  export interface UiLoginFormSlots {}
2763
1677
  export const UiLoginForm: UiVueComponent<UiLoginFormProps, UiLoginFormSlots>;
2764
1678
 
2765
- /**
2766
- * Interactive raster map with panning, zoom buttons and clickable markers, using OpenStreetMap data via CARTO tiles.
2767
- * Note: The center and zoom props are initial values; user panning and zooming is kept in internal state. Listen to move/zoom to track it.
2768
- * Note: Drag or touch to pan, wheel or double click to zoom around the pointer. The tile theme follows the page data-theme after mount (light tiles on the server render) unless theme or style is set.
2769
- * Note: Tiles come from a third-party CDN, so it needs network access.
2770
- */
2771
- export interface UiMapProps {
2772
- /**
2773
- * Initial center latitude.
2774
- * @default 21.4225
2775
- */
2776
- lat?: number;
2777
- /**
2778
- * Initial center longitude.
2779
- * @default 39.8262
2780
- */
2781
- lon?: number;
2782
- /**
2783
- * Initial zoom level; the zoom buttons clamp it to 3..18.
2784
- * @default 14
2785
- */
2786
- zoom?: number;
2787
- /**
2788
- * Pins. label is the tooltip, icon defaults to "map-pin".
2789
- * @default []
2790
- */
2791
- markers?: { lat: number; lon: number; label?: string; icon?: string; tone?: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' }[];
2792
- /**
2793
- * Pixel width used to compute which tiles to load; the map element itself fills its container.
2794
- * @default 640
2795
- */
2796
- width?: number;
2797
- /**
2798
- * Height in px.
2799
- * @default 360
2800
- */
2801
- height?: number;
2802
- /** Tile theme. If omitted, dark is used when the page is inside a dark data-theme. */
2803
- theme?: 'light' | 'dark';
2804
- /** CARTO tile style path, for example "light_all" or "dark_all". Overrides theme. */
2805
- style?: string;
2806
- /**
2807
- * aria-label of the map region.
2808
- * @default 'Map'
2809
- */
2810
- label?: string;
2811
- /**
2812
- * Accessible names of the zoom buttons.
2813
- * @default { zoomIn: 'Zoom in', zoomOut: 'Zoom out' }
2814
- */
2815
- labels?: { zoomIn?: string; zoomOut?: string };
2816
- /**
2817
- * Called with the marker object when a marker is clicked.
2818
- * @event select
2819
- */
2820
- onSelect?: (marker: NonNullable<UiMapProps['markers']>[number]) => void;
2821
- /**
2822
- * Called with { lat, lon, zoom } while the user pans or zooms (drag, touch, wheel, double click or the +/- buttons).
2823
- * @event move
2824
- */
2825
- onMove?: () => void;
2826
- /**
2827
- * Called with the new zoom level when it changes.
2828
- * @event zoom
2829
- */
2830
- onZoom?: () => void;
2831
- }
2832
- export interface UiMapSlots {}
2833
- export const UiMap: UiVueComponent<UiMapProps, UiMapSlots>;
2834
-
2835
1679
  /**
2836
1680
  * Static vertical list of actions rendered inline; use in sidebars and custom popovers.
2837
1681
  * Note: Always visible unless open is set. For a self-toggling menu use Dropdown, for a right-click menu use ContextMenu.
@@ -2993,41 +1837,6 @@ export interface UiMultiSelectProps {
2993
1837
  export interface UiMultiSelectSlots {}
2994
1838
  export const UiMultiSelect: UiVueComponent<UiMultiSelectProps, UiMultiSelectSlots>;
2995
1839
 
2996
- /**
2997
- * Bell icon button with an unread counter and a dropdown list of notifications.
2998
- * Note: If you handle read or markAllRead the component is controlled: it trusts only the read flags in items, so update them in your state. Without these handlers it marks items read internally.
2999
- * Note: The dropdown opens and closes internally, and closes on outside click or Escape.
3000
- */
3001
- export interface UiNotificationBellProps {
3002
- /**
3003
- * Notifications. Items without read: true count as unread and show a dot.
3004
- * @default []
3005
- */
3006
- items?: { id: string | number; title: string; message?: string; time?: string; read?: boolean }[];
3007
- /**
3008
- * Bell button size.
3009
- * @default 'md'
3010
- */
3011
- size?: Size;
3012
- /**
3013
- * Called with the item id when an unread item is clicked.
3014
- * @event read
3015
- */
3016
- onRead?: (id: string | number) => void;
3017
- /**
3018
- * Called when "Mark all read" is clicked (shown while something is unread).
3019
- * @event markAllRead
3020
- */
3021
- onMarkAllRead?: () => void;
3022
- /**
3023
- * Called with the item when any item is clicked.
3024
- * @event select
3025
- */
3026
- onSelect?: (item: NonNullable<UiNotificationBellProps['items']>[number]) => void;
3027
- }
3028
- export interface UiNotificationBellSlots {}
3029
- export const UiNotificationBell: UiVueComponent<UiNotificationBellProps, UiNotificationBellSlots>;
3030
-
3031
1840
  /**
3032
1841
  * Numeric stepper with minus and plus buttons and a typed value. Use for quantities, guest counts and small integers.
3033
1842
  * Note: The field can be fully cleared (null); the + and - buttons start from 0 when empty.
@@ -3078,1341 +1887,88 @@ export interface UiNumberInputProps {
3078
1887
  export interface UiNumberInputSlots {}
3079
1888
  export const UiNumberInput: UiVueComponent<UiNumberInputProps, UiNumberInputSlots>;
3080
1889
 
3081
- /** Bar chart of percentages by label, such as hotel occupancy per day or month. */
3082
- export interface UiOccupancyChartProps {
1890
+ /**
1891
+ * Sign-in page template without the app shell, as a centered card or a split layout.
1892
+ * Note: Designed for the dark theme and used without AppShell.
1893
+ */
1894
+ export interface UiPageAuthProps {
3083
1895
  /**
3084
- * Percentages from 0 to 100, one per bar. Values above 90 are highlighted in brand color.
3085
- * @default []
1896
+ * 'split' uses AuthSplit with a side panel. 'photo', 'light' and 'tint' use AuthShowcase with a media panel (Pro: needs @ziyarago/ui-pro, otherwise they fall back to the centered card). Anything else renders a centered AuthLayout card over the background.
1897
+ * @default 'card'
1898
+ * @remarks Forwarded to the inner element.
3086
1899
  */
3087
- values: number[];
1900
+ layout?: 'card' | 'split' | 'photo' | 'light' | 'tint';
3088
1901
  /**
3089
- * Axis label under each bar, matched by index.
3090
- * @default []
1902
+ * Media image URL; photo, light and tint layouts.
1903
+ * @remarks Forwarded to the inner element.
3091
1904
  */
3092
- labels?: string[];
3093
- }
3094
- export interface UiOccupancyChartSlots {}
3095
- export const UiOccupancyChart: UiVueComponent<UiOccupancyChartProps, UiOccupancyChartSlots>;
3096
-
3097
- /** Selectable card with title, description, price and optional image or icon. Usually rendered by OptionCards. */
3098
- export interface UiOptionCardProps {
3099
- /** Main text. */
3100
- title?: string;
3101
- /** Secondary text under the title. */
3102
- desc?: string;
3103
- /** Right-aligned price or value text. */
3104
- price?: string;
3105
- /** Image URL shown on the left. Takes priority over icon. */
3106
1905
  image?: string;
3107
- /** Icon name shown in a tile on the left. */
3108
- icon?: string;
3109
- /**
3110
- * Selected state.
3111
- * @default false
3112
- */
3113
- checked?: boolean;
3114
- /**
3115
- * Checkbox look and role instead of radio.
3116
- * @default false
3117
- */
3118
- multiple?: boolean;
3119
- /**
3120
- * Control height, font and padding scale.
3121
- * @default 'md'
3122
- */
3123
- size?: Size;
3124
- /**
3125
- * Called when the card is pressed. Toggle checked yourself.
3126
- * @event click
3127
- */
3128
- onClick?: (event: MouseEvent) => void;
3129
- }
3130
- export interface UiOptionCardSlots {}
3131
- export const UiOptionCard: UiVueComponent<UiOptionCardProps, UiOptionCardSlots>;
3132
-
3133
- /** Grid of selectable OptionCards, single or multiple choice. Use for plans, room types and delivery options. */
3134
- export interface UiOptionCardsProps {
3135
- /** Selected value, or an array of values when multiple is true. */
3136
- modelValue?: string | number | (string | number)[];
3137
- /**
3138
- * Cards to show. Fields are passed to OptionCard.
3139
- * @default []
3140
- */
3141
- options?: { value: string | number; title: string; desc?: string; price?: string; image?: string; icon?: string }[];
3142
- /**
3143
- * Allow several selected cards. modelValue becomes an array.
3144
- * @default false
3145
- */
3146
- multiple?: boolean;
3147
- /**
3148
- * Minimum card width in px before the grid wraps.
3149
- * @default 220
3150
- */
3151
- min?: number;
3152
- /**
3153
- * Label shown above the control.
3154
- * @remarks Forwarded to the inner element.
3155
- */
3156
- label?: string;
3157
- /**
3158
- * Control height, font and padding scale.
3159
- * @default 'md'
3160
- */
3161
- size?: Size;
3162
- /**
3163
- * Called with the value (single) or the new array of values (multiple).
3164
- * @event change
3165
- */
3166
- onChange?: (value: string | number | (string | number)[]) => void;
3167
- /** v-model update. Emitted together with `change`. */
3168
- 'onUpdate:modelValue'?: (value: string | number | (string | number)[]) => void;
3169
- }
3170
- export interface UiOptionCardsSlots {}
3171
- export const UiOptionCards: UiVueComponent<UiOptionCardsProps, UiOptionCardsSlots>;
3172
-
3173
- /**
3174
- * Account settings template with pill tabs and a swappable panel.
3175
- * Note: Place inside AppShell; fill only the slots you need.
3176
- * Note: The template does not switch panels by itself: keep the active tab in your own state (PillTabs v-model) and render only that tab content in the panel slot.
3177
- */
3178
- export interface UiPageAccountProps {
3179
- /**
3180
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3181
- * @remarks Forwarded to the inner element.
3182
- */
3183
- title?: string;
3184
- /**
3185
- * Caption under the heading.
3186
- * @remarks Forwarded to the inner element.
3187
- */
3188
- subtitle?: string;
3189
- /**
3190
- * Breadcrumb trail above the title.
3191
- * @remarks Forwarded to the inner element.
3192
- */
3193
- crumbs?: { label: string; href?: string }[];
3194
- }
3195
- export interface UiPageAccountSlots {
3196
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3197
- header?: () => any;
3198
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3199
- actions?: () => any;
3200
- /** Section tabs (account, security, billing, notifications); PillTabs. */
3201
- tabs?: () => any;
3202
- /** Content of the active tab; Card or SettingsSection with Switch and TextField. */
3203
- panel?: () => any;
3204
- }
3205
- export const UiPageAccount: UiVueComponent<UiPageAccountProps, UiPageAccountSlots>;
3206
-
3207
- /**
3208
- * Analytics template: period picker, KPI strip, trend charts, a breakdown block and a table. Put Export in actions.
3209
- * Note: Place inside AppShell; fill only the slots you need.
3210
- * Note: Trend and breakdown share a row and wrap on narrow screens. Put Export in the actions slot.
3211
- */
3212
- export interface UiPageAnalyticsProps {
3213
- /**
3214
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3215
- * @remarks Forwarded to the inner element.
3216
- */
3217
- title?: string;
3218
- /**
3219
- * Caption under the heading.
3220
- * @remarks Forwarded to the inner element.
3221
- */
3222
- subtitle?: string;
3223
- /**
3224
- * Breadcrumb trail above the title.
3225
- * @remarks Forwarded to the inner element.
3226
- */
3227
- crumbs?: { label: string; href?: string }[];
3228
- }
3229
- export interface UiPageAnalyticsSlots {
3230
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3231
- header?: () => any;
3232
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3233
- actions?: () => any;
3234
- /** Period presets and compare toggle; SegmentedControl, Select, Switch. */
3235
- period?: () => any;
3236
- /** Headline numbers with deltas; KpiTile, StatLine. */
3237
- kpis?: () => any;
3238
- /** Main time series; ChartCard with MiniChart. */
3239
- trend?: () => any;
3240
- /** Split by channel or country; ChartCard with SegBar and CountryRow. */
3241
- breakdown?: () => any;
3242
- /** Rows behind the numbers; DataTable. */
3243
- table?: () => any;
3244
- }
3245
- export const UiPageAnalytics: UiVueComponent<UiPageAnalyticsProps, UiPageAnalyticsSlots>;
3246
-
3247
- /**
3248
- * Article template: cover, post body, sticky table of contents, share row and related posts.
3249
- * Note: Place inside AppShell; fill only the slots you need.
3250
- * Note: Body, share and related share the main column; the table of contents stays visible on the right while the body scrolls and drops under the body below 860 px.
3251
- */
3252
- export interface UiPageArticleProps {
3253
- /**
3254
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3255
- * @remarks Forwarded to the inner element.
3256
- */
3257
- title?: string;
3258
- /**
3259
- * Caption under the heading.
3260
- * @remarks Forwarded to the inner element.
3261
- */
3262
- subtitle?: string;
3263
- /**
3264
- * Breadcrumb trail above the title.
3265
- * @remarks Forwarded to the inner element.
3266
- */
3267
- crumbs?: { label: string; href?: string }[];
3268
- }
3269
- export interface UiPageArticleSlots {
3270
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3271
- header?: () => any;
3272
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3273
- actions?: () => any;
3274
- /** Cover image area with title and author line; a gradient Card or LazyImage. */
3275
- cover?: () => any;
3276
- /** Article text; Heading, Text, Code, Alert. */
3277
- body?: () => any;
3278
- /** Sticky table of contents; Card with a list of anchor links. */
3279
- toc?: () => any;
3280
- /** Share and reaction row; Button, IconButton, CopyButton. */
3281
- share?: () => any;
3282
- /** Related posts; Card grid. */
3283
- related?: () => any;
3284
- }
3285
- export const UiPageArticle: UiVueComponent<UiPageArticleProps, UiPageArticleSlots>;
3286
-
3287
- /**
3288
- * Sign-in page template without the app shell, as a centered card or a split layout.
3289
- * Note: Designed for the dark theme and used without AppShell.
3290
- */
3291
- export interface UiPageAuthProps {
3292
- /**
3293
- * 'split' uses AuthSplit with a side panel. 'photo', 'light' and 'tint' use AuthShowcase with a media panel. Anything else renders a centered AuthLayout card over the background.
3294
- * @default 'card'
3295
- * @remarks Forwarded to the inner element.
3296
- */
3297
- layout?: 'card' | 'split' | 'photo' | 'light' | 'tint';
3298
- /**
3299
- * Media image URL; photo, light and tint layouts.
3300
- * @remarks Forwarded to the inner element.
3301
- */
3302
- image?: string;
3303
- /**
3304
- * Large text on the media panel; photo and tint.
3305
- * @remarks Forwarded to the inner element.
3306
- */
3307
- headline?: string;
3308
- /**
3309
- * Small text on the media panel or glass bar.
3310
- * @remarks Forwarded to the inner element.
3311
- */
3312
- caption?: string;
3313
- /**
3314
- * Bottom line of the media panel; photo only.
3315
- * @remarks Forwarded to the inner element.
3316
- */
3317
- quote?: string;
3318
- /**
3319
- * Pill labels in the glass bar; light and tint.
3320
- * @remarks Forwarded to the inner element.
3321
- */
3322
- chips?: string[];
3323
- /**
3324
- * Avatars on the media panel or in the proof pill.
3325
- * @remarks Forwarded to the inner element.
3326
- */
3327
- people?: { name: string; src?: string }[];
3328
- /**
3329
- * Social-proof title under the form; light and tint.
3330
- * @remarks Forwarded to the inner element.
3331
- */
3332
- proof?: string;
3333
- /**
3334
- * Second line of the proof pill.
3335
- * @remarks Forwarded to the inner element.
3336
- */
3337
- proofHint?: string;
3338
- /**
3339
- * Form heading.
3340
- * @remarks Forwarded to the inner element.
3341
- */
3342
- title?: string;
3343
- /**
3344
- * Text under the heading.
3345
- * @remarks Forwarded to the inner element.
3346
- */
3347
- subtitle?: string;
3348
- }
3349
- export interface UiPageAuthSlots {
3350
- /** Decorative glows behind the card; card layout only. */
3351
- background?: () => any;
3352
- /** Logo above the heading. */
3353
- logo?: () => any;
3354
- /** Brand panel on the left; split layout only, hidden below 820 px. */
3355
- aside?: () => any;
3356
- /** Sign-in fields and button; LoginForm, TextField, PasswordInput, CodeInput, Button. */
3357
- form?: () => any;
3358
- /** Links such as help, create account, back to login. */
3359
- footer?: () => any;
3360
- }
3361
- export const UiPageAuth: UiVueComponent<UiPageAuthProps, UiPageAuthSlots>;
3362
-
3363
- /**
3364
- * Billing template: current plan, usage meters, invoices, payment methods and an upgrade card.
3365
- * Note: Place inside AppShell; fill only the slots you need.
3366
- * Note: Plan, usage and invoices share the main column; methods and upgrade form the side column.
3367
- */
3368
- export interface UiPageBillingProps {
3369
- /**
3370
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3371
- * @remarks Forwarded to the inner element.
3372
- */
3373
- title?: string;
3374
- /**
3375
- * Caption under the heading.
3376
- * @remarks Forwarded to the inner element.
3377
- */
3378
- subtitle?: string;
3379
- /**
3380
- * Breadcrumb trail above the title.
3381
- * @remarks Forwarded to the inner element.
3382
- */
3383
- crumbs?: { label: string; href?: string }[];
3384
- }
3385
- export interface UiPageBillingSlots {
3386
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3387
- header?: () => any;
3388
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3389
- actions?: () => any;
3390
- /** Current plan; Card with Badge and Buttons. */
3391
- plan?: () => any;
3392
- /** Usage meters; Progress. */
3393
- usage?: () => any;
3394
- /** Invoices; DataTable. */
3395
- invoices?: () => any;
3396
- /** Saved cards; Card, IconTile, Badge. */
3397
- methods?: () => any;
3398
- /** Upgrade call to action; Card variant="inverse" or PricingCard. */
3399
- upgrade?: () => any;
3400
- }
3401
- export const UiPageBilling: UiVueComponent<UiPageBillingProps, UiPageBillingSlots>;
3402
-
3403
- /**
3404
- * Booking flow template: stepper, the active step content, back and continue buttons and a sticky summary card.
3405
- * Note: Place inside AppShell; fill only the slots you need.
3406
- * Note: Render only the active step in content. The summary stays visible on the right and goes below the step under 860 px.
3407
- */
3408
- export interface UiPageBookingFlowProps {
3409
- /**
3410
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3411
- * @remarks Forwarded to the inner element.
3412
- */
3413
- title?: string;
3414
- /**
3415
- * Caption under the heading.
3416
- * @remarks Forwarded to the inner element.
3417
- */
3418
- subtitle?: string;
3419
- /**
3420
- * Breadcrumb trail above the title.
3421
- * @remarks Forwarded to the inner element.
3422
- */
3423
- crumbs?: { label: string; href?: string }[];
3424
- }
3425
- export interface UiPageBookingFlowSlots {
3426
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3427
- header?: () => any;
3428
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3429
- actions?: () => any;
3430
- /** Progress; Stepper. */
3431
- steps?: () => any;
3432
- /** Content of the active step (search, pick, guests, confirm); Card, DatePicker, OptionCards, NumberInput. */
3433
- content?: () => any;
3434
- /** Back and Continue buttons. */
3435
- nav?: () => any;
3436
- /** Booking summary; Card, Descriptions. */
3437
- summary?: () => any;
3438
- }
3439
- export const UiPageBookingFlow: UiVueComponent<UiPageBookingFlowProps, UiPageBookingFlowSlots>;
3440
-
3441
- /**
3442
- * Bookings list template: stats, toolbar, bulk-action bar, table and pagination.
3443
- * Note: Place inside AppShell; fill only the slots you need.
3444
- */
3445
- export interface UiPageBookingsProps {
3446
- /**
3447
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3448
- * @remarks Forwarded to the inner element.
3449
- */
3450
- title?: string;
3451
- /**
3452
- * Caption under the heading.
3453
- * @remarks Forwarded to the inner element.
3454
- */
3455
- subtitle?: string;
3456
- /**
3457
- * Breadcrumb trail above the title.
3458
- * @remarks Forwarded to the inner element.
3459
- */
3460
- crumbs?: { label: string; href?: string }[];
3461
- }
3462
- export interface UiPageBookingsSlots {
3463
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3464
- header?: () => any;
3465
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3466
- actions?: () => any;
3467
- /** Booking figures for the period; StatsCard. */
3468
- stats?: () => any;
3469
- /** Search, quick filters and export menu above the table; SearchInput, FilterChips, Dropdown. */
3470
- toolbar?: () => any;
3471
- /** Selection bar shown when rows are selected; Alert with Buttons. Render it conditionally. */
3472
- bulk?: () => any;
3473
- /** Sortable, selectable table; DataTable. */
3474
- table?: () => any;
3475
- /** Page numbers below the table; Pagination. */
3476
- pager?: () => any;
3477
- }
3478
- export const UiPageBookings: UiVueComponent<UiPageBookingsProps, UiPageBookingsSlots>;
3479
-
3480
- /**
3481
- * Calendar template: view switch, time grid, mini calendar and event details.
3482
- * Note: Place inside AppShell; fill only the slots you need.
3483
- * Note: The grid sits beside the mini calendar and details; they stack under 860 px.
3484
- */
3485
- export interface UiPageCalendarProps {
3486
- /**
3487
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3488
- * @remarks Forwarded to the inner element.
3489
- */
3490
- title?: string;
3491
- /**
3492
- * Caption under the heading.
3493
- * @remarks Forwarded to the inner element.
3494
- */
3495
- subtitle?: string;
3496
- /**
3497
- * Breadcrumb trail above the title.
3498
- * @remarks Forwarded to the inner element.
3499
- */
3500
- crumbs?: { label: string; href?: string }[];
3501
- }
3502
- export interface UiPageCalendarSlots {
3503
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3504
- header?: () => any;
3505
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3506
- actions?: () => any;
3507
- /** SegmentedControl, Button, IconButton. */
3508
- toolbar?: () => any;
3509
- /** Time grid with events; Card with custom grid, or CalendarView for the month. */
3510
- grid?: () => any;
3511
- /** Month picker; Calendar. */
3512
- mini?: () => any;
3513
- /** Selected event; Card, Descriptions, Avatar, Button. */
3514
- details?: () => any;
3515
- }
3516
- export const UiPageCalendar: UiVueComponent<UiPageCalendarProps, UiPageCalendarSlots>;
3517
-
3518
- /**
3519
- * Catalog template with a filter sidebar and a card grid (hotels, tours).
3520
- * Note: Place inside AppShell; fill only the slots you need.
3521
- * Note: The filter column is 260 px wide; on phones put filters in a Drawer yourself.
3522
- */
3523
- export interface UiPageCatalogProps {
3524
- /**
3525
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3526
- * @remarks Forwarded to the inner element.
3527
- */
3528
- title?: string;
3529
- /**
3530
- * Caption under the heading.
3531
- * @remarks Forwarded to the inner element.
3532
- */
3533
- subtitle?: string;
3534
- /**
3535
- * Breadcrumb trail above the title.
3536
- * @remarks Forwarded to the inner element.
3537
- */
3538
- crumbs?: { label: string; href?: string }[];
3539
- }
3540
- export interface UiPageCatalogSlots {
3541
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3542
- header?: () => any;
3543
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3544
- actions?: () => any;
3545
- /** Left filter column (price, rating, services); Slider, Rating, RadioGroup, Checkbox. */
3546
- filters?: () => any;
3547
- /** Search, view switch and sort above the grid; SearchInput, ToggleGroup, Select. */
3548
- toolbar?: () => any;
3549
- /** Responsive grid of cards; HotelCard or TourCard. */
3550
- grid?: () => any;
3551
- /** Pagination at the bottom; Pagination. */
3552
- pager?: () => any;
3553
- }
3554
- export const UiPageCatalog: UiVueComponent<UiPageCatalogProps, UiPageCatalogSlots>;
3555
-
3556
- /**
3557
- * Changelog template: release timeline grouped by version with new, fix and improved tags, a filter and a subscribe card.
3558
- * Note: Place inside AppShell; fill only the slots you need.
3559
- * Note: Filters and timeline share the main column; the subscribe card is a sticky side column.
3560
- */
3561
- export interface UiPageChangelogProps {
3562
- /**
3563
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3564
- * @remarks Forwarded to the inner element.
3565
- */
3566
- title?: string;
3567
- /**
3568
- * Caption under the heading.
3569
- * @remarks Forwarded to the inner element.
3570
- */
3571
- subtitle?: string;
3572
- /**
3573
- * Breadcrumb trail above the title.
3574
- * @remarks Forwarded to the inner element.
3575
- */
3576
- crumbs?: { label: string; href?: string }[];
3577
- }
3578
- export interface UiPageChangelogSlots {
3579
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3580
- header?: () => any;
3581
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3582
- actions?: () => any;
3583
- /** Tag filter; FilterChips, SearchInput. */
3584
- filters?: () => any;
3585
- /** Releases grouped by version; Card, Chip, Divider. */
3586
- timeline?: () => any;
3587
- /** Sticky subscribe card; Card, TextField, Button. */
3588
- subscribe?: () => any;
3589
- }
3590
- export const UiPageChangelog: UiVueComponent<UiPageChangelogProps, UiPageChangelogSlots>;
3591
-
3592
- /**
3593
- * Checkout template: step indicator, cart items, delivery address, payment and an order summary column.
3594
- * Note: Place inside AppShell; fill only the slots you need.
3595
- * Note: Summary sits in the side column and drops below the form on narrow screens.
3596
- */
3597
- export interface UiPageCheckoutProps {
3598
- /**
3599
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3600
- * @remarks Forwarded to the inner element.
3601
- */
3602
- title?: string;
3603
- /**
3604
- * Caption under the heading.
3605
- * @remarks Forwarded to the inner element.
3606
- */
3607
- subtitle?: string;
3608
- /**
3609
- * Breadcrumb trail above the title.
3610
- * @remarks Forwarded to the inner element.
3611
- */
3612
- crumbs?: { label: string; href?: string }[];
3613
- }
3614
- export interface UiPageCheckoutSlots {
3615
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3616
- header?: () => any;
3617
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3618
- actions?: () => any;
3619
- /** Checkout steps above the content; Stepper. */
3620
- steps?: () => any;
3621
- /** Cart lines with quantity and price; Card with NumberInput. */
3622
- items?: () => any;
3623
- /** Contact and delivery fields; Card with TextField and Select. */
3624
- address?: () => any;
3625
- /** Payment method and card fields; OptionCards, TextField. */
3626
- payment?: () => any;
3627
- /** Totals, promo code and the pay button; Card, Descriptions, Button. */
3628
- summary?: () => any;
3629
- }
3630
- export const UiPageCheckout: UiVueComponent<UiPageCheckoutProps, UiPageCheckoutSlots>;
3631
-
3632
- /**
3633
- * CRM template: summary tiles, filters, pipeline board and call queue.
3634
- * Note: Place inside AppShell; fill only the slots you need.
3635
- */
3636
- export interface UiPageCrmProps {
3637
- /**
3638
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3639
- * @remarks Forwarded to the inner element.
3640
- */
3641
- title?: string;
3642
- /**
3643
- * Caption under the heading.
3644
- * @remarks Forwarded to the inner element.
3645
- */
3646
- subtitle?: string;
3647
- /**
3648
- * Breadcrumb trail above the title.
3649
- * @remarks Forwarded to the inner element.
3650
- */
3651
- crumbs?: { label: string; href?: string }[];
3652
- }
3653
- export interface UiPageCrmSlots {
3654
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3655
- header?: () => any;
3656
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3657
- actions?: () => any;
3658
- /** Tiles above the board (leads, amount, conversion, overdue); StatsCard or KpiTile. */
3659
- summary?: () => any;
3660
- /** Status tabs, search and period switch; Tabs, SearchInput, SegmentedControl, FilterChips. */
3661
- filters?: () => any;
3662
- /** Stage columns with deal cards; PipelineBoard, KanbanColumn, DealCard. */
3663
- board?: () => any;
3664
- /** Recent call queue; CallRow, CallCard, IncomingCall. */
3665
- calls?: () => any;
3666
- }
3667
- export const UiPageCrm: UiVueComponent<UiPageCrmProps, UiPageCrmSlots>;
3668
-
3669
- /**
3670
- * Dashboard template: greeting hero, KPI tiles, occupancy chart, sales funnel, top list and activity feed.
3671
- * Note: Place inside AppShell; fill only the slots you need.
3672
- * Note: hero and kpis share a row, as do occupancy/funnel and top/activity; they wrap on narrow screens.
3673
- */
3674
- export interface UiPageDashboardProps {
3675
- /**
3676
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3677
- * @remarks Forwarded to the inner element.
3678
- */
3679
- title?: string;
3680
- /**
3681
- * Caption under the heading.
3682
- * @remarks Forwarded to the inner element.
3683
- */
3684
- subtitle?: string;
3685
- /**
3686
- * Breadcrumb trail above the title.
3687
- * @remarks Forwarded to the inner element.
3688
- */
3689
- crumbs?: { label: string; href?: string }[];
3690
- }
3691
- export interface UiPageDashboardSlots {
3692
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3693
- header?: () => any;
3694
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3695
- actions?: () => any;
3696
- /** Large greeting/plan block; Card variant="inverse" with Ring and a Button. */
3697
- hero?: () => any;
3698
- /** Four key figures; KpiTile, StatsCard or KpiInline. */
3699
- kpis?: () => any;
3700
- /** Per-day occupancy chart; OccupancyChart or MiniChart. */
3701
- occupancy?: () => any;
3702
- /** Inquiry-to-payment funnel; SalesFunnel. */
3703
- funnel?: () => any;
3704
- /** Revenue leaderboard; DataTable with Progress share bars. */
3705
- top?: () => any;
3706
- /** Recent actions, newest first; Timeline. */
3707
- activity?: () => any;
3708
- }
3709
- export const UiPageDashboard: UiVueComponent<UiPageDashboardProps, UiPageDashboardSlots>;
3710
-
3711
- /**
3712
- * Detail page template (hotel, tour): gallery, summary, tabs, history and a booking side card.
3713
- * Note: Place inside AppShell; fill only the slots you need.
3714
- * Note: gallery, summary, tabs and history are the main column; booking is the side column.
3715
- */
3716
- export interface UiPageDetailProps {
3717
- /**
3718
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3719
- * @remarks Forwarded to the inner element.
3720
- */
3721
- title?: string;
3722
- /**
3723
- * Caption under the heading.
3724
- * @remarks Forwarded to the inner element.
3725
- */
3726
- subtitle?: string;
3727
- /**
3728
- * Breadcrumb trail above the title.
3729
- * @remarks Forwarded to the inner element.
3730
- */
3731
- crumbs?: { label: string; href?: string }[];
3732
- }
3733
- export interface UiPageDetailSlots {
3734
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3735
- header?: () => any;
3736
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3737
- actions?: () => any;
3738
- /** Main photo with thumbnails; Gallery, Carousel, LazyImage. */
3739
- gallery?: () => any;
3740
- /** Name, stars, rating, badges; Card with Badge and Rating. */
3741
- summary?: () => any;
3742
- /** Description, amenities, reviews; Tabs with Descriptions or Accordion. */
3743
- tabs?: () => any;
3744
- /** What changed (status, notes, price); Timeline. */
3745
- history?: () => any;
3746
- /** Right-hand booking card with dates, guests, price and CTA; Card, Select, NumberInput, Button. */
3747
- booking?: () => any;
3748
- }
3749
- export const UiPageDetail: UiVueComponent<UiPageDetailProps, UiPageDetailSlots>;
3750
-
3751
- /**
3752
- * Help center template: search, categories, answers accordion and a contact block.
3753
- * Note: Place inside AppShell; fill only the slots you need.
3754
- */
3755
- export interface UiPageFaqProps {
3756
- /**
3757
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3758
- * @remarks Forwarded to the inner element.
3759
- */
3760
- title?: string;
3761
- /**
3762
- * Caption under the heading.
3763
- * @remarks Forwarded to the inner element.
3764
- */
3765
- subtitle?: string;
3766
- /**
3767
- * Breadcrumb trail above the title.
3768
- * @remarks Forwarded to the inner element.
3769
- */
3770
- crumbs?: { label: string; href?: string }[];
3771
- }
3772
- export interface UiPageFaqSlots {
3773
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3774
- header?: () => any;
3775
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3776
- actions?: () => any;
3777
- /** Large search field; SearchInput. */
3778
- search?: () => any;
3779
- /** Category list on the left; vertical PillTabs. */
3780
- cats?: () => any;
3781
- /** Answers on the right; Accordion. */
3782
- answers?: () => any;
3783
- /** Contact cards below; Card, IconTile, Button. */
3784
- contact?: () => any;
3785
- }
3786
- export const UiPageFaq: UiVueComponent<UiPageFaqProps, UiPageFaqSlots>;
3787
-
3788
- /**
3789
- * Create/edit form template: main column, media, side column and header actions.
3790
- * Note: Place inside AppShell; fill only the slots you need.
3791
- */
3792
- export interface UiPageFormProps {
3793
- /**
3794
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3795
- * @remarks Forwarded to the inner element.
3796
- */
3797
- title?: string;
3798
- /**
3799
- * Caption under the heading.
3800
- * @remarks Forwarded to the inner element.
3801
- */
3802
- subtitle?: string;
3803
- /**
3804
- * Breadcrumb trail above the title.
3805
- * @remarks Forwarded to the inner element.
3806
- */
3807
- crumbs?: { label: string; href?: string }[];
3808
- }
3809
- export interface UiPageFormSlots {
3810
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3811
- header?: () => any;
3812
- /** Discard, Save draft and Publish buttons in the top-right of the built-in header; Button. Rendered right-aligned on their own when title is not set. */
3813
- actions?: () => any;
3814
- /** Main column cards (info, options); Card, TextField, Textarea. */
3815
- main?: () => any;
3816
- /** Below main; upload dropzone; FileUpload or Gallery. */
3817
- media?: () => any;
3818
- /** Side column cards (price, status, tags); Card, NumberInput, Select, ChipInput. */
3819
- side?: () => any;
3820
- }
3821
- export const UiPageForm: UiVueComponent<UiPageFormProps, UiPageFormSlots>;
3822
-
3823
- /**
3824
- * Group manager template: trip summary, pilgrims table with document and visa status, bulk actions, rooming and a sticky payments summary.
3825
- * Note: Place inside AppShell; fill only the slots you need.
3826
- * Note: The payments card stays visible on the right and goes below the table under 860 px.
3827
- */
3828
- export interface UiPageGroupManagerProps {
3829
- /**
3830
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3831
- * @remarks Forwarded to the inner element.
3832
- */
3833
- title?: string;
3834
- /**
3835
- * Caption under the heading.
3836
- * @remarks Forwarded to the inner element.
3837
- */
3838
- subtitle?: string;
3839
- /**
3840
- * Breadcrumb trail above the title.
3841
- * @remarks Forwarded to the inner element.
3842
- */
3843
- crumbs?: { label: string; href?: string }[];
3844
- }
3845
- export interface UiPageGroupManagerSlots {
3846
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3847
- header?: () => any;
3848
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3849
- actions?: () => any;
3850
- /** Trip header with dates, route and counters; Card, StatStrip, Progress. */
3851
- trip?: () => any;
3852
- /** Search and status filters; SearchInput, FilterChips. */
3853
- toolbar?: () => any;
3854
- /** Actions for the selected pilgrims; Button, Badge. */
3855
- bulk?: () => any;
3856
- /** Pilgrims table with documents and visa; Card, DataTable, Badge. */
3857
- pilgrims?: () => any;
3858
- /** Rooming assignment; Card, RoomGrid. */
3859
- rooms?: () => any;
3860
- /** Payments summary and manager contact; Card, Progress, ContactPanel. */
3861
- payments?: () => any;
3862
- }
3863
- export const UiPageGroupManager: UiVueComponent<UiPageGroupManagerProps, UiPageGroupManagerSlots>;
3864
-
3865
- /** Page title block with optional breadcrumbs, subtitle and an actions area. */
3866
- export interface UiPageHeaderProps {
3867
- /** Page title (rendered as h1). */
3868
- title: string;
3869
- /** Secondary text below the title. */
3870
- subtitle?: string;
3871
- /** Breadcrumb items shown above the title. */
3872
- crumbs?: { label: string; href?: string }[];
3873
- /**
3874
- * Title and subtitle size.
3875
- * @default 'md'
3876
- */
3877
- size?: Size;
3878
- }
3879
- export interface UiPageHeaderSlots {
3880
- /** Right side of the header, usually buttons. */
3881
- actions?: () => any;
3882
- }
3883
- export const UiPageHeader: UiVueComponent<UiPageHeaderProps, UiPageHeaderSlots>;
3884
-
3885
- /**
3886
- * Help center home: search, category grid, popular articles and a contact card.
3887
- * Note: Place inside AppShell; fill only the slots you need.
3888
- * Note: Popular articles and contact share a row and wrap on narrow screens. For a single question list use PageFaq.
3889
- */
3890
- export interface UiPageHelpProps {
3891
- /**
3892
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3893
- * @remarks Forwarded to the inner element.
3894
- */
3895
- title?: string;
3896
- /**
3897
- * Caption under the heading.
3898
- * @remarks Forwarded to the inner element.
3899
- */
3900
- subtitle?: string;
3901
- /**
3902
- * Breadcrumb trail above the title.
3903
- * @remarks Forwarded to the inner element.
3904
- */
3905
- crumbs?: { label: string; href?: string }[];
3906
- }
3907
- export interface UiPageHelpSlots {
3908
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3909
- header?: () => any;
3910
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3911
- actions?: () => any;
3912
- /** Large search field; SearchInput. */
3913
- search?: () => any;
3914
- /** Category tiles; Card with IconTile. */
3915
- categories?: () => any;
3916
- /** Popular articles list; Card. */
3917
- popular?: () => any;
3918
- /** Contact options; Card, Button. */
3919
- contact?: () => any;
3920
- }
3921
- export const UiPageHelp: UiVueComponent<UiPageHelpProps, UiPageHelpSlots>;
3922
-
3923
- /**
3924
- * Inbox template: filters and conversation list, the open thread with a composer, and a customer panel.
3925
- * Note: Place inside AppShell; fill only the slots you need.
3926
- * Note: List, thread and customer panel sit side by side and stack in that order at 860px and below. Keep the selected conversation in your own state.
3927
- */
3928
- export interface UiPageInboxProps {
3929
- /**
3930
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3931
- * @remarks Forwarded to the inner element.
3932
- */
3933
- title?: string;
3934
- /**
3935
- * Caption under the heading.
3936
- * @remarks Forwarded to the inner element.
3937
- */
3938
- subtitle?: string;
3939
- /**
3940
- * Breadcrumb trail above the title.
3941
- * @remarks Forwarded to the inner element.
3942
- */
3943
- crumbs?: { label: string; href?: string }[];
3944
- }
3945
- export interface UiPageInboxSlots {
3946
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3947
- header?: () => any;
3948
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3949
- actions?: () => any;
3950
- /** Search and folder chips above the list; SearchInput, FilterChips. */
3951
- filters?: () => any;
3952
- /** Conversation rows with unread marks; Card, Avatar, Badge. */
3953
- list?: () => any;
3954
- /** Messages of the open conversation; Card, Avatar. */
3955
- thread?: () => any;
3956
- /** Reply field and send button; Textarea, Button. */
3957
- composer?: () => any;
3958
- /** Customer details; ContactPanel, Descriptions, Tag. */
3959
- customer?: () => any;
3960
- }
3961
- export const UiPageInbox: UiVueComponent<UiPageInboxProps, UiPageInboxSlots>;
3962
-
3963
- /**
3964
- * Integrations template: connection cards, API keys and webhooks.
3965
- * Note: Place inside AppShell; fill only the slots you need.
3966
- * Note: Keys and webhooks share a row and wrap on narrow screens.
3967
- */
3968
- export interface UiPageIntegrationsProps {
3969
- /**
3970
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
3971
- * @remarks Forwarded to the inner element.
3972
- */
3973
- title?: string;
3974
- /**
3975
- * Caption under the heading.
3976
- * @remarks Forwarded to the inner element.
3977
- */
3978
- subtitle?: string;
3979
- /**
3980
- * Breadcrumb trail above the title.
3981
- * @remarks Forwarded to the inner element.
3982
- */
3983
- crumbs?: { label: string; href?: string }[];
3984
- }
3985
- export interface UiPageIntegrationsSlots {
3986
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
3987
- header?: () => any;
3988
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
3989
- actions?: () => any;
3990
- /** SearchInput, FilterChips. */
3991
- filters?: () => any;
3992
- /** IntegrationCard grid. */
3993
- connections?: () => any;
3994
- /** Keys; DataTable with CopyButton and IconButton. */
3995
- keys?: () => any;
3996
- /** Webhooks list; Card, Switch, Chip. */
3997
- webhooks?: () => any;
3998
- }
3999
- export const UiPageIntegrations: UiVueComponent<UiPageIntegrationsProps, UiPageIntegrationsSlots>;
4000
-
4001
- /**
4002
- * Itinerary template: day tabs, a timeline of stops for the chosen day, transport and hotel blocks and a sticky trip summary card.
4003
- * Note: Place inside AppShell; fill only the slots you need.
4004
- * Note: Render only the active day in timeline, transport and hotel. The summary stays visible on the right and goes below the day under 860 px.
4005
- */
4006
- export interface UiPageItineraryProps {
4007
- /**
4008
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4009
- * @remarks Forwarded to the inner element.
4010
- */
4011
- title?: string;
4012
- /**
4013
- * Caption under the heading.
4014
- * @remarks Forwarded to the inner element.
4015
- */
4016
- subtitle?: string;
4017
- /**
4018
- * Breadcrumb trail above the title.
4019
- * @remarks Forwarded to the inner element.
4020
- */
4021
- crumbs?: { label: string; href?: string }[];
4022
- }
4023
- export interface UiPageItinerarySlots {
4024
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4025
- header?: () => any;
4026
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4027
- actions?: () => any;
4028
- /** Day switcher; Tabs or PillTabs. */
4029
- days?: () => any;
4030
- /** Stops of the active day with times and places; Card, Timeline, StatRow. */
4031
- timeline?: () => any;
4032
- /** Flights, buses and transfers of the day; Card, StatRow. */
4033
- transport?: () => any;
4034
- /** Where the group stays that night; Card, Badge, IconTile. */
4035
- hotel?: () => any;
4036
- /** Trip summary; Card, Descriptions, Progress. */
4037
- summary?: () => any;
4038
- }
4039
- export const UiPageItinerary: UiVueComponent<UiPageItineraryProps, UiPageItinerarySlots>;
4040
-
4041
- /**
4042
- * Kanban template: filters, task board columns and a card detail panel.
4043
- * Note: Place inside AppShell; fill only the slots you need.
4044
- * Note: Board scrolls horizontally inside its area; detail goes below it under 860 px.
4045
- */
4046
- export interface UiPageKanbanProps {
4047
- /**
4048
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4049
- * @remarks Forwarded to the inner element.
4050
- */
4051
- title?: string;
4052
- /**
4053
- * Caption under the heading.
4054
- * @remarks Forwarded to the inner element.
4055
- */
4056
- subtitle?: string;
4057
- /**
4058
- * Breadcrumb trail above the title.
4059
- * @remarks Forwarded to the inner element.
4060
- */
4061
- crumbs?: { label: string; href?: string }[];
4062
- }
4063
- export interface UiPageKanbanSlots {
4064
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4065
- header?: () => any;
4066
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4067
- actions?: () => any;
4068
- /** SearchInput, FilterChips, Select. */
4069
- filters?: () => any;
4070
- /** Columns with cards; KanbanColumn, KanbanCard. */
4071
- board?: () => any;
4072
- /** Selected card; Card, Descriptions, Checkbox, Timeline. */
4073
- detail?: () => any;
4074
- }
4075
- export const UiPageKanban: UiVueComponent<UiPageKanbanProps, UiPageKanbanSlots>;
4076
-
4077
- /**
4078
- * Landing template: hero, logo strip, features, social proof, pricing teaser, call to action and footer. Used without the app shell.
4079
- * Note: Landing does not use the app shell: render it on its own page. Blocks stack in one column; each block may use its own grid and wraps on narrow screens.
4080
- */
4081
- export interface UiPageLandingProps {
4082
-
4083
- }
4084
- export interface UiPageLandingSlots {
4085
- /** Hero block; HeroBanner, Card, Button. */
4086
- hero?: () => any;
4087
- /** Partner row; Chip or Text. */
4088
- logos?: () => any;
4089
- /** Feature cards; Card, IconTile. */
4090
- features?: () => any;
4091
- /** Numbers and quotes; StatStrip, Card, Avatar. */
4092
- proof?: () => any;
4093
- /** Plan cards; PricingCard. */
4094
- pricing?: () => any;
4095
- /** Closing block; Card variant="gradient", Button. */
4096
- cta?: () => any;
4097
- /** Page footer; Footer. */
4098
- footer?: () => any;
4099
- }
4100
- export const UiPageLanding: UiVueComponent<UiPageLandingProps, UiPageLandingSlots>;
4101
-
4102
- /**
4103
- * Legal document template: last-updated line, sticky table of contents, numbered sections and a contact card.
4104
- * Note: Place inside AppShell; fill only the slots you need.
4105
- * Note: The table of contents sits left of the document and stacks above it under 860 px.
4106
- */
4107
- export interface UiPageLegalProps {
4108
- /**
4109
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4110
- * @remarks Forwarded to the inner element.
4111
- */
4112
- title?: string;
4113
- /**
4114
- * Caption under the heading.
4115
- * @remarks Forwarded to the inner element.
4116
- */
4117
- subtitle?: string;
4118
- /**
4119
- * Breadcrumb trail above the title.
4120
- * @remarks Forwarded to the inner element.
4121
- */
4122
- crumbs?: { label: string; href?: string }[];
4123
- }
4124
- export interface UiPageLegalSlots {
4125
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4126
- header?: () => any;
4127
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4128
- actions?: () => any;
4129
- /** Version, last-updated date and print or download buttons; Chip, Button. */
4130
- meta?: () => any;
4131
- /** Sticky table of contents; Card with anchor links. */
4132
- toc?: () => any;
4133
- /** Document sections; Card, Heading, Text. */
4134
- document?: () => any;
4135
- /** Questions card; Card, Button. */
4136
- contact?: () => any;
4137
- }
4138
- export const UiPageLegal: UiVueComponent<UiPageLegalProps, UiPageLegalSlots>;
4139
-
4140
- /**
4141
- * Locations template: filters, a scrollable list of places and a sticky map panel.
4142
- * Note: Place inside AppShell; fill only the slots you need.
4143
- * Note: The list is a fixed-width column left of the map; under 860 px the map goes below the list.
4144
- */
4145
- export interface UiPageLocationsProps {
4146
- /**
4147
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4148
- * @remarks Forwarded to the inner element.
4149
- */
4150
- title?: string;
4151
- /**
4152
- * Caption under the heading.
4153
- * @remarks Forwarded to the inner element.
4154
- */
4155
- subtitle?: string;
4156
- /**
4157
- * Breadcrumb trail above the title.
4158
- * @remarks Forwarded to the inner element.
4159
- */
4160
- crumbs?: { label: string; href?: string }[];
4161
- }
4162
- export interface UiPageLocationsSlots {
4163
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4164
- header?: () => any;
4165
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4166
- actions?: () => any;
4167
- /** Search and category filters; SearchInput, FilterChips. */
4168
- filters?: () => any;
4169
- /** Places list; Card rows. */
4170
- list?: () => any;
4171
- /** Map panel; Map, or a gradient placeholder. */
4172
- map?: () => any;
4173
- }
4174
- export const UiPageLocations: UiVueComponent<UiPageLocationsProps, UiPageLocationsSlots>;
4175
-
4176
- /**
4177
- * Notifications template: filters, a feed grouped by day and an empty state. Put Mark all read in actions.
4178
- * Note: Place inside AppShell; fill only the slots you need.
4179
- * Note: Fill empty only when the feed has no rows. Mark all read goes in the actions slot.
4180
- */
4181
- export interface UiPageNotificationsProps {
4182
- /**
4183
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4184
- * @remarks Forwarded to the inner element.
4185
- */
4186
- title?: string;
4187
- /**
4188
- * Caption under the heading.
4189
- * @remarks Forwarded to the inner element.
4190
- */
4191
- subtitle?: string;
4192
- /**
4193
- * Breadcrumb trail above the title.
4194
- * @remarks Forwarded to the inner element.
4195
- */
4196
- crumbs?: { label: string; href?: string }[];
4197
- }
4198
- export interface UiPageNotificationsSlots {
4199
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4200
- header?: () => any;
4201
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4202
- actions?: () => any;
4203
- /** Filter chips such as all, unread and mentions; FilterChips. */
4204
- filters?: () => any;
4205
- /** Notification rows grouped by day; Card, IconTile, Badge, Divider. */
4206
- feed?: () => any;
4207
- /** Shown instead of the feed when nothing matches; EmptyState. */
4208
- empty?: () => any;
4209
- }
4210
- export const UiPageNotifications: UiVueComponent<UiPageNotificationsProps, UiPageNotificationsSlots>;
4211
-
4212
- /**
4213
- * Onboarding template: progress block, active step content, setup checklist and a column of tips.
4214
- * Note: Place inside AppShell; fill only the slots you need.
4215
- * Note: Keep the active step in your own state; the template does not switch steps. Steps and checklist share the main column, tips go to the side and stack below it on narrow screens.
4216
- */
4217
- export interface UiPageOnboardingProps {
4218
- /**
4219
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4220
- * @remarks Forwarded to the inner element.
4221
- */
4222
- title?: string;
4223
- /**
4224
- * Caption under the heading.
4225
- * @remarks Forwarded to the inner element.
4226
- */
4227
- subtitle?: string;
4228
- /**
4229
- * Breadcrumb trail above the title.
4230
- * @remarks Forwarded to the inner element.
4231
- */
4232
- crumbs?: { label: string; href?: string }[];
4233
- }
4234
- export interface UiPageOnboardingSlots {
4235
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4236
- header?: () => any;
4237
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4238
- actions?: () => any;
4239
- /** Stepper and a completion bar above the content; Stepper, Progress. */
4240
- progress?: () => any;
4241
- /** Content of the active step; Card with form fields. */
4242
- steps?: () => any;
4243
- /** Remaining setup tasks; Card with Checkbox rows. */
4244
- checklist?: () => any;
4245
- /** Side column with help cards; Card, IconTile, Button. */
4246
- tips?: () => any;
4247
- }
4248
- export const UiPageOnboarding: UiVueComponent<UiPageOnboardingProps, UiPageOnboardingSlots>;
4249
-
4250
- /**
4251
- * Order/booking details template: status chips, items table, timeline and side info cards.
4252
- * Note: Place inside AppShell; fill only the slots you need.
4253
- */
4254
- export interface UiPageOrderProps {
4255
- /**
4256
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4257
- * @remarks Forwarded to the inner element.
4258
- */
4259
- title?: string;
4260
- /**
4261
- * Caption under the heading.
4262
- * @remarks Forwarded to the inner element.
4263
- */
4264
- subtitle?: string;
4265
- /**
4266
- * Breadcrumb trail above the title.
4267
- * @remarks Forwarded to the inner element.
4268
- */
4269
- crumbs?: { label: string; href?: string }[];
4270
- }
4271
- export interface UiPageOrderSlots {
4272
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4273
- header?: () => any;
4274
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4275
- actions?: () => any;
4276
- /** Payment and fulfillment chips; Chip (tone success, warning, danger). */
4277
- status?: () => any;
4278
- /** Items table with totals; DataTable. */
4279
- items?: () => any;
4280
- /** Event timeline; Timeline. */
4281
- shipping?: () => any;
4282
- /** Customer, address and payment cards; UserCell, Descriptions, Button. */
4283
- side?: () => any;
4284
- }
4285
- export const UiPageOrder: UiVueComponent<UiPageOrderProps, UiPageOrderSlots>;
4286
-
4287
- /**
4288
- * Showcase template combining twelve recurring dashboard card patterns (banner, strips, stat lines, charts, lists).
4289
- * Note: Place inside AppShell; fill only the slots you need.
4290
- */
4291
- export interface UiPagePatternsProps {
4292
1906
  /**
4293
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
1907
+ * Large text on the media panel; photo and tint.
4294
1908
  * @remarks Forwarded to the inner element.
4295
1909
  */
4296
- title?: string;
1910
+ headline?: string;
4297
1911
  /**
4298
- * Caption under the heading.
1912
+ * Small text on the media panel or glass bar.
4299
1913
  * @remarks Forwarded to the inner element.
4300
1914
  */
4301
- subtitle?: string;
1915
+ caption?: string;
4302
1916
  /**
4303
- * Breadcrumb trail above the title.
1917
+ * Bottom line of the media panel; photo only.
4304
1918
  * @remarks Forwarded to the inner element.
4305
1919
  */
4306
- crumbs?: { label: string; href?: string }[];
4307
- }
4308
- export interface UiPagePatternsSlots {
4309
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4310
- header?: () => any;
4311
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4312
- actions?: () => any;
4313
- /** Large banner; HeroBanner. */
4314
- hero?: () => any;
4315
- /** One card with four metrics; StatStrip with IconTile. */
4316
- strip?: () => any;
4317
- /** Row of toned stat lines; StatLine (tone brand, sky, success, warning, danger). */
4318
- statlines?: () => any;
4319
- /** Titled chart with menu and period select; ChartCard with PillSelect and OccupancyChart or MiniChart. */
4320
- chartcard?: () => any;
4321
- /** Selectable tiles plus an add tile; TabTiles. */
4322
- tiles?: () => any;
4323
- /** Icon, title and value rows; StatRow. */
4324
- listrows?: () => any;
4325
- /** Country amount rows; CountryRow. */
4326
- countries?: () => any;
4327
- /** Two values with a share bar; VersusBar. */
4328
- versus?: () => any;
4329
- /** Composition bar with legend; SegBar. */
4330
- segbar?: () => any;
4331
- /** Timeline of events; Timeline. */
4332
- activity?: () => any;
4333
- /** Card with collapse, refresh and close actions; ActionCard. */
4334
- actioncard?: () => any;
4335
- }
4336
- export const UiPagePatterns: UiVueComponent<UiPagePatternsProps, UiPagePatternsSlots>;
4337
-
4338
- /**
4339
- * Prayer times template: a location picker, today's times with the next prayer highlighted, a month table and a sticky Qibla compass.
4340
- * Note: Place inside AppShell; fill only the slots you need.
4341
- * Note: The Qibla card stays visible on the right and goes below the times under 860 px.
4342
- */
4343
- export interface UiPagePrayerProps {
1920
+ quote?: string;
4344
1921
  /**
4345
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
1922
+ * Pill labels in the glass bar; light and tint.
4346
1923
  * @remarks Forwarded to the inner element.
4347
1924
  */
4348
- title?: string;
1925
+ chips?: string[];
4349
1926
  /**
4350
- * Caption under the heading.
1927
+ * Avatars on the media panel or in the proof pill.
4351
1928
  * @remarks Forwarded to the inner element.
4352
1929
  */
4353
- subtitle?: string;
1930
+ people?: { name: string; src?: string }[];
4354
1931
  /**
4355
- * Breadcrumb trail above the title.
1932
+ * Social-proof title under the form; light and tint.
4356
1933
  * @remarks Forwarded to the inner element.
4357
1934
  */
4358
- crumbs?: { label: string; href?: string }[];
4359
- }
4360
- export interface UiPagePrayerSlots {
4361
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4362
- header?: () => any;
4363
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4364
- actions?: () => any;
4365
- /** City and method pickers; Select, PillSelect, SegmentedControl. */
4366
- location?: () => any;
4367
- /** Today's prayers and the countdown to the next one; Card, PrayerTimes. */
4368
- today?: () => any;
4369
- /** Prayer times for the whole month; Card, DataTable. */
4370
- month?: () => any;
4371
- /** Qibla direction; Card, QiblaCompass. */
4372
- qibla?: () => any;
4373
- }
4374
- export const UiPagePrayer: UiVueComponent<UiPagePrayerProps, UiPagePrayerSlots>;
4375
-
4376
- /**
4377
- * Pricing template: billing-period toggle, plan cards and an FAQ.
4378
- * Note: Place inside AppShell; fill only the slots you need.
4379
- */
4380
- export interface UiPagePricingProps {
1935
+ proof?: string;
4381
1936
  /**
4382
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
1937
+ * Second line of the proof pill.
4383
1938
  * @remarks Forwarded to the inner element.
4384
1939
  */
4385
- title?: string;
1940
+ proofHint?: string;
4386
1941
  /**
4387
- * Caption under the heading.
1942
+ * Form heading.
4388
1943
  * @remarks Forwarded to the inner element.
4389
1944
  */
4390
- subtitle?: string;
1945
+ title?: string;
4391
1946
  /**
4392
- * Breadcrumb trail above the title.
1947
+ * Text under the heading.
4393
1948
  * @remarks Forwarded to the inner element.
4394
1949
  */
4395
- crumbs?: { label: string; href?: string }[];
1950
+ subtitle?: string;
4396
1951
  }
4397
- export interface UiPagePricingSlots {
4398
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4399
- header?: () => any;
4400
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4401
- actions?: () => any;
4402
- /** Monthly/annual switch with a savings badge; Switch, Chip. */
4403
- toggle?: () => any;
4404
- /** Plan cards, one marked featured; PricingCard. */
4405
- plans?: () => any;
4406
- /** Questions accordion; Accordion. */
4407
- faq?: () => any;
1952
+ export interface UiPageAuthSlots {
1953
+ /** Decorative glows behind the card; card layout only. */
1954
+ background?: () => any;
1955
+ /** Logo above the heading. */
1956
+ logo?: () => any;
1957
+ /** Brand panel on the left; split layout only, hidden below 820 px. */
1958
+ aside?: () => any;
1959
+ /** Sign-in fields and button; LoginForm, TextField, PasswordInput, CodeInput, Button. */
1960
+ form?: () => any;
1961
+ /** Links such as help, create account, back to login. */
1962
+ footer?: () => any;
4408
1963
  }
4409
- export const UiPagePricing: UiVueComponent<UiPagePricingProps, UiPagePricingSlots>;
1964
+ export const UiPageAuth: UiVueComponent<UiPageAuthProps, UiPageAuthSlots>;
4410
1965
 
4411
1966
  /**
4412
- * User profile template: cover header, tabs and two columns of about, activity and plan cards.
1967
+ * Dashboard template: greeting hero, KPI tiles, occupancy chart, sales funnel, top list and activity feed.
4413
1968
  * Note: Place inside AppShell; fill only the slots you need.
1969
+ * Note: hero and kpis share a row, as do occupancy/funnel and top/activity; they wrap on narrow screens.
4414
1970
  */
4415
- export interface UiPageProfileProps {
1971
+ export interface UiPageDashboardProps {
4416
1972
  /**
4417
1973
  * Page heading. The built-in header renders only when title is set and the header slot is empty.
4418
1974
  * @remarks Forwarded to the inner element.
@@ -4429,30 +1985,51 @@ export interface UiPageProfileProps {
4429
1985
  */
4430
1986
  crumbs?: { label: string; href?: string }[];
4431
1987
  }
4432
- export interface UiPageProfileSlots {
1988
+ export interface UiPageDashboardSlots {
4433
1989
  /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4434
1990
  header?: () => any;
4435
1991
  /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4436
1992
  actions?: () => any;
4437
- /** Cover with avatar, name and meta; ProfileHeader. */
4438
- profile?: () => any;
4439
- /** Section tabs; PillTabs. */
4440
- tabs?: () => any;
4441
- /** Left column key-value info; Card with Descriptions. */
4442
- about?: () => any;
4443
- /** Right column activity feed; Timeline. */
1993
+ /** Large greeting/plan block; Card variant="inverse" with Ring and a Button. */
1994
+ hero?: () => any;
1995
+ /** Four key figures; KpiTile, StatsCard or KpiInline. */
1996
+ kpis?: () => any;
1997
+ /** Per-day occupancy chart; OccupancyChart or MiniChart. */
1998
+ occupancy?: () => any;
1999
+ /** Inquiry-to-payment funnel; SalesFunnel. */
2000
+ funnel?: () => any;
2001
+ /** Revenue leaderboard; DataTable with Progress share bars. */
2002
+ top?: () => any;
2003
+ /** Recent actions, newest first; Timeline. */
4444
2004
  activity?: () => any;
4445
- /** Right column plan card and upgrade button; Card, Badge, Progress, Button. */
4446
- plan?: () => any;
4447
2005
  }
4448
- export const UiPageProfile: UiVueComponent<UiPageProfileProps, UiPageProfileSlots>;
2006
+ export const UiPageDashboard: UiVueComponent<UiPageDashboardProps, UiPageDashboardSlots>;
2007
+
2008
+ /** Page title block with optional breadcrumbs, subtitle and an actions area. */
2009
+ export interface UiPageHeaderProps {
2010
+ /** Page title (rendered as h1). */
2011
+ title: string;
2012
+ /** Secondary text below the title. */
2013
+ subtitle?: string;
2014
+ /** Breadcrumb items shown above the title. */
2015
+ crumbs?: { label: string; href?: string }[];
2016
+ /**
2017
+ * Title and subtitle size.
2018
+ * @default 'md'
2019
+ */
2020
+ size?: Size;
2021
+ }
2022
+ export interface UiPageHeaderSlots {
2023
+ /** Right side of the header, usually buttons. */
2024
+ actions?: () => any;
2025
+ }
2026
+ export const UiPageHeader: UiVueComponent<UiPageHeaderProps, UiPageHeaderSlots>;
4449
2027
 
4450
2028
  /**
4451
- * Search template: query field, filter sidebar, result groups and an empty state.
2029
+ * Pricing template: billing-period toggle, plan cards and an FAQ.
4452
2030
  * Note: Place inside AppShell; fill only the slots you need.
4453
- * Note: Filters sit left of the results and stack above them under 860 px. Fill empty only when there are no results.
4454
2031
  */
4455
- export interface UiPageSearchProps {
2032
+ export interface UiPagePricingProps {
4456
2033
  /**
4457
2034
  * Page heading. The built-in header renders only when title is set and the header slot is empty.
4458
2035
  * @remarks Forwarded to the inner element.
@@ -4469,21 +2046,19 @@ export interface UiPageSearchProps {
4469
2046
  */
4470
2047
  crumbs?: { label: string; href?: string }[];
4471
2048
  }
4472
- export interface UiPageSearchSlots {
2049
+ export interface UiPagePricingSlots {
4473
2050
  /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4474
2051
  header?: () => any;
4475
2052
  /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4476
2053
  actions?: () => any;
4477
- /** SearchInput, Tabs. */
4478
- search?: () => any;
4479
- /** Filters; Card, Checkbox, Select. */
4480
- filters?: () => any;
4481
- /** Result groups; Card, Chip, Divider. */
4482
- results?: () => any;
4483
- /** Shown only when there are no results; EmptyState. */
4484
- empty?: () => any;
2054
+ /** Monthly/annual switch with a savings badge; Switch, Chip. */
2055
+ toggle?: () => any;
2056
+ /** Plan cards, one marked featured; PricingCard. */
2057
+ plans?: () => any;
2058
+ /** Questions accordion; Accordion. */
2059
+ faq?: () => any;
4485
2060
  }
4486
- export const UiPageSearch: UiVueComponent<UiPageSearchProps, UiPageSearchSlots>;
2061
+ export const UiPagePricing: UiVueComponent<UiPagePricingProps, UiPagePricingSlots>;
4487
2062
 
4488
2063
  /**
4489
2064
  * Settings template with a section sub-navigation and stacked settings sections.
@@ -4524,50 +2099,6 @@ export interface UiPageSettingsSlots {
4524
2099
  }
4525
2100
  export const UiPageSettings: UiVueComponent<UiPageSettingsProps, UiPageSettingsSlots>;
4526
2101
 
4527
- /**
4528
- * State gallery: empty list, no results, no permission, offline, error with retry, loading and success on one page.
4529
- * Note: Place inside AppShell; fill only the slots you need.
4530
- * Note: The first six slots sit in two rows of auto-fit cards; success spans the full width.
4531
- */
4532
- export interface UiPageStatesProps {
4533
- /**
4534
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4535
- * @remarks Forwarded to the inner element.
4536
- */
4537
- title?: string;
4538
- /**
4539
- * Caption under the heading.
4540
- * @remarks Forwarded to the inner element.
4541
- */
4542
- subtitle?: string;
4543
- /**
4544
- * Breadcrumb trail above the title.
4545
- * @remarks Forwarded to the inner element.
4546
- */
4547
- crumbs?: { label: string; href?: string }[];
4548
- }
4549
- export interface UiPageStatesSlots {
4550
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4551
- header?: () => any;
4552
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4553
- actions?: () => any;
4554
- /** Empty list; EmptyState with a primary action. */
4555
- empty?: () => any;
4556
- /** No search results; EmptyState with a reset action. */
4557
- noresults?: () => any;
4558
- /** No permission; EmptyState with a request-access action. */
4559
- forbidden?: () => any;
4560
- /** Offline; DataState state="offline". */
4561
- offline?: () => any;
4562
- /** Error with retry; DataState state="error". */
4563
- error?: () => any;
4564
- /** Loading; Skeleton or DataState state="loading". */
4565
- loading?: () => any;
4566
- /** Success confirmation; Alert tone="success" or EmptyState. */
4567
- success?: () => any;
4568
- }
4569
- export const UiPageStates: UiVueComponent<UiPageStatesProps, UiPageStatesSlots>;
4570
-
4571
2102
  /**
4572
2103
  * Full-page status screen (404, 401, maintenance, coming soon) with one action.
4573
2104
  * Note: Slots replace only their own part: fill message and the preset code and button remain; kind, title, description, onAction and actionLabel apply to the parts whose slot is empty.
@@ -4625,86 +2156,6 @@ export interface UiPageStatusSlots {
4625
2156
  }
4626
2157
  export const UiPageStatus: UiVueComponent<UiPageStatusProps, UiPageStatusSlots>;
4627
2158
 
4628
- /**
4629
- * Team template: member stats, members table, roles and permissions matrix, and an invite form.
4630
- * Note: Place inside AppShell; fill only the slots you need.
4631
- * Note: Members and roles share the main column; the invite form is the side column.
4632
- */
4633
- export interface UiPageTeamProps {
4634
- /**
4635
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4636
- * @remarks Forwarded to the inner element.
4637
- */
4638
- title?: string;
4639
- /**
4640
- * Caption under the heading.
4641
- * @remarks Forwarded to the inner element.
4642
- */
4643
- subtitle?: string;
4644
- /**
4645
- * Breadcrumb trail above the title.
4646
- * @remarks Forwarded to the inner element.
4647
- */
4648
- crumbs?: { label: string; href?: string }[];
4649
- }
4650
- export interface UiPageTeamSlots {
4651
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4652
- header?: () => any;
4653
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4654
- actions?: () => any;
4655
- /** Counters; KpiTile, StatsCard. */
4656
- stats?: () => any;
4657
- /** Members; DataTable with UserCell, Select, Badge. */
4658
- members?: () => any;
4659
- /** Permissions matrix; DataTable with Checkbox cells. */
4660
- roles?: () => any;
4661
- /** Invite form; Card, TextField, Select, Button. */
4662
- invite?: () => any;
4663
- }
4664
- export const UiPageTeam: UiVueComponent<UiPageTeamProps, UiPageTeamSlots>;
4665
-
4666
- /**
4667
- * Public tour page: header, gradient gallery area, highlights, itinerary accordion, included and excluded lists, reviews and a sticky price and booking card. Has no shell and follows the theme.
4668
- * Note: Render the page on its own, without AppShell: it supplies its own width and padding in your layout.
4669
- * Note: The booking card stays visible on the right and goes below the content under 860 px.
4670
- */
4671
- export interface UiPageTourPublicProps {
4672
- /**
4673
- * Page heading. The built-in header renders only when title is set and the header slot is empty.
4674
- * @remarks Forwarded to the inner element.
4675
- */
4676
- title?: string;
4677
- /**
4678
- * Caption under the heading.
4679
- * @remarks Forwarded to the inner element.
4680
- */
4681
- subtitle?: string;
4682
- /**
4683
- * Breadcrumb trail above the title.
4684
- * @remarks Forwarded to the inner element.
4685
- */
4686
- crumbs?: { label: string; href?: string }[];
4687
- }
4688
- export interface UiPageTourPublicSlots {
4689
- /** Custom page header; replaces the built-in title/subtitle/crumbs header. */
4690
- header?: () => any;
4691
- /** Buttons on the right of the built-in header. With a title they sit beside it; without a title they render alone, right-aligned (unless the header slot is filled). */
4692
- actions?: () => any;
4693
- /** Hero area made of gradients or photos; Gallery, Card. */
4694
- gallery?: () => any;
4695
- /** Key facts and highlights; StatStrip, IconTile. */
4696
- highlights?: () => any;
4697
- /** Day by day program; Accordion. */
4698
- itinerary?: () => any;
4699
- /** What the price includes and excludes; Card, Descriptions. */
4700
- included?: () => any;
4701
- /** Pilgrim reviews; Card, Rating, Avatar. */
4702
- reviews?: () => any;
4703
- /** Price, dates, seats and the booking button; Card, Button. */
4704
- booking?: () => any;
4705
- }
4706
- export const UiPageTourPublic: UiVueComponent<UiPageTourPublicProps, UiPageTourPublicSlots>;
4707
-
4708
2159
  /**
4709
2160
  * User or customer list template: stats, filters, toolbar, table and a right-hand add/edit drawer.
4710
2161
  * Note: Place inside AppShell; fill only the slots you need.
@@ -4902,43 +2353,6 @@ export interface UiPhoneInputProps {
4902
2353
  export interface UiPhoneInputSlots {}
4903
2354
  export const UiPhoneInput: UiVueComponent<UiPhoneInputProps, UiPhoneInputSlots>;
4904
2355
 
4905
- /**
4906
- * Small pill-shaped dropdown button. Use for inline filters and sort controls in toolbars.
4907
- * Note: The menu closes on outside click and on Escape.
4908
- */
4909
- export interface UiPillSelectProps {
4910
- /** Value of the selected option. */
4911
- modelValue?: string | number;
4912
- /** Alias of modelValue, used when modelValue is not set. */
4913
- value?: string | number;
4914
- /**
4915
- * Available options. A missing list renders an empty menu. An option with disabled: true cannot be chosen.
4916
- * @default []
4917
- */
4918
- options?: { value: string | number; label: string; disabled?: boolean }[];
4919
- /** Shown when value matches no option. */
4920
- placeholder?: string;
4921
- /**
4922
- * Disables the control.
4923
- * @default false
4924
- */
4925
- disabled?: boolean;
4926
- /**
4927
- * Pill height and font size.
4928
- * @default 'md'
4929
- */
4930
- size?: Size;
4931
- /**
4932
- * Called with the value of the chosen option.
4933
- * @event change
4934
- */
4935
- onChange?: (value: string | number) => void;
4936
- /** v-model update. Emitted together with `change`. */
4937
- 'onUpdate:modelValue'?: (value: string | number) => void;
4938
- }
4939
- export interface UiPillSelectSlots {}
4940
- export const UiPillSelect: UiVueComponent<UiPillSelectProps, UiPillSelectSlots>;
4941
-
4942
2356
  /**
4943
2357
  * Pill-style tab buttons with optional icons, horizontal or vertical; use for settings and profile sections.
4944
2358
  * Note: Renders only the tab buttons; you show the matching panel yourself.
@@ -4970,32 +2384,6 @@ export interface UiPillTabsProps {
4970
2384
  export interface UiPillTabsSlots {}
4971
2385
  export const UiPillTabs: UiVueComponent<UiPillTabsProps, UiPillTabsSlots>;
4972
2386
 
4973
- /**
4974
- * Horizontally scrolling kanban pipeline of stage columns filled with DealCards.
4975
- * Note: Drag and drop is enabled only when a move handler is passed; without it the board renders and behaves as before.
4976
- * Note: Uses HTML5 drag and drop (mouse and desktop browsers); there is no keyboard alternative, so also offer a stage select on the card if you need one.
4977
- * Note: Cards are fixed to DealCard; for custom cards compose KanbanColumn and KanbanCard.
4978
- */
4979
- export interface UiPipelineBoardProps {
4980
- /**
4981
- * Columns in order; cards take the DealCard props (title, stage, tone, amount, probability, owner, due). The column count badge is cards.length. Give cards an id so onMove can report which one moved (the index is used otherwise).
4982
- * @default []
4983
- */
4984
- stages?: { id: string | number; title: string; cards: UiDealCardProps[] }[];
4985
- /**
4986
- * Scales padding, text and avatars.
4987
- * @default 'md'
4988
- */
4989
- size?: Size;
4990
- /**
4991
- * Called with { id, from, to } (card id, source stage id, target stage id) when a card is dropped on another stage. The board does not reorder itself: update stages in your state.
4992
- * @event move
4993
- */
4994
- onMove?: (move: { id: string | number; from: string | number; to: string | number }) => void;
4995
- }
4996
- export interface UiPipelineBoardSlots {}
4997
- export const UiPipelineBoard: UiVueComponent<UiPipelineBoardProps, UiPipelineBoardSlots>;
4998
-
4999
2387
  /**
5000
2388
  * Button that opens a small confirmation popover with cancel/confirm buttons (No/Yes by default); use for quick inline confirmation of a single action.
5001
2389
  * Note: Open state is internal. The popover closes on outside click and on Escape.
@@ -5067,24 +2455,6 @@ export interface UiPortalSlots {
5067
2455
  }
5068
2456
  export const UiPortal: UiVueComponent<UiPortalProps, UiPortalSlots>;
5069
2457
 
5070
- /** Row of daily prayer times with the upcoming prayer highlighted. */
5071
- export interface UiPrayerTimesProps {
5072
- /**
5073
- * Prayers in display order; time is shown as-is, e.g. "05:12".
5074
- * @default []
5075
- */
5076
- items?: { name: string; time: string }[];
5077
- /** Index in items of the next prayer; sets aria-current on it. */
5078
- next?: number;
5079
- /**
5080
- * Scales padding, text and avatars.
5081
- * @default 'md'
5082
- */
5083
- size?: Size;
5084
- }
5085
- export interface UiPrayerTimesSlots {}
5086
- export const UiPrayerTimes: UiVueComponent<UiPrayerTimesProps, UiPrayerTimesSlots>;
5087
-
5088
2458
  /**
5089
2459
  * Unstyled pressable wrapper that makes any content a button with press feedback.
5090
2460
  * Note: For a non-button tag add role and keyboard handling yourself.
@@ -5114,65 +2484,6 @@ export interface UiPressableSlots {
5114
2484
  }
5115
2485
  export const UiPressable: UiVueComponent<UiPressableProps, UiPressableSlots>;
5116
2486
 
5117
- /** Pricing plan card with price, feature list and a select button. */
5118
- export interface UiPricingCardProps {
5119
- /** Plan name. */
5120
- name: string;
5121
- /** Price text, shown large. */
5122
- price: string | number;
5123
- /** Suffix after the price, such as "/mo". */
5124
- period?: string;
5125
- /**
5126
- * Feature bullets with check icons.
5127
- * @default []
5128
- */
5129
- features?: string[];
5130
- /** Brand badge next to the name, such as "Popular". */
5131
- badge?: string;
5132
- /**
5133
- * Highlights the card and makes the button primary.
5134
- * @default false
5135
- */
5136
- featured?: boolean;
5137
- /**
5138
- * Button label.
5139
- * @default 'Choose'
5140
- */
5141
- cta?: string;
5142
- /**
5143
- * Card padding and title size.
5144
- * @default 'md'
5145
- */
5146
- size?: Size;
5147
- /**
5148
- * Called when the button is clicked.
5149
- * @event select
5150
- */
5151
- onSelect?: () => void;
5152
- }
5153
- export interface UiPricingCardSlots {}
5154
- export const UiPricingCard: UiVueComponent<UiPricingCardProps, UiPricingCardSlots>;
5155
-
5156
- /** Profile card with a cover image, large avatar, name and a row of meta items. */
5157
- export interface UiProfileHeaderProps {
5158
- /** Person or organization name. */
5159
- name: string;
5160
- /** Avatar image URL; initials are shown without it. */
5161
- src?: string;
5162
- /** Cover image URL. */
5163
- cover?: string;
5164
- /**
5165
- * Facts under the name such as location or join date. label must be unique.
5166
- * @default []
5167
- */
5168
- meta?: { icon: string; label: string }[];
5169
- }
5170
- export interface UiProfileHeaderSlots {
5171
- /** Extra content on the right of the name row, usually action buttons. */
5172
- default?: () => any;
5173
- }
5174
- export const UiProfileHeader: UiVueComponent<UiProfileHeaderProps, UiProfileHeaderSlots>;
5175
-
5176
2487
  /**
5177
2488
  * Horizontal progress bar with optional label and meta text; use for uploads, quotas and completion.
5178
2489
  * Note: Exposes role="progressbar" with aria-valuenow; the label is not linked via aria-labelledby.
@@ -5198,32 +2509,6 @@ export interface UiProgressProps {
5198
2509
  export interface UiProgressSlots {}
5199
2510
  export const UiProgress: UiVueComponent<UiProgressProps, UiProgressSlots>;
5200
2511
 
5201
- /**
5202
- * Compass dial with a Kaaba marker pointing to the Qibla and the bearing in degrees below it.
5203
- * Note: Exposed as role="img" with a label that states the bearing. Compute the bearing and heading yourself (geolocation and DeviceOrientation); the component only draws them.
5204
- */
5205
- export interface UiQiblaCompassProps {
5206
- /**
5207
- * Qibla bearing in degrees clockwise from true north, 0 to 360; other values wrap.
5208
- * @default 0
5209
- */
5210
- bearing: number;
5211
- /**
5212
- * Direction the device points to, in degrees. The dial turns against it so the marker follows the real Qibla; 0 keeps north up.
5213
- * @default 0
5214
- */
5215
- heading?: number;
5216
- /** Optional small caption under the bearing, such as "4 210 km to the Kaaba". */
5217
- distance?: string;
5218
- /**
5219
- * Diameter: xs 120, sm 160, md 200, lg 250, xl 300 px; a number is used as px.
5220
- * @default 'md'
5221
- */
5222
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
5223
- }
5224
- export interface UiQiblaCompassSlots {}
5225
- export const UiQiblaCompass: UiVueComponent<UiQiblaCompassProps, UiQiblaCompassSlots>;
5226
-
5227
2512
  /** Group of radio options with optional hints. Use for a short single-choice list that should stay visible. */
5228
2513
  export interface UiRadioGroupProps {
5229
2514
  /** Value of the selected option. */
@@ -5274,99 +2559,6 @@ export interface UiRadioGroupProps {
5274
2559
  export interface UiRadioGroupSlots {}
5275
2560
  export const UiRadioGroup: UiVueComponent<UiRadioGroupProps, UiRadioGroupSlots>;
5276
2561
 
5277
- /**
5278
- * Thirty-day Ramadan progress strip; the last ten days and odd nights are marked.
5279
- * Note: Exposed as role="img" with aria-label "Day N of 30".
5280
- */
5281
- export interface UiRamadanTrackerProps {
5282
- /** Current day 1-30. Earlier days render as past, later days as upcoming. */
5283
- day: number;
5284
- /**
5285
- * Scales padding, text and avatars.
5286
- * @default 'md'
5287
- */
5288
- size?: Size;
5289
- }
5290
- export interface UiRamadanTrackerSlots {}
5291
- export const UiRamadanTracker: UiVueComponent<UiRamadanTrackerProps, UiRamadanTrackerSlots>;
5292
-
5293
- /**
5294
- * Month grid for picking a date range with hover preview. Use for stays, trips and report periods.
5295
- * Note: Pass modelValue to control the selection; pick a date earlier than the start to restart the range.
5296
- */
5297
- export interface UiRangeCalendarProps {
5298
- /** Controlled range [start, end]; either end may be null. Date-only ISO strings are read as local dates. When omitted the selection is kept internally. */
5299
- modelValue?: [Date | string | number | null, Date | string | number | null];
5300
- /** Month to show initially when no range is set. Does not preselect a range. */
5301
- start?: Date | string | number;
5302
- /**
5303
- * BCP 47 locale for month and weekday names.
5304
- * @default 'en-GB'
5305
- */
5306
- locale?: string;
5307
- /**
5308
- * First day of the week: 0 = Sunday, 1 = Monday.
5309
- * @default 1
5310
- */
5311
- weekStartsOn?: number;
5312
- /**
5313
- * Day cell and header size.
5314
- * @default 'md'
5315
- */
5316
- size?: Size;
5317
- /**
5318
- * Called with [start, end] Date objects. In controlled mode (modelValue set) it also fires after the first click with [start, null]; uncontrolled it fires once the second date is picked.
5319
- * @event change
5320
- */
5321
- onChange?: (range: [Date | null, Date | null]) => void;
5322
- /** v-model update. Emitted together with `change`. */
5323
- 'onUpdate:modelValue'?: (value: [Date | null, Date | null]) => void;
5324
- }
5325
- export interface UiRangeCalendarSlots {}
5326
- export const UiRangeCalendar: UiVueComponent<UiRangeCalendarProps, UiRangeCalendarSlots>;
5327
-
5328
- /** Two-handle slider for a min-max range. Use for price, duration or date-number filters. */
5329
- export interface UiRangeSliderProps {
5330
- /** Tuple [from, to]. Defaults to [min, max]. */
5331
- modelValue?: [number, number];
5332
- /**
5333
- * Lowest value.
5334
- * @default 0
5335
- */
5336
- min?: number;
5337
- /**
5338
- * Highest value.
5339
- * @default 100
5340
- */
5341
- max?: number;
5342
- /**
5343
- * Step between values.
5344
- * @default 1
5345
- */
5346
- step?: number;
5347
- /** Formats both ends in the readout. */
5348
- formatValue?: (value: number) => string;
5349
- /**
5350
- * Label shown above the control.
5351
- * @remarks Forwarded to the inner element.
5352
- */
5353
- label?: string;
5354
- /**
5355
- * Track and thumb size.
5356
- * @default 'md'
5357
- */
5358
- size?: Size;
5359
- /**
5360
- * Called with a new [from, to] tuple; the handles cannot cross.
5361
- * @event change
5362
- */
5363
- onChange?: (value: [number, number]) => void;
5364
- /** v-model update. Emitted together with `change`. */
5365
- 'onUpdate:modelValue'?: (value: [number, number]) => void;
5366
- }
5367
- export interface UiRangeSliderSlots {}
5368
- export const UiRangeSlider: UiVueComponent<UiRangeSliderProps, UiRangeSliderSlots>;
5369
-
5370
2562
  /** Star rating input. Use for reviews and quick feedback. */
5371
2563
  export interface UiRatingProps {
5372
2564
  /**
@@ -5405,46 +2597,6 @@ export interface UiRatingProps {
5405
2597
  export interface UiRatingSlots {}
5406
2598
  export const UiRating: UiVueComponent<UiRatingProps, UiRatingSlots>;
5407
2599
 
5408
- /**
5409
- * Rich text editor with a formatting toolbar, built on contenteditable. Use for formatted descriptions and notes.
5410
- * Note: The editor only rewrites its content when modelValue differs from what is already in the DOM, so the caret is kept while typing.
5411
- * Note: sanitize is a best-effort allowlist, not a full XSS guarantee: sanitize on the server too before storing or rendering the HTML elsewhere.
5412
- * Note: Toolbar: bold, italic, underline, strikethrough, alignment, lists, quote and code block.
5413
- */
5414
- export interface UiRichEditorProps {
5415
- /**
5416
- * HTML string.
5417
- * @default ''
5418
- */
5419
- modelValue?: string;
5420
- /**
5421
- * Label above the editor. Also the accessible name.
5422
- * @default 'Editor'
5423
- */
5424
- label?: string;
5425
- /** Placeholder shown when empty. Defaults to "Write something…". */
5426
- placeholder?: string;
5427
- /**
5428
- * Strip script, style, iframe, object, embed and similar tags plus on* and javascript: attributes from the emitted HTML, using a small allowlist sanitizer.
5429
- * @default false
5430
- */
5431
- sanitize?: boolean;
5432
- /**
5433
- * Control height, font and padding scale.
5434
- * @default 'md'
5435
- */
5436
- size?: Size;
5437
- /**
5438
- * Called with the editor innerHTML on every edit or toolbar action (sanitized when sanitize is set).
5439
- * @event change
5440
- */
5441
- onChange?: (value: string) => void;
5442
- /** v-model update. Emitted together with `change`. */
5443
- 'onUpdate:modelValue'?: (value: string) => void;
5444
- }
5445
- export interface UiRichEditorSlots {}
5446
- export const UiRichEditor: UiVueComponent<UiRichEditorProps, UiRichEditorSlots>;
5447
-
5448
2600
  /** Circular progress gauge with a percentage in the center and a tick scale around it. */
5449
2601
  export interface UiRingProps {
5450
2602
  /**
@@ -5477,106 +2629,6 @@ export interface UiRingProps {
5477
2629
  export interface UiRingSlots {}
5478
2630
  export const UiRing: UiVueComponent<UiRingProps, UiRingSlots>;
5479
2631
 
5480
- /**
5481
- * Gantt-style occupancy calendar: rooms as rows, days as columns, bookings as bars.
5482
- * Note: Day headers are plain numbers 1..days; offset them yourself for a month view.
5483
- */
5484
- export interface UiRoomCalendarProps {
5485
- /**
5486
- * Rooms with their bookings; from is the zero-based day index of check-in, nights its length. guest is the cell tooltip.
5487
- * @default []
5488
- */
5489
- rooms?: { no: string; bookings?: { from: number; nights: number; guest: string }[] }[];
5490
- /**
5491
- * Number of day columns, labelled 1..days.
5492
- * @default 14
5493
- */
5494
- days?: number;
5495
- /**
5496
- * Scales padding, text and avatars.
5497
- * @default 'md'
5498
- */
5499
- size?: Size;
5500
- }
5501
- export interface UiRoomCalendarSlots {}
5502
- export const UiRoomCalendar: UiVueComponent<UiRoomCalendarProps, UiRoomCalendarSlots>;
5503
-
5504
- /**
5505
- * Tile grid of rooms colored by housekeeping status; use for front-desk room selection.
5506
- * Note: Each tile is a button; status is conveyed by color only, so add a legend.
5507
- */
5508
- export interface UiRoomGridProps {
5509
- /**
5510
- * Rooms; no is the room number and the unique key, type is the room class label, status sets the tile color (any other value renders neutral).
5511
- * @default []
5512
- */
5513
- rooms?: { no: string; type: string; status: "occupied" | "clean" | "dirty" | "blocked" }[];
5514
- /**
5515
- * Maps a room status to a tile tone. Merged over the defaults, so you can add custom statuses (e.g. { maintenance: "sky" }) or recolor known ones. Statuses without a tone render neutral.
5516
- * @default { occupied: 'brand', clean: 'success', dirty: 'warning', blocked: 'danger' }
5517
- */
5518
- statusTones?: Record<string, 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'>;
5519
- /**
5520
- * Scales padding, text and avatars.
5521
- * @default 'md'
5522
- */
5523
- size?: Size;
5524
- /**
5525
- * Called with the room number (room.no) of the clicked tile.
5526
- * @event select
5527
- */
5528
- onSelect?: (no: string) => void;
5529
- }
5530
- export interface UiRoomGridSlots {}
5531
- export const UiRoomGrid: UiVueComponent<UiRoomGridProps, UiRoomGridSlots>;
5532
-
5533
- /** Horizontal funnel of steps with bars scaled to the largest value, for conversion flows. */
5534
- export interface UiSalesFunnelProps {
5535
- /**
5536
- * Steps from top to bottom. Bars scale to the max value; the last step is highlighted in brand color.
5537
- * @default []
5538
- */
5539
- steps: { label: string; value: number }[];
5540
- }
5541
- export interface UiSalesFunnelSlots {}
5542
- export const UiSalesFunnel: UiVueComponent<UiSalesFunnelProps, UiSalesFunnelSlots>;
5543
-
5544
- /**
5545
- * Full-screen idle screen with a large clock, date and the brand mark; show it after inactivity.
5546
- * Note: The clock re-renders from one interval created when the screensaver opens and cleared when it closes; the idle timer is re-armed on each interaction. Nothing runs during server rendering.
5547
- */
5548
- export interface UiScreensaverProps {
5549
- /**
5550
- * Shows the screensaver when true; renders nothing when false.
5551
- * @default false
5552
- */
5553
- open?: boolean;
5554
- /**
5555
- * BCP 47 locale for the date line.
5556
- * @default 'en-GB'
5557
- */
5558
- locale?: string;
5559
- /** Small hint under the date, e.g. "Tap to continue". */
5560
- hint?: string;
5561
- /**
5562
- * When greater than 0 and the screensaver is closed, a hidden sentinel listens for pointer, key, wheel and touch activity and calls idle after this many milliseconds without any. 0 disables it.
5563
- * @default 0
5564
- */
5565
- idleMs?: number;
5566
- /**
5567
- * Called on click or any key (including Escape) while open.
5568
- * @event close
5569
- */
5570
- onClose?: () => void;
5571
- /**
5572
- * Called once the idleMs period passes without activity while closed; set open to true in the handler.
5573
- * @event idle
5574
- */
5575
- onIdle?: () => void;
5576
- }
5577
- export interface UiScreensaverSlots {}
5578
- export const UiScreensaver: UiVueComponent<UiScreensaverProps, UiScreensaverSlots>;
5579
-
5580
2632
  /** Vertically scrollable container with a max height and styled scrollbar. */
5581
2633
  export interface UiScrollAreaProps {
5582
2634
  /**
@@ -5624,17 +2676,6 @@ export interface UiSearchInputProps {
5624
2676
  export interface UiSearchInputSlots {}
5625
2677
  export const UiSearchInput: UiVueComponent<UiSearchInputProps, UiSearchInputSlots>;
5626
2678
 
5627
- /** Single stacked bar split into proportional segments with a legend, for distributions. */
5628
- export interface UiSegBarProps {
5629
- /**
5630
- * Segments; widths are value / sum of values. color is any CSS color; the default cycles brand, sky, green, amber, red.
5631
- * @default []
5632
- */
5633
- segments: { label: string; value: number; color?: string }[];
5634
- }
5635
- export interface UiSegBarSlots {}
5636
- export const UiSegBar: UiVueComponent<UiSegBarProps, UiSegBarSlots>;
5637
-
5638
2679
  /** Segmented switch for choosing exactly one of a few options. */
5639
2680
  export interface UiSegmentedControlProps {
5640
2681
  /**
@@ -5954,33 +2995,6 @@ export interface UiSocialAuthProps {
5954
2995
  export interface UiSocialAuthSlots {}
5955
2996
  export const UiSocialAuth: UiVueComponent<UiSocialAuthProps, UiSocialAuthSlots>;
5956
2997
 
5957
- /**
5958
- * Drag-and-drop reorderable list with grip handles and up/down buttons.
5959
- * Note: Controlled: the parent must store the array from change and pass it back as items.
5960
- * Note: Keyboard-friendly reordering is available through the up/down buttons.
5961
- */
5962
- export interface UiSortableProps {
5963
- /**
5964
- * Items in current order. id is used as the key, falling back to the index.
5965
- * @default []
5966
- */
5967
- items: { id?: string | number; label: string }[];
5968
- /** Custom item renderer. Defaults to the bold item label. */
5969
- render?: (item: any, index: any) => VNode;
5970
- /**
5971
- * Row padding, gap and font size.
5972
- * @default 'md'
5973
- */
5974
- size?: Size;
5975
- /**
5976
- * Called with the reordered items array after a drop or up/down click.
5977
- * @event change
5978
- */
5979
- onChange?: (items: any[]) => void;
5980
- }
5981
- export interface UiSortableSlots {}
5982
- export const UiSortable: UiVueComponent<UiSortableProps, UiSortableSlots>;
5983
-
5984
2998
  /**
5985
2999
  * Inline loading indicator; use inside buttons, cards or next to a loading label.
5986
3000
  * Note: Has role="status" and aria-label="Loading".
@@ -5992,93 +3006,27 @@ export interface UiSpinnerProps {
5992
3006
  */
5993
3007
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
5994
3008
  }
5995
- export interface UiSpinnerSlots {}
5996
- export const UiSpinner: UiVueComponent<UiSpinnerProps, UiSpinnerSlots>;
5997
-
5998
- /**
5999
- * Two-column layout with configurable column widths; use for master-detail or side-by-side content.
6000
- * Note: Exactly two columns; extra children beyond the second are ignored.
6001
- */
6002
- export interface UiSplitLayoutProps {
6003
- /**
6004
- * CSS grid-template-columns value, for example "280px 1fr".
6005
- * @default 1fr 1fr
6006
- */
6007
- columns?: string;
6008
- }
6009
- export interface UiSplitLayoutSlots {
6010
- /** First column. Falls back to the first child. */
6011
- left?: () => any;
6012
- /** Second column. Falls back to the second child. */
6013
- right?: () => any;
6014
- }
6015
- export const UiSplitLayout: UiVueComponent<UiSplitLayoutProps, UiSplitLayoutSlots>;
6016
-
6017
- /** Card with a large value, icon tile, label and an accent bar, for a single headline number. */
6018
- export interface UiStatLineProps {
6019
- /** Metric name under the value. */
6020
- label: string;
6021
- /** Main value. */
6022
- value: string | number;
6023
- /** Icon name for the tile. */
6024
- icon?: string;
6025
- /**
6026
- * Accent color of the tile and bar. Unknown values fall back to brand.
6027
- * @default 'brand'
6028
- */
6029
- tone?: Tone;
6030
- /** Change indicator such as "+12%" or "-3.4%". A leading "-" renders as a decrease, anything else as an increase. */
6031
- delta?: string;
6032
- /**
6033
- * Icon tile size. Named sizes map to 28/34/40/48/56 px; a number is used in px.
6034
- * @default 'md'
6035
- */
6036
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
6037
- }
6038
- export interface UiStatLineSlots {}
6039
- export const UiStatLine: UiVueComponent<UiStatLineProps, UiStatLineSlots>;
6040
-
6041
- /** List row with an icon tile, title, subtitle and a right-aligned value with delta. */
6042
- export interface UiStatRowProps {
6043
- /** Primary text. */
6044
- title: string;
6045
- /** Muted secondary text. */
6046
- sub?: string;
6047
- /** Right-aligned value. */
6048
- value?: string | number;
6049
- /** Change shown under the value. A leading "-" is a decrease; the sign is stripped and an arrow added. */
6050
- delta?: string;
6051
- /** Icon name for the leading tile. */
6052
- icon?: string;
6053
- /**
6054
- * Color of the icon tile. Unknown values fall back to brand.
6055
- * @default 'brand'
6056
- */
6057
- tone?: Tone;
6058
- /**
6059
- * Row height and icon tile size. Named sizes map to a 28/34/40/48/56 px tile; a number is used as the tile size in px.
6060
- * @default 'md'
6061
- */
6062
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
6063
- }
6064
- export interface UiStatRowSlots {}
6065
- export const UiStatRow: UiVueComponent<UiStatRowProps, UiStatRowSlots>;
3009
+ export interface UiSpinnerSlots {}
3010
+ export const UiSpinner: UiVueComponent<UiSpinnerProps, UiSpinnerSlots>;
6066
3011
 
6067
- /** Horizontal strip of several icon, value and label stats in one card. */
6068
- export interface UiStatStripProps {
6069
- /**
6070
- * Stats shown side by side. tone defaults to brand.
6071
- * @default []
6072
- */
6073
- items: { icon?: string; tone?: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'; value: string | number; label: string }[];
3012
+ /**
3013
+ * Two-column layout with configurable column widths; use for master-detail or side-by-side content.
3014
+ * Note: Exactly two columns; extra children beyond the second are ignored.
3015
+ */
3016
+ export interface UiSplitLayoutProps {
6074
3017
  /**
6075
- * Icon tile size. Named sizes map to 30/36/44/52/60 px; a number is used in px.
6076
- * @default 'md'
3018
+ * CSS grid-template-columns value, for example "280px 1fr".
3019
+ * @default 1fr 1fr
6077
3020
  */
6078
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
3021
+ columns?: string;
3022
+ }
3023
+ export interface UiSplitLayoutSlots {
3024
+ /** First column. Falls back to the first child. */
3025
+ left?: () => any;
3026
+ /** Second column. Falls back to the second child. */
3027
+ right?: () => any;
6079
3028
  }
6080
- export interface UiStatStripSlots {}
6081
- export const UiStatStrip: UiVueComponent<UiStatStripProps, UiStatStripSlots>;
3029
+ export const UiSplitLayout: UiVueComponent<UiSplitLayoutProps, UiSplitLayoutSlots>;
6082
3030
 
6083
3031
  /** Metric card with an optional icon, value and an up or down trend. */
6084
3032
  export interface UiStatsCardProps {
@@ -6179,100 +3127,6 @@ export interface UiStatusPageSlots {
6179
3127
  }
6180
3128
  export const UiStatusPage: UiVueComponent<UiStatusPageProps, UiStatusPageSlots>;
6181
3129
 
6182
- /**
6183
- * Wide Modal with a vertical step list on the left and Previous/Next buttons; use for multi-step wizards.
6184
- * Note: You own the current index: update it in the back and next handlers.
6185
- * Note: Has aria-modal. Escape calls close; on open focus moves into the dialog, Tab is trapped inside it and focus returns to the previously focused element on close.
6186
- */
6187
- export interface UiStepDialogProps {
6188
- /**
6189
- * Shows the dialog when true; renders nothing when false.
6190
- * @default false
6191
- */
6192
- open?: boolean;
6193
- /** Header text and aria-label. */
6194
- title?: string;
6195
- /**
6196
- * Steps in the left rail; sub is a hint under the title.
6197
- * @default []
6198
- */
6199
- steps?: { title: string; sub?: string }[];
6200
- /** Zero-based index of the active step. Earlier steps are shown as done. */
6201
- current?: number;
6202
- /**
6203
- * Scale of dialog width (640 to 1100 px) and padding.
6204
- * @default 'md'
6205
- */
6206
- size?: Size;
6207
- /**
6208
- * Previous button; disabled on the first step.
6209
- * @event back
6210
- */
6211
- onBack?: () => void;
6212
- /**
6213
- * Next button; labelled "Submit" on the last step, so also handle submit here.
6214
- * @event next
6215
- */
6216
- onNext?: () => void;
6217
- /**
6218
- * Close icon, scrim click or the Escape key.
6219
- * @event close
6220
- */
6221
- onClose?: () => void;
6222
- }
6223
- export interface UiStepDialogSlots {
6224
- /** Content of the current step. */
6225
- default?: () => any;
6226
- }
6227
- export const UiStepDialog: UiVueComponent<UiStepDialogProps, UiStepDialogSlots>;
6228
-
6229
- /**
6230
- * Multi-step form shell: stepper, current step content and Back/Next buttons. Use for wizards and onboarding.
6231
- * Note: The current step is internal; Next never validates, so guard the content yourself.
6232
- */
6233
- export interface UiStepFormProps {
6234
- /**
6235
- * Steps in order. content is rendered while the step is active.
6236
- * @default []
6237
- */
6238
- steps?: { label: string; content: VNode }[];
6239
- /**
6240
- * Text of the Next button on the last step.
6241
- * @default 'Finish'
6242
- */
6243
- finishLabel?: string;
6244
- /**
6245
- * Also sets the size of the Back/Next buttons.
6246
- * @default 'md'
6247
- */
6248
- size?: Size;
6249
- /**
6250
- * Called when Next is pressed on the last step.
6251
- * @event finish
6252
- */
6253
- onFinish?: () => void;
6254
- }
6255
- export interface UiStepFormSlots {}
6256
- export const UiStepForm: UiVueComponent<UiStepFormProps, UiStepFormSlots>;
6257
-
6258
- /** Horizontal progress indicator with numbered steps. Use to show position in a multi-step flow. */
6259
- export interface UiStepperProps {
6260
- /**
6261
- * Step labels in order.
6262
- * @default []
6263
- */
6264
- steps?: string[];
6265
- /** Zero-based index of the active step. Earlier steps show a check mark. */
6266
- current: number;
6267
- /**
6268
- * Step circle and label size.
6269
- * @default 'md'
6270
- */
6271
- size?: Size;
6272
- }
6273
- export interface UiStepperSlots {}
6274
- export const UiStepper: UiVueComponent<UiStepperProps, UiStepperSlots>;
6275
-
6276
3130
  /** Compact vertical list of sections with an optional title; use for settings and secondary page navigation. */
6277
3131
  export interface UiSubNavProps {
6278
3132
  /** Small heading above the list; also the aria-label. */
@@ -6340,48 +3194,6 @@ export interface UiSwitchProps {
6340
3194
  export interface UiSwitchSlots {}
6341
3195
  export const UiSwitch: UiVueComponent<UiSwitchProps, UiSwitchSlots>;
6342
3196
 
6343
- /** List of services with a status dot and a value such as uptime or latency. */
6344
- export interface UiSystemStatusProps {
6345
- /**
6346
- * Services. state sets the color: ok green (default), warn amber, down red.
6347
- * @default []
6348
- */
6349
- items: { name: string; value: string; state?: 'ok' | 'warn' | 'down' }[];
6350
- }
6351
- export interface UiSystemStatusSlots {}
6352
- export const UiSystemStatus: UiVueComponent<UiSystemStatusProps, UiSystemStatusSlots>;
6353
-
6354
- /**
6355
- * Row of icon tiles that work as tabs, with an optional add button.
6356
- * Note: Active state is exposed as aria-pressed on buttons, not as a tablist.
6357
- */
6358
- export interface UiTabTilesProps {
6359
- /**
6360
- * Tiles. icon defaults to circle.
6361
- * @default []
6362
- */
6363
- items: { value: string; label: string; icon?: string }[];
6364
- /** Value of the active tile. Controlled; change it in the change handler. */
6365
- value?: string;
6366
- /**
6367
- * Shows a trailing plus tile that fires the add event.
6368
- * @default false
6369
- */
6370
- addable?: boolean;
6371
- /**
6372
- * Called with the value of the clicked tile.
6373
- * @event change
6374
- */
6375
- onChange?: (value: string) => void;
6376
- /**
6377
- * Called when the plus tile is clicked.
6378
- * @event add
6379
- */
6380
- onAdd?: () => void;
6381
- }
6382
- export interface UiTabTilesSlots {}
6383
- export const UiTabTiles: UiVueComponent<UiTabTilesProps, UiTabTilesSlots>;
6384
-
6385
3197
  /**
6386
3198
  * Underlined tab strip for switching between views of the same page.
6387
3199
  * Note: Renders only the tab buttons (role="tablist"); you show the matching panel yourself.
@@ -6908,188 +3720,6 @@ export interface UiTopNavSlots {
6908
3720
  }
6909
3721
  export const UiTopNav: UiVueComponent<UiTopNavProps, UiTopNavSlots>;
6910
3722
 
6911
- /**
6912
- * Guided product tour that dims the page, highlights a target element and shows a step popover.
6913
- * Note: Keyboard: ArrowRight/ArrowLeft go to the next/previous step (reversed in RTL), Escape closes. Focus is not moved, so the page stays usable.
6914
- * Note: Targets are looked up with document.querySelector and scrolled into view.
6915
- * Note: The internal step resets to 0 whenever the tour closes.
6916
- */
6917
- export interface UiTourProps {
6918
- /**
6919
- * Shows the tour when true; renders nothing when false.
6920
- * @default false
6921
- */
6922
- open?: boolean;
6923
- /**
6924
- * Steps. target is a CSS selector of the element to highlight; without it the step is shown centered over a full dim.
6925
- * @default []
6926
- */
6927
- steps?: { target?: string; title: string; text: string }[];
6928
- /** Controlled zero-based step index. When omitted the tour keeps it internally (reset to 0 on close). Update it from the step event. */
6929
- step?: number;
6930
- /**
6931
- * Called on the close icon, the Escape key and after Finish on the last step.
6932
- * @event close
6933
- */
6934
- onClose?: () => void;
6935
- /**
6936
- * Called with the new zero-based step index on Next, Back and the arrow keys.
6937
- * @event step
6938
- */
6939
- onStep?: (index: number) => void;
6940
- }
6941
- export interface UiTourSlots {}
6942
- export const UiTour: UiVueComponent<UiTourProps, UiTourSlots>;
6943
-
6944
- /**
6945
- * Tour or virtual-tour card with session count and a seat-occupancy bar.
6946
- * Note: A fixed "360°" badge is always shown.
6947
- * Note: With seats = 0 or missing the bar is empty (0%) and the meta reads "0/0".
6948
- */
6949
- export interface UiTourCardProps {
6950
- /** Tour title. */
6951
- name: string;
6952
- /** City shown in the subtitle. */
6953
- city?: string;
6954
- /** Number of sessions, shown as "N sessions". */
6955
- sessions?: number;
6956
- /** Seats already booked. */
6957
- booked: number;
6958
- /** Total seats; the bar shows booked / seats. */
6959
- seats: number;
6960
- /**
6961
- * Scales padding, text and avatars.
6962
- * @default 'md'
6963
- */
6964
- size?: Size;
6965
- }
6966
- export interface UiTourCardSlots {
6967
- /** Footer actions, usually Buttons. */
6968
- actions?: () => any;
6969
- }
6970
- export const UiTourCard: UiVueComponent<UiTourCardProps, UiTourCardSlots>;
6971
-
6972
- /** Step card of a tour with title, text, step counter and Back/Next buttons; used by Tour and usable standalone. */
6973
- export interface UiTourPopoverProps {
6974
- /** Step heading. */
6975
- title?: string;
6976
- /** Step body text. */
6977
- text?: string;
6978
- /** Counter text such as "2 / 5". */
6979
- step?: string;
6980
- /**
6981
- * Changes the Next button label to "Finish".
6982
- * @default false
6983
- */
6984
- last?: boolean;
6985
- /**
6986
- * Back button; the button is rendered only when this handler is set.
6987
- * @event back
6988
- */
6989
- onBack?: () => void;
6990
- /**
6991
- * Next or Finish button.
6992
- * @event next
6993
- */
6994
- onNext?: () => void;
6995
- /**
6996
- * Close icon.
6997
- * @event close
6998
- */
6999
- onClose?: () => void;
7000
- }
7001
- export interface UiTourPopoverSlots {}
7002
- export const UiTourPopover: UiVueComponent<UiTourPopoverProps, UiTourPopoverSlots>;
7003
-
7004
- /**
7005
- * Dropdown with a searchable tree. Use for hierarchical choices such as regions, categories or org units.
7006
- * Note: Typing in the search box expands all matching branches.
7007
- * Note: The popup closes on outside click and on Escape.
7008
- */
7009
- export interface UiTreeSelectProps {
7010
- /** id of the selected node. */
7011
- modelValue?: string | number;
7012
- /**
7013
- * Tree nodes. A node with disabled: true cannot be clicked. Top level is expanded by default.
7014
- * @default []
7015
- */
7016
- nodes?: { id: string | number; label: string; children?: any[]; disabled?: boolean }[];
7017
- /**
7018
- * Allow selecting nodes that have children. By default clicking a parent only expands it.
7019
- * @default false
7020
- */
7021
- selectGroups?: boolean;
7022
- /**
7023
- * Label shown above the control.
7024
- * @remarks Forwarded to the inner element.
7025
- */
7026
- label?: string;
7027
- /** Shown when nothing is selected. Defaults to "—". */
7028
- placeholder?: string;
7029
- /**
7030
- * Disables the control.
7031
- * @default false
7032
- */
7033
- disabled?: boolean;
7034
- /**
7035
- * Control height, font and padding scale.
7036
- * @default 'md'
7037
- */
7038
- size?: Size;
7039
- /**
7040
- * Called with the id of the chosen node.
7041
- * @event change
7042
- */
7043
- onChange?: (value: string | number) => void;
7044
- /** v-model update. Emitted together with `change`. */
7045
- 'onUpdate:modelValue'?: (value: string | number) => void;
7046
- }
7047
- export interface UiTreeSelectSlots {}
7048
- export const UiTreeSelect: UiVueComponent<UiTreeSelectProps, UiTreeSelectSlots>;
7049
-
7050
- /**
7051
- * Expandable tree of nodes for hierarchies such as folders, categories or regions.
7052
- * Note: The first level is open by default; deeper levels start collapsed.
7053
- */
7054
- export interface UiTreeViewProps {
7055
- /**
7056
- * Root nodes. children nest recursively; icon is an icon name. Ids must be unique.
7057
- * @default []
7058
- */
7059
- nodes: { id: string; label: string; icon?: string; children?: any[] }[];
7060
- /** Id of the highlighted node. */
7061
- selected?: string;
7062
- /**
7063
- * Row height and font size.
7064
- * @default 'md'
7065
- */
7066
- size?: Size;
7067
- /**
7068
- * Called with the node id when a node is clicked. Nodes with children also toggle open.
7069
- * @event select
7070
- */
7071
- onSelect?: (id: string | number) => void;
7072
- }
7073
- export interface UiTreeViewSlots {}
7074
- export const UiTreeView: UiVueComponent<UiTreeViewProps, UiTreeViewSlots>;
7075
-
7076
- /** Avatar with a name and optional subtitle, for table cells and lists of people. */
7077
- export interface UiUserCellProps {
7078
- /** Display name, also used for avatar initials. */
7079
- name: string;
7080
- /** Muted line under the name, such as an email or role. */
7081
- sub?: string;
7082
- /** Avatar image URL. Initials are shown without it. */
7083
- src?: string;
7084
- /**
7085
- * Avatar diameter: xs 24, sm 30, md 36, lg 44, xl 56 px; a number is used as px.
7086
- * @default 'md'
7087
- */
7088
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number;
7089
- }
7090
- export interface UiUserCellSlots {}
7091
- export const UiUserCell: UiVueComponent<UiUserCellProps, UiUserCellSlots>;
7092
-
7093
3723
  /** Vertical flex column with a configurable gap. */
7094
3724
  export interface UiVStackProps {
7095
3725
  /**
@@ -7132,89 +3762,6 @@ export interface UiVStackSlots {
7132
3762
  }
7133
3763
  export const UiVStack: UiVueComponent<UiVStackProps, UiVStackSlots>;
7134
3764
 
7135
- /**
7136
- * TextField (or PasswordInput) with built-in validation rules. Use for simple client-side validation without a form library.
7137
- * Note: Rules start running after the first edit, so an untouched field shows no error.
7138
- * Note: All other props are forwarded to TextField / PasswordInput.
7139
- */
7140
- export interface UiValidatedFieldProps {
7141
- /**
7142
- * Current value.
7143
- * @default ''
7144
- */
7145
- modelValue?: string;
7146
- /**
7147
- * Validators run in order; return true when valid or an error message. The first failure is shown.
7148
- * @default []
7149
- */
7150
- rules?: ((value: string) => true | string)[];
7151
- /**
7152
- * "password" renders PasswordInput, any other value is passed to TextField as the input type.
7153
- * @default 'text'
7154
- */
7155
- type?: 'text' | 'password' | string;
7156
- /** External error. Takes priority over rules. */
7157
- error?: string;
7158
- /**
7159
- * Label shown above the control.
7160
- * @remarks Forwarded to the inner element.
7161
- */
7162
- label?: string;
7163
- /**
7164
- * Placeholder text.
7165
- * @remarks Forwarded to the inner element.
7166
- */
7167
- placeholder?: string;
7168
- /**
7169
- * Helper text under the control. Hidden while error is set.
7170
- * @remarks Forwarded to the inner element.
7171
- */
7172
- hint?: string;
7173
- /**
7174
- * Leading icon name (TextField only).
7175
- * @remarks Forwarded to the inner element.
7176
- */
7177
- icon?: string;
7178
- /**
7179
- * Disables the control.
7180
- * @default false
7181
- * @remarks Forwarded to the inner element.
7182
- */
7183
- disabled?: boolean;
7184
- /**
7185
- * Control height, font and padding scale.
7186
- * @default 'md'
7187
- */
7188
- size?: Size;
7189
- /**
7190
- * Called with the new string on every keystroke.
7191
- * @event change
7192
- */
7193
- onChange?: (value: string) => void;
7194
- /** v-model update. Emitted together with `change`. */
7195
- 'onUpdate:modelValue'?: (value: string) => void;
7196
- }
7197
- export interface UiValidatedFieldSlots {}
7198
- export const UiValidatedField: UiVueComponent<UiValidatedFieldProps, UiValidatedFieldSlots>;
7199
-
7200
- /**
7201
- * Head-to-head comparison of two values with a proportional two-color bar.
7202
- * Note: A missing side renders an empty label and 0; with both at 0 the bar is split with no brand share.
7203
- */
7204
- export interface UiVersusBarProps {
7205
- /** Left side. Its share of the bar is value / (left.value + right.value) in the brand color. */
7206
- left: { label: string; value: number };
7207
- /** Right side, filling the remainder of the bar in sky. */
7208
- right: { label: string; value: number };
7209
- /**
7210
- * Value font size and bar thickness.
7211
- * @default 'md'
7212
- */
7213
- size?: Size;
7214
- }
7215
- export interface UiVersusBarSlots {}
7216
- export const UiVersusBar: UiVueComponent<UiVersusBarProps, UiVersusBarSlots>;
7217
-
7218
3765
  export const rules: typeof import('./shared').rules;
7219
3766
  export function install(app: import('vue').App): void;
7220
3767
  /** Extension API: wraps plugin component definitions like the built-in ones, registers them (C.Name cross references work) and returns { UiName: Component }. */