@withpotter/lib 0.13.0-next.101
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/dist/__fixtures__/demo-content-server.json +484 -0
- package/dist/accessibility-context.d.ts +27 -0
- package/dist/accessibility-context.js +107 -0
- package/dist/accessibility-context.js.map +1 -0
- package/dist/active-workspace.d.ts +45 -0
- package/dist/active-workspace.js +34 -0
- package/dist/active-workspace.js.map +1 -0
- package/dist/admin-account-officer-api.d.ts +13 -0
- package/dist/admin-account-officer-api.js +12 -0
- package/dist/admin-account-officer-api.js.map +1 -0
- package/dist/admin-account-types.d.ts +122 -0
- package/dist/admin-account-types.js +1 -0
- package/dist/admin-account-types.js.map +1 -0
- package/dist/admin-adoption-api.d.ts +35 -0
- package/dist/admin-adoption-api.js +16 -0
- package/dist/admin-adoption-api.js.map +1 -0
- package/dist/admin-api.d.ts +1219 -0
- package/dist/admin-api.js +325 -0
- package/dist/admin-api.js.map +1 -0
- package/dist/admin-case-api.d.ts +32 -0
- package/dist/admin-case-api.js +63 -0
- package/dist/admin-case-api.js.map +1 -0
- package/dist/admin-case-types.d.ts +166 -0
- package/dist/admin-case-types.js +1 -0
- package/dist/admin-case-types.js.map +1 -0
- package/dist/admin-compliance-api.d.ts +31 -0
- package/dist/admin-compliance-api.js +20 -0
- package/dist/admin-compliance-api.js.map +1 -0
- package/dist/admin-country-api.d.ts +28 -0
- package/dist/admin-country-api.js +9 -0
- package/dist/admin-country-api.js.map +1 -0
- package/dist/admin-currency-types.d.ts +138 -0
- package/dist/admin-currency-types.js +1 -0
- package/dist/admin-currency-types.js.map +1 -0
- package/dist/admin-feedback-api.d.ts +215 -0
- package/dist/admin-feedback-api.js +63 -0
- package/dist/admin-feedback-api.js.map +1 -0
- package/dist/admin-inbox-seen.d.ts +22 -0
- package/dist/admin-inbox-seen.js +47 -0
- package/dist/admin-inbox-seen.js.map +1 -0
- package/dist/admin-ledger-api.d.ts +85 -0
- package/dist/admin-ledger-api.js +30 -0
- package/dist/admin-ledger-api.js.map +1 -0
- package/dist/admin-money-api.d.ts +127 -0
- package/dist/admin-money-api.js +125 -0
- package/dist/admin-money-api.js.map +1 -0
- package/dist/admin-newsletter-contacts-api.d.ts +70 -0
- package/dist/admin-newsletter-contacts-api.js +20 -0
- package/dist/admin-newsletter-contacts-api.js.map +1 -0
- package/dist/admin-newsletter-deliveries-api.d.ts +47 -0
- package/dist/admin-newsletter-deliveries-api.js +16 -0
- package/dist/admin-newsletter-deliveries-api.js.map +1 -0
- package/dist/admin-newsletters-api.d.ts +118 -0
- package/dist/admin-newsletters-api.js +47 -0
- package/dist/admin-newsletters-api.js.map +1 -0
- package/dist/admin-pos-api.d.ts +16 -0
- package/dist/admin-pos-api.js +35 -0
- package/dist/admin-pos-api.js.map +1 -0
- package/dist/admin-pos-query.d.ts +43 -0
- package/dist/admin-pos-query.js +55 -0
- package/dist/admin-pos-query.js.map +1 -0
- package/dist/admin-pos-types.d.ts +122 -0
- package/dist/admin-pos-types.js +1 -0
- package/dist/admin-pos-types.js.map +1 -0
- package/dist/admin-pricing-api.d.ts +88 -0
- package/dist/admin-pricing-api.js +66 -0
- package/dist/admin-pricing-api.js.map +1 -0
- package/dist/admin-readiness-api.d.ts +25 -0
- package/dist/admin-readiness-api.js +39 -0
- package/dist/admin-readiness-api.js.map +1 -0
- package/dist/admin-sales-api.d.ts +124 -0
- package/dist/admin-sales-api.js +41 -0
- package/dist/admin-sales-api.js.map +1 -0
- package/dist/admin-saved-replies-api.d.ts +35 -0
- package/dist/admin-saved-replies-api.js +70 -0
- package/dist/admin-saved-replies-api.js.map +1 -0
- package/dist/admin-service-operations-api.d.ts +142 -0
- package/dist/admin-service-operations-api.js +52 -0
- package/dist/admin-service-operations-api.js.map +1 -0
- package/dist/admin-signatures-api.d.ts +57 -0
- package/dist/admin-signatures-api.js +15 -0
- package/dist/admin-signatures-api.js.map +1 -0
- package/dist/admin-support-analytics-api.d.ts +36 -0
- package/dist/admin-support-analytics-api.js +71 -0
- package/dist/admin-support-analytics-api.js.map +1 -0
- package/dist/admin-tenant-setup-types.d.ts +85 -0
- package/dist/admin-tenant-setup-types.js +1 -0
- package/dist/admin-tenant-setup-types.js.map +1 -0
- package/dist/admin-tenants-query.d.ts +14 -0
- package/dist/admin-tenants-query.js +17 -0
- package/dist/admin-tenants-query.js.map +1 -0
- package/dist/analytics/PostHogProvider.d.ts +25 -0
- package/dist/analytics/PostHogProvider.js +44 -0
- package/dist/analytics/PostHogProvider.js.map +1 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.js +11 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics.d.ts +1 -0
- package/dist/analytics.js +1 -0
- package/dist/api/abandoned-cart.d.ts +18 -0
- package/dist/api/abandoned-cart.js +68 -0
- package/dist/api/abandoned-cart.js.map +1 -0
- package/dist/api/accounts.d.ts +176 -0
- package/dist/api/accounts.js +194 -0
- package/dist/api/accounts.js.map +1 -0
- package/dist/api/analytics-patterns.d.ts +18 -0
- package/dist/api/analytics-patterns.js +52 -0
- package/dist/api/analytics-patterns.js.map +1 -0
- package/dist/api/analytics.d.ts +143 -0
- package/dist/api/analytics.js +379 -0
- package/dist/api/analytics.js.map +1 -0
- package/dist/api/assignee-prefs.d.ts +7 -0
- package/dist/api/assignee-prefs.js +17 -0
- package/dist/api/assignee-prefs.js.map +1 -0
- package/dist/api/automations.d.ts +73 -0
- package/dist/api/automations.js +102 -0
- package/dist/api/automations.js.map +1 -0
- package/dist/api/behaviors.d.ts +15 -0
- package/dist/api/behaviors.js +15 -0
- package/dist/api/behaviors.js.map +1 -0
- package/dist/api/bio.d.ts +7 -0
- package/dist/api/bio.js +17 -0
- package/dist/api/bio.js.map +1 -0
- package/dist/api/booking-calendar.d.ts +14 -0
- package/dist/api/booking-calendar.js +33 -0
- package/dist/api/booking-calendar.js.map +1 -0
- package/dist/api/bookings.d.ts +199 -0
- package/dist/api/bookings.js +284 -0
- package/dist/api/bookings.js.map +1 -0
- package/dist/api/business-devices.d.ts +108 -0
- package/dist/api/business-devices.js +139 -0
- package/dist/api/business-devices.js.map +1 -0
- package/dist/api/business-locations.d.ts +26 -0
- package/dist/api/business-locations.js +39 -0
- package/dist/api/business-locations.js.map +1 -0
- package/dist/api/cache-bus.d.ts +56 -0
- package/dist/api/cache-bus.js +18 -0
- package/dist/api/cache-bus.js.map +1 -0
- package/dist/api/calendar-sync.d.ts +49 -0
- package/dist/api/calendar-sync.js +50 -0
- package/dist/api/calendar-sync.js.map +1 -0
- package/dist/api/campaign-initiatives.d.ts +115 -0
- package/dist/api/campaign-initiatives.js +42 -0
- package/dist/api/campaign-initiatives.js.map +1 -0
- package/dist/api/campaigns.d.ts +89 -0
- package/dist/api/campaigns.js +100 -0
- package/dist/api/campaigns.js.map +1 -0
- package/dist/api/capabilities.d.ts +12 -0
- package/dist/api/capabilities.js +16 -0
- package/dist/api/capabilities.js.map +1 -0
- package/dist/api/commerce.d.ts +19 -0
- package/dist/api/commerce.js +31 -0
- package/dist/api/commerce.js.map +1 -0
- package/dist/api/communications.d.ts +166 -0
- package/dist/api/communications.js +141 -0
- package/dist/api/communications.js.map +1 -0
- package/dist/api/connect.d.ts +72 -0
- package/dist/api/connect.js +50 -0
- package/dist/api/connect.js.map +1 -0
- package/dist/api/content.d.ts +146 -0
- package/dist/api/content.js +187 -0
- package/dist/api/content.js.map +1 -0
- package/dist/api/conversations.d.ts +79 -0
- package/dist/api/conversations.js +41 -0
- package/dist/api/conversations.js.map +1 -0
- package/dist/api/core.d.ts +62 -0
- package/dist/api/core.js +223 -0
- package/dist/api/core.js.map +1 -0
- package/dist/api/credentials.d.ts +65 -0
- package/dist/api/credentials.js +48 -0
- package/dist/api/credentials.js.map +1 -0
- package/dist/api/credits.d.ts +96 -0
- package/dist/api/credits.js +24 -0
- package/dist/api/credits.js.map +1 -0
- package/dist/api/crm-analytics.d.ts +10 -0
- package/dist/api/crm-analytics.js +22 -0
- package/dist/api/crm-analytics.js.map +1 -0
- package/dist/api/crm-segments.d.ts +14 -0
- package/dist/api/crm-segments.js +42 -0
- package/dist/api/crm-segments.js.map +1 -0
- package/dist/api/deliveries.d.ts +99 -0
- package/dist/api/deliveries.js +37 -0
- package/dist/api/deliveries.js.map +1 -0
- package/dist/api/demo-content.d.ts +104 -0
- package/dist/api/demo-content.js +36 -0
- package/dist/api/demo-content.js.map +1 -0
- package/dist/api/device-shifts.d.ts +56 -0
- package/dist/api/device-shifts.js +50 -0
- package/dist/api/device-shifts.js.map +1 -0
- package/dist/api/devices.d.ts +6 -0
- package/dist/api/devices.js +10 -0
- package/dist/api/devices.js.map +1 -0
- package/dist/api/digital-files.d.ts +22 -0
- package/dist/api/digital-files.js +55 -0
- package/dist/api/digital-files.js.map +1 -0
- package/dist/api/discounts.d.ts +29 -0
- package/dist/api/discounts.js +46 -0
- package/dist/api/discounts.js.map +1 -0
- package/dist/api/disputes.d.ts +47 -0
- package/dist/api/disputes.js +42 -0
- package/dist/api/disputes.js.map +1 -0
- package/dist/api/feature-locked.d.ts +11 -0
- package/dist/api/feature-locked.js +18 -0
- package/dist/api/feature-locked.js.map +1 -0
- package/dist/api/feedback-prompts.d.ts +45 -0
- package/dist/api/feedback-prompts.js +85 -0
- package/dist/api/feedback-prompts.js.map +1 -0
- package/dist/api/feedback.d.ts +254 -0
- package/dist/api/feedback.js +108 -0
- package/dist/api/feedback.js.map +1 -0
- package/dist/api/finance.d.ts +199 -0
- package/dist/api/finance.js +203 -0
- package/dist/api/finance.js.map +1 -0
- package/dist/api/gallery.d.ts +30 -0
- package/dist/api/gallery.js +48 -0
- package/dist/api/gallery.js.map +1 -0
- package/dist/api/geo.d.ts +18 -0
- package/dist/api/geo.js +19 -0
- package/dist/api/geo.js.map +1 -0
- package/dist/api/giftcards.d.ts +63 -0
- package/dist/api/giftcards.js +63 -0
- package/dist/api/giftcards.js.map +1 -0
- package/dist/api/hardware-orders.d.ts +40 -0
- package/dist/api/hardware-orders.js +37 -0
- package/dist/api/hardware-orders.js.map +1 -0
- package/dist/api/index.d.ts +71 -0
- package/dist/api/index.js +78 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/inquiries.d.ts +92 -0
- package/dist/api/inquiries.js +129 -0
- package/dist/api/inquiries.js.map +1 -0
- package/dist/api/inventory.d.ts +133 -0
- package/dist/api/inventory.js +203 -0
- package/dist/api/inventory.js.map +1 -0
- package/dist/api/invite-body.d.ts +19 -0
- package/dist/api/invite-body.js +8 -0
- package/dist/api/invite-body.js.map +1 -0
- package/dist/api/invoices.d.ts +19 -0
- package/dist/api/invoices.js +80 -0
- package/dist/api/invoices.js.map +1 -0
- package/dist/api/locations.d.ts +15 -0
- package/dist/api/locations.js +30 -0
- package/dist/api/locations.js.map +1 -0
- package/dist/api/loyalty.d.ts +68 -0
- package/dist/api/loyalty.js +112 -0
- package/dist/api/loyalty.js.map +1 -0
- package/dist/api/marketing-consent.d.ts +36 -0
- package/dist/api/marketing-consent.js +11 -0
- package/dist/api/marketing-consent.js.map +1 -0
- package/dist/api/marketing-suppressions.d.ts +81 -0
- package/dist/api/marketing-suppressions.js +65 -0
- package/dist/api/marketing-suppressions.js.map +1 -0
- package/dist/api/members.d.ts +79 -0
- package/dist/api/members.js +148 -0
- package/dist/api/members.js.map +1 -0
- package/dist/api/merchant-notifications.d.ts +27 -0
- package/dist/api/merchant-notifications.js +41 -0
- package/dist/api/merchant-notifications.js.map +1 -0
- package/dist/api/merchant-referrals.d.ts +23 -0
- package/dist/api/merchant-referrals.js +10 -0
- package/dist/api/merchant-referrals.js.map +1 -0
- package/dist/api/merchant-subscriptions.d.ts +117 -0
- package/dist/api/merchant-subscriptions.js +113 -0
- package/dist/api/merchant-subscriptions.js.map +1 -0
- package/dist/api/misc.d.ts +4 -0
- package/dist/api/misc.js +24 -0
- package/dist/api/misc.js.map +1 -0
- package/dist/api/odoo.d.ts +102 -0
- package/dist/api/odoo.js +36 -0
- package/dist/api/odoo.js.map +1 -0
- package/dist/api/onboarding.d.ts +48 -0
- package/dist/api/onboarding.js +78 -0
- package/dist/api/onboarding.js.map +1 -0
- package/dist/api/orders.d.ts +153 -0
- package/dist/api/orders.js +303 -0
- package/dist/api/orders.js.map +1 -0
- package/dist/api/organizations.d.ts +14 -0
- package/dist/api/organizations.js +19 -0
- package/dist/api/organizations.js.map +1 -0
- package/dist/api/packages.d.ts +16 -0
- package/dist/api/packages.js +25 -0
- package/dist/api/packages.js.map +1 -0
- package/dist/api/pages.d.ts +79 -0
- package/dist/api/pages.js +125 -0
- package/dist/api/pages.js.map +1 -0
- package/dist/api/payables.d.ts +34 -0
- package/dist/api/payables.js +70 -0
- package/dist/api/payables.js.map +1 -0
- package/dist/api/plan-refusal.d.ts +21 -0
- package/dist/api/plan-refusal.js +28 -0
- package/dist/api/plan-refusal.js.map +1 -0
- package/dist/api/pos.d.ts +66 -0
- package/dist/api/pos.js +115 -0
- package/dist/api/pos.js.map +1 -0
- package/dist/api/potter.d.ts +114 -0
- package/dist/api/potter.js +88 -0
- package/dist/api/potter.js.map +1 -0
- package/dist/api/push.d.ts +25 -0
- package/dist/api/push.js +23 -0
- package/dist/api/push.js.map +1 -0
- package/dist/api/referrals.d.ts +10 -0
- package/dist/api/referrals.js +16 -0
- package/dist/api/referrals.js.map +1 -0
- package/dist/api/resource-categories.d.ts +35 -0
- package/dist/api/resource-categories.js +76 -0
- package/dist/api/resource-categories.js.map +1 -0
- package/dist/api/resources.d.ts +54 -0
- package/dist/api/resources.js +92 -0
- package/dist/api/resources.js.map +1 -0
- package/dist/api/reviews.d.ts +18 -0
- package/dist/api/reviews.js +46 -0
- package/dist/api/reviews.js.map +1 -0
- package/dist/api/riders.d.ts +70 -0
- package/dist/api/riders.js +24 -0
- package/dist/api/riders.js.map +1 -0
- package/dist/api/role-permissions.d.ts +25 -0
- package/dist/api/role-permissions.js +47 -0
- package/dist/api/role-permissions.js.map +1 -0
- package/dist/api/sales-channels.d.ts +234 -0
- package/dist/api/sales-channels.js +119 -0
- package/dist/api/sales-channels.js.map +1 -0
- package/dist/api/service-missing.d.ts +10 -0
- package/dist/api/service-missing.js +19 -0
- package/dist/api/service-missing.js.map +1 -0
- package/dist/api/session-refresh.d.ts +18 -0
- package/dist/api/session-refresh.js +37 -0
- package/dist/api/session-refresh.js.map +1 -0
- package/dist/api/session-scope.d.ts +35 -0
- package/dist/api/session-scope.js +53 -0
- package/dist/api/session-scope.js.map +1 -0
- package/dist/api/settlements.d.ts +106 -0
- package/dist/api/settlements.js +114 -0
- package/dist/api/settlements.js.map +1 -0
- package/dist/api/share-links.d.ts +46 -0
- package/dist/api/share-links.js +25 -0
- package/dist/api/share-links.js.map +1 -0
- package/dist/api/shift-notes.d.ts +19 -0
- package/dist/api/shift-notes.js +13 -0
- package/dist/api/shift-notes.js.map +1 -0
- package/dist/api/shipping.d.ts +42 -0
- package/dist/api/shipping.js +53 -0
- package/dist/api/shipping.js.map +1 -0
- package/dist/api/social-sources.d.ts +58 -0
- package/dist/api/social-sources.js +23 -0
- package/dist/api/social-sources.js.map +1 -0
- package/dist/api/tabs.d.ts +14 -0
- package/dist/api/tabs.js +39 -0
- package/dist/api/tabs.js.map +1 -0
- package/dist/api/team.d.ts +112 -0
- package/dist/api/team.js +144 -0
- package/dist/api/team.js.map +1 -0
- package/dist/api/template-settings.d.ts +26 -0
- package/dist/api/template-settings.js +36 -0
- package/dist/api/template-settings.js.map +1 -0
- package/dist/api/templates.d.ts +21 -0
- package/dist/api/templates.js +25 -0
- package/dist/api/templates.js.map +1 -0
- package/dist/api/tenant-slug.d.ts +13 -0
- package/dist/api/tenant-slug.js +18 -0
- package/dist/api/tenant-slug.js.map +1 -0
- package/dist/api/tenant.d.ts +33 -0
- package/dist/api/tenant.js +51 -0
- package/dist/api/tenant.js.map +1 -0
- package/dist/api/types/analytics-attribution.d.ts +43 -0
- package/dist/api/types/analytics-attribution.js +1 -0
- package/dist/api/types/analytics-attribution.js.map +1 -0
- package/dist/api/types/analytics.d.ts +465 -0
- package/dist/api/types/analytics.js +1 -0
- package/dist/api/types/analytics.js.map +1 -0
- package/dist/api/types/auth.d.ts +206 -0
- package/dist/api/types/auth.js +7 -0
- package/dist/api/types/auth.js.map +1 -0
- package/dist/api/types/automation-flow.d.ts +199 -0
- package/dist/api/types/automation-flow.js +1 -0
- package/dist/api/types/automation-flow.js.map +1 -0
- package/dist/api/types/bookings.d.ts +226 -0
- package/dist/api/types/bookings.js +1 -0
- package/dist/api/types/bookings.js.map +1 -0
- package/dist/api/types/campaigns.d.ts +262 -0
- package/dist/api/types/campaigns.js +1 -0
- package/dist/api/types/campaigns.js.map +1 -0
- package/dist/api/types/catalog.d.ts +273 -0
- package/dist/api/types/catalog.js +1 -0
- package/dist/api/types/catalog.js.map +1 -0
- package/dist/api/types/collections.d.ts +189 -0
- package/dist/api/types/collections.js +1 -0
- package/dist/api/types/collections.js.map +1 -0
- package/dist/api/types/crm.d.ts +264 -0
- package/dist/api/types/crm.js +1 -0
- package/dist/api/types/crm.js.map +1 -0
- package/dist/api/types/customers.d.ts +269 -0
- package/dist/api/types/customers.js +1 -0
- package/dist/api/types/customers.js.map +1 -0
- package/dist/api/types/devices.d.ts +390 -0
- package/dist/api/types/devices.js +1 -0
- package/dist/api/types/devices.js.map +1 -0
- package/dist/api/types/discounts.d.ts +237 -0
- package/dist/api/types/discounts.js +1 -0
- package/dist/api/types/discounts.js.map +1 -0
- package/dist/api/types/filters.d.ts +258 -0
- package/dist/api/types/filters.js +1 -0
- package/dist/api/types/filters.js.map +1 -0
- package/dist/api/types/index.d.ts +31 -0
- package/dist/api/types/index.js +25 -0
- package/dist/api/types/index.js.map +1 -0
- package/dist/api/types/inquiries.d.ts +266 -0
- package/dist/api/types/inquiries.js +1 -0
- package/dist/api/types/inquiries.js.map +1 -0
- package/dist/api/types/locations.d.ts +208 -0
- package/dist/api/types/locations.js +1 -0
- package/dist/api/types/locations.js.map +1 -0
- package/dist/api/types/onboarding.d.ts +311 -0
- package/dist/api/types/onboarding.js +1 -0
- package/dist/api/types/onboarding.js.map +1 -0
- package/dist/api/types/operations.d.ts +136 -0
- package/dist/api/types/operations.js +1 -0
- package/dist/api/types/operations.js.map +1 -0
- package/dist/api/types/orders.d.ts +242 -0
- package/dist/api/types/orders.js +1 -0
- package/dist/api/types/orders.js.map +1 -0
- package/dist/api/types/payables.d.ts +140 -0
- package/dist/api/types/payables.js +1 -0
- package/dist/api/types/payables.js.map +1 -0
- package/dist/api/types/pos.d.ts +121 -0
- package/dist/api/types/pos.js +5 -0
- package/dist/api/types/pos.js.map +1 -0
- package/dist/api/types/record-analytics.d.ts +95 -0
- package/dist/api/types/record-analytics.js +1 -0
- package/dist/api/types/record-analytics.js.map +1 -0
- package/dist/api/types/sales-patterns.d.ts +58 -0
- package/dist/api/types/sales-patterns.js +1 -0
- package/dist/api/types/sales-patterns.js.map +1 -0
- package/dist/api/types/tabs.d.ts +210 -0
- package/dist/api/types/tabs.js +1 -0
- package/dist/api/types/tabs.js.map +1 -0
- package/dist/api/types/templates.d.ts +398 -0
- package/dist/api/types/templates.js +1 -0
- package/dist/api/types/templates.js.map +1 -0
- package/dist/api/types/waitlist.d.ts +324 -0
- package/dist/api/types/waitlist.js +1 -0
- package/dist/api/types/waitlist.js.map +1 -0
- package/dist/api/types.d.ts +1 -0
- package/dist/api/types.js +1 -0
- package/dist/api/unserved-routes.d.ts +4 -0
- package/dist/api/unserved-routes.js +15 -0
- package/dist/api/unserved-routes.js.map +1 -0
- package/dist/api/waitlist.d.ts +80 -0
- package/dist/api/waitlist.js +85 -0
- package/dist/api/waitlist.js.map +1 -0
- package/dist/api.d.ts +1 -0
- package/dist/api.js +1 -0
- package/dist/app-name.d.ts +29 -0
- package/dist/app-name.js +11 -0
- package/dist/app-name.js.map +1 -0
- package/dist/arrival.d.ts +48 -0
- package/dist/arrival.js +34 -0
- package/dist/arrival.js.map +1 -0
- package/dist/auth-context.d.ts +90 -0
- package/dist/auth-context.js +732 -0
- package/dist/auth-context.js.map +1 -0
- package/dist/auth-session.d.ts +1 -0
- package/dist/auth-session.js +25 -0
- package/dist/auth-session.js.map +1 -0
- package/dist/bank-phone.d.ts +2 -0
- package/dist/bank-phone.js +12 -0
- package/dist/bank-phone.js.map +1 -0
- package/dist/behavior-config-types.d.ts +49 -0
- package/dist/behavior-config-types.js +1 -0
- package/dist/behavior-config-types.js.map +1 -0
- package/dist/behavior-context.d.ts +15 -0
- package/dist/behavior-context.js +38 -0
- package/dist/behavior-context.js.map +1 -0
- package/dist/behavior-fields.d.ts +41 -0
- package/dist/behavior-fields.js +20 -0
- package/dist/behavior-fields.js.map +1 -0
- package/dist/blog/__fixtures__/paste-hygiene.d.ts +7 -0
- package/dist/blog/__fixtures__/paste-hygiene.js +36 -0
- package/dist/blog/__fixtures__/paste-hygiene.js.map +1 -0
- package/dist/blog/density.d.ts +65 -0
- package/dist/blog/density.js +126 -0
- package/dist/blog/density.js.map +1 -0
- package/dist/blog/paste-hygiene.d.ts +3 -0
- package/dist/blog/paste-hygiene.js +168 -0
- package/dist/blog/paste-hygiene.js.map +1 -0
- package/dist/booking-location-label.d.ts +10 -0
- package/dist/booking-location-label.js +24 -0
- package/dist/booking-location-label.js.map +1 -0
- package/dist/booking-meeting-link.d.ts +48 -0
- package/dist/booking-meeting-link.js +40 -0
- package/dist/booking-meeting-link.js.map +1 -0
- package/dist/box-channels.d.ts +22 -0
- package/dist/box-channels.js +16 -0
- package/dist/box-channels.js.map +1 -0
- package/dist/box-delivery.d.ts +10 -0
- package/dist/box-delivery.js +5 -0
- package/dist/box-delivery.js.map +1 -0
- package/dist/box-inbox.d.ts +11 -0
- package/dist/box-inbox.js +5 -0
- package/dist/box-inbox.js.map +1 -0
- package/dist/box-letting.d.ts +14 -0
- package/dist/box-letting.js +7 -0
- package/dist/box-letting.js.map +1 -0
- package/dist/box-mark-paths.d.ts +28 -0
- package/dist/box-mark-paths.js +23 -0
- package/dist/box-mark-paths.js.map +1 -0
- package/dist/box-media.d.ts +9 -0
- package/dist/box-media.js +5 -0
- package/dist/box-media.js.map +1 -0
- package/dist/box-products.d.ts +16 -0
- package/dist/box-products.js +9 -0
- package/dist/box-products.js.map +1 -0
- package/dist/box-splits.d.ts +12 -0
- package/dist/box-splits.js +5 -0
- package/dist/box-splits.js.map +1 -0
- package/dist/brand.d.ts +26 -0
- package/dist/brand.js +22 -0
- package/dist/brand.js.map +1 -0
- package/dist/business-categories.d.ts +50 -0
- package/dist/business-categories.js +378 -0
- package/dist/business-categories.js.map +1 -0
- package/dist/business-intents.d.ts +31 -0
- package/dist/business-intents.js +142 -0
- package/dist/business-intents.js.map +1 -0
- package/dist/capability-context.d.ts +63 -0
- package/dist/capability-context.js +84 -0
- package/dist/capability-context.js.map +1 -0
- package/dist/carriers.d.ts +83 -0
- package/dist/carriers.js +124 -0
- package/dist/carriers.js.map +1 -0
- package/dist/commerce-build/api.d.ts +29 -0
- package/dist/commerce-build/api.js +152 -0
- package/dist/commerce-build/api.js.map +1 -0
- package/dist/commerce-build/contracts-profile.d.ts +83 -0
- package/dist/commerce-build/contracts-profile.js +1 -0
- package/dist/commerce-build/contracts-profile.js.map +1 -0
- package/dist/commerce-build/contracts-spec.d.ts +217 -0
- package/dist/commerce-build/contracts-spec.js +1 -0
- package/dist/commerce-build/contracts-spec.js.map +1 -0
- package/dist/commerce-build/contracts.d.ts +2 -0
- package/dist/commerce-build/contracts.js +1 -0
- package/dist/commerce-build/contracts.js.map +1 -0
- package/dist/commerce-build/launch-state.d.ts +20 -0
- package/dist/commerce-build/launch-state.js +72 -0
- package/dist/commerce-build/launch-state.js.map +1 -0
- package/dist/commerce-build/profile-utils.d.ts +5 -0
- package/dist/commerce-build/profile-utils.js +14 -0
- package/dist/commerce-build/profile-utils.js.map +1 -0
- package/dist/commerce-build/setup-flow.d.ts +10 -0
- package/dist/commerce-build/setup-flow.js +24 -0
- package/dist/commerce-build/setup-flow.js.map +1 -0
- package/dist/commerce-build/setup-session.d.ts +26 -0
- package/dist/commerce-build/setup-session.js +70 -0
- package/dist/commerce-build/setup-session.js.map +1 -0
- package/dist/commerce-build/turn-streaming.d.ts +21 -0
- package/dist/commerce-build/turn-streaming.js +113 -0
- package/dist/commerce-build/turn-streaming.js.map +1 -0
- package/dist/commerce-build/workspace-components.d.ts +23 -0
- package/dist/commerce-build/workspace-components.js +66 -0
- package/dist/commerce-build/workspace-components.js.map +1 -0
- package/dist/commerce-build/workspace-config.d.ts +7 -0
- package/dist/commerce-build/workspace-config.js +74 -0
- package/dist/commerce-build/workspace-config.js.map +1 -0
- package/dist/companion/config.d.ts +31 -0
- package/dist/companion/config.js +59 -0
- package/dist/companion/config.js.map +1 -0
- package/dist/connect/catalog.d.ts +32 -0
- package/dist/connect/catalog.js +268 -0
- package/dist/connect/catalog.js.map +1 -0
- package/dist/connect/fixtures/commands.d.ts +8 -0
- package/dist/connect/fixtures/commands.js +146 -0
- package/dist/connect/fixtures/commands.js.map +1 -0
- package/dist/connect/fixtures/connections.d.ts +21 -0
- package/dist/connect/fixtures/connections.js +370 -0
- package/dist/connect/fixtures/connections.js.map +1 -0
- package/dist/connect/fixtures/identities.d.ts +10 -0
- package/dist/connect/fixtures/identities.js +61 -0
- package/dist/connect/fixtures/identities.js.map +1 -0
- package/dist/connect/fixtures/index.d.ts +11 -0
- package/dist/connect/fixtures/index.js +11 -0
- package/dist/connect/fixtures/index.js.map +1 -0
- package/dist/connect/fixtures/usage.d.ts +2 -0
- package/dist/connect/fixtures/usage.js +21 -0
- package/dist/connect/fixtures/usage.js.map +1 -0
- package/dist/connect/fixtures.d.ts +1 -0
- package/dist/connect/fixtures.js +1 -0
- package/dist/connect/from-notifications.d.ts +3 -0
- package/dist/connect/from-notifications.js +78 -0
- package/dist/connect/from-notifications.js.map +1 -0
- package/dist/connect/identity.d.ts +67 -0
- package/dist/connect/identity.js +24 -0
- package/dist/connect/identity.js.map +1 -0
- package/dist/connect/index.d.ts +13 -0
- package/dist/connect/index.js +22 -0
- package/dist/connect/index.js.map +1 -0
- package/dist/connect/next-up.d.ts +18 -0
- package/dist/connect/next-up.js +45 -0
- package/dist/connect/next-up.js.map +1 -0
- package/dist/connect/types.d.ts +354 -0
- package/dist/connect/types.js +68 -0
- package/dist/connect/types.js.map +1 -0
- package/dist/connect/use-connect.d.ts +51 -0
- package/dist/connect/use-connect.js +85 -0
- package/dist/connect/use-connect.js.map +1 -0
- package/dist/connect.d.ts +1 -0
- package/dist/connect.js +1 -0
- package/dist/converted-tag.d.ts +7 -0
- package/dist/converted-tag.js +9 -0
- package/dist/converted-tag.js.map +1 -0
- package/dist/countries.d.ts +65 -0
- package/dist/countries.js +374 -0
- package/dist/countries.js.map +1 -0
- package/dist/country-regions.d.ts +12 -0
- package/dist/country-regions.js +36 -0
- package/dist/country-regions.js.map +1 -0
- package/dist/csv.d.ts +28 -0
- package/dist/csv.js +91 -0
- package/dist/csv.js.map +1 -0
- package/dist/currency.d.ts +5 -0
- package/dist/currency.js +25 -0
- package/dist/currency.js.map +1 -0
- package/dist/customer-helpers.d.ts +30 -0
- package/dist/customer-helpers.js +66 -0
- package/dist/customer-helpers.js.map +1 -0
- package/dist/customer-stage.d.ts +125 -0
- package/dist/customer-stage.js +113 -0
- package/dist/customer-stage.js.map +1 -0
- package/dist/dashboard-destinations.d.ts +5 -0
- package/dist/dashboard-destinations.js +29 -0
- package/dist/dashboard-destinations.js.map +1 -0
- package/dist/demo-content-mock.d.ts +22 -0
- package/dist/demo-content-mock.js +70 -0
- package/dist/demo-content-mock.js.map +1 -0
- package/dist/demo-content-poller.d.ts +33 -0
- package/dist/demo-content-poller.js +80 -0
- package/dist/demo-content-poller.js.map +1 -0
- package/dist/demo-content.d.ts +43 -0
- package/dist/demo-content.js +78 -0
- package/dist/demo-content.js.map +1 -0
- package/dist/describe-activity.d.ts +44 -0
- package/dist/describe-activity.js +16 -0
- package/dist/describe-activity.js.map +1 -0
- package/dist/describe-invite.d.ts +19 -0
- package/dist/describe-invite.js +46 -0
- package/dist/describe-invite.js.map +1 -0
- package/dist/design-schema.d.ts +76 -0
- package/dist/design-schema.js +47 -0
- package/dist/design-schema.js.map +1 -0
- package/dist/destination-alias.d.ts +43 -0
- package/dist/destination-alias.js +146 -0
- package/dist/destination-alias.js.map +1 -0
- package/dist/document-numbering.d.ts +40 -0
- package/dist/document-numbering.js +48 -0
- package/dist/document-numbering.js.map +1 -0
- package/dist/document-title.d.ts +22 -0
- package/dist/document-title.js +85 -0
- package/dist/document-title.js.map +1 -0
- package/dist/editor/row-ops.d.ts +39 -0
- package/dist/editor/row-ops.js +25 -0
- package/dist/editor/row-ops.js.map +1 -0
- package/dist/editor-agent/apply-proposal.d.ts +12 -0
- package/dist/editor-agent/apply-proposal.js +44 -0
- package/dist/editor-agent/apply-proposal.js.map +1 -0
- package/dist/editor-agent/contracts.d.ts +174 -0
- package/dist/editor-agent/contracts.js +1 -0
- package/dist/editor-agent/contracts.js.map +1 -0
- package/dist/editor-agent/converse.d.ts +34 -0
- package/dist/editor-agent/converse.js +141 -0
- package/dist/editor-agent/converse.js.map +1 -0
- package/dist/editor-agent/flag.d.ts +12 -0
- package/dist/editor-agent/flag.js +19 -0
- package/dist/editor-agent/flag.js.map +1 -0
- package/dist/editor-agent/template-document.d.ts +52 -0
- package/dist/editor-agent/template-document.js +50 -0
- package/dist/editor-agent/template-document.js.map +1 -0
- package/dist/editor-agent/use-converse.d.ts +30 -0
- package/dist/editor-agent/use-converse.js +130 -0
- package/dist/editor-agent/use-converse.js.map +1 -0
- package/dist/effective-module-labels.d.ts +17 -0
- package/dist/effective-module-labels.js +14 -0
- package/dist/effective-module-labels.js.map +1 -0
- package/dist/embedded-frame.d.ts +30 -0
- package/dist/embedded-frame.js +23 -0
- package/dist/embedded-frame.js.map +1 -0
- package/dist/empty-state-copy.d.ts +27 -0
- package/dist/empty-state-copy.js +167 -0
- package/dist/empty-state-copy.js.map +1 -0
- package/dist/end-session.d.ts +23 -0
- package/dist/end-session.js +30 -0
- package/dist/end-session.js.map +1 -0
- package/dist/file-intake.d.ts +65 -0
- package/dist/file-intake.js +162 -0
- package/dist/file-intake.js.map +1 -0
- package/dist/first-run.d.ts +5 -0
- package/dist/first-run.js +13 -0
- package/dist/first-run.js.map +1 -0
- package/dist/form-answers.d.ts +57 -0
- package/dist/form-answers.js +79 -0
- package/dist/form-answers.js.map +1 -0
- package/dist/form-draft.d.ts +30 -0
- package/dist/form-draft.js +73 -0
- package/dist/form-draft.js.map +1 -0
- package/dist/format.d.ts +29 -0
- package/dist/format.js +21 -0
- package/dist/format.js.map +1 -0
- package/dist/fulfilment-nav.d.ts +79 -0
- package/dist/fulfilment-nav.js +18 -0
- package/dist/fulfilment-nav.js.map +1 -0
- package/dist/go-live-gate.d.ts +55 -0
- package/dist/go-live-gate.js +17 -0
- package/dist/go-live-gate.js.map +1 -0
- package/dist/group-activity.d.ts +37 -0
- package/dist/group-activity.js +43 -0
- package/dist/group-activity.js.map +1 -0
- package/dist/haptic.d.ts +5 -0
- package/dist/haptic.js +16 -0
- package/dist/haptic.js.map +1 -0
- package/dist/help-topics.d.ts +77 -0
- package/dist/help-topics.js +308 -0
- package/dist/help-topics.js.map +1 -0
- package/dist/icon-resolver.d.ts +45 -0
- package/dist/icon-resolver.js +40 -0
- package/dist/icon-resolver.js.map +1 -0
- package/dist/icons/commerce.d.ts +9 -0
- package/dist/icons/commerce.js +168 -0
- package/dist/icons/commerce.js.map +1 -0
- package/dist/icons/core.d.ts +9 -0
- package/dist/icons/core.js +173 -0
- package/dist/icons/core.js.map +1 -0
- package/dist/icons/making.d.ts +9 -0
- package/dist/icons/making.js +209 -0
- package/dist/icons/making.js.map +1 -0
- package/dist/icons/places.d.ts +9 -0
- package/dist/icons/places.js +232 -0
- package/dist/icons/places.js.map +1 -0
- package/dist/icons/world.d.ts +9 -0
- package/dist/icons/world.js +87 -0
- package/dist/icons/world.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/industry-configs/beauty.d.ts +2 -0
- package/dist/industry-configs/beauty.js +152 -0
- package/dist/industry-configs/beauty.js.map +1 -0
- package/dist/industry-configs/creative.d.ts +2 -0
- package/dist/industry-configs/creative.js +131 -0
- package/dist/industry-configs/creative.js.map +1 -0
- package/dist/industry-configs/default.d.ts +2 -0
- package/dist/industry-configs/default.js +77 -0
- package/dist/industry-configs/default.js.map +1 -0
- package/dist/industry-configs/education.d.ts +2 -0
- package/dist/industry-configs/education.js +137 -0
- package/dist/industry-configs/education.js.map +1 -0
- package/dist/industry-configs/events.d.ts +2 -0
- package/dist/industry-configs/events.js +118 -0
- package/dist/industry-configs/events.js.map +1 -0
- package/dist/industry-configs/fashion.d.ts +2 -0
- package/dist/industry-configs/fashion.js +128 -0
- package/dist/industry-configs/fashion.js.map +1 -0
- package/dist/industry-configs/fitness.d.ts +2 -0
- package/dist/industry-configs/fitness.js +128 -0
- package/dist/industry-configs/fitness.js.map +1 -0
- package/dist/industry-configs/food.d.ts +2 -0
- package/dist/industry-configs/food.js +138 -0
- package/dist/industry-configs/food.js.map +1 -0
- package/dist/industry-configs/hospitality.d.ts +2 -0
- package/dist/industry-configs/hospitality.js +157 -0
- package/dist/industry-configs/hospitality.js.map +1 -0
- package/dist/industry-configs/index.d.ts +25 -0
- package/dist/industry-configs/index.js +77 -0
- package/dist/industry-configs/index.js.map +1 -0
- package/dist/industry-configs/professional.d.ts +2 -0
- package/dist/industry-configs/professional.js +129 -0
- package/dist/industry-configs/professional.js.map +1 -0
- package/dist/industry-configs/realestate.d.ts +2 -0
- package/dist/industry-configs/realestate.js +146 -0
- package/dist/industry-configs/realestate.js.map +1 -0
- package/dist/industry-configs/retail.d.ts +2 -0
- package/dist/industry-configs/retail.js +108 -0
- package/dist/industry-configs/retail.js.map +1 -0
- package/dist/industry-configs/services.d.ts +2 -0
- package/dist/industry-configs/services.js +120 -0
- package/dist/industry-configs/services.js.map +1 -0
- package/dist/industry-configs/technology.d.ts +2 -0
- package/dist/industry-configs/technology.js +120 -0
- package/dist/industry-configs/technology.js.map +1 -0
- package/dist/industry-configs/types.d.ts +99 -0
- package/dist/industry-configs/types.js +1 -0
- package/dist/industry-configs/types.js.map +1 -0
- package/dist/industry-configs/wellness.d.ts +2 -0
- package/dist/industry-configs/wellness.js +112 -0
- package/dist/industry-configs/wellness.js.map +1 -0
- package/dist/industry-configs.d.ts +1 -0
- package/dist/industry-configs.js +1 -0
- package/dist/intents/analytics-labels.d.ts +70 -0
- package/dist/intents/analytics-labels.js +39 -0
- package/dist/intents/analytics-labels.js.map +1 -0
- package/dist/intents/archetype-flow.d.ts +146 -0
- package/dist/intents/archetype-flow.js +185 -0
- package/dist/intents/archetype-flow.js.map +1 -0
- package/dist/intents/booking-query-style.d.ts +32 -0
- package/dist/intents/booking-query-style.js +22 -0
- package/dist/intents/booking-query-style.js.map +1 -0
- package/dist/intents/capture-leads.config.d.ts +31 -0
- package/dist/intents/capture-leads.config.js +231 -0
- package/dist/intents/capture-leads.config.js.map +1 -0
- package/dist/intents/catalog-stock.d.ts +43 -0
- package/dist/intents/catalog-stock.js +43 -0
- package/dist/intents/catalog-stock.js.map +1 -0
- package/dist/intents/collapse-shared-nav.d.ts +95 -0
- package/dist/intents/collapse-shared-nav.js +171 -0
- package/dist/intents/collapse-shared-nav.js.map +1 -0
- package/dist/intents/default-commerce.config.d.ts +6 -0
- package/dist/intents/default-commerce.config.js +281 -0
- package/dist/intents/default-commerce.config.js.map +1 -0
- package/dist/intents/digital-products.config.d.ts +2 -0
- package/dist/intents/digital-products.config.js +239 -0
- package/dist/intents/digital-products.config.js.map +1 -0
- package/dist/intents/dine-in.config.d.ts +15 -0
- package/dist/intents/dine-in.config.js +331 -0
- package/dist/intents/dine-in.config.js.map +1 -0
- package/dist/intents/event-tickets.config.d.ts +2 -0
- package/dist/intents/event-tickets.config.js +368 -0
- package/dist/intents/event-tickets.config.js.map +1 -0
- package/dist/intents/food-orders.config.d.ts +2 -0
- package/dist/intents/food-orders.config.js +299 -0
- package/dist/intents/food-orders.config.js.map +1 -0
- package/dist/intents/icon-map.d.ts +15 -0
- package/dist/intents/icon-map.js +104 -0
- package/dist/intents/icon-map.js.map +1 -0
- package/dist/intents/index.d.ts +12 -0
- package/dist/intents/index.js +50 -0
- package/dist/intents/index.js.map +1 -0
- package/dist/intents/infer-intents.d.ts +10 -0
- package/dist/intents/infer-intents.js +23 -0
- package/dist/intents/infer-intents.js.map +1 -0
- package/dist/intents/intent-chips.d.ts +47 -0
- package/dist/intents/intent-chips.js +38 -0
- package/dist/intents/intent-chips.js.map +1 -0
- package/dist/intents/intent-nav.d.ts +95 -0
- package/dist/intents/intent-nav.js +423 -0
- package/dist/intents/intent-nav.js.map +1 -0
- package/dist/intents/intent-scope.d.ts +52 -0
- package/dist/intents/intent-scope.js +19 -0
- package/dist/intents/intent-scope.js.map +1 -0
- package/dist/intents/nav-coverage.d.ts +71 -0
- package/dist/intents/nav-coverage.js +132 -0
- package/dist/intents/nav-coverage.js.map +1 -0
- package/dist/intents/operating-shell.d.ts +45 -0
- package/dist/intents/operating-shell.js +142 -0
- package/dist/intents/operating-shell.js.map +1 -0
- package/dist/intents/order-display.d.ts +21 -0
- package/dist/intents/order-display.js +110 -0
- package/dist/intents/order-display.js.map +1 -0
- package/dist/intents/order-intent.d.ts +18 -0
- package/dist/intents/order-intent.js +14 -0
- package/dist/intents/order-intent.js.map +1 -0
- package/dist/intents/order-progress.d.ts +81 -0
- package/dist/intents/order-progress.js +91 -0
- package/dist/intents/order-progress.js.map +1 -0
- package/dist/intents/order-sections.d.ts +173 -0
- package/dist/intents/order-sections.js +188 -0
- package/dist/intents/order-sections.js.map +1 -0
- package/dist/intents/order-stats.d.ts +24 -0
- package/dist/intents/order-stats.js +16 -0
- package/dist/intents/order-stats.js.map +1 -0
- package/dist/intents/order-transitions.d.ts +19 -0
- package/dist/intents/order-transitions.js +66 -0
- package/dist/intents/order-transitions.js.map +1 -0
- package/dist/intents/product-editor-config.d.ts +23 -0
- package/dist/intents/product-editor-config.js +13 -0
- package/dist/intents/product-editor-config.js.map +1 -0
- package/dist/intents/product-intent.d.ts +38 -0
- package/dist/intents/product-intent.js +19 -0
- package/dist/intents/product-intent.js.map +1 -0
- package/dist/intents/registry.d.ts +32 -0
- package/dist/intents/registry.js +41 -0
- package/dist/intents/registry.js.map +1 -0
- package/dist/intents/rent-property.config.d.ts +2 -0
- package/dist/intents/rent-property.config.js +284 -0
- package/dist/intents/rent-property.config.js.map +1 -0
- package/dist/intents/resolve-stats.d.ts +7 -0
- package/dist/intents/resolve-stats.js +29 -0
- package/dist/intents/resolve-stats.js.map +1 -0
- package/dist/intents/resolve-tenant-intents.d.ts +11 -0
- package/dist/intents/resolve-tenant-intents.js +61 -0
- package/dist/intents/resolve-tenant-intents.js.map +1 -0
- package/dist/intents/resolvers.d.ts +52 -0
- package/dist/intents/resolvers.js +177 -0
- package/dist/intents/resolvers.js.map +1 -0
- package/dist/intents/row-identity.d.ts +62 -0
- package/dist/intents/row-identity.js +25 -0
- package/dist/intents/row-identity.js.map +1 -0
- package/dist/intents/sales-verb.d.ts +8 -0
- package/dist/intents/sales-verb.js +12 -0
- package/dist/intents/sales-verb.js.map +1 -0
- package/dist/intents/scoped-config.d.ts +12 -0
- package/dist/intents/scoped-config.js +17 -0
- package/dist/intents/scoped-config.js.map +1 -0
- package/dist/intents/screen-title.d.ts +27 -0
- package/dist/intents/screen-title.js +59 -0
- package/dist/intents/screen-title.js.map +1 -0
- package/dist/intents/section-registry.d.ts +48 -0
- package/dist/intents/section-registry.js +33 -0
- package/dist/intents/section-registry.js.map +1 -0
- package/dist/intents/sell-products.config.d.ts +2 -0
- package/dist/intents/sell-products.config.js +275 -0
- package/dist/intents/sell-products.config.js.map +1 -0
- package/dist/intents/send-invoices.config.d.ts +16 -0
- package/dist/intents/send-invoices.config.js +223 -0
- package/dist/intents/send-invoices.config.js.map +1 -0
- package/dist/intents/subscriptions.config.d.ts +2 -0
- package/dist/intents/subscriptions.config.js +260 -0
- package/dist/intents/subscriptions.config.js.map +1 -0
- package/dist/intents/take-bookings.config.d.ts +2 -0
- package/dist/intents/take-bookings.config.js +298 -0
- package/dist/intents/take-bookings.config.js.map +1 -0
- package/dist/intents/types.d.ts +246 -0
- package/dist/intents/types.js +1 -0
- package/dist/intents/types.js.map +1 -0
- package/dist/intents/use-active-intent.d.ts +27 -0
- package/dist/intents/use-active-intent.js +74 -0
- package/dist/intents/use-active-intent.js.map +1 -0
- package/dist/intents/use-destination-label.d.ts +18 -0
- package/dist/intents/use-destination-label.js +45 -0
- package/dist/intents/use-destination-label.js.map +1 -0
- package/dist/intents/use-entity-label.d.ts +32 -0
- package/dist/intents/use-entity-label.js +75 -0
- package/dist/intents/use-entity-label.js.map +1 -0
- package/dist/intents/use-intent-config.d.ts +20 -0
- package/dist/intents/use-intent-config.js +91 -0
- package/dist/intents/use-intent-config.js.map +1 -0
- package/dist/intents/use-intent-nav-rows.d.ts +26 -0
- package/dist/intents/use-intent-nav-rows.js +49 -0
- package/dist/intents/use-intent-nav-rows.js.map +1 -0
- package/dist/intents/use-resource-label.d.ts +10 -0
- package/dist/intents/use-resource-label.js +9 -0
- package/dist/intents/use-resource-label.js.map +1 -0
- package/dist/intents/use-row-noun.d.ts +19 -0
- package/dist/intents/use-row-noun.js +13 -0
- package/dist/intents/use-row-noun.js.map +1 -0
- package/dist/intents/use-screen-title.d.ts +9 -0
- package/dist/intents/use-screen-title.js +25 -0
- package/dist/intents/use-screen-title.js.map +1 -0
- package/dist/intents/what-it-adds.d.ts +70 -0
- package/dist/intents/what-it-adds.js +29 -0
- package/dist/intents/what-it-adds.js.map +1 -0
- package/dist/intents/workflow-shape.d.ts +66 -0
- package/dist/intents/workflow-shape.js +151 -0
- package/dist/intents/workflow-shape.js.map +1 -0
- package/dist/intents.d.ts +1 -0
- package/dist/intents.js +1 -0
- package/dist/invite-refusal.d.ts +37 -0
- package/dist/invite-refusal.js +26 -0
- package/dist/invite-refusal.js.map +1 -0
- package/dist/invoice-brand.d.ts +28 -0
- package/dist/invoice-brand.js +33 -0
- package/dist/invoice-brand.js.map +1 -0
- package/dist/ios-navigation-context.d.ts +11 -0
- package/dist/ios-navigation-context.js +52 -0
- package/dist/ios-navigation-context.js.map +1 -0
- package/dist/legal-links.d.ts +10 -0
- package/dist/legal-links.js +7 -0
- package/dist/legal-links.js.map +1 -0
- package/dist/letting-policy.d.ts +85 -0
- package/dist/letting-policy.js +47 -0
- package/dist/letting-policy.js.map +1 -0
- package/dist/list-page-size.d.ts +24 -0
- package/dist/list-page-size.js +5 -0
- package/dist/list-page-size.js.map +1 -0
- package/dist/live-events/sse-frames.d.ts +15 -0
- package/dist/live-events/sse-frames.js +37 -0
- package/dist/live-events/sse-frames.js.map +1 -0
- package/dist/location-options.d.ts +16 -0
- package/dist/location-options.js +94 -0
- package/dist/location-options.js.map +1 -0
- package/dist/location-scope-context.d.ts +47 -0
- package/dist/location-scope-context.js +85 -0
- package/dist/location-scope-context.js.map +1 -0
- package/dist/media-service.d.ts +97 -0
- package/dist/media-service.js +282 -0
- package/dist/media-service.js.map +1 -0
- package/dist/media-utils.d.ts +51 -0
- package/dist/media-utils.js +85 -0
- package/dist/media-utils.js.map +1 -0
- package/dist/member-presence.d.ts +40 -0
- package/dist/member-presence.js +77 -0
- package/dist/member-presence.js.map +1 -0
- package/dist/member-subscription-enrollment.d.ts +16 -0
- package/dist/member-subscription-enrollment.js +32 -0
- package/dist/member-subscription-enrollment.js.map +1 -0
- package/dist/membership-freshness.d.ts +31 -0
- package/dist/membership-freshness.js +21 -0
- package/dist/membership-freshness.js.map +1 -0
- package/dist/mobile-header-context.d.ts +32 -0
- package/dist/mobile-header-context.js +59 -0
- package/dist/mobile-header-context.js.map +1 -0
- package/dist/mobile-routes.d.ts +81 -0
- package/dist/mobile-routes.js +406 -0
- package/dist/mobile-routes.js.map +1 -0
- package/dist/mobile-tab-config.d.ts +18 -0
- package/dist/mobile-tab-config.js +43 -0
- package/dist/mobile-tab-config.js.map +1 -0
- package/dist/money-coming-soon.d.ts +16 -0
- package/dist/money-coming-soon.js +22 -0
- package/dist/money-coming-soon.js.map +1 -0
- package/dist/money-minor.d.ts +17 -0
- package/dist/money-minor.js +53 -0
- package/dist/money-minor.js.map +1 -0
- package/dist/money-visibility.d.ts +38 -0
- package/dist/money-visibility.js +13 -0
- package/dist/money-visibility.js.map +1 -0
- package/dist/motion.d.ts +160 -0
- package/dist/motion.js +130 -0
- package/dist/motion.js.map +1 -0
- package/dist/nav-pending.d.ts +42 -0
- package/dist/nav-pending.js +84 -0
- package/dist/nav-pending.js.map +1 -0
- package/dist/navigation-groups.d.ts +52 -0
- package/dist/navigation-groups.js +64 -0
- package/dist/navigation-groups.js.map +1 -0
- package/dist/onboarding-draft.d.ts +23 -0
- package/dist/onboarding-draft.js +35 -0
- package/dist/onboarding-draft.js.map +1 -0
- package/dist/operating-model/index.d.ts +4 -0
- package/dist/operating-model/index.js +13 -0
- package/dist/operating-model/index.js.map +1 -0
- package/dist/operating-model/order-display.d.ts +10 -0
- package/dist/operating-model/order-display.js +24 -0
- package/dist/operating-model/order-display.js.map +1 -0
- package/dist/operating-model/resolver.d.ts +9 -0
- package/dist/operating-model/resolver.js +110 -0
- package/dist/operating-model/resolver.js.map +1 -0
- package/dist/operating-model/types.d.ts +36 -0
- package/dist/operating-model/types.js +1 -0
- package/dist/operating-model/types.js.map +1 -0
- package/dist/operating-model/use-operating-model.d.ts +7 -0
- package/dist/operating-model/use-operating-model.js +65 -0
- package/dist/operating-model/use-operating-model.js.map +1 -0
- package/dist/operating-model.d.ts +1 -0
- package/dist/operating-model.js +1 -0
- package/dist/order-config.d.ts +30 -0
- package/dist/order-config.js +56 -0
- package/dist/order-config.js.map +1 -0
- package/dist/order-discounts.d.ts +25 -0
- package/dist/order-discounts.js +27 -0
- package/dist/order-discounts.js.map +1 -0
- package/dist/order-shipping.d.ts +33 -0
- package/dist/order-shipping.js +49 -0
- package/dist/order-shipping.js.map +1 -0
- package/dist/order-tax.d.ts +28 -0
- package/dist/order-tax.js +21 -0
- package/dist/order-tax.js.map +1 -0
- package/dist/page-intros.d.ts +78 -0
- package/dist/page-intros.js +164 -0
- package/dist/page-intros.js.map +1 -0
- package/dist/page-transition.d.ts +20 -0
- package/dist/page-transition.js +19 -0
- package/dist/page-transition.js.map +1 -0
- package/dist/pages-api-response.d.ts +8 -0
- package/dist/pages-api-response.js +18 -0
- package/dist/pages-api-response.js.map +1 -0
- package/dist/payment-method-label.d.ts +6 -0
- package/dist/payment-method-label.js +14 -0
- package/dist/payment-method-label.js.map +1 -0
- package/dist/permission-aliases.d.ts +18 -0
- package/dist/permission-aliases.js +20 -0
- package/dist/permission-aliases.js.map +1 -0
- package/dist/permission-catalog-fallback.d.ts +17 -0
- package/dist/permission-catalog-fallback.js +147 -0
- package/dist/permission-catalog-fallback.js.map +1 -0
- package/dist/permission-change.d.ts +42 -0
- package/dist/permission-change.js +33 -0
- package/dist/permission-change.js.map +1 -0
- package/dist/phone.d.ts +16 -0
- package/dist/phone.js +20 -0
- package/dist/phone.js.map +1 -0
- package/dist/plan-access.d.ts +39 -0
- package/dist/plan-access.js +57 -0
- package/dist/plan-access.js.map +1 -0
- package/dist/plan-card-api.d.ts +34 -0
- package/dist/plan-card-api.js +30 -0
- package/dist/plan-card-api.js.map +1 -0
- package/dist/plan-price.d.ts +34 -0
- package/dist/plan-price.js +57 -0
- package/dist/plan-price.js.map +1 -0
- package/dist/post-login-target.d.ts +24 -0
- package/dist/post-login-target.js +12 -0
- package/dist/post-login-target.js.map +1 -0
- package/dist/potter-mark-paths.d.ts +21 -0
- package/dist/potter-mark-paths.js +9 -0
- package/dist/potter-mark-paths.js.map +1 -0
- package/dist/pricing-plans-types.d.ts +143 -0
- package/dist/pricing-plans-types.js +1 -0
- package/dist/pricing-plans-types.js.map +1 -0
- package/dist/product-assignees.d.ts +1 -0
- package/dist/product-assignees.js +18 -0
- package/dist/product-assignees.js.map +1 -0
- package/dist/product-collection-sync.d.ts +12 -0
- package/dist/product-collection-sync.js +97 -0
- package/dist/product-collection-sync.js.map +1 -0
- package/dist/product-cost.d.ts +12 -0
- package/dist/product-cost.js +24 -0
- package/dist/product-cost.js.map +1 -0
- package/dist/product-insights-api.d.ts +38 -0
- package/dist/product-insights-api.js +51 -0
- package/dist/product-insights-api.js.map +1 -0
- package/dist/product-types.d.ts +311 -0
- package/dist/product-types.js +38 -0
- package/dist/product-types.js.map +1 -0
- package/dist/promised-day.d.ts +33 -0
- package/dist/promised-day.js +38 -0
- package/dist/promised-day.js.map +1 -0
- package/dist/proposals-api.d.ts +96 -0
- package/dist/proposals-api.js +41 -0
- package/dist/proposals-api.js.map +1 -0
- package/dist/proxy-allowlist.d.ts +15 -0
- package/dist/proxy-allowlist.js +153 -0
- package/dist/proxy-allowlist.js.map +1 -0
- package/dist/public-config-loader.d.ts +27 -0
- package/dist/public-config-loader.js +12 -0
- package/dist/public-config-loader.js.map +1 -0
- package/dist/public-config-provider.d.ts +16 -0
- package/dist/public-config-provider.js +14 -0
- package/dist/public-config-provider.js.map +1 -0
- package/dist/resolve-enabled-behaviors.d.ts +55 -0
- package/dist/resolve-enabled-behaviors.js +134 -0
- package/dist/resolve-enabled-behaviors.js.map +1 -0
- package/dist/resource-types.d.ts +198 -0
- package/dist/resource-types.js +96 -0
- package/dist/resource-types.js.map +1 -0
- package/dist/resume-screen.d.ts +31 -0
- package/dist/resume-screen.js +25 -0
- package/dist/resume-screen.js.map +1 -0
- package/dist/rider-display.d.ts +37 -0
- package/dist/rider-display.js +110 -0
- package/dist/rider-display.js.map +1 -0
- package/dist/rider-view.d.ts +37 -0
- package/dist/rider-view.js +47 -0
- package/dist/rider-view.js.map +1 -0
- package/dist/roster-label.d.ts +27 -0
- package/dist/roster-label.js +8 -0
- package/dist/roster-label.js.map +1 -0
- package/dist/route-pattern.d.ts +11 -0
- package/dist/route-pattern.js +20 -0
- package/dist/route-pattern.js.map +1 -0
- package/dist/route-permission.d.ts +60 -0
- package/dist/route-permission.js +48 -0
- package/dist/route-permission.js.map +1 -0
- package/dist/runtime-config.d.ts +33 -0
- package/dist/runtime-config.js +23 -0
- package/dist/runtime-config.js.map +1 -0
- package/dist/schema-validation.d.ts +172 -0
- package/dist/schema-validation.js +252 -0
- package/dist/schema-validation.js.map +1 -0
- package/dist/service-areas.d.ts +30 -0
- package/dist/service-areas.js +24 -0
- package/dist/service-areas.js.map +1 -0
- package/dist/service-operations-api.d.ts +78 -0
- package/dist/service-operations-api.js +37 -0
- package/dist/service-operations-api.js.map +1 -0
- package/dist/settings-relevance.d.ts +64 -0
- package/dist/settings-relevance.js +25 -0
- package/dist/settings-relevance.js.map +1 -0
- package/dist/singularise.d.ts +16 -0
- package/dist/singularise.js +37 -0
- package/dist/singularise.js.map +1 -0
- package/dist/site-address.d.ts +14 -0
- package/dist/site-address.js +28 -0
- package/dist/site-address.js.map +1 -0
- package/dist/slug.d.ts +26 -0
- package/dist/slug.js +15 -0
- package/dist/slug.js.map +1 -0
- package/dist/sound.d.ts +14 -0
- package/dist/sound.js +166 -0
- package/dist/sound.js.map +1 -0
- package/dist/staff-arrival.d.ts +3 -0
- package/dist/staff-arrival.js +11 -0
- package/dist/staff-arrival.js.map +1 -0
- package/dist/staff-home.d.ts +58 -0
- package/dist/staff-home.js +90 -0
- package/dist/staff-home.js.map +1 -0
- package/dist/staff-landing.d.ts +1 -0
- package/dist/staff-landing.js +15 -0
- package/dist/staff-landing.js.map +1 -0
- package/dist/stat-card-types.d.ts +19 -0
- package/dist/stat-card-types.js +1 -0
- package/dist/stat-card-types.js.map +1 -0
- package/dist/stock-levels.d.ts +32 -0
- package/dist/stock-levels.js +17 -0
- package/dist/stock-levels.js.map +1 -0
- package/dist/stored-token.d.ts +1 -0
- package/dist/stored-token.js +11 -0
- package/dist/stored-token.js.map +1 -0
- package/dist/storefront-url.d.ts +31 -0
- package/dist/storefront-url.js +40 -0
- package/dist/storefront-url.js.map +1 -0
- package/dist/storefront.d.ts +64 -0
- package/dist/storefront.js +51 -0
- package/dist/storefront.js.map +1 -0
- package/dist/subscription-billing-api.d.ts +115 -0
- package/dist/subscription-billing-api.js +27 -0
- package/dist/subscription-billing-api.js.map +1 -0
- package/dist/subscription-billing-model.d.ts +26 -0
- package/dist/subscription-billing-model.js +58 -0
- package/dist/subscription-billing-model.js.map +1 -0
- package/dist/support-case-subject.d.ts +10 -0
- package/dist/support-case-subject.js +13 -0
- package/dist/support-case-subject.js.map +1 -0
- package/dist/support-inbox.d.ts +6 -0
- package/dist/support-inbox.js +5 -0
- package/dist/support-inbox.js.map +1 -0
- package/dist/support.d.ts +7 -0
- package/dist/support.js +16 -0
- package/dist/support.js.map +1 -0
- package/dist/team-page.d.ts +9 -0
- package/dist/team-page.js +5 -0
- package/dist/team-page.js.map +1 -0
- package/dist/team-roles.d.ts +140 -0
- package/dist/team-roles.js +247 -0
- package/dist/team-roles.js.map +1 -0
- package/dist/team-successors.d.ts +20 -0
- package/dist/team-successors.js +13 -0
- package/dist/team-successors.js.map +1 -0
- package/dist/template-asset-url.d.ts +11 -0
- package/dist/template-asset-url.js +8 -0
- package/dist/template-asset-url.js.map +1 -0
- package/dist/template-capabilities.d.ts +2 -0
- package/dist/template-capabilities.js +71 -0
- package/dist/template-capabilities.js.map +1 -0
- package/dist/template-context.d.ts +111 -0
- package/dist/template-context.js +1278 -0
- package/dist/template-context.js.map +1 -0
- package/dist/template-filter.d.ts +29 -0
- package/dist/template-filter.js +41 -0
- package/dist/template-filter.js.map +1 -0
- package/dist/template-preview/preview-author-patch.d.ts +24 -0
- package/dist/template-preview/preview-author-patch.js +78 -0
- package/dist/template-preview/preview-author-patch.js.map +1 -0
- package/dist/template-preview/use-template-document.d.ts +38 -0
- package/dist/template-preview/use-template-document.js +45 -0
- package/dist/template-preview/use-template-document.js.map +1 -0
- package/dist/template-requirements.d.ts +38 -0
- package/dist/template-requirements.js +13 -0
- package/dist/template-requirements.js.map +1 -0
- package/dist/template-types.d.ts +317 -0
- package/dist/template-types.js +1 -0
- package/dist/template-types.js.map +1 -0
- package/dist/templates.d.ts +22 -0
- package/dist/templates.js +1 -0
- package/dist/templates.js.map +1 -0
- package/dist/theme-context.d.ts +58 -0
- package/dist/theme-context.js +283 -0
- package/dist/theme-context.js.map +1 -0
- package/dist/theme-policy.d.ts +41 -0
- package/dist/theme-policy.js +32 -0
- package/dist/theme-policy.js.map +1 -0
- package/dist/ticket-access.d.ts +20 -0
- package/dist/ticket-access.js +39 -0
- package/dist/ticket-access.js.map +1 -0
- package/dist/timeline-copy.d.ts +65 -0
- package/dist/timeline-copy.js +150 -0
- package/dist/timeline-copy.js.map +1 -0
- package/dist/url-params.d.ts +23 -0
- package/dist/url-params.js +43 -0
- package/dist/url-params.js.map +1 -0
- package/dist/use-behaviors.d.ts +13 -0
- package/dist/use-behaviors.js +41 -0
- package/dist/use-behaviors.js.map +1 -0
- package/dist/use-business-locations.d.ts +35 -0
- package/dist/use-business-locations.js +71 -0
- package/dist/use-business-locations.js.map +1 -0
- package/dist/use-currency.d.ts +12 -0
- package/dist/use-currency.js +16 -0
- package/dist/use-currency.js.map +1 -0
- package/dist/use-empty-state-copy.d.ts +12 -0
- package/dist/use-empty-state-copy.js +13 -0
- package/dist/use-empty-state-copy.js.map +1 -0
- package/dist/use-geo-cities.d.ts +1 -0
- package/dist/use-geo-cities.js +42 -0
- package/dist/use-geo-cities.js.map +1 -0
- package/dist/use-has-hardware.d.ts +13 -0
- package/dist/use-has-hardware.js +14 -0
- package/dist/use-has-hardware.js.map +1 -0
- package/dist/use-industry-key.d.ts +10 -0
- package/dist/use-industry-key.js +16 -0
- package/dist/use-industry-key.js.map +1 -0
- package/dist/use-item-links.d.ts +20 -0
- package/dist/use-item-links.js +30 -0
- package/dist/use-item-links.js.map +1 -0
- package/dist/use-job-roles.d.ts +21 -0
- package/dist/use-job-roles.js +76 -0
- package/dist/use-job-roles.js.map +1 -0
- package/dist/use-merchant-plan.d.ts +36 -0
- package/dist/use-merchant-plan.js +78 -0
- package/dist/use-merchant-plan.js.map +1 -0
- package/dist/use-module-label.d.ts +12 -0
- package/dist/use-module-label.js +13 -0
- package/dist/use-module-label.js.map +1 -0
- package/dist/use-money-visibility.d.ts +14 -0
- package/dist/use-money-visibility.js +13 -0
- package/dist/use-money-visibility.js.map +1 -0
- package/dist/use-nav-groups.d.ts +27 -0
- package/dist/use-nav-groups.js +141 -0
- package/dist/use-nav-groups.js.map +1 -0
- package/dist/use-pathname.d.ts +15 -0
- package/dist/use-pathname.js +29 -0
- package/dist/use-pathname.js.map +1 -0
- package/dist/use-permissions.d.ts +43 -0
- package/dist/use-permissions.js +158 -0
- package/dist/use-permissions.js.map +1 -0
- package/dist/use-platform-modules.d.ts +49 -0
- package/dist/use-platform-modules.js +416 -0
- package/dist/use-platform-modules.js.map +1 -0
- package/dist/use-staff-home.d.ts +9 -0
- package/dist/use-staff-home.js +24 -0
- package/dist/use-staff-home.js.map +1 -0
- package/dist/use-workspace-invite.d.ts +37 -0
- package/dist/use-workspace-invite.js +69 -0
- package/dist/use-workspace-invite.js.map +1 -0
- package/dist/utils.d.ts +53 -0
- package/dist/utils.js +161 -0
- package/dist/utils.js.map +1 -0
- package/dist/wallet-format.d.ts +8 -0
- package/dist/wallet-format.js +36 -0
- package/dist/wallet-format.js.map +1 -0
- package/dist/wallet-settlement.d.ts +14 -0
- package/dist/wallet-settlement.js +5 -0
- package/dist/wallet-settlement.js.map +1 -0
- package/dist/web-url.d.ts +1 -0
- package/dist/web-url.js +50 -0
- package/dist/web-url.js.map +1 -0
- package/dist/whats-new.d.ts +59 -0
- package/dist/whats-new.js +77 -0
- package/dist/whats-new.js.map +1 -0
- package/dist/workspace-recents.d.ts +30 -0
- package/dist/workspace-recents.js +37 -0
- package/dist/workspace-recents.js.map +1 -0
- package/dist/workspace-slug.d.ts +1 -0
- package/dist/workspace-slug.js +15 -0
- package/dist/workspace-slug.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/blog/density.ts"],"sourcesContent":["export type TypographyLineHeight = 'tight' | 'default' | 'relaxed';\nexport type TypographyParagraphSpacing = 'compact' | 'default' | 'loose';\nexport type TypographyMeasure = 'narrow' | 'default' | 'wide';\nexport type ReaderTheme = 'original' | 'quiet';\n\nexport interface BlogTypographySettings {\n lineHeight: TypographyLineHeight;\n paragraphSpacing: TypographyParagraphSpacing;\n measure: TypographyMeasure;\n}\n\nexport interface BlogContentDensity {\n wordCount: number;\n readTime: number;\n denseParagraphIndexes: number[];\n needsSubheadingHint: boolean;\n}\n\nexport const DEFAULT_BLOG_TYPOGRAPHY: BlogTypographySettings = {\n lineHeight: 'default',\n paragraphSpacing: 'default',\n measure: 'default',\n};\n\nexport const TYPOGRAPHY_OPTION_LABELS = {\n lineHeight: {\n tight: 'Tight (1.4)',\n default: 'Default (1.58)',\n relaxed: 'Relaxed (1.75)',\n },\n paragraphSpacing: {\n compact: 'Compact (1.25em)',\n default: 'Default (1.75em)',\n loose: 'Loose (2.25em)',\n },\n measure: {\n narrow: 'Narrow (560px)',\n default: 'Default (680px)',\n wide: 'Wide (820px)',\n },\n} as const;\n\nexport const READER_THEME_OPTIONS = [\n { value: 'original', label: 'Original' },\n { value: 'quiet', label: 'Quiet' },\n] as const satisfies ReadonlyArray<{ value: ReaderTheme; label: string }>;\n\nexport const TYPOGRAPHY_VARIABLES = {\n lineHeight: {\n tight: '1.4',\n default: '1.58',\n relaxed: '1.75',\n },\n paragraphSpacing: {\n compact: '1.25em',\n default: '1.75em',\n loose: '2.25em',\n },\n measure: {\n narrow: '560px',\n default: '680px',\n wide: '820px',\n },\n} as const;\n\nconst ENTITY_TEXT_REPLACEMENTS: Record<string, string> = {\n nbsp: ' ',\n amp: '&',\n quot: '\"',\n '#39': \"'\",\n};\n\nconst SUBHEADING_HINT_WORD_THRESHOLD = 800;\n\nfunction isLineHeight(value: unknown): value is TypographyLineHeight {\n return value === 'tight' || value === 'default' || value === 'relaxed';\n}\n\nfunction isParagraphSpacing(\n value: unknown,\n): value is TypographyParagraphSpacing {\n return value === 'compact' || value === 'default' || value === 'loose';\n}\n\nfunction isMeasure(value: unknown): value is TypographyMeasure {\n return value === 'narrow' || value === 'default' || value === 'wide';\n}\n\nexport function normalizeBlogTypography(\n value: unknown,\n): BlogTypographySettings {\n const typography =\n value && typeof value === 'object'\n ? (value as Partial<BlogTypographySettings>)\n : {};\n\n return {\n lineHeight: isLineHeight(typography.lineHeight)\n ? typography.lineHeight\n : DEFAULT_BLOG_TYPOGRAPHY.lineHeight,\n paragraphSpacing: isParagraphSpacing(typography.paragraphSpacing)\n ? typography.paragraphSpacing\n : DEFAULT_BLOG_TYPOGRAPHY.paragraphSpacing,\n measure: isMeasure(typography.measure)\n ? typography.measure\n : DEFAULT_BLOG_TYPOGRAPHY.measure,\n };\n}\n\nexport function getReadingStyleVariables(\n typography: BlogTypographySettings,\n): Record<\n '--reading-line-height' | '--reading-paragraph-spacing' | '--reading-measure',\n string\n> {\n const normalized = normalizeBlogTypography(typography);\n\n return {\n '--reading-line-height':\n TYPOGRAPHY_VARIABLES.lineHeight[normalized.lineHeight],\n '--reading-paragraph-spacing':\n TYPOGRAPHY_VARIABLES.paragraphSpacing[normalized.paragraphSpacing],\n '--reading-measure': TYPOGRAPHY_VARIABLES.measure[normalized.measure],\n };\n}\n\nexport function stripHtml(value: string): string {\n return value\n .replace(/<br\\s*\\/?>/gi, ' ')\n .replace(/<\\/(p|div|li|blockquote|h[1-6]|pre)>/gi, ' ')\n .replace(/<[^>]*>/g, ' ')\n .replace(\n /&([a-z0-9#]+);/gi,\n (_match, entity: string) =>\n ENTITY_TEXT_REPLACEMENTS[entity.toLowerCase()] ?? ' ',\n )\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\nexport function getWordCount(html: string): number {\n const text = stripHtml(html);\n return text ? text.split(' ').filter(Boolean).length : 0;\n}\n\nexport function estimateReadTime(html: string): number {\n return Math.max(1, Math.ceil(getWordCount(html) / 250));\n}\n\nfunction countSentences(text: string): number {\n const normalized = text.replace(/\\s+/g, ' ').trim();\n if (!normalized) return 0;\n\n const matches = normalized.match(/[^.!?]+(?:[.!?]+(?=\\s|$)|$)/g);\n return matches\n ? matches.map((sentence) => sentence.trim()).filter(Boolean).length\n : 0;\n}\n\nfunction getParagraphTexts(html: string): string[] {\n return Array.from(html.matchAll(/<p\\b[^>]*>([\\s\\S]*?)<\\/p>/gi))\n .map((match) => stripHtml(match[1] || ''))\n .filter(Boolean);\n}\n\nexport function findDenseParagraphIndexes(\n html: string,\n maxSentences = 6,\n): number[] {\n return getParagraphTexts(html)\n .map((text, index) => ({ index, sentenceCount: countSentences(text) }))\n .filter(({ sentenceCount }) => sentenceCount > maxSentences)\n .map(({ index }) => index);\n}\n\nexport function needsSubheadingHint(html: string): boolean {\n return (\n getWordCount(html) > SUBHEADING_HINT_WORD_THRESHOLD &&\n !/<h[23]\\b/i.test(html)\n );\n}\n\nexport function analyzeBlogContent(html: string): BlogContentDensity {\n return {\n wordCount: getWordCount(html),\n readTime: estimateReadTime(html),\n denseParagraphIndexes: findDenseParagraphIndexes(html),\n needsSubheadingHint: needsSubheadingHint(html),\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
function escapeHtml(value) {
|
|
2
|
+
return value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
3
|
+
}
|
|
4
|
+
function normalizeNewlines(value) {
|
|
5
|
+
return value.replace(/\r\n?/g, "\n");
|
|
6
|
+
}
|
|
7
|
+
function hasHtmlTags(value) {
|
|
8
|
+
return /<[^>]+>/.test(value);
|
|
9
|
+
}
|
|
10
|
+
function looksLikeMarkdown(text) {
|
|
11
|
+
const normalized = normalizeNewlines(text).trim();
|
|
12
|
+
if (!normalized || hasHtmlTags(normalized)) return false;
|
|
13
|
+
return /(^|\n)#{1,6}\s+\S/.test(normalized) || /(^|\n)[-*]\s+\S/.test(normalized) || /(^|\n)\d+\.\s+\S/.test(normalized) || /\*\*[^*\n]+\*\*/.test(normalized) || /(^|\n)```/.test(normalized) || /(^|\n)>\s+\S/.test(normalized) || /\[[^\]]+\]\([^)]+\)/.test(normalized);
|
|
14
|
+
}
|
|
15
|
+
function inlineMarkdown(value) {
|
|
16
|
+
let result = escapeHtml(value);
|
|
17
|
+
result = result.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, '<a href="$2">$1</a>');
|
|
18
|
+
result = result.replace(/(\*\*|__)([^*_\n]+)\1/g, "<strong>$2</strong>");
|
|
19
|
+
result = result.replace(
|
|
20
|
+
/(?<![*_])(\*|_)([^*_\n]+)\1(?![*_])/g,
|
|
21
|
+
"<em>$2</em>"
|
|
22
|
+
);
|
|
23
|
+
result = result.replace(/`([^`\n]+)`/g, "<code>$1</code>");
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
function markdownToHtml(markdown) {
|
|
27
|
+
const lines = normalizeNewlines(markdown).split("\n");
|
|
28
|
+
const out = [];
|
|
29
|
+
let inCodeBlock = false;
|
|
30
|
+
let codeBuffer = [];
|
|
31
|
+
let listType = null;
|
|
32
|
+
let paragraphBuffer = [];
|
|
33
|
+
const flushParagraph = () => {
|
|
34
|
+
if (paragraphBuffer.length === 0) return;
|
|
35
|
+
out.push(`<p>${inlineMarkdown(paragraphBuffer.join(" "))}</p>`);
|
|
36
|
+
paragraphBuffer = [];
|
|
37
|
+
};
|
|
38
|
+
const closeList = () => {
|
|
39
|
+
if (!listType) return;
|
|
40
|
+
out.push(`</${listType}>`);
|
|
41
|
+
listType = null;
|
|
42
|
+
};
|
|
43
|
+
const closeBlocks = () => {
|
|
44
|
+
flushParagraph();
|
|
45
|
+
closeList();
|
|
46
|
+
};
|
|
47
|
+
for (const rawLine of lines) {
|
|
48
|
+
const line = rawLine.trimEnd();
|
|
49
|
+
if (line.startsWith("```")) {
|
|
50
|
+
closeBlocks();
|
|
51
|
+
if (inCodeBlock) {
|
|
52
|
+
out.push(
|
|
53
|
+
`<pre><code>${codeBuffer.map((entry) => escapeHtml(entry)).join("\n")}</code></pre>`
|
|
54
|
+
);
|
|
55
|
+
codeBuffer = [];
|
|
56
|
+
}
|
|
57
|
+
inCodeBlock = !inCodeBlock;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (inCodeBlock) {
|
|
61
|
+
codeBuffer.push(rawLine);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (!line.trim()) {
|
|
65
|
+
closeBlocks();
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const heading = line.match(/^(#{1,6})\s+(.*)$/);
|
|
69
|
+
if (heading) {
|
|
70
|
+
closeBlocks();
|
|
71
|
+
const level = heading[1].length;
|
|
72
|
+
out.push(`<h${level}>${inlineMarkdown(heading[2])}</h${level}>`);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const blockquote = line.match(/^>\s+(.*)$/);
|
|
76
|
+
if (blockquote) {
|
|
77
|
+
closeBlocks();
|
|
78
|
+
out.push(
|
|
79
|
+
`<blockquote><p>${inlineMarkdown(blockquote[1])}</p></blockquote>`
|
|
80
|
+
);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const unordered = line.match(/^[-*]\s+(.*)$/);
|
|
84
|
+
if (unordered) {
|
|
85
|
+
flushParagraph();
|
|
86
|
+
if (listType !== "ul") {
|
|
87
|
+
closeList();
|
|
88
|
+
out.push("<ul>");
|
|
89
|
+
listType = "ul";
|
|
90
|
+
}
|
|
91
|
+
out.push(`<li>${inlineMarkdown(unordered[1])}</li>`);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const ordered = line.match(/^\d+\.\s+(.*)$/);
|
|
95
|
+
if (ordered) {
|
|
96
|
+
flushParagraph();
|
|
97
|
+
if (listType !== "ol") {
|
|
98
|
+
closeList();
|
|
99
|
+
out.push("<ol>");
|
|
100
|
+
listType = "ol";
|
|
101
|
+
}
|
|
102
|
+
out.push(`<li>${inlineMarkdown(ordered[1])}</li>`);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
closeList();
|
|
106
|
+
paragraphBuffer.push(line.trim());
|
|
107
|
+
}
|
|
108
|
+
closeBlocks();
|
|
109
|
+
if (inCodeBlock) {
|
|
110
|
+
out.push(
|
|
111
|
+
`<pre><code>${codeBuffer.map((entry) => escapeHtml(entry)).join("\n")}</code></pre>`
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
return out.join("");
|
|
115
|
+
}
|
|
116
|
+
function plainTextBlocksToHtml(plain) {
|
|
117
|
+
return normalizeNewlines(plain).split(/\n\s*\n/g).map((block) => block.trim()).filter(Boolean).map((block) => `<p>${escapeHtml(block).replace(/\n/g, "<br />")}</p>`).join("");
|
|
118
|
+
}
|
|
119
|
+
function cleanStyleValue(styleValue) {
|
|
120
|
+
const keptDeclarations = styleValue.split(";").map((declaration) => declaration.trim()).filter(Boolean).map((declaration) => {
|
|
121
|
+
const [rawProperty, ...rawValue] = declaration.split(":");
|
|
122
|
+
return {
|
|
123
|
+
property: rawProperty?.trim().toLowerCase() || "",
|
|
124
|
+
value: rawValue.join(":").trim()
|
|
125
|
+
};
|
|
126
|
+
}).filter(
|
|
127
|
+
({ property, value }) => property === "text-align" && /^(left|center|right|justify)$/i.test(value)
|
|
128
|
+
).map(({ property, value }) => `${property}: ${value.toLowerCase()}`);
|
|
129
|
+
return keptDeclarations.join("; ");
|
|
130
|
+
}
|
|
131
|
+
function shouldCleanHtml(html) {
|
|
132
|
+
return /\b(?:gdoc-|notion-|MsoNormal|mso-)/i.test(html) || /\s(?:class|style)=/i.test(html) || /<\/?font\b/i.test(html) || /<\/?(?:o:p|w:[\w-]+|m:[\w-]+|v:[\w-]+)/i.test(html);
|
|
133
|
+
}
|
|
134
|
+
function isSingleLineHtml(html) {
|
|
135
|
+
return !/<(?:p|div|h[1-6]|ul|ol|li|blockquote|pre|br)\b/i.test(html);
|
|
136
|
+
}
|
|
137
|
+
function cleanSourceHtml(html) {
|
|
138
|
+
return html.replace(/<meta[^>]*>/gi, "").replace(/<link[^>]*>/gi, "").replace(/<\/?(?:o:p|w:[\w-]+|m:[\w-]+|v:[\w-]+)\b[^>]*>/gi, "").replace(/<\/?font\b[^>]*>/gi, "").replace(/\sclass=(['"])[\s\S]*?\1/gi, "").replace(/\s(?:color|bgcolor|face|size)=(['"])[\s\S]*?\1/gi, "").replace(/\sstyle=(['"])([\s\S]*?)\1/gi, (_match, _quote, styleValue) => {
|
|
139
|
+
const cleanedStyle = cleanStyleValue(styleValue);
|
|
140
|
+
return cleanedStyle ? ` style="${cleanedStyle}"` : "";
|
|
141
|
+
}).replace(/\s+/g, " ").replace(/>\s+</g, "><").trim();
|
|
142
|
+
}
|
|
143
|
+
function cleanPaste(html, plain) {
|
|
144
|
+
const normalizedHtml = html.trim();
|
|
145
|
+
const normalizedPlain = normalizeNewlines(plain).trim();
|
|
146
|
+
if (!normalizedHtml && !normalizedPlain) {
|
|
147
|
+
return "";
|
|
148
|
+
}
|
|
149
|
+
if (looksLikeMarkdown(normalizedPlain)) {
|
|
150
|
+
return markdownToHtml(normalizedPlain);
|
|
151
|
+
}
|
|
152
|
+
if (normalizedPlain && /\n\s*\n/.test(normalizedPlain) && (!normalizedHtml || isSingleLineHtml(normalizedHtml))) {
|
|
153
|
+
return plainTextBlocksToHtml(normalizedPlain);
|
|
154
|
+
}
|
|
155
|
+
if (!normalizedHtml) {
|
|
156
|
+
return "";
|
|
157
|
+
}
|
|
158
|
+
if (!shouldCleanHtml(normalizedHtml)) {
|
|
159
|
+
return normalizedHtml;
|
|
160
|
+
}
|
|
161
|
+
return cleanSourceHtml(normalizedHtml);
|
|
162
|
+
}
|
|
163
|
+
export {
|
|
164
|
+
cleanPaste,
|
|
165
|
+
looksLikeMarkdown,
|
|
166
|
+
markdownToHtml
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=paste-hygiene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/blog/paste-hygiene.ts"],"sourcesContent":["function escapeHtml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\nfunction normalizeNewlines(value: string): string {\n return value.replace(/\\r\\n?/g, '\\n');\n}\n\nfunction hasHtmlTags(value: string): boolean {\n return /<[^>]+>/.test(value);\n}\n\nexport function looksLikeMarkdown(text: string): boolean {\n const normalized = normalizeNewlines(text).trim();\n if (!normalized || hasHtmlTags(normalized)) return false;\n\n return (\n /(^|\\n)#{1,6}\\s+\\S/.test(normalized) ||\n /(^|\\n)[-*]\\s+\\S/.test(normalized) ||\n /(^|\\n)\\d+\\.\\s+\\S/.test(normalized) ||\n /\\*\\*[^*\\n]+\\*\\*/.test(normalized) ||\n /(^|\\n)```/.test(normalized) ||\n /(^|\\n)>\\s+\\S/.test(normalized) ||\n /\\[[^\\]]+\\]\\([^)]+\\)/.test(normalized)\n );\n}\n\nfunction inlineMarkdown(value: string): string {\n let result = escapeHtml(value);\n result = result.replace(/\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/g, '<a href=\"$2\">$1</a>');\n result = result.replace(/(\\*\\*|__)([^*_\\n]+)\\1/g, '<strong>$2</strong>');\n result = result.replace(\n /(?<![*_])(\\*|_)([^*_\\n]+)\\1(?![*_])/g,\n '<em>$2</em>',\n );\n result = result.replace(/`([^`\\n]+)`/g, '<code>$1</code>');\n return result;\n}\n\nexport function markdownToHtml(markdown: string): string {\n const lines = normalizeNewlines(markdown).split('\\n');\n const out: string[] = [];\n let inCodeBlock = false;\n let codeBuffer: string[] = [];\n let listType: 'ul' | 'ol' | null = null;\n let paragraphBuffer: string[] = [];\n\n const flushParagraph = () => {\n if (paragraphBuffer.length === 0) return;\n out.push(`<p>${inlineMarkdown(paragraphBuffer.join(' '))}</p>`);\n paragraphBuffer = [];\n };\n\n const closeList = () => {\n if (!listType) return;\n out.push(`</${listType}>`);\n listType = null;\n };\n\n const closeBlocks = () => {\n flushParagraph();\n closeList();\n };\n\n for (const rawLine of lines) {\n const line = rawLine.trimEnd();\n\n if (line.startsWith('```')) {\n closeBlocks();\n if (inCodeBlock) {\n out.push(\n `<pre><code>${codeBuffer.map((entry) => escapeHtml(entry)).join('\\n')}</code></pre>`,\n );\n codeBuffer = [];\n }\n inCodeBlock = !inCodeBlock;\n continue;\n }\n\n if (inCodeBlock) {\n codeBuffer.push(rawLine);\n continue;\n }\n\n if (!line.trim()) {\n closeBlocks();\n continue;\n }\n\n const heading = line.match(/^(#{1,6})\\s+(.*)$/);\n if (heading) {\n closeBlocks();\n const level = heading[1].length;\n out.push(`<h${level}>${inlineMarkdown(heading[2])}</h${level}>`);\n continue;\n }\n\n const blockquote = line.match(/^>\\s+(.*)$/);\n if (blockquote) {\n closeBlocks();\n out.push(\n `<blockquote><p>${inlineMarkdown(blockquote[1])}</p></blockquote>`,\n );\n continue;\n }\n\n const unordered = line.match(/^[-*]\\s+(.*)$/);\n if (unordered) {\n flushParagraph();\n if (listType !== 'ul') {\n closeList();\n out.push('<ul>');\n listType = 'ul';\n }\n out.push(`<li>${inlineMarkdown(unordered[1])}</li>`);\n continue;\n }\n\n const ordered = line.match(/^\\d+\\.\\s+(.*)$/);\n if (ordered) {\n flushParagraph();\n if (listType !== 'ol') {\n closeList();\n out.push('<ol>');\n listType = 'ol';\n }\n out.push(`<li>${inlineMarkdown(ordered[1])}</li>`);\n continue;\n }\n\n closeList();\n paragraphBuffer.push(line.trim());\n }\n\n closeBlocks();\n\n if (inCodeBlock) {\n out.push(\n `<pre><code>${codeBuffer.map((entry) => escapeHtml(entry)).join('\\n')}</code></pre>`,\n );\n }\n\n return out.join('');\n}\n\nfunction plainTextBlocksToHtml(plain: string): string {\n return normalizeNewlines(plain)\n .split(/\\n\\s*\\n/g)\n .map((block) => block.trim())\n .filter(Boolean)\n .map((block) => `<p>${escapeHtml(block).replace(/\\n/g, '<br />')}</p>`)\n .join('');\n}\n\nfunction cleanStyleValue(styleValue: string): string {\n const keptDeclarations = styleValue\n .split(';')\n .map((declaration) => declaration.trim())\n .filter(Boolean)\n .map((declaration) => {\n const [rawProperty, ...rawValue] = declaration.split(':');\n return {\n property: rawProperty?.trim().toLowerCase() || '',\n value: rawValue.join(':').trim(),\n };\n })\n .filter(\n ({ property, value }) =>\n property === 'text-align' &&\n /^(left|center|right|justify)$/i.test(value),\n )\n .map(({ property, value }) => `${property}: ${value.toLowerCase()}`);\n\n return keptDeclarations.join('; ');\n}\n\nfunction shouldCleanHtml(html: string): boolean {\n return (\n /\\b(?:gdoc-|notion-|MsoNormal|mso-)/i.test(html) ||\n /\\s(?:class|style)=/i.test(html) ||\n /<\\/?font\\b/i.test(html) ||\n /<\\/?(?:o:p|w:[\\w-]+|m:[\\w-]+|v:[\\w-]+)/i.test(html)\n );\n}\n\nfunction isSingleLineHtml(html: string): boolean {\n return !/<(?:p|div|h[1-6]|ul|ol|li|blockquote|pre|br)\\b/i.test(html);\n}\n\nfunction cleanSourceHtml(html: string): string {\n return html\n .replace(/<meta[^>]*>/gi, '')\n .replace(/<link[^>]*>/gi, '')\n .replace(/<\\/?(?:o:p|w:[\\w-]+|m:[\\w-]+|v:[\\w-]+)\\b[^>]*>/gi, '')\n .replace(/<\\/?font\\b[^>]*>/gi, '')\n .replace(/\\sclass=(['\"])[\\s\\S]*?\\1/gi, '')\n .replace(/\\s(?:color|bgcolor|face|size)=(['\"])[\\s\\S]*?\\1/gi, '')\n .replace(/\\sstyle=(['\"])([\\s\\S]*?)\\1/gi, (_match, _quote, styleValue) => {\n const cleanedStyle = cleanStyleValue(styleValue);\n return cleanedStyle ? ` style=\"${cleanedStyle}\"` : '';\n })\n .replace(/\\s+/g, ' ')\n .replace(/>\\s+</g, '><')\n .trim();\n}\n\nexport function cleanPaste(html: string, plain: string): string {\n const normalizedHtml = html.trim();\n const normalizedPlain = normalizeNewlines(plain).trim();\n\n if (!normalizedHtml && !normalizedPlain) {\n return '';\n }\n\n if (looksLikeMarkdown(normalizedPlain)) {\n return markdownToHtml(normalizedPlain);\n }\n\n if (\n normalizedPlain &&\n /\\n\\s*\\n/.test(normalizedPlain) &&\n (!normalizedHtml || isSingleLineHtml(normalizedHtml))\n ) {\n return plainTextBlocksToHtml(normalizedPlain);\n }\n\n if (!normalizedHtml) {\n return '';\n }\n\n if (!shouldCleanHtml(normalizedHtml)) {\n return normalizedHtml;\n }\n\n return cleanSourceHtml(normalizedHtml);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BookingLocation } from '@withpotter/lib/product-types';
|
|
2
|
+
/**
|
|
3
|
+
* A booking's place, said in a line a merchant can read back.
|
|
4
|
+
*
|
|
5
|
+
* What a merchant types is stored as `{ kind, value, instructions }`. The
|
|
6
|
+
* service page was looking for a `label` that nothing writes, so an address
|
|
7
|
+
* entered in the dialog was saved and then never shown anywhere — it read as
|
|
8
|
+
* lost. This is the one reading of that shape for every screen that echoes it.
|
|
9
|
+
*/
|
|
10
|
+
export declare function bookingLocationLabel(location: BookingLocation | null | undefined): string | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function bookingLocationLabel(location) {
|
|
2
|
+
if (!location) return null;
|
|
3
|
+
const value = location.value?.trim() ?? "";
|
|
4
|
+
const note = location.instructions?.trim() ?? "";
|
|
5
|
+
const join = (...parts) => parts.filter(Boolean).join(" \xB7 ");
|
|
6
|
+
switch (location.kind) {
|
|
7
|
+
case "google-meet":
|
|
8
|
+
return "Google Meet";
|
|
9
|
+
case "link":
|
|
10
|
+
return join(value || "Video call", note);
|
|
11
|
+
case "in-person":
|
|
12
|
+
return join(value, note) || null;
|
|
13
|
+
case "phone":
|
|
14
|
+
return join("Phone call", value, note);
|
|
15
|
+
case "custom":
|
|
16
|
+
return note || value || null;
|
|
17
|
+
default:
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
bookingLocationLabel
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=booking-location-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/booking-location-label.ts"],"sourcesContent":["import type { BookingLocation } from '@withpotter/lib/product-types';\n\n/**\n * A booking's place, said in a line a merchant can read back.\n *\n * What a merchant types is stored as `{ kind, value, instructions }`. The\n * service page was looking for a `label` that nothing writes, so an address\n * entered in the dialog was saved and then never shown anywhere — it read as\n * lost. This is the one reading of that shape for every screen that echoes it.\n */\nexport function bookingLocationLabel(\n location: BookingLocation | null | undefined,\n): string | null {\n if (!location) return null;\n const value = location.value?.trim() ?? '';\n const note = location.instructions?.trim() ?? '';\n const join = (...parts: string[]) => parts.filter(Boolean).join(' · ');\n\n switch (location.kind) {\n case 'google-meet':\n return 'Google Meet';\n case 'link':\n return join(value || 'Video call', note);\n case 'in-person':\n return join(value, note) || null;\n case 'phone':\n return join('Phone call', value, note);\n case 'custom':\n return note || value || null;\n default:\n return null;\n }\n}\n"],"mappings":"AAUO,SAAS,qBACd,UACe;AACf,MAAI,CAAC,SAAU,QAAO;AACtB,QAAM,QAAQ,SAAS,OAAO,KAAK,KAAK;AACxC,QAAM,OAAO,SAAS,cAAc,KAAK,KAAK;AAC9C,QAAM,OAAO,IAAI,UAAoB,MAAM,OAAO,OAAO,EAAE,KAAK,QAAK;AAErE,UAAQ,SAAS,MAAM;AAAA,IACrB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,KAAK,SAAS,cAAc,IAAI;AAAA,IACzC,KAAK;AACH,aAAO,KAAK,OAAO,IAAI,KAAK;AAAA,IAC9B,KAAK;AACH,aAAO,KAAK,cAAc,OAAO,IAAI;AAAA,IACvC,KAAK;AACH,aAAO,QAAQ,SAAS;AAAA,IAC1B;AACE,aAAO;AAAA,EACX;AACF;","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The room a booking happens in, read back off the booking.
|
|
3
|
+
*
|
|
4
|
+
* `potter-api` mints a Google Meet room per booking when a calendar is
|
|
5
|
+
* connected and writes it to `metadata.meetingLink` (calendar-sync.service.ts),
|
|
6
|
+
* alongside the calendar event id. The confirmation email, the reminder and the
|
|
7
|
+
* WhatsApp join button all carry that link — the merchant's own copy of the
|
|
8
|
+
* appointment was the one place it never appeared, so the way to find your own
|
|
9
|
+
* 3pm call was to go and read the customer's email.
|
|
10
|
+
*
|
|
11
|
+
* `metadata` is a JSONB blob: it is whatever was written to it, by any version
|
|
12
|
+
* of the app. So this validates rather than reads — anything that is not an
|
|
13
|
+
* http(s) URL answers null instead of putting a stray string behind a control
|
|
14
|
+
* that says "Join".
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* A per-booking room, or null.
|
|
18
|
+
*
|
|
19
|
+
* A CALL THAT IS NOT HAPPENING GETS NO DOOR. The room outlives the booking —
|
|
20
|
+
* cancelling leaves the calendar event where it is (deliberately: the slot is
|
|
21
|
+
* still the merchant's diary) — so a cancelled appointment still carries a
|
|
22
|
+
* perfectly working link, and offering it as "Join" invites somebody into a
|
|
23
|
+
* meeting nobody is coming to. The row already says Cancelled; the control
|
|
24
|
+
* must not disagree with it.
|
|
25
|
+
*/
|
|
26
|
+
export declare function meetingLinkOf(booking: {
|
|
27
|
+
status?: string | null;
|
|
28
|
+
metadata?: Record<string, unknown> | null;
|
|
29
|
+
}): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* The same rule, for a surface that already has the link out of its payload.
|
|
32
|
+
*
|
|
33
|
+
* The calendar's event list carries `meetingLink` on the event itself rather
|
|
34
|
+
* than a metadata blob, and it must answer the same way the record does — one
|
|
35
|
+
* copy of "is this a room somebody should be walking into", so the calendar and
|
|
36
|
+
* the booking cannot disagree about the same appointment.
|
|
37
|
+
*/
|
|
38
|
+
export declare function usableMeetingLink(raw: unknown, status?: string | null): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* What to call the room on the control that opens it.
|
|
41
|
+
*
|
|
42
|
+
* Named where we know the name: "Join Google Meet" tells a merchant which tab
|
|
43
|
+
* is about to open and which account it will want. Anything else we do not
|
|
44
|
+
* recognise stays "Join call" rather than guessing a brand from a hostname.
|
|
45
|
+
*/
|
|
46
|
+
export declare function meetingProviderOf(link: string): string | null;
|
|
47
|
+
/** The label for the control: "Join Google Meet", or plain "Join call". */
|
|
48
|
+
export declare function joinLabelOf(link: string): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
function meetingLinkOf(booking) {
|
|
2
|
+
return usableMeetingLink(booking.metadata?.meetingLink, booking.status);
|
|
3
|
+
}
|
|
4
|
+
function usableMeetingLink(raw, status) {
|
|
5
|
+
if (status === "cancelled" || status === "no_show") return null;
|
|
6
|
+
if (typeof raw !== "string") return null;
|
|
7
|
+
const trimmed = raw.trim();
|
|
8
|
+
if (!trimmed) return null;
|
|
9
|
+
try {
|
|
10
|
+
const url = new URL(trimmed);
|
|
11
|
+
if (url.protocol !== "https:" && url.protocol !== "http:") return null;
|
|
12
|
+
return trimmed;
|
|
13
|
+
} catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function meetingProviderOf(link) {
|
|
18
|
+
let host;
|
|
19
|
+
try {
|
|
20
|
+
host = new URL(link).hostname.toLowerCase();
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (host === "meet.google.com") return "Google Meet";
|
|
25
|
+
if (host.endsWith("zoom.us") || host.endsWith("zoom.com")) return "Zoom";
|
|
26
|
+
if (host.endsWith("teams.microsoft.com") || host.endsWith("teams.live.com"))
|
|
27
|
+
return "Microsoft Teams";
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
function joinLabelOf(link) {
|
|
31
|
+
const provider = meetingProviderOf(link);
|
|
32
|
+
return provider ? `Join ${provider}` : "Join call";
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
joinLabelOf,
|
|
36
|
+
meetingLinkOf,
|
|
37
|
+
meetingProviderOf,
|
|
38
|
+
usableMeetingLink
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=booking-meeting-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/booking-meeting-link.ts"],"sourcesContent":["/**\n * The room a booking happens in, read back off the booking.\n *\n * `potter-api` mints a Google Meet room per booking when a calendar is\n * connected and writes it to `metadata.meetingLink` (calendar-sync.service.ts),\n * alongside the calendar event id. The confirmation email, the reminder and the\n * WhatsApp join button all carry that link — the merchant's own copy of the\n * appointment was the one place it never appeared, so the way to find your own\n * 3pm call was to go and read the customer's email.\n *\n * `metadata` is a JSONB blob: it is whatever was written to it, by any version\n * of the app. So this validates rather than reads — anything that is not an\n * http(s) URL answers null instead of putting a stray string behind a control\n * that says \"Join\".\n */\n\n/**\n * A per-booking room, or null.\n *\n * A CALL THAT IS NOT HAPPENING GETS NO DOOR. The room outlives the booking —\n * cancelling leaves the calendar event where it is (deliberately: the slot is\n * still the merchant's diary) — so a cancelled appointment still carries a\n * perfectly working link, and offering it as \"Join\" invites somebody into a\n * meeting nobody is coming to. The row already says Cancelled; the control\n * must not disagree with it.\n */\nexport function meetingLinkOf(booking: {\n status?: string | null;\n metadata?: Record<string, unknown> | null;\n}): string | null {\n return usableMeetingLink(booking.metadata?.meetingLink, booking.status);\n}\n\n/**\n * The same rule, for a surface that already has the link out of its payload.\n *\n * The calendar's event list carries `meetingLink` on the event itself rather\n * than a metadata blob, and it must answer the same way the record does — one\n * copy of \"is this a room somebody should be walking into\", so the calendar and\n * the booking cannot disagree about the same appointment.\n */\nexport function usableMeetingLink(\n raw: unknown,\n status?: string | null,\n): string | null {\n if (status === 'cancelled' || status === 'no_show') return null;\n if (typeof raw !== 'string') return null;\n const trimmed = raw.trim();\n if (!trimmed) return null;\n try {\n const url = new URL(trimmed);\n if (url.protocol !== 'https:' && url.protocol !== 'http:') return null;\n return trimmed;\n } catch {\n return null;\n }\n}\n\n/**\n * What to call the room on the control that opens it.\n *\n * Named where we know the name: \"Join Google Meet\" tells a merchant which tab\n * is about to open and which account it will want. Anything else we do not\n * recognise stays \"Join call\" rather than guessing a brand from a hostname.\n */\nexport function meetingProviderOf(link: string): string | null {\n let host: string;\n try {\n host = new URL(link).hostname.toLowerCase();\n } catch {\n return null;\n }\n if (host === 'meet.google.com') return 'Google Meet';\n if (host.endsWith('zoom.us') || host.endsWith('zoom.com')) return 'Zoom';\n if (host.endsWith('teams.microsoft.com') || host.endsWith('teams.live.com'))\n return 'Microsoft Teams';\n return null;\n}\n\n/** The label for the control: \"Join Google Meet\", or plain \"Join call\". */\nexport function joinLabelOf(link: string): string {\n const provider = meetingProviderOf(link);\n return provider ? `Join ${provider}` : 'Join call';\n}\n"],"mappings":"AA0BO,SAAS,cAAc,SAGZ;AAChB,SAAO,kBAAkB,QAAQ,UAAU,aAAa,QAAQ,MAAM;AACxE;AAUO,SAAS,kBACd,KACA,QACe;AACf,MAAI,WAAW,eAAe,WAAW,UAAW,QAAO;AAC3D,MAAI,OAAO,QAAQ,SAAU,QAAO;AACpC,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,OAAO;AAC3B,QAAI,IAAI,aAAa,YAAY,IAAI,aAAa,QAAS,QAAO;AAClE,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AASO,SAAS,kBAAkB,MAA6B;AAC7D,MAAI;AACJ,MAAI;AACF,WAAO,IAAI,IAAI,IAAI,EAAE,SAAS,YAAY;AAAA,EAC5C,QAAQ;AACN,WAAO;AAAA,EACT;AACA,MAAI,SAAS,kBAAmB,QAAO;AACvC,MAAI,KAAK,SAAS,SAAS,KAAK,KAAK,SAAS,UAAU,EAAG,QAAO;AAClE,MAAI,KAAK,SAAS,qBAAqB,KAAK,KAAK,SAAS,gBAAgB;AACxE,WAAO;AACT,SAAO;AACT;AAGO,SAAS,YAAY,MAAsB;AAChD,QAAM,WAAW,kBAAkB,IAAI;AACvC,SAAO,WAAW,QAAQ,QAAQ,KAAK;AACzC;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which ways a box can reach people, read from its box switches.
|
|
3
|
+
*
|
|
4
|
+
* Both are off unless set, so a box that never sets them keeps every channel.
|
|
5
|
+
* They are `NEXT_PUBLIC_*`, so the console inlines them at `next build`; the
|
|
6
|
+
* literal `process.env.NEXT_PUBLIC_…` reads below are what lets that happen.
|
|
7
|
+
*
|
|
8
|
+
* - `NEXT_PUBLIC_BOX_HIDE_SMS=true`: no SMS anywhere in the dashboard.
|
|
9
|
+
* - `NEXT_PUBLIC_BOX_HIDE_WHATSAPP=true`: no WhatsApp anywhere in the dashboard.
|
|
10
|
+
*
|
|
11
|
+
* With both set the box sends by email alone (`BOX_EMAIL_ONLY`): a control
|
|
12
|
+
* that only exists to reach a phone goes, and an icon that meant "a message"
|
|
13
|
+
* becomes the envelope, because an email is the only message there is.
|
|
14
|
+
*/
|
|
15
|
+
export declare const BOX_HIDE_SMS: boolean;
|
|
16
|
+
export declare const BOX_HIDE_WHATSAPP: boolean;
|
|
17
|
+
export declare const BOX_EMAIL_ONLY: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The name for the paid phone channels a box still has, for copy that used to
|
|
20
|
+
* say "SMS / WhatsApp". `null` when the box has neither.
|
|
21
|
+
*/
|
|
22
|
+
export declare function phoneChannelsLabel(): string | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const BOX_HIDE_SMS = process.env.NEXT_PUBLIC_BOX_HIDE_SMS === "true";
|
|
2
|
+
const BOX_HIDE_WHATSAPP = process.env.NEXT_PUBLIC_BOX_HIDE_WHATSAPP === "true";
|
|
3
|
+
const BOX_EMAIL_ONLY = BOX_HIDE_SMS && BOX_HIDE_WHATSAPP;
|
|
4
|
+
function phoneChannelsLabel() {
|
|
5
|
+
if (BOX_HIDE_SMS && BOX_HIDE_WHATSAPP) return null;
|
|
6
|
+
if (BOX_HIDE_SMS) return "WhatsApp";
|
|
7
|
+
if (BOX_HIDE_WHATSAPP) return "SMS";
|
|
8
|
+
return "SMS / WhatsApp";
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
BOX_EMAIL_ONLY,
|
|
12
|
+
BOX_HIDE_SMS,
|
|
13
|
+
BOX_HIDE_WHATSAPP,
|
|
14
|
+
phoneChannelsLabel
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=box-channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-channels.ts"],"sourcesContent":["/**\n * Which ways a box can reach people, read from its box switches.\n *\n * Both are off unless set, so a box that never sets them keeps every channel.\n * They are `NEXT_PUBLIC_*`, so the console inlines them at `next build`; the\n * literal `process.env.NEXT_PUBLIC_…` reads below are what lets that happen.\n *\n * - `NEXT_PUBLIC_BOX_HIDE_SMS=true`: no SMS anywhere in the dashboard.\n * - `NEXT_PUBLIC_BOX_HIDE_WHATSAPP=true`: no WhatsApp anywhere in the dashboard.\n *\n * With both set the box sends by email alone (`BOX_EMAIL_ONLY`): a control\n * that only exists to reach a phone goes, and an icon that meant \"a message\"\n * becomes the envelope, because an email is the only message there is.\n */\nexport const BOX_HIDE_SMS = process.env.NEXT_PUBLIC_BOX_HIDE_SMS === 'true';\n\nexport const BOX_HIDE_WHATSAPP =\n process.env.NEXT_PUBLIC_BOX_HIDE_WHATSAPP === 'true';\n\nexport const BOX_EMAIL_ONLY = BOX_HIDE_SMS && BOX_HIDE_WHATSAPP;\n\n/**\n * The name for the paid phone channels a box still has, for copy that used to\n * say \"SMS / WhatsApp\". `null` when the box has neither.\n */\nexport function phoneChannelsLabel(): string | null {\n if (BOX_HIDE_SMS && BOX_HIDE_WHATSAPP) return null;\n if (BOX_HIDE_SMS) return 'WhatsApp';\n if (BOX_HIDE_WHATSAPP) return 'SMS';\n return 'SMS / WhatsApp';\n}\n"],"mappings":"AAcO,MAAM,eAAe,QAAQ,IAAI,6BAA6B;AAE9D,MAAM,oBACX,QAAQ,IAAI,kCAAkC;AAEzC,MAAM,iBAAiB,gBAAgB;AAMvC,SAAS,qBAAoC;AAClD,MAAI,gBAAgB,kBAAmB,QAAO;AAC9C,MAAI,aAAc,QAAO;AACzB,MAAI,kBAAmB,QAAO;AAC9B,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Box switch for how a box's merchants deliver.
|
|
3
|
+
*
|
|
4
|
+
* `NEXT_PUBLIC_BOX_RIDERS=true`: the merchant delivers with riders they add
|
|
5
|
+
* themselves. The Delivery page lists riders, an order is sent with a rider
|
|
6
|
+
* instead of a courier, and the courier grid, tracking numbers and the
|
|
7
|
+
* "Couriers" zone method are taken out. Off unless set, so every other box
|
|
8
|
+
* keeps couriers.
|
|
9
|
+
*/
|
|
10
|
+
export declare const BOX_RIDERS: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-delivery.ts"],"sourcesContent":["/**\n * Box switch for how a box's merchants deliver.\n *\n * `NEXT_PUBLIC_BOX_RIDERS=true`: the merchant delivers with riders they add\n * themselves. The Delivery page lists riders, an order is sent with a rider\n * instead of a courier, and the courier grid, tracking numbers and the\n * \"Couriers\" zone method are taken out. Off unless set, so every other box\n * keeps couriers.\n */\nexport const BOX_RIDERS = process.env.NEXT_PUBLIC_BOX_RIDERS === 'true';\n"],"mappings":"AASO,MAAM,aAAa,QAAQ,IAAI,2BAA2B;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Box switch for the Inbox's page action.
|
|
3
|
+
*
|
|
4
|
+
* `NEXT_PUBLIC_BOX_LOG_ENQUIRY_PRIMARY=true`: Log enquiry, the Inbox's one page
|
|
5
|
+
* action, is the filled primary button instead of the outlined secondary one,
|
|
6
|
+
* so it reads as something you can press. Off unless set, so other boxes keep
|
|
7
|
+
* the outlined button.
|
|
8
|
+
*
|
|
9
|
+
* Read when called, so a test can set it. NEXT_PUBLIC_* is inlined at build.
|
|
10
|
+
*/
|
|
11
|
+
export declare const logEnquiryPrimary: () => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-inbox.ts"],"sourcesContent":["/**\n * Box switch for the Inbox's page action.\n *\n * `NEXT_PUBLIC_BOX_LOG_ENQUIRY_PRIMARY=true`: Log enquiry, the Inbox's one page\n * action, is the filled primary button instead of the outlined secondary one,\n * so it reads as something you can press. Off unless set, so other boxes keep\n * the outlined button.\n *\n * Read when called, so a test can set it. NEXT_PUBLIC_* is inlined at build.\n */\nexport const logEnquiryPrimary = () =>\n process.env.NEXT_PUBLIC_BOX_LOG_ENQUIRY_PRIMARY === 'true';\n"],"mappings":"AAUO,MAAM,oBAAoB,MAC/B,QAAQ,IAAI,wCAAwC;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Box switch for the Letting page.
|
|
3
|
+
*
|
|
4
|
+
* `NEXT_PUBLIC_BOX_HIDE_LETTING=true`: the Letting row (the check-in,
|
|
5
|
+
* check-out and cancellation policy every property inherits) leaves
|
|
6
|
+
* Operations on desktop, the phone Explore menu and phone search, its page
|
|
7
|
+
* sends you to Rentals, and the property editor stops linking to it. Each
|
|
8
|
+
* property keeps its own answers. Off unless set, so other boxes keep it.
|
|
9
|
+
*
|
|
10
|
+
* Read when called, so a test can set it. NEXT_PUBLIC_* is inlined at build.
|
|
11
|
+
*/
|
|
12
|
+
export declare const hideLetting: () => boolean;
|
|
13
|
+
/** Where a hidden Letting page sends you: Rentals, under Manage. */
|
|
14
|
+
export declare const RENTALS_HREF = "/dashboard/catalog?intent=rent-property";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-letting.ts"],"sourcesContent":["/**\n * Box switch for the Letting page.\n *\n * `NEXT_PUBLIC_BOX_HIDE_LETTING=true`: the Letting row (the check-in,\n * check-out and cancellation policy every property inherits) leaves\n * Operations on desktop, the phone Explore menu and phone search, its page\n * sends you to Rentals, and the property editor stops linking to it. Each\n * property keeps its own answers. Off unless set, so other boxes keep it.\n *\n * Read when called, so a test can set it. NEXT_PUBLIC_* is inlined at build.\n */\nexport const hideLetting = () => process.env.NEXT_PUBLIC_BOX_HIDE_LETTING === 'true';\n\n/** Where a hidden Letting page sends you: Rentals, under Manage. */\nexport const RENTALS_HREF = '/dashboard/catalog?intent=rent-property';\n"],"mappings":"AAWO,MAAM,cAAc,MAAM,QAAQ,IAAI,iCAAiC;AAGvE,MAAM,eAAe;","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Box wordmark's geometry, lifted verbatim from the Box site's
|
|
3
|
+
* `src/brand/box-logo.svg`.
|
|
4
|
+
*
|
|
5
|
+
* Here rather than inside the component because two things draw this mark and
|
|
6
|
+
* they render in different engines: `BoxMark` in the browser, and the OG card
|
|
7
|
+
* through Satori at the edge. The old Box mark had exactly this arrangement
|
|
8
|
+
* — `potter-mark-paths.ts` — for exactly this reason, and a second copy of a
|
|
9
|
+
* path is a logo that drifts in one place and not the other.
|
|
10
|
+
*/
|
|
11
|
+
export declare const BOX_MARK: {
|
|
12
|
+
/** The B. */
|
|
13
|
+
readonly b: "M186.3,83.07c10.64-7.42,15.97-19.11,15.97-35.09s-4.65-27.94-13.92-35.93C179.08,4.06,164.85.08,145.66.08L0,.56v172.5l150.49-.24c19.19,0,33.44-4.22,42.71-12.69,9.27-8.47,13.9-20.84,13.9-37.14,0-10-1.69-18.19-5.07-24.56-3.38-6.36-8.63-11.49-15.73-15.35ZM38.71,31.04h102.34c14.69,0,22.03,6.3,22.03,18.87,0,13.24-7.34,19.84-22.03,19.84H38.71V31.04ZM145.9,141.85H38.71v-41.12h107.19c14.67,0,22.01,6.76,22.01,20.32s-7.34,20.8-22.01,20.8Z";
|
|
14
|
+
/** The O, which doubles as the mark on its own at small sizes. */
|
|
15
|
+
readonly o: "M406.22.37h-142.74v-.37h-31.26v172.6h205.27V0h-31.26v.37ZM406.3,141.35h-142.9V31.55h142.9v109.8Z";
|
|
16
|
+
/** The X. */
|
|
17
|
+
readonly x: "683.27 .08 636.09 .08 584.06 70.96 561.81 70.96 509.78 .08 462.61 .08 527.45 86.69 462.61 173.06 510.02 173.06 561.81 102.42 584.06 102.42 635.85 173.06 683.27 173.06 618.42 86.69 683.27 .08";
|
|
18
|
+
};
|
|
19
|
+
/** The slot inside the O, in the artwork's own coordinates. */
|
|
20
|
+
export declare const BOX_MARK_SLOT: {
|
|
21
|
+
readonly x: 291.17;
|
|
22
|
+
readonly y: 70.96;
|
|
23
|
+
readonly width: 87.37;
|
|
24
|
+
readonly height: 30.68;
|
|
25
|
+
};
|
|
26
|
+
/** The full wordmark's viewBox, and the O's crop out of it. */
|
|
27
|
+
export declare const BOX_MARK_VIEWBOX = "0 0 683.27 173.06";
|
|
28
|
+
export declare const BOX_MARK_GLYPH_VIEWBOX = "232 0 205.27 172.6";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const BOX_MARK = {
|
|
2
|
+
/** The B. */
|
|
3
|
+
b: "M186.3,83.07c10.64-7.42,15.97-19.11,15.97-35.09s-4.65-27.94-13.92-35.93C179.08,4.06,164.85.08,145.66.08L0,.56v172.5l150.49-.24c19.19,0,33.44-4.22,42.71-12.69,9.27-8.47,13.9-20.84,13.9-37.14,0-10-1.69-18.19-5.07-24.56-3.38-6.36-8.63-11.49-15.73-15.35ZM38.71,31.04h102.34c14.69,0,22.03,6.3,22.03,18.87,0,13.24-7.34,19.84-22.03,19.84H38.71V31.04ZM145.9,141.85H38.71v-41.12h107.19c14.67,0,22.01,6.76,22.01,20.32s-7.34,20.8-22.01,20.8Z",
|
|
4
|
+
/** The O, which doubles as the mark on its own at small sizes. */
|
|
5
|
+
o: "M406.22.37h-142.74v-.37h-31.26v172.6h205.27V0h-31.26v.37ZM406.3,141.35h-142.9V31.55h142.9v109.8Z",
|
|
6
|
+
/** The X. */
|
|
7
|
+
x: "683.27 .08 636.09 .08 584.06 70.96 561.81 70.96 509.78 .08 462.61 .08 527.45 86.69 462.61 173.06 510.02 173.06 561.81 102.42 584.06 102.42 635.85 173.06 683.27 173.06 618.42 86.69 683.27 .08"
|
|
8
|
+
};
|
|
9
|
+
const BOX_MARK_SLOT = {
|
|
10
|
+
x: 291.17,
|
|
11
|
+
y: 70.96,
|
|
12
|
+
width: 87.37,
|
|
13
|
+
height: 30.68
|
|
14
|
+
};
|
|
15
|
+
const BOX_MARK_VIEWBOX = "0 0 683.27 173.06";
|
|
16
|
+
const BOX_MARK_GLYPH_VIEWBOX = "232 0 205.27 172.6";
|
|
17
|
+
export {
|
|
18
|
+
BOX_MARK,
|
|
19
|
+
BOX_MARK_GLYPH_VIEWBOX,
|
|
20
|
+
BOX_MARK_SLOT,
|
|
21
|
+
BOX_MARK_VIEWBOX
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=box-mark-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-mark-paths.ts"],"sourcesContent":["/**\n * The Box wordmark's geometry, lifted verbatim from the Box site's\n * `src/brand/box-logo.svg`.\n *\n * Here rather than inside the component because two things draw this mark and\n * they render in different engines: `BoxMark` in the browser, and the OG card\n * through Satori at the edge. The old Box mark had exactly this arrangement\n * — `potter-mark-paths.ts` — for exactly this reason, and a second copy of a\n * path is a logo that drifts in one place and not the other.\n */\nexport const BOX_MARK = {\n /** The B. */\n b: 'M186.3,83.07c10.64-7.42,15.97-19.11,15.97-35.09s-4.65-27.94-13.92-35.93C179.08,4.06,164.85.08,145.66.08L0,.56v172.5l150.49-.24c19.19,0,33.44-4.22,42.71-12.69,9.27-8.47,13.9-20.84,13.9-37.14,0-10-1.69-18.19-5.07-24.56-3.38-6.36-8.63-11.49-15.73-15.35ZM38.71,31.04h102.34c14.69,0,22.03,6.3,22.03,18.87,0,13.24-7.34,19.84-22.03,19.84H38.71V31.04ZM145.9,141.85H38.71v-41.12h107.19c14.67,0,22.01,6.76,22.01,20.32s-7.34,20.8-22.01,20.8Z',\n /** The O, which doubles as the mark on its own at small sizes. */\n o: 'M406.22.37h-142.74v-.37h-31.26v172.6h205.27V0h-31.26v.37ZM406.3,141.35h-142.9V31.55h142.9v109.8Z',\n /** The X. */\n x: '683.27 .08 636.09 .08 584.06 70.96 561.81 70.96 509.78 .08 462.61 .08 527.45 86.69 462.61 173.06 510.02 173.06 561.81 102.42 584.06 102.42 635.85 173.06 683.27 173.06 618.42 86.69 683.27 .08',\n} as const;\n\n/** The slot inside the O, in the artwork's own coordinates. */\nexport const BOX_MARK_SLOT = {\n x: 291.17,\n y: 70.96,\n width: 87.37,\n height: 30.68,\n} as const;\n\n/** The full wordmark's viewBox, and the O's crop out of it. */\nexport const BOX_MARK_VIEWBOX = '0 0 683.27 173.06';\nexport const BOX_MARK_GLYPH_VIEWBOX = '232 0 205.27 172.6';\n"],"mappings":"AAUO,MAAM,WAAW;AAAA;AAAA,EAEtB,GAAG;AAAA;AAAA,EAEH,GAAG;AAAA;AAAA,EAEH,GAAG;AACL;AAGO,MAAM,gBAAgB;AAAA,EAC3B,GAAG;AAAA,EACH,GAAG;AAAA,EACH,OAAO;AAAA,EACP,QAAQ;AACV;AAGO,MAAM,mBAAmB;AACzB,MAAM,yBAAyB;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Box switch for how a product's pictures are added.
|
|
3
|
+
*
|
|
4
|
+
* `NEXT_PUBLIC_BOX_MEDIA_CAMERA=true`: the empty Media card on the product
|
|
5
|
+
* editor opens a camera instead of a drop zone. The camera takes photos and
|
|
6
|
+
* reads product QR codes (name, price, description, pictures). Off unless
|
|
7
|
+
* set, so every other box keeps its drop zone.
|
|
8
|
+
*/
|
|
9
|
+
export declare const BOX_MEDIA_CAMERA: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-media.ts"],"sourcesContent":["/**\n * Box switch for how a product's pictures are added.\n *\n * `NEXT_PUBLIC_BOX_MEDIA_CAMERA=true`: the empty Media card on the product\n * editor opens a camera instead of a drop zone. The camera takes photos and\n * reads product QR codes (name, price, description, pictures). Off unless\n * set, so every other box keeps its drop zone.\n */\nexport const BOX_MEDIA_CAMERA =\n process.env.NEXT_PUBLIC_BOX_MEDIA_CAMERA === 'true';\n"],"mappings":"AAQO,MAAM,mBACX,QAAQ,IAAI,iCAAiC;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Box switch for whether a new product starts live.
|
|
3
|
+
*
|
|
4
|
+
* `NEXT_PUBLIC_BOX_NEW_PRODUCTS_LIVE=true`: a product made in the editor
|
|
5
|
+
* (Add product from Home or the catalogue, and the camera or QR fill-in, which
|
|
6
|
+
* fill the same editor) starts live, and the merchant hides it on purpose with
|
|
7
|
+
* the editor's visibility control. Off unless set, so other boxes keep a new
|
|
8
|
+
* product hidden until it is published.
|
|
9
|
+
*
|
|
10
|
+
* Read when called, so a test can set it. NEXT_PUBLIC_* is inlined at build.
|
|
11
|
+
*/
|
|
12
|
+
export declare const newProductsStartLive: () => boolean;
|
|
13
|
+
/** Whether the editor's visibility starts on: the product's own state, or the box's default. */
|
|
14
|
+
export declare function initialProductActive(product?: {
|
|
15
|
+
isActive?: boolean;
|
|
16
|
+
} | null): boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const newProductsStartLive = () => process.env.NEXT_PUBLIC_BOX_NEW_PRODUCTS_LIVE === "true";
|
|
2
|
+
function initialProductActive(product) {
|
|
3
|
+
return product?.isActive ?? newProductsStartLive();
|
|
4
|
+
}
|
|
5
|
+
export {
|
|
6
|
+
initialProductActive,
|
|
7
|
+
newProductsStartLive
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=box-products.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/box-products.ts"],"sourcesContent":["/**\n * Box switch for whether a new product starts live.\n *\n * `NEXT_PUBLIC_BOX_NEW_PRODUCTS_LIVE=true`: a product made in the editor\n * (Add product from Home or the catalogue, and the camera or QR fill-in, which\n * fill the same editor) starts live, and the merchant hides it on purpose with\n * the editor's visibility control. Off unless set, so other boxes keep a new\n * product hidden until it is published.\n *\n * Read when called, so a test can set it. NEXT_PUBLIC_* is inlined at build.\n */\nexport const newProductsStartLive = () =>\n process.env.NEXT_PUBLIC_BOX_NEW_PRODUCTS_LIVE === 'true';\n\n/** Whether the editor's visibility starts on: the product's own state, or the box's default. */\nexport function initialProductActive(product?: { isActive?: boolean } | null): boolean {\n return product?.isActive ?? newProductsStartLive();\n}\n"],"mappings":"AAWO,MAAM,uBAAuB,MAClC,QAAQ,IAAI,sCAAsC;AAG7C,SAAS,qBAAqB,SAAkD;AACrF,SAAO,SAAS,YAAY,qBAAqB;AACnD;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether this box shows split payments, read from its box switch.
|
|
3
|
+
*
|
|
4
|
+
* Off unless set, so a box that never sets it keeps them. It is
|
|
5
|
+
* `NEXT_PUBLIC_*`, so the console inlines it at `next build`; the literal
|
|
6
|
+
* `process.env.NEXT_PUBLIC_…` read below is what lets that happen.
|
|
7
|
+
*
|
|
8
|
+
* - `NEXT_PUBLIC_BOX_HIDE_SPLITS=true`: no split payments in the dashboard.
|
|
9
|
+
* A booking's "Group split" card goes, and its split is not fetched. The
|
|
10
|
+
* engine and its data are untouched.
|
|
11
|
+
*/
|
|
12
|
+
export declare const BOX_HIDE_SPLITS: boolean;
|