@saasicat/ui-vue 0.23.0 → 0.24.1
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/{chunk-XMMFN2WJ.js → chunk-D74FFCCP.js} +52 -1
- package/dist/client/index.cjs +58 -0
- package/dist/client/index.d.cts +70 -1
- package/dist/client/index.d.ts +70 -1
- package/dist/client/index.js +15 -1
- package/dist/index.cjs +109 -0
- package/dist/index.d.cts +65 -2
- package/dist/index.d.ts +65 -2
- package/dist/index.js +65 -1
- package/package.json +2 -2
- package/src/client/identity-accents.ts +167 -0
- package/src/client/index.ts +1 -0
- package/src/components/MarketingPromotionsTab.vue +6 -2
- package/src/components/bundle-editor/BundleVersionInlineEditor.vue +1 -1
- package/src/components/dialogs/PromoCodeDialogFields.vue +38 -16
- package/src/components/plan/PromoCodeInput.vue +1 -1
- package/src/components/plan-create-dialog/PlanCreateDialog.vue +1 -1
- package/src/components/plan-detail/PlanDetail.vue +8 -3
- package/src/components/plan-list/PlanList.vue +18 -23
- package/src/components/plan-matrix/PlanMatrix.vue +9 -26
- package/src/components/plan-review/PlanReview.vue +1 -1
- package/src/components/plan-version-editor/PlanVersionEditor.vue +22 -3
- package/src/pages-standard/AdminManifestErrorPage.vue +4 -1
- package/src/pages-standard/BundlesPage.vue +1 -1
- package/src/pages-standard/DashboardPage.vue +8 -5
- package/src/pages-standard/DiscoveryPage.vue +42 -8
- package/src/pages-standard/MarketingCatalogPage.vue +33 -9
- package/src/pages-standard/PromoCodesPage.vue +3 -1
- package/src/pages-standard/SuperAdminLoginPage.vue +6 -1
- package/src/pages-standard/SuperAdminSetupWizard.vue +1 -1
- package/src/pages-standard/TenantsPage.vue +5 -4
- package/src/pages-standard/discovery-page/discovery-ui.ts +10 -7
- package/src/pages-standard/marketing-catalog/MarketingCatalogAdmin.vue +2 -5
- package/src/pages-standard/plan-versions/PlanDiffCard.vue +11 -4
- package/src/pages-standard/plan-versions/PlanVersionsDiff.vue +3 -1
- package/src/pages-standard/tenants/StatusPill.vue +1 -1
- package/src/pages-standard/tenants/format.ts +11 -12
- package/src/pages-tenant/MySubscriptionBundlesPage.vue +9 -0
- package/src/pages-tenant/OnboardingConfigurator.vue +2 -2
- package/src/pages-tenant/PlanChangeWizard.vue +2 -49
- package/src/pages-tenant/TenantPlanSection.vue +6 -48
- package/src/pages-tenant/default-i18n.ts +113 -0
- package/src/ui/theme/_breakpoints.scss +8 -2
- package/src/ui/theme/base.css +13 -1
- package/src/ui/theme/components/card.css +26 -0
- package/src/ui/theme/components/field.css +44 -0
- package/src/ui/theme/components/statistics.css +1 -1
- package/src/ui/theme/tokens.primitive.css +4 -0
- package/src/ui/theme/tokens.semantic.dark.css +12 -0
- package/src/ui/theme/tokens.semantic.light.css +30 -0
|
@@ -630,6 +630,50 @@ function countPlans(resolved) {
|
|
|
630
630
|
};
|
|
631
631
|
}
|
|
632
632
|
|
|
633
|
+
// src/client/identity-accents.ts
|
|
634
|
+
var IDENTITY_ACCENTS = [
|
|
635
|
+
"var(--sa-color-identity-1)",
|
|
636
|
+
"var(--sa-color-identity-2)",
|
|
637
|
+
"var(--sa-color-identity-3)",
|
|
638
|
+
"var(--sa-color-identity-4)",
|
|
639
|
+
"var(--sa-color-identity-5)",
|
|
640
|
+
"var(--sa-color-identity-6)"
|
|
641
|
+
];
|
|
642
|
+
var IDENTITY_ACCENT_VALUES = [
|
|
643
|
+
"#1d4ed8",
|
|
644
|
+
"#6d28d9",
|
|
645
|
+
"#047857",
|
|
646
|
+
"#b45309",
|
|
647
|
+
"#0369a1",
|
|
648
|
+
"#b91c1c"
|
|
649
|
+
];
|
|
650
|
+
var IDENTITY_NEUTRAL_VALUE = "#64748b";
|
|
651
|
+
var IDENTITY_NEUTRAL = "var(--sa-color-identity-neutral)";
|
|
652
|
+
function identityAccentAt(index) {
|
|
653
|
+
if (!Number.isFinite(index) || index < 0) return IDENTITY_NEUTRAL;
|
|
654
|
+
return IDENTITY_ACCENTS[Math.floor(index) % IDENTITY_ACCENTS.length];
|
|
655
|
+
}
|
|
656
|
+
var WELL_KNOWN = {
|
|
657
|
+
STARTER: IDENTITY_NEUTRAL,
|
|
658
|
+
BASIC: IDENTITY_NEUTRAL,
|
|
659
|
+
STANDARD: "var(--sa-color-identity-1)",
|
|
660
|
+
PRO: "var(--sa-color-identity-2)",
|
|
661
|
+
PROFESSIONAL: "var(--sa-color-identity-2)",
|
|
662
|
+
BUSINESS: "var(--sa-color-identity-5)",
|
|
663
|
+
ENTERPRISE: "var(--sa-color-identity-3)"
|
|
664
|
+
};
|
|
665
|
+
function identityAccentFor(key, overrides = {}, index = -1) {
|
|
666
|
+
return overrides[key] ?? WELL_KNOWN[key] ?? identityAccentAt(index);
|
|
667
|
+
}
|
|
668
|
+
var READABLE_ACCENT_SHARE = 50;
|
|
669
|
+
function identityChipStyle(accent) {
|
|
670
|
+
return {
|
|
671
|
+
background: `color-mix(in srgb, ${accent} 8%, transparent)`,
|
|
672
|
+
color: `color-mix(in srgb, ${accent} ${READABLE_ACCENT_SHARE}%, var(--sa-color-fg-heading))`,
|
|
673
|
+
borderColor: `color-mix(in srgb, ${accent} 20%, transparent)`
|
|
674
|
+
};
|
|
675
|
+
}
|
|
676
|
+
|
|
633
677
|
export {
|
|
634
678
|
ADMIN_UI_VERSION,
|
|
635
679
|
HttpJsonError,
|
|
@@ -658,5 +702,12 @@ export {
|
|
|
658
702
|
isFutureScheduled,
|
|
659
703
|
isExpired,
|
|
660
704
|
resolvePlans,
|
|
661
|
-
countPlans
|
|
705
|
+
countPlans,
|
|
706
|
+
IDENTITY_ACCENTS,
|
|
707
|
+
IDENTITY_ACCENT_VALUES,
|
|
708
|
+
IDENTITY_NEUTRAL_VALUE,
|
|
709
|
+
IDENTITY_NEUTRAL,
|
|
710
|
+
identityAccentAt,
|
|
711
|
+
identityAccentFor,
|
|
712
|
+
identityChipStyle
|
|
662
713
|
};
|
package/dist/client/index.cjs
CHANGED
|
@@ -30,6 +30,10 @@ __export(client_exports, {
|
|
|
30
30
|
DEFAULT_SA_LOCALE: () => DEFAULT_SA_LOCALE,
|
|
31
31
|
DEFAULT_STANDARD_PAGE_ROUTES: () => DEFAULT_STANDARD_PAGE_ROUTES,
|
|
32
32
|
HttpJsonError: () => HttpJsonError,
|
|
33
|
+
IDENTITY_ACCENTS: () => IDENTITY_ACCENTS,
|
|
34
|
+
IDENTITY_ACCENT_VALUES: () => IDENTITY_ACCENT_VALUES,
|
|
35
|
+
IDENTITY_NEUTRAL: () => IDENTITY_NEUTRAL,
|
|
36
|
+
IDENTITY_NEUTRAL_VALUE: () => IDENTITY_NEUTRAL_VALUE,
|
|
33
37
|
ManifestLoadError: () => ManifestLoadError,
|
|
34
38
|
ManifestLoader: () => ManifestLoader,
|
|
35
39
|
MissingHandlerError: () => MissingHandlerError,
|
|
@@ -49,6 +53,9 @@ __export(client_exports, {
|
|
|
49
53
|
formatCurrency: () => formatCurrency,
|
|
50
54
|
formatMessage: () => formatMessage,
|
|
51
55
|
getJson: () => getJson,
|
|
56
|
+
identityAccentAt: () => identityAccentAt,
|
|
57
|
+
identityAccentFor: () => identityAccentFor,
|
|
58
|
+
identityChipStyle: () => identityChipStyle,
|
|
52
59
|
isCurrentlyValid: () => isCurrentlyValid,
|
|
53
60
|
isExpired: () => isExpired,
|
|
54
61
|
isFutureScheduled: () => isFutureScheduled,
|
|
@@ -3856,6 +3863,50 @@ function countPlans(resolved) {
|
|
|
3856
3863
|
tenants: resolved.reduce((sum, p) => sum + p.tenantCount, 0)
|
|
3857
3864
|
};
|
|
3858
3865
|
}
|
|
3866
|
+
|
|
3867
|
+
// src/client/identity-accents.ts
|
|
3868
|
+
var IDENTITY_ACCENTS = [
|
|
3869
|
+
"var(--sa-color-identity-1)",
|
|
3870
|
+
"var(--sa-color-identity-2)",
|
|
3871
|
+
"var(--sa-color-identity-3)",
|
|
3872
|
+
"var(--sa-color-identity-4)",
|
|
3873
|
+
"var(--sa-color-identity-5)",
|
|
3874
|
+
"var(--sa-color-identity-6)"
|
|
3875
|
+
];
|
|
3876
|
+
var IDENTITY_ACCENT_VALUES = [
|
|
3877
|
+
"#1d4ed8",
|
|
3878
|
+
"#6d28d9",
|
|
3879
|
+
"#047857",
|
|
3880
|
+
"#b45309",
|
|
3881
|
+
"#0369a1",
|
|
3882
|
+
"#b91c1c"
|
|
3883
|
+
];
|
|
3884
|
+
var IDENTITY_NEUTRAL_VALUE = "#64748b";
|
|
3885
|
+
var IDENTITY_NEUTRAL = "var(--sa-color-identity-neutral)";
|
|
3886
|
+
function identityAccentAt(index) {
|
|
3887
|
+
if (!Number.isFinite(index) || index < 0) return IDENTITY_NEUTRAL;
|
|
3888
|
+
return IDENTITY_ACCENTS[Math.floor(index) % IDENTITY_ACCENTS.length];
|
|
3889
|
+
}
|
|
3890
|
+
var WELL_KNOWN = {
|
|
3891
|
+
STARTER: IDENTITY_NEUTRAL,
|
|
3892
|
+
BASIC: IDENTITY_NEUTRAL,
|
|
3893
|
+
STANDARD: "var(--sa-color-identity-1)",
|
|
3894
|
+
PRO: "var(--sa-color-identity-2)",
|
|
3895
|
+
PROFESSIONAL: "var(--sa-color-identity-2)",
|
|
3896
|
+
BUSINESS: "var(--sa-color-identity-5)",
|
|
3897
|
+
ENTERPRISE: "var(--sa-color-identity-3)"
|
|
3898
|
+
};
|
|
3899
|
+
function identityAccentFor(key, overrides = {}, index = -1) {
|
|
3900
|
+
return overrides[key] ?? WELL_KNOWN[key] ?? identityAccentAt(index);
|
|
3901
|
+
}
|
|
3902
|
+
var READABLE_ACCENT_SHARE = 50;
|
|
3903
|
+
function identityChipStyle(accent) {
|
|
3904
|
+
return {
|
|
3905
|
+
background: `color-mix(in srgb, ${accent} 8%, transparent)`,
|
|
3906
|
+
color: `color-mix(in srgb, ${accent} ${READABLE_ACCENT_SHARE}%, var(--sa-color-fg-heading))`,
|
|
3907
|
+
borderColor: `color-mix(in srgb, ${accent} 20%, transparent)`
|
|
3908
|
+
};
|
|
3909
|
+
}
|
|
3859
3910
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3860
3911
|
0 && (module.exports = {
|
|
3861
3912
|
ADMIN_UI_VERSION,
|
|
@@ -3868,6 +3919,10 @@ function countPlans(resolved) {
|
|
|
3868
3919
|
DEFAULT_SA_LOCALE,
|
|
3869
3920
|
DEFAULT_STANDARD_PAGE_ROUTES,
|
|
3870
3921
|
HttpJsonError,
|
|
3922
|
+
IDENTITY_ACCENTS,
|
|
3923
|
+
IDENTITY_ACCENT_VALUES,
|
|
3924
|
+
IDENTITY_NEUTRAL,
|
|
3925
|
+
IDENTITY_NEUTRAL_VALUE,
|
|
3871
3926
|
ManifestLoadError,
|
|
3872
3927
|
ManifestLoader,
|
|
3873
3928
|
MissingHandlerError,
|
|
@@ -3887,6 +3942,9 @@ function countPlans(resolved) {
|
|
|
3887
3942
|
formatCurrency,
|
|
3888
3943
|
formatMessage,
|
|
3889
3944
|
getJson,
|
|
3945
|
+
identityAccentAt,
|
|
3946
|
+
identityAccentFor,
|
|
3947
|
+
identityChipStyle,
|
|
3890
3948
|
isCurrentlyValid,
|
|
3891
3949
|
isExpired,
|
|
3892
3950
|
isFutureScheduled,
|
package/dist/client/index.d.cts
CHANGED
|
@@ -389,4 +389,73 @@ interface PlanCounts {
|
|
|
389
389
|
}
|
|
390
390
|
declare function countPlans<P extends PlanRowLike, V extends PlanVersionLike>(resolved: readonly ResolvedPlan<P, V>[]): PlanCounts;
|
|
391
391
|
|
|
392
|
-
|
|
392
|
+
/**
|
|
393
|
+
* The categorical ramp, in the order an unnamed series should walk it.
|
|
394
|
+
*
|
|
395
|
+
* Seven entries, six of them hues plus the neutral. Long enough that a realistic
|
|
396
|
+
* plan list does not wrap, short enough that the colours stay tellable apart —
|
|
397
|
+
* a longer ramp is not a better one, it is a wheel of near-neighbours.
|
|
398
|
+
*/
|
|
399
|
+
declare const IDENTITY_ACCENTS: readonly string[];
|
|
400
|
+
/**
|
|
401
|
+
* The same ramp as concrete colours, for values that are STORED rather than
|
|
402
|
+
* painted.
|
|
403
|
+
*
|
|
404
|
+
* A promotion's colour is data: the operator picks it, it goes over the wire,
|
|
405
|
+
* a database column holds it, and `CreatePromotionDto` caps it at 16
|
|
406
|
+
* characters. `var(--sa-color-identity-1)` is 28 and would fail validation on
|
|
407
|
+
* every create — which is exactly what happened when the swatches above were
|
|
408
|
+
* pointed at the token form. A token is paint; this is a value.
|
|
409
|
+
*
|
|
410
|
+
* These are the LIGHT theme's values, because a stored colour has to mean one
|
|
411
|
+
* thing wherever it is later rendered. `identity-accents-match-theme.test.js`
|
|
412
|
+
* binds each one to its role, so the two halves of the ramp cannot drift.
|
|
413
|
+
*/
|
|
414
|
+
declare const IDENTITY_ACCENT_VALUES: readonly string[];
|
|
415
|
+
/** The stored counterpart of `IDENTITY_NEUTRAL`. */
|
|
416
|
+
declare const IDENTITY_NEUTRAL_VALUE = "#64748b";
|
|
417
|
+
/** For "no identity yet", and for the entry tier that should stay quiet. */
|
|
418
|
+
declare const IDENTITY_NEUTRAL = "var(--sa-color-identity-neutral)";
|
|
419
|
+
/**
|
|
420
|
+
* The accent for the nth member of a series, wrapping when the series is longer
|
|
421
|
+
* than the ramp.
|
|
422
|
+
*
|
|
423
|
+
* A negative or non-finite index yields the neutral rather than throwing:
|
|
424
|
+
* callers derive it from `findIndex`, which answers -1 for "not in the list",
|
|
425
|
+
* and a missing row is exactly the "no identity yet" case.
|
|
426
|
+
*/
|
|
427
|
+
declare function identityAccentAt(index: number): string;
|
|
428
|
+
/**
|
|
429
|
+
* The accent for a key, in the order the product decides it.
|
|
430
|
+
*
|
|
431
|
+
* 1. what the consumer supplied, because it is their brand;
|
|
432
|
+
* 2. the well-known tier, so `ENTERPRISE` is the same colour everywhere;
|
|
433
|
+
* 3. the ramp position, so an unknown key still gets a stable colour;
|
|
434
|
+
* 4. the neutral.
|
|
435
|
+
*/
|
|
436
|
+
declare function identityAccentFor(key: string, overrides?: Readonly<Record<string, string>>, index?: number): string;
|
|
437
|
+
/**
|
|
438
|
+
* The three-part chip style every one of these sites was hand-rolling: a wash
|
|
439
|
+
* of the accent, a readable rendering of the accent as text, a firmer edge.
|
|
440
|
+
*
|
|
441
|
+
* `color-mix()` rather than the `accent + '15'` string concatenation it
|
|
442
|
+
* replaces. That trick only worked on a six-digit hex — it silently produced
|
|
443
|
+
* garbage for `rgb()`, for a named colour and for anything a consumer might
|
|
444
|
+
* reasonably pass — and it could never have worked for a `var()`, which is why
|
|
445
|
+
* these palettes could not follow the theme in the first place.
|
|
446
|
+
*
|
|
447
|
+
* The text is a mix rather than the accent itself. A `var(--sa-color-identity-N)`
|
|
448
|
+
* would not need that — the ramp has a value per theme, so it already suits both
|
|
449
|
+
* surfaces. A concrete hex has one value for both, and a concrete hex is what
|
|
450
|
+
* reaches here from a stored plan colour or from a consumer's `planAccents`; on
|
|
451
|
+
* whichever theme it lands nearest the surface it fades into its own wash.
|
|
452
|
+
*
|
|
453
|
+
* Callers may still override any of the three. `PromoCodeDialogFields` replaces
|
|
454
|
+
* the border with the plan's undiluted colour, and `PlanDiffCard` takes only the
|
|
455
|
+
* wash and the edge — an inline style beats the class beneath it, which is how
|
|
456
|
+
* the chip kept its own unreadable foreground through a fix applied to the
|
|
457
|
+
* selected-state rules around it.
|
|
458
|
+
*/
|
|
459
|
+
declare function identityChipStyle(accent: string): Record<string, string>;
|
|
460
|
+
|
|
461
|
+
export { ADMIN_UI_VERSION, type AdminPromoListFilter, type AdminPromoListRow, type AdminResourceClientOptions, type BatchColumnData, BatchColumnDriftError, BatchColumnFetcher, type BatchColumnFetcherOptions, type BatchColumnRow, type BatchColumnValue, BootLoadError, BootLoader, type BootLoaderOptions, type BuildRouteEntry, type CachedManifestEntry, DEFAULT_STANDARD_PAGE_ROUTES, HttpClient, HttpJsonError, IDENTITY_ACCENTS, IDENTITY_ACCENT_VALUES, IDENTITY_NEUTRAL, IDENTITY_NEUTRAL_VALUE, KvStore, type LoginBootProject, type LoginBrandFallback, type LoginBranding, ManifestLoadError, ManifestLoader, type ManifestLoaderOptions, type MessageParams, type NavBuilderOptions, type ParamStyle, type PlanCounts, type PlanRowLike, type PlanVersionLike, type ResolvePlansInput, type ResolvedPlan, SaLocale, type SidebarItem, type SidebarSection, buildRoutes, buildSidebar, countPlans, createAdminResourceClient, defaultSectionOrder, formatCurrency, formatMessage, getJson, identityAccentAt, identityAccentFor, identityChipStyle, isCurrentlyValid, isExpired, isFutureScheduled, isProductionBoot, postJson, resolveExtension, resolveLoginBranding, resolvePlans, todayIsoDate, trimTrailingSlashes };
|
package/dist/client/index.d.ts
CHANGED
|
@@ -389,4 +389,73 @@ interface PlanCounts {
|
|
|
389
389
|
}
|
|
390
390
|
declare function countPlans<P extends PlanRowLike, V extends PlanVersionLike>(resolved: readonly ResolvedPlan<P, V>[]): PlanCounts;
|
|
391
391
|
|
|
392
|
-
|
|
392
|
+
/**
|
|
393
|
+
* The categorical ramp, in the order an unnamed series should walk it.
|
|
394
|
+
*
|
|
395
|
+
* Seven entries, six of them hues plus the neutral. Long enough that a realistic
|
|
396
|
+
* plan list does not wrap, short enough that the colours stay tellable apart —
|
|
397
|
+
* a longer ramp is not a better one, it is a wheel of near-neighbours.
|
|
398
|
+
*/
|
|
399
|
+
declare const IDENTITY_ACCENTS: readonly string[];
|
|
400
|
+
/**
|
|
401
|
+
* The same ramp as concrete colours, for values that are STORED rather than
|
|
402
|
+
* painted.
|
|
403
|
+
*
|
|
404
|
+
* A promotion's colour is data: the operator picks it, it goes over the wire,
|
|
405
|
+
* a database column holds it, and `CreatePromotionDto` caps it at 16
|
|
406
|
+
* characters. `var(--sa-color-identity-1)` is 28 and would fail validation on
|
|
407
|
+
* every create — which is exactly what happened when the swatches above were
|
|
408
|
+
* pointed at the token form. A token is paint; this is a value.
|
|
409
|
+
*
|
|
410
|
+
* These are the LIGHT theme's values, because a stored colour has to mean one
|
|
411
|
+
* thing wherever it is later rendered. `identity-accents-match-theme.test.js`
|
|
412
|
+
* binds each one to its role, so the two halves of the ramp cannot drift.
|
|
413
|
+
*/
|
|
414
|
+
declare const IDENTITY_ACCENT_VALUES: readonly string[];
|
|
415
|
+
/** The stored counterpart of `IDENTITY_NEUTRAL`. */
|
|
416
|
+
declare const IDENTITY_NEUTRAL_VALUE = "#64748b";
|
|
417
|
+
/** For "no identity yet", and for the entry tier that should stay quiet. */
|
|
418
|
+
declare const IDENTITY_NEUTRAL = "var(--sa-color-identity-neutral)";
|
|
419
|
+
/**
|
|
420
|
+
* The accent for the nth member of a series, wrapping when the series is longer
|
|
421
|
+
* than the ramp.
|
|
422
|
+
*
|
|
423
|
+
* A negative or non-finite index yields the neutral rather than throwing:
|
|
424
|
+
* callers derive it from `findIndex`, which answers -1 for "not in the list",
|
|
425
|
+
* and a missing row is exactly the "no identity yet" case.
|
|
426
|
+
*/
|
|
427
|
+
declare function identityAccentAt(index: number): string;
|
|
428
|
+
/**
|
|
429
|
+
* The accent for a key, in the order the product decides it.
|
|
430
|
+
*
|
|
431
|
+
* 1. what the consumer supplied, because it is their brand;
|
|
432
|
+
* 2. the well-known tier, so `ENTERPRISE` is the same colour everywhere;
|
|
433
|
+
* 3. the ramp position, so an unknown key still gets a stable colour;
|
|
434
|
+
* 4. the neutral.
|
|
435
|
+
*/
|
|
436
|
+
declare function identityAccentFor(key: string, overrides?: Readonly<Record<string, string>>, index?: number): string;
|
|
437
|
+
/**
|
|
438
|
+
* The three-part chip style every one of these sites was hand-rolling: a wash
|
|
439
|
+
* of the accent, a readable rendering of the accent as text, a firmer edge.
|
|
440
|
+
*
|
|
441
|
+
* `color-mix()` rather than the `accent + '15'` string concatenation it
|
|
442
|
+
* replaces. That trick only worked on a six-digit hex — it silently produced
|
|
443
|
+
* garbage for `rgb()`, for a named colour and for anything a consumer might
|
|
444
|
+
* reasonably pass — and it could never have worked for a `var()`, which is why
|
|
445
|
+
* these palettes could not follow the theme in the first place.
|
|
446
|
+
*
|
|
447
|
+
* The text is a mix rather than the accent itself. A `var(--sa-color-identity-N)`
|
|
448
|
+
* would not need that — the ramp has a value per theme, so it already suits both
|
|
449
|
+
* surfaces. A concrete hex has one value for both, and a concrete hex is what
|
|
450
|
+
* reaches here from a stored plan colour or from a consumer's `planAccents`; on
|
|
451
|
+
* whichever theme it lands nearest the surface it fades into its own wash.
|
|
452
|
+
*
|
|
453
|
+
* Callers may still override any of the three. `PromoCodeDialogFields` replaces
|
|
454
|
+
* the border with the plan's undiluted colour, and `PlanDiffCard` takes only the
|
|
455
|
+
* wash and the edge — an inline style beats the class beneath it, which is how
|
|
456
|
+
* the chip kept its own unreadable foreground through a fix applied to the
|
|
457
|
+
* selected-state rules around it.
|
|
458
|
+
*/
|
|
459
|
+
declare function identityChipStyle(accent: string): Record<string, string>;
|
|
460
|
+
|
|
461
|
+
export { ADMIN_UI_VERSION, type AdminPromoListFilter, type AdminPromoListRow, type AdminResourceClientOptions, type BatchColumnData, BatchColumnDriftError, BatchColumnFetcher, type BatchColumnFetcherOptions, type BatchColumnRow, type BatchColumnValue, BootLoadError, BootLoader, type BootLoaderOptions, type BuildRouteEntry, type CachedManifestEntry, DEFAULT_STANDARD_PAGE_ROUTES, HttpClient, HttpJsonError, IDENTITY_ACCENTS, IDENTITY_ACCENT_VALUES, IDENTITY_NEUTRAL, IDENTITY_NEUTRAL_VALUE, KvStore, type LoginBootProject, type LoginBrandFallback, type LoginBranding, ManifestLoadError, ManifestLoader, type ManifestLoaderOptions, type MessageParams, type NavBuilderOptions, type ParamStyle, type PlanCounts, type PlanRowLike, type PlanVersionLike, type ResolvePlansInput, type ResolvedPlan, SaLocale, type SidebarItem, type SidebarSection, buildRoutes, buildSidebar, countPlans, createAdminResourceClient, defaultSectionOrder, formatCurrency, formatMessage, getJson, identityAccentAt, identityAccentFor, identityChipStyle, isCurrentlyValid, isExpired, isFutureScheduled, isProductionBoot, postJson, resolveExtension, resolveLoginBranding, resolvePlans, todayIsoDate, trimTrailingSlashes };
|
package/dist/client/index.js
CHANGED
|
@@ -8,6 +8,10 @@ import {
|
|
|
8
8
|
BootLoader,
|
|
9
9
|
DEFAULT_STANDARD_PAGE_ROUTES,
|
|
10
10
|
HttpJsonError,
|
|
11
|
+
IDENTITY_ACCENTS,
|
|
12
|
+
IDENTITY_ACCENT_VALUES,
|
|
13
|
+
IDENTITY_NEUTRAL,
|
|
14
|
+
IDENTITY_NEUTRAL_VALUE,
|
|
11
15
|
ManifestLoadError,
|
|
12
16
|
ManifestLoader,
|
|
13
17
|
MissingHandlerError,
|
|
@@ -17,6 +21,9 @@ import {
|
|
|
17
21
|
createAdminResourceClient,
|
|
18
22
|
defaultSectionOrder,
|
|
19
23
|
getJson,
|
|
24
|
+
identityAccentAt,
|
|
25
|
+
identityAccentFor,
|
|
26
|
+
identityChipStyle,
|
|
20
27
|
isCurrentlyValid,
|
|
21
28
|
isExpired,
|
|
22
29
|
isFutureScheduled,
|
|
@@ -27,7 +34,7 @@ import {
|
|
|
27
34
|
resolvePlans,
|
|
28
35
|
todayIsoDate,
|
|
29
36
|
trimTrailingSlashes
|
|
30
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-D74FFCCP.js";
|
|
31
38
|
import {
|
|
32
39
|
DEFAULT_SA_LOCALE,
|
|
33
40
|
SA_INTL_LOCALES,
|
|
@@ -55,6 +62,10 @@ export {
|
|
|
55
62
|
DEFAULT_SA_LOCALE,
|
|
56
63
|
DEFAULT_STANDARD_PAGE_ROUTES,
|
|
57
64
|
HttpJsonError,
|
|
65
|
+
IDENTITY_ACCENTS,
|
|
66
|
+
IDENTITY_ACCENT_VALUES,
|
|
67
|
+
IDENTITY_NEUTRAL,
|
|
68
|
+
IDENTITY_NEUTRAL_VALUE,
|
|
58
69
|
ManifestLoadError,
|
|
59
70
|
ManifestLoader,
|
|
60
71
|
MissingHandlerError,
|
|
@@ -74,6 +85,9 @@ export {
|
|
|
74
85
|
formatCurrency,
|
|
75
86
|
formatMessage,
|
|
76
87
|
getJson,
|
|
88
|
+
identityAccentAt,
|
|
89
|
+
identityAccentFor,
|
|
90
|
+
identityChipStyle,
|
|
77
91
|
isCurrentlyValid,
|
|
78
92
|
isExpired,
|
|
79
93
|
isFutureScheduled,
|
package/dist/index.cjs
CHANGED
|
@@ -40,6 +40,10 @@ __export(src_exports, {
|
|
|
40
40
|
DiscoveryLoadError: () => DiscoveryLoadError,
|
|
41
41
|
ENTITLEMENT_INJECTION_KEY: () => ENTITLEMENT_INJECTION_KEY,
|
|
42
42
|
HttpJsonError: () => HttpJsonError,
|
|
43
|
+
IDENTITY_ACCENTS: () => IDENTITY_ACCENTS,
|
|
44
|
+
IDENTITY_ACCENT_VALUES: () => IDENTITY_ACCENT_VALUES,
|
|
45
|
+
IDENTITY_NEUTRAL: () => IDENTITY_NEUTRAL,
|
|
46
|
+
IDENTITY_NEUTRAL_VALUE: () => IDENTITY_NEUTRAL_VALUE,
|
|
43
47
|
ManifestLoadError: () => ManifestLoadError,
|
|
44
48
|
ManifestLoader: () => ManifestLoader,
|
|
45
49
|
MarketingProjectionsApiError: () => MarketingProjectionsApiError,
|
|
@@ -92,12 +96,16 @@ __export(src_exports, {
|
|
|
92
96
|
formatCurrency: () => formatCurrency,
|
|
93
97
|
formatMessage: () => formatMessage,
|
|
94
98
|
getJson: () => getJson,
|
|
99
|
+
identityAccentAt: () => identityAccentAt,
|
|
100
|
+
identityAccentFor: () => identityAccentFor,
|
|
101
|
+
identityChipStyle: () => identityChipStyle,
|
|
95
102
|
isCurrentlyValid: () => isCurrentlyValid,
|
|
96
103
|
isExpired: () => isExpired,
|
|
97
104
|
isFutureScheduled: () => isFutureScheduled,
|
|
98
105
|
isProductionBoot: () => isProductionBoot,
|
|
99
106
|
isSaBuiltinLocale: () => isSaBuiltinLocale,
|
|
100
107
|
mergeMessages: () => mergeMessages,
|
|
108
|
+
planChangeWizardI18n: () => planChangeWizardI18n,
|
|
101
109
|
postJson: () => postJson,
|
|
102
110
|
provideEntitlement: () => provideEntitlement,
|
|
103
111
|
resolveExtension: () => resolveExtension,
|
|
@@ -3941,6 +3949,50 @@ function countPlans(resolved) {
|
|
|
3941
3949
|
};
|
|
3942
3950
|
}
|
|
3943
3951
|
|
|
3952
|
+
// src/client/identity-accents.ts
|
|
3953
|
+
var IDENTITY_ACCENTS = [
|
|
3954
|
+
"var(--sa-color-identity-1)",
|
|
3955
|
+
"var(--sa-color-identity-2)",
|
|
3956
|
+
"var(--sa-color-identity-3)",
|
|
3957
|
+
"var(--sa-color-identity-4)",
|
|
3958
|
+
"var(--sa-color-identity-5)",
|
|
3959
|
+
"var(--sa-color-identity-6)"
|
|
3960
|
+
];
|
|
3961
|
+
var IDENTITY_ACCENT_VALUES = [
|
|
3962
|
+
"#1d4ed8",
|
|
3963
|
+
"#6d28d9",
|
|
3964
|
+
"#047857",
|
|
3965
|
+
"#b45309",
|
|
3966
|
+
"#0369a1",
|
|
3967
|
+
"#b91c1c"
|
|
3968
|
+
];
|
|
3969
|
+
var IDENTITY_NEUTRAL_VALUE = "#64748b";
|
|
3970
|
+
var IDENTITY_NEUTRAL = "var(--sa-color-identity-neutral)";
|
|
3971
|
+
function identityAccentAt(index) {
|
|
3972
|
+
if (!Number.isFinite(index) || index < 0) return IDENTITY_NEUTRAL;
|
|
3973
|
+
return IDENTITY_ACCENTS[Math.floor(index) % IDENTITY_ACCENTS.length];
|
|
3974
|
+
}
|
|
3975
|
+
var WELL_KNOWN = {
|
|
3976
|
+
STARTER: IDENTITY_NEUTRAL,
|
|
3977
|
+
BASIC: IDENTITY_NEUTRAL,
|
|
3978
|
+
STANDARD: "var(--sa-color-identity-1)",
|
|
3979
|
+
PRO: "var(--sa-color-identity-2)",
|
|
3980
|
+
PROFESSIONAL: "var(--sa-color-identity-2)",
|
|
3981
|
+
BUSINESS: "var(--sa-color-identity-5)",
|
|
3982
|
+
ENTERPRISE: "var(--sa-color-identity-3)"
|
|
3983
|
+
};
|
|
3984
|
+
function identityAccentFor(key, overrides = {}, index = -1) {
|
|
3985
|
+
return overrides[key] ?? WELL_KNOWN[key] ?? identityAccentAt(index);
|
|
3986
|
+
}
|
|
3987
|
+
var READABLE_ACCENT_SHARE = 50;
|
|
3988
|
+
function identityChipStyle(accent) {
|
|
3989
|
+
return {
|
|
3990
|
+
background: `color-mix(in srgb, ${accent} 8%, transparent)`,
|
|
3991
|
+
color: `color-mix(in srgb, ${accent} ${READABLE_ACCENT_SHARE}%, var(--sa-color-fg-heading))`,
|
|
3992
|
+
borderColor: `color-mix(in srgb, ${accent} 20%, transparent)`
|
|
3993
|
+
};
|
|
3994
|
+
}
|
|
3995
|
+
|
|
3944
3996
|
// src/vue/super-admin-context.ts
|
|
3945
3997
|
var SUPER_ADMIN_BRAND_KEY = /* @__PURE__ */ Symbol.for(
|
|
3946
3998
|
"@saasicat/ui-vue/SUPER_ADMIN_BRAND"
|
|
@@ -6863,6 +6915,55 @@ var DEFAULT_I18N_EN = {
|
|
|
6863
6915
|
function defaultTenantPlanSectionI18n(locale) {
|
|
6864
6916
|
return locale === "en" ? DEFAULT_I18N_EN : DEFAULT_I18N_DE;
|
|
6865
6917
|
}
|
|
6918
|
+
function planChangeWizardI18n(i18n) {
|
|
6919
|
+
return {
|
|
6920
|
+
title: i18n.wizardTitle,
|
|
6921
|
+
close: i18n.wizardClose,
|
|
6922
|
+
currentLabel: i18n.wizardCurrent,
|
|
6923
|
+
cycleMonthly: i18n.cycleMonthly,
|
|
6924
|
+
cycleYearly: i18n.cycleYearly,
|
|
6925
|
+
badgeCurrent: i18n.wizardBadgeCurrent,
|
|
6926
|
+
badgePopular: i18n.wizardBadgePopular,
|
|
6927
|
+
priceUnitMonthly: i18n.wizardPriceUnitMonthly,
|
|
6928
|
+
priceUnitYearly: i18n.wizardPriceUnitYearly,
|
|
6929
|
+
priceOnRequest: i18n.wizardPriceOnRequest,
|
|
6930
|
+
stepChoose: i18n.wizardStepChoose,
|
|
6931
|
+
stepChooseIntro: i18n.wizardStepChooseIntro,
|
|
6932
|
+
stepPreview: i18n.wizardStepPreview,
|
|
6933
|
+
stepConfirm: i18n.wizardStepConfirm,
|
|
6934
|
+
next: i18n.wizardNext,
|
|
6935
|
+
back: i18n.wizardBack,
|
|
6936
|
+
previewLoading: i18n.wizardPreviewLoading,
|
|
6937
|
+
effectiveAtLabel: i18n.wizardEffectiveAtLabel,
|
|
6938
|
+
effectiveImmediate: i18n.wizardEffectiveImmediate,
|
|
6939
|
+
prorationTitle: i18n.wizardProrationTitle,
|
|
6940
|
+
prorationLine: i18n.wizardProrationLine,
|
|
6941
|
+
prorationDays: i18n.wizardProrationDays,
|
|
6942
|
+
limitsTitle: i18n.wizardLimitsTitle,
|
|
6943
|
+
limitsUsed: i18n.wizardLimitsUsed,
|
|
6944
|
+
limitsCurrent: i18n.wizardLimitsCurrent,
|
|
6945
|
+
limitsTarget: i18n.wizardLimitsTarget,
|
|
6946
|
+
featuresGained: i18n.wizardFeaturesGained,
|
|
6947
|
+
featuresLost: i18n.wizardFeaturesLost,
|
|
6948
|
+
blockersTitle: i18n.wizardBlockersTitle,
|
|
6949
|
+
confirmImmediate: i18n.wizardConfirmImmediate,
|
|
6950
|
+
confirmScheduled: i18n.wizardConfirmScheduled,
|
|
6951
|
+
confirmAction: i18n.wizardConfirmAction,
|
|
6952
|
+
confirmInProgress: i18n.wizardConfirmInProgress,
|
|
6953
|
+
confirmPriceTitle: i18n.wizardConfirmPriceTitle,
|
|
6954
|
+
confirmProratedNow: i18n.wizardConfirmProratedNow,
|
|
6955
|
+
confirmRecurringNext: i18n.wizardConfirmRecurringNext,
|
|
6956
|
+
confirmRecurringFrom: i18n.wizardConfirmRecurringFrom,
|
|
6957
|
+
perCycleMonthly: i18n.wizardConfirmPerCycleMonthly,
|
|
6958
|
+
perCycleYearly: i18n.wizardConfirmPerCycleYearly,
|
|
6959
|
+
confirmTrialNote: i18n.wizardConfirmTrialNote,
|
|
6960
|
+
confirmRecurringTrialEnd: i18n.wizardConfirmRecurringTrialEnd,
|
|
6961
|
+
changeTypeUpgrade: i18n.wizardChangeTypeUpgrade,
|
|
6962
|
+
changeTypeDowngrade: i18n.wizardChangeTypeDowngrade,
|
|
6963
|
+
changeTypeCycle: i18n.wizardChangeTypeCycle,
|
|
6964
|
+
changeTypeNoop: i18n.wizardChangeTypeNoop
|
|
6965
|
+
};
|
|
6966
|
+
}
|
|
6866
6967
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6867
6968
|
0 && (module.exports = {
|
|
6868
6969
|
ADMIN_UI_VERSION,
|
|
@@ -6885,6 +6986,10 @@ function defaultTenantPlanSectionI18n(locale) {
|
|
|
6885
6986
|
DiscoveryLoadError,
|
|
6886
6987
|
ENTITLEMENT_INJECTION_KEY,
|
|
6887
6988
|
HttpJsonError,
|
|
6989
|
+
IDENTITY_ACCENTS,
|
|
6990
|
+
IDENTITY_ACCENT_VALUES,
|
|
6991
|
+
IDENTITY_NEUTRAL,
|
|
6992
|
+
IDENTITY_NEUTRAL_VALUE,
|
|
6888
6993
|
ManifestLoadError,
|
|
6889
6994
|
ManifestLoader,
|
|
6890
6995
|
MarketingProjectionsApiError,
|
|
@@ -6937,12 +7042,16 @@ function defaultTenantPlanSectionI18n(locale) {
|
|
|
6937
7042
|
formatCurrency,
|
|
6938
7043
|
formatMessage,
|
|
6939
7044
|
getJson,
|
|
7045
|
+
identityAccentAt,
|
|
7046
|
+
identityAccentFor,
|
|
7047
|
+
identityChipStyle,
|
|
6940
7048
|
isCurrentlyValid,
|
|
6941
7049
|
isExpired,
|
|
6942
7050
|
isFutureScheduled,
|
|
6943
7051
|
isProductionBoot,
|
|
6944
7052
|
isSaBuiltinLocale,
|
|
6945
7053
|
mergeMessages,
|
|
7054
|
+
planChangeWizardI18n,
|
|
6946
7055
|
postJson,
|
|
6947
7056
|
provideEntitlement,
|
|
6948
7057
|
resolveExtension,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BootLoaderOptions, ManifestLoaderOptions, BuildRouteEntry, SidebarSection, NavBuilderOptions, BatchColumnData, BatchColumnFetcherOptions, BootLoader, ManifestLoader } from './client/index.cjs';
|
|
2
|
-
export { ADMIN_UI_VERSION, AdminPromoListFilter, AdminPromoListRow, AdminResourceClientOptions, BatchColumnDriftError, BatchColumnFetcher, BatchColumnRow, BatchColumnValue, BootLoadError, CachedManifestEntry, DEFAULT_STANDARD_PAGE_ROUTES, HttpJsonError, LoginBootProject, LoginBrandFallback, LoginBranding, ManifestLoadError, MessageParams, ParamStyle, PlanCounts, PlanRowLike, PlanVersionLike, ResolvePlansInput, ResolvedPlan, SidebarItem, buildRoutes, buildSidebar, countPlans, createAdminResourceClient, defaultSectionOrder, formatCurrency, formatMessage, getJson, isCurrentlyValid, isExpired, isFutureScheduled, isProductionBoot, postJson, resolveExtension, resolveLoginBranding, resolvePlans, todayIsoDate, trimTrailingSlashes } from './client/index.cjs';
|
|
2
|
+
export { ADMIN_UI_VERSION, AdminPromoListFilter, AdminPromoListRow, AdminResourceClientOptions, BatchColumnDriftError, BatchColumnFetcher, BatchColumnRow, BatchColumnValue, BootLoadError, CachedManifestEntry, DEFAULT_STANDARD_PAGE_ROUTES, HttpJsonError, IDENTITY_ACCENTS, IDENTITY_ACCENT_VALUES, IDENTITY_NEUTRAL, IDENTITY_NEUTRAL_VALUE, LoginBootProject, LoginBrandFallback, LoginBranding, ManifestLoadError, MessageParams, ParamStyle, PlanCounts, PlanRowLike, PlanVersionLike, ResolvePlansInput, ResolvedPlan, SidebarItem, buildRoutes, buildSidebar, countPlans, createAdminResourceClient, defaultSectionOrder, formatCurrency, formatMessage, getJson, identityAccentAt, identityAccentFor, identityChipStyle, isCurrentlyValid, isExpired, isFutureScheduled, isProductionBoot, postJson, resolveExtension, resolveLoginBranding, resolvePlans, todayIsoDate, trimTrailingSlashes } from './client/index.cjs';
|
|
3
3
|
import { H as HttpClient, e as ActionRegistry, A as ActionHandler, K as KvStore, S as SaLocale } from './catalog-DJcfm5N2.cjs';
|
|
4
4
|
export { f as ActionDefNotInManifestError, D as DEFAULT_SA_LOCALE, g as HttpResponse, M as MessageTree, h as MissingHandlerError, P as PartialMessages, R as ResolvedAction, i as SA_INTL_LOCALES, j as SA_LOCALES, k as SA_LOCALE_LABELS, l as SA_MESSAGES, m as SaBuiltinLocale, n as SaCatalog, o as SaCatalogOptions, c as SaLocaleDefinition, b as SaLocaleOption, a as SaMessages, d as SaMessagesOverrides, T as TranslationOf, p as createSaCatalog, q as defaultHttpClient, r as defaultKvStore, s as defineMessages, t as isSaBuiltinLocale, u as mergeMessages, v as resolveMessages } from './catalog-DJcfm5N2.cjs';
|
|
5
5
|
import { A as ActionsMap, a as SuperAdminBrand, b as SuperAdminEndpoints, E as ExtensionsMap, c as SuperAdminLoginAdapter } from './use-sa-theme-B5t7oXph.cjs';
|
|
@@ -1777,5 +1777,68 @@ declare const DEFAULT_I18N_DE: TenantPlanSectionI18n;
|
|
|
1777
1777
|
declare const DEFAULT_I18N_EN: TenantPlanSectionI18n;
|
|
1778
1778
|
/** Default map for the given UI locale — fallback layer under the `i18n` prop. */
|
|
1779
1779
|
declare function defaultTenantPlanSectionI18n(locale: SaLocale): TenantPlanSectionI18n;
|
|
1780
|
+
/**
|
|
1781
|
+
* The strings `PlanChangeWizard` takes.
|
|
1782
|
+
*
|
|
1783
|
+
* A projection of `TenantPlanSectionI18n` with the `wizard` prefix dropped, so
|
|
1784
|
+
* the wizard's own template reads `i18n.stepChoose` rather than
|
|
1785
|
+
* `i18n.wizardStepChoose`.
|
|
1786
|
+
*/
|
|
1787
|
+
interface PlanChangeWizardI18n {
|
|
1788
|
+
title: string;
|
|
1789
|
+
close: string;
|
|
1790
|
+
currentLabel: string;
|
|
1791
|
+
cycleMonthly: string;
|
|
1792
|
+
cycleYearly: string;
|
|
1793
|
+
badgeCurrent: string;
|
|
1794
|
+
badgePopular: string;
|
|
1795
|
+
priceUnitMonthly: string;
|
|
1796
|
+
priceUnitYearly: string;
|
|
1797
|
+
priceOnRequest: string;
|
|
1798
|
+
stepChoose: string;
|
|
1799
|
+
stepChooseIntro: string;
|
|
1800
|
+
stepPreview: string;
|
|
1801
|
+
stepConfirm: string;
|
|
1802
|
+
next: string;
|
|
1803
|
+
back: string;
|
|
1804
|
+
previewLoading: string;
|
|
1805
|
+
effectiveAtLabel: string;
|
|
1806
|
+
effectiveImmediate: string;
|
|
1807
|
+
prorationTitle: string;
|
|
1808
|
+
prorationLine: string;
|
|
1809
|
+
prorationDays: string;
|
|
1810
|
+
limitsTitle: string;
|
|
1811
|
+
limitsUsed: string;
|
|
1812
|
+
limitsCurrent: string;
|
|
1813
|
+
limitsTarget: string;
|
|
1814
|
+
featuresGained: string;
|
|
1815
|
+
featuresLost: string;
|
|
1816
|
+
blockersTitle: string;
|
|
1817
|
+
confirmImmediate: string;
|
|
1818
|
+
confirmScheduled: string;
|
|
1819
|
+
confirmAction: string;
|
|
1820
|
+
confirmInProgress: string;
|
|
1821
|
+
confirmPriceTitle: string;
|
|
1822
|
+
confirmProratedNow: string;
|
|
1823
|
+
confirmRecurringNext: string;
|
|
1824
|
+
confirmRecurringFrom: string;
|
|
1825
|
+
perCycleMonthly: string;
|
|
1826
|
+
perCycleYearly: string;
|
|
1827
|
+
confirmTrialNote: string;
|
|
1828
|
+
confirmRecurringTrialEnd: string;
|
|
1829
|
+
changeTypeUpgrade: string;
|
|
1830
|
+
changeTypeDowngrade: string;
|
|
1831
|
+
changeTypeCycle: string;
|
|
1832
|
+
changeTypeNoop: string;
|
|
1833
|
+
}
|
|
1834
|
+
/**
|
|
1835
|
+
* Builds the wizard's strings from the section's.
|
|
1836
|
+
*
|
|
1837
|
+
* Here rather than inline in `TenantPlanSection.vue`, because the wizard is an
|
|
1838
|
+
* exported component: a consumer who mounts it directly would otherwise have to
|
|
1839
|
+
* reproduce all 44 keys of this mapping by hand, and a visual fixture had to do
|
|
1840
|
+
* exactly that before it moved.
|
|
1841
|
+
*/
|
|
1842
|
+
declare function planChangeWizardI18n(i18n: TenantPlanSectionI18n): PlanChangeWizardI18n;
|
|
1780
1843
|
|
|
1781
|
-
export { ALL_ROWS, ActionHandler, ActionRegistry, ActionsMap, type ApiListResponse, BatchColumnData, BatchColumnFetcherOptions, type BillingCycleStr, BootLoader, BootLoaderOptions, BuildRouteEntry, type BulkItemKind, type BulkItemStatus, type BulkPublishItem, type BundleAddPreviewShape, type BundleCancelPreviewShape, type BundlePreviewIssueShape, type BundlePreviewShape, type BundlePreviewSnapshotShape, BundlesApiError, CATALOG_DEFAULT_LOCALE, type CatalogBundle, CatalogEntriesApiError, type CatalogPlan, type ConfirmDialogState, type CreateAdminRoutesOptions, type CreateManifestStoreOptions, type CreatePlatformLoadersOptions, DEFAULT_I18N_DE, DEFAULT_I18N_EN, DEFAULT_ROWS_PER_PAGE, DEFAULT_YEARLY_FACTOR, DiscoveryLoadError, type DraftPricing, ENTITLEMENT_INJECTION_KEY, type EmailHistoryDetail, type EmailHistoryFilter, type EmailHistoryListResult, type EmailHistoryResendResult, type EmailHistoryRow, type EmailHistoryStatus, type EntitlementSnapshotShape, ExtensionsMap, type FeatureRegistryEntry, type FeatureRouterGuardOptions, type FeatureRowMarkers, HttpClient, KvStore, ManifestLoader, ManifestLoaderOptions, type ManifestStoreActions, type ManifestStoreDefinition, type ManifestStoreState, MarketingProjectionsApiError, type MfaDialogState, NavBuilderOptions, PAGE_SIZE_OPTIONS, type PackageSnapshotShape, type PilotCopy, type PilotCreatePayload, type PilotCreateResult, type PilotEditPayload, type PilotEditResult, type PlanChangePreviewShape, type PlanSnapshotShape, PlannedOnlyFeatureError, PlansApiError, type PlatformEmailProvider, type PlatformEmailTestInput, type PlatformEmailTestResult, type PlatformEmailWriteInput, type PlatformLoaders, type PlatformTenantActionRow, type PlatformTenantActionTone, type PlatformTenantActionsOptions, type PlatformTenantActionsResult, type PriceLineItem, ProjectPageHost, type PromoCodeCreatePayload, type PromoCodeDurationType, type PromoCodePlanOption, type PromoCodeUpdatePayload, type PromoCodeValueType, type PromoState, type PromoStatus, PromotionsApiError, type QuotaMeta, type RedundantFeatureHintShape, type ResolvedTenantAction, SERVER_PAGE_SIZE_OPTIONS, SaLocale, SidebarSection, type SubscriptionBundleShape, type SubscriptionDraft, SuperAdminBrand, SuperAdminEndpoints, SuperAdminLoginAdapter, type TenantActionFlowProviders, type TenantActionInput, type TenantManifestNavItem, type TenantManifestShape, type TenantPlanSectionI18n, type TenantRowLike, TenantSubscriptionBundlesApiError, type UsageSnapshotShape, type UseActionsResult, type UseApiListOptions, type UseApiListResult, type UseAuditEntriesOptions, type UseAuditEntriesResult, type UseBatchColumnsResult, type UseBulkPublishOptions, type UseBulkPublishResult, type UseBundleVersionsMapOptions, type UseBundleVersionsMapResult, type UseBundleVersionsOptions, type UseBundleVersionsResult, type UseBundlesOptions, type UseBundlesResult, type UseCatalogEntriesOptions, type UseCatalogEntriesResult, type UseDiscoveryOptions, type UseDiscoveryResult, type UseEntitlementOptions, type UseEntitlementResult, type UseLivePlanVersionsOptions, type UseLivePlanVersionsResult, type UseManifestResult, type UseMarketingProjectionsOptions, type UseMarketingProjectionsResult, type UseNavResult, type UsePaginationResult, type UsePlanEditorOptions, type UsePlanEditorResult, type UsePlanVersionsOptions, type UsePlanVersionsResult, type UsePlansOptions, type UsePlansResult, type UsePromotionsOptions, type UsePromotionsResult, type UsePublicBootResult, type UseSubscriptionDraftOptions, type UseTenantActionFlowResult, type UseTenantBillingCatalogOptions, type UseTenantBillingCatalogResult, type UseTenantBillingOptions, type UseTenantBillingResult, type UseTenantManifestOptions, type UseTenantManifestResult, type UseTenantSubscriptionBundlesOptions, type UseTenantSubscriptionBundlesResult, type UseTenantsOptions, type UseTenantsResult, buildFeatureRegistry, buildFeatureRouterGuard, buildQuotaRegistry, createAdminRoutes, createManifestStore, createPlatformLoaders, createProjectPageHostRoute, defaultIconForActionKey, defaultTenantPlanSectionI18n, defaultToneForActionKey, provideEntitlement, useActions, useApiList, useAuditEntries, useBatchColumns, useBulkPublish, useBundleVersions, useBundleVersionsMap, useBundles, useCatalogEntries, useDiscovery, useEntitlement, useInjectedEntitlement, useLivePlanVersions, useManifest, useMarketingProjections, useNav, usePagination, usePlanEditor, usePlanVersions, usePlans, usePlatformTenantActions, usePromotions, usePublicBoot, useSubscriptionDraft, useSuperAdminActions, useSuperAdminBrand, useSuperAdminEndpoints, useSuperAdminExtensions, useSuperAdminHttp, useSuperAdminLoginAdapter, useSuperAdminManifest, useTenantActionFlow, useTenantBilling, useTenantBillingCatalog, useTenantManifest, useTenantSubscriptionBundles, useTenants };
|
|
1844
|
+
export { ALL_ROWS, ActionHandler, ActionRegistry, ActionsMap, type ApiListResponse, BatchColumnData, BatchColumnFetcherOptions, type BillingCycleStr, BootLoader, BootLoaderOptions, BuildRouteEntry, type BulkItemKind, type BulkItemStatus, type BulkPublishItem, type BundleAddPreviewShape, type BundleCancelPreviewShape, type BundlePreviewIssueShape, type BundlePreviewShape, type BundlePreviewSnapshotShape, BundlesApiError, CATALOG_DEFAULT_LOCALE, type CatalogBundle, CatalogEntriesApiError, type CatalogPlan, type ConfirmDialogState, type CreateAdminRoutesOptions, type CreateManifestStoreOptions, type CreatePlatformLoadersOptions, DEFAULT_I18N_DE, DEFAULT_I18N_EN, DEFAULT_ROWS_PER_PAGE, DEFAULT_YEARLY_FACTOR, DiscoveryLoadError, type DraftPricing, ENTITLEMENT_INJECTION_KEY, type EmailHistoryDetail, type EmailHistoryFilter, type EmailHistoryListResult, type EmailHistoryResendResult, type EmailHistoryRow, type EmailHistoryStatus, type EntitlementSnapshotShape, ExtensionsMap, type FeatureRegistryEntry, type FeatureRouterGuardOptions, type FeatureRowMarkers, HttpClient, KvStore, ManifestLoader, ManifestLoaderOptions, type ManifestStoreActions, type ManifestStoreDefinition, type ManifestStoreState, MarketingProjectionsApiError, type MfaDialogState, NavBuilderOptions, PAGE_SIZE_OPTIONS, type PackageSnapshotShape, type PilotCopy, type PilotCreatePayload, type PilotCreateResult, type PilotEditPayload, type PilotEditResult, type PlanChangePreviewShape, type PlanChangeWizardI18n, type PlanSnapshotShape, PlannedOnlyFeatureError, PlansApiError, type PlatformEmailProvider, type PlatformEmailTestInput, type PlatformEmailTestResult, type PlatformEmailWriteInput, type PlatformLoaders, type PlatformTenantActionRow, type PlatformTenantActionTone, type PlatformTenantActionsOptions, type PlatformTenantActionsResult, type PriceLineItem, ProjectPageHost, type PromoCodeCreatePayload, type PromoCodeDurationType, type PromoCodePlanOption, type PromoCodeUpdatePayload, type PromoCodeValueType, type PromoState, type PromoStatus, PromotionsApiError, type QuotaMeta, type RedundantFeatureHintShape, type ResolvedTenantAction, SERVER_PAGE_SIZE_OPTIONS, SaLocale, SidebarSection, type SubscriptionBundleShape, type SubscriptionDraft, SuperAdminBrand, SuperAdminEndpoints, SuperAdminLoginAdapter, type TenantActionFlowProviders, type TenantActionInput, type TenantManifestNavItem, type TenantManifestShape, type TenantPlanSectionI18n, type TenantRowLike, TenantSubscriptionBundlesApiError, type UsageSnapshotShape, type UseActionsResult, type UseApiListOptions, type UseApiListResult, type UseAuditEntriesOptions, type UseAuditEntriesResult, type UseBatchColumnsResult, type UseBulkPublishOptions, type UseBulkPublishResult, type UseBundleVersionsMapOptions, type UseBundleVersionsMapResult, type UseBundleVersionsOptions, type UseBundleVersionsResult, type UseBundlesOptions, type UseBundlesResult, type UseCatalogEntriesOptions, type UseCatalogEntriesResult, type UseDiscoveryOptions, type UseDiscoveryResult, type UseEntitlementOptions, type UseEntitlementResult, type UseLivePlanVersionsOptions, type UseLivePlanVersionsResult, type UseManifestResult, type UseMarketingProjectionsOptions, type UseMarketingProjectionsResult, type UseNavResult, type UsePaginationResult, type UsePlanEditorOptions, type UsePlanEditorResult, type UsePlanVersionsOptions, type UsePlanVersionsResult, type UsePlansOptions, type UsePlansResult, type UsePromotionsOptions, type UsePromotionsResult, type UsePublicBootResult, type UseSubscriptionDraftOptions, type UseTenantActionFlowResult, type UseTenantBillingCatalogOptions, type UseTenantBillingCatalogResult, type UseTenantBillingOptions, type UseTenantBillingResult, type UseTenantManifestOptions, type UseTenantManifestResult, type UseTenantSubscriptionBundlesOptions, type UseTenantSubscriptionBundlesResult, type UseTenantsOptions, type UseTenantsResult, buildFeatureRegistry, buildFeatureRouterGuard, buildQuotaRegistry, createAdminRoutes, createManifestStore, createPlatformLoaders, createProjectPageHostRoute, defaultIconForActionKey, defaultTenantPlanSectionI18n, defaultToneForActionKey, planChangeWizardI18n, provideEntitlement, useActions, useApiList, useAuditEntries, useBatchColumns, useBulkPublish, useBundleVersions, useBundleVersionsMap, useBundles, useCatalogEntries, useDiscovery, useEntitlement, useInjectedEntitlement, useLivePlanVersions, useManifest, useMarketingProjections, useNav, usePagination, usePlanEditor, usePlanVersions, usePlans, usePlatformTenantActions, usePromotions, usePublicBoot, useSubscriptionDraft, useSuperAdminActions, useSuperAdminBrand, useSuperAdminEndpoints, useSuperAdminExtensions, useSuperAdminHttp, useSuperAdminLoginAdapter, useSuperAdminManifest, useTenantActionFlow, useTenantBilling, useTenantBillingCatalog, useTenantManifest, useTenantSubscriptionBundles, useTenants };
|