@justifi/webcomponents 4.8.0 → 4.8.2

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.
Files changed (137) hide show
  1. package/dist/cjs/{Business-540a6feb.js → Business-42d0c522.js} +15 -1
  2. package/dist/cjs/{SubAccount-b9487cbb.js → SubAccount-2a803b22.js} +1 -1
  3. package/dist/cjs/additional-questions-details_5.cjs.entry.js +1 -1
  4. package/dist/cjs/justifi-additional-questions_5.cjs.entry.js +3 -3
  5. package/dist/cjs/justifi-bank-account-form.cjs.entry.js +2 -1
  6. package/dist/cjs/justifi-billing-form_2.cjs.entry.js +3 -1
  7. package/dist/cjs/justifi-business-details.cjs.entry.js +1 -1
  8. package/dist/cjs/justifi-business-form-stepped.cjs.entry.js +1 -1
  9. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  10. package/dist/cjs/justifi-business-list.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-card-form.cjs.entry.js +2 -1
  12. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +1 -1
  13. package/dist/cjs/justifi-payment-balance-transactions.cjs.entry.js +1 -1
  14. package/dist/cjs/justifi-payment-form.cjs.entry.js +9 -36
  15. package/dist/cjs/justifi-payment-method-form.cjs.entry.js +81 -64
  16. package/dist/cjs/justifi-proceeds-list.cjs.entry.js +1 -1
  17. package/dist/cjs/justifi-subaccount-details.cjs.entry.js +2 -2
  18. package/dist/cjs/justifi-subaccounts-list.cjs.entry.js +2 -2
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/payment-details-core.cjs.entry.js +1 -1
  21. package/dist/cjs/payments-list-core.cjs.entry.js +1 -1
  22. package/dist/cjs/payout-details-core.cjs.entry.js +1 -1
  23. package/dist/cjs/payouts-list-core.cjs.entry.js +1 -1
  24. package/dist/cjs/subaccount-account-details_4.cjs.entry.js +1 -1
  25. package/dist/cjs/{utils-36bf8b3e.js → utils-29a8a91d.js} +33 -1
  26. package/dist/cjs/webcomponents.cjs.js +1 -1
  27. package/dist/collection/api/Business.js +15 -1
  28. package/dist/collection/components/bank-account-form/bank-account-form.js +4 -2
  29. package/dist/collection/components/bank-account-form/test/bank-account-form.spec.js +9 -0
  30. package/dist/collection/components/business-details/legal-address-details/legal-address-details.js +4 -4
  31. package/dist/collection/components/business-form/business-form.js +1 -1
  32. package/dist/collection/components/business-form/business-generic-info/business-generic-info.js +1 -1
  33. package/dist/collection/components/business-form/legal-address-form/legal-address-form.js +1 -1
  34. package/dist/collection/components/card-form/card-form.js +4 -2
  35. package/dist/collection/components/card-form/test/card-form.spec.js +9 -0
  36. package/dist/collection/components/payment-form/payment-form.js +12 -83
  37. package/dist/collection/components/payment-form/payment-method-selector.js +2 -23
  38. package/dist/collection/components/payment-form/test/payment-form.spec.js +5 -18
  39. package/dist/collection/components/payment-method-form/payment-method-form.js +62 -72
  40. package/dist/collection/components/payment-method-form/test/payment-method-form.e2e.js +1 -1
  41. package/dist/collection/components/payment-method-form/test/payment-method-form.spec.js +123 -41
  42. package/dist/collection/utils/frame-comunication-service.js +32 -0
  43. package/dist/collection/utils/utils.js +31 -0
  44. package/dist/docs.json +50 -113
  45. package/dist/esm/{Business-1f5e9f6b.js → Business-e9340f6b.js} +15 -1
  46. package/dist/esm/{SubAccount-bd59f646.js → SubAccount-46b4c2b1.js} +1 -1
  47. package/dist/esm/additional-questions-details_5.entry.js +1 -1
  48. package/dist/esm/justifi-additional-questions_5.entry.js +3 -3
  49. package/dist/esm/justifi-bank-account-form.entry.js +2 -1
  50. package/dist/esm/justifi-billing-form_2.entry.js +3 -1
  51. package/dist/esm/justifi-business-details.entry.js +1 -1
  52. package/dist/esm/justifi-business-form-stepped.entry.js +1 -1
  53. package/dist/esm/justifi-business-form.entry.js +2 -2
  54. package/dist/esm/justifi-business-list.entry.js +2 -2
  55. package/dist/esm/justifi-card-form.entry.js +2 -1
  56. package/dist/esm/justifi-gross-payment-chart.entry.js +1 -1
  57. package/dist/esm/justifi-payment-balance-transactions.entry.js +1 -1
  58. package/dist/esm/justifi-payment-form.entry.js +9 -36
  59. package/dist/esm/justifi-payment-method-form.entry.js +81 -64
  60. package/dist/esm/justifi-proceeds-list.entry.js +1 -1
  61. package/dist/esm/justifi-subaccount-details.entry.js +2 -2
  62. package/dist/esm/justifi-subaccounts-list.entry.js +2 -2
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/payment-details-core.entry.js +1 -1
  65. package/dist/esm/payments-list-core.entry.js +1 -1
  66. package/dist/esm/payout-details-core.entry.js +1 -1
  67. package/dist/esm/payouts-list-core.entry.js +1 -1
  68. package/dist/esm/subaccount-account-details_4.entry.js +1 -1
  69. package/dist/esm/{utils-dd428dba.js → utils-76a93600.js} +32 -1
  70. package/dist/esm/webcomponents.js +1 -1
  71. package/dist/module/Business.js +15 -1
  72. package/dist/module/SubAccount.js +1 -1
  73. package/dist/module/business-generic-info.js +1 -1
  74. package/dist/module/justifi-bank-account-form.js +2 -1
  75. package/dist/module/justifi-business-form.js +1 -1
  76. package/dist/module/justifi-card-form.js +2 -1
  77. package/dist/module/justifi-gross-payment-chart.js +1 -1
  78. package/dist/module/justifi-payment-balance-transactions.js +1 -1
  79. package/dist/module/justifi-payment-form.js +11 -42
  80. package/dist/module/justifi-subaccount-details.js +1 -1
  81. package/dist/module/legal-address-form.js +1 -1
  82. package/dist/module/payment-details-core2.js +1 -1
  83. package/dist/module/payment-method-form.js +81 -64
  84. package/dist/module/payment-method-selector.js +3 -2
  85. package/dist/module/payments-list-core2.js +1 -1
  86. package/dist/module/payout-details-core2.js +1 -1
  87. package/dist/module/payouts-list-core2.js +1 -1
  88. package/dist/module/utils2.js +32 -1
  89. package/dist/types/api/Business.d.ts +16 -3
  90. package/dist/types/components/bank-account-form/bank-account-form.d.ts +1 -1
  91. package/dist/types/components/business-details/legal-address-details/legal-address-details.d.ts +2 -2
  92. package/dist/types/components/business-form/business-form-schema.d.ts +1 -1
  93. package/dist/types/components/business-form/legal-address-form/legal-address-form.d.ts +2 -1
  94. package/dist/types/components/card-form/card-form.d.ts +1 -1
  95. package/dist/types/components/payment-form/payment-form.d.ts +1 -5
  96. package/dist/types/components/payment-form/payment-method-selector.d.ts +1 -1
  97. package/dist/types/components/payment-method-form/payment-method-form.d.ts +12 -12
  98. package/dist/types/components.d.ts +12 -17
  99. package/dist/types/utils/frame-comunication-service.d.ts +13 -0
  100. package/dist/types/utils/utils.d.ts +2 -0
  101. package/dist/webcomponents/{p-d66a6057.entry.js → p-08833966.entry.js} +1 -1
  102. package/dist/webcomponents/p-0bc8b02e.entry.js +1 -0
  103. package/dist/webcomponents/{p-f0c535ed.js → p-22c1acd6.js} +1 -1
  104. package/dist/webcomponents/p-234bc840.entry.js +1 -0
  105. package/dist/webcomponents/{p-8a90b976.entry.js → p-40349ffc.entry.js} +1 -1
  106. package/dist/webcomponents/{p-1cb65d15.entry.js → p-4e56ddad.entry.js} +1 -1
  107. package/dist/webcomponents/{p-0b9146cd.entry.js → p-4ee44c76.entry.js} +1 -1
  108. package/dist/webcomponents/{p-57e592ac.entry.js → p-5422a24b.entry.js} +1 -1
  109. package/dist/webcomponents/{p-876c7257.entry.js → p-578e0a05.entry.js} +1 -1
  110. package/dist/webcomponents/{p-50730e69.js → p-5c0310ee.js} +1 -1
  111. package/dist/webcomponents/p-640d90dc.entry.js +1 -0
  112. package/dist/webcomponents/p-6478f3ca.js +1 -0
  113. package/dist/webcomponents/p-696396c7.entry.js +1 -0
  114. package/dist/webcomponents/p-7a1a06c0.entry.js +1 -0
  115. package/dist/webcomponents/{p-5e142186.entry.js → p-8516d602.entry.js} +1 -1
  116. package/dist/webcomponents/{p-c0f882ce.entry.js → p-894a7475.entry.js} +1 -1
  117. package/dist/webcomponents/{p-896a9ddb.entry.js → p-94ebfafb.entry.js} +1 -1
  118. package/dist/webcomponents/{p-d71ce1cd.entry.js → p-9e81808f.entry.js} +1 -1
  119. package/dist/webcomponents/{p-2e318b6a.entry.js → p-a432110c.entry.js} +1 -1
  120. package/dist/webcomponents/{p-7dd83492.entry.js → p-a9dc1e2e.entry.js} +1 -1
  121. package/dist/webcomponents/{p-1b6ff0d3.entry.js → p-b1881723.entry.js} +1 -1
  122. package/dist/webcomponents/{p-19c5ddf1.entry.js → p-bfd917b8.entry.js} +1 -1
  123. package/dist/webcomponents/p-c90fa055.entry.js +1 -0
  124. package/dist/webcomponents/{p-34de1c5d.entry.js → p-ebb91944.entry.js} +1 -1
  125. package/dist/webcomponents/webcomponents.esm.js +1 -1
  126. package/package.json +3 -3
  127. package/dist/webcomponents/p-36618b59.entry.js +0 -1
  128. package/dist/webcomponents/p-57aab065.entry.js +0 -1
  129. package/dist/webcomponents/p-5f8b9f64.entry.js +0 -1
  130. package/dist/webcomponents/p-731cb109.entry.js +0 -1
  131. package/dist/webcomponents/p-88027949.js +0 -1
  132. package/dist/webcomponents/p-f7a3fd12.entry.js +0 -1
  133. package/dist/webcomponents/p-f9183f12.entry.js +0 -1
  134. /package/dist/collection/{components/payment-method-form → utils}/get-computed-theme.js +0 -0
  135. /package/dist/collection/{components/payment-method-form → utils}/theme.js +0 -0
  136. /package/dist/types/{components/payment-method-form → utils}/get-computed-theme.d.ts +0 -0
  137. /package/dist/types/{components/payment-method-form → utils}/theme.d.ts +0 -0
@@ -11,7 +11,7 @@ const LegalAddressForm = /*@__PURE__*/ proxyCustomElement(class LegalAddressForm
11
11
  this.__registerHost();
12
12
  this.formController = undefined;
13
13
  this.errors = {};
14
- this.legal_address = {};
14
+ this.legal_address = undefined;
15
15
  this.inputHandler = this.inputHandler.bind(this);
16
16
  }
17
17
  componentDidLoad() {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { M as MapPaymentStatusToBadge, b as formatCurrency, a as formatDate, d as formatTime, s as snakeCaseToHumanReadable } from './utils2.js';
2
+ import { M as MapPaymentStatusToBadge, b as formatCurrency, a as formatDate, e as formatTime, s as snakeCaseToHumanReadable } from './utils2.js';
3
3
  import { L as LoadingState, E as ErrorState, b as EntityHeadInfo, c as EntityHeadInfoItem, D as DetailSection, a as DetailItem, C as CodeBlock } from './utils.js';
4
4
  import { d as defineCustomElement$1 } from './details.js';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { c as config } from './config.js';
2
+ import { c as composeQueryParams } from './utils2.js';
3
3
 
4
4
  function createCommonjsModule(fn, basedir, module) {
5
5
  return module = {
@@ -1490,7 +1490,7 @@ const MessageEventType = {
1490
1490
  };
1491
1491
 
1492
1492
  const name = "@justifi/webcomponents";
1493
- const version = "4.8.0";
1493
+ const version = "4.8.2";
1494
1494
  const description = "JustiFi Web Components";
1495
1495
  const main = "dist/module/index.js";
1496
1496
  const module = "dist/module/index.js";
@@ -1512,8 +1512,8 @@ const scripts = {
1512
1512
  lint: "eslint . --max-warnings 0",
1513
1513
  clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
1514
1514
  generate: "stencil generate",
1515
- test: "stencil test --spec",
1516
- "test:watch": "stencil test --spec --watchAll",
1515
+ test: "TZ=utc stencil test --spec",
1516
+ "test:watch": "TZ=utc stencil test --spec --watchAll",
1517
1517
  "test:e2e": "stencil test --e2e"
1518
1518
  };
1519
1519
  const dependencies = {
@@ -1548,6 +1548,12 @@ const devDependencies = {
1548
1548
  };
1549
1549
  const license = "MIT";
1550
1550
  const gitHead = "507bac1d941eae6e1f56e185ecd9bc9d22637783";
1551
+ const pnpm = {
1552
+ overrides: {
1553
+ "ip@<1.1.9": ">=1.1.9",
1554
+ "ip@=2.0.0": ">=2.0.1"
1555
+ }
1556
+ };
1551
1557
  const packageJson = {
1552
1558
  name: name,
1553
1559
  version: version,
@@ -1563,7 +1569,8 @@ const packageJson = {
1563
1569
  dependencies: dependencies,
1564
1570
  devDependencies: devDependencies,
1565
1571
  license: license,
1566
- gitHead: gitHead
1572
+ gitHead: gitHead,
1573
+ pnpm: pnpm
1567
1574
  };
1568
1575
 
1569
1576
  const getComputedTheme = () => {
@@ -1616,6 +1623,39 @@ const getComputedTheme = () => {
1616
1623
  return computedTheme;
1617
1624
  };
1618
1625
 
1626
+ /**
1627
+ * This approach decouples the communication logic from PaymentMethodForm component,
1628
+ * making it cleaner, more maintainable, and easier to test
1629
+ */
1630
+ class FrameCommunicationService {
1631
+ constructor(iframe, iframeOrigin) {
1632
+ this.iframe = iframe;
1633
+ this.iframeOrigin = iframeOrigin;
1634
+ }
1635
+ postMessage(eventType, payload) {
1636
+ const message = Object.assign({ eventType }, payload);
1637
+ this.iframe.contentWindow.postMessage(message, this.iframeOrigin);
1638
+ }
1639
+ addMessageListener(callback) {
1640
+ window.addEventListener('message', callback);
1641
+ }
1642
+ removeMessageListener(callback) {
1643
+ window.removeEventListener('message', callback);
1644
+ }
1645
+ postMessageWithResponseListener(eventType, payload) {
1646
+ return new Promise((resolve) => {
1647
+ const responseListener = (event) => {
1648
+ if (event.data.eventType !== eventType)
1649
+ return;
1650
+ window.removeEventListener('message', responseListener);
1651
+ resolve(event.data.data);
1652
+ };
1653
+ window.addEventListener('message', responseListener);
1654
+ this.postMessage(eventType, payload);
1655
+ });
1656
+ }
1657
+ }
1658
+
1619
1659
  const paymentMethodFormCss = ":host{display:block}justifi-payment-method-form iframe{border:none;width:100%}iframe{width:1px;min-width:100%}";
1620
1660
 
1621
1661
  const PaymentMethodForm = /*@__PURE__*/ proxyCustomElement(class PaymentMethodForm extends HTMLElement {
@@ -1626,82 +1666,52 @@ const PaymentMethodForm = /*@__PURE__*/ proxyCustomElement(class PaymentMethodFo
1626
1666
  this.paymentMethodFormValidated = createEvent(this, "paymentMethodFormValidated", 7);
1627
1667
  this.paymentMethodFormTokenized = createEvent(this, "paymentMethodFormTokenized", 7);
1628
1668
  this.computedTheme = getComputedTheme();
1669
+ this.dispatchMessageEvent = (messageEvent) => {
1670
+ const { eventType, data } = messageEvent.data;
1671
+ const eventTypeMessage = MessageEventType[this.paymentMethodFormType];
1672
+ if (eventType === eventTypeMessage.ready) {
1673
+ this.paymentMethodFormReady.emit(data);
1674
+ }
1675
+ else if (eventType === eventTypeMessage.tokenize) {
1676
+ this.paymentMethodFormTokenized.emit(data);
1677
+ }
1678
+ else if (eventType === eventTypeMessage.validate) {
1679
+ this.paymentMethodFormValidated.emit(data);
1680
+ }
1681
+ };
1682
+ this.postMessage = (eventType, payload) => {
1683
+ this.frameService.postMessage(eventType, payload);
1684
+ };
1629
1685
  this.paymentMethodFormType = undefined;
1630
1686
  this.paymentMethodFormValidationMode = undefined;
1631
1687
  this.iframeOrigin = undefined;
1632
1688
  this.singleLine = undefined;
1633
1689
  }
1634
- connectedCallback() {
1635
- window.addEventListener('message', this.dispatchMessageEvent.bind(this));
1636
- }
1637
1690
  disconnectedCallback() {
1638
- window.removeEventListener('message', this.dispatchMessageEvent.bind(this));
1639
- }
1640
- sendStyleOverrides() {
1641
- if (this.computedTheme) {
1642
- this.postMessage(MessageEventType[this.paymentMethodFormType].styleOverrides, { styleOverrides: this.computedTheme });
1643
- }
1644
- }
1645
- dispatchMessageEvent(messageEvent) {
1646
- const messagePayload = messageEvent.data;
1647
- const messageType = messagePayload.eventType;
1648
- const messageData = messagePayload.data;
1649
- if (messageType === MessageEventType[this.paymentMethodFormType].ready) {
1650
- this.paymentMethodFormReady.emit(messageData);
1651
- }
1652
- if (messageType === MessageEventType[this.paymentMethodFormType].tokenize) {
1653
- this.paymentMethodFormTokenized.emit(messageData);
1654
- }
1655
- if (messageType === MessageEventType[this.paymentMethodFormType].validate) {
1656
- this.paymentMethodFormValidated.emit(messageData);
1657
- }
1658
- }
1659
- postMessage(eventType, payload) {
1660
- var _a, _b;
1661
- (_b = (_a = this.iframeElement) === null || _a === void 0 ? void 0 : _a.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(Object.assign({ eventType: eventType }, payload), config.iframeOrigin );
1691
+ this.frameService.removeMessageListener(this.dispatchMessageEvent);
1662
1692
  }
1663
1693
  async resize() {
1664
1694
  this.postMessage(MessageEventType[this.paymentMethodFormType].resize);
1665
1695
  }
1666
- async postMessageWithResponseListener(eventType, payload) {
1667
- return new Promise(resolve => {
1668
- const responseListener = (event) => {
1669
- if (event.data.eventType !== eventType)
1670
- return;
1671
- window.removeEventListener('message', responseListener);
1672
- resolve(event.data.data);
1673
- };
1674
- window.addEventListener('message', responseListener);
1675
- this.postMessage(eventType, payload);
1676
- });
1677
- }
1678
1696
  async tokenize(clientId, paymentMethodMetadata, account) {
1679
1697
  const eventType = MessageEventType[this.paymentMethodFormType].tokenize;
1680
- const payload = {
1681
- clientId: clientId,
1698
+ return this.frameService.postMessageWithResponseListener(eventType, {
1699
+ clientId,
1700
+ paymentMethodMetadata,
1701
+ account,
1682
1702
  componentVersion: packageJson.version,
1683
- paymentMethodMetadata: paymentMethodMetadata,
1684
- account: account,
1685
- };
1686
- return this.postMessageWithResponseListener(eventType, payload);
1703
+ });
1687
1704
  }
1688
1705
  async validate() {
1689
- return this.postMessageWithResponseListener(MessageEventType[this.paymentMethodFormType].validate);
1706
+ const eventType = MessageEventType[this.paymentMethodFormType].validate;
1707
+ return this.frameService.postMessageWithResponseListener(eventType);
1690
1708
  }
1691
- composeQueryParams(values) {
1692
- const queryParams = values.map(value => {
1693
- if (value === values[0]) {
1694
- return (value = `?${value}`);
1695
- }
1696
- else {
1697
- return (value = `&${value}`);
1698
- }
1699
- });
1700
- return queryParams.join('');
1709
+ sendStyleOverrides() {
1710
+ if (this.computedTheme) {
1711
+ this.postMessage(MessageEventType[this.paymentMethodFormType].styleOverrides, { styleOverrides: this.computedTheme });
1712
+ }
1701
1713
  }
1702
1714
  getIframeSrc() {
1703
- const iframeOrigin = config.iframeOrigin;
1704
- let iframeSrc = `${iframeOrigin}/${this.paymentMethodFormType}`;
1705
1715
  let paramsList = [];
1706
1716
  if (this.paymentMethodFormValidationMode) {
1707
1717
  paramsList.push(`validationMode=${this.paymentMethodFormValidationMode}`);
@@ -1709,7 +1719,13 @@ const PaymentMethodForm = /*@__PURE__*/ proxyCustomElement(class PaymentMethodFo
1709
1719
  if (this.singleLine) {
1710
1720
  paramsList.push(`singleLine=${this.singleLine}`);
1711
1721
  }
1712
- return iframeSrc.concat(this.composeQueryParams(paramsList));
1722
+ let iframeSrc = `${this.iframeOrigin}/${this.paymentMethodFormType}${composeQueryParams(paramsList)}`;
1723
+ return iframeSrc;
1724
+ }
1725
+ initializeFrameCommunicationService() {
1726
+ var _a;
1727
+ this.frameService = new FrameCommunicationService(this.iframeElement, this.iframeOrigin);
1728
+ (_a = this.frameService) === null || _a === void 0 ? void 0 : _a.addMessageListener(this.dispatchMessageEvent);
1713
1729
  }
1714
1730
  render() {
1715
1731
  return (h(Host, null, h("iframe", { id: `justifi-payment-method-form-${this.paymentMethodFormType}`, src: this.getIframeSrc(), ref: el => {
@@ -1718,6 +1734,7 @@ const PaymentMethodForm = /*@__PURE__*/ proxyCustomElement(class PaymentMethodFo
1718
1734
  iframeResizer({
1719
1735
  scrollbars: false,
1720
1736
  }, this.iframeElement);
1737
+ this.initializeFrameCommunicationService();
1721
1738
  this.sendStyleOverrides();
1722
1739
  } })));
1723
1740
  }
@@ -1,4 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Fragment } from '@stencil/core/internal/client';
2
+ import './Pagination.js';
3
+ import { b as PaymentMethodTypes } from './Payout.js';
2
4
 
3
5
  const paymentMethodSelectorCss = ":root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13, 110, 253;--bs-secondary-rgb:108, 117, 125;--bs-success-rgb:25, 135, 84;--bs-info-rgb:13, 202, 240;--bs-warning-rgb:255, 193, 7;--bs-danger-rgb:220, 53, 69;--bs-light-rgb:248, 249, 250;--bs-dark-rgb:33, 37, 41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255, 255, 255;--bs-black-rgb:0, 0, 0;--bs-font-sans-serif:system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";--bs-font-monospace:SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33, 37, 41;--bs-body-bg:#fff;--bs-body-bg-rgb:255, 255, 255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0, 0, 0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33, 37, 41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233, 236, 239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33, 37, 41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248, 249, 250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13, 110, 253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10, 88, 202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222, 226, 230;--bs-body-bg:#212529;--bs-body-bg-rgb:33, 37, 41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255, 255, 255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222, 226, 230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52, 58, 64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222, 226, 230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43, 48, 53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110, 168, 254;--bs-link-hover-color-rgb:139, 185, 254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) }}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.clearfix::after{display:block;clear:both;content:\"\"}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:0.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:0.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:\"\"}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:\"\"}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:0.25}.form-label{margin-bottom:0.5rem}.col-form-label{padding-top:calc(0.375rem + var(--bs-border-width));padding-bottom:calc(0.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + var(--bs-border-width));padding-bottom:calc(0.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--bs-border-width));padding-bottom:calc(0.25rem + var(--bs-border-width));font-size:0.875rem}.form-text{margin-top:0.25rem;font-size:0.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:0.375rem 0.75rem;margin:-0.375rem -0.75rem;margin-inline-end:0.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:0.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:0.25rem 0.5rem;margin:-0.25rem -0.5rem;margin-inline-end:0.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:0.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:0.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));padding:0.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");display:block;width:100%;padding:0.375rem 2.25rem 0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right 0.75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-select[multiple],.form-select[size]:not([size=\"1\"]){padding-right:0.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:0.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:0.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:0.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:0.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:0.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:0.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem 0.75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out, transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem 0.75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:0.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:\"\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:0.375rem 0.75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:0.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:0.25rem 0.5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:0.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + 0.75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\"1\"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\"1\"]{--bs-form-select-bg-icon:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");padding-right:4.125rem;background-position:right 0.75rem center, center right 2.25rem;background-size:16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:0.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:0.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:0.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + 0.75rem);background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\"1\"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\"1\"]{--bs-form-select-bg-icon:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");padding-right:4.125rem;background-position:right 0.75rem center, center right 2.25rem;background-size:16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:0.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49, 132, 253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130, 138, 145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60, 153, 110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11, 172, 204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217, 164, 6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225, 83, 97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211, 212, 213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66, 70, 73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13, 110, 253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108, 117, 125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25, 135, 84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13, 202, 240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255, 193, 7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220, 53, 69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248, 249, 250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33, 37, 41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:0.5625rem;padding-left:0.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:0.375rem;padding-left:0.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:0.75rem;padding-left:0.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}:host{font-family:system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;display:block}.jfi-btn-radio+.jfi-btn-radio-label{color:var(--jfi-radio-button-color);background-color:var(--jfi-radio-button-background-color);border-color:var(--jfi-radio-button-border-color);padding:var(--jfi-radio-button-padding);font-size:var(--jfi-radio-button-font-size)}.jfi-btn-radio:focus+.jfi-btn-radio-label{box-shadow:var(--jfi-box-shadow-focus)}.jfi-btn-radio+.jfi-btn-radio-label:hover{color:var(--jfi-radio-button-color-hover);border-color:var(--jfi-radio-button-border-color-hover);background-color:var(--jfi-radio-button-background-color-hover)}.jfi-btn-radio:checked+.jfi-btn-radio-label:hover{color:var(--jfi-radio-button-color-selected-hover);border-color:var(--jfi-radio-button-border-color-selected-hover);background-color:var(--jfi-radio-button-background-color-selected-hover)}.jfi-btn-radio:checked+.jfi-btn-radio-label{color:var(--jfi-radio-button-color-selected);background-color:var(--jfi-radio-button-background-color-selected);border-color:var(--jfi-radio-button-border-color-selected)}.jfi-btn-radio-group{font-family:var(--jfi-layout-font-family);display:inline-flex;width:var(--jfi-radio-button-group-width)}";
4
6
 
@@ -12,7 +14,7 @@ const PaymentMethodSelector = /*@__PURE__*/ proxyCustomElement(class PaymentMeth
12
14
  this.__registerHost();
13
15
  this.__attachShadow();
14
16
  this.paymentMethodSelected = createEvent(this, "paymentMethodSelected", 7);
15
- this.paymentMethodTypes = [];
17
+ this.paymentMethodTypes = [PaymentMethodTypes.card, PaymentMethodTypes.bankAccount];
16
18
  this.selectedPaymentMethodType = undefined;
17
19
  }
18
20
  onChangeHandler(event) {
@@ -23,7 +25,6 @@ const PaymentMethodSelector = /*@__PURE__*/ proxyCustomElement(class PaymentMeth
23
25
  }
24
26
  static get style() { return paymentMethodSelectorCss; }
25
27
  }, [1, "justifi-payment-method-selector", {
26
- "paymentMethodTypes": [16],
27
28
  "selectedPaymentMethodType": [1, "selected-payment-method-type"]
28
29
  }]);
29
30
  function defineCustomElement() {
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { p as pagingDefaults } from './Pagination.js';
3
3
  import './Payout.js';
4
- import { a as formatDate, d as formatTime, b as formatCurrency, M as MapPaymentStatusToBadge } from './utils2.js';
4
+ import { a as formatDate, e as formatTime, b as formatCurrency, M as MapPaymentStatusToBadge } from './utils2.js';
5
5
  import { d as defineCustomElement$2 } from './table.js';
6
6
  import { d as defineCustomElement$1 } from './pagination-menu2.js';
7
7
 
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { g as MapPayoutStatusToBadge, b as formatCurrency, a as formatDate, d as formatTime } from './utils2.js';
2
+ import { g as MapPayoutStatusToBadge, b as formatCurrency, a as formatDate, e as formatTime } from './utils2.js';
3
3
  import { L as LoadingState, E as ErrorState, b as EntityHeadInfo, c as EntityHeadInfoItem, D as DetailSection, a as DetailItem, C as CodeBlock } from './utils.js';
4
4
  import { d as defineCustomElement$1 } from './details.js';
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { p as pagingDefaults } from './Pagination.js';
3
3
  import { d as PayoutStatuses, e as PayoutStatusesSafeNames } from './Payout.js';
4
- import { a as formatDate, d as formatTime, b as formatCurrency } from './utils2.js';
4
+ import { a as formatDate, e as formatTime, b as formatCurrency } from './utils2.js';
5
5
  import { t as tableExportedParts, d as defineCustomElement$2 } from './table.js';
6
6
  import { d as defineCustomElement$1 } from './pagination-menu2.js';
7
7
 
@@ -3977,5 +3977,36 @@ function snakeCaseToHumanReadable(snakeCaseStr) {
3977
3977
  .map(word => word.charAt(0).toUpperCase() + word.slice(1))
3978
3978
  .join(' ');
3979
3979
  }
3980
+ function composeQueryParams(values) {
3981
+ const queryParams = values.map((value) => {
3982
+ if (value === values[0]) {
3983
+ return (value = `?${value}`);
3984
+ }
3985
+ else {
3986
+ return (value = `&${value}`);
3987
+ }
3988
+ });
3989
+ return queryParams.join('');
3990
+ }
3991
+ async function loadFontsOnParent() {
3992
+ const parent = document.body;
3993
+ const fontsToLoad = extractComputedFontsToLoad();
3994
+ if (!parent || !fontsToLoad) {
3995
+ return null;
3996
+ }
3997
+ // Construct the font URL
3998
+ const fontHref = `https://fonts.googleapis.com/css2?family=${fontsToLoad}&display=swap`;
3999
+ // Check if a link element with the same href already exists
4000
+ const existingFontLink = Array.from(document.querySelectorAll('link')).find((link) => link.href === fontHref);
4001
+ // If the font link already exists, there's no need to append a new one
4002
+ if (existingFontLink) {
4003
+ return;
4004
+ }
4005
+ // This approach is needed to load the font in a parent of the component
4006
+ const fonts = document.createElement('link');
4007
+ fonts.rel = 'stylesheet';
4008
+ fonts.href = fontHref;
4009
+ parent.append(fonts);
4010
+ }
3980
4011
 
3981
- export { MapPaymentStatusToBadge as M, formatDate as a, formatCurrency as b, formatDisplayDate as c, formatTime as d, extractComputedFontsToLoad as e, formatMediumDate as f, MapPayoutStatusToBadge as g, MapSubAccountStatusToBadge as h, formatPercentage as i, formatLegalAddress as j, snakeCaseToHumanReadable as s };
4012
+ export { MapPaymentStatusToBadge as M, formatDate as a, formatCurrency as b, composeQueryParams as c, formatDisplayDate as d, formatTime as e, formatMediumDate as f, MapPayoutStatusToBadge as g, MapSubAccountStatusToBadge as h, formatPercentage as i, formatLegalAddress as j, loadFontsOnParent as l, snakeCaseToHumanReadable as s };
@@ -20,7 +20,7 @@ export declare enum BusinessType {
20
20
  non_profit = "non_profit",
21
21
  government_entity = "government_entity"
22
22
  }
23
- export interface Address {
23
+ export interface IAddress {
24
24
  id?: string;
25
25
  platform_account_id?: string;
26
26
  line1?: string;
@@ -32,6 +32,19 @@ export interface Address {
32
32
  created_at?: string;
33
33
  updated_at?: string;
34
34
  }
35
+ export declare class Address implements IAddress {
36
+ id?: string;
37
+ platform_account_id?: string;
38
+ line1?: string;
39
+ line2?: string;
40
+ postal_code?: string;
41
+ city?: string;
42
+ state?: string;
43
+ country?: string;
44
+ created_at?: string;
45
+ updated_at?: string;
46
+ constructor(address: IAddress);
47
+ }
35
48
  export interface Document {
36
49
  business_id: string;
37
50
  created_at: string;
@@ -48,7 +61,7 @@ export interface Document {
48
61
  updated_at: string;
49
62
  }
50
63
  export interface Identity {
51
- address?: Address;
64
+ address?: IAddress;
52
65
  created_at?: string;
53
66
  dob_day?: string;
54
67
  dob_month?: string;
@@ -111,7 +124,7 @@ export interface IBusiness {
111
124
  email: string;
112
125
  id: string;
113
126
  industry: string;
114
- legal_address: Address | {};
127
+ legal_address: IAddress | {};
115
128
  legal_name: string;
116
129
  metadata: any;
117
130
  owners: Identity[];
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { CreatePaymentMethodResponse } from '../payment-method-form/payment-method-responses';
3
- import { Theme } from '../payment-method-form/theme';
3
+ import { Theme } from '../../utils/theme';
4
4
  export declare class BankAccountForm {
5
5
  /**
6
6
  * When to trigger validation of the form.
@@ -1,5 +1,5 @@
1
- import { Address } from '../../../api/Business';
1
+ import { IAddress } from '../../../api/Business';
2
2
  export declare class LegalAddressDetails {
3
- legalAddress: Address;
3
+ legalAddress: IAddress;
4
4
  render(): any;
5
5
  }
@@ -23,12 +23,12 @@ export declare const BusinessStructureOptions: {
23
23
  }[];
24
24
  declare const businessFormSchema: import("yup").ObjectSchema<{
25
25
  legal_address: {
26
- country?: string;
27
26
  city?: string;
28
27
  state?: string;
29
28
  line1?: string;
30
29
  line2?: string;
31
30
  postal_code?: string;
31
+ country?: string;
32
32
  };
33
33
  additional_questions: {
34
34
  business_revenue?: string;
@@ -1,4 +1,5 @@
1
1
  import { FormController } from '../../form/form';
2
+ import { IAddress } from '../../../api/Business';
2
3
  /**
3
4
  * @exportedPart label: Label for inputs
4
5
  * @exportedPart input: The input fields
@@ -7,7 +8,7 @@ import { FormController } from '../../form/form';
7
8
  export declare class LegalAddressForm {
8
9
  formController: FormController;
9
10
  errors: any;
10
- legal_address: any;
11
+ legal_address: IAddress;
11
12
  constructor();
12
13
  componentDidLoad(): void;
13
14
  inputHandler(name: string, value: string): void;
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { CreatePaymentMethodResponse } from '../payment-method-form/payment-method-responses';
3
- import { Theme } from '../payment-method-form/theme';
3
+ import { Theme } from '../../utils/theme';
4
4
  export declare class CardForm {
5
5
  /**
6
6
  * When to trigger validation of the form.
@@ -6,23 +6,19 @@ export declare class PaymentForm {
6
6
  bankAccount?: boolean;
7
7
  card?: boolean;
8
8
  email?: string;
9
- iframeOrigin?: string;
10
9
  clientId: string;
11
10
  accountId?: string;
12
11
  submitButtonText?: string;
13
12
  submitted: EventEmitter<CreatePaymentMethodResponse>;
14
13
  submitButtonEnabled: boolean;
15
- hasLoadedFonts: boolean;
16
14
  isLoading: boolean;
17
15
  selectedPaymentMethodType: PaymentMethodTypes;
18
- allowedPaymentMethodTypes: PaymentMethodTypes[];
19
16
  private paymentMethodFormRef?;
20
17
  private billingFormRef?;
21
18
  connectedCallback(): void;
22
- paymentMethodSelectedHandler(event: CustomEvent): void;
23
19
  fillBillingForm(fields: BillingFormFields): Promise<void>;
24
20
  enableSubmitButton(): Promise<void>;
25
- loadFontsOnParent(): Promise<any>;
21
+ paymentMethodSelectedHandler(event: CustomEvent): void;
26
22
  submit(event: any): Promise<void>;
27
23
  render(): any;
28
24
  }
@@ -1,9 +1,9 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { PaymentMethodTypes } from '../../api';
3
3
  export declare class PaymentMethodSelector {
4
- paymentMethodTypes: PaymentMethodTypes[];
5
4
  selectedPaymentMethodType: PaymentMethodTypes;
6
5
  paymentMethodSelected: EventEmitter;
6
+ paymentMethodTypes: PaymentMethodTypes[];
7
7
  defaultRadioButtonOption: HTMLInputElement;
8
8
  onChangeHandler(event: any): void;
9
9
  render(): any;
@@ -1,25 +1,25 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import { CreatePaymentMethodResponse } from './payment-method-responses';
3
+ import { PaymentMethodTypes } from '../../api';
3
4
  export declare class PaymentMethodForm {
4
- paymentMethodFormType: 'card' | 'bankAccount';
5
+ paymentMethodFormType: PaymentMethodTypes;
5
6
  paymentMethodFormValidationMode: 'onChange' | 'onBlur' | 'onSubmit' | 'onTouched' | 'all';
6
- iframeOrigin?: string;
7
+ iframeOrigin: string;
7
8
  singleLine: boolean;
8
- paymentMethodFormReady: EventEmitter;
9
+ paymentMethodFormReady: EventEmitter<void>;
9
10
  paymentMethodFormValidated: EventEmitter<any>;
10
- paymentMethodFormTokenized: EventEmitter<any>;
11
+ paymentMethodFormTokenized: EventEmitter<CreatePaymentMethodResponse>;
11
12
  private computedTheme;
12
- iframeElement: HTMLIFrameElement;
13
- connectedCallback(): void;
13
+ private iframeElement;
14
+ private frameService;
14
15
  disconnectedCallback(): void;
15
- sendStyleOverrides(): void;
16
- private dispatchMessageEvent;
17
- private postMessage;
18
- resize(): Promise<any>;
19
- private postMessageWithResponseListener;
16
+ resize(): Promise<void>;
20
17
  tokenize(clientId: string, paymentMethodMetadata: any, account?: string): Promise<CreatePaymentMethodResponse>;
21
18
  validate(): Promise<any>;
22
- private composeQueryParams;
19
+ private sendStyleOverrides;
20
+ private dispatchMessageEvent;
21
+ private postMessage;
23
22
  private getIframeSrc;
23
+ private initializeFrameCommunicationService;
24
24
  render(): any;
25
25
  }