@zappie/theme-base 0.1.5 → 0.1.7
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.
- package/CHANGELOG.md +21 -0
- package/dist/address.d.ts +2 -1
- package/dist/catalogue.d.ts +2 -1
- package/dist/checkout.d.ts +2 -1
- package/dist/checkout.js +2 -1
- package/dist/checkout.js.map +2 -2
- package/dist/host-bridge.d.ts +2 -1
- package/dist/item.d.ts +2 -1
- package/dist/navigation.d.ts +2 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @zappie/theme-base
|
|
2
2
|
|
|
3
|
+
## 0.1.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 86f1426: Checkout opens through `redirectToCheckout`, which refuses any URL that isn't Zappie's checkout.
|
|
8
|
+
- Updated dependencies [8ea70dc]
|
|
9
|
+
- Updated dependencies [ea37bcf]
|
|
10
|
+
- @zappie/sdk@0.2.0
|
|
11
|
+
- @zappie/foundations@0.1.11
|
|
12
|
+
|
|
13
|
+
## 0.1.6
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- b31a689: Build the declaration files with tsup 9. Type-only exports are now written as `export type { ... }` and shared declaration chunks have new file names. Foundations part props name their omitted attributes `PartOwnedAttributes`, so their declarations no longer depend on build order. Every entry point exports the same names with the same types. The JavaScript and source maps are unchanged.
|
|
18
|
+
- Updated dependencies [1cbfebc]
|
|
19
|
+
- Updated dependencies [b31a689]
|
|
20
|
+
- @zappie/sdk@0.1.24
|
|
21
|
+
- @zappie/foundations@0.1.10
|
|
22
|
+
- @zappie/tokens@0.1.3
|
|
23
|
+
|
|
3
24
|
## 0.1.5
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
package/dist/address.d.ts
CHANGED
|
@@ -29,4 +29,5 @@ declare function createSdkAddressLookup({ places, branchId, }: {
|
|
|
29
29
|
branchId: string;
|
|
30
30
|
}): AddressLookup;
|
|
31
31
|
|
|
32
|
-
export {
|
|
32
|
+
export { AddressLookupProvider, createSdkAddressLookup, useAddressLookup };
|
|
33
|
+
export type { AddressLookup, AddressSuggestion };
|
package/dist/catalogue.d.ts
CHANGED
|
@@ -57,4 +57,5 @@ type CatalogueSlots = {
|
|
|
57
57
|
|
|
58
58
|
declare function Catalogue({ initialMenu, resolveStrategy, themeClass, orderAction, menuNotice, revision, slots, }: CatalogueProps): react.JSX.Element;
|
|
59
59
|
|
|
60
|
-
export { Catalogue
|
|
60
|
+
export { Catalogue };
|
|
61
|
+
export type { CatalogueCategoryHeaderProps, CatalogueCategoryTabProps, CatalogueColumnCount, CatalogueLayout, CatalogueLayoutMode, CatalogueMenuSlotProps, CatalogueProps, CatalogueSlots, CatalogueTileProps, CatalogueToolbarActionProps };
|
package/dist/checkout.d.ts
CHANGED
|
@@ -33,4 +33,5 @@ declare function createSdkCheckoutHandoff({ customer, checkout, branchId, return
|
|
|
33
33
|
};
|
|
34
34
|
}): CheckoutHandoff;
|
|
35
35
|
|
|
36
|
-
export {
|
|
36
|
+
export { CheckoutHandoffProvider, createSdkCheckoutHandoff, useCheckoutHandoff };
|
|
37
|
+
export type { CheckoutHandoff, CheckoutPayload };
|
package/dist/checkout.js
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
CheckoutError,
|
|
6
6
|
checkoutFulfilment as wireCheckoutFulfilment
|
|
7
7
|
} from "@zappie/sdk/checkout";
|
|
8
|
+
import { redirectToCheckout } from "@zappie/sdk/redirect";
|
|
8
9
|
import { currentSource } from "@zappie/sdk/visits";
|
|
9
10
|
import {
|
|
10
11
|
createContext,
|
|
@@ -120,7 +121,7 @@ function createSdkCheckoutHandoff({
|
|
|
120
121
|
};
|
|
121
122
|
try {
|
|
122
123
|
const session = await checkout.open(request, attempt.key);
|
|
123
|
-
|
|
124
|
+
redirectToCheckout(session.url);
|
|
124
125
|
} catch (failure) {
|
|
125
126
|
if (failure instanceof CheckoutError && failure.apiCode === "customer_required") {
|
|
126
127
|
await handoff.signIn();
|
package/dist/checkout.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/checkout.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nimport type { CartModule } from \"@zappie/sdk\";\nimport {\n CheckoutError,\n checkoutFulfilment as wireCheckoutFulfilment,\n type CheckoutClient,\n type CheckoutRequest,\n} from \"@zappie/sdk/checkout\";\nimport type { CustomerClient, SessionCustomer } from \"@zappie/sdk/customer\";\nimport { currentSource } from \"@zappie/sdk/visits\";\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useSyncExternalStore,\n type ReactNode,\n} from \"react\";\n\nexport type CheckoutPayload = ReturnType<CartModule[\"toCheckoutPayload\"]>;\nexport type CheckoutHandoff = {\n contactPhone?: boolean;\n customer: { name?: string; phoneLast4?: string } | null;\n signIn(): Promise<void> | void;\n pay(\n payload: CheckoutPayload,\n details?: { contactPhone?: string },\n ): Promise<void>;\n};\n\nconst subscriptions = new WeakMap<\n CheckoutHandoff,\n (listener: () => void) => () => void\n>();\nconst Context = createContext<CheckoutHandoff | null>(null);\nconst idle = () => () => {};\n\nexport function CheckoutHandoffProvider({\n handoff,\n children,\n}: {\n handoff: CheckoutHandoff;\n children: ReactNode;\n}) {\n const subscribe = useCallback(\n (listener: () => void) => (subscriptions.get(handoff) ?? idle)(listener),\n [handoff],\n );\n const read = useCallback(() => handoff.customer, [handoff]);\n const customer = useSyncExternalStore(subscribe, read, read);\n const value = useMemo<CheckoutHandoff>(\n () => ({\n ...(handoff.contactPhone !== undefined\n ? { contactPhone: handoff.contactPhone }\n : {}),\n customer,\n signIn: () => handoff.signIn(),\n pay: (payload, details) =>\n details ? handoff.pay(payload, details) : handoff.pay(payload),\n }),\n [customer, handoff],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n}\n\nexport function useCheckoutHandoff() {\n const handoff = useContext(Context);\n if (!handoff) {\n throw new Error(\"useCheckoutHandoff requires CheckoutHandoffProvider\");\n }\n return handoff;\n}\n\nfunction customerName(customer: SessionCustomer | null) {\n if (!customer) {\n return null;\n }\n const digits = customer.phone_masked?.replace(/\\D/g, \"\") ?? \"\";\n return {\n ...(customer.given_name ? { name: customer.given_name } : {}),\n ...(digits.length >= 4 ? { phoneLast4: digits.slice(-4) } : {}),\n };\n}\n\nfunction checkoutFulfilment(payload: CheckoutPayload) {\n const fulfilment = wireCheckoutFulfilment(payload.fulfilment);\n if (fulfilment.type === \"delivery\") {\n return { ...fulfilment, type: \"delivery\" } as const;\n }\n if (fulfilment.type === \"pickup\") {\n return { ...fulfilment, type: \"pickup\" } as const;\n }\n throw new Error(\"Dine-in checkout is unavailable\");\n}\n\nexport function createSdkCheckoutHandoff({\n customer,\n checkout,\n branchId,\n returnUrl,\n cancelUrl,\n attribution = currentSource,\n}: {\n customer: CustomerClient;\n checkout: CheckoutClient;\n branchId: string;\n returnUrl?: string;\n cancelUrl?: string;\n attribution?: () => { source: string; campaign: string };\n}): CheckoutHandoff {\n let source = customer.customer;\n let current = customerName(source);\n // One attempt per cart and phone: a retry reuses the key and the exact body,\n // because the API refuses a reused key whose body changed.\n let attempt:\n | {\n digest: string;\n key: string;\n returnUrl: string;\n cancelUrl: string;\n source: string;\n campaign: string;\n }\n | undefined;\n const readCustomer = () => {\n if (source !== customer.customer) {\n source = customer.customer;\n current = customerName(source);\n }\n return current;\n };\n const handoff: CheckoutHandoff = {\n contactPhone: true,\n get customer() {\n return readCustomer();\n },\n signIn() {\n customer.signIn();\n },\n async pay(payload, details) {\n const contactPhone =\n details?.contactPhone?.trim().replace(/\\s+/g, \"\") ?? \"\";\n const digest = JSON.stringify({ payload, contactPhone });\n if (attempt?.digest !== digest) {\n const visit = attribution();\n attempt = {\n digest,\n key: crypto.randomUUID(),\n returnUrl: returnUrl ?? `${location.origin}/checkout/return`,\n cancelUrl: cancelUrl ?? location.href,\n source: visit.source,\n campaign: visit.campaign,\n };\n }\n const request: CheckoutRequest = {\n branch_id: branchId,\n menu_version: payload.menu_version,\n lines: payload.lines,\n fulfilment: checkoutFulfilment(payload),\n ...(contactPhone ? { contact_phone: contactPhone } : {}),\n ...(payload.promo_code ? { promo_code: payload.promo_code } : {}),\n ...(attempt.source ? { source: attempt.source } : {}),\n ...(attempt.campaign ? { campaign: attempt.campaign } : {}),\n return_url: attempt.returnUrl,\n cancel_url: attempt.cancelUrl,\n };\n try {\n const session = await checkout.open(request, attempt.key);\n
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport type { CartModule } from \"@zappie/sdk\";\nimport {\n CheckoutError,\n checkoutFulfilment as wireCheckoutFulfilment,\n type CheckoutClient,\n type CheckoutRequest,\n} from \"@zappie/sdk/checkout\";\nimport type { CustomerClient, SessionCustomer } from \"@zappie/sdk/customer\";\nimport { redirectToCheckout } from \"@zappie/sdk/redirect\";\nimport { currentSource } from \"@zappie/sdk/visits\";\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useSyncExternalStore,\n type ReactNode,\n} from \"react\";\n\nexport type CheckoutPayload = ReturnType<CartModule[\"toCheckoutPayload\"]>;\nexport type CheckoutHandoff = {\n contactPhone?: boolean;\n customer: { name?: string; phoneLast4?: string } | null;\n signIn(): Promise<void> | void;\n pay(\n payload: CheckoutPayload,\n details?: { contactPhone?: string },\n ): Promise<void>;\n};\n\nconst subscriptions = new WeakMap<\n CheckoutHandoff,\n (listener: () => void) => () => void\n>();\nconst Context = createContext<CheckoutHandoff | null>(null);\nconst idle = () => () => {};\n\nexport function CheckoutHandoffProvider({\n handoff,\n children,\n}: {\n handoff: CheckoutHandoff;\n children: ReactNode;\n}) {\n const subscribe = useCallback(\n (listener: () => void) => (subscriptions.get(handoff) ?? idle)(listener),\n [handoff],\n );\n const read = useCallback(() => handoff.customer, [handoff]);\n const customer = useSyncExternalStore(subscribe, read, read);\n const value = useMemo<CheckoutHandoff>(\n () => ({\n ...(handoff.contactPhone !== undefined\n ? { contactPhone: handoff.contactPhone }\n : {}),\n customer,\n signIn: () => handoff.signIn(),\n pay: (payload, details) =>\n details ? handoff.pay(payload, details) : handoff.pay(payload),\n }),\n [customer, handoff],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n}\n\nexport function useCheckoutHandoff() {\n const handoff = useContext(Context);\n if (!handoff) {\n throw new Error(\"useCheckoutHandoff requires CheckoutHandoffProvider\");\n }\n return handoff;\n}\n\nfunction customerName(customer: SessionCustomer | null) {\n if (!customer) {\n return null;\n }\n const digits = customer.phone_masked?.replace(/\\D/g, \"\") ?? \"\";\n return {\n ...(customer.given_name ? { name: customer.given_name } : {}),\n ...(digits.length >= 4 ? { phoneLast4: digits.slice(-4) } : {}),\n };\n}\n\nfunction checkoutFulfilment(payload: CheckoutPayload) {\n const fulfilment = wireCheckoutFulfilment(payload.fulfilment);\n if (fulfilment.type === \"delivery\") {\n return { ...fulfilment, type: \"delivery\" } as const;\n }\n if (fulfilment.type === \"pickup\") {\n return { ...fulfilment, type: \"pickup\" } as const;\n }\n throw new Error(\"Dine-in checkout is unavailable\");\n}\n\nexport function createSdkCheckoutHandoff({\n customer,\n checkout,\n branchId,\n returnUrl,\n cancelUrl,\n attribution = currentSource,\n}: {\n customer: CustomerClient;\n checkout: CheckoutClient;\n branchId: string;\n returnUrl?: string;\n cancelUrl?: string;\n attribution?: () => { source: string; campaign: string };\n}): CheckoutHandoff {\n let source = customer.customer;\n let current = customerName(source);\n // One attempt per cart and phone: a retry reuses the key and the exact body,\n // because the API refuses a reused key whose body changed.\n let attempt:\n | {\n digest: string;\n key: string;\n returnUrl: string;\n cancelUrl: string;\n source: string;\n campaign: string;\n }\n | undefined;\n const readCustomer = () => {\n if (source !== customer.customer) {\n source = customer.customer;\n current = customerName(source);\n }\n return current;\n };\n const handoff: CheckoutHandoff = {\n contactPhone: true,\n get customer() {\n return readCustomer();\n },\n signIn() {\n customer.signIn();\n },\n async pay(payload, details) {\n const contactPhone =\n details?.contactPhone?.trim().replace(/\\s+/g, \"\") ?? \"\";\n const digest = JSON.stringify({ payload, contactPhone });\n if (attempt?.digest !== digest) {\n const visit = attribution();\n attempt = {\n digest,\n key: crypto.randomUUID(),\n returnUrl: returnUrl ?? `${location.origin}/checkout/return`,\n cancelUrl: cancelUrl ?? location.href,\n source: visit.source,\n campaign: visit.campaign,\n };\n }\n const request: CheckoutRequest = {\n branch_id: branchId,\n menu_version: payload.menu_version,\n lines: payload.lines,\n fulfilment: checkoutFulfilment(payload),\n ...(contactPhone ? { contact_phone: contactPhone } : {}),\n ...(payload.promo_code ? { promo_code: payload.promo_code } : {}),\n ...(attempt.source ? { source: attempt.source } : {}),\n ...(attempt.campaign ? { campaign: attempt.campaign } : {}),\n return_url: attempt.returnUrl,\n cancel_url: attempt.cancelUrl,\n };\n try {\n const session = await checkout.open(request, attempt.key);\n redirectToCheckout(session.url);\n } catch (failure) {\n if (\n failure instanceof CheckoutError &&\n failure.apiCode === \"customer_required\"\n ) {\n await handoff.signIn();\n return;\n }\n throw failure;\n }\n },\n };\n subscriptions.set(handoff, (listener) => {\n const unsubscribe = customer.onChange((_state, next) => {\n source = next;\n current = customerName(next);\n listener();\n });\n // Without a CustomerProvider nothing else asks who is signed in.\n if (customer.state === \"unknown\") {\n void customer.session().catch(() => undefined);\n }\n return unsubscribe;\n });\n return handoff;\n}\n"],
|
|
5
|
+
"mappings": ";;;AAGA;AAAA,EACE;AAAA,EACA,sBAAsB;AAAA,OAGjB;AAEP,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AA6CE;AAhCT,IAAM,gBAAgB,oBAAI,QAGxB;AACF,IAAM,UAAU,cAAsC,IAAI;AAC1D,IAAM,OAAO,MAAM,MAAM;AAAC;AAEnB,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AACF,GAGG;AACD,QAAM,YAAY;AAAA,IAChB,CAAC,cAA0B,cAAc,IAAI,OAAO,KAAK,MAAM,QAAQ;AAAA,IACvE,CAAC,OAAO;AAAA,EACV;AACA,QAAM,OAAO,YAAY,MAAM,QAAQ,UAAU,CAAC,OAAO,CAAC;AAC1D,QAAM,WAAW,qBAAqB,WAAW,MAAM,IAAI;AAC3D,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL,GAAI,QAAQ,iBAAiB,SACzB,EAAE,cAAc,QAAQ,aAAa,IACrC,CAAC;AAAA,MACL;AAAA,MACA,QAAQ,MAAM,QAAQ,OAAO;AAAA,MAC7B,KAAK,CAAC,SAAS,YACb,UAAU,QAAQ,IAAI,SAAS,OAAO,IAAI,QAAQ,IAAI,OAAO;AAAA,IACjE;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,EACpB;AACA,SAAO,oBAAC,QAAQ,UAAR,EAAiB,OAAe,UAAS;AACnD;AAEO,SAAS,qBAAqB;AACnC,QAAM,UAAU,WAAW,OAAO;AAClC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AACA,SAAO;AACT;AAEA,SAAS,aAAa,UAAkC;AACtD,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AACA,QAAM,SAAS,SAAS,cAAc,QAAQ,OAAO,EAAE,KAAK;AAC5D,SAAO;AAAA,IACL,GAAI,SAAS,aAAa,EAAE,MAAM,SAAS,WAAW,IAAI,CAAC;AAAA,IAC3D,GAAI,OAAO,UAAU,IAAI,EAAE,YAAY,OAAO,MAAM,EAAE,EAAE,IAAI,CAAC;AAAA,EAC/D;AACF;AAEA,SAAS,mBAAmB,SAA0B;AACpD,QAAM,aAAa,uBAAuB,QAAQ,UAAU;AAC5D,MAAI,WAAW,SAAS,YAAY;AAClC,WAAO,EAAE,GAAG,YAAY,MAAM,WAAW;AAAA,EAC3C;AACA,MAAI,WAAW,SAAS,UAAU;AAChC,WAAO,EAAE,GAAG,YAAY,MAAM,SAAS;AAAA,EACzC;AACA,QAAM,IAAI,MAAM,iCAAiC;AACnD;AAEO,SAAS,yBAAyB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAOoB;AAClB,MAAI,SAAS,SAAS;AACtB,MAAI,UAAU,aAAa,MAAM;AAGjC,MAAI;AAUJ,QAAM,eAAe,MAAM;AACzB,QAAI,WAAW,SAAS,UAAU;AAChC,eAAS,SAAS;AAClB,gBAAU,aAAa,MAAM;AAAA,IAC/B;AACA,WAAO;AAAA,EACT;AACA,QAAM,UAA2B;AAAA,IAC/B,cAAc;AAAA,IACd,IAAI,WAAW;AACb,aAAO,aAAa;AAAA,IACtB;AAAA,IACA,SAAS;AACP,eAAS,OAAO;AAAA,IAClB;AAAA,IACA,MAAM,IAAI,SAAS,SAAS;AAC1B,YAAM,eACJ,SAAS,cAAc,KAAK,EAAE,QAAQ,QAAQ,EAAE,KAAK;AACvD,YAAM,SAAS,KAAK,UAAU,EAAE,SAAS,aAAa,CAAC;AACvD,UAAI,SAAS,WAAW,QAAQ;AAC9B,cAAM,QAAQ,YAAY;AAC1B,kBAAU;AAAA,UACR;AAAA,UACA,KAAK,OAAO,WAAW;AAAA,UACvB,WAAW,aAAa,GAAG,SAAS,MAAM;AAAA,UAC1C,WAAW,aAAa,SAAS;AAAA,UACjC,QAAQ,MAAM;AAAA,UACd,UAAU,MAAM;AAAA,QAClB;AAAA,MACF;AACA,YAAM,UAA2B;AAAA,QAC/B,WAAW;AAAA,QACX,cAAc,QAAQ;AAAA,QACtB,OAAO,QAAQ;AAAA,QACf,YAAY,mBAAmB,OAAO;AAAA,QACtC,GAAI,eAAe,EAAE,eAAe,aAAa,IAAI,CAAC;AAAA,QACtD,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,QAC/D,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,QACnD,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QACzD,YAAY,QAAQ;AAAA,QACpB,YAAY,QAAQ;AAAA,MACtB;AACA,UAAI;AACF,cAAM,UAAU,MAAM,SAAS,KAAK,SAAS,QAAQ,GAAG;AACxD,2BAAmB,QAAQ,GAAG;AAAA,MAChC,SAAS,SAAS;AAChB,YACE,mBAAmB,iBACnB,QAAQ,YAAY,qBACpB;AACA,gBAAM,QAAQ,OAAO;AACrB;AAAA,QACF;AACA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,gBAAc,IAAI,SAAS,CAAC,aAAa;AACvC,UAAM,cAAc,SAAS,SAAS,CAAC,QAAQ,SAAS;AACtD,eAAS;AACT,gBAAU,aAAa,IAAI;AAC3B,eAAS;AAAA,IACX,CAAC;AAED,QAAI,SAAS,UAAU,WAAW;AAChC,WAAK,SAAS,QAAQ,EAAE,MAAM,MAAM,MAAS;AAAA,IAC/C;AACA,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/host-bridge.d.ts
CHANGED
|
@@ -97,4 +97,5 @@ declare function BaseHostBridgeProvider({ bridge, children, }: {
|
|
|
97
97
|
}): react.JSX.Element;
|
|
98
98
|
declare function useBaseHostBridge(): BaseHostBridge;
|
|
99
99
|
|
|
100
|
-
export {
|
|
100
|
+
export { BaseHostBridgeProvider, useBaseHostBridge };
|
|
101
|
+
export type { BaseHostBridge, CustomerDetailsValues, HostAppliedReward, HostPromo, HostReward };
|
package/dist/item.d.ts
CHANGED
|
@@ -17,4 +17,5 @@ type ItemDetailProps = {
|
|
|
17
17
|
declare function ItemDetail(props: ItemDetailProps): react.JSX.Element;
|
|
18
18
|
declare function ItemContent({ item, menuId, scope, href, navigation, }: ItemDetailProps): react.JSX.Element;
|
|
19
19
|
|
|
20
|
-
export { ItemContent, ItemDetail
|
|
20
|
+
export { ItemContent, ItemDetail };
|
|
21
|
+
export type { ItemDetailProps };
|
package/dist/navigation.d.ts
CHANGED
|
@@ -61,4 +61,5 @@ declare function CatalogueNavigationProvider({ navigation, children, }: {
|
|
|
61
61
|
}): react.JSX.Element;
|
|
62
62
|
declare function useCatalogueNavigation(): CatalogueNavigation;
|
|
63
63
|
|
|
64
|
-
export {
|
|
64
|
+
export { CatalogueNavigationProvider, createUrlNavigation, useCatalogueNavigation };
|
|
65
|
+
export type { CatalogueFocusTarget, CatalogueLocation, CatalogueNavigation, CatalogueNavigationTarget, UrlNavigationOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zappie/theme-base",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "The base storefront theme Zappie's own storefront app renders, built only from Zappie's public packages.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"CHANGELOG.md"
|
|
55
55
|
],
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@zappie/foundations": "^0.1.
|
|
58
|
-
"@zappie/sdk": "^0.
|
|
59
|
-
"@zappie/tokens": "^0.1.
|
|
57
|
+
"@zappie/foundations": "^0.1.11",
|
|
58
|
+
"@zappie/sdk": "^0.2.0",
|
|
59
|
+
"@zappie/tokens": "^0.1.3"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"react": "^19.2.0"
|