@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,70 @@
|
|
|
1
|
+
import type { AnalyticsBookingMetricLabels, IntentConfig } from './types';
|
|
2
|
+
export declare function resolveBookingLabels(configs: IntentConfig[], primary: IntentConfig): AnalyticsBookingMetricLabels | undefined;
|
|
3
|
+
/**
|
|
4
|
+
* Whether the Operations hub's headline tile counts bookings or orders.
|
|
5
|
+
*
|
|
6
|
+
* It asked `primary.orderDisplay.hideShipping` and showed the booking count
|
|
7
|
+
* when that was true — a shipping flag standing in for "is this a booking
|
|
8
|
+
* business". `hideShipping` is true for eight of the ten archetypes, including
|
|
9
|
+
* `digital-products`, `subscriptions` and `event-tickets`, none of which book
|
|
10
|
+
* anything. So a business selling downloads had one large tile reading Orders,
|
|
11
|
+
* linking to Orders, showing **today's bookings**: zero, forever, while its
|
|
12
|
+
* actual pending orders went uncounted.
|
|
13
|
+
*
|
|
14
|
+
* The archetypes whose queue really is a diary are the three that send this
|
|
15
|
+
* tile to /dashboard/bookings, so the count follows the destination rather
|
|
16
|
+
* than guessing at it from an unrelated flag.
|
|
17
|
+
*/
|
|
18
|
+
export declare function tileCountsBookings(orderHref: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The first-run copy under an empty Customers directory.
|
|
21
|
+
*
|
|
22
|
+
* The directory itself stays "Customers" for every archetype — one back
|
|
23
|
+
* office, not four — and this is where the business describes who will land in
|
|
24
|
+
* it. Read off `primary`, a gym that named its membership first said "No
|
|
25
|
+
* subscribers yet" and the same gym that named its classes first said "No
|
|
26
|
+
* clients yet".
|
|
27
|
+
*
|
|
28
|
+
* For a business that is several things the honest answer is the generic one:
|
|
29
|
+
* the people arriving are subscribers AND clients AND attendees, and one list
|
|
30
|
+
* holds all of them.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveCustomersEmptyState<T>(configs: {
|
|
33
|
+
emptyStates: {
|
|
34
|
+
customers: T;
|
|
35
|
+
};
|
|
36
|
+
}[], primary: {
|
|
37
|
+
emptyStates: {
|
|
38
|
+
customers: T;
|
|
39
|
+
};
|
|
40
|
+
}, generic: {
|
|
41
|
+
emptyStates: {
|
|
42
|
+
customers: T;
|
|
43
|
+
};
|
|
44
|
+
}): T;
|
|
45
|
+
/**
|
|
46
|
+
* Which analytics views this business admits.
|
|
47
|
+
*
|
|
48
|
+
* `analyticsPage.tabs` is a NARROWING: an archetype that names views is saying
|
|
49
|
+
* "only these apply to me". Both readers — the provider and the sidebar's
|
|
50
|
+
* Analytics group — resolved it with
|
|
51
|
+
* `configs.find((c) => c.analyticsPage?.tabs?.length)`, which is not a
|
|
52
|
+
* narrowing but a veto. The first archetype to hold an opinion spoke for every
|
|
53
|
+
* archetype beside it.
|
|
54
|
+
*
|
|
55
|
+
* `event-tickets` is the only archetype in the registry that fills the field,
|
|
56
|
+
* and it names `sales` and `retention`. So a restaurant that also sells tickets
|
|
57
|
+
* to its Friday night lost the Reviews panel out of Retention — decided by the
|
|
58
|
+
* smallest part of its business, and by a config the other two archetypes never
|
|
59
|
+
* saw.
|
|
60
|
+
*
|
|
61
|
+
* The rule that follows from what the field MEANS: an archetype that declares
|
|
62
|
+
* nothing admits everything, so one silent archetype is enough to lift the
|
|
63
|
+
* narrowing entirely. Only where every active archetype has named its views is
|
|
64
|
+
* the business narrowed, and then to the union of what they named — never to
|
|
65
|
+
* one of them.
|
|
66
|
+
*
|
|
67
|
+
* `undefined` is the answer for "no narrowing", which is what both callers
|
|
68
|
+
* already treat as "show all views".
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveAnalyticsViews(configs: Pick<IntentConfig, 'analyticsPage'>[]): string[] | undefined;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const BOOKS = /* @__PURE__ */ new Set([
|
|
2
|
+
"take-bookings",
|
|
3
|
+
"dine-in",
|
|
4
|
+
"rent-property",
|
|
5
|
+
"event-tickets",
|
|
6
|
+
"food-orders"
|
|
7
|
+
]);
|
|
8
|
+
const NEUTRAL = {
|
|
9
|
+
today: "Booked today",
|
|
10
|
+
upcoming: "Upcoming this week",
|
|
11
|
+
noShow: "No-shows",
|
|
12
|
+
revenue: "Booking revenue"
|
|
13
|
+
};
|
|
14
|
+
function resolveBookingLabels(configs, primary) {
|
|
15
|
+
const booking = configs.filter((config) => BOOKS.has(config.key));
|
|
16
|
+
if (booking.length === 0) return primary.analyticsLabels?.bookingMetrics;
|
|
17
|
+
if (booking.length === 1)
|
|
18
|
+
return booking[0].analyticsLabels?.bookingMetrics ?? { ...NEUTRAL };
|
|
19
|
+
return { ...NEUTRAL };
|
|
20
|
+
}
|
|
21
|
+
function tileCountsBookings(orderHref) {
|
|
22
|
+
return orderHref.startsWith("/dashboard/bookings");
|
|
23
|
+
}
|
|
24
|
+
function resolveCustomersEmptyState(configs, primary, generic) {
|
|
25
|
+
return configs.length > 1 ? generic.emptyStates.customers : primary.emptyStates.customers;
|
|
26
|
+
}
|
|
27
|
+
function resolveAnalyticsViews(configs) {
|
|
28
|
+
if (!configs.length) return void 0;
|
|
29
|
+
const declared = configs.map((config) => config.analyticsPage?.tabs);
|
|
30
|
+
if (declared.some((tabs) => !tabs?.length)) return void 0;
|
|
31
|
+
return [...new Set(declared.flat())];
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
resolveAnalyticsViews,
|
|
35
|
+
resolveBookingLabels,
|
|
36
|
+
resolveCustomersEmptyState,
|
|
37
|
+
tileCountsBookings
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=analytics-labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/intents/analytics-labels.ts"],"sourcesContent":["import type { AnalyticsBookingMetricLabels, IntentConfig } from './types';\n\n/**\n * What to call the booking numbers on Analytics.\n *\n * These came from `primary.analyticsLabels.bookingMetrics` — the archetype the\n * merchant listed first. A farm with a veg-box scheme, tours, a table and\n * supper clubs lists `subscriptions` first, so its booking panel read\n *\n * New today · Renewals this week · Churned · Subscription revenue\n *\n * over numbers counting farm tours, table reservations and supper-club tickets.\n *\n * **\"Churned\" was labelling the no-show count.** That is worse than a wrong\n * word: the number underneath is unchanged while the label asserts something\n * false about it. A merchant reading \"Churned: 4\" would believe four people\n * cancelled their veg-box that week, when four people did not turn up for\n * dinner.\n *\n * `subscriptions` does not produce bookings at all — its `bookingStatusKeys` is\n * empty and its booking entity is the generic noun. It was never describing\n * this panel.\n */\n\n/** Archetypes whose lines are actually counted by the booking metrics. */\nconst BOOKS = new Set([\n 'take-bookings',\n 'dine-in',\n 'rent-property',\n 'event-tickets',\n 'food-orders',\n]);\n\n/**\n * The words when several kinds of booking are pooled into one number.\n *\n * Not borrowed from whichever books first. A farm's tours, tables and supper\n * clubs are one aggregate and no archetype's own noun is true of all of it —\n * the same reason the sidebar calls a shared row Catalog rather than Menu.\n */\nconst NEUTRAL: AnalyticsBookingMetricLabels = {\n today: 'Booked today',\n upcoming: 'Upcoming this week',\n noShow: 'No-shows',\n revenue: 'Booking revenue',\n};\n\nexport function resolveBookingLabels(\n configs: IntentConfig[],\n primary: IntentConfig,\n): AnalyticsBookingMetricLabels | undefined {\n const booking = configs.filter((config) => BOOKS.has(config.key));\n\n // Nothing here books, so the panel is not about any of them: leave the\n // answer where it was rather than invent one.\n if (booking.length === 0) return primary.analyticsLabels?.bookingMetrics;\n\n if (booking.length === 1)\n return booking[0].analyticsLabels?.bookingMetrics ?? { ...NEUTRAL };\n\n return { ...NEUTRAL };\n}\n\n/**\n * Whether the Operations hub's headline tile counts bookings or orders.\n *\n * It asked `primary.orderDisplay.hideShipping` and showed the booking count\n * when that was true — a shipping flag standing in for \"is this a booking\n * business\". `hideShipping` is true for eight of the ten archetypes, including\n * `digital-products`, `subscriptions` and `event-tickets`, none of which book\n * anything. So a business selling downloads had one large tile reading Orders,\n * linking to Orders, showing **today's bookings**: zero, forever, while its\n * actual pending orders went uncounted.\n *\n * The archetypes whose queue really is a diary are the three that send this\n * tile to /dashboard/bookings, so the count follows the destination rather\n * than guessing at it from an unrelated flag.\n */\nexport function tileCountsBookings(orderHref: string): boolean {\n return orderHref.startsWith('/dashboard/bookings');\n}\n\n/**\n * The first-run copy under an empty Customers directory.\n *\n * The directory itself stays \"Customers\" for every archetype — one back\n * office, not four — and this is where the business describes who will land in\n * it. Read off `primary`, a gym that named its membership first said \"No\n * subscribers yet\" and the same gym that named its classes first said \"No\n * clients yet\".\n *\n * For a business that is several things the honest answer is the generic one:\n * the people arriving are subscribers AND clients AND attendees, and one list\n * holds all of them.\n */\nexport function resolveCustomersEmptyState<T>(\n configs: { emptyStates: { customers: T } }[],\n primary: { emptyStates: { customers: T } },\n generic: { emptyStates: { customers: T } },\n): T {\n return configs.length > 1\n ? generic.emptyStates.customers\n : primary.emptyStates.customers;\n}\n\n/**\n * Which analytics views this business admits.\n *\n * `analyticsPage.tabs` is a NARROWING: an archetype that names views is saying\n * \"only these apply to me\". Both readers — the provider and the sidebar's\n * Analytics group — resolved it with\n * `configs.find((c) => c.analyticsPage?.tabs?.length)`, which is not a\n * narrowing but a veto. The first archetype to hold an opinion spoke for every\n * archetype beside it.\n *\n * `event-tickets` is the only archetype in the registry that fills the field,\n * and it names `sales` and `retention`. So a restaurant that also sells tickets\n * to its Friday night lost the Reviews panel out of Retention — decided by the\n * smallest part of its business, and by a config the other two archetypes never\n * saw.\n *\n * The rule that follows from what the field MEANS: an archetype that declares\n * nothing admits everything, so one silent archetype is enough to lift the\n * narrowing entirely. Only where every active archetype has named its views is\n * the business narrowed, and then to the union of what they named — never to\n * one of them.\n *\n * `undefined` is the answer for \"no narrowing\", which is what both callers\n * already treat as \"show all views\".\n */\nexport function resolveAnalyticsViews(\n configs: Pick<IntentConfig, 'analyticsPage'>[],\n): string[] | undefined {\n if (!configs.length) return undefined;\n const declared = configs.map((config) => config.analyticsPage?.tabs);\n if (declared.some((tabs) => !tabs?.length)) return undefined;\n return [...new Set(declared.flat() as string[])];\n}\n"],"mappings":"AAyBA,MAAM,QAAQ,oBAAI,IAAI;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AASD,MAAM,UAAwC;AAAA,EAC5C,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,SAAS,qBACd,SACA,SAC0C;AAC1C,QAAM,UAAU,QAAQ,OAAO,CAAC,WAAW,MAAM,IAAI,OAAO,GAAG,CAAC;AAIhE,MAAI,QAAQ,WAAW,EAAG,QAAO,QAAQ,iBAAiB;AAE1D,MAAI,QAAQ,WAAW;AACrB,WAAO,QAAQ,CAAC,EAAE,iBAAiB,kBAAkB,EAAE,GAAG,QAAQ;AAEpE,SAAO,EAAE,GAAG,QAAQ;AACtB;AAiBO,SAAS,mBAAmB,WAA4B;AAC7D,SAAO,UAAU,WAAW,qBAAqB;AACnD;AAeO,SAAS,2BACd,SACA,SACA,SACG;AACH,SAAO,QAAQ,SAAS,IACpB,QAAQ,YAAY,YACpB,QAAQ,YAAY;AAC1B;AA2BO,SAAS,sBACd,SACsB;AACtB,MAAI,CAAC,QAAQ,OAAQ,QAAO;AAC5B,QAAM,WAAW,QAAQ,IAAI,CAAC,WAAW,OAAO,eAAe,IAAI;AACnE,MAAI,SAAS,KAAK,CAAC,SAAS,CAAC,MAAM,MAAM,EAAG,QAAO;AACnD,SAAO,CAAC,GAAG,IAAI,IAAI,SAAS,KAAK,CAAa,CAAC;AACjD;","names":[]}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { LucideIcon } from 'lucide-react';
|
|
2
|
+
/**
|
|
3
|
+
* How an archetype shapes the flow.
|
|
4
|
+
*
|
|
5
|
+
* Two registries used to live in this file and both are gone. NEEDS assembled a
|
|
6
|
+
* per-archetype "details" screen that asked one required question (country, now
|
|
7
|
+
* guessed from the browser and confirmed on screen one) and one optional one.
|
|
8
|
+
* FIRST_OBJECT drove an activation screen offering to create the merchant's
|
|
9
|
+
* first product, booking or invoice; the dashboard they land in offers exactly
|
|
10
|
+
* that, with the real form rather than a link to it.
|
|
11
|
+
*
|
|
12
|
+
* ---------------------------------------------------------------------------
|
|
13
|
+
*
|
|
14
|
+
* The one archetype that is not a commerce archetype.
|
|
15
|
+
*
|
|
16
|
+
* potter-api models this first-class and exclusively: provision does
|
|
17
|
+
* `isBioIntent ? [] : resolveIntentBehaviors(...)`, so picking bio means ZERO
|
|
18
|
+
* commerce behaviors plus `bioSettings.enabled`. Selecting it alongside
|
|
19
|
+
* "Sell products online" would silently zero out the shop, which is why the
|
|
20
|
+
* picker treats it as exclusive rather than as one more chip in the grid.
|
|
21
|
+
*
|
|
22
|
+
* It deliberately has no IntentConfig. The registry's shape is built around
|
|
23
|
+
* order lists, item lists, columns and stats, and the smallest real config is
|
|
24
|
+
* 274 lines of it; writing that for a creator with no orders would put "Link in
|
|
25
|
+
* bio" in front of every `getAllIntentConfigs()` consumer as though it were a
|
|
26
|
+
* commerce model. The cost of leaving it out is that `useIntentConfig` finds no
|
|
27
|
+
* config and falls back to defaultCommerceConfig for the order/item page
|
|
28
|
+
* shells. Those pages are unreachable for a tenant with no behaviors, so the
|
|
29
|
+
* fallback is inert, but it is a fallback and not a decision.
|
|
30
|
+
*/
|
|
31
|
+
export declare const BIO_INTENT = "bio";
|
|
32
|
+
/**
|
|
33
|
+
* Is the link in bio this merchant's whole business model?
|
|
34
|
+
*
|
|
35
|
+
* Read from `selectedIntents` — the business model the merchant picked and can
|
|
36
|
+
* still change in Settings — and NOT from `bioSettings.enabled`, which the bio
|
|
37
|
+
* editor writes for anyone who builds a bio page beside a real shop. Because
|
|
38
|
+
* the intent is exclusive, seeing it at all means it is the only one.
|
|
39
|
+
*
|
|
40
|
+
* `useIntentConfig` cannot answer this: bio has no IntentConfig, so a bio
|
|
41
|
+
* tenant resolves to `defaultCommerceConfig` like any tenant with no picks.
|
|
42
|
+
*/
|
|
43
|
+
export declare function isBioOnly(settings: Record<string, unknown> | undefined): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Sales channel is a refinement OF an archetype, not a peer question. It only
|
|
46
|
+
* means anything for the archetypes that could plausibly go either way — a
|
|
47
|
+
* digital download is never "in person", and a dine-in service is never
|
|
48
|
+
* anything else.
|
|
49
|
+
*/
|
|
50
|
+
export declare function channelApplies(intents: string[]): boolean;
|
|
51
|
+
/** Falls back to the general store, which every archetype can operate from. */
|
|
52
|
+
export declare const FALLBACK_TEMPLATE = "standard-store-01";
|
|
53
|
+
export declare function templateForIntents(intents: string[]): string;
|
|
54
|
+
/**
|
|
55
|
+
* The template to preselect, resolved against the shelf the merchant can see.
|
|
56
|
+
*
|
|
57
|
+
* THE RULE THIS ENFORCES: never recommend something that is not on screen. A
|
|
58
|
+
* recommendation the merchant cannot see is not a recommendation, it is the
|
|
59
|
+
* template being chosen behind their back — the exact failure the template step
|
|
60
|
+
* was added to end. Returning null is a valid answer and means "let them choose".
|
|
61
|
+
*
|
|
62
|
+
* Order: the named preference if it is really there, then the first template
|
|
63
|
+
* that can do what this archetype needs, then nothing. Deliberately NOT
|
|
64
|
+
* "fall back to the first tile" — a cosmetics store preselected for a padel
|
|
65
|
+
* club is a worse lie than no preselection, because it looks considered.
|
|
66
|
+
*/
|
|
67
|
+
/**
|
|
68
|
+
* Whether a template has said ANYTHING about what it can present.
|
|
69
|
+
*
|
|
70
|
+
* `archetypes` is what the registry derives from the pages a template actually
|
|
71
|
+
* ships — not `behaviors`, which lagoon-house-01 and listening-room-01 declare
|
|
72
|
+
* identically while being nothing alike, and which is how a property business
|
|
73
|
+
* was provisioned onto a listening bar.
|
|
74
|
+
*
|
|
75
|
+
* Its absence is the normal case today rather than an edge, so it gets a name:
|
|
76
|
+
* see the two functions below, which read the same silence in opposite
|
|
77
|
+
* directions on purpose.
|
|
78
|
+
*/
|
|
79
|
+
export declare function declaresCoverage(template: {
|
|
80
|
+
archetypes?: string[] | null;
|
|
81
|
+
}): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* What a template cannot show this business — a WARNING, so silence is silence.
|
|
84
|
+
*
|
|
85
|
+
* This used to read `archetypes ?? []` and difference against the empty set,
|
|
86
|
+
* which reports EVERY archetype as missing on a template that never declared
|
|
87
|
+
* any. The comment above it claimed the opposite ("claims nothing rather than
|
|
88
|
+
* everything") and the code did the everything.
|
|
89
|
+
*
|
|
90
|
+
* That would be a defensible reading if the field were populated. It is not:
|
|
91
|
+
* the surfaces work that emits `archetypes` landed on web-render `staging`
|
|
92
|
+
* (60466ab), and web-render deploys `develop`, which has never carried it — and
|
|
93
|
+
* the templates-table fallback does not carry it either. So the registry
|
|
94
|
+
* declares coverage on NOTHING, and every tile in the gallery read "No page for
|
|
95
|
+
* products" underneath a storefront whose only page is products.
|
|
96
|
+
*
|
|
97
|
+
* A note that is wrong on every template is worse than no note, because by the
|
|
98
|
+
* time it is right nobody is reading it. It switches back on per template, the
|
|
99
|
+
* moment that template declares anything.
|
|
100
|
+
*/
|
|
101
|
+
export declare function missingFor(template: {
|
|
102
|
+
archetypes?: string[] | null;
|
|
103
|
+
}, intents: string[]): string[];
|
|
104
|
+
/**
|
|
105
|
+
* Has this template PROVEN it can present everything the business runs?
|
|
106
|
+
*
|
|
107
|
+
* Deliberately not `missingFor(...).length === 0`, and the difference is the
|
|
108
|
+
* whole point: the two answer opposite questions about the same silence.
|
|
109
|
+
* `missingFor` warns a merchant, so an undeclared template earns no warning.
|
|
110
|
+
* This one picks for them, so an undeclared template earns no recommendation —
|
|
111
|
+
* matching on a claim nobody made is how a short-let was provisioned onto a
|
|
112
|
+
* listening bar. Absence of evidence, in the direction that costs nothing.
|
|
113
|
+
*/
|
|
114
|
+
export declare function covers(template: {
|
|
115
|
+
archetypes?: string[] | null;
|
|
116
|
+
}, intents: string[]): boolean;
|
|
117
|
+
export declare function recommendTemplate(intents: string[], catalogue: {
|
|
118
|
+
id: string;
|
|
119
|
+
behaviors?: string[] | null;
|
|
120
|
+
archetypes?: string[] | null;
|
|
121
|
+
}[]): string | null;
|
|
122
|
+
/**
|
|
123
|
+
* The first real object worth creating, per archetype.
|
|
124
|
+
*
|
|
125
|
+
* This drove an activation SCREEN once, and deleting that screen was right: a
|
|
126
|
+
* step in a linear flow, offering to create something before the merchant had
|
|
127
|
+
* seen the app, competing with the dashboard's own SetupCards. The registry
|
|
128
|
+
* itself was never the problem. It is the one action on the arrival modal now,
|
|
129
|
+
* where it is the payoff rather than a gate.
|
|
130
|
+
*/
|
|
131
|
+
/** The first real object worth creating, per archetype. Drives activation. */
|
|
132
|
+
export interface FirstObject {
|
|
133
|
+
noun: string;
|
|
134
|
+
cta: string;
|
|
135
|
+
href: string;
|
|
136
|
+
icon: LucideIcon;
|
|
137
|
+
blurb: string;
|
|
138
|
+
}
|
|
139
|
+
export declare function firstObjectFor(primary: string | undefined): FirstObject;
|
|
140
|
+
export declare function shelfForIntents<T extends {
|
|
141
|
+
id: string;
|
|
142
|
+
behaviors?: string[] | null;
|
|
143
|
+
}>(templates: T[], intents: string[]): {
|
|
144
|
+
shelf: T[];
|
|
145
|
+
narrowed: boolean;
|
|
146
|
+
};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { AtSign, CalendarClock, MapPin, Package } from "lucide-react";
|
|
2
|
+
const BIO_INTENT = "bio";
|
|
3
|
+
function isBioOnly(settings) {
|
|
4
|
+
const intents = settings?.selectedIntents;
|
|
5
|
+
return Array.isArray(intents) && intents.includes(BIO_INTENT);
|
|
6
|
+
}
|
|
7
|
+
function channelApplies(intents) {
|
|
8
|
+
return intents.some((i) => i === "sell-products" || i === "food-orders");
|
|
9
|
+
}
|
|
10
|
+
const TEMPLATE_BY_INTENT = {
|
|
11
|
+
"sell-products": "standard-store-01",
|
|
12
|
+
"event-tickets": "ebe-events-01",
|
|
13
|
+
"rent-property": "lagoon-house-01"
|
|
14
|
+
// No dining preference. `ezinulo-dining-01` sounds like one and is not: its
|
|
15
|
+
// pages are /venues, /venues/:slug and /private-events, so the registry
|
|
16
|
+
// reports it as rent-property. Naming it here would have been the same
|
|
17
|
+
// mistake as `food-classic`, made twice in one day.
|
|
18
|
+
//
|
|
19
|
+
// Nothing is written for dine-in yet, so it falls through to coverage, which
|
|
20
|
+
// finds whichever template actually ships a menu.
|
|
21
|
+
// Intents with NO named preference fall through to the behavior match below,
|
|
22
|
+
// which is the honest answer when no template is really written for them.
|
|
23
|
+
//
|
|
24
|
+
// `services-pro`, `creator-digital`, `stay-and-events` and `food-classic`
|
|
25
|
+
// used to sit here and NONE of them has ever existed in the registry. A dead
|
|
26
|
+
// id fails the `catalogue.some` check silently and drops to the behavior
|
|
27
|
+
// fallback, which is how a short-let business was provisioned onto a
|
|
28
|
+
// listening bar: both are `bookable`, and `find` returns whichever the
|
|
29
|
+
// registry happened to list first. Naming a template that does not exist is
|
|
30
|
+
// worse than naming none, because it reads as a decision.
|
|
31
|
+
};
|
|
32
|
+
const FALLBACK_TEMPLATE = "standard-store-01";
|
|
33
|
+
function templateForIntents(intents) {
|
|
34
|
+
return TEMPLATE_BY_INTENT[intents[0] ?? ""] ?? FALLBACK_TEMPLATE;
|
|
35
|
+
}
|
|
36
|
+
const BEHAVIOR_BY_INTENT = {
|
|
37
|
+
"take-bookings": "bookable",
|
|
38
|
+
// NOT `bookable`. A listening bar, a salon and a padel court are all
|
|
39
|
+
// bookable, so matching on it hands a short-let whichever of them the
|
|
40
|
+
// registry lists first. `rentable` is the behavior that actually means
|
|
41
|
+
// "sells time in a space by the night or the day".
|
|
42
|
+
"rent-property": "rentable",
|
|
43
|
+
"dine-in": "bookable",
|
|
44
|
+
"capture-leads": "bookable",
|
|
45
|
+
"send-invoices": "bookable",
|
|
46
|
+
"event-tickets": "ticketed",
|
|
47
|
+
"sell-products": "shippable",
|
|
48
|
+
"food-orders": "sellable",
|
|
49
|
+
"digital-products": "sellable",
|
|
50
|
+
subscriptions: "sellable"
|
|
51
|
+
};
|
|
52
|
+
function declaresCoverage(template) {
|
|
53
|
+
return !!template.archetypes && template.archetypes.length > 0;
|
|
54
|
+
}
|
|
55
|
+
function missingFor(template, intents) {
|
|
56
|
+
if (!declaresCoverage(template)) return [];
|
|
57
|
+
const covered = new Set(template.archetypes);
|
|
58
|
+
return intents.filter((i) => !covered.has(i));
|
|
59
|
+
}
|
|
60
|
+
function covers(template, intents) {
|
|
61
|
+
if (!declaresCoverage(template)) return false;
|
|
62
|
+
return missingFor(template, intents).length === 0;
|
|
63
|
+
}
|
|
64
|
+
function recommendTemplate(intents, catalogue) {
|
|
65
|
+
if (catalogue.length === 0) return null;
|
|
66
|
+
const preferred = TEMPLATE_BY_INTENT[intents[0] ?? ""];
|
|
67
|
+
if (preferred && catalogue.some((t) => t.id === preferred)) return preferred;
|
|
68
|
+
const active = intents.filter(Boolean);
|
|
69
|
+
if (active.length > 0) {
|
|
70
|
+
const fits = catalogue.find((t) => covers(t, active));
|
|
71
|
+
if (fits) return fits.id;
|
|
72
|
+
}
|
|
73
|
+
if (preferred && process.env.NODE_ENV !== "production") {
|
|
74
|
+
console.warn(
|
|
75
|
+
`[archetype-flow] TEMPLATE_BY_INTENT names "${preferred}" for intent "${intents[0]}", but no such template is in the catalogue. Falling back to a behavior match, which is arbitrary between templates that share it.`
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
const needed = BEHAVIOR_BY_INTENT[intents[0] ?? ""];
|
|
79
|
+
if (!needed) return null;
|
|
80
|
+
return catalogue.find((t) => t.behaviors?.includes(needed))?.id ?? null;
|
|
81
|
+
}
|
|
82
|
+
const FIRST_OBJECT = {
|
|
83
|
+
"sell-products": {
|
|
84
|
+
noun: "product",
|
|
85
|
+
cta: "Add your first product",
|
|
86
|
+
href: "/dashboard/catalog/new",
|
|
87
|
+
icon: Package,
|
|
88
|
+
blurb: "A name, a price, a photo. You can refine it later."
|
|
89
|
+
},
|
|
90
|
+
"take-bookings": {
|
|
91
|
+
noun: "bookable service",
|
|
92
|
+
cta: "Add something to book",
|
|
93
|
+
href: "/dashboard/resources",
|
|
94
|
+
icon: CalendarClock,
|
|
95
|
+
blurb: "A court, a room, a chair. Whatever customers reserve."
|
|
96
|
+
},
|
|
97
|
+
"rent-property": {
|
|
98
|
+
noun: "space",
|
|
99
|
+
cta: "Add your first space",
|
|
100
|
+
href: "/dashboard/resources",
|
|
101
|
+
icon: MapPin,
|
|
102
|
+
blurb: "The place people book. Photos and rates can come later."
|
|
103
|
+
},
|
|
104
|
+
"food-orders": {
|
|
105
|
+
noun: "menu item",
|
|
106
|
+
cta: "Add your first menu item",
|
|
107
|
+
href: "/dashboard/catalog/new",
|
|
108
|
+
icon: Package,
|
|
109
|
+
blurb: "One dish is enough to take an order."
|
|
110
|
+
},
|
|
111
|
+
"dine-in": {
|
|
112
|
+
noun: "table",
|
|
113
|
+
cta: "Set up your tables",
|
|
114
|
+
href: "/dashboard/resources",
|
|
115
|
+
icon: MapPin,
|
|
116
|
+
blurb: "Tables you can seat a guest at and run a tab on."
|
|
117
|
+
},
|
|
118
|
+
"digital-products": {
|
|
119
|
+
noun: "download",
|
|
120
|
+
cta: "Add your first download",
|
|
121
|
+
href: "/dashboard/catalog/new",
|
|
122
|
+
icon: Package,
|
|
123
|
+
blurb: "Upload the file and set a price."
|
|
124
|
+
},
|
|
125
|
+
subscriptions: {
|
|
126
|
+
noun: "plan",
|
|
127
|
+
cta: "Create your first plan",
|
|
128
|
+
href: "/dashboard/catalog/new",
|
|
129
|
+
icon: Package,
|
|
130
|
+
blurb: "What members pay for, and how often."
|
|
131
|
+
},
|
|
132
|
+
"event-tickets": {
|
|
133
|
+
noun: "event",
|
|
134
|
+
cta: "Create your first event",
|
|
135
|
+
href: "/dashboard/catalog/new",
|
|
136
|
+
icon: Package,
|
|
137
|
+
blurb: "A date, a place, and what a ticket costs."
|
|
138
|
+
},
|
|
139
|
+
"send-invoices": {
|
|
140
|
+
noun: "invoice",
|
|
141
|
+
cta: "Send your first invoice",
|
|
142
|
+
href: "/dashboard/invoices",
|
|
143
|
+
icon: Package,
|
|
144
|
+
blurb: "Bill a client and get paid into your account."
|
|
145
|
+
},
|
|
146
|
+
// Route matches the sidebar's "Link in bio" item, not the older
|
|
147
|
+
// /dashboard/bio, which both still exist.
|
|
148
|
+
[BIO_INTENT]: {
|
|
149
|
+
noun: "link",
|
|
150
|
+
cta: "Build your link in bio",
|
|
151
|
+
href: "/dashboard/business/bio",
|
|
152
|
+
icon: AtSign,
|
|
153
|
+
blurb: "One page holding everything you point people at."
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
function firstObjectFor(primary) {
|
|
157
|
+
return primary && FIRST_OBJECT[primary] || FIRST_OBJECT["sell-products"];
|
|
158
|
+
}
|
|
159
|
+
const ROW = 4;
|
|
160
|
+
function shelfForIntents(templates, intents) {
|
|
161
|
+
const wanted = new Set(
|
|
162
|
+
intents.map((i) => BEHAVIOR_BY_INTENT[i]).filter(Boolean)
|
|
163
|
+
);
|
|
164
|
+
if (wanted.size === 0) return { shelf: templates, narrowed: false };
|
|
165
|
+
const matches = templates.filter(
|
|
166
|
+
(t) => (t.behaviors ?? []).some((b) => wanted.has(b))
|
|
167
|
+
);
|
|
168
|
+
if (matches.length >= ROW) return { shelf: matches, narrowed: true };
|
|
169
|
+
const rest = templates.filter((t) => !matches.includes(t));
|
|
170
|
+
return { shelf: [...matches, ...rest], narrowed: false };
|
|
171
|
+
}
|
|
172
|
+
export {
|
|
173
|
+
BIO_INTENT,
|
|
174
|
+
FALLBACK_TEMPLATE,
|
|
175
|
+
channelApplies,
|
|
176
|
+
covers,
|
|
177
|
+
declaresCoverage,
|
|
178
|
+
firstObjectFor,
|
|
179
|
+
isBioOnly,
|
|
180
|
+
missingFor,
|
|
181
|
+
recommendTemplate,
|
|
182
|
+
shelfForIntents,
|
|
183
|
+
templateForIntents
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=archetype-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/intents/archetype-flow.ts"],"sourcesContent":["import type { LucideIcon } from 'lucide-react';\nimport { AtSign, CalendarClock, MapPin, Package } from 'lucide-react';\n\n/**\n * How an archetype shapes the flow.\n *\n * Two registries used to live in this file and both are gone. NEEDS assembled a\n * per-archetype \"details\" screen that asked one required question (country, now\n * guessed from the browser and confirmed on screen one) and one optional one.\n * FIRST_OBJECT drove an activation screen offering to create the merchant's\n * first product, booking or invoice; the dashboard they land in offers exactly\n * that, with the real form rather than a link to it.\n *\n * ---------------------------------------------------------------------------\n *\n * The one archetype that is not a commerce archetype.\n *\n * potter-api models this first-class and exclusively: provision does\n * `isBioIntent ? [] : resolveIntentBehaviors(...)`, so picking bio means ZERO\n * commerce behaviors plus `bioSettings.enabled`. Selecting it alongside\n * \"Sell products online\" would silently zero out the shop, which is why the\n * picker treats it as exclusive rather than as one more chip in the grid.\n *\n * It deliberately has no IntentConfig. The registry's shape is built around\n * order lists, item lists, columns and stats, and the smallest real config is\n * 274 lines of it; writing that for a creator with no orders would put \"Link in\n * bio\" in front of every `getAllIntentConfigs()` consumer as though it were a\n * commerce model. The cost of leaving it out is that `useIntentConfig` finds no\n * config and falls back to defaultCommerceConfig for the order/item page\n * shells. Those pages are unreachable for a tenant with no behaviors, so the\n * fallback is inert, but it is a fallback and not a decision.\n */\nexport const BIO_INTENT = 'bio';\n\n/**\n * Is the link in bio this merchant's whole business model?\n *\n * Read from `selectedIntents` — the business model the merchant picked and can\n * still change in Settings — and NOT from `bioSettings.enabled`, which the bio\n * editor writes for anyone who builds a bio page beside a real shop. Because\n * the intent is exclusive, seeing it at all means it is the only one.\n *\n * `useIntentConfig` cannot answer this: bio has no IntentConfig, so a bio\n * tenant resolves to `defaultCommerceConfig` like any tenant with no picks.\n */\nexport function isBioOnly(settings: Record<string, unknown> | undefined) {\n const intents = settings?.selectedIntents;\n return Array.isArray(intents) && intents.includes(BIO_INTENT);\n}\n\n/**\n * Sales channel is a refinement OF an archetype, not a peer question. It only\n * means anything for the archetypes that could plausibly go either way — a\n * digital download is never \"in person\", and a dine-in service is never\n * anything else.\n */\nexport function channelApplies(intents: string[]): boolean {\n return intents.some((i) => i === 'sell-products' || i === 'food-orders');\n}\n\n/**\n * The storefront template a business starts on.\n *\n * Onboarding used to ask. That question was removed as the most stalling one in\n * the set — a design decision demanded before there is a business to look at —\n * on the stated promise that \"archetypes pick a sensible default\". The promise\n * was never implemented: `templateId || 'default'` shipped on every provision,\n * and `default` is not a template. Provisioning rejected it, so from the moment\n * the template step was deleted, NO business could be created. A real signed-in\n * run is the only thing that surfaces this; the failure path looked healthy.\n *\n * THESE IDS DRIFT, AND FIVE OF THEM ARE ALREADY PHANTOMS. `services-pro`,\n * `creator-digital`, `stay-and-events` and `food-classic` are in no catalogue\n * the product serves — measured against the live registry, only\n * `standard-store-01` and `ebe-events-01` resolve. The map was written against a\n * catalogue someone intended to build, and nothing failed loudly when that\n * catalogue did not arrive: the template step happily preselected\n * `services-pro`, showed no tile as chosen because none matched, and left\n * Continue enabled.\n *\n * So this is a PREFERENCE, not an answer. `recommendTemplate` resolves it\n * against the templates actually on screen and falls back to matching by\n * behavior, which is the durable relationship — a bookings business needs a\n * `bookable` template, whatever it happens to be called this month.\n */\nconst TEMPLATE_BY_INTENT: Record<string, string> = {\n 'sell-products': 'standard-store-01',\n 'event-tickets': 'ebe-events-01',\n 'rent-property': 'lagoon-house-01',\n // No dining preference. `ezinulo-dining-01` sounds like one and is not: its\n // pages are /venues, /venues/:slug and /private-events, so the registry\n // reports it as rent-property. Naming it here would have been the same\n // mistake as `food-classic`, made twice in one day.\n //\n // Nothing is written for dine-in yet, so it falls through to coverage, which\n // finds whichever template actually ships a menu.\n // Intents with NO named preference fall through to the behavior match below,\n // which is the honest answer when no template is really written for them.\n //\n // `services-pro`, `creator-digital`, `stay-and-events` and `food-classic`\n // used to sit here and NONE of them has ever existed in the registry. A dead\n // id fails the `catalogue.some` check silently and drops to the behavior\n // fallback, which is how a short-let business was provisioned onto a\n // listening bar: both are `bookable`, and `find` returns whichever the\n // registry happened to list first. Naming a template that does not exist is\n // worse than naming none, because it reads as a decision.\n};\n\n/** Falls back to the general store, which every archetype can operate from. */\nexport const FALLBACK_TEMPLATE = 'standard-store-01';\n\nexport function templateForIntents(intents: string[]): string {\n return TEMPLATE_BY_INTENT[intents[0] ?? ''] ?? FALLBACK_TEMPLATE;\n}\n\n/**\n * What a template must be able to DO for each archetype.\n *\n * The durable half of the relationship. Template ids are named things that come\n * and go; `bookable` is a capability the registry declares on every template and\n * potter-api resolves into tenant behaviors. Matching on it means a padel club\n * gets whichever bookable template exists today rather than a name someone typed\n * into a map in March.\n */\nconst BEHAVIOR_BY_INTENT: Record<string, string> = {\n 'take-bookings': 'bookable',\n // NOT `bookable`. A listening bar, a salon and a padel court are all\n // bookable, so matching on it hands a short-let whichever of them the\n // registry lists first. `rentable` is the behavior that actually means\n // \"sells time in a space by the night or the day\".\n 'rent-property': 'rentable',\n 'dine-in': 'bookable',\n 'capture-leads': 'bookable',\n 'send-invoices': 'bookable',\n 'event-tickets': 'ticketed',\n 'sell-products': 'shippable',\n 'food-orders': 'sellable',\n 'digital-products': 'sellable',\n subscriptions: 'sellable',\n};\n\n/**\n * The template to preselect, resolved against the shelf the merchant can see.\n *\n * THE RULE THIS ENFORCES: never recommend something that is not on screen. A\n * recommendation the merchant cannot see is not a recommendation, it is the\n * template being chosen behind their back — the exact failure the template step\n * was added to end. Returning null is a valid answer and means \"let them choose\".\n *\n * Order: the named preference if it is really there, then the first template\n * that can do what this archetype needs, then nothing. Deliberately NOT\n * \"fall back to the first tile\" — a cosmetics store preselected for a padel\n * club is a worse lie than no preselection, because it looks considered.\n */\n/**\n * Whether a template has said ANYTHING about what it can present.\n *\n * `archetypes` is what the registry derives from the pages a template actually\n * ships — not `behaviors`, which lagoon-house-01 and listening-room-01 declare\n * identically while being nothing alike, and which is how a property business\n * was provisioned onto a listening bar.\n *\n * Its absence is the normal case today rather than an edge, so it gets a name:\n * see the two functions below, which read the same silence in opposite\n * directions on purpose.\n */\nexport function declaresCoverage(template: {\n archetypes?: string[] | null;\n}): boolean {\n return !!template.archetypes && template.archetypes.length > 0;\n}\n\n/**\n * What a template cannot show this business — a WARNING, so silence is silence.\n *\n * This used to read `archetypes ?? []` and difference against the empty set,\n * which reports EVERY archetype as missing on a template that never declared\n * any. The comment above it claimed the opposite (\"claims nothing rather than\n * everything\") and the code did the everything.\n *\n * That would be a defensible reading if the field were populated. It is not:\n * the surfaces work that emits `archetypes` landed on web-render `staging`\n * (60466ab), and web-render deploys `develop`, which has never carried it — and\n * the templates-table fallback does not carry it either. So the registry\n * declares coverage on NOTHING, and every tile in the gallery read \"No page for\n * products\" underneath a storefront whose only page is products.\n *\n * A note that is wrong on every template is worse than no note, because by the\n * time it is right nobody is reading it. It switches back on per template, the\n * moment that template declares anything.\n */\nexport function missingFor(\n template: { archetypes?: string[] | null },\n intents: string[],\n): string[] {\n if (!declaresCoverage(template)) return [];\n const covered = new Set(template.archetypes);\n return intents.filter((i) => !covered.has(i));\n}\n\n/**\n * Has this template PROVEN it can present everything the business runs?\n *\n * Deliberately not `missingFor(...).length === 0`, and the difference is the\n * whole point: the two answer opposite questions about the same silence.\n * `missingFor` warns a merchant, so an undeclared template earns no warning.\n * This one picks for them, so an undeclared template earns no recommendation —\n * matching on a claim nobody made is how a short-let was provisioned onto a\n * listening bar. Absence of evidence, in the direction that costs nothing.\n */\nexport function covers(\n template: { archetypes?: string[] | null },\n intents: string[],\n): boolean {\n if (!declaresCoverage(template)) return false;\n return missingFor(template, intents).length === 0;\n}\n\nexport function recommendTemplate(\n intents: string[],\n catalogue: {\n id: string;\n behaviors?: string[] | null;\n archetypes?: string[] | null;\n }[],\n): string | null {\n if (catalogue.length === 0) return null;\n\n const preferred = TEMPLATE_BY_INTENT[intents[0] ?? ''];\n if (preferred && catalogue.some((t) => t.id === preferred)) return preferred;\n\n // Coverage first: the template that can present everything this business\n // runs. This is the answer the old behavior match was groping at — it took\n // the first template sharing ONE behavior, which is how `bookable` handed a\n // short-let a listening bar.\n const active = intents.filter(Boolean);\n if (active.length > 0) {\n const fits = catalogue.find((t) => covers(t, active));\n if (fits) return fits.id;\n }\n\n // A named preference that is not on the shelf is a bug in this file, not a\n // fact about the merchant, and it used to fail completely silently: the id\n // simply lost the `some` check and the behavior fallback picked someone\n // else's template. Say so where a developer will see it.\n if (preferred && process.env.NODE_ENV !== 'production') {\n console.warn(\n `[archetype-flow] TEMPLATE_BY_INTENT names \"${preferred}\" for intent ` +\n `\"${intents[0]}\", but no such template is in the catalogue. Falling ` +\n `back to a behavior match, which is arbitrary between templates that ` +\n `share it.`,\n );\n }\n\n const needed = BEHAVIOR_BY_INTENT[intents[0] ?? ''];\n if (!needed) return null;\n return catalogue.find((t) => t.behaviors?.includes(needed))?.id ?? null;\n}\n\n/**\n * The first real object worth creating, per archetype.\n *\n * This drove an activation SCREEN once, and deleting that screen was right: a\n * step in a linear flow, offering to create something before the merchant had\n * seen the app, competing with the dashboard's own SetupCards. The registry\n * itself was never the problem. It is the one action on the arrival modal now,\n * where it is the payoff rather than a gate.\n */\n/** The first real object worth creating, per archetype. Drives activation. */\nexport interface FirstObject {\n noun: string;\n cta: string;\n href: string;\n icon: LucideIcon;\n blurb: string;\n}\n\nconst FIRST_OBJECT: Record<string, FirstObject> = {\n 'sell-products': {\n noun: 'product',\n cta: 'Add your first product',\n href: '/dashboard/catalog/new',\n icon: Package,\n blurb: 'A name, a price, a photo. You can refine it later.',\n },\n 'take-bookings': {\n noun: 'bookable service',\n cta: 'Add something to book',\n href: '/dashboard/resources',\n icon: CalendarClock,\n blurb: 'A court, a room, a chair. Whatever customers reserve.',\n },\n 'rent-property': {\n noun: 'space',\n cta: 'Add your first space',\n href: '/dashboard/resources',\n icon: MapPin,\n blurb: 'The place people book. Photos and rates can come later.',\n },\n 'food-orders': {\n noun: 'menu item',\n cta: 'Add your first menu item',\n href: '/dashboard/catalog/new',\n icon: Package,\n blurb: 'One dish is enough to take an order.',\n },\n 'dine-in': {\n noun: 'table',\n cta: 'Set up your tables',\n href: '/dashboard/resources',\n icon: MapPin,\n blurb: 'Tables you can seat a guest at and run a tab on.',\n },\n 'digital-products': {\n noun: 'download',\n cta: 'Add your first download',\n href: '/dashboard/catalog/new',\n icon: Package,\n blurb: 'Upload the file and set a price.',\n },\n subscriptions: {\n noun: 'plan',\n cta: 'Create your first plan',\n href: '/dashboard/catalog/new',\n icon: Package,\n blurb: 'What members pay for, and how often.',\n },\n 'event-tickets': {\n noun: 'event',\n cta: 'Create your first event',\n href: '/dashboard/catalog/new',\n icon: Package,\n blurb: 'A date, a place, and what a ticket costs.',\n },\n 'send-invoices': {\n noun: 'invoice',\n cta: 'Send your first invoice',\n href: '/dashboard/invoices',\n icon: Package,\n blurb: 'Bill a client and get paid into your account.',\n },\n // Route matches the sidebar's \"Link in bio\" item, not the older\n // /dashboard/bio, which both still exist.\n [BIO_INTENT]: {\n noun: 'link',\n cta: 'Build your link in bio',\n href: '/dashboard/business/bio',\n icon: AtSign,\n blurb: 'One page holding everything you point people at.',\n },\n};\n\nexport function firstObjectFor(primary: string | undefined): FirstObject {\n return (primary && FIRST_OBJECT[primary]) || FIRST_OBJECT['sell-products'];\n}\n\n/**\n * The shelf, narrowed to what the business actually said it does.\n *\n * John, 2026-09-08: *\"that intent shoudl also define the templates we show, if\n * you choose sell products then the templates we show shoudl only be templates\n * that enable that intent\"*.\n *\n * ── WHY `behaviors` AND NOT `archetypes` ──\n *\n * `archetypes` is the better field and `missingFor` above says so at length. It\n * is also EMPTY on every template the live registry serves: the surfaces work\n * that emits it landed on web-render `staging` and web-render deploys\n * `develop`. Filtering on a field nothing populates does not narrow a shelf, it\n * empties one. `behaviors` is declared on all 26 templates today, so it is what\n * this can actually match on. Swap when the registry catches up.\n *\n * ── WHY IT DOES NOT ALWAYS NARROW ──\n *\n * Counted against the real catalogue: sell-products matches 22 templates,\n * take-bookings 11, memberships 6, tickets 4, rent-a-space 3, menu 3 — and\n * invoicing and enquiries match NOTHING. A strict filter on the last two hands\n * a merchant an empty shelf on the last screen of onboarding, which is worse\n * than a broad one.\n *\n * So the rule is a floor, not a switch: narrow when there is enough left to\n * fill a row of the grid, otherwise show everything with the matches first.\n * A merchant is never shown less than a row, and never shown a lie about what\n * exists.\n */\nconst ROW = 4;\n\nexport function shelfForIntents<\n T extends { id: string; behaviors?: string[] | null },\n>(templates: T[], intents: string[]): { shelf: T[]; narrowed: boolean } {\n const wanted = new Set(\n intents.map((i) => BEHAVIOR_BY_INTENT[i]).filter(Boolean),\n );\n if (wanted.size === 0) return { shelf: templates, narrowed: false };\n\n const matches = templates.filter((t) =>\n (t.behaviors ?? []).some((b) => wanted.has(b)),\n );\n if (matches.length >= ROW) return { shelf: matches, narrowed: true };\n\n const rest = templates.filter((t) => !matches.includes(t));\n return { shelf: [...matches, ...rest], narrowed: false };\n}\n"],"mappings":"AACA,SAAS,QAAQ,eAAe,QAAQ,eAAe;AA+BhD,MAAM,aAAa;AAanB,SAAS,UAAU,UAA+C;AACvE,QAAM,UAAU,UAAU;AAC1B,SAAO,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS,UAAU;AAC9D;AAQO,SAAS,eAAe,SAA4B;AACzD,SAAO,QAAQ,KAAK,CAAC,MAAM,MAAM,mBAAmB,MAAM,aAAa;AACzE;AA2BA,MAAM,qBAA6C;AAAA,EACjD,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBnB;AAGO,MAAM,oBAAoB;AAE1B,SAAS,mBAAmB,SAA2B;AAC5D,SAAO,mBAAmB,QAAQ,CAAC,KAAK,EAAE,KAAK;AACjD;AAWA,MAAM,qBAA6C;AAAA,EACjD,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,eAAe;AACjB;AA2BO,SAAS,iBAAiB,UAErB;AACV,SAAO,CAAC,CAAC,SAAS,cAAc,SAAS,WAAW,SAAS;AAC/D;AAqBO,SAAS,WACd,UACA,SACU;AACV,MAAI,CAAC,iBAAiB,QAAQ,EAAG,QAAO,CAAC;AACzC,QAAM,UAAU,IAAI,IAAI,SAAS,UAAU;AAC3C,SAAO,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;AAC9C;AAYO,SAAS,OACd,UACA,SACS;AACT,MAAI,CAAC,iBAAiB,QAAQ,EAAG,QAAO;AACxC,SAAO,WAAW,UAAU,OAAO,EAAE,WAAW;AAClD;AAEO,SAAS,kBACd,SACA,WAKe;AACf,MAAI,UAAU,WAAW,EAAG,QAAO;AAEnC,QAAM,YAAY,mBAAmB,QAAQ,CAAC,KAAK,EAAE;AACrD,MAAI,aAAa,UAAU,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS,EAAG,QAAO;AAMnE,QAAM,SAAS,QAAQ,OAAO,OAAO;AACrC,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,OAAO,UAAU,KAAK,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AACpD,QAAI,KAAM,QAAO,KAAK;AAAA,EACxB;AAMA,MAAI,aAAa,QAAQ,IAAI,aAAa,cAAc;AACtD,YAAQ;AAAA,MACN,8CAA8C,SAAS,iBACjD,QAAQ,CAAC,CAAC;AAAA,IAGlB;AAAA,EACF;AAEA,QAAM,SAAS,mBAAmB,QAAQ,CAAC,KAAK,EAAE;AAClD,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,UAAU,KAAK,CAAC,MAAM,EAAE,WAAW,SAAS,MAAM,CAAC,GAAG,MAAM;AACrE;AAoBA,MAAM,eAA4C;AAAA,EAChD,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,WAAW;AAAA,IACT,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,oBAAoB;AAAA,IAClB,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA;AAAA;AAAA,EAGA,CAAC,UAAU,GAAG;AAAA,IACZ,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,SAA0C;AACvE,SAAQ,WAAW,aAAa,OAAO,KAAM,aAAa,eAAe;AAC3E;AA+BA,MAAM,MAAM;AAEL,SAAS,gBAEd,WAAgB,SAAsD;AACtE,QAAM,SAAS,IAAI;AAAA,IACjB,QAAQ,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAE,OAAO,OAAO;AAAA,EAC1D;AACA,MAAI,OAAO,SAAS,EAAG,QAAO,EAAE,OAAO,WAAW,UAAU,MAAM;AAElE,QAAM,UAAU,UAAU;AAAA,IAAO,CAAC,OAC/B,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAAA,EAC/C;AACA,MAAI,QAAQ,UAAU,IAAK,QAAO,EAAE,OAAO,SAAS,UAAU,KAAK;AAEnE,QAAM,OAAO,UAAU,OAAO,CAAC,MAAM,CAAC,QAAQ,SAAS,CAAC,CAAC;AACzD,SAAO,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,MAAM;AACzD;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { BookingQueryStyle, IntentConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* What kinds of booking the diary shows, for a business that books more than
|
|
4
|
+
* one kind of thing.
|
|
5
|
+
*
|
|
6
|
+
* `queryStyle` is not wording. `bookingTypes` and `bookingModes` go into the
|
|
7
|
+
* request as filters (`use-bookings-data.ts`), so the archetype that supplies
|
|
8
|
+
* it decides which rows come back at all — and both readers took it from
|
|
9
|
+
* `intentConfig.primary`.
|
|
10
|
+
*
|
|
11
|
+
* `primary` on an unscoped view is whichever key last rode an `?intent=` into
|
|
12
|
+
* sessionStorage. A restaurant that seats guests and ticketets its Friday night
|
|
13
|
+
* declares `table` + `resource` + `appointment` under dine-in and `event` under
|
|
14
|
+
* event-tickets. Open Attendees once, come back to the diary without a param,
|
|
15
|
+
* and the query narrows to `type=event`: every table reservation the restaurant
|
|
16
|
+
* has silently vanishes, and "New booking" offers Event as the only thing you
|
|
17
|
+
* can create. Nothing errors and the list is not empty, which is the worst
|
|
18
|
+
* shape this bug could take — it looks like a quiet evening.
|
|
19
|
+
*
|
|
20
|
+
* So the diary asks every archetype on screen. The allowed sets are unioned;
|
|
21
|
+
* an archetype that books nothing (`food-orders`, `subscriptions`) declares no
|
|
22
|
+
* queryStyle and contributes nothing, which is right — it has no rows here.
|
|
23
|
+
*
|
|
24
|
+
* The defaults for a NEW booking cannot be unioned, so they come from the first
|
|
25
|
+
* archetype in `active` that books. That is `all` order — the merchant's own
|
|
26
|
+
* pick order, fixed at onboarding — and never sessionStorage, so the create
|
|
27
|
+
* form stops changing what it offers based on where you last clicked.
|
|
28
|
+
*
|
|
29
|
+
* Returns undefined when nothing on screen books, leaving the caller's own
|
|
30
|
+
* default in place rather than sending empty filters that mean "everything".
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveBookingQueryStyle(configs: Pick<IntentConfig, 'key' | 'queryStyle'>[]): BookingQueryStyle | undefined;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
function resolveBookingQueryStyle(configs) {
|
|
2
|
+
const booking = configs.flatMap(
|
|
3
|
+
(config) => config.queryStyle ? [config.queryStyle] : []
|
|
4
|
+
);
|
|
5
|
+
if (!booking.length) return void 0;
|
|
6
|
+
if (booking.length === 1) return booking[0];
|
|
7
|
+
const [first] = booking;
|
|
8
|
+
return {
|
|
9
|
+
// Names the set rather than borrowing one archetype's key, which is read
|
|
10
|
+
// back in `use-bookings-data` to reset the controls when the diary changes
|
|
11
|
+
// shape — and a combined diary is not any single archetype's shape.
|
|
12
|
+
key: booking.map((style) => style.key).join("+"),
|
|
13
|
+
bookingTypes: [...new Set(booking.flatMap((style) => style.bookingTypes))],
|
|
14
|
+
bookingModes: [...new Set(booking.flatMap((style) => style.bookingModes))],
|
|
15
|
+
defaultBookingType: first.defaultBookingType,
|
|
16
|
+
defaultBookingMode: first.defaultBookingMode
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
resolveBookingQueryStyle
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=booking-query-style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/intents/booking-query-style.ts"],"sourcesContent":["import type { BookingQueryStyle, IntentConfig } from './types';\n\n/**\n * What kinds of booking the diary shows, for a business that books more than\n * one kind of thing.\n *\n * `queryStyle` is not wording. `bookingTypes` and `bookingModes` go into the\n * request as filters (`use-bookings-data.ts`), so the archetype that supplies\n * it decides which rows come back at all — and both readers took it from\n * `intentConfig.primary`.\n *\n * `primary` on an unscoped view is whichever key last rode an `?intent=` into\n * sessionStorage. A restaurant that seats guests and ticketets its Friday night\n * declares `table` + `resource` + `appointment` under dine-in and `event` under\n * event-tickets. Open Attendees once, come back to the diary without a param,\n * and the query narrows to `type=event`: every table reservation the restaurant\n * has silently vanishes, and \"New booking\" offers Event as the only thing you\n * can create. Nothing errors and the list is not empty, which is the worst\n * shape this bug could take — it looks like a quiet evening.\n *\n * So the diary asks every archetype on screen. The allowed sets are unioned;\n * an archetype that books nothing (`food-orders`, `subscriptions`) declares no\n * queryStyle and contributes nothing, which is right — it has no rows here.\n *\n * The defaults for a NEW booking cannot be unioned, so they come from the first\n * archetype in `active` that books. That is `all` order — the merchant's own\n * pick order, fixed at onboarding — and never sessionStorage, so the create\n * form stops changing what it offers based on where you last clicked.\n *\n * Returns undefined when nothing on screen books, leaving the caller's own\n * default in place rather than sending empty filters that mean \"everything\".\n */\nexport function resolveBookingQueryStyle(\n configs: Pick<IntentConfig, 'key' | 'queryStyle'>[],\n): BookingQueryStyle | undefined {\n const booking = configs.flatMap((config) =>\n config.queryStyle ? [config.queryStyle] : [],\n );\n if (!booking.length) return undefined;\n if (booking.length === 1) return booking[0];\n\n const [first] = booking;\n return {\n // Names the set rather than borrowing one archetype's key, which is read\n // back in `use-bookings-data` to reset the controls when the diary changes\n // shape — and a combined diary is not any single archetype's shape.\n key: booking.map((style) => style.key).join('+'),\n bookingTypes: [...new Set(booking.flatMap((style) => style.bookingTypes))],\n bookingModes: [...new Set(booking.flatMap((style) => style.bookingModes))],\n defaultBookingType: first.defaultBookingType,\n defaultBookingMode: first.defaultBookingMode,\n };\n}\n"],"mappings":"AAgCO,SAAS,yBACd,SAC+B;AAC/B,QAAM,UAAU,QAAQ;AAAA,IAAQ,CAAC,WAC/B,OAAO,aAAa,CAAC,OAAO,UAAU,IAAI,CAAC;AAAA,EAC7C;AACA,MAAI,CAAC,QAAQ,OAAQ,QAAO;AAC5B,MAAI,QAAQ,WAAW,EAAG,QAAO,QAAQ,CAAC;AAE1C,QAAM,CAAC,KAAK,IAAI;AAChB,SAAO;AAAA;AAAA;AAAA;AAAA,IAIL,KAAK,QAAQ,IAAI,CAAC,UAAU,MAAM,GAAG,EAAE,KAAK,GAAG;AAAA,IAC/C,cAAc,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,CAAC,UAAU,MAAM,YAAY,CAAC,CAAC;AAAA,IACzE,cAAc,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,CAAC,UAAU,MAAM,YAAY,CAAC,CAAC;AAAA,IACzE,oBAAoB,MAAM;AAAA,IAC1B,oBAAoB,MAAM;AAAA,EAC5B;AACF;","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { IntentConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Enquire & Qualify — businesses whose whole model is the enquiry: estate
|
|
4
|
+
* agents, insurance brokers, schools taking admissions, B2B services.
|
|
5
|
+
*
|
|
6
|
+
* Nothing is sold from a catalogue and nothing is checked out. The thing that
|
|
7
|
+
* arrives is a person asking a question, and the work is answering, qualifying
|
|
8
|
+
* and following up until it becomes business elsewhere — a viewing, a policy,
|
|
9
|
+
* a place, a contract.
|
|
10
|
+
*
|
|
11
|
+
* The loop exists end to end and nothing here builds it: the API has inquiries
|
|
12
|
+
* with quote, follow-ups, stats and respond, and the Inquiries inbox is already
|
|
13
|
+
* in the sidebar for everyone, deliberately ungated, because leads arrive
|
|
14
|
+
* whether or not a merchant declared they wanted them.
|
|
15
|
+
*
|
|
16
|
+
* This comment used to claim that *every* storefront template ships a contact
|
|
17
|
+
* form that feeds it. Counted rather than assumed, it was ten of the sixteen
|
|
18
|
+
* built templates, and the misses included the portfolio — whose entire
|
|
19
|
+
* conversion is a commission. Written from intent rather than from a grep,
|
|
20
|
+
* which is the kind of claim worth checking before repeating.
|
|
21
|
+
*
|
|
22
|
+
* What was missing was a way to *say so* at onboarding. Without an intent,
|
|
23
|
+
* these businesses landed on the generic commerce shell and were handed a
|
|
24
|
+
* catalogue to fill and an Orders list that would never have a row in it.
|
|
25
|
+
*
|
|
26
|
+
* So: Orders is deliberately absent, exactly as it is for send-invoices. An
|
|
27
|
+
* always-empty Orders list reads as broken software, not as an empty state.
|
|
28
|
+
* The order entity labels still resolve for shared surfaces that ask for them
|
|
29
|
+
* (analytics, exports).
|
|
30
|
+
*/
|
|
31
|
+
export declare const captureLeadsConfig: IntentConfig;
|