@saasicat/ui-vue 0.21.0 → 0.22.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/dist/{catalog-BY_t9prv.d.cts → catalog-DJcfm5N2.d.cts} +20 -7
- package/dist/{catalog-BY_t9prv.d.ts → catalog-DJcfm5N2.d.ts} +20 -7
- package/dist/{chunk-JN6HZGLV.js → chunk-F7NRM6KI.js} +54 -28
- package/dist/{chunk-7IFKVGZV.js → chunk-LY52T4N4.js} +21 -2
- package/dist/{chunk-OTP3OSSW.js → chunk-XMMFN2WJ.js} +74 -3
- package/dist/client/index.cjs +132 -29
- package/dist/client/index.d.cts +53 -3
- package/dist/client/index.d.ts +53 -3
- package/dist/client/index.js +14 -2
- package/dist/index.cjs +319 -162
- package/dist/index.d.cts +30 -8
- package/dist/index.d.ts +30 -8
- package/dist/index.js +176 -133
- package/dist/quasar/index.cjs +76 -29
- package/dist/quasar/index.d.cts +2 -2
- package/dist/quasar/index.d.ts +2 -2
- package/dist/quasar/index.js +6 -2
- package/dist/testing-e2e/admin-pages-suite.d.cts +37 -0
- package/dist/testing-e2e/admin-pages-suite.d.ts +37 -0
- package/dist/{use-super-admin-i18n-c_Eqsu9u.d.ts → use-super-admin-i18n-CHNdsSlm.d.ts} +34 -7
- package/dist/{use-super-admin-i18n-DlJRGIVq.d.cts → use-super-admin-i18n-CgTuNi8h.d.cts} +34 -7
- package/package.json +18 -8
- package/src/client/i18n/messages/bundles.ts +0 -2
- package/src/client/i18n/messages/common.ts +22 -0
- package/src/client/i18n/messages/discovery.ts +2 -2
- package/src/client/i18n/messages/marketing.ts +2 -4
- package/src/client/i18n/messages/plan-detail.ts +0 -4
- package/src/client/i18n/messages/plans.ts +20 -8
- package/src/client/i18n/messages/tenants.ts +0 -2
- package/src/client/index.ts +1 -0
- package/src/client/manifest-loader.ts +1 -1
- package/src/client/resolve-plans.ts +144 -0
- package/src/components/BundleVersionPublishDialog.vue +6 -6
- package/src/components/KvBlock.vue +4 -4
- package/src/components/MarketingPromotionsTab.vue +34 -48
- package/src/components/MfaPromptDialog.vue +8 -2
- package/src/components/TenantActionConfirmDialog.vue +4 -4
- package/src/components/VersionDiffPreview.vue +7 -7
- package/src/components/admin-page/AdminFilters.vue +12 -0
- package/src/components/admin-page/AdminHero.vue +22 -5
- package/src/components/admin-page/AdminKpi.vue +84 -0
- package/src/components/admin-page/AdminPaginator.vue +195 -0
- package/src/components/admin-page/AdminRefreshBtn.vue +39 -0
- package/src/components/admin-page/AdminSection.vue +31 -16
- package/src/components/admin-page/AdminStatistics.vue +40 -0
- package/src/components/admin-page/AdminTable.vue +175 -0
- package/src/components/bundle-editor/BundleCreatePanel.vue +23 -23
- package/src/components/bundle-editor/BundleFeaturesEditor.vue +7 -7
- package/src/components/bundle-editor/BundlePlanCompatPicker.vue +9 -9
- package/src/components/bundle-editor/BundleQuotasEditor.vue +11 -11
- package/src/components/bundle-editor/BundleStatusBanner.vue +6 -6
- package/src/components/bundle-editor/BundleVersionInlineEditor.vue +18 -18
- package/src/components/bundle-editor/BundleVersionStrip.vue +12 -12
- package/src/components/dialogs/PilotCreateDialog.vue +12 -12
- package/src/components/dialogs/PilotEditDialog.vue +7 -7
- package/src/components/dialogs/PromoCodeCreateDialog.vue +8 -8
- package/src/components/dialogs/PromoCodeDialogFields.vue +33 -19
- package/src/components/dialogs/PromoCodeEditDialog.vue +10 -10
- package/src/components/plan/PlanGrid.vue +1 -1
- package/src/components/plan-create-dialog/PlanCreateDialog.vue +34 -46
- package/src/components/plan-detail/PlanDetail.vue +92 -302
- package/src/components/plan-detail/PlanDetailKpis.vue +22 -27
- package/src/components/plan-detail/PlanTitleEdit.vue +133 -0
- package/src/components/plan-list/PlanList.vue +72 -290
- package/src/components/plan-matrix/PlanMatrix.vue +66 -183
- package/src/components/plan-review/PlanReview.vue +191 -275
- package/src/components/plan-version-editor/PlanCatalogPreview.vue +7 -5
- package/src/components/plan-version-editor/PlanVersionEditor.vue +200 -295
- package/src/components/plan-version-editor/PlanVersionEditorHeader.vue +23 -55
- package/src/index.ts +1 -0
- package/src/pages-standard/AdminLayout.vue +34 -10
- package/src/pages-standard/AdminManifestErrorPage.vue +79 -9
- package/src/pages-standard/AuditPage.vue +53 -72
- package/src/pages-standard/BundlesPage.vue +128 -144
- package/src/pages-standard/DashboardPage.vue +43 -107
- package/src/pages-standard/DiscoveryPage.vue +158 -200
- package/src/pages-standard/EmailHistoryPage.vue +98 -88
- package/src/pages-standard/MarketingCatalogPage.vue +237 -267
- package/src/pages-standard/PilotsPage.vue +44 -60
- package/src/pages-standard/PlansPage.vue +230 -105
- package/src/pages-standard/PlatformEmailPage.vue +37 -40
- package/src/pages-standard/PromoCodeDetailPage.vue +16 -30
- package/src/pages-standard/PromoCodesPage.vue +86 -112
- package/src/pages-standard/SubscriptionsPage.vue +10 -17
- package/src/pages-standard/SuperAdminLoginPage.vue +12 -12
- package/src/pages-standard/SuperAdminSetupWizard.vue +20 -17
- package/src/pages-standard/TenantDetailPage.vue +45 -41
- package/src/pages-standard/TenantsPage.vue +184 -264
- package/src/pages-standard/UsersPage.vue +69 -104
- package/src/pages-standard/bundles-page/BundleAccordionList.vue +20 -17
- package/src/pages-standard/bundles-page/BundlesKpis.vue +13 -22
- package/src/pages-standard/bundles-page/BundlesToolbar.vue +6 -10
- package/src/pages-standard/discovery-page/CatalogEntryTransPanel.vue +10 -10
- package/src/pages-standard/discovery-page/DiscoveryCapList.vue +5 -5
- package/src/pages-standard/discovery-page/DiscoveryFeatureCard.vue +16 -16
- package/src/pages-standard/discovery-page/DiscoveryKpis.vue +31 -27
- package/src/pages-standard/discovery-page/DiscoveryQuotaCard.vue +7 -7
- package/src/pages-standard/marketing-catalog/MarketingCatalogAdmin.vue +1 -1
- package/src/pages-standard/marketing-catalog/MarketingCatalogHeader.vue +2 -13
- package/src/pages-standard/plan-versions/PlanDiffCard.vue +6 -6
- package/src/pages-standard/plan-versions/PlanVersionsDiff.vue +6 -6
- package/src/pages-standard/plan-versions/PlanVersionsTimeline.vue +16 -16
- package/src/pages-standard/plans-page/PlanBundleOverview.vue +14 -29
- package/src/pages-standard/plans-page/PlanPublishDialog.vue +1 -1
- package/src/pages-standard/plans-page/PlansPageToast.vue +1 -1
- package/src/pages-standard/sa-theme.css +481 -71
- package/src/pages-standard/tenant-detail/TenantUsers.vue +2 -8
- package/src/pages-standard/tenants/StatusPill.vue +2 -2
- package/src/pages-tenant/MySubscriptionBundlesPage.vue +25 -25
- package/src/pages-tenant/OnboardingConfigurator.vue +1 -5
- package/src/pages-tenant/PackageSnapshotPanel.vue +1 -1
- package/src/pages-tenant/TenantPlanSection.vue +12 -20
- package/src/quasar/create-super-admin-app.ts +4 -0
- package/src/vue/entitlement-provider.ts +0 -1
- package/src/vue/feature-router-guard.ts +0 -1
- package/src/vue/super-admin-context.ts +106 -1
- package/src/vue/use-api-list.ts +2 -1
- package/src/vue/use-pagination.ts +63 -0
- package/src/vue/use-plans.ts +1 -2
- package/src/vue/use-sign-out.ts +90 -0
- package/src/vue/use-tenant-billing.ts +1 -1
- package/src/vue/use-tenant-manifest.ts +0 -1
- package/src/components/KpiCard.vue +0 -53
- package/src/components/plan-cockpit/PlanCockpit.vue +0 -1027
- package/src/components/plan-cockpit/PlanCockpitAuditLog.vue +0 -72
- package/src/components/plan-cockpit/PlanCockpitDiffPanel.vue +0 -99
- package/src/components/plan-cockpit/PlanCockpitHeader.vue +0 -101
- package/src/components/plan-cockpit/PlanCockpitImpactPanel.vue +0 -112
- package/src/components/plan-cockpit/PlanCockpitKpis.vue +0 -68
- package/src/components/plan-cockpit/PlanCockpitVersions.vue +0 -249
- package/src/components/plan-cockpit/types.ts +0 -72
- package/src/components/plan-detail/PlanDetailHeader.vue +0 -194
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<q-dialog
|
|
3
3
|
:model-value="modelValue"
|
|
4
|
-
@update:model-value="$emit('update:modelValue', $event)"
|
|
5
4
|
persistent
|
|
6
5
|
:no-shake="true"
|
|
6
|
+
@update:model-value="$emit('update:modelValue', $event)"
|
|
7
7
|
>
|
|
8
8
|
<div class="pcd-modal" role="dialog" aria-labelledby="pcd-title">
|
|
9
9
|
<div class="pcd-head">
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
<div class="pcd-field">
|
|
52
52
|
<div class="pcd-field-label">{{ msg.createDialog.labelDisplayName }}</div>
|
|
53
53
|
<input
|
|
54
|
+
v-model="form.label"
|
|
54
55
|
class="pcd-input"
|
|
55
56
|
:placeholder="msg.createDialog.placeholderDisplayName"
|
|
56
|
-
v-model="form.label"
|
|
57
57
|
/>
|
|
58
58
|
<div class="pcd-hint">{{ msg.createDialog.hintDisplayName }}</div>
|
|
59
59
|
</div>
|
|
@@ -62,10 +62,10 @@
|
|
|
62
62
|
<div class="pcd-field">
|
|
63
63
|
<div class="pcd-field-label">{{ common.description }}</div>
|
|
64
64
|
<textarea
|
|
65
|
+
v-model="form.description"
|
|
65
66
|
class="pcd-input pcd-input--textarea"
|
|
66
67
|
rows="2"
|
|
67
68
|
:placeholder="msg.createDialog.placeholderDescription"
|
|
68
|
-
v-model="form.description"
|
|
69
69
|
/>
|
|
70
70
|
</div>
|
|
71
71
|
|
|
@@ -280,26 +280,14 @@ function onCancel(): void {
|
|
|
280
280
|
|
|
281
281
|
<style scoped>
|
|
282
282
|
.pcd-modal {
|
|
283
|
-
--
|
|
284
|
-
--pcd-border: #e5e7eb;
|
|
285
|
-
--pcd-border-strong: #d1d5db;
|
|
286
|
-
--pcd-text: #0f172a;
|
|
287
|
-
--pcd-text-2: #475569;
|
|
288
|
-
--pcd-text-3: #94a3b8;
|
|
289
|
-
--pcd-primary: #2563eb;
|
|
290
|
-
--pcd-primary-700: #1d4ed8;
|
|
291
|
-
--pcd-danger: #ef4444;
|
|
292
|
-
--pcd-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
|
|
293
|
-
--pcd-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
|
|
294
|
-
|
|
295
|
-
background: var(--pcd-bg);
|
|
283
|
+
background: var(--sa-bg-app);
|
|
296
284
|
width: 640px;
|
|
297
285
|
max-width: 92vw;
|
|
298
286
|
border-radius: 14px;
|
|
299
287
|
box-shadow: 0 24px 60px rgba(15, 23, 42, 0.3);
|
|
300
288
|
overflow: hidden;
|
|
301
|
-
font-family: var(--
|
|
302
|
-
color: var(--
|
|
289
|
+
font-family: var(--sa-font-body);
|
|
290
|
+
color: var(--sa-heading);
|
|
303
291
|
}
|
|
304
292
|
.pcd-modal * {
|
|
305
293
|
box-sizing: border-box;
|
|
@@ -307,7 +295,7 @@ function onCancel(): void {
|
|
|
307
295
|
|
|
308
296
|
.pcd-head {
|
|
309
297
|
padding: 18px 22px;
|
|
310
|
-
border-bottom: 1px solid var(--
|
|
298
|
+
border-bottom: 1px solid var(--sa-border);
|
|
311
299
|
display: flex;
|
|
312
300
|
align-items: flex-start;
|
|
313
301
|
gap: 12px;
|
|
@@ -323,7 +311,7 @@ function onCancel(): void {
|
|
|
323
311
|
}
|
|
324
312
|
.pcd-sub {
|
|
325
313
|
font-size: 12px;
|
|
326
|
-
color:
|
|
314
|
+
color: var(--sa-muted);
|
|
327
315
|
margin-top: 3px;
|
|
328
316
|
}
|
|
329
317
|
.pcd-close {
|
|
@@ -332,14 +320,14 @@ function onCancel(): void {
|
|
|
332
320
|
border-radius: 6px;
|
|
333
321
|
background: transparent;
|
|
334
322
|
border: 0;
|
|
335
|
-
color: var(--
|
|
323
|
+
color: var(--sa-muted-light);
|
|
336
324
|
cursor: pointer;
|
|
337
325
|
display: grid;
|
|
338
326
|
place-items: center;
|
|
339
327
|
}
|
|
340
328
|
.pcd-close:hover {
|
|
341
329
|
background: rgba(15, 23, 42, 0.05);
|
|
342
|
-
color: var(--
|
|
330
|
+
color: var(--sa-heading);
|
|
343
331
|
}
|
|
344
332
|
|
|
345
333
|
.pcd-body {
|
|
@@ -376,22 +364,22 @@ function onCancel(): void {
|
|
|
376
364
|
margin-bottom: 6px;
|
|
377
365
|
}
|
|
378
366
|
.pcd-kbd {
|
|
379
|
-
font: 600 10.5px var(--
|
|
380
|
-
background:
|
|
381
|
-
color:
|
|
367
|
+
font: 600 10.5px var(--sa-font-mono);
|
|
368
|
+
background: var(--sa-border-soft);
|
|
369
|
+
color: var(--sa-muted-dark);
|
|
382
370
|
padding: 2px 6px;
|
|
383
371
|
border-radius: 4px;
|
|
384
|
-
border: 1px solid
|
|
372
|
+
border: 1px solid var(--sa-border);
|
|
385
373
|
letter-spacing: 0.04em;
|
|
386
374
|
}
|
|
387
375
|
.pcd-input {
|
|
388
376
|
width: 100%;
|
|
389
377
|
padding: 9px 12px;
|
|
390
378
|
background: #fff;
|
|
391
|
-
border: 1px solid var(--
|
|
379
|
+
border: 1px solid var(--sa-border);
|
|
392
380
|
border-radius: 7px;
|
|
393
|
-
font: 13.5px var(--
|
|
394
|
-
color: var(--
|
|
381
|
+
font: 13.5px var(--sa-font-body);
|
|
382
|
+
color: var(--sa-heading);
|
|
395
383
|
outline: none;
|
|
396
384
|
transition:
|
|
397
385
|
border-color 0.12s,
|
|
@@ -403,22 +391,22 @@ function onCancel(): void {
|
|
|
403
391
|
line-height: 1.5;
|
|
404
392
|
}
|
|
405
393
|
.pcd-input:focus {
|
|
406
|
-
border-color: var(--
|
|
394
|
+
border-color: var(--sa-primary);
|
|
407
395
|
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
|
|
408
396
|
}
|
|
409
397
|
.pcd-input--error {
|
|
410
|
-
border-color: var(--
|
|
398
|
+
border-color: var(--sa-negative);
|
|
411
399
|
}
|
|
412
400
|
.pcd-input--error:focus {
|
|
413
401
|
box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
|
|
414
402
|
}
|
|
415
403
|
.pcd-hint {
|
|
416
404
|
font-size: 11px;
|
|
417
|
-
color: var(--
|
|
405
|
+
color: var(--sa-muted-light);
|
|
418
406
|
margin-top: 4px;
|
|
419
407
|
}
|
|
420
408
|
.pcd-hint--error {
|
|
421
|
-
color: var(--
|
|
409
|
+
color: var(--sa-negative);
|
|
422
410
|
}
|
|
423
411
|
|
|
424
412
|
.pcd-choice-grid {
|
|
@@ -427,7 +415,7 @@ function onCancel(): void {
|
|
|
427
415
|
gap: 8px;
|
|
428
416
|
}
|
|
429
417
|
.pcd-choice {
|
|
430
|
-
border: 1.5px solid var(--
|
|
418
|
+
border: 1.5px solid var(--sa-border);
|
|
431
419
|
border-radius: 9px;
|
|
432
420
|
padding: 12px 14px;
|
|
433
421
|
cursor: pointer;
|
|
@@ -443,27 +431,27 @@ function onCancel(): void {
|
|
|
443
431
|
font-family: inherit;
|
|
444
432
|
}
|
|
445
433
|
.pcd-choice:hover {
|
|
446
|
-
background:
|
|
434
|
+
background: var(--sa-bg-surface-2);
|
|
447
435
|
}
|
|
448
436
|
.pcd-choice--selected {
|
|
449
|
-
border-color: var(--
|
|
437
|
+
border-color: var(--sa-primary);
|
|
450
438
|
background: #f0f6ff;
|
|
451
439
|
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
|
|
452
440
|
}
|
|
453
441
|
.pcd-choice-title {
|
|
454
442
|
font-size: 13px;
|
|
455
443
|
font-weight: 600;
|
|
456
|
-
color: var(--
|
|
444
|
+
color: var(--sa-heading);
|
|
457
445
|
}
|
|
458
446
|
.pcd-choice-sub {
|
|
459
447
|
font-size: 11.5px;
|
|
460
|
-
color:
|
|
448
|
+
color: var(--sa-muted);
|
|
461
449
|
}
|
|
462
450
|
|
|
463
451
|
.pcd-foot {
|
|
464
452
|
padding: 14px 22px;
|
|
465
453
|
background: #fbfbfd;
|
|
466
|
-
border-top: 1px solid var(--
|
|
454
|
+
border-top: 1px solid var(--sa-border);
|
|
467
455
|
display: flex;
|
|
468
456
|
justify-content: flex-end;
|
|
469
457
|
gap: 8px;
|
|
@@ -474,17 +462,17 @@ function onCancel(): void {
|
|
|
474
462
|
gap: 7px;
|
|
475
463
|
padding: 9px 16px;
|
|
476
464
|
border-radius: 7px;
|
|
477
|
-
font: 500 13px var(--
|
|
465
|
+
font: 500 13px var(--sa-font-body);
|
|
478
466
|
cursor: pointer;
|
|
479
|
-
border: 1px solid var(--
|
|
467
|
+
border: 1px solid var(--sa-border-strong);
|
|
480
468
|
background: #fff;
|
|
481
|
-
color: var(--
|
|
469
|
+
color: var(--sa-heading);
|
|
482
470
|
transition:
|
|
483
471
|
background 0.12s,
|
|
484
472
|
border-color 0.12s;
|
|
485
473
|
}
|
|
486
474
|
.pcd-btn:hover:not(:disabled) {
|
|
487
|
-
background:
|
|
475
|
+
background: var(--sa-bg-surface-2);
|
|
488
476
|
}
|
|
489
477
|
.pcd-btn:disabled {
|
|
490
478
|
cursor: not-allowed;
|
|
@@ -498,12 +486,12 @@ function onCancel(): void {
|
|
|
498
486
|
background: rgba(15, 23, 42, 0.05);
|
|
499
487
|
}
|
|
500
488
|
.pcd-btn--primary {
|
|
501
|
-
background: var(--
|
|
502
|
-
border-color: var(--
|
|
489
|
+
background: var(--sa-primary);
|
|
490
|
+
border-color: var(--sa-primary);
|
|
503
491
|
color: #fff;
|
|
504
492
|
}
|
|
505
493
|
.pcd-btn--primary:hover:not(:disabled) {
|
|
506
|
-
background: var(--
|
|
494
|
+
background: var(--sa-primary-strong);
|
|
507
495
|
}
|
|
508
496
|
.pcd-ico {
|
|
509
497
|
display: inline-flex;
|