@peektravel/app-utilities 0.5.4 → 0.6.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/README.md CHANGED
@@ -349,6 +349,10 @@ property would otherwise cause. Two things worth knowing:
349
349
  internal state (`isOpen`, `isVisible`) ignore writes — drive them through the
350
350
  imperative methods on a `ref` (`ref.current.openPopover()`, `.show()`) and read
351
351
  them back through the component's `CustomEvent`s, not by setting the prop.
352
+ - **Dynamic children reconcile correctly.** Slotting components (`ody-card`,
353
+ `ody-alert`, `ody-section`, …) forward child mutations to their internal slot,
354
+ so conditional, keyed, `.map()`-ed, or reordered **direct** children work
355
+ without a `NotFoundError` — no need to wrap dynamic children in a stable `<div>`.
352
356
 
353
357
  TypeScript still types these accessors as read-only, so a direct
354
358
  `el.isOpen = true` in TS is flagged — the setters are a runtime safety net for
package/dist/index.cjs CHANGED
@@ -2876,6 +2876,13 @@ function toPricingMoney(raw) {
2876
2876
 
2877
2877
  // src/internal/peek/products/product-converter.ts
2878
2878
  var ADD_ON_COLOR = "#FFFFFF";
2879
+ function toMeetingLocation(activity) {
2880
+ const summary = activity.infoMeetingLocation ?? null;
2881
+ const address = activity.meetingLocationFormattedAddress ?? null;
2882
+ const url = activity.meetingLocationUrl ?? null;
2883
+ if (summary === null && address === null && url === null) return null;
2884
+ return { summary, address, url };
2885
+ }
2879
2886
  function fromActivities(activities) {
2880
2887
  return activities.map(fromActivity);
2881
2888
  }
@@ -2887,6 +2894,9 @@ function fromActivity(activity) {
2887
2894
  type: activity.type,
2888
2895
  color: activity.colorHex || "",
2889
2896
  currency: activity.currency || "",
2897
+ imageUrl: activity.imageUrl ?? null,
2898
+ description: activity.description ?? null,
2899
+ meetingLocation: toMeetingLocation(activity),
2890
2900
  tickets: (activity.resourceOptions ?? []).map((option) => ({
2891
2901
  id: option.id,
2892
2902
  name: option.name,
@@ -2908,6 +2918,9 @@ function fromItemOptionNodes(nodes) {
2908
2918
  type: ADD_ON_PRODUCT_TYPE,
2909
2919
  color: ADD_ON_COLOR,
2910
2920
  currency: "",
2921
+ imageUrl: null,
2922
+ description: null,
2923
+ meetingLocation: null,
2911
2924
  tickets: []
2912
2925
  };
2913
2926
  grouped.set(itemId, product);
@@ -2933,6 +2946,11 @@ var PRODUCTS_QUERY = `
2933
2946
  type
2934
2947
  colorHex
2935
2948
  currency
2949
+ imageUrl
2950
+ description
2951
+ meetingLocationFormattedAddress
2952
+ meetingLocationUrl
2953
+ infoMeetingLocation
2936
2954
  resourceOptions {
2937
2955
  id
2938
2956
  name