@forgebuild/hotal-ui 0.23.3 → 0.23.5

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/dist/hotal-ui.js CHANGED
@@ -13575,7 +13575,9 @@ function Ag(e, t) {
13575
13575
  var t = Ng(), n = H(t);
13576
13576
  no(n);
13577
13577
  var r = U(n, 4);
13578
- no(r), I(t), K("change", n, M), ho(n, () => G(O), (e) => V(O, e)), K("change", r, M), ho(r, () => G(k), (e) => V(k, e)), J(e, t);
13578
+ no(r), I(t), W(() => {
13579
+ Q(n, "max", G(k) || void 0), Q(r, "min", G(O) || void 0);
13580
+ }), K("change", n, M), ho(n, () => G(O), (e) => V(O, e)), K("change", r, M), ho(r, () => G(k), (e) => V(k, e)), J(e, t);
13579
13581
  };
13580
13582
  X(n, (e) => {
13581
13583
  g() && e(r);
@@ -13657,19 +13659,6 @@ function Ag(e, t) {
13657
13659
  if (typeof window > "u" || !a() || !o()) return;
13658
13660
  let e, t = !1;
13659
13661
  return (async () => {
13660
- if (s()) try {
13661
- let e = await s()({
13662
- limit: l(),
13663
- filterDateFrom: G(A),
13664
- filterDateTo: G(j)
13665
- });
13666
- t || (V(_, e, !0), V(S, e.length === l()));
13667
- } catch (e) {
13668
- console.error("live-reservations-feed: failed to load existing reservations", e);
13669
- } finally {
13670
- t || V(b, !1);
13671
- }
13672
- else V(b, !1);
13673
13662
  try {
13674
13663
  let { default: n } = await Promise.resolve().then(() => /* @__PURE__ */ u(Th()));
13675
13664
  if (t) return;
@@ -13692,6 +13681,29 @@ function Ag(e, t) {
13692
13681
  })(), () => {
13693
13682
  t = !0, e?.close();
13694
13683
  };
13684
+ }), gr(() => {
13685
+ let e = G(A), t = G(j);
13686
+ if (!s()) {
13687
+ V(b, !1);
13688
+ return;
13689
+ }
13690
+ let n = !1;
13691
+ return V(b, !0), (async () => {
13692
+ try {
13693
+ let r = await s()({
13694
+ limit: l(),
13695
+ filterDateFrom: e,
13696
+ filterDateTo: t
13697
+ });
13698
+ n || (V(_, r, !0), V(S, r.length === l()));
13699
+ } catch (e) {
13700
+ console.error("live-reservations-feed: failed to load existing reservations", e);
13701
+ } finally {
13702
+ n || V(b, !1);
13703
+ }
13704
+ })(), () => {
13705
+ n = !0;
13706
+ };
13695
13707
  }), gr(() => {
13696
13708
  if (!G(b) || !G(C) || T()) return;
13697
13709
  let e = G(C).querySelectorAll(".lrf-skeleton-bar"), t = Ym.to(e, {
@@ -13924,7 +13936,7 @@ function Ag(e, t) {
13924
13936
  var jg, Mg, Ng, Pg, Fg, Ig, Lg, Rg, zg, Bg, Vg, Hg, Ug, Wg, Gg, Kg, qg, Jg, Yg = o((() => {
13925
13937
  f(), Ho(), Xm(), jg = /* @__PURE__ */ q("<span class=\"lrf-live-dot svelte-1d6cuoy\" aria-hidden=\"true\"></span> Live", 1), Mg = /* @__PURE__ */ q("<div><!></div>"), Ng = /* @__PURE__ */ q("<div class=\"lrf-date-filter svelte-1d6cuoy\"><input type=\"date\" class=\"lrf-date-input svelte-1d6cuoy\" aria-label=\"Filter reservations from date\"/> <span class=\"lrf-date-sep svelte-1d6cuoy\" aria-hidden=\"true\">–</span> <input type=\"date\" class=\"lrf-date-input svelte-1d6cuoy\" aria-label=\"Filter reservations to date\"/></div>"), Pg = /* @__PURE__ */ q("<h2 class=\"lrf-heading svelte-1d6cuoy\"> </h2>"), Fg = /* @__PURE__ */ q("<div class=\"lrf-header svelte-1d6cuoy\"><!> <div class=\"lrf-header-right svelte-1d6cuoy\"><!> <!></div></div>"), Ig = /* @__PURE__ */ q("<li class=\"lrf-item lrf-skeleton-item svelte-1d6cuoy\"><div class=\"lrf-item-header svelte-1d6cuoy\"><span class=\"lrf-skeleton-bar lrf-skeleton-bar-name svelte-1d6cuoy\"></span> <span class=\"lrf-skeleton-bar lrf-skeleton-bar-status svelte-1d6cuoy\"></span></div> <div class=\"lrf-item-meta svelte-1d6cuoy\"><span class=\"lrf-skeleton-bar lrf-skeleton-bar-meta svelte-1d6cuoy\"></span> <span class=\"lrf-skeleton-bar lrf-skeleton-bar-meta svelte-1d6cuoy\"></span> <span class=\"lrf-skeleton-bar lrf-skeleton-bar-meta svelte-1d6cuoy\"></span></div> <div class=\"lrf-item-contact svelte-1d6cuoy\"><span class=\"lrf-skeleton-bar lrf-skeleton-bar-contact svelte-1d6cuoy\"></span></div></li>"), Lg = /* @__PURE__ */ q("<ul class=\"lrf-list svelte-1d6cuoy\" aria-hidden=\"true\"></ul>"), Rg = /* @__PURE__ */ q("<p class=\"lrf-empty svelte-1d6cuoy\"> </p>"), zg = /* @__PURE__ */ q("<span class=\"lrf-item-restaurant svelte-1d6cuoy\"> </span>"), Bg = /* @__PURE__ */ q("<span class=\"svelte-1d6cuoy\"> </span>"), Vg = /* @__PURE__ */ q("<a class=\"svelte-1d6cuoy\"> </a>"), Hg = /* @__PURE__ */ q("<div class=\"lrf-item-contact svelte-1d6cuoy\"><!> <!></div>"), Ug = /* @__PURE__ */ q("<li class=\"lrf-item svelte-1d6cuoy\"><div class=\"lrf-item-header svelte-1d6cuoy\"><div class=\"lrf-item-header-left svelte-1d6cuoy\"><span class=\"lrf-item-name svelte-1d6cuoy\"> </span> <!></div> <div class=\"lrf-item-header-right svelte-1d6cuoy\"><span> </span> <span class=\"lrf-item-received svelte-1d6cuoy\"> </span></div></div> <div class=\"lrf-item-body svelte-1d6cuoy\"><div class=\"lrf-item-guests svelte-1d6cuoy\"><span class=\"lrf-item-guests-number svelte-1d6cuoy\"> </span> <span class=\"lrf-item-guests-label svelte-1d6cuoy\"> </span></div> <div class=\"lrf-item-meta svelte-1d6cuoy\"><span class=\"lrf-meta-item svelte-1d6cuoy\"><svg class=\"lrf-meta-icon svelte-1d6cuoy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" class=\"svelte-1d6cuoy\"></rect><path d=\"M3 10h18M8 3v4M16 3v4\" stroke-linecap=\"round\" class=\"svelte-1d6cuoy\"></path></svg> </span> <span class=\"lrf-meta-item svelte-1d6cuoy\"><svg class=\"lrf-meta-icon svelte-1d6cuoy\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\" class=\"svelte-1d6cuoy\"></circle><path d=\"M12 7v5l3.5 2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-1d6cuoy\"></path></svg> </span> <!></div></div> <!></li>"), Wg = /* @__PURE__ */ q("<p class=\"lrf-loading-more svelte-1d6cuoy\" aria-live=\"polite\">Loading more…</p>"), Gg = /* @__PURE__ */ q("<div class=\"lrf-sentinel svelte-1d6cuoy\" aria-hidden=\"true\"></div>"), Kg = /* @__PURE__ */ q("<ul class=\"lrf-list svelte-1d6cuoy\"></ul> <!> <!>", 1), qg = /* @__PURE__ */ q("<section class=\"lrf-root svelte-1d6cuoy\"><!> <!></section>"), Jg = {
13926
13938
  hash: "svelte-1d6cuoy",
13927
- code: ".lrf-root.svelte-1d6cuoy {display:block;font-family:inherit;color:var(--lrf-text-color, #1a1a1a);}.lrf-header.svelte-1d6cuoy {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.lrf-heading.svelte-1d6cuoy {margin:0;font-size:1.125rem;font-weight:700;}.lrf-header-right.svelte-1d6cuoy {display:flex;align-items:center;gap:0.75rem;margin-left:auto;}.lrf-date-filter.svelte-1d6cuoy {display:flex;align-items:center;gap:0.375rem;}.lrf-date-input.svelte-1d6cuoy {font:inherit;font-size:0.8125rem;color:var(--lrf-text-color, #1a1a1a);background:var(--lrf-date-input-bg, #fff);border:1px solid var(--lrf-border-color, rgba(0, 0, 0, 0.1));border-radius:4px;padding:0.25rem 0.5rem;line-height:1.2;}.lrf-date-input.svelte-1d6cuoy:focus-visible {outline:2px solid var(--lrf-date-input-focus, currentColor);outline-offset:1px;}.lrf-date-sep.svelte-1d6cuoy {font-size:0.75rem;opacity:0.5;}.lrf-status.svelte-1d6cuoy {display:flex;justify-content:flex-end;align-items:center;gap:0.375rem;margin-bottom:1rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--lrf-live-color, #1a7d3a);}.lrf-header.svelte-1d6cuoy .lrf-status:where(.svelte-1d6cuoy) {margin-bottom:0;}.lrf-status-error.svelte-1d6cuoy {color:var(--lrf-error-color, #b3261e);}.lrf-live-dot.svelte-1d6cuoy {position:relative;width:0.5rem;height:0.5rem;flex-shrink:0;border-radius:9999px;background:currentColor;}.lrf-live-dot.svelte-1d6cuoy::before {content:'';position:absolute;inset:0;border-radius:9999px;background:currentColor;\n animation: svelte-1d6cuoy-lrf-pulse 1.8s ease-out infinite;}\n @media (prefers-reduced-motion: reduce) {.lrf-live-dot.svelte-1d6cuoy::before {\n animation: none;}\n }\n @keyframes svelte-1d6cuoy-lrf-pulse {\n 0% {\n transform: scale(1);\n opacity: 0.6;\n }\n 100% {\n transform: scale(2.5);\n opacity: 0;\n }\n }.lrf-empty.svelte-1d6cuoy {opacity:0.6;font-size:0.875rem;}.lrf-loading-more.svelte-1d6cuoy {opacity:0.6;font-size:0.8125rem;text-align:center;margin:0.75rem 0 0;}.lrf-list.svelte-1d6cuoy {display:flex;flex-direction:column;gap:0.75rem;margin:0;padding:0;list-style:none;}.lrf-item.svelte-1d6cuoy {border:1px solid var(--lrf-border-color, rgba(0, 0, 0, 0.1));border-radius:4px;padding:0.875rem 1rem;background:var(--lrf-item-bg, #fff);transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;}.lrf-item.svelte-1d6cuoy:hover {border-color:var(--lrf-item-hover-border, rgba(0, 0, 0, 0.25));box-shadow:var(--lrf-item-hover-shadow, 0 4px 16px rgba(0, 0, 0, 0.08));transform:translateY(-1px);cursor:pointer;}.lrf-item-header.svelte-1d6cuoy {display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem;}.lrf-item-name.svelte-1d6cuoy {font-weight:700;}.lrf-item-header-left.svelte-1d6cuoy {display:flex;flex-direction:column;gap:0.125rem;min-width:0;}.lrf-item-restaurant.svelte-1d6cuoy {font-size:0.75rem;font-weight:600;color:var(--lrf-restaurant-color, currentColor);opacity:0.65;}.lrf-item-header-right.svelte-1d6cuoy {display:flex;flex-direction:column;align-items:flex-end;gap:0.25rem;flex-shrink:0;}.lrf-item-status.svelte-1d6cuoy {font-size:0.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;padding:0.125rem 0.5rem;border-radius:2px;background:var(--lrf-status-bg, rgba(0, 0, 0, 0.06));}.lrf-status-confirmed.svelte-1d6cuoy {background:var(--lrf-status-confirmed-bg, #dcf5e3);color:var(--lrf-status-confirmed-text, #146c2e);}.lrf-status-cancelled.svelte-1d6cuoy {background:var(--lrf-status-cancelled-bg, #fbdcdc);color:var(--lrf-status-cancelled-text, #8a1c1c);}.lrf-item-received.svelte-1d6cuoy {font-size:0.6875rem;font-weight:400;text-transform:none;letter-spacing:normal;white-space:nowrap;opacity:0.55;}.lrf-item-body.svelte-1d6cuoy {display:flex;align-items:center;gap:0.875rem;margin-top:0.625rem;}.lrf-item-guests.svelte-1d6cuoy {display:flex;flex-direction:column;align-items:center;flex-shrink:0;line-height:1;padding-right:0.875rem;border-right:1px solid var(--lrf-border-color, rgba(0, 0, 0, 0.1));}.lrf-item-guests-number.svelte-1d6cuoy {font-size:1.75rem;font-weight:800;line-height:1;}.lrf-item-guests-label.svelte-1d6cuoy {font-size:0.625rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;opacity:0.6;margin-top:0.1875rem;}.lrf-item-meta.svelte-1d6cuoy,\n .lrf-item-contact.svelte-1d6cuoy {display:flex;flex-wrap:wrap;gap:0.5rem 0.75rem;font-size:0.8125rem;opacity:0.75;}.lrf-item-contact.svelte-1d6cuoy {margin-top:0.375rem;}.lrf-item-contact.svelte-1d6cuoy a:where(.svelte-1d6cuoy) {color:inherit;}.lrf-meta-item.svelte-1d6cuoy {display:inline-flex;align-items:center;gap:0.3125rem;}.lrf-meta-icon.svelte-1d6cuoy {width:0.875rem;height:0.875rem;flex-shrink:0;opacity:0.8;}.lrf-sentinel.svelte-1d6cuoy {height:1px;}.lrf-skeleton-item.svelte-1d6cuoy {pointer-events:none;}.lrf-skeleton-bar.svelte-1d6cuoy {display:inline-block;height:0.75rem;border-radius:3px;background:var(--lrf-skeleton-color, rgba(0, 0, 0, 0.08));}.lrf-skeleton-bar-name.svelte-1d6cuoy {width:40%;}.lrf-skeleton-bar-status.svelte-1d6cuoy {width:4.5rem;}.lrf-skeleton-bar-meta.svelte-1d6cuoy {width:5rem;}.lrf-skeleton-bar-meta.svelte-1d6cuoy + .lrf-skeleton-bar-meta:where(.svelte-1d6cuoy) {width:4rem;}.lrf-skeleton-bar-contact.svelte-1d6cuoy {width:55%;}"
13939
+ code: ".lrf-root.svelte-1d6cuoy {display:block;font-family:inherit;color:var(--lrf-text-color, #1a1a1a);}.lrf-header.svelte-1d6cuoy {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.lrf-heading.svelte-1d6cuoy {margin:0;font-size:1.125rem;font-weight:700;}.lrf-header-right.svelte-1d6cuoy {display:flex;align-items:center;gap:0.75rem;margin-left:auto;}.lrf-date-filter.svelte-1d6cuoy {display:flex;align-items:center;gap:0.375rem;}.lrf-date-input.svelte-1d6cuoy {font:inherit;font-size:0.8125rem;color:var(--lrf-text-color, #1a1a1a);background:var(--lrf-date-input-bg, #fff);border:1px solid var(--lrf-border-color, rgba(0, 0, 0, 0.1));border-radius:4px;padding:0.25rem 0.5rem;line-height:1.2;}.lrf-date-input.svelte-1d6cuoy:focus-visible {outline:2px solid var(--lrf-date-input-focus, currentColor);outline-offset:1px;}.lrf-date-sep.svelte-1d6cuoy {font-size:0.75rem;opacity:0.5;}.lrf-status.svelte-1d6cuoy {display:flex;justify-content:flex-end;align-items:center;gap:0.375rem;margin-bottom:1rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--lrf-live-color, #1a7d3a);}.lrf-header.svelte-1d6cuoy .lrf-status:where(.svelte-1d6cuoy) {margin-bottom:0;}.lrf-status-error.svelte-1d6cuoy {color:var(--lrf-error-color, #b3261e);}.lrf-live-dot.svelte-1d6cuoy {position:relative;width:0.5rem;height:0.5rem;flex-shrink:0;border-radius:9999px;background:currentColor;}.lrf-live-dot.svelte-1d6cuoy::before {content:'';position:absolute;inset:0;border-radius:9999px;background:currentColor;\r\n animation: svelte-1d6cuoy-lrf-pulse 1.8s ease-out infinite;}\r\n @media (prefers-reduced-motion: reduce) {.lrf-live-dot.svelte-1d6cuoy::before {\r\n animation: none;}\r\n }\r\n @keyframes svelte-1d6cuoy-lrf-pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 0.6;\r\n }\r\n 100% {\r\n transform: scale(2.5);\r\n opacity: 0;\r\n }\r\n }.lrf-empty.svelte-1d6cuoy {opacity:0.6;font-size:0.875rem;}.lrf-loading-more.svelte-1d6cuoy {opacity:0.6;font-size:0.8125rem;text-align:center;margin:0.75rem 0 0;}.lrf-list.svelte-1d6cuoy {display:flex;flex-direction:column;gap:0.75rem;margin:0;padding:0;list-style:none;}.lrf-item.svelte-1d6cuoy {border:1px solid var(--lrf-border-color, rgba(0, 0, 0, 0.1));border-radius:4px;padding:0.875rem 1rem;background:var(--lrf-item-bg, #fff);transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;}.lrf-item.svelte-1d6cuoy:hover {border-color:var(--lrf-item-hover-border, rgba(0, 0, 0, 0.25));box-shadow:var(--lrf-item-hover-shadow, 0 4px 16px rgba(0, 0, 0, 0.08));transform:translateY(-1px);cursor:pointer;}.lrf-item-header.svelte-1d6cuoy {display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem;}.lrf-item-name.svelte-1d6cuoy {font-weight:700;}.lrf-item-header-left.svelte-1d6cuoy {display:flex;flex-direction:column;gap:0.125rem;min-width:0;}.lrf-item-restaurant.svelte-1d6cuoy {font-size:0.75rem;font-weight:600;color:var(--lrf-restaurant-color, currentColor);opacity:0.65;}.lrf-item-header-right.svelte-1d6cuoy {display:flex;flex-direction:column;align-items:flex-end;gap:0.25rem;flex-shrink:0;}.lrf-item-status.svelte-1d6cuoy {font-size:0.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;padding:0.125rem 0.5rem;border-radius:2px;background:var(--lrf-status-bg, rgba(0, 0, 0, 0.06));}.lrf-status-confirmed.svelte-1d6cuoy {background:var(--lrf-status-confirmed-bg, #dcf5e3);color:var(--lrf-status-confirmed-text, #146c2e);}.lrf-status-cancelled.svelte-1d6cuoy {background:var(--lrf-status-cancelled-bg, #fbdcdc);color:var(--lrf-status-cancelled-text, #8a1c1c);}.lrf-item-received.svelte-1d6cuoy {font-size:0.6875rem;font-weight:400;text-transform:none;letter-spacing:normal;white-space:nowrap;opacity:0.55;}.lrf-item-body.svelte-1d6cuoy {display:flex;align-items:center;gap:0.875rem;margin-top:0.625rem;}.lrf-item-guests.svelte-1d6cuoy {display:flex;flex-direction:column;align-items:center;flex-shrink:0;line-height:1;padding-right:0.875rem;border-right:1px solid var(--lrf-border-color, rgba(0, 0, 0, 0.1));}.lrf-item-guests-number.svelte-1d6cuoy {font-size:1.75rem;font-weight:800;line-height:1;}.lrf-item-guests-label.svelte-1d6cuoy {font-size:0.625rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;opacity:0.6;margin-top:0.1875rem;}.lrf-item-meta.svelte-1d6cuoy,\r\n .lrf-item-contact.svelte-1d6cuoy {display:flex;flex-wrap:wrap;gap:0.5rem 0.75rem;font-size:0.8125rem;opacity:0.75;}.lrf-item-contact.svelte-1d6cuoy {margin-top:0.375rem;}.lrf-item-contact.svelte-1d6cuoy a:where(.svelte-1d6cuoy) {color:inherit;}.lrf-meta-item.svelte-1d6cuoy {display:inline-flex;align-items:center;gap:0.3125rem;}.lrf-meta-icon.svelte-1d6cuoy {width:0.875rem;height:0.875rem;flex-shrink:0;opacity:0.8;}.lrf-sentinel.svelte-1d6cuoy {height:1px;}.lrf-skeleton-item.svelte-1d6cuoy {pointer-events:none;}.lrf-skeleton-bar.svelte-1d6cuoy {display:inline-block;height:0.75rem;border-radius:3px;background:var(--lrf-skeleton-color, rgba(0, 0, 0, 0.08));}.lrf-skeleton-bar-name.svelte-1d6cuoy {width:40%;}.lrf-skeleton-bar-status.svelte-1d6cuoy {width:4.5rem;}.lrf-skeleton-bar-meta.svelte-1d6cuoy {width:5rem;}.lrf-skeleton-bar-meta.svelte-1d6cuoy + .lrf-skeleton-bar-meta:where(.svelte-1d6cuoy) {width:4rem;}.lrf-skeleton-bar-contact.svelte-1d6cuoy {width:55%;}"
13928
13940
  }, bi(["change"]), customElements.define("live-reservations-feed", Ro(Ag, {
13929
13941
  heading: {
13930
13942
  attribute: "heading",
package/dist/index.d.ts CHANGED
@@ -294,7 +294,9 @@ export interface LiveReservationsFeedElement extends HTMLElement {
294
294
  * seeded from filterDateFrom/filterDateTo and driving the same
295
295
  * filtering -- for host pages that don't want to build their own
296
296
  * filter UI. Leave false (default) to filter purely via the props.
297
- * Picking a date emits `date-filter-change` with the new range. */
297
+ * Each input's min/max is cross-constrained by the other's current
298
+ * value so an inverted range can't be picked. Picking a date emits
299
+ * `date-filter-change` with the new range. */
298
300
  showDateFilter?: boolean;
299
301
  }
300
302
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgebuild/hotal-ui",
3
- "version": "0.23.3",
3
+ "version": "0.23.5",
4
4
  "description": "Reusable Svelte UI components for booking and reservation experiences.",
5
5
  "type": "module",
6
6
  "license": "MIT",