@streamoid/settings 0.3.3 → 0.3.4
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/index.d.mts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +203 -324
- package/dist/index.mjs +208 -330
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -588,8 +588,12 @@ type IconProps = Omit<SVGProps<SVGSVGElement>, 'color' | 'strokeWidth' | 'width'
|
|
|
588
588
|
};
|
|
589
589
|
declare const SiconKey: ({ color, strokeWidth, size, ...props }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
590
590
|
|
|
591
|
-
declare function BillingContent({ embedded, }?: {
|
|
591
|
+
declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlansChange, }?: {
|
|
592
592
|
embedded?: boolean;
|
|
593
|
+
/** Controlled "plans" sub-view flag. When provided, the host (settings
|
|
594
|
+
* wrapper) owns it so it can hide the sub-nav + show the Plans breadcrumb. */
|
|
595
|
+
showPlans?: boolean;
|
|
596
|
+
onShowPlansChange?: (open: boolean) => void;
|
|
593
597
|
}): react_jsx_runtime.JSX.Element;
|
|
594
598
|
|
|
595
599
|
declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, }?: {
|
package/dist/index.d.ts
CHANGED
|
@@ -588,8 +588,12 @@ type IconProps = Omit<SVGProps<SVGSVGElement>, 'color' | 'strokeWidth' | 'width'
|
|
|
588
588
|
};
|
|
589
589
|
declare const SiconKey: ({ color, strokeWidth, size, ...props }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
590
590
|
|
|
591
|
-
declare function BillingContent({ embedded, }?: {
|
|
591
|
+
declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlansChange, }?: {
|
|
592
592
|
embedded?: boolean;
|
|
593
|
+
/** Controlled "plans" sub-view flag. When provided, the host (settings
|
|
594
|
+
* wrapper) owns it so it can hide the sub-nav + show the Plans breadcrumb. */
|
|
595
|
+
showPlans?: boolean;
|
|
596
|
+
onShowPlansChange?: (open: boolean) => void;
|
|
593
597
|
}): react_jsx_runtime.JSX.Element;
|
|
594
598
|
|
|
595
599
|
declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, }?: {
|
package/dist/index.js
CHANGED
|
@@ -3394,6 +3394,90 @@ var import_react8 = require("react");
|
|
|
3394
3394
|
var import_ui5 = require("@streamoid/ui");
|
|
3395
3395
|
var import_icons5 = require("@streamoid/icons");
|
|
3396
3396
|
|
|
3397
|
+
// src/plan-comparison-data.ts
|
|
3398
|
+
var PLAN_COMPARISON_COLUMNS = ["Free", "Pro", "Enterprise"];
|
|
3399
|
+
var PLAN_COMPARISON_NOTE = "Credits roll over monthly and only expire if your plan is no longer active";
|
|
3400
|
+
var PLAN_COMPARISON_SECTIONS = [
|
|
3401
|
+
{
|
|
3402
|
+
rows: [{ label: "Usage volume", values: ["Limited", "Higher limits", "Unlimited"] }]
|
|
3403
|
+
},
|
|
3404
|
+
{
|
|
3405
|
+
header: "Artifax (Design & Insights)",
|
|
3406
|
+
rows: [
|
|
3407
|
+
{ label: "Priority processing", values: ["Low", "Medium", "High"] },
|
|
3408
|
+
{ label: "Tracked Brands", values: ["3 brands included", "5 brands included", "Unlimited"] },
|
|
3409
|
+
{ label: "Custom brand scraping", values: ["-", "Included", "Included"] },
|
|
3410
|
+
{ label: "Tracked news terms", values: ["-", "Up to 5 news terms", "Unlimited"] },
|
|
3411
|
+
{ label: "Pattern, design & graphic generation", values: ["Up to 60 images", "Up to 200 images", "Unlimited"] },
|
|
3412
|
+
{ label: "Vectorization & colorways", values: ["Up to 60 images", "Up to 200 images", "Unlimited"] },
|
|
3413
|
+
{ label: "Background removal", values: ["Up to 300 images", "Up to 1,000 images", "Unlimited"] },
|
|
3414
|
+
{ label: "Range planning", values: ["Up to 3 plans", "Up to 10 plans", "Unlimited"] },
|
|
3415
|
+
{ label: "Tech packs", values: ["Manual fill", "Up to 5 tech packs", "Unlimited"] },
|
|
3416
|
+
{ label: "Automated moodboards", values: ["Up to 20 moodboards", "Up to 66 moodboards", "Unlimited"] },
|
|
3417
|
+
{ label: "Export & download vector assets", values: ["Free", "Free", "Free"] }
|
|
3418
|
+
]
|
|
3419
|
+
},
|
|
3420
|
+
{
|
|
3421
|
+
header: "Photogenix (Imagery & Video)",
|
|
3422
|
+
rows: [
|
|
3423
|
+
{ label: "Priority processing", values: ["Low", "Medium", "High"] },
|
|
3424
|
+
{ label: "Image generation", values: ["Up to 60 images", "Up to 200 images", "Unlimited"] },
|
|
3425
|
+
{ label: "Image watermarks", values: ["Watermarked", "No watermark", "No watermark"] },
|
|
3426
|
+
{ label: "Image editing", values: ["Up to 300 edits", "Up to 1,000 edits", "Unlimited"] },
|
|
3427
|
+
{ label: "Video generation from image", values: ["Up to 20 videos", "Up to 66 videos", "Unlimited"] },
|
|
3428
|
+
{ label: "Video with background changes", values: ["Up to 15 videos", "Up to 50 videos", "Unlimited"] },
|
|
3429
|
+
{ label: "Video Advertisement generation", values: ["-", "Included", "Included"] },
|
|
3430
|
+
{ label: "Automated shoot configuration", values: ["Up to 300 products", "Up to 1,000 products", "Unlimited"] },
|
|
3431
|
+
{ label: "UGC content creation", values: ["Up to 15 outputs", "Up to 50 outputs", "Unlimited"] },
|
|
3432
|
+
{ label: "Marketplace exports", values: ["Up to 300 exports", "Up to 1,000 exports", "Unlimited"] }
|
|
3433
|
+
]
|
|
3434
|
+
},
|
|
3435
|
+
{
|
|
3436
|
+
header: "Catalogix (Cataloging & Listing)",
|
|
3437
|
+
rows: [
|
|
3438
|
+
{ label: "Priority processing", values: ["Low", "Medium", "High"] },
|
|
3439
|
+
{ label: "Data import & mapping", values: ["Free", "Free", "Free"] },
|
|
3440
|
+
{ label: "Attributes from images (express)", values: ["Up to 100 styles", "Up to 333 styles", "Unlimited"] },
|
|
3441
|
+
{ label: "Attributes from images (precise)", values: ["Up to 42 styles", "Up to 142 styles", "Unlimited"] },
|
|
3442
|
+
// Blank-label sub-row per the design export (values present, no label).
|
|
3443
|
+
{ label: "", values: ["Up to 100 styles", "Up to 333 styles", "Unlimited"] },
|
|
3444
|
+
{ label: "Background removal", values: ["Up to 60 styles", "Up to 200 styles", "Unlimited"] },
|
|
3445
|
+
{ label: "Identify image type (pose)", values: ["Up to 100 styles", "Up to 333 styles", "Unlimited"] },
|
|
3446
|
+
{ label: "Extra images (detail shots)", values: ["Up to 150 styles", "Up to 500 styles", "Unlimited"] },
|
|
3447
|
+
// Blank-label sub-row per the design export.
|
|
3448
|
+
{ label: "", values: ["Up to 150 styles", "Up to 500 styles", "Unlimited"] },
|
|
3449
|
+
{ label: "Product titles & descriptions", values: ["Up to 150 styles", "Up to 500 styles", "Unlimited"] },
|
|
3450
|
+
{ label: "SEO content", values: ["Up to 150 styles", "Up to 500 styles", "Unlimited"] },
|
|
3451
|
+
{ label: "Size charts", values: ["Up to 150 styles", "Up to 500 styles", "Unlimited"] },
|
|
3452
|
+
{ label: "Translation (data & images)", values: ["Up to 100 styles", "Up to 333 styles", "Unlimited"] },
|
|
3453
|
+
{ label: "Automated quality checks", values: ["Up to 150 styles", "Up to 500 styles", "Unlimited"] }
|
|
3454
|
+
]
|
|
3455
|
+
},
|
|
3456
|
+
{
|
|
3457
|
+
header: "Security & Compliance",
|
|
3458
|
+
rows: [
|
|
3459
|
+
{ label: "SSO / SAML", values: ["-", "-", "Included"] },
|
|
3460
|
+
{ label: "Role-based access control", values: ["-", "-", "Included"] },
|
|
3461
|
+
{ label: "Audit logs", values: ["-", "-", "Included"] },
|
|
3462
|
+
{ label: "Data residency / region controls", values: ["-", "-", "Included"] },
|
|
3463
|
+
{ label: "Custom data retention & DPA", values: ["-", "-", "Included"] }
|
|
3464
|
+
]
|
|
3465
|
+
},
|
|
3466
|
+
{
|
|
3467
|
+
header: "Support",
|
|
3468
|
+
rows: [
|
|
3469
|
+
{ label: "Support level", values: ["Community / docs", "Standard support", "Dedicated support + customer success manager"] },
|
|
3470
|
+
{ label: "SLA", values: ["-", "-", "Custom SLA"] },
|
|
3471
|
+
{ label: "Onboarding", values: ["Self-serve", "Self-serve", "Guided onboarding & training"] }
|
|
3472
|
+
]
|
|
3473
|
+
}
|
|
3474
|
+
];
|
|
3475
|
+
var PLAN_TAGLINES = {
|
|
3476
|
+
free: "Try the AI agents and automate your first workflows",
|
|
3477
|
+
pro: "Scale your team's output and get to market faster",
|
|
3478
|
+
enterprise: "For high-volume brands, agencies, and marketplaces that need custom scale, integrations, and support"
|
|
3479
|
+
};
|
|
3480
|
+
|
|
3397
3481
|
// src/export-date-modal.tsx
|
|
3398
3482
|
var import_react6 = require("react");
|
|
3399
3483
|
var import_icons3 = require("@streamoid/icons");
|
|
@@ -4235,232 +4319,6 @@ function getCurrencySymbolByCountry(country) {
|
|
|
4235
4319
|
function formatCredits(n) {
|
|
4236
4320
|
return n.toLocaleString("en-US");
|
|
4237
4321
|
}
|
|
4238
|
-
var SECTION_ICON_PROPS = {
|
|
4239
|
-
color: "var(--alias-text---icons-tertiary)",
|
|
4240
|
-
size: 24,
|
|
4241
|
-
strokeWidth: 1.5
|
|
4242
|
-
};
|
|
4243
|
-
var PLAN_FEATURES_BY_AMOUNT = {
|
|
4244
|
-
// Free — 300 credits
|
|
4245
|
-
0: [
|
|
4246
|
-
{
|
|
4247
|
-
section: "Artifax",
|
|
4248
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4249
|
-
features: [
|
|
4250
|
-
"Generate up to 60 images",
|
|
4251
|
-
"Fill techpacks manually",
|
|
4252
|
-
"Monitor up to 3 essential brands"
|
|
4253
|
-
]
|
|
4254
|
-
},
|
|
4255
|
-
{
|
|
4256
|
-
section: "Photogenix",
|
|
4257
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4258
|
-
features: [
|
|
4259
|
-
"Generate up to 60 images",
|
|
4260
|
-
"Generate up to 18 videos (8s)",
|
|
4261
|
-
"Retouch up to 300 images"
|
|
4262
|
-
]
|
|
4263
|
-
},
|
|
4264
|
-
{
|
|
4265
|
-
section: "Catalogix",
|
|
4266
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4267
|
-
features: [
|
|
4268
|
-
"Upload 50 products per store",
|
|
4269
|
-
"Catalog up to 75 products",
|
|
4270
|
-
"List up to 30 template files"
|
|
4271
|
-
]
|
|
4272
|
-
}
|
|
4273
|
-
],
|
|
4274
|
-
// PRO $49.99 — 1,000 credits
|
|
4275
|
-
4999: [
|
|
4276
|
-
{
|
|
4277
|
-
section: "Artifax",
|
|
4278
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4279
|
-
features: [
|
|
4280
|
-
"Generate up to 200 images",
|
|
4281
|
-
"Autofill up to 5 techpacks",
|
|
4282
|
-
"Monitor up to 10 custom brands"
|
|
4283
|
-
]
|
|
4284
|
-
},
|
|
4285
|
-
{
|
|
4286
|
-
section: "Photogenix",
|
|
4287
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4288
|
-
features: [
|
|
4289
|
-
"Generate up to 200 images",
|
|
4290
|
-
"Generate up to 60 videos (8s)",
|
|
4291
|
-
"Retouch up to 1,000 images"
|
|
4292
|
-
]
|
|
4293
|
-
},
|
|
4294
|
-
{
|
|
4295
|
-
section: "Catalogix",
|
|
4296
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4297
|
-
features: [
|
|
4298
|
-
"Upload 100k products per store",
|
|
4299
|
-
"Catalog up to 250 products",
|
|
4300
|
-
"List up to 100 template files"
|
|
4301
|
-
]
|
|
4302
|
-
}
|
|
4303
|
-
],
|
|
4304
|
-
// PRO $149.99 — 3,000 credits
|
|
4305
|
-
14999: [
|
|
4306
|
-
{
|
|
4307
|
-
section: "Artifax",
|
|
4308
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4309
|
-
features: [
|
|
4310
|
-
"Generate up to 600 images",
|
|
4311
|
-
"Autofill up to 15 techpacks",
|
|
4312
|
-
"Monitor up to 30 custom brands"
|
|
4313
|
-
]
|
|
4314
|
-
},
|
|
4315
|
-
{
|
|
4316
|
-
section: "Photogenix",
|
|
4317
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4318
|
-
features: [
|
|
4319
|
-
"Generate up to 600 images",
|
|
4320
|
-
"Generate up to 180 videos (8s)",
|
|
4321
|
-
"Retouch up to 3,000 images"
|
|
4322
|
-
]
|
|
4323
|
-
},
|
|
4324
|
-
{
|
|
4325
|
-
section: "Catalogix",
|
|
4326
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4327
|
-
features: [
|
|
4328
|
-
"Upload 100k products per store",
|
|
4329
|
-
"Catalog up to 750 products",
|
|
4330
|
-
"List up to 300 template files"
|
|
4331
|
-
]
|
|
4332
|
-
}
|
|
4333
|
-
],
|
|
4334
|
-
// PRO $349.99 — 8,000 credits
|
|
4335
|
-
34999: [
|
|
4336
|
-
{
|
|
4337
|
-
section: "Artifax",
|
|
4338
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4339
|
-
features: [
|
|
4340
|
-
"Generate up to 1,600 images",
|
|
4341
|
-
"Autofill up to 40 techpacks",
|
|
4342
|
-
"Monitor up to 80 custom brands"
|
|
4343
|
-
]
|
|
4344
|
-
},
|
|
4345
|
-
{
|
|
4346
|
-
section: "Photogenix",
|
|
4347
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4348
|
-
features: [
|
|
4349
|
-
"Generate up to 1,600 images",
|
|
4350
|
-
"Generate up to 480 videos (8s)",
|
|
4351
|
-
"Retouch up to 8,000 images"
|
|
4352
|
-
]
|
|
4353
|
-
},
|
|
4354
|
-
{
|
|
4355
|
-
section: "Catalogix",
|
|
4356
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4357
|
-
features: [
|
|
4358
|
-
"Upload 100k products per store",
|
|
4359
|
-
"Catalog up to 2,000 products",
|
|
4360
|
-
"List up to 800 template files"
|
|
4361
|
-
]
|
|
4362
|
-
}
|
|
4363
|
-
],
|
|
4364
|
-
// PRO $549.99 — 15,000 credits
|
|
4365
|
-
54999: [
|
|
4366
|
-
{
|
|
4367
|
-
section: "Artifax",
|
|
4368
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4369
|
-
features: [
|
|
4370
|
-
"Generate up to 3,000 images",
|
|
4371
|
-
"Autofill up to 75 techpacks",
|
|
4372
|
-
"Monitor up to 150 custom brands"
|
|
4373
|
-
]
|
|
4374
|
-
},
|
|
4375
|
-
{
|
|
4376
|
-
section: "Photogenix",
|
|
4377
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4378
|
-
features: [
|
|
4379
|
-
"Generate up to 3,000 images",
|
|
4380
|
-
"Generate up to 900 videos (8s)",
|
|
4381
|
-
"Retouch up to 15,000 images"
|
|
4382
|
-
]
|
|
4383
|
-
},
|
|
4384
|
-
{
|
|
4385
|
-
section: "Catalogix",
|
|
4386
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4387
|
-
features: [
|
|
4388
|
-
"Upload 100k products per store",
|
|
4389
|
-
"Catalog up to 3,750 products",
|
|
4390
|
-
"List up to 1,500 template files"
|
|
4391
|
-
]
|
|
4392
|
-
}
|
|
4393
|
-
],
|
|
4394
|
-
// PRO $1,049.99 — 30,000 credits
|
|
4395
|
-
104999: [
|
|
4396
|
-
{
|
|
4397
|
-
section: "Artifax",
|
|
4398
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4399
|
-
features: [
|
|
4400
|
-
"Generate up to 6,000 images",
|
|
4401
|
-
"Autofill up to 150 techpacks",
|
|
4402
|
-
"Monitor up to 300 custom brands"
|
|
4403
|
-
]
|
|
4404
|
-
},
|
|
4405
|
-
{
|
|
4406
|
-
section: "Photogenix",
|
|
4407
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4408
|
-
features: [
|
|
4409
|
-
"Generate up to 6,000 images",
|
|
4410
|
-
"Generate up to 1,800 videos (8s)",
|
|
4411
|
-
"Retouch up to 30,000 images"
|
|
4412
|
-
]
|
|
4413
|
-
},
|
|
4414
|
-
{
|
|
4415
|
-
section: "Catalogix",
|
|
4416
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4417
|
-
features: [
|
|
4418
|
-
"Upload 100k products per store",
|
|
4419
|
-
"Catalog up to 7,500 products",
|
|
4420
|
-
"List up to 3,000 template files"
|
|
4421
|
-
]
|
|
4422
|
-
}
|
|
4423
|
-
]
|
|
4424
|
-
};
|
|
4425
|
-
var ENTERPRISE_FEATURES = [
|
|
4426
|
-
{
|
|
4427
|
-
section: "Artifax",
|
|
4428
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconArtifacts, { ...SECTION_ICON_PROPS }),
|
|
4429
|
-
features: [
|
|
4430
|
-
"Custom image generations",
|
|
4431
|
-
"Custom techpack autofilled",
|
|
4432
|
-
"Custom number of brands"
|
|
4433
|
-
]
|
|
4434
|
-
},
|
|
4435
|
-
{
|
|
4436
|
-
section: "Photogenix",
|
|
4437
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconPhotogenix, { ...SECTION_ICON_PROPS }),
|
|
4438
|
-
features: [
|
|
4439
|
-
"Custom image generations",
|
|
4440
|
-
"Custom video generations",
|
|
4441
|
-
"Custom image retouches"
|
|
4442
|
-
]
|
|
4443
|
-
},
|
|
4444
|
-
{
|
|
4445
|
-
section: "Catalogix",
|
|
4446
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconCatalogix, { ...SECTION_ICON_PROPS }),
|
|
4447
|
-
features: [
|
|
4448
|
-
"Custom product uploads",
|
|
4449
|
-
"Custom product cataloging",
|
|
4450
|
-
"Custom template file listings"
|
|
4451
|
-
]
|
|
4452
|
-
}
|
|
4453
|
-
];
|
|
4454
|
-
function getPlanFeatures(amount) {
|
|
4455
|
-
if (PLAN_FEATURES_BY_AMOUNT[amount]) return PLAN_FEATURES_BY_AMOUNT[amount];
|
|
4456
|
-
const tiers = Object.keys(PLAN_FEATURES_BY_AMOUNT).map(Number).sort((a, b) => a - b);
|
|
4457
|
-
let best = tiers[0];
|
|
4458
|
-
for (const t of tiers) {
|
|
4459
|
-
if (t <= amount) best = t;
|
|
4460
|
-
else break;
|
|
4461
|
-
}
|
|
4462
|
-
return PLAN_FEATURES_BY_AMOUNT[best] ?? [];
|
|
4463
|
-
}
|
|
4464
4322
|
function formatNextBillingDateLabel(iso) {
|
|
4465
4323
|
if (iso) {
|
|
4466
4324
|
const parsed = new Date(iso);
|
|
@@ -4795,8 +4653,10 @@ function UpdateSubscriptionModal({
|
|
|
4795
4653
|
}
|
|
4796
4654
|
);
|
|
4797
4655
|
}
|
|
4656
|
+
var stripMonthly = (price) => price.replace(/\s*\/\s*month\s*$/i, "");
|
|
4798
4657
|
function PlansView({
|
|
4799
4658
|
onBack,
|
|
4659
|
+
hideHeader,
|
|
4800
4660
|
products,
|
|
4801
4661
|
currentPlanId,
|
|
4802
4662
|
currentPlanEndDate,
|
|
@@ -4894,80 +4754,42 @@ function PlansView({
|
|
|
4894
4754
|
backgroundSize: "24px 24px"
|
|
4895
4755
|
},
|
|
4896
4756
|
children: [
|
|
4897
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.
|
|
4757
|
+
!hideHeader && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4898
4758
|
"div",
|
|
4899
4759
|
{
|
|
4900
|
-
className: "flex items-center shrink-0 w-full",
|
|
4760
|
+
className: "flex items-center justify-end shrink-0 w-full",
|
|
4901
4761
|
style: { gap: "var(--spacing-lg)" },
|
|
4902
|
-
children:
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
children: "Pick a plan based on your monthly usage and credit needs."
|
|
4934
|
-
}
|
|
4935
|
-
)
|
|
4936
|
-
]
|
|
4937
|
-
}
|
|
4938
|
-
),
|
|
4939
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
4940
|
-
"div",
|
|
4941
|
-
{
|
|
4942
|
-
className: "flex items-center shrink-0 cursor-pointer",
|
|
4943
|
-
style: {
|
|
4944
|
-
gap: "var(--spacing-sm)",
|
|
4945
|
-
padding: "var(--spacing-xs) var(--spacing-lg)",
|
|
4946
|
-
borderRadius: "var(--radius-xl)",
|
|
4947
|
-
height: 32,
|
|
4948
|
-
border: "1px solid var(--alias-border-subtle)",
|
|
4949
|
-
backgroundColor: "var(--alias-surface-base)"
|
|
4950
|
-
},
|
|
4951
|
-
onClick: onBack,
|
|
4952
|
-
children: [
|
|
4953
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconLeft, { className: "w-4 h-4", color: MUTED_COLOR }),
|
|
4954
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4955
|
-
"span",
|
|
4956
|
-
{
|
|
4957
|
-
style: {
|
|
4958
|
-
fontFamily: "var(--font-family-font-family-body)",
|
|
4959
|
-
fontSize: "var(--font-size-font-size-sm)",
|
|
4960
|
-
fontWeight: 500,
|
|
4961
|
-
lineHeight: "var(--line-height-line-height-sm)",
|
|
4962
|
-
color: "var(--alias-text---icons-muted)"
|
|
4963
|
-
},
|
|
4964
|
-
children: "Back to billing"
|
|
4965
|
-
}
|
|
4966
|
-
)
|
|
4967
|
-
]
|
|
4968
|
-
}
|
|
4969
|
-
)
|
|
4970
|
-
]
|
|
4762
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
4763
|
+
"div",
|
|
4764
|
+
{
|
|
4765
|
+
className: "flex items-center shrink-0 cursor-pointer",
|
|
4766
|
+
style: {
|
|
4767
|
+
gap: "var(--spacing-sm)",
|
|
4768
|
+
padding: "var(--spacing-xs) var(--spacing-lg)",
|
|
4769
|
+
borderRadius: "var(--radius-xl)",
|
|
4770
|
+
height: 32,
|
|
4771
|
+
border: "1px solid var(--alias-border-subtle)",
|
|
4772
|
+
backgroundColor: "var(--alias-surface-base)"
|
|
4773
|
+
},
|
|
4774
|
+
onClick: onBack,
|
|
4775
|
+
children: [
|
|
4776
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons5.SiconLeft, { className: "w-4 h-4", color: MUTED_COLOR }),
|
|
4777
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4778
|
+
"span",
|
|
4779
|
+
{
|
|
4780
|
+
style: {
|
|
4781
|
+
fontFamily: "var(--font-family-font-family-body)",
|
|
4782
|
+
fontSize: "var(--font-size-font-size-sm)",
|
|
4783
|
+
fontWeight: 500,
|
|
4784
|
+
lineHeight: "var(--line-height-line-height-sm)",
|
|
4785
|
+
color: "var(--alias-text---icons-muted)"
|
|
4786
|
+
},
|
|
4787
|
+
children: "Back to billing"
|
|
4788
|
+
}
|
|
4789
|
+
)
|
|
4790
|
+
]
|
|
4791
|
+
}
|
|
4792
|
+
)
|
|
4971
4793
|
}
|
|
4972
4794
|
),
|
|
4973
4795
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
@@ -4980,10 +4802,10 @@ function PlansView({
|
|
|
4980
4802
|
import_ui5.ScPlanCard,
|
|
4981
4803
|
{
|
|
4982
4804
|
planName: freePlan?.planName || "Free",
|
|
4983
|
-
price: freePlan?.price || `${workspaceCurrencySymbol}0
|
|
4805
|
+
price: stripMonthly(freePlan?.price || `${workspaceCurrencySymbol}0`),
|
|
4984
4806
|
credits: freePlan?.credits || "3,000 credits",
|
|
4985
4807
|
type: "free",
|
|
4986
|
-
|
|
4808
|
+
tagline: PLAN_TAGLINES.free,
|
|
4987
4809
|
buttonText: isFreeActionLoading ? "Processing..." : freePlan?.isCurrent ? "Current plan" : "Downgrade to free",
|
|
4988
4810
|
buttonState: freePlan?.isCurrent || isFreeActionLoading ? "disabled" : "default",
|
|
4989
4811
|
buttonVariant: "secondary",
|
|
@@ -5010,12 +4832,10 @@ function PlansView({
|
|
|
5010
4832
|
import_ui5.ScPlanCard,
|
|
5011
4833
|
{
|
|
5012
4834
|
planName: "Pro",
|
|
5013
|
-
price: selectedMiddlePlan?.price || "\u2014",
|
|
4835
|
+
price: stripMonthly(selectedMiddlePlan?.price || "\u2014"),
|
|
5014
4836
|
credits: selectedMiddlePlan?.credits || "\u2014",
|
|
5015
4837
|
type: "popular",
|
|
5016
|
-
|
|
5017
|
-
selectedMiddlePlan?.amount ?? middlePlans[0]?.amount ?? 4999
|
|
5018
|
-
),
|
|
4838
|
+
tagline: PLAN_TAGLINES.pro,
|
|
5019
4839
|
buttonText: isMiddleActionLoading ? "Processing..." : !selectedMiddlePlan ? "Select a plan" : selectedMiddlePlan.isCurrent ? "Current plan" : selectedMiddlePlan.amount > currentPlanAmount ? "Upgrade" : "Downgrade",
|
|
5020
4840
|
buttonState: selectedMiddlePlan?.isCurrent || isMiddleActionLoading || !selectedMiddlePlan ? "disabled" : "default",
|
|
5021
4841
|
buttonVariant: selectedMiddlePlan?.isCurrent ? "outline" : selectedMiddlePlan && selectedMiddlePlan.amount > currentPlanAmount ? "primary" : "secondary",
|
|
@@ -5106,12 +4926,8 @@ function PlansView({
|
|
|
5106
4926
|
{
|
|
5107
4927
|
planName: "Enterprise",
|
|
5108
4928
|
type: "custom",
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("br", {}),
|
|
5112
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { style: { marginBottom: 0 }, children: "Get expanded capacity, flexible usage options, and dedicated support to manage large production volumes and complex catalogs with confidence." })
|
|
5113
|
-
] }),
|
|
5114
|
-
buttonText: "Contact us",
|
|
4929
|
+
tagline: PLAN_TAGLINES.enterprise,
|
|
4930
|
+
buttonText: "Contact Sales",
|
|
5115
4931
|
buttonVariant: "secondary",
|
|
5116
4932
|
onUpgrade: () => {
|
|
5117
4933
|
window.open("https://cal.com/streamoid/30min", "_blank");
|
|
@@ -5123,17 +4939,13 @@ function PlansView({
|
|
|
5123
4939
|
}
|
|
5124
4940
|
),
|
|
5125
4941
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
5126
|
-
|
|
4942
|
+
import_ui5.ScPlanComparison,
|
|
5127
4943
|
{
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
lineHeight: "var(--line-height-line-height-sm)",
|
|
5134
|
-
color: "var(--alias-text---icons-muted)"
|
|
5135
|
-
},
|
|
5136
|
-
children: "Credits expire monthly"
|
|
4944
|
+
layout: "table",
|
|
4945
|
+
columns: [...PLAN_COMPARISON_COLUMNS],
|
|
4946
|
+
note: PLAN_COMPARISON_NOTE,
|
|
4947
|
+
sections: PLAN_COMPARISON_SECTIONS,
|
|
4948
|
+
highlightColumnIndex: 1
|
|
5137
4949
|
}
|
|
5138
4950
|
),
|
|
5139
4951
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
@@ -5523,7 +5335,9 @@ function UsageLogsTable({
|
|
|
5523
5335
|
);
|
|
5524
5336
|
}
|
|
5525
5337
|
function BillingContent({
|
|
5526
|
-
embedded = false
|
|
5338
|
+
embedded = false,
|
|
5339
|
+
showPlans: showPlansProp,
|
|
5340
|
+
onShowPlansChange
|
|
5527
5341
|
} = {}) {
|
|
5528
5342
|
const { auth, workspace, api, toast, navigation } = useSettingsAdapters();
|
|
5529
5343
|
const user = auth.user;
|
|
@@ -5536,7 +5350,12 @@ function BillingContent({
|
|
|
5536
5350
|
return `${window.location.origin}${window.location.pathname}`;
|
|
5537
5351
|
};
|
|
5538
5352
|
const [activeTab, setActiveTab] = (0, import_react8.useState)("invoice");
|
|
5539
|
-
const [
|
|
5353
|
+
const [showPlansInternal, setShowPlansInternal] = (0, import_react8.useState)(false);
|
|
5354
|
+
const showPlans = showPlansProp ?? showPlansInternal;
|
|
5355
|
+
const setShowPlans = (next) => {
|
|
5356
|
+
if (onShowPlansChange) onShowPlansChange(next);
|
|
5357
|
+
else setShowPlansInternal(next);
|
|
5358
|
+
};
|
|
5540
5359
|
const [showExportModal, setShowExportModal] = (0, import_react8.useState)(false);
|
|
5541
5360
|
const [showBuyCreditsModal, setShowBuyCreditsModal] = (0, import_react8.useState)(false);
|
|
5542
5361
|
const [subscription, setSubscription] = (0, import_react8.useState)(null);
|
|
@@ -5999,6 +5818,7 @@ function BillingContent({
|
|
|
5999
5818
|
PlansView,
|
|
6000
5819
|
{
|
|
6001
5820
|
onBack: () => setShowPlans(false),
|
|
5821
|
+
hideHeader: Boolean(onShowPlansChange),
|
|
6002
5822
|
products,
|
|
6003
5823
|
currentPlanId: subscription?.plan?.id,
|
|
6004
5824
|
currentPlanEndDate: subscription?.plan?.subscriptionEndDate,
|
|
@@ -7843,6 +7663,11 @@ function SettingsContentInner({ activeTab }) {
|
|
|
7843
7663
|
const [teamInviteOpen, setTeamInviteOpen] = (0, import_react10.useState)(false);
|
|
7844
7664
|
const [tokenShowRevoked, setTokenShowRevoked] = (0, import_react10.useState)(false);
|
|
7845
7665
|
const [tokenCreateOpen, setTokenCreateOpen] = (0, import_react10.useState)(false);
|
|
7666
|
+
const [billingShowPlans, setBillingShowPlans] = (0, import_react10.useState)(false);
|
|
7667
|
+
const isBillingPlans = activeTab === "billing" && billingShowPlans;
|
|
7668
|
+
(0, import_react10.useEffect)(() => {
|
|
7669
|
+
if (activeTab !== "billing") setBillingShowPlans(false);
|
|
7670
|
+
}, [activeTab]);
|
|
7846
7671
|
const [localWorkspaces, setLocalWorkspaces] = (0, import_react10.useState)(null);
|
|
7847
7672
|
const [wsModalOpen, setWsModalOpen] = (0, import_react10.useState)(false);
|
|
7848
7673
|
const [wsModalMode, setWsModalMode] = (0, import_react10.useState)("create");
|
|
@@ -8135,8 +7960,55 @@ function SettingsContentInner({ activeTab }) {
|
|
|
8135
7960
|
},
|
|
8136
7961
|
children: TAB_LABELS[activeTab]
|
|
8137
7962
|
}
|
|
8138
|
-
)
|
|
7963
|
+
),
|
|
7964
|
+
isBillingPlans && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
7965
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_icons7.SiconRight, { className: "w-6 h-6 shrink-0", color: "var(--alias-text---icons-primary)" }),
|
|
7966
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
7967
|
+
"span",
|
|
7968
|
+
{
|
|
7969
|
+
style: {
|
|
7970
|
+
fontFamily: "var(--font-family-font-family-body)",
|
|
7971
|
+
fontSize: "var(--font-size-font-size-xl)",
|
|
7972
|
+
fontWeight: 500,
|
|
7973
|
+
lineHeight: "var(--line-height-line-height-xl)",
|
|
7974
|
+
color: "var(--alias-text---icons-primary)"
|
|
7975
|
+
},
|
|
7976
|
+
children: "Plans"
|
|
7977
|
+
}
|
|
7978
|
+
)
|
|
7979
|
+
] })
|
|
8139
7980
|
] }),
|
|
7981
|
+
isBillingPlans && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
7982
|
+
"div",
|
|
7983
|
+
{
|
|
7984
|
+
className: "flex items-center shrink-0 cursor-pointer",
|
|
7985
|
+
style: {
|
|
7986
|
+
gap: "var(--spacing-sm)",
|
|
7987
|
+
padding: "var(--spacing-xs) var(--spacing-lg)",
|
|
7988
|
+
borderRadius: "var(--radius-xl)",
|
|
7989
|
+
height: 32,
|
|
7990
|
+
border: "1px solid var(--alias-border-subtle)",
|
|
7991
|
+
backgroundColor: "var(--alias-surface-base)"
|
|
7992
|
+
},
|
|
7993
|
+
onClick: () => setBillingShowPlans(false),
|
|
7994
|
+
children: [
|
|
7995
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_icons7.SiconLeft, { className: "w-4 h-4", color: "var(--alias-text---icons-muted)" }),
|
|
7996
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
7997
|
+
"span",
|
|
7998
|
+
{
|
|
7999
|
+
style: {
|
|
8000
|
+
fontFamily: "var(--font-family-font-family-body)",
|
|
8001
|
+
fontSize: "var(--font-size-font-size-sm)",
|
|
8002
|
+
fontWeight: 500,
|
|
8003
|
+
lineHeight: "var(--line-height-line-height-sm)",
|
|
8004
|
+
color: "var(--alias-text---icons-muted)"
|
|
8005
|
+
},
|
|
8006
|
+
children: "Back to billing"
|
|
8007
|
+
}
|
|
8008
|
+
)
|
|
8009
|
+
]
|
|
8010
|
+
}
|
|
8011
|
+
),
|
|
8140
8012
|
activeTab === "workspace" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
8141
8013
|
import_ui9.ScButton,
|
|
8142
8014
|
{
|
|
@@ -8208,7 +8080,7 @@ function SettingsContentInner({ activeTab }) {
|
|
|
8208
8080
|
className: "flex items-start flex-1 min-h-0 w-full overflow-hidden",
|
|
8209
8081
|
style: { gap: 20 },
|
|
8210
8082
|
children: [
|
|
8211
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SettingsNav, { activeTab, onTabChange: setActiveTab }),
|
|
8083
|
+
!isBillingPlans && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SettingsNav, { activeTab, onTabChange: setActiveTab }),
|
|
8212
8084
|
activeTab === "profile" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ProfileTab, {}),
|
|
8213
8085
|
activeTab === "workspace" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
8214
8086
|
WorkspaceTab,
|
|
@@ -8233,7 +8105,14 @@ function SettingsContentInner({ activeTab }) {
|
|
|
8233
8105
|
),
|
|
8234
8106
|
activeTab === "referral" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ReferralTab, {}),
|
|
8235
8107
|
activeTab === "team" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-col flex-1 min-w-0 min-h-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TeamsContent, { embedded: true, onInviteOpen: teamInviteOpen, onInviteOpenChange: setTeamInviteOpen }) }),
|
|
8236
|
-
activeTab === "billing" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-col flex-1 min-w-0 min-h-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
8108
|
+
activeTab === "billing" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-col flex-1 min-w-0 min-h-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
8109
|
+
BillingContent,
|
|
8110
|
+
{
|
|
8111
|
+
embedded: true,
|
|
8112
|
+
showPlans: billingShowPlans,
|
|
8113
|
+
onShowPlansChange: setBillingShowPlans
|
|
8114
|
+
}
|
|
8115
|
+
) }),
|
|
8237
8116
|
activeTab === "apikey" && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex flex-col flex-1 min-w-0 min-h-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
8238
8117
|
TokensContent,
|
|
8239
8118
|
{
|