@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.
- package/CHANGELOG.md +4 -1
- package/dist/cjs/_shared.scss +4 -3
- package/dist/cjs/components/comparison-grid/index.js +101 -71
- package/dist/cjs/components/comparison-grid/index.js.map +1 -1
- package/dist/cjs/components/comparison-grid/index.stories.js.map +1 -1
- package/dist/cjs/components/comparison-grid/style.scss +10 -2
- package/dist/cjs/components/features-grid/client-logo-list/client-list.js +0 -12
- package/dist/cjs/components/features-grid/client-logo-list/client-list.js.map +1 -1
- package/dist/cjs/components/features-grid/index.js +9 -6
- package/dist/cjs/components/features-grid/index.js.map +1 -1
- package/dist/cjs/components/features-grid/plan-features-list.js +10 -3
- package/dist/cjs/components/features-grid/plan-features-list.js.map +1 -1
- package/dist/cjs/components/features-grid/plan-headers.js +2 -2
- package/dist/cjs/components/features-grid/plan-headers.js.map +1 -1
- package/dist/cjs/components/features-grid/plan-tagline.js +1 -1
- package/dist/cjs/components/features-grid/plan-tagline.js.map +1 -1
- package/dist/cjs/components/features-grid/style.scss +111 -21
- package/dist/cjs/components/features-grid/table.js +1 -1
- package/dist/cjs/components/features-grid/table.js.map +1 -1
- package/dist/cjs/components/features.js +43 -4
- package/dist/cjs/components/features.js.map +1 -1
- package/dist/cjs/components/item.js +1 -1
- package/dist/cjs/components/item.js.map +1 -1
- package/dist/cjs/components/plan-button/index.js +5 -3
- package/dist/cjs/components/plan-button/index.js.map +1 -1
- package/dist/cjs/components/plan-button/style.scss +71 -47
- package/dist/cjs/components/plan-div-td-container.js +4 -1
- package/dist/cjs/components/plan-div-td-container.js.map +1 -1
- package/dist/cjs/components/plan-logo.js +6 -3
- package/dist/cjs/components/plan-logo.js.map +1 -1
- package/dist/cjs/components/plan-type-selector/components/interval-type-dropdown.js +12 -1
- package/dist/cjs/components/plan-type-selector/components/interval-type-dropdown.js.map +1 -1
- package/dist/cjs/components/plan-type-selector/hooks/use-max-discount.js +4 -33
- package/dist/cjs/components/plan-type-selector/hooks/use-max-discount.js.map +1 -1
- package/dist/cjs/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js +11 -13
- package/dist/cjs/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js.map +1 -1
- package/dist/cjs/components/plans-2023-tooltip.js +16 -5
- package/dist/cjs/components/plans-2023-tooltip.js.map +1 -1
- package/dist/cjs/components/shared/action-button/index.js +22 -7
- package/dist/cjs/components/shared/action-button/index.js.map +1 -1
- package/dist/cjs/components/shared/action-button/style.scss +4 -0
- package/dist/cjs/components/shared/billing-timeframe/index.js +8 -4
- package/dist/cjs/components/shared/billing-timeframe/index.js.map +1 -1
- package/dist/cjs/components/shared/header-price/index.js +60 -15
- package/dist/cjs/components/shared/header-price/index.js.map +1 -1
- package/dist/cjs/components/shared/header-price/style.scss +10 -2
- package/dist/cjs/components/shared/storage/components/plan-storage.js +2 -2
- package/dist/cjs/components/shared/storage/components/plan-storage.js.map +1 -1
- package/dist/cjs/components/shared/storage/components/storage-dropdown.js +29 -6
- package/dist/cjs/components/shared/storage/components/storage-dropdown.js.map +1 -1
- package/dist/cjs/components/shared/storage/components/storage-feature-label.js +2 -1
- package/dist/cjs/components/shared/storage/components/storage-feature-label.js.map +1 -1
- package/dist/cjs/components/shared/storage/hooks/use-plan-storage.js +2 -0
- package/dist/cjs/components/shared/storage/hooks/use-plan-storage.js.map +1 -1
- package/dist/cjs/fixtures/sites-purchases.js +2 -4
- package/dist/cjs/fixtures/sites-purchases.js.map +1 -1
- package/dist/cjs/grid-context.js +4 -1
- package/dist/cjs/grid-context.js.map +1 -1
- package/dist/cjs/hooks/data-store/get-renewal-pricing-text.js +50 -0
- package/dist/cjs/hooks/data-store/get-renewal-pricing-text.js.map +1 -0
- package/dist/cjs/hooks/data-store/use-grid-plans-for-comparison-grid.js +6 -1
- package/dist/cjs/hooks/data-store/use-grid-plans-for-comparison-grid.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-grid-plans-for-features-grid.js +6 -1
- package/dist/cjs/hooks/data-store/use-grid-plans-for-features-grid.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-grid-plans.js +175 -21
- package/dist/cjs/hooks/data-store/use-grid-plans.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-highlight-labels.js +13 -4
- package/dist/cjs/hooks/data-store/use-highlight-labels.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-plan-billing-description.js +68 -13
- package/dist/cjs/hooks/data-store/use-plan-billing-description.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-plan-billing-period.js +14 -0
- package/dist/cjs/hooks/data-store/use-plan-billing-period.js.map +1 -0
- package/dist/cjs/hooks/data-store/use-plan-features-for-grid-plans.js +76 -2
- package/dist/cjs/hooks/data-store/use-plan-features-for-grid-plans.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js +60 -12
- package/dist/cjs/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js.map +1 -1
- package/dist/cjs/hooks/data-store/use-title-badges.js +19 -0
- package/dist/cjs/hooks/data-store/use-title-badges.js.map +1 -0
- package/dist/cjs/hooks/use-grid-size.js.map +1 -1
- package/dist/cjs/hooks/use-is-large-currency.js +2 -2
- package/dist/cjs/hooks/use-is-large-currency.js.map +1 -1
- package/dist/cjs/hooks/use-visible-grid-plans.js +70 -0
- package/dist/cjs/hooks/use-visible-grid-plans.js.map +1 -0
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/get-plan-features-object.js +15 -2
- package/dist/cjs/lib/get-plan-features-object.js.map +1 -1
- package/dist/cjs/lib/plan-pricing-utils.js +135 -0
- package/dist/cjs/lib/plan-pricing-utils.js.map +1 -0
- package/dist/esm/_shared.scss +4 -3
- package/dist/esm/components/comparison-grid/index.js +102 -72
- package/dist/esm/components/comparison-grid/index.js.map +1 -1
- package/dist/esm/components/comparison-grid/index.stories.js.map +1 -1
- package/dist/esm/components/comparison-grid/style.scss +10 -2
- package/dist/esm/components/features-grid/client-logo-list/client-list.js +0 -12
- package/dist/esm/components/features-grid/client-logo-list/client-list.js.map +1 -1
- package/dist/esm/components/features-grid/index.js +9 -6
- package/dist/esm/components/features-grid/index.js.map +1 -1
- package/dist/esm/components/features-grid/plan-features-list.js +10 -3
- package/dist/esm/components/features-grid/plan-features-list.js.map +1 -1
- package/dist/esm/components/features-grid/plan-headers.js +3 -3
- package/dist/esm/components/features-grid/plan-headers.js.map +1 -1
- package/dist/esm/components/features-grid/plan-tagline.js +1 -1
- package/dist/esm/components/features-grid/plan-tagline.js.map +1 -1
- package/dist/esm/components/features-grid/style.scss +111 -21
- package/dist/esm/components/features-grid/table.js +1 -1
- package/dist/esm/components/features-grid/table.js.map +1 -1
- package/dist/esm/components/features.js +44 -5
- package/dist/esm/components/features.js.map +1 -1
- package/dist/esm/components/item.js +1 -1
- package/dist/esm/components/item.js.map +1 -1
- package/dist/esm/components/plan-button/index.js +5 -3
- package/dist/esm/components/plan-button/index.js.map +1 -1
- package/dist/esm/components/plan-button/style.scss +71 -47
- package/dist/esm/components/plan-div-td-container.js +4 -1
- package/dist/esm/components/plan-div-td-container.js.map +1 -1
- package/dist/esm/components/plan-logo.js +7 -4
- package/dist/esm/components/plan-logo.js.map +1 -1
- package/dist/esm/components/plan-type-selector/components/interval-type-dropdown.js +12 -1
- package/dist/esm/components/plan-type-selector/components/interval-type-dropdown.js.map +1 -1
- package/dist/esm/components/plan-type-selector/hooks/use-max-discount.js +3 -33
- package/dist/esm/components/plan-type-selector/hooks/use-max-discount.js.map +1 -1
- package/dist/esm/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js +11 -13
- package/dist/esm/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.js.map +1 -1
- package/dist/esm/components/plans-2023-tooltip.js +16 -5
- package/dist/esm/components/plans-2023-tooltip.js.map +1 -1
- package/dist/esm/components/shared/action-button/index.js +22 -7
- package/dist/esm/components/shared/action-button/index.js.map +1 -1
- package/dist/esm/components/shared/action-button/style.scss +4 -0
- package/dist/esm/components/shared/billing-timeframe/index.js +8 -4
- package/dist/esm/components/shared/billing-timeframe/index.js.map +1 -1
- package/dist/esm/components/shared/header-price/index.js +60 -15
- package/dist/esm/components/shared/header-price/index.js.map +1 -1
- package/dist/esm/components/shared/header-price/style.scss +10 -2
- package/dist/esm/components/shared/storage/components/plan-storage.js +2 -2
- package/dist/esm/components/shared/storage/components/plan-storage.js.map +1 -1
- package/dist/esm/components/shared/storage/components/storage-dropdown.js +30 -7
- package/dist/esm/components/shared/storage/components/storage-dropdown.js.map +1 -1
- package/dist/esm/components/shared/storage/components/storage-feature-label.js +2 -1
- package/dist/esm/components/shared/storage/components/storage-feature-label.js.map +1 -1
- package/dist/esm/components/shared/storage/hooks/use-plan-storage.js +3 -1
- package/dist/esm/components/shared/storage/hooks/use-plan-storage.js.map +1 -1
- package/dist/esm/fixtures/sites-purchases.js +2 -4
- package/dist/esm/fixtures/sites-purchases.js.map +1 -1
- package/dist/esm/grid-context.js +4 -1
- package/dist/esm/grid-context.js.map +1 -1
- package/dist/esm/hooks/data-store/get-renewal-pricing-text.js +47 -0
- package/dist/esm/hooks/data-store/get-renewal-pricing-text.js.map +1 -0
- package/dist/esm/hooks/data-store/use-grid-plans-for-comparison-grid.js +6 -1
- package/dist/esm/hooks/data-store/use-grid-plans-for-comparison-grid.js.map +1 -1
- package/dist/esm/hooks/data-store/use-grid-plans-for-features-grid.js +6 -1
- package/dist/esm/hooks/data-store/use-grid-plans-for-features-grid.js.map +1 -1
- package/dist/esm/hooks/data-store/use-grid-plans.js +176 -22
- package/dist/esm/hooks/data-store/use-grid-plans.js.map +1 -1
- package/dist/esm/hooks/data-store/use-highlight-labels.js +14 -5
- package/dist/esm/hooks/data-store/use-highlight-labels.js.map +1 -1
- package/dist/esm/hooks/data-store/use-plan-billing-description.js +66 -11
- package/dist/esm/hooks/data-store/use-plan-billing-description.js.map +1 -1
- package/dist/esm/hooks/data-store/use-plan-billing-period.js +12 -0
- package/dist/esm/hooks/data-store/use-plan-billing-period.js.map +1 -0
- package/dist/esm/hooks/data-store/use-plan-features-for-grid-plans.js +77 -3
- package/dist/esm/hooks/data-store/use-plan-features-for-grid-plans.js.map +1 -1
- package/dist/esm/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js +59 -11
- package/dist/esm/hooks/data-store/use-restructured-plan-features-for-comparison-grid.js.map +1 -1
- package/dist/esm/hooks/data-store/use-title-badges.js +17 -0
- package/dist/esm/hooks/data-store/use-title-badges.js.map +1 -0
- package/dist/esm/hooks/use-grid-size.js.map +1 -1
- package/dist/esm/hooks/use-is-large-currency.js +1 -1
- package/dist/esm/hooks/use-is-large-currency.js.map +1 -1
- package/dist/esm/hooks/use-visible-grid-plans.js +66 -0
- package/dist/esm/hooks/use-visible-grid-plans.js.map +1 -0
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/get-plan-features-object.js +15 -2
- package/dist/esm/lib/get-plan-features-object.js.map +1 -1
- package/dist/esm/lib/plan-pricing-utils.js +129 -0
- package/dist/esm/lib/plan-pricing-utils.js.map +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/components/comparison-grid/index.d.ts +1 -1
- package/dist/types/components/comparison-grid/index.d.ts.map +1 -1
- package/dist/types/components/comparison-grid/index.stories.d.ts +2 -2
- package/dist/types/components/dropdown-option.d.ts.map +1 -1
- package/dist/types/components/features-grid/billing-timeframes.d.ts.map +1 -1
- package/dist/types/components/features-grid/client-logo-list/client-list.d.ts.map +1 -1
- package/dist/types/components/features-grid/client-logo-list/index.d.ts.map +1 -1
- package/dist/types/components/features-grid/enterprise-features.d.ts.map +1 -1
- package/dist/types/components/features-grid/index.d.ts.map +1 -1
- package/dist/types/components/features-grid/plan-features-list.d.ts.map +1 -1
- package/dist/types/components/features-grid/plan-headers.d.ts +2 -0
- package/dist/types/components/features-grid/plan-headers.d.ts.map +1 -1
- package/dist/types/components/features-grid/plan-logos.d.ts.map +1 -1
- package/dist/types/components/features-grid/plan-prices.d.ts.map +1 -1
- package/dist/types/components/features-grid/plan-tagline.d.ts.map +1 -1
- package/dist/types/components/features-grid/previous-features-included-title.d.ts.map +1 -1
- package/dist/types/components/features-grid/spotlight-plan.d.ts.map +1 -1
- package/dist/types/components/features-grid/table.d.ts.map +1 -1
- package/dist/types/components/features-grid/top-buttons.d.ts.map +1 -1
- package/dist/types/components/features.d.ts.map +1 -1
- package/dist/types/components/item.d.ts +2 -1
- package/dist/types/components/item.d.ts.map +1 -1
- package/dist/types/components/plan-button/index.d.ts +2 -1
- package/dist/types/components/plan-button/index.d.ts.map +1 -1
- package/dist/types/components/plan-div-td-container.d.ts +2 -0
- package/dist/types/components/plan-div-td-container.d.ts.map +1 -1
- package/dist/types/components/plan-logo.d.ts.map +1 -1
- package/dist/types/components/plan-type-selector/components/interval-type-dropdown.d.ts.map +1 -1
- package/dist/types/components/plan-type-selector/hooks/use-max-discount.d.ts.map +1 -1
- package/dist/types/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.d.ts.map +1 -1
- package/dist/types/components/plans-2023-tooltip.d.ts.map +1 -1
- package/dist/types/components/shared/action-button/index.d.ts +2 -1
- package/dist/types/components/shared/action-button/index.d.ts.map +1 -1
- package/dist/types/components/shared/billing-timeframe/index.d.ts.map +1 -1
- package/dist/types/components/shared/header-price/header-price-context.d.ts.map +1 -1
- package/dist/types/components/shared/header-price/index.d.ts.map +1 -1
- package/dist/types/components/shared/storage/components/plan-storage.d.ts.map +1 -1
- package/dist/types/components/shared/storage/components/storage-dropdown.d.ts.map +1 -1
- package/dist/types/components/shared/storage/components/storage-feature-label.d.ts.map +1 -1
- package/dist/types/components/shared/storage/hooks/use-plan-storage.d.ts +1 -1
- package/dist/types/components/shared/storage/hooks/use-plan-storage.d.ts.map +1 -1
- package/dist/types/css-mixins.d.ts.map +1 -1
- package/dist/types/fixtures/sites-purchases.d.ts +2 -4
- package/dist/types/fixtures/sites-purchases.d.ts.map +1 -1
- package/dist/types/grid-context.d.ts +4 -1
- package/dist/types/grid-context.d.ts.map +1 -1
- package/dist/types/hooks/data-store/get-renewal-pricing-text.d.ts +14 -0
- package/dist/types/hooks/data-store/get-renewal-pricing-text.d.ts.map +1 -0
- package/dist/types/hooks/data-store/types.d.ts +21 -0
- package/dist/types/hooks/data-store/types.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-grid-plan-for-spotlight.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-grid-plans-for-comparison-grid.d.ts +1 -1
- package/dist/types/hooks/data-store/use-grid-plans-for-comparison-grid.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-grid-plans-for-features-grid.d.ts +1 -1
- package/dist/types/hooks/data-store/use-grid-plans-for-features-grid.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-grid-plans.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-highlight-labels.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-plan-billing-description.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-plan-billing-period.d.ts +8 -0
- package/dist/types/hooks/data-store/use-plan-billing-period.d.ts.map +1 -0
- package/dist/types/hooks/data-store/use-plan-features-for-grid-plans.d.ts +4 -1
- package/dist/types/hooks/data-store/use-plan-features-for-grid-plans.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-plans-from-types.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-restructured-plan-features-for-comparison-grid.d.ts +4 -1
- package/dist/types/hooks/data-store/use-restructured-plan-features-for-comparison-grid.d.ts.map +1 -1
- package/dist/types/hooks/data-store/use-title-badges.d.ts +9 -0
- package/dist/types/hooks/data-store/use-title-badges.d.ts.map +1 -0
- package/dist/types/hooks/use-grid-size.d.ts +3 -2
- package/dist/types/hooks/use-grid-size.d.ts.map +1 -1
- package/dist/types/hooks/use-highlight-adjacency-matrix.d.ts.map +1 -1
- package/dist/types/hooks/use-visible-grid-plans.d.ts +14 -0
- package/dist/types/hooks/use-visible-grid-plans.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/filter-unused-features-object.d.ts.map +1 -1
- package/dist/types/lib/get-plan-features-object.d.ts +1 -1
- package/dist/types/lib/get-plan-features-object.d.ts.map +1 -1
- package/dist/types/lib/plan-pricing-utils.d.ts +105 -0
- package/dist/types/lib/plan-pricing-utils.d.ts.map +1 -0
- package/dist/types/types.d.ts +33 -6
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +39 -28
- package/src/_shared.scss +4 -3
- package/src/components/comparison-grid/index.stories.tsx +1 -1
- package/src/components/comparison-grid/index.tsx +263 -158
- package/src/components/comparison-grid/style.scss +10 -2
- package/src/components/features-grid/client-logo-list/client-list.tsx +0 -25
- package/src/components/features-grid/index.tsx +37 -19
- package/src/components/features-grid/plan-features-list.tsx +15 -4
- package/src/components/features-grid/plan-headers.tsx +10 -3
- package/src/components/features-grid/plan-tagline.tsx +1 -1
- package/src/components/features-grid/style.scss +111 -21
- package/src/components/features-grid/table.tsx +4 -2
- package/src/components/features.tsx +66 -6
- package/src/components/item.tsx +6 -3
- package/src/components/plan-button/index.tsx +7 -1
- package/src/components/plan-button/style.scss +71 -47
- package/src/components/plan-div-td-container.tsx +6 -2
- package/src/components/plan-logo.tsx +16 -9
- package/src/components/plan-type-selector/components/interval-type-dropdown.tsx +14 -1
- package/src/components/plan-type-selector/hooks/use-max-discount.ts +8 -47
- package/src/components/plan-type-selector/hooks/use-max-discounts-for-plan-terms.ts +19 -17
- package/src/components/plans-2023-tooltip.tsx +17 -5
- package/src/components/shared/action-button/index.tsx +46 -5
- package/src/components/shared/action-button/style.scss +4 -0
- package/src/components/shared/billing-timeframe/index.tsx +12 -7
- package/src/components/shared/header-price/index.tsx +129 -27
- package/src/components/shared/header-price/style.scss +10 -2
- package/src/components/shared/storage/components/plan-storage.tsx +2 -2
- package/src/components/shared/storage/components/storage-dropdown.tsx +36 -15
- package/src/components/shared/storage/components/storage-feature-label.tsx +2 -1
- package/src/components/shared/storage/hooks/use-plan-storage.ts +3 -0
- package/src/components/test/actions-button.tsx +5 -0
- package/src/components/test/billing-timeframe.tsx +1 -1
- package/src/components/test/header-price.tsx +342 -4
- package/src/fixtures/sites-purchases.ts +2 -4
- package/src/grid-context.tsx +9 -0
- package/src/hooks/data-store/get-renewal-pricing-text.ts +73 -0
- package/src/hooks/data-store/types.ts +21 -0
- package/src/hooks/data-store/use-grid-plans-for-comparison-grid.ts +10 -0
- package/src/hooks/data-store/use-grid-plans-for-features-grid.ts +10 -0
- package/src/hooks/data-store/use-grid-plans.tsx +189 -23
- package/src/hooks/data-store/use-highlight-labels.ts +12 -3
- package/src/hooks/data-store/use-plan-billing-description.tsx +80 -15
- package/src/hooks/data-store/use-plan-billing-period.tsx +28 -0
- package/src/hooks/data-store/use-plan-features-for-grid-plans.ts +135 -1
- package/src/hooks/data-store/use-restructured-plan-features-for-comparison-grid.ts +93 -20
- package/src/hooks/data-store/use-title-badges.ts +31 -0
- package/src/hooks/test/use-visible-grid-plans.tsx +116 -0
- package/src/hooks/use-grid-size.ts +3 -2
- package/src/hooks/use-is-large-currency.ts +1 -1
- package/src/hooks/use-visible-grid-plans.tsx +102 -0
- package/src/index.tsx +20 -0
- package/src/lib/get-plan-features-object.ts +23 -2
- package/src/lib/plan-pricing-utils.ts +211 -0
- package/src/lib/test/plan-pricing-utils.ts +594 -0
- package/src/style-imports.d.ts +3 -0
- package/src/types.ts +45 -4
- package/dist/cjs/components/features-grid/mobile-free-domain.js +0 -25
- package/dist/cjs/components/features-grid/mobile-free-domain.js.map +0 -1
- package/dist/cjs/lib/get-plan-pricing-info-from-grid-plans.js +0 -15
- package/dist/cjs/lib/get-plan-pricing-info-from-grid-plans.js.map +0 -1
- package/dist/cjs/lib/sort-plan-properties.js +0 -26
- package/dist/cjs/lib/sort-plan-properties.js.map +0 -1
- package/dist/esm/components/features-grid/mobile-free-domain.js +0 -23
- package/dist/esm/components/features-grid/mobile-free-domain.js.map +0 -1
- package/dist/esm/lib/get-plan-pricing-info-from-grid-plans.js +0 -12
- package/dist/esm/lib/get-plan-pricing-info-from-grid-plans.js.map +0 -1
- package/dist/esm/lib/sort-plan-properties.js +0 -23
- package/dist/esm/lib/sort-plan-properties.js.map +0 -1
- package/dist/types/components/features-grid/mobile-free-domain.d.ts +0 -8
- package/dist/types/components/features-grid/mobile-free-domain.d.ts.map +0 -1
- package/dist/types/lib/get-plan-pricing-info-from-grid-plans.d.ts +0 -9
- package/dist/types/lib/get-plan-pricing-info-from-grid-plans.d.ts.map +0 -1
- package/dist/types/lib/sort-plan-properties.d.ts +0 -3
- package/dist/types/lib/sort-plan-properties.d.ts.map +0 -1
- package/src/components/features-grid/mobile-free-domain.tsx +0 -51
- package/src/lib/get-plan-pricing-info-from-grid-plans.ts +0 -31
- package/src/lib/sort-plan-properties.ts +0 -27
- package/src/lib/test/sort-plan-properties.ts +0 -122
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-plan-billing-description.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-billing-description.tsx"],"names":[],"mappings":";AAAA,OAAO,EACN,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EAErB,yBAAyB,EACzB,aAAa,EACb,0BAA0B,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,
|
|
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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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TERM_ANNUALLY, TERM_BIENNIALLY, TERM_MONTHLY, TERM_TRIENNIALLY, } from '@automattic/calypso-products';
|
|
2
|
+
const usePlanBillingPeriod = ({ intervalType, defaultValue, }) => {
|
|
3
|
+
const plans = {
|
|
4
|
+
monthly: TERM_MONTHLY,
|
|
5
|
+
yearly: TERM_ANNUALLY,
|
|
6
|
+
'2yearly': TERM_BIENNIALLY,
|
|
7
|
+
'3yearly': TERM_TRIENNIALLY,
|
|
8
|
+
};
|
|
9
|
+
return plans[intervalType] || defaultValue || TERM_ANNUALLY;
|
|
10
|
+
};
|
|
11
|
+
export default usePlanBillingPeriod;
|
|
12
|
+
//# sourceMappingURL=use-plan-billing-period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-plan-billing-period.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-billing-period.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEN,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,GAChB,MAAM,8BAA8B,CAAC;AAItC,MAAM,oBAAoB,GAAG,CAAE,EAC9B,YAAY,EACZ,YAAY,GAIZ,EAAG,EAAE;IACL,MAAM,KAAK,GAAsF;QAChG,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,gBAAgB;KAClB,CAAC;IAEX,OAAO,KAAK,CAAE,YAAY,CAAE,IAAI,YAAY,IAAI,aAAa,CAAC;AAC/D,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -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 (
|
|
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":"AAAA,OAAO,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,
|
|
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 '
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
.
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
}, [
|
|
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":"AAAA,OAAO,EACN,2BAA2B,EAC3B,SAAS,EACT,gBAAgB,EAEhB,qBAAqB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
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":"AAAA,OAAO,EACN,2BAA2B,EAC3B,SAAS,EACT,gBAAgB,EAEhB,qBAAqB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,2BAA2B,MAAM,oCAAoC,CAAC;AA8B7E,MAAM,4CAA4C,GACjD,CAAE,EACD,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,MAAM,EACN,eAAe,EACf,wBAAwB,EACxB,oBAAoB,EACpB,sCAAsC,EACtC,mBAAmB,GACnB,EAAG,EAAE;IACL,MAAM,wBAAwB,GAAG,2BAA2B,CAAE;QAC7D,SAAS;QACT,eAAe;QACf,MAAM;QACN,eAAe;QACf,wBAAwB;QACxB,oBAAoB;QACpB,sCAAsC;QACtC,mBAAmB;KACnB,CAAE,CAAC;IAEJ,OAAO,OAAO,CAAE,GAAG,EAAE;QACpB,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,MAAM,cAAc,GAA8C,EAAE,CAAC;QAErE,KAAM,MAAM,QAAQ,IAAI,SAAS,EAAG,CAAC;YACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,MAAM,eAAe,GAAG,2BAA2B,CAAE,QAAQ,EAAE,SAAS,CAAE,CAAC;YAC3E,MAAM,uBAAuB,GAAG,eAAe,CAAC,0BAA0B,EAAE,EAAE,CAAC;YAC/E,MAAM,aAAa,GAAG,SAAS,CAAE,QAAQ,CAAE,CAAC;YAE5C,IAAI,aAAa,CAAC;YAElB,wFAAwF;YACxF,IACC,mBAAmB;gBACnB,eAAe,CAAC,iDAAiD,EAAE,EAAE,EAAE,MAAM,EAC5E,CAAC;gBACF,aAAa,GAAG,qBAAqB,CACpC,eAAe,EACf,eAAe,CAAC,iDAAiD,EAAE,CAAC,KAAK,EAAE,EAC3E,mBAAmB,CACnB,CAAC;YACH,CAAC;iBAAM;YACN,sDAAsD;YACtD,eAAe,CAAC,oCAAoC,EAAE,EAAE,CAAC,MAAM,EAC9D,CAAC;gBACF,aAAa,GAAG,qBAAqB,CACpC,eAAe,EACf,eAAe,CAAC,oCAAoC,EAAE,CAAC,KAAK,EAAE,CAC9D,CAAC;YACH,CAAC;iBAAM,IAAK,yBAAyB,KAAK,MAAM,EAAG,CAAC;gBACnD,yDAAyD;gBACzD,IAAK,eAAe,EAAE,8BAA8B,EAAG,CAAC;oBACvD,aAAa,GAAG,qBAAqB,CACpC,eAAe,EACf,eAAe,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,CACxD,CAAC;gBACH,CAAC;qBAAM,IAAK,eAAe,EAAE,8BAA8B,EAAG,CAAC;oBAC9D,aAAa,GAAG,qBAAqB,CACpC,eAAe,EACf,eAAe,CAAC,8BAA8B,EAAE,CAAC,KAAK,EAAE,CACxD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,+BAA+B;oBAC/B,aAAa,GAAG,qBAAqB,CACpC,eAAe,EACf,eAAe,CAAC,qCAAqC,EAAE,EAAE,CAAC,KAAK,EAAE,CACjE,CAAC;gBACH,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,eAAe;gBACf,aAAa,GAAG,qBAAqB,CACpC,eAAe,EACf,eAAe,CAAC,qCAAqC,EAAE,EAAE,CAAC,KAAK,EAAE,CACjE,CAAC;YACH,CAAC;YAED,oGAAoG;YACpG,sDAAsD;YACtD,qGAAqG;YACrG,gEAAgE;YAChE,IAAI,eAAe,CAAC;YACpB,IACC,mBAAmB;gBACnB,eAAe,CAAC,wDAAwD,EACvE,CAAC;gBACF,eAAe,GAAG,qBAAqB,CACtC,eAAe,EACf,eAAe,CAAC,wDAAwD,EAAE,CAAC,KAAK,EAAE,EAClF,mBAAmB,CACnB,CAAC;YACH,CAAC;iBAAM,IAAK,eAAe,CAAC,2CAA2C,EAAE,EAAE,CAAC,MAAM,EAAG,CAAC;gBACrF,eAAe,GAAG,qBAAqB,CACtC,eAAe,EACf,eAAe,CAAC,2CAA2C,EAAE,CAAC,KAAK,EAAE,CACrE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,eAAe,GAAG,qBAAqB,CACtC,eAAe,EACf,eAAe,CAAC,uCAAuC,EAAE,EAAE,CAAC,KAAK,EAAE,CACnE,CAAC;YACH,CAAC;YAED,MAAM,wBAAwB,GAC7B,uBAAuB;gBACtB,CAAC,CAAC,aAAa,EAAE,GAAG,CAAE,CAAE,OAAO,EAAG,EAAE;oBAClC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,QAAQ,CACnE,OAAO,CAAC,OAAO,EAAE,CACjB,CAAC;oBAEF,OAAO;wBACN,GAAG,OAAO;wBACV,2BAA2B;wBAC3B,uBAAuB,EAAE,CAAE,aAAa,IAAI,CAAE,2BAA2B;qBACzE,CAAC;gBACF,CAAC,CAAE;gBACL,CAAC,CAAC,IAAI,CAAC;YAET,MAAM,0BAA0B,GAC/B,uBAAuB;gBACtB,CAAC,CAAC,eAAe,EAAE,GAAG,CAAE,CAAE,OAAO,EAAG,EAAE;oBACpC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,QAAQ,CACnE,OAAO,CAAC,OAAO,EAAE,CACjB,CAAC;oBAEF,OAAO;wBACN,GAAG,OAAO;wBACV,2BAA2B;wBAC3B,uBAAuB,EAAE,CAAE,aAAa,IAAI,CAAE,2BAA2B;qBACzE,CAAC;gBACF,CAAC,CAAE;gBACL,CAAC,CAAC,IAAI,CAAC;YAET,MAAM,iBAAiB,GAAG,gBAAgB,CAAE,QAAQ,CAAE;gBACrD,CAAC,CAAC;oBACA,aAAa,EAAE,wBAAwB,IAAI,EAAE;oBAC7C,eAAe,EAAE,EAAE;iBAClB;gBACH,CAAC,CAAC;oBACA,aAAa,EAAE,wBAAwB,IAAI,EAAE;oBAC7C,eAAe,EAAE,0BAA0B,IAAI,EAAE;iBAChD,CAAC;YAEL,MAAM,oBAAoB,GAAG;gBAC5B,aAAa,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,YAAY,CAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACxF,eAAe,EACd,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,YAAY,CAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;aAC5E,CAAC;YAEF,cAAc,CAAE,QAAQ,CAAE,GAAG;gBAC5B,aAAa,EAAE;oBACd,GAAG,iBAAiB,CAAC,aAAa;oBAClC,GAAG,oBAAoB,CAAC,aAAa;iBACrC,CAAC,MAAM,CAAE,CAAE,OAAO,EAAG,EAAE;oBACvB,2HAA2H;oBAC3H,IACC,CAAE,CAAE,mBAAmB,KAAK,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAE;wBAClE,uBAAuB,CAAE;wBAC1B,qBAAqB,KAAK,OAAO,CAAC,OAAO,EAAE,EAC1C,CAAC;wBACF,OAAO,KAAK,CAAC;oBACd,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC,CAAE;gBACH,eAAe,EAAE;oBAChB,GAAG,iBAAiB,CAAC,eAAe;oBACpC,GAAG,oBAAoB,CAAC,eAAe;iBACvC;gBACD,cAAc,EAAE,wBAAwB,CAAE,QAAQ,CAAE,CAAC,cAAc;gBACnE,2BAA2B,EAAE,eAAe,CAAC,8BAA8B,EAAE,CAAE;oBAC9E,mBAAmB;iBACnB,CAAE;aACH,CAAC;YAEF,YAAY,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC,EAAE;QACF,SAAS;QACT,eAAe;QACf,wBAAwB;QACxB,MAAM;QACN,uBAAuB;QACvB,mBAAmB;KACnB,CAAE,CAAC;AACL,CAAC,CAAC;AAEH,eAAe,4CAA4C,CAAC"}
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-grid-size.js","sourceRoot":"","sources":["../../../src/hooks/use-grid-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-grid-size.js","sourceRoot":"","sources":["../../../src/hooks/use-grid-size.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAc/D;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,EAAE,YAAY,EAAE,oBAAoB,EAAS;IACjF,MAAM,CAAE,QAAQ,EAAE,WAAW,CAAE,GAAG,QAAQ,CAAqB,IAAI,CAAE,CAAC;IAEtE,eAAe,CAAE,GAAG,EAAE;QACrB,IAAK,CAAE,YAAY,CAAC,OAAO,EAAG,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAE,CAAE,CAAE,KAAK,CAAE,EAAG,EAAE;YACpD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;YAEpC,IAAK,KAAK,EAAG,CAAC;gBACb,KAAM,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,CAAE,GAAG,oBAAoB,CAAE,CAAC,OAAO,EAAE,EAAG,CAAC;oBACtE,IAAK,KAAK,IAAI,KAAK,EAAG,CAAC;wBACtB,WAAW,CAAE,GAAG,CAAE,CAAC;wBACnB,MAAM;oBACP,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAE,CAAC;QAEJ,QAAQ,CAAC,OAAO,CAAE,YAAY,CAAC,OAAO,CAAE,CAAC;QAEzC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC,EAAE,CAAE,YAAY,EAAE,oBAAoB,CAAE,CAAE,CAAC;IAE5C,OAAO,QAAQ,CAAC;AACjB,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,
|
|
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
|
@@ -9,10 +9,12 @@ import useGridPlans, { usePlanTypesWithIntent } from './hooks/data-store/use-gri
|
|
|
9
9
|
import useGridPlansForComparisonGrid from './hooks/data-store/use-grid-plans-for-comparison-grid';
|
|
10
10
|
import useGridPlansForFeaturesGrid from './hooks/data-store/use-grid-plans-for-features-grid';
|
|
11
11
|
import usePlanBillingDescription from './hooks/data-store/use-plan-billing-description';
|
|
12
|
+
import usePlanBillingPeriod from './hooks/data-store/use-plan-billing-period';
|
|
12
13
|
import usePlanFeaturesForGridPlans from './hooks/data-store/use-plan-features-for-grid-plans';
|
|
13
14
|
import usePlansFromTypes from './hooks/data-store/use-plans-from-types';
|
|
14
15
|
import useRestructuredPlanFeaturesForComparisonGrid from './hooks/data-store/use-restructured-plan-features-for-comparison-grid';
|
|
15
16
|
import { useManageTooltipToggle } from './hooks/use-manage-tooltip-toggle';
|
|
17
|
+
import { getPlanPriceForDuration, calculateDiscountPercentage, fromPricingMetaForGridPlan, fromVariantPriceData, } from './lib/plan-pricing-utils';
|
|
16
18
|
/**
|
|
17
19
|
* Components
|
|
18
20
|
*/
|
|
@@ -20,9 +22,10 @@ export { ComparisonGrid, FeaturesGrid, PlanTypeSelector, PlanButton, Plans2023To
|
|
|
20
22
|
/**
|
|
21
23
|
* Hooks/helpers
|
|
22
24
|
*/
|
|
23
|
-
export { useManageTooltipToggle, useGridPlans, useGridPlansForFeaturesGrid, useGridPlansForComparisonGrid, useGridPlanForSpotlight, usePlanBillingDescription, usePlanFeaturesForGridPlans, usePlansFromTypes, usePlanTypesWithIntent, useRestructuredPlanFeaturesForComparisonGrid, };
|
|
25
|
+
export { useManageTooltipToggle, useGridPlans, useGridPlansForFeaturesGrid, useGridPlansForComparisonGrid, useGridPlanForSpotlight, usePlanBillingPeriod, usePlanBillingDescription, usePlanFeaturesForGridPlans, usePlansFromTypes, usePlanTypesWithIntent, useRestructuredPlanFeaturesForComparisonGrid, };
|
|
24
26
|
/**
|
|
25
27
|
* Constants
|
|
26
28
|
*/
|
|
27
29
|
export { EFFECTIVE_TERMS_LIST };
|
|
30
|
+
export { getPlanPriceForDuration, calculateDiscountPercentage, fromPricingMetaForGridPlan, fromVariantPriceData, };
|
|
28
31
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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,2BAA2B,MAAM,qDAAqD,CAAC;AAC9F,OAAO,iBAAiB,MAAM,yCAAyC,CAAC;AACxE,OAAO,4CAA4C,MAAM,uEAAuE,CAAC;AACjI,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,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) =>
|
|
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":"
|
|
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"}
|