@ziyarago/ui 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +7 -7
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/assets/fonts/jetbrains-mono/jetbrains-mono-cyrillic-ext.woff2 +0 -0
- package/assets/fonts/jetbrains-mono/jetbrains-mono-cyrillic.woff2 +0 -0
- package/assets/fonts/jetbrains-mono/jetbrains-mono-latin-ext.woff2 +0 -0
- package/assets/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
- package/assets/fonts/manrope/manrope-cyrillic-ext.woff2 +0 -0
- package/assets/fonts/manrope/manrope-cyrillic.woff2 +0 -0
- package/assets/fonts/manrope/manrope-latin-ext.woff2 +0 -0
- package/assets/fonts/manrope/manrope-latin.woff2 +0 -0
- package/dist/llms-full.txt +210 -2
- package/dist/llms.txt +15 -3
- package/dist/manifest.json +2808 -989
- package/dist/style.css +33 -5
- package/docs/INTEGRATION.md +3 -3
- package/docs/MIGRATION.md +3 -1
- package/package.json +2 -2
- package/src/compat/index.js +3 -2
- package/src/compat/vite.js +1 -1
- package/src/core/bools.js +1 -1
- package/src/core/components2.js +3 -3
- package/src/core/components7.js +13 -0
- package/src/core/pages.js +17 -6
- package/src/i18n/components/QiblaCompass.js +5 -0
- package/src/i18n/components/index.js +2 -0
- package/src/meta/domain.js +10 -0
- package/src/meta/forms.js +4 -0
- package/src/meta/groups.js +2 -2
- package/src/meta/pages.js +139 -0
- package/src/meta/templates.json +1391 -1
- package/src/react/index.js +12 -0
- package/src/styles/components5.css +1 -1
- package/src/styles/components8.css +20 -1
- package/src/styles/effects.css +2 -1
- package/src/styles/fonts.css +9 -1
- package/src/vue/index.js +1 -1
- package/types/react.d.ts +686 -0
- package/types/vue-global.d.ts +12 -0
- package/types/vue.d.ts +478 -0
package/dist/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ziyarago/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"homepage": "https://ziyara.vip",
|
|
5
5
|
"imports": {
|
|
6
6
|
"vue": "import { UiButton } from '@ziyarago/ui/vue'",
|
|
@@ -238,6 +238,7 @@
|
|
|
238
238
|
"TourCard",
|
|
239
239
|
"PrayerTimes",
|
|
240
240
|
"RamadanTracker",
|
|
241
|
+
"QiblaCompass",
|
|
241
242
|
"BookingCard",
|
|
242
243
|
"GuestCard",
|
|
243
244
|
"RoomGrid",
|
|
@@ -282,6 +283,17 @@
|
|
|
282
283
|
"PageTeam",
|
|
283
284
|
"PageIntegrations",
|
|
284
285
|
"PageSearch",
|
|
286
|
+
"PageArticle",
|
|
287
|
+
"PageChangelog",
|
|
288
|
+
"PageHelp",
|
|
289
|
+
"PageStates",
|
|
290
|
+
"PageLegal",
|
|
291
|
+
"PageLocations",
|
|
292
|
+
"PageBookingFlow",
|
|
293
|
+
"PageItinerary",
|
|
294
|
+
"PagePrayer",
|
|
295
|
+
"PageGroupManager",
|
|
296
|
+
"PageTourPublic",
|
|
285
297
|
"PageNotifications",
|
|
286
298
|
"PageInbox",
|
|
287
299
|
"PageCheckout",
|
|
@@ -4071,6 +4083,1363 @@
|
|
|
4071
4083
|
"use": "<UiEmptyState icon=\"search-x\" title=\"No results\" />"
|
|
4072
4084
|
}
|
|
4073
4085
|
]
|
|
4086
|
+
},
|
|
4087
|
+
{
|
|
4088
|
+
"id": "article",
|
|
4089
|
+
"label": "Article",
|
|
4090
|
+
"component": "UiPageArticle",
|
|
4091
|
+
"description": "Blog article: cover, title and author, body with a table of contents, share row and related posts.",
|
|
4092
|
+
"shell": true,
|
|
4093
|
+
"slots": [
|
|
4094
|
+
{
|
|
4095
|
+
"id": "header",
|
|
4096
|
+
"title": "Page heading",
|
|
4097
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4098
|
+
"accepts": [
|
|
4099
|
+
"PageHeader",
|
|
4100
|
+
"Breadcrumbs",
|
|
4101
|
+
"Button",
|
|
4102
|
+
"SegmentedControl"
|
|
4103
|
+
],
|
|
4104
|
+
"props": [
|
|
4105
|
+
{
|
|
4106
|
+
"name": "title",
|
|
4107
|
+
"type": "string",
|
|
4108
|
+
"desc": "H1, up to 60 characters"
|
|
4109
|
+
},
|
|
4110
|
+
{
|
|
4111
|
+
"name": "subtitle",
|
|
4112
|
+
"type": "string?",
|
|
4113
|
+
"desc": "Gray caption below the heading"
|
|
4114
|
+
},
|
|
4115
|
+
{
|
|
4116
|
+
"name": "crumbs",
|
|
4117
|
+
"type": "{label,href?}[]",
|
|
4118
|
+
"desc": "Breadcrumbs"
|
|
4119
|
+
},
|
|
4120
|
+
{
|
|
4121
|
+
"name": "actions",
|
|
4122
|
+
"type": "VNode",
|
|
4123
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4124
|
+
}
|
|
4125
|
+
],
|
|
4126
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4127
|
+
},
|
|
4128
|
+
{
|
|
4129
|
+
"id": "cover",
|
|
4130
|
+
"title": "Cover",
|
|
4131
|
+
"desc": "Cover with category, title, author and reading time.",
|
|
4132
|
+
"accepts": [
|
|
4133
|
+
"Card",
|
|
4134
|
+
"Chip",
|
|
4135
|
+
"Avatar",
|
|
4136
|
+
"LazyImage"
|
|
4137
|
+
],
|
|
4138
|
+
"props": [
|
|
4139
|
+
{
|
|
4140
|
+
"name": "content",
|
|
4141
|
+
"type": "VNode",
|
|
4142
|
+
"desc": ""
|
|
4143
|
+
}
|
|
4144
|
+
],
|
|
4145
|
+
"use": "<UiCard>…</UiCard>"
|
|
4146
|
+
},
|
|
4147
|
+
{
|
|
4148
|
+
"id": "body",
|
|
4149
|
+
"title": "Article body",
|
|
4150
|
+
"desc": "Headings, paragraphs, quote and code.",
|
|
4151
|
+
"accepts": [
|
|
4152
|
+
"Heading",
|
|
4153
|
+
"Text",
|
|
4154
|
+
"Code",
|
|
4155
|
+
"Alert"
|
|
4156
|
+
],
|
|
4157
|
+
"props": [
|
|
4158
|
+
{
|
|
4159
|
+
"name": "content",
|
|
4160
|
+
"type": "VNode",
|
|
4161
|
+
"desc": ""
|
|
4162
|
+
}
|
|
4163
|
+
],
|
|
4164
|
+
"use": "<UiHeading level=\"2\">…</UiHeading>"
|
|
4165
|
+
},
|
|
4166
|
+
{
|
|
4167
|
+
"id": "toc",
|
|
4168
|
+
"title": "Table of contents",
|
|
4169
|
+
"desc": "Sticky list of section links.",
|
|
4170
|
+
"accepts": [
|
|
4171
|
+
"Card",
|
|
4172
|
+
"Link"
|
|
4173
|
+
],
|
|
4174
|
+
"props": [
|
|
4175
|
+
{
|
|
4176
|
+
"name": "content",
|
|
4177
|
+
"type": "VNode",
|
|
4178
|
+
"desc": ""
|
|
4179
|
+
}
|
|
4180
|
+
],
|
|
4181
|
+
"use": "<UiCard title=\"On this page\">…</UiCard>"
|
|
4182
|
+
},
|
|
4183
|
+
{
|
|
4184
|
+
"id": "share",
|
|
4185
|
+
"title": "Share",
|
|
4186
|
+
"desc": "Share buttons and copy link.",
|
|
4187
|
+
"accepts": [
|
|
4188
|
+
"Button",
|
|
4189
|
+
"IconButton",
|
|
4190
|
+
"CopyButton"
|
|
4191
|
+
],
|
|
4192
|
+
"props": [
|
|
4193
|
+
{
|
|
4194
|
+
"name": "content",
|
|
4195
|
+
"type": "VNode",
|
|
4196
|
+
"desc": ""
|
|
4197
|
+
}
|
|
4198
|
+
],
|
|
4199
|
+
"use": "<UiCopyButton :value=\"url\" />"
|
|
4200
|
+
},
|
|
4201
|
+
{
|
|
4202
|
+
"id": "related",
|
|
4203
|
+
"title": "Related posts",
|
|
4204
|
+
"desc": "Cards with other posts.",
|
|
4205
|
+
"accepts": [
|
|
4206
|
+
"Card",
|
|
4207
|
+
"Chip"
|
|
4208
|
+
],
|
|
4209
|
+
"props": [
|
|
4210
|
+
{
|
|
4211
|
+
"name": "content",
|
|
4212
|
+
"type": "VNode",
|
|
4213
|
+
"desc": ""
|
|
4214
|
+
}
|
|
4215
|
+
],
|
|
4216
|
+
"use": "<UiCard>…</UiCard>"
|
|
4217
|
+
}
|
|
4218
|
+
]
|
|
4219
|
+
},
|
|
4220
|
+
{
|
|
4221
|
+
"id": "changelog",
|
|
4222
|
+
"label": "Changelog",
|
|
4223
|
+
"component": "UiPageChangelog",
|
|
4224
|
+
"description": "Changelog: release timeline grouped by version with new, fix and improved tags, a filter and subscribe.",
|
|
4225
|
+
"shell": true,
|
|
4226
|
+
"slots": [
|
|
4227
|
+
{
|
|
4228
|
+
"id": "header",
|
|
4229
|
+
"title": "Page heading",
|
|
4230
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4231
|
+
"accepts": [
|
|
4232
|
+
"PageHeader",
|
|
4233
|
+
"Breadcrumbs",
|
|
4234
|
+
"Button",
|
|
4235
|
+
"SegmentedControl"
|
|
4236
|
+
],
|
|
4237
|
+
"props": [
|
|
4238
|
+
{
|
|
4239
|
+
"name": "title",
|
|
4240
|
+
"type": "string",
|
|
4241
|
+
"desc": "H1, up to 60 characters"
|
|
4242
|
+
},
|
|
4243
|
+
{
|
|
4244
|
+
"name": "subtitle",
|
|
4245
|
+
"type": "string?",
|
|
4246
|
+
"desc": "Gray caption below the heading"
|
|
4247
|
+
},
|
|
4248
|
+
{
|
|
4249
|
+
"name": "crumbs",
|
|
4250
|
+
"type": "{label,href?}[]",
|
|
4251
|
+
"desc": "Breadcrumbs"
|
|
4252
|
+
},
|
|
4253
|
+
{
|
|
4254
|
+
"name": "actions",
|
|
4255
|
+
"type": "VNode",
|
|
4256
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4257
|
+
}
|
|
4258
|
+
],
|
|
4259
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4260
|
+
},
|
|
4261
|
+
{
|
|
4262
|
+
"id": "filters",
|
|
4263
|
+
"title": "Filters",
|
|
4264
|
+
"desc": "Tag filter and search.",
|
|
4265
|
+
"accepts": [
|
|
4266
|
+
"FilterChips",
|
|
4267
|
+
"SearchInput"
|
|
4268
|
+
],
|
|
4269
|
+
"props": [
|
|
4270
|
+
{
|
|
4271
|
+
"name": "content",
|
|
4272
|
+
"type": "VNode",
|
|
4273
|
+
"desc": ""
|
|
4274
|
+
}
|
|
4275
|
+
],
|
|
4276
|
+
"use": "<UiFilterChips v-model=\"tag\" :items=\"tags\" />"
|
|
4277
|
+
},
|
|
4278
|
+
{
|
|
4279
|
+
"id": "timeline",
|
|
4280
|
+
"title": "Release timeline",
|
|
4281
|
+
"desc": "Versions with date and tagged changes.",
|
|
4282
|
+
"accepts": [
|
|
4283
|
+
"Card",
|
|
4284
|
+
"Chip",
|
|
4285
|
+
"Divider"
|
|
4286
|
+
],
|
|
4287
|
+
"props": [
|
|
4288
|
+
{
|
|
4289
|
+
"name": "content",
|
|
4290
|
+
"type": "VNode",
|
|
4291
|
+
"desc": ""
|
|
4292
|
+
}
|
|
4293
|
+
],
|
|
4294
|
+
"use": "<UiCard>…</UiCard>"
|
|
4295
|
+
},
|
|
4296
|
+
{
|
|
4297
|
+
"id": "subscribe",
|
|
4298
|
+
"title": "Subscribe",
|
|
4299
|
+
"desc": "Email field to get release notes.",
|
|
4300
|
+
"accepts": [
|
|
4301
|
+
"Card",
|
|
4302
|
+
"TextField",
|
|
4303
|
+
"Button"
|
|
4304
|
+
],
|
|
4305
|
+
"props": [
|
|
4306
|
+
{
|
|
4307
|
+
"name": "content",
|
|
4308
|
+
"type": "VNode",
|
|
4309
|
+
"desc": ""
|
|
4310
|
+
}
|
|
4311
|
+
],
|
|
4312
|
+
"use": "<UiCard title=\"Get updates\">…</UiCard>"
|
|
4313
|
+
}
|
|
4314
|
+
]
|
|
4315
|
+
},
|
|
4316
|
+
{
|
|
4317
|
+
"id": "help",
|
|
4318
|
+
"label": "Help center",
|
|
4319
|
+
"component": "UiPageHelp",
|
|
4320
|
+
"description": "Help center home: search, category tiles, popular articles and contact.",
|
|
4321
|
+
"shell": true,
|
|
4322
|
+
"slots": [
|
|
4323
|
+
{
|
|
4324
|
+
"id": "header",
|
|
4325
|
+
"title": "Page heading",
|
|
4326
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4327
|
+
"accepts": [
|
|
4328
|
+
"PageHeader",
|
|
4329
|
+
"Breadcrumbs",
|
|
4330
|
+
"Button",
|
|
4331
|
+
"SegmentedControl"
|
|
4332
|
+
],
|
|
4333
|
+
"props": [
|
|
4334
|
+
{
|
|
4335
|
+
"name": "title",
|
|
4336
|
+
"type": "string",
|
|
4337
|
+
"desc": "H1, up to 60 characters"
|
|
4338
|
+
},
|
|
4339
|
+
{
|
|
4340
|
+
"name": "subtitle",
|
|
4341
|
+
"type": "string?",
|
|
4342
|
+
"desc": "Gray caption below the heading"
|
|
4343
|
+
},
|
|
4344
|
+
{
|
|
4345
|
+
"name": "crumbs",
|
|
4346
|
+
"type": "{label,href?}[]",
|
|
4347
|
+
"desc": "Breadcrumbs"
|
|
4348
|
+
},
|
|
4349
|
+
{
|
|
4350
|
+
"name": "actions",
|
|
4351
|
+
"type": "VNode",
|
|
4352
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4353
|
+
}
|
|
4354
|
+
],
|
|
4355
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4356
|
+
},
|
|
4357
|
+
{
|
|
4358
|
+
"id": "search",
|
|
4359
|
+
"title": "Search",
|
|
4360
|
+
"desc": "Large search field.",
|
|
4361
|
+
"accepts": [
|
|
4362
|
+
"SearchInput"
|
|
4363
|
+
],
|
|
4364
|
+
"props": [
|
|
4365
|
+
{
|
|
4366
|
+
"name": "content",
|
|
4367
|
+
"type": "VNode",
|
|
4368
|
+
"desc": ""
|
|
4369
|
+
}
|
|
4370
|
+
],
|
|
4371
|
+
"use": "<UiSearchInput size=\"lg\" />"
|
|
4372
|
+
},
|
|
4373
|
+
{
|
|
4374
|
+
"id": "categories",
|
|
4375
|
+
"title": "Categories",
|
|
4376
|
+
"desc": "Grid of category tiles.",
|
|
4377
|
+
"accepts": [
|
|
4378
|
+
"Card",
|
|
4379
|
+
"IconTile"
|
|
4380
|
+
],
|
|
4381
|
+
"props": [
|
|
4382
|
+
{
|
|
4383
|
+
"name": "content",
|
|
4384
|
+
"type": "VNode",
|
|
4385
|
+
"desc": ""
|
|
4386
|
+
}
|
|
4387
|
+
],
|
|
4388
|
+
"use": "<UiCard>…</UiCard>"
|
|
4389
|
+
},
|
|
4390
|
+
{
|
|
4391
|
+
"id": "popular",
|
|
4392
|
+
"title": "Popular articles",
|
|
4393
|
+
"desc": "List of top articles.",
|
|
4394
|
+
"accepts": [
|
|
4395
|
+
"Card",
|
|
4396
|
+
"Link",
|
|
4397
|
+
"Chip"
|
|
4398
|
+
],
|
|
4399
|
+
"props": [
|
|
4400
|
+
{
|
|
4401
|
+
"name": "content",
|
|
4402
|
+
"type": "VNode",
|
|
4403
|
+
"desc": ""
|
|
4404
|
+
}
|
|
4405
|
+
],
|
|
4406
|
+
"use": "<UiCard title=\"Popular\">…</UiCard>"
|
|
4407
|
+
},
|
|
4408
|
+
{
|
|
4409
|
+
"id": "contact",
|
|
4410
|
+
"title": "Contact",
|
|
4411
|
+
"desc": "Ways to reach support.",
|
|
4412
|
+
"accepts": [
|
|
4413
|
+
"Card",
|
|
4414
|
+
"Button",
|
|
4415
|
+
"IconTile"
|
|
4416
|
+
],
|
|
4417
|
+
"props": [
|
|
4418
|
+
{
|
|
4419
|
+
"name": "content",
|
|
4420
|
+
"type": "VNode",
|
|
4421
|
+
"desc": ""
|
|
4422
|
+
}
|
|
4423
|
+
],
|
|
4424
|
+
"use": "<UiCard title=\"Still need help?\">…</UiCard>"
|
|
4425
|
+
}
|
|
4426
|
+
]
|
|
4427
|
+
},
|
|
4428
|
+
{
|
|
4429
|
+
"id": "states",
|
|
4430
|
+
"label": "States",
|
|
4431
|
+
"component": "UiPageStates",
|
|
4432
|
+
"description": "State gallery: empty, no results, no permission, offline, error with retry, loading and success.",
|
|
4433
|
+
"shell": true,
|
|
4434
|
+
"slots": [
|
|
4435
|
+
{
|
|
4436
|
+
"id": "header",
|
|
4437
|
+
"title": "Page heading",
|
|
4438
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4439
|
+
"accepts": [
|
|
4440
|
+
"PageHeader",
|
|
4441
|
+
"Breadcrumbs",
|
|
4442
|
+
"Button",
|
|
4443
|
+
"SegmentedControl"
|
|
4444
|
+
],
|
|
4445
|
+
"props": [
|
|
4446
|
+
{
|
|
4447
|
+
"name": "title",
|
|
4448
|
+
"type": "string",
|
|
4449
|
+
"desc": "H1, up to 60 characters"
|
|
4450
|
+
},
|
|
4451
|
+
{
|
|
4452
|
+
"name": "subtitle",
|
|
4453
|
+
"type": "string?",
|
|
4454
|
+
"desc": "Gray caption below the heading"
|
|
4455
|
+
},
|
|
4456
|
+
{
|
|
4457
|
+
"name": "crumbs",
|
|
4458
|
+
"type": "{label,href?}[]",
|
|
4459
|
+
"desc": "Breadcrumbs"
|
|
4460
|
+
},
|
|
4461
|
+
{
|
|
4462
|
+
"name": "actions",
|
|
4463
|
+
"type": "VNode",
|
|
4464
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4465
|
+
}
|
|
4466
|
+
],
|
|
4467
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4468
|
+
},
|
|
4469
|
+
{
|
|
4470
|
+
"id": "empty",
|
|
4471
|
+
"title": "Empty list",
|
|
4472
|
+
"desc": "First-use empty state with an action.",
|
|
4473
|
+
"accepts": [
|
|
4474
|
+
"EmptyState",
|
|
4475
|
+
"Button"
|
|
4476
|
+
],
|
|
4477
|
+
"props": [
|
|
4478
|
+
{
|
|
4479
|
+
"name": "content",
|
|
4480
|
+
"type": "VNode",
|
|
4481
|
+
"desc": ""
|
|
4482
|
+
}
|
|
4483
|
+
],
|
|
4484
|
+
"use": "<UiEmptyState icon=\"inbox\" title=\"Nothing here yet\" />"
|
|
4485
|
+
},
|
|
4486
|
+
{
|
|
4487
|
+
"id": "noresults",
|
|
4488
|
+
"title": "No results",
|
|
4489
|
+
"desc": "Search found nothing.",
|
|
4490
|
+
"accepts": [
|
|
4491
|
+
"EmptyState",
|
|
4492
|
+
"Button"
|
|
4493
|
+
],
|
|
4494
|
+
"props": [
|
|
4495
|
+
{
|
|
4496
|
+
"name": "content",
|
|
4497
|
+
"type": "VNode",
|
|
4498
|
+
"desc": ""
|
|
4499
|
+
}
|
|
4500
|
+
],
|
|
4501
|
+
"use": "<UiEmptyState icon=\"search-x\" title=\"No results\" />"
|
|
4502
|
+
},
|
|
4503
|
+
{
|
|
4504
|
+
"id": "forbidden",
|
|
4505
|
+
"title": "No permission",
|
|
4506
|
+
"desc": "Access denied.",
|
|
4507
|
+
"accepts": [
|
|
4508
|
+
"EmptyState",
|
|
4509
|
+
"Button"
|
|
4510
|
+
],
|
|
4511
|
+
"props": [
|
|
4512
|
+
{
|
|
4513
|
+
"name": "content",
|
|
4514
|
+
"type": "VNode",
|
|
4515
|
+
"desc": ""
|
|
4516
|
+
}
|
|
4517
|
+
],
|
|
4518
|
+
"use": "<UiEmptyState icon=\"lock\" title=\"No access\" />"
|
|
4519
|
+
},
|
|
4520
|
+
{
|
|
4521
|
+
"id": "offline",
|
|
4522
|
+
"title": "Offline",
|
|
4523
|
+
"desc": "No connection.",
|
|
4524
|
+
"accepts": [
|
|
4525
|
+
"DataState"
|
|
4526
|
+
],
|
|
4527
|
+
"props": [
|
|
4528
|
+
{
|
|
4529
|
+
"name": "content",
|
|
4530
|
+
"type": "VNode",
|
|
4531
|
+
"desc": ""
|
|
4532
|
+
}
|
|
4533
|
+
],
|
|
4534
|
+
"use": "<UiDataState state=\"offline\" />"
|
|
4535
|
+
},
|
|
4536
|
+
{
|
|
4537
|
+
"id": "error",
|
|
4538
|
+
"title": "Error",
|
|
4539
|
+
"desc": "Failure with a retry button.",
|
|
4540
|
+
"accepts": [
|
|
4541
|
+
"DataState",
|
|
4542
|
+
"Alert"
|
|
4543
|
+
],
|
|
4544
|
+
"props": [
|
|
4545
|
+
{
|
|
4546
|
+
"name": "content",
|
|
4547
|
+
"type": "VNode",
|
|
4548
|
+
"desc": ""
|
|
4549
|
+
}
|
|
4550
|
+
],
|
|
4551
|
+
"use": "<UiDataState state=\"error\" />"
|
|
4552
|
+
},
|
|
4553
|
+
{
|
|
4554
|
+
"id": "loading",
|
|
4555
|
+
"title": "Loading",
|
|
4556
|
+
"desc": "Skeleton placeholders.",
|
|
4557
|
+
"accepts": [
|
|
4558
|
+
"Skeleton",
|
|
4559
|
+
"DataState"
|
|
4560
|
+
],
|
|
4561
|
+
"props": [
|
|
4562
|
+
{
|
|
4563
|
+
"name": "content",
|
|
4564
|
+
"type": "VNode",
|
|
4565
|
+
"desc": ""
|
|
4566
|
+
}
|
|
4567
|
+
],
|
|
4568
|
+
"use": "<UiSkeleton />"
|
|
4569
|
+
},
|
|
4570
|
+
{
|
|
4571
|
+
"id": "success",
|
|
4572
|
+
"title": "Success",
|
|
4573
|
+
"desc": "Confirmation after an action.",
|
|
4574
|
+
"accepts": [
|
|
4575
|
+
"Alert",
|
|
4576
|
+
"EmptyState"
|
|
4577
|
+
],
|
|
4578
|
+
"props": [
|
|
4579
|
+
{
|
|
4580
|
+
"name": "content",
|
|
4581
|
+
"type": "VNode",
|
|
4582
|
+
"desc": ""
|
|
4583
|
+
}
|
|
4584
|
+
],
|
|
4585
|
+
"use": "<UiAlert tone=\"success\" title=\"Saved\" />"
|
|
4586
|
+
}
|
|
4587
|
+
]
|
|
4588
|
+
},
|
|
4589
|
+
{
|
|
4590
|
+
"id": "legal",
|
|
4591
|
+
"label": "Legal",
|
|
4592
|
+
"component": "UiPageLegal",
|
|
4593
|
+
"description": "Legal document: last updated, sticky table of contents, sections, print and download.",
|
|
4594
|
+
"shell": true,
|
|
4595
|
+
"slots": [
|
|
4596
|
+
{
|
|
4597
|
+
"id": "header",
|
|
4598
|
+
"title": "Page heading",
|
|
4599
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4600
|
+
"accepts": [
|
|
4601
|
+
"PageHeader",
|
|
4602
|
+
"Breadcrumbs",
|
|
4603
|
+
"Button",
|
|
4604
|
+
"SegmentedControl"
|
|
4605
|
+
],
|
|
4606
|
+
"props": [
|
|
4607
|
+
{
|
|
4608
|
+
"name": "title",
|
|
4609
|
+
"type": "string",
|
|
4610
|
+
"desc": "H1, up to 60 characters"
|
|
4611
|
+
},
|
|
4612
|
+
{
|
|
4613
|
+
"name": "subtitle",
|
|
4614
|
+
"type": "string?",
|
|
4615
|
+
"desc": "Gray caption below the heading"
|
|
4616
|
+
},
|
|
4617
|
+
{
|
|
4618
|
+
"name": "crumbs",
|
|
4619
|
+
"type": "{label,href?}[]",
|
|
4620
|
+
"desc": "Breadcrumbs"
|
|
4621
|
+
},
|
|
4622
|
+
{
|
|
4623
|
+
"name": "actions",
|
|
4624
|
+
"type": "VNode",
|
|
4625
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4626
|
+
}
|
|
4627
|
+
],
|
|
4628
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4629
|
+
},
|
|
4630
|
+
{
|
|
4631
|
+
"id": "meta",
|
|
4632
|
+
"title": "Meta",
|
|
4633
|
+
"desc": "Version, last updated and document actions.",
|
|
4634
|
+
"accepts": [
|
|
4635
|
+
"Chip",
|
|
4636
|
+
"Button"
|
|
4637
|
+
],
|
|
4638
|
+
"props": [
|
|
4639
|
+
{
|
|
4640
|
+
"name": "content",
|
|
4641
|
+
"type": "VNode",
|
|
4642
|
+
"desc": ""
|
|
4643
|
+
}
|
|
4644
|
+
],
|
|
4645
|
+
"use": "<UiChip>Last updated 12 Mar 2026</UiChip>"
|
|
4646
|
+
},
|
|
4647
|
+
{
|
|
4648
|
+
"id": "toc",
|
|
4649
|
+
"title": "Table of contents",
|
|
4650
|
+
"desc": "Sticky list of section links.",
|
|
4651
|
+
"accepts": [
|
|
4652
|
+
"Card",
|
|
4653
|
+
"Link"
|
|
4654
|
+
],
|
|
4655
|
+
"props": [
|
|
4656
|
+
{
|
|
4657
|
+
"name": "content",
|
|
4658
|
+
"type": "VNode",
|
|
4659
|
+
"desc": ""
|
|
4660
|
+
}
|
|
4661
|
+
],
|
|
4662
|
+
"use": "<UiCard title=\"Contents\">…</UiCard>"
|
|
4663
|
+
},
|
|
4664
|
+
{
|
|
4665
|
+
"id": "document",
|
|
4666
|
+
"title": "Document",
|
|
4667
|
+
"desc": "Numbered sections of text.",
|
|
4668
|
+
"accepts": [
|
|
4669
|
+
"Card",
|
|
4670
|
+
"Heading",
|
|
4671
|
+
"Text"
|
|
4672
|
+
],
|
|
4673
|
+
"props": [
|
|
4674
|
+
{
|
|
4675
|
+
"name": "content",
|
|
4676
|
+
"type": "VNode",
|
|
4677
|
+
"desc": ""
|
|
4678
|
+
}
|
|
4679
|
+
],
|
|
4680
|
+
"use": "<UiCard>…</UiCard>"
|
|
4681
|
+
},
|
|
4682
|
+
{
|
|
4683
|
+
"id": "contact",
|
|
4684
|
+
"title": "Contact",
|
|
4685
|
+
"desc": "Questions about this document.",
|
|
4686
|
+
"accepts": [
|
|
4687
|
+
"Card",
|
|
4688
|
+
"Button"
|
|
4689
|
+
],
|
|
4690
|
+
"props": [
|
|
4691
|
+
{
|
|
4692
|
+
"name": "content",
|
|
4693
|
+
"type": "VNode",
|
|
4694
|
+
"desc": ""
|
|
4695
|
+
}
|
|
4696
|
+
],
|
|
4697
|
+
"use": "<UiCard title=\"Questions?\">…</UiCard>"
|
|
4698
|
+
}
|
|
4699
|
+
]
|
|
4700
|
+
},
|
|
4701
|
+
{
|
|
4702
|
+
"id": "locations",
|
|
4703
|
+
"label": "Locations",
|
|
4704
|
+
"component": "UiPageLocations",
|
|
4705
|
+
"description": "Locations: filters, a list of places and a sticky map panel.",
|
|
4706
|
+
"shell": true,
|
|
4707
|
+
"slots": [
|
|
4708
|
+
{
|
|
4709
|
+
"id": "header",
|
|
4710
|
+
"title": "Page heading",
|
|
4711
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4712
|
+
"accepts": [
|
|
4713
|
+
"PageHeader",
|
|
4714
|
+
"Breadcrumbs",
|
|
4715
|
+
"Button",
|
|
4716
|
+
"SegmentedControl"
|
|
4717
|
+
],
|
|
4718
|
+
"props": [
|
|
4719
|
+
{
|
|
4720
|
+
"name": "title",
|
|
4721
|
+
"type": "string",
|
|
4722
|
+
"desc": "H1, up to 60 characters"
|
|
4723
|
+
},
|
|
4724
|
+
{
|
|
4725
|
+
"name": "subtitle",
|
|
4726
|
+
"type": "string?",
|
|
4727
|
+
"desc": "Gray caption below the heading"
|
|
4728
|
+
},
|
|
4729
|
+
{
|
|
4730
|
+
"name": "crumbs",
|
|
4731
|
+
"type": "{label,href?}[]",
|
|
4732
|
+
"desc": "Breadcrumbs"
|
|
4733
|
+
},
|
|
4734
|
+
{
|
|
4735
|
+
"name": "actions",
|
|
4736
|
+
"type": "VNode",
|
|
4737
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4738
|
+
}
|
|
4739
|
+
],
|
|
4740
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4741
|
+
},
|
|
4742
|
+
{
|
|
4743
|
+
"id": "filters",
|
|
4744
|
+
"title": "Filters",
|
|
4745
|
+
"desc": "Search and category chips.",
|
|
4746
|
+
"accepts": [
|
|
4747
|
+
"SearchInput",
|
|
4748
|
+
"FilterChips"
|
|
4749
|
+
],
|
|
4750
|
+
"props": [
|
|
4751
|
+
{
|
|
4752
|
+
"name": "content",
|
|
4753
|
+
"type": "VNode",
|
|
4754
|
+
"desc": ""
|
|
4755
|
+
}
|
|
4756
|
+
],
|
|
4757
|
+
"use": "<UiSearchInput v-model=\"q\" />"
|
|
4758
|
+
},
|
|
4759
|
+
{
|
|
4760
|
+
"id": "list",
|
|
4761
|
+
"title": "Places",
|
|
4762
|
+
"desc": "Cards with name, distance and rating.",
|
|
4763
|
+
"accepts": [
|
|
4764
|
+
"Card",
|
|
4765
|
+
"Chip",
|
|
4766
|
+
"Rating"
|
|
4767
|
+
],
|
|
4768
|
+
"props": [
|
|
4769
|
+
{
|
|
4770
|
+
"name": "content",
|
|
4771
|
+
"type": "VNode",
|
|
4772
|
+
"desc": ""
|
|
4773
|
+
}
|
|
4774
|
+
],
|
|
4775
|
+
"use": "<UiCard padding=\"none\">…</UiCard>"
|
|
4776
|
+
},
|
|
4777
|
+
{
|
|
4778
|
+
"id": "map",
|
|
4779
|
+
"title": "Map",
|
|
4780
|
+
"desc": "Map with markers.",
|
|
4781
|
+
"accepts": [
|
|
4782
|
+
"Map",
|
|
4783
|
+
"Card"
|
|
4784
|
+
],
|
|
4785
|
+
"props": [
|
|
4786
|
+
{
|
|
4787
|
+
"name": "content",
|
|
4788
|
+
"type": "VNode",
|
|
4789
|
+
"desc": ""
|
|
4790
|
+
}
|
|
4791
|
+
],
|
|
4792
|
+
"use": "<UiMap :markers=\"pins\" />"
|
|
4793
|
+
}
|
|
4794
|
+
]
|
|
4795
|
+
},
|
|
4796
|
+
{
|
|
4797
|
+
"id": "booking-flow",
|
|
4798
|
+
"label": "Booking flow",
|
|
4799
|
+
"component": "UiPageBookingFlow",
|
|
4800
|
+
"description": "Booking flow: stepper from search to confirmation with a sticky summary card.",
|
|
4801
|
+
"shell": true,
|
|
4802
|
+
"slots": [
|
|
4803
|
+
{
|
|
4804
|
+
"id": "header",
|
|
4805
|
+
"title": "Page heading",
|
|
4806
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4807
|
+
"accepts": [
|
|
4808
|
+
"PageHeader",
|
|
4809
|
+
"Breadcrumbs",
|
|
4810
|
+
"Button",
|
|
4811
|
+
"SegmentedControl"
|
|
4812
|
+
],
|
|
4813
|
+
"props": [
|
|
4814
|
+
{
|
|
4815
|
+
"name": "title",
|
|
4816
|
+
"type": "string",
|
|
4817
|
+
"desc": "H1, up to 60 characters"
|
|
4818
|
+
},
|
|
4819
|
+
{
|
|
4820
|
+
"name": "subtitle",
|
|
4821
|
+
"type": "string?",
|
|
4822
|
+
"desc": "Gray caption below the heading"
|
|
4823
|
+
},
|
|
4824
|
+
{
|
|
4825
|
+
"name": "crumbs",
|
|
4826
|
+
"type": "{label,href?}[]",
|
|
4827
|
+
"desc": "Breadcrumbs"
|
|
4828
|
+
},
|
|
4829
|
+
{
|
|
4830
|
+
"name": "actions",
|
|
4831
|
+
"type": "VNode",
|
|
4832
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4833
|
+
}
|
|
4834
|
+
],
|
|
4835
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4836
|
+
},
|
|
4837
|
+
{
|
|
4838
|
+
"id": "steps",
|
|
4839
|
+
"title": "Steps",
|
|
4840
|
+
"desc": "Progress through the flow.",
|
|
4841
|
+
"accepts": [
|
|
4842
|
+
"Stepper"
|
|
4843
|
+
],
|
|
4844
|
+
"props": [
|
|
4845
|
+
{
|
|
4846
|
+
"name": "content",
|
|
4847
|
+
"type": "VNode",
|
|
4848
|
+
"desc": ""
|
|
4849
|
+
}
|
|
4850
|
+
],
|
|
4851
|
+
"use": "<UiStepper :steps=\"steps\" :current=\"1\" />"
|
|
4852
|
+
},
|
|
4853
|
+
{
|
|
4854
|
+
"id": "content",
|
|
4855
|
+
"title": "Active step",
|
|
4856
|
+
"desc": "Search, pick, guests or confirm.",
|
|
4857
|
+
"accepts": [
|
|
4858
|
+
"Card",
|
|
4859
|
+
"DatePicker",
|
|
4860
|
+
"OptionCards",
|
|
4861
|
+
"NumberInput"
|
|
4862
|
+
],
|
|
4863
|
+
"props": [
|
|
4864
|
+
{
|
|
4865
|
+
"name": "content",
|
|
4866
|
+
"type": "VNode",
|
|
4867
|
+
"desc": ""
|
|
4868
|
+
}
|
|
4869
|
+
],
|
|
4870
|
+
"use": "<UiCard title=\"Guests\">…</UiCard>"
|
|
4871
|
+
},
|
|
4872
|
+
{
|
|
4873
|
+
"id": "nav",
|
|
4874
|
+
"title": "Navigation",
|
|
4875
|
+
"desc": "Back and continue buttons.",
|
|
4876
|
+
"accepts": [
|
|
4877
|
+
"Button"
|
|
4878
|
+
],
|
|
4879
|
+
"props": [
|
|
4880
|
+
{
|
|
4881
|
+
"name": "content",
|
|
4882
|
+
"type": "VNode",
|
|
4883
|
+
"desc": ""
|
|
4884
|
+
}
|
|
4885
|
+
],
|
|
4886
|
+
"use": "<UiButton variant=\"primary\">Continue</UiButton>"
|
|
4887
|
+
},
|
|
4888
|
+
{
|
|
4889
|
+
"id": "summary",
|
|
4890
|
+
"title": "Summary",
|
|
4891
|
+
"desc": "Price and details of the booking.",
|
|
4892
|
+
"accepts": [
|
|
4893
|
+
"Card",
|
|
4894
|
+
"Descriptions",
|
|
4895
|
+
"Button"
|
|
4896
|
+
],
|
|
4897
|
+
"props": [
|
|
4898
|
+
{
|
|
4899
|
+
"name": "content",
|
|
4900
|
+
"type": "VNode",
|
|
4901
|
+
"desc": ""
|
|
4902
|
+
}
|
|
4903
|
+
],
|
|
4904
|
+
"use": "<UiCard title=\"Summary\">…</UiCard>"
|
|
4905
|
+
}
|
|
4906
|
+
]
|
|
4907
|
+
},
|
|
4908
|
+
{
|
|
4909
|
+
"id": "itinerary",
|
|
4910
|
+
"label": "Itinerary",
|
|
4911
|
+
"component": "UiPageItinerary",
|
|
4912
|
+
"description": "Itinerary: day tabs, a timeline of stops, transport and hotel blocks and a sticky trip summary.",
|
|
4913
|
+
"shell": true,
|
|
4914
|
+
"slots": [
|
|
4915
|
+
{
|
|
4916
|
+
"id": "header",
|
|
4917
|
+
"title": "Page heading",
|
|
4918
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
4919
|
+
"accepts": [
|
|
4920
|
+
"PageHeader",
|
|
4921
|
+
"Breadcrumbs",
|
|
4922
|
+
"Button",
|
|
4923
|
+
"SegmentedControl"
|
|
4924
|
+
],
|
|
4925
|
+
"props": [
|
|
4926
|
+
{
|
|
4927
|
+
"name": "title",
|
|
4928
|
+
"type": "string",
|
|
4929
|
+
"desc": "H1, up to 60 characters"
|
|
4930
|
+
},
|
|
4931
|
+
{
|
|
4932
|
+
"name": "subtitle",
|
|
4933
|
+
"type": "string?",
|
|
4934
|
+
"desc": "Gray caption below the heading"
|
|
4935
|
+
},
|
|
4936
|
+
{
|
|
4937
|
+
"name": "crumbs",
|
|
4938
|
+
"type": "{label,href?}[]",
|
|
4939
|
+
"desc": "Breadcrumbs"
|
|
4940
|
+
},
|
|
4941
|
+
{
|
|
4942
|
+
"name": "actions",
|
|
4943
|
+
"type": "VNode",
|
|
4944
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
4945
|
+
}
|
|
4946
|
+
],
|
|
4947
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
4948
|
+
},
|
|
4949
|
+
{
|
|
4950
|
+
"id": "days",
|
|
4951
|
+
"title": "Days",
|
|
4952
|
+
"desc": "Switch between the days of the trip.",
|
|
4953
|
+
"accepts": [
|
|
4954
|
+
"Tabs",
|
|
4955
|
+
"PillTabs"
|
|
4956
|
+
],
|
|
4957
|
+
"props": [
|
|
4958
|
+
{
|
|
4959
|
+
"name": "content",
|
|
4960
|
+
"type": "VNode",
|
|
4961
|
+
"desc": ""
|
|
4962
|
+
}
|
|
4963
|
+
],
|
|
4964
|
+
"use": "<UiTabs v-model=\"day\" :items=\"days\" />"
|
|
4965
|
+
},
|
|
4966
|
+
{
|
|
4967
|
+
"id": "timeline",
|
|
4968
|
+
"title": "Day timeline",
|
|
4969
|
+
"desc": "Stops of the active day with times, places and durations.",
|
|
4970
|
+
"accepts": [
|
|
4971
|
+
"Card",
|
|
4972
|
+
"Timeline",
|
|
4973
|
+
"StatRow"
|
|
4974
|
+
],
|
|
4975
|
+
"props": [
|
|
4976
|
+
{
|
|
4977
|
+
"name": "content",
|
|
4978
|
+
"type": "VNode",
|
|
4979
|
+
"desc": ""
|
|
4980
|
+
}
|
|
4981
|
+
],
|
|
4982
|
+
"use": "<UiCard title=\"Day 2 · Makkah\">…</UiCard>"
|
|
4983
|
+
},
|
|
4984
|
+
{
|
|
4985
|
+
"id": "transport",
|
|
4986
|
+
"title": "Transport",
|
|
4987
|
+
"desc": "Flights, buses and transfers of the day.",
|
|
4988
|
+
"accepts": [
|
|
4989
|
+
"Card",
|
|
4990
|
+
"StatRow"
|
|
4991
|
+
],
|
|
4992
|
+
"props": [
|
|
4993
|
+
{
|
|
4994
|
+
"name": "content",
|
|
4995
|
+
"type": "VNode",
|
|
4996
|
+
"desc": ""
|
|
4997
|
+
}
|
|
4998
|
+
],
|
|
4999
|
+
"use": "<UiCard title=\"Transport\">…</UiCard>"
|
|
5000
|
+
},
|
|
5001
|
+
{
|
|
5002
|
+
"id": "hotel",
|
|
5003
|
+
"title": "Hotel",
|
|
5004
|
+
"desc": "Where the group stays.",
|
|
5005
|
+
"accepts": [
|
|
5006
|
+
"Card",
|
|
5007
|
+
"Badge",
|
|
5008
|
+
"IconTile"
|
|
5009
|
+
],
|
|
5010
|
+
"props": [
|
|
5011
|
+
{
|
|
5012
|
+
"name": "content",
|
|
5013
|
+
"type": "VNode",
|
|
5014
|
+
"desc": ""
|
|
5015
|
+
}
|
|
5016
|
+
],
|
|
5017
|
+
"use": "<UiCard>…</UiCard>"
|
|
5018
|
+
},
|
|
5019
|
+
{
|
|
5020
|
+
"id": "summary",
|
|
5021
|
+
"title": "Trip summary",
|
|
5022
|
+
"desc": "Dates, group size and what is booked.",
|
|
5023
|
+
"accepts": [
|
|
5024
|
+
"Card",
|
|
5025
|
+
"Descriptions",
|
|
5026
|
+
"Progress"
|
|
5027
|
+
],
|
|
5028
|
+
"props": [
|
|
5029
|
+
{
|
|
5030
|
+
"name": "content",
|
|
5031
|
+
"type": "VNode",
|
|
5032
|
+
"desc": ""
|
|
5033
|
+
}
|
|
5034
|
+
],
|
|
5035
|
+
"use": "<UiCard title=\"Trip summary\">…</UiCard>"
|
|
5036
|
+
}
|
|
5037
|
+
]
|
|
5038
|
+
},
|
|
5039
|
+
{
|
|
5040
|
+
"id": "prayer",
|
|
5041
|
+
"label": "Prayer times",
|
|
5042
|
+
"component": "UiPagePrayer",
|
|
5043
|
+
"description": "Prayer times: location picker, today with the next prayer, a month table and a sticky Qibla compass.",
|
|
5044
|
+
"shell": true,
|
|
5045
|
+
"slots": [
|
|
5046
|
+
{
|
|
5047
|
+
"id": "header",
|
|
5048
|
+
"title": "Page heading",
|
|
5049
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
5050
|
+
"accepts": [
|
|
5051
|
+
"PageHeader",
|
|
5052
|
+
"Breadcrumbs",
|
|
5053
|
+
"Button",
|
|
5054
|
+
"SegmentedControl"
|
|
5055
|
+
],
|
|
5056
|
+
"props": [
|
|
5057
|
+
{
|
|
5058
|
+
"name": "title",
|
|
5059
|
+
"type": "string",
|
|
5060
|
+
"desc": "H1, up to 60 characters"
|
|
5061
|
+
},
|
|
5062
|
+
{
|
|
5063
|
+
"name": "subtitle",
|
|
5064
|
+
"type": "string?",
|
|
5065
|
+
"desc": "Gray caption below the heading"
|
|
5066
|
+
},
|
|
5067
|
+
{
|
|
5068
|
+
"name": "crumbs",
|
|
5069
|
+
"type": "{label,href?}[]",
|
|
5070
|
+
"desc": "Breadcrumbs"
|
|
5071
|
+
},
|
|
5072
|
+
{
|
|
5073
|
+
"name": "actions",
|
|
5074
|
+
"type": "VNode",
|
|
5075
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
5076
|
+
}
|
|
5077
|
+
],
|
|
5078
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
5079
|
+
},
|
|
5080
|
+
{
|
|
5081
|
+
"id": "location",
|
|
5082
|
+
"title": "Location",
|
|
5083
|
+
"desc": "City and calculation method.",
|
|
5084
|
+
"accepts": [
|
|
5085
|
+
"Select",
|
|
5086
|
+
"PillSelect",
|
|
5087
|
+
"SegmentedControl"
|
|
5088
|
+
],
|
|
5089
|
+
"props": [
|
|
5090
|
+
{
|
|
5091
|
+
"name": "content",
|
|
5092
|
+
"type": "VNode",
|
|
5093
|
+
"desc": ""
|
|
5094
|
+
}
|
|
5095
|
+
],
|
|
5096
|
+
"use": "<UiSelect v-model=\"city\" :options=\"cities\" />"
|
|
5097
|
+
},
|
|
5098
|
+
{
|
|
5099
|
+
"id": "today",
|
|
5100
|
+
"title": "Today",
|
|
5101
|
+
"desc": "Five prayers with the next one highlighted and a countdown.",
|
|
5102
|
+
"accepts": [
|
|
5103
|
+
"Card",
|
|
5104
|
+
"PrayerTimes"
|
|
5105
|
+
],
|
|
5106
|
+
"props": [
|
|
5107
|
+
{
|
|
5108
|
+
"name": "content",
|
|
5109
|
+
"type": "VNode",
|
|
5110
|
+
"desc": ""
|
|
5111
|
+
}
|
|
5112
|
+
],
|
|
5113
|
+
"use": "<UiPrayerTimes :items=\"times\" :next=\"2\" />"
|
|
5114
|
+
},
|
|
5115
|
+
{
|
|
5116
|
+
"id": "month",
|
|
5117
|
+
"title": "Month table",
|
|
5118
|
+
"desc": "Prayer times for every day of the month.",
|
|
5119
|
+
"accepts": [
|
|
5120
|
+
"Card",
|
|
5121
|
+
"DataTable"
|
|
5122
|
+
],
|
|
5123
|
+
"props": [
|
|
5124
|
+
{
|
|
5125
|
+
"name": "content",
|
|
5126
|
+
"type": "VNode",
|
|
5127
|
+
"desc": ""
|
|
5128
|
+
}
|
|
5129
|
+
],
|
|
5130
|
+
"use": "<UiDataTable :columns=\"cols\" :rows=\"days\" />"
|
|
5131
|
+
},
|
|
5132
|
+
{
|
|
5133
|
+
"id": "qibla",
|
|
5134
|
+
"title": "Qibla",
|
|
5135
|
+
"desc": "Direction to the Kaaba.",
|
|
5136
|
+
"accepts": [
|
|
5137
|
+
"Card",
|
|
5138
|
+
"QiblaCompass"
|
|
5139
|
+
],
|
|
5140
|
+
"props": [
|
|
5141
|
+
{
|
|
5142
|
+
"name": "content",
|
|
5143
|
+
"type": "VNode",
|
|
5144
|
+
"desc": ""
|
|
5145
|
+
}
|
|
5146
|
+
],
|
|
5147
|
+
"use": "<UiQiblaCompass :bearing=\"248\" />"
|
|
5148
|
+
}
|
|
5149
|
+
]
|
|
5150
|
+
},
|
|
5151
|
+
{
|
|
5152
|
+
"id": "group-manager",
|
|
5153
|
+
"label": "Group manager",
|
|
5154
|
+
"component": "UiPageGroupManager",
|
|
5155
|
+
"description": "Group manager: trip summary, pilgrims with documents and visa, bulk actions, rooming and payments.",
|
|
5156
|
+
"shell": true,
|
|
5157
|
+
"slots": [
|
|
5158
|
+
{
|
|
5159
|
+
"id": "header",
|
|
5160
|
+
"title": "Page heading",
|
|
5161
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
5162
|
+
"accepts": [
|
|
5163
|
+
"PageHeader",
|
|
5164
|
+
"Breadcrumbs",
|
|
5165
|
+
"Button",
|
|
5166
|
+
"SegmentedControl"
|
|
5167
|
+
],
|
|
5168
|
+
"props": [
|
|
5169
|
+
{
|
|
5170
|
+
"name": "title",
|
|
5171
|
+
"type": "string",
|
|
5172
|
+
"desc": "H1, up to 60 characters"
|
|
5173
|
+
},
|
|
5174
|
+
{
|
|
5175
|
+
"name": "subtitle",
|
|
5176
|
+
"type": "string?",
|
|
5177
|
+
"desc": "Gray caption below the heading"
|
|
5178
|
+
},
|
|
5179
|
+
{
|
|
5180
|
+
"name": "crumbs",
|
|
5181
|
+
"type": "{label,href?}[]",
|
|
5182
|
+
"desc": "Breadcrumbs"
|
|
5183
|
+
},
|
|
5184
|
+
{
|
|
5185
|
+
"name": "actions",
|
|
5186
|
+
"type": "VNode",
|
|
5187
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
5188
|
+
}
|
|
5189
|
+
],
|
|
5190
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
5191
|
+
},
|
|
5192
|
+
{
|
|
5193
|
+
"id": "trip",
|
|
5194
|
+
"title": "Trip summary",
|
|
5195
|
+
"desc": "Dates, route, seats and readiness counters.",
|
|
5196
|
+
"accepts": [
|
|
5197
|
+
"Card",
|
|
5198
|
+
"StatStrip",
|
|
5199
|
+
"Progress"
|
|
5200
|
+
],
|
|
5201
|
+
"props": [
|
|
5202
|
+
{
|
|
5203
|
+
"name": "content",
|
|
5204
|
+
"type": "VNode",
|
|
5205
|
+
"desc": ""
|
|
5206
|
+
}
|
|
5207
|
+
],
|
|
5208
|
+
"use": "<UiStatStrip :items=\"stats\" />"
|
|
5209
|
+
},
|
|
5210
|
+
{
|
|
5211
|
+
"id": "toolbar",
|
|
5212
|
+
"title": "Toolbar",
|
|
5213
|
+
"desc": "Search and status filters.",
|
|
5214
|
+
"accepts": [
|
|
5215
|
+
"SearchInput",
|
|
5216
|
+
"FilterChips"
|
|
5217
|
+
],
|
|
5218
|
+
"props": [
|
|
5219
|
+
{
|
|
5220
|
+
"name": "content",
|
|
5221
|
+
"type": "VNode",
|
|
5222
|
+
"desc": ""
|
|
5223
|
+
}
|
|
5224
|
+
],
|
|
5225
|
+
"use": "<UiSearchInput v-model=\"q\" />"
|
|
5226
|
+
},
|
|
5227
|
+
{
|
|
5228
|
+
"id": "bulk",
|
|
5229
|
+
"title": "Bulk actions",
|
|
5230
|
+
"desc": "Shown when pilgrims are selected.",
|
|
5231
|
+
"accepts": [
|
|
5232
|
+
"Button",
|
|
5233
|
+
"Badge"
|
|
5234
|
+
],
|
|
5235
|
+
"props": [
|
|
5236
|
+
{
|
|
5237
|
+
"name": "content",
|
|
5238
|
+
"type": "VNode",
|
|
5239
|
+
"desc": ""
|
|
5240
|
+
}
|
|
5241
|
+
],
|
|
5242
|
+
"use": "<UiButton icon=\"send\">Remind selected</UiButton>"
|
|
5243
|
+
},
|
|
5244
|
+
{
|
|
5245
|
+
"id": "pilgrims",
|
|
5246
|
+
"title": "Pilgrims",
|
|
5247
|
+
"desc": "Table with passport, visa and payment status.",
|
|
5248
|
+
"accepts": [
|
|
5249
|
+
"Card",
|
|
5250
|
+
"DataTable",
|
|
5251
|
+
"Badge"
|
|
5252
|
+
],
|
|
5253
|
+
"props": [
|
|
5254
|
+
{
|
|
5255
|
+
"name": "content",
|
|
5256
|
+
"type": "VNode",
|
|
5257
|
+
"desc": ""
|
|
5258
|
+
}
|
|
5259
|
+
],
|
|
5260
|
+
"use": "<UiDataTable :columns=\"cols\" :rows=\"rows\" />"
|
|
5261
|
+
},
|
|
5262
|
+
{
|
|
5263
|
+
"id": "rooms",
|
|
5264
|
+
"title": "Rooming",
|
|
5265
|
+
"desc": "Room assignment for the hotel.",
|
|
5266
|
+
"accepts": [
|
|
5267
|
+
"Card",
|
|
5268
|
+
"RoomGrid"
|
|
5269
|
+
],
|
|
5270
|
+
"props": [
|
|
5271
|
+
{
|
|
5272
|
+
"name": "content",
|
|
5273
|
+
"type": "VNode",
|
|
5274
|
+
"desc": ""
|
|
5275
|
+
}
|
|
5276
|
+
],
|
|
5277
|
+
"use": "<UiRoomGrid :rooms=\"rooms\" />"
|
|
5278
|
+
},
|
|
5279
|
+
{
|
|
5280
|
+
"id": "payments",
|
|
5281
|
+
"title": "Payments",
|
|
5282
|
+
"desc": "Collected, outstanding and the manager contact.",
|
|
5283
|
+
"accepts": [
|
|
5284
|
+
"Card",
|
|
5285
|
+
"Progress",
|
|
5286
|
+
"ContactPanel"
|
|
5287
|
+
],
|
|
5288
|
+
"props": [
|
|
5289
|
+
{
|
|
5290
|
+
"name": "content",
|
|
5291
|
+
"type": "VNode",
|
|
5292
|
+
"desc": ""
|
|
5293
|
+
}
|
|
5294
|
+
],
|
|
5295
|
+
"use": "<UiCard title=\"Payments\">…</UiCard>"
|
|
5296
|
+
}
|
|
5297
|
+
]
|
|
5298
|
+
},
|
|
5299
|
+
{
|
|
5300
|
+
"id": "tour-public",
|
|
5301
|
+
"label": "Tour page",
|
|
5302
|
+
"component": "UiPageTourPublic",
|
|
5303
|
+
"description": "Public tour page without the shell: gradient gallery, highlights, itinerary, inclusions, reviews and a sticky booking card.",
|
|
5304
|
+
"shell": false,
|
|
5305
|
+
"slots": [
|
|
5306
|
+
{
|
|
5307
|
+
"id": "header",
|
|
5308
|
+
"title": "Page heading",
|
|
5309
|
+
"desc": "Breadcrumbs, heading, caption and action buttons on the right.",
|
|
5310
|
+
"accepts": [
|
|
5311
|
+
"PageHeader",
|
|
5312
|
+
"Breadcrumbs",
|
|
5313
|
+
"Button",
|
|
5314
|
+
"SegmentedControl"
|
|
5315
|
+
],
|
|
5316
|
+
"props": [
|
|
5317
|
+
{
|
|
5318
|
+
"name": "title",
|
|
5319
|
+
"type": "string",
|
|
5320
|
+
"desc": "H1, up to 60 characters"
|
|
5321
|
+
},
|
|
5322
|
+
{
|
|
5323
|
+
"name": "subtitle",
|
|
5324
|
+
"type": "string?",
|
|
5325
|
+
"desc": "Gray caption below the heading"
|
|
5326
|
+
},
|
|
5327
|
+
{
|
|
5328
|
+
"name": "crumbs",
|
|
5329
|
+
"type": "{label,href?}[]",
|
|
5330
|
+
"desc": "Breadcrumbs"
|
|
5331
|
+
},
|
|
5332
|
+
{
|
|
5333
|
+
"name": "actions",
|
|
5334
|
+
"type": "VNode",
|
|
5335
|
+
"desc": "Buttons on the right; wrap below on a narrow screen"
|
|
5336
|
+
}
|
|
5337
|
+
],
|
|
5338
|
+
"use": "<UiPageHeader title=\"Dashboard\" :crumbs=\"crumbs\">\n <template #actions><UiButton variant=\"primary\">Export</UiButton></template>\n</UiPageHeader>"
|
|
5339
|
+
},
|
|
5340
|
+
{
|
|
5341
|
+
"id": "gallery",
|
|
5342
|
+
"title": "Gallery",
|
|
5343
|
+
"desc": "Hero area made of gradients or photos.",
|
|
5344
|
+
"accepts": [
|
|
5345
|
+
"Gallery",
|
|
5346
|
+
"Card"
|
|
5347
|
+
],
|
|
5348
|
+
"props": [
|
|
5349
|
+
{
|
|
5350
|
+
"name": "content",
|
|
5351
|
+
"type": "VNode",
|
|
5352
|
+
"desc": ""
|
|
5353
|
+
}
|
|
5354
|
+
],
|
|
5355
|
+
"use": "<UiCard>…</UiCard>"
|
|
5356
|
+
},
|
|
5357
|
+
{
|
|
5358
|
+
"id": "highlights",
|
|
5359
|
+
"title": "Highlights",
|
|
5360
|
+
"desc": "Key facts: nights, hotels, flights.",
|
|
5361
|
+
"accepts": [
|
|
5362
|
+
"StatStrip",
|
|
5363
|
+
"IconTile"
|
|
5364
|
+
],
|
|
5365
|
+
"props": [
|
|
5366
|
+
{
|
|
5367
|
+
"name": "content",
|
|
5368
|
+
"type": "VNode",
|
|
5369
|
+
"desc": ""
|
|
5370
|
+
}
|
|
5371
|
+
],
|
|
5372
|
+
"use": "<UiStatStrip :items=\"facts\" />"
|
|
5373
|
+
},
|
|
5374
|
+
{
|
|
5375
|
+
"id": "itinerary",
|
|
5376
|
+
"title": "Itinerary",
|
|
5377
|
+
"desc": "Day by day program in an accordion.",
|
|
5378
|
+
"accepts": [
|
|
5379
|
+
"Accordion"
|
|
5380
|
+
],
|
|
5381
|
+
"props": [
|
|
5382
|
+
{
|
|
5383
|
+
"name": "content",
|
|
5384
|
+
"type": "VNode",
|
|
5385
|
+
"desc": ""
|
|
5386
|
+
}
|
|
5387
|
+
],
|
|
5388
|
+
"use": "<UiAccordion :items=\"days\" />"
|
|
5389
|
+
},
|
|
5390
|
+
{
|
|
5391
|
+
"id": "included",
|
|
5392
|
+
"title": "Included",
|
|
5393
|
+
"desc": "What the price includes and excludes.",
|
|
5394
|
+
"accepts": [
|
|
5395
|
+
"Card",
|
|
5396
|
+
"Descriptions"
|
|
5397
|
+
],
|
|
5398
|
+
"props": [
|
|
5399
|
+
{
|
|
5400
|
+
"name": "content",
|
|
5401
|
+
"type": "VNode",
|
|
5402
|
+
"desc": ""
|
|
5403
|
+
}
|
|
5404
|
+
],
|
|
5405
|
+
"use": "<UiCard title=\"Included\">…</UiCard>"
|
|
5406
|
+
},
|
|
5407
|
+
{
|
|
5408
|
+
"id": "reviews",
|
|
5409
|
+
"title": "Reviews",
|
|
5410
|
+
"desc": "What pilgrims say.",
|
|
5411
|
+
"accepts": [
|
|
5412
|
+
"Card",
|
|
5413
|
+
"Rating",
|
|
5414
|
+
"Avatar"
|
|
5415
|
+
],
|
|
5416
|
+
"props": [
|
|
5417
|
+
{
|
|
5418
|
+
"name": "content",
|
|
5419
|
+
"type": "VNode",
|
|
5420
|
+
"desc": ""
|
|
5421
|
+
}
|
|
5422
|
+
],
|
|
5423
|
+
"use": "<UiCard title=\"Reviews\">…</UiCard>"
|
|
5424
|
+
},
|
|
5425
|
+
{
|
|
5426
|
+
"id": "booking",
|
|
5427
|
+
"title": "Booking",
|
|
5428
|
+
"desc": "Price, dates, seats and the booking button.",
|
|
5429
|
+
"accepts": [
|
|
5430
|
+
"Card",
|
|
5431
|
+
"Button"
|
|
5432
|
+
],
|
|
5433
|
+
"props": [
|
|
5434
|
+
{
|
|
5435
|
+
"name": "content",
|
|
5436
|
+
"type": "VNode",
|
|
5437
|
+
"desc": ""
|
|
5438
|
+
}
|
|
5439
|
+
],
|
|
5440
|
+
"use": "<UiCard title=\"Book\">…</UiCard>"
|
|
5441
|
+
}
|
|
5442
|
+
]
|
|
4074
5443
|
}
|
|
4075
5444
|
]
|
|
4076
5445
|
},
|
|
@@ -5799,7 +7168,22 @@
|
|
|
5799
7168
|
"error": {
|
|
5800
7169
|
"type": "string",
|
|
5801
7170
|
"forwarded": true,
|
|
5802
|
-
"description": "Error message under the control. Turns the control red and is announced with role=\"alert\"."
|
|
7171
|
+
"description": "Error message under the control. Turns the control red and is announced with role=\"alert\"."
|
|
7172
|
+
},
|
|
7173
|
+
"required": {
|
|
7174
|
+
"type": "boolean",
|
|
7175
|
+
"default": false,
|
|
7176
|
+
"description": "Adds a red asterisk to the label and the native required attribute."
|
|
7177
|
+
},
|
|
7178
|
+
"name": {
|
|
7179
|
+
"type": "string",
|
|
7180
|
+
"forwarded": true,
|
|
7181
|
+
"description": "Native name attribute of the input."
|
|
7182
|
+
},
|
|
7183
|
+
"autofocus": {
|
|
7184
|
+
"type": "boolean",
|
|
7185
|
+
"forwarded": true,
|
|
7186
|
+
"description": "Focuses the input on mount."
|
|
5803
7187
|
},
|
|
5804
7188
|
"autocomplete": {
|
|
5805
7189
|
"type": "string",
|
|
@@ -7428,6 +8812,11 @@
|
|
|
7428
8812
|
"default": true,
|
|
7429
8813
|
"description": "Show the \"Forgot password?\" link."
|
|
7430
8814
|
},
|
|
8815
|
+
"showRemember": {
|
|
8816
|
+
"type": "boolean",
|
|
8817
|
+
"default": true,
|
|
8818
|
+
"description": "Show the \"Remember device\" checkbox. Hide it when your backend has no such option; the submit payload then keeps remember: true."
|
|
8819
|
+
},
|
|
7431
8820
|
"submitLabel": {
|
|
7432
8821
|
"type": "string",
|
|
7433
8822
|
"default": "Sign in",
|
|
@@ -10266,9 +11655,261 @@
|
|
|
10266
11655
|
"description": "Hides the previous and next buttons."
|
|
10267
11656
|
},
|
|
10268
11657
|
"labels": {
|
|
10269
|
-
"type": "{ prev?: string; next?: string; page?: string }",
|
|
10270
|
-
"default": "{ prev: 'Previous page', next: 'Next page', page: 'Page' }",
|
|
10271
|
-
"description": "Accessible names of the arrow buttons and of each page button (\"Page 3\")."
|
|
11658
|
+
"type": "{ prev?: string; next?: string; page?: string }",
|
|
11659
|
+
"default": "{ prev: 'Previous page', next: 'Next page', page: 'Page' }",
|
|
11660
|
+
"description": "Accessible names of the arrow buttons and of each page button (\"Page 3\")."
|
|
11661
|
+
},
|
|
11662
|
+
"size": {
|
|
11663
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11664
|
+
"values": [
|
|
11665
|
+
"xs",
|
|
11666
|
+
"sm",
|
|
11667
|
+
"md",
|
|
11668
|
+
"lg",
|
|
11669
|
+
"xl"
|
|
11670
|
+
],
|
|
11671
|
+
"default": "md",
|
|
11672
|
+
"description": "Scale of button size and text."
|
|
11673
|
+
}
|
|
11674
|
+
},
|
|
11675
|
+
"events": {
|
|
11676
|
+
"change": "Called with the clicked page number (also from the previous and next buttons)."
|
|
11677
|
+
},
|
|
11678
|
+
"notes": [
|
|
11679
|
+
"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.",
|
|
11680
|
+
"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\"."
|
|
11681
|
+
]
|
|
11682
|
+
},
|
|
11683
|
+
{
|
|
11684
|
+
"name": "Accordion",
|
|
11685
|
+
"tag": "UiAccordion",
|
|
11686
|
+
"group": "navigation",
|
|
11687
|
+
"description": "Vertical list of collapsible sections where one is open at a time; use for FAQs and grouped details.",
|
|
11688
|
+
"props": {
|
|
11689
|
+
"items": {
|
|
11690
|
+
"type": "{ id: string; title: string; body: string | VNode }[]",
|
|
11691
|
+
"default": "[]",
|
|
11692
|
+
"description": "Sections. id must be unique; body is shown when the section is open."
|
|
11693
|
+
},
|
|
11694
|
+
"size": {
|
|
11695
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11696
|
+
"values": [
|
|
11697
|
+
"xs",
|
|
11698
|
+
"sm",
|
|
11699
|
+
"md",
|
|
11700
|
+
"lg",
|
|
11701
|
+
"xl"
|
|
11702
|
+
],
|
|
11703
|
+
"default": "md",
|
|
11704
|
+
"description": "Scale of header padding and text."
|
|
11705
|
+
}
|
|
11706
|
+
},
|
|
11707
|
+
"notes": [
|
|
11708
|
+
"Open state is internal and single: opening one closes the others, all start closed."
|
|
11709
|
+
]
|
|
11710
|
+
},
|
|
11711
|
+
{
|
|
11712
|
+
"name": "Avatar",
|
|
11713
|
+
"tag": "UiAvatar",
|
|
11714
|
+
"group": "media",
|
|
11715
|
+
"description": "Round user picture that falls back to initials when there is no image.",
|
|
11716
|
+
"props": {
|
|
11717
|
+
"name": {
|
|
11718
|
+
"type": "string",
|
|
11719
|
+
"description": "Full name. Shown as the tooltip and used for up to two initials; \"?\" when empty."
|
|
11720
|
+
},
|
|
11721
|
+
"src": {
|
|
11722
|
+
"type": "string",
|
|
11723
|
+
"description": "Image URL. Initials are shown without it."
|
|
11724
|
+
},
|
|
11725
|
+
"initials": {
|
|
11726
|
+
"type": "string",
|
|
11727
|
+
"description": "Explicit initials (up to 3 characters, uppercased) instead of the ones derived from name."
|
|
11728
|
+
},
|
|
11729
|
+
"tone": {
|
|
11730
|
+
"type": "'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'",
|
|
11731
|
+
"values": [
|
|
11732
|
+
"brand",
|
|
11733
|
+
"sky",
|
|
11734
|
+
"success",
|
|
11735
|
+
"warning",
|
|
11736
|
+
"danger",
|
|
11737
|
+
"neutral"
|
|
11738
|
+
],
|
|
11739
|
+
"default": "brand",
|
|
11740
|
+
"description": "Background color of the initials avatar."
|
|
11741
|
+
},
|
|
11742
|
+
"shape": {
|
|
11743
|
+
"type": "'circle' | 'rounded'",
|
|
11744
|
+
"values": [
|
|
11745
|
+
"circle",
|
|
11746
|
+
"rounded"
|
|
11747
|
+
],
|
|
11748
|
+
"default": "circle",
|
|
11749
|
+
"description": "rounded gives a squircle with a 30% corner radius."
|
|
11750
|
+
},
|
|
11751
|
+
"ring": {
|
|
11752
|
+
"type": "boolean",
|
|
11753
|
+
"default": false,
|
|
11754
|
+
"description": "Adds a background-colored ring so overlapping avatars stay separated."
|
|
11755
|
+
},
|
|
11756
|
+
"status": {
|
|
11757
|
+
"type": "'online' | 'offline' | 'away' | 'busy'",
|
|
11758
|
+
"values": [
|
|
11759
|
+
"online",
|
|
11760
|
+
"offline",
|
|
11761
|
+
"away",
|
|
11762
|
+
"busy"
|
|
11763
|
+
],
|
|
11764
|
+
"description": "Shows a presence dot in the bottom corner."
|
|
11765
|
+
},
|
|
11766
|
+
"size": {
|
|
11767
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number",
|
|
11768
|
+
"values": [
|
|
11769
|
+
"xs",
|
|
11770
|
+
"sm",
|
|
11771
|
+
"md",
|
|
11772
|
+
"lg",
|
|
11773
|
+
"xl"
|
|
11774
|
+
],
|
|
11775
|
+
"default": "md",
|
|
11776
|
+
"description": "Diameter: xs 24, sm 32, md 40, lg 56, xl 72 px. A number is used directly as px."
|
|
11777
|
+
}
|
|
11778
|
+
},
|
|
11779
|
+
"notes": [
|
|
11780
|
+
"Avatar sizes differ from other components (lg 56, xl 72), and a number gives any custom size."
|
|
11781
|
+
]
|
|
11782
|
+
},
|
|
11783
|
+
{
|
|
11784
|
+
"name": "Icon",
|
|
11785
|
+
"tag": "UiIcon",
|
|
11786
|
+
"group": "media",
|
|
11787
|
+
"description": "Renders a named icon from the library at a chosen size.",
|
|
11788
|
+
"props": {
|
|
11789
|
+
"name": {
|
|
11790
|
+
"type": "string",
|
|
11791
|
+
"default": "circle",
|
|
11792
|
+
"description": "Icon name from the library, for example \"check\" or \"map-pin\"."
|
|
11793
|
+
},
|
|
11794
|
+
"size": {
|
|
11795
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number",
|
|
11796
|
+
"values": [
|
|
11797
|
+
"xs",
|
|
11798
|
+
"sm",
|
|
11799
|
+
"md",
|
|
11800
|
+
"lg",
|
|
11801
|
+
"xl"
|
|
11802
|
+
],
|
|
11803
|
+
"default": "md",
|
|
11804
|
+
"description": "Pixel size: xs 14, sm 16, md 20, lg 24, xl 32. A number is used directly as px."
|
|
11805
|
+
}
|
|
11806
|
+
},
|
|
11807
|
+
"notes": [
|
|
11808
|
+
"The icon is aria-hidden; add a label on the surrounding control for accessibility.",
|
|
11809
|
+
"Icons load lazily, so the glyph may appear a moment after first render."
|
|
11810
|
+
]
|
|
11811
|
+
},
|
|
11812
|
+
{
|
|
11813
|
+
"name": "LazyImage",
|
|
11814
|
+
"tag": "UiLazyImage",
|
|
11815
|
+
"group": "media",
|
|
11816
|
+
"description": "Image box with a fixed aspect ratio and rounded corners, rendered as a background image.",
|
|
11817
|
+
"props": {
|
|
11818
|
+
"src": {
|
|
11819
|
+
"type": "string",
|
|
11820
|
+
"description": "Image URL. An empty placeholder is shown without it."
|
|
11821
|
+
},
|
|
11822
|
+
"alt": {
|
|
11823
|
+
"type": "string",
|
|
11824
|
+
"default": "",
|
|
11825
|
+
"description": "Accessible description, exposed as aria-label on role=\"img\"."
|
|
11826
|
+
},
|
|
11827
|
+
"aspectRatio": {
|
|
11828
|
+
"type": "string",
|
|
11829
|
+
"default": "16/9",
|
|
11830
|
+
"description": "CSS aspect-ratio value such as \"1/1\" or \"4/3\"."
|
|
11831
|
+
},
|
|
11832
|
+
"rounded": {
|
|
11833
|
+
"type": "number",
|
|
11834
|
+
"default": 20,
|
|
11835
|
+
"description": "Corner radius in px."
|
|
11836
|
+
}
|
|
11837
|
+
}
|
|
11838
|
+
},
|
|
11839
|
+
{
|
|
11840
|
+
"name": "Gallery",
|
|
11841
|
+
"tag": "UiGallery",
|
|
11842
|
+
"group": "media",
|
|
11843
|
+
"description": "Large image with a counter and a thumbnail strip for browsing a set of photos.",
|
|
11844
|
+
"props": {
|
|
11845
|
+
"images": {
|
|
11846
|
+
"type": "string[]",
|
|
11847
|
+
"required": true,
|
|
11848
|
+
"default": [],
|
|
11849
|
+
"description": "Image URLs. The first one is shown initially; clicking a thumbnail switches the main image."
|
|
11850
|
+
},
|
|
11851
|
+
"alt": {
|
|
11852
|
+
"type": "string",
|
|
11853
|
+
"default": "",
|
|
11854
|
+
"description": "Accessible description of the main image."
|
|
11855
|
+
},
|
|
11856
|
+
"index": {
|
|
11857
|
+
"type": "number",
|
|
11858
|
+
"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."
|
|
11859
|
+
},
|
|
11860
|
+
"labels": {
|
|
11861
|
+
"type": "{ photo?: string }",
|
|
11862
|
+
"default": "{ photo: 'Photo' }",
|
|
11863
|
+
"description": "Override the thumbnail aria-label prefix."
|
|
11864
|
+
},
|
|
11865
|
+
"size": {
|
|
11866
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
11867
|
+
"values": [
|
|
11868
|
+
"xs",
|
|
11869
|
+
"sm",
|
|
11870
|
+
"md",
|
|
11871
|
+
"lg",
|
|
11872
|
+
"xl"
|
|
11873
|
+
],
|
|
11874
|
+
"default": "md",
|
|
11875
|
+
"description": "Thumbnail strip size."
|
|
11876
|
+
}
|
|
11877
|
+
},
|
|
11878
|
+
"events": {
|
|
11879
|
+
"change": "Called with the new image index when a thumbnail is clicked."
|
|
11880
|
+
},
|
|
11881
|
+
"notes": [
|
|
11882
|
+
"An empty or missing images array renders an empty frame (no counter, no thumbnails). Invalid index values are clamped to the available range."
|
|
11883
|
+
]
|
|
11884
|
+
},
|
|
11885
|
+
{
|
|
11886
|
+
"name": "Carousel",
|
|
11887
|
+
"tag": "UiCarousel",
|
|
11888
|
+
"group": "media",
|
|
11889
|
+
"description": "Slideshow of image slides with captions, arrows and dot pagination.",
|
|
11890
|
+
"props": {
|
|
11891
|
+
"items": {
|
|
11892
|
+
"type": "{ image?: string; title: string; sub?: string }[]",
|
|
11893
|
+
"required": true,
|
|
11894
|
+
"default": [],
|
|
11895
|
+
"description": "Slides. title and sub form the caption over the image."
|
|
11896
|
+
},
|
|
11897
|
+
"index": {
|
|
11898
|
+
"type": "number",
|
|
11899
|
+
"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."
|
|
11900
|
+
},
|
|
11901
|
+
"autoplay": {
|
|
11902
|
+
"type": "number | boolean",
|
|
11903
|
+
"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."
|
|
11904
|
+
},
|
|
11905
|
+
"label": {
|
|
11906
|
+
"type": "string",
|
|
11907
|
+
"description": "Accessible name of the carousel region."
|
|
11908
|
+
},
|
|
11909
|
+
"labels": {
|
|
11910
|
+
"type": "{ prev?: string; next?: string; slide?: string }",
|
|
11911
|
+
"default": "{ prev: 'Previous', next: 'Next', slide: 'Slide' }",
|
|
11912
|
+
"description": "Override the aria-labels of the arrows and dots."
|
|
10272
11913
|
},
|
|
10273
11914
|
"size": {
|
|
10274
11915
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10280,102 +11921,199 @@
|
|
|
10280
11921
|
"xl"
|
|
10281
11922
|
],
|
|
10282
11923
|
"default": "md",
|
|
10283
|
-
"description": "
|
|
11924
|
+
"description": "Slide aspect ratio and caption size: xs 16/6, sm 16/7, md 16/8, lg 16/9, xl 16/10."
|
|
10284
11925
|
}
|
|
10285
11926
|
},
|
|
10286
11927
|
"events": {
|
|
10287
|
-
"change": "Called with the
|
|
11928
|
+
"change": "Called with the new slide index on arrow, dot, keyboard (left and right arrows) and autoplay changes."
|
|
10288
11929
|
},
|
|
10289
11930
|
"notes": [
|
|
10290
|
-
"
|
|
10291
|
-
"
|
|
11931
|
+
"Arrows wrap around at both ends and are hidden with fewer than 2 slides; an empty items array renders an empty frame.",
|
|
11932
|
+
"Autoplay has no visible pause button; hover or focus pauses it. Prefer a manual carousel for essential content."
|
|
10292
11933
|
]
|
|
10293
11934
|
},
|
|
10294
11935
|
{
|
|
10295
|
-
"name": "
|
|
10296
|
-
"tag": "
|
|
10297
|
-
"group": "
|
|
10298
|
-
"description": "
|
|
11936
|
+
"name": "Map",
|
|
11937
|
+
"tag": "UiMap",
|
|
11938
|
+
"group": "media",
|
|
11939
|
+
"description": "Interactive raster map with panning, zoom buttons and clickable markers, using OpenStreetMap data via CARTO tiles.",
|
|
10299
11940
|
"props": {
|
|
10300
|
-
"
|
|
10301
|
-
"type": "
|
|
10302
|
-
"default":
|
|
10303
|
-
"description": "
|
|
11941
|
+
"lat": {
|
|
11942
|
+
"type": "number",
|
|
11943
|
+
"default": 21.4225,
|
|
11944
|
+
"description": "Initial center latitude."
|
|
10304
11945
|
},
|
|
10305
|
-
"
|
|
10306
|
-
"type": "
|
|
11946
|
+
"lon": {
|
|
11947
|
+
"type": "number",
|
|
11948
|
+
"default": 39.8262,
|
|
11949
|
+
"description": "Initial center longitude."
|
|
11950
|
+
},
|
|
11951
|
+
"zoom": {
|
|
11952
|
+
"type": "number",
|
|
11953
|
+
"default": 14,
|
|
11954
|
+
"description": "Initial zoom level; the zoom buttons clamp it to 3..18."
|
|
11955
|
+
},
|
|
11956
|
+
"markers": {
|
|
11957
|
+
"type": "{ lat: number; lon: number; label?: string; icon?: string; tone?: 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral' }[]",
|
|
11958
|
+
"default": [],
|
|
11959
|
+
"description": "Pins. label is the tooltip, icon defaults to \"map-pin\"."
|
|
11960
|
+
},
|
|
11961
|
+
"width": {
|
|
11962
|
+
"type": "number",
|
|
11963
|
+
"default": 640,
|
|
11964
|
+
"description": "Pixel width used to compute which tiles to load; the map element itself fills its container."
|
|
11965
|
+
},
|
|
11966
|
+
"height": {
|
|
11967
|
+
"type": "number",
|
|
11968
|
+
"default": 360,
|
|
11969
|
+
"description": "Height in px."
|
|
11970
|
+
},
|
|
11971
|
+
"theme": {
|
|
11972
|
+
"type": "'light' | 'dark'",
|
|
10307
11973
|
"values": [
|
|
10308
|
-
"
|
|
10309
|
-
"
|
|
10310
|
-
"md",
|
|
10311
|
-
"lg",
|
|
10312
|
-
"xl"
|
|
11974
|
+
"light",
|
|
11975
|
+
"dark"
|
|
10313
11976
|
],
|
|
10314
|
-
"
|
|
10315
|
-
|
|
11977
|
+
"description": "Tile theme. If omitted, dark is used when the page is inside a dark data-theme."
|
|
11978
|
+
},
|
|
11979
|
+
"style": {
|
|
11980
|
+
"type": "string",
|
|
11981
|
+
"description": "CARTO tile style path, for example \"light_all\" or \"dark_all\". Overrides theme."
|
|
11982
|
+
},
|
|
11983
|
+
"label": {
|
|
11984
|
+
"type": "string",
|
|
11985
|
+
"default": "Map",
|
|
11986
|
+
"description": "aria-label of the map region."
|
|
11987
|
+
},
|
|
11988
|
+
"labels": {
|
|
11989
|
+
"type": "{ zoomIn?: string; zoomOut?: string }",
|
|
11990
|
+
"default": "{ zoomIn: 'Zoom in', zoomOut: 'Zoom out' }",
|
|
11991
|
+
"description": "Accessible names of the zoom buttons."
|
|
10316
11992
|
}
|
|
10317
11993
|
},
|
|
11994
|
+
"events": {
|
|
11995
|
+
"select": "Called with the marker object when a marker is clicked.",
|
|
11996
|
+
"move": "Called with { lat, lon, zoom } while the user pans or zooms (drag, touch, wheel, double click or the +/- buttons).",
|
|
11997
|
+
"zoom": "Called with the new zoom level when it changes."
|
|
11998
|
+
},
|
|
10318
11999
|
"notes": [
|
|
10319
|
-
"
|
|
12000
|
+
"The center and zoom props are initial values; user panning and zooming is kept in internal state. Listen to move/zoom to track it.",
|
|
12001
|
+
"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.",
|
|
12002
|
+
"Tiles come from a third-party CDN, so it needs network access."
|
|
10320
12003
|
]
|
|
10321
12004
|
},
|
|
10322
12005
|
{
|
|
10323
|
-
"name": "
|
|
10324
|
-
"tag": "
|
|
12006
|
+
"name": "ProfileHeader",
|
|
12007
|
+
"tag": "UiProfileHeader",
|
|
10325
12008
|
"group": "media",
|
|
10326
|
-
"description": "
|
|
12009
|
+
"description": "Profile card with a cover image, large avatar, name and a row of meta items.",
|
|
10327
12010
|
"props": {
|
|
10328
12011
|
"name": {
|
|
10329
12012
|
"type": "string",
|
|
10330
|
-
"
|
|
12013
|
+
"required": true,
|
|
12014
|
+
"description": "Person or organization name."
|
|
10331
12015
|
},
|
|
10332
12016
|
"src": {
|
|
10333
12017
|
"type": "string",
|
|
10334
|
-
"description": "
|
|
12018
|
+
"description": "Avatar image URL; initials are shown without it."
|
|
10335
12019
|
},
|
|
10336
|
-
"
|
|
12020
|
+
"cover": {
|
|
10337
12021
|
"type": "string",
|
|
10338
|
-
"description": "
|
|
10339
|
-
},
|
|
10340
|
-
"tone": {
|
|
10341
|
-
"type": "'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'",
|
|
10342
|
-
"values": [
|
|
10343
|
-
"brand",
|
|
10344
|
-
"sky",
|
|
10345
|
-
"success",
|
|
10346
|
-
"warning",
|
|
10347
|
-
"danger",
|
|
10348
|
-
"neutral"
|
|
10349
|
-
],
|
|
10350
|
-
"default": "brand",
|
|
10351
|
-
"description": "Background color of the initials avatar."
|
|
12022
|
+
"description": "Cover image URL."
|
|
10352
12023
|
},
|
|
10353
|
-
"
|
|
10354
|
-
"type": "
|
|
10355
|
-
"
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
|
|
10360
|
-
|
|
12024
|
+
"meta": {
|
|
12025
|
+
"type": "{ icon: string; label: string }[]",
|
|
12026
|
+
"default": [],
|
|
12027
|
+
"description": "Facts under the name such as location or join date. label must be unique."
|
|
12028
|
+
}
|
|
12029
|
+
},
|
|
12030
|
+
"slots": {
|
|
12031
|
+
"default": "Extra content on the right of the name row, usually action buttons."
|
|
12032
|
+
}
|
|
12033
|
+
},
|
|
12034
|
+
{
|
|
12035
|
+
"name": "ChatAi",
|
|
12036
|
+
"tag": "UiChatAi",
|
|
12037
|
+
"group": "media",
|
|
12038
|
+
"description": "Chat panel with message bubbles, a typing indicator and an input, for AI assistant UIs.",
|
|
12039
|
+
"props": {
|
|
12040
|
+
"messages": {
|
|
12041
|
+
"type": "{ role: 'user' | 'ai'; text: string }[]",
|
|
12042
|
+
"required": true,
|
|
12043
|
+
"default": [],
|
|
12044
|
+
"description": "Conversation in order. Any role other than \"user\" renders as an assistant bubble."
|
|
10361
12045
|
},
|
|
10362
|
-
"
|
|
12046
|
+
"loading": {
|
|
10363
12047
|
"type": "boolean",
|
|
10364
12048
|
"default": false,
|
|
10365
|
-
"description": "
|
|
12049
|
+
"description": "Shows the typing dots and disables sending."
|
|
10366
12050
|
},
|
|
10367
|
-
"
|
|
10368
|
-
"type": "
|
|
10369
|
-
"
|
|
10370
|
-
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
12051
|
+
"title": {
|
|
12052
|
+
"type": "string",
|
|
12053
|
+
"default": "Assistant",
|
|
12054
|
+
"description": "Header title; also the aria-label. The header renders only when set."
|
|
12055
|
+
},
|
|
12056
|
+
"subtitle": {
|
|
12057
|
+
"type": "string",
|
|
12058
|
+
"description": "Muted text next to the title."
|
|
12059
|
+
},
|
|
12060
|
+
"placeholder": {
|
|
12061
|
+
"type": "string",
|
|
12062
|
+
"default": "Ask anything…",
|
|
12063
|
+
"description": "Input placeholder."
|
|
12064
|
+
}
|
|
12065
|
+
},
|
|
12066
|
+
"events": {
|
|
12067
|
+
"send": "Called with the trimmed message text when the user presses Enter or the send button. The component does not append it to messages."
|
|
12068
|
+
},
|
|
12069
|
+
"notes": [
|
|
12070
|
+
"Append the user message and the reply to messages yourself; set loading while waiting."
|
|
12071
|
+
]
|
|
12072
|
+
},
|
|
12073
|
+
{
|
|
12074
|
+
"name": "HotelCard",
|
|
12075
|
+
"tag": "UiHotelCard",
|
|
12076
|
+
"group": "domain",
|
|
12077
|
+
"description": "Hotel listing card with photo, tags, stars, distance, rating and nightly price; use in catalogs and search results.",
|
|
12078
|
+
"props": {
|
|
12079
|
+
"name": {
|
|
12080
|
+
"type": "string",
|
|
12081
|
+
"required": true,
|
|
12082
|
+
"description": "Hotel name."
|
|
12083
|
+
},
|
|
12084
|
+
"image": {
|
|
12085
|
+
"type": "string",
|
|
12086
|
+
"description": "Photo URL, used as the card background image."
|
|
12087
|
+
},
|
|
12088
|
+
"tags": {
|
|
12089
|
+
"type": "string[]",
|
|
12090
|
+
"default": "[]",
|
|
12091
|
+
"description": "Brand badges over the photo, e.g. \"Haram view\"."
|
|
12092
|
+
},
|
|
12093
|
+
"stars": {
|
|
12094
|
+
"type": "number",
|
|
12095
|
+
"default": 0,
|
|
12096
|
+
"description": "Star class 0-5, rendered as repeated stars."
|
|
12097
|
+
},
|
|
12098
|
+
"distance": {
|
|
12099
|
+
"type": "string",
|
|
12100
|
+
"description": "Distance caption next to the stars, e.g. \"120 m to the Haram\"."
|
|
12101
|
+
},
|
|
12102
|
+
"rating": {
|
|
12103
|
+
"type": "string | number",
|
|
12104
|
+
"description": "Guest rating shown in a green badge, e.g. 9.2."
|
|
12105
|
+
},
|
|
12106
|
+
"price": {
|
|
12107
|
+
"type": "number",
|
|
12108
|
+
"description": "Price per unit, formatted with thousand separators; the currency label is fixed to SAR."
|
|
12109
|
+
},
|
|
12110
|
+
"night": {
|
|
12111
|
+
"type": "string",
|
|
12112
|
+
"default": "night",
|
|
12113
|
+
"description": "Unit after \"SAR /\", e.g. \"night\"."
|
|
10376
12114
|
},
|
|
10377
12115
|
"size": {
|
|
10378
|
-
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
12116
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
10379
12117
|
"values": [
|
|
10380
12118
|
"xs",
|
|
10381
12119
|
"sm",
|
|
@@ -10384,26 +12122,45 @@
|
|
|
10384
12122
|
"xl"
|
|
10385
12123
|
],
|
|
10386
12124
|
"default": "md",
|
|
10387
|
-
"description": "
|
|
12125
|
+
"description": "Scales padding, text and avatars."
|
|
10388
12126
|
}
|
|
10389
12127
|
},
|
|
10390
12128
|
"notes": [
|
|
10391
|
-
"
|
|
12129
|
+
"Currency is hard-coded to SAR.",
|
|
12130
|
+
"Wrap in a clickable element yourself; the card has no click handler."
|
|
10392
12131
|
]
|
|
10393
12132
|
},
|
|
10394
12133
|
{
|
|
10395
|
-
"name": "
|
|
10396
|
-
"tag": "
|
|
10397
|
-
"group": "
|
|
10398
|
-
"description": "
|
|
12134
|
+
"name": "TourCard",
|
|
12135
|
+
"tag": "UiTourCard",
|
|
12136
|
+
"group": "domain",
|
|
12137
|
+
"description": "Tour or virtual-tour card with session count and a seat-occupancy bar.",
|
|
10399
12138
|
"props": {
|
|
10400
12139
|
"name": {
|
|
10401
12140
|
"type": "string",
|
|
10402
|
-
"
|
|
10403
|
-
"description": "
|
|
12141
|
+
"required": true,
|
|
12142
|
+
"description": "Tour title."
|
|
12143
|
+
},
|
|
12144
|
+
"city": {
|
|
12145
|
+
"type": "string",
|
|
12146
|
+
"description": "City shown in the subtitle."
|
|
12147
|
+
},
|
|
12148
|
+
"sessions": {
|
|
12149
|
+
"type": "number",
|
|
12150
|
+
"description": "Number of sessions, shown as \"N sessions\"."
|
|
12151
|
+
},
|
|
12152
|
+
"booked": {
|
|
12153
|
+
"type": "number",
|
|
12154
|
+
"required": true,
|
|
12155
|
+
"description": "Seats already booked."
|
|
12156
|
+
},
|
|
12157
|
+
"seats": {
|
|
12158
|
+
"type": "number",
|
|
12159
|
+
"required": true,
|
|
12160
|
+
"description": "Total seats; the bar shows booked / seats."
|
|
10404
12161
|
},
|
|
10405
12162
|
"size": {
|
|
10406
|
-
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
12163
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
10407
12164
|
"values": [
|
|
10408
12165
|
"xs",
|
|
10409
12166
|
"sm",
|
|
@@ -10412,66 +12169,56 @@
|
|
|
10412
12169
|
"xl"
|
|
10413
12170
|
],
|
|
10414
12171
|
"default": "md",
|
|
10415
|
-
"description": "
|
|
12172
|
+
"description": "Scales padding, text and avatars."
|
|
10416
12173
|
}
|
|
10417
12174
|
},
|
|
12175
|
+
"slots": {
|
|
12176
|
+
"actions": "Footer actions, usually Buttons."
|
|
12177
|
+
},
|
|
10418
12178
|
"notes": [
|
|
10419
|
-
"
|
|
10420
|
-
"
|
|
12179
|
+
"A fixed \"360°\" badge is always shown.",
|
|
12180
|
+
"With seats = 0 or missing the bar is empty (0%) and the meta reads \"0/0\"."
|
|
10421
12181
|
]
|
|
10422
12182
|
},
|
|
10423
12183
|
{
|
|
10424
|
-
"name": "
|
|
10425
|
-
"tag": "
|
|
10426
|
-
"group": "
|
|
10427
|
-
"description": "
|
|
12184
|
+
"name": "PrayerTimes",
|
|
12185
|
+
"tag": "UiPrayerTimes",
|
|
12186
|
+
"group": "domain",
|
|
12187
|
+
"description": "Row of daily prayer times with the upcoming prayer highlighted.",
|
|
10428
12188
|
"props": {
|
|
10429
|
-
"
|
|
10430
|
-
"type": "string",
|
|
10431
|
-
"
|
|
10432
|
-
|
|
10433
|
-
"alt": {
|
|
10434
|
-
"type": "string",
|
|
10435
|
-
"default": "",
|
|
10436
|
-
"description": "Accessible description, exposed as aria-label on role=\"img\"."
|
|
10437
|
-
},
|
|
10438
|
-
"aspectRatio": {
|
|
10439
|
-
"type": "string",
|
|
10440
|
-
"default": "16/9",
|
|
10441
|
-
"description": "CSS aspect-ratio value such as \"1/1\" or \"4/3\"."
|
|
12189
|
+
"items": {
|
|
12190
|
+
"type": "{ name: string; time: string }[]",
|
|
12191
|
+
"default": "[]",
|
|
12192
|
+
"description": "Prayers in display order; time is shown as-is, e.g. \"05:12\"."
|
|
10442
12193
|
},
|
|
10443
|
-
"
|
|
12194
|
+
"next": {
|
|
10444
12195
|
"type": "number",
|
|
10445
|
-
"
|
|
10446
|
-
|
|
12196
|
+
"description": "Index in items of the next prayer; sets aria-current on it."
|
|
12197
|
+
},
|
|
12198
|
+
"size": {
|
|
12199
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
12200
|
+
"values": [
|
|
12201
|
+
"xs",
|
|
12202
|
+
"sm",
|
|
12203
|
+
"md",
|
|
12204
|
+
"lg",
|
|
12205
|
+
"xl"
|
|
12206
|
+
],
|
|
12207
|
+
"default": "md",
|
|
12208
|
+
"description": "Scales padding, text and avatars."
|
|
10447
12209
|
}
|
|
10448
12210
|
}
|
|
10449
12211
|
},
|
|
10450
12212
|
{
|
|
10451
|
-
"name": "
|
|
10452
|
-
"tag": "
|
|
10453
|
-
"group": "
|
|
10454
|
-
"description": "
|
|
12213
|
+
"name": "RamadanTracker",
|
|
12214
|
+
"tag": "UiRamadanTracker",
|
|
12215
|
+
"group": "domain",
|
|
12216
|
+
"description": "Thirty-day Ramadan progress strip; the last ten days and odd nights are marked.",
|
|
10455
12217
|
"props": {
|
|
10456
|
-
"
|
|
10457
|
-
"type": "string[]",
|
|
10458
|
-
"required": true,
|
|
10459
|
-
"default": [],
|
|
10460
|
-
"description": "Image URLs. The first one is shown initially; clicking a thumbnail switches the main image."
|
|
10461
|
-
},
|
|
10462
|
-
"alt": {
|
|
10463
|
-
"type": "string",
|
|
10464
|
-
"default": "",
|
|
10465
|
-
"description": "Accessible description of the main image."
|
|
10466
|
-
},
|
|
10467
|
-
"index": {
|
|
12218
|
+
"day": {
|
|
10468
12219
|
"type": "number",
|
|
10469
|
-
"
|
|
10470
|
-
|
|
10471
|
-
"labels": {
|
|
10472
|
-
"type": "{ photo?: string }",
|
|
10473
|
-
"default": "{ photo: 'Photo' }",
|
|
10474
|
-
"description": "Override the thumbnail aria-label prefix."
|
|
12220
|
+
"required": true,
|
|
12221
|
+
"description": "Current day 1-30. Earlier days render as past, later days as upcoming."
|
|
10475
12222
|
},
|
|
10476
12223
|
"size": {
|
|
10477
12224
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10483,47 +12230,36 @@
|
|
|
10483
12230
|
"xl"
|
|
10484
12231
|
],
|
|
10485
12232
|
"default": "md",
|
|
10486
|
-
"description": "
|
|
12233
|
+
"description": "Scales padding, text and avatars."
|
|
10487
12234
|
}
|
|
10488
12235
|
},
|
|
10489
|
-
"events": {
|
|
10490
|
-
"change": "Called with the new image index when a thumbnail is clicked."
|
|
10491
|
-
},
|
|
10492
12236
|
"notes": [
|
|
10493
|
-
"
|
|
12237
|
+
"Exposed as role=\"img\" with aria-label \"Day N of 30\"."
|
|
10494
12238
|
]
|
|
10495
12239
|
},
|
|
10496
12240
|
{
|
|
10497
|
-
"name": "
|
|
10498
|
-
"tag": "
|
|
10499
|
-
"group": "
|
|
10500
|
-
"description": "
|
|
12241
|
+
"name": "QiblaCompass",
|
|
12242
|
+
"tag": "UiQiblaCompass",
|
|
12243
|
+
"group": "domain",
|
|
12244
|
+
"description": "Compass dial with a Kaaba marker pointing to the Qibla and the bearing in degrees below it.",
|
|
10501
12245
|
"props": {
|
|
10502
|
-
"
|
|
10503
|
-
"type": "
|
|
12246
|
+
"bearing": {
|
|
12247
|
+
"type": "number",
|
|
10504
12248
|
"required": true,
|
|
10505
|
-
"default":
|
|
10506
|
-
"description": "
|
|
12249
|
+
"default": 0,
|
|
12250
|
+
"description": "Qibla bearing in degrees clockwise from true north, 0 to 360; other values wrap."
|
|
10507
12251
|
},
|
|
10508
|
-
"
|
|
12252
|
+
"heading": {
|
|
10509
12253
|
"type": "number",
|
|
10510
|
-
"
|
|
10511
|
-
|
|
10512
|
-
"autoplay": {
|
|
10513
|
-
"type": "number | boolean",
|
|
10514
|
-
"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."
|
|
12254
|
+
"default": 0,
|
|
12255
|
+
"description": "Direction the device points to, in degrees. The dial turns against it so the marker follows the real Qibla; 0 keeps north up."
|
|
10515
12256
|
},
|
|
10516
|
-
"
|
|
12257
|
+
"distance": {
|
|
10517
12258
|
"type": "string",
|
|
10518
|
-
"description": "
|
|
10519
|
-
},
|
|
10520
|
-
"labels": {
|
|
10521
|
-
"type": "{ prev?: string; next?: string; slide?: string }",
|
|
10522
|
-
"default": "{ prev: 'Previous', next: 'Next', slide: 'Slide' }",
|
|
10523
|
-
"description": "Override the aria-labels of the arrows and dots."
|
|
12259
|
+
"description": "Optional small caption under the bearing, such as \"4 210 km to the Kaaba\"."
|
|
10524
12260
|
},
|
|
10525
12261
|
"size": {
|
|
10526
|
-
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
12262
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | number",
|
|
10527
12263
|
"values": [
|
|
10528
12264
|
"xs",
|
|
10529
12265
|
"sm",
|
|
@@ -10532,196 +12268,157 @@
|
|
|
10532
12268
|
"xl"
|
|
10533
12269
|
],
|
|
10534
12270
|
"default": "md",
|
|
10535
|
-
"description": "
|
|
12271
|
+
"description": "Diameter: xs 120, sm 160, md 200, lg 250, xl 300 px; a number is used as px."
|
|
10536
12272
|
}
|
|
10537
12273
|
},
|
|
10538
|
-
"events": {
|
|
10539
|
-
"change": "Called with the new slide index on arrow, dot, keyboard (left and right arrows) and autoplay changes."
|
|
10540
|
-
},
|
|
10541
12274
|
"notes": [
|
|
10542
|
-
"
|
|
10543
|
-
"Autoplay has no visible pause button; hover or focus pauses it. Prefer a manual carousel for essential content."
|
|
12275
|
+
"Exposed as role=\"img\" with a label that states the bearing. Compute the bearing and heading yourself (geolocation and DeviceOrientation); the component only draws them."
|
|
10544
12276
|
]
|
|
10545
12277
|
},
|
|
10546
12278
|
{
|
|
10547
|
-
"name": "
|
|
10548
|
-
"tag": "
|
|
10549
|
-
"group": "
|
|
10550
|
-
"description": "
|
|
12279
|
+
"name": "BookingCard",
|
|
12280
|
+
"tag": "UiBookingCard",
|
|
12281
|
+
"group": "domain",
|
|
12282
|
+
"description": "Compact booking summary: code, status, guest, hotel, dates and total.",
|
|
10551
12283
|
"props": {
|
|
10552
|
-
"
|
|
10553
|
-
"type": "
|
|
10554
|
-
"
|
|
10555
|
-
"description": "
|
|
12284
|
+
"code": {
|
|
12285
|
+
"type": "string",
|
|
12286
|
+
"required": true,
|
|
12287
|
+
"description": "Booking reference, monospaced."
|
|
10556
12288
|
},
|
|
10557
|
-
"
|
|
10558
|
-
"type": "
|
|
10559
|
-
"
|
|
10560
|
-
|
|
12289
|
+
"status": {
|
|
12290
|
+
"type": "'Confirmed' | 'Pending' | 'Cancelled' | string",
|
|
12291
|
+
"values": [
|
|
12292
|
+
"Confirmed",
|
|
12293
|
+
"Pending",
|
|
12294
|
+
"Cancelled"
|
|
12295
|
+
],
|
|
12296
|
+
"description": "Status text. Confirmed is green, Pending amber, Cancelled red; any other value gets a neutral badge."
|
|
10561
12297
|
},
|
|
10562
|
-
"
|
|
10563
|
-
"type": "
|
|
10564
|
-
"
|
|
10565
|
-
"description": "Initial zoom level; the zoom buttons clamp it to 3..18."
|
|
12298
|
+
"guest": {
|
|
12299
|
+
"type": "string",
|
|
12300
|
+
"description": "Guest name, also drives the avatar initials."
|
|
10566
12301
|
},
|
|
10567
|
-
"
|
|
10568
|
-
"type": "
|
|
10569
|
-
"
|
|
10570
|
-
"description": "Pins. label is the tooltip, icon defaults to \"map-pin\"."
|
|
12302
|
+
"hotel": {
|
|
12303
|
+
"type": "string",
|
|
12304
|
+
"description": "Hotel name under the guest."
|
|
10571
12305
|
},
|
|
10572
|
-
"
|
|
10573
|
-
"type": "
|
|
10574
|
-
"
|
|
10575
|
-
"description": "Pixel width used to compute which tiles to load; the map element itself fills its container."
|
|
12306
|
+
"dates": {
|
|
12307
|
+
"type": "string",
|
|
12308
|
+
"description": "Preformatted date range, e.g. \"12-19 Mar\"."
|
|
10576
12309
|
},
|
|
10577
|
-
"
|
|
12310
|
+
"amount": {
|
|
10578
12311
|
"type": "number",
|
|
10579
|
-
"
|
|
10580
|
-
"description": "Height in px."
|
|
12312
|
+
"description": "Total, formatted as \"SAR 1 200\"."
|
|
10581
12313
|
},
|
|
10582
|
-
"
|
|
10583
|
-
"type": "'
|
|
12314
|
+
"size": {
|
|
12315
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
10584
12316
|
"values": [
|
|
10585
|
-
"
|
|
10586
|
-
"
|
|
12317
|
+
"xs",
|
|
12318
|
+
"sm",
|
|
12319
|
+
"md",
|
|
12320
|
+
"lg",
|
|
12321
|
+
"xl"
|
|
10587
12322
|
],
|
|
10588
|
-
"
|
|
10589
|
-
|
|
10590
|
-
"style": {
|
|
10591
|
-
"type": "string",
|
|
10592
|
-
"description": "CARTO tile style path, for example \"light_all\" or \"dark_all\". Overrides theme."
|
|
10593
|
-
},
|
|
10594
|
-
"label": {
|
|
10595
|
-
"type": "string",
|
|
10596
|
-
"default": "Map",
|
|
10597
|
-
"description": "aria-label of the map region."
|
|
10598
|
-
},
|
|
10599
|
-
"labels": {
|
|
10600
|
-
"type": "{ zoomIn?: string; zoomOut?: string }",
|
|
10601
|
-
"default": "{ zoomIn: 'Zoom in', zoomOut: 'Zoom out' }",
|
|
10602
|
-
"description": "Accessible names of the zoom buttons."
|
|
12323
|
+
"default": "md",
|
|
12324
|
+
"description": "Scales padding, text and avatars."
|
|
10603
12325
|
}
|
|
10604
|
-
}
|
|
10605
|
-
"events": {
|
|
10606
|
-
"select": "Called with the marker object when a marker is clicked.",
|
|
10607
|
-
"move": "Called with { lat, lon, zoom } while the user pans or zooms (drag, touch, wheel, double click or the +/- buttons).",
|
|
10608
|
-
"zoom": "Called with the new zoom level when it changes."
|
|
10609
|
-
},
|
|
10610
|
-
"notes": [
|
|
10611
|
-
"The center and zoom props are initial values; user panning and zooming is kept in internal state. Listen to move/zoom to track it.",
|
|
10612
|
-
"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.",
|
|
10613
|
-
"Tiles come from a third-party CDN, so it needs network access."
|
|
10614
|
-
]
|
|
12326
|
+
}
|
|
10615
12327
|
},
|
|
10616
12328
|
{
|
|
10617
|
-
"name": "
|
|
10618
|
-
"tag": "
|
|
10619
|
-
"group": "
|
|
10620
|
-
"description": "
|
|
12329
|
+
"name": "GuestCard",
|
|
12330
|
+
"tag": "UiGuestCard",
|
|
12331
|
+
"group": "domain",
|
|
12332
|
+
"description": "Guest profile card with avatar, country, stay length and tags.",
|
|
10621
12333
|
"props": {
|
|
10622
12334
|
"name": {
|
|
10623
12335
|
"type": "string",
|
|
10624
12336
|
"required": true,
|
|
10625
|
-
"description": "
|
|
12337
|
+
"description": "Guest name."
|
|
10626
12338
|
},
|
|
10627
|
-
"
|
|
12339
|
+
"country": {
|
|
10628
12340
|
"type": "string",
|
|
10629
|
-
"description": "
|
|
12341
|
+
"description": "Country shown in the subtitle."
|
|
10630
12342
|
},
|
|
10631
|
-
"
|
|
10632
|
-
"type": "
|
|
10633
|
-
"description": "
|
|
12343
|
+
"nights": {
|
|
12344
|
+
"type": "number",
|
|
12345
|
+
"description": "Number of nights, shown as \"N nights\"."
|
|
10634
12346
|
},
|
|
10635
|
-
"
|
|
10636
|
-
"type": "
|
|
10637
|
-
"default":
|
|
10638
|
-
"description": "
|
|
12347
|
+
"vip": {
|
|
12348
|
+
"type": "boolean",
|
|
12349
|
+
"default": false,
|
|
12350
|
+
"description": "Shows a VIP badge."
|
|
12351
|
+
},
|
|
12352
|
+
"tags": {
|
|
12353
|
+
"type": "string[]",
|
|
12354
|
+
"default": "[]",
|
|
12355
|
+
"description": "Preference tags, e.g. \"Halal\", \"Late check-in\"."
|
|
12356
|
+
},
|
|
12357
|
+
"size": {
|
|
12358
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
12359
|
+
"values": [
|
|
12360
|
+
"xs",
|
|
12361
|
+
"sm",
|
|
12362
|
+
"md",
|
|
12363
|
+
"lg",
|
|
12364
|
+
"xl"
|
|
12365
|
+
],
|
|
12366
|
+
"default": "md",
|
|
12367
|
+
"description": "Scales padding, text and avatars."
|
|
10639
12368
|
}
|
|
10640
|
-
},
|
|
10641
|
-
"slots": {
|
|
10642
|
-
"default": "Extra content on the right of the name row, usually action buttons."
|
|
10643
12369
|
}
|
|
10644
12370
|
},
|
|
10645
12371
|
{
|
|
10646
|
-
"name": "
|
|
10647
|
-
"tag": "
|
|
10648
|
-
"group": "
|
|
10649
|
-
"description": "
|
|
12372
|
+
"name": "RoomGrid",
|
|
12373
|
+
"tag": "UiRoomGrid",
|
|
12374
|
+
"group": "domain",
|
|
12375
|
+
"description": "Tile grid of rooms colored by housekeeping status; use for front-desk room selection.",
|
|
10650
12376
|
"props": {
|
|
10651
|
-
"
|
|
10652
|
-
"type": "{
|
|
10653
|
-
"
|
|
10654
|
-
"
|
|
10655
|
-
"description": "Conversation in order. Any role other than \"user\" renders as an assistant bubble."
|
|
10656
|
-
},
|
|
10657
|
-
"loading": {
|
|
10658
|
-
"type": "boolean",
|
|
10659
|
-
"default": false,
|
|
10660
|
-
"description": "Shows the typing dots and disables sending."
|
|
10661
|
-
},
|
|
10662
|
-
"title": {
|
|
10663
|
-
"type": "string",
|
|
10664
|
-
"default": "Assistant",
|
|
10665
|
-
"description": "Header title; also the aria-label. The header renders only when set."
|
|
12377
|
+
"rooms": {
|
|
12378
|
+
"type": "{ no: string; type: string; status: \"occupied\" | \"clean\" | \"dirty\" | \"blocked\" }[]",
|
|
12379
|
+
"default": "[]",
|
|
12380
|
+
"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)."
|
|
10666
12381
|
},
|
|
10667
|
-
"
|
|
10668
|
-
"type": "string",
|
|
10669
|
-
"
|
|
12382
|
+
"statusTones": {
|
|
12383
|
+
"type": "Record<string, 'brand' | 'sky' | 'success' | 'warning' | 'danger' | 'neutral'>",
|
|
12384
|
+
"default": "{ occupied: 'brand', clean: 'success', dirty: 'warning', blocked: 'danger' }",
|
|
12385
|
+
"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."
|
|
10670
12386
|
},
|
|
10671
|
-
"
|
|
10672
|
-
"type": "
|
|
10673
|
-
"
|
|
10674
|
-
|
|
12387
|
+
"size": {
|
|
12388
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
12389
|
+
"values": [
|
|
12390
|
+
"xs",
|
|
12391
|
+
"sm",
|
|
12392
|
+
"md",
|
|
12393
|
+
"lg",
|
|
12394
|
+
"xl"
|
|
12395
|
+
],
|
|
12396
|
+
"default": "md",
|
|
12397
|
+
"description": "Scales padding, text and avatars."
|
|
10675
12398
|
}
|
|
10676
12399
|
},
|
|
10677
12400
|
"events": {
|
|
10678
|
-
"
|
|
12401
|
+
"select": "Called with the room number (room.no) of the clicked tile."
|
|
10679
12402
|
},
|
|
10680
12403
|
"notes": [
|
|
10681
|
-
"
|
|
12404
|
+
"Each tile is a button; status is conveyed by color only, so add a legend."
|
|
10682
12405
|
]
|
|
10683
12406
|
},
|
|
10684
12407
|
{
|
|
10685
|
-
"name": "
|
|
10686
|
-
"tag": "
|
|
12408
|
+
"name": "RoomCalendar",
|
|
12409
|
+
"tag": "UiRoomCalendar",
|
|
10687
12410
|
"group": "domain",
|
|
10688
|
-
"description": "
|
|
12411
|
+
"description": "Gantt-style occupancy calendar: rooms as rows, days as columns, bookings as bars.",
|
|
10689
12412
|
"props": {
|
|
10690
|
-
"
|
|
10691
|
-
"type": "string",
|
|
10692
|
-
"required": true,
|
|
10693
|
-
"description": "Hotel name."
|
|
10694
|
-
},
|
|
10695
|
-
"image": {
|
|
10696
|
-
"type": "string",
|
|
10697
|
-
"description": "Photo URL, used as the card background image."
|
|
10698
|
-
},
|
|
10699
|
-
"tags": {
|
|
10700
|
-
"type": "string[]",
|
|
12413
|
+
"rooms": {
|
|
12414
|
+
"type": "{ no: string; bookings?: { from: number; nights: number; guest: string }[] }[]",
|
|
10701
12415
|
"default": "[]",
|
|
10702
|
-
"description": "
|
|
10703
|
-
},
|
|
10704
|
-
"stars": {
|
|
10705
|
-
"type": "number",
|
|
10706
|
-
"default": 0,
|
|
10707
|
-
"description": "Star class 0-5, rendered as repeated stars."
|
|
10708
|
-
},
|
|
10709
|
-
"distance": {
|
|
10710
|
-
"type": "string",
|
|
10711
|
-
"description": "Distance caption next to the stars, e.g. \"120 m to the Haram\"."
|
|
10712
|
-
},
|
|
10713
|
-
"rating": {
|
|
10714
|
-
"type": "string | number",
|
|
10715
|
-
"description": "Guest rating shown in a green badge, e.g. 9.2."
|
|
12416
|
+
"description": "Rooms with their bookings; from is the zero-based day index of check-in, nights its length. guest is the cell tooltip."
|
|
10716
12417
|
},
|
|
10717
|
-
"
|
|
12418
|
+
"days": {
|
|
10718
12419
|
"type": "number",
|
|
10719
|
-
"
|
|
10720
|
-
|
|
10721
|
-
"night": {
|
|
10722
|
-
"type": "string",
|
|
10723
|
-
"default": "night",
|
|
10724
|
-
"description": "Unit after \"SAR /\", e.g. \"night\"."
|
|
12420
|
+
"default": 14,
|
|
12421
|
+
"description": "Number of day columns, labelled 1..days."
|
|
10725
12422
|
},
|
|
10726
12423
|
"size": {
|
|
10727
12424
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10737,38 +12434,47 @@
|
|
|
10737
12434
|
}
|
|
10738
12435
|
},
|
|
10739
12436
|
"notes": [
|
|
10740
|
-
"
|
|
10741
|
-
"Wrap in a clickable element yourself; the card has no click handler."
|
|
12437
|
+
"Day headers are plain numbers 1..days; offset them yourself for a month view."
|
|
10742
12438
|
]
|
|
10743
12439
|
},
|
|
10744
12440
|
{
|
|
10745
|
-
"name": "
|
|
10746
|
-
"tag": "
|
|
12441
|
+
"name": "LeadCard",
|
|
12442
|
+
"tag": "UiLeadCard",
|
|
10747
12443
|
"group": "domain",
|
|
10748
|
-
"description": "
|
|
12444
|
+
"description": "CRM lead card with avatar, code, phone and amount.",
|
|
10749
12445
|
"props": {
|
|
10750
12446
|
"name": {
|
|
10751
12447
|
"type": "string",
|
|
10752
12448
|
"required": true,
|
|
10753
|
-
"description": "
|
|
12449
|
+
"description": "Lead name."
|
|
10754
12450
|
},
|
|
10755
|
-
"
|
|
12451
|
+
"code": {
|
|
10756
12452
|
"type": "string",
|
|
10757
|
-
"description": "
|
|
12453
|
+
"description": "Lead or deal code under the name, monospaced."
|
|
10758
12454
|
},
|
|
10759
|
-
"
|
|
10760
|
-
"type": "
|
|
10761
|
-
"description": "
|
|
12455
|
+
"tag": {
|
|
12456
|
+
"type": "string",
|
|
12457
|
+
"description": "Optional badge text, e.g. a source or status."
|
|
10762
12458
|
},
|
|
10763
|
-
"
|
|
10764
|
-
"type": "
|
|
10765
|
-
"
|
|
10766
|
-
|
|
12459
|
+
"tone": {
|
|
12460
|
+
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
12461
|
+
"values": [
|
|
12462
|
+
"default",
|
|
12463
|
+
"brand",
|
|
12464
|
+
"success",
|
|
12465
|
+
"warning",
|
|
12466
|
+
"danger",
|
|
12467
|
+
"info"
|
|
12468
|
+
],
|
|
12469
|
+
"description": "Badge tone for tag; neutral when omitted."
|
|
10767
12470
|
},
|
|
10768
|
-
"
|
|
10769
|
-
"type": "
|
|
10770
|
-
"
|
|
10771
|
-
|
|
12471
|
+
"phone": {
|
|
12472
|
+
"type": "string",
|
|
12473
|
+
"description": "Phone number with a phone icon."
|
|
12474
|
+
},
|
|
12475
|
+
"amount": {
|
|
12476
|
+
"type": "string | number",
|
|
12477
|
+
"description": "Amount shown on the right, rendered as given (format it yourself)."
|
|
10772
12478
|
},
|
|
10773
12479
|
"size": {
|
|
10774
12480
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10782,29 +12488,52 @@
|
|
|
10782
12488
|
"default": "md",
|
|
10783
12489
|
"description": "Scales padding, text and avatars."
|
|
10784
12490
|
}
|
|
10785
|
-
}
|
|
10786
|
-
"slots": {
|
|
10787
|
-
"actions": "Footer actions, usually Buttons."
|
|
10788
|
-
},
|
|
10789
|
-
"notes": [
|
|
10790
|
-
"A fixed \"360°\" badge is always shown.",
|
|
10791
|
-
"With seats = 0 or missing the bar is empty (0%) and the meta reads \"0/0\"."
|
|
10792
|
-
]
|
|
12491
|
+
}
|
|
10793
12492
|
},
|
|
10794
12493
|
{
|
|
10795
|
-
"name": "
|
|
10796
|
-
"tag": "
|
|
12494
|
+
"name": "DealCard",
|
|
12495
|
+
"tag": "UiDealCard",
|
|
10797
12496
|
"group": "domain",
|
|
10798
|
-
"description": "
|
|
12497
|
+
"description": "CRM deal card with stage badge, amount, win probability and owner; the card type inside PipelineBoard.",
|
|
10799
12498
|
"props": {
|
|
10800
|
-
"
|
|
10801
|
-
"type": "
|
|
10802
|
-
"
|
|
10803
|
-
"description": "
|
|
12499
|
+
"title": {
|
|
12500
|
+
"type": "string",
|
|
12501
|
+
"required": true,
|
|
12502
|
+
"description": "Deal title."
|
|
10804
12503
|
},
|
|
10805
|
-
"
|
|
12504
|
+
"stage": {
|
|
12505
|
+
"type": "string",
|
|
12506
|
+
"description": "Stage badge text; no badge when omitted."
|
|
12507
|
+
},
|
|
12508
|
+
"tone": {
|
|
12509
|
+
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
12510
|
+
"values": [
|
|
12511
|
+
"default",
|
|
12512
|
+
"brand",
|
|
12513
|
+
"success",
|
|
12514
|
+
"warning",
|
|
12515
|
+
"danger",
|
|
12516
|
+
"info"
|
|
12517
|
+
],
|
|
12518
|
+
"default": "info",
|
|
12519
|
+
"description": "Badge tone for the stage."
|
|
12520
|
+
},
|
|
12521
|
+
"amount": {
|
|
12522
|
+
"type": "string | number",
|
|
12523
|
+
"description": "Large amount, rendered as given."
|
|
12524
|
+
},
|
|
12525
|
+
"probability": {
|
|
10806
12526
|
"type": "number",
|
|
10807
|
-
"
|
|
12527
|
+
"default": 0,
|
|
12528
|
+
"description": "Win probability 0-100, shown as a progress bar and percent."
|
|
12529
|
+
},
|
|
12530
|
+
"owner": {
|
|
12531
|
+
"type": "string",
|
|
12532
|
+
"description": "Owner name with avatar."
|
|
12533
|
+
},
|
|
12534
|
+
"due": {
|
|
12535
|
+
"type": "string",
|
|
12536
|
+
"description": "Due date caption, right aligned."
|
|
10808
12537
|
},
|
|
10809
12538
|
"size": {
|
|
10810
12539
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10821,15 +12550,15 @@
|
|
|
10821
12550
|
}
|
|
10822
12551
|
},
|
|
10823
12552
|
{
|
|
10824
|
-
"name": "
|
|
10825
|
-
"tag": "
|
|
12553
|
+
"name": "PipelineBoard",
|
|
12554
|
+
"tag": "UiPipelineBoard",
|
|
10826
12555
|
"group": "domain",
|
|
10827
|
-
"description": "
|
|
12556
|
+
"description": "Horizontally scrolling kanban pipeline of stage columns filled with DealCards.",
|
|
10828
12557
|
"props": {
|
|
10829
|
-
"
|
|
10830
|
-
"type": "number",
|
|
10831
|
-
"
|
|
10832
|
-
"description": "
|
|
12558
|
+
"stages": {
|
|
12559
|
+
"type": "{ id: string | number; title: string; cards: DealCardProps[] }[]",
|
|
12560
|
+
"default": "[]",
|
|
12561
|
+
"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)."
|
|
10833
12562
|
},
|
|
10834
12563
|
"size": {
|
|
10835
12564
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10844,45 +12573,49 @@
|
|
|
10844
12573
|
"description": "Scales padding, text and avatars."
|
|
10845
12574
|
}
|
|
10846
12575
|
},
|
|
12576
|
+
"events": {
|
|
12577
|
+
"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."
|
|
12578
|
+
},
|
|
10847
12579
|
"notes": [
|
|
10848
|
-
"
|
|
12580
|
+
"Drag and drop is enabled only when a move handler is passed; without it the board renders and behaves as before.",
|
|
12581
|
+
"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.",
|
|
12582
|
+
"Cards are fixed to DealCard; for custom cards compose KanbanColumn and KanbanCard."
|
|
10849
12583
|
]
|
|
10850
12584
|
},
|
|
10851
12585
|
{
|
|
10852
|
-
"name": "
|
|
10853
|
-
"tag": "
|
|
12586
|
+
"name": "ContactPanel",
|
|
12587
|
+
"tag": "UiContactPanel",
|
|
10854
12588
|
"group": "domain",
|
|
10855
|
-
"description": "
|
|
12589
|
+
"description": "Contact detail card with avatar, role, contact fields and Call / Message buttons.",
|
|
10856
12590
|
"props": {
|
|
10857
|
-
"
|
|
12591
|
+
"name": {
|
|
10858
12592
|
"type": "string",
|
|
10859
12593
|
"required": true,
|
|
10860
|
-
"description": "
|
|
12594
|
+
"description": "Contact name."
|
|
10861
12595
|
},
|
|
10862
|
-
"
|
|
10863
|
-
"type": "
|
|
10864
|
-
"
|
|
10865
|
-
"Confirmed",
|
|
10866
|
-
"Pending",
|
|
10867
|
-
"Cancelled"
|
|
10868
|
-
],
|
|
10869
|
-
"description": "Status text. Confirmed is green, Pending amber, Cancelled red; any other value gets a neutral badge."
|
|
12596
|
+
"role": {
|
|
12597
|
+
"type": "string",
|
|
12598
|
+
"description": "Role or company under the name."
|
|
10870
12599
|
},
|
|
10871
|
-
"
|
|
12600
|
+
"phone": {
|
|
10872
12601
|
"type": "string",
|
|
10873
|
-
"description": "
|
|
12602
|
+
"description": "Phone row."
|
|
10874
12603
|
},
|
|
10875
|
-
"
|
|
12604
|
+
"telegram": {
|
|
10876
12605
|
"type": "string",
|
|
10877
|
-
"description": "
|
|
12606
|
+
"description": "Telegram handle row."
|
|
10878
12607
|
},
|
|
10879
|
-
"
|
|
12608
|
+
"email": {
|
|
10880
12609
|
"type": "string",
|
|
10881
|
-
"description": "
|
|
12610
|
+
"description": "Email row."
|
|
10882
12611
|
},
|
|
10883
|
-
"
|
|
10884
|
-
"type": "
|
|
10885
|
-
"description": "
|
|
12612
|
+
"city": {
|
|
12613
|
+
"type": "string",
|
|
12614
|
+
"description": "City row."
|
|
12615
|
+
},
|
|
12616
|
+
"labels": {
|
|
12617
|
+
"type": "{ call?: string; message?: string }",
|
|
12618
|
+
"description": "Override built-in English strings."
|
|
10886
12619
|
},
|
|
10887
12620
|
"size": {
|
|
10888
12621
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10896,36 +12629,26 @@
|
|
|
10896
12629
|
"default": "md",
|
|
10897
12630
|
"description": "Scales padding, text and avatars."
|
|
10898
12631
|
}
|
|
12632
|
+
},
|
|
12633
|
+
"events": {
|
|
12634
|
+
"call": "Called with no arguments when Call is clicked.",
|
|
12635
|
+
"message": "Called with no arguments when Message is clicked."
|
|
10899
12636
|
}
|
|
10900
12637
|
},
|
|
10901
12638
|
{
|
|
10902
|
-
"name": "
|
|
10903
|
-
"tag": "
|
|
12639
|
+
"name": "KanbanColumn",
|
|
12640
|
+
"tag": "UiKanbanColumn",
|
|
10904
12641
|
"group": "domain",
|
|
10905
|
-
"description": "
|
|
12642
|
+
"description": "Single kanban column with a title, count badge and stacked cards.",
|
|
10906
12643
|
"props": {
|
|
10907
|
-
"
|
|
12644
|
+
"title": {
|
|
10908
12645
|
"type": "string",
|
|
10909
12646
|
"required": true,
|
|
10910
|
-
"description": "
|
|
10911
|
-
},
|
|
10912
|
-
"country": {
|
|
10913
|
-
"type": "string",
|
|
10914
|
-
"description": "Country shown in the subtitle."
|
|
12647
|
+
"description": "Column heading."
|
|
10915
12648
|
},
|
|
10916
|
-
"
|
|
12649
|
+
"count": {
|
|
10917
12650
|
"type": "number",
|
|
10918
|
-
"description": "
|
|
10919
|
-
},
|
|
10920
|
-
"vip": {
|
|
10921
|
-
"type": "boolean",
|
|
10922
|
-
"default": false,
|
|
10923
|
-
"description": "Shows a VIP badge."
|
|
10924
|
-
},
|
|
10925
|
-
"tags": {
|
|
10926
|
-
"type": "string[]",
|
|
10927
|
-
"default": "[]",
|
|
10928
|
-
"description": "Preference tags, e.g. \"Halal\", \"Late check-in\"."
|
|
12651
|
+
"description": "Count badge; defaults to the number of children."
|
|
10929
12652
|
},
|
|
10930
12653
|
"size": {
|
|
10931
12654
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10939,23 +12662,41 @@
|
|
|
10939
12662
|
"default": "md",
|
|
10940
12663
|
"description": "Scales padding, text and avatars."
|
|
10941
12664
|
}
|
|
12665
|
+
},
|
|
12666
|
+
"slots": {
|
|
12667
|
+
"default": "Cards, usually KanbanCard or DealCard. React passes them as children."
|
|
10942
12668
|
}
|
|
10943
12669
|
},
|
|
10944
12670
|
{
|
|
10945
|
-
"name": "
|
|
10946
|
-
"tag": "
|
|
12671
|
+
"name": "KanbanCard",
|
|
12672
|
+
"tag": "UiKanbanCard",
|
|
10947
12673
|
"group": "domain",
|
|
10948
|
-
"description": "
|
|
12674
|
+
"description": "Simple kanban card with title, subtitle, free content and an optional tag.",
|
|
10949
12675
|
"props": {
|
|
10950
|
-
"
|
|
10951
|
-
"type": "
|
|
10952
|
-
"
|
|
10953
|
-
"description": "
|
|
12676
|
+
"title": {
|
|
12677
|
+
"type": "string",
|
|
12678
|
+
"required": true,
|
|
12679
|
+
"description": "Card title."
|
|
10954
12680
|
},
|
|
10955
|
-
"
|
|
10956
|
-
"type": "
|
|
10957
|
-
"
|
|
10958
|
-
|
|
12681
|
+
"sub": {
|
|
12682
|
+
"type": "string",
|
|
12683
|
+
"description": "Subtitle under the title."
|
|
12684
|
+
},
|
|
12685
|
+
"tag": {
|
|
12686
|
+
"type": "string",
|
|
12687
|
+
"description": "Badge at the bottom."
|
|
12688
|
+
},
|
|
12689
|
+
"tone": {
|
|
12690
|
+
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
12691
|
+
"values": [
|
|
12692
|
+
"default",
|
|
12693
|
+
"brand",
|
|
12694
|
+
"success",
|
|
12695
|
+
"warning",
|
|
12696
|
+
"danger",
|
|
12697
|
+
"info"
|
|
12698
|
+
],
|
|
12699
|
+
"description": "Badge tone for tag."
|
|
10959
12700
|
},
|
|
10960
12701
|
"size": {
|
|
10961
12702
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -10970,28 +12711,37 @@
|
|
|
10970
12711
|
"description": "Scales padding, text and avatars."
|
|
10971
12712
|
}
|
|
10972
12713
|
},
|
|
10973
|
-
"
|
|
10974
|
-
"
|
|
10975
|
-
}
|
|
10976
|
-
"notes": [
|
|
10977
|
-
"Each tile is a button; status is conveyed by color only, so add a legend."
|
|
10978
|
-
]
|
|
12714
|
+
"slots": {
|
|
12715
|
+
"default": "Extra content between the subtitle and the tag. React passes it as children."
|
|
12716
|
+
}
|
|
10979
12717
|
},
|
|
10980
12718
|
{
|
|
10981
|
-
"name": "
|
|
10982
|
-
"tag": "
|
|
12719
|
+
"name": "CallRow",
|
|
12720
|
+
"tag": "UiCallRow",
|
|
10983
12721
|
"group": "domain",
|
|
10984
|
-
"description": "
|
|
12722
|
+
"description": "One-line call log row with avatar, status, duration and a play button.",
|
|
10985
12723
|
"props": {
|
|
10986
|
-
"
|
|
10987
|
-
"type": "
|
|
10988
|
-
"
|
|
10989
|
-
"description": "
|
|
12724
|
+
"name": {
|
|
12725
|
+
"type": "string",
|
|
12726
|
+
"required": true,
|
|
12727
|
+
"description": "Caller name."
|
|
10990
12728
|
},
|
|
10991
|
-
"
|
|
12729
|
+
"status": {
|
|
12730
|
+
"type": "string",
|
|
12731
|
+
"description": "Status text before the duration, e.g. \"Answered\"."
|
|
12732
|
+
},
|
|
12733
|
+
"duration": {
|
|
10992
12734
|
"type": "number",
|
|
10993
|
-
"
|
|
10994
|
-
|
|
12735
|
+
"description": "Duration in seconds, formatted as \"3 m 05 s\" (units from durUnits); shows a dash when missing."
|
|
12736
|
+
},
|
|
12737
|
+
"durUnits": {
|
|
12738
|
+
"type": "{ m?: string; s?: string }",
|
|
12739
|
+
"default": "{ m: 'm', s: 's' }",
|
|
12740
|
+
"description": "Minute and second unit labels for localized durations, e.g. { m: \"min\", s: \"sec\" }."
|
|
12741
|
+
},
|
|
12742
|
+
"labels": {
|
|
12743
|
+
"type": "{ play?: string }",
|
|
12744
|
+
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
10995
12745
|
},
|
|
10996
12746
|
"size": {
|
|
10997
12747
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -11006,48 +12756,57 @@
|
|
|
11006
12756
|
"description": "Scales padding, text and avatars."
|
|
11007
12757
|
}
|
|
11008
12758
|
},
|
|
11009
|
-
"
|
|
11010
|
-
"
|
|
11011
|
-
|
|
12759
|
+
"events": {
|
|
12760
|
+
"play": "Called with no arguments when the play button is clicked."
|
|
12761
|
+
}
|
|
11012
12762
|
},
|
|
11013
12763
|
{
|
|
11014
|
-
"name": "
|
|
11015
|
-
"tag": "
|
|
12764
|
+
"name": "CallCard",
|
|
12765
|
+
"tag": "UiCallCard",
|
|
11016
12766
|
"group": "domain",
|
|
11017
|
-
"description": "
|
|
12767
|
+
"description": "Call recording card with status badge, a playback progress bar and duration.",
|
|
11018
12768
|
"props": {
|
|
11019
12769
|
"name": {
|
|
11020
12770
|
"type": "string",
|
|
11021
12771
|
"required": true,
|
|
11022
|
-
"description": "
|
|
11023
|
-
},
|
|
11024
|
-
"code": {
|
|
11025
|
-
"type": "string",
|
|
11026
|
-
"description": "Lead or deal code under the name, monospaced."
|
|
12772
|
+
"description": "Caller name."
|
|
11027
12773
|
},
|
|
11028
|
-
"
|
|
12774
|
+
"phone": {
|
|
11029
12775
|
"type": "string",
|
|
11030
|
-
"description": "
|
|
12776
|
+
"description": "Phone number."
|
|
11031
12777
|
},
|
|
11032
|
-
"
|
|
11033
|
-
"type": "'
|
|
12778
|
+
"status": {
|
|
12779
|
+
"type": "'Answered' | 'Missed' | 'Voicemail' | 'Busy' | 'Declined' | string",
|
|
11034
12780
|
"values": [
|
|
11035
|
-
"
|
|
11036
|
-
"
|
|
11037
|
-
"
|
|
11038
|
-
"
|
|
11039
|
-
"
|
|
11040
|
-
"info"
|
|
12781
|
+
"Answered",
|
|
12782
|
+
"Missed",
|
|
12783
|
+
"Voicemail",
|
|
12784
|
+
"Busy",
|
|
12785
|
+
"Declined"
|
|
11041
12786
|
],
|
|
11042
|
-
"description": "Badge
|
|
12787
|
+
"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."
|
|
11043
12788
|
},
|
|
11044
|
-
"
|
|
11045
|
-
"type": "string",
|
|
11046
|
-
"description": "
|
|
12789
|
+
"statusTones": {
|
|
12790
|
+
"type": "Record<string, 'success' | 'danger' | 'warning' | 'info' | 'brand'>",
|
|
12791
|
+
"description": "Extra or overriding status to tone mapping, e.g. { \"No answer\": \"warning\" }."
|
|
11047
12792
|
},
|
|
11048
|
-
"
|
|
11049
|
-
"type": "
|
|
11050
|
-
"
|
|
12793
|
+
"progress": {
|
|
12794
|
+
"type": "number",
|
|
12795
|
+
"default": 0,
|
|
12796
|
+
"description": "Playback progress 0-100."
|
|
12797
|
+
},
|
|
12798
|
+
"duration": {
|
|
12799
|
+
"type": "number",
|
|
12800
|
+
"description": "Duration in seconds."
|
|
12801
|
+
},
|
|
12802
|
+
"durUnits": {
|
|
12803
|
+
"type": "{ m?: string; s?: string }",
|
|
12804
|
+
"default": "{ m: 'm', s: 's' }",
|
|
12805
|
+
"description": "Minute and second unit labels for the duration."
|
|
12806
|
+
},
|
|
12807
|
+
"labels": {
|
|
12808
|
+
"type": "{ play?: string }",
|
|
12809
|
+
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
11051
12810
|
},
|
|
11052
12811
|
"size": {
|
|
11053
12812
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -11061,52 +12820,38 @@
|
|
|
11061
12820
|
"default": "md",
|
|
11062
12821
|
"description": "Scales padding, text and avatars."
|
|
11063
12822
|
}
|
|
12823
|
+
},
|
|
12824
|
+
"events": {
|
|
12825
|
+
"play": "Called with no arguments when the play button is clicked."
|
|
11064
12826
|
}
|
|
11065
12827
|
},
|
|
11066
12828
|
{
|
|
11067
|
-
"name": "
|
|
11068
|
-
"tag": "
|
|
12829
|
+
"name": "IncomingCall",
|
|
12830
|
+
"tag": "UiIncomingCall",
|
|
11069
12831
|
"group": "domain",
|
|
11070
|
-
"description": "
|
|
12832
|
+
"description": "Glass banner for an incoming call with Decline and Answer buttons.",
|
|
11071
12833
|
"props": {
|
|
11072
|
-
"
|
|
12834
|
+
"name": {
|
|
11073
12835
|
"type": "string",
|
|
11074
12836
|
"required": true,
|
|
11075
|
-
"description": "
|
|
12837
|
+
"description": "Caller name."
|
|
11076
12838
|
},
|
|
11077
|
-
"
|
|
12839
|
+
"phone": {
|
|
11078
12840
|
"type": "string",
|
|
11079
|
-
"description": "
|
|
11080
|
-
},
|
|
11081
|
-
"tone": {
|
|
11082
|
-
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
11083
|
-
"values": [
|
|
11084
|
-
"default",
|
|
11085
|
-
"brand",
|
|
11086
|
-
"success",
|
|
11087
|
-
"warning",
|
|
11088
|
-
"danger",
|
|
11089
|
-
"info"
|
|
11090
|
-
],
|
|
11091
|
-
"default": "info",
|
|
11092
|
-
"description": "Badge tone for the stage."
|
|
11093
|
-
},
|
|
11094
|
-
"amount": {
|
|
11095
|
-
"type": "string | number",
|
|
11096
|
-
"description": "Large amount, rendered as given."
|
|
11097
|
-
},
|
|
11098
|
-
"probability": {
|
|
11099
|
-
"type": "number",
|
|
11100
|
-
"default": 0,
|
|
11101
|
-
"description": "Win probability 0-100, shown as a progress bar and percent."
|
|
12841
|
+
"description": "Caller number."
|
|
11102
12842
|
},
|
|
11103
|
-
"
|
|
12843
|
+
"label": {
|
|
11104
12844
|
"type": "string",
|
|
11105
|
-
"
|
|
12845
|
+
"default": "Incoming call",
|
|
12846
|
+
"description": "Caption above the name."
|
|
11106
12847
|
},
|
|
11107
|
-
"
|
|
11108
|
-
"type": "
|
|
11109
|
-
"description": "
|
|
12848
|
+
"onDecline": {
|
|
12849
|
+
"type": "() => void",
|
|
12850
|
+
"description": "Decline button click."
|
|
12851
|
+
},
|
|
12852
|
+
"onAnswer": {
|
|
12853
|
+
"type": "() => void",
|
|
12854
|
+
"description": "Answer button click."
|
|
11110
12855
|
},
|
|
11111
12856
|
"size": {
|
|
11112
12857
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -11120,75 +12865,148 @@
|
|
|
11120
12865
|
"default": "md",
|
|
11121
12866
|
"description": "Scales padding, text and avatars."
|
|
11122
12867
|
}
|
|
12868
|
+
},
|
|
12869
|
+
"events": {
|
|
12870
|
+
"decline": "Decline button clicked.",
|
|
12871
|
+
"answer": "Answer button clicked."
|
|
11123
12872
|
}
|
|
11124
12873
|
},
|
|
11125
12874
|
{
|
|
11126
|
-
"name": "
|
|
11127
|
-
"tag": "
|
|
12875
|
+
"name": "AuthSplit",
|
|
12876
|
+
"tag": "UiAuthSplit",
|
|
11128
12877
|
"group": "domain",
|
|
11129
|
-
"description": "
|
|
12878
|
+
"description": "Two-column sign-in layout with a brand panel on the left and the form on the right.",
|
|
11130
12879
|
"props": {
|
|
11131
|
-
"
|
|
11132
|
-
"type": "
|
|
11133
|
-
"
|
|
11134
|
-
"description": "
|
|
12880
|
+
"title": {
|
|
12881
|
+
"type": "string",
|
|
12882
|
+
"required": true,
|
|
12883
|
+
"description": "Form heading."
|
|
11135
12884
|
},
|
|
11136
|
-
"
|
|
11137
|
-
"type": "
|
|
11138
|
-
"
|
|
11139
|
-
|
|
11140
|
-
|
|
11141
|
-
|
|
11142
|
-
|
|
11143
|
-
|
|
11144
|
-
|
|
11145
|
-
"
|
|
11146
|
-
"description": "
|
|
12885
|
+
"subtitle": {
|
|
12886
|
+
"type": "string",
|
|
12887
|
+
"description": "Text under the heading."
|
|
12888
|
+
},
|
|
12889
|
+
"logo": {
|
|
12890
|
+
"type": "VNode",
|
|
12891
|
+
"description": "Logo node above the heading."
|
|
12892
|
+
},
|
|
12893
|
+
"aside": {
|
|
12894
|
+
"type": "VNode",
|
|
12895
|
+
"description": "Content of the left brand panel (hidden on narrow screens)."
|
|
11147
12896
|
}
|
|
11148
12897
|
},
|
|
11149
|
-
"
|
|
11150
|
-
"
|
|
12898
|
+
"slots": {
|
|
12899
|
+
"default": "Form content under the heading. React passes it as children."
|
|
11151
12900
|
},
|
|
11152
12901
|
"notes": [
|
|
11153
|
-
"
|
|
11154
|
-
"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.",
|
|
11155
|
-
"Cards are fixed to DealCard; for custom cards compose KanbanColumn and KanbanCard."
|
|
12902
|
+
"logo and aside are props in both Vue and React (pass a VNode / element)."
|
|
11156
12903
|
]
|
|
11157
12904
|
},
|
|
11158
12905
|
{
|
|
11159
|
-
"name": "
|
|
11160
|
-
"tag": "
|
|
12906
|
+
"name": "AuthShowcase",
|
|
12907
|
+
"tag": "UiAuthShowcase",
|
|
11161
12908
|
"group": "domain",
|
|
11162
|
-
"description": "
|
|
12909
|
+
"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.",
|
|
11163
12910
|
"props": {
|
|
11164
|
-
"
|
|
12911
|
+
"variant": {
|
|
12912
|
+
"type": "'photo' | 'light' | 'tint'",
|
|
12913
|
+
"values": [
|
|
12914
|
+
"photo",
|
|
12915
|
+
"light",
|
|
12916
|
+
"tint"
|
|
12917
|
+
],
|
|
12918
|
+
"default": "photo",
|
|
12919
|
+
"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."
|
|
12920
|
+
},
|
|
12921
|
+
"title": {
|
|
11165
12922
|
"type": "string",
|
|
11166
12923
|
"required": true,
|
|
11167
|
-
"description": "
|
|
12924
|
+
"description": "Form heading."
|
|
11168
12925
|
},
|
|
11169
|
-
"
|
|
12926
|
+
"subtitle": {
|
|
11170
12927
|
"type": "string",
|
|
11171
|
-
"description": "
|
|
12928
|
+
"description": "Text under the heading."
|
|
11172
12929
|
},
|
|
11173
|
-
"
|
|
12930
|
+
"logo": {
|
|
12931
|
+
"type": "VNode",
|
|
12932
|
+
"description": "Logo node above the heading."
|
|
12933
|
+
},
|
|
12934
|
+
"footer": {
|
|
12935
|
+
"type": "VNode",
|
|
12936
|
+
"description": "Content under the fields, for example \"No account? Sign up\"."
|
|
12937
|
+
},
|
|
12938
|
+
"image": {
|
|
11174
12939
|
"type": "string",
|
|
11175
|
-
"description": "
|
|
12940
|
+
"description": "URL of the media image. Without it the panel shows an accent gradient."
|
|
11176
12941
|
},
|
|
11177
|
-
"
|
|
12942
|
+
"headline": {
|
|
11178
12943
|
"type": "string",
|
|
11179
|
-
"description": "
|
|
12944
|
+
"description": "Large text on the media panel (photo and tint)."
|
|
11180
12945
|
},
|
|
11181
|
-
"
|
|
12946
|
+
"caption": {
|
|
11182
12947
|
"type": "string",
|
|
11183
|
-
"description": "
|
|
12948
|
+
"description": "Small text on the media panel (photo) or inside the glass bar (light, tint)."
|
|
11184
12949
|
},
|
|
11185
|
-
"
|
|
12950
|
+
"quote": {
|
|
11186
12951
|
"type": "string",
|
|
11187
|
-
"description": "
|
|
12952
|
+
"description": "Line at the bottom of the media panel; photo only."
|
|
12953
|
+
},
|
|
12954
|
+
"chips": {
|
|
12955
|
+
"type": "string[]",
|
|
12956
|
+
"description": "Pill labels inside the glass bar; light and tint."
|
|
12957
|
+
},
|
|
12958
|
+
"people": {
|
|
12959
|
+
"type": "{ name: string; src?: string }[]",
|
|
12960
|
+
"description": "Avatars: floating on the photo, stacked in the proof pill."
|
|
12961
|
+
},
|
|
12962
|
+
"proof": {
|
|
12963
|
+
"type": "string",
|
|
12964
|
+
"description": "Social-proof title, e.g. \"Join 20k+ users\"; light and tint. Shows the pill under the form."
|
|
12965
|
+
},
|
|
12966
|
+
"proofHint": {
|
|
12967
|
+
"type": "string",
|
|
12968
|
+
"description": "Second line of the proof pill."
|
|
12969
|
+
}
|
|
12970
|
+
},
|
|
12971
|
+
"slots": {
|
|
12972
|
+
"default": "Form fields and buttons. React passes them as children."
|
|
12973
|
+
},
|
|
12974
|
+
"notes": [
|
|
12975
|
+
"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)."
|
|
12976
|
+
]
|
|
12977
|
+
},
|
|
12978
|
+
{
|
|
12979
|
+
"name": "SocialAuth",
|
|
12980
|
+
"tag": "UiSocialAuth",
|
|
12981
|
+
"group": "domain",
|
|
12982
|
+
"description": "Continue with Google and Apple buttons with an \"or\" divider. Place it under the sign-in form.",
|
|
12983
|
+
"props": {
|
|
12984
|
+
"providers": {
|
|
12985
|
+
"type": "('google' | 'apple')[]",
|
|
12986
|
+
"default": "['google', 'apple']",
|
|
12987
|
+
"description": "Which buttons to show, in order."
|
|
12988
|
+
},
|
|
12989
|
+
"variant": {
|
|
12990
|
+
"type": "'stack' | 'icons'",
|
|
12991
|
+
"values": [
|
|
12992
|
+
"stack",
|
|
12993
|
+
"icons"
|
|
12994
|
+
],
|
|
12995
|
+
"default": "stack",
|
|
12996
|
+
"description": "'stack': full-width buttons with a label, one per row. 'icons': a row of square icon buttons."
|
|
12997
|
+
},
|
|
12998
|
+
"divider": {
|
|
12999
|
+
"type": "boolean",
|
|
13000
|
+
"default": "true",
|
|
13001
|
+
"description": "Show the \"or\" line above the buttons."
|
|
11188
13002
|
},
|
|
11189
13003
|
"labels": {
|
|
11190
|
-
"type": "{
|
|
11191
|
-
"description": "
|
|
13004
|
+
"type": "{ google?: string; apple?: string }",
|
|
13005
|
+
"description": "Provider names inserted into \"Continue with {provider}\"."
|
|
13006
|
+
},
|
|
13007
|
+
"onSelect": {
|
|
13008
|
+
"type": "(provider: 'google' | 'apple') => void",
|
|
13009
|
+
"description": "Called with the clicked provider. Start your OAuth flow here."
|
|
11192
13010
|
},
|
|
11193
13011
|
"size": {
|
|
11194
13012
|
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
@@ -11204,408 +13022,407 @@
|
|
|
11204
13022
|
}
|
|
11205
13023
|
},
|
|
11206
13024
|
"events": {
|
|
11207
|
-
"
|
|
11208
|
-
|
|
11209
|
-
|
|
13025
|
+
"select": "A provider button was clicked; payload is \"google\" or \"apple\"."
|
|
13026
|
+
},
|
|
13027
|
+
"notes": [
|
|
13028
|
+
"The kit only renders the buttons. The OAuth flow itself is yours."
|
|
13029
|
+
]
|
|
11210
13030
|
},
|
|
11211
13031
|
{
|
|
11212
|
-
"name": "
|
|
11213
|
-
"tag": "
|
|
11214
|
-
"group": "
|
|
11215
|
-
"description": "
|
|
13032
|
+
"name": "PageDashboard",
|
|
13033
|
+
"tag": "UiPageDashboard",
|
|
13034
|
+
"group": "pages",
|
|
13035
|
+
"description": "Dashboard template: greeting hero, KPI tiles, occupancy chart, sales funnel, top list and activity feed.",
|
|
11216
13036
|
"props": {
|
|
11217
13037
|
"title": {
|
|
13038
|
+
"forwarded": true,
|
|
11218
13039
|
"type": "string",
|
|
11219
|
-
"
|
|
11220
|
-
"description": "Column heading."
|
|
13040
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11221
13041
|
},
|
|
11222
|
-
"
|
|
11223
|
-
"
|
|
11224
|
-
"
|
|
13042
|
+
"subtitle": {
|
|
13043
|
+
"forwarded": true,
|
|
13044
|
+
"type": "string",
|
|
13045
|
+
"description": "Caption under the heading."
|
|
11225
13046
|
},
|
|
11226
|
-
"
|
|
11227
|
-
"
|
|
11228
|
-
"
|
|
11229
|
-
|
|
11230
|
-
"sm",
|
|
11231
|
-
"md",
|
|
11232
|
-
"lg",
|
|
11233
|
-
"xl"
|
|
11234
|
-
],
|
|
11235
|
-
"default": "md",
|
|
11236
|
-
"description": "Scales padding, text and avatars."
|
|
13047
|
+
"crumbs": {
|
|
13048
|
+
"forwarded": true,
|
|
13049
|
+
"type": "{ label: string; href?: string }[]",
|
|
13050
|
+
"description": "Breadcrumb trail above the title."
|
|
11237
13051
|
}
|
|
11238
13052
|
},
|
|
11239
13053
|
"slots": {
|
|
11240
|
-
"
|
|
11241
|
-
|
|
13054
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13055
|
+
"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).",
|
|
13056
|
+
"hero": "Large greeting/plan block; Card variant=\"inverse\" with Ring and a Button.",
|
|
13057
|
+
"kpis": "Four key figures; KpiTile, StatsCard or KpiInline.",
|
|
13058
|
+
"occupancy": "Per-day occupancy chart; OccupancyChart or MiniChart.",
|
|
13059
|
+
"funnel": "Inquiry-to-payment funnel; SalesFunnel.",
|
|
13060
|
+
"top": "Revenue leaderboard; DataTable with Progress share bars.",
|
|
13061
|
+
"activity": "Recent actions, newest first; Timeline."
|
|
13062
|
+
},
|
|
13063
|
+
"notes": [
|
|
13064
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13065
|
+
"hero and kpis share a row, as do occupancy/funnel and top/activity; they wrap on narrow screens."
|
|
13066
|
+
]
|
|
11242
13067
|
},
|
|
11243
13068
|
{
|
|
11244
|
-
"name": "
|
|
11245
|
-
"tag": "
|
|
11246
|
-
"group": "
|
|
11247
|
-
"description": "
|
|
13069
|
+
"name": "PagePatterns",
|
|
13070
|
+
"tag": "UiPagePatterns",
|
|
13071
|
+
"group": "pages",
|
|
13072
|
+
"description": "Showcase template combining twelve recurring dashboard card patterns (banner, strips, stat lines, charts, lists).",
|
|
13073
|
+
"props": {
|
|
13074
|
+
"title": {
|
|
13075
|
+
"forwarded": true,
|
|
13076
|
+
"type": "string",
|
|
13077
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
13078
|
+
},
|
|
13079
|
+
"subtitle": {
|
|
13080
|
+
"forwarded": true,
|
|
13081
|
+
"type": "string",
|
|
13082
|
+
"description": "Caption under the heading."
|
|
13083
|
+
},
|
|
13084
|
+
"crumbs": {
|
|
13085
|
+
"forwarded": true,
|
|
13086
|
+
"type": "{ label: string; href?: string }[]",
|
|
13087
|
+
"description": "Breadcrumb trail above the title."
|
|
13088
|
+
}
|
|
13089
|
+
},
|
|
13090
|
+
"slots": {
|
|
13091
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13092
|
+
"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).",
|
|
13093
|
+
"hero": "Large banner; HeroBanner.",
|
|
13094
|
+
"strip": "One card with four metrics; StatStrip with IconTile.",
|
|
13095
|
+
"statlines": "Row of toned stat lines; StatLine (tone brand, sky, success, warning, danger).",
|
|
13096
|
+
"chartcard": "Titled chart with menu and period select; ChartCard with PillSelect and OccupancyChart or MiniChart.",
|
|
13097
|
+
"tiles": "Selectable tiles plus an add tile; TabTiles.",
|
|
13098
|
+
"listrows": "Icon, title and value rows; StatRow.",
|
|
13099
|
+
"countries": "Country amount rows; CountryRow.",
|
|
13100
|
+
"versus": "Two values with a share bar; VersusBar.",
|
|
13101
|
+
"segbar": "Composition bar with legend; SegBar.",
|
|
13102
|
+
"activity": "Timeline of events; Timeline.",
|
|
13103
|
+
"actioncard": "Card with collapse, refresh and close actions; ActionCard."
|
|
13104
|
+
},
|
|
13105
|
+
"notes": [
|
|
13106
|
+
"Place inside AppShell; fill only the slots you need."
|
|
13107
|
+
]
|
|
13108
|
+
},
|
|
13109
|
+
{
|
|
13110
|
+
"name": "PageCrm",
|
|
13111
|
+
"tag": "UiPageCrm",
|
|
13112
|
+
"group": "pages",
|
|
13113
|
+
"description": "CRM template: summary tiles, filters, pipeline board and call queue.",
|
|
11248
13114
|
"props": {
|
|
11249
13115
|
"title": {
|
|
13116
|
+
"forwarded": true,
|
|
11250
13117
|
"type": "string",
|
|
11251
|
-
"
|
|
11252
|
-
"description": "Card title."
|
|
11253
|
-
},
|
|
11254
|
-
"sub": {
|
|
11255
|
-
"type": "string",
|
|
11256
|
-
"description": "Subtitle under the title."
|
|
13118
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11257
13119
|
},
|
|
11258
|
-
"
|
|
13120
|
+
"subtitle": {
|
|
13121
|
+
"forwarded": true,
|
|
11259
13122
|
"type": "string",
|
|
11260
|
-
"description": "
|
|
11261
|
-
},
|
|
11262
|
-
"tone": {
|
|
11263
|
-
"type": "'default' | 'brand' | 'success' | 'warning' | 'danger' | 'info'",
|
|
11264
|
-
"values": [
|
|
11265
|
-
"default",
|
|
11266
|
-
"brand",
|
|
11267
|
-
"success",
|
|
11268
|
-
"warning",
|
|
11269
|
-
"danger",
|
|
11270
|
-
"info"
|
|
11271
|
-
],
|
|
11272
|
-
"description": "Badge tone for tag."
|
|
13123
|
+
"description": "Caption under the heading."
|
|
11273
13124
|
},
|
|
11274
|
-
"
|
|
11275
|
-
"
|
|
11276
|
-
"
|
|
11277
|
-
|
|
11278
|
-
"sm",
|
|
11279
|
-
"md",
|
|
11280
|
-
"lg",
|
|
11281
|
-
"xl"
|
|
11282
|
-
],
|
|
11283
|
-
"default": "md",
|
|
11284
|
-
"description": "Scales padding, text and avatars."
|
|
13125
|
+
"crumbs": {
|
|
13126
|
+
"forwarded": true,
|
|
13127
|
+
"type": "{ label: string; href?: string }[]",
|
|
13128
|
+
"description": "Breadcrumb trail above the title."
|
|
11285
13129
|
}
|
|
11286
13130
|
},
|
|
11287
13131
|
"slots": {
|
|
11288
|
-
"
|
|
11289
|
-
|
|
13132
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13133
|
+
"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).",
|
|
13134
|
+
"summary": "Tiles above the board (leads, amount, conversion, overdue); StatsCard or KpiTile.",
|
|
13135
|
+
"filters": "Status tabs, search and period switch; Tabs, SearchInput, SegmentedControl, FilterChips.",
|
|
13136
|
+
"board": "Stage columns with deal cards; PipelineBoard, KanbanColumn, DealCard.",
|
|
13137
|
+
"calls": "Recent call queue; CallRow, CallCard, IncomingCall."
|
|
13138
|
+
},
|
|
13139
|
+
"notes": [
|
|
13140
|
+
"Place inside AppShell; fill only the slots you need."
|
|
13141
|
+
]
|
|
11290
13142
|
},
|
|
11291
13143
|
{
|
|
11292
|
-
"name": "
|
|
11293
|
-
"tag": "
|
|
11294
|
-
"group": "
|
|
11295
|
-
"description": "
|
|
13144
|
+
"name": "PageBookings",
|
|
13145
|
+
"tag": "UiPageBookings",
|
|
13146
|
+
"group": "pages",
|
|
13147
|
+
"description": "Bookings list template: stats, toolbar, bulk-action bar, table and pagination.",
|
|
11296
13148
|
"props": {
|
|
11297
|
-
"
|
|
13149
|
+
"title": {
|
|
13150
|
+
"forwarded": true,
|
|
11298
13151
|
"type": "string",
|
|
11299
|
-
"
|
|
11300
|
-
"description": "Caller name."
|
|
13152
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11301
13153
|
},
|
|
11302
|
-
"
|
|
13154
|
+
"subtitle": {
|
|
13155
|
+
"forwarded": true,
|
|
11303
13156
|
"type": "string",
|
|
11304
|
-
"description": "
|
|
11305
|
-
},
|
|
11306
|
-
"duration": {
|
|
11307
|
-
"type": "number",
|
|
11308
|
-
"description": "Duration in seconds, formatted as \"3 m 05 s\" (units from durUnits); shows a dash when missing."
|
|
11309
|
-
},
|
|
11310
|
-
"durUnits": {
|
|
11311
|
-
"type": "{ m?: string; s?: string }",
|
|
11312
|
-
"default": "{ m: 'm', s: 's' }",
|
|
11313
|
-
"description": "Minute and second unit labels for localized durations, e.g. { m: \"min\", s: \"sec\" }."
|
|
11314
|
-
},
|
|
11315
|
-
"labels": {
|
|
11316
|
-
"type": "{ play?: string }",
|
|
11317
|
-
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
13157
|
+
"description": "Caption under the heading."
|
|
11318
13158
|
},
|
|
11319
|
-
"
|
|
11320
|
-
"
|
|
11321
|
-
"
|
|
11322
|
-
|
|
11323
|
-
"sm",
|
|
11324
|
-
"md",
|
|
11325
|
-
"lg",
|
|
11326
|
-
"xl"
|
|
11327
|
-
],
|
|
11328
|
-
"default": "md",
|
|
11329
|
-
"description": "Scales padding, text and avatars."
|
|
13159
|
+
"crumbs": {
|
|
13160
|
+
"forwarded": true,
|
|
13161
|
+
"type": "{ label: string; href?: string }[]",
|
|
13162
|
+
"description": "Breadcrumb trail above the title."
|
|
11330
13163
|
}
|
|
11331
13164
|
},
|
|
11332
|
-
"
|
|
11333
|
-
"
|
|
11334
|
-
|
|
13165
|
+
"slots": {
|
|
13166
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13167
|
+
"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).",
|
|
13168
|
+
"stats": "Booking figures for the period; StatsCard.",
|
|
13169
|
+
"toolbar": "Search, quick filters and export menu above the table; SearchInput, FilterChips, Dropdown.",
|
|
13170
|
+
"bulk": "Selection bar shown when rows are selected; Alert with Buttons. Render it conditionally.",
|
|
13171
|
+
"table": "Sortable, selectable table; DataTable.",
|
|
13172
|
+
"pager": "Page numbers below the table; Pagination."
|
|
13173
|
+
},
|
|
13174
|
+
"notes": [
|
|
13175
|
+
"Place inside AppShell; fill only the slots you need."
|
|
13176
|
+
]
|
|
11335
13177
|
},
|
|
11336
13178
|
{
|
|
11337
|
-
"name": "
|
|
11338
|
-
"tag": "
|
|
11339
|
-
"group": "
|
|
11340
|
-
"description": "
|
|
13179
|
+
"name": "PageCatalog",
|
|
13180
|
+
"tag": "UiPageCatalog",
|
|
13181
|
+
"group": "pages",
|
|
13182
|
+
"description": "Catalog template with a filter sidebar and a card grid (hotels, tours).",
|
|
11341
13183
|
"props": {
|
|
11342
|
-
"
|
|
13184
|
+
"title": {
|
|
13185
|
+
"forwarded": true,
|
|
11343
13186
|
"type": "string",
|
|
11344
|
-
"
|
|
11345
|
-
"description": "Caller name."
|
|
13187
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11346
13188
|
},
|
|
11347
|
-
"
|
|
13189
|
+
"subtitle": {
|
|
13190
|
+
"forwarded": true,
|
|
11348
13191
|
"type": "string",
|
|
11349
|
-
"description": "
|
|
11350
|
-
},
|
|
11351
|
-
"status": {
|
|
11352
|
-
"type": "'Answered' | 'Missed' | 'Voicemail' | 'Busy' | 'Declined' | string",
|
|
11353
|
-
"values": [
|
|
11354
|
-
"Answered",
|
|
11355
|
-
"Missed",
|
|
11356
|
-
"Voicemail",
|
|
11357
|
-
"Busy",
|
|
11358
|
-
"Declined"
|
|
11359
|
-
],
|
|
11360
|
-
"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."
|
|
11361
|
-
},
|
|
11362
|
-
"statusTones": {
|
|
11363
|
-
"type": "Record<string, 'success' | 'danger' | 'warning' | 'info' | 'brand'>",
|
|
11364
|
-
"description": "Extra or overriding status to tone mapping, e.g. { \"No answer\": \"warning\" }."
|
|
11365
|
-
},
|
|
11366
|
-
"progress": {
|
|
11367
|
-
"type": "number",
|
|
11368
|
-
"default": 0,
|
|
11369
|
-
"description": "Playback progress 0-100."
|
|
11370
|
-
},
|
|
11371
|
-
"duration": {
|
|
11372
|
-
"type": "number",
|
|
11373
|
-
"description": "Duration in seconds."
|
|
11374
|
-
},
|
|
11375
|
-
"durUnits": {
|
|
11376
|
-
"type": "{ m?: string; s?: string }",
|
|
11377
|
-
"default": "{ m: 'm', s: 's' }",
|
|
11378
|
-
"description": "Minute and second unit labels for the duration."
|
|
11379
|
-
},
|
|
11380
|
-
"labels": {
|
|
11381
|
-
"type": "{ play?: string }",
|
|
11382
|
-
"description": "Override built-in English strings. play is the aria-label of the play button."
|
|
13192
|
+
"description": "Caption under the heading."
|
|
11383
13193
|
},
|
|
11384
|
-
"
|
|
11385
|
-
"
|
|
11386
|
-
"
|
|
11387
|
-
|
|
11388
|
-
"sm",
|
|
11389
|
-
"md",
|
|
11390
|
-
"lg",
|
|
11391
|
-
"xl"
|
|
11392
|
-
],
|
|
11393
|
-
"default": "md",
|
|
11394
|
-
"description": "Scales padding, text and avatars."
|
|
13194
|
+
"crumbs": {
|
|
13195
|
+
"forwarded": true,
|
|
13196
|
+
"type": "{ label: string; href?: string }[]",
|
|
13197
|
+
"description": "Breadcrumb trail above the title."
|
|
11395
13198
|
}
|
|
11396
13199
|
},
|
|
11397
|
-
"
|
|
11398
|
-
"
|
|
11399
|
-
|
|
13200
|
+
"slots": {
|
|
13201
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13202
|
+
"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).",
|
|
13203
|
+
"filters": "Left filter column (price, rating, services); Slider, Rating, RadioGroup, Checkbox.",
|
|
13204
|
+
"toolbar": "Search, view switch and sort above the grid; SearchInput, ToggleGroup, Select.",
|
|
13205
|
+
"grid": "Responsive grid of cards; HotelCard or TourCard.",
|
|
13206
|
+
"pager": "Pagination at the bottom; Pagination."
|
|
13207
|
+
},
|
|
13208
|
+
"notes": [
|
|
13209
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13210
|
+
"The filter column is 260 px wide; on phones put filters in a Drawer yourself."
|
|
13211
|
+
]
|
|
11400
13212
|
},
|
|
11401
13213
|
{
|
|
11402
|
-
"name": "
|
|
11403
|
-
"tag": "
|
|
11404
|
-
"group": "
|
|
11405
|
-
"description": "
|
|
13214
|
+
"name": "PageDetail",
|
|
13215
|
+
"tag": "UiPageDetail",
|
|
13216
|
+
"group": "pages",
|
|
13217
|
+
"description": "Detail page template (hotel, tour): gallery, summary, tabs, history and a booking side card.",
|
|
11406
13218
|
"props": {
|
|
11407
|
-
"
|
|
11408
|
-
"
|
|
11409
|
-
"required": true,
|
|
11410
|
-
"description": "Caller name."
|
|
11411
|
-
},
|
|
11412
|
-
"phone": {
|
|
13219
|
+
"title": {
|
|
13220
|
+
"forwarded": true,
|
|
11413
13221
|
"type": "string",
|
|
11414
|
-
"description": "
|
|
13222
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11415
13223
|
},
|
|
11416
|
-
"
|
|
13224
|
+
"subtitle": {
|
|
13225
|
+
"forwarded": true,
|
|
11417
13226
|
"type": "string",
|
|
11418
|
-
"
|
|
11419
|
-
"description": "Caption above the name."
|
|
11420
|
-
},
|
|
11421
|
-
"onDecline": {
|
|
11422
|
-
"type": "() => void",
|
|
11423
|
-
"description": "Decline button click."
|
|
11424
|
-
},
|
|
11425
|
-
"onAnswer": {
|
|
11426
|
-
"type": "() => void",
|
|
11427
|
-
"description": "Answer button click."
|
|
13227
|
+
"description": "Caption under the heading."
|
|
11428
13228
|
},
|
|
11429
|
-
"
|
|
11430
|
-
"
|
|
11431
|
-
"
|
|
11432
|
-
|
|
11433
|
-
"sm",
|
|
11434
|
-
"md",
|
|
11435
|
-
"lg",
|
|
11436
|
-
"xl"
|
|
11437
|
-
],
|
|
11438
|
-
"default": "md",
|
|
11439
|
-
"description": "Scales padding, text and avatars."
|
|
13229
|
+
"crumbs": {
|
|
13230
|
+
"forwarded": true,
|
|
13231
|
+
"type": "{ label: string; href?: string }[]",
|
|
13232
|
+
"description": "Breadcrumb trail above the title."
|
|
11440
13233
|
}
|
|
11441
13234
|
},
|
|
11442
|
-
"
|
|
11443
|
-
"
|
|
11444
|
-
"
|
|
11445
|
-
|
|
13235
|
+
"slots": {
|
|
13236
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13237
|
+
"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).",
|
|
13238
|
+
"gallery": "Main photo with thumbnails; Gallery, Carousel, LazyImage.",
|
|
13239
|
+
"summary": "Name, stars, rating, badges; Card with Badge and Rating.",
|
|
13240
|
+
"tabs": "Description, amenities, reviews; Tabs with Descriptions or Accordion.",
|
|
13241
|
+
"history": "What changed (status, notes, price); Timeline.",
|
|
13242
|
+
"booking": "Right-hand booking card with dates, guests, price and CTA; Card, Select, NumberInput, Button."
|
|
13243
|
+
},
|
|
13244
|
+
"notes": [
|
|
13245
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13246
|
+
"gallery, summary, tabs and history are the main column; booking is the side column."
|
|
13247
|
+
]
|
|
11446
13248
|
},
|
|
11447
13249
|
{
|
|
11448
|
-
"name": "
|
|
11449
|
-
"tag": "
|
|
11450
|
-
"group": "
|
|
11451
|
-
"description": "
|
|
13250
|
+
"name": "PageSettings",
|
|
13251
|
+
"tag": "UiPageSettings",
|
|
13252
|
+
"group": "pages",
|
|
13253
|
+
"description": "Settings template with a section sub-navigation and stacked settings sections.",
|
|
11452
13254
|
"props": {
|
|
11453
13255
|
"title": {
|
|
13256
|
+
"forwarded": true,
|
|
11454
13257
|
"type": "string",
|
|
11455
|
-
"
|
|
11456
|
-
"description": "Form heading."
|
|
13258
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11457
13259
|
},
|
|
11458
13260
|
"subtitle": {
|
|
13261
|
+
"forwarded": true,
|
|
11459
13262
|
"type": "string",
|
|
11460
|
-
"description": "
|
|
11461
|
-
},
|
|
11462
|
-
"logo": {
|
|
11463
|
-
"type": "VNode",
|
|
11464
|
-
"description": "Logo node above the heading."
|
|
13263
|
+
"description": "Caption under the heading."
|
|
11465
13264
|
},
|
|
11466
|
-
"
|
|
11467
|
-
"
|
|
11468
|
-
"
|
|
13265
|
+
"crumbs": {
|
|
13266
|
+
"forwarded": true,
|
|
13267
|
+
"type": "{ label: string; href?: string }[]",
|
|
13268
|
+
"description": "Breadcrumb trail above the title."
|
|
11469
13269
|
}
|
|
11470
13270
|
},
|
|
11471
13271
|
"slots": {
|
|
11472
|
-
"
|
|
13272
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13273
|
+
"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).",
|
|
13274
|
+
"subnav": "Left section menu; SubNav or Tabs.",
|
|
13275
|
+
"profile": "Profile section; SettingsSection with TextField, PhoneInput.",
|
|
13276
|
+
"notifications": "Delivery channels; SettingsSection with Switch.",
|
|
13277
|
+
"integrations": "Service cards (connected, off, error); IntegrationCard.",
|
|
13278
|
+
"danger": "Irreversible actions; Alert, red Button, ConfirmDialog."
|
|
11473
13279
|
},
|
|
11474
13280
|
"notes": [
|
|
11475
|
-
"
|
|
13281
|
+
"Place inside AppShell; fill only the slots you need."
|
|
11476
13282
|
]
|
|
11477
13283
|
},
|
|
11478
13284
|
{
|
|
11479
|
-
"name": "
|
|
11480
|
-
"tag": "
|
|
11481
|
-
"group": "
|
|
11482
|
-
"description": "
|
|
13285
|
+
"name": "PageUserList",
|
|
13286
|
+
"tag": "UiPageUserList",
|
|
13287
|
+
"group": "pages",
|
|
13288
|
+
"description": "User or customer list template: stats, filters, toolbar, table and a right-hand add/edit drawer.",
|
|
11483
13289
|
"props": {
|
|
11484
|
-
"variant": {
|
|
11485
|
-
"type": "'photo' | 'light' | 'tint'",
|
|
11486
|
-
"values": [
|
|
11487
|
-
"photo",
|
|
11488
|
-
"light",
|
|
11489
|
-
"tint"
|
|
11490
|
-
],
|
|
11491
|
-
"default": "photo",
|
|
11492
|
-
"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."
|
|
11493
|
-
},
|
|
11494
13290
|
"title": {
|
|
13291
|
+
"forwarded": true,
|
|
11495
13292
|
"type": "string",
|
|
11496
|
-
"
|
|
11497
|
-
"description": "Form heading."
|
|
13293
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11498
13294
|
},
|
|
11499
13295
|
"subtitle": {
|
|
13296
|
+
"forwarded": true,
|
|
11500
13297
|
"type": "string",
|
|
11501
|
-
"description": "
|
|
11502
|
-
},
|
|
11503
|
-
"logo": {
|
|
11504
|
-
"type": "VNode",
|
|
11505
|
-
"description": "Logo node above the heading."
|
|
11506
|
-
},
|
|
11507
|
-
"footer": {
|
|
11508
|
-
"type": "VNode",
|
|
11509
|
-
"description": "Content under the fields, for example \"No account? Sign up\"."
|
|
11510
|
-
},
|
|
11511
|
-
"image": {
|
|
11512
|
-
"type": "string",
|
|
11513
|
-
"description": "URL of the media image. Without it the panel shows an accent gradient."
|
|
13298
|
+
"description": "Caption under the heading."
|
|
11514
13299
|
},
|
|
11515
|
-
"
|
|
13300
|
+
"crumbs": {
|
|
13301
|
+
"forwarded": true,
|
|
13302
|
+
"type": "{ label: string; href?: string }[]",
|
|
13303
|
+
"description": "Breadcrumb trail above the title."
|
|
13304
|
+
}
|
|
13305
|
+
},
|
|
13306
|
+
"slots": {
|
|
13307
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13308
|
+
"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).",
|
|
13309
|
+
"stats": "Figures above the table; StatStrip.",
|
|
13310
|
+
"filters": "Filter selects in a card; Select.",
|
|
13311
|
+
"toolbar": "Page size, search, export and Add button; Select, SearchInput, Button.",
|
|
13312
|
+
"table": "Users table with checkboxes and actions; DataTable with UserCell, Chip, IconButton.",
|
|
13313
|
+
"drawer": "Side panel rendered in the side column; Drawer with TextField, Select, Button."
|
|
13314
|
+
},
|
|
13315
|
+
"notes": [
|
|
13316
|
+
"Place inside AppShell; fill only the slots you need."
|
|
13317
|
+
]
|
|
13318
|
+
},
|
|
13319
|
+
{
|
|
13320
|
+
"name": "PageProfile",
|
|
13321
|
+
"tag": "UiPageProfile",
|
|
13322
|
+
"group": "pages",
|
|
13323
|
+
"description": "User profile template: cover header, tabs and two columns of about, activity and plan cards.",
|
|
13324
|
+
"props": {
|
|
13325
|
+
"title": {
|
|
13326
|
+
"forwarded": true,
|
|
11516
13327
|
"type": "string",
|
|
11517
|
-
"description": "
|
|
13328
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11518
13329
|
},
|
|
11519
|
-
"
|
|
13330
|
+
"subtitle": {
|
|
13331
|
+
"forwarded": true,
|
|
11520
13332
|
"type": "string",
|
|
11521
|
-
"description": "
|
|
13333
|
+
"description": "Caption under the heading."
|
|
11522
13334
|
},
|
|
11523
|
-
"
|
|
13335
|
+
"crumbs": {
|
|
13336
|
+
"forwarded": true,
|
|
13337
|
+
"type": "{ label: string; href?: string }[]",
|
|
13338
|
+
"description": "Breadcrumb trail above the title."
|
|
13339
|
+
}
|
|
13340
|
+
},
|
|
13341
|
+
"slots": {
|
|
13342
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13343
|
+
"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).",
|
|
13344
|
+
"profile": "Cover with avatar, name and meta; ProfileHeader.",
|
|
13345
|
+
"tabs": "Section tabs; PillTabs.",
|
|
13346
|
+
"about": "Left column key-value info; Card with Descriptions.",
|
|
13347
|
+
"activity": "Right column activity feed; Timeline.",
|
|
13348
|
+
"plan": "Right column plan card and upgrade button; Card, Badge, Progress, Button."
|
|
13349
|
+
},
|
|
13350
|
+
"notes": [
|
|
13351
|
+
"Place inside AppShell; fill only the slots you need."
|
|
13352
|
+
]
|
|
13353
|
+
},
|
|
13354
|
+
{
|
|
13355
|
+
"name": "PageForm",
|
|
13356
|
+
"tag": "UiPageForm",
|
|
13357
|
+
"group": "pages",
|
|
13358
|
+
"description": "Create/edit form template: main column, media, side column and header actions.",
|
|
13359
|
+
"props": {
|
|
13360
|
+
"title": {
|
|
13361
|
+
"forwarded": true,
|
|
11524
13362
|
"type": "string",
|
|
11525
|
-
"description": "
|
|
11526
|
-
},
|
|
11527
|
-
"chips": {
|
|
11528
|
-
"type": "string[]",
|
|
11529
|
-
"description": "Pill labels inside the glass bar; light and tint."
|
|
11530
|
-
},
|
|
11531
|
-
"people": {
|
|
11532
|
-
"type": "{ name: string; src?: string }[]",
|
|
11533
|
-
"description": "Avatars: floating on the photo, stacked in the proof pill."
|
|
13363
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11534
13364
|
},
|
|
11535
|
-
"
|
|
13365
|
+
"subtitle": {
|
|
13366
|
+
"forwarded": true,
|
|
11536
13367
|
"type": "string",
|
|
11537
|
-
"description": "
|
|
13368
|
+
"description": "Caption under the heading."
|
|
11538
13369
|
},
|
|
11539
|
-
"
|
|
11540
|
-
"
|
|
11541
|
-
"
|
|
13370
|
+
"crumbs": {
|
|
13371
|
+
"forwarded": true,
|
|
13372
|
+
"type": "{ label: string; href?: string }[]",
|
|
13373
|
+
"description": "Breadcrumb trail above the title."
|
|
11542
13374
|
}
|
|
11543
13375
|
},
|
|
11544
13376
|
"slots": {
|
|
11545
|
-
"
|
|
13377
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13378
|
+
"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.",
|
|
13379
|
+
"main": "Main column cards (info, options); Card, TextField, Textarea.",
|
|
13380
|
+
"media": "Below main; upload dropzone; FileUpload or Gallery.",
|
|
13381
|
+
"side": "Side column cards (price, status, tags); Card, NumberInput, Select, ChipInput."
|
|
11546
13382
|
},
|
|
11547
13383
|
"notes": [
|
|
11548
|
-
"
|
|
13384
|
+
"Place inside AppShell; fill only the slots you need."
|
|
11549
13385
|
]
|
|
11550
13386
|
},
|
|
11551
13387
|
{
|
|
11552
|
-
"name": "
|
|
11553
|
-
"tag": "
|
|
11554
|
-
"group": "
|
|
11555
|
-
"description": "
|
|
13388
|
+
"name": "PageOrder",
|
|
13389
|
+
"tag": "UiPageOrder",
|
|
13390
|
+
"group": "pages",
|
|
13391
|
+
"description": "Order/booking details template: status chips, items table, timeline and side info cards.",
|
|
11556
13392
|
"props": {
|
|
11557
|
-
"
|
|
11558
|
-
"
|
|
11559
|
-
"
|
|
11560
|
-
"description": "
|
|
11561
|
-
},
|
|
11562
|
-
"variant": {
|
|
11563
|
-
"type": "'stack' | 'icons'",
|
|
11564
|
-
"values": [
|
|
11565
|
-
"stack",
|
|
11566
|
-
"icons"
|
|
11567
|
-
],
|
|
11568
|
-
"default": "stack",
|
|
11569
|
-
"description": "'stack': full-width buttons with a label, one per row. 'icons': a row of square icon buttons."
|
|
11570
|
-
},
|
|
11571
|
-
"divider": {
|
|
11572
|
-
"type": "boolean",
|
|
11573
|
-
"default": "true",
|
|
11574
|
-
"description": "Show the \"or\" line above the buttons."
|
|
11575
|
-
},
|
|
11576
|
-
"labels": {
|
|
11577
|
-
"type": "{ google?: string; apple?: string }",
|
|
11578
|
-
"description": "Provider names inserted into \"Continue with {provider}\"."
|
|
13393
|
+
"title": {
|
|
13394
|
+
"forwarded": true,
|
|
13395
|
+
"type": "string",
|
|
13396
|
+
"description": "Page heading. The built-in header renders only when title is set and the header slot is empty."
|
|
11579
13397
|
},
|
|
11580
|
-
"
|
|
11581
|
-
"
|
|
11582
|
-
"
|
|
13398
|
+
"subtitle": {
|
|
13399
|
+
"forwarded": true,
|
|
13400
|
+
"type": "string",
|
|
13401
|
+
"description": "Caption under the heading."
|
|
11583
13402
|
},
|
|
11584
|
-
"
|
|
11585
|
-
"
|
|
11586
|
-
"
|
|
11587
|
-
|
|
11588
|
-
"sm",
|
|
11589
|
-
"md",
|
|
11590
|
-
"lg",
|
|
11591
|
-
"xl"
|
|
11592
|
-
],
|
|
11593
|
-
"default": "md",
|
|
11594
|
-
"description": "Scales padding, text and avatars."
|
|
13403
|
+
"crumbs": {
|
|
13404
|
+
"forwarded": true,
|
|
13405
|
+
"type": "{ label: string; href?: string }[]",
|
|
13406
|
+
"description": "Breadcrumb trail above the title."
|
|
11595
13407
|
}
|
|
11596
13408
|
},
|
|
11597
|
-
"
|
|
11598
|
-
"
|
|
13409
|
+
"slots": {
|
|
13410
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13411
|
+
"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).",
|
|
13412
|
+
"status": "Payment and fulfillment chips; Chip (tone success, warning, danger).",
|
|
13413
|
+
"items": "Items table with totals; DataTable.",
|
|
13414
|
+
"shipping": "Event timeline; Timeline.",
|
|
13415
|
+
"side": "Customer, address and payment cards; UserCell, Descriptions, Button."
|
|
11599
13416
|
},
|
|
11600
13417
|
"notes": [
|
|
11601
|
-
"
|
|
13418
|
+
"Place inside AppShell; fill only the slots you need."
|
|
11602
13419
|
]
|
|
11603
13420
|
},
|
|
11604
13421
|
{
|
|
11605
|
-
"name": "
|
|
11606
|
-
"tag": "
|
|
13422
|
+
"name": "PageAccount",
|
|
13423
|
+
"tag": "UiPageAccount",
|
|
11607
13424
|
"group": "pages",
|
|
11608
|
-
"description": "
|
|
13425
|
+
"description": "Account settings template with pill tabs and a swappable panel.",
|
|
11609
13426
|
"props": {
|
|
11610
13427
|
"title": {
|
|
11611
13428
|
"forwarded": true,
|
|
@@ -11623,26 +13440,22 @@
|
|
|
11623
13440
|
"description": "Breadcrumb trail above the title."
|
|
11624
13441
|
}
|
|
11625
13442
|
},
|
|
11626
|
-
"slots": {
|
|
11627
|
-
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11628
|
-
"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).",
|
|
11629
|
-
"
|
|
11630
|
-
"
|
|
11631
|
-
"occupancy": "Per-day occupancy chart; OccupancyChart or MiniChart.",
|
|
11632
|
-
"funnel": "Inquiry-to-payment funnel; SalesFunnel.",
|
|
11633
|
-
"top": "Revenue leaderboard; DataTable with Progress share bars.",
|
|
11634
|
-
"activity": "Recent actions, newest first; Timeline."
|
|
13443
|
+
"slots": {
|
|
13444
|
+
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
13445
|
+
"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).",
|
|
13446
|
+
"tabs": "Section tabs (account, security, billing, notifications); PillTabs.",
|
|
13447
|
+
"panel": "Content of the active tab; Card or SettingsSection with Switch and TextField."
|
|
11635
13448
|
},
|
|
11636
13449
|
"notes": [
|
|
11637
13450
|
"Place inside AppShell; fill only the slots you need.",
|
|
11638
|
-
"
|
|
13451
|
+
"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."
|
|
11639
13452
|
]
|
|
11640
13453
|
},
|
|
11641
13454
|
{
|
|
11642
|
-
"name": "
|
|
11643
|
-
"tag": "
|
|
13455
|
+
"name": "PagePricing",
|
|
13456
|
+
"tag": "UiPagePricing",
|
|
11644
13457
|
"group": "pages",
|
|
11645
|
-
"description": "
|
|
13458
|
+
"description": "Pricing template: billing-period toggle, plan cards and an FAQ.",
|
|
11646
13459
|
"props": {
|
|
11647
13460
|
"title": {
|
|
11648
13461
|
"forwarded": true,
|
|
@@ -11663,27 +13476,19 @@
|
|
|
11663
13476
|
"slots": {
|
|
11664
13477
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11665
13478
|
"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).",
|
|
11666
|
-
"
|
|
11667
|
-
"
|
|
11668
|
-
"
|
|
11669
|
-
"chartcard": "Titled chart with menu and period select; ChartCard with PillSelect and OccupancyChart or MiniChart.",
|
|
11670
|
-
"tiles": "Selectable tiles plus an add tile; TabTiles.",
|
|
11671
|
-
"listrows": "Icon, title and value rows; StatRow.",
|
|
11672
|
-
"countries": "Country amount rows; CountryRow.",
|
|
11673
|
-
"versus": "Two values with a share bar; VersusBar.",
|
|
11674
|
-
"segbar": "Composition bar with legend; SegBar.",
|
|
11675
|
-
"activity": "Timeline of events; Timeline.",
|
|
11676
|
-
"actioncard": "Card with collapse, refresh and close actions; ActionCard."
|
|
13479
|
+
"toggle": "Monthly/annual switch with a savings badge; Switch, Chip.",
|
|
13480
|
+
"plans": "Plan cards, one marked featured; PricingCard.",
|
|
13481
|
+
"faq": "Questions accordion; Accordion."
|
|
11677
13482
|
},
|
|
11678
13483
|
"notes": [
|
|
11679
13484
|
"Place inside AppShell; fill only the slots you need."
|
|
11680
13485
|
]
|
|
11681
13486
|
},
|
|
11682
13487
|
{
|
|
11683
|
-
"name": "
|
|
11684
|
-
"tag": "
|
|
13488
|
+
"name": "PageFaq",
|
|
13489
|
+
"tag": "UiPageFaq",
|
|
11685
13490
|
"group": "pages",
|
|
11686
|
-
"description": "
|
|
13491
|
+
"description": "Help center template: search, categories, answers accordion and a contact block.",
|
|
11687
13492
|
"props": {
|
|
11688
13493
|
"title": {
|
|
11689
13494
|
"forwarded": true,
|
|
@@ -11704,20 +13509,20 @@
|
|
|
11704
13509
|
"slots": {
|
|
11705
13510
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11706
13511
|
"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).",
|
|
11707
|
-
"
|
|
11708
|
-
"
|
|
11709
|
-
"
|
|
11710
|
-
"
|
|
13512
|
+
"search": "Large search field; SearchInput.",
|
|
13513
|
+
"cats": "Category list on the left; vertical PillTabs.",
|
|
13514
|
+
"answers": "Answers on the right; Accordion.",
|
|
13515
|
+
"contact": "Contact cards below; Card, IconTile, Button."
|
|
11711
13516
|
},
|
|
11712
13517
|
"notes": [
|
|
11713
13518
|
"Place inside AppShell; fill only the slots you need."
|
|
11714
13519
|
]
|
|
11715
13520
|
},
|
|
11716
13521
|
{
|
|
11717
|
-
"name": "
|
|
11718
|
-
"tag": "
|
|
13522
|
+
"name": "PageAnalytics",
|
|
13523
|
+
"tag": "UiPageAnalytics",
|
|
11719
13524
|
"group": "pages",
|
|
11720
|
-
"description": "
|
|
13525
|
+
"description": "Analytics template: period picker, KPI strip, trend charts, a breakdown block and a table. Put Export in actions.",
|
|
11721
13526
|
"props": {
|
|
11722
13527
|
"title": {
|
|
11723
13528
|
"forwarded": true,
|
|
@@ -11738,21 +13543,22 @@
|
|
|
11738
13543
|
"slots": {
|
|
11739
13544
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11740
13545
|
"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).",
|
|
11741
|
-
"
|
|
11742
|
-
"
|
|
11743
|
-
"
|
|
11744
|
-
"
|
|
11745
|
-
"
|
|
13546
|
+
"period": "Period presets and compare toggle; SegmentedControl, Select, Switch.",
|
|
13547
|
+
"kpis": "Headline numbers with deltas; KpiTile, StatLine.",
|
|
13548
|
+
"trend": "Main time series; ChartCard with MiniChart.",
|
|
13549
|
+
"breakdown": "Split by channel or country; ChartCard with SegBar and CountryRow.",
|
|
13550
|
+
"table": "Rows behind the numbers; DataTable."
|
|
11746
13551
|
},
|
|
11747
13552
|
"notes": [
|
|
11748
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13553
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13554
|
+
"Trend and breakdown share a row and wrap on narrow screens. Put Export in the actions slot."
|
|
11749
13555
|
]
|
|
11750
13556
|
},
|
|
11751
13557
|
{
|
|
11752
|
-
"name": "
|
|
11753
|
-
"tag": "
|
|
13558
|
+
"name": "PageCalendar",
|
|
13559
|
+
"tag": "UiPageCalendar",
|
|
11754
13560
|
"group": "pages",
|
|
11755
|
-
"description": "
|
|
13561
|
+
"description": "Calendar template: view switch, time grid, mini calendar and event details.",
|
|
11756
13562
|
"props": {
|
|
11757
13563
|
"title": {
|
|
11758
13564
|
"forwarded": true,
|
|
@@ -11773,21 +13579,21 @@
|
|
|
11773
13579
|
"slots": {
|
|
11774
13580
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11775
13581
|
"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).",
|
|
11776
|
-
"
|
|
11777
|
-
"
|
|
11778
|
-
"
|
|
11779
|
-
"
|
|
13582
|
+
"toolbar": "SegmentedControl, Button, IconButton.",
|
|
13583
|
+
"grid": "Time grid with events; Card with custom grid, or CalendarView for the month.",
|
|
13584
|
+
"mini": "Month picker; Calendar.",
|
|
13585
|
+
"details": "Selected event; Card, Descriptions, Avatar, Button."
|
|
11780
13586
|
},
|
|
11781
13587
|
"notes": [
|
|
11782
13588
|
"Place inside AppShell; fill only the slots you need.",
|
|
11783
|
-
"The
|
|
13589
|
+
"The grid sits beside the mini calendar and details; they stack under 860 px."
|
|
11784
13590
|
]
|
|
11785
13591
|
},
|
|
11786
13592
|
{
|
|
11787
|
-
"name": "
|
|
11788
|
-
"tag": "
|
|
13593
|
+
"name": "PageKanban",
|
|
13594
|
+
"tag": "UiPageKanban",
|
|
11789
13595
|
"group": "pages",
|
|
11790
|
-
"description": "
|
|
13596
|
+
"description": "Kanban template: filters, task board columns and a card detail panel.",
|
|
11791
13597
|
"props": {
|
|
11792
13598
|
"title": {
|
|
11793
13599
|
"forwarded": true,
|
|
@@ -11808,22 +13614,20 @@
|
|
|
11808
13614
|
"slots": {
|
|
11809
13615
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11810
13616
|
"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).",
|
|
11811
|
-
"
|
|
11812
|
-
"
|
|
11813
|
-
"
|
|
11814
|
-
"history": "What changed (status, notes, price); Timeline.",
|
|
11815
|
-
"booking": "Right-hand booking card with dates, guests, price and CTA; Card, Select, NumberInput, Button."
|
|
13617
|
+
"filters": "SearchInput, FilterChips, Select.",
|
|
13618
|
+
"board": "Columns with cards; KanbanColumn, KanbanCard.",
|
|
13619
|
+
"detail": "Selected card; Card, Descriptions, Checkbox, Timeline."
|
|
11816
13620
|
},
|
|
11817
13621
|
"notes": [
|
|
11818
13622
|
"Place inside AppShell; fill only the slots you need.",
|
|
11819
|
-
"
|
|
13623
|
+
"Board scrolls horizontally inside its area; detail goes below it under 860 px."
|
|
11820
13624
|
]
|
|
11821
13625
|
},
|
|
11822
13626
|
{
|
|
11823
|
-
"name": "
|
|
11824
|
-
"tag": "
|
|
13627
|
+
"name": "PageBilling",
|
|
13628
|
+
"tag": "UiPageBilling",
|
|
11825
13629
|
"group": "pages",
|
|
11826
|
-
"description": "
|
|
13630
|
+
"description": "Billing template: current plan, usage meters, invoices, payment methods and an upgrade card.",
|
|
11827
13631
|
"props": {
|
|
11828
13632
|
"title": {
|
|
11829
13633
|
"forwarded": true,
|
|
@@ -11844,21 +13648,22 @@
|
|
|
11844
13648
|
"slots": {
|
|
11845
13649
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11846
13650
|
"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).",
|
|
11847
|
-
"
|
|
11848
|
-
"
|
|
11849
|
-
"
|
|
11850
|
-
"
|
|
11851
|
-
"
|
|
13651
|
+
"plan": "Current plan; Card with Badge and Buttons.",
|
|
13652
|
+
"usage": "Usage meters; Progress.",
|
|
13653
|
+
"invoices": "Invoices; DataTable.",
|
|
13654
|
+
"methods": "Saved cards; Card, IconTile, Badge.",
|
|
13655
|
+
"upgrade": "Upgrade call to action; Card variant=\"inverse\" or PricingCard."
|
|
11852
13656
|
},
|
|
11853
13657
|
"notes": [
|
|
11854
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13658
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13659
|
+
"Plan, usage and invoices share the main column; methods and upgrade form the side column."
|
|
11855
13660
|
]
|
|
11856
13661
|
},
|
|
11857
13662
|
{
|
|
11858
|
-
"name": "
|
|
11859
|
-
"tag": "
|
|
13663
|
+
"name": "PageTeam",
|
|
13664
|
+
"tag": "UiPageTeam",
|
|
11860
13665
|
"group": "pages",
|
|
11861
|
-
"description": "
|
|
13666
|
+
"description": "Team template: member stats, members table, roles and permissions matrix, and an invite form.",
|
|
11862
13667
|
"props": {
|
|
11863
13668
|
"title": {
|
|
11864
13669
|
"forwarded": true,
|
|
@@ -11879,21 +13684,21 @@
|
|
|
11879
13684
|
"slots": {
|
|
11880
13685
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11881
13686
|
"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).",
|
|
11882
|
-
"stats": "
|
|
11883
|
-
"
|
|
11884
|
-
"
|
|
11885
|
-
"
|
|
11886
|
-
"drawer": "Side panel rendered in the side column; Drawer with TextField, Select, Button."
|
|
13687
|
+
"stats": "Counters; KpiTile, StatsCard.",
|
|
13688
|
+
"members": "Members; DataTable with UserCell, Select, Badge.",
|
|
13689
|
+
"roles": "Permissions matrix; DataTable with Checkbox cells.",
|
|
13690
|
+
"invite": "Invite form; Card, TextField, Select, Button."
|
|
11887
13691
|
},
|
|
11888
13692
|
"notes": [
|
|
11889
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13693
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13694
|
+
"Members and roles share the main column; the invite form is the side column."
|
|
11890
13695
|
]
|
|
11891
13696
|
},
|
|
11892
13697
|
{
|
|
11893
|
-
"name": "
|
|
11894
|
-
"tag": "
|
|
13698
|
+
"name": "PageIntegrations",
|
|
13699
|
+
"tag": "UiPageIntegrations",
|
|
11895
13700
|
"group": "pages",
|
|
11896
|
-
"description": "
|
|
13701
|
+
"description": "Integrations template: connection cards, API keys and webhooks.",
|
|
11897
13702
|
"props": {
|
|
11898
13703
|
"title": {
|
|
11899
13704
|
"forwarded": true,
|
|
@@ -11914,21 +13719,21 @@
|
|
|
11914
13719
|
"slots": {
|
|
11915
13720
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11916
13721
|
"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).",
|
|
11917
|
-
"
|
|
11918
|
-
"
|
|
11919
|
-
"
|
|
11920
|
-
"
|
|
11921
|
-
"plan": "Right column plan card and upgrade button; Card, Badge, Progress, Button."
|
|
13722
|
+
"filters": "SearchInput, FilterChips.",
|
|
13723
|
+
"connections": "IntegrationCard grid.",
|
|
13724
|
+
"keys": "Keys; DataTable with CopyButton and IconButton.",
|
|
13725
|
+
"webhooks": "Webhooks list; Card, Switch, Chip."
|
|
11922
13726
|
},
|
|
11923
13727
|
"notes": [
|
|
11924
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13728
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13729
|
+
"Keys and webhooks share a row and wrap on narrow screens."
|
|
11925
13730
|
]
|
|
11926
13731
|
},
|
|
11927
13732
|
{
|
|
11928
|
-
"name": "
|
|
11929
|
-
"tag": "
|
|
13733
|
+
"name": "PageSearch",
|
|
13734
|
+
"tag": "UiPageSearch",
|
|
11930
13735
|
"group": "pages",
|
|
11931
|
-
"description": "
|
|
13736
|
+
"description": "Search template: query field, filter sidebar, result groups and an empty state.",
|
|
11932
13737
|
"props": {
|
|
11933
13738
|
"title": {
|
|
11934
13739
|
"forwarded": true,
|
|
@@ -11948,20 +13753,22 @@
|
|
|
11948
13753
|
},
|
|
11949
13754
|
"slots": {
|
|
11950
13755
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11951
|
-
"actions": "
|
|
11952
|
-
"
|
|
11953
|
-
"
|
|
11954
|
-
"
|
|
13756
|
+
"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).",
|
|
13757
|
+
"search": "SearchInput, Tabs.",
|
|
13758
|
+
"filters": "Filters; Card, Checkbox, Select.",
|
|
13759
|
+
"results": "Result groups; Card, Chip, Divider.",
|
|
13760
|
+
"empty": "Shown only when there are no results; EmptyState."
|
|
11955
13761
|
},
|
|
11956
13762
|
"notes": [
|
|
11957
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13763
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13764
|
+
"Filters sit left of the results and stack above them under 860 px. Fill empty only when there are no results."
|
|
11958
13765
|
]
|
|
11959
13766
|
},
|
|
11960
13767
|
{
|
|
11961
|
-
"name": "
|
|
11962
|
-
"tag": "
|
|
13768
|
+
"name": "PageArticle",
|
|
13769
|
+
"tag": "UiPageArticle",
|
|
11963
13770
|
"group": "pages",
|
|
11964
|
-
"description": "
|
|
13771
|
+
"description": "Article template: cover, post body, sticky table of contents, share row and related posts.",
|
|
11965
13772
|
"props": {
|
|
11966
13773
|
"title": {
|
|
11967
13774
|
"forwarded": true,
|
|
@@ -11982,20 +13789,22 @@
|
|
|
11982
13789
|
"slots": {
|
|
11983
13790
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
11984
13791
|
"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).",
|
|
11985
|
-
"
|
|
11986
|
-
"
|
|
11987
|
-
"
|
|
11988
|
-
"
|
|
13792
|
+
"cover": "Cover image area with title and author line; a gradient Card or LazyImage.",
|
|
13793
|
+
"body": "Article text; Heading, Text, Code, Alert.",
|
|
13794
|
+
"toc": "Sticky table of contents; Card with a list of anchor links.",
|
|
13795
|
+
"share": "Share and reaction row; Button, IconButton, CopyButton.",
|
|
13796
|
+
"related": "Related posts; Card grid."
|
|
11989
13797
|
},
|
|
11990
13798
|
"notes": [
|
|
11991
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13799
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13800
|
+
"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."
|
|
11992
13801
|
]
|
|
11993
13802
|
},
|
|
11994
13803
|
{
|
|
11995
|
-
"name": "
|
|
11996
|
-
"tag": "
|
|
13804
|
+
"name": "PageChangelog",
|
|
13805
|
+
"tag": "UiPageChangelog",
|
|
11997
13806
|
"group": "pages",
|
|
11998
|
-
"description": "
|
|
13807
|
+
"description": "Changelog template: release timeline grouped by version with new, fix and improved tags, a filter and a subscribe card.",
|
|
11999
13808
|
"props": {
|
|
12000
13809
|
"title": {
|
|
12001
13810
|
"forwarded": true,
|
|
@@ -12016,19 +13825,20 @@
|
|
|
12016
13825
|
"slots": {
|
|
12017
13826
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12018
13827
|
"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).",
|
|
12019
|
-
"
|
|
12020
|
-
"
|
|
13828
|
+
"filters": "Tag filter; FilterChips, SearchInput.",
|
|
13829
|
+
"timeline": "Releases grouped by version; Card, Chip, Divider.",
|
|
13830
|
+
"subscribe": "Sticky subscribe card; Card, TextField, Button."
|
|
12021
13831
|
},
|
|
12022
13832
|
"notes": [
|
|
12023
13833
|
"Place inside AppShell; fill only the slots you need.",
|
|
12024
|
-
"
|
|
13834
|
+
"Filters and timeline share the main column; the subscribe card is a sticky side column."
|
|
12025
13835
|
]
|
|
12026
13836
|
},
|
|
12027
13837
|
{
|
|
12028
|
-
"name": "
|
|
12029
|
-
"tag": "
|
|
13838
|
+
"name": "PageHelp",
|
|
13839
|
+
"tag": "UiPageHelp",
|
|
12030
13840
|
"group": "pages",
|
|
12031
|
-
"description": "
|
|
13841
|
+
"description": "Help center home: search, category grid, popular articles and a contact card.",
|
|
12032
13842
|
"props": {
|
|
12033
13843
|
"title": {
|
|
12034
13844
|
"forwarded": true,
|
|
@@ -12049,19 +13859,21 @@
|
|
|
12049
13859
|
"slots": {
|
|
12050
13860
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12051
13861
|
"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).",
|
|
12052
|
-
"
|
|
12053
|
-
"
|
|
12054
|
-
"
|
|
13862
|
+
"search": "Large search field; SearchInput.",
|
|
13863
|
+
"categories": "Category tiles; Card with IconTile.",
|
|
13864
|
+
"popular": "Popular articles list; Card.",
|
|
13865
|
+
"contact": "Contact options; Card, Button."
|
|
12055
13866
|
},
|
|
12056
13867
|
"notes": [
|
|
12057
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13868
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13869
|
+
"Popular articles and contact share a row and wrap on narrow screens. For a single question list use PageFaq."
|
|
12058
13870
|
]
|
|
12059
13871
|
},
|
|
12060
13872
|
{
|
|
12061
|
-
"name": "
|
|
12062
|
-
"tag": "
|
|
13873
|
+
"name": "PageStates",
|
|
13874
|
+
"tag": "UiPageStates",
|
|
12063
13875
|
"group": "pages",
|
|
12064
|
-
"description": "
|
|
13876
|
+
"description": "State gallery: empty list, no results, no permission, offline, error with retry, loading and success on one page.",
|
|
12065
13877
|
"props": {
|
|
12066
13878
|
"title": {
|
|
12067
13879
|
"forwarded": true,
|
|
@@ -12082,20 +13894,24 @@
|
|
|
12082
13894
|
"slots": {
|
|
12083
13895
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12084
13896
|
"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).",
|
|
12085
|
-
"
|
|
12086
|
-
"
|
|
12087
|
-
"
|
|
12088
|
-
"
|
|
13897
|
+
"empty": "Empty list; EmptyState with a primary action.",
|
|
13898
|
+
"noresults": "No search results; EmptyState with a reset action.",
|
|
13899
|
+
"forbidden": "No permission; EmptyState with a request-access action.",
|
|
13900
|
+
"offline": "Offline; DataState state=\"offline\".",
|
|
13901
|
+
"error": "Error with retry; DataState state=\"error\".",
|
|
13902
|
+
"loading": "Loading; Skeleton or DataState state=\"loading\".",
|
|
13903
|
+
"success": "Success confirmation; Alert tone=\"success\" or EmptyState."
|
|
12089
13904
|
},
|
|
12090
13905
|
"notes": [
|
|
12091
|
-
"Place inside AppShell; fill only the slots you need."
|
|
13906
|
+
"Place inside AppShell; fill only the slots you need.",
|
|
13907
|
+
"The first six slots sit in two rows of auto-fit cards; success spans the full width."
|
|
12092
13908
|
]
|
|
12093
13909
|
},
|
|
12094
13910
|
{
|
|
12095
|
-
"name": "
|
|
12096
|
-
"tag": "
|
|
13911
|
+
"name": "PageLegal",
|
|
13912
|
+
"tag": "UiPageLegal",
|
|
12097
13913
|
"group": "pages",
|
|
12098
|
-
"description": "
|
|
13914
|
+
"description": "Legal document template: last-updated line, sticky table of contents, numbered sections and a contact card.",
|
|
12099
13915
|
"props": {
|
|
12100
13916
|
"title": {
|
|
12101
13917
|
"forwarded": true,
|
|
@@ -12116,22 +13932,21 @@
|
|
|
12116
13932
|
"slots": {
|
|
12117
13933
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12118
13934
|
"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).",
|
|
12119
|
-
"
|
|
12120
|
-
"
|
|
12121
|
-
"
|
|
12122
|
-
"
|
|
12123
|
-
"table": "Rows behind the numbers; DataTable."
|
|
13935
|
+
"meta": "Version, last-updated date and print or download buttons; Chip, Button.",
|
|
13936
|
+
"toc": "Sticky table of contents; Card with anchor links.",
|
|
13937
|
+
"document": "Document sections; Card, Heading, Text.",
|
|
13938
|
+
"contact": "Questions card; Card, Button."
|
|
12124
13939
|
},
|
|
12125
13940
|
"notes": [
|
|
12126
13941
|
"Place inside AppShell; fill only the slots you need.",
|
|
12127
|
-
"
|
|
13942
|
+
"The table of contents sits left of the document and stacks above it under 860 px."
|
|
12128
13943
|
]
|
|
12129
13944
|
},
|
|
12130
13945
|
{
|
|
12131
|
-
"name": "
|
|
12132
|
-
"tag": "
|
|
13946
|
+
"name": "PageLocations",
|
|
13947
|
+
"tag": "UiPageLocations",
|
|
12133
13948
|
"group": "pages",
|
|
12134
|
-
"description": "
|
|
13949
|
+
"description": "Locations template: filters, a scrollable list of places and a sticky map panel.",
|
|
12135
13950
|
"props": {
|
|
12136
13951
|
"title": {
|
|
12137
13952
|
"forwarded": true,
|
|
@@ -12152,21 +13967,20 @@
|
|
|
12152
13967
|
"slots": {
|
|
12153
13968
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12154
13969
|
"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
|
-
"
|
|
12156
|
-
"
|
|
12157
|
-
"
|
|
12158
|
-
"details": "Selected event; Card, Descriptions, Avatar, Button."
|
|
13970
|
+
"filters": "Search and category filters; SearchInput, FilterChips.",
|
|
13971
|
+
"list": "Places list; Card rows.",
|
|
13972
|
+
"map": "Map panel; Map, or a gradient placeholder."
|
|
12159
13973
|
},
|
|
12160
13974
|
"notes": [
|
|
12161
13975
|
"Place inside AppShell; fill only the slots you need.",
|
|
12162
|
-
"The
|
|
13976
|
+
"The list is a fixed-width column left of the map; under 860 px the map goes below the list."
|
|
12163
13977
|
]
|
|
12164
13978
|
},
|
|
12165
13979
|
{
|
|
12166
|
-
"name": "
|
|
12167
|
-
"tag": "
|
|
13980
|
+
"name": "PageBookingFlow",
|
|
13981
|
+
"tag": "UiPageBookingFlow",
|
|
12168
13982
|
"group": "pages",
|
|
12169
|
-
"description": "
|
|
13983
|
+
"description": "Booking flow template: stepper, the active step content, back and continue buttons and a sticky summary card.",
|
|
12170
13984
|
"props": {
|
|
12171
13985
|
"title": {
|
|
12172
13986
|
"forwarded": true,
|
|
@@ -12187,20 +14001,21 @@
|
|
|
12187
14001
|
"slots": {
|
|
12188
14002
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12189
14003
|
"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
|
-
"
|
|
12191
|
-
"
|
|
12192
|
-
"
|
|
14004
|
+
"steps": "Progress; Stepper.",
|
|
14005
|
+
"content": "Content of the active step (search, pick, guests, confirm); Card, DatePicker, OptionCards, NumberInput.",
|
|
14006
|
+
"nav": "Back and Continue buttons.",
|
|
14007
|
+
"summary": "Booking summary; Card, Descriptions."
|
|
12193
14008
|
},
|
|
12194
14009
|
"notes": [
|
|
12195
14010
|
"Place inside AppShell; fill only the slots you need.",
|
|
12196
|
-
"
|
|
14011
|
+
"Render only the active step in content. The summary stays visible on the right and goes below the step under 860 px."
|
|
12197
14012
|
]
|
|
12198
14013
|
},
|
|
12199
14014
|
{
|
|
12200
|
-
"name": "
|
|
12201
|
-
"tag": "
|
|
14015
|
+
"name": "PageItinerary",
|
|
14016
|
+
"tag": "UiPageItinerary",
|
|
12202
14017
|
"group": "pages",
|
|
12203
|
-
"description": "
|
|
14018
|
+
"description": "Itinerary template: day tabs, a timeline of stops for the chosen day, transport and hotel blocks and a sticky trip summary card.",
|
|
12204
14019
|
"props": {
|
|
12205
14020
|
"title": {
|
|
12206
14021
|
"forwarded": true,
|
|
@@ -12221,22 +14036,22 @@
|
|
|
12221
14036
|
"slots": {
|
|
12222
14037
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12223
14038
|
"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
|
-
"
|
|
12225
|
-
"
|
|
12226
|
-
"
|
|
12227
|
-
"
|
|
12228
|
-
"
|
|
14039
|
+
"days": "Day switcher; Tabs or PillTabs.",
|
|
14040
|
+
"timeline": "Stops of the active day with times and places; Card, Timeline, StatRow.",
|
|
14041
|
+
"transport": "Flights, buses and transfers of the day; Card, StatRow.",
|
|
14042
|
+
"hotel": "Where the group stays that night; Card, Badge, IconTile.",
|
|
14043
|
+
"summary": "Trip summary; Card, Descriptions, Progress."
|
|
12229
14044
|
},
|
|
12230
14045
|
"notes": [
|
|
12231
14046
|
"Place inside AppShell; fill only the slots you need.",
|
|
12232
|
-
"
|
|
14047
|
+
"Render only the active day in timeline, transport and hotel. The summary stays visible on the right and goes below the day under 860 px."
|
|
12233
14048
|
]
|
|
12234
14049
|
},
|
|
12235
14050
|
{
|
|
12236
|
-
"name": "
|
|
12237
|
-
"tag": "
|
|
14051
|
+
"name": "PagePrayer",
|
|
14052
|
+
"tag": "UiPagePrayer",
|
|
12238
14053
|
"group": "pages",
|
|
12239
|
-
"description": "
|
|
14054
|
+
"description": "Prayer times template: a location picker, today's times with the next prayer highlighted, a month table and a sticky Qibla compass.",
|
|
12240
14055
|
"props": {
|
|
12241
14056
|
"title": {
|
|
12242
14057
|
"forwarded": true,
|
|
@@ -12257,21 +14072,21 @@
|
|
|
12257
14072
|
"slots": {
|
|
12258
14073
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12259
14074
|
"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
|
-
"
|
|
12261
|
-
"
|
|
12262
|
-
"
|
|
12263
|
-
"
|
|
14075
|
+
"location": "City and method pickers; Select, PillSelect, SegmentedControl.",
|
|
14076
|
+
"today": "Today's prayers and the countdown to the next one; Card, PrayerTimes.",
|
|
14077
|
+
"month": "Prayer times for the whole month; Card, DataTable.",
|
|
14078
|
+
"qibla": "Qibla direction; Card, QiblaCompass."
|
|
12264
14079
|
},
|
|
12265
14080
|
"notes": [
|
|
12266
14081
|
"Place inside AppShell; fill only the slots you need.",
|
|
12267
|
-
"
|
|
14082
|
+
"The Qibla card stays visible on the right and goes below the times under 860 px."
|
|
12268
14083
|
]
|
|
12269
14084
|
},
|
|
12270
14085
|
{
|
|
12271
|
-
"name": "
|
|
12272
|
-
"tag": "
|
|
14086
|
+
"name": "PageGroupManager",
|
|
14087
|
+
"tag": "UiPageGroupManager",
|
|
12273
14088
|
"group": "pages",
|
|
12274
|
-
"description": "
|
|
14089
|
+
"description": "Group manager template: trip summary, pilgrims table with document and visa status, bulk actions, rooming and a sticky payments summary.",
|
|
12275
14090
|
"props": {
|
|
12276
14091
|
"title": {
|
|
12277
14092
|
"forwarded": true,
|
|
@@ -12292,21 +14107,23 @@
|
|
|
12292
14107
|
"slots": {
|
|
12293
14108
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12294
14109
|
"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
|
-
"
|
|
12296
|
-
"
|
|
12297
|
-
"
|
|
12298
|
-
"
|
|
14110
|
+
"trip": "Trip header with dates, route and counters; Card, StatStrip, Progress.",
|
|
14111
|
+
"toolbar": "Search and status filters; SearchInput, FilterChips.",
|
|
14112
|
+
"bulk": "Actions for the selected pilgrims; Button, Badge.",
|
|
14113
|
+
"pilgrims": "Pilgrims table with documents and visa; Card, DataTable, Badge.",
|
|
14114
|
+
"rooms": "Rooming assignment; Card, RoomGrid.",
|
|
14115
|
+
"payments": "Payments summary and manager contact; Card, Progress, ContactPanel."
|
|
12299
14116
|
},
|
|
12300
14117
|
"notes": [
|
|
12301
14118
|
"Place inside AppShell; fill only the slots you need.",
|
|
12302
|
-
"
|
|
14119
|
+
"The payments card stays visible on the right and goes below the table under 860 px."
|
|
12303
14120
|
]
|
|
12304
14121
|
},
|
|
12305
14122
|
{
|
|
12306
|
-
"name": "
|
|
12307
|
-
"tag": "
|
|
14123
|
+
"name": "PageTourPublic",
|
|
14124
|
+
"tag": "UiPageTourPublic",
|
|
12308
14125
|
"group": "pages",
|
|
12309
|
-
"description": "
|
|
14126
|
+
"description": "Public tour page: header, gradient gallery area, highlights, itinerary accordion, included and excluded lists, reviews and a sticky price and booking card. Has no shell and follows the theme.",
|
|
12310
14127
|
"props": {
|
|
12311
14128
|
"title": {
|
|
12312
14129
|
"forwarded": true,
|
|
@@ -12327,14 +14144,16 @@
|
|
|
12327
14144
|
"slots": {
|
|
12328
14145
|
"header": "Custom page header; replaces the built-in title/subtitle/crumbs header.",
|
|
12329
14146
|
"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
|
-
"
|
|
12331
|
-
"
|
|
12332
|
-
"
|
|
12333
|
-
"
|
|
14147
|
+
"gallery": "Hero area made of gradients or photos; Gallery, Card.",
|
|
14148
|
+
"highlights": "Key facts and highlights; StatStrip, IconTile.",
|
|
14149
|
+
"itinerary": "Day by day program; Accordion.",
|
|
14150
|
+
"included": "What the price includes and excludes; Card, Descriptions.",
|
|
14151
|
+
"reviews": "Pilgrim reviews; Card, Rating, Avatar.",
|
|
14152
|
+
"booking": "Price, dates, seats and the booking button; Card, Button."
|
|
12334
14153
|
},
|
|
12335
14154
|
"notes": [
|
|
12336
|
-
"
|
|
12337
|
-
"
|
|
14155
|
+
"Render the page on its own, without AppShell: it supplies its own width and padding in your layout.",
|
|
14156
|
+
"The booking card stays visible on the right and goes below the content under 860 px."
|
|
12338
14157
|
]
|
|
12339
14158
|
},
|
|
12340
14159
|
{
|