@ziyarago/ui 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +7 -7
  3. package/THIRD_PARTY_NOTICES.md +2 -2
  4. package/assets/fonts/jetbrains-mono/jetbrains-mono-cyrillic-ext.woff2 +0 -0
  5. package/assets/fonts/jetbrains-mono/jetbrains-mono-cyrillic.woff2 +0 -0
  6. package/assets/fonts/jetbrains-mono/jetbrains-mono-latin-ext.woff2 +0 -0
  7. package/assets/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
  8. package/assets/fonts/manrope/manrope-cyrillic-ext.woff2 +0 -0
  9. package/assets/fonts/manrope/manrope-cyrillic.woff2 +0 -0
  10. package/assets/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  11. package/assets/fonts/manrope/manrope-latin.woff2 +0 -0
  12. package/dist/llms-full.txt +210 -2
  13. package/dist/llms.txt +15 -3
  14. package/dist/manifest.json +2808 -989
  15. package/dist/style.css +33 -5
  16. package/docs/INTEGRATION.md +3 -3
  17. package/docs/MIGRATION.md +3 -1
  18. package/package.json +2 -2
  19. package/src/compat/index.js +3 -2
  20. package/src/compat/vite.js +1 -1
  21. package/src/core/bools.js +1 -1
  22. package/src/core/components2.js +3 -3
  23. package/src/core/components7.js +13 -0
  24. package/src/core/pages.js +17 -6
  25. package/src/i18n/components/QiblaCompass.js +5 -0
  26. package/src/i18n/components/index.js +2 -0
  27. package/src/meta/domain.js +10 -0
  28. package/src/meta/forms.js +4 -0
  29. package/src/meta/groups.js +2 -2
  30. package/src/meta/pages.js +139 -0
  31. package/src/meta/templates.json +1391 -1
  32. package/src/react/index.js +12 -0
  33. package/src/styles/components5.css +1 -1
  34. package/src/styles/components8.css +20 -1
  35. package/src/styles/effects.css +2 -1
  36. package/src/styles/fonts.css +9 -1
  37. package/src/vue/index.js +1 -1
  38. package/types/react.d.ts +686 -0
  39. package/types/vue-global.d.ts +12 -0
  40. package/types/vue.d.ts +478 -0
@@ -103,32 +103,43 @@ declare module 'vue' {
103
103
  UiOptionCards: typeof Ui.UiOptionCards;
104
104
  UiPageAccount: typeof Ui.UiPageAccount;
105
105
  UiPageAnalytics: typeof Ui.UiPageAnalytics;
106
+ UiPageArticle: typeof Ui.UiPageArticle;
106
107
  UiPageAuth: typeof Ui.UiPageAuth;
107
108
  UiPageBilling: typeof Ui.UiPageBilling;
109
+ UiPageBookingFlow: typeof Ui.UiPageBookingFlow;
108
110
  UiPageBookings: typeof Ui.UiPageBookings;
109
111
  UiPageCalendar: typeof Ui.UiPageCalendar;
110
112
  UiPageCatalog: typeof Ui.UiPageCatalog;
113
+ UiPageChangelog: typeof Ui.UiPageChangelog;
111
114
  UiPageCheckout: typeof Ui.UiPageCheckout;
112
115
  UiPageCrm: typeof Ui.UiPageCrm;
113
116
  UiPageDashboard: typeof Ui.UiPageDashboard;
114
117
  UiPageDetail: typeof Ui.UiPageDetail;
115
118
  UiPageFaq: typeof Ui.UiPageFaq;
116
119
  UiPageForm: typeof Ui.UiPageForm;
120
+ UiPageGroupManager: typeof Ui.UiPageGroupManager;
117
121
  UiPageHeader: typeof Ui.UiPageHeader;
122
+ UiPageHelp: typeof Ui.UiPageHelp;
118
123
  UiPageInbox: typeof Ui.UiPageInbox;
119
124
  UiPageIntegrations: typeof Ui.UiPageIntegrations;
125
+ UiPageItinerary: typeof Ui.UiPageItinerary;
120
126
  UiPageKanban: typeof Ui.UiPageKanban;
121
127
  UiPageLanding: typeof Ui.UiPageLanding;
128
+ UiPageLegal: typeof Ui.UiPageLegal;
129
+ UiPageLocations: typeof Ui.UiPageLocations;
122
130
  UiPageNotifications: typeof Ui.UiPageNotifications;
123
131
  UiPageOnboarding: typeof Ui.UiPageOnboarding;
124
132
  UiPageOrder: typeof Ui.UiPageOrder;
125
133
  UiPagePatterns: typeof Ui.UiPagePatterns;
134
+ UiPagePrayer: typeof Ui.UiPagePrayer;
126
135
  UiPagePricing: typeof Ui.UiPagePricing;
127
136
  UiPageProfile: typeof Ui.UiPageProfile;
128
137
  UiPageSearch: typeof Ui.UiPageSearch;
129
138
  UiPageSettings: typeof Ui.UiPageSettings;
139
+ UiPageStates: typeof Ui.UiPageStates;
130
140
  UiPageStatus: typeof Ui.UiPageStatus;
131
141
  UiPageTeam: typeof Ui.UiPageTeam;
142
+ UiPageTourPublic: typeof Ui.UiPageTourPublic;
132
143
  UiPageUserList: typeof Ui.UiPageUserList;
133
144
  UiPagination: typeof Ui.UiPagination;
134
145
  UiPasswordInput: typeof Ui.UiPasswordInput;
@@ -144,6 +155,7 @@ declare module 'vue' {
144
155
  UiPricingCard: typeof Ui.UiPricingCard;
145
156
  UiProfileHeader: typeof Ui.UiProfileHeader;
146
157
  UiProgress: typeof Ui.UiProgress;
158
+ UiQiblaCompass: typeof Ui.UiQiblaCompass;
147
159
  UiRadioGroup: typeof Ui.UiRadioGroup;
148
160
  UiRamadanTracker: typeof Ui.UiRamadanTracker;
149
161
  UiRangeCalendar: typeof Ui.UiRangeCalendar;
package/types/vue.d.ts CHANGED
@@ -2728,6 +2728,11 @@ export interface UiLoginFormProps {
2728
2728
  * @default true
2729
2729
  */
2730
2730
  showForgot?: boolean;
2731
+ /**
2732
+ * Show the "Remember device" checkbox. Hide it when your backend has no such option; the submit payload then keeps remember: true.
2733
+ * @default true
2734
+ */
2735
+ showRemember?: boolean;
2731
2736
  /**
2732
2737
  * Submit button text. Wins over labels.submit.
2733
2738
  * @default Sign in
@@ -3239,6 +3244,46 @@ export interface UiPageAnalyticsSlots {
3239
3244
  }
3240
3245
  export const UiPageAnalytics: UiVueComponent<UiPageAnalyticsProps, UiPageAnalyticsSlots>;
3241
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
+
3242
3287
  /**
3243
3288
  * Sign-in page template without the app shell, as a centered card or a split layout.
3244
3289
  * Note: Designed for the dark theme and used without AppShell.
@@ -3355,6 +3400,44 @@ export interface UiPageBillingSlots {
3355
3400
  }
3356
3401
  export const UiPageBilling: UiVueComponent<UiPageBillingProps, UiPageBillingSlots>;
3357
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
+
3358
3441
  /**
3359
3442
  * Bookings list template: stats, toolbar, bulk-action bar, table and pagination.
3360
3443
  * Note: Place inside AppShell; fill only the slots you need.
@@ -3470,6 +3553,42 @@ export interface UiPageCatalogSlots {
3470
3553
  }
3471
3554
  export const UiPageCatalog: UiVueComponent<UiPageCatalogProps, UiPageCatalogSlots>;
3472
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
+
3473
3592
  /**
3474
3593
  * Checkout template: step indicator, cart items, delivery address, payment and an order summary column.
3475
3594
  * Note: Place inside AppShell; fill only the slots you need.
@@ -3701,6 +3820,48 @@ export interface UiPageFormSlots {
3701
3820
  }
3702
3821
  export const UiPageForm: UiVueComponent<UiPageFormProps, UiPageFormSlots>;
3703
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
+
3704
3865
  /** Page title block with optional breadcrumbs, subtitle and an actions area. */
3705
3866
  export interface UiPageHeaderProps {
3706
3867
  /** Page title (rendered as h1). */
@@ -3721,6 +3882,44 @@ export interface UiPageHeaderSlots {
3721
3882
  }
3722
3883
  export const UiPageHeader: UiVueComponent<UiPageHeaderProps, UiPageHeaderSlots>;
3723
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
+
3724
3923
  /**
3725
3924
  * Inbox template: filters and conversation list, the open thread with a composer, and a customer panel.
3726
3925
  * Note: Place inside AppShell; fill only the slots you need.
@@ -3799,6 +3998,46 @@ export interface UiPageIntegrationsSlots {
3799
3998
  }
3800
3999
  export const UiPageIntegrations: UiVueComponent<UiPageIntegrationsProps, UiPageIntegrationsSlots>;
3801
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
+
3802
4041
  /**
3803
4042
  * Kanban template: filters, task board columns and a card detail panel.
3804
4043
  * Note: Place inside AppShell; fill only the slots you need.
@@ -3860,6 +4099,80 @@ export interface UiPageLandingSlots {
3860
4099
  }
3861
4100
  export const UiPageLanding: UiVueComponent<UiPageLandingProps, UiPageLandingSlots>;
3862
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
+
3863
4176
  /**
3864
4177
  * Notifications template: filters, a feed grouped by day and an empty state. Put Mark all read in actions.
3865
4178
  * Note: Place inside AppShell; fill only the slots you need.
@@ -4022,6 +4335,44 @@ export interface UiPagePatternsSlots {
4022
4335
  }
4023
4336
  export const UiPagePatterns: UiVueComponent<UiPagePatternsProps, UiPagePatternsSlots>;
4024
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 {
4344
+ /**
4345
+ * Page heading. The built-in header renders only when title is set and the header slot is empty.
4346
+ * @remarks Forwarded to the inner element.
4347
+ */
4348
+ title?: string;
4349
+ /**
4350
+ * Caption under the heading.
4351
+ * @remarks Forwarded to the inner element.
4352
+ */
4353
+ subtitle?: string;
4354
+ /**
4355
+ * Breadcrumb trail above the title.
4356
+ * @remarks Forwarded to the inner element.
4357
+ */
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
+
4025
4376
  /**
4026
4377
  * Pricing template: billing-period toggle, plan cards and an FAQ.
4027
4378
  * Note: Place inside AppShell; fill only the slots you need.
@@ -4173,6 +4524,50 @@ export interface UiPageSettingsSlots {
4173
4524
  }
4174
4525
  export const UiPageSettings: UiVueComponent<UiPageSettingsProps, UiPageSettingsSlots>;
4175
4526
 
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
+
4176
4571
  /**
4177
4572
  * Full-page status screen (404, 401, maintenance, coming soon) with one action.
4178
4573
  * 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.
@@ -4268,6 +4663,48 @@ export interface UiPageTeamSlots {
4268
4663
  }
4269
4664
  export const UiPageTeam: UiVueComponent<UiPageTeamProps, UiPageTeamSlots>;
4270
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
+
4271
4708
  /**
4272
4709
  * User or customer list template: stats, filters, toolbar, table and a right-hand add/edit drawer.
4273
4710
  * Note: Place inside AppShell; fill only the slots you need.
@@ -4381,6 +4818,21 @@ export interface UiPasswordInputProps {
4381
4818
  * @remarks Forwarded to the inner element.
4382
4819
  */
4383
4820
  error?: string;
4821
+ /**
4822
+ * Adds a red asterisk to the label and the native required attribute.
4823
+ * @default false
4824
+ */
4825
+ required?: boolean;
4826
+ /**
4827
+ * Native name attribute of the input.
4828
+ * @remarks Forwarded to the inner element.
4829
+ */
4830
+ name?: string;
4831
+ /**
4832
+ * Focuses the input on mount.
4833
+ * @remarks Forwarded to the inner element.
4834
+ */
4835
+ autofocus?: boolean;
4384
4836
  /**
4385
4837
  * Native autocomplete token. Use "new-password" on sign-up and password-change forms so managers offer to generate one.
4386
4838
  * @default 'current-password'
@@ -4746,6 +5198,32 @@ export interface UiProgressProps {
4746
5198
  export interface UiProgressSlots {}
4747
5199
  export const UiProgress: UiVueComponent<UiProgressProps, UiProgressSlots>;
4748
5200
 
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
+
4749
5227
  /** Group of radio options with optional hints. Use for a short single-choice list that should stay visible. */
4750
5228
  export interface UiRadioGroupProps {
4751
5229
  /** Value of the selected option. */