@nextblock-cms/ecom 0.19.0 → 0.19.3

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 (161) hide show
  1. package/index.cjs.js +1 -1
  2. package/index.es.js +26 -25
  3. package/lib/CurrencyProvider.cjs.js +1 -1
  4. package/lib/CurrencyProvider.es.js +41 -45
  5. package/lib/PaymentReadinessProvider.cjs.js +1 -1
  6. package/lib/PaymentReadinessProvider.es.js +15 -19
  7. package/lib/cart-store.cjs.js +1 -1
  8. package/lib/cart-store.d.ts +4 -0
  9. package/lib/cart-store.es.js +77 -69
  10. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  11. package/lib/components/AccountNavigationMenu.es.js +44 -62
  12. package/lib/components/AddToCartButton.cjs.js +1 -1
  13. package/lib/components/AddToCartButton.es.js +50 -78
  14. package/lib/components/Cart.cjs.js +1 -1
  15. package/lib/components/Cart.d.ts +1 -1
  16. package/lib/components/Cart.es.js +158 -377
  17. package/lib/components/CartDrawer.cjs.js +1 -1
  18. package/lib/components/CartDrawer.es.js +143 -297
  19. package/lib/components/CartIcon.cjs.js +1 -1
  20. package/lib/components/CartIcon.es.js +21 -47
  21. package/lib/components/Checkout.cjs.js +1 -1
  22. package/lib/components/Checkout.d.ts +1 -1
  23. package/lib/components/Checkout.es.js +839 -1627
  24. package/lib/components/CouponForm.cjs.js +1 -1
  25. package/lib/components/CouponForm.es.js +104 -155
  26. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  27. package/lib/components/CurrencySwitcher.es.js +14 -33
  28. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  29. package/lib/components/CustomerProfileForm.d.ts +1 -1
  30. package/lib/components/CustomerProfileForm.es.js +264 -672
  31. package/lib/components/FeaturedProduct.cjs.js +1 -1
  32. package/lib/components/FeaturedProduct.es.js +54 -126
  33. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  34. package/lib/components/FreemiusLicensePanel.es.js +45 -125
  35. package/lib/components/InvoiceDocument.cjs.js +1 -1
  36. package/lib/components/InvoiceDocument.es.js +148 -487
  37. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  38. package/lib/components/InvoiceViewerShell.d.ts +4 -1
  39. package/lib/components/InvoiceViewerShell.es.js +59 -142
  40. package/lib/components/ProductCard.cjs.js +1 -1
  41. package/lib/components/ProductCard.d.ts +3 -1
  42. package/lib/components/ProductCard.es.js +128 -242
  43. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  44. package/lib/components/ProductDetailsLayout.es.js +315 -657
  45. package/lib/components/ProductGallery.cjs.js +1 -1
  46. package/lib/components/ProductGallery.d.ts +2 -0
  47. package/lib/components/ProductGallery.es.js +37 -66
  48. package/lib/components/ProductGrid.cjs.js +1 -1
  49. package/lib/components/ProductGrid.es.js +23 -32
  50. package/lib/components/ShippingEstimator.cjs.js +1 -1
  51. package/lib/components/ShippingEstimator.es.js +124 -231
  52. package/lib/components/ShortDescription.cjs.js +1 -0
  53. package/lib/components/ShortDescription.d.ts +19 -0
  54. package/lib/components/ShortDescription.es.js +18 -0
  55. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  56. package/lib/components/SimpleTiptapRenderer.es.js +111 -294
  57. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  58. package/lib/components/SubscriptionSelector.es.js +120 -181
  59. package/lib/components/media/MediaPickerDialog.d.ts +1 -1
  60. package/lib/components/media/MediaUploadForm.d.ts +1 -1
  61. package/lib/invoice.cjs.js +1 -1
  62. package/lib/invoice.d.ts +1 -1
  63. package/lib/invoice.es.js +6 -5
  64. package/lib/order-inventory.d.ts +1 -1
  65. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  66. package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
  67. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  68. package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
  69. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  70. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
  71. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  72. package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
  73. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  74. package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
  75. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  76. package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
  77. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  78. package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
  79. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  80. package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
  81. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  82. package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
  83. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  84. package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
  85. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  86. package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
  87. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  88. package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
  89. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  90. package/lib/pages/cms/products/ProductsPage.es.js +47 -87
  91. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  92. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
  93. package/lib/pages/cms/products/actions.d.ts +20 -20
  94. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  95. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
  96. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  97. package/lib/pages/cms/products/attributes/components/AttributeManager.d.ts +1 -1
  98. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
  99. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  100. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
  101. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  102. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
  103. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  104. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
  105. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  106. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
  107. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  108. package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
  109. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  110. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
  111. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  112. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
  113. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  114. package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
  115. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  116. package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
  117. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  118. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
  119. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  120. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
  121. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  122. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
  123. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  124. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
  125. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  126. package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
  127. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  128. package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
  129. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  130. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
  131. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  132. package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
  133. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  134. package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
  135. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  136. package/lib/pages/cms/shipping/components/RateForm.d.ts +1 -1
  137. package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
  138. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  139. package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
  140. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  141. package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
  142. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  143. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
  144. package/lib/product-actions.d.ts +31 -31
  145. package/lib/product-context.cjs.js +1 -1
  146. package/lib/product-context.es.js +10 -14
  147. package/lib/shared-inventory.d.ts +1 -1
  148. package/lib/states.cjs.js +1 -1
  149. package/lib/states.d.ts +2 -0
  150. package/lib/states.es.js +63 -29
  151. package/lib/trials.cjs.js +1 -1
  152. package/lib/trials.d.ts +10 -3
  153. package/lib/trials.es.js +28 -21
  154. package/lib/types.d.ts +2 -0
  155. package/lib/use-price-formatter.cjs.js +1 -0
  156. package/lib/use-price-formatter.d.ts +11 -0
  157. package/lib/use-price-formatter.es.js +13 -0
  158. package/lib/variation-utils.cjs.js +1 -1
  159. package/lib/variation-utils.d.ts +10 -0
  160. package/lib/variation-utils.es.js +139 -123
  161. package/package.json +4 -4
@@ -1,261 +1,154 @@
1
1
  'use client';
2
- import { jsxDEV as e } from "react/jsx-dev-runtime";
3
- import { useState as n } from "react";
4
- import { Button as y } from "@nextblock-cms/ui/button";
5
- import { Input as _ } from "@nextblock-cms/ui/input";
6
- import { Label as d } from "@nextblock-cms/ui/label";
7
- import { Truck as g, Loader2 as w, Calculator as F } from "lucide-react";
8
- import { countries as A } from "../countries.es.js";
9
- import { getShippingEstimates as P } from "../server-actions/shipping-actions.es.js";
10
- import { useTranslations as L, formatPrice as I } from "@nextblock-cms/utils";
11
- import { getStatesForCountry as k, countryUsesStructuredStates as K } from "../states.es.js";
12
- import { useCurrency as O } from "../CurrencyProvider.es.js";
13
- const Y = ({ physicalSubtotal: v }) => {
14
- const [r, C] = n("CA"), [o, u] = n(""), [p, S] = n(""), [N, b] = n(!1), [i, f] = n(null), [c, x] = n(null), { t, lang: E } = L(), { activeCurrencyCode: h } = O(), a = (s, m) => {
15
- const l = t(s);
16
- return l === s ? m : l;
17
- }, j = k(r), B = K(r), D = a("select_an_option", "Select an option"), R = a("state_province", "State / Province"), U = async () => {
18
- b(!0), x(null), f(null);
19
- const s = await P(
20
- v,
21
- {
22
- country: r,
23
- state: o || void 0,
24
- postal_code: p
25
- },
26
- E,
27
- h
28
- );
29
- s.success && s.methods ? f(s.methods) : x(
30
- s.errorKey ? a(
31
- s.errorKey,
32
- s.error || t("ecommerce.no_rates_found")
33
- ) : s.error || t("ecommerce.no_rates_found")
34
- ), b(!1);
2
+ import { jsxs as a, jsx as t } from "react/jsx-runtime";
3
+ import { useState as o, useMemo as I } from "react";
4
+ import { Button as K } from "@nextblock-cms/ui/button";
5
+ import { Input as O } from "@nextblock-cms/ui/input";
6
+ import { Label as g } from "@nextblock-cms/ui/label";
7
+ import { Truck as C, Loader2 as T, Calculator as $ } from "lucide-react";
8
+ import { countries as z } from "../countries.es.js";
9
+ import { getShippingEstimates as B } from "../server-actions/shipping-actions.es.js";
10
+ import { useTranslations as M } from "@nextblock-cms/utils";
11
+ import { usePriceFormatter as R } from "../use-price-formatter.es.js";
12
+ import { getStatesForCountry as _, countryUsesStructuredStates as U, getSubdivisionLabel as W } from "../states.es.js";
13
+ import { useCurrency as q } from "../CurrencyProvider.es.js";
14
+ const se = ({ physicalSubtotal: S }) => {
15
+ const w = R(), [s, k] = o("CA"), [c, f] = o(""), [x, F] = o(""), [u, v] = o(!1), [n, y] = o(null), [p, h] = o(null), { t: r, lang: l } = M(), { activeCurrencyCode: N } = q(), i = (e, m) => {
16
+ const d = r(e);
17
+ return d === e ? m : d;
18
+ }, E = _(s), P = U(s), A = I(() => {
19
+ try {
20
+ return new Intl.DisplayNames([l], { type: "region" });
21
+ } catch {
22
+ return null;
23
+ }
24
+ }, [l]), L = i("select_an_option", "Select an option"), j = i("state_province", "State / Province"), b = async () => {
25
+ v(!0), h(null), y(null);
26
+ try {
27
+ const e = await B(
28
+ S,
29
+ {
30
+ country: s,
31
+ state: c || void 0,
32
+ postal_code: x
33
+ },
34
+ l,
35
+ N
36
+ );
37
+ e.success && e.methods ? y(e.methods) : h(
38
+ e.errorKey ? i(
39
+ e.errorKey,
40
+ e.error || r("ecommerce.no_rates_found")
41
+ ) : e.error || r("ecommerce.no_rates_found")
42
+ );
43
+ } catch (e) {
44
+ console.error("[ShippingEstimator] Failed to load rates:", e), h(
45
+ i(
46
+ "ecommerce.shipping_calculation_failed",
47
+ "We couldn't calculate shipping right now. Please try again."
48
+ )
49
+ );
50
+ } finally {
51
+ v(!1);
52
+ }
35
53
  };
36
- return /* @__PURE__ */ e("div", { className: "space-y-4 rounded-lg border bg-muted/30 p-4 mt-6", children: [
37
- /* @__PURE__ */ e("div", { className: "flex items-center gap-2 font-semibold text-sm", children: [
38
- /* @__PURE__ */ e(g, { className: "h-4 w-4" }, void 0, !1, {
39
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
40
- lineNumber: 71,
41
- columnNumber: 9
42
- }, void 0),
43
- /* @__PURE__ */ e("span", { children: t("ecommerce.estimate_shipping") }, void 0, !1, {
44
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
45
- lineNumber: 72,
46
- columnNumber: 9
47
- }, void 0)
48
- ] }, void 0, !0, {
49
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
50
- lineNumber: 70,
51
- columnNumber: 7
52
- }, void 0),
53
- /* @__PURE__ */ e("div", { className: "grid gap-3", children: [
54
- /* @__PURE__ */ e("div", { className: "space-y-1.5", children: [
55
- /* @__PURE__ */ e(d, { htmlFor: "estimate-country", className: "text-xs uppercase tracking-wider text-muted-foreground", children: t("ecommerce.country") }, void 0, !1, {
56
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
57
- lineNumber: 77,
58
- columnNumber: 11
59
- }, void 0),
60
- /* @__PURE__ */ e(
54
+ return /* @__PURE__ */ a("div", { className: "space-y-4 rounded-lg border bg-muted/30 p-4 mt-6", children: [
55
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 font-semibold text-sm", children: [
56
+ /* @__PURE__ */ t(C, { className: "h-4 w-4" }),
57
+ /* @__PURE__ */ t("span", { children: r("ecommerce.estimate_shipping") })
58
+ ] }),
59
+ /* @__PURE__ */ a("div", { className: "grid gap-3", children: [
60
+ /* @__PURE__ */ a("div", { className: "space-y-1.5", children: [
61
+ /* @__PURE__ */ t(g, { htmlFor: "estimate-country", className: "text-xs uppercase tracking-wider text-muted-foreground", children: r("ecommerce.country") }),
62
+ /* @__PURE__ */ t(
61
63
  "select",
62
64
  {
63
65
  id: "estimate-country",
64
- value: r,
65
- onChange: (s) => {
66
- const m = s.target.value, l = k(m);
67
- C(m), u(
68
- l.some((H) => H.code === o) ? o : ""
66
+ name: "estimate-country",
67
+ autoComplete: "shipping country",
68
+ value: s,
69
+ onChange: (e) => {
70
+ const m = e.target.value, d = _(m);
71
+ k(m), f(
72
+ d.some((D) => D.code === c) ? c : ""
69
73
  );
70
74
  },
71
75
  className: "flex h-9 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
72
- children: A.map((s) => /* @__PURE__ */ e("option", { value: s.code, children: s.name }, s.code, !1, {
73
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
74
- lineNumber: 94,
75
- columnNumber: 15
76
- }, void 0))
77
- },
78
- void 0,
79
- !1,
80
- {
81
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
82
- lineNumber: 80,
83
- columnNumber: 11
84
- },
85
- void 0
76
+ children: z.map((e) => /* @__PURE__ */ t("option", { value: e.code, children: A?.of(e.code) ?? e.name }, e.code))
77
+ }
86
78
  )
87
- ] }, void 0, !0, {
88
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
89
- lineNumber: 76,
90
- columnNumber: 9
91
- }, void 0),
92
- B && /* @__PURE__ */ e("div", { className: "space-y-1.5", children: [
93
- /* @__PURE__ */ e(d, { htmlFor: "estimate-state", className: "text-xs uppercase tracking-wider text-muted-foreground", children: t("state_province") }, void 0, !1, {
94
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
95
- lineNumber: 103,
96
- columnNumber: 13
97
- }, void 0),
98
- /* @__PURE__ */ e(
79
+ ] }),
80
+ P && /* @__PURE__ */ a("div", { className: "space-y-1.5", children: [
81
+ /* @__PURE__ */ t(g, { htmlFor: "estimate-state", className: "text-xs uppercase tracking-wider text-muted-foreground", children: r("state_province") }),
82
+ /* @__PURE__ */ a(
99
83
  "select",
100
84
  {
101
85
  id: "estimate-state",
102
- value: o,
103
- onChange: (s) => u(s.target.value),
86
+ name: "estimate-state",
87
+ autoComplete: "shipping address-level1",
88
+ value: c,
89
+ onChange: (e) => f(e.target.value),
104
90
  className: "flex h-9 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
105
91
  children: [
106
- /* @__PURE__ */ e("option", { value: "", children: `${D}: ${R}` }, void 0, !1, {
107
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
108
- lineNumber: 112,
109
- columnNumber: 15
110
- }, void 0),
111
- j.map((s) => /* @__PURE__ */ e("option", { value: s.code, children: s.name }, s.code, !1, {
112
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
113
- lineNumber: 114,
114
- columnNumber: 17
115
- }, void 0))
92
+ /* @__PURE__ */ t("option", { value: "", children: `${L}: ${j}` }),
93
+ E.map((e) => /* @__PURE__ */ t("option", { value: e.code, children: W(s, e, l) }, e.code))
116
94
  ]
117
- },
118
- void 0,
119
- !0,
120
- {
121
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
122
- lineNumber: 106,
123
- columnNumber: 13
124
- },
125
- void 0
95
+ }
126
96
  )
127
- ] }, void 0, !0, {
128
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
129
- lineNumber: 102,
130
- columnNumber: 11
131
- }, void 0),
132
- /* @__PURE__ */ e("div", { className: "space-y-1.5", children: [
133
- /* @__PURE__ */ e(d, { htmlFor: "estimate-postal", className: "text-xs uppercase tracking-wider text-muted-foreground", children: t("ecommerce.postal_code") }, void 0, !1, {
134
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
135
- lineNumber: 123,
136
- columnNumber: 11
137
- }, void 0),
138
- /* @__PURE__ */ e("div", { className: "flex gap-2", children: [
139
- /* @__PURE__ */ e(
140
- _,
97
+ ] }),
98
+ /* @__PURE__ */ a("div", { className: "space-y-1.5", children: [
99
+ /* @__PURE__ */ t(g, { htmlFor: "estimate-postal", className: "text-xs uppercase tracking-wider text-muted-foreground", children: r("ecommerce.postal_code") }),
100
+ /* @__PURE__ */ a("div", { className: "flex gap-2", children: [
101
+ /* @__PURE__ */ t(
102
+ O,
141
103
  {
142
104
  id: "estimate-postal",
143
- placeholder: "A1A 1A1",
144
- value: p,
145
- onChange: (s) => S(s.target.value),
105
+ name: "estimate-postal",
106
+ autoComplete: "shipping postal-code",
107
+ placeholder: s === "CA" ? "A1A 1A1" : void 0,
108
+ value: x,
109
+ onChange: (e) => F(e.target.value),
110
+ onKeyDown: (e) => {
111
+ e.key === "Enter" && !u && (e.preventDefault(), b());
112
+ },
146
113
  className: "h-9 text-sm bg-background"
147
- },
148
- void 0,
149
- !1,
150
- {
151
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
152
- lineNumber: 127,
153
- columnNumber: 13
154
- },
155
- void 0
114
+ }
156
115
  ),
157
- /* @__PURE__ */ e(
158
- y,
116
+ /* @__PURE__ */ a(
117
+ K,
159
118
  {
160
119
  size: "sm",
161
120
  variant: "secondary",
162
- onClick: U,
163
- disabled: N,
121
+ onClick: b,
122
+ disabled: u,
164
123
  className: "shrink-0",
165
124
  children: [
166
- N ? /* @__PURE__ */ e(w, { className: "h-4 w-4 animate-spin" }, void 0, !1, {
167
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
168
- lineNumber: 141,
169
- columnNumber: 32
170
- }, void 0) : /* @__PURE__ */ e(F, { className: "h-4 w-4 mr-1.5" }, void 0, !1, {
171
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
172
- lineNumber: 141,
173
- columnNumber: 79
174
- }, void 0),
175
- t("ecommerce.calculate")
125
+ u ? /* @__PURE__ */ t(T, { className: "h-4 w-4 mr-1.5 animate-spin" }) : /* @__PURE__ */ t($, { className: "h-4 w-4 mr-1.5" }),
126
+ r("ecommerce.calculate")
176
127
  ]
177
- },
178
- void 0,
179
- !0,
180
- {
181
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
182
- lineNumber: 134,
183
- columnNumber: 13
184
- },
185
- void 0
128
+ }
186
129
  )
187
- ] }, void 0, !0, {
188
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
189
- lineNumber: 126,
190
- columnNumber: 11
191
- }, void 0)
192
- ] }, void 0, !0, {
193
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
194
- lineNumber: 122,
195
- columnNumber: 9
196
- }, void 0)
197
- ] }, void 0, !0, {
198
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
199
- lineNumber: 75,
200
- columnNumber: 7
201
- }, void 0),
202
- c && /* @__PURE__ */ e("p", { className: "text-xs text-destructive mt-2", children: c }, void 0, !1, {
203
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
204
- lineNumber: 148,
205
- columnNumber: 17
206
- }, void 0),
207
- i && i.length > 0 && /* @__PURE__ */ e("div", { className: "mt-4 space-y-2 border-t pt-3", children: [
208
- /* @__PURE__ */ e("p", { className: "text-xs font-medium text-muted-foreground uppercase", children: [
209
- t("ecommerce.available_rates"),
210
- ":"
211
- ] }, void 0, !0, {
212
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
213
- lineNumber: 152,
214
- columnNumber: 11
215
- }, void 0),
216
- i.map((s) => /* @__PURE__ */ e("div", { className: "flex justify-between items-center p-3 border rounded-lg bg-muted/30", children: [
217
- /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
218
- /* @__PURE__ */ e(g, { className: "h-4 w-4 text-muted-foreground" }, void 0, !1, {
219
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
220
- lineNumber: 156,
221
- columnNumber: 17
222
- }, void 0),
223
- /* @__PURE__ */ e("span", { className: "text-sm font-medium", children: s.name }, void 0, !1, {
224
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
225
- lineNumber: 157,
226
- columnNumber: 17
227
- }, void 0)
228
- ] }, void 0, !0, {
229
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
230
- lineNumber: 155,
231
- columnNumber: 15
232
- }, void 0),
233
- /* @__PURE__ */ e("span", { className: "text-sm font-bold", children: s.amount === 0 ? t("ecommerce.free") : I(s.amount, h) }, void 0, !1, {
234
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
235
- lineNumber: 159,
236
- columnNumber: 15
237
- }, void 0)
238
- ] }, s.id, !0, {
239
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
240
- lineNumber: 154,
241
- columnNumber: 13
242
- }, void 0))
243
- ] }, void 0, !0, {
244
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
245
- lineNumber: 151,
246
- columnNumber: 9
247
- }, void 0),
248
- i && i.length === 0 && !c && /* @__PURE__ */ e("p", { className: "text-xs text-muted-foreground mt-2 italic", children: t("ecommerce.no_rates_found") }, void 0, !1, {
249
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
250
- lineNumber: 168,
251
- columnNumber: 9
252
- }, void 0)
253
- ] }, void 0, !0, {
254
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/ShippingEstimator.tsx",
255
- lineNumber: 69,
256
- columnNumber: 5
257
- }, void 0);
130
+ ] })
131
+ ] })
132
+ ] }),
133
+ p && /* @__PURE__ */ t("p", { role: "alert", className: "text-xs text-destructive mt-2", children: p }),
134
+ /* @__PURE__ */ a("div", { "aria-live": "polite", children: [
135
+ n && n.length > 0 && /* @__PURE__ */ a("div", { className: "mt-4 space-y-2 border-t pt-3", children: [
136
+ /* @__PURE__ */ a("p", { className: "text-xs font-medium text-muted-foreground uppercase", children: [
137
+ r("ecommerce.available_rates"),
138
+ ":"
139
+ ] }),
140
+ n.map((e) => /* @__PURE__ */ a("div", { className: "flex justify-between items-center p-3 border rounded-lg bg-muted/30", children: [
141
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
142
+ /* @__PURE__ */ t(C, { className: "h-4 w-4 text-muted-foreground" }),
143
+ /* @__PURE__ */ t("span", { className: "text-sm font-medium", children: e.name })
144
+ ] }),
145
+ /* @__PURE__ */ t("span", { className: "text-sm font-bold tabular-nums", children: e.amount === 0 ? r("ecommerce.free") : w(e.amount, N) })
146
+ ] }, e.id))
147
+ ] }),
148
+ n && n.length === 0 && !p && /* @__PURE__ */ t("p", { className: "text-xs text-muted-foreground mt-2 italic", children: r("ecommerce.no_rates_found") })
149
+ ] })
150
+ ] });
258
151
  };
259
152
  export {
260
- Y as ShippingEstimator
153
+ se as ShippingEstimator
261
154
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),o=require("@nextblock-cms/utils"),s=require("./SimpleTiptapRenderer.cjs.js"),c=/<\/?[a-z][^>]*>/i,n=e=>c.test(e);function l({value:e,className:r}){const t=e?.trim();return t?n(t)?i.jsx("div",{className:r,dangerouslySetInnerHTML:{__html:s.toNoCookieEmbedSrc(t)??t}}):i.jsx("p",{className:o.cn("whitespace-pre-line",r),children:t}):null}exports.ShortDescription=l;exports.isHtmlShortDescription=n;
@@ -0,0 +1,19 @@
1
+ import { default as React } from 'react';
2
+ /**
3
+ * `products.short_description` is authored as plain text (the visual editor's textarea, the
4
+ * Cortex tools, the seed), but older rows carry HTML, some with an embed. The product page
5
+ * used to render it as HTML and the featured-product block as text, so the same row showed
6
+ * raw tags in one place and a working embed in the other.
7
+ */
8
+ export declare const isHtmlShortDescription: (value: string) => boolean;
9
+ interface ShortDescriptionProps {
10
+ value: string | null | undefined;
11
+ className?: string;
12
+ }
13
+ /**
14
+ * Renders a product's short description the same way everywhere: HTML when the text contains
15
+ * markup (embeds rewritten to the no-cookie host), otherwise as escaped text that keeps its
16
+ * line breaks. Staff-authored either way; no user input reaches this field.
17
+ */
18
+ export declare function ShortDescription({ value, className }: ShortDescriptionProps): React.JSX.Element | null;
19
+ export {};
@@ -0,0 +1,18 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { cn as i } from "@nextblock-cms/utils";
3
+ import { toNoCookieEmbedSrc as n } from "./SimpleTiptapRenderer.es.js";
4
+ const c = /<\/?[a-z][^>]*>/i, m = (r) => c.test(r);
5
+ function f({ value: r, className: o }) {
6
+ const t = r?.trim();
7
+ return t ? m(t) ? /* @__PURE__ */ e(
8
+ "div",
9
+ {
10
+ className: o,
11
+ dangerouslySetInnerHTML: { __html: n(t) ?? t }
12
+ }
13
+ ) : /* @__PURE__ */ e("p", { className: i("whitespace-pre-line", o), children: t }) : null;
14
+ }
15
+ export {
16
+ f as ShortDescription,
17
+ m as isHtmlShortDescription
18
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-dev-runtime"),u=require("react"),b=(e,l)=>l.reduce((t,r)=>{switch(r.type){case"bold":return s.jsxDEV("strong",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:26,columnNumber:16},void 0);case"italic":return s.jsxDEV("em",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:28,columnNumber:16},void 0);case"underline":case"u":return s.jsxDEV("u",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:31,columnNumber:16},void 0);case"strike":return s.jsxDEV("s",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:33,columnNumber:16},void 0);case"code":return s.jsxDEV("code",{className:"bg-muted px-1.5 py-0.5 rounded text-[0.875em] font-mono",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:36,columnNumber:11},void 0);case"link":{const n=r.attrs?.href||"#",i=r.attrs?.target||"_blank";return s.jsxDEV("a",{href:n,target:i,rel:"noopener noreferrer",className:"underline text-primary hover:text-primary/80",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:44,columnNumber:11},void 0)}case"highlight":{const n=r.attrs?.color,i=n?{backgroundColor:n}:{};return s.jsxDEV("mark",{style:i,className:n?void 0:"bg-yellow-200 dark:bg-yellow-800/50",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:52,columnNumber:16},void 0)}case"subscript":return s.jsxDEV("sub",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:55,columnNumber:16},void 0);case"superscript":return s.jsxDEV("sup",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:57,columnNumber:16},void 0);case"textStyle":{const n={};return r.attrs?.color&&(n.color=r.attrs.color),r.attrs?.fontSize&&(n.fontSize=r.attrs.fontSize),r.attrs?.fontFamily&&(n.fontFamily=r.attrs.fontFamily),Object.keys(n).length>0?s.jsxDEV("span",{style:n,children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:63,columnNumber:46},void 0):s.jsxDEV(s.Fragment,{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:63,columnNumber:83},void 0)}default:return t}},e),f=["h1","h2","h3","h4","h5","h6"],x=(e,l,t,r)=>{const n=Math.max(1,Math.min(6,e)),i=f[n-1],o=r?.id;return u.createElement(i,{key:t,className:"font-bold my-4",id:o},l)},d=e=>{const l={},t={},r=e?.colspan,n=e?.rowspan,i=e?.colwidth;return r&&r>1&&(l.colSpan=r),n&&n>1&&(l.rowSpan=n),i&&Array.isArray(i)&&i[0]&&(t.minWidth=i[0]),Object.keys(t).length>0&&(l.style=t),l},p=(e,l)=>{if(e.type==="text"){const r=e.text??"";return s.jsxDEV(u.Fragment,{children:e.marks?.length?b(r,e.marks):r},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:110,columnNumber:7},void 0)}const t=e.content?.map((r,n)=>p(r,n))??null;switch(e.type){case"doc":return s.jsxDEV("div",{children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:121,columnNumber:14},void 0);case"paragraph":{if(!e.content?.length||e.content.every(o=>o.type==="text"&&(!o.text||!o.text.trim())))return null;const n=e.attrs?.textAlign,i=n?{textAlign:n}:{};return s.jsxDEV("p",{className:"mb-4",style:Object.keys(i).length?i:void 0,children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:135,columnNumber:14},void 0)}case"heading":return x(e.attrs?.level||1,t,l,e.attrs??void 0);case"bulletList":return s.jsxDEV("ul",{className:"list-disc pl-5 mb-4",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:147,columnNumber:14},void 0);case"orderedList":{const r=e.attrs?.start??1;return s.jsxDEV("ol",{className:"list-decimal pl-5 mb-4",start:r!==1?r:void 0,children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:150,columnNumber:14},void 0)}case"listItem":return s.jsxDEV("li",{children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:153,columnNumber:14},void 0);case"taskList":return s.jsxDEV("ul",{className:"list-none pl-0 mb-4 space-y-1",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:155,columnNumber:14},void 0);case"taskItem":{const r=!!e.attrs?.checked;return s.jsxDEV("li",{className:"flex items-start gap-2",children:[s.jsxDEV("input",{type:"checkbox",checked:r,readOnly:!0,className:"mt-1.5 rounded"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:160,columnNumber:11},void 0),s.jsxDEV("div",{className:r?"line-through text-muted-foreground":"",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:161,columnNumber:11},void 0)]},l,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:159,columnNumber:9},void 0)}case"blockquote":return s.jsxDEV("blockquote",{className:"border-l-4 border-border pl-4 italic my-4",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:168,columnNumber:14},void 0);case"codeBlock":{const r=e.attrs?.language;return s.jsxDEV("pre",{className:"bg-muted rounded-lg p-4 mb-4 overflow-x-auto","data-language":r||void 0,children:s.jsxDEV("code",{className:"text-sm font-mono",children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:173,columnNumber:11},void 0)},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:172,columnNumber:9},void 0)}case"horizontalRule":return s.jsxDEV("hr",{className:"my-6 border-border"},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:180,columnNumber:14},void 0);case"hardBreak":return s.jsxDEV("br",{},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:182,columnNumber:14},void 0);case"image":{const r=e.attrs?.src,n=e.attrs?.alt||"",i=e.attrs?.title,o=e.attrs?.width,c=e.attrs?.height,m={};return o&&(m.width=typeof o=="number"?`${o}px`:o),c&&(m.height=typeof c=="number"?`${c}px`:c),s.jsxDEV("img",{src:r,alt:n,title:i,style:Object.keys(m).length?m:void 0,className:"max-w-full h-auto rounded my-4"},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:193,columnNumber:9},void 0)}case"table":return s.jsxDEV("div",{className:"overflow-x-auto my-4",children:s.jsxDEV("table",{className:"w-full border-collapse border border-gray-300 dark:border-gray-700",style:{minWidth:500},children:s.jsxDEV("tbody",{children:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:209,columnNumber:13},void 0)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:208,columnNumber:11},void 0)},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:207,columnNumber:9},void 0);case"tableRow":return s.jsxDEV("tr",{className:"border-b border-gray-300 dark:border-gray-700",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:214,columnNumber:14},void 0);case"tableHeader":return s.jsxDEV("th",{...d(e.attrs??void 0),className:"bg-gray-100 dark:bg-gray-800 font-bold p-3 text-left border border-gray-300 dark:border-gray-700",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:217,columnNumber:9},void 0);case"tableCell":return s.jsxDEV("td",{...d(e.attrs??void 0),className:"p-3 border border-gray-300 dark:border-gray-700",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:227,columnNumber:9},void 0);case"details":return s.jsxDEV("details",{className:"my-4 border rounded-lg overflow-hidden",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:238,columnNumber:14},void 0);case"detailsSummary":return s.jsxDEV("summary",{className:"cursor-pointer p-3 font-semibold bg-muted/30 hover:bg-muted/50",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:240,columnNumber:14},void 0);case"detailsContent":return s.jsxDEV("div",{className:"p-3 border-t",children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:242,columnNumber:14},void 0);case"youtube":{const r=a(e.attrs?.src),n=e.attrs?.width||640,i=e.attrs?.height||480;return s.jsxDEV("div",{className:"relative my-4 overflow-hidden rounded-lg",style:{aspectRatio:`${n}/${i}`,maxWidth:n},children:s.jsxDEV("iframe",{src:r,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy",className:"absolute inset-0 w-full h-full"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:251,columnNumber:11},void 0)},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:250,columnNumber:9},void 0)}case"iframe":{const r=a(e.attrs?.src);return s.jsxDEV("div",{className:"my-4 overflow-hidden rounded-lg",style:{aspectRatio:"16/9"},children:s.jsxDEV("iframe",{src:r,allowFullScreen:!0,loading:"lazy",className:"w-full h-full border-0"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:265,columnNumber:11},void 0)},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:264,columnNumber:9},void 0)}case"mention":{const r=e.attrs?.label||e.attrs?.id||"";return s.jsxDEV("span",{className:"text-primary font-medium",children:["@",r]},l,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:273,columnNumber:14},void 0)}default:return s.jsxDEV("div",{children:t},l,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:279,columnNumber:14},void 0)}},a=e=>e?.replace(/(?:https?:)?\/\/(?:www\.|m\.|music\.)?youtube\.com\/embed\//gi,"https://www.youtube-nocookie.com/embed/"),N=({content:e,className:l})=>{if(!e)return null;if(typeof e=="string"){if(e.trim().startsWith("{")||e.trim().startsWith("["))try{const r=JSON.parse(e);return s.jsxDEV(N,{content:r,className:l},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:307,columnNumber:16},void 0)}catch{}return s.jsxDEV("div",{className:l,dangerouslySetInnerHTML:{__html:a(e)??e}},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:314,columnNumber:7},void 0)}const t=e;return!t.content||!Array.isArray(t.content)?null:s.jsxDEV("div",{className:l,children:t.content.map((r,n)=>p(r,n))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/components/SimpleTiptapRenderer.tsx",lineNumber:326,columnNumber:5},void 0)};exports.SimpleTiptapRenderer=N;exports.toNoCookieEmbedSrc=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("react"),y=(t,a)=>a.reduce((s,r)=>{switch(r.type){case"bold":return e.jsx("strong",{children:s});case"italic":return e.jsx("em",{children:s});case"underline":case"u":return e.jsx("u",{children:s});case"strike":return e.jsx("s",{children:s});case"code":return e.jsx("code",{className:"bg-muted px-1.5 py-0.5 rounded text-[0.875em] font-mono",children:s});case"link":{const l=r.attrs?.href||"#",c=r.attrs?.target||"_blank";return e.jsx("a",{href:l,target:c,rel:"noopener noreferrer",className:"underline text-primary hover:text-primary/80",children:s})}case"highlight":{const l=r.attrs?.color,c=l?{backgroundColor:l}:{};return e.jsx("mark",{style:c,className:l?void 0:"bg-yellow-200 dark:bg-yellow-800/50",children:s})}case"subscript":return e.jsx("sub",{children:s});case"superscript":return e.jsx("sup",{children:s});case"textStyle":{const l={};return r.attrs?.color&&(l.color=r.attrs.color),r.attrs?.fontSize&&(l.fontSize=r.attrs.fontSize),r.attrs?.fontFamily&&(l.fontFamily=r.attrs.fontFamily),Object.keys(l).length>0?e.jsx("span",{style:l,children:s}):e.jsx(e.Fragment,{children:s})}default:return s}},t),g=["h1","h2","h3","h4","h5","h6"],f=(t,a,s,r)=>{const l=Math.max(1,Math.min(6,t)),c=g[l-1],o=r?.id;return m.createElement(c,{key:s,className:"font-bold my-4",id:o},a)},d=t=>{const a={},s={},r=t?.colspan,l=t?.rowspan,c=t?.colwidth;return r&&r>1&&(a.colSpan=r),l&&l>1&&(a.rowSpan=l),c&&Array.isArray(c)&&c[0]&&(s.minWidth=c[0]),Object.keys(s).length>0&&(a.style=s),a},h=(t,a)=>{if(t.type==="text"){const r=t.text??"";return e.jsx(m.Fragment,{children:t.marks?.length?y(r,t.marks):r},a)}const s=t.content?.map((r,l)=>h(r,l))??null;switch(t.type){case"doc":return e.jsx("div",{children:s},a);case"paragraph":{if(!t.content?.length||t.content.every(o=>o.type==="text"&&(!o.text||!o.text.trim())))return null;const l=t.attrs?.textAlign,c=l?{textAlign:l}:{};return e.jsx("p",{className:"mb-4",style:Object.keys(c).length?c:void 0,children:s},a)}case"heading":return f(t.attrs?.level||1,s,a,t.attrs??void 0);case"bulletList":return e.jsx("ul",{className:"list-disc pl-5 mb-4",children:s},a);case"orderedList":{const r=t.attrs?.start??1;return e.jsx("ol",{className:"list-decimal pl-5 mb-4",start:r!==1?r:void 0,children:s},a)}case"listItem":return e.jsx("li",{children:s},a);case"taskList":return e.jsx("ul",{className:"list-none pl-0 mb-4 space-y-1",children:s},a);case"taskItem":{const r=!!t.attrs?.checked;return e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("input",{type:"checkbox",checked:r,readOnly:!0,className:"mt-1.5 rounded"}),e.jsx("div",{className:r?"line-through text-muted-foreground":"",children:s})]},a)}case"blockquote":return e.jsx("blockquote",{className:"border-l-4 border-border pl-4 italic my-4",children:s},a);case"codeBlock":{const r=t.attrs?.language;return e.jsx("pre",{className:"bg-muted rounded-lg p-4 mb-4 overflow-x-auto","data-language":r||void 0,children:e.jsx("code",{className:"text-sm font-mono",children:s})},a)}case"horizontalRule":return e.jsx("hr",{className:"my-6 border-border"},a);case"hardBreak":return e.jsx("br",{},a);case"image":{const r=t.attrs?.src,l=t.attrs?.alt||"",c=t.attrs?.title,o=t.attrs?.width,n=t.attrs?.height,i={};return o&&(i.width=typeof o=="number"?`${o}px`:o),n&&(i.height=typeof n=="number"?`${n}px`:n),e.jsx("img",{src:r,alt:l??"",title:c,width:typeof o=="number"?o:void 0,height:typeof n=="number"?n:void 0,loading:"lazy",decoding:"async",style:Object.keys(i).length?i:void 0,className:"max-w-full h-auto rounded my-4"},a)}case"table":return e.jsx("div",{className:"overflow-x-auto my-4",children:e.jsx("table",{className:"w-full border-collapse border border-gray-300 dark:border-gray-700",style:{minWidth:500},children:e.jsx("tbody",{children:s})})},a);case"tableRow":return e.jsx("tr",{className:"border-b border-gray-300 dark:border-gray-700",children:s},a);case"tableHeader":return e.jsx("th",{...d(t.attrs??void 0),className:"bg-gray-100 dark:bg-gray-800 font-bold p-3 text-left border border-gray-300 dark:border-gray-700",children:s},a);case"tableCell":return e.jsx("td",{...d(t.attrs??void 0),className:"p-3 border border-gray-300 dark:border-gray-700",children:s},a);case"details":return e.jsx("details",{className:"my-4 border rounded-lg overflow-hidden",children:s},a);case"detailsSummary":return e.jsx("summary",{className:"cursor-pointer p-3 font-semibold bg-muted/30 hover:bg-muted/50",children:s},a);case"detailsContent":return e.jsx("div",{className:"p-3 border-t",children:s},a);case"youtube":{const r=u(t.attrs?.src),l=t.attrs?.width||640,c=t.attrs?.height||480;return e.jsx("div",{className:"relative my-4 overflow-hidden rounded-lg",style:{aspectRatio:`${l}/${c}`,maxWidth:l},children:e.jsx("iframe",{src:r,title:t.attrs?.title||"Embedded video",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy",className:"absolute inset-0 w-full h-full"})},a)}case"iframe":{const r=u(t.attrs?.src);return e.jsx("div",{className:"my-4 overflow-hidden rounded-lg",style:{aspectRatio:"16/9"},children:e.jsx("iframe",{src:r,title:t.attrs?.title||"Embedded content",allowFullScreen:!0,loading:"lazy",className:"w-full h-full border-0"})},a)}case"mention":{const r=t.attrs?.label||t.attrs?.id||"";return e.jsxs("span",{className:"text-primary font-medium",children:["@",r]},a)}default:return e.jsx("div",{children:s},a)}},u=t=>t?.replace(/(?:https?:)?\/\/(?:www\.|m\.|music\.)?youtube\.com\/embed\//gi,"https://www.youtube-nocookie.com/embed/"),b=({content:t,className:a})=>{if(!t)return null;if(typeof t=="string"){if(t.trim().startsWith("{")||t.trim().startsWith("["))try{const r=JSON.parse(t);return e.jsx(b,{content:r,className:a})}catch{}return e.jsx("div",{className:a,dangerouslySetInnerHTML:{__html:u(t)??t}})}const s=t;return!s.content||!Array.isArray(s.content)?null:e.jsx("div",{className:a,children:s.content.map((r,l)=>h(r,l))})};exports.SimpleTiptapRenderer=b;exports.toNoCookieEmbedSrc=u;