@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.
Files changed (1341) hide show
  1. package/dist/__fixtures__/demo-content-server.json +484 -0
  2. package/dist/accessibility-context.d.ts +27 -0
  3. package/dist/accessibility-context.js +107 -0
  4. package/dist/accessibility-context.js.map +1 -0
  5. package/dist/active-workspace.d.ts +45 -0
  6. package/dist/active-workspace.js +34 -0
  7. package/dist/active-workspace.js.map +1 -0
  8. package/dist/admin-account-officer-api.d.ts +13 -0
  9. package/dist/admin-account-officer-api.js +12 -0
  10. package/dist/admin-account-officer-api.js.map +1 -0
  11. package/dist/admin-account-types.d.ts +122 -0
  12. package/dist/admin-account-types.js +1 -0
  13. package/dist/admin-account-types.js.map +1 -0
  14. package/dist/admin-adoption-api.d.ts +35 -0
  15. package/dist/admin-adoption-api.js +16 -0
  16. package/dist/admin-adoption-api.js.map +1 -0
  17. package/dist/admin-api.d.ts +1219 -0
  18. package/dist/admin-api.js +325 -0
  19. package/dist/admin-api.js.map +1 -0
  20. package/dist/admin-case-api.d.ts +32 -0
  21. package/dist/admin-case-api.js +63 -0
  22. package/dist/admin-case-api.js.map +1 -0
  23. package/dist/admin-case-types.d.ts +166 -0
  24. package/dist/admin-case-types.js +1 -0
  25. package/dist/admin-case-types.js.map +1 -0
  26. package/dist/admin-compliance-api.d.ts +31 -0
  27. package/dist/admin-compliance-api.js +20 -0
  28. package/dist/admin-compliance-api.js.map +1 -0
  29. package/dist/admin-country-api.d.ts +28 -0
  30. package/dist/admin-country-api.js +9 -0
  31. package/dist/admin-country-api.js.map +1 -0
  32. package/dist/admin-currency-types.d.ts +138 -0
  33. package/dist/admin-currency-types.js +1 -0
  34. package/dist/admin-currency-types.js.map +1 -0
  35. package/dist/admin-feedback-api.d.ts +215 -0
  36. package/dist/admin-feedback-api.js +63 -0
  37. package/dist/admin-feedback-api.js.map +1 -0
  38. package/dist/admin-inbox-seen.d.ts +22 -0
  39. package/dist/admin-inbox-seen.js +47 -0
  40. package/dist/admin-inbox-seen.js.map +1 -0
  41. package/dist/admin-ledger-api.d.ts +85 -0
  42. package/dist/admin-ledger-api.js +30 -0
  43. package/dist/admin-ledger-api.js.map +1 -0
  44. package/dist/admin-money-api.d.ts +127 -0
  45. package/dist/admin-money-api.js +125 -0
  46. package/dist/admin-money-api.js.map +1 -0
  47. package/dist/admin-newsletter-contacts-api.d.ts +70 -0
  48. package/dist/admin-newsletter-contacts-api.js +20 -0
  49. package/dist/admin-newsletter-contacts-api.js.map +1 -0
  50. package/dist/admin-newsletter-deliveries-api.d.ts +47 -0
  51. package/dist/admin-newsletter-deliveries-api.js +16 -0
  52. package/dist/admin-newsletter-deliveries-api.js.map +1 -0
  53. package/dist/admin-newsletters-api.d.ts +118 -0
  54. package/dist/admin-newsletters-api.js +47 -0
  55. package/dist/admin-newsletters-api.js.map +1 -0
  56. package/dist/admin-pos-api.d.ts +16 -0
  57. package/dist/admin-pos-api.js +35 -0
  58. package/dist/admin-pos-api.js.map +1 -0
  59. package/dist/admin-pos-query.d.ts +43 -0
  60. package/dist/admin-pos-query.js +55 -0
  61. package/dist/admin-pos-query.js.map +1 -0
  62. package/dist/admin-pos-types.d.ts +122 -0
  63. package/dist/admin-pos-types.js +1 -0
  64. package/dist/admin-pos-types.js.map +1 -0
  65. package/dist/admin-pricing-api.d.ts +88 -0
  66. package/dist/admin-pricing-api.js +66 -0
  67. package/dist/admin-pricing-api.js.map +1 -0
  68. package/dist/admin-readiness-api.d.ts +25 -0
  69. package/dist/admin-readiness-api.js +39 -0
  70. package/dist/admin-readiness-api.js.map +1 -0
  71. package/dist/admin-sales-api.d.ts +124 -0
  72. package/dist/admin-sales-api.js +41 -0
  73. package/dist/admin-sales-api.js.map +1 -0
  74. package/dist/admin-saved-replies-api.d.ts +35 -0
  75. package/dist/admin-saved-replies-api.js +70 -0
  76. package/dist/admin-saved-replies-api.js.map +1 -0
  77. package/dist/admin-service-operations-api.d.ts +142 -0
  78. package/dist/admin-service-operations-api.js +52 -0
  79. package/dist/admin-service-operations-api.js.map +1 -0
  80. package/dist/admin-signatures-api.d.ts +57 -0
  81. package/dist/admin-signatures-api.js +15 -0
  82. package/dist/admin-signatures-api.js.map +1 -0
  83. package/dist/admin-support-analytics-api.d.ts +36 -0
  84. package/dist/admin-support-analytics-api.js +71 -0
  85. package/dist/admin-support-analytics-api.js.map +1 -0
  86. package/dist/admin-tenant-setup-types.d.ts +85 -0
  87. package/dist/admin-tenant-setup-types.js +1 -0
  88. package/dist/admin-tenant-setup-types.js.map +1 -0
  89. package/dist/admin-tenants-query.d.ts +14 -0
  90. package/dist/admin-tenants-query.js +17 -0
  91. package/dist/admin-tenants-query.js.map +1 -0
  92. package/dist/analytics/PostHogProvider.d.ts +25 -0
  93. package/dist/analytics/PostHogProvider.js +44 -0
  94. package/dist/analytics/PostHogProvider.js.map +1 -0
  95. package/dist/analytics/index.d.ts +1 -0
  96. package/dist/analytics/index.js +11 -0
  97. package/dist/analytics/index.js.map +1 -0
  98. package/dist/analytics.d.ts +1 -0
  99. package/dist/analytics.js +1 -0
  100. package/dist/api/abandoned-cart.d.ts +18 -0
  101. package/dist/api/abandoned-cart.js +68 -0
  102. package/dist/api/abandoned-cart.js.map +1 -0
  103. package/dist/api/accounts.d.ts +176 -0
  104. package/dist/api/accounts.js +194 -0
  105. package/dist/api/accounts.js.map +1 -0
  106. package/dist/api/analytics-patterns.d.ts +18 -0
  107. package/dist/api/analytics-patterns.js +52 -0
  108. package/dist/api/analytics-patterns.js.map +1 -0
  109. package/dist/api/analytics.d.ts +143 -0
  110. package/dist/api/analytics.js +379 -0
  111. package/dist/api/analytics.js.map +1 -0
  112. package/dist/api/assignee-prefs.d.ts +7 -0
  113. package/dist/api/assignee-prefs.js +17 -0
  114. package/dist/api/assignee-prefs.js.map +1 -0
  115. package/dist/api/automations.d.ts +73 -0
  116. package/dist/api/automations.js +102 -0
  117. package/dist/api/automations.js.map +1 -0
  118. package/dist/api/behaviors.d.ts +15 -0
  119. package/dist/api/behaviors.js +15 -0
  120. package/dist/api/behaviors.js.map +1 -0
  121. package/dist/api/bio.d.ts +7 -0
  122. package/dist/api/bio.js +17 -0
  123. package/dist/api/bio.js.map +1 -0
  124. package/dist/api/booking-calendar.d.ts +14 -0
  125. package/dist/api/booking-calendar.js +33 -0
  126. package/dist/api/booking-calendar.js.map +1 -0
  127. package/dist/api/bookings.d.ts +199 -0
  128. package/dist/api/bookings.js +284 -0
  129. package/dist/api/bookings.js.map +1 -0
  130. package/dist/api/business-devices.d.ts +108 -0
  131. package/dist/api/business-devices.js +139 -0
  132. package/dist/api/business-devices.js.map +1 -0
  133. package/dist/api/business-locations.d.ts +26 -0
  134. package/dist/api/business-locations.js +39 -0
  135. package/dist/api/business-locations.js.map +1 -0
  136. package/dist/api/cache-bus.d.ts +56 -0
  137. package/dist/api/cache-bus.js +18 -0
  138. package/dist/api/cache-bus.js.map +1 -0
  139. package/dist/api/calendar-sync.d.ts +49 -0
  140. package/dist/api/calendar-sync.js +50 -0
  141. package/dist/api/calendar-sync.js.map +1 -0
  142. package/dist/api/campaign-initiatives.d.ts +115 -0
  143. package/dist/api/campaign-initiatives.js +42 -0
  144. package/dist/api/campaign-initiatives.js.map +1 -0
  145. package/dist/api/campaigns.d.ts +89 -0
  146. package/dist/api/campaigns.js +100 -0
  147. package/dist/api/campaigns.js.map +1 -0
  148. package/dist/api/capabilities.d.ts +12 -0
  149. package/dist/api/capabilities.js +16 -0
  150. package/dist/api/capabilities.js.map +1 -0
  151. package/dist/api/commerce.d.ts +19 -0
  152. package/dist/api/commerce.js +31 -0
  153. package/dist/api/commerce.js.map +1 -0
  154. package/dist/api/communications.d.ts +166 -0
  155. package/dist/api/communications.js +141 -0
  156. package/dist/api/communications.js.map +1 -0
  157. package/dist/api/connect.d.ts +72 -0
  158. package/dist/api/connect.js +50 -0
  159. package/dist/api/connect.js.map +1 -0
  160. package/dist/api/content.d.ts +146 -0
  161. package/dist/api/content.js +187 -0
  162. package/dist/api/content.js.map +1 -0
  163. package/dist/api/conversations.d.ts +79 -0
  164. package/dist/api/conversations.js +41 -0
  165. package/dist/api/conversations.js.map +1 -0
  166. package/dist/api/core.d.ts +62 -0
  167. package/dist/api/core.js +223 -0
  168. package/dist/api/core.js.map +1 -0
  169. package/dist/api/credentials.d.ts +65 -0
  170. package/dist/api/credentials.js +48 -0
  171. package/dist/api/credentials.js.map +1 -0
  172. package/dist/api/credits.d.ts +96 -0
  173. package/dist/api/credits.js +24 -0
  174. package/dist/api/credits.js.map +1 -0
  175. package/dist/api/crm-analytics.d.ts +10 -0
  176. package/dist/api/crm-analytics.js +22 -0
  177. package/dist/api/crm-analytics.js.map +1 -0
  178. package/dist/api/crm-segments.d.ts +14 -0
  179. package/dist/api/crm-segments.js +42 -0
  180. package/dist/api/crm-segments.js.map +1 -0
  181. package/dist/api/deliveries.d.ts +99 -0
  182. package/dist/api/deliveries.js +37 -0
  183. package/dist/api/deliveries.js.map +1 -0
  184. package/dist/api/demo-content.d.ts +104 -0
  185. package/dist/api/demo-content.js +36 -0
  186. package/dist/api/demo-content.js.map +1 -0
  187. package/dist/api/device-shifts.d.ts +56 -0
  188. package/dist/api/device-shifts.js +50 -0
  189. package/dist/api/device-shifts.js.map +1 -0
  190. package/dist/api/devices.d.ts +6 -0
  191. package/dist/api/devices.js +10 -0
  192. package/dist/api/devices.js.map +1 -0
  193. package/dist/api/digital-files.d.ts +22 -0
  194. package/dist/api/digital-files.js +55 -0
  195. package/dist/api/digital-files.js.map +1 -0
  196. package/dist/api/discounts.d.ts +29 -0
  197. package/dist/api/discounts.js +46 -0
  198. package/dist/api/discounts.js.map +1 -0
  199. package/dist/api/disputes.d.ts +47 -0
  200. package/dist/api/disputes.js +42 -0
  201. package/dist/api/disputes.js.map +1 -0
  202. package/dist/api/feature-locked.d.ts +11 -0
  203. package/dist/api/feature-locked.js +18 -0
  204. package/dist/api/feature-locked.js.map +1 -0
  205. package/dist/api/feedback-prompts.d.ts +45 -0
  206. package/dist/api/feedback-prompts.js +85 -0
  207. package/dist/api/feedback-prompts.js.map +1 -0
  208. package/dist/api/feedback.d.ts +254 -0
  209. package/dist/api/feedback.js +108 -0
  210. package/dist/api/feedback.js.map +1 -0
  211. package/dist/api/finance.d.ts +199 -0
  212. package/dist/api/finance.js +203 -0
  213. package/dist/api/finance.js.map +1 -0
  214. package/dist/api/gallery.d.ts +30 -0
  215. package/dist/api/gallery.js +48 -0
  216. package/dist/api/gallery.js.map +1 -0
  217. package/dist/api/geo.d.ts +18 -0
  218. package/dist/api/geo.js +19 -0
  219. package/dist/api/geo.js.map +1 -0
  220. package/dist/api/giftcards.d.ts +63 -0
  221. package/dist/api/giftcards.js +63 -0
  222. package/dist/api/giftcards.js.map +1 -0
  223. package/dist/api/hardware-orders.d.ts +40 -0
  224. package/dist/api/hardware-orders.js +37 -0
  225. package/dist/api/hardware-orders.js.map +1 -0
  226. package/dist/api/index.d.ts +71 -0
  227. package/dist/api/index.js +78 -0
  228. package/dist/api/index.js.map +1 -0
  229. package/dist/api/inquiries.d.ts +92 -0
  230. package/dist/api/inquiries.js +129 -0
  231. package/dist/api/inquiries.js.map +1 -0
  232. package/dist/api/inventory.d.ts +133 -0
  233. package/dist/api/inventory.js +203 -0
  234. package/dist/api/inventory.js.map +1 -0
  235. package/dist/api/invite-body.d.ts +19 -0
  236. package/dist/api/invite-body.js +8 -0
  237. package/dist/api/invite-body.js.map +1 -0
  238. package/dist/api/invoices.d.ts +19 -0
  239. package/dist/api/invoices.js +80 -0
  240. package/dist/api/invoices.js.map +1 -0
  241. package/dist/api/locations.d.ts +15 -0
  242. package/dist/api/locations.js +30 -0
  243. package/dist/api/locations.js.map +1 -0
  244. package/dist/api/loyalty.d.ts +68 -0
  245. package/dist/api/loyalty.js +112 -0
  246. package/dist/api/loyalty.js.map +1 -0
  247. package/dist/api/marketing-consent.d.ts +36 -0
  248. package/dist/api/marketing-consent.js +11 -0
  249. package/dist/api/marketing-consent.js.map +1 -0
  250. package/dist/api/marketing-suppressions.d.ts +81 -0
  251. package/dist/api/marketing-suppressions.js +65 -0
  252. package/dist/api/marketing-suppressions.js.map +1 -0
  253. package/dist/api/members.d.ts +79 -0
  254. package/dist/api/members.js +148 -0
  255. package/dist/api/members.js.map +1 -0
  256. package/dist/api/merchant-notifications.d.ts +27 -0
  257. package/dist/api/merchant-notifications.js +41 -0
  258. package/dist/api/merchant-notifications.js.map +1 -0
  259. package/dist/api/merchant-referrals.d.ts +23 -0
  260. package/dist/api/merchant-referrals.js +10 -0
  261. package/dist/api/merchant-referrals.js.map +1 -0
  262. package/dist/api/merchant-subscriptions.d.ts +117 -0
  263. package/dist/api/merchant-subscriptions.js +113 -0
  264. package/dist/api/merchant-subscriptions.js.map +1 -0
  265. package/dist/api/misc.d.ts +4 -0
  266. package/dist/api/misc.js +24 -0
  267. package/dist/api/misc.js.map +1 -0
  268. package/dist/api/odoo.d.ts +102 -0
  269. package/dist/api/odoo.js +36 -0
  270. package/dist/api/odoo.js.map +1 -0
  271. package/dist/api/onboarding.d.ts +48 -0
  272. package/dist/api/onboarding.js +78 -0
  273. package/dist/api/onboarding.js.map +1 -0
  274. package/dist/api/orders.d.ts +153 -0
  275. package/dist/api/orders.js +303 -0
  276. package/dist/api/orders.js.map +1 -0
  277. package/dist/api/organizations.d.ts +14 -0
  278. package/dist/api/organizations.js +19 -0
  279. package/dist/api/organizations.js.map +1 -0
  280. package/dist/api/packages.d.ts +16 -0
  281. package/dist/api/packages.js +25 -0
  282. package/dist/api/packages.js.map +1 -0
  283. package/dist/api/pages.d.ts +79 -0
  284. package/dist/api/pages.js +125 -0
  285. package/dist/api/pages.js.map +1 -0
  286. package/dist/api/payables.d.ts +34 -0
  287. package/dist/api/payables.js +70 -0
  288. package/dist/api/payables.js.map +1 -0
  289. package/dist/api/plan-refusal.d.ts +21 -0
  290. package/dist/api/plan-refusal.js +28 -0
  291. package/dist/api/plan-refusal.js.map +1 -0
  292. package/dist/api/pos.d.ts +66 -0
  293. package/dist/api/pos.js +115 -0
  294. package/dist/api/pos.js.map +1 -0
  295. package/dist/api/potter.d.ts +114 -0
  296. package/dist/api/potter.js +88 -0
  297. package/dist/api/potter.js.map +1 -0
  298. package/dist/api/push.d.ts +25 -0
  299. package/dist/api/push.js +23 -0
  300. package/dist/api/push.js.map +1 -0
  301. package/dist/api/referrals.d.ts +10 -0
  302. package/dist/api/referrals.js +16 -0
  303. package/dist/api/referrals.js.map +1 -0
  304. package/dist/api/resource-categories.d.ts +35 -0
  305. package/dist/api/resource-categories.js +76 -0
  306. package/dist/api/resource-categories.js.map +1 -0
  307. package/dist/api/resources.d.ts +54 -0
  308. package/dist/api/resources.js +92 -0
  309. package/dist/api/resources.js.map +1 -0
  310. package/dist/api/reviews.d.ts +18 -0
  311. package/dist/api/reviews.js +46 -0
  312. package/dist/api/reviews.js.map +1 -0
  313. package/dist/api/riders.d.ts +70 -0
  314. package/dist/api/riders.js +24 -0
  315. package/dist/api/riders.js.map +1 -0
  316. package/dist/api/role-permissions.d.ts +25 -0
  317. package/dist/api/role-permissions.js +47 -0
  318. package/dist/api/role-permissions.js.map +1 -0
  319. package/dist/api/sales-channels.d.ts +234 -0
  320. package/dist/api/sales-channels.js +119 -0
  321. package/dist/api/sales-channels.js.map +1 -0
  322. package/dist/api/service-missing.d.ts +10 -0
  323. package/dist/api/service-missing.js +19 -0
  324. package/dist/api/service-missing.js.map +1 -0
  325. package/dist/api/session-refresh.d.ts +18 -0
  326. package/dist/api/session-refresh.js +37 -0
  327. package/dist/api/session-refresh.js.map +1 -0
  328. package/dist/api/session-scope.d.ts +35 -0
  329. package/dist/api/session-scope.js +53 -0
  330. package/dist/api/session-scope.js.map +1 -0
  331. package/dist/api/settlements.d.ts +106 -0
  332. package/dist/api/settlements.js +114 -0
  333. package/dist/api/settlements.js.map +1 -0
  334. package/dist/api/share-links.d.ts +46 -0
  335. package/dist/api/share-links.js +25 -0
  336. package/dist/api/share-links.js.map +1 -0
  337. package/dist/api/shift-notes.d.ts +19 -0
  338. package/dist/api/shift-notes.js +13 -0
  339. package/dist/api/shift-notes.js.map +1 -0
  340. package/dist/api/shipping.d.ts +42 -0
  341. package/dist/api/shipping.js +53 -0
  342. package/dist/api/shipping.js.map +1 -0
  343. package/dist/api/social-sources.d.ts +58 -0
  344. package/dist/api/social-sources.js +23 -0
  345. package/dist/api/social-sources.js.map +1 -0
  346. package/dist/api/tabs.d.ts +14 -0
  347. package/dist/api/tabs.js +39 -0
  348. package/dist/api/tabs.js.map +1 -0
  349. package/dist/api/team.d.ts +112 -0
  350. package/dist/api/team.js +144 -0
  351. package/dist/api/team.js.map +1 -0
  352. package/dist/api/template-settings.d.ts +26 -0
  353. package/dist/api/template-settings.js +36 -0
  354. package/dist/api/template-settings.js.map +1 -0
  355. package/dist/api/templates.d.ts +21 -0
  356. package/dist/api/templates.js +25 -0
  357. package/dist/api/templates.js.map +1 -0
  358. package/dist/api/tenant-slug.d.ts +13 -0
  359. package/dist/api/tenant-slug.js +18 -0
  360. package/dist/api/tenant-slug.js.map +1 -0
  361. package/dist/api/tenant.d.ts +33 -0
  362. package/dist/api/tenant.js +51 -0
  363. package/dist/api/tenant.js.map +1 -0
  364. package/dist/api/types/analytics-attribution.d.ts +43 -0
  365. package/dist/api/types/analytics-attribution.js +1 -0
  366. package/dist/api/types/analytics-attribution.js.map +1 -0
  367. package/dist/api/types/analytics.d.ts +465 -0
  368. package/dist/api/types/analytics.js +1 -0
  369. package/dist/api/types/analytics.js.map +1 -0
  370. package/dist/api/types/auth.d.ts +206 -0
  371. package/dist/api/types/auth.js +7 -0
  372. package/dist/api/types/auth.js.map +1 -0
  373. package/dist/api/types/automation-flow.d.ts +199 -0
  374. package/dist/api/types/automation-flow.js +1 -0
  375. package/dist/api/types/automation-flow.js.map +1 -0
  376. package/dist/api/types/bookings.d.ts +226 -0
  377. package/dist/api/types/bookings.js +1 -0
  378. package/dist/api/types/bookings.js.map +1 -0
  379. package/dist/api/types/campaigns.d.ts +262 -0
  380. package/dist/api/types/campaigns.js +1 -0
  381. package/dist/api/types/campaigns.js.map +1 -0
  382. package/dist/api/types/catalog.d.ts +273 -0
  383. package/dist/api/types/catalog.js +1 -0
  384. package/dist/api/types/catalog.js.map +1 -0
  385. package/dist/api/types/collections.d.ts +189 -0
  386. package/dist/api/types/collections.js +1 -0
  387. package/dist/api/types/collections.js.map +1 -0
  388. package/dist/api/types/crm.d.ts +264 -0
  389. package/dist/api/types/crm.js +1 -0
  390. package/dist/api/types/crm.js.map +1 -0
  391. package/dist/api/types/customers.d.ts +269 -0
  392. package/dist/api/types/customers.js +1 -0
  393. package/dist/api/types/customers.js.map +1 -0
  394. package/dist/api/types/devices.d.ts +390 -0
  395. package/dist/api/types/devices.js +1 -0
  396. package/dist/api/types/devices.js.map +1 -0
  397. package/dist/api/types/discounts.d.ts +237 -0
  398. package/dist/api/types/discounts.js +1 -0
  399. package/dist/api/types/discounts.js.map +1 -0
  400. package/dist/api/types/filters.d.ts +258 -0
  401. package/dist/api/types/filters.js +1 -0
  402. package/dist/api/types/filters.js.map +1 -0
  403. package/dist/api/types/index.d.ts +31 -0
  404. package/dist/api/types/index.js +25 -0
  405. package/dist/api/types/index.js.map +1 -0
  406. package/dist/api/types/inquiries.d.ts +266 -0
  407. package/dist/api/types/inquiries.js +1 -0
  408. package/dist/api/types/inquiries.js.map +1 -0
  409. package/dist/api/types/locations.d.ts +208 -0
  410. package/dist/api/types/locations.js +1 -0
  411. package/dist/api/types/locations.js.map +1 -0
  412. package/dist/api/types/onboarding.d.ts +311 -0
  413. package/dist/api/types/onboarding.js +1 -0
  414. package/dist/api/types/onboarding.js.map +1 -0
  415. package/dist/api/types/operations.d.ts +136 -0
  416. package/dist/api/types/operations.js +1 -0
  417. package/dist/api/types/operations.js.map +1 -0
  418. package/dist/api/types/orders.d.ts +242 -0
  419. package/dist/api/types/orders.js +1 -0
  420. package/dist/api/types/orders.js.map +1 -0
  421. package/dist/api/types/payables.d.ts +140 -0
  422. package/dist/api/types/payables.js +1 -0
  423. package/dist/api/types/payables.js.map +1 -0
  424. package/dist/api/types/pos.d.ts +121 -0
  425. package/dist/api/types/pos.js +5 -0
  426. package/dist/api/types/pos.js.map +1 -0
  427. package/dist/api/types/record-analytics.d.ts +95 -0
  428. package/dist/api/types/record-analytics.js +1 -0
  429. package/dist/api/types/record-analytics.js.map +1 -0
  430. package/dist/api/types/sales-patterns.d.ts +58 -0
  431. package/dist/api/types/sales-patterns.js +1 -0
  432. package/dist/api/types/sales-patterns.js.map +1 -0
  433. package/dist/api/types/tabs.d.ts +210 -0
  434. package/dist/api/types/tabs.js +1 -0
  435. package/dist/api/types/tabs.js.map +1 -0
  436. package/dist/api/types/templates.d.ts +398 -0
  437. package/dist/api/types/templates.js +1 -0
  438. package/dist/api/types/templates.js.map +1 -0
  439. package/dist/api/types/waitlist.d.ts +324 -0
  440. package/dist/api/types/waitlist.js +1 -0
  441. package/dist/api/types/waitlist.js.map +1 -0
  442. package/dist/api/types.d.ts +1 -0
  443. package/dist/api/types.js +1 -0
  444. package/dist/api/unserved-routes.d.ts +4 -0
  445. package/dist/api/unserved-routes.js +15 -0
  446. package/dist/api/unserved-routes.js.map +1 -0
  447. package/dist/api/waitlist.d.ts +80 -0
  448. package/dist/api/waitlist.js +85 -0
  449. package/dist/api/waitlist.js.map +1 -0
  450. package/dist/api.d.ts +1 -0
  451. package/dist/api.js +1 -0
  452. package/dist/app-name.d.ts +29 -0
  453. package/dist/app-name.js +11 -0
  454. package/dist/app-name.js.map +1 -0
  455. package/dist/arrival.d.ts +48 -0
  456. package/dist/arrival.js +34 -0
  457. package/dist/arrival.js.map +1 -0
  458. package/dist/auth-context.d.ts +90 -0
  459. package/dist/auth-context.js +732 -0
  460. package/dist/auth-context.js.map +1 -0
  461. package/dist/auth-session.d.ts +1 -0
  462. package/dist/auth-session.js +25 -0
  463. package/dist/auth-session.js.map +1 -0
  464. package/dist/bank-phone.d.ts +2 -0
  465. package/dist/bank-phone.js +12 -0
  466. package/dist/bank-phone.js.map +1 -0
  467. package/dist/behavior-config-types.d.ts +49 -0
  468. package/dist/behavior-config-types.js +1 -0
  469. package/dist/behavior-config-types.js.map +1 -0
  470. package/dist/behavior-context.d.ts +15 -0
  471. package/dist/behavior-context.js +38 -0
  472. package/dist/behavior-context.js.map +1 -0
  473. package/dist/behavior-fields.d.ts +41 -0
  474. package/dist/behavior-fields.js +20 -0
  475. package/dist/behavior-fields.js.map +1 -0
  476. package/dist/blog/__fixtures__/paste-hygiene.d.ts +7 -0
  477. package/dist/blog/__fixtures__/paste-hygiene.js +36 -0
  478. package/dist/blog/__fixtures__/paste-hygiene.js.map +1 -0
  479. package/dist/blog/density.d.ts +65 -0
  480. package/dist/blog/density.js +126 -0
  481. package/dist/blog/density.js.map +1 -0
  482. package/dist/blog/paste-hygiene.d.ts +3 -0
  483. package/dist/blog/paste-hygiene.js +168 -0
  484. package/dist/blog/paste-hygiene.js.map +1 -0
  485. package/dist/booking-location-label.d.ts +10 -0
  486. package/dist/booking-location-label.js +24 -0
  487. package/dist/booking-location-label.js.map +1 -0
  488. package/dist/booking-meeting-link.d.ts +48 -0
  489. package/dist/booking-meeting-link.js +40 -0
  490. package/dist/booking-meeting-link.js.map +1 -0
  491. package/dist/box-channels.d.ts +22 -0
  492. package/dist/box-channels.js +16 -0
  493. package/dist/box-channels.js.map +1 -0
  494. package/dist/box-delivery.d.ts +10 -0
  495. package/dist/box-delivery.js +5 -0
  496. package/dist/box-delivery.js.map +1 -0
  497. package/dist/box-inbox.d.ts +11 -0
  498. package/dist/box-inbox.js +5 -0
  499. package/dist/box-inbox.js.map +1 -0
  500. package/dist/box-letting.d.ts +14 -0
  501. package/dist/box-letting.js +7 -0
  502. package/dist/box-letting.js.map +1 -0
  503. package/dist/box-mark-paths.d.ts +28 -0
  504. package/dist/box-mark-paths.js +23 -0
  505. package/dist/box-mark-paths.js.map +1 -0
  506. package/dist/box-media.d.ts +9 -0
  507. package/dist/box-media.js +5 -0
  508. package/dist/box-media.js.map +1 -0
  509. package/dist/box-products.d.ts +16 -0
  510. package/dist/box-products.js +9 -0
  511. package/dist/box-products.js.map +1 -0
  512. package/dist/box-splits.d.ts +12 -0
  513. package/dist/box-splits.js +5 -0
  514. package/dist/box-splits.js.map +1 -0
  515. package/dist/brand.d.ts +26 -0
  516. package/dist/brand.js +22 -0
  517. package/dist/brand.js.map +1 -0
  518. package/dist/business-categories.d.ts +50 -0
  519. package/dist/business-categories.js +378 -0
  520. package/dist/business-categories.js.map +1 -0
  521. package/dist/business-intents.d.ts +31 -0
  522. package/dist/business-intents.js +142 -0
  523. package/dist/business-intents.js.map +1 -0
  524. package/dist/capability-context.d.ts +63 -0
  525. package/dist/capability-context.js +84 -0
  526. package/dist/capability-context.js.map +1 -0
  527. package/dist/carriers.d.ts +83 -0
  528. package/dist/carriers.js +124 -0
  529. package/dist/carriers.js.map +1 -0
  530. package/dist/commerce-build/api.d.ts +29 -0
  531. package/dist/commerce-build/api.js +152 -0
  532. package/dist/commerce-build/api.js.map +1 -0
  533. package/dist/commerce-build/contracts-profile.d.ts +83 -0
  534. package/dist/commerce-build/contracts-profile.js +1 -0
  535. package/dist/commerce-build/contracts-profile.js.map +1 -0
  536. package/dist/commerce-build/contracts-spec.d.ts +217 -0
  537. package/dist/commerce-build/contracts-spec.js +1 -0
  538. package/dist/commerce-build/contracts-spec.js.map +1 -0
  539. package/dist/commerce-build/contracts.d.ts +2 -0
  540. package/dist/commerce-build/contracts.js +1 -0
  541. package/dist/commerce-build/contracts.js.map +1 -0
  542. package/dist/commerce-build/launch-state.d.ts +20 -0
  543. package/dist/commerce-build/launch-state.js +72 -0
  544. package/dist/commerce-build/launch-state.js.map +1 -0
  545. package/dist/commerce-build/profile-utils.d.ts +5 -0
  546. package/dist/commerce-build/profile-utils.js +14 -0
  547. package/dist/commerce-build/profile-utils.js.map +1 -0
  548. package/dist/commerce-build/setup-flow.d.ts +10 -0
  549. package/dist/commerce-build/setup-flow.js +24 -0
  550. package/dist/commerce-build/setup-flow.js.map +1 -0
  551. package/dist/commerce-build/setup-session.d.ts +26 -0
  552. package/dist/commerce-build/setup-session.js +70 -0
  553. package/dist/commerce-build/setup-session.js.map +1 -0
  554. package/dist/commerce-build/turn-streaming.d.ts +21 -0
  555. package/dist/commerce-build/turn-streaming.js +113 -0
  556. package/dist/commerce-build/turn-streaming.js.map +1 -0
  557. package/dist/commerce-build/workspace-components.d.ts +23 -0
  558. package/dist/commerce-build/workspace-components.js +66 -0
  559. package/dist/commerce-build/workspace-components.js.map +1 -0
  560. package/dist/commerce-build/workspace-config.d.ts +7 -0
  561. package/dist/commerce-build/workspace-config.js +74 -0
  562. package/dist/commerce-build/workspace-config.js.map +1 -0
  563. package/dist/companion/config.d.ts +31 -0
  564. package/dist/companion/config.js +59 -0
  565. package/dist/companion/config.js.map +1 -0
  566. package/dist/connect/catalog.d.ts +32 -0
  567. package/dist/connect/catalog.js +268 -0
  568. package/dist/connect/catalog.js.map +1 -0
  569. package/dist/connect/fixtures/commands.d.ts +8 -0
  570. package/dist/connect/fixtures/commands.js +146 -0
  571. package/dist/connect/fixtures/commands.js.map +1 -0
  572. package/dist/connect/fixtures/connections.d.ts +21 -0
  573. package/dist/connect/fixtures/connections.js +370 -0
  574. package/dist/connect/fixtures/connections.js.map +1 -0
  575. package/dist/connect/fixtures/identities.d.ts +10 -0
  576. package/dist/connect/fixtures/identities.js +61 -0
  577. package/dist/connect/fixtures/identities.js.map +1 -0
  578. package/dist/connect/fixtures/index.d.ts +11 -0
  579. package/dist/connect/fixtures/index.js +11 -0
  580. package/dist/connect/fixtures/index.js.map +1 -0
  581. package/dist/connect/fixtures/usage.d.ts +2 -0
  582. package/dist/connect/fixtures/usage.js +21 -0
  583. package/dist/connect/fixtures/usage.js.map +1 -0
  584. package/dist/connect/fixtures.d.ts +1 -0
  585. package/dist/connect/fixtures.js +1 -0
  586. package/dist/connect/from-notifications.d.ts +3 -0
  587. package/dist/connect/from-notifications.js +78 -0
  588. package/dist/connect/from-notifications.js.map +1 -0
  589. package/dist/connect/identity.d.ts +67 -0
  590. package/dist/connect/identity.js +24 -0
  591. package/dist/connect/identity.js.map +1 -0
  592. package/dist/connect/index.d.ts +13 -0
  593. package/dist/connect/index.js +22 -0
  594. package/dist/connect/index.js.map +1 -0
  595. package/dist/connect/next-up.d.ts +18 -0
  596. package/dist/connect/next-up.js +45 -0
  597. package/dist/connect/next-up.js.map +1 -0
  598. package/dist/connect/types.d.ts +354 -0
  599. package/dist/connect/types.js +68 -0
  600. package/dist/connect/types.js.map +1 -0
  601. package/dist/connect/use-connect.d.ts +51 -0
  602. package/dist/connect/use-connect.js +85 -0
  603. package/dist/connect/use-connect.js.map +1 -0
  604. package/dist/connect.d.ts +1 -0
  605. package/dist/connect.js +1 -0
  606. package/dist/converted-tag.d.ts +7 -0
  607. package/dist/converted-tag.js +9 -0
  608. package/dist/converted-tag.js.map +1 -0
  609. package/dist/countries.d.ts +65 -0
  610. package/dist/countries.js +374 -0
  611. package/dist/countries.js.map +1 -0
  612. package/dist/country-regions.d.ts +12 -0
  613. package/dist/country-regions.js +36 -0
  614. package/dist/country-regions.js.map +1 -0
  615. package/dist/csv.d.ts +28 -0
  616. package/dist/csv.js +91 -0
  617. package/dist/csv.js.map +1 -0
  618. package/dist/currency.d.ts +5 -0
  619. package/dist/currency.js +25 -0
  620. package/dist/currency.js.map +1 -0
  621. package/dist/customer-helpers.d.ts +30 -0
  622. package/dist/customer-helpers.js +66 -0
  623. package/dist/customer-helpers.js.map +1 -0
  624. package/dist/customer-stage.d.ts +125 -0
  625. package/dist/customer-stage.js +113 -0
  626. package/dist/customer-stage.js.map +1 -0
  627. package/dist/dashboard-destinations.d.ts +5 -0
  628. package/dist/dashboard-destinations.js +29 -0
  629. package/dist/dashboard-destinations.js.map +1 -0
  630. package/dist/demo-content-mock.d.ts +22 -0
  631. package/dist/demo-content-mock.js +70 -0
  632. package/dist/demo-content-mock.js.map +1 -0
  633. package/dist/demo-content-poller.d.ts +33 -0
  634. package/dist/demo-content-poller.js +80 -0
  635. package/dist/demo-content-poller.js.map +1 -0
  636. package/dist/demo-content.d.ts +43 -0
  637. package/dist/demo-content.js +78 -0
  638. package/dist/demo-content.js.map +1 -0
  639. package/dist/describe-activity.d.ts +44 -0
  640. package/dist/describe-activity.js +16 -0
  641. package/dist/describe-activity.js.map +1 -0
  642. package/dist/describe-invite.d.ts +19 -0
  643. package/dist/describe-invite.js +46 -0
  644. package/dist/describe-invite.js.map +1 -0
  645. package/dist/design-schema.d.ts +76 -0
  646. package/dist/design-schema.js +47 -0
  647. package/dist/design-schema.js.map +1 -0
  648. package/dist/destination-alias.d.ts +43 -0
  649. package/dist/destination-alias.js +146 -0
  650. package/dist/destination-alias.js.map +1 -0
  651. package/dist/document-numbering.d.ts +40 -0
  652. package/dist/document-numbering.js +48 -0
  653. package/dist/document-numbering.js.map +1 -0
  654. package/dist/document-title.d.ts +22 -0
  655. package/dist/document-title.js +85 -0
  656. package/dist/document-title.js.map +1 -0
  657. package/dist/editor/row-ops.d.ts +39 -0
  658. package/dist/editor/row-ops.js +25 -0
  659. package/dist/editor/row-ops.js.map +1 -0
  660. package/dist/editor-agent/apply-proposal.d.ts +12 -0
  661. package/dist/editor-agent/apply-proposal.js +44 -0
  662. package/dist/editor-agent/apply-proposal.js.map +1 -0
  663. package/dist/editor-agent/contracts.d.ts +174 -0
  664. package/dist/editor-agent/contracts.js +1 -0
  665. package/dist/editor-agent/contracts.js.map +1 -0
  666. package/dist/editor-agent/converse.d.ts +34 -0
  667. package/dist/editor-agent/converse.js +141 -0
  668. package/dist/editor-agent/converse.js.map +1 -0
  669. package/dist/editor-agent/flag.d.ts +12 -0
  670. package/dist/editor-agent/flag.js +19 -0
  671. package/dist/editor-agent/flag.js.map +1 -0
  672. package/dist/editor-agent/template-document.d.ts +52 -0
  673. package/dist/editor-agent/template-document.js +50 -0
  674. package/dist/editor-agent/template-document.js.map +1 -0
  675. package/dist/editor-agent/use-converse.d.ts +30 -0
  676. package/dist/editor-agent/use-converse.js +130 -0
  677. package/dist/editor-agent/use-converse.js.map +1 -0
  678. package/dist/effective-module-labels.d.ts +17 -0
  679. package/dist/effective-module-labels.js +14 -0
  680. package/dist/effective-module-labels.js.map +1 -0
  681. package/dist/embedded-frame.d.ts +30 -0
  682. package/dist/embedded-frame.js +23 -0
  683. package/dist/embedded-frame.js.map +1 -0
  684. package/dist/empty-state-copy.d.ts +27 -0
  685. package/dist/empty-state-copy.js +167 -0
  686. package/dist/empty-state-copy.js.map +1 -0
  687. package/dist/end-session.d.ts +23 -0
  688. package/dist/end-session.js +30 -0
  689. package/dist/end-session.js.map +1 -0
  690. package/dist/file-intake.d.ts +65 -0
  691. package/dist/file-intake.js +162 -0
  692. package/dist/file-intake.js.map +1 -0
  693. package/dist/first-run.d.ts +5 -0
  694. package/dist/first-run.js +13 -0
  695. package/dist/first-run.js.map +1 -0
  696. package/dist/form-answers.d.ts +57 -0
  697. package/dist/form-answers.js +79 -0
  698. package/dist/form-answers.js.map +1 -0
  699. package/dist/form-draft.d.ts +30 -0
  700. package/dist/form-draft.js +73 -0
  701. package/dist/form-draft.js.map +1 -0
  702. package/dist/format.d.ts +29 -0
  703. package/dist/format.js +21 -0
  704. package/dist/format.js.map +1 -0
  705. package/dist/fulfilment-nav.d.ts +79 -0
  706. package/dist/fulfilment-nav.js +18 -0
  707. package/dist/fulfilment-nav.js.map +1 -0
  708. package/dist/go-live-gate.d.ts +55 -0
  709. package/dist/go-live-gate.js +17 -0
  710. package/dist/go-live-gate.js.map +1 -0
  711. package/dist/group-activity.d.ts +37 -0
  712. package/dist/group-activity.js +43 -0
  713. package/dist/group-activity.js.map +1 -0
  714. package/dist/haptic.d.ts +5 -0
  715. package/dist/haptic.js +16 -0
  716. package/dist/haptic.js.map +1 -0
  717. package/dist/help-topics.d.ts +77 -0
  718. package/dist/help-topics.js +308 -0
  719. package/dist/help-topics.js.map +1 -0
  720. package/dist/icon-resolver.d.ts +45 -0
  721. package/dist/icon-resolver.js +40 -0
  722. package/dist/icon-resolver.js.map +1 -0
  723. package/dist/icons/commerce.d.ts +9 -0
  724. package/dist/icons/commerce.js +168 -0
  725. package/dist/icons/commerce.js.map +1 -0
  726. package/dist/icons/core.d.ts +9 -0
  727. package/dist/icons/core.js +173 -0
  728. package/dist/icons/core.js.map +1 -0
  729. package/dist/icons/making.d.ts +9 -0
  730. package/dist/icons/making.js +209 -0
  731. package/dist/icons/making.js.map +1 -0
  732. package/dist/icons/places.d.ts +9 -0
  733. package/dist/icons/places.js +232 -0
  734. package/dist/icons/places.js.map +1 -0
  735. package/dist/icons/world.d.ts +9 -0
  736. package/dist/icons/world.js +87 -0
  737. package/dist/icons/world.js.map +1 -0
  738. package/dist/index.d.ts +9 -0
  739. package/dist/index.js +2 -0
  740. package/dist/index.js.map +1 -0
  741. package/dist/industry-configs/beauty.d.ts +2 -0
  742. package/dist/industry-configs/beauty.js +152 -0
  743. package/dist/industry-configs/beauty.js.map +1 -0
  744. package/dist/industry-configs/creative.d.ts +2 -0
  745. package/dist/industry-configs/creative.js +131 -0
  746. package/dist/industry-configs/creative.js.map +1 -0
  747. package/dist/industry-configs/default.d.ts +2 -0
  748. package/dist/industry-configs/default.js +77 -0
  749. package/dist/industry-configs/default.js.map +1 -0
  750. package/dist/industry-configs/education.d.ts +2 -0
  751. package/dist/industry-configs/education.js +137 -0
  752. package/dist/industry-configs/education.js.map +1 -0
  753. package/dist/industry-configs/events.d.ts +2 -0
  754. package/dist/industry-configs/events.js +118 -0
  755. package/dist/industry-configs/events.js.map +1 -0
  756. package/dist/industry-configs/fashion.d.ts +2 -0
  757. package/dist/industry-configs/fashion.js +128 -0
  758. package/dist/industry-configs/fashion.js.map +1 -0
  759. package/dist/industry-configs/fitness.d.ts +2 -0
  760. package/dist/industry-configs/fitness.js +128 -0
  761. package/dist/industry-configs/fitness.js.map +1 -0
  762. package/dist/industry-configs/food.d.ts +2 -0
  763. package/dist/industry-configs/food.js +138 -0
  764. package/dist/industry-configs/food.js.map +1 -0
  765. package/dist/industry-configs/hospitality.d.ts +2 -0
  766. package/dist/industry-configs/hospitality.js +157 -0
  767. package/dist/industry-configs/hospitality.js.map +1 -0
  768. package/dist/industry-configs/index.d.ts +25 -0
  769. package/dist/industry-configs/index.js +77 -0
  770. package/dist/industry-configs/index.js.map +1 -0
  771. package/dist/industry-configs/professional.d.ts +2 -0
  772. package/dist/industry-configs/professional.js +129 -0
  773. package/dist/industry-configs/professional.js.map +1 -0
  774. package/dist/industry-configs/realestate.d.ts +2 -0
  775. package/dist/industry-configs/realestate.js +146 -0
  776. package/dist/industry-configs/realestate.js.map +1 -0
  777. package/dist/industry-configs/retail.d.ts +2 -0
  778. package/dist/industry-configs/retail.js +108 -0
  779. package/dist/industry-configs/retail.js.map +1 -0
  780. package/dist/industry-configs/services.d.ts +2 -0
  781. package/dist/industry-configs/services.js +120 -0
  782. package/dist/industry-configs/services.js.map +1 -0
  783. package/dist/industry-configs/technology.d.ts +2 -0
  784. package/dist/industry-configs/technology.js +120 -0
  785. package/dist/industry-configs/technology.js.map +1 -0
  786. package/dist/industry-configs/types.d.ts +99 -0
  787. package/dist/industry-configs/types.js +1 -0
  788. package/dist/industry-configs/types.js.map +1 -0
  789. package/dist/industry-configs/wellness.d.ts +2 -0
  790. package/dist/industry-configs/wellness.js +112 -0
  791. package/dist/industry-configs/wellness.js.map +1 -0
  792. package/dist/industry-configs.d.ts +1 -0
  793. package/dist/industry-configs.js +1 -0
  794. package/dist/intents/analytics-labels.d.ts +70 -0
  795. package/dist/intents/analytics-labels.js +39 -0
  796. package/dist/intents/analytics-labels.js.map +1 -0
  797. package/dist/intents/archetype-flow.d.ts +146 -0
  798. package/dist/intents/archetype-flow.js +185 -0
  799. package/dist/intents/archetype-flow.js.map +1 -0
  800. package/dist/intents/booking-query-style.d.ts +32 -0
  801. package/dist/intents/booking-query-style.js +22 -0
  802. package/dist/intents/booking-query-style.js.map +1 -0
  803. package/dist/intents/capture-leads.config.d.ts +31 -0
  804. package/dist/intents/capture-leads.config.js +231 -0
  805. package/dist/intents/capture-leads.config.js.map +1 -0
  806. package/dist/intents/catalog-stock.d.ts +43 -0
  807. package/dist/intents/catalog-stock.js +43 -0
  808. package/dist/intents/catalog-stock.js.map +1 -0
  809. package/dist/intents/collapse-shared-nav.d.ts +95 -0
  810. package/dist/intents/collapse-shared-nav.js +171 -0
  811. package/dist/intents/collapse-shared-nav.js.map +1 -0
  812. package/dist/intents/default-commerce.config.d.ts +6 -0
  813. package/dist/intents/default-commerce.config.js +281 -0
  814. package/dist/intents/default-commerce.config.js.map +1 -0
  815. package/dist/intents/digital-products.config.d.ts +2 -0
  816. package/dist/intents/digital-products.config.js +239 -0
  817. package/dist/intents/digital-products.config.js.map +1 -0
  818. package/dist/intents/dine-in.config.d.ts +15 -0
  819. package/dist/intents/dine-in.config.js +331 -0
  820. package/dist/intents/dine-in.config.js.map +1 -0
  821. package/dist/intents/event-tickets.config.d.ts +2 -0
  822. package/dist/intents/event-tickets.config.js +368 -0
  823. package/dist/intents/event-tickets.config.js.map +1 -0
  824. package/dist/intents/food-orders.config.d.ts +2 -0
  825. package/dist/intents/food-orders.config.js +299 -0
  826. package/dist/intents/food-orders.config.js.map +1 -0
  827. package/dist/intents/icon-map.d.ts +15 -0
  828. package/dist/intents/icon-map.js +104 -0
  829. package/dist/intents/icon-map.js.map +1 -0
  830. package/dist/intents/index.d.ts +12 -0
  831. package/dist/intents/index.js +50 -0
  832. package/dist/intents/index.js.map +1 -0
  833. package/dist/intents/infer-intents.d.ts +10 -0
  834. package/dist/intents/infer-intents.js +23 -0
  835. package/dist/intents/infer-intents.js.map +1 -0
  836. package/dist/intents/intent-chips.d.ts +47 -0
  837. package/dist/intents/intent-chips.js +38 -0
  838. package/dist/intents/intent-chips.js.map +1 -0
  839. package/dist/intents/intent-nav.d.ts +95 -0
  840. package/dist/intents/intent-nav.js +423 -0
  841. package/dist/intents/intent-nav.js.map +1 -0
  842. package/dist/intents/intent-scope.d.ts +52 -0
  843. package/dist/intents/intent-scope.js +19 -0
  844. package/dist/intents/intent-scope.js.map +1 -0
  845. package/dist/intents/nav-coverage.d.ts +71 -0
  846. package/dist/intents/nav-coverage.js +132 -0
  847. package/dist/intents/nav-coverage.js.map +1 -0
  848. package/dist/intents/operating-shell.d.ts +45 -0
  849. package/dist/intents/operating-shell.js +142 -0
  850. package/dist/intents/operating-shell.js.map +1 -0
  851. package/dist/intents/order-display.d.ts +21 -0
  852. package/dist/intents/order-display.js +110 -0
  853. package/dist/intents/order-display.js.map +1 -0
  854. package/dist/intents/order-intent.d.ts +18 -0
  855. package/dist/intents/order-intent.js +14 -0
  856. package/dist/intents/order-intent.js.map +1 -0
  857. package/dist/intents/order-progress.d.ts +81 -0
  858. package/dist/intents/order-progress.js +91 -0
  859. package/dist/intents/order-progress.js.map +1 -0
  860. package/dist/intents/order-sections.d.ts +173 -0
  861. package/dist/intents/order-sections.js +188 -0
  862. package/dist/intents/order-sections.js.map +1 -0
  863. package/dist/intents/order-stats.d.ts +24 -0
  864. package/dist/intents/order-stats.js +16 -0
  865. package/dist/intents/order-stats.js.map +1 -0
  866. package/dist/intents/order-transitions.d.ts +19 -0
  867. package/dist/intents/order-transitions.js +66 -0
  868. package/dist/intents/order-transitions.js.map +1 -0
  869. package/dist/intents/product-editor-config.d.ts +23 -0
  870. package/dist/intents/product-editor-config.js +13 -0
  871. package/dist/intents/product-editor-config.js.map +1 -0
  872. package/dist/intents/product-intent.d.ts +38 -0
  873. package/dist/intents/product-intent.js +19 -0
  874. package/dist/intents/product-intent.js.map +1 -0
  875. package/dist/intents/registry.d.ts +32 -0
  876. package/dist/intents/registry.js +41 -0
  877. package/dist/intents/registry.js.map +1 -0
  878. package/dist/intents/rent-property.config.d.ts +2 -0
  879. package/dist/intents/rent-property.config.js +284 -0
  880. package/dist/intents/rent-property.config.js.map +1 -0
  881. package/dist/intents/resolve-stats.d.ts +7 -0
  882. package/dist/intents/resolve-stats.js +29 -0
  883. package/dist/intents/resolve-stats.js.map +1 -0
  884. package/dist/intents/resolve-tenant-intents.d.ts +11 -0
  885. package/dist/intents/resolve-tenant-intents.js +61 -0
  886. package/dist/intents/resolve-tenant-intents.js.map +1 -0
  887. package/dist/intents/resolvers.d.ts +52 -0
  888. package/dist/intents/resolvers.js +177 -0
  889. package/dist/intents/resolvers.js.map +1 -0
  890. package/dist/intents/row-identity.d.ts +62 -0
  891. package/dist/intents/row-identity.js +25 -0
  892. package/dist/intents/row-identity.js.map +1 -0
  893. package/dist/intents/sales-verb.d.ts +8 -0
  894. package/dist/intents/sales-verb.js +12 -0
  895. package/dist/intents/sales-verb.js.map +1 -0
  896. package/dist/intents/scoped-config.d.ts +12 -0
  897. package/dist/intents/scoped-config.js +17 -0
  898. package/dist/intents/scoped-config.js.map +1 -0
  899. package/dist/intents/screen-title.d.ts +27 -0
  900. package/dist/intents/screen-title.js +59 -0
  901. package/dist/intents/screen-title.js.map +1 -0
  902. package/dist/intents/section-registry.d.ts +48 -0
  903. package/dist/intents/section-registry.js +33 -0
  904. package/dist/intents/section-registry.js.map +1 -0
  905. package/dist/intents/sell-products.config.d.ts +2 -0
  906. package/dist/intents/sell-products.config.js +275 -0
  907. package/dist/intents/sell-products.config.js.map +1 -0
  908. package/dist/intents/send-invoices.config.d.ts +16 -0
  909. package/dist/intents/send-invoices.config.js +223 -0
  910. package/dist/intents/send-invoices.config.js.map +1 -0
  911. package/dist/intents/subscriptions.config.d.ts +2 -0
  912. package/dist/intents/subscriptions.config.js +260 -0
  913. package/dist/intents/subscriptions.config.js.map +1 -0
  914. package/dist/intents/take-bookings.config.d.ts +2 -0
  915. package/dist/intents/take-bookings.config.js +298 -0
  916. package/dist/intents/take-bookings.config.js.map +1 -0
  917. package/dist/intents/types.d.ts +246 -0
  918. package/dist/intents/types.js +1 -0
  919. package/dist/intents/types.js.map +1 -0
  920. package/dist/intents/use-active-intent.d.ts +27 -0
  921. package/dist/intents/use-active-intent.js +74 -0
  922. package/dist/intents/use-active-intent.js.map +1 -0
  923. package/dist/intents/use-destination-label.d.ts +18 -0
  924. package/dist/intents/use-destination-label.js +45 -0
  925. package/dist/intents/use-destination-label.js.map +1 -0
  926. package/dist/intents/use-entity-label.d.ts +32 -0
  927. package/dist/intents/use-entity-label.js +75 -0
  928. package/dist/intents/use-entity-label.js.map +1 -0
  929. package/dist/intents/use-intent-config.d.ts +20 -0
  930. package/dist/intents/use-intent-config.js +91 -0
  931. package/dist/intents/use-intent-config.js.map +1 -0
  932. package/dist/intents/use-intent-nav-rows.d.ts +26 -0
  933. package/dist/intents/use-intent-nav-rows.js +49 -0
  934. package/dist/intents/use-intent-nav-rows.js.map +1 -0
  935. package/dist/intents/use-resource-label.d.ts +10 -0
  936. package/dist/intents/use-resource-label.js +9 -0
  937. package/dist/intents/use-resource-label.js.map +1 -0
  938. package/dist/intents/use-row-noun.d.ts +19 -0
  939. package/dist/intents/use-row-noun.js +13 -0
  940. package/dist/intents/use-row-noun.js.map +1 -0
  941. package/dist/intents/use-screen-title.d.ts +9 -0
  942. package/dist/intents/use-screen-title.js +25 -0
  943. package/dist/intents/use-screen-title.js.map +1 -0
  944. package/dist/intents/what-it-adds.d.ts +70 -0
  945. package/dist/intents/what-it-adds.js +29 -0
  946. package/dist/intents/what-it-adds.js.map +1 -0
  947. package/dist/intents/workflow-shape.d.ts +66 -0
  948. package/dist/intents/workflow-shape.js +151 -0
  949. package/dist/intents/workflow-shape.js.map +1 -0
  950. package/dist/intents.d.ts +1 -0
  951. package/dist/intents.js +1 -0
  952. package/dist/invite-refusal.d.ts +37 -0
  953. package/dist/invite-refusal.js +26 -0
  954. package/dist/invite-refusal.js.map +1 -0
  955. package/dist/invoice-brand.d.ts +28 -0
  956. package/dist/invoice-brand.js +33 -0
  957. package/dist/invoice-brand.js.map +1 -0
  958. package/dist/ios-navigation-context.d.ts +11 -0
  959. package/dist/ios-navigation-context.js +52 -0
  960. package/dist/ios-navigation-context.js.map +1 -0
  961. package/dist/legal-links.d.ts +10 -0
  962. package/dist/legal-links.js +7 -0
  963. package/dist/legal-links.js.map +1 -0
  964. package/dist/letting-policy.d.ts +85 -0
  965. package/dist/letting-policy.js +47 -0
  966. package/dist/letting-policy.js.map +1 -0
  967. package/dist/list-page-size.d.ts +24 -0
  968. package/dist/list-page-size.js +5 -0
  969. package/dist/list-page-size.js.map +1 -0
  970. package/dist/live-events/sse-frames.d.ts +15 -0
  971. package/dist/live-events/sse-frames.js +37 -0
  972. package/dist/live-events/sse-frames.js.map +1 -0
  973. package/dist/location-options.d.ts +16 -0
  974. package/dist/location-options.js +94 -0
  975. package/dist/location-options.js.map +1 -0
  976. package/dist/location-scope-context.d.ts +47 -0
  977. package/dist/location-scope-context.js +85 -0
  978. package/dist/location-scope-context.js.map +1 -0
  979. package/dist/media-service.d.ts +97 -0
  980. package/dist/media-service.js +282 -0
  981. package/dist/media-service.js.map +1 -0
  982. package/dist/media-utils.d.ts +51 -0
  983. package/dist/media-utils.js +85 -0
  984. package/dist/media-utils.js.map +1 -0
  985. package/dist/member-presence.d.ts +40 -0
  986. package/dist/member-presence.js +77 -0
  987. package/dist/member-presence.js.map +1 -0
  988. package/dist/member-subscription-enrollment.d.ts +16 -0
  989. package/dist/member-subscription-enrollment.js +32 -0
  990. package/dist/member-subscription-enrollment.js.map +1 -0
  991. package/dist/membership-freshness.d.ts +31 -0
  992. package/dist/membership-freshness.js +21 -0
  993. package/dist/membership-freshness.js.map +1 -0
  994. package/dist/mobile-header-context.d.ts +32 -0
  995. package/dist/mobile-header-context.js +59 -0
  996. package/dist/mobile-header-context.js.map +1 -0
  997. package/dist/mobile-routes.d.ts +81 -0
  998. package/dist/mobile-routes.js +406 -0
  999. package/dist/mobile-routes.js.map +1 -0
  1000. package/dist/mobile-tab-config.d.ts +18 -0
  1001. package/dist/mobile-tab-config.js +43 -0
  1002. package/dist/mobile-tab-config.js.map +1 -0
  1003. package/dist/money-coming-soon.d.ts +16 -0
  1004. package/dist/money-coming-soon.js +22 -0
  1005. package/dist/money-coming-soon.js.map +1 -0
  1006. package/dist/money-minor.d.ts +17 -0
  1007. package/dist/money-minor.js +53 -0
  1008. package/dist/money-minor.js.map +1 -0
  1009. package/dist/money-visibility.d.ts +38 -0
  1010. package/dist/money-visibility.js +13 -0
  1011. package/dist/money-visibility.js.map +1 -0
  1012. package/dist/motion.d.ts +160 -0
  1013. package/dist/motion.js +130 -0
  1014. package/dist/motion.js.map +1 -0
  1015. package/dist/nav-pending.d.ts +42 -0
  1016. package/dist/nav-pending.js +84 -0
  1017. package/dist/nav-pending.js.map +1 -0
  1018. package/dist/navigation-groups.d.ts +52 -0
  1019. package/dist/navigation-groups.js +64 -0
  1020. package/dist/navigation-groups.js.map +1 -0
  1021. package/dist/onboarding-draft.d.ts +23 -0
  1022. package/dist/onboarding-draft.js +35 -0
  1023. package/dist/onboarding-draft.js.map +1 -0
  1024. package/dist/operating-model/index.d.ts +4 -0
  1025. package/dist/operating-model/index.js +13 -0
  1026. package/dist/operating-model/index.js.map +1 -0
  1027. package/dist/operating-model/order-display.d.ts +10 -0
  1028. package/dist/operating-model/order-display.js +24 -0
  1029. package/dist/operating-model/order-display.js.map +1 -0
  1030. package/dist/operating-model/resolver.d.ts +9 -0
  1031. package/dist/operating-model/resolver.js +110 -0
  1032. package/dist/operating-model/resolver.js.map +1 -0
  1033. package/dist/operating-model/types.d.ts +36 -0
  1034. package/dist/operating-model/types.js +1 -0
  1035. package/dist/operating-model/types.js.map +1 -0
  1036. package/dist/operating-model/use-operating-model.d.ts +7 -0
  1037. package/dist/operating-model/use-operating-model.js +65 -0
  1038. package/dist/operating-model/use-operating-model.js.map +1 -0
  1039. package/dist/operating-model.d.ts +1 -0
  1040. package/dist/operating-model.js +1 -0
  1041. package/dist/order-config.d.ts +30 -0
  1042. package/dist/order-config.js +56 -0
  1043. package/dist/order-config.js.map +1 -0
  1044. package/dist/order-discounts.d.ts +25 -0
  1045. package/dist/order-discounts.js +27 -0
  1046. package/dist/order-discounts.js.map +1 -0
  1047. package/dist/order-shipping.d.ts +33 -0
  1048. package/dist/order-shipping.js +49 -0
  1049. package/dist/order-shipping.js.map +1 -0
  1050. package/dist/order-tax.d.ts +28 -0
  1051. package/dist/order-tax.js +21 -0
  1052. package/dist/order-tax.js.map +1 -0
  1053. package/dist/page-intros.d.ts +78 -0
  1054. package/dist/page-intros.js +164 -0
  1055. package/dist/page-intros.js.map +1 -0
  1056. package/dist/page-transition.d.ts +20 -0
  1057. package/dist/page-transition.js +19 -0
  1058. package/dist/page-transition.js.map +1 -0
  1059. package/dist/pages-api-response.d.ts +8 -0
  1060. package/dist/pages-api-response.js +18 -0
  1061. package/dist/pages-api-response.js.map +1 -0
  1062. package/dist/payment-method-label.d.ts +6 -0
  1063. package/dist/payment-method-label.js +14 -0
  1064. package/dist/payment-method-label.js.map +1 -0
  1065. package/dist/permission-aliases.d.ts +18 -0
  1066. package/dist/permission-aliases.js +20 -0
  1067. package/dist/permission-aliases.js.map +1 -0
  1068. package/dist/permission-catalog-fallback.d.ts +17 -0
  1069. package/dist/permission-catalog-fallback.js +147 -0
  1070. package/dist/permission-catalog-fallback.js.map +1 -0
  1071. package/dist/permission-change.d.ts +42 -0
  1072. package/dist/permission-change.js +33 -0
  1073. package/dist/permission-change.js.map +1 -0
  1074. package/dist/phone.d.ts +16 -0
  1075. package/dist/phone.js +20 -0
  1076. package/dist/phone.js.map +1 -0
  1077. package/dist/plan-access.d.ts +39 -0
  1078. package/dist/plan-access.js +57 -0
  1079. package/dist/plan-access.js.map +1 -0
  1080. package/dist/plan-card-api.d.ts +34 -0
  1081. package/dist/plan-card-api.js +30 -0
  1082. package/dist/plan-card-api.js.map +1 -0
  1083. package/dist/plan-price.d.ts +34 -0
  1084. package/dist/plan-price.js +57 -0
  1085. package/dist/plan-price.js.map +1 -0
  1086. package/dist/post-login-target.d.ts +24 -0
  1087. package/dist/post-login-target.js +12 -0
  1088. package/dist/post-login-target.js.map +1 -0
  1089. package/dist/potter-mark-paths.d.ts +21 -0
  1090. package/dist/potter-mark-paths.js +9 -0
  1091. package/dist/potter-mark-paths.js.map +1 -0
  1092. package/dist/pricing-plans-types.d.ts +143 -0
  1093. package/dist/pricing-plans-types.js +1 -0
  1094. package/dist/pricing-plans-types.js.map +1 -0
  1095. package/dist/product-assignees.d.ts +1 -0
  1096. package/dist/product-assignees.js +18 -0
  1097. package/dist/product-assignees.js.map +1 -0
  1098. package/dist/product-collection-sync.d.ts +12 -0
  1099. package/dist/product-collection-sync.js +97 -0
  1100. package/dist/product-collection-sync.js.map +1 -0
  1101. package/dist/product-cost.d.ts +12 -0
  1102. package/dist/product-cost.js +24 -0
  1103. package/dist/product-cost.js.map +1 -0
  1104. package/dist/product-insights-api.d.ts +38 -0
  1105. package/dist/product-insights-api.js +51 -0
  1106. package/dist/product-insights-api.js.map +1 -0
  1107. package/dist/product-types.d.ts +311 -0
  1108. package/dist/product-types.js +38 -0
  1109. package/dist/product-types.js.map +1 -0
  1110. package/dist/promised-day.d.ts +33 -0
  1111. package/dist/promised-day.js +38 -0
  1112. package/dist/promised-day.js.map +1 -0
  1113. package/dist/proposals-api.d.ts +96 -0
  1114. package/dist/proposals-api.js +41 -0
  1115. package/dist/proposals-api.js.map +1 -0
  1116. package/dist/proxy-allowlist.d.ts +15 -0
  1117. package/dist/proxy-allowlist.js +153 -0
  1118. package/dist/proxy-allowlist.js.map +1 -0
  1119. package/dist/public-config-loader.d.ts +27 -0
  1120. package/dist/public-config-loader.js +12 -0
  1121. package/dist/public-config-loader.js.map +1 -0
  1122. package/dist/public-config-provider.d.ts +16 -0
  1123. package/dist/public-config-provider.js +14 -0
  1124. package/dist/public-config-provider.js.map +1 -0
  1125. package/dist/resolve-enabled-behaviors.d.ts +55 -0
  1126. package/dist/resolve-enabled-behaviors.js +134 -0
  1127. package/dist/resolve-enabled-behaviors.js.map +1 -0
  1128. package/dist/resource-types.d.ts +198 -0
  1129. package/dist/resource-types.js +96 -0
  1130. package/dist/resource-types.js.map +1 -0
  1131. package/dist/resume-screen.d.ts +31 -0
  1132. package/dist/resume-screen.js +25 -0
  1133. package/dist/resume-screen.js.map +1 -0
  1134. package/dist/rider-display.d.ts +37 -0
  1135. package/dist/rider-display.js +110 -0
  1136. package/dist/rider-display.js.map +1 -0
  1137. package/dist/rider-view.d.ts +37 -0
  1138. package/dist/rider-view.js +47 -0
  1139. package/dist/rider-view.js.map +1 -0
  1140. package/dist/roster-label.d.ts +27 -0
  1141. package/dist/roster-label.js +8 -0
  1142. package/dist/roster-label.js.map +1 -0
  1143. package/dist/route-pattern.d.ts +11 -0
  1144. package/dist/route-pattern.js +20 -0
  1145. package/dist/route-pattern.js.map +1 -0
  1146. package/dist/route-permission.d.ts +60 -0
  1147. package/dist/route-permission.js +48 -0
  1148. package/dist/route-permission.js.map +1 -0
  1149. package/dist/runtime-config.d.ts +33 -0
  1150. package/dist/runtime-config.js +23 -0
  1151. package/dist/runtime-config.js.map +1 -0
  1152. package/dist/schema-validation.d.ts +172 -0
  1153. package/dist/schema-validation.js +252 -0
  1154. package/dist/schema-validation.js.map +1 -0
  1155. package/dist/service-areas.d.ts +30 -0
  1156. package/dist/service-areas.js +24 -0
  1157. package/dist/service-areas.js.map +1 -0
  1158. package/dist/service-operations-api.d.ts +78 -0
  1159. package/dist/service-operations-api.js +37 -0
  1160. package/dist/service-operations-api.js.map +1 -0
  1161. package/dist/settings-relevance.d.ts +64 -0
  1162. package/dist/settings-relevance.js +25 -0
  1163. package/dist/settings-relevance.js.map +1 -0
  1164. package/dist/singularise.d.ts +16 -0
  1165. package/dist/singularise.js +37 -0
  1166. package/dist/singularise.js.map +1 -0
  1167. package/dist/site-address.d.ts +14 -0
  1168. package/dist/site-address.js +28 -0
  1169. package/dist/site-address.js.map +1 -0
  1170. package/dist/slug.d.ts +26 -0
  1171. package/dist/slug.js +15 -0
  1172. package/dist/slug.js.map +1 -0
  1173. package/dist/sound.d.ts +14 -0
  1174. package/dist/sound.js +166 -0
  1175. package/dist/sound.js.map +1 -0
  1176. package/dist/staff-arrival.d.ts +3 -0
  1177. package/dist/staff-arrival.js +11 -0
  1178. package/dist/staff-arrival.js.map +1 -0
  1179. package/dist/staff-home.d.ts +58 -0
  1180. package/dist/staff-home.js +90 -0
  1181. package/dist/staff-home.js.map +1 -0
  1182. package/dist/staff-landing.d.ts +1 -0
  1183. package/dist/staff-landing.js +15 -0
  1184. package/dist/staff-landing.js.map +1 -0
  1185. package/dist/stat-card-types.d.ts +19 -0
  1186. package/dist/stat-card-types.js +1 -0
  1187. package/dist/stat-card-types.js.map +1 -0
  1188. package/dist/stock-levels.d.ts +32 -0
  1189. package/dist/stock-levels.js +17 -0
  1190. package/dist/stock-levels.js.map +1 -0
  1191. package/dist/stored-token.d.ts +1 -0
  1192. package/dist/stored-token.js +11 -0
  1193. package/dist/stored-token.js.map +1 -0
  1194. package/dist/storefront-url.d.ts +31 -0
  1195. package/dist/storefront-url.js +40 -0
  1196. package/dist/storefront-url.js.map +1 -0
  1197. package/dist/storefront.d.ts +64 -0
  1198. package/dist/storefront.js +51 -0
  1199. package/dist/storefront.js.map +1 -0
  1200. package/dist/subscription-billing-api.d.ts +115 -0
  1201. package/dist/subscription-billing-api.js +27 -0
  1202. package/dist/subscription-billing-api.js.map +1 -0
  1203. package/dist/subscription-billing-model.d.ts +26 -0
  1204. package/dist/subscription-billing-model.js +58 -0
  1205. package/dist/subscription-billing-model.js.map +1 -0
  1206. package/dist/support-case-subject.d.ts +10 -0
  1207. package/dist/support-case-subject.js +13 -0
  1208. package/dist/support-case-subject.js.map +1 -0
  1209. package/dist/support-inbox.d.ts +6 -0
  1210. package/dist/support-inbox.js +5 -0
  1211. package/dist/support-inbox.js.map +1 -0
  1212. package/dist/support.d.ts +7 -0
  1213. package/dist/support.js +16 -0
  1214. package/dist/support.js.map +1 -0
  1215. package/dist/team-page.d.ts +9 -0
  1216. package/dist/team-page.js +5 -0
  1217. package/dist/team-page.js.map +1 -0
  1218. package/dist/team-roles.d.ts +140 -0
  1219. package/dist/team-roles.js +247 -0
  1220. package/dist/team-roles.js.map +1 -0
  1221. package/dist/team-successors.d.ts +20 -0
  1222. package/dist/team-successors.js +13 -0
  1223. package/dist/team-successors.js.map +1 -0
  1224. package/dist/template-asset-url.d.ts +11 -0
  1225. package/dist/template-asset-url.js +8 -0
  1226. package/dist/template-asset-url.js.map +1 -0
  1227. package/dist/template-capabilities.d.ts +2 -0
  1228. package/dist/template-capabilities.js +71 -0
  1229. package/dist/template-capabilities.js.map +1 -0
  1230. package/dist/template-context.d.ts +111 -0
  1231. package/dist/template-context.js +1278 -0
  1232. package/dist/template-context.js.map +1 -0
  1233. package/dist/template-filter.d.ts +29 -0
  1234. package/dist/template-filter.js +41 -0
  1235. package/dist/template-filter.js.map +1 -0
  1236. package/dist/template-preview/preview-author-patch.d.ts +24 -0
  1237. package/dist/template-preview/preview-author-patch.js +78 -0
  1238. package/dist/template-preview/preview-author-patch.js.map +1 -0
  1239. package/dist/template-preview/use-template-document.d.ts +38 -0
  1240. package/dist/template-preview/use-template-document.js +45 -0
  1241. package/dist/template-preview/use-template-document.js.map +1 -0
  1242. package/dist/template-requirements.d.ts +38 -0
  1243. package/dist/template-requirements.js +13 -0
  1244. package/dist/template-requirements.js.map +1 -0
  1245. package/dist/template-types.d.ts +317 -0
  1246. package/dist/template-types.js +1 -0
  1247. package/dist/template-types.js.map +1 -0
  1248. package/dist/templates.d.ts +22 -0
  1249. package/dist/templates.js +1 -0
  1250. package/dist/templates.js.map +1 -0
  1251. package/dist/theme-context.d.ts +58 -0
  1252. package/dist/theme-context.js +283 -0
  1253. package/dist/theme-context.js.map +1 -0
  1254. package/dist/theme-policy.d.ts +41 -0
  1255. package/dist/theme-policy.js +32 -0
  1256. package/dist/theme-policy.js.map +1 -0
  1257. package/dist/ticket-access.d.ts +20 -0
  1258. package/dist/ticket-access.js +39 -0
  1259. package/dist/ticket-access.js.map +1 -0
  1260. package/dist/timeline-copy.d.ts +65 -0
  1261. package/dist/timeline-copy.js +150 -0
  1262. package/dist/timeline-copy.js.map +1 -0
  1263. package/dist/url-params.d.ts +23 -0
  1264. package/dist/url-params.js +43 -0
  1265. package/dist/url-params.js.map +1 -0
  1266. package/dist/use-behaviors.d.ts +13 -0
  1267. package/dist/use-behaviors.js +41 -0
  1268. package/dist/use-behaviors.js.map +1 -0
  1269. package/dist/use-business-locations.d.ts +35 -0
  1270. package/dist/use-business-locations.js +71 -0
  1271. package/dist/use-business-locations.js.map +1 -0
  1272. package/dist/use-currency.d.ts +12 -0
  1273. package/dist/use-currency.js +16 -0
  1274. package/dist/use-currency.js.map +1 -0
  1275. package/dist/use-empty-state-copy.d.ts +12 -0
  1276. package/dist/use-empty-state-copy.js +13 -0
  1277. package/dist/use-empty-state-copy.js.map +1 -0
  1278. package/dist/use-geo-cities.d.ts +1 -0
  1279. package/dist/use-geo-cities.js +42 -0
  1280. package/dist/use-geo-cities.js.map +1 -0
  1281. package/dist/use-has-hardware.d.ts +13 -0
  1282. package/dist/use-has-hardware.js +14 -0
  1283. package/dist/use-has-hardware.js.map +1 -0
  1284. package/dist/use-industry-key.d.ts +10 -0
  1285. package/dist/use-industry-key.js +16 -0
  1286. package/dist/use-industry-key.js.map +1 -0
  1287. package/dist/use-item-links.d.ts +20 -0
  1288. package/dist/use-item-links.js +30 -0
  1289. package/dist/use-item-links.js.map +1 -0
  1290. package/dist/use-job-roles.d.ts +21 -0
  1291. package/dist/use-job-roles.js +76 -0
  1292. package/dist/use-job-roles.js.map +1 -0
  1293. package/dist/use-merchant-plan.d.ts +36 -0
  1294. package/dist/use-merchant-plan.js +78 -0
  1295. package/dist/use-merchant-plan.js.map +1 -0
  1296. package/dist/use-module-label.d.ts +12 -0
  1297. package/dist/use-module-label.js +13 -0
  1298. package/dist/use-module-label.js.map +1 -0
  1299. package/dist/use-money-visibility.d.ts +14 -0
  1300. package/dist/use-money-visibility.js +13 -0
  1301. package/dist/use-money-visibility.js.map +1 -0
  1302. package/dist/use-nav-groups.d.ts +27 -0
  1303. package/dist/use-nav-groups.js +141 -0
  1304. package/dist/use-nav-groups.js.map +1 -0
  1305. package/dist/use-pathname.d.ts +15 -0
  1306. package/dist/use-pathname.js +29 -0
  1307. package/dist/use-pathname.js.map +1 -0
  1308. package/dist/use-permissions.d.ts +43 -0
  1309. package/dist/use-permissions.js +158 -0
  1310. package/dist/use-permissions.js.map +1 -0
  1311. package/dist/use-platform-modules.d.ts +49 -0
  1312. package/dist/use-platform-modules.js +416 -0
  1313. package/dist/use-platform-modules.js.map +1 -0
  1314. package/dist/use-staff-home.d.ts +9 -0
  1315. package/dist/use-staff-home.js +24 -0
  1316. package/dist/use-staff-home.js.map +1 -0
  1317. package/dist/use-workspace-invite.d.ts +37 -0
  1318. package/dist/use-workspace-invite.js +69 -0
  1319. package/dist/use-workspace-invite.js.map +1 -0
  1320. package/dist/utils.d.ts +53 -0
  1321. package/dist/utils.js +161 -0
  1322. package/dist/utils.js.map +1 -0
  1323. package/dist/wallet-format.d.ts +8 -0
  1324. package/dist/wallet-format.js +36 -0
  1325. package/dist/wallet-format.js.map +1 -0
  1326. package/dist/wallet-settlement.d.ts +14 -0
  1327. package/dist/wallet-settlement.js +5 -0
  1328. package/dist/wallet-settlement.js.map +1 -0
  1329. package/dist/web-url.d.ts +1 -0
  1330. package/dist/web-url.js +50 -0
  1331. package/dist/web-url.js.map +1 -0
  1332. package/dist/whats-new.d.ts +59 -0
  1333. package/dist/whats-new.js +77 -0
  1334. package/dist/whats-new.js.map +1 -0
  1335. package/dist/workspace-recents.d.ts +30 -0
  1336. package/dist/workspace-recents.js +37 -0
  1337. package/dist/workspace-recents.js.map +1 -0
  1338. package/dist/workspace-slug.d.ts +1 -0
  1339. package/dist/workspace-slug.js +15 -0
  1340. package/dist/workspace-slug.js.map +1 -0
  1341. package/package.json +57 -0
@@ -0,0 +1,162 @@
1
+ const DEFAULT_MAX_SIZE_MB = 10;
2
+ const EXTENSION_KINDS = {
3
+ png: "image",
4
+ jpg: "image",
5
+ jpeg: "image",
6
+ gif: "image",
7
+ webp: "image",
8
+ svg: "image",
9
+ avif: "image",
10
+ heic: "image",
11
+ mp4: "video",
12
+ mov: "video",
13
+ webm: "video",
14
+ m4v: "video",
15
+ mp3: "audio",
16
+ wav: "audio",
17
+ m4a: "audio",
18
+ aac: "audio",
19
+ ogg: "audio",
20
+ pdf: "pdf",
21
+ zip: "archive",
22
+ rar: "archive",
23
+ gz: "archive",
24
+ csv: "sheet",
25
+ tsv: "sheet",
26
+ xls: "sheet",
27
+ xlsx: "sheet",
28
+ doc: "doc",
29
+ docx: "doc",
30
+ txt: "doc",
31
+ md: "doc",
32
+ rtf: "doc",
33
+ ttf: "font",
34
+ otf: "font",
35
+ woff: "font",
36
+ woff2: "font"
37
+ };
38
+ const MIME_KINDS = [
39
+ ["image/", "image"],
40
+ ["video/", "video"],
41
+ ["audio/", "audio"],
42
+ ["font/", "font"],
43
+ ["application/pdf", "pdf"],
44
+ ["application/zip", "archive"],
45
+ ["application/x-zip", "archive"],
46
+ ["application/gzip", "archive"],
47
+ ["text/csv", "sheet"],
48
+ ["application/vnd.ms-excel", "sheet"],
49
+ ["application/vnd.openxmlformats-officedocument.spreadsheet", "sheet"],
50
+ ["application/msword", "doc"],
51
+ ["application/vnd.openxmlformats-officedocument.word", "doc"],
52
+ ["text/", "doc"]
53
+ ];
54
+ function extensionOf(name) {
55
+ const clean = name.split(/[?#]/)[0];
56
+ const dot = clean.lastIndexOf(".");
57
+ return dot > 0 ? clean.slice(dot + 1).toLowerCase() : "";
58
+ }
59
+ function fileKind(input) {
60
+ const mime = (input.type ?? "").toLowerCase();
61
+ if (mime) {
62
+ for (const [prefix, kind] of MIME_KINDS) {
63
+ if (mime.startsWith(prefix)) return kind;
64
+ }
65
+ }
66
+ const ext = extensionOf(input.name ?? "");
67
+ return EXTENSION_KINDS[ext] ?? "file";
68
+ }
69
+ function matchesAccept(file, accept) {
70
+ if (!accept?.trim()) return true;
71
+ const mime = (file.type ?? "").toLowerCase();
72
+ const ext = `.${extensionOf(file.name)}`;
73
+ return accept.split(",").some((raw) => {
74
+ const token = raw.trim().toLowerCase();
75
+ if (!token) return false;
76
+ if (token === "*" || token === "*/*") return true;
77
+ if (token.startsWith(".")) return token === ext;
78
+ if (token.endsWith("/*")) return mime.startsWith(token.slice(0, -1));
79
+ return mime === token;
80
+ });
81
+ }
82
+ function describeAccept(accept) {
83
+ if (!accept?.trim()) return null;
84
+ const names = [];
85
+ for (const raw of accept.split(",")) {
86
+ const token = raw.trim().toLowerCase();
87
+ if (!token) continue;
88
+ let label;
89
+ if (token === "*" || token === "*/*") return null;
90
+ else if (token.endsWith("/*")) label = `${token.slice(0, -2)}s`;
91
+ else if (token.startsWith(".")) label = token.slice(1).toUpperCase();
92
+ else label = (token.split("/")[1] ?? token).toUpperCase();
93
+ if (label === "JPEG" && names.includes("JPG")) continue;
94
+ if (!names.includes(label)) names.push(label);
95
+ }
96
+ if (names.length === 0) return null;
97
+ if (names.length === 1) return names[0];
98
+ return `${names.slice(0, -1).join(", ")} or ${names[names.length - 1]}`;
99
+ }
100
+ function intakeHint(accept, maxSizeMb) {
101
+ const types = describeAccept(accept);
102
+ const size = maxSizeMb ? `Up to ${maxSizeMb}MB` : null;
103
+ return [types, size].filter(Boolean).join(" \xB7 ") || null;
104
+ }
105
+ function reasonSentence(reason, limits, file) {
106
+ const name = file ? `\u201C${file.name}\u201D` : "That file";
107
+ switch (reason) {
108
+ case "size":
109
+ return `${name} is over ${limits.maxSizeMb}MB.`;
110
+ case "count": {
111
+ const max = limits.maxFiles ?? 0;
112
+ return `There is room for ${max} ${max === 1 ? "file" : "files"} here.`;
113
+ }
114
+ case "type": {
115
+ const types = describeAccept(limits.accept);
116
+ return types ? `${name} is not a supported type. This takes ${types}.` : `${name} is not a supported type.`;
117
+ }
118
+ }
119
+ }
120
+ function screenFiles(files, limits = {}) {
121
+ const { accept, maxSizeMb, maxFiles, currentCount = 0 } = limits;
122
+ const accepted = [];
123
+ const rejected = [];
124
+ for (const file of files) {
125
+ if (!matchesAccept(file, accept)) {
126
+ rejected.push({ file, reason: "type" });
127
+ continue;
128
+ }
129
+ if (maxSizeMb && file.size > maxSizeMb * 1024 * 1024) {
130
+ rejected.push({ file, reason: "size" });
131
+ continue;
132
+ }
133
+ if (maxFiles && currentCount + accepted.length >= maxFiles) {
134
+ rejected.push({ file, reason: "count" });
135
+ continue;
136
+ }
137
+ accepted.push(file);
138
+ }
139
+ return { accepted, rejected, message: refusalMessage(rejected, limits) };
140
+ }
141
+ function refusalMessage(rejected, limits) {
142
+ if (rejected.length === 0) return null;
143
+ if (rejected.length === 1) {
144
+ return reasonSentence(rejected[0].reason, limits, rejected[0].file);
145
+ }
146
+ const reasons = new Set(rejected.map((r) => r.reason));
147
+ const count = `${rejected.length} files were not added.`;
148
+ if (reasons.size === 1) {
149
+ return `${count} ${reasonSentence([...reasons][0], limits)}`;
150
+ }
151
+ return `${count} Check the type and size limits.`;
152
+ }
153
+ export {
154
+ DEFAULT_MAX_SIZE_MB,
155
+ describeAccept,
156
+ extensionOf,
157
+ fileKind,
158
+ intakeHint,
159
+ matchesAccept,
160
+ screenFiles
161
+ };
162
+ //# sourceMappingURL=file-intake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/file-intake.ts"],"sourcesContent":["/**\n * One answer to \"can this file come in, and what is it?\".\n *\n * Before this, every picker screened its own files: `MAX_SIZE_MB = 10` was\n * declared separately in logo-field and image-field, the catalog importer\n * capped at 5MB, and each one worded the refusal differently (\"Image must be\n * under 10MB\", \"Please select an image file\", \"That file is over 5MB\"). Type\n * checks were `file.type.startsWith('image/')` even where `accept` listed four\n * extensions, so a .tiff passed the check and failed at the server instead.\n *\n * The screening is here so a limit is one edit and a refusal reads the same\n * everywhere. Dropzone calls it for you; a surface that opens its own picker\n * (a logo field, a paste handler) should call `screenFiles` directly rather\n * than re-typing the two `if`s.\n */\n\nexport type FileKind =\n | 'image'\n | 'video'\n | 'audio'\n | 'pdf'\n | 'archive'\n | 'sheet'\n | 'doc'\n | 'font'\n | 'link'\n | 'file';\n\n/** The default ceiling for an image field. Storage plans start at 500MB. */\nexport const DEFAULT_MAX_SIZE_MB = 10;\n\nconst EXTENSION_KINDS: Record<string, FileKind> = {\n png: 'image',\n jpg: 'image',\n jpeg: 'image',\n gif: 'image',\n webp: 'image',\n svg: 'image',\n avif: 'image',\n heic: 'image',\n mp4: 'video',\n mov: 'video',\n webm: 'video',\n m4v: 'video',\n mp3: 'audio',\n wav: 'audio',\n m4a: 'audio',\n aac: 'audio',\n ogg: 'audio',\n pdf: 'pdf',\n zip: 'archive',\n rar: 'archive',\n gz: 'archive',\n csv: 'sheet',\n tsv: 'sheet',\n xls: 'sheet',\n xlsx: 'sheet',\n doc: 'doc',\n docx: 'doc',\n txt: 'doc',\n md: 'doc',\n rtf: 'doc',\n ttf: 'font',\n otf: 'font',\n woff: 'font',\n woff2: 'font',\n};\n\nconst MIME_KINDS: [string, FileKind][] = [\n ['image/', 'image'],\n ['video/', 'video'],\n ['audio/', 'audio'],\n ['font/', 'font'],\n ['application/pdf', 'pdf'],\n ['application/zip', 'archive'],\n ['application/x-zip', 'archive'],\n ['application/gzip', 'archive'],\n ['text/csv', 'sheet'],\n ['application/vnd.ms-excel', 'sheet'],\n ['application/vnd.openxmlformats-officedocument.spreadsheet', 'sheet'],\n ['application/msword', 'doc'],\n ['application/vnd.openxmlformats-officedocument.word', 'doc'],\n ['text/', 'doc'],\n];\n\nexport function extensionOf(name: string): string {\n const clean = name.split(/[?#]/)[0];\n const dot = clean.lastIndexOf('.');\n return dot > 0 ? clean.slice(dot + 1).toLowerCase() : '';\n}\n\n/**\n * What kind of thing this is, for the leading icon on a row. Reads the MIME\n * type first and falls back to the extension, because a file dragged in from\n * some sources arrives with an empty `type`.\n */\nexport function fileKind(input: {\n name?: string | null;\n type?: string | null;\n}): FileKind {\n const mime = (input.type ?? '').toLowerCase();\n if (mime) {\n for (const [prefix, kind] of MIME_KINDS) {\n if (mime.startsWith(prefix)) return kind;\n }\n }\n const ext = extensionOf(input.name ?? '');\n return EXTENSION_KINDS[ext] ?? 'file';\n}\n\n/** Does this file satisfy an `accept` string? Empty accept means anything. */\nexport function matchesAccept(\n file: { name: string; type?: string },\n accept?: string,\n): boolean {\n if (!accept?.trim()) return true;\n const mime = (file.type ?? '').toLowerCase();\n const ext = `.${extensionOf(file.name)}`;\n\n return accept.split(',').some((raw) => {\n const token = raw.trim().toLowerCase();\n if (!token) return false;\n if (token === '*' || token === '*/*') return true;\n if (token.startsWith('.')) return token === ext;\n if (token.endsWith('/*')) return mime.startsWith(token.slice(0, -1));\n return mime === token;\n });\n}\n\n/**\n * \"PNG, JPG or WEBP\" from an accept string, so the frame can state what it\n * takes instead of leaving the merchant to find out by being refused.\n */\nexport function describeAccept(accept?: string): string | null {\n if (!accept?.trim()) return null;\n const names: string[] = [];\n\n for (const raw of accept.split(',')) {\n const token = raw.trim().toLowerCase();\n if (!token) continue;\n let label: string;\n if (token === '*' || token === '*/*') return null;\n else if (token.endsWith('/*')) label = `${token.slice(0, -2)}s`;\n else if (token.startsWith('.')) label = token.slice(1).toUpperCase();\n else label = (token.split('/')[1] ?? token).toUpperCase();\n if (label === 'JPEG' && names.includes('JPG')) continue;\n if (!names.includes(label)) names.push(label);\n }\n\n if (names.length === 0) return null;\n if (names.length === 1) return names[0];\n return `${names.slice(0, -1).join(', ')} or ${names[names.length - 1]}`;\n}\n\n/** The line under a dropzone label: what it takes and how big. */\nexport function intakeHint(accept?: string, maxSizeMb?: number): string | null {\n const types = describeAccept(accept);\n const size = maxSizeMb ? `Up to ${maxSizeMb}MB` : null;\n return [types, size].filter(Boolean).join(' · ') || null;\n}\n\nexport type RejectionReason = 'type' | 'size' | 'count';\n\nexport interface Rejection {\n file: File;\n reason: RejectionReason;\n}\n\nexport interface IntakeLimits {\n accept?: string;\n maxSizeMb?: number;\n /** Total this surface can hold, counting what it already has. */\n maxFiles?: number;\n /** How many are already in, so `maxFiles` counts the whole set. */\n currentCount?: number;\n}\n\nexport interface IntakeResult {\n accepted: File[];\n rejected: Rejection[];\n /** Ready-to-render refusal, or null when everything came in. */\n message: string | null;\n}\n\nfunction reasonSentence(\n reason: RejectionReason,\n limits: IntakeLimits,\n file?: File,\n): string {\n const name = file ? `“${file.name}”` : 'That file';\n switch (reason) {\n case 'size':\n return `${name} is over ${limits.maxSizeMb}MB.`;\n case 'count': {\n const max = limits.maxFiles ?? 0;\n return `There is room for ${max} ${max === 1 ? 'file' : 'files'} here.`;\n }\n case 'type': {\n const types = describeAccept(limits.accept);\n return types\n ? `${name} is not a supported type. This takes ${types}.`\n : `${name} is not a supported type.`;\n }\n }\n}\n\n/**\n * Screen a batch against the surface's limits. Nothing throws and nothing is\n * silently dropped: whatever is refused comes back with a sentence saying why,\n * because a picker that just ignores a file looks broken.\n */\nexport function screenFiles(\n files: File[],\n limits: IntakeLimits = {},\n): IntakeResult {\n const { accept, maxSizeMb, maxFiles, currentCount = 0 } = limits;\n const accepted: File[] = [];\n const rejected: Rejection[] = [];\n\n for (const file of files) {\n if (!matchesAccept(file, accept)) {\n rejected.push({ file, reason: 'type' });\n continue;\n }\n if (maxSizeMb && file.size > maxSizeMb * 1024 * 1024) {\n rejected.push({ file, reason: 'size' });\n continue;\n }\n if (maxFiles && currentCount + accepted.length >= maxFiles) {\n rejected.push({ file, reason: 'count' });\n continue;\n }\n accepted.push(file);\n }\n\n return { accepted, rejected, message: refusalMessage(rejected, limits) };\n}\n\nfunction refusalMessage(\n rejected: Rejection[],\n limits: IntakeLimits,\n): string | null {\n if (rejected.length === 0) return null;\n if (rejected.length === 1) {\n return reasonSentence(rejected[0].reason, limits, rejected[0].file);\n }\n\n const reasons = new Set(rejected.map((r) => r.reason));\n const count = `${rejected.length} files were not added.`;\n if (reasons.size === 1) {\n return `${count} ${reasonSentence([...reasons][0], limits)}`;\n }\n return `${count} Check the type and size limits.`;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,5 @@
1
+ export declare const flagFirstRun: () => void;
2
+ export declare const takeFirstRun: () => boolean;
3
+ export declare const endFirstRun: () => void;
4
+ /** True while this page load is the arrival after provisioning. */
5
+ export declare const isFirstRunVisit: () => boolean;
@@ -0,0 +1,13 @@
1
+ import { makeArrival } from "./arrival";
2
+ const firstRun = makeArrival("pb_first_run");
3
+ const flagFirstRun = firstRun.flag;
4
+ const takeFirstRun = firstRun.take;
5
+ const endFirstRun = firstRun.end;
6
+ const isFirstRunVisit = firstRun.taken;
7
+ export {
8
+ endFirstRun,
9
+ flagFirstRun,
10
+ isFirstRunVisit,
11
+ takeFirstRun
12
+ };
13
+ //# sourceMappingURL=first-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/first-run.ts"],"sourcesContent":["import { makeArrival } from './arrival';\n\n/**\n * A merchant has just made their business, and is about to meet it.\n *\n * John, 2026-09-08: *\"then we transistion you to the daahboard which come with\n * an intro pop up modal boom you can start using it\"*.\n *\n * Flagged by the setup flow the moment provisioning succeeds, read once by the\n * dashboard. See `arrival` for why it is a stored flag and not `createdAt`.\n */\nconst firstRun = makeArrival('pb_first_run');\n\nexport const flagFirstRun = firstRun.flag;\nexport const takeFirstRun = firstRun.take;\nexport const endFirstRun = firstRun.end;\n/** True while this page load is the arrival after provisioning. */\nexport const isFirstRunVisit = firstRun.taken;\n"],"mappings":"AAAA,SAAS,mBAAmB;AAW5B,MAAM,WAAW,YAAY,cAAc;AAEpC,MAAM,eAAe,SAAS;AAC9B,MAAM,eAAe,SAAS;AAC9B,MAAM,cAAc,SAAS;AAE7B,MAAM,kBAAkB,SAAS;","names":[]}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * What somebody typed into a form, made readable.
3
+ *
4
+ * Two surfaces collect arbitrary fields and store them in a `metadata` blob:
5
+ * a booking's intake questions, and an enquiry's qualifying fields — which the
6
+ * storefront builds per template, so the keys are not knowable here. A caterer
7
+ * asks for `guestCount` and `eventDate`; an estate agent asks which listing; a
8
+ * solar installer asks the monthly bill.
9
+ *
10
+ * The bookings side already did this, in
11
+ * `intake-answers-card.tsx`, as `String(value)` against the raw key. That is
12
+ * fine until a real payload arrives: `guestCount` renders as "guestCount",
13
+ * `2026-12-12` as "2026-12-12", `true` as "true", and a budget of 500000 as
14
+ * "500000". The answer is legible to whoever wrote the form and to nobody else.
15
+ *
16
+ * So the shaping lives here, once, and both surfaces read it.
17
+ *
18
+ * Nothing is dropped for being unrecognised — an unknown key is the normal
19
+ * case, and the whole point is to show what was asked without being told first.
20
+ */
21
+ export interface Answer {
22
+ /** The original key, so React has a stable identity and debugging has a name. */
23
+ key: string;
24
+ label: string;
25
+ value: string;
26
+ }
27
+ export interface ToAnswersOptions {
28
+ /**
29
+ * Keys that are plumbing rather than answers. Excluded before anything else,
30
+ * so an excluded object is never flattened into view by the back door.
31
+ */
32
+ exclude?: readonly string[];
33
+ /**
34
+ * Nested objects whose contents belong at the top level. The API's own
35
+ * `metadata.quote` and `metadata.consultation` hold real submitted answers
36
+ * one level down; `metadata.customFields` is a bag with no meaning of its own.
37
+ */
38
+ flatten?: readonly string[];
39
+ /** For keys that read as money. Defaults to the workspace currency at the call site. */
40
+ currency?: string;
41
+ }
42
+ /**
43
+ * `guestCount` → "Guest count", `event_date` → "Event date".
44
+ *
45
+ * Only the first letter is capitalised. Title Case on a form label reads as a
46
+ * heading, and these sit in the left column of a definition list where the
47
+ * value is the thing being read.
48
+ */
49
+ export declare function humanizeKey(key: string): string;
50
+ /**
51
+ * Turn a metadata blob into rows a person can read.
52
+ *
53
+ * Order is the order the keys arrived in, which is the order the form asked
54
+ * them — a shape the merchant already recognises from their own site. Sorting
55
+ * alphabetically would scatter a date away from the headcount it belongs to.
56
+ */
57
+ export declare function toAnswers(source: Record<string, unknown> | null | undefined, options?: ToAnswersOptions): Answer[];
@@ -0,0 +1,79 @@
1
+ import { formatCurrency, formatDate } from "./utils";
2
+ const MONEY_WORDS = /(budget|amount|price|total|fee|deposit|spend|cost|value|revenue|salary)/i;
3
+ const ISO_DATE = /^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}|$)/;
4
+ function humanizeKey(key) {
5
+ const spaced = key.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").replace(/[_-]+/g, " ").trim();
6
+ if (!spaced) return key;
7
+ const lower = spaced.toLowerCase();
8
+ const cased = lower.replace(/\butm\b/g, "UTM");
9
+ return cased.charAt(0).toUpperCase() + cased.slice(1);
10
+ }
11
+ function formatScalar(key, value, currency) {
12
+ if (value === null || value === void 0) return null;
13
+ if (typeof value === "boolean") return value ? "Yes" : "No";
14
+ if (typeof value === "number") {
15
+ if (!Number.isFinite(value)) return null;
16
+ return MONEY_WORDS.test(key) ? formatCurrency(value, currency) : value.toLocaleString("en-US");
17
+ }
18
+ if (typeof value === "string") {
19
+ const trimmed = value.trim();
20
+ if (!trimmed) return null;
21
+ if (ISO_DATE.test(trimmed)) {
22
+ const parsed = new Date(trimmed);
23
+ if (!Number.isNaN(parsed.getTime())) return formatDate(parsed);
24
+ }
25
+ if (MONEY_WORDS.test(key) && /^\d+(\.\d+)?$/.test(trimmed)) {
26
+ return formatCurrency(Number(trimmed), currency);
27
+ }
28
+ return trimmed;
29
+ }
30
+ if (Array.isArray(value)) {
31
+ const parts = value.map((entry) => formatScalar(key, entry, currency)).filter((entry) => entry !== null);
32
+ return parts.length ? parts.join(", ") : null;
33
+ }
34
+ if (typeof value === "object") {
35
+ const keys = Object.keys(value);
36
+ return keys.length ? keys.map(humanizeKey).join(", ") : null;
37
+ }
38
+ return null;
39
+ }
40
+ function toAnswers(source, options = {}) {
41
+ if (!source) return [];
42
+ const exclude = new Set(options.exclude ?? []);
43
+ const flatten = new Set(options.flatten ?? []);
44
+ const answers = [];
45
+ const seen = /* @__PURE__ */ new Set();
46
+ const push = (key, value, labelPrefix) => {
47
+ if (seen.has(key)) return;
48
+ const formatted = formatScalar(key, value, options.currency);
49
+ if (formatted === null) return;
50
+ seen.add(key);
51
+ answers.push({
52
+ key,
53
+ label: labelPrefix ? `${labelPrefix} \xB7 ${humanizeKey(key)}` : humanizeKey(key),
54
+ value: formatted
55
+ });
56
+ };
57
+ for (const [key, value] of Object.entries(source)) {
58
+ if (exclude.has(key)) continue;
59
+ if (flatten.has(key) && value !== null && typeof value === "object" && !Array.isArray(value)) {
60
+ for (const [innerKey, innerValue] of Object.entries(
61
+ value
62
+ )) {
63
+ push(
64
+ innerKey,
65
+ innerValue,
66
+ key === "customFields" ? void 0 : humanizeKey(key)
67
+ );
68
+ }
69
+ continue;
70
+ }
71
+ push(key, value);
72
+ }
73
+ return answers;
74
+ }
75
+ export {
76
+ humanizeKey,
77
+ toAnswers
78
+ };
79
+ //# sourceMappingURL=form-answers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/form-answers.ts"],"sourcesContent":["import { formatCurrency, formatDate } from './utils';\n\n/**\n * What somebody typed into a form, made readable.\n *\n * Two surfaces collect arbitrary fields and store them in a `metadata` blob:\n * a booking's intake questions, and an enquiry's qualifying fields — which the\n * storefront builds per template, so the keys are not knowable here. A caterer\n * asks for `guestCount` and `eventDate`; an estate agent asks which listing; a\n * solar installer asks the monthly bill.\n *\n * The bookings side already did this, in\n * `intake-answers-card.tsx`, as `String(value)` against the raw key. That is\n * fine until a real payload arrives: `guestCount` renders as \"guestCount\",\n * `2026-12-12` as \"2026-12-12\", `true` as \"true\", and a budget of 500000 as\n * \"500000\". The answer is legible to whoever wrote the form and to nobody else.\n *\n * So the shaping lives here, once, and both surfaces read it.\n *\n * Nothing is dropped for being unrecognised — an unknown key is the normal\n * case, and the whole point is to show what was asked without being told first.\n */\n\nexport interface Answer {\n /** The original key, so React has a stable identity and debugging has a name. */\n key: string;\n label: string;\n value: string;\n}\n\nexport interface ToAnswersOptions {\n /**\n * Keys that are plumbing rather than answers. Excluded before anything else,\n * so an excluded object is never flattened into view by the back door.\n */\n exclude?: readonly string[];\n /**\n * Nested objects whose contents belong at the top level. The API's own\n * `metadata.quote` and `metadata.consultation` hold real submitted answers\n * one level down; `metadata.customFields` is a bag with no meaning of its own.\n */\n flatten?: readonly string[];\n /** For keys that read as money. Defaults to the workspace currency at the call site. */\n currency?: string;\n}\n\n/**\n * Keys whose value is money rather than a count.\n *\n * Matched as a whole word inside the key so `budgetMax` and `monthly_spend`\n * both land, while `pricePerNightNotes` — a string — is caught by the type\n * check before it gets here.\n */\nconst MONEY_WORDS =\n /(budget|amount|price|total|fee|deposit|spend|cost|value|revenue|salary)/i;\n\n/** ISO dates, with or without a time. Anything looser is left as typed. */\nconst ISO_DATE = /^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}|$)/;\n\n/**\n * `guestCount` → \"Guest count\", `event_date` → \"Event date\".\n *\n * Only the first letter is capitalised. Title Case on a form label reads as a\n * heading, and these sit in the left column of a definition list where the\n * value is the thing being read.\n */\nexport function humanizeKey(key: string): string {\n const spaced = key\n // camelCase and PascalCase, including runs like `utmSource` → `utm Source`.\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n // An acronym running into a word: `UTMSource` → `UTM Source`.\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .replace(/[_-]+/g, ' ')\n .trim();\n\n if (!spaced) return key;\n\n const lower = spaced.toLowerCase();\n // `utm` is the one acronym these forms actually carry, and \"Utm source\" is\n // wrong in a way a merchant will notice.\n const cased = lower.replace(/\\butm\\b/g, 'UTM');\n return cased.charAt(0).toUpperCase() + cased.slice(1);\n}\n\nfunction formatScalar(\n key: string,\n value: unknown,\n currency: string | undefined,\n): string | null {\n if (value === null || value === undefined) return null;\n\n if (typeof value === 'boolean') return value ? 'Yes' : 'No';\n\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) return null;\n return MONEY_WORDS.test(key)\n ? formatCurrency(value, currency)\n : value.toLocaleString('en-US');\n }\n\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (!trimmed) return null;\n if (ISO_DATE.test(trimmed)) {\n const parsed = new Date(trimmed);\n // An unparseable string that merely looks like a date stays as typed\n // rather than becoming \"Invalid Date\".\n if (!Number.isNaN(parsed.getTime())) return formatDate(parsed);\n }\n // A number that arrived as a string is still money if the key says so.\n if (MONEY_WORDS.test(key) && /^\\d+(\\.\\d+)?$/.test(trimmed)) {\n return formatCurrency(Number(trimmed), currency);\n }\n return trimmed;\n }\n\n if (Array.isArray(value)) {\n const parts = value\n .map((entry) => formatScalar(key, entry, currency))\n .filter((entry): entry is string => entry !== null);\n return parts.length ? parts.join(', ') : null;\n }\n\n // A nested object that was not asked to be flattened. Showing `[object\n // Object]` is worse than showing nothing, and dropping it silently loses an\n // answer, so it is summarised by what it holds.\n if (typeof value === 'object') {\n const keys = Object.keys(value as Record<string, unknown>);\n return keys.length ? keys.map(humanizeKey).join(', ') : null;\n }\n\n return null;\n}\n\n/**\n * Turn a metadata blob into rows a person can read.\n *\n * Order is the order the keys arrived in, which is the order the form asked\n * them — a shape the merchant already recognises from their own site. Sorting\n * alphabetically would scatter a date away from the headcount it belongs to.\n */\nexport function toAnswers(\n source: Record<string, unknown> | null | undefined,\n options: ToAnswersOptions = {},\n): Answer[] {\n if (!source) return [];\n\n const exclude = new Set(options.exclude ?? []);\n const flatten = new Set(options.flatten ?? []);\n const answers: Answer[] = [];\n const seen = new Set<string>();\n\n const push = (key: string, value: unknown, labelPrefix?: string) => {\n if (seen.has(key)) return;\n const formatted = formatScalar(key, value, options.currency);\n if (formatted === null) return;\n seen.add(key);\n answers.push({\n key,\n label: labelPrefix\n ? `${labelPrefix} · ${humanizeKey(key)}`\n : humanizeKey(key),\n value: formatted,\n });\n };\n\n for (const [key, value] of Object.entries(source)) {\n if (exclude.has(key)) continue;\n\n if (\n flatten.has(key) &&\n value !== null &&\n typeof value === 'object' &&\n !Array.isArray(value)\n ) {\n for (const [innerKey, innerValue] of Object.entries(\n value as Record<string, unknown>,\n )) {\n // `customFields` is a container with no name worth showing; `quote` and\n // `consultation` are contexts, and an unprefixed \"Duration\" next to an\n // unprefixed \"Preferred date\" loses which is which.\n push(\n innerKey,\n innerValue,\n key === 'customFields' ? undefined : humanizeKey(key),\n );\n }\n continue;\n }\n\n push(key, value);\n }\n\n return answers;\n}\n"],"mappings":"AAAA,SAAS,gBAAgB,kBAAkB;AAqD3C,MAAM,cACJ;AAGF,MAAM,WAAW;AASV,SAAS,YAAY,KAAqB;AAC/C,QAAM,SAAS,IAEZ,QAAQ,sBAAsB,OAAO,EAErC,QAAQ,yBAAyB,OAAO,EACxC,QAAQ,UAAU,GAAG,EACrB,KAAK;AAER,MAAI,CAAC,OAAQ,QAAO;AAEpB,QAAM,QAAQ,OAAO,YAAY;AAGjC,QAAM,QAAQ,MAAM,QAAQ,YAAY,KAAK;AAC7C,SAAO,MAAM,OAAO,CAAC,EAAE,YAAY,IAAI,MAAM,MAAM,CAAC;AACtD;AAEA,SAAS,aACP,KACA,OACA,UACe;AACf,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAElD,MAAI,OAAO,UAAU,UAAW,QAAO,QAAQ,QAAQ;AAEvD,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,WAAO,YAAY,KAAK,GAAG,IACvB,eAAe,OAAO,QAAQ,IAC9B,MAAM,eAAe,OAAO;AAAA,EAClC;AAEA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,UAAU,MAAM,KAAK;AAC3B,QAAI,CAAC,QAAS,QAAO;AACrB,QAAI,SAAS,KAAK,OAAO,GAAG;AAC1B,YAAM,SAAS,IAAI,KAAK,OAAO;AAG/B,UAAI,CAAC,OAAO,MAAM,OAAO,QAAQ,CAAC,EAAG,QAAO,WAAW,MAAM;AAAA,IAC/D;AAEA,QAAI,YAAY,KAAK,GAAG,KAAK,gBAAgB,KAAK,OAAO,GAAG;AAC1D,aAAO,eAAe,OAAO,OAAO,GAAG,QAAQ;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM,QAAQ,MACX,IAAI,CAAC,UAAU,aAAa,KAAK,OAAO,QAAQ,CAAC,EACjD,OAAO,CAAC,UAA2B,UAAU,IAAI;AACpD,WAAO,MAAM,SAAS,MAAM,KAAK,IAAI,IAAI;AAAA,EAC3C;AAKA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,OAAO,OAAO,KAAK,KAAgC;AACzD,WAAO,KAAK,SAAS,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,IAAI;AAAA,EAC1D;AAEA,SAAO;AACT;AASO,SAAS,UACd,QACA,UAA4B,CAAC,GACnB;AACV,MAAI,CAAC,OAAQ,QAAO,CAAC;AAErB,QAAM,UAAU,IAAI,IAAI,QAAQ,WAAW,CAAC,CAAC;AAC7C,QAAM,UAAU,IAAI,IAAI,QAAQ,WAAW,CAAC,CAAC;AAC7C,QAAM,UAAoB,CAAC;AAC3B,QAAM,OAAO,oBAAI,IAAY;AAE7B,QAAM,OAAO,CAAC,KAAa,OAAgB,gBAAyB;AAClE,QAAI,KAAK,IAAI,GAAG,EAAG;AACnB,UAAM,YAAY,aAAa,KAAK,OAAO,QAAQ,QAAQ;AAC3D,QAAI,cAAc,KAAM;AACxB,SAAK,IAAI,GAAG;AACZ,YAAQ,KAAK;AAAA,MACX;AAAA,MACA,OAAO,cACH,GAAG,WAAW,SAAM,YAAY,GAAG,CAAC,KACpC,YAAY,GAAG;AAAA,MACnB,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,QAAI,QAAQ,IAAI,GAAG,EAAG;AAEtB,QACE,QAAQ,IAAI,GAAG,KACf,UAAU,QACV,OAAO,UAAU,YACjB,CAAC,MAAM,QAAQ,KAAK,GACpB;AACA,iBAAW,CAAC,UAAU,UAAU,KAAK,OAAO;AAAA,QAC1C;AAAA,MACF,GAAG;AAID;AAAA,UACE;AAAA,UACA;AAAA,UACA,QAAQ,iBAAiB,SAAY,YAAY,GAAG;AAAA,QACtD;AAAA,MACF;AACA;AAAA,IACF;AAEA,SAAK,KAAK,KAAK;AAAA,EACjB;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * An unsaved form, kept so an interruption does not take it with it.
3
+ *
4
+ * A phone drops a backgrounded page from memory whenever it needs the room — a
5
+ * call comes in, the merchant switches app — and opening it again is a fresh
6
+ * page load. Anything typed and not yet saved is gone with it. Component state
7
+ * cannot survive that; the browser's own storage can.
8
+ *
9
+ * Per workspace and per form, local to this device, and gone after a day: a
10
+ * draft is for getting back to what you were doing, not for keeping a second
11
+ * copy of a record. Every access is wrapped, because storage can be blocked or
12
+ * full and a draft failing to save must never be the reason a form breaks.
13
+ */
14
+ export declare const DRAFT_MAX_AGE_MS: number;
15
+ export declare function draftKey(tenantSlug: string | undefined, form: string): string | null;
16
+ export declare function readDraft<T>(key: string | null, now?: number): T | null;
17
+ export declare function writeDraft<T>(key: string | null, data: T, now?: number): void;
18
+ export declare function clearDraft(key: string | null): void;
19
+ /**
20
+ * A draft of an EXISTING record is only good for the record it was made from.
21
+ *
22
+ * It is stored beside a fingerprint of how that record looked when it was
23
+ * loaded. Someone else editing it, or saving it from another device, changes
24
+ * the fingerprint, and the draft is then worth less than the newer record — so
25
+ * it is dropped, never restored over it.
26
+ */
27
+ export declare function draftStillApplies(savedFingerprint: string | null, currentFingerprint: string | null): boolean;
28
+ export declare function readFingerprint(key: string | null): string | null;
29
+ export declare function writeFingerprint(key: string | null, fingerprint: string): void;
30
+ export declare function clearDraftAndFingerprint(key: string | null): void;
@@ -0,0 +1,73 @@
1
+ const PREFIX = "pb:draft:";
2
+ const DRAFT_MAX_AGE_MS = 24 * 60 * 60 * 1e3;
3
+ function draftKey(tenantSlug, form) {
4
+ return tenantSlug ? `${PREFIX}${tenantSlug}:${form}` : null;
5
+ }
6
+ function readDraft(key, now = Date.now()) {
7
+ if (!key) return null;
8
+ try {
9
+ const raw = localStorage.getItem(key);
10
+ if (!raw) return null;
11
+ const stored = JSON.parse(raw);
12
+ if (typeof stored?.savedAt !== "number" || now - stored.savedAt > DRAFT_MAX_AGE_MS) {
13
+ localStorage.removeItem(key);
14
+ return null;
15
+ }
16
+ return stored.data;
17
+ } catch {
18
+ return null;
19
+ }
20
+ }
21
+ function writeDraft(key, data, now = Date.now()) {
22
+ if (!key) return;
23
+ try {
24
+ localStorage.setItem(key, JSON.stringify({ savedAt: now, data }));
25
+ } catch {
26
+ }
27
+ }
28
+ function clearDraft(key) {
29
+ if (!key) return;
30
+ try {
31
+ localStorage.removeItem(key);
32
+ } catch {
33
+ }
34
+ }
35
+ function draftStillApplies(savedFingerprint, currentFingerprint) {
36
+ return savedFingerprint !== null && currentFingerprint !== null && savedFingerprint === currentFingerprint;
37
+ }
38
+ const FINGERPRINT_SUFFIX = ":from";
39
+ function readFingerprint(key) {
40
+ if (!key) return null;
41
+ try {
42
+ return localStorage.getItem(key + FINGERPRINT_SUFFIX);
43
+ } catch {
44
+ return null;
45
+ }
46
+ }
47
+ function writeFingerprint(key, fingerprint) {
48
+ if (!key) return;
49
+ try {
50
+ localStorage.setItem(key + FINGERPRINT_SUFFIX, fingerprint);
51
+ } catch {
52
+ }
53
+ }
54
+ function clearDraftAndFingerprint(key) {
55
+ clearDraft(key);
56
+ if (!key) return;
57
+ try {
58
+ localStorage.removeItem(key + FINGERPRINT_SUFFIX);
59
+ } catch {
60
+ }
61
+ }
62
+ export {
63
+ DRAFT_MAX_AGE_MS,
64
+ clearDraft,
65
+ clearDraftAndFingerprint,
66
+ draftKey,
67
+ draftStillApplies,
68
+ readDraft,
69
+ readFingerprint,
70
+ writeDraft,
71
+ writeFingerprint
72
+ };
73
+ //# sourceMappingURL=form-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/form-draft.ts"],"sourcesContent":["/**\n * An unsaved form, kept so an interruption does not take it with it.\n *\n * A phone drops a backgrounded page from memory whenever it needs the room — a\n * call comes in, the merchant switches app — and opening it again is a fresh\n * page load. Anything typed and not yet saved is gone with it. Component state\n * cannot survive that; the browser's own storage can.\n *\n * Per workspace and per form, local to this device, and gone after a day: a\n * draft is for getting back to what you were doing, not for keeping a second\n * copy of a record. Every access is wrapped, because storage can be blocked or\n * full and a draft failing to save must never be the reason a form breaks.\n */\n\nconst PREFIX = 'pb:draft:';\nexport const DRAFT_MAX_AGE_MS = 24 * 60 * 60 * 1000;\n\ninterface StoredDraft<T> {\n savedAt: number;\n data: T;\n}\n\nexport function draftKey(\n tenantSlug: string | undefined,\n form: string,\n): string | null {\n return tenantSlug ? `${PREFIX}${tenantSlug}:${form}` : null;\n}\n\nexport function readDraft<T>(key: string | null, now = Date.now()): T | null {\n if (!key) return null;\n try {\n const raw = localStorage.getItem(key);\n if (!raw) return null;\n const stored = JSON.parse(raw) as StoredDraft<T>;\n if (\n typeof stored?.savedAt !== 'number' ||\n now - stored.savedAt > DRAFT_MAX_AGE_MS\n ) {\n localStorage.removeItem(key);\n return null;\n }\n return stored.data;\n } catch {\n return null;\n }\n}\n\nexport function writeDraft<T>(key: string | null, data: T, now = Date.now()) {\n if (!key) return;\n try {\n localStorage.setItem(key, JSON.stringify({ savedAt: now, data }));\n } catch {\n // Storage full or blocked: the form still works, it just is not protected.\n }\n}\n\nexport function clearDraft(key: string | null) {\n if (!key) return;\n try {\n localStorage.removeItem(key);\n } catch {\n // Nothing to clear if storage is not available.\n }\n}\n\n/**\n * A draft of an EXISTING record is only good for the record it was made from.\n *\n * It is stored beside a fingerprint of how that record looked when it was\n * loaded. Someone else editing it, or saving it from another device, changes\n * the fingerprint, and the draft is then worth less than the newer record — so\n * it is dropped, never restored over it.\n */\nexport function draftStillApplies(\n savedFingerprint: string | null,\n currentFingerprint: string | null,\n): boolean {\n return (\n savedFingerprint !== null &&\n currentFingerprint !== null &&\n savedFingerprint === currentFingerprint\n );\n}\n\nconst FINGERPRINT_SUFFIX = ':from';\n\nexport function readFingerprint(key: string | null): string | null {\n if (!key) return null;\n try {\n return localStorage.getItem(key + FINGERPRINT_SUFFIX);\n } catch {\n return null;\n }\n}\n\nexport function writeFingerprint(key: string | null, fingerprint: string) {\n if (!key) return;\n try {\n localStorage.setItem(key + FINGERPRINT_SUFFIX, fingerprint);\n } catch {\n // Without it the draft is simply never restored: safe, not harmful.\n }\n}\n\nexport function clearDraftAndFingerprint(key: string | null) {\n clearDraft(key);\n if (!key) return;\n try {\n localStorage.removeItem(key + FINGERPRINT_SUFFIX);\n } catch {\n // Nothing to clear if storage is not available.\n }\n}\n"],"mappings":"AAcA,MAAM,SAAS;AACR,MAAM,mBAAmB,KAAK,KAAK,KAAK;AAOxC,SAAS,SACd,YACA,MACe;AACf,SAAO,aAAa,GAAG,MAAM,GAAG,UAAU,IAAI,IAAI,KAAK;AACzD;AAEO,SAAS,UAAa,KAAoB,MAAM,KAAK,IAAI,GAAa;AAC3E,MAAI,CAAC,IAAK,QAAO;AACjB,MAAI;AACF,UAAM,MAAM,aAAa,QAAQ,GAAG;AACpC,QAAI,CAAC,IAAK,QAAO;AACjB,UAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,QACE,OAAO,QAAQ,YAAY,YAC3B,MAAM,OAAO,UAAU,kBACvB;AACA,mBAAa,WAAW,GAAG;AAC3B,aAAO;AAAA,IACT;AACA,WAAO,OAAO;AAAA,EAChB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,WAAc,KAAoB,MAAS,MAAM,KAAK,IAAI,GAAG;AAC3E,MAAI,CAAC,IAAK;AACV,MAAI;AACF,iBAAa,QAAQ,KAAK,KAAK,UAAU,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC;AAAA,EAClE,QAAQ;AAAA,EAER;AACF;AAEO,SAAS,WAAW,KAAoB;AAC7C,MAAI,CAAC,IAAK;AACV,MAAI;AACF,iBAAa,WAAW,GAAG;AAAA,EAC7B,QAAQ;AAAA,EAER;AACF;AAUO,SAAS,kBACd,kBACA,oBACS;AACT,SACE,qBAAqB,QACrB,uBAAuB,QACvB,qBAAqB;AAEzB;AAEA,MAAM,qBAAqB;AAEpB,SAAS,gBAAgB,KAAmC;AACjE,MAAI,CAAC,IAAK,QAAO;AACjB,MAAI;AACF,WAAO,aAAa,QAAQ,MAAM,kBAAkB;AAAA,EACtD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,iBAAiB,KAAoB,aAAqB;AACxE,MAAI,CAAC,IAAK;AACV,MAAI;AACF,iBAAa,QAAQ,MAAM,oBAAoB,WAAW;AAAA,EAC5D,QAAQ;AAAA,EAER;AACF;AAEO,SAAS,yBAAyB,KAAoB;AAC3D,aAAW,GAAG;AACd,MAAI,CAAC,IAAK;AACV,MAAI;AACF,iBAAa,WAAW,MAAM,kBAAkB;AAAA,EAClD,QAAQ;AAAA,EAER;AACF;","names":[]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The number and date shapes the whole app writes, in one place.
3
+ *
4
+ * These lived in `app/dashboard/analytics/helpers.ts` — a route folder — and
5
+ * were reached from outside it by the traffic funnel and by every chart. A
6
+ * shared component importing from a route is backwards, and it is the reason
7
+ * `components/charts/` could not hold the charts that use them.
8
+ *
9
+ * `analytics/helpers` re-exports these, so nothing that already imports them
10
+ * from there has to change. New callers should come here.
11
+ */
12
+ /**
13
+ * Compact counts: 1.2K, 3.4M. For places where the exact figure is noise and
14
+ * the magnitude is the point — a chart axis, a funnel step, a stat tile.
15
+ *
16
+ * Not for money. A price rendered as "₦1.2K" is a price nobody can act on;
17
+ * use the currency formatter for that.
18
+ */
19
+ export declare function formatNumber(num: number | null | undefined): string;
20
+ /**
21
+ * A percentage, rounded to whole numbers except near zero.
22
+ *
23
+ * The sub-10 case keeps one decimal because the difference between 0.4% and
24
+ * 0% is the difference between "a trickle" and "nothing", and rounding it
25
+ * away turns a small real number into an absence.
26
+ */
27
+ export declare function formatPercent(value: number): string;
28
+ /** An axis-width date: "Aug 16". */
29
+ export declare function formatShortDate(iso: string): string;
package/dist/format.js ADDED
@@ -0,0 +1,21 @@
1
+ function formatNumber(num) {
2
+ if (num == null || !Number.isFinite(num)) return "\u2014";
3
+ if (num >= 1e6) return `${(num / 1e6).toFixed(1)}M`;
4
+ if (num >= 1e3) return `${(num / 1e3).toFixed(1)}K`;
5
+ return num.toLocaleString();
6
+ }
7
+ function formatPercent(value) {
8
+ const abs = Math.abs(value);
9
+ const shown = abs < 10 && abs > 0 ? Number(value.toFixed(1)) : Math.round(value);
10
+ return `${shown}%`;
11
+ }
12
+ function formatShortDate(iso) {
13
+ const d = new Date(iso);
14
+ return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
15
+ }
16
+ export {
17
+ formatNumber,
18
+ formatPercent,
19
+ formatShortDate
20
+ };
21
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/format.ts"],"sourcesContent":["/**\n * The number and date shapes the whole app writes, in one place.\n *\n * These lived in `app/dashboard/analytics/helpers.ts` — a route folder — and\n * were reached from outside it by the traffic funnel and by every chart. A\n * shared component importing from a route is backwards, and it is the reason\n * `components/charts/` could not hold the charts that use them.\n *\n * `analytics/helpers` re-exports these, so nothing that already imports them\n * from there has to change. New callers should come here.\n */\n\n/**\n * Compact counts: 1.2K, 3.4M. For places where the exact figure is noise and\n * the magnitude is the point — a chart axis, a funnel step, a stat tile.\n *\n * Not for money. A price rendered as \"₦1.2K\" is a price nobody can act on;\n * use the currency formatter for that.\n */\nexport function formatNumber(num: number | null | undefined): string {\n // A missing figure is an em dash, not a crash and not a zero.\n //\n // The parameter used to be `number`, which TypeScript was happy to satisfy\n // from any field the API types declare as required — and a declared type is\n // not a runtime guarantee. `RetentionRail` took down the whole Retention view\n // this way: it guarded that `overview` existed and then read\n // `overview.newInPriorPeriod` off it, so a 200 carrying a partial body threw\n // `Cannot read properties of undefined (reading 'toLocaleString')` from\n // inside a formatter three components deep.\n //\n // Nullish reads as \"—\" rather than \"0\" for the reason `RailStat` already\n // states about its own value: nothing to show is not the same as none. NaN\n // and Infinity go the same way — they are arithmetic that went wrong, and\n // printing \"NaN\" at a merchant is worse than printing nothing.\n if (num == null || !Number.isFinite(num)) return '—';\n if (num >= 1_000_000) return `${(num / 1_000_000).toFixed(1)}M`;\n if (num >= 1_000) return `${(num / 1_000).toFixed(1)}K`;\n return num.toLocaleString();\n}\n\n/**\n * A percentage, rounded to whole numbers except near zero.\n *\n * The sub-10 case keeps one decimal because the difference between 0.4% and\n * 0% is the difference between \"a trickle\" and \"nothing\", and rounding it\n * away turns a small real number into an absence.\n */\nexport function formatPercent(value: number): string {\n const abs = Math.abs(value);\n const shown =\n abs < 10 && abs > 0 ? Number(value.toFixed(1)) : Math.round(value);\n return `${shown}%`;\n}\n\n/** An axis-width date: \"Aug 16\". */\nexport function formatShortDate(iso: string): string {\n const d = new Date(iso);\n return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });\n}\n"],"mappings":"AAmBO,SAAS,aAAa,KAAwC;AAenE,MAAI,OAAO,QAAQ,CAAC,OAAO,SAAS,GAAG,EAAG,QAAO;AACjD,MAAI,OAAO,IAAW,QAAO,IAAI,MAAM,KAAW,QAAQ,CAAC,CAAC;AAC5D,MAAI,OAAO,IAAO,QAAO,IAAI,MAAM,KAAO,QAAQ,CAAC,CAAC;AACpD,SAAO,IAAI,eAAe;AAC5B;AASO,SAAS,cAAc,OAAuB;AACnD,QAAM,MAAM,KAAK,IAAI,KAAK;AAC1B,QAAM,QACJ,MAAM,MAAM,MAAM,IAAI,OAAO,MAAM,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,KAAK;AACnE,SAAO,GAAG,KAAK;AACjB;AAGO,SAAS,gBAAgB,KAAqB;AACnD,QAAM,IAAI,IAAI,KAAK,GAAG;AACtB,SAAO,EAAE,mBAAmB,SAAS,EAAE,OAAO,SAAS,KAAK,UAAU,CAAC;AACzE;","names":[]}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * The words for how orders reach people, in one place.
3
+ *
4
+ * THE WORD WAS FORKED. The page at `/dashboard/settings/shipping` is a
5
+ * component called `DeliverySettingsPage` with the title "Delivery", and every
6
+ * row that pointed at it said "Shipping" — the sidebar's Selling group, the
7
+ * spine's Operations group, the platform-module list, the mobile Store screen
8
+ * (which said "Shipping & delivery", both words at once), the help topic and
9
+ * the capability reveal. A merchant clicked Shipping and landed on Delivery.
10
+ *
11
+ * Underneath, the two are not synonyms at all: they are SIBLINGS. A zone's
12
+ * `method` is `delivery` (a rider of the merchant's own) or `shipping` (a
13
+ * courier), and an order's `deliveryMethod` is pickup / delivery / shipping /
14
+ * none. So "Delivery" was doing duty as both the parent — every way an order
15
+ * moves — and one of its children.
16
+ *
17
+ * Delivery wins as the parent. It is the word merchants here use, it covers a
18
+ * courier without straining, and "shipping" implies a parcel service in a
19
+ * market where most orders go out on a bike. The child stops using it: the
20
+ * two sections are "Your riders" and "Couriers". The stored values `delivery`
21
+ * and `shipping` are untouched — those are API contract, not copy — and so are
22
+ * the `shippable` / `hideShipping` behavior flags, which no merchant reads.
23
+ *
24
+ * Six files spelled this destination's label by hand, so renaming it meant
25
+ * finding all six. They import from here now, and
26
+ * `fulfilment-nav.test.ts` fails the build when a seventh types it out.
27
+ *
28
+ * The `href` on each row is deliberately still written out at the call site.
29
+ * The route never drifted — all six agreed on it — and the sibling contract
30
+ * guards read nav sources as TEXT: `tab-title-coverage` learns which routes
31
+ * have a nav row by matching `href: '…'`, so folding the literal into a
32
+ * constant made three settings screens report themselves nameless. The href
33
+ * here is for the places that link without declaring a row.
34
+ */
35
+ /** Where orders go and what it costs. Zones, rates, collection. */
36
+ export declare const DELIVERY_NAV: {
37
+ readonly href: "/dashboard/business/shipping";
38
+ readonly label: "Delivery";
39
+ };
40
+ /**
41
+ * The places the business operates FROM. Origins, counters, staff.
42
+ *
43
+ * "Business locations", not "Locations". The bare word is the most overloaded
44
+ * noun in this settings tree — a service area is a location row, a shipping
45
+ * zone names locations, a booking resource has one — so a merchant reading
46
+ * "Locations" in the rail had no way to know which of those it opened. The
47
+ * qualifier says whose: the branches the business itself operates from.
48
+ */
49
+ export declare const LOCATIONS_NAV: {
50
+ readonly href: "/dashboard/operations/locations";
51
+ readonly label: "Business locations";
52
+ };
53
+ /**
54
+ * RETIRED. A zone is the delivery footprint now.
55
+ *
56
+ * This named a list of country/state/city rows (`location_catalog`) that
57
+ * carried geography and nothing else — a copy of the delivery zones a merchant
58
+ * had already drawn, kept in step by hand, and free to disagree with them: the
59
+ * checkout dropdown came from one and the price from the other.
60
+ *
61
+ * The zone is the one that does work. `public/locations/hierarchy` already
62
+ * derived the dropdown from zones whenever this list was empty (which most
63
+ * tenants' was), and `get-fulfilment-options` already refuses a delivery it
64
+ * cannot match to a zone, offering collection instead. So this row asked
65
+ * merchants to state their footprint a second time for nothing.
66
+ *
67
+ * Left as a comment rather than deleted silently, because the word will come
68
+ * back otherwise: whatever names a delivery footprint next, it is a zone.
69
+ */
70
+ /**
71
+ * The two methods, as a merchant reads them.
72
+ *
73
+ * Keyed on the stored value so a section heading and a zone's badge cannot
74
+ * disagree about what `method: 'shipping'` is called.
75
+ */
76
+ export declare const DELIVERY_METHOD_LABELS: {
77
+ readonly delivery: "Your riders";
78
+ readonly shipping: "Couriers";
79
+ };
@@ -0,0 +1,18 @@
1
+ const DELIVERY_NAV = {
2
+ href: "/dashboard/business/shipping",
3
+ label: "Delivery"
4
+ };
5
+ const LOCATIONS_NAV = {
6
+ href: "/dashboard/operations/locations",
7
+ label: "Business locations"
8
+ };
9
+ const DELIVERY_METHOD_LABELS = {
10
+ delivery: "Your riders",
11
+ shipping: "Couriers"
12
+ };
13
+ export {
14
+ DELIVERY_METHOD_LABELS,
15
+ DELIVERY_NAV,
16
+ LOCATIONS_NAV
17
+ };
18
+ //# sourceMappingURL=fulfilment-nav.js.map