@ziyarago/ui 0.7.0 → 0.8.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ziyarago/ui",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "homepage": "https://ziyara.vip",
5
5
  "imports": {
6
6
  "vue": "import { UiButton } from '@ziyarago/ui/vue'",
@@ -276,6 +276,12 @@
276
276
  "PagePricing",
277
277
  "PageFaq",
278
278
  "PageAnalytics",
279
+ "PageCalendar",
280
+ "PageKanban",
281
+ "PageBilling",
282
+ "PageTeam",
283
+ "PageIntegrations",
284
+ "PageSearch",
279
285
  "PageNotifications",
280
286
  "PageInbox",
281
287
  "PageCheckout",
@@ -3382,6 +3388,689 @@
3382
3388
  "use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
3383
3389
  }
3384
3390
  ]
3391
+ },
3392
+ {
3393
+ "id": "calendar",
3394
+ "label": "Calendar",
3395
+ "component": "UiPageCalendar",
3396
+ "description": "Schedule: week, day and month switch, event grid, mini calendar and an event details side panel.",
3397
+ "shell": true,
3398
+ "slots": [
3399
+ {
3400
+ "id": "header",
3401
+ "title": "Page heading",
3402
+ "desc": "Breadcrumbs, heading, caption and action buttons on the right.",
3403
+ "accepts": [
3404
+ "PageHeader",
3405
+ "Breadcrumbs",
3406
+ "Button",
3407
+ "SegmentedControl"
3408
+ ],
3409
+ "props": [
3410
+ {
3411
+ "name": "title",
3412
+ "type": "string",
3413
+ "desc": "H1, up to 60 characters"
3414
+ },
3415
+ {
3416
+ "name": "subtitle",
3417
+ "type": "string?",
3418
+ "desc": "Gray caption below the heading"
3419
+ },
3420
+ {
3421
+ "name": "crumbs",
3422
+ "type": "{label,href?}[]",
3423
+ "desc": "Breadcrumbs"
3424
+ },
3425
+ {
3426
+ "name": "actions",
3427
+ "type": "VNode",
3428
+ "desc": "Buttons on the right; wrap below on a narrow screen"
3429
+ }
3430
+ ],
3431
+ "use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
3432
+ },
3433
+ {
3434
+ "id": "toolbar",
3435
+ "title": "Toolbar",
3436
+ "desc": "View switch, date navigation and filters.",
3437
+ "accepts": [
3438
+ "SegmentedControl",
3439
+ "Button",
3440
+ "IconButton",
3441
+ "Select"
3442
+ ],
3443
+ "props": [
3444
+ {
3445
+ "name": "content",
3446
+ "type": "VNode",
3447
+ "desc": ""
3448
+ }
3449
+ ],
3450
+ "use": "<UiSegmentedControl v-model=\"view\" :items=\"views\" />"
3451
+ },
3452
+ {
3453
+ "id": "grid",
3454
+ "title": "Event grid",
3455
+ "desc": "Week, day or month grid with events.",
3456
+ "accepts": [
3457
+ "CalendarView",
3458
+ "Card"
3459
+ ],
3460
+ "props": [
3461
+ {
3462
+ "name": "content",
3463
+ "type": "VNode",
3464
+ "desc": ""
3465
+ }
3466
+ ],
3467
+ "use": "<UiCard padding=\"none\">…grid…</UiCard>"
3468
+ },
3469
+ {
3470
+ "id": "mini",
3471
+ "title": "Mini calendar",
3472
+ "desc": "Small month picker.",
3473
+ "accepts": [
3474
+ "Calendar"
3475
+ ],
3476
+ "props": [
3477
+ {
3478
+ "name": "content",
3479
+ "type": "VNode",
3480
+ "desc": ""
3481
+ }
3482
+ ],
3483
+ "use": "<UiCalendar v-model=\"day\" />"
3484
+ },
3485
+ {
3486
+ "id": "details",
3487
+ "title": "Event details",
3488
+ "desc": "Selected event with time, place, guests and actions.",
3489
+ "accepts": [
3490
+ "Card",
3491
+ "Descriptions",
3492
+ "Avatar",
3493
+ "Button"
3494
+ ],
3495
+ "props": [
3496
+ {
3497
+ "name": "content",
3498
+ "type": "VNode",
3499
+ "desc": ""
3500
+ }
3501
+ ],
3502
+ "use": "<UiCard title=\"Hotel check-in\">…</UiCard>"
3503
+ }
3504
+ ]
3505
+ },
3506
+ {
3507
+ "id": "kanban",
3508
+ "label": "Kanban",
3509
+ "component": "UiPageKanban",
3510
+ "description": "Task board: columns with cards, filters and a card detail panel.",
3511
+ "shell": true,
3512
+ "slots": [
3513
+ {
3514
+ "id": "header",
3515
+ "title": "Page heading",
3516
+ "desc": "Breadcrumbs, heading, caption and action buttons on the right.",
3517
+ "accepts": [
3518
+ "PageHeader",
3519
+ "Breadcrumbs",
3520
+ "Button",
3521
+ "SegmentedControl"
3522
+ ],
3523
+ "props": [
3524
+ {
3525
+ "name": "title",
3526
+ "type": "string",
3527
+ "desc": "H1, up to 60 characters"
3528
+ },
3529
+ {
3530
+ "name": "subtitle",
3531
+ "type": "string?",
3532
+ "desc": "Gray caption below the heading"
3533
+ },
3534
+ {
3535
+ "name": "crumbs",
3536
+ "type": "{label,href?}[]",
3537
+ "desc": "Breadcrumbs"
3538
+ },
3539
+ {
3540
+ "name": "actions",
3541
+ "type": "VNode",
3542
+ "desc": "Buttons on the right; wrap below on a narrow screen"
3543
+ }
3544
+ ],
3545
+ "use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
3546
+ },
3547
+ {
3548
+ "id": "filters",
3549
+ "title": "Filters",
3550
+ "desc": "Search, assignee and label filters.",
3551
+ "accepts": [
3552
+ "SearchInput",
3553
+ "FilterChips",
3554
+ "Select"
3555
+ ],
3556
+ "props": [
3557
+ {
3558
+ "name": "content",
3559
+ "type": "VNode",
3560
+ "desc": ""
3561
+ }
3562
+ ],
3563
+ "use": "<UiFilterChips v-model=\"f\" :items=\"labels\" />"
3564
+ },
3565
+ {
3566
+ "id": "board",
3567
+ "title": "Board",
3568
+ "desc": "Task columns with cards.",
3569
+ "accepts": [
3570
+ "KanbanColumn",
3571
+ "KanbanCard"
3572
+ ],
3573
+ "props": [
3574
+ {
3575
+ "name": "content",
3576
+ "type": "VNode",
3577
+ "desc": ""
3578
+ }
3579
+ ],
3580
+ "use": "<UiKanbanColumn title=\"To do\" :count=\"3\">…</UiKanbanColumn>"
3581
+ },
3582
+ {
3583
+ "id": "detail",
3584
+ "title": "Card detail",
3585
+ "desc": "Side panel for the selected card.",
3586
+ "accepts": [
3587
+ "Card",
3588
+ "Descriptions",
3589
+ "Timeline",
3590
+ "Checkbox"
3591
+ ],
3592
+ "props": [
3593
+ {
3594
+ "name": "content",
3595
+ "type": "VNode",
3596
+ "desc": ""
3597
+ }
3598
+ ],
3599
+ "use": "<UiCard title=\"Task\">…</UiCard>"
3600
+ }
3601
+ ]
3602
+ },
3603
+ {
3604
+ "id": "billing",
3605
+ "label": "Billing",
3606
+ "component": "UiPageBilling",
3607
+ "description": "Billing: current plan, usage meters, invoices table, payment methods and upgrade.",
3608
+ "shell": true,
3609
+ "slots": [
3610
+ {
3611
+ "id": "header",
3612
+ "title": "Page heading",
3613
+ "desc": "Breadcrumbs, heading, caption and action buttons on the right.",
3614
+ "accepts": [
3615
+ "PageHeader",
3616
+ "Breadcrumbs",
3617
+ "Button",
3618
+ "SegmentedControl"
3619
+ ],
3620
+ "props": [
3621
+ {
3622
+ "name": "title",
3623
+ "type": "string",
3624
+ "desc": "H1, up to 60 characters"
3625
+ },
3626
+ {
3627
+ "name": "subtitle",
3628
+ "type": "string?",
3629
+ "desc": "Gray caption below the heading"
3630
+ },
3631
+ {
3632
+ "name": "crumbs",
3633
+ "type": "{label,href?}[]",
3634
+ "desc": "Breadcrumbs"
3635
+ },
3636
+ {
3637
+ "name": "actions",
3638
+ "type": "VNode",
3639
+ "desc": "Buttons on the right; wrap below on a narrow screen"
3640
+ }
3641
+ ],
3642
+ "use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
3643
+ },
3644
+ {
3645
+ "id": "plan",
3646
+ "title": "Current plan",
3647
+ "desc": "Plan name, price, renewal date and actions.",
3648
+ "accepts": [
3649
+ "Card",
3650
+ "Badge",
3651
+ "Button"
3652
+ ],
3653
+ "props": [
3654
+ {
3655
+ "name": "content",
3656
+ "type": "VNode",
3657
+ "desc": ""
3658
+ }
3659
+ ],
3660
+ "use": "<UiCard title=\"Pro plan\">…</UiCard>"
3661
+ },
3662
+ {
3663
+ "id": "usage",
3664
+ "title": "Usage",
3665
+ "desc": "Meters for seats, storage and requests.",
3666
+ "accepts": [
3667
+ "Progress",
3668
+ "Card"
3669
+ ],
3670
+ "props": [
3671
+ {
3672
+ "name": "content",
3673
+ "type": "VNode",
3674
+ "desc": ""
3675
+ }
3676
+ ],
3677
+ "use": "<UiProgress :value=\"72\" label=\"Seats\" />"
3678
+ },
3679
+ {
3680
+ "id": "invoices",
3681
+ "title": "Invoices",
3682
+ "desc": "Past invoices with status and download.",
3683
+ "accepts": [
3684
+ "DataTable",
3685
+ "Badge"
3686
+ ],
3687
+ "props": [
3688
+ {
3689
+ "name": "content",
3690
+ "type": "VNode",
3691
+ "desc": ""
3692
+ }
3693
+ ],
3694
+ "use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
3695
+ },
3696
+ {
3697
+ "id": "methods",
3698
+ "title": "Payment methods",
3699
+ "desc": "Saved cards with default marker.",
3700
+ "accepts": [
3701
+ "Card",
3702
+ "IconTile",
3703
+ "Badge"
3704
+ ],
3705
+ "props": [
3706
+ {
3707
+ "name": "content",
3708
+ "type": "VNode",
3709
+ "desc": ""
3710
+ }
3711
+ ],
3712
+ "use": "<UiCard title=\"Payment methods\">…</UiCard>"
3713
+ },
3714
+ {
3715
+ "id": "upgrade",
3716
+ "title": "Upgrade",
3717
+ "desc": "Upsell card for the next plan.",
3718
+ "accepts": [
3719
+ "Card",
3720
+ "PricingCard",
3721
+ "Button"
3722
+ ],
3723
+ "props": [
3724
+ {
3725
+ "name": "content",
3726
+ "type": "VNode",
3727
+ "desc": ""
3728
+ }
3729
+ ],
3730
+ "use": "<UiCard variant=\"inverse\">…</UiCard>"
3731
+ }
3732
+ ]
3733
+ },
3734
+ {
3735
+ "id": "team",
3736
+ "label": "Team",
3737
+ "component": "UiPageTeam",
3738
+ "description": "Team: members table, invite form and a roles and permissions matrix.",
3739
+ "shell": true,
3740
+ "slots": [
3741
+ {
3742
+ "id": "header",
3743
+ "title": "Page heading",
3744
+ "desc": "Breadcrumbs, heading, caption and action buttons on the right.",
3745
+ "accepts": [
3746
+ "PageHeader",
3747
+ "Breadcrumbs",
3748
+ "Button",
3749
+ "SegmentedControl"
3750
+ ],
3751
+ "props": [
3752
+ {
3753
+ "name": "title",
3754
+ "type": "string",
3755
+ "desc": "H1, up to 60 characters"
3756
+ },
3757
+ {
3758
+ "name": "subtitle",
3759
+ "type": "string?",
3760
+ "desc": "Gray caption below the heading"
3761
+ },
3762
+ {
3763
+ "name": "crumbs",
3764
+ "type": "{label,href?}[]",
3765
+ "desc": "Breadcrumbs"
3766
+ },
3767
+ {
3768
+ "name": "actions",
3769
+ "type": "VNode",
3770
+ "desc": "Buttons on the right; wrap below on a narrow screen"
3771
+ }
3772
+ ],
3773
+ "use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
3774
+ },
3775
+ {
3776
+ "id": "stats",
3777
+ "title": "Summary",
3778
+ "desc": "Seats, pending invites and admins.",
3779
+ "accepts": [
3780
+ "StatsCard",
3781
+ "KpiTile"
3782
+ ],
3783
+ "props": [
3784
+ {
3785
+ "name": "content",
3786
+ "type": "VNode",
3787
+ "desc": ""
3788
+ }
3789
+ ],
3790
+ "use": "<UiKpiTile label=\"Members\" value=\"12\" />"
3791
+ },
3792
+ {
3793
+ "id": "members",
3794
+ "title": "Members",
3795
+ "desc": "Members table with role and status.",
3796
+ "accepts": [
3797
+ "DataTable",
3798
+ "UserCell",
3799
+ "Select",
3800
+ "Badge"
3801
+ ],
3802
+ "props": [
3803
+ {
3804
+ "name": "content",
3805
+ "type": "VNode",
3806
+ "desc": ""
3807
+ }
3808
+ ],
3809
+ "use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
3810
+ },
3811
+ {
3812
+ "id": "roles",
3813
+ "title": "Roles and permissions",
3814
+ "desc": "Matrix of permissions per role.",
3815
+ "accepts": [
3816
+ "DataTable",
3817
+ "Checkbox",
3818
+ "Switch"
3819
+ ],
3820
+ "props": [
3821
+ {
3822
+ "name": "content",
3823
+ "type": "VNode",
3824
+ "desc": ""
3825
+ }
3826
+ ],
3827
+ "use": "<UiDataTable :columns=\"roleCols\" :rows=\"perms\" />"
3828
+ },
3829
+ {
3830
+ "id": "invite",
3831
+ "title": "Invite",
3832
+ "desc": "Email, role and send button.",
3833
+ "accepts": [
3834
+ "Card",
3835
+ "TextField",
3836
+ "Select",
3837
+ "Button"
3838
+ ],
3839
+ "props": [
3840
+ {
3841
+ "name": "content",
3842
+ "type": "VNode",
3843
+ "desc": ""
3844
+ }
3845
+ ],
3846
+ "use": "<UiCard title=\"Invite\">…</UiCard>"
3847
+ }
3848
+ ]
3849
+ },
3850
+ {
3851
+ "id": "integrations",
3852
+ "label": "Integrations",
3853
+ "component": "UiPageIntegrations",
3854
+ "description": "Integrations: connection cards with status, API keys table with reveal, copy and revoke, and a webhooks list.",
3855
+ "shell": true,
3856
+ "slots": [
3857
+ {
3858
+ "id": "header",
3859
+ "title": "Page heading",
3860
+ "desc": "Breadcrumbs, heading, caption and action buttons on the right.",
3861
+ "accepts": [
3862
+ "PageHeader",
3863
+ "Breadcrumbs",
3864
+ "Button",
3865
+ "SegmentedControl"
3866
+ ],
3867
+ "props": [
3868
+ {
3869
+ "name": "title",
3870
+ "type": "string",
3871
+ "desc": "H1, up to 60 characters"
3872
+ },
3873
+ {
3874
+ "name": "subtitle",
3875
+ "type": "string?",
3876
+ "desc": "Gray caption below the heading"
3877
+ },
3878
+ {
3879
+ "name": "crumbs",
3880
+ "type": "{label,href?}[]",
3881
+ "desc": "Breadcrumbs"
3882
+ },
3883
+ {
3884
+ "name": "actions",
3885
+ "type": "VNode",
3886
+ "desc": "Buttons on the right; wrap below on a narrow screen"
3887
+ }
3888
+ ],
3889
+ "use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
3890
+ },
3891
+ {
3892
+ "id": "filters",
3893
+ "title": "Filters",
3894
+ "desc": "Search and category filter.",
3895
+ "accepts": [
3896
+ "SearchInput",
3897
+ "FilterChips"
3898
+ ],
3899
+ "props": [
3900
+ {
3901
+ "name": "content",
3902
+ "type": "VNode",
3903
+ "desc": ""
3904
+ }
3905
+ ],
3906
+ "use": "<UiSearchInput v-model=\"q\" />"
3907
+ },
3908
+ {
3909
+ "id": "connections",
3910
+ "title": "Connections",
3911
+ "desc": "Cards with connected, error or off status.",
3912
+ "accepts": [
3913
+ "IntegrationCard"
3914
+ ],
3915
+ "props": [
3916
+ {
3917
+ "name": "content",
3918
+ "type": "VNode",
3919
+ "desc": ""
3920
+ }
3921
+ ],
3922
+ "use": "<UiIntegrationCard name=\"Telegram\" status=\"connected\" />"
3923
+ },
3924
+ {
3925
+ "id": "keys",
3926
+ "title": "API keys",
3927
+ "desc": "Keys with reveal, copy and revoke.",
3928
+ "accepts": [
3929
+ "DataTable",
3930
+ "CopyButton",
3931
+ "IconButton"
3932
+ ],
3933
+ "props": [
3934
+ {
3935
+ "name": "content",
3936
+ "type": "VNode",
3937
+ "desc": ""
3938
+ }
3939
+ ],
3940
+ "use": "<UiDataTable :columns=\"cols\" :rows=\"keys\" />"
3941
+ },
3942
+ {
3943
+ "id": "webhooks",
3944
+ "title": "Webhooks",
3945
+ "desc": "Endpoints with event types and on/off switch.",
3946
+ "accepts": [
3947
+ "Card",
3948
+ "Switch",
3949
+ "Chip"
3950
+ ],
3951
+ "props": [
3952
+ {
3953
+ "name": "content",
3954
+ "type": "VNode",
3955
+ "desc": ""
3956
+ }
3957
+ ],
3958
+ "use": "<UiCard title=\"Webhooks\">…</UiCard>"
3959
+ }
3960
+ ]
3961
+ },
3962
+ {
3963
+ "id": "search",
3964
+ "label": "Search results",
3965
+ "component": "UiPageSearch",
3966
+ "description": "Search results: query field, filters, grouped results and an empty state.",
3967
+ "shell": true,
3968
+ "slots": [
3969
+ {
3970
+ "id": "header",
3971
+ "title": "Page heading",
3972
+ "desc": "Breadcrumbs, heading, caption and action buttons on the right.",
3973
+ "accepts": [
3974
+ "PageHeader",
3975
+ "Breadcrumbs",
3976
+ "Button",
3977
+ "SegmentedControl"
3978
+ ],
3979
+ "props": [
3980
+ {
3981
+ "name": "title",
3982
+ "type": "string",
3983
+ "desc": "H1, up to 60 characters"
3984
+ },
3985
+ {
3986
+ "name": "subtitle",
3987
+ "type": "string?",
3988
+ "desc": "Gray caption below the heading"
3989
+ },
3990
+ {
3991
+ "name": "crumbs",
3992
+ "type": "{label,href?}[]",
3993
+ "desc": "Breadcrumbs"
3994
+ },
3995
+ {
3996
+ "name": "actions",
3997
+ "type": "VNode",
3998
+ "desc": "Buttons on the right; wrap below on a narrow screen"
3999
+ }
4000
+ ],
4001
+ "use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
4002
+ },
4003
+ {
4004
+ "id": "search",
4005
+ "title": "Search field",
4006
+ "desc": "Large query field with tabs for result types.",
4007
+ "accepts": [
4008
+ "SearchInput",
4009
+ "Tabs"
4010
+ ],
4011
+ "props": [
4012
+ {
4013
+ "name": "content",
4014
+ "type": "VNode",
4015
+ "desc": ""
4016
+ }
4017
+ ],
4018
+ "use": "<UiSearchInput v-model=\"q\" />"
4019
+ },
4020
+ {
4021
+ "id": "filters",
4022
+ "title": "Filters",
4023
+ "desc": "Sidebar with checkboxes, range and select.",
4024
+ "accepts": [
4025
+ "Card",
4026
+ "Checkbox",
4027
+ "RangeSlider",
4028
+ "Select"
4029
+ ],
4030
+ "props": [
4031
+ {
4032
+ "name": "content",
4033
+ "type": "VNode",
4034
+ "desc": ""
4035
+ }
4036
+ ],
4037
+ "use": "<UiCard title=\"Filters\">…</UiCard>"
4038
+ },
4039
+ {
4040
+ "id": "results",
4041
+ "title": "Results",
4042
+ "desc": "Result groups with titles and counts.",
4043
+ "accepts": [
4044
+ "Card",
4045
+ "Chip",
4046
+ "Divider"
4047
+ ],
4048
+ "props": [
4049
+ {
4050
+ "name": "content",
4051
+ "type": "VNode",
4052
+ "desc": ""
4053
+ }
4054
+ ],
4055
+ "use": "<UiCard padding=\"none\">…</UiCard>"
4056
+ },
4057
+ {
4058
+ "id": "empty",
4059
+ "title": "Empty state",
4060
+ "desc": "Shown when nothing matches.",
4061
+ "accepts": [
4062
+ "EmptyState"
4063
+ ],
4064
+ "props": [
4065
+ {
4066
+ "name": "content",
4067
+ "type": "VNode",
4068
+ "desc": ""
4069
+ }
4070
+ ],
4071
+ "use": "<UiEmptyState icon=\"search-x\" title=\"No results\" />"
4072
+ }
4073
+ ]
3385
4074
  }
3386
4075
  ]
3387
4076
  },
@@ -11438,6 +12127,216 @@
11438
12127
  "Trend and breakdown share a row and wrap on narrow screens. Put Export in the actions slot."
11439
12128
  ]
11440
12129
  },
12130
+ {
12131
+ "name": "PageCalendar",
12132
+ "tag": "UiPageCalendar",
12133
+ "group": "pages",
12134
+ "description": "Calendar template: view switch, time grid, mini calendar and event details.",
12135
+ "props": {
12136
+ "title": {
12137
+ "forwarded": true,
12138
+ "type": "string",
12139
+ "description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
12140
+ },
12141
+ "subtitle": {
12142
+ "forwarded": true,
12143
+ "type": "string",
12144
+ "description": "Caption under the heading."
12145
+ },
12146
+ "crumbs": {
12147
+ "forwarded": true,
12148
+ "type": "{ label: string; href?: string }[]",
12149
+ "description": "Breadcrumb trail above the title."
12150
+ }
12151
+ },
12152
+ "slots": {
12153
+ "header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
12154
+ "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).",
12155
+ "toolbar": "SegmentedControl, Button, IconButton.",
12156
+ "grid": "Time grid with events; Card with custom grid, or CalendarView for the month.",
12157
+ "mini": "Month picker; Calendar.",
12158
+ "details": "Selected event; Card, Descriptions, Avatar, Button."
12159
+ },
12160
+ "notes": [
12161
+ "Place inside AppShell; fill only the slots you need.",
12162
+ "The grid sits beside the mini calendar and details; they stack under 860 px."
12163
+ ]
12164
+ },
12165
+ {
12166
+ "name": "PageKanban",
12167
+ "tag": "UiPageKanban",
12168
+ "group": "pages",
12169
+ "description": "Kanban template: filters, task board columns and a card detail panel.",
12170
+ "props": {
12171
+ "title": {
12172
+ "forwarded": true,
12173
+ "type": "string",
12174
+ "description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
12175
+ },
12176
+ "subtitle": {
12177
+ "forwarded": true,
12178
+ "type": "string",
12179
+ "description": "Caption under the heading."
12180
+ },
12181
+ "crumbs": {
12182
+ "forwarded": true,
12183
+ "type": "{ label: string; href?: string }[]",
12184
+ "description": "Breadcrumb trail above the title."
12185
+ }
12186
+ },
12187
+ "slots": {
12188
+ "header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
12189
+ "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).",
12190
+ "filters": "SearchInput, FilterChips, Select.",
12191
+ "board": "Columns with cards; KanbanColumn, KanbanCard.",
12192
+ "detail": "Selected card; Card, Descriptions, Checkbox, Timeline."
12193
+ },
12194
+ "notes": [
12195
+ "Place inside AppShell; fill only the slots you need.",
12196
+ "Board scrolls horizontally inside its area; detail goes below it under 860 px."
12197
+ ]
12198
+ },
12199
+ {
12200
+ "name": "PageBilling",
12201
+ "tag": "UiPageBilling",
12202
+ "group": "pages",
12203
+ "description": "Billing template: current plan, usage meters, invoices, payment methods and an upgrade card.",
12204
+ "props": {
12205
+ "title": {
12206
+ "forwarded": true,
12207
+ "type": "string",
12208
+ "description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
12209
+ },
12210
+ "subtitle": {
12211
+ "forwarded": true,
12212
+ "type": "string",
12213
+ "description": "Caption under the heading."
12214
+ },
12215
+ "crumbs": {
12216
+ "forwarded": true,
12217
+ "type": "{ label: string; href?: string }[]",
12218
+ "description": "Breadcrumb trail above the title."
12219
+ }
12220
+ },
12221
+ "slots": {
12222
+ "header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
12223
+ "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).",
12224
+ "plan": "Current plan; Card with Badge and Buttons.",
12225
+ "usage": "Usage meters; Progress.",
12226
+ "invoices": "Invoices; DataTable.",
12227
+ "methods": "Saved cards; Card, IconTile, Badge.",
12228
+ "upgrade": "Upgrade call to action; Card variant=\"inverse\" or PricingCard."
12229
+ },
12230
+ "notes": [
12231
+ "Place inside AppShell; fill only the slots you need.",
12232
+ "Plan, usage and invoices share the main column; methods and upgrade form the side column."
12233
+ ]
12234
+ },
12235
+ {
12236
+ "name": "PageTeam",
12237
+ "tag": "UiPageTeam",
12238
+ "group": "pages",
12239
+ "description": "Team template: member stats, members table, roles and permissions matrix, and an invite form.",
12240
+ "props": {
12241
+ "title": {
12242
+ "forwarded": true,
12243
+ "type": "string",
12244
+ "description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
12245
+ },
12246
+ "subtitle": {
12247
+ "forwarded": true,
12248
+ "type": "string",
12249
+ "description": "Caption under the heading."
12250
+ },
12251
+ "crumbs": {
12252
+ "forwarded": true,
12253
+ "type": "{ label: string; href?: string }[]",
12254
+ "description": "Breadcrumb trail above the title."
12255
+ }
12256
+ },
12257
+ "slots": {
12258
+ "header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
12259
+ "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).",
12260
+ "stats": "Counters; KpiTile, StatsCard.",
12261
+ "members": "Members; DataTable with UserCell, Select, Badge.",
12262
+ "roles": "Permissions matrix; DataTable with Checkbox cells.",
12263
+ "invite": "Invite form; Card, TextField, Select, Button."
12264
+ },
12265
+ "notes": [
12266
+ "Place inside AppShell; fill only the slots you need.",
12267
+ "Members and roles share the main column; the invite form is the side column."
12268
+ ]
12269
+ },
12270
+ {
12271
+ "name": "PageIntegrations",
12272
+ "tag": "UiPageIntegrations",
12273
+ "group": "pages",
12274
+ "description": "Integrations template: connection cards, API keys and webhooks.",
12275
+ "props": {
12276
+ "title": {
12277
+ "forwarded": true,
12278
+ "type": "string",
12279
+ "description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
12280
+ },
12281
+ "subtitle": {
12282
+ "forwarded": true,
12283
+ "type": "string",
12284
+ "description": "Caption under the heading."
12285
+ },
12286
+ "crumbs": {
12287
+ "forwarded": true,
12288
+ "type": "{ label: string; href?: string }[]",
12289
+ "description": "Breadcrumb trail above the title."
12290
+ }
12291
+ },
12292
+ "slots": {
12293
+ "header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
12294
+ "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).",
12295
+ "filters": "SearchInput, FilterChips.",
12296
+ "connections": "IntegrationCard grid.",
12297
+ "keys": "Keys; DataTable with CopyButton and IconButton.",
12298
+ "webhooks": "Webhooks list; Card, Switch, Chip."
12299
+ },
12300
+ "notes": [
12301
+ "Place inside AppShell; fill only the slots you need.",
12302
+ "Keys and webhooks share a row and wrap on narrow screens."
12303
+ ]
12304
+ },
12305
+ {
12306
+ "name": "PageSearch",
12307
+ "tag": "UiPageSearch",
12308
+ "group": "pages",
12309
+ "description": "Search template: query field, filter sidebar, result groups and an empty state.",
12310
+ "props": {
12311
+ "title": {
12312
+ "forwarded": true,
12313
+ "type": "string",
12314
+ "description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
12315
+ },
12316
+ "subtitle": {
12317
+ "forwarded": true,
12318
+ "type": "string",
12319
+ "description": "Caption under the heading."
12320
+ },
12321
+ "crumbs": {
12322
+ "forwarded": true,
12323
+ "type": "{ label: string; href?: string }[]",
12324
+ "description": "Breadcrumb trail above the title."
12325
+ }
12326
+ },
12327
+ "slots": {
12328
+ "header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
12329
+ "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).",
12330
+ "search": "SearchInput, Tabs.",
12331
+ "filters": "Filters; Card, Checkbox, Select.",
12332
+ "results": "Result groups; Card, Chip, Divider.",
12333
+ "empty": "Shown only when there are no results; EmptyState."
12334
+ },
12335
+ "notes": [
12336
+ "Place inside AppShell; fill only the slots you need.",
12337
+ "Filters sit left of the results and stack above them under 860 px. Fill empty only when there are no results."
12338
+ ]
12339
+ },
11441
12340
  {
11442
12341
  "name": "PageNotifications",
11443
12342
  "tag": "UiPageNotifications",