@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
|
@@ -4,12 +4,15 @@ exports.default = usePlanBillingDescription;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const calypso_products_1 = require("@automattic/calypso-products");
|
|
6
6
|
const data_stores_1 = require("@automattic/data-stores");
|
|
7
|
+
const number_formatters_1 = require("@automattic/number-formatters");
|
|
7
8
|
const i18n_calypso_1 = require("i18n-calypso");
|
|
8
9
|
const grid_context_1 = require("../../grid-context");
|
|
10
|
+
const plan_pricing_utils_1 = require("../../lib/plan-pricing-utils");
|
|
11
|
+
const get_renewal_pricing_text_1 = require("./get-renewal-pricing-text");
|
|
9
12
|
function usePlanBillingDescription({ siteId, planSlug, pricing, isMonthlyPlan, coupon, useCheckPlanAvailabilityForPurchase, }) {
|
|
10
13
|
const translate = (0, i18n_calypso_1.useTranslate)();
|
|
11
14
|
const { currencyCode, originalPrice, discountedPrice, billingPeriod, introOffer } = pricing || {};
|
|
12
|
-
const { reflectStorageSelectionInPlanPrices } = (0, grid_context_1.usePlansGridContext)();
|
|
15
|
+
const { reflectStorageSelectionInPlanPrices, showSimplifiedBillingDescription, showBillingDescriptionForIncreasedRenewalPrice, enableCategorisedFeatures, } = (0, grid_context_1.usePlansGridContext)();
|
|
13
16
|
const yearlyVariantPlanSlug = (0, calypso_products_1.getPlanSlugForTermVariant)(planSlug, calypso_products_1.TERM_ANNUALLY);
|
|
14
17
|
const yearlyVariantPricing = data_stores_1.Plans.usePricingMetaForGridPlans({
|
|
15
18
|
planSlugs: yearlyVariantPlanSlug ? [yearlyVariantPlanSlug] : [],
|
|
@@ -30,28 +33,37 @@ function usePlanBillingDescription({ siteId, planSlug, pricing, isMonthlyPlan, c
|
|
|
30
33
|
originalPrice?.monthly &&
|
|
31
34
|
yearlyVariantPricing &&
|
|
32
35
|
(!introOffer || introOffer.isOfferComplete)) {
|
|
33
|
-
|
|
36
|
+
// For renewal pricing experiment in FeaturesGrid, show "per month" and move savings text to post-button area
|
|
37
|
+
// For ComparisonGrid, keep the original savings text above the button
|
|
38
|
+
if (showBillingDescriptionForIncreasedRenewalPrice && enableCategorisedFeatures) {
|
|
39
|
+
return translate('per month');
|
|
40
|
+
}
|
|
41
|
+
let yearlyVariantMaybeDiscountedPrice = Number.isFinite(yearlyVariantPricing.discountedPrice?.monthly)
|
|
34
42
|
? yearlyVariantPricing.discountedPrice?.monthly
|
|
35
43
|
: yearlyVariantPricing.originalPrice?.monthly;
|
|
36
|
-
if (
|
|
37
|
-
yearlyVariantMaybeDiscountedPrice
|
|
44
|
+
if (showBillingDescriptionForIncreasedRenewalPrice) {
|
|
45
|
+
yearlyVariantMaybeDiscountedPrice = Number.isFinite(yearlyVariantPricing.discountedPrice?.monthly)
|
|
46
|
+
? yearlyVariantPricing.discountedPrice?.monthly
|
|
47
|
+
: yearlyVariantPricing.introOffer?.rawPrice?.monthly ?? null;
|
|
48
|
+
}
|
|
49
|
+
const discountRate = yearlyVariantMaybeDiscountedPrice != null
|
|
50
|
+
? (0, plan_pricing_utils_1.calculateDiscountPercentage)(originalPrice.monthly, yearlyVariantMaybeDiscountedPrice)
|
|
51
|
+
: undefined;
|
|
52
|
+
if (discountRate !== undefined) {
|
|
38
53
|
return translate('Save %(discountRate)s%% by paying annually', {
|
|
39
|
-
args: {
|
|
40
|
-
discountRate: Math.floor((100 * (originalPrice.monthly - yearlyVariantMaybeDiscountedPrice)) /
|
|
41
|
-
originalPrice.monthly),
|
|
42
|
-
},
|
|
54
|
+
args: { discountRate },
|
|
43
55
|
});
|
|
44
56
|
}
|
|
45
57
|
return null;
|
|
46
58
|
}
|
|
47
59
|
const discountedPriceFullTermText = currencyCode && typeof discountedPrice?.full === 'number'
|
|
48
|
-
? (0,
|
|
60
|
+
? (0, number_formatters_1.formatCurrency)(discountedPrice.full, currencyCode, {
|
|
49
61
|
stripZeros: true,
|
|
50
62
|
isSmallestUnit: true,
|
|
51
63
|
})
|
|
52
64
|
: null;
|
|
53
65
|
const originalPriceFullTermText = currencyCode && originalPrice?.full
|
|
54
|
-
? (0,
|
|
66
|
+
? (0, number_formatters_1.formatCurrency)(originalPrice.full, currencyCode, {
|
|
55
67
|
stripZeros: true,
|
|
56
68
|
isSmallestUnit: true,
|
|
57
69
|
})
|
|
@@ -61,10 +73,13 @@ function usePlanBillingDescription({ siteId, planSlug, pricing, isMonthlyPlan, c
|
|
|
61
73
|
* 1. We only expose introOffers to monthly & yearly plans for now (so no need to introduce more translations just yet)
|
|
62
74
|
* 2. We only expose month & year based intervals for now (so no need to introduce more translations just yet)
|
|
63
75
|
*/
|
|
64
|
-
if (introOffer?.intervalCount &&
|
|
76
|
+
if (introOffer?.intervalCount &&
|
|
77
|
+
introOffer.intervalUnit &&
|
|
78
|
+
!introOffer.isOfferComplete &&
|
|
79
|
+
!showBillingDescriptionForIncreasedRenewalPrice) {
|
|
65
80
|
const discountedPriceFull = typeof discountedPrice?.full === 'number' ? discountedPrice.full : introOffer?.rawPrice?.full;
|
|
66
81
|
const introOfferFullTermText = currencyCode && typeof discountedPriceFull === 'number'
|
|
67
|
-
? (0,
|
|
82
|
+
? (0, number_formatters_1.formatCurrency)(discountedPriceFull, currencyCode, {
|
|
68
83
|
stripZeros: true,
|
|
69
84
|
isSmallestUnit: true,
|
|
70
85
|
})
|
|
@@ -171,7 +186,16 @@ function usePlanBillingDescription({ siteId, planSlug, pricing, isMonthlyPlan, c
|
|
|
171
186
|
*/
|
|
172
187
|
return null;
|
|
173
188
|
}
|
|
174
|
-
|
|
189
|
+
// For renewal pricing experiment with intro pricing
|
|
190
|
+
if (showBillingDescriptionForIncreasedRenewalPrice && discountedPriceFullTermText) {
|
|
191
|
+
// In FeaturesGrid, show "per month" above button
|
|
192
|
+
if (enableCategorisedFeatures) {
|
|
193
|
+
return translate('per month');
|
|
194
|
+
}
|
|
195
|
+
// In ComparisonGrid, continue to renewal pricing section below (don't return here)
|
|
196
|
+
}
|
|
197
|
+
else if (discountedPriceFullTermText) {
|
|
198
|
+
// Show intro pricing for non-experiment users
|
|
175
199
|
if (calypso_products_1.PLAN_ANNUAL_PERIOD === billingPeriod) {
|
|
176
200
|
return translate('per month, %(fullTermDiscountedPriceText)s for the first year, excl. taxes', {
|
|
177
201
|
args: { fullTermDiscountedPriceText: discountedPriceFullTermText },
|
|
@@ -191,6 +215,37 @@ function usePlanBillingDescription({ siteId, planSlug, pricing, isMonthlyPlan, c
|
|
|
191
215
|
});
|
|
192
216
|
}
|
|
193
217
|
}
|
|
218
|
+
if (showBillingDescriptionForIncreasedRenewalPrice) {
|
|
219
|
+
// For renewal pricing experiment, show variation-specific text
|
|
220
|
+
// In FeaturesGrid (enableCategorisedFeatures), show "per month" and move renewal text below CTA
|
|
221
|
+
// In ComparisonGrid, show full renewal text above CTA
|
|
222
|
+
if (enableCategorisedFeatures) {
|
|
223
|
+
return translate('per month');
|
|
224
|
+
}
|
|
225
|
+
return (0, get_renewal_pricing_text_1.getRenewalPricingText)({
|
|
226
|
+
pricing,
|
|
227
|
+
showBillingDescriptionForIncreasedRenewalPrice,
|
|
228
|
+
translate,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
else if (showSimplifiedBillingDescription) {
|
|
232
|
+
// Use simplified billing description
|
|
233
|
+
if (calypso_products_1.PLAN_ANNUAL_PERIOD === billingPeriod) {
|
|
234
|
+
return translate('per month, billed every %(months)s months', {
|
|
235
|
+
args: { months: 12 },
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
if (calypso_products_1.PLAN_BIENNIAL_PERIOD === billingPeriod) {
|
|
239
|
+
return translate('per month, billed every %(months)s months', {
|
|
240
|
+
args: { months: 24 },
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
if (calypso_products_1.PLAN_TRIENNIAL_PERIOD === billingPeriod) {
|
|
244
|
+
return translate('per month, billed every %(months)s months', {
|
|
245
|
+
args: { months: 36 },
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
194
249
|
else if (originalPriceFullTermText) {
|
|
195
250
|
if (calypso_products_1.PLAN_ANNUAL_PERIOD === billingPeriod) {
|
|
196
251
|
return translate('per month, %(rawPrice)s billed annually, excl. taxes', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-plan-billing-description.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-plan-billing-description.tsx"],"names":[],"mappings":";;
|
|
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,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const calypso_products_1 = require("@automattic/calypso-products");
|
|
4
|
+
const usePlanBillingPeriod = ({ intervalType, defaultValue, }) => {
|
|
5
|
+
const plans = {
|
|
6
|
+
monthly: calypso_products_1.TERM_MONTHLY,
|
|
7
|
+
yearly: calypso_products_1.TERM_ANNUALLY,
|
|
8
|
+
'2yearly': calypso_products_1.TERM_BIENNIALLY,
|
|
9
|
+
'3yearly': calypso_products_1.TERM_TRIENNIALLY,
|
|
10
|
+
};
|
|
11
|
+
return plans[intervalType] || defaultValue || calypso_products_1.TERM_ANNUALLY;
|
|
12
|
+
};
|
|
13
|
+
exports.default = usePlanBillingPeriod;
|
|
14
|
+
//# 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,mEAMsC;AAItC,MAAM,oBAAoB,GAAG,CAAE,EAC9B,YAAY,EACZ,YAAY,GAIZ,EAAG,EAAE;IACL,MAAM,KAAK,GAAsF;QAChG,OAAO,EAAE,+BAAY;QACrB,MAAM,EAAE,gCAAa;QACrB,SAAS,EAAE,kCAAe;QAC1B,SAAS,EAAE,mCAAgB;KAClB,CAAC;IAEX,OAAO,KAAK,CAAE,YAAY,CAAE,IAAI,YAAY,IAAI,gCAAa,CAAC;AAC/D,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
|
|
@@ -3,14 +3,53 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const calypso_products_1 = require("@automattic/calypso-products");
|
|
5
5
|
const element_1 = require("@wordpress/element");
|
|
6
|
+
const i18n_calypso_1 = require("i18n-calypso");
|
|
6
7
|
const get_plan_features_object_1 = tslib_1.__importDefault(require("../../lib/get-plan-features-object"));
|
|
7
8
|
const use_highlighted_features_1 = tslib_1.__importDefault(require("./use-highlighted-features"));
|
|
9
|
+
function isPremiumWebsiteBuilderPillFeature(featureSlug) {
|
|
10
|
+
return (featureSlug === calypso_products_1.FEATURE_AI_WEBSITE_BUILDER ||
|
|
11
|
+
featureSlug === calypso_products_1.FEATURE_GUIDED_WEBSITE_BUILDER ||
|
|
12
|
+
featureSlug === calypso_products_1.FEATURE_AI_WRITER_DESIGNER);
|
|
13
|
+
}
|
|
14
|
+
function isBusinessAssistantPillFeature(featureSlug) {
|
|
15
|
+
return (featureSlug === calypso_products_1.FEATURE_ENHANCED_AI_ASSISTANT_AND_TOOLS ||
|
|
16
|
+
featureSlug === calypso_products_1.FEATURE_AI_ASSISTANT ||
|
|
17
|
+
featureSlug === calypso_products_1.FEATURE_BUILT_IN_SITE_ASSISTANT ||
|
|
18
|
+
featureSlug === calypso_products_1.FEATURE_AI_WRITER_DESIGNER);
|
|
19
|
+
}
|
|
20
|
+
function getPricingDifferentiationFeatureBadgeText(planSlug, featureSlug, translate, options) {
|
|
21
|
+
const suppressAiPills = options?.suppressAiPills ?? false;
|
|
22
|
+
if ((0, calypso_products_1.isPersonalPlan)(planSlug) && featureSlug === calypso_products_1.FEATURE_CUSTOM_DOMAIN) {
|
|
23
|
+
return translate('Free');
|
|
24
|
+
}
|
|
25
|
+
if (!suppressAiPills &&
|
|
26
|
+
(0, calypso_products_1.isPremiumPlan)(planSlug) &&
|
|
27
|
+
isPremiumWebsiteBuilderPillFeature(featureSlug)) {
|
|
28
|
+
return translate('AI');
|
|
29
|
+
}
|
|
30
|
+
if ((0, calypso_products_1.isPremiumPlan)(planSlug) && featureSlug === calypso_products_1.FEATURE_SIMPLE_PAYMENTS) {
|
|
31
|
+
return translate('New');
|
|
32
|
+
}
|
|
33
|
+
if (!suppressAiPills &&
|
|
34
|
+
(0, calypso_products_1.isBusinessPlan)(planSlug) &&
|
|
35
|
+
isBusinessAssistantPillFeature(featureSlug)) {
|
|
36
|
+
return translate('AI');
|
|
37
|
+
}
|
|
38
|
+
if ((0, calypso_products_1.isBusinessPlan)(planSlug) && featureSlug === calypso_products_1.FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR) {
|
|
39
|
+
return translate('Email');
|
|
40
|
+
}
|
|
41
|
+
if ((0, calypso_products_1.isBusinessPlan)(planSlug) && featureSlug === calypso_products_1.FEATURE_EMAIL_MARKETING) {
|
|
42
|
+
return translate('New');
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
8
46
|
/**
|
|
9
47
|
* usePlanFeaturesForGridPlans:
|
|
10
48
|
* - these plan features are mainly relevant to FeaturesGrid and Spotlight components
|
|
11
49
|
* - this hook can migrate to data store once features definitions migrate to calypso-products
|
|
12
50
|
*/
|
|
13
|
-
const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, isInSignup, }) => {
|
|
51
|
+
const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, isInSignup, useVar42NoAiFeatures, showPricingDifferentiationFeaturePills, isExperimentVariant, }) => {
|
|
52
|
+
const translate = (0, i18n_calypso_1.useTranslate)();
|
|
14
53
|
const highlightedFeatures = (0, use_highlighted_features_1.default)({ intent: intent ?? null, isInSignup });
|
|
15
54
|
return (0, element_1.useMemo)(() => {
|
|
16
55
|
return gridPlans.reduce((acc, gridPlan) => {
|
|
@@ -19,7 +58,13 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
|
|
|
19
58
|
const isMonthlyPlan = (0, calypso_products_1.isMonthly)(planSlug);
|
|
20
59
|
let wpcomFeatures = [];
|
|
21
60
|
let jetpackFeatures = [];
|
|
22
|
-
if (
|
|
61
|
+
if (useVar42NoAiFeatures) {
|
|
62
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj?.getVar42NoAiSignupWpcomFeatures?.() ??
|
|
63
|
+
planConstantObj?.get2023PricingGridSignupWpcomFeatures?.() ??
|
|
64
|
+
[], isExperimentVariant ?? true);
|
|
65
|
+
jetpackFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.() ?? [], isExperimentVariant ?? true);
|
|
66
|
+
}
|
|
67
|
+
else if ('plans-newsletter' === intent) {
|
|
23
68
|
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj?.getNewsletterSignupFeatures?.() ?? []);
|
|
24
69
|
}
|
|
25
70
|
else if ('plans-p2' === intent) {
|
|
@@ -46,6 +91,20 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
|
|
|
46
91
|
});
|
|
47
92
|
}
|
|
48
93
|
}
|
|
94
|
+
else if ('plans-wordpress-hosting' === intent) {
|
|
95
|
+
// Use visual split features for WordPress hosting intent
|
|
96
|
+
if (planConstantObj?.getVisualSplitBusinessFeatures) {
|
|
97
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.getVisualSplitBusinessFeatures() ?? []);
|
|
98
|
+
}
|
|
99
|
+
else if (planConstantObj?.getVisualSplitCommerceFeatures) {
|
|
100
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.getVisualSplitCommerceFeatures() ?? []);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Fallback to default features if visual split features aren't available
|
|
104
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj?.get2023PricingGridSignupWpcomFeatures?.() ?? []);
|
|
105
|
+
}
|
|
106
|
+
jetpackFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.() ?? []);
|
|
107
|
+
}
|
|
49
108
|
else {
|
|
50
109
|
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj?.get2023PricingGridSignupWpcomFeatures?.() ?? []);
|
|
51
110
|
jetpackFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.() ?? []);
|
|
@@ -100,12 +159,23 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
|
|
|
100
159
|
return;
|
|
101
160
|
}
|
|
102
161
|
const availableOnlyForAnnualPlans = annualPlansOnlyFeatures.includes(feature.getSlug());
|
|
162
|
+
const featureSlug = feature.getSlug();
|
|
163
|
+
const badgeText = showPricingDifferentiationFeaturePills
|
|
164
|
+
? getPricingDifferentiationFeatureBadgeText(planSlug, featureSlug, translate, {
|
|
165
|
+
suppressAiPills: useVar42NoAiFeatures,
|
|
166
|
+
})
|
|
167
|
+
: undefined;
|
|
103
168
|
wpcomFeaturesTransformed.push({
|
|
104
169
|
...feature,
|
|
105
170
|
availableOnlyForAnnualPlans,
|
|
106
171
|
availableForCurrentPlan: !isMonthlyPlan || !availableOnlyForAnnualPlans,
|
|
172
|
+
...(badgeText && { badgeText }),
|
|
107
173
|
});
|
|
108
174
|
});
|
|
175
|
+
if (wpcomFeaturesTransformed.length > 0 && isExperimentVariant) {
|
|
176
|
+
const lastIndex = wpcomFeaturesTransformed.length - 1;
|
|
177
|
+
wpcomFeaturesTransformed[lastIndex].isExperimentLastFeature = true;
|
|
178
|
+
}
|
|
109
179
|
}
|
|
110
180
|
const storageFeature = planConstantObj.getStorageFeature?.(showLegacyStorageFeature, gridPlan.current);
|
|
111
181
|
return {
|
|
@@ -127,6 +197,10 @@ const usePlanFeaturesForGridPlans = ({ gridPlans, allFeaturesList, hasRedeemedDo
|
|
|
127
197
|
showLegacyStorageFeature,
|
|
128
198
|
allFeaturesList,
|
|
129
199
|
hasRedeemedDomainCredit,
|
|
200
|
+
useVar42NoAiFeatures,
|
|
201
|
+
showPricingDifferentiationFeaturePills,
|
|
202
|
+
isExperimentVariant,
|
|
203
|
+
translate,
|
|
130
204
|
]);
|
|
131
205
|
};
|
|
132
206
|
exports.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,
|
|
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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"}
|
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const calypso_products_1 = require("@automattic/calypso-products");
|
|
5
|
-
const
|
|
5
|
+
const element_1 = require("@wordpress/element");
|
|
6
6
|
const get_plan_features_object_1 = tslib_1.__importDefault(require("../../lib/get-plan-features-object"));
|
|
7
7
|
const use_plan_features_for_grid_plans_1 = tslib_1.__importDefault(require("./use-plan-features-for-grid-plans"));
|
|
8
|
-
const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, }) => {
|
|
8
|
+
const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesList, hasRedeemedDomainCredit, intent, selectedFeature, showLegacyStorageFeature, useVar42NoAiFeatures, showPricingDifferentiationFeaturePills, isExperimentVariant, }) => {
|
|
9
9
|
const planFeaturesForGridPlans = (0, use_plan_features_for_grid_plans_1.default)({
|
|
10
10
|
gridPlans,
|
|
11
11
|
allFeaturesList,
|
|
12
12
|
intent,
|
|
13
13
|
selectedFeature,
|
|
14
14
|
showLegacyStorageFeature,
|
|
15
|
+
useVar42NoAiFeatures,
|
|
16
|
+
showPricingDifferentiationFeaturePills,
|
|
17
|
+
isExperimentVariant,
|
|
15
18
|
});
|
|
16
|
-
return (0,
|
|
19
|
+
return (0, element_1.useMemo)(() => {
|
|
17
20
|
let previousPlan = null;
|
|
18
21
|
const planFeatureMap = {};
|
|
19
22
|
for (const gridPlan of gridPlans) {
|
|
@@ -21,13 +24,49 @@ const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesLi
|
|
|
21
24
|
const planConstantObj = (0, calypso_products_1.applyTestFiltersToPlansList)(planSlug, undefined);
|
|
22
25
|
const annualPlansOnlyFeatures = planConstantObj.getAnnualPlansOnlyFeatures?.();
|
|
23
26
|
const isMonthlyPlan = (0, calypso_products_1.isMonthly)(planSlug);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
.
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
let wpcomFeatures;
|
|
28
|
+
// Plans differentiators (non-control): use experiment comparison override when present.
|
|
29
|
+
if (isExperimentVariant &&
|
|
30
|
+
planConstantObj.get2023PlanComparisonFeatureOverrideForExperiment?.()?.length) {
|
|
31
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PlanComparisonFeatureOverrideForExperiment().slice(), isExperimentVariant);
|
|
32
|
+
}
|
|
33
|
+
else if (
|
|
34
|
+
// Check if there's a specific override for comparison
|
|
35
|
+
planConstantObj.get2023PlanComparisonFeatureOverride?.().length) {
|
|
36
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PlanComparisonFeatureOverride().slice());
|
|
37
|
+
}
|
|
38
|
+
else if ('plans-wordpress-hosting' === intent) {
|
|
39
|
+
// Use visual split features for WordPress hosting intent
|
|
40
|
+
if (planConstantObj?.getVisualSplitBusinessFeatures) {
|
|
41
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.getVisualSplitBusinessFeatures().slice());
|
|
42
|
+
}
|
|
43
|
+
else if (planConstantObj?.getVisualSplitCommerceFeatures) {
|
|
44
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.getVisualSplitCommerceFeatures().slice());
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Fallback to default features
|
|
48
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PricingGridSignupWpcomFeatures?.().slice());
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Default case
|
|
53
|
+
wpcomFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PricingGridSignupWpcomFeatures?.().slice());
|
|
54
|
+
}
|
|
55
|
+
// Plans Differentiators Experiment: For comparison grid, use dedicated experiment override function
|
|
56
|
+
// when in an experiment variant for Jetpack features.
|
|
57
|
+
// Note: We check if the function exists, not if it returns a non-empty array, because an empty array
|
|
58
|
+
// is a valid return value (meaning "show no Jetpack features").
|
|
59
|
+
let jetpackFeatures;
|
|
60
|
+
if (isExperimentVariant &&
|
|
61
|
+
planConstantObj.get2023PlanComparisonJetpackFeatureOverrideForExperiment) {
|
|
62
|
+
jetpackFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PlanComparisonJetpackFeatureOverrideForExperiment().slice(), isExperimentVariant);
|
|
63
|
+
}
|
|
64
|
+
else if (planConstantObj.get2023PlanComparisonJetpackFeatureOverride?.().length) {
|
|
65
|
+
jetpackFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PlanComparisonJetpackFeatureOverride().slice());
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
jetpackFeatures = (0, get_plan_features_object_1.default)(allFeaturesList, planConstantObj.get2023PricingGridSignupJetpackFeatures?.().slice());
|
|
69
|
+
}
|
|
31
70
|
const wpcomFeaturesTransformed = annualPlansOnlyFeatures
|
|
32
71
|
? wpcomFeatures?.map((feature) => {
|
|
33
72
|
const availableOnlyForAnnualPlans = annualPlansOnlyFeatures.includes(feature.getSlug());
|
|
@@ -79,12 +118,21 @@ const useRestructuredPlanFeaturesForComparisonGrid = ({ gridPlans, allFeaturesLi
|
|
|
79
118
|
...previousPlanFeatures.jetpackFeatures,
|
|
80
119
|
],
|
|
81
120
|
storageFeature: planFeaturesForGridPlans[planSlug].storageFeature,
|
|
82
|
-
comparisonGridFeatureLabels: planConstantObj.getPlanComparisonFeatureLabels?.(
|
|
121
|
+
comparisonGridFeatureLabels: planConstantObj.getPlanComparisonFeatureLabels?.({
|
|
122
|
+
isExperimentVariant,
|
|
123
|
+
}),
|
|
83
124
|
};
|
|
84
125
|
previousPlan = planSlug;
|
|
85
126
|
}
|
|
86
127
|
return planFeatureMap;
|
|
87
|
-
}, [
|
|
128
|
+
}, [
|
|
129
|
+
gridPlans,
|
|
130
|
+
allFeaturesList,
|
|
131
|
+
planFeaturesForGridPlans,
|
|
132
|
+
intent,
|
|
133
|
+
hasRedeemedDomainCredit,
|
|
134
|
+
isExperimentVariant,
|
|
135
|
+
]);
|
|
88
136
|
};
|
|
89
137
|
exports.default = useRestructuredPlanFeaturesForComparisonGrid;
|
|
90
138
|
//# 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,mEAMsC;AACtC,
|
|
1
|
+
{"version":3,"file":"use-restructured-plan-features-for-comparison-grid.js","sourceRoot":"","sources":["../../../../src/hooks/data-store/use-restructured-plan-features-for-comparison-grid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const calypso_products_1 = require("@automattic/calypso-products");
|
|
4
|
+
const i18n_calypso_1 = require("i18n-calypso");
|
|
5
|
+
const useTitleBadges = ({ intent, planSlugs }) => {
|
|
6
|
+
const translate = (0, i18n_calypso_1.useTranslate)();
|
|
7
|
+
return planSlugs.reduce((acc, planSlug) => {
|
|
8
|
+
let label;
|
|
9
|
+
if ('plans-woo-hosted' === intent && (0, calypso_products_1.isWooHostedBasicPlan)(planSlug)) {
|
|
10
|
+
label = translate('Recommended');
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
...acc,
|
|
14
|
+
[planSlug]: label ?? null,
|
|
15
|
+
};
|
|
16
|
+
}, {});
|
|
17
|
+
};
|
|
18
|
+
exports.default = useTitleBadges;
|
|
19
|
+
//# 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,mEAAmF;AACnF,+CAA4C;AAS5C,MAAM,cAAc,GAAG,CAAE,EAAE,MAAM,EAAE,SAAS,EAAS,EAAG,EAAE;IACzD,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;IAEjC,OAAO,SAAS,CAAC,MAAM,CACtB,CAAE,GAAG,EAAE,QAAQ,EAAG,EAAE;QACnB,IAAI,KAAK,CAAC;QAEV,IAAK,kBAAkB,KAAK,MAAM,IAAI,IAAA,uCAAoB,EAAE,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,kBAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-grid-size.js","sourceRoot":"","sources":["../../../src/hooks/use-grid-size.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"use-grid-size.js","sourceRoot":"","sources":["../../../src/hooks/use-grid-size.ts"],"names":[],"mappings":";;AAkBA,8BA2BC;AA7CD,gDAA+D;AAc/D;;;GAGG;AACH,SAAwB,WAAW,CAAE,EAAE,YAAY,EAAE,oBAAoB,EAAS;IACjF,MAAM,CAAE,QAAQ,EAAE,WAAW,CAAE,GAAG,IAAA,kBAAQ,EAAqB,IAAI,CAAE,CAAC;IAEtE,IAAA,yBAAe,EAAE,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,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = useIsLargeCurrency;
|
|
4
|
+
const number_formatters_1 = require("@automattic/number-formatters");
|
|
4
5
|
const element_1 = require("@wordpress/element");
|
|
5
|
-
const i18n_calypso_1 = require("i18n-calypso");
|
|
6
6
|
const LARGE_ADD_ON_CURRENCY_CHAR_THRESHOLD = 7;
|
|
7
7
|
const LARGE_CURRENCY_CHAR_THRESHOLD = 6;
|
|
8
8
|
const LARGE_CURRENCY_COMBINED_CHAR_THRESHOLD = 9;
|
|
@@ -13,7 +13,7 @@ function useDisplayPrices(currencyCode, prices, ignoreWhitespace = false) {
|
|
|
13
13
|
* the display price is too long, we convert the integer to a display string.
|
|
14
14
|
*/
|
|
15
15
|
return (0, element_1.useMemo)(() => prices?.map((price) => {
|
|
16
|
-
const displayPrice = (0,
|
|
16
|
+
const displayPrice = (0, number_formatters_1.formatCurrency)(price, currencyCode, {
|
|
17
17
|
stripZeros: true,
|
|
18
18
|
isSmallestUnit: true,
|
|
19
19
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-is-large-currency.js","sourceRoot":"","sources":["../../../src/hooks/use-is-large-currency.ts"],"names":[],"mappings":";;AAoEA,qCAsBC;AA1FD,gDAA6C;AAC7C
|
|
1
|
+
{"version":3,"file":"use-is-large-currency.js","sourceRoot":"","sources":["../../../src/hooks/use-is-large-currency.ts"],"names":[],"mappings":";;AAoEA,qCAsBC;AA1FD,qEAA+D;AAC/D,gDAA6C;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,IAAA,iBAAO,EACb,GAAG,EAAE,CACJ,MAAM,EAAE,GAAG,CAAE,CAAE,KAAK,EAAG,EAAE;QACxB,MAAM,YAAY,GAAG,IAAA,kCAAc,EAAE,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,SAAwB,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,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useVisibleGridPlans = useVisibleGridPlans;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// hooks/use-visible-grid-plans.ts
|
|
6
|
+
const calypso_products_1 = require("@automattic/calypso-products");
|
|
7
|
+
const data_stores_1 = require("@automattic/data-stores");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const grid_context_1 = require("../grid-context");
|
|
10
|
+
const use_plan_billing_period_1 = tslib_1.__importDefault(require("./data-store/use-plan-billing-period"));
|
|
11
|
+
function useVisibleGridPlans({ gridSize, currentSitePlanSlug, siteId, intervalType, }) {
|
|
12
|
+
const [visibleGridPlans, setVisibleGridPlans] = (0, react_1.useState)([]);
|
|
13
|
+
const { gridPlans, gridPlansIndex } = (0, grid_context_1.usePlansGridContext)();
|
|
14
|
+
const currentPlanTerm = data_stores_1.Plans.useCurrentPlanTerm({ siteId });
|
|
15
|
+
const selectedPlanTerm = (0, use_plan_billing_period_1.default)({ intervalType });
|
|
16
|
+
(0, react_1.useEffect)(() => {
|
|
17
|
+
setVisibleGridPlans((previousGridPlans) => {
|
|
18
|
+
let visibleLength = gridPlans.length;
|
|
19
|
+
switch (gridSize) {
|
|
20
|
+
case 'large':
|
|
21
|
+
visibleLength = 4;
|
|
22
|
+
break;
|
|
23
|
+
case 'medium':
|
|
24
|
+
visibleLength = 3;
|
|
25
|
+
break;
|
|
26
|
+
case 'smedium':
|
|
27
|
+
case 'small':
|
|
28
|
+
visibleLength = 2;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
// Find the user's current plan in the current term
|
|
32
|
+
const usersGridPlanFromSelectedTerm = currentSitePlanSlug
|
|
33
|
+
? gridPlans.find((gridPlan) => (0, calypso_products_1.getPlanClass)(gridPlan.planSlug) === (0, calypso_products_1.getPlanClass)(currentSitePlanSlug))
|
|
34
|
+
: null;
|
|
35
|
+
// Check if previous state is stale
|
|
36
|
+
const isPreviousGridPlansStale = previousGridPlans.some((plan) => !gridPlansIndex[plan.planSlug]);
|
|
37
|
+
let nextGridPlans = previousGridPlans;
|
|
38
|
+
if (previousGridPlans.length !== visibleLength) {
|
|
39
|
+
nextGridPlans = gridPlans.slice(0, visibleLength);
|
|
40
|
+
}
|
|
41
|
+
else if (isPreviousGridPlansStale) {
|
|
42
|
+
// Map existing plans to their new term equivalents, preserving order
|
|
43
|
+
nextGridPlans = previousGridPlans.map((plan) => {
|
|
44
|
+
const gridPlan = gridPlans.find((gridPlan) => (0, calypso_products_1.getPlanClass)(gridPlan.planSlug) === (0, calypso_products_1.getPlanClass)(plan.planSlug));
|
|
45
|
+
return gridPlan ?? plan;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Ensure current plan is visible
|
|
49
|
+
if (usersGridPlanFromSelectedTerm) {
|
|
50
|
+
const isCurrentPlanVisible = nextGridPlans.some((plan) => (0, calypso_products_1.getPlanClass)(plan.planSlug) === (0, calypso_products_1.getPlanClass)(usersGridPlanFromSelectedTerm.planSlug));
|
|
51
|
+
if (!isCurrentPlanVisible) {
|
|
52
|
+
nextGridPlans = [usersGridPlanFromSelectedTerm, ...nextGridPlans].slice(0, visibleLength);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return nextGridPlans;
|
|
56
|
+
});
|
|
57
|
+
}, [
|
|
58
|
+
gridSize,
|
|
59
|
+
gridPlans,
|
|
60
|
+
currentSitePlanSlug,
|
|
61
|
+
currentPlanTerm,
|
|
62
|
+
selectedPlanTerm,
|
|
63
|
+
gridPlansIndex,
|
|
64
|
+
]);
|
|
65
|
+
return {
|
|
66
|
+
visibleGridPlans,
|
|
67
|
+
setVisibleGridPlans,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# 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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"}
|