@happyvertical/smrt-planner 0.60.13 → 0.60.15

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 (535) hide show
  1. package/app/404.html +18 -18
  2. package/app/_app/immutable/assets/{icons.D6X8tgCK.css → icons.ByhkLIMv.css} +1 -1
  3. package/app/_app/immutable/chunks/{C4h_pFjw.js → B-QbNQ20.js} +1 -1
  4. package/app/_app/immutable/chunks/{DEMOujRJ.js → B4B88unW.js} +1 -1
  5. package/app/_app/immutable/chunks/{B5Hi1VWI.js → B5yIG6Bm.js} +1 -1
  6. package/app/_app/immutable/chunks/{But0ITT-.js → BBenmy2D.js} +1 -1
  7. package/app/_app/immutable/chunks/{C3KQXl2l.js → BW617Cdd.js} +1 -1
  8. package/app/_app/immutable/chunks/{B51N8lPp.js → BZwXiPsG.js} +1 -1
  9. package/app/_app/immutable/chunks/{DWT84qRc.js → BxO54NEj.js} +1 -1
  10. package/app/_app/immutable/chunks/{Bv5X8BNy.js → C17UjKjh.js} +1 -1
  11. package/app/_app/immutable/chunks/{Br6uY3Yq.js → C4P1kzl6.js} +1 -1
  12. package/app/_app/immutable/chunks/{nHXWSv3N.js → C6pcemFo.js} +1 -1
  13. package/app/_app/immutable/chunks/CFhKn4Ro.js +29 -0
  14. package/app/_app/immutable/chunks/{BGQ-W9bn.js → CMTsSJV6.js} +1 -1
  15. package/app/_app/immutable/chunks/CPRaO-Ts.js +1 -0
  16. package/app/_app/immutable/chunks/{D7pmElUN.js → CUH3ig_v.js} +1 -1
  17. package/app/_app/immutable/chunks/{CJ2Zllj9.js → Caow5nDc.js} +3 -3
  18. package/app/_app/immutable/chunks/{CNDSLfdy.js → CcnQIGXF.js} +1 -1
  19. package/app/_app/immutable/chunks/{DwjSIdzz.js → Ctv1P5Pf.js} +1 -1
  20. package/app/_app/immutable/chunks/{B4RZaVLJ.js → Czxq5aIS.js} +1 -1
  21. package/app/_app/immutable/chunks/{q4NZ65-X.js → D-TD1e4P.js} +34 -34
  22. package/app/_app/immutable/chunks/D5oVPPQ5.js +1 -0
  23. package/app/_app/immutable/chunks/{C2fMJvwo.js → D6pDEqtp.js} +1 -1
  24. package/app/_app/immutable/chunks/{BBW1vRik.js → D8bhdH7S.js} +1 -1
  25. package/app/_app/immutable/chunks/{B7faC4d1.js → DA7q6c4M.js} +1 -1
  26. package/app/_app/immutable/chunks/{CKeqIK18.js → DZWuoKFS.js} +2 -2
  27. package/app/_app/immutable/chunks/DaDBCP1x.js +1 -0
  28. package/app/_app/immutable/chunks/{By9bP9S3.js → DiVlkX9H.js} +1 -1
  29. package/app/_app/immutable/chunks/{Dvi40siQ.js → KyvWo5ZG.js} +1 -1
  30. package/app/_app/immutable/chunks/{DFcwqo0O.js → YV-88d-U.js} +1 -1
  31. package/app/_app/immutable/chunks/{DHzXY4VB.js → Z2AywRWF.js} +1 -1
  32. package/app/_app/immutable/entry/{app.BjndgPSr.js → app.DqE5bk3g.js} +2 -2
  33. package/app/_app/immutable/entry/start.BUeSfiAE.js +1 -0
  34. package/app/_app/immutable/nodes/{0.rI80aPf8.js → 0.vvdLgo4F.js} +1 -1
  35. package/app/_app/immutable/nodes/{1.Lw8Leydt.js → 1.5751otcH.js} +1 -1
  36. package/app/_app/immutable/nodes/{10.CqJKKK_s.js → 10.CYe09E3W.js} +1 -1
  37. package/app/_app/immutable/nodes/{11.OK70ZQv0.js → 11.ChjRaejD.js} +1 -1
  38. package/app/_app/immutable/nodes/{12.XlRr7THQ.js → 12.B-0khEQm.js} +1 -1
  39. package/app/_app/immutable/nodes/{13.B1dzCWGd.js → 13.BZcNq7oI.js} +1 -1
  40. package/app/_app/immutable/nodes/{14.CWOnaYcf.js → 14.B1VO18GU.js} +1 -1
  41. package/app/_app/immutable/nodes/{2.DFAv8si-.js → 2.CuJMBorh.js} +3 -3
  42. package/app/_app/immutable/nodes/{3.Cd3k1iaV.js → 3.DR4wyJoZ.js} +1 -1
  43. package/app/_app/immutable/nodes/{4.CYkRXq0B.js → 4.WuD1RnOX.js} +1 -1
  44. package/app/_app/immutable/nodes/{5.Ca82uRca.js → 5.CpjmpM9A.js} +1 -1
  45. package/app/_app/immutable/nodes/{6.DSg_M0vQ.js → 6.BYdd3qET.js} +1 -1
  46. package/app/_app/immutable/nodes/{7.DpmQrBzO.js → 7.BjevUsH5.js} +1 -1
  47. package/app/_app/immutable/nodes/{8.Bgfw55ai.js → 8.DLEzZtHo.js} +1 -1
  48. package/app/_app/immutable/nodes/{9.CBVAQ1rV.js → 9.QyEKPSOX.js} +1 -1
  49. package/app/_app/version.json +1 -1
  50. package/app/advanced-styles/index.html +21 -21
  51. package/app/ai/index.html +25 -25
  52. package/app/blueprint/index.html +19 -19
  53. package/app/cookbook/index.html +19 -19
  54. package/app/index.html +28 -28
  55. package/app/m/ads/AdDeliveryTier/index.html +23 -23
  56. package/app/m/ads/AdEvent/index.html +23 -23
  57. package/app/m/ads/AdFormat/index.html +23 -23
  58. package/app/m/ads/AdGroup/index.html +23 -23
  59. package/app/m/ads/AdVariation/index.html +23 -23
  60. package/app/m/analytics/AnalyticsDataStream/index.html +23 -23
  61. package/app/m/analytics/AnalyticsEvent/index.html +23 -23
  62. package/app/m/analytics/AnalyticsProperty/index.html +23 -23
  63. package/app/m/analytics/AnalyticsReport/index.html +23 -23
  64. package/app/m/approvals/ApprovalEvent/index.html +23 -23
  65. package/app/m/approvals/ApprovalPolicy/index.html +23 -23
  66. package/app/m/approvals/ApprovalRequest/index.html +23 -23
  67. package/app/m/assets/Asset/attachments/index.html +24 -24
  68. package/app/m/assets/Asset/index.html +23 -23
  69. package/app/m/assets/AssetAssociation/index.html +23 -23
  70. package/app/m/assets/AssetMetafield/index.html +23 -23
  71. package/app/m/assets/AssetStatus/index.html +23 -23
  72. package/app/m/assets/AssetType/index.html +23 -23
  73. package/app/m/assets/Folder/index.html +23 -23
  74. package/app/m/chat/AgentSession/index.html +23 -23
  75. package/app/m/chat/ChatMessage/index.html +23 -23
  76. package/app/m/chat/ChatParticipant/index.html +23 -23
  77. package/app/m/chat/ChatReaction/index.html +23 -23
  78. package/app/m/chat/ChatRoom/index.html +23 -23
  79. package/app/m/chat/ChatThread/index.html +23 -23
  80. package/app/m/chat/VoiceGatewayTurn/index.html +23 -23
  81. package/app/m/chat/VoiceSession/index.html +23 -23
  82. package/app/m/commerce/Agreement/index.html +23 -23
  83. package/app/m/commerce/Cart/index.html +23 -23
  84. package/app/m/commerce/Contract/index.html +23 -23
  85. package/app/m/commerce/ContractLineItem/index.html +23 -23
  86. package/app/m/commerce/Customer/index.html +23 -23
  87. package/app/m/commerce/DocumentTax/index.html +23 -23
  88. package/app/m/commerce/Estimate/index.html +23 -23
  89. package/app/m/commerce/Fulfillment/index.html +23 -23
  90. package/app/m/commerce/FulfillmentLineItem/index.html +23 -23
  91. package/app/m/commerce/HistoricalCustomerFunds/index.html +23 -23
  92. package/app/m/commerce/HistoricalCustomerFundsAllocation/index.html +23 -23
  93. package/app/m/commerce/HistoricalSalesLine/index.html +23 -23
  94. package/app/m/commerce/Invoice/index.html +23 -23
  95. package/app/m/commerce/InvoiceLineItem/index.html +23 -23
  96. package/app/m/commerce/Lease/index.html +23 -23
  97. package/app/m/commerce/LicenseSale/index.html +23 -23
  98. package/app/m/commerce/Order/index.html +23 -23
  99. package/app/m/commerce/Payment/index.html +23 -23
  100. package/app/m/commerce/PaymentAllocation/index.html +23 -23
  101. package/app/m/commerce/PaymentInstrument/index.html +23 -23
  102. package/app/m/commerce/PaymentIntent/index.html +23 -23
  103. package/app/m/commerce/Payout/index.html +23 -23
  104. package/app/m/commerce/ProductionOrder/index.html +23 -23
  105. package/app/m/commerce/PurchaseContract/index.html +23 -23
  106. package/app/m/commerce/PurchaseOrder/index.html +23 -23
  107. package/app/m/commerce/SalesContract/index.html +23 -23
  108. package/app/m/commerce/SupplierQuote/index.html +23 -23
  109. package/app/m/commerce/TaxCode/index.html +23 -23
  110. package/app/m/commerce/TaxComponent/index.html +23 -23
  111. package/app/m/commerce/TaxSettings/index.html +23 -23
  112. package/app/m/commerce/TaxSummaryReport/index.html +23 -23
  113. package/app/m/commerce/TenantPaymentAccount/index.html +23 -23
  114. package/app/m/commerce/Vendor/index.html +23 -23
  115. package/app/m/commerce/WholesaleOrder/index.html +23 -23
  116. package/app/m/content/Content/articles/index.html +24 -24
  117. package/app/m/content/Content/index.html +23 -23
  118. package/app/m/content/ContentContribution/index.html +23 -23
  119. package/app/m/content/ContentContributionAttachment/index.html +23 -23
  120. package/app/m/content/ContentContributionRevision/index.html +23 -23
  121. package/app/m/content/ContentContributionType/index.html +23 -23
  122. package/app/m/content/ContentContributor/index.html +23 -23
  123. package/app/m/content/ContentCorrection/index.html +23 -23
  124. package/app/m/content/ContentFeedSource/index.html +23 -23
  125. package/app/m/content/ContentGovernanceAssignment/index.html +23 -23
  126. package/app/m/content/ContentGovernancePolicy/index.html +23 -23
  127. package/app/m/content/ContentGovernanceProfile/index.html +23 -23
  128. package/app/m/content/ContentReference/index.html +23 -23
  129. package/app/m/content/ContentReview/index.html +23 -23
  130. package/app/m/content/ContentVersion/index.html +23 -23
  131. package/app/m/events/Event/index.html +23 -23
  132. package/app/m/events/EventParticipant/index.html +23 -23
  133. package/app/m/events/EventSeries/index.html +23 -23
  134. package/app/m/events/EventType/index.html +23 -23
  135. package/app/m/expenses/Expense/index.html +23 -23
  136. package/app/m/facts/Fact/index.html +23 -23
  137. package/app/m/facts/FactContent/index.html +23 -23
  138. package/app/m/facts/FactEvidence/index.html +23 -23
  139. package/app/m/facts/FactSource/index.html +23 -23
  140. package/app/m/facts/FactSubject/index.html +23 -23
  141. package/app/m/facts/FactTag/index.html +23 -23
  142. package/app/m/fields/FieldPolicy/index.html +23 -23
  143. package/app/m/fields/FieldPolicySuggestion/index.html +23 -23
  144. package/app/m/fields/FieldUsageCounter/index.html +23 -23
  145. package/app/m/human-resources/Employment/index.html +23 -23
  146. package/app/m/human-resources/EmploymentTerm/index.html +23 -23
  147. package/app/m/human-resources/HeldQualification/index.html +23 -23
  148. package/app/m/human-resources/Qualification/index.html +23 -23
  149. package/app/m/images/Image/index.html +23 -23
  150. package/app/m/inventory/InventoryLocation/index.html +23 -23
  151. package/app/m/inventory/Lot/index.html +23 -23
  152. package/app/m/inventory/LotCorrection/index.html +23 -23
  153. package/app/m/inventory/LotDocument/index.html +23 -23
  154. package/app/m/inventory/LotStockLevel/index.html +23 -23
  155. package/app/m/inventory/LotUsage/index.html +23 -23
  156. package/app/m/inventory/StockLevel/index.html +23 -23
  157. package/app/m/inventory/StockMovement/index.html +23 -23
  158. package/app/m/ledgers/Account/index.html +23 -23
  159. package/app/m/ledgers/Journal/index.html +23 -23
  160. package/app/m/ledgers/JournalEntry/index.html +23 -23
  161. package/app/m/ledgers/Ledger/index.html +23 -23
  162. package/app/m/manufacturing/Assembly/index.html +23 -23
  163. package/app/m/manufacturing/BillOfMaterials/index.html +23 -23
  164. package/app/m/manufacturing/BomLine/index.html +23 -23
  165. package/app/m/manufacturing/Operation/index.html +23 -23
  166. package/app/m/manufacturing/ProductionRun/index.html +23 -23
  167. package/app/m/manufacturing/ProductionRunCompletion/index.html +23 -23
  168. package/app/m/manufacturing/RoutingStep/index.html +23 -23
  169. package/app/m/marketing/Campaign/index.html +23 -23
  170. package/app/m/marketing/CampaignChannel/index.html +23 -23
  171. package/app/m/marketing/CampaignMetricSnapshot/index.html +23 -23
  172. package/app/m/messages/Account/index.html +23 -23
  173. package/app/m/messages/Attachment/index.html +23 -23
  174. package/app/m/messages/Blacklist/index.html +23 -23
  175. package/app/m/messages/Email/failed-sends/index.html +24 -24
  176. package/app/m/messages/Email/index.html +23 -23
  177. package/app/m/messages/Email/mailbox/index.html +24 -24
  178. package/app/m/messages/EmailAccount/index.html +23 -23
  179. package/app/m/messages/EmailAttachment/index.html +23 -23
  180. package/app/m/messages/EmailFolder/index.html +23 -23
  181. package/app/m/messages/Message/index.html +23 -23
  182. package/app/m/messages/MessagingEndpoint/index.html +23 -23
  183. package/app/m/messages/PersonaMessageRoute/index.html +23 -23
  184. package/app/m/messages/SlackAccount/index.html +23 -23
  185. package/app/m/messages/SlackMessage/index.html +23 -23
  186. package/app/m/messages/SlackMessage/slack-messages/index.html +24 -24
  187. package/app/m/messages/TelegramAccount/index.html +23 -23
  188. package/app/m/messages/Tweet/index.html +23 -23
  189. package/app/m/messages/TwitterAccount/index.html +23 -23
  190. package/app/m/messages/Whitelist/index.html +23 -23
  191. package/app/m/messages/ZulipAccount/index.html +23 -23
  192. package/app/m/places/Place/index.html +23 -23
  193. package/app/m/places/PlaceType/index.html +23 -23
  194. package/app/m/products/Category/index.html +23 -23
  195. package/app/m/products/Material/index.html +23 -23
  196. package/app/m/products/Product/index.html +23 -23
  197. package/app/m/products/Product/ingredients/index.html +24 -24
  198. package/app/m/products/ProductVariant/index.html +23 -23
  199. package/app/m/products/Sku/index.html +23 -23
  200. package/app/m/profiles/ApiKey/index.html +23 -23
  201. package/app/m/profiles/Bot/index.html +23 -23
  202. package/app/m/profiles/MagicLinkToken/index.html +23 -23
  203. package/app/m/profiles/NostrIdentity/index.html +23 -23
  204. package/app/m/profiles/OidcIdentity/index.html +23 -23
  205. package/app/m/profiles/Organization/index.html +23 -23
  206. package/app/m/profiles/Person/index.html +23 -23
  207. package/app/m/profiles/Profile/index.html +23 -23
  208. package/app/m/profiles/ProfileMetadata/index.html +23 -23
  209. package/app/m/profiles/ProfileMetafield/index.html +23 -23
  210. package/app/m/profiles/ProfileRelationship/index.html +23 -23
  211. package/app/m/profiles/ProfileRelationshipTerm/index.html +23 -23
  212. package/app/m/profiles/ProfileRelationshipType/index.html +23 -23
  213. package/app/m/profiles/ProfileType/index.html +23 -23
  214. package/app/m/projects/Comment/index.html +23 -23
  215. package/app/m/projects/Issue/index.html +23 -23
  216. package/app/m/projects/Label/index.html +23 -23
  217. package/app/m/projects/Project/index.html +23 -23
  218. package/app/m/projects/ProjectIntegration/index.html +23 -23
  219. package/app/m/projects/PullRequest/index.html +23 -23
  220. package/app/m/projects/Repository/index.html +23 -23
  221. package/app/m/properties/Property/index.html +23 -23
  222. package/app/m/properties/Zone/index.html +23 -23
  223. package/app/m/reports/RuntimeReport/index.html +23 -23
  224. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +23 -23
  225. package/app/m/reports/SmrtReportLock/index.html +23 -23
  226. package/app/m/reports/SmrtReportRefreshTask/index.html +23 -23
  227. package/app/m/reports/SmrtReportRun/index.html +23 -23
  228. package/app/m/reports/SmrtReportSchedule/index.html +23 -23
  229. package/app/m/reports/SmrtReportWatermark/index.html +23 -23
  230. package/app/m/sales/Agreement/index.html +23 -23
  231. package/app/m/sales/AttributionException/index.html +23 -23
  232. package/app/m/sales/AttributionPolicy/index.html +23 -23
  233. package/app/m/sales/Commission/index.html +23 -23
  234. package/app/m/sales/CommissionAdjustment/index.html +23 -23
  235. package/app/m/sales/CommissionPayout/index.html +23 -23
  236. package/app/m/sales/CommissionPlan/index.html +23 -23
  237. package/app/m/sales/Earner/index.html +23 -23
  238. package/app/m/sales/EarnerSourceAttribution/index.html +23 -23
  239. package/app/m/sales/EarningEvent/index.html +23 -23
  240. package/app/m/sales/ExecutedAgreement/index.html +23 -23
  241. package/app/m/sales/Lead/index.html +23 -23
  242. package/app/m/sales/Opportunity/index.html +23 -23
  243. package/app/m/sales/OpportunityConversion/index.html +23 -23
  244. package/app/m/sales/PipelineDefinition/index.html +23 -23
  245. package/app/m/sales/PipelineStage/index.html +23 -23
  246. package/app/m/sales/Referral/index.html +23 -23
  247. package/app/m/sales/ReferralAgreement/index.html +23 -23
  248. package/app/m/sales/ReferralLink/index.html +23 -23
  249. package/app/m/sales/ReferralProgram/index.html +23 -23
  250. package/app/m/sales/ReferralTermSnapshot/index.html +23 -23
  251. package/app/m/sales/ReferralTouch/index.html +23 -23
  252. package/app/m/sales/Referrer/index.html +23 -23
  253. package/app/m/sales/ReferrerIdentifier/index.html +23 -23
  254. package/app/m/sales/SalesActivity/index.html +23 -23
  255. package/app/m/sales/SalesRepresentative/index.html +23 -23
  256. package/app/m/sites/Site/index.html +23 -23
  257. package/app/m/sites/SiteAgentBinding/index.html +23 -23
  258. package/app/m/social/OAuthState/index.html +23 -23
  259. package/app/m/social/SocialAccount/index.html +23 -23
  260. package/app/m/social/SocialPost/index.html +23 -23
  261. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +23 -23
  262. package/app/m/subscriptions/BillingAdjustment/index.html +23 -23
  263. package/app/m/subscriptions/ClientCharge/index.html +23 -23
  264. package/app/m/subscriptions/CreditGrant/index.html +23 -23
  265. package/app/m/subscriptions/PricingRule/index.html +23 -23
  266. package/app/m/subscriptions/RetailCharge/index.html +23 -23
  267. package/app/m/subscriptions/SpendingPolicy/index.html +23 -23
  268. package/app/m/subscriptions/SubscriptionPlan/index.html +23 -23
  269. package/app/m/subscriptions/SubscriptionPlanVersion/index.html +23 -23
  270. package/app/m/subscriptions/TenantSubscription/index.html +23 -23
  271. package/app/m/subscriptions/TenantUsageMetric/index.html +23 -23
  272. package/app/m/support/ServiceTimeEntry/index.html +23 -23
  273. package/app/m/support/SupportAiRun/index.html +23 -23
  274. package/app/m/support/SupportAvailability/index.html +23 -23
  275. package/app/m/support/SupportCase/index.html +23 -23
  276. package/app/m/support/SupportCaseEvent/index.html +23 -23
  277. package/app/m/support/SupportChannelBinding/index.html +23 -23
  278. package/app/m/support/SupportCharge/index.html +23 -23
  279. package/app/m/support/SupportCompensation/index.html +23 -23
  280. package/app/m/support/SupportCompensationPlan/index.html +23 -23
  281. package/app/m/support/SupportEscalation/index.html +23 -23
  282. package/app/m/support/SupportInteraction/index.html +23 -23
  283. package/app/m/support/SupportPlan/index.html +23 -23
  284. package/app/m/support/SupportPolicy/index.html +23 -23
  285. package/app/m/support/SupportQualification/index.html +23 -23
  286. package/app/m/support/SupportServiceTarget/index.html +23 -23
  287. package/app/m/support/SupportSpecialist/index.html +23 -23
  288. package/app/m/support/SupportWorkLink/index.html +23 -23
  289. package/app/m/tags/Tag/index.html +23 -23
  290. package/app/m/tags/TagAlias/index.html +23 -23
  291. package/app/m/timesheets/AttendanceBreak/index.html +23 -23
  292. package/app/m/timesheets/AttendancePunch/index.html +23 -23
  293. package/app/m/timesheets/AttendanceSegment/index.html +23 -23
  294. package/app/m/timesheets/ServiceChargeSnapshot/index.html +23 -23
  295. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +23 -23
  296. package/app/m/timesheets/ServiceTimeEntry/index.html +23 -23
  297. package/app/m/users/Group/index.html +23 -23
  298. package/app/m/users/GroupMember/index.html +23 -23
  299. package/app/m/users/GroupRole/index.html +23 -23
  300. package/app/m/users/Membership/index.html +23 -23
  301. package/app/m/users/MembershipOverride/index.html +23 -23
  302. package/app/m/users/Permission/index.html +23 -23
  303. package/app/m/users/Role/index.html +23 -23
  304. package/app/m/users/RolePermission/index.html +23 -23
  305. package/app/m/users/Session/index.html +23 -23
  306. package/app/m/users/Tenant/index.html +23 -23
  307. package/app/m/users/TenantIntegration/index.html +23 -23
  308. package/app/m/users/TenantPermissionOverride/index.html +23 -23
  309. package/app/m/users/User/index.html +23 -23
  310. package/app/m/video/Character/index.html +23 -23
  311. package/app/m/video/CharacterAsset/index.html +23 -23
  312. package/app/m/video/CompositeJob/index.html +23 -23
  313. package/app/m/video/Performer/index.html +23 -23
  314. package/app/m/video/PerformerAsset/index.html +23 -23
  315. package/app/m/video/Scene/index.html +23 -23
  316. package/app/m/video/SceneAsset/index.html +23 -23
  317. package/app/m/video/VideoComposition/index.html +23 -23
  318. package/app/m/video/VideoCompositionAsset/index.html +23 -23
  319. package/app/m/video/VideoSequence/index.html +23 -23
  320. package/app/m/video/VideoSequenceAsset/index.html +23 -23
  321. package/app/m/video/VideoShot/index.html +23 -23
  322. package/app/m/video/VideoShotAsset/index.html +23 -23
  323. package/app/m/video/VideoShotCharacter/index.html +23 -23
  324. package/app/m/video/VideoWorkflow/index.html +23 -23
  325. package/app/m/voice/VoiceOutput/index.html +23 -23
  326. package/app/m/voice/VoiceProfile/index.html +23 -23
  327. package/app/m/voice/VoiceSample/index.html +23 -23
  328. package/app/mcp.html +2 -2
  329. package/app/packages/ads/index.html +21 -21
  330. package/app/packages/analytics/index.html +21 -21
  331. package/app/packages/approvals/index.html +21 -21
  332. package/app/packages/assets/index.html +21 -21
  333. package/app/packages/chat/index.html +21 -21
  334. package/app/packages/comments/index.html +21 -21
  335. package/app/packages/commerce/index.html +21 -21
  336. package/app/packages/content/index.html +21 -21
  337. package/app/packages/events/index.html +21 -21
  338. package/app/packages/expenses/index.html +22 -22
  339. package/app/packages/facts/index.html +21 -21
  340. package/app/packages/fields/index.html +21 -21
  341. package/app/packages/human-resources/index.html +21 -21
  342. package/app/packages/images/index.html +21 -21
  343. package/app/packages/index.html +21 -21
  344. package/app/packages/inference/index.html +82 -0
  345. package/app/packages/ingestion/index.html +21 -21
  346. package/app/packages/inventory/index.html +21 -21
  347. package/app/packages/ledgers/index.html +21 -21
  348. package/app/packages/manufacturing/index.html +21 -21
  349. package/app/packages/marketing/index.html +21 -21
  350. package/app/packages/messages/index.html +22 -22
  351. package/app/packages/places/index.html +21 -21
  352. package/app/packages/preferences/index.html +21 -21
  353. package/app/packages/products/index.html +21 -21
  354. package/app/packages/profiles/index.html +21 -21
  355. package/app/packages/projects/index.html +21 -21
  356. package/app/packages/properties/index.html +21 -21
  357. package/app/packages/reactions/index.html +21 -21
  358. package/app/packages/reports/index.html +21 -21
  359. package/app/packages/sales/index.html +21 -21
  360. package/app/packages/sites/index.html +21 -21
  361. package/app/packages/social/index.html +21 -21
  362. package/app/packages/subscriptions/index.html +21 -21
  363. package/app/packages/support/index.html +21 -21
  364. package/app/packages/tags/index.html +21 -21
  365. package/app/packages/timesheets/index.html +21 -21
  366. package/app/packages/users/index.html +21 -21
  367. package/app/packages/video/index.html +21 -21
  368. package/app/packages/voice/index.html +21 -21
  369. package/app/packages/webhooks/index.html +21 -21
  370. package/app/recipes/account-access/help/index.html +21 -21
  371. package/app/recipes/account-access/index.html +23 -23
  372. package/app/recipes/activity/help/index.html +21 -21
  373. package/app/recipes/activity/index.html +23 -23
  374. package/app/recipes/ads.campaigns/help/index.html +21 -21
  375. package/app/recipes/ads.campaigns/index.html +23 -23
  376. package/app/recipes/affiliates.referrals/help/index.html +21 -21
  377. package/app/recipes/affiliates.referrals/index.html +23 -23
  378. package/app/recipes/agreements/help/index.html +21 -21
  379. package/app/recipes/agreements/index.html +23 -23
  380. package/app/recipes/analytics.reports/help/index.html +21 -21
  381. package/app/recipes/analytics.reports/index.html +23 -23
  382. package/app/recipes/approvals.requests/help/index.html +21 -21
  383. package/app/recipes/approvals.requests/index.html +23 -23
  384. package/app/recipes/assets/help/index.html +21 -21
  385. package/app/recipes/assets/index.html +23 -23
  386. package/app/recipes/billing/help/index.html +21 -21
  387. package/app/recipes/billing/index.html +23 -23
  388. package/app/recipes/chat.assistant/help/index.html +21 -21
  389. package/app/recipes/chat.assistant/index.html +23 -23
  390. package/app/recipes/comments/help/index.html +21 -21
  391. package/app/recipes/comments/index.html +23 -23
  392. package/app/recipes/commerce.customers/help/index.html +21 -21
  393. package/app/recipes/commerce.customers/index.html +23 -23
  394. package/app/recipes/commerce.estimates/help/index.html +21 -21
  395. package/app/recipes/commerce.estimates/index.html +23 -23
  396. package/app/recipes/commerce.purchases/help/index.html +21 -21
  397. package/app/recipes/commerce.purchases/index.html +23 -23
  398. package/app/recipes/commerce.sales/help/index.html +21 -21
  399. package/app/recipes/commerce.sales/index.html +23 -23
  400. package/app/recipes/commerce.vendors/help/index.html +21 -21
  401. package/app/recipes/commerce.vendors/index.html +23 -23
  402. package/app/recipes/commerce.wholesale/help/index.html +21 -21
  403. package/app/recipes/commerce.wholesale/index.html +23 -23
  404. package/app/recipes/content.articles/help/index.html +21 -21
  405. package/app/recipes/content.articles/index.html +23 -23
  406. package/app/recipes/events.calendar/help/index.html +21 -21
  407. package/app/recipes/events.calendar/index.html +23 -23
  408. package/app/recipes/expenses.tracking/help/index.html +22 -22
  409. package/app/recipes/expenses.tracking/index.html +23 -23
  410. package/app/recipes/fields.form-customization/help/index.html +21 -21
  411. package/app/recipes/fields.form-customization/index.html +23 -23
  412. package/app/recipes/human-resources.people/help/index.html +21 -21
  413. package/app/recipes/human-resources.people/index.html +23 -23
  414. package/app/recipes/human-resources.qualifications/help/index.html +21 -21
  415. package/app/recipes/human-resources.qualifications/index.html +23 -23
  416. package/app/recipes/ingestion/help/index.html +21 -21
  417. package/app/recipes/ingestion/index.html +23 -23
  418. package/app/recipes/integrations/help/index.html +21 -21
  419. package/app/recipes/integrations/index.html +23 -23
  420. package/app/recipes/inventory.stock/help/index.html +21 -21
  421. package/app/recipes/inventory.stock/index.html +23 -23
  422. package/app/recipes/ledgers.bookkeeping/help/index.html +21 -21
  423. package/app/recipes/ledgers.bookkeeping/index.html +23 -23
  424. package/app/recipes/manufacturing.assemblies/help/index.html +21 -21
  425. package/app/recipes/manufacturing.assemblies/index.html +23 -23
  426. package/app/recipes/manufacturing.production/help/index.html +21 -21
  427. package/app/recipes/manufacturing.production/index.html +23 -23
  428. package/app/recipes/marketing.campaigns/help/index.html +21 -21
  429. package/app/recipes/marketing.campaigns/index.html +23 -23
  430. package/app/recipes/messages/help/index.html +22 -22
  431. package/app/recipes/messages/index.html +23 -23
  432. package/app/recipes/places.locations/help/index.html +21 -21
  433. package/app/recipes/places.locations/index.html +23 -23
  434. package/app/recipes/products/help/index.html +21 -21
  435. package/app/recipes/products/index.html +23 -23
  436. package/app/recipes/projects.tracker/help/index.html +21 -21
  437. package/app/recipes/projects.tracker/index.html +23 -23
  438. package/app/recipes/reports.materialized/help/index.html +21 -21
  439. package/app/recipes/reports.materialized/index.html +23 -23
  440. package/app/recipes/reports.runtime/help/index.html +21 -21
  441. package/app/recipes/reports.runtime/index.html +23 -23
  442. package/app/recipes/sales.pipeline/help/index.html +21 -21
  443. package/app/recipes/sales.pipeline/index.html +23 -23
  444. package/app/recipes/social.posts/help/index.html +21 -21
  445. package/app/recipes/social.posts/index.html +23 -23
  446. package/app/recipes/subscriptions.plans/help/index.html +21 -21
  447. package/app/recipes/subscriptions.plans/index.html +23 -23
  448. package/app/recipes/support.tickets/help/index.html +21 -21
  449. package/app/recipes/support.tickets/index.html +23 -23
  450. package/app/recipes/tags.taxonomy/help/index.html +21 -21
  451. package/app/recipes/tags.taxonomy/index.html +23 -23
  452. package/app/recipes/team-collaboration/help/index.html +21 -21
  453. package/app/recipes/team-collaboration/index.html +23 -23
  454. package/app/recipes/timesheets.time-entries/help/index.html +21 -21
  455. package/app/recipes/timesheets.time-entries/index.html +23 -23
  456. package/app/recipes/video.library/help/index.html +21 -21
  457. package/app/recipes/video.library/index.html +23 -23
  458. package/app/recipes/voice.profiles/help/index.html +21 -21
  459. package/app/recipes/voice.profiles/index.html +23 -23
  460. package/app/s/custom-accounts/index.html +19 -19
  461. package/app/s/custom-appointments/index.html +19 -19
  462. package/app/s/custom-billing/index.html +19 -19
  463. package/app/s/custom-bookings/index.html +19 -19
  464. package/app/s/custom-buying/index.html +19 -19
  465. package/app/s/custom-checkout/index.html +19 -19
  466. package/app/s/custom-classes/index.html +19 -19
  467. package/app/s/custom-clients/index.html +19 -19
  468. package/app/s/custom-events/index.html +19 -19
  469. package/app/s/custom-fleet/index.html +19 -19
  470. package/app/s/custom-gigs/index.html +19 -19
  471. package/app/s/custom-giving/index.html +19 -19
  472. package/app/s/custom-instruments/index.html +19 -19
  473. package/app/s/custom-jobs/index.html +19 -19
  474. package/app/s/custom-kitchen/index.html +19 -19
  475. package/app/s/custom-lessons/index.html +19 -19
  476. package/app/s/custom-material/index.html +19 -19
  477. package/app/s/custom-meetings/index.html +19 -19
  478. package/app/s/custom-members/index.html +19 -19
  479. package/app/s/custom-merch/index.html +19 -19
  480. package/app/s/custom-money/index.html +19 -19
  481. package/app/s/custom-paint/index.html +19 -19
  482. package/app/s/custom-parts/index.html +19 -19
  483. package/app/s/custom-rentals/index.html +19 -19
  484. package/app/s/custom-roastery/index.html +19 -19
  485. package/app/s/custom-schedule/index.html +19 -19
  486. package/app/s/custom-shelf/index.html +19 -19
  487. package/app/s/custom-shop/index.html +19 -19
  488. package/app/s/custom-students/index.html +19 -19
  489. package/app/s/custom-wholesale/index.html +19 -19
  490. package/app/s/custom-work/index.html +19 -19
  491. package/app/s/custom-yard/index.html +19 -19
  492. package/app/s/section-access-control/index.html +19 -19
  493. package/app/s/section-account-security/index.html +19 -19
  494. package/app/s/section-accounting/index.html +19 -19
  495. package/app/s/section-activity/index.html +19 -19
  496. package/app/s/section-agreements/index.html +19 -19
  497. package/app/s/section-analytics/index.html +19 -19
  498. package/app/s/section-approvals/index.html +19 -19
  499. package/app/s/section-assets/index.html +19 -19
  500. package/app/s/section-billing/index.html +19 -19
  501. package/app/s/section-calendar/index.html +19 -19
  502. package/app/s/section-catalog/index.html +19 -19
  503. package/app/s/section-chat.assistant/index.html +19 -19
  504. package/app/s/section-comments/index.html +19 -19
  505. package/app/s/section-fields.form-customization/index.html +19 -19
  506. package/app/s/section-grow/index.html +19 -19
  507. package/app/s/section-ingestion/index.html +19 -19
  508. package/app/s/section-integrations/index.html +19 -19
  509. package/app/s/section-make/index.html +19 -19
  510. package/app/s/section-messages/index.html +19 -19
  511. package/app/s/section-more/index.html +19 -19
  512. package/app/s/section-operations/index.html +19 -19
  513. package/app/s/section-places/index.html +19 -19
  514. package/app/s/section-projects/index.html +19 -19
  515. package/app/s/section-publish/index.html +19 -19
  516. package/app/s/section-purchasing/index.html +19 -19
  517. package/app/s/section-reports.materialized/index.html +19 -19
  518. package/app/s/section-reports.runtime/index.html +19 -19
  519. package/app/s/section-sales/index.html +19 -19
  520. package/app/s/section-staff/index.html +19 -19
  521. package/app/s/section-support/index.html +19 -19
  522. package/app/s/section-taxonomy/index.html +19 -19
  523. package/app/s/section-team/index.html +19 -19
  524. package/app/s/section-work/index.html +19 -19
  525. package/dist/catalog/catalog.json +679 -40
  526. package/dist/core/index.js +1172 -592
  527. package/dist/smrt-knowledge.okf.md +3 -2
  528. package/dist/smrt-version.d.ts +1 -1
  529. package/dist/smrt-version.js +1 -1
  530. package/package.json +56 -55
  531. package/app/_app/immutable/chunks/BiIR6hYE.js +0 -1
  532. package/app/_app/immutable/chunks/DYaOo5kp.js +0 -1
  533. package/app/_app/immutable/chunks/DmK2c-4s.js +0 -1
  534. package/app/_app/immutable/chunks/KYQTW01W.js +0 -29
  535. package/app/_app/immutable/entry/start.B9yIQ_AO.js +0 -1
@@ -0,0 +1 @@
1
+ import"./DG3qFFTE.js";import"./xihTtKlq.js";import"./D-TD1e4P.js";import"./Caow5nDc.js";import"./v8gneLl4.js";import"./C6pcemFo.js";import"./CGVkRTMI.js";function e(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}export{e as t};
@@ -1 +1 @@
1
- import{D as e,M as t,w as n}from"./q4NZ65-X.js";import{r}from"./BGQ-W9bn.js";var i=`@happyvertical/smrt-assets:Asset`,a=`@happyvertical/smrt-products:ProductAsset`,o=`assets.library`;function s(e,t,n){let r=new Map(t.map(e=>[e.id,e]));return n.filter(t=>t.productId===e).flatMap(e=>{let t=r.get(String(e.assetId)),n=t?.sourceUri;return!t||typeof n!=`string`?[]:[{id:t.id,name:String(t.name??`Product image`),sourceUri:n,mimeType:String(t.mimeType??`image/*`),description:String(t.description??``),sortOrder:Number(e.sortOrder??0)}]}).sort((e,t)=>e.sortOrder-t.sortOrder||e.name.localeCompare(t.name))}function c(e,t,n,o){return[{op:`save`,as:`asset`,model:r(i),values:{name:t.name||`Product image`,sourceUri:n,mimeType:t.type||`image/*`,description:`Image selected for this product in the browser demo.`,sourceType:`browser-demo`}},{op:`save`,model:r(a),values:{productId:e,assetId:{ref:`asset`},relationship:`gallery`,sortOrder:o}}]}function l(e,t){return t.filter(t=>t.productId===e).flatMap(e=>[{op:`delete`,model:r(a),id:e.id},{op:`delete`,model:r(i),id:String(e.assetId)}])}var u=`@happyvertical/smrt-products:Product`,d=`@happyvertical/smrt-products:ProductVariant`,f=`@happyvertical/smrt-products:Sku`,p=`@happyvertical/smrt-inventory:StockLevel`,m=`@happyvertical/smrt-profiles:ProfileType`,h=`@happyvertical/smrt-inventory:InventoryLocation`;function g(r){return{[h]:{from:[],make:()=>(t().locations??[]).map((e,t)=>({id:n(`${h}:sample:${t}`),...e,placeId:``,active:!0}))},[f]:{from:[r(u)],make:([e])=>(e??[]).map((e,t)=>({id:n(`${f}:sample:${e.id}`),productId:e.id,code:`SKU-${String(t+1).padStart(3,`0`)}`,barcode:``,name:String(e.name??``),attributes:``,parentSkuId:``,active:!0}))},[p]:{from:[r(f),r(h)],make:([r,i])=>{let a=t(),o=new Map(a.products.map(e=>[e.name,e.at]));return(r??[]).flatMap(t=>(i??[]).flatMap((r,i)=>{let a=e(`${t.id}:${r.id}`),s=o.get(String(t.name));if(s!==void 0){if(s!==i)return[]}else if(i>0&&a%3==0)return[];let c=10+a%4*5;return[{id:n(`${p}:sample:${t.id}:${r.id}`),skuId:t.id,locationId:r.id,state:`available`,qty:a%5==0?c-3:c+a%40,reorderPoint:c,reorderQuantity:c*3}]}))}}}}function _(e,t){let n=new Map(e.map(e=>[e.id,e.productId])),r=new Map;for(let e of t){let t=n.get(String(e.skuId));typeof t==`string`&&r.set(t,(r.get(t)??0)+Number(e.qty??0))}return r}function v(e,t,n,r=[]){return[...l(e,r),...t.flatMap(e=>[{op:`delete`,model:n(p),match:{skuId:e.id}},{op:`delete`,model:n(f),id:e.id}]),{op:`delete`,model:n(d),match:{productId:e}},{op:`delete`,model:n(u),id:e}]}export{d as a,g as c,a as d,c as f,p as i,i as l,m as n,v as o,s as p,f as r,_ as s,u as t,o as u};
1
+ import{D as e,M as t,w as n}from"./D-TD1e4P.js";import{r}from"./CMTsSJV6.js";var i=`@happyvertical/smrt-assets:Asset`,a=`@happyvertical/smrt-products:ProductAsset`,o=`assets.library`;function s(e,t,n){let r=new Map(t.map(e=>[e.id,e]));return n.filter(t=>t.productId===e).flatMap(e=>{let t=r.get(String(e.assetId)),n=t?.sourceUri;return!t||typeof n!=`string`?[]:[{id:t.id,name:String(t.name??`Product image`),sourceUri:n,mimeType:String(t.mimeType??`image/*`),description:String(t.description??``),sortOrder:Number(e.sortOrder??0)}]}).sort((e,t)=>e.sortOrder-t.sortOrder||e.name.localeCompare(t.name))}function c(e,t,n,o){return[{op:`save`,as:`asset`,model:r(i),values:{name:t.name||`Product image`,sourceUri:n,mimeType:t.type||`image/*`,description:`Image selected for this product in the browser demo.`,sourceType:`browser-demo`}},{op:`save`,model:r(a),values:{productId:e,assetId:{ref:`asset`},relationship:`gallery`,sortOrder:o}}]}function l(e,t){return t.filter(t=>t.productId===e).flatMap(e=>[{op:`delete`,model:r(a),id:e.id},{op:`delete`,model:r(i),id:String(e.assetId)}])}var u=`@happyvertical/smrt-products:Product`,d=`@happyvertical/smrt-products:ProductVariant`,f=`@happyvertical/smrt-products:Sku`,p=`@happyvertical/smrt-inventory:StockLevel`,m=`@happyvertical/smrt-profiles:ProfileType`,h=`@happyvertical/smrt-inventory:InventoryLocation`;function g(r){return{[h]:{from:[],make:()=>(t().locations??[]).map((e,t)=>({id:n(`${h}:sample:${t}`),...e,placeId:``,active:!0}))},[f]:{from:[r(u)],make:([e])=>(e??[]).map((e,t)=>({id:n(`${f}:sample:${e.id}`),productId:e.id,code:`SKU-${String(t+1).padStart(3,`0`)}`,barcode:``,name:String(e.name??``),attributes:``,parentSkuId:``,active:!0}))},[p]:{from:[r(f),r(h)],make:([r,i])=>{let a=t(),o=new Map(a.products.map(e=>[e.name,e.at]));return(r??[]).flatMap(t=>(i??[]).flatMap((r,i)=>{let a=e(`${t.id}:${r.id}`),s=o.get(String(t.name));if(s!==void 0){if(s!==i)return[]}else if(i>0&&a%3==0)return[];let c=10+a%4*5;return[{id:n(`${p}:sample:${t.id}:${r.id}`),skuId:t.id,locationId:r.id,state:`available`,qty:a%5==0?c-3:c+a%40,reorderPoint:c,reorderQuantity:c*3}]}))}}}}function _(e,t){let n=new Map(e.map(e=>[e.id,e.productId])),r=new Map;for(let e of t){let t=n.get(String(e.skuId));typeof t==`string`&&r.set(t,(r.get(t)??0)+Number(e.qty??0))}return r}function v(e,t,n,r=[]){return[...l(e,r),...t.flatMap(e=>[{op:`delete`,model:n(p),match:{skuId:e.id}},{op:`delete`,model:n(f),id:e.id}]),{op:`delete`,model:n(d),match:{productId:e}},{op:`delete`,model:n(u),id:e}]}export{d as a,g as c,a as d,c as f,p as i,i as l,m as n,v as o,s as p,f as r,_ as s,u as t,o as u};
@@ -1,4 +1,4 @@
1
- import{$ as e,B as t,Ct as n,D as r,Dt as i,E as a,Ft as o,G as s,H as c,J as l,L as u,Ot as d,Pt as f,U as p,W as m,X as h,Y as g,a as _,b as v,bt as y,ct as b,ft as x,ht as S,mt as C,pt as w,st as T,v as E,vt as D}from"./DG3qFFTE.js";import"./xihTtKlq.js";import{n as O}from"./DK8Blf1Y.js";import{n as k}from"./v8gneLl4.js";import{b as A,i as j,x as M}from"./CGVkRTMI.js";import{A as N,D as P,E as F,O as I,T as L,_ as R,i as z,k as B,n as V,r as ee,t as H,v as U,w as te}from"./KYQTW01W.js";import{nt as W}from"./D7pmElUN.js";var ne=s(`<p class="notice svelte-19u3zp7" role="status"> </p>`),G=s(`<option> </option>`),re=s(`<label class="svelte-19u3zp7">Assistant mode <!></label> <p class="meta svelte-19u3zp7">Changing modes happens only when you choose it here.</p>`,1),ie=s(`<p class="status svelte-19u3zp7">Inference off</p> <p class="meta svelte-19u3zp7">Build, edit, validate and export your cookbook without a model. No
1
+ import{$ as e,B as t,Ct as n,D as r,Dt as i,E as a,Ft as o,G as s,H as c,J as l,L as u,Ot as d,Pt as f,U as p,W as m,X as h,Y as g,a as _,b as v,bt as y,ct as b,ft as x,ht as S,mt as C,pt as w,st as T,v as E,vt as D}from"./DG3qFFTE.js";import"./xihTtKlq.js";import{n as O}from"./DK8Blf1Y.js";import{n as k}from"./v8gneLl4.js";import{b as A,i as j,x as M}from"./CGVkRTMI.js";import{A as N,D as P,E as F,O as I,T as L,_ as R,i as z,k as B,n as V,r as ee,t as H,v as U,w as te}from"./CFhKn4Ro.js";import{nt as W}from"./CUH3ig_v.js";var ne=s(`<p class="notice svelte-19u3zp7" role="status"> </p>`),G=s(`<option> </option>`),re=s(`<label class="svelte-19u3zp7">Assistant mode <!></label> <p class="meta svelte-19u3zp7">Changing modes happens only when you choose it here.</p>`,1),ie=s(`<p class="status svelte-19u3zp7">Inference off</p> <p class="meta svelte-19u3zp7">Build, edit, validate and export your cookbook without a model. No
2
2
  provider is contacted and no browser model is downloaded.</p>`,1),ae=s(`<p class="status svelte-19u3zp7">Server</p> <p class="meta svelte-19u3zp7">This site's server answers the assistant. What you type, and a short
3
3
  summary of your plan, is sent to it. Nothing is downloaded.</p>`,1),oe=s(`<p class="meta svelte-19u3zp7">A key is saved for another address, so it is not used here. Paste it again for this address.</p>`),se=s(`<div class="field svelte-19u3zp7"><!> <!></div> <!> <p class="meta svelte-19u3zp7"> <button class="link svelte-19u3zp7" type="button">Forget the key</button></p>`,1),ce=s(`<p class="meta svelte-19u3zp7"><strong>Browser access.</strong> </p>`),le=s(`<p> </p>`),ue=s(`<p class="status svelte-19u3zp7" role="status"> </p>`),de=s(`<label class="svelte-19u3zp7">Model provider <!></label> <div class="field svelte-19u3zp7"><!> <!></div> <div class="field svelte-19u3zp7"><!> <!></div> <!> <!> <p class="meta svelte-19u3zp7">What you type, and a short summary of your plan, is sent to this
4
4
  endpoint.</p> <!> <!> <div class="actions svelte-19u3zp7"><!> <!></div>`,1),fe=s(`<p role="status" class="svelte-19u3zp7">This browser has no WebGPU, which the model needs. Try a recent
@@ -1 +1 @@
1
- import{$ as e,B as t,C as n,Ct as r,Dt as i,E as a,Et as o,Ft as s,G as c,H as l,J as u,K as d,L as f,Ot as ee,Pt as p,S as m,Tt as h,U as g,X as _,Y as v,Z as y,_ as b,a as x,b as te,bt as S,ct as ne,d as C,ft as w,gt as T,ht as E,k as D,kt as O,mt as k,n as A,nt as j,pt as M,q as re,st as N,v as P,vt as F,w as I,wt as L}from"./DG3qFFTE.js";import"./xihTtKlq.js";import{a as R}from"./BLUInGBV.js";import{a as z,t as ie}from"./Bq8E3AWP.js";import"./v8gneLl4.js";import{i as B}from"./DIE02RSm.js";import{t as V}from"./CUyVrfsu.js";import{x as ae}from"./CGVkRTMI.js";import{t as oe}from"./D042ejzG.js";import"./DFcwqo0O.js";import{nt as se}from"./D7pmElUN.js";function ce(){return V()}var H=z({"ui.address_input.street_placeholder":`123 Main Street`,"ui.address_input.city_placeholder":`City`,"ui.address_input.postal_code_placeholder":`A1A 1A1`,"ui.date_range_input.mic_aria_label":`Hold to speak date range`,"ui.date_range_input.parsing":`Parsing dates...`,"ui.date_range_input.end_after_start":`End date must be after start date`,"ui.date_time_input.mic_aria_label":`Hold to speak`,"ui.date_time_input.parsing":`Parsing date...`,"ui.file_upload.remove_file":`Remove {name}`,"ui.file_upload.required":`Select a file to upload`,"ui.file_upload.rejected_type":`{count} file(s) rejected: type not allowed`,"ui.file_upload.exceeds_max_size":`{count} file(s) exceed the maximum size of {size}`,"ui.form.extracting":`Extracting form fields…`,"ui.form.listening_status":`Listening. Say "done" to finish.`,"ui.form.listening_button":`Listening... (say "done" to finish)`,"ui.form.speak_all_fields":`Speak all fields`,"ui.form.you_said":`You said:`,"ui.form_mic_button.tooltip":`Speak to fill all fields. Click again to stop.`,"ui.measurement_input.value_at_least":`Value must be at least {min} {unit}`,"ui.measurement_input.value_at_most":`Value must be at most {max} {unit}`,"ui.money_input.value_at_least":`Value must be at least {min}`,"ui.money_input.value_at_most":`Value must be at most {max}`,"ui.number_input.value_at_least":`Value must be at least {min}`,"ui.number_input.value_at_most":`Value must be at most {max}`,"ui.phone_input.mic_aria_label":`Hold to speak`,"ui.phone_input.downloading_model":`Downloading Whisper model... {progress}%`,"ui.phone_input.invalid":`Invalid phone number`,"ui.search_input.clear_aria_label":`Clear search`,"ui.text_input.mic_aria_label":`Hold to speak`,"ui.text_input.downloading_model":`Downloading Whisper model... {progress}%`,"ui.text_input.invalid_email":`Invalid email address`,"ui.textarea_input.mic_aria_label":`Hold to speak`,"ui.textarea_input.downloading_model":`Downloading Whisper model... {progress}%`}),U=Symbol(`smrt-form`),W=new WeakMap;function G(e){let t=new Map;return{get mode(){return e.mode},registerField(n){let r=n.name,i=e.registerField(n),a=typeof i==`function`?i:()=>e.unregisterField(r),o=!0,s=()=>{if(!o)return;o=!1;let e=t.get(r);e?.delete(s),e?.size===0&&t.delete(r),a()},c=t.get(r)??new Set;return c.add(s),t.set(r,c),s},unregisterField(e){let n=t.get(e)?.values().next().value;n?.()},getFieldSchema:()=>e.getFieldSchema(),get isFormListening(){return e.isFormListening},get isExtracting(){return e.isExtracting},toggleListening:()=>e.toggleListening(),get interactionRegistry(){return e.interactionRegistry},get formId(){return e.formId}}}function K(e){let t=h(),n=W.get(t);if(n)return n;let r=o(U);if(!r){if(!e)return null;throw Error(`Form context not found. Make sure to wrap your inputs with <SMRTForm>`)}let i=G(r);return W.set(t,i),O(U,i),i}function le(){return K(!1)}function ue(e){if(e==null)return``;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return String(e);throw Error(`staged_value_invalid`)}function de(){throw Error(`staged_value_invalid`)}var fe=c(`<div class="field-row full-width svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <input type="text"/></div>`),q=c(`<div class="field-row flex-2 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <input type="text"/></div>`),J=c(`<option> </option>`),pe=c(`<div class="field-row flex-1 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <select><option>Select...</option><!></select></div>`),me=c(`<div class="field-row flex-1 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <input type="text"/></div>`),he=c(`<div class="field-row flex-1 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <select></select></div>`),ge=c(`<div class="validation-error svelte-5rbjmj" role="alert"> </div>`),_e=c(`<div class="smrt-address svelte-5rbjmj" data-smrt-component="AddressInput"><!> <div><!> <div class="field-row-group svelte-5rbjmj"><!> <!></div> <div class="field-row-group svelte-5rbjmj"><!> <!></div></div> <!></div>`);function Y(o,c){let u=re();ee(c,!0);let{t:d}=ie(),p=[{value:`CA`,label:`Canada`},{value:`US`,label:`United States`}],h=[{value:`AB`,label:`Alberta`},{value:`BC`,label:`British Columbia`},{value:`MB`,label:`Manitoba`},{value:`NB`,label:`New Brunswick`},{value:`NL`,label:`Newfoundland and Labrador`},{value:`NS`,label:`Nova Scotia`},{value:`NT`,label:`Northwest Territories`},{value:`NU`,label:`Nunavut`},{value:`ON`,label:`Ontario`},{value:`PE`,label:`Prince Edward Island`},{value:`QC`,label:`Quebec`},{value:`SK`,label:`Saskatchewan`},{value:`YT`,label:`Yukon`},{value:`US-CA`,label:`California`},{value:`US-NY`,label:`New York`},{value:`US-TX`,label:`Texas`},{value:`US-FL`,label:`Florida`},{value:`US-WA`,label:`Washington`}],v=x(c,`value`,31,()=>T({})),y=x(c,`fields`,19,()=>[`street`,`city`,`province`,`postalCode`,`country`]),C=x(c,`disabled`,3,!1),D=x(c,`required`,3,!1),O=x(c,`countries`,3,p),A=x(c,`provinces`,3,h);function M(){return[...new Set(O().map(e=>e.value))]}function I(){return[...new Set([...D()?[]:[``],...A().map(e=>e.value)])]}function L(e){return e===`country`?{type:`string`,enum:M()}:e===`province`?{type:`string`,enum:I()}:{type:`string`}}function R(e){if(typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!(![Object.prototype,null].includes(Object.getPrototypeOf(t))||!Object.keys(t).every(e=>y().includes(e))||!y().every(e=>!Object.hasOwn(t,e)||typeof t[e]==`string`)||Object.hasOwn(t,`country`)&&!M().includes(t.country)||Object.hasOwn(t,`province`)&&!I().includes(t.province))}function z(e){if(e==null)return!D();if(!R(e))return!1;if(!D())return!0;let t=e;return y().every(e=>typeof t[e]==`string`&&t[e].trim().length>0)}let B=ce(),V=le(),oe=`smrt-rich-field-${u}`,se=r(()=>B.state.mode===`smrt`),U=S(T(v().street??``)),W=S(T(v().city??``)),G=S(T(v().province??``)),K=S(T(v().postalCode??``)),Y=S(T(v().country??j(()=>O()[0]?.value??``)));ne(()=>{v().street!==void 0&&v().street!==e(U)&&F(U,v().street,!0),v().city!==void 0&&v().city!==e(W)&&F(W,v().city,!0),v().province!==void 0&&v().province!==e(G)&&F(G,v().province,!0),v().postalCode!==void 0&&v().postalCode!==e(K)&&F(K,v().postalCode,!0),v().country!==void 0&&v().country!==e(Y)&&F(Y,v().country,!0)});function ve(){let t={};return y().includes(`street`)&&(t.street=e(U)),y().includes(`city`)&&(t.city=e(W)),y().includes(`province`)&&(t.province=e(G)),y().includes(`postalCode`)&&(t.postalCode=e(K)),y().includes(`country`)&&(t.country=e(Y)),t}function X(){let e=ve();v(e),c.onchange?.(e)}function ye(e){let t={},n=e.toLowerCase().trim(),r=n.match(/([a-z]\d[a-z]\s?\d[a-z]\d)|(\d{5}(-\d{4})?)/i);r&&(t.postalCode=r[0].toUpperCase().replace(/\s+/g,` `));for(let e of A())if(RegExp(`\\b${e.label.toLowerCase()}\\b|\\b${e.value.toLowerCase()}\\b`,`i`).test(n)){t.province=e.value;break}for(let e of O())if([e.label,e.value].some(e=>{let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`(^|\\W)${t}(?=$|\\W)`,`i`).test(n)})){t.country=e.value;break}for(let e of[/(?:city\s+(?:of\s+)?|in\s+)([a-z\s]+?)(?:\s*,|\s+(?:ab|bc|mb|on|qc|sk|alberta|british columbia|ontario|quebec)|\s*$)/i]){let r=n.match(e);if(r){t.city=r[1].trim().replace(/\b\w/g,e=>e.toUpperCase());break}}let i=n.match(/(\d+\s+[a-z\s]+(?:street|st|avenue|ave|road|rd|drive|dr|boulevard|blvd|way|lane|ln|crescent|cres|place|pl|court|ct))/i);return i&&(t.street=i[1].replace(/\b\w/g,e=>e.toUpperCase())),t}let be={street:`Street Address`,city:`City`,province:`Province/State`,postalCode:`Postal/ZIP Code`,country:`Country`},xe=r(()=>{let e=y()[0]??`street`;switch(e){case`postalCode`:return`${c.name}_postal`;default:return`${c.name}_${e}`}});ne(()=>{if(V){let e={name:c.name,ownerToken:oe,type:`address`,get label(){return c.label},get description(){return c.description||`A mailing address with street, city, province, postal code, and country`},setValue:e=>{if(e==null){F(U,``),F(W,``),F(G,``),F(K,``),F(Y,O()[0]?.value??``,!0),X();return}if(R(e)){let t=e;t.street!==void 0&&F(U,t.street,!0),t.city!==void 0&&F(W,t.city,!0),t.province!==void 0&&F(G,t.province,!0),t.postalCode!==void 0&&F(K,t.postalCode,!0),t.country!==void 0&&F(Y,t.country,!0),X();return}let t=Object.fromEntries(Object.entries(ye(String(e))).filter(([e])=>y().includes(e)));Object.keys(t).length>0&&R(t)&&(t.street!==void 0&&F(U,t.street,!0),t.city!==void 0&&F(W,t.city,!0),t.province!==void 0&&F(G,t.province,!0),t.postalCode!==void 0&&F(K,t.postalCode,!0),t.country!==void 0&&F(Y,t.country,!0),X())},getValue:ve,prepareValue:e=>{if(e==null)return Object.fromEntries(y().map(e=>[e,e===`country`?O()[0]?.value??``:``]));if(typeof e==`object`&&!Array.isArray(e))return e;let t=ye(ue(e)),n=Object.fromEntries(Object.entries(t).filter(([e])=>y().includes(e)));return Object.keys(n).length>0?{...ve(),...n}:de()},clear:()=>(F(U,``),F(W,``),F(G,``),F(K,``),F(Y,O()[0]?.value??``,!0),X(),!0),getState:()=>({disabled:C()}),get constraints(){return{required:D()}},get webMcpSchema(){return{type:`object`,additionalProperties:!1,properties:Object.fromEntries(y().map(e=>[e,L(e)])),...D()?{required:[...y()]}:{}}},validateValue:z,validate:()=>z(ve())};return V.registerField(e)}});function Se(e){F(U,e.target.value,!0),X()}function Z(e){F(W,e.target.value,!0),X()}function Ce(e){F(G,e.target.value,!0),X()}function we(e){F(K,e.target.value,!0),X()}function Q(e){F(Y,e.target.value,!0),X()}var Te=_e(),Ee=w(Te),De=t=>{ae(t,{get for(){return e(xe)},get label(){return c.label},get required(){return D()}})};t(Ee,e=>{c.label&&e(De)});var Oe=E(Ee,2);let $;var ke=w(Oe),Ae=t=>{var n=fe(),r=w(n),i=k(r,!0),o=E(r,2);b(o);let u;s(n),N((t,n)=>{P(r,`for`,`${c.name??``}_street`),l(i,be.street),P(o,`id`,`${c.name??``}_street`),P(o,`name`,`${c.name??``}[street]`),P(o,`placeholder`,t),te(o,e(U)),o.disabled=C(),o.required=n,u=a(o,1,`smrt-input svelte-5rbjmj`,null,u,{invalid:!!c.error}),P(o,`aria-invalid`,c.error?`true`:void 0),P(o,`aria-describedby`,c.error?`${c.name}-error`:void 0)},[()=>d(H[`ui.address_input.street_placeholder`]),()=>D()&&y().includes(`street`)]),_(`input`,o,Se),g(t,n)},je=r(()=>y().includes(`street`));t(ke,t=>{e(je)&&t(Ae)});var Me=E(ke,2),Ne=w(Me),Pe=t=>{var n=q(),r=w(n),i=k(r,!0),o=E(r,2);b(o);let u;s(n),N((t,n)=>{P(r,`for`,`${c.name??``}_city`),l(i,be.city),P(o,`id`,`${c.name??``}_city`),P(o,`name`,`${c.name??``}[city]`),P(o,`placeholder`,t),te(o,e(W)),o.disabled=C(),o.required=n,u=a(o,1,`smrt-input svelte-5rbjmj`,null,u,{invalid:!!c.error}),P(o,`aria-invalid`,c.error?`true`:void 0),P(o,`aria-describedby`,c.error?`${c.name}-error`:void 0)},[()=>d(H[`ui.address_input.city_placeholder`]),()=>D()&&y().includes(`city`)]),_(`input`,o,Z),g(t,n)},Fe=r(()=>y().includes(`city`));t(Ne,t=>{e(Fe)&&t(Pe)});var Ie=E(Ne,2),Le=t=>{var r=pe(),i=w(r),o=k(i,!0),u=E(i,2);let d;var ee=w(u);ee.value=ee.__value=``;var p=E(ee);f(p,17,A,e=>e.value,(t,n)=>{var r=J(),i=k(r,!0),a={};N(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),g(t,r)}),s(u);var h;m(u),s(r),N(t=>{P(i,`for`,`${c.name??``}_province`),l(o,be.province),P(u,`id`,`${c.name??``}_province`),P(u,`name`,`${c.name??``}[province]`),u.disabled=C(),u.required=t,d=a(u,1,`smrt-input smrt-select svelte-5rbjmj`,null,d,{invalid:!!c.error}),P(u,`aria-invalid`,c.error?`true`:void 0),P(u,`aria-describedby`,c.error?`${c.name}-error`:void 0),h!==(h=e(G))&&(u.value=(u.__value=h)??``,n(u,h))},[()=>D()&&y().includes(`province`)]),_(`change`,u,Ce),g(t,r)},Re=r(()=>y().includes(`province`));t(Ie,t=>{e(Re)&&t(Le)}),s(Me);var ze=E(Me,2),Be=w(ze),Ve=t=>{var n=me(),r=w(n),i=k(r,!0),o=E(r,2);b(o);let u;s(n),N((t,n)=>{P(r,`for`,`${c.name??``}_postal`),l(i,be.postalCode),P(o,`id`,`${c.name??``}_postal`),P(o,`name`,`${c.name??``}[postalCode]`),P(o,`placeholder`,t),te(o,e(K)),o.disabled=C(),o.required=n,u=a(o,1,`smrt-input svelte-5rbjmj`,null,u,{invalid:!!c.error}),P(o,`aria-invalid`,c.error?`true`:void 0),P(o,`aria-describedby`,c.error?`${c.name}-error`:void 0)},[()=>d(H[`ui.address_input.postal_code_placeholder`]),()=>D()&&y().includes(`postalCode`)]),_(`input`,o,we),g(t,n)},He=r(()=>y().includes(`postalCode`));t(Be,t=>{e(He)&&t(Ve)});var Ue=E(Be,2),We=t=>{var r=he(),i=w(r),o=k(i,!0),u=E(i,2);let d;f(u,21,O,e=>e.value,(t,n)=>{var r=J(),i=k(r,!0),a={};N(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),g(t,r)}),s(u);var ee;m(u),s(r),N(t=>{P(i,`for`,`${c.name??``}_country`),l(o,be.country),P(u,`id`,`${c.name??``}_country`),P(u,`name`,`${c.name??``}[country]`),u.disabled=C(),u.required=t,d=a(u,1,`smrt-input smrt-select svelte-5rbjmj`,null,d,{invalid:!!c.error}),P(u,`aria-invalid`,c.error?`true`:void 0),P(u,`aria-describedby`,c.error?`${c.name}-error`:void 0),ee!==(ee=e(Y))&&(u.value=(u.__value=ee)??``,n(u,ee))},[()=>D()&&y().includes(`country`)]),_(`change`,u,Q),g(t,r)},Ge=r(()=>y().includes(`country`));t(Ue,t=>{e(Ge)&&t(We)}),s(ze),s(Oe);var Ke=E(Oe,2),qe=e=>{var t=ge(),n=k(t,!0);N(()=>{P(t,`id`,`${c.name}-error`),l(n,c.error)}),g(e,t)};t(Ke,e=>{c.error&&e(qe)}),s(Te),N(()=>{P(Te,`data-smrt-field-owner`,oe),$=a(Oe,1,`address-fields svelte-5rbjmj`,null,$,{"smrt-mode":e(se)})}),g(o,Te),i()}v([`input`,`change`]);function ve(e){return e.toLowerCase().replace(/\s+at\s+/gi,`@`).replace(/\bat\b/gi,`@`).replace(/\s+dot\s+/gi,`.`).replace(/\bdot\b/gi,`.`).replace(/\s+/g,``).trim()}function X(e){return e.replace(/^(my name is|i am|i'm|it's|this is|the name is)\s*/i,``).replace(/\b(um|uh|like|so|well)\b\s*/gi,``).trim()}function ye(e,t){let n=e.toLowerCase().trim();for(let e of t)if(e.value.toLowerCase()===n||e.label.toLowerCase()===n)return e.value;for(let e of t)if(e.label.toLowerCase().includes(n)||n.includes(e.label.toLowerCase()))return e.value;return null}v([`change`]);function be(e={}){let t=V(),n=!1;return e.autoInit&&t.initializeSTT().catch(()=>{}),A(()=>{n&&t.state.ai.stt.isListening&&t.stopListening().catch(()=>{}),n=!1}),{start:async r=>{n=!0;try{await t.startListening({...e.defaultOptions,...r})}catch(e){throw n=!1,e}},stop:async()=>{n=!1,await t.stopListening()},initialize:async e=>{await t.initializeSTT(e)},get isListening(){return t.state.ai.stt.isListening},get isReady(){return t.state.ai.stt.initState===`ready`},get isInitializing(){return t.state.ai.stt.initState===`initializing`},get lastResult(){return t.state.ai.stt.lastResult},get interimResult(){return t.state.ai.stt.interimResult},get currentResult(){let{isListening:e,interimResult:n,lastResult:r}=t.state.ai.stt;return e&&n?n:r},get error(){return t.state.ai.stt.error},get downloadProgress(){return t.state.ai.stt.downloadProgress?.percent??0},get adapterType(){return t.state.ai.stt.adapter?.type??null}}}v([`keydown`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`change`]);var xe=d(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="spinner svelte-rsri1g"><circle cx="12" cy="12" r="10" stroke-dasharray="32" stroke-dashoffset="12" class="svelte-rsri1g"></circle></svg>`),Se=d(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-rsri1g"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" class="svelte-rsri1g"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-rsri1g"></path><line x1="12" x2="12" y1="19" y2="22" class="svelte-rsri1g"></line></svg>`),Z=c(`<input type="text" class="smrt-input smrt-mode svelte-rsri1g" readonly=""/> <button type="button"><!></button>`,1),Ce=c(`<input class="smrt-input svelte-rsri1g"/>`),we=c(`<div class="listening-indicator svelte-rsri1g">Recording...</div>`),Q=c(`<div class="parsing-indicator svelte-rsri1g"> </div>`),Te=c(`<div class="error-indicator svelte-rsri1g" role="alert"> </div>`),Ee=c(`<div data-smrt-component="DateTimeInput"><!> <div class="input-wrapper svelte-rsri1g"><!></div> <!></div>`);function De(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`includeTime`,3,!0),f=x(o,`placeholder`,19,()=>d()?`e.g., next Tuesday at 3pm`:`e.g., March 15, 1990`),p=x(o,`value`,15,``),m=x(o,`disabled`,3,!1),h=x(o,`required`,3,!1),v=`${c}-label`,T=ce(),D=be(),O=le(),A=S(null),j=S(``),I=S(!1),L=S(!1),R=S(null),z=0,V=r(()=>T.state.mode===`smrt`);function se(e){p(e),o.onchange?.(p())}function U(e){if(!e)return``;try{if(!d()&&/^\d{4}-\d{2}-\d{2}$/.test(e)){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r).toLocaleDateString(void 0,{dateStyle:`medium`})}let t=new Date(e);return Number.isNaN(t.getTime())?e:d()?t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):t.toLocaleDateString(void 0,{dateStyle:`medium`})}catch{return e}}function W(e){if(typeof e!=`string`)return!1;if(e===``)return!h();let t=d()?/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,3})?)?$/.exec(e):/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let[,n,r,i,a=`0`,o=`0`,s=`0`]=t,c=new Date(Date.UTC(Number(n),Number(r)-1,Number(i),Number(a),Number(o),Number(s)));return c.getUTCFullYear()===Number(n)&&c.getUTCMonth()===Number(r)-1&&c.getUTCDate()===Number(i)&&c.getUTCHours()===Number(a)&&c.getUTCMinutes()===Number(o)&&c.getUTCSeconds()===Number(s)}ne(()=>{F(j,U(p()),!0)}),ne(()=>{if(O){let e={name:o.name,type:`datetime`,get label(){return o.label},get description(){return o.description??(d()?`Date and time`:`Date`)},setValue:e=>{se(String(e??``))},getValue:()=>p(),prepareValue:ue,getState:()=>({disabled:m()}),get constraints(){return{required:h()}},validateValue:W,validate:()=>W(p())};return O.registerField(e)}});async function G(e){let t;try{t=await oe(`chrono-node`)}catch{throw Error(`Natural-language date parsing requires the optional dependency "chrono-node". Install it with: pnpm add chrono-node`)}let n=t.parse(e);if(n.length===0)throw Error(`Could not parse date from speech`);let r=n[0].start.date();if(Number.isNaN(r.getTime()))throw Error(`Invalid date`);let i=r.getFullYear(),a=String(r.getMonth()+1).padStart(2,`0`),o=String(r.getDate()).padStart(2,`0`);return d()?`${i}-${a}-${o}T${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`:`${i}-${a}-${o}`}async function K(){if(!(!e(V)||m()||e(L))){F(R,null),z=Date.now(),F(I,!0);try{(!D.isReady||D.adapterType!==`whisper-wasm`)&&await D.initialize({type:`whisper-wasm`}),await D.start({continuous:!0,interimResults:!1})}catch(e){F(I,!1),F(R,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`DateTimeInput: failed to start voice recording`,{field:o.name,error:e})}}}async function de(){if(!e(I))return;let t=Date.now()-z;if(F(I,!1),await D.stop(),t<500)return;let n=Date.now();for(;D.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=D.lastResult?.trim()||``;if(!r||r.length<2)F(R,`No speech detected. Hold longer and speak clearly.`);else{F(L,!0),F(R,null);try{se(await G(r))}catch(e){F(R,e instanceof Error?e.message:`Failed to parse date`,!0)}finally{F(L,!1)}}}function fe(e){e.button===0&&K()}function q(){de()}function J(){de()}function pe(e){e.preventDefault(),K()}function me(){de()}function he(e){e.preventDefault(),e.stopPropagation()}function ge(e){e.stopPropagation(),e.button===0&&K()}function _e(e){e.stopPropagation(),e.preventDefault(),K()}function Y(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),e(I)?de():K())}function ve(e){let t=e.target;se(t.value)}var X=Ee();let ye;var De=w(X),Oe=e=>{ae(e,{get id(){return v},get for(){return o.name},get label(){return o.label},get required(){return h()}})};t(De,e=>{o.label&&e(Oe)});var $=E(De,2),ke=w($),Ae=n=>{var r=Z(),i=M(r);b(i),C(i,e=>F(A,e),()=>e(A));var c=E(i,2);let l;var d=w(c),ee=e=>{var t=xe();g(e,t)},p=e=>{var t=Se();g(e,t)};t(d,t=>{e(L)?t(ee):t(p,-1)}),s(c),N(t=>{P(i,`id`,o.name),P(i,`aria-labelledby`,o.label?v:void 0),P(i,`name`,o.name),P(i,`placeholder`,f()),te(i,e(j)),i.disabled=m()||e(L),i.required=h(),P(i,`aria-invalid`,e(R)?`true`:void 0),P(i,`aria-describedby`,e(R)?`${o.name}-error`:void 0),l=a(c,1,`mic-btn svelte-rsri1g`,null,l,{active:e(I)}),c.disabled=m()||e(L),P(c,`aria-label`,t)},[()=>u(H[`ui.date_time_input.mic_aria_label`])]),_(`mousedown`,i,fe),_(`mouseup`,i,q),y(`mouseleave`,i,J),_(`touchstart`,i,pe,void 0,!0),_(`touchend`,i,me),_(`click`,c,he),_(`keydown`,c,Y),_(`mousedown`,c,ge),_(`mouseup`,c,q),y(`mouseleave`,c,J),_(`touchstart`,c,_e,void 0,!0),_(`touchend`,c,me),g(n,r)},je=t=>{var n=Ce();b(n),C(n,e=>F(A,e),()=>e(A)),N(()=>{P(n,`id`,o.name),P(n,`aria-labelledby`,o.label?v:void 0),P(n,`name`,o.name),P(n,`type`,d()?`datetime-local`:`date`),te(n,p()),n.disabled=m(),n.required=h(),P(n,`aria-invalid`,e(R)?`true`:void 0),P(n,`aria-describedby`,e(R)?`${o.name}-error`:void 0)}),_(`change`,n,ve),g(t,n)};t(ke,t=>{e(V)?t(Ae):t(je,-1)}),s($);var Me=E($,2),Ne=e=>{var t=we();g(e,t)},Pe=e=>{var t=Q(),n=k(t,!0);N(e=>l(n,e),[()=>u(H[`ui.date_time_input.parsing`])]),g(e,t)},Fe=t=>{var n=Te(),r=k(n,!0);N(()=>{P(n,`id`,`${o.name}-error`),l(r,e(R))}),g(t,n)};t(Me,t=>{e(I)?t(Ne):e(L)?t(Pe,1):e(R)&&t(Fe,2)}),s(X),N(()=>ye=a(X,1,`smrt-datetime svelte-rsri1g`,null,ye,{listening:e(I),parsing:e(L)})),g(n,X),i()}v([`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`,`keydown`,`change`]),v([`click`,`keydown`,`change`]),v([`click`]),v([`click`,`keydown`]),v([`input`,`change`]);var Oe=c(`<div class="validation-error svelte-e6jjj7" role="alert"> </div>`),$=c(`<div class="validation-error svelte-e6jjj7" role="alert"><!></div>`),ke=c(`<div class="smrt-money svelte-e6jjj7" data-smrt-component="MoneyInput"><!> <div class="input-wrapper svelte-e6jjj7"><input type="text" inputmode="decimal"/> <span class="currency-code svelte-e6jjj7"> </span></div> <input type="hidden"/> <!></div>`);function Ae(n,o){let c=re();ee(o,!0);let{t:d}=ie(),f=x(o,`placeholder`,3,`0.00`),p=x(o,`value`,15,null),m=x(o,`currency`,3,`CAD`),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),C=`${c}-label`,D=ce(),O=le(),A=r(()=>D.state.mode===`smrt`);function j(e){return e===null?``:(e/100).toFixed(2)}function M(e){let t=e.replace(/[$,\s]/g,``);if(t===``)return null;let n=parseFloat(t);return Number.isNaN(n)?null:Math.round(n*100)}let I=S(T(j(p())));ne(()=>{let t=j(p());e(I)!==t&&!e(L)&&F(I,t,!0)});let L=S(!1),R=r(()=>m()===`USD`?`US$`:`CA$`),z=r(()=>p()===null||!(o.min!==void 0&&p()<o.min||o.max!==void 0&&p()>o.max)),B=r(()=>p()!==null&&!e(z)||!!o.error);function V(e){p(e),o.onchange?.(p())}function oe(e){let t=e.toLowerCase().trim(),n={zero:0,one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19,twenty:20,thirty:30,forty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90,hundred:100,thousand:1e3,million:1e6},r=/dollar|buck|cad|usd/i.test(t),i=/cent/i.test(t),a=t.replace(/\$|dollar[s]?|buck[s]?|cad|usd|cent[s]?/gi,``).trim(),o=a.match(/[\d,.]+/);if(o){let e=parseFloat(o[0].replace(/,/g,``));if(!Number.isNaN(e))return Math.round(i&&!r?e:e*100)}let s=a.split(/[\s-]+/).filter(Boolean),c=0,l=0,u=0,d=!1;for(let e=0;e<s.length;e++){let t=s[e],r=n[t];t===`and`||t===`point`?(d=!0,c+=u,u=0):r!==void 0&&(r>=100?(u=u===0?r:u*r,r>=1e3&&(d?l+=u:c+=u,u=0)):u+=r)}d?(l+=u,l>99&&(c+=Math.floor(l/100),l%=100)):c+=u;let f=c*100+l;return f>0?f:null}ne(()=>{if(O){let t={name:o.name,type:`money`,get label(){return o.label},get description(){let e=``;return o.min!==void 0&&o.max!==void 0?e=` (between $${(o.min/100).toFixed(2)} and $${(o.max/100).toFixed(2)})`:o.min===void 0?o.max!==void 0&&(e=` (maximum $${(o.max/100).toFixed(2)})`):e=` (minimum $${(o.min/100).toFixed(2)})`,(o.description||`A monetary amount in dollars`)+e},setValue:e=>{if(e==null||e===``){V(null),F(I,``);return}if(typeof e==`number`){V(e),F(I,j(e),!0);return}let t=oe(String(e));t!==null&&(V(t),F(I,j(t),!0))},getValue:()=>p(),prepareValue:e=>e==null||e===``?null:typeof e==`number`?e:typeof e==`string`?oe(e)??de():de(),getState:()=>({disabled:h()}),get constraints(){return{required:v(),min:o.min,max:o.max}},validateValue:e=>e===null&&!v()||typeof e==`number`&&Number.isSafeInteger(e)&&(o.min===void 0||e>=o.min)&&(o.max===void 0||e<=o.max),validate:()=>p()===null?!v():Number.isSafeInteger(p())&&e(z)};return O.registerField(t)}});function se(e){let t=e.target;F(I,t.value,!0),V(M(t.value))}function U(){F(L,!0)}function W(){F(L,!1),F(I,j(p()),!0)}var G=ke(),K=w(G),ue=e=>{ae(e,{get id(){return C},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(K,e=>{o.label&&e(ue)});var fe=E(K,2),q=w(fe);b(q);let J;var pe=E(q,2),me=k(pe,!0);s(fe);var he=E(fe,2);b(he);var ge=E(he,2),_e=e=>{var t=Oe(),n=k(t,!0);N(()=>{P(t,`id`,`${o.name}-error`),l(n,o.error)}),g(e,t)},Y=n=>{var r=$(),i=w(r),a=t=>{var n=u();N(e=>l(n,e),[()=>d(H[`ui.money_input.value_at_least`],{min:`${e(R)}${(o.min/100).toFixed(2)}`})]),g(t,n)},c=t=>{var n=u();N(e=>l(n,e),[()=>d(H[`ui.money_input.value_at_most`],{max:`${e(R)}${(o.max/100).toFixed(2)}`})]),g(t,n)};t(i,e=>{o.min!==void 0&&p()!==null&&p()<o.min?e(a):o.max!==void 0&&p()!==null&&p()>o.max&&e(c,1)}),s(r),N(()=>P(r,`id`,`${o.name}-error`)),g(n,r)};t(ge,t=>{o.error?t(_e):e(B)&&!e(z)&&t(Y,1)}),s(G),N(()=>{P(q,`id`,o.name),P(q,`aria-labelledby`,o.label?C:void 0),P(q,`name`,o.name),P(q,`placeholder`,f()),te(q,e(I)),q.disabled=h(),q.required=v(),J=a(q,1,`smrt-input svelte-e6jjj7`,null,J,{"smrt-mode":e(A),invalid:e(B)}),P(q,`aria-invalid`,e(B)?`true`:void 0),P(q,`aria-describedby`,e(B)?`${o.name}-error`:void 0),l(me,m()),P(he,`name`,`${o.name??``}_cents`),te(he,p()??``)}),_(`input`,q,se),y(`focus`,q,U),y(`blur`,q,W),g(n,G),i()}v([`input`]);var je=c(`<div class="validation-error svelte-1pebtso" role="alert"><!></div>`),Me=c(`<div class="smrt-number svelte-1pebtso" data-smrt-component="NumberInput"><!> <div class="input-wrapper svelte-1pebtso"><input type="number"/></div> <!></div>`);function Ne(n,o){let c=re();ee(o,!0);let{t:d}=ie(),f=x(o,`placeholder`,3,``),p=x(o,`value`,15,null),m=x(o,`step`,3,1),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),y=`${c}-label`,S=ce(),C=le(),T=r(()=>S.state.mode===`smrt`);function D(e){return e===null||!(o.min!==void 0&&e<o.min||o.max!==void 0&&e>o.max)}function O(e){if(!Number.isFinite(m())||m()<=0)return!0;let t=(e-(o.min??0))/m();return Math.abs(t-Math.round(t))<=1e-9}let k=r(()=>D(p())),A=r(()=>p()!==null&&!e(k));function j(e){p(e),o.onchange?.(p())}function M(e){let t=e.toLowerCase().trim(),n={zero:0,one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19,twenty:20,thirty:30,forty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90,hundred:100,thousand:1e3,million:1e6},r=parseFloat(t.replace(/[,$]/g,``));if(!Number.isNaN(r))return r;if(n[t]!==void 0)return n[t];let i=t.split(/[\s-]+/),a=0,o=0;for(let e of i){let t=n[e];t!==void 0&&(t>=100?(o=o===0?t:o*t,t>=1e3&&(a+=o,o=0)):o+=t)}return a+=o,a>0?a:null}ne(()=>{if(C){let t={name:o.name,type:`number`,get label(){return o.label},get description(){let e=``;return o.min!==void 0&&o.max!==void 0?e=` (between ${o.min} and ${o.max})`:o.min===void 0?o.max!==void 0&&(e=` (maximum ${o.max})`):e=` (minimum ${o.min})`,(o.description||`A number`)+e},setValue:e=>{if(e==null||e===``){j(null);return}if(typeof e==`number`){j(e);return}let t=M(String(e));t!==null&&j(t)},getValue:()=>p(),prepareValue:e=>e==null||e===``?null:typeof e==`number`?e:typeof e==`string`?M(e)??de():de(),getState:()=>({disabled:h()}),get constraints(){return{required:v(),min:o.min,max:o.max,step:m()}},validateValue:e=>{if(e==null||e===``)return!v();let t=typeof e==`number`?e:M(String(e));return t!==null&&Number.isFinite(t)&&D(t)&&O(t)},validate:()=>p()===null?!v():Number.isFinite(p())&&e(k)};return C.registerField(t)}});function F(e){let t=e.target;j(t.value===``?null:parseFloat(t.value))}var I=Me(),L=w(I),R=e=>{ae(e,{get id(){return y},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(L,e=>{o.label&&e(R)});var z=E(L,2),B=w(z);b(B);let V;s(z);var oe=E(z,2),se=e=>{var n=je(),r=w(n),i=e=>{var t=u();N(e=>l(t,e),[()=>d(H[`ui.number_input.value_at_least`],{min:o.min})]),g(e,t)},a=e=>{var t=u();N(e=>l(t,e),[()=>d(H[`ui.number_input.value_at_most`],{max:o.max})]),g(e,t)};t(r,e=>{o.min!==void 0&&p()!==null&&p()<o.min?e(i):o.max!==void 0&&p()!==null&&p()>o.max&&e(a,1)}),s(n),N(()=>P(n,`id`,`${o.name}-error`)),g(e,n)};t(oe,t=>{e(A)&&t(se)}),s(I),N(()=>{P(B,`id`,o.name),P(B,`aria-labelledby`,o.label?y:void 0),P(B,`name`,o.name),P(B,`placeholder`,f()),te(B,p()??``),P(B,`min`,o.min),P(B,`max`,o.max),P(B,`step`,m()),B.disabled=h(),B.required=v(),V=a(B,1,`smrt-input svelte-1pebtso`,null,V,{"smrt-mode":e(T),invalid:e(A)}),P(B,`aria-invalid`,e(A)?`true`:void 0),P(B,`aria-describedby`,e(A)?`${o.name}-error`:void 0)}),_(`input`,B,F),g(n,I),i()}v([`input`]);var Pe=c(`<button type="button"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1vixtb7"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" class="svelte-1vixtb7"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-1vixtb7"></path><line x1="12" x2="12" y1="19" y2="22" class="svelte-1vixtb7"></line></svg></button>`),Fe=c(`<div class="downloading-indicator svelte-1vixtb7"><span class="processing-spinner svelte-1vixtb7"></span> <span class="svelte-1vixtb7"> </span></div>`),Ie=c(`<div class="listening-indicator svelte-1vixtb7"><span class="listening-dot svelte-1vixtb7"></span> <span class="svelte-1vixtb7">Recording...</span></div>`),Le=c(`<div class="processing-indicator svelte-1vixtb7"><span class="processing-spinner svelte-1vixtb7"></span> <span class="svelte-1vixtb7">Processing...</span></div>`),Re=c(`<div class="error-message svelte-1vixtb7" role="alert"> </div>`),ze=c(`<div class="validation-error svelte-1vixtb7" role="alert"> </div>`),Be=c(`<div data-smrt-component="PhoneInput"><!> <div class="input-wrapper svelte-1vixtb7"><input type="tel"/> <!></div> <!> <!> <!></div>`);function Ve(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`placeholder`,3,`(555) 555-5555`),f=x(o,`value`,15,``),p=x(o,`disabled`,3,!1),m=x(o,`required`,3,!1),h=`${c}-label`,v=ce(),T=be(),D=le(),O=S(null),A=S(!1),j=S(!1),M=S(null),I=0,L=r(()=>v.state.mode===`smrt`),R=r(()=>T.isInitializing),z=r(()=>T.downloadProgress);function V(e){if(typeof e!=`string`)return!1;if(!e)return!m();let t=e.replace(/\D/g,``);return t.length===10||t.length===11&&t[0]===`1`}let oe=r(()=>V(f())),se=r(()=>f()&&!e(oe));function U(e){f(e),o.onchange?.(f())}function W(e){let t=e.replace(/\D/g,``);return t.length===0?``:t.length<=3?`(${t}`:t.length<=6?`(${t.slice(0,3)}) ${t.slice(3)}`:t.length<=10?`(${t.slice(0,3)}) ${t.slice(3,6)}-${t.slice(6)}`:t.length===11&&t[0]===`1`?`+1 (${t.slice(1,4)}) ${t.slice(4,7)}-${t.slice(7)}`:`(${t.slice(0,3)}) ${t.slice(3,6)}-${t.slice(6,10)}`}function G(e){let t={zero:`0`,oh:`0`,one:`1`,two:`2`,to:`2`,too:`2`,three:`3`,four:`4`,for:`4`,five:`5`,six:`6`,seven:`7`,eight:`8`,nine:`9`,niner:`9`},n=e.toLowerCase().replace(/^(my phone number is|my number is|phone number|number is|call me at)\s*/i,``).replace(/\b(area code|extension|ext)\b/gi,``).trim();for(let[e,r]of Object.entries(t))n=n.replace(RegExp(`\\b${e}\\b`,`gi`),r);return n=n.replace(/\bdouble\s*(\d)/gi,`$1$1`),n=n.replace(/\btriple\s*(\d)/gi,`$1$1$1`),n.replace(/\D/g,``)}function K(e){return W(G(e))}ne(()=>{if(D){let e={name:o.name,type:`phone`,get label(){return o.label},get description(){return o.description||`Phone number`},setValue:e=>{U(K(String(e??``)))},getValue:()=>f(),prepareValue:e=>{let t=ue(e);if(t===``)return``;let n=G(t);return n.length!==10&&(n.length!==11||n[0]!==`1`)?t:W(n)||de()},getState:()=>({disabled:p()}),get constraints(){return{required:m()}},validateValue:e=>{if(typeof e!=`string`)return!1;if(e===``)return!m();let t=G(e);return t.length===10||t.length===11&&t[0]===`1`},validate:()=>V(f())};return D.registerField(e)}});async function fe(){if(!(!e(L)||p()||e(j))){F(M,null),I=Date.now(),F(A,!0);try{(!T.isReady||T.adapterType!==`whisper-wasm`)&&await T.initialize({type:`whisper-wasm`}),await T.start({continuous:!0,interimResults:!1})}catch(e){F(A,!1),F(M,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`PhoneInput: failed to start voice recording`,{field:o.name,error:e})}}}async function q(){if(!e(A))return;let t=Date.now()-I;if(F(A,!1),await T.stop(),t<500)return;let n=Date.now();for(;T.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=T.lastResult?.trim()||``;if(!r||r.length<2)F(M,`No speech detected. Hold longer and speak clearly.`);else{F(j,!0),F(M,null);try{U(K(r))}catch(e){F(M,e instanceof Error?e.message:`Failed to process speech`,!0)}finally{F(j,!1)}}}function J(e){e.button===0&&fe()}function pe(){q()}function me(){q()}function he(e){e.preventDefault(),fe()}function ge(){q()}function _e(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e(A)?q():fe())}function Y(e){let t=e.target;U(W(t.value))}var ve=Be();let X;var ye=w(ve),xe=e=>{ae(e,{get id(){return h},get for(){return o.name},get label(){return o.label},get required(){return m()}})};t(ye,e=>{o.label&&e(xe)});var Se=E(ye,2),Z=w(Se);b(Z);let Ce;C(Z,e=>F(O,e),()=>e(O));var we=E(Z,2),Q=t=>{var n=Pe();let r;N(t=>{r=a(n,1,`mic-btn svelte-1vixtb7`,null,r,{active:e(A)}),n.disabled=p(),P(n,`aria-label`,t)},[()=>u(H[`ui.phone_input.mic_aria_label`])]),_(`keydown`,n,_e),_(`mousedown`,n,J),_(`mouseup`,n,pe),y(`mouseleave`,n,me),_(`touchstart`,n,he,void 0,!0),_(`touchend`,n,ge),g(t,n)};t(we,t=>{e(L)&&t(Q)}),s(Se);var Te=E(Se,2),Ee=t=>{var n=Fe(),r=E(w(n),2),i=k(r,!0);s(n),N(e=>l(i,e),[()=>u(H[`ui.phone_input.downloading_model`],{progress:e(z)})]),g(t,n)},De=e=>{var t=Ie();g(e,t)},Oe=e=>{var t=Le();g(e,t)};t(Te,t=>{e(R)?t(Ee):e(A)?t(De,1):e(j)&&t(Oe,2)});var $=E(Te,2),ke=t=>{var n=Re(),r=k(n,!0);N(()=>{P(n,`id`,`${o.name}-stt-error`),l(r,e(M))}),g(t,n)};t($,t=>{e(M)&&t(ke)});var Ae=E($,2),je=e=>{var t=ze(),n=k(t,!0);N(e=>{P(t,`id`,`${o.name}-error`),l(n,e)},[()=>u(H[`ui.phone_input.invalid`])]),g(e,t)};t(Ae,t=>{e(se)&&t(je)}),s(ve),N(()=>{X=a(ve,1,`smrt-phone svelte-1vixtb7`,null,X,{listening:e(A)}),P(Z,`id`,o.name),P(Z,`aria-labelledby`,o.label?h:void 0),P(Z,`name`,o.name),P(Z,`placeholder`,d()),te(Z,f()),Z.disabled=p()||e(j),Z.required=m(),Ce=a(Z,1,`smrt-input svelte-1vixtb7`,null,Ce,{"smrt-mode":e(L),invalid:e(se),processing:e(j)}),P(Z,`aria-invalid`,e(se)?`true`:void 0),P(Z,`aria-describedby`,e(se)?`${o.name}-error`:e(M)?`${o.name}-stt-error`:void 0)}),_(`input`,Z,Y),_(`mousedown`,Z,function(...t){(e(L)?J:void 0)?.apply(this,t)}),_(`mouseup`,Z,function(...t){(e(L)?pe:void 0)?.apply(this,t)}),y(`mouseleave`,Z,function(...t){(e(L)?me:void 0)?.apply(this,t)}),_(`touchstart`,Z,function(...t){(e(L)?he:void 0)?.apply(this,t)},void 0,!0),_(`touchend`,Z,function(...t){(e(L)?ge:void 0)?.apply(this,t)}),g(n,ve),i()}v([`input`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`keydown`]),v([`input`,`keydown`,`click`]);var He=c(`<option disabled=""> </option>`),Ue=c(`<option> </option>`),We=c(`<span class="info svelte-17ub3c7"> </span>`),Ge=c(`<div data-smrt-component="SelectInput"><!> <div class="container svelte-17ub3c7"><div class="content svelte-17ub3c7"><select class="input svelte-17ub3c7"><!><!></select></div> <div class="trailing-icon svelte-17ub3c7"><!></div> <div class="active-indicator svelte-17ub3c7"></div></div> <div class="supporting-text svelte-17ub3c7" aria-live="polite"><!></div></div>`);function Ke(o,c){let u=re();ee(c,!0);let d=x(c,`placeholder`,3,`Select an option...`),h=x(c,`value`,15,``),v=x(c,`disabled`,3,!1),b=x(c,`required`,3,!1),te=`${u}-label`,C=ce(),T=le(),D=S(!1),O=r(()=>c.options.some(e=>e.value===``)),A=r(()=>c.options.filter((e,t)=>c.options.findIndex(t=>t.value===e.value)===t)),j=r(()=>C.state.mode===`smrt`);function M(e){h(e),c.onchange?.(h())}ne(()=>{if(T){let e={name:c.name,type:`select`,get label(){return c.label},get description(){let e=c.options.map(e=>e.label).join(`, `);return c.description?`${c.description}. Options: ${e}`:`Options: ${e}`},setValue:e=>{let t=String(e??``),n=ye(t,c.options);n?M(n):c.options.some(e=>e.value===t)&&M(t)},getValue:()=>h(),prepareValue:e=>{let t=ue(e);return t.trim()===``?t:ye(t,c.options)??t},clear:()=>(M(``),!0),getState:()=>({disabled:v()}),get constraints(){return{required:b()}},get options(){return c.options.map(e=>({value:e.value,label:e.label}))},validateValue:e=>{let t=String(e??``);return t===``?!b():c.options.some(e=>e.value===t)},validate:()=>!b()||h().trim().length>0};return T.registerField(e)}});function L(e){let t=e.target;M(t.value)}var R=Ge();let z;var ie=w(R),B=e=>{ae(e,{get id(){return te},get for(){return c.name},get label(){return c.label},get required(){return b()}})};t(ie,e=>{c.label&&e(B)});var V=E(ie,2),oe=w(V),H=w(oe),U=w(H),W=e=>{var t=He(),n=k(t,!0);t.value=t.__value=``,N(()=>{I(t,!h()),l(n,d())}),g(e,t)};t(U,t=>{e(O)||t(W)});var G=E(U);f(G,17,()=>e(A),e=>e.value,(t,n)=>{var r=Ue(),i=k(r,!0),a={};N(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),g(t,r)}),s(H);var K;m(H),s(oe);var de=E(oe,2),fe=w(de);se(fe,{name:`chevron-down`,size:24}),s(de),p(2),s(V);var q=E(V,2),J=w(q),pe=e=>{var t=We(),n=k(t,!0);N(()=>l(n,c.description)),g(e,t)};t(J,t=>{c.description&&e(D)&&t(pe)}),s(q),s(R),N(()=>{z=a(R,1,`smrt-select-field svelte-17ub3c7`,null,z,{"smrt-mode":e(j),focused:e(D),disabled:v(),"has-value":!!h()}),P(H,`id`,c.name),P(H,`aria-labelledby`,c.label?te:void 0),P(H,`name`,c.name),H.disabled=v(),H.required=b(),P(H,`aria-describedby`,`${c.name}-supporting`),K!==(K=h())&&(H.value=(H.__value=K)??``,n(H,K)),P(q,`id`,`${c.name}-supporting`)}),_(`change`,H,L),y(`focus`,H,()=>F(D,!0)),y(`blur`,H,()=>F(D,!1)),g(o,R),i()}v([`change`]);var qe=c(`<button type="button"><!></button>`),Je=c(`<span class="info svelte-1wen309"> </span>`),Ye=c(`<span class="success svelte-1wen309">Recording...</span>`),Xe=c(`<span class="info svelte-1wen309">Processing...</span>`),Ze=c(`<span class="error svelte-1wen309"> </span>`),Qe=c(`<div data-smrt-component="TextareaInput"><!> <div class="container svelte-1wen309"><div class="content svelte-1wen309"><textarea class="input svelte-1wen309"></textarea></div> <!> <div class="active-indicator svelte-1wen309"></div></div> <div class="supporting-text svelte-1wen309" aria-live="polite"><!></div></div>`);function $e(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`placeholder`,3,``),f=x(o,`value`,15,``),m=x(o,`rows`,3,4),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),b=x(o,`appendMode`,3,!1),T=`${c}-label`,O=ce(),A=be(),j=le(),M=S(null),I=S(!1),z=S(!1),V=S(!1),oe=``,U=S(null),W=0,G=r(()=>O.state.mode===`smrt`),K=r(()=>A.isInitializing),de=r(()=>A.downloadProgress);function fe(e){f(e),o.onchange?.(f())}ne(()=>{if(j){let e={name:o.name,type:`textarea`,get label(){return o.label},get description(){return o.description},setValue:e=>{fe(String(e??``))},getValue:()=>f(),prepareValue:e=>{let t=ue(e);return b()&&f()?`${f()}\n${t}`:t},prepareReviewedValue:ue,getState:()=>({disabled:h()}),get constraints(){return{required:v()}},validateValue:e=>!v()||String(e??``).trim().length>0,validate:()=>!v()||f().trim().length>0};return j.registerField(e)}});async function q(){if(!(!e(G)||h()||e(z))){oe=f(),F(U,null),W=Date.now(),F(I,!0);try{(!A.isReady||A.adapterType!==`whisper-wasm`)&&await A.initialize({type:`whisper-wasm`}),await A.start({continuous:!0,interimResults:!1})}catch(e){F(I,!1),F(U,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`TextareaInput: failed to start voice recording`,{field:o.name,error:e})}}}async function J(){if(!e(I))return;let t=Date.now()-W;if(F(I,!1),await A.stop(),t<500)return;let n=Date.now();for(;A.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=A.lastResult?.trim()||``;if(!r||r.length<2)F(U,`No speech detected. Hold longer and speak clearly.`);else{F(z,!0),F(U,null);try{let e=X(r);b()&&oe?fe(`${oe}\n${e}`):fe(e)}catch(e){F(U,e instanceof Error?e.message:`Failed to process speech`,!0)}finally{F(z,!1)}}}function pe(e){e.button===0&&q()}function me(){J()}function he(){J()}function ge(e){e.preventDefault(),q()}function _e(){J()}function Y(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e(I)?J():q())}function ve(e){let t=e.target;fe(t.value)}var ye=Qe();let xe;var Se=w(ye),Z=e=>{ae(e,{get id(){return T},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(Se,e=>{o.label&&e(Z)});var Ce=E(Se,2),we=w(Ce),Q=w(we);L(Q),C(Q,e=>F(M,e),()=>e(M)),s(we);var Te=E(we,2),Ee=t=>{var n=qe();let r;var i=w(n);se(i,{name:`mic`,size:20}),s(n),D(n,e=>R?.(e)),N(t=>{r=a(n,1,`mic-btn svelte-1wen309`,null,r,{active:e(I)}),n.disabled=h(),P(n,`aria-label`,t)},[()=>u(H[`ui.textarea_input.mic_aria_label`])]),_(`keydown`,n,Y),_(`mousedown`,n,e=>{e.stopPropagation(),e.button===0&&q()}),_(`mouseup`,n,me),y(`mouseleave`,n,he),_(`touchstart`,n,e=>{e.stopPropagation(),e.preventDefault(),q()},void 0,!0),_(`touchend`,n,_e),g(t,n)};t(Te,t=>{e(G)&&t(Ee)}),p(2),s(Ce);var De=E(Ce,2),Oe=w(De),$=t=>{var n=Je(),r=k(n,!0);N(e=>l(r,e),[()=>u(H[`ui.textarea_input.downloading_model`],{progress:e(de)})]),g(t,n)},ke=e=>{var t=Ye();g(e,t)},Ae=e=>{var t=Xe();g(e,t)},je=t=>{var n=Ze(),r=k(n,!0);N(()=>l(r,e(U))),g(t,n)},Me=e=>{var t=Je(),n=k(t,!0);N(()=>l(n,o.description)),g(e,t)};t(Oe,t=>{e(K)?t($):e(I)?t(ke,1):e(z)?t(Ae,2):e(U)?t(je,3):o.description&&e(V)&&t(Me,4)}),s(De),s(ye),N(()=>{xe=a(ye,1,`smrt-text-field multiline svelte-1wen309`,null,xe,{"smrt-mode":e(G),focused:e(V),disabled:h(),"has-value":!!f(),listening:e(I)}),P(Q,`id`,o.name),P(Q,`aria-labelledby`,o.label?T:void 0),P(Q,`name`,o.name),P(Q,`placeholder`,e(V)?d():``),te(Q,f()),P(Q,`rows`,m()),Q.disabled=h()||e(z),Q.required=v(),P(Q,`aria-invalid`,e(U)?`true`:void 0),P(Q,`aria-describedby`,`${o.name}-supporting`),P(De,`id`,`${o.name}-supporting`)}),_(`input`,Q,ve),y(`focus`,Q,()=>F(V,!0)),y(`blur`,Q,()=>F(V,!1)),_(`mousedown`,Q,function(...t){(e(G)?pe:void 0)?.apply(this,t)}),_(`mouseup`,Q,function(...t){(e(G)?me:void 0)?.apply(this,t)}),y(`mouseleave`,Q,function(...t){(e(G)?he:void 0)?.apply(this,t)}),_(`touchstart`,Q,function(...t){(e(G)?ge:void 0)?.apply(this,t)},void 0,!0),_(`touchend`,Q,function(...t){(e(G)?_e:void 0)?.apply(this,t)}),g(n,ye),i()}v([`input`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`keydown`]);var et=c(`<button type="button"><!></button>`),tt=c(`<span class="info svelte-q632gy"> </span>`),nt=c(`<span class="success svelte-q632gy">Recording...</span>`),rt=c(`<span class="info svelte-q632gy">Processing...</span>`),it=c(`<span class="error svelte-q632gy"> </span>`),at=c(`<div data-smrt-component="TextInput"><!> <div class="container svelte-q632gy"><div class="content svelte-q632gy"><input class="input svelte-q632gy"/></div> <!> <div class="active-indicator svelte-q632gy"></div></div> <div class="supporting-text svelte-q632gy" aria-live="polite"><!></div></div>`);function ot(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`type`,3,`text`),f=x(o,`placeholder`,3,``),m=x(o,`value`,15,``),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),T=x(o,`appendMode`,3,!1),O=`${c}-label`,A=ce(),j=be(),M=le(),I=S(null),L=S(!1),z=S(!1),V=S(!1),oe=``,U=S(null),W=0,G=r(()=>A.state.mode===`smrt`),K=r(()=>j.isInitializing),de=r(()=>j.downloadProgress);function fe(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}let q=r(()=>d()!==`email`||!m()||fe(m())),J=r(()=>d()===`email`&&m()&&!e(q));function pe(e){m(e),o.onchange?.(m())}ne(()=>{if(M){let t={name:o.name,get type(){return d()===`email`?`email`:`text`},get label(){return o.label},get description(){return o.description},setValue:e=>{pe(String(e??``))},getValue:()=>m(),prepareValue:ue,getState:()=>({disabled:h()}),get constraints(){return{required:v()}},validateValue:e=>{let t=String(e??``);return(!v()||t.trim().length>0)&&(d()!==`email`||t.length===0||fe(t))},validate:()=>(!v()||m().trim().length>0)&&(d()!==`email`||m().length===0||e(q))};return M.registerField(t)}});async function me(){if(!(!e(G)||h()||e(z))){oe=m(),F(U,null),W=Date.now(),F(L,!0);try{(!j.isReady||j.adapterType!==`whisper-wasm`)&&await j.initialize({type:`whisper-wasm`}),await j.start({continuous:!0,interimResults:!1})}catch(e){F(L,!1),F(U,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`TextInput: failed to start voice recording`,{field:o.name,error:e})}}}async function he(){if(!e(L))return;let t=Date.now()-W;if(F(L,!1),await j.stop(),t<500)return;let n=Date.now();for(;j.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=j.lastResult?.trim()||``;if(!r||r.length<2)F(U,`No speech detected. Hold longer and speak clearly.`);else{F(z,!0),F(U,null);try{let e=d()===`email`?ve(r):X(r);T()&&oe?pe(`${oe} ${e}`):pe(e)}catch(e){F(U,e instanceof Error?e.message:`Failed to process speech`,!0)}finally{F(z,!1)}}}function ge(e){e.button===0&&me()}function _e(){he()}function Y(){he()}function ye(e){e.preventDefault(),me()}function xe(){he()}function Se(e){e.preventDefault(),e.stopPropagation()}function Z(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e(L)?he():me())}function Ce(e){let t=e.target;pe(t.value)}var we=at();let Q;var Te=w(we),Ee=e=>{ae(e,{get id(){return O},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(Te,e=>{o.label&&e(Ee)});var De=E(Te,2),Oe=w(De),$=w(Oe);b($),C($,e=>F(I,e),()=>e(I)),s(Oe);var ke=E(Oe,2),Ae=t=>{var n=et();let r;var i=w(n);se(i,{name:`mic`,size:20}),s(n),D(n,e=>R?.(e)),N(t=>{r=a(n,1,`mic-btn svelte-q632gy`,null,r,{active:e(L)}),n.disabled=h(),P(n,`aria-label`,t)},[()=>u(H[`ui.text_input.mic_aria_label`])]),_(`click`,n,Se),_(`keydown`,n,Z),_(`mousedown`,n,e=>{e.stopPropagation(),e.button===0&&me()}),_(`mouseup`,n,_e),y(`mouseleave`,n,Y),_(`touchstart`,n,e=>{e.stopPropagation(),e.preventDefault(),me()},void 0,!0),_(`touchend`,n,xe),g(t,n)};t(ke,t=>{e(G)&&t(Ae)}),p(2),s(De);var je=E(De,2),Me=w(je),Ne=t=>{var n=tt(),r=k(n,!0);N(e=>l(r,e),[()=>u(H[`ui.text_input.downloading_model`],{progress:e(de)})]),g(t,n)},Pe=e=>{var t=nt();g(e,t)},Fe=e=>{var t=rt();g(e,t)},Ie=t=>{var n=it(),r=k(n,!0);N(()=>l(r,e(U))),g(t,n)},Le=e=>{var t=it(),n=k(t,!0);N(e=>l(n,e),[()=>u(H[`ui.text_input.invalid_email`])]),g(e,t)},Re=e=>{var t=tt(),n=k(t,!0);N(()=>l(n,o.description)),g(e,t)};t(Me,t=>{e(K)?t(Ne):e(L)?t(Pe,1):e(z)?t(Fe,2):e(U)?t(Ie,3):e(J)?t(Le,4):o.description&&e(V)&&t(Re,5)}),s(je),s(we),N(()=>{Q=a(we,1,`smrt-text-field svelte-q632gy`,null,Q,{"smrt-mode":e(G),focused:e(V),invalid:e(J),disabled:h(),"has-value":!!m(),listening:e(L)}),P($,`id`,o.name),P($,`aria-labelledby`,o.label?O:void 0),P($,`name`,o.name),P($,`type`,d()),P($,`placeholder`,e(V)?f():``),te($,m()),$.disabled=h()||e(z),$.required=v(),P($,`aria-invalid`,e(J)?`true`:void 0),P($,`aria-describedby`,`${o.name}-supporting`),P(je,`id`,`${o.name}-supporting`)}),_(`input`,$,Ce),y(`focus`,$,()=>F(V,!0)),y(`blur`,$,()=>F(V,!1)),_(`mousedown`,$,function(...t){(e(G)?ge:void 0)?.apply(this,t)}),_(`mouseup`,$,function(...t){(e(G)?_e:void 0)?.apply(this,t)}),y(`mouseleave`,$,function(...t){(e(G)?Y:void 0)?.apply(this,t)}),_(`touchstart`,$,function(...t){(e(G)?ye:void 0)?.apply(this,t)},void 0,!0),_(`touchend`,$,function(...t){(e(G)?xe:void 0)?.apply(this,t)}),g(n,we),i()}v([`input`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`,`keydown`]);function st(e){return typeof e!=`number`||!Number.isFinite(e)?null:Number((e*100).toFixed(4))}function ct(e){return e===null||!Number.isFinite(e)?null:Number((e/100).toFixed(6))}export{Ke as a,Ae as c,$e as i,De as l,ct as n,Ve as o,ot as r,Ne as s,st as t,Y as u};
1
+ import{$ as e,B as t,C as n,Ct as r,Dt as i,E as a,Et as o,Ft as s,G as c,H as l,J as u,K as d,L as f,Ot as ee,Pt as p,S as m,Tt as h,U as g,X as _,Y as v,Z as y,_ as b,a as x,b as te,bt as S,ct as ne,d as C,ft as w,gt as T,ht as E,k as D,kt as O,mt as k,n as A,nt as j,pt as M,q as re,st as N,v as P,vt as F,w as I,wt as L}from"./DG3qFFTE.js";import"./xihTtKlq.js";import{a as R}from"./BLUInGBV.js";import{a as z,t as ie}from"./Bq8E3AWP.js";import"./v8gneLl4.js";import{i as B}from"./DIE02RSm.js";import{t as V}from"./CUyVrfsu.js";import{x as ae}from"./CGVkRTMI.js";import{t as oe}from"./D042ejzG.js";import"./YV-88d-U.js";import{nt as se}from"./CUH3ig_v.js";function ce(){return V()}var H=z({"ui.address_input.street_placeholder":`123 Main Street`,"ui.address_input.city_placeholder":`City`,"ui.address_input.postal_code_placeholder":`A1A 1A1`,"ui.date_range_input.mic_aria_label":`Hold to speak date range`,"ui.date_range_input.parsing":`Parsing dates...`,"ui.date_range_input.end_after_start":`End date must be after start date`,"ui.date_time_input.mic_aria_label":`Hold to speak`,"ui.date_time_input.parsing":`Parsing date...`,"ui.file_upload.remove_file":`Remove {name}`,"ui.file_upload.required":`Select a file to upload`,"ui.file_upload.rejected_type":`{count} file(s) rejected: type not allowed`,"ui.file_upload.exceeds_max_size":`{count} file(s) exceed the maximum size of {size}`,"ui.form.extracting":`Extracting form fields…`,"ui.form.listening_status":`Listening. Say "done" to finish.`,"ui.form.listening_button":`Listening... (say "done" to finish)`,"ui.form.speak_all_fields":`Speak all fields`,"ui.form.you_said":`You said:`,"ui.form_mic_button.tooltip":`Speak to fill all fields. Click again to stop.`,"ui.measurement_input.value_at_least":`Value must be at least {min} {unit}`,"ui.measurement_input.value_at_most":`Value must be at most {max} {unit}`,"ui.money_input.value_at_least":`Value must be at least {min}`,"ui.money_input.value_at_most":`Value must be at most {max}`,"ui.number_input.value_at_least":`Value must be at least {min}`,"ui.number_input.value_at_most":`Value must be at most {max}`,"ui.phone_input.mic_aria_label":`Hold to speak`,"ui.phone_input.downloading_model":`Downloading Whisper model... {progress}%`,"ui.phone_input.invalid":`Invalid phone number`,"ui.search_input.clear_aria_label":`Clear search`,"ui.text_input.mic_aria_label":`Hold to speak`,"ui.text_input.downloading_model":`Downloading Whisper model... {progress}%`,"ui.text_input.invalid_email":`Invalid email address`,"ui.textarea_input.mic_aria_label":`Hold to speak`,"ui.textarea_input.downloading_model":`Downloading Whisper model... {progress}%`}),U=Symbol(`smrt-form`),W=new WeakMap;function G(e){let t=new Map;return{get mode(){return e.mode},registerField(n){let r=n.name,i=e.registerField(n),a=typeof i==`function`?i:()=>e.unregisterField(r),o=!0,s=()=>{if(!o)return;o=!1;let e=t.get(r);e?.delete(s),e?.size===0&&t.delete(r),a()},c=t.get(r)??new Set;return c.add(s),t.set(r,c),s},unregisterField(e){let n=t.get(e)?.values().next().value;n?.()},getFieldSchema:()=>e.getFieldSchema(),get isFormListening(){return e.isFormListening},get isExtracting(){return e.isExtracting},toggleListening:()=>e.toggleListening(),get interactionRegistry(){return e.interactionRegistry},get formId(){return e.formId}}}function K(e){let t=h(),n=W.get(t);if(n)return n;let r=o(U);if(!r){if(!e)return null;throw Error(`Form context not found. Make sure to wrap your inputs with <SMRTForm>`)}let i=G(r);return W.set(t,i),O(U,i),i}function le(){return K(!1)}function ue(e){if(e==null)return``;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return String(e);throw Error(`staged_value_invalid`)}function de(){throw Error(`staged_value_invalid`)}var fe=c(`<div class="field-row full-width svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <input type="text"/></div>`),q=c(`<div class="field-row flex-2 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <input type="text"/></div>`),J=c(`<option> </option>`),pe=c(`<div class="field-row flex-1 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <select><option>Select...</option><!></select></div>`),me=c(`<div class="field-row flex-1 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <input type="text"/></div>`),he=c(`<div class="field-row flex-1 svelte-5rbjmj"><label class="field-label svelte-5rbjmj"> </label> <select></select></div>`),ge=c(`<div class="validation-error svelte-5rbjmj" role="alert"> </div>`),_e=c(`<div class="smrt-address svelte-5rbjmj" data-smrt-component="AddressInput"><!> <div><!> <div class="field-row-group svelte-5rbjmj"><!> <!></div> <div class="field-row-group svelte-5rbjmj"><!> <!></div></div> <!></div>`);function Y(o,c){let u=re();ee(c,!0);let{t:d}=ie(),p=[{value:`CA`,label:`Canada`},{value:`US`,label:`United States`}],h=[{value:`AB`,label:`Alberta`},{value:`BC`,label:`British Columbia`},{value:`MB`,label:`Manitoba`},{value:`NB`,label:`New Brunswick`},{value:`NL`,label:`Newfoundland and Labrador`},{value:`NS`,label:`Nova Scotia`},{value:`NT`,label:`Northwest Territories`},{value:`NU`,label:`Nunavut`},{value:`ON`,label:`Ontario`},{value:`PE`,label:`Prince Edward Island`},{value:`QC`,label:`Quebec`},{value:`SK`,label:`Saskatchewan`},{value:`YT`,label:`Yukon`},{value:`US-CA`,label:`California`},{value:`US-NY`,label:`New York`},{value:`US-TX`,label:`Texas`},{value:`US-FL`,label:`Florida`},{value:`US-WA`,label:`Washington`}],v=x(c,`value`,31,()=>T({})),y=x(c,`fields`,19,()=>[`street`,`city`,`province`,`postalCode`,`country`]),C=x(c,`disabled`,3,!1),D=x(c,`required`,3,!1),O=x(c,`countries`,3,p),A=x(c,`provinces`,3,h);function M(){return[...new Set(O().map(e=>e.value))]}function I(){return[...new Set([...D()?[]:[``],...A().map(e=>e.value)])]}function L(e){return e===`country`?{type:`string`,enum:M()}:e===`province`?{type:`string`,enum:I()}:{type:`string`}}function R(e){if(typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!(![Object.prototype,null].includes(Object.getPrototypeOf(t))||!Object.keys(t).every(e=>y().includes(e))||!y().every(e=>!Object.hasOwn(t,e)||typeof t[e]==`string`)||Object.hasOwn(t,`country`)&&!M().includes(t.country)||Object.hasOwn(t,`province`)&&!I().includes(t.province))}function z(e){if(e==null)return!D();if(!R(e))return!1;if(!D())return!0;let t=e;return y().every(e=>typeof t[e]==`string`&&t[e].trim().length>0)}let B=ce(),V=le(),oe=`smrt-rich-field-${u}`,se=r(()=>B.state.mode===`smrt`),U=S(T(v().street??``)),W=S(T(v().city??``)),G=S(T(v().province??``)),K=S(T(v().postalCode??``)),Y=S(T(v().country??j(()=>O()[0]?.value??``)));ne(()=>{v().street!==void 0&&v().street!==e(U)&&F(U,v().street,!0),v().city!==void 0&&v().city!==e(W)&&F(W,v().city,!0),v().province!==void 0&&v().province!==e(G)&&F(G,v().province,!0),v().postalCode!==void 0&&v().postalCode!==e(K)&&F(K,v().postalCode,!0),v().country!==void 0&&v().country!==e(Y)&&F(Y,v().country,!0)});function ve(){let t={};return y().includes(`street`)&&(t.street=e(U)),y().includes(`city`)&&(t.city=e(W)),y().includes(`province`)&&(t.province=e(G)),y().includes(`postalCode`)&&(t.postalCode=e(K)),y().includes(`country`)&&(t.country=e(Y)),t}function X(){let e=ve();v(e),c.onchange?.(e)}function ye(e){let t={},n=e.toLowerCase().trim(),r=n.match(/([a-z]\d[a-z]\s?\d[a-z]\d)|(\d{5}(-\d{4})?)/i);r&&(t.postalCode=r[0].toUpperCase().replace(/\s+/g,` `));for(let e of A())if(RegExp(`\\b${e.label.toLowerCase()}\\b|\\b${e.value.toLowerCase()}\\b`,`i`).test(n)){t.province=e.value;break}for(let e of O())if([e.label,e.value].some(e=>{let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`(^|\\W)${t}(?=$|\\W)`,`i`).test(n)})){t.country=e.value;break}for(let e of[/(?:city\s+(?:of\s+)?|in\s+)([a-z\s]+?)(?:\s*,|\s+(?:ab|bc|mb|on|qc|sk|alberta|british columbia|ontario|quebec)|\s*$)/i]){let r=n.match(e);if(r){t.city=r[1].trim().replace(/\b\w/g,e=>e.toUpperCase());break}}let i=n.match(/(\d+\s+[a-z\s]+(?:street|st|avenue|ave|road|rd|drive|dr|boulevard|blvd|way|lane|ln|crescent|cres|place|pl|court|ct))/i);return i&&(t.street=i[1].replace(/\b\w/g,e=>e.toUpperCase())),t}let be={street:`Street Address`,city:`City`,province:`Province/State`,postalCode:`Postal/ZIP Code`,country:`Country`},xe=r(()=>{let e=y()[0]??`street`;switch(e){case`postalCode`:return`${c.name}_postal`;default:return`${c.name}_${e}`}});ne(()=>{if(V){let e={name:c.name,ownerToken:oe,type:`address`,get label(){return c.label},get description(){return c.description||`A mailing address with street, city, province, postal code, and country`},setValue:e=>{if(e==null){F(U,``),F(W,``),F(G,``),F(K,``),F(Y,O()[0]?.value??``,!0),X();return}if(R(e)){let t=e;t.street!==void 0&&F(U,t.street,!0),t.city!==void 0&&F(W,t.city,!0),t.province!==void 0&&F(G,t.province,!0),t.postalCode!==void 0&&F(K,t.postalCode,!0),t.country!==void 0&&F(Y,t.country,!0),X();return}let t=Object.fromEntries(Object.entries(ye(String(e))).filter(([e])=>y().includes(e)));Object.keys(t).length>0&&R(t)&&(t.street!==void 0&&F(U,t.street,!0),t.city!==void 0&&F(W,t.city,!0),t.province!==void 0&&F(G,t.province,!0),t.postalCode!==void 0&&F(K,t.postalCode,!0),t.country!==void 0&&F(Y,t.country,!0),X())},getValue:ve,prepareValue:e=>{if(e==null)return Object.fromEntries(y().map(e=>[e,e===`country`?O()[0]?.value??``:``]));if(typeof e==`object`&&!Array.isArray(e))return e;let t=ye(ue(e)),n=Object.fromEntries(Object.entries(t).filter(([e])=>y().includes(e)));return Object.keys(n).length>0?{...ve(),...n}:de()},clear:()=>(F(U,``),F(W,``),F(G,``),F(K,``),F(Y,O()[0]?.value??``,!0),X(),!0),getState:()=>({disabled:C()}),get constraints(){return{required:D()}},get webMcpSchema(){return{type:`object`,additionalProperties:!1,properties:Object.fromEntries(y().map(e=>[e,L(e)])),...D()?{required:[...y()]}:{}}},validateValue:z,validate:()=>z(ve())};return V.registerField(e)}});function Se(e){F(U,e.target.value,!0),X()}function Z(e){F(W,e.target.value,!0),X()}function Ce(e){F(G,e.target.value,!0),X()}function we(e){F(K,e.target.value,!0),X()}function Q(e){F(Y,e.target.value,!0),X()}var Te=_e(),Ee=w(Te),De=t=>{ae(t,{get for(){return e(xe)},get label(){return c.label},get required(){return D()}})};t(Ee,e=>{c.label&&e(De)});var Oe=E(Ee,2);let $;var ke=w(Oe),Ae=t=>{var n=fe(),r=w(n),i=k(r,!0),o=E(r,2);b(o);let u;s(n),N((t,n)=>{P(r,`for`,`${c.name??``}_street`),l(i,be.street),P(o,`id`,`${c.name??``}_street`),P(o,`name`,`${c.name??``}[street]`),P(o,`placeholder`,t),te(o,e(U)),o.disabled=C(),o.required=n,u=a(o,1,`smrt-input svelte-5rbjmj`,null,u,{invalid:!!c.error}),P(o,`aria-invalid`,c.error?`true`:void 0),P(o,`aria-describedby`,c.error?`${c.name}-error`:void 0)},[()=>d(H[`ui.address_input.street_placeholder`]),()=>D()&&y().includes(`street`)]),_(`input`,o,Se),g(t,n)},je=r(()=>y().includes(`street`));t(ke,t=>{e(je)&&t(Ae)});var Me=E(ke,2),Ne=w(Me),Pe=t=>{var n=q(),r=w(n),i=k(r,!0),o=E(r,2);b(o);let u;s(n),N((t,n)=>{P(r,`for`,`${c.name??``}_city`),l(i,be.city),P(o,`id`,`${c.name??``}_city`),P(o,`name`,`${c.name??``}[city]`),P(o,`placeholder`,t),te(o,e(W)),o.disabled=C(),o.required=n,u=a(o,1,`smrt-input svelte-5rbjmj`,null,u,{invalid:!!c.error}),P(o,`aria-invalid`,c.error?`true`:void 0),P(o,`aria-describedby`,c.error?`${c.name}-error`:void 0)},[()=>d(H[`ui.address_input.city_placeholder`]),()=>D()&&y().includes(`city`)]),_(`input`,o,Z),g(t,n)},Fe=r(()=>y().includes(`city`));t(Ne,t=>{e(Fe)&&t(Pe)});var Ie=E(Ne,2),Le=t=>{var r=pe(),i=w(r),o=k(i,!0),u=E(i,2);let d;var ee=w(u);ee.value=ee.__value=``;var p=E(ee);f(p,17,A,e=>e.value,(t,n)=>{var r=J(),i=k(r,!0),a={};N(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),g(t,r)}),s(u);var h;m(u),s(r),N(t=>{P(i,`for`,`${c.name??``}_province`),l(o,be.province),P(u,`id`,`${c.name??``}_province`),P(u,`name`,`${c.name??``}[province]`),u.disabled=C(),u.required=t,d=a(u,1,`smrt-input smrt-select svelte-5rbjmj`,null,d,{invalid:!!c.error}),P(u,`aria-invalid`,c.error?`true`:void 0),P(u,`aria-describedby`,c.error?`${c.name}-error`:void 0),h!==(h=e(G))&&(u.value=(u.__value=h)??``,n(u,h))},[()=>D()&&y().includes(`province`)]),_(`change`,u,Ce),g(t,r)},Re=r(()=>y().includes(`province`));t(Ie,t=>{e(Re)&&t(Le)}),s(Me);var ze=E(Me,2),Be=w(ze),Ve=t=>{var n=me(),r=w(n),i=k(r,!0),o=E(r,2);b(o);let u;s(n),N((t,n)=>{P(r,`for`,`${c.name??``}_postal`),l(i,be.postalCode),P(o,`id`,`${c.name??``}_postal`),P(o,`name`,`${c.name??``}[postalCode]`),P(o,`placeholder`,t),te(o,e(K)),o.disabled=C(),o.required=n,u=a(o,1,`smrt-input svelte-5rbjmj`,null,u,{invalid:!!c.error}),P(o,`aria-invalid`,c.error?`true`:void 0),P(o,`aria-describedby`,c.error?`${c.name}-error`:void 0)},[()=>d(H[`ui.address_input.postal_code_placeholder`]),()=>D()&&y().includes(`postalCode`)]),_(`input`,o,we),g(t,n)},He=r(()=>y().includes(`postalCode`));t(Be,t=>{e(He)&&t(Ve)});var Ue=E(Be,2),We=t=>{var r=he(),i=w(r),o=k(i,!0),u=E(i,2);let d;f(u,21,O,e=>e.value,(t,n)=>{var r=J(),i=k(r,!0),a={};N(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),g(t,r)}),s(u);var ee;m(u),s(r),N(t=>{P(i,`for`,`${c.name??``}_country`),l(o,be.country),P(u,`id`,`${c.name??``}_country`),P(u,`name`,`${c.name??``}[country]`),u.disabled=C(),u.required=t,d=a(u,1,`smrt-input smrt-select svelte-5rbjmj`,null,d,{invalid:!!c.error}),P(u,`aria-invalid`,c.error?`true`:void 0),P(u,`aria-describedby`,c.error?`${c.name}-error`:void 0),ee!==(ee=e(Y))&&(u.value=(u.__value=ee)??``,n(u,ee))},[()=>D()&&y().includes(`country`)]),_(`change`,u,Q),g(t,r)},Ge=r(()=>y().includes(`country`));t(Ue,t=>{e(Ge)&&t(We)}),s(ze),s(Oe);var Ke=E(Oe,2),qe=e=>{var t=ge(),n=k(t,!0);N(()=>{P(t,`id`,`${c.name}-error`),l(n,c.error)}),g(e,t)};t(Ke,e=>{c.error&&e(qe)}),s(Te),N(()=>{P(Te,`data-smrt-field-owner`,oe),$=a(Oe,1,`address-fields svelte-5rbjmj`,null,$,{"smrt-mode":e(se)})}),g(o,Te),i()}v([`input`,`change`]);function ve(e){return e.toLowerCase().replace(/\s+at\s+/gi,`@`).replace(/\bat\b/gi,`@`).replace(/\s+dot\s+/gi,`.`).replace(/\bdot\b/gi,`.`).replace(/\s+/g,``).trim()}function X(e){return e.replace(/^(my name is|i am|i'm|it's|this is|the name is)\s*/i,``).replace(/\b(um|uh|like|so|well)\b\s*/gi,``).trim()}function ye(e,t){let n=e.toLowerCase().trim();for(let e of t)if(e.value.toLowerCase()===n||e.label.toLowerCase()===n)return e.value;for(let e of t)if(e.label.toLowerCase().includes(n)||n.includes(e.label.toLowerCase()))return e.value;return null}v([`change`]);function be(e={}){let t=V(),n=!1;return e.autoInit&&t.initializeSTT().catch(()=>{}),A(()=>{n&&t.state.ai.stt.isListening&&t.stopListening().catch(()=>{}),n=!1}),{start:async r=>{n=!0;try{await t.startListening({...e.defaultOptions,...r})}catch(e){throw n=!1,e}},stop:async()=>{n=!1,await t.stopListening()},initialize:async e=>{await t.initializeSTT(e)},get isListening(){return t.state.ai.stt.isListening},get isReady(){return t.state.ai.stt.initState===`ready`},get isInitializing(){return t.state.ai.stt.initState===`initializing`},get lastResult(){return t.state.ai.stt.lastResult},get interimResult(){return t.state.ai.stt.interimResult},get currentResult(){let{isListening:e,interimResult:n,lastResult:r}=t.state.ai.stt;return e&&n?n:r},get error(){return t.state.ai.stt.error},get downloadProgress(){return t.state.ai.stt.downloadProgress?.percent??0},get adapterType(){return t.state.ai.stt.adapter?.type??null}}}v([`keydown`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`change`]);var xe=d(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="spinner svelte-rsri1g"><circle cx="12" cy="12" r="10" stroke-dasharray="32" stroke-dashoffset="12" class="svelte-rsri1g"></circle></svg>`),Se=d(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-rsri1g"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" class="svelte-rsri1g"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-rsri1g"></path><line x1="12" x2="12" y1="19" y2="22" class="svelte-rsri1g"></line></svg>`),Z=c(`<input type="text" class="smrt-input smrt-mode svelte-rsri1g" readonly=""/> <button type="button"><!></button>`,1),Ce=c(`<input class="smrt-input svelte-rsri1g"/>`),we=c(`<div class="listening-indicator svelte-rsri1g">Recording...</div>`),Q=c(`<div class="parsing-indicator svelte-rsri1g"> </div>`),Te=c(`<div class="error-indicator svelte-rsri1g" role="alert"> </div>`),Ee=c(`<div data-smrt-component="DateTimeInput"><!> <div class="input-wrapper svelte-rsri1g"><!></div> <!></div>`);function De(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`includeTime`,3,!0),f=x(o,`placeholder`,19,()=>d()?`e.g., next Tuesday at 3pm`:`e.g., March 15, 1990`),p=x(o,`value`,15,``),m=x(o,`disabled`,3,!1),h=x(o,`required`,3,!1),v=`${c}-label`,T=ce(),D=be(),O=le(),A=S(null),j=S(``),I=S(!1),L=S(!1),R=S(null),z=0,V=r(()=>T.state.mode===`smrt`);function se(e){p(e),o.onchange?.(p())}function U(e){if(!e)return``;try{if(!d()&&/^\d{4}-\d{2}-\d{2}$/.test(e)){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r).toLocaleDateString(void 0,{dateStyle:`medium`})}let t=new Date(e);return Number.isNaN(t.getTime())?e:d()?t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):t.toLocaleDateString(void 0,{dateStyle:`medium`})}catch{return e}}function W(e){if(typeof e!=`string`)return!1;if(e===``)return!h();let t=d()?/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,3})?)?$/.exec(e):/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let[,n,r,i,a=`0`,o=`0`,s=`0`]=t,c=new Date(Date.UTC(Number(n),Number(r)-1,Number(i),Number(a),Number(o),Number(s)));return c.getUTCFullYear()===Number(n)&&c.getUTCMonth()===Number(r)-1&&c.getUTCDate()===Number(i)&&c.getUTCHours()===Number(a)&&c.getUTCMinutes()===Number(o)&&c.getUTCSeconds()===Number(s)}ne(()=>{F(j,U(p()),!0)}),ne(()=>{if(O){let e={name:o.name,type:`datetime`,get label(){return o.label},get description(){return o.description??(d()?`Date and time`:`Date`)},setValue:e=>{se(String(e??``))},getValue:()=>p(),prepareValue:ue,getState:()=>({disabled:m()}),get constraints(){return{required:h()}},validateValue:W,validate:()=>W(p())};return O.registerField(e)}});async function G(e){let t;try{t=await oe(`chrono-node`)}catch{throw Error(`Natural-language date parsing requires the optional dependency "chrono-node". Install it with: pnpm add chrono-node`)}let n=t.parse(e);if(n.length===0)throw Error(`Could not parse date from speech`);let r=n[0].start.date();if(Number.isNaN(r.getTime()))throw Error(`Invalid date`);let i=r.getFullYear(),a=String(r.getMonth()+1).padStart(2,`0`),o=String(r.getDate()).padStart(2,`0`);return d()?`${i}-${a}-${o}T${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`:`${i}-${a}-${o}`}async function K(){if(!(!e(V)||m()||e(L))){F(R,null),z=Date.now(),F(I,!0);try{(!D.isReady||D.adapterType!==`whisper-wasm`)&&await D.initialize({type:`whisper-wasm`}),await D.start({continuous:!0,interimResults:!1})}catch(e){F(I,!1),F(R,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`DateTimeInput: failed to start voice recording`,{field:o.name,error:e})}}}async function de(){if(!e(I))return;let t=Date.now()-z;if(F(I,!1),await D.stop(),t<500)return;let n=Date.now();for(;D.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=D.lastResult?.trim()||``;if(!r||r.length<2)F(R,`No speech detected. Hold longer and speak clearly.`);else{F(L,!0),F(R,null);try{se(await G(r))}catch(e){F(R,e instanceof Error?e.message:`Failed to parse date`,!0)}finally{F(L,!1)}}}function fe(e){e.button===0&&K()}function q(){de()}function J(){de()}function pe(e){e.preventDefault(),K()}function me(){de()}function he(e){e.preventDefault(),e.stopPropagation()}function ge(e){e.stopPropagation(),e.button===0&&K()}function _e(e){e.stopPropagation(),e.preventDefault(),K()}function Y(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),t.stopPropagation(),e(I)?de():K())}function ve(e){let t=e.target;se(t.value)}var X=Ee();let ye;var De=w(X),Oe=e=>{ae(e,{get id(){return v},get for(){return o.name},get label(){return o.label},get required(){return h()}})};t(De,e=>{o.label&&e(Oe)});var $=E(De,2),ke=w($),Ae=n=>{var r=Z(),i=M(r);b(i),C(i,e=>F(A,e),()=>e(A));var c=E(i,2);let l;var d=w(c),ee=e=>{var t=xe();g(e,t)},p=e=>{var t=Se();g(e,t)};t(d,t=>{e(L)?t(ee):t(p,-1)}),s(c),N(t=>{P(i,`id`,o.name),P(i,`aria-labelledby`,o.label?v:void 0),P(i,`name`,o.name),P(i,`placeholder`,f()),te(i,e(j)),i.disabled=m()||e(L),i.required=h(),P(i,`aria-invalid`,e(R)?`true`:void 0),P(i,`aria-describedby`,e(R)?`${o.name}-error`:void 0),l=a(c,1,`mic-btn svelte-rsri1g`,null,l,{active:e(I)}),c.disabled=m()||e(L),P(c,`aria-label`,t)},[()=>u(H[`ui.date_time_input.mic_aria_label`])]),_(`mousedown`,i,fe),_(`mouseup`,i,q),y(`mouseleave`,i,J),_(`touchstart`,i,pe,void 0,!0),_(`touchend`,i,me),_(`click`,c,he),_(`keydown`,c,Y),_(`mousedown`,c,ge),_(`mouseup`,c,q),y(`mouseleave`,c,J),_(`touchstart`,c,_e,void 0,!0),_(`touchend`,c,me),g(n,r)},je=t=>{var n=Ce();b(n),C(n,e=>F(A,e),()=>e(A)),N(()=>{P(n,`id`,o.name),P(n,`aria-labelledby`,o.label?v:void 0),P(n,`name`,o.name),P(n,`type`,d()?`datetime-local`:`date`),te(n,p()),n.disabled=m(),n.required=h(),P(n,`aria-invalid`,e(R)?`true`:void 0),P(n,`aria-describedby`,e(R)?`${o.name}-error`:void 0)}),_(`change`,n,ve),g(t,n)};t(ke,t=>{e(V)?t(Ae):t(je,-1)}),s($);var Me=E($,2),Ne=e=>{var t=we();g(e,t)},Pe=e=>{var t=Q(),n=k(t,!0);N(e=>l(n,e),[()=>u(H[`ui.date_time_input.parsing`])]),g(e,t)},Fe=t=>{var n=Te(),r=k(n,!0);N(()=>{P(n,`id`,`${o.name}-error`),l(r,e(R))}),g(t,n)};t(Me,t=>{e(I)?t(Ne):e(L)?t(Pe,1):e(R)&&t(Fe,2)}),s(X),N(()=>ye=a(X,1,`smrt-datetime svelte-rsri1g`,null,ye,{listening:e(I),parsing:e(L)})),g(n,X),i()}v([`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`,`keydown`,`change`]),v([`click`,`keydown`,`change`]),v([`click`]),v([`click`,`keydown`]),v([`input`,`change`]);var Oe=c(`<div class="validation-error svelte-e6jjj7" role="alert"> </div>`),$=c(`<div class="validation-error svelte-e6jjj7" role="alert"><!></div>`),ke=c(`<div class="smrt-money svelte-e6jjj7" data-smrt-component="MoneyInput"><!> <div class="input-wrapper svelte-e6jjj7"><input type="text" inputmode="decimal"/> <span class="currency-code svelte-e6jjj7"> </span></div> <input type="hidden"/> <!></div>`);function Ae(n,o){let c=re();ee(o,!0);let{t:d}=ie(),f=x(o,`placeholder`,3,`0.00`),p=x(o,`value`,15,null),m=x(o,`currency`,3,`CAD`),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),C=`${c}-label`,D=ce(),O=le(),A=r(()=>D.state.mode===`smrt`);function j(e){return e===null?``:(e/100).toFixed(2)}function M(e){let t=e.replace(/[$,\s]/g,``);if(t===``)return null;let n=parseFloat(t);return Number.isNaN(n)?null:Math.round(n*100)}let I=S(T(j(p())));ne(()=>{let t=j(p());e(I)!==t&&!e(L)&&F(I,t,!0)});let L=S(!1),R=r(()=>m()===`USD`?`US$`:`CA$`),z=r(()=>p()===null||!(o.min!==void 0&&p()<o.min||o.max!==void 0&&p()>o.max)),B=r(()=>p()!==null&&!e(z)||!!o.error);function V(e){p(e),o.onchange?.(p())}function oe(e){let t=e.toLowerCase().trim(),n={zero:0,one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19,twenty:20,thirty:30,forty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90,hundred:100,thousand:1e3,million:1e6},r=/dollar|buck|cad|usd/i.test(t),i=/cent/i.test(t),a=t.replace(/\$|dollar[s]?|buck[s]?|cad|usd|cent[s]?/gi,``).trim(),o=a.match(/[\d,.]+/);if(o){let e=parseFloat(o[0].replace(/,/g,``));if(!Number.isNaN(e))return Math.round(i&&!r?e:e*100)}let s=a.split(/[\s-]+/).filter(Boolean),c=0,l=0,u=0,d=!1;for(let e=0;e<s.length;e++){let t=s[e],r=n[t];t===`and`||t===`point`?(d=!0,c+=u,u=0):r!==void 0&&(r>=100?(u=u===0?r:u*r,r>=1e3&&(d?l+=u:c+=u,u=0)):u+=r)}d?(l+=u,l>99&&(c+=Math.floor(l/100),l%=100)):c+=u;let f=c*100+l;return f>0?f:null}ne(()=>{if(O){let t={name:o.name,type:`money`,get label(){return o.label},get description(){let e=``;return o.min!==void 0&&o.max!==void 0?e=` (between $${(o.min/100).toFixed(2)} and $${(o.max/100).toFixed(2)})`:o.min===void 0?o.max!==void 0&&(e=` (maximum $${(o.max/100).toFixed(2)})`):e=` (minimum $${(o.min/100).toFixed(2)})`,(o.description||`A monetary amount in dollars`)+e},setValue:e=>{if(e==null||e===``){V(null),F(I,``);return}if(typeof e==`number`){V(e),F(I,j(e),!0);return}let t=oe(String(e));t!==null&&(V(t),F(I,j(t),!0))},getValue:()=>p(),prepareValue:e=>e==null||e===``?null:typeof e==`number`?e:typeof e==`string`?oe(e)??de():de(),getState:()=>({disabled:h()}),get constraints(){return{required:v(),min:o.min,max:o.max}},validateValue:e=>e===null&&!v()||typeof e==`number`&&Number.isSafeInteger(e)&&(o.min===void 0||e>=o.min)&&(o.max===void 0||e<=o.max),validate:()=>p()===null?!v():Number.isSafeInteger(p())&&e(z)};return O.registerField(t)}});function se(e){let t=e.target;F(I,t.value,!0),V(M(t.value))}function U(){F(L,!0)}function W(){F(L,!1),F(I,j(p()),!0)}var G=ke(),K=w(G),ue=e=>{ae(e,{get id(){return C},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(K,e=>{o.label&&e(ue)});var fe=E(K,2),q=w(fe);b(q);let J;var pe=E(q,2),me=k(pe,!0);s(fe);var he=E(fe,2);b(he);var ge=E(he,2),_e=e=>{var t=Oe(),n=k(t,!0);N(()=>{P(t,`id`,`${o.name}-error`),l(n,o.error)}),g(e,t)},Y=n=>{var r=$(),i=w(r),a=t=>{var n=u();N(e=>l(n,e),[()=>d(H[`ui.money_input.value_at_least`],{min:`${e(R)}${(o.min/100).toFixed(2)}`})]),g(t,n)},c=t=>{var n=u();N(e=>l(n,e),[()=>d(H[`ui.money_input.value_at_most`],{max:`${e(R)}${(o.max/100).toFixed(2)}`})]),g(t,n)};t(i,e=>{o.min!==void 0&&p()!==null&&p()<o.min?e(a):o.max!==void 0&&p()!==null&&p()>o.max&&e(c,1)}),s(r),N(()=>P(r,`id`,`${o.name}-error`)),g(n,r)};t(ge,t=>{o.error?t(_e):e(B)&&!e(z)&&t(Y,1)}),s(G),N(()=>{P(q,`id`,o.name),P(q,`aria-labelledby`,o.label?C:void 0),P(q,`name`,o.name),P(q,`placeholder`,f()),te(q,e(I)),q.disabled=h(),q.required=v(),J=a(q,1,`smrt-input svelte-e6jjj7`,null,J,{"smrt-mode":e(A),invalid:e(B)}),P(q,`aria-invalid`,e(B)?`true`:void 0),P(q,`aria-describedby`,e(B)?`${o.name}-error`:void 0),l(me,m()),P(he,`name`,`${o.name??``}_cents`),te(he,p()??``)}),_(`input`,q,se),y(`focus`,q,U),y(`blur`,q,W),g(n,G),i()}v([`input`]);var je=c(`<div class="validation-error svelte-1pebtso" role="alert"><!></div>`),Me=c(`<div class="smrt-number svelte-1pebtso" data-smrt-component="NumberInput"><!> <div class="input-wrapper svelte-1pebtso"><input type="number"/></div> <!></div>`);function Ne(n,o){let c=re();ee(o,!0);let{t:d}=ie(),f=x(o,`placeholder`,3,``),p=x(o,`value`,15,null),m=x(o,`step`,3,1),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),y=`${c}-label`,S=ce(),C=le(),T=r(()=>S.state.mode===`smrt`);function D(e){return e===null||!(o.min!==void 0&&e<o.min||o.max!==void 0&&e>o.max)}function O(e){if(!Number.isFinite(m())||m()<=0)return!0;let t=(e-(o.min??0))/m();return Math.abs(t-Math.round(t))<=1e-9}let k=r(()=>D(p())),A=r(()=>p()!==null&&!e(k));function j(e){p(e),o.onchange?.(p())}function M(e){let t=e.toLowerCase().trim(),n={zero:0,one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9,ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19,twenty:20,thirty:30,forty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90,hundred:100,thousand:1e3,million:1e6},r=parseFloat(t.replace(/[,$]/g,``));if(!Number.isNaN(r))return r;if(n[t]!==void 0)return n[t];let i=t.split(/[\s-]+/),a=0,o=0;for(let e of i){let t=n[e];t!==void 0&&(t>=100?(o=o===0?t:o*t,t>=1e3&&(a+=o,o=0)):o+=t)}return a+=o,a>0?a:null}ne(()=>{if(C){let t={name:o.name,type:`number`,get label(){return o.label},get description(){let e=``;return o.min!==void 0&&o.max!==void 0?e=` (between ${o.min} and ${o.max})`:o.min===void 0?o.max!==void 0&&(e=` (maximum ${o.max})`):e=` (minimum ${o.min})`,(o.description||`A number`)+e},setValue:e=>{if(e==null||e===``){j(null);return}if(typeof e==`number`){j(e);return}let t=M(String(e));t!==null&&j(t)},getValue:()=>p(),prepareValue:e=>e==null||e===``?null:typeof e==`number`?e:typeof e==`string`?M(e)??de():de(),getState:()=>({disabled:h()}),get constraints(){return{required:v(),min:o.min,max:o.max,step:m()}},validateValue:e=>{if(e==null||e===``)return!v();let t=typeof e==`number`?e:M(String(e));return t!==null&&Number.isFinite(t)&&D(t)&&O(t)},validate:()=>p()===null?!v():Number.isFinite(p())&&e(k)};return C.registerField(t)}});function F(e){let t=e.target;j(t.value===``?null:parseFloat(t.value))}var I=Me(),L=w(I),R=e=>{ae(e,{get id(){return y},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(L,e=>{o.label&&e(R)});var z=E(L,2),B=w(z);b(B);let V;s(z);var oe=E(z,2),se=e=>{var n=je(),r=w(n),i=e=>{var t=u();N(e=>l(t,e),[()=>d(H[`ui.number_input.value_at_least`],{min:o.min})]),g(e,t)},a=e=>{var t=u();N(e=>l(t,e),[()=>d(H[`ui.number_input.value_at_most`],{max:o.max})]),g(e,t)};t(r,e=>{o.min!==void 0&&p()!==null&&p()<o.min?e(i):o.max!==void 0&&p()!==null&&p()>o.max&&e(a,1)}),s(n),N(()=>P(n,`id`,`${o.name}-error`)),g(e,n)};t(oe,t=>{e(A)&&t(se)}),s(I),N(()=>{P(B,`id`,o.name),P(B,`aria-labelledby`,o.label?y:void 0),P(B,`name`,o.name),P(B,`placeholder`,f()),te(B,p()??``),P(B,`min`,o.min),P(B,`max`,o.max),P(B,`step`,m()),B.disabled=h(),B.required=v(),V=a(B,1,`smrt-input svelte-1pebtso`,null,V,{"smrt-mode":e(T),invalid:e(A)}),P(B,`aria-invalid`,e(A)?`true`:void 0),P(B,`aria-describedby`,e(A)?`${o.name}-error`:void 0)}),_(`input`,B,F),g(n,I),i()}v([`input`]);var Pe=c(`<button type="button"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1vixtb7"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" class="svelte-1vixtb7"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-1vixtb7"></path><line x1="12" x2="12" y1="19" y2="22" class="svelte-1vixtb7"></line></svg></button>`),Fe=c(`<div class="downloading-indicator svelte-1vixtb7"><span class="processing-spinner svelte-1vixtb7"></span> <span class="svelte-1vixtb7"> </span></div>`),Ie=c(`<div class="listening-indicator svelte-1vixtb7"><span class="listening-dot svelte-1vixtb7"></span> <span class="svelte-1vixtb7">Recording...</span></div>`),Le=c(`<div class="processing-indicator svelte-1vixtb7"><span class="processing-spinner svelte-1vixtb7"></span> <span class="svelte-1vixtb7">Processing...</span></div>`),Re=c(`<div class="error-message svelte-1vixtb7" role="alert"> </div>`),ze=c(`<div class="validation-error svelte-1vixtb7" role="alert"> </div>`),Be=c(`<div data-smrt-component="PhoneInput"><!> <div class="input-wrapper svelte-1vixtb7"><input type="tel"/> <!></div> <!> <!> <!></div>`);function Ve(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`placeholder`,3,`(555) 555-5555`),f=x(o,`value`,15,``),p=x(o,`disabled`,3,!1),m=x(o,`required`,3,!1),h=`${c}-label`,v=ce(),T=be(),D=le(),O=S(null),A=S(!1),j=S(!1),M=S(null),I=0,L=r(()=>v.state.mode===`smrt`),R=r(()=>T.isInitializing),z=r(()=>T.downloadProgress);function V(e){if(typeof e!=`string`)return!1;if(!e)return!m();let t=e.replace(/\D/g,``);return t.length===10||t.length===11&&t[0]===`1`}let oe=r(()=>V(f())),se=r(()=>f()&&!e(oe));function U(e){f(e),o.onchange?.(f())}function W(e){let t=e.replace(/\D/g,``);return t.length===0?``:t.length<=3?`(${t}`:t.length<=6?`(${t.slice(0,3)}) ${t.slice(3)}`:t.length<=10?`(${t.slice(0,3)}) ${t.slice(3,6)}-${t.slice(6)}`:t.length===11&&t[0]===`1`?`+1 (${t.slice(1,4)}) ${t.slice(4,7)}-${t.slice(7)}`:`(${t.slice(0,3)}) ${t.slice(3,6)}-${t.slice(6,10)}`}function G(e){let t={zero:`0`,oh:`0`,one:`1`,two:`2`,to:`2`,too:`2`,three:`3`,four:`4`,for:`4`,five:`5`,six:`6`,seven:`7`,eight:`8`,nine:`9`,niner:`9`},n=e.toLowerCase().replace(/^(my phone number is|my number is|phone number|number is|call me at)\s*/i,``).replace(/\b(area code|extension|ext)\b/gi,``).trim();for(let[e,r]of Object.entries(t))n=n.replace(RegExp(`\\b${e}\\b`,`gi`),r);return n=n.replace(/\bdouble\s*(\d)/gi,`$1$1`),n=n.replace(/\btriple\s*(\d)/gi,`$1$1$1`),n.replace(/\D/g,``)}function K(e){return W(G(e))}ne(()=>{if(D){let e={name:o.name,type:`phone`,get label(){return o.label},get description(){return o.description||`Phone number`},setValue:e=>{U(K(String(e??``)))},getValue:()=>f(),prepareValue:e=>{let t=ue(e);if(t===``)return``;let n=G(t);return n.length!==10&&(n.length!==11||n[0]!==`1`)?t:W(n)||de()},getState:()=>({disabled:p()}),get constraints(){return{required:m()}},validateValue:e=>{if(typeof e!=`string`)return!1;if(e===``)return!m();let t=G(e);return t.length===10||t.length===11&&t[0]===`1`},validate:()=>V(f())};return D.registerField(e)}});async function fe(){if(!(!e(L)||p()||e(j))){F(M,null),I=Date.now(),F(A,!0);try{(!T.isReady||T.adapterType!==`whisper-wasm`)&&await T.initialize({type:`whisper-wasm`}),await T.start({continuous:!0,interimResults:!1})}catch(e){F(A,!1),F(M,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`PhoneInput: failed to start voice recording`,{field:o.name,error:e})}}}async function q(){if(!e(A))return;let t=Date.now()-I;if(F(A,!1),await T.stop(),t<500)return;let n=Date.now();for(;T.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=T.lastResult?.trim()||``;if(!r||r.length<2)F(M,`No speech detected. Hold longer and speak clearly.`);else{F(j,!0),F(M,null);try{U(K(r))}catch(e){F(M,e instanceof Error?e.message:`Failed to process speech`,!0)}finally{F(j,!1)}}}function J(e){e.button===0&&fe()}function pe(){q()}function me(){q()}function he(e){e.preventDefault(),fe()}function ge(){q()}function _e(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e(A)?q():fe())}function Y(e){let t=e.target;U(W(t.value))}var ve=Be();let X;var ye=w(ve),xe=e=>{ae(e,{get id(){return h},get for(){return o.name},get label(){return o.label},get required(){return m()}})};t(ye,e=>{o.label&&e(xe)});var Se=E(ye,2),Z=w(Se);b(Z);let Ce;C(Z,e=>F(O,e),()=>e(O));var we=E(Z,2),Q=t=>{var n=Pe();let r;N(t=>{r=a(n,1,`mic-btn svelte-1vixtb7`,null,r,{active:e(A)}),n.disabled=p(),P(n,`aria-label`,t)},[()=>u(H[`ui.phone_input.mic_aria_label`])]),_(`keydown`,n,_e),_(`mousedown`,n,J),_(`mouseup`,n,pe),y(`mouseleave`,n,me),_(`touchstart`,n,he,void 0,!0),_(`touchend`,n,ge),g(t,n)};t(we,t=>{e(L)&&t(Q)}),s(Se);var Te=E(Se,2),Ee=t=>{var n=Fe(),r=E(w(n),2),i=k(r,!0);s(n),N(e=>l(i,e),[()=>u(H[`ui.phone_input.downloading_model`],{progress:e(z)})]),g(t,n)},De=e=>{var t=Ie();g(e,t)},Oe=e=>{var t=Le();g(e,t)};t(Te,t=>{e(R)?t(Ee):e(A)?t(De,1):e(j)&&t(Oe,2)});var $=E(Te,2),ke=t=>{var n=Re(),r=k(n,!0);N(()=>{P(n,`id`,`${o.name}-stt-error`),l(r,e(M))}),g(t,n)};t($,t=>{e(M)&&t(ke)});var Ae=E($,2),je=e=>{var t=ze(),n=k(t,!0);N(e=>{P(t,`id`,`${o.name}-error`),l(n,e)},[()=>u(H[`ui.phone_input.invalid`])]),g(e,t)};t(Ae,t=>{e(se)&&t(je)}),s(ve),N(()=>{X=a(ve,1,`smrt-phone svelte-1vixtb7`,null,X,{listening:e(A)}),P(Z,`id`,o.name),P(Z,`aria-labelledby`,o.label?h:void 0),P(Z,`name`,o.name),P(Z,`placeholder`,d()),te(Z,f()),Z.disabled=p()||e(j),Z.required=m(),Ce=a(Z,1,`smrt-input svelte-1vixtb7`,null,Ce,{"smrt-mode":e(L),invalid:e(se),processing:e(j)}),P(Z,`aria-invalid`,e(se)?`true`:void 0),P(Z,`aria-describedby`,e(se)?`${o.name}-error`:e(M)?`${o.name}-stt-error`:void 0)}),_(`input`,Z,Y),_(`mousedown`,Z,function(...t){(e(L)?J:void 0)?.apply(this,t)}),_(`mouseup`,Z,function(...t){(e(L)?pe:void 0)?.apply(this,t)}),y(`mouseleave`,Z,function(...t){(e(L)?me:void 0)?.apply(this,t)}),_(`touchstart`,Z,function(...t){(e(L)?he:void 0)?.apply(this,t)},void 0,!0),_(`touchend`,Z,function(...t){(e(L)?ge:void 0)?.apply(this,t)}),g(n,ve),i()}v([`input`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`keydown`]),v([`input`,`keydown`,`click`]);var He=c(`<option disabled=""> </option>`),Ue=c(`<option> </option>`),We=c(`<span class="info svelte-17ub3c7"> </span>`),Ge=c(`<div data-smrt-component="SelectInput"><!> <div class="container svelte-17ub3c7"><div class="content svelte-17ub3c7"><select class="input svelte-17ub3c7"><!><!></select></div> <div class="trailing-icon svelte-17ub3c7"><!></div> <div class="active-indicator svelte-17ub3c7"></div></div> <div class="supporting-text svelte-17ub3c7" aria-live="polite"><!></div></div>`);function Ke(o,c){let u=re();ee(c,!0);let d=x(c,`placeholder`,3,`Select an option...`),h=x(c,`value`,15,``),v=x(c,`disabled`,3,!1),b=x(c,`required`,3,!1),te=`${u}-label`,C=ce(),T=le(),D=S(!1),O=r(()=>c.options.some(e=>e.value===``)),A=r(()=>c.options.filter((e,t)=>c.options.findIndex(t=>t.value===e.value)===t)),j=r(()=>C.state.mode===`smrt`);function M(e){h(e),c.onchange?.(h())}ne(()=>{if(T){let e={name:c.name,type:`select`,get label(){return c.label},get description(){let e=c.options.map(e=>e.label).join(`, `);return c.description?`${c.description}. Options: ${e}`:`Options: ${e}`},setValue:e=>{let t=String(e??``),n=ye(t,c.options);n?M(n):c.options.some(e=>e.value===t)&&M(t)},getValue:()=>h(),prepareValue:e=>{let t=ue(e);return t.trim()===``?t:ye(t,c.options)??t},clear:()=>(M(``),!0),getState:()=>({disabled:v()}),get constraints(){return{required:b()}},get options(){return c.options.map(e=>({value:e.value,label:e.label}))},validateValue:e=>{let t=String(e??``);return t===``?!b():c.options.some(e=>e.value===t)},validate:()=>!b()||h().trim().length>0};return T.registerField(e)}});function L(e){let t=e.target;M(t.value)}var R=Ge();let z;var ie=w(R),B=e=>{ae(e,{get id(){return te},get for(){return c.name},get label(){return c.label},get required(){return b()}})};t(ie,e=>{c.label&&e(B)});var V=E(ie,2),oe=w(V),H=w(oe),U=w(H),W=e=>{var t=He(),n=k(t,!0);t.value=t.__value=``,N(()=>{I(t,!h()),l(n,d())}),g(e,t)};t(U,t=>{e(O)||t(W)});var G=E(U);f(G,17,()=>e(A),e=>e.value,(t,n)=>{var r=Ue(),i=k(r,!0),a={};N(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),g(t,r)}),s(H);var K;m(H),s(oe);var de=E(oe,2),fe=w(de);se(fe,{name:`chevron-down`,size:24}),s(de),p(2),s(V);var q=E(V,2),J=w(q),pe=e=>{var t=We(),n=k(t,!0);N(()=>l(n,c.description)),g(e,t)};t(J,t=>{c.description&&e(D)&&t(pe)}),s(q),s(R),N(()=>{z=a(R,1,`smrt-select-field svelte-17ub3c7`,null,z,{"smrt-mode":e(j),focused:e(D),disabled:v(),"has-value":!!h()}),P(H,`id`,c.name),P(H,`aria-labelledby`,c.label?te:void 0),P(H,`name`,c.name),H.disabled=v(),H.required=b(),P(H,`aria-describedby`,`${c.name}-supporting`),K!==(K=h())&&(H.value=(H.__value=K)??``,n(H,K)),P(q,`id`,`${c.name}-supporting`)}),_(`change`,H,L),y(`focus`,H,()=>F(D,!0)),y(`blur`,H,()=>F(D,!1)),g(o,R),i()}v([`change`]);var qe=c(`<button type="button"><!></button>`),Je=c(`<span class="info svelte-1wen309"> </span>`),Ye=c(`<span class="success svelte-1wen309">Recording...</span>`),Xe=c(`<span class="info svelte-1wen309">Processing...</span>`),Ze=c(`<span class="error svelte-1wen309"> </span>`),Qe=c(`<div data-smrt-component="TextareaInput"><!> <div class="container svelte-1wen309"><div class="content svelte-1wen309"><textarea class="input svelte-1wen309"></textarea></div> <!> <div class="active-indicator svelte-1wen309"></div></div> <div class="supporting-text svelte-1wen309" aria-live="polite"><!></div></div>`);function $e(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`placeholder`,3,``),f=x(o,`value`,15,``),m=x(o,`rows`,3,4),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),b=x(o,`appendMode`,3,!1),T=`${c}-label`,O=ce(),A=be(),j=le(),M=S(null),I=S(!1),z=S(!1),V=S(!1),oe=``,U=S(null),W=0,G=r(()=>O.state.mode===`smrt`),K=r(()=>A.isInitializing),de=r(()=>A.downloadProgress);function fe(e){f(e),o.onchange?.(f())}ne(()=>{if(j){let e={name:o.name,type:`textarea`,get label(){return o.label},get description(){return o.description},setValue:e=>{fe(String(e??``))},getValue:()=>f(),prepareValue:e=>{let t=ue(e);return b()&&f()?`${f()}\n${t}`:t},prepareReviewedValue:ue,getState:()=>({disabled:h()}),get constraints(){return{required:v()}},validateValue:e=>!v()||String(e??``).trim().length>0,validate:()=>!v()||f().trim().length>0};return j.registerField(e)}});async function q(){if(!(!e(G)||h()||e(z))){oe=f(),F(U,null),W=Date.now(),F(I,!0);try{(!A.isReady||A.adapterType!==`whisper-wasm`)&&await A.initialize({type:`whisper-wasm`}),await A.start({continuous:!0,interimResults:!1})}catch(e){F(I,!1),F(U,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`TextareaInput: failed to start voice recording`,{field:o.name,error:e})}}}async function J(){if(!e(I))return;let t=Date.now()-W;if(F(I,!1),await A.stop(),t<500)return;let n=Date.now();for(;A.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=A.lastResult?.trim()||``;if(!r||r.length<2)F(U,`No speech detected. Hold longer and speak clearly.`);else{F(z,!0),F(U,null);try{let e=X(r);b()&&oe?fe(`${oe}\n${e}`):fe(e)}catch(e){F(U,e instanceof Error?e.message:`Failed to process speech`,!0)}finally{F(z,!1)}}}function pe(e){e.button===0&&q()}function me(){J()}function he(){J()}function ge(e){e.preventDefault(),q()}function _e(){J()}function Y(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e(I)?J():q())}function ve(e){let t=e.target;fe(t.value)}var ye=Qe();let xe;var Se=w(ye),Z=e=>{ae(e,{get id(){return T},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(Se,e=>{o.label&&e(Z)});var Ce=E(Se,2),we=w(Ce),Q=w(we);L(Q),C(Q,e=>F(M,e),()=>e(M)),s(we);var Te=E(we,2),Ee=t=>{var n=qe();let r;var i=w(n);se(i,{name:`mic`,size:20}),s(n),D(n,e=>R?.(e)),N(t=>{r=a(n,1,`mic-btn svelte-1wen309`,null,r,{active:e(I)}),n.disabled=h(),P(n,`aria-label`,t)},[()=>u(H[`ui.textarea_input.mic_aria_label`])]),_(`keydown`,n,Y),_(`mousedown`,n,e=>{e.stopPropagation(),e.button===0&&q()}),_(`mouseup`,n,me),y(`mouseleave`,n,he),_(`touchstart`,n,e=>{e.stopPropagation(),e.preventDefault(),q()},void 0,!0),_(`touchend`,n,_e),g(t,n)};t(Te,t=>{e(G)&&t(Ee)}),p(2),s(Ce);var De=E(Ce,2),Oe=w(De),$=t=>{var n=Je(),r=k(n,!0);N(e=>l(r,e),[()=>u(H[`ui.textarea_input.downloading_model`],{progress:e(de)})]),g(t,n)},ke=e=>{var t=Ye();g(e,t)},Ae=e=>{var t=Xe();g(e,t)},je=t=>{var n=Ze(),r=k(n,!0);N(()=>l(r,e(U))),g(t,n)},Me=e=>{var t=Je(),n=k(t,!0);N(()=>l(n,o.description)),g(e,t)};t(Oe,t=>{e(K)?t($):e(I)?t(ke,1):e(z)?t(Ae,2):e(U)?t(je,3):o.description&&e(V)&&t(Me,4)}),s(De),s(ye),N(()=>{xe=a(ye,1,`smrt-text-field multiline svelte-1wen309`,null,xe,{"smrt-mode":e(G),focused:e(V),disabled:h(),"has-value":!!f(),listening:e(I)}),P(Q,`id`,o.name),P(Q,`aria-labelledby`,o.label?T:void 0),P(Q,`name`,o.name),P(Q,`placeholder`,e(V)?d():``),te(Q,f()),P(Q,`rows`,m()),Q.disabled=h()||e(z),Q.required=v(),P(Q,`aria-invalid`,e(U)?`true`:void 0),P(Q,`aria-describedby`,`${o.name}-supporting`),P(De,`id`,`${o.name}-supporting`)}),_(`input`,Q,ve),y(`focus`,Q,()=>F(V,!0)),y(`blur`,Q,()=>F(V,!1)),_(`mousedown`,Q,function(...t){(e(G)?pe:void 0)?.apply(this,t)}),_(`mouseup`,Q,function(...t){(e(G)?me:void 0)?.apply(this,t)}),y(`mouseleave`,Q,function(...t){(e(G)?he:void 0)?.apply(this,t)}),_(`touchstart`,Q,function(...t){(e(G)?ge:void 0)?.apply(this,t)},void 0,!0),_(`touchend`,Q,function(...t){(e(G)?_e:void 0)?.apply(this,t)}),g(n,ye),i()}v([`input`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`keydown`]);var et=c(`<button type="button"><!></button>`),tt=c(`<span class="info svelte-q632gy"> </span>`),nt=c(`<span class="success svelte-q632gy">Recording...</span>`),rt=c(`<span class="info svelte-q632gy">Processing...</span>`),it=c(`<span class="error svelte-q632gy"> </span>`),at=c(`<div data-smrt-component="TextInput"><!> <div class="container svelte-q632gy"><div class="content svelte-q632gy"><input class="input svelte-q632gy"/></div> <!> <div class="active-indicator svelte-q632gy"></div></div> <div class="supporting-text svelte-q632gy" aria-live="polite"><!></div></div>`);function ot(n,o){let c=re();ee(o,!0);let{t:u}=ie(),d=x(o,`type`,3,`text`),f=x(o,`placeholder`,3,``),m=x(o,`value`,15,``),h=x(o,`disabled`,3,!1),v=x(o,`required`,3,!1),T=x(o,`appendMode`,3,!1),O=`${c}-label`,A=ce(),j=be(),M=le(),I=S(null),L=S(!1),z=S(!1),V=S(!1),oe=``,U=S(null),W=0,G=r(()=>A.state.mode===`smrt`),K=r(()=>j.isInitializing),de=r(()=>j.downloadProgress);function fe(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}let q=r(()=>d()!==`email`||!m()||fe(m())),J=r(()=>d()===`email`&&m()&&!e(q));function pe(e){m(e),o.onchange?.(m())}ne(()=>{if(M){let t={name:o.name,get type(){return d()===`email`?`email`:`text`},get label(){return o.label},get description(){return o.description},setValue:e=>{pe(String(e??``))},getValue:()=>m(),prepareValue:ue,getState:()=>({disabled:h()}),get constraints(){return{required:v()}},validateValue:e=>{let t=String(e??``);return(!v()||t.trim().length>0)&&(d()!==`email`||t.length===0||fe(t))},validate:()=>(!v()||m().trim().length>0)&&(d()!==`email`||m().length===0||e(q))};return M.registerField(t)}});async function me(){if(!(!e(G)||h()||e(z))){oe=m(),F(U,null),W=Date.now(),F(L,!0);try{(!j.isReady||j.adapterType!==`whisper-wasm`)&&await j.initialize({type:`whisper-wasm`}),await j.start({continuous:!0,interimResults:!1})}catch(e){F(L,!1),F(U,e instanceof Error?e.message:`Could not start voice input`,!0),B.error(`TextInput: failed to start voice recording`,{field:o.name,error:e})}}}async function he(){if(!e(L))return;let t=Date.now()-W;if(F(L,!1),await j.stop(),t<500)return;let n=Date.now();for(;j.isListening&&Date.now()-n<3e3;)await new Promise(e=>setTimeout(e,100));await new Promise(e=>setTimeout(e,100));let r=j.lastResult?.trim()||``;if(!r||r.length<2)F(U,`No speech detected. Hold longer and speak clearly.`);else{F(z,!0),F(U,null);try{let e=d()===`email`?ve(r):X(r);T()&&oe?pe(`${oe} ${e}`):pe(e)}catch(e){F(U,e instanceof Error?e.message:`Failed to process speech`,!0)}finally{F(z,!1)}}}function ge(e){e.button===0&&me()}function _e(){he()}function Y(){he()}function ye(e){e.preventDefault(),me()}function xe(){he()}function Se(e){e.preventDefault(),e.stopPropagation()}function Z(t){(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e(L)?he():me())}function Ce(e){let t=e.target;pe(t.value)}var we=at();let Q;var Te=w(we),Ee=e=>{ae(e,{get id(){return O},get for(){return o.name},get label(){return o.label},get required(){return v()}})};t(Te,e=>{o.label&&e(Ee)});var De=E(Te,2),Oe=w(De),$=w(Oe);b($),C($,e=>F(I,e),()=>e(I)),s(Oe);var ke=E(Oe,2),Ae=t=>{var n=et();let r;var i=w(n);se(i,{name:`mic`,size:20}),s(n),D(n,e=>R?.(e)),N(t=>{r=a(n,1,`mic-btn svelte-q632gy`,null,r,{active:e(L)}),n.disabled=h(),P(n,`aria-label`,t)},[()=>u(H[`ui.text_input.mic_aria_label`])]),_(`click`,n,Se),_(`keydown`,n,Z),_(`mousedown`,n,e=>{e.stopPropagation(),e.button===0&&me()}),_(`mouseup`,n,_e),y(`mouseleave`,n,Y),_(`touchstart`,n,e=>{e.stopPropagation(),e.preventDefault(),me()},void 0,!0),_(`touchend`,n,xe),g(t,n)};t(ke,t=>{e(G)&&t(Ae)}),p(2),s(De);var je=E(De,2),Me=w(je),Ne=t=>{var n=tt(),r=k(n,!0);N(e=>l(r,e),[()=>u(H[`ui.text_input.downloading_model`],{progress:e(de)})]),g(t,n)},Pe=e=>{var t=nt();g(e,t)},Fe=e=>{var t=rt();g(e,t)},Ie=t=>{var n=it(),r=k(n,!0);N(()=>l(r,e(U))),g(t,n)},Le=e=>{var t=it(),n=k(t,!0);N(e=>l(n,e),[()=>u(H[`ui.text_input.invalid_email`])]),g(e,t)},Re=e=>{var t=tt(),n=k(t,!0);N(()=>l(n,o.description)),g(e,t)};t(Me,t=>{e(K)?t(Ne):e(L)?t(Pe,1):e(z)?t(Fe,2):e(U)?t(Ie,3):e(J)?t(Le,4):o.description&&e(V)&&t(Re,5)}),s(je),s(we),N(()=>{Q=a(we,1,`smrt-text-field svelte-q632gy`,null,Q,{"smrt-mode":e(G),focused:e(V),invalid:e(J),disabled:h(),"has-value":!!m(),listening:e(L)}),P($,`id`,o.name),P($,`aria-labelledby`,o.label?O:void 0),P($,`name`,o.name),P($,`type`,d()),P($,`placeholder`,e(V)?f():``),te($,m()),$.disabled=h()||e(z),$.required=v(),P($,`aria-invalid`,e(J)?`true`:void 0),P($,`aria-describedby`,`${o.name}-supporting`),P(je,`id`,`${o.name}-supporting`)}),_(`input`,$,Ce),y(`focus`,$,()=>F(V,!0)),y(`blur`,$,()=>F(V,!1)),_(`mousedown`,$,function(...t){(e(G)?ge:void 0)?.apply(this,t)}),_(`mouseup`,$,function(...t){(e(G)?_e:void 0)?.apply(this,t)}),y(`mouseleave`,$,function(...t){(e(G)?Y:void 0)?.apply(this,t)}),_(`touchstart`,$,function(...t){(e(G)?ye:void 0)?.apply(this,t)},void 0,!0),_(`touchend`,$,function(...t){(e(G)?xe:void 0)?.apply(this,t)}),g(n,we),i()}v([`input`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`,`keydown`]);function st(e){return typeof e!=`number`||!Number.isFinite(e)?null:Number((e*100).toFixed(4))}function ct(e){return e===null||!Number.isFinite(e)?null:Number((e/100).toFixed(6))}export{Ke as a,Ae as c,$e as i,De as l,ct as n,Ve as o,ot as r,Ne as s,st as t,Y as u};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./C4h_pFjw.js","./DG3qFFTE.js","./COiEfhsA.js","./xihTtKlq.js","./q4NZ65-X.js","./Bq8E3AWP.js","./DK8Blf1Y.js","../assets/currency-metadata.ksbBA8-C.css","../assets/app.CNgJdfDA.css","./CNDSLfdy.js","./BLUInGBV.js","../assets/feedback.nSgE8ogy.css","./CJ2Zllj9.js","./BaNbYf_w.js","./v8gneLl4.js","../assets/SegmentedControl.CH_vc242.css","./DIE02RSm.js","../assets/webmcp-ui-context.hO24Ni5w.css","./Dvi40siQ.js","../assets/data.B71l2JEr.css","./CUyVrfsu.js","./CGVkRTMI.js","../assets/forms.Zvn0Ncy0.css","./BYcBM-fh.js","../assets/AppShell.CG6RWMlI.css","./nHXWSv3N.js","../assets/workspace.C40zM0Mb.css","./DFcwqo0O.js","./D7pmElUN.js","../assets/state.C0UZEhxS.css","../assets/labels.Gb0NBp4g.css","./By9bP9S3.js","./Br6uY3Yq.js","./DWT84qRc.js","../assets/planner.DOQVfcOi.css","./D_U_DYjx.js"])))=>i.map(i=>d[i]);
2
- import{$ as e,Et as t,Mt as n,bt as r,vt as i}from"./DG3qFFTE.js";import{t as a}from"./BaNbYf_w.js";import"./xihTtKlq.js";import{I as o,L as s,O as c,Q as l,St as u,W as d,Z as f,_ as p,_t as m,bt as h,et as g,h as _,ht as v,p as y,x as b,yt as x}from"./q4NZ65-X.js";import{v as S}from"./CJ2Zllj9.js";import"./v8gneLl4.js";import"./DIE02RSm.js";import{u as ee}from"./Dvi40siQ.js";import{A as C,C as te,E as ne,F as re,G as ie,I as ae,M as oe,N as se,O as ce,P as le,T as ue,U as de,V as fe,W as w,b as pe,h as me,j as he,k as ge,n as _e,q as ve,r as ye,w as be}from"./DFcwqo0O.js";import{B as xe,D as Se,G as Ce,H as we,J as Te,K as Ee,M as De,V as Oe,X as ke,Y as Ae,Z as je,a as Me,b as T,c as Ne,d as Pe,l as Fe,n as Ie,r as Le,s as Re,t as E,v as ze,x as D,z as Be}from"./D7pmElUN.js";function Ve(e){let t=e?.surfaces?.find(e=>e.kind===`widget`&&e.sectionDefault===!0);return t?{id:t.type,type:t.type,span:4,options:{}}:void 0}function He(e){let t=e.lastIndexOf(`#`);if(t<=0||t===e.length-1)return null;let n=e.slice(0,t),r=e.slice(t+1);return n.startsWith(`.`)||n.startsWith(`/`)||/\s/.test(n)||!/^[A-Za-z_$][\w$]*$/.test(r)?null:{specifier:n,exportName:r}}function O(e,t){let n=He(e);return n?Promise.resolve(t(n.specifier,n.exportName)).then(t=>{if(t==null)throw Error(`export "${e}" was not found`);return t}):Promise.reject(Error(`invalid export ref "${e}"`))}function k(e){let t;return()=>(t??=e(),t)}function Ue(e){return typeof e==`object`&&!!e&&`default`in e&&!!e.default}function We(e,t,n){let r=k(()=>O(e.export,t)),i=e.optionsEditor?k(()=>O(e.optionsEditor,t)):void 0,a=e.data?.load?k(()=>O(e.data?.load,t)):void 0,o={type:e.type,title:e.label,options:e.options??[],loadComponent:async()=>{let e=await r();return Ue(e)?e.default:e}};return e.description!==void 0&&(o.description=e.description),e.icon!==void 0&&(o.icon=e.icon),e.version!==void 0&&(o.version=e.version),e.allowedIn&&(o.allowedIn=e.allowedIn),e.defaultSpan!==void 0&&(o.defaultSpan=e.defaultSpan),e.minSpan!==void 0&&(o.minSpan=e.minSpan),e.maxSpan!==void 0&&(o.maxSpan=e.maxSpan),n&&(o.migrate=n),i&&(o.loadOptionsEditor=async()=>{let e=await i();return Ue(e)?e.default:e}),a&&(o.load=async(t,n)=>{let r=await a();if(typeof r!=`function`)throw Error(`loader "${e.data?.load}" is not a function`);return r(t,n)}),o}async function Ge(e,t,n,r={}){let i=[],a=[],o=[];for(let s of t)if(!r.enabled||r.enabled(s.id))for(let t of s.surfaces??[]){if(t.kind!==`widget`)continue;let c=(e,n)=>a.push({recipeId:s.id,type:t.type,reason:e,message:n});if(e.has(t.type)&&!r.replace){c(`duplicate_type`,`"${t.type}" is already registered`);continue}let l;if(t.migrate)try{let e=await O(t.migrate,n);if(typeof e!=`function`)throw Error(`not a function`);l=e}catch(e){c(`unresolved`,`migrate "${t.migrate}": ${e instanceof Error?e.message:String(e)}`);continue}try{o.push(e.register(We(t,n,l),{replace:r.replace})),i.push(t.type)}catch(e){c(`invalid`,e instanceof Error?e.message:String(e))}}return{registered:i,skipped:a,dispose:()=>{for(let e of o.splice(0))e()}}}var Ke=[`identifier`,`status`,`date`,`party`,`total`,`money`];function qe(e){for(let t of[`identifier`,`status`,`date`,`money`,`quantity`,`party`,`title`])if(e.includes(t))return t}function Je(e,t,n={}){let r=new Set(n.exclude??[]),i=n.max??4,a=Object.keys(t).filter(t=>!r.has(t)&&t in e.fields),o=e=>a.find(n=>t[n]?.includes(e)),s=[],c=e=>{e&&!s.includes(e)&&s.push(e)};c(o(`identifier`)??o(`title`));for(let e of Ke)e!==`identifier`&&(e===`money`&&s.some(e=>t[e]?.includes(`money`))||c(e===`date`?a.find(e=>t[e]?.includes(`date`)&&e!==`createdAt`&&e!==`updatedAt`)??o(`date`):o(e)));return s.slice(0,i).map(n=>({key:n,label:A(n,e),...qe(t[n]??[])?{role:qe(t[n]??[])}:{}}))}function Ye(e,t,n={}){let r=new Set(n.exclude??[]),i=Object.keys(t).filter(t=>!r.has(t)&&t in e.fields),a=i.filter(t=>e.fields[t]?.type===`text`),o=a.find(e=>/^(?:description|title|name|label)$/.test(e))??a.find(e=>t[e]?.includes(`title`))??a.find(e=>!t[e]?.includes(`identifier`)),s=i.find(e=>t[e]?.includes(`quantity`)),c=i.filter(e=>t[e]?.includes(`money`)),l=c.find(e=>/unit|price|rate/i.test(e)),u=c.find(e=>/^(?:amount|lineTotal|total|lineAmount)$/.test(e))??[...c].reverse().find(e=>e!==l),d=[];return o&&d.push({key:o,label:A(o,e)}),s&&d.push({key:s,label:A(s,e),role:`quantity`}),l&&d.push({key:l,label:A(l,e),role:`money`,summarize:!1}),u&&u!==l&&d.push({key:u,label:A(u,e),role:`money`}),d}function A(e,t){let n=t.fields[e];return n&&(n.type===`foreignKey`||n.type===`crossPackageRef`)&&/.[a-z]Id$/.test(e)?le(e.slice(0,-2)):le(e)}function Xe(e){if(e.dataWidgets&&e.page)return[e.page];let t=[{id:`shortcuts`,type:`shortcuts`,span:4,options:{}}];if(e.dataWidgets&&e.lead){let n=e.lead,r=e.override,i=r&&typeof r==`object`&&!Array.isArray(r)?r:void 0,a=i?.changed;a&&typeof a==`object`&&!Array.isArray(a)&&Object.hasOwn(a,`count`)&&!(Array.isArray(i?.removed)&&i.removed.includes(`count`))&&t.push({id:`count`,type:`metric`,span:1,options:{title:n.plural,model:n.id,measure:`count`}}),t.push({id:`latest`,type:`records`,span:4,options:{title:`${n.name} records`,model:n.id,limit:5,summaries:!1}})}return t}var Ze=[`text`,`integer`,`decimal`,`boolean`,`datetime`,`json`,`foreignKey`,`crossPackageRef`];function Qe(e){return Ze.includes(e)?e:`text`}var $e=/(Date|^date|period(Start|End))$/;function et(e,t){return t.type===`datetime`&&!t.system&&$e.test(t.name)&&!e.fields.some(e=>e.name===`allDay`)?`date`:void 0}function tt(e){return pe(e)[0]}function nt(e,t){let n=t.ui?{...t.ui}:void 0,r=c(t)?`money`:et(e,t);return{type:Qe(t.type),required:t.required,nullable:!t.required,...t.default===void 0?{}:{default:t.default},...t.description?{description:t.description}:{},...n?{ui:n}:{},...t.enum?.length?{enum:[...t.enum]}:{},...r?{format:r}:{},...tt(e)===t.name?{display:!0}:{}}}function rt(e,t){return e.includes(`:`)?e:`${t.slice(0,t.lastIndexOf(`:`))}:${e}`}function it(e,t){if(!t.related)return!1;let n=rt(t.related,e.id);return Ae(m,n,g).some(t=>t.id===e.id)}function at(e){return e.fields.flatMap(t=>{if(t.type!==`foreignKey`&&t.type!==`crossPackageRef`||!t.related)return[];let n=h(rt(t.related,e.id));return n?[{field:t.name,kind:t.type===`crossPackageRef`?`crossPackageRef`:`foreignKey`,relatedCollection:n.model.collection,...it(e,t)?{role:`items`}:{}}]:[]})}function j(e){let t=at(e);return{name:e.collection,objectRef:e.id,className:e.name,idField:`id`,fields:Object.fromEntries(e.fields.map(t=>[t.name,nt(e,t)])),...t.length?{relationships:t}:{}}}function ot(e,t){return{objectRef:e.id,fields:Object.fromEntries(t.map((e,t)=>[e.name,{visibility:`basic`,label:e.label,help:e.help??null,order:t,required:e.required}]))}}function st(e,t){let n=new Set(t);for(let t of e)for(let e of t.models)n.add(e);return n}function ct(e){return y(e.replace(/_?id$/i,``)||e)}function M(e,t,n){let r=ke(e,t),i=new Set(e.packages.flatMap(e=>(e.recipes??[]).filter(e=>e.exposure===`ui-only`).flatMap(e=>e.models))),a=je(e,t).filter(e=>(e.model.exposed||i.has(e.model.id))&&n.has(e.model.id)),o=new Set(Ae(e,t,g).map(e=>e.id)),s=new Map;for(let e of a)s.set(e.model.id,(s.get(e.model.id)??0)+1);let c=a.map(e=>{let t=o.has(e.model.id)?`items`:`children`,n=j(e.model),i=ae(n),a=[e.fk];return{model:e.model.id,field:e.fk,label:(s.get(e.model.id)??0)>1?`${Ce(e.model.name,r)} (${ct(e.fk).toLowerCase()})`:Ce(e.model.name,r),kind:t,columns:t===`items`?Ye(n,i,{exclude:a}):Je(n,i,{exclude:a,max:5}),...t===`items`&&`sortOrder`in n.fields?{sort:`sortOrder`}:{}}});for(let n of Ee(e,t))c.push({model:n.model.id,field:n.fk,label:ct(n.fk),kind:`reference`});return c}var lt=Symbol(`smrt-cookbook`);function ut(){return t(lt)}function dt(e,t){let{sections:n}=t;if(!n)throw Error(`the cookbook widget context is missing`);let r=typeof e.section==`string`?e.section:``,i=r?n.find(e=>e.id===`section:${r}`||e.id===`custom:${r}`)?.id:t.overviewId;if(!i)throw Error(`unknown section ${r}`);return se(n,i)}function ft(e){return e?async(t,n)=>{let r=dt(t,n);try{let t=await e(n,r.items.map(e=>({...e})));if(!Array.isArray(t))return r;let i=new Set,a=[];for(let e of t){if(!e||typeof e.href!=`string`)continue;let t=typeof e.id==`string`&&e.id?e.id:e.href;i.has(t)&&(t=`${t}#${a.length}`),i.add(t),a.push({...e,id:t})}return{items:a}}catch(e){if(n.signal?.aborted)throw e;return r}}:dt}var pt=new Set([`foreignKey`,`crossPackageRef`]);function N(e,t){return`/m/${e}/${t}/`}function mt(e,t,n,r=`view`){let i=`${N(e,t)}${encodeURIComponent(n)}/`;return r===`edit`?`${i}edit/`:i}function ht(e,t,n,r){return`${N(e,t)}?${encodeURIComponent(n)}=${encodeURIComponent(r)}`}function gt(e,t){let n=new URLSearchParams(e);for(let e of t.fields){if(!pt.has(e.type))continue;let t=n.get(e.name);if(t)return{field:e.name,equals:t}}}function _t(e){return e?.equals===void 0?``:`${encodeURIComponent(e.field)}=${encodeURIComponent(e.equals)}`}var P=e=>typeof e==`number`&&Number.isSafeInteger(e)?e:null,vt=(e,t)=>e.fields.some(e=>e.name===t);function yt(e,t){let n=ae(j(e)),r=te(t,n);return Object.values(r).some(e=>P(e)!==null)?r:void 0}function bt(e,t){return!!e.fields.find(e=>e.name===`status`)?.enum?.includes(`draft`)&&typeof t.status==`string`&&t.status!==``&&t.status!==`draft`}function xt(e,t,n){if(!bt(e,t)||![`subtotal`,`taxAmount`,`totalAmount`,`discountTotal`].every(t=>vt(e,t)))return;let r=P(t.subtotal),i=P(t.taxAmount),a=P(t.totalAmount),o=P(t.discountTotal)??0;if(r===null||i===null||a===null)return;let s=f(t,`exclusive`);return{subtotal:r,discount:o,tax:i,total:a,lineAmountType:s,roundingScope:l(t,`line`),showNetSubtotal:s===`inclusive`,taxes:v(n,s).flatMap(e=>e.taxComponentId?[{taxComponentId:e.taxComponentId,name:e.name,percent:e.percent,taxable:e.taxable,tax:e.tax}]:[])}}var F=fe();function I(e){let{source:t,href:n}=e;if(!t||!n)throw Error(`the planner widget context is missing`);return{source:t,href:n}}function L(e){let t=typeof e==`string`?h(e):void 0;if(!t)throw Error(`unknown model ${String(e)}`);return{model:t.model,packageId:t.pkg.id,path:N(t.pkg.id,t.model.name)}}var R=new Set([`foreignKey`,`crossPackageRef`]);function z(e,t,n){let r=e.filter;if(typeof r!=`string`||r===``)return;if(r!==`parent`)throw Error(`unknown filter ${r}`);let{record:i}=t;if(!i?.id)throw Error(`the parent filter needs a record`);let a=typeof e.parentField==`string`&&e.parentField?e.parentField:e.field,o=typeof a==`string`?a:``,s=n.fields.find(e=>e.name===o);if(!s||!R.has(s.type))throw Error(`${n.name} has no reference field ${o}`);return{field:o,id:i.id}}async function B(e,t,n){return n?e.listWhere(t,n.field,n.id):e.list(t)}function V(e,t,n){return e(n?ht(t.packageId,t.model.name,n.field,n.id):t.path)}var H=e=>typeof e==`number`&&Number.isFinite(e);async function St(e,t){let{source:n,href:r}=I(t),i=L(e.model),{model:a}=i,o=z(e,t,a),s=await B(n,a,o),l=V(r,i,o),u=typeof e.measure==`string`?e.measure:``;if(u===`count`||u===``)return{value:s.length,format:`integer`,href:l};let d=a.fields.find(t=>t.name===e.field);if(!d||d.type!==`integer`&&d.type!==`decimal`)throw Error(`${u} needs a numeric field of ${a.name}`);let f=s.map(e=>e[d.name]).filter(H),p=0;if(f.length){if(u===`sum`||u===`avg`)p=f.reduce((e,t)=>e+t,0),u===`avg`&&(p/=f.length);else if(u===`min`)p=Math.min(...f);else if(u===`max`)p=Math.max(...f);else throw Error(`unknown measure ${u}`)}let m=c(d);return{value:m?Math.round(p):p,format:m?`money`:d.type===`integer`?`integer`:`decimal`,...m?{currency:`USD`}:{},href:l}}function Ct(e,t){return H(e)&&H(t)?e-t:String(e??``).localeCompare(String(t??``))}var wt=new Set([`createdAt`,`updatedAt`]),Tt=[`identifier`,`status`,`date`,`money`,`quantity`,`party`,`title`];function Et(e=[]){return Tt.find(t=>e.includes(t))}function Dt(e,t,n,r){let i=j(e),a=r?[r]:[],o=oe(n),s=o.length?[]:me(E.apply(e).fields.filter(t=>!a.includes(t.name)&&!Se(e,t))).filter(e=>!e.derive),c=o.length?o:s.map(e=>e.name),l=[...Ye(i,t,{exclude:a}),...Je(i,t,{exclude:a,max:c.length+8})];return c.map(n=>{let r=e.fields.find(e=>e.name===n);if(!r)throw Error(`${e.name} has no field ${n}`);let i=l.find(e=>e.key===n),a=s.find(e=>e.name===n)?.label;if(i)return a?{...i,label:a}:i;let o=Et(t[n]);return{key:n,label:a??(R.has(r.type)?y(n.replace(/Id$/,``)):y(n)),...o?{role:o}:{}}})}var Ot=new Set([`money`,`quantity`]);function kt(e,t){let n={};for(let r of e)(r.summarize??Ot.has(r.role))&&(n[r.key]=t.reduce((e,t)=>{let n=t[r.key];return H(n)?e+n:e},0));return n}function At(e,t){let n=re(j(e)),r=new Set(t.map(e=>n?e[n]:void 0).filter(e=>typeof e==`string`&&e!==``));return r.size===1?[...r][0]??`USD`:`USD`}async function jt(e,t){let{source:n,href:r}=I(t),i=L(e.model),{model:a}=i,o=z(e,t,a),s=await B(n,a,o);if(typeof e.sort==`string`&&e.sort){if(!a.fields.find(t=>t.name===e.sort)&&!wt.has(e.sort))throw Error(`${a.name} has no field ${e.sort}`);let t=s.some(t=>t[e.sort]!==void 0)?e.sort:W(a)?.name;if(t){let n=e.direction===`asc`?1:-1;s=[...s].sort((e,r)=>n*Ct(e[t],r[t]))}}let c=Dt(a,ae(j(a)),e.columns,o?.field),l=H(e.limit)?e.limit:5,u=s.slice(0,l),d=a.fields.filter(e=>R.has(e.type)&&c.some(t=>t.key===e.name)),f=await ye(n,d,u),p=e=>Object.fromEntries(c.map(t=>{let n=e[t.key],r=d.find(e=>e.name===t.key);return r?.related&&typeof n==`string`&&n?[t.key,f.get(_(r.related,n))??``]:[t.key,n??null]})),m=kt(c,s),h=!Te(a);return{rows:await Promise.all(u.map(async e=>({id:String(e.id),title:await _e(n,a,e,0,o?.field),...h?{href:r(mt(i.packageId,a.name,String(e.id)))}:{},cells:p(e)}))),...e.summaries===!1?{}:{total:s.length},...h?{href:V(r,i,o)}:{},columns:c,currency:At(a,s),...Object.keys(m).length?{summaries:m}:{}}}var Mt={"7d":7,"30d":30,"90d":90,"12m":365,all:null},U=864e5;function Nt(e){return e===`7d`||e===`30d`?`day`:e===`90d`?`week`:`month`}function Pt(e,t){let n=new Date(e);if(t===`month`)return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1);let r=Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate());return t===`week`?r-(n.getUTCDay()+6)%7*U:r}function Ft(e,t){if(t===`month`){let t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)}return e+(t===`week`?7:1)*U}function It(e,t){let n=new Date(e).toISOString();return t===`month`?n.slice(0,7):n.slice(0,10)}var Lt=e=>e.type===`datetime`&&!e.system;function W(e){let t=e.fields.filter(Lt);return t.find(e=>/^(issue|order|start|created)/i.test(e.name))??t[0]}function Rt(e){if(typeof e!=`string`&&typeof e!=`number`)return;let t=new Date(e).getTime();return Number.isFinite(t)?t:void 0}async function zt(e,t){let{source:n,href:r}=I(t),i=L(e.model),{model:a}=i,o=z(e,t,a),s=typeof e.groupBy==`string`?e.groupBy:``,l=s?a.fields.find(e=>e.name===s):W(a);if(!l)throw Error(s?`${a.name} has no field ${s}`:`${a.name} has no date field to chart; choose a group-by field`);let u=typeof e.measure==`string`?e.measure:``,d;if(u&&u!==`count`){if(u!==`sum`&&u!==`avg`)throw Error(`unknown measure ${u}`);if(d=a.fields.find(t=>t.name===e.field),!d||d.type!==`integer`&&d.type!==`decimal`)throw Error(`${u} needs a numeric field of ${a.name}`)}let f=typeof e.period==`string`?e.period:`30d`;if(!Object.hasOwn(Mt,f))throw Error(`unknown period ${f}`);let p=Mt[f],m=Lt(l),h=m?l:W(a),g=p!==null&&h?b-p*U:-1/0,_=await B(n,a,o);h&&g!==-1/0&&(_=_.filter(e=>{let t=Rt(e[h.name]);return t!==void 0&&t>=g&&t<=b}));let v=new Map,y=(e,t,n)=>{let r=v.get(e)??{key:t,sum:0,n:0};if(d){let e=n[d.name];if(!H(e))return;r.sum+=e}r.n+=1,v.set(e,r)},x=Nt(f);if(m){let e=g===-1/0?Math.min(..._.map(e=>Rt(e[l.name])??b),b):g;for(let t=Pt(e,x);t<=b;t=Ft(t,x))v.set(It(t,x),{key:t,sum:0,n:0});for(let e of _){let t=Rt(e[l.name]);if(t===void 0)continue;let n=Pt(t,x);y(It(n,x),n,e)}}else for(let e of _){let t=e[l.name],n=t==null||t===``?`(none)`:String(t);y(n,n,e)}let S=d?c(d):!1,ee=e=>{if(!d)return e.n;let t=u===`avg`&&e.n?e.sum/e.n:e.sum;return S?Math.round(t):t},C=[...v.entries()].map(([e,t])=>({label:e,value:ee(t),key:t.key}));return C=m?C.sort((e,t)=>Number(e.key)-Number(t.key)):C.sort((e,t)=>t.value-e.value||e.label.localeCompare(t.label)),{points:C.map(({label:e,value:t})=>({label:e,value:t})),format:d?S?`money`:d.type===`integer`?`integer`:`decimal`:`integer`,...S?{currency:`USD`}:{},href:V(r,i,o)}}ne(F,{metric:St,records:jt,chart:zt,shortcuts:async(e,t)=>t,shortcuts:ft()});function Bt(e){let{relations:t,viewAllHref:n}=e;if(!t)throw Error(`the record page context is missing`);return{relations:t,records:jt,viewAllHref:n}}async function Vt(e,t){let{source:n}=I(e),r=e.record;if(!r?.id)throw Error(`line items need a record`);let{model:i}=L(r.model),a=await n.get(i,r.id);if(!a)return{};let o=t.find(e=>e.kind===`items`),s=o?h(o.model)?.model:void 0,c=xt(i,a,o&&s?await n.listWhere(s,o.field,r.id):[]),l=c?void 0:yt(i,a),u=re(j(i)),d=u?a[u]:void 0;return{...c?{storedTotals:c}:{},...l?{totals:l}:{},...typeof d==`string`&&d?{currency:d}:{}}}F.register(ue((e,t)=>ge(Bt(t))(e,t))),F.register(be(async(e,t)=>{let n=Bt(t),{totals:r,storedTotals:i,currency:a}=await Vt(t,n.relations);return ce({...n,totals:()=>r,storedTotals:()=>i,currency:()=>a})(e,t)}));var Ht=[`shortcuts`,`metric`,`records`,`chart`,`note`],Ut={"@happyvertical/smrt-reports/svelte":async()=>({SavedReportsWidget:(await a(async()=>{let{default:e}=await import(`./C4h_pFjw.js`);return{default:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)).default})},Wt=async(e,t)=>{let n=Ut[e];if(n)return(await n())[t]},Gt=T.filter(e=>e.surfaces?.some(e=>e.kind===`widget`)),Kt=Gt.flatMap(e=>(e.surfaces??[]).flatMap(e=>e.kind===`widget`?[e.type]:[]));Ge(F,Gt,Wt);var qt=new Map(Be(T).map(e=>[`section:${e.id}`,e])),Jt=m.packages.flatMap(e=>e.models.map(e=>e.id)),Yt=[...Ht,...Kt];function Xt(e){let t=qt.get(e);for(let e of t?.recipes??[]){let t=ze(e)[0];if(t)return{id:t.model.id,name:y(t.model.name)}}}function Zt(e,t){let n=Ve(qt.get(e)?.recipes[0]),r=Xt(e);return Xe({lead:r?{...r,plural:p(r.name)}:void 0,dataWidgets:!0,page:n&&Kt.includes(n.type)?n:void 0,override:t})}var Qt=new Map;function $t(e,t){if(!ve.test(e))return;let n=Qt.get(e);return n||(n=w({id:e,allowed:Yt,models:Jt,defaults:Zt(e)}),Qt.set(e,n)),t===void 0?n:w({...n,defaults:Zt(e,t)})}function en(e,t){return`detail:${e}.${t}`}var tn=new Map(m.packages.flatMap(e=>e.models.filter(u).map(t=>[he(t.id),{packageId:e.id,model:t}])));function nn(e){let[,t,n]=/^detail:([A-Za-z0-9_-]+)\.([A-Za-z0-9_]+)$/.exec(e)??[],r=t&&n?x(t,n):void 0;return t&&r&&u(r)?{packageId:t,model:r}:tn.get(e)}var rn=new Set(m.packages.flatMap(e=>e.models.filter(u).map(e=>e.id))),an=new Map;function on(e){let t=an.get(e);if(t)return t;let n=nn(e);if(!n)return;let r=M(m,n.model.id,rn),i=C(j(n.model),r,{id:e,maxMetrics:2*r.length});return t=w({...i,maxWidgets:Math.max(i.maxWidgets??24,i.defaults.length+24)}),an.set(e,t),t}function sn(e,t){let n=on(e),r=nn(e);if(!n||!r)return;let i=M(m,r.model.id,t),a=0,o=n.defaults.filter(e=>e.type===`line-items`?i.some(e=>e.kind===`items`):e.type===`related`?i.some(e=>e.kind===`children`):t.has(String(e.options.model))?e.type!==`metric`||(a+=1,a<=4):!1);return w({...n,defaults:o})}function cn(e,t){return e.startsWith(`detail:`)?on(e):$t(e,t)}function ln(e,t){return qt.has(e)||e===`section:${De.id}`?!0:e.startsWith(`detail:`)?nn(e)!==void 0:e.startsWith(`custom:`)&&ve.test(e)&&(t?.customSections??[]).some(t=>t.id===e)}var un=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function dn(e,t){let n=t.widgetId?`widget ${t.widgetId}${t.type?` (${t.type})`:``}`:`an entry`,r=t.options?.length?`: ${t.options.map(e=>`${e.key} ${e.code}`).join(`, `)}`:``;return`Overview ${e}: ${n} was dropped (${t.code}${r}).`}function fn(e,t){let n={...e};return e.added&&(n.added=e.added.filter(e=>!t.has(e.id))),e.changed&&(n.changed=Object.fromEntries(Object.entries(e.changed).filter(([e])=>!t.has(e)))),n}function pn(e,t){let n=cn(e,t);if(!n)return{override:null,issues:[{widgetId:null,type:null,code:`malformed`,message:`not an overview id`}]};let r=de(n,t,F);if(r.ok){let e=ie(t).override?.changed?.count;return e&&n.defaults.some(e=>e.id===`count`)?{override:{...r.override??{version:1},changed:{...r.override?.changed,count:e}},issues:[]}:{override:r.override,issues:[]}}let i=ie(t),a=new Set(r.issues.flatMap(e=>e.widgetId?[e.widgetId]:[]));if(!i.override)return{override:null,issues:r.issues};let o=de(n,fn(i.override,a),F);return o.ok?{override:o.override,issues:r.issues}:{override:null,issues:[...r.issues,...o.issues]}}function mn(e,t){if(!un(e))return null;let n=[],r=[];for(let i of Object.keys(e).sort()){if(!ln(i,t)){r.push(`Overview ${i} is not a page in this app and was dropped.`);continue}let{override:a,issues:o}=pn(i,e[i]);for(let e of o)r.push(dn(i,e));a&&n.push([i,a])}return{overviews:Object.fromEntries(n),dropped:r}}var hn=ee,gn=`glass`,_n=`system`,vn=[`light`,`dark`,`system`],yn=[`none`,`sm`,`md`,`lg`,`xl`,`full`],bn=[`comfortable`,`touch`],xn=[`auto`,`standard`,`more`],G={"system-ui":`system-ui, -apple-system, "Segoe UI", sans-serif`,Inter:`Inter, system-ui, sans-serif`,Georgia:`Georgia, "Times New Roman", serif`,"ui-rounded":`ui-rounded, "SF Pro Rounded", system-ui, sans-serif`,"ui-monospace":`ui-monospace, "SF Mono", Menlo, monospace`},Sn=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;function Cn(e){if(typeof e!=`string`)return null;let t=Sn.exec(e.trim());if(!t)return null;let n=t[1].toLowerCase();return n.length===3&&(n=[...n].map(e=>e+e).join(``)),`#${n}`}var wn=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Tn(e){if(e===void 0)return{ok:!0,theme:void 0};if(!wn(e))return{ok:!1,error:`The cookbook "theme" must be an object.`};let t={};if(e.preset!==void 0){if(typeof e.preset!=`string`||!hn.includes(e.preset))return{ok:!1,error:`The theme preset must be one of ${hn.join(`, `)}.`};t.preset=e.preset}if(e.colorScheme!==void 0){if(!vn.includes(e.colorScheme))return{ok:!1,error:`The theme colorScheme must be light, dark or system.`};t.colorScheme=e.colorScheme}for(let[n,r]of[[`borderRadius`,yn],[`density`,bn],[`contrast`,xn]]){let i=e[n];if(i!==void 0){if(!r.includes(i))return{ok:!1,error:`The theme ${n} must be one of ${r.join(`, `)}.`};t[n]=i}}if(e.fontFamily!==void 0){if(typeof e.fontFamily!=`string`||!Object.hasOwn(G,e.fontFamily))return{ok:!1,error:`The theme font must be one of ${Object.keys(G).join(`, `)}.`};t.fontFamily=e.fontFamily}if(e.custom!==void 0){if(!wn(e.custom))return{ok:!1,error:`The theme "custom" must be an object.`};let n=Cn(e.custom.primary);if(!n)return{ok:!1,error:`The theme custom primary must be a hex colour like #c2410c.`};let r={primary:n};if(e.custom.fontFamily!==void 0){let t=e.custom.fontFamily;if(typeof t!=`string`||!Object.hasOwn(G,t))return{ok:!1,error:`The theme font must be one of ${Object.keys(G).join(`, `)}.`};r.fontFamily=t}t.custom=r}if(e.customCss!==void 0){if(typeof e.customCss!=`string`)return{ok:!1,error:`The theme customCss must be a string.`};if(Array.from(e.customCss).length>65536)return{ok:!1,error:`The theme customCss is too long (65,536 characters maximum).`};e.customCss&&(t.customCss=e.customCss)}return{ok:!0,theme:Object.keys(t).length?t:void 0}}function En(e){if(!e)return;let t={};return e.preset&&(t.preset=e.preset),e.colorScheme&&(t.colorScheme=e.colorScheme),e.borderRadius&&(t.borderRadius=e.borderRadius),e.density&&(t.density=e.density),e.contrast&&(t.contrast=e.contrast),e.fontFamily&&(t.fontFamily=e.fontFamily),e.custom&&(t.custom={...e.custom}),e.customCss&&(t.customCss=e.customCss),Object.keys(t).length?t:void 0}function Dn(e){let t=e?.colorScheme??`system`,n=e?.custom?`brand colour ${e.custom.primary}`:e?.preset??`glass`;return t===`system`?n:`${n}, ${t}`}var K=`section:`;function On(e,t=xe(T)){let n=Object.keys(t).sort((e,t)=>t.length-e.length);if(!n.length)return e;let r=e=>{if(!e.startsWith(K))return e;let r=e.slice(8);for(let e of n){if(r===e)return`${K}${t[e]}`;if(r.startsWith(`${e}:`))return`${K}${t[e]}${r.slice(e.length)}`}return e},i=e=>e.startsWith(K)&&n.includes(e.slice(8)),a=e=>[...new Set(e)],o={...e};if(e.sectionOrder&&(o.sectionOrder=a(e.sectionOrder.map(r))),e.hidden&&(o.hidden=a(e.hidden.filter(e=>!i(e)).map(r))),e.itemOrder){let t={};for(let[n,i]of Object.entries(e.itemOrder)){let e=r(n);t[e]=a([...t[e]??[],...i.map(r)])}o.itemOrder=t}return e.moved&&(o.moved=Object.fromEntries(Object.entries(e.moved).map(([e,t])=>[r(e),r(t)]))),o}function kn(e,t=T){let n=new Map;for(let e of t){let t=we(e).id;for(let r of ze(e))r.key&&n.set(`${K}${t}:${r.packageId}:${r.model.name}:${r.label}`,Oe(r.packageId,r.model.name,r.key))}let r=e=>{let t=n.get(e);if(t)return t;if(!e.startsWith(K))return e;let r=e.slice(8).split(`:`);return r.length<3||!r[1]||!r[2]?e:Oe(r[1],r[2])},i=e=>[...new Set(e)],a=(e,t)=>{let n={};for(let[i,a]of Object.entries(e)){let e=r(i);e in n||(n[e]=t(a))}return n},o={...e};return e.hidden&&(o.hidden=i(e.hidden.map(r))),e.itemOrder&&(o.itemOrder=a(e.itemOrder,e=>i(e.map(r)))),e.moved&&(o.moved=a(e.moved,r)),e.items&&(o.items=a(e.items,e=>e)),o}var q=`https://s-m-r-t.dev/schemas/cookbook/v1.json`,An=new Set([`basic`,`advanced`,`hidden`]),jn=new Set([`api`,`mcp`,`cli`]),J=e=>({ok:!1,error:e}),Y=e=>typeof e==`object`&&!!e&&!Array.isArray(e),X=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`);function Mn(e,t){if(!Y(e))return`${t} is not an object`;let{objectRef:n,fieldName:r}=e;if(typeof n!=`string`||!n)return`${t} has no objectRef`;if(typeof r!=`string`||!r)return`${t} has no fieldName`;if(e.scopeType!==`app`)return`${t} must have scopeType "app"`;let i={objectRef:n,fieldName:r,scopeType:`app`};for(let n of[`defaultValue`,`help`,`label`]){let r=e[n];if(r!==void 0){if(typeof r!=`string`&&r!==null)return`${t}.${n} is invalid`;i[n]=r}}if(e.visibility!==void 0){let n=e.visibility;if(n!==null&&!(typeof n==`string`&&An.has(n)))return`${t}.visibility is invalid`;i.visibility=n}if(e.displayOrder!==void 0){let n=e.displayOrder;if(n!==null&&!(typeof n==`number`&&Number.isFinite(n)))return`${t}.displayOrder is invalid`;i.displayOrder=n}if(e.locked!==void 0){if(e.locked!==null&&typeof e.locked!=`boolean`)return`${t}.locked is invalid`;i.locked=e.locked}return i}function Nn(e){if(!Y(e)||e.version!==1)return`layout must be an object with version 1`;for(let t of[`sectionOrder`,`hidden`])if(e[t]!==void 0&&!X(e[t]))return`layout.${t} must be a list of strings`;for(let t of[`itemOrder`,`moved`,`panels`])if(e[t]!==void 0&&!Y(e[t]))return`layout.${t} must be an object`;let t=e.itemOrder;if(Y(t)){for(let[e,n]of Object.entries(t))if(e===`__proto__`||!X(n))return`layout.itemOrder.${e} must be a list of strings`}let n=e.moved;if(Y(n)){for(let[e,t]of Object.entries(n))if(e===`__proto__`||typeof t!=`string`)return`layout.moved.${e} must be a string`}return e}function Pn(e,t={}){if(!Y(e))return J(`This is not a cookbook: expected a JSON object.`);if(e.$schema!==void 0&&e.$schema!==`https://s-m-r-t.dev/schemas/cookbook/v1.json`&&e.$schema!==`https://s-m-r-t.dev/schemas/blueprint/v1.json`)return J(`This is not a cookbook: its "$schema" is not a cookbook schema this planner knows.`);let{version:n}=e;if(n===void 0)return J(`This is not a cookbook: it has no "version".`);if(typeof n!=`number`||!Number.isInteger(n))return J(`The cookbook "version" must be a whole number.`);if(n>1)return J(`This cookbook is version ${n}, newer than this planner understands (1). Update the planner or re-export it.`);if(n!==1)return J(`Cookbook version ${n} is not supported (this planner reads version 1).`);if(!X(e.recipes))return J(`The cookbook "recipes" must be a list of recipe ids.`);let r=e.recipes.filter(e=>!D.has(e)),i=[...new Set([...Me(e.recipes.filter(e=>D.has(e)),D),...r])].sort(),a=[];if(e.features!==void 0){if(!X(e.features))return J(`The cookbook "features" must be a list of model names.`);let t=new Set;for(let n of e.features){if(t.has(n))return J(`The cookbook lists the feature ${n} more than once.`);t.add(n)}a=[...e.features].sort()}let o=new Set([...i.flatMap(e=>D.get(e)?.models??[]),...a]);if(!Array.isArray(e.policies))return J(`The cookbook "policies" must be a list.`);let s=[];for(let[t,n]of e.policies.entries()){let e=Mn(n,`policies[${t}]`);if(typeof e==`string`)return J(`Invalid cookbook: ${e}.`);(o.has(e.objectRef)||Ne(e))&&s.push(e)}let c;if(e.exposure!==void 0){if(!Y(e.exposure))return J(`The cookbook "exposure" must be an object.`);let t=[];for(let[n,r]of Object.entries(e.exposure)){if(!X(r)||!r.every(e=>jn.has(e)))return J(`Invalid cookbook: exposure for ${n} must list api, mcp or cli.`);r.length&&o.has(n)&&t.push([n,[...r]])}c=Object.fromEntries(t)}let l;if(e.layout!==void 0){let t=Nn(e.layout);if(typeof t==`string`)return J(`Invalid cookbook: ${t}.`);l=kn(On(t))}let u;if(e.theme!==void 0){let n=Tn(e.theme);if(n.ok)u=n.theme;else if(!t.dropUnknownRecipes)return J(n.error)}let d,f=[];if(e.overviews!==void 0){if(t.overviews){let n=t.overviews(e.overviews,l);if(!n)return J(`The cookbook "overviews" must be an object.`);d=n.overviews,f=n.dropped}else{if(!Y(e.overviews))return J(`The cookbook "overviews" must be an object.`);Object.keys(e.overviews).length&&(f=[`Page customisations (overviews) are not kept by this host and were dropped.`])}}let p={$schema:q,version:1,recipes:i,features:a,policies:s};for(let t of[`name`,`description`]){let n=e[t];if(n!==void 0){if(typeof n!=`string`)return J(`The cookbook "${t}" must be a string.`);n.trim()&&(p[t]=n.trim())}}if(e.specs!==void 0){if(typeof e.specs!=`string`)return J(`The cookbook "specs" must be a string.`);e.specs.trim()&&(p.specs=e.specs.trim())}return c&&Object.keys(c).length&&(p.exposure=c),l&&(p.layout=l),u&&(p.theme=u),d&&Object.keys(d).length&&(p.overviews=d),f.length?{ok:!0,cookbook:p,dropped:f}:{ok:!0,cookbook:p}}var Fn=e=>({ok:!1,error:e});function In(e,t={}){return Pn(e,{...t,overviews:mn})}function Ln(e,t={}){let n;try{n=JSON.parse(e)}catch{return Fn(`This file is not valid JSON.`)}try{return In(n,t)}catch{return Fn(`This file is not a valid cookbook.`)}}var Z=`smrt-planner:cookbook-doc:v1`,Rn=`smrt-planner:blueprint:v1`,zn=`smrt-planner:cookbook-doc:unreadable`;function Bn(){try{return globalThis.localStorage??null}catch{return null}}function Vn(e){if(!e)return{status:`unavailable`};let t;try{t=e.getItem(Z)}catch{return{status:`unavailable`}}let n=null;try{n=e.getItem(Rn)}catch{}let r=t===null&&n!==null,i=r?n:t;if(i===null)return{status:`empty`};let a=Ln(i,{dropUnknownRecipes:!0});if(a.ok)return r&&Q(e,Z,JSON.stringify(a.cookbook)),{status:`loaded`,cookbook:a.cookbook,previousKept:n!==null,...a.dropped?{dropped:a.dropped}:{}};t=i;let o=Q(e,zn,t);return{status:`unreadable`,reason:a.error,keptAside:o}}function Q(e,t,n){if(!e)return!1;try{return e.setItem(t,n),!0}catch{return!1}}function Hn(e,t){if(!e)return!1;try{return e.removeItem(t),!0}catch{return!1}}function Un(e,t){return Q(e,Z,JSON.stringify(t))}function Wn(e,t={}){let n={$schema:q,version:1,...Ie(e)};t.name&&(n.name=t.name),t.description&&(n.description=t.description),t.specs&&(n.specs=t.specs),t.layout&&(n.layout=t.layout);let r=En(t.theme);r&&(n.theme=r);let i=t.overviews??{},a=Object.keys(i).sort();return a.length&&(n.overviews=Object.fromEntries(a.map(e=>[e,i[e]]))),n}var Gn=new Set([`basic`,`advanced`,`hidden`]),Kn=new Set([`api`,`mcp`,`cli`]);function qn(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t+`=`.repeat((4-t.length%4)%4));return new TextDecoder().decode(Uint8Array.from(n,e=>e.charCodeAt(0)))}function Jn(e){let t=new URLSearchParams(e);return t.has(`r`)||t.has(`o`)}function Yn(e){let t={rows:[],narrowed:{}};if(!e)return t;let n;try{n=JSON.parse(qn(e))}catch{return t}if(!n||typeof n!=`object`)return t;let r=[];for(let[e,t]of Object.entries(n.r??{}))if(t&&typeof t==`object`)for(let[n,i]of Object.entries(t)){if(!i||typeof i!=`object`)continue;let t={objectRef:e,fieldName:n,scopeType:`app`};typeof i.v==`string`&&Gn.has(i.v)&&(t.visibility=i.v),typeof i.l==`string`&&(t.label=i.l),(typeof i.h==`string`||i.h===null)&&(t.help=i.h),(typeof i.d==`string`||i.d===null)&&(t.defaultValue=i.d),typeof i.o==`number`&&Number.isFinite(i.o)&&(t.displayOrder=i.o),typeof i.k==`boolean`&&(t.locked=i.k),r.push(t)}let i={};for(let[e,t]of Object.entries(n.x??{})){if(!Array.isArray(t))continue;let n=t.filter(e=>Kn.has(e));n.length&&(i[e]=n)}return{rows:r,narrowed:i}}function Xn(e){let t=new URLSearchParams(e),n=(t.get(`r`)??``).split(`,`).filter(Boolean),r=Me(Le(n,D),D),i=new Set(r.flatMap(e=>D.get(e)?.models??[])),{rows:a,narrowed:o}=Yn(t.get(`o`)??``),s={$schema:q,version:1,recipes:r,features:[],policies:a.filter(e=>i.has(e.objectRef))},c=Object.fromEntries(Object.entries(o).filter(([e])=>i.has(e)));return Object.keys(c).length&&(s.exposure=c),s}var Zn=`smrt-planner:shell`;function $(e){let t=Fe(e),n=e.policies.some(e=>e.defaultValue!==void 0&&Ne(e));s(Re(e)||n?t.taxRate:void 0),o({pricesIncludeTax:t.pricesIncludeTax,taxRounding:t.taxRounding,currency:t.currency})}var Qn=new class{#e=r(0);get replacementGeneration(){return e(this.#e)}set replacementGeneration(e){i(this.#e,e,!0)}#t=r();get layout(){return e(this.#t)}set layout(e){i(this.#t,e,!0)}#n=r();get name(){return e(this.#n)}set name(e){i(this.#n,e,!0)}#r=r();get description(){return e(this.#r)}set description(e){i(this.#r,e,!0)}#i=r();get specs(){return e(this.#i)}set specs(e){i(this.#i,e,!0)}#a=r();get theme(){return e(this.#a)}set theme(e){i(this.#a,e,!0)}#o=r({});get overviews(){return e(this.#o)}set overviews(e){i(this.#o,e)}#s=r(`unknown`);get persist(){return e(this.#s)}set persist(e){i(this.#s,e,!0)}#c=r(!1);get loaded(){return e(this.#c)}set loaded(e){i(this.#c,e,!0)}hostManaged=!1;#l=r(``);get loadNotice(){return e(this.#l)}set loadNotice(e){i(this.#l,e,!0)}saveBlocked=!1;#u=r(!1);get keepLegacyUrl(){return e(this.#u)}set keepLegacyUrl(e){i(this.#u,e,!0)}replacedBeforeLoad=!1;previousKept=!1;storage=null;timer;snapshot(){return Wn(n(E.data),{layout:n(this.layout),theme:n(this.theme),overviews:n(this.overviews),name:this.name,description:this.description,specs:this.specs})}overview(e){return Object.hasOwn(this.overviews,e)?this.overviews[e]:null}setOverview(e,t){let n=Object.fromEntries(Object.entries(this.overviews).filter(([t])=>t!==e));t&&(n[e]=t),this.overviews=n}setLayout(e){this.layout=S(e)?void 0:e}setSpecs(e){let t=e.trimEnd();this.specs=t.trim()?t:void 0}apply(e){E.load(e),this.layout=e.layout,this.theme=e.theme,this.name=e.name,this.description=e.description,this.specs=e.specs,this.overviews={...e.overviews??{}},$(e)}get unavailableNotice(){let e=[...E.unavailableRecipes,...E.unavailableFeatures];if(!e.length)return``;let t=e.length;return`${t} ${t===1?`recipe`:`recipes`} in this cookbook ${t===1?`isn't`:`aren't`} available in this version: ${e.join(`, `)}. They are kept when you save or export.`}removeUnavailable(){E.removeUnavailable(),this.scheduleSave()}setTheme(e){this.theme=En(e)}settings(){return Fe(this.snapshot())}setSettings(e){let t=Pe(this.snapshot(),e);E.rows=t.policies.map(e=>({...e})),$(t)}replace(e){this.replacementGeneration++,this.apply(e),this.loaded||(this.replacedBeforeLoad=!0),this.saveBlocked=!1,this.keepLegacyUrl=!1}reset(e={}){this.replacementGeneration++,E.clear(),$({policies:[]}),this.layout=void 0,e.preserveTheme||(this.theme=void 0),this.name=void 0,this.description=void 0,this.specs=void 0,this.overviews={},this.saveBlocked=!1,this.keepLegacyUrl=!1}importText(e){let t=Ln(e);return t.ok&&this.replace(t.cookbook),t}hydrate(e,t=d()){this.storage=t;let n=Vn(t);n.status===`loaded`&&(this.previousKept=n.previousKept),n.status===`loaded`&&!this.replacedBeforeLoad?(this.apply(n.cookbook),n.dropped?.length&&(this.loadNotice=`Some saved page customisations could not be used and were removed: ${n.dropped.join(` `)}`)):n.status===`unreadable`&&(this.saveBlocked=!n.keptAside,this.loadNotice=n.keptAside?`The saved cookbook could not be read (${n.reason}) and was kept aside; starting empty.`:`The saved cookbook could not be read (${n.reason}). Starting empty without overwriting it; import or reset to save again.`);let r=!1;if(Jn(e)&&(n.status===`loaded`&&!Q(t,`smrt-planner:cookbook-doc:backup`,JSON.stringify(n.cookbook))&&(this.saveBlocked=!0),this.apply(Xn(e)),r=!0),this.persist=n.status===`unavailable`?`memory`:`unknown`,this.loaded=!0,r){let e=this.save();this.keepLegacyUrl=!e}return r}save(){if(clearTimeout(this.timer),this.timer=void 0,!this.loaded)return!1;if(this.hostManaged)return!0;if(this.saveBlocked)return this.persist=`memory`,!1;let e=Un(this.storage,this.snapshot());return this.persist=e?`ok`:`memory`,e&&this.previousKept&&(this.previousKept=!Hn(this.storage,Rn)),e&&(this.keepLegacyUrl=!1),e}scheduleSave(){this.loaded&&!this.hostManaged&&(clearTimeout(this.timer),this.timer=setTimeout(()=>this.save(),300))}flush(){this.timer!==void 0&&this.save()}};export{j as A,N as C,ut as D,mt as E,st as O,ht as S,_t as T,Cn as _,Bn as a,$t as b,q as c,_n as d,gn as f,Dn as g,hn as h,Z as i,ot as j,M as k,yn as l,G as m,Qn as n,In as o,bn as p,$ as r,Ln as s,Zn as t,xn as u,sn as v,gt as w,F as x,en as y};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./B-QbNQ20.js","./DG3qFFTE.js","./COiEfhsA.js","./xihTtKlq.js","./D-TD1e4P.js","./Bq8E3AWP.js","./DK8Blf1Y.js","../assets/currency-metadata.ksbBA8-C.css","../assets/app.CNgJdfDA.css","./CcnQIGXF.js","./BLUInGBV.js","../assets/feedback.nSgE8ogy.css","./Caow5nDc.js","./BaNbYf_w.js","./v8gneLl4.js","../assets/SegmentedControl.CH_vc242.css","./DIE02RSm.js","../assets/webmcp-ui-context.hO24Ni5w.css","./KyvWo5ZG.js","../assets/data.B71l2JEr.css","./CUyVrfsu.js","./CGVkRTMI.js","../assets/forms.Zvn0Ncy0.css","./BYcBM-fh.js","../assets/AppShell.CG6RWMlI.css","./C6pcemFo.js","../assets/workspace.C40zM0Mb.css","./YV-88d-U.js","./CUH3ig_v.js","../assets/state.C0UZEhxS.css","../assets/labels.Gb0NBp4g.css","./DiVlkX9H.js","./C4P1kzl6.js","./BxO54NEj.js","../assets/planner.DOQVfcOi.css","./D_U_DYjx.js"])))=>i.map(i=>d[i]);
2
+ import{$ as e,Et as t,Mt as n,bt as r,vt as i}from"./DG3qFFTE.js";import{t as a}from"./BaNbYf_w.js";import"./xihTtKlq.js";import{I as o,L as s,O as c,Q as l,St as u,W as d,Z as f,_ as p,_t as m,bt as h,et as g,h as _,ht as v,p as y,x as b,yt as x}from"./D-TD1e4P.js";import{v as S}from"./Caow5nDc.js";import"./v8gneLl4.js";import"./DIE02RSm.js";import{u as ee}from"./KyvWo5ZG.js";import{A as C,C as te,E as ne,F as re,G as ie,I as ae,M as oe,N as se,O as ce,P as le,T as ue,U as de,V as fe,W as w,b as pe,h as me,j as he,k as ge,n as _e,q as ve,r as ye,w as be}from"./YV-88d-U.js";import{B as xe,D as Se,G as Ce,H as we,J as Te,K as Ee,M as De,V as Oe,X as ke,Y as Ae,Z as je,a as Me,b as T,c as Ne,d as Pe,l as Fe,n as Ie,r as Le,s as Re,t as E,v as ze,x as D,z as Be}from"./CUH3ig_v.js";function Ve(e){let t=e?.surfaces?.find(e=>e.kind===`widget`&&e.sectionDefault===!0);return t?{id:t.type,type:t.type,span:4,options:{}}:void 0}function He(e){let t=e.lastIndexOf(`#`);if(t<=0||t===e.length-1)return null;let n=e.slice(0,t),r=e.slice(t+1);return n.startsWith(`.`)||n.startsWith(`/`)||/\s/.test(n)||!/^[A-Za-z_$][\w$]*$/.test(r)?null:{specifier:n,exportName:r}}function O(e,t){let n=He(e);return n?Promise.resolve(t(n.specifier,n.exportName)).then(t=>{if(t==null)throw Error(`export "${e}" was not found`);return t}):Promise.reject(Error(`invalid export ref "${e}"`))}function k(e){let t;return()=>(t??=e(),t)}function Ue(e){return typeof e==`object`&&!!e&&`default`in e&&!!e.default}function We(e,t,n){let r=k(()=>O(e.export,t)),i=e.optionsEditor?k(()=>O(e.optionsEditor,t)):void 0,a=e.data?.load?k(()=>O(e.data?.load,t)):void 0,o={type:e.type,title:e.label,options:e.options??[],loadComponent:async()=>{let e=await r();return Ue(e)?e.default:e}};return e.description!==void 0&&(o.description=e.description),e.icon!==void 0&&(o.icon=e.icon),e.version!==void 0&&(o.version=e.version),e.allowedIn&&(o.allowedIn=e.allowedIn),e.defaultSpan!==void 0&&(o.defaultSpan=e.defaultSpan),e.minSpan!==void 0&&(o.minSpan=e.minSpan),e.maxSpan!==void 0&&(o.maxSpan=e.maxSpan),n&&(o.migrate=n),i&&(o.loadOptionsEditor=async()=>{let e=await i();return Ue(e)?e.default:e}),a&&(o.load=async(t,n)=>{let r=await a();if(typeof r!=`function`)throw Error(`loader "${e.data?.load}" is not a function`);return r(t,n)}),o}async function Ge(e,t,n,r={}){let i=[],a=[],o=[];for(let s of t)if(!r.enabled||r.enabled(s.id))for(let t of s.surfaces??[]){if(t.kind!==`widget`)continue;let c=(e,n)=>a.push({recipeId:s.id,type:t.type,reason:e,message:n});if(e.has(t.type)&&!r.replace){c(`duplicate_type`,`"${t.type}" is already registered`);continue}let l;if(t.migrate)try{let e=await O(t.migrate,n);if(typeof e!=`function`)throw Error(`not a function`);l=e}catch(e){c(`unresolved`,`migrate "${t.migrate}": ${e instanceof Error?e.message:String(e)}`);continue}try{o.push(e.register(We(t,n,l),{replace:r.replace})),i.push(t.type)}catch(e){c(`invalid`,e instanceof Error?e.message:String(e))}}return{registered:i,skipped:a,dispose:()=>{for(let e of o.splice(0))e()}}}var Ke=[`identifier`,`status`,`date`,`party`,`total`,`money`];function qe(e){for(let t of[`identifier`,`status`,`date`,`money`,`quantity`,`party`,`title`])if(e.includes(t))return t}function Je(e,t,n={}){let r=new Set(n.exclude??[]),i=n.max??4,a=Object.keys(t).filter(t=>!r.has(t)&&t in e.fields),o=e=>a.find(n=>t[n]?.includes(e)),s=[],c=e=>{e&&!s.includes(e)&&s.push(e)};c(o(`identifier`)??o(`title`));for(let e of Ke)e!==`identifier`&&(e===`money`&&s.some(e=>t[e]?.includes(`money`))||c(e===`date`?a.find(e=>t[e]?.includes(`date`)&&e!==`createdAt`&&e!==`updatedAt`)??o(`date`):o(e)));return s.slice(0,i).map(n=>({key:n,label:A(n,e),...qe(t[n]??[])?{role:qe(t[n]??[])}:{}}))}function Ye(e,t,n={}){let r=new Set(n.exclude??[]),i=Object.keys(t).filter(t=>!r.has(t)&&t in e.fields),a=i.filter(t=>e.fields[t]?.type===`text`),o=a.find(e=>/^(?:description|title|name|label)$/.test(e))??a.find(e=>t[e]?.includes(`title`))??a.find(e=>!t[e]?.includes(`identifier`)),s=i.find(e=>t[e]?.includes(`quantity`)),c=i.filter(e=>t[e]?.includes(`money`)),l=c.find(e=>/unit|price|rate/i.test(e)),u=c.find(e=>/^(?:amount|lineTotal|total|lineAmount)$/.test(e))??[...c].reverse().find(e=>e!==l),d=[];return o&&d.push({key:o,label:A(o,e)}),s&&d.push({key:s,label:A(s,e),role:`quantity`}),l&&d.push({key:l,label:A(l,e),role:`money`,summarize:!1}),u&&u!==l&&d.push({key:u,label:A(u,e),role:`money`}),d}function A(e,t){let n=t.fields[e];return n&&(n.type===`foreignKey`||n.type===`crossPackageRef`)&&/.[a-z]Id$/.test(e)?le(e.slice(0,-2)):le(e)}function Xe(e){if(e.dataWidgets&&e.page)return[e.page];let t=[{id:`shortcuts`,type:`shortcuts`,span:4,options:{}}];if(e.dataWidgets&&e.lead){let n=e.lead,r=e.override,i=r&&typeof r==`object`&&!Array.isArray(r)?r:void 0,a=i?.changed;a&&typeof a==`object`&&!Array.isArray(a)&&Object.hasOwn(a,`count`)&&!(Array.isArray(i?.removed)&&i.removed.includes(`count`))&&t.push({id:`count`,type:`metric`,span:1,options:{title:n.plural,model:n.id,measure:`count`}}),t.push({id:`latest`,type:`records`,span:4,options:{title:`${n.name} records`,model:n.id,limit:5,summaries:!1}})}return t}var Ze=[`text`,`integer`,`decimal`,`boolean`,`datetime`,`json`,`foreignKey`,`crossPackageRef`];function Qe(e){return Ze.includes(e)?e:`text`}var $e=/(Date|^date|period(Start|End))$/;function et(e,t){return t.type===`datetime`&&!t.system&&$e.test(t.name)&&!e.fields.some(e=>e.name===`allDay`)?`date`:void 0}function tt(e){return pe(e)[0]}function nt(e,t){let n=t.ui?{...t.ui}:void 0,r=c(t)?`money`:et(e,t);return{type:Qe(t.type),required:t.required,nullable:!t.required,...t.default===void 0?{}:{default:t.default},...t.description?{description:t.description}:{},...n?{ui:n}:{},...t.enum?.length?{enum:[...t.enum]}:{},...r?{format:r}:{},...tt(e)===t.name?{display:!0}:{}}}function rt(e,t){return e.includes(`:`)?e:`${t.slice(0,t.lastIndexOf(`:`))}:${e}`}function it(e,t){if(!t.related)return!1;let n=rt(t.related,e.id);return Ae(m,n,g).some(t=>t.id===e.id)}function at(e){return e.fields.flatMap(t=>{if(t.type!==`foreignKey`&&t.type!==`crossPackageRef`||!t.related)return[];let n=h(rt(t.related,e.id));return n?[{field:t.name,kind:t.type===`crossPackageRef`?`crossPackageRef`:`foreignKey`,relatedCollection:n.model.collection,...it(e,t)?{role:`items`}:{}}]:[]})}function j(e){let t=at(e);return{name:e.collection,objectRef:e.id,className:e.name,idField:`id`,fields:Object.fromEntries(e.fields.map(t=>[t.name,nt(e,t)])),...t.length?{relationships:t}:{}}}function ot(e,t){return{objectRef:e.id,fields:Object.fromEntries(t.map((e,t)=>[e.name,{visibility:`basic`,label:e.label,help:e.help??null,order:t,required:e.required}]))}}function st(e,t){let n=new Set(t);for(let t of e)for(let e of t.models)n.add(e);return n}function ct(e){return y(e.replace(/_?id$/i,``)||e)}function M(e,t,n){let r=ke(e,t),i=new Set(e.packages.flatMap(e=>(e.recipes??[]).filter(e=>e.exposure===`ui-only`).flatMap(e=>e.models))),a=je(e,t).filter(e=>(e.model.exposed||i.has(e.model.id))&&n.has(e.model.id)),o=new Set(Ae(e,t,g).map(e=>e.id)),s=new Map;for(let e of a)s.set(e.model.id,(s.get(e.model.id)??0)+1);let c=a.map(e=>{let t=o.has(e.model.id)?`items`:`children`,n=j(e.model),i=ae(n),a=[e.fk];return{model:e.model.id,field:e.fk,label:(s.get(e.model.id)??0)>1?`${Ce(e.model.name,r)} (${ct(e.fk).toLowerCase()})`:Ce(e.model.name,r),kind:t,columns:t===`items`?Ye(n,i,{exclude:a}):Je(n,i,{exclude:a,max:5}),...t===`items`&&`sortOrder`in n.fields?{sort:`sortOrder`}:{}}});for(let n of Ee(e,t))c.push({model:n.model.id,field:n.fk,label:ct(n.fk),kind:`reference`});return c}var lt=Symbol(`smrt-cookbook`);function ut(){return t(lt)}function dt(e,t){let{sections:n}=t;if(!n)throw Error(`the cookbook widget context is missing`);let r=typeof e.section==`string`?e.section:``,i=r?n.find(e=>e.id===`section:${r}`||e.id===`custom:${r}`)?.id:t.overviewId;if(!i)throw Error(`unknown section ${r}`);return se(n,i)}function ft(e){return e?async(t,n)=>{let r=dt(t,n);try{let t=await e(n,r.items.map(e=>({...e})));if(!Array.isArray(t))return r;let i=new Set,a=[];for(let e of t){if(!e||typeof e.href!=`string`)continue;let t=typeof e.id==`string`&&e.id?e.id:e.href;i.has(t)&&(t=`${t}#${a.length}`),i.add(t),a.push({...e,id:t})}return{items:a}}catch(e){if(n.signal?.aborted)throw e;return r}}:dt}var pt=new Set([`foreignKey`,`crossPackageRef`]);function N(e,t){return`/m/${e}/${t}/`}function mt(e,t,n,r=`view`){let i=`${N(e,t)}${encodeURIComponent(n)}/`;return r===`edit`?`${i}edit/`:i}function ht(e,t,n,r){return`${N(e,t)}?${encodeURIComponent(n)}=${encodeURIComponent(r)}`}function gt(e,t){let n=new URLSearchParams(e);for(let e of t.fields){if(!pt.has(e.type))continue;let t=n.get(e.name);if(t)return{field:e.name,equals:t}}}function _t(e){return e?.equals===void 0?``:`${encodeURIComponent(e.field)}=${encodeURIComponent(e.equals)}`}var P=e=>typeof e==`number`&&Number.isSafeInteger(e)?e:null,vt=(e,t)=>e.fields.some(e=>e.name===t);function yt(e,t){let n=ae(j(e)),r=te(t,n);return Object.values(r).some(e=>P(e)!==null)?r:void 0}function bt(e,t){return!!e.fields.find(e=>e.name===`status`)?.enum?.includes(`draft`)&&typeof t.status==`string`&&t.status!==``&&t.status!==`draft`}function xt(e,t,n){if(!bt(e,t)||![`subtotal`,`taxAmount`,`totalAmount`,`discountTotal`].every(t=>vt(e,t)))return;let r=P(t.subtotal),i=P(t.taxAmount),a=P(t.totalAmount),o=P(t.discountTotal)??0;if(r===null||i===null||a===null)return;let s=f(t,`exclusive`);return{subtotal:r,discount:o,tax:i,total:a,lineAmountType:s,roundingScope:l(t,`line`),showNetSubtotal:s===`inclusive`,taxes:v(n,s).flatMap(e=>e.taxComponentId?[{taxComponentId:e.taxComponentId,name:e.name,percent:e.percent,taxable:e.taxable,tax:e.tax}]:[])}}var F=fe();function I(e){let{source:t,href:n}=e;if(!t||!n)throw Error(`the planner widget context is missing`);return{source:t,href:n}}function L(e){let t=typeof e==`string`?h(e):void 0;if(!t)throw Error(`unknown model ${String(e)}`);return{model:t.model,packageId:t.pkg.id,path:N(t.pkg.id,t.model.name)}}var R=new Set([`foreignKey`,`crossPackageRef`]);function z(e,t,n){let r=e.filter;if(typeof r!=`string`||r===``)return;if(r!==`parent`)throw Error(`unknown filter ${r}`);let{record:i}=t;if(!i?.id)throw Error(`the parent filter needs a record`);let a=typeof e.parentField==`string`&&e.parentField?e.parentField:e.field,o=typeof a==`string`?a:``,s=n.fields.find(e=>e.name===o);if(!s||!R.has(s.type))throw Error(`${n.name} has no reference field ${o}`);return{field:o,id:i.id}}async function B(e,t,n){return n?e.listWhere(t,n.field,n.id):e.list(t)}function V(e,t,n){return e(n?ht(t.packageId,t.model.name,n.field,n.id):t.path)}var H=e=>typeof e==`number`&&Number.isFinite(e);async function St(e,t){let{source:n,href:r}=I(t),i=L(e.model),{model:a}=i,o=z(e,t,a),s=await B(n,a,o),l=V(r,i,o),u=typeof e.measure==`string`?e.measure:``;if(u===`count`||u===``)return{value:s.length,format:`integer`,href:l};let d=a.fields.find(t=>t.name===e.field);if(!d||d.type!==`integer`&&d.type!==`decimal`)throw Error(`${u} needs a numeric field of ${a.name}`);let f=s.map(e=>e[d.name]).filter(H),p=0;if(f.length){if(u===`sum`||u===`avg`)p=f.reduce((e,t)=>e+t,0),u===`avg`&&(p/=f.length);else if(u===`min`)p=Math.min(...f);else if(u===`max`)p=Math.max(...f);else throw Error(`unknown measure ${u}`)}let m=c(d);return{value:m?Math.round(p):p,format:m?`money`:d.type===`integer`?`integer`:`decimal`,...m?{currency:`USD`}:{},href:l}}function Ct(e,t){return H(e)&&H(t)?e-t:String(e??``).localeCompare(String(t??``))}var wt=new Set([`createdAt`,`updatedAt`]),Tt=[`identifier`,`status`,`date`,`money`,`quantity`,`party`,`title`];function Et(e=[]){return Tt.find(t=>e.includes(t))}function Dt(e,t,n,r){let i=j(e),a=r?[r]:[],o=oe(n),s=o.length?[]:me(E.apply(e).fields.filter(t=>!a.includes(t.name)&&!Se(e,t))).filter(e=>!e.derive),c=o.length?o:s.map(e=>e.name),l=[...Ye(i,t,{exclude:a}),...Je(i,t,{exclude:a,max:c.length+8})];return c.map(n=>{let r=e.fields.find(e=>e.name===n);if(!r)throw Error(`${e.name} has no field ${n}`);let i=l.find(e=>e.key===n),a=s.find(e=>e.name===n)?.label;if(i)return a?{...i,label:a}:i;let o=Et(t[n]);return{key:n,label:a??(R.has(r.type)?y(n.replace(/Id$/,``)):y(n)),...o?{role:o}:{}}})}var Ot=new Set([`money`,`quantity`]);function kt(e,t){let n={};for(let r of e)(r.summarize??Ot.has(r.role))&&(n[r.key]=t.reduce((e,t)=>{let n=t[r.key];return H(n)?e+n:e},0));return n}function At(e,t){let n=re(j(e)),r=new Set(t.map(e=>n?e[n]:void 0).filter(e=>typeof e==`string`&&e!==``));return r.size===1?[...r][0]??`USD`:`USD`}async function jt(e,t){let{source:n,href:r}=I(t),i=L(e.model),{model:a}=i,o=z(e,t,a),s=await B(n,a,o);if(typeof e.sort==`string`&&e.sort){if(!a.fields.find(t=>t.name===e.sort)&&!wt.has(e.sort))throw Error(`${a.name} has no field ${e.sort}`);let t=s.some(t=>t[e.sort]!==void 0)?e.sort:W(a)?.name;if(t){let n=e.direction===`asc`?1:-1;s=[...s].sort((e,r)=>n*Ct(e[t],r[t]))}}let c=Dt(a,ae(j(a)),e.columns,o?.field),l=H(e.limit)?e.limit:5,u=s.slice(0,l),d=a.fields.filter(e=>R.has(e.type)&&c.some(t=>t.key===e.name)),f=await ye(n,d,u),p=e=>Object.fromEntries(c.map(t=>{let n=e[t.key],r=d.find(e=>e.name===t.key);return r?.related&&typeof n==`string`&&n?[t.key,f.get(_(r.related,n))??``]:[t.key,n??null]})),m=kt(c,s),h=!Te(a);return{rows:await Promise.all(u.map(async e=>({id:String(e.id),title:await _e(n,a,e,0,o?.field),...h?{href:r(mt(i.packageId,a.name,String(e.id)))}:{},cells:p(e)}))),...e.summaries===!1?{}:{total:s.length},...h?{href:V(r,i,o)}:{},columns:c,currency:At(a,s),...Object.keys(m).length?{summaries:m}:{}}}var Mt={"7d":7,"30d":30,"90d":90,"12m":365,all:null},U=864e5;function Nt(e){return e===`7d`||e===`30d`?`day`:e===`90d`?`week`:`month`}function Pt(e,t){let n=new Date(e);if(t===`month`)return Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),1);let r=Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate());return t===`week`?r-(n.getUTCDay()+6)%7*U:r}function Ft(e,t){if(t===`month`){let t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1)}return e+(t===`week`?7:1)*U}function It(e,t){let n=new Date(e).toISOString();return t===`month`?n.slice(0,7):n.slice(0,10)}var Lt=e=>e.type===`datetime`&&!e.system;function W(e){let t=e.fields.filter(Lt);return t.find(e=>/^(issue|order|start|created)/i.test(e.name))??t[0]}function Rt(e){if(typeof e!=`string`&&typeof e!=`number`)return;let t=new Date(e).getTime();return Number.isFinite(t)?t:void 0}async function zt(e,t){let{source:n,href:r}=I(t),i=L(e.model),{model:a}=i,o=z(e,t,a),s=typeof e.groupBy==`string`?e.groupBy:``,l=s?a.fields.find(e=>e.name===s):W(a);if(!l)throw Error(s?`${a.name} has no field ${s}`:`${a.name} has no date field to chart; choose a group-by field`);let u=typeof e.measure==`string`?e.measure:``,d;if(u&&u!==`count`){if(u!==`sum`&&u!==`avg`)throw Error(`unknown measure ${u}`);if(d=a.fields.find(t=>t.name===e.field),!d||d.type!==`integer`&&d.type!==`decimal`)throw Error(`${u} needs a numeric field of ${a.name}`)}let f=typeof e.period==`string`?e.period:`30d`;if(!Object.hasOwn(Mt,f))throw Error(`unknown period ${f}`);let p=Mt[f],m=Lt(l),h=m?l:W(a),g=p!==null&&h?b-p*U:-1/0,_=await B(n,a,o);h&&g!==-1/0&&(_=_.filter(e=>{let t=Rt(e[h.name]);return t!==void 0&&t>=g&&t<=b}));let v=new Map,y=(e,t,n)=>{let r=v.get(e)??{key:t,sum:0,n:0};if(d){let e=n[d.name];if(!H(e))return;r.sum+=e}r.n+=1,v.set(e,r)},x=Nt(f);if(m){let e=g===-1/0?Math.min(..._.map(e=>Rt(e[l.name])??b),b):g;for(let t=Pt(e,x);t<=b;t=Ft(t,x))v.set(It(t,x),{key:t,sum:0,n:0});for(let e of _){let t=Rt(e[l.name]);if(t===void 0)continue;let n=Pt(t,x);y(It(n,x),n,e)}}else for(let e of _){let t=e[l.name],n=t==null||t===``?`(none)`:String(t);y(n,n,e)}let S=d?c(d):!1,ee=e=>{if(!d)return e.n;let t=u===`avg`&&e.n?e.sum/e.n:e.sum;return S?Math.round(t):t},C=[...v.entries()].map(([e,t])=>({label:e,value:ee(t),key:t.key}));return C=m?C.sort((e,t)=>Number(e.key)-Number(t.key)):C.sort((e,t)=>t.value-e.value||e.label.localeCompare(t.label)),{points:C.map(({label:e,value:t})=>({label:e,value:t})),format:d?S?`money`:d.type===`integer`?`integer`:`decimal`:`integer`,...S?{currency:`USD`}:{},href:V(r,i,o)}}ne(F,{metric:St,records:jt,chart:zt,shortcuts:async(e,t)=>t,shortcuts:ft()});function Bt(e){let{relations:t,viewAllHref:n}=e;if(!t)throw Error(`the record page context is missing`);return{relations:t,records:jt,viewAllHref:n}}async function Vt(e,t){let{source:n}=I(e),r=e.record;if(!r?.id)throw Error(`line items need a record`);let{model:i}=L(r.model),a=await n.get(i,r.id);if(!a)return{};let o=t.find(e=>e.kind===`items`),s=o?h(o.model)?.model:void 0,c=xt(i,a,o&&s?await n.listWhere(s,o.field,r.id):[]),l=c?void 0:yt(i,a),u=re(j(i)),d=u?a[u]:void 0;return{...c?{storedTotals:c}:{},...l?{totals:l}:{},...typeof d==`string`&&d?{currency:d}:{}}}F.register(ue((e,t)=>ge(Bt(t))(e,t))),F.register(be(async(e,t)=>{let n=Bt(t),{totals:r,storedTotals:i,currency:a}=await Vt(t,n.relations);return ce({...n,totals:()=>r,storedTotals:()=>i,currency:()=>a})(e,t)}));var Ht=[`shortcuts`,`metric`,`records`,`chart`,`note`],Ut={"@happyvertical/smrt-reports/svelte":async()=>({SavedReportsWidget:(await a(async()=>{let{default:e}=await import(`./B-QbNQ20.js`);return{default:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)).default})},Wt=async(e,t)=>{let n=Ut[e];if(n)return(await n())[t]},Gt=T.filter(e=>e.surfaces?.some(e=>e.kind===`widget`)),Kt=Gt.flatMap(e=>(e.surfaces??[]).flatMap(e=>e.kind===`widget`?[e.type]:[]));Ge(F,Gt,Wt);var qt=new Map(Be(T).map(e=>[`section:${e.id}`,e])),Jt=m.packages.flatMap(e=>e.models.map(e=>e.id)),Yt=[...Ht,...Kt];function Xt(e){let t=qt.get(e);for(let e of t?.recipes??[]){let t=ze(e)[0];if(t)return{id:t.model.id,name:y(t.model.name)}}}function Zt(e,t){let n=Ve(qt.get(e)?.recipes[0]),r=Xt(e);return Xe({lead:r?{...r,plural:p(r.name)}:void 0,dataWidgets:!0,page:n&&Kt.includes(n.type)?n:void 0,override:t})}var Qt=new Map;function $t(e,t){if(!ve.test(e))return;let n=Qt.get(e);return n||(n=w({id:e,allowed:Yt,models:Jt,defaults:Zt(e)}),Qt.set(e,n)),t===void 0?n:w({...n,defaults:Zt(e,t)})}function en(e,t){return`detail:${e}.${t}`}var tn=new Map(m.packages.flatMap(e=>e.models.filter(u).map(t=>[he(t.id),{packageId:e.id,model:t}])));function nn(e){let[,t,n]=/^detail:([A-Za-z0-9_-]+)\.([A-Za-z0-9_]+)$/.exec(e)??[],r=t&&n?x(t,n):void 0;return t&&r&&u(r)?{packageId:t,model:r}:tn.get(e)}var rn=new Set(m.packages.flatMap(e=>e.models.filter(u).map(e=>e.id))),an=new Map;function on(e){let t=an.get(e);if(t)return t;let n=nn(e);if(!n)return;let r=M(m,n.model.id,rn),i=C(j(n.model),r,{id:e,maxMetrics:2*r.length});return t=w({...i,maxWidgets:Math.max(i.maxWidgets??24,i.defaults.length+24)}),an.set(e,t),t}function sn(e,t){let n=on(e),r=nn(e);if(!n||!r)return;let i=M(m,r.model.id,t),a=0,o=n.defaults.filter(e=>e.type===`line-items`?i.some(e=>e.kind===`items`):e.type===`related`?i.some(e=>e.kind===`children`):t.has(String(e.options.model))?e.type!==`metric`||(a+=1,a<=4):!1);return w({...n,defaults:o})}function cn(e,t){return e.startsWith(`detail:`)?on(e):$t(e,t)}function ln(e,t){return qt.has(e)||e===`section:${De.id}`?!0:e.startsWith(`detail:`)?nn(e)!==void 0:e.startsWith(`custom:`)&&ve.test(e)&&(t?.customSections??[]).some(t=>t.id===e)}var un=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function dn(e,t){let n=t.widgetId?`widget ${t.widgetId}${t.type?` (${t.type})`:``}`:`an entry`,r=t.options?.length?`: ${t.options.map(e=>`${e.key} ${e.code}`).join(`, `)}`:``;return`Overview ${e}: ${n} was dropped (${t.code}${r}).`}function fn(e,t){let n={...e};return e.added&&(n.added=e.added.filter(e=>!t.has(e.id))),e.changed&&(n.changed=Object.fromEntries(Object.entries(e.changed).filter(([e])=>!t.has(e)))),n}function pn(e,t){let n=cn(e,t);if(!n)return{override:null,issues:[{widgetId:null,type:null,code:`malformed`,message:`not an overview id`}]};let r=de(n,t,F);if(r.ok){let e=ie(t).override?.changed?.count;return e&&n.defaults.some(e=>e.id===`count`)?{override:{...r.override??{version:1},changed:{...r.override?.changed,count:e}},issues:[]}:{override:r.override,issues:[]}}let i=ie(t),a=new Set(r.issues.flatMap(e=>e.widgetId?[e.widgetId]:[]));if(!i.override)return{override:null,issues:r.issues};let o=de(n,fn(i.override,a),F);return o.ok?{override:o.override,issues:r.issues}:{override:null,issues:[...r.issues,...o.issues]}}function mn(e,t){if(!un(e))return null;let n=[],r=[];for(let i of Object.keys(e).sort()){if(!ln(i,t)){r.push(`Overview ${i} is not a page in this app and was dropped.`);continue}let{override:a,issues:o}=pn(i,e[i]);for(let e of o)r.push(dn(i,e));a&&n.push([i,a])}return{overviews:Object.fromEntries(n),dropped:r}}var hn=ee,gn=`glass`,_n=`system`,vn=[`light`,`dark`,`system`],yn=[`none`,`sm`,`md`,`lg`,`xl`,`full`],bn=[`comfortable`,`touch`],xn=[`auto`,`standard`,`more`],G={"system-ui":`system-ui, -apple-system, "Segoe UI", sans-serif`,Inter:`Inter, system-ui, sans-serif`,Georgia:`Georgia, "Times New Roman", serif`,"ui-rounded":`ui-rounded, "SF Pro Rounded", system-ui, sans-serif`,"ui-monospace":`ui-monospace, "SF Mono", Menlo, monospace`},Sn=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;function Cn(e){if(typeof e!=`string`)return null;let t=Sn.exec(e.trim());if(!t)return null;let n=t[1].toLowerCase();return n.length===3&&(n=[...n].map(e=>e+e).join(``)),`#${n}`}var wn=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Tn(e){if(e===void 0)return{ok:!0,theme:void 0};if(!wn(e))return{ok:!1,error:`The cookbook "theme" must be an object.`};let t={};if(e.preset!==void 0){if(typeof e.preset!=`string`||!hn.includes(e.preset))return{ok:!1,error:`The theme preset must be one of ${hn.join(`, `)}.`};t.preset=e.preset}if(e.colorScheme!==void 0){if(!vn.includes(e.colorScheme))return{ok:!1,error:`The theme colorScheme must be light, dark or system.`};t.colorScheme=e.colorScheme}for(let[n,r]of[[`borderRadius`,yn],[`density`,bn],[`contrast`,xn]]){let i=e[n];if(i!==void 0){if(!r.includes(i))return{ok:!1,error:`The theme ${n} must be one of ${r.join(`, `)}.`};t[n]=i}}if(e.fontFamily!==void 0){if(typeof e.fontFamily!=`string`||!Object.hasOwn(G,e.fontFamily))return{ok:!1,error:`The theme font must be one of ${Object.keys(G).join(`, `)}.`};t.fontFamily=e.fontFamily}if(e.custom!==void 0){if(!wn(e.custom))return{ok:!1,error:`The theme "custom" must be an object.`};let n=Cn(e.custom.primary);if(!n)return{ok:!1,error:`The theme custom primary must be a hex colour like #c2410c.`};let r={primary:n};if(e.custom.fontFamily!==void 0){let t=e.custom.fontFamily;if(typeof t!=`string`||!Object.hasOwn(G,t))return{ok:!1,error:`The theme font must be one of ${Object.keys(G).join(`, `)}.`};r.fontFamily=t}t.custom=r}if(e.customCss!==void 0){if(typeof e.customCss!=`string`)return{ok:!1,error:`The theme customCss must be a string.`};if(Array.from(e.customCss).length>65536)return{ok:!1,error:`The theme customCss is too long (65,536 characters maximum).`};e.customCss&&(t.customCss=e.customCss)}return{ok:!0,theme:Object.keys(t).length?t:void 0}}function En(e){if(!e)return;let t={};return e.preset&&(t.preset=e.preset),e.colorScheme&&(t.colorScheme=e.colorScheme),e.borderRadius&&(t.borderRadius=e.borderRadius),e.density&&(t.density=e.density),e.contrast&&(t.contrast=e.contrast),e.fontFamily&&(t.fontFamily=e.fontFamily),e.custom&&(t.custom={...e.custom}),e.customCss&&(t.customCss=e.customCss),Object.keys(t).length?t:void 0}function Dn(e){let t=e?.colorScheme??`system`,n=e?.custom?`brand colour ${e.custom.primary}`:e?.preset??`glass`;return t===`system`?n:`${n}, ${t}`}var K=`section:`;function On(e,t=xe(T)){let n=Object.keys(t).sort((e,t)=>t.length-e.length);if(!n.length)return e;let r=e=>{if(!e.startsWith(K))return e;let r=e.slice(8);for(let e of n){if(r===e)return`${K}${t[e]}`;if(r.startsWith(`${e}:`))return`${K}${t[e]}${r.slice(e.length)}`}return e},i=e=>e.startsWith(K)&&n.includes(e.slice(8)),a=e=>[...new Set(e)],o={...e};if(e.sectionOrder&&(o.sectionOrder=a(e.sectionOrder.map(r))),e.hidden&&(o.hidden=a(e.hidden.filter(e=>!i(e)).map(r))),e.itemOrder){let t={};for(let[n,i]of Object.entries(e.itemOrder)){let e=r(n);t[e]=a([...t[e]??[],...i.map(r)])}o.itemOrder=t}return e.moved&&(o.moved=Object.fromEntries(Object.entries(e.moved).map(([e,t])=>[r(e),r(t)]))),o}function kn(e,t=T){let n=new Map;for(let e of t){let t=we(e).id;for(let r of ze(e))r.key&&n.set(`${K}${t}:${r.packageId}:${r.model.name}:${r.label}`,Oe(r.packageId,r.model.name,r.key))}let r=e=>{let t=n.get(e);if(t)return t;if(!e.startsWith(K))return e;let r=e.slice(8).split(`:`);return r.length<3||!r[1]||!r[2]?e:Oe(r[1],r[2])},i=e=>[...new Set(e)],a=(e,t)=>{let n={};for(let[i,a]of Object.entries(e)){let e=r(i);e in n||(n[e]=t(a))}return n},o={...e};return e.hidden&&(o.hidden=i(e.hidden.map(r))),e.itemOrder&&(o.itemOrder=a(e.itemOrder,e=>i(e.map(r)))),e.moved&&(o.moved=a(e.moved,r)),e.items&&(o.items=a(e.items,e=>e)),o}var q=`https://s-m-r-t.dev/schemas/cookbook/v1.json`,An=new Set([`basic`,`advanced`,`hidden`]),jn=new Set([`api`,`mcp`,`cli`]),J=e=>({ok:!1,error:e}),Y=e=>typeof e==`object`&&!!e&&!Array.isArray(e),X=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`);function Mn(e,t){if(!Y(e))return`${t} is not an object`;let{objectRef:n,fieldName:r}=e;if(typeof n!=`string`||!n)return`${t} has no objectRef`;if(typeof r!=`string`||!r)return`${t} has no fieldName`;if(e.scopeType!==`app`)return`${t} must have scopeType "app"`;let i={objectRef:n,fieldName:r,scopeType:`app`};for(let n of[`defaultValue`,`help`,`label`]){let r=e[n];if(r!==void 0){if(typeof r!=`string`&&r!==null)return`${t}.${n} is invalid`;i[n]=r}}if(e.visibility!==void 0){let n=e.visibility;if(n!==null&&!(typeof n==`string`&&An.has(n)))return`${t}.visibility is invalid`;i.visibility=n}if(e.displayOrder!==void 0){let n=e.displayOrder;if(n!==null&&!(typeof n==`number`&&Number.isFinite(n)))return`${t}.displayOrder is invalid`;i.displayOrder=n}if(e.locked!==void 0){if(e.locked!==null&&typeof e.locked!=`boolean`)return`${t}.locked is invalid`;i.locked=e.locked}return i}function Nn(e){if(!Y(e)||e.version!==1)return`layout must be an object with version 1`;for(let t of[`sectionOrder`,`hidden`])if(e[t]!==void 0&&!X(e[t]))return`layout.${t} must be a list of strings`;for(let t of[`itemOrder`,`moved`,`panels`])if(e[t]!==void 0&&!Y(e[t]))return`layout.${t} must be an object`;let t=e.itemOrder;if(Y(t)){for(let[e,n]of Object.entries(t))if(e===`__proto__`||!X(n))return`layout.itemOrder.${e} must be a list of strings`}let n=e.moved;if(Y(n)){for(let[e,t]of Object.entries(n))if(e===`__proto__`||typeof t!=`string`)return`layout.moved.${e} must be a string`}return e}function Pn(e,t={}){if(!Y(e))return J(`This is not a cookbook: expected a JSON object.`);if(e.$schema!==void 0&&e.$schema!==`https://s-m-r-t.dev/schemas/cookbook/v1.json`&&e.$schema!==`https://s-m-r-t.dev/schemas/blueprint/v1.json`)return J(`This is not a cookbook: its "$schema" is not a cookbook schema this planner knows.`);let{version:n}=e;if(n===void 0)return J(`This is not a cookbook: it has no "version".`);if(typeof n!=`number`||!Number.isInteger(n))return J(`The cookbook "version" must be a whole number.`);if(n>1)return J(`This cookbook is version ${n}, newer than this planner understands (1). Update the planner or re-export it.`);if(n!==1)return J(`Cookbook version ${n} is not supported (this planner reads version 1).`);if(!X(e.recipes))return J(`The cookbook "recipes" must be a list of recipe ids.`);let r=e.recipes.filter(e=>!D.has(e)),i=[...new Set([...Me(e.recipes.filter(e=>D.has(e)),D),...r])].sort(),a=[];if(e.features!==void 0){if(!X(e.features))return J(`The cookbook "features" must be a list of model names.`);let t=new Set;for(let n of e.features){if(t.has(n))return J(`The cookbook lists the feature ${n} more than once.`);t.add(n)}a=[...e.features].sort()}let o=new Set([...i.flatMap(e=>D.get(e)?.models??[]),...a]);if(!Array.isArray(e.policies))return J(`The cookbook "policies" must be a list.`);let s=[];for(let[t,n]of e.policies.entries()){let e=Mn(n,`policies[${t}]`);if(typeof e==`string`)return J(`Invalid cookbook: ${e}.`);(o.has(e.objectRef)||Ne(e))&&s.push(e)}let c;if(e.exposure!==void 0){if(!Y(e.exposure))return J(`The cookbook "exposure" must be an object.`);let t=[];for(let[n,r]of Object.entries(e.exposure)){if(!X(r)||!r.every(e=>jn.has(e)))return J(`Invalid cookbook: exposure for ${n} must list api, mcp or cli.`);r.length&&o.has(n)&&t.push([n,[...r]])}c=Object.fromEntries(t)}let l;if(e.layout!==void 0){let t=Nn(e.layout);if(typeof t==`string`)return J(`Invalid cookbook: ${t}.`);l=kn(On(t))}let u;if(e.theme!==void 0){let n=Tn(e.theme);if(n.ok)u=n.theme;else if(!t.dropUnknownRecipes)return J(n.error)}let d,f=[];if(e.overviews!==void 0){if(t.overviews){let n=t.overviews(e.overviews,l);if(!n)return J(`The cookbook "overviews" must be an object.`);d=n.overviews,f=n.dropped}else{if(!Y(e.overviews))return J(`The cookbook "overviews" must be an object.`);Object.keys(e.overviews).length&&(f=[`Page customisations (overviews) are not kept by this host and were dropped.`])}}let p={$schema:q,version:1,recipes:i,features:a,policies:s};for(let t of[`name`,`description`]){let n=e[t];if(n!==void 0){if(typeof n!=`string`)return J(`The cookbook "${t}" must be a string.`);n.trim()&&(p[t]=n.trim())}}if(e.specs!==void 0){if(typeof e.specs!=`string`)return J(`The cookbook "specs" must be a string.`);e.specs.trim()&&(p.specs=e.specs.trim())}return c&&Object.keys(c).length&&(p.exposure=c),l&&(p.layout=l),u&&(p.theme=u),d&&Object.keys(d).length&&(p.overviews=d),f.length?{ok:!0,cookbook:p,dropped:f}:{ok:!0,cookbook:p}}var Fn=e=>({ok:!1,error:e});function In(e,t={}){return Pn(e,{...t,overviews:mn})}function Ln(e,t={}){let n;try{n=JSON.parse(e)}catch{return Fn(`This file is not valid JSON.`)}try{return In(n,t)}catch{return Fn(`This file is not a valid cookbook.`)}}var Z=`smrt-planner:cookbook-doc:v1`,Rn=`smrt-planner:blueprint:v1`,zn=`smrt-planner:cookbook-doc:unreadable`;function Bn(){try{return globalThis.localStorage??null}catch{return null}}function Vn(e){if(!e)return{status:`unavailable`};let t;try{t=e.getItem(Z)}catch{return{status:`unavailable`}}let n=null;try{n=e.getItem(Rn)}catch{}let r=t===null&&n!==null,i=r?n:t;if(i===null)return{status:`empty`};let a=Ln(i,{dropUnknownRecipes:!0});if(a.ok)return r&&Q(e,Z,JSON.stringify(a.cookbook)),{status:`loaded`,cookbook:a.cookbook,previousKept:n!==null,...a.dropped?{dropped:a.dropped}:{}};t=i;let o=Q(e,zn,t);return{status:`unreadable`,reason:a.error,keptAside:o}}function Q(e,t,n){if(!e)return!1;try{return e.setItem(t,n),!0}catch{return!1}}function Hn(e,t){if(!e)return!1;try{return e.removeItem(t),!0}catch{return!1}}function Un(e,t){return Q(e,Z,JSON.stringify(t))}function Wn(e,t={}){let n={$schema:q,version:1,...Ie(e)};t.name&&(n.name=t.name),t.description&&(n.description=t.description),t.specs&&(n.specs=t.specs),t.layout&&(n.layout=t.layout);let r=En(t.theme);r&&(n.theme=r);let i=t.overviews??{},a=Object.keys(i).sort();return a.length&&(n.overviews=Object.fromEntries(a.map(e=>[e,i[e]]))),n}var Gn=new Set([`basic`,`advanced`,`hidden`]),Kn=new Set([`api`,`mcp`,`cli`]);function qn(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t+`=`.repeat((4-t.length%4)%4));return new TextDecoder().decode(Uint8Array.from(n,e=>e.charCodeAt(0)))}function Jn(e){let t=new URLSearchParams(e);return t.has(`r`)||t.has(`o`)}function Yn(e){let t={rows:[],narrowed:{}};if(!e)return t;let n;try{n=JSON.parse(qn(e))}catch{return t}if(!n||typeof n!=`object`)return t;let r=[];for(let[e,t]of Object.entries(n.r??{}))if(t&&typeof t==`object`)for(let[n,i]of Object.entries(t)){if(!i||typeof i!=`object`)continue;let t={objectRef:e,fieldName:n,scopeType:`app`};typeof i.v==`string`&&Gn.has(i.v)&&(t.visibility=i.v),typeof i.l==`string`&&(t.label=i.l),(typeof i.h==`string`||i.h===null)&&(t.help=i.h),(typeof i.d==`string`||i.d===null)&&(t.defaultValue=i.d),typeof i.o==`number`&&Number.isFinite(i.o)&&(t.displayOrder=i.o),typeof i.k==`boolean`&&(t.locked=i.k),r.push(t)}let i={};for(let[e,t]of Object.entries(n.x??{})){if(!Array.isArray(t))continue;let n=t.filter(e=>Kn.has(e));n.length&&(i[e]=n)}return{rows:r,narrowed:i}}function Xn(e){let t=new URLSearchParams(e),n=(t.get(`r`)??``).split(`,`).filter(Boolean),r=Me(Le(n,D),D),i=new Set(r.flatMap(e=>D.get(e)?.models??[])),{rows:a,narrowed:o}=Yn(t.get(`o`)??``),s={$schema:q,version:1,recipes:r,features:[],policies:a.filter(e=>i.has(e.objectRef))},c=Object.fromEntries(Object.entries(o).filter(([e])=>i.has(e)));return Object.keys(c).length&&(s.exposure=c),s}var Zn=`smrt-planner:shell`;function $(e){let t=Fe(e),n=e.policies.some(e=>e.defaultValue!==void 0&&Ne(e));s(Re(e)||n?t.taxRate:void 0),o({pricesIncludeTax:t.pricesIncludeTax,taxRounding:t.taxRounding,currency:t.currency})}var Qn=new class{#e=r(0);get replacementGeneration(){return e(this.#e)}set replacementGeneration(e){i(this.#e,e,!0)}#t=r();get layout(){return e(this.#t)}set layout(e){i(this.#t,e,!0)}#n=r();get name(){return e(this.#n)}set name(e){i(this.#n,e,!0)}#r=r();get description(){return e(this.#r)}set description(e){i(this.#r,e,!0)}#i=r();get specs(){return e(this.#i)}set specs(e){i(this.#i,e,!0)}#a=r();get theme(){return e(this.#a)}set theme(e){i(this.#a,e,!0)}#o=r({});get overviews(){return e(this.#o)}set overviews(e){i(this.#o,e)}#s=r(`unknown`);get persist(){return e(this.#s)}set persist(e){i(this.#s,e,!0)}#c=r(!1);get loaded(){return e(this.#c)}set loaded(e){i(this.#c,e,!0)}hostManaged=!1;#l=r(``);get loadNotice(){return e(this.#l)}set loadNotice(e){i(this.#l,e,!0)}saveBlocked=!1;#u=r(!1);get keepLegacyUrl(){return e(this.#u)}set keepLegacyUrl(e){i(this.#u,e,!0)}replacedBeforeLoad=!1;previousKept=!1;storage=null;timer;snapshot(){return Wn(n(E.data),{layout:n(this.layout),theme:n(this.theme),overviews:n(this.overviews),name:this.name,description:this.description,specs:this.specs})}overview(e){return Object.hasOwn(this.overviews,e)?this.overviews[e]:null}setOverview(e,t){let n=Object.fromEntries(Object.entries(this.overviews).filter(([t])=>t!==e));t&&(n[e]=t),this.overviews=n}setLayout(e){this.layout=S(e)?void 0:e}setSpecs(e){let t=e.trimEnd();this.specs=t.trim()?t:void 0}apply(e){E.load(e),this.layout=e.layout,this.theme=e.theme,this.name=e.name,this.description=e.description,this.specs=e.specs,this.overviews={...e.overviews??{}},$(e)}get unavailableNotice(){let e=[...E.unavailableRecipes,...E.unavailableFeatures];if(!e.length)return``;let t=e.length;return`${t} ${t===1?`recipe`:`recipes`} in this cookbook ${t===1?`isn't`:`aren't`} available in this version: ${e.join(`, `)}. They are kept when you save or export.`}removeUnavailable(){E.removeUnavailable(),this.scheduleSave()}setTheme(e){this.theme=En(e)}settings(){return Fe(this.snapshot())}setSettings(e){let t=Pe(this.snapshot(),e);E.rows=t.policies.map(e=>({...e})),$(t)}replace(e){this.replacementGeneration++,this.apply(e),this.loaded||(this.replacedBeforeLoad=!0),this.saveBlocked=!1,this.keepLegacyUrl=!1}reset(e={}){this.replacementGeneration++,E.clear(),$({policies:[]}),this.layout=void 0,e.preserveTheme||(this.theme=void 0),this.name=void 0,this.description=void 0,this.specs=void 0,this.overviews={},this.saveBlocked=!1,this.keepLegacyUrl=!1}importText(e){let t=Ln(e);return t.ok&&this.replace(t.cookbook),t}hydrate(e,t=d()){this.storage=t;let n=Vn(t);n.status===`loaded`&&(this.previousKept=n.previousKept),n.status===`loaded`&&!this.replacedBeforeLoad?(this.apply(n.cookbook),n.dropped?.length&&(this.loadNotice=`Some saved page customisations could not be used and were removed: ${n.dropped.join(` `)}`)):n.status===`unreadable`&&(this.saveBlocked=!n.keptAside,this.loadNotice=n.keptAside?`The saved cookbook could not be read (${n.reason}) and was kept aside; starting empty.`:`The saved cookbook could not be read (${n.reason}). Starting empty without overwriting it; import or reset to save again.`);let r=!1;if(Jn(e)&&(n.status===`loaded`&&!Q(t,`smrt-planner:cookbook-doc:backup`,JSON.stringify(n.cookbook))&&(this.saveBlocked=!0),this.apply(Xn(e)),r=!0),this.persist=n.status===`unavailable`?`memory`:`unknown`,this.loaded=!0,r){let e=this.save();this.keepLegacyUrl=!e}return r}save(){if(clearTimeout(this.timer),this.timer=void 0,!this.loaded)return!1;if(this.hostManaged)return!0;if(this.saveBlocked)return this.persist=`memory`,!1;let e=Un(this.storage,this.snapshot());return this.persist=e?`ok`:`memory`,e&&this.previousKept&&(this.previousKept=!Hn(this.storage,Rn)),e&&(this.keepLegacyUrl=!1),e}scheduleSave(){this.loaded&&!this.hostManaged&&(clearTimeout(this.timer),this.timer=setTimeout(()=>this.save(),300))}flush(){this.timer!==void 0&&this.save()}};export{j as A,N as C,ut as D,mt as E,st as O,ht as S,_t as T,Cn as _,Bn as a,$t as b,q as c,_n as d,gn as f,Dn as g,hn as h,Z as i,ot as j,M as k,yn as l,G as m,Qn as n,In as o,bn as p,$ as r,Ln as s,Zn as t,xn as u,sn as v,gt as w,F as x,en as y};
@@ -0,0 +1 @@
1
+ import"./CPRaO-Ts.js";