@ziyarago/ui 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +4 -4
- package/dist/llms-full.txt +225 -2
- package/dist/llms.txt +16 -3
- package/dist/manifest.json +2925 -951
- package/dist/style.css +3 -0
- package/package.json +2 -2
- package/src/core/pages.js +19 -6
- package/src/meta/groups.js +1 -1
- package/src/meta/pages.js +158 -0
- package/src/meta/templates.json +1543 -0
- package/src/react/index.js +13 -0
- package/src/styles/components8.css +3 -0
- package/src/vue/index.js +1 -1
- package/types/react.d.ts +727 -2
- package/types/vue-global.d.ts +13 -0
- package/types/vue.d.ts +498 -0
package/dist/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ziyarago/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"homepage": "https://ziyara.vip",
|
|
5
5
|
"imports": {
|
|
6
6
|
"vue": "import { UiButton } from '@ziyarago/ui/vue'",
|
|
@@ -276,6 +276,19 @@
|
|
|
276
276
|
"PagePricing",
|
|
277
277
|
"PageFaq",
|
|
278
278
|
"PageAnalytics",
|
|
279
|
+
"PageCalendar",
|
|
280
|
+
"PageKanban",
|
|
281
|
+
"PageBilling",
|
|
282
|
+
"PageTeam",
|
|
283
|
+
"PageIntegrations",
|
|
284
|
+
"PageSearch",
|
|
285
|
+
"PageArticle",
|
|
286
|
+
"PageChangelog",
|
|
287
|
+
"PageHelp",
|
|
288
|
+
"PageStates",
|
|
289
|
+
"PageLegal",
|
|
290
|
+
"PageLocations",
|
|
291
|
+
"PageBookingFlow",
|
|
279
292
|
"PageNotifications",
|
|
280
293
|
"PageInbox",
|
|
281
294
|
"PageCheckout",
|
|
@@ -3382,6 +3395,1510 @@
|
|
|
3382
3395
|
"use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
|
|
3383
3396
|
}
|
|
3384
3397
|
]
|
|
3398
|
+
},
|
|
3399
|
+
{
|
|
3400
|
+
"id": "calendar",
|
|
3401
|
+
"label": "Calendar",
|
|
3402
|
+
"component": "UiPageCalendar",
|
|
3403
|
+
"description": "Schedule: week, day and month switch, event grid, mini calendar and an event details side panel.",
|
|
3404
|
+
"shell": true,
|
|
3405
|
+
"slots": [
|
|
3406
|
+
{
|
|
3407
|
+
"id": "header",
|
|
3408
|
+
"title": "Page heading",
|
|
3409
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
3410
|
+
"accepts": [
|
|
3411
|
+
"PageHeader",
|
|
3412
|
+
"Breadcrumbs",
|
|
3413
|
+
"Button",
|
|
3414
|
+
"SegmentedControl"
|
|
3415
|
+
],
|
|
3416
|
+
"props": [
|
|
3417
|
+
{
|
|
3418
|
+
"name": "title",
|
|
3419
|
+
"type": "string",
|
|
3420
|
+
"desc": "H1, up to 60 characters"
|
|
3421
|
+
},
|
|
3422
|
+
{
|
|
3423
|
+
"name": "subtitle",
|
|
3424
|
+
"type": "string?",
|
|
3425
|
+
"desc": "Gray caption below the heading"
|
|
3426
|
+
},
|
|
3427
|
+
{
|
|
3428
|
+
"name": "crumbs",
|
|
3429
|
+
"type": "{label,href?}[]",
|
|
3430
|
+
"desc": "Breadcrumbs"
|
|
3431
|
+
},
|
|
3432
|
+
{
|
|
3433
|
+
"name": "actions",
|
|
3434
|
+
"type": "VNode",
|
|
3435
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
3436
|
+
}
|
|
3437
|
+
],
|
|
3438
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
3439
|
+
},
|
|
3440
|
+
{
|
|
3441
|
+
"id": "toolbar",
|
|
3442
|
+
"title": "Toolbar",
|
|
3443
|
+
"desc": "View switch, date navigation and filters.",
|
|
3444
|
+
"accepts": [
|
|
3445
|
+
"SegmentedControl",
|
|
3446
|
+
"Button",
|
|
3447
|
+
"IconButton",
|
|
3448
|
+
"Select"
|
|
3449
|
+
],
|
|
3450
|
+
"props": [
|
|
3451
|
+
{
|
|
3452
|
+
"name": "content",
|
|
3453
|
+
"type": "VNode",
|
|
3454
|
+
"desc": ""
|
|
3455
|
+
}
|
|
3456
|
+
],
|
|
3457
|
+
"use": "<UiSegmentedControl v-model=\"view\" :items=\"views\" />"
|
|
3458
|
+
},
|
|
3459
|
+
{
|
|
3460
|
+
"id": "grid",
|
|
3461
|
+
"title": "Event grid",
|
|
3462
|
+
"desc": "Week, day or month grid with events.",
|
|
3463
|
+
"accepts": [
|
|
3464
|
+
"CalendarView",
|
|
3465
|
+
"Card"
|
|
3466
|
+
],
|
|
3467
|
+
"props": [
|
|
3468
|
+
{
|
|
3469
|
+
"name": "content",
|
|
3470
|
+
"type": "VNode",
|
|
3471
|
+
"desc": ""
|
|
3472
|
+
}
|
|
3473
|
+
],
|
|
3474
|
+
"use": "<UiCard padding=\"none\">…grid…</UiCard>"
|
|
3475
|
+
},
|
|
3476
|
+
{
|
|
3477
|
+
"id": "mini",
|
|
3478
|
+
"title": "Mini calendar",
|
|
3479
|
+
"desc": "Small month picker.",
|
|
3480
|
+
"accepts": [
|
|
3481
|
+
"Calendar"
|
|
3482
|
+
],
|
|
3483
|
+
"props": [
|
|
3484
|
+
{
|
|
3485
|
+
"name": "content",
|
|
3486
|
+
"type": "VNode",
|
|
3487
|
+
"desc": ""
|
|
3488
|
+
}
|
|
3489
|
+
],
|
|
3490
|
+
"use": "<UiCalendar v-model=\"day\" />"
|
|
3491
|
+
},
|
|
3492
|
+
{
|
|
3493
|
+
"id": "details",
|
|
3494
|
+
"title": "Event details",
|
|
3495
|
+
"desc": "Selected event with time, place, guests and actions.",
|
|
3496
|
+
"accepts": [
|
|
3497
|
+
"Card",
|
|
3498
|
+
"Descriptions",
|
|
3499
|
+
"Avatar",
|
|
3500
|
+
"Button"
|
|
3501
|
+
],
|
|
3502
|
+
"props": [
|
|
3503
|
+
{
|
|
3504
|
+
"name": "content",
|
|
3505
|
+
"type": "VNode",
|
|
3506
|
+
"desc": ""
|
|
3507
|
+
}
|
|
3508
|
+
],
|
|
3509
|
+
"use": "<UiCard title=\"Hotel check-in\">…</UiCard>"
|
|
3510
|
+
}
|
|
3511
|
+
]
|
|
3512
|
+
},
|
|
3513
|
+
{
|
|
3514
|
+
"id": "kanban",
|
|
3515
|
+
"label": "Kanban",
|
|
3516
|
+
"component": "UiPageKanban",
|
|
3517
|
+
"description": "Task board: columns with cards, filters and a card detail panel.",
|
|
3518
|
+
"shell": true,
|
|
3519
|
+
"slots": [
|
|
3520
|
+
{
|
|
3521
|
+
"id": "header",
|
|
3522
|
+
"title": "Page heading",
|
|
3523
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
3524
|
+
"accepts": [
|
|
3525
|
+
"PageHeader",
|
|
3526
|
+
"Breadcrumbs",
|
|
3527
|
+
"Button",
|
|
3528
|
+
"SegmentedControl"
|
|
3529
|
+
],
|
|
3530
|
+
"props": [
|
|
3531
|
+
{
|
|
3532
|
+
"name": "title",
|
|
3533
|
+
"type": "string",
|
|
3534
|
+
"desc": "H1, up to 60 characters"
|
|
3535
|
+
},
|
|
3536
|
+
{
|
|
3537
|
+
"name": "subtitle",
|
|
3538
|
+
"type": "string?",
|
|
3539
|
+
"desc": "Gray caption below the heading"
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
"name": "crumbs",
|
|
3543
|
+
"type": "{label,href?}[]",
|
|
3544
|
+
"desc": "Breadcrumbs"
|
|
3545
|
+
},
|
|
3546
|
+
{
|
|
3547
|
+
"name": "actions",
|
|
3548
|
+
"type": "VNode",
|
|
3549
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
3550
|
+
}
|
|
3551
|
+
],
|
|
3552
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
3553
|
+
},
|
|
3554
|
+
{
|
|
3555
|
+
"id": "filters",
|
|
3556
|
+
"title": "Filters",
|
|
3557
|
+
"desc": "Search, assignee and label filters.",
|
|
3558
|
+
"accepts": [
|
|
3559
|
+
"SearchInput",
|
|
3560
|
+
"FilterChips",
|
|
3561
|
+
"Select"
|
|
3562
|
+
],
|
|
3563
|
+
"props": [
|
|
3564
|
+
{
|
|
3565
|
+
"name": "content",
|
|
3566
|
+
"type": "VNode",
|
|
3567
|
+
"desc": ""
|
|
3568
|
+
}
|
|
3569
|
+
],
|
|
3570
|
+
"use": "<UiFilterChips v-model=\"f\" :items=\"labels\" />"
|
|
3571
|
+
},
|
|
3572
|
+
{
|
|
3573
|
+
"id": "board",
|
|
3574
|
+
"title": "Board",
|
|
3575
|
+
"desc": "Task columns with cards.",
|
|
3576
|
+
"accepts": [
|
|
3577
|
+
"KanbanColumn",
|
|
3578
|
+
"KanbanCard"
|
|
3579
|
+
],
|
|
3580
|
+
"props": [
|
|
3581
|
+
{
|
|
3582
|
+
"name": "content",
|
|
3583
|
+
"type": "VNode",
|
|
3584
|
+
"desc": ""
|
|
3585
|
+
}
|
|
3586
|
+
],
|
|
3587
|
+
"use": "<UiKanbanColumn title=\"To do\" :count=\"3\">…</UiKanbanColumn>"
|
|
3588
|
+
},
|
|
3589
|
+
{
|
|
3590
|
+
"id": "detail",
|
|
3591
|
+
"title": "Card detail",
|
|
3592
|
+
"desc": "Side panel for the selected card.",
|
|
3593
|
+
"accepts": [
|
|
3594
|
+
"Card",
|
|
3595
|
+
"Descriptions",
|
|
3596
|
+
"Timeline",
|
|
3597
|
+
"Checkbox"
|
|
3598
|
+
],
|
|
3599
|
+
"props": [
|
|
3600
|
+
{
|
|
3601
|
+
"name": "content",
|
|
3602
|
+
"type": "VNode",
|
|
3603
|
+
"desc": ""
|
|
3604
|
+
}
|
|
3605
|
+
],
|
|
3606
|
+
"use": "<UiCard title=\"Task\">…</UiCard>"
|
|
3607
|
+
}
|
|
3608
|
+
]
|
|
3609
|
+
},
|
|
3610
|
+
{
|
|
3611
|
+
"id": "billing",
|
|
3612
|
+
"label": "Billing",
|
|
3613
|
+
"component": "UiPageBilling",
|
|
3614
|
+
"description": "Billing: current plan, usage meters, invoices table, payment methods and upgrade.",
|
|
3615
|
+
"shell": true,
|
|
3616
|
+
"slots": [
|
|
3617
|
+
{
|
|
3618
|
+
"id": "header",
|
|
3619
|
+
"title": "Page heading",
|
|
3620
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
3621
|
+
"accepts": [
|
|
3622
|
+
"PageHeader",
|
|
3623
|
+
"Breadcrumbs",
|
|
3624
|
+
"Button",
|
|
3625
|
+
"SegmentedControl"
|
|
3626
|
+
],
|
|
3627
|
+
"props": [
|
|
3628
|
+
{
|
|
3629
|
+
"name": "title",
|
|
3630
|
+
"type": "string",
|
|
3631
|
+
"desc": "H1, up to 60 characters"
|
|
3632
|
+
},
|
|
3633
|
+
{
|
|
3634
|
+
"name": "subtitle",
|
|
3635
|
+
"type": "string?",
|
|
3636
|
+
"desc": "Gray caption below the heading"
|
|
3637
|
+
},
|
|
3638
|
+
{
|
|
3639
|
+
"name": "crumbs",
|
|
3640
|
+
"type": "{label,href?}[]",
|
|
3641
|
+
"desc": "Breadcrumbs"
|
|
3642
|
+
},
|
|
3643
|
+
{
|
|
3644
|
+
"name": "actions",
|
|
3645
|
+
"type": "VNode",
|
|
3646
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
3647
|
+
}
|
|
3648
|
+
],
|
|
3649
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
3650
|
+
},
|
|
3651
|
+
{
|
|
3652
|
+
"id": "plan",
|
|
3653
|
+
"title": "Current plan",
|
|
3654
|
+
"desc": "Plan name, price, renewal date and actions.",
|
|
3655
|
+
"accepts": [
|
|
3656
|
+
"Card",
|
|
3657
|
+
"Badge",
|
|
3658
|
+
"Button"
|
|
3659
|
+
],
|
|
3660
|
+
"props": [
|
|
3661
|
+
{
|
|
3662
|
+
"name": "content",
|
|
3663
|
+
"type": "VNode",
|
|
3664
|
+
"desc": ""
|
|
3665
|
+
}
|
|
3666
|
+
],
|
|
3667
|
+
"use": "<UiCard title=\"Pro plan\">…</UiCard>"
|
|
3668
|
+
},
|
|
3669
|
+
{
|
|
3670
|
+
"id": "usage",
|
|
3671
|
+
"title": "Usage",
|
|
3672
|
+
"desc": "Meters for seats, storage and requests.",
|
|
3673
|
+
"accepts": [
|
|
3674
|
+
"Progress",
|
|
3675
|
+
"Card"
|
|
3676
|
+
],
|
|
3677
|
+
"props": [
|
|
3678
|
+
{
|
|
3679
|
+
"name": "content",
|
|
3680
|
+
"type": "VNode",
|
|
3681
|
+
"desc": ""
|
|
3682
|
+
}
|
|
3683
|
+
],
|
|
3684
|
+
"use": "<UiProgress :value=\"72\" label=\"Seats\" />"
|
|
3685
|
+
},
|
|
3686
|
+
{
|
|
3687
|
+
"id": "invoices",
|
|
3688
|
+
"title": "Invoices",
|
|
3689
|
+
"desc": "Past invoices with status and download.",
|
|
3690
|
+
"accepts": [
|
|
3691
|
+
"DataTable",
|
|
3692
|
+
"Badge"
|
|
3693
|
+
],
|
|
3694
|
+
"props": [
|
|
3695
|
+
{
|
|
3696
|
+
"name": "content",
|
|
3697
|
+
"type": "VNode",
|
|
3698
|
+
"desc": ""
|
|
3699
|
+
}
|
|
3700
|
+
],
|
|
3701
|
+
"use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
|
|
3702
|
+
},
|
|
3703
|
+
{
|
|
3704
|
+
"id": "methods",
|
|
3705
|
+
"title": "Payment methods",
|
|
3706
|
+
"desc": "Saved cards with default marker.",
|
|
3707
|
+
"accepts": [
|
|
3708
|
+
"Card",
|
|
3709
|
+
"IconTile",
|
|
3710
|
+
"Badge"
|
|
3711
|
+
],
|
|
3712
|
+
"props": [
|
|
3713
|
+
{
|
|
3714
|
+
"name": "content",
|
|
3715
|
+
"type": "VNode",
|
|
3716
|
+
"desc": ""
|
|
3717
|
+
}
|
|
3718
|
+
],
|
|
3719
|
+
"use": "<UiCard title=\"Payment methods\">…</UiCard>"
|
|
3720
|
+
},
|
|
3721
|
+
{
|
|
3722
|
+
"id": "upgrade",
|
|
3723
|
+
"title": "Upgrade",
|
|
3724
|
+
"desc": "Upsell card for the next plan.",
|
|
3725
|
+
"accepts": [
|
|
3726
|
+
"Card",
|
|
3727
|
+
"PricingCard",
|
|
3728
|
+
"Button"
|
|
3729
|
+
],
|
|
3730
|
+
"props": [
|
|
3731
|
+
{
|
|
3732
|
+
"name": "content",
|
|
3733
|
+
"type": "VNode",
|
|
3734
|
+
"desc": ""
|
|
3735
|
+
}
|
|
3736
|
+
],
|
|
3737
|
+
"use": "<UiCard variant=\"inverse\">…</UiCard>"
|
|
3738
|
+
}
|
|
3739
|
+
]
|
|
3740
|
+
},
|
|
3741
|
+
{
|
|
3742
|
+
"id": "team",
|
|
3743
|
+
"label": "Team",
|
|
3744
|
+
"component": "UiPageTeam",
|
|
3745
|
+
"description": "Team: members table, invite form and a roles and permissions matrix.",
|
|
3746
|
+
"shell": true,
|
|
3747
|
+
"slots": [
|
|
3748
|
+
{
|
|
3749
|
+
"id": "header",
|
|
3750
|
+
"title": "Page heading",
|
|
3751
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
3752
|
+
"accepts": [
|
|
3753
|
+
"PageHeader",
|
|
3754
|
+
"Breadcrumbs",
|
|
3755
|
+
"Button",
|
|
3756
|
+
"SegmentedControl"
|
|
3757
|
+
],
|
|
3758
|
+
"props": [
|
|
3759
|
+
{
|
|
3760
|
+
"name": "title",
|
|
3761
|
+
"type": "string",
|
|
3762
|
+
"desc": "H1, up to 60 characters"
|
|
3763
|
+
},
|
|
3764
|
+
{
|
|
3765
|
+
"name": "subtitle",
|
|
3766
|
+
"type": "string?",
|
|
3767
|
+
"desc": "Gray caption below the heading"
|
|
3768
|
+
},
|
|
3769
|
+
{
|
|
3770
|
+
"name": "crumbs",
|
|
3771
|
+
"type": "{label,href?}[]",
|
|
3772
|
+
"desc": "Breadcrumbs"
|
|
3773
|
+
},
|
|
3774
|
+
{
|
|
3775
|
+
"name": "actions",
|
|
3776
|
+
"type": "VNode",
|
|
3777
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
3778
|
+
}
|
|
3779
|
+
],
|
|
3780
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
3781
|
+
},
|
|
3782
|
+
{
|
|
3783
|
+
"id": "stats",
|
|
3784
|
+
"title": "Summary",
|
|
3785
|
+
"desc": "Seats, pending invites and admins.",
|
|
3786
|
+
"accepts": [
|
|
3787
|
+
"StatsCard",
|
|
3788
|
+
"KpiTile"
|
|
3789
|
+
],
|
|
3790
|
+
"props": [
|
|
3791
|
+
{
|
|
3792
|
+
"name": "content",
|
|
3793
|
+
"type": "VNode",
|
|
3794
|
+
"desc": ""
|
|
3795
|
+
}
|
|
3796
|
+
],
|
|
3797
|
+
"use": "<UiKpiTile label=\"Members\" value=\"12\" />"
|
|
3798
|
+
},
|
|
3799
|
+
{
|
|
3800
|
+
"id": "members",
|
|
3801
|
+
"title": "Members",
|
|
3802
|
+
"desc": "Members table with role and status.",
|
|
3803
|
+
"accepts": [
|
|
3804
|
+
"DataTable",
|
|
3805
|
+
"UserCell",
|
|
3806
|
+
"Select",
|
|
3807
|
+
"Badge"
|
|
3808
|
+
],
|
|
3809
|
+
"props": [
|
|
3810
|
+
{
|
|
3811
|
+
"name": "content",
|
|
3812
|
+
"type": "VNode",
|
|
3813
|
+
"desc": ""
|
|
3814
|
+
}
|
|
3815
|
+
],
|
|
3816
|
+
"use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
|
|
3817
|
+
},
|
|
3818
|
+
{
|
|
3819
|
+
"id": "roles",
|
|
3820
|
+
"title": "Roles and permissions",
|
|
3821
|
+
"desc": "Matrix of permissions per role.",
|
|
3822
|
+
"accepts": [
|
|
3823
|
+
"DataTable",
|
|
3824
|
+
"Checkbox",
|
|
3825
|
+
"Switch"
|
|
3826
|
+
],
|
|
3827
|
+
"props": [
|
|
3828
|
+
{
|
|
3829
|
+
"name": "content",
|
|
3830
|
+
"type": "VNode",
|
|
3831
|
+
"desc": ""
|
|
3832
|
+
}
|
|
3833
|
+
],
|
|
3834
|
+
"use": "<UiDataTable :columns=\"roleCols\" :rows=\"perms\" />"
|
|
3835
|
+
},
|
|
3836
|
+
{
|
|
3837
|
+
"id": "invite",
|
|
3838
|
+
"title": "Invite",
|
|
3839
|
+
"desc": "Email, role and send button.",
|
|
3840
|
+
"accepts": [
|
|
3841
|
+
"Card",
|
|
3842
|
+
"TextField",
|
|
3843
|
+
"Select",
|
|
3844
|
+
"Button"
|
|
3845
|
+
],
|
|
3846
|
+
"props": [
|
|
3847
|
+
{
|
|
3848
|
+
"name": "content",
|
|
3849
|
+
"type": "VNode",
|
|
3850
|
+
"desc": ""
|
|
3851
|
+
}
|
|
3852
|
+
],
|
|
3853
|
+
"use": "<UiCard title=\"Invite\">…</UiCard>"
|
|
3854
|
+
}
|
|
3855
|
+
]
|
|
3856
|
+
},
|
|
3857
|
+
{
|
|
3858
|
+
"id": "integrations",
|
|
3859
|
+
"label": "Integrations",
|
|
3860
|
+
"component": "UiPageIntegrations",
|
|
3861
|
+
"description": "Integrations: connection cards with status, API keys table with reveal, copy and revoke, and a webhooks list.",
|
|
3862
|
+
"shell": true,
|
|
3863
|
+
"slots": [
|
|
3864
|
+
{
|
|
3865
|
+
"id": "header",
|
|
3866
|
+
"title": "Page heading",
|
|
3867
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
3868
|
+
"accepts": [
|
|
3869
|
+
"PageHeader",
|
|
3870
|
+
"Breadcrumbs",
|
|
3871
|
+
"Button",
|
|
3872
|
+
"SegmentedControl"
|
|
3873
|
+
],
|
|
3874
|
+
"props": [
|
|
3875
|
+
{
|
|
3876
|
+
"name": "title",
|
|
3877
|
+
"type": "string",
|
|
3878
|
+
"desc": "H1, up to 60 characters"
|
|
3879
|
+
},
|
|
3880
|
+
{
|
|
3881
|
+
"name": "subtitle",
|
|
3882
|
+
"type": "string?",
|
|
3883
|
+
"desc": "Gray caption below the heading"
|
|
3884
|
+
},
|
|
3885
|
+
{
|
|
3886
|
+
"name": "crumbs",
|
|
3887
|
+
"type": "{label,href?}[]",
|
|
3888
|
+
"desc": "Breadcrumbs"
|
|
3889
|
+
},
|
|
3890
|
+
{
|
|
3891
|
+
"name": "actions",
|
|
3892
|
+
"type": "VNode",
|
|
3893
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
3894
|
+
}
|
|
3895
|
+
],
|
|
3896
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
3897
|
+
},
|
|
3898
|
+
{
|
|
3899
|
+
"id": "filters",
|
|
3900
|
+
"title": "Filters",
|
|
3901
|
+
"desc": "Search and category filter.",
|
|
3902
|
+
"accepts": [
|
|
3903
|
+
"SearchInput",
|
|
3904
|
+
"FilterChips"
|
|
3905
|
+
],
|
|
3906
|
+
"props": [
|
|
3907
|
+
{
|
|
3908
|
+
"name": "content",
|
|
3909
|
+
"type": "VNode",
|
|
3910
|
+
"desc": ""
|
|
3911
|
+
}
|
|
3912
|
+
],
|
|
3913
|
+
"use": "<UiSearchInput v-model=\"q\" />"
|
|
3914
|
+
},
|
|
3915
|
+
{
|
|
3916
|
+
"id": "connections",
|
|
3917
|
+
"title": "Connections",
|
|
3918
|
+
"desc": "Cards with connected, error or off status.",
|
|
3919
|
+
"accepts": [
|
|
3920
|
+
"IntegrationCard"
|
|
3921
|
+
],
|
|
3922
|
+
"props": [
|
|
3923
|
+
{
|
|
3924
|
+
"name": "content",
|
|
3925
|
+
"type": "VNode",
|
|
3926
|
+
"desc": ""
|
|
3927
|
+
}
|
|
3928
|
+
],
|
|
3929
|
+
"use": "<UiIntegrationCard name=\"Telegram\" status=\"connected\" />"
|
|
3930
|
+
},
|
|
3931
|
+
{
|
|
3932
|
+
"id": "keys",
|
|
3933
|
+
"title": "API keys",
|
|
3934
|
+
"desc": "Keys with reveal, copy and revoke.",
|
|
3935
|
+
"accepts": [
|
|
3936
|
+
"DataTable",
|
|
3937
|
+
"CopyButton",
|
|
3938
|
+
"IconButton"
|
|
3939
|
+
],
|
|
3940
|
+
"props": [
|
|
3941
|
+
{
|
|
3942
|
+
"name": "content",
|
|
3943
|
+
"type": "VNode",
|
|
3944
|
+
"desc": ""
|
|
3945
|
+
}
|
|
3946
|
+
],
|
|
3947
|
+
"use": "<UiDataTable :columns=\"cols\" :rows=\"keys\" />"
|
|
3948
|
+
},
|
|
3949
|
+
{
|
|
3950
|
+
"id": "webhooks",
|
|
3951
|
+
"title": "Webhooks",
|
|
3952
|
+
"desc": "Endpoints with event types and on/off switch.",
|
|
3953
|
+
"accepts": [
|
|
3954
|
+
"Card",
|
|
3955
|
+
"Switch",
|
|
3956
|
+
"Chip"
|
|
3957
|
+
],
|
|
3958
|
+
"props": [
|
|
3959
|
+
{
|
|
3960
|
+
"name": "content",
|
|
3961
|
+
"type": "VNode",
|
|
3962
|
+
"desc": ""
|
|
3963
|
+
}
|
|
3964
|
+
],
|
|
3965
|
+
"use": "<UiCard title=\"Webhooks\">…</UiCard>"
|
|
3966
|
+
}
|
|
3967
|
+
]
|
|
3968
|
+
},
|
|
3969
|
+
{
|
|
3970
|
+
"id": "search",
|
|
3971
|
+
"label": "Search results",
|
|
3972
|
+
"component": "UiPageSearch",
|
|
3973
|
+
"description": "Search results: query field, filters, grouped results and an empty state.",
|
|
3974
|
+
"shell": true,
|
|
3975
|
+
"slots": [
|
|
3976
|
+
{
|
|
3977
|
+
"id": "header",
|
|
3978
|
+
"title": "Page heading",
|
|
3979
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
3980
|
+
"accepts": [
|
|
3981
|
+
"PageHeader",
|
|
3982
|
+
"Breadcrumbs",
|
|
3983
|
+
"Button",
|
|
3984
|
+
"SegmentedControl"
|
|
3985
|
+
],
|
|
3986
|
+
"props": [
|
|
3987
|
+
{
|
|
3988
|
+
"name": "title",
|
|
3989
|
+
"type": "string",
|
|
3990
|
+
"desc": "H1, up to 60 characters"
|
|
3991
|
+
},
|
|
3992
|
+
{
|
|
3993
|
+
"name": "subtitle",
|
|
3994
|
+
"type": "string?",
|
|
3995
|
+
"desc": "Gray caption below the heading"
|
|
3996
|
+
},
|
|
3997
|
+
{
|
|
3998
|
+
"name": "crumbs",
|
|
3999
|
+
"type": "{label,href?}[]",
|
|
4000
|
+
"desc": "Breadcrumbs"
|
|
4001
|
+
},
|
|
4002
|
+
{
|
|
4003
|
+
"name": "actions",
|
|
4004
|
+
"type": "VNode",
|
|
4005
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4006
|
+
}
|
|
4007
|
+
],
|
|
4008
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4009
|
+
},
|
|
4010
|
+
{
|
|
4011
|
+
"id": "search",
|
|
4012
|
+
"title": "Search field",
|
|
4013
|
+
"desc": "Large query field with tabs for result types.",
|
|
4014
|
+
"accepts": [
|
|
4015
|
+
"SearchInput",
|
|
4016
|
+
"Tabs"
|
|
4017
|
+
],
|
|
4018
|
+
"props": [
|
|
4019
|
+
{
|
|
4020
|
+
"name": "content",
|
|
4021
|
+
"type": "VNode",
|
|
4022
|
+
"desc": ""
|
|
4023
|
+
}
|
|
4024
|
+
],
|
|
4025
|
+
"use": "<UiSearchInput v-model=\"q\" />"
|
|
4026
|
+
},
|
|
4027
|
+
{
|
|
4028
|
+
"id": "filters",
|
|
4029
|
+
"title": "Filters",
|
|
4030
|
+
"desc": "Sidebar with checkboxes, range and select.",
|
|
4031
|
+
"accepts": [
|
|
4032
|
+
"Card",
|
|
4033
|
+
"Checkbox",
|
|
4034
|
+
"RangeSlider",
|
|
4035
|
+
"Select"
|
|
4036
|
+
],
|
|
4037
|
+
"props": [
|
|
4038
|
+
{
|
|
4039
|
+
"name": "content",
|
|
4040
|
+
"type": "VNode",
|
|
4041
|
+
"desc": ""
|
|
4042
|
+
}
|
|
4043
|
+
],
|
|
4044
|
+
"use": "<UiCard title=\"Filters\">…</UiCard>"
|
|
4045
|
+
},
|
|
4046
|
+
{
|
|
4047
|
+
"id": "results",
|
|
4048
|
+
"title": "Results",
|
|
4049
|
+
"desc": "Result groups with titles and counts.",
|
|
4050
|
+
"accepts": [
|
|
4051
|
+
"Card",
|
|
4052
|
+
"Chip",
|
|
4053
|
+
"Divider"
|
|
4054
|
+
],
|
|
4055
|
+
"props": [
|
|
4056
|
+
{
|
|
4057
|
+
"name": "content",
|
|
4058
|
+
"type": "VNode",
|
|
4059
|
+
"desc": ""
|
|
4060
|
+
}
|
|
4061
|
+
],
|
|
4062
|
+
"use": "<UiCard padding=\"none\">…</UiCard>"
|
|
4063
|
+
},
|
|
4064
|
+
{
|
|
4065
|
+
"id": "empty",
|
|
4066
|
+
"title": "Empty state",
|
|
4067
|
+
"desc": "Shown when nothing matches.",
|
|
4068
|
+
"accepts": [
|
|
4069
|
+
"EmptyState"
|
|
4070
|
+
],
|
|
4071
|
+
"props": [
|
|
4072
|
+
{
|
|
4073
|
+
"name": "content",
|
|
4074
|
+
"type": "VNode",
|
|
4075
|
+
"desc": ""
|
|
4076
|
+
}
|
|
4077
|
+
],
|
|
4078
|
+
"use": "<UiEmptyState icon=\"search-x\" title=\"No results\" />"
|
|
4079
|
+
}
|
|
4080
|
+
]
|
|
4081
|
+
},
|
|
4082
|
+
{
|
|
4083
|
+
"id": "article",
|
|
4084
|
+
"label": "Article",
|
|
4085
|
+
"component": "UiPageArticle",
|
|
4086
|
+
"description": "Blog article: cover, title and author, body with a table of contents, share row and related posts.",
|
|
4087
|
+
"shell": true,
|
|
4088
|
+
"slots": [
|
|
4089
|
+
{
|
|
4090
|
+
"id": "header",
|
|
4091
|
+
"title": "Page heading",
|
|
4092
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4093
|
+
"accepts": [
|
|
4094
|
+
"PageHeader",
|
|
4095
|
+
"Breadcrumbs",
|
|
4096
|
+
"Button",
|
|
4097
|
+
"SegmentedControl"
|
|
4098
|
+
],
|
|
4099
|
+
"props": [
|
|
4100
|
+
{
|
|
4101
|
+
"name": "title",
|
|
4102
|
+
"type": "string",
|
|
4103
|
+
"desc": "H1, up to 60 characters"
|
|
4104
|
+
},
|
|
4105
|
+
{
|
|
4106
|
+
"name": "subtitle",
|
|
4107
|
+
"type": "string?",
|
|
4108
|
+
"desc": "Gray caption below the heading"
|
|
4109
|
+
},
|
|
4110
|
+
{
|
|
4111
|
+
"name": "crumbs",
|
|
4112
|
+
"type": "{label,href?}[]",
|
|
4113
|
+
"desc": "Breadcrumbs"
|
|
4114
|
+
},
|
|
4115
|
+
{
|
|
4116
|
+
"name": "actions",
|
|
4117
|
+
"type": "VNode",
|
|
4118
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4119
|
+
}
|
|
4120
|
+
],
|
|
4121
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4122
|
+
},
|
|
4123
|
+
{
|
|
4124
|
+
"id": "cover",
|
|
4125
|
+
"title": "Cover",
|
|
4126
|
+
"desc": "Cover with category, title, author and reading time.",
|
|
4127
|
+
"accepts": [
|
|
4128
|
+
"Card",
|
|
4129
|
+
"Chip",
|
|
4130
|
+
"Avatar",
|
|
4131
|
+
"LazyImage"
|
|
4132
|
+
],
|
|
4133
|
+
"props": [
|
|
4134
|
+
{
|
|
4135
|
+
"name": "content",
|
|
4136
|
+
"type": "VNode",
|
|
4137
|
+
"desc": ""
|
|
4138
|
+
}
|
|
4139
|
+
],
|
|
4140
|
+
"use": "<UiCard>…</UiCard>"
|
|
4141
|
+
},
|
|
4142
|
+
{
|
|
4143
|
+
"id": "body",
|
|
4144
|
+
"title": "Article body",
|
|
4145
|
+
"desc": "Headings, paragraphs, quote and code.",
|
|
4146
|
+
"accepts": [
|
|
4147
|
+
"Heading",
|
|
4148
|
+
"Text",
|
|
4149
|
+
"Code",
|
|
4150
|
+
"Alert"
|
|
4151
|
+
],
|
|
4152
|
+
"props": [
|
|
4153
|
+
{
|
|
4154
|
+
"name": "content",
|
|
4155
|
+
"type": "VNode",
|
|
4156
|
+
"desc": ""
|
|
4157
|
+
}
|
|
4158
|
+
],
|
|
4159
|
+
"use": "<UiHeading level=\"2\">…</UiHeading>"
|
|
4160
|
+
},
|
|
4161
|
+
{
|
|
4162
|
+
"id": "toc",
|
|
4163
|
+
"title": "Table of contents",
|
|
4164
|
+
"desc": "Sticky list of section links.",
|
|
4165
|
+
"accepts": [
|
|
4166
|
+
"Card",
|
|
4167
|
+
"Link"
|
|
4168
|
+
],
|
|
4169
|
+
"props": [
|
|
4170
|
+
{
|
|
4171
|
+
"name": "content",
|
|
4172
|
+
"type": "VNode",
|
|
4173
|
+
"desc": ""
|
|
4174
|
+
}
|
|
4175
|
+
],
|
|
4176
|
+
"use": "<UiCard title=\"On this page\">…</UiCard>"
|
|
4177
|
+
},
|
|
4178
|
+
{
|
|
4179
|
+
"id": "share",
|
|
4180
|
+
"title": "Share",
|
|
4181
|
+
"desc": "Share buttons and copy link.",
|
|
4182
|
+
"accepts": [
|
|
4183
|
+
"Button",
|
|
4184
|
+
"IconButton",
|
|
4185
|
+
"CopyButton"
|
|
4186
|
+
],
|
|
4187
|
+
"props": [
|
|
4188
|
+
{
|
|
4189
|
+
"name": "content",
|
|
4190
|
+
"type": "VNode",
|
|
4191
|
+
"desc": ""
|
|
4192
|
+
}
|
|
4193
|
+
],
|
|
4194
|
+
"use": "<UiCopyButton :value=\"url\" />"
|
|
4195
|
+
},
|
|
4196
|
+
{
|
|
4197
|
+
"id": "related",
|
|
4198
|
+
"title": "Related posts",
|
|
4199
|
+
"desc": "Cards with other posts.",
|
|
4200
|
+
"accepts": [
|
|
4201
|
+
"Card",
|
|
4202
|
+
"Chip"
|
|
4203
|
+
],
|
|
4204
|
+
"props": [
|
|
4205
|
+
{
|
|
4206
|
+
"name": "content",
|
|
4207
|
+
"type": "VNode",
|
|
4208
|
+
"desc": ""
|
|
4209
|
+
}
|
|
4210
|
+
],
|
|
4211
|
+
"use": "<UiCard>…</UiCard>"
|
|
4212
|
+
}
|
|
4213
|
+
]
|
|
4214
|
+
},
|
|
4215
|
+
{
|
|
4216
|
+
"id": "changelog",
|
|
4217
|
+
"label": "Changelog",
|
|
4218
|
+
"component": "UiPageChangelog",
|
|
4219
|
+
"description": "Changelog: release timeline grouped by version with new, fix and improved tags, a filter and subscribe.",
|
|
4220
|
+
"shell": true,
|
|
4221
|
+
"slots": [
|
|
4222
|
+
{
|
|
4223
|
+
"id": "header",
|
|
4224
|
+
"title": "Page heading",
|
|
4225
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4226
|
+
"accepts": [
|
|
4227
|
+
"PageHeader",
|
|
4228
|
+
"Breadcrumbs",
|
|
4229
|
+
"Button",
|
|
4230
|
+
"SegmentedControl"
|
|
4231
|
+
],
|
|
4232
|
+
"props": [
|
|
4233
|
+
{
|
|
4234
|
+
"name": "title",
|
|
4235
|
+
"type": "string",
|
|
4236
|
+
"desc": "H1, up to 60 characters"
|
|
4237
|
+
},
|
|
4238
|
+
{
|
|
4239
|
+
"name": "subtitle",
|
|
4240
|
+
"type": "string?",
|
|
4241
|
+
"desc": "Gray caption below the heading"
|
|
4242
|
+
},
|
|
4243
|
+
{
|
|
4244
|
+
"name": "crumbs",
|
|
4245
|
+
"type": "{label,href?}[]",
|
|
4246
|
+
"desc": "Breadcrumbs"
|
|
4247
|
+
},
|
|
4248
|
+
{
|
|
4249
|
+
"name": "actions",
|
|
4250
|
+
"type": "VNode",
|
|
4251
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4252
|
+
}
|
|
4253
|
+
],
|
|
4254
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4255
|
+
},
|
|
4256
|
+
{
|
|
4257
|
+
"id": "filters",
|
|
4258
|
+
"title": "Filters",
|
|
4259
|
+
"desc": "Tag filter and search.",
|
|
4260
|
+
"accepts": [
|
|
4261
|
+
"FilterChips",
|
|
4262
|
+
"SearchInput"
|
|
4263
|
+
],
|
|
4264
|
+
"props": [
|
|
4265
|
+
{
|
|
4266
|
+
"name": "content",
|
|
4267
|
+
"type": "VNode",
|
|
4268
|
+
"desc": ""
|
|
4269
|
+
}
|
|
4270
|
+
],
|
|
4271
|
+
"use": "<UiFilterChips v-model=\"tag\" :items=\"tags\" />"
|
|
4272
|
+
},
|
|
4273
|
+
{
|
|
4274
|
+
"id": "timeline",
|
|
4275
|
+
"title": "Release timeline",
|
|
4276
|
+
"desc": "Versions with date and tagged changes.",
|
|
4277
|
+
"accepts": [
|
|
4278
|
+
"Card",
|
|
4279
|
+
"Chip",
|
|
4280
|
+
"Divider"
|
|
4281
|
+
],
|
|
4282
|
+
"props": [
|
|
4283
|
+
{
|
|
4284
|
+
"name": "content",
|
|
4285
|
+
"type": "VNode",
|
|
4286
|
+
"desc": ""
|
|
4287
|
+
}
|
|
4288
|
+
],
|
|
4289
|
+
"use": "<UiCard>…</UiCard>"
|
|
4290
|
+
},
|
|
4291
|
+
{
|
|
4292
|
+
"id": "subscribe",
|
|
4293
|
+
"title": "Subscribe",
|
|
4294
|
+
"desc": "Email field to get release notes.",
|
|
4295
|
+
"accepts": [
|
|
4296
|
+
"Card",
|
|
4297
|
+
"TextField",
|
|
4298
|
+
"Button"
|
|
4299
|
+
],
|
|
4300
|
+
"props": [
|
|
4301
|
+
{
|
|
4302
|
+
"name": "content",
|
|
4303
|
+
"type": "VNode",
|
|
4304
|
+
"desc": ""
|
|
4305
|
+
}
|
|
4306
|
+
],
|
|
4307
|
+
"use": "<UiCard title=\"Get updates\">…</UiCard>"
|
|
4308
|
+
}
|
|
4309
|
+
]
|
|
4310
|
+
},
|
|
4311
|
+
{
|
|
4312
|
+
"id": "help",
|
|
4313
|
+
"label": "Help center",
|
|
4314
|
+
"component": "UiPageHelp",
|
|
4315
|
+
"description": "Help center home: search, category tiles, popular articles and contact.",
|
|
4316
|
+
"shell": true,
|
|
4317
|
+
"slots": [
|
|
4318
|
+
{
|
|
4319
|
+
"id": "header",
|
|
4320
|
+
"title": "Page heading",
|
|
4321
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4322
|
+
"accepts": [
|
|
4323
|
+
"PageHeader",
|
|
4324
|
+
"Breadcrumbs",
|
|
4325
|
+
"Button",
|
|
4326
|
+
"SegmentedControl"
|
|
4327
|
+
],
|
|
4328
|
+
"props": [
|
|
4329
|
+
{
|
|
4330
|
+
"name": "title",
|
|
4331
|
+
"type": "string",
|
|
4332
|
+
"desc": "H1, up to 60 characters"
|
|
4333
|
+
},
|
|
4334
|
+
{
|
|
4335
|
+
"name": "subtitle",
|
|
4336
|
+
"type": "string?",
|
|
4337
|
+
"desc": "Gray caption below the heading"
|
|
4338
|
+
},
|
|
4339
|
+
{
|
|
4340
|
+
"name": "crumbs",
|
|
4341
|
+
"type": "{label,href?}[]",
|
|
4342
|
+
"desc": "Breadcrumbs"
|
|
4343
|
+
},
|
|
4344
|
+
{
|
|
4345
|
+
"name": "actions",
|
|
4346
|
+
"type": "VNode",
|
|
4347
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4348
|
+
}
|
|
4349
|
+
],
|
|
4350
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4351
|
+
},
|
|
4352
|
+
{
|
|
4353
|
+
"id": "search",
|
|
4354
|
+
"title": "Search",
|
|
4355
|
+
"desc": "Large search field.",
|
|
4356
|
+
"accepts": [
|
|
4357
|
+
"SearchInput"
|
|
4358
|
+
],
|
|
4359
|
+
"props": [
|
|
4360
|
+
{
|
|
4361
|
+
"name": "content",
|
|
4362
|
+
"type": "VNode",
|
|
4363
|
+
"desc": ""
|
|
4364
|
+
}
|
|
4365
|
+
],
|
|
4366
|
+
"use": "<UiSearchInput size=\"lg\" />"
|
|
4367
|
+
},
|
|
4368
|
+
{
|
|
4369
|
+
"id": "categories",
|
|
4370
|
+
"title": "Categories",
|
|
4371
|
+
"desc": "Grid of category tiles.",
|
|
4372
|
+
"accepts": [
|
|
4373
|
+
"Card",
|
|
4374
|
+
"IconTile"
|
|
4375
|
+
],
|
|
4376
|
+
"props": [
|
|
4377
|
+
{
|
|
4378
|
+
"name": "content",
|
|
4379
|
+
"type": "VNode",
|
|
4380
|
+
"desc": ""
|
|
4381
|
+
}
|
|
4382
|
+
],
|
|
4383
|
+
"use": "<UiCard>…</UiCard>"
|
|
4384
|
+
},
|
|
4385
|
+
{
|
|
4386
|
+
"id": "popular",
|
|
4387
|
+
"title": "Popular articles",
|
|
4388
|
+
"desc": "List of top articles.",
|
|
4389
|
+
"accepts": [
|
|
4390
|
+
"Card",
|
|
4391
|
+
"Link",
|
|
4392
|
+
"Chip"
|
|
4393
|
+
],
|
|
4394
|
+
"props": [
|
|
4395
|
+
{
|
|
4396
|
+
"name": "content",
|
|
4397
|
+
"type": "VNode",
|
|
4398
|
+
"desc": ""
|
|
4399
|
+
}
|
|
4400
|
+
],
|
|
4401
|
+
"use": "<UiCard title=\"Popular\">…</UiCard>"
|
|
4402
|
+
},
|
|
4403
|
+
{
|
|
4404
|
+
"id": "contact",
|
|
4405
|
+
"title": "Contact",
|
|
4406
|
+
"desc": "Ways to reach support.",
|
|
4407
|
+
"accepts": [
|
|
4408
|
+
"Card",
|
|
4409
|
+
"Button",
|
|
4410
|
+
"IconTile"
|
|
4411
|
+
],
|
|
4412
|
+
"props": [
|
|
4413
|
+
{
|
|
4414
|
+
"name": "content",
|
|
4415
|
+
"type": "VNode",
|
|
4416
|
+
"desc": ""
|
|
4417
|
+
}
|
|
4418
|
+
],
|
|
4419
|
+
"use": "<UiCard title=\"Still need help?\">…</UiCard>"
|
|
4420
|
+
}
|
|
4421
|
+
]
|
|
4422
|
+
},
|
|
4423
|
+
{
|
|
4424
|
+
"id": "states",
|
|
4425
|
+
"label": "States",
|
|
4426
|
+
"component": "UiPageStates",
|
|
4427
|
+
"description": "State gallery: empty, no results, no permission, offline, error with retry, loading and success.",
|
|
4428
|
+
"shell": true,
|
|
4429
|
+
"slots": [
|
|
4430
|
+
{
|
|
4431
|
+
"id": "header",
|
|
4432
|
+
"title": "Page heading",
|
|
4433
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4434
|
+
"accepts": [
|
|
4435
|
+
"PageHeader",
|
|
4436
|
+
"Breadcrumbs",
|
|
4437
|
+
"Button",
|
|
4438
|
+
"SegmentedControl"
|
|
4439
|
+
],
|
|
4440
|
+
"props": [
|
|
4441
|
+
{
|
|
4442
|
+
"name": "title",
|
|
4443
|
+
"type": "string",
|
|
4444
|
+
"desc": "H1, up to 60 characters"
|
|
4445
|
+
},
|
|
4446
|
+
{
|
|
4447
|
+
"name": "subtitle",
|
|
4448
|
+
"type": "string?",
|
|
4449
|
+
"desc": "Gray caption below the heading"
|
|
4450
|
+
},
|
|
4451
|
+
{
|
|
4452
|
+
"name": "crumbs",
|
|
4453
|
+
"type": "{label,href?}[]",
|
|
4454
|
+
"desc": "Breadcrumbs"
|
|
4455
|
+
},
|
|
4456
|
+
{
|
|
4457
|
+
"name": "actions",
|
|
4458
|
+
"type": "VNode",
|
|
4459
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4460
|
+
}
|
|
4461
|
+
],
|
|
4462
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4463
|
+
},
|
|
4464
|
+
{
|
|
4465
|
+
"id": "empty",
|
|
4466
|
+
"title": "Empty list",
|
|
4467
|
+
"desc": "First-use empty state with an action.",
|
|
4468
|
+
"accepts": [
|
|
4469
|
+
"EmptyState",
|
|
4470
|
+
"Button"
|
|
4471
|
+
],
|
|
4472
|
+
"props": [
|
|
4473
|
+
{
|
|
4474
|
+
"name": "content",
|
|
4475
|
+
"type": "VNode",
|
|
4476
|
+
"desc": ""
|
|
4477
|
+
}
|
|
4478
|
+
],
|
|
4479
|
+
"use": "<UiEmptyState icon=\"inbox\" title=\"Nothing here yet\" />"
|
|
4480
|
+
},
|
|
4481
|
+
{
|
|
4482
|
+
"id": "noresults",
|
|
4483
|
+
"title": "No results",
|
|
4484
|
+
"desc": "Search found nothing.",
|
|
4485
|
+
"accepts": [
|
|
4486
|
+
"EmptyState",
|
|
4487
|
+
"Button"
|
|
4488
|
+
],
|
|
4489
|
+
"props": [
|
|
4490
|
+
{
|
|
4491
|
+
"name": "content",
|
|
4492
|
+
"type": "VNode",
|
|
4493
|
+
"desc": ""
|
|
4494
|
+
}
|
|
4495
|
+
],
|
|
4496
|
+
"use": "<UiEmptyState icon=\"search-x\" title=\"No results\" />"
|
|
4497
|
+
},
|
|
4498
|
+
{
|
|
4499
|
+
"id": "forbidden",
|
|
4500
|
+
"title": "No permission",
|
|
4501
|
+
"desc": "Access denied.",
|
|
4502
|
+
"accepts": [
|
|
4503
|
+
"EmptyState",
|
|
4504
|
+
"Button"
|
|
4505
|
+
],
|
|
4506
|
+
"props": [
|
|
4507
|
+
{
|
|
4508
|
+
"name": "content",
|
|
4509
|
+
"type": "VNode",
|
|
4510
|
+
"desc": ""
|
|
4511
|
+
}
|
|
4512
|
+
],
|
|
4513
|
+
"use": "<UiEmptyState icon=\"lock\" title=\"No access\" />"
|
|
4514
|
+
},
|
|
4515
|
+
{
|
|
4516
|
+
"id": "offline",
|
|
4517
|
+
"title": "Offline",
|
|
4518
|
+
"desc": "No connection.",
|
|
4519
|
+
"accepts": [
|
|
4520
|
+
"DataState"
|
|
4521
|
+
],
|
|
4522
|
+
"props": [
|
|
4523
|
+
{
|
|
4524
|
+
"name": "content",
|
|
4525
|
+
"type": "VNode",
|
|
4526
|
+
"desc": ""
|
|
4527
|
+
}
|
|
4528
|
+
],
|
|
4529
|
+
"use": "<UiDataState state=\"offline\" />"
|
|
4530
|
+
},
|
|
4531
|
+
{
|
|
4532
|
+
"id": "error",
|
|
4533
|
+
"title": "Error",
|
|
4534
|
+
"desc": "Failure with a retry button.",
|
|
4535
|
+
"accepts": [
|
|
4536
|
+
"DataState",
|
|
4537
|
+
"Alert"
|
|
4538
|
+
],
|
|
4539
|
+
"props": [
|
|
4540
|
+
{
|
|
4541
|
+
"name": "content",
|
|
4542
|
+
"type": "VNode",
|
|
4543
|
+
"desc": ""
|
|
4544
|
+
}
|
|
4545
|
+
],
|
|
4546
|
+
"use": "<UiDataState state=\"error\" />"
|
|
4547
|
+
},
|
|
4548
|
+
{
|
|
4549
|
+
"id": "loading",
|
|
4550
|
+
"title": "Loading",
|
|
4551
|
+
"desc": "Skeleton placeholders.",
|
|
4552
|
+
"accepts": [
|
|
4553
|
+
"Skeleton",
|
|
4554
|
+
"DataState"
|
|
4555
|
+
],
|
|
4556
|
+
"props": [
|
|
4557
|
+
{
|
|
4558
|
+
"name": "content",
|
|
4559
|
+
"type": "VNode",
|
|
4560
|
+
"desc": ""
|
|
4561
|
+
}
|
|
4562
|
+
],
|
|
4563
|
+
"use": "<UiSkeleton />"
|
|
4564
|
+
},
|
|
4565
|
+
{
|
|
4566
|
+
"id": "success",
|
|
4567
|
+
"title": "Success",
|
|
4568
|
+
"desc": "Confirmation after an action.",
|
|
4569
|
+
"accepts": [
|
|
4570
|
+
"Alert",
|
|
4571
|
+
"EmptyState"
|
|
4572
|
+
],
|
|
4573
|
+
"props": [
|
|
4574
|
+
{
|
|
4575
|
+
"name": "content",
|
|
4576
|
+
"type": "VNode",
|
|
4577
|
+
"desc": ""
|
|
4578
|
+
}
|
|
4579
|
+
],
|
|
4580
|
+
"use": "<UiAlert tone=\"success\" title=\"Saved\" />"
|
|
4581
|
+
}
|
|
4582
|
+
]
|
|
4583
|
+
},
|
|
4584
|
+
{
|
|
4585
|
+
"id": "legal",
|
|
4586
|
+
"label": "Legal",
|
|
4587
|
+
"component": "UiPageLegal",
|
|
4588
|
+
"description": "Legal document: last updated, sticky table of contents, sections, print and download.",
|
|
4589
|
+
"shell": true,
|
|
4590
|
+
"slots": [
|
|
4591
|
+
{
|
|
4592
|
+
"id": "header",
|
|
4593
|
+
"title": "Page heading",
|
|
4594
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4595
|
+
"accepts": [
|
|
4596
|
+
"PageHeader",
|
|
4597
|
+
"Breadcrumbs",
|
|
4598
|
+
"Button",
|
|
4599
|
+
"SegmentedControl"
|
|
4600
|
+
],
|
|
4601
|
+
"props": [
|
|
4602
|
+
{
|
|
4603
|
+
"name": "title",
|
|
4604
|
+
"type": "string",
|
|
4605
|
+
"desc": "H1, up to 60 characters"
|
|
4606
|
+
},
|
|
4607
|
+
{
|
|
4608
|
+
"name": "subtitle",
|
|
4609
|
+
"type": "string?",
|
|
4610
|
+
"desc": "Gray caption below the heading"
|
|
4611
|
+
},
|
|
4612
|
+
{
|
|
4613
|
+
"name": "crumbs",
|
|
4614
|
+
"type": "{label,href?}[]",
|
|
4615
|
+
"desc": "Breadcrumbs"
|
|
4616
|
+
},
|
|
4617
|
+
{
|
|
4618
|
+
"name": "actions",
|
|
4619
|
+
"type": "VNode",
|
|
4620
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4621
|
+
}
|
|
4622
|
+
],
|
|
4623
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4624
|
+
},
|
|
4625
|
+
{
|
|
4626
|
+
"id": "meta",
|
|
4627
|
+
"title": "Meta",
|
|
4628
|
+
"desc": "Version, last updated and document actions.",
|
|
4629
|
+
"accepts": [
|
|
4630
|
+
"Chip",
|
|
4631
|
+
"Button"
|
|
4632
|
+
],
|
|
4633
|
+
"props": [
|
|
4634
|
+
{
|
|
4635
|
+
"name": "content",
|
|
4636
|
+
"type": "VNode",
|
|
4637
|
+
"desc": ""
|
|
4638
|
+
}
|
|
4639
|
+
],
|
|
4640
|
+
"use": "<UiChip>Last updated 12 Mar 2026</UiChip>"
|
|
4641
|
+
},
|
|
4642
|
+
{
|
|
4643
|
+
"id": "toc",
|
|
4644
|
+
"title": "Table of contents",
|
|
4645
|
+
"desc": "Sticky list of section links.",
|
|
4646
|
+
"accepts": [
|
|
4647
|
+
"Card",
|
|
4648
|
+
"Link"
|
|
4649
|
+
],
|
|
4650
|
+
"props": [
|
|
4651
|
+
{
|
|
4652
|
+
"name": "content",
|
|
4653
|
+
"type": "VNode",
|
|
4654
|
+
"desc": ""
|
|
4655
|
+
}
|
|
4656
|
+
],
|
|
4657
|
+
"use": "<UiCard title=\"Contents\">…</UiCard>"
|
|
4658
|
+
},
|
|
4659
|
+
{
|
|
4660
|
+
"id": "document",
|
|
4661
|
+
"title": "Document",
|
|
4662
|
+
"desc": "Numbered sections of text.",
|
|
4663
|
+
"accepts": [
|
|
4664
|
+
"Card",
|
|
4665
|
+
"Heading",
|
|
4666
|
+
"Text"
|
|
4667
|
+
],
|
|
4668
|
+
"props": [
|
|
4669
|
+
{
|
|
4670
|
+
"name": "content",
|
|
4671
|
+
"type": "VNode",
|
|
4672
|
+
"desc": ""
|
|
4673
|
+
}
|
|
4674
|
+
],
|
|
4675
|
+
"use": "<UiCard>…</UiCard>"
|
|
4676
|
+
},
|
|
4677
|
+
{
|
|
4678
|
+
"id": "contact",
|
|
4679
|
+
"title": "Contact",
|
|
4680
|
+
"desc": "Questions about this document.",
|
|
4681
|
+
"accepts": [
|
|
4682
|
+
"Card",
|
|
4683
|
+
"Button"
|
|
4684
|
+
],
|
|
4685
|
+
"props": [
|
|
4686
|
+
{
|
|
4687
|
+
"name": "content",
|
|
4688
|
+
"type": "VNode",
|
|
4689
|
+
"desc": ""
|
|
4690
|
+
}
|
|
4691
|
+
],
|
|
4692
|
+
"use": "<UiCard title=\"Questions?\">…</UiCard>"
|
|
4693
|
+
}
|
|
4694
|
+
]
|
|
4695
|
+
},
|
|
4696
|
+
{
|
|
4697
|
+
"id": "locations",
|
|
4698
|
+
"label": "Locations",
|
|
4699
|
+
"component": "UiPageLocations",
|
|
4700
|
+
"description": "Locations: filters, a list of places and a sticky map panel.",
|
|
4701
|
+
"shell": true,
|
|
4702
|
+
"slots": [
|
|
4703
|
+
{
|
|
4704
|
+
"id": "header",
|
|
4705
|
+
"title": "Page heading",
|
|
4706
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4707
|
+
"accepts": [
|
|
4708
|
+
"PageHeader",
|
|
4709
|
+
"Breadcrumbs",
|
|
4710
|
+
"Button",
|
|
4711
|
+
"SegmentedControl"
|
|
4712
|
+
],
|
|
4713
|
+
"props": [
|
|
4714
|
+
{
|
|
4715
|
+
"name": "title",
|
|
4716
|
+
"type": "string",
|
|
4717
|
+
"desc": "H1, up to 60 characters"
|
|
4718
|
+
},
|
|
4719
|
+
{
|
|
4720
|
+
"name": "subtitle",
|
|
4721
|
+
"type": "string?",
|
|
4722
|
+
"desc": "Gray caption below the heading"
|
|
4723
|
+
},
|
|
4724
|
+
{
|
|
4725
|
+
"name": "crumbs",
|
|
4726
|
+
"type": "{label,href?}[]",
|
|
4727
|
+
"desc": "Breadcrumbs"
|
|
4728
|
+
},
|
|
4729
|
+
{
|
|
4730
|
+
"name": "actions",
|
|
4731
|
+
"type": "VNode",
|
|
4732
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4733
|
+
}
|
|
4734
|
+
],
|
|
4735
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4736
|
+
},
|
|
4737
|
+
{
|
|
4738
|
+
"id": "filters",
|
|
4739
|
+
"title": "Filters",
|
|
4740
|
+
"desc": "Search and category chips.",
|
|
4741
|
+
"accepts": [
|
|
4742
|
+
"SearchInput",
|
|
4743
|
+
"FilterChips"
|
|
4744
|
+
],
|
|
4745
|
+
"props": [
|
|
4746
|
+
{
|
|
4747
|
+
"name": "content",
|
|
4748
|
+
"type": "VNode",
|
|
4749
|
+
"desc": ""
|
|
4750
|
+
}
|
|
4751
|
+
],
|
|
4752
|
+
"use": "<UiSearchInput v-model=\"q\" />"
|
|
4753
|
+
},
|
|
4754
|
+
{
|
|
4755
|
+
"id": "list",
|
|
4756
|
+
"title": "Places",
|
|
4757
|
+
"desc": "Cards with name, distance and rating.",
|
|
4758
|
+
"accepts": [
|
|
4759
|
+
"Card",
|
|
4760
|
+
"Chip",
|
|
4761
|
+
"Rating"
|
|
4762
|
+
],
|
|
4763
|
+
"props": [
|
|
4764
|
+
{
|
|
4765
|
+
"name": "content",
|
|
4766
|
+
"type": "VNode",
|
|
4767
|
+
"desc": ""
|
|
4768
|
+
}
|
|
4769
|
+
],
|
|
4770
|
+
"use": "<UiCard padding=\"none\">…</UiCard>"
|
|
4771
|
+
},
|
|
4772
|
+
{
|
|
4773
|
+
"id": "map",
|
|
4774
|
+
"title": "Map",
|
|
4775
|
+
"desc": "Map with markers.",
|
|
4776
|
+
"accepts": [
|
|
4777
|
+
"Map",
|
|
4778
|
+
"Card"
|
|
4779
|
+
],
|
|
4780
|
+
"props": [
|
|
4781
|
+
{
|
|
4782
|
+
"name": "content",
|
|
4783
|
+
"type": "VNode",
|
|
4784
|
+
"desc": ""
|
|
4785
|
+
}
|
|
4786
|
+
],
|
|
4787
|
+
"use": "<UiMap :markers=\"pins\" />"
|
|
4788
|
+
}
|
|
4789
|
+
]
|
|
4790
|
+
},
|
|
4791
|
+
{
|
|
4792
|
+
"id": "booking-flow",
|
|
4793
|
+
"label": "Booking flow",
|
|
4794
|
+
"component": "UiPageBookingFlow",
|
|
4795
|
+
"description": "Booking flow: stepper from search to confirmation with a sticky summary card.",
|
|
4796
|
+
"shell": true,
|
|
4797
|
+
"slots": [
|
|
4798
|
+
{
|
|
4799
|
+
"id": "header",
|
|
4800
|
+
"title": "Page heading",
|
|
4801
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4802
|
+
"accepts": [
|
|
4803
|
+
"PageHeader",
|
|
4804
|
+
"Breadcrumbs",
|
|
4805
|
+
"Button",
|
|
4806
|
+
"SegmentedControl"
|
|
4807
|
+
],
|
|
4808
|
+
"props": [
|
|
4809
|
+
{
|
|
4810
|
+
"name": "title",
|
|
4811
|
+
"type": "string",
|
|
4812
|
+
"desc": "H1, up to 60 characters"
|
|
4813
|
+
},
|
|
4814
|
+
{
|
|
4815
|
+
"name": "subtitle",
|
|
4816
|
+
"type": "string?",
|
|
4817
|
+
"desc": "Gray caption below the heading"
|
|
4818
|
+
},
|
|
4819
|
+
{
|
|
4820
|
+
"name": "crumbs",
|
|
4821
|
+
"type": "{label,href?}[]",
|
|
4822
|
+
"desc": "Breadcrumbs"
|
|
4823
|
+
},
|
|
4824
|
+
{
|
|
4825
|
+
"name": "actions",
|
|
4826
|
+
"type": "VNode",
|
|
4827
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4828
|
+
}
|
|
4829
|
+
],
|
|
4830
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4831
|
+
},
|
|
4832
|
+
{
|
|
4833
|
+
"id": "steps",
|
|
4834
|
+
"title": "Steps",
|
|
4835
|
+
"desc": "Progress through the flow.",
|
|
4836
|
+
"accepts": [
|
|
4837
|
+
"Stepper"
|
|
4838
|
+
],
|
|
4839
|
+
"props": [
|
|
4840
|
+
{
|
|
4841
|
+
"name": "content",
|
|
4842
|
+
"type": "VNode",
|
|
4843
|
+
"desc": ""
|
|
4844
|
+
}
|
|
4845
|
+
],
|
|
4846
|
+
"use": "<UiStepper :steps=\"steps\" :current=\"1\" />"
|
|
4847
|
+
},
|
|
4848
|
+
{
|
|
4849
|
+
"id": "content",
|
|
4850
|
+
"title": "Active step",
|
|
4851
|
+
"desc": "Search, pick, guests or confirm.",
|
|
4852
|
+
"accepts": [
|
|
4853
|
+
"Card",
|
|
4854
|
+
"DatePicker",
|
|
4855
|
+
"OptionCards",
|
|
4856
|
+
"NumberInput"
|
|
4857
|
+
],
|
|
4858
|
+
"props": [
|
|
4859
|
+
{
|
|
4860
|
+
"name": "content",
|
|
4861
|
+
"type": "VNode",
|
|
4862
|
+
"desc": ""
|
|
4863
|
+
}
|
|
4864
|
+
],
|
|
4865
|
+
"use": "<UiCard title=\"Guests\">…</UiCard>"
|
|
4866
|
+
},
|
|
4867
|
+
{
|
|
4868
|
+
"id": "nav",
|
|
4869
|
+
"title": "Navigation",
|
|
4870
|
+
"desc": "Back and continue buttons.",
|
|
4871
|
+
"accepts": [
|
|
4872
|
+
"Button"
|
|
4873
|
+
],
|
|
4874
|
+
"props": [
|
|
4875
|
+
{
|
|
4876
|
+
"name": "content",
|
|
4877
|
+
"type": "VNode",
|
|
4878
|
+
"desc": ""
|
|
4879
|
+
}
|
|
4880
|
+
],
|
|
4881
|
+
"use": "<UiButton variant=\"primary\">Continue</UiButton>"
|
|
4882
|
+
},
|
|
4883
|
+
{
|
|
4884
|
+
"id": "summary",
|
|
4885
|
+
"title": "Summary",
|
|
4886
|
+
"desc": "Price and details of the booking.",
|
|
4887
|
+
"accepts": [
|
|
4888
|
+
"Card",
|
|
4889
|
+
"Descriptions",
|
|
4890
|
+
"Button"
|
|
4891
|
+
],
|
|
4892
|
+
"props": [
|
|
4893
|
+
{
|
|
4894
|
+
"name": "content",
|
|
4895
|
+
"type": "VNode",
|
|
4896
|
+
"desc": ""
|
|
4897
|
+
}
|
|
4898
|
+
],
|
|
4899
|
+
"use": "<UiCard title=\"Summary\">…</UiCard>"
|
|
4900
|
+
}
|
|
4901
|
+
]
|
|
3385
4902
|
}
|
|
3386
4903
|
]
|
|
3387
4904
|
},
|
|
@@ -9566,20 +11083,223 @@
|
|
|
9566
11083
|
"default": 1,
|
|
9567
11084
|
"description": "Page buttons shown on each side of the current page. First and last page are always shown; gaps become an ellipsis."
|
|
9568
11085
|
},
|
|
9569
|
-
"label": {
|
|
11086
|
+
"label": {
|
|
11087
|
+
"type": "string",
|
|
11088
|
+
"default": "Pagination",
|
|
11089
|
+
"description": "Accessible name of the navigation landmark."
|
|
11090
|
+
},
|
|
11091
|
+
"hideArrows": {
|
|
11092
|
+
"type": "boolean",
|
|
11093
|
+
"default": false,
|
|
11094
|
+
"description": "Hides the previous and next buttons."
|
|
11095
|
+
},
|
|
11096
|
+
"labels": {
|
|
11097
|
+
"type": "{ prev?: string; next?: string; page?: string }",
|
|
11098
|
+
"default": "{ prev: 'Previous page', next: 'Next page', page: 'Page' }",
|
|
11099
|
+
"description": "Accessible names of the arrow buttons and of each page button (\"Page 3\")."
|
|
11100
|
+
},
|
|
11101
|
+
"size": {
|
|
11102
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11103
|
+
"values": [
|
|
11104
|
+
"xs",
|
|
11105
|
+
"sm",
|
|
11106
|
+
"md",
|
|
11107
|
+
"lg",
|
|
11108
|
+
"xl"
|
|
11109
|
+
],
|
|
11110
|
+
"default": "md",
|
|
11111
|
+
"description": "Scale of button size and text."
|
|
11112
|
+
}
|
|
11113
|
+
},
|
|
11114
|
+
"events": {
|
|
11115
|
+
"change": "Called with the clicked page number (also from the previous and next buttons)."
|
|
11116
|
+
},
|
|
11117
|
+
"notes": [
|
|
11118
|
+
"Shows first, last and current plus or minus siblings with an ellipsis for gaps, so it scales to hundreds of pages. A gap of a single page shows that page instead of an ellipsis.",
|
|
11119
|
+
"Previous and next buttons carry aria-label \"Previous page\" and \"Next page\" and are disabled at the ends; the current page has aria-current=\"page\"."
|
|
11120
|
+
]
|
|
11121
|
+
},
|
|
11122
|
+
{
|
|
11123
|
+
"name": "Accordion",
|
|
11124
|
+
"tag": "UiAccordion",
|
|
11125
|
+
"group": "navigation",
|
|
11126
|
+
"description": "Vertical list of collapsible sections where one is open at a time; use for FAQs and grouped details.",
|
|
11127
|
+
"props": {
|
|
11128
|
+
"items": {
|
|
11129
|
+
"type": "{ id: string; title: string; body: string | VNode }[]",
|
|
11130
|
+
"default": "[]",
|
|
11131
|
+
"description": "Sections. id must be unique; body is shown when the section is open."
|
|
11132
|
+
},
|
|
11133
|
+
"size": {
|
|
11134
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11135
|
+
"values": [
|
|
11136
|
+
"xs",
|
|
11137
|
+
"sm",
|
|
11138
|
+
"md",
|
|
11139
|
+
"lg",
|
|
11140
|
+
"xl"
|
|
11141
|
+
],
|
|
11142
|
+
"default": "md",
|
|
11143
|
+
"description": "Scale of header padding and text."
|
|
11144
|
+
}
|
|
11145
|
+
},
|
|
11146
|
+
"notes": [
|
|
11147
|
+
"Open state is internal and single: opening one closes the others, all start closed."
|
|
11148
|
+
]
|
|
11149
|
+
},
|
|
11150
|
+
{
|
|
11151
|
+
"name": "Avatar",
|
|
11152
|
+
"tag": "UiAvatar",
|
|
11153
|
+
"group": "media",
|
|
11154
|
+
"description": "Round user picture that falls back to initials when there is no image.",
|
|
11155
|
+
"props": {
|
|
11156
|
+
"name": {
|
|
11157
|
+
"type": "string",
|
|
11158
|
+
"description": "Full name. Shown as the tooltip and used for up to two initials; \"?\" when empty."
|
|
11159
|
+
},
|
|
11160
|
+
"src": {
|
|
11161
|
+
"type": "string",
|
|
11162
|
+
"description": "Image URL. Initials are shown without it."
|
|
11163
|
+
},
|
|
11164
|
+
"initials": {
|
|
11165
|
+
"type": "string",
|
|
11166
|
+
"description": "Explicit initials (up to 3 characters, uppercased) instead of the ones derived from name."
|
|
11167
|
+
},
|
|
11168
|
+
"tone": {
|
|
11169
|
+
"type": "'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'",
|
|
11170
|
+
"values": [
|
|
11171
|
+
"brand",
|
|
11172
|
+
"sky",
|
|
11173
|
+
"success",
|
|
11174
|
+
"warning",
|
|
11175
|
+
"danger",
|
|
11176
|
+
"neutral"
|
|
11177
|
+
],
|
|
11178
|
+
"default": "brand",
|
|
11179
|
+
"description": "Background color of the initials avatar."
|
|
11180
|
+
},
|
|
11181
|
+
"shape": {
|
|
11182
|
+
"type": "'circle' | 'rounded'",
|
|
11183
|
+
"values": [
|
|
11184
|
+
"circle",
|
|
11185
|
+
"rounded"
|
|
11186
|
+
],
|
|
11187
|
+
"default": "circle",
|
|
11188
|
+
"description": "rounded gives a squircle with a 30% corner radius."
|
|
11189
|
+
},
|
|
11190
|
+
"ring": {
|
|
11191
|
+
"type": "boolean",
|
|
11192
|
+
"default": false,
|
|
11193
|
+
"description": "Adds a background-colored ring so overlapping avatars stay separated."
|
|
11194
|
+
},
|
|
11195
|
+
"status": {
|
|
11196
|
+
"type": "'online' | 'offline' | 'away' | 'busy'",
|
|
11197
|
+
"values": [
|
|
11198
|
+
"online",
|
|
11199
|
+
"offline",
|
|
11200
|
+
"away",
|
|
11201
|
+
"busy"
|
|
11202
|
+
],
|
|
11203
|
+
"description": "Shows a presence dot in the bottom corner."
|
|
11204
|
+
},
|
|
11205
|
+
"size": {
|
|
11206
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number",
|
|
11207
|
+
"values": [
|
|
11208
|
+
"xs",
|
|
11209
|
+
"sm",
|
|
11210
|
+
"md",
|
|
11211
|
+
"lg",
|
|
11212
|
+
"xl"
|
|
11213
|
+
],
|
|
11214
|
+
"default": "md",
|
|
11215
|
+
"description": "Diameter: xs 24, sm 32, md 40, lg 56, xl 72 px. A number is used directly as px."
|
|
11216
|
+
}
|
|
11217
|
+
},
|
|
11218
|
+
"notes": [
|
|
11219
|
+
"Avatar sizes differ from other components (lg 56, xl 72), and a number gives any custom size."
|
|
11220
|
+
]
|
|
11221
|
+
},
|
|
11222
|
+
{
|
|
11223
|
+
"name": "Icon",
|
|
11224
|
+
"tag": "UiIcon",
|
|
11225
|
+
"group": "media",
|
|
11226
|
+
"description": "Renders a named icon from the library at a chosen size.",
|
|
11227
|
+
"props": {
|
|
11228
|
+
"name": {
|
|
11229
|
+
"type": "string",
|
|
11230
|
+
"default": "circle",
|
|
11231
|
+
"description": "Icon name from the library, for example \"check\" or \"map-pin\"."
|
|
11232
|
+
},
|
|
11233
|
+
"size": {
|
|
11234
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number",
|
|
11235
|
+
"values": [
|
|
11236
|
+
"xs",
|
|
11237
|
+
"sm",
|
|
11238
|
+
"md",
|
|
11239
|
+
"lg",
|
|
11240
|
+
"xl"
|
|
11241
|
+
],
|
|
11242
|
+
"default": "md",
|
|
11243
|
+
"description": "Pixel size: xs 14, sm 16, md 20, lg 24, xl 32. A number is used directly as px."
|
|
11244
|
+
}
|
|
11245
|
+
},
|
|
11246
|
+
"notes": [
|
|
11247
|
+
"The icon is aria-hidden; add a label on the surrounding control for accessibility.",
|
|
11248
|
+
"Icons load lazily, so the glyph may appear a moment after first render."
|
|
11249
|
+
]
|
|
11250
|
+
},
|
|
11251
|
+
{
|
|
11252
|
+
"name": "LazyImage",
|
|
11253
|
+
"tag": "UiLazyImage",
|
|
11254
|
+
"group": "media",
|
|
11255
|
+
"description": "Image box with a fixed aspect ratio and rounded corners, rendered as a background image.",
|
|
11256
|
+
"props": {
|
|
11257
|
+
"src": {
|
|
11258
|
+
"type": "string",
|
|
11259
|
+
"description": "Image URL. An empty placeholder is shown without it."
|
|
11260
|
+
},
|
|
11261
|
+
"alt": {
|
|
11262
|
+
"type": "string",
|
|
11263
|
+
"default": "",
|
|
11264
|
+
"description": "Accessible description, exposed as aria-label on role=\"img\"."
|
|
11265
|
+
},
|
|
11266
|
+
"aspectRatio": {
|
|
11267
|
+
"type": "string",
|
|
11268
|
+
"default": "16/9",
|
|
11269
|
+
"description": "CSS aspect-ratio value such as \"1/1\" or \"4/3\"."
|
|
11270
|
+
},
|
|
11271
|
+
"rounded": {
|
|
11272
|
+
"type": "number",
|
|
11273
|
+
"default": 20,
|
|
11274
|
+
"description": "Corner radius in px."
|
|
11275
|
+
}
|
|
11276
|
+
}
|
|
11277
|
+
},
|
|
11278
|
+
{
|
|
11279
|
+
"name": "Gallery",
|
|
11280
|
+
"tag": "UiGallery",
|
|
11281
|
+
"group": "media",
|
|
11282
|
+
"description": "Large image with a counter and a thumbnail strip for browsing a set of photos.",
|
|
11283
|
+
"props": {
|
|
11284
|
+
"images": {
|
|
11285
|
+
"type": "string[]",
|
|
11286
|
+
"required": true,
|
|
11287
|
+
"default": [],
|
|
11288
|
+
"description": "Image URLs. The first one is shown initially; clicking a thumbnail switches the main image."
|
|
11289
|
+
},
|
|
11290
|
+
"alt": {
|
|
9570
11291
|
"type": "string",
|
|
9571
|
-
"default": "
|
|
9572
|
-
"description": "Accessible
|
|
11292
|
+
"default": "",
|
|
11293
|
+
"description": "Accessible description of the main image."
|
|
9573
11294
|
},
|
|
9574
|
-
"
|
|
9575
|
-
"type": "
|
|
9576
|
-
"
|
|
9577
|
-
"description": "Hides the previous and next buttons."
|
|
11295
|
+
"index": {
|
|
11296
|
+
"type": "number",
|
|
11297
|
+
"description": "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."
|
|
9578
11298
|
},
|
|
9579
11299
|
"labels": {
|
|
9580
|
-
"type": "{
|
|
9581
|
-
"default": "{
|
|
9582
|
-
"description": "
|
|
11300
|
+
"type": "{ photo?: string }",
|
|
11301
|
+
"default": "{ photo: 'Photo' }",
|
|
11302
|
+
"description": "Override the thumbnail aria-label prefix."
|
|
9583
11303
|
},
|
|
9584
11304
|
"size": {
|
|
9585
11305
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -9591,27 +11311,44 @@
|
|
|
9591
11311
|
"xl"
|
|
9592
11312
|
],
|
|
9593
11313
|
"default": "md",
|
|
9594
|
-
"description": "
|
|
11314
|
+
"description": "Thumbnail strip size."
|
|
9595
11315
|
}
|
|
9596
11316
|
},
|
|
9597
11317
|
"events": {
|
|
9598
|
-
"change": "Called with the
|
|
11318
|
+
"change": "Called with the new image index when a thumbnail is clicked."
|
|
9599
11319
|
},
|
|
9600
11320
|
"notes": [
|
|
9601
|
-
"
|
|
9602
|
-
"Previous and next buttons carry aria-label \"Previous page\" and \"Next page\" and are disabled at the ends; the current page has aria-current=\"page\"."
|
|
11321
|
+
"An empty or missing images array renders an empty frame (no counter, no thumbnails). Invalid index values are clamped to the available range."
|
|
9603
11322
|
]
|
|
9604
11323
|
},
|
|
9605
11324
|
{
|
|
9606
|
-
"name": "
|
|
9607
|
-
"tag": "
|
|
9608
|
-
"group": "
|
|
9609
|
-
"description": "
|
|
11325
|
+
"name": "Carousel",
|
|
11326
|
+
"tag": "UiCarousel",
|
|
11327
|
+
"group": "media",
|
|
11328
|
+
"description": "Slideshow of image slides with captions, arrows and dot pagination.",
|
|
9610
11329
|
"props": {
|
|
9611
11330
|
"items": {
|
|
9612
|
-
"type": "{
|
|
9613
|
-
"
|
|
9614
|
-
"
|
|
11331
|
+
"type": "{ image?: string; title: string; sub?: string }[]",
|
|
11332
|
+
"required": true,
|
|
11333
|
+
"default": [],
|
|
11334
|
+
"description": "Slides. title and sub form the caption over the image."
|
|
11335
|
+
},
|
|
11336
|
+
"index": {
|
|
11337
|
+
"type": "number",
|
|
11338
|
+
"description": "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."
|
|
11339
|
+
},
|
|
11340
|
+
"autoplay": {
|
|
11341
|
+
"type": "number | boolean",
|
|
11342
|
+
"description": "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."
|
|
11343
|
+
},
|
|
11344
|
+
"label": {
|
|
11345
|
+
"type": "string",
|
|
11346
|
+
"description": "Accessible name of the carousel region."
|
|
11347
|
+
},
|
|
11348
|
+
"labels": {
|
|
11349
|
+
"type": "{ prev?: string; next?: string; slide?: string }",
|
|
11350
|
+
"default": "{ prev: 'Previous', next: 'Next', slide: 'Slide' }",
|
|
11351
|
+
"description": "Override the aria-labels of the arrows and dots."
|
|
9615
11352
|
},
|
|
9616
11353
|
"size": {
|
|
9617
11354
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -9623,70 +11360,199 @@
|
|
|
9623
11360
|
"xl"
|
|
9624
11361
|
],
|
|
9625
11362
|
"default": "md",
|
|
9626
|
-
"description": "
|
|
11363
|
+
"description": "Slide aspect ratio and caption size: xs 16/6, sm 16/7, md 16/8, lg 16/9, xl 16/10."
|
|
9627
11364
|
}
|
|
9628
11365
|
},
|
|
11366
|
+
"events": {
|
|
11367
|
+
"change": "Called with the new slide index on arrow, dot, keyboard (left and right arrows) and autoplay changes."
|
|
11368
|
+
},
|
|
9629
11369
|
"notes": [
|
|
9630
|
-
"
|
|
11370
|
+
"Arrows wrap around at both ends and are hidden with fewer than 2 slides; an empty items array renders an empty frame.",
|
|
11371
|
+
"Autoplay has no visible pause button; hover or focus pauses it. Prefer a manual carousel for essential content."
|
|
9631
11372
|
]
|
|
9632
11373
|
},
|
|
9633
11374
|
{
|
|
9634
|
-
"name": "
|
|
9635
|
-
"tag": "
|
|
11375
|
+
"name": "Map",
|
|
11376
|
+
"tag": "UiMap",
|
|
9636
11377
|
"group": "media",
|
|
9637
|
-
"description": "
|
|
11378
|
+
"description": "Interactive raster map with panning, zoom buttons and clickable markers, using OpenStreetMap data via CARTO tiles.",
|
|
11379
|
+
"props": {
|
|
11380
|
+
"lat": {
|
|
11381
|
+
"type": "number",
|
|
11382
|
+
"default": 21.4225,
|
|
11383
|
+
"description": "Initial center latitude."
|
|
11384
|
+
},
|
|
11385
|
+
"lon": {
|
|
11386
|
+
"type": "number",
|
|
11387
|
+
"default": 39.8262,
|
|
11388
|
+
"description": "Initial center longitude."
|
|
11389
|
+
},
|
|
11390
|
+
"zoom": {
|
|
11391
|
+
"type": "number",
|
|
11392
|
+
"default": 14,
|
|
11393
|
+
"description": "Initial zoom level; the zoom buttons clamp it to 3..18."
|
|
11394
|
+
},
|
|
11395
|
+
"markers": {
|
|
11396
|
+
"type": "{ lat: number; lon: number; label?: string; icon?: string; tone?: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' }[]",
|
|
11397
|
+
"default": [],
|
|
11398
|
+
"description": "Pins. label is the tooltip, icon defaults to \"map-pin\"."
|
|
11399
|
+
},
|
|
11400
|
+
"width": {
|
|
11401
|
+
"type": "number",
|
|
11402
|
+
"default": 640,
|
|
11403
|
+
"description": "Pixel width used to compute which tiles to load; the map element itself fills its container."
|
|
11404
|
+
},
|
|
11405
|
+
"height": {
|
|
11406
|
+
"type": "number",
|
|
11407
|
+
"default": 360,
|
|
11408
|
+
"description": "Height in px."
|
|
11409
|
+
},
|
|
11410
|
+
"theme": {
|
|
11411
|
+
"type": "'light' | 'dark'",
|
|
11412
|
+
"values": [
|
|
11413
|
+
"light",
|
|
11414
|
+
"dark"
|
|
11415
|
+
],
|
|
11416
|
+
"description": "Tile theme. If omitted, dark is used when the page is inside a dark data-theme."
|
|
11417
|
+
},
|
|
11418
|
+
"style": {
|
|
11419
|
+
"type": "string",
|
|
11420
|
+
"description": "CARTO tile style path, for example \"light_all\" or \"dark_all\". Overrides theme."
|
|
11421
|
+
},
|
|
11422
|
+
"label": {
|
|
11423
|
+
"type": "string",
|
|
11424
|
+
"default": "Map",
|
|
11425
|
+
"description": "aria-label of the map region."
|
|
11426
|
+
},
|
|
11427
|
+
"labels": {
|
|
11428
|
+
"type": "{ zoomIn?: string; zoomOut?: string }",
|
|
11429
|
+
"default": "{ zoomIn: 'Zoom in', zoomOut: 'Zoom out' }",
|
|
11430
|
+
"description": "Accessible names of the zoom buttons."
|
|
11431
|
+
}
|
|
11432
|
+
},
|
|
11433
|
+
"events": {
|
|
11434
|
+
"select": "Called with the marker object when a marker is clicked.",
|
|
11435
|
+
"move": "Called with { lat, lon, zoom } while the user pans or zooms (drag, touch, wheel, double click or the +/- buttons).",
|
|
11436
|
+
"zoom": "Called with the new zoom level when it changes."
|
|
11437
|
+
},
|
|
11438
|
+
"notes": [
|
|
11439
|
+
"The center and zoom props are initial values; user panning and zooming is kept in internal state. Listen to move/zoom to track it.",
|
|
11440
|
+
"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.",
|
|
11441
|
+
"Tiles come from a third-party CDN, so it needs network access."
|
|
11442
|
+
]
|
|
11443
|
+
},
|
|
11444
|
+
{
|
|
11445
|
+
"name": "ProfileHeader",
|
|
11446
|
+
"tag": "UiProfileHeader",
|
|
11447
|
+
"group": "media",
|
|
11448
|
+
"description": "Profile card with a cover image, large avatar, name and a row of meta items.",
|
|
9638
11449
|
"props": {
|
|
9639
11450
|
"name": {
|
|
9640
11451
|
"type": "string",
|
|
9641
|
-
"
|
|
11452
|
+
"required": true,
|
|
11453
|
+
"description": "Person or organization name."
|
|
9642
11454
|
},
|
|
9643
11455
|
"src": {
|
|
9644
11456
|
"type": "string",
|
|
9645
|
-
"description": "
|
|
11457
|
+
"description": "Avatar image URL; initials are shown without it."
|
|
9646
11458
|
},
|
|
9647
|
-
"
|
|
11459
|
+
"cover": {
|
|
9648
11460
|
"type": "string",
|
|
9649
|
-
"description": "
|
|
9650
|
-
},
|
|
9651
|
-
"tone": {
|
|
9652
|
-
"type": "'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'",
|
|
9653
|
-
"values": [
|
|
9654
|
-
"brand",
|
|
9655
|
-
"sky",
|
|
9656
|
-
"success",
|
|
9657
|
-
"warning",
|
|
9658
|
-
"danger",
|
|
9659
|
-
"neutral"
|
|
9660
|
-
],
|
|
9661
|
-
"default": "brand",
|
|
9662
|
-
"description": "Background color of the initials avatar."
|
|
11461
|
+
"description": "Cover image URL."
|
|
9663
11462
|
},
|
|
9664
|
-
"
|
|
9665
|
-
"type": "
|
|
9666
|
-
"
|
|
9667
|
-
|
|
9668
|
-
|
|
9669
|
-
|
|
9670
|
-
|
|
9671
|
-
|
|
11463
|
+
"meta": {
|
|
11464
|
+
"type": "{ icon: string; label: string }[]",
|
|
11465
|
+
"default": [],
|
|
11466
|
+
"description": "Facts under the name such as location or join date. label must be unique."
|
|
11467
|
+
}
|
|
11468
|
+
},
|
|
11469
|
+
"slots": {
|
|
11470
|
+
"default": "Extra content on the right of the name row, usually action buttons."
|
|
11471
|
+
}
|
|
11472
|
+
},
|
|
11473
|
+
{
|
|
11474
|
+
"name": "ChatAi",
|
|
11475
|
+
"tag": "UiChatAi",
|
|
11476
|
+
"group": "media",
|
|
11477
|
+
"description": "Chat panel with message bubbles, a typing indicator and an input, for AI assistant UIs.",
|
|
11478
|
+
"props": {
|
|
11479
|
+
"messages": {
|
|
11480
|
+
"type": "{ role: 'user' | 'ai'; text: string }[]",
|
|
11481
|
+
"required": true,
|
|
11482
|
+
"default": [],
|
|
11483
|
+
"description": "Conversation in order. Any role other than \"user\" renders as an assistant bubble."
|
|
9672
11484
|
},
|
|
9673
|
-
"
|
|
11485
|
+
"loading": {
|
|
9674
11486
|
"type": "boolean",
|
|
9675
11487
|
"default": false,
|
|
9676
|
-
"description": "
|
|
11488
|
+
"description": "Shows the typing dots and disables sending."
|
|
11489
|
+
},
|
|
11490
|
+
"title": {
|
|
11491
|
+
"type": "string",
|
|
11492
|
+
"default": "Assistant",
|
|
11493
|
+
"description": "Header title; also the aria-label. The header renders only when set."
|
|
11494
|
+
},
|
|
11495
|
+
"subtitle": {
|
|
11496
|
+
"type": "string",
|
|
11497
|
+
"description": "Muted text next to the title."
|
|
11498
|
+
},
|
|
11499
|
+
"placeholder": {
|
|
11500
|
+
"type": "string",
|
|
11501
|
+
"default": "Ask anything…",
|
|
11502
|
+
"description": "Input placeholder."
|
|
11503
|
+
}
|
|
11504
|
+
},
|
|
11505
|
+
"events": {
|
|
11506
|
+
"send": "Called with the trimmed message text when the user presses Enter or the send button. The component does not append it to messages."
|
|
11507
|
+
},
|
|
11508
|
+
"notes": [
|
|
11509
|
+
"Append the user message and the reply to messages yourself; set loading while waiting."
|
|
11510
|
+
]
|
|
11511
|
+
},
|
|
11512
|
+
{
|
|
11513
|
+
"name": "HotelCard",
|
|
11514
|
+
"tag": "UiHotelCard",
|
|
11515
|
+
"group": "domain",
|
|
11516
|
+
"description": "Hotel listing card with photo, tags, stars, distance, rating and nightly price; use in catalogs and search results.",
|
|
11517
|
+
"props": {
|
|
11518
|
+
"name": {
|
|
11519
|
+
"type": "string",
|
|
11520
|
+
"required": true,
|
|
11521
|
+
"description": "Hotel name."
|
|
11522
|
+
},
|
|
11523
|
+
"image": {
|
|
11524
|
+
"type": "string",
|
|
11525
|
+
"description": "Photo URL, used as the card background image."
|
|
11526
|
+
},
|
|
11527
|
+
"tags": {
|
|
11528
|
+
"type": "string[]",
|
|
11529
|
+
"default": "[]",
|
|
11530
|
+
"description": "Brand badges over the photo, e.g. \"Haram view\"."
|
|
11531
|
+
},
|
|
11532
|
+
"stars": {
|
|
11533
|
+
"type": "number",
|
|
11534
|
+
"default": 0,
|
|
11535
|
+
"description": "Star class 0-5, rendered as repeated stars."
|
|
11536
|
+
},
|
|
11537
|
+
"distance": {
|
|
11538
|
+
"type": "string",
|
|
11539
|
+
"description": "Distance caption next to the stars, e.g. \"120 m to the Haram\"."
|
|
11540
|
+
},
|
|
11541
|
+
"rating": {
|
|
11542
|
+
"type": "string | number",
|
|
11543
|
+
"description": "Guest rating shown in a green badge, e.g. 9.2."
|
|
11544
|
+
},
|
|
11545
|
+
"price": {
|
|
11546
|
+
"type": "number",
|
|
11547
|
+
"description": "Price per unit, formatted with thousand separators; the currency label is fixed to SAR."
|
|
9677
11548
|
},
|
|
9678
|
-
"
|
|
9679
|
-
"type": "
|
|
9680
|
-
"
|
|
9681
|
-
|
|
9682
|
-
"offline",
|
|
9683
|
-
"away",
|
|
9684
|
-
"busy"
|
|
9685
|
-
],
|
|
9686
|
-
"description": "Shows a presence dot in the bottom corner."
|
|
11549
|
+
"night": {
|
|
11550
|
+
"type": "string",
|
|
11551
|
+
"default": "night",
|
|
11552
|
+
"description": "Unit after \"SAR /\", e.g. \"night\"."
|
|
9687
11553
|
},
|
|
9688
11554
|
"size": {
|
|
9689
|
-
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
11555
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
9690
11556
|
"values": [
|
|
9691
11557
|
"xs",
|
|
9692
11558
|
"sm",
|
|
@@ -9695,26 +11561,45 @@
|
|
|
9695
11561
|
"xl"
|
|
9696
11562
|
],
|
|
9697
11563
|
"default": "md",
|
|
9698
|
-
"description": "
|
|
11564
|
+
"description": "Scales padding, text and avatars."
|
|
9699
11565
|
}
|
|
9700
11566
|
},
|
|
9701
11567
|
"notes": [
|
|
9702
|
-
"
|
|
11568
|
+
"Currency is hard-coded to SAR.",
|
|
11569
|
+
"Wrap in a clickable element yourself; the card has no click handler."
|
|
9703
11570
|
]
|
|
9704
11571
|
},
|
|
9705
11572
|
{
|
|
9706
|
-
"name": "
|
|
9707
|
-
"tag": "
|
|
9708
|
-
"group": "
|
|
9709
|
-
"description": "
|
|
11573
|
+
"name": "TourCard",
|
|
11574
|
+
"tag": "UiTourCard",
|
|
11575
|
+
"group": "domain",
|
|
11576
|
+
"description": "Tour or virtual-tour card with session count and a seat-occupancy bar.",
|
|
9710
11577
|
"props": {
|
|
9711
11578
|
"name": {
|
|
9712
11579
|
"type": "string",
|
|
9713
|
-
"
|
|
9714
|
-
"description": "
|
|
11580
|
+
"required": true,
|
|
11581
|
+
"description": "Tour title."
|
|
11582
|
+
},
|
|
11583
|
+
"city": {
|
|
11584
|
+
"type": "string",
|
|
11585
|
+
"description": "City shown in the subtitle."
|
|
11586
|
+
},
|
|
11587
|
+
"sessions": {
|
|
11588
|
+
"type": "number",
|
|
11589
|
+
"description": "Number of sessions, shown as \"N sessions\"."
|
|
11590
|
+
},
|
|
11591
|
+
"booked": {
|
|
11592
|
+
"type": "number",
|
|
11593
|
+
"required": true,
|
|
11594
|
+
"description": "Seats already booked."
|
|
11595
|
+
},
|
|
11596
|
+
"seats": {
|
|
11597
|
+
"type": "number",
|
|
11598
|
+
"required": true,
|
|
11599
|
+
"description": "Total seats; the bar shows booked / seats."
|
|
9715
11600
|
},
|
|
9716
11601
|
"size": {
|
|
9717
|
-
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
11602
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
9718
11603
|
"values": [
|
|
9719
11604
|
"xs",
|
|
9720
11605
|
"sm",
|
|
@@ -9723,66 +11608,31 @@
|
|
|
9723
11608
|
"xl"
|
|
9724
11609
|
],
|
|
9725
11610
|
"default": "md",
|
|
9726
|
-
"description": "
|
|
11611
|
+
"description": "Scales padding, text and avatars."
|
|
9727
11612
|
}
|
|
9728
11613
|
},
|
|
11614
|
+
"slots": {
|
|
11615
|
+
"actions": "Footer actions, usually Buttons."
|
|
11616
|
+
},
|
|
9729
11617
|
"notes": [
|
|
9730
|
-
"
|
|
9731
|
-
"
|
|
11618
|
+
"A fixed \"360°\" badge is always shown.",
|
|
11619
|
+
"With seats = 0 or missing the bar is empty (0%) and the meta reads \"0/0\"."
|
|
9732
11620
|
]
|
|
9733
11621
|
},
|
|
9734
11622
|
{
|
|
9735
|
-
"name": "
|
|
9736
|
-
"tag": "
|
|
9737
|
-
"group": "
|
|
9738
|
-
"description": "
|
|
9739
|
-
"props": {
|
|
9740
|
-
"src": {
|
|
9741
|
-
"type": "string",
|
|
9742
|
-
"description": "Image URL. An empty placeholder is shown without it."
|
|
9743
|
-
},
|
|
9744
|
-
"alt": {
|
|
9745
|
-
"type": "string",
|
|
9746
|
-
"default": "",
|
|
9747
|
-
"description": "Accessible description, exposed as aria-label on role=\"img\"."
|
|
9748
|
-
},
|
|
9749
|
-
"aspectRatio": {
|
|
9750
|
-
"type": "string",
|
|
9751
|
-
"default": "16/9",
|
|
9752
|
-
"description": "CSS aspect-ratio value such as \"1/1\" or \"4/3\"."
|
|
9753
|
-
},
|
|
9754
|
-
"rounded": {
|
|
9755
|
-
"type": "number",
|
|
9756
|
-
"default": 20,
|
|
9757
|
-
"description": "Corner radius in px."
|
|
9758
|
-
}
|
|
9759
|
-
}
|
|
9760
|
-
},
|
|
9761
|
-
{
|
|
9762
|
-
"name": "Gallery",
|
|
9763
|
-
"tag": "UiGallery",
|
|
9764
|
-
"group": "media",
|
|
9765
|
-
"description": "Large image with a counter and a thumbnail strip for browsing a set of photos.",
|
|
11623
|
+
"name": "PrayerTimes",
|
|
11624
|
+
"tag": "UiPrayerTimes",
|
|
11625
|
+
"group": "domain",
|
|
11626
|
+
"description": "Row of daily prayer times with the upcoming prayer highlighted.",
|
|
9766
11627
|
"props": {
|
|
9767
|
-
"
|
|
9768
|
-
"type": "string[]",
|
|
9769
|
-
"
|
|
9770
|
-
"
|
|
9771
|
-
"description": "Image URLs. The first one is shown initially; clicking a thumbnail switches the main image."
|
|
9772
|
-
},
|
|
9773
|
-
"alt": {
|
|
9774
|
-
"type": "string",
|
|
9775
|
-
"default": "",
|
|
9776
|
-
"description": "Accessible description of the main image."
|
|
11628
|
+
"items": {
|
|
11629
|
+
"type": "{ name: string; time: string }[]",
|
|
11630
|
+
"default": "[]",
|
|
11631
|
+
"description": "Prayers in display order; time is shown as-is, e.g. \"05:12\"."
|
|
9777
11632
|
},
|
|
9778
|
-
"
|
|
11633
|
+
"next": {
|
|
9779
11634
|
"type": "number",
|
|
9780
|
-
"description": "
|
|
9781
|
-
},
|
|
9782
|
-
"labels": {
|
|
9783
|
-
"type": "{ photo?: string }",
|
|
9784
|
-
"default": "{ photo: 'Photo' }",
|
|
9785
|
-
"description": "Override the thumbnail aria-label prefix."
|
|
11635
|
+
"description": "Index in items of the next prayer; sets aria-current on it."
|
|
9786
11636
|
},
|
|
9787
11637
|
"size": {
|
|
9788
11638
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -9794,44 +11644,20 @@
|
|
|
9794
11644
|
"xl"
|
|
9795
11645
|
],
|
|
9796
11646
|
"default": "md",
|
|
9797
|
-
"description": "
|
|
11647
|
+
"description": "Scales padding, text and avatars."
|
|
9798
11648
|
}
|
|
9799
|
-
}
|
|
9800
|
-
"events": {
|
|
9801
|
-
"change": "Called with the new image index when a thumbnail is clicked."
|
|
9802
|
-
},
|
|
9803
|
-
"notes": [
|
|
9804
|
-
"An empty or missing images array renders an empty frame (no counter, no thumbnails). Invalid index values are clamped to the available range."
|
|
9805
|
-
]
|
|
11649
|
+
}
|
|
9806
11650
|
},
|
|
9807
11651
|
{
|
|
9808
|
-
"name": "
|
|
9809
|
-
"tag": "
|
|
9810
|
-
"group": "
|
|
9811
|
-
"description": "
|
|
11652
|
+
"name": "RamadanTracker",
|
|
11653
|
+
"tag": "UiRamadanTracker",
|
|
11654
|
+
"group": "domain",
|
|
11655
|
+
"description": "Thirty-day Ramadan progress strip; the last ten days and odd nights are marked.",
|
|
9812
11656
|
"props": {
|
|
9813
|
-
"
|
|
9814
|
-
"type": "{ image?: string; title: string; sub?: string }[]",
|
|
9815
|
-
"required": true,
|
|
9816
|
-
"default": [],
|
|
9817
|
-
"description": "Slides. title and sub form the caption over the image."
|
|
9818
|
-
},
|
|
9819
|
-
"index": {
|
|
11657
|
+
"day": {
|
|
9820
11658
|
"type": "number",
|
|
9821
|
-
"
|
|
9822
|
-
|
|
9823
|
-
"autoplay": {
|
|
9824
|
-
"type": "number | boolean",
|
|
9825
|
-
"description": "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."
|
|
9826
|
-
},
|
|
9827
|
-
"label": {
|
|
9828
|
-
"type": "string",
|
|
9829
|
-
"description": "Accessible name of the carousel region."
|
|
9830
|
-
},
|
|
9831
|
-
"labels": {
|
|
9832
|
-
"type": "{ prev?: string; next?: string; slide?: string }",
|
|
9833
|
-
"default": "{ prev: 'Previous', next: 'Next', slide: 'Slide' }",
|
|
9834
|
-
"description": "Override the aria-labels of the arrows and dots."
|
|
11659
|
+
"required": true,
|
|
11660
|
+
"description": "Current day 1-30. Earlier days render as past, later days as upcoming."
|
|
9835
11661
|
},
|
|
9836
11662
|
"size": {
|
|
9837
11663
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -9843,196 +11669,157 @@
|
|
|
9843
11669
|
"xl"
|
|
9844
11670
|
],
|
|
9845
11671
|
"default": "md",
|
|
9846
|
-
"description": "
|
|
11672
|
+
"description": "Scales padding, text and avatars."
|
|
9847
11673
|
}
|
|
9848
11674
|
},
|
|
9849
|
-
"events": {
|
|
9850
|
-
"change": "Called with the new slide index on arrow, dot, keyboard (left and right arrows) and autoplay changes."
|
|
9851
|
-
},
|
|
9852
11675
|
"notes": [
|
|
9853
|
-
"
|
|
9854
|
-
"Autoplay has no visible pause button; hover or focus pauses it. Prefer a manual carousel for essential content."
|
|
11676
|
+
"Exposed as role=\"img\" with aria-label \"Day N of 30\"."
|
|
9855
11677
|
]
|
|
9856
11678
|
},
|
|
9857
11679
|
{
|
|
9858
|
-
"name": "
|
|
9859
|
-
"tag": "
|
|
9860
|
-
"group": "
|
|
9861
|
-
"description": "
|
|
11680
|
+
"name": "BookingCard",
|
|
11681
|
+
"tag": "UiBookingCard",
|
|
11682
|
+
"group": "domain",
|
|
11683
|
+
"description": "Compact booking summary: code, status, guest, hotel, dates and total.",
|
|
9862
11684
|
"props": {
|
|
9863
|
-
"
|
|
9864
|
-
"type": "
|
|
9865
|
-
"
|
|
9866
|
-
"description": "
|
|
9867
|
-
},
|
|
9868
|
-
"lon": {
|
|
9869
|
-
"type": "number",
|
|
9870
|
-
"default": 39.8262,
|
|
9871
|
-
"description": "Initial center longitude."
|
|
9872
|
-
},
|
|
9873
|
-
"zoom": {
|
|
9874
|
-
"type": "number",
|
|
9875
|
-
"default": 14,
|
|
9876
|
-
"description": "Initial zoom level; the zoom buttons clamp it to 3..18."
|
|
9877
|
-
},
|
|
9878
|
-
"markers": {
|
|
9879
|
-
"type": "{ lat: number; lon: number; label?: string; icon?: string; tone?: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' }[]",
|
|
9880
|
-
"default": [],
|
|
9881
|
-
"description": "Pins. label is the tooltip, icon defaults to \"map-pin\"."
|
|
9882
|
-
},
|
|
9883
|
-
"width": {
|
|
9884
|
-
"type": "number",
|
|
9885
|
-
"default": 640,
|
|
9886
|
-
"description": "Pixel width used to compute which tiles to load; the map element itself fills its container."
|
|
9887
|
-
},
|
|
9888
|
-
"height": {
|
|
9889
|
-
"type": "number",
|
|
9890
|
-
"default": 360,
|
|
9891
|
-
"description": "Height in px."
|
|
11685
|
+
"code": {
|
|
11686
|
+
"type": "string",
|
|
11687
|
+
"required": true,
|
|
11688
|
+
"description": "Booking reference, monospaced."
|
|
9892
11689
|
},
|
|
9893
|
-
"
|
|
9894
|
-
"type": "'
|
|
11690
|
+
"status": {
|
|
11691
|
+
"type": "'Confirmed' | 'Pending' | 'Cancelled' | string",
|
|
9895
11692
|
"values": [
|
|
9896
|
-
"
|
|
9897
|
-
"
|
|
11693
|
+
"Confirmed",
|
|
11694
|
+
"Pending",
|
|
11695
|
+
"Cancelled"
|
|
9898
11696
|
],
|
|
9899
|
-
"description": "
|
|
11697
|
+
"description": "Status text. Confirmed is green, Pending amber, Cancelled red; any other value gets a neutral badge."
|
|
9900
11698
|
},
|
|
9901
|
-
"
|
|
11699
|
+
"guest": {
|
|
9902
11700
|
"type": "string",
|
|
9903
|
-
"description": "
|
|
11701
|
+
"description": "Guest name, also drives the avatar initials."
|
|
9904
11702
|
},
|
|
9905
|
-
"
|
|
11703
|
+
"hotel": {
|
|
9906
11704
|
"type": "string",
|
|
9907
|
-
"
|
|
9908
|
-
"description": "aria-label of the map region."
|
|
11705
|
+
"description": "Hotel name under the guest."
|
|
9909
11706
|
},
|
|
9910
|
-
"
|
|
9911
|
-
"type": "
|
|
9912
|
-
"
|
|
9913
|
-
|
|
9914
|
-
|
|
9915
|
-
|
|
9916
|
-
|
|
9917
|
-
|
|
9918
|
-
"
|
|
9919
|
-
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
|
|
9924
|
-
|
|
9925
|
-
|
|
11707
|
+
"dates": {
|
|
11708
|
+
"type": "string",
|
|
11709
|
+
"description": "Preformatted date range, e.g. \"12-19 Mar\"."
|
|
11710
|
+
},
|
|
11711
|
+
"amount": {
|
|
11712
|
+
"type": "number",
|
|
11713
|
+
"description": "Total, formatted as \"SAR 1 200\"."
|
|
11714
|
+
},
|
|
11715
|
+
"size": {
|
|
11716
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11717
|
+
"values": [
|
|
11718
|
+
"xs",
|
|
11719
|
+
"sm",
|
|
11720
|
+
"md",
|
|
11721
|
+
"lg",
|
|
11722
|
+
"xl"
|
|
11723
|
+
],
|
|
11724
|
+
"default": "md",
|
|
11725
|
+
"description": "Scales padding, text and avatars."
|
|
11726
|
+
}
|
|
11727
|
+
}
|
|
9926
11728
|
},
|
|
9927
11729
|
{
|
|
9928
|
-
"name": "
|
|
9929
|
-
"tag": "
|
|
9930
|
-
"group": "
|
|
9931
|
-
"description": "
|
|
11730
|
+
"name": "GuestCard",
|
|
11731
|
+
"tag": "UiGuestCard",
|
|
11732
|
+
"group": "domain",
|
|
11733
|
+
"description": "Guest profile card with avatar, country, stay length and tags.",
|
|
9932
11734
|
"props": {
|
|
9933
11735
|
"name": {
|
|
9934
11736
|
"type": "string",
|
|
9935
11737
|
"required": true,
|
|
9936
|
-
"description": "
|
|
11738
|
+
"description": "Guest name."
|
|
9937
11739
|
},
|
|
9938
|
-
"
|
|
11740
|
+
"country": {
|
|
9939
11741
|
"type": "string",
|
|
9940
|
-
"description": "
|
|
11742
|
+
"description": "Country shown in the subtitle."
|
|
9941
11743
|
},
|
|
9942
|
-
"
|
|
9943
|
-
"type": "
|
|
9944
|
-
"description": "
|
|
11744
|
+
"nights": {
|
|
11745
|
+
"type": "number",
|
|
11746
|
+
"description": "Number of nights, shown as \"N nights\"."
|
|
9945
11747
|
},
|
|
9946
|
-
"
|
|
9947
|
-
"type": "
|
|
9948
|
-
"default":
|
|
9949
|
-
"description": "
|
|
11748
|
+
"vip": {
|
|
11749
|
+
"type": "boolean",
|
|
11750
|
+
"default": false,
|
|
11751
|
+
"description": "Shows a VIP badge."
|
|
11752
|
+
},
|
|
11753
|
+
"tags": {
|
|
11754
|
+
"type": "string[]",
|
|
11755
|
+
"default": "[]",
|
|
11756
|
+
"description": "Preference tags, e.g. \"Halal\", \"Late check-in\"."
|
|
11757
|
+
},
|
|
11758
|
+
"size": {
|
|
11759
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11760
|
+
"values": [
|
|
11761
|
+
"xs",
|
|
11762
|
+
"sm",
|
|
11763
|
+
"md",
|
|
11764
|
+
"lg",
|
|
11765
|
+
"xl"
|
|
11766
|
+
],
|
|
11767
|
+
"default": "md",
|
|
11768
|
+
"description": "Scales padding, text and avatars."
|
|
9950
11769
|
}
|
|
9951
|
-
},
|
|
9952
|
-
"slots": {
|
|
9953
|
-
"default": "Extra content on the right of the name row, usually action buttons."
|
|
9954
11770
|
}
|
|
9955
11771
|
},
|
|
9956
11772
|
{
|
|
9957
|
-
"name": "
|
|
9958
|
-
"tag": "
|
|
9959
|
-
"group": "
|
|
9960
|
-
"description": "
|
|
11773
|
+
"name": "RoomGrid",
|
|
11774
|
+
"tag": "UiRoomGrid",
|
|
11775
|
+
"group": "domain",
|
|
11776
|
+
"description": "Tile grid of rooms colored by housekeeping status; use for front-desk room selection.",
|
|
9961
11777
|
"props": {
|
|
9962
|
-
"
|
|
9963
|
-
"type": "{
|
|
9964
|
-
"
|
|
9965
|
-
"
|
|
9966
|
-
"description": "Conversation in order. Any role other than \"user\" renders as an assistant bubble."
|
|
9967
|
-
},
|
|
9968
|
-
"loading": {
|
|
9969
|
-
"type": "boolean",
|
|
9970
|
-
"default": false,
|
|
9971
|
-
"description": "Shows the typing dots and disables sending."
|
|
9972
|
-
},
|
|
9973
|
-
"title": {
|
|
9974
|
-
"type": "string",
|
|
9975
|
-
"default": "Assistant",
|
|
9976
|
-
"description": "Header title; also the aria-label. The header renders only when set."
|
|
11778
|
+
"rooms": {
|
|
11779
|
+
"type": "{ no: string; type: string; status: \"occupied\" | \"clean\" | \"dirty\" | \"blocked\" }[]",
|
|
11780
|
+
"default": "[]",
|
|
11781
|
+
"description": "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)."
|
|
9977
11782
|
},
|
|
9978
|
-
"
|
|
9979
|
-
"type": "string",
|
|
9980
|
-
"
|
|
11783
|
+
"statusTones": {
|
|
11784
|
+
"type": "Record<string, 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'>",
|
|
11785
|
+
"default": "{ occupied: 'brand', clean: 'success', dirty: 'warning', blocked: 'danger' }",
|
|
11786
|
+
"description": "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."
|
|
9981
11787
|
},
|
|
9982
|
-
"
|
|
9983
|
-
"type": "
|
|
9984
|
-
"
|
|
9985
|
-
|
|
11788
|
+
"size": {
|
|
11789
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11790
|
+
"values": [
|
|
11791
|
+
"xs",
|
|
11792
|
+
"sm",
|
|
11793
|
+
"md",
|
|
11794
|
+
"lg",
|
|
11795
|
+
"xl"
|
|
11796
|
+
],
|
|
11797
|
+
"default": "md",
|
|
11798
|
+
"description": "Scales padding, text and avatars."
|
|
9986
11799
|
}
|
|
9987
11800
|
},
|
|
9988
11801
|
"events": {
|
|
9989
|
-
"
|
|
11802
|
+
"select": "Called with the room number (room.no) of the clicked tile."
|
|
9990
11803
|
},
|
|
9991
11804
|
"notes": [
|
|
9992
|
-
"
|
|
11805
|
+
"Each tile is a button; status is conveyed by color only, so add a legend."
|
|
9993
11806
|
]
|
|
9994
11807
|
},
|
|
9995
11808
|
{
|
|
9996
|
-
"name": "
|
|
9997
|
-
"tag": "
|
|
11809
|
+
"name": "RoomCalendar",
|
|
11810
|
+
"tag": "UiRoomCalendar",
|
|
9998
11811
|
"group": "domain",
|
|
9999
|
-
"description": "
|
|
11812
|
+
"description": "Gantt-style occupancy calendar: rooms as rows, days as columns, bookings as bars.",
|
|
10000
11813
|
"props": {
|
|
10001
|
-
"
|
|
10002
|
-
"type": "string",
|
|
10003
|
-
"required": true,
|
|
10004
|
-
"description": "Hotel name."
|
|
10005
|
-
},
|
|
10006
|
-
"image": {
|
|
10007
|
-
"type": "string",
|
|
10008
|
-
"description": "Photo URL, used as the card background image."
|
|
10009
|
-
},
|
|
10010
|
-
"tags": {
|
|
10011
|
-
"type": "string[]",
|
|
11814
|
+
"rooms": {
|
|
11815
|
+
"type": "{ no: string; bookings?: { from: number; nights: number; guest: string }[] }[]",
|
|
10012
11816
|
"default": "[]",
|
|
10013
|
-
"description": "
|
|
10014
|
-
},
|
|
10015
|
-
"stars": {
|
|
10016
|
-
"type": "number",
|
|
10017
|
-
"default": 0,
|
|
10018
|
-
"description": "Star class 0-5, rendered as repeated stars."
|
|
10019
|
-
},
|
|
10020
|
-
"distance": {
|
|
10021
|
-
"type": "string",
|
|
10022
|
-
"description": "Distance caption next to the stars, e.g. \"120 m to the Haram\"."
|
|
10023
|
-
},
|
|
10024
|
-
"rating": {
|
|
10025
|
-
"type": "string | number",
|
|
10026
|
-
"description": "Guest rating shown in a green badge, e.g. 9.2."
|
|
11817
|
+
"description": "Rooms with their bookings; from is the zero-based day index of check-in, nights its length. guest is the cell tooltip."
|
|
10027
11818
|
},
|
|
10028
|
-
"
|
|
11819
|
+
"days": {
|
|
10029
11820
|
"type": "number",
|
|
10030
|
-
"
|
|
10031
|
-
|
|
10032
|
-
"night": {
|
|
10033
|
-
"type": "string",
|
|
10034
|
-
"default": "night",
|
|
10035
|
-
"description": "Unit after \"SAR /\", e.g. \"night\"."
|
|
11821
|
+
"default": 14,
|
|
11822
|
+
"description": "Number of day columns, labelled 1..days."
|
|
10036
11823
|
},
|
|
10037
11824
|
"size": {
|
|
10038
11825
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10048,38 +11835,47 @@
|
|
|
10048
11835
|
}
|
|
10049
11836
|
},
|
|
10050
11837
|
"notes": [
|
|
10051
|
-
"
|
|
10052
|
-
"Wrap in a clickable element yourself; the card has no click handler."
|
|
11838
|
+
"Day headers are plain numbers 1..days; offset them yourself for a month view."
|
|
10053
11839
|
]
|
|
10054
11840
|
},
|
|
10055
11841
|
{
|
|
10056
|
-
"name": "
|
|
10057
|
-
"tag": "
|
|
11842
|
+
"name": "LeadCard",
|
|
11843
|
+
"tag": "UiLeadCard",
|
|
10058
11844
|
"group": "domain",
|
|
10059
|
-
"description": "
|
|
11845
|
+
"description": "CRM lead card with avatar, code, phone and amount.",
|
|
10060
11846
|
"props": {
|
|
10061
11847
|
"name": {
|
|
10062
11848
|
"type": "string",
|
|
10063
11849
|
"required": true,
|
|
10064
|
-
"description": "
|
|
11850
|
+
"description": "Lead name."
|
|
10065
11851
|
},
|
|
10066
|
-
"
|
|
11852
|
+
"code": {
|
|
10067
11853
|
"type": "string",
|
|
10068
|
-
"description": "
|
|
11854
|
+
"description": "Lead or deal code under the name, monospaced."
|
|
10069
11855
|
},
|
|
10070
|
-
"
|
|
10071
|
-
"type": "
|
|
10072
|
-
"description": "
|
|
11856
|
+
"tag": {
|
|
11857
|
+
"type": "string",
|
|
11858
|
+
"description": "Optional badge text, e.g. a source or status."
|
|
10073
11859
|
},
|
|
10074
|
-
"
|
|
10075
|
-
"type": "
|
|
10076
|
-
"
|
|
10077
|
-
|
|
11860
|
+
"tone": {
|
|
11861
|
+
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
11862
|
+
"values": [
|
|
11863
|
+
"default",
|
|
11864
|
+
"brand",
|
|
11865
|
+
"success",
|
|
11866
|
+
"warning",
|
|
11867
|
+
"danger",
|
|
11868
|
+
"info"
|
|
11869
|
+
],
|
|
11870
|
+
"description": "Badge tone for tag; neutral when omitted."
|
|
10078
11871
|
},
|
|
10079
|
-
"
|
|
10080
|
-
"type": "
|
|
10081
|
-
"
|
|
10082
|
-
|
|
11872
|
+
"phone": {
|
|
11873
|
+
"type": "string",
|
|
11874
|
+
"description": "Phone number with a phone icon."
|
|
11875
|
+
},
|
|
11876
|
+
"amount": {
|
|
11877
|
+
"type": "string | number",
|
|
11878
|
+
"description": "Amount shown on the right, rendered as given (format it yourself)."
|
|
10083
11879
|
},
|
|
10084
11880
|
"size": {
|
|
10085
11881
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10093,29 +11889,52 @@
|
|
|
10093
11889
|
"default": "md",
|
|
10094
11890
|
"description": "Scales padding, text and avatars."
|
|
10095
11891
|
}
|
|
10096
|
-
}
|
|
10097
|
-
"slots": {
|
|
10098
|
-
"actions": "Footer actions, usually Buttons."
|
|
10099
|
-
},
|
|
10100
|
-
"notes": [
|
|
10101
|
-
"A fixed \"360°\" badge is always shown.",
|
|
10102
|
-
"With seats = 0 or missing the bar is empty (0%) and the meta reads \"0/0\"."
|
|
10103
|
-
]
|
|
11892
|
+
}
|
|
10104
11893
|
},
|
|
10105
11894
|
{
|
|
10106
|
-
"name": "
|
|
10107
|
-
"tag": "
|
|
11895
|
+
"name": "DealCard",
|
|
11896
|
+
"tag": "UiDealCard",
|
|
10108
11897
|
"group": "domain",
|
|
10109
|
-
"description": "
|
|
11898
|
+
"description": "CRM deal card with stage badge, amount, win probability and owner; the card type inside PipelineBoard.",
|
|
10110
11899
|
"props": {
|
|
10111
|
-
"
|
|
10112
|
-
"type": "
|
|
10113
|
-
"
|
|
10114
|
-
"description": "
|
|
11900
|
+
"title": {
|
|
11901
|
+
"type": "string",
|
|
11902
|
+
"required": true,
|
|
11903
|
+
"description": "Deal title."
|
|
11904
|
+
},
|
|
11905
|
+
"stage": {
|
|
11906
|
+
"type": "string",
|
|
11907
|
+
"description": "Stage badge text; no badge when omitted."
|
|
11908
|
+
},
|
|
11909
|
+
"tone": {
|
|
11910
|
+
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
11911
|
+
"values": [
|
|
11912
|
+
"default",
|
|
11913
|
+
"brand",
|
|
11914
|
+
"success",
|
|
11915
|
+
"warning",
|
|
11916
|
+
"danger",
|
|
11917
|
+
"info"
|
|
11918
|
+
],
|
|
11919
|
+
"default": "info",
|
|
11920
|
+
"description": "Badge tone for the stage."
|
|
11921
|
+
},
|
|
11922
|
+
"amount": {
|
|
11923
|
+
"type": "string | number",
|
|
11924
|
+
"description": "Large amount, rendered as given."
|
|
11925
|
+
},
|
|
11926
|
+
"probability": {
|
|
11927
|
+
"type": "number",
|
|
11928
|
+
"default": 0,
|
|
11929
|
+
"description": "Win probability 0-100, shown as a progress bar and percent."
|
|
11930
|
+
},
|
|
11931
|
+
"owner": {
|
|
11932
|
+
"type": "string",
|
|
11933
|
+
"description": "Owner name with avatar."
|
|
10115
11934
|
},
|
|
10116
|
-
"
|
|
10117
|
-
"type": "
|
|
10118
|
-
"description": "
|
|
11935
|
+
"due": {
|
|
11936
|
+
"type": "string",
|
|
11937
|
+
"description": "Due date caption, right aligned."
|
|
10119
11938
|
},
|
|
10120
11939
|
"size": {
|
|
10121
11940
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10132,15 +11951,15 @@
|
|
|
10132
11951
|
}
|
|
10133
11952
|
},
|
|
10134
11953
|
{
|
|
10135
|
-
"name": "
|
|
10136
|
-
"tag": "
|
|
11954
|
+
"name": "PipelineBoard",
|
|
11955
|
+
"tag": "UiPipelineBoard",
|
|
10137
11956
|
"group": "domain",
|
|
10138
|
-
"description": "
|
|
11957
|
+
"description": "Horizontally scrolling kanban pipeline of stage columns filled with DealCards.",
|
|
10139
11958
|
"props": {
|
|
10140
|
-
"
|
|
10141
|
-
"type": "number",
|
|
10142
|
-
"
|
|
10143
|
-
"description": "
|
|
11959
|
+
"stages": {
|
|
11960
|
+
"type": "{ id: string | number; title: string; cards: DealCardProps[] }[]",
|
|
11961
|
+
"default": "[]",
|
|
11962
|
+
"description": "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)."
|
|
10144
11963
|
},
|
|
10145
11964
|
"size": {
|
|
10146
11965
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10155,45 +11974,49 @@
|
|
|
10155
11974
|
"description": "Scales padding, text and avatars."
|
|
10156
11975
|
}
|
|
10157
11976
|
},
|
|
11977
|
+
"events": {
|
|
11978
|
+
"move": "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."
|
|
11979
|
+
},
|
|
10158
11980
|
"notes": [
|
|
10159
|
-
"
|
|
11981
|
+
"Drag and drop is enabled only when a move handler is passed; without it the board renders and behaves as before.",
|
|
11982
|
+
"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.",
|
|
11983
|
+
"Cards are fixed to DealCard; for custom cards compose KanbanColumn and KanbanCard."
|
|
10160
11984
|
]
|
|
10161
11985
|
},
|
|
10162
11986
|
{
|
|
10163
|
-
"name": "
|
|
10164
|
-
"tag": "
|
|
11987
|
+
"name": "ContactPanel",
|
|
11988
|
+
"tag": "UiContactPanel",
|
|
10165
11989
|
"group": "domain",
|
|
10166
|
-
"description": "
|
|
11990
|
+
"description": "Contact detail card with avatar, role, contact fields and Call / Message buttons.",
|
|
10167
11991
|
"props": {
|
|
10168
|
-
"
|
|
11992
|
+
"name": {
|
|
10169
11993
|
"type": "string",
|
|
10170
11994
|
"required": true,
|
|
10171
|
-
"description": "
|
|
11995
|
+
"description": "Contact name."
|
|
10172
11996
|
},
|
|
10173
|
-
"
|
|
10174
|
-
"type": "
|
|
10175
|
-
"
|
|
10176
|
-
"Confirmed",
|
|
10177
|
-
"Pending",
|
|
10178
|
-
"Cancelled"
|
|
10179
|
-
],
|
|
10180
|
-
"description": "Status text. Confirmed is green, Pending amber, Cancelled red; any other value gets a neutral badge."
|
|
11997
|
+
"role": {
|
|
11998
|
+
"type": "string",
|
|
11999
|
+
"description": "Role or company under the name."
|
|
10181
12000
|
},
|
|
10182
|
-
"
|
|
12001
|
+
"phone": {
|
|
10183
12002
|
"type": "string",
|
|
10184
|
-
"description": "
|
|
12003
|
+
"description": "Phone row."
|
|
10185
12004
|
},
|
|
10186
|
-
"
|
|
12005
|
+
"telegram": {
|
|
10187
12006
|
"type": "string",
|
|
10188
|
-
"description": "
|
|
12007
|
+
"description": "Telegram handle row."
|
|
10189
12008
|
},
|
|
10190
|
-
"
|
|
12009
|
+
"email": {
|
|
10191
12010
|
"type": "string",
|
|
10192
|
-
"description": "
|
|
12011
|
+
"description": "Email row."
|
|
10193
12012
|
},
|
|
10194
|
-
"
|
|
10195
|
-
"type": "
|
|
10196
|
-
"description": "
|
|
12013
|
+
"city": {
|
|
12014
|
+
"type": "string",
|
|
12015
|
+
"description": "City row."
|
|
12016
|
+
},
|
|
12017
|
+
"labels": {
|
|
12018
|
+
"type": "{ call?: string; message?: string }",
|
|
12019
|
+
"description": "Override built-in English strings."
|
|
10197
12020
|
},
|
|
10198
12021
|
"size": {
|
|
10199
12022
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10207,36 +12030,26 @@
|
|
|
10207
12030
|
"default": "md",
|
|
10208
12031
|
"description": "Scales padding, text and avatars."
|
|
10209
12032
|
}
|
|
12033
|
+
},
|
|
12034
|
+
"events": {
|
|
12035
|
+
"call": "Called with no arguments when Call is clicked.",
|
|
12036
|
+
"message": "Called with no arguments when Message is clicked."
|
|
10210
12037
|
}
|
|
10211
12038
|
},
|
|
10212
12039
|
{
|
|
10213
|
-
"name": "
|
|
10214
|
-
"tag": "
|
|
12040
|
+
"name": "KanbanColumn",
|
|
12041
|
+
"tag": "UiKanbanColumn",
|
|
10215
12042
|
"group": "domain",
|
|
10216
|
-
"description": "
|
|
12043
|
+
"description": "Single kanban column with a title, count badge and stacked cards.",
|
|
10217
12044
|
"props": {
|
|
10218
|
-
"
|
|
12045
|
+
"title": {
|
|
10219
12046
|
"type": "string",
|
|
10220
12047
|
"required": true,
|
|
10221
|
-
"description": "
|
|
10222
|
-
},
|
|
10223
|
-
"country": {
|
|
10224
|
-
"type": "string",
|
|
10225
|
-
"description": "Country shown in the subtitle."
|
|
12048
|
+
"description": "Column heading."
|
|
10226
12049
|
},
|
|
10227
|
-
"
|
|
12050
|
+
"count": {
|
|
10228
12051
|
"type": "number",
|
|
10229
|
-
"description": "
|
|
10230
|
-
},
|
|
10231
|
-
"vip": {
|
|
10232
|
-
"type": "boolean",
|
|
10233
|
-
"default": false,
|
|
10234
|
-
"description": "Shows a VIP badge."
|
|
10235
|
-
},
|
|
10236
|
-
"tags": {
|
|
10237
|
-
"type": "string[]",
|
|
10238
|
-
"default": "[]",
|
|
10239
|
-
"description": "Preference tags, e.g. \"Halal\", \"Late check-in\"."
|
|
12052
|
+
"description": "Count badge; defaults to the number of children."
|
|
10240
12053
|
},
|
|
10241
12054
|
"size": {
|
|
10242
12055
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10250,59 +12063,41 @@
|
|
|
10250
12063
|
"default": "md",
|
|
10251
12064
|
"description": "Scales padding, text and avatars."
|
|
10252
12065
|
}
|
|
12066
|
+
},
|
|
12067
|
+
"slots": {
|
|
12068
|
+
"default": "Cards, usually KanbanCard or DealCard. React passes them as children."
|
|
10253
12069
|
}
|
|
10254
12070
|
},
|
|
10255
12071
|
{
|
|
10256
|
-
"name": "
|
|
10257
|
-
"tag": "
|
|
12072
|
+
"name": "KanbanCard",
|
|
12073
|
+
"tag": "UiKanbanCard",
|
|
10258
12074
|
"group": "domain",
|
|
10259
|
-
"description": "
|
|
12075
|
+
"description": "Simple kanban card with title, subtitle, free content and an optional tag.",
|
|
10260
12076
|
"props": {
|
|
10261
|
-
"
|
|
10262
|
-
"type": "
|
|
10263
|
-
"
|
|
10264
|
-
"description": "
|
|
12077
|
+
"title": {
|
|
12078
|
+
"type": "string",
|
|
12079
|
+
"required": true,
|
|
12080
|
+
"description": "Card title."
|
|
10265
12081
|
},
|
|
10266
|
-
"
|
|
10267
|
-
"type": "
|
|
10268
|
-
"
|
|
10269
|
-
"description": "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."
|
|
12082
|
+
"sub": {
|
|
12083
|
+
"type": "string",
|
|
12084
|
+
"description": "Subtitle under the title."
|
|
10270
12085
|
},
|
|
10271
|
-
"
|
|
10272
|
-
"type": "
|
|
12086
|
+
"tag": {
|
|
12087
|
+
"type": "string",
|
|
12088
|
+
"description": "Badge at the bottom."
|
|
12089
|
+
},
|
|
12090
|
+
"tone": {
|
|
12091
|
+
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
10273
12092
|
"values": [
|
|
10274
|
-
"
|
|
10275
|
-
"
|
|
10276
|
-
"
|
|
10277
|
-
"
|
|
10278
|
-
"
|
|
12093
|
+
"default",
|
|
12094
|
+
"brand",
|
|
12095
|
+
"success",
|
|
12096
|
+
"warning",
|
|
12097
|
+
"danger",
|
|
12098
|
+
"info"
|
|
10279
12099
|
],
|
|
10280
|
-
"
|
|
10281
|
-
"description": "Scales padding, text and avatars."
|
|
10282
|
-
}
|
|
10283
|
-
},
|
|
10284
|
-
"events": {
|
|
10285
|
-
"select": "Called with the room number (room.no) of the clicked tile."
|
|
10286
|
-
},
|
|
10287
|
-
"notes": [
|
|
10288
|
-
"Each tile is a button; status is conveyed by color only, so add a legend."
|
|
10289
|
-
]
|
|
10290
|
-
},
|
|
10291
|
-
{
|
|
10292
|
-
"name": "RoomCalendar",
|
|
10293
|
-
"tag": "UiRoomCalendar",
|
|
10294
|
-
"group": "domain",
|
|
10295
|
-
"description": "Gantt-style occupancy calendar: rooms as rows, days as columns, bookings as bars.",
|
|
10296
|
-
"props": {
|
|
10297
|
-
"rooms": {
|
|
10298
|
-
"type": "{ no: string; bookings?: { from: number; nights: number; guest: string }[] }[]",
|
|
10299
|
-
"default": "[]",
|
|
10300
|
-
"description": "Rooms with their bookings; from is the zero-based day index of check-in, nights its length. guest is the cell tooltip."
|
|
10301
|
-
},
|
|
10302
|
-
"days": {
|
|
10303
|
-
"type": "number",
|
|
10304
|
-
"default": 14,
|
|
10305
|
-
"description": "Number of day columns, labelled 1..days."
|
|
12100
|
+
"description": "Badge tone for tag."
|
|
10306
12101
|
},
|
|
10307
12102
|
"size": {
|
|
10308
12103
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10317,48 +12112,37 @@
|
|
|
10317
12112
|
"description": "Scales padding, text and avatars."
|
|
10318
12113
|
}
|
|
10319
12114
|
},
|
|
10320
|
-
"
|
|
10321
|
-
"
|
|
10322
|
-
|
|
12115
|
+
"slots": {
|
|
12116
|
+
"default": "Extra content between the subtitle and the tag. React passes it as children."
|
|
12117
|
+
}
|
|
10323
12118
|
},
|
|
10324
12119
|
{
|
|
10325
|
-
"name": "
|
|
10326
|
-
"tag": "
|
|
12120
|
+
"name": "CallRow",
|
|
12121
|
+
"tag": "UiCallRow",
|
|
10327
12122
|
"group": "domain",
|
|
10328
|
-
"description": "
|
|
12123
|
+
"description": "One-line call log row with avatar, status, duration and a play button.",
|
|
10329
12124
|
"props": {
|
|
10330
12125
|
"name": {
|
|
10331
12126
|
"type": "string",
|
|
10332
12127
|
"required": true,
|
|
10333
|
-
"description": "
|
|
10334
|
-
},
|
|
10335
|
-
"code": {
|
|
10336
|
-
"type": "string",
|
|
10337
|
-
"description": "Lead or deal code under the name, monospaced."
|
|
12128
|
+
"description": "Caller name."
|
|
10338
12129
|
},
|
|
10339
|
-
"
|
|
12130
|
+
"status": {
|
|
10340
12131
|
"type": "string",
|
|
10341
|
-
"description": "
|
|
12132
|
+
"description": "Status text before the duration, e.g. \"Answered\"."
|
|
10342
12133
|
},
|
|
10343
|
-
"
|
|
10344
|
-
"type": "
|
|
10345
|
-
"
|
|
10346
|
-
"default",
|
|
10347
|
-
"brand",
|
|
10348
|
-
"success",
|
|
10349
|
-
"warning",
|
|
10350
|
-
"danger",
|
|
10351
|
-
"info"
|
|
10352
|
-
],
|
|
10353
|
-
"description": "Badge tone for tag; neutral when omitted."
|
|
12134
|
+
"duration": {
|
|
12135
|
+
"type": "number",
|
|
12136
|
+
"description": "Duration in seconds, formatted as \"3 m 05 s\" (units from durUnits); shows a dash when missing."
|
|
10354
12137
|
},
|
|
10355
|
-
"
|
|
10356
|
-
"type": "string",
|
|
10357
|
-
"
|
|
12138
|
+
"durUnits": {
|
|
12139
|
+
"type": "{ m?: string; s?: string }",
|
|
12140
|
+
"default": "{ m: 'm', s: 's' }",
|
|
12141
|
+
"description": "Minute and second unit labels for localized durations, e.g. { m: \"min\", s: \"sec\" }."
|
|
10358
12142
|
},
|
|
10359
|
-
"
|
|
10360
|
-
"type": "string
|
|
10361
|
-
"description": "
|
|
12143
|
+
"labels": {
|
|
12144
|
+
"type": "{ play?: string }",
|
|
12145
|
+
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
10362
12146
|
},
|
|
10363
12147
|
"size": {
|
|
10364
12148
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10372,52 +12156,58 @@
|
|
|
10372
12156
|
"default": "md",
|
|
10373
12157
|
"description": "Scales padding, text and avatars."
|
|
10374
12158
|
}
|
|
12159
|
+
},
|
|
12160
|
+
"events": {
|
|
12161
|
+
"play": "Called with no arguments when the play button is clicked."
|
|
10375
12162
|
}
|
|
10376
12163
|
},
|
|
10377
12164
|
{
|
|
10378
|
-
"name": "
|
|
10379
|
-
"tag": "
|
|
12165
|
+
"name": "CallCard",
|
|
12166
|
+
"tag": "UiCallCard",
|
|
10380
12167
|
"group": "domain",
|
|
10381
|
-
"description": "
|
|
12168
|
+
"description": "Call recording card with status badge, a playback progress bar and duration.",
|
|
10382
12169
|
"props": {
|
|
10383
|
-
"
|
|
12170
|
+
"name": {
|
|
10384
12171
|
"type": "string",
|
|
10385
12172
|
"required": true,
|
|
10386
|
-
"description": "
|
|
12173
|
+
"description": "Caller name."
|
|
10387
12174
|
},
|
|
10388
|
-
"
|
|
12175
|
+
"phone": {
|
|
10389
12176
|
"type": "string",
|
|
10390
|
-
"description": "
|
|
12177
|
+
"description": "Phone number."
|
|
10391
12178
|
},
|
|
10392
|
-
"
|
|
10393
|
-
"type": "'
|
|
12179
|
+
"status": {
|
|
12180
|
+
"type": "'Answered' | 'Missed' | 'Voicemail' | 'Busy' | 'Declined' | string",
|
|
10394
12181
|
"values": [
|
|
10395
|
-
"
|
|
10396
|
-
"
|
|
10397
|
-
"
|
|
10398
|
-
"
|
|
10399
|
-
"
|
|
10400
|
-
|
|
10401
|
-
|
|
10402
|
-
"default": "info",
|
|
10403
|
-
"description": "Badge tone for the stage."
|
|
12182
|
+
"Answered",
|
|
12183
|
+
"Missed",
|
|
12184
|
+
"Voicemail",
|
|
12185
|
+
"Busy",
|
|
12186
|
+
"Declined"
|
|
12187
|
+
],
|
|
12188
|
+
"description": "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."
|
|
10404
12189
|
},
|
|
10405
|
-
"
|
|
10406
|
-
"type": "string |
|
|
10407
|
-
"description": "
|
|
12190
|
+
"statusTones": {
|
|
12191
|
+
"type": "Record<string, 'success' | 'danger' | 'warning' | 'info' | 'brand'>",
|
|
12192
|
+
"description": "Extra or overriding status to tone mapping, e.g. { \"No answer\": \"warning\" }."
|
|
10408
12193
|
},
|
|
10409
|
-
"
|
|
12194
|
+
"progress": {
|
|
10410
12195
|
"type": "number",
|
|
10411
12196
|
"default": 0,
|
|
10412
|
-
"description": "
|
|
12197
|
+
"description": "Playback progress 0-100."
|
|
10413
12198
|
},
|
|
10414
|
-
"
|
|
10415
|
-
"type": "
|
|
10416
|
-
"description": "
|
|
12199
|
+
"duration": {
|
|
12200
|
+
"type": "number",
|
|
12201
|
+
"description": "Duration in seconds."
|
|
10417
12202
|
},
|
|
10418
|
-
"
|
|
10419
|
-
"type": "string",
|
|
10420
|
-
"
|
|
12203
|
+
"durUnits": {
|
|
12204
|
+
"type": "{ m?: string; s?: string }",
|
|
12205
|
+
"default": "{ m: 'm', s: 's' }",
|
|
12206
|
+
"description": "Minute and second unit labels for the duration."
|
|
12207
|
+
},
|
|
12208
|
+
"labels": {
|
|
12209
|
+
"type": "{ play?: string }",
|
|
12210
|
+
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
10421
12211
|
},
|
|
10422
12212
|
"size": {
|
|
10423
12213
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10431,18 +12221,38 @@
|
|
|
10431
12221
|
"default": "md",
|
|
10432
12222
|
"description": "Scales padding, text and avatars."
|
|
10433
12223
|
}
|
|
12224
|
+
},
|
|
12225
|
+
"events": {
|
|
12226
|
+
"play": "Called with no arguments when the play button is clicked."
|
|
10434
12227
|
}
|
|
10435
12228
|
},
|
|
10436
12229
|
{
|
|
10437
|
-
"name": "
|
|
10438
|
-
"tag": "
|
|
12230
|
+
"name": "IncomingCall",
|
|
12231
|
+
"tag": "UiIncomingCall",
|
|
10439
12232
|
"group": "domain",
|
|
10440
|
-
"description": "
|
|
12233
|
+
"description": "Glass banner for an incoming call with Decline and Answer buttons.",
|
|
10441
12234
|
"props": {
|
|
10442
|
-
"
|
|
10443
|
-
"type": "
|
|
10444
|
-
"
|
|
10445
|
-
"description": "
|
|
12235
|
+
"name": {
|
|
12236
|
+
"type": "string",
|
|
12237
|
+
"required": true,
|
|
12238
|
+
"description": "Caller name."
|
|
12239
|
+
},
|
|
12240
|
+
"phone": {
|
|
12241
|
+
"type": "string",
|
|
12242
|
+
"description": "Caller number."
|
|
12243
|
+
},
|
|
12244
|
+
"label": {
|
|
12245
|
+
"type": "string",
|
|
12246
|
+
"default": "Incoming call",
|
|
12247
|
+
"description": "Caption above the name."
|
|
12248
|
+
},
|
|
12249
|
+
"onDecline": {
|
|
12250
|
+
"type": "() => void",
|
|
12251
|
+
"description": "Decline button click."
|
|
12252
|
+
},
|
|
12253
|
+
"onAnswer": {
|
|
12254
|
+
"type": "() => void",
|
|
12255
|
+
"description": "Answer button click."
|
|
10446
12256
|
},
|
|
10447
12257
|
"size": {
|
|
10448
12258
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10458,48 +12268,146 @@
|
|
|
10458
12268
|
}
|
|
10459
12269
|
},
|
|
10460
12270
|
"events": {
|
|
10461
|
-
"
|
|
12271
|
+
"decline": "Decline button clicked.",
|
|
12272
|
+
"answer": "Answer button clicked."
|
|
12273
|
+
}
|
|
12274
|
+
},
|
|
12275
|
+
{
|
|
12276
|
+
"name": "AuthSplit",
|
|
12277
|
+
"tag": "UiAuthSplit",
|
|
12278
|
+
"group": "domain",
|
|
12279
|
+
"description": "Two-column sign-in layout with a brand panel on the left and the form on the right.",
|
|
12280
|
+
"props": {
|
|
12281
|
+
"title": {
|
|
12282
|
+
"type": "string",
|
|
12283
|
+
"required": true,
|
|
12284
|
+
"description": "Form heading."
|
|
12285
|
+
},
|
|
12286
|
+
"subtitle": {
|
|
12287
|
+
"type": "string",
|
|
12288
|
+
"description": "Text under the heading."
|
|
12289
|
+
},
|
|
12290
|
+
"logo": {
|
|
12291
|
+
"type": "VNode",
|
|
12292
|
+
"description": "Logo node above the heading."
|
|
12293
|
+
},
|
|
12294
|
+
"aside": {
|
|
12295
|
+
"type": "VNode",
|
|
12296
|
+
"description": "Content of the left brand panel (hidden on narrow screens)."
|
|
12297
|
+
}
|
|
12298
|
+
},
|
|
12299
|
+
"slots": {
|
|
12300
|
+
"default": "Form content under the heading. React passes it as children."
|
|
10462
12301
|
},
|
|
10463
12302
|
"notes": [
|
|
10464
|
-
"
|
|
10465
|
-
"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.",
|
|
10466
|
-
"Cards are fixed to DealCard; for custom cards compose KanbanColumn and KanbanCard."
|
|
12303
|
+
"logo and aside are props in both Vue and React (pass a VNode / element)."
|
|
10467
12304
|
]
|
|
10468
12305
|
},
|
|
10469
12306
|
{
|
|
10470
|
-
"name": "
|
|
10471
|
-
"tag": "
|
|
12307
|
+
"name": "AuthShowcase",
|
|
12308
|
+
"tag": "UiAuthShowcase",
|
|
10472
12309
|
"group": "domain",
|
|
10473
|
-
"description": "
|
|
12310
|
+
"description": "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.",
|
|
10474
12311
|
"props": {
|
|
10475
|
-
"
|
|
12312
|
+
"variant": {
|
|
12313
|
+
"type": "'photo' | 'light' | 'tint'",
|
|
12314
|
+
"values": [
|
|
12315
|
+
"photo",
|
|
12316
|
+
"light",
|
|
12317
|
+
"tint"
|
|
12318
|
+
],
|
|
12319
|
+
"default": "photo",
|
|
12320
|
+
"description": "'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."
|
|
12321
|
+
},
|
|
12322
|
+
"title": {
|
|
10476
12323
|
"type": "string",
|
|
10477
12324
|
"required": true,
|
|
10478
|
-
"description": "
|
|
12325
|
+
"description": "Form heading."
|
|
10479
12326
|
},
|
|
10480
|
-
"
|
|
12327
|
+
"subtitle": {
|
|
10481
12328
|
"type": "string",
|
|
10482
|
-
"description": "
|
|
12329
|
+
"description": "Text under the heading."
|
|
10483
12330
|
},
|
|
10484
|
-
"
|
|
12331
|
+
"logo": {
|
|
12332
|
+
"type": "VNode",
|
|
12333
|
+
"description": "Logo node above the heading."
|
|
12334
|
+
},
|
|
12335
|
+
"footer": {
|
|
12336
|
+
"type": "VNode",
|
|
12337
|
+
"description": "Content under the fields, for example \"No account? Sign up\"."
|
|
12338
|
+
},
|
|
12339
|
+
"image": {
|
|
10485
12340
|
"type": "string",
|
|
10486
|
-
"description": "
|
|
12341
|
+
"description": "URL of the media image. Without it the panel shows an accent gradient."
|
|
10487
12342
|
},
|
|
10488
|
-
"
|
|
12343
|
+
"headline": {
|
|
10489
12344
|
"type": "string",
|
|
10490
|
-
"description": "
|
|
12345
|
+
"description": "Large text on the media panel (photo and tint)."
|
|
10491
12346
|
},
|
|
10492
|
-
"
|
|
12347
|
+
"caption": {
|
|
10493
12348
|
"type": "string",
|
|
10494
|
-
"description": "
|
|
12349
|
+
"description": "Small text on the media panel (photo) or inside the glass bar (light, tint)."
|
|
10495
12350
|
},
|
|
10496
|
-
"
|
|
12351
|
+
"quote": {
|
|
10497
12352
|
"type": "string",
|
|
10498
|
-
"description": "
|
|
12353
|
+
"description": "Line at the bottom of the media panel; photo only."
|
|
12354
|
+
},
|
|
12355
|
+
"chips": {
|
|
12356
|
+
"type": "string[]",
|
|
12357
|
+
"description": "Pill labels inside the glass bar; light and tint."
|
|
12358
|
+
},
|
|
12359
|
+
"people": {
|
|
12360
|
+
"type": "{ name: string; src?: string }[]",
|
|
12361
|
+
"description": "Avatars: floating on the photo, stacked in the proof pill."
|
|
12362
|
+
},
|
|
12363
|
+
"proof": {
|
|
12364
|
+
"type": "string",
|
|
12365
|
+
"description": "Social-proof title, e.g. \"Join 20k+ users\"; light and tint. Shows the pill under the form."
|
|
12366
|
+
},
|
|
12367
|
+
"proofHint": {
|
|
12368
|
+
"type": "string",
|
|
12369
|
+
"description": "Second line of the proof pill."
|
|
12370
|
+
}
|
|
12371
|
+
},
|
|
12372
|
+
"slots": {
|
|
12373
|
+
"default": "Form fields and buttons. React passes them as children."
|
|
12374
|
+
},
|
|
12375
|
+
"notes": [
|
|
12376
|
+
"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)."
|
|
12377
|
+
]
|
|
12378
|
+
},
|
|
12379
|
+
{
|
|
12380
|
+
"name": "SocialAuth",
|
|
12381
|
+
"tag": "UiSocialAuth",
|
|
12382
|
+
"group": "domain",
|
|
12383
|
+
"description": "Continue with Google and Apple buttons with an \"or\" divider. Place it under the sign-in form.",
|
|
12384
|
+
"props": {
|
|
12385
|
+
"providers": {
|
|
12386
|
+
"type": "('google' | 'apple')[]",
|
|
12387
|
+
"default": "['google', 'apple']",
|
|
12388
|
+
"description": "Which buttons to show, in order."
|
|
12389
|
+
},
|
|
12390
|
+
"variant": {
|
|
12391
|
+
"type": "'stack' | 'icons'",
|
|
12392
|
+
"values": [
|
|
12393
|
+
"stack",
|
|
12394
|
+
"icons"
|
|
12395
|
+
],
|
|
12396
|
+
"default": "stack",
|
|
12397
|
+
"description": "'stack': full-width buttons with a label, one per row. 'icons': a row of square icon buttons."
|
|
12398
|
+
},
|
|
12399
|
+
"divider": {
|
|
12400
|
+
"type": "boolean",
|
|
12401
|
+
"default": "true",
|
|
12402
|
+
"description": "Show the \"or\" line above the buttons."
|
|
10499
12403
|
},
|
|
10500
12404
|
"labels": {
|
|
10501
|
-
"type": "{
|
|
10502
|
-
"description": "
|
|
12405
|
+
"type": "{ google?: string; apple?: string }",
|
|
12406
|
+
"description": "Provider names inserted into \"Continue with {provider}\"."
|
|
12407
|
+
},
|
|
12408
|
+
"onSelect": {
|
|
12409
|
+
"type": "(provider: 'google' | 'apple') => void",
|
|
12410
|
+
"description": "Called with the clicked provider. Start your OAuth flow here."
|
|
10503
12411
|
},
|
|
10504
12412
|
"size": {
|
|
10505
12413
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10515,408 +12423,473 @@
|
|
|
10515
12423
|
}
|
|
10516
12424
|
},
|
|
10517
12425
|
"events": {
|
|
10518
|
-
"
|
|
10519
|
-
|
|
10520
|
-
|
|
12426
|
+
"select": "A provider button was clicked; payload is \"google\" or \"apple\"."
|
|
12427
|
+
},
|
|
12428
|
+
"notes": [
|
|
12429
|
+
"The kit only renders the buttons. The OAuth flow itself is yours."
|
|
12430
|
+
]
|
|
10521
12431
|
},
|
|
10522
12432
|
{
|
|
10523
|
-
"name": "
|
|
10524
|
-
"tag": "
|
|
10525
|
-
"group": "
|
|
10526
|
-
"description": "
|
|
12433
|
+
"name": "PageDashboard",
|
|
12434
|
+
"tag": "UiPageDashboard",
|
|
12435
|
+
"group": "pages",
|
|
12436
|
+
"description": "Dashboard template: greeting hero, KPI tiles, occupancy chart, sales funnel, top list and activity feed.",
|
|
12437
|
+
"props": {
|
|
12438
|
+
"title": {
|
|
12439
|
+
"forwarded": true,
|
|
12440
|
+
"type": "string",
|
|
12441
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
12442
|
+
},
|
|
12443
|
+
"subtitle": {
|
|
12444
|
+
"forwarded": true,
|
|
12445
|
+
"type": "string",
|
|
12446
|
+
"description": "Caption under the heading."
|
|
12447
|
+
},
|
|
12448
|
+
"crumbs": {
|
|
12449
|
+
"forwarded": true,
|
|
12450
|
+
"type": "{ label: string; href?: string }[]",
|
|
12451
|
+
"description": "Breadcrumb trail above the title."
|
|
12452
|
+
}
|
|
12453
|
+
},
|
|
12454
|
+
"slots": {
|
|
12455
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12456
|
+
"actions": "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).",
|
|
12457
|
+
"hero": "Large greeting/plan block; Card variant=\"inverse\" with Ring and a Button.",
|
|
12458
|
+
"kpis": "Four key figures; KpiTile, StatsCard or KpiInline.",
|
|
12459
|
+
"occupancy": "Per-day occupancy chart; OccupancyChart or MiniChart.",
|
|
12460
|
+
"funnel": "Inquiry-to-payment funnel; SalesFunnel.",
|
|
12461
|
+
"top": "Revenue leaderboard; DataTable with Progress share bars.",
|
|
12462
|
+
"activity": "Recent actions, newest first; Timeline."
|
|
12463
|
+
},
|
|
12464
|
+
"notes": [
|
|
12465
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
12466
|
+
"hero and kpis share a row, as do occupancy/funnel and top/activity; they wrap on narrow screens."
|
|
12467
|
+
]
|
|
12468
|
+
},
|
|
12469
|
+
{
|
|
12470
|
+
"name": "PagePatterns",
|
|
12471
|
+
"tag": "UiPagePatterns",
|
|
12472
|
+
"group": "pages",
|
|
12473
|
+
"description": "Showcase template combining twelve recurring dashboard card patterns (banner, strips, stat lines, charts, lists).",
|
|
10527
12474
|
"props": {
|
|
10528
12475
|
"title": {
|
|
12476
|
+
"forwarded": true,
|
|
10529
12477
|
"type": "string",
|
|
10530
|
-
"
|
|
10531
|
-
"description": "Column heading."
|
|
12478
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10532
12479
|
},
|
|
10533
|
-
"
|
|
10534
|
-
"
|
|
10535
|
-
"
|
|
12480
|
+
"subtitle": {
|
|
12481
|
+
"forwarded": true,
|
|
12482
|
+
"type": "string",
|
|
12483
|
+
"description": "Caption under the heading."
|
|
10536
12484
|
},
|
|
10537
|
-
"
|
|
10538
|
-
"
|
|
10539
|
-
"
|
|
10540
|
-
|
|
10541
|
-
"sm",
|
|
10542
|
-
"md",
|
|
10543
|
-
"lg",
|
|
10544
|
-
"xl"
|
|
10545
|
-
],
|
|
10546
|
-
"default": "md",
|
|
10547
|
-
"description": "Scales padding, text and avatars."
|
|
12485
|
+
"crumbs": {
|
|
12486
|
+
"forwarded": true,
|
|
12487
|
+
"type": "{ label: string; href?: string }[]",
|
|
12488
|
+
"description": "Breadcrumb trail above the title."
|
|
10548
12489
|
}
|
|
10549
12490
|
},
|
|
10550
12491
|
"slots": {
|
|
10551
|
-
"
|
|
10552
|
-
|
|
12492
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12493
|
+
"actions": "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).",
|
|
12494
|
+
"hero": "Large banner; HeroBanner.",
|
|
12495
|
+
"strip": "One card with four metrics; StatStrip with IconTile.",
|
|
12496
|
+
"statlines": "Row of toned stat lines; StatLine (tone brand, sky, success, warning, danger).",
|
|
12497
|
+
"chartcard": "Titled chart with menu and period select; ChartCard with PillSelect and OccupancyChart or MiniChart.",
|
|
12498
|
+
"tiles": "Selectable tiles plus an add tile; TabTiles.",
|
|
12499
|
+
"listrows": "Icon, title and value rows; StatRow.",
|
|
12500
|
+
"countries": "Country amount rows; CountryRow.",
|
|
12501
|
+
"versus": "Two values with a share bar; VersusBar.",
|
|
12502
|
+
"segbar": "Composition bar with legend; SegBar.",
|
|
12503
|
+
"activity": "Timeline of events; Timeline.",
|
|
12504
|
+
"actioncard": "Card with collapse, refresh and close actions; ActionCard."
|
|
12505
|
+
},
|
|
12506
|
+
"notes": [
|
|
12507
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12508
|
+
]
|
|
10553
12509
|
},
|
|
10554
12510
|
{
|
|
10555
|
-
"name": "
|
|
10556
|
-
"tag": "
|
|
10557
|
-
"group": "
|
|
10558
|
-
"description": "
|
|
12511
|
+
"name": "PageCrm",
|
|
12512
|
+
"tag": "UiPageCrm",
|
|
12513
|
+
"group": "pages",
|
|
12514
|
+
"description": "CRM template: summary tiles, filters, pipeline board and call queue.",
|
|
10559
12515
|
"props": {
|
|
10560
12516
|
"title": {
|
|
12517
|
+
"forwarded": true,
|
|
10561
12518
|
"type": "string",
|
|
10562
|
-
"
|
|
10563
|
-
"description": "Card title."
|
|
10564
|
-
},
|
|
10565
|
-
"sub": {
|
|
10566
|
-
"type": "string",
|
|
10567
|
-
"description": "Subtitle under the title."
|
|
12519
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10568
12520
|
},
|
|
10569
|
-
"
|
|
12521
|
+
"subtitle": {
|
|
12522
|
+
"forwarded": true,
|
|
10570
12523
|
"type": "string",
|
|
10571
|
-
"description": "
|
|
10572
|
-
},
|
|
10573
|
-
"tone": {
|
|
10574
|
-
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
10575
|
-
"values": [
|
|
10576
|
-
"default",
|
|
10577
|
-
"brand",
|
|
10578
|
-
"success",
|
|
10579
|
-
"warning",
|
|
10580
|
-
"danger",
|
|
10581
|
-
"info"
|
|
10582
|
-
],
|
|
10583
|
-
"description": "Badge tone for tag."
|
|
12524
|
+
"description": "Caption under the heading."
|
|
10584
12525
|
},
|
|
10585
|
-
"
|
|
10586
|
-
"
|
|
10587
|
-
"
|
|
10588
|
-
|
|
10589
|
-
"sm",
|
|
10590
|
-
"md",
|
|
10591
|
-
"lg",
|
|
10592
|
-
"xl"
|
|
10593
|
-
],
|
|
10594
|
-
"default": "md",
|
|
10595
|
-
"description": "Scales padding, text and avatars."
|
|
12526
|
+
"crumbs": {
|
|
12527
|
+
"forwarded": true,
|
|
12528
|
+
"type": "{ label: string; href?: string }[]",
|
|
12529
|
+
"description": "Breadcrumb trail above the title."
|
|
10596
12530
|
}
|
|
10597
12531
|
},
|
|
10598
12532
|
"slots": {
|
|
10599
|
-
"
|
|
10600
|
-
|
|
12533
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12534
|
+
"actions": "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).",
|
|
12535
|
+
"summary": "Tiles above the board (leads, amount, conversion, overdue); StatsCard or KpiTile.",
|
|
12536
|
+
"filters": "Status tabs, search and period switch; Tabs, SearchInput, SegmentedControl, FilterChips.",
|
|
12537
|
+
"board": "Stage columns with deal cards; PipelineBoard, KanbanColumn, DealCard.",
|
|
12538
|
+
"calls": "Recent call queue; CallRow, CallCard, IncomingCall."
|
|
12539
|
+
},
|
|
12540
|
+
"notes": [
|
|
12541
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12542
|
+
]
|
|
10601
12543
|
},
|
|
10602
12544
|
{
|
|
10603
|
-
"name": "
|
|
10604
|
-
"tag": "
|
|
10605
|
-
"group": "
|
|
10606
|
-
"description": "
|
|
12545
|
+
"name": "PageBookings",
|
|
12546
|
+
"tag": "UiPageBookings",
|
|
12547
|
+
"group": "pages",
|
|
12548
|
+
"description": "Bookings list template: stats, toolbar, bulk-action bar, table and pagination.",
|
|
10607
12549
|
"props": {
|
|
10608
|
-
"
|
|
12550
|
+
"title": {
|
|
12551
|
+
"forwarded": true,
|
|
10609
12552
|
"type": "string",
|
|
10610
|
-
"
|
|
10611
|
-
"description": "Caller name."
|
|
12553
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10612
12554
|
},
|
|
10613
|
-
"
|
|
12555
|
+
"subtitle": {
|
|
12556
|
+
"forwarded": true,
|
|
10614
12557
|
"type": "string",
|
|
10615
|
-
"description": "
|
|
10616
|
-
},
|
|
10617
|
-
"duration": {
|
|
10618
|
-
"type": "number",
|
|
10619
|
-
"description": "Duration in seconds, formatted as \"3 m 05 s\" (units from durUnits); shows a dash when missing."
|
|
10620
|
-
},
|
|
10621
|
-
"durUnits": {
|
|
10622
|
-
"type": "{ m?: string; s?: string }",
|
|
10623
|
-
"default": "{ m: 'm', s: 's' }",
|
|
10624
|
-
"description": "Minute and second unit labels for localized durations, e.g. { m: \"min\", s: \"sec\" }."
|
|
10625
|
-
},
|
|
10626
|
-
"labels": {
|
|
10627
|
-
"type": "{ play?: string }",
|
|
10628
|
-
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
12558
|
+
"description": "Caption under the heading."
|
|
10629
12559
|
},
|
|
10630
|
-
"
|
|
10631
|
-
"
|
|
10632
|
-
"
|
|
10633
|
-
|
|
10634
|
-
"sm",
|
|
10635
|
-
"md",
|
|
10636
|
-
"lg",
|
|
10637
|
-
"xl"
|
|
10638
|
-
],
|
|
10639
|
-
"default": "md",
|
|
10640
|
-
"description": "Scales padding, text and avatars."
|
|
12560
|
+
"crumbs": {
|
|
12561
|
+
"forwarded": true,
|
|
12562
|
+
"type": "{ label: string; href?: string }[]",
|
|
12563
|
+
"description": "Breadcrumb trail above the title."
|
|
10641
12564
|
}
|
|
10642
12565
|
},
|
|
10643
|
-
"
|
|
10644
|
-
"
|
|
10645
|
-
|
|
12566
|
+
"slots": {
|
|
12567
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12568
|
+
"actions": "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).",
|
|
12569
|
+
"stats": "Booking figures for the period; StatsCard.",
|
|
12570
|
+
"toolbar": "Search, quick filters and export menu above the table; SearchInput, FilterChips, Dropdown.",
|
|
12571
|
+
"bulk": "Selection bar shown when rows are selected; Alert with Buttons. Render it conditionally.",
|
|
12572
|
+
"table": "Sortable, selectable table; DataTable.",
|
|
12573
|
+
"pager": "Page numbers below the table; Pagination."
|
|
12574
|
+
},
|
|
12575
|
+
"notes": [
|
|
12576
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12577
|
+
]
|
|
10646
12578
|
},
|
|
10647
12579
|
{
|
|
10648
|
-
"name": "
|
|
10649
|
-
"tag": "
|
|
10650
|
-
"group": "
|
|
10651
|
-
"description": "
|
|
12580
|
+
"name": "PageCatalog",
|
|
12581
|
+
"tag": "UiPageCatalog",
|
|
12582
|
+
"group": "pages",
|
|
12583
|
+
"description": "Catalog template with a filter sidebar and a card grid (hotels, tours).",
|
|
10652
12584
|
"props": {
|
|
10653
|
-
"
|
|
12585
|
+
"title": {
|
|
12586
|
+
"forwarded": true,
|
|
10654
12587
|
"type": "string",
|
|
10655
|
-
"
|
|
10656
|
-
"description": "Caller name."
|
|
12588
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10657
12589
|
},
|
|
10658
|
-
"
|
|
12590
|
+
"subtitle": {
|
|
12591
|
+
"forwarded": true,
|
|
10659
12592
|
"type": "string",
|
|
10660
|
-
"description": "
|
|
10661
|
-
},
|
|
10662
|
-
"status": {
|
|
10663
|
-
"type": "'Answered' | 'Missed' | 'Voicemail' | 'Busy' | 'Declined' | string",
|
|
10664
|
-
"values": [
|
|
10665
|
-
"Answered",
|
|
10666
|
-
"Missed",
|
|
10667
|
-
"Voicemail",
|
|
10668
|
-
"Busy",
|
|
10669
|
-
"Declined"
|
|
10670
|
-
],
|
|
10671
|
-
"description": "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."
|
|
10672
|
-
},
|
|
10673
|
-
"statusTones": {
|
|
10674
|
-
"type": "Record<string, 'success' | 'danger' | 'warning' | 'info' | 'brand'>",
|
|
10675
|
-
"description": "Extra or overriding status to tone mapping, e.g. { \"No answer\": \"warning\" }."
|
|
10676
|
-
},
|
|
10677
|
-
"progress": {
|
|
10678
|
-
"type": "number",
|
|
10679
|
-
"default": 0,
|
|
10680
|
-
"description": "Playback progress 0-100."
|
|
10681
|
-
},
|
|
10682
|
-
"duration": {
|
|
10683
|
-
"type": "number",
|
|
10684
|
-
"description": "Duration in seconds."
|
|
10685
|
-
},
|
|
10686
|
-
"durUnits": {
|
|
10687
|
-
"type": "{ m?: string; s?: string }",
|
|
10688
|
-
"default": "{ m: 'm', s: 's' }",
|
|
10689
|
-
"description": "Minute and second unit labels for the duration."
|
|
10690
|
-
},
|
|
10691
|
-
"labels": {
|
|
10692
|
-
"type": "{ play?: string }",
|
|
10693
|
-
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
12593
|
+
"description": "Caption under the heading."
|
|
10694
12594
|
},
|
|
10695
|
-
"
|
|
10696
|
-
"
|
|
10697
|
-
"
|
|
10698
|
-
|
|
10699
|
-
|
|
10700
|
-
|
|
10701
|
-
|
|
10702
|
-
|
|
10703
|
-
|
|
10704
|
-
|
|
10705
|
-
|
|
12595
|
+
"crumbs": {
|
|
12596
|
+
"forwarded": true,
|
|
12597
|
+
"type": "{ label: string; href?: string }[]",
|
|
12598
|
+
"description": "Breadcrumb trail above the title."
|
|
12599
|
+
}
|
|
12600
|
+
},
|
|
12601
|
+
"slots": {
|
|
12602
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12603
|
+
"actions": "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).",
|
|
12604
|
+
"filters": "Left filter column (price, rating, services); Slider, Rating, RadioGroup, Checkbox.",
|
|
12605
|
+
"toolbar": "Search, view switch and sort above the grid; SearchInput, ToggleGroup, Select.",
|
|
12606
|
+
"grid": "Responsive grid of cards; HotelCard or TourCard.",
|
|
12607
|
+
"pager": "Pagination at the bottom; Pagination."
|
|
12608
|
+
},
|
|
12609
|
+
"notes": [
|
|
12610
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
12611
|
+
"The filter column is 260 px wide; on phones put filters in a Drawer yourself."
|
|
12612
|
+
]
|
|
12613
|
+
},
|
|
12614
|
+
{
|
|
12615
|
+
"name": "PageDetail",
|
|
12616
|
+
"tag": "UiPageDetail",
|
|
12617
|
+
"group": "pages",
|
|
12618
|
+
"description": "Detail page template (hotel, tour): gallery, summary, tabs, history and a booking side card.",
|
|
12619
|
+
"props": {
|
|
12620
|
+
"title": {
|
|
12621
|
+
"forwarded": true,
|
|
12622
|
+
"type": "string",
|
|
12623
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
12624
|
+
},
|
|
12625
|
+
"subtitle": {
|
|
12626
|
+
"forwarded": true,
|
|
12627
|
+
"type": "string",
|
|
12628
|
+
"description": "Caption under the heading."
|
|
12629
|
+
},
|
|
12630
|
+
"crumbs": {
|
|
12631
|
+
"forwarded": true,
|
|
12632
|
+
"type": "{ label: string; href?: string }[]",
|
|
12633
|
+
"description": "Breadcrumb trail above the title."
|
|
10706
12634
|
}
|
|
10707
12635
|
},
|
|
10708
|
-
"
|
|
10709
|
-
"
|
|
10710
|
-
|
|
12636
|
+
"slots": {
|
|
12637
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12638
|
+
"actions": "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).",
|
|
12639
|
+
"gallery": "Main photo with thumbnails; Gallery, Carousel, LazyImage.",
|
|
12640
|
+
"summary": "Name, stars, rating, badges; Card with Badge and Rating.",
|
|
12641
|
+
"tabs": "Description, amenities, reviews; Tabs with Descriptions or Accordion.",
|
|
12642
|
+
"history": "What changed (status, notes, price); Timeline.",
|
|
12643
|
+
"booking": "Right-hand booking card with dates, guests, price and CTA; Card, Select, NumberInput, Button."
|
|
12644
|
+
},
|
|
12645
|
+
"notes": [
|
|
12646
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
12647
|
+
"gallery, summary, tabs and history are the main column; booking is the side column."
|
|
12648
|
+
]
|
|
10711
12649
|
},
|
|
10712
12650
|
{
|
|
10713
|
-
"name": "
|
|
10714
|
-
"tag": "
|
|
10715
|
-
"group": "
|
|
10716
|
-
"description": "
|
|
12651
|
+
"name": "PageSettings",
|
|
12652
|
+
"tag": "UiPageSettings",
|
|
12653
|
+
"group": "pages",
|
|
12654
|
+
"description": "Settings template with a section sub-navigation and stacked settings sections.",
|
|
10717
12655
|
"props": {
|
|
10718
|
-
"
|
|
10719
|
-
"
|
|
10720
|
-
"required": true,
|
|
10721
|
-
"description": "Caller name."
|
|
10722
|
-
},
|
|
10723
|
-
"phone": {
|
|
12656
|
+
"title": {
|
|
12657
|
+
"forwarded": true,
|
|
10724
12658
|
"type": "string",
|
|
10725
|
-
"description": "
|
|
12659
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10726
12660
|
},
|
|
10727
|
-
"
|
|
12661
|
+
"subtitle": {
|
|
12662
|
+
"forwarded": true,
|
|
10728
12663
|
"type": "string",
|
|
10729
|
-
"
|
|
10730
|
-
"description": "Caption above the name."
|
|
10731
|
-
},
|
|
10732
|
-
"onDecline": {
|
|
10733
|
-
"type": "() => void",
|
|
10734
|
-
"description": "Decline button click."
|
|
10735
|
-
},
|
|
10736
|
-
"onAnswer": {
|
|
10737
|
-
"type": "() => void",
|
|
10738
|
-
"description": "Answer button click."
|
|
12664
|
+
"description": "Caption under the heading."
|
|
10739
12665
|
},
|
|
10740
|
-
"
|
|
10741
|
-
"
|
|
10742
|
-
"
|
|
10743
|
-
|
|
10744
|
-
"sm",
|
|
10745
|
-
"md",
|
|
10746
|
-
"lg",
|
|
10747
|
-
"xl"
|
|
10748
|
-
],
|
|
10749
|
-
"default": "md",
|
|
10750
|
-
"description": "Scales padding, text and avatars."
|
|
12666
|
+
"crumbs": {
|
|
12667
|
+
"forwarded": true,
|
|
12668
|
+
"type": "{ label: string; href?: string }[]",
|
|
12669
|
+
"description": "Breadcrumb trail above the title."
|
|
10751
12670
|
}
|
|
10752
12671
|
},
|
|
10753
|
-
"
|
|
10754
|
-
"
|
|
10755
|
-
"
|
|
10756
|
-
|
|
12672
|
+
"slots": {
|
|
12673
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12674
|
+
"actions": "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).",
|
|
12675
|
+
"subnav": "Left section menu; SubNav or Tabs.",
|
|
12676
|
+
"profile": "Profile section; SettingsSection with TextField, PhoneInput.",
|
|
12677
|
+
"notifications": "Delivery channels; SettingsSection with Switch.",
|
|
12678
|
+
"integrations": "Service cards (connected, off, error); IntegrationCard.",
|
|
12679
|
+
"danger": "Irreversible actions; Alert, red Button, ConfirmDialog."
|
|
12680
|
+
},
|
|
12681
|
+
"notes": [
|
|
12682
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12683
|
+
]
|
|
10757
12684
|
},
|
|
10758
12685
|
{
|
|
10759
|
-
"name": "
|
|
10760
|
-
"tag": "
|
|
10761
|
-
"group": "
|
|
10762
|
-
"description": "
|
|
12686
|
+
"name": "PageUserList",
|
|
12687
|
+
"tag": "UiPageUserList",
|
|
12688
|
+
"group": "pages",
|
|
12689
|
+
"description": "User or customer list template: stats, filters, toolbar, table and a right-hand add/edit drawer.",
|
|
10763
12690
|
"props": {
|
|
10764
12691
|
"title": {
|
|
12692
|
+
"forwarded": true,
|
|
10765
12693
|
"type": "string",
|
|
10766
|
-
"
|
|
10767
|
-
"description": "Form heading."
|
|
12694
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10768
12695
|
},
|
|
10769
12696
|
"subtitle": {
|
|
12697
|
+
"forwarded": true,
|
|
10770
12698
|
"type": "string",
|
|
10771
|
-
"description": "
|
|
10772
|
-
},
|
|
10773
|
-
"logo": {
|
|
10774
|
-
"type": "VNode",
|
|
10775
|
-
"description": "Logo node above the heading."
|
|
12699
|
+
"description": "Caption under the heading."
|
|
10776
12700
|
},
|
|
10777
|
-
"
|
|
10778
|
-
"
|
|
10779
|
-
"
|
|
12701
|
+
"crumbs": {
|
|
12702
|
+
"forwarded": true,
|
|
12703
|
+
"type": "{ label: string; href?: string }[]",
|
|
12704
|
+
"description": "Breadcrumb trail above the title."
|
|
10780
12705
|
}
|
|
10781
12706
|
},
|
|
10782
12707
|
"slots": {
|
|
10783
|
-
"
|
|
12708
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12709
|
+
"actions": "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).",
|
|
12710
|
+
"stats": "Figures above the table; StatStrip.",
|
|
12711
|
+
"filters": "Filter selects in a card; Select.",
|
|
12712
|
+
"toolbar": "Page size, search, export and Add button; Select, SearchInput, Button.",
|
|
12713
|
+
"table": "Users table with checkboxes and actions; DataTable with UserCell, Chip, IconButton.",
|
|
12714
|
+
"drawer": "Side panel rendered in the side column; Drawer with TextField, Select, Button."
|
|
10784
12715
|
},
|
|
10785
12716
|
"notes": [
|
|
10786
|
-
"
|
|
12717
|
+
"Place inside AppShell; fill only the slots you need."
|
|
10787
12718
|
]
|
|
10788
12719
|
},
|
|
10789
12720
|
{
|
|
10790
|
-
"name": "
|
|
10791
|
-
"tag": "
|
|
10792
|
-
"group": "
|
|
10793
|
-
"description": "
|
|
12721
|
+
"name": "PageProfile",
|
|
12722
|
+
"tag": "UiPageProfile",
|
|
12723
|
+
"group": "pages",
|
|
12724
|
+
"description": "User profile template: cover header, tabs and two columns of about, activity and plan cards.",
|
|
10794
12725
|
"props": {
|
|
10795
|
-
"variant": {
|
|
10796
|
-
"type": "'photo' | 'light' | 'tint'",
|
|
10797
|
-
"values": [
|
|
10798
|
-
"photo",
|
|
10799
|
-
"light",
|
|
10800
|
-
"tint"
|
|
10801
|
-
],
|
|
10802
|
-
"default": "photo",
|
|
10803
|
-
"description": "'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."
|
|
10804
|
-
},
|
|
10805
12726
|
"title": {
|
|
12727
|
+
"forwarded": true,
|
|
10806
12728
|
"type": "string",
|
|
10807
|
-
"
|
|
10808
|
-
"description": "Form heading."
|
|
12729
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10809
12730
|
},
|
|
10810
12731
|
"subtitle": {
|
|
12732
|
+
"forwarded": true,
|
|
10811
12733
|
"type": "string",
|
|
10812
|
-
"description": "
|
|
10813
|
-
},
|
|
10814
|
-
"logo": {
|
|
10815
|
-
"type": "VNode",
|
|
10816
|
-
"description": "Logo node above the heading."
|
|
10817
|
-
},
|
|
10818
|
-
"footer": {
|
|
10819
|
-
"type": "VNode",
|
|
10820
|
-
"description": "Content under the fields, for example \"No account? Sign up\"."
|
|
12734
|
+
"description": "Caption under the heading."
|
|
10821
12735
|
},
|
|
10822
|
-
"
|
|
12736
|
+
"crumbs": {
|
|
12737
|
+
"forwarded": true,
|
|
12738
|
+
"type": "{ label: string; href?: string }[]",
|
|
12739
|
+
"description": "Breadcrumb trail above the title."
|
|
12740
|
+
}
|
|
12741
|
+
},
|
|
12742
|
+
"slots": {
|
|
12743
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12744
|
+
"actions": "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).",
|
|
12745
|
+
"profile": "Cover with avatar, name and meta; ProfileHeader.",
|
|
12746
|
+
"tabs": "Section tabs; PillTabs.",
|
|
12747
|
+
"about": "Left column key-value info; Card with Descriptions.",
|
|
12748
|
+
"activity": "Right column activity feed; Timeline.",
|
|
12749
|
+
"plan": "Right column plan card and upgrade button; Card, Badge, Progress, Button."
|
|
12750
|
+
},
|
|
12751
|
+
"notes": [
|
|
12752
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12753
|
+
]
|
|
12754
|
+
},
|
|
12755
|
+
{
|
|
12756
|
+
"name": "PageForm",
|
|
12757
|
+
"tag": "UiPageForm",
|
|
12758
|
+
"group": "pages",
|
|
12759
|
+
"description": "Create/edit form template: main column, media, side column and header actions.",
|
|
12760
|
+
"props": {
|
|
12761
|
+
"title": {
|
|
12762
|
+
"forwarded": true,
|
|
10823
12763
|
"type": "string",
|
|
10824
|
-
"description": "
|
|
12764
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10825
12765
|
},
|
|
10826
|
-
"
|
|
12766
|
+
"subtitle": {
|
|
12767
|
+
"forwarded": true,
|
|
10827
12768
|
"type": "string",
|
|
10828
|
-
"description": "
|
|
12769
|
+
"description": "Caption under the heading."
|
|
10829
12770
|
},
|
|
10830
|
-
"
|
|
12771
|
+
"crumbs": {
|
|
12772
|
+
"forwarded": true,
|
|
12773
|
+
"type": "{ label: string; href?: string }[]",
|
|
12774
|
+
"description": "Breadcrumb trail above the title."
|
|
12775
|
+
}
|
|
12776
|
+
},
|
|
12777
|
+
"slots": {
|
|
12778
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12779
|
+
"actions": "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.",
|
|
12780
|
+
"main": "Main column cards (info, options); Card, TextField, Textarea.",
|
|
12781
|
+
"media": "Below main; upload dropzone; FileUpload or Gallery.",
|
|
12782
|
+
"side": "Side column cards (price, status, tags); Card, NumberInput, Select, ChipInput."
|
|
12783
|
+
},
|
|
12784
|
+
"notes": [
|
|
12785
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12786
|
+
]
|
|
12787
|
+
},
|
|
12788
|
+
{
|
|
12789
|
+
"name": "PageOrder",
|
|
12790
|
+
"tag": "UiPageOrder",
|
|
12791
|
+
"group": "pages",
|
|
12792
|
+
"description": "Order/booking details template: status chips, items table, timeline and side info cards.",
|
|
12793
|
+
"props": {
|
|
12794
|
+
"title": {
|
|
12795
|
+
"forwarded": true,
|
|
10831
12796
|
"type": "string",
|
|
10832
|
-
"description": "
|
|
12797
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10833
12798
|
},
|
|
10834
|
-
"
|
|
12799
|
+
"subtitle": {
|
|
12800
|
+
"forwarded": true,
|
|
10835
12801
|
"type": "string",
|
|
10836
|
-
"description": "
|
|
10837
|
-
},
|
|
10838
|
-
"chips": {
|
|
10839
|
-
"type": "string[]",
|
|
10840
|
-
"description": "Pill labels inside the glass bar; light and tint."
|
|
10841
|
-
},
|
|
10842
|
-
"people": {
|
|
10843
|
-
"type": "{ name: string; src?: string }[]",
|
|
10844
|
-
"description": "Avatars: floating on the photo, stacked in the proof pill."
|
|
12802
|
+
"description": "Caption under the heading."
|
|
10845
12803
|
},
|
|
10846
|
-
"
|
|
12804
|
+
"crumbs": {
|
|
12805
|
+
"forwarded": true,
|
|
12806
|
+
"type": "{ label: string; href?: string }[]",
|
|
12807
|
+
"description": "Breadcrumb trail above the title."
|
|
12808
|
+
}
|
|
12809
|
+
},
|
|
12810
|
+
"slots": {
|
|
12811
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12812
|
+
"actions": "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).",
|
|
12813
|
+
"status": "Payment and fulfillment chips; Chip (tone success, warning, danger).",
|
|
12814
|
+
"items": "Items table with totals; DataTable.",
|
|
12815
|
+
"shipping": "Event timeline; Timeline.",
|
|
12816
|
+
"side": "Customer, address and payment cards; UserCell, Descriptions, Button."
|
|
12817
|
+
},
|
|
12818
|
+
"notes": [
|
|
12819
|
+
"Place inside AppShell; fill only the slots you need."
|
|
12820
|
+
]
|
|
12821
|
+
},
|
|
12822
|
+
{
|
|
12823
|
+
"name": "PageAccount",
|
|
12824
|
+
"tag": "UiPageAccount",
|
|
12825
|
+
"group": "pages",
|
|
12826
|
+
"description": "Account settings template with pill tabs and a swappable panel.",
|
|
12827
|
+
"props": {
|
|
12828
|
+
"title": {
|
|
12829
|
+
"forwarded": true,
|
|
10847
12830
|
"type": "string",
|
|
10848
|
-
"description": "
|
|
12831
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10849
12832
|
},
|
|
10850
|
-
"
|
|
12833
|
+
"subtitle": {
|
|
12834
|
+
"forwarded": true,
|
|
10851
12835
|
"type": "string",
|
|
10852
|
-
"description": "
|
|
12836
|
+
"description": "Caption under the heading."
|
|
12837
|
+
},
|
|
12838
|
+
"crumbs": {
|
|
12839
|
+
"forwarded": true,
|
|
12840
|
+
"type": "{ label: string; href?: string }[]",
|
|
12841
|
+
"description": "Breadcrumb trail above the title."
|
|
10853
12842
|
}
|
|
10854
12843
|
},
|
|
10855
12844
|
"slots": {
|
|
10856
|
-
"
|
|
12845
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12846
|
+
"actions": "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).",
|
|
12847
|
+
"tabs": "Section tabs (account, security, billing, notifications); PillTabs.",
|
|
12848
|
+
"panel": "Content of the active tab; Card or SettingsSection with Switch and TextField."
|
|
10857
12849
|
},
|
|
10858
12850
|
"notes": [
|
|
10859
|
-
"
|
|
12851
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
12852
|
+
"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."
|
|
10860
12853
|
]
|
|
10861
12854
|
},
|
|
10862
12855
|
{
|
|
10863
|
-
"name": "
|
|
10864
|
-
"tag": "
|
|
10865
|
-
"group": "
|
|
10866
|
-
"description": "
|
|
12856
|
+
"name": "PagePricing",
|
|
12857
|
+
"tag": "UiPagePricing",
|
|
12858
|
+
"group": "pages",
|
|
12859
|
+
"description": "Pricing template: billing-period toggle, plan cards and an FAQ.",
|
|
10867
12860
|
"props": {
|
|
10868
|
-
"
|
|
10869
|
-
"
|
|
10870
|
-
"
|
|
10871
|
-
"description": "
|
|
10872
|
-
},
|
|
10873
|
-
"variant": {
|
|
10874
|
-
"type": "'stack' | 'icons'",
|
|
10875
|
-
"values": [
|
|
10876
|
-
"stack",
|
|
10877
|
-
"icons"
|
|
10878
|
-
],
|
|
10879
|
-
"default": "stack",
|
|
10880
|
-
"description": "'stack': full-width buttons with a label, one per row. 'icons': a row of square icon buttons."
|
|
10881
|
-
},
|
|
10882
|
-
"divider": {
|
|
10883
|
-
"type": "boolean",
|
|
10884
|
-
"default": "true",
|
|
10885
|
-
"description": "Show the \"or\" line above the buttons."
|
|
10886
|
-
},
|
|
10887
|
-
"labels": {
|
|
10888
|
-
"type": "{ google?: string; apple?: string }",
|
|
10889
|
-
"description": "Provider names inserted into \"Continue with {provider}\"."
|
|
12861
|
+
"title": {
|
|
12862
|
+
"forwarded": true,
|
|
12863
|
+
"type": "string",
|
|
12864
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
10890
12865
|
},
|
|
10891
|
-
"
|
|
10892
|
-
"
|
|
10893
|
-
"
|
|
12866
|
+
"subtitle": {
|
|
12867
|
+
"forwarded": true,
|
|
12868
|
+
"type": "string",
|
|
12869
|
+
"description": "Caption under the heading."
|
|
10894
12870
|
},
|
|
10895
|
-
"
|
|
10896
|
-
"
|
|
10897
|
-
"
|
|
10898
|
-
|
|
10899
|
-
"sm",
|
|
10900
|
-
"md",
|
|
10901
|
-
"lg",
|
|
10902
|
-
"xl"
|
|
10903
|
-
],
|
|
10904
|
-
"default": "md",
|
|
10905
|
-
"description": "Scales padding, text and avatars."
|
|
12871
|
+
"crumbs": {
|
|
12872
|
+
"forwarded": true,
|
|
12873
|
+
"type": "{ label: string; href?: string }[]",
|
|
12874
|
+
"description": "Breadcrumb trail above the title."
|
|
10906
12875
|
}
|
|
10907
12876
|
},
|
|
10908
|
-
"
|
|
10909
|
-
"
|
|
12877
|
+
"slots": {
|
|
12878
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12879
|
+
"actions": "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).",
|
|
12880
|
+
"toggle": "Monthly/annual switch with a savings badge; Switch, Chip.",
|
|
12881
|
+
"plans": "Plan cards, one marked featured; PricingCard.",
|
|
12882
|
+
"faq": "Questions accordion; Accordion."
|
|
10910
12883
|
},
|
|
10911
12884
|
"notes": [
|
|
10912
|
-
"
|
|
12885
|
+
"Place inside AppShell; fill only the slots you need."
|
|
10913
12886
|
]
|
|
10914
12887
|
},
|
|
10915
12888
|
{
|
|
10916
|
-
"name": "
|
|
10917
|
-
"tag": "
|
|
12889
|
+
"name": "PageFaq",
|
|
12890
|
+
"tag": "UiPageFaq",
|
|
10918
12891
|
"group": "pages",
|
|
10919
|
-
"description": "
|
|
12892
|
+
"description": "Help center template: search, categories, answers accordion and a contact block.",
|
|
10920
12893
|
"props": {
|
|
10921
12894
|
"title": {
|
|
10922
12895
|
"forwarded": true,
|
|
@@ -10937,23 +12910,20 @@
|
|
|
10937
12910
|
"slots": {
|
|
10938
12911
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
10939
12912
|
"actions": "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).",
|
|
10940
|
-
"
|
|
10941
|
-
"
|
|
10942
|
-
"
|
|
10943
|
-
"
|
|
10944
|
-
"top": "Revenue leaderboard; DataTable with Progress share bars.",
|
|
10945
|
-
"activity": "Recent actions, newest first; Timeline."
|
|
12913
|
+
"search": "Large search field; SearchInput.",
|
|
12914
|
+
"cats": "Category list on the left; vertical PillTabs.",
|
|
12915
|
+
"answers": "Answers on the right; Accordion.",
|
|
12916
|
+
"contact": "Contact cards below; Card, IconTile, Button."
|
|
10946
12917
|
},
|
|
10947
12918
|
"notes": [
|
|
10948
|
-
"Place inside AppShell; fill only the slots you need."
|
|
10949
|
-
"hero and kpis share a row, as do occupancy/funnel and top/activity; they wrap on narrow screens."
|
|
12919
|
+
"Place inside AppShell; fill only the slots you need."
|
|
10950
12920
|
]
|
|
10951
12921
|
},
|
|
10952
12922
|
{
|
|
10953
|
-
"name": "
|
|
10954
|
-
"tag": "
|
|
12923
|
+
"name": "PageAnalytics",
|
|
12924
|
+
"tag": "UiPageAnalytics",
|
|
10955
12925
|
"group": "pages",
|
|
10956
|
-
"description": "
|
|
12926
|
+
"description": "Analytics template: period picker, KPI strip, trend charts, a breakdown block and a table. Put Export in actions.",
|
|
10957
12927
|
"props": {
|
|
10958
12928
|
"title": {
|
|
10959
12929
|
"forwarded": true,
|
|
@@ -10974,27 +12944,22 @@
|
|
|
10974
12944
|
"slots": {
|
|
10975
12945
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
10976
12946
|
"actions": "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).",
|
|
10977
|
-
"
|
|
10978
|
-
"
|
|
10979
|
-
"
|
|
10980
|
-
"
|
|
10981
|
-
"
|
|
10982
|
-
"listrows": "Icon, title and value rows; StatRow.",
|
|
10983
|
-
"countries": "Country amount rows; CountryRow.",
|
|
10984
|
-
"versus": "Two values with a share bar; VersusBar.",
|
|
10985
|
-
"segbar": "Composition bar with legend; SegBar.",
|
|
10986
|
-
"activity": "Timeline of events; Timeline.",
|
|
10987
|
-
"actioncard": "Card with collapse, refresh and close actions; ActionCard."
|
|
12947
|
+
"period": "Period presets and compare toggle; SegmentedControl, Select, Switch.",
|
|
12948
|
+
"kpis": "Headline numbers with deltas; KpiTile, StatLine.",
|
|
12949
|
+
"trend": "Main time series; ChartCard with MiniChart.",
|
|
12950
|
+
"breakdown": "Split by channel or country; ChartCard with SegBar and CountryRow.",
|
|
12951
|
+
"table": "Rows behind the numbers; DataTable."
|
|
10988
12952
|
},
|
|
10989
12953
|
"notes": [
|
|
10990
|
-
"Place inside AppShell; fill only the slots you need."
|
|
12954
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
12955
|
+
"Trend and breakdown share a row and wrap on narrow screens. Put Export in the actions slot."
|
|
10991
12956
|
]
|
|
10992
12957
|
},
|
|
10993
12958
|
{
|
|
10994
|
-
"name": "
|
|
10995
|
-
"tag": "
|
|
12959
|
+
"name": "PageCalendar",
|
|
12960
|
+
"tag": "UiPageCalendar",
|
|
10996
12961
|
"group": "pages",
|
|
10997
|
-
"description": "
|
|
12962
|
+
"description": "Calendar template: view switch, time grid, mini calendar and event details.",
|
|
10998
12963
|
"props": {
|
|
10999
12964
|
"title": {
|
|
11000
12965
|
"forwarded": true,
|
|
@@ -11015,20 +12980,21 @@
|
|
|
11015
12980
|
"slots": {
|
|
11016
12981
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11017
12982
|
"actions": "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).",
|
|
11018
|
-
"
|
|
11019
|
-
"
|
|
11020
|
-
"
|
|
11021
|
-
"
|
|
12983
|
+
"toolbar": "SegmentedControl, Button, IconButton.",
|
|
12984
|
+
"grid": "Time grid with events; Card with custom grid, or CalendarView for the month.",
|
|
12985
|
+
"mini": "Month picker; Calendar.",
|
|
12986
|
+
"details": "Selected event; Card, Descriptions, Avatar, Button."
|
|
11022
12987
|
},
|
|
11023
12988
|
"notes": [
|
|
11024
|
-
"Place inside AppShell; fill only the slots you need."
|
|
12989
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
12990
|
+
"The grid sits beside the mini calendar and details; they stack under 860 px."
|
|
11025
12991
|
]
|
|
11026
12992
|
},
|
|
11027
12993
|
{
|
|
11028
|
-
"name": "
|
|
11029
|
-
"tag": "
|
|
12994
|
+
"name": "PageKanban",
|
|
12995
|
+
"tag": "UiPageKanban",
|
|
11030
12996
|
"group": "pages",
|
|
11031
|
-
"description": "
|
|
12997
|
+
"description": "Kanban template: filters, task board columns and a card detail panel.",
|
|
11032
12998
|
"props": {
|
|
11033
12999
|
"title": {
|
|
11034
13000
|
"forwarded": true,
|
|
@@ -11049,21 +13015,20 @@
|
|
|
11049
13015
|
"slots": {
|
|
11050
13016
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11051
13017
|
"actions": "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).",
|
|
11052
|
-
"
|
|
11053
|
-
"
|
|
11054
|
-
"
|
|
11055
|
-
"table": "Sortable, selectable table; DataTable.",
|
|
11056
|
-
"pager": "Page numbers below the table; Pagination."
|
|
13018
|
+
"filters": "SearchInput, FilterChips, Select.",
|
|
13019
|
+
"board": "Columns with cards; KanbanColumn, KanbanCard.",
|
|
13020
|
+
"detail": "Selected card; Card, Descriptions, Checkbox, Timeline."
|
|
11057
13021
|
},
|
|
11058
13022
|
"notes": [
|
|
11059
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13023
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13024
|
+
"Board scrolls horizontally inside its area; detail goes below it under 860 px."
|
|
11060
13025
|
]
|
|
11061
13026
|
},
|
|
11062
13027
|
{
|
|
11063
|
-
"name": "
|
|
11064
|
-
"tag": "
|
|
13028
|
+
"name": "PageBilling",
|
|
13029
|
+
"tag": "UiPageBilling",
|
|
11065
13030
|
"group": "pages",
|
|
11066
|
-
"description": "
|
|
13031
|
+
"description": "Billing template: current plan, usage meters, invoices, payment methods and an upgrade card.",
|
|
11067
13032
|
"props": {
|
|
11068
13033
|
"title": {
|
|
11069
13034
|
"forwarded": true,
|
|
@@ -11084,21 +13049,22 @@
|
|
|
11084
13049
|
"slots": {
|
|
11085
13050
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11086
13051
|
"actions": "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).",
|
|
11087
|
-
"
|
|
11088
|
-
"
|
|
11089
|
-
"
|
|
11090
|
-
"
|
|
13052
|
+
"plan": "Current plan; Card with Badge and Buttons.",
|
|
13053
|
+
"usage": "Usage meters; Progress.",
|
|
13054
|
+
"invoices": "Invoices; DataTable.",
|
|
13055
|
+
"methods": "Saved cards; Card, IconTile, Badge.",
|
|
13056
|
+
"upgrade": "Upgrade call to action; Card variant=\"inverse\" or PricingCard."
|
|
11091
13057
|
},
|
|
11092
13058
|
"notes": [
|
|
11093
13059
|
"Place inside AppShell; fill only the slots you need.",
|
|
11094
|
-
"
|
|
13060
|
+
"Plan, usage and invoices share the main column; methods and upgrade form the side column."
|
|
11095
13061
|
]
|
|
11096
13062
|
},
|
|
11097
13063
|
{
|
|
11098
|
-
"name": "
|
|
11099
|
-
"tag": "
|
|
13064
|
+
"name": "PageTeam",
|
|
13065
|
+
"tag": "UiPageTeam",
|
|
11100
13066
|
"group": "pages",
|
|
11101
|
-
"description": "
|
|
13067
|
+
"description": "Team template: member stats, members table, roles and permissions matrix, and an invite form.",
|
|
11102
13068
|
"props": {
|
|
11103
13069
|
"title": {
|
|
11104
13070
|
"forwarded": true,
|
|
@@ -11119,22 +13085,21 @@
|
|
|
11119
13085
|
"slots": {
|
|
11120
13086
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11121
13087
|
"actions": "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).",
|
|
11122
|
-
"
|
|
11123
|
-
"
|
|
11124
|
-
"
|
|
11125
|
-
"
|
|
11126
|
-
"booking": "Right-hand booking card with dates, guests, price and CTA; Card, Select, NumberInput, Button."
|
|
13088
|
+
"stats": "Counters; KpiTile, StatsCard.",
|
|
13089
|
+
"members": "Members; DataTable with UserCell, Select, Badge.",
|
|
13090
|
+
"roles": "Permissions matrix; DataTable with Checkbox cells.",
|
|
13091
|
+
"invite": "Invite form; Card, TextField, Select, Button."
|
|
11127
13092
|
},
|
|
11128
13093
|
"notes": [
|
|
11129
13094
|
"Place inside AppShell; fill only the slots you need.",
|
|
11130
|
-
"
|
|
13095
|
+
"Members and roles share the main column; the invite form is the side column."
|
|
11131
13096
|
]
|
|
11132
13097
|
},
|
|
11133
13098
|
{
|
|
11134
|
-
"name": "
|
|
11135
|
-
"tag": "
|
|
13099
|
+
"name": "PageIntegrations",
|
|
13100
|
+
"tag": "UiPageIntegrations",
|
|
11136
13101
|
"group": "pages",
|
|
11137
|
-
"description": "
|
|
13102
|
+
"description": "Integrations template: connection cards, API keys and webhooks.",
|
|
11138
13103
|
"props": {
|
|
11139
13104
|
"title": {
|
|
11140
13105
|
"forwarded": true,
|
|
@@ -11155,21 +13120,21 @@
|
|
|
11155
13120
|
"slots": {
|
|
11156
13121
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11157
13122
|
"actions": "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).",
|
|
11158
|
-
"
|
|
11159
|
-
"
|
|
11160
|
-
"
|
|
11161
|
-
"
|
|
11162
|
-
"danger": "Irreversible actions; Alert, red Button, ConfirmDialog."
|
|
13123
|
+
"filters": "SearchInput, FilterChips.",
|
|
13124
|
+
"connections": "IntegrationCard grid.",
|
|
13125
|
+
"keys": "Keys; DataTable with CopyButton and IconButton.",
|
|
13126
|
+
"webhooks": "Webhooks list; Card, Switch, Chip."
|
|
11163
13127
|
},
|
|
11164
13128
|
"notes": [
|
|
11165
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13129
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13130
|
+
"Keys and webhooks share a row and wrap on narrow screens."
|
|
11166
13131
|
]
|
|
11167
13132
|
},
|
|
11168
13133
|
{
|
|
11169
|
-
"name": "
|
|
11170
|
-
"tag": "
|
|
13134
|
+
"name": "PageSearch",
|
|
13135
|
+
"tag": "UiPageSearch",
|
|
11171
13136
|
"group": "pages",
|
|
11172
|
-
"description": "
|
|
13137
|
+
"description": "Search template: query field, filter sidebar, result groups and an empty state.",
|
|
11173
13138
|
"props": {
|
|
11174
13139
|
"title": {
|
|
11175
13140
|
"forwarded": true,
|
|
@@ -11190,21 +13155,21 @@
|
|
|
11190
13155
|
"slots": {
|
|
11191
13156
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11192
13157
|
"actions": "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).",
|
|
11193
|
-
"
|
|
11194
|
-
"filters": "
|
|
11195
|
-
"
|
|
11196
|
-
"
|
|
11197
|
-
"drawer": "Side panel rendered in the side column; Drawer with TextField, Select, Button."
|
|
13158
|
+
"search": "SearchInput, Tabs.",
|
|
13159
|
+
"filters": "Filters; Card, Checkbox, Select.",
|
|
13160
|
+
"results": "Result groups; Card, Chip, Divider.",
|
|
13161
|
+
"empty": "Shown only when there are no results; EmptyState."
|
|
11198
13162
|
},
|
|
11199
13163
|
"notes": [
|
|
11200
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13164
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13165
|
+
"Filters sit left of the results and stack above them under 860 px. Fill empty only when there are no results."
|
|
11201
13166
|
]
|
|
11202
13167
|
},
|
|
11203
13168
|
{
|
|
11204
|
-
"name": "
|
|
11205
|
-
"tag": "
|
|
13169
|
+
"name": "PageArticle",
|
|
13170
|
+
"tag": "UiPageArticle",
|
|
11206
13171
|
"group": "pages",
|
|
11207
|
-
"description": "
|
|
13172
|
+
"description": "Article template: cover, post body, sticky table of contents, share row and related posts.",
|
|
11208
13173
|
"props": {
|
|
11209
13174
|
"title": {
|
|
11210
13175
|
"forwarded": true,
|
|
@@ -11225,21 +13190,22 @@
|
|
|
11225
13190
|
"slots": {
|
|
11226
13191
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11227
13192
|
"actions": "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).",
|
|
11228
|
-
"
|
|
11229
|
-
"
|
|
11230
|
-
"
|
|
11231
|
-
"
|
|
11232
|
-
"
|
|
13193
|
+
"cover": "Cover image area with title and author line; a gradient Card or LazyImage.",
|
|
13194
|
+
"body": "Article text; Heading, Text, Code, Alert.",
|
|
13195
|
+
"toc": "Sticky table of contents; Card with a list of anchor links.",
|
|
13196
|
+
"share": "Share and reaction row; Button, IconButton, CopyButton.",
|
|
13197
|
+
"related": "Related posts; Card grid."
|
|
11233
13198
|
},
|
|
11234
13199
|
"notes": [
|
|
11235
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13200
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13201
|
+
"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."
|
|
11236
13202
|
]
|
|
11237
13203
|
},
|
|
11238
13204
|
{
|
|
11239
|
-
"name": "
|
|
11240
|
-
"tag": "
|
|
13205
|
+
"name": "PageChangelog",
|
|
13206
|
+
"tag": "UiPageChangelog",
|
|
11241
13207
|
"group": "pages",
|
|
11242
|
-
"description": "
|
|
13208
|
+
"description": "Changelog template: release timeline grouped by version with new, fix and improved tags, a filter and a subscribe card.",
|
|
11243
13209
|
"props": {
|
|
11244
13210
|
"title": {
|
|
11245
13211
|
"forwarded": true,
|
|
@@ -11259,20 +13225,21 @@
|
|
|
11259
13225
|
},
|
|
11260
13226
|
"slots": {
|
|
11261
13227
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11262
|
-
"actions": "
|
|
11263
|
-
"
|
|
11264
|
-
"
|
|
11265
|
-
"
|
|
13228
|
+
"actions": "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).",
|
|
13229
|
+
"filters": "Tag filter; FilterChips, SearchInput.",
|
|
13230
|
+
"timeline": "Releases grouped by version; Card, Chip, Divider.",
|
|
13231
|
+
"subscribe": "Sticky subscribe card; Card, TextField, Button."
|
|
11266
13232
|
},
|
|
11267
13233
|
"notes": [
|
|
11268
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13234
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13235
|
+
"Filters and timeline share the main column; the subscribe card is a sticky side column."
|
|
11269
13236
|
]
|
|
11270
13237
|
},
|
|
11271
13238
|
{
|
|
11272
|
-
"name": "
|
|
11273
|
-
"tag": "
|
|
13239
|
+
"name": "PageHelp",
|
|
13240
|
+
"tag": "UiPageHelp",
|
|
11274
13241
|
"group": "pages",
|
|
11275
|
-
"description": "
|
|
13242
|
+
"description": "Help center home: search, category grid, popular articles and a contact card.",
|
|
11276
13243
|
"props": {
|
|
11277
13244
|
"title": {
|
|
11278
13245
|
"forwarded": true,
|
|
@@ -11293,20 +13260,21 @@
|
|
|
11293
13260
|
"slots": {
|
|
11294
13261
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11295
13262
|
"actions": "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).",
|
|
11296
|
-
"
|
|
11297
|
-
"
|
|
11298
|
-
"
|
|
11299
|
-
"
|
|
13263
|
+
"search": "Large search field; SearchInput.",
|
|
13264
|
+
"categories": "Category tiles; Card with IconTile.",
|
|
13265
|
+
"popular": "Popular articles list; Card.",
|
|
13266
|
+
"contact": "Contact options; Card, Button."
|
|
11300
13267
|
},
|
|
11301
13268
|
"notes": [
|
|
11302
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13269
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13270
|
+
"Popular articles and contact share a row and wrap on narrow screens. For a single question list use PageFaq."
|
|
11303
13271
|
]
|
|
11304
13272
|
},
|
|
11305
13273
|
{
|
|
11306
|
-
"name": "
|
|
11307
|
-
"tag": "
|
|
13274
|
+
"name": "PageStates",
|
|
13275
|
+
"tag": "UiPageStates",
|
|
11308
13276
|
"group": "pages",
|
|
11309
|
-
"description": "
|
|
13277
|
+
"description": "State gallery: empty list, no results, no permission, offline, error with retry, loading and success on one page.",
|
|
11310
13278
|
"props": {
|
|
11311
13279
|
"title": {
|
|
11312
13280
|
"forwarded": true,
|
|
@@ -11327,19 +13295,24 @@
|
|
|
11327
13295
|
"slots": {
|
|
11328
13296
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11329
13297
|
"actions": "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).",
|
|
11330
|
-
"
|
|
11331
|
-
"
|
|
13298
|
+
"empty": "Empty list; EmptyState with a primary action.",
|
|
13299
|
+
"noresults": "No search results; EmptyState with a reset action.",
|
|
13300
|
+
"forbidden": "No permission; EmptyState with a request-access action.",
|
|
13301
|
+
"offline": "Offline; DataState state=\"offline\".",
|
|
13302
|
+
"error": "Error with retry; DataState state=\"error\".",
|
|
13303
|
+
"loading": "Loading; Skeleton or DataState state=\"loading\".",
|
|
13304
|
+
"success": "Success confirmation; Alert tone=\"success\" or EmptyState."
|
|
11332
13305
|
},
|
|
11333
13306
|
"notes": [
|
|
11334
13307
|
"Place inside AppShell; fill only the slots you need.",
|
|
11335
|
-
"The
|
|
13308
|
+
"The first six slots sit in two rows of auto-fit cards; success spans the full width."
|
|
11336
13309
|
]
|
|
11337
13310
|
},
|
|
11338
13311
|
{
|
|
11339
|
-
"name": "
|
|
11340
|
-
"tag": "
|
|
13312
|
+
"name": "PageLegal",
|
|
13313
|
+
"tag": "UiPageLegal",
|
|
11341
13314
|
"group": "pages",
|
|
11342
|
-
"description": "
|
|
13315
|
+
"description": "Legal document template: last-updated line, sticky table of contents, numbered sections and a contact card.",
|
|
11343
13316
|
"props": {
|
|
11344
13317
|
"title": {
|
|
11345
13318
|
"forwarded": true,
|
|
@@ -11360,19 +13333,21 @@
|
|
|
11360
13333
|
"slots": {
|
|
11361
13334
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11362
13335
|
"actions": "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).",
|
|
11363
|
-
"
|
|
11364
|
-
"
|
|
11365
|
-
"
|
|
13336
|
+
"meta": "Version, last-updated date and print or download buttons; Chip, Button.",
|
|
13337
|
+
"toc": "Sticky table of contents; Card with anchor links.",
|
|
13338
|
+
"document": "Document sections; Card, Heading, Text.",
|
|
13339
|
+
"contact": "Questions card; Card, Button."
|
|
11366
13340
|
},
|
|
11367
13341
|
"notes": [
|
|
11368
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13342
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13343
|
+
"The table of contents sits left of the document and stacks above it under 860 px."
|
|
11369
13344
|
]
|
|
11370
13345
|
},
|
|
11371
13346
|
{
|
|
11372
|
-
"name": "
|
|
11373
|
-
"tag": "
|
|
13347
|
+
"name": "PageLocations",
|
|
13348
|
+
"tag": "UiPageLocations",
|
|
11374
13349
|
"group": "pages",
|
|
11375
|
-
"description": "
|
|
13350
|
+
"description": "Locations template: filters, a scrollable list of places and a sticky map panel.",
|
|
11376
13351
|
"props": {
|
|
11377
13352
|
"title": {
|
|
11378
13353
|
"forwarded": true,
|
|
@@ -11393,20 +13368,20 @@
|
|
|
11393
13368
|
"slots": {
|
|
11394
13369
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11395
13370
|
"actions": "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).",
|
|
11396
|
-
"
|
|
11397
|
-
"
|
|
11398
|
-
"
|
|
11399
|
-
"contact": "Contact cards below; Card, IconTile, Button."
|
|
13371
|
+
"filters": "Search and category filters; SearchInput, FilterChips.",
|
|
13372
|
+
"list": "Places list; Card rows.",
|
|
13373
|
+
"map": "Map panel; Map, or a gradient placeholder."
|
|
11400
13374
|
},
|
|
11401
13375
|
"notes": [
|
|
11402
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13376
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13377
|
+
"The list is a fixed-width column left of the map; under 860 px the map goes below the list."
|
|
11403
13378
|
]
|
|
11404
13379
|
},
|
|
11405
13380
|
{
|
|
11406
|
-
"name": "
|
|
11407
|
-
"tag": "
|
|
13381
|
+
"name": "PageBookingFlow",
|
|
13382
|
+
"tag": "UiPageBookingFlow",
|
|
11408
13383
|
"group": "pages",
|
|
11409
|
-
"description": "
|
|
13384
|
+
"description": "Booking flow template: stepper, the active step content, back and continue buttons and a sticky summary card.",
|
|
11410
13385
|
"props": {
|
|
11411
13386
|
"title": {
|
|
11412
13387
|
"forwarded": true,
|
|
@@ -11427,15 +13402,14 @@
|
|
|
11427
13402
|
"slots": {
|
|
11428
13403
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11429
13404
|
"actions": "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).",
|
|
11430
|
-
"
|
|
11431
|
-
"
|
|
11432
|
-
"
|
|
11433
|
-
"
|
|
11434
|
-
"table": "Rows behind the numbers; DataTable."
|
|
13405
|
+
"steps": "Progress; Stepper.",
|
|
13406
|
+
"content": "Content of the active step (search, pick, guests, confirm); Card, DatePicker, OptionCards, NumberInput.",
|
|
13407
|
+
"nav": "Back and Continue buttons.",
|
|
13408
|
+
"summary": "Booking summary; Card, Descriptions."
|
|
11435
13409
|
},
|
|
11436
13410
|
"notes": [
|
|
11437
13411
|
"Place inside AppShell; fill only the slots you need.",
|
|
11438
|
-
"
|
|
13412
|
+
"Render only the active step in content. The summary stays visible on the right and goes below the step under 860 px."
|
|
11439
13413
|
]
|
|
11440
13414
|
},
|
|
11441
13415
|
{
|