@automattic/plans-grid-next 1.0.1 → 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 (339) 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 +101 -71
  4. package/dist/cjs/components/comparison-grid/index.js.map +1 -1
  5. package/dist/cjs/components/comparison-grid/index.stories.js.map +1 -1
  6. package/dist/cjs/components/comparison-grid/style.scss +10 -2
  7. package/dist/cjs/components/features-grid/client-logo-list/client-list.js +0 -12
  8. package/dist/cjs/components/features-grid/client-logo-list/client-list.js.map +1 -1
  9. package/dist/cjs/components/features-grid/index.js +9 -6
  10. package/dist/cjs/components/features-grid/index.js.map +1 -1
  11. package/dist/cjs/components/features-grid/plan-features-list.js +10 -3
  12. package/dist/cjs/components/features-grid/plan-features-list.js.map +1 -1
  13. package/dist/cjs/components/features-grid/plan-headers.js +2 -2
  14. package/dist/cjs/components/features-grid/plan-headers.js.map +1 -1
  15. package/dist/cjs/components/features-grid/plan-tagline.js +1 -1
  16. package/dist/cjs/components/features-grid/plan-tagline.js.map +1 -1
  17. package/dist/cjs/components/features-grid/style.scss +111 -21
  18. package/dist/cjs/components/features-grid/table.js +1 -1
  19. package/dist/cjs/components/features-grid/table.js.map +1 -1
  20. package/dist/cjs/components/features.js +43 -4
  21. package/dist/cjs/components/features.js.map +1 -1
  22. package/dist/cjs/components/item.js +1 -1
  23. package/dist/cjs/components/item.js.map +1 -1
  24. package/dist/cjs/components/plan-button/index.js +5 -3
  25. package/dist/cjs/components/plan-button/index.js.map +1 -1
  26. package/dist/cjs/components/plan-button/style.scss +71 -47
  27. package/dist/cjs/components/plan-div-td-container.js +4 -1
  28. package/dist/cjs/components/plan-div-td-container.js.map +1 -1
  29. package/dist/cjs/components/plan-logo.js +6 -3
  30. package/dist/cjs/components/plan-logo.js.map +1 -1
  31. package/dist/cjs/components/plan-type-selector/components/interval-type-dropdown.js +12 -1
  32. package/dist/cjs/components/plan-type-selector/components/interval-type-dropdown.js.map +1 -1
  33. package/dist/cjs/components/plan-type-selector/hooks/use-max-discount.js +4 -33
  34. package/dist/cjs/components/plan-type-selector/hooks/use-max-discount.js.map +1 -1
  35. package/dist/cjs/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js +11 -13
  36. package/dist/cjs/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js.map +1 -1
  37. package/dist/cjs/components/plans-2023-tooltip.js +16 -5
  38. package/dist/cjs/components/plans-2023-tooltip.js.map +1 -1
  39. package/dist/cjs/components/shared/action-button/index.js +22 -7
  40. package/dist/cjs/components/shared/action-button/index.js.map +1 -1
  41. package/dist/cjs/components/shared/action-button/style.scss +4 -0
  42. package/dist/cjs/components/shared/billing-timeframe/index.js +8 -4
  43. package/dist/cjs/components/shared/billing-timeframe/index.js.map +1 -1
  44. package/dist/cjs/components/shared/header-price/index.js +60 -15
  45. package/dist/cjs/components/shared/header-price/index.js.map +1 -1
  46. package/dist/cjs/components/shared/header-price/style.scss +10 -2
  47. package/dist/cjs/components/shared/storage/components/plan-storage.js +2 -2
  48. package/dist/cjs/components/shared/storage/components/plan-storage.js.map +1 -1
  49. package/dist/cjs/components/shared/storage/components/storage-dropdown.js +29 -6
  50. package/dist/cjs/components/shared/storage/components/storage-dropdown.js.map +1 -1
  51. package/dist/cjs/components/shared/storage/components/storage-feature-label.js +2 -1
  52. package/dist/cjs/components/shared/storage/components/storage-feature-label.js.map +1 -1
  53. package/dist/cjs/components/shared/storage/hooks/use-plan-storage.js +2 -0
  54. package/dist/cjs/components/shared/storage/hooks/use-plan-storage.js.map +1 -1
  55. package/dist/cjs/fixtures/sites-purchases.js +2 -4
  56. package/dist/cjs/fixtures/sites-purchases.js.map +1 -1
  57. package/dist/cjs/grid-context.js +4 -1
  58. package/dist/cjs/grid-context.js.map +1 -1
  59. package/dist/cjs/hooks/data-store/get-renewal-pricing-text.js +50 -0
  60. package/dist/cjs/hooks/data-store/get-renewal-pricing-text.js.map +1 -0
  61. package/dist/cjs/hooks/data-store/use-grid-plans-for-comparison-grid.js +6 -1
  62. package/dist/cjs/hooks/data-store/use-grid-plans-for-comparison-grid.js.map +1 -1
  63. package/dist/cjs/hooks/data-store/use-grid-plans-for-features-grid.js +6 -1
  64. package/dist/cjs/hooks/data-store/use-grid-plans-for-features-grid.js.map +1 -1
  65. package/dist/cjs/hooks/data-store/use-grid-plans.js +175 -21
  66. package/dist/cjs/hooks/data-store/use-grid-plans.js.map +1 -1
  67. package/dist/cjs/hooks/data-store/use-highlight-labels.js +13 -4
  68. package/dist/cjs/hooks/data-store/use-highlight-labels.js.map +1 -1
  69. package/dist/cjs/hooks/data-store/use-plan-billing-description.js +68 -13
  70. package/dist/cjs/hooks/data-store/use-plan-billing-description.js.map +1 -1
  71. package/dist/cjs/hooks/data-store/use-plan-billing-period.js +14 -0
  72. package/dist/cjs/hooks/data-store/use-plan-billing-period.js.map +1 -0
  73. package/dist/cjs/hooks/data-store/use-plan-features-for-grid-plans.js +76 -2
  74. package/dist/cjs/hooks/data-store/use-plan-features-for-grid-plans.js.map +1 -1
  75. package/dist/cjs/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js +60 -12
  76. package/dist/cjs/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js.map +1 -1
  77. package/dist/cjs/hooks/data-store/use-title-badges.js +19 -0
  78. package/dist/cjs/hooks/data-store/use-title-badges.js.map +1 -0
  79. package/dist/cjs/hooks/use-grid-size.js.map +1 -1
  80. package/dist/cjs/hooks/use-is-large-currency.js +2 -2
  81. package/dist/cjs/hooks/use-is-large-currency.js.map +1 -1
  82. package/dist/cjs/hooks/use-visible-grid-plans.js +70 -0
  83. package/dist/cjs/hooks/use-visible-grid-plans.js.map +1 -0
  84. package/dist/cjs/index.js +8 -1
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/lib/get-plan-features-object.js +15 -2
  87. package/dist/cjs/lib/get-plan-features-object.js.map +1 -1
  88. package/dist/cjs/lib/plan-pricing-utils.js +135 -0
  89. package/dist/cjs/lib/plan-pricing-utils.js.map +1 -0
  90. package/dist/esm/_shared.scss +4 -3
  91. package/dist/esm/components/comparison-grid/index.js +102 -72
  92. package/dist/esm/components/comparison-grid/index.js.map +1 -1
  93. package/dist/esm/components/comparison-grid/index.stories.js.map +1 -1
  94. package/dist/esm/components/comparison-grid/style.scss +10 -2
  95. package/dist/esm/components/features-grid/client-logo-list/client-list.js +0 -12
  96. package/dist/esm/components/features-grid/client-logo-list/client-list.js.map +1 -1
  97. package/dist/esm/components/features-grid/index.js +9 -6
  98. package/dist/esm/components/features-grid/index.js.map +1 -1
  99. package/dist/esm/components/features-grid/plan-features-list.js +10 -3
  100. package/dist/esm/components/features-grid/plan-features-list.js.map +1 -1
  101. package/dist/esm/components/features-grid/plan-headers.js +3 -3
  102. package/dist/esm/components/features-grid/plan-headers.js.map +1 -1
  103. package/dist/esm/components/features-grid/plan-tagline.js +1 -1
  104. package/dist/esm/components/features-grid/plan-tagline.js.map +1 -1
  105. package/dist/esm/components/features-grid/style.scss +111 -21
  106. package/dist/esm/components/features-grid/table.js +1 -1
  107. package/dist/esm/components/features-grid/table.js.map +1 -1
  108. package/dist/esm/components/features.js +44 -5
  109. package/dist/esm/components/features.js.map +1 -1
  110. package/dist/esm/components/item.js +1 -1
  111. package/dist/esm/components/item.js.map +1 -1
  112. package/dist/esm/components/plan-button/index.js +5 -3
  113. package/dist/esm/components/plan-button/index.js.map +1 -1
  114. package/dist/esm/components/plan-button/style.scss +71 -47
  115. package/dist/esm/components/plan-div-td-container.js +4 -1
  116. package/dist/esm/components/plan-div-td-container.js.map +1 -1
  117. package/dist/esm/components/plan-logo.js +7 -4
  118. package/dist/esm/components/plan-logo.js.map +1 -1
  119. package/dist/esm/components/plan-type-selector/components/interval-type-dropdown.js +12 -1
  120. package/dist/esm/components/plan-type-selector/components/interval-type-dropdown.js.map +1 -1
  121. package/dist/esm/components/plan-type-selector/hooks/use-max-discount.js +3 -33
  122. package/dist/esm/components/plan-type-selector/hooks/use-max-discount.js.map +1 -1
  123. package/dist/esm/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js +11 -13
  124. package/dist/esm/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js.map +1 -1
  125. package/dist/esm/components/plans-2023-tooltip.js +16 -5
  126. package/dist/esm/components/plans-2023-tooltip.js.map +1 -1
  127. package/dist/esm/components/shared/action-button/index.js +22 -7
  128. package/dist/esm/components/shared/action-button/index.js.map +1 -1
  129. package/dist/esm/components/shared/action-button/style.scss +4 -0
  130. package/dist/esm/components/shared/billing-timeframe/index.js +8 -4
  131. package/dist/esm/components/shared/billing-timeframe/index.js.map +1 -1
  132. package/dist/esm/components/shared/header-price/index.js +60 -15
  133. package/dist/esm/components/shared/header-price/index.js.map +1 -1
  134. package/dist/esm/components/shared/header-price/style.scss +10 -2
  135. package/dist/esm/components/shared/storage/components/plan-storage.js +2 -2
  136. package/dist/esm/components/shared/storage/components/plan-storage.js.map +1 -1
  137. package/dist/esm/components/shared/storage/components/storage-dropdown.js +30 -7
  138. package/dist/esm/components/shared/storage/components/storage-dropdown.js.map +1 -1
  139. package/dist/esm/components/shared/storage/components/storage-feature-label.js +2 -1
  140. package/dist/esm/components/shared/storage/components/storage-feature-label.js.map +1 -1
  141. package/dist/esm/components/shared/storage/hooks/use-plan-storage.js +3 -1
  142. package/dist/esm/components/shared/storage/hooks/use-plan-storage.js.map +1 -1
  143. package/dist/esm/fixtures/sites-purchases.js +2 -4
  144. package/dist/esm/fixtures/sites-purchases.js.map +1 -1
  145. package/dist/esm/grid-context.js +4 -1
  146. package/dist/esm/grid-context.js.map +1 -1
  147. package/dist/esm/hooks/data-store/get-renewal-pricing-text.js +47 -0
  148. package/dist/esm/hooks/data-store/get-renewal-pricing-text.js.map +1 -0
  149. package/dist/esm/hooks/data-store/use-grid-plans-for-comparison-grid.js +6 -1
  150. package/dist/esm/hooks/data-store/use-grid-plans-for-comparison-grid.js.map +1 -1
  151. package/dist/esm/hooks/data-store/use-grid-plans-for-features-grid.js +6 -1
  152. package/dist/esm/hooks/data-store/use-grid-plans-for-features-grid.js.map +1 -1
  153. package/dist/esm/hooks/data-store/use-grid-plans.js +176 -22
  154. package/dist/esm/hooks/data-store/use-grid-plans.js.map +1 -1
  155. package/dist/esm/hooks/data-store/use-highlight-labels.js +14 -5
  156. package/dist/esm/hooks/data-store/use-highlight-labels.js.map +1 -1
  157. package/dist/esm/hooks/data-store/use-plan-billing-description.js +66 -11
  158. package/dist/esm/hooks/data-store/use-plan-billing-description.js.map +1 -1
  159. package/dist/esm/hooks/data-store/use-plan-billing-period.js +12 -0
  160. package/dist/esm/hooks/data-store/use-plan-billing-period.js.map +1 -0
  161. package/dist/esm/hooks/data-store/use-plan-features-for-grid-plans.js +77 -3
  162. package/dist/esm/hooks/data-store/use-plan-features-for-grid-plans.js.map +1 -1
  163. package/dist/esm/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js +59 -11
  164. package/dist/esm/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js.map +1 -1
  165. package/dist/esm/hooks/data-store/use-title-badges.js +17 -0
  166. package/dist/esm/hooks/data-store/use-title-badges.js.map +1 -0
  167. package/dist/esm/hooks/use-grid-size.js.map +1 -1
  168. package/dist/esm/hooks/use-is-large-currency.js +1 -1
  169. package/dist/esm/hooks/use-is-large-currency.js.map +1 -1
  170. package/dist/esm/hooks/use-visible-grid-plans.js +66 -0
  171. package/dist/esm/hooks/use-visible-grid-plans.js.map +1 -0
  172. package/dist/esm/index.js +4 -1
  173. package/dist/esm/index.js.map +1 -1
  174. package/dist/esm/lib/get-plan-features-object.js +15 -2
  175. package/dist/esm/lib/get-plan-features-object.js.map +1 -1
  176. package/dist/esm/lib/plan-pricing-utils.js +129 -0
  177. package/dist/esm/lib/plan-pricing-utils.js.map +1 -0
  178. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  179. package/dist/tsconfig.tsbuildinfo +1 -1
  180. package/dist/types/components/comparison-grid/index.d.ts +1 -1
  181. package/dist/types/components/comparison-grid/index.d.ts.map +1 -1
  182. package/dist/types/components/comparison-grid/index.stories.d.ts +2 -2
  183. package/dist/types/components/dropdown-option.d.ts.map +1 -1
  184. package/dist/types/components/features-grid/billing-timeframes.d.ts.map +1 -1
  185. package/dist/types/components/features-grid/client-logo-list/client-list.d.ts.map +1 -1
  186. package/dist/types/components/features-grid/client-logo-list/index.d.ts.map +1 -1
  187. package/dist/types/components/features-grid/enterprise-features.d.ts.map +1 -1
  188. package/dist/types/components/features-grid/index.d.ts.map +1 -1
  189. package/dist/types/components/features-grid/plan-features-list.d.ts.map +1 -1
  190. package/dist/types/components/features-grid/plan-headers.d.ts +2 -0
  191. package/dist/types/components/features-grid/plan-headers.d.ts.map +1 -1
  192. package/dist/types/components/features-grid/plan-logos.d.ts.map +1 -1
  193. package/dist/types/components/features-grid/plan-prices.d.ts.map +1 -1
  194. package/dist/types/components/features-grid/plan-tagline.d.ts.map +1 -1
  195. package/dist/types/components/features-grid/previous-features-included-title.d.ts.map +1 -1
  196. package/dist/types/components/features-grid/spotlight-plan.d.ts.map +1 -1
  197. package/dist/types/components/features-grid/table.d.ts.map +1 -1
  198. package/dist/types/components/features-grid/top-buttons.d.ts.map +1 -1
  199. package/dist/types/components/features.d.ts.map +1 -1
  200. package/dist/types/components/item.d.ts +2 -1
  201. package/dist/types/components/item.d.ts.map +1 -1
  202. package/dist/types/components/plan-button/index.d.ts +2 -1
  203. package/dist/types/components/plan-button/index.d.ts.map +1 -1
  204. package/dist/types/components/plan-div-td-container.d.ts +2 -0
  205. package/dist/types/components/plan-div-td-container.d.ts.map +1 -1
  206. package/dist/types/components/plan-logo.d.ts.map +1 -1
  207. package/dist/types/components/plan-type-selector/components/interval-type-dropdown.d.ts.map +1 -1
  208. package/dist/types/components/plan-type-selector/hooks/use-max-discount.d.ts.map +1 -1
  209. package/dist/types/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.d.ts.map +1 -1
  210. package/dist/types/components/plans-2023-tooltip.d.ts.map +1 -1
  211. package/dist/types/components/shared/action-button/index.d.ts +2 -1
  212. package/dist/types/components/shared/action-button/index.d.ts.map +1 -1
  213. package/dist/types/components/shared/billing-timeframe/index.d.ts.map +1 -1
  214. package/dist/types/components/shared/header-price/header-price-context.d.ts.map +1 -1
  215. package/dist/types/components/shared/header-price/index.d.ts.map +1 -1
  216. package/dist/types/components/shared/storage/components/plan-storage.d.ts.map +1 -1
  217. package/dist/types/components/shared/storage/components/storage-dropdown.d.ts.map +1 -1
  218. package/dist/types/components/shared/storage/components/storage-feature-label.d.ts.map +1 -1
  219. package/dist/types/components/shared/storage/hooks/use-plan-storage.d.ts +1 -1
  220. package/dist/types/components/shared/storage/hooks/use-plan-storage.d.ts.map +1 -1
  221. package/dist/types/css-mixins.d.ts.map +1 -1
  222. package/dist/types/fixtures/sites-purchases.d.ts +2 -4
  223. package/dist/types/fixtures/sites-purchases.d.ts.map +1 -1
  224. package/dist/types/grid-context.d.ts +4 -1
  225. package/dist/types/grid-context.d.ts.map +1 -1
  226. package/dist/types/hooks/data-store/get-renewal-pricing-text.d.ts +14 -0
  227. package/dist/types/hooks/data-store/get-renewal-pricing-text.d.ts.map +1 -0
  228. package/dist/types/hooks/data-store/types.d.ts +21 -0
  229. package/dist/types/hooks/data-store/types.d.ts.map +1 -1
  230. package/dist/types/hooks/data-store/use-grid-plan-for-spotlight.d.ts.map +1 -1
  231. package/dist/types/hooks/data-store/use-grid-plans-for-comparison-grid.d.ts +1 -1
  232. package/dist/types/hooks/data-store/use-grid-plans-for-comparison-grid.d.ts.map +1 -1
  233. package/dist/types/hooks/data-store/use-grid-plans-for-features-grid.d.ts +1 -1
  234. package/dist/types/hooks/data-store/use-grid-plans-for-features-grid.d.ts.map +1 -1
  235. package/dist/types/hooks/data-store/use-grid-plans.d.ts.map +1 -1
  236. package/dist/types/hooks/data-store/use-highlight-labels.d.ts.map +1 -1
  237. package/dist/types/hooks/data-store/use-plan-billing-description.d.ts.map +1 -1
  238. package/dist/types/hooks/data-store/use-plan-billing-period.d.ts +8 -0
  239. package/dist/types/hooks/data-store/use-plan-billing-period.d.ts.map +1 -0
  240. package/dist/types/hooks/data-store/use-plan-features-for-grid-plans.d.ts +4 -1
  241. package/dist/types/hooks/data-store/use-plan-features-for-grid-plans.d.ts.map +1 -1
  242. package/dist/types/hooks/data-store/use-plans-from-types.d.ts.map +1 -1
  243. package/dist/types/hooks/data-store/use-restructured-plan-features-for-comparison-grid.d.ts +4 -1
  244. package/dist/types/hooks/data-store/use-restructured-plan-features-for-comparison-grid.d.ts.map +1 -1
  245. package/dist/types/hooks/data-store/use-title-badges.d.ts +9 -0
  246. package/dist/types/hooks/data-store/use-title-badges.d.ts.map +1 -0
  247. package/dist/types/hooks/use-grid-size.d.ts +3 -2
  248. package/dist/types/hooks/use-grid-size.d.ts.map +1 -1
  249. package/dist/types/hooks/use-highlight-adjacency-matrix.d.ts.map +1 -1
  250. package/dist/types/hooks/use-visible-grid-plans.d.ts +14 -0
  251. package/dist/types/hooks/use-visible-grid-plans.d.ts.map +1 -0
  252. package/dist/types/index.d.ts +9 -1
  253. package/dist/types/index.d.ts.map +1 -1
  254. package/dist/types/lib/filter-unused-features-object.d.ts.map +1 -1
  255. package/dist/types/lib/get-plan-features-object.d.ts +1 -1
  256. package/dist/types/lib/get-plan-features-object.d.ts.map +1 -1
  257. package/dist/types/lib/plan-pricing-utils.d.ts +105 -0
  258. package/dist/types/lib/plan-pricing-utils.d.ts.map +1 -0
  259. package/dist/types/types.d.ts +33 -6
  260. package/dist/types/types.d.ts.map +1 -1
  261. package/package.json +39 -28
  262. package/src/_shared.scss +4 -3
  263. package/src/components/comparison-grid/index.stories.tsx +1 -1
  264. package/src/components/comparison-grid/index.tsx +263 -158
  265. package/src/components/comparison-grid/style.scss +10 -2
  266. package/src/components/features-grid/client-logo-list/client-list.tsx +0 -25
  267. package/src/components/features-grid/index.tsx +37 -19
  268. package/src/components/features-grid/plan-features-list.tsx +15 -4
  269. package/src/components/features-grid/plan-headers.tsx +10 -3
  270. package/src/components/features-grid/plan-tagline.tsx +1 -1
  271. package/src/components/features-grid/style.scss +111 -21
  272. package/src/components/features-grid/table.tsx +4 -2
  273. package/src/components/features.tsx +66 -6
  274. package/src/components/item.tsx +6 -3
  275. package/src/components/plan-button/index.tsx +7 -1
  276. package/src/components/plan-button/style.scss +71 -47
  277. package/src/components/plan-div-td-container.tsx +6 -2
  278. package/src/components/plan-logo.tsx +16 -9
  279. package/src/components/plan-type-selector/components/interval-type-dropdown.tsx +14 -1
  280. package/src/components/plan-type-selector/hooks/use-max-discount.ts +8 -47
  281. package/src/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.ts +19 -17
  282. package/src/components/plans-2023-tooltip.tsx +17 -5
  283. package/src/components/shared/action-button/index.tsx +46 -5
  284. package/src/components/shared/action-button/style.scss +4 -0
  285. package/src/components/shared/billing-timeframe/index.tsx +12 -7
  286. package/src/components/shared/header-price/index.tsx +129 -27
  287. package/src/components/shared/header-price/style.scss +10 -2
  288. package/src/components/shared/storage/components/plan-storage.tsx +2 -2
  289. package/src/components/shared/storage/components/storage-dropdown.tsx +36 -15
  290. package/src/components/shared/storage/components/storage-feature-label.tsx +2 -1
  291. package/src/components/shared/storage/hooks/use-plan-storage.ts +3 -0
  292. package/src/components/test/actions-button.tsx +5 -0
  293. package/src/components/test/billing-timeframe.tsx +1 -1
  294. package/src/components/test/header-price.tsx +342 -4
  295. package/src/fixtures/sites-purchases.ts +2 -4
  296. package/src/grid-context.tsx +9 -0
  297. package/src/hooks/data-store/get-renewal-pricing-text.ts +73 -0
  298. package/src/hooks/data-store/types.ts +21 -0
  299. package/src/hooks/data-store/use-grid-plans-for-comparison-grid.ts +10 -0
  300. package/src/hooks/data-store/use-grid-plans-for-features-grid.ts +10 -0
  301. package/src/hooks/data-store/use-grid-plans.tsx +189 -23
  302. package/src/hooks/data-store/use-highlight-labels.ts +12 -3
  303. package/src/hooks/data-store/use-plan-billing-description.tsx +80 -15
  304. package/src/hooks/data-store/use-plan-billing-period.tsx +28 -0
  305. package/src/hooks/data-store/use-plan-features-for-grid-plans.ts +135 -1
  306. package/src/hooks/data-store/use-restructured-plan-features-for-comparison-grid.ts +93 -20
  307. package/src/hooks/data-store/use-title-badges.ts +31 -0
  308. package/src/hooks/test/use-visible-grid-plans.tsx +116 -0
  309. package/src/hooks/use-grid-size.ts +3 -2
  310. package/src/hooks/use-is-large-currency.ts +1 -1
  311. package/src/hooks/use-visible-grid-plans.tsx +102 -0
  312. package/src/index.tsx +20 -0
  313. package/src/lib/get-plan-features-object.ts +23 -2
  314. package/src/lib/plan-pricing-utils.ts +211 -0
  315. package/src/lib/test/plan-pricing-utils.ts +594 -0
  316. package/src/style-imports.d.ts +3 -0
  317. package/src/types.ts +45 -4
  318. package/dist/cjs/components/features-grid/mobile-free-domain.js +0 -25
  319. package/dist/cjs/components/features-grid/mobile-free-domain.js.map +0 -1
  320. package/dist/cjs/lib/get-plan-pricing-info-from-grid-plans.js +0 -15
  321. package/dist/cjs/lib/get-plan-pricing-info-from-grid-plans.js.map +0 -1
  322. package/dist/cjs/lib/sort-plan-properties.js +0 -26
  323. package/dist/cjs/lib/sort-plan-properties.js.map +0 -1
  324. package/dist/esm/components/features-grid/mobile-free-domain.js +0 -23
  325. package/dist/esm/components/features-grid/mobile-free-domain.js.map +0 -1
  326. package/dist/esm/lib/get-plan-pricing-info-from-grid-plans.js +0 -12
  327. package/dist/esm/lib/get-plan-pricing-info-from-grid-plans.js.map +0 -1
  328. package/dist/esm/lib/sort-plan-properties.js +0 -23
  329. package/dist/esm/lib/sort-plan-properties.js.map +0 -1
  330. package/dist/types/components/features-grid/mobile-free-domain.d.ts +0 -8
  331. package/dist/types/components/features-grid/mobile-free-domain.d.ts.map +0 -1
  332. package/dist/types/lib/get-plan-pricing-info-from-grid-plans.d.ts +0 -9
  333. package/dist/types/lib/get-plan-pricing-info-from-grid-plans.d.ts.map +0 -1
  334. package/dist/types/lib/sort-plan-properties.d.ts +0 -3
  335. package/dist/types/lib/sort-plan-properties.d.ts.map +0 -1
  336. package/src/components/features-grid/mobile-free-domain.tsx +0 -51
  337. package/src/lib/get-plan-pricing-info-from-grid-plans.ts +0 -31
  338. package/src/lib/sort-plan-properties.ts +0 -27
  339. package/src/lib/test/sort-plan-properties.ts +0 -122
@@ -9,13 +9,18 @@
9
9
  background-color: var(--color-surface);
10
10
  justify-content: flex-start;
11
11
  font-weight: 400;
12
+
13
+ &.is-woo-hosted-basic-plan {
14
+ align-items: center;
15
+ gap: 12px;
16
+ }
12
17
  }
13
18
 
14
19
  .plan-features-2023-grid__header-logo {
15
20
  padding-left: 20px;
16
21
 
17
22
  @include plans-grid-medium-large {
18
- margin-top: 36px;
23
+ margin-top: 32px;
19
24
  }
20
25
 
21
26
  .plan-features-2023-grid__table-top & {
@@ -115,10 +120,6 @@
115
120
  }
116
121
  }
117
122
 
118
- .plans-grid-next-features-grid__mobile-plan-card-no-foldable-container {
119
- margin-top: 24px;
120
- }
121
-
122
123
  .plan-features-2023-grid__mobile-view {
123
124
  display: flex;
124
125
  flex-direction: column;
@@ -130,9 +131,8 @@
130
131
  .plans-grid-next-features-grid__mobile-plan-card {
131
132
  background-color: var(--studio-white);
132
133
  border: 1px solid #e0e0e0;
133
- /* stylelint-disable-next-line */
134
- border-radius: 5px;
135
- padding: 38px 0 20px 0;
134
+ border-radius: 4px;
135
+ padding: 20px 0 20px 0;
136
136
 
137
137
  /*
138
138
  * TODO: Remove/refactor this once we have a better way to handle.
@@ -154,10 +154,42 @@
154
154
  padding-top: 0;
155
155
  }
156
156
  }
157
+
158
+ .plan-features-2023-grid__header,
159
+ .plan-features-2023-grid__header-logo,
160
+ .plans-grid-next-header-price,
161
+ .plan-features-2023-grid__header-tagline,
162
+ .plan-features-2023-grid__header-billing-info,
163
+ .plan-features-2023-grid__table-item.is-top-buttons,
164
+ .plan-features-2023-grid__item {
165
+ padding-inline: 16px;
166
+ }
167
+ }
168
+
169
+ .plans-grid-next-storage-feature-label__volume {
170
+ font-size: 14px;
171
+ font-weight: 500;
157
172
  }
158
173
 
159
174
  .plan-features-2023-grid__highlighted-feature .plan-features-2023-grid__item {
160
- padding-bottom: 24px;
175
+ padding-top: 16px;
176
+ }
177
+
178
+ .plan-features-2023-grid__header-title {
179
+ line-height: normal;
180
+ }
181
+
182
+ .plan-features-2023-grid__table-item .is-experiment-last-feature {
183
+ margin-block-end: 0;
184
+ }
185
+
186
+ .plan-features-2023-grid__header {
187
+ padding-block-end: 0;
188
+ }
189
+
190
+ .plan-features-2023-grid__header-tagline {
191
+ font-size: 14px;
192
+ padding: 0 20px 16px 20px
161
193
  }
162
194
  }
163
195
 
@@ -166,7 +198,7 @@
166
198
  color: var(--color-text-subtle);
167
199
  table-layout: fixed;
168
200
  border: 1px solid #e0e0e0;
169
- border-radius: 5px; /* stylelint-disable-line */
201
+ border-radius: 4px;
170
202
  background-color: #fff;
171
203
  margin: 0 auto;
172
204
  border-spacing: 0;
@@ -205,12 +237,25 @@
205
237
  letter-spacing: 0;
206
238
  }
207
239
 
240
+ .plan-features-2023-grid__header-badge {
241
+ background-color: var(--studio-blue-5);
242
+ color: var(--studio-blue-50);
243
+ border-radius: 3px;
244
+ display: inline-block;
245
+ font-size: $font-body-extra-small;
246
+ font-weight: 500;
247
+ line-height: 20px;
248
+ padding: 0 8px;
249
+ white-space: nowrap;
250
+ }
251
+
208
252
  .plan-features-2023-grid__header-tagline {
209
253
  font-size: $font-body;
210
254
  line-height: 24px;
211
255
  color: var(--studio-gray-80);
212
256
  font-weight: 400;
213
257
  padding: 0 20px 24px 20px;
258
+ margin-bottom: 0;
214
259
 
215
260
  @include plans-grid-medium-large {
216
261
  font-size: $font-body-small;
@@ -238,18 +283,24 @@
238
283
  font-weight: 600;
239
284
  }
240
285
 
286
+ .is-plan-differentiators-experiment & .has-min-height {
287
+ min-height: 32px;
288
+ }
289
+
241
290
  &.is-top-buttons {
242
291
  padding: 0 20px;
243
292
  @include plans-grid-medium-large {
244
- padding-top: 16px;
245
- padding-bottom: 16px;
293
+ button {
294
+ margin-top: 16px;
295
+ margin-bottom: 16px;
296
+ }
246
297
  }
247
298
  }
248
299
 
249
300
  @include plans-grid-medium-large {
250
301
  // The .plan-features-2023-grid__table-item is used to render the plan spotlight which doesn't
251
302
  // use a table layout, but borders are only appropriate in table layout.
252
- &:is(td) {
303
+ &:is(td, th) {
253
304
  border-left: solid 1px #e0e0e0;
254
305
  }
255
306
  }
@@ -268,10 +319,9 @@
268
319
  max-width: 100%;
269
320
  margin-bottom: 64px;
270
321
  border: 1px solid #e0e0e0;
271
- /* stylelint-disable-next-line scales/radii */
272
- border-radius: 5px;
273
- display: flex;
274
- justify-content: space-between;
322
+ border-radius: 4px;
323
+ display: flex;
324
+ justify-content: space-between;
275
325
 
276
326
  div.spotlight-plan__buttons {
277
327
  display: flex;
@@ -316,6 +366,11 @@
316
366
  .plans-grid-next-features-grid__feature-group-title {
317
367
  font-weight: 600;
318
368
  color: var(--studio-gray-80);
369
+
370
+ &.is-wordpress-hosting {
371
+ padding-top: 12px;
372
+ font-size: 12px;
373
+ }
319
374
  }
320
375
 
321
376
  .plans-grid-next-features-grid__feature-group-row {
@@ -344,13 +399,20 @@
344
399
  flex: 1 0 0;
345
400
  width: 100%;
346
401
 
402
+ .plan-features-2023-grid__ai-website-builder-break {
403
+ @media ( max-width: 480px ) {
404
+ display: none;
405
+ }
406
+ }
407
+
347
408
  .plan-features-2023-grid__item-title {
348
409
  color: var(--studio-gray-80);
349
410
  font-size: $font-body-small;
350
411
  font-weight: 400;
351
412
  line-height: 20px;
352
413
  overflow-wrap: break-word;
353
- text-wrap: balance;
414
+ text-wrap: balance; // Fallback until Safari supports `pretty`.
415
+ text-wrap: pretty;
354
416
  margin: 0;
355
417
  flex: 1 0 0;
356
418
  width: 100%;
@@ -359,6 +421,12 @@
359
421
  font-weight: 600;
360
422
  }
361
423
 
424
+ // Experiment variants: domain included text gets green color
425
+ // Applies to variants with "Everything in X, plus:" features (not focused long-list or control)
426
+ &.is-domain-included-highlight {
427
+ color: var(--studio-green-60);
428
+ }
429
+
362
430
  @include plans-grid-medium-large {
363
431
  font-size: $font-body-extra-small;
364
432
  line-height: 16px;
@@ -381,6 +449,11 @@
381
449
  }
382
450
  }
383
451
 
452
+ // Pricing differentiators experiment (non-control): extra bottom margin after last feature in column
453
+ .plan-features-2023-grid__table-item .is-experiment-last-feature {
454
+ margin-block-end: 37px;
455
+ }
456
+
384
457
  .plan-features-2023-grid__row:last-of-type .plan-features-2023-grid__table-item {
385
458
  border-bottom: solid 1px var(--color-neutral-5);
386
459
 
@@ -395,6 +468,10 @@
395
468
  padding: 0 20px 12px;
396
469
  text-align: left;
397
470
 
471
+ .is-plan-differentiators-experiment & {
472
+ padding-inline-end: 12px;
473
+ }
474
+
398
475
  &.plan-features-2023-grid__item-available {
399
476
  display: flex;
400
477
  flex-direction: column;
@@ -476,13 +553,17 @@
476
553
  // the alternative (oveflow: auto) would break the sticky behavior on the headers
477
554
  padding: 1px;
478
555
 
556
+ &.is-small {
557
+ padding: 0;
558
+ }
559
+
479
560
  .plan-features-2023-grid__table-item {
480
561
  border-right: none;
481
562
  background-color: transparent;
482
563
 
483
- // The extra `:is(td)` is needed so this rule is at the same specificity as the rule
484
- // which originally added the border-left, which uses an `:is` selector.
485
- &:first-of-type:is(td) {
564
+ // Match both `td` and `th` so the first header cell has its border-left removed too;
565
+ // the `:is()` keeps the specificity aligned with the rule that adds the border-left above.
566
+ &:first-of-type:is(td, th) {
486
567
  border-left: none;
487
568
  }
488
569
 
@@ -611,3 +692,12 @@
611
692
  }
612
693
  }
613
694
  }
695
+
696
+ // Conditional styles for visual split layout (website-builder and wordpress-hosting intents)
697
+ .plans-features-main__group.is-visual-split-layout {
698
+ .plans-grid-next-features-grid__feature-group-row {
699
+ &:last-child > .plan-features-2023-grid__table-item {
700
+ padding-bottom: 18px;
701
+ }
702
+ }
703
+ }
@@ -26,7 +26,7 @@ const Table = ({ currentSitePlanSlug, generatedWPComSubdomain, gridPlanForSpotli
26
26
  const tableClasses = clsx('plan-features-2023-grid__table', `has-${gridPlansWithoutSpotlight.length}-cols`, {
27
27
  'has-highlighted-plan': hasHighlightedPlan,
28
28
  });
29
- return (_jsxs("table", { className: tableClasses, children: [_jsx("caption", { className: "plan-features-2023-grid__screen-reader-text screen-reader-text", children: translate('Available plans to choose from') }), _jsxs("tbody", { children: [_jsx("tr", { children: _jsx(PlanLogos, { renderedGridPlans: gridPlansWithoutSpotlight, isInSignup: isInSignup, options: { isTableCell: true } }) }), _jsx("tr", { children: _jsx(PlanHeaders, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true } }) }), _jsx("tr", { children: _jsx(PlanTagline, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true } }) }), _jsx("tr", { children: _jsx(PlanPrices, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true }, currentSitePlanSlug: currentSitePlanSlug }) }), _jsx("tr", { children: _jsx(BillingTimeframes, { renderedGridPlans: gridPlansWithoutSpotlight, showRefundPeriod: showRefundPeriod, options: { isTableCell: true } }) }), _jsx(StickyContainer, { stickyClass: "is-sticky-top-buttons-row", element: "tr", stickyOffset: stickyRowOffset, zIndex: 2, children: (isStuck) => (_jsx(TopButtons, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true, isStuck }, isInSignup: isInSignup, currentSitePlanSlug: currentSitePlanSlug, planActionOverrides: planActionOverrides })) }), _jsx("tr", { children: _jsx(EnterpriseFeatures, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true, isLogosOnly: enableLogosOnlyForEnterprisePlan } }) }), !enableCategorisedFeatures && (_jsx("tr", { children: _jsx(PreviousFeaturesIncludedTitle, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true } }) })), featureGroups.map((featureGroupSlug, featureGroupIndex) => (_jsx("tr", { className: clsx('plans-grid-next-features-grid__feature-group-row', {
29
+ return (_jsxs("table", { className: tableClasses, children: [_jsx("caption", { className: "plan-features-2023-grid__screen-reader-text screen-reader-text", children: translate('Available plans to choose from') }), _jsxs("thead", { children: [_jsx("tr", { children: _jsx(PlanLogos, { renderedGridPlans: gridPlansWithoutSpotlight, isInSignup: isInSignup, options: { isTableCell: true } }) }), _jsx("tr", { children: _jsx(PlanHeaders, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isHeader: true, scope: 'col' } }) })] }), _jsxs("tbody", { children: [_jsx("tr", { children: _jsx(PlanTagline, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true } }) }), _jsx("tr", { children: _jsx(PlanPrices, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true }, currentSitePlanSlug: currentSitePlanSlug }) }), _jsx("tr", { children: _jsx(BillingTimeframes, { renderedGridPlans: gridPlansWithoutSpotlight, showRefundPeriod: showRefundPeriod, options: { isTableCell: true } }) }), _jsx(StickyContainer, { stickyClass: "is-sticky-top-buttons-row", element: "tr", stickyOffset: stickyRowOffset, zIndex: 2, children: (isStuck) => (_jsx(TopButtons, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true, isStuck }, isInSignup: isInSignup, currentSitePlanSlug: currentSitePlanSlug, planActionOverrides: planActionOverrides })) }), _jsx("tr", { children: _jsx(EnterpriseFeatures, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true, isLogosOnly: enableLogosOnlyForEnterprisePlan } }) }), !enableCategorisedFeatures && (_jsx("tr", { children: _jsx(PreviousFeaturesIncludedTitle, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true } }) })), featureGroups.map((featureGroupSlug, featureGroupIndex) => (_jsx("tr", { className: clsx('plans-grid-next-features-grid__feature-group-row', {
30
30
  'is-first-feature-group-row': featureGroupIndex === 0,
31
31
  'is-reduced-feature-group-spacing': enableReducedFeatureGroupSpacing,
32
32
  }), children: _jsx(PlanFeaturesList, { renderedGridPlans: gridPlansWithoutSpotlight, options: { isTableCell: true }, paidDomainName: paidDomainName, hideUnavailableFeatures: hideUnavailableFeatures, selectedFeature: selectedFeature, generatedWPComSubdomain: generatedWPComSubdomain, isCustomDomainAllowedOnFreePlan: isCustomDomainAllowedOnFreePlan, featureGroupSlug: featureGroupSlug, onStorageAddOnClick: onStorageAddOnClick, showUpgradeableStorage: showUpgradeableStorage }) }, featureGroupSlug)))] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/components/features-grid/table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/components/features-grid/table.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { getPlanClass, FEATURE_CUSTOM_DOMAIN, isFreePlan } from '@automattic/calypso-products';
2
+ import { getPlanClass, FEATURE_AI_WEBSITE_BUILDER, FEATURE_CUSTOM_DOMAIN, isFreePlan, } from '@automattic/calypso-products';
3
3
  import { LoadingPlaceholder } from '@automattic/components';
4
4
  import styled from '@emotion/styled';
5
5
  import clsx from 'clsx';
@@ -19,6 +19,30 @@ const SubdomainSuggestion = styled.div `
19
19
  overflow: hidden;
20
20
  }
21
21
  `;
22
+ // Pricing differentiation pills — colors match @automattic/components Badge type="info-green" (.badge--info-green).
23
+ const FeatureBadge = styled.span `
24
+ display: inline-flex;
25
+ padding: 0 6px;
26
+ justify-content: center;
27
+ align-items: center;
28
+ gap: 8px;
29
+ border-radius: 4px;
30
+ background-color: rgba( 184, 230, 191, 0.64 );
31
+ color: var( --studio-green-80 );
32
+ text-align: center;
33
+ font-size: 11px;
34
+ font-weight: 600;
35
+ line-height: inherit;
36
+ margin-inline-start: 8px;
37
+ vertical-align: baseline;
38
+ text-decoration: none;
39
+ white-space: nowrap;
40
+
41
+ @media ( max-width: 480px ) {
42
+ padding: 0 4px;
43
+ margin-inline-start: 6px;
44
+ }
45
+ `;
22
46
  const FreePlanCustomDomainFeature = ({ paidDomainName, generatedWPComSubdomain, isCustomDomainAllowedOnFreePlan }) => {
23
47
  const translate = useTranslate();
24
48
  const isLoading = generatedWPComSubdomain?.isLoading;
@@ -30,7 +54,7 @@ const FreePlanCustomDomainFeature = ({ paidDomainName, generatedWPComSubdomain,
30
54
  };
31
55
  const PlanFeatures2023GridFeatures = ({ features, planSlug, paidDomainName, generatedWPComSubdomain, hideUnavailableFeatures, selectedFeature, isCustomDomainAllowedOnFreePlan, activeTooltipId, setActiveTooltipId, }) => {
32
56
  const translate = useTranslate();
33
- const { enableFeatureTooltips } = usePlansGridContext();
57
+ const { enableFeatureTooltips, gridPlans, isExperimentVariant } = usePlansGridContext();
34
58
  return (_jsx(_Fragment, { children: features.map((currentFeature, featureIndex) => {
35
59
  if (hideUnavailableFeatures && !currentFeature.availableForCurrentPlan) {
36
60
  return null;
@@ -45,8 +69,22 @@ const PlanFeatures2023GridFeatures = ({ features, planSlug, paidDomainName, gene
45
69
  : currentFeature?.isHighlighted ||
46
70
  (currentFeature.getSlug() === FEATURE_CUSTOM_DOMAIN && paidDomainName) ||
47
71
  !currentFeature.availableForCurrentPlan;
72
+ const featureSlug = currentFeature.getSlug();
73
+ const shouldBreakAfterAiWebsiteBuilderTitle = gridPlans.length === 6 && featureSlug === FEATURE_AI_WEBSITE_BUILDER;
74
+ const featuresWithMinHeight = [
75
+ 'support-from-experts',
76
+ 'priority-24-7-support',
77
+ 'upload-video',
78
+ ];
79
+ // Apply green styling for domain feature in the rolled-out cohort.
80
+ const isCustomDomainFeatureWithPaidDomain = currentFeature.getSlug() === FEATURE_CUSTOM_DOMAIN &&
81
+ paidDomainName &&
82
+ !isFreePlan(planSlug);
83
+ const shouldHighlightDomainFeature = isCustomDomainFeatureWithPaidDomain && isExperimentVariant;
48
84
  const divClasses = clsx('', getPlanClass(planSlug), {
49
85
  'is-last-feature': featureIndex + 1 === features.length,
86
+ 'has-min-height': featuresWithMinHeight.includes(featureSlug),
87
+ 'is-experiment-last-feature': currentFeature.isExperimentLastFeature,
50
88
  });
51
89
  const spanClasses = clsx('plan-features-2023-grid__item-info', {
52
90
  'is-annual-plan-feature': currentFeature.availableOnlyForAnnualPlans,
@@ -54,15 +92,16 @@ const PlanFeatures2023GridFeatures = ({ features, planSlug, paidDomainName, gene
54
92
  });
55
93
  const itemTitleClasses = clsx('plan-features-2023-grid__item-title', {
56
94
  'is-bold': isHighlightedFeature,
95
+ 'is-domain-included-highlight': shouldHighlightDomainFeature,
57
96
  });
58
97
  return (_jsx("div", { className: divClasses, children: _jsx(PlanFeaturesItem, { children: _jsx("span", { className: spanClasses, children: _jsx("span", { className: itemTitleClasses, children: isFreePlanAndCustomDomainFeature ? (_jsx(Plans2023Tooltip, { text: enableFeatureTooltips
59
98
  ? translate('%s is not included', {
60
99
  args: [paidDomainName],
61
100
  comment: '%s is a domain name.',
62
101
  })
63
- : undefined, activeTooltipId: activeTooltipId, setActiveTooltipId: setActiveTooltipId, id: key, children: _jsx(FreePlanCustomDomainFeature, { paidDomainName: paidDomainName, generatedWPComSubdomain: generatedWPComSubdomain, isCustomDomainAllowedOnFreePlan: isCustomDomainAllowedOnFreePlan }, key) })) : (_jsx(Plans2023Tooltip, { text: enableFeatureTooltips ? currentFeature.getDescription?.() : undefined, activeTooltipId: activeTooltipId, setActiveTooltipId: setActiveTooltipId, id: key, children: _jsxs(_Fragment, { children: [currentFeature.getTitle({
64
- domainName: paidDomainName,
65
- }), currentFeature?.getSubFeatureObjects?.()?.length ? (_jsx("ul", { className: "plan-features-2023-grid__item-sub-feature-list", children: currentFeature.getSubFeatureObjects().map((subFeature) => (_jsx("li", { children: subFeature?.getTitle() }))) })) : null] }) })) }) }, key) }) }, key));
102
+ : undefined, activeTooltipId: activeTooltipId, setActiveTooltipId: setActiveTooltipId, id: key, children: _jsx(FreePlanCustomDomainFeature, { paidDomainName: paidDomainName, generatedWPComSubdomain: generatedWPComSubdomain, isCustomDomainAllowedOnFreePlan: isCustomDomainAllowedOnFreePlan }, key) })) : (_jsx(Plans2023Tooltip, { text: enableFeatureTooltips ? currentFeature.getDescription?.() : undefined, activeTooltipId: activeTooltipId, setActiveTooltipId: setActiveTooltipId, id: key, children: _jsxs(_Fragment, { children: [_jsxs("span", { className: "plan-features-2023-grid__item-text-content", children: [currentFeature.getTitle({
103
+ domainName: paidDomainName,
104
+ }), currentFeature.badgeText && (_jsx(FeatureBadge, { children: currentFeature.badgeText }))] }), shouldBreakAfterAiWebsiteBuilderTitle && (_jsx("div", { className: "plan-features-2023-grid__ai-website-builder-break", children: '\u00A0' })), currentFeature?.getSubFeatureObjects?.()?.length ? (_jsx("ul", { className: "plan-features-2023-grid__item-sub-feature-list", children: currentFeature.getSubFeatureObjects().map((subFeature) => (_jsx("li", { children: subFeature?.getTitle() }, subFeature.getSlug()))) })) : null] }) })) }) }, key) }) }, key));
66
105
  }) }));
67
106
  };
68
107
  export default PlanFeatures2023GridFeatures;
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../src/components/features.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../src/components/features.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export function PlanFeaturesItem(props) {
3
- return (_jsx("div", { className: "plan-features-2023-grid__item plan-features-2023-grid__item-available", children: _jsx("div", { className: "plan-features-2023-grid__item-info-container", children: props.children }) }));
3
+ return (_jsx("div", { className: "plan-features-2023-grid__item plan-features-2023-grid__item-available", style: props.style, children: _jsx("div", { className: "plan-features-2023-grid__item-info-container", children: props.children }) }));
4
4
  }
5
5
  //# sourceMappingURL=item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/components/item.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,gBAAgB,CAAE,KAA+B;IAChE,OAAO,CACN,cAAK,SAAS,EAAC,uEAAuE,YACrF,cAAK,SAAS,EAAC,8CAA8C,YAAG,KAAK,CAAC,QAAQ,GAAQ,GACjF,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/components/item.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,gBAAgB,CAAE,KAAsD;IACvF,OAAO,CACN,cACC,SAAS,EAAC,uEAAuE,EACjF,KAAK,EAAG,KAAK,CAAC,KAAK,YAEnB,cAAK,SAAS,EAAC,8CAA8C,YAAG,KAAK,CAAC,QAAQ,GAAQ,GACjF,CACN,CAAC;AACH,CAAC"}
@@ -6,13 +6,15 @@ import './style.scss';
6
6
  // TODO:
7
7
  // The prop should simply be declared by extending the
8
8
  // props of Button, instead of listing everything needed like this.
9
- const PlanButton = ({ planSlug, children, classes, href, onClick = () => { }, busy = false, borderless = false, current = false, disabled = false, isStuck = false, isLargeCurrency = false, }) => {
9
+ const PlanButton = ({ planSlug, children, classes, href, onClick = () => { }, busy = false, borderless = false, current = false, disabled = false, isStuck = false, isLargeCurrency = false, ariaLabel, }) => {
10
10
  const className = clsx(classes, 'plan-features-2023-grid__actions-button', planSlug ? getPlanClass(planSlug) : 'is-default', {
11
11
  'is-current-plan': current,
12
12
  'is-stuck': isStuck,
13
13
  'is-large-currency': isLargeCurrency,
14
- });
15
- return (_jsx(Button, { className: className, onClick: onClick, busy: busy, borderless: borderless, disabled: disabled, href: href, children: children }));
14
+ }, disabled && 'disabled');
15
+ return (_jsx(Button, { className: className, onClick: onClick, busy: busy, borderless: borderless, disabled: disabled, href: href, "aria-label": ariaLabel,
16
+ // eslint-disable-next-line jsx-a11y/tabindex-no-positive
17
+ tabIndex: 2, children: children }));
16
18
  };
17
19
  export default PlanButton;
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/plan-button/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,QAAQ;AACR,sDAAsD;AACtD,mEAAmE;AACnE,MAAM,UAAU,GAAG,CAAE,EACpB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,eAAe,GAAG,KAAK,GAavB,EAAG,EAAE;IACL,MAAM,SAAS,GAAG,IAAI,CACrB,OAAO,EACP,yCAAyC,EACzC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAE,QAAQ,CAAE,CAAC,CAAC,CAAC,YAAY,EAClD;QACC,iBAAiB,EAAE,OAAO;QAC1B,UAAU,EAAE,OAAO;QACnB,mBAAmB,EAAE,eAAe;KACpC,CACD,CAAC;IAEF,OAAO,CACN,KAAC,MAAM,IACN,SAAS,EAAG,SAAS,EACrB,OAAO,EAAG,OAAO,EACjB,IAAI,EAAG,IAAI,EACX,UAAU,EAAG,UAAU,EACvB,QAAQ,EAAG,QAAQ,EACnB,IAAI,EAAG,IAAI,YAET,QAAQ,GACF,CACT,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/plan-button/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,QAAQ;AACR,sDAAsD;AACtD,mEAAmE;AACnE,MAAM,UAAU,GAAG,CAAE,EACpB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,eAAe,GAAG,KAAK,EACvB,SAAS,GAcT,EAAG,EAAE;IACL,MAAM,SAAS,GAAG,IAAI,CACrB,OAAO,EACP,yCAAyC,EACzC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAE,QAAQ,CAAE,CAAC,CAAC,CAAC,YAAY,EAClD;QACC,iBAAiB,EAAE,OAAO;QAC1B,UAAU,EAAE,OAAO;QACnB,mBAAmB,EAAE,eAAe;KACpC,EACD,QAAQ,IAAI,UAAU,CACtB,CAAC;IAEF,OAAO,CACN,KAAC,MAAM,IACN,SAAS,EAAG,SAAS,EACrB,OAAO,EAAG,OAAO,EACjB,IAAI,EAAG,IAAI,EACX,UAAU,EAAG,UAAU,EACvB,QAAQ,EAAG,QAAQ,EACnB,IAAI,EAAG,IAAI,gBACE,SAAS;QACtB,yDAAyD;QACzD,QAAQ,EAAG,CAAC,YAEV,QAAQ,GACF,CACT,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}