@schematichq/schematic-components 0.4.6 → 0.4.8

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.
@@ -2107,6 +2107,7 @@ __export(index_exports, {
2107
2107
  StyledCard: () => StyledCard,
2108
2108
  Text: () => Text,
2109
2109
  Tooltip: () => Tooltip,
2110
+ UnsubscribeButton: () => UnsubscribeButton,
2110
2111
  UpcomingBill: () => UpcomingBill,
2111
2112
  Viewport: () => Viewport,
2112
2113
  cardBoxShadow: () => cardBoxShadow,
@@ -3782,11 +3783,11 @@ function useAvailablePlans(activePeriod) {
3782
3783
  const getActivePlans = (0, import_react10.useCallback)(
3783
3784
  (plans) => {
3784
3785
  const customPlanExist = plans.some((plan) => plan.custom);
3785
- let plansWithSelected = mode === "edit" ? plans.slice() : plans.filter(
3786
+ const plansWithSelected = mode === "edit" ? plans.slice() : plans.filter(
3786
3787
  (plan) => activePeriod === "month" && plan.monthlyPrice || activePeriod === "year" && plan.yearlyPrice
3787
3788
  );
3788
3789
  if (!customPlanExist) {
3789
- plansWithSelected = plansWithSelected.sort((a2, b2) => {
3790
+ plansWithSelected.sort((a2, b2) => {
3790
3791
  if (activePeriod === "year") {
3791
3792
  return (a2.yearlyPrice?.price ?? 0) - (b2.yearlyPrice?.price ?? 0);
3792
3793
  }
@@ -11972,6 +11973,7 @@ var CheckoutexternalApi = class extends BaseAPI {
11972
11973
  var en_default = {
11973
11974
  translation: {
11974
11975
  "A problem occurred while saving your payment method.": "A problem occurred while saving your payment method.",
11976
+ "Access to plan will end on": "Access to plan will end on {{date}}",
11975
11977
  Active: "Active",
11976
11978
  "Add payment method": "Add payment method",
11977
11979
  "Add Seats": "Add More",
@@ -11981,6 +11983,7 @@ var en_default = {
11981
11983
  "After the trial, cancel no default": "After the trial, you will be lose access to {{planName}} plan and your subscription will be cancelled.",
11982
11984
  Billed: "Billed {{period}}",
11983
11985
  "billing period": "billing period",
11986
+ "Cancel subscription": "Cancel subscription",
11984
11987
  "Cannot downgrade entitlement": "Cannot downgrade to a lower quantity than current usage.",
11985
11988
  "Card ending in": "\u{1F4B3} Card ending in {{value}}",
11986
11989
  "Change add-on": "Change add-on",
@@ -12015,9 +12018,11 @@ var en_default = {
12015
12018
  Invoices: "Invoices",
12016
12019
  "Limit of": "Limit of {{amount}}",
12017
12020
  Loading: "Loading",
12021
+ "Manage plan": "Manage plan",
12018
12022
  Monthly: "Monthly",
12019
12023
  Next: "Next",
12020
12024
  "No limit": "No limit",
12025
+ "Not ready to cancel?": "Not ready to cancel?",
12021
12026
  "Optionally add features to your subscription": "Optionally add features to your subscription",
12022
12027
  "Other existing payment method": "Other existing payment method",
12023
12028
  "Over usage limit": "Over usage limit",
@@ -12044,10 +12049,13 @@ var en_default = {
12044
12049
  "Start trial": "Start trial",
12045
12050
  "Subscribe and close": "Subscribe and close",
12046
12051
  Subscription: "Subscription",
12052
+ "Subscription canceled": "Subscription canceled",
12047
12053
  Trial: "Trial",
12048
12054
  "Trial ends in": "Trial ends in {{days}} days",
12049
12055
  "Trial plan": "Try free for {{days}} days",
12050
12056
  Unlimited: "Unlimited {{item}}",
12057
+ Unsubscribe: "Unsubscribe",
12058
+ "Unsubscribe failed": "Unsubscribe failed",
12051
12059
  "Unused time": "Unused time",
12052
12060
  Usage: "Usage",
12053
12061
  "Usage-based": "Usage-based",
@@ -12055,6 +12063,7 @@ var en_default = {
12055
12063
  "X% off": "{{percent}}% off",
12056
12064
  "X off": "{{amount}} off",
12057
12065
  Yearly: "Yearly",
12066
+ "You will retain access to your plan until the end of the billing period, on": "You will retain access to your plan until the end of the billing period, on",
12058
12067
  day: "day",
12059
12068
  month: "month",
12060
12069
  per: "per",
@@ -12072,7 +12081,7 @@ var GlobalStyle = ft`;
12072
12081
 
12073
12082
  @font-face {
12074
12083
  font-family: "icons";
12075
- src: url(data:font/ttf;base64,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AGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwAFYWxhcm0JYW1hem9ucGF5BGFtZXgIYXBwbGVwYXkPYXJyb3ctYW5hbHl0aWNzDGFycm93LWN1cnZlZAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQIYXJyb3ctdXAMYXJyb3ctdXB3YXJkCWJhY2tzcGFjZQRiYW5rBGJlbGwFYm9hcmQIYm9va21hcmsKYm9vbGVhbi1vbgdib29sZWFuBGJ1bGIGYnVyZ2VyB2Nhc2hhcHANY2hlY2stcm91bmRlZAVjaGVjawxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwBWNoaXBzBWNsZXJrFGNsb3NlLXJvdW5kZWQtZmlsbGVkBWNsb3NlCGNsb3VkLXVwBGNsdWIDY21kBGNvZGUGY29mZmVlA2NvZw5jb2xsYXBzZS1lbXB0eQhjb2xsYXBzZQdjb21wYXNzCmNvbm5lY3Rpb24EY29weQZjcmVkaXQHY3lsbmRlcgdkaWFtb25kDmRvbGxhci1yb3VuZGVkD2RvdHMtaG9yaXpvbnRhbA1kb3RzLXZlcnRpY2FsDGVudGl0bGVtZW50cwllcXVhbGl6ZXIaZXhjbGFtYXRpb24tcm91bmRlZC1maWxsZWQDZXllBmZpbHRlcgVmbGFzawxmb2xkZXItbWludXMLZm9sZGVyLXBsdXMGZm9sZGVyD2dlbmVyaWMtcGF5bWVudAdnbGFzc2VzBWdsb2JlBmhhbW1lcgRoYXNoBWhlYXJ0B2h1YnNwb3QFaW1hZ2UMaW5mby1yb3VuZGVkBWp1aWNlA2tleQRsaW5rCm1hc3RlcmNhcmQFbXVzaWMKbm9kZS1taW51cwlub2RlLXBsdXMHcGFja2FnZQtwYXBlci1wbGFuZQZwYXlwYWwGcGVuY2lsB3BlcmNlbnQGcGlja2VyBHBsYW4EcGx1ZwpwbHVzLW1pbnVzFHBsdXMtcm91bmRlZC1vdXRsaW5lB3ByZXNlbnQJc2NoZW1hdGljBnNlYXJjaAdzZWdtZW50DXNlcnZlci1zZWFyY2gHc2lkZWJhcgZzaWduYWwHc2lsZW5jZQVzcGFkZQdzcGVha2VyB3N0YWNrZWQGc3RhY2tzBnN0cmlwZQR0ZXh0B3RodW5kZXIHdG9ybmFkbwV0cnVjawR0dWJlC3VucHJvdGVjdGVkCHZlcmlmaWVkDHZpZGVvLWNhbWVyYQR2aXNhBndhbGxldAp3YXRjaC1oYW5kDHdhdGNoLXBvY2tldAp3YXRlci1kcm9wBXdhdmVzB3dlYmhvb2sEd2luZAAAAA==), format("truetype");
12084
+ src: url(data:font/ttf;base64,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ASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwAFYWxhcm0JYW1hem9ucGF5BGFtZXgIYXBwbGVwYXkPYXJyb3ctYW5hbHl0aWNzDGFycm93LWN1cnZlZAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQIYXJyb3ctdXAMYXJyb3ctdXB3YXJkCWJhY2tzcGFjZQRiYW5rBGJlbGwFYm9hcmQIYm9va21hcmsKYm9vbGVhbi1vbgdib29sZWFuBGJ1bGIGYnVyZ2VyB2Nhc2hhcHANY2hlY2stcm91bmRlZAVjaGVjawxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwBWNoaXBzBWNsZXJrFGNsb3NlLXJvdW5kZWQtZmlsbGVkBWNsb3NlCGNsb3VkLXVwBGNsdWIDY21kBGNvZGUGY29mZmVlA2NvZw5jb2xsYXBzZS1lbXB0eQhjb2xsYXBzZQdjb21wYXNzCmNvbm5lY3Rpb24EY29weQZjcmVkaXQHY3lsbmRlcgdkaWFtb25kDmRvbGxhci1yb3VuZGVkD2RvdHMtaG9yaXpvbnRhbA1kb3RzLXZlcnRpY2FsDGVudGl0bGVtZW50cwllcXVhbGl6ZXIaZXhjbGFtYXRpb24tcm91bmRlZC1maWxsZWQDZXllBmZpbHRlcgVmbGFzawxmb2xkZXItbWludXMLZm9sZGVyLXBsdXMGZm9sZGVyD2dlbmVyaWMtcGF5bWVudAZnaXRodWIHZ2xhc3NlcwVnbG9iZQZnb29nbGUGaGFtbWVyBGhhc2gFaGVhcnQHaHVic3BvdAVpbWFnZQxpbmZvLXJvdW5kZWQFanVpY2UDa2V5BGxpbmsKbWFzdGVyY2FyZARtb3ZlBW11c2ljCm5vZGUtbWludXMJbm9kZS1wbHVzB3BhY2thZ2ULcGFwZXItcGxhbmUGcGF5cGFsBnBlbmNpbAdwZXJjZW50BnBpY2tlcgRwbGFuBHBsdWcKcGx1cy1taW51cxRwbHVzLXJvdW5kZWQtb3V0bGluZQdwcmVzZW50CXNjaGVtYXRpYwZzZWFyY2gHc2VnbWVudA1zZXJ2ZXItc2VhcmNoB3NpZGViYXIGc2lnbmFsB3NpbGVuY2UFc3BhZGUHc3BlYWtlcgdzdGFja2VkBnN0YWNrcwZzdHJpcGUEdGV4dAd0aHVuZGVyB3Rvcm5hZG8FdHJ1Y2sEdHViZQt1bnByb3RlY3RlZAt1bnN1YnNjcmliZQh2ZXJpZmllZAx2aWRlby1jYW1lcmEEdmlzYQZ3YWxsZXQKd2F0Y2gtaGFuZAx3YXRjaC1wb2NrZXQKd2F0ZXItZHJvcAV3YXZlcwd3ZWJob29rBHdpbmQAAAAA), format("truetype");
12076
12085
  }
12077
12086
 
12078
12087
  i[class^="i-"]:before,
@@ -12320,221 +12329,237 @@ i[class*=" i-"]:before {
12320
12329
  content: "\\f13b";
12321
12330
  }
12322
12331
 
12323
- .i-glasses::before {
12332
+ .i-github::before {
12324
12333
  content: "\\f13c";
12325
12334
  }
12326
12335
 
12327
- .i-globe::before {
12336
+ .i-glasses::before {
12328
12337
  content: "\\f13d";
12329
12338
  }
12330
12339
 
12331
- .i-hammer::before {
12340
+ .i-globe::before {
12332
12341
  content: "\\f13e";
12333
12342
  }
12334
12343
 
12335
- .i-hash::before {
12344
+ .i-google::before {
12336
12345
  content: "\\f13f";
12337
12346
  }
12338
12347
 
12339
- .i-heart::before {
12348
+ .i-hammer::before {
12340
12349
  content: "\\f140";
12341
12350
  }
12342
12351
 
12343
- .i-hubspot::before {
12352
+ .i-hash::before {
12344
12353
  content: "\\f141";
12345
12354
  }
12346
12355
 
12347
- .i-image::before {
12356
+ .i-heart::before {
12348
12357
  content: "\\f142";
12349
12358
  }
12350
12359
 
12351
- .i-info-rounded::before {
12360
+ .i-hubspot::before {
12352
12361
  content: "\\f143";
12353
12362
  }
12354
12363
 
12355
- .i-juice::before {
12364
+ .i-image::before {
12356
12365
  content: "\\f144";
12357
12366
  }
12358
12367
 
12359
- .i-key::before {
12368
+ .i-info-rounded::before {
12360
12369
  content: "\\f145";
12361
12370
  }
12362
12371
 
12363
- .i-link::before {
12372
+ .i-juice::before {
12364
12373
  content: "\\f146";
12365
12374
  }
12366
12375
 
12367
- .i-mastercard::before {
12376
+ .i-key::before {
12368
12377
  content: "\\f147";
12369
12378
  }
12370
12379
 
12371
- .i-music::before {
12380
+ .i-link::before {
12372
12381
  content: "\\f148";
12373
12382
  }
12374
12383
 
12375
- .i-node-minus::before {
12384
+ .i-mastercard::before {
12376
12385
  content: "\\f149";
12377
12386
  }
12378
12387
 
12379
- .i-node-plus::before {
12388
+ .i-move::before {
12380
12389
  content: "\\f14a";
12381
12390
  }
12382
12391
 
12383
- .i-package::before {
12392
+ .i-music::before {
12384
12393
  content: "\\f14b";
12385
12394
  }
12386
12395
 
12387
- .i-paper-plane::before {
12396
+ .i-node-minus::before {
12388
12397
  content: "\\f14c";
12389
12398
  }
12390
12399
 
12391
- .i-paypal::before {
12400
+ .i-node-plus::before {
12392
12401
  content: "\\f14d";
12393
12402
  }
12394
12403
 
12395
- .i-pencil::before {
12404
+ .i-package::before {
12396
12405
  content: "\\f14e";
12397
12406
  }
12398
12407
 
12399
- .i-percent::before {
12408
+ .i-paper-plane::before {
12400
12409
  content: "\\f14f";
12401
12410
  }
12402
12411
 
12403
- .i-picker::before {
12412
+ .i-paypal::before {
12404
12413
  content: "\\f150";
12405
12414
  }
12406
12415
 
12407
- .i-plan::before {
12416
+ .i-pencil::before {
12408
12417
  content: "\\f151";
12409
12418
  }
12410
12419
 
12411
- .i-plug::before {
12420
+ .i-percent::before {
12412
12421
  content: "\\f152";
12413
12422
  }
12414
12423
 
12415
- .i-plus-minus::before {
12424
+ .i-picker::before {
12416
12425
  content: "\\f153";
12417
12426
  }
12418
12427
 
12419
- .i-plus-rounded-outline::before {
12428
+ .i-plan::before {
12420
12429
  content: "\\f154";
12421
12430
  }
12422
12431
 
12423
- .i-present::before {
12432
+ .i-plug::before {
12424
12433
  content: "\\f155";
12425
12434
  }
12426
12435
 
12427
- .i-schematic::before {
12436
+ .i-plus-minus::before {
12428
12437
  content: "\\f156";
12429
12438
  }
12430
12439
 
12431
- .i-search::before {
12440
+ .i-plus-rounded-outline::before {
12432
12441
  content: "\\f157";
12433
12442
  }
12434
12443
 
12435
- .i-segment::before {
12444
+ .i-present::before {
12436
12445
  content: "\\f158";
12437
12446
  }
12438
12447
 
12439
- .i-server-search::before {
12448
+ .i-schematic::before {
12440
12449
  content: "\\f159";
12441
12450
  }
12442
12451
 
12443
- .i-sidebar::before {
12452
+ .i-search::before {
12444
12453
  content: "\\f15a";
12445
12454
  }
12446
12455
 
12447
- .i-signal::before {
12456
+ .i-segment::before {
12448
12457
  content: "\\f15b";
12449
12458
  }
12450
12459
 
12451
- .i-silence::before {
12460
+ .i-server-search::before {
12452
12461
  content: "\\f15c";
12453
12462
  }
12454
12463
 
12455
- .i-spade::before {
12464
+ .i-sidebar::before {
12456
12465
  content: "\\f15d";
12457
12466
  }
12458
12467
 
12459
- .i-speaker::before {
12468
+ .i-signal::before {
12460
12469
  content: "\\f15e";
12461
12470
  }
12462
12471
 
12463
- .i-stacked::before {
12472
+ .i-silence::before {
12464
12473
  content: "\\f15f";
12465
12474
  }
12466
12475
 
12467
- .i-stacks::before {
12476
+ .i-spade::before {
12468
12477
  content: "\\f160";
12469
12478
  }
12470
12479
 
12471
- .i-stripe::before {
12480
+ .i-speaker::before {
12472
12481
  content: "\\f161";
12473
12482
  }
12474
12483
 
12475
- .i-text::before {
12484
+ .i-stacked::before {
12476
12485
  content: "\\f162";
12477
12486
  }
12478
12487
 
12479
- .i-thunder::before {
12488
+ .i-stacks::before {
12480
12489
  content: "\\f163";
12481
12490
  }
12482
12491
 
12483
- .i-tornado::before {
12492
+ .i-stripe::before {
12484
12493
  content: "\\f164";
12485
12494
  }
12486
12495
 
12487
- .i-truck::before {
12496
+ .i-text::before {
12488
12497
  content: "\\f165";
12489
12498
  }
12490
12499
 
12491
- .i-tube::before {
12500
+ .i-thunder::before {
12492
12501
  content: "\\f166";
12493
12502
  }
12494
12503
 
12495
- .i-unprotected::before {
12504
+ .i-tornado::before {
12496
12505
  content: "\\f167";
12497
12506
  }
12498
12507
 
12499
- .i-verified::before {
12508
+ .i-truck::before {
12500
12509
  content: "\\f168";
12501
12510
  }
12502
12511
 
12503
- .i-video-camera::before {
12512
+ .i-tube::before {
12504
12513
  content: "\\f169";
12505
12514
  }
12506
12515
 
12507
- .i-visa::before {
12516
+ .i-unprotected::before {
12508
12517
  content: "\\f16a";
12509
12518
  }
12510
12519
 
12511
- .i-wallet::before {
12520
+ .i-unsubscribe::before {
12512
12521
  content: "\\f16b";
12513
12522
  }
12514
12523
 
12515
- .i-watch-hand::before {
12524
+ .i-verified::before {
12516
12525
  content: "\\f16c";
12517
12526
  }
12518
12527
 
12519
- .i-watch-pocket::before {
12528
+ .i-video-camera::before {
12520
12529
  content: "\\f16d";
12521
12530
  }
12522
12531
 
12523
- .i-water-drop::before {
12532
+ .i-visa::before {
12524
12533
  content: "\\f16e";
12525
12534
  }
12526
12535
 
12527
- .i-waves::before {
12536
+ .i-wallet::before {
12528
12537
  content: "\\f16f";
12529
12538
  }
12530
12539
 
12531
- .i-webhook::before {
12540
+ .i-watch-hand::before {
12532
12541
  content: "\\f170";
12533
12542
  }
12534
12543
 
12535
- .i-wind::before {
12544
+ .i-watch-pocket::before {
12536
12545
  content: "\\f171";
12537
12546
  }
12547
+
12548
+ .i-water-drop::before {
12549
+ content: "\\f172";
12550
+ }
12551
+
12552
+ .i-waves::before {
12553
+ content: "\\f173";
12554
+ }
12555
+
12556
+ .i-webhook::before {
12557
+ content: "\\f174";
12558
+ }
12559
+
12560
+ .i-wind::before {
12561
+ content: "\\f175";
12562
+ }
12538
12563
  `;
12539
12564
 
12540
12565
  // src/context/embed.tsx
@@ -12654,13 +12679,15 @@ var EmbedContext = (0, import_react11.createContext)({
12654
12679
  isPending: false,
12655
12680
  hydrate: async () => {
12656
12681
  },
12657
- setData: () => {
12682
+ setIsPending: () => {
12658
12683
  },
12659
- updateSettings: () => {
12684
+ setData: () => {
12660
12685
  },
12661
12686
  setLayout: () => {
12662
12687
  },
12663
12688
  setSelected: () => {
12689
+ },
12690
+ updateSettings: () => {
12664
12691
  }
12665
12692
  });
12666
12693
  var EmbedProvider = ({
@@ -12691,11 +12718,13 @@ var EmbedProvider = ({
12691
12718
  },
12692
12719
  setData: () => {
12693
12720
  },
12694
- updateSettings: () => {
12721
+ setIsPending: () => {
12695
12722
  },
12696
12723
  setLayout: () => {
12697
12724
  },
12698
12725
  setSelected: () => {
12726
+ },
12727
+ updateSettings: () => {
12699
12728
  }
12700
12729
  };
12701
12730
  });
@@ -12735,45 +12764,39 @@ var EmbedProvider = ({
12735
12764
  }));
12736
12765
  }
12737
12766
  }, [id, state.api]);
12738
- const setData = (0, import_react11.useCallback)(
12739
- (data) => {
12740
- setState((prev2) => ({
12741
- ...prev2,
12742
- data
12743
- }));
12744
- },
12745
- [setState]
12746
- );
12747
- const updateSettings = (0, import_react11.useCallback)(
12748
- (settings) => {
12749
- setState((prev2) => {
12750
- const updatedSettings = (0, import_merge.default)({}, prev2.settings, { ...settings });
12751
- return {
12752
- ...prev2,
12753
- settings: updatedSettings
12754
- };
12755
- });
12756
- },
12757
- [setState]
12758
- );
12759
- const setLayout = (0, import_react11.useCallback)(
12760
- (layout) => {
12761
- setState((prev2) => ({
12762
- ...prev2,
12763
- layout
12764
- }));
12765
- },
12766
- [setState]
12767
- );
12768
- const setSelected = (0, import_react11.useCallback)(
12769
- (selected) => {
12770
- setState((prev2) => ({
12767
+ const setIsPending = (bool) => {
12768
+ setState((prev2) => ({
12769
+ ...prev2,
12770
+ isPending: bool
12771
+ }));
12772
+ };
12773
+ const setData = (data) => {
12774
+ setState((prev2) => ({
12775
+ ...prev2,
12776
+ data
12777
+ }));
12778
+ };
12779
+ const setLayout = (layout) => {
12780
+ setState((prev2) => ({
12781
+ ...prev2,
12782
+ layout
12783
+ }));
12784
+ };
12785
+ const setSelected = (selected) => {
12786
+ setState((prev2) => ({
12787
+ ...prev2,
12788
+ selected
12789
+ }));
12790
+ };
12791
+ const updateSettings = (settings) => {
12792
+ setState((prev2) => {
12793
+ const updatedSettings = (0, import_merge.default)({}, prev2.settings, { ...settings });
12794
+ return {
12771
12795
  ...prev2,
12772
- selected
12773
- }));
12774
- },
12775
- [setState]
12776
- );
12796
+ settings: updatedSettings
12797
+ };
12798
+ });
12799
+ };
12777
12800
  (0, import_react11.useEffect)(() => {
12778
12801
  instance.use(initReactI18next).init({
12779
12802
  resources: {
@@ -12789,7 +12812,8 @@ var EmbedProvider = ({
12789
12812
  (0, import_react11.useEffect)(() => {
12790
12813
  const element = document.getElementById("schematic-fonts");
12791
12814
  if (element) {
12792
- return void (styleRef.current = element);
12815
+ styleRef.current = element;
12816
+ return;
12793
12817
  }
12794
12818
  const style = document.createElement("link");
12795
12819
  style.id = "schematic-fonts";
@@ -12800,7 +12824,7 @@ var EmbedProvider = ({
12800
12824
  (0, import_react11.useEffect)(() => {
12801
12825
  if (accessToken) {
12802
12826
  const { headers = {} } = apiConfig ?? {};
12803
- headers["X-Schematic-Components-Version"] = "0.4.6";
12827
+ headers["X-Schematic-Components-Version"] = "0.4.8";
12804
12828
  headers["X-Schematic-Session-ID"] = sessionIdRef.current;
12805
12829
  const config = new Configuration({
12806
12830
  ...apiConfig,
@@ -12843,10 +12867,11 @@ var EmbedProvider = ({
12843
12867
  error: state.error,
12844
12868
  isPending: state.isPending,
12845
12869
  hydrate,
12870
+ setIsPending,
12846
12871
  setData,
12847
- updateSettings,
12848
12872
  setLayout,
12849
- setSelected
12873
+ setSelected,
12874
+ updateSettings
12850
12875
  },
12851
12876
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(ot, { theme: state.settings.theme, children: [
12852
12877
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlobalStyle, {}),
@@ -12949,6 +12974,10 @@ function lighten(color, amount) {
12949
12974
  function darken(color, amount) {
12950
12975
  return adjustLightness(color, -amount);
12951
12976
  }
12977
+ function hsla(color, amount) {
12978
+ const { h, s: s2, l: l2 } = hexToHSL(color);
12979
+ return `hsla(${h}, ${s2}%, ${l2}%, ${amount})`;
12980
+ }
12952
12981
 
12953
12982
  // src/utils/date.ts
12954
12983
  function toPrettyDate(date, format) {
@@ -13324,8 +13353,6 @@ var EmbedButton = dt(Button2)`
13324
13353
  font-family: "Public Sans", sans-serif;
13325
13354
  font-weight: 500;
13326
13355
  text-align: center;
13327
- width: 100%;
13328
- padding: 0;
13329
13356
 
13330
13357
  ${({ disabled, $color = "primary", theme }) => {
13331
13358
  const { l: l2 } = hexToHSL(theme[$color]);
@@ -13455,6 +13482,38 @@ var EmbedButton = dt(Button2)`
13455
13482
  `;
13456
13483
  }
13457
13484
  }}
13485
+
13486
+ ${({ $alignment = "center" }) => {
13487
+ switch ($alignment) {
13488
+ case "start":
13489
+ return lt`
13490
+ justify-content: start;
13491
+ `;
13492
+ case "end":
13493
+ return lt`
13494
+ justify-content: end;
13495
+ `;
13496
+ case "center":
13497
+ default:
13498
+ return lt`
13499
+ justify-content: center;
13500
+ `;
13501
+ }
13502
+ }}
13503
+
13504
+ ${({ $fullWidth = true }) => {
13505
+ if ($fullWidth) {
13506
+ return lt`
13507
+ width: 100%;
13508
+ padding: 0;
13509
+ `;
13510
+ }
13511
+ return lt`
13512
+ width: fit-content;
13513
+ padding-left: 1rem;
13514
+ padding-right: 1rem;
13515
+ `;
13516
+ }}
13458
13517
  `;
13459
13518
 
13460
13519
  // src/components/ui/flex/styles.ts
@@ -13530,60 +13589,64 @@ var icons_default = {
13530
13589
  "folder-plus": 61753,
13531
13590
  folder: 61754,
13532
13591
  "generic-payment": 61755,
13533
- glasses: 61756,
13534
- globe: 61757,
13535
- hammer: 61758,
13536
- hash: 61759,
13537
- heart: 61760,
13538
- hubspot: 61761,
13539
- image: 61762,
13540
- "info-rounded": 61763,
13541
- juice: 61764,
13542
- key: 61765,
13543
- link: 61766,
13544
- mastercard: 61767,
13545
- music: 61768,
13546
- "node-minus": 61769,
13547
- "node-plus": 61770,
13548
- package: 61771,
13549
- "paper-plane": 61772,
13550
- paypal: 61773,
13551
- pencil: 61774,
13552
- percent: 61775,
13553
- picker: 61776,
13554
- plan: 61777,
13555
- plug: 61778,
13556
- "plus-minus": 61779,
13557
- "plus-rounded-outline": 61780,
13558
- present: 61781,
13559
- schematic: 61782,
13560
- search: 61783,
13561
- segment: 61784,
13562
- "server-search": 61785,
13563
- sidebar: 61786,
13564
- signal: 61787,
13565
- silence: 61788,
13566
- spade: 61789,
13567
- speaker: 61790,
13568
- stacked: 61791,
13569
- stacks: 61792,
13570
- stripe: 61793,
13571
- text: 61794,
13572
- thunder: 61795,
13573
- tornado: 61796,
13574
- truck: 61797,
13575
- tube: 61798,
13576
- unprotected: 61799,
13577
- verified: 61800,
13578
- "video-camera": 61801,
13579
- visa: 61802,
13580
- wallet: 61803,
13581
- "watch-hand": 61804,
13582
- "watch-pocket": 61805,
13583
- "water-drop": 61806,
13584
- waves: 61807,
13585
- webhook: 61808,
13586
- wind: 61809
13592
+ github: 61756,
13593
+ glasses: 61757,
13594
+ globe: 61758,
13595
+ google: 61759,
13596
+ hammer: 61760,
13597
+ hash: 61761,
13598
+ heart: 61762,
13599
+ hubspot: 61763,
13600
+ image: 61764,
13601
+ "info-rounded": 61765,
13602
+ juice: 61766,
13603
+ key: 61767,
13604
+ link: 61768,
13605
+ mastercard: 61769,
13606
+ move: 61770,
13607
+ music: 61771,
13608
+ "node-minus": 61772,
13609
+ "node-plus": 61773,
13610
+ package: 61774,
13611
+ "paper-plane": 61775,
13612
+ paypal: 61776,
13613
+ pencil: 61777,
13614
+ percent: 61778,
13615
+ picker: 61779,
13616
+ plan: 61780,
13617
+ plug: 61781,
13618
+ "plus-minus": 61782,
13619
+ "plus-rounded-outline": 61783,
13620
+ present: 61784,
13621
+ schematic: 61785,
13622
+ search: 61786,
13623
+ segment: 61787,
13624
+ "server-search": 61788,
13625
+ sidebar: 61789,
13626
+ signal: 61790,
13627
+ silence: 61791,
13628
+ spade: 61792,
13629
+ speaker: 61793,
13630
+ stacked: 61794,
13631
+ stacks: 61795,
13632
+ stripe: 61796,
13633
+ text: 61797,
13634
+ thunder: 61798,
13635
+ tornado: 61799,
13636
+ truck: 61800,
13637
+ tube: 61801,
13638
+ unprotected: 61802,
13639
+ unsubscribe: 61803,
13640
+ verified: 61804,
13641
+ "video-camera": 61805,
13642
+ visa: 61806,
13643
+ wallet: 61807,
13644
+ "watch-hand": 61808,
13645
+ "watch-pocket": 61809,
13646
+ "water-drop": 61810,
13647
+ waves: 61811,
13648
+ webhook: 61812,
13649
+ wind: 61813
13587
13650
  };
13588
13651
 
13589
13652
  // src/components/ui/icon/IconRound.tsx
@@ -14301,11 +14364,11 @@ var Navigation = ({
14301
14364
  ] });
14302
14365
  };
14303
14366
 
14304
- // src/components/shared/checkout-dialog/Sidebar.tsx
14367
+ // src/components/shared/sidebar/Sidebar.tsx
14305
14368
  var import_react21 = require("react");
14306
14369
  var import_pluralize = __toESM(require_pluralize());
14307
14370
 
14308
- // src/components/shared/checkout-dialog/StageButton.tsx
14371
+ // src/components/shared/sidebar/StageButton.tsx
14309
14372
  var import_jsx_runtime11 = require("react/jsx-runtime");
14310
14373
  var StageButton = ({
14311
14374
  canTrial,
@@ -14326,7 +14389,8 @@ var StageButton = ({
14326
14389
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14327
14390
  EmbedButton,
14328
14391
  {
14329
- disabled: isLoading || !canCheckout,
14392
+ type: "button",
14393
+ disabled: isLoading || !canUpdateSubscription,
14330
14394
  onClick: checkout,
14331
14395
  isLoading,
14332
14396
  children: t2("Subscribe and close")
@@ -14339,9 +14403,10 @@ var StageButton = ({
14339
14403
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14340
14404
  EmbedButton,
14341
14405
  {
14406
+ type: "button",
14342
14407
  disabled: !hasAddOns && !canUpdateSubscription,
14343
14408
  onClick: async () => {
14344
- setCheckoutStage("checkout");
14409
+ setCheckoutStage?.("checkout");
14345
14410
  },
14346
14411
  isLoading,
14347
14412
  children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
@@ -14365,6 +14430,7 @@ var StageButton = ({
14365
14430
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14366
14431
  EmbedButton,
14367
14432
  {
14433
+ type: "button",
14368
14434
  disabled: !canUpdateSubscription,
14369
14435
  onClick: async () => {
14370
14436
  checkout();
@@ -14386,7 +14452,7 @@ var StageButton = ({
14386
14452
  }
14387
14453
  );
14388
14454
  }
14389
- if (!requiresPayment && !checkoutStages.some(
14455
+ if (!requiresPayment && !checkoutStages?.some(
14390
14456
  (stage) => stage.id === "addons" || stage.id === "usage"
14391
14457
  )) {
14392
14458
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(NoPaymentRequired, {});
@@ -14394,9 +14460,10 @@ var StageButton = ({
14394
14460
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14395
14461
  EmbedButton,
14396
14462
  {
14463
+ type: "button",
14397
14464
  disabled: !canUpdateSubscription,
14398
14465
  onClick: async () => {
14399
- setCheckoutStage(
14466
+ setCheckoutStage?.(
14400
14467
  hasPayInAdvanceEntitlements ? "usage" : hasAddOns ? "addons" : "checkout"
14401
14468
  );
14402
14469
  },
@@ -14427,9 +14494,10 @@ var StageButton = ({
14427
14494
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14428
14495
  EmbedButton,
14429
14496
  {
14497
+ type: "button",
14430
14498
  disabled: !canUpdateSubscription,
14431
14499
  onClick: async () => {
14432
- setCheckoutStage(hasAddOns ? "addons" : "checkout");
14500
+ setCheckoutStage?.(hasAddOns ? "addons" : "checkout");
14433
14501
  },
14434
14502
  isLoading,
14435
14503
  children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
@@ -14457,9 +14525,10 @@ var StageButton = ({
14457
14525
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14458
14526
  EmbedButton,
14459
14527
  {
14528
+ type: "button",
14460
14529
  disabled: !canUpdateSubscription,
14461
14530
  onClick: async () => {
14462
- setCheckoutStage("checkout");
14531
+ setCheckoutStage?.("checkout");
14463
14532
  },
14464
14533
  isLoading,
14465
14534
  children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
@@ -14487,6 +14556,7 @@ var StageButton = ({
14487
14556
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
14488
14557
  EmbedButton,
14489
14558
  {
14559
+ type: "button",
14490
14560
  disabled: isLoading || !canCheckout,
14491
14561
  onClick: checkout,
14492
14562
  isLoading,
@@ -14496,35 +14566,52 @@ var StageButton = ({
14496
14566
  }
14497
14567
  };
14498
14568
 
14499
- // src/components/shared/checkout-dialog/Sidebar.tsx
14569
+ // src/components/shared/sidebar/Sidebar.tsx
14500
14570
  var import_jsx_runtime12 = require("react/jsx-runtime");
14501
14571
  var Sidebar = ({
14572
+ planPeriod,
14573
+ selectedPlan,
14502
14574
  addOns,
14575
+ usageBasedEntitlements,
14503
14576
  charges,
14504
14577
  checkoutRef,
14505
14578
  checkoutStage,
14506
14579
  checkoutStages,
14507
- currentAddOns,
14508
- currentUsageBasedEntitlements,
14509
14580
  error,
14510
- currentPlan,
14511
14581
  isLoading,
14512
14582
  paymentMethodId,
14513
- planPeriod,
14514
14583
  promoCode,
14515
14584
  requiresPayment,
14516
- selectedPlan,
14517
14585
  setCheckoutStage,
14518
14586
  setError,
14587
+ setIsLoading,
14519
14588
  showPaymentForm,
14520
- toggleLoading,
14521
14589
  updatePromoCode,
14522
- usageBasedEntitlements
14590
+ showHeader = true
14523
14591
  }) => {
14524
14592
  const { t: t2 } = useTranslation();
14525
14593
  const theme = nt();
14526
- const { api, data, mode, setLayout } = useEmbed();
14594
+ const { api, data, mode, layout, hydrate, setLayout } = useEmbed();
14527
14595
  const isLightBackground = useIsLightBackground();
14596
+ const currentPlan = data.company?.plan;
14597
+ const currentAddOns = data.company?.addOns || [];
14598
+ const currentUsageBasedEntitlements = data.activeUsageBasedEntitlements.reduce(
14599
+ (acc, usageData) => {
14600
+ const featureUsage = data.featureUsage?.features.find(
14601
+ (usage2) => usage2.feature?.id === usageData.featureId
14602
+ );
14603
+ const allocation = featureUsage?.allocation || 0;
14604
+ const usage = featureUsage?.usage || 0;
14605
+ acc.push({
14606
+ usageData,
14607
+ allocation,
14608
+ quantity: allocation ?? usage,
14609
+ usage
14610
+ });
14611
+ return acc;
14612
+ },
14613
+ []
14614
+ );
14528
14615
  const payInAdvanceEntitlements = usageBasedEntitlements.filter(
14529
14616
  ({ entitlement }) => entitlement.priceBehavior === "pay_in_advance"
14530
14617
  );
@@ -14532,27 +14619,30 @@ var Sidebar = ({
14532
14619
  ({ entitlement }) => entitlement.priceBehavior === "pay_as_you_go"
14533
14620
  );
14534
14621
  const subscriptionPrice = (0, import_react21.useMemo)(() => {
14535
- if (!selectedPlan || !selectedPlan.monthlyPrice || !selectedPlan.yearlyPrice) {
14536
- return;
14537
- }
14538
14622
  let total = 0;
14539
- const planPrice = (planPeriod === "month" ? selectedPlan.monthlyPrice : selectedPlan.yearlyPrice)?.price;
14540
- const currency = (planPeriod === "month" ? selectedPlan.monthlyPrice : selectedPlan.yearlyPrice)?.currency;
14541
- if (planPrice) {
14542
- total += planPrice;
14623
+ let planPrice;
14624
+ let currency;
14625
+ if (selectedPlan) {
14626
+ planPrice = planPeriod === "month" ? selectedPlan.monthlyPrice?.price : selectedPlan.yearlyPrice?.price;
14627
+ currency = planPeriod === "month" ? selectedPlan.monthlyPrice?.currency : selectedPlan.yearlyPrice?.currency;
14628
+ if (planPrice) {
14629
+ total += planPrice;
14630
+ }
14631
+ } else if (typeof currentPlan?.planPrice === "number") {
14632
+ planPrice = currentPlan.planPrice;
14543
14633
  }
14544
14634
  const addOnCost = addOns.reduce(
14545
- (sum, addOn) => sum + (addOn.isSelected ? (planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price || 0 : 0),
14635
+ (sum, addOn) => sum + (addOn.isSelected ? (planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price ?? 0 : 0),
14546
14636
  0
14547
14637
  );
14548
14638
  total += addOnCost;
14549
14639
  const payInAdvanceCost = payInAdvanceEntitlements.reduce(
14550
- (sum, { entitlement, quantity }) => sum + quantity * ((planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price || 0),
14640
+ (sum, { entitlement, quantity }) => sum + quantity * ((planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price ?? 0),
14551
14641
  0
14552
14642
  );
14553
14643
  total += payInAdvanceCost;
14554
14644
  return formatCurrency(total, currency);
14555
- }, [selectedPlan, addOns, payInAdvanceEntitlements, planPeriod]);
14645
+ }, [selectedPlan, currentPlan, planPeriod, addOns, payInAdvanceEntitlements]);
14556
14646
  const { amountOff, dueNow, newCharges, percentOff, periodStart, proration } = (0, import_react21.useMemo)(() => {
14557
14647
  return {
14558
14648
  amountOff: charges?.amountOff ?? 0,
@@ -14570,7 +14660,7 @@ var Sidebar = ({
14570
14660
  }
14571
14661
  try {
14572
14662
  setError(void 0);
14573
- toggleLoading();
14663
+ setIsLoading(true);
14574
14664
  await api.checkout({
14575
14665
  changeSubscriptionRequestBody: {
14576
14666
  newPlanId: selectedPlan.id,
@@ -14604,29 +14694,50 @@ var Sidebar = ({
14604
14694
  ...promoCode && { promoCode }
14605
14695
  }
14606
14696
  });
14607
- setLayout("success");
14697
+ setIsLoading(false);
14698
+ setLayout("portal");
14699
+ hydrate();
14608
14700
  } catch {
14701
+ setLayout("checkout");
14609
14702
  setError(
14610
14703
  t2("Error processing payment. Please try a different payment method.")
14611
14704
  );
14612
14705
  } finally {
14613
- toggleLoading();
14706
+ setIsLoading(false);
14614
14707
  }
14615
14708
  }, [
14616
14709
  t2,
14617
14710
  api,
14711
+ hydrate,
14618
14712
  paymentMethodId,
14619
14713
  planPeriod,
14620
14714
  selectedPlan,
14621
14715
  addOns,
14622
14716
  setError,
14717
+ setIsLoading,
14623
14718
  setLayout,
14624
- toggleLoading,
14625
14719
  payInAdvanceEntitlements,
14626
14720
  promoCode
14627
14721
  ]);
14722
+ const unsubscribe = (0, import_react21.useCallback)(async () => {
14723
+ if (!api) {
14724
+ return;
14725
+ }
14726
+ try {
14727
+ setError(void 0);
14728
+ setIsLoading(true);
14729
+ await api.checkoutUnsubscribe();
14730
+ setLayout("portal");
14731
+ hydrate();
14732
+ } catch {
14733
+ setLayout("unsubscribe");
14734
+ setError(t2("Unsubscribe failed"));
14735
+ } finally {
14736
+ setIsLoading(false);
14737
+ }
14738
+ }, [t2, api, hydrate, setError, setIsLoading, setLayout]);
14628
14739
  const selectedAddOns = addOns.filter((addOn) => addOn.isSelected);
14629
- const willPlanChange = typeof selectedPlan !== "undefined" && selectedPlan.current === false;
14740
+ const willPlanChange = typeof selectedPlan !== "undefined" && !selectedPlan.current;
14630
14741
  const canUpdateSubscription = mode === "edit" || api !== null && (willPlanChange || // TODO: test add-on comparison for finding "changes"
14631
14742
  selectedAddOns.length !== currentAddOns.length || !selectedAddOns.every(
14632
14743
  (addOn) => currentAddOns.some((currentAddOn) => addOn.id === currentAddOn.id)
@@ -14661,12 +14772,12 @@ var Sidebar = ({
14661
14772
  (acc, current) => {
14662
14773
  const match2 = usageBasedEntitlements.every(
14663
14774
  ({ entitlement }) => entitlement.featureId !== current.usageData.featureId
14664
- ) && currentPlan?.entitlements.find(
14665
- (entitlement) => entitlement.featureId === current.usageData.featureId
14775
+ ) && data.featureUsage?.features.find(
14776
+ (usage) => usage.feature?.id === current.usageData.featureId
14666
14777
  );
14667
14778
  if (match2) {
14668
14779
  acc.push({
14669
- entitlement: match2,
14780
+ usage: match2,
14670
14781
  allocation: current.allocation,
14671
14782
  quantity: current.quantity
14672
14783
  });
@@ -14706,7 +14817,7 @@ var Sidebar = ({
14706
14817
  }
14707
14818
  },
14708
14819
  children: [
14709
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
14820
+ showHeader && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
14710
14821
  Flex,
14711
14822
  {
14712
14823
  $position: "relative",
@@ -14876,9 +14987,9 @@ var Sidebar = ({
14876
14987
  }
14877
14988
  ) }),
14878
14989
  removedUsageBasedEntitlements.reduce(
14879
- (acc, { allocation, quantity, entitlement }) => {
14880
- if (typeof allocation === "number" && entitlement.feature?.name) {
14881
- const price = (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price;
14990
+ (acc, { allocation, quantity, usage }) => {
14991
+ if (typeof allocation === "number" && usage.feature?.name) {
14992
+ const price = (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.price;
14882
14993
  acc.push(
14883
14994
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
14884
14995
  Flex,
@@ -14897,11 +15008,11 @@ var Sidebar = ({
14897
15008
  $size: theme.typography.heading4.fontSize,
14898
15009
  $weight: theme.typography.heading4.fontWeight,
14899
15010
  $color: theme.typography.heading4.color,
14900
- children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
15011
+ children: usage.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
14901
15012
  quantity,
14902
15013
  " ",
14903
- (0, import_pluralize.default)(entitlement.feature.name, quantity)
14904
- ] }) : entitlement.feature.name
15014
+ (0, import_pluralize.default)(usage.feature.name, quantity)
15015
+ ] }) : usage.feature.name
14905
15016
  }
14906
15017
  ) }),
14907
15018
  /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
@@ -14912,25 +15023,25 @@ var Sidebar = ({
14912
15023
  $weight: theme.typography.text.fontWeight,
14913
15024
  $color: theme.typography.text.color,
14914
15025
  children: [
14915
- entitlement.priceBehavior === "pay_in_advance" && typeof price === "number" && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
15026
+ usage.priceBehavior === "pay_in_advance" && typeof price === "number" && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
14916
15027
  formatCurrency(
14917
15028
  price * quantity,
14918
- (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.currency
15029
+ (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.currency
14919
15030
  ),
14920
15031
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("sub", { children: [
14921
15032
  "/",
14922
15033
  shortenPeriod(planPeriod)
14923
15034
  ] })
14924
15035
  ] }),
14925
- entitlement.priceBehavior === "pay_as_you_go" && typeof price === "number" && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
15036
+ usage.priceBehavior === "pay_as_you_go" && typeof price === "number" && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
14926
15037
  formatCurrency(
14927
15038
  price,
14928
- (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.currency
15039
+ (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.currency
14929
15040
  ),
14930
15041
  /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("sub", { children: [
14931
15042
  "/",
14932
15043
  (0, import_pluralize.default)(
14933
- entitlement.feature.name.toLowerCase(),
15044
+ usage.feature.name.toLowerCase(),
14934
15045
  1
14935
15046
  )
14936
15047
  ] })
@@ -14940,7 +15051,7 @@ var Sidebar = ({
14940
15051
  ) })
14941
15052
  ]
14942
15053
  },
14943
- entitlement.id
15054
+ usage.entitlementId
14944
15055
  )
14945
15056
  );
14946
15057
  }
@@ -15275,7 +15386,7 @@ var Sidebar = ({
15275
15386
  children: proration > 0 ? t2("Proration") : !selectedPlan?.companyCanTrial && t2("Credits")
15276
15387
  }
15277
15388
  ) }),
15278
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Flex, { $flexDirection: "column", $gap: "0.5rem", children: currentPlan?.current && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
15389
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Flex, { $flexDirection: "column", $gap: "0.5rem", children: currentPlan && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
15279
15390
  Flex,
15280
15391
  {
15281
15392
  $justifyContent: "space-between",
@@ -15363,7 +15474,7 @@ var Sidebar = ({
15363
15474
  {
15364
15475
  $cursor: "pointer",
15365
15476
  onClick: () => {
15366
- updatePromoCode(void 0);
15477
+ updatePromoCode?.(void 0);
15367
15478
  },
15368
15479
  children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15369
15480
  Icon2,
@@ -15456,7 +15567,7 @@ var Sidebar = ({
15456
15567
  ]
15457
15568
  }
15458
15569
  ),
15459
- selectedPlan && subscriptionPrice && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
15570
+ subscriptionPrice && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
15460
15571
  Flex,
15461
15572
  {
15462
15573
  $justifyContent: "space-between",
@@ -15559,11 +15670,11 @@ var Sidebar = ({
15559
15670
  }
15560
15671
  ) })
15561
15672
  ] }),
15562
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15673
+ layout === "checkout" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15563
15674
  StageButton,
15564
15675
  {
15565
15676
  canTrial: selectedPlan?.companyCanTrial === true,
15566
- canCheckout: canCheckout === true,
15677
+ canCheckout,
15567
15678
  canUpdateSubscription,
15568
15679
  checkout,
15569
15680
  checkoutStage,
@@ -15576,6 +15687,16 @@ var Sidebar = ({
15576
15687
  trialPaymentMethodRequired: data.trialPaymentMethodRequired === true
15577
15688
  }
15578
15689
  ),
15690
+ layout === "unsubscribe" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15691
+ EmbedButton,
15692
+ {
15693
+ onClick: async () => {
15694
+ unsubscribe();
15695
+ },
15696
+ isLoading,
15697
+ children: t2("Cancel subscription")
15698
+ }
15699
+ ),
15579
15700
  !isLoading && error && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15580
15701
  Text,
15581
15702
  {
@@ -15586,7 +15707,7 @@ var Sidebar = ({
15586
15707
  children: error
15587
15708
  }
15588
15709
  ) }),
15589
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Box, { $opacity: "0.625", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15710
+ layout !== "unsubscribe" && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Box, { $opacity: "0.625", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
15590
15711
  Text,
15591
15712
  {
15592
15713
  $font: theme.typography.text.fontFamily,
@@ -15772,15 +15893,7 @@ var Plan = ({
15772
15893
  $padding: `${0.75 * cardPadding}rem ${cardPadding}rem 0`,
15773
15894
  children: [
15774
15895
  /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: "1", children: [
15775
- plan.entitlements.slice().sort((a2, b2) => {
15776
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name > b2.feature?.name) {
15777
- return 1;
15778
- }
15779
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name < b2.feature?.name) {
15780
- return -1;
15781
- }
15782
- return 0;
15783
- }).reduce((acc, entitlement) => {
15896
+ plan.entitlements.reduce((acc, entitlement) => {
15784
15897
  const hasNumericValue = entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait";
15785
15898
  let metricPeriodText;
15786
15899
  if (hasNumericValue && entitlement.metricPeriod) {
@@ -15926,7 +16039,8 @@ var Plan = ({
15926
16039
  ) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
15927
16040
  EmbedButton,
15928
16041
  {
15929
- disabled: isLoading || !plan.valid,
16042
+ type: "button",
16043
+ disabled: (isLoading || !plan.valid) && !plan.custom,
15930
16044
  ...{
15931
16045
  onClick: () => {
15932
16046
  if (plan.custom) {
@@ -16063,6 +16177,7 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
16063
16177
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Flex, { $flexDirection: "column", $justifyContent: "end", $flexGrow: "1", children: !addOn.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
16064
16178
  EmbedButton,
16065
16179
  {
16180
+ type: "button",
16066
16181
  disabled: isLoading || !addOn.valid,
16067
16182
  onClick: () => toggle(addOn.id),
16068
16183
  $size: "sm",
@@ -16073,6 +16188,7 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
16073
16188
  ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
16074
16189
  EmbedButton,
16075
16190
  {
16191
+ type: "button",
16076
16192
  disabled: isLoading || !addOn.valid,
16077
16193
  onClick: () => toggle(addOn.id),
16078
16194
  $size: "sm",
@@ -16111,15 +16227,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
16111
16227
  const cardPadding = theme.card.padding / TEXT_BASE_SIZE;
16112
16228
  const unitPriceFontSize = 0.875 * theme.typography.text.fontSize;
16113
16229
  const unitPriceColor = hexToHSL(theme.typography.text.color).l > 50 ? darken(theme.typography.text.color, 0.46) : lighten(theme.typography.text.color, 0.46);
16114
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Flex, { $flexDirection: "column", $gap: "1rem", children: entitlements.slice().sort((a2, b2) => {
16115
- if (a2.entitlement.feature?.name && b2.entitlement.feature?.name && a2.entitlement.feature?.name > b2.entitlement.feature?.name) {
16116
- return 1;
16117
- }
16118
- if (a2.entitlement.feature?.name && b2.entitlement.feature?.name && a2.entitlement.feature?.name < b2.entitlement.feature?.name) {
16119
- return -1;
16120
- }
16121
- return 0;
16122
- }).reduce(
16230
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Flex, { $flexDirection: "column", $gap: "1rem", children: entitlements.reduce(
16123
16231
  (acc, { entitlement, quantity, usage }) => {
16124
16232
  if (entitlement.priceBehavior === "pay_in_advance" && entitlement.feature) {
16125
16233
  acc.push(
@@ -16252,10 +16360,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
16252
16360
  ),
16253
16361
  /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("sub", { children: [
16254
16362
  "/",
16255
- (0, import_pluralize3.default)(
16256
- entitlement.feature.name.toLowerCase(),
16257
- 1
16258
- ),
16363
+ (0, import_pluralize3.default)(entitlement.feature.name.toLowerCase(), 1),
16259
16364
  "/",
16260
16365
  shortenPeriod(period)
16261
16366
  ] })
@@ -16317,7 +16422,7 @@ var registerWrapper = function registerWrapper2(stripe, startTime) {
16317
16422
  }
16318
16423
  stripe._registerWrapper({
16319
16424
  name: "stripe-js",
16320
- version: "5.7.0",
16425
+ version: "5.9.1",
16321
16426
  startTime
16322
16427
  });
16323
16428
  };
@@ -16325,8 +16430,10 @@ var stripePromise$1 = null;
16325
16430
  var onErrorListener = null;
16326
16431
  var onLoadListener = null;
16327
16432
  var onError = function onError2(reject) {
16328
- return function() {
16329
- reject(new Error("Failed to load Stripe.js"));
16433
+ return function(cause) {
16434
+ reject(new Error("Failed to load Stripe.js", {
16435
+ cause
16436
+ }));
16330
16437
  };
16331
16438
  };
16332
16439
  var onLoad = function onLoad2(resolve, reject) {
@@ -16620,30 +16727,14 @@ var CheckoutDialog = ({ top = 0 }) => {
16620
16727
  (plan) => selected.planId ? plan.id === selected.planId : plan.current
16621
16728
  )
16622
16729
  );
16623
- const currentAddOns = data.company?.addOns || [];
16624
16730
  const [addOns, setAddOns] = (0, import_react24.useState)(
16625
16731
  () => availableAddOns.map((addOn) => ({
16626
16732
  ...addOn,
16627
- isSelected: typeof selected.addOnId !== "undefined" ? addOn.id === selected.addOnId : currentAddOns.some((currentAddOn) => addOn.id === currentAddOn.id)
16733
+ isSelected: typeof selected.addOnId !== "undefined" ? addOn.id === selected.addOnId : (data.company?.addOns || []).some(
16734
+ (currentAddOn) => addOn.id === currentAddOn.id
16735
+ )
16628
16736
  }))
16629
16737
  );
16630
- const currentUsageBasedEntitlements = data.activeUsageBasedEntitlements.reduce(
16631
- (acc, usageData) => {
16632
- const featureUsage = data.featureUsage?.features.find(
16633
- (usage2) => usage2.feature?.id === usageData.featureId
16634
- );
16635
- const allocation = featureUsage?.allocation || 0;
16636
- const usage = featureUsage?.usage || 0;
16637
- acc.push({
16638
- usageData,
16639
- allocation,
16640
- quantity: allocation ?? usage,
16641
- usage
16642
- });
16643
- return acc;
16644
- },
16645
- []
16646
- );
16647
16738
  const createActiveUsageBasedEntitlementsReducer = (0, import_react24.useCallback)(
16648
16739
  (period = planPeriod) => (acc, entitlement) => {
16649
16740
  if (entitlement.priceBehavior && (period === "month" && entitlement.meteredMonthlyPrice || period === "year" && entitlement.meteredYearlyPrice)) {
@@ -16669,19 +16760,13 @@ var CheckoutDialog = ({ top = 0 }) => {
16669
16760
  []
16670
16761
  )
16671
16762
  );
16672
- const currentPlan = (0, import_react24.useMemo)(
16673
- () => availablePlans.find(
16674
- (plan) => plan.id === data.company?.plan?.id && data.company?.plan.planPeriod === planPeriod
16675
- ),
16676
- [data.company?.plan, planPeriod, availablePlans]
16677
- );
16678
16763
  const payInAdvanceEntitlements = (0, import_react24.useMemo)(
16679
16764
  () => usageBasedEntitlements.filter(
16680
16765
  ({ entitlement }) => entitlement.priceBehavior === "pay_in_advance"
16681
16766
  ),
16682
16767
  [usageBasedEntitlements]
16683
16768
  );
16684
- const hasActiveAddOns = addOns.some((addOn) => addOn.isSelected === true);
16769
+ const hasActiveAddOns = addOns.some((addOn) => addOn.isSelected);
16685
16770
  const hasActivePayInAdvanceEntitlements = payInAdvanceEntitlements.some(
16686
16771
  ({ quantity }) => quantity > 0
16687
16772
  );
@@ -16731,7 +16816,7 @@ var CheckoutDialog = ({ top = 0 }) => {
16731
16816
  if (selected.usage) {
16732
16817
  return "usage";
16733
16818
  }
16734
- if (selected.planId !== currentPlan?.id) {
16819
+ if (selected.planId !== data.company?.plan?.id) {
16735
16820
  return checkoutStages.some((stage) => stage.id === "usage") ? "usage" : checkoutStages.some((stage) => stage.id === "addons") ? "addons" : "plan";
16736
16821
  }
16737
16822
  return "plan";
@@ -17076,27 +17161,24 @@ var CheckoutDialog = ({ top = 0 }) => {
17076
17161
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
17077
17162
  Sidebar,
17078
17163
  {
17164
+ planPeriod,
17165
+ selectedPlan,
17079
17166
  addOns,
17167
+ usageBasedEntitlements,
17080
17168
  charges,
17081
17169
  checkoutRef,
17082
17170
  checkoutStage,
17083
17171
  checkoutStages,
17084
- currentAddOns,
17085
- currentUsageBasedEntitlements,
17086
17172
  error,
17087
- currentPlan,
17088
17173
  isLoading,
17089
17174
  paymentMethodId,
17090
- planPeriod,
17091
17175
  promoCode,
17092
17176
  requiresPayment,
17093
- selectedPlan,
17094
17177
  setCheckoutStage: (stage) => setCheckoutStage(stage),
17095
17178
  setError: (msg) => setError(msg),
17179
+ setIsLoading,
17096
17180
  showPaymentForm,
17097
- toggleLoading: () => setIsLoading((prev2) => !prev2),
17098
- updatePromoCode: (code) => updatePromoCode(code),
17099
- usageBasedEntitlements
17181
+ updatePromoCode: (code) => updatePromoCode(code)
17100
17182
  }
17101
17183
  )
17102
17184
  ]
@@ -17291,20 +17373,205 @@ var PeriodToggle = ({
17291
17373
  );
17292
17374
  };
17293
17375
 
17294
- // src/components/ui/badge/Badge.tsx
17376
+ // src/components/shared/unsubscribe-dialog/UnsubscribeDialog.tsx
17377
+ var import_react27 = require("react");
17295
17378
  var import_jsx_runtime20 = require("react/jsx-runtime");
17379
+ var UnsubscribeDialog = () => {
17380
+ const { t: t2 } = useTranslation();
17381
+ const theme = nt();
17382
+ const { data, setLayout, setSelected } = useEmbed();
17383
+ const [error, setError] = (0, import_react27.useState)();
17384
+ const [isLoading, setIsLoading] = (0, import_react27.useState)(false);
17385
+ const planPeriod = (0, import_react27.useMemo)(
17386
+ () => data.company?.plan?.planPeriod ?? "month",
17387
+ [data.company?.plan?.planPeriod]
17388
+ );
17389
+ const { plans: availablePlans, addOns: availableAddOns } = useAvailablePlans(planPeriod);
17390
+ const selectedPlan = (0, import_react27.useMemo)(
17391
+ () => availablePlans.find(
17392
+ (plan) => plan.id === data.company?.plan?.id && data.company?.plan.planPeriod === planPeriod
17393
+ ),
17394
+ [data.company?.plan, planPeriod, availablePlans]
17395
+ );
17396
+ const usageBasedEntitlements = (selectedPlan?.entitlements || []).reduce(
17397
+ (acc, entitlement) => {
17398
+ if (entitlement.priceBehavior && (planPeriod === "month" && entitlement.meteredMonthlyPrice || planPeriod === "year" && entitlement.meteredYearlyPrice)) {
17399
+ const featureUsage = data.featureUsage?.features.find(
17400
+ (usage2) => usage2.feature?.id === entitlement.feature?.id
17401
+ );
17402
+ const allocation = featureUsage?.allocation ?? 0;
17403
+ const usage = featureUsage?.usage ?? 0;
17404
+ acc.push({
17405
+ entitlement,
17406
+ allocation,
17407
+ quantity: allocation,
17408
+ usage
17409
+ });
17410
+ }
17411
+ return acc;
17412
+ },
17413
+ []
17414
+ );
17415
+ const addOns = (0, import_react27.useMemo)(
17416
+ () => availableAddOns.map((available) => ({
17417
+ ...available,
17418
+ isSelected: data.company?.addOns.some((current) => available.id === current.id) ?? false
17419
+ })),
17420
+ [data.company?.addOns, availableAddOns]
17421
+ );
17422
+ const cancelDate = new Date(
17423
+ data.subscription?.cancelAt || data.upcomingInvoice?.dueDate || Date.now()
17424
+ );
17425
+ const isLightBackground = useIsLightBackground();
17426
+ const handleClose = (0, import_react27.useCallback)(() => {
17427
+ setLayout("portal");
17428
+ }, [setLayout]);
17429
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Modal, { id: "unsubscribe-dialog", size: "auto", children: [
17430
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17431
+ Box,
17432
+ {
17433
+ $display: "inline-flex",
17434
+ $position: "absolute",
17435
+ $top: 0,
17436
+ $right: 0,
17437
+ $zIndex: 1,
17438
+ $cursor: "pointer",
17439
+ onClick: handleClose,
17440
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17441
+ Icon2,
17442
+ {
17443
+ name: "close",
17444
+ style: {
17445
+ fontSize: 36,
17446
+ color: isLightBackground ? "hsla(0, 0%, 0%, 0.275)" : "hsla(0, 0%, 100%, 0.275)"
17447
+ }
17448
+ }
17449
+ )
17450
+ }
17451
+ ),
17452
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
17453
+ Flex,
17454
+ {
17455
+ $position: "relative",
17456
+ $flexDirection: "column",
17457
+ $height: "auto",
17458
+ $viewport: {
17459
+ md: {
17460
+ $flexDirection: "row",
17461
+ $height: "calc(100% - 5rem)"
17462
+ }
17463
+ },
17464
+ children: [
17465
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
17466
+ Flex,
17467
+ {
17468
+ $flexDirection: "column",
17469
+ $flexWrap: "wrap",
17470
+ $justifyContent: "space-around",
17471
+ $gap: "5rem",
17472
+ $padding: "2.5rem",
17473
+ children: [
17474
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Flex, { $flexDirection: "column", $flexWrap: "wrap", $gap: "0.5rem", children: [
17475
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17476
+ Text,
17477
+ {
17478
+ as: "h2",
17479
+ $font: theme.typography.heading2.fontFamily,
17480
+ $size: theme.typography.heading2.fontSize,
17481
+ $weight: theme.typography.heading2.fontWeight,
17482
+ $color: theme.typography.heading2.color,
17483
+ children: t2("Cancel subscription")
17484
+ }
17485
+ ),
17486
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
17487
+ Text,
17488
+ {
17489
+ as: "p",
17490
+ $font: theme.typography.text.fontFamily,
17491
+ $size: theme.typography.text.fontSize,
17492
+ $weight: theme.typography.text.fontWeight,
17493
+ $color: theme.typography.text.color,
17494
+ children: [
17495
+ t2(
17496
+ "You will retain access to your plan until the end of the billing period, on"
17497
+ ),
17498
+ " ",
17499
+ cancelDate ? toPrettyDate(cancelDate, {
17500
+ month: "numeric"
17501
+ }) : ""
17502
+ ]
17503
+ }
17504
+ )
17505
+ ] }),
17506
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Flex, { $flexDirection: "column", $flexWrap: "wrap", $gap: "0.5rem", children: [
17507
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17508
+ Text,
17509
+ {
17510
+ as: "p",
17511
+ $font: theme.typography.text.fontFamily,
17512
+ $size: theme.typography.text.fontSize,
17513
+ $weight: theme.typography.text.fontWeight,
17514
+ $color: theme.typography.text.color,
17515
+ children: t2("Not ready to cancel?")
17516
+ }
17517
+ ),
17518
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17519
+ EmbedButton,
17520
+ {
17521
+ onClick: () => {
17522
+ setSelected({
17523
+ planId: data.company?.plan?.id,
17524
+ addOnId: void 0,
17525
+ usage: false
17526
+ });
17527
+ setLayout("checkout");
17528
+ },
17529
+ $size: "sm",
17530
+ $color: "secondary",
17531
+ $variant: "ghost",
17532
+ $fullWidth: false,
17533
+ children: t2("Manage plan")
17534
+ }
17535
+ )
17536
+ ] })
17537
+ ]
17538
+ }
17539
+ ),
17540
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17541
+ Sidebar,
17542
+ {
17543
+ planPeriod,
17544
+ addOns,
17545
+ usageBasedEntitlements,
17546
+ error,
17547
+ isLoading,
17548
+ showHeader: false,
17549
+ showPaymentForm: false,
17550
+ requiresPayment: false,
17551
+ setError: (msg) => setError(msg),
17552
+ setIsLoading
17553
+ }
17554
+ )
17555
+ ]
17556
+ }
17557
+ )
17558
+ ] });
17559
+ };
17560
+
17561
+ // src/components/ui/badge/Badge.tsx
17562
+ var import_jsx_runtime21 = require("react/jsx-runtime");
17296
17563
  var Badge = () => {
17297
17564
  const { t: t2 } = useTranslation();
17298
17565
  const { settings } = useEmbed();
17299
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
17566
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
17300
17567
  Flex,
17301
17568
  {
17302
17569
  $justifyContent: settings.badge?.alignment || "start",
17303
17570
  $alignItems: "center",
17304
17571
  $gridColumn: "1 / -1",
17305
17572
  children: [
17306
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Box, { $fontSize: "0.75rem", $marginRight: "0.5rem", children: t2("Powered by") }),
17307
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
17573
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $fontSize: "0.75rem", $marginRight: "0.5rem", children: t2("Powered by") }),
17574
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
17308
17575
  "svg",
17309
17576
  {
17310
17577
  width: 86,
@@ -17312,77 +17579,77 @@ var Badge = () => {
17312
17579
  viewBox: "0 0 86 16",
17313
17580
  style: { marginTop: "0.125rem" },
17314
17581
  children: [
17315
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17582
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17316
17583
  "path",
17317
17584
  {
17318
17585
  d: "M21.2354 6.16227C21.1796 5.95015 21.0494 5.76779 20.8261 5.61893C20.6028 5.46635 20.3423 5.39564 20.0408 5.39564C19.3151 5.39564 18.7941 5.69708 18.7941 6.2367C18.7941 6.49721 18.9095 6.69073 19.1402 6.81726C19.3635 6.94379 19.732 7.07033 20.2344 7.18569C21.0084 7.37177 21.4922 7.51691 21.9686 7.7402C22.203 7.85557 22.3928 7.97465 22.5305 8.10863C22.7948 8.3803 22.9548 8.74501 22.9362 9.20276C22.9176 9.86147 22.6571 10.375 22.1547 10.7397C21.6523 11.1082 20.9563 11.2905 20.0818 11.2905C19.2072 11.2905 18.5597 11.1268 18.0312 10.8067C17.5065 10.4867 17.2013 10.0215 17.1194 9.41116L18.6192 9.27719C18.6974 9.57491 18.8723 9.7982 19.1514 9.94706C19.4305 10.0959 19.7394 10.1778 20.0818 10.1778C20.4614 10.1778 20.7777 10.0996 21.0308 9.9359C21.2838 9.77959 21.4104 9.56002 21.4104 9.28835C21.4104 8.90876 21.0531 8.61104 20.5991 8.43613C20.3683 8.35053 20.0855 8.27238 19.7468 8.19423C19.2705 8.07886 18.8946 7.97094 18.6155 7.87418C18.3364 7.78486 18.0908 7.66205 17.8712 7.51319C17.4358 7.21547 17.2832 6.8247 17.2832 6.2367C17.2832 5.61521 17.5325 5.13141 18.0312 4.79648C18.5262 4.46526 19.2035 4.29407 20.0669 4.29407C21.5853 4.29407 22.5752 4.9044 22.7389 6.05807L21.228 6.16227H21.2354Z",
17319
17586
  fill: "currentColor"
17320
17587
  }
17321
17588
  ),
17322
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17589
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17323
17590
  "path",
17324
17591
  {
17325
17592
  d: "M29.4145 8.9796L30.7803 9.55271C30.49 10.0923 30.0621 10.5129 29.5001 10.8217C28.9382 11.1344 28.3167 11.2944 27.6319 11.2944C26.9472 11.2944 26.3629 11.1567 25.8121 10.8701C25.2613 10.5873 24.8147 10.1742 24.4835 9.6383C24.1523 9.09868 23.9811 8.48835 23.9811 7.79987C23.9811 7.11138 24.1486 6.49361 24.4835 5.95771C24.8147 5.41809 25.2613 5.00873 25.8121 4.72589C26.3629 4.44305 26.9732 4.30164 27.6319 4.30164C28.2906 4.30164 28.9382 4.45794 29.5038 4.77427C30.0658 5.08688 30.4938 5.51113 30.7803 6.05075L29.4145 6.62015C29.0535 5.93539 28.3985 5.56323 27.6319 5.56323C27.0327 5.56323 26.5303 5.77536 26.1135 6.19961C25.6967 6.62387 25.492 7.15977 25.492 7.80731C25.492 8.45486 25.6967 8.99076 26.1135 9.40757C26.5303 9.83182 27.0327 10.0439 27.6319 10.0439C28.3985 10.0439 29.0535 9.66807 29.4145 8.98703V8.9796Z",
17326
17593
  fill: "currentColor"
17327
17594
  }
17328
17595
  ),
17329
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17596
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17330
17597
  "path",
17331
17598
  {
17332
17599
  d: "M37.4386 11.2049V7.80341C37.4386 6.35945 36.9139 5.59282 35.697 5.59282C35.0978 5.59282 34.614 5.7975 34.2419 6.21059C33.8623 6.61996 33.6725 7.15214 33.6725 7.80713V11.2086H32.1615V1.9234H33.6725V5.47745C34.1004 4.73315 35.001 4.29773 36.1919 4.29773C37.167 4.29773 37.8666 4.59917 38.302 5.19834C38.7375 5.7975 38.9533 6.66834 38.9533 7.80341V11.2049H37.4349H37.4386Z",
17333
17600
  fill: "currentColor"
17334
17601
  }
17335
17602
  ),
17336
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17603
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17337
17604
  "path",
17338
17605
  {
17339
17606
  d: "M46.5692 5.38819C47.2167 6.07295 47.5777 7.1187 47.5107 8.30587H41.8242C41.9284 8.83805 42.1741 9.26602 42.5611 9.59352C42.9481 9.92473 43.4022 10.0885 43.9157 10.0885C44.8052 10.0885 45.5234 9.59724 45.8844 8.78222L47.1795 9.40372C46.8818 9.99172 46.4352 10.4495 45.8509 10.7881C45.2629 11.1268 44.6191 11.2943 43.9157 11.2943C42.9295 11.2943 42.0178 10.9444 41.3516 10.3453C40.6855 9.7461 40.2649 8.83432 40.2649 7.79602C40.2649 6.75771 40.6892 5.84222 41.3516 5.23933C42.0178 4.64017 42.9295 4.29034 43.9157 4.29034C44.9801 4.29034 45.9216 4.69971 46.5692 5.38447V5.38819ZM42.5388 6.00224C42.1592 6.32974 41.921 6.75772 41.8205 7.29734H46.0221C45.9179 6.75772 45.6835 6.3223 45.3039 5.99852C44.9243 5.67847 44.4628 5.51473 43.9195 5.51473C43.3761 5.51473 42.9221 5.67847 42.5425 6.00597L42.5388 6.00224Z",
17340
17607
  fill: "currentColor"
17341
17608
  }
17342
17609
  ),
17343
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17610
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17344
17611
  "path",
17345
17612
  {
17346
17613
  d: "M59.7699 5.23933C60.1495 5.86827 60.3132 6.68329 60.3132 7.80347V11.2049H58.8023V7.80347C58.8023 6.35952 58.3371 5.59288 57.2318 5.59288C56.6438 5.59288 56.1861 5.79384 55.8586 6.19577C55.5311 6.60141 55.3673 7.13731 55.3673 7.80347V11.2049H53.8489V7.80347C53.8489 6.35952 53.3838 5.59288 52.2785 5.59288C51.6905 5.59288 51.2327 5.79384 50.9052 6.19577C50.574 6.60141 50.4102 7.13731 50.4102 7.80347V11.2049H48.8993V4.39827H50.3433L50.4102 5.47379C50.8196 4.65878 51.5825 4.29407 52.8106 4.29407C53.9606 4.29407 54.7161 4.78531 55.077 5.76407C55.5199 4.81508 56.4428 4.29407 57.7677 4.29407C58.7093 4.29407 59.3829 4.61412 59.7699 5.23562V5.23933Z",
17347
17614
  fill: "currentColor"
17348
17615
  }
17349
17616
  ),
17350
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17617
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17351
17618
  "path",
17352
17619
  {
17353
17620
  d: "M67.4264 5.47382L67.4934 4.3983H68.9373V11.205H67.4934L67.4264 10.1294C67.0282 10.9147 66.1797 11.3092 64.8809 11.3017C63.102 11.3427 61.591 9.79823 61.6283 7.8035C61.591 5.8162 63.102 4.2606 64.8809 4.29782C66.0643 4.29782 67.0096 4.7444 67.4264 5.47754V5.47382ZM66.8049 9.37398C67.2217 8.95717 67.4264 8.43243 67.4264 7.79605C67.4264 7.15967 67.2217 6.64238 66.8049 6.21813C66.3881 5.80132 65.8782 5.58919 65.2828 5.58919C64.6874 5.58919 64.1887 5.80132 63.7719 6.21813C63.355 6.64238 63.1504 7.16711 63.1504 7.79605C63.1504 8.42499 63.355 8.95717 63.7719 9.37398C64.1887 9.79823 64.6911 10.0104 65.2828 10.0104C65.8745 10.0104 66.3881 9.79823 66.8049 9.37398Z",
17354
17621
  fill: "currentColor"
17355
17622
  }
17356
17623
  ),
17357
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17624
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17358
17625
  "path",
17359
17626
  {
17360
17627
  d: "M71.3891 2.85757H72.8926V4.39828H74.6455V5.58172H72.8926V8.9683C72.8926 9.5898 73.1048 9.90985 73.5923 9.96568C73.89 10.0252 74.2398 10.0141 74.6455 9.9359V11.1863C74.1989 11.257 73.7858 11.2943 73.4062 11.2943C72.6731 11.2943 72.1595 11.1082 71.8543 10.7323C71.5454 10.3639 71.3891 9.79076 71.3891 9.02041V5.58172H70.4215V4.39828H71.3891V2.85757Z",
17361
17628
  fill: "currentColor"
17362
17629
  }
17363
17630
  ),
17364
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17631
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17365
17632
  "path",
17366
17633
  {
17367
17634
  d: "M76.1747 3.15526C75.9923 2.98035 75.903 2.76078 75.903 2.50772C75.903 2.25466 75.9923 2.04997 76.1747 1.86762C76.3496 1.69271 76.5691 1.60339 76.8222 1.60339C77.0753 1.60339 77.2874 1.69271 77.4623 1.86762C77.6372 2.04997 77.7265 2.2621 77.7265 2.50772C77.7265 2.75334 77.6372 2.97291 77.4623 3.15526C77.2874 3.33762 77.0678 3.42694 76.8222 3.42694C76.5766 3.42694 76.3496 3.33762 76.1747 3.15526ZM76.0593 4.39826H77.5777V11.2049H76.0593V4.39826Z",
17368
17635
  fill: "currentColor"
17369
17636
  }
17370
17637
  ),
17371
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17638
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17372
17639
  "path",
17373
17640
  {
17374
17641
  d: "M84.3023 8.9796L85.6681 9.55271C85.3778 10.0923 84.9498 10.5129 84.3879 10.8217C83.8259 11.1344 83.2044 11.2944 82.5197 11.2944C81.8349 11.2944 81.2506 11.1567 80.6998 10.8701C80.1491 10.5873 79.7025 10.1742 79.3713 9.6383C79.04 9.09868 78.8689 8.48835 78.8689 7.79987C78.8689 7.11138 79.0363 6.49361 79.3713 5.95771C79.7025 5.41809 80.1528 5.00873 80.6998 4.72589C81.2469 4.44305 81.8609 4.30164 82.5197 4.30164C83.1784 4.30164 83.8259 4.45794 84.3916 4.77427C84.9535 5.08688 85.3815 5.51113 85.6681 6.05075L84.3023 6.62015C83.9413 5.93539 83.2863 5.56323 82.5197 5.56323C81.9205 5.56323 81.4181 5.77536 81.0013 6.19961C80.5845 6.62387 80.3798 7.15977 80.3798 7.80731C80.3798 8.45486 80.5845 8.99076 81.0013 9.40757C81.4181 9.83182 81.9205 10.0439 82.5197 10.0439C83.2863 10.0439 83.9413 9.66807 84.3023 8.98703V8.9796Z",
17375
17642
  fill: "currentColor"
17376
17643
  }
17377
17644
  ),
17378
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17645
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17379
17646
  "path",
17380
17647
  {
17381
17648
  d: "M5.93091 10.8141L7.2758 9.41753L3.83719 5.84667C2.98568 4.9624 2.98568 3.52157 3.83719 2.63731C4.68871 1.75305 6.07617 1.75305 6.92769 2.63731L10.3663 6.20817L11.7112 4.81156L8.27258 1.24069C6.67975 -0.413401 4.08513 -0.413401 2.4923 1.24069C0.899472 2.89479 0.899472 5.58919 2.4923 7.24328L5.93091 10.8141Z",
17382
17649
  fill: "currentColor"
17383
17650
  }
17384
17651
  ),
17385
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
17652
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17386
17653
  "path",
17387
17654
  {
17388
17655
  d: "M6.05827 3.54751C5.68761 3.1626 5.08404 3.1626 4.71338 3.54751C4.34272 3.93243 4.34272 4.55921 4.71338 4.94413L9.02103 9.41746L5.93054 12.6268L1.62288 8.15349C1.25223 7.76857 0.648653 7.76857 0.277994 8.15349C-0.0926647 8.5384 -0.0926647 9.16519 0.277994 9.5501L5.93054 15.4201L11.7108 9.41746L6.05827 3.54751Z",
@@ -17398,11 +17665,10 @@ var Badge = () => {
17398
17665
  };
17399
17666
 
17400
17667
  // src/components/layout/RenderLayout.tsx
17401
- var import_react27 = require("react");
17402
- var import_jsx_runtime21 = require("react/jsx-runtime");
17668
+ var import_jsx_runtime22 = require("react/jsx-runtime");
17403
17669
  var Disabled = () => {
17404
17670
  const theme = nt();
17405
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $width: "max-content", $height: "max-content", $margin: "0 auto", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Card, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
17671
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box, { $width: "max-content", $height: "max-content", $margin: "0 auto", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Card, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
17406
17672
  Element,
17407
17673
  {
17408
17674
  as: Flex,
@@ -17411,7 +17677,7 @@ var Disabled = () => {
17411
17677
  $alignItems: "center",
17412
17678
  $whiteSpace: "nowrap",
17413
17679
  children: [
17414
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17680
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
17415
17681
  Text,
17416
17682
  {
17417
17683
  as: "h1",
@@ -17422,7 +17688,7 @@ var Disabled = () => {
17422
17688
  children: "Portal not found"
17423
17689
  }
17424
17690
  ) }),
17425
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17691
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
17426
17692
  Text,
17427
17693
  {
17428
17694
  as: "p",
@@ -17437,71 +17703,11 @@ var Disabled = () => {
17437
17703
  }
17438
17704
  ) }) });
17439
17705
  };
17440
- var Success = () => {
17441
- const theme = nt();
17442
- const { hydrate, data, api, setLayout, isPending } = useEmbed();
17443
- const [isOpen, setIsOpen] = (0, import_react27.useState)(true);
17444
- (0, import_react27.useEffect)(() => {
17445
- if (api && data.component?.id) {
17446
- hydrate();
17447
- setTimeout(() => setIsOpen(false), 2e3);
17448
- }
17449
- }, [api, data.component?.id, hydrate]);
17450
- (0, import_react27.useEffect)(() => {
17451
- if (!isPending && !isOpen) {
17452
- setLayout("portal");
17453
- }
17454
- }, [isPending, isOpen, setLayout]);
17455
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $width: "max-content", $height: "max-content", $margin: "0 auto", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Card, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
17456
- Element,
17457
- {
17458
- as: Flex,
17459
- $flexDirection: "column",
17460
- $justifyContent: "center",
17461
- $alignItems: "center",
17462
- $whiteSpace: "nowrap",
17463
- children: [
17464
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $marginBottom: "1.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17465
- IconRound,
17466
- {
17467
- name: "check",
17468
- size: "3xl",
17469
- colors: [theme.card.background, theme.primary]
17470
- }
17471
- ) }),
17472
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17473
- Text,
17474
- {
17475
- as: "h1",
17476
- $font: theme.typography.heading1.fontFamily,
17477
- $size: theme.typography.heading1.fontSize,
17478
- $weight: theme.typography.heading1.fontWeight,
17479
- $color: theme.typography.heading1.color,
17480
- children: "Subscription updated!"
17481
- }
17482
- ) }),
17483
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
17484
- Text,
17485
- {
17486
- as: "p",
17487
- $font: theme.typography.text.fontFamily,
17488
- $size: theme.typography.text.fontSize,
17489
- $weight: theme.typography.text.fontWeight,
17490
- $color: theme.typography.text.color,
17491
- children: "Loading\u2026"
17492
- }
17493
- )
17494
- ]
17495
- }
17496
- ) }) });
17497
- };
17498
17706
  var RenderLayout = ({ children }) => {
17499
17707
  const { layout } = useEmbed();
17500
17708
  switch (layout) {
17501
17709
  case "disabled":
17502
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Disabled, {});
17503
- case "success":
17504
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Success, {});
17710
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Disabled, {});
17505
17711
  default:
17506
17712
  return children;
17507
17713
  }
@@ -17526,14 +17732,14 @@ var StyledViewport = dt(Box).attrs(({ theme }) => ({
17526
17732
  `;
17527
17733
 
17528
17734
  // src/components/layout/viewport/Viewport.tsx
17529
- var import_jsx_runtime22 = require("react/jsx-runtime");
17735
+ var import_jsx_runtime23 = require("react/jsx-runtime");
17530
17736
  var Viewport = (0, import_react28.forwardRef)(
17531
17737
  ({ children, portal, ...props }, ref) => {
17532
17738
  const { data, layout } = useEmbed();
17533
17739
  const [top, setTop] = (0, import_react28.useState)(0);
17534
17740
  const canCheckout = data.capabilities?.checkout ?? true;
17535
17741
  (0, import_react28.useLayoutEffect)(() => {
17536
- if (layout !== "checkout") {
17742
+ if (layout !== "checkout" && layout !== "unsubscribe") {
17537
17743
  return;
17538
17744
  }
17539
17745
  const parent = portal || document.body;
@@ -17546,12 +17752,13 @@ var Viewport = (0, import_react28.forwardRef)(
17546
17752
  parent.style.overflow = "";
17547
17753
  };
17548
17754
  }, [layout, portal]);
17549
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
17550
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(StyledViewport, { ref, ...props, children: [
17551
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(RenderLayout, { children }),
17552
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Badge, {})
17755
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
17756
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(StyledViewport, { ref, ...props, children: [
17757
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RenderLayout, { children }),
17758
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Badge, {})
17553
17759
  ] }),
17554
- canCheckout && layout === "checkout" && (0, import_react_dom2.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CheckoutDialog, { top }), portal || document.body)
17760
+ canCheckout && layout === "checkout" && (0, import_react_dom2.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CheckoutDialog, { top }), portal || document.body),
17761
+ layout === "unsubscribe" && (0, import_react_dom2.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(UnsubscribeDialog, {}), portal || document.body)
17555
17762
  ] });
17556
17763
  }
17557
17764
  );
@@ -17572,8 +17779,9 @@ var StyledCard = dt.div(({ theme }) => {
17572
17779
  const borderColor = l2 > 50 ? "hsla(0, 0%, 0%, 0.1)" : "hsla(0, 0%, 100%, 0.2)";
17573
17780
  const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
17574
17781
  return lt`
17575
- font-size: ${TEXT_BASE_SIZE}px;
17782
+ position: relative;
17576
17783
  box-sizing: border-box;
17784
+ font-size: ${TEXT_BASE_SIZE}px;
17577
17785
 
17578
17786
  *,
17579
17787
  *::before,
@@ -17604,10 +17812,31 @@ var StyledCard = dt.div(({ theme }) => {
17604
17812
  });
17605
17813
 
17606
17814
  // src/components/layout/card/Card.tsx
17607
- var import_jsx_runtime23 = require("react/jsx-runtime");
17815
+ var import_jsx_runtime24 = require("react/jsx-runtime");
17608
17816
  var Card = (0, import_react29.forwardRef)(
17609
17817
  ({ children, className }, ref) => {
17610
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(StyledCard, { ref, className, children });
17818
+ const { isPending } = useEmbed();
17819
+ const theme = nt();
17820
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(StyledCard, { ref, className, children: [
17821
+ isPending && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
17822
+ Flex,
17823
+ {
17824
+ $position: "absolute",
17825
+ $top: 0,
17826
+ $left: 0,
17827
+ $zIndex: 1,
17828
+ $width: "100%",
17829
+ $height: "100%",
17830
+ $justifyContent: "center",
17831
+ $alignItems: "center",
17832
+ $backgroundColor: hsla(theme.card.background, 0.8),
17833
+ $backdropFilter: "blur(8px)",
17834
+ $borderRadius: `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`,
17835
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Loader, { $color: theme.primary })
17836
+ }
17837
+ ),
17838
+ children
17839
+ ] });
17611
17840
  }
17612
17841
  );
17613
17842
  Card.displayName = "Card";
@@ -17618,10 +17847,10 @@ var StyledColumn = dt.div`
17618
17847
  `;
17619
17848
 
17620
17849
  // src/components/layout/column/Column.tsx
17621
- var import_jsx_runtime24 = require("react/jsx-runtime");
17850
+ var import_jsx_runtime25 = require("react/jsx-runtime");
17622
17851
  var Column = (0, import_react30.forwardRef)(
17623
17852
  ({ children, basis, ...props }, ref) => {
17624
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StyledColumn, { ref, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Card, { children }) });
17853
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(StyledColumn, { ref, ...props, children: import_react30.Children.count(children) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Card, { children }) : children });
17625
17854
  }
17626
17855
  );
17627
17856
  Column.displayName = "Column";
@@ -17629,7 +17858,7 @@ Column.displayName = "Column";
17629
17858
  // src/components/elements/included-features/Details.tsx
17630
17859
  var import_react31 = require("react");
17631
17860
  var import_pluralize4 = __toESM(require_pluralize());
17632
- var import_jsx_runtime25 = require("react/jsx-runtime");
17861
+ var import_jsx_runtime26 = require("react/jsx-runtime");
17633
17862
  var Details = ({
17634
17863
  details,
17635
17864
  shouldWrapChildren,
@@ -17687,7 +17916,7 @@ var Details = ({
17687
17916
  if (!priceBehavior) {
17688
17917
  return t2("Unlimited", { item: (0, import_pluralize4.default)(feature.name) });
17689
17918
  }
17690
- }, [allocation, feature?.name, price, priceBehavior, t2, currency]);
17919
+ }, [t2, allocation, feature?.name, price, priceBehavior, currency]);
17691
17920
  const usageText = (0, import_react31.useMemo)(() => {
17692
17921
  if (!feature?.name) {
17693
17922
  return;
@@ -17717,12 +17946,12 @@ var Details = ({
17717
17946
  });
17718
17947
  }
17719
17948
  }, [
17949
+ t2,
17720
17950
  allocation,
17721
17951
  data.company?.plan?.planPeriod,
17722
17952
  feature?.name,
17723
17953
  price,
17724
17954
  priceBehavior,
17725
- t2,
17726
17955
  usage,
17727
17956
  usageData,
17728
17957
  currency
@@ -17730,14 +17959,14 @@ var Details = ({
17730
17959
  if (!text) {
17731
17960
  return null;
17732
17961
  }
17733
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
17962
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
17734
17963
  Box,
17735
17964
  {
17736
17965
  $flexBasis: "min-content",
17737
17966
  $flexGrow: "1",
17738
17967
  $textAlign: shouldWrapChildren ? "left" : "right",
17739
17968
  children: [
17740
- props.entitlement.isVisible && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
17969
+ props.entitlement.isVisible && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
17741
17970
  Text,
17742
17971
  {
17743
17972
  $font: theme.typography[props.entitlement.fontStyle].fontFamily,
@@ -17748,7 +17977,7 @@ var Details = ({
17748
17977
  children: text
17749
17978
  }
17750
17979
  ) }),
17751
- props.usage.isVisible && usageText && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
17980
+ props.usage.isVisible && usageText && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
17752
17981
  Text,
17753
17982
  {
17754
17983
  $font: theme.typography[props.usage.fontStyle].fontFamily,
@@ -17765,7 +17994,7 @@ var Details = ({
17765
17994
  };
17766
17995
 
17767
17996
  // src/components/elements/included-features/IncludedFeatures.tsx
17768
- var import_jsx_runtime26 = require("react/jsx-runtime");
17997
+ var import_jsx_runtime27 = require("react/jsx-runtime");
17769
17998
  function resolveDesignProps(props) {
17770
17999
  return {
17771
18000
  header: {
@@ -17803,33 +18032,15 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17803
18032
  const shouldWrapChildren = useWrapChildren(elements.current);
17804
18033
  const isLightBackground = useIsLightBackground();
17805
18034
  const [showCount, setShowCount] = (0, import_react32.useState)(VISIBLE_ENTITLEMENT_COUNT);
17806
- const entitlements = (props.visibleFeatures ? props.visibleFeatures : data.featureUsage?.features.sort((a2, b2) => {
17807
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name > b2.feature?.name) {
17808
- return 1;
17809
- }
17810
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name < b2.feature?.name) {
17811
- return -1;
17812
- }
17813
- return 0;
17814
- }).reduce((acc, usage) => {
17815
- if (usage.feature?.id) {
17816
- acc.push(usage.feature.id);
17817
- }
17818
- return acc;
17819
- }, []) || []).reduce(
17820
- (acc, id) => {
17821
- const mappedFeatureUsage = data.featureUsage?.features.find(
17822
- (usage) => usage.feature?.id === id
17823
- );
18035
+ const entitlements = (data.featureUsage?.features || []).reduce(
18036
+ (acc, usage) => {
17824
18037
  const mappedUsageData = data.activeUsageBasedEntitlements.find(
17825
- (entitlement) => entitlement.featureId === id
18038
+ (entitlement) => entitlement.featureId === usage.feature?.id
17826
18039
  );
17827
- if (mappedFeatureUsage) {
17828
- acc.push({
17829
- featureUsage: mappedFeatureUsage,
17830
- usageData: mappedUsageData
17831
- });
17832
- }
18040
+ acc.push({
18041
+ featureUsage: usage,
18042
+ usageData: mappedUsageData
18043
+ });
17833
18044
  return acc;
17834
18045
  },
17835
18046
  []
@@ -17846,7 +18057,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17846
18057
  }
17847
18058
  const shouldShowExpand = featureListSize > VISIBLE_ENTITLEMENT_COUNT;
17848
18059
  const isExpanded = showCount > VISIBLE_ENTITLEMENT_COUNT;
17849
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
18060
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
17850
18061
  Element,
17851
18062
  {
17852
18063
  as: Flex,
@@ -17855,7 +18066,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17855
18066
  $flexDirection: "column",
17856
18067
  $gap: "1rem",
17857
18068
  children: [
17858
- props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
18069
+ props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
17859
18070
  Text,
17860
18071
  {
17861
18072
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -17868,7 +18079,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17868
18079
  entitlements.slice(0, showCount).map((entitlement, index) => {
17869
18080
  const { entitlementExpirationDate, feature } = entitlement.featureUsage || {};
17870
18081
  const shouldShowDetails = feature?.name && (feature?.featureType === "event" || feature?.featureType === "trait");
17871
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
18082
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
17872
18083
  Flex,
17873
18084
  {
17874
18085
  ref: (el) => {
@@ -17881,7 +18092,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17881
18092
  $alignItems: "center",
17882
18093
  $gap: "1rem",
17883
18094
  children: [
17884
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
18095
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
17885
18096
  Flex,
17886
18097
  {
17887
18098
  $alignItems: "center",
@@ -17889,7 +18100,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17889
18100
  $flexBasis: "min-content",
17890
18101
  $gap: "1rem",
17891
18102
  children: [
17892
- props.icons.isVisible && feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
18103
+ props.icons.isVisible && feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
17893
18104
  IconRound,
17894
18105
  {
17895
18106
  name: feature.icon,
@@ -17900,7 +18111,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17900
18111
  ]
17901
18112
  }
17902
18113
  ),
17903
- feature?.name && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
18114
+ feature?.name && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
17904
18115
  Text,
17905
18116
  {
17906
18117
  $font: theme.typography[props.icons.fontStyle].fontFamily,
@@ -17910,7 +18121,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17910
18121
  children: feature.name
17911
18122
  }
17912
18123
  ),
17913
- props.entitlementExpiration.isVisible && entitlementExpirationDate && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
18124
+ props.entitlementExpiration.isVisible && entitlementExpirationDate && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
17914
18125
  Text,
17915
18126
  {
17916
18127
  $font: theme.typography[props.entitlementExpiration.fontStyle].fontFamily,
@@ -17930,7 +18141,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17930
18141
  ]
17931
18142
  }
17932
18143
  ),
17933
- shouldShowDetails && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
18144
+ shouldShowDetails && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
17934
18145
  Details,
17935
18146
  {
17936
18147
  details: entitlement,
@@ -17943,8 +18154,8 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17943
18154
  index
17944
18155
  );
17945
18156
  }),
17946
- shouldShowExpand && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Flex, { $alignItems: "center", $justifyContent: "start", $marginTop: "1rem", children: [
17947
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
18157
+ shouldShowExpand && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Flex, { $alignItems: "center", $justifyContent: "start", $marginTop: "1rem", children: [
18158
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
17948
18159
  Icon2,
17949
18160
  {
17950
18161
  name: isExpanded ? "chevron-up" : "chevron-down",
@@ -17956,7 +18167,7 @@ var IncludedFeatures = (0, import_react32.forwardRef)(({ className, ...rest }, r
17956
18167
  }
17957
18168
  }
17958
18169
  ),
17959
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
18170
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
17960
18171
  Text,
17961
18172
  {
17962
18173
  onClick: handleToggleShowAll,
@@ -17978,7 +18189,7 @@ IncludedFeatures.displayName = "IncludedFeatures";
17978
18189
 
17979
18190
  // src/components/elements/invoices/Invoices.tsx
17980
18191
  var import_react33 = require("react");
17981
- var import_jsx_runtime27 = require("react/jsx-runtime");
18192
+ var import_jsx_runtime28 = require("react/jsx-runtime");
17982
18193
  function resolveDesignProps2(props) {
17983
18194
  return {
17984
18195
  header: {
@@ -18014,7 +18225,7 @@ function formatInvoices(invoices) {
18014
18225
  }
18015
18226
  var InvoiceDate = ({ date, fontStyle, url }) => {
18016
18227
  const theme = nt();
18017
- const dateText = /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
18228
+ const dateText = /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18018
18229
  Text,
18019
18230
  {
18020
18231
  ...url && { onClick: () => {
@@ -18027,7 +18238,7 @@ var InvoiceDate = ({ date, fontStyle, url }) => {
18027
18238
  }
18028
18239
  );
18029
18240
  if (url) {
18030
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("a", { href: url, target: "_blank", rel: "noreferrer", children: dateText });
18241
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("a", { href: url, target: "_blank", rel: "noreferrer", children: dateText });
18031
18242
  }
18032
18243
  return dateText;
18033
18244
  };
@@ -18051,8 +18262,8 @@ var Invoices = (0, import_react33.forwardRef)(({ className, data, ...rest }, ref
18051
18262
  if (invoices.length === 0) {
18052
18263
  return null;
18053
18264
  }
18054
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Element, { ref, className, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18055
- props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
18265
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Element, { ref, className, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18266
+ props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18056
18267
  Text,
18057
18268
  {
18058
18269
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -18062,9 +18273,9 @@ var Invoices = (0, import_react33.forwardRef)(({ className, data, ...rest }, ref
18062
18273
  children: t2("Invoices")
18063
18274
  }
18064
18275
  ) }),
18065
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Flex, { $flexDirection: "column", $gap: "0.5rem", children: invoices.slice(0, listSize).map(({ date, amount, url }, index) => {
18066
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Flex, { $justifyContent: "space-between", children: [
18067
- props.date.isVisible && date && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
18276
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Flex, { $flexDirection: "column", $gap: "0.5rem", children: invoices.slice(0, listSize).map(({ date, amount, url }, index) => {
18277
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Flex, { $justifyContent: "space-between", children: [
18278
+ props.date.isVisible && date && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18068
18279
  InvoiceDate,
18069
18280
  {
18070
18281
  date,
@@ -18072,7 +18283,7 @@ var Invoices = (0, import_react33.forwardRef)(({ className, data, ...rest }, ref
18072
18283
  url
18073
18284
  }
18074
18285
  ),
18075
- props.amount.isVisible && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
18286
+ props.amount.isVisible && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18076
18287
  Text,
18077
18288
  {
18078
18289
  $font: theme.typography[props.amount.fontStyle].fontFamily,
@@ -18084,15 +18295,15 @@ var Invoices = (0, import_react33.forwardRef)(({ className, data, ...rest }, ref
18084
18295
  )
18085
18296
  ] }, index);
18086
18297
  }) }),
18087
- props.collapse.isVisible && invoices.length > props.limit.number && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
18088
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
18298
+ props.collapse.isVisible && invoices.length > props.limit.number && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
18299
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18089
18300
  Icon2,
18090
18301
  {
18091
18302
  name: `chevron-${listSize === props.limit.number ? "down" : "up"}`,
18092
18303
  style: { color: "#D0D0D0" }
18093
18304
  }
18094
18305
  ),
18095
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
18306
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18096
18307
  Text,
18097
18308
  {
18098
18309
  onClick: toggleListSize,
@@ -18130,7 +18341,7 @@ var Container4 = dt(Flex)`
18130
18341
  `;
18131
18342
 
18132
18343
  // src/components/elements/metered-features/MeteredFeatures.tsx
18133
- var import_jsx_runtime28 = require("react/jsx-runtime");
18344
+ var import_jsx_runtime29 = require("react/jsx-runtime");
18134
18345
  function resolveDesignProps3(props) {
18135
18346
  return {
18136
18347
  isVisible: props.isVisible ?? true,
@@ -18180,7 +18391,7 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18180
18391
  if (!shouldShowFeatures) {
18181
18392
  return null;
18182
18393
  }
18183
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Container4, { ref, className, children: featureUsage.map(
18394
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Container4, { ref, className, children: featureUsage.map(
18184
18395
  ({
18185
18396
  allocation,
18186
18397
  feature,
@@ -18199,8 +18410,8 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18199
18410
  price = yearlyUsageBasedPrice?.price;
18200
18411
  currency = yearlyUsageBasedPrice?.currency;
18201
18412
  }
18202
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Element, { as: Flex, $gap: "1.5rem", children: [
18203
- props.icon.isVisible && feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18413
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Element, { as: Flex, $gap: "1.5rem", children: [
18414
+ props.icon.isVisible && feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18204
18415
  IconRound,
18205
18416
  {
18206
18417
  name: feature.icon,
@@ -18211,8 +18422,8 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18211
18422
  ]
18212
18423
  }
18213
18424
  ),
18214
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Flex, { $flexDirection: "column", $gap: "2rem", $flexGrow: "1", children: [
18215
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
18425
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: "2rem", $flexGrow: "1", children: [
18426
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
18216
18427
  Flex,
18217
18428
  {
18218
18429
  ref: (el) => {
@@ -18223,8 +18434,8 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18223
18434
  $flexWrap: "wrap",
18224
18435
  $gap: "1rem",
18225
18436
  children: [
18226
- feature?.name && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Flex, { $flexDirection: "column", $gap: "0.5rem", $flexGrow: "1", children: [
18227
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18437
+ feature?.name && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: "0.5rem", $flexGrow: "1", children: [
18438
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18228
18439
  Text,
18229
18440
  {
18230
18441
  as: Box,
@@ -18232,14 +18443,14 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18232
18443
  $size: theme.typography[props.header.fontStyle].fontSize,
18233
18444
  $weight: theme.typography[props.header.fontStyle].fontWeight,
18234
18445
  $color: theme.typography[props.header.fontStyle].color,
18235
- children: priceBehavior === "pay_as_you_go" ? typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
18446
+ children: priceBehavior === "pay_as_you_go" ? typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
18236
18447
  formatNumber(usage),
18237
18448
  " ",
18238
18449
  (0, import_pluralize5.default)(feature.name, usage)
18239
18450
  ] }) : feature.name
18240
18451
  }
18241
18452
  ),
18242
- props.description.isVisible && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18453
+ props.description.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18243
18454
  Text,
18244
18455
  {
18245
18456
  as: Box,
@@ -18251,14 +18462,14 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18251
18462
  }
18252
18463
  )
18253
18464
  ] }),
18254
- (feature?.featureType === "event" || feature?.featureType === "trait") && feature?.name && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
18465
+ (feature?.featureType === "event" || feature?.featureType === "trait") && feature?.name && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
18255
18466
  Box,
18256
18467
  {
18257
18468
  $flexBasis: "min-content",
18258
18469
  $flexGrow: "1",
18259
18470
  $textAlign: shouldWrapChildren ? "left" : "right",
18260
18471
  children: [
18261
- props.usage.isVisible && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18472
+ props.usage.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18262
18473
  Text,
18263
18474
  {
18264
18475
  as: Box,
@@ -18267,18 +18478,18 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18267
18478
  $weight: theme.typography[props.usage.fontStyle].fontWeight,
18268
18479
  $leading: 1.25,
18269
18480
  $color: theme.typography[props.usage.fontStyle].color,
18270
- children: priceBehavior === "pay_in_advance" ? typeof allocation === "number" && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
18481
+ children: priceBehavior === "pay_in_advance" ? typeof allocation === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
18271
18482
  formatNumber(allocation),
18272
18483
  " ",
18273
18484
  (0, import_pluralize5.default)(feature.name, allocation)
18274
- ] }) : priceBehavior === "pay_as_you_go" ? typeof price === "number" && typeof usage === "number" && formatCurrency(usage * price, currency) : typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
18485
+ ] }) : priceBehavior === "pay_as_you_go" ? typeof price === "number" && typeof usage === "number" && formatCurrency(usage * price, currency) : typeof usage === "number" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
18275
18486
  formatNumber(usage),
18276
18487
  " ",
18277
18488
  (0, import_pluralize5.default)(feature.name, usage)
18278
18489
  ] })
18279
18490
  }
18280
18491
  ),
18281
- props.allocation.isVisible && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18492
+ props.allocation.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18282
18493
  Text,
18283
18494
  {
18284
18495
  $font: theme.typography[props.allocation.fontStyle].fontFamily,
@@ -18302,8 +18513,8 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18302
18513
  ]
18303
18514
  }
18304
18515
  ),
18305
- props.isVisible && typeof usage === "number" && typeof allocation === "number" && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Flex, { $gap: "2rem", children: [
18306
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18516
+ props.isVisible && typeof usage === "number" && typeof allocation === "number" && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $gap: "2rem", children: [
18517
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18307
18518
  ProgressBar,
18308
18519
  {
18309
18520
  progress: usage / allocation * 100,
@@ -18315,9 +18526,10 @@ var MeteredFeatures = (0, import_react34.forwardRef)(({ className, ...rest }, re
18315
18526
  $flexGrow: "1"
18316
18527
  }
18317
18528
  ),
18318
- priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
18529
+ priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18319
18530
  EmbedButton,
18320
18531
  {
18532
+ type: "button",
18321
18533
  onClick: () => {
18322
18534
  setSelected({ usage: true });
18323
18535
  setLayout("checkout");
@@ -18341,7 +18553,7 @@ MeteredFeatures.displayName = "MeteredFeatures";
18341
18553
  var import_react35 = require("react");
18342
18554
  var import_react_dom3 = require("react-dom");
18343
18555
  var import_react_stripe_js3 = require("@stripe/react-stripe-js");
18344
- var import_jsx_runtime29 = require("react/jsx-runtime");
18556
+ var import_jsx_runtime30 = require("react/jsx-runtime");
18345
18557
  var PaymentElement2 = ({
18346
18558
  iconName,
18347
18559
  iconTitle,
@@ -18350,11 +18562,11 @@ var PaymentElement2 = ({
18350
18562
  paymentLast4
18351
18563
  }) => {
18352
18564
  const theme = nt();
18353
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { $font: theme.typography.text.fontFamily, $size: 16, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "row", $alignItems: "center", children: [
18354
- iconName && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon2, { name: iconName, title: iconTitle, style: iconStyles }) }),
18355
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $alignItems: "center", children: [
18356
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { $lineHeight: "1", $marginRight: "4px", children: t(label) }),
18357
- paymentLast4 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { $display: "inline-block", $fontWeight: "bold", children: paymentLast4 })
18565
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text, { $font: theme.typography.text.fontFamily, $size: 16, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "row", $alignItems: "center", children: [
18566
+ iconName && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon2, { name: iconName, title: iconTitle, style: iconStyles }) }),
18567
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $alignItems: "center", children: [
18568
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { $lineHeight: "1", $marginRight: "4px", children: t(label) }),
18569
+ paymentLast4 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { $display: "inline-block", $fontWeight: "bold", children: paymentLast4 })
18358
18570
  ] })
18359
18571
  ] }) }) });
18360
18572
  };
@@ -18452,16 +18664,16 @@ var PaymentMethodElement = ({
18452
18664
  iconTitle: genericLabel,
18453
18665
  label: genericLabel
18454
18666
  };
18455
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18667
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18456
18668
  PaymentElement2,
18457
18669
  {
18458
18670
  ...paymentMethodElementProps(iconName, iconTitle, label, paymentLast4)
18459
18671
  }
18460
18672
  );
18461
18673
  };
18462
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: `${sizeFactor}rem`, children: [
18463
- props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
18464
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18674
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "column", $gap: `${sizeFactor}rem`, children: [
18675
+ props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
18676
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18465
18677
  Text,
18466
18678
  {
18467
18679
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -18471,7 +18683,7 @@ var PaymentMethodElement = ({
18471
18683
  children: t2("Payment Method")
18472
18684
  }
18473
18685
  ),
18474
- props.functions.showExpiration && typeof monthsToExpiration === "number" && monthsToExpiration < 4 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18686
+ props.functions.showExpiration && typeof monthsToExpiration === "number" && monthsToExpiration < 4 && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18475
18687
  Text,
18476
18688
  {
18477
18689
  $font: theme.typography.text.fontFamily,
@@ -18481,7 +18693,7 @@ var PaymentMethodElement = ({
18481
18693
  }
18482
18694
  )
18483
18695
  ] }),
18484
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
18696
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
18485
18697
  Flex,
18486
18698
  {
18487
18699
  $justifyContent: "space-between",
@@ -18491,7 +18703,7 @@ var PaymentMethodElement = ({
18491
18703
  $borderRadius: "9999px",
18492
18704
  children: [
18493
18705
  renderPaymentMethodElement(),
18494
- props.functions.allowEdit && onEdit && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18706
+ props.functions.allowEdit && onEdit && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18495
18707
  Text,
18496
18708
  {
18497
18709
  onClick: onEdit,
@@ -18512,7 +18724,7 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18512
18724
  const props = resolveDesignProps4(rest);
18513
18725
  const { t: t2 } = useTranslation();
18514
18726
  const theme = nt();
18515
- const { api, data, layout, setLayout } = useEmbed();
18727
+ const { api, data, layout, hydrate, setLayout } = useEmbed();
18516
18728
  const isLightBackground = useIsLightBackground();
18517
18729
  const [isLoading, setIsLoading] = (0, import_react35.useState)(false);
18518
18730
  const [error, setError] = (0, import_react35.useState)();
@@ -18569,14 +18781,16 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18569
18781
  paymentMethodId: id
18570
18782
  }
18571
18783
  });
18572
- setLayout("success");
18784
+ setLayout("portal");
18785
+ hydrate();
18573
18786
  } catch {
18787
+ setLayout("payment");
18574
18788
  setError(t2("Error updating payment method. Please try again."));
18575
18789
  } finally {
18576
18790
  setIsLoading(false);
18577
18791
  }
18578
18792
  },
18579
- [t2, api, setLayout]
18793
+ [t2, api, hydrate, setLayout]
18580
18794
  );
18581
18795
  (0, import_react35.useEffect)(() => {
18582
18796
  if (!stripe && setupIntent?.publishableKey) {
@@ -18597,8 +18811,8 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18597
18811
  if (!paymentMethod?.paymentMethodType) {
18598
18812
  return null;
18599
18813
  }
18600
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Element, { ref, className, children: [
18601
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18814
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Element, { ref, className, children: [
18815
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18602
18816
  PaymentMethodElement,
18603
18817
  {
18604
18818
  paymentMethod,
@@ -18608,8 +18822,8 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18608
18822
  }
18609
18823
  ),
18610
18824
  layout === "payment" && (0, import_react_dom3.createPortal)(
18611
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Modal, { size: "md", top, onClose: () => setShowPaymentForm(false), children: [
18612
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ModalHeader, { bordered: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18825
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Modal, { size: "md", top, onClose: () => setShowPaymentForm(false), children: [
18826
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ModalHeader, { bordered: true, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18613
18827
  Text,
18614
18828
  {
18615
18829
  $font: theme.typography.text.fontFamily,
@@ -18619,7 +18833,7 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18619
18833
  children: t2("Edit payment method")
18620
18834
  }
18621
18835
  ) }),
18622
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Flex, { $position: "relative", $height: "calc(100% - 5rem)", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18836
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Flex, { $position: "relative", $height: "calc(100% - 5rem)", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18623
18837
  Flex,
18624
18838
  {
18625
18839
  $flexDirection: "column",
@@ -18628,8 +18842,8 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18628
18842
  $padding: "2rem 2.5rem 2rem 2.5rem",
18629
18843
  $backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.025)" : "hsla(0, 0%, 100%, 0.025)",
18630
18844
  $overflow: "auto",
18631
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
18632
- showPaymentForm ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18845
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
18846
+ showPaymentForm ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18633
18847
  import_react_stripe_js3.Elements,
18634
18848
  {
18635
18849
  stripe,
@@ -18658,15 +18872,15 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18658
18872
  },
18659
18873
  clientSecret: setupIntent?.setupIntentClientSecret
18660
18874
  },
18661
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18875
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18662
18876
  PaymentForm,
18663
18877
  {
18664
18878
  onConfirm: (value) => updatePaymentMethod(value)
18665
18879
  }
18666
18880
  )
18667
18881
  }
18668
- ) : /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Flex, { $flexDirection: "column", $gap: "2rem", children: [
18669
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18882
+ ) : /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "column", $gap: "2rem", children: [
18883
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18670
18884
  PaymentMethodElement,
18671
18885
  {
18672
18886
  size: "lg",
@@ -18675,7 +18889,7 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18675
18889
  ...props
18676
18890
  }
18677
18891
  ),
18678
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18892
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18679
18893
  Text,
18680
18894
  {
18681
18895
  onClick: createSetupIntent,
@@ -18687,7 +18901,7 @@ var PaymentMethod = (0, import_react35.forwardRef)(({ children, className, porta
18687
18901
  }
18688
18902
  ) })
18689
18903
  ] }),
18690
- !isLoading && error && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
18904
+ !isLoading && error && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
18691
18905
  Text,
18692
18906
  {
18693
18907
  $font: theme.typography.text.fontFamily,
@@ -18710,7 +18924,7 @@ PaymentMethod.displayName = "PaymentMethod";
18710
18924
  // src/components/elements/plan-manager/PlanManager.tsx
18711
18925
  var import_react36 = require("react");
18712
18926
  var import_pluralize6 = __toESM(require_pluralize());
18713
- var import_jsx_runtime30 = require("react/jsx-runtime");
18927
+ var import_jsx_runtime31 = require("react/jsx-runtime");
18714
18928
  var resolveDesignProps5 = (props) => {
18715
18929
  return {
18716
18930
  header: {
@@ -18774,20 +18988,21 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18774
18988
  const billingSubscription = data.company?.billingSubscription;
18775
18989
  const subscriptionCurrency = billingSubscription?.currency;
18776
18990
  const showTrialBox = billingSubscription && billingSubscription.status == "trialing";
18991
+ const showUnsubscribeBox = billingSubscription && billingSubscription.status == "cancelled";
18777
18992
  const trialEndDate = billingSubscription?.trialEnd ? new Date(billingSubscription.trialEnd * 1e3) : /* @__PURE__ */ new Date();
18778
18993
  const todayDate = /* @__PURE__ */ new Date();
18779
18994
  const trialEndDays = Math.floor(
18780
18995
  (trialEndDate.getTime() - todayDate.getTime()) / (1e3 * 60 * 60 * 24)
18781
18996
  );
18782
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
18783
- showTrialBox && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
18997
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
18998
+ showTrialBox && !showUnsubscribeBox && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18784
18999
  Box,
18785
19000
  {
18786
19001
  $backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.04)" : "hsla(0, 0%, 100%, 0.04)",
18787
19002
  $textAlign: "center",
18788
19003
  $padding: "1rem",
18789
19004
  children: [
18790
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19005
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18791
19006
  Text,
18792
19007
  {
18793
19008
  as: "h3",
@@ -18798,7 +19013,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18798
19013
  children: t2("Trial ends in", { days: trialEndDays.toString() })
18799
19014
  }
18800
19015
  ),
18801
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19016
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18802
19017
  Text,
18803
19018
  {
18804
19019
  as: "p",
@@ -18816,7 +19031,43 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18816
19031
  ]
18817
19032
  }
18818
19033
  ),
18819
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19034
+ showUnsubscribeBox && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19035
+ Box,
19036
+ {
19037
+ $backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.04)" : "hsla(0, 0%, 100%, 0.04)",
19038
+ $textAlign: "center",
19039
+ $padding: "1rem",
19040
+ children: [
19041
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19042
+ Text,
19043
+ {
19044
+ as: "h3",
19045
+ $font: theme.typography.heading3.fontFamily,
19046
+ $size: theme.typography.heading3.fontSize,
19047
+ $weight: theme.typography.heading3.fontWeight,
19048
+ $color: theme.typography.heading3.color,
19049
+ children: t2("Subscription canceled")
19050
+ }
19051
+ ),
19052
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19053
+ Text,
19054
+ {
19055
+ as: "p",
19056
+ $font: theme.typography.text.fontFamily,
19057
+ $size: theme.typography.text.fontSize * 0.8125,
19058
+ $weight: theme.typography.text.fontWeight,
19059
+ $color: theme.typography.text.color,
19060
+ children: billingSubscription.cancelAt ? t2("Access to plan will end on", {
19061
+ date: toPrettyDate(new Date(billingSubscription.cancelAt), {
19062
+ month: "numeric"
19063
+ })
19064
+ }) : ""
19065
+ }
19066
+ )
19067
+ ]
19068
+ }
19069
+ ),
19070
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18820
19071
  Element,
18821
19072
  {
18822
19073
  as: Flex,
@@ -18825,7 +19076,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18825
19076
  $flexDirection: "column",
18826
19077
  $gap: "2rem",
18827
19078
  children: [
18828
- props.header.isVisible && currentPlan && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19079
+ props.header.isVisible && currentPlan && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18829
19080
  Flex,
18830
19081
  {
18831
19082
  $justifyContent: "space-between",
@@ -18833,8 +19084,8 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18833
19084
  $flexWrap: "wrap",
18834
19085
  $gap: "1rem",
18835
19086
  children: [
18836
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18837
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19087
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
19088
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18838
19089
  Text,
18839
19090
  {
18840
19091
  as: Box,
@@ -18846,7 +19097,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18846
19097
  children: currentPlan.name
18847
19098
  }
18848
19099
  ),
18849
- props.header.description.isVisible && currentPlan.description && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19100
+ props.header.description.isVisible && currentPlan.description && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18850
19101
  Text,
18851
19102
  {
18852
19103
  as: Box,
@@ -18858,8 +19109,8 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18858
19109
  }
18859
19110
  )
18860
19111
  ] }),
18861
- props.header.price.isVisible && typeof currentPlan.planPrice === "number" && currentPlan.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Box, { children: [
18862
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19112
+ props.header.price.isVisible && typeof currentPlan.planPrice === "number" && currentPlan.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box, { children: [
19113
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18863
19114
  Text,
18864
19115
  {
18865
19116
  $font: theme.typography[props.header.price.fontStyle].fontFamily,
@@ -18872,14 +19123,14 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18872
19123
  )
18873
19124
  }
18874
19125
  ),
18875
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19126
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18876
19127
  Text,
18877
19128
  {
18878
19129
  $font: theme.typography[props.header.price.fontStyle].fontFamily,
18879
19130
  $size: theme.typography[props.header.price.fontStyle].fontSize,
18880
19131
  $weight: theme.typography[props.header.price.fontStyle].fontWeight,
18881
19132
  $color: theme.typography[props.header.price.fontStyle].color,
18882
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("sub", { children: [
19133
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
18883
19134
  "/",
18884
19135
  shortenPeriod(currentPlan.planPeriod)
18885
19136
  ] })
@@ -18889,8 +19140,8 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18889
19140
  ]
18890
19141
  }
18891
19142
  ),
18892
- props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18893
- props.addOns.showLabel && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19143
+ props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
19144
+ props.addOns.showLabel && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18894
19145
  Text,
18895
19146
  {
18896
19147
  $font: theme.typography.text.fontFamily,
@@ -18901,7 +19152,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18901
19152
  children: t2("Add-ons")
18902
19153
  }
18903
19154
  ),
18904
- addOns.map((addOn) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19155
+ addOns.map((addOn) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18905
19156
  Flex,
18906
19157
  {
18907
19158
  $justifyContent: "space-between",
@@ -18909,7 +19160,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18909
19160
  $flexWrap: "wrap",
18910
19161
  $gap: "1rem",
18911
19162
  children: [
18912
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19163
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18913
19164
  Text,
18914
19165
  {
18915
19166
  $font: theme.typography[props.addOns.fontStyle].fontFamily,
@@ -18919,7 +19170,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18919
19170
  children: addOn.name
18920
19171
  }
18921
19172
  ),
18922
- addOn.planPrice && addOn.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19173
+ addOn.planPrice && addOn.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18923
19174
  Text,
18924
19175
  {
18925
19176
  $font: theme.typography.text.fontFamily,
@@ -18928,7 +19179,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18928
19179
  $color: theme.typography.text.color,
18929
19180
  children: [
18930
19181
  formatCurrency(addOn.planPrice, subscriptionCurrency),
18931
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("sub", { children: [
19182
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
18932
19183
  "/",
18933
19184
  shortenPeriod(addOn.planPeriod)
18934
19185
  ] })
@@ -18940,8 +19191,8 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18940
19191
  addOn.id
18941
19192
  ))
18942
19193
  ] }),
18943
- usageBasedEntitlements.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18944
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19194
+ usageBasedEntitlements.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", children: [
19195
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18945
19196
  Text,
18946
19197
  {
18947
19198
  $font: theme.typography.text.fontFamily,
@@ -18956,7 +19207,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18956
19207
  (acc, entitlement) => {
18957
19208
  if (entitlement.feature?.name) {
18958
19209
  acc.push(
18959
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19210
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18960
19211
  Flex,
18961
19212
  {
18962
19213
  $justifyContent: "space-between",
@@ -18964,14 +19215,14 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18964
19215
  $flexWrap: "wrap",
18965
19216
  $gap: "1rem",
18966
19217
  children: [
18967
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19218
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
18968
19219
  Text,
18969
19220
  {
18970
19221
  $font: theme.typography[props.addOns.fontStyle].fontFamily,
18971
19222
  $size: theme.typography[props.addOns.fontStyle].fontSize,
18972
19223
  $weight: theme.typography[props.addOns.fontStyle].fontWeight,
18973
19224
  $color: theme.typography[props.addOns.fontStyle].color,
18974
- children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
19225
+ children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
18975
19226
  entitlement.quantity,
18976
19227
  " ",
18977
19228
  (0, import_pluralize6.default)(
@@ -18981,8 +19232,8 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18981
19232
  ] }) : entitlement.feature.name
18982
19233
  }
18983
19234
  ),
18984
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Flex, { $alignItems: "center", $gap: "1rem", children: [
18985
- entitlement.priceBehavior === "pay_in_advance" && currentPlan?.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19235
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $alignItems: "center", $gap: "1rem", children: [
19236
+ entitlement.priceBehavior === "pay_in_advance" && currentPlan?.planPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
18986
19237
  Text,
18987
19238
  {
18988
19239
  $font: theme.typography.text.fontFamily,
@@ -18994,7 +19245,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
18994
19245
  entitlement.price,
18995
19246
  entitlement.currencyCode
18996
19247
  ),
18997
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("sub", { children: [
19248
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
18998
19249
  "/",
18999
19250
  (0, import_pluralize6.default)(
19000
19251
  entitlement.feature.name.toLowerCase(),
@@ -19006,7 +19257,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
19006
19257
  ]
19007
19258
  }
19008
19259
  ),
19009
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
19260
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19010
19261
  Text,
19011
19262
  {
19012
19263
  $font: theme.typography.text.fontFamily,
@@ -19018,7 +19269,7 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
19018
19269
  entitlement.price * (entitlement.priceBehavior === "pay_in_advance" ? entitlement.quantity : 1),
19019
19270
  entitlement.currencyCode
19020
19271
  ),
19021
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("sub", { children: [
19272
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("sub", { children: [
19022
19273
  "/",
19023
19274
  currentPlan?.planPeriod && entitlement.priceBehavior === "pay_in_advance" ? shortenPeriod(currentPlan.planPeriod) : (0, import_pluralize6.default)(
19024
19275
  entitlement.feature.name.toLowerCase(),
@@ -19040,9 +19291,10 @@ var PlanManager = (0, import_react36.forwardRef)(({ children, className, portal,
19040
19291
  []
19041
19292
  )
19042
19293
  ] }),
19043
- canCheckout && props.callToAction.isVisible && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
19294
+ canCheckout && props.callToAction.isVisible && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19044
19295
  EmbedButton,
19045
19296
  {
19297
+ type: "button",
19046
19298
  onClick: () => {
19047
19299
  setSelected({
19048
19300
  planId: currentPlan?.id,
@@ -19066,7 +19318,7 @@ PlanManager.displayName = "PlanManager";
19066
19318
  // src/components/elements/pricing-table/PricingTable.tsx
19067
19319
  var import_react37 = require("react");
19068
19320
  var import_pluralize7 = __toESM(require_pluralize());
19069
- var import_jsx_runtime31 = require("react/jsx-runtime");
19321
+ var import_jsx_runtime32 = require("react/jsx-runtime");
19070
19322
  var resolveDesignProps6 = (props) => {
19071
19323
  return {
19072
19324
  showPeriodToggle: props.showPeriodToggle ?? true,
@@ -19144,7 +19396,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19144
19396
  };
19145
19397
  });
19146
19398
  };
19147
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19399
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19148
19400
  FussyChild,
19149
19401
  {
19150
19402
  ref,
@@ -19153,8 +19405,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19153
19405
  $flexDirection: "column",
19154
19406
  $gap: "2rem",
19155
19407
  children: [
19156
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box, { children: [
19157
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19408
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box, { children: [
19409
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19158
19410
  Flex,
19159
19411
  {
19160
19412
  $flexDirection: "column",
@@ -19169,7 +19421,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19169
19421
  }
19170
19422
  },
19171
19423
  children: [
19172
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19424
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19173
19425
  Text,
19174
19426
  {
19175
19427
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -19179,7 +19431,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19179
19431
  children: props.header.isVisible && props.plans.isVisible && plans.length > 0 && t2("Plans")
19180
19432
  }
19181
19433
  ),
19182
- props.showPeriodToggle && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19434
+ props.showPeriodToggle && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19183
19435
  PeriodToggle,
19184
19436
  {
19185
19437
  options: periods,
@@ -19190,7 +19442,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19190
19442
  ]
19191
19443
  }
19192
19444
  ),
19193
- props.plans.isVisible && plans.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19445
+ props.plans.isVisible && plans.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19194
19446
  Box,
19195
19447
  {
19196
19448
  $display: "grid",
@@ -19203,7 +19455,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19203
19455
  if (count?.limit && count.limit > VISIBLE_ENTITLEMENT_COUNT) {
19204
19456
  isExpanded = true;
19205
19457
  }
19206
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19458
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19207
19459
  Flex,
19208
19460
  {
19209
19461
  $position: "relative",
@@ -19216,7 +19468,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19216
19468
  $outlineColor: isActivePlan ? theme.primary : "transparent",
19217
19469
  ...theme.card.hasShadow && { $boxShadow: cardBoxShadow },
19218
19470
  children: [
19219
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19471
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19220
19472
  Flex,
19221
19473
  {
19222
19474
  $flexDirection: "column",
@@ -19227,7 +19479,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19227
19479
  $borderStyle: "solid",
19228
19480
  $borderColor: isLightBackground ? "hsla(0, 0%, 0%, 0.175)" : "hsla(0, 0%, 100%, 0.175)",
19229
19481
  children: [
19230
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19482
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19231
19483
  Text,
19232
19484
  {
19233
19485
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19237,7 +19489,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19237
19489
  children: plan.name
19238
19490
  }
19239
19491
  ) }),
19240
- props.plans.description.isVisible && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19492
+ props.plans.description.isVisible && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19241
19493
  Text,
19242
19494
  {
19243
19495
  $font: theme.typography[props.plans.description.fontStyle].fontFamily,
@@ -19247,8 +19499,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19247
19499
  children: plan.description
19248
19500
  }
19249
19501
  ) }),
19250
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box, { children: [
19251
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19502
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box, { children: [
19503
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19252
19504
  Text,
19253
19505
  {
19254
19506
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19261,7 +19513,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19261
19513
  )
19262
19514
  }
19263
19515
  ),
19264
- !plan.custom && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19516
+ !plan.custom && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19265
19517
  Text,
19266
19518
  {
19267
19519
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19275,7 +19527,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19275
19527
  }
19276
19528
  )
19277
19529
  ] }),
19278
- isActivePlan && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19530
+ isActivePlan && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19279
19531
  Flex,
19280
19532
  {
19281
19533
  $position: "absolute",
@@ -19292,7 +19544,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19292
19544
  ]
19293
19545
  }
19294
19546
  ),
19295
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19547
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19296
19548
  Flex,
19297
19549
  {
19298
19550
  $flexDirection: "column",
@@ -19301,16 +19553,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19301
19553
  $gap: `${cardPadding}rem`,
19302
19554
  $padding: `${0.75 * cardPadding}rem ${cardPadding}rem 0`,
19303
19555
  children: [
19304
- props.plans.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: "1", children: [
19305
- plan.entitlements.slice().sort((a2, b2) => {
19306
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name > b2.feature?.name) {
19307
- return 1;
19308
- }
19309
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name < b2.feature?.name) {
19310
- return -1;
19311
- }
19312
- return 0;
19313
- }).reduce((acc, entitlement) => {
19556
+ props.plans.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: "1", children: [
19557
+ plan.entitlements.reduce((acc, entitlement) => {
19314
19558
  let price;
19315
19559
  let currency;
19316
19560
  if (selectedPeriod === "month") {
@@ -19324,8 +19568,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19324
19568
  return acc;
19325
19569
  }
19326
19570
  acc.push(
19327
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $gap: "1rem", children: [
19328
- props.plans.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19571
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $gap: "1rem", children: [
19572
+ props.plans.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19329
19573
  IconRound,
19330
19574
  {
19331
19575
  name: entitlement.feature.icon,
@@ -19336,7 +19580,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19336
19580
  ]
19337
19581
  }
19338
19582
  ),
19339
- entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Flex, { $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19583
+ entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Flex, { $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19340
19584
  Text,
19341
19585
  {
19342
19586
  $font: theme.typography.text.fontFamily,
@@ -19344,7 +19588,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19344
19588
  $weight: theme.typography.text.fontWeight,
19345
19589
  $color: theme.typography.text.color,
19346
19590
  $leading: 1.35,
19347
- children: typeof price !== "undefined" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19591
+ children: typeof price !== "undefined" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19348
19592
  formatCurrency(price, currency),
19349
19593
  " ",
19350
19594
  t2("per"),
@@ -19353,19 +19597,19 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19353
19597
  entitlement.feature.name,
19354
19598
  1
19355
19599
  ),
19356
- entitlement.priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19600
+ entitlement.priceBehavior === "pay_in_advance" && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19357
19601
  " ",
19358
19602
  t2("per"),
19359
19603
  " ",
19360
19604
  selectedPeriod
19361
19605
  ] })
19362
- ] }) : entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19606
+ ] }) : entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19363
19607
  entitlement.valueType === "unlimited" ? t2("Unlimited", {
19364
19608
  item: (0, import_pluralize7.default)(
19365
19609
  entitlement.feature.name
19366
19610
  )
19367
19611
  }) : typeof entitlement.valueNumeric === "number" && `${formatNumber(entitlement.valueNumeric)} ${(0, import_pluralize7.default)(entitlement.feature.name, entitlement.valueNumeric)}`,
19368
- entitlement.metricPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19612
+ entitlement.metricPeriod && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19369
19613
  " ",
19370
19614
  t2("per"),
19371
19615
  " ",
@@ -19383,14 +19627,14 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19383
19627
  );
19384
19628
  return acc;
19385
19629
  }, []).slice(0, count?.limit ?? VISIBLE_ENTITLEMENT_COUNT),
19386
- (count?.size || plan.entitlements.length) > VISIBLE_ENTITLEMENT_COUNT && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19630
+ (count?.size || plan.entitlements.length) > VISIBLE_ENTITLEMENT_COUNT && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19387
19631
  Flex,
19388
19632
  {
19389
19633
  $alignItems: "center",
19390
19634
  $justifyContent: "start",
19391
19635
  $marginTop: "1rem",
19392
19636
  children: [
19393
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19637
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19394
19638
  Icon2,
19395
19639
  {
19396
19640
  name: isExpanded ? "chevron-up" : "chevron-down",
@@ -19402,7 +19646,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19402
19646
  }
19403
19647
  }
19404
19648
  ),
19405
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19649
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19406
19650
  Text,
19407
19651
  {
19408
19652
  onClick: () => handleToggleShowAll(plan.id),
@@ -19419,7 +19663,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19419
19663
  }
19420
19664
  )
19421
19665
  ] }),
19422
- isActivePlan ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19666
+ isActivePlan ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19423
19667
  Flex,
19424
19668
  {
19425
19669
  $justifyContent: "center",
@@ -19427,7 +19671,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19427
19671
  $gap: "0.25rem",
19428
19672
  $padding: "0.625rem 0",
19429
19673
  children: [
19430
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19674
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19431
19675
  Icon2,
19432
19676
  {
19433
19677
  name: "check-rounded",
@@ -19438,7 +19682,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19438
19682
  }
19439
19683
  }
19440
19684
  ),
19441
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19685
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19442
19686
  Text,
19443
19687
  {
19444
19688
  $size: 15,
@@ -19449,10 +19693,11 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19449
19693
  )
19450
19694
  ]
19451
19695
  }
19452
- ) : (props.upgrade.isVisible || props.downgrade.isVisible) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19696
+ ) : (props.upgrade.isVisible || props.downgrade.isVisible) && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19453
19697
  EmbedButton,
19454
19698
  {
19455
- disabled: !plan.valid || !canCheckout,
19699
+ type: "button",
19700
+ disabled: (!plan.valid || !canCheckout) && !plan.custom,
19456
19701
  ...!plan.custom && {
19457
19702
  onClick: () => {
19458
19703
  setSelected({
@@ -19472,14 +19717,14 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19472
19717
  $color: props.downgrade.buttonStyle,
19473
19718
  $variant: "outline"
19474
19719
  },
19475
- children: plan.custom ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19720
+ children: plan.custom ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19476
19721
  ButtonLink,
19477
19722
  {
19478
19723
  href: plan.customPlanConfig?.ctaWebSite ?? "#",
19479
19724
  target: "_blank",
19480
19725
  children: plan.customPlanConfig?.ctaText ?? t2("Custom Plan CTA")
19481
19726
  }
19482
- ) : !plan.valid ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19727
+ ) : !plan.valid ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19483
19728
  Tooltip,
19484
19729
  {
19485
19730
  trigger: t2("Over usage limit"),
@@ -19501,14 +19746,14 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19501
19746
  }
19502
19747
  )
19503
19748
  ] }),
19504
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { children: props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19505
- props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19749
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { children: props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19750
+ props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19506
19751
  Flex,
19507
19752
  {
19508
19753
  $justifyContent: "space-between",
19509
19754
  $alignItems: "center",
19510
19755
  $marginBottom: "1rem",
19511
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19756
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19512
19757
  Text,
19513
19758
  {
19514
19759
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -19520,7 +19765,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19520
19765
  )
19521
19766
  }
19522
19767
  ),
19523
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19768
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19524
19769
  Box,
19525
19770
  {
19526
19771
  $display: "grid",
@@ -19528,7 +19773,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19528
19773
  $gap: "1rem",
19529
19774
  children: addOns.map((addOn, index) => {
19530
19775
  const isActiveAddOn = addOn.current && selectedPeriod === data.company?.addOns.find((a2) => a2.id === addOn.id)?.planPeriod;
19531
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19776
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19532
19777
  Flex,
19533
19778
  {
19534
19779
  $position: "relative",
@@ -19542,8 +19787,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19542
19787
  $outlineColor: isActiveAddOn ? theme.primary : "transparent",
19543
19788
  ...theme.card.hasShadow && { $boxShadow: cardBoxShadow },
19544
19789
  children: [
19545
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $flexDirection: "column", $gap: "0.75rem", children: [
19546
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19790
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $flexDirection: "column", $gap: "0.75rem", children: [
19791
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19547
19792
  Text,
19548
19793
  {
19549
19794
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19553,7 +19798,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19553
19798
  children: addOn.name
19554
19799
  }
19555
19800
  ) }),
19556
- props.addOns.showDescription && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19801
+ props.addOns.showDescription && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19557
19802
  Text,
19558
19803
  {
19559
19804
  $font: theme.typography[props.plans.description.fontStyle].fontFamily,
@@ -19563,8 +19808,8 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19563
19808
  children: addOn.description
19564
19809
  }
19565
19810
  ) }),
19566
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box, { children: [
19567
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19811
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Box, { children: [
19812
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19568
19813
  Text,
19569
19814
  {
19570
19815
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19577,7 +19822,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19577
19822
  )
19578
19823
  }
19579
19824
  ),
19580
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19825
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19581
19826
  Text,
19582
19827
  {
19583
19828
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19591,7 +19836,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19591
19836
  }
19592
19837
  )
19593
19838
  ] }),
19594
- isActiveAddOn && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19839
+ isActiveAddOn && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19595
19840
  Flex,
19596
19841
  {
19597
19842
  $position: "absolute",
@@ -19606,7 +19851,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19606
19851
  }
19607
19852
  )
19608
19853
  ] }),
19609
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
19854
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
19610
19855
  Flex,
19611
19856
  {
19612
19857
  $flexDirection: "column",
@@ -19614,7 +19859,7 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19614
19859
  $gap: `${cardPadding}rem`,
19615
19860
  $flexGrow: "1",
19616
19861
  children: [
19617
- props.addOns.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19862
+ props.addOns.showEntitlements && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19618
19863
  Flex,
19619
19864
  {
19620
19865
  $flexDirection: "column",
@@ -19622,15 +19867,15 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19622
19867
  $gap: "1rem",
19623
19868
  $flexGrow: "1",
19624
19869
  children: addOn.entitlements.map((entitlement) => {
19625
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19870
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19626
19871
  Flex,
19627
19872
  {
19628
19873
  $flexWrap: "wrap",
19629
19874
  $justifyContent: "space-between",
19630
19875
  $alignItems: "center",
19631
19876
  $gap: "1rem",
19632
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Flex, { $gap: "1rem", children: [
19633
- props.addOns.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19877
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $gap: "1rem", children: [
19878
+ props.addOns.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19634
19879
  IconRound,
19635
19880
  {
19636
19881
  name: entitlement.feature.icon,
@@ -19641,20 +19886,20 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19641
19886
  ]
19642
19887
  }
19643
19888
  ),
19644
- entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Flex, { $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19889
+ entitlement.feature?.name && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Flex, { $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19645
19890
  Text,
19646
19891
  {
19647
19892
  $font: theme.typography.text.fontFamily,
19648
19893
  $size: theme.typography.text.fontSize,
19649
19894
  $weight: theme.typography.text.fontWeight,
19650
19895
  $color: theme.typography.text.color,
19651
- children: entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19896
+ children: entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19652
19897
  entitlement.valueType === "unlimited" ? t2("Unlimited", {
19653
19898
  item: (0, import_pluralize7.default)(
19654
19899
  entitlement.feature.name
19655
19900
  )
19656
19901
  }) : typeof entitlement.valueNumeric === "number" && `${formatNumber(entitlement.valueNumeric)} ${(0, import_pluralize7.default)(entitlement.feature.name, entitlement.valueNumeric)}`,
19657
- entitlement.metricPeriod && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
19902
+ entitlement.metricPeriod && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
19658
19903
  " ",
19659
19904
  t2("per"),
19660
19905
  " ",
@@ -19675,9 +19920,10 @@ var PricingTable = (0, import_react37.forwardRef)(({ children, className, ...res
19675
19920
  })
19676
19921
  }
19677
19922
  ),
19678
- props.upgrade.isVisible && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
19923
+ props.upgrade.isVisible && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
19679
19924
  EmbedButton,
19680
19925
  {
19926
+ type: "button",
19681
19927
  disabled: !addOn.valid || !canCheckout,
19682
19928
  onClick: () => {
19683
19929
  setSelected({
@@ -19712,7 +19958,7 @@ PricingTable.displayName = "PricingTable";
19712
19958
 
19713
19959
  // src/components/elements/upcoming-bill/UpcomingBill.tsx
19714
19960
  var import_react38 = require("react");
19715
- var import_jsx_runtime32 = require("react/jsx-runtime");
19961
+ var import_jsx_runtime33 = require("react/jsx-runtime");
19716
19962
  function resolveDesignProps7(props) {
19717
19963
  return {
19718
19964
  header: {
@@ -19764,7 +20010,7 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19764
20010
  if (typeof upcomingInvoice.amountDue !== "number" || !upcomingInvoice.dueDate) {
19765
20011
  return null;
19766
20012
  }
19767
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
20013
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
19768
20014
  Element,
19769
20015
  {
19770
20016
  as: Flex,
@@ -19773,7 +20019,7 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19773
20019
  $flexDirection: "column",
19774
20020
  $gap: "1rem",
19775
20021
  children: [
19776
- props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
20022
+ props.header.isVisible && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
19777
20023
  Text,
19778
20024
  {
19779
20025
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -19787,8 +20033,8 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19787
20033
  ]
19788
20034
  }
19789
20035
  ) }),
19790
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $justifyContent: "space-between", $alignItems: "start", $gap: "1rem", children: [
19791
- props.price.isVisible && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Flex, { $alignItems: "end", $flexGrow: "1", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
20036
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Flex, { $justifyContent: "space-between", $alignItems: "start", $gap: "1rem", children: [
20037
+ props.price.isVisible && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Flex, { $alignItems: "end", $flexGrow: "1", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
19792
20038
  Text,
19793
20039
  {
19794
20040
  $font: theme.typography[props.price.fontStyle].fontFamily,
@@ -19802,7 +20048,7 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19802
20048
  )
19803
20049
  }
19804
20050
  ) }),
19805
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { $lineHeight: 1.15, $maxWidth: "10rem", $textAlign: "right", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
20051
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box, { $lineHeight: 1.15, $maxWidth: "10rem", $textAlign: "right", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
19806
20052
  Text,
19807
20053
  {
19808
20054
  $font: theme.typography[props.contractEndDate.fontStyle].fontFamily,
@@ -19814,8 +20060,8 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19814
20060
  }
19815
20061
  ) })
19816
20062
  ] }),
19817
- discounts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
19818
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
20063
+ discounts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
20064
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
19819
20065
  Text,
19820
20066
  {
19821
20067
  $font: theme.typography.text.fontFamily,
@@ -19825,8 +20071,8 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19825
20071
  children: t2("Discount")
19826
20072
  }
19827
20073
  ) }),
19828
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { children: discounts.map((discount) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
19829
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
20074
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box, { children: discounts.map((discount) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
20075
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
19830
20076
  Flex,
19831
20077
  {
19832
20078
  $alignItems: "center",
@@ -19835,7 +20081,7 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19835
20081
  $borderStyle: "solid",
19836
20082
  $borderColor: isLightBackground ? "hsla(0, 0%, 0%, 0.15)" : "hsla(0, 0%, 100%, 0.15)",
19837
20083
  $borderRadius: "0.3125rem",
19838
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
20084
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
19839
20085
  Text,
19840
20086
  {
19841
20087
  $font: theme.typography.text.fontFamily,
@@ -19847,7 +20093,7 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19847
20093
  )
19848
20094
  }
19849
20095
  ),
19850
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
20096
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
19851
20097
  Text,
19852
20098
  {
19853
20099
  $font: theme.typography.text.fontFamily,
@@ -19865,11 +20111,72 @@ var UpcomingBill = (0, import_react38.forwardRef)(({ className, ...rest }, ref)
19865
20111
  });
19866
20112
  UpcomingBill.displayName = "UpcomingBill";
19867
20113
 
20114
+ // src/components/elements/unsubscribe-button/UnsubscribeButton.tsx
20115
+ var import_react39 = require("react");
20116
+ var import_jsx_runtime34 = require("react/jsx-runtime");
20117
+ var resolveDesignProps8 = (props) => {
20118
+ return {
20119
+ button: {
20120
+ text: props.button?.text ?? "Unsubscribe",
20121
+ style: props.button?.style ?? "primary",
20122
+ size: props.button?.size ?? "md",
20123
+ fullWidth: props.button?.fullWidth ?? true,
20124
+ alignment: props.button?.alignment ?? "center"
20125
+ }
20126
+ };
20127
+ };
20128
+ var UnsubscribeButton = (0, import_react39.forwardRef)(({ children, className, ...rest }, ref) => {
20129
+ const props = resolveDesignProps8(rest);
20130
+ const { t: t2 } = useTranslation();
20131
+ const { data, setLayout } = useEmbed();
20132
+ const disabled = !data.subscription || data.subscription.status === "cancelled";
20133
+ const buttonStyles = {
20134
+ primary: {
20135
+ color: "primary",
20136
+ variant: "filled"
20137
+ },
20138
+ secondary: {
20139
+ color: "primary",
20140
+ variant: "outline"
20141
+ },
20142
+ tertiary: {
20143
+ color: "primary",
20144
+ variant: "text"
20145
+ }
20146
+ };
20147
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
20148
+ Element,
20149
+ {
20150
+ as: Flex,
20151
+ ref,
20152
+ className,
20153
+ $flexDirection: "column",
20154
+ $gap: "2rem",
20155
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
20156
+ EmbedButton,
20157
+ {
20158
+ $size: props.button.size,
20159
+ $color: buttonStyles[props.button.style].color,
20160
+ $variant: buttonStyles[props.button.style].variant,
20161
+ $alignment: props.button.alignment,
20162
+ $fullWidth: props.button.fullWidth,
20163
+ onClick: () => {
20164
+ setLayout("unsubscribe");
20165
+ },
20166
+ disabled,
20167
+ children: t2(props.button.text) ?? t2("Unsubscribe")
20168
+ }
20169
+ )
20170
+ }
20171
+ );
20172
+ });
20173
+ UnsubscribeButton.displayName = "UnsubscribeButton";
20174
+
19868
20175
  // src/components/embed/ComponentTree.tsx
19869
- var import_react40 = require("react");
20176
+ var import_react41 = require("react");
19870
20177
 
19871
20178
  // src/components/embed/renderer.ts
19872
- var import_react39 = require("react");
20179
+ var import_react40 = require("react");
19873
20180
  var components = {
19874
20181
  Root,
19875
20182
  Viewport,
@@ -19881,7 +20188,8 @@ var components = {
19881
20188
  UpcomingBill,
19882
20189
  PaymentMethod,
19883
20190
  Invoices,
19884
- PricingTable
20191
+ PricingTable,
20192
+ UnsubscribeButton
19885
20193
  };
19886
20194
  function createRenderer(options) {
19887
20195
  const { useFallback = false } = options || {};
@@ -19891,7 +20199,7 @@ function createRenderer(options) {
19891
20199
  const component = useFallback ? components[name] || "div" : components[name];
19892
20200
  if (!components[name]) {
19893
20201
  console.debug(
19894
- "`schematic-embed`: Encounted an unknown component during render cycle.",
20202
+ "`schematic-embed`: Encountered an unknown component during render cycle.",
19895
20203
  name
19896
20204
  );
19897
20205
  }
@@ -19901,7 +20209,7 @@ function createRenderer(options) {
19901
20209
  const { className, ...rest } = props;
19902
20210
  const resolvedProps = component === "div" ? rest : props;
19903
20211
  const resolvedChildren = children.map(renderNode);
19904
- return (0, import_react39.createElement)(
20212
+ return (0, import_react40.createElement)(
19905
20213
  component,
19906
20214
  {
19907
20215
  key: index,
@@ -19914,10 +20222,10 @@ function createRenderer(options) {
19914
20222
  }
19915
20223
 
19916
20224
  // src/components/embed/ComponentTree.tsx
19917
- var import_jsx_runtime33 = require("react/jsx-runtime");
20225
+ var import_jsx_runtime35 = require("react/jsx-runtime");
19918
20226
  var Loading = () => {
19919
20227
  const theme = nt();
19920
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
20228
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
19921
20229
  Flex,
19922
20230
  {
19923
20231
  $width: "100%",
@@ -19925,13 +20233,13 @@ var Loading = () => {
19925
20233
  $alignItems: "center",
19926
20234
  $justifyContent: "center",
19927
20235
  $padding: `${theme.card.padding / TEXT_BASE_SIZE}rem`,
19928
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Loader, { $size: "2xl", $color: "#194BFB" })
20236
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Loader, { $size: "2xl", $color: "#194BFB" })
19929
20237
  }
19930
20238
  );
19931
20239
  };
19932
20240
  var Error2 = ({ message }) => {
19933
20241
  const theme = nt();
19934
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
20242
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
19935
20243
  Flex,
19936
20244
  {
19937
20245
  $flexDirection: "column",
@@ -19942,7 +20250,7 @@ var Error2 = ({ message }) => {
19942
20250
  $alignItems: "center",
19943
20251
  $justifyContent: "center",
19944
20252
  children: [
19945
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
20253
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
19946
20254
  Box,
19947
20255
  {
19948
20256
  $marginBottom: `${8 / TEXT_BASE_SIZE}rem`,
@@ -19953,7 +20261,7 @@ var Error2 = ({ message }) => {
19953
20261
  children: "Error"
19954
20262
  }
19955
20263
  ),
19956
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
20264
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
19957
20265
  Box,
19958
20266
  {
19959
20267
  $marginBottom: `${8 / TEXT_BASE_SIZE}rem`,
@@ -19970,31 +20278,31 @@ var Error2 = ({ message }) => {
19970
20278
  };
19971
20279
  var ComponentTree = () => {
19972
20280
  const { error, nodes, isPending } = useEmbed();
19973
- const [children, setChildren] = (0, import_react40.useState)(/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Loading, {}));
19974
- (0, import_react40.useEffect)(() => {
20281
+ const [children, setChildren] = (0, import_react41.useState)(/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Loading, {}));
20282
+ (0, import_react41.useEffect)(() => {
19975
20283
  const renderer = createRenderer();
19976
20284
  setChildren(nodes.map(renderer));
19977
20285
  }, [nodes]);
19978
20286
  if (error) {
19979
20287
  console.error(error);
19980
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Error2, { message: error.message });
20288
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Error2, { message: error.message });
19981
20289
  }
19982
20290
  if (isPending) {
19983
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Loading, {});
20291
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Loading, {});
19984
20292
  }
19985
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children });
20293
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children });
19986
20294
  };
19987
20295
 
19988
20296
  // src/components/embed/Embed.tsx
19989
- var import_jsx_runtime34 = require("react/jsx-runtime");
20297
+ var import_jsx_runtime36 = require("react/jsx-runtime");
19990
20298
  var SchematicEmbed = ({ id, accessToken, apiConfig }) => {
19991
20299
  if (accessToken?.length === 0) {
19992
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { children: "Please provide an access token." });
20300
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { children: "Please provide an access token." });
19993
20301
  }
19994
20302
  if (!accessToken?.startsWith("token_")) {
19995
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { children: 'Invalid access token; your temporary access token will start with "token_".' });
20303
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { children: 'Invalid access token; your temporary access token will start with "token_".' });
19996
20304
  }
19997
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(EmbedProvider, { id, accessToken, apiConfig, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ComponentTree, {}) });
20305
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(EmbedProvider, { id, accessToken, apiConfig, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ComponentTree, {}) });
19998
20306
  };
19999
20307
  /*! Bundled license information:
20000
20308