@ziyarago/ui 0.11.0 → 0.12.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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  > ZiyaraGo UI — glass design system for Umrah and Hajj products. OKLCH tokens, two palettes, dark and light, RTL, Thmanyah. One framework-neutral core with Vue 3, Nuxt and React adapters, 208 components and 40 page templates.
4
4
 
5
- Version 0.11.0. Docs: https://ziyara.vip . Manifest (machine readable): https://ziyara.vip/manifest.json
5
+ Version 0.12.0. Docs: https://ziyara.vip . Manifest (machine readable): https://ziyara.vip/manifest.json
6
6
 
7
7
  ## Setup
8
8
  - import { UiButton } from '@ziyarago/ui/vue'
@@ -205,7 +205,7 @@ Props:
205
205
  Slots:
206
206
  - default: Fields and controls of the section.
207
207
 
208
- ## UiLiquidGlass (layout)
208
+ ## UiLiquidGlass (layout, Pro)
209
209
  Frosted liquid-glass panel with adjustable corner radius and blur.
210
210
  Props:
211
211
  - `radius`: number | string = 24. Corner radius. Numbers are pixels.
@@ -225,7 +225,7 @@ Props:
225
225
  Slots:
226
226
  - default: Extra content after the links.
227
227
 
228
- ## UiSortable (layout)
228
+ ## UiSortable (layout, Pro)
229
229
  Drag-and-drop reorderable list with grip handles and up/down buttons.
230
230
  Props:
231
231
  - `items` (required): { id?: string | number; label: string }[] = "[]". Items in current order. id is used as the key, falling back to the index.
@@ -290,7 +290,7 @@ Events:
290
290
  Notes:
291
291
  - For a non-button tag add role and keyboard handling yourself.
292
292
 
293
- ## UiFab (actions)
293
+ ## UiFab (actions, Pro)
294
294
  Floating action button for the main action of a screen; extended when a label is given.
295
295
  Props:
296
296
  - `icon`: string = "plus". Icon name.
@@ -386,7 +386,7 @@ Slots:
386
386
  Notes:
387
387
  - Badge uses info for blue; Chip and Button use the tone name sky instead.
388
388
 
389
- ## UiActionRail (actions)
389
+ ## UiActionRail (actions, Pro)
390
390
  Floating vertical or horizontal rail of icon buttons with a highlighted active item.
391
391
  Props:
392
392
  - `items` (required): { value?: string; icon?: string; label?: string; separator?: boolean }[] = "[]". Rail entries. An item with separator: true renders a divider instead of a button.
@@ -397,7 +397,7 @@ Events:
397
397
  Notes:
398
398
  - Items other than the active one are shown as ghost buttons; label is the accessible name.
399
399
 
400
- ## UiActionCard (actions)
400
+ ## UiActionCard (actions, Pro)
401
401
  Card with a title and built-in collapse, refresh and remove controls.
402
402
  Props:
403
403
  - `title` (required): string. Card title.
@@ -415,7 +415,7 @@ Notes:
415
415
  - With collapsed set, update it from the collapse event, otherwise the card will not toggle.
416
416
  - Removing hides the card until the component is remounted; also remove it from your data on the remove event.
417
417
 
418
- ## UiNotificationBell (actions)
418
+ ## UiNotificationBell (actions, Pro)
419
419
  Bell icon button with an unread counter and a dropdown list of notifications.
420
420
  Props:
421
421
  - `items`: { id: string | number; title: string; message?: string; time?: string; read?: boolean }[] = "[]". Notifications. Items without read: true count as unread and show a dot.
@@ -570,7 +570,7 @@ Events:
570
570
  Notes:
571
571
  - Sets autocomplete="one-time-code" so mobile keyboards offer the SMS code.
572
572
 
573
- ## UiChipInput (forms)
573
+ ## UiChipInput (forms, Pro)
574
574
  Input that turns typed text into removable chips. Use for tags, keywords and email lists.
575
575
  Props:
576
576
  - `modelValue`: string[] = "[]" [v-model]. Current chips.
@@ -585,7 +585,7 @@ Events:
585
585
  Notes:
586
586
  - Enter or comma adds a chip, Backspace on empty input removes the last one. Duplicates are ignored.
587
587
 
588
- ## UiInlineEdit (forms)
588
+ ## UiInlineEdit (forms, Pro)
589
589
  Text that turns into an input on click. Use for renaming and quick edits without a form.
590
590
  Props:
591
591
  - `modelValue`: string = "" [v-model]. Current text.
@@ -594,7 +594,7 @@ Props:
594
594
  Events:
595
595
  - change: Called with the edited text on Enter or on the save button. Escape cancels.
596
596
 
597
- ## UiRichEditor (forms)
597
+ ## UiRichEditor (forms, Pro)
598
598
  Rich text editor with a formatting toolbar, built on contenteditable. Use for formatted descriptions and notes.
599
599
  Props:
600
600
  - `modelValue`: string = "" [v-model]. HTML string.
@@ -641,7 +641,7 @@ Events:
641
641
  Notes:
642
642
  - The trigger shows "N selected"; the list stays open while picking and closes on outside click or Escape.
643
643
 
644
- ## UiGroupedSelect (forms)
644
+ ## UiGroupedSelect (forms, Pro)
645
645
  Single-choice dropdown with option groups under headings. Use for long lists that have natural categories.
646
646
  Props:
647
647
  - `modelValue`: string | number [v-model]. Value of the selected option.
@@ -675,7 +675,7 @@ Notes:
675
675
  - Selecting from the list is the only way to set a value: free text is never emitted.
676
676
  - The list closes on outside click and on Escape.
677
677
 
678
- ## UiTreeSelect (forms)
678
+ ## UiTreeSelect (forms, Pro)
679
679
  Dropdown with a searchable tree. Use for hierarchical choices such as regions, categories or org units.
680
680
  Props:
681
681
  - `modelValue`: string | number [v-model]. id of the selected node.
@@ -691,7 +691,7 @@ Notes:
691
691
  - Typing in the search box expands all matching branches.
692
692
  - The popup closes on outside click and on Escape.
693
693
 
694
- ## UiPillSelect (forms)
694
+ ## UiPillSelect (forms, Pro)
695
695
  Small pill-shaped dropdown button. Use for inline filters and sort controls in toolbars.
696
696
  Props:
697
697
  - `modelValue`: string | number [v-model]. Value of the selected option.
@@ -749,7 +749,7 @@ Props:
749
749
  Events:
750
750
  - change: Called with the value of the chosen option.
751
751
 
752
- ## UiOptionCard (forms)
752
+ ## UiOptionCard (forms, Pro)
753
753
  Selectable card with title, description, price and optional image or icon. Usually rendered by OptionCards.
754
754
  Props:
755
755
  - `title`: string. Main text.
@@ -763,7 +763,7 @@ Props:
763
763
  Events:
764
764
  - click: Called when the card is pressed. Toggle checked yourself.
765
765
 
766
- ## UiOptionCards (forms)
766
+ ## UiOptionCards (forms, Pro)
767
767
  Grid of selectable OptionCards, single or multiple choice. Use for plans, room types and delivery options.
768
768
  Props:
769
769
  - `modelValue`: string | number | (string | number)[] [v-model]. Selected value, or an array of values when multiple is true.
@@ -791,7 +791,7 @@ Props:
791
791
  Events:
792
792
  - change: Called with the new number while dragging.
793
793
 
794
- ## UiRangeSlider (forms)
794
+ ## UiRangeSlider (forms, Pro)
795
795
  Two-handle slider for a min-max range. Use for price, duration or date-number filters.
796
796
  Props:
797
797
  - `modelValue`: [number, number] [v-model]. Tuple [from, to]. Defaults to [min, max].
@@ -815,7 +815,7 @@ Props:
815
815
  Events:
816
816
  - change: Called with the clicked star count (1..max). Clicking the current value does not reset it.
817
817
 
818
- ## UiColorPicker (forms)
818
+ ## UiColorPicker (forms, Pro)
819
819
  Swatch row for choosing a color from presets. Use for tags, labels and theme accents.
820
820
  Props:
821
821
  - `modelValue`: string [v-model]. Selected color, same string as in presets.
@@ -843,7 +843,7 @@ Events:
843
843
  Notes:
844
844
  - The event payload is a Date, not a string: convert to ISO yourself if the model is a string.
845
845
 
846
- ## UiRangeCalendar (forms)
846
+ ## UiRangeCalendar (forms, Pro)
847
847
  Month grid for picking a date range with hover preview. Use for stays, trips and report periods.
848
848
  Props:
849
849
  - `modelValue`: [Date | string | number | null, Date | string | number | null] [v-model]. 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.
@@ -912,7 +912,7 @@ Notes:
912
912
  - Click, Enter or Space opens the picker; files can also be dropped onto the zone, which highlights while dragging.
913
913
  - Stateless: the component does not list the chosen files, render them yourself.
914
914
 
915
- ## UiImageUpload (forms)
915
+ ## UiImageUpload (forms, Pro)
916
916
  Image picker with a live preview, square or circular. Use for avatars, covers and logos.
917
917
  Props:
918
918
  - `modelValue`: string [v-model]. Image URL or data URL to show before the user picks a new file.
@@ -939,7 +939,7 @@ Slots:
939
939
  Notes:
940
940
  - Does not link label and control by id: put the control inside a label or pass an aria-label yourself.
941
941
 
942
- ## UiValidatedField (forms)
942
+ ## UiValidatedField (forms, Pro)
943
943
  TextField (or PasswordInput) with built-in validation rules. Use for simple client-side validation without a form library.
944
944
  Props:
945
945
  - `modelValue`: string = "" [v-model]. Current value.
@@ -975,7 +975,7 @@ Notes:
975
975
  - Field values live inside the component: read them from the submit payload.
976
976
  - Translate the texts with labels; the "email" value holds an email or phone.
977
977
 
978
- ## UiStepForm (forms)
978
+ ## UiStepForm (forms, Pro)
979
979
  Multi-step form shell: stepper, current step content and Back/Next buttons. Use for wizards and onboarding.
980
980
  Props:
981
981
  - `steps`: { label: string; content: VNode }[] = "[]". Steps in order. content is rendered while the step is active.
@@ -986,7 +986,7 @@ Events:
986
986
  Notes:
987
987
  - The current step is internal; Next never validates, so guard the content yourself.
988
988
 
989
- ## UiStepper (forms)
989
+ ## UiStepper (forms, Pro)
990
990
  Horizontal progress indicator with numbered steps. Use to show position in a multi-step flow.
991
991
  Props:
992
992
  - `steps`: string[] = "[]". Step labels in order.
@@ -1035,7 +1035,7 @@ Notes:
1035
1035
  - Sorting and selection are fully controlled: the table never reorders rows or stores selection.
1036
1036
  - render receives (value, row) and, in React/Vue, the h function as third argument.
1037
1037
 
1038
- ## UiDataGroup (data)
1038
+ ## UiDataGroup (data, Pro)
1039
1039
  Table whose rows are collapsed into labeled groups, with optional per-row expandable details.
1040
1040
  Props:
1041
1041
  - `columns` (required): { key: string; label: string; num?: boolean; render?: (value, row) => VNode | string }[] = []. Column definitions, same shape as DataTable without sorting.
@@ -1057,7 +1057,7 @@ Props:
1057
1057
  - `items` (required): { title: string; text?: string; time: string }[] = []. Events from top to bottom. title is bold, text is optional detail, time is the caption.
1058
1058
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Dot, spacing and font size.
1059
1059
 
1060
- ## UiTreeView (data)
1060
+ ## UiTreeView (data, Pro)
1061
1061
  Expandable tree of nodes for hierarchies such as folders, categories or regions.
1062
1062
  Props:
1063
1063
  - `nodes` (required): { id: string; label: string; icon?: string; children?: Node[] }[] = []. Root nodes. children nest recursively; icon is an icon name. Ids must be unique.
@@ -1068,7 +1068,7 @@ Events:
1068
1068
  Notes:
1069
1069
  - The first level is open by default; deeper levels start collapsed.
1070
1070
 
1071
- ## UiCalendarView (data)
1071
+ ## UiCalendarView (data, Pro)
1072
1072
  Month calendar that marks days with events, wrapping Calendar with a list-style events prop.
1073
1073
  Props:
1074
1074
  - `events`: { date: string; label: string }[] = []. Marked days. date is "YYYY-MM-DD"; label shows as the day tooltip.
@@ -1088,7 +1088,7 @@ Props:
1088
1088
  - `variant`: 'brand' | 'inverse'. Filled brand tile or dark inverse tile. Omit for the default glass tile.
1089
1089
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Padding and value size.
1090
1090
 
1091
- ## UiKpiInline (data)
1091
+ ## UiKpiInline (data, Pro)
1092
1092
  Compact inline metric with a label, value and delta, for toolbars and card headers.
1093
1093
  Props:
1094
1094
  - `label` (required): string. Metric name.
@@ -1106,7 +1106,7 @@ Props:
1106
1106
  - `trend`: 'up' | 'down' = "up". Direction and color of the delta.
1107
1107
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Padding and value size.
1108
1108
 
1109
- ## UiStatRow (data)
1109
+ ## UiStatRow (data, Pro)
1110
1110
  List row with an icon tile, title, subtitle and a right-aligned value with delta.
1111
1111
  Props:
1112
1112
  - `title` (required): string. Primary text.
@@ -1117,7 +1117,7 @@ Props:
1117
1117
  - `tone`: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' = "brand". Color of the icon tile. Unknown values fall back to brand.
1118
1118
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number = "md". 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.
1119
1119
 
1120
- ## UiStatLine (data)
1120
+ ## UiStatLine (data, Pro)
1121
1121
  Card with a large value, icon tile, label and an accent bar, for a single headline number.
1122
1122
  Props:
1123
1123
  - `label` (required): string. Metric name under the value.
@@ -1127,13 +1127,13 @@ Props:
1127
1127
  - `delta`: string. Change indicator such as "+12%" or "-3.4%". A leading "-" renders as a decrease, anything else as an increase.
1128
1128
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number = "md". Icon tile size. Named sizes map to 28/34/40/48/56 px; a number is used in px.
1129
1129
 
1130
- ## UiStatStrip (data)
1130
+ ## UiStatStrip (data, Pro)
1131
1131
  Horizontal strip of several icon, value and label stats in one card.
1132
1132
  Props:
1133
1133
  - `items` (required): { icon?: string; tone?: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'; value: string | number; label: string }[] = []. Stats shown side by side. tone defaults to brand.
1134
1134
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number = "md". Icon tile size. Named sizes map to 30/36/44/52/60 px; a number is used in px.
1135
1135
 
1136
- ## UiCountryRow (data)
1136
+ ## UiCountryRow (data, Pro)
1137
1137
  Row with a country code badge, amount, country name and a percentage change.
1138
1138
  Props:
1139
1139
  - `code` (required): string. Short code shown in the circle, such as "UZ".
@@ -1141,7 +1141,7 @@ Props:
1141
1141
  - `amount` (required): string | number. Formatted amount shown in bold.
1142
1142
  - `pct`: string. Percentage change such as "+8%" or "-2%".
1143
1143
 
1144
- ## UiVersusBar (data)
1144
+ ## UiVersusBar (data, Pro)
1145
1145
  Head-to-head comparison of two values with a proportional two-color bar.
1146
1146
  Props:
1147
1147
  - `left` (required): { label: string; value: number }. Left side. Its share of the bar is value / (left.value + right.value) in the brand color.
@@ -1150,7 +1150,7 @@ Props:
1150
1150
  Notes:
1151
1151
  - A missing side renders an empty label and 0; with both at 0 the bar is split with no brand share.
1152
1152
 
1153
- ## UiSegBar (data)
1153
+ ## UiSegBar (data, Pro)
1154
1154
  Single stacked bar split into proportional segments with a legend, for distributions.
1155
1155
  Props:
1156
1156
  - `segments` (required): { label: string; value: number; color?: string }[] = []. Segments; widths are value / sum of values. color is any CSS color; the default cycles brand, sky, green, amber, red.
@@ -1166,7 +1166,7 @@ Props:
1166
1166
  Notes:
1167
1167
  - The chart is decorative (no axes or values); pair it with a visible number.
1168
1168
 
1169
- ## UiChartCard (data)
1169
+ ## UiChartCard (data, Pro)
1170
1170
  Card shell for a chart with title, subtitle and an optional overflow menu; put the chart in the default slot.
1171
1171
  Props:
1172
1172
  - `title` (required): string. Card title.
@@ -1189,23 +1189,23 @@ Props:
1189
1189
  - `valueSize`: number. Percentage font size in px. Defaults to 22% of the diameter.
1190
1190
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number = "md". Diameter: xs 72, sm 120, md 180, lg 240, xl 300 px; a number is used as px.
1191
1191
 
1192
- ## UiOccupancyChart (data)
1192
+ ## UiOccupancyChart (data, Pro)
1193
1193
  Bar chart of percentages by label, such as hotel occupancy per day or month.
1194
1194
  Props:
1195
1195
  - `values` (required): number[] = []. Percentages from 0 to 100, one per bar. Values above 90 are highlighted in brand color.
1196
1196
  - `labels`: string[] = []. Axis label under each bar, matched by index.
1197
1197
 
1198
- ## UiSalesFunnel (data)
1198
+ ## UiSalesFunnel (data, Pro)
1199
1199
  Horizontal funnel of steps with bars scaled to the largest value, for conversion flows.
1200
1200
  Props:
1201
1201
  - `steps` (required): { label: string; value: number }[] = []. Steps from top to bottom. Bars scale to the max value; the last step is highlighted in brand color.
1202
1202
 
1203
- ## UiSystemStatus (data)
1203
+ ## UiSystemStatus (data, Pro)
1204
1204
  List of services with a status dot and a value such as uptime or latency.
1205
1205
  Props:
1206
1206
  - `items` (required): { name: string; value: string; state?: 'ok' | 'warn' | 'down' }[] = []. Services. state sets the color: ok green (default), warn amber, down red.
1207
1207
 
1208
- ## UiUserCell (data)
1208
+ ## UiUserCell (data, Pro)
1209
1209
  Avatar with a name and optional subtitle, for table cells and lists of people.
1210
1210
  Props:
1211
1211
  - `name` (required): string. Display name, also used for avatar initials.
@@ -1231,7 +1231,7 @@ Props:
1231
1231
  Notes:
1232
1232
  - Focusable (tabindex 0) so the tooltip works from the keyboard; the icon itself is aria-hidden, so put the meaning in tip.
1233
1233
 
1234
- ## UiHeroBanner (data)
1234
+ ## UiHeroBanner (data, Pro)
1235
1235
  Wide promotional banner with title, text, a big value, optional action and a background image.
1236
1236
  Props:
1237
1237
  - `title` (required): string. Banner heading.
@@ -1244,7 +1244,7 @@ Slots:
1244
1244
  Events:
1245
1245
  - cta: Called when the call-to-action button is clicked.
1246
1246
 
1247
- ## UiTabTiles (data)
1247
+ ## UiTabTiles (data, Pro)
1248
1248
  Row of icon tiles that work as tabs, with an optional add button.
1249
1249
  Props:
1250
1250
  - `items` (required): { value: string; label: string; icon?: string }[] = []. Tiles. icon defaults to circle.
@@ -1256,7 +1256,7 @@ Events:
1256
1256
  Notes:
1257
1257
  - Active state is exposed as aria-pressed on buttons, not as a tablist.
1258
1258
 
1259
- ## UiPricingCard (data)
1259
+ ## UiPricingCard (data, Pro)
1260
1260
  Pricing plan card with price, feature list and a select button.
1261
1261
  Props:
1262
1262
  - `name` (required): string. Plan name.
@@ -1270,7 +1270,7 @@ Props:
1270
1270
  Events:
1271
1271
  - select: Called when the button is clicked.
1272
1272
 
1273
- ## UiIntegrationCard (data)
1273
+ ## UiIntegrationCard (data, Pro)
1274
1274
  Card for a third-party integration showing its connection status and a connect or manage button.
1275
1275
  Props:
1276
1276
  - `name` (required): string. Integration name.
@@ -1502,7 +1502,7 @@ Events:
1502
1502
  Notes:
1503
1503
  - Open state is internal. The popover closes on outside click and on Escape.
1504
1504
 
1505
- ## UiStepDialog (overlay)
1505
+ ## UiStepDialog (overlay, Pro)
1506
1506
  Wide Modal with a vertical step list on the left and Previous/Next buttons; use for multi-step wizards.
1507
1507
  Props:
1508
1508
  - `open`: boolean = false. Shows the dialog when true; renders nothing when false.
@@ -1520,7 +1520,7 @@ Notes:
1520
1520
  - You own the current index: update it in the back and next handlers.
1521
1521
  - 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.
1522
1522
 
1523
- ## UiFullscreenDialog (overlay)
1523
+ ## UiFullscreenDialog (overlay, Pro)
1524
1524
  Full-screen dialog with a close button, title and Save action in the header; use for long editing flows on mobile.
1525
1525
  Props:
1526
1526
  - `open`: boolean = false. Shows the dialog when true; renders nothing when false.
@@ -1550,7 +1550,7 @@ Notes:
1550
1550
  - The handle is decorative: it does not support dragging.
1551
1551
  - There is no close button; always handle close (scrim click and Escape). 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.
1552
1552
 
1553
- ## UiActionsheet (overlay)
1553
+ ## UiActionsheet (overlay, Pro)
1554
1554
  Bottom sheet with a list of actions and a Cancel button; use for mobile "more actions" menus.
1555
1555
  Props:
1556
1556
  - `open`: boolean = false. Shows the sheet when true; renders nothing when false.
@@ -1572,7 +1572,7 @@ Slots:
1572
1572
  Notes:
1573
1573
  - Open state is internal and toggled by the trigger. The panel closes on outside click and on Escape (focus returns to the trigger).
1574
1574
 
1575
- ## UiHoverCard (overlay)
1575
+ ## UiHoverCard (overlay, Pro)
1576
1576
  Rich card shown on hover or keyboard focus of a trigger; use for previews of users, links or entities.
1577
1577
  Props:
1578
1578
  - `trigger`: string | VNode. Content that triggers the card.
@@ -1631,7 +1631,7 @@ Notes:
1631
1631
  - The native context menu is prevented inside the area. Clicking outside, right-clicking again or pressing Escape closes it.
1632
1632
  - The menu is clamped to the viewport using a rough 42 px per row.
1633
1633
 
1634
- ## UiCommandBar (overlay)
1634
+ ## UiCommandBar (overlay, Pro)
1635
1635
  Floating glass toolbar of icon buttons; use for selection actions or editor tools.
1636
1636
  Props:
1637
1637
  - `items`: { id: string; icon?: string; label: string; disabled?: boolean; separator?: boolean }[] = "[]". Buttons. label is the tooltip and aria-label, icon defaults to "circle", separator true draws a divider.
@@ -1653,7 +1653,7 @@ Notes:
1653
1653
  - 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.
1654
1654
  - The input receives focus on open and Tab stays inside the dialog. There is no global hotkey; bind Cmd+K yourself.
1655
1655
 
1656
- ## UiImageViewer (overlay)
1656
+ ## UiImageViewer (overlay, Pro)
1657
1657
  Full-screen lightbox for one or several images with previous/next buttons and a counter.
1658
1658
  Props:
1659
1659
  - `open`: boolean = false. Shows the viewer when true; renders nothing when false.
@@ -1665,7 +1665,7 @@ Events:
1665
1665
  Notes:
1666
1666
  - Navigation buttons appear only when there is more than one image.
1667
1667
 
1668
- ## UiTour (overlay)
1668
+ ## UiTour (overlay, Pro)
1669
1669
  Guided product tour that dims the page, highlights a target element and shows a step popover.
1670
1670
  Props:
1671
1671
  - `open`: boolean = false. Shows the tour when true; renders nothing when false.
@@ -1679,7 +1679,7 @@ Notes:
1679
1679
  - Targets are looked up with document.querySelector and scrolled into view.
1680
1680
  - The internal step resets to 0 whenever the tour closes.
1681
1681
 
1682
- ## UiTourPopover (overlay)
1682
+ ## UiTourPopover (overlay, Pro)
1683
1683
  Step card of a tour with title, text, step counter and Back/Next buttons; used by Tour and usable standalone.
1684
1684
  Props:
1685
1685
  - `title`: string. Step heading.
@@ -1691,7 +1691,7 @@ Events:
1691
1691
  - next: Next or Finish button.
1692
1692
  - close: Close icon.
1693
1693
 
1694
- ## UiScreensaver (overlay)
1694
+ ## UiScreensaver (overlay, Pro)
1695
1695
  Full-screen idle screen with a large clock, date and the brand mark; show it after inactivity.
1696
1696
  Props:
1697
1697
  - `open`: boolean = false. Shows the screensaver when true; renders nothing when false.
@@ -1832,7 +1832,7 @@ Props:
1832
1832
  - `aspectRatio`: string = "16/9". CSS aspect-ratio value such as "1/1" or "4/3".
1833
1833
  - `rounded`: number = 20. Corner radius in px.
1834
1834
 
1835
- ## UiGallery (media)
1835
+ ## UiGallery (media, Pro)
1836
1836
  Large image with a counter and a thumbnail strip for browsing a set of photos.
1837
1837
  Props:
1838
1838
  - `images` (required): string[] = []. Image URLs. The first one is shown initially; clicking a thumbnail switches the main image.
@@ -1845,7 +1845,7 @@ Events:
1845
1845
  Notes:
1846
1846
  - An empty or missing images array renders an empty frame (no counter, no thumbnails). Invalid index values are clamped to the available range.
1847
1847
 
1848
- ## UiCarousel (media)
1848
+ ## UiCarousel (media, Pro)
1849
1849
  Slideshow of image slides with captions, arrows and dot pagination.
1850
1850
  Props:
1851
1851
  - `items` (required): { image?: string; title: string; sub?: string }[] = []. Slides. title and sub form the caption over the image.
@@ -1860,7 +1860,7 @@ Notes:
1860
1860
  - Arrows wrap around at both ends and are hidden with fewer than 2 slides; an empty items array renders an empty frame.
1861
1861
  - Autoplay has no visible pause button; hover or focus pauses it. Prefer a manual carousel for essential content.
1862
1862
 
1863
- ## UiMap (media)
1863
+ ## UiMap (media, Pro)
1864
1864
  Interactive raster map with panning, zoom buttons and clickable markers, using OpenStreetMap data via CARTO tiles.
1865
1865
  Props:
1866
1866
  - `lat`: number = 21.4225. Initial center latitude.
@@ -1882,7 +1882,7 @@ Notes:
1882
1882
  - 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.
1883
1883
  - Tiles come from a third-party CDN, so it needs network access.
1884
1884
 
1885
- ## UiProfileHeader (media)
1885
+ ## UiProfileHeader (media, Pro)
1886
1886
  Profile card with a cover image, large avatar, name and a row of meta items.
1887
1887
  Props:
1888
1888
  - `name` (required): string. Person or organization name.
@@ -1892,7 +1892,7 @@ Props:
1892
1892
  Slots:
1893
1893
  - default: Extra content on the right of the name row, usually action buttons.
1894
1894
 
1895
- ## UiChatAi (media)
1895
+ ## UiChatAi (media, Pro)
1896
1896
  Chat panel with message bubbles, a typing indicator and an input, for AI assistant UIs.
1897
1897
  Props:
1898
1898
  - `messages` (required): { role: 'user' | 'ai'; text: string }[] = []. Conversation in order. Any role other than "user" renders as an assistant bubble.
@@ -1905,7 +1905,7 @@ Events:
1905
1905
  Notes:
1906
1906
  - Append the user message and the reply to messages yourself; set loading while waiting.
1907
1907
 
1908
- ## UiHotelCard (domain)
1908
+ ## UiHotelCard (domain, Pro)
1909
1909
  Hotel listing card with photo, tags, stars, distance, rating and nightly price; use in catalogs and search results.
1910
1910
  Props:
1911
1911
  - `name` (required): string. Hotel name.
@@ -1921,7 +1921,7 @@ Notes:
1921
1921
  - Currency is hard-coded to SAR.
1922
1922
  - Wrap in a clickable element yourself; the card has no click handler.
1923
1923
 
1924
- ## UiTourCard (domain)
1924
+ ## UiTourCard (domain, Pro)
1925
1925
  Tour or virtual-tour card with session count and a seat-occupancy bar.
1926
1926
  Props:
1927
1927
  - `name` (required): string. Tour title.
@@ -1936,14 +1936,14 @@ Notes:
1936
1936
  - A fixed "360°" badge is always shown.
1937
1937
  - With seats = 0 or missing the bar is empty (0%) and the meta reads "0/0".
1938
1938
 
1939
- ## UiPrayerTimes (domain)
1939
+ ## UiPrayerTimes (domain, Pro)
1940
1940
  Row of daily prayer times with the upcoming prayer highlighted.
1941
1941
  Props:
1942
1942
  - `items`: { name: string; time: string }[] = "[]". Prayers in display order; time is shown as-is, e.g. "05:12".
1943
1943
  - `next`: number. Index in items of the next prayer; sets aria-current on it.
1944
1944
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scales padding, text and avatars.
1945
1945
 
1946
- ## UiRamadanTracker (domain)
1946
+ ## UiRamadanTracker (domain, Pro)
1947
1947
  Thirty-day Ramadan progress strip; the last ten days and odd nights are marked.
1948
1948
  Props:
1949
1949
  - `day` (required): number. Current day 1-30. Earlier days render as past, later days as upcoming.
@@ -1951,7 +1951,7 @@ Props:
1951
1951
  Notes:
1952
1952
  - Exposed as role="img" with aria-label "Day N of 30".
1953
1953
 
1954
- ## UiQiblaCompass (domain)
1954
+ ## UiQiblaCompass (domain, Pro)
1955
1955
  Compass dial with a Kaaba marker pointing to the Qibla and the bearing in degrees below it.
1956
1956
  Props:
1957
1957
  - `bearing` (required): number = 0. Qibla bearing in degrees clockwise from true north, 0 to 360; other values wrap.
@@ -1961,7 +1961,7 @@ Props:
1961
1961
  Notes:
1962
1962
  - 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.
1963
1963
 
1964
- ## UiBookingCard (domain)
1964
+ ## UiBookingCard (domain, Pro)
1965
1965
  Compact booking summary: code, status, guest, hotel, dates and total.
1966
1966
  Props:
1967
1967
  - `code` (required): string. Booking reference, monospaced.
@@ -1972,7 +1972,7 @@ Props:
1972
1972
  - `amount`: number. Total, formatted as "SAR 1 200".
1973
1973
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scales padding, text and avatars.
1974
1974
 
1975
- ## UiGuestCard (domain)
1975
+ ## UiGuestCard (domain, Pro)
1976
1976
  Guest profile card with avatar, country, stay length and tags.
1977
1977
  Props:
1978
1978
  - `name` (required): string. Guest name.
@@ -1982,7 +1982,7 @@ Props:
1982
1982
  - `tags`: string[] = "[]". Preference tags, e.g. "Halal", "Late check-in".
1983
1983
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scales padding, text and avatars.
1984
1984
 
1985
- ## UiRoomGrid (domain)
1985
+ ## UiRoomGrid (domain, Pro)
1986
1986
  Tile grid of rooms colored by housekeeping status; use for front-desk room selection.
1987
1987
  Props:
1988
1988
  - `rooms`: { no: string; type: string; status: "occupied" | "clean" | "dirty" | "blocked" }[] = "[]". 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).
@@ -1993,7 +1993,7 @@ Events:
1993
1993
  Notes:
1994
1994
  - Each tile is a button; status is conveyed by color only, so add a legend.
1995
1995
 
1996
- ## UiRoomCalendar (domain)
1996
+ ## UiRoomCalendar (domain, Pro)
1997
1997
  Gantt-style occupancy calendar: rooms as rows, days as columns, bookings as bars.
1998
1998
  Props:
1999
1999
  - `rooms`: { no: string; bookings?: { from: number; nights: number; guest: string }[] }[] = "[]". Rooms with their bookings; from is the zero-based day index of check-in, nights its length. guest is the cell tooltip.
@@ -2002,7 +2002,7 @@ Props:
2002
2002
  Notes:
2003
2003
  - Day headers are plain numbers 1..days; offset them yourself for a month view.
2004
2004
 
2005
- ## UiLeadCard (domain)
2005
+ ## UiLeadCard (domain, Pro)
2006
2006
  CRM lead card with avatar, code, phone and amount.
2007
2007
  Props:
2008
2008
  - `name` (required): string. Lead name.
@@ -2013,7 +2013,7 @@ Props:
2013
2013
  - `amount`: string | number. Amount shown on the right, rendered as given (format it yourself).
2014
2014
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scales padding, text and avatars.
2015
2015
 
2016
- ## UiDealCard (domain)
2016
+ ## UiDealCard (domain, Pro)
2017
2017
  CRM deal card with stage badge, amount, win probability and owner; the card type inside PipelineBoard.
2018
2018
  Props:
2019
2019
  - `title` (required): string. Deal title.
@@ -2025,7 +2025,7 @@ Props:
2025
2025
  - `due`: string. Due date caption, right aligned.
2026
2026
  - `size`: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = "md". Scales padding, text and avatars.
2027
2027
 
2028
- ## UiPipelineBoard (domain)
2028
+ ## UiPipelineBoard (domain, Pro)
2029
2029
  Horizontally scrolling kanban pipeline of stage columns filled with DealCards.
2030
2030
  Props:
2031
2031
  - `stages`: { id: string | number; title: string; cards: DealCardProps[] }[] = "[]". 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).
@@ -2037,7 +2037,7 @@ Notes:
2037
2037
  - 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.
2038
2038
  - Cards are fixed to DealCard; for custom cards compose KanbanColumn and KanbanCard.
2039
2039
 
2040
- ## UiContactPanel (domain)
2040
+ ## UiContactPanel (domain, Pro)
2041
2041
  Contact detail card with avatar, role, contact fields and Call / Message buttons.
2042
2042
  Props:
2043
2043
  - `name` (required): string. Contact name.
@@ -2052,7 +2052,7 @@ Events:
2052
2052
  - call: Called with no arguments when Call is clicked.
2053
2053
  - message: Called with no arguments when Message is clicked.
2054
2054
 
2055
- ## UiKanbanColumn (domain)
2055
+ ## UiKanbanColumn (domain, Pro)
2056
2056
  Single kanban column with a title, count badge and stacked cards.
2057
2057
  Props:
2058
2058
  - `title` (required): string. Column heading.
@@ -2061,7 +2061,7 @@ Props:
2061
2061
  Slots:
2062
2062
  - default: Cards, usually KanbanCard or DealCard. React passes them as children.
2063
2063
 
2064
- ## UiKanbanCard (domain)
2064
+ ## UiKanbanCard (domain, Pro)
2065
2065
  Simple kanban card with title, subtitle, free content and an optional tag.
2066
2066
  Props:
2067
2067
  - `title` (required): string. Card title.
@@ -2072,7 +2072,7 @@ Props:
2072
2072
  Slots:
2073
2073
  - default: Extra content between the subtitle and the tag. React passes it as children.
2074
2074
 
2075
- ## UiCallRow (domain)
2075
+ ## UiCallRow (domain, Pro)
2076
2076
  One-line call log row with avatar, status, duration and a play button.
2077
2077
  Props:
2078
2078
  - `name` (required): string. Caller name.
@@ -2084,7 +2084,7 @@ Props:
2084
2084
  Events:
2085
2085
  - play: Called with no arguments when the play button is clicked.
2086
2086
 
2087
- ## UiCallCard (domain)
2087
+ ## UiCallCard (domain, Pro)
2088
2088
  Call recording card with status badge, a playback progress bar and duration.
2089
2089
  Props:
2090
2090
  - `name` (required): string. Caller name.
@@ -2099,7 +2099,7 @@ Props:
2099
2099
  Events:
2100
2100
  - play: Called with no arguments when the play button is clicked.
2101
2101
 
2102
- ## UiIncomingCall (domain)
2102
+ ## UiIncomingCall (domain, Pro)
2103
2103
  Glass banner for an incoming call with Decline and Answer buttons.
2104
2104
  Props:
2105
2105
  - `name` (required): string. Caller name.
@@ -2124,7 +2124,7 @@ Slots:
2124
2124
  Notes:
2125
2125
  - logo and aside are props in both Vue and React (pass a VNode / element).
2126
2126
 
2127
- ## UiAuthShowcase (domain)
2127
+ ## UiAuthShowcase (domain, Pro)
2128
2128
  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.
2129
2129
  Props:
2130
2130
  - `variant`: 'photo' | 'light' | 'tint' = "photo". '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.
@@ -2178,7 +2178,7 @@ Notes:
2178
2178
  - Place inside AppShell; fill only the slots you need.
2179
2179
  - hero and kpis share a row, as do occupancy/funnel and top/activity; they wrap on narrow screens.
2180
2180
 
2181
- ## UiPagePatterns (pages)
2181
+ ## UiPagePatterns (pages, Pro)
2182
2182
  Showcase template combining twelve recurring dashboard card patterns (banner, strips, stat lines, charts, lists).
2183
2183
  Props:
2184
2184
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2201,7 +2201,7 @@ Slots:
2201
2201
  Notes:
2202
2202
  - Place inside AppShell; fill only the slots you need.
2203
2203
 
2204
- ## UiPageCrm (pages)
2204
+ ## UiPageCrm (pages, Pro)
2205
2205
  CRM template: summary tiles, filters, pipeline board and call queue.
2206
2206
  Props:
2207
2207
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2217,7 +2217,7 @@ Slots:
2217
2217
  Notes:
2218
2218
  - Place inside AppShell; fill only the slots you need.
2219
2219
 
2220
- ## UiPageBookings (pages)
2220
+ ## UiPageBookings (pages, Pro)
2221
2221
  Bookings list template: stats, toolbar, bulk-action bar, table and pagination.
2222
2222
  Props:
2223
2223
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2234,7 +2234,7 @@ Slots:
2234
2234
  Notes:
2235
2235
  - Place inside AppShell; fill only the slots you need.
2236
2236
 
2237
- ## UiPageCatalog (pages)
2237
+ ## UiPageCatalog (pages, Pro)
2238
2238
  Catalog template with a filter sidebar and a card grid (hotels, tours).
2239
2239
  Props:
2240
2240
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2251,7 +2251,7 @@ Notes:
2251
2251
  - Place inside AppShell; fill only the slots you need.
2252
2252
  - The filter column is 260 px wide; on phones put filters in a Drawer yourself.
2253
2253
 
2254
- ## UiPageDetail (pages)
2254
+ ## UiPageDetail (pages, Pro)
2255
2255
  Detail page template (hotel, tour): gallery, summary, tabs, history and a booking side card.
2256
2256
  Props:
2257
2257
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2303,7 +2303,7 @@ Slots:
2303
2303
  Notes:
2304
2304
  - Place inside AppShell; fill only the slots you need.
2305
2305
 
2306
- ## UiPageProfile (pages)
2306
+ ## UiPageProfile (pages, Pro)
2307
2307
  User profile template: cover header, tabs and two columns of about, activity and plan cards.
2308
2308
  Props:
2309
2309
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2320,7 +2320,7 @@ Slots:
2320
2320
  Notes:
2321
2321
  - Place inside AppShell; fill only the slots you need.
2322
2322
 
2323
- ## UiPageForm (pages)
2323
+ ## UiPageForm (pages, Pro)
2324
2324
  Create/edit form template: main column, media, side column and header actions.
2325
2325
  Props:
2326
2326
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2335,7 +2335,7 @@ Slots:
2335
2335
  Notes:
2336
2336
  - Place inside AppShell; fill only the slots you need.
2337
2337
 
2338
- ## UiPageOrder (pages)
2338
+ ## UiPageOrder (pages, Pro)
2339
2339
  Order/booking details template: status chips, items table, timeline and side info cards.
2340
2340
  Props:
2341
2341
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2351,7 +2351,7 @@ Slots:
2351
2351
  Notes:
2352
2352
  - Place inside AppShell; fill only the slots you need.
2353
2353
 
2354
- ## UiPageAccount (pages)
2354
+ ## UiPageAccount (pages, Pro)
2355
2355
  Account settings template with pill tabs and a swappable panel.
2356
2356
  Props:
2357
2357
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2381,7 +2381,7 @@ Slots:
2381
2381
  Notes:
2382
2382
  - Place inside AppShell; fill only the slots you need.
2383
2383
 
2384
- ## UiPageFaq (pages)
2384
+ ## UiPageFaq (pages, Pro)
2385
2385
  Help center template: search, categories, answers accordion and a contact block.
2386
2386
  Props:
2387
2387
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2397,7 +2397,7 @@ Slots:
2397
2397
  Notes:
2398
2398
  - Place inside AppShell; fill only the slots you need.
2399
2399
 
2400
- ## UiPageAnalytics (pages)
2400
+ ## UiPageAnalytics (pages, Pro)
2401
2401
  Analytics template: period picker, KPI strip, trend charts, a breakdown block and a table. Put Export in actions.
2402
2402
  Props:
2403
2403
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2415,7 +2415,7 @@ Notes:
2415
2415
  - Place inside AppShell; fill only the slots you need.
2416
2416
  - Trend and breakdown share a row and wrap on narrow screens. Put Export in the actions slot.
2417
2417
 
2418
- ## UiPageCalendar (pages)
2418
+ ## UiPageCalendar (pages, Pro)
2419
2419
  Calendar template: view switch, time grid, mini calendar and event details.
2420
2420
  Props:
2421
2421
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2432,7 +2432,7 @@ Notes:
2432
2432
  - Place inside AppShell; fill only the slots you need.
2433
2433
  - The grid sits beside the mini calendar and details; they stack under 860 px.
2434
2434
 
2435
- ## UiPageKanban (pages)
2435
+ ## UiPageKanban (pages, Pro)
2436
2436
  Kanban template: filters, task board columns and a card detail panel.
2437
2437
  Props:
2438
2438
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2448,7 +2448,7 @@ Notes:
2448
2448
  - Place inside AppShell; fill only the slots you need.
2449
2449
  - Board scrolls horizontally inside its area; detail goes below it under 860 px.
2450
2450
 
2451
- ## UiPageBilling (pages)
2451
+ ## UiPageBilling (pages, Pro)
2452
2452
  Billing template: current plan, usage meters, invoices, payment methods and an upgrade card.
2453
2453
  Props:
2454
2454
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2466,7 +2466,7 @@ Notes:
2466
2466
  - Place inside AppShell; fill only the slots you need.
2467
2467
  - Plan, usage and invoices share the main column; methods and upgrade form the side column.
2468
2468
 
2469
- ## UiPageTeam (pages)
2469
+ ## UiPageTeam (pages, Pro)
2470
2470
  Team template: member stats, members table, roles and permissions matrix, and an invite form.
2471
2471
  Props:
2472
2472
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2483,7 +2483,7 @@ Notes:
2483
2483
  - Place inside AppShell; fill only the slots you need.
2484
2484
  - Members and roles share the main column; the invite form is the side column.
2485
2485
 
2486
- ## UiPageIntegrations (pages)
2486
+ ## UiPageIntegrations (pages, Pro)
2487
2487
  Integrations template: connection cards, API keys and webhooks.
2488
2488
  Props:
2489
2489
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2500,7 +2500,7 @@ Notes:
2500
2500
  - Place inside AppShell; fill only the slots you need.
2501
2501
  - Keys and webhooks share a row and wrap on narrow screens.
2502
2502
 
2503
- ## UiPageSearch (pages)
2503
+ ## UiPageSearch (pages, Pro)
2504
2504
  Search template: query field, filter sidebar, result groups and an empty state.
2505
2505
  Props:
2506
2506
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2517,7 +2517,7 @@ Notes:
2517
2517
  - Place inside AppShell; fill only the slots you need.
2518
2518
  - Filters sit left of the results and stack above them under 860 px. Fill empty only when there are no results.
2519
2519
 
2520
- ## UiPageArticle (pages)
2520
+ ## UiPageArticle (pages, Pro)
2521
2521
  Article template: cover, post body, sticky table of contents, share row and related posts.
2522
2522
  Props:
2523
2523
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2535,7 +2535,7 @@ Notes:
2535
2535
  - Place inside AppShell; fill only the slots you need.
2536
2536
  - 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.
2537
2537
 
2538
- ## UiPageChangelog (pages)
2538
+ ## UiPageChangelog (pages, Pro)
2539
2539
  Changelog template: release timeline grouped by version with new, fix and improved tags, a filter and a subscribe card.
2540
2540
  Props:
2541
2541
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2551,7 +2551,7 @@ Notes:
2551
2551
  - Place inside AppShell; fill only the slots you need.
2552
2552
  - Filters and timeline share the main column; the subscribe card is a sticky side column.
2553
2553
 
2554
- ## UiPageHelp (pages)
2554
+ ## UiPageHelp (pages, Pro)
2555
2555
  Help center home: search, category grid, popular articles and a contact card.
2556
2556
  Props:
2557
2557
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2568,7 +2568,7 @@ Notes:
2568
2568
  - Place inside AppShell; fill only the slots you need.
2569
2569
  - Popular articles and contact share a row and wrap on narrow screens. For a single question list use PageFaq.
2570
2570
 
2571
- ## UiPageStates (pages)
2571
+ ## UiPageStates (pages, Pro)
2572
2572
  State gallery: empty list, no results, no permission, offline, error with retry, loading and success on one page.
2573
2573
  Props:
2574
2574
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2588,7 +2588,7 @@ Notes:
2588
2588
  - Place inside AppShell; fill only the slots you need.
2589
2589
  - The first six slots sit in two rows of auto-fit cards; success spans the full width.
2590
2590
 
2591
- ## UiPageLegal (pages)
2591
+ ## UiPageLegal (pages, Pro)
2592
2592
  Legal document template: last-updated line, sticky table of contents, numbered sections and a contact card.
2593
2593
  Props:
2594
2594
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2605,7 +2605,7 @@ Notes:
2605
2605
  - Place inside AppShell; fill only the slots you need.
2606
2606
  - The table of contents sits left of the document and stacks above it under 860 px.
2607
2607
 
2608
- ## UiPageLocations (pages)
2608
+ ## UiPageLocations (pages, Pro)
2609
2609
  Locations template: filters, a scrollable list of places and a sticky map panel.
2610
2610
  Props:
2611
2611
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2621,7 +2621,7 @@ Notes:
2621
2621
  - Place inside AppShell; fill only the slots you need.
2622
2622
  - The list is a fixed-width column left of the map; under 860 px the map goes below the list.
2623
2623
 
2624
- ## UiPageBookingFlow (pages)
2624
+ ## UiPageBookingFlow (pages, Pro)
2625
2625
  Booking flow template: stepper, the active step content, back and continue buttons and a sticky summary card.
2626
2626
  Props:
2627
2627
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2638,7 +2638,7 @@ Notes:
2638
2638
  - Place inside AppShell; fill only the slots you need.
2639
2639
  - Render only the active step in content. The summary stays visible on the right and goes below the step under 860 px.
2640
2640
 
2641
- ## UiPageItinerary (pages)
2641
+ ## UiPageItinerary (pages, Pro)
2642
2642
  Itinerary template: day tabs, a timeline of stops for the chosen day, transport and hotel blocks and a sticky trip summary card.
2643
2643
  Props:
2644
2644
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2656,7 +2656,7 @@ Notes:
2656
2656
  - Place inside AppShell; fill only the slots you need.
2657
2657
  - 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.
2658
2658
 
2659
- ## UiPagePrayer (pages)
2659
+ ## UiPagePrayer (pages, Pro)
2660
2660
  Prayer times template: a location picker, today's times with the next prayer highlighted, a month table and a sticky Qibla compass.
2661
2661
  Props:
2662
2662
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2673,7 +2673,7 @@ Notes:
2673
2673
  - Place inside AppShell; fill only the slots you need.
2674
2674
  - The Qibla card stays visible on the right and goes below the times under 860 px.
2675
2675
 
2676
- ## UiPageGroupManager (pages)
2676
+ ## UiPageGroupManager (pages, Pro)
2677
2677
  Group manager template: trip summary, pilgrims table with document and visa status, bulk actions, rooming and a sticky payments summary.
2678
2678
  Props:
2679
2679
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2692,7 +2692,7 @@ Notes:
2692
2692
  - Place inside AppShell; fill only the slots you need.
2693
2693
  - The payments card stays visible on the right and goes below the table under 860 px.
2694
2694
 
2695
- ## UiPageTourPublic (pages)
2695
+ ## UiPageTourPublic (pages, Pro)
2696
2696
  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.
2697
2697
  Props:
2698
2698
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2711,7 +2711,7 @@ Notes:
2711
2711
  - Render the page on its own, without AppShell: it supplies its own width and padding in your layout.
2712
2712
  - The booking card stays visible on the right and goes below the content under 860 px.
2713
2713
 
2714
- ## UiPageNotifications (pages)
2714
+ ## UiPageNotifications (pages, Pro)
2715
2715
  Notifications template: filters, a feed grouped by day and an empty state. Put Mark all read in actions.
2716
2716
  Props:
2717
2717
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2727,7 +2727,7 @@ Notes:
2727
2727
  - Place inside AppShell; fill only the slots you need.
2728
2728
  - Fill empty only when the feed has no rows. Mark all read goes in the actions slot.
2729
2729
 
2730
- ## UiPageInbox (pages)
2730
+ ## UiPageInbox (pages, Pro)
2731
2731
  Inbox template: filters and conversation list, the open thread with a composer, and a customer panel.
2732
2732
  Props:
2733
2733
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2745,7 +2745,7 @@ Notes:
2745
2745
  - Place inside AppShell; fill only the slots you need.
2746
2746
  - 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.
2747
2747
 
2748
- ## UiPageCheckout (pages)
2748
+ ## UiPageCheckout (pages, Pro)
2749
2749
  Checkout template: step indicator, cart items, delivery address, payment and an order summary column.
2750
2750
  Props:
2751
2751
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2763,7 +2763,7 @@ Notes:
2763
2763
  - Place inside AppShell; fill only the slots you need.
2764
2764
  - Summary sits in the side column and drops below the form on narrow screens.
2765
2765
 
2766
- ## UiPageOnboarding (pages)
2766
+ ## UiPageOnboarding (pages, Pro)
2767
2767
  Onboarding template: progress block, active step content, setup checklist and a column of tips.
2768
2768
  Props:
2769
2769
  - `title`: string. Page heading. The built-in header renders only when title is set and the header slot is empty.
@@ -2780,7 +2780,7 @@ Notes:
2780
2780
  - Place inside AppShell; fill only the slots you need.
2781
2781
  - 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.
2782
2782
 
2783
- ## UiPageLanding (pages)
2783
+ ## UiPageLanding (pages, Pro)
2784
2784
  Landing template: hero, logo strip, features, social proof, pricing teaser, call to action and footer. Used without the app shell.
2785
2785
  Slots:
2786
2786
  - hero: Hero block; HeroBanner, Card, Button.