@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,10 @@
1
+ /**
2
+ * Utilities Index
3
+ * @module coolandlovely/utils
4
+ */
5
+ export { cn } from './cn';
6
+ export { joinPath } from './navigation';
7
+ export { formatPrice, formatCurrency, formatDate, formatRelativeTime, formatNumber, formatDistance, formatDuration, titleCase, parseCsv, } from './formatters';
8
+ export { categoryIcon, STYLE_CATEGORIES } from './icons';
9
+ export { buildCreatedAtSparkline, sparklineDeltaLabel, sparklineTrendDirection, SPARKLINE_WINDOW_DAYS, } from './sparkline';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,WAAW,EACX,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Navigation utilities for the CoolAndLovely microfrontend
3
+ * @module coolandlovely/utils
4
+ */
5
+ /**
6
+ * Join basePath with a relative path, correctly handling slashes
7
+ *
8
+ * @param basePath - The base path (e.g., '/' or '/coolandlovely')
9
+ * @param relativePath - The relative path (e.g., 'carts/new' or '/carts/new')
10
+ * @returns The joined path (e.g., '/coolandlovely/carts/new')
11
+ *
12
+ * @example
13
+ * joinPath('/', 'carts/new') // => '/carts/new'
14
+ * joinPath('/', '/carts/new') // => '/carts/new'
15
+ * joinPath('/coolandlovely', 'orders') // => '/coolandlovely/orders'
16
+ * joinPath('/coolandlovely/', 'orders') // => '/coolandlovely/orders'
17
+ * joinPath('/coolandlovely', '') // => '/coolandlovely'
18
+ */
19
+ export declare function joinPath(basePath: string, relativePath: string): string;
20
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/utils/navigation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAcvE"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Payment provider browser SDKs (BOFF-3370)
3
+ * @module coolandlovely/utils
4
+ *
5
+ * global-billing-svc decides the provider per order (Razorpay for INR, Stripe for USD/EUR/GBP…)
6
+ * and hands back what the browser needs to collect the payment. These helpers load the
7
+ * provider's own script lazily — only when a shopper actually pays — and drive its widget.
8
+ * Neither helper decides the payment outcome: the caller always asks the backend to settle,
9
+ * and the backend only trusts billing's record.
10
+ */
11
+ interface RazorpayOptions {
12
+ key: string;
13
+ order_id: string;
14
+ amount: number;
15
+ currency: string;
16
+ name: string;
17
+ description?: string;
18
+ handler: () => void;
19
+ modal: {
20
+ ondismiss: () => void;
21
+ };
22
+ }
23
+ type RazorpayConstructor = new (options: RazorpayOptions) => {
24
+ open: () => void;
25
+ };
26
+ export interface StripeCardElement {
27
+ mount: (element: HTMLElement) => void;
28
+ destroy: () => void;
29
+ on: (event: 'change', handler: (event: {
30
+ complete: boolean;
31
+ error?: {
32
+ message: string;
33
+ };
34
+ }) => void) => void;
35
+ }
36
+ export interface StripeInstance {
37
+ elements: () => {
38
+ create: (type: 'card', options?: Record<string, unknown>) => StripeCardElement;
39
+ };
40
+ confirmCardPayment: (clientSecret: string, data: {
41
+ payment_method: {
42
+ card: StripeCardElement;
43
+ };
44
+ }) => Promise<{
45
+ paymentIntent?: {
46
+ status: string;
47
+ };
48
+ error?: {
49
+ message?: string;
50
+ };
51
+ }>;
52
+ }
53
+ type StripeFactory = (publishableKey: string) => StripeInstance;
54
+ declare global {
55
+ interface Window {
56
+ Razorpay?: RazorpayConstructor;
57
+ Stripe?: StripeFactory;
58
+ }
59
+ }
60
+ /**
61
+ * Open Razorpay's checkout for a billing-created Razorpay order. Resolves `true` when the
62
+ * shopper completed the widget, `false` when they closed it. Either way the caller syncs.
63
+ */
64
+ export declare function openRazorpayCheckout(input: {
65
+ keyId: string;
66
+ providerOrderId: string;
67
+ total: number;
68
+ currency: string;
69
+ description: string;
70
+ }): Promise<boolean>;
71
+ /** Load Stripe.js and create a Stripe instance for the publishable key billing returned. */
72
+ export declare function loadStripe(publishableKey: string): Promise<StripeInstance>;
73
+ export {};
74
+ //# sourceMappingURL=paymentProviders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentProviders.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/utils/paymentProviders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAClC;AAED,KAAK,mBAAmB,GAAG,KAAK,OAAO,EAAE,eAAe,KAAK;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,EAAE,EAAE,CACF,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,KACzE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM;QACd,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,iBAAiB,CAAC;KAChF,CAAC;IACF,kBAAkB,EAAE,CAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;QAAE,cAAc,EAAE;YAAE,IAAI,EAAE,iBAAiB,CAAA;SAAE,CAAA;KAAE,KAClD,OAAO,CAAC;QAAE,aAAa,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACpF;AAED,KAAK,aAAa,GAAG,CAAC,cAAc,EAAE,MAAM,KAAK,cAAc,CAAC;AAEhE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAC/B,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB;CACF;AA+BD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBnB;AAED,4FAA4F;AAC5F,wBAAsB,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAKhF"}
@@ -0,0 +1,42 @@
1
+ //#region src/coolandlovely/utils/paymentProviders.ts
2
+ var e = "https://checkout.razorpay.com/v1/checkout.js", t = "https://js.stripe.com/v3/", n = /* @__PURE__ */ new Map();
3
+ function r(e, t) {
4
+ if (t()) return Promise.resolve();
5
+ let r = n.get(e);
6
+ if (r) return r;
7
+ let i = new Promise((r, i) => {
8
+ document.querySelectorAll(`script[src="${e}"]`).forEach((e) => e.remove());
9
+ let a = document.createElement("script"), o = (t) => {
10
+ n.delete(e), a.remove(), i(Error(t));
11
+ };
12
+ a.addEventListener("load", () => t() ? r() : o("The payment provider did not load")), a.addEventListener("error", () => o("Could not load the payment provider")), a.src = e, a.async = !0, document.body.appendChild(a);
13
+ });
14
+ return n.set(e, i), i;
15
+ }
16
+ async function i(t) {
17
+ await r(e, () => !!window.Razorpay);
18
+ let n = window.Razorpay;
19
+ if (!n) throw Error("The payment provider did not load");
20
+ return new Promise((e) => {
21
+ new n({
22
+ key: t.keyId,
23
+ order_id: t.providerOrderId,
24
+ amount: Math.round(t.total * 100),
25
+ currency: t.currency,
26
+ name: "CoolAndLovely",
27
+ description: t.description,
28
+ handler: () => e(!0),
29
+ modal: { ondismiss: () => e(!1) }
30
+ }).open();
31
+ });
32
+ }
33
+ async function a(e) {
34
+ await r(t, () => !!window.Stripe);
35
+ let n = window.Stripe;
36
+ if (!n) throw Error("The payment provider did not load");
37
+ return n(e);
38
+ }
39
+ //#endregion
40
+ export { a as loadStripe, i as openRazorpayCheckout };
41
+
42
+ //# sourceMappingURL=paymentProviders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentProviders.js","names":[],"sources":["../../../src/coolandlovely/utils/paymentProviders.ts"],"sourcesContent":["/**\n * Payment provider browser SDKs (BOFF-3370)\n * @module coolandlovely/utils\n *\n * global-billing-svc decides the provider per order (Razorpay for INR, Stripe for USD/EUR/GBP…)\n * and hands back what the browser needs to collect the payment. These helpers load the\n * provider's own script lazily — only when a shopper actually pays — and drive its widget.\n * Neither helper decides the payment outcome: the caller always asks the backend to settle,\n * and the backend only trusts billing's record.\n */\n\nconst RAZORPAY_SRC = 'https://checkout.razorpay.com/v1/checkout.js';\nconst STRIPE_SRC = 'https://js.stripe.com/v3/';\n\ninterface RazorpayOptions {\n key: string;\n order_id: string;\n amount: number;\n currency: string;\n name: string;\n description?: string;\n handler: () => void;\n modal: { ondismiss: () => void };\n}\n\ntype RazorpayConstructor = new (options: RazorpayOptions) => { open: () => void };\n\nexport interface StripeCardElement {\n mount: (element: HTMLElement) => void;\n destroy: () => void;\n on: (\n event: 'change',\n handler: (event: { complete: boolean; error?: { message: string } }) => void\n ) => void;\n}\n\nexport interface StripeInstance {\n elements: () => {\n create: (type: 'card', options?: Record<string, unknown>) => StripeCardElement;\n };\n confirmCardPayment: (\n clientSecret: string,\n data: { payment_method: { card: StripeCardElement } }\n ) => Promise<{ paymentIntent?: { status: string }; error?: { message?: string } }>;\n}\n\ntype StripeFactory = (publishableKey: string) => StripeInstance;\n\ndeclare global {\n interface Window {\n Razorpay?: RazorpayConstructor;\n Stripe?: StripeFactory;\n }\n}\n\nconst scriptPromises = new Map<string, Promise<void>>();\n\n/** Inject a provider script once; a failed load leaves no trace so a retry starts fresh. */\nfunction loadScript(src: string, isReady: () => boolean): Promise<void> {\n if (isReady()) return Promise.resolve();\n const pending = scriptPromises.get(src);\n if (pending) return pending;\n const promise = new Promise<void>((resolve, reject) => {\n document\n .querySelectorAll<HTMLScriptElement>(`script[src=\"${src}\"]`)\n .forEach((el) => el.remove());\n const script = document.createElement('script');\n const fail = (message: string) => {\n scriptPromises.delete(src);\n script.remove();\n reject(new Error(message));\n };\n script.addEventListener('load', () =>\n isReady() ? resolve() : fail('The payment provider did not load')\n );\n script.addEventListener('error', () => fail('Could not load the payment provider'));\n script.src = src;\n script.async = true;\n document.body.appendChild(script);\n });\n scriptPromises.set(src, promise);\n return promise;\n}\n\n/**\n * Open Razorpay's checkout for a billing-created Razorpay order. Resolves `true` when the\n * shopper completed the widget, `false` when they closed it. Either way the caller syncs.\n */\nexport async function openRazorpayCheckout(input: {\n keyId: string;\n providerOrderId: string;\n total: number;\n currency: string;\n description: string;\n}): Promise<boolean> {\n await loadScript(RAZORPAY_SRC, () => !!window.Razorpay);\n const Razorpay = window.Razorpay;\n if (!Razorpay) throw new Error('The payment provider did not load');\n return new Promise<boolean>((resolve) => {\n const widget = new Razorpay({\n key: input.keyId,\n order_id: input.providerOrderId,\n amount: Math.round(input.total * 100),\n currency: input.currency,\n name: 'CoolAndLovely',\n description: input.description,\n handler: () => resolve(true),\n modal: { ondismiss: () => resolve(false) },\n });\n widget.open();\n });\n}\n\n/** Load Stripe.js and create a Stripe instance for the publishable key billing returned. */\nexport async function loadStripe(publishableKey: string): Promise<StripeInstance> {\n await loadScript(STRIPE_SRC, () => !!window.Stripe);\n const factory = window.Stripe;\n if (!factory) throw new Error('The payment provider did not load');\n return factory(publishableKey);\n}\n"],"mappings":";AAWA,IAAM,IAAe,gDACf,IAAa,6BA2Cb,oBAAiB,IAAI,KAA4B;AAGvD,SAAS,EAAW,GAAa,GAAuC;AACtE,KAAI,GAAS,CAAE,QAAO,QAAQ,SAAS;CACvC,IAAM,IAAU,EAAe,IAAI,EAAI;AACvC,KAAI,EAAS,QAAO;CACpB,IAAM,IAAU,IAAI,SAAe,GAAS,MAAW;AACrD,WACG,iBAAoC,eAAe,EAAI,IAAI,CAC3D,SAAS,MAAO,EAAG,QAAQ,CAAC;EAC/B,IAAM,IAAS,SAAS,cAAc,SAAS,EACzC,KAAQ,MAAoB;AAGhC,GAFA,EAAe,OAAO,EAAI,EAC1B,EAAO,QAAQ,EACf,EAAW,MAAM,EAAQ,CAAC;;AAQ5B,EANA,EAAO,iBAAiB,cACtB,GAAS,GAAG,GAAS,GAAG,EAAK,oCAAoC,CAClE,EACD,EAAO,iBAAiB,eAAe,EAAK,sCAAsC,CAAC,EACnF,EAAO,MAAM,GACb,EAAO,QAAQ,IACf,SAAS,KAAK,YAAY,EAAO;GACjC;AAEF,QADA,EAAe,IAAI,GAAK,EAAQ,EACzB;;AAOT,eAAsB,EAAqB,GAMtB;AACnB,OAAM,EAAW,SAAoB,CAAC,CAAC,OAAO,SAAS;CACvD,IAAM,IAAW,OAAO;AACxB,KAAI,CAAC,EAAU,OAAU,MAAM,oCAAoC;AACnE,QAAO,IAAI,SAAkB,MAAY;AACxB,MAAI,EAAS;GAC1B,KAAK,EAAM;GACX,UAAU,EAAM;GAChB,QAAQ,KAAK,MAAM,EAAM,QAAQ,IAAI;GACrC,UAAU,EAAM;GAChB,MAAM;GACN,aAAa,EAAM;GACnB,eAAe,EAAQ,GAAK;GAC5B,OAAO,EAAE,iBAAiB,EAAQ,GAAM,EAAE;GAC3C,CAAC,CACK,MAAM;GACb;;AAIJ,eAAsB,EAAW,GAAiD;AAChF,OAAM,EAAW,SAAkB,CAAC,CAAC,OAAO,OAAO;CACnD,IAAM,IAAU,OAAO;AACvB,KAAI,CAAC,EAAS,OAAU,MAAM,oCAAoC;AAClE,QAAO,EAAQ,EAAe"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Sparkline data helpers
3
+ * @module coolandlovely/utils/sparkline
4
+ *
5
+ * Derives a real (non-fabricated) day-by-day trend series from existing
6
+ * `createdAt` timestamps on domain entities — no synthetic/random data. Per
7
+ * house rule, dashboards must never invent history that isn't backed by
8
+ * actual records.
9
+ */
10
+ /** Number of trailing days the Overview dashboard sparklines cover. */
11
+ export declare const SPARKLINE_WINDOW_DAYS = 7;
12
+ /**
13
+ * Build a cumulative "total as of end of day" series for the trailing
14
+ * `windowDays` days from a list of entities carrying `createdAt`.
15
+ *
16
+ * Returns `undefined` when there is no meaningful history to show — i.e. the
17
+ * count hasn't changed across the whole window (nothing created recently, or
18
+ * the list is empty). Callers should fall back to a plain text-only view in
19
+ * that case rather than rendering a flat, uninformative line.
20
+ */
21
+ export declare function buildCreatedAtSparkline(entities: ReadonlyArray<{
22
+ createdAt: string;
23
+ }>, windowDays?: number, now?: number): number[] | undefined;
24
+ /**
25
+ * Human-readable delta label for a sparkline series, e.g. "+3 this week".
26
+ * Returns `null` when the series has fewer than 2 points (nothing to diff).
27
+ */
28
+ export declare function sparklineDeltaLabel(series: number[] | undefined, windowDays?: number): string | null;
29
+ /** Trend direction implied by a sparkline series' net change. */
30
+ export declare function sparklineTrendDirection(series: number[] | undefined): 'up' | 'down' | 'neutral';
31
+ //# sourceMappingURL=sparkline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline.d.ts","sourceRoot":"","sources":["../../../src/coolandlovely/utils/sparkline.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,UAAU,GAAE,MAA8B,EAC1C,GAAG,GAAE,MAAmB,GACvB,MAAM,EAAE,GAAG,SAAS,CAuBtB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,UAAU,GAAE,MAA8B,GACzC,MAAM,GAAG,IAAI,CAKf;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAM/F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=global-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-operations.d.ts","sourceRoot":"","sources":["../../src/generated/global-operations.ts"],"names":[],"mappings":""}