@automattic/plans-grid-next 1.0.2 → 1.0.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 (298) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/dist/cjs/_shared.scss +4 -3
  3. package/dist/cjs/components/comparison-grid/index.js +99 -92
  4. package/dist/cjs/components/comparison-grid/index.js.map +1 -1
  5. package/dist/cjs/components/comparison-grid/style.scss +10 -2
  6. package/dist/cjs/components/features-grid/client-logo-list/client-list.js +0 -12
  7. package/dist/cjs/components/features-grid/client-logo-list/client-list.js.map +1 -1
  8. package/dist/cjs/components/features-grid/index.js +9 -6
  9. package/dist/cjs/components/features-grid/index.js.map +1 -1
  10. package/dist/cjs/components/features-grid/plan-features-list.js +10 -3
  11. package/dist/cjs/components/features-grid/plan-features-list.js.map +1 -1
  12. package/dist/cjs/components/features-grid/plan-headers.js +2 -2
  13. package/dist/cjs/components/features-grid/plan-headers.js.map +1 -1
  14. package/dist/cjs/components/features-grid/plan-tagline.js +1 -1
  15. package/dist/cjs/components/features-grid/plan-tagline.js.map +1 -1
  16. package/dist/cjs/components/features-grid/style.scss +107 -19
  17. package/dist/cjs/components/features-grid/table.js +1 -1
  18. package/dist/cjs/components/features-grid/table.js.map +1 -1
  19. package/dist/cjs/components/features.js +43 -4
  20. package/dist/cjs/components/features.js.map +1 -1
  21. package/dist/cjs/components/item.js +1 -1
  22. package/dist/cjs/components/item.js.map +1 -1
  23. package/dist/cjs/components/plan-button/index.js +5 -3
  24. package/dist/cjs/components/plan-button/index.js.map +1 -1
  25. package/dist/cjs/components/plan-button/style.scss +75 -51
  26. package/dist/cjs/components/plan-div-td-container.js +4 -1
  27. package/dist/cjs/components/plan-div-td-container.js.map +1 -1
  28. package/dist/cjs/components/plan-logo.js +6 -3
  29. package/dist/cjs/components/plan-logo.js.map +1 -1
  30. package/dist/cjs/components/plan-type-selector/components/interval-type-dropdown.js +12 -1
  31. package/dist/cjs/components/plan-type-selector/components/interval-type-dropdown.js.map +1 -1
  32. package/dist/cjs/components/plan-type-selector/hooks/use-max-discount.js +4 -33
  33. package/dist/cjs/components/plan-type-selector/hooks/use-max-discount.js.map +1 -1
  34. package/dist/cjs/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js +11 -13
  35. package/dist/cjs/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js.map +1 -1
  36. package/dist/cjs/components/plans-2023-tooltip.js +16 -5
  37. package/dist/cjs/components/plans-2023-tooltip.js.map +1 -1
  38. package/dist/cjs/components/shared/action-button/index.js +22 -7
  39. package/dist/cjs/components/shared/action-button/index.js.map +1 -1
  40. package/dist/cjs/components/shared/action-button/style.scss +4 -0
  41. package/dist/cjs/components/shared/billing-timeframe/index.js +8 -4
  42. package/dist/cjs/components/shared/billing-timeframe/index.js.map +1 -1
  43. package/dist/cjs/components/shared/header-price/index.js +60 -15
  44. package/dist/cjs/components/shared/header-price/index.js.map +1 -1
  45. package/dist/cjs/components/shared/header-price/style.scss +9 -3
  46. package/dist/cjs/components/shared/storage/components/plan-storage.js +2 -2
  47. package/dist/cjs/components/shared/storage/components/plan-storage.js.map +1 -1
  48. package/dist/cjs/components/shared/storage/components/storage-dropdown.js +29 -6
  49. package/dist/cjs/components/shared/storage/components/storage-dropdown.js.map +1 -1
  50. package/dist/cjs/components/shared/storage/components/storage-feature-label.js +2 -1
  51. package/dist/cjs/components/shared/storage/components/storage-feature-label.js.map +1 -1
  52. package/dist/cjs/components/shared/storage/hooks/use-plan-storage.js +2 -0
  53. package/dist/cjs/components/shared/storage/hooks/use-plan-storage.js.map +1 -1
  54. package/dist/cjs/fixtures/sites-purchases.js +2 -4
  55. package/dist/cjs/fixtures/sites-purchases.js.map +1 -1
  56. package/dist/cjs/grid-context.js +4 -1
  57. package/dist/cjs/grid-context.js.map +1 -1
  58. package/dist/cjs/hooks/data-store/get-renewal-pricing-text.js +50 -0
  59. package/dist/cjs/hooks/data-store/get-renewal-pricing-text.js.map +1 -0
  60. package/dist/cjs/hooks/data-store/use-grid-plans-for-comparison-grid.js +6 -1
  61. package/dist/cjs/hooks/data-store/use-grid-plans-for-comparison-grid.js.map +1 -1
  62. package/dist/cjs/hooks/data-store/use-grid-plans-for-features-grid.js +6 -1
  63. package/dist/cjs/hooks/data-store/use-grid-plans-for-features-grid.js.map +1 -1
  64. package/dist/cjs/hooks/data-store/use-grid-plans.js +175 -21
  65. package/dist/cjs/hooks/data-store/use-grid-plans.js.map +1 -1
  66. package/dist/cjs/hooks/data-store/use-highlight-labels.js +13 -4
  67. package/dist/cjs/hooks/data-store/use-highlight-labels.js.map +1 -1
  68. package/dist/cjs/hooks/data-store/use-plan-billing-description.js +68 -13
  69. package/dist/cjs/hooks/data-store/use-plan-billing-description.js.map +1 -1
  70. package/dist/cjs/hooks/data-store/use-plan-features-for-grid-plans.js +76 -2
  71. package/dist/cjs/hooks/data-store/use-plan-features-for-grid-plans.js.map +1 -1
  72. package/dist/cjs/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js +60 -12
  73. package/dist/cjs/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js.map +1 -1
  74. package/dist/cjs/hooks/data-store/use-title-badges.js +19 -0
  75. package/dist/cjs/hooks/data-store/use-title-badges.js.map +1 -0
  76. package/dist/cjs/hooks/use-is-large-currency.js +2 -2
  77. package/dist/cjs/hooks/use-is-large-currency.js.map +1 -1
  78. package/dist/cjs/hooks/use-visible-grid-plans.js +70 -0
  79. package/dist/cjs/hooks/use-visible-grid-plans.js.map +1 -0
  80. package/dist/cjs/index.js +6 -1
  81. package/dist/cjs/index.js.map +1 -1
  82. package/dist/cjs/lib/get-plan-features-object.js +15 -2
  83. package/dist/cjs/lib/get-plan-features-object.js.map +1 -1
  84. package/dist/cjs/lib/plan-pricing-utils.js +135 -0
  85. package/dist/cjs/lib/plan-pricing-utils.js.map +1 -0
  86. package/dist/esm/_shared.scss +4 -3
  87. package/dist/esm/components/comparison-grid/index.js +100 -93
  88. package/dist/esm/components/comparison-grid/index.js.map +1 -1
  89. package/dist/esm/components/comparison-grid/style.scss +10 -2
  90. package/dist/esm/components/features-grid/client-logo-list/client-list.js +0 -12
  91. package/dist/esm/components/features-grid/client-logo-list/client-list.js.map +1 -1
  92. package/dist/esm/components/features-grid/index.js +9 -6
  93. package/dist/esm/components/features-grid/index.js.map +1 -1
  94. package/dist/esm/components/features-grid/plan-features-list.js +10 -3
  95. package/dist/esm/components/features-grid/plan-features-list.js.map +1 -1
  96. package/dist/esm/components/features-grid/plan-headers.js +3 -3
  97. package/dist/esm/components/features-grid/plan-headers.js.map +1 -1
  98. package/dist/esm/components/features-grid/plan-tagline.js +1 -1
  99. package/dist/esm/components/features-grid/plan-tagline.js.map +1 -1
  100. package/dist/esm/components/features-grid/style.scss +107 -19
  101. package/dist/esm/components/features-grid/table.js +1 -1
  102. package/dist/esm/components/features-grid/table.js.map +1 -1
  103. package/dist/esm/components/features.js +44 -5
  104. package/dist/esm/components/features.js.map +1 -1
  105. package/dist/esm/components/item.js +1 -1
  106. package/dist/esm/components/item.js.map +1 -1
  107. package/dist/esm/components/plan-button/index.js +5 -3
  108. package/dist/esm/components/plan-button/index.js.map +1 -1
  109. package/dist/esm/components/plan-button/style.scss +75 -51
  110. package/dist/esm/components/plan-div-td-container.js +4 -1
  111. package/dist/esm/components/plan-div-td-container.js.map +1 -1
  112. package/dist/esm/components/plan-logo.js +7 -4
  113. package/dist/esm/components/plan-logo.js.map +1 -1
  114. package/dist/esm/components/plan-type-selector/components/interval-type-dropdown.js +12 -1
  115. package/dist/esm/components/plan-type-selector/components/interval-type-dropdown.js.map +1 -1
  116. package/dist/esm/components/plan-type-selector/hooks/use-max-discount.js +3 -33
  117. package/dist/esm/components/plan-type-selector/hooks/use-max-discount.js.map +1 -1
  118. package/dist/esm/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js +11 -13
  119. package/dist/esm/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js.map +1 -1
  120. package/dist/esm/components/plans-2023-tooltip.js +16 -5
  121. package/dist/esm/components/plans-2023-tooltip.js.map +1 -1
  122. package/dist/esm/components/shared/action-button/index.js +22 -7
  123. package/dist/esm/components/shared/action-button/index.js.map +1 -1
  124. package/dist/esm/components/shared/action-button/style.scss +4 -0
  125. package/dist/esm/components/shared/billing-timeframe/index.js +8 -4
  126. package/dist/esm/components/shared/billing-timeframe/index.js.map +1 -1
  127. package/dist/esm/components/shared/header-price/index.js +60 -15
  128. package/dist/esm/components/shared/header-price/index.js.map +1 -1
  129. package/dist/esm/components/shared/header-price/style.scss +9 -3
  130. package/dist/esm/components/shared/storage/components/plan-storage.js +2 -2
  131. package/dist/esm/components/shared/storage/components/plan-storage.js.map +1 -1
  132. package/dist/esm/components/shared/storage/components/storage-dropdown.js +30 -7
  133. package/dist/esm/components/shared/storage/components/storage-dropdown.js.map +1 -1
  134. package/dist/esm/components/shared/storage/components/storage-feature-label.js +2 -1
  135. package/dist/esm/components/shared/storage/components/storage-feature-label.js.map +1 -1
  136. package/dist/esm/components/shared/storage/hooks/use-plan-storage.js +3 -1
  137. package/dist/esm/components/shared/storage/hooks/use-plan-storage.js.map +1 -1
  138. package/dist/esm/fixtures/sites-purchases.js +2 -4
  139. package/dist/esm/fixtures/sites-purchases.js.map +1 -1
  140. package/dist/esm/grid-context.js +4 -1
  141. package/dist/esm/grid-context.js.map +1 -1
  142. package/dist/esm/hooks/data-store/get-renewal-pricing-text.js +47 -0
  143. package/dist/esm/hooks/data-store/get-renewal-pricing-text.js.map +1 -0
  144. package/dist/esm/hooks/data-store/use-grid-plans-for-comparison-grid.js +6 -1
  145. package/dist/esm/hooks/data-store/use-grid-plans-for-comparison-grid.js.map +1 -1
  146. package/dist/esm/hooks/data-store/use-grid-plans-for-features-grid.js +6 -1
  147. package/dist/esm/hooks/data-store/use-grid-plans-for-features-grid.js.map +1 -1
  148. package/dist/esm/hooks/data-store/use-grid-plans.js +176 -22
  149. package/dist/esm/hooks/data-store/use-grid-plans.js.map +1 -1
  150. package/dist/esm/hooks/data-store/use-highlight-labels.js +14 -5
  151. package/dist/esm/hooks/data-store/use-highlight-labels.js.map +1 -1
  152. package/dist/esm/hooks/data-store/use-plan-billing-description.js +66 -11
  153. package/dist/esm/hooks/data-store/use-plan-billing-description.js.map +1 -1
  154. package/dist/esm/hooks/data-store/use-plan-features-for-grid-plans.js +77 -3
  155. package/dist/esm/hooks/data-store/use-plan-features-for-grid-plans.js.map +1 -1
  156. package/dist/esm/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js +59 -11
  157. package/dist/esm/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js.map +1 -1
  158. package/dist/esm/hooks/data-store/use-title-badges.js +17 -0
  159. package/dist/esm/hooks/data-store/use-title-badges.js.map +1 -0
  160. package/dist/esm/hooks/use-is-large-currency.js +1 -1
  161. package/dist/esm/hooks/use-is-large-currency.js.map +1 -1
  162. package/dist/esm/hooks/use-visible-grid-plans.js +66 -0
  163. package/dist/esm/hooks/use-visible-grid-plans.js.map +1 -0
  164. package/dist/esm/index.js +2 -0
  165. package/dist/esm/index.js.map +1 -1
  166. package/dist/esm/lib/get-plan-features-object.js +15 -2
  167. package/dist/esm/lib/get-plan-features-object.js.map +1 -1
  168. package/dist/esm/lib/plan-pricing-utils.js +129 -0
  169. package/dist/esm/lib/plan-pricing-utils.js.map +1 -0
  170. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  171. package/dist/tsconfig.tsbuildinfo +1 -1
  172. package/dist/types/components/comparison-grid/index.d.ts +1 -1
  173. package/dist/types/components/comparison-grid/index.d.ts.map +1 -1
  174. package/dist/types/components/features-grid/client-logo-list/client-list.d.ts.map +1 -1
  175. package/dist/types/components/features-grid/index.d.ts.map +1 -1
  176. package/dist/types/components/features-grid/plan-features-list.d.ts.map +1 -1
  177. package/dist/types/components/features-grid/plan-headers.d.ts +2 -0
  178. package/dist/types/components/features-grid/plan-headers.d.ts.map +1 -1
  179. package/dist/types/components/features-grid/table.d.ts.map +1 -1
  180. package/dist/types/components/features.d.ts.map +1 -1
  181. package/dist/types/components/item.d.ts +2 -1
  182. package/dist/types/components/item.d.ts.map +1 -1
  183. package/dist/types/components/plan-button/index.d.ts +2 -1
  184. package/dist/types/components/plan-button/index.d.ts.map +1 -1
  185. package/dist/types/components/plan-div-td-container.d.ts +2 -0
  186. package/dist/types/components/plan-div-td-container.d.ts.map +1 -1
  187. package/dist/types/components/plan-logo.d.ts.map +1 -1
  188. package/dist/types/components/plan-type-selector/components/interval-type-dropdown.d.ts.map +1 -1
  189. package/dist/types/components/plan-type-selector/hooks/use-max-discount.d.ts.map +1 -1
  190. package/dist/types/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.d.ts.map +1 -1
  191. package/dist/types/components/plans-2023-tooltip.d.ts.map +1 -1
  192. package/dist/types/components/shared/action-button/index.d.ts +2 -1
  193. package/dist/types/components/shared/action-button/index.d.ts.map +1 -1
  194. package/dist/types/components/shared/billing-timeframe/index.d.ts.map +1 -1
  195. package/dist/types/components/shared/header-price/index.d.ts.map +1 -1
  196. package/dist/types/components/shared/storage/components/storage-dropdown.d.ts.map +1 -1
  197. package/dist/types/components/shared/storage/components/storage-feature-label.d.ts.map +1 -1
  198. package/dist/types/components/shared/storage/hooks/use-plan-storage.d.ts +1 -1
  199. package/dist/types/components/shared/storage/hooks/use-plan-storage.d.ts.map +1 -1
  200. package/dist/types/fixtures/sites-purchases.d.ts +2 -4
  201. package/dist/types/fixtures/sites-purchases.d.ts.map +1 -1
  202. package/dist/types/grid-context.d.ts +4 -1
  203. package/dist/types/grid-context.d.ts.map +1 -1
  204. package/dist/types/hooks/data-store/get-renewal-pricing-text.d.ts +14 -0
  205. package/dist/types/hooks/data-store/get-renewal-pricing-text.d.ts.map +1 -0
  206. package/dist/types/hooks/data-store/types.d.ts +21 -0
  207. package/dist/types/hooks/data-store/types.d.ts.map +1 -1
  208. package/dist/types/hooks/data-store/use-grid-plans-for-comparison-grid.d.ts +1 -1
  209. package/dist/types/hooks/data-store/use-grid-plans-for-comparison-grid.d.ts.map +1 -1
  210. package/dist/types/hooks/data-store/use-grid-plans-for-features-grid.d.ts +1 -1
  211. package/dist/types/hooks/data-store/use-grid-plans-for-features-grid.d.ts.map +1 -1
  212. package/dist/types/hooks/data-store/use-grid-plans.d.ts.map +1 -1
  213. package/dist/types/hooks/data-store/use-highlight-labels.d.ts.map +1 -1
  214. package/dist/types/hooks/data-store/use-plan-billing-description.d.ts.map +1 -1
  215. package/dist/types/hooks/data-store/use-plan-features-for-grid-plans.d.ts +4 -1
  216. package/dist/types/hooks/data-store/use-plan-features-for-grid-plans.d.ts.map +1 -1
  217. package/dist/types/hooks/data-store/use-restructured-plan-features-for-comparison-grid.d.ts +4 -1
  218. package/dist/types/hooks/data-store/use-restructured-plan-features-for-comparison-grid.d.ts.map +1 -1
  219. package/dist/types/hooks/data-store/use-title-badges.d.ts +9 -0
  220. package/dist/types/hooks/data-store/use-title-badges.d.ts.map +1 -0
  221. package/dist/types/hooks/use-visible-grid-plans.d.ts +14 -0
  222. package/dist/types/hooks/use-visible-grid-plans.d.ts.map +1 -0
  223. package/dist/types/index.d.ts +7 -0
  224. package/dist/types/index.d.ts.map +1 -1
  225. package/dist/types/lib/get-plan-features-object.d.ts +1 -1
  226. package/dist/types/lib/get-plan-features-object.d.ts.map +1 -1
  227. package/dist/types/lib/plan-pricing-utils.d.ts +105 -0
  228. package/dist/types/lib/plan-pricing-utils.d.ts.map +1 -0
  229. package/dist/types/types.d.ts +29 -2
  230. package/dist/types/types.d.ts.map +1 -1
  231. package/package.json +38 -28
  232. package/src/_shared.scss +4 -3
  233. package/src/components/comparison-grid/index.tsx +258 -181
  234. package/src/components/comparison-grid/style.scss +10 -2
  235. package/src/components/features-grid/client-logo-list/client-list.tsx +0 -25
  236. package/src/components/features-grid/index.tsx +35 -18
  237. package/src/components/features-grid/plan-features-list.tsx +15 -4
  238. package/src/components/features-grid/plan-headers.tsx +10 -3
  239. package/src/components/features-grid/plan-tagline.tsx +1 -1
  240. package/src/components/features-grid/style.scss +107 -19
  241. package/src/components/features-grid/table.tsx +4 -2
  242. package/src/components/features.tsx +66 -6
  243. package/src/components/item.tsx +6 -3
  244. package/src/components/plan-button/index.tsx +7 -1
  245. package/src/components/plan-button/style.scss +75 -51
  246. package/src/components/plan-div-td-container.tsx +6 -2
  247. package/src/components/plan-logo.tsx +16 -9
  248. package/src/components/plan-type-selector/components/interval-type-dropdown.tsx +14 -1
  249. package/src/components/plan-type-selector/hooks/use-max-discount.ts +8 -47
  250. package/src/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.ts +19 -17
  251. package/src/components/plans-2023-tooltip.tsx +17 -5
  252. package/src/components/shared/action-button/index.tsx +46 -5
  253. package/src/components/shared/action-button/style.scss +4 -0
  254. package/src/components/shared/billing-timeframe/index.tsx +12 -7
  255. package/src/components/shared/header-price/index.tsx +129 -27
  256. package/src/components/shared/header-price/style.scss +9 -3
  257. package/src/components/shared/storage/components/plan-storage.tsx +2 -2
  258. package/src/components/shared/storage/components/storage-dropdown.tsx +36 -15
  259. package/src/components/shared/storage/components/storage-feature-label.tsx +2 -1
  260. package/src/components/shared/storage/hooks/use-plan-storage.ts +3 -0
  261. package/src/components/test/actions-button.tsx +5 -0
  262. package/src/components/test/billing-timeframe.tsx +1 -1
  263. package/src/components/test/header-price.tsx +342 -4
  264. package/src/fixtures/sites-purchases.ts +2 -4
  265. package/src/grid-context.tsx +9 -0
  266. package/src/hooks/data-store/get-renewal-pricing-text.ts +73 -0
  267. package/src/hooks/data-store/types.ts +21 -0
  268. package/src/hooks/data-store/use-grid-plans-for-comparison-grid.ts +10 -0
  269. package/src/hooks/data-store/use-grid-plans-for-features-grid.ts +10 -0
  270. package/src/hooks/data-store/use-grid-plans.tsx +189 -23
  271. package/src/hooks/data-store/use-highlight-labels.ts +12 -3
  272. package/src/hooks/data-store/use-plan-billing-description.tsx +80 -15
  273. package/src/hooks/data-store/use-plan-features-for-grid-plans.ts +135 -1
  274. package/src/hooks/data-store/use-restructured-plan-features-for-comparison-grid.ts +93 -20
  275. package/src/hooks/data-store/use-title-badges.ts +31 -0
  276. package/src/hooks/test/use-visible-grid-plans.tsx +116 -0
  277. package/src/hooks/use-is-large-currency.ts +1 -1
  278. package/src/hooks/use-visible-grid-plans.tsx +102 -0
  279. package/src/index.tsx +18 -0
  280. package/src/lib/get-plan-features-object.ts +23 -2
  281. package/src/lib/plan-pricing-utils.ts +211 -0
  282. package/src/lib/test/plan-pricing-utils.ts +594 -0
  283. package/src/style-imports.d.ts +3 -0
  284. package/src/types.ts +41 -0
  285. package/dist/cjs/components/features-grid/mobile-free-domain.js +0 -25
  286. package/dist/cjs/components/features-grid/mobile-free-domain.js.map +0 -1
  287. package/dist/cjs/lib/get-plan-pricing-info-from-grid-plans.js +0 -15
  288. package/dist/cjs/lib/get-plan-pricing-info-from-grid-plans.js.map +0 -1
  289. package/dist/esm/components/features-grid/mobile-free-domain.js +0 -23
  290. package/dist/esm/components/features-grid/mobile-free-domain.js.map +0 -1
  291. package/dist/esm/lib/get-plan-pricing-info-from-grid-plans.js +0 -12
  292. package/dist/esm/lib/get-plan-pricing-info-from-grid-plans.js.map +0 -1
  293. package/dist/types/components/features-grid/mobile-free-domain.d.ts +0 -8
  294. package/dist/types/components/features-grid/mobile-free-domain.d.ts.map +0 -1
  295. package/dist/types/lib/get-plan-pricing-info-from-grid-plans.d.ts +0 -9
  296. package/dist/types/lib/get-plan-pricing-info-from-grid-plans.d.ts.map +0 -1
  297. package/src/components/features-grid/mobile-free-domain.tsx +0 -51
  298. package/src/lib/get-plan-pricing-info-from-grid-plans.ts +0 -31
@@ -1 +1 @@
1
- {"version":3,"file":"use-plan-billing-description.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-billing-description.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-plan-billing-description.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-billing-description.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,52 @@
1
- import { FEATURE_CUSTOM_DOMAIN, applyTestFiltersToPlansList, isMonthly, } from '@automattic/calypso-products';
1
+ import { FEATURE_AI_ASSISTANT, FEATURE_AI_WEBSITE_BUILDER, FEATURE_AI_WRITER_DESIGNER, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_CUSTOM_DOMAIN, FEATURE_EMAIL_MARKETING, FEATURE_ENHANCED_AI_ASSISTANT_AND_TOOLS, FEATURE_GUIDED_WEBSITE_BUILDER, FEATURE_SIMPLE_PAYMENTS, FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR, applyTestFiltersToPlansList, isBusinessPlan, isMonthly, isPersonalPlan, isPremiumPlan, } from '@automattic/calypso-products';
2
2
  import { useMemo } from '@wordpress/element';
3
+ import { useTranslate } from 'i18n-calypso';
3
4
  import getPlanFeaturesObject from '../../lib/get-plan-features-object';
4
5
  import useHighlightedFeatures from './use-highlighted-features';
6
+ function isPremiumWebsiteBuilderPillFeature(featureSlug) {
7
+ return (featureSlug === FEATURE_AI_WEBSITE_BUILDER ||
8
+ featureSlug === FEATURE_GUIDED_WEBSITE_BUILDER ||
9
+ featureSlug === FEATURE_AI_WRITER_DESIGNER);
10
+ }
11
+ function isBusinessAssistantPillFeature(featureSlug) {
12
+ return (featureSlug === FEATURE_ENHANCED_AI_ASSISTANT_AND_TOOLS ||
13
+ featureSlug === FEATURE_AI_ASSISTANT ||
14
+ featureSlug === FEATURE_BUILT_IN_SITE_ASSISTANT ||
15
+ featureSlug === FEATURE_AI_WRITER_DESIGNER);
16
+ }
17
+ function getPricingDifferentiationFeatureBadgeText(planSlug, featureSlug, translate, options) {
18
+ const suppressAiPills = options?.suppressAiPills ?? false;
19
+ if (isPersonalPlan(planSlug) && featureSlug === FEATURE_CUSTOM_DOMAIN) {
20
+ return translate('Free');
21
+ }
22
+ if (!suppressAiPills &&
23
+ isPremiumPlan(planSlug) &&
24
+ isPremiumWebsiteBuilderPillFeature(featureSlug)) {
25
+ return translate('AI');
26
+ }
27
+ if (isPremiumPlan(planSlug) && featureSlug === FEATURE_SIMPLE_PAYMENTS) {
28
+ return translate('New');
29
+ }
30
+ if (!suppressAiPills &&
31
+ isBusinessPlan(planSlug) &&
32
+ isBusinessAssistantPillFeature(featureSlug)) {
33
+ return translate('AI');
34
+ }
35
+ if (isBusinessPlan(planSlug) && featureSlug === FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR) {
36
+ return translate('Email');
37
+ }
38
+ if (isBusinessPlan(planSlug) && featureSlug === FEATURE_EMAIL_MARKETING) {
39
+ return translate('New');
40
+ }
41
+ return undefined;
42
+ }
5
43
  /**
6
44
  * usePlanFeaturesForGridPlans:
7
45
  * - these plan features are mainly relevant to FeaturesGrid and Spotlight components
8
46
  * - this hook can migrate to data store once features definitions migrate to calypso-products
9
47
  */
10
- const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, isInSignup, }) => {
48
+ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, isInSignup, useVar42NoAiFeatures, showPricingDifferentiationFeaturePills, isExperimentVariant, }) => {
49
+ const translate = useTranslate();
11
50
  const highlightedFeatures = useHighlightedFeatures({ intent: intent ?? null, isInSignup });
12
51
  return useMemo(() => {
13
52
  return gridPlans.reduce((acc, gridPlan) => {
@@ -16,7 +55,13 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
16
55
  const isMonthlyPlan = isMonthly(planSlug);
17
56
  let wpcomFeatures = [];
18
57
  let jetpackFeatures = [];
19
- if ('plans-newsletter' === intent) {
58
+ if (useVar42NoAiFeatures) {
59
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj?.getVar42NoAiSignupWpcomFeatures?.() ??
60
+ planConstantObj?.get2023PricingGridSignupWpcomFeatures?.() ??
61
+ [], isExperimentVariant ?? true);
62
+ jetpackFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.() ?? [], isExperimentVariant ?? true);
63
+ }
64
+ else if ('plans-newsletter' === intent) {
20
65
  wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj?.getNewsletterSignupFeatures?.() ?? []);
21
66
  }
22
67
  else if ('plans-p2' === intent) {
@@ -43,6 +88,20 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
43
88
  });
44
89
  }
45
90
  }
91
+ else if ('plans-wordpress-hosting' === intent) {
92
+ // Use visual split features for WordPress hosting intent
93
+ if (planConstantObj?.getVisualSplitBusinessFeatures) {
94
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.getVisualSplitBusinessFeatures() ?? []);
95
+ }
96
+ else if (planConstantObj?.getVisualSplitCommerceFeatures) {
97
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.getVisualSplitCommerceFeatures() ?? []);
98
+ }
99
+ else {
100
+ // Fallback to default features if visual split features aren't available
101
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj?.get2023PricingGridSignupWpcomFeatures?.() ?? []);
102
+ }
103
+ jetpackFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.() ?? []);
104
+ }
46
105
  else {
47
106
  wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj?.get2023PricingGridSignupWpcomFeatures?.() ?? []);
48
107
  jetpackFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.() ?? []);
@@ -97,12 +156,23 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
97
156
  return;
98
157
  }
99
158
  const availableOnlyForAnnualPlans = annualPlansOnlyFeatures.includes(feature.getSlug());
159
+ const featureSlug = feature.getSlug();
160
+ const badgeText = showPricingDifferentiationFeaturePills
161
+ ? getPricingDifferentiationFeatureBadgeText(planSlug, featureSlug, translate, {
162
+ suppressAiPills: useVar42NoAiFeatures,
163
+ })
164
+ : undefined;
100
165
  wpcomFeaturesTransformed.push({
101
166
  ...feature,
102
167
  availableOnlyForAnnualPlans,
103
168
  availableForCurrentPlan: !isMonthlyPlan || !availableOnlyForAnnualPlans,
169
+ ...(badgeText && { badgeText }),
104
170
  });
105
171
  });
172
+ if (wpcomFeaturesTransformed.length > 0 && isExperimentVariant) {
173
+ const lastIndex = wpcomFeaturesTransformed.length - 1;
174
+ wpcomFeaturesTransformed[lastIndex].isExperimentLastFeature = true;
175
+ }
106
176
  }
107
177
  const storageFeature = planConstantObj.getStorageFeature?.(showLegacyStorageFeature, gridPlan.current);
108
178
  return {
@@ -124,6 +194,10 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
124
194
  showLegacyStorageFeature,
125
195
  allFeaturesList,
126
196
  hasRedeemedDomainCredit,
197
+ useVar42NoAiFeatures,
198
+ showPricingDifferentiationFeaturePills,
199
+ isExperimentVariant,
200
+ translate,
127
201
  ]);
128
202
  };
129
203
  export default usePlanFeaturesForGridPlans;
@@ -1 +1 @@
1
- {"version":3,"file":"use-plan-features-for-grid-plans.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-features-for-grid-plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-plan-features-for-grid-plans.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-features-for-grid-plans.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  import { applyTestFiltersToPlansList, isMonthly, isWooExpressPlan, FEATURE_CUSTOM_DOMAIN, } from '@automattic/calypso-products';
2
- import { useMemo } from 'react';
2
+ import { useMemo } from '@wordpress/element';
3
3
  import getPlanFeaturesObject from '../../lib/get-plan-features-object';
4
4
  import usePlanFeaturesForGridPlans from './use-plan-features-for-grid-plans';
5
- const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, }) => {
5
+ const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, useVar42NoAiFeatures, showPricingDifferentiationFeaturePills, isExperimentVariant, }) => {
6
6
  const planFeaturesForGridPlans = usePlanFeaturesForGridPlans({
7
7
  gridPlans,
8
8
  allFeaturesList,
9
9
  intent,
10
10
  selectedFeature,
11
11
  showLegacyStorageFeature,
12
+ useVar42NoAiFeatures,
13
+ showPricingDifferentiationFeaturePills,
14
+ isExperimentVariant,
12
15
  });
13
16
  return useMemo(() => {
14
17
  let previousPlan = null;
@@ -18,13 +21,49 @@ const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesLi
18
21
  const planConstantObj = applyTestFiltersToPlansList(planSlug, undefined);
19
22
  const annualPlansOnlyFeatures = planConstantObj.getAnnualPlansOnlyFeatures?.();
20
23
  const isMonthlyPlan = isMonthly(planSlug);
21
- const wpcomFeatures = planConstantObj.get2023PlanComparisonFeatureOverride?.().length
22
- ? getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PlanComparisonFeatureOverride().slice())
23
- : getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupWpcomFeatures?.().slice());
24
- const jetpackFeatures = planConstantObj.get2023PlanComparisonJetpackFeatureOverride?.()
25
- .length
26
- ? getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PlanComparisonJetpackFeatureOverride().slice())
27
- : getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.().slice());
24
+ let wpcomFeatures;
25
+ // Plans differentiators (non-control): use experiment comparison override when present.
26
+ if (isExperimentVariant &&
27
+ planConstantObj.get2023PlanComparisonFeatureOverrideForExperiment?.()?.length) {
28
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PlanComparisonFeatureOverrideForExperiment().slice(), isExperimentVariant);
29
+ }
30
+ else if (
31
+ // Check if there's a specific override for comparison
32
+ planConstantObj.get2023PlanComparisonFeatureOverride?.().length) {
33
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PlanComparisonFeatureOverride().slice());
34
+ }
35
+ else if ('plans-wordpress-hosting' === intent) {
36
+ // Use visual split features for WordPress hosting intent
37
+ if (planConstantObj?.getVisualSplitBusinessFeatures) {
38
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.getVisualSplitBusinessFeatures().slice());
39
+ }
40
+ else if (planConstantObj?.getVisualSplitCommerceFeatures) {
41
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.getVisualSplitCommerceFeatures().slice());
42
+ }
43
+ else {
44
+ // Fallback to default features
45
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupWpcomFeatures?.().slice());
46
+ }
47
+ }
48
+ else {
49
+ // Default case
50
+ wpcomFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupWpcomFeatures?.().slice());
51
+ }
52
+ // Plans Differentiators Experiment: For comparison grid, use dedicated experiment override function
53
+ // when in an experiment variant for Jetpack features.
54
+ // Note: We check if the function exists, not if it returns a non-empty array, because an empty array
55
+ // is a valid return value (meaning "show no Jetpack features").
56
+ let jetpackFeatures;
57
+ if (isExperimentVariant &&
58
+ planConstantObj.get2023PlanComparisonJetpackFeatureOverrideForExperiment) {
59
+ jetpackFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PlanComparisonJetpackFeatureOverrideForExperiment().slice(), isExperimentVariant);
60
+ }
61
+ else if (planConstantObj.get2023PlanComparisonJetpackFeatureOverride?.().length) {
62
+ jetpackFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PlanComparisonJetpackFeatureOverride().slice());
63
+ }
64
+ else {
65
+ jetpackFeatures = getPlanFeaturesObject(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.().slice());
66
+ }
28
67
  const wpcomFeaturesTransformed = annualPlansOnlyFeatures
29
68
  ? wpcomFeatures?.map((feature) => {
30
69
  const availableOnlyForAnnualPlans = annualPlansOnlyFeatures.includes(feature.getSlug());
@@ -76,12 +115,21 @@ const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesLi
76
115
  ...previousPlanFeatures.jetpackFeatures,
77
116
  ],
78
117
  storageFeature: planFeaturesForGridPlans[planSlug].storageFeature,
79
- comparisonGridFeatureLabels: planConstantObj.getPlanComparisonFeatureLabels?.(),
118
+ comparisonGridFeatureLabels: planConstantObj.getPlanComparisonFeatureLabels?.({
119
+ isExperimentVariant,
120
+ }),
80
121
  };
81
122
  previousPlan = planSlug;
82
123
  }
83
124
  return planFeatureMap;
84
- }, [gridPlans, allFeaturesList, planFeaturesForGridPlans, intent, hasRedeemedDomainCredit]);
125
+ }, [
126
+ gridPlans,
127
+ allFeaturesList,
128
+ planFeaturesForGridPlans,
129
+ intent,
130
+ hasRedeemedDomainCredit,
131
+ isExperimentVariant,
132
+ ]);
85
133
  };
86
134
  export default useRestructuredPlanFeaturesForComparisonGrid;
87
135
  //# sourceMappingURL=use-restructured-plan-features-for-comparison-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-restructured-plan-features-for-comparison-grid.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-restructured-plan-features-for-comparison-grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-restructured-plan-features-for-comparison-grid.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-restructured-plan-features-for-comparison-grid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { isWooHostedBasicPlan } from '@automattic/calypso-products';
2
+ import { useTranslate } from 'i18n-calypso';
3
+ const useTitleBadges = ({ intent, planSlugs }) => {
4
+ const translate = useTranslate();
5
+ return planSlugs.reduce((acc, planSlug) => {
6
+ let label;
7
+ if ('plans-woo-hosted' === intent && isWooHostedBasicPlan(planSlug)) {
8
+ label = translate('Recommended');
9
+ }
10
+ return {
11
+ ...acc,
12
+ [planSlug]: label ?? null,
13
+ };
14
+ }, {});
15
+ };
16
+ export default useTitleBadges;
17
+ //# sourceMappingURL=use-title-badges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-title-badges.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-title-badges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAiB,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,cAAc,GAAG,CAAE,EAAE,MAAM,EAAE,SAAS,EAAS,EAAG,EAAE;IACzD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,OAAO,SAAS,CAAC,MAAM,CACtB,CAAE,GAAG,EAAE,QAAQ,EAAG,EAAE;QACnB,IAAI,KAAK,CAAC;QAEV,IAAK,kBAAkB,KAAK,MAAM,IAAI,oBAAoB,CAAE,QAAQ,CAAE,EAAG,CAAC;YACzE,KAAK,GAAG,SAAS,CAAE,aAAa,CAAE,CAAC;QACpC,CAAC;QAED,OAAO;YACN,GAAG,GAAG;YACN,CAAE,QAAQ,CAAE,EAAE,KAAK,IAAI,IAAI;SAC3B,CAAC;IACH,CAAC,EACD,EAAgD,CAChD,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { formatCurrency } from '@automattic/number-formatters';
1
2
  import { useMemo } from '@wordpress/element';
2
- import { formatCurrency } from 'i18n-calypso';
3
3
  const LARGE_ADD_ON_CURRENCY_CHAR_THRESHOLD = 7;
4
4
  const LARGE_CURRENCY_CHAR_THRESHOLD = 6;
5
5
  const LARGE_CURRENCY_COMBINED_CHAR_THRESHOLD = 9;
@@ -1 +1 @@
1
- {"version":3,"file":"use-is-large-currency.js","sourceRoot":"","sources":["../../../src/hooks/use-is-large-currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAC/C,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,sCAAsC,GAAG,CAAC,CAAC;AASjD,SAAS,gBAAgB,CAAE,YAAoB,EAAE,MAAiB,EAAE,gBAAgB,GAAG,KAAK;IAC3F;;;;OAIG;IAEH,OAAO,OAAO,CACb,GAAG,EAAE,CACJ,MAAM,EAAE,GAAG,CAAE,CAAE,KAAK,EAAG,EAAE;QACxB,MAAM,YAAY,GAAG,cAAc,CAAE,KAAK,EAAE,YAAY,EAAE;YACzD,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;SACpB,CAAE,CAAC;QAEJ,OAAO,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5E,CAAC,CAAE,EACJ,CAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAE,CAC1C,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAE,aAAwB,EAAE,OAAO,GAAG,KAAK;IAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACjG,OAAO,CAAC,CAAE,aAAa,EAAE,IAAI,CAAE,CAAE,KAAK,EAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAE,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAS,iCAAiC,CAAE,aAAwB;IACnE,IAAK,CAAE,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;QACnD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAG,CAAC;QACrD,MAAM,aAAa,GAAG,aAAa,CAAE,CAAC,CAAE,CAAC;QACzC,MAAM,eAAe,GAAG,aAAa,CAAE,CAAC,GAAG,CAAC,CAAE,CAAC;QAE/C,IAAK,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,sCAAsC,EAAG,CAAC;YAC9F,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAE,EAC3C,MAAM,EACN,OAAO,GAAG,KAAK,EACf,YAAY,EACZ,gBAAgB,GAAG,KAAK,GACjB;IACP;;;;;;;;;;OAUG;IACH,MAAM,aAAa,GAAG,gBAAgB,CAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAE,CAAC;IACjF,MAAM,qBAAqB,GAAG,yBAAyB,CAAE,aAAa,EAAE,OAAO,CAAE,CAAC;IAClF,MAAM,6BAA6B,GAAG,iCAAiC,CAAE,aAAa,CAAE,CAAC;IAEzF,OAAO,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,IAAI,6BAA6B,CAAC;AACjG,CAAC"}
1
+ {"version":3,"file":"use-is-large-currency.js","sourceRoot":"","sources":["../../../src/hooks/use-is-large-currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAC/C,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,sCAAsC,GAAG,CAAC,CAAC;AASjD,SAAS,gBAAgB,CAAE,YAAoB,EAAE,MAAiB,EAAE,gBAAgB,GAAG,KAAK;IAC3F;;;;OAIG;IAEH,OAAO,OAAO,CACb,GAAG,EAAE,CACJ,MAAM,EAAE,GAAG,CAAE,CAAE,KAAK,EAAG,EAAE;QACxB,MAAM,YAAY,GAAG,cAAc,CAAE,KAAK,EAAE,YAAY,EAAE;YACzD,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI;SACpB,CAAE,CAAC;QAEJ,OAAO,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5E,CAAC,CAAE,EACJ,CAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAE,CAC1C,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAE,aAAwB,EAAE,OAAO,GAAG,KAAK;IAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACjG,OAAO,CAAC,CAAE,aAAa,EAAE,IAAI,CAAE,CAAE,KAAK,EAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAE,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAS,iCAAiC,CAAE,aAAwB;IACnE,IAAK,CAAE,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;QACnD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAG,CAAC;QACrD,MAAM,aAAa,GAAG,aAAa,CAAE,CAAC,CAAE,CAAC;QACzC,MAAM,eAAe,GAAG,aAAa,CAAE,CAAC,GAAG,CAAC,CAAE,CAAC;QAE/C,IAAK,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,sCAAsC,EAAG,CAAC;YAC9F,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAE,EAC3C,MAAM,EACN,OAAO,GAAG,KAAK,EACf,YAAY,EACZ,gBAAgB,GAAG,KAAK,GACjB;IACP;;;;;;;;;;OAUG;IACH,MAAM,aAAa,GAAG,gBAAgB,CAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAE,CAAC;IACjF,MAAM,qBAAqB,GAAG,yBAAyB,CAAE,aAAa,EAAE,OAAO,CAAE,CAAC;IAClF,MAAM,6BAA6B,GAAG,iCAAiC,CAAE,aAAa,CAAE,CAAC;IAEzF,OAAO,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,IAAI,6BAA6B,CAAC;AACjG,CAAC"}
@@ -0,0 +1,66 @@
1
+ // hooks/use-visible-grid-plans.ts
2
+ import { getPlanClass } from '@automattic/calypso-products';
3
+ import { Plans } from '@automattic/data-stores';
4
+ import { useState, useEffect } from 'react';
5
+ import { usePlansGridContext } from '../grid-context';
6
+ import usePlanBillingPeriod from './data-store/use-plan-billing-period';
7
+ export function useVisibleGridPlans({ gridSize, currentSitePlanSlug, siteId, intervalType, }) {
8
+ const [visibleGridPlans, setVisibleGridPlans] = useState([]);
9
+ const { gridPlans, gridPlansIndex } = usePlansGridContext();
10
+ const currentPlanTerm = Plans.useCurrentPlanTerm({ siteId });
11
+ const selectedPlanTerm = usePlanBillingPeriod({ intervalType });
12
+ useEffect(() => {
13
+ setVisibleGridPlans((previousGridPlans) => {
14
+ let visibleLength = gridPlans.length;
15
+ switch (gridSize) {
16
+ case 'large':
17
+ visibleLength = 4;
18
+ break;
19
+ case 'medium':
20
+ visibleLength = 3;
21
+ break;
22
+ case 'smedium':
23
+ case 'small':
24
+ visibleLength = 2;
25
+ break;
26
+ }
27
+ // Find the user's current plan in the current term
28
+ const usersGridPlanFromSelectedTerm = currentSitePlanSlug
29
+ ? gridPlans.find((gridPlan) => getPlanClass(gridPlan.planSlug) === getPlanClass(currentSitePlanSlug))
30
+ : null;
31
+ // Check if previous state is stale
32
+ const isPreviousGridPlansStale = previousGridPlans.some((plan) => !gridPlansIndex[plan.planSlug]);
33
+ let nextGridPlans = previousGridPlans;
34
+ if (previousGridPlans.length !== visibleLength) {
35
+ nextGridPlans = gridPlans.slice(0, visibleLength);
36
+ }
37
+ else if (isPreviousGridPlansStale) {
38
+ // Map existing plans to their new term equivalents, preserving order
39
+ nextGridPlans = previousGridPlans.map((plan) => {
40
+ const gridPlan = gridPlans.find((gridPlan) => getPlanClass(gridPlan.planSlug) === getPlanClass(plan.planSlug));
41
+ return gridPlan ?? plan;
42
+ });
43
+ }
44
+ // Ensure current plan is visible
45
+ if (usersGridPlanFromSelectedTerm) {
46
+ const isCurrentPlanVisible = nextGridPlans.some((plan) => getPlanClass(plan.planSlug) === getPlanClass(usersGridPlanFromSelectedTerm.planSlug));
47
+ if (!isCurrentPlanVisible) {
48
+ nextGridPlans = [usersGridPlanFromSelectedTerm, ...nextGridPlans].slice(0, visibleLength);
49
+ }
50
+ }
51
+ return nextGridPlans;
52
+ });
53
+ }, [
54
+ gridSize,
55
+ gridPlans,
56
+ currentSitePlanSlug,
57
+ currentPlanTerm,
58
+ selectedPlanTerm,
59
+ gridPlansIndex,
60
+ ]);
61
+ return {
62
+ visibleGridPlans,
63
+ setVisibleGridPlans,
64
+ };
65
+ }
66
+ //# sourceMappingURL=use-visible-grid-plans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-visible-grid-plans.js","sourceRoot":"","sources":["../../../src/hooks/use-visible-grid-plans.tsx"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -14,6 +14,7 @@ import usePlanFeaturesForGridPlans from './hooks/data-store/use-plan-features-fo
14
14
  import usePlansFromTypes from './hooks/data-store/use-plans-from-types';
15
15
  import useRestructuredPlanFeaturesForComparisonGrid from './hooks/data-store/use-restructured-plan-features-for-comparison-grid';
16
16
  import { useManageTooltipToggle } from './hooks/use-manage-tooltip-toggle';
17
+ import { getPlanPriceForDuration, calculateDiscountPercentage, fromPricingMetaForGridPlan, fromVariantPriceData, } from './lib/plan-pricing-utils';
17
18
  /**
18
19
  * Components
19
20
  */
@@ -26,4 +27,5 @@ export { useManageTooltipToggle, useGridPlans, useGridPlansForFeaturesGrid, useG
26
27
  * Constants
27
28
  */
28
29
  export { EFFECTIVE_TERMS_LIST };
30
+ export { getPlanPriceForDuration, calculateDiscountPercentage, fromPricingMetaForGridPlan, fromVariantPriceData, };
29
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AACrF,OAAO,YAAY,EAAE,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,oBAAoB,MAAM,4CAA4C,CAAC;AAC9E,OAAO,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,iBAAiB,MAAM,yCAAyC,CAAC;AACxE,OAAO,4CAA4C,MAAM,uEAAuE,CAAC;AACjI,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAO3E;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAExF;;GAEG;AACH,OAAO,EACN,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,4CAA4C,GAC5C,CAAC;AAEF;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AACrF,OAAO,YAAY,EAAE,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,OAAO,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,oBAAoB,MAAM,4CAA4C,CAAC;AAC9E,OAAO,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,iBAAiB,MAAM,yCAAyC,CAAC;AACxE,OAAO,4CAA4C,MAAM,uEAAuE,CAAC;AACjI,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EACN,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,GACpB,MAAM,0BAA0B,CAAC;AAQlC;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAExF;;GAEG;AACH,OAAO,EACN,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,4CAA4C,GAC5C,CAAC;AAEF;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAMhC,OAAO,EACN,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,GACpB,CAAC"}
@@ -1,9 +1,22 @@
1
1
  // TODO: Temporary until feature definitions are ported to calypso-products package
2
- const getPlanFeaturesObject = (featuresList, planFeatures) => {
2
+ const getPlanFeaturesObject = (featuresList, planFeatures, isExperimentVariant) => {
3
3
  if (!planFeatures) {
4
4
  return [];
5
5
  }
6
- return planFeatures.map((featuresConst) => featuresList[featuresConst]);
6
+ return planFeatures.map((featuresConst) => {
7
+ const feature = featuresList[featuresConst];
8
+ if (!feature || !isExperimentVariant) {
9
+ return feature;
10
+ }
11
+ // Wrap feature methods to pass isExperimentVariant parameter
12
+ return {
13
+ ...feature,
14
+ getTitle: (params) => feature.getTitle({ ...params, isExperimentVariant }),
15
+ ...(feature.getDescription && {
16
+ getDescription: (params) => feature.getDescription({ ...params, isExperimentVariant }),
17
+ }),
18
+ };
19
+ });
7
20
  };
8
21
  export default getPlanFeaturesObject;
9
22
  //# sourceMappingURL=get-plan-features-object.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-plan-features-object.js","sourceRoot":"","sources":["../../../src/lib/get-plan-features-object.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,qBAAqB,GAAG,CAAE,YAAyB,EAAE,YAA8B,EAAG,EAAE;IAC7F,IAAK,CAAE,YAAY,EAAG,CAAC;QACtB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAE,CAAE,aAAa,EAAG,EAAE,CAAC,YAAY,CAAE,aAAa,CAAE,CAAE,CAAC;AAC/E,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"get-plan-features-object.js","sourceRoot":"","sources":["../../../src/lib/get-plan-features-object.ts"],"names":[],"mappings":"AAIA,mFAAmF;AACnF,MAAM,qBAAqB,GAAG,CAC7B,YAAyB,EACzB,YAA8B,EAC9B,mBAA6B,EAC5B,EAAE;IACH,IAAK,CAAE,YAAY,EAAG,CAAC;QACtB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,CAAE,CAAE,aAAa,EAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,YAAY,CAAE,aAAa,CAAE,CAAC;QAC9C,IAAK,CAAE,OAAO,IAAI,CAAE,mBAAmB,EAAG,CAAC;YAC1C,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,6DAA6D;QAC7D,OAAO;YACN,GAAG,OAAO;YACV,QAAQ,EAAE,CAAE,MAA4B,EAAG,EAAE,CAC5C,OAAO,CAAC,QAAQ,CAAE,EAAE,GAAG,MAAM,EAAE,mBAAmB,EAAE,CAAE;YACvD,GAAG,CAAE,OAAO,CAAC,cAAc,IAAI;gBAC9B,cAAc,EAAE,CAAE,MAA4B,EAAG,EAAE,CAClD,OAAO,CAAC,cAAe,CAAE,EAAE,GAAG,MAAM,EAAE,mBAAmB,EAAE,CAAE;aAC9D,CAAE;SACH,CAAC;IACH,CAAC,CAAE,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,129 @@
1
+ // billingPeriod values are in days (from PERIOD_LIST in calypso-products)
2
+ const BILLING_PERIOD_DAYS_TO_MONTHS = {
3
+ 31: 1,
4
+ 365: 12,
5
+ 730: 24,
6
+ 1095: 36,
7
+ };
8
+ function billingPeriodDaysToMonths(billingPeriod) {
9
+ if (billingPeriod === undefined || billingPeriod === null) {
10
+ return null;
11
+ }
12
+ return BILLING_PERIOD_DAYS_TO_MONTHS[billingPeriod] ?? null;
13
+ }
14
+ /**
15
+ * Calculates the total cost of a plan over `durationMonths` months.
16
+ *
17
+ * Handles partial billing periods via pro-ration (e.g. a yearly plan priced at
18
+ * $200/year costs $100 for 6 months).
19
+ *
20
+ * When `useIntroOffer` is true (default) and an active intro offer exists, the
21
+ * intro price is applied for the first `introOffer.durationMonths` months, and
22
+ * the regular (or discounted) price for the remainder.
23
+ *
24
+ * @example
25
+ * // Monthly plan: $10 intro for 1 month, then $20/month; cost for 6 months:
26
+ * // 1×$10 + 5×$20 = $110 (in cents: 1100 + 10000 = 11000)
27
+ * getPlanPriceForDuration( info, 6, { useIntroOffer: true } ) // 11000
28
+ *
29
+ * @example
30
+ * // Yearly plan: $100/yr intro, $200/yr regular; cost for 6 months:
31
+ * // useIntroOffer=true → 6×($100/12) = $50 (5000 cents)
32
+ * // useIntroOffer=false → 6×($200/12) = $100 (10000 cents)
33
+ */
34
+ export function getPlanPriceForDuration(info, durationMonths, { useIntroOffer = true } = {}) {
35
+ const basePricePerMonth = info.discountedPricePerMonth ?? info.regularPricePerMonth;
36
+ if (useIntroOffer && info.introOffer?.isActive) {
37
+ const introMonths = Math.min(durationMonths, info.introOffer.durationMonths);
38
+ const regularMonths = Math.max(0, durationMonths - info.introOffer.durationMonths);
39
+ return introMonths * info.introOffer.pricePerMonth + regularMonths * basePricePerMonth;
40
+ }
41
+ return durationMonths * basePricePerMonth;
42
+ }
43
+ /**
44
+ * Calculates the percentage discount between a reference price and a cheaper price.
45
+ *
46
+ * Always uses Math.floor — conservative, never overstates savings.
47
+ *
48
+ * Returns `undefined` (not 0) when there is no saving, allowing callers to
49
+ * distinguish "no discount" from a computed "0% discount".
50
+ */
51
+ export function calculateDiscountPercentage(referencePrice, cheaperPrice) {
52
+ if (cheaperPrice >= referencePrice || referencePrice <= 0) {
53
+ return undefined;
54
+ }
55
+ return Math.floor((100 * (referencePrice - cheaperPrice)) / referencePrice);
56
+ }
57
+ /**
58
+ * Converts a `PricingMetaForGridPlan` (from @automattic/data-stores Plans hooks)
59
+ * into a `PlanPriceInfo` suitable for use with `getPlanPriceForDuration` and
60
+ * `calculateDiscountPercentage`.
61
+ *
62
+ * Returns null when required pricing data is absent (e.g. free/enterprise plans
63
+ * that have no monthly price, or plans whose billing period is unknown).
64
+ */
65
+ export function fromPricingMetaForGridPlan(meta) {
66
+ const termMonths = billingPeriodDaysToMonths(meta.billingPeriod);
67
+ if (termMonths === null || meta.originalPrice.monthly === null) {
68
+ return null;
69
+ }
70
+ const isIntroActive = !!meta.introOffer && !meta.introOffer.isOfferComplete;
71
+ return {
72
+ termMonths,
73
+ regularPricePerMonth: meta.originalPrice.monthly,
74
+ // The API sometimes sets discountedPrice.monthly to the intro offer price rather than
75
+ // a genuine site-level discount (e.g. currency conversion, proration credit). When an
76
+ // intro offer is active the intro structure already captures the discounted period, so
77
+ // using discountedPrice here would contaminate the post-intro "regular" rate used by
78
+ // getPlanPriceForDuration — producing incorrect totals for the non-intro months.
79
+ discountedPricePerMonth: isIntroActive ? undefined : meta.discountedPrice.monthly ?? undefined,
80
+ introOffer: meta.introOffer
81
+ ? {
82
+ pricePerMonth: meta.introOffer.rawPrice.monthly,
83
+ durationMonths: meta.introOffer.intervalCount * (meta.introOffer.intervalUnit === 'year' ? 12 : 1),
84
+ isActive: isIntroActive,
85
+ }
86
+ : undefined,
87
+ };
88
+ }
89
+ /**
90
+ * Converts a variant price data object (structurally compatible with
91
+ * `WPCOMProductVariant`) into a `PlanPriceInfo`.
92
+ *
93
+ * `discountedPricePerMonth` is intentionally not set: `WPCOMProductVariant`
94
+ * does not separate site-level discounts from the intro price. Coupon discounts
95
+ * in checkout are tracked separately via `product.coupon_savings_integer`.
96
+ *
97
+ * Per-month values are derived by dividing full-term prices (integers in the
98
+ * smallest currency unit) by the number of months. The result is rounded to the
99
+ * nearest integer (Math.round) so that all fields in the returned `PlanPriceInfo`
100
+ * remain whole-cent values safe for use with currency formatters. The rounding
101
+ * error is at most 0.5¢ per month and is negligible for percentage comparisons.
102
+ */
103
+ export function fromVariantPriceData(variant) {
104
+ const { termIntervalInMonths: termMonths, priceBeforeDiscounts, priceInteger, introductoryInterval, introductoryTerm, } = variant;
105
+ const regularPricePerMonth = Math.round(priceBeforeDiscounts / termMonths);
106
+ const introDurationMonths = introductoryInterval > 0 ? introductoryInterval * (introductoryTerm === 'year' ? 12 : 1) : 0;
107
+ let introOffer;
108
+ if (introDurationMonths > 0 && priceInteger < priceBeforeDiscounts) {
109
+ // When the intro spans the full term (introDurationMonths >= termMonths), all of
110
+ // priceInteger is at the intro rate and there are zero non-intro months.
111
+ // When the intro is shorter than the term (introDurationMonths < termMonths), we
112
+ // subtract the non-intro portion (billed at the regular rate) to isolate the intro cost.
113
+ const nonIntroMonths = Math.max(0, termMonths - introDurationMonths);
114
+ const introPriceTotal = priceInteger - nonIntroMonths * regularPricePerMonth;
115
+ // A non-positive introPriceTotal means inconsistent data (e.g. a sub-term intro
116
+ // with a priceInteger that is less than the non-intro months at the regular rate).
117
+ if (introPriceTotal > 0) {
118
+ // When introDurationMonths > termMonths the whole billing term is within the
119
+ // intro period, so we spread introPriceTotal over termMonths (not introDurationMonths).
120
+ introOffer = {
121
+ pricePerMonth: Math.round(introPriceTotal / Math.min(introDurationMonths, termMonths)),
122
+ durationMonths: introDurationMonths,
123
+ isActive: true,
124
+ };
125
+ }
126
+ }
127
+ return { termMonths, regularPricePerMonth, introOffer };
128
+ }
129
+ //# sourceMappingURL=plan-pricing-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-pricing-utils.js","sourceRoot":"","sources":["../../../src/lib/plan-pricing-utils.ts"],"names":[],"mappings":"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"}