@zappie/foundations 0.1.12 → 0.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @zappie/foundations
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 20160ee: `contactLinks(branch)` in `@zappie/foundations` lists the ways a shopper can reach a branch: a call to its phone and its messaging link. The kit's account page takes `branch` and `version` and shows a "Contact support" row with those links and a "Version" row. The starter's account page shows the branch's contact links.
8
+ - 6bcf696: A closed branch that takes orders ahead can take an order for a later slot. `canOrderAhead(branch)` in `@zappie/foundations` says whether a branch takes orders ahead, and `getOpenStatus` and `OpenStatus` return it as `canOrderAhead`, with `data-order-ahead` on the span. `scheduleSlots` and `Schedule` reach as far as the branch's `orderAheadDays`, or a pre-order menu's own limit, and offer no later slots when the branch takes orders only while open. `maxDays` still caps the horizon when you pass it. The SDK's test fixtures and the starter's mock API send `order_ahead_days`, as the API does.
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [6bcf696]
13
+ - Updated dependencies [7e108d9]
14
+ - Updated dependencies [ffdfc91]
15
+ - @zappie/sdk@0.2.1
16
+
3
17
  ## 0.1.12
4
18
 
5
19
  ### Patch Changes
@@ -5,10 +5,15 @@ import { useMenu, useStore } from "@zappie/sdk/react";
5
5
  import { forwardRef, useEffect, useMemo, useState } from "react";
6
6
  import { part } from "../internal/slot.js";
7
7
  import { useControllableState } from "../internal/use-controllable-state.js";
8
- import { getOpenStatus, localParts, openingIntervals } from "../status/hours.js";
8
+ import {
9
+ canOrderAhead,
10
+ getOpenStatus,
11
+ localParts,
12
+ openingIntervals
13
+ } from "../status/hours.js";
9
14
  function scheduleSlots(branch, timezone, now, {
10
15
  intervalMinutes = 30,
11
- maxDays = 14,
16
+ maxDays = 90,
12
17
  noticeMinutes = 0,
13
18
  menuSchedule
14
19
  } = {}) {
@@ -17,11 +22,14 @@ function scheduleSlots(branch, timezone, now, {
17
22
  "Schedule requires a positive interval, 1\u201390 days and a non-negative notice"
18
23
  );
19
24
  }
20
- if (!branch.fulfilment.scheduling) {
25
+ const preorder = menuSchedule?.preorder ? menuSchedule : void 0;
26
+ if (!branch.fulfilment.scheduling || !preorder && !canOrderAhead(branch)) {
21
27
  return [];
22
28
  }
23
- const preorder = menuSchedule?.preorder ? menuSchedule : void 0;
24
- const days = preorder?.preorderMaxDays && preorder.preorderMaxDays > 0 ? Math.min(maxDays, preorder.preorderMaxDays) : maxDays;
29
+ const days = Math.min(
30
+ maxDays,
31
+ preorder?.preorderMaxDays && preorder.preorderMaxDays > 0 ? preorder.preorderMaxDays : branch.orderAheadDays ?? 14
32
+ );
25
33
  const earliest = now.getTime() + Math.max(noticeMinutes, (preorder?.preorderNoticeHours ?? 0) * 60) * 6e4;
26
34
  const latest = now.getTime() + days * 864e5;
27
35
  const menuIntervals = menuSchedule?.openingTimes.length ? openingIntervals(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/fulfilment/schedule.tsx"],
4
- "mappings": "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",
4
+ "mappings": ";;;AAEA,SAAS,SAAS,gBAAgB;AAClC,SAAS,YAAY,WAAW,SAAS,gBAAgB;AACzD,SAAS,YAA4B;AACrC,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA4BA,SAAS,cACd,QACA,UACA,KACA;AAAA,EACE,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB;AACF,IAKI,CAAC,GACL;AACA,MACE,CAAC,OAAO,UAAU,eAAe,KACjC,kBAAkB,KAClB,CAAC,OAAO,UAAU,OAAO,KACzB,UAAU,KACV,UAAU,MACV,CAAC,OAAO,SAAS,aAAa,KAC9B,gBAAgB,GAChB;AACA,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAGA,QAAM,WAAW,cAAc,WAAW,eAAe;AACzD,MAAI,CAAC,OAAO,WAAW,cAAe,CAAC,YAAY,CAAC,cAAc,MAAM,GAAI;AAC1E,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,OAAO,KAAK;AAAA,IAChB;AAAA,IACA,UAAU,mBAAmB,SAAS,kBAAkB,IACpD,SAAS,kBACR,OAAO,kBAAkB;AAAA,EAChC;AACA,QAAM,WACJ,IAAI,QAAQ,IACZ,KAAK,IAAI,gBAAgB,UAAU,uBAAuB,KAAK,EAAE,IAAI;AACvE,QAAM,SAAS,IAAI,QAAQ,IAAI,OAAO;AACtC,QAAM,gBAAgB,cAAc,aAAa,SAC7C;AAAA,IACE;AAAA,MACE,GAAG;AAAA,MACH,cAAc,aAAa;AAAA,MAC3B,cAAc,CAAC;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,IACA;AACJ,QAAM,QAAwB,CAAC;AAC/B,aAAW,EAAE,OAAO,IAAI,KAAK;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,GAAG;AACD,UAAM,QACJ,QACA,KAAK,IAAI,GAAG,KAAK,MAAM,WAAW,UAAU,kBAAkB,IAAM,CAAC,IACnE,kBACA;AACJ,aACM,UAAU,OACd,UAAU,OAAO,WAAW,QAC5B,WAAW,kBAAkB,KAC7B;AACA,UACE,iBACA,CAAC,cAAc;AAAA,QACb,CAAC,aAAa,SAAS,SAAS,WAAW,SAAS,MAAM;AAAA,MAC5D,GACA;AACA;AAAA,MACF;AACA,YAAM,OAAO,IAAI,KAAK,OAAO;AAC7B,YAAM,KAAK;AAAA,QACT,OAAO,KAAK,YAAY;AAAA,QACxB,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,QACjC,OAAO,IAAI,KAAK,eAAe,MAAM;AAAA,UACnC,UAAU;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,cAAc;AAAA,QAChB,CAAC,EAAE,OAAO,IAAI;AAAA,MAChB,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;AAKO,IAAM,WAAW,WAYtB,SAASA,UACT;AAAA,EACE;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACA,KACA;AACA,QAAM,QAAQ,SAAS;AACvB,QAAM,OAAO,QAAQ,OAAO,IAAI,EAAE,cAAc,KAAK,CAAC;AACtD,QAAM,WACJ,oBAAoB,OAAO,YAAY,MAAM,MAAM,YAAY;AACjE,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,MAAM,oBAAI,KAAK,CAAC;AAC/C,YAAU,MAAM;AACd,UAAM,QAAQ;AAAA,MACZ,MAAM,OAAO,oBAAI,KAAK,CAAC;AAAA,MACvB,MAAS,KAAK,IAAI,IAAI;AAAA,IACxB;AACA,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC,GAAG,CAAC,GAAG,CAAC;AACR,QAAM,CAAC,WAAW,YAAY,IAAI,qBAAqB;AAAA,IACrD;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ,CAAC;AACD,QAAM,QAAQ;AAAA,IACZ,MACE,KAAK,aAAa,KAAK,QACnB,CAAC,IACD,cAAc,QAAQ,UAAU,KAAK;AAAA,MACnC;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc,KAAK,MAAM;AAAA,IAC3B,CAAC;AAAA,IACP;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,MAAM;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACA,QAAM,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,EAAE;AAAA,IAC/D,CAAC,UAAU,EAAE,MAAM,OAAO,MAAM,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE;AAAA,EACvE;AACA,QAAM,UACJ,CAAC,KAAK,aACN,CAAC,KAAK,SACN,CAAC,KAAK,MAAM,UAAU,YACtB,cAAc,QAAQ,UAAU,GAAG,EAAE;AACvC,QAAM,UACJ,cAAc,OACV,UACA,MAAM,KAAK,CAAC,SAAS,KAAK,UAAU,SAAS;AACnD,QAAM,WAAW,CAAC,SAAwB;AACxC,QAAI,SAAS,OAAO,UAAU,MAAM,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,GAAG;AACvE,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,QAAQ,cAAc;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,cAAc,UAAU,UAAU;AAAA,MAClC,gBAAgB,UAAU,SAAY;AAAA,IACxC;AAAA,IACA;AAAA,EACF;AACF,CAAC;",
5
5
  "names": ["Schedule"]
6
6
  }
package/dist/index.d.ts CHANGED
@@ -491,7 +491,9 @@ type ScheduleState = {
491
491
  };
492
492
  /**
493
493
  * Generate scheduling slots within branch hours and any supplied menu hours and preorder limits.
494
- * Returns no slots when the branch does not support scheduling.
494
+ * Slots reach as far as the branch's `orderAheadDays`, or a pre-order menu's own limit, and never
495
+ * past `maxDays` when you pass it. A closed branch still gets its later slots. Returns no slots
496
+ * when the branch doesn't take orders ahead (`canOrderAhead`), unless the menu is a pre-order menu.
495
497
  *
496
498
  * @param branch - The branch whose hours and scheduling capability apply.
497
499
  * @param timezone - The time zone used to interpret opening hours and label slots.
@@ -943,6 +945,21 @@ declare const Search: {
943
945
  } & react.RefAttributes<HTMLElement>>;
944
946
  };
945
947
 
948
+ /** A way to reach a branch, as a link a shopper can open. */
949
+ type ContactLink = {
950
+ type: "phone" | "message";
951
+ label: string;
952
+ href: string;
953
+ };
954
+ /**
955
+ * The ways a shopper can reach a branch for support: a call to its phone and its messaging link,
956
+ * when the branch has them. The links come from the branch's `phone` and its `whatsapp` social link.
957
+ *
958
+ * @param branch - The branch whose phone and social links apply.
959
+ * @returns The contact links in that order, or none.
960
+ */
961
+ declare function contactLinks(branch: Pick<Branch$1, "phone" | "socialLinks">): ContactLink[];
962
+
946
963
  /**
947
964
  * Parse a zero-padded HH:mm or HH:mm:ss wall-clock value without applying a time zone.
948
965
  *
@@ -979,8 +996,18 @@ declare function formatOpeningHours(times: OpeningTime[]): {
979
996
  dayLabel: string;
980
997
  hoursLabel: string;
981
998
  }[];
999
+ /**
1000
+ * Whether a branch takes orders for a later slot, so a shopper can still order while it is closed.
1001
+ * It needs scheduling and a positive `orderAheadDays`. A branch from a source that doesn't send
1002
+ * `orderAheadDays` follows its scheduling capability alone.
1003
+ *
1004
+ * @param branch - The branch whose scheduling and order-ahead days apply.
1005
+ */
1006
+ declare function canOrderAhead(branch: Branch$1): boolean;
982
1007
  type OpenStatusState = {
983
1008
  isOpen: boolean;
1009
+ /** Whether the branch takes orders for a later slot. A closed branch can still take an order when true. */
1010
+ canOrderAhead: boolean;
984
1011
  label: string;
985
1012
  nextChange?: Date;
986
1013
  };
@@ -991,12 +1018,14 @@ type OpenStatusState = {
991
1018
  * @param branch - The branch whose opening rules apply.
992
1019
  * @param timezone - The time zone used to interpret and display its hours.
993
1020
  * @param now - The instant to check. Defaults to the current time.
994
- * @returns Open state, a display label and the next boundary found in the opening-hours window.
1021
+ * @returns Open state, whether it takes orders ahead, a display label and the next boundary found in the opening-hours window.
995
1022
  */
996
1023
  declare function getOpenStatus(branch: Branch$1, timezone: string, now?: Date): OpenStatusState;
997
1024
 
998
1025
  /**
999
- * Expose a branch opening label and open/closed state in a span or your render function.
1026
+ * Expose a branch opening label, open/closed state and whether it takes orders ahead in a span or
1027
+ * your render function. The span carries `data-order-ahead` when a closed branch can still take an
1028
+ * order for a later slot.
1000
1029
  * Uses your time zone override, then the branch, store or UTC, and refreshes at boundaries and window focus.
1001
1030
  */
1002
1031
  declare const OpenStatus: react.ForwardRefExoticComponent<Omit<react.AllHTMLAttributes<HTMLElement>, PartOwnedAttributes> & {
@@ -1010,5 +1039,5 @@ declare const OpenStatus: react.ForwardRefExoticComponent<Omit<react.AllHTMLAttr
1010
1039
  /** The installed @zappie/foundations version. */
1011
1040
  declare const FOUNDATIONS_VERSION: string;
1012
1041
 
1013
- export { Account, AccountNotConfiguredError, Address, Branch, BranchMap, Cart, Choice, DeliveryMap, FOUNDATIONS_VERSION, Fulfilment, Image, ItemForm, Money, OpenStatus, OptionGroup, Otp, Overlay, PartProps, PaymentMethods, Quantity, Schedule, Search, Totals, createSearchIndex, deferred, formatOpeningHours, formatWallClock, getOpenStatus, parseWallClock, scheduleSlots, useControllableState, useIntentPreload, useOverlay };
1014
- export type { ActiveGroup, AddressState, AddressSuggestion, BranchMapLoadErrorState, BranchMapProps, Customer, Deferred, DeferredIdleOptions, DeferredProps, DeliveryMapProps, ImageProps, IntentPreloadHandlers, ItemFormContext, ItemFormInvalidGroup, ItemFormProps, MapLoadErrorState, PaymentMethod, QuantityProps, QuantityState, ScheduleSlot, ScheduleState, SearchResult, SearchSource, SearchState, SignInOptions, TotalsState };
1042
+ export { Account, AccountNotConfiguredError, Address, Branch, BranchMap, Cart, Choice, DeliveryMap, FOUNDATIONS_VERSION, Fulfilment, Image, ItemForm, Money, OpenStatus, OptionGroup, Otp, Overlay, PartProps, PaymentMethods, Quantity, Schedule, Search, Totals, canOrderAhead, contactLinks, createSearchIndex, deferred, formatOpeningHours, formatWallClock, getOpenStatus, parseWallClock, scheduleSlots, useControllableState, useIntentPreload, useOverlay };
1043
+ export type { ActiveGroup, AddressState, AddressSuggestion, BranchMapLoadErrorState, BranchMapProps, ContactLink, Customer, Deferred, DeferredIdleOptions, DeferredProps, DeliveryMapProps, ImageProps, IntentPreloadHandlers, ItemFormContext, ItemFormInvalidGroup, ItemFormProps, MapLoadErrorState, PaymentMethod, QuantityProps, QuantityState, ScheduleSlot, ScheduleState, SearchResult, SearchSource, SearchState, SignInOptions, TotalsState };
package/dist/index.js CHANGED
@@ -18,7 +18,9 @@ import { Otp } from "./otp/input.js";
18
18
  import { Overlay, useOverlay } from "./overlay/react.js";
19
19
  import { PaymentMethods } from "./payment/methods.js";
20
20
  import { createSearchIndex, Search } from "./search/index.js";
21
+ import { contactLinks } from "./status/contact.js";
21
22
  import {
23
+ canOrderAhead,
22
24
  formatOpeningHours,
23
25
  formatWallClock,
24
26
  getOpenStatus,
@@ -45,6 +47,8 @@ export {
45
47
  Schedule,
46
48
  Search,
47
49
  Totals,
50
+ canOrderAhead,
51
+ contactLinks,
48
52
  createSearchIndex,
49
53
  deferred,
50
54
  formatOpeningHours,
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "mappings": ";;;AACA,SAAS,uBAAuB;AAIhC,SAAS,SAAS,iCAAiC;AAEnD,SAAS,WAAW,mBAAmB;AAOvC,SAAS,MAAM,cAAc;AAE7B,SAAS,UAAU,wBAAwB;AAO3C,SAAS,eAAe;AAKxB,SAAS,cAAc;AACvB,SAAS,UAAU,qBAAqB;AAExC,SAAS,kBAAkB;AAE3B,SAAS,4BAA4B;AACrC,cAAc;AACd,SAAS,aAAa;AAEtB,SAAS,aAAa;AACtB,SAAS,WAAW;AACpB,SAAS,SAAS,kBAAkB;AACpC,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB,cAAc;AAE1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AA9CpB,IAAM,sBAA8B;",
4
+ "mappings": ";;;AACA,SAAS,uBAAuB;AAIhC,SAAS,SAAS,iCAAiC;AAEnD,SAAS,WAAW,mBAAmB;AAOvC,SAAS,MAAM,cAAc;AAE7B,SAAS,UAAU,wBAAwB;AAO3C,SAAS,eAAe;AAKxB,SAAS,cAAc;AACvB,SAAS,UAAU,qBAAqB;AAExC,SAAS,kBAAkB;AAE3B,SAAS,4BAA4B;AACrC,cAAc;AACd,SAAS,aAAa;AAEtB,SAAS,aAAa;AACtB,SAAS,WAAW;AACpB,SAAS,SAAS,kBAAkB;AACpC,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB,cAAc;AAE1C,SAAS,oBAAoB;AAE7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAjDpB,IAAM,sBAA8B;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,19 @@
1
+ // src/status/contact.ts
2
+ function contactLinks(branch) {
3
+ const links = [];
4
+ const phone = branch.phone?.replace(/[^\d+]/g, "");
5
+ if (phone && /\d/.test(phone)) {
6
+ links.push({ type: "phone", label: "Call", href: `tel:${phone}` });
7
+ }
8
+ const message = branch.socialLinks?.find(
9
+ (link) => link.type.toLowerCase() === "whatsapp"
10
+ );
11
+ if (message) {
12
+ links.push({ type: "message", label: "Send a message", href: message.url });
13
+ }
14
+ return links;
15
+ }
16
+ export {
17
+ contactLinks
18
+ };
19
+ //# sourceMappingURL=contact.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/status/contact.ts"],
4
+ "mappings": ";AAcO,SAAS,aACd,QACe;AACf,QAAM,QAAuB,CAAC;AAC9B,QAAM,QAAQ,OAAO,OAAO,QAAQ,WAAW,EAAE;AACjD,MAAI,SAAS,KAAK,KAAK,KAAK,GAAG;AAC7B,UAAM,KAAK,EAAE,MAAM,SAAS,OAAO,QAAQ,MAAM,OAAO,KAAK,GAAG,CAAC;AAAA,EACnE;AACA,QAAM,UAAU,OAAO,aAAa;AAAA,IAClC,CAAC,SAAS,KAAK,KAAK,YAAY,MAAM;AAAA,EACxC;AACA,MAAI,SAAS;AACX,UAAM,KAAK,EAAE,MAAM,WAAW,OAAO,kBAAkB,MAAM,QAAQ,IAAI,CAAC;AAAA,EAC5E;AACA,SAAO;AACT;",
5
+ "names": []
6
+ }
@@ -142,14 +142,18 @@ function openingIntervals(branch, timezone, now, days = 8) {
142
142
  }
143
143
  return merged;
144
144
  }
145
+ function canOrderAhead(branch) {
146
+ return branch.fulfilment.scheduling && (branch.orderAheadDays === void 0 || branch.orderAheadDays > 0);
147
+ }
145
148
  function getOpenStatus(branch, timezone, now = /* @__PURE__ */ new Date()) {
146
149
  const intervals = openingIntervals(branch, timezone, now);
147
150
  const current = intervals.find(
148
151
  ({ start, end }) => start <= now.getTime() && end > now.getTime()
149
152
  );
150
153
  const next = current?.end ?? intervals.find(({ start }) => start > now.getTime())?.start;
154
+ const ahead = canOrderAhead(branch);
151
155
  if (next === void 0) {
152
- return { isOpen: false, label: "Closed" };
156
+ return { isOpen: false, canOrderAhead: ahead, label: "Closed" };
153
157
  }
154
158
  const nextChange = new Date(next);
155
159
  const local = localParts(nextChange, timezone);
@@ -160,11 +164,13 @@ function getOpenStatus(branch, timezone, now = /* @__PURE__ */ new Date()) {
160
164
  const suffix = local.date === today ? "" : local.date === dateOffset(today, 1) ? " tomorrow" : ` ${new Intl.DateTimeFormat("en", { timeZone: timezone, weekday: "long" }).format(nextChange)}`;
161
165
  return {
162
166
  isOpen: Boolean(current),
167
+ canOrderAhead: ahead,
163
168
  label: current ? `Open until ${clock}` : `Opens ${clock}${suffix}`,
164
169
  nextChange
165
170
  };
166
171
  }
167
172
  export {
173
+ canOrderAhead,
168
174
  dateOffset,
169
175
  formatOpeningHours,
170
176
  formatWallClock,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/status/hours.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["hours"]
6
6
  }
@@ -34,7 +34,10 @@ var OpenStatus = forwardRef(function OpenStatus2({ branch, timezone, ...props },
34
34
  "span",
35
35
  props,
36
36
  state,
37
- { "data-state": state.isOpen ? "open" : "closed" },
37
+ {
38
+ "data-state": state.isOpen ? "open" : "closed",
39
+ "data-order-ahead": state.canOrderAhead ? "" : void 0
40
+ },
38
41
  ref
39
42
  );
40
43
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/status/open-status.tsx"],
4
- "mappings": ";;;AAEA,SAAS,gBAAgB;AACzB,SAAS,YAAY,WAAW,gBAAgB;AAChD,SAAS,YAA4B;AACrC,SAAS,qBAA2C;AAC7C,SAAS,cAAc,QAAgB,UAAkB;AAC9D,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,MAAM,oBAAI,KAAK,CAAC;AAC/C,QAAM,QAAQ,cAAc,QAAQ,UAAU,GAAG;AACjD,QAAM,WAAW,MAAM,YAAY,QAAQ;AAC3C,YAAU,MAAM;AAEd,UAAM,QAAQ,aAAa,SAAY,WAAW,KAAK,IAAI,IAAI;AAC/D,UAAM,UAAU;AAAA,MACd,MAAM,OAAO,oBAAI,KAAK,CAAC;AAAA,MACvB,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,KAAK,CAAC;AAAA,IACzC;AACA,UAAM,UAAU,MAAM,OAAO,oBAAI,KAAK,CAAC;AACvC,WAAO,iBAAiB,SAAS,OAAO;AACxC,WAAO,MAAM;AACX,mBAAa,OAAO;AACpB,aAAO,oBAAoB,SAAS,OAAO;AAAA,IAC7C;AAAA,EACF,GAAG,CAAC,QAAQ,UAAU,QAAQ,CAAC;AAC/B,SAAO;AACT;AAKO,IAAM,aAAa,WAGxB,SAASA,YAAW,EAAE,QAAQ,UAAU,GAAG,MAAM,GAAG,KAAK;AACzD,QAAM,QAAQ,SAAS;AACvB,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA,YAAY,OAAO,YAAY,MAAM,MAAM,YAAY;AAAA,EACzD;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,cAAc,MAAM,SAAS,SAAS,SAAS;AAAA,IACjD;AAAA,EACF;AACF,CAAC;",
4
+ "mappings": ";;;AAEA,SAAS,gBAAgB;AACzB,SAAS,YAAY,WAAW,gBAAgB;AAChD,SAAS,YAA4B;AACrC,SAAS,qBAA2C;AAC7C,SAAS,cAAc,QAAgB,UAAkB;AAC9D,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,MAAM,oBAAI,KAAK,CAAC;AAC/C,QAAM,QAAQ,cAAc,QAAQ,UAAU,GAAG;AACjD,QAAM,WAAW,MAAM,YAAY,QAAQ;AAC3C,YAAU,MAAM;AAEd,UAAM,QAAQ,aAAa,SAAY,WAAW,KAAK,IAAI,IAAI;AAC/D,UAAM,UAAU;AAAA,MACd,MAAM,OAAO,oBAAI,KAAK,CAAC;AAAA,MACvB,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,KAAK,CAAC;AAAA,IACzC;AACA,UAAM,UAAU,MAAM,OAAO,oBAAI,KAAK,CAAC;AACvC,WAAO,iBAAiB,SAAS,OAAO;AACxC,WAAO,MAAM;AACX,mBAAa,OAAO;AACpB,aAAO,oBAAoB,SAAS,OAAO;AAAA,IAC7C;AAAA,EACF,GAAG,CAAC,QAAQ,UAAU,QAAQ,CAAC;AAC/B,SAAO;AACT;AAOO,IAAM,aAAa,WAGxB,SAASA,YAAW,EAAE,QAAQ,UAAU,GAAG,MAAM,GAAG,KAAK;AACzD,QAAM,QAAQ,SAAS;AACvB,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA,YAAY,OAAO,YAAY,MAAM,MAAM,YAAY;AAAA,EACzD;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,cAAc,MAAM,SAAS,SAAS;AAAA,MACtC,oBAAoB,MAAM,gBAAgB,KAAK;AAAA,IACjD;AAAA,IACA;AAAA,EACF;AACF,CAAC;",
5
5
  "names": ["OpenStatus"]
6
6
  }
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var PACKAGE_VERSION = true ? "0.1.12" : "0.0.0-development";
2
+ var PACKAGE_VERSION = true ? "0.2.0" : "0.0.0-development";
3
3
  export {
4
4
  PACKAGE_VERSION
5
5
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/version.ts"],
4
- "mappings": ";AAMO,IAAM,kBACX,OACI,WACA;",
4
+ "mappings": ";AAMO,IAAM,kBACX,OACI,UACA;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zappie/foundations",
3
- "version": "0.1.12",
3
+ "version": "0.2.0",
4
4
  "description": "UI-less React primitives for Zappie storefronts: behaviour, state and accessibility without styles.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "@base-ui/react": "^1.9.0",
35
35
  "@googlemaps/markerclusterer": "^2.6.2",
36
- "@zappie/sdk": "^0.2.0"
36
+ "@zappie/sdk": "^0.2.1"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "react": "^18.2.0 || ^19.0.0",