fontdue-js 2.20.1 → 2.22.0

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 (175) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/components/CharacterViewer/index.js +5 -4
  3. package/dist/components/FontdueProvider/FontdueProviderClientComponent.js +4 -3
  4. package/dist/components/FontdueProvider/useAuxUIOwner.d.ts +1 -0
  5. package/dist/components/FontdueProvider/useAuxUIOwner.js +28 -0
  6. package/dist/components/Root/index.js +20 -19
  7. package/dist/components/TypeTester/TypeTesterFeatures.js +2 -1
  8. package/dist/components/TypeTester/TypeTesterFeaturesButton.js +5 -3
  9. package/dist/components/TypeTester/TypeTesterStandalone.d.ts +2 -2
  10. package/dist/components/TypeTester/TypeTesterStandalone.js +2 -1
  11. package/dist/components/TypeTester/TypeTesterStandalone.preload.d.ts +14 -0
  12. package/dist/components/TypeTester/TypeTesterStandalone.preload.js +19 -0
  13. package/dist/components/TypeTester/types.d.ts +2 -0
  14. package/dist/components/TypeTester/types.js +10 -1
  15. package/dist/components/TypeTesters/TypeTestersElement.d.ts +2 -1
  16. package/dist/components/TypeTesters/TypeTestersElement.js +3 -1
  17. package/dist/components/TypeTesters/index.d.ts +2 -0
  18. package/dist/components/TypeTesters/index.js +5 -2
  19. package/dist/config.d.ts +6 -0
  20. package/dist/config.js +20 -0
  21. package/dist/corsError.js +42 -7
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +1 -0
  24. package/dist/retryImport.d.ts +13 -0
  25. package/dist/retryImport.js +26 -0
  26. package/dist-bundle/FontdueProvider.js +6 -0
  27. package/dist-bundle/FontdueProvider.js.map +1 -0
  28. package/dist-bundle/TypeTester.js +7 -0
  29. package/dist-bundle/TypeTester.js.map +1 -0
  30. package/dist-bundle/TypeTester.preload.js +75 -0
  31. package/dist-bundle/TypeTester.preload.js.map +1 -0
  32. package/dist-bundle/chunks/ComponentsContext-CmkN9J4X.js +20843 -0
  33. package/dist-bundle/chunks/ComponentsContext-CmkN9J4X.js.map +1 -0
  34. package/dist-bundle/chunks/CorsErrorModal-C1g_-3Re.js +95 -0
  35. package/dist-bundle/chunks/CorsErrorModal-C1g_-3Re.js.map +1 -0
  36. package/dist-bundle/chunks/TypeTesterStandalone-BMWuv8Ca.js +27486 -0
  37. package/dist-bundle/chunks/TypeTesterStandalone-BMWuv8Ca.js.map +1 -0
  38. package/dist-bundle/chunks/consent-DMvR5rEh.js +84 -0
  39. package/dist-bundle/chunks/consent-DMvR5rEh.js.map +1 -0
  40. package/dist-bundle/chunks/index-BNSbxp7B.js +78 -0
  41. package/dist-bundle/chunks/index-BNSbxp7B.js.map +1 -0
  42. package/dist-bundle/chunks/index-C4ak9qTL.js +423 -0
  43. package/dist-bundle/chunks/index-C4ak9qTL.js.map +1 -0
  44. package/dist-bundle/chunks/index-DsvF5W13.js +159 -0
  45. package/dist-bundle/chunks/index-DsvF5W13.js.map +1 -0
  46. package/dist-bundle/chunks/index-o29NNufd.js +131 -0
  47. package/dist-bundle/chunks/index-o29NNufd.js.map +1 -0
  48. package/dist-bundle/index.js +23 -0
  49. package/dist-bundle/index.js.map +1 -0
  50. package/package.json +1 -1
  51. package/dist/__generated__/CartItem_license.graphql.d.ts +0 -27
  52. package/dist/__generated__/CartItem_license.graphql.js +0 -76
  53. package/dist/__generated__/CartItem_licenseSelection.graphql.d.ts +0 -34
  54. package/dist/__generated__/CartItem_licenseSelection.graphql.js +0 -106
  55. package/dist/__generated__/CartItem_product.graphql.d.ts +0 -32
  56. package/dist/__generated__/CartItem_product.graphql.js +0 -124
  57. package/dist/__generated__/CartItem_variable.graphql.d.ts +0 -23
  58. package/dist/__generated__/CartItem_variable.graphql.js +0 -67
  59. package/dist/__generated__/CartItem_viewer.graphql.d.ts +0 -30
  60. package/dist/__generated__/CartItem_viewer.graphql.js +0 -87
  61. package/dist/__generated__/CartOrderApplyCouponMutation.graphql.d.ts +0 -21
  62. package/dist/__generated__/CartOrderApplyCouponMutation.graphql.js +0 -919
  63. package/dist/__generated__/CartStateApplyCouponMutation.graphql.d.ts +0 -21
  64. package/dist/__generated__/CartStateApplyCouponMutation.graphql.js +0 -274
  65. package/dist/__generated__/CartTotalsCreateSnapshotMutation.graphql.d.ts +0 -22
  66. package/dist/__generated__/CartTotalsCreateSnapshotMutation.graphql.js +0 -84
  67. package/dist/__generated__/Cart_viewer.graphql.d.ts +0 -20
  68. package/dist/__generated__/Cart_viewer.graphql.js +0 -49
  69. package/dist/__generated__/CharacterViewer_Query.graphql.d.ts +0 -21
  70. package/dist/__generated__/CharacterViewer_Query.graphql.js +0 -230
  71. package/dist/__generated__/CharacterViewer_SlugQuery.graphql.d.ts +0 -25
  72. package/dist/__generated__/CharacterViewer_SlugQuery.graphql.js +0 -257
  73. package/dist/__generated__/CouponCodeInput_Refetch_Query.graphql.d.ts +0 -17
  74. package/dist/__generated__/CouponCodeInput_Refetch_Query.graphql.js +0 -201
  75. package/dist/__generated__/CouponCodeInput_order.graphql.d.ts +0 -13
  76. package/dist/__generated__/CouponCodeInput_order.graphql.js +0 -28
  77. package/dist/__generated__/CouponCodeInput_viewer.graphql.d.ts +0 -25
  78. package/dist/__generated__/CouponCodeInput_viewer.graphql.js +0 -88
  79. package/dist/__generated__/CouponCodeRefetchQuery.graphql.d.ts +0 -22
  80. package/dist/__generated__/CouponCodeRefetchQuery.graphql.js +0 -178
  81. package/dist/__generated__/Family_viewer.graphql.d.ts +0 -17
  82. package/dist/__generated__/FontFamilies_node.graphql.d.ts +0 -20
  83. package/dist/__generated__/FontFamilies_node.graphql.js +0 -49
  84. package/dist/__generated__/NewsletterSignup_Query.graphql.d.ts +0 -21
  85. package/dist/__generated__/NewsletterSignup_Query.graphql.js +0 -99
  86. package/dist/__generated__/NewsletterSignup_viewer.graphql.d.ts +0 -20
  87. package/dist/__generated__/NewsletterSignup_viewer.graphql.js +0 -56
  88. package/dist/__generated__/OrderVariableSelectionMutation.graphql.d.ts +0 -69
  89. package/dist/__generated__/OrderVariableSelectionMutation_viewer.graphql.d.ts +0 -30
  90. package/dist/__generated__/PriceBarSection_RefetchQuery.graphql.d.ts +0 -26
  91. package/dist/__generated__/PriceBarSection_RefetchQuery.graphql.js +0 -168
  92. package/dist/__generated__/PriceBarSection_viewer.graphql.d.ts +0 -17
  93. package/dist/__generated__/PriceBar_viewer.graphql.d.ts +0 -17
  94. package/dist/__generated__/SKUPriceRefetchQuery.graphql.d.ts +0 -31
  95. package/dist/__generated__/SKUPriceRefetchQuery.graphql.js +0 -130
  96. package/dist/__generated__/SKUPriceUpdateQuery.graphql.d.ts +0 -29
  97. package/dist/__generated__/SKUPrice_RefetchQuery.graphql.d.ts +0 -26
  98. package/dist/__generated__/SKUPrice_RefetchQuery.graphql.js +0 -129
  99. package/dist/__generated__/SKUPrice_viewer.graphql.d.ts +0 -19
  100. package/dist/__generated__/SelectButton_viewer.graphql.d.ts +0 -17
  101. package/dist/__generated__/SpecimenLink_node.graphql.d.ts +0 -21
  102. package/dist/__generated__/SpecimenLink_node.graphql.js +0 -55
  103. package/dist/__generated__/StoreModalBundleButton_viewer.graphql.d.ts +0 -17
  104. package/dist/__generated__/StoreModalFamilyButton_viewer.graphql.d.ts +0 -17
  105. package/dist/__generated__/StoreModalFamily_viewer.graphql.d.ts +0 -17
  106. package/dist/__generated__/StoreModalOrderVariableSelectionHookQuery.graphql.d.ts +0 -26
  107. package/dist/__generated__/StoreModalOrderVariableSelectionOrderUpdateMutation.graphql.d.ts +0 -60
  108. package/dist/__generated__/StoreModalOrderVariableSelectionRefetchQuery.graphql.d.ts +0 -26
  109. package/dist/__generated__/StoreModalOrderVariableSelectionVariable_order.graphql.d.ts +0 -27
  110. package/dist/__generated__/StoreModalOrderVariableSelectionVariable_variable.graphql.d.ts +0 -24
  111. package/dist/__generated__/StoreModalProductContent_viewer.graphql.d.ts +0 -30
  112. package/dist/__generated__/StoreModalProductLicenseSelection_viewer.graphql.d.ts +0 -20
  113. package/dist/__generated__/StoreModalProductLicenseSelection_viewer.graphql.js +0 -51
  114. package/dist/__generated__/StoreModalProductViewerRefetchQuery.graphql.d.ts +0 -31
  115. package/dist/__generated__/StoreModalReviewCompleteOrderMutation.graphql.d.ts +0 -25
  116. package/dist/__generated__/StoreModalReviewCompleteOrderMutation.graphql.js +0 -442
  117. package/dist/__generated__/StoreModalReviewQuery.graphql.d.ts +0 -22
  118. package/dist/__generated__/StoreModalReviewQuery.graphql.js +0 -491
  119. package/dist/__generated__/StoreModalReviewUpdateOrderMutation.graphql.d.ts +0 -63
  120. package/dist/__generated__/StoreModalReviewUpdateOrderMutation.graphql.js +0 -445
  121. package/dist/__generated__/StoreModalReview_order.graphql.d.ts +0 -59
  122. package/dist/__generated__/StoreModalReview_order.graphql.js +0 -244
  123. package/dist/__generated__/StoreModalReview_viewer.graphql.d.ts +0 -19
  124. package/dist/__generated__/StoreModalReview_viewer.graphql.js +0 -47
  125. package/dist/__generated__/StoreModalStyleButton_viewer.graphql.d.ts +0 -17
  126. package/dist/__generated__/TestFontsForm_viewer.graphql.d.ts +0 -29
  127. package/dist/__generated__/TestFontsForm_viewer.graphql.js +0 -101
  128. package/dist/__generated__/TestModeBanner_viewer.graphql.d.ts +0 -23
  129. package/dist/__generated__/TestModeBanner_viewer.graphql.js +0 -64
  130. package/dist/__generated__/ThemeConfig_viewer.graphql.d.ts +0 -19
  131. package/dist/__generated__/ThemeConfig_viewer.graphql.js +0 -43
  132. package/dist/__generated__/TypeTesterStandalone_StyleQuery.graphql.d.ts +0 -32
  133. package/dist/__generated__/TypeTesterStandalone_StyleQuery.graphql.js +0 -385
  134. package/dist/__generated__/TypeTesterStyleSelect_family.graphql.d.ts +0 -33
  135. package/dist/__generated__/TypeTesterStyleSelect_fontStyle.graphql.d.ts +0 -27
  136. package/dist/__generated__/TypeTester_NewStyleQuery.graphql.d.ts +0 -41
  137. package/dist/__generated__/TypeTester_NewStyleQuery.graphql.js +0 -344
  138. package/dist/__generated__/TypeTester_sku.graphql.d.ts +0 -21
  139. package/dist/__generated__/TypeTester_sku.graphql.js +0 -57
  140. package/dist/__generated__/useOrderVariables_order.graphql.d.ts +0 -24
  141. package/dist/__tests__/collectionBundleSelection.test.d.ts +0 -1
  142. package/dist/components/BuyButton/BuyButton.server.d.ts +0 -3
  143. package/dist/components/BuyButton/BuyButton.server.js +0 -39
  144. package/dist/components/CartButton/index-server.d.ts +0 -3
  145. package/dist/components/CartButton/index-server.js +0 -18
  146. package/dist/components/OrderVariableSelection/OrderVariableSelectionMutation.d.ts +0 -7
  147. package/dist/components/SelectField/index.d.ts +0 -13
  148. package/dist/components/SelectField/index.js +0 -49
  149. package/dist/components/StoreModal/StoreModalReview.d.ts +0 -6
  150. package/dist/components/StoreModal/StoreModalReview.js +0 -221
  151. package/dist/components/StoreModal/StoreModalRouterContext.d.ts +0 -7
  152. package/dist/components/StoreModal/StoreModalRouterContext.js +0 -11
  153. package/dist/components/StoreModal/createRouter.d.ts +0 -41
  154. package/dist/components/StoreModal/createRouter.js +0 -48
  155. package/dist/components/StoreModalProductLicenseSelection/ContainerElement.d.ts +0 -9
  156. package/dist/components/StoreModalProductLicenseSelection/ContainerElement.js +0 -25
  157. package/dist/components/Stylesheet/index.d.ts +0 -7
  158. package/dist/components/Stylesheet/index.js +0 -43
  159. package/dist/components/TestModeBanner/index.server.d.ts +0 -2
  160. package/dist/components/TestModeBanner/index.server.js +0 -17
  161. package/dist/components/elements/StoreModalReviewConfirm/index.d.ts +0 -12
  162. package/dist/components/elements/StoreModalReviewConfirm/index.js +0 -50
  163. package/dist/components/elements/StoreModalReviewItem/index.d.ts +0 -9
  164. package/dist/components/elements/StoreModalReviewItem/index.js +0 -21
  165. package/dist/components/elements/StoreModalReviewLayout/index.d.ts +0 -17
  166. package/dist/components/elements/StoreModalReviewLayout/index.js +0 -59
  167. package/dist/components/useFontLoaded.d.ts +0 -24
  168. package/dist/components/useFontLoaded.js +0 -60
  169. package/dist/deepMerge.d.ts +0 -4
  170. package/dist/deepMerge.js +0 -24
  171. package/dist/hooks/useOrderVariables.d.ts +0 -5
  172. package/dist/relay-environment.d.ts +0 -7
  173. package/dist/relay-environment.js +0 -34
  174. package/dist/utils/interpolateOrderVariableDescription.d.ts +0 -36
  175. package/dist/utils/interpolateOrderVariableDescription.test.d.ts +0 -1
@@ -0,0 +1,75 @@
1
+ import React__default from 'react';
2
+ import { c as createNetworkFetch } from './chunks/ComponentsContext-CmkN9J4X.js';
3
+ import { T as TypeTesterStandalonePreloadedQueryRenderer, n as node } from './chunks/TypeTesterStandalone-BMWuv8Ca.js';
4
+ import { F as FontdueProvider } from './chunks/index-C4ak9qTL.js';
5
+ import './index.js';
6
+ import 'react-dom';
7
+
8
+ /**
9
+ * RELAY CACHE KEY NORMALIZATION
10
+ *
11
+ * This type transformation is required to fix a cache key inconsistency issue in Relay.
12
+ *
13
+ * THE PROBLEM:
14
+ * Relay's `getOperationVariables()` function always includes ALL argumentDefinitions
15
+ * from the GraphQL operation, even optional ones, setting them to their defaultValue
16
+ * (typically null). This means when Relay generates cache keys, it creates entries like:
17
+ *
18
+ * Cache Key A: { collectionId: "123", tags: null, excludeTags: null, selectable: true }
19
+ * Cache Key B: { collectionId: "123", selectable: true } // when optional vars omitted
20
+ *
21
+ * Even though these represent the same logical query, they produce different cache keys
22
+ * because `JSON.stringify(stableCopy(variables))` serializes them differently.
23
+ *
24
+ * (This is possibly caused by NextJS RSC data serialization and hydration)
25
+ *
26
+ * THE ROOT CAUSE:
27
+ * - GraphQL schema defines: `$tags: [String!], $excludeTags: [String!]` (optional)
28
+ * - TypeScript generates: `tags?: ReadonlyArray<string> | null`
29
+ * - Relay's argumentDefinitions include: `{ name: "tags", defaultValue: null }`
30
+ * - getOperationVariables() always sets: `operationVariables[def.name] = def.defaultValue`
31
+ *
32
+ * THE SOLUTION:
33
+ * RequireAllWithNull<T> transforms optional properties to required properties with
34
+ * explicit null values, forcing callers to be consistent. This ensures server-side
35
+ * preloaded queries and client-side cache lookups use identical variable structures.
36
+ *
37
+ * USAGE:
38
+ * Instead of: { tags, excludeTags } // undefined values
39
+ * Use: { tags: tags ?? null, excludeTags: excludeTags ?? null } // explicit nulls
40
+ *
41
+ * This eliminates cache misses caused by variable structure inconsistencies between
42
+ * server-side rendering and client-side Relay operations.
43
+ */
44
+
45
+ // Call into raw network fetch to get serializable GraphQL query response
46
+ // This response will be sent to the client to "warm" the QueryResponseCache
47
+ // to avoid the client fetches.
48
+ async function loadSerializableQuery(query, variables, options) {
49
+ if (!('params' in query)) throw new Error('Params not found in query, is it a fragment instead of a query?');
50
+ const fetcher = createNetworkFetch(options);
51
+ const response = await fetcher(query.params, variables);
52
+ return {
53
+ params: query.params,
54
+ variables,
55
+ response
56
+ };
57
+ }
58
+
59
+ async function loadTypeTesterQuery(variables, options) {
60
+ return loadSerializableQuery(node, {
61
+ familyName: variables.familyName,
62
+ styleName: variables.styleName,
63
+ selectable: variables.selectable ?? true
64
+ }, options);
65
+ }
66
+ // Self-wraps with FontdueProvider so consumers don't need to. The provider
67
+ // state is a module-level singleton under the hood, so multiple
68
+ // TypeTesterPreloaded (or other *Preloaded) components on a page all share
69
+ // one Relay env + Redux store + auxiliary UI.
70
+ function TypeTesterPreloaded(props) {
71
+ return /*#__PURE__*/React__default.createElement(FontdueProvider, null, /*#__PURE__*/React__default.createElement(TypeTesterStandalonePreloadedQueryRenderer, props));
72
+ }
73
+
74
+ export { TypeTesterPreloaded, loadTypeTesterQuery };
75
+ //# sourceMappingURL=TypeTester.preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeTester.preload.js","sources":["../src/relay/loadSerializableQuery.ts","../src/components/TypeTester/TypeTesterStandalone.preload.tsx"],"sourcesContent":["import {\n GraphQLResponse,\n GraphQLTaggedNode,\n OperationType,\n RequestParameters,\n VariablesOf,\n} from 'relay-runtime';\nimport { createNetworkFetch } from './environment';\n\nexport interface SerializablePreloadedQuery<TQuery extends OperationType> {\n params: RequestParameters;\n variables: VariablesOf<TQuery>;\n response: GraphQLResponse;\n}\n\n/**\n * RELAY CACHE KEY NORMALIZATION\n *\n * This type transformation is required to fix a cache key inconsistency issue in Relay.\n *\n * THE PROBLEM:\n * Relay's `getOperationVariables()` function always includes ALL argumentDefinitions\n * from the GraphQL operation, even optional ones, setting them to their defaultValue\n * (typically null). This means when Relay generates cache keys, it creates entries like:\n *\n * Cache Key A: { collectionId: \"123\", tags: null, excludeTags: null, selectable: true }\n * Cache Key B: { collectionId: \"123\", selectable: true } // when optional vars omitted\n *\n * Even though these represent the same logical query, they produce different cache keys\n * because `JSON.stringify(stableCopy(variables))` serializes them differently.\n *\n * (This is possibly caused by NextJS RSC data serialization and hydration)\n *\n * THE ROOT CAUSE:\n * - GraphQL schema defines: `$tags: [String!], $excludeTags: [String!]` (optional)\n * - TypeScript generates: `tags?: ReadonlyArray<string> | null`\n * - Relay's argumentDefinitions include: `{ name: \"tags\", defaultValue: null }`\n * - getOperationVariables() always sets: `operationVariables[def.name] = def.defaultValue`\n *\n * THE SOLUTION:\n * RequireAllWithNull<T> transforms optional properties to required properties with\n * explicit null values, forcing callers to be consistent. This ensures server-side\n * preloaded queries and client-side cache lookups use identical variable structures.\n *\n * USAGE:\n * Instead of: { tags, excludeTags } // undefined values\n * Use: { tags: tags ?? null, excludeTags: excludeTags ?? null } // explicit nulls\n *\n * This eliminates cache misses caused by variable structure inconsistencies between\n * server-side rendering and client-side Relay operations.\n */\ntype RequireAllWithNull<T> = {\n [K in keyof T]-?: T[K] | null;\n};\n\nexport interface LoadSerializableQueryOptions {\n url?: string;\n stripeIntegration?: 'card-element' | 'dynamic';\n}\n\n// Call into raw network fetch to get serializable GraphQL query response\n// This response will be sent to the client to \"warm\" the QueryResponseCache\n// to avoid the client fetches.\nexport default async function loadSerializableQuery<TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n variables: RequireAllWithNull<VariablesOf<TQuery>>,\n options?: LoadSerializableQueryOptions,\n): Promise<SerializablePreloadedQuery<TQuery>> {\n if (!('params' in query))\n throw new Error('Params not found in query, is it a fragment instead of a query?');\n const fetcher = createNetworkFetch(options);\n const response = await fetcher(query.params, variables);\n\n return {\n params: query.params,\n variables,\n response,\n };\n}\n","import React from 'react';\nimport loadSerializableQuery, {\n LoadSerializableQueryOptions,\n SerializablePreloadedQuery,\n} from '../../relay/loadSerializableQuery';\nimport TypeTesterStandaloneQueryNode, {\n TypeTesterStandaloneQuery,\n} from '../../__generated__/TypeTesterStandaloneQuery.graphql';\nimport FontdueProvider from '../FontdueProvider';\nimport { TypeTesterStandalonePreloadedQueryRenderer } from './TypeTesterStandalone';\n\nexport type TypeTesterPreloadedQuery =\n SerializablePreloadedQuery<TypeTesterStandaloneQuery>;\n\nexport interface LoadTypeTesterQueryVariables {\n familyName: string;\n styleName: string;\n selectable?: boolean;\n}\n\nexport async function loadTypeTesterQuery(\n variables: LoadTypeTesterQueryVariables,\n options?: LoadSerializableQueryOptions,\n): Promise<TypeTesterPreloadedQuery> {\n return loadSerializableQuery<TypeTesterStandaloneQuery>(\n TypeTesterStandaloneQueryNode,\n {\n familyName: variables.familyName,\n styleName: variables.styleName,\n selectable: variables.selectable ?? true,\n },\n options,\n );\n}\n\ntype RendererProps = React.ComponentProps<typeof TypeTesterStandalonePreloadedQueryRenderer>;\n\n// Self-wraps with FontdueProvider so consumers don't need to. The provider\n// state is a module-level singleton under the hood, so multiple\n// TypeTesterPreloaded (or other *Preloaded) components on a page all share\n// one Relay env + Redux store + auxiliary UI.\nexport function TypeTesterPreloaded(props: RendererProps) {\n return (\n <FontdueProvider>\n <TypeTesterStandalonePreloadedQueryRenderer {...props} />\n </FontdueProvider>\n );\n}\n"],"names":["loadSerializableQuery","query","variables","options","Error","fetcher","createNetworkFetch","response","params","loadTypeTesterQuery","TypeTesterStandaloneQueryNode","familyName","styleName","selectable","TypeTesterPreloaded","props","React","createElement","FontdueProvider","TypeTesterStandalonePreloadedQueryRenderer"],"mappings":";;;;;;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACe,eAAeA,qBAAqBA,CACjDC,KAAwB,EACxBC,SAAkD,EAClDC,OAAsC,EACO;EAC7C,IAAI,EAAE,QAAQ,IAAIF,KAAK,CAAC,EACtB,MAAM,IAAIG,KAAK,CAAC,iEAAiE,CAAC;AACpF,EAAA,MAAMC,OAAO,GAAGC,kBAAkB,CAACH,OAAO,CAAC;EAC3C,MAAMI,QAAQ,GAAG,MAAMF,OAAO,CAACJ,KAAK,CAACO,MAAM,EAAEN,SAAS,CAAC;EAEvD,OAAO;IACLM,MAAM,EAAEP,KAAK,CAACO,MAAM;IACpBN,SAAS;AACTK,IAAAA;GACD;AACH;;AC1DO,eAAeE,mBAAmBA,CACvCP,SAAuC,EACvCC,OAAsC,EACH;EACnC,OAAOH,qBAAqB,CAC1BU,IAA6B,EAC7B;IACEC,UAAU,EAAET,SAAS,CAACS,UAAU;IAChCC,SAAS,EAAEV,SAAS,CAACU,SAAS;AAC9BC,IAAAA,UAAU,EAAEX,SAAS,CAACW,UAAU,IAAI;GACrC,EACDV,OACF,CAAC;AACH;AAIA;AACA;AACA;AACA;AACO,SAASW,mBAAmBA,CAACC,KAAoB,EAAE;AACxD,EAAA,oBACEC,cAAA,CAAAC,aAAA,CAACC,eAAe,EAAA,IAAA,eACdF,cAAA,CAAAC,aAAA,CAACE,0CAA0C,EAAKJ,KAAQ,CACzC,CAAC;AAEtB;;;;"}