@burdenoff/microfe-coolandlovely 2026.1024.2 → 2026.1024.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 (233) hide show
  1. package/dist/coolandlovely/CoolAndLovelyRoot.d.ts +5 -0
  2. package/dist/coolandlovely/CoolAndLovelyRoot.d.ts.map +1 -0
  3. package/dist/coolandlovely/CoolAndLovelyRoot.js +92 -68
  4. package/dist/coolandlovely/CoolAndLovelyRoot.js.map +1 -1
  5. package/dist/coolandlovely/CoolAndLovelyRoutes.d.ts +4 -0
  6. package/dist/coolandlovely/CoolAndLovelyRoutes.d.ts.map +1 -0
  7. package/dist/coolandlovely/CoolAndLovelyRoutes.js +25 -9
  8. package/dist/coolandlovely/CoolAndLovelyRoutes.js.map +1 -1
  9. package/dist/coolandlovely/components/ActivityTrail.d.ts +24 -0
  10. package/dist/coolandlovely/components/ActivityTrail.d.ts.map +1 -0
  11. package/dist/coolandlovely/components/ActorName.d.ts +14 -0
  12. package/dist/coolandlovely/components/ActorName.d.ts.map +1 -0
  13. package/dist/coolandlovely/components/AddToCartPanel.d.ts +10 -0
  14. package/dist/coolandlovely/components/AddToCartPanel.d.ts.map +1 -0
  15. package/dist/coolandlovely/components/AddToCartPanel.js +97 -0
  16. package/dist/coolandlovely/components/AddToCartPanel.js.map +1 -0
  17. package/dist/coolandlovely/components/AddToLookbookButton.d.ts +10 -0
  18. package/dist/coolandlovely/components/AddToLookbookButton.d.ts.map +1 -0
  19. package/dist/coolandlovely/components/BrandCard.d.ts +11 -0
  20. package/dist/coolandlovely/components/BrandCard.d.ts.map +1 -0
  21. package/dist/coolandlovely/components/BrandCover.d.ts +17 -0
  22. package/dist/coolandlovely/components/BrandCover.d.ts.map +1 -0
  23. package/dist/coolandlovely/components/BrandCreatorAvatars.d.ts +14 -0
  24. package/dist/coolandlovely/components/BrandCreatorAvatars.d.ts.map +1 -0
  25. package/dist/coolandlovely/components/CollectionCard.d.ts +11 -0
  26. package/dist/coolandlovely/components/CollectionCard.d.ts.map +1 -0
  27. package/dist/coolandlovely/components/ColourSwatchRow.d.ts +11 -0
  28. package/dist/coolandlovely/components/ColourSwatchRow.d.ts.map +1 -0
  29. package/dist/coolandlovely/components/Comments.d.ts +14 -0
  30. package/dist/coolandlovely/components/Comments.d.ts.map +1 -0
  31. package/dist/coolandlovely/components/EmptyState.d.ts +14 -0
  32. package/dist/coolandlovely/components/EmptyState.d.ts.map +1 -0
  33. package/dist/coolandlovely/components/FeedbackWidget.d.ts +4 -0
  34. package/dist/coolandlovely/components/FeedbackWidget.d.ts.map +1 -0
  35. package/dist/coolandlovely/components/Field.d.ts +71 -0
  36. package/dist/coolandlovely/components/Field.d.ts.map +1 -0
  37. package/dist/coolandlovely/components/FileImage.d.ts +10 -0
  38. package/dist/coolandlovely/components/FileImage.d.ts.map +1 -0
  39. package/dist/coolandlovely/components/FollowButton.d.ts +11 -0
  40. package/dist/coolandlovely/components/FollowButton.d.ts.map +1 -0
  41. package/dist/coolandlovely/components/ImageUploadField.d.ts +21 -0
  42. package/dist/coolandlovely/components/ImageUploadField.d.ts.map +1 -0
  43. package/dist/coolandlovely/components/LookCard.d.ts +19 -0
  44. package/dist/coolandlovely/components/LookCard.d.ts.map +1 -0
  45. package/dist/coolandlovely/components/LookbookCard.d.ts +11 -0
  46. package/dist/coolandlovely/components/LookbookCard.d.ts.map +1 -0
  47. package/dist/coolandlovely/components/MetricsCard.d.ts +23 -0
  48. package/dist/coolandlovely/components/MetricsCard.d.ts.map +1 -0
  49. package/dist/coolandlovely/components/PageLayout.d.ts +17 -0
  50. package/dist/coolandlovely/components/PageLayout.d.ts.map +1 -0
  51. package/dist/coolandlovely/components/PayForOrder.d.ts +11 -0
  52. package/dist/coolandlovely/components/PayForOrder.d.ts.map +1 -0
  53. package/dist/coolandlovely/components/PayForOrder.js +118 -0
  54. package/dist/coolandlovely/components/PayForOrder.js.map +1 -0
  55. package/dist/coolandlovely/components/ShopItemCard.d.ts +15 -0
  56. package/dist/coolandlovely/components/ShopItemCard.d.ts.map +1 -0
  57. package/dist/coolandlovely/components/StateViews.d.ts +16 -0
  58. package/dist/coolandlovely/components/StateViews.d.ts.map +1 -0
  59. package/dist/coolandlovely/components/StatusBadge.d.ts +9 -0
  60. package/dist/coolandlovely/components/StatusBadge.d.ts.map +1 -0
  61. package/dist/coolandlovely/components/StatusBadge.js +4 -0
  62. package/dist/coolandlovely/components/StatusBadge.js.map +1 -1
  63. package/dist/coolandlovely/components/StepTracker.d.ts +12 -0
  64. package/dist/coolandlovely/components/StepTracker.d.ts.map +1 -0
  65. package/dist/coolandlovely/components/TagList.d.ts +12 -0
  66. package/dist/coolandlovely/components/TagList.d.ts.map +1 -0
  67. package/dist/coolandlovely/components/Thumbnail.d.ts +23 -0
  68. package/dist/coolandlovely/components/Thumbnail.d.ts.map +1 -0
  69. package/dist/coolandlovely/components/VisibilityChip.d.ts +10 -0
  70. package/dist/coolandlovely/components/VisibilityChip.d.ts.map +1 -0
  71. package/dist/coolandlovely/components/WardrobeItemCard.d.ts +14 -0
  72. package/dist/coolandlovely/components/WardrobeItemCard.d.ts.map +1 -0
  73. package/dist/coolandlovely/components/index.d.ts +32 -0
  74. package/dist/coolandlovely/components/index.d.ts.map +1 -0
  75. package/dist/coolandlovely/context/CoolAndLovelyContext.d.ts +16 -0
  76. package/dist/coolandlovely/context/CoolAndLovelyContext.d.ts.map +1 -0
  77. package/dist/coolandlovely/context/index.d.ts +6 -0
  78. package/dist/coolandlovely/context/index.d.ts.map +1 -0
  79. package/dist/coolandlovely/hooks/index.d.ts +15 -0
  80. package/dist/coolandlovely/hooks/index.d.ts.map +1 -0
  81. package/dist/coolandlovely/hooks/useActivity.d.ts +39 -0
  82. package/dist/coolandlovely/hooks/useActivity.d.ts.map +1 -0
  83. package/dist/coolandlovely/hooks/useAssistantEntity.d.ts +24 -0
  84. package/dist/coolandlovely/hooks/useAssistantEntity.d.ts.map +1 -0
  85. package/dist/coolandlovely/hooks/useComments.d.ts +37 -0
  86. package/dist/coolandlovely/hooks/useComments.d.ts.map +1 -0
  87. package/dist/coolandlovely/hooks/useCommerceApi.d.ts +27 -0
  88. package/dist/coolandlovely/hooks/useCommerceApi.d.ts.map +1 -0
  89. package/dist/coolandlovely/hooks/useCommerceApi.js +121 -0
  90. package/dist/coolandlovely/hooks/useCommerceApi.js.map +1 -0
  91. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.d.ts +178 -0
  92. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.d.ts.map +1 -0
  93. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js +1 -1
  94. package/dist/coolandlovely/hooks/useCoolAndLovelyApi.js.map +1 -1
  95. package/dist/coolandlovely/hooks/useFiles.d.ts +62 -0
  96. package/dist/coolandlovely/hooks/useFiles.d.ts.map +1 -0
  97. package/dist/coolandlovely/hooks/useTr.d.ts +2 -0
  98. package/dist/coolandlovely/hooks/useTr.d.ts.map +1 -0
  99. package/dist/coolandlovely/index.d.ts +11 -0
  100. package/dist/coolandlovely/index.d.ts.map +1 -0
  101. package/dist/coolandlovely/pages/HomePage.d.ts +10 -0
  102. package/dist/coolandlovely/pages/HomePage.d.ts.map +1 -0
  103. package/dist/coolandlovely/pages/admin/AdminBrandsPage.d.ts +9 -0
  104. package/dist/coolandlovely/pages/admin/AdminBrandsPage.d.ts.map +1 -0
  105. package/dist/coolandlovely/pages/admin/AdminCollaborationsPage.d.ts +9 -0
  106. package/dist/coolandlovely/pages/admin/AdminCollaborationsPage.d.ts.map +1 -0
  107. package/dist/coolandlovely/pages/admin/AdminFeaturedItemsPage.d.ts +9 -0
  108. package/dist/coolandlovely/pages/admin/AdminFeaturedItemsPage.d.ts.map +1 -0
  109. package/dist/coolandlovely/pages/admin/index.d.ts +8 -0
  110. package/dist/coolandlovely/pages/admin/index.d.ts.map +1 -0
  111. package/dist/coolandlovely/pages/brands/BrandDetailPage.d.ts +9 -0
  112. package/dist/coolandlovely/pages/brands/BrandDetailPage.d.ts.map +1 -0
  113. package/dist/coolandlovely/pages/brands/BrandFormPage.d.ts +9 -0
  114. package/dist/coolandlovely/pages/brands/BrandFormPage.d.ts.map +1 -0
  115. package/dist/coolandlovely/pages/brands/BrandsListPage.d.ts +9 -0
  116. package/dist/coolandlovely/pages/brands/BrandsListPage.d.ts.map +1 -0
  117. package/dist/coolandlovely/pages/collaborations/CollaborationDetailPage.d.ts +9 -0
  118. package/dist/coolandlovely/pages/collaborations/CollaborationDetailPage.d.ts.map +1 -0
  119. package/dist/coolandlovely/pages/collaborations/CollaborationFormPage.d.ts +11 -0
  120. package/dist/coolandlovely/pages/collaborations/CollaborationFormPage.d.ts.map +1 -0
  121. package/dist/coolandlovely/pages/collaborations/CollaborationsListPage.d.ts +9 -0
  122. package/dist/coolandlovely/pages/collaborations/CollaborationsListPage.d.ts.map +1 -0
  123. package/dist/coolandlovely/pages/collections/CollectionDetailPage.d.ts +9 -0
  124. package/dist/coolandlovely/pages/collections/CollectionDetailPage.d.ts.map +1 -0
  125. package/dist/coolandlovely/pages/collections/CollectionFormPage.d.ts +9 -0
  126. package/dist/coolandlovely/pages/collections/CollectionFormPage.d.ts.map +1 -0
  127. package/dist/coolandlovely/pages/collections/CollectionsListPage.d.ts +8 -0
  128. package/dist/coolandlovely/pages/collections/CollectionsListPage.d.ts.map +1 -0
  129. package/dist/coolandlovely/pages/commerce/CartPage.d.ts +10 -0
  130. package/dist/coolandlovely/pages/commerce/CartPage.d.ts.map +1 -0
  131. package/dist/coolandlovely/pages/commerce/CartPage.js +283 -0
  132. package/dist/coolandlovely/pages/commerce/CartPage.js.map +1 -0
  133. package/dist/coolandlovely/pages/commerce/CreatorEarningsPage.d.ts +11 -0
  134. package/dist/coolandlovely/pages/commerce/CreatorEarningsPage.d.ts.map +1 -0
  135. package/dist/coolandlovely/pages/commerce/CreatorEarningsPage.js +185 -0
  136. package/dist/coolandlovely/pages/commerce/CreatorEarningsPage.js.map +1 -0
  137. package/dist/coolandlovely/pages/commerce/OrdersPage.d.ts +11 -0
  138. package/dist/coolandlovely/pages/commerce/OrdersPage.d.ts.map +1 -0
  139. package/dist/coolandlovely/pages/commerce/OrdersPage.js +280 -0
  140. package/dist/coolandlovely/pages/commerce/OrdersPage.js.map +1 -0
  141. package/dist/coolandlovely/pages/discover/DiscoverPage.d.ts +14 -0
  142. package/dist/coolandlovely/pages/discover/DiscoverPage.d.ts.map +1 -0
  143. package/dist/coolandlovely/pages/items/StyleItemDetailPage.d.ts +9 -0
  144. package/dist/coolandlovely/pages/items/StyleItemDetailPage.d.ts.map +1 -0
  145. package/dist/coolandlovely/pages/items/StyleItemDetailPage.js +114 -106
  146. package/dist/coolandlovely/pages/items/StyleItemDetailPage.js.map +1 -1
  147. package/dist/coolandlovely/pages/items/StyleItemFormPage.d.ts +10 -0
  148. package/dist/coolandlovely/pages/items/StyleItemFormPage.d.ts.map +1 -0
  149. package/dist/coolandlovely/pages/items/StyleItemsListPage.d.ts +9 -0
  150. package/dist/coolandlovely/pages/items/StyleItemsListPage.d.ts.map +1 -0
  151. package/dist/coolandlovely/pages/lookbooks/LookbookDetailPage.d.ts +12 -0
  152. package/dist/coolandlovely/pages/lookbooks/LookbookDetailPage.d.ts.map +1 -0
  153. package/dist/coolandlovely/pages/lookbooks/LookbooksListPage.d.ts +10 -0
  154. package/dist/coolandlovely/pages/lookbooks/LookbooksListPage.d.ts.map +1 -0
  155. package/dist/coolandlovely/pages/looks/LookDetailPage.d.ts +11 -0
  156. package/dist/coolandlovely/pages/looks/LookDetailPage.d.ts.map +1 -0
  157. package/dist/coolandlovely/pages/looks/LookDetailPage.js +1 -1
  158. package/dist/coolandlovely/pages/looks/LookDetailPage.js.map +1 -1
  159. package/dist/coolandlovely/pages/looks/LookFormPage.d.ts +10 -0
  160. package/dist/coolandlovely/pages/looks/LookFormPage.d.ts.map +1 -0
  161. package/dist/coolandlovely/pages/looks/LooksListPage.d.ts +9 -0
  162. package/dist/coolandlovely/pages/looks/LooksListPage.d.ts.map +1 -0
  163. package/dist/coolandlovely/pages/profile/StyleProfilePage.d.ts +17 -0
  164. package/dist/coolandlovely/pages/profile/StyleProfilePage.d.ts.map +1 -0
  165. package/dist/coolandlovely/pages/trends/TrendsPage.d.ts +11 -0
  166. package/dist/coolandlovely/pages/trends/TrendsPage.d.ts.map +1 -0
  167. package/dist/coolandlovely/pages/wardrobe/WardrobeFormPage.d.ts +10 -0
  168. package/dist/coolandlovely/pages/wardrobe/WardrobeFormPage.d.ts.map +1 -0
  169. package/dist/coolandlovely/pages/wardrobe/WardrobeListPage.d.ts +12 -0
  170. package/dist/coolandlovely/pages/wardrobe/WardrobeListPage.d.ts.map +1 -0
  171. package/dist/coolandlovely/store/coolandlovelyStore.d.ts +56 -0
  172. package/dist/coolandlovely/store/coolandlovelyStore.d.ts.map +1 -0
  173. package/dist/coolandlovely/store/index.d.ts +6 -0
  174. package/dist/coolandlovely/store/index.d.ts.map +1 -0
  175. package/dist/coolandlovely/types/commerce.d.ts +137 -0
  176. package/dist/coolandlovely/types/commerce.d.ts.map +1 -0
  177. package/dist/coolandlovely/types/index.d.ts +527 -0
  178. package/dist/coolandlovely/types/index.d.ts.map +1 -0
  179. package/dist/coolandlovely/utils/cn.d.ts +4 -0
  180. package/dist/coolandlovely/utils/cn.d.ts.map +1 -0
  181. package/dist/coolandlovely/utils/formatters.d.ts +101 -0
  182. package/dist/coolandlovely/utils/formatters.d.ts.map +1 -0
  183. package/dist/coolandlovely/utils/icons.d.ts +6 -0
  184. package/dist/coolandlovely/utils/icons.d.ts.map +1 -0
  185. package/dist/coolandlovely/utils/index.d.ts +10 -0
  186. package/dist/coolandlovely/utils/index.d.ts.map +1 -0
  187. package/dist/coolandlovely/utils/navigation.d.ts +20 -0
  188. package/dist/coolandlovely/utils/navigation.d.ts.map +1 -0
  189. package/dist/coolandlovely/utils/paymentProviders.d.ts +74 -0
  190. package/dist/coolandlovely/utils/paymentProviders.d.ts.map +1 -0
  191. package/dist/coolandlovely/utils/paymentProviders.js +42 -0
  192. package/dist/coolandlovely/utils/paymentProviders.js.map +1 -0
  193. package/dist/coolandlovely/utils/sparkline.d.ts +31 -0
  194. package/dist/coolandlovely/utils/sparkline.d.ts.map +1 -0
  195. package/dist/generated/global-operations.d.ts +2 -0
  196. package/dist/generated/global-operations.d.ts.map +1 -0
  197. package/dist/generated/global-types.d.ts +23527 -0
  198. package/dist/generated/global-types.d.ts.map +1 -0
  199. package/dist/generated/wspace-operations.d.ts +2 -0
  200. package/dist/generated/wspace-operations.d.ts.map +1 -0
  201. package/dist/generated/wspace-types.d.ts +57851 -0
  202. package/dist/generated/wspace-types.d.ts.map +1 -0
  203. package/dist/index.d.ts +7 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/services/createSandboxAssistantTransport.d.ts +24 -0
  206. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -0
  207. package/dist/stories/BrandCard.stories.d.ts +10 -0
  208. package/dist/stories/BrandCard.stories.d.ts.map +1 -0
  209. package/dist/stories/CollectionCard.stories.d.ts +10 -0
  210. package/dist/stories/CollectionCard.stories.d.ts.map +1 -0
  211. package/dist/stories/DiscoverPage.stories.d.ts +11 -0
  212. package/dist/stories/DiscoverPage.stories.d.ts.map +1 -0
  213. package/dist/stories/FeedbackWidget.stories.d.ts +9 -0
  214. package/dist/stories/FeedbackWidget.stories.d.ts.map +1 -0
  215. package/dist/stories/LookCard.stories.d.ts +10 -0
  216. package/dist/stories/LookCard.stories.d.ts.map +1 -0
  217. package/dist/stories/LookbookCard.stories.d.ts +10 -0
  218. package/dist/stories/LookbookCard.stories.d.ts.map +1 -0
  219. package/dist/stories/MetricsCard.stories.d.ts +10 -0
  220. package/dist/stories/MetricsCard.stories.d.ts.map +1 -0
  221. package/dist/stories/ShopItemCard.stories.d.ts +9 -0
  222. package/dist/stories/ShopItemCard.stories.d.ts.map +1 -0
  223. package/dist/stories/StatusBadge.stories.d.ts +11 -0
  224. package/dist/stories/StatusBadge.stories.d.ts.map +1 -0
  225. package/dist/stories/VisibilityChip.stories.d.ts +10 -0
  226. package/dist/stories/VisibilityChip.stories.d.ts.map +1 -0
  227. package/dist/stories/WardrobeItemCard.stories.d.ts +11 -0
  228. package/dist/stories/WardrobeItemCard.stories.d.ts.map +1 -0
  229. package/dist/stories/__fixtures__/coolandlovely.d.ts +15 -0
  230. package/dist/stories/__fixtures__/coolandlovely.d.ts.map +1 -0
  231. package/dist/utils/pageContext.d.ts +58 -0
  232. package/dist/utils/pageContext.d.ts.map +1 -0
  233. package/package.json +1 -1
@@ -0,0 +1,97 @@
1
+ import { useCoolAndLovely as e } from "../context/CoolAndLovelyContext.js";
2
+ import { cn as t } from "../utils/cn.js";
3
+ import { useTr as n } from "../hooks/useTr.js";
4
+ import "../hooks/index.js";
5
+ import { useAddToCart as r } from "../hooks/useCommerceApi.js";
6
+ import { useState as i } from "react";
7
+ import { Check as a, Loader2 as o, ShoppingBag as s, Sparkles as c } from "lucide-react";
8
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
+ //#region src/coolandlovely/components/AddToCartPanel.tsx
10
+ var d = 10, f = (e) => t("inline-flex min-w-9 items-center justify-center rounded-full border px-3 py-1 text-sm font-medium transition-colors", e ? "border-action-primary-bg bg-action-primary-bg text-action-primary-text" : "border-border-seam text-text-primary hover:bg-bg-sunken"), p = ({ item: t, lookId: p }) => {
11
+ let m = n(), { navigateTo: h } = e(), g = r(), [_, v] = i(t.sizes.length === 1 ? t.sizes[0] ?? null : null), [y, b] = i(t.colours.length === 1 ? t.colours[0] ?? null : null), [x, S] = i(1), C = t.status === "ACTIVE" && t.price > 0, w = t.sizes.length > 0 && !_, T = t.colours.length > 0 && !y;
12
+ return C ? /* @__PURE__ */ u("div", {
13
+ className: "space-y-4",
14
+ "data-testid": "add-to-cart-panel",
15
+ children: [
16
+ p && /* @__PURE__ */ u("p", {
17
+ className: "inline-flex items-center gap-1.5 text-xs font-medium text-accent-primary",
18
+ children: [/* @__PURE__ */ l(c, { className: "h-3.5 w-3.5" }), m("coolandlovely.cart.shoppingLook", "Shopping from a look — your purchase supports its creator")]
19
+ }),
20
+ t.sizes.length > 0 && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
21
+ className: "mb-2 text-xs font-medium uppercase tracking-wide text-text-secondary",
22
+ children: m("coolandlovely.cart.chooseSize", "Choose a size")
23
+ }), /* @__PURE__ */ l("div", {
24
+ className: "flex flex-wrap gap-2",
25
+ children: t.sizes.map((e) => /* @__PURE__ */ l("button", {
26
+ type: "button",
27
+ "aria-pressed": _ === e,
28
+ onClick: () => v(e),
29
+ className: f(_ === e),
30
+ children: e
31
+ }, e))
32
+ })] }),
33
+ t.colours.length > 0 && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
34
+ className: "mb-2 text-xs font-medium uppercase tracking-wide text-text-secondary",
35
+ children: m("coolandlovely.cart.chooseColour", "Choose a colour")
36
+ }), /* @__PURE__ */ l("div", {
37
+ className: "flex flex-wrap gap-2",
38
+ children: t.colours.map((e) => /* @__PURE__ */ l("button", {
39
+ type: "button",
40
+ "aria-pressed": y === e,
41
+ onClick: () => b(e),
42
+ className: f(y === e),
43
+ children: e
44
+ }, e))
45
+ })] }),
46
+ /* @__PURE__ */ u("div", {
47
+ className: "flex items-center gap-3",
48
+ children: [/* @__PURE__ */ l("label", {
49
+ htmlFor: "coo-add-quantity",
50
+ className: "text-sm text-text-secondary",
51
+ children: m("coolandlovely.cart.quantity", "Quantity")
52
+ }), /* @__PURE__ */ l("select", {
53
+ id: "coo-add-quantity",
54
+ value: x,
55
+ onChange: (e) => S(Number(e.target.value)),
56
+ className: "rounded-lg border border-border-seam bg-bg-surface px-2 py-1.5 text-sm text-text-primary",
57
+ children: Array.from({ length: d }, (e, t) => t + 1).map((e) => /* @__PURE__ */ l("option", {
58
+ value: e,
59
+ children: e
60
+ }, e))
61
+ })]
62
+ }),
63
+ g.error && /* @__PURE__ */ l("p", {
64
+ className: "text-sm text-status-error-text",
65
+ children: g.error.message
66
+ }),
67
+ /* @__PURE__ */ u("div", {
68
+ className: "flex flex-wrap gap-2",
69
+ children: [/* @__PURE__ */ u("button", {
70
+ type: "button",
71
+ disabled: w || T || g.isPending,
72
+ onClick: () => g.mutate({ input: {
73
+ styleItemId: t.id,
74
+ quantity: x,
75
+ size: _,
76
+ colour: y,
77
+ lookId: p ?? null
78
+ } }),
79
+ className: "inline-flex flex-1 items-center justify-center gap-2 rounded-lg bg-action-primary-bg px-4 py-2.5 text-sm font-semibold text-action-primary-text transition-colors hover:bg-action-primary-bg/90 disabled:opacity-50",
80
+ children: [g.isPending ? /* @__PURE__ */ l(o, { className: "h-4 w-4 animate-spin" }) : g.isSuccess ? /* @__PURE__ */ l(a, { className: "h-4 w-4" }) : /* @__PURE__ */ l(s, { className: "h-4 w-4" }), g.isSuccess ? m("coolandlovely.cart.added", "Added to cart") : m("coolandlovely.cart.add", "Add to cart")]
81
+ }), g.isSuccess && /* @__PURE__ */ l("button", {
82
+ type: "button",
83
+ onClick: () => h("/cart"),
84
+ className: "inline-flex items-center gap-1.5 rounded-lg border border-border-seam px-4 py-2.5 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken",
85
+ children: m("coolandlovely.cart.viewCart", "View cart")
86
+ })]
87
+ })
88
+ ]
89
+ }) : /* @__PURE__ */ l("p", {
90
+ className: "rounded-lg border border-border-seam bg-bg-sunken p-3 text-sm text-text-secondary",
91
+ children: m("coolandlovely.cart.notForSale", "This piece is not available to buy right now.")
92
+ });
93
+ };
94
+ //#endregion
95
+ export { p as AddToCartPanel };
96
+
97
+ //# sourceMappingURL=AddToCartPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddToCartPanel.js","names":[],"sources":["../../../src/coolandlovely/components/AddToCartPanel.tsx"],"sourcesContent":["/**\n * AddToCartPanel — size / colour / quantity picker + \"Add to cart\" for a catalogue piece.\n * @module coolandlovely/components\n *\n * When the shopper arrived from a look (\"shop the look\"), the look id rides along so the look's\n * creator earns the commission once the order is paid (BOFF-3370).\n */\n\nimport { type FC, useState } from 'react';\nimport { Check, Loader2, ShoppingBag, Sparkles } from 'lucide-react';\n\nimport { useCoolAndLovely } from '../context/CoolAndLovelyContext';\nimport { useTr } from '../hooks';\nimport { useAddToCart } from '../hooks/useCommerceApi';\nimport type { CooStyleItem } from '../types';\nimport { cn } from '../utils/cn';\n\ninterface AddToCartPanelProps {\n item: Pick<CooStyleItem, 'id' | 'status' | 'price' | 'sizes' | 'colours'>;\n lookId?: string | null;\n}\n\nconst MAX_QUANTITY = 10;\n\nconst chip = (selected: boolean) =>\n cn(\n 'inline-flex min-w-9 items-center justify-center rounded-full border px-3 py-1 text-sm font-medium transition-colors',\n selected\n ? 'border-action-primary-bg bg-action-primary-bg text-action-primary-text'\n : 'border-border-seam text-text-primary hover:bg-bg-sunken'\n );\n\nexport const AddToCartPanel: FC<AddToCartPanelProps> = ({ item, lookId }) => {\n const tr = useTr();\n const { navigateTo } = useCoolAndLovely();\n const addToCart = useAddToCart();\n const [size, setSize] = useState<string | null>(\n item.sizes.length === 1 ? (item.sizes[0] ?? null) : null\n );\n const [colour, setColour] = useState<string | null>(\n item.colours.length === 1 ? (item.colours[0] ?? null) : null\n );\n const [quantity, setQuantity] = useState(1);\n\n const purchasable = item.status === 'ACTIVE' && item.price > 0;\n const needsSize = item.sizes.length > 0 && !size;\n const needsColour = item.colours.length > 0 && !colour;\n\n if (!purchasable) {\n return (\n <p className=\"rounded-lg border border-border-seam bg-bg-sunken p-3 text-sm text-text-secondary\">\n {tr('coolandlovely.cart.notForSale', 'This piece is not available to buy right now.')}\n </p>\n );\n }\n\n return (\n <div className=\"space-y-4\" data-testid=\"add-to-cart-panel\">\n {lookId && (\n <p className=\"inline-flex items-center gap-1.5 text-xs font-medium text-accent-primary\">\n <Sparkles className=\"h-3.5 w-3.5\" />\n {tr(\n 'coolandlovely.cart.shoppingLook',\n 'Shopping from a look — your purchase supports its creator'\n )}\n </p>\n )}\n {item.sizes.length > 0 && (\n <div>\n <p className=\"mb-2 text-xs font-medium uppercase tracking-wide text-text-secondary\">\n {tr('coolandlovely.cart.chooseSize', 'Choose a size')}\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {item.sizes.map((option) => (\n <button\n key={option}\n type=\"button\"\n aria-pressed={size === option}\n onClick={() => setSize(option)}\n className={chip(size === option)}\n >\n {option}\n </button>\n ))}\n </div>\n </div>\n )}\n {item.colours.length > 0 && (\n <div>\n <p className=\"mb-2 text-xs font-medium uppercase tracking-wide text-text-secondary\">\n {tr('coolandlovely.cart.chooseColour', 'Choose a colour')}\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {item.colours.map((option) => (\n <button\n key={option}\n type=\"button\"\n aria-pressed={colour === option}\n onClick={() => setColour(option)}\n className={chip(colour === option)}\n >\n {option}\n </button>\n ))}\n </div>\n </div>\n )}\n <div className=\"flex items-center gap-3\">\n <label htmlFor=\"coo-add-quantity\" className=\"text-sm text-text-secondary\">\n {tr('coolandlovely.cart.quantity', 'Quantity')}\n </label>\n <select\n id=\"coo-add-quantity\"\n value={quantity}\n onChange={(event) => setQuantity(Number(event.target.value))}\n className=\"rounded-lg border border-border-seam bg-bg-surface px-2 py-1.5 text-sm text-text-primary\"\n >\n {Array.from({ length: MAX_QUANTITY }, (_, index) => index + 1).map((value) => (\n <option key={value} value={value}>\n {value}\n </option>\n ))}\n </select>\n </div>\n {addToCart.error && (\n <p className=\"text-sm text-status-error-text\">{addToCart.error.message}</p>\n )}\n <div className=\"flex flex-wrap gap-2\">\n <button\n type=\"button\"\n disabled={needsSize || needsColour || addToCart.isPending}\n onClick={() =>\n addToCart.mutate({\n input: { styleItemId: item.id, quantity, size, colour, lookId: lookId ?? null },\n })\n }\n className=\"inline-flex flex-1 items-center justify-center gap-2 rounded-lg bg-action-primary-bg px-4 py-2.5 text-sm font-semibold text-action-primary-text transition-colors hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n {addToCart.isPending ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : addToCart.isSuccess ? (\n <Check className=\"h-4 w-4\" />\n ) : (\n <ShoppingBag className=\"h-4 w-4\" />\n )}\n {addToCart.isSuccess\n ? tr('coolandlovely.cart.added', 'Added to cart')\n : tr('coolandlovely.cart.add', 'Add to cart')}\n </button>\n {addToCart.isSuccess && (\n <button\n type=\"button\"\n onClick={() => navigateTo('/cart')}\n className=\"inline-flex items-center gap-1.5 rounded-lg border border-border-seam px-4 py-2.5 text-sm font-medium text-text-primary transition-colors hover:bg-bg-sunken\"\n >\n {tr('coolandlovely.cart.viewCart', 'View cart')}\n </button>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+
3
+ interface AddToLookbookButtonProps {
4
+ lookId?: string;
5
+ styleItemId?: string;
6
+ className?: string;
7
+ }
8
+ export declare const AddToLookbookButton: FC<AddToLookbookButtonProps>;
9
+ export {};
10
+ //# sourceMappingURL=AddToLookbookButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddToLookbookButton.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/AddToLookbookButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAOhC,UAAU,wBAAwB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA4G5D,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { CooBrand } from '../types';
3
+
4
+ interface BrandCardProps {
5
+ brand: CooBrand;
6
+ onClick?: () => void;
7
+ className?: string;
8
+ }
9
+ export declare const BrandCard: FC<BrandCardProps>;
10
+ export {};
11
+ //# sourceMappingURL=BrandCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandCard.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/BrandCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAOhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,cAAc;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAwCxC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface BrandCoverProps {
4
+ coverFileId?: string | null;
5
+ logoFileId?: string | null;
6
+ name: string;
7
+ /** Stable seed for the tint (usually the brand id). Falls back to `name`. */
8
+ seed?: string;
9
+ className?: string;
10
+ /** When true, render the circular logo avatar straddling the bottom-left. */
11
+ showLogo?: boolean;
12
+ /** Content rendered over the scrim (e.g. name + @handle + actions). */
13
+ overlay?: ReactNode;
14
+ }
15
+ export declare const BrandCover: FC<BrandCoverProps>;
16
+ export {};
17
+ //# sourceMappingURL=BrandCover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandCover.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/BrandCover.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK3C,UAAU,eAAe;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoC1C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FC } from 'react';
2
+
3
+ interface BrandCreatorAvatarsProps {
4
+ brandLogoFileId?: string | null;
5
+ /** Stable seed for the brand logo tint (usually the brand id). */
6
+ brandSeed?: string;
7
+ /** Actor id of the creator (resolved to name + avatar via useActorProfiles). */
8
+ creatorId: string;
9
+ size?: 'sm' | 'md';
10
+ className?: string;
11
+ }
12
+ export declare const BrandCreatorAvatars: FC<BrandCreatorAvatarsProps>;
13
+ export {};
14
+ //# sourceMappingURL=BrandCreatorAvatars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandCreatorAvatars.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/BrandCreatorAvatars.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,UAAU,wBAAwB;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA0D5D,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { CooCollection } from '../types';
3
+
4
+ interface CollectionCardProps {
5
+ collection: CooCollection;
6
+ onClick?: () => void;
7
+ className?: string;
8
+ }
9
+ export declare const CollectionCard: FC<CollectionCardProps>;
10
+ export {};
11
+ //# sourceMappingURL=CollectionCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionCard.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/CollectionCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAOhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,UAAU,mBAAmB;IAC3B,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyDlD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+
3
+ interface ColourSwatchRowProps {
4
+ colours: string[];
5
+ /** Max swatches to show before collapsing into a "+N" chip. */
6
+ max?: number;
7
+ className?: string;
8
+ }
9
+ export declare const ColourSwatchRow: FC<ColourSwatchRowProps>;
10
+ export {};
11
+ //# sourceMappingURL=ColourSwatchRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColourSwatchRow.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/ColourSwatchRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAiB,EAAE,EAAE,MAAM,OAAO,CAAC;AAG/C,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA8BpD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FC } from 'react';
2
+
3
+ interface CommentsProps {
4
+ /** Conversations entity type, e.g. "CooLook" / "CooBrand". */
5
+ entityType: string;
6
+ /** The entity id (skips rendering until present). */
7
+ entityId?: string;
8
+ /** Section heading (default "Reviews & feedback"). */
9
+ title?: string;
10
+ className?: string;
11
+ }
12
+ export declare const Comments: FC<CommentsProps>;
13
+ export {};
14
+ //# sourceMappingURL=Comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Comments.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/Comments.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAShC,UAAU,aAAa;IACrB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAwGtC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface EmptyStateProps {
4
+ icon?: ReactNode;
5
+ title: string;
6
+ description?: string;
7
+ action?: ReactNode;
8
+ className?: string;
9
+ /** Host-served illustration name (e.g. "empty-search", "empty-people"). */
10
+ illustration?: string;
11
+ }
12
+ export declare const EmptyState: FC<EmptyStateProps>;
13
+ export {};
14
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/EmptyState.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA0B1C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+
3
+ export declare const FeedbackWidget: FC;
4
+ //# sourceMappingURL=FeedbackWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackWidget.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/FeedbackWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA8ChC,eAAO,MAAM,cAAc,EAAE,EA6K5B,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface FieldShellProps {
4
+ label: string;
5
+ htmlFor?: string;
6
+ required?: boolean;
7
+ hint?: string;
8
+ error?: string;
9
+ children: ReactNode;
10
+ className?: string;
11
+ }
12
+ export declare const FieldShell: FC<FieldShellProps>;
13
+ interface TextFieldProps {
14
+ id?: string;
15
+ label: string;
16
+ value: string;
17
+ onChange: (value: string) => void;
18
+ placeholder?: string;
19
+ required?: boolean;
20
+ hint?: string;
21
+ error?: string;
22
+ type?: 'text' | 'url' | 'number' | 'date';
23
+ disabled?: boolean;
24
+ className?: string;
25
+ }
26
+ export declare const TextField: FC<TextFieldProps>;
27
+ interface TextAreaFieldProps {
28
+ id?: string;
29
+ label: string;
30
+ value: string;
31
+ onChange: (value: string) => void;
32
+ placeholder?: string;
33
+ required?: boolean;
34
+ hint?: string;
35
+ error?: string;
36
+ rows?: number;
37
+ disabled?: boolean;
38
+ className?: string;
39
+ }
40
+ export declare const TextAreaField: FC<TextAreaFieldProps>;
41
+ interface ToggleFieldProps {
42
+ id?: string;
43
+ label: string;
44
+ checked: boolean;
45
+ onChange: (checked: boolean) => void;
46
+ hint?: string;
47
+ disabled?: boolean;
48
+ className?: string;
49
+ }
50
+ /** A token-only checkbox row (used for boolean flags e.g. Featured). */
51
+ export declare const ToggleField: FC<ToggleFieldProps>;
52
+ interface SelectOption {
53
+ value: string;
54
+ label: string;
55
+ }
56
+ interface SelectFieldProps {
57
+ id?: string;
58
+ label: string;
59
+ value: string;
60
+ onChange: (value: string) => void;
61
+ options: SelectOption[];
62
+ required?: boolean;
63
+ hint?: string;
64
+ error?: string;
65
+ placeholder?: string;
66
+ disabled?: boolean;
67
+ className?: string;
68
+ }
69
+ export declare const SelectField: FC<SelectFieldProps>;
70
+ export {};
71
+ //# sourceMappingURL=Field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/Field.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+
3
+ interface FileImageProps {
4
+ fileId?: string | null;
5
+ alt?: string;
6
+ className?: string;
7
+ }
8
+ export declare const FileImage: FC<FileImageProps>;
9
+ export {};
10
+ //# sourceMappingURL=FileImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileImage.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/FileImage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAWxC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+
3
+ interface FollowButtonProps {
4
+ /** Actor id to follow/unfollow. */
5
+ followeeId?: string | null;
6
+ className?: string;
7
+ size?: 'sm' | 'md';
8
+ }
9
+ export declare const FollowButton: FC<FollowButtonProps>;
10
+ export {};
11
+ //# sourceMappingURL=FollowButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/FollowButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,UAAU,iBAAiB;IACzB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA8C9C,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { FC } from 'react';
2
+
3
+ interface ImageUploadFieldProps {
4
+ label: string;
5
+ /** Current wspace-files File id, or '' / undefined when none. */
6
+ value?: string | null;
7
+ /** Called with the new File id on success, or '' when cleared. */
8
+ onChange: (fileId: string) => void;
9
+ /** Destination folder in wspace-files (see COO_FILE_FOLDERS). */
10
+ folder?: string;
11
+ hint?: string;
12
+ /** `accept` for the input; images only by default. */
13
+ accept?: string;
14
+ disabled?: boolean;
15
+ className?: string;
16
+ /** Aspect of the resolved-image preview tile. */
17
+ aspect?: 'square' | 'wide';
18
+ }
19
+ export declare const ImageUploadField: FC<ImageUploadFieldProps>;
20
+ export {};
21
+ //# sourceMappingURL=ImageUploadField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageUploadField.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/ImageUploadField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAa,EAAE,EAAE,MAAM,OAAO,CAAC;AAQ3C,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kEAAkE;IAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC5B;AAaD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA6LtD,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { FC } from 'react';
2
+
3
+ interface LookCardProps {
4
+ id: string;
5
+ title: string;
6
+ /** Occasion label/value (rendered as a pill; enum values are title-cased). */
7
+ occasion: string;
8
+ imageFileId?: string | null;
9
+ likeCount?: number;
10
+ isLikedByMe?: boolean;
11
+ isSavedByMe?: boolean;
12
+ onOpen: () => void;
13
+ /** Show the hover like/save/add-to-lookbook overlay cluster. */
14
+ showActions?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare const LookCard: FC<LookCardProps>;
18
+ export {};
19
+ //# sourceMappingURL=LookCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookCard.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/LookCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAiHhC,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA2DtC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { CooLookbook } from '../types';
3
+
4
+ interface LookbookCardProps {
5
+ lookbook: CooLookbook;
6
+ onClick?: () => void;
7
+ className?: string;
8
+ }
9
+ export declare const LookbookCard: FC<LookbookCardProps>;
10
+ export {};
11
+ //# sourceMappingURL=LookbookCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookbookCard.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/LookbookCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,iBAAiB;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAuC9C,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { TrendDirection } from '../types';
3
+
4
+ interface MetricsCardProps {
5
+ icon: ReactNode;
6
+ value: string | number;
7
+ label: string;
8
+ trend?: TrendDirection;
9
+ trendValue?: string;
10
+ className?: string;
11
+ /** Renders the featured hero metric (glass treatment + accent glow). */
12
+ featured?: boolean;
13
+ /**
14
+ * Optional real (non-fabricated) day-by-day series, oldest → newest, used
15
+ * to render a small trend sparkline next to the trend indicator. Omit (or
16
+ * pass a series with < 2 points) to fall back to the text-only trend view
17
+ * — see `buildCreatedAtSparkline` in `utils/sparkline.ts`.
18
+ */
19
+ sparklineData?: number[];
20
+ }
21
+ export declare const MetricsCard: FC<MetricsCardProps>;
22
+ export {};
23
+ //# sourceMappingURL=MetricsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsCard.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/MetricsCard.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,UAAU,gBAAgB;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AA6CD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAwC5C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface PageLayoutProps {
4
+ title: ReactNode;
5
+ description?: string;
6
+ actions?: ReactNode;
7
+ children: ReactNode;
8
+ className?: string;
9
+ /**
10
+ * Enables the living-glass hero backdrop (AuroraBackground) behind the page
11
+ * header. Use on at most ONE page per MFE (the primary landing page).
12
+ */
13
+ hero?: boolean;
14
+ }
15
+ export declare const PageLayout: FC<PageLayoutProps>;
16
+ export {};
17
+ //# sourceMappingURL=PageLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/PageLayout.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAwBD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAkC1C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { CooOrderCheckout } from '../types';
3
+
4
+ interface PayForOrderProps {
5
+ checkout: CooOrderCheckout;
6
+ /** Ask the backend to settle the order against billing; called after every attempt. */
7
+ onSettle: () => Promise<void>;
8
+ }
9
+ export declare const PayForOrder: FC<PayForOrderProps>;
10
+ export {};
11
+ //# sourceMappingURL=PayForOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayForOrder.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/components/PayForOrder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA+B,MAAM,OAAO,CAAC;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAUjD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAuGD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA2D5C,CAAC"}