@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,95 @@
|
|
|
1
|
+
import { type LucideIcon } from 'lucide-react';
|
|
2
|
+
/**
|
|
3
|
+
* What each archetype puts in the sidebar, and what each row is called.
|
|
4
|
+
*
|
|
5
|
+
* This list — not the intent configs — decides what a merchant can reach and
|
|
6
|
+
* what it is named. The configs supply the href and the permission; the label
|
|
7
|
+
* and the membership come from here. That asymmetry is deliberate (a config can
|
|
8
|
+
* declare a surface before the nav is ready for it) but it used to live inside
|
|
9
|
+
* sidebar.tsx, which meant nothing else could tell the truth about the nav.
|
|
10
|
+
*
|
|
11
|
+
* Onboarding previews exactly this, so the pages it promises while the merchant
|
|
12
|
+
* is picking archetypes are the pages the sidebar will actually render, under
|
|
13
|
+
* the names it will actually use. Drift between this and the configs is still
|
|
14
|
+
* shouted about in dev by warnOnUnreachableNavItems.
|
|
15
|
+
*/
|
|
16
|
+
export interface IntentNavDefinition {
|
|
17
|
+
key: string;
|
|
18
|
+
label: string;
|
|
19
|
+
groupIcon?: LucideIcon;
|
|
20
|
+
items: {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
icon: LucideIcon;
|
|
24
|
+
/**
|
|
25
|
+
* What this item actually manages, in the merchant's words.
|
|
26
|
+
*
|
|
27
|
+
* A business that seats guests *and* does takeaway has one menu, not two,
|
|
28
|
+
* so both intents point at the same `shares: 'menu'` and the sidebar shows
|
|
29
|
+
* it once. Where two intents genuinely manage different things — a
|
|
30
|
+
* restaurant's menu and its retail shelf — the nouns differ and both stay.
|
|
31
|
+
*
|
|
32
|
+
* Omitted means "unique to this archetype" (Reservations, Tables, Tabs):
|
|
33
|
+
* only one intent ever contributes it, so there is nothing to collapse.
|
|
34
|
+
*/
|
|
35
|
+
shares?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Rows that live *under* this one, revealed by the sidebar's disclosure.
|
|
38
|
+
*
|
|
39
|
+
* An Operations row is often a surface with a smaller surface attached:
|
|
40
|
+
* Appointments has the queue of people who could not get one. Those are
|
|
41
|
+
* not peers — putting a Waitlist row beside Appointments says they are two
|
|
42
|
+
* equal destinations, when one is a state of the other. As children they
|
|
43
|
+
* stay one click away and cost the sidebar no height until opened.
|
|
44
|
+
*/
|
|
45
|
+
children?: {
|
|
46
|
+
id: string;
|
|
47
|
+
label: string;
|
|
48
|
+
icon: LucideIcon;
|
|
49
|
+
/** Same meaning as on a top-level row: what this manages. */
|
|
50
|
+
shares?: string;
|
|
51
|
+
}[];
|
|
52
|
+
/**
|
|
53
|
+
* What this row's own screen is called once it has children.
|
|
54
|
+
*
|
|
55
|
+
* Required for any row that declares `children`: the disclosure rule moves
|
|
56
|
+
* the row's page into the group as its first child, and the renderer's
|
|
57
|
+
* "Overview" fallback exists only so a half-built hub renders rather than
|
|
58
|
+
* throwing. `{label}` interpolates the row's post-rename label.
|
|
59
|
+
*/
|
|
60
|
+
landingLabel?: string;
|
|
61
|
+
}[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* NO CHILDREN UNDER ORDERS. Abandoned carts was the only one, and it moved to
|
|
65
|
+
* Marketing on John's call, 2026-09-03 — the argument is written where the row
|
|
66
|
+
* now lives, in `spine-groups`.
|
|
67
|
+
*
|
|
68
|
+
* The declaration is deleted rather than emptied. A `children: []` on eight
|
|
69
|
+
* archetypes is an invitation to nest the next thing that is *about* orders
|
|
70
|
+
* under Orders, which is how this one ended up here: an abandoned cart is an
|
|
71
|
+
* order that never happened, so it looked like an order's child. What a record
|
|
72
|
+
* IS decides its permission; what you come to DO with it decides its row.
|
|
73
|
+
*
|
|
74
|
+
* What the old note here was right about, kept because it will be true again
|
|
75
|
+
* the day something is genuinely nested: seven archetypes declare `orders`, it
|
|
76
|
+
* collapses to one row, and the folding archetypes' children are grafted onto
|
|
77
|
+
* the survivor — so an untagged child came out once per archetype. A musician
|
|
78
|
+
* selling shows, merch and downloads had one Orders row carrying four
|
|
79
|
+
* identical "Abandoned carts". Any future child needs `shares`.
|
|
80
|
+
*/
|
|
81
|
+
export declare const INTENT_NAV_DEFINITIONS: IntentNavDefinition[];
|
|
82
|
+
/**
|
|
83
|
+
* The nav rows a set of archetypes adds, in sidebar order, de-duplicated.
|
|
84
|
+
*
|
|
85
|
+
* Two rules keep this honest, and both were broken when onboarding read the raw
|
|
86
|
+
* configs instead: an item only counts if the chosen intent's config actually
|
|
87
|
+
* declares it (the sidebar drops it otherwise), and only intent-group rows
|
|
88
|
+
* count at all. The fixed spine (Collections, Discounts, Invoices, Marketing,
|
|
89
|
+
* Website) is there for every merchant regardless of what they pick, so listing
|
|
90
|
+
* it as a consequence of a pick is a promise the pick did not make.
|
|
91
|
+
*/
|
|
92
|
+
export declare function intentNavRows(intentKeys: string[]): {
|
|
93
|
+
label: string;
|
|
94
|
+
icon: LucideIcon;
|
|
95
|
+
}[];
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Banknote,
|
|
3
|
+
BookOpen,
|
|
4
|
+
Building2,
|
|
5
|
+
CalendarClock,
|
|
6
|
+
CalendarRange,
|
|
7
|
+
BadgeCheck,
|
|
8
|
+
FileText,
|
|
9
|
+
Layers,
|
|
10
|
+
LayoutGrid,
|
|
11
|
+
ListChecks,
|
|
12
|
+
Package,
|
|
13
|
+
Receipt,
|
|
14
|
+
ReceiptText,
|
|
15
|
+
TicketCheck,
|
|
16
|
+
RefreshCw,
|
|
17
|
+
UtensilsCrossed,
|
|
18
|
+
Wrench,
|
|
19
|
+
MessageSquare
|
|
20
|
+
} from "lucide-react";
|
|
21
|
+
import { getIntentConfig, defaultCommerceConfig } from "./registry";
|
|
22
|
+
import { BIO_INTENT } from "./archetype-flow";
|
|
23
|
+
const INTENT_NAV_DEFINITIONS = [
|
|
24
|
+
// No Fulfillment row, for `default` or `sell-products`. Both used to list one
|
|
25
|
+
// and no config ever declared a `shipping` nav item, so the row could not be
|
|
26
|
+
// built and never was — the definition promised a work surface that does not
|
|
27
|
+
// exist. Shipping is a Settings page (Settings → Selling → Shipping), which
|
|
28
|
+
// is where the spine already puts it and where `nav-coverage` says it lives.
|
|
29
|
+
{
|
|
30
|
+
key: "default",
|
|
31
|
+
label: "Products",
|
|
32
|
+
items: [
|
|
33
|
+
{ id: "catalog", label: "Inventory", icon: Package, shares: "catalogue" },
|
|
34
|
+
// "Orders", not "Product Orders". A qualifier earns its place by telling
|
|
35
|
+
// one archetype's queue from another's, and it is dropped the moment it
|
|
36
|
+
// does that job — multi mode collapses every contributor of `orders` to
|
|
37
|
+
// the plain noun. So the merchant running four archetypes read "Orders"
|
|
38
|
+
// and the shop running one read "Product Orders": the qualified label
|
|
39
|
+
// went to the only business with nothing to qualify against, one line
|
|
40
|
+
// under a group already called Products.
|
|
41
|
+
//
|
|
42
|
+
// Where the archetype's own word says something the generic cannot, it
|
|
43
|
+
// stays: a takeaway's "Kitchen Orders" names the queue it prints to.
|
|
44
|
+
{
|
|
45
|
+
id: "orders",
|
|
46
|
+
label: "Orders",
|
|
47
|
+
icon: Receipt,
|
|
48
|
+
shares: "orders",
|
|
49
|
+
landingLabel: "All {label}"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
key: "sell-products",
|
|
55
|
+
label: "Products",
|
|
56
|
+
items: [
|
|
57
|
+
{ id: "catalog", label: "Inventory", icon: Package, shares: "catalogue" },
|
|
58
|
+
// See `default` above: the qualifier told this shop's orders from queues
|
|
59
|
+
// it does not run.
|
|
60
|
+
{
|
|
61
|
+
id: "orders",
|
|
62
|
+
label: "Orders",
|
|
63
|
+
icon: Receipt,
|
|
64
|
+
shares: "orders",
|
|
65
|
+
landingLabel: "All {label}"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
key: "digital-products",
|
|
71
|
+
label: "Digital products",
|
|
72
|
+
items: [
|
|
73
|
+
{
|
|
74
|
+
// Package, and the same shelf as Inventory. A print and a preset are
|
|
75
|
+
// both things this business sells, and they sell from ONE screen: every
|
|
76
|
+
// archetype's `catalog` resolves to /dashboard/catalog. Giving downloads
|
|
77
|
+
// their own row made a filter wear the clothes of a destination — and
|
|
78
|
+
// since `sell-products` claims the shelf first, that row was deleted
|
|
79
|
+
// anyway, taking the whole Digital Products heading with it. The
|
|
80
|
+
// narrowing lives on the page now, in exactly these nouns.
|
|
81
|
+
// "Products" and "Orders", not "Digital Catalog" and "Download
|
|
82
|
+
// Orders". Judged by the rule pass 1 set: a qualifier earns its place
|
|
83
|
+
// by telling one archetype's queue from another's, and for a business
|
|
84
|
+
// that only sells downloads there is nothing to tell apart —
|
|
85
|
+
// everything in the catalogue is digital and every order is a
|
|
86
|
+
// download. The group above already says Digital Products.
|
|
87
|
+
//
|
|
88
|
+
// Where a word says something the generic cannot it stays, which is
|
|
89
|
+
// why a takeaway keeps "Kitchen Orders". "Download Orders" says only
|
|
90
|
+
// what the heading said.
|
|
91
|
+
// "Downloads", which is what they are — and which tells them from the
|
|
92
|
+
// prints on the same shelf when a photographer sells both. Pass 7 was
|
|
93
|
+
// right to drop "Digital Catalog" and wrong to land on "Products".
|
|
94
|
+
id: "catalog",
|
|
95
|
+
label: "Downloads",
|
|
96
|
+
icon: Package,
|
|
97
|
+
shares: "catalogue"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: "orders",
|
|
101
|
+
label: "Orders",
|
|
102
|
+
icon: Receipt,
|
|
103
|
+
shares: "orders",
|
|
104
|
+
landingLabel: "All {label}"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
key: "event-tickets",
|
|
110
|
+
label: "Ticketing",
|
|
111
|
+
items: [
|
|
112
|
+
{
|
|
113
|
+
id: "orders",
|
|
114
|
+
label: "Ticket orders",
|
|
115
|
+
icon: TicketCheck,
|
|
116
|
+
shares: "orders",
|
|
117
|
+
landingLabel: "All {label}"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: "events",
|
|
121
|
+
label: "Events",
|
|
122
|
+
icon: CalendarRange,
|
|
123
|
+
landingLabel: "All {label}",
|
|
124
|
+
children: [
|
|
125
|
+
{
|
|
126
|
+
id: "collections",
|
|
127
|
+
label: "Collections",
|
|
128
|
+
icon: Layers
|
|
129
|
+
},
|
|
130
|
+
// No Check-ins row. The config dropped it deliberately — it was
|
|
131
|
+
// Attendees minus the list, plus a scan log that rendered empty on
|
|
132
|
+
// every load — and this list never got the memo, so it went on
|
|
133
|
+
// naming a row that `buildIntentItem` could not build and silently
|
|
134
|
+
// returned null for. Twelve ticketing businesses had it in the
|
|
135
|
+
// definitions and none of them could see it.
|
|
136
|
+
//
|
|
137
|
+
// The route stays, reached from an event: scanning is a phone job at
|
|
138
|
+
// a door. Nor is there an Attendees row any more (2026-09-03) — an
|
|
139
|
+
// attendee is a customer, so the identity lives in Customers.
|
|
140
|
+
{
|
|
141
|
+
id: "waitlist",
|
|
142
|
+
label: "Waitlist",
|
|
143
|
+
icon: ListChecks,
|
|
144
|
+
// One waiting list, like one Orders. A club with courts and
|
|
145
|
+
// ticketed nights had Waitlist under Appointments and Waitlist
|
|
146
|
+
// under Attendees — one screen, twice, differing only by a filter
|
|
147
|
+
// the screen itself carries.
|
|
148
|
+
shares: "waitlist"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
// No Calendar Sync row. A Google connection is made once and then
|
|
153
|
+
// forgotten, which is the definition of a setting, and it lives at
|
|
154
|
+
// Settings → Operations → Calendar sync for every archetype now. It used
|
|
155
|
+
// to be a row here, a row called Availability on rentals and a tab on
|
|
156
|
+
// appointments: one screen under three names in three places.
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "take-bookings",
|
|
161
|
+
label: "Bookings",
|
|
162
|
+
groupIcon: BookOpen,
|
|
163
|
+
items: [
|
|
164
|
+
// No Today row. It and the Appointments calendar were drawing the same
|
|
165
|
+
// picture — resources across, the day down — over the same records, and
|
|
166
|
+
// only the desk board could act on it. They are one surface with a view
|
|
167
|
+
// switch now, defaulting to the day, which is the screen a front desk
|
|
168
|
+
// keeps open. /dashboard/today redirects into it.
|
|
169
|
+
{ id: "catalog", label: "Services", icon: Wrench, shares: "catalogue" },
|
|
170
|
+
{
|
|
171
|
+
id: "orders",
|
|
172
|
+
label: "Appointments",
|
|
173
|
+
icon: CalendarClock,
|
|
174
|
+
shares: "bookings",
|
|
175
|
+
landingLabel: "All {label}",
|
|
176
|
+
children: [
|
|
177
|
+
{
|
|
178
|
+
id: "waitlist",
|
|
179
|
+
label: "Waitlist",
|
|
180
|
+
icon: ListChecks,
|
|
181
|
+
// One waiting list, like one Orders. A club with courts and
|
|
182
|
+
// ticketed nights had Waitlist under Appointments and Waitlist
|
|
183
|
+
// under Attendees — one screen, twice, differing only by a filter
|
|
184
|
+
// the screen itself carries.
|
|
185
|
+
shares: "waitlist"
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
// No 'calendar' row. It and Appointments were sibling rows over the same
|
|
190
|
+
// records — the list could act but not show time, the grid could show
|
|
191
|
+
// time but not act — and they are one surface with a view switch now.
|
|
192
|
+
// /dashboard/calendar is a redirect into it, so a row here would be a
|
|
193
|
+
// second door to a screen that already has one.
|
|
194
|
+
//
|
|
195
|
+
// Nor a 'Scheduling' row: that is a Google Calendar connection, an act
|
|
196
|
+
// performed once, and it lives in Settings.
|
|
197
|
+
{
|
|
198
|
+
id: "resources",
|
|
199
|
+
label: "Staff",
|
|
200
|
+
icon: LayoutGrid,
|
|
201
|
+
shares: "resources"
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
key: "rent-property",
|
|
207
|
+
label: "Rentals",
|
|
208
|
+
items: [
|
|
209
|
+
// No Today row: the day board is the default view of Reservations now.
|
|
210
|
+
// A hotel's day is arrivals, departures and who is in house, and
|
|
211
|
+
// `buildDayLanes` still draws exactly those three columns.
|
|
212
|
+
{
|
|
213
|
+
id: "catalog",
|
|
214
|
+
label: "Properties",
|
|
215
|
+
icon: Building2,
|
|
216
|
+
shares: "catalogue"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
id: "orders",
|
|
220
|
+
label: "Reservations",
|
|
221
|
+
icon: CalendarClock,
|
|
222
|
+
shares: "bookings",
|
|
223
|
+
landingLabel: "All {label}",
|
|
224
|
+
children: [
|
|
225
|
+
{
|
|
226
|
+
id: "waitlist",
|
|
227
|
+
label: "Waitlist",
|
|
228
|
+
icon: ListChecks,
|
|
229
|
+
// One waiting list, like one Orders. A club with courts and
|
|
230
|
+
// ticketed nights had Waitlist under Appointments and Waitlist
|
|
231
|
+
// under Attendees — one screen, twice, differing only by a filter
|
|
232
|
+
// the screen itself carries.
|
|
233
|
+
shares: "waitlist"
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
// No Availability row, and no Calendar Sync row either. Availability was
|
|
238
|
+
// the calendar-CONNECTION screen — channel in, Google out — while a
|
|
239
|
+
// short-let's availability is its bookings, its blocked dates and what a
|
|
240
|
+
// channel is holding, none of which were on it. Reservations' calendar
|
|
241
|
+
// view is that answer, and it can finally draw properties: it built its
|
|
242
|
+
// columns from bookable_resources, which a rental business has none of,
|
|
243
|
+
// so a landlord with ten flats got an empty board asking for the
|
|
244
|
+
// properties they already had. The connection is a setting.
|
|
245
|
+
]
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
key: "subscriptions",
|
|
249
|
+
label: "Memberships",
|
|
250
|
+
items: [
|
|
251
|
+
// A hub, because the screen behind it is two screens — and the sidebar
|
|
252
|
+
// used to reach them from two SECTIONS: this row under Operations, and a
|
|
253
|
+
// "Members" row under Customers on the same screen's other tab. One
|
|
254
|
+
// module, two doors, filed apart. They are children now, the way
|
|
255
|
+
// Resources holds its tabs; spine-groups.ts keeps the Customers row only
|
|
256
|
+
// for a `subscribable` shop that has no hub of its own.
|
|
257
|
+
// "Memberships", not "Plans": the row's word is also the page heading, so
|
|
258
|
+
// Plans headed a tab strip whose first tab said Plans. Tiers, not a box
|
|
259
|
+
// of stock — Plans wore Inventory's Package glyph.
|
|
260
|
+
{
|
|
261
|
+
id: "catalog",
|
|
262
|
+
label: "Memberships",
|
|
263
|
+
icon: BadgeCheck,
|
|
264
|
+
shares: "plans",
|
|
265
|
+
landingLabel: "Plans",
|
|
266
|
+
children: [{ id: "subscribers", label: "Members", icon: RefreshCw }]
|
|
267
|
+
},
|
|
268
|
+
// Orders stays and keeps sharing: a membership business still takes
|
|
269
|
+
// one-off payments, and when it also sells products there is one queue
|
|
270
|
+
// for both.
|
|
271
|
+
//
|
|
272
|
+
// It is not the subscriber list, and it was: one row, id `orders`,
|
|
273
|
+
// labelled "Subscribers", pointing at /dashboard/orders — so a
|
|
274
|
+
// membership business clicking Subscribers got a list of orders, which
|
|
275
|
+
// has never contained a subscriber.
|
|
276
|
+
{
|
|
277
|
+
id: "orders",
|
|
278
|
+
label: "Orders",
|
|
279
|
+
icon: Receipt,
|
|
280
|
+
shares: "orders",
|
|
281
|
+
landingLabel: "All {label}"
|
|
282
|
+
}
|
|
283
|
+
// No Subscribers row at this level: it was a peer of Plans pointing at
|
|
284
|
+
// Plans' own screen. It is Memberships' `subscribers` child now.
|
|
285
|
+
]
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
key: "food-orders",
|
|
289
|
+
label: "Food orders",
|
|
290
|
+
items: [
|
|
291
|
+
{
|
|
292
|
+
id: "catalog",
|
|
293
|
+
label: "Menu",
|
|
294
|
+
icon: UtensilsCrossed,
|
|
295
|
+
shares: "catalogue"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
id: "orders",
|
|
299
|
+
label: "Kitchen orders",
|
|
300
|
+
icon: Receipt,
|
|
301
|
+
shares: "orders",
|
|
302
|
+
landingLabel: "All {label}"
|
|
303
|
+
}
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
// Billing businesses have no storefront order flow, so Orders is
|
|
308
|
+
// deliberately absent — Invoices is the work surface.
|
|
309
|
+
key: "send-invoices",
|
|
310
|
+
label: "Invoicing",
|
|
311
|
+
// Settings → Billing is what the merchant pays Box.
|
|
312
|
+
groupIcon: Receipt,
|
|
313
|
+
items: [
|
|
314
|
+
// Wrench, matching the other archetype that sells services — same key,
|
|
315
|
+
// same screen. Invoices takes the written receipt so it stops wearing the
|
|
316
|
+
// plain one that every archetype's order queue already wears.
|
|
317
|
+
{ id: "catalog", label: "Services", icon: Wrench, shares: "catalogue" },
|
|
318
|
+
{
|
|
319
|
+
id: "invoices",
|
|
320
|
+
label: "Invoices",
|
|
321
|
+
icon: ReceiptText,
|
|
322
|
+
shares: "invoices"
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
// Nothing is sold from a catalogue here, so Orders is deliberately absent
|
|
328
|
+
// exactly as it is for Billing — Enquiries is the work surface. `shares`
|
|
329
|
+
// is set so a business that also sells does not end up with two inboxes.
|
|
330
|
+
key: "capture-leads",
|
|
331
|
+
label: "Enquiries",
|
|
332
|
+
groupIcon: MessageSquare,
|
|
333
|
+
items: [
|
|
334
|
+
{ id: "catalog", label: "Listings", icon: FileText, shares: "catalogue" },
|
|
335
|
+
{
|
|
336
|
+
id: "inquiries",
|
|
337
|
+
label: "Enquiries",
|
|
338
|
+
icon: MessageSquare,
|
|
339
|
+
shares: "inquiries"
|
|
340
|
+
}
|
|
341
|
+
]
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
key: "dine-in",
|
|
345
|
+
label: "Dine-in",
|
|
346
|
+
groupIcon: UtensilsCrossed,
|
|
347
|
+
items: [
|
|
348
|
+
// No Today row: the floor right now is the default view of the queue.
|
|
349
|
+
{
|
|
350
|
+
id: "reservations",
|
|
351
|
+
label: "Reservations",
|
|
352
|
+
// Not the concierge bell: this row joined the `bookings` collapse, and
|
|
353
|
+
// one subject wears one glyph (see `nav-icons.test.ts`).
|
|
354
|
+
icon: CalendarClock,
|
|
355
|
+
landingLabel: "All {label}",
|
|
356
|
+
// The dining room's diary is `/dashboard/bookings`, the screen
|
|
357
|
+
// `take-bookings` calls Appointments and `rent-property` calls
|
|
358
|
+
// Reservations — both tagged `bookings`, this one was not. So a bakery
|
|
359
|
+
// taking cake consultations got two rows opening one diary under two
|
|
360
|
+
// words, which the label check cannot see: only the destination
|
|
361
|
+
// repeats. Tagging costs dine-in nothing — alone behind the row, the
|
|
362
|
+
// agreement pass gives "Reservations" straight back.
|
|
363
|
+
shares: "bookings",
|
|
364
|
+
children: [
|
|
365
|
+
{
|
|
366
|
+
id: "waitlist",
|
|
367
|
+
label: "Waitlist",
|
|
368
|
+
icon: ListChecks,
|
|
369
|
+
// One waiting list, like one Orders. A club with courts and
|
|
370
|
+
// ticketed nights had Waitlist under Appointments and Waitlist
|
|
371
|
+
// under Attendees — one screen, twice, differing only by a filter
|
|
372
|
+
// the screen itself carries.
|
|
373
|
+
shares: "waitlist"
|
|
374
|
+
}
|
|
375
|
+
]
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
id: "resources",
|
|
379
|
+
label: "Tables",
|
|
380
|
+
icon: LayoutGrid,
|
|
381
|
+
shares: "resources"
|
|
382
|
+
},
|
|
383
|
+
{ id: "tabs", label: "Tabs", icon: Banknote },
|
|
384
|
+
{
|
|
385
|
+
id: "catalog",
|
|
386
|
+
label: "Menu",
|
|
387
|
+
icon: UtensilsCrossed,
|
|
388
|
+
shares: "catalogue"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
id: "orders",
|
|
392
|
+
label: "Orders",
|
|
393
|
+
icon: Receipt,
|
|
394
|
+
shares: "orders",
|
|
395
|
+
landingLabel: "All {label}"
|
|
396
|
+
}
|
|
397
|
+
]
|
|
398
|
+
}
|
|
399
|
+
];
|
|
400
|
+
function intentNavRows(intentKeys) {
|
|
401
|
+
if (intentKeys.includes(BIO_INTENT)) return [];
|
|
402
|
+
const seen = /* @__PURE__ */ new Set();
|
|
403
|
+
const rows = [];
|
|
404
|
+
for (const key of intentKeys) {
|
|
405
|
+
const definition = INTENT_NAV_DEFINITIONS.find((d) => d.key === key);
|
|
406
|
+
const config = getIntentConfig(key) ?? (key === "default" ? defaultCommerceConfig : void 0);
|
|
407
|
+
if (!definition || !config) continue;
|
|
408
|
+
for (const item of definition.items) {
|
|
409
|
+
const declared = config.navigation.groups.some(
|
|
410
|
+
(g) => g.items.some((i) => i.id === item.id)
|
|
411
|
+
);
|
|
412
|
+
if (!declared || seen.has(item.label)) continue;
|
|
413
|
+
seen.add(item.label);
|
|
414
|
+
rows.push({ label: item.label, icon: item.icon });
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return rows;
|
|
418
|
+
}
|
|
419
|
+
export {
|
|
420
|
+
INTENT_NAV_DEFINITIONS,
|
|
421
|
+
intentNavRows
|
|
422
|
+
};
|
|
423
|
+
//# sourceMappingURL=intent-nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/intents/intent-nav.ts"],"sourcesContent":["import {\n Banknote,\n BookOpen,\n Building2,\n CalendarClock,\n CalendarRange,\n BadgeCheck,\n FileText,\n Layers,\n LayoutGrid,\n ListChecks,\n Package,\n Receipt,\n ReceiptText,\n TicketCheck,\n RefreshCw,\n UtensilsCrossed,\n Wrench,\n type LucideIcon,\n MessageSquare,\n} from 'lucide-react';\nimport { getIntentConfig, defaultCommerceConfig } from './registry';\nimport { BIO_INTENT } from './archetype-flow';\n\n/**\n * What each archetype puts in the sidebar, and what each row is called.\n *\n * This list — not the intent configs — decides what a merchant can reach and\n * what it is named. The configs supply the href and the permission; the label\n * and the membership come from here. That asymmetry is deliberate (a config can\n * declare a surface before the nav is ready for it) but it used to live inside\n * sidebar.tsx, which meant nothing else could tell the truth about the nav.\n *\n * Onboarding previews exactly this, so the pages it promises while the merchant\n * is picking archetypes are the pages the sidebar will actually render, under\n * the names it will actually use. Drift between this and the configs is still\n * shouted about in dev by warnOnUnreachableNavItems.\n */\nexport interface IntentNavDefinition {\n key: string;\n label: string;\n groupIcon?: LucideIcon;\n items: {\n id: string;\n label: string;\n icon: LucideIcon;\n /**\n * What this item actually manages, in the merchant's words.\n *\n * A business that seats guests *and* does takeaway has one menu, not two,\n * so both intents point at the same `shares: 'menu'` and the sidebar shows\n * it once. Where two intents genuinely manage different things — a\n * restaurant's menu and its retail shelf — the nouns differ and both stay.\n *\n * Omitted means \"unique to this archetype\" (Reservations, Tables, Tabs):\n * only one intent ever contributes it, so there is nothing to collapse.\n */\n shares?: string;\n /**\n * Rows that live *under* this one, revealed by the sidebar's disclosure.\n *\n * An Operations row is often a surface with a smaller surface attached:\n * Appointments has the queue of people who could not get one. Those are\n * not peers — putting a Waitlist row beside Appointments says they are two\n * equal destinations, when one is a state of the other. As children they\n * stay one click away and cost the sidebar no height until opened.\n */\n children?: {\n id: string;\n label: string;\n icon: LucideIcon;\n /** Same meaning as on a top-level row: what this manages. */\n shares?: string;\n }[];\n /**\n * What this row's own screen is called once it has children.\n *\n * Required for any row that declares `children`: the disclosure rule moves\n * the row's page into the group as its first child, and the renderer's\n * \"Overview\" fallback exists only so a half-built hub renders rather than\n * throwing. `{label}` interpolates the row's post-rename label.\n */\n landingLabel?: string;\n }[];\n}\n\n/**\n * NO CHILDREN UNDER ORDERS. Abandoned carts was the only one, and it moved to\n * Marketing on John's call, 2026-09-03 — the argument is written where the row\n * now lives, in `spine-groups`.\n *\n * The declaration is deleted rather than emptied. A `children: []` on eight\n * archetypes is an invitation to nest the next thing that is *about* orders\n * under Orders, which is how this one ended up here: an abandoned cart is an\n * order that never happened, so it looked like an order's child. What a record\n * IS decides its permission; what you come to DO with it decides its row.\n *\n * What the old note here was right about, kept because it will be true again\n * the day something is genuinely nested: seven archetypes declare `orders`, it\n * collapses to one row, and the folding archetypes' children are grafted onto\n * the survivor — so an untagged child came out once per archetype. A musician\n * selling shows, merch and downloads had one Orders row carrying four\n * identical \"Abandoned carts\". Any future child needs `shares`.\n */\n\nexport const INTENT_NAV_DEFINITIONS: IntentNavDefinition[] = [\n // No Fulfillment row, for `default` or `sell-products`. Both used to list one\n // and no config ever declared a `shipping` nav item, so the row could not be\n // built and never was — the definition promised a work surface that does not\n // exist. Shipping is a Settings page (Settings → Selling → Shipping), which\n // is where the spine already puts it and where `nav-coverage` says it lives.\n {\n key: 'default',\n label: 'Products',\n items: [\n { id: 'catalog', label: 'Inventory', icon: Package, shares: 'catalogue' },\n // \"Orders\", not \"Product Orders\". A qualifier earns its place by telling\n // one archetype's queue from another's, and it is dropped the moment it\n // does that job — multi mode collapses every contributor of `orders` to\n // the plain noun. So the merchant running four archetypes read \"Orders\"\n // and the shop running one read \"Product Orders\": the qualified label\n // went to the only business with nothing to qualify against, one line\n // under a group already called Products.\n //\n // Where the archetype's own word says something the generic cannot, it\n // stays: a takeaway's \"Kitchen Orders\" names the queue it prints to.\n {\n id: 'orders',\n label: 'Orders',\n icon: Receipt,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n ],\n },\n {\n key: 'sell-products',\n label: 'Products',\n items: [\n { id: 'catalog', label: 'Inventory', icon: Package, shares: 'catalogue' },\n // See `default` above: the qualifier told this shop's orders from queues\n // it does not run.\n {\n id: 'orders',\n label: 'Orders',\n icon: Receipt,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n ],\n },\n {\n key: 'digital-products',\n label: 'Digital products',\n items: [\n {\n // Package, and the same shelf as Inventory. A print and a preset are\n // both things this business sells, and they sell from ONE screen: every\n // archetype's `catalog` resolves to /dashboard/catalog. Giving downloads\n // their own row made a filter wear the clothes of a destination — and\n // since `sell-products` claims the shelf first, that row was deleted\n // anyway, taking the whole Digital Products heading with it. The\n // narrowing lives on the page now, in exactly these nouns.\n // \"Products\" and \"Orders\", not \"Digital Catalog\" and \"Download\n // Orders\". Judged by the rule pass 1 set: a qualifier earns its place\n // by telling one archetype's queue from another's, and for a business\n // that only sells downloads there is nothing to tell apart —\n // everything in the catalogue is digital and every order is a\n // download. The group above already says Digital Products.\n //\n // Where a word says something the generic cannot it stays, which is\n // why a takeaway keeps \"Kitchen Orders\". \"Download Orders\" says only\n // what the heading said.\n // \"Downloads\", which is what they are — and which tells them from the\n // prints on the same shelf when a photographer sells both. Pass 7 was\n // right to drop \"Digital Catalog\" and wrong to land on \"Products\".\n id: 'catalog',\n label: 'Downloads',\n icon: Package,\n shares: 'catalogue',\n },\n {\n id: 'orders',\n label: 'Orders',\n icon: Receipt,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n ],\n },\n {\n key: 'event-tickets',\n label: 'Ticketing',\n items: [\n {\n id: 'orders',\n label: 'Ticket orders',\n icon: TicketCheck,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n {\n id: 'events',\n label: 'Events',\n icon: CalendarRange,\n landingLabel: 'All {label}',\n children: [\n {\n id: 'collections',\n label: 'Collections',\n icon: Layers,\n },\n // No Check-ins row. The config dropped it deliberately — it was\n // Attendees minus the list, plus a scan log that rendered empty on\n // every load — and this list never got the memo, so it went on\n // naming a row that `buildIntentItem` could not build and silently\n // returned null for. Twelve ticketing businesses had it in the\n // definitions and none of them could see it.\n //\n // The route stays, reached from an event: scanning is a phone job at\n // a door. Nor is there an Attendees row any more (2026-09-03) — an\n // attendee is a customer, so the identity lives in Customers.\n {\n id: 'waitlist',\n label: 'Waitlist',\n icon: ListChecks,\n // One waiting list, like one Orders. A club with courts and\n // ticketed nights had Waitlist under Appointments and Waitlist\n // under Attendees — one screen, twice, differing only by a filter\n // the screen itself carries.\n shares: 'waitlist',\n },\n ],\n },\n // No Calendar Sync row. A Google connection is made once and then\n // forgotten, which is the definition of a setting, and it lives at\n // Settings → Operations → Calendar sync for every archetype now. It used\n // to be a row here, a row called Availability on rentals and a tab on\n // appointments: one screen under three names in three places.\n ],\n },\n {\n key: 'take-bookings',\n label: 'Bookings',\n groupIcon: BookOpen,\n items: [\n // No Today row. It and the Appointments calendar were drawing the same\n // picture — resources across, the day down — over the same records, and\n // only the desk board could act on it. They are one surface with a view\n // switch now, defaulting to the day, which is the screen a front desk\n // keeps open. /dashboard/today redirects into it.\n { id: 'catalog', label: 'Services', icon: Wrench, shares: 'catalogue' },\n {\n id: 'orders',\n label: 'Appointments',\n icon: CalendarClock,\n shares: 'bookings',\n landingLabel: 'All {label}',\n children: [\n {\n id: 'waitlist',\n label: 'Waitlist',\n icon: ListChecks,\n // One waiting list, like one Orders. A club with courts and\n // ticketed nights had Waitlist under Appointments and Waitlist\n // under Attendees — one screen, twice, differing only by a filter\n // the screen itself carries.\n shares: 'waitlist',\n },\n ],\n },\n // No 'calendar' row. It and Appointments were sibling rows over the same\n // records — the list could act but not show time, the grid could show\n // time but not act — and they are one surface with a view switch now.\n // /dashboard/calendar is a redirect into it, so a row here would be a\n // second door to a screen that already has one.\n //\n // Nor a 'Scheduling' row: that is a Google Calendar connection, an act\n // performed once, and it lives in Settings.\n {\n id: 'resources',\n label: 'Staff',\n icon: LayoutGrid,\n shares: 'resources',\n },\n ],\n },\n {\n key: 'rent-property',\n label: 'Rentals',\n items: [\n // No Today row: the day board is the default view of Reservations now.\n // A hotel's day is arrivals, departures and who is in house, and\n // `buildDayLanes` still draws exactly those three columns.\n {\n id: 'catalog',\n label: 'Properties',\n icon: Building2,\n shares: 'catalogue',\n },\n {\n id: 'orders',\n label: 'Reservations',\n icon: CalendarClock,\n shares: 'bookings',\n landingLabel: 'All {label}',\n children: [\n {\n id: 'waitlist',\n label: 'Waitlist',\n icon: ListChecks,\n // One waiting list, like one Orders. A club with courts and\n // ticketed nights had Waitlist under Appointments and Waitlist\n // under Attendees — one screen, twice, differing only by a filter\n // the screen itself carries.\n shares: 'waitlist',\n },\n ],\n },\n // No Availability row, and no Calendar Sync row either. Availability was\n // the calendar-CONNECTION screen — channel in, Google out — while a\n // short-let's availability is its bookings, its blocked dates and what a\n // channel is holding, none of which were on it. Reservations' calendar\n // view is that answer, and it can finally draw properties: it built its\n // columns from bookable_resources, which a rental business has none of,\n // so a landlord with ten flats got an empty board asking for the\n // properties they already had. The connection is a setting.\n ],\n },\n {\n key: 'subscriptions',\n label: 'Memberships',\n items: [\n // A hub, because the screen behind it is two screens — and the sidebar\n // used to reach them from two SECTIONS: this row under Operations, and a\n // \"Members\" row under Customers on the same screen's other tab. One\n // module, two doors, filed apart. They are children now, the way\n // Resources holds its tabs; spine-groups.ts keeps the Customers row only\n // for a `subscribable` shop that has no hub of its own.\n // \"Memberships\", not \"Plans\": the row's word is also the page heading, so\n // Plans headed a tab strip whose first tab said Plans. Tiers, not a box\n // of stock — Plans wore Inventory's Package glyph.\n {\n id: 'catalog',\n label: 'Memberships',\n icon: BadgeCheck,\n shares: 'plans',\n landingLabel: 'Plans',\n children: [{ id: 'subscribers', label: 'Members', icon: RefreshCw }],\n },\n // Orders stays and keeps sharing: a membership business still takes\n // one-off payments, and when it also sells products there is one queue\n // for both.\n //\n // It is not the subscriber list, and it was: one row, id `orders`,\n // labelled \"Subscribers\", pointing at /dashboard/orders — so a\n // membership business clicking Subscribers got a list of orders, which\n // has never contained a subscriber.\n {\n id: 'orders',\n label: 'Orders',\n icon: Receipt,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n // No Subscribers row at this level: it was a peer of Plans pointing at\n // Plans' own screen. It is Memberships' `subscribers` child now.\n ],\n },\n {\n key: 'food-orders',\n label: 'Food orders',\n items: [\n {\n id: 'catalog',\n label: 'Menu',\n icon: UtensilsCrossed,\n shares: 'catalogue',\n },\n {\n id: 'orders',\n label: 'Kitchen orders',\n icon: Receipt,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n ],\n },\n {\n // Billing businesses have no storefront order flow, so Orders is\n // deliberately absent — Invoices is the work surface.\n key: 'send-invoices',\n label: 'Invoicing', // Settings → Billing is what the merchant pays Box.\n groupIcon: Receipt,\n items: [\n // Wrench, matching the other archetype that sells services — same key,\n // same screen. Invoices takes the written receipt so it stops wearing the\n // plain one that every archetype's order queue already wears.\n { id: 'catalog', label: 'Services', icon: Wrench, shares: 'catalogue' },\n {\n id: 'invoices',\n label: 'Invoices',\n icon: ReceiptText,\n shares: 'invoices',\n },\n ],\n },\n {\n // Nothing is sold from a catalogue here, so Orders is deliberately absent\n // exactly as it is for Billing — Enquiries is the work surface. `shares`\n // is set so a business that also sells does not end up with two inboxes.\n key: 'capture-leads',\n label: 'Enquiries',\n groupIcon: MessageSquare,\n items: [\n { id: 'catalog', label: 'Listings', icon: FileText, shares: 'catalogue' },\n {\n id: 'inquiries',\n label: 'Enquiries',\n icon: MessageSquare,\n shares: 'inquiries',\n },\n ],\n },\n {\n key: 'dine-in',\n label: 'Dine-in',\n groupIcon: UtensilsCrossed,\n items: [\n // No Today row: the floor right now is the default view of the queue.\n {\n id: 'reservations',\n label: 'Reservations',\n // Not the concierge bell: this row joined the `bookings` collapse, and\n // one subject wears one glyph (see `nav-icons.test.ts`).\n icon: CalendarClock,\n landingLabel: 'All {label}',\n // The dining room's diary is `/dashboard/bookings`, the screen\n // `take-bookings` calls Appointments and `rent-property` calls\n // Reservations — both tagged `bookings`, this one was not. So a bakery\n // taking cake consultations got two rows opening one diary under two\n // words, which the label check cannot see: only the destination\n // repeats. Tagging costs dine-in nothing — alone behind the row, the\n // agreement pass gives \"Reservations\" straight back.\n shares: 'bookings',\n children: [\n {\n id: 'waitlist',\n label: 'Waitlist',\n icon: ListChecks,\n // One waiting list, like one Orders. A club with courts and\n // ticketed nights had Waitlist under Appointments and Waitlist\n // under Attendees — one screen, twice, differing only by a filter\n // the screen itself carries.\n shares: 'waitlist',\n },\n ],\n },\n {\n id: 'resources',\n label: 'Tables',\n icon: LayoutGrid,\n shares: 'resources',\n },\n { id: 'tabs', label: 'Tabs', icon: Banknote },\n {\n id: 'catalog',\n label: 'Menu',\n icon: UtensilsCrossed,\n shares: 'catalogue',\n },\n {\n id: 'orders',\n label: 'Orders',\n icon: Receipt,\n shares: 'orders',\n landingLabel: 'All {label}',\n },\n ],\n },\n];\n\n/**\n * The nav rows a set of archetypes adds, in sidebar order, de-duplicated.\n *\n * Two rules keep this honest, and both were broken when onboarding read the raw\n * configs instead: an item only counts if the chosen intent's config actually\n * declares it (the sidebar drops it otherwise), and only intent-group rows\n * count at all. The fixed spine (Collections, Discounts, Invoices, Marketing,\n * Website) is there for every merchant regardless of what they pick, so listing\n * it as a consequence of a pick is a promise the pick did not make.\n */\nexport function intentNavRows(\n intentKeys: string[],\n): { label: string; icon: LucideIcon }[] {\n // Bio adds no dashboard navigation rows.\n if (intentKeys.includes(BIO_INTENT)) return [];\n\n const seen = new Set<string>();\n const rows: { label: string; icon: LucideIcon }[] = [];\n\n for (const key of intentKeys) {\n const definition = INTENT_NAV_DEFINITIONS.find((d) => d.key === key);\n const config =\n getIntentConfig(key) ??\n (key === 'default' ? defaultCommerceConfig : undefined);\n if (!definition || !config) continue;\n\n for (const item of definition.items) {\n // The sidebar takes the href from the config, so an item the config does\n // not declare is never rendered no matter what this list says.\n const declared = config.navigation.groups.some((g) =>\n g.items.some((i) => i.id === item.id),\n );\n if (!declared || seen.has(item.label)) continue;\n seen.add(item.label);\n rows.push({ label: item.label, icon: item.icon });\n }\n }\n\n return rows;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/** What a composed route says its screen is called and what it is about. */
|
|
3
|
+
export interface ScopeLabels {
|
|
4
|
+
/** The route's own name — the heading of the screen it mounts. */
|
|
5
|
+
title: string;
|
|
6
|
+
/** The nouns of the owning intent, as it declares them. */
|
|
7
|
+
vocabulary: {
|
|
8
|
+
item?: readonly [string, string];
|
|
9
|
+
order?: readonly [string, string];
|
|
10
|
+
booking?: readonly [string, string];
|
|
11
|
+
resource?: readonly [string, string];
|
|
12
|
+
};
|
|
13
|
+
/** What the screen says when it has nothing to show, if the route declares it. */
|
|
14
|
+
empty?: {
|
|
15
|
+
title: string;
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
/** Where this intent's items are listed and created, when it has screens for them. */
|
|
19
|
+
links?: {
|
|
20
|
+
list?: string;
|
|
21
|
+
create?: string;
|
|
22
|
+
orders?: string;
|
|
23
|
+
bookings?: string;
|
|
24
|
+
invoices?: string;
|
|
25
|
+
resources?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Renders a screen as one intent.
|
|
30
|
+
*
|
|
31
|
+
* A composed route belongs to exactly one intent, and the screen it mounts must
|
|
32
|
+
* speak that intent's words and ask for that intent's data — a Ticket orders
|
|
33
|
+
* route that listed a restaurant's pizza under "Event" was the screen reading
|
|
34
|
+
* the URL's `?intent=` filter, or the business's first archetype, instead of
|
|
35
|
+
* the route it was mounted by. Inside this boundary `useIntentConfig` answers
|
|
36
|
+
* for the one intent, and the label hooks answer from the labels the composer
|
|
37
|
+
* file declared, so every existing component (nouns, columns, filters, create
|
|
38
|
+
* labels, headings) follows without being rewritten.
|
|
39
|
+
*
|
|
40
|
+
* The labels outrank what the tenant's own settings hold. Those were stamped
|
|
41
|
+
* at provisioning from whichever intent was ticked first, so a restaurant that
|
|
42
|
+
* also sold tickets read "Events" over its own menu.
|
|
43
|
+
*/
|
|
44
|
+
export declare function IntentScope({ intentKey, labels, children, }: {
|
|
45
|
+
intentKey: string;
|
|
46
|
+
labels?: ScopeLabels | null;
|
|
47
|
+
children: ReactNode;
|
|
48
|
+
}): import("react").JSX.Element;
|
|
49
|
+
/** The intent this subtree is scoped to, or null outside any composed route. */
|
|
50
|
+
export declare const useIntentScope: () => string | null;
|
|
51
|
+
/** The labels the composer declared for this screen, or null outside one. */
|
|
52
|
+
export declare const useScopeLabels: () => ScopeLabels | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
const IntentScopeContext = createContext(null);
|
|
5
|
+
function IntentScope({
|
|
6
|
+
intentKey,
|
|
7
|
+
labels = null,
|
|
8
|
+
children
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(IntentScopeContext.Provider, { value: { intentKey, labels }, children });
|
|
11
|
+
}
|
|
12
|
+
const useIntentScope = () => useContext(IntentScopeContext)?.intentKey ?? null;
|
|
13
|
+
const useScopeLabels = () => useContext(IntentScopeContext)?.labels ?? null;
|
|
14
|
+
export {
|
|
15
|
+
IntentScope,
|
|
16
|
+
useIntentScope,
|
|
17
|
+
useScopeLabels
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=intent-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/intents/intent-scope.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, useContext, type ReactNode } from 'react';\n\n/** What a composed route says its screen is called and what it is about. */\nexport interface ScopeLabels {\n /** The route's own name — the heading of the screen it mounts. */\n title: string;\n /** The nouns of the owning intent, as it declares them. */\n vocabulary: {\n item?: readonly [string, string];\n order?: readonly [string, string];\n booking?: readonly [string, string];\n resource?: readonly [string, string];\n };\n /** What the screen says when it has nothing to show, if the route declares it. */\n empty?: { title: string; description: string };\n /** Where this intent's items are listed and created, when it has screens for them. */\n links?: {\n list?: string;\n create?: string;\n orders?: string;\n bookings?: string;\n invoices?: string;\n resources?: string;\n };\n}\n\ninterface ScopeValue {\n intentKey: string;\n labels: ScopeLabels | null;\n}\n\nconst IntentScopeContext = createContext<ScopeValue | null>(null);\n\n/**\n * Renders a screen as one intent.\n *\n * A composed route belongs to exactly one intent, and the screen it mounts must\n * speak that intent's words and ask for that intent's data — a Ticket orders\n * route that listed a restaurant's pizza under \"Event\" was the screen reading\n * the URL's `?intent=` filter, or the business's first archetype, instead of\n * the route it was mounted by. Inside this boundary `useIntentConfig` answers\n * for the one intent, and the label hooks answer from the labels the composer\n * file declared, so every existing component (nouns, columns, filters, create\n * labels, headings) follows without being rewritten.\n *\n * The labels outrank what the tenant's own settings hold. Those were stamped\n * at provisioning from whichever intent was ticked first, so a restaurant that\n * also sold tickets read \"Events\" over its own menu.\n */\nexport function IntentScope({\n intentKey,\n labels = null,\n children,\n}: {\n intentKey: string;\n labels?: ScopeLabels | null;\n children: ReactNode;\n}) {\n return (\n <IntentScopeContext.Provider value={{ intentKey, labels }}>\n {children}\n </IntentScopeContext.Provider>\n );\n}\n\n/** The intent this subtree is scoped to, or null outside any composed route. */\nexport const useIntentScope = (): string | null =>\n useContext(IntentScopeContext)?.intentKey ?? null;\n\n/** The labels the composer declared for this screen, or null outside one. */\nexport const useScopeLabels = (): ScopeLabels | null =>\n useContext(IntentScopeContext)?.labels ?? null;\n"],"mappings":";AA6DI;AA3DJ,SAAS,eAAe,kBAAkC;AA+B1D,MAAM,qBAAqB,cAAiC,IAAI;AAkBzD,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA,SAAS;AAAA,EACT;AACF,GAIG;AACD,SACE,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,EAAE,WAAW,OAAO,GACrD,UACH;AAEJ;AAGO,MAAM,iBAAiB,MAC5B,WAAW,kBAAkB,GAAG,aAAa;AAGxC,MAAM,iBAAiB,MAC5B,WAAW,kBAAkB,GAAG,UAAU;","names":[]}
|