fontdue-js 2.26.0 → 2.28.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 (87) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/__generated__/TypeTesterFamiliesQuery.graphql.d.ts +29 -0
  3. package/dist/__generated__/TypeTesterFamiliesQuery.graphql.js +174 -0
  4. package/dist/__generated__/TypeTesterFamiliesStylesQuery.graphql.d.ts +35 -0
  5. package/dist/__generated__/TypeTesterFamiliesStylesQuery.graphql.js +170 -0
  6. package/dist/__generated__/TypeTesterStandaloneChangedStylesQuery.graphql.d.ts +1 -1
  7. package/dist/__generated__/TypeTesterStandaloneChangedStylesQuery.graphql.js +4 -4
  8. package/dist/__generated__/TypeTesterStandaloneQuery.graphql.d.ts +1 -3
  9. package/dist/__generated__/TypeTesterStandaloneQuery.graphql.js +78 -161
  10. package/dist/__generated__/TypeTesterStyleSelectData_fontStyle.graphql.d.ts +2 -1
  11. package/dist/__generated__/TypeTesterStyleSelectData_fontStyle.graphql.js +18 -17
  12. package/dist/__generated__/TypeTestersChangedStylesQuery.graphql.d.ts +1 -1
  13. package/dist/__generated__/TypeTestersChangedStylesQuery.graphql.js +4 -4
  14. package/dist/__generated__/TypeTestersIDQuery.graphql.d.ts +1 -5
  15. package/dist/__generated__/TypeTestersIDQuery.graphql.js +101 -195
  16. package/dist/__generated__/TypeTestersRefetchQuery.graphql.d.ts +1 -1
  17. package/dist/__generated__/TypeTestersRefetchQuery.graphql.js +4 -4
  18. package/dist/__generated__/TypeTestersSlugQuery.graphql.d.ts +1 -3
  19. package/dist/__generated__/TypeTestersSlugQuery.graphql.js +102 -178
  20. package/dist/__generated__/orderTrackingUpdateOrderTrackingMutation.graphql.d.ts +27 -0
  21. package/dist/__generated__/orderTrackingUpdateOrderTrackingMutation.graphql.js +72 -0
  22. package/dist/components/Cart/CartOrder.js +8 -0
  23. package/dist/components/Cart/orderTracking.d.ts +10 -0
  24. package/dist/components/Cart/orderTracking.js +43 -0
  25. package/dist/components/ConfigContext.d.ts +2 -2
  26. package/dist/components/FontStyle/index.d.ts +2 -0
  27. package/dist/components/FontStyle/index.js +4 -2
  28. package/dist/components/FontdueProvider/FontdueProviderClientComponent.js +2 -1
  29. package/dist/components/TypeTester/TypeTesterFamilies.d.ts +37 -0
  30. package/dist/components/TypeTester/TypeTesterFamilies.js +128 -0
  31. package/dist/components/TypeTester/TypeTesterStandalone.js +2 -7
  32. package/dist/components/TypeTester/TypeTesterStandalone.server.js +1 -2
  33. package/dist/components/TypeTester/TypeTesterStyleSelect.d.ts +15 -5
  34. package/dist/components/TypeTester/TypeTesterStyleSelect.js +57 -47
  35. package/dist/components/TypeTester/TypeTesterStyleSelectData.d.ts +1 -3
  36. package/dist/components/TypeTester/TypeTesterStyleSelectData.js +210 -52
  37. package/dist/components/TypeTester/TypeTesterVariableAxes.js +17 -4
  38. package/dist/components/TypeTester/index.d.ts +1 -3
  39. package/dist/components/TypeTester/index.js +13 -6
  40. package/dist/components/TypeTester/useTypeTesterStyler.d.ts +4 -2
  41. package/dist/components/TypeTester/useTypeTesterStyler.js +78 -11
  42. package/dist/components/TypeTesters/index.js +6 -20
  43. package/dist/components/TypeTesters/index.server.js +2 -4
  44. package/dist/components/elements/StoreModalUnifiedCheckout.js +8 -0
  45. package/dist/components/useFontStyle.d.ts +7 -0
  46. package/dist/components/useFontStyle.js +2 -1
  47. package/dist/fontdue.css +9 -16
  48. package/dist/hooks.d.ts +1 -0
  49. package/dist/hooks.js +27 -0
  50. package/fontdue.css +2 -1
  51. package/package.json +1 -1
  52. package/dist/__generated__/FontdueProviderQuery.graphql.d.ts +0 -19
  53. package/dist/__generated__/FontdueProviderQuery.graphql.js +0 -140
  54. package/dist/__generated__/ServerConfigProvider_viewer.graphql.d.ts +0 -23
  55. package/dist/__generated__/ServerConfigProvider_viewer.graphql.js +0 -57
  56. package/dist/__generated__/TestModeBanner_viewer.graphql.d.ts +0 -19
  57. package/dist/__generated__/TestModeBanner_viewer.graphql.js +0 -36
  58. package/dist/__generated__/ThemeConfig_viewer.graphql.d.ts +0 -19
  59. package/dist/__generated__/ThemeConfig_viewer.graphql.js +0 -36
  60. package/dist/__generated__/TypeTesterStyleSelectData_viewer.graphql.d.ts +0 -42
  61. package/dist/__generated__/TypeTesterStyleSelectData_viewer.graphql.js +0 -166
  62. package/dist/__generated__/TypeTester_viewer.graphql.d.ts +0 -17
  63. package/dist/__generated__/TypeTester_viewer.graphql.js +0 -40
  64. package/dist/__generated__/TypeTesters_viewer.graphql.d.ts +0 -17
  65. package/dist/__generated__/TypeTesters_viewer.graphql.js +0 -40
  66. package/dist/components/BuyingOptions/index.d.ts +0 -9
  67. package/dist/components/CookieNotification/index.d.ts +0 -13
  68. package/dist/components/FontdueContextProvider/index.d.ts +0 -17
  69. package/dist/components/FontdueContextProvider/index.js +0 -108
  70. package/dist/components/FontdueContextProvider/index.server.d.ts +0 -4
  71. package/dist/components/FontdueContextProvider/index.server.js +0 -7
  72. package/dist/components/FontdueProvider/useAuxUIOwner.d.ts +0 -1
  73. package/dist/components/FontdueProvider/useAuxUIOwner.js +0 -28
  74. package/dist/components/TypeTester/TypeTesterStandalone.preload.d.ts +0 -14
  75. package/dist/components/TypeTester/TypeTesterStandalone.preload.js +0 -20
  76. package/dist/config.d.ts +0 -7
  77. package/dist/config.js +0 -31
  78. package/dist/global-shim.d.ts +0 -1
  79. package/dist/global-shim.js +0 -8
  80. package/dist/hooks/useResizeObserver.d.ts +0 -11
  81. package/dist/hooks/useResizeObserver.js +0 -23
  82. package/dist/index.d.ts +0 -2
  83. package/dist/index.js +0 -1
  84. package/dist/loadFontdueProviderQuery.d.ts +0 -3
  85. package/dist/loadFontdueProviderQuery.js +0 -10
  86. package/dist/vite.d.ts +0 -2
  87. package/dist/vite.js +0 -139
@@ -1,42 +0,0 @@
1
- /**
2
- * @generated SignedSource<<de2a1d20c5692c0b9d1b3fb9726732b0>>
3
- * @lightSyntaxTransform
4
- * @nogrep
5
- */
6
- import { ReaderFragment } from 'relay-runtime';
7
- import { FragmentRefs } from "relay-runtime";
8
- export type TypeTesterStyleSelectData_viewer$data = {
9
- readonly families?: {
10
- readonly edges: ReadonlyArray<{
11
- readonly node: {
12
- readonly featureStyle: {
13
- readonly supportedLanguages: ReadonlyArray<string> | null;
14
- } | null;
15
- readonly fontStyles: ReadonlyArray<{
16
- readonly cssStretch: string | null;
17
- readonly cssStyle: string | null;
18
- readonly cssWeight: string | null;
19
- readonly id: string;
20
- readonly name: string;
21
- readonly variableInstances: ReadonlyArray<{
22
- readonly coordinates: ReadonlyArray<{
23
- readonly axis: string;
24
- readonly value: number;
25
- }>;
26
- readonly name: string;
27
- }> | null;
28
- }>;
29
- readonly id: string;
30
- readonly isVariableFont: boolean;
31
- readonly name: string;
32
- } | null;
33
- } | null> | null;
34
- } | null;
35
- readonly " $fragmentType": "TypeTesterStyleSelectData_viewer";
36
- };
37
- export type TypeTesterStyleSelectData_viewer$key = {
38
- readonly " $data"?: TypeTesterStyleSelectData_viewer$data;
39
- readonly " $fragmentSpreads": FragmentRefs<"TypeTesterStyleSelectData_viewer">;
40
- };
41
- declare const node: ReaderFragment;
42
- export default node;
@@ -1,166 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- /**
8
- * @generated SignedSource<<de2a1d20c5692c0b9d1b3fb9726732b0>>
9
- * @lightSyntaxTransform
10
- * @nogrep
11
- */
12
-
13
- /* tslint:disable */
14
- /* eslint-disable */
15
- // @ts-nocheck
16
-
17
- const node = function () {
18
- var v0 = {
19
- "alias": null,
20
- "args": null,
21
- "kind": "ScalarField",
22
- "name": "id",
23
- "storageKey": null
24
- },
25
- v1 = {
26
- "alias": null,
27
- "args": null,
28
- "kind": "ScalarField",
29
- "name": "name",
30
- "storageKey": null
31
- };
32
- return {
33
- "argumentDefinitions": [{
34
- "defaultValue": true,
35
- "kind": "LocalArgument",
36
- "name": "selectable"
37
- }],
38
- "kind": "Fragment",
39
- "metadata": null,
40
- "name": "TypeTesterStyleSelectData_viewer",
41
- "selections": [{
42
- "condition": "selectable",
43
- "kind": "Condition",
44
- "passingValue": true,
45
- "selections": [{
46
- "alias": "families",
47
- "args": [{
48
- "kind": "Literal",
49
- "name": "collectionTypes",
50
- "value": ["FAMILY"]
51
- }, {
52
- "kind": "Literal",
53
- "name": "first",
54
- "value": 999
55
- }],
56
- "concreteType": "FontCollectionConnection",
57
- "kind": "LinkedField",
58
- "name": "fontCollections",
59
- "plural": false,
60
- "selections": [{
61
- "alias": null,
62
- "args": null,
63
- "concreteType": "FontCollectionEdge",
64
- "kind": "LinkedField",
65
- "name": "edges",
66
- "plural": true,
67
- "selections": [{
68
- "alias": null,
69
- "args": null,
70
- "concreteType": "FontCollection",
71
- "kind": "LinkedField",
72
- "name": "node",
73
- "plural": false,
74
- "selections": [v0 /*: any*/, v1 /*: any*/, {
75
- "alias": null,
76
- "args": null,
77
- "kind": "ScalarField",
78
- "name": "isVariableFont",
79
- "storageKey": null
80
- }, {
81
- "alias": null,
82
- "args": null,
83
- "concreteType": "FontStyle",
84
- "kind": "LinkedField",
85
- "name": "featureStyle",
86
- "plural": false,
87
- "selections": [{
88
- "alias": null,
89
- "args": null,
90
- "kind": "ScalarField",
91
- "name": "supportedLanguages",
92
- "storageKey": null
93
- }],
94
- "storageKey": null
95
- }, {
96
- "alias": null,
97
- "args": null,
98
- "concreteType": "FontStyle",
99
- "kind": "LinkedField",
100
- "name": "fontStyles",
101
- "plural": true,
102
- "selections": [v0 /*: any*/, v1 /*: any*/, {
103
- "alias": null,
104
- "args": null,
105
- "kind": "ScalarField",
106
- "name": "cssWeight",
107
- "storageKey": null
108
- }, {
109
- "alias": null,
110
- "args": null,
111
- "kind": "ScalarField",
112
- "name": "cssStyle",
113
- "storageKey": null
114
- }, {
115
- "alias": null,
116
- "args": null,
117
- "kind": "ScalarField",
118
- "name": "cssStretch",
119
- "storageKey": null
120
- }, {
121
- "alias": null,
122
- "args": null,
123
- "concreteType": "VariableInstance",
124
- "kind": "LinkedField",
125
- "name": "variableInstances",
126
- "plural": true,
127
- "selections": [v1 /*: any*/, {
128
- "alias": null,
129
- "args": null,
130
- "concreteType": "VariableSetting",
131
- "kind": "LinkedField",
132
- "name": "coordinates",
133
- "plural": true,
134
- "selections": [{
135
- "alias": null,
136
- "args": null,
137
- "kind": "ScalarField",
138
- "name": "axis",
139
- "storageKey": null
140
- }, {
141
- "alias": null,
142
- "args": null,
143
- "kind": "ScalarField",
144
- "name": "value",
145
- "storageKey": null
146
- }],
147
- "storageKey": null
148
- }],
149
- "storageKey": null
150
- }],
151
- "storageKey": null
152
- }],
153
- "storageKey": null
154
- }],
155
- "storageKey": null
156
- }],
157
- "storageKey": "fontCollections(collectionTypes:[\"FAMILY\"],first:999)"
158
- }]
159
- }],
160
- "type": "Viewer",
161
- "abstractKey": null
162
- };
163
- }();
164
- node.hash = "5e5834d9202f90bdde5a0a7db49e8639";
165
- var _default = node;
166
- exports.default = _default;
@@ -1,17 +0,0 @@
1
- /**
2
- * @generated SignedSource<<abd37f03c566e5adecd035ce761cfe89>>
3
- * @lightSyntaxTransform
4
- * @nogrep
5
- */
6
- import { ReaderFragment } from 'relay-runtime';
7
- import { FragmentRefs } from "relay-runtime";
8
- export type TypeTester_viewer$data = {
9
- readonly " $fragmentSpreads": FragmentRefs<"TypeTesterStyleSelectData_viewer">;
10
- readonly " $fragmentType": "TypeTester_viewer";
11
- };
12
- export type TypeTester_viewer$key = {
13
- readonly " $data"?: TypeTester_viewer$data;
14
- readonly " $fragmentSpreads": FragmentRefs<"TypeTester_viewer">;
15
- };
16
- declare const node: ReaderFragment;
17
- export default node;
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- /**
8
- * @generated SignedSource<<abd37f03c566e5adecd035ce761cfe89>>
9
- * @lightSyntaxTransform
10
- * @nogrep
11
- */
12
-
13
- /* tslint:disable */
14
- /* eslint-disable */
15
- // @ts-nocheck
16
-
17
- const node = {
18
- "argumentDefinitions": [{
19
- "defaultValue": null,
20
- "kind": "LocalArgument",
21
- "name": "selectable"
22
- }],
23
- "kind": "Fragment",
24
- "metadata": null,
25
- "name": "TypeTester_viewer",
26
- "selections": [{
27
- "args": [{
28
- "kind": "Variable",
29
- "name": "selectable",
30
- "variableName": "selectable"
31
- }],
32
- "kind": "FragmentSpread",
33
- "name": "TypeTesterStyleSelectData_viewer"
34
- }],
35
- "type": "Viewer",
36
- "abstractKey": null
37
- };
38
- node.hash = "26c2b3145462407675ab9b202b0d1b4c";
39
- var _default = node;
40
- exports.default = _default;
@@ -1,17 +0,0 @@
1
- /**
2
- * @generated SignedSource<<989cf2f044377f9f42d9f840f839af4b>>
3
- * @lightSyntaxTransform
4
- * @nogrep
5
- */
6
- import { ReaderFragment } from 'relay-runtime';
7
- import { FragmentRefs } from "relay-runtime";
8
- export type TypeTesters_viewer$data = {
9
- readonly " $fragmentSpreads": FragmentRefs<"TypeTester_viewer">;
10
- readonly " $fragmentType": "TypeTesters_viewer";
11
- };
12
- export type TypeTesters_viewer$key = {
13
- readonly " $data"?: TypeTesters_viewer$data;
14
- readonly " $fragmentSpreads": FragmentRefs<"TypeTesters_viewer">;
15
- };
16
- declare const node: ReaderFragment;
17
- export default node;
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- /**
8
- * @generated SignedSource<<989cf2f044377f9f42d9f840f839af4b>>
9
- * @lightSyntaxTransform
10
- * @nogrep
11
- */
12
-
13
- /* tslint:disable */
14
- /* eslint-disable */
15
- // @ts-nocheck
16
-
17
- const node = {
18
- "argumentDefinitions": [{
19
- "defaultValue": null,
20
- "kind": "LocalArgument",
21
- "name": "selectable"
22
- }],
23
- "kind": "Fragment",
24
- "metadata": null,
25
- "name": "TypeTesters_viewer",
26
- "selections": [{
27
- "args": [{
28
- "kind": "Variable",
29
- "name": "selectable",
30
- "variableName": "selectable"
31
- }],
32
- "kind": "FragmentSpread",
33
- "name": "TypeTester_viewer"
34
- }],
35
- "type": "Viewer",
36
- "abstractKey": null
37
- };
38
- node.hash = "8fbadb67d6506fee0f3ccc09624517c6";
39
- var _default = node;
40
- exports.default = _default;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- interface BuyingOptionsProps {
3
- onPrecartOpen: () => void;
4
- }
5
- declare const _default: import("react-redux").ConnectedComponent<({ onPrecartOpen }: BuyingOptionsProps) => React.JSX.Element, {
6
- context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction> | null> | undefined;
7
- store?: import("redux").Store | undefined;
8
- }>;
9
- export default _default;
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- interface CookieNotificationProps {
3
- siteTitle?: string;
4
- }
5
- interface CookieNotificationState {
6
- dismissed: boolean;
7
- }
8
- export default class CookieNotification extends React.Component<CookieNotificationProps, CookieNotificationState> {
9
- constructor(props: CookieNotificationProps);
10
- dismiss: () => void;
11
- render(): React.JSX.Element | null;
12
- }
13
- export {};
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
- import { Store } from 'redux';
3
- import { Config } from '../ConfigContext.js';
4
- import { FontdueAction, FontdueState } from '../../reducer.js';
5
- import { Components } from '../ComponentsContext.js';
6
- export declare function EnsureFontdueContext({ children }: {
7
- children: React.ReactNode;
8
- }): React.JSX.Element;
9
- export interface FontdueContextProvider_props {
10
- children?: React.ReactNode;
11
- url?: string;
12
- stripeIntegration?: 'card-element' | 'dynamic';
13
- config?: Config;
14
- components?: Components;
15
- store?: Store<FontdueState, FontdueAction>;
16
- }
17
- export default function FontdueContextProvider({ children, url, stripeIntegration, config, components, store, }: FontdueContextProvider_props): React.JSX.Element;
@@ -1,108 +0,0 @@
1
- 'use client';
2
-
3
- import React, { Suspense, createContext, useContext, useRef } from 'react';
4
- import { Provider } from 'react-redux';
5
- import { RelayEnvironmentProvider } from 'react-relay';
6
- import { useCurrentEnvironment } from '../../relay/environment.js';
7
- import ConfigContext, { makeConfig } from '../ConfigContext.js';
8
- import { createDefaultStore } from '../../reducer.js';
9
- import ComponentsContext from '../ComponentsContext.js';
10
- import UrlContext from '../UrlContext.js';
11
- import { setCorsModalEnabled } from '../../corsError.js';
12
-
13
- // Marker context used by self-wrapping components to detect a parent
14
- // FontdueContextProvider/FontdueProvider. When the marker is `true`, a
15
- // self-wrapping component skips its inner FontdueContextProvider so the
16
- // outer config/url/store/relay-env flow through. Internal — do not export
17
- // from the package.
18
- const FontdueContextMarker = /*#__PURE__*/createContext(false);
19
-
20
- // Wraps `children` in `FontdueContextProvider` only when no parent
21
- // FontdueContextProvider/FontdueProvider is present. Self-wrapping components
22
- // (`<TypeTester>`, `<StoreModal>`, etc.) use this so they Just Work as
23
- // standalone islands while staying lightweight inside an outer
24
- // `<FontdueProvider>` tree.
25
- export function EnsureFontdueContext(_ref) {
26
- let {
27
- children
28
- } = _ref;
29
- const isInsideContext = useContext(FontdueContextMarker);
30
- if (isInsideContext) return /*#__PURE__*/React.createElement(React.Fragment, null, children);
31
- return /*#__PURE__*/React.createElement(FontdueContextProvider, null, children);
32
- }
33
- const IS_SERVER = typeof window === typeof undefined;
34
-
35
- // === Multi-island state-sharing contract ===
36
- //
37
- // Frameworks that hydrate per-island (Astro, Vike, Qwik) mount one
38
- // `FontdueContextProvider` per fontdue-js component on the page. Each island
39
- // runs its own React reconciler and gets its own copy of every context, so
40
- // state that lives inside the component tree is duplicated — adding to the
41
- // cart in one island wouldn't update the CartButton in a different island.
42
- //
43
- // Any stateful client to be shared *across islands* (a Redux store, a Relay
44
- // Environment, or any future cache) must be a module-level singleton on the
45
- // client and per-render on the server. SSR has the opposite constraint: a
46
- // client-shared singleton would leak state between concurrent requests.
47
- //
48
- // The pattern (see also `relay/environment.ts → useCurrentEnvironment`):
49
- //
50
- // let clientThing: Thing | null = null;
51
- // function useSharedThing() {
52
- // if (IS_SERVER) return createThing(); // per-render, no leakage
53
- // if (clientThing == null) clientThing = createThing();
54
- // return clientThing; // shared across islands
55
- // }
56
- //
57
- // If you add a new context provider here that holds mutable client state,
58
- // follow this pattern. If it's purely deriving from props (no state), a
59
- // vanilla `Context.Provider` is fine — each island will compute the same
60
- // value.
61
- let clientStore = null;
62
- function useSharedStore(providedStore, config) {
63
- const ref = useRef(null);
64
- if (providedStore) return providedStore;
65
- if (IS_SERVER) {
66
- if (ref.current == null) ref.current = createDefaultStore(config);
67
- return ref.current;
68
- }
69
- if (clientStore == null) clientStore = createDefaultStore(config);
70
- return clientStore;
71
- }
72
- // Lightweight wrapper that sets up Fontdue's React contexts (Relay env,
73
- // Redux store, config, url, components) without rendering any aux UI.
74
- // `*Preloaded` self-wrapping components use this so they can stand alone
75
- // without claiming the page-level aux UI slot. Pages that need aux UI
76
- // (theme/test-mode/consent/tracking) wrap with `FontdueProvider` instead.
77
- export default function FontdueContextProvider(_ref2) {
78
- let {
79
- children,
80
- url,
81
- stripeIntegration,
82
- config,
83
- components,
84
- store
85
- } = _ref2;
86
- const environment = useCurrentEnvironment({
87
- url,
88
- stripeIntegration
89
- });
90
- const configValue = makeConfig(config);
91
- setCorsModalEnabled(configValue.corsErrorModal);
92
- const sharedStore = useSharedStore(store, config);
93
- return /*#__PURE__*/React.createElement(FontdueContextMarker.Provider, {
94
- value: true
95
- }, /*#__PURE__*/React.createElement(RelayEnvironmentProvider, {
96
- environment: environment
97
- }, /*#__PURE__*/React.createElement(Provider, {
98
- store: sharedStore
99
- }, /*#__PURE__*/React.createElement(Suspense, {
100
- fallback: null
101
- }, /*#__PURE__*/React.createElement(ConfigContext.Provider, {
102
- value: configValue
103
- }, /*#__PURE__*/React.createElement(UrlContext.Provider, {
104
- value: url ?? (typeof process !== 'undefined' ? process.env.NEXT_PUBLIC_FONTDUE_URL : undefined) ?? ''
105
- }, /*#__PURE__*/React.createElement(ComponentsContext.Provider, {
106
- value: components ?? {}
107
- }, children)))))));
108
- }
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import type { FontdueContextProvider_props } from './index.js';
3
- export type { FontdueContextProvider_props } from './index.js';
4
- export default function FontdueContextProviderServer(props: FontdueContextProvider_props): Promise<React.JSX.Element>;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import FontdueContextProvider from './index.js';
3
- // RSC entry. The client component does the work; this exists so the
4
- // `react-server` export condition resolves to a server-renderable file.
5
- export default async function FontdueContextProviderServer(props) {
6
- return /*#__PURE__*/React.createElement(FontdueContextProvider, props);
7
- }
@@ -1 +0,0 @@
1
- export default function useAuxUIOwner(): boolean;
@@ -1,28 +0,0 @@
1
- 'use client';
2
-
3
- import { useEffect, useState } from 'react';
4
-
5
- // Module-level claim: only one FontdueProvider on a page renders
6
- // auxiliary UI (TestModeBanner, ThemeConfig, Tracking, ConsentBanner,
7
- // ServerConfigProvider). Starts false on both server and client to avoid
8
- // hydration mismatch; the first provider to run `useEffect` wins and flips
9
- // its own state to true. Relinquishes the claim on unmount so HMR and
10
- // route changes don't leak.
11
-
12
- let ownerId = null;
13
- export default function useAuxUIOwner() {
14
- const [isOwner, setIsOwner] = useState(false);
15
- useEffect(() => {
16
- const myId = {};
17
- if (ownerId == null) {
18
- ownerId = myId;
19
- setIsOwner(true);
20
- }
21
- return () => {
22
- if (ownerId === myId) {
23
- ownerId = null;
24
- }
25
- };
26
- }, []);
27
- return isOwner;
28
- }
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import { LoadSerializableQueryOptions, SerializablePreloadedQuery } from '../../relay/loadSerializableQuery.js';
3
- import { TypeTesterStandaloneQuery } from '../../__generated__/TypeTesterStandaloneQuery.graphql.js';
4
- import { TypeTesterStandalonePreloadedQueryRenderer } from './TypeTesterStandalone.js';
5
- export type TypeTesterPreloadedQuery = SerializablePreloadedQuery<TypeTesterStandaloneQuery>;
6
- export interface LoadTypeTesterQueryVariables {
7
- familyName: string;
8
- styleName: string;
9
- selectable?: boolean;
10
- }
11
- export declare function loadTypeTesterQuery(variables: LoadTypeTesterQueryVariables, options?: LoadSerializableQueryOptions): Promise<TypeTesterPreloadedQuery>;
12
- type RendererProps = React.ComponentProps<typeof TypeTesterStandalonePreloadedQueryRenderer>;
13
- export declare function TypeTesterPreloaded(props: RendererProps): React.JSX.Element;
14
- export {};
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
- import loadSerializableQuery from '../../relay/loadSerializableQuery.js';
3
- import TypeTesterStandaloneQueryNode from '../../__generated__/TypeTesterStandaloneQuery.graphql.js';
4
- import FontdueContextProvider from '../FontdueContextProvider/index.js';
5
- import { TypeTesterStandalonePreloadedQueryRenderer } from './TypeTesterStandalone.js';
6
- export async function loadTypeTesterQuery(variables, options) {
7
- return loadSerializableQuery(TypeTesterStandaloneQueryNode, {
8
- familyName: variables.familyName,
9
- styleName: variables.styleName,
10
- selectable: variables.selectable ?? true
11
- }, options);
12
- }
13
- // Self-wraps with FontdueContextProvider so consumers don't need to wire up
14
- // Relay env / Redux store / contexts at the call site. Aux UI (theme,
15
- // test-mode banner, consent, tracking) is NOT rendered here — that belongs
16
- // to a single layout-level `<FontdueProvider>` per page. State is shared
17
- // across multiple preloaded components on a page via module-level singletons.
18
- export function TypeTesterPreloaded(props) {
19
- return /*#__PURE__*/React.createElement(FontdueContextProvider, null, /*#__PURE__*/React.createElement(TypeTesterStandalonePreloadedQueryRenderer, props));
20
- }
package/dist/config.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { Config } from './components/ConfigContext.js';
2
- export interface FontdueConfig extends Config {
3
- url?: string;
4
- stripeIntegration?: 'card-element' | 'dynamic';
5
- }
6
- export declare function configure(opts: Partial<FontdueConfig>): void;
7
- export declare function getConfig(): Readonly<FontdueConfig>;
package/dist/config.js DELETED
@@ -1,31 +0,0 @@
1
- // Module-level global configuration. Consumers call `configure()` once at
2
- // app startup (Astro layout, Next layout, Vite entry) and every fontdue-js
3
- // entry point reads defaults from here.
4
- //
5
- // Precedence (low to high):
6
- // 1. Server admin config (from the tenant dashboard, fetched via Relay)
7
- // 2. configure({...}) — module-level code defaults
8
- // 3. <FontdueProvider config={...}> — per-instance prop override
9
- //
10
- // Per-request isolation note: `configure` sets module-level state. That's
11
- // fine for single-tenant apps. Multi-tenant servers that switch URL per
12
- // request should pass `url` explicitly to loadSerializableQuery rather than
13
- // rely on configure().
14
-
15
- // Network-layer + UI config in one bag. UI fields come from `Config` (the
16
- // shape passed to ConfigContext); URL + stripeIntegration are network-layer.
17
-
18
- let current = {};
19
-
20
- // Shallow-merges with prior values. Calling `configure({tracking: {...}})`
21
- // replaces the whole `tracking` subtree; pass nested fields fully populated
22
- // when partial-updating.
23
- export function configure(opts) {
24
- current = {
25
- ...current,
26
- ...opts
27
- };
28
- }
29
- export function getConfig() {
30
- return current;
31
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- // fbjs (transitive via draft-js) references Node's `global` at module init.
2
- // Browsers don't define `global`, so hydration blows up with a ReferenceError.
3
- // ESM evaluates imports in source order, so importing this first ensures the
4
- // alias is in place before fbjs/setImmediate evaluates.
5
- if (typeof globalThis.global === 'undefined') {
6
- globalThis.global = globalThis;
7
- }
8
- export {};
@@ -1,11 +0,0 @@
1
- type ResizeObserverCtor = new (callback: ResizeObserverCallback) => {
2
- observe: (target: Element) => void;
3
- unobserve?: (target: Element) => void;
4
- disconnect?: () => void;
5
- };
6
- export type UseResizeObserverOptions = {
7
- polyfill?: ResizeObserverCtor | null;
8
- };
9
- export type UseResizeObserverCallback = (entry: ResizeObserverEntry, observer: ResizeObserver) => void;
10
- export default function useResizeObserver<T extends Element>(target: React.RefObject<T | null> | T | null, callback: UseResizeObserverCallback, options?: UseResizeObserverOptions): void;
11
- export {};
@@ -1,23 +0,0 @@
1
- import { useEffect, useRef } from 'react';
2
-
3
- // Loose constructor type so the SSR no-op polyfills used as fallbacks (which
4
- // don't implement `disconnect`) still type-check.
5
-
6
- export default function useResizeObserver(target, callback) {
7
- let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
8
- const callbackRef = useRef(callback);
9
- callbackRef.current = callback;
10
- useEffect(() => {
11
- const element = target && 'current' in target ? target.current : target;
12
- if (!element) return;
13
- const Ctor = options.polyfill ?? (typeof ResizeObserver !== 'undefined' ? ResizeObserver : null);
14
- if (!Ctor) return;
15
- const observer = new Ctor(entries => {
16
- for (const entry of entries) callbackRef.current(entry, observer);
17
- });
18
- observer.observe(element);
19
- return () => {
20
- if (observer.disconnect) observer.disconnect();else if (observer.unobserve) observer.unobserve(element);
21
- };
22
- }, [target, options.polyfill]);
23
- }
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export { default as loadFontdueProviderQuery } from './loadFontdueProviderQuery.js';
2
- export type { FontdueProviderPreloadedQuery } from './loadFontdueProviderQuery.js';
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- export { default as loadFontdueProviderQuery } from './loadFontdueProviderQuery.js';