@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.
@@ -3735,11 +3735,11 @@ function useAvailablePlans(activePeriod) {
3735
3735
  const getActivePlans = useCallback2(
3736
3736
  (plans) => {
3737
3737
  const customPlanExist = plans.some((plan) => plan.custom);
3738
- let plansWithSelected = mode === "edit" ? plans.slice() : plans.filter(
3738
+ const plansWithSelected = mode === "edit" ? plans.slice() : plans.filter(
3739
3739
  (plan) => activePeriod === "month" && plan.monthlyPrice || activePeriod === "year" && plan.yearlyPrice
3740
3740
  );
3741
3741
  if (!customPlanExist) {
3742
- plansWithSelected = plansWithSelected.sort((a2, b2) => {
3742
+ plansWithSelected.sort((a2, b2) => {
3743
3743
  if (activePeriod === "year") {
3744
3744
  return (a2.yearlyPrice?.price ?? 0) - (b2.yearlyPrice?.price ?? 0);
3745
3745
  }
@@ -11925,6 +11925,7 @@ var CheckoutexternalApi = class extends BaseAPI {
11925
11925
  var en_default = {
11926
11926
  translation: {
11927
11927
  "A problem occurred while saving your payment method.": "A problem occurred while saving your payment method.",
11928
+ "Access to plan will end on": "Access to plan will end on {{date}}",
11928
11929
  Active: "Active",
11929
11930
  "Add payment method": "Add payment method",
11930
11931
  "Add Seats": "Add More",
@@ -11934,6 +11935,7 @@ var en_default = {
11934
11935
  "After the trial, cancel no default": "After the trial, you will be lose access to {{planName}} plan and your subscription will be cancelled.",
11935
11936
  Billed: "Billed {{period}}",
11936
11937
  "billing period": "billing period",
11938
+ "Cancel subscription": "Cancel subscription",
11937
11939
  "Cannot downgrade entitlement": "Cannot downgrade to a lower quantity than current usage.",
11938
11940
  "Card ending in": "\u{1F4B3} Card ending in {{value}}",
11939
11941
  "Change add-on": "Change add-on",
@@ -11968,9 +11970,11 @@ var en_default = {
11968
11970
  Invoices: "Invoices",
11969
11971
  "Limit of": "Limit of {{amount}}",
11970
11972
  Loading: "Loading",
11973
+ "Manage plan": "Manage plan",
11971
11974
  Monthly: "Monthly",
11972
11975
  Next: "Next",
11973
11976
  "No limit": "No limit",
11977
+ "Not ready to cancel?": "Not ready to cancel?",
11974
11978
  "Optionally add features to your subscription": "Optionally add features to your subscription",
11975
11979
  "Other existing payment method": "Other existing payment method",
11976
11980
  "Over usage limit": "Over usage limit",
@@ -11997,10 +12001,13 @@ var en_default = {
11997
12001
  "Start trial": "Start trial",
11998
12002
  "Subscribe and close": "Subscribe and close",
11999
12003
  Subscription: "Subscription",
12004
+ "Subscription canceled": "Subscription canceled",
12000
12005
  Trial: "Trial",
12001
12006
  "Trial ends in": "Trial ends in {{days}} days",
12002
12007
  "Trial plan": "Try free for {{days}} days",
12003
12008
  Unlimited: "Unlimited {{item}}",
12009
+ Unsubscribe: "Unsubscribe",
12010
+ "Unsubscribe failed": "Unsubscribe failed",
12004
12011
  "Unused time": "Unused time",
12005
12012
  Usage: "Usage",
12006
12013
  "Usage-based": "Usage-based",
@@ -12008,6 +12015,7 @@ var en_default = {
12008
12015
  "X% off": "{{percent}}% off",
12009
12016
  "X off": "{{amount}} off",
12010
12017
  Yearly: "Yearly",
12018
+ "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",
12011
12019
  day: "day",
12012
12020
  month: "month",
12013
12021
  per: "per",
@@ -12025,7 +12033,7 @@ var GlobalStyle = ft`;
12025
12033
 
12026
12034
  @font-face {
12027
12035
  font-family: "icons";
12028
- src: url(data:font/ttf;base64,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AGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwAFYWxhcm0JYW1hem9ucGF5BGFtZXgIYXBwbGVwYXkPYXJyb3ctYW5hbHl0aWNzDGFycm93LWN1cnZlZAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQIYXJyb3ctdXAMYXJyb3ctdXB3YXJkCWJhY2tzcGFjZQRiYW5rBGJlbGwFYm9hcmQIYm9va21hcmsKYm9vbGVhbi1vbgdib29sZWFuBGJ1bGIGYnVyZ2VyB2Nhc2hhcHANY2hlY2stcm91bmRlZAVjaGVjawxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwBWNoaXBzBWNsZXJrFGNsb3NlLXJvdW5kZWQtZmlsbGVkBWNsb3NlCGNsb3VkLXVwBGNsdWIDY21kBGNvZGUGY29mZmVlA2NvZw5jb2xsYXBzZS1lbXB0eQhjb2xsYXBzZQdjb21wYXNzCmNvbm5lY3Rpb24EY29weQZjcmVkaXQHY3lsbmRlcgdkaWFtb25kDmRvbGxhci1yb3VuZGVkD2RvdHMtaG9yaXpvbnRhbA1kb3RzLXZlcnRpY2FsDGVudGl0bGVtZW50cwllcXVhbGl6ZXIaZXhjbGFtYXRpb24tcm91bmRlZC1maWxsZWQDZXllBmZpbHRlcgVmbGFzawxmb2xkZXItbWludXMLZm9sZGVyLXBsdXMGZm9sZGVyD2dlbmVyaWMtcGF5bWVudAdnbGFzc2VzBWdsb2JlBmhhbW1lcgRoYXNoBWhlYXJ0B2h1YnNwb3QFaW1hZ2UMaW5mby1yb3VuZGVkBWp1aWNlA2tleQRsaW5rCm1hc3RlcmNhcmQFbXVzaWMKbm9kZS1taW51cwlub2RlLXBsdXMHcGFja2FnZQtwYXBlci1wbGFuZQZwYXlwYWwGcGVuY2lsB3BlcmNlbnQGcGlja2VyBHBsYW4EcGx1ZwpwbHVzLW1pbnVzFHBsdXMtcm91bmRlZC1vdXRsaW5lB3ByZXNlbnQJc2NoZW1hdGljBnNlYXJjaAdzZWdtZW50DXNlcnZlci1zZWFyY2gHc2lkZWJhcgZzaWduYWwHc2lsZW5jZQVzcGFkZQdzcGVha2VyB3N0YWNrZWQGc3RhY2tzBnN0cmlwZQR0ZXh0B3RodW5kZXIHdG9ybmFkbwV0cnVjawR0dWJlC3VucHJvdGVjdGVkCHZlcmlmaWVkDHZpZGVvLWNhbWVyYQR2aXNhBndhbGxldAp3YXRjaC1oYW5kDHdhdGNoLXBvY2tldAp3YXRlci1kcm9wBXdhdmVzB3dlYmhvb2sEd2luZAAAAA==), format("truetype");
12036
+ src: url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI97ktcAAABjAAAAGBjbWFwAJym5QAAA8QAAAfIZ2x5ZtIIYsMAAAx8AABXHGhlYWRYqp/xAAAA4AAAADZoaGVhAjwBigAAALwAAAAkaG10eIk1AAAAAAHsAAAB2GxvY2Eh4QygAAALjAAAAO5tYXhwAZEBZAAAARgAAAAgbmFtZRTbwvgAAGOYAAAB8nBvc3TJtgWrAABljAAABSIAAQAAAPr/zgAAAUUAAAAAAUAAAQAAAAAAAAAAAAAAAAAAAHYAAQAAAAEAAC/HHFlfDzz1AAsBLAAAAAB8JbCAAAAAAHwlsIAAAP/zAUAA1QAAAAgAAgAAAAAAAAABAAAAdgFYABEAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKgGQAAUAAADOANIAAAAqAM4A0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwPEB8XUA+v/OABsBFQAyAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABRQAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAAAAAUAAAADAAAALAAAAAQAAAI8AAEAAAAAATYAAwABAAAALAADAAoAAAI8AAQBCgAAAAQABAABAADxdf//AADxAf//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAABYwAAAAAAAAAdQAA8QEAAPEBAAAAAQAA8QIAAPECAAAAAgAA8QMAAPEDAAAAAwAA8QQAAPEEAAAABAAA8QUAAPEFAAAABQAA8QYAAPEGAAAABgAA8QcAAPEHAAAABwAA8QgAAPEIAAAACAAA8QkAAPEJAAAACQAA8QoAAPEKAAAACgAA8QsAAPELAAAACwAA8QwAAPEMAAAADAAA8Q0AAPENAAAADQAA8Q4AAPEOAAAADgAA8Q8AAPEPAAAADwAA8RAAAPEQAAAAEAAA8REAAPERAAAAEQAA8RIAAPESAAAAEgAA8RMAAPETAAAAEwAA8RQAAPEUAAAAFAAA8RUAAPEVAAAAFQAA8RYAAPEWAAAAFgAA8RcAAPEXAAAAFwAA8RgAAPEYAAAAGAAA8RkAAPEZAAAAGQAA8RoAAPEaAAAAGgAA8RsAAPEbAAAAGwAA8RwAAPEcAAAAHAAA8R0AAPEdAAAAHQAA8R4AAPEeAAAAHgAA8R8AAPEfAAAAHwAA8SAAAPEgAAAAIAAA8SEAAPEhAAAAIQAA8SIAAPEiAAAAIgAA8SMAAPEjAAAAIwAA8SQAAPEkAAAAJAAA8SUAAPElAAAAJQAA8SYAAPEmAAAAJgAA8ScAAPEnAAAAJwAA8SgAAPEoAAAAKAAA8SkAAPEpAAAAKQAA8SoAAPEqAAAAKgAA8SsAAPErAAAAKwAA8SwAAPEsAAAALAAA8S0AAPEtAAAALQAA8S4AAPEuAAAALgAA8S8AAPEvAAAALwAA8TAAAPEwAAAAMAAA8TEAAPExAAAAMQAA8TIAAPEyAAAAMgAA8TMAAPEzAAAAMwAA8TQAAPE0AAAANAAA8TUAAPE1AAAANQAA8TYAAPE2AAAANgAA8TcAAPE3AAAANwAA8TgAAPE4AAAAOAAA8TkAAPE5AAAAOQAA8ToAAPE6AAAAOgAA8TsAAPE7AAAAOwAA8TwAAPE8AAAAPAAA8T0AAPE9AAAAPQAA8T4AAPE+AAAAPgAA8T8AAPE/AAAAPwAA8UAAAPFAAAAAQAAA8UEAAPFBAAAAQQAA8UIAAPFCAAAAQgAA8UMAAPFDAAAAQwAA8UQAAPFEAAAARAAA8UUAAPFFAAAARQAA8UYAAPFGAAAARgAA8UcAAPFHAAAARwAA8UgAAPFIAAAASAAA8UkAAPFJAAAASQAA8UoAAPFKAAAASgAA8UsAAPFLAAAASwAA8UwAAPFMAAAATAAA8U0AAPFNAAAATQAA8U4AAPFOAAAATgAA8U8AAPFPAAAATwAA8VAAAPFQAAAAUAAA8VEAAPFRAAAAUQAA8VIAAPFSAAAAUgAA8VMAAPFTAAAAUwAA8VQAAPFUAAAAVAAA8VUAAPFVAAAAVQAA8VYAAPFWAAAAVgAA8VcAAPFXAAAAVwAA8VgAAPFYAAAAWAAA8VkAAPFZAAAAWQAA8VoAAPFaAAAAWgAA8VsAAPFbAAAAWwAA8VwAAPFcAAAAXAAA8V0AAPFdAAAAXQAA8V4AAPFeAAAAXgAA8V8AAPFfAAAAXwAA8WAAAPFgAAAAYAAA8WEAAPFhAAAAYQAA8WIAAPFiAAAAYgAA8WMAAPFjAAAAYwAA8WQAAPFkAAAAZAAA8WUAAPFlAAAAZQAA8WYAAPFmAAAAZgAA8WcAAPFnAAAAZwAA8WgAAPFoAAAAaAAA8WkAAPFpAAAAaQAA8WoAAPFqAAAAagAA8WsAAPFrAAAAawAA8WwAAPFsAAAAbAAA8W0AAPFtAAAAbQAA8W4AAPFuAAAAbgAA8W8AAPFvAAAAbwAA8XAAAPFwAAAAcAAA8XEAAPFxAAAAcQAA8XIAAPFyAAAAcgAA8XMAAPFzAAAAcwAA8XQAAPF0AAAAdAAA8XUAAPF1AAAAdQAAAAAAiAGKAy4D3AROBHoEoATGBOwFFAVMBbYGUgawBwoHOAdeB4QH6ggiCJAIyAjuCQ4JLglOCW4KuAsoC3oLugvqDEYMsg0sDhAOeA/OEAgQSBCQERgRcBGQEfQSLBKiEs4S+hOIFBYUTBSoFOIVLhV+FeIWIhZkFsQXHhdyF54YIBhQGJwZABlwGdoaJBpyGtYbJhtGG34bzhwwHKIdAB3gHgweXB6sHwAfTB+GH9QgNiBqIKQhOiH0IjQipCMkI4wj+iRQJKgk5CUSJTYlpiYaJlImpCciJ3Yn2ihWKJ4o/ilgKaoqeCskK44AAAAFAAAAAAD2AMQADwAfAD8ATABeAAA3IgYHBh4BNjc+ATMyNjQmMyIGFBYzMhYXHgE+AScuAQciDgEVFBcHBhQWMj8BFjMyNjcXFjI2Ji8BPgE1NC4BBzIeARQOASIuATQ+ARciBh0BIyIGFBY7ATI2PQE0JnAVIAQBBQcHAQIWDgQFBUgEBgYEDhYCAQcHBQEEIToXKBcTEAMGCAMPGB4PGwsQAwgGAQIQCQoYJxcSHxISHyQfEhIfEgQGHAQGBgQmBAUFwxoTBAcBBAQNEQYIBQUIBhENBAQBBwQTGhMXJxgdGBADCAUDEBMKCRECBgcDEAscDhgnFxMSHiUeEhIeJR4SEwUEHQYHBgYDJwQFAAQAAAAAAOIAsAAxAFAAtQDTAAA3NDsBMRYUDwEGByMGByMGByMGIzkBIiczJiczJiczJicxJi8BNzMxFhczFjMyNzE2PwEWHQExBgc1BgcxBiY3Njc1Ni8CMQcjJjY3MzEyFycUFzEWFzEfAQcvAQYHMQYHMQYrASInMSYnMSYnMSY9ATkBNDcxNjcjNjcxNjcxNj8BMzU0JzEmKwExBzEGBzEGBzEGByc0NzE2NxU2NzE2NzE2OwE5ATIXIxYXMRYXMRYXMRYVBzAxFBcxFjMyMzE2NzE2NTkBNSIHMwYHMw4BHQExzwEBAQIDBAQBBQYBBwgBCQsLCgEKCQEJBwEHBQQDAQECCw0CFRkMCxIQEQEBAgIFAgEBAgECAQEICQMBCQQKBQEiAgEBBAMTBwkDBQUGBgYCBQUGBAUCAwICBQEFBQQGBQYKCQEEBgEFAgMCAgMCGQICBAQFBgcICAEICAEGBQQDAwEBOgYEBAICCAIBBQUBBQUBBQYzAQECAgMDAwMDAwICAwIEBAUEBQMEAQIHBwoCBAgJAQIDBAUBBgUBAQIEBQEGAgEBAQEEAQIlAwIDAgQEEgYJBQMEAQIBAgQEBQYHAQcGBQUEAgMCAgECDAQDBAEBAQIDBAQCBQUFBQEFAwQCAgICAwMEAwQDBDMHBAIDCAQEDgEBAgIIBQEAABEAAAAAARQAtQATABYAIgA1AD4AQgBhAGQAcgB7AH4AhACQAKIAqwDHAVcAADcHJyMVJyMHMzczFzM1FzM3FTM1ByM3FyM1MxUjFTMVIxUzNzQmKwEVMzUzMhYdATM1NCYnNicGKwE1MzIWFDcjFTM3FScjFScjByMiJjQ2OwE1IyIGFBY7ATczFzM1FzM1ByM3ByMHJyMVMzcXMzUzMjQHIzUzNSM1Mx8BJzcXIzUzMhQ3MxUjFTMVIxUzFSMnNjQmKwEVMzUzMhYdATM1NCYnIisBNTMyFhQXFhUUKwE1MzI2NCYrAS4BNDY7ARUjIgYUFzMyNzY7ATU0JisBIgYdATczFzUzFzczMhc1MxU2OwEXNTMXNTMVIycVIycjByMiJxUjNTQrARUjNQcjJxUjJyMHIxUUFjsBMjY9ARUGKwE1BisBNTQrARUjNQYrARUjJwcjNTMXNzMyFzUzMhc1MxU2OwEVNjsBFSMiBhQWOwEyFhQGKwEVMzI3MTUnJiMnIjQzWQgJDAwKDQgCDwMOCgYLBzUKBVcYGBEQEBEhBgYRCAcEAgcCAgUJAQMICAMCEwcHTAwLDAsJBAMDAwQHBwcIBwcJAg8DDg0KKwkFPRYJCRwcCQkNCQw4EQ8PEgcUCwsQCQkFKxcQEBAQFwkFBgYRCAcEAgcCBgEDCAgDAj4CCw4OAgICAgEHBgQGDg0CAgEHBg4BAg0IBeAFCAkSAhYEBUQFAxMECBsCFAMTEwQZAgYDDQcEHwEBOgMMAhgCBgMMCAXgBQgEBhMDBjkCARMDBgMXBQYlJgUGGQgCFwYDIwIGEwQFDQ4FBQcGAgECAQMNDQcDAQIGBgIBjRQUHBweBwcYGBgYHhEMGR4GBgYGEAUDHgsDBAQGBAMBAgIBBwEECx4eFRUcHBcDCgQGBxAHBwcXFx4RDC4KCh4JCQoUGAYGBQgNDAwKBwcOBwUGBgYNAgsEHgoCBAQFBAQEBgEEAwIECQYCAgEBAwkGBwEDAQQBVAYICAYoFAUFCwsDAwMDBQUFBSoGBgcHAwMKAQsFBQUFBwdIBggIBh4IAgMDCgELDAIKBwcqBgYCAgICAgICAgYFCgMBAwEHBAsBAgEEAAAAAAgAAAAAAR8AvAAHABAAIQArAEEAUABYAIEAADczMhYUBisBFxUUBiImNTQ/ASMiBh0BFBY7AT4BPQE0JiMHMzIWFAYrARUjNzIWHQEjNQ4BIiY1NDM3NTQiByM0NjsBFzczBw4BIyc1MzI/AScWBiMmNz4BBzAxNjsBMhcWFzEGFRQXFhcxBgcjDgEmJzEmIgYjIi4BNz4BMhcxFjKRCgUHBwUKOgUIBAhJ6ggLCwjqCAsLCIMVCAoKCAwJOwgJCAIHCggQCg8BCAoaCQoLCA8CBwcDAgYCAYEBDAgBBgMHCAcEAQMEBgQKBQMEAgQBAwYHBQQHCQIHDwUGAwoKBgQDewULBQcDBAUDAgUBXgwIiAgMAQsIiAgLOQoPChInBwUbBwQDBgULAQMHBgUHICApBwYBBgYCSQgNCAYDBBoDAgIFBgoHBgICBgYFBgEBAgMTGQkFBgICAAAAAAIAAAAAAOEArQAqAFUAADc0Jg4BHQEUBisBNTQuAQYdASM1NC4BBh0BIyI9ATQuAQYdARQWOwEyNjUnNzYyHwEWMj8BFRQeATY9ATQmKwEiDgEWOwEHBiIvATEuASMiDwEGFBYy4QYGAwECGwMGBh4DBgYbAwMGBgsHcggKiRsBBAEXBhAFJwQGBQoIIgMEAQQEGiYBBAIWAwcECAYbAgQHQQQEAQQDFAEBFgMEAQQEFhYDBAEEBBYCFAMEAQQEFAcKCgc7GwEBFwYGJxsDBAEFAyMHCgQGBSYCAhYDAwUbAgYFAAEAAAAAAPoAtAAbAAA3FjsBBxc3JwcXIyIuATQ+ATsBNSMiDgIVFBZLDA5nKBFFRREoZwcMBwcMBwoKCxIOCA5UBycRRUQRJwcMDgwHGQgOEgsOFwAAAAABAAAAAADsALoAFwAANwYiLwEmNDYyHwE1NDYyFh0BNzYyFhQHnwQKBEkDBwoEMwgKBzQECgcDEgMDSQQKBwM0dAUHBwV0NAMHCgQAAQAAAAAA7AC6ABcAADcmND8BNjIWFA8BMzIWFAYrARcWFAYiJ0QDA0kECggENHQFBwcFdDQECAoEWwQKBEkDBwoEMwgKBzQECgcDAAEAAAAAAOwAugAXAAA3FhQPAQYiJjQ/ASMiJjQ2OwEnJjQ2MhfoAwNJBAoIBDR0BQcHBXQ0BAgKBG0ECgRJAwcKBDQHCggzBAoHAwABAAAAAADsALoAFwAANzYyHwEWFAYiLwEVFAYiJj0BBwYuATQ3jQQKBEkDBwoENAcKCDMECgcDtgMDSQQKBwM0dAUHBwV0NAQBBwoEAAAAAAEAAAAAAPoAnAAlAAA3IgYUFjsBBwYiJyYiDwEGFBYyPwE2MhcWMj8BFRQWMjY9ATQmI8QEBQUEGTYHFAcMIgwWAwUHAxYHFAcMIgw2BQcFDAicBgcFNwcHDAwYAgcGAxcICAwMOBoEBQUEIwkMAAADAAAAAAD2ALEAFQArAEgAADciBwYHBgcGHwEWFxY7ATI2PQE0JiMHMzIWHQEUBisBIicmLwEmND8BNjc2FyIGFB8BBwYUFjI/ARcWMjY0LwE3NjQmIg8BJyaDCwoFAyEGEBAnAgYJDEwQFhYQTEwICwsITAYFAwEmBAQnAQMFDwQGAwwMAwYIAgwNAgkFAwwMAwUJAg0MArAGAwQkBxQVKQQDBxYQTBAWEwsITAgLAwICKQUHBCwBAgMcBggDDAwDCAYDDAwDBggDDAwDCAYDDAwDAAUAAAAAAO4AvQA7AEsAVwBnAHcAADc0JyYnIiY9ATQ2OwEyNj0BNC8BJg8BBh0BFBY7ATIWHQEUBiMOAR0BFAYiBh0BBhY7ATI2PQE2JiImNScUBisBIiY9ATQ2OwEyFhUnND8BNh8BFhQrASIXNDY7ATIWHQEUBisBIiY1ByImPQE0NjsBMhYdARQGI+MHBAUDAwMDCQMEBEYDA0YEBAMJAwMDAwcJAwQDAQQDogMDAQQEAywEAgoCBAQCCgIEWAIyAwMyAgNoAxYEAgoCBAQCCgIEDwMEBANgAwQEAzMJBgQCBAMUAgQEAh0EAikBASkCBB0CBAQCFAMEAgwHCwIEAwIKAwQEAwoCAwQCJwMEBAMUAgQEAh8BAR0CAh0BBBwCBAQCFAMEBAMtBAMDAwQEAwMDBAAAAAMAAAAAAO4AxQAeACoAPQAANz4BMh4CFRQXFh8BHgEOASsBIi4BNj8BNjc2NTQ2BzMnJjU0JiIGFRQHFzYeAjI+Ah4BBw4BIiYnJjZqCRcYFxEKCwQEAgMCAgUDnAMFAgIDAgQECwoGdAIOGCQYDiQEBwMEBAQDBwcCAgMNDg0DAgKyCQkJEhYMJBUHBAICBgYEBAYGAgIEBxUkDBZnAhopERkZESkaJgICBQICBQIEBwQGBwcGBAcAAAAAAgAAAAAA4wDEADAAQAAANyIGDwEjIgYdARQWOwEHBh4BNj8BMxUUFjI2PQEzFx4BPgEvATMyNj0BNCYrAScuAQczMhYdARQGKwEiJj0BNDaWAwUBAyQLERELAQoBBAgHAQsRBggGEQsBBwgEAQoBCxERCyQDAQUzYAQFBQRgBAUFwwMEDBELQwwRIwQHAgQEKBwEBgYEHCgEBAIHBCMRDEMLEQwEAyYFBEMEBgYEQwQFAAAAAgAAAAAA4wDEAA8AHAAANyIGHQEUFj8BFxY2PQE0IwczMhYdAScmDwE1NDZwEhQIBT8/BAkmTEwLCDUEBDUJwxQSjwUFAhsbAgUFjyYTCAuAFwEBF4AKCQAAAAACAAAAAADuAJgADgAXAAA3IicjIiY0NjsBNjIWFAYnMjY0JiIGFBa6Fg83DxAQDzcQKh4eFRAWFiAWFjEPFR0VEB4qHg0WIBYWIBYAAgAAAAAA7gCYAA4AFwAANzIXMzIWFAYrAQYiJjQ2FyIGFBYyNjQmchYPNw8QEA83ECoeHhUQFhYgFhaXDxUdFRAeKh4NFiAWFiAWAAQAAAAAANkAxAAcAC8APQBGAAA3Ig4BFRQWHwEeAR0BFBYyNj0BNDY/AT4BNTQuAQcyFhUUBg8BBgcjJi8BLgE1NDYXIgYVFBYyNjQ2MjY0JgcyMxUUBiImNZYSHxIICQMFBBYgFgQFAwkIEh8SFBwGBgQKAigCCgQGBhwUDBEGCAUGCAYGFxMTCxALwxIeEg4TCwMGCAYTEBYWEBMGCAYDCxMOEh4SExwTCg0IBAsMDAsECA0KExwTEQsEBgYIBQYIBWkJCAsLCAAAAAMAAAAAAPsAsAAMABkAJwAANzQ2OwEyFhQGKwEiJhU0NjsBMhYUBisBIiYVNDY7ATIWFAYrASImNTIHBbAFBwcFrwYHBwWwBQcHBa8GBwcFsAUHBwWvBgejBQcHCwcHOQUICAoHBzkFBwcLBwcFAAACAAAAAADuAMAADwBNAAA3IyIGHQEGFjsBMjY9ATYmBwYiJzEmIyIGFBYfARYXFhQGDwEGKwEiJjU3JicmPwE2MhcWMzI2NCYvASYnJjQ2PwE2OwEyFhUHFhcWFAfekAcIAQkHkAcIAQkxAQIBCQwFBwYHAQwGBxAOAQECDAECAgsHAwMGAQIBCQ0GCAYIAgsFBhAMAQECDAECAgkHAQG/CQaYBgkJBpgGCUUBAQgECAQCAQQFBhUOAQgDAwEJAwcDAgcBAQkFCAQDAQQEBxUMAQgDAwEJAwcBAgEAAgAAAAAA+wDIAAwAIgAAMzI+ATQuASIOARQeATcWFA8BDgEmLwEmND8BNjIfATc2MheWGy4bGy42LhsbLlcDA0AGBgYGIAMDBgIHAxo6AggCGy42LhsbLjYuG4oCBwNABgQEBiECBwIHAgIbOgMDAAEAAAAAAPQAqgAVAAA3FhQPAQ4BJi8BJjQ/ATYyHwE3NjIX8AQEXwoJCAowBAQJBAoEJ1cDCwSdBAoEXwoFBQowBAoECQQEJ1YEBAABAAAAAADuAJYAEQAANzYyHwE3NjIWFA8BBiIvASY0QgQKBEJCBAoHA0sECgRLA5IEBEJCBAcLA0sEBEsDCwAAAQAAAAAAyAC8ABEAADcWFA8BFxYUBiIvASY0PwE2MsQEBEJCBAcLA0sEBEsDC7gECgRCQgQKBwNLBAoESwMAAAEAAAAAAMgAvAARAAA3JjQ/AScmNDYyHwEWFA8BBiJoBARCQgQHCwNLBARLAwsQBAoEQkIECgcDSwQKBEsDAAABAAAAAADuAJYAEQAANwYiLwEHBiImND8BNjIfARYU6gQKBEJCBAoHA0sECgRLAzYEBEJCBAcLA0sEBEsDCwAAAgAAAAAA7gC8AG8A3wAAPwE+AS4BDwEnNz4BLgEPASc3NjQmIg8BJyYiDwEnLgEOAR8BBycuAQ4BHwEHJyYiBhQfAQcGFB8BBw4BHgE/ARcHDgEeAT8BFwcGFBYyPwEXFjI/ARceAT4BLwE3Fx4BPgEvATcXFjI2NC8BNzY0Jw8BJy4BDgEfAQcnJiIGFB8BBycuAQ4BHwEHBiIvATc+AS4BDwEnNzY0JiIPASc3NjQuAQ8BJyY0PwEXHgE2NC8BNxcWMjY0LwE3FxYyPgEvATc2Mh8BBw4BFjI/ARcHBhQWMj8BFwcOAR4BPwEXFhTeDQIBAwYCDQoMAgEDBQIOCg0CAwUCDg0GDgYJCwEFBAECCwoKAgUEAQILCgoCBQQBCw0FBQoNAgEDBgINCgwCAQMFAg4KDQIDBQIODQYOBgkLAQUEAQILCgoCBQQBAgsKCgIFBAELDQUFCQwGAgUEAQIHCgYCBQQBBwoGAQUEAQIHCwIEAgwHAgEDBQIJCggCAwUCCQoIAgMFAgkKAgIMBgIFBAEHCgYBBgQBBwkHAQUEAQIHCwIEAgwHAgEDBQIJCggCAwUCCQoIAgEEBQIJCgJ6CwEFBAECCwoKAgUEAQILCgoCBQQBCw0FBQoNAgEDBgINCgwCAQMFAg4KDQIDBQIODQYOBgkLAQUEAQILCgoCBQQBAgsKCgIFBAELDQUFCg0CAQMGAg0KDAIBAwUCDgoNAgMFAg4NBg4GEQwHAgEDBQIJCggCAwUCCQoIAgEEBQIJCgICDAYCBQQBAgcKBgIFBAEHCgYBBQQBAgcLAgQCDAcCAQMFAgkKCAIDBQIJCggCAwUCCQoCAgwGAgUEAQcKBgEGBAEHCQcBBQQBAgcLAgQAAwAAAAAA8QDEADcASQBZAAA3IgYdASMiBgcnIgYUFjsBFSMiBhQWOwEVIyIGFBY7ARUjIgYUFjsBFBY7ATI2PQEzMjY9ATQmIxUyFh0BFAYrATU0JisBNTQ2MwczMhYdARQGKwEiJj0BNDaRDBAKBxAECwQFBQQKCgQFBQQKCgQFBQQKCgQFBQQKEAxDDBAKDBAQDAQFBQQKEAwmBQQmQwQFBQRDBAUFxBEMCgoKAQYIBQoFCAYJBggFCgUIBgwREQwKEQtgDBEUBQRfBAZCDBEKBAUmBgRfBAUFBF8EBgADAAAAAADUALIACAAaADUAADcyNjQmIgYUFhcWFAcGIicmND8BNhcWMjc2FzcWFA8BBicmIyIGFRQXFg8BBiInJjU0PgEzMqYKDg4UDg42AQITLxQCAhEDAwoVCQMDEQIBEgMDCQsSGQQCAhICBAENFSMVGEwOFA4OFA4hAgQBDQ0BBAISAgIEBAICZwEEAhICAgQZEgoKAwMRAgIUFxUjFQAAAAIAAAAAAO4AvAAMACgAADciDgEUHgE+Ai4CFxYUBiIvAQcGIiY0PwEnJjQ2Mh8BNzYyFhQPAZYYKBgYKDAoGAEXKAoDBggDFBQDCAYDFBQDBggDFBQDCAYDFLwYKDAoGAEXKDAoGGwDCAYDFBQDBggDFBQDCAYDFBQDBggDFAAAAQAAAAAA4QCvABwAADc2Mh8BNzYyFhQPARcWFAYiLwEHBiImND8BJyY0TwMLAzY2AwsHBDU1BAcLAzY2AwsHBDU1BKsEBDU1BAcLAzY2AwsHBDU1BAcLAzY2AwsAAAAAAgAAAAAA9gCxADcAQgAANyIGBw4BFRQWOwEyNjQmKwEiJjU0Njc2Nz4BMhYdARQWFx4BFAYrASIGFBY7ATI2NTQmJzU0LgEPATMVFBYyNj0BM5YXJQUOEB4UBwQFBQQHDBMMCgYBAhslHQQDCQwQDAoEBQUEChMcEAwSHxIdEwYIBhOwHRgFGRAVIAUIBhQOCxADAgYTFxwTCwMFAQINEg4GCAUZEg0VBQQRHxI5HTkEBQUEOQAAAAIAAAAAAOwAugAhAE0AADciBh0BDgEVFBYzMjcPAQYWOwEyNi8BFjMyNjU0Jic1NCYHMhYVBwYWNzMyFhQGIyIuAgYVBhcjNj0BNCYGBwYjIiY0NjsBFjYvATQ2lhQcEBYcFAMEAgQDBgU6BQUCBgMEFBwWEBwUDBECAQYFAQwREQwDBgUIBgEGHgUGCAMEBwwREQwBBQYBAhG6HBQBAxoSExwBBQsFCQoEEAEcExIaAwEUHBMRDAcFCAERFxEDBgEGBA0QDgsEBAYBAwYRFxEBCAUHDBEAAAYAAAAAAO4AvAAwADkAQgBLAE8AWQAANyM1MzI2NCYjIgYHBh0BIzU0JiIHBhQWOwEVIyIGBwYVFBYyNj0BMxUUFxYXPgE0Jic0NjIWFAYrAQcUBiImNDY7ASciJjQ2MhYdARcjNTMXIiY9ATMyFhQGyAsLDxcVEQkPBgcaFiALCRUQCwsJEAUHFR8WGgkLEQ8XFxoGCgYGBQtOBgoGBgULCwUGBgoGNBoaJQUGCwUGBlcaFR8WBwcKDQsLEBYNCx0WGggHCgwPFxYQCwsOCg0BARUgFT8FBgYKBlkFBgYKBk4GCgYGBQs0GkoGBQsGCgYAAAALAAAAAADuAKoAEAAiAC8AQABIAFUAZgCCAIYAlQChAAA3JyYiBhQfAQcGFBYyPwE2NCcmIg8BBhQfARYyNjQvATc2NDcmBg8BBh4BNj8BNiYXNzY0LwEmIgYUHwEHBhQWMicWMj8BNjQnMScmIgYUHwEHMQYUFyc2NCYiDwEGFB8BFjI2NC8BFzgBMSc3NjQmIgc4ATEHOAExBhQXOAExFxYyNzUWFAc3MTYuAQYPATkBFB4BNjcXDgEuAT8BPgEeAQfqIQMJBgMZGQMGCQMhBHwDCQMhBAQhAwkGAxkZAzUECQEhAQQICAIhAQQbIQQEIQMJBgMZGQMGCQoCBwIhAgIhAgYFAhsbAgJKAwYJAyEEBCEDCQYDGRcbGwIEBwIhAgIhAgcCAgI+AQMGBgEhAgYGAQMCCAgEASEBCQgEAWsgAwYJAxgZAwkGAyADCSMDAyADCQMgAwYJAxkYAwkgAgQEdQQIAwQDdQUIayADCQMgAwYJAxgZAwkGBQICIAMGAiACBAcCGhsCBgM+AwkGAyADCQMgAwYJAxkbGxoDBgQCIAIGAyACAgsCBgNdAwYCAgN1AwUCAgMCAwQDCAR1BAQDCAUAAAADAAAAAAD2AMQAOQBEAEoAADciDwEOAQcjIgYdARQWFyMiBhQWOwEyNjQmKwE+ATUyNjQmKwE+AT8BNjQmIg8BDgEHIz4BPwE2NCYHMjMVFAYrASImNTcyFhQGI3kEAgYIBgEeBAUSDw4EBgYEcgQGBgQODxIQFhYQLwEDBAgDBggDBgcHARwBAwMIAwU0OTkdFBAUHYUICwsIwwIGBg0LBQRCEh8JBggFBQgGCR8RFiAWBgYDBwMIBQIGBQ4LBgYDBwMIBTk4FB0dFDgLEAsABAAA//MBBwDVAGgA+AEBAQoAADciBh0BFAYPAQYmLwErAQ8CHwEeAQ4BByMiBhQWOwEyHgEGDwEdAR8CPwE+AR4BFxUUFjI2PQE0PgEWHwE7AT8CLwEuAT4BOwEyNjQmKwEiJi8BJjY/AT0BLwIPAQ4BLgE9ATQmJz4BFh0BFBYXMToBNTc4ATE+ATIeAhQGBzgBMQcUBhcVFzI7ATIWFAYrASIGBzEcATMXHgEUBgcnFw4BIiYvASImBzEiBh0BFAYiJj0BNCYjJyoBFQc4ATEOASIuAjQ2NzgBMTc0NicxNCYrASImNDY7ATI2NTc8ASMnLgE0PgIyFh8BMhY3Mzc0PQE0FyIGFBYyNjQmBzQ2MhYUBiImlgMECQcDBg8GAwMCAwEBAQIGAgYNCAEDBAQDAggNBgMFAwICAwMDBg8PCQEEBgQJDhAGAwMCAwEBAQIGAgYNCAEDBAQDAggNAwECAwUDAgIDAwMGDw8JBBgJGBIBAQEDAQQLDAsIBQUEAQEBAQEBAgwSEgwBAQIBAQEEBAQECAgFCgwLBAEBAgEBAhEZEQEBAQEDAQQLDAsIBQUEAQEBAgECDBERDAEBAgEBAQQEBAkKDAsEAQECAQIBHgcJCQ4JCS4XIBcXIBe+BAMCCA0DAQIDBQMCAgMDAwYPDwkBBAYECQ4QBgMDAgMBAQECBgIGDQgBAwQEAwIIDQYDBQMCAgMDAwYPDwkEBgQJBwMGDwYDAwIDAQEBAgYCBg0IAQMEDggBEgwBAQIBAQEEBAQJCgwLBAEBAgECARIYEgEBAQMBBAsMCwQICAQFBQQBAQECAQIMEREMAQECAQEBBAQECQoMCwQBAQIBAQIRGREBAQEBAwEECwwLCAUFBAEBAQEBAQIMTwkOCQkOCRAQFxcgFxcAAAAAAgAAAAAA1QDIABEAIwAANzYyHwE3NjIWFA8BBiIvASY0NwYiLwEHBiImND8BNjIfARYUWwQKBCkpBAoHAzIECgQyA3kECgQpKQQKBwMyBAoEMgNHBAQpKQQHCwMyBAQyAws9BAQpKQQHCwMyBAQyAwsAAAABAAAAAADVAMgAKgAANwYiLwEVNzYyFhQPAQYiLwEmNDYyHwE1BwYiJjQ/ATUzNzYyHwEzFRcWFNEECgQcHAQKBwMyBAoEMgMHCgQdHQQKBwMvAQIECgQCAi4DgQQEHHIcBAcLAzIEBDIDCwcEHHIcBAcLAy8BAgQEAgEvAwsAAAQAAAAAAPYAxAAMABkAJwArAAA3Ig4BFB4BMj4BNC4BBzIeARQOASIuATQ+ARcHBg8BBhY/ATY/ATYmDwI3lhosGRksNCwZGSwaFSMUFCMqIxQUIzg5BAITAggGOQQCEwIIEgsjC8MZLDQsGRksNCwZExQjKiMUFCMqIxQdEwIEOQYIAhMCBDkGCBojCyMAAAQAAAAAAPoAxgArADUAUQBbAAA3JyYiBhQXBwYUHwEHBhQWMj8BFxYyPwEWMjY0LwE3NjQmIg8BJzc2NCYiDwEXBwYiLwEmND8BJyYiDwEmIgYUHwEWMjY0Jzc2NC8BNzY0JiIPASc3NjIfARYUB3IMAgYEAiIHBwoQAgQGAg8KBxEGIwIGBAIKDQIEBgINEg0CBAYCGSgjAgYCHQMDmwoHEQYjAgYEAjwCBgQCIgcHChACBAYCKCgjAgYCHQMDZgwCBAYCIwYRBgoQAgUEAg8KBgYjAgQFAgoNAgYEAg0SDQIGBAIVKCICAh0DBQJ5CgYGIwIEBQI8AgQGAiMGEQYKEAIFBAJZKCICAh0DBQIAAwAAAAAA+gDIAA8AHwBDAAA3IyIGHQEUFjsBMjY9ATQmBxQGKwEiJj0BNDY7ATIWFTcjIgYdARQWMjY9ATQ2OwEyFh0BFAYrASIGFBY7ATI2PQE0JptJDRMTDUkNExMCBgVJBQYGBUkFBjRJDRMGCQYGBUkFBgYFCgQHBwQKDRMTiRMNSQ0TEw1JDRNpBQYGBUkFBgYFXxMNCgQHBwQKBQYGBUkFBgYJBhMNSQ0TAAACAAAAAAEUALUACQATAAAlIyIGHQEzNTQmFyMVFBY7ATI2NQEG4AUI+ggI+ggF4AUItAgFEhIFCC9kBQgIBQAABAAAAAAA4wDEABQAJQAzAEMAADciBgcGHQEUFx4BMjY3Nj0BNCcuAQcyFx4BFAYHBiInLgE0Njc2BxYyNxUUBgcGIicuATUVHgEzMjcVFAYHBiInLgE1lhsnBwMDBig2JggDAQYpHBkSBwcHBxIyEgcHBwcSIBVIFQcHEjISBwcKHhEiFwcHEjISBwfDDwwFBnIGBQwPDgwFB3IFAw4QEwgCBwQGAwgIAwYEBwIILQwMHwIGAwgIAwYCGgYGDB8CBwIICAIHAgACAAAAAADjAMQAEAAhAAA3Ig8BBhQfARYyPwE2NC8BJgcyHwEWFA8BBiIvASY0PwE2lg0JLggILgkaCS4ICC4JDQQDLgQELgMIAy4EBC4Dwws8ChwKPAsLPAocCjwLEwQ8BQ8FOwQEOwUPBTwEAAAAAwAAAAAA+gDJAAwAGQBVAAA3Ig4BFB4BMj4BNC4BByIuATQ+ATIeARQOAScjIiY+ATsBMh4BOwEyNS4BJzU0KwEiHQEOAR4BOwEyFg4BKwEiLgErASIGFR4BFxUUOwEyPQE+ATc2JpYbLhsbLjYuGxsuGxYlFRUlLCUVFSUSCAUHAQcECwIFAQEMAgEMCQIMAgsOAxALBwUHAQcECwIFAQEMAQEBDAkCDAIJDgEBEcgbLjYuGxsuNi4btBUlLCUVFSUsJRVYCAkGBAQCCQwBCwICCwIRFg4ICQYEBAEBCQwBCwICDAEOCQwSAAADAAAAAADuAHcACAARABoAADcyFhQGIiY0NjMyFhQGIiY0Nhc0JiIGFBYyNlEHCwsPCgpNCAoKEAoKYAsPCwsPC3cLEAsLEAsLEAsLEAsTCAsLEAsLAAAAAwAAAAAAqQC8AAgAEQAbAAA3FAYiJjQ2MhYVFAYiJjQ2MhYHMjY0JiIGFBYzqQsQCwsQCwsQCwsQCxMICwsQCwsIqQcLCw8LC00ICgoQCgpfCg8LCw8LAAUAAAAAARMAvAAPABMAUABcAGgAADcjIiY9ATQ2OwEyFh0BFAYnMzUjFzY0LwEmIgcGHwEjIiY9ATQ2OwEHBhQWMj8BNjQvASYGBwYfASMiBh0BIyIGFBY7ARUUFjsBBwYUFjI3FCcjIiY0NjsBMhYUBgcjIiY0NjsBMhYUBquMAgQEAowCBASHfn7rAQEVAgUCBAULDwgMDAgPCwIEBQEVAgIVAgUCBAULDw4TEQIEBAIREw4PCwIEBQF0RgIEBAJGAgQEAkYCBAQCRgIEBBgEAowCBAQCjAIEDX6BAQYCFQECBgMJDAhFCAwJAgUEAhMCBgIVAgECBQQJEw4cBAQFGw4TCQIFBAEBaAQFBAQFBC8EBQQEBQQAAAAABgAAAAAA7AC6ABgAIQA6AEMAXABlAAA3IgYHIyIGFBY7AR4BMjY3MzI2NCYrAS4BBzIWFAYiJjQ2ByIGByMiBhQWMzceATI2NzMyNjQmKwEuAQcyFhQGIiY0NhciBgcjIgYUFjsBHgEyNjczMjY0JisBLgEHMhYUBiImNDazCg8CTgQGBgROAw4TDgQUBAYGBBQEDgkEBQUIBgY2CQ8CFQQGBgQVAg8SDwNOBAYGBE4DDwkEBgYIBQU+CQ8DTgQGBgROAw8SDgQUBAYGBBQEDgkEBQUIBga6CwgGCAUJCgoJBQgGCAsTBggFBQgGJgsIBggGAQkLCwgGCAYICxMGCAYGCAYnCgkFCAYICwsIBggFCQoTBQgGBggFAAADAAAAAADuALwADQAWACIAADciDgEeAjI+AS4CIxUiJjQ2MhYUBjcUBiImPQE0NjIWFZYYKBgBFygwKBgBFygYBQcHCgcHBwcKBwcKB7wYKDAoFxcoMCgXiQcLBwcLBzIFBwcFJQYHBwYAAAAEAAAAAAEXALsAEgAfAC0ANwAANy4BLwEmNzY3NhYXFhcWBwYHBiceATI3NjcmJyYGBwY3IisBJgYHBh4BPgEuAQceAQ4BLgE3NheTKEASAQIDFCAjSiQgFQQEDyIrhxAzPyUZDBIbHTscGloBAQENGAQHEB4eDAYTDQoEBw8OAwUICw8BKCQBBQYiFxkBGBYiBgYYGR5UHCEbExAbEhMBExIPAQ4LDyEJDxkXEBQCDQ4HCA8FCQEAAwAAAAABAQCwAAwAGQAnAAA3NDY7ATIWFAYrASImFzQ2OwEyFhQGKwEiJhc0NjsBMhYUBisBIiY1LAcFvAUHBwW8BQcfBwV+BQcHBX0GBx8IBT4FCAgFPgUIowUHBwsHBzkFCAgKBwc5BQcHCwcHBQAAAAADAAAAAADjALYAGwAlADMAADcmLwE1MzI2NCYrASIGFBY7ARUHBgcGFjsBMjYnNj0BMxUUHwEjBzQ/ATMXHgEOASsBIibhAQcjAwQHBwRGBAYGBAMjBwEBFBBRDxRaAxYDCzIcAglUCQIBAwcDUQYHOQsILCgGCQYGCQYoLAgLDxcXQgUFKioFBQ0pBAQLCwMIBwQIAAAAAAMAAAAAAOwAugAWAC4AOgAANyIGHQEUFjsBMjY9ATQmKwEiJicuASMHMzIWHwEjIgYUFjsBFRQGKwEiJj0BNDYXIgYUFjsBMjY0JiNdDBEXD2APFwYELwYFBQYODCYmBQYEAyUEBgYEaQwHYAcMBioEBgYEJgQGBgS6EQxpDxcXD1YEBgUIDgsTBQkFBggFTQcMDAdpBAZNBQgGBggFAAADAAAAAADsALoAFgAuAEsAADciBh0BFBY7ATI2PQE0JisBIiYnLgEjBzMyFh8BIyIGFBY7ARUUBisBIiY9ATQ2FyIGHQEjIgYUFjsBFRQWMjY9ATMyNjQmKwE1NCZdDBEXD2APFwYELwYFBQYODCYmBQYEAyUEBgYEaQwHYAcMBj0EBgkEBgYECQYIBgkEBgYECQa6EQxpDxcXD1YEBgUIDgsTBQkFBggFTQcMDAdpBAY5BgQKBQgGCQQGBgQJBggFCgQGAAAAAAIAAAAAAOwAugAWAC4AADciBh0BFBY7ATI2PQE0JisBIiYnLgEjBzMyFh8BIyIGFBY7ARUUBisBIiY9ATQ2XQwRFw9gDxcGBC8GBQUGDgwmJgUGBAMlBAYGBGkMB2AHDAa6EQxpDxcXD1YEBgUIDgsTBQkFBggFTQcMDAdpBAYAAwAAAAAA7gC8AA8AHwAvAAA3IgYdARQWOwEyNjc1LgEjBzMyFh0BFAYrASImPQE0Nhc0NjsBMhYdARQGKwEiJjVYCw4OC30KDgEBDgpYMggMDAgyCAwMAwMCMgIDAwIyAgO8Dwp9Cw4OCn4KDysMCDIIDAwIMggMFAIDAwIyAgMDAgAAAQAAAAAA7wC8AEIAADciDgEVFBYXND0BIyIvASYnJjYzFhceATI3NjcuATU0NyY1JjcyFxYXNjIXNjc2MxYVFAcWFRQGBx4BFQc+ATU0LgGWGCkYJh0LCgQDAwUCAgIGBgIFCwYECBYWCgIBBAgIBAMKFwoDBQcJAwMKFhUFCQEbIRgpvBgpGB8wCAIDDwcGCgMBAwIIAwIBCgQCFBANCwcHCQMEAwMDBAQDBAMJBwcLDQ8VAgMPBxYJLh0YKRgAAwAAAAAA9gCLAC0ANgA/AAA3IgYHIyIGFBY7AR4BMzI2NTQ2MhYVFBYzMjY3MzI2NCYjBy4BIyIGByYiBy4BBzIWFAYiJjQ2MzIWFAYiJjQ2Zg0UBAEEBQUEAgMUDRAWBggGFhANFAQBBAUFBAEEFA0KEAUHFAcFEAoICwsPDAxnBwwMDwsLihAMBggGDBAWEAQGBgQQFhAMBggGAQ0QCAcGBgcIEwsQCwsQCwsQCwsQCwAABwAAAAAA9gDEAAwAEwAZAB8AJQArADEAADciDgEUHgEyPgE0LgEHMhYXBz4BBwYHIz4BNx4BFycmBzcWFy4BNzMOASImPwEOAQc2lhosGRksNCwZGSwaChEBOAERGAwBHQIYVBEWAx0Beh0CCxEWLDkBERQRSh0DFhEMwxksNCwZGSw0LBkTJxsBHCcHGCMSIAgIHxQBITUBJRcJIBIbJycbARMgCBkAAQAAAAAA7gC8ABsAADcmPgEzMhcHJiMiBhQWMzI2NyM1MxUUDgEiLgE/ARgoGB4XFA8SFiAgFhIcBjRYGCgwKBdkGCgYExoLICwgFRAiERgoFxcoAAAAAAQAAAAAAOwAxQAjADcAQwBTAAA3Jg8BBhYfAQcGFBcVFjI/ARY+Aic3NjQnNSYiDwEnJi8BJgceARcWHwEeAQcOASc+AScuAQcnNzIXMxYUDwEmJzc2BzYWFRQPAQYiJyMmND8BNqIFBDkEAgQbNAkJCRgJLg0bFAgKCAkJCRgJBQIDBAICCwIGBwgICwYDAQMRCgYBCgcSCBZYBAMBAwMJCQYIBDQFCAE8AwkDAQMEOgLDAQQ5AwoCDTQIGQgBCAguBgMSHQ4JCBkIAQgJBQMHCQgFGgYNCQwHCgUJBQoKAggWCgcCAwsaAwMJAwkJBwgDNgEHBQMCPAMDAwkDOgIAAAAAAgAAAAAA6wC4ABsAHwAANwcjNyMHIxUzByMVMwczNzMHMzczNSM3MzUjNwcjNzO7BTYFEgUsKgYkIgUSBTYFEgUsKgYkIgUfNgY2uCcnJxI2EicnJycSNhInbzYAAAAAAgAAAAAA7AC6ABgAMgAANyIGFRQWFx4BFzM+ATc+ATU0JiMiBgcuAQcyFhUUFjY1NDYyFhQGBw4BBzEuAScuATQ2cBQcExUUEAkDCRATFRMcFAwUBgYUDAwQCgoQGBESEw8MAwMMDxMSEbocFBAlHRoPAQEQGR0lEBQcCwgICxMRDAYFBQYMEREYIRkVDQEBDRUZIRgRAAACAAAAAAD3AMgANwBFAAA3NT4BPQE0JisBIgYdARQWFxUGByc2NTQuAQ4CHgEyNxcGFBcHJiMiBhQWMjY1NCc3HgE+AS4BByIuAjQ+AjMyFhQGyAUGCwcBBwsGBQ4LQAEHDAwJAgUKDARACQkTAgMHCQkOCgETDSAcDAYYFwYKBwUFBwoGCg8PhhcCCQUBBwsLBwEFCQIXAgkyAwIGCwQCCQwLBwMyDSANEwEKDgoKBwMCEwoBER0gFksECAkLCgcEDxYPAAAAAAQAAAAAAOwAugAPACQALQBOAAA3IgYdARQWOwEyNj0BNCYjBzMyFh0BJiMxIgYHJy4BIyIHNTQ2FyIGFBYyNjQmBzIWFxYfAR4BPwE2NzYyFxYfARUUBisBIiY9ATc2Nz4BZg8XFw9gDxcXD2BgBwwMDAgRBgcJEgsREQxdBAUFCAYGSwQMBgQEBAIMAwIDBAoMCgMDAgwHYAcMAwUEBgu6Fw9gDxcXD2APFxMMBzsLCwgOEBIZLAcMEwYIBQUIBiYNCwgLCAYBBQQFBAsLBAUCBwcMDAcIBwwHCw0AAAAABAAAAAAA7gC8AB0AKQA6AEsAADcUBiImNTQ2MhYUBwYHFRQGIiY9ATQ2MzI2NCYiBhciJjQ2OwEyFhQGIwcyPgI0LgIiDgIUHgI3DgEuAzQ+AjIeAwaGBAYEEhgSCQYIBAYEBAMHCQkOCQ8DBAQDAgMEBAMBDxsUDAwUGx4bFAwMFBtNDCAkIBgNDRggJCAYDQEOdAMEBAMMEhIZCAYCAwMEBAMJAwQJDgkJRQQGBAQGBBwMFBseGxQMDBQbHhsUDAwMDgENGCAkIBgODhggJCAAAAABAAAAAADVAMkAMQAANwcGDwEGHgE2PwEzBxQGKwEiJi8BMzI2NCYrASIGFRceATsBMjY/ATQmKwE/AT4BLgHHHQUBEgIEBwcBBQ8IBwMpAwYBBhIEBgYEFAgKBwERCykLEQEJCggLBxgEBAMHxwkCBDkEBwIDBAxpAwYGA2kGCAULB2sLEBALawcLFggBBwcEAAAAAwAAAAAA9gCeABcALQA2AAA3IgYUFjMyNjczFxY7ATI2PQE0JisBLgEHMhYXFjsBFSMnJisBIgcOASMiJjQ2FyIGFBYyNjQmcBghIRgPGggfBwIGHQQFBQRLBxsPCxMFAgZHDQcCBisGAgUTCxAWFhAEBgYIBgadITAhDw0NBgYEOQQGDQ8TDAsFJw4FBQsMFiAWHAYIBgYIBgAABAAAAAAA+gCRAAoADwA/AEQAADcOAR4BMj4BLgEiBxUzNSMXFSMGLgInJiMiDgEPATUjFTM3Njc2MzIeARcWMxY3NhUXMyc3PgE1IwcGDwE1IwcVMzUjUgICAgUDBQIBBQUiDw+NAQMGAgEBBA0GCg0GAg8OAgUIDAkDAgEBBA0REQUMERQDBAsQAwkMAw5wDw+PAQcEAwMEBwIsK1clJAIBAx4DDgUNCgQfPgQMDBMGGwMMARAFARIfBQUUAQURDQM/OB8+AAAEAAAAAAEUALUADwAdACsAMwAANzMyFh0BFAYrASImPQE0NhcyPgE0LgEiBx4BBgcWJyIOARQeATI3LgE2NyYXDgEWFz4BJibgBQgIBeAFCAigEyATEyAoERENDRERQRMgEhIgKBERDQ0RERYQDAwQEAwMtAwHgAUICAWGBQiWEx8mHxMMDisrDgyKEx8mHxMMDisrDgwTDCYmDAwmJgAAAgAAAAABQACpAAgAEQAANxc3JwcXIxUzLwEHFzcnMzUj5BdFRRceREShF0VFFx5ERDcXREQXHSA9F0REFx0gAAMAAAAAANkAxAAWABoAIwAANwcOAR0BJiMiBhQWMjY9ATc+AT0BNCYHFwc1BzIWFAYiJjQ2zjkEBQgLDxcXHxcxAwUHDQEmJwgLCw8MDMMJAQUEZAUWIBYWEFcIAQUEJgQGFhIHE2oLEAsLEAsAAAAEAAAAAAD2AJ4AFwAgACkANQAANyIGBycuASMiBhQWMzI2PwEeATMyNjQmBzIWFAYiJjQ2BzIWFAYiJjQ2MyIGFBY7ATI2NCYjvBUgAxYDDwkLERELCQ8DFgMgFRghIRgQFhYgFhZZBAYGCAUFZAQGBgQTBAUFBJ0bFQEICxEYEQsIARUbITAhExYgFhYgFhwGCAYGCAYGCAYGCAYAAAAABAAAAAAA9gCeABcAIAA9AEYAADciBgcjLgEjIgYUFjMyNjczHgEzMjY0JgcyFhQGIiY0NhciBh0BIyIGFBY7ARUUFjI2PQEzMjY0JisBNTQmBzIWFAYiJjQ2vBUgAxYDDwkLERELCQ8DFgMgFRghIRgQFhYgFhYQAwUDAwUFAwMFBgUDAwUFAwMFbAQGBggFBZ0bFAgLERgRCwgUGyEwIRMWIBYWIBYTBQMDBQYFAwMFBQMDBQYFAwMFCQYIBgYIBgAAAAYAAP/5APoAzwAWAB8AJwA3AD0ASwAANxUUFh8BFjI/AT4BPQE0LwEmIg8BBhU3MDEXBwYvATcHJj0BHwEVJzcUDwE1PwEVFBYyNj0BNxUnNh8BBycHJyYOARYfARYzMjYmJzIIBkkGDgZJBggEVAUOBVQENkkWBQVDGh8FRQREnwVEBB0FBwUXVgQERBpICREDBwQCBBECAgYEAgSaXggNAygDAygDDQheBQIrAwMrAgUNJgwCAiUNdAMGTyUCViUJBgMlVgIPFQQFBQQfDE+AAgIiDiVVCgECBgcCCQEIBwEAAAIAAAAAAPYAtgAdADwAADcmBw4BBwYVFBY7ARceAT8BFhcWMzI2NzY/ATYuAQcUFQcGBw4BIi8BJiIPASc3PgEuAQ8BIyImNDc+ATfnBgcUeAcQDgoZCQEIAxsWBAkLCA4EAgkJAgIICgEEBgcECgQkAwYDDgU7BAMDBwRBIAICBAd3E7QCAgYnAwcPCg4qBAMCDBUEBwkIBTI5DAsIEQEBCRwkJwoDIwMCDBkZAgcHAwEcAwUCAyYFAAAACwAAAAABFAC1AAgAEQAhADcATABgAHYAiwCYAKQArwAANyYiBhQWMjY0JyYiBhQWMjY0NyMiBh0BFBY7ATI2PQE0JgciKwEHIhUHFCsBJzU3NjsBMhYVFAY3BxQrASI9AQ4BIyImNDYyFzQ7AhcjIjQ3JzU7ATIVFzc2OwIVBxQ3MCsBByIVBxQrASc1NzQ7ATIWFRQGNwcGKwEiPQEOASMiJjQ2Mhc0OwI3BwYrASc1NzQ7ATIVByYrASIVBzMyNjU0JyYrASIVBzMyPgHhAgcFAwcFeQIGBgQHBZbWCAoKCNYICgrJAQECAwECAggBBgECEAcICi8FAgcBAgYDBggLDwMBCAEOCAEJCQEIAgULAQEIARswAgIDAQIBCQEHAhEGCAovBAECBwECBgMGBwoPAwEIAhIGAQIHAQcBCAFFAQEGAQIDBQV5AgQCAQIDBAUBaAEFBwMFBwIBBQcDBQdOCgd+BwoKB34HClIBAQwCAQErAgYGCQoOHAICAgIDCA4LBAMqAwsbAQEQEAEBKAEbAQEMAgEBKwIGBgkKDhwCAgICAwgOCwQDDisCAQErAgIJAQELAwUCAQEBCwIIAAIAAAAAAPsAygAOABoAADcwLwEHBh0BFBY7ATI/Ai8BJicmDwEXNzY00AEwawIDAi4BAmsjGgYCAggGGjQYBHEBL2sCAi0CAwJrNxkHAgEDBBo0GAQMAAAFAAAAAADXAKUACwASAB4AJQAyAAA3Mj4BLgIOARUUFjcyFgYmNDYXIg4BHgI+ATU0JgciJjYWFAY3JiIPAQYUFjI/ATY0dAcMBgMKDw0IDgoFBAcKBEgHDAYDCg8NCA4KBQQHCgQYAgcCcQMFBwJxA24IDg4LAgUMCAoOIAoHBAkENAgODgsCBQwICg4gCgcECQRoAwNxAgcFA3ECBwAAAwAAAAAA9QDDACIAKwAxAAA3Ig8BJyYiBhQfAQcGDwEGHwEWPwE2PwEXFjI2NC8BNzY0JgcyFhQPASc3NgcXDwEnN9AQCikCAwgGAwdAAQEKAgQKBAYcAwFBBwMIBgMDKQoUEAcKBSkYKQU3Dz8UAgfCCikDAwYIAwdBAQMcBgQKBAIKAQFBCAMGCAMCKQsfFBMJDwUpGSgFQA8/BwIUAAIAAAAAAOsAtwAcADwAADcvATQmBg8CIgYWHwEHBhcWPwEXFjc0NSc3NiYHNTMVMzUzFTM1MxUzNTQmKwE1NCYrASIGHQEjIgYdAbERBwMCAQcQAgIBAQwDAQMBAg4PAwIEDQIDWxwVHBUcFQkHIQkHJgcJIQcJogIQAQEBARACAgIBDBADAQEBCQkCAwECEAwCA5AeHkJCJiYsBwkLBwkJBxMKBiQAAAIAAAAAANkAxAAwADsAADciBh0BIyIGHQEUFjsBFRQGKwEiBhQWOwEyNj0BMzI2PQE0JisBNTQmIgYdASM1NCYHMjMVFAYrASImNXAEBgkEBhcPEwgGGAQFBQQYDhQTDxcGBAkGCAU6BQ4wMAwHOgcMwwUEHQUEMBAWGAYIBggFEw4YFhAwBAUdBAUFBB0dBAU5JggLCwgAAgAAAAAAyACvABsAKAAANzU0JiIGHQEjIgYUFjsBFRQWMjY3NTMyNjQmIxcUBisBIiY0NjsBMhajCAoHGQYHBwUaBwoHARkFBwcFDAcFSwYHBwVMBQeKGQUHBwUZCAoHGQYHBwYZBwoIZAYHBwsHBwAAAAADAAAAAADuALwADAAZADUAADciDgIeATI+ATQuAQciLgE0PgEyHgEUDgE3IzU0JiIGHQEjIgYUFjsBFRQWMjY9ATMyNjQmlhgoFwEYKDAoGBgoGBMhExMhJiETEyEQGwQIBBkEBQUEGQQIBBsDBQW8GCgwKBcXKDAoF54TISYhExMhJiETTBwEBQUEHAQHBRkEBQUEGQUHBAAAAAAHAAAAAADsALwAIgAnACsANAA9AEEARQAANzU2PQE0Jic2LgIiBgcuASIOAhcOAR0BFBcVFBY7ARY2JzMVIzU7ARUjNzIWFAYrATQ2IzIWFSMiJjQ2BzUzFTczFSPjCQsJAwIKDhMSBgYSEw4KAgMJCwkNCmwKDW8XNEo0NBcFBwcFFw47CQ4XBQcHDysWKysiMQcKFggMAQgQDQcHBwcHBw0QCAEMCBYKBzEJDAENYRYWFkIHCQYJDQ0JBgkHhCwsLCwAAgAAAAAA4gDIAA8AHwAAPwEnJjQ2Mh8BNycmIgYUFzcmIgYUHwEHJyYiBhQfATeXESwIEBgILBItDywfDy8ECgcDOCg4BAoHBElLPBIuCRgRCC8TLhAgLhAwBAgKBDoqOgQHCwRMTgACAAD/8wEFANUADAAjAAA3ND4BMh4BFA4BIi4BNyIOARQeATMyNxcWPgE0LwE+ATU0LgFBFiUsJRYWJSwlFlEdMRwcMR0jHB4DCwcEHQwNHTBqFiYWFiYsJRYWJYAcMTkxHRUeBAEHCgQdDiMTHTEcAAAAAAYAAP//APcAywAcACkAOgBTAGQAcgAANzEXMhcVDgMiLwI0NTc0NjMxFjY3Njc0NjMHMTMyFhUxFAYiJjQ2JzMyFh0BFAYrASImPQE0NjM3MjMXFBUHDgEjJgYHBgcUBiMvATU2Nz4BBzMyFh0BFAYrASImPQE0NjM3MTMyFhUxFAYiJjQ2M+YNAgECEBojJBECAQYDARUrEBUEAgKQAQQHBwkHBxlvAQICAW8BAwICfAEBAQUBAwETJxATBwIBEAEIGRQyGW8BAwICbwECAgFNAQQHBwoGBwRdAgEDESAZDQYBAgECDQEBCAgPEx0BAjEGBQUGBwkGLQICDgECAgEOAgJpAgEBDQIBBwcNEBkBAgQCAiAVEAlAAgEOAgICAQ4CAioGBQUGBgoGAAwAAAAAAO4AvAAFABYAHwAoADEARwBQAFkAagBzAHwAhQAANwYHFzcvATMyNj0BNCYrASIGHQEUFjM3MhYUBiImNDYjMhYUBiImNDYjMhYUBiImNDYHMz4BMhYXNzY9ATQmKwEiBgcVHgEzNzIWFAYiJjQ2IzIWFAYiJjQ2FzQ3IyIGHQEUFjsBMjcuATUHIiY0NjIWFAYzIiY0NjIWFAY3IgYUFjI2NCbbBAUTCROKfwgLCwh/BwsLB3gDBAQFBARWAwMDBgMDFgIEBAUEBARCBRQYEwUBBgsIfwcLAQELByADAwMGAwMWAgQEBQQEOgE/BwsLB1kDAw4TNwMEBAUEBBcDAwMGAwNFDBERGBERKAUEEggTZQsICQcLCwcJCAseBAUEBAUEBAUEBAUEBAUEBAUEWQsOCwkBBQgJBwwMBwkICx0DBgMDBgMDBgMDBgMuAwELCAgICwEDFw8ZAwYDAwYDAwYDAwYDNhEYEREYEQAAAAMAAAAAAO4AtQAPAB8ALAAANzU0JisBIgYdAR4BOwEyNic1NDY7ATIWHQEUBisBIiYXMjYnNTQmIgYdARQWwBMNQQ4TARIOQQ0TbAYFQQQGBgRBBQaPBAcBBgkGBjNiDRMTDWINExMNYgQGBgRiBAYGEQYFdgUGBgV2BQYAAAAABAAAAAAA9gCxABQAKQA8AEkAADciBgcGFBYyNz4BMhYXFjI2NCcuAQciBgcGHgEyNz4BMhYXHgE+AScuAQciBgcGFBYyNzYyFx4BNjQnLgEHIg8BBhY7ATI2LwEmlhswEgIGCAIPKS4pDwIIBgISMBsSIgwDAQYHAwkbHRkKAwcGAQMMIRMKEwcCBggDCBoIAwgGAgcSCwQCFAQEByYGBQQTA7AWEwMIBQMREhIRAwUIAxQVJg8OAwgFAwsMDAoDAQYIAw0PJgkHAwgFAwoKAgEFCAMICCYDEwQMDAQTAwAEAAAAAADjAMQAGQAkADIAVwAANyIOARUUFh8BFhcHBhQWMj8BNjQmIg8BLgEHMhYXBycuATU0NhciBhUUFjI2NDYyNjQmFwYPAg4BFSMiBhQWOwEUBiInLgEOARcWMzI2PQE0Nj8BNi4BlhIfEggJAwUBIAMFCAOFAwUIAwYJHRAMFgZDCQYGHBQMEQYIBQYIBgYrBAIFBAcGCQQGBgQJCxIFAggGAQILExAWBAUKAgEHwxIeEg4TCwMGAyEDCAUDhQMIBQMGDQ8TDApDCwgNChMcExELBAYGCAUGCAUwAQMHBAgOCgYIBQgLBwMBBQcEDhYQEwYIBgwECAQAAAAAAgAAAAAA7AC6ACMASAAANyIHBg8BDgEVFBYzMjMPAQYWOwEyNi8BMjMyNjU0Ji8BJicmBxYfAR4BFRQGIyIvAS4BBhUUFyM2NTQmBg8BBiMiJjU0Nj8BNpYFAwkQFhAPHBQEAwIEAwYFOgUGAwYDBBQcDxAWEAkDBQkNFQ0LEQwFBAICCQYFHgUGCQICBAUMEQsNFQy6BAwNEA0XDxMcBAsFCQkFDxwTDxcNEA0MBBkJChAKEAoLEQMCBAEGBA0QEA0EBgEEAgMRCwoQChAJAAUAAAAAAPYAsQAhAC4APABDAE8AADciByMGBwYHBgcjIgYUFjMVFBYyNj0BHgEXMxYyNj0BNCYHMhYdARQGIiY9ATQ2BxQdAScmJyYjNTI3NjcHMxUiJjQ2FzIzMRYXFRQGIiY12Q0LAQkJExgIBhkPFhYQERcRDRQJAQwXERAMBAUFCAYGGQYWGgwKCgwaFloBCAsLGwEEBggGCAWwCwcECgQBARYgFgoLERELBAQKBwsQC2ILEBMFA2IDBQUDYgMFEQwcKAMMBAImAgQMEiYLEAs5AQEIBAUFBAAEAAAAAADvALAAEAAhADEANQAANycHBiIvAQcGFB8BFj8BNjQvAQcGIi8BBwYUHwEWPwEyNCcXFjI/ATY0LwEmIg8BBhQ3Fwcn7BsyBQkEMhsCAlIEBFICAhsyBAoEMhsCAlIEBFICrlIBBgFSAgJSAQYBUgJYNzc3PwkSAgISCQEFAR4CAh4BBSkKEgICEgoBBQEdAgIeBSMeAQEeAQUBHgEBHgEFFxQVFQAABAAAAAAA4wDFAA0AEQAiADMAADcHBhQfARY/ATY0LwEmFRcHJwcOARYfARY/AT4BLgEPAScmBw4BFh8BFj8BPgEuAQ8BJyaRQgUFQgUFQgUFQgUvLy8WBAQCBEIFBUIEAgQIAz4+AwQEBAIEQgUFQgQCBAgDPj4DwiYDCwMmAwMmAwsDJgMWGxsbJwEHBwImAwMmAgcHAgIjIwIwAQcIAiYDAyYCCAcCAiQkAgAAAAABAAD//wDcAMkAJwAANzQzMhc1JiMiBhUUFxYXHgEXFhUUIyImJxUWMzI2NTQnJicmJyYnJogSHRoaHSEpCQcOCCAFCRUOIA4cICIrCgcOCREOBQiNCw40CiEdEQwKBwQMAwUHDgoINA0hHRMNCggEBgUDBAAAAAABAAAAAAD5AMcAIwAANyIdARQ7ATI/ATQ7ATIdARQ7ATI9ATQ7ATIfARQ7ATI9ATQjNgMDHQEBBAImAwIgAgMmAQEEAh0DA8YCLAMCCgIDnAICmwMCCgECLQIAAAEAAP/+AO0AyQAUAAA3Ig8BBhY7AQcGFj8BNiYrATc2JiOEBAI9AgQDLhUBCAOBAwMEOyMBAwTIA2UDBlAEBAN9Awc2AwYAAAEAAAAAAOMAxABWAAA3IgYVFBYXBhQWOwEVBhUUFjsBFBYXFhczMjY0JisBJicmNTMyNjQmKwEiJjQ2OwEyNjQmKwEiJjQ2OwEyNjQmKwEiJjQ2OwEyFhQGIyIGFBYzMjY0JiNwEBYIBwYRDAEBEQsKEA8HCwgEBgYEBgcIERMEBgYEMAMGBgMdBAYGBDkEBgYEJgQGBgQmCAsLCEwICwsIBAUFBBAWFhDDFhAJEAUHFhEDBAMLEQ0RBAMBBQgGAQIFCwUIBgUIBgUIBgYHBgYIBQsQCwsQCwUIBhYgFgAABQAAAAAA9gCxAB0ANAA/AEgAUQAANyIGHQEUFhceATI2NzMeATI2Nz4BPQE0LgEjNCYjBzI7ATIWHQEOAQcjLgEjIgcuAT0BNDYXMhYdARQGBy4BJwcyFhQGIiY0NjMyFhQGIiY0Nl0QFgoJAhATDwMgAw8SDwMOEA0WDBcPQwECQAcMBgoCIAMQCA8IAgMLcQoSBQYCCgVgBAYGCAUGWQQGBggFBbAWEDkLEQUKDgoJCQoKCQIUEAkMFg4QFhMLCDsCCQYJCg0CBwQ5CAsmEgsJCQgBBQoBEQYIBQUIBgYIBQUJBQAAAAMAAAAAAO0AvAAVAB0AIQAANycmIgYUHwEHBhQWNj8BFzEWMjY0JwcGIiY0PwEXNyc3F+lABAkGAwNQDBgiDFEDAwkGA3IGEAsFJxwPHBsbd0EDBgkDA1IMIxkBDFIEAwcJA04GCxEGJxwPHBscAAADAAAAAADjAMUAFwAdADMAADcGDwEGFRQWFwcGFBYyPwE2NCYiDwEnJhUXBy4BNRciBhUOAQcuAQ4BFhcWFxY3PgE3NCaSBS0QBgcLDwMFCAOFAwUIAwI2BCtXBwZ7BAYDGhsICAgFAQMKCgUFISEEBcICEwcDBigrEw8DCAUDhQMIBQMCFwIUE1cNJh4eBQQdKREFBwEGCAMHBgMDEzIjBAYAAAMAAP//APsAyQAkAD4AWgAANzQmKwEiJj0BNDY7ATIWHQEUFjI2PQE0JisBIgYdARQWOwEyNjc0PgEzFx4BFQcXFhQPAQYiLwEHJy4BJyYvATc2NCYiDwEnJiIGFB8BBwYUFjI/ARcWMjY0J5YHBD0CBAMDbwIDBwkHEQtvDBAQDD0EBxYBBQUwAwUOFgMDAQMKAxYOAgIFAgIFGxQDBgkEFBQDCQcEFBQEBwkDFBEDCQcDLAUHAQNwAwMDAz0EBwcEPQwQEAxwCxAHGwEFBQwBBQQOFgMKAwEDAxYOAQEEBQgTRBQDCQcEFBQEBwkDFBQECQYDFBEDBwkDAAIAAAAAAPYAxAAhADUAADciDgEUHgEyPgE3NC4BBhUOASMiLgE0PgEzMhcWPgEmJyYXIg8BBi8BLgEOAR8BHgE/ATY0JpYaLBkZLDIpGwMFCAYEKx0VIxQUIxUNDQMHAwQDD0UEA1MEAwoCCAYCAgoGFghTAwXDGSw0LBkWJhgEBgEFBB0mFCMqIxQEAgQHCAEFEwNRBAUOAwEECAMOCQIIUQMIBQAAAAUAAAAAAPYAugAgACkAMgBCAEUAADciBhQXBh0BFBY7ATI2NxcWNj0BNCYPAS4BJzY0JiIHJgcyFhQGIiY0NjMyFhQGIiY0NgczMhYdARQGKwEiJj0BNDYXFSddEBYNDRYQQw4WAh8EDAwEHwEKCAkWIQwLEQgLCxALC0EICwsQCwsxQwcMDAdDCAsLjRi6FyELCxEnDxcUDyAEBQZfBwQEIAkQBAoeFw4OEwsQCwsQCwsQCwsQCzoLCCYICwsIJggLDTEZAAAABgAAAAABFAC1AAIAEgA4AEkATQBXAAA3JwcnMzIWHQEUBisBIiY9ATQ2FxQXFh8BFhQGIyInMQcXFjMyNjU0JyYvASY0NjMyFzE3JyYjIgYnMh8BHgEfATM3IwcnNCYrARczNyMXBzM3MxczJyMi6wUJt+AFCAgF4AUICHkFAggGAgUFCgcDBQcHDRAFAwcGAwYFBwcDBQYGDBBuAgIIBQMBDhIcExEIBQMdShEOEVgZEgMWAhAODgZaGRlaCAWGBQgIBYYFCEQGBQMEAwMFAwQPAgEMCgcFAwQEAgQEBA4CAQwJAQICAwQ0Qi0mBANCQgY8CgpCAAAEAAAAAAD2ALEAFAAcACkAMgAANyIGHQEUFjsBMjY9ATQmKwE1NCYjBzMVIyImNDYXMxUUBisBIiY9ARcWFyIGFBYyNjQmUwsREg2ADRIFBAoFBIZ8fAQFBQSPBwWABQcCBHYEBgYIBQWwEQtdDRISDUoEBR0EBRMTBggFJkAFBwcFQgEBHQUIBgYIBQAAAAADAAAAAADnAMQAJwA3AEkAADciBh0BDgEdARQWFxUUFjsBMjY9AT4BPQEyNj0BNCYjNTQmJzU0JiMHMzIWHQEUBisBIiY9ATQ2FyIGHQEjIgYUFjsBMjY9ATQmdQgLDRAQDQsIOQgLDBAEBgYEEAwLCENMCAsLCEwICwsuBAUTBAYGBBwEBgbDCwgBAxUNTA0VAwEICwsIAQMVDQkGBCYEBgkNFQMBCAsmCwhMCAsLCEwICxMFBBMGCAYGBB0EBQAFAAAAAADjAL8AEAAdACYALwBAAAA3IgcOAR4BNzYyFxY+ASYnJgciDgEUHgEyPgE0LgEzIgYUFjI2NCYHMhYUBiImNDYXIgYdARQfARYyNjQvATU0JpYKCwQEAgcECQ8JAwcCBAQLChUjFBQjKiMUFCMuBAYGCAUFRxghITAhIRgEBgMTAwgGAxAGvgMBBggEAQICAQQIBgEDHBUjKSMUFCMpIxUGCAUFCAYTIi8hIS8iEwYEHAQDEwMGCAMQGAQGAAAAAwAAAAAA2QDEABEAHgAtAAA3JgcOARUUHgEyPgE0LwEmJyYHFh8BFhUUBiImNTQ2FwYHBhcUFj4BNSY3Ni4BlwUDIxkSHyQfEgoWDwsCCgoNFAgcKBwUDwQCCwIGCAUCCQICCMMBBCk0HBIeEhIeJRAeFx4FGxcTHQsOExwcExcpEAIDFhYEBQEGBBARAwgEAAAAAAMAAAAAAPYAowAwAGEAkgAANw4BFBcWMzI3NjMyFxYyNzYzMhYXFjI2NzY0JiIPAQYiJyYjIg4CJyYGBwYiLwEmBw4BFBcWMzI3NjMyFxYyNzYzMhYXFjI2NzY0JiIPAQYiJyYjIg4BIicmBgcGIi8BJgcOARQXFjMyNzYzMhcWMjc2MzIWFxYyNjc2NC4BDwEGIicmIyIOASInJgYHBiIvASY/BAQDDBAMCQUFCAMKGQgECAMEBAoTDQcCBgcDAwQNBQoNBAsJDQQKGQkEDAQGBAMEBAQLEAwJBQUIAwoZCAQIAwQEChMNBwIGBwMDBA0FCg0ECwkNBAoZCQQMBAYDBAQEBAsQDAkFBQgDChkIBAgDBAQKEw0HAgYHAwMEDQUKDQQLCQ0EChkJBAwEBgSiAQYHAwwHAwMHBwMCAgYGBwMHBgMDBAMHAwYBBAYBBgMDBAMwAQUIAwsGAwIHBgMBAwUGBgMIBQIDBAMGAwYDBwEHAgMEAzABBgcECwYEAwcGBAICBgYHAggFAQMDBAMHAwcDBwEGAwMEAwADAAAAAAD7AMAAIgBMAHUAADcOAScuAT4BMxUOAQcGHgE2NzY3NTM3PgEeAg4BIiYnIwY3Mh4CDgMuASc3HgI+Ay4DDwEnIyInLgE0Njc2HgEGBxc2JyY0PgIyHgIGByc2NC4DDgIUFxYfAQcXFg4CLgI+ARc3JoULJRAMCQgXDwcMBAgFFRkIBAE4AQMKDAgDBAkLCwMoA0MKEQwGAwkQExQSBQwEDA0MCgYBAwgKDggIGgIIBQMCAwMFEAsBBBMKVQQHDRESEQwIAQUMAwUIDAwMCQQDBAoEHwECAQgLCgcBBQsGGAgdEAcLCRwcEw4BBwYKGg8FCwcHCwEFBAEICwsHBgcLPwgPEhMRCwQDDAkHBggCBAcLDAwJBgIDBDAGAwcHBwMFAQsOBSQEGggSEQ0HBwwTFQoHBg8MCgUBBQoMDAYKBQIyAgUMCAMDCQsKBgEmBgAAAAMAAAAAAOwAugAXADIASgAANyIHDgEeATYyFhQGKwEiBhQWOwEyNjQmFyIGBwYeATY1PgEyFhQGKwEiBhQWOwEyNjQmByIGFBY7ATIWFAYiJg4BFhcWMzI2NCYjcAgGBAIECAUHBQUEJgQGBgQmDBAQRRAYAgEECAcCDRMODgp3BAYGBHcSGRmJBAYGBF8EBgYHBQgEAgQGCAwREQy6BAIIBgMEBggFBggFEBgRChQQBAcBBQQJCw4UDQYIBhojGWkFCAYFCAYEAwYIAgQRGBAAAAAAAAAQAMYAAQAAAAAAAQAFAAAAAQAAAAAAAgAHAAUAAQAAAAAAAwAFAAwAAQAAAAAABAAFABEAAQAAAAAABQALABYAAQAAAAAABgAFACEAAQAAAAAACgArACYAAQAAAAAACwATAFEAAwABBAkAAQAKAGQAAwABBAkAAgAOAG4AAwABBAkAAwAKAHwAAwABBAkABAAKAIYAAwABBAkABQAWAJAAAwABBAkABgAKAKYAAwABBAkACgBWALAAAwABBAkACwAmAQZpY29uc1JlZ3VsYXJpY29uc2ljb25zVmVyc2lvbiAxLjBpY29uc0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AcwBSAGUAZwB1AGwAYQByAGkAYwBvAG4AcwBpAGMAbwBuAHMAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AcwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwAFYWxhcm0JYW1hem9ucGF5BGFtZXgIYXBwbGVwYXkPYXJyb3ctYW5hbHl0aWNzDGFycm93LWN1cnZlZAphcnJvdy1kb3duCmFycm93LWxlZnQLYXJyb3ctcmlnaHQIYXJyb3ctdXAMYXJyb3ctdXB3YXJkCWJhY2tzcGFjZQRiYW5rBGJlbGwFYm9hcmQIYm9va21hcmsKYm9vbGVhbi1vbgdib29sZWFuBGJ1bGIGYnVyZ2VyB2Nhc2hhcHANY2hlY2stcm91bmRlZAVjaGVjawxjaGV2cm9uLWRvd24MY2hldnJvbi1sZWZ0DWNoZXZyb24tcmlnaHQKY2hldnJvbi11cARjaGlwBWNoaXBzBWNsZXJrFGNsb3NlLXJvdW5kZWQtZmlsbGVkBWNsb3NlCGNsb3VkLXVwBGNsdWIDY21kBGNvZGUGY29mZmVlA2NvZw5jb2xsYXBzZS1lbXB0eQhjb2xsYXBzZQdjb21wYXNzCmNvbm5lY3Rpb24EY29weQZjcmVkaXQHY3lsbmRlcgdkaWFtb25kDmRvbGxhci1yb3VuZGVkD2RvdHMtaG9yaXpvbnRhbA1kb3RzLXZlcnRpY2FsDGVudGl0bGVtZW50cwllcXVhbGl6ZXIaZXhjbGFtYXRpb24tcm91bmRlZC1maWxsZWQDZXllBmZpbHRlcgVmbGFzawxmb2xkZXItbWludXMLZm9sZGVyLXBsdXMGZm9sZGVyD2dlbmVyaWMtcGF5bWVudAZnaXRodWIHZ2xhc3NlcwVnbG9iZQZnb29nbGUGaGFtbWVyBGhhc2gFaGVhcnQHaHVic3BvdAVpbWFnZQxpbmZvLXJvdW5kZWQFanVpY2UDa2V5BGxpbmsKbWFzdGVyY2FyZARtb3ZlBW11c2ljCm5vZGUtbWludXMJbm9kZS1wbHVzB3BhY2thZ2ULcGFwZXItcGxhbmUGcGF5cGFsBnBlbmNpbAdwZXJjZW50BnBpY2tlcgRwbGFuBHBsdWcKcGx1cy1taW51cxRwbHVzLXJvdW5kZWQtb3V0bGluZQdwcmVzZW50CXNjaGVtYXRpYwZzZWFyY2gHc2VnbWVudA1zZXJ2ZXItc2VhcmNoB3NpZGViYXIGc2lnbmFsB3NpbGVuY2UFc3BhZGUHc3BlYWtlcgdzdGFja2VkBnN0YWNrcwZzdHJpcGUEdGV4dAd0aHVuZGVyB3Rvcm5hZG8FdHJ1Y2sEdHViZQt1bnByb3RlY3RlZAt1bnN1YnNjcmliZQh2ZXJpZmllZAx2aWRlby1jYW1lcmEEdmlzYQZ3YWxsZXQKd2F0Y2gtaGFuZAx3YXRjaC1wb2NrZXQKd2F0ZXItZHJvcAV3YXZlcwd3ZWJob29rBHdpbmQAAAAA), format("truetype");
12029
12037
  }
12030
12038
 
12031
12039
  i[class^="i-"]:before,
@@ -12273,221 +12281,237 @@ i[class*=" i-"]:before {
12273
12281
  content: "\\f13b";
12274
12282
  }
12275
12283
 
12276
- .i-glasses::before {
12284
+ .i-github::before {
12277
12285
  content: "\\f13c";
12278
12286
  }
12279
12287
 
12280
- .i-globe::before {
12288
+ .i-glasses::before {
12281
12289
  content: "\\f13d";
12282
12290
  }
12283
12291
 
12284
- .i-hammer::before {
12292
+ .i-globe::before {
12285
12293
  content: "\\f13e";
12286
12294
  }
12287
12295
 
12288
- .i-hash::before {
12296
+ .i-google::before {
12289
12297
  content: "\\f13f";
12290
12298
  }
12291
12299
 
12292
- .i-heart::before {
12300
+ .i-hammer::before {
12293
12301
  content: "\\f140";
12294
12302
  }
12295
12303
 
12296
- .i-hubspot::before {
12304
+ .i-hash::before {
12297
12305
  content: "\\f141";
12298
12306
  }
12299
12307
 
12300
- .i-image::before {
12308
+ .i-heart::before {
12301
12309
  content: "\\f142";
12302
12310
  }
12303
12311
 
12304
- .i-info-rounded::before {
12312
+ .i-hubspot::before {
12305
12313
  content: "\\f143";
12306
12314
  }
12307
12315
 
12308
- .i-juice::before {
12316
+ .i-image::before {
12309
12317
  content: "\\f144";
12310
12318
  }
12311
12319
 
12312
- .i-key::before {
12320
+ .i-info-rounded::before {
12313
12321
  content: "\\f145";
12314
12322
  }
12315
12323
 
12316
- .i-link::before {
12324
+ .i-juice::before {
12317
12325
  content: "\\f146";
12318
12326
  }
12319
12327
 
12320
- .i-mastercard::before {
12328
+ .i-key::before {
12321
12329
  content: "\\f147";
12322
12330
  }
12323
12331
 
12324
- .i-music::before {
12332
+ .i-link::before {
12325
12333
  content: "\\f148";
12326
12334
  }
12327
12335
 
12328
- .i-node-minus::before {
12336
+ .i-mastercard::before {
12329
12337
  content: "\\f149";
12330
12338
  }
12331
12339
 
12332
- .i-node-plus::before {
12340
+ .i-move::before {
12333
12341
  content: "\\f14a";
12334
12342
  }
12335
12343
 
12336
- .i-package::before {
12344
+ .i-music::before {
12337
12345
  content: "\\f14b";
12338
12346
  }
12339
12347
 
12340
- .i-paper-plane::before {
12348
+ .i-node-minus::before {
12341
12349
  content: "\\f14c";
12342
12350
  }
12343
12351
 
12344
- .i-paypal::before {
12352
+ .i-node-plus::before {
12345
12353
  content: "\\f14d";
12346
12354
  }
12347
12355
 
12348
- .i-pencil::before {
12356
+ .i-package::before {
12349
12357
  content: "\\f14e";
12350
12358
  }
12351
12359
 
12352
- .i-percent::before {
12360
+ .i-paper-plane::before {
12353
12361
  content: "\\f14f";
12354
12362
  }
12355
12363
 
12356
- .i-picker::before {
12364
+ .i-paypal::before {
12357
12365
  content: "\\f150";
12358
12366
  }
12359
12367
 
12360
- .i-plan::before {
12368
+ .i-pencil::before {
12361
12369
  content: "\\f151";
12362
12370
  }
12363
12371
 
12364
- .i-plug::before {
12372
+ .i-percent::before {
12365
12373
  content: "\\f152";
12366
12374
  }
12367
12375
 
12368
- .i-plus-minus::before {
12376
+ .i-picker::before {
12369
12377
  content: "\\f153";
12370
12378
  }
12371
12379
 
12372
- .i-plus-rounded-outline::before {
12380
+ .i-plan::before {
12373
12381
  content: "\\f154";
12374
12382
  }
12375
12383
 
12376
- .i-present::before {
12384
+ .i-plug::before {
12377
12385
  content: "\\f155";
12378
12386
  }
12379
12387
 
12380
- .i-schematic::before {
12388
+ .i-plus-minus::before {
12381
12389
  content: "\\f156";
12382
12390
  }
12383
12391
 
12384
- .i-search::before {
12392
+ .i-plus-rounded-outline::before {
12385
12393
  content: "\\f157";
12386
12394
  }
12387
12395
 
12388
- .i-segment::before {
12396
+ .i-present::before {
12389
12397
  content: "\\f158";
12390
12398
  }
12391
12399
 
12392
- .i-server-search::before {
12400
+ .i-schematic::before {
12393
12401
  content: "\\f159";
12394
12402
  }
12395
12403
 
12396
- .i-sidebar::before {
12404
+ .i-search::before {
12397
12405
  content: "\\f15a";
12398
12406
  }
12399
12407
 
12400
- .i-signal::before {
12408
+ .i-segment::before {
12401
12409
  content: "\\f15b";
12402
12410
  }
12403
12411
 
12404
- .i-silence::before {
12412
+ .i-server-search::before {
12405
12413
  content: "\\f15c";
12406
12414
  }
12407
12415
 
12408
- .i-spade::before {
12416
+ .i-sidebar::before {
12409
12417
  content: "\\f15d";
12410
12418
  }
12411
12419
 
12412
- .i-speaker::before {
12420
+ .i-signal::before {
12413
12421
  content: "\\f15e";
12414
12422
  }
12415
12423
 
12416
- .i-stacked::before {
12424
+ .i-silence::before {
12417
12425
  content: "\\f15f";
12418
12426
  }
12419
12427
 
12420
- .i-stacks::before {
12428
+ .i-spade::before {
12421
12429
  content: "\\f160";
12422
12430
  }
12423
12431
 
12424
- .i-stripe::before {
12432
+ .i-speaker::before {
12425
12433
  content: "\\f161";
12426
12434
  }
12427
12435
 
12428
- .i-text::before {
12436
+ .i-stacked::before {
12429
12437
  content: "\\f162";
12430
12438
  }
12431
12439
 
12432
- .i-thunder::before {
12440
+ .i-stacks::before {
12433
12441
  content: "\\f163";
12434
12442
  }
12435
12443
 
12436
- .i-tornado::before {
12444
+ .i-stripe::before {
12437
12445
  content: "\\f164";
12438
12446
  }
12439
12447
 
12440
- .i-truck::before {
12448
+ .i-text::before {
12441
12449
  content: "\\f165";
12442
12450
  }
12443
12451
 
12444
- .i-tube::before {
12452
+ .i-thunder::before {
12445
12453
  content: "\\f166";
12446
12454
  }
12447
12455
 
12448
- .i-unprotected::before {
12456
+ .i-tornado::before {
12449
12457
  content: "\\f167";
12450
12458
  }
12451
12459
 
12452
- .i-verified::before {
12460
+ .i-truck::before {
12453
12461
  content: "\\f168";
12454
12462
  }
12455
12463
 
12456
- .i-video-camera::before {
12464
+ .i-tube::before {
12457
12465
  content: "\\f169";
12458
12466
  }
12459
12467
 
12460
- .i-visa::before {
12468
+ .i-unprotected::before {
12461
12469
  content: "\\f16a";
12462
12470
  }
12463
12471
 
12464
- .i-wallet::before {
12472
+ .i-unsubscribe::before {
12465
12473
  content: "\\f16b";
12466
12474
  }
12467
12475
 
12468
- .i-watch-hand::before {
12476
+ .i-verified::before {
12469
12477
  content: "\\f16c";
12470
12478
  }
12471
12479
 
12472
- .i-watch-pocket::before {
12480
+ .i-video-camera::before {
12473
12481
  content: "\\f16d";
12474
12482
  }
12475
12483
 
12476
- .i-water-drop::before {
12484
+ .i-visa::before {
12477
12485
  content: "\\f16e";
12478
12486
  }
12479
12487
 
12480
- .i-waves::before {
12488
+ .i-wallet::before {
12481
12489
  content: "\\f16f";
12482
12490
  }
12483
12491
 
12484
- .i-webhook::before {
12492
+ .i-watch-hand::before {
12485
12493
  content: "\\f170";
12486
12494
  }
12487
12495
 
12488
- .i-wind::before {
12496
+ .i-watch-pocket::before {
12489
12497
  content: "\\f171";
12490
12498
  }
12499
+
12500
+ .i-water-drop::before {
12501
+ content: "\\f172";
12502
+ }
12503
+
12504
+ .i-waves::before {
12505
+ content: "\\f173";
12506
+ }
12507
+
12508
+ .i-webhook::before {
12509
+ content: "\\f174";
12510
+ }
12511
+
12512
+ .i-wind::before {
12513
+ content: "\\f175";
12514
+ }
12491
12515
  `;
12492
12516
 
12493
12517
  // src/context/embed.tsx
@@ -12607,13 +12631,15 @@ var EmbedContext = createContext2({
12607
12631
  isPending: false,
12608
12632
  hydrate: async () => {
12609
12633
  },
12610
- setData: () => {
12634
+ setIsPending: () => {
12611
12635
  },
12612
- updateSettings: () => {
12636
+ setData: () => {
12613
12637
  },
12614
12638
  setLayout: () => {
12615
12639
  },
12616
12640
  setSelected: () => {
12641
+ },
12642
+ updateSettings: () => {
12617
12643
  }
12618
12644
  });
12619
12645
  var EmbedProvider = ({
@@ -12644,11 +12670,13 @@ var EmbedProvider = ({
12644
12670
  },
12645
12671
  setData: () => {
12646
12672
  },
12647
- updateSettings: () => {
12673
+ setIsPending: () => {
12648
12674
  },
12649
12675
  setLayout: () => {
12650
12676
  },
12651
12677
  setSelected: () => {
12678
+ },
12679
+ updateSettings: () => {
12652
12680
  }
12653
12681
  };
12654
12682
  });
@@ -12688,45 +12716,39 @@ var EmbedProvider = ({
12688
12716
  }));
12689
12717
  }
12690
12718
  }, [id, state.api]);
12691
- const setData = useCallback3(
12692
- (data) => {
12693
- setState((prev2) => ({
12694
- ...prev2,
12695
- data
12696
- }));
12697
- },
12698
- [setState]
12699
- );
12700
- const updateSettings = useCallback3(
12701
- (settings) => {
12702
- setState((prev2) => {
12703
- const updatedSettings = (0, import_merge.default)({}, prev2.settings, { ...settings });
12704
- return {
12705
- ...prev2,
12706
- settings: updatedSettings
12707
- };
12708
- });
12709
- },
12710
- [setState]
12711
- );
12712
- const setLayout = useCallback3(
12713
- (layout) => {
12714
- setState((prev2) => ({
12715
- ...prev2,
12716
- layout
12717
- }));
12718
- },
12719
- [setState]
12720
- );
12721
- const setSelected = useCallback3(
12722
- (selected) => {
12723
- setState((prev2) => ({
12719
+ const setIsPending = (bool) => {
12720
+ setState((prev2) => ({
12721
+ ...prev2,
12722
+ isPending: bool
12723
+ }));
12724
+ };
12725
+ const setData = (data) => {
12726
+ setState((prev2) => ({
12727
+ ...prev2,
12728
+ data
12729
+ }));
12730
+ };
12731
+ const setLayout = (layout) => {
12732
+ setState((prev2) => ({
12733
+ ...prev2,
12734
+ layout
12735
+ }));
12736
+ };
12737
+ const setSelected = (selected) => {
12738
+ setState((prev2) => ({
12739
+ ...prev2,
12740
+ selected
12741
+ }));
12742
+ };
12743
+ const updateSettings = (settings) => {
12744
+ setState((prev2) => {
12745
+ const updatedSettings = (0, import_merge.default)({}, prev2.settings, { ...settings });
12746
+ return {
12724
12747
  ...prev2,
12725
- selected
12726
- }));
12727
- },
12728
- [setState]
12729
- );
12748
+ settings: updatedSettings
12749
+ };
12750
+ });
12751
+ };
12730
12752
  useEffect2(() => {
12731
12753
  instance.use(initReactI18next).init({
12732
12754
  resources: {
@@ -12742,7 +12764,8 @@ var EmbedProvider = ({
12742
12764
  useEffect2(() => {
12743
12765
  const element = document.getElementById("schematic-fonts");
12744
12766
  if (element) {
12745
- return void (styleRef.current = element);
12767
+ styleRef.current = element;
12768
+ return;
12746
12769
  }
12747
12770
  const style = document.createElement("link");
12748
12771
  style.id = "schematic-fonts";
@@ -12753,7 +12776,7 @@ var EmbedProvider = ({
12753
12776
  useEffect2(() => {
12754
12777
  if (accessToken) {
12755
12778
  const { headers = {} } = apiConfig ?? {};
12756
- headers["X-Schematic-Components-Version"] = "0.4.6";
12779
+ headers["X-Schematic-Components-Version"] = "0.4.8";
12757
12780
  headers["X-Schematic-Session-ID"] = sessionIdRef.current;
12758
12781
  const config = new Configuration({
12759
12782
  ...apiConfig,
@@ -12796,10 +12819,11 @@ var EmbedProvider = ({
12796
12819
  error: state.error,
12797
12820
  isPending: state.isPending,
12798
12821
  hydrate,
12822
+ setIsPending,
12799
12823
  setData,
12800
- updateSettings,
12801
12824
  setLayout,
12802
- setSelected
12825
+ setSelected,
12826
+ updateSettings
12803
12827
  },
12804
12828
  children: /* @__PURE__ */ jsxs(ot, { theme: state.settings.theme, children: [
12805
12829
  /* @__PURE__ */ jsx(GlobalStyle, {}),
@@ -12902,6 +12926,10 @@ function lighten(color, amount) {
12902
12926
  function darken(color, amount) {
12903
12927
  return adjustLightness(color, -amount);
12904
12928
  }
12929
+ function hsla(color, amount) {
12930
+ const { h, s: s2, l: l2 } = hexToHSL(color);
12931
+ return `hsla(${h}, ${s2}%, ${l2}%, ${amount})`;
12932
+ }
12905
12933
 
12906
12934
  // src/utils/date.ts
12907
12935
  function toPrettyDate(date, format) {
@@ -13277,8 +13305,6 @@ var EmbedButton = dt(Button2)`
13277
13305
  font-family: "Public Sans", sans-serif;
13278
13306
  font-weight: 500;
13279
13307
  text-align: center;
13280
- width: 100%;
13281
- padding: 0;
13282
13308
 
13283
13309
  ${({ disabled, $color = "primary", theme }) => {
13284
13310
  const { l: l2 } = hexToHSL(theme[$color]);
@@ -13408,6 +13434,38 @@ var EmbedButton = dt(Button2)`
13408
13434
  `;
13409
13435
  }
13410
13436
  }}
13437
+
13438
+ ${({ $alignment = "center" }) => {
13439
+ switch ($alignment) {
13440
+ case "start":
13441
+ return lt`
13442
+ justify-content: start;
13443
+ `;
13444
+ case "end":
13445
+ return lt`
13446
+ justify-content: end;
13447
+ `;
13448
+ case "center":
13449
+ default:
13450
+ return lt`
13451
+ justify-content: center;
13452
+ `;
13453
+ }
13454
+ }}
13455
+
13456
+ ${({ $fullWidth = true }) => {
13457
+ if ($fullWidth) {
13458
+ return lt`
13459
+ width: 100%;
13460
+ padding: 0;
13461
+ `;
13462
+ }
13463
+ return lt`
13464
+ width: fit-content;
13465
+ padding-left: 1rem;
13466
+ padding-right: 1rem;
13467
+ `;
13468
+ }}
13411
13469
  `;
13412
13470
 
13413
13471
  // src/components/ui/flex/styles.ts
@@ -13483,60 +13541,64 @@ var icons_default = {
13483
13541
  "folder-plus": 61753,
13484
13542
  folder: 61754,
13485
13543
  "generic-payment": 61755,
13486
- glasses: 61756,
13487
- globe: 61757,
13488
- hammer: 61758,
13489
- hash: 61759,
13490
- heart: 61760,
13491
- hubspot: 61761,
13492
- image: 61762,
13493
- "info-rounded": 61763,
13494
- juice: 61764,
13495
- key: 61765,
13496
- link: 61766,
13497
- mastercard: 61767,
13498
- music: 61768,
13499
- "node-minus": 61769,
13500
- "node-plus": 61770,
13501
- package: 61771,
13502
- "paper-plane": 61772,
13503
- paypal: 61773,
13504
- pencil: 61774,
13505
- percent: 61775,
13506
- picker: 61776,
13507
- plan: 61777,
13508
- plug: 61778,
13509
- "plus-minus": 61779,
13510
- "plus-rounded-outline": 61780,
13511
- present: 61781,
13512
- schematic: 61782,
13513
- search: 61783,
13514
- segment: 61784,
13515
- "server-search": 61785,
13516
- sidebar: 61786,
13517
- signal: 61787,
13518
- silence: 61788,
13519
- spade: 61789,
13520
- speaker: 61790,
13521
- stacked: 61791,
13522
- stacks: 61792,
13523
- stripe: 61793,
13524
- text: 61794,
13525
- thunder: 61795,
13526
- tornado: 61796,
13527
- truck: 61797,
13528
- tube: 61798,
13529
- unprotected: 61799,
13530
- verified: 61800,
13531
- "video-camera": 61801,
13532
- visa: 61802,
13533
- wallet: 61803,
13534
- "watch-hand": 61804,
13535
- "watch-pocket": 61805,
13536
- "water-drop": 61806,
13537
- waves: 61807,
13538
- webhook: 61808,
13539
- wind: 61809
13544
+ github: 61756,
13545
+ glasses: 61757,
13546
+ globe: 61758,
13547
+ google: 61759,
13548
+ hammer: 61760,
13549
+ hash: 61761,
13550
+ heart: 61762,
13551
+ hubspot: 61763,
13552
+ image: 61764,
13553
+ "info-rounded": 61765,
13554
+ juice: 61766,
13555
+ key: 61767,
13556
+ link: 61768,
13557
+ mastercard: 61769,
13558
+ move: 61770,
13559
+ music: 61771,
13560
+ "node-minus": 61772,
13561
+ "node-plus": 61773,
13562
+ package: 61774,
13563
+ "paper-plane": 61775,
13564
+ paypal: 61776,
13565
+ pencil: 61777,
13566
+ percent: 61778,
13567
+ picker: 61779,
13568
+ plan: 61780,
13569
+ plug: 61781,
13570
+ "plus-minus": 61782,
13571
+ "plus-rounded-outline": 61783,
13572
+ present: 61784,
13573
+ schematic: 61785,
13574
+ search: 61786,
13575
+ segment: 61787,
13576
+ "server-search": 61788,
13577
+ sidebar: 61789,
13578
+ signal: 61790,
13579
+ silence: 61791,
13580
+ spade: 61792,
13581
+ speaker: 61793,
13582
+ stacked: 61794,
13583
+ stacks: 61795,
13584
+ stripe: 61796,
13585
+ text: 61797,
13586
+ thunder: 61798,
13587
+ tornado: 61799,
13588
+ truck: 61800,
13589
+ tube: 61801,
13590
+ unprotected: 61802,
13591
+ unsubscribe: 61803,
13592
+ verified: 61804,
13593
+ "video-camera": 61805,
13594
+ visa: 61806,
13595
+ wallet: 61807,
13596
+ "watch-hand": 61808,
13597
+ "watch-pocket": 61809,
13598
+ "water-drop": 61810,
13599
+ waves: 61811,
13600
+ webhook: 61812,
13601
+ wind: 61813
13540
13602
  };
13541
13603
 
13542
13604
  // src/components/ui/icon/IconRound.tsx
@@ -14261,11 +14323,14 @@ var Navigation = ({
14261
14323
  ] });
14262
14324
  };
14263
14325
 
14264
- // src/components/shared/checkout-dialog/Sidebar.tsx
14265
- import { useCallback as useCallback6, useMemo as useMemo4 } from "react";
14326
+ // src/components/shared/sidebar/Sidebar.tsx
14327
+ import {
14328
+ useCallback as useCallback6,
14329
+ useMemo as useMemo4
14330
+ } from "react";
14266
14331
  var import_pluralize = __toESM(require_pluralize());
14267
14332
 
14268
- // src/components/shared/checkout-dialog/StageButton.tsx
14333
+ // src/components/shared/sidebar/StageButton.tsx
14269
14334
  import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
14270
14335
  var StageButton = ({
14271
14336
  canTrial,
@@ -14286,7 +14351,8 @@ var StageButton = ({
14286
14351
  return /* @__PURE__ */ jsx11(
14287
14352
  EmbedButton,
14288
14353
  {
14289
- disabled: isLoading || !canCheckout,
14354
+ type: "button",
14355
+ disabled: isLoading || !canUpdateSubscription,
14290
14356
  onClick: checkout,
14291
14357
  isLoading,
14292
14358
  children: t2("Subscribe and close")
@@ -14299,9 +14365,10 @@ var StageButton = ({
14299
14365
  return /* @__PURE__ */ jsx11(
14300
14366
  EmbedButton,
14301
14367
  {
14368
+ type: "button",
14302
14369
  disabled: !hasAddOns && !canUpdateSubscription,
14303
14370
  onClick: async () => {
14304
- setCheckoutStage("checkout");
14371
+ setCheckoutStage?.("checkout");
14305
14372
  },
14306
14373
  isLoading,
14307
14374
  children: /* @__PURE__ */ jsxs7(
@@ -14325,6 +14392,7 @@ var StageButton = ({
14325
14392
  return /* @__PURE__ */ jsx11(
14326
14393
  EmbedButton,
14327
14394
  {
14395
+ type: "button",
14328
14396
  disabled: !canUpdateSubscription,
14329
14397
  onClick: async () => {
14330
14398
  checkout();
@@ -14346,7 +14414,7 @@ var StageButton = ({
14346
14414
  }
14347
14415
  );
14348
14416
  }
14349
- if (!requiresPayment && !checkoutStages.some(
14417
+ if (!requiresPayment && !checkoutStages?.some(
14350
14418
  (stage) => stage.id === "addons" || stage.id === "usage"
14351
14419
  )) {
14352
14420
  return /* @__PURE__ */ jsx11(NoPaymentRequired, {});
@@ -14354,9 +14422,10 @@ var StageButton = ({
14354
14422
  return /* @__PURE__ */ jsx11(
14355
14423
  EmbedButton,
14356
14424
  {
14425
+ type: "button",
14357
14426
  disabled: !canUpdateSubscription,
14358
14427
  onClick: async () => {
14359
- setCheckoutStage(
14428
+ setCheckoutStage?.(
14360
14429
  hasPayInAdvanceEntitlements ? "usage" : hasAddOns ? "addons" : "checkout"
14361
14430
  );
14362
14431
  },
@@ -14387,9 +14456,10 @@ var StageButton = ({
14387
14456
  return /* @__PURE__ */ jsx11(
14388
14457
  EmbedButton,
14389
14458
  {
14459
+ type: "button",
14390
14460
  disabled: !canUpdateSubscription,
14391
14461
  onClick: async () => {
14392
- setCheckoutStage(hasAddOns ? "addons" : "checkout");
14462
+ setCheckoutStage?.(hasAddOns ? "addons" : "checkout");
14393
14463
  },
14394
14464
  isLoading,
14395
14465
  children: /* @__PURE__ */ jsxs7(
@@ -14417,9 +14487,10 @@ var StageButton = ({
14417
14487
  return /* @__PURE__ */ jsx11(
14418
14488
  EmbedButton,
14419
14489
  {
14490
+ type: "button",
14420
14491
  disabled: !canUpdateSubscription,
14421
14492
  onClick: async () => {
14422
- setCheckoutStage("checkout");
14493
+ setCheckoutStage?.("checkout");
14423
14494
  },
14424
14495
  isLoading,
14425
14496
  children: /* @__PURE__ */ jsxs7(
@@ -14447,6 +14518,7 @@ var StageButton = ({
14447
14518
  return /* @__PURE__ */ jsx11(
14448
14519
  EmbedButton,
14449
14520
  {
14521
+ type: "button",
14450
14522
  disabled: isLoading || !canCheckout,
14451
14523
  onClick: checkout,
14452
14524
  isLoading,
@@ -14456,35 +14528,52 @@ var StageButton = ({
14456
14528
  }
14457
14529
  };
14458
14530
 
14459
- // src/components/shared/checkout-dialog/Sidebar.tsx
14531
+ // src/components/shared/sidebar/Sidebar.tsx
14460
14532
  import { Fragment as Fragment4, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
14461
14533
  var Sidebar = ({
14534
+ planPeriod,
14535
+ selectedPlan,
14462
14536
  addOns,
14537
+ usageBasedEntitlements,
14463
14538
  charges,
14464
14539
  checkoutRef,
14465
14540
  checkoutStage,
14466
14541
  checkoutStages,
14467
- currentAddOns,
14468
- currentUsageBasedEntitlements,
14469
14542
  error,
14470
- currentPlan,
14471
14543
  isLoading,
14472
14544
  paymentMethodId,
14473
- planPeriod,
14474
14545
  promoCode,
14475
14546
  requiresPayment,
14476
- selectedPlan,
14477
14547
  setCheckoutStage,
14478
14548
  setError,
14549
+ setIsLoading,
14479
14550
  showPaymentForm,
14480
- toggleLoading,
14481
14551
  updatePromoCode,
14482
- usageBasedEntitlements
14552
+ showHeader = true
14483
14553
  }) => {
14484
14554
  const { t: t2 } = useTranslation();
14485
14555
  const theme = nt();
14486
- const { api, data, mode, setLayout } = useEmbed();
14556
+ const { api, data, mode, layout, hydrate, setLayout } = useEmbed();
14487
14557
  const isLightBackground = useIsLightBackground();
14558
+ const currentPlan = data.company?.plan;
14559
+ const currentAddOns = data.company?.addOns || [];
14560
+ const currentUsageBasedEntitlements = data.activeUsageBasedEntitlements.reduce(
14561
+ (acc, usageData) => {
14562
+ const featureUsage = data.featureUsage?.features.find(
14563
+ (usage2) => usage2.feature?.id === usageData.featureId
14564
+ );
14565
+ const allocation = featureUsage?.allocation || 0;
14566
+ const usage = featureUsage?.usage || 0;
14567
+ acc.push({
14568
+ usageData,
14569
+ allocation,
14570
+ quantity: allocation ?? usage,
14571
+ usage
14572
+ });
14573
+ return acc;
14574
+ },
14575
+ []
14576
+ );
14488
14577
  const payInAdvanceEntitlements = usageBasedEntitlements.filter(
14489
14578
  ({ entitlement }) => entitlement.priceBehavior === "pay_in_advance"
14490
14579
  );
@@ -14492,27 +14581,30 @@ var Sidebar = ({
14492
14581
  ({ entitlement }) => entitlement.priceBehavior === "pay_as_you_go"
14493
14582
  );
14494
14583
  const subscriptionPrice = useMemo4(() => {
14495
- if (!selectedPlan || !selectedPlan.monthlyPrice || !selectedPlan.yearlyPrice) {
14496
- return;
14497
- }
14498
14584
  let total = 0;
14499
- const planPrice = (planPeriod === "month" ? selectedPlan.monthlyPrice : selectedPlan.yearlyPrice)?.price;
14500
- const currency = (planPeriod === "month" ? selectedPlan.monthlyPrice : selectedPlan.yearlyPrice)?.currency;
14501
- if (planPrice) {
14502
- total += planPrice;
14585
+ let planPrice;
14586
+ let currency;
14587
+ if (selectedPlan) {
14588
+ planPrice = planPeriod === "month" ? selectedPlan.monthlyPrice?.price : selectedPlan.yearlyPrice?.price;
14589
+ currency = planPeriod === "month" ? selectedPlan.monthlyPrice?.currency : selectedPlan.yearlyPrice?.currency;
14590
+ if (planPrice) {
14591
+ total += planPrice;
14592
+ }
14593
+ } else if (typeof currentPlan?.planPrice === "number") {
14594
+ planPrice = currentPlan.planPrice;
14503
14595
  }
14504
14596
  const addOnCost = addOns.reduce(
14505
- (sum, addOn) => sum + (addOn.isSelected ? (planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price || 0 : 0),
14597
+ (sum, addOn) => sum + (addOn.isSelected ? (planPeriod === "month" ? addOn.monthlyPrice : addOn.yearlyPrice)?.price ?? 0 : 0),
14506
14598
  0
14507
14599
  );
14508
14600
  total += addOnCost;
14509
14601
  const payInAdvanceCost = payInAdvanceEntitlements.reduce(
14510
- (sum, { entitlement, quantity }) => sum + quantity * ((planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price || 0),
14602
+ (sum, { entitlement, quantity }) => sum + quantity * ((planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price ?? 0),
14511
14603
  0
14512
14604
  );
14513
14605
  total += payInAdvanceCost;
14514
14606
  return formatCurrency(total, currency);
14515
- }, [selectedPlan, addOns, payInAdvanceEntitlements, planPeriod]);
14607
+ }, [selectedPlan, currentPlan, planPeriod, addOns, payInAdvanceEntitlements]);
14516
14608
  const { amountOff, dueNow, newCharges, percentOff, periodStart, proration } = useMemo4(() => {
14517
14609
  return {
14518
14610
  amountOff: charges?.amountOff ?? 0,
@@ -14530,7 +14622,7 @@ var Sidebar = ({
14530
14622
  }
14531
14623
  try {
14532
14624
  setError(void 0);
14533
- toggleLoading();
14625
+ setIsLoading(true);
14534
14626
  await api.checkout({
14535
14627
  changeSubscriptionRequestBody: {
14536
14628
  newPlanId: selectedPlan.id,
@@ -14564,29 +14656,50 @@ var Sidebar = ({
14564
14656
  ...promoCode && { promoCode }
14565
14657
  }
14566
14658
  });
14567
- setLayout("success");
14659
+ setIsLoading(false);
14660
+ setLayout("portal");
14661
+ hydrate();
14568
14662
  } catch {
14663
+ setLayout("checkout");
14569
14664
  setError(
14570
14665
  t2("Error processing payment. Please try a different payment method.")
14571
14666
  );
14572
14667
  } finally {
14573
- toggleLoading();
14668
+ setIsLoading(false);
14574
14669
  }
14575
14670
  }, [
14576
14671
  t2,
14577
14672
  api,
14673
+ hydrate,
14578
14674
  paymentMethodId,
14579
14675
  planPeriod,
14580
14676
  selectedPlan,
14581
14677
  addOns,
14582
14678
  setError,
14679
+ setIsLoading,
14583
14680
  setLayout,
14584
- toggleLoading,
14585
14681
  payInAdvanceEntitlements,
14586
14682
  promoCode
14587
14683
  ]);
14684
+ const unsubscribe = useCallback6(async () => {
14685
+ if (!api) {
14686
+ return;
14687
+ }
14688
+ try {
14689
+ setError(void 0);
14690
+ setIsLoading(true);
14691
+ await api.checkoutUnsubscribe();
14692
+ setLayout("portal");
14693
+ hydrate();
14694
+ } catch {
14695
+ setLayout("unsubscribe");
14696
+ setError(t2("Unsubscribe failed"));
14697
+ } finally {
14698
+ setIsLoading(false);
14699
+ }
14700
+ }, [t2, api, hydrate, setError, setIsLoading, setLayout]);
14588
14701
  const selectedAddOns = addOns.filter((addOn) => addOn.isSelected);
14589
- const willPlanChange = typeof selectedPlan !== "undefined" && selectedPlan.current === false;
14702
+ const willPlanChange = typeof selectedPlan !== "undefined" && !selectedPlan.current;
14590
14703
  const canUpdateSubscription = mode === "edit" || api !== null && (willPlanChange || // TODO: test add-on comparison for finding "changes"
14591
14704
  selectedAddOns.length !== currentAddOns.length || !selectedAddOns.every(
14592
14705
  (addOn) => currentAddOns.some((currentAddOn) => addOn.id === currentAddOn.id)
@@ -14621,12 +14734,12 @@ var Sidebar = ({
14621
14734
  (acc, current) => {
14622
14735
  const match2 = usageBasedEntitlements.every(
14623
14736
  ({ entitlement }) => entitlement.featureId !== current.usageData.featureId
14624
- ) && currentPlan?.entitlements.find(
14625
- (entitlement) => entitlement.featureId === current.usageData.featureId
14737
+ ) && data.featureUsage?.features.find(
14738
+ (usage) => usage.feature?.id === current.usageData.featureId
14626
14739
  );
14627
14740
  if (match2) {
14628
14741
  acc.push({
14629
- entitlement: match2,
14742
+ usage: match2,
14630
14743
  allocation: current.allocation,
14631
14744
  quantity: current.quantity
14632
14745
  });
@@ -14666,7 +14779,7 @@ var Sidebar = ({
14666
14779
  }
14667
14780
  },
14668
14781
  children: [
14669
- /* @__PURE__ */ jsx12(
14782
+ showHeader && /* @__PURE__ */ jsx12(
14670
14783
  Flex,
14671
14784
  {
14672
14785
  $position: "relative",
@@ -14836,9 +14949,9 @@ var Sidebar = ({
14836
14949
  }
14837
14950
  ) }),
14838
14951
  removedUsageBasedEntitlements.reduce(
14839
- (acc, { allocation, quantity, entitlement }) => {
14840
- if (typeof allocation === "number" && entitlement.feature?.name) {
14841
- const price = (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.price;
14952
+ (acc, { allocation, quantity, usage }) => {
14953
+ if (typeof allocation === "number" && usage.feature?.name) {
14954
+ const price = (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.price;
14842
14955
  acc.push(
14843
14956
  /* @__PURE__ */ jsxs8(
14844
14957
  Flex,
@@ -14857,11 +14970,11 @@ var Sidebar = ({
14857
14970
  $size: theme.typography.heading4.fontSize,
14858
14971
  $weight: theme.typography.heading4.fontWeight,
14859
14972
  $color: theme.typography.heading4.color,
14860
- children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ jsxs8(Fragment4, { children: [
14973
+ children: usage.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ jsxs8(Fragment4, { children: [
14861
14974
  quantity,
14862
14975
  " ",
14863
- (0, import_pluralize.default)(entitlement.feature.name, quantity)
14864
- ] }) : entitlement.feature.name
14976
+ (0, import_pluralize.default)(usage.feature.name, quantity)
14977
+ ] }) : usage.feature.name
14865
14978
  }
14866
14979
  ) }),
14867
14980
  /* @__PURE__ */ jsx12(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsxs8(
@@ -14872,25 +14985,25 @@ var Sidebar = ({
14872
14985
  $weight: theme.typography.text.fontWeight,
14873
14986
  $color: theme.typography.text.color,
14874
14987
  children: [
14875
- entitlement.priceBehavior === "pay_in_advance" && typeof price === "number" && /* @__PURE__ */ jsxs8(Fragment4, { children: [
14988
+ usage.priceBehavior === "pay_in_advance" && typeof price === "number" && /* @__PURE__ */ jsxs8(Fragment4, { children: [
14876
14989
  formatCurrency(
14877
14990
  price * quantity,
14878
- (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.currency
14991
+ (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.currency
14879
14992
  ),
14880
14993
  /* @__PURE__ */ jsxs8("sub", { children: [
14881
14994
  "/",
14882
14995
  shortenPeriod(planPeriod)
14883
14996
  ] })
14884
14997
  ] }),
14885
- entitlement.priceBehavior === "pay_as_you_go" && typeof price === "number" && /* @__PURE__ */ jsxs8(Fragment4, { children: [
14998
+ usage.priceBehavior === "pay_as_you_go" && typeof price === "number" && /* @__PURE__ */ jsxs8(Fragment4, { children: [
14886
14999
  formatCurrency(
14887
15000
  price,
14888
- (planPeriod === "month" ? entitlement.meteredMonthlyPrice : entitlement.meteredYearlyPrice)?.currency
15001
+ (planPeriod === "month" ? usage.monthlyUsageBasedPrice : usage.yearlyUsageBasedPrice)?.currency
14889
15002
  ),
14890
15003
  /* @__PURE__ */ jsxs8("sub", { children: [
14891
15004
  "/",
14892
15005
  (0, import_pluralize.default)(
14893
- entitlement.feature.name.toLowerCase(),
15006
+ usage.feature.name.toLowerCase(),
14894
15007
  1
14895
15008
  )
14896
15009
  ] })
@@ -14900,7 +15013,7 @@ var Sidebar = ({
14900
15013
  ) })
14901
15014
  ]
14902
15015
  },
14903
- entitlement.id
15016
+ usage.entitlementId
14904
15017
  )
14905
15018
  );
14906
15019
  }
@@ -15235,7 +15348,7 @@ var Sidebar = ({
15235
15348
  children: proration > 0 ? t2("Proration") : !selectedPlan?.companyCanTrial && t2("Credits")
15236
15349
  }
15237
15350
  ) }),
15238
- /* @__PURE__ */ jsx12(Flex, { $flexDirection: "column", $gap: "0.5rem", children: currentPlan?.current && /* @__PURE__ */ jsxs8(
15351
+ /* @__PURE__ */ jsx12(Flex, { $flexDirection: "column", $gap: "0.5rem", children: currentPlan && /* @__PURE__ */ jsxs8(
15239
15352
  Flex,
15240
15353
  {
15241
15354
  $justifyContent: "space-between",
@@ -15323,7 +15436,7 @@ var Sidebar = ({
15323
15436
  {
15324
15437
  $cursor: "pointer",
15325
15438
  onClick: () => {
15326
- updatePromoCode(void 0);
15439
+ updatePromoCode?.(void 0);
15327
15440
  },
15328
15441
  children: /* @__PURE__ */ jsx12(
15329
15442
  Icon2,
@@ -15416,7 +15529,7 @@ var Sidebar = ({
15416
15529
  ]
15417
15530
  }
15418
15531
  ),
15419
- selectedPlan && subscriptionPrice && /* @__PURE__ */ jsxs8(
15532
+ subscriptionPrice && /* @__PURE__ */ jsxs8(
15420
15533
  Flex,
15421
15534
  {
15422
15535
  $justifyContent: "space-between",
@@ -15519,11 +15632,11 @@ var Sidebar = ({
15519
15632
  }
15520
15633
  ) })
15521
15634
  ] }),
15522
- /* @__PURE__ */ jsx12(
15635
+ layout === "checkout" && /* @__PURE__ */ jsx12(
15523
15636
  StageButton,
15524
15637
  {
15525
15638
  canTrial: selectedPlan?.companyCanTrial === true,
15526
- canCheckout: canCheckout === true,
15639
+ canCheckout,
15527
15640
  canUpdateSubscription,
15528
15641
  checkout,
15529
15642
  checkoutStage,
@@ -15536,6 +15649,16 @@ var Sidebar = ({
15536
15649
  trialPaymentMethodRequired: data.trialPaymentMethodRequired === true
15537
15650
  }
15538
15651
  ),
15652
+ layout === "unsubscribe" && /* @__PURE__ */ jsx12(
15653
+ EmbedButton,
15654
+ {
15655
+ onClick: async () => {
15656
+ unsubscribe();
15657
+ },
15658
+ isLoading,
15659
+ children: t2("Cancel subscription")
15660
+ }
15661
+ ),
15539
15662
  !isLoading && error && /* @__PURE__ */ jsx12(Box, { children: /* @__PURE__ */ jsx12(
15540
15663
  Text,
15541
15664
  {
@@ -15546,7 +15669,7 @@ var Sidebar = ({
15546
15669
  children: error
15547
15670
  }
15548
15671
  ) }),
15549
- /* @__PURE__ */ jsx12(Box, { $opacity: "0.625", children: /* @__PURE__ */ jsx12(
15672
+ layout !== "unsubscribe" && /* @__PURE__ */ jsx12(Box, { $opacity: "0.625", children: /* @__PURE__ */ jsx12(
15550
15673
  Text,
15551
15674
  {
15552
15675
  $font: theme.typography.text.fontFamily,
@@ -15732,15 +15855,7 @@ var Plan = ({
15732
15855
  $padding: `${0.75 * cardPadding}rem ${cardPadding}rem 0`,
15733
15856
  children: [
15734
15857
  /* @__PURE__ */ jsxs9(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: "1", children: [
15735
- plan.entitlements.slice().sort((a2, b2) => {
15736
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name > b2.feature?.name) {
15737
- return 1;
15738
- }
15739
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name < b2.feature?.name) {
15740
- return -1;
15741
- }
15742
- return 0;
15743
- }).reduce((acc, entitlement) => {
15858
+ plan.entitlements.reduce((acc, entitlement) => {
15744
15859
  const hasNumericValue = entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait";
15745
15860
  let metricPeriodText;
15746
15861
  if (hasNumericValue && entitlement.metricPeriod) {
@@ -15886,7 +16001,8 @@ var Plan = ({
15886
16001
  ) : /* @__PURE__ */ jsx13(
15887
16002
  EmbedButton,
15888
16003
  {
15889
- disabled: isLoading || !plan.valid,
16004
+ type: "button",
16005
+ disabled: (isLoading || !plan.valid) && !plan.custom,
15890
16006
  ...{
15891
16007
  onClick: () => {
15892
16008
  if (plan.custom) {
@@ -16023,6 +16139,7 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
16023
16139
  /* @__PURE__ */ jsx14(Flex, { $flexDirection: "column", $justifyContent: "end", $flexGrow: "1", children: !addOn.isSelected ? /* @__PURE__ */ jsx14(
16024
16140
  EmbedButton,
16025
16141
  {
16142
+ type: "button",
16026
16143
  disabled: isLoading || !addOn.valid,
16027
16144
  onClick: () => toggle(addOn.id),
16028
16145
  $size: "sm",
@@ -16033,6 +16150,7 @@ var AddOns = ({ addOns, toggle, isLoading, period }) => {
16033
16150
  ) : /* @__PURE__ */ jsx14(
16034
16151
  EmbedButton,
16035
16152
  {
16153
+ type: "button",
16036
16154
  disabled: isLoading || !addOn.valid,
16037
16155
  onClick: () => toggle(addOn.id),
16038
16156
  $size: "sm",
@@ -16071,15 +16189,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
16071
16189
  const cardPadding = theme.card.padding / TEXT_BASE_SIZE;
16072
16190
  const unitPriceFontSize = 0.875 * theme.typography.text.fontSize;
16073
16191
  const unitPriceColor = hexToHSL(theme.typography.text.color).l > 50 ? darken(theme.typography.text.color, 0.46) : lighten(theme.typography.text.color, 0.46);
16074
- return /* @__PURE__ */ jsx15(Fragment7, { children: /* @__PURE__ */ jsx15(Flex, { $flexDirection: "column", $gap: "1rem", children: entitlements.slice().sort((a2, b2) => {
16075
- if (a2.entitlement.feature?.name && b2.entitlement.feature?.name && a2.entitlement.feature?.name > b2.entitlement.feature?.name) {
16076
- return 1;
16077
- }
16078
- if (a2.entitlement.feature?.name && b2.entitlement.feature?.name && a2.entitlement.feature?.name < b2.entitlement.feature?.name) {
16079
- return -1;
16080
- }
16081
- return 0;
16082
- }).reduce(
16192
+ return /* @__PURE__ */ jsx15(Fragment7, { children: /* @__PURE__ */ jsx15(Flex, { $flexDirection: "column", $gap: "1rem", children: entitlements.reduce(
16083
16193
  (acc, { entitlement, quantity, usage }) => {
16084
16194
  if (entitlement.priceBehavior === "pay_in_advance" && entitlement.feature) {
16085
16195
  acc.push(
@@ -16212,10 +16322,7 @@ var Usage = ({ entitlements, updateQuantity, period }) => {
16212
16322
  ),
16213
16323
  /* @__PURE__ */ jsxs11("sub", { children: [
16214
16324
  "/",
16215
- (0, import_pluralize3.default)(
16216
- entitlement.feature.name.toLowerCase(),
16217
- 1
16218
- ),
16325
+ (0, import_pluralize3.default)(entitlement.feature.name.toLowerCase(), 1),
16219
16326
  "/",
16220
16327
  shortenPeriod(period)
16221
16328
  ] })
@@ -16277,7 +16384,7 @@ var registerWrapper = function registerWrapper2(stripe, startTime) {
16277
16384
  }
16278
16385
  stripe._registerWrapper({
16279
16386
  name: "stripe-js",
16280
- version: "5.7.0",
16387
+ version: "5.9.1",
16281
16388
  startTime
16282
16389
  });
16283
16390
  };
@@ -16285,8 +16392,10 @@ var stripePromise$1 = null;
16285
16392
  var onErrorListener = null;
16286
16393
  var onLoadListener = null;
16287
16394
  var onError = function onError2(reject) {
16288
- return function() {
16289
- reject(new Error("Failed to load Stripe.js"));
16395
+ return function(cause) {
16396
+ reject(new Error("Failed to load Stripe.js", {
16397
+ cause
16398
+ }));
16290
16399
  };
16291
16400
  };
16292
16401
  var onLoad = function onLoad2(resolve, reject) {
@@ -16580,30 +16689,14 @@ var CheckoutDialog = ({ top = 0 }) => {
16580
16689
  (plan) => selected.planId ? plan.id === selected.planId : plan.current
16581
16690
  )
16582
16691
  );
16583
- const currentAddOns = data.company?.addOns || [];
16584
16692
  const [addOns, setAddOns] = useState7(
16585
16693
  () => availableAddOns.map((addOn) => ({
16586
16694
  ...addOn,
16587
- isSelected: typeof selected.addOnId !== "undefined" ? addOn.id === selected.addOnId : currentAddOns.some((currentAddOn) => addOn.id === currentAddOn.id)
16695
+ isSelected: typeof selected.addOnId !== "undefined" ? addOn.id === selected.addOnId : (data.company?.addOns || []).some(
16696
+ (currentAddOn) => addOn.id === currentAddOn.id
16697
+ )
16588
16698
  }))
16589
16699
  );
16590
- const currentUsageBasedEntitlements = data.activeUsageBasedEntitlements.reduce(
16591
- (acc, usageData) => {
16592
- const featureUsage = data.featureUsage?.features.find(
16593
- (usage2) => usage2.feature?.id === usageData.featureId
16594
- );
16595
- const allocation = featureUsage?.allocation || 0;
16596
- const usage = featureUsage?.usage || 0;
16597
- acc.push({
16598
- usageData,
16599
- allocation,
16600
- quantity: allocation ?? usage,
16601
- usage
16602
- });
16603
- return acc;
16604
- },
16605
- []
16606
- );
16607
16700
  const createActiveUsageBasedEntitlementsReducer = useCallback7(
16608
16701
  (period = planPeriod) => (acc, entitlement) => {
16609
16702
  if (entitlement.priceBehavior && (period === "month" && entitlement.meteredMonthlyPrice || period === "year" && entitlement.meteredYearlyPrice)) {
@@ -16629,19 +16722,13 @@ var CheckoutDialog = ({ top = 0 }) => {
16629
16722
  []
16630
16723
  )
16631
16724
  );
16632
- const currentPlan = useMemo5(
16633
- () => availablePlans.find(
16634
- (plan) => plan.id === data.company?.plan?.id && data.company?.plan.planPeriod === planPeriod
16635
- ),
16636
- [data.company?.plan, planPeriod, availablePlans]
16637
- );
16638
16725
  const payInAdvanceEntitlements = useMemo5(
16639
16726
  () => usageBasedEntitlements.filter(
16640
16727
  ({ entitlement }) => entitlement.priceBehavior === "pay_in_advance"
16641
16728
  ),
16642
16729
  [usageBasedEntitlements]
16643
16730
  );
16644
- const hasActiveAddOns = addOns.some((addOn) => addOn.isSelected === true);
16731
+ const hasActiveAddOns = addOns.some((addOn) => addOn.isSelected);
16645
16732
  const hasActivePayInAdvanceEntitlements = payInAdvanceEntitlements.some(
16646
16733
  ({ quantity }) => quantity > 0
16647
16734
  );
@@ -16691,7 +16778,7 @@ var CheckoutDialog = ({ top = 0 }) => {
16691
16778
  if (selected.usage) {
16692
16779
  return "usage";
16693
16780
  }
16694
- if (selected.planId !== currentPlan?.id) {
16781
+ if (selected.planId !== data.company?.plan?.id) {
16695
16782
  return checkoutStages.some((stage) => stage.id === "usage") ? "usage" : checkoutStages.some((stage) => stage.id === "addons") ? "addons" : "plan";
16696
16783
  }
16697
16784
  return "plan";
@@ -17036,27 +17123,24 @@ var CheckoutDialog = ({ top = 0 }) => {
17036
17123
  /* @__PURE__ */ jsx17(
17037
17124
  Sidebar,
17038
17125
  {
17126
+ planPeriod,
17127
+ selectedPlan,
17039
17128
  addOns,
17129
+ usageBasedEntitlements,
17040
17130
  charges,
17041
17131
  checkoutRef,
17042
17132
  checkoutStage,
17043
17133
  checkoutStages,
17044
- currentAddOns,
17045
- currentUsageBasedEntitlements,
17046
17134
  error,
17047
- currentPlan,
17048
17135
  isLoading,
17049
17136
  paymentMethodId,
17050
- planPeriod,
17051
17137
  promoCode,
17052
17138
  requiresPayment,
17053
- selectedPlan,
17054
17139
  setCheckoutStage: (stage) => setCheckoutStage(stage),
17055
17140
  setError: (msg) => setError(msg),
17141
+ setIsLoading,
17056
17142
  showPaymentForm,
17057
- toggleLoading: () => setIsLoading((prev2) => !prev2),
17058
- updatePromoCode: (code) => updatePromoCode(code),
17059
- usageBasedEntitlements
17143
+ updatePromoCode: (code) => updatePromoCode(code)
17060
17144
  }
17061
17145
  )
17062
17146
  ]
@@ -17255,20 +17339,205 @@ var PeriodToggle = ({
17255
17339
  );
17256
17340
  };
17257
17341
 
17258
- // src/components/ui/badge/Badge.tsx
17342
+ // src/components/shared/unsubscribe-dialog/UnsubscribeDialog.tsx
17343
+ import { useCallback as useCallback8, useMemo as useMemo7, useState as useState10 } from "react";
17259
17344
  import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
17345
+ var UnsubscribeDialog = () => {
17346
+ const { t: t2 } = useTranslation();
17347
+ const theme = nt();
17348
+ const { data, setLayout, setSelected } = useEmbed();
17349
+ const [error, setError] = useState10();
17350
+ const [isLoading, setIsLoading] = useState10(false);
17351
+ const planPeriod = useMemo7(
17352
+ () => data.company?.plan?.planPeriod ?? "month",
17353
+ [data.company?.plan?.planPeriod]
17354
+ );
17355
+ const { plans: availablePlans, addOns: availableAddOns } = useAvailablePlans(planPeriod);
17356
+ const selectedPlan = useMemo7(
17357
+ () => availablePlans.find(
17358
+ (plan) => plan.id === data.company?.plan?.id && data.company?.plan.planPeriod === planPeriod
17359
+ ),
17360
+ [data.company?.plan, planPeriod, availablePlans]
17361
+ );
17362
+ const usageBasedEntitlements = (selectedPlan?.entitlements || []).reduce(
17363
+ (acc, entitlement) => {
17364
+ if (entitlement.priceBehavior && (planPeriod === "month" && entitlement.meteredMonthlyPrice || planPeriod === "year" && entitlement.meteredYearlyPrice)) {
17365
+ const featureUsage = data.featureUsage?.features.find(
17366
+ (usage2) => usage2.feature?.id === entitlement.feature?.id
17367
+ );
17368
+ const allocation = featureUsage?.allocation ?? 0;
17369
+ const usage = featureUsage?.usage ?? 0;
17370
+ acc.push({
17371
+ entitlement,
17372
+ allocation,
17373
+ quantity: allocation,
17374
+ usage
17375
+ });
17376
+ }
17377
+ return acc;
17378
+ },
17379
+ []
17380
+ );
17381
+ const addOns = useMemo7(
17382
+ () => availableAddOns.map((available) => ({
17383
+ ...available,
17384
+ isSelected: data.company?.addOns.some((current) => available.id === current.id) ?? false
17385
+ })),
17386
+ [data.company?.addOns, availableAddOns]
17387
+ );
17388
+ const cancelDate = new Date(
17389
+ data.subscription?.cancelAt || data.upcomingInvoice?.dueDate || Date.now()
17390
+ );
17391
+ const isLightBackground = useIsLightBackground();
17392
+ const handleClose = useCallback8(() => {
17393
+ setLayout("portal");
17394
+ }, [setLayout]);
17395
+ return /* @__PURE__ */ jsxs15(Modal, { id: "unsubscribe-dialog", size: "auto", children: [
17396
+ /* @__PURE__ */ jsx20(
17397
+ Box,
17398
+ {
17399
+ $display: "inline-flex",
17400
+ $position: "absolute",
17401
+ $top: 0,
17402
+ $right: 0,
17403
+ $zIndex: 1,
17404
+ $cursor: "pointer",
17405
+ onClick: handleClose,
17406
+ children: /* @__PURE__ */ jsx20(
17407
+ Icon2,
17408
+ {
17409
+ name: "close",
17410
+ style: {
17411
+ fontSize: 36,
17412
+ color: isLightBackground ? "hsla(0, 0%, 0%, 0.275)" : "hsla(0, 0%, 100%, 0.275)"
17413
+ }
17414
+ }
17415
+ )
17416
+ }
17417
+ ),
17418
+ /* @__PURE__ */ jsxs15(
17419
+ Flex,
17420
+ {
17421
+ $position: "relative",
17422
+ $flexDirection: "column",
17423
+ $height: "auto",
17424
+ $viewport: {
17425
+ md: {
17426
+ $flexDirection: "row",
17427
+ $height: "calc(100% - 5rem)"
17428
+ }
17429
+ },
17430
+ children: [
17431
+ /* @__PURE__ */ jsxs15(
17432
+ Flex,
17433
+ {
17434
+ $flexDirection: "column",
17435
+ $flexWrap: "wrap",
17436
+ $justifyContent: "space-around",
17437
+ $gap: "5rem",
17438
+ $padding: "2.5rem",
17439
+ children: [
17440
+ /* @__PURE__ */ jsxs15(Flex, { $flexDirection: "column", $flexWrap: "wrap", $gap: "0.5rem", children: [
17441
+ /* @__PURE__ */ jsx20(
17442
+ Text,
17443
+ {
17444
+ as: "h2",
17445
+ $font: theme.typography.heading2.fontFamily,
17446
+ $size: theme.typography.heading2.fontSize,
17447
+ $weight: theme.typography.heading2.fontWeight,
17448
+ $color: theme.typography.heading2.color,
17449
+ children: t2("Cancel subscription")
17450
+ }
17451
+ ),
17452
+ /* @__PURE__ */ jsxs15(
17453
+ Text,
17454
+ {
17455
+ as: "p",
17456
+ $font: theme.typography.text.fontFamily,
17457
+ $size: theme.typography.text.fontSize,
17458
+ $weight: theme.typography.text.fontWeight,
17459
+ $color: theme.typography.text.color,
17460
+ children: [
17461
+ t2(
17462
+ "You will retain access to your plan until the end of the billing period, on"
17463
+ ),
17464
+ " ",
17465
+ cancelDate ? toPrettyDate(cancelDate, {
17466
+ month: "numeric"
17467
+ }) : ""
17468
+ ]
17469
+ }
17470
+ )
17471
+ ] }),
17472
+ /* @__PURE__ */ jsxs15(Flex, { $flexDirection: "column", $flexWrap: "wrap", $gap: "0.5rem", children: [
17473
+ /* @__PURE__ */ jsx20(
17474
+ Text,
17475
+ {
17476
+ as: "p",
17477
+ $font: theme.typography.text.fontFamily,
17478
+ $size: theme.typography.text.fontSize,
17479
+ $weight: theme.typography.text.fontWeight,
17480
+ $color: theme.typography.text.color,
17481
+ children: t2("Not ready to cancel?")
17482
+ }
17483
+ ),
17484
+ /* @__PURE__ */ jsx20(
17485
+ EmbedButton,
17486
+ {
17487
+ onClick: () => {
17488
+ setSelected({
17489
+ planId: data.company?.plan?.id,
17490
+ addOnId: void 0,
17491
+ usage: false
17492
+ });
17493
+ setLayout("checkout");
17494
+ },
17495
+ $size: "sm",
17496
+ $color: "secondary",
17497
+ $variant: "ghost",
17498
+ $fullWidth: false,
17499
+ children: t2("Manage plan")
17500
+ }
17501
+ )
17502
+ ] })
17503
+ ]
17504
+ }
17505
+ ),
17506
+ /* @__PURE__ */ jsx20(
17507
+ Sidebar,
17508
+ {
17509
+ planPeriod,
17510
+ addOns,
17511
+ usageBasedEntitlements,
17512
+ error,
17513
+ isLoading,
17514
+ showHeader: false,
17515
+ showPaymentForm: false,
17516
+ requiresPayment: false,
17517
+ setError: (msg) => setError(msg),
17518
+ setIsLoading
17519
+ }
17520
+ )
17521
+ ]
17522
+ }
17523
+ )
17524
+ ] });
17525
+ };
17526
+
17527
+ // src/components/ui/badge/Badge.tsx
17528
+ import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
17260
17529
  var Badge = () => {
17261
17530
  const { t: t2 } = useTranslation();
17262
17531
  const { settings } = useEmbed();
17263
- return /* @__PURE__ */ jsxs15(
17532
+ return /* @__PURE__ */ jsxs16(
17264
17533
  Flex,
17265
17534
  {
17266
17535
  $justifyContent: settings.badge?.alignment || "start",
17267
17536
  $alignItems: "center",
17268
17537
  $gridColumn: "1 / -1",
17269
17538
  children: [
17270
- /* @__PURE__ */ jsx20(Box, { $fontSize: "0.75rem", $marginRight: "0.5rem", children: t2("Powered by") }),
17271
- /* @__PURE__ */ jsxs15(
17539
+ /* @__PURE__ */ jsx21(Box, { $fontSize: "0.75rem", $marginRight: "0.5rem", children: t2("Powered by") }),
17540
+ /* @__PURE__ */ jsxs16(
17272
17541
  "svg",
17273
17542
  {
17274
17543
  width: 86,
@@ -17276,77 +17545,77 @@ var Badge = () => {
17276
17545
  viewBox: "0 0 86 16",
17277
17546
  style: { marginTop: "0.125rem" },
17278
17547
  children: [
17279
- /* @__PURE__ */ jsx20(
17548
+ /* @__PURE__ */ jsx21(
17280
17549
  "path",
17281
17550
  {
17282
17551
  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",
17283
17552
  fill: "currentColor"
17284
17553
  }
17285
17554
  ),
17286
- /* @__PURE__ */ jsx20(
17555
+ /* @__PURE__ */ jsx21(
17287
17556
  "path",
17288
17557
  {
17289
17558
  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",
17290
17559
  fill: "currentColor"
17291
17560
  }
17292
17561
  ),
17293
- /* @__PURE__ */ jsx20(
17562
+ /* @__PURE__ */ jsx21(
17294
17563
  "path",
17295
17564
  {
17296
17565
  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",
17297
17566
  fill: "currentColor"
17298
17567
  }
17299
17568
  ),
17300
- /* @__PURE__ */ jsx20(
17569
+ /* @__PURE__ */ jsx21(
17301
17570
  "path",
17302
17571
  {
17303
17572
  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",
17304
17573
  fill: "currentColor"
17305
17574
  }
17306
17575
  ),
17307
- /* @__PURE__ */ jsx20(
17576
+ /* @__PURE__ */ jsx21(
17308
17577
  "path",
17309
17578
  {
17310
17579
  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",
17311
17580
  fill: "currentColor"
17312
17581
  }
17313
17582
  ),
17314
- /* @__PURE__ */ jsx20(
17583
+ /* @__PURE__ */ jsx21(
17315
17584
  "path",
17316
17585
  {
17317
17586
  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",
17318
17587
  fill: "currentColor"
17319
17588
  }
17320
17589
  ),
17321
- /* @__PURE__ */ jsx20(
17590
+ /* @__PURE__ */ jsx21(
17322
17591
  "path",
17323
17592
  {
17324
17593
  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",
17325
17594
  fill: "currentColor"
17326
17595
  }
17327
17596
  ),
17328
- /* @__PURE__ */ jsx20(
17597
+ /* @__PURE__ */ jsx21(
17329
17598
  "path",
17330
17599
  {
17331
17600
  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",
17332
17601
  fill: "currentColor"
17333
17602
  }
17334
17603
  ),
17335
- /* @__PURE__ */ jsx20(
17604
+ /* @__PURE__ */ jsx21(
17336
17605
  "path",
17337
17606
  {
17338
17607
  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",
17339
17608
  fill: "currentColor"
17340
17609
  }
17341
17610
  ),
17342
- /* @__PURE__ */ jsx20(
17611
+ /* @__PURE__ */ jsx21(
17343
17612
  "path",
17344
17613
  {
17345
17614
  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",
17346
17615
  fill: "currentColor"
17347
17616
  }
17348
17617
  ),
17349
- /* @__PURE__ */ jsx20(
17618
+ /* @__PURE__ */ jsx21(
17350
17619
  "path",
17351
17620
  {
17352
17621
  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",
@@ -17362,11 +17631,10 @@ var Badge = () => {
17362
17631
  };
17363
17632
 
17364
17633
  // src/components/layout/RenderLayout.tsx
17365
- import { useEffect as useEffect6, useState as useState10 } from "react";
17366
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
17634
+ import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
17367
17635
  var Disabled = () => {
17368
17636
  const theme = nt();
17369
- return /* @__PURE__ */ jsx21(Box, { $width: "max-content", $height: "max-content", $margin: "0 auto", children: /* @__PURE__ */ jsx21(Card, { children: /* @__PURE__ */ jsxs16(
17637
+ return /* @__PURE__ */ jsx22(Box, { $width: "max-content", $height: "max-content", $margin: "0 auto", children: /* @__PURE__ */ jsx22(Card, { children: /* @__PURE__ */ jsxs17(
17370
17638
  Element,
17371
17639
  {
17372
17640
  as: Flex,
@@ -17375,7 +17643,7 @@ var Disabled = () => {
17375
17643
  $alignItems: "center",
17376
17644
  $whiteSpace: "nowrap",
17377
17645
  children: [
17378
- /* @__PURE__ */ jsx21(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx21(
17646
+ /* @__PURE__ */ jsx22(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx22(
17379
17647
  Text,
17380
17648
  {
17381
17649
  as: "h1",
@@ -17386,7 +17654,7 @@ var Disabled = () => {
17386
17654
  children: "Portal not found"
17387
17655
  }
17388
17656
  ) }),
17389
- /* @__PURE__ */ jsx21(
17657
+ /* @__PURE__ */ jsx22(
17390
17658
  Text,
17391
17659
  {
17392
17660
  as: "p",
@@ -17401,71 +17669,11 @@ var Disabled = () => {
17401
17669
  }
17402
17670
  ) }) });
17403
17671
  };
17404
- var Success = () => {
17405
- const theme = nt();
17406
- const { hydrate, data, api, setLayout, isPending } = useEmbed();
17407
- const [isOpen, setIsOpen] = useState10(true);
17408
- useEffect6(() => {
17409
- if (api && data.component?.id) {
17410
- hydrate();
17411
- setTimeout(() => setIsOpen(false), 2e3);
17412
- }
17413
- }, [api, data.component?.id, hydrate]);
17414
- useEffect6(() => {
17415
- if (!isPending && !isOpen) {
17416
- setLayout("portal");
17417
- }
17418
- }, [isPending, isOpen, setLayout]);
17419
- return /* @__PURE__ */ jsx21(Box, { $width: "max-content", $height: "max-content", $margin: "0 auto", children: /* @__PURE__ */ jsx21(Card, { children: /* @__PURE__ */ jsxs16(
17420
- Element,
17421
- {
17422
- as: Flex,
17423
- $flexDirection: "column",
17424
- $justifyContent: "center",
17425
- $alignItems: "center",
17426
- $whiteSpace: "nowrap",
17427
- children: [
17428
- /* @__PURE__ */ jsx21(Box, { $marginBottom: "1.5rem", children: /* @__PURE__ */ jsx21(
17429
- IconRound,
17430
- {
17431
- name: "check",
17432
- size: "3xl",
17433
- colors: [theme.card.background, theme.primary]
17434
- }
17435
- ) }),
17436
- /* @__PURE__ */ jsx21(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx21(
17437
- Text,
17438
- {
17439
- as: "h1",
17440
- $font: theme.typography.heading1.fontFamily,
17441
- $size: theme.typography.heading1.fontSize,
17442
- $weight: theme.typography.heading1.fontWeight,
17443
- $color: theme.typography.heading1.color,
17444
- children: "Subscription updated!"
17445
- }
17446
- ) }),
17447
- /* @__PURE__ */ jsx21(
17448
- Text,
17449
- {
17450
- as: "p",
17451
- $font: theme.typography.text.fontFamily,
17452
- $size: theme.typography.text.fontSize,
17453
- $weight: theme.typography.text.fontWeight,
17454
- $color: theme.typography.text.color,
17455
- children: "Loading\u2026"
17456
- }
17457
- )
17458
- ]
17459
- }
17460
- ) }) });
17461
- };
17462
17672
  var RenderLayout = ({ children }) => {
17463
17673
  const { layout } = useEmbed();
17464
17674
  switch (layout) {
17465
17675
  case "disabled":
17466
- return /* @__PURE__ */ jsx21(Disabled, {});
17467
- case "success":
17468
- return /* @__PURE__ */ jsx21(Success, {});
17676
+ return /* @__PURE__ */ jsx22(Disabled, {});
17469
17677
  default:
17470
17678
  return children;
17471
17679
  }
@@ -17490,14 +17698,14 @@ var StyledViewport = dt(Box).attrs(({ theme }) => ({
17490
17698
  `;
17491
17699
 
17492
17700
  // src/components/layout/viewport/Viewport.tsx
17493
- import { Fragment as Fragment9, jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
17701
+ import { Fragment as Fragment9, jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
17494
17702
  var Viewport = forwardRef4(
17495
17703
  ({ children, portal, ...props }, ref) => {
17496
17704
  const { data, layout } = useEmbed();
17497
17705
  const [top, setTop] = useState11(0);
17498
17706
  const canCheckout = data.capabilities?.checkout ?? true;
17499
17707
  useLayoutEffect5(() => {
17500
- if (layout !== "checkout") {
17708
+ if (layout !== "checkout" && layout !== "unsubscribe") {
17501
17709
  return;
17502
17710
  }
17503
17711
  const parent = portal || document.body;
@@ -17510,19 +17718,20 @@ var Viewport = forwardRef4(
17510
17718
  parent.style.overflow = "";
17511
17719
  };
17512
17720
  }, [layout, portal]);
17513
- return /* @__PURE__ */ jsxs17(Fragment9, { children: [
17514
- /* @__PURE__ */ jsxs17(StyledViewport, { ref, ...props, children: [
17515
- /* @__PURE__ */ jsx22(RenderLayout, { children }),
17516
- /* @__PURE__ */ jsx22(Badge, {})
17721
+ return /* @__PURE__ */ jsxs18(Fragment9, { children: [
17722
+ /* @__PURE__ */ jsxs18(StyledViewport, { ref, ...props, children: [
17723
+ /* @__PURE__ */ jsx23(RenderLayout, { children }),
17724
+ /* @__PURE__ */ jsx23(Badge, {})
17517
17725
  ] }),
17518
- canCheckout && layout === "checkout" && createPortal2(/* @__PURE__ */ jsx22(CheckoutDialog, { top }), portal || document.body)
17726
+ canCheckout && layout === "checkout" && createPortal2(/* @__PURE__ */ jsx23(CheckoutDialog, { top }), portal || document.body),
17727
+ layout === "unsubscribe" && createPortal2(/* @__PURE__ */ jsx23(UnsubscribeDialog, {}), portal || document.body)
17519
17728
  ] });
17520
17729
  }
17521
17730
  );
17522
17731
  Viewport.displayName = "Viewport";
17523
17732
 
17524
17733
  // src/components/layout/column/Column.tsx
17525
- import { forwardRef as forwardRef6 } from "react";
17734
+ import { Children as Children2, forwardRef as forwardRef6 } from "react";
17526
17735
 
17527
17736
  // src/components/layout/card/Card.tsx
17528
17737
  import { forwardRef as forwardRef5 } from "react";
@@ -17536,8 +17745,9 @@ var StyledCard = dt.div(({ theme }) => {
17536
17745
  const borderColor = l2 > 50 ? "hsla(0, 0%, 0%, 0.1)" : "hsla(0, 0%, 100%, 0.2)";
17537
17746
  const borderRadius = `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`;
17538
17747
  return lt`
17539
- font-size: ${TEXT_BASE_SIZE}px;
17748
+ position: relative;
17540
17749
  box-sizing: border-box;
17750
+ font-size: ${TEXT_BASE_SIZE}px;
17541
17751
 
17542
17752
  *,
17543
17753
  *::before,
@@ -17568,10 +17778,31 @@ var StyledCard = dt.div(({ theme }) => {
17568
17778
  });
17569
17779
 
17570
17780
  // src/components/layout/card/Card.tsx
17571
- import { jsx as jsx23 } from "react/jsx-runtime";
17781
+ import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
17572
17782
  var Card = forwardRef5(
17573
17783
  ({ children, className }, ref) => {
17574
- return /* @__PURE__ */ jsx23(StyledCard, { ref, className, children });
17784
+ const { isPending } = useEmbed();
17785
+ const theme = nt();
17786
+ return /* @__PURE__ */ jsxs19(StyledCard, { ref, className, children: [
17787
+ isPending && /* @__PURE__ */ jsx24(
17788
+ Flex,
17789
+ {
17790
+ $position: "absolute",
17791
+ $top: 0,
17792
+ $left: 0,
17793
+ $zIndex: 1,
17794
+ $width: "100%",
17795
+ $height: "100%",
17796
+ $justifyContent: "center",
17797
+ $alignItems: "center",
17798
+ $backgroundColor: hsla(theme.card.background, 0.8),
17799
+ $backdropFilter: "blur(8px)",
17800
+ $borderRadius: `${theme.card.borderRadius / TEXT_BASE_SIZE}rem`,
17801
+ children: /* @__PURE__ */ jsx24(Loader, { $color: theme.primary })
17802
+ }
17803
+ ),
17804
+ children
17805
+ ] });
17575
17806
  }
17576
17807
  );
17577
17808
  Card.displayName = "Card";
@@ -17582,18 +17813,18 @@ var StyledColumn = dt.div`
17582
17813
  `;
17583
17814
 
17584
17815
  // src/components/layout/column/Column.tsx
17585
- import { jsx as jsx24 } from "react/jsx-runtime";
17816
+ import { jsx as jsx25 } from "react/jsx-runtime";
17586
17817
  var Column = forwardRef6(
17587
17818
  ({ children, basis, ...props }, ref) => {
17588
- return /* @__PURE__ */ jsx24(StyledColumn, { ref, ...props, children: /* @__PURE__ */ jsx24(Card, { children }) });
17819
+ return /* @__PURE__ */ jsx25(StyledColumn, { ref, ...props, children: Children2.count(children) > 0 ? /* @__PURE__ */ jsx25(Card, { children }) : children });
17589
17820
  }
17590
17821
  );
17591
17822
  Column.displayName = "Column";
17592
17823
 
17593
17824
  // src/components/elements/included-features/Details.tsx
17594
- import { useMemo as useMemo7 } from "react";
17825
+ import { useMemo as useMemo8 } from "react";
17595
17826
  var import_pluralize4 = __toESM(require_pluralize());
17596
- import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
17827
+ import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
17597
17828
  var Details = ({
17598
17829
  details,
17599
17830
  shouldWrapChildren,
@@ -17611,7 +17842,7 @@ var Details = ({
17611
17842
  const { t: t2 } = useTranslation();
17612
17843
  const theme = nt();
17613
17844
  const { data } = useEmbed();
17614
- const currency = useMemo7(() => {
17845
+ const currency = useMemo8(() => {
17615
17846
  if (data.company?.plan?.planPeriod === "month") {
17616
17847
  return monthlyUsageBasedPrice?.currency;
17617
17848
  }
@@ -17623,7 +17854,7 @@ var Details = ({
17623
17854
  monthlyUsageBasedPrice,
17624
17855
  yearlyUsageBasedPrice
17625
17856
  ]);
17626
- const price = useMemo7(() => {
17857
+ const price = useMemo8(() => {
17627
17858
  if (data.company?.plan?.planPeriod === "month") {
17628
17859
  return monthlyUsageBasedPrice?.price;
17629
17860
  }
@@ -17635,7 +17866,7 @@ var Details = ({
17635
17866
  monthlyUsageBasedPrice,
17636
17867
  yearlyUsageBasedPrice
17637
17868
  ]);
17638
- const text = useMemo7(() => {
17869
+ const text = useMemo8(() => {
17639
17870
  if (!feature?.name) {
17640
17871
  return;
17641
17872
  }
@@ -17651,8 +17882,8 @@ var Details = ({
17651
17882
  if (!priceBehavior) {
17652
17883
  return t2("Unlimited", { item: (0, import_pluralize4.default)(feature.name) });
17653
17884
  }
17654
- }, [allocation, feature?.name, price, priceBehavior, t2, currency]);
17655
- const usageText = useMemo7(() => {
17885
+ }, [t2, allocation, feature?.name, price, priceBehavior, currency]);
17886
+ const usageText = useMemo8(() => {
17656
17887
  if (!feature?.name) {
17657
17888
  return;
17658
17889
  }
@@ -17681,12 +17912,12 @@ var Details = ({
17681
17912
  });
17682
17913
  }
17683
17914
  }, [
17915
+ t2,
17684
17916
  allocation,
17685
17917
  data.company?.plan?.planPeriod,
17686
17918
  feature?.name,
17687
17919
  price,
17688
17920
  priceBehavior,
17689
- t2,
17690
17921
  usage,
17691
17922
  usageData,
17692
17923
  currency
@@ -17694,14 +17925,14 @@ var Details = ({
17694
17925
  if (!text) {
17695
17926
  return null;
17696
17927
  }
17697
- return /* @__PURE__ */ jsxs18(
17928
+ return /* @__PURE__ */ jsxs20(
17698
17929
  Box,
17699
17930
  {
17700
17931
  $flexBasis: "min-content",
17701
17932
  $flexGrow: "1",
17702
17933
  $textAlign: shouldWrapChildren ? "left" : "right",
17703
17934
  children: [
17704
- props.entitlement.isVisible && /* @__PURE__ */ jsx25(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsx25(
17935
+ props.entitlement.isVisible && /* @__PURE__ */ jsx26(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsx26(
17705
17936
  Text,
17706
17937
  {
17707
17938
  $font: theme.typography[props.entitlement.fontStyle].fontFamily,
@@ -17712,7 +17943,7 @@ var Details = ({
17712
17943
  children: text
17713
17944
  }
17714
17945
  ) }),
17715
- props.usage.isVisible && usageText && /* @__PURE__ */ jsx25(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsx25(
17946
+ props.usage.isVisible && usageText && /* @__PURE__ */ jsx26(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsx26(
17716
17947
  Text,
17717
17948
  {
17718
17949
  $font: theme.typography[props.usage.fontStyle].fontFamily,
@@ -17729,7 +17960,7 @@ var Details = ({
17729
17960
  };
17730
17961
 
17731
17962
  // src/components/elements/included-features/IncludedFeatures.tsx
17732
- import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
17963
+ import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
17733
17964
  function resolveDesignProps(props) {
17734
17965
  return {
17735
17966
  header: {
@@ -17767,33 +17998,15 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17767
17998
  const shouldWrapChildren = useWrapChildren(elements.current);
17768
17999
  const isLightBackground = useIsLightBackground();
17769
18000
  const [showCount, setShowCount] = useState12(VISIBLE_ENTITLEMENT_COUNT);
17770
- const entitlements = (props.visibleFeatures ? props.visibleFeatures : data.featureUsage?.features.sort((a2, b2) => {
17771
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name > b2.feature?.name) {
17772
- return 1;
17773
- }
17774
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name < b2.feature?.name) {
17775
- return -1;
17776
- }
17777
- return 0;
17778
- }).reduce((acc, usage) => {
17779
- if (usage.feature?.id) {
17780
- acc.push(usage.feature.id);
17781
- }
17782
- return acc;
17783
- }, []) || []).reduce(
17784
- (acc, id) => {
17785
- const mappedFeatureUsage = data.featureUsage?.features.find(
17786
- (usage) => usage.feature?.id === id
17787
- );
18001
+ const entitlements = (data.featureUsage?.features || []).reduce(
18002
+ (acc, usage) => {
17788
18003
  const mappedUsageData = data.activeUsageBasedEntitlements.find(
17789
- (entitlement) => entitlement.featureId === id
18004
+ (entitlement) => entitlement.featureId === usage.feature?.id
17790
18005
  );
17791
- if (mappedFeatureUsage) {
17792
- acc.push({
17793
- featureUsage: mappedFeatureUsage,
17794
- usageData: mappedUsageData
17795
- });
17796
- }
18006
+ acc.push({
18007
+ featureUsage: usage,
18008
+ usageData: mappedUsageData
18009
+ });
17797
18010
  return acc;
17798
18011
  },
17799
18012
  []
@@ -17810,7 +18023,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17810
18023
  }
17811
18024
  const shouldShowExpand = featureListSize > VISIBLE_ENTITLEMENT_COUNT;
17812
18025
  const isExpanded = showCount > VISIBLE_ENTITLEMENT_COUNT;
17813
- return /* @__PURE__ */ jsxs19(
18026
+ return /* @__PURE__ */ jsxs21(
17814
18027
  Element,
17815
18028
  {
17816
18029
  as: Flex,
@@ -17819,7 +18032,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17819
18032
  $flexDirection: "column",
17820
18033
  $gap: "1rem",
17821
18034
  children: [
17822
- props.header.isVisible && /* @__PURE__ */ jsx26(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx26(
18035
+ props.header.isVisible && /* @__PURE__ */ jsx27(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx27(
17823
18036
  Text,
17824
18037
  {
17825
18038
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -17832,7 +18045,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17832
18045
  entitlements.slice(0, showCount).map((entitlement, index) => {
17833
18046
  const { entitlementExpirationDate, feature } = entitlement.featureUsage || {};
17834
18047
  const shouldShowDetails = feature?.name && (feature?.featureType === "event" || feature?.featureType === "trait");
17835
- return /* @__PURE__ */ jsxs19(
18048
+ return /* @__PURE__ */ jsxs21(
17836
18049
  Flex,
17837
18050
  {
17838
18051
  ref: (el) => {
@@ -17845,7 +18058,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17845
18058
  $alignItems: "center",
17846
18059
  $gap: "1rem",
17847
18060
  children: [
17848
- /* @__PURE__ */ jsxs19(
18061
+ /* @__PURE__ */ jsxs21(
17849
18062
  Flex,
17850
18063
  {
17851
18064
  $alignItems: "center",
@@ -17853,7 +18066,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17853
18066
  $flexBasis: "min-content",
17854
18067
  $gap: "1rem",
17855
18068
  children: [
17856
- props.icons.isVisible && feature?.icon && /* @__PURE__ */ jsx26(
18069
+ props.icons.isVisible && feature?.icon && /* @__PURE__ */ jsx27(
17857
18070
  IconRound,
17858
18071
  {
17859
18072
  name: feature.icon,
@@ -17864,7 +18077,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17864
18077
  ]
17865
18078
  }
17866
18079
  ),
17867
- feature?.name && /* @__PURE__ */ jsx26(
18080
+ feature?.name && /* @__PURE__ */ jsx27(
17868
18081
  Text,
17869
18082
  {
17870
18083
  $font: theme.typography[props.icons.fontStyle].fontFamily,
@@ -17874,7 +18087,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17874
18087
  children: feature.name
17875
18088
  }
17876
18089
  ),
17877
- props.entitlementExpiration.isVisible && entitlementExpirationDate && /* @__PURE__ */ jsxs19(
18090
+ props.entitlementExpiration.isVisible && entitlementExpirationDate && /* @__PURE__ */ jsxs21(
17878
18091
  Text,
17879
18092
  {
17880
18093
  $font: theme.typography[props.entitlementExpiration.fontStyle].fontFamily,
@@ -17894,7 +18107,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17894
18107
  ]
17895
18108
  }
17896
18109
  ),
17897
- shouldShowDetails && /* @__PURE__ */ jsx26(
18110
+ shouldShowDetails && /* @__PURE__ */ jsx27(
17898
18111
  Details,
17899
18112
  {
17900
18113
  details: entitlement,
@@ -17907,8 +18120,8 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17907
18120
  index
17908
18121
  );
17909
18122
  }),
17910
- shouldShowExpand && /* @__PURE__ */ jsxs19(Flex, { $alignItems: "center", $justifyContent: "start", $marginTop: "1rem", children: [
17911
- /* @__PURE__ */ jsx26(
18123
+ shouldShowExpand && /* @__PURE__ */ jsxs21(Flex, { $alignItems: "center", $justifyContent: "start", $marginTop: "1rem", children: [
18124
+ /* @__PURE__ */ jsx27(
17912
18125
  Icon2,
17913
18126
  {
17914
18127
  name: isExpanded ? "chevron-up" : "chevron-down",
@@ -17920,7 +18133,7 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17920
18133
  }
17921
18134
  }
17922
18135
  ),
17923
- /* @__PURE__ */ jsx26(
18136
+ /* @__PURE__ */ jsx27(
17924
18137
  Text,
17925
18138
  {
17926
18139
  onClick: handleToggleShowAll,
@@ -17941,8 +18154,8 @@ var IncludedFeatures = forwardRef7(({ className, ...rest }, ref) => {
17941
18154
  IncludedFeatures.displayName = "IncludedFeatures";
17942
18155
 
17943
18156
  // src/components/elements/invoices/Invoices.tsx
17944
- import { forwardRef as forwardRef8, useEffect as useEffect7, useState as useState13 } from "react";
17945
- import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
18157
+ import { forwardRef as forwardRef8, useEffect as useEffect6, useState as useState13 } from "react";
18158
+ import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
17946
18159
  function resolveDesignProps2(props) {
17947
18160
  return {
17948
18161
  header: {
@@ -17978,7 +18191,7 @@ function formatInvoices(invoices) {
17978
18191
  }
17979
18192
  var InvoiceDate = ({ date, fontStyle, url }) => {
17980
18193
  const theme = nt();
17981
- const dateText = /* @__PURE__ */ jsx27(
18194
+ const dateText = /* @__PURE__ */ jsx28(
17982
18195
  Text,
17983
18196
  {
17984
18197
  ...url && { onClick: () => {
@@ -17991,7 +18204,7 @@ var InvoiceDate = ({ date, fontStyle, url }) => {
17991
18204
  }
17992
18205
  );
17993
18206
  if (url) {
17994
- return /* @__PURE__ */ jsx27("a", { href: url, target: "_blank", rel: "noreferrer", children: dateText });
18207
+ return /* @__PURE__ */ jsx28("a", { href: url, target: "_blank", rel: "noreferrer", children: dateText });
17995
18208
  }
17996
18209
  return dateText;
17997
18210
  };
@@ -18007,7 +18220,7 @@ var Invoices = forwardRef8(({ className, data, ...rest }, ref) => {
18007
18220
  (prev2) => prev2 !== props.limit.number ? props.limit.number : MAX_VISIBLE_INVOICE_COUNT
18008
18221
  );
18009
18222
  };
18010
- useEffect7(() => {
18223
+ useEffect6(() => {
18011
18224
  api?.listInvoices().then(({ data: data2 }) => {
18012
18225
  setInvoices(formatInvoices(data2));
18013
18226
  });
@@ -18015,8 +18228,8 @@ var Invoices = forwardRef8(({ className, data, ...rest }, ref) => {
18015
18228
  if (invoices.length === 0) {
18016
18229
  return null;
18017
18230
  }
18018
- return /* @__PURE__ */ jsx27(Element, { ref, className, children: /* @__PURE__ */ jsxs20(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18019
- props.header.isVisible && /* @__PURE__ */ jsx27(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ jsx27(
18231
+ return /* @__PURE__ */ jsx28(Element, { ref, className, children: /* @__PURE__ */ jsxs22(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18232
+ props.header.isVisible && /* @__PURE__ */ jsx28(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ jsx28(
18020
18233
  Text,
18021
18234
  {
18022
18235
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -18026,9 +18239,9 @@ var Invoices = forwardRef8(({ className, data, ...rest }, ref) => {
18026
18239
  children: t2("Invoices")
18027
18240
  }
18028
18241
  ) }),
18029
- /* @__PURE__ */ jsx27(Flex, { $flexDirection: "column", $gap: "0.5rem", children: invoices.slice(0, listSize).map(({ date, amount, url }, index) => {
18030
- return /* @__PURE__ */ jsxs20(Flex, { $justifyContent: "space-between", children: [
18031
- props.date.isVisible && date && /* @__PURE__ */ jsx27(
18242
+ /* @__PURE__ */ jsx28(Flex, { $flexDirection: "column", $gap: "0.5rem", children: invoices.slice(0, listSize).map(({ date, amount, url }, index) => {
18243
+ return /* @__PURE__ */ jsxs22(Flex, { $justifyContent: "space-between", children: [
18244
+ props.date.isVisible && date && /* @__PURE__ */ jsx28(
18032
18245
  InvoiceDate,
18033
18246
  {
18034
18247
  date,
@@ -18036,7 +18249,7 @@ var Invoices = forwardRef8(({ className, data, ...rest }, ref) => {
18036
18249
  url
18037
18250
  }
18038
18251
  ),
18039
- props.amount.isVisible && /* @__PURE__ */ jsx27(
18252
+ props.amount.isVisible && /* @__PURE__ */ jsx28(
18040
18253
  Text,
18041
18254
  {
18042
18255
  $font: theme.typography[props.amount.fontStyle].fontFamily,
@@ -18048,15 +18261,15 @@ var Invoices = forwardRef8(({ className, data, ...rest }, ref) => {
18048
18261
  )
18049
18262
  ] }, index);
18050
18263
  }) }),
18051
- props.collapse.isVisible && invoices.length > props.limit.number && /* @__PURE__ */ jsxs20(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
18052
- /* @__PURE__ */ jsx27(
18264
+ props.collapse.isVisible && invoices.length > props.limit.number && /* @__PURE__ */ jsxs22(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
18265
+ /* @__PURE__ */ jsx28(
18053
18266
  Icon2,
18054
18267
  {
18055
18268
  name: `chevron-${listSize === props.limit.number ? "down" : "up"}`,
18056
18269
  style: { color: "#D0D0D0" }
18057
18270
  }
18058
18271
  ),
18059
- /* @__PURE__ */ jsx27(
18272
+ /* @__PURE__ */ jsx28(
18060
18273
  Text,
18061
18274
  {
18062
18275
  onClick: toggleListSize,
@@ -18094,7 +18307,7 @@ var Container4 = dt(Flex)`
18094
18307
  `;
18095
18308
 
18096
18309
  // src/components/elements/metered-features/MeteredFeatures.tsx
18097
- import { Fragment as Fragment10, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
18310
+ import { Fragment as Fragment10, jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
18098
18311
  function resolveDesignProps3(props) {
18099
18312
  return {
18100
18313
  isVisible: props.isVisible ?? true,
@@ -18144,7 +18357,7 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18144
18357
  if (!shouldShowFeatures) {
18145
18358
  return null;
18146
18359
  }
18147
- return /* @__PURE__ */ jsx28(Container4, { ref, className, children: featureUsage.map(
18360
+ return /* @__PURE__ */ jsx29(Container4, { ref, className, children: featureUsage.map(
18148
18361
  ({
18149
18362
  allocation,
18150
18363
  feature,
@@ -18163,8 +18376,8 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18163
18376
  price = yearlyUsageBasedPrice?.price;
18164
18377
  currency = yearlyUsageBasedPrice?.currency;
18165
18378
  }
18166
- return /* @__PURE__ */ jsxs21(Element, { as: Flex, $gap: "1.5rem", children: [
18167
- props.icon.isVisible && feature?.icon && /* @__PURE__ */ jsx28(
18379
+ return /* @__PURE__ */ jsxs23(Element, { as: Flex, $gap: "1.5rem", children: [
18380
+ props.icon.isVisible && feature?.icon && /* @__PURE__ */ jsx29(
18168
18381
  IconRound,
18169
18382
  {
18170
18383
  name: feature.icon,
@@ -18175,8 +18388,8 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18175
18388
  ]
18176
18389
  }
18177
18390
  ),
18178
- /* @__PURE__ */ jsxs21(Flex, { $flexDirection: "column", $gap: "2rem", $flexGrow: "1", children: [
18179
- /* @__PURE__ */ jsxs21(
18391
+ /* @__PURE__ */ jsxs23(Flex, { $flexDirection: "column", $gap: "2rem", $flexGrow: "1", children: [
18392
+ /* @__PURE__ */ jsxs23(
18180
18393
  Flex,
18181
18394
  {
18182
18395
  ref: (el) => {
@@ -18187,8 +18400,8 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18187
18400
  $flexWrap: "wrap",
18188
18401
  $gap: "1rem",
18189
18402
  children: [
18190
- feature?.name && /* @__PURE__ */ jsxs21(Flex, { $flexDirection: "column", $gap: "0.5rem", $flexGrow: "1", children: [
18191
- /* @__PURE__ */ jsx28(
18403
+ feature?.name && /* @__PURE__ */ jsxs23(Flex, { $flexDirection: "column", $gap: "0.5rem", $flexGrow: "1", children: [
18404
+ /* @__PURE__ */ jsx29(
18192
18405
  Text,
18193
18406
  {
18194
18407
  as: Box,
@@ -18196,14 +18409,14 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18196
18409
  $size: theme.typography[props.header.fontStyle].fontSize,
18197
18410
  $weight: theme.typography[props.header.fontStyle].fontWeight,
18198
18411
  $color: theme.typography[props.header.fontStyle].color,
18199
- children: priceBehavior === "pay_as_you_go" ? typeof usage === "number" && /* @__PURE__ */ jsxs21(Fragment10, { children: [
18412
+ children: priceBehavior === "pay_as_you_go" ? typeof usage === "number" && /* @__PURE__ */ jsxs23(Fragment10, { children: [
18200
18413
  formatNumber(usage),
18201
18414
  " ",
18202
18415
  (0, import_pluralize5.default)(feature.name, usage)
18203
18416
  ] }) : feature.name
18204
18417
  }
18205
18418
  ),
18206
- props.description.isVisible && /* @__PURE__ */ jsx28(
18419
+ props.description.isVisible && /* @__PURE__ */ jsx29(
18207
18420
  Text,
18208
18421
  {
18209
18422
  as: Box,
@@ -18215,14 +18428,14 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18215
18428
  }
18216
18429
  )
18217
18430
  ] }),
18218
- (feature?.featureType === "event" || feature?.featureType === "trait") && feature?.name && /* @__PURE__ */ jsxs21(
18431
+ (feature?.featureType === "event" || feature?.featureType === "trait") && feature?.name && /* @__PURE__ */ jsxs23(
18219
18432
  Box,
18220
18433
  {
18221
18434
  $flexBasis: "min-content",
18222
18435
  $flexGrow: "1",
18223
18436
  $textAlign: shouldWrapChildren ? "left" : "right",
18224
18437
  children: [
18225
- props.usage.isVisible && /* @__PURE__ */ jsx28(
18438
+ props.usage.isVisible && /* @__PURE__ */ jsx29(
18226
18439
  Text,
18227
18440
  {
18228
18441
  as: Box,
@@ -18231,18 +18444,18 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18231
18444
  $weight: theme.typography[props.usage.fontStyle].fontWeight,
18232
18445
  $leading: 1.25,
18233
18446
  $color: theme.typography[props.usage.fontStyle].color,
18234
- children: priceBehavior === "pay_in_advance" ? typeof allocation === "number" && /* @__PURE__ */ jsxs21(Fragment10, { children: [
18447
+ children: priceBehavior === "pay_in_advance" ? typeof allocation === "number" && /* @__PURE__ */ jsxs23(Fragment10, { children: [
18235
18448
  formatNumber(allocation),
18236
18449
  " ",
18237
18450
  (0, import_pluralize5.default)(feature.name, allocation)
18238
- ] }) : priceBehavior === "pay_as_you_go" ? typeof price === "number" && typeof usage === "number" && formatCurrency(usage * price, currency) : typeof usage === "number" && /* @__PURE__ */ jsxs21(Fragment10, { children: [
18451
+ ] }) : priceBehavior === "pay_as_you_go" ? typeof price === "number" && typeof usage === "number" && formatCurrency(usage * price, currency) : typeof usage === "number" && /* @__PURE__ */ jsxs23(Fragment10, { children: [
18239
18452
  formatNumber(usage),
18240
18453
  " ",
18241
18454
  (0, import_pluralize5.default)(feature.name, usage)
18242
18455
  ] })
18243
18456
  }
18244
18457
  ),
18245
- props.allocation.isVisible && /* @__PURE__ */ jsx28(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsx28(
18458
+ props.allocation.isVisible && /* @__PURE__ */ jsx29(Box, { $whiteSpace: "nowrap", children: /* @__PURE__ */ jsx29(
18246
18459
  Text,
18247
18460
  {
18248
18461
  $font: theme.typography[props.allocation.fontStyle].fontFamily,
@@ -18266,8 +18479,8 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18266
18479
  ]
18267
18480
  }
18268
18481
  ),
18269
- props.isVisible && typeof usage === "number" && typeof allocation === "number" && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ jsxs21(Flex, { $gap: "2rem", children: [
18270
- /* @__PURE__ */ jsx28(
18482
+ props.isVisible && typeof usage === "number" && typeof allocation === "number" && priceBehavior !== "pay_as_you_go" && /* @__PURE__ */ jsxs23(Flex, { $gap: "2rem", children: [
18483
+ /* @__PURE__ */ jsx29(
18271
18484
  ProgressBar,
18272
18485
  {
18273
18486
  progress: usage / allocation * 100,
@@ -18279,9 +18492,10 @@ var MeteredFeatures = forwardRef9(({ className, ...rest }, ref) => {
18279
18492
  $flexGrow: "1"
18280
18493
  }
18281
18494
  ),
18282
- priceBehavior === "pay_in_advance" && /* @__PURE__ */ jsx28(
18495
+ priceBehavior === "pay_in_advance" && /* @__PURE__ */ jsx29(
18283
18496
  EmbedButton,
18284
18497
  {
18498
+ type: "button",
18285
18499
  onClick: () => {
18286
18500
  setSelected({ usage: true });
18287
18501
  setLayout("checkout");
@@ -18304,15 +18518,15 @@ MeteredFeatures.displayName = "MeteredFeatures";
18304
18518
  // src/components/elements/payment-method/PaymentMethod.tsx
18305
18519
  import {
18306
18520
  forwardRef as forwardRef10,
18307
- useCallback as useCallback8,
18308
- useEffect as useEffect8,
18521
+ useCallback as useCallback9,
18522
+ useEffect as useEffect7,
18309
18523
  useLayoutEffect as useLayoutEffect6,
18310
- useMemo as useMemo8,
18524
+ useMemo as useMemo9,
18311
18525
  useState as useState14
18312
18526
  } from "react";
18313
18527
  import { createPortal as createPortal3 } from "react-dom";
18314
18528
  import { Elements as Elements2 } from "@stripe/react-stripe-js";
18315
- import { Fragment as Fragment11, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
18529
+ import { Fragment as Fragment11, jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
18316
18530
  var PaymentElement2 = ({
18317
18531
  iconName,
18318
18532
  iconTitle,
@@ -18321,11 +18535,11 @@ var PaymentElement2 = ({
18321
18535
  paymentLast4
18322
18536
  }) => {
18323
18537
  const theme = nt();
18324
- return /* @__PURE__ */ jsx29(Fragment11, { children: /* @__PURE__ */ jsx29(Text, { $font: theme.typography.text.fontFamily, $size: 16, children: /* @__PURE__ */ jsxs22(Flex, { $flexDirection: "row", $alignItems: "center", children: [
18325
- iconName && /* @__PURE__ */ jsx29(Box, { children: /* @__PURE__ */ jsx29(Icon2, { name: iconName, title: iconTitle, style: iconStyles }) }),
18326
- /* @__PURE__ */ jsxs22(Flex, { $alignItems: "center", children: [
18327
- /* @__PURE__ */ jsx29(Box, { $lineHeight: "1", $marginRight: "4px", children: t(label) }),
18328
- paymentLast4 && /* @__PURE__ */ jsx29(Box, { $display: "inline-block", $fontWeight: "bold", children: paymentLast4 })
18538
+ return /* @__PURE__ */ jsx30(Fragment11, { children: /* @__PURE__ */ jsx30(Text, { $font: theme.typography.text.fontFamily, $size: 16, children: /* @__PURE__ */ jsxs24(Flex, { $flexDirection: "row", $alignItems: "center", children: [
18539
+ iconName && /* @__PURE__ */ jsx30(Box, { children: /* @__PURE__ */ jsx30(Icon2, { name: iconName, title: iconTitle, style: iconStyles }) }),
18540
+ /* @__PURE__ */ jsxs24(Flex, { $alignItems: "center", children: [
18541
+ /* @__PURE__ */ jsx30(Box, { $lineHeight: "1", $marginRight: "4px", children: t(label) }),
18542
+ paymentLast4 && /* @__PURE__ */ jsx30(Box, { $display: "inline-block", $fontWeight: "bold", children: paymentLast4 })
18329
18543
  ] })
18330
18544
  ] }) }) });
18331
18545
  };
@@ -18423,16 +18637,16 @@ var PaymentMethodElement = ({
18423
18637
  iconTitle: genericLabel,
18424
18638
  label: genericLabel
18425
18639
  };
18426
- return /* @__PURE__ */ jsx29(
18640
+ return /* @__PURE__ */ jsx30(
18427
18641
  PaymentElement2,
18428
18642
  {
18429
18643
  ...paymentMethodElementProps(iconName, iconTitle, label, paymentLast4)
18430
18644
  }
18431
18645
  );
18432
18646
  };
18433
- return /* @__PURE__ */ jsxs22(Flex, { $flexDirection: "column", $gap: `${sizeFactor}rem`, children: [
18434
- props.header.isVisible && /* @__PURE__ */ jsxs22(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
18435
- /* @__PURE__ */ jsx29(
18647
+ return /* @__PURE__ */ jsxs24(Flex, { $flexDirection: "column", $gap: `${sizeFactor}rem`, children: [
18648
+ props.header.isVisible && /* @__PURE__ */ jsxs24(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
18649
+ /* @__PURE__ */ jsx30(
18436
18650
  Text,
18437
18651
  {
18438
18652
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -18442,7 +18656,7 @@ var PaymentMethodElement = ({
18442
18656
  children: t2("Payment Method")
18443
18657
  }
18444
18658
  ),
18445
- props.functions.showExpiration && typeof monthsToExpiration === "number" && monthsToExpiration < 4 && /* @__PURE__ */ jsx29(
18659
+ props.functions.showExpiration && typeof monthsToExpiration === "number" && monthsToExpiration < 4 && /* @__PURE__ */ jsx30(
18446
18660
  Text,
18447
18661
  {
18448
18662
  $font: theme.typography.text.fontFamily,
@@ -18452,7 +18666,7 @@ var PaymentMethodElement = ({
18452
18666
  }
18453
18667
  )
18454
18668
  ] }),
18455
- /* @__PURE__ */ jsxs22(
18669
+ /* @__PURE__ */ jsxs24(
18456
18670
  Flex,
18457
18671
  {
18458
18672
  $justifyContent: "space-between",
@@ -18462,7 +18676,7 @@ var PaymentMethodElement = ({
18462
18676
  $borderRadius: "9999px",
18463
18677
  children: [
18464
18678
  renderPaymentMethodElement(),
18465
- props.functions.allowEdit && onEdit && /* @__PURE__ */ jsx29(
18679
+ props.functions.allowEdit && onEdit && /* @__PURE__ */ jsx30(
18466
18680
  Text,
18467
18681
  {
18468
18682
  onClick: onEdit,
@@ -18483,7 +18697,7 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18483
18697
  const props = resolveDesignProps4(rest);
18484
18698
  const { t: t2 } = useTranslation();
18485
18699
  const theme = nt();
18486
- const { api, data, layout, setLayout } = useEmbed();
18700
+ const { api, data, layout, hydrate, setLayout } = useEmbed();
18487
18701
  const isLightBackground = useIsLightBackground();
18488
18702
  const [isLoading, setIsLoading] = useState14(false);
18489
18703
  const [error, setError] = useState14();
@@ -18493,10 +18707,10 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18493
18707
  const [stripe, setStripe] = useState14(null);
18494
18708
  const [setupIntent, setSetupIntent] = useState14();
18495
18709
  const [top, setTop] = useState14(0);
18496
- const paymentMethod = useMemo8(() => {
18710
+ const paymentMethod = useMemo9(() => {
18497
18711
  return data.subscription?.paymentMethod;
18498
18712
  }, [data.subscription?.paymentMethod]);
18499
- const monthsToExpiration = useMemo8(() => {
18713
+ const monthsToExpiration = useMemo9(() => {
18500
18714
  let expiration;
18501
18715
  if (typeof paymentMethod?.cardExpYear === "number" && typeof paymentMethod?.cardExpMonth === "number") {
18502
18716
  const today = /* @__PURE__ */ new Date();
@@ -18509,7 +18723,7 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18509
18723
  }
18510
18724
  return expiration;
18511
18725
  }, [paymentMethod?.cardExpYear, paymentMethod?.cardExpMonth]);
18512
- const createSetupIntent = useCallback8(async () => {
18726
+ const createSetupIntent = useCallback9(async () => {
18513
18727
  if (!api || !data.component?.id) {
18514
18728
  return;
18515
18729
  }
@@ -18528,7 +18742,7 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18528
18742
  setIsLoading(false);
18529
18743
  }
18530
18744
  }, [t2, api, data.component?.id]);
18531
- const updatePaymentMethod = useCallback8(
18745
+ const updatePaymentMethod = useCallback9(
18532
18746
  async (id) => {
18533
18747
  if (!api || !id) {
18534
18748
  return;
@@ -18540,16 +18754,18 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18540
18754
  paymentMethodId: id
18541
18755
  }
18542
18756
  });
18543
- setLayout("success");
18757
+ setLayout("portal");
18758
+ hydrate();
18544
18759
  } catch {
18760
+ setLayout("payment");
18545
18761
  setError(t2("Error updating payment method. Please try again."));
18546
18762
  } finally {
18547
18763
  setIsLoading(false);
18548
18764
  }
18549
18765
  },
18550
- [t2, api, setLayout]
18766
+ [t2, api, hydrate, setLayout]
18551
18767
  );
18552
- useEffect8(() => {
18768
+ useEffect7(() => {
18553
18769
  if (!stripe && setupIntent?.publishableKey) {
18554
18770
  setStripe(loadStripe(setupIntent.publishableKey));
18555
18771
  }
@@ -18568,8 +18784,8 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18568
18784
  if (!paymentMethod?.paymentMethodType) {
18569
18785
  return null;
18570
18786
  }
18571
- return /* @__PURE__ */ jsxs22(Element, { ref, className, children: [
18572
- /* @__PURE__ */ jsx29(
18787
+ return /* @__PURE__ */ jsxs24(Element, { ref, className, children: [
18788
+ /* @__PURE__ */ jsx30(
18573
18789
  PaymentMethodElement,
18574
18790
  {
18575
18791
  paymentMethod,
@@ -18579,8 +18795,8 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18579
18795
  }
18580
18796
  ),
18581
18797
  layout === "payment" && createPortal3(
18582
- /* @__PURE__ */ jsxs22(Modal, { size: "md", top, onClose: () => setShowPaymentForm(false), children: [
18583
- /* @__PURE__ */ jsx29(ModalHeader, { bordered: true, children: /* @__PURE__ */ jsx29(
18798
+ /* @__PURE__ */ jsxs24(Modal, { size: "md", top, onClose: () => setShowPaymentForm(false), children: [
18799
+ /* @__PURE__ */ jsx30(ModalHeader, { bordered: true, children: /* @__PURE__ */ jsx30(
18584
18800
  Text,
18585
18801
  {
18586
18802
  $font: theme.typography.text.fontFamily,
@@ -18590,7 +18806,7 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18590
18806
  children: t2("Edit payment method")
18591
18807
  }
18592
18808
  ) }),
18593
- /* @__PURE__ */ jsx29(Flex, { $position: "relative", $height: "calc(100% - 5rem)", children: /* @__PURE__ */ jsx29(
18809
+ /* @__PURE__ */ jsx30(Flex, { $position: "relative", $height: "calc(100% - 5rem)", children: /* @__PURE__ */ jsx30(
18594
18810
  Flex,
18595
18811
  {
18596
18812
  $flexDirection: "column",
@@ -18599,8 +18815,8 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18599
18815
  $padding: "2rem 2.5rem 2rem 2.5rem",
18600
18816
  $backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.025)" : "hsla(0, 0%, 100%, 0.025)",
18601
18817
  $overflow: "auto",
18602
- children: /* @__PURE__ */ jsxs22(Fragment11, { children: [
18603
- showPaymentForm ? /* @__PURE__ */ jsx29(
18818
+ children: /* @__PURE__ */ jsxs24(Fragment11, { children: [
18819
+ showPaymentForm ? /* @__PURE__ */ jsx30(
18604
18820
  Elements2,
18605
18821
  {
18606
18822
  stripe,
@@ -18629,15 +18845,15 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18629
18845
  },
18630
18846
  clientSecret: setupIntent?.setupIntentClientSecret
18631
18847
  },
18632
- children: /* @__PURE__ */ jsx29(
18848
+ children: /* @__PURE__ */ jsx30(
18633
18849
  PaymentForm,
18634
18850
  {
18635
18851
  onConfirm: (value) => updatePaymentMethod(value)
18636
18852
  }
18637
18853
  )
18638
18854
  }
18639
- ) : /* @__PURE__ */ jsxs22(Flex, { $flexDirection: "column", $gap: "2rem", children: [
18640
- /* @__PURE__ */ jsx29(
18855
+ ) : /* @__PURE__ */ jsxs24(Flex, { $flexDirection: "column", $gap: "2rem", children: [
18856
+ /* @__PURE__ */ jsx30(
18641
18857
  PaymentMethodElement,
18642
18858
  {
18643
18859
  size: "lg",
@@ -18646,7 +18862,7 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18646
18862
  ...props
18647
18863
  }
18648
18864
  ),
18649
- /* @__PURE__ */ jsx29(Box, { children: /* @__PURE__ */ jsx29(
18865
+ /* @__PURE__ */ jsx30(Box, { children: /* @__PURE__ */ jsx30(
18650
18866
  Text,
18651
18867
  {
18652
18868
  onClick: createSetupIntent,
@@ -18658,7 +18874,7 @@ var PaymentMethod = forwardRef10(({ children, className, portal, allowEdit = tru
18658
18874
  }
18659
18875
  ) })
18660
18876
  ] }),
18661
- !isLoading && error && /* @__PURE__ */ jsx29(Box, { children: /* @__PURE__ */ jsx29(
18877
+ !isLoading && error && /* @__PURE__ */ jsx30(Box, { children: /* @__PURE__ */ jsx30(
18662
18878
  Text,
18663
18879
  {
18664
18880
  $font: theme.typography.text.fontFamily,
@@ -18681,7 +18897,7 @@ PaymentMethod.displayName = "PaymentMethod";
18681
18897
  // src/components/elements/plan-manager/PlanManager.tsx
18682
18898
  import { forwardRef as forwardRef11 } from "react";
18683
18899
  var import_pluralize6 = __toESM(require_pluralize());
18684
- import { Fragment as Fragment12, jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
18900
+ import { Fragment as Fragment12, jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
18685
18901
  var resolveDesignProps5 = (props) => {
18686
18902
  return {
18687
18903
  header: {
@@ -18745,20 +18961,21 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18745
18961
  const billingSubscription = data.company?.billingSubscription;
18746
18962
  const subscriptionCurrency = billingSubscription?.currency;
18747
18963
  const showTrialBox = billingSubscription && billingSubscription.status == "trialing";
18964
+ const showUnsubscribeBox = billingSubscription && billingSubscription.status == "cancelled";
18748
18965
  const trialEndDate = billingSubscription?.trialEnd ? new Date(billingSubscription.trialEnd * 1e3) : /* @__PURE__ */ new Date();
18749
18966
  const todayDate = /* @__PURE__ */ new Date();
18750
18967
  const trialEndDays = Math.floor(
18751
18968
  (trialEndDate.getTime() - todayDate.getTime()) / (1e3 * 60 * 60 * 24)
18752
18969
  );
18753
- return /* @__PURE__ */ jsxs23(Fragment12, { children: [
18754
- showTrialBox && /* @__PURE__ */ jsxs23(
18970
+ return /* @__PURE__ */ jsxs25(Fragment12, { children: [
18971
+ showTrialBox && !showUnsubscribeBox && /* @__PURE__ */ jsxs25(
18755
18972
  Box,
18756
18973
  {
18757
18974
  $backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.04)" : "hsla(0, 0%, 100%, 0.04)",
18758
18975
  $textAlign: "center",
18759
18976
  $padding: "1rem",
18760
18977
  children: [
18761
- /* @__PURE__ */ jsx30(
18978
+ /* @__PURE__ */ jsx31(
18762
18979
  Text,
18763
18980
  {
18764
18981
  as: "h3",
@@ -18769,7 +18986,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18769
18986
  children: t2("Trial ends in", { days: trialEndDays.toString() })
18770
18987
  }
18771
18988
  ),
18772
- /* @__PURE__ */ jsx30(
18989
+ /* @__PURE__ */ jsx31(
18773
18990
  Text,
18774
18991
  {
18775
18992
  as: "p",
@@ -18787,7 +19004,43 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18787
19004
  ]
18788
19005
  }
18789
19006
  ),
18790
- /* @__PURE__ */ jsxs23(
19007
+ showUnsubscribeBox && /* @__PURE__ */ jsxs25(
19008
+ Box,
19009
+ {
19010
+ $backgroundColor: isLightBackground ? "hsla(0, 0%, 0%, 0.04)" : "hsla(0, 0%, 100%, 0.04)",
19011
+ $textAlign: "center",
19012
+ $padding: "1rem",
19013
+ children: [
19014
+ /* @__PURE__ */ jsx31(
19015
+ Text,
19016
+ {
19017
+ as: "h3",
19018
+ $font: theme.typography.heading3.fontFamily,
19019
+ $size: theme.typography.heading3.fontSize,
19020
+ $weight: theme.typography.heading3.fontWeight,
19021
+ $color: theme.typography.heading3.color,
19022
+ children: t2("Subscription canceled")
19023
+ }
19024
+ ),
19025
+ /* @__PURE__ */ jsx31(
19026
+ Text,
19027
+ {
19028
+ as: "p",
19029
+ $font: theme.typography.text.fontFamily,
19030
+ $size: theme.typography.text.fontSize * 0.8125,
19031
+ $weight: theme.typography.text.fontWeight,
19032
+ $color: theme.typography.text.color,
19033
+ children: billingSubscription.cancelAt ? t2("Access to plan will end on", {
19034
+ date: toPrettyDate(new Date(billingSubscription.cancelAt), {
19035
+ month: "numeric"
19036
+ })
19037
+ }) : ""
19038
+ }
19039
+ )
19040
+ ]
19041
+ }
19042
+ ),
19043
+ /* @__PURE__ */ jsxs25(
18791
19044
  Element,
18792
19045
  {
18793
19046
  as: Flex,
@@ -18796,7 +19049,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18796
19049
  $flexDirection: "column",
18797
19050
  $gap: "2rem",
18798
19051
  children: [
18799
- props.header.isVisible && currentPlan && /* @__PURE__ */ jsxs23(
19052
+ props.header.isVisible && currentPlan && /* @__PURE__ */ jsxs25(
18800
19053
  Flex,
18801
19054
  {
18802
19055
  $justifyContent: "space-between",
@@ -18804,8 +19057,8 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18804
19057
  $flexWrap: "wrap",
18805
19058
  $gap: "1rem",
18806
19059
  children: [
18807
- /* @__PURE__ */ jsxs23(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18808
- /* @__PURE__ */ jsx30(
19060
+ /* @__PURE__ */ jsxs25(Flex, { $flexDirection: "column", $gap: "1rem", children: [
19061
+ /* @__PURE__ */ jsx31(
18809
19062
  Text,
18810
19063
  {
18811
19064
  as: Box,
@@ -18817,7 +19070,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18817
19070
  children: currentPlan.name
18818
19071
  }
18819
19072
  ),
18820
- props.header.description.isVisible && currentPlan.description && /* @__PURE__ */ jsx30(
19073
+ props.header.description.isVisible && currentPlan.description && /* @__PURE__ */ jsx31(
18821
19074
  Text,
18822
19075
  {
18823
19076
  as: Box,
@@ -18829,8 +19082,8 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18829
19082
  }
18830
19083
  )
18831
19084
  ] }),
18832
- props.header.price.isVisible && typeof currentPlan.planPrice === "number" && currentPlan.planPeriod && /* @__PURE__ */ jsxs23(Box, { children: [
18833
- /* @__PURE__ */ jsx30(
19085
+ props.header.price.isVisible && typeof currentPlan.planPrice === "number" && currentPlan.planPeriod && /* @__PURE__ */ jsxs25(Box, { children: [
19086
+ /* @__PURE__ */ jsx31(
18834
19087
  Text,
18835
19088
  {
18836
19089
  $font: theme.typography[props.header.price.fontStyle].fontFamily,
@@ -18843,14 +19096,14 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18843
19096
  )
18844
19097
  }
18845
19098
  ),
18846
- /* @__PURE__ */ jsx30(
19099
+ /* @__PURE__ */ jsx31(
18847
19100
  Text,
18848
19101
  {
18849
19102
  $font: theme.typography[props.header.price.fontStyle].fontFamily,
18850
19103
  $size: theme.typography[props.header.price.fontStyle].fontSize,
18851
19104
  $weight: theme.typography[props.header.price.fontStyle].fontWeight,
18852
19105
  $color: theme.typography[props.header.price.fontStyle].color,
18853
- children: /* @__PURE__ */ jsxs23("sub", { children: [
19106
+ children: /* @__PURE__ */ jsxs25("sub", { children: [
18854
19107
  "/",
18855
19108
  shortenPeriod(currentPlan.planPeriod)
18856
19109
  ] })
@@ -18860,8 +19113,8 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18860
19113
  ]
18861
19114
  }
18862
19115
  ),
18863
- props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ jsxs23(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18864
- props.addOns.showLabel && /* @__PURE__ */ jsx30(
19116
+ props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ jsxs25(Flex, { $flexDirection: "column", $gap: "1rem", children: [
19117
+ props.addOns.showLabel && /* @__PURE__ */ jsx31(
18865
19118
  Text,
18866
19119
  {
18867
19120
  $font: theme.typography.text.fontFamily,
@@ -18872,7 +19125,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18872
19125
  children: t2("Add-ons")
18873
19126
  }
18874
19127
  ),
18875
- addOns.map((addOn) => /* @__PURE__ */ jsxs23(
19128
+ addOns.map((addOn) => /* @__PURE__ */ jsxs25(
18876
19129
  Flex,
18877
19130
  {
18878
19131
  $justifyContent: "space-between",
@@ -18880,7 +19133,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18880
19133
  $flexWrap: "wrap",
18881
19134
  $gap: "1rem",
18882
19135
  children: [
18883
- /* @__PURE__ */ jsx30(
19136
+ /* @__PURE__ */ jsx31(
18884
19137
  Text,
18885
19138
  {
18886
19139
  $font: theme.typography[props.addOns.fontStyle].fontFamily,
@@ -18890,7 +19143,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18890
19143
  children: addOn.name
18891
19144
  }
18892
19145
  ),
18893
- addOn.planPrice && addOn.planPeriod && /* @__PURE__ */ jsxs23(
19146
+ addOn.planPrice && addOn.planPeriod && /* @__PURE__ */ jsxs25(
18894
19147
  Text,
18895
19148
  {
18896
19149
  $font: theme.typography.text.fontFamily,
@@ -18899,7 +19152,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18899
19152
  $color: theme.typography.text.color,
18900
19153
  children: [
18901
19154
  formatCurrency(addOn.planPrice, subscriptionCurrency),
18902
- /* @__PURE__ */ jsxs23("sub", { children: [
19155
+ /* @__PURE__ */ jsxs25("sub", { children: [
18903
19156
  "/",
18904
19157
  shortenPeriod(addOn.planPeriod)
18905
19158
  ] })
@@ -18911,8 +19164,8 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18911
19164
  addOn.id
18912
19165
  ))
18913
19166
  ] }),
18914
- usageBasedEntitlements.length > 0 && /* @__PURE__ */ jsxs23(Flex, { $flexDirection: "column", $gap: "1rem", children: [
18915
- /* @__PURE__ */ jsx30(
19167
+ usageBasedEntitlements.length > 0 && /* @__PURE__ */ jsxs25(Flex, { $flexDirection: "column", $gap: "1rem", children: [
19168
+ /* @__PURE__ */ jsx31(
18916
19169
  Text,
18917
19170
  {
18918
19171
  $font: theme.typography.text.fontFamily,
@@ -18927,7 +19180,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18927
19180
  (acc, entitlement) => {
18928
19181
  if (entitlement.feature?.name) {
18929
19182
  acc.push(
18930
- /* @__PURE__ */ jsxs23(
19183
+ /* @__PURE__ */ jsxs25(
18931
19184
  Flex,
18932
19185
  {
18933
19186
  $justifyContent: "space-between",
@@ -18935,14 +19188,14 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18935
19188
  $flexWrap: "wrap",
18936
19189
  $gap: "1rem",
18937
19190
  children: [
18938
- /* @__PURE__ */ jsx30(
19191
+ /* @__PURE__ */ jsx31(
18939
19192
  Text,
18940
19193
  {
18941
19194
  $font: theme.typography[props.addOns.fontStyle].fontFamily,
18942
19195
  $size: theme.typography[props.addOns.fontStyle].fontSize,
18943
19196
  $weight: theme.typography[props.addOns.fontStyle].fontWeight,
18944
19197
  $color: theme.typography[props.addOns.fontStyle].color,
18945
- children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ jsxs23(Fragment12, { children: [
19198
+ children: entitlement.priceBehavior === "pay_in_advance" ? /* @__PURE__ */ jsxs25(Fragment12, { children: [
18946
19199
  entitlement.quantity,
18947
19200
  " ",
18948
19201
  (0, import_pluralize6.default)(
@@ -18952,8 +19205,8 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18952
19205
  ] }) : entitlement.feature.name
18953
19206
  }
18954
19207
  ),
18955
- /* @__PURE__ */ jsxs23(Flex, { $alignItems: "center", $gap: "1rem", children: [
18956
- entitlement.priceBehavior === "pay_in_advance" && currentPlan?.planPeriod && /* @__PURE__ */ jsxs23(
19208
+ /* @__PURE__ */ jsxs25(Flex, { $alignItems: "center", $gap: "1rem", children: [
19209
+ entitlement.priceBehavior === "pay_in_advance" && currentPlan?.planPeriod && /* @__PURE__ */ jsxs25(
18957
19210
  Text,
18958
19211
  {
18959
19212
  $font: theme.typography.text.fontFamily,
@@ -18965,7 +19218,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18965
19218
  entitlement.price,
18966
19219
  entitlement.currencyCode
18967
19220
  ),
18968
- /* @__PURE__ */ jsxs23("sub", { children: [
19221
+ /* @__PURE__ */ jsxs25("sub", { children: [
18969
19222
  "/",
18970
19223
  (0, import_pluralize6.default)(
18971
19224
  entitlement.feature.name.toLowerCase(),
@@ -18977,7 +19230,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18977
19230
  ]
18978
19231
  }
18979
19232
  ),
18980
- /* @__PURE__ */ jsxs23(
19233
+ /* @__PURE__ */ jsxs25(
18981
19234
  Text,
18982
19235
  {
18983
19236
  $font: theme.typography.text.fontFamily,
@@ -18989,7 +19242,7 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
18989
19242
  entitlement.price * (entitlement.priceBehavior === "pay_in_advance" ? entitlement.quantity : 1),
18990
19243
  entitlement.currencyCode
18991
19244
  ),
18992
- /* @__PURE__ */ jsxs23("sub", { children: [
19245
+ /* @__PURE__ */ jsxs25("sub", { children: [
18993
19246
  "/",
18994
19247
  currentPlan?.planPeriod && entitlement.priceBehavior === "pay_in_advance" ? shortenPeriod(currentPlan.planPeriod) : (0, import_pluralize6.default)(
18995
19248
  entitlement.feature.name.toLowerCase(),
@@ -19011,9 +19264,10 @@ var PlanManager = forwardRef11(({ children, className, portal, ...rest }, ref) =
19011
19264
  []
19012
19265
  )
19013
19266
  ] }),
19014
- canCheckout && props.callToAction.isVisible && /* @__PURE__ */ jsx30(
19267
+ canCheckout && props.callToAction.isVisible && /* @__PURE__ */ jsx31(
19015
19268
  EmbedButton,
19016
19269
  {
19270
+ type: "button",
19017
19271
  onClick: () => {
19018
19272
  setSelected({
19019
19273
  planId: currentPlan?.id,
@@ -19037,7 +19291,7 @@ PlanManager.displayName = "PlanManager";
19037
19291
  // src/components/elements/pricing-table/PricingTable.tsx
19038
19292
  import { forwardRef as forwardRef12, useState as useState15 } from "react";
19039
19293
  var import_pluralize7 = __toESM(require_pluralize());
19040
- import { Fragment as Fragment13, jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
19294
+ import { Fragment as Fragment13, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
19041
19295
  var resolveDesignProps6 = (props) => {
19042
19296
  return {
19043
19297
  showPeriodToggle: props.showPeriodToggle ?? true,
@@ -19115,7 +19369,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19115
19369
  };
19116
19370
  });
19117
19371
  };
19118
- return /* @__PURE__ */ jsxs24(
19372
+ return /* @__PURE__ */ jsxs26(
19119
19373
  FussyChild,
19120
19374
  {
19121
19375
  ref,
@@ -19124,8 +19378,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19124
19378
  $flexDirection: "column",
19125
19379
  $gap: "2rem",
19126
19380
  children: [
19127
- /* @__PURE__ */ jsxs24(Box, { children: [
19128
- /* @__PURE__ */ jsxs24(
19381
+ /* @__PURE__ */ jsxs26(Box, { children: [
19382
+ /* @__PURE__ */ jsxs26(
19129
19383
  Flex,
19130
19384
  {
19131
19385
  $flexDirection: "column",
@@ -19140,7 +19394,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19140
19394
  }
19141
19395
  },
19142
19396
  children: [
19143
- /* @__PURE__ */ jsx31(
19397
+ /* @__PURE__ */ jsx32(
19144
19398
  Text,
19145
19399
  {
19146
19400
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -19150,7 +19404,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19150
19404
  children: props.header.isVisible && props.plans.isVisible && plans.length > 0 && t2("Plans")
19151
19405
  }
19152
19406
  ),
19153
- props.showPeriodToggle && /* @__PURE__ */ jsx31(
19407
+ props.showPeriodToggle && /* @__PURE__ */ jsx32(
19154
19408
  PeriodToggle,
19155
19409
  {
19156
19410
  options: periods,
@@ -19161,7 +19415,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19161
19415
  ]
19162
19416
  }
19163
19417
  ),
19164
- props.plans.isVisible && plans.length > 0 && /* @__PURE__ */ jsx31(
19418
+ props.plans.isVisible && plans.length > 0 && /* @__PURE__ */ jsx32(
19165
19419
  Box,
19166
19420
  {
19167
19421
  $display: "grid",
@@ -19174,7 +19428,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19174
19428
  if (count?.limit && count.limit > VISIBLE_ENTITLEMENT_COUNT) {
19175
19429
  isExpanded = true;
19176
19430
  }
19177
- return /* @__PURE__ */ jsxs24(
19431
+ return /* @__PURE__ */ jsxs26(
19178
19432
  Flex,
19179
19433
  {
19180
19434
  $position: "relative",
@@ -19187,7 +19441,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19187
19441
  $outlineColor: isActivePlan ? theme.primary : "transparent",
19188
19442
  ...theme.card.hasShadow && { $boxShadow: cardBoxShadow },
19189
19443
  children: [
19190
- /* @__PURE__ */ jsxs24(
19444
+ /* @__PURE__ */ jsxs26(
19191
19445
  Flex,
19192
19446
  {
19193
19447
  $flexDirection: "column",
@@ -19198,7 +19452,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19198
19452
  $borderStyle: "solid",
19199
19453
  $borderColor: isLightBackground ? "hsla(0, 0%, 0%, 0.175)" : "hsla(0, 0%, 100%, 0.175)",
19200
19454
  children: [
19201
- /* @__PURE__ */ jsx31(Box, { children: /* @__PURE__ */ jsx31(
19455
+ /* @__PURE__ */ jsx32(Box, { children: /* @__PURE__ */ jsx32(
19202
19456
  Text,
19203
19457
  {
19204
19458
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19208,7 +19462,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19208
19462
  children: plan.name
19209
19463
  }
19210
19464
  ) }),
19211
- props.plans.description.isVisible && /* @__PURE__ */ jsx31(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx31(
19465
+ props.plans.description.isVisible && /* @__PURE__ */ jsx32(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx32(
19212
19466
  Text,
19213
19467
  {
19214
19468
  $font: theme.typography[props.plans.description.fontStyle].fontFamily,
@@ -19218,8 +19472,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19218
19472
  children: plan.description
19219
19473
  }
19220
19474
  ) }),
19221
- /* @__PURE__ */ jsxs24(Box, { children: [
19222
- /* @__PURE__ */ jsx31(
19475
+ /* @__PURE__ */ jsxs26(Box, { children: [
19476
+ /* @__PURE__ */ jsx32(
19223
19477
  Text,
19224
19478
  {
19225
19479
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19232,7 +19486,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19232
19486
  )
19233
19487
  }
19234
19488
  ),
19235
- !plan.custom && /* @__PURE__ */ jsxs24(
19489
+ !plan.custom && /* @__PURE__ */ jsxs26(
19236
19490
  Text,
19237
19491
  {
19238
19492
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19246,7 +19500,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19246
19500
  }
19247
19501
  )
19248
19502
  ] }),
19249
- isActivePlan && /* @__PURE__ */ jsx31(
19503
+ isActivePlan && /* @__PURE__ */ jsx32(
19250
19504
  Flex,
19251
19505
  {
19252
19506
  $position: "absolute",
@@ -19263,7 +19517,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19263
19517
  ]
19264
19518
  }
19265
19519
  ),
19266
- /* @__PURE__ */ jsxs24(
19520
+ /* @__PURE__ */ jsxs26(
19267
19521
  Flex,
19268
19522
  {
19269
19523
  $flexDirection: "column",
@@ -19272,16 +19526,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19272
19526
  $gap: `${cardPadding}rem`,
19273
19527
  $padding: `${0.75 * cardPadding}rem ${cardPadding}rem 0`,
19274
19528
  children: [
19275
- props.plans.showEntitlements && /* @__PURE__ */ jsxs24(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: "1", children: [
19276
- plan.entitlements.slice().sort((a2, b2) => {
19277
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name > b2.feature?.name) {
19278
- return 1;
19279
- }
19280
- if (a2.feature?.name && b2.feature?.name && a2.feature?.name < b2.feature?.name) {
19281
- return -1;
19282
- }
19283
- return 0;
19284
- }).reduce((acc, entitlement) => {
19529
+ props.plans.showEntitlements && /* @__PURE__ */ jsxs26(Flex, { $flexDirection: "column", $gap: "1rem", $flexGrow: "1", children: [
19530
+ plan.entitlements.reduce((acc, entitlement) => {
19285
19531
  let price;
19286
19532
  let currency;
19287
19533
  if (selectedPeriod === "month") {
@@ -19295,8 +19541,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19295
19541
  return acc;
19296
19542
  }
19297
19543
  acc.push(
19298
- /* @__PURE__ */ jsxs24(Flex, { $gap: "1rem", children: [
19299
- props.plans.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ jsx31(
19544
+ /* @__PURE__ */ jsxs26(Flex, { $gap: "1rem", children: [
19545
+ props.plans.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ jsx32(
19300
19546
  IconRound,
19301
19547
  {
19302
19548
  name: entitlement.feature.icon,
@@ -19307,7 +19553,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19307
19553
  ]
19308
19554
  }
19309
19555
  ),
19310
- entitlement.feature?.name && /* @__PURE__ */ jsx31(Flex, { $alignItems: "center", children: /* @__PURE__ */ jsx31(
19556
+ entitlement.feature?.name && /* @__PURE__ */ jsx32(Flex, { $alignItems: "center", children: /* @__PURE__ */ jsx32(
19311
19557
  Text,
19312
19558
  {
19313
19559
  $font: theme.typography.text.fontFamily,
@@ -19315,7 +19561,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19315
19561
  $weight: theme.typography.text.fontWeight,
19316
19562
  $color: theme.typography.text.color,
19317
19563
  $leading: 1.35,
19318
- children: typeof price !== "undefined" ? /* @__PURE__ */ jsxs24(Fragment13, { children: [
19564
+ children: typeof price !== "undefined" ? /* @__PURE__ */ jsxs26(Fragment13, { children: [
19319
19565
  formatCurrency(price, currency),
19320
19566
  " ",
19321
19567
  t2("per"),
@@ -19324,19 +19570,19 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19324
19570
  entitlement.feature.name,
19325
19571
  1
19326
19572
  ),
19327
- entitlement.priceBehavior === "pay_in_advance" && /* @__PURE__ */ jsxs24(Fragment13, { children: [
19573
+ entitlement.priceBehavior === "pay_in_advance" && /* @__PURE__ */ jsxs26(Fragment13, { children: [
19328
19574
  " ",
19329
19575
  t2("per"),
19330
19576
  " ",
19331
19577
  selectedPeriod
19332
19578
  ] })
19333
- ] }) : entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ jsxs24(Fragment13, { children: [
19579
+ ] }) : entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ jsxs26(Fragment13, { children: [
19334
19580
  entitlement.valueType === "unlimited" ? t2("Unlimited", {
19335
19581
  item: (0, import_pluralize7.default)(
19336
19582
  entitlement.feature.name
19337
19583
  )
19338
19584
  }) : typeof entitlement.valueNumeric === "number" && `${formatNumber(entitlement.valueNumeric)} ${(0, import_pluralize7.default)(entitlement.feature.name, entitlement.valueNumeric)}`,
19339
- entitlement.metricPeriod && /* @__PURE__ */ jsxs24(Fragment13, { children: [
19585
+ entitlement.metricPeriod && /* @__PURE__ */ jsxs26(Fragment13, { children: [
19340
19586
  " ",
19341
19587
  t2("per"),
19342
19588
  " ",
@@ -19354,14 +19600,14 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19354
19600
  );
19355
19601
  return acc;
19356
19602
  }, []).slice(0, count?.limit ?? VISIBLE_ENTITLEMENT_COUNT),
19357
- (count?.size || plan.entitlements.length) > VISIBLE_ENTITLEMENT_COUNT && /* @__PURE__ */ jsxs24(
19603
+ (count?.size || plan.entitlements.length) > VISIBLE_ENTITLEMENT_COUNT && /* @__PURE__ */ jsxs26(
19358
19604
  Flex,
19359
19605
  {
19360
19606
  $alignItems: "center",
19361
19607
  $justifyContent: "start",
19362
19608
  $marginTop: "1rem",
19363
19609
  children: [
19364
- /* @__PURE__ */ jsx31(
19610
+ /* @__PURE__ */ jsx32(
19365
19611
  Icon2,
19366
19612
  {
19367
19613
  name: isExpanded ? "chevron-up" : "chevron-down",
@@ -19373,7 +19619,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19373
19619
  }
19374
19620
  }
19375
19621
  ),
19376
- /* @__PURE__ */ jsx31(
19622
+ /* @__PURE__ */ jsx32(
19377
19623
  Text,
19378
19624
  {
19379
19625
  onClick: () => handleToggleShowAll(plan.id),
@@ -19390,7 +19636,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19390
19636
  }
19391
19637
  )
19392
19638
  ] }),
19393
- isActivePlan ? /* @__PURE__ */ jsxs24(
19639
+ isActivePlan ? /* @__PURE__ */ jsxs26(
19394
19640
  Flex,
19395
19641
  {
19396
19642
  $justifyContent: "center",
@@ -19398,7 +19644,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19398
19644
  $gap: "0.25rem",
19399
19645
  $padding: "0.625rem 0",
19400
19646
  children: [
19401
- /* @__PURE__ */ jsx31(
19647
+ /* @__PURE__ */ jsx32(
19402
19648
  Icon2,
19403
19649
  {
19404
19650
  name: "check-rounded",
@@ -19409,7 +19655,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19409
19655
  }
19410
19656
  }
19411
19657
  ),
19412
- /* @__PURE__ */ jsx31(
19658
+ /* @__PURE__ */ jsx32(
19413
19659
  Text,
19414
19660
  {
19415
19661
  $size: 15,
@@ -19420,10 +19666,11 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19420
19666
  )
19421
19667
  ]
19422
19668
  }
19423
- ) : (props.upgrade.isVisible || props.downgrade.isVisible) && /* @__PURE__ */ jsx31(
19669
+ ) : (props.upgrade.isVisible || props.downgrade.isVisible) && /* @__PURE__ */ jsx32(
19424
19670
  EmbedButton,
19425
19671
  {
19426
- disabled: !plan.valid || !canCheckout,
19672
+ type: "button",
19673
+ disabled: (!plan.valid || !canCheckout) && !plan.custom,
19427
19674
  ...!plan.custom && {
19428
19675
  onClick: () => {
19429
19676
  setSelected({
@@ -19443,14 +19690,14 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19443
19690
  $color: props.downgrade.buttonStyle,
19444
19691
  $variant: "outline"
19445
19692
  },
19446
- children: plan.custom ? /* @__PURE__ */ jsx31(
19693
+ children: plan.custom ? /* @__PURE__ */ jsx32(
19447
19694
  ButtonLink,
19448
19695
  {
19449
19696
  href: plan.customPlanConfig?.ctaWebSite ?? "#",
19450
19697
  target: "_blank",
19451
19698
  children: plan.customPlanConfig?.ctaText ?? t2("Custom Plan CTA")
19452
19699
  }
19453
- ) : !plan.valid ? /* @__PURE__ */ jsx31(
19700
+ ) : !plan.valid ? /* @__PURE__ */ jsx32(
19454
19701
  Tooltip,
19455
19702
  {
19456
19703
  trigger: t2("Over usage limit"),
@@ -19472,14 +19719,14 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19472
19719
  }
19473
19720
  )
19474
19721
  ] }),
19475
- /* @__PURE__ */ jsx31(Box, { children: props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ jsxs24(Fragment13, { children: [
19476
- props.header.isVisible && /* @__PURE__ */ jsx31(
19722
+ /* @__PURE__ */ jsx32(Box, { children: props.addOns.isVisible && addOns.length > 0 && /* @__PURE__ */ jsxs26(Fragment13, { children: [
19723
+ props.header.isVisible && /* @__PURE__ */ jsx32(
19477
19724
  Flex,
19478
19725
  {
19479
19726
  $justifyContent: "space-between",
19480
19727
  $alignItems: "center",
19481
19728
  $marginBottom: "1rem",
19482
- children: /* @__PURE__ */ jsx31(
19729
+ children: /* @__PURE__ */ jsx32(
19483
19730
  Text,
19484
19731
  {
19485
19732
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -19491,7 +19738,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19491
19738
  )
19492
19739
  }
19493
19740
  ),
19494
- /* @__PURE__ */ jsx31(
19741
+ /* @__PURE__ */ jsx32(
19495
19742
  Box,
19496
19743
  {
19497
19744
  $display: "grid",
@@ -19499,7 +19746,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19499
19746
  $gap: "1rem",
19500
19747
  children: addOns.map((addOn, index) => {
19501
19748
  const isActiveAddOn = addOn.current && selectedPeriod === data.company?.addOns.find((a2) => a2.id === addOn.id)?.planPeriod;
19502
- return /* @__PURE__ */ jsxs24(
19749
+ return /* @__PURE__ */ jsxs26(
19503
19750
  Flex,
19504
19751
  {
19505
19752
  $position: "relative",
@@ -19513,8 +19760,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19513
19760
  $outlineColor: isActiveAddOn ? theme.primary : "transparent",
19514
19761
  ...theme.card.hasShadow && { $boxShadow: cardBoxShadow },
19515
19762
  children: [
19516
- /* @__PURE__ */ jsxs24(Flex, { $flexDirection: "column", $gap: "0.75rem", children: [
19517
- /* @__PURE__ */ jsx31(Box, { children: /* @__PURE__ */ jsx31(
19763
+ /* @__PURE__ */ jsxs26(Flex, { $flexDirection: "column", $gap: "0.75rem", children: [
19764
+ /* @__PURE__ */ jsx32(Box, { children: /* @__PURE__ */ jsx32(
19518
19765
  Text,
19519
19766
  {
19520
19767
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19524,7 +19771,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19524
19771
  children: addOn.name
19525
19772
  }
19526
19773
  ) }),
19527
- props.addOns.showDescription && /* @__PURE__ */ jsx31(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx31(
19774
+ props.addOns.showDescription && /* @__PURE__ */ jsx32(Box, { $marginBottom: "0.5rem", children: /* @__PURE__ */ jsx32(
19528
19775
  Text,
19529
19776
  {
19530
19777
  $font: theme.typography[props.plans.description.fontStyle].fontFamily,
@@ -19534,8 +19781,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19534
19781
  children: addOn.description
19535
19782
  }
19536
19783
  ) }),
19537
- /* @__PURE__ */ jsxs24(Box, { children: [
19538
- /* @__PURE__ */ jsx31(
19784
+ /* @__PURE__ */ jsxs26(Box, { children: [
19785
+ /* @__PURE__ */ jsx32(
19539
19786
  Text,
19540
19787
  {
19541
19788
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19548,7 +19795,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19548
19795
  )
19549
19796
  }
19550
19797
  ),
19551
- /* @__PURE__ */ jsxs24(
19798
+ /* @__PURE__ */ jsxs26(
19552
19799
  Text,
19553
19800
  {
19554
19801
  $font: theme.typography[props.plans.name.fontStyle].fontFamily,
@@ -19562,7 +19809,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19562
19809
  }
19563
19810
  )
19564
19811
  ] }),
19565
- isActiveAddOn && /* @__PURE__ */ jsx31(
19812
+ isActiveAddOn && /* @__PURE__ */ jsx32(
19566
19813
  Flex,
19567
19814
  {
19568
19815
  $position: "absolute",
@@ -19577,7 +19824,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19577
19824
  }
19578
19825
  )
19579
19826
  ] }),
19580
- /* @__PURE__ */ jsxs24(
19827
+ /* @__PURE__ */ jsxs26(
19581
19828
  Flex,
19582
19829
  {
19583
19830
  $flexDirection: "column",
@@ -19585,7 +19832,7 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19585
19832
  $gap: `${cardPadding}rem`,
19586
19833
  $flexGrow: "1",
19587
19834
  children: [
19588
- props.addOns.showEntitlements && /* @__PURE__ */ jsx31(
19835
+ props.addOns.showEntitlements && /* @__PURE__ */ jsx32(
19589
19836
  Flex,
19590
19837
  {
19591
19838
  $flexDirection: "column",
@@ -19593,15 +19840,15 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19593
19840
  $gap: "1rem",
19594
19841
  $flexGrow: "1",
19595
19842
  children: addOn.entitlements.map((entitlement) => {
19596
- return /* @__PURE__ */ jsx31(
19843
+ return /* @__PURE__ */ jsx32(
19597
19844
  Flex,
19598
19845
  {
19599
19846
  $flexWrap: "wrap",
19600
19847
  $justifyContent: "space-between",
19601
19848
  $alignItems: "center",
19602
19849
  $gap: "1rem",
19603
- children: /* @__PURE__ */ jsxs24(Flex, { $gap: "1rem", children: [
19604
- props.addOns.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ jsx31(
19850
+ children: /* @__PURE__ */ jsxs26(Flex, { $gap: "1rem", children: [
19851
+ props.addOns.showFeatureIcons && entitlement.feature?.icon && /* @__PURE__ */ jsx32(
19605
19852
  IconRound,
19606
19853
  {
19607
19854
  name: entitlement.feature.icon,
@@ -19612,20 +19859,20 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19612
19859
  ]
19613
19860
  }
19614
19861
  ),
19615
- entitlement.feature?.name && /* @__PURE__ */ jsx31(Flex, { $alignItems: "center", children: /* @__PURE__ */ jsx31(
19862
+ entitlement.feature?.name && /* @__PURE__ */ jsx32(Flex, { $alignItems: "center", children: /* @__PURE__ */ jsx32(
19616
19863
  Text,
19617
19864
  {
19618
19865
  $font: theme.typography.text.fontFamily,
19619
19866
  $size: theme.typography.text.fontSize,
19620
19867
  $weight: theme.typography.text.fontWeight,
19621
19868
  $color: theme.typography.text.color,
19622
- children: entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ jsxs24(Fragment13, { children: [
19869
+ children: entitlement.valueType === "numeric" || entitlement.valueType === "unlimited" || entitlement.valueType === "trait" ? /* @__PURE__ */ jsxs26(Fragment13, { children: [
19623
19870
  entitlement.valueType === "unlimited" ? t2("Unlimited", {
19624
19871
  item: (0, import_pluralize7.default)(
19625
19872
  entitlement.feature.name
19626
19873
  )
19627
19874
  }) : typeof entitlement.valueNumeric === "number" && `${formatNumber(entitlement.valueNumeric)} ${(0, import_pluralize7.default)(entitlement.feature.name, entitlement.valueNumeric)}`,
19628
- entitlement.metricPeriod && /* @__PURE__ */ jsxs24(Fragment13, { children: [
19875
+ entitlement.metricPeriod && /* @__PURE__ */ jsxs26(Fragment13, { children: [
19629
19876
  " ",
19630
19877
  t2("per"),
19631
19878
  " ",
@@ -19646,9 +19893,10 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19646
19893
  })
19647
19894
  }
19648
19895
  ),
19649
- props.upgrade.isVisible && /* @__PURE__ */ jsx31(
19896
+ props.upgrade.isVisible && /* @__PURE__ */ jsx32(
19650
19897
  EmbedButton,
19651
19898
  {
19899
+ type: "button",
19652
19900
  disabled: !addOn.valid || !canCheckout,
19653
19901
  onClick: () => {
19654
19902
  setSelected({
@@ -19682,8 +19930,8 @@ var PricingTable = forwardRef12(({ children, className, ...rest }, ref) => {
19682
19930
  PricingTable.displayName = "PricingTable";
19683
19931
 
19684
19932
  // src/components/elements/upcoming-bill/UpcomingBill.tsx
19685
- import { forwardRef as forwardRef13, useMemo as useMemo9 } from "react";
19686
- import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
19933
+ import { forwardRef as forwardRef13, useMemo as useMemo10 } from "react";
19934
+ import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
19687
19935
  function resolveDesignProps7(props) {
19688
19936
  return {
19689
19937
  header: {
@@ -19708,7 +19956,7 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19708
19956
  const theme = nt();
19709
19957
  const { data } = useEmbed();
19710
19958
  const isLightBackground = useIsLightBackground();
19711
- const { upcomingInvoice, discounts } = useMemo9(() => {
19959
+ const { upcomingInvoice, discounts } = useMemo10(() => {
19712
19960
  const discounts2 = (data.subscription?.discounts || []).map((discount) => ({
19713
19961
  amountOff: discount.amountOff,
19714
19962
  couponId: discount.couponId,
@@ -19735,7 +19983,7 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19735
19983
  if (typeof upcomingInvoice.amountDue !== "number" || !upcomingInvoice.dueDate) {
19736
19984
  return null;
19737
19985
  }
19738
- return /* @__PURE__ */ jsxs25(
19986
+ return /* @__PURE__ */ jsxs27(
19739
19987
  Element,
19740
19988
  {
19741
19989
  as: Flex,
@@ -19744,7 +19992,7 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19744
19992
  $flexDirection: "column",
19745
19993
  $gap: "1rem",
19746
19994
  children: [
19747
- props.header.isVisible && /* @__PURE__ */ jsx32(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ jsxs25(
19995
+ props.header.isVisible && /* @__PURE__ */ jsx33(Flex, { $justifyContent: "space-between", $alignItems: "center", children: /* @__PURE__ */ jsxs27(
19748
19996
  Text,
19749
19997
  {
19750
19998
  $font: theme.typography[props.header.fontStyle].fontFamily,
@@ -19758,8 +20006,8 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19758
20006
  ]
19759
20007
  }
19760
20008
  ) }),
19761
- /* @__PURE__ */ jsxs25(Flex, { $justifyContent: "space-between", $alignItems: "start", $gap: "1rem", children: [
19762
- props.price.isVisible && /* @__PURE__ */ jsx32(Flex, { $alignItems: "end", $flexGrow: "1", children: /* @__PURE__ */ jsx32(
20009
+ /* @__PURE__ */ jsxs27(Flex, { $justifyContent: "space-between", $alignItems: "start", $gap: "1rem", children: [
20010
+ props.price.isVisible && /* @__PURE__ */ jsx33(Flex, { $alignItems: "end", $flexGrow: "1", children: /* @__PURE__ */ jsx33(
19763
20011
  Text,
19764
20012
  {
19765
20013
  $font: theme.typography[props.price.fontStyle].fontFamily,
@@ -19773,7 +20021,7 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19773
20021
  )
19774
20022
  }
19775
20023
  ) }),
19776
- /* @__PURE__ */ jsx32(Box, { $lineHeight: 1.15, $maxWidth: "10rem", $textAlign: "right", children: /* @__PURE__ */ jsx32(
20024
+ /* @__PURE__ */ jsx33(Box, { $lineHeight: 1.15, $maxWidth: "10rem", $textAlign: "right", children: /* @__PURE__ */ jsx33(
19777
20025
  Text,
19778
20026
  {
19779
20027
  $font: theme.typography[props.contractEndDate.fontStyle].fontFamily,
@@ -19785,8 +20033,8 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19785
20033
  }
19786
20034
  ) })
19787
20035
  ] }),
19788
- discounts.length > 0 && /* @__PURE__ */ jsxs25(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
19789
- /* @__PURE__ */ jsx32(Box, { children: /* @__PURE__ */ jsx32(
20036
+ discounts.length > 0 && /* @__PURE__ */ jsxs27(Flex, { $justifyContent: "space-between", $alignItems: "center", children: [
20037
+ /* @__PURE__ */ jsx33(Box, { children: /* @__PURE__ */ jsx33(
19790
20038
  Text,
19791
20039
  {
19792
20040
  $font: theme.typography.text.fontFamily,
@@ -19796,8 +20044,8 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19796
20044
  children: t2("Discount")
19797
20045
  }
19798
20046
  ) }),
19799
- /* @__PURE__ */ jsx32(Box, { children: discounts.map((discount) => /* @__PURE__ */ jsxs25(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
19800
- /* @__PURE__ */ jsx32(
20047
+ /* @__PURE__ */ jsx33(Box, { children: discounts.map((discount) => /* @__PURE__ */ jsxs27(Flex, { $alignItems: "center", $gap: "0.5rem", children: [
20048
+ /* @__PURE__ */ jsx33(
19801
20049
  Flex,
19802
20050
  {
19803
20051
  $alignItems: "center",
@@ -19806,7 +20054,7 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19806
20054
  $borderStyle: "solid",
19807
20055
  $borderColor: isLightBackground ? "hsla(0, 0%, 0%, 0.15)" : "hsla(0, 0%, 100%, 0.15)",
19808
20056
  $borderRadius: "0.3125rem",
19809
- children: /* @__PURE__ */ jsx32(
20057
+ children: /* @__PURE__ */ jsx33(
19810
20058
  Text,
19811
20059
  {
19812
20060
  $font: theme.typography.text.fontFamily,
@@ -19818,7 +20066,7 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19818
20066
  )
19819
20067
  }
19820
20068
  ),
19821
- /* @__PURE__ */ jsx32(Box, { children: /* @__PURE__ */ jsx32(
20069
+ /* @__PURE__ */ jsx33(Box, { children: /* @__PURE__ */ jsx33(
19822
20070
  Text,
19823
20071
  {
19824
20072
  $font: theme.typography.text.fontFamily,
@@ -19836,8 +20084,69 @@ var UpcomingBill = forwardRef13(({ className, ...rest }, ref) => {
19836
20084
  });
19837
20085
  UpcomingBill.displayName = "UpcomingBill";
19838
20086
 
20087
+ // src/components/elements/unsubscribe-button/UnsubscribeButton.tsx
20088
+ import { forwardRef as forwardRef14 } from "react";
20089
+ import { jsx as jsx34 } from "react/jsx-runtime";
20090
+ var resolveDesignProps8 = (props) => {
20091
+ return {
20092
+ button: {
20093
+ text: props.button?.text ?? "Unsubscribe",
20094
+ style: props.button?.style ?? "primary",
20095
+ size: props.button?.size ?? "md",
20096
+ fullWidth: props.button?.fullWidth ?? true,
20097
+ alignment: props.button?.alignment ?? "center"
20098
+ }
20099
+ };
20100
+ };
20101
+ var UnsubscribeButton = forwardRef14(({ children, className, ...rest }, ref) => {
20102
+ const props = resolveDesignProps8(rest);
20103
+ const { t: t2 } = useTranslation();
20104
+ const { data, setLayout } = useEmbed();
20105
+ const disabled = !data.subscription || data.subscription.status === "cancelled";
20106
+ const buttonStyles = {
20107
+ primary: {
20108
+ color: "primary",
20109
+ variant: "filled"
20110
+ },
20111
+ secondary: {
20112
+ color: "primary",
20113
+ variant: "outline"
20114
+ },
20115
+ tertiary: {
20116
+ color: "primary",
20117
+ variant: "text"
20118
+ }
20119
+ };
20120
+ return /* @__PURE__ */ jsx34(
20121
+ Element,
20122
+ {
20123
+ as: Flex,
20124
+ ref,
20125
+ className,
20126
+ $flexDirection: "column",
20127
+ $gap: "2rem",
20128
+ children: /* @__PURE__ */ jsx34(
20129
+ EmbedButton,
20130
+ {
20131
+ $size: props.button.size,
20132
+ $color: buttonStyles[props.button.style].color,
20133
+ $variant: buttonStyles[props.button.style].variant,
20134
+ $alignment: props.button.alignment,
20135
+ $fullWidth: props.button.fullWidth,
20136
+ onClick: () => {
20137
+ setLayout("unsubscribe");
20138
+ },
20139
+ disabled,
20140
+ children: t2(props.button.text) ?? t2("Unsubscribe")
20141
+ }
20142
+ )
20143
+ }
20144
+ );
20145
+ });
20146
+ UnsubscribeButton.displayName = "UnsubscribeButton";
20147
+
19839
20148
  // src/components/embed/ComponentTree.tsx
19840
- import { useEffect as useEffect9, useState as useState16 } from "react";
20149
+ import { useEffect as useEffect8, useState as useState16 } from "react";
19841
20150
 
19842
20151
  // src/components/embed/renderer.ts
19843
20152
  import { createElement as createElement5 } from "react";
@@ -19852,7 +20161,8 @@ var components = {
19852
20161
  UpcomingBill,
19853
20162
  PaymentMethod,
19854
20163
  Invoices,
19855
- PricingTable
20164
+ PricingTable,
20165
+ UnsubscribeButton
19856
20166
  };
19857
20167
  function createRenderer(options) {
19858
20168
  const { useFallback = false } = options || {};
@@ -19862,7 +20172,7 @@ function createRenderer(options) {
19862
20172
  const component = useFallback ? components[name] || "div" : components[name];
19863
20173
  if (!components[name]) {
19864
20174
  console.debug(
19865
- "`schematic-embed`: Encounted an unknown component during render cycle.",
20175
+ "`schematic-embed`: Encountered an unknown component during render cycle.",
19866
20176
  name
19867
20177
  );
19868
20178
  }
@@ -19885,10 +20195,10 @@ function createRenderer(options) {
19885
20195
  }
19886
20196
 
19887
20197
  // src/components/embed/ComponentTree.tsx
19888
- import { Fragment as Fragment14, jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
20198
+ import { Fragment as Fragment14, jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
19889
20199
  var Loading = () => {
19890
20200
  const theme = nt();
19891
- return /* @__PURE__ */ jsx33(
20201
+ return /* @__PURE__ */ jsx35(
19892
20202
  Flex,
19893
20203
  {
19894
20204
  $width: "100%",
@@ -19896,13 +20206,13 @@ var Loading = () => {
19896
20206
  $alignItems: "center",
19897
20207
  $justifyContent: "center",
19898
20208
  $padding: `${theme.card.padding / TEXT_BASE_SIZE}rem`,
19899
- children: /* @__PURE__ */ jsx33(Loader, { $size: "2xl", $color: "#194BFB" })
20209
+ children: /* @__PURE__ */ jsx35(Loader, { $size: "2xl", $color: "#194BFB" })
19900
20210
  }
19901
20211
  );
19902
20212
  };
19903
20213
  var Error2 = ({ message }) => {
19904
20214
  const theme = nt();
19905
- return /* @__PURE__ */ jsxs26(
20215
+ return /* @__PURE__ */ jsxs28(
19906
20216
  Flex,
19907
20217
  {
19908
20218
  $flexDirection: "column",
@@ -19913,7 +20223,7 @@ var Error2 = ({ message }) => {
19913
20223
  $alignItems: "center",
19914
20224
  $justifyContent: "center",
19915
20225
  children: [
19916
- /* @__PURE__ */ jsx33(
20226
+ /* @__PURE__ */ jsx35(
19917
20227
  Box,
19918
20228
  {
19919
20229
  $marginBottom: `${8 / TEXT_BASE_SIZE}rem`,
@@ -19924,7 +20234,7 @@ var Error2 = ({ message }) => {
19924
20234
  children: "Error"
19925
20235
  }
19926
20236
  ),
19927
- /* @__PURE__ */ jsx33(
20237
+ /* @__PURE__ */ jsx35(
19928
20238
  Box,
19929
20239
  {
19930
20240
  $marginBottom: `${8 / TEXT_BASE_SIZE}rem`,
@@ -19941,31 +20251,31 @@ var Error2 = ({ message }) => {
19941
20251
  };
19942
20252
  var ComponentTree = () => {
19943
20253
  const { error, nodes, isPending } = useEmbed();
19944
- const [children, setChildren] = useState16(/* @__PURE__ */ jsx33(Loading, {}));
19945
- useEffect9(() => {
20254
+ const [children, setChildren] = useState16(/* @__PURE__ */ jsx35(Loading, {}));
20255
+ useEffect8(() => {
19946
20256
  const renderer = createRenderer();
19947
20257
  setChildren(nodes.map(renderer));
19948
20258
  }, [nodes]);
19949
20259
  if (error) {
19950
20260
  console.error(error);
19951
- return /* @__PURE__ */ jsx33(Error2, { message: error.message });
20261
+ return /* @__PURE__ */ jsx35(Error2, { message: error.message });
19952
20262
  }
19953
20263
  if (isPending) {
19954
- return /* @__PURE__ */ jsx33(Loading, {});
20264
+ return /* @__PURE__ */ jsx35(Loading, {});
19955
20265
  }
19956
- return /* @__PURE__ */ jsx33(Fragment14, { children });
20266
+ return /* @__PURE__ */ jsx35(Fragment14, { children });
19957
20267
  };
19958
20268
 
19959
20269
  // src/components/embed/Embed.tsx
19960
- import { jsx as jsx34 } from "react/jsx-runtime";
20270
+ import { jsx as jsx36 } from "react/jsx-runtime";
19961
20271
  var SchematicEmbed = ({ id, accessToken, apiConfig }) => {
19962
20272
  if (accessToken?.length === 0) {
19963
- return /* @__PURE__ */ jsx34("div", { children: "Please provide an access token." });
20273
+ return /* @__PURE__ */ jsx36("div", { children: "Please provide an access token." });
19964
20274
  }
19965
20275
  if (!accessToken?.startsWith("token_")) {
19966
- return /* @__PURE__ */ jsx34("div", { children: 'Invalid access token; your temporary access token will start with "token_".' });
20276
+ return /* @__PURE__ */ jsx36("div", { children: 'Invalid access token; your temporary access token will start with "token_".' });
19967
20277
  }
19968
- return /* @__PURE__ */ jsx34(EmbedProvider, { id, accessToken, apiConfig, children: /* @__PURE__ */ jsx34(ComponentTree, {}) });
20278
+ return /* @__PURE__ */ jsx36(EmbedProvider, { id, accessToken, apiConfig, children: /* @__PURE__ */ jsx36(ComponentTree, {}) });
19969
20279
  };
19970
20280
  export {
19971
20281
  Box,
@@ -19997,6 +20307,7 @@ export {
19997
20307
  StyledCard,
19998
20308
  Text,
19999
20309
  Tooltip,
20310
+ UnsubscribeButton,
20000
20311
  UpcomingBill,
20001
20312
  Viewport,
20002
20313
  cardBoxShadow,