@happyvertical/smrt-planner 0.0.2 → 0.1.1

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 (752) hide show
  1. package/README.md +81 -8
  2. package/app/404.html +42 -49
  3. package/app/_app/immutable/assets/0.DUow1OzM.css +1 -0
  4. package/app/_app/immutable/assets/10.CdYxvH4G.css +1 -0
  5. package/app/_app/immutable/assets/11.nOT5Z4Fv.css +1 -0
  6. package/app/_app/immutable/assets/12.F7A7zP4J.css +1 -0
  7. package/app/_app/immutable/assets/13.JoySu8W5.css +1 -0
  8. package/app/_app/immutable/assets/14.nsp62-4b.css +1 -0
  9. package/app/_app/immutable/assets/2.CbPiqdz5.css +1 -0
  10. package/app/_app/immutable/assets/3.D518dbB5.css +1 -0
  11. package/app/_app/immutable/assets/4.B3vt1gMJ.css +1 -0
  12. package/app/_app/immutable/assets/AiSetup.4fXjMpTZ.css +1 -0
  13. package/app/_app/immutable/assets/AppShell.DOvXbUZo.css +1 -0
  14. package/app/_app/immutable/assets/ConnectTools.DTleL8YA.css +1 -0
  15. package/app/_app/immutable/assets/FieldMapForm.C8SZ3t4N.css +1 -0
  16. package/app/_app/immutable/assets/ModelPage.DbXvPbHE.css +1 -0
  17. package/app/_app/immutable/assets/SectionActions.BE1CPmxk.css +1 -0
  18. package/app/_app/immutable/assets/SectionIcons.BGFcFuOf.css +1 -0
  19. package/app/_app/immutable/assets/SegmentedControl.BkyuoCEJ.css +1 -0
  20. package/app/_app/immutable/assets/app.eM0k786r.css +1 -0
  21. package/app/_app/immutable/assets/currency-metadata.DDyu8_ub.css +1 -0
  22. package/app/_app/immutable/assets/data.bGq43K60.css +1 -0
  23. package/app/_app/immutable/assets/feedback.xBpOq9ef.css +1 -0
  24. package/app/_app/immutable/assets/forms.B3_bbIMe.css +1 -0
  25. package/app/_app/immutable/assets/labels.BiuUjqHs.css +1 -0
  26. package/app/_app/immutable/assets/percent.DbwvwMhf.css +1 -0
  27. package/app/_app/immutable/assets/state.CJipYvSU.css +1 -0
  28. package/app/_app/immutable/assets/webmcp-ui-context.BnR-DUfO.css +1 -0
  29. package/app/_app/immutable/assets/workspace.B5Xq-5pJ.css +1 -0
  30. package/app/_app/immutable/chunks/1ElZWh_R.js +10 -0
  31. package/app/_app/immutable/chunks/B-CpwO-j.js +1 -0
  32. package/app/_app/immutable/chunks/{BnRri03M.js → B7KB-rhH.js} +1 -1
  33. package/app/_app/immutable/chunks/BUhghcIm.js +1 -0
  34. package/app/_app/immutable/chunks/BV3NwM01.js +1 -0
  35. package/app/_app/immutable/chunks/BZVZZ6VY.js +1 -0
  36. package/app/_app/immutable/chunks/Ba1g71Sq.js +1 -0
  37. package/app/_app/immutable/chunks/BeJD7_hy.js +1 -0
  38. package/app/_app/immutable/chunks/BiO_bqNH.js +2 -0
  39. package/app/_app/immutable/chunks/{DkR8_Ws6.js → BqBuCJB_.js} +2 -2
  40. package/app/_app/immutable/chunks/BsJoBmTA.js +1 -0
  41. package/app/_app/immutable/chunks/Bxbz6_Mb.js +1 -0
  42. package/app/_app/immutable/chunks/Bz5uCkjV.js +2 -0
  43. package/app/_app/immutable/chunks/BzMfoxBk.js +1 -0
  44. package/app/_app/immutable/chunks/CF6zSg_o.js +2 -0
  45. package/app/_app/immutable/chunks/CFL0B6dk.js +1 -0
  46. package/app/_app/immutable/chunks/CRu55ZTy.js +4 -0
  47. package/app/_app/immutable/chunks/{CyUMm_Wp.js → Cv2EcCr0.js} +1 -1
  48. package/app/_app/immutable/chunks/D-3Ri0zJ.js +1 -0
  49. package/app/_app/immutable/chunks/{BWPhGFHl.js → D0FW0z6R.js} +1 -1
  50. package/app/_app/immutable/chunks/D7d5GssF.js +1 -0
  51. package/app/_app/immutable/chunks/DCsSRJsN.js +1 -0
  52. package/app/_app/immutable/chunks/DGqV6_5v.js +1 -0
  53. package/app/_app/immutable/chunks/DNSRTkf6.js +11 -0
  54. package/app/_app/immutable/chunks/DQNX_XPY.js +1 -0
  55. package/app/_app/immutable/chunks/DSyIMN4M.js +1 -0
  56. package/app/_app/immutable/chunks/DUTtmM1Y.js +1 -0
  57. package/app/_app/immutable/chunks/DYuawOB3.js +980 -0
  58. package/app/_app/immutable/chunks/DfCLzLZc.js +1 -0
  59. package/app/_app/immutable/chunks/Dh5fne6n.js +1 -0
  60. package/app/_app/immutable/chunks/LruoUXGC.js +1 -0
  61. package/app/_app/immutable/chunks/ZLqixH7j.js +9 -0
  62. package/app/_app/immutable/chunks/_pYwB_Eb.js +4 -0
  63. package/app/_app/immutable/chunks/aoU3lIZI.js +1 -0
  64. package/app/_app/immutable/chunks/c57ZlocB.js +24 -0
  65. package/app/_app/immutable/chunks/h8ppmjOm.js +1 -0
  66. package/app/_app/immutable/chunks/jhcy_jeO.js +1 -0
  67. package/app/_app/immutable/chunks/vNEnXNLV.js +3 -0
  68. package/app/_app/immutable/chunks/vwntRvfV.js +1 -0
  69. package/app/_app/immutable/entry/app.D5LoTsNA.js +2 -0
  70. package/app/_app/immutable/entry/start.Sb_s0NGC.js +1 -0
  71. package/app/_app/immutable/nodes/0.Cuo9-RQc.js +9 -0
  72. package/app/_app/immutable/nodes/1.BW8Ar5T3.js +1 -0
  73. package/app/_app/immutable/nodes/10.CpLYjN7r.js +3 -0
  74. package/app/_app/immutable/nodes/11.BMPKD4M3.js +1 -0
  75. package/app/_app/immutable/nodes/12.WYpy0AHE.js +4 -0
  76. package/app/_app/immutable/nodes/13.BYo05X9B.js +1 -0
  77. package/app/_app/immutable/nodes/14.DN0MT3KB.js +1 -0
  78. package/app/_app/immutable/nodes/2.DM6k_pqu.js +24 -0
  79. package/app/_app/immutable/nodes/3.YgEwJ-vF.js +1 -0
  80. package/app/_app/immutable/nodes/4.A3Y6Lax0.js +1 -0
  81. package/app/_app/immutable/nodes/5.D9Vd85hG.js +1 -0
  82. package/app/_app/immutable/nodes/6.C5c56bSW.js +1 -0
  83. package/app/_app/immutable/nodes/7.CDBMbYlD.js +1 -0
  84. package/app/_app/immutable/nodes/8.8olDkDou.js +1 -0
  85. package/app/_app/immutable/nodes/9.CWgx__8Z.js +1 -0
  86. package/app/_app/version.json +1 -1
  87. package/app/advanced-styles/index.html +84 -0
  88. package/app/ai/index.html +60 -52
  89. package/app/blueprint/index.html +46 -53
  90. package/app/cookbook/index.html +46 -53
  91. package/app/index.html +92 -64
  92. package/app/m/ads/AdDeliveryTier/index.html +52 -59
  93. package/app/m/ads/AdEvent/index.html +52 -59
  94. package/app/m/ads/AdFormat/index.html +52 -59
  95. package/app/m/ads/AdGroup/index.html +52 -59
  96. package/app/m/ads/AdVariation/index.html +52 -59
  97. package/app/m/analytics/AnalyticsDataStream/index.html +52 -59
  98. package/app/m/analytics/AnalyticsEvent/index.html +52 -59
  99. package/app/m/analytics/AnalyticsProperty/index.html +52 -59
  100. package/app/m/analytics/AnalyticsReport/index.html +52 -59
  101. package/app/m/approvals/ApprovalEvent/index.html +52 -59
  102. package/app/m/approvals/ApprovalPolicy/index.html +52 -59
  103. package/app/m/approvals/ApprovalRequest/index.html +52 -59
  104. package/app/m/assets/Asset/attachments/index.html +91 -0
  105. package/app/m/assets/Asset/index.html +52 -59
  106. package/app/m/assets/AssetAssociation/index.html +53 -60
  107. package/app/m/assets/AssetMetafield/index.html +52 -59
  108. package/app/m/assets/AssetStatus/index.html +52 -59
  109. package/app/m/assets/AssetType/index.html +52 -59
  110. package/app/m/assets/Folder/index.html +52 -59
  111. package/app/m/chat/AgentSession/index.html +52 -59
  112. package/app/m/chat/ChatMessage/index.html +53 -60
  113. package/app/m/chat/ChatParticipant/index.html +53 -60
  114. package/app/m/chat/ChatReaction/index.html +52 -59
  115. package/app/m/chat/ChatRoom/index.html +52 -59
  116. package/app/m/chat/ChatThread/index.html +53 -60
  117. package/app/m/chat/VoiceGatewayTurn/index.html +52 -59
  118. package/app/m/chat/VoiceSession/index.html +52 -59
  119. package/app/m/commerce/Agreement/index.html +52 -59
  120. package/app/m/commerce/Cart/index.html +52 -59
  121. package/app/m/commerce/Contract/index.html +52 -59
  122. package/app/m/commerce/ContractLineItem/index.html +53 -60
  123. package/app/m/commerce/Customer/index.html +52 -59
  124. package/app/m/commerce/DocumentTax/index.html +89 -0
  125. package/app/m/commerce/Estimate/index.html +52 -59
  126. package/app/m/commerce/Fulfillment/index.html +52 -59
  127. package/app/m/commerce/FulfillmentLineItem/index.html +53 -60
  128. package/app/m/commerce/Invoice/index.html +52 -59
  129. package/app/m/commerce/InvoiceLineItem/index.html +53 -60
  130. package/app/m/commerce/Lease/index.html +52 -59
  131. package/app/m/commerce/LicenseSale/index.html +52 -59
  132. package/app/m/commerce/Order/index.html +52 -59
  133. package/app/m/commerce/Payment/index.html +52 -59
  134. package/app/m/commerce/PaymentAllocation/index.html +53 -60
  135. package/app/m/commerce/PaymentInstrument/index.html +52 -59
  136. package/app/m/commerce/PaymentIntent/index.html +52 -59
  137. package/app/m/commerce/Payout/index.html +52 -59
  138. package/app/m/commerce/ProductionOrder/index.html +52 -59
  139. package/app/m/commerce/PurchaseContract/index.html +89 -0
  140. package/app/m/commerce/PurchaseOrder/index.html +52 -59
  141. package/app/m/commerce/SalesContract/index.html +89 -0
  142. package/app/m/commerce/SupplierQuote/index.html +89 -0
  143. package/app/m/commerce/TaxCode/index.html +89 -0
  144. package/app/m/commerce/TaxComponent/index.html +89 -0
  145. package/app/m/commerce/TaxSettings/index.html +89 -0
  146. package/app/m/commerce/TaxSummaryReport/index.html +89 -0
  147. package/app/m/commerce/Vendor/index.html +52 -59
  148. package/app/m/commerce/WholesaleOrder/index.html +52 -59
  149. package/app/m/content/Content/index.html +52 -59
  150. package/app/m/content/ContentContribution/index.html +52 -59
  151. package/app/m/content/ContentContributionAttachment/index.html +52 -59
  152. package/app/m/content/ContentContributionRevision/index.html +52 -59
  153. package/app/m/content/ContentContributionType/index.html +52 -59
  154. package/app/m/content/ContentContributor/index.html +52 -59
  155. package/app/m/content/ContentCorrection/index.html +52 -59
  156. package/app/m/content/ContentFeedSource/index.html +52 -59
  157. package/app/m/content/ContentGovernanceAssignment/index.html +52 -59
  158. package/app/m/content/ContentGovernancePolicy/index.html +52 -59
  159. package/app/m/content/ContentGovernanceProfile/index.html +52 -59
  160. package/app/m/content/ContentReference/index.html +52 -59
  161. package/app/m/content/ContentReview/index.html +52 -59
  162. package/app/m/content/ContentVersion/index.html +52 -59
  163. package/app/m/events/Event/index.html +52 -59
  164. package/app/m/events/EventParticipant/index.html +53 -60
  165. package/app/m/events/EventSeries/index.html +52 -59
  166. package/app/m/events/EventType/index.html +52 -59
  167. package/app/m/expenses/Expense/index.html +89 -0
  168. package/app/m/facts/Fact/index.html +52 -59
  169. package/app/m/facts/FactContent/index.html +52 -59
  170. package/app/m/facts/FactEvidence/index.html +52 -59
  171. package/app/m/facts/FactSource/index.html +52 -59
  172. package/app/m/facts/FactSubject/index.html +52 -59
  173. package/app/m/facts/FactTag/index.html +52 -59
  174. package/app/m/fields/FieldPolicy/index.html +52 -59
  175. package/app/m/fields/FieldPolicySuggestion/index.html +52 -59
  176. package/app/m/fields/FieldUsageCounter/index.html +52 -59
  177. package/app/m/images/Image/index.html +52 -59
  178. package/app/m/inventory/InventoryLocation/index.html +52 -59
  179. package/app/m/inventory/StockLevel/index.html +52 -59
  180. package/app/m/inventory/StockMovement/index.html +52 -59
  181. package/app/m/ledgers/Account/index.html +52 -59
  182. package/app/m/ledgers/Journal/index.html +52 -59
  183. package/app/m/ledgers/JournalEntry/index.html +53 -60
  184. package/app/m/manufacturing/Assembly/index.html +52 -59
  185. package/app/m/manufacturing/BillOfMaterials/index.html +52 -59
  186. package/app/m/manufacturing/BomLine/index.html +52 -59
  187. package/app/m/manufacturing/Operation/index.html +52 -59
  188. package/app/m/manufacturing/ProductionRun/index.html +52 -59
  189. package/app/m/manufacturing/ProductionRunCompletion/index.html +52 -59
  190. package/app/m/manufacturing/RoutingStep/index.html +52 -59
  191. package/app/m/marketing/Campaign/index.html +52 -59
  192. package/app/m/marketing/CampaignChannel/index.html +52 -59
  193. package/app/m/marketing/CampaignMetricSnapshot/index.html +52 -59
  194. package/app/m/messages/Account/index.html +52 -59
  195. package/app/m/messages/Attachment/index.html +52 -59
  196. package/app/m/messages/Blacklist/index.html +52 -59
  197. package/app/m/messages/Email/failed-sends/index.html +54 -59
  198. package/app/m/messages/Email/index.html +52 -59
  199. package/app/m/messages/Email/mailbox/index.html +54 -59
  200. package/app/m/messages/EmailAccount/index.html +52 -59
  201. package/app/m/messages/EmailAttachment/index.html +89 -0
  202. package/app/m/messages/EmailFolder/index.html +52 -59
  203. package/app/m/messages/Message/index.html +52 -59
  204. package/app/m/messages/MessagingEndpoint/index.html +52 -59
  205. package/app/m/messages/PersonaMessageRoute/index.html +52 -59
  206. package/app/m/messages/SlackAccount/index.html +52 -59
  207. package/app/m/messages/SlackMessage/index.html +52 -59
  208. package/app/m/messages/TelegramAccount/index.html +52 -59
  209. package/app/m/messages/Tweet/index.html +52 -59
  210. package/app/m/messages/TwitterAccount/index.html +52 -59
  211. package/app/m/messages/Whitelist/index.html +52 -59
  212. package/app/m/messages/ZulipAccount/index.html +52 -59
  213. package/app/m/places/Place/index.html +52 -59
  214. package/app/m/places/PlaceType/index.html +52 -59
  215. package/app/m/products/Category/index.html +52 -59
  216. package/app/m/products/Material/index.html +52 -59
  217. package/app/m/products/Product/index.html +52 -59
  218. package/app/m/products/Product/ingredients/index.html +54 -59
  219. package/app/m/products/ProductVariant/index.html +53 -60
  220. package/app/m/products/Sku/index.html +53 -60
  221. package/app/m/profiles/ApiKey/index.html +52 -59
  222. package/app/m/profiles/Bot/index.html +52 -59
  223. package/app/m/profiles/MagicLinkToken/index.html +52 -59
  224. package/app/m/profiles/NostrIdentity/index.html +52 -59
  225. package/app/m/profiles/OidcIdentity/index.html +52 -59
  226. package/app/m/profiles/Organization/index.html +52 -59
  227. package/app/m/profiles/Person/index.html +52 -59
  228. package/app/m/profiles/Profile/index.html +52 -59
  229. package/app/m/profiles/ProfileMetadata/index.html +52 -59
  230. package/app/m/profiles/ProfileMetafield/index.html +52 -59
  231. package/app/m/profiles/ProfileRelationship/index.html +52 -59
  232. package/app/m/profiles/ProfileRelationshipTerm/index.html +52 -59
  233. package/app/m/profiles/ProfileRelationshipType/index.html +52 -59
  234. package/app/m/profiles/ProfileType/index.html +52 -59
  235. package/app/m/projects/Comment/index.html +53 -60
  236. package/app/m/projects/Issue/index.html +52 -59
  237. package/app/m/projects/Label/index.html +52 -59
  238. package/app/m/projects/Project/index.html +52 -59
  239. package/app/m/projects/ProjectIntegration/index.html +52 -59
  240. package/app/m/projects/PullRequest/index.html +52 -59
  241. package/app/m/projects/Repository/index.html +52 -59
  242. package/app/m/properties/Property/index.html +52 -59
  243. package/app/m/properties/Zone/index.html +52 -59
  244. package/app/m/reports/RuntimeReport/index.html +52 -59
  245. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +52 -59
  246. package/app/m/reports/SmrtReportLock/index.html +52 -59
  247. package/app/m/reports/SmrtReportRefreshTask/index.html +52 -59
  248. package/app/m/reports/SmrtReportRun/index.html +52 -59
  249. package/app/m/reports/SmrtReportSchedule/index.html +52 -59
  250. package/app/m/reports/SmrtReportWatermark/index.html +52 -59
  251. package/app/m/sales/AttributionException/index.html +52 -59
  252. package/app/m/sales/AttributionPolicy/index.html +52 -59
  253. package/app/m/sales/Commission/index.html +52 -59
  254. package/app/m/sales/CommissionAdjustment/index.html +52 -59
  255. package/app/m/sales/CommissionPayout/index.html +52 -59
  256. package/app/m/sales/CommissionPlan/index.html +52 -59
  257. package/app/m/sales/Earner/index.html +52 -59
  258. package/app/m/sales/EarnerSourceAttribution/index.html +52 -59
  259. package/app/m/sales/EarningEvent/index.html +52 -59
  260. package/app/m/sales/ExecutedAgreement/index.html +52 -59
  261. package/app/m/sales/Lead/index.html +52 -59
  262. package/app/m/sales/Opportunity/index.html +52 -59
  263. package/app/m/sales/OpportunityConversion/index.html +52 -59
  264. package/app/m/sales/PipelineDefinition/index.html +52 -59
  265. package/app/m/sales/PipelineStage/index.html +53 -60
  266. package/app/m/sales/Referral/index.html +52 -59
  267. package/app/m/sales/ReferralAgreement/index.html +52 -59
  268. package/app/m/sales/ReferralLink/index.html +52 -59
  269. package/app/m/sales/ReferralProgram/index.html +52 -59
  270. package/app/m/sales/ReferralTermSnapshot/index.html +52 -59
  271. package/app/m/sales/ReferralTouch/index.html +52 -59
  272. package/app/m/sales/Referrer/index.html +52 -59
  273. package/app/m/sales/SalesActivity/index.html +52 -59
  274. package/app/m/sales/SalesRepresentative/index.html +52 -59
  275. package/app/m/sites/Site/index.html +52 -59
  276. package/app/m/sites/SiteAgentBinding/index.html +52 -59
  277. package/app/m/social/OAuthState/index.html +52 -59
  278. package/app/m/social/SocialAccount/index.html +52 -59
  279. package/app/m/social/SocialPost/index.html +52 -59
  280. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +52 -59
  281. package/app/m/subscriptions/BillingAdjustment/index.html +52 -59
  282. package/app/m/subscriptions/ClientCharge/index.html +52 -59
  283. package/app/m/subscriptions/CreditGrant/index.html +52 -59
  284. package/app/m/subscriptions/PricingRule/index.html +52 -59
  285. package/app/m/subscriptions/RetailCharge/index.html +52 -59
  286. package/app/m/subscriptions/SpendingPolicy/index.html +52 -59
  287. package/app/m/subscriptions/SubscriptionPlan/index.html +52 -59
  288. package/app/m/subscriptions/TenantSubscription/index.html +52 -59
  289. package/app/m/subscriptions/TenantUsageMetric/index.html +52 -59
  290. package/app/m/support/ServiceTimeEntry/index.html +52 -59
  291. package/app/m/support/SupportAiRun/index.html +52 -59
  292. package/app/m/support/SupportAvailability/index.html +52 -59
  293. package/app/m/support/SupportCase/index.html +52 -59
  294. package/app/m/support/SupportCaseEvent/index.html +52 -59
  295. package/app/m/support/SupportChannelBinding/index.html +52 -59
  296. package/app/m/support/SupportCharge/index.html +52 -59
  297. package/app/m/support/SupportCompensation/index.html +52 -59
  298. package/app/m/support/SupportCompensationPlan/index.html +52 -59
  299. package/app/m/support/SupportEscalation/index.html +52 -59
  300. package/app/m/support/SupportInteraction/index.html +52 -59
  301. package/app/m/support/SupportPlan/index.html +52 -59
  302. package/app/m/support/SupportPolicy/index.html +52 -59
  303. package/app/m/support/SupportQualification/index.html +52 -59
  304. package/app/m/support/SupportServiceTarget/index.html +52 -59
  305. package/app/m/support/SupportSpecialist/index.html +52 -59
  306. package/app/m/support/SupportWorkLink/index.html +52 -59
  307. package/app/m/tags/Tag/index.html +52 -59
  308. package/app/m/tags/TagAlias/index.html +52 -59
  309. package/app/m/timesheets/AttendanceBreak/index.html +52 -59
  310. package/app/m/timesheets/AttendancePunch/index.html +52 -59
  311. package/app/m/timesheets/AttendanceSegment/index.html +89 -0
  312. package/app/m/timesheets/ServiceChargeSnapshot/index.html +52 -59
  313. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +52 -59
  314. package/app/m/timesheets/ServiceTimeEntry/index.html +52 -59
  315. package/app/m/users/Group/index.html +52 -59
  316. package/app/m/users/GroupMember/index.html +52 -59
  317. package/app/m/users/GroupRole/index.html +52 -59
  318. package/app/m/users/Membership/index.html +53 -60
  319. package/app/m/users/MembershipOverride/index.html +52 -59
  320. package/app/m/users/Permission/index.html +52 -59
  321. package/app/m/users/Role/index.html +52 -59
  322. package/app/m/users/RolePermission/index.html +52 -59
  323. package/app/m/users/Session/index.html +52 -59
  324. package/app/m/users/Tenant/index.html +52 -59
  325. package/app/m/users/TenantIntegration/index.html +52 -59
  326. package/app/m/users/TenantPermissionOverride/index.html +52 -59
  327. package/app/m/users/User/index.html +52 -59
  328. package/app/m/video/Character/index.html +52 -59
  329. package/app/m/video/CharacterAsset/index.html +52 -59
  330. package/app/m/video/CompositeJob/index.html +52 -59
  331. package/app/m/video/Performer/index.html +52 -59
  332. package/app/m/video/PerformerAsset/index.html +52 -59
  333. package/app/m/video/Scene/index.html +52 -59
  334. package/app/m/video/SceneAsset/index.html +52 -59
  335. package/app/m/video/VideoComposition/index.html +52 -59
  336. package/app/m/video/VideoCompositionAsset/index.html +52 -59
  337. package/app/m/video/VideoSequence/index.html +52 -59
  338. package/app/m/video/VideoSequenceAsset/index.html +52 -59
  339. package/app/m/video/VideoShot/index.html +52 -59
  340. package/app/m/video/VideoShotAsset/index.html +52 -59
  341. package/app/m/video/VideoShotCharacter/index.html +52 -59
  342. package/app/m/video/VideoWorkflow/index.html +52 -59
  343. package/app/m/voice/VoiceOutput/index.html +52 -59
  344. package/app/m/voice/VoiceProfile/index.html +52 -59
  345. package/app/m/voice/VoiceSample/index.html +52 -59
  346. package/app/packages/ads/index.html +50 -57
  347. package/app/packages/analytics/index.html +50 -57
  348. package/app/packages/approvals/index.html +50 -57
  349. package/app/packages/assets/index.html +50 -57
  350. package/app/packages/chat/index.html +50 -57
  351. package/app/packages/comments/index.html +50 -57
  352. package/app/packages/commerce/index.html +50 -57
  353. package/app/packages/content/index.html +50 -57
  354. package/app/packages/events/index.html +50 -57
  355. package/app/packages/expenses/index.html +50 -57
  356. package/app/packages/facts/index.html +50 -57
  357. package/app/packages/fields/index.html +50 -57
  358. package/app/packages/human-resources/index.html +50 -57
  359. package/app/packages/images/index.html +50 -57
  360. package/app/packages/index.html +49 -55
  361. package/app/packages/ingestion/index.html +85 -0
  362. package/app/packages/inventory/index.html +50 -57
  363. package/app/packages/ledgers/index.html +50 -57
  364. package/app/packages/manufacturing/index.html +50 -57
  365. package/app/packages/marketing/index.html +50 -57
  366. package/app/packages/messages/index.html +50 -57
  367. package/app/packages/places/index.html +50 -57
  368. package/app/packages/preferences/index.html +50 -57
  369. package/app/packages/products/index.html +50 -57
  370. package/app/packages/profiles/index.html +50 -57
  371. package/app/packages/projects/index.html +50 -57
  372. package/app/packages/properties/index.html +50 -57
  373. package/app/packages/reports/index.html +50 -57
  374. package/app/packages/sales/index.html +50 -57
  375. package/app/packages/sites/index.html +50 -57
  376. package/app/packages/social/index.html +50 -57
  377. package/app/packages/subscriptions/index.html +50 -57
  378. package/app/packages/support/index.html +50 -57
  379. package/app/packages/tags/index.html +50 -57
  380. package/app/packages/timesheets/index.html +50 -57
  381. package/app/packages/users/index.html +50 -57
  382. package/app/packages/video/index.html +50 -57
  383. package/app/packages/voice/index.html +50 -57
  384. package/app/packages/webhooks/index.html +85 -0
  385. package/app/recipes/account-access/help/index.html +52 -57
  386. package/app/recipes/account-access/index.html +57 -59
  387. package/app/recipes/activity/help/index.html +52 -57
  388. package/app/recipes/activity/index.html +57 -59
  389. package/app/recipes/agreements/help/index.html +52 -57
  390. package/app/recipes/agreements/index.html +57 -59
  391. package/app/recipes/analytics.reports/help/index.html +52 -57
  392. package/app/recipes/analytics.reports/index.html +57 -59
  393. package/app/recipes/assets/help/index.html +52 -57
  394. package/app/recipes/assets/index.html +57 -59
  395. package/app/recipes/billing/help/index.html +52 -57
  396. package/app/recipes/billing/index.html +57 -59
  397. package/app/recipes/chat.assistant/help/index.html +52 -57
  398. package/app/recipes/chat.assistant/index.html +57 -59
  399. package/app/recipes/comments/help/index.html +52 -57
  400. package/app/recipes/comments/index.html +57 -59
  401. package/app/recipes/commerce.customers/help/index.html +52 -57
  402. package/app/recipes/commerce.customers/index.html +57 -59
  403. package/app/recipes/commerce.estimates/help/index.html +52 -57
  404. package/app/recipes/commerce.estimates/index.html +57 -59
  405. package/app/recipes/commerce.purchases/help/index.html +52 -57
  406. package/app/recipes/commerce.purchases/index.html +57 -59
  407. package/app/recipes/commerce.sales/help/index.html +52 -57
  408. package/app/recipes/commerce.sales/index.html +57 -59
  409. package/app/recipes/commerce.vendors/help/index.html +52 -57
  410. package/app/recipes/commerce.vendors/index.html +57 -59
  411. package/app/recipes/commerce.wholesale/help/index.html +52 -57
  412. package/app/recipes/commerce.wholesale/index.html +57 -59
  413. package/app/recipes/events.calendar/help/index.html +52 -57
  414. package/app/recipes/events.calendar/index.html +57 -59
  415. package/app/recipes/expenses.tracking/help/index.html +88 -0
  416. package/app/recipes/expenses.tracking/index.html +92 -0
  417. package/app/recipes/fields.form-customization/help/index.html +52 -57
  418. package/app/recipes/fields.form-customization/index.html +57 -59
  419. package/app/recipes/ingestion/help/index.html +88 -0
  420. package/app/recipes/ingestion/index.html +93 -0
  421. package/app/recipes/integrations/help/index.html +88 -0
  422. package/app/recipes/integrations/index.html +92 -0
  423. package/app/recipes/inventory.stock/help/index.html +52 -57
  424. package/app/recipes/inventory.stock/index.html +57 -59
  425. package/app/recipes/ledgers.bookkeeping/help/index.html +52 -57
  426. package/app/recipes/ledgers.bookkeeping/index.html +57 -59
  427. package/app/recipes/messages/help/index.html +52 -57
  428. package/app/recipes/messages/index.html +57 -59
  429. package/app/recipes/products/help/index.html +52 -57
  430. package/app/recipes/products/index.html +57 -59
  431. package/app/recipes/projects.tracker/help/index.html +52 -57
  432. package/app/recipes/projects.tracker/index.html +57 -59
  433. package/app/recipes/reports.materialized/help/index.html +52 -57
  434. package/app/recipes/reports.materialized/index.html +57 -59
  435. package/app/recipes/reports.runtime/help/index.html +88 -0
  436. package/app/recipes/reports.runtime/index.html +92 -0
  437. package/app/recipes/sales.pipeline/help/index.html +52 -57
  438. package/app/recipes/sales.pipeline/index.html +57 -59
  439. package/app/recipes/tags.taxonomy/help/index.html +52 -57
  440. package/app/recipes/tags.taxonomy/index.html +57 -59
  441. package/app/recipes/team-collaboration/help/index.html +52 -57
  442. package/app/recipes/team-collaboration/index.html +57 -59
  443. package/app/recipes/timesheets.time-entries/help/index.html +88 -0
  444. package/app/recipes/timesheets.time-entries/index.html +92 -0
  445. package/app/s/custom-accounts/index.html +82 -0
  446. package/app/s/custom-appointments/index.html +82 -0
  447. package/app/s/custom-billing/index.html +47 -54
  448. package/app/s/custom-buying/index.html +47 -54
  449. package/app/s/custom-checkout/index.html +82 -0
  450. package/app/s/custom-classes/index.html +47 -54
  451. package/app/s/custom-clients/index.html +82 -0
  452. package/app/s/custom-events/index.html +82 -0
  453. package/app/s/custom-fleet/index.html +82 -0
  454. package/app/s/custom-giving/index.html +82 -0
  455. package/app/s/custom-jobs/index.html +47 -54
  456. package/app/s/custom-kitchen/index.html +47 -54
  457. package/app/s/custom-material/index.html +47 -54
  458. package/app/s/custom-meetings/index.html +82 -0
  459. package/app/s/custom-members/index.html +47 -54
  460. package/app/s/custom-parts/index.html +47 -54
  461. package/app/s/custom-rentals/index.html +82 -0
  462. package/app/s/custom-roastery/index.html +82 -0
  463. package/app/s/custom-schedule/index.html +47 -54
  464. package/app/s/custom-shelf/index.html +82 -0
  465. package/app/s/custom-shop/index.html +47 -54
  466. package/app/s/custom-wholesale/index.html +47 -54
  467. package/app/s/custom-work/index.html +82 -0
  468. package/app/s/custom-yard/index.html +82 -0
  469. package/app/s/section-access-control/index.html +47 -54
  470. package/app/s/section-account-security/index.html +47 -54
  471. package/app/s/section-accounting/index.html +47 -54
  472. package/app/s/section-activity/index.html +47 -54
  473. package/app/s/section-agreements/index.html +47 -54
  474. package/app/s/section-analytics/index.html +47 -54
  475. package/app/s/section-assets/index.html +47 -54
  476. package/app/s/section-billing/index.html +47 -54
  477. package/app/s/section-calendar/index.html +47 -54
  478. package/app/s/section-catalog/index.html +47 -54
  479. package/app/s/section-chat.assistant/index.html +47 -54
  480. package/app/s/section-comments/index.html +47 -54
  481. package/app/s/section-fields.form-customization/index.html +47 -54
  482. package/app/s/section-ingestion/index.html +82 -0
  483. package/app/s/section-integrations/index.html +82 -0
  484. package/app/s/section-messages/index.html +47 -54
  485. package/app/s/section-more/index.html +47 -54
  486. package/app/s/section-operations/index.html +47 -54
  487. package/app/s/section-projects/index.html +47 -54
  488. package/app/s/section-purchasing/index.html +47 -54
  489. package/app/s/section-reports.materialized/index.html +47 -54
  490. package/app/s/section-reports.runtime/index.html +82 -0
  491. package/app/s/section-sales/index.html +47 -54
  492. package/app/s/section-taxonomy/index.html +47 -54
  493. package/app/s/section-team/index.html +47 -54
  494. package/app/s/section-work/index.html +82 -0
  495. package/dist/ai/state.svelte.d.ts +13 -0
  496. package/dist/ai/state.svelte.js +33 -0
  497. package/dist/assistant/change.d.ts +14 -3
  498. package/dist/assistant/change.js +26 -3
  499. package/dist/assistant/engine.js +5 -1
  500. package/dist/assistant/prompt.js +7 -3
  501. package/dist/catalog/catalog.json +11263 -14455
  502. package/dist/catalog/generate/exclusions.d.ts +2 -0
  503. package/dist/catalog/generate/exclusions.js +14 -0
  504. package/dist/catalog/generate/extract.js +28 -7
  505. package/dist/catalog/types.d.ts +7 -0
  506. package/dist/components/AdvancedStyles.svelte +138 -0
  507. package/dist/components/AdvancedStyles.svelte.d.ts +6 -0
  508. package/dist/components/AiModelsPage.svelte +40 -0
  509. package/dist/components/AiModelsPage.svelte.d.ts +7 -0
  510. package/dist/components/AiSetup.svelte +9 -6
  511. package/dist/components/AiStatusIcons.svelte +8 -5
  512. package/dist/components/AppSettings.svelte +105 -1
  513. package/dist/components/BrowserAssistant.svelte +16 -17
  514. package/dist/components/BrowserAssistant.svelte.d.ts +2 -0
  515. package/dist/components/ChildRecords.svelte +61 -14
  516. package/dist/components/ChildRecords.svelte.d.ts +1 -0
  517. package/dist/components/ConnectTools.svelte +5 -2
  518. package/dist/components/CookbooksPanel.svelte +56 -33
  519. package/dist/components/CopyButton.svelte +65 -0
  520. package/dist/components/CopyButton.svelte.d.ts +24 -0
  521. package/dist/components/ExportPanel.svelte +292 -57
  522. package/dist/components/ExportPanel.svelte.d.ts +10 -1
  523. package/dist/components/FeatureCard.svelte +21 -10
  524. package/dist/components/FeaturesPanel.svelte +4 -1
  525. package/dist/components/FieldInput.svelte +6 -3
  526. package/dist/components/FieldMapForm.svelte +6 -10
  527. package/dist/components/FieldMapForm.svelte.d.ts +1 -0
  528. package/dist/components/FormWorkspace.svelte +80 -9
  529. package/dist/components/FormWorkspace.svelte.d.ts +1 -0
  530. package/dist/components/HeaderIconLink.svelte +86 -0
  531. package/dist/components/HeaderIconLink.svelte.d.ts +14 -0
  532. package/dist/components/HelpView.svelte +3 -0
  533. package/dist/components/ModelOptions.svelte +13 -2
  534. package/dist/components/ModelPage.svelte +33 -5
  535. package/dist/components/ModelPage.svelte.d.ts +4 -0
  536. package/dist/components/ModelWorkspace.svelte +148 -50
  537. package/dist/components/ModelWorkspace.svelte.d.ts +4 -0
  538. package/dist/components/PackagePage.svelte +96 -0
  539. package/dist/components/PackagePage.svelte.d.ts +9 -0
  540. package/dist/components/ProductMedia.svelte +95 -0
  541. package/dist/components/ProductMedia.svelte.d.ts +10 -0
  542. package/dist/components/RecipeCards.svelte +13 -1
  543. package/dist/components/RecipeHelp.svelte +3 -0
  544. package/dist/components/RecipeOptions.svelte +13 -1
  545. package/dist/components/RecordFeatures.svelte +22 -8
  546. package/dist/components/RecordView.svelte +354 -0
  547. package/dist/components/RecordView.svelte.d.ts +14 -0
  548. package/dist/components/RelationField.svelte +5 -2
  549. package/dist/components/SectionActions.svelte +8 -5
  550. package/dist/components/SectionHeading.svelte +63 -0
  551. package/dist/components/SectionHeading.svelte.d.ts +11 -0
  552. package/dist/components/SectionIcons.svelte +15 -3
  553. package/dist/components/SectionOverview.svelte +33 -3
  554. package/dist/components/SectionOverview.svelte.d.ts +4 -0
  555. package/dist/components/SectionPage.svelte +25 -165
  556. package/dist/components/SectionView.svelte +172 -0
  557. package/dist/components/SectionView.svelte.d.ts +18 -0
  558. package/dist/components/SettingsPanel.svelte +3 -9
  559. package/dist/components/SettingsPanel.svelte.d.ts +1 -5
  560. package/dist/components/ThemeBridge.svelte +80 -4
  561. package/dist/components/ThemeBridge.svelte.d.ts +5 -1
  562. package/dist/components/ThemeSection.svelte +208 -117
  563. package/dist/components/ThemeSection.svelte.d.ts +3 -7
  564. package/dist/components/VariantGridForm.svelte +9 -13
  565. package/dist/components/VariantGridForm.svelte.d.ts +1 -0
  566. package/dist/components/VoiceTyping.svelte +3 -0
  567. package/dist/cookbook/describe.d.ts +29 -0
  568. package/dist/cookbook/describe.js +164 -0
  569. package/dist/cookbook/file.d.ts +6 -0
  570. package/dist/cookbook/file.js +18 -4
  571. package/dist/cookbook/prompt.d.ts +49 -0
  572. package/dist/cookbook/prompt.js +96 -0
  573. package/dist/cookbook/store.svelte.d.ts +13 -0
  574. package/dist/cookbook/store.svelte.js +36 -8
  575. package/dist/core/prompt.js +10 -1
  576. package/dist/core/reply.d.ts +6 -1
  577. package/dist/data/children.d.ts +50 -6
  578. package/dist/data/children.js +146 -16
  579. package/dist/data/derived.d.ts +37 -29
  580. package/dist/data/derived.js +49 -30
  581. package/dist/data/display.d.ts +21 -8
  582. package/dist/data/display.js +74 -11
  583. package/dist/data/fakes.d.ts +48 -9
  584. package/dist/data/fakes.js +146 -22
  585. package/dist/data/labels.d.ts +7 -2
  586. package/dist/data/labels.js +12 -2
  587. package/dist/data/list-sort.d.ts +8 -0
  588. package/dist/data/list-sort.js +45 -0
  589. package/dist/data/money.d.ts +225 -0
  590. package/dist/data/money.js +411 -0
  591. package/dist/data/packs.d.ts +13 -0
  592. package/dist/data/packs.js +1224 -0
  593. package/dist/data/planner-source.js +120 -3
  594. package/dist/data/source.d.ts +13 -2
  595. package/dist/data/source.js +274 -40
  596. package/dist/features/palette.d.ts +2 -0
  597. package/dist/features/palette.js +1 -1
  598. package/dist/forms/stock.d.ts +1 -1
  599. package/dist/forms/stock.js +3 -1
  600. package/dist/index.d.ts +7 -2
  601. package/dist/index.js +6 -1
  602. package/dist/kitchen/LiveKitchenBridge.svelte +73 -0
  603. package/dist/kitchen/LiveKitchenBridge.svelte.d.ts +8 -0
  604. package/dist/kitchen/live.d.ts +7 -0
  605. package/dist/kitchen/live.js +51 -0
  606. package/dist/library/icons.js +34 -0
  607. package/dist/library/library.json +1546 -15
  608. package/dist/library/pending.json +5 -0
  609. package/dist/library/types.d.ts +4 -0
  610. package/dist/motion/tokens.d.ts +6 -0
  611. package/dist/motion/tokens.js +32 -0
  612. package/dist/motion/view-transition.d.ts +13 -0
  613. package/dist/motion/view-transition.js +17 -0
  614. package/dist/overviews/definitions.d.ts +41 -2
  615. package/dist/overviews/definitions.js +111 -4
  616. package/dist/overviews/models.d.ts +10 -0
  617. package/dist/overviews/models.js +19 -0
  618. package/dist/overviews/registry.d.ts +92 -5
  619. package/dist/overviews/registry.js +468 -58
  620. package/dist/overviews/validate.js +2 -2
  621. package/dist/planner/Planner.svelte +374 -166
  622. package/dist/planner/PlannerControls.svelte +255 -0
  623. package/dist/planner/PlannerControls.svelte.d.ts +17 -0
  624. package/dist/planner/PlannerLifecycle.svelte +73 -0
  625. package/dist/planner/PlannerLifecycle.svelte.d.ts +9 -0
  626. package/dist/planner/app.svelte.d.ts +12 -2
  627. package/dist/planner/app.svelte.js +13 -3
  628. package/dist/planner/assistant.js +20 -2
  629. package/dist/planner/commands/adapter.js +9 -2
  630. package/dist/planner/commands/types.d.ts +1 -1
  631. package/dist/planner/commands/types.js +1 -0
  632. package/dist/planner/header-icons.d.ts +12 -0
  633. package/dist/planner/header-icons.js +12 -0
  634. package/dist/planner/host/HostPlanner.svelte +70 -0
  635. package/dist/planner/host/HostPlanner.svelte.d.ts +17 -0
  636. package/dist/planner/host/session.svelte.d.ts +28 -0
  637. package/dist/planner/host/session.svelte.js +186 -0
  638. package/dist/planner/routes.d.ts +49 -0
  639. package/dist/planner/routes.js +64 -0
  640. package/dist/planner/shell.d.ts +40 -0
  641. package/dist/planner/shell.js +56 -0
  642. package/dist/planner/tab.svelte.d.ts +6 -3
  643. package/dist/planner/tab.svelte.js +11 -4
  644. package/dist/planner/title.d.ts +15 -0
  645. package/dist/planner/title.js +21 -0
  646. package/dist/planner/title.svelte.d.ts +6 -0
  647. package/dist/planner/title.svelte.js +11 -0
  648. package/dist/planner/types.d.ts +39 -7
  649. package/dist/products/media.d.ts +20 -0
  650. package/dist/products/media.js +65 -0
  651. package/dist/recipes/help/descriptions.json +1 -3
  652. package/dist/recipes/index.d.ts +2 -0
  653. package/dist/recipes/index.js +6 -0
  654. package/dist/recipes/plumbing.d.ts +35 -1
  655. package/dist/recipes/plumbing.js +74 -0
  656. package/dist/screens/definition.d.ts +35 -0
  657. package/dist/screens/definition.js +132 -0
  658. package/dist/screens/relations.d.ts +17 -0
  659. package/dist/screens/relations.js +98 -0
  660. package/dist/screens/totals.d.ts +37 -0
  661. package/dist/screens/totals.js +65 -0
  662. package/dist/sections/info.d.ts +1 -1
  663. package/dist/sections/info.js +2 -2
  664. package/dist/settings/app-settings.d.ts +17 -1
  665. package/dist/settings/app-settings.js +40 -3
  666. package/dist/smrt-version.d.ts +2 -0
  667. package/dist/smrt-version.js +4 -0
  668. package/dist/styles/planner-forms.css +53 -0
  669. package/dist/styles/planner-lists.css +43 -0
  670. package/dist/theme/css-highlight.d.ts +6 -0
  671. package/dist/theme/css-highlight.js +34 -0
  672. package/dist/theme/custom-css.svelte.d.ts +34 -0
  673. package/dist/theme/custom-css.svelte.js +246 -0
  674. package/dist/theme/runtime.js +25 -5
  675. package/dist/theme/theme.d.ts +26 -3
  676. package/dist/theme/theme.js +70 -2
  677. package/dist/upstream/overlay.d.ts +14 -5
  678. package/dist/upstream/overlay.js +20 -2
  679. package/package.json +12 -6
  680. package/app/_app/immutable/assets/0.B5zXkXe_.css +0 -1
  681. package/app/_app/immutable/assets/10.hpcnxvK1.css +0 -1
  682. package/app/_app/immutable/assets/11.D7zoXfVV.css +0 -1
  683. package/app/_app/immutable/assets/12.CPobm1ED.css +0 -1
  684. package/app/_app/immutable/assets/2.CyaWdRdI.css +0 -1
  685. package/app/_app/immutable/assets/3.BlPQOes8.css +0 -1
  686. package/app/_app/immutable/assets/8.2gQeKBp_.css +0 -1
  687. package/app/_app/immutable/assets/9.HOPT4xtg.css +0 -1
  688. package/app/_app/immutable/assets/AiSetup.Cb22AigN.css +0 -1
  689. package/app/_app/immutable/assets/Button.DkP0qkG9.css +0 -1
  690. package/app/_app/immutable/assets/ConnectTools.BgIJOOGW.css +0 -1
  691. package/app/_app/immutable/assets/FieldMapForm.BCU-4pO4.css +0 -1
  692. package/app/_app/immutable/assets/ModelPage.Dd3LcMta.css +0 -1
  693. package/app/_app/immutable/assets/SectionActions.CTkVuNMF.css +0 -1
  694. package/app/_app/immutable/assets/SectionIcons.5Udq9vN-.css +0 -1
  695. package/app/_app/immutable/assets/SegmentedControl.B8SrQacd.css +0 -1
  696. package/app/_app/immutable/assets/dist.C5nHBk_O.css +0 -1
  697. package/app/_app/immutable/assets/feedback.BVKAwFck.css +0 -1
  698. package/app/_app/immutable/assets/forms.BChZ2RWM.css +0 -1
  699. package/app/_app/immutable/assets/percent.LH0z-ozZ.css +0 -1
  700. package/app/_app/immutable/assets/store.CGDwHkkF.css +0 -1
  701. package/app/_app/immutable/assets/ui.B1A1Zl2p.css +0 -1
  702. package/app/_app/immutable/assets/workspace.BIMkuZDb.css +0 -1
  703. package/app/_app/immutable/chunks/1okeBSoq.js +0 -1
  704. package/app/_app/immutable/chunks/2jFBkS1C.js +0 -1
  705. package/app/_app/immutable/chunks/6P9zxrzU.js +0 -1
  706. package/app/_app/immutable/chunks/B32EWqI8.js +0 -9
  707. package/app/_app/immutable/chunks/B4Kevpe0.js +0 -1
  708. package/app/_app/immutable/chunks/BKwRT_1p.js +0 -1
  709. package/app/_app/immutable/chunks/BS4h9ES-.js +0 -1
  710. package/app/_app/immutable/chunks/CMhpRMKg.js +0 -1
  711. package/app/_app/immutable/chunks/CPRHZZeW.js +0 -1
  712. package/app/_app/immutable/chunks/CRQ1Pmzr.js +0 -1
  713. package/app/_app/immutable/chunks/CWtfVMDz.js +0 -1
  714. package/app/_app/immutable/chunks/Chyo8rdT.js +0 -3
  715. package/app/_app/immutable/chunks/Ci0DUht6.js +0 -34
  716. package/app/_app/immutable/chunks/CmmuWmp6.js +0 -2
  717. package/app/_app/immutable/chunks/CrFNLK0f.js +0 -1
  718. package/app/_app/immutable/chunks/CsprTb3f.js +0 -2
  719. package/app/_app/immutable/chunks/CygC84VT.js +0 -2
  720. package/app/_app/immutable/chunks/D0VgZnk1.js +0 -1
  721. package/app/_app/immutable/chunks/DD7gpKb2.js +0 -1
  722. package/app/_app/immutable/chunks/DNRgqfTx.js +0 -1
  723. package/app/_app/immutable/chunks/DVRKjN-E.js +0 -1
  724. package/app/_app/immutable/chunks/D_J_XtJy.js +0 -846
  725. package/app/_app/immutable/chunks/Dp9GVO-9.js +0 -1
  726. package/app/_app/immutable/chunks/DqcD-WtP.js +0 -1
  727. package/app/_app/immutable/chunks/QukgIHDX.js +0 -1
  728. package/app/_app/immutable/chunks/WxSPP8QW.js +0 -4
  729. package/app/_app/immutable/chunks/Xp1g1t4n.js +0 -3
  730. package/app/_app/immutable/chunks/leQCwW2d.js +0 -1
  731. package/app/_app/immutable/chunks/p6bgzXiY.js +0 -1
  732. package/app/_app/immutable/entry/app.IZIJXhgq.js +0 -2
  733. package/app/_app/immutable/entry/start.BuaYHD1N.js +0 -1
  734. package/app/_app/immutable/nodes/0.m_U8WC7E.js +0 -10
  735. package/app/_app/immutable/nodes/1.Crw8ULhB.js +0 -1
  736. package/app/_app/immutable/nodes/10.1nQxyH9H.js +0 -4
  737. package/app/_app/immutable/nodes/11.Cw0JnQF3.js +0 -1
  738. package/app/_app/immutable/nodes/12.BIocA1aI.js +0 -1
  739. package/app/_app/immutable/nodes/2.CR5BwGnt.js +0 -17
  740. package/app/_app/immutable/nodes/3.1B56hgAG.js +0 -1
  741. package/app/_app/immutable/nodes/4.SSIC7sUh.js +0 -1
  742. package/app/_app/immutable/nodes/5.DgdwleDQ.js +0 -1
  743. package/app/_app/immutable/nodes/6.DmD9rqLU.js +0 -1
  744. package/app/_app/immutable/nodes/7.DdngsBmo.js +0 -1
  745. package/app/_app/immutable/nodes/8.D2Mszsua.js +0 -3
  746. package/app/_app/immutable/nodes/9.CLYsywul.js +0 -1
  747. package/app/m/content/Contents/index.html +0 -96
  748. package/app/m/preferences/UiPreferenceRecord/index.html +0 -96
  749. package/app/m/users/AccessRequest/index.html +0 -96
  750. package/app/m/users/ResourceGrant/index.html +0 -96
  751. package/app/m/users/UsersCliAuthRequest/index.html +0 -96
  752. package/app/m/users/UsersMagicLinkToken/index.html +0 -96
@@ -0,0 +1 @@
1
+ import{i as e,r as t,t as n}from"./Dd_uD5pT.js";import{$ as r,B as i,Ct as a,Dt as o,Et as s,F as c,Ft as l,G as u,K as d,Ot as f,P as p,U as m,W as h,a as g,bt as _,ct as v,ft as y,g as b,kt as x,mt as S,o as C,pt as w,st as T,tt as E,v as D,vt as O}from"./vNEnXNLV.js";import"./xihTtKlq.js";var k={edit:`M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z`,undo:`M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z`,done:`M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z`,eye:`M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z`,eyeOff:`M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z`,heading:`M5 4v3h5.5v12h3V7H19V4z`,headingOff:`M5 4v3h5.5v12h3V7H19V4zM3.5 2.5L2.1 3.9l18 18 1.4-1.4z`,trash:`M7 3h10v2h4v2H3V5h4V3zm-2 6h14v12H5V9zm4 2v8h2v-8H9zm4 0v8h2v-8h-2z`,add:`M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z`,more:`M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z`,settings:`M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z`,calendar:`M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z`,users:`M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z`,shoppingBag:`M18 6h-2c0-2.21-1.79-4-4-4S8 3.79 8 6H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-8 4c0 .55-.45 1-1 1s-1-.45-1-1V8h2v2zm2-6c1.1 0 2 .9 2 2h-4c0-1.1.9-2 2-2zm4 6c0 .55-.45 1-1 1s-1-.45-1-1V8h2v2z`,receipt:`M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z`,book:`M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z`,briefcase:`M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z`,truck:`M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-3-4zM6 18.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5-9l1.96 2.5H17V9.5h2.5zm-1.5 9c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z`,package:`M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4h16v3z`,wrench:`M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z`,fileText:`M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z`,layers:`M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z`,folder:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`,bank:`M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z`,creditCard:`M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z`,school:`M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z`,home:`M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z`,repeat:`M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z`,tag:`M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z`,archive:`M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z`,placeholder:`M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm0 3a5 5 0 1 1 0 10 5 5 0 0 1 0-10z`,chevronRight:`M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`,menu:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,chat:`M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z`,close:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z`},ee=`wrench`,te=`folder`,ne=`placeholder`,re=[`folder`,`home`,`calendar`,`users`,`school`,`shoppingBag`,`truck`,`package`,`receipt`,`creditCard`,`bank`,`book`,`fileText`,`briefcase`,`wrench`,`layers`,`repeat`,`tag`,`archive`,`settings`];function ie(e){return Object.hasOwn(k,e)}function ae(e){let t=e-1;return t*t*t+1}function oe(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=ae}=r,s=getComputedStyle(e),c=s.transform===`none`?``:s.transform,[l,u]=s.transformOrigin.split(` `).map(parseFloat);l/=e.clientWidth,u/=e.clientHeight;var d=se(e),f=e.clientWidth/n.width/d,p=e.clientHeight/n.height/d,m=t.left+t.width*l,h=t.top+t.height*u,g=n.left+n.width*l,_=n.top+n.height*u,v=(m-g)*f,y=(h-_)*p,b=t.width/n.width,x=t.height/n.height;return{delay:i,duration:typeof a==`function`?a(Math.sqrt(v*v+y*y)):a,easing:o,css:(e,t)=>`transform: ${c} translate(${t*v}px, ${t*y}px) scale(${e+t*b}, ${e+t*x});`}}function se(e){if(`currentCSSZoom`in e)return e.currentCSSZoom;for(var t=e,n=1;t!==null;)n*=+getComputedStyle(t).zoom,t=t.parentElement;return n}var ce=`(prefers-reduced-motion: reduce)`,le=`--smrt-duration-short4`;function ue(){return typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(ce).matches}function de(e){let t=/^(-?\d*\.?\d+)(ms|s)$/.exec(e.trim());if(!t)return 0;let n=Number(t[1])*(t[2]===`s`?1e3:1);return Number.isFinite(n)&&n>0?n:0}function fe(e,t){if(ue()||typeof document>`u`||typeof getComputedStyle!=`function`)return 0;let n=t??document.documentElement;return de(getComputedStyle(n).getPropertyValue(e))}function pe(e,t,n={}){return oe(e,t,{duration:fe(n.token??le,e)})}var me=Symbol(`smrt-shell-layout`);function he(e){return x(me,e),e}function ge(){let e=s(me);if(!e)throw Error(`[useShellLayout] No AppShell layout found on context.`);return e}function _e(){return s(me)??null}var ve=d(`<svg viewBox="0 0 24 24" fill="currentColor" focusable="false"><path></path></svg>`),ye=u(`<span class="smrt-shell-section-icon svelte-1duxptc" aria-hidden="true" data-smrt-component="ShellSectionIcon"><!></span>`);function be(e,t){f(t,!0);let n=g(t,`size`,3,18),s=a(()=>!ie(t.name)&&!t.iconComponent);v(()=>{r(s)});var c=ye(),u=y(c),d=e=>{var r=ve(),i=S(r);T(()=>{D(r,`width`,n()),D(r,`height`,n()),D(i,`d`,k[t.name])}),m(e,r)},_=a(()=>ie(t.name)),b=e=>{var r=h(),i=w(r);p(i,()=>t.iconComponent,(e,r)=>{r(e,{get name(){return t.name},get size(){return n()}})}),m(e,r)},x=e=>{var t=ve(),r=S(t);T(()=>{D(t,`width`,n()),D(t,`height`,n()),D(r,`d`,k[te])}),m(e,t)};i(u,e=>{r(_)?e(d):t.iconComponent?e(b,1):e(x,-1)}),l(c),m(e,c),o()}var xe=new Set([`$$slots`,`$$events`,`$$legacy`,`label`,`icon`,`children`,`pressed`,`tooltip`,`size`,`type`,`class`]),Se=d(`<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false"><path></path></svg>`),Ce=u(`<button><!></button>`);function we(e,t){f(t,!0);let n=g(t,`size`,3,18),r=g(t,`type`,3,`button`),a=g(t,`class`,3,``),s=C(t,xe);var u=Ce();b(u,()=>({...s,type:r(),class:`smrt-shell-icon-button ${a()??``}`,"aria-label":t.label,title:t.tooltip??t.label,"aria-pressed":t.pressed,"data-smrt-component":`ShellIconButton`}),void 0,void 0,void 0,`svelte-37ru7t`);var d=y(u),p=e=>{var n=h(),r=w(n);c(r,()=>t.children),m(e,n)},_=e=>{var r=Se(),i=S(r);T(()=>{D(r,`width`,n()),D(r,`height`,n()),D(i,`d`,k[t.icon])}),m(e,r)};i(d,e=>{t.children?e(p):t.icon&&e(_,1)}),l(u),m(e,u),o()}function A(e,t){return Math.max(0,Math.min(e,t))}var Te=class{options;#e=_();get drag(){return r(this.#e)}set drag(e){O(this.#e,e,!0)}#t=_(``);get announcement(){return r(this.#t)}set announcement(e){O(this.#t,e,!0)}#n=_();get focusItemId(){return r(this.#n)}set focusItemId(e){O(this.#n,e,!0)}#r=_();get suppressedSelectionId(){return r(this.#r)}set suppressedSelectionId(e){O(this.#r,e,!0)}#i=_(!1);get pending(){return r(this.#i)}set pending(e){O(this.#i,e,!0)}#a=_();get pointerSession(){return r(this.#a)}set pointerSession(e){O(this.#a,e,!0)}constructor(e){this.options=e,v(()=>{if(!this.focusItemId)return;let e=this.focusItemId;this.focusItemId=void 0,E().then(()=>{let t=this.options.root(),n=t?Array.from(t.querySelectorAll(this.options.selectors.item)).find(t=>t.dataset[this.options.selectors.itemKey]===e):void 0;(n?this.options.focusTarget?this.options.focusTarget(n):n:void 0)?.focus()})})}get movable(){return this.options.enabled()&&!this.pending}get nativeDraggable(){return this.movable&&this.pointerSession===void 0}get containers(){return this.options.containers()}itemsIn(e,t){let n=this.options.itemIds(e);return t?n.filter(e=>e!==t):n}findContainer(e){return this.containers.find(t=>t.id===e)}positionFor(e){if(this.options.itemLabel(e)!==void 0)for(let t of this.containers){let n=this.itemsIn(t.id).indexOf(e);if(n>=0)return{containerId:t.id,index:n}}}label(e){return this.options.itemLabel(e)??``}say(e){this.announcement=this.options.announce(e)}pickup(e,t){if(!this.movable)return;let n=this.positionFor(e);n&&(this.drag={itemId:e,source:n,target:{...n},mode:t},this.say({type:`pickup`,item:this.label(e),destinations:this.containers.filter(e=>!e.disabled).map(e=>e.label)}))}announcePosition(e){let t=this.findContainer(e.target.containerId);t&&this.options.itemLabel(e.itemId)!==void 0&&this.say({type:`position`,item:this.label(e.itemId),container:t.label,position:e.target.index+1,count:this.itemsIn(t.id,e.itemId).length+1})}moveKeyboardTarget(e,t){let n=this.drag;if(n?.mode!==`keyboard`)return;let r=this.options.orientation?.()===`vertical`,i={...n.target};if(this.options.flow?.()){let r=e===`horizontal`&&this.isRtl(),a=this.itemsIn(i.containerId,n.itemId).length;i.index=A(i.index+(r?-t:t),a),this.drag={...n,target:i},this.announcePosition(this.drag);return}let a=!this.options.allowSameContainerReorder()&&i.containerId===n.source.containerId;if(e===`vertical`){if(a&&!r)return;let e=this.itemsIn(i.containerId,n.itemId).length,o=a?t<0?-1:e+1:i.index+t;if(r&&(o<0||o>e)){let e=this.containers.findIndex(e=>e.id===i.containerId),r=this.containers[e+t];if(!r)return;if(r.disabled){this.say({type:`unavailable`,container:r.label});return}i.containerId=r.id,i.index=t<0?this.itemsIn(r.id,n.itemId).length:0}else i.index=A(o,e)}else{if(r)return;let e=this.containers.findIndex(e=>e.id===i.containerId),a=this.containers[e+t];if(!a)return;if(a.disabled){this.say({type:`unavailable`,container:a.label});return}i.containerId=a.id,i.index=A(i.index,this.itemsIn(a.id,n.itemId).length)}!this.options.allowSameContainerReorder()&&i.containerId===n.source.containerId&&(i.index=n.source.index),this.drag={...n,target:i},this.announcePosition(this.drag)}isRtl(){let e=this.options.root();return e!==void 0&&typeof getComputedStyle==`function`&&getComputedStyle(e).direction===`rtl`}async drop(){let e=this.drag;if(!e)return;let t=this.options.itemLabel(e.itemId),n=this.findContainer(e.target.containerId),r=t!==void 0&&this.findContainer(e.source.containerId)!==void 0&&n!==void 0&&!n.disabled;if(this.drag=void 0,this.suppressSelection(e.itemId),r&&t!==void 0&&n){if(e.source.containerId===e.target.containerId&&e.source.index===e.target.index){this.focusItemId=e.itemId;return}this.pending=!0;try{await this.options.commit({itemId:e.itemId,source:e.source,target:e.target})}catch{this.say({type:`failed`,item:t}),this.focusItemId=e.itemId;return}finally{this.pending=!1}this.say({type:`drop`,item:t,container:n.label,position:e.target.index+1,count:this.itemsIn(n.id,e.itemId).length+1}),this.focusItemId=e.itemId}}cancel(e=!0,t=!0){let n=this.drag;if(!n)return;let r=this.options.itemLabel(n.itemId);r!==void 0&&e&&this.say({type:`cancel`,item:r}),r!==void 0&&t&&(this.focusItemId=n.itemId),this.suppressSelection(n.itemId),this.drag=void 0}suppressSelection(e){this.suppressedSelectionId=e,window.setTimeout(()=>{this.suppressedSelectionId===e&&(this.suppressedSelectionId=void 0)},0)}consumeClick(e){return this.suppressedSelectionId===e&&(this.suppressedSelectionId=void 0,!0)}keydown(e,t){let n=this.drag;if(!n){if(e.key===` `||e.key===`Enter`){if(!this.movable)return;e.preventDefault(),this.pickup(t,`keyboard`)}return}n.itemId===t&&n.mode===`keyboard`&&(e.key===`Escape`?(e.preventDefault(),this.cancel()):e.key===` `||e.key===`Enter`?(e.preventDefault(),this.drop()):e.key===`ArrowLeft`?(e.preventDefault(),this.moveKeyboardTarget(`horizontal`,-1)):e.key===`ArrowRight`?(e.preventDefault(),this.moveKeyboardTarget(`horizontal`,1)):e.key===`ArrowUp`?(e.preventDefault(),this.moveKeyboardTarget(`vertical`,-1)):e.key===`ArrowDown`&&(e.preventDefault(),this.moveKeyboardTarget(`vertical`,1)))}blur(e,t){let n=this.drag;if(n?.mode!==`keyboard`||n.itemId!==t)return;let r=e.relatedTarget,i=e.currentTarget;r instanceof Node&&i instanceof Node&&i.contains(r)||this.cancel(!0,!1)}dragStart(e,t){if(!this.movable){e.preventDefault();return}this.pickup(t,`pointer`),e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}dragEnd(){this.drag?.mode===`pointer`&&this.cancel()}pointerDown(e,t){this.movable&&e.button===0&&(this.pointerSession={itemId:t,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,active:!1},e.currentTarget.setPointerCapture?.(e.pointerId))}elementAtPointer(e){return document.elementFromPoint?.(e.clientX,e.clientY)??e.target}setPointerTargetFromElement(e,t,n){let r=this.options.root();if(!e||!r?.contains(e))return;let{selectors:i}=this.options,a=e.closest(i.container)?.dataset[i.containerKey];if(!a)return;let o=this.findContainer(a);if(!o||o.disabled)return o;let s=e.closest(i.item);if(!s)return this.pointerTarget(a,this.itemsIn(a,this.drag?.itemId).length),o;let c=this.itemsIn(a).indexOf(s.dataset[i.itemKey]??``);return c<0||this.pointerTarget(a,this.insertionIndex(a,c,s,t,n)),o}insertionIndex(e,t,n,r,i){let a=n.getBoundingClientRect(),o=r<a.top+a.height/2;if(this.options.flow?.()&&i!==void 0){let e=this.options.root()?.getBoundingClientRect().width??0;if(a.width<e*.95){let e=a.left+a.width/2;o=this.isRtl()?i>e:i<e}}let s=t+ +!o,c=this.drag;return c?.source.containerId===e&&s>c.source.index&&--s,s}finishPointerSession(e,t=!1){let n=this.pointerSession;this.pointerSession=void 0;let r=e.currentTarget;if(r.hasPointerCapture?.(e.pointerId)&&r.releasePointerCapture(e.pointerId),!n?.active||this.drag?.itemId!==n.itemId)return;if(t){this.cancel();return}let i=this.setPointerTargetFromElement(this.elementAtPointer(e),e.clientY,e.clientX);if(i?.disabled){this.say({type:`unavailable`,container:i.label}),this.cancel(!1);return}if(!i){this.cancel();return}this.drop()}pointerUp(e){this.finishPointerSession(e)}pointerCancel(e){this.finishPointerSession(e,!0)}pointerMove(e){let t=this.pointerSession;if(t&&t.pointerId===e.pointerId){if(!t.active){if(Math.hypot(e.clientX-t.startX,e.clientY-t.startY)<6)return;this.pickup(t.itemId,`pointer`),this.pointerSession={...t,active:!0}}e.preventDefault(),this.setPointerTargetFromElement(this.elementAtPointer(e),e.clientY,e.clientX)}}pointerTarget(e,t){let n=this.drag;if(n?.mode!==`pointer`)return;if(!this.options.allowSameContainerReorder()&&e===n.source.containerId){this.drag={...n,target:{...n.source}};return}let r=this.itemsIn(e,n.itemId).length;this.drag={...n,target:{containerId:e,index:A(t,r)}}}dropOnItem(e,t,n){if(e.preventDefault(),this.drag?.mode!==`pointer`)return;let r=this.findContainer(t);if(r?.disabled){this.say({type:`unavailable`,container:r.label}),this.cancel(!1);return}this.pointerTarget(t,this.insertionIndex(t,n,e.currentTarget,e.clientY,e.clientX)),this.drop()}dropOnContainer(e,t){e.preventDefault();let n=this.findContainer(t);if(n?.disabled){this.say({type:`unavailable`,container:n.label}),this.cancel(!1);return}this.pointerTarget(t,this.itemsIn(t,this.drag?.itemId).length),this.drop()}};function Ee(e){return new Te(e)}var De=BigInt(2**32-1),Oe=BigInt(32);function ke(e,t=!1){return t?{h:Number(e&De),l:Number(e>>Oe&De)}:{h:Number(e>>Oe&De)|0,l:Number(e&De)|0}}function Ae(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a<n;a++){let{h:n,l:o}=ke(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}new Uint8Array(new Uint32Array([287454020]).buffer)[0];var je=BigInt(0),j=BigInt(1),Me=BigInt(2),Ne=BigInt(7),Pe=BigInt(256),Fe=BigInt(113),Ie=[],Le=[],Re=[];for(let e=0,t=j,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Ie.push(2*(5*r+n)),Le.push((e+1)*(e+2)/2%64);let i=je;for(let e=0;e<7;e++)t=(t<<j^(t>>Ne)*Fe)%Pe,t&Me&&(i^=j<<(j<<BigInt(e))-j);Re.push(i)}var ze=Ae(Re,!0);ze[0],ze[1];var Be=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Ve=Math.ceil,M=Math.floor,N=`[BigNumber Error] `,He=N+`Number primitive has more than 15 significant digits: `,P=0x5af3107a4000,F=14,Ue=9007199254740991,We=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,0xe8d4a51000,0x9184e72a000],I=1e7,L=1e9;function Ge(e){var t,n,r,i=v.prototype={constructor:v,toString:null,valueOf:null},a=new v(1),o=20,s=4,c=-7,l=21,u=-1e7,d=1e7,f=!1,p=1,m=0,h={prefix:``,groupSize:3,secondaryGroupSize:0,groupSeparator:`,`,decimalSeparator:`.`,fractionGroupSize:0,fractionGroupSeparator:`\xA0`,suffix:``},g=`0123456789abcdefghijklmnopqrstuvwxyz`,_=!0;function v(e,t){var i,a,c,l,f,p,m,h,y=this;if(!(y instanceof v))return new v(e,t);if(t==null){if(e&&e._isBigNumber===!0){y.s=e.s,!e.c||e.e>d?y.c=y.e=null:e.e<u?y.c=[y.e=0]:(y.e=e.e,y.c=e.c.slice());return}if((p=typeof e==`number`)&&e*0==0){if(y.s=1/e<0?(e=-e,-1):1,e===~~e){for(l=0,f=e;f>=10;f/=10,l++);l>d?y.c=y.e=null:(y.e=l,y.c=[e]);return}h=String(e)}else{if(!Be.test(h=String(e)))return r(y,h,p);y.s=h.charCodeAt(0)==45?(h=h.slice(1),-1):1}(l=h.indexOf(`.`))>-1&&(h=h.replace(`.`,``)),(f=h.search(/e/i))>0?(l<0&&(l=f),l+=+h.slice(f+1),h=h.substring(0,f)):l<0&&(l=h.length)}else{if(V(t,2,g.length,`Base`),t==10&&_)return y=new v(e),S(y,o+y.e+1,s);if(h=String(e),p=typeof e==`number`){if(e*0!=0)return r(y,h,p,t);if(y.s=1/e<0?(h=h.slice(1),-1):1,v.DEBUG&&h.replace(/^0\.0*|\./,``).length>15)throw Error(He+e)}else y.s=h.charCodeAt(0)===45?(h=h.slice(1),-1):1;for(i=g.slice(0,t),l=f=0,m=h.length;f<m;f++)if(i.indexOf(a=h.charAt(f))<0){if(a==`.`){if(f>l){l=m;continue}}else if(!c&&(h==h.toUpperCase()&&(h=h.toLowerCase())||h==h.toLowerCase()&&(h=h.toUpperCase()))){c=!0,f=-1,l=0;continue}return r(y,String(e),p,t)}p=!1,h=n(h,t,10,y.s),(l=h.indexOf(`.`))>-1?h=h.replace(`.`,``):l=h.length}for(f=0;h.charCodeAt(f)===48;f++);for(m=h.length;h.charCodeAt(--m)===48;);if(h=h.slice(f,++m)){if(m-=f,p&&v.DEBUG&&m>15&&(e>Ue||e!==M(e)))throw Error(He+y.s*e);if((l=l-f-1)>d)y.c=y.e=null;else if(l<u)y.c=[y.e=0];else{if(y.e=l,y.c=[],f=(l+1)%F,l<0&&(f+=F),f<m){for(f&&y.c.push(+h.slice(0,f)),m-=F;f<m;)y.c.push(+h.slice(f,f+=F));f=F-(h=h.slice(f)).length}else f-=m;for(;f--;h+=`0`);y.c.push(+h)}}else y.c=[y.e=0]}v.clone=Ge,v.ROUND_UP=0,v.ROUND_DOWN=1,v.ROUND_CEIL=2,v.ROUND_FLOOR=3,v.ROUND_HALF_UP=4,v.ROUND_HALF_DOWN=5,v.ROUND_HALF_EVEN=6,v.ROUND_HALF_CEIL=7,v.ROUND_HALF_FLOOR=8,v.EUCLID=9,v.config=v.set=function(e){var t,n;if(e!=null){if(typeof e==`object`){if(e.hasOwnProperty(t=`DECIMAL_PLACES`)&&(n=e[t],V(n,0,L,t),o=n),e.hasOwnProperty(t=`ROUNDING_MODE`)&&(n=e[t],V(n,0,8,t),s=n),e.hasOwnProperty(t=`EXPONENTIAL_AT`)&&(n=e[t],n&&n.pop?(V(n[0],-L,0,t),V(n[1],0,L,t),c=n[0],l=n[1]):(V(n,-L,L,t),c=-(l=n<0?-n:n))),e.hasOwnProperty(t=`RANGE`)){if(n=e[t],n&&n.pop)V(n[0],-L,-1,t),V(n[1],1,L,t),u=n[0],d=n[1];else if(V(n,-L,L,t),n)u=-(d=n<0?-n:n);else throw Error(N+t+` cannot be zero: `+n)}if(e.hasOwnProperty(t=`CRYPTO`)){if(n=e[t],n===!!n){if(n){if(typeof crypto<`u`&&crypto&&(crypto.getRandomValues||crypto.randomBytes))f=n;else throw f=!n,Error(N+`crypto unavailable`)}else f=n}else throw Error(N+t+` not true or false: `+n)}if(e.hasOwnProperty(t=`MODULO_MODE`)&&(n=e[t],V(n,0,9,t),p=n),e.hasOwnProperty(t=`POW_PRECISION`)&&(n=e[t],V(n,0,L,t),m=n),e.hasOwnProperty(t=`FORMAT`)){if(n=e[t],typeof n==`object`)h=n;else throw Error(N+t+` not an object: `+n)}if(e.hasOwnProperty(t=`ALPHABET`)){if(n=e[t],typeof n==`string`&&!/^.?$|[+\-.\s]|(.).*\1/.test(n))_=n.slice(0,10)==`0123456789`,g=n;else throw Error(N+t+` invalid: `+n)}}else throw Error(N+`Object expected: `+e)}return{DECIMAL_PLACES:o,ROUNDING_MODE:s,EXPONENTIAL_AT:[c,l],RANGE:[u,d],CRYPTO:f,MODULO_MODE:p,POW_PRECISION:m,FORMAT:h,ALPHABET:g}},v.isBigNumber=function(e){if(!e||e._isBigNumber!==!0)return!1;if(!v.DEBUG)return!0;var t,n,r=e.c,i=e.e,a=e.s;out:if({}.toString.call(r)==`[object Array]`){if((a===1||a===-1)&&i>=-L&&i<=L&&i===M(i)){if(r[0]===0){if(i===0&&r.length===1)return!0;break out}if(t=(i+1)%F,t<1&&(t+=F),String(r[0]).length==t){for(t=0;t<r.length;t++)if(n=r[t],n<0||n>=P||n!==M(n))break out;if(n!==0)return!0}}}else if(r===null&&i===null&&(a===null||a===1||a===-1))return!0;throw Error(N+`Invalid BigNumber: `+e)},v.maximum=v.max=function(){return b(arguments,-1)},v.minimum=v.min=function(){return b(arguments,1)},v.random=(function(){var e=9007199254740992,t=Math.random()*e&2097151?function(){return M(Math.random()*e)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(e){var n,r,i,s,c,l=0,u=[],d=new v(a);if(e==null?e=o:V(e,0,L),s=Ve(e/F),f){if(crypto.getRandomValues){for(n=crypto.getRandomValues(new Uint32Array(s*=2));l<s;)c=n[l]*131072+(n[l+1]>>>11),c>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),n[l]=r[0],n[l+1]=r[1]):(u.push(c%0x5af3107a4000),l+=2);l=s/2}else if(crypto.randomBytes){for(n=crypto.randomBytes(s*=7);l<s;)c=(n[l]&31)*281474976710656+n[l+1]*1099511627776+n[l+2]*4294967296+n[l+3]*16777216+(n[l+4]<<16)+(n[l+5]<<8)+n[l+6],c>=9e15?crypto.randomBytes(7).copy(n,l):(u.push(c%0x5af3107a4000),l+=7);l=s/7}else throw f=!1,Error(N+`crypto unavailable`)}if(!f)for(;l<s;)c=t(),c<9e15&&(u[l++]=c%0x5af3107a4000);for(s=u[--l],e%=F,s&&e&&(c=We[F-e],u[l]=M(s/c)*c);u[l]===0;u.pop(),l--);if(l<0)u=[i=0];else{for(i=-1;u[0]===0;u.splice(0,1),i-=F);for(l=1,c=u[0];c>=10;c/=10,l++);l<F&&(i-=F-l)}return d.e=i,d.c=u,d}})(),v.sum=function(){for(var e=1,t=arguments,n=new v(t[0]);e<t.length;)n=n.plus(t[e++]);return n},n=(function(){var e=`0123456789`;function n(e,t,n,r){for(var i,a=[0],o,s=0,c=e.length;s<c;){for(o=a.length;o--;a[o]*=t);for(a[0]+=r.indexOf(e.charAt(s++)),i=0;i<a.length;i++)a[i]>n-1&&(a[i+1]??(a[i+1]=0),a[i+1]+=a[i]/n|0,a[i]%=n)}return a.reverse()}return function(r,i,a,c,l){var u,d,f,p,h,_,y,b,x=r.indexOf(`.`),S=o,C=s;for(x>=0&&(p=m,m=0,r=r.replace(`.`,``),b=new v(i),_=b.pow(r.length-x),m=p,b.c=n(H(z(_.c),_.e,`0`),10,a,e),b.e=b.c.length),y=n(r,i,a,l?(u=g,e):(u=e,g)),f=p=y.length;y[--p]==0;y.pop());if(!y[0])return u.charAt(0);if(x<0?--f:(_.c=y,_.e=f,_.s=c,_=t(_,b,S,C,a),y=_.c,h=_.r,f=_.e),d=f+S+1,x=y[d],p=a/2,h=h||d<0||y[d+1]!=null,h=C<4?(x!=null||h)&&(C==0||C==(_.s<0?3:2)):x>p||x==p&&(C==4||h||C==6&&y[d-1]&1||C==(_.s<0?8:7)),d<1||!y[0])r=h?H(u.charAt(1),-S,u.charAt(0)):u.charAt(0);else{if(y.length=d,h)for(--a;++y[--d]>a;)y[d]=0,d||(++f,y=[1].concat(y));for(p=y.length;!y[--p];);for(x=0,r=``;x<=p;r+=u.charAt(y[x++]));r=H(r,f,u.charAt(0))}return r}})(),t=(function(){function e(e,t,n){var r,i,a,o,s=0,c=e.length,l=t%I,u=t/I|0;for(e=e.slice();c--;)a=e[c]%I,o=e[c]/I|0,r=u*a+o*l,i=l*a+r%I*I+s,s=(i/n|0)+(r/I|0)+u*o,e[c]=i%n;return s&&(e=[s].concat(e)),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;i<n;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function n(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=+(e[n]<t[n]),e[n]=i*r+e[n]-t[n];for(;!e[0]&&e.length>1;e.splice(0,1));}return function(r,i,a,o,s){var c,l,u,d,f,p,m,h,g,_,y,b,x,C,w,T,E,D=r.s==i.s?1:-1,O=r.c,k=i.c;if(!O||!O[0]||!k||!k[0])return new v(!r.s||!i.s||(O?k&&O[0]==k[0]:!k)?NaN:O&&O[0]==0||!k?D*0:D/0);for(h=new v(D),g=h.c=[],l=r.e-i.e,D=a+l+1,s||(s=P,l=R(r.e/F)-R(i.e/F),D=D/F|0),u=0;k[u]==(O[u]||0);u++);if(k[u]>(O[u]||0)&&l--,D<0)g.push(1),d=!0;else{for(C=O.length,T=k.length,u=0,D+=2,f=M(s/(k[0]+1)),f>1&&(k=e(k,f,s),O=e(O,f,s),T=k.length,C=O.length),x=T,_=O.slice(0,T),y=_.length;y<T;_[y++]=0);E=k.slice(),E=[0].concat(E),w=k[0],k[1]>=s/2&&w++;do{if(f=0,c=t(k,_,T,y),c<0){if(b=_[0],T!=y&&(b=b*s+(_[1]||0)),f=M(b/w),f>1)for(f>=s&&(f=s-1),p=e(k,f,s),m=p.length,y=_.length;t(p,_,m,y)==1;)f--,n(p,T<m?E:k,m,s),m=p.length,c=1;else f==0&&(c=f=1),p=k.slice(),m=p.length;if(m<y&&(p=[0].concat(p)),n(_,p,y,s),y=_.length,c==-1)for(;t(k,_,T,y)<1;)f++,n(_,T<y?E:k,y,s),y=_.length}else c===0&&(f++,_=[0]);g[u++]=f,_[0]?_[y++]=O[x]||0:(_=[O[x]],y=1)}while((x++<C||_[0]!=null)&&D--);d=_[0]!=null,g[0]||g.splice(0,1)}if(s==P){for(u=1,D=g[0];D>=10;D/=10,u++);S(h,a+(h.e=u+l*F-1)+1,o,d)}else h.e=l,h.r=+d;return h}})();function y(e,t,n,r){var i,a,o,u,d;if(n==null?n=s:V(n,0,8),!e.c)return e.toString();if(i=e.c[0],o=e.e,t==null)d=z(e.c),d=r==1||r==2&&(o<=c||o>=l)?qe(d,o):H(d,o,`0`);else if(e=S(new v(e),t,n),a=e.e,d=z(e.c),u=d.length,r==1||r==2&&(t<=a||a<=c)){for(;u<t;d+=`0`,u++);d=qe(d,a)}else if(t-=o+(r===2&&a>o),d=H(d,a,`0`),a+1>u){if(--t>0)for(d+=`.`;t--;d+=`0`);}else if(t+=a-u,t>0)for(a+1==u&&(d+=`.`);t--;d+=`0`);return e.s<0&&i?`-`+d:d}function b(e,t){for(var n,r,i=1,a=new v(e[0]);i<e.length;i++)r=new v(e[i]),(!r.s||(n=B(a,r))===t||n===0&&a.s===t)&&(a=r);return a}function x(e,t,n){for(var r=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,r++);return(n=r+n*F-1)>d?e.c=e.e=null:n<u?e.c=[e.e=0]:(e.e=n,e.c=t),e}r=(function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,n=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(a,o,s,c){var l,u=s?o:o.replace(i,``);if(r.test(u))a.s=isNaN(u)?null:u<0?-1:1;else{if(!s&&(u=u.replace(e,function(e,t,n){return l=(n=n.toLowerCase())==`x`?16:n==`b`?2:8,!c||c==l?t:e}),c&&(l=c,u=u.replace(t,`$1`).replace(n,`0.$1`)),o!=u))return new v(u,l);if(v.DEBUG)throw Error(N+`Not a`+(c?` base `+c:``)+` number: `+o);a.s=null}a.c=a.e=null}})();function S(e,t,n,r){var i,a,o,s,c,l,f,p=e.c,m=We;if(p){out:{for(i=1,s=p[0];s>=10;s/=10,i++);if(a=t-i,a<0)a+=F,o=t,c=p[l=0],f=M(c/m[i-o-1]%10);else if(l=Ve((a+1)/F),l>=p.length){if(r){for(;p.length<=l;p.push(0));c=f=0,i=1,a%=F,o=a-F+1}else break out}else{for(c=s=p[l],i=1;s>=10;s/=10,i++);a%=F,o=a-F+i,f=o<0?0:M(c/m[i-o-1]%10)}if(r=r||t<0||p[l+1]!=null||(o<0?c:c%m[i-o-1]),r=n<4?(f||r)&&(n==0||n==(e.s<0?3:2)):f>5||f==5&&(n==4||r||n==6&&(a>0?o>0?c/m[i-o]:0:p[l-1])%10&1||n==(e.s<0?8:7)),t<1||!p[0])return p.length=0,r?(t-=e.e+1,p[0]=m[(F-t%F)%F],e.e=-t||0):p[0]=e.e=0,e;if(a==0?(p.length=l,s=1,l--):(p.length=l+1,s=m[F-a],p[l]=o>0?M(c/m[i-o]%m[o])*s:0),r)for(;;)if(l==0){for(a=1,o=p[0];o>=10;o/=10,a++);for(o=p[0]+=s,s=1;o>=10;o/=10,s++);a!=s&&(e.e++,p[0]==P&&(p[0]=1));break}else{if(p[l]+=s,p[l]!=P)break;p[l--]=0,s=1}for(a=p.length;p[--a]===0;p.pop());}e.e>d?e.c=e.e=null:e.e<u&&(e.c=[e.e=0])}return e}function C(e){var t,n=e.e;return n===null?e.toString():(t=z(e.c),t=n<=c||n>=l?qe(t,n):H(t,n,`0`),e.s<0?`-`+t:t)}return i.absoluteValue=i.abs=function(){var e=new v(this);return e.s<0&&(e.s=1),e},i.comparedTo=function(e,t){return B(this,new v(e,t))},i.decimalPlaces=i.dp=function(e,t){var n,r,i,a=this;if(e!=null)return V(e,0,L),t==null?t=s:V(t,0,8),S(new v(a),e+a.e+1,t);if(!(n=a.c))return null;if(r=((i=n.length-1)-R(this.e/F))*F,i=n[i])for(;i%10==0;i/=10,r--);return r<0&&(r=0),r},i.dividedBy=i.div=function(e,n){return t(this,new v(e,n),o,s)},i.dividedToIntegerBy=i.idiv=function(e,n){return t(this,new v(e,n),0,1)},i.exponentiatedBy=i.pow=function(e,t){var n,r,i,o,c,l,u,d,f,p=this;if(e=new v(e),e.c&&!e.isInteger())throw Error(N+`Exponent not an integer: `+C(e));if(t!=null&&(t=new v(t)),l=e.e>14,!p.c||!p.c[0]||p.c[0]==1&&!p.e&&p.c.length==1||!e.c||!e.c[0])return f=new v((+C(p))**(l?e.s*(2-Ke(e)):+C(e))),t?f.mod(t):f;if(u=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new v(NaN);r=!u&&p.isInteger()&&t.isInteger(),r&&(p=p.mod(t))}else if(e.e>9&&(p.e>0||p.e<-1||(p.e==0?p.c[0]>1||l&&p.c[1]>=24e7:p.c[0]<8e13||l&&p.c[0]<=9999975e7)))return o=p.s<0&&Ke(e)?-0:0,p.e>-1&&(o=1/o),new v(u?1/o:o);else m&&(o=Ve(m/F+2));for(l?(n=new v(.5),u&&(e.s=1),d=Ke(e)):(i=Math.abs(+C(e)),d=i%2),f=new v(a);;){if(d){if(f=f.times(p),!f.c)break;o?f.c.length>o&&(f.c.length=o):r&&(f=f.mod(t))}if(i){if(i=M(i/2),i===0)break;d=i%2}else if(e=e.times(n),S(e,e.e+1,1),e.e>14)d=Ke(e);else{if(i=+C(e),i===0)break;d=i%2}p=p.times(p),o?p.c&&p.c.length>o&&(p.c.length=o):r&&(p=p.mod(t))}return r?f:(u&&(f=a.div(f)),t?f.mod(t):o?S(f,m,s,c):f)},i.integerValue=function(e){var t=new v(this);return e==null?e=s:V(e,0,8),S(t,t.e+1,e)},i.isEqualTo=i.eq=function(e,t){return B(this,new v(e,t))===0},i.isFinite=function(){return!!this.c},i.isGreaterThan=i.gt=function(e,t){return B(this,new v(e,t))>0},i.isGreaterThanOrEqualTo=i.gte=function(e,t){return(t=B(this,new v(e,t)))===1||t===0},i.isInteger=function(){return!!this.c&&R(this.e/F)>this.c.length-2},i.isLessThan=i.lt=function(e,t){return B(this,new v(e,t))<0},i.isLessThanOrEqualTo=i.lte=function(e,t){return(t=B(this,new v(e,t)))===-1||t===0},i.isNaN=function(){return!this.s},i.isNegative=function(){return this.s<0},i.isPositive=function(){return this.s>0},i.isZero=function(){return!!this.c&&this.c[0]==0},i.minus=function(e,t){var n,r,i,a,o=this,c=o.s;if(e=new v(e,t),t=e.s,!c||!t)return new v(NaN);if(c!=t)return e.s=-t,o.plus(e);var l=o.e/F,u=e.e/F,d=o.c,f=e.c;if(!l||!u){if(!d||!f)return d?(e.s=-t,e):new v(f?o:NaN);if(!d[0]||!f[0])return f[0]?(e.s=-t,e):new v(d[0]?o:s==3?-0:0)}if(l=R(l),u=R(u),d=d.slice(),c=l-u){for((a=c<0)?(c=-c,i=d):(u=l,i=f),i.reverse(),t=c;t--;i.push(0));i.reverse()}else for(r=(a=(c=d.length)<(t=f.length))?c:t,c=t=0;t<r;t++)if(d[t]!=f[t]){a=d[t]<f[t];break}if(a&&(i=d,d=f,f=i,e.s=-e.s),t=(r=f.length)-(n=d.length),t>0)for(;t--;d[n++]=0);for(t=P-1;r>c;){if(d[--r]<f[r]){for(n=r;n&&!d[--n];d[n]=t);--d[n],d[r]+=P}d[r]-=f[r]}for(;d[0]==0;d.splice(0,1),--u);return d[0]?x(e,d,u):(e.s=s==3?-1:1,e.c=[e.e=0],e)},i.modulo=i.mod=function(e,n){var r,i,a=this;return e=new v(e,n),!a.c||!e.s||e.c&&!e.c[0]?new v(NaN):!e.c||a.c&&!a.c[0]?new v(a):(p==9?(i=e.s,e.s=1,r=t(a,e,0,3),e.s=i,r.s*=i):r=t(a,e,0,p),e=a.minus(r.times(e)),!e.c[0]&&p==1&&(e.s=a.s),e)},i.multipliedBy=i.times=function(e,t){var n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_=this,y=_.c,b=(e=new v(e,t)).c;if(!y||!b||!y[0]||!b[0])return!_.s||!e.s||y&&!y[0]&&!b||b&&!b[0]&&!y?e.c=e.e=e.s=null:(e.s*=_.s,!y||!b?e.c=e.e=null:(e.c=[0],e.e=0)),e;for(r=R(_.e/F)+R(e.e/F),e.s*=_.s,c=y.length,d=b.length,c<d&&(m=y,y=b,b=m,i=c,c=d,d=i),i=c+d,m=[];i--;m.push(0));for(h=P,g=I,i=d;--i>=0;){for(n=0,f=b[i]%g,p=b[i]/g|0,o=c,a=i+o;a>i;)l=y[--o]%g,u=y[o]/g|0,s=p*l+u*f,l=f*l+s%g*g+m[a]+n,n=(l/h|0)+(s/g|0)+p*u,m[a--]=l%h;m[a]=n}return n?++r:m.splice(0,1),x(e,m,r)},i.negated=function(){var e=new v(this);return e.s=-e.s||null,e},i.plus=function(e,t){var n,r=this,i=r.s;if(e=new v(e,t),t=e.s,!i||!t)return new v(NaN);if(i!=t)return e.s=-t,r.minus(e);var a=r.e/F,o=e.e/F,s=r.c,c=e.c;if(!a||!o){if(!s||!c)return new v(i/0);if(!s[0]||!c[0])return c[0]?e:new v(s[0]?r:i*0)}if(a=R(a),o=R(o),s=s.slice(),i=a-o){for(i>0?(o=a,n=c):(i=-i,n=s),n.reverse();i--;n.push(0));n.reverse()}for(i=s.length,t=c.length,i-t<0&&(n=c,c=s,s=n,t=i),i=0;t;)i=(s[--t]=s[t]+c[t]+i)/P|0,s[t]=P===s[t]?0:s[t]%P;return i&&(s=[i].concat(s),++o),x(e,s,o)},i.precision=i.sd=function(e,t){var n,r,i,a=this;if(e!=null&&e!==!!e)return V(e,1,L),t==null?t=s:V(t,0,8),S(new v(a),e,t);if(!(n=a.c))return null;if(i=n.length-1,r=i*F+1,i=n[i]){for(;i%10==0;i/=10,r--);for(i=n[0];i>=10;i/=10,r++);}return e&&a.e+1>r&&(r=a.e+1),r},i.shiftedBy=function(e){return V(e,-Ue,Ue),this.times(`1e`+e)},i.squareRoot=i.sqrt=function(){var e,n,r,i,a,c=this,l=c.c,u=c.s,d=c.e,f=o+4,p=new v(`0.5`);if(u!==1||!l||!l[0])return new v(!u||u<0&&(!l||l[0])?NaN:l?c:1/0);if(u=Math.sqrt(+C(c)),u==0||u==1/0?(n=z(l),(n.length+d)%2==0&&(n+=`0`),u=Math.sqrt(+n),d=R((d+1)/2)-(d<0||d%2),u==1/0?n=`5e`+d:(n=u.toExponential(),n=n.slice(0,n.indexOf(`e`)+1)+d),r=new v(n)):r=new v(u+``),r.c[0]){for(d=r.e,u=d+f,u<3&&(u=0);;)if(a=r,r=p.times(a.plus(t(c,a,f,1))),z(a.c).slice(0,u)===(n=z(r.c)).slice(0,u)){if(r.e<d&&--u,n=n.slice(u-3,u+1),n==`9999`||!i&&n==`4999`){if(!i&&(S(a,a.e+o+2,0),a.times(a).eq(c))){r=a;break}f+=4,u+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)==`5`)&&(S(r,r.e+o+2,1),e=!r.times(r).eq(c));break}}}return S(r,r.e+o+1,s,e)},i.toExponential=function(e,t){return e!=null&&(V(e,0,L),e++),y(this,e,t,1)},i.toFixed=function(e,t){return e!=null&&(V(e,0,L),e=e+this.e+1),y(this,e,t)},i.toFormat=function(e,t,n){var r,i=this;if(n==null)e!=null&&t&&typeof t==`object`?(n=t,t=null):e&&typeof e==`object`?(n=e,e=t=null):n=h;else if(typeof n!=`object`)throw Error(N+`Argument not an object: `+n);if(r=i.toFixed(e,t),i.c){var a,o=r.split(`.`),s=+n.groupSize,c=+n.secondaryGroupSize,l=n.groupSeparator||``,u=o[0],d=o[1],f=i.s<0,p=f?u.slice(1):u,m=p.length;if(c&&(a=s,s=c,c=a,m-=a),s>0&&m>0){for(a=m%s||s,u=p.substr(0,a);a<m;a+=s)u+=l+p.substr(a,s);c>0&&(u+=l+p.slice(a)),f&&(u=`-`+u)}r=d?u+(n.decimalSeparator||``)+((c=+n.fractionGroupSize)?d.replace(RegExp(`\\d{`+c+`}\\B`,`g`),`$&`+(n.fractionGroupSeparator||``)):d):u}return(n.prefix||``)+r+(n.suffix||``)},i.toFraction=function(e){var n,r,i,o,c,l,u,f,p,m,h,g,_=this,y=_.c;if(e!=null&&(u=new v(e),!u.isInteger()&&(u.c||u.s!==1)||u.lt(a)))throw Error(N+`Argument `+(u.isInteger()?`out of range: `:`not an integer: `)+C(u));if(!y)return new v(_);for(n=new v(a),p=r=new v(a),i=f=new v(a),g=z(y),c=n.e=g.length-_.e-1,n.c[0]=We[(l=c%F)<0?F+l:l],e=!e||u.comparedTo(n)>0?c>0?n:p:u,l=d,d=1/0,u=new v(g),f.c[0]=0;m=t(u,n,0,1),o=r.plus(m.times(i)),o.comparedTo(e)!=1;)r=i,i=o,p=f.plus(m.times(o=p)),f=o,n=u.minus(m.times(o=n)),u=o;return o=t(e.minus(r),i,0,1),f=f.plus(o.times(p)),r=r.plus(o.times(i)),f.s=p.s=_.s,c*=2,h=t(p,i,c,s).minus(_).abs().comparedTo(t(f,r,c,s).minus(_).abs())<1?[p,i]:[f,r],d=l,h},i.toNumber=function(){return+C(this)},i.toPrecision=function(e,t){return e!=null&&V(e,1,L),y(this,e,t,2)},i.toString=function(e){var t,r=this,i=r.s,a=r.e;return a===null?i?(t=`Infinity`,i<0&&(t=`-`+t)):t=`NaN`:(e==null?t=a<=c||a>=l?qe(z(r.c),a):H(z(r.c),a,`0`):e===10&&_?(r=S(new v(r),o+a+1,s),t=H(z(r.c),r.e,`0`)):(V(e,2,g.length,`Base`),t=n(H(z(r.c),a,`0`),10,e,i,!0)),i<0&&r.c[0]&&(t=`-`+t)),t},i.valueOf=i.toJSON=function(){return C(this)},i._isBigNumber=!0,i[Symbol.toStringTag]=`BigNumber`,i[Symbol.for(`nodejs.util.inspect.custom`)]=i.valueOf,e!=null&&v.set(e),v}function R(e){var t=e|0;return e>0||e===t?t:t-1}function z(e){for(var t,n,r=1,i=e.length,a=e[0]+``;r<i;){for(t=e[r++]+``,n=F-t.length;n--;t=`0`+t);a+=t}for(i=a.length;a.charCodeAt(--i)===48;);return a.slice(0,i+1||1)}function B(e,t){var n,r,i=e.c,a=t.c,o=e.s,s=t.s,c=e.e,l=t.e;if(!o||!s)return null;if(n=i&&!i[0],r=a&&!a[0],n||r)return n?r?0:-s:o;if(o!=s)return o;if(n=o<0,r=c==l,!i||!a)return r?0:!i^n?1:-1;if(!r)return c>l^n?1:-1;for(s=(c=i.length)<(l=a.length)?c:l,o=0;o<s;o++)if(i[o]!=a[o])return i[o]>a[o]^n?1:-1;return c==l?0:c>l^n?1:-1}function V(e,t,n,r){if(e<t||e>n||e!==M(e))throw Error(N+(r||`Argument`)+(typeof e==`number`?e<t||e>n?` out of range: `:` not an integer: `:` not a primitive number: `)+String(e))}function Ke(e){var t=e.c.length-1;return R(e.e/F)==t&&e.c[t]%2!=0}function qe(e,t){return(e.length>1?e.charAt(0)+`.`+e.slice(1):e)+(t<0?`e`:`e+`)+t}function H(e,t,n){var r,i;if(t<0){for(i=n+`.`;++t;i+=n);e=i+e}else if(r=e.length,++t>r){for(i=n,t-=r;--t;i+=n);e+=i}else t<r&&(e=e.slice(0,t)+`.`+e.slice(t));return e}Ge(),typeof globalThis<`u`&&globalThis.crypto&&globalThis.crypto.getRandomValues,Array.from({length:26},(e,t)=>String.fromCharCode(t+97));var Je=e(n(((e,n)=>{(function(r,i){typeof t==`function`&&typeof e==`object`&&typeof n==`object`?n.exports=i():typeof define==`function`&&define.amd?define(function(){return i()}):r.pluralize=i()})(e,function(){var e=[],t=[],n={},r={},i={};function a(e){return typeof e==`string`?RegExp(`^`+e+`$`,`i`):e}function o(e,t){return e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase()}function s(e,t){return e.replace(/\$(\d{1,2})/g,function(e,n){return t[n]||``})}function c(e,t){return e.replace(t[0],function(n,r){var i=s(t[1],arguments);return o(n===``?e[r-1]:n,i)})}function l(e,t,r){if(!e.length||n.hasOwnProperty(e))return t;for(var i=r.length;i--;){var a=r[i];if(a[0].test(t))return c(t,a)}return t}function u(e,t,n){return function(r){var i=r.toLowerCase();return t.hasOwnProperty(i)?o(r,i):e.hasOwnProperty(i)?o(r,e[i]):l(i,r,n)}}function d(e,t,n,r){return function(r){var i=r.toLowerCase();return t.hasOwnProperty(i)?!0:!e.hasOwnProperty(i)&&l(i,i,n)===i}}function f(e,t,n){var r=t===1?f.singular(e):f.plural(e);return(n?t+` `:``)+r}return f.plural=u(i,r,e),f.isPlural=d(i,r,e),f.singular=u(r,i,t),f.isSingular=d(r,i,t),f.addPluralRule=function(t,n){e.push([a(t),n])},f.addSingularRule=function(e,n){t.push([a(e),n])},f.addUncountableRule=function(e){if(typeof e==`string`){n[e.toLowerCase()]=!0;return}f.addPluralRule(e,`$0`),f.addSingularRule(e,`$0`)},f.addIrregularRule=function(e,t){t=t.toLowerCase(),e=e.toLowerCase(),i[e]=t,r[t]=e},[[`I`,`we`],[`me`,`us`],[`he`,`they`],[`she`,`they`],[`them`,`them`],[`myself`,`ourselves`],[`yourself`,`yourselves`],[`itself`,`themselves`],[`herself`,`themselves`],[`himself`,`themselves`],[`themself`,`themselves`],[`is`,`are`],[`was`,`were`],[`has`,`have`],[`this`,`these`],[`that`,`those`],[`echo`,`echoes`],[`dingo`,`dingoes`],[`volcano`,`volcanoes`],[`tornado`,`tornadoes`],[`torpedo`,`torpedoes`],[`genus`,`genera`],[`viscus`,`viscera`],[`stigma`,`stigmata`],[`stoma`,`stomata`],[`dogma`,`dogmata`],[`lemma`,`lemmata`],[`schema`,`schemata`],[`anathema`,`anathemata`],[`ox`,`oxen`],[`axe`,`axes`],[`die`,`dice`],[`yes`,`yeses`],[`foot`,`feet`],[`eave`,`eaves`],[`goose`,`geese`],[`tooth`,`teeth`],[`quiz`,`quizzes`],[`human`,`humans`],[`proof`,`proofs`],[`carve`,`carves`],[`valve`,`valves`],[`looey`,`looies`],[`thief`,`thieves`],[`groove`,`grooves`],[`pickaxe`,`pickaxes`],[`passerby`,`passersby`]].forEach(function(e){return f.addIrregularRule(e[0],e[1])}),[[/s?$/i,`s`],[/[^\u0000-\u007F]$/i,`$0`],[/([^aeiou]ese)$/i,`$1`],[/(ax|test)is$/i,`$1es`],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,`$1es`],[/(e[mn]u)s?$/i,`$1s`],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,`$1`],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,`$1i`],[/(alumn|alg|vertebr)(?:a|ae)$/i,`$1ae`],[/(seraph|cherub)(?:im)?$/i,`$1im`],[/(her|at|gr)o$/i,`$1oes`],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,`$1a`],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,`$1a`],[/sis$/i,`ses`],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,`$1$2ves`],[/([^aeiouy]|qu)y$/i,`$1ies`],[/([^ch][ieo][ln])ey$/i,`$1ies`],[/(x|ch|ss|sh|zz)$/i,`$1es`],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,`$1ices`],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,`$1ice`],[/(pe)(?:rson|ople)$/i,`$1ople`],[/(child)(?:ren)?$/i,`$1ren`],[/eaux$/i,`$0`],[/m[ae]n$/i,`men`],[`thou`,`you`]].forEach(function(e){return f.addPluralRule(e[0],e[1])}),[[/s$/i,``],[/(ss)$/i,`$1`],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,`$1fe`],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,`$1f`],[/ies$/i,`y`],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,`$1ie`],[/\b(mon|smil)ies$/i,`$1ey`],[/\b((?:tit)?m|l)ice$/i,`$1ouse`],[/(seraph|cherub)im$/i,`$1`],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,`$1`],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,`$1sis`],[/(movie|twelve|abuse|e[mn]u)s$/i,`$1`],[/(test)(?:is|es)$/i,`$1is`],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,`$1us`],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,`$1um`],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,`$1on`],[/(alumn|alg|vertebr)ae$/i,`$1a`],[/(cod|mur|sil|vert|ind)ices$/i,`$1ex`],[/(matr|append)ices$/i,`$1ix`],[/(pe)(rson|ople)$/i,`$1rson`],[/(child)ren$/i,`$1`],[/(eau)x?$/i,`$1`],[/men$/i,`man`]].forEach(function(e){return f.addSingularRule(e[0],e[1])}),[`adulthood`,`advice`,`agenda`,`aid`,`aircraft`,`alcohol`,`ammo`,`analytics`,`anime`,`athletics`,`audio`,`bison`,`blood`,`bream`,`buffalo`,`butter`,`carp`,`cash`,`chassis`,`chess`,`clothing`,`cod`,`commerce`,`cooperation`,`corps`,`debris`,`diabetes`,`digestion`,`elk`,`energy`,`equipment`,`excretion`,`expertise`,`firmware`,`flounder`,`fun`,`gallows`,`garbage`,`graffiti`,`hardware`,`headquarters`,`health`,`herpes`,`highjinks`,`homework`,`housework`,`information`,`jeans`,`justice`,`kudos`,`labour`,`literature`,`machinery`,`mackerel`,`mail`,`media`,`mews`,`moose`,`music`,`mud`,`manga`,`news`,`only`,`personnel`,`pike`,`plankton`,`pliers`,`police`,`pollution`,`premises`,`rain`,`research`,`rice`,`salmon`,`scissors`,`series`,`sewage`,`shambles`,`shrimp`,`software`,`species`,`staff`,`swine`,`tennis`,`traffic`,`transportation`,`trout`,`tuna`,`wealth`,`welfare`,`whiting`,`wildebeest`,`wildlife`,`you`,/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(f.addUncountableRule),f})}))(),1);function Ye(e){return e.toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase())}function Xe(e){return e.replace(/([A-Z])/g,`_$1`).toUpperCase().replace(/^_/,``)}function Ze(e,t){switch(t){case`number`:{let t=Number(e);if(Number.isNaN(t))throw Error(`Cannot convert "${e}" to number: result is NaN`);return t}case`boolean`:return e.toLowerCase()===`true`||e===`1`||e.toLowerCase()===`yes`;case`json`:try{return JSON.parse(e)}catch(t){throw Error(`Cannot parse "${e}" as JSON: ${t instanceof Error?t.message:`Unknown error`}`)}default:return e}}function Qe(e={},t={}){let{prefix:n=`HAVE`,packageName:r,schema:i={},transform:a={},allowUnknown:o=!0}=t,s=r&&n?`${n}_${r.toUpperCase()}_`:n?`${n}_`:``,c={...e},l={},u=o?new Set([...Object.keys(i),...Object.keys(l).filter(e=>s&&e.startsWith(s)).map(e=>Ye(e.slice(s.length)))]):new Set(Object.keys(i));for(let t of u){if(t in e)continue;let n=s?s+Xe(t):t,r=l[n];if(r===void 0)continue;let o=a[t];if(o){try{c[t]=o(r)}catch(e){console.warn(`Failed to transform ${n}="${r}":`,e instanceof Error?e.message:e)}continue}let u=i[t];if(u){try{c[t]=Ze(r,u)}catch(e){console.warn(`Failed to convert ${n}="${r}" to ${u}:`,e instanceof Error?e.message:e)}continue}c[t]=r}return c}new class{debug(e,t){t?console.debug(e,t):console.debug(e)}info(e,t){t?console.info(e,t):console.info(e)}warn(e,t){t?console.warn(e,t):console.warn(e)}error(e,t){t?console.error(e,t):console.error(e)}};var $e=365.2425,et=6048e5,tt=6e4,nt=36e5,rt=1e3,it=86400;it*7,it*$e/12*3;var at=Symbol.for(`constructDateFrom`);function U(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&at in e?e[at](t):e instanceof Date?new e.constructor(t):new Date(t)}function W(e,t){return U(t||e,e)}function ot(e,t,n){let r=W(e,n?.in);return isNaN(t)?U(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}var st={};function ct(){return st}function lt(e){let t=W(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-n}function G(e,t){let n=ct(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=W(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function K(e,t){return G(e,{...t,weekStartsOn:1})}function ut(e,t){let n=W(e,t?.in),r=n.getFullYear(),i=U(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=K(i),o=U(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=K(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function dt(e,t){let n=ut(e,t),r=U(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),K(r)}function ft(e,t){let n=W(e,t?.in),r=+K(n)-dt(n);return Math.round(r/et)+1}function pt(e,t){let n=W(e,t?.in),r=n.getFullYear(),i=ct(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=U(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=G(o,t),c=U(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=G(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function mt(e,t){let n=ct(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=pt(e,t),a=U(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),G(a,t)}function ht(e,t){let n=W(e,t?.in),r=+G(n,t)-mt(n,t);return Math.round(r/et)+1}var gt=class{subPriority=0;validate(e,t){return!0}},_t=class extends gt{constructor(e,t,n,r,i){super(),this.value=e,this.validateValue=t,this.setValue=n,this.priority=r,i&&(this.subPriority=i)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,n){return this.setValue(e,t,this.value,n)}},q=class{run(e,t,n,r){let i=this.parse(e,t,n,r);return i?{setter:new _t(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(e,t,n){return!0}},vt=class extends q{priority=140;parse(e,t,n){switch(t){case`G`:case`GG`:case`GGG`:return n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`});case`GGGGG`:return n.era(e,{width:`narrow`});default:return n.era(e,{width:`wide`})||n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`})}}set(e,t,n){return t.era=n,e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`R`,`u`,`t`,`T`]},J={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Y={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function X(e,t){return e&&{value:t(e.value),rest:e.rest}}function Z(e,t){let n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function Q(e,t){let n=t.match(e);if(!n)return null;if(n[0]===`Z`)return{value:0,rest:t.slice(1)};let r=n[1]===`+`?1:-1,i=n[2]?parseInt(n[2],10):0,a=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:r*(i*nt+a*tt+o*rt),rest:t.slice(n[0].length)}}function yt(e){return Z(J.anyDigitsSigned,e)}function $(e,t){switch(e){case 1:return Z(J.singleDigit,t);case 2:return Z(J.twoDigits,t);case 3:return Z(J.threeDigits,t);case 4:return Z(J.fourDigits,t);default:return Z(RegExp(`^\\d{1,`+e+`}`),t)}}function bt(e,t){switch(e){case 1:return Z(J.singleDigitSigned,t);case 2:return Z(J.twoDigitsSigned,t);case 3:return Z(J.threeDigitsSigned,t);case 4:return Z(J.fourDigitsSigned,t);default:return Z(RegExp(`^-?\\d{1,`+e+`}`),t)}}function xt(e){switch(e){case`morning`:return 4;case`evening`:return 17;case`pm`:case`noon`:case`afternoon`:return 12;default:return 0}}function St(e,t){let n=t>0,r=n?t:1-t,i;if(r<=50)i=e||100;else{let t=r+50,n=Math.trunc(t/100)*100,a=e>=t%100;i=e+n-(a?100:0)}return n?i:1-i}function Ct(e){return e%400==0||e%4==0&&e%100!=0}var wt=class extends q{priority=130;incompatibleTokens=[`Y`,`R`,`u`,`w`,`I`,`i`,`e`,`c`,`t`,`T`];parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`yy`});switch(t){case`y`:return X($(4,e),r);case`yo`:return X(n.ordinalNumber(e,{unit:`year`}),r);default:return X($(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n){let r=e.getFullYear();if(n.isTwoDigitYear){let t=St(n.year,r);return e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}let i=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(i,0,1),e.setHours(0,0,0,0),e}},Tt=class extends q{priority=130;parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`YY`});switch(t){case`Y`:return X($(4,e),r);case`Yo`:return X(n.ordinalNumber(e,{unit:`year`}),r);default:return X($(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n,r){let i=pt(e,r);if(n.isTwoDigitYear){let t=St(n.year,i);return e.setFullYear(t,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),G(e,r)}let a=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(a,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),G(e,r)}incompatibleTokens=[`y`,`R`,`u`,`Q`,`q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]},Et=class extends q{priority=130;parse(e,t){return bt(t===`R`?4:t.length,e)}set(e,t,n){let r=U(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),K(r)}incompatibleTokens=[`G`,`y`,`Y`,`u`,`Q`,`q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},Dt=class extends q{priority=130;parse(e,t){return bt(t===`u`?4:t.length,e)}set(e,t,n){return e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`G`,`y`,`Y`,`R`,`w`,`I`,`i`,`e`,`c`,`t`,`T`]},Ot=class extends q{priority=120;parse(e,t,n){switch(t){case`Q`:case`QQ`:return $(t.length,e);case`Qo`:return n.ordinalNumber(e,{unit:`quarter`});case`QQQ`:return n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`});case`QQQQQ`:return n.quarter(e,{width:`narrow`,context:`formatting`});default:return n.quarter(e,{width:`wide`,context:`formatting`})||n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},kt=class extends q{priority=120;parse(e,t,n){switch(t){case`q`:case`qq`:return $(t.length,e);case`qo`:return n.ordinalNumber(e,{unit:`quarter`});case`qqq`:return n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`});case`qqqqq`:return n.quarter(e,{width:`narrow`,context:`standalone`});default:return n.quarter(e,{width:`wide`,context:`standalone`})||n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`Q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},At=class extends q{incompatibleTokens=[`Y`,`R`,`q`,`Q`,`L`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`];priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`M`:return X(Z(J.month,e),r);case`MM`:return X($(2,e),r);case`Mo`:return X(n.ordinalNumber(e,{unit:`month`}),r);case`MMM`:return n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`});case`MMMMM`:return n.month(e,{width:`narrow`,context:`formatting`});default:return n.month(e,{width:`wide`,context:`formatting`})||n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}},jt=class extends q{priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`L`:return X(Z(J.month,e),r);case`LL`:return X($(2,e),r);case`Lo`:return X(n.ordinalNumber(e,{unit:`month`}),r);case`LLL`:return n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`});case`LLLLL`:return n.month(e,{width:`narrow`,context:`standalone`});default:return n.month(e,{width:`wide`,context:`standalone`})||n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]};function Mt(e,t,n){let r=W(e,n?.in),i=ht(r,n)-t;return r.setDate(r.getDate()-i*7),W(r,n?.in)}var Nt=class extends q{priority=100;parse(e,t,n){switch(t){case`w`:return Z(J.week,e);case`wo`:return n.ordinalNumber(e,{unit:`week`});default:return $(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n,r){return G(Mt(e,n,r),r)}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]};function Pt(e,t,n){let r=W(e,n?.in),i=ft(r,n)-t;return r.setDate(r.getDate()-i*7),r}var Ft=class extends q{priority=100;parse(e,t,n){switch(t){case`I`:return Z(J.week,e);case`Io`:return n.ordinalNumber(e,{unit:`week`});default:return $(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n){return K(Pt(e,n))}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},It=[31,28,31,30,31,30,31,31,30,31,30,31],Lt=[31,29,31,30,31,30,31,31,30,31,30,31],Rt=class extends q{priority=90;subPriority=1;parse(e,t,n){switch(t){case`d`:return Z(J.date,e);case`do`:return n.ordinalNumber(e,{unit:`date`});default:return $(t.length,e)}}validate(e,t){let n=Ct(e.getFullYear()),r=e.getMonth();return n?t>=1&&t<=Lt[r]:t>=1&&t<=It[r]}set(e,t,n){return e.setDate(n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]},zt=class extends q{priority=90;subpriority=1;parse(e,t,n){switch(t){case`D`:case`DD`:return Z(J.dayOfYear,e);case`Do`:return n.ordinalNumber(e,{unit:`date`});default:return $(t.length,e)}}validate(e,t){return Ct(e.getFullYear())?t>=1&&t<=366:t>=1&&t<=365}set(e,t,n){return e.setMonth(0,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`L`,`w`,`I`,`d`,`E`,`i`,`e`,`c`,`t`,`T`]};function Bt(e,t,n){let r=ct(),i=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=W(e,n?.in),o=a.getDay(),s=(t%7+7)%7,c=7-i;return ot(a,t<0||t>6?t-(o+c)%7:(s+c)%7-(o+c)%7,n)}var Vt=class extends q{priority=90;parse(e,t,n){switch(t){case`E`:case`EE`:case`EEE`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`EEEEE`:return n.day(e,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=Bt(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`D`,`i`,`e`,`c`,`t`,`T`]},Ht=class extends q{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`e`:case`ee`:return X($(t.length,e),i);case`eo`:return X(n.ordinalNumber(e,{unit:`day`}),i);case`eee`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`eeeee`:return n.day(e,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=Bt(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`c`,`t`,`T`]},Ut=class extends q{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`c`:case`cc`:return X($(t.length,e),i);case`co`:return X(n.ordinalNumber(e,{unit:`day`}),i);case`ccc`:return n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});case`ccccc`:return n.day(e,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});default:return n.day(e,{width:`wide`,context:`standalone`})||n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=Bt(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`e`,`t`,`T`]};function Wt(e,t){let n=W(e,t?.in).getDay();return n===0?7:n}function Gt(e,t,n){let r=W(e,n?.in);return ot(r,t-Wt(r,n),n)}var Kt=class extends q{priority=90;parse(e,t,n){let r=e=>e===0?7:e;switch(t){case`i`:case`ii`:return $(t.length,e);case`io`:return n.ordinalNumber(e,{unit:`day`});case`iii`:return X(n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiii`:return X(n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiiii`:return X(n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);default:return X(n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r)}}validate(e,t){return t>=1&&t<=7}set(e,t,n){return e=Gt(e,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`E`,`e`,`c`,`t`,`T`]},qt=class extends q{priority=80;parse(e,t,n){switch(t){case`a`:case`aa`:case`aaa`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`aaaaa`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(xt(n),0,0,0),e}incompatibleTokens=[`b`,`B`,`H`,`k`,`t`,`T`]},Jt=class extends q{priority=80;parse(e,t,n){switch(t){case`b`:case`bb`:case`bbb`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`bbbbb`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(xt(n),0,0,0),e}incompatibleTokens=[`a`,`B`,`H`,`k`,`t`,`T`]},Yt=class extends q{priority=80;parse(e,t,n){switch(t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`BBBBB`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(xt(n),0,0,0),e}incompatibleTokens=[`a`,`b`,`t`,`T`]},Xt=class extends q{priority=70;parse(e,t,n){switch(t){case`h`:return Z(J.hour12h,e);case`ho`:return n.ordinalNumber(e,{unit:`hour`});default:return $(t.length,e)}}validate(e,t){return t>=1&&t<=12}set(e,t,n){let r=e.getHours()>=12;return r&&n<12?e.setHours(n+12,0,0,0):!r&&n===12?e.setHours(0,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`H`,`K`,`k`,`t`,`T`]},Zt=class extends q{priority=70;parse(e,t,n){switch(t){case`H`:return Z(J.hour23h,e);case`Ho`:return n.ordinalNumber(e,{unit:`hour`});default:return $(t.length,e)}}validate(e,t){return t>=0&&t<=23}set(e,t,n){return e.setHours(n,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`K`,`k`,`t`,`T`]},Qt=class extends q{priority=70;parse(e,t,n){switch(t){case`K`:return Z(J.hour11h,e);case`Ko`:return n.ordinalNumber(e,{unit:`hour`});default:return $(t.length,e)}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.getHours()>=12&&n<12?e.setHours(n+12,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`h`,`H`,`k`,`t`,`T`]},$t=class extends q{priority=70;parse(e,t,n){switch(t){case`k`:return Z(J.hour24h,e);case`ko`:return n.ordinalNumber(e,{unit:`hour`});default:return $(t.length,e)}}validate(e,t){return t>=1&&t<=24}set(e,t,n){let r=n<=24?n%24:n;return e.setHours(r,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`H`,`K`,`t`,`T`]},en=class extends q{priority=60;parse(e,t,n){switch(t){case`m`:return Z(J.minute,e);case`mo`:return n.ordinalNumber(e,{unit:`minute`});default:return $(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setMinutes(n,0,0),e}incompatibleTokens=[`t`,`T`]},tn=class extends q{priority=50;parse(e,t,n){switch(t){case`s`:return Z(J.second,e);case`so`:return n.ordinalNumber(e,{unit:`second`});default:return $(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setSeconds(n,0),e}incompatibleTokens=[`t`,`T`]},nn=class extends q{priority=30;parse(e,t){return X($(t.length,e),e=>Math.trunc(e*10**(-t.length+3)))}set(e,t,n){return e.setMilliseconds(n),e}incompatibleTokens=[`t`,`T`]},rn=class extends q{priority=10;parse(e,t){switch(t){case`X`:return Q(Y.basicOptionalMinutes,e);case`XX`:return Q(Y.basic,e);case`XXXX`:return Q(Y.basicOptionalSeconds,e);case`XXXXX`:return Q(Y.extendedOptionalSeconds,e);default:return Q(Y.extended,e)}}set(e,t,n){return t.timestampIsSet?e:U(e,e.getTime()-lt(e)-n)}incompatibleTokens=[`t`,`T`,`x`]},an=class extends q{priority=10;parse(e,t){switch(t){case`x`:return Q(Y.basicOptionalMinutes,e);case`xx`:return Q(Y.basic,e);case`xxxx`:return Q(Y.basicOptionalSeconds,e);case`xxxxx`:return Q(Y.extendedOptionalSeconds,e);default:return Q(Y.extended,e)}}set(e,t,n){return t.timestampIsSet?e:U(e,e.getTime()-lt(e)-n)}incompatibleTokens=[`t`,`T`,`X`]},on=class extends q{priority=40;parse(e){return yt(e)}set(e,t,n){return[U(e,n*1e3),{timestampIsSet:!0}]}incompatibleTokens=`*`},sn=class extends q{priority=20;parse(e){return yt(e)}set(e,t,n){return[U(e,n),{timestampIsSet:!0}]}incompatibleTokens=`*`};new vt,new wt,new Tt,new Et,new Dt,new Ot,new kt,new At,new jt,new Nt,new Ft,new Rt,new zt,new Vt,new Ht,new Ut,new Kt,new qt,new Jt,new Yt,new Xt,new Zt,new Qt,new $t,new en,new tn,new nn,new rn,new an,new on,new sn,Je.default.singular,Je.default.isPlural,Je.default.isSingular;var cn=class e{level;static LEVELS=[`debug`,`info`,`warn`,`error`];constructor(e=`info`){this.level=e}shouldLog(t){let n=e.LEVELS.indexOf(this.level);return e.LEVELS.indexOf(t)>=n}formatContext(e){return!e||Object.keys(e).length===0?``:` ${JSON.stringify(e)}`}debug(e,t){this.shouldLog(`debug`)&&console.debug(`[DEBUG] ${e}${this.formatContext(t)}`)}info(e,t){this.shouldLog(`info`)&&console.info(`[INFO] ${e}${this.formatContext(t)}`)}warn(e,t){this.shouldLog(`warn`)&&console.warn(`[WARN] ${e}${this.formatContext(t)}`)}error(e,t){this.shouldLog(`error`)&&console.error(`[ERROR] ${e}${this.formatContext(t)}`)}},ln=class{debug(e,t){}info(e,t){}warn(e,t){}error(e,t){}};function un(e){return typeof e==`boolean`?e?new cn(Qe({},{packageName:`logger`,schema:{level:`string`}}).level||`info`):new ln:new cn(Qe(e,{packageName:`logger`,schema:{level:`string`}}).level||`info`)}var dn=`warn`,fn;function pn(){return fn||=typeof process<`u`?un({level:dn}):new cn(dn),fn}var mn={debug:(e,t)=>pn().debug(e,t),info:(e,t)=>pn().info(e,t),warn:(e,t)=>pn().warn(e,t),error:(e,t)=>pn().error(e,t)},hn=Symbol(`smrt-webmcp-bespoke-context`);function gn(e){x(hn,e)}var _n=Symbol(`smrt-webmcp-ui-context`);function vn(e){x(_n,e)}function yn(){return s(_n)??null}export{ne as _,Ee as a,he as c,pe as d,fe as f,k as g,ee as h,mn as i,_e as l,te as m,yn as n,we as o,oe as p,gn as r,be as s,vn as t,ge as u,re as v,ie as y};
@@ -0,0 +1,24 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./iET62IRm.js","./uBIymjUX.js","./BQxY8kkL.js"])))=>i.map(i=>d[i]);
2
+ import{$ as e,Mt as t,bt as n,ct as r,gt as i,nt as a,ot as o,vt as s}from"./vNEnXNLV.js";import{t as c}from"./uBIymjUX.js";import{F as l,lt as u}from"./DYuawOB3.js";import{n as d}from"./BqBuCJB_.js";import{n as f,r as p}from"./Cv2EcCr0.js";import{a as m,t as h}from"./BQxY8kkL.js";import{_ as g,a as _,c as v,g as y,h as b,l as x,n as S,o as C,p as w,u as T}from"./CFL0B6dk.js";import{b as E,c as D,o as O,r as ee,t as te}from"./Dh5fne6n.js";import{n as ne,t as re}from"./D7d5GssF.js";async function ie(e={}){let t=e.window??(typeof window<`u`?window:void 0),n=e.navigator??(typeof navigator<`u`?navigator:void 0);return!t||!(`SpeechRecognition`in t)&&!(`webkitSpeechRecognition`in t)?`missing`:n&&`brave`in n&&n.brave||/\bElectron\//.test(n?.userAgent??``)?`unreliable`:`works`}function ae(e){return new Worker(new URL(`../workers/local-speech.worker-DWbfmFUk.js`,import.meta.url).href,{name:e?.name})}var oe=2**28,se=16,ce=.95;function le(e){if(e===0)return 1;let t=Math.PI*e;return Math.sin(t)/t}function ue(e,t,n){for(let[e,r]of[[`fromRate`,t],[`toRate`,n]])if(!Number.isFinite(r)||r<=0)throw new m(`invalid_argument`,`${e} must be a positive finite number (got ${String(r)})`);let r=Math.floor(e.length*n/t);if(r>oe)throw new m(`invalid_argument`,`resampled output would be ${r} samples; the limit is ${oe}`);if(t===n)return e.slice();let i=new Float32Array(r),a=t/n,o=a>1?ce/a:1,s=se/o,c=e.length-1;for(let t=0;t<r;t+=1){let n=t*a,r=Math.max(0,Math.ceil(n-s)),l=Math.min(c,Math.floor(n+s)),u=0,d=0;for(let t=r;t<=l;t+=1){let r=t-n,i=.5+.5*Math.cos(Math.PI*r/s),a=o*le(o*r)*i;u+=a*e[t],d+=a}i[t]=d===0?0:u/d}return i}var k={silenceMs:800,minSpeechMs:150,preRollMs:300,maxUtteranceMs:3e4,sensitivity:.5,calibrateMs:300},de=.0015,fe=.003,pe=.006,me=.2,he=.02,ge=2e3,_e=250;function ve(e,t,n){return Math.min(n,Math.max(t,e))}function ye(e={}){let t=(e,t,n)=>typeof e==`number`&&Number.isFinite(e)?Math.max(n,e):t;return{silenceMs:t(e.silenceMs,k.silenceMs,20),minSpeechMs:t(e.minSpeechMs,k.minSpeechMs,0),preRollMs:t(e.preRollMs,k.preRollMs,0),maxUtteranceMs:t(e.maxUtteranceMs,k.maxUtteranceMs,1e3),sensitivity:ve(typeof e.sensitivity==`number`&&Number.isFinite(e.sensitivity)?e.sensitivity:k.sensitivity,0,1),calibrateMs:t(e.calibrateMs,k.calibrateMs,0)}}function be(e){let t=e.length;if(t===0)return 0;let n=0;for(let r=0;r<t;r++){let t=e[r];n+=t*t}return Math.sqrt(n/t)}function xe(e={}){let t=ye(e),n=6-4*t.sensitivity,r=.02-.015*t.sensitivity,i=fe,a=0,o=[],s=!1,c=0,l=0,u=0,d=()=>Math.max(i*n,r),f=()=>Math.max(d()*.6,i*1.5),p=()=>{s=!1,c=0,l=0,u=0};return{get speaking(){return s},get noiseFloor(){return i},get threshold(){return d()},push(e,n=20){let r=[],m=Number.isFinite(e)?Math.max(0,e):0,h=ve(m/(d()*3),0,1),g=a<t.calibrateMs;if(g&&(a+=n,!s)){o.push(m);let e=[...o].sort((e,t)=>e-t);i=ve(e[Math.min(e.length-1,Math.floor(e.length*me))]??fe,de,pe)}if(!s){if(m>d())c+=n,c>=t.minSpeechMs&&(s=!0,l=0,u=c,r.push({type:`start`,leadMs:t.preRollMs+c}),c=0);else if(g)c=0;else{c=0;let e=n/ge*(m<i?4:1);i=ve(i+(m-i)*Math.min(1,e),de,he)}return{events:r,level:h,speaking:s}}return u+=n,m>f()?l=0:l+=n,l>=t.silenceMs?(r.push({type:`end`,reason:`silence`,trailingSilenceMs:l}),p()):u>=t.maxUtteranceMs&&(r.push({type:`split`}),u=0,l=0),{events:r,level:h,speaking:s}},flush(){let e=[];return s&&e.push({type:`end`,reason:`flush`,trailingSilenceMs:l}),p(),e}}}function Se(e){let t=ye(e),n=xe(t),r=Math.max(1,Math.round(e.sampleRate*20/1e3)),i=r/e.sampleRate*1e3,a=Math.ceil((t.preRollMs+t.minSpeechMs)/i)+1,o=[],s=new Float32Array,c=null,l=!1,u=(t,n,r)=>{let a=Math.max(0,Math.floor((r-_e)/i)),o=t.slice(0,Math.max(1,t.length-a)),s=0;for(let e of o)s+=e.length;let c=new Float32Array(s),l=0;for(let e of o)c.set(e,l),l+=e.length;e.onUtterance({pcm:c,sampleRate:e.sampleRate,durationMs:s/e.sampleRate*1e3,reason:n})},d=t=>{t!==l&&(l=t,e.onSpeaking?.(t))},f=s=>{let l=n.push(be(s),i);e.onLevel?.(l.level),o.push(s),o.length>a&&o.shift(),c&&c.push(s);for(let e of l.events)if(e.type===`start`){c=[...o];let e=Math.ceil(t.preRollMs/i),n=Math.max(0,o.length-Math.ceil(t.minSpeechMs/i));for(let t=n;t<e;t++)c.unshift(new Float32Array(r))}else if(e.type===`end`){let t=c??[];c=null,o.length=0,t.length>0&&u(t,e.reason,e.trailingSilenceMs)}else if(e.type===`split`){let e=c??[];c=[],e.length>0&&u(e,`max`,0)}d(n.speaking)};return{get speaking(){return n.speaking},segmenter:n,push(e){let t=e;s.length>0&&(t=new Float32Array(s.length+e.length),t.set(s,0),t.set(e,s.length));let n=0;for(;n+r<=t.length;)f(t.slice(n,n+r)),n+=r;s=t.slice(n)},flush(){let t=n.flush();for(let e of t)e.type===`end`&&c&&c.length>0&&u(c,`flush`,e.trailingSilenceMs);c=null,o.length=0,s=new Float32Array,d(!1),e.onLevel?.(0)},discard(){n.flush(),c=null,o.length=0,s=new Float32Array,d(!1),e.onLevel?.(0)}}}var Ce=44,we=4294967295,Te=1;function Ee(e){let t=new Int16Array(e.length);for(let n=0;n<e.length;n+=1){let r=e[n];Number.isNaN(r)||(t[n]=Math.min(32767,Math.round((r>1?1:r<-1?-1:r)*32768)))}return t}function De(e,t){if(!Number.isInteger(e)||e<1||e*2>we)throw new m(`invalid_argument`,`${t} must be a positive integer sample rate (got ${String(e)})`)}function Oe(e,t,n){for(let r=0;r<n.length;r+=1)e.setUint8(t+r,n.charCodeAt(r))}function ke(e,t){De(t,`sampleRate`);let n=e.length*2;if(n+Ce-8>we)throw new m(`invalid_argument`,`too many samples for a single WAV (4 GiB limit)`);let r=e instanceof Int16Array?e:Ee(e),i=new Uint8Array(Ce+n),a=new DataView(i.buffer);Oe(a,0,`RIFF`),a.setUint32(4,36+n,!0),Oe(a,8,`WAVE`),Oe(a,12,`fmt `),a.setUint32(16,16,!0),a.setUint16(20,Te,!0),a.setUint16(22,1,!0),a.setUint32(24,t,!0),a.setUint32(28,t*2,!0),a.setUint16(32,2,!0),a.setUint16(34,16,!0),Oe(a,36,`data`),a.setUint32(40,n,!0);for(let e=0;e<r.length;e+=1)a.setInt16(Ce+e*2,r[e],!0);return i}var Ae=`hv-pcm-tap`,je=`
3
+ class HvPcmTap extends AudioWorkletProcessor {
4
+ process(inputs) {
5
+ const channels = inputs[0];
6
+ if (channels && channels.length > 0 && channels[0].length > 0) {
7
+ const frames = channels[0].length;
8
+ const mono = new Float32Array(frames);
9
+ for (let c = 0; c < channels.length; c += 1) {
10
+ const data = channels[c];
11
+ for (let i = 0; i < frames; i += 1) mono[i] += data[i];
12
+ }
13
+ if (channels.length > 1) {
14
+ for (let i = 0; i < frames; i += 1) mono[i] /= channels.length;
15
+ }
16
+ this.port.postMessage(mono, [mono.buffer]);
17
+ }
18
+ return true;
19
+ }
20
+ }
21
+ registerProcessor('${Ae}', HvPcmTap);
22
+ `;function Me(){return typeof AudioContext<`u`&&typeof AudioWorkletNode<`u`&&typeof Blob<`u`&&typeof URL<`u`&&typeof URL.createObjectURL==`function`}function Ne(e,t){let{sampleRate:n,maxDurationMs:r}=t;if(!Number.isInteger(n)||n<1)throw RangeError(`sampleRate must be a positive integer`);if(!Number.isFinite(r)||r<=0)throw RangeError(`maxDurationMs must be a positive number`);if(!Me())throw new h(`unsupported`,`PCM capture needs AudioContext, AudioWorkletNode and Blob URLs`);let i=new AudioContext,a=Math.ceil(r/1e3*i.sampleRate),o=[],s=0,c=!1,l=!1,u=!1,d=!1,f,p,m,g,_=e=>{if(d)return;let n=e.data;if(t.onSamples?.(n,i.sampleRate),t.retain===!1)return;let r=a-s;n.length>r&&(n=n.subarray(0,Math.max(0,r)),c=!0),n.length>0&&(o.push(n),s+=n.length),s>=a&&!l&&(l=!0,t.onLimit?.())},v=()=>{if(f!==void 0){let e=f;f=void 0;try{URL.revokeObjectURL(e)}catch{}}},y=()=>{if(g)return g;d=!0,v(),m&&(m.port.onmessage=null);try{p?.disconnect(),m?.disconnect()}catch{}return g=(async()=>{try{i.state!==`closed`&&await i.close()}catch{}})(),g},b=(async()=>{f=URL.createObjectURL(new Blob([je],{type:`text/javascript`}));try{await i.audioWorklet.addModule(f)}finally{v()}d||(p=i.createMediaStreamSource(e),m=new AudioWorkletNode(i,Ae,{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1]}),m.port.onmessage=_,p.connect(m),m.connect(i.destination),i.state===`suspended`&&await i.resume())})();b.catch(()=>void 0);let x;return{ready:b,stop(){return x??=(async()=>{try{await b}catch(e){throw await y(),new h(`setup_failed`,`PCM capture could not start`,e)}if(await y(),u)throw new h(`cancelled`,`PCM capture was cancelled`);let e=new Float32Array(s),t=0;for(let n of o.splice(0))e.set(n,t),t+=n.length;let r=ue(e,i.sampleRate,n);return{samples:r,wav:ke(r,n),truncated:c}})(),x},cancel(){u||(u=!0,o.length=0,y())}}}var Pe=16e3;function Fe(){return Me()&&typeof navigator<`u`&&typeof navigator.mediaDevices?.getUserMedia==`function`}var Ie=36e5;async function Le(e={}){let t=e.createCapture??Ne;if(!e.createCapture&&!Fe()&&!e.stream)throw new h(`unsupported`,`Hands-free capture needs the microphone API and Web Audio`);let n=!e.stream,r=e.stream??await navigator.mediaDevices.getUserMedia(e.constraints??{audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),i={speechstart:new Set,speechend:new Set,level:new Set},a=(e,t)=>{for(let n of[...i[e]])try{n(t)}catch{}},o,s=!1,c=!1,l=0,u=Math.max(0,e.resumeGuardMs??350),d=()=>{if(n)for(let e of r.getTracks())e.stop()},f;try{f=t(r,{sampleRate:Pe,maxDurationMs:Ie,retain:!1,onSamples:(t,n)=>{if(!s&&!c){if(l>0){l-=t.length/n*1e3;return}o??=Se({...e,sampleRate:n,onSpeaking:e=>{e&&a(`speechstart`,{})},onLevel:e=>a(`level`,{level:e}),onUtterance:e=>{let t=ue(e.pcm,e.sampleRate,Pe);a(`speechend`,{samples:t,sampleRate:Pe,durationMs:e.durationMs,reason:e.reason})}}),o.push(t)}}})}catch(e){throw d(),e}if(f.ready)try{await f.ready}catch(e){throw s=!0,f.cancel(),d(),new h(`setup_failed`,`Hands-free capture could not start`,e)}let p=async e=>{s||(e&&o?.flush(),s=!0,f.cancel(),d())};return{on(e,t){let n=i[e];return n.add(t),()=>{n.delete(t)}},get speaking(){return o?.speaking??!1},get suspended(){return c},suspend(){s||c||(c=!0,l=0,o?.discard(),a(`level`,{level:0}))},resume(){!s&&c&&(c=!1,l=u)},stop:()=>p(!0),cancel:()=>{p(!1)}}}var Re=e=>{let t=null,n=!1,r=!1,i=!1;return{async start(){let a=await Le({...e.vad,...e.constraints?{constraints:e.constraints}:{}});if(n||r){a.cancel();return}t=a,i&&a.suspend(),a.on(`speechstart`,()=>e.onSpeaking?.(!0)),a.on(`level`,({level:t})=>e.onLevel?.(t)),a.on(`speechend`,t=>{e.onSpeaking?.(!1),e.onUtterance({pcm:t.samples,sampleRate:t.sampleRate,durationMs:t.durationMs,reason:t.reason})})},suspend(){i=!0,t?.suspend(),e.onSpeaking?.(!1)},resume(){i=!1,t?.resume()},stop(){r=!0;let n=t;t=null,n?.stop().catch(t=>{e.onError?.(t instanceof Error?t:Error(String(t)))})},cancel(){n=!0,t?.cancel(),t=null}}};function ze(e){return p({model:e,createWorker:()=>new ae,loadSpeech:()=>c(()=>import(`./iET62IRm.js`),__vite__mapDeps([0,1,2]),import.meta.url)})}var Be=[`material`,`glass`,`studio`,`smrt`,`happyvertical`],Ve=`@happyvertical/smrt-commerce:`,He={currency:[`Order`,`PurchaseOrder`,`WholesaleOrder`,`Estimate`,`Invoice`,`Agreement`].map(e=>({model:`${Ve}${e}`,field:`currency`})),taxRate:[`InvoiceLineItem`,`ContractLineItem`].map(e=>({model:`${Ve}${e}`,field:`taxRate`})),pricesIncludeTax:[`Invoice`,`Contract`].map(e=>({model:`${Ve}${e}`,field:`lineAmountType`})),taxRounding:[`Invoice`,`Contract`].map(e=>({model:`${Ve}${e}`,field:`taxRoundingScope`})),paymentTerms:[...[`Order`,`WholesaleOrder`,`Estimate`,`Invoice`,`Agreement`].map(e=>({model:`${Ve}${e}`,field:`terms`})),{model:`${Ve}Customer`,field:`paymentTerms`}]},Ue={id:`more`,label:`More`},We=/^@[^/]+\/(?:smrt-)?([^:]+):(.+)$/;function Ge(e,t){let n=e.models.find(e=>e.id===t);if(n)return{packageId:n.packageId,name:n.name};let r=We.exec(t);return r?{packageId:r[1],name:r[2]}:{packageId:`unknown`,name:t}}var Ke=(e,t,n)=>`item:${e}:${t}${n?`:${n}`:``}`,qe=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase()),Je=(e,t)=>qe(Ge(e,t).name);function Ye(e,t){let n=new Map(e.recipes.map(e=>[e.id,e])),r=new Map;for(let i of[...t.recipes].sort()){let t=n.get(i);if(!t)continue;let a=t.section??{id:t.group?.id??t.id,label:t.group?.label??t.label},o=`section:${a.id}`,s=r.get(o)??{id:o,label:a.label,items:[]};for(let n of t.nav){let{packageId:t,name:r}=Ge(e,n.model),i=Ke(t,r,n.key);s.items.some(e=>e.id===i)||s.items.push({id:i,label:n.label})}r.set(o,s)}let i=[...r.values()].filter(e=>e.items.length>0),a=new Set(e.models.filter(e=>e.exposed!==!1).map(e=>e.id)),o=t.features.filter(e=>a.has(e));return o.length&&i.push({id:`section:${Ue.id}`,label:Ue.label,items:o.map(t=>{let{packageId:n,name:r}=Ge(e,t);return{id:Ke(n,r),label:qe(r)}})}),i}var Xe=(e,t)=>{if(!t?.length)return e;let n=e=>{let n=t.indexOf(e);return n<0?2**53-1:n};return[...e].sort((e,t)=>n(e.id)-n(t.id))};function Ze(e,t){let n=t.layout,r=Ye(e,t).map(e=>({id:e.id,label:e.label,defaultLabel:e.label,custom:!1,hidden:!1,items:e.items.map(e=>({id:e.id,label:e.label,defaultLabel:e.label,hidden:!1}))}));for(let e of n?.customSections??[])r.some(t=>t.id===e.id)||r.push({id:e.id,label:e.label,defaultLabel:e.label,custom:!0,hidden:!1,items:[]});for(let[e,t]of Object.entries(n?.moved??{})){let n=r.find(e=>e.id===t);if(n)for(let t of r){let r=t.items.findIndex(t=>t.id===e);r>=0&&t!==n&&n.items.push(...t.items.splice(r,1))}}let i=new Set(n?.hidden??[]);for(let e of r){let t=n?.sections?.[e.id]?.label?.trim();t&&!e.custom&&(e.label=t),e.hidden=i.has(e.id),e.items=Xe(e.items,n?.itemOrder?.[e.id]);for(let t of e.items){let e=n?.items?.[t.id]?.label?.trim();e&&(t.label=e),t.hidden=i.has(t.id)}}return Xe(r.filter(e=>e.custom||e.items.length>0),n?.sectionOrder)}var A=(e,t)=>e.models.find(e=>e.id===t),Qe=e=>{let t={...e};for(let e of[`hidden`,`customSections`,`sectionOrder`])t[e]?.length||delete t[e];for(let e of[`sections`,`items`,`itemOrder`,`moved`,`panels`,`placements`])t[e]&&Object.keys(t[e]).length===0&&delete t[e];return Object.keys(t).length>1?t:void 0};function $e(e,t,n){let r=e?structuredClone(e):{version:1},i=n.trim();if(t.custom)return i?(r.customSections=r.customSections?.map(e=>e.id===t.id?{...e,label:i}:e),Qe(r)):e;let a={...r.sections??{}},o={...a[t.id]??{}};return!i||i===t.defaultLabel?delete o.label:o.label=i,Object.keys(o).length?a[t.id]=o:delete a[t.id],r.sections=a,Qe(r)}function et(e,t,n){let r=e?structuredClone(e):{version:1},i=n?.trim()??``,a={...r.items??{}},o={...a[t.id]??{}};return!i||i===t.defaultLabel?delete o.label:o.label=i,Object.keys(o).length?a[t.id]=o:delete a[t.id],r.items=a,Qe(r)}function tt(e,t,n){let r=e?structuredClone(e):{version:1},i=(r.hidden??[]).filter(e=>e!==t);return r.hidden=n?[...i,t]:i,Qe(r)}var nt=`https://s-m-r-t.dev/schemas/cookbook/v1.json`,rt=new Set([`basic`,`advanced`,`hidden`]),it=new Set([`api`,`mcp`,`cli`]),at=new Set([`light`,`dark`,`system`]),ot={borderRadius:[`none`,`sm`,`md`,`lg`,`xl`,`full`],density:[`comfortable`,`touch`],contrast:[`auto`,`standard`,`more`]},st=new Set([`header.start`,`header.center`,`header.end`,`footer.start`,`footer.center`,`footer.end`,`leftSidebar.header`,`leftSidebar.footer`,`rightSidebar.header`,`rightSidebar.footer`]),j=e=>typeof e==`object`&&!!e&&!Array.isArray(e),M=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`),ct=(e,t)=>j(e)&&!Object.hasOwn(e,`__proto__`)&&Object.values(e).every(t),lt=(e,t,n,r,i)=>{e.push({severity:t,code:n,path:r,message:i})},N=(e,t,n,r)=>lt(e,`error`,t,n,r),P=(e,t,n,r)=>lt(e,`warning`,t,n,r);function ut(e,t,n){if(!j(e))return N(n,`invalid_type`,t,`${t} must be an object`);for(let r of[`objectRef`,`fieldName`])(typeof e[r]!=`string`||!e[r])&&N(n,`invalid_value`,`${t}.${r}`,`${t}.${r} must be a non-empty string`);e.scopeType!==`app`&&N(n,`invalid_value`,`${t}.scopeType`,`${t}.scopeType must be "app"`);for(let r of[`defaultValue`,`help`,`label`]){let i=e[r];i!=null&&typeof i!=`string`&&N(n,`invalid_type`,`${t}.${r}`,`${t}.${r} must be a string or null`)}let r=e.visibility;r!=null&&!(typeof r==`string`&&rt.has(r))&&N(n,`invalid_value`,`${t}.visibility`,`${t}.visibility must be basic, advanced or hidden`);let i=e.displayOrder;i!=null&&!(typeof i==`number`&&Number.isFinite(i))&&N(n,`invalid_value`,`${t}.displayOrder`,`${t}.displayOrder must be a finite number`),e.locked!=null&&typeof e.locked!=`boolean`&&N(n,`invalid_type`,`${t}.locked`,`${t}.locked must be a boolean`)}function dt(e,t){if(!j(e)||e.version!==1)return N(t,`invalid_value`,`layout`,`layout must be an object with version 1`);for(let n of[`sectionOrder`,`hidden`])e[n]!==void 0&&!M(e[n])&&N(t,`invalid_type`,`layout.${n}`,`layout.${n} must be a list of strings`);for(let n of[`itemOrder`,`moved`,`placements`]){let r=e[n];r!==void 0&&((n===`itemOrder`?ct(r,M):ct(r,e=>typeof e==`string`))||N(t,`invalid_type`,`layout.${n}`,n===`itemOrder`?`layout.itemOrder must map ids to lists of strings`:`layout.${n} must map ids to strings`))}if(j(e.placements))for(let[n,r]of Object.entries(e.placements))typeof r==`string`&&!st.has(r)&&N(t,`unknown_layout_slot`,`layout.placements.${n}`,`Unknown shell slot "${r}".`);for(let n of[`sections`,`items`,`panels`])e[n]!==void 0&&!ct(e[n],e=>j(e))&&N(t,`invalid_type`,`layout.${n}`,`layout.${n} must map ids to objects`);let n=e.customSections;n!==void 0&&!(Array.isArray(n)&&n.every(e=>j(e)&&typeof e.id==`string`&&typeof e.label==`string`))&&N(t,`invalid_type`,`layout.customSections`,`layout.customSections must be a list of { id, label }`)}function ft(e,t){if(!j(e))return N(t,`invalid_type`,`theme`,`theme must be an object`);e.preset!==void 0&&typeof e.preset!=`string`&&N(t,`invalid_type`,`theme.preset`,`theme.preset must be a string`),e.fontFamily!==void 0&&(typeof e.fontFamily!=`string`||!e.fontFamily)&&N(t,`invalid_value`,`theme.fontFamily`,`theme.fontFamily must be a non-empty string`),e.customCss!==void 0&&(typeof e.customCss==`string`?Array.from(e.customCss).length>65536&&N(t,`invalid_value`,`theme.customCss`,`theme.customCss must be at most 65,536 characters`):N(t,`invalid_type`,`theme.customCss`,`theme.customCss must be a string`)),e.colorScheme!==void 0&&!(typeof e.colorScheme==`string`&&at.has(e.colorScheme))&&N(t,`invalid_value`,`theme.colorScheme`,`theme.colorScheme must be light, dark or system`);for(let n of[`borderRadius`,`density`,`contrast`]){let r=ot[n],i=e[n];i!==void 0&&!(typeof i==`string`&&r.includes(i))&&N(t,`invalid_value`,`theme.${n}`,`theme.${n} must be one of ${r.join(`, `)}`)}let n=e.custom;n!==void 0&&(!j(n)||typeof n.primary!=`string`?N(t,`invalid_value`,`theme.custom`,`theme.custom must be an object with a string primary`):/^#[0-9a-fA-F]{6}$/.test(n.primary)?n.fontFamily!==void 0&&typeof n.fontFamily!=`string`&&N(t,`invalid_type`,`theme.custom.fontFamily`,`theme.custom.fontFamily must be a string`):N(t,`invalid_value`,`theme.custom.primary`,`theme.custom.primary must be a hex colour like #c2410c`))}var pt=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,95}$/,mt=/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/,ht=/^[a-z][a-z0-9-]{0,31}$/,gt=e=>e===null||typeof e==`string`||typeof e==`number`&&Number.isFinite(e)||typeof e==`boolean`;function _t(e,t,n){return j(e)?[typeof e.id==`string`&&mt.test(e.id),typeof e.type==`string`&&ht.test(e.type),typeof e.span==`number`&&Number.isInteger(e.span)&&e.span>=1&&e.span<=4,j(e.options)&&Object.values(e.options).every(gt),e.version===void 0||typeof e.version==`number`&&Number.isInteger(e.version)&&e.version>=1].every(Boolean)?e:(P(n,`malformed_overview_widget`,t,`${t} was dropped because it is not a valid overview widget`),null):(P(n,`malformed_overview_widget`,t,`${t} was dropped`),null)}function vt(e,t,n){return j(e)?(e.span===void 0||typeof e.span==`number`&&Number.isInteger(e.span)&&e.span>=1&&e.span<=4)&&(e.options===void 0||j(e.options)&&Object.values(e.options).every(gt))&&(e.version===void 0||typeof e.version==`number`&&Number.isInteger(e.version)&&e.version>=1)?e:(P(n,`malformed_overview_change`,t,`${t} was dropped because it is not a valid widget change`),null):(P(n,`malformed_overview_change`,t,`${t} was dropped`),null)}function yt(e,t,n){if(!j(e)||e.version!==1)return P(n,`malformed_overview`,t,`${t} was dropped because it must be an object with version 1`),null;let r={...e,version:1};for(let i of[`order`,`removed`])e[i]!==void 0&&!M(e[i])?(P(n,`malformed_overview_list`,`${t}.${i}`,`${t}.${i} was dropped because it must be a list of strings`),delete r[i]):e[i]!==void 0&&(r[i]=[...new Set(e[i])]);if(e.added!==void 0){if(!Array.isArray(e.added))P(n,`malformed_overview_widgets`,`${t}.added`,`${t}.added was dropped because it must be a list of widgets`),delete r.added;else{let i=e.added.flatMap((e,r)=>{let i=_t(e,`${t}.added[${r}]`,n);return i?[i]:[]});i.length?r.added=i:delete r.added}}if(e.changed!==void 0){if(!j(e.changed)||Object.hasOwn(e.changed,`__proto__`))P(n,`malformed_overview_changes`,`${t}.changed`,`${t}.changed was dropped because it must map widget ids to objects`),delete r.changed;else{let i={};for(let[r,a]of Object.entries(e.changed)){if(!mt.test(r)){P(n,`malformed_overview_change`,`${t}.changed.${r}`,`${t}.changed.${r} was dropped because its widget id is invalid`);continue}let e=vt(a,`${t}.changed.${r}`,n);e&&(i[r]=e)}Object.keys(i).length?r.changed=i:delete r.changed}}return r}function bt(e,t={}){let n=[];if(!j(e))return N(n,`invalid_type`,``,`expected a JSON object`),{ok:!1,errors:[`expected a JSON object`],diagnostics:n};let{$schema:r,version:i}=e;r!==void 0&&r!==`https://s-m-r-t.dev/schemas/cookbook/v1.json`&&r!==`https://s-m-r-t.dev/schemas/blueprint/v1.json`&&N(n,`invalid_schema`,`$schema`,`$schema must be ${nt}`),i===void 0?N(n,`missing_field`,`version`,`version is required`):typeof i!=`number`||!Number.isInteger(i)?N(n,`invalid_type`,`version`,`version must be a whole number`):i>1?N(n,`unsupported_version`,`version`,`version ${i} is newer than this reader understands (1)`):i!==1&&N(n,`unsupported_version`,`version`,`version ${i} is not supported`),r===`https://s-m-r-t.dev/schemas/blueprint/v1.json`&&P(n,`migrated_schema`,`$schema`,`$schema uses the legacy blueprint URL; migrated`);for(let t of[`name`,`description`])e[t]!==void 0&&typeof e[t]!=`string`&&N(n,`invalid_type`,t,`${t} must be a string`);let a=[];if(!M(e.recipes))N(n,`invalid_type`,`recipes`,`recipes must be a list of recipe ids`);else if(a=[...new Set(e.recipes)].sort(),t.recipes){let r=new Set(t.recipes);for(let t of a)r.has(t)||N(n,`unknown_recipe`,`recipes[${e.recipes.indexOf(t)}]`,`recipes: unknown recipe "${t}"`)}let o=[];e.features!==void 0&&(M(e.features)?(o=[...new Set(e.features)].sort(),o.length!==e.features.length&&P(n,`duplicate_value`,`features`,`features listed a model more than once; deduplicated`)):N(n,`invalid_type`,`features`,`features must be a list of model names`));let s=[];if(!Array.isArray(e.policies))N(n,`invalid_type`,`policies`,`policies must be a list`);else for(let[t,r]of e.policies.entries())ut(r,`policies[${t}]`,n),s.push(r);if(e.exposure!==void 0&&(ct(e.exposure,e=>M(e)&&e.every(e=>it.has(e)))||N(n,`invalid_value`,`exposure`,`exposure must map model names to lists of api, mcp or cli`)),e.layout!==void 0&&dt(e.layout,n),e.theme!==void 0&&ft(e.theme,n),j(e.theme)&&typeof e.theme.preset==`string`){let r=t.themePresets?new Set(t.themePresets):void 0;r&&!r.has(e.theme.preset)&&N(n,`unknown_theme_preset`,`theme.preset`,`Unknown theme preset "${e.theme.preset}".`)}if(j(e.layout)&&e.layout.version===1&&t.layout){let r=t.layout.sections?new Set(t.layout.sections):void 0,i=t.layout.items?new Set(t.layout.items):void 0,a=t.layout.placementItems?new Set(t.layout.placementItems):void 0;if(r&&Array.isArray(e.layout.customSections))for(let t of e.layout.customSections)j(t)&&typeof t.id==`string`&&r.add(t.id);let o=(e,t)=>t===`section`?r?.has(e)!==!1:t===`item`?i?.has(e)!==!1:r?.has(e)===!0||i?.has(e)===!0||!r&&!i,s=(e,t,r)=>{typeof e==`string`&&!o(e,r)&&N(n,`unknown_layout_id`,t,`Unknown layout ${r===`either`?`section or item`:r} "${e}".`)};if(M(e.layout.sectionOrder)&&e.layout.sectionOrder.forEach((e,t)=>{s(e,`layout.sectionOrder[${t}]`,`section`)}),M(e.layout.hidden)&&e.layout.hidden.forEach((e,t)=>{s(e,`layout.hidden[${t}]`,`either`)}),j(e.layout.itemOrder))for(let[t,n]of Object.entries(e.layout.itemOrder))s(t,`layout.itemOrder.${t}`,`section`),M(n)&&n.forEach((e,n)=>{s(e,`layout.itemOrder.${t}[${n}]`,`item`)});if(j(e.layout.moved))for(let[t,n]of Object.entries(e.layout.moved))s(t,`layout.moved.${t}`,`item`),s(n,`layout.moved.${t}`,`section`);for(let t of[`sections`,`items`])if(j(e.layout[t]))for(let n of Object.keys(e.layout[t]))s(n,`layout.${t}.${n}`,t===`sections`?`section`:`item`);if(j(e.layout.placements))for(let t of Object.keys(e.layout.placements))a&&!a.has(t)&&N(n,`unknown_layout_id`,`layout.placements.${t}`,`Unknown layout placement item "${t}".`)}let c={};if(e.overviews!==void 0){if(!j(e.overviews)||Object.hasOwn(e.overviews,`__proto__`))N(n,`invalid_type`,`overviews`,`overviews must map overview ids to overrides`);else{let r=t.overviewIds?new Set(t.overviewIds):void 0;for(let[i,a]of Object.entries(e.overviews)){let e=`overviews.${i}`;if(!pt.test(i)){P(n,`invalid_overview_id`,e,`${e} was dropped because its overview id is invalid`);continue}if(r&&!r.has(i)){P(n,`unknown_overview`,e,`Unknown overview "${i}" was dropped.`);continue}let o=yt(a,e,n);if(!o)continue;if(!t.validateOverview){c[i]=o;continue}let s;try{s=t.validateOverview(i,o)}catch{P(n,`overview_validation_failed`,e,`Overview "${i}" was dropped because its host validator failed.`);continue}for(let t of s.diagnostics??[])P(n,t.code,t.path||e,t.message);!s.ok&&s.diagnostics.length===0&&P(n,`overview_rejected`,e,`Overview "${i}" was rejected by its host validator and dropped.`),s.ok&&s.override&&(c[i]=s.override)}}}let l=n.filter(e=>e.severity===`error`).map(e=>e.message);if(l.length)return{ok:!1,errors:l,diagnostics:n};let u={...e,$schema:nt,version:1,recipes:a,features:o,policies:s};return e.exposure!==void 0&&(u.exposure=e.exposure),e.layout!==void 0&&(u.layout=e.layout),e.theme!==void 0&&(u.theme=e.theme),delete u.overviews,Object.keys(c).length&&(u.overviews=c),{ok:!0,cookbook:u,warnings:n.filter(e=>e.severity===`warning`).map(e=>e.message),diagnostics:n}}var F=e=>e===void 0?e:structuredClone(e),xt=(e,t)=>JSON.stringify(e??null)===JSON.stringify(t??null),St=()=>({$schema:nt,version:1,recipes:[],features:[],policies:[]});function Ct(e){return!e.recipes.length&&!e.features.length&&!e.policies.length&&!Object.keys(e.exposure??{}).length&&!e.layout&&!e.theme&&!Object.keys(e.overviews??{}).length}var wt=e=>[...new Set(e)].sort();function Tt(e){let t=new Set([`$schema`,`version`,`name`,`description`,`recipes`,`features`,`policies`,`exposure`,`layout`,`theme`,`overviews`]),n={$schema:nt,version:1,...e.name?{name:e.name}:{},...e.description?{description:e.description}:{},recipes:wt(e.recipes),features:wt(e.features),policies:[...e.policies].sort((e,t)=>e.objectRef.localeCompare(t.objectRef)||e.fieldName.localeCompare(t.fieldName)).map(e=>({...e}))},r=Object.fromEntries(Object.keys(e.exposure??{}).sort().filter(t=>e.exposure?.[t]?.length).map(t=>[t,[...e.exposure?.[t]??[]].sort()]));Object.keys(r).length&&(n.exposure=r),e.layout&&(n.layout=F(e.layout));let i=Kt(e.theme);i&&(n.theme=i);let a=Object.entries(e.overviews??{}).sort(([e],[t])=>e<t?-1:+(e>t));a.length&&(n.overviews=Object.fromEntries(a.map(([e,t])=>[e,F(t)])));for(let[r,i]of Object.entries(e))t.has(r)||(n[r]=F(i));return n}var I=e=>new Map(e.recipes.map(e=>[e.id,e]));function Et(e,t){let n=new Set,r=e=>{let i=t.get(e);if(i&&!n.has(e)){n.add(e);for(let e of i.requires)r(e)}};for(let t of e)r(t);let i=!0;for(;i;){i=!1;for(let e of[...n])for(let a of t.get(e)?.requiresAny??[]){if(a.some(e=>n.has(e)))continue;let e=a.find(e=>t.has(e));e&&(r(e),i=!0)}}return wt(n)}function Dt(e,t){let n=I(e);return new Set([...t.recipes.flatMap(e=>n.get(e)?.models??[]),...t.features])}function Ot(e){return e.settingTargets??He}function kt(e,t){return Object.values(Ot(e)).some(e=>e.some(e=>e.model===t.objectRef&&e.field===t.fieldName))}function At(e,t){let n=Dt(e,t),r={...t,policies:t.policies.filter(t=>n.has(t.objectRef)||kt(e,t))};if(t.exposure){let e=Object.fromEntries(Object.entries(t.exposure).filter(([e])=>n.has(e)));Object.keys(e).length?r.exposure=e:delete r.exposure}return r}var jt=(e,t)=>{let n=I(e);return t.recipes.filter(e=>n.has(e))},Mt=(e,t)=>{let n=I(e);return t.recipes.filter(e=>!n.has(e))};function Nt(e,t){let n=new Set(e),r=new Set(t);return{added:t.filter(e=>!n.has(e)),removed:e.filter(e=>!r.has(e))}}function Pt(e,t,n){let r=I(e),i=jt(e,t),a=Et([...i,...n],r);return{doc:{...t,recipes:wt([...a,...Mt(e,t)])},changes:{...Nt(i,a),kept:[]}}}function Ft(e,t,n){let r=I(e),i=jt(e,t),a=new Set(n),o=Et(i.filter(e=>!a.has(e)),r),s=At(e,{...t,recipes:wt([...o,...Mt(e,t)])}),{added:c,removed:l}=Nt(i,o);return{doc:s,changes:{added:c,removed:l,kept:n.filter(e=>o.includes(e)&&i.includes(e))}}}function It(e,t,n,r){let i=new Set(t.features);for(let e of n)r?i.add(e):i.delete(e);let a=[...i].sort(),o={...t,features:a};return r||(o=At(e,o)),{doc:o,changes:{...Nt(t.features,a),kept:[]}}}var Lt=(e,t)=>({added:[...e.added,...t.added],removed:[...e.removed,...t.removed],kept:[...e.kept,...t.kept]}),Rt={currency:`USD`,taxRate:0,paymentTerms:``,pricesIncludeTax:!1,taxRounding:`line`},zt=[`currency`,`taxRate`,`paymentTerms`,`pricesIncludeTax`,`taxRounding`];function Bt(e){if(e?.defaultValue!==void 0&&e.defaultValue!==null)try{return JSON.parse(e.defaultValue)}catch{return}}var Vt=(e,t,n)=>e.find(e=>e.scopeType===`app`&&e.objectRef===t&&e.fieldName===n);function Ht(e,t){let n=Ot(e),r={...Rt},i=(e,r)=>{for(let{model:i,field:a}of n[e]){let e=Bt(Vt(t.policies,i,a));if(typeof e===r)return e}},a=i(`currency`,`string`),o=i(`taxRate`,`number`),s=i(`paymentTerms`,`string`),c=i(`pricesIncludeTax`,`string`),l=i(`taxRounding`,`string`);return typeof a==`string`&&(r.currency=a),typeof o==`number`&&(r.taxRate=o),typeof s==`string`&&(r.paymentTerms=s),(c===`inclusive`||c===`exclusive`)&&(r.pricesIncludeTax=c===`inclusive`),(l===`line`||l===`document`)&&(r.taxRounding=l),r}var Ut=e=>e==null||e===``;function Wt(e,t,n,r){let i=I(e);for(let e of t.recipes){let t=i.get(e)?.options?.[n]?.fields?.[r];if(t&&`default`in t)return t.default}return A(e,n)?.fields?.find(e=>e.name===r)?.default}function Gt(e,t,n){let r=Ot(e),i=t.policies.map(e=>({...e}));for(let a of zt){let o=n[a],s=a===`paymentTerms`?String(o).trim():a===`currency`?String(o).trim().toUpperCase():a===`pricesIncludeTax`?o?`inclusive`:`exclusive`:o;for(let{model:n,field:o}of r[a]){let r=Wt(e,t,n,o),c=!Ut(s)&&!(!Ut(r)&&r===s)&&!(Ut(r)&&a===`taxRate`&&s===0),l=Vt(i,n,o);if(c){let e=JSON.stringify(s);l?l.defaultValue=e:i.push({objectRef:n,fieldName:o,scopeType:`app`,defaultValue:e})}else l&&(delete l.defaultValue,Object.keys(l).length<=3&&(i=i.filter(e=>e!==l)))}}return{...t,policies:i}}function Kt(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 qt(e){let t=e?.colorScheme??`system`,n=e?.custom?`brand colour ${e.custom.primary}`:e?.preset??`smrt`;return t===`system`?n:`${n}, ${t}`}function Jt(e,t){let n={...e.theme??{}};t.preset&&(n.preset=t.preset,delete n.custom),t.primary&&(n.custom={primary:t.primary.toLowerCase(),...e.theme?.custom?.fontFamily?{fontFamily:e.theme.custom.fontFamily}:{}}),t.colorScheme&&(n.colorScheme=t.colorScheme),t.borderRadius&&(n.borderRadius=t.borderRadius),t.density&&(n.density=t.density),t.contrast&&(n.contrast=t.contrast),t.fontFamily===null?(delete n.fontFamily,n.custom?.fontFamily&&(n.custom={primary:n.custom.primary})):t.fontFamily!==void 0&&(n.fontFamily=t.fontFamily);let r=Kt(n),i={...e};return r?i.theme=r:delete i.theme,i}function Yt(e,t){let n=[],r=(e,t,r,i)=>n.push({severity:e,code:t,path:r,message:i}),i=bt(t);if(!i.ok){for(let e of i.diagnostics.filter(e=>e.severity===`error`))r(`error`,`invalid_document`,e.path,e.message);return n}for(let e of i.diagnostics)r(e.severity,e.code===`migrated_schema`?`migrated`:e.code,e.path,e.message);let a=i.cookbook,o=I(e),s=Ze(e,{...a,layout:void 0}),c=bt(a,{themePresets:e.themePresets??Be,layout:{sections:s.map(e=>e.id),items:s.flatMap(e=>e.items.map(e=>e.id)),...e.placementItems?{placementItems:e.placementItems}:{}},overviewIds:[...s.map(e=>e.id),...(a.layout?.customSections??[]).map(e=>e.id)]});for(let e of c.diagnostics)(e.code===`unknown_theme_preset`||e.code===`unknown_layout_id`||e.code===`unknown_overview`)&&r(e.code===`unknown_layout_id`&&!e.path.startsWith(`layout.placements.`)?`warning`:e.severity,e.code===`unknown_theme_preset`?`unknown_preset`:e.code,e.path,e.message);for(let[e,t]of a.recipes.entries())o.has(t)||r(`error`,`unknown_recipe`,`recipes[${e}]`,`Unknown recipe "${t}".`);let l=new Set(Et(a.recipes,o));for(let e of l)a.recipes.includes(e)||r(`error`,`missing_requirement`,`recipes`,`A recipe needs "${e}", which is not listed.`);for(let[t,n]of a.features.entries()){let i=A(e,n);i?i.exposed===!1&&r(`error`,`model_not_exposed`,`features[${t}]`,`${n} cannot be added as a feature.`):r(`error`,`unknown_model`,`features[${t}]`,`Unknown model "${n}".`)}let u=Dt(e,a);for(let[t,n]of a.policies.entries()){let i=`policies[${t}]`,a=A(e,n.objectRef);if(!a){r(`error`,`unknown_model`,`${i}.objectRef`,`Unknown model "${n.objectRef}".`);continue}a.fields&&!a.fields.some(e=>e.name===n.fieldName&&!e.system)&&r(`error`,`unknown_field`,`${i}.fieldName`,`${a.name} has no field "${n.fieldName}".`),!u.has(n.objectRef)&&!kt(e,n)&&r(`warning`,`policy_not_covered`,i,`${a.name} is not in the app, so this row has no effect.`)}for(let t of Object.keys(a.exposure??{}))A(e,t)||r(`error`,`unknown_model`,`exposure.${t}`,`Unknown model "${t}".`);return n}var L=(e,t,n={})=>({ok:!1,error:{code:e,message:t,...n}}),R=(e,t=``,n={})=>({ok:!0,state:e,summary:t,...n}),Xt=`This replaces the recipes, options, menu and look. Send replace: true to confirm.`,z=e=>e.join(`, `);function Zt(e){return`${(e??``).normalize(`NFD`).replace(/\p{M}/gu,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`my-app`}.cookbook.json`}var Qt=e=>`${JSON.stringify(e,null,2)}\n`;function $t(e,t){let n=new Map(e.recipes.map(e=>[e.id,e])),r=t.recipes.filter(e=>n.has(e)),i=t.recipes.filter(e=>!n.has(e));return Tt(At(e,{...F(t),recipes:[...Et(r,n),...i]}))}function en(e,t){return t?e.cookbooks?.find(e=>e.id===t)?.name:void 0}var tn=(e,t)=>{let n=t=>e.recipes.find(e=>e.id===t)?.label??t;return[t.added.length?`Added ${z(t.added.map(n))}.`:``,t.removed.length?`Removed ${z(t.removed.map(n))}.`:``,t.kept.length?`Kept ${z(t.kept.map(n))} (needed).`:``].filter(Boolean).join(` `)},nn=(e,t)=>[t.added.length?`Added ${z(t.added.map(t=>Je(e,t)))}.`:``,t.removed.length?`Removed ${z(t.removed.map(t=>Je(e,t)))}.`:``].filter(Boolean).join(` `),rn=e=>`${Number((e*100).toFixed(4))}%`,B=(e,t)=>({...e,doc:Tt(t)});function an(e,t){let n=Ze(e,t);return{sections:n,section:e=>n.find(t=>t.id===e),item:e=>n.flatMap(e=>e.items).find(t=>t.id===e)}}var on=(e,t)=>{let n={...e};return t?n.layout=t:delete n.layout,n},sn={add_recipes(e,t,{ids:n}){let r=n.filter(t=>!e.recipes.some(e=>e.id===t));if(r.length)return L(`not_found`,`No such recipe: ${z(r)}.`,{path:`input.ids`});let{doc:i,changes:a}=Pt(e,t.doc,n);return R(B(t,i),tn(e,a),{changes:a})},remove_recipes(e,t,{ids:n}){let{doc:r,changes:i}=Ft(e,t.doc,n);return R(B(t,r),tn(e,i),{changes:i})},add_features(e,t,{ids:n}){let r=n.filter(t=>!A(e,t)?.exposed);if(r.length)return L(`not_found`,`No such model to add: ${z(r)}.`,{path:`input.ids`});let{doc:i,changes:a}=It(e,t.doc,n,!0);return R(B(t,i),nn(e,a),{changes:a})},remove_features(e,t,{ids:n}){let{doc:r,changes:i}=It(e,t.doc,n,!1);return R(B(t,r),nn(e,i),{changes:i})},add_cookbook(e,t,{id:n}){let r=e.cookbooks?.find(e=>e.id===n);if(!r)return L(`not_found`,`No cookbook "${n}".`,{path:`input.id`});let i=Pt(e,t.doc,r.document.recipes),a=It(e,i.doc,r.document.features.filter(t=>A(e,t)?.exposed),!0),o=Lt(i.changes,a.changes);return R(B(t,a.doc),o.added.length?`Added the ${r.name} cookbook.`:``,{changes:o})},remove_cookbook(e,t,{id:n}){let r=e.cookbooks?.find(e=>e.id===n);if(!r)return L(`not_found`,`No cookbook "${n}".`,{path:`input.id`});let i=Ft(e,t.doc,r.document.recipes),a=It(e,i.doc,r.document.features,!1),o=Lt(i.changes,a.changes);return R(B(t,a.doc),[tn(e,i.changes),nn(e,a.changes)].filter(Boolean).join(` `),{changes:o})},apply_cookbook(e,t,{id:n,replace:r}){let i=e.cookbooks?.find(e=>e.id===n);return i?!r&&!Ct(t.doc)?L(`confirmation_required`,Xt):R({doc:$t(e,i.document),applied:n},`${i.name} set up.`):L(`not_found`,`No cookbook "${n}".`,{path:`input.id`})},import_cookbook(e,t,{document:n,replace:r}){let i=bt(n);if(!i.ok)return L(`invalid_input`,i.errors[0]??`Not a cookbook.`,{path:`input.document`,details:{errors:i.errors}});if(!r&&!Ct(t.doc))return L(`confirmation_required`,Xt);let a=i.cookbook.recipes.length;return R({doc:$t(e,i.cookbook),applied:null},`Imported ${a} ${a===1?`recipe`:`recipes`}.`,i.warnings.length?{warnings:i.warnings}:{})},set_settings(e,t,n){let r=Ht(e,t.doc),i={...r},a=[];if(n.currency!==void 0){let t=n.currency.trim().toUpperCase();if(e.currencies&&!e.currencies.includes(t))return L(`invalid_input`,`${t} is not a known currency.`,{path:`input.currency`});if(!/^[A-Z]{3}$/.test(t))return L(`invalid_input`,`currency must be a three-letter code.`,{path:`input.currency`});t!==r.currency&&(i.currency=t,a.push(`currency ${t}`))}if(n.taxRate!==void 0){let e=Number((n.taxRate/100).toFixed(6));e!==r.taxRate&&(i.taxRate=e,a.push(`tax ${rn(e)}`))}if(n.paymentTerms!==void 0){let e=[...n.paymentTerms].map(e=>e.charCodeAt(0)<32||e.charCodeAt(0)===127?` `:e).join(``).trim();if(!e)return L(`invalid_input`,`paymentTerms must not be empty.`,{path:`input.paymentTerms`});e!==r.paymentTerms&&(i.paymentTerms=e,a.push(`terms ${e}`))}if(n.pricesIncludeTax!==void 0&&n.pricesIncludeTax!==r.pricesIncludeTax&&(i.pricesIncludeTax=n.pricesIncludeTax,a.push(n.pricesIncludeTax?`prices include tax`:`prices exclude tax`)),n.taxRounding!==void 0&&n.taxRounding!==r.taxRounding&&(i.taxRounding=n.taxRounding,a.push(`${n.taxRounding} tax rounding`)),!a.length)return R(t);let o=a.join(`, `);return R(B(t,Gt(e,t.doc,i)),`${o[0].toUpperCase()}${o.slice(1)}.`)},set_policy(e,t,n){let r=A(e,n.model);if(!r)return L(`not_found`,`No such model: ${n.model}.`,{path:`input.model`});if(r.fields){let e=r.fields.find(e=>e.name===n.field);if(!e||e.system)return L(`not_found`,`${r.name} has no field ${n.field}.`,{path:`input.field`})}if(!Dt(e,t.doc).has(r.id))return L(`not_found`,`${qe(r.name)} is not in the app yet; add its recipe or feature first.`,{path:`input.model`});if(t.doc.recipes.some(t=>e.recipes.find(e=>e.id===t)?.options?.[r.id]?.fields?.[n.field]?.locked))return L(`failed`,`${n.field} is locked by its recipe.`,{path:`input.field`});let i=t.doc.policies.map(e=>({...e})),a=i.find(e=>e.objectRef===r.id&&e.fieldName===n.field),o=a??{objectRef:r.id,fieldName:n.field,scopeType:`app`},s=JSON.stringify(o);for(let e of[`visibility`,`label`,`help`]){let t=n[e];t!==void 0&&(t===null?delete o[e]:o[e]=t)}if(n.defaultValue!==void 0){if(n.defaultValue===null)delete o.defaultValue;else{let e=JSON.stringify(n.defaultValue);if(e===void 0)return L(`invalid_input`,`defaultValue is not a JSON value.`,{path:`input.defaultValue`});o.defaultValue=e}}let c=Object.keys(o).length<=3;if(JSON.stringify(o)===s||c&&!a)return R(t);let l=i.filter(e=>e!==a);return R(B(t,{...t.doc,policies:c?l:[...l,o]}),`Updated ${qe(r.name)} ${n.field}.`)},set_theme(e,t,n){let r=Jt(t.doc,n);return JSON.stringify(Tt(r).theme??null)===JSON.stringify(t.doc.theme??null)?R(t):R(B(t,r),`Theme: ${qt(Tt(r).theme)}.`)},reset_theme(e,t){if(!t.doc.theme)return R(t);let n={...t.doc};return delete n.theme,R(B(t,n),`Theme: default.`)},set_name(e,t,n){let r={...t.doc};for(let e of[`name`,`description`]){let t=n[e];if(t===void 0)continue;let i=t?.trim();i?r[e]=i:delete r[e]}return JSON.stringify(Tt(r))===JSON.stringify(t.doc)?R(t):R(B(t,r),n.name?`Named the app ${n.name.trim()}.`:`Updated the app details.`)},rename_section(e,t,{id:n,label:r}){let i=an(e,t.doc).section(n);if(!i)return L(`not_found`,`No menu section "${n}".`,{path:`input.id`});let a=$e(t.doc.layout,i,r);return JSON.stringify(a??null)===JSON.stringify(t.doc.layout??null)?R(t):R(B(t,on(t.doc,a)),`Renamed the section to ${r.trim()}.`)},rename_item(e,t,{id:n,label:r}){let i=an(e,t.doc).item(n);if(!i)return L(`not_found`,`No menu entry "${n}".`,{path:`input.id`});let a=et(t.doc.layout,i,r);return JSON.stringify(a??null)===JSON.stringify(t.doc.layout??null)?R(t):R(B(t,on(t.doc,a)),r?`Renamed the entry to ${r.trim()}.`:`Entry name restored.`)},hide(e,t,{id:n}){let r=an(e,t.doc);return r.section(n)??r.item(n)?t.doc.layout?.hidden?.includes(n)?R(t):R(B(t,on(t.doc,tt(t.doc.layout,n,!0))),`Hidden.`):L(`not_found`,`No menu section or entry "${n}".`,{path:`input.id`})},show(e,t,{id:n}){let r=an(e,t.doc);return!r.section(n)&&!r.item(n)?L(`not_found`,`No menu section or entry "${n}".`,{path:`input.id`}):t.doc.layout?.hidden?.includes(n)?R(B(t,on(t.doc,tt(t.doc.layout,n,!1))),`Shown.`):R(t)},validate(e,t){let n=Yt(e,t.doc);return R(t,``,{data:{ok:!n.some(e=>e.severity===`error`),diagnostics:n}})},export_cookbook(e,t,{name:n}){return R(t,``,{data:{fileName:Zt(n??t.doc.name??en(e,t.applied)),text:Qt(t.doc),cookbook:F(t.doc)}})}};function cn(e,t,n,r){let i=sn[n];return i?i(e,t,r):L(`unknown_command`,`No command "${n}".`)}var ln=(e,t)=>({type:`array`,description:e,minItems:1,maxItems:50,items:t?.length?{type:`string`,enum:[...t]}:{type:`string`,minLength:1}}),un=(e,t={})=>({type:`string`,description:e,minLength:1,maxLength:200,...t}),V=(e,t=[])=>({type:`object`,properties:e,...t.length?{required:t}:{},additionalProperties:!1});function dn(e){let t=e.recipes.map(e=>e.id),n=(e.cookbooks??[]).map(e=>e.id),r=e.themePresets??Be,i=e=>({type:`string`,description:e,...n.length?{enum:[...n]}:{minLength:1}}),a=e=>un(`The id of ${e}, as the plan snapshot's "sections" lists it.`),o={type:`boolean`,description:`Confirm replacing what is there.`};return[{name:`add_recipes`,description:`Switch recipes on. Recipes they require come along. Returns what was added.`,inputSchema:V({ids:ln(`Recipe ids to add.`,t)},[`ids`])},{name:`remove_recipes`,description:`Switch recipes off. A recipe another one needs is kept and reported.`,inputSchema:V({ids:ln(`Recipe ids to remove.`,t)},[`ids`])},{name:`add_features`,description:"Add single models no recipe covers, by qualified name (`@scope/pkg:Class`).",inputSchema:V({ids:ln(`Qualified model names to add.`)},[`ids`])},{name:`remove_features`,description:`Remove single models added with add_features.`,inputSchema:V({ids:ln(`Qualified model names to remove.`)},[`ids`])},{name:`add_cookbook`,description:`Add the recipes and features of a ready-made cookbook to the current app. Nothing is replaced.`,inputSchema:V({id:i(`The cookbook to add.`)},[`id`])},{name:`remove_cookbook`,description:`Remove the recipes and features a ready-made cookbook adds. Ones another recipe needs are kept.`,inputSchema:V({id:i(`The cookbook to remove.`)},[`id`])},{name:`apply_cookbook`,description:`Select a ready-made cookbook: replace the whole app (recipes, options, menu, theme) with it. When the app has anything in it, replace must be true.`,inputSchema:V({id:i(`The cookbook to set up.`),replace:o},[`id`])},{name:`import_cookbook`,description:`Replace the whole app with a cookbook document (version 1). Checked strictly; nothing is applied if it is invalid. When the app has anything in it, replace must be true.`,inputSchema:V({document:{type:`object`,description:`A cookbook document, version 1.`},replace:o},[`document`])},{name:`set_settings`,description:`Change app settings: currency, default tax rate (percent), default payment terms. Applies to new records only.`,inputSchema:V({currency:e.currencies?.length?{type:`string`,description:`ISO 4217 code, e.g. CAD.`,enum:[...e.currencies]}:{type:`string`,description:`ISO 4217 code, e.g. CAD.`,pattern:`^[A-Z]{3}$`},taxRate:{type:`number`,description:`Default tax rate in percent, 0 to 100.`,minimum:0,maximum:100},paymentTerms:{type:`string`,description:`Default payment terms, e.g. "Net 30".`,minLength:1,maxLength:40},pricesIncludeTax:{type:`boolean`,description:`Whether new document prices include tax.`},taxRounding:{enum:[`line`,`document`],description:`Whether tax rounds per line or per document.`}})},{name:`set_policy`,description:`Set one field's policy: default value, visibility, label or help. The model must be covered by a recipe or feature that is on. null clears a part.`,inputSchema:V({model:un(`Qualified model name, e.g. @happyvertical/smrt-commerce:Order.`),field:un(`The model field name.`),defaultValue:{description:`The default as a JSON value (a string, number or boolean). null clears it.`},visibility:{enum:[`basic`,`advanced`,`hidden`,null],description:`Whether the field shows in forms and lists.`},label:{type:[`string`,`null`],description:`A different label.`,maxLength:120},help:{type:[`string`,`null`],description:`Help text under the field.`,maxLength:400}},[`model`,`field`])},{name:`set_theme`,description:`Change the look: a preset, a brand colour, light or dark. A preset replaces a brand colour.`,inputSchema:V({preset:{enum:[...r],description:`A built-in theme.`},primary:{type:`string`,description:`Brand colour as #rrggbb.`,pattern:`^#[0-9a-fA-F]{6}$`},colorScheme:{enum:[`light`,`dark`,`system`],description:`Light, dark or follow the device.`},fontFamily:{type:[`string`,`null`],minLength:1,description:`Font key. Null restores the preset font.`},borderRadius:{enum:[`none`,`sm`,`md`,`lg`,`xl`,`full`],description:`Corner roundness.`},density:{enum:[`comfortable`,`touch`],description:`Control size: comfortable, or larger touch targets.`},contrast:{enum:[`auto`,`standard`,`more`],description:`Contrast: auto follows the device, or force standard or more.`}})},{name:`reset_theme`,description:`Go back to the default look.`,inputSchema:V({})},{name:`set_name`,description:`Name and describe the app. null clears a part.`,inputSchema:V({name:{type:[`string`,`null`],minLength:1,maxLength:60},description:{type:[`string`,`null`],minLength:1,maxLength:400}})},{name:`rename_section`,description:`Rename a menu section.`,inputSchema:V({id:a(`the section`),label:un(`The new name.`,{maxLength:60})},[`id`,`label`])},{name:`rename_item`,description:`Rename a menu entry. A null label restores its own name.`,inputSchema:V({id:a(`the entry`),label:{type:[`string`,`null`],minLength:1,maxLength:60}},[`id`,`label`])},{name:`hide`,description:`Hide a menu section or entry. Nothing is deleted.`,inputSchema:V({id:a(`the section or entry`)},[`id`])},{name:`show`,description:`Show a hidden menu section or entry again.`,inputSchema:V({id:a(`the section or entry`)},[`id`])},{name:`validate`,description:`Check the current cookbook against the catalog and report typed diagnostics. Changes nothing.`,inputSchema:V({})},{name:`export_cookbook`,description:`The cookbook as a <name>.cookbook.json file (text in the result). Changes nothing.`,inputSchema:V({name:un(`A name for the file.`,{maxLength:60})})},{name:`undo`,description:`Undo an earlier change by the undoId its receipt carried. Refused with a conflict when the plan changed since, unless force is true.`,inputSchema:V({undoId:un(`The undoId from a receipt.`),force:{type:`boolean`,description:`Undo even after later edits.`}},[`undoId`])}]}function fn(e){return{name:`run_batch`,description:`Run several commands as one atomic batch: all apply or none does. A failure names the command and leaves the plan unchanged.`,inputSchema:{type:`object`,properties:{id:{type:`string`,minLength:1,maxLength:200},expectedRevision:{type:`integer`,minimum:0},commands:{type:`array`,minItems:1,maxItems:50,items:{oneOf:dn(e).map(e=>({type:`object`,properties:{name:{const:e.name},input:e.inputSchema},required:[`name`],additionalProperties:!1}))}}},required:[`commands`],additionalProperties:!1}}}var pn=e=>e===null?`null`:Array.isArray(e)?`array`:Number.isInteger(e)?`integer`:typeof e;function mn(e,t){let n=pn(t);return n===e||e===`number`&&n===`integer`}function hn(e,t,n=`input`){let r=e=>({path:n,message:`${n} ${e}`}),i=e.type;if(i){let e=Array.isArray(i)?i:[i];if(!e.some(e=>mn(e,t)))return r(`must be ${e.join(` or `)}`)}let a=e.enum;if(a&&!a.includes(t))return r(a.length>12?`is not a known value`:`must be one of ${a.map(e=>JSON.stringify(e)).join(`, `)}`);if(typeof t==`string`){let{minLength:n,maxLength:i,pattern:a}=e;if(n!==void 0&&t.length<n)return r(`must not be empty`);if(i!==void 0&&t.length>i)return r(`must be at most ${i} characters`);if(a&&!new RegExp(a).test(t))return r(`has the wrong format`)}if(typeof t==`number`){let{minimum:n,maximum:i}=e;if(!Number.isFinite(t))return r(`must be a finite number`);if(n!==void 0&&t<n)return r(`must be at least ${n}`);if(i!==void 0&&t>i)return r(`must be at most ${i}`)}if(Array.isArray(t)){let{minItems:i,maxItems:a,items:o}=e;if(i!==void 0&&t.length<i)return r(`needs at least ${i} item${i===1?``:`s`}`);if(a!==void 0&&t.length>a)return r(`takes at most ${a} items`);if(o)for(let[e,r]of t.entries()){let t=hn(o,r,`${n}[${e}]`);if(t)return t}}if(pn(t)===`object`){let r=t,{properties:i,required:a,additionalProperties:o}=e;for(let e of a??[])if(r[e]===void 0)return{path:`${n}.${e}`,message:`${n}.${e} is required`};for(let[e,t]of Object.entries(r)){let r=i?.[e];if(!r){if(o===!1)return{path:`${n}.${e}`,message:`${n}.${e} is not an option of this command`};continue}if(t===void 0)continue;let a=hn(r,t,`${n}.${e}`);if(a)return a}}return null}function gn(e){return Object.fromEntries(dn(e).map(e=>[e.name,e.inputSchema]))}var H=(e,t,n={})=>({code:e,message:t,...n}),_n=e=>Array.isArray(e)?e.map(_n):e&&typeof e==`object`?Object.fromEntries(Object.keys(e).sort().map(t=>[t,_n(e[t])])):e,vn=e=>{try{return JSON.stringify(_n(e))??`undefined`}catch{return`unserializable`}};function yn(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{ok:!1,error:H(`unknown_command`,`A command is an object: { name, input }.`)};let r=e,{name:i,input:a={}}=r;if(typeof i!=`string`||!Object.hasOwn(t,i))return{ok:!1,error:H(`unknown_command`,`Unknown command ${JSON.stringify(i)}.`)};for(let e of Object.keys(r))if(e!==`name`&&e!==`input`&&!n.includes(e))return{ok:!1,error:H(`invalid_input`,`${e} is not part of a command.`,{path:e})};let o=hn(t[i],a);return o?{ok:!1,error:H(`invalid_input`,o.message,{path:o.path})}:{ok:!0,name:i,input:a}}var bn=e=>e===void 0||typeof e==`string`&&e.length>0&&e.length<=200?null:H(`invalid_input`,`id must be a non-empty string of at most 200 characters.`,{path:`id`}),xn=e=>e===void 0||Number.isInteger(e)&&e>=0?null:H(`invalid_input`,`expectedRevision must be a whole number.`,{path:`expectedRevision`});function Sn(e){let{catalog:t}=e,n=gn(t),r=dn(t),i=fn(t),a=e.maxJournal??500,o=e.maxUndo??20,s,c=0,l=new Map;if(e.state){let n=e.state,r=bt(n.cookbook);if(!r.ok)throw Error(`Invalid saved cookbook: ${r.errors.join(`; `)}`);if(!Number.isInteger(n.revision)||n.revision<0)throw Error(`Invalid saved revision.`);s={doc:$t(t,r.cookbook),applied:n.applied??null},c=n.revision;for(let e of n.journal??[])l.set(e.id,F(e))}else if(e.cookbook!==void 0){let n=bt(e.cookbook);if(!n.ok)throw Error(`Invalid cookbook: ${n.errors.join(`; `)}`);s={doc:$t(t,n.cookbook),applied:null}}else s={doc:$t(t,St()),applied:null};let u=new Map,d=[],f=0,p=new Map;function m(e,n){let{doc:r}=e,i=new Map(t.recipes.map(e=>[e.id,e])),a=Ht(t,r),o=new Set(t.models.filter(e=>e.exposed!==!1).map(e=>e.id));return{version:1,revision:n,app:{name:r.name??en(t,e.applied)??`my-app`,description:r.description??null,cookbook:e.applied},recipes:r.recipes.flatMap(e=>{let t=i.get(e);return t?[{id:e,label:t.label}]:[]}),features:r.features.filter(e=>o.has(e)),unavailable:[...r.recipes.filter(e=>!i.has(e)),...r.features.filter(e=>!o.has(e))],settings:{currency:a.currency,taxRate:Number((a.taxRate*100).toFixed(4)),paymentTerms:a.paymentTerms,pricesIncludeTax:a.pricesIncludeTax,taxRounding:a.taxRounding},theme:{text:qt(r.theme),preset:r.theme?.preset??null,primary:r.theme?.custom?.primary??null,colorScheme:r.theme?.colorScheme??`system`,borderRadius:r.theme?.borderRadius??null,density:r.theme?.density??null,contrast:r.theme?.contrast??null},sections:Ze(t,r).map(e=>({id:e.id,label:e.label,hidden:e.hidden,items:e.items.map(e=>({id:e.id,label:e.label,hidden:e.hidden}))})),policies:r.policies.length,undo:[...d]}}let h=()=>m(s,c);function g(){for(let[e,t]of p)t!==c&&(p.set(e,c),e(h()))}function _(e,t,n){if(e!==void 0)for(l.set(e,{id:e,fingerprint:t,result:F(n)});l.size>a;){let e=l.keys().next().value;if(e===void 0)break;l.delete(e)}}function v(e,t){if(e===void 0)return null;let n=l.get(e);return n?n.fingerprint===t?{...F(n.result),replayed:!0}:{ok:!1,id:e,error:H(`id_reuse`,`The id "${e}" was already used for a different command.`,{path:`id`})}:null}function y(t,n){let r=`${e.undoPrefix??`undo`}-${++f}`;u.set(r,{before:F(t),after:F(n)}),d=[...d,r].slice(-o);for(let e of[...u.keys()])d.includes(e)||u.delete(e);return r}let b=(e,t)=>e.applied!==t.applied||!xt(e.doc,t.doc);function x(e,t,n,r,i,a,o){return{ok:!0,...e===void 0?{}:{id:e},snapshot:a,receipt:{name:t,...e===void 0?{}:{id:e},summary:i===r?``:n.summary,changed:i!==r,revisionBefore:r,revisionAfter:i,...o?{undoId:o}:{},...n.changes?{changes:n.changes}:{},...n.warnings?{warnings:n.warnings}:{}},...n.data===void 0?{}:{data:n.data}}}function S(e,t){let n=u.get(t.undoId);if(!n)return{ok:!1,...e===void 0?{}:{id:e},error:H(`not_found`,`Nothing to undo for "${t.undoId}".`,{path:`input.undoId`})};if(!t.force&&b(s,n.after))return{ok:!1,...e===void 0?{}:{id:e},error:H(`conflict`,`The plan changed since; send force: true to undo anyway.`,{details:{currentRevision:c}})};let r=c,i=F(n.before),a=b(s,i);s=i,a&&(c+=1),u.delete(t.undoId),d=d.filter(e=>e!==t.undoId);let o=x(e,`undo`,{ok:!0,state:s,summary:`Undone.`},r,c,h());return g(),o}function C(e,r={}){try{let i=e&&typeof e==`object`&&!Array.isArray(e)?e:void 0,a=i?.id,o=bn(a);if(o)return{ok:!1,error:o};let l=i?.expectedRevision??r.expectedRevision,u=xn(l);if(u)return{ok:!1,...a===void 0?{}:{id:a},error:u};let d=vn({name:i?.name,input:i?.input??{},expectedRevision:l}),f=v(a,d);if(f)return f;let p=e=>(_(a,d,e),e),m=e=>({ok:!1,...a===void 0?{}:{id:a},error:e}),C=yn(e,n,[`id`,`expectedRevision`]);if(!C.ok)return p(m(C.error));if(l!==void 0&&l!==c)return p(m(H(`conflict`,`The plan is at revision ${c}, not ${l}. Read the snapshot and try again.`,{details:{expectedRevision:l,currentRevision:c}})));if(C.name===`undo`)return p(S(a,C.input));let w=s,T=cn(t,w,C.name,C.input);if(!T.ok)return p(m(T.error));let E=c,D=b(w,T.state),O;D&&(s=T.state,c+=1,O=y(w,T.state));let ee=p(x(a,C.name,T,E,c,h(),O));return g(),ee}catch(e){return{ok:!1,error:H(`failed`,e instanceof Error?e.message:String(e))}}}function w(e){let r=(e,t)=>({ok:!1,...t===void 0?{}:{id:t},error:e,snapshot:h()});try{if(!e||typeof e!=`object`||Array.isArray(e))return r(H(`invalid_input`,`A batch is an object: { commands }.`));let i=e,a=i.id,o=bn(a);if(o)return r(o);let l=xn(i.expectedRevision);if(l)return r(l,a);let u=vn({commands:i.commands,expectedRevision:i.expectedRevision}),d=v(a,u);if(d)return`results`in d||`snapshot`in d?d:r(d.error,a);let f=e=>(_(a,u,e),e),p=i.commands;if(!Array.isArray(p)||p.length===0||p.length>50)return f(r(H(`invalid_input`,`commands must be a list of 1 to 50 commands.`,{path:`commands`}),a));let S=i.expectedRevision;if(S!==void 0&&S!==c)return f(r(H(`conflict`,`The plan is at revision ${c}, not ${S}. Read the snapshot and try again.`,{details:{expectedRevision:S,currentRevision:c}}),a));let C=(e,t,n)=>f(r(H(`batch_failed`,`Command ${e+1} (${String(t)}) failed: ${n.message}`,{path:`commands[${e}]`,details:{index:e,cause:n}}),a)),w=s,T=c,E=w,D=T,O=[];for(let[e,r]of p.entries()){let i=yn(r,n,[]);if(!i.ok)return C(e,r?.name,i.error);if(i.name===`undo`)return C(e,`undo`,H(`invalid_input`,`undo cannot run inside a batch.`));let a=cn(t,E,i.name,i.input);if(!a.ok)return C(e,i.name,a.error);let o=D;b(E,a.state)&&(D+=1),E=a.state,O.push(x(void 0,i.name,a,o,D,m(E,D)))}let ee=D!==T,te;if(ee){s=E,c=D,te=y(w,E);for(let e of O)e.receipt.changed&&delete e.receipt.undoId}let ne=f({ok:!0,...a===void 0?{}:{id:a},snapshot:h(),receipt:{...a===void 0?{}:{id:a},count:O.length,changed:ee,revisionBefore:T,revisionAfter:D,...te?{undoId:te}:{}},results:O});return g(),ne}catch(e){return r(H(`failed`,e instanceof Error?e.message:String(e)))}}return{run:C,batch:w,snapshot:h,cookbook:()=>F(s.doc),state:()=>({version:1,revision:c,applied:s.applied,cookbook:F(s.doc),journal:[...l.values()].map(e=>F(e))}),subscribe(e){return p.set(e,c),e(h()),()=>{p.delete(e)}},tools:r,batchTool:i}}var Cn=new Set(`AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BRL BSD BTN BWP BYN BZD CAD CDF CHF CLP CNY COP CRC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STN SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD UYU UZS VES VND VUV WST XAF XCD XOF XPF YER ZAR ZMW ZWG`.split(` `));function wn(){let e=u.packages.flatMap(e=>e.models.map(t=>({id:t.id,name:t.name,packageId:e.id,...t.description?{description:t.description}:{},exposed:t.exposed,fields:t.fields.map(e=>({name:e.name,...e.system?{system:!0}:{},...e.default===void 0?{}:{default:e.default}}))})));return{recipes:E,models:e,cookbooks:ne.map(e=>({id:e.id,name:e.name,document:e.document})),themePresets:b,currencies:[...Cn],settingTargets:ee}}var Tn;function En(){return Tn??=wn(),Tn}var Dn=[`cookbooks`,`recipes`,`features`,`layout`,`theme`,`settings`,`export`],On={name:`focus`,description:`Move the planner's view to a tab and/or a menu section. Navigation only; it changes nothing in the plan.`,inputSchema:{type:`object`,properties:{tab:{enum:[...Dn],description:`The tab to open.`},section:{type:`string`,minLength:1,maxLength:200,description:`The id of a menu section, as the plan snapshot's "sections" lists it.`}},additionalProperties:!1}};function kn(e){return[...dn(e),On]}function An(e,t){return kn({...En(),recipes:e.map(e=>({id:e,label:e,models:[],nav:[],requires:[]})),cookbooks:t.map(e=>({id:e,name:e,document:{}}))})}var jn=An(E.map(e=>e.id),ne.map(e=>e.id));Object.fromEntries(jn.map(e=>[e.name,e.inputSchema])),jn.map(e=>e.name);function Mn(e,t,n=`input`){return hn(e,t,n)?.message??null}function Nn(e){let t=e;return{get:()=>t,set:e=>{t=e}}}var U=(e,t,n={})=>({code:e,message:t,...n}),W=(e,t)=>({ok:!1,...t===void 0?{}:{id:t},error:e}),G=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Pn=new Set([`apply_cookbook`,`import_cookbook`]),Fn=e=>e instanceof Error?e.message:String(e);function In(e,t){if(!G(e))return JSON.stringify([t,e??null]);let{overviews:n,...r}=e;return JSON.stringify([t,r])}function Ln(e){let{catalog:t,port:n,options:r={},env:i={}}=e,a=i.section??Nn(null),o=i.tab??Nn(null),s=kn(t),c=e=>s.find(t=>t.name===e)?.inputSchema,l=c(`focus`),u=c(`undo`),d,f=``,p=null,m=new Map,h=new Map,g=0,_=new Map,v=()=>n?.applied?.()??null,y=()=>r.navigation?.getTab()??o.get();function b(){if(!n?.read){d=Sn(e.cookbook===void 0?{catalog:t}:{catalog:t,state:{version:1,revision:0,applied:null,cookbook:e.cookbook,journal:[]}});return}let r=n.read();f=In(r,v());try{d=Sn({catalog:t,state:{version:1,revision:0,applied:v(),cookbook:r,journal:[]}})}catch(e){d=Sn({catalog:t}),p=Fn(e)}}b();function x(e,n){let r=d.state();try{d=Sn({catalog:t,state:{version:1,revision:r.revision+1,applied:v(),cookbook:e,journal:r.journal}}),p=null}catch(e){p=Fn(e)}m=new Map,h=new Map,f=n}function S(){if(n?.read)try{let e=n.read(),t=In(e,v());if(t===f)return;x(e,t)}catch(e){p=Fn(e)}}let C=()=>U(`failed`,`The app's document is not one the planner can read (${p}). Fix it or reset the cookbook, then try again.`),w=e=>W(C(),e);function T(e){if(!e)return;let t=m.get(e);return t||(t=`undo-${++g}`,m.set(e,t),h.set(t,e)),t}function E(e){let t=new Set(e);for(let[e,n]of m)t.has(e)||(m.delete(e),h.delete(n))}let D=e=>({...e,undo:e.undo.map(e=>T(e)),focus:{tab:y(),section:a.get()}});function O(){let e=d.snapshot();return E(e.undo),D(e)}function ee(e){if(!n?.read)return e;try{let t=n.read(),r=G(t)?t.overviews:void 0,{overviews:i,...a}=e;return Tt(G(r)&&Object.keys(r).length?{...a,overviews:r}:a)}catch{return e}}function te(e){if(!e.ok)return e;let{receipt:t}=e,n=e.replayed?void 0:T(t.undoId),{undoId:r,...i}=t,a=e.data;if(t.name===`export_cookbook`&&G(a)&&!e.replayed){let e=ee(a.cookbook);a={...a,cookbook:e,text:`${JSON.stringify(e,null,2)}\n`}}return{...e,...a===void 0?{}:{data:a},snapshot:O(),receipt:{...i,...n?{undoId:n}:{}}}}function ne(e,t){if(!n?.write)return;let i=d.snapshot().app.cookbook,a=e.includes(`apply_cookbook`)||i!==null&&i!==t;n.write(d.cookbook(),{commands:e,replaced:e.some(e=>Pn.has(e)),applied:i,libraryApplied:a}),n.read&&(f=In(n.read(),v())),a&&r.onReplaced?.()}function re(){if(!_.size)return;S();let e=O(),t=JSON.stringify(e);for(let[n,r]of _)r!==t&&(_.set(n,t),n(e))}function ie(e,t){for(let t of Object.keys(e))if(![`name`,`input`,`id`,`expectedRevision`].includes(t))return U(`invalid_input`,`${t} is not part of a command.`,{path:t});let{id:n}=e;if(n!==void 0&&!(typeof n==`string`&&n.length>0&&n.length<=200))return U(`invalid_input`,`id must be a non-empty string of at most 200 characters.`,{path:`id`});let r=e.expectedRevision??t.expectedRevision;return r!==void 0&&!(Number.isInteger(r)&&r>=0)?U(`invalid_input`,`expectedRevision must be a whole number.`,{path:`expectedRevision`}):null}function ae(e,t){let n=ie(e,t),i=typeof e.id==`string`?e.id:void 0;if(n)return W(n,i);let s=e.expectedRevision??t.expectedRevision,c=e.input??{},u=Mn(l,c);if(u)return W(U(`invalid_input`,u,{path:`input`}),i);let f=d.snapshot().revision;if(s!==void 0&&s!==f)return W(U(`conflict`,`The plan is at revision ${f}, not ${s}. Read the snapshot and try again.`,{details:{expectedRevision:s,currentRevision:f}}),i);if(c.section!==void 0&&!O().sections.some(e=>e.id===c.section))return W(U(`not_found`,`No menu section "${c.section}".`,{path:`input.section`}),i);let p=!1;c.tab&&Dn.includes(c.tab)&&(p||=y()!==c.tab,o.set(c.tab),r.navigation?.setTab(c.tab)),c.section!==void 0&&(p||=a.get()!==c.section,a.set(c.section),r.navigation?.setSection?.(c.section));let m={ok:!0,...i===void 0?{}:{id:i},snapshot:O(),receipt:{name:`focus`,...i===void 0?{}:{id:i},summary:``,changed:p,revisionBefore:f,revisionAfter:f}};return re(),m}function oe(e){let t=e.input;if(!n?.prepareImport||!G(t))return{raw:e};let r=n.prepareImport(t.document);return r.ok?{raw:{...e,input:{...t,document:r.cookbook}},dropped:r.dropped}:W(U(`invalid_input`,r.error,{path:`input.document`}),e.id)}function se(e){if(n?.read&&e.some(e=>typeof e==`string`&&Pn.has(e)))try{let e=n.read();if(Ct(d.cookbook())&&!Ct(e)){let n=d.state();d=Sn({catalog:t,state:{version:1,revision:n.revision,applied:v(),cookbook:e,journal:n.journal}}),m=new Map,h=new Map,f=In(e,v())}}catch(e){p=Fn(e)}}function ce(e,t={}){try{if(S(),p)return w(G(e)&&typeof e.id==`string`?e.id:void 0);if(!G(e))return te(d.run(e,t));if(e.name===`focus`)return ae(e,t);if(se([e.name]),p)return w(typeof e.id==`string`?e.id:void 0);let n=e,r;if(e.name===`import_cookbook`){let t=oe(e);if(`ok`in t)return t;n=t.raw,r=t.dropped}let i=d.snapshot().app.cookbook,a=le(n),o=a?ue(n,t,a):te(d.run(n,t));if(!o.ok)return o;!o.replayed&&o.receipt.changed&&ne([String(n.name)],i);let s=o;return r?.length&&(s={...o,receipt:{...o.receipt,warnings:[...o.receipt.warnings??[],...r.map(e=>`Not imported: ${e}`)]}}),re(),s.ok?{...s,snapshot:O()}:s}catch(e){return W(U(`failed`,Fn(e)))}}function le(e){let n=e.input;if(e.name!==`apply_cookbook`||!G(n))return;let r=t.cookbooks?.find(e=>e.id===n.id);if(!r||r.document.theme)return;let i=d.cookbook().theme;if(!i)return;let a={};return i.preset&&(a.preset=i.preset),i.custom?.primary&&(a.primary=i.custom.primary),i.colorScheme&&(a.colorScheme=i.colorScheme),i.borderRadius&&(a.borderRadius=i.borderRadius),i.density&&(a.density=i.density),i.contrast&&(a.contrast=i.contrast),Object.keys(a).length?a:void 0}function ue(e,t,n){let r=d.batch({...e.id===void 0?{}:{id:e.id},expectedRevision:e.expectedRevision??t.expectedRevision,commands:[e,{name:`set_theme`,input:n}].map(({id:e,expectedRevision:t,...n})=>n)});if(!r.ok){let t=r.error.details?.cause;return W(r.error.code===`batch_failed`&&t?t:r.error,e.id)}let i=r.results[0],a=r.replayed?void 0:T(r.receipt.undoId);return{...i,...r.id===void 0?{}:{id:r.id},...r.replayed?{replayed:!0}:{},snapshot:O(),receipt:{...i.receipt,...r.id===void 0?{}:{id:r.id},revisionBefore:r.receipt.revisionBefore,revisionAfter:r.receipt.revisionAfter,changed:r.receipt.changed,...a?{undoId:a}:{}}}}function k(e){try{if(S(),p)return{ok:!1,error:C(),snapshot:O()};let t=G(e)&&Array.isArray(e.commands)?e.commands:[];if(se(t.map(e=>G(e)?e.name:void 0)),p)return{ok:!1,error:C(),snapshot:O()};let n=d.snapshot().app.cookbook,r=d.batch(e);if(!r.ok)return{...r,snapshot:O()};!r.replayed&&r.receipt.changed&&ne(t.map(e=>String(e?.name)),n);let i=r.replayed?void 0:T(r.receipt.undoId),{undoId:a,...o}=r.receipt,s=O(),c={...r,snapshot:s,receipt:{...o,...i?{undoId:i}:{}},results:r.results.map(e=>({...e,snapshot:r.replayed?s:D(e.snapshot)}))};return re(),c}catch(e){return{ok:!1,error:U(`failed`,Fn(e)),snapshot:O()}}}function de(e){if(!G(e)||e.name!==`undo`||!G(e.input))return e;let t=e.input.undoId;return typeof t==`string`?{...e,input:{...e.input,undoId:h.get(t)??``}}:e}function fe(e,t){if(e.ok||e.error.code!==`not_found`)return e;let n=h.get(t);return n?{...e,error:{...e.error,message:e.error.message.replace(`"${n}"`,`"${t}"`)}}:e}let pe=(e,t)=>{if(G(e)&&e.name===`undo`&&G(e.input)){let n=e.input.undoId;if(typeof n==`string`&&Mn(u,e.input)===null)return S(),O(),h.has(n)?fe(ce(de(e),t),n):W(U(`not_found`,`Nothing to undo for "${n}".`,{path:`input.undoId`}),e.id)}return ce(de(e),t)};return{run:pe,batch:k,snapshot(){return S(),O()},cookbook(){return S(),ee(d.cookbook())},undo(){S();let e=O().undo.at(-1);return e?pe({name:`undo`,input:{undoId:e}}):W(U(`not_found`,`Nothing to undo.`))},state:()=>d.state(),get tools(){return s},get batchTool(){return d.batchTool},observe(){return S(),JSON.stringify(O())},deliver:re,subscribe(e){i.watch?.start(),S();let t=O();return _.set(e,JSON.stringify(t)),e(t),()=>{_.delete(e),_.size||i.watch?.stop()}}}}var Rn=`smrt-planner:cookbook`,zn=new class{#e=n(null);get active(){return e(this.#e)}set active(e){s(this.#e,e,!0)}load(e=_()){try{this.active=e?.getItem(`smrt-planner:cookbook`)??null}catch{this.active=null}l(this.active)}select(e,t=_()){this.active=e;try{t?.setItem(Rn,e)}catch{}}};function Bn(t){let r=n(i(t));return{get:()=>e(r),set:e=>{s(r,e,!0)}}}function Vn(e){return{read:()=>e.snapshot(),applied:()=>zn.active,prepareImport:e=>C(e),write(t,{replaced:n,applied:r,libraryApplied:i}){let a=n?t:{...t,overviews:e.snapshot().overviews};n?e.replace(a):e.apply(a),i&&r&&(zn.select(r),l(r))}}}function Hn(e=S,t={}){let n,i=Ln({catalog:En(),port:Vn(e),options:t,env:{section:Bn(null),tab:Bn(null),watch:{start(){n||=o(()=>{r(()=>{i.observe(),a(i.deliver)})})},stop(){n?.(),n=void 0}}}});return i}var Un=()=>({$schema:v,version:1,recipes:[],features:[],policies:[]});function Wn(e){let{store:t,settings:n,theme:r}=e;return{read(){let e={...Un(),recipes:[...t.ids].sort()};n&&(e=D(e,n.read()));let i=r?.read();return i?{...e,theme:i}:e},write(e){let i=new Set(e.recipes),a=new Set(t.ids),o=[...a].filter(e=>!i.has(e));o.length&&t.remove(...o);let s=[...i].filter(e=>!a.has(e));s.length&&t.add(...s),n&&n.write(O(e)),r?.write(e.theme)}}}function Gn(e,t={}){return Ln({catalog:En(),port:Wn(e),options:t})}var Kn=[`cookbooks`,`recipes`,`features`,`layout`,`theme`,`settings`,`export`];function qn(e,t=`cookbooks`){let n=new URLSearchParams(e).get(`tab`);return Kn.find(e=>e===n)??t}var Jn=new class{#e=n(`cookbooks`);get active(){return e(this.#e)}set active(e){s(this.#e,e,!0)}fromSearch(e,t=`cookbooks`){this.active=qn(e,t)}leaveExport(e=`cookbooks`){this.active===`export`&&(this.active=e)}},Yn={},Xn=Hn(S,{navigation:{getTab:()=>Jn.active,setTab:e=>{Jn.active=e},setSection:e=>Yn.openSection?.(e)},onReplaced:()=>Yn.onReplaced?.()}),Zn=`Qwen3-1.7B-q4f16_1-MLC`,Qn=[{id:Zn,label:`Qwen3 1.7B (recommended)`,downloadMB:1100,vramMB:2037},{id:`Llama-3.2-1B-Instruct-q4f16_1-MLC`,label:`Llama 3.2 1B (smallest)`,downloadMB:700,vramMB:879},{id:`Qwen3-4B-q4f16_1-MLC`,label:`Qwen3 4B (smarter, larger)`,downloadMB:2300,vramMB:3432}];function $n(e){return Qn.find(t=>t.id===e)}function er(e){return e>=1e3?`about ${(e/1e3).toFixed(1)} GB`:`about ${e} MB`}function tr(e){return e.label.replace(/\s*\(.*\)\s*$/,``)}var nr=`Qwen3-4B-q4f16_1-MLC`;function rr(e,t){return t>=e.vramMB*1e6*1.2}async function ir(e=typeof navigator>`u`?void 0:navigator){try{return(await e?.gpu?.requestAdapter())?.limits?.maxBufferSize??0}catch{return 0}}function ar(e){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(`
23
+ `)}var K=class extends Error{code;provider;model;retryable;constructor(e,t,n,r,i=!1){super(e),this.code=t,this.provider=n,this.model=r,this.retryable=i,this.name=`AIError`}},or=class extends K{constructor(e,t){super(`Model not found: ${e}`,`MODEL_NOT_FOUND`,t,e,!1),this.name=`ModelNotFoundError`}},sr=class extends K{constructor(e,t){super(`Input exceeds maximum context length`,`CONTEXT_LENGTH_EXCEEDED`,e,t,!1),this.name=`ContextLengthError`}},cr=class extends K{constructor(e=`webllm`,t){super(t??`WebGPU is not available in this environment (navigator.gpu is missing); on-device inference cannot run.`,`WEBGPU_UNAVAILABLE`,e,void 0,!1),this.name=`WebGPUUnavailableError`}},lr=class extends K{constructor(e){super("The webllm provider needs the optional peer dependency @mlc-ai/web-llm. Install it with `pnpm add @mlc-ai/web-llm` (or the npm/yarn equivalent).",`WEBLLM_PEER_MISSING`,`webllm`,void 0,!1),this.name=`WebLLMPeerMissingError`,e!==void 0&&(this.cause=e)}},ur=12e4,q=Object.freeze({maxOutputTokens:131072,defaultOutputTokens:4096,maxReasoningTokens:1024,maxImagesPerRequest:1,onExceeded:`error`});function J(e,t,n){if(e===void 0)return t;if(!Number.isFinite(e)||e<=0)throw new K(`${n} must be a positive finite number`,`AI_LIMIT_INVALID`);return Math.trunc(e)}function dr(e){let t=e.generationLimits||{},n={maxOutputTokens:J(t.maxOutputTokens,q.maxOutputTokens,`generationLimits.maxOutputTokens`),defaultOutputTokens:Math.min(J(t.defaultOutputTokens,q.defaultOutputTokens,`generationLimits.defaultOutputTokens`),J(t.maxOutputTokens,q.maxOutputTokens,`generationLimits.maxOutputTokens`)),maxReasoningTokens:J(t.maxReasoningTokens,q.maxReasoningTokens,`generationLimits.maxReasoningTokens`),maxImagesPerRequest:J(t.maxImagesPerRequest,q.maxImagesPerRequest,`generationLimits.maxImagesPerRequest`),onExceeded:t.onExceeded||q.onExceeded};if(![`error`,`clamp`].includes(n.onExceeded))throw new K(`generationLimits.onExceeded must be "error" or "clamp"`,`AI_LIMIT_INVALID`);return{...e,timeout:J(e.timeout,ur,`timeout`),maxRetries:(()=>{if(e.maxRetries===void 0)return 0;if(!Number.isFinite(e.maxRetries)||e.maxRetries<0)throw new K(`maxRetries must be a non-negative finite number`,`AI_LIMIT_INVALID`);return Math.trunc(e.maxRetries)})(),generationLimits:n}}function fr(e){switch(e){case!1:case`none`:return 0;case`minimal`:return 1024;case`low`:return 2048;case`medium`:return 4096;case`high`:return 8192;default:return}}function pr(e,t,n,r,i,a){if(!Number.isFinite(e)||e<0)throw new K(`${r} must be a non-negative finite number`,`AI_LIMIT_INVALID`,i,a);let o=Math.trunc(e);if(o<=t)return o;if(n===`clamp`)return t;throw new K(`${r} ${o} exceeds configured ceiling ${t}`,`AI_LIMIT_EXCEEDED`,i,a)}function mr(e,t,n,r){let i=dr(e).generationLimits,a=t.maxTokens??i.defaultOutputTokens??i.maxOutputTokens,o=t.thinkingLevel??e.thinkingLevel,s=t.reasoning!==void 0||o!==void 0||t.includeThoughts===!0?t.reasoning?.maxTokens??fr(t.reasoning?.effort??o)??i.maxReasoningTokens:0;return{...t,maxTokens:pr(a,i.maxOutputTokens,i.onExceeded,`maxTokens`,n,r),reasoning:{...t.reasoning,maxTokens:pr(s,i.maxReasoningTokens,i.onExceeded,`reasoning.maxTokens`,n,r),includeThoughts:t.reasoning?.includeThoughts??t.includeThoughts}}}function hr(e,t={}){let n=dr(e),r=J(t.timeout,n.timeout,`timeout`),i=new AbortController,a=!1,o=()=>i.abort(t.signal?.reason);t.signal?.aborted?o():t.signal?.addEventListener(`abort`,o,{once:!0});let s=setTimeout(()=>{a=!0,i.abort(Error(`AI request timed out after ${r}ms`))},r);return{signal:i.signal,timeout:r,didTimeout:()=>a,cleanup:()=>{clearTimeout(s),t.signal?.removeEventListener(`abort`,o)}}}[...new Set([`getVideoGenerationJob`,`fetchVideoGenerationResult`,`cancelVideoGenerationJob`])];function gr(e,t,n,r,i,a,o){if(!e.onUsage)return;let s=e.usageTags,c=s||o?{...s,...o}:void 0;try{e.onUsage({provider:t,model:r,operation:n,usage:i,duration:Date.now()-a,timestamp:new Date,tags:c})}catch{}}var Y=`webllm`,_r=4096,vr={chat:!0,completion:!0,embeddings:!1,streaming:!0,functions:!0,vision:!1,fineTuning:!1,imageEmbeddings:!1,imageGeneration:!1,videoGeneration:!1,tts:!1,voiceCloning:!1,voiceDesign:!1,maxContextLength:_r,supportedOperations:[`chat`,`completion`,`streaming`,`functions`]},yr=new WeakMap,br=new Map;async function xr(){try{let e=await c(()=>import(`./FbOxj-PF.js`),[],import.meta.url),t=typeof e?.CreateMLCEngine==`function`?e:e?.default;if(typeof t?.CreateMLCEngine!=`function`)throw Error(`@mlc-ai/web-llm did not export CreateMLCEngine`);return t}catch(e){throw new lr(e)}}function Sr(){return!!globalThis.navigator?.gpu}function X(e){throw new K(`${e} is not supported by the webllm provider.`,`NOT_SUPPORTED`,Y)}function Cr(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var wr=class{options;explicitModel;factoryEngine;localEngines=new Map;constructor(e){this.explicitModel=e.defaultModel??e.model,this.options=dr({...e,defaultModel:this.explicitModel??`Llama-3.2-1B-Instruct-q4f16_1-MLC`})}async acquireEngine(e,t){let n=this.options.engine;if(n)return typeof n==`function`?(this.factoryEngine??=n().catch(e=>{throw this.factoryEngine=void 0,e}),Or(this.factoryEngine,t)):n;if(!Sr())throw new cr(Y);let r=this.options.appConfig?this.localEngines:br,i=r.get(e);if(!i){let t=new Set,n={listeners:t,promise:this.createEngine(e,t)};n.promise.catch(()=>{r.get(e)===n&&r.delete(e)}),r.set(e,n),i=n}let a=this.options.onLoadProgress;a&&i.listeners.add(a);try{return await Or(i.promise,t)}finally{a&&i.listeners.delete(a)}}async createEngine(e,t){return(await xr()).CreateMLCEngine(e,{...this.options.appConfig?{appConfig:this.options.appConfig}:{},initProgressCallback:e=>{for(let n of t)try{n(e)}catch{}}})}mapMessages(e){return e.map(e=>{if(e.role===`user`&&Array.isArray(e.content))return{role:`user`,content:e.content.map(e=>e.type===`text`?{type:`text`,text:e.text}:{type:`image_url`,image_url:{url:e.image_url.url}}),...e.name?{name:e.name}:{}};let t=ar(e.content);return e.role===`tool`||e.role===`function`?{role:`tool`,content:t,tool_call_id:e.tool_call_id??e.name??``}:e.role===`assistant`?Cr({role:`assistant`,content:t||(e.tool_calls?.length?null:``),tool_calls:e.tool_calls?.map(e=>({id:e.id,type:e.type,function:{name:e.function.name,arguments:e.function.arguments}}))}):{role:e.role,content:t,...e.name?{name:e.name}:{}}})}mapResponseFormat(e){return e.responseSchema===void 0?e.responseFormat?.type===`json_object`?{type:`json_object`}:void 0:{type:`json_object`,schema:typeof e.responseSchema==`string`?e.responseSchema:JSON.stringify(e.responseSchema)}}buildRequest(e,t,n,r,i){let a=i&&t.tools?.length?t.tools.map(e=>({type:`function`,function:{name:e.function.name,description:e.function.description,parameters:e.function.parameters}})):void 0;return Cr({model:n,messages:this.mapMessages(e),max_tokens:t.maxTokens,temperature:t.temperature,top_p:t.topP,n:t.n,stop:t.stop,frequency_penalty:t.frequencyPenalty,presence_penalty:t.presencePenalty,seed:t.seed,tools:a,tool_choice:a?t.toolChoice:void 0,response_format:this.mapResponseFormat(t),stream:r,stream_options:r?{include_usage:!0}:void 0})}requestModel(e,t){return this.options.engine?t.model??this.explicitModel:e}mapUsage(e){let t=e;if(t)return{promptTokens:t.prompt_tokens??0,completionTokens:t.completion_tokens??0,totalTokens:t.total_tokens??0}}mapFinishReason(e){switch(e){case`length`:return`length`;case`tool_calls`:return`tool_calls`;default:return`stop`}}assertNotInterrupted(e,t){if(e===`abort`)throw new K(`Generation was interrupted before it finished`,`AI_INTERRUPTED`,Y,t,!0)}mapError(e,t){if(e instanceof K)return e;let n=e?.name??``,r=e instanceof Error?e.message:String(e);if(n===`WebGPUNotAvailableError`||n===`WebGPUNotFoundError`)return new cr(Y,r);if(n===`ContextWindowSizeExceededError`||n===`PrefillChunkSizeSmallerThanImageError`)return new sr(Y,t);if(n===`ModelNotFoundError`||n===`SpecifiedModelNotFoundError`||n===`UnsupportedModelIdError`||n===`ModelNotLoadedError`)return new or(t??r,Y);let i=new K(r,n===`DeviceLostError`?`WEBGPU_DEVICE_LOST`:`API_ERROR`,Y,t);return i.cause=e,i}abortError(e,t,n){if(e?.didTimeout())return new K(`AI request timed out after ${e.timeout}ms`,`AI_TIMEOUT`,Y,n);if(t.signal?.aborted)return new K(`AI request aborted by caller`,`AI_ABORTED`,Y,n)}async lockEngine(e,t){let n=yr.get(e)??Promise.resolve(),r=()=>{},i=new Promise(e=>{r=e});yr.set(e,n.then(()=>i));try{await Or(n,t)}catch(e){throw r(),e}return r}bindInterrupt(e,t){let n=()=>{try{Promise.resolve(e.interruptGenerate()).catch(()=>{})}catch{}};return t.aborted&&n(),t.addEventListener(`abort`,n,{once:!0}),()=>t.removeEventListener(`abort`,n)}async chat(e,t={}){let n=Date.now(),r,i,a,o,s,c=t.model||this.options.defaultModel||`Llama-3.2-1B-Instruct-q4f16_1-MLC`;try{t=mr(this.options,t,Y,c);let l=await this.acquireEngine(c,t.signal);r=hr(this.options,t),a=await this.lockEngine(l,r.signal),i=this.bindInterrupt(l,r.signal),o=l.chat.completions.create(this.buildRequest(e,t,this.requestModel(c,t),!1,!0));let u=o,d=!1,f=()=>{d=!0};u.then(f,f),s=()=>d?void 0:u;let p=await Or(o,r.signal);if(r.signal.aborted)throw this.abortError(r,t,c)??r.signal.reason;let m=p?.choices?.[0];if(this.assertNotInterrupted(m?.finish_reason,c),!m)throw new K(`No choices returned from webllm`,`NO_CHOICES`,Y);let h=this.mapUsage(p.usage);gr(this.options,Y,`chat`,p.model||c,h,n,t.usageTags);let g=m.message?.tool_calls?.map(e=>({id:e.id,type:`function`,function:{name:e.function.name,arguments:e.function.arguments}}));return{content:m.message?.content||``,usage:h,model:p.model||c,finishReason:this.mapFinishReason(m.finish_reason),...g?.length?{toolCalls:g}:{}}}catch(e){throw this.abortError(r,t,c)??this.mapError(e,c)}finally{i?.(),Er(a,s?.()),r?.cleanup()}}async complete(e,t={}){return this.chat([{role:`user`,content:e}],{model:t.model,maxTokens:t.maxTokens,temperature:t.temperature,topP:t.topP,n:t.n,stop:t.stop,stream:t.stream,onProgress:t.onProgress,signal:t.signal,timeout:t.timeout,reasoning:t.reasoning,usageTags:t.usageTags,continueOnLength:t.continueOnLength})}async message(e,t={}){let n=[...t.history||[],{role:t.role||`user`,content:e}];return(await this.chat(n,{model:t.model,maxTokens:t.maxTokens,temperature:t.temperature,topP:t.topP,stop:t.stop,stream:t.stream,frequencyPenalty:t.frequencyPenalty,presencePenalty:t.presencePenalty,responseFormat:t.responseFormat,responseSchema:t.responseSchema,seed:t.seed,tools:t.tools,toolChoice:t.toolChoice,onProgress:t.onProgress,signal:t.signal,timeout:t.timeout,reasoning:t.reasoning,usageTags:t.usageTags,continueOnLength:t.continueOnLength})).content}async*stream(e,t={}){let n=Date.now(),r,i,a,o,s,c=!1,l,u=t.model||this.options.defaultModel||`Llama-3.2-1B-Instruct-q4f16_1-MLC`;try{t=mr(this.options,t,Y,u),a=await this.acquireEngine(u,t.signal),r=hr(this.options,t),o=await this.lockEngine(a,r.signal),i=this.bindInterrupt(a,r.signal);let d=a.chat.completions.create(this.buildRequest(e,t,this.requestModel(u,t),!0,!1)),f;try{f=await Or(d,r.signal)}catch(e){throw l=d.then(e=>Dr(e[Symbol.asyncIterator](),a),()=>{}),e}s=f[Symbol.asyncIterator]();let p,m;for(;;){let e=await s.next();if(e.done){c=!0;break}let n=e.value,r=n.choices?.[0];p=r?.finish_reason??p,n.usage&&(m=this.mapUsage(n.usage));let i=r?.delta?.content;i&&(t.onProgress?.(i),yield i)}if(r.signal.aborted)throw this.abortError(r,t,u)??r.signal.reason;this.assertNotInterrupted(p,u),t.onFinishReason?.(this.mapFinishReason(p)),gr(this.options,Y,`stream`,u,m,n,t.usageTags)}catch(e){throw this.abortError(r,t,u)??this.mapError(e,u)}finally{if(s&&!c&&a){try{Promise.resolve(a.interruptGenerate()).catch(()=>{})}catch{}await Tr(s)}i?.(),Er(o,l),r?.cleanup()}}async countTokens(e){return Math.ceil(e.length/4)}async getModels(){let e=await xr(),t=this.options.appConfig?.model_list??e.prebuiltAppConfig.model_list,n=new Set(e.functionCallingModelIds??[]);return t.filter(e=>e.model_type!==1).map(e=>{let t=e.model_type===2,r=n.has(e.model_id);return{id:e.model_id,name:e.model_id,description:e.vram_required_MB?`Runs on-device via WebGPU (~${Math.round(e.vram_required_MB)} MB VRAM)`:`Runs on-device via WebGPU`,contextLength:e.overrides?.context_window_size??_r,capabilities:[`text`,`chat`,...r?[`functions`]:[],...t?[`vision`]:[]],supportsFunctions:r,supportsVision:t}})}async getCapabilities(){return{...vr}}async embed(e,t={}){return X(`Embeddings`)}async embedImage(e,t={}){return X(`Image embeddings`)}async describeImage(e,t,n={}){return X(`Image description`)}async generateImage(e,t={}){return X(`Image generation`)}async submitVideoGenerationJob(e){return X(`Video generation`)}async getVideoGenerationJob(e){return X(`Video generation`)}async fetchVideoGenerationResult(e){return X(`Video generation`)}async cancelVideoGenerationJob(e){return X(`Video generation`)}async validateVideoGenerationAccess(){return X(`Video generation`)}async synthesizeSpeech(e,t){return X(`Text-to-speech`)}streamSpeech(e,t){let n=new K(`Text-to-speech streaming is not supported by the webllm provider.`,`NOT_SUPPORTED`,Y);return{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(n)})}}async cloneVoice(e){return X(`Voice cloning`)}async designVoice(e){return X(`Voice design`)}async getVoices(e){return X(`Voice listing`)}};async function Tr(e){try{for(;!(await e.next()).done;);}catch{}}function Er(e,t){e&&(t?t.then(e,e):e())}async function Dr(e,t){try{if((await e.next()).done)return;await Promise.resolve(t?.interruptGenerate())}catch{return}await Tr(e)}function Or(e,t){return t?t.aborted?Promise.reject(new K(`AI request aborted by caller`,`AI_ABORTED`,Y)):new Promise((n,r)=>{let i=()=>r(new K(`AI request aborted by caller`,`AI_ABORTED`,Y));t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,i),n(e)},e=>{t.removeEventListener(`abort`,i),r(e)})}):e}var kr={createWorker:()=>new Worker(new URL(new URL(`../workers/llm.worker-wfCOG_uk.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),createEngine:async(e,t,n)=>{let{CreateWebWorkerMLCEngine:r}=await c(async()=>{let{CreateWebWorkerMLCEngine:e}=await import(`./FbOxj-PF.js`);return{CreateWebWorkerMLCEngine:e}},[],import.meta.url);return r(e,t,{initProgressCallback:e=>n(e)})}};async function Ar(e,t,n,r=kr){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let i=r.createWorker(),a=()=>i.terminate(),o,s=new Promise((e,t)=>{o=()=>{a(),t(new DOMException(`Cancelled`,`AbortError`))},n?.addEventListener(`abort`,o,{once:!0})});try{return{engine:await Promise.race([r.createEngine(i,e,t),s]),dispose:a}}catch(e){throw a(),e}finally{o&&n?.removeEventListener(`abort`,o)}}var jr=e=>!!e&&typeof e==`object`&&e.kind===`cookbook-offer`&&typeof e.offerId==`string`,Mr=class{find;#e=n(i({}));get offers(){return e(this.#e)}set offers(e){s(this.#e,e,!0)}applier=null;counter=0;constructor(e){this.find=e}pending(){return Object.values(this.offers).find(e=>e.status===`pending`)}engaged(){return Object.values(this.offers).some(e=>e.status===`pending`||e.status===`applied`)}offer(e){let t=this.pending();if(t?.cookbookId===e)return null;t&&(t.status=`replaced`);let n=`offer-${++this.counter}`;return this.offers[n]={id:n,cookbookId:e,status:`pending`,error:``},{kind:`cookbook-offer`,offerId:n}}accept(e){let t=this.offers[e];if(t?.status!==`pending`)return;let n=this.find(t.cookbookId),r=n?this.applier?this.applier(n):`Not ready yet.`:`Unknown cookbook.`;if(r||!n){t.status=`failed`,t.error=r??`Could not set it up.`;return}t.status=`applied`}decline(e){let t=this.offers[e];t?.status===`pending`&&(t.status=`declined`)}},Nr=`smrt-planner:assistant:v1`;function Pr(){return{modelId:Zn,consented:[]}}function Fr(e){let t=Pr();try{let n=e?.getItem(Nr);if(!n)return t;let r=JSON.parse(n);typeof r.modelId==`string`&&$n(r.modelId)&&(t.modelId=r.modelId),Array.isArray(r.consented)&&(t.consented=r.consented.filter(e=>typeof e==`string`&&!!$n(e)))}catch{}return t}function Ir(e,t){try{e?.setItem(Nr,JSON.stringify(t))}catch{}}var Lr=e=>!!e&&typeof e==`object`&&e.kind===`theme-undo`&&typeof e.undoId==`string`,Rr=class{store;controller;#e=n(i({}));get undos(){return e(this.#e)}set undos(e){s(this.#e,e,!0)}counter=0;constructor(e,t){this.store=e,this.controller=t}record(e,n){let r=`theme-undo-${++this.counter}`;return this.undos[r]={id:r,previous:e?structuredClone(t(e)):void 0,status:`available`,...n?{commandUndoId:n}:{}},{kind:`theme-undo`,undoId:r}}undo(e){let t=this.undos[e];t?.status===`available`&&(t.commandUndoId&&this.controller?.run({name:`undo`,input:{undoId:t.commandUndoId}}).ok||this.store.write(t.previous),t.status=`undone`)}};function zr(e,t=[],n=!1,r=!1){let i=e.map(e=>e.id),a={type:`array`,items:{enum:i},maxItems:i.length},o={reply:{type:`string`,maxLength:200},add:a,remove:a};return t.length&&(o.cookbook={enum:[...t.map(e=>e.id),null]}),n&&(o.settings={type:`object`,properties:{currency:{type:`string`,pattern:`^[A-Z]{3}$`},taxRate:{type:`number`,minimum:0,maximum:100},paymentTerms:{type:`string`,maxLength:40},pricesIncludeTax:{type:`boolean`},taxRounding:{enum:[`line`,`document`]}},additionalProperties:!1}),r&&(o.theme={type:`object`,properties:{preset:{enum:[...b]},primary:{type:`string`,pattern:`^#[0-9a-fA-F]{6}$`},colorScheme:{enum:[`light`,`dark`]},borderRadius:{enum:[...x]},density:{enum:[...w]},contrast:{enum:[...T]}},additionalProperties:!1}),{type:`object`,properties:o,required:[`reply`,`add`,`remove`],additionalProperties:!1}}function Br(e){let t={};if(!e||typeof e!=`object`||Array.isArray(e))return t;let n=e;if(typeof n.currency==`string`){let e=n.currency.trim().toUpperCase();Cn.has(e)&&(t.currency=e)}let r=n.taxRate;if(typeof r==`number`&&Number.isFinite(r)&&r>=0&&r<=100&&(t.taxRate=r),typeof n.paymentTerms==`string`){let e=[...n.paymentTerms].map(e=>e.charCodeAt(0)<32||e.charCodeAt(0)===127?` `:e).join(``).trim();e&&e.length<=40&&(t.paymentTerms=e)}return typeof n.pricesIncludeTax==`boolean`&&(t.pricesIncludeTax=n.pricesIncludeTax),(n.taxRounding===`line`||n.taxRounding===`document`)&&(t.taxRounding=n.taxRounding),t}function Vr(e){let t={};if(!e||typeof e!=`object`||Array.isArray(e))return t;let n=e;typeof n.preset==`string`&&b.includes(n.preset)&&(t.preset=n.preset);let r=g(n.primary);return r&&(t.primary=r),(n.colorScheme===`light`||n.colorScheme===`dark`||n.colorScheme===`system`)&&(t.colorScheme=n.colorScheme),x.includes(n.borderRadius)&&(t.borderRadius=n.borderRadius),w.includes(n.density)&&(t.density=n.density),T.includes(n.contrast)&&(t.contrast=n.contrast),t}function Hr(e){return e.replace(/<think>[\s\S]*?<\/think>/gi,``).replace(/<think>[\s\S]*$/i,``).trim()}function Ur(e){let t=/"reply"\s*:\s*"((?:[^"\\]|\\.)*)/.exec(e);if(!t)return null;let n=t[1];n=n.replace(/\\$/,``);try{n=JSON.parse(`"${n}"`)}catch{n=n.replace(/\\n/g,` `).replace(/\\"/g,`"`)}return n.trim()||null}function Wr(e,t,n=[],r={}){let i=new Set(t.map(e=>e.id)),a=Hr(e),o=e=>({reply:e,add:[],remove:[],cookbook:null,settings:{},theme:{}}),s=/^[\s`]*[{[]/.test(a)||/"reply"\s*:/.test(a),c=()=>o(s?Ur(a)??`Sorry, say that again?`:a),l;try{l=JSON.parse(a)}catch{return c()}if(!l||typeof l!=`object`||Array.isArray(l))return c();let u=l,d=e=>Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`&&i.has(e)))]:[],f=d(u.add),p=d(u.remove),m=new Set(f.filter(e=>p.includes(e))),h=r.commands?Gr(u.commands):[];return{reply:typeof u.reply==`string`?u.reply.trim():``,add:f.filter(e=>!m.has(e)),remove:p.filter(e=>!m.has(e)),cookbook:typeof u.cookbook==`string`&&n.some(e=>e.id===u.cookbook)?u.cookbook:null,settings:Br(u.settings),theme:Vr(u.theme),...h.length?{commands:h}:{}}}function Gr(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=8)break;if(!n||typeof n!=`object`)continue;let{name:e,input:r}=n;typeof e==`string`&&t.push({name:e,input:r??{}})}return t}function Kr(e,t){let n=e=>t.find(t=>t.id===e)?.label??e,r=e=>e.map(n).join(`, `),i=[];return e.added.length&&i.push(`Added ${r(e.added)}.`),e.removed.length&&i.push(`Removed ${r(e.removed)}.`),e.kept.length&&i.push(`Kept ${r(e.kept)} (needed).`),i.join(` `)}var qr={name:10,synonym:6,keyword:4},Jr=1.5,Yr=new Set([`a`,`an`,`and`,`the`,`of`,`for`,`to`,`in`,`on`,`or`,`general`,`simple`]),Xr=[`car`,`vehicle`,`metal`,`steel`,`gates`,`studio`,`classes`,`members`,`shop`,`order`,`item`,`material`,`customer`,`sales`,`stock`,`schedule`,`terms`];function Zr(e){return e.length<=3?e:e.endsWith(`ies`)?`${e.slice(0,-3)}y`:e.endsWith(`sses`)?e.slice(0,-2):/(us|ss|is)$/.test(e)?e:e.endsWith(`s`)?e.slice(0,-1):e}function Qr(e){return e.normalize(`NFD`).replace(/\p{M}/gu,``).toLowerCase().replace(/['’]s\b/g,``).replace(/['’]/g,``).replace(/[^a-z0-9]+/g,` `).trim().split(` `).filter(Boolean).map(Zr).join(` `)}var $r=new Set(Xr.map(Qr)),ei={"commerce.customers":[`customer`,`client`,`contacts`,`patrons`],"commerce.purchases":[`purchase`,`buy supplies`,`reorder`,`order from suppliers`],"commerce.sales":[`sell`,`sale`,`sales order`,`point of sale`],"commerce.vendors":[`vendor`,`supplier`,`who we buy from`],"inventory.stock":[`inventory`,`track stock`,`stock levels`,`warehouse`,`count stock`],"products.simple":[`product`,`price list`,`menu`,`things we sell`],"products.clothing":[`clothes`,`shirts`,`fashion`,`sizes and colours`],"products.ingredients":[`ingredient`,`recipe`,`raw material`,`flour`,`components`],"commerce.estimates":[`estimate`,`quote`,`quotes for customers`,`price quote`,`bid`],"commerce.wholesale":[`wholesale`,`bulk`,`trade customers`,`resellers`],"commerce.invoicing":[`invoice`,`send invoices`,`bill customers`,`get paid`,`receipts`],"commerce.fulfillment":[`ship`,`shipping`,`courier`,`parcels`,`deliver`],"commerce.agreements":[`contract`,`agreement`,`sign contracts`],"commerce.leases":[`lease`,`rent out`,`equipment hire`],"commerce.licenses":[`licence`,`licence sales`,`software licenses`],"ledgers.bookkeeping":[`books`,`keep the books`,`bookkeeper`,`accountant`,`expenses`],"projects.tracker":[`project`,`task`,`to do list`,`bug`,`ticket`],"events.calendar":[`appointment`,`schedule appointments`,`event`,`meeting`,`reservation`],"sales.pipeline":[`lead`,`pipeline`,`prospect`,`follow up`,`sales funnel`]};function ti(e,t){let n=Qr(e);if(!n)return null;let r=n.split(` `);return r.length===1&&Yr.has(n)?null:{text:n,tier:t,weak:t!==`name`&&r.every(e=>$r.has(e)),words:r.length}}function Z(e,t,n){let r=ti(t,n);if(!r)return;let i=e.terms.find(e=>e.text===r.text);if(i){qr[r.tier]>qr[i.tier]&&(i.tier=r.tier,i.weak=r.weak);return}e.terms.push(r)}function ni(e){return Qr(e).split(` `).filter(e=>e&&!Yr.has(e))}var ri=[`theme`,`colour`,`color`,`colour scheme`,`dark mode`,`light mode`,`brand`,`branding`,`style`,`warmer`,`cooler`,`font`];function ii(e,t=[],n={}){let r=[];for(let t of e){let e={kind:`recipe`,id:t.id,terms:[],exact:Qr(t.label)};Z(e,t.label,`name`),Z(e,(t.id.split(`.`).pop()??``).replace(/[-_]/g,` `),`name`);for(let n of ni(t.label))Z(e,n,`synonym`);for(let n of t.synonyms)Z(e,n,`synonym`);for(let n of ei[t.id]??[])Z(e,n,`keyword`);r.push(e)}for(let e of t){let t={kind:`cookbook`,id:e.id,terms:[],exact:Qr(e.name)};Z(t,e.name,`name`),Z(t,e.id.replace(/[-_]/g,` `),`name`);for(let n of e.keywords??[])Z(t,n,`keyword`);r.push(t)}if(n.theme){let e={kind:`theme`,id:`theme`,terms:[]};for(let t of ri)Z(e,t,`keyword`);r.push(e)}return{entries:r}}function ai(e,t){let n=Qr(t),r=` ${n} `,i=[];for(let t of e.entries){let e=0,a=!1,o=[];for(let n of t.terms)r.includes(` ${n.text} `)&&(o.push(n.text),e+=qr[n.tier]*(n.words>1?Jr:1)*(n.weak?.5:1),n.weak||(a||=!0));o.length&&(t.exact&&t.exact===n&&(e+=1),i.push({kind:t.kind,id:t.id,score:e,confidence:a?`strong`:`weak`,terms:o}))}return i.sort((e,t)=>t.score-e.score||e.id.localeCompare(t.id))}var oi=5,si=2,ci=[{says:`I run a bakery`,cookbook:`bakery`,answer:{reply:`The Bakery cookbook covers that.`,add:[],remove:[],cookbook:`bakery`}},{says:`I need to send invoices`,recipes:[`commerce.invoicing`],answer:{reply:`Added invoicing for billing customers.`,add:[`commerce.invoicing`],remove:[]}},{says:`we don't need the pipeline`,recipes:[`sales.pipeline`],answer:{reply:`Removed leads and pipeline.`,add:[],remove:[`sales.pipeline`]}},{says:`we're in Canada, 13% tax`,settings:!0,answer:{reply:`Set to Canadian dollars and 13% tax.`,add:[],remove:[],settings:{currency:`CAD`,taxRate:13}}},{says:`make it warmer`,theme:!0,answer:{reply:`Gave it a warm amber brand colour.`,add:[],remove:[],theme:{primary:`#d97706`}}},{says:`hello`,answer:{reply:`Hi. What kind of business is it?`,add:[],remove:[]}}];function li(e,t,n,r){return ci.filter(i=>(i.recipes??[]).every(t=>e.has(t))&&(!i.cookbook||t.has(i.cookbook))&&(!i.settings||n)&&(!i.theme||r)).map(e=>`"${e.says}" -> ${JSON.stringify(e.answer)}`)}function ui(e){return`${Number((e*100).toFixed(4))}%`}function di(e,t,n=[],r,i,a){let o=i!==void 0,s=(i??[]).filter(e=>e.kind===`recipe`).slice(0,oi).map(e=>e.id),c=(i??[]).filter(e=>e.kind===`cookbook`).slice(0,si).map(e=>e.id),l=new Set([...s,...t]),u=new Set(c),d=e=>{let t=e.synonyms.length?` Also called: ${e.synonyms.join(`, `)}.`:``;return`- ${e.id}: ${e.label}. ${e.summary}${t}`},f=[`You help assemble a small business app. Reply as JSON.`,`"reply": answer what they just said in one sentence of 12 words or fewer. No greeting; never repeat a reply.`,`"add"/"remove": recipe ids, only what they ask to add or drop; else []. Dependencies are automatic.`];n.length&&f.push(`"cookbook": id only if their business clearly fits, else null.`),r&&f.push(`"settings": only what they state: currency (ISO), taxRate (percent), paymentTerms, pricesIncludeTax (true when their prices include tax), taxRounding (line|document); else omit, and do not mention them otherwise.`),a&&f.push(`"theme": only if they ask for a look: {"preset": material|glass|studio|smrt|happyvertical} or {"primary": "#rrggbb"}, optional "colorScheme": light|dark, "borderRadius": none|sm|md|lg|xl|full, "density": comfortable|touch, "contrast": auto|standard|more; else omit.`);let p=li(new Set(e.map(e=>e.id)),new Set(n.map(e=>e.id)),!!r,!!a);p.length&&f.push(``,`Examples:`,...p);let m=!!a&&(i??[]).some(e=>e.kind===`theme`);if(s.length||c.length||m){let e=[];m&&e.push(`theming (use "theme")`),c.length&&e.push(`cookbook ${c.join(`, `)}`),s.length&&e.push(`recipes ${s.join(`, `)}`),f.push(``,`Looks relevant: ${e.join(`; `)}.`)}let h=e=>`- ${e.id}: ${e.name}. ${e.summary}`,g=e=>e.join(`, `),_=e.filter(e=>!o||l.has(e.id)),v=o?e.filter(e=>!l.has(e.id)):[];if(f.push(``),_.length&&f.push(`Recipes:`,..._.map(d)),v.length&&f.push(`Other recipes: ${g(v.map(e=>`${e.id} (${e.label})`))}.`),n.length){let e=n.filter(e=>!o||u.has(e.id)),t=o?n.filter(e=>!u.has(e.id)):[];f.push(``),e.length&&f.push(`Cookbooks:`,...e.map(h)),t.length&&f.push(`Other cookbooks: ${g(t.map(e=>`${e.id} (${e.name})`))}.`)}if(f.push(``,`Currently on: ${t.length?t.join(`, `):`none`}.`),r){let e=r.paymentTerms?`, terms ${r.paymentTerms}`:``,t=r.pricesIncludeTax?`, prices include tax`:`, prices exclude tax`,n=r.taxRounding===`document`?`, tax rounded per document`:``;f.push(`Settings: currency ${r.currency}, tax ${ui(r.taxRate)}${e}${t}${n}.`)}return a&&f.push(`Theme: ${y(a.current)}.`),f.join(`
24
+ `)}var fi=`Plan your app`,pi=`What would you like to build?`,mi=400,hi=e=>Object.keys(e).length>0;function gi(e,t,n){let r=e.run({name:t,input:n});return r.ok?{summary:r.receipt.summary,undoId:r.receipt.undoId}:{summary:``}}var _i=(e,t,n)=>gi(e,t,n).summary;function vi(e,t){let n=[];for(let r of t){let t=e.run(r);if(!t.ok){n.push(`The server's ${r.name} was refused: ${t.error.message}`);break}t.receipt.summary&&n.push(t.receipt.summary)}return n.join(` `)}function yi(e,t){let n=t.add.length?e.run({name:`add_recipes`,input:{ids:t.add}}):null,r=t.remove.length?e.run({name:`remove_recipes`,input:{ids:t.remove}}):null,i=n?.ok?n.receipt.changes?.added??[]:[],a=r?.ok?r.receipt.changes?.removed??[]:[];return{added:i.filter(e=>!a.includes(e)),removed:a.filter(e=>!i.includes(e)),kept:r?.ok?r.receipt.changes?.kept??[]:[]}}function bi(e){let t=e.now??(()=>Date.now()),n=0,r=e=>`${e}-${++n}`,i={id:`planner`,title:fi,isResolved:!1,messageCount:0,lastMessageAt:null},a=[],o=new Map,s=null,c=(e,n,o,s)=>{let c={id:r(`m`),threadId:i.id,content:n,role:e,createdAt:new Date(t()),...o?{clientRequestId:o}:{}};return s&&(c.toolCallData=s),a.push(c),i.messageCount=a.length,i.lastMessageAt=c.createdAt,c},l=e.controller??Gn({store:e.store,settings:e.settings,theme:e.theme}),u=ii(e.recipes,e.cookbooks??[],{theme:!!e.theme}),d=c(`assistant`,pi);async function f(t){let n=e.model();if(!n)return{content:(typeof e.unavailable==`function`?e.unavailable():e.unavailable)??`Download a model first, then I can help. The cards on the Planner page work without one.`};s=new AbortController;try{let r=e.cookbooks??[],i=a.filter(e=>e!==d).slice(0,-1).slice(-6).map(e=>({role:e.role,content:e.content})),o=ai(u,t),c=Wr(await n.message(t,{history:[{role:`system`,content:di(e.recipes,e.store.ids,r,e.settings?.read(),o,e.theme?{current:e.theme.read()}:void 0)},...i],responseSchema:zr(e.recipes,r,!!e.settings,!!e.theme),temperature:0,maxTokens:mi,signal:s.signal}),e.recipes,r,{commands:typeof e.acceptCommands==`function`?e.acceptCommands():e.acceptCommands}),f=yi(l,c),p=e.settings&&hi(c.settings)?_i(l,`set_settings`,c.settings):``,m=e.theme?.read(),h=e.theme&&hi(c.theme)?gi(l,`set_theme`,c.theme):null,g=h?.undoId&&e.themeUndos?e.themeUndos.record(m,h.undoId):void 0,_=(c.commands??[]).length?vi(l,c.commands??[]):``,v=[Kr(f,e.recipes),p,h?.summary??``,_].filter(Boolean).join(` `),y=o.find(e=>e.kind===`cookbook`&&e.confidence===`strong`)?.id,b=c.cookbook??(y&&e.offers?.engaged?.()===!1?y:null),x=b?e.offers?.offer(b)??void 0:void 0,S=x?r.find(e=>e.id===b):void 0,C=c.reply||(S?`Set up ${S.name}?`:``),w=[C,v].filter(Boolean).join(` `);return C&&e.onReply?.(C),{content:w||`Done.`,refs:x&&g?[x,g]:x??g}}catch(e){return s?.signal.aborted?{content:`Stopped.`}:{content:`Sorry, the model could not answer: ${e instanceof Error?e.message:String(e)}`}}finally{s=null}}return{async listThreads(){return[i]},async createThread(){return i},async loadMessages(){return[...a]},async sendMessage(e){let t=o.get(e.clientRequestId);if(t)return t;let n=c(`user`,e.content,e.clientRequestId),r=await f(e.content),i={inProgress:!1,userMessage:n,assistantMessage:c(`assistant`,r.content,void 0,r.refs)};return o.set(e.clientRequestId,i),i},async uploadAttachment(e){throw Error(`The assistant cannot take attachments (${e.name}).`)},abort(){s?.abort()}}}function xi(e,t){return/^qwen3/i.test(t)?{message:(t,n)=>e.message(`${t} /no_think`,n)}:e}var Si=class{#e=n(`idle`);get status(){return e(this.#e)}set status(e){s(this.#e,e,!0)}#t=n(i({modelId:``,consented:[]}));get prefs(){return e(this.#t)}set prefs(e){s(this.#t,e,!0)}#n=n(i({progress:0,text:``}));get progress(){return e(this.#n)}set progress(e){s(this.#n,e,!0)}#r=n(``);get error(){return e(this.#r)}set error(e){s(this.#r,e,!0)}#i=n(`browser`);get mode(){return e(this.#i)}set mode(e){s(this.#i,e,!0)}#a=n(``);get remoteLabel(){return e(this.#a)}set remoteLabel(e){s(this.#a,e,!0)}transport;offers=new Mr(re);themeUndos;loaded=null;chat=null;abort=null;loadGeneration=0;options;constructor(e){this.options=e,this.prefs=Fr(e.storage),this.status=(e.webgpu??Sr)()?`idle`:`unsupported`,this.themeUndos=e.theme?new Rr(e.theme,e.controller):null,this.transport=bi({model:()=>this.chat,store:e.store,recipes:e.recipes,cookbooks:ne,offers:this.offers,settings:e.settings,theme:e.theme,controller:e.controller,themeUndos:this.themeUndos??void 0,acceptCommands:()=>this.mode===`host`,unavailable:()=>this.mode===`byo`?`Connect your model on the AI page first, then I can help. The cards on the Planner page work without one.`:this.mode===`host`?`The assistant is not available right now. The cards on the Planner page work without it.`:this.mode===`manual`?`Inference is off. The cards on the Planner page work without it.`:`Download a model first, then I can help. The cards on the Planner page work without one.`,onReply:t=>e.onReply?.(t)})}setMode(e){e!==this.mode&&this.unload(),this.mode=e,this.status=e===`browser`?(this.options.webgpu??Sr)()?`idle`:`unsupported`:`idle`}useRemote(e,t){this.mode!==`browser`&&(this.chat=e,this.remoteLabel=e?t:``,this.status=e?`ready`:`idle`)}get consented(){return this.prefs.consented.includes(this.prefs.modelId)}select(e){$n(e)&&this.status!==`loading`&&(this.prefs={...this.prefs,modelId:e},Ir(this.options.storage,this.prefs))}async start(){if(this.status===`loading`||this.status===`unsupported`)return;let e=this.prefs.modelId;if(!$n(e))return;this.status=`loading`,this.error=``,this.progress={progress:0,text:`Starting`};let t=new AbortController,n=++this.loadGeneration;this.abort=t;try{let r=await Ar(e,e=>{this.progress=e},t.signal,this.options.host??kr);if(n!==this.loadGeneration||this.mode!==`browser`){r.dispose();return}this.loaded=r,this.prefs={...this.prefs,consented:[...new Set([...this.prefs.consented,e])]},Ir(this.options.storage,this.prefs),this.chat=xi(new wr({type:`webllm`,engine:r.engine,model:e}),e),this.status=`ready`}catch(e){if(n!==this.loadGeneration)return;t.signal.aborted?this.status=`idle`:(this.error=e instanceof Error?e.message:String(e),this.status=`error`)}finally{n===this.loadGeneration&&(this.abort=null)}}cancel(){this.abort?.abort()}unload(){this.loadGeneration+=1;let e=this.abort;this.abort=null,e?.abort(),this.transport.abort(),this.loaded?.dispose(),this.loaded=null,this.chat=null,this.status!==`unsupported`&&(this.status=`idle`)}},Ci=[{id:`moonshine-base`,label:`Moonshine base`,note:`Accurate and still quick, best for talking as you go (default)`,adapter:`moonshine`,bytes:f[`moonshine-base`]?.bytes??0},{id:`moonshine-tiny`,label:`Moonshine tiny`,note:`Fastest, less accurate`,adapter:`moonshine`,bytes:f[`moonshine-tiny`]?.bytes??0},{id:`whisper-tiny.en`,label:`Whisper tiny`,note:`English, the original choice`,adapter:`whisper-local`,bytes:f[`whisper-tiny.en`]?.bytes??0}],wi=`moonshine-base`;function Ti(e){return Ci.find(t=>t.id===e)??Ci[0]}var Ei=`smrt-planner:voice:v1`;function Di(e){try{let t=e?.getItem(Ei);if(t){let e=JSON.parse(t),n=e.local===!0,r=Ci.find(t=>t.id===e.model)?.id;return{local:n,preferLocal:e.preferLocal===!0,model:r??(n?`whisper-tiny.en`:`moonshine-base`)}}}catch{}return{local:!1,preferLocal:!1,model:wi}}function Oi(e,t){try{e?.setItem(Ei,JSON.stringify(t))}catch{}}function ki(e){return Di(e).local}function Ai(e,t){Oi(e,{...Di(e),local:t})}function ji(e){return Di(e).preferLocal}function Mi(e){return Di(e).model}function Ni(e,t,n){return e===`works`?`browser`:t&&n?`enable-cached`:`offer`}var Pi=class{#e=n(`checking`);get status(){return e(this.#e)}set status(e){s(this.#e,e,!0)}#t=n(!1);get cached(){return e(this.#t)}set cached(e){s(this.#t,e,!0)}#n=n(0);get progress(){return e(this.#n)}set progress(e){s(this.#n,e,!0)}#r=n(``);get error(){return e(this.#r)}set error(e){s(this.#r,e,!0)}#i=n(!1);get browserWorks(){return e(this.#i)}set browserWorks(e){s(this.#i,e,!0)}#a=n(!1);get preferLocal(){return e(this.#a)}set preferLocal(e){s(this.#a,e,!0)}#o=n(0);get size(){return e(this.#o)}set size(e){s(this.#o,e,!0)}#s=n(wi);get model(){return e(this.#s)}set model(e){s(this.#s,e,!0)}#c=n(!1);get preparing(){return e(this.#c)}set preparing(e){s(this.#c,e,!0)}#l=n(null);get dictation(){return e(this.#l)}set dictation(e){s(this.#l,e)}handle=null;abort=null;options;generation=0;constructor(e){this.options=e}async init(){let e=++this.generation;try{await this.probeAndOffer(e)}catch(t){if(e!==this.generation)return;this.status=`error`,this.error=t instanceof Error?t.message:String(t)}}async probeAndOffer(e){let t=await(this.options.probe??ie)();if(e!==this.generation)return;this.browserWorks=t===`works`,this.preferLocal=ji(this.options.storage),this.model=Mi(this.options.storage);let n=this.preferLocal&&t===`works`?`unreliable`:t;if(n===`works`){this.dictation=(this.options.browserSource??(()=>d({type:`browser-speech`})))(),this.status=`browser`;return}let r=this.options.createModel(this.model);this.handle?.dispose(),this.handle=r,this.size=r.estimateSize();let i=await r.isCached().catch(()=>!1);e===this.generation&&(this.cached=i,Ni(n,ki(this.options.storage),this.cached)===`enable-cached`?await this.enable():this.status=`offer`)}async enable(){let e=this.handle;if(!e||this.status===`downloading`)return;let t=++this.generation;this.status=`downloading`,this.error=``,this.progress=0,this.preparing=!1;let n=new AbortController;this.abort=n;try{if(await e.load({onProgress:e=>{t===this.generation&&(this.progress=e.bytesTotal>0?e.bytesLoaded/e.bytesTotal:0,this.preparing=e.state===`extracting`)},signal:n.signal}),t!==this.generation)return;Ai(this.options.storage,!0),this.cached=!0;let r=Ti(this.model);this.dictation=(this.options.localSource??((e,t)=>d({type:t.adapter,modelHandle:e})))(e,r),this.status=`ready`}catch(e){if(t!==this.generation)return;n.signal.aborted?this.status=`offer`:(this.error=e instanceof Error?e.message:String(e),this.status=`error`)}finally{t===this.generation&&(this.abort=null,this.preparing=!1)}}async setPreferLocal(e){this.browserWorks&&e!==this.preferLocal&&await this.restart({preferLocal:e})}async setModel(e){e!==this.model&&Ci.some(t=>t.id===e)&&await this.restart({model:e})}async restart(e){this.generation++,this.abort?.abort(),this.abort=null,this.preparing=!1,this.handle?.dispose(),this.handle=null,this.dictation=null,Oi(this.options.storage,{...Di(this.options.storage),...e}),this.status=`checking`,await this.init()}cancel(){this.abort?.abort()}dismiss(){this.status=`dismissed`}dispose(){this.generation++,this.abort?.abort(),this.handle?.dispose(),this.handle=null,this.dictation=null}},Fi=[`json_schema`,`json_object`,`none`],Ii=12e4;function Q(e){try{let t=new URL(e.trim());if(t.protocol!==`http:`&&t.protocol!==`https:`||t.username||t.password)return null;for(let e of t.searchParams.keys())if(/^(?:api[-_]?key|key|token|authorization|secret|password)$/i.test(e))return null;return`${t.origin}${t.pathname.replace(/\/+$/,``)}`}catch{return null}}function Li(e){let t=e.toLowerCase().replace(/^\[|\]$/g,``);return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||/^127(\.\d{1,3}){3}$/.test(t)}function Ri(e){try{let t=new URL(e.trim());return t.protocol===`https:`||t.protocol===`http:`&&Li(t.hostname)}catch{return!1}}function zi(e){try{return new URL(e.trim()).origin}catch{return null}}var Bi=class extends Error{status;constructor(e,t){super(e),this.status=t,this.name=`EndpointError`}};function Vi(e){return e===401||e===403?`the endpoint refused the key (${e})`:e===404?`the endpoint or model was not found (404), check the address and model name`:e===429?`the endpoint is rate limiting you (429)`:`the endpoint answered ${e}`}function Hi(e){let t=(e?.choices?.[0])?.message?.content;if(typeof t==`string`)return t;if(Array.isArray(t))return t.map(e=>e&&typeof e==`object`&&`text`in e?String(e.text):``).join(``);throw new Bi(`the endpoint sent no reply text`)}function Ui(e,t){if(e!==`none`)return e===`json_schema`&&t&&typeof t==`object`?{type:`json_schema`,json_schema:{name:`planner_turn`,strict:!1,schema:t}}:{type:`json_object`}}function Wi(e){let t=Q(e.baseUrl);if(!t)throw new Bi(`the address is not a valid http(s) URL`);if(e.apiKey&&!Ri(t))throw new Bi(`a key is only sent over https, or to this computer; use an https address`);let n=`${t}/chat/completions`,r=e.fetch??fetch,i=Math.max(0,Fi.indexOf(e.jsonMode??`json_schema`));async function a(t,i){let a=AbortSignal.timeout(Ii);try{return await r(n,{method:`POST`,headers:{"content-type":`application/json`,...e.apiKey?{authorization:`Bearer ${e.apiKey}`}:{}},body:JSON.stringify(t),credentials:`omit`,signal:i?AbortSignal.any([i,a]):a})}catch(e){throw i?.aborted?e:new Bi(`could not reach the endpoint. Is it running, and does it allow this page (CORS)?`)}}async function o(t,n={}){let r=n.json!==!1;for(;;){let o=r?Fi[i]??`none`:`none`,s=Ui(o,n.schema),c=await a({model:e.model,messages:t,stream:!1,temperature:n.temperature??0,...n.maxTokens?{max_tokens:n.maxTokens}:{},...s?{response_format:s}:{}},n.signal);if(c.ok)return r&&e.onJsonMode?.(o),Hi(await c.json().catch(()=>null));if(r&&(c.status===400||c.status===422)&&i<Fi.length-1){i+=1;continue}throw new Bi(Vi(c.status),c.status)}}return{complete:o,message(e,t){return o([...(t?.history??[]).map(({role:e,content:t})=>({role:e,content:t})),{role:`user`,content:e}],{maxTokens:t?.maxTokens,signal:t?.signal,temperature:t?.temperature,schema:t?.responseSchema})}}}async function Gi(e){try{return{ok:!0,message:(await Wi({...e,jsonMode:`none`}).complete([{role:`user`,content:`Reply with the single word OK.`}],{maxTokens:8,json:!1})).trim()?`Connected to ${e.model}.`:`Connected to ${e.model}, but it sent an empty reply.`}}catch(e){return{ok:!1,message:e instanceof Bi?`Could not connect: ${e.message}.`:`Could not connect.`}}}var Ki=[{id:`ollama`,label:`Ollama (on this computer)`,baseUrl:`http://localhost:11434/v1`,model:`llama3.2`,keyless:!0,cors:`Ollama only answers pages it trusts. Start it with OLLAMA_ORIGINS set to this site, for example OLLAMA_ORIGINS=https://your-site.example ollama serve (on macOS: launchctl setenv OLLAMA_ORIGINS https://your-site.example, then restart Ollama). A page served from http://localhost needs no change.`},{id:`openrouter`,label:`OpenRouter`,baseUrl:`https://openrouter.ai/api/v1`,model:`openai/gpt-4o-mini`,cors:`OpenRouter accepts calls from any web page, so no setup is needed. Use a key with a spending limit.`},{id:`openai`,label:`OpenAI`,baseUrl:`https://api.openai.com/v1`,model:`gpt-4o-mini`,cors:`OpenAI accepts calls from web pages when the request carries a key. Use a restricted key with a low spending limit: anyone with access to this browser profile can read it.`},{id:`custom`,label:`Custom OpenAI-compatible endpoint`,baseUrl:``,customUrl:!0,cors:`The server must answer the browser's CORS preflight: allow this site's origin, the "authorization" and "content-type" headers, and the POST and OPTIONS methods.`}];function qi(e){if(!e?.length)return[...Ki];let t=[];for(let n of e){let e=typeof n==`string`?Ki.find(e=>e.id===n):n;e&&!t.some(t=>t.id===e.id)&&t.push(e)}return t.length?t:[...Ki]}var Ji=`smrt-planner:inference:v1`,Yi=`smrt-planner:inference-key:v1`,Xi=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function Zi(e){let t={preset:``,active:!1,entries:{}};try{let n=e?.getItem(Ji);if(!n)return t;let r=JSON.parse(n);if(!Xi(r))return t;typeof r.preset==`string`&&(t.preset=r.preset),t.active=r.active===!0;let i=!1;if(Xi(r.entries)){for(let[e,n]of Object.entries(r.entries))if(Xi(n)&&typeof n.baseUrl==`string`&&typeof n.model==`string`){let r=Q(n.baseUrl)??``;i||=r!==n.baseUrl,t.entries[e]={baseUrl:r,model:n.model}}}i&&(t.active=!1,e?.setItem(Ji,JSON.stringify(t)))}catch{}return t}function Qi(e){let t={};try{let n=e?.getItem(Yi),r=n?JSON.parse(n):null;if(Xi(r))for(let[e,n]of Object.entries(r))Xi(n)&&typeof n.key==`string`&&n.key&&typeof n.origin==`string`&&n.origin&&(t[e]={origin:n.origin,key:n.key})}catch{}return t}var $i=class{presets;#e=n(``);get presetId(){return e(this.#e)}set presetId(e){s(this.#e,e,!0)}#t=n(i({}));get entries(){return e(this.#t)}set entries(e){s(this.#t,e,!0)}#n=n(i({}));get keys(){return e(this.#n)}set keys(e){s(this.#n,e,!0)}#r=n(!1);get active(){return e(this.#r)}set active(e){s(this.#r,e,!0)}#i=n(`idle`);get testStatus(){return e(this.#i)}set testStatus(e){s(this.#i,e,!0)}#a=n(``);get testMessage(){return e(this.#a)}set testMessage(e){s(this.#a,e,!0)}options;credentialStorage;constructor(e){if(this.options=e,this.credentialStorage=e.credentialPersistence===`memory`?null:e.storage,e.credentialPersistence===`memory`)try{e.storage?.removeItem(Yi)}catch{}this.presets=qi(e.presets);let t=Zi(e.storage);this.keys=Qi(this.credentialStorage),this.entries=t.entries,this.presetId=this.presets.some(e=>e.id===t.preset)?t.preset:this.presets[0]?.id??``,this.active=t.active&&this.complete}get preset(){return this.presets.find(e=>e.id===this.presetId)}get baseUrl(){return this.entries[this.presetId]?.baseUrl??this.preset?.baseUrl??``}get model(){return this.entries[this.presetId]?.model??this.preset?.model??``}get key(){let e=this.keys[this.presetId];return e&&e.origin===zi(this.baseUrl)?e.key:``}get keyForOtherAddress(){let e=this.keys[this.presetId];return!!e&&e.origin!==zi(this.baseUrl)}get complete(){let e=Q(this.baseUrl);return!!e&&!!this.model.trim()&&(!!this.preset?.keyless||!!this.key.trim()&&Ri(e))}select(e){this.presets.some(t=>t.id===e)&&(this.presetId=e,this.resetTest(),this.save())}setBaseUrl(e){this.entries={...this.entries,[this.presetId]:{baseUrl:e,model:this.model}},this.edited()}setModel(e){this.entries={...this.entries,[this.presetId]:{baseUrl:this.baseUrl,model:e}},this.edited()}setKey(e){let t=zi(this.baseUrl),n=e.trim();if(!n||!t){this.forgetKey();return}this.keys={...this.keys,[this.presetId]:{origin:t,key:n}},this.edited()}forgetKey(){let{[this.presetId]:e,...t}=this.keys;this.keys=t,this.edited()}chat(){if(!this.complete)return null;let e=Q(this.baseUrl);return e?Wi({baseUrl:e,model:this.model.trim(),apiKey:this.preset?.keyless?void 0:this.key,fetch:this.options.fetch}):null}async test(){let e=Q(this.baseUrl);if(!e||!this.model.trim())return this.testStatus=`failed`,this.testMessage=`Enter an http(s) address and a model first.`,{ok:!1,message:this.testMessage};if(!this.preset?.keyless&&!this.key.trim())return this.testStatus=`failed`,this.testMessage=this.keyForOtherAddress?`The saved key was entered for another address. Enter it again for this one.`:`Enter a key first.`,{ok:!1,message:this.testMessage};if(!this.preset?.keyless&&!Ri(e))return this.testStatus=`failed`,this.testMessage=`A key is only sent over https, or to this computer. Use an https address.`,{ok:!1,message:this.testMessage};this.testStatus=`testing`,this.testMessage=``;let t=await Gi({baseUrl:e,model:this.model.trim(),apiKey:this.preset?.keyless?void 0:this.key,fetch:this.options.fetch});return this.testStatus=t.ok?`ok`:`failed`,this.testMessage=t.message,t}use(){return this.complete?(this.active=!0,this.save(),this.options.onChange?.(),!0):!1}stop(){this.active=!1,this.save(),this.options.onChange?.()}resetTest(){this.testStatus=`idle`,this.testMessage=``}edited(){this.resetTest();let e=this.active;e&&!this.complete&&(this.active=!1),this.save(),e&&this.options.onChange?.()}save(){try{let e=Object.fromEntries(Object.entries(this.entries).map(([e,t])=>[e,{baseUrl:Q(t.baseUrl)??``,model:t.model}])),t={preset:this.presetId,active:this.active,entries:e};this.options.storage?.setItem(Ji,JSON.stringify(t)),this.credentialStorage?.setItem(Yi,JSON.stringify(this.keys))}catch{}}};function ea(e,t,n,r=`local`){let i=Zi(e);if(!i.active)return null;let a=qi(t).find(e=>e.id===i.preset),o=i.entries[i.preset],s=Q(o?.baseUrl??a?.baseUrl??``),c=(o?.model??a?.model??``).trim(),l=Qi(r===`memory`?null:e)[i.preset],u=l&&l.origin===zi(s??``)?l.key:``;return!a||!s||!c||!a.keyless&&(!u||!Ri(s))?null:Wi({baseUrl:s,model:c,apiKey:a.keyless?void 0:u,fetch:n})}var ta=`my-app`;function na(e){return(e??``).normalize(`NFD`).replace(/\p{M}/gu,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)}function ra(e){return`${na(e)||`my-app`}.cookbook.json`}function ia(e){return new TextEncoder().encode(oa(e)).length}function aa(e){if(e<1e3)return`${e} bytes`;let t=e/1024;return`${t<10?t.toFixed(1):Math.round(t)} KB`}function oa(e){return`${JSON.stringify(e,null,2)}\n`}function sa(e,t){let n=URL.createObjectURL(new Blob([oa(e)],{type:`application/json`})),r=document.createElement(`a`);r.href=n,r.download=ra(t),document.body.append(r),r.click(),r.remove(),URL.revokeObjectURL(n)}var ca=`x-kitchen-token`,la=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function ua(e){if(typeof e!=`string`)return!1;let t=e.trim();try{let e=t.startsWith(`/`)&&!t.startsWith(`//`),n=new URL(t,e?`https://planner.invalid`:void 0);return!e&&n.protocol!==`http:`&&n.protocol!==`https:`||n.username||n.password||n.hash?!1:![...n.searchParams.keys()].some(e=>/^(?:api[-_]?key|key|token|authorization|secret|password)$/i.test(e))}catch{return!1}}function da(e){if(!la(e))return;let{endpoint:t}=e;if(ua(t))return{endpoint:t.trim(),...Object.hasOwn(e,`token`)?{tokenInConfig:!0}:{}}}var fa=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[];async function pa(e,t,n=fetch){let r;try{r=await n(e.endpoint,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json`,[ca]:e.token},body:oa(t)})}catch{return{ok:!1,errors:["The kitchen could not be reached. Is `smrt kitchen` still running?"]}}let i;try{i=await r.json()}catch{i=void 0}if(r.ok&&la(i)&&i.ok===!0)return{ok:!0,result:{dir:typeof i.dir==`string`?i.dir:``,mode:i.mode===`update`?`update`:`new`,installed:i.installed===!0,added:fa(i.added),nextSteps:fa(i.nextSteps)}};let a=la(i)?fa(i.errors):[];return la(i)&&typeof i.error==`string`&&a.push(i.error),{ok:!1,errors:a.length?a:[`The kitchen answered ${r.status}.`]}}var ma=[`manual`,`browser`,`host`,`byo`],ha={mode:`browser`},ga={mode:`manual`},_a=`planner.config.json`,va=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function ya(e){if(typeof e!=`string`)return!1;let t=e.trim();if(!t)return!1;try{let e=t.startsWith(`/`)&&!t.startsWith(`//`),n=new URL(t,e?`https://planner.invalid`:void 0);if(!e&&n.protocol!==`http:`&&n.protocol!==`https:`||n.username||n.password||n.hash)return!1;for(let e of n.searchParams.keys())if(/^(?:api[-_]?key|key|token|authorization|secret|password)$/i.test(e))return!1;return!0}catch{return!1}}function ba(e){if(!va(e))return null;let{id:t,label:n,baseUrl:r,model:i,keyless:a,cors:o}=e;return typeof t!=`string`||!/^[a-z0-9][a-z0-9-]{0,31}$/.test(t)||typeof n!=`string`||!n.trim()||!ya(r)||r.startsWith(`/`)?null:{id:t,label:n.trim(),baseUrl:r.trim(),...typeof i==`string`&&i.trim()?{model:i.trim()}:{},...a===!0?{keyless:!0}:{},...typeof o==`string`&&o.trim()?{cors:o.trim()}:{}}}var $=e=>({config:ga,notice:`The assistant settings could not be used (${e}), so inference is off. The planner still works manually.`});function xa(e,t){if(e===void 0)return[];if(!Array.isArray(e)||e.length===0)return null;let n=[];for(let r of e){if(typeof r!=`string`||!ma.includes(r)||r===t||n.includes(r))return null;n.push(r)}return n}function Sa(e){if(e===void 0)return{};if(!va(e))return null;if(e.presets===void 0)return{};if(!Array.isArray(e.presets)||e.presets.length===0)return null;let t=[];for(let n of e.presets){if(typeof n==`string`&&n.trim()){t.push(n.trim());continue}let e=ba(n);if(!e)return null;t.push(e)}return{presets:t}}function Ca(e){if(!va(e))return $(`not an object`);let t=e.inference;if(t===void 0)return{config:ha};if(!va(t))return $(`"inference" is not an object`);let n=t.mode;if(n===void 0)return{config:ha};if(!ma.includes(n))return $(`unknown mode "${String(n)}"`);let r=n,i=xa(t.alternatives,r);if(!i)return $(`alternatives must be unique supported modes other than mode`);let a=t.credentialPersistence;if(a!==void 0&&a!==`local`&&a!==`memory`)return $(`credentialPersistence must be "local" or "memory"`);let o=[r,...i],s;if(o.includes(`host`)){let e=t.host;if(!va(e)||!ya(e.endpoint))return $(`host mode needs host.endpoint, an http(s) URL or path`);s={endpoint:e.endpoint.trim()}}let c;return o.includes(`byo`)&&(c=Sa(t.byo)??void 0,!c)?$(`byo.presets must be a non-empty valid list`):{config:{mode:r,...i.length?{alternatives:i}:{},...a?{credentialPersistence:a}:{},...s?{host:s}:{},...c?{byo:c}:{}}}}function wa(e){try{let t=JSON.parse(e),n=Ca(t),r=va(t)?da(t.kitchen):void 0;return r?{...n,kitchen:r}:n}catch{return $(`it is not valid JSON`)}}function Ta(e){return Ca({inference:e})}async function Ea(e=``,t=fetch){let n;try{n=await t(`${e.replace(/\/$/,``)}/${_a}`,{headers:{accept:`application/json`},cache:`no-cache`})}catch{return{config:ha}}if(n.status===404)return{config:ha};if(!n.ok)return $(`the file answered ${n.status}`);let r=await n.text();return/^\s*</.test(r)?{config:ha}:wa(r)}var Da=1e3,Oa=2e3,ka=6e4,Aa=(e,t)=>e.length>t?e.slice(0,t):e;function ja(e){let t=e.fetch??fetch;return{async message(n,r){let i=(r?.history??[]).filter(e=>e.role===`user`||e.role===`assistant`).slice(-6).map(e=>({role:e.role,content:Aa(e.content,Da)})),a={version:1,message:Aa(n,Oa),snapshot:e.snapshot(),...i.length?{history:i}:{}},o=AbortSignal.timeout(ka),s=r?.signal?AbortSignal.any([r.signal,o]):o,c=await t(e.endpoint,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json`,...e.headers?.()},body:JSON.stringify(a),signal:s});if(!c.ok)throw Error(`the server answered ${c.status}`);return await c.text()}}}function Ma(e){return[Na(e.think),Fa(e.hear),Ia(e.speak)]}function Na(e){let t={id:`think`,name:`Think`};if(e.mode===`manual`)return{...t,state:`off`,label:`Think: inference off`,where:`Off`};if(e.mode===`host`)return{...t,state:e.status===`ready`?`ready`:`available`,label:`Think: Server`,where:`Server`};if(e.mode===`byo`){let n=e.remote?`Your model: ${e.remote}`:``;return e.status===`ready`&&e.remote?{...t,state:`ready`,label:`Think: ${n}`,where:n}:{...t,state:`available`,label:`Think: your own model not connected`,where:`Your model`}}return{...Pa(e),where:`In browser`}}function Pa(e){let t={id:`think`,name:`Think`};return e.status===`unsupported`?{...t,state:`off`,label:`Think: unavailable, this browser has no WebGPU`}:e.status===`ready`?{...t,state:`ready`,label:`Think: ${e.model} ready`}:e.status===`loading`?{...t,state:`available`,label:`Think: ${e.model} loading, ${Math.round(e.progress*100)}%`}:{...t,state:`available`,label:e.downloaded?`Think: ${e.model} downloaded, not loaded`:`Think: not set up`}}function Fa(e){let t={id:`hear`,name:`Hear`};return e.mic?e.status===`browser`?{...t,state:`ready`,label:`Hear: voice typing ready, using your browser`}:e.status===`ready`?{...t,state:`ready`,label:`Hear: voice typing ready, using the downloaded model`}:e.status===`downloading`?{...t,state:`available`,label:`Hear: downloading the speech model`}:{...t,state:`available`,label:`Hear: not set up`}:{...t,state:`off`,label:`Hear: unavailable, this browser has no microphone access`}}function Ia(e){let t={id:`speak`,name:`Speak`};return e.supported?e.readAloud?{...t,state:`ready`,label:`Speak: reading replies aloud with browser voices`}:{...t,state:`available`,label:`Speak: not switched on`}:{...t,state:`off`,label:`Speak: unavailable, this browser has no speech synthesis`}}function La(e){return e.dismissed||e.built?!1:!(e.thinkDownloaded||e.hearDownloaded||e.readAloud)}var Ra=`smrt-planner:ai:v1`;function za(e){let t={dismissed:!1,readAloud:!1,handsFree:!1,sendOnPause:!1};try{let n=e?.getItem(Ra);if(!n)return t;let r=JSON.parse(n);t.dismissed=r.dismissed===!0,t.readAloud=r.readAloud===!0,t.handsFree=r.handsFree===!0,t.sendOnPause=r.sendOnPause===!0}catch{}return t}function Ba(e,t){try{e?.setItem(Ra,JSON.stringify(t))}catch{}}var Va=new class{session;voice;#e=n(i({dismissed:!1,readAloud:!1,handsFree:!1,sendOnPause:!1}));get prefs(){return e(this.#e)}set prefs(e){s(this.#e,e,!0)}#t=n(!1);get hydrated(){return e(this.#t)}set hydrated(e){s(this.#t,e,!0)}#n=n(!1);get firstRun(){return e(this.#n)}set firstRun(e){s(this.#n,e,!0)}#r=n(!1);get speaking(){return e(this.#r)}set speaking(e){s(this.#r,e,!0)}#i=n(i(ha));get inference(){return e(this.#i)}set inference(e){s(this.#i,e,!0)}#a=n(i([`browser`]));get availableModes(){return e(this.#a)}set availableModes(e){s(this.#a,e,!0)}#o=n(``);get notice(){return e(this.#o)}set notice(e){s(this.#o,e,!0)}#s=n(null);get byo(){return e(this.#s)}set byo(e){s(this.#s,e,!0)}pending=0;generation=0;options;pendingConfig=!1;builtAtHydrate=!1;synth;mic;constructor(e){this.options=e,this.session=new Si({...e.session,storage:e.storage,onReply:e=>this.speak(e)}),this.voice=new Pi({...e.voice,storage:e.storage}),this.synth=e.synth===void 0?typeof speechSynthesis<`u`?speechSynthesis:null:e.synth,this.mic=e.mic??(typeof navigator<`u`&&!!navigator.mediaDevices)}hydrate(e){this.hydrated||(this.prefs=za(this.options.storage),this.hydrated=!0,this.builtAtHydrate=e,this.pendingConfig||this.decideFirstRun(),this.voice.init())}awaitConfig(){this.pendingConfig=!0}configure(e){let{config:t,notice:n}=e;this.pendingConfig=!1,this.inference=t,this.notice=n??``;let r=[t.mode,...t.alternatives??[]];this.availableModes=[...r,...t.alternatives?.length&&!r.includes(`manual`)?[`manual`]:[]],this.byo=r.includes(`byo`)?new $i({storage:this.options.storage,credentialPersistence:t.credentialPersistence,presets:t.byo?.presets,fetch:this.options.fetch,onChange:()=>this.syncByo()}):null,this.applyMode(t.mode),this.hydrated&&this.decideFirstRun()}useChat(e,t){this.pendingConfig=!1,this.inference={mode:`host`},this.notice=``,this.availableModes=[`host`],this.byo=null,this.session.setMode(`host`);let n=()=>typeof e==`function`?e():e;this.session.useRemote({message:(e,t)=>{let r=n();if(!r)throw Error(`The host has not connected a model yet.`);return r.message(e,t)}},t),this.hydrated&&this.decideFirstRun()}get assistantReady(){return this.hydrated&&this.session.status===`ready`}selectInference(e){this.availableModes.includes(e)&&e!==this.inference.mode&&(this.inference={...this.inference,mode:e},this.notice=``,this.applyMode(e))}applyMode(e){if(this.session.setMode(e),e===`host`&&this.inference.host){let{controller:e,store:t,settings:n,theme:r}=this.options.session,i=e??Gn({store:t,settings:n,theme:r});this.session.useRemote(ja({endpoint:this.inference.host.endpoint,snapshot:()=>i.snapshot(),fetch:this.options.fetch}),`Server`)}else e===`byo`?this.syncByo():e===`manual`&&this.session.useRemote(null,``)}syncByo(){let e=this.byo;e&&this.session.useRemote(e.active?e.chat():null,e.model)}decideFirstRun(){this.firstRun=this.inference.mode!==`host`&&this.inference.mode!==`manual`&&La({thinkDownloaded:this.session.prefs.consented.length>0||this.session.status===`ready`,hearDownloaded:ki(this.options.storage),readAloud:this.prefs.readAloud,dismissed:this.prefs.dismissed,built:this.builtAtHydrate})}get capabilities(){let e=$n(this.session.prefs.modelId),t=this.hydrated;return Ma({think:{status:t?this.session.status:`idle`,model:e?tr(e):`model`,progress:this.session.progress.progress,downloaded:t&&this.session.prefs.consented.length>0,mode:this.session.mode,remote:this.session.remoteLabel},hear:{status:t?this.voice.status:`checking`,mic:!t||this.mic},speak:{supported:!t||this.synth!==null,readAloud:t&&this.prefs.readAloud}})}get privacyNote(){return this.inference.mode===`manual`?`Inference is off. Planning, validation and export still work without a model.`:this.inference.mode===`host`?`Your messages and a short summary of your plan go to this site's server. Voice typing and reading aloud stay on this device.`:this.inference.mode===`byo`?`Your messages and a short summary of your plan go to the model endpoint you choose, and nowhere else. Voice typing and reading aloud stay on this device.`:`Everything runs on this device. Nothing you type or say leaves the page.`}get speakSupported(){return this.synth!==null}continueFirstRun(){this.firstRun=!1}dismissFirstRun(){this.firstRun=!1,this.setPrefs({...this.prefs,dismissed:!0})}setReadAloud(e){(!e||this.synth)&&(e||this.cancelSpeech(),this.setPrefs({...this.prefs,readAloud:e}))}setHandsFree(e){this.setPrefs({...this.prefs,handsFree:e})}setSendOnPause(e){this.setPrefs({...this.prefs,sendOnPause:e})}get sendOnPauseActive(){return this.handsFreeActive&&this.prefs.sendOnPause}get handsFreeActive(){return this.prefs.handsFree&&this.voice.status===`ready`}speak(e){if(!this.prefs.readAloud||!this.synth||!e.trim())return;this.cancelSpeech();let t=e.split(/\n{2,}/).map(e=>e.trim()).filter(Boolean),n=this.generation;this.pending=t.length,this.speaking=!0;let r=()=>{n===this.generation&&(this.pending=Math.max(0,this.pending-1),this.pending===0&&(this.speaking=!1))};for(let e of t){let t=new SpeechSynthesisUtterance(e);t.onend=r,t.onerror=r,this.synth.speak(t)}}cancelSpeech(){this.generation+=1,this.pending=0,this.speaking=!1,this.synth?.cancel()}setPrefs(e){this.prefs=e,Ba(this.options.storage,e)}}({storage:_(),session:{store:te,recipes:E,controller:Xn,settings:{read:()=>S.settings(),write:e=>S.setSettings(e)},theme:{read:()=>S.snapshot().theme,write:e=>S.setTheme(e)}},voice:{createModel:ze}}),Ha=`M11 4.2C10.4 3 8.6 2.8 7.6 3.8C6.2 3.6 5 4.8 5.2 6.1C3.8 6.6 3.3 8.2 4.1 9.3C3 10.2 3 11.9 4 12.8C3.6 14.2 4.4 15.6 5.8 15.9C6.2 17.3 7.6 18.2 9 17.9C9.7 19.2 11 19.6 11 19.6ZM13 4.2 C13.6 3 15.4 2.8 16.4 3.8 C17.8 3.6 19 4.8 18.8 6.1 C20.2 6.6 20.7 8.2 19.9 9.3 C21 10.2 21 11.9 20 12.8 C20.4 14.2 19.6 15.6 18.2 15.9 C17.8 17.3 16.4 18.2 15 17.9 C14.3 19.2 13 19.6 13 19.6 ZM10.2 7.4C8.6 7.8 7.5 7 7 6.2L7.7 5.8C8.2 6.5 9 6.8 10 6.5ZM10.3 11C8.4 11.6 6.6 10.8 5.9 9.6L6.6 9.2C7.2 10.2 8.6 10.7 10.1 10.2ZM10.2 15C8.5 15.6 6.8 15 6 13.9L6.7 13.5C7.4 14.3 8.6 14.6 10 14.2ZM13.8 7.4 C15.4 7.8 16.5 7 17 6.2 L16.3 5.8 C15.8 6.5 15 6.8 14 6.5 ZM13.7 11 C15.6 11.6 17.4 10.8 18.1 9.6 L17.4 9.2 C16.8 10.2 15.4 10.7 13.9 10.2 ZM13.8 15 C15.5 15.6 17.2 15 18 13.9 L17.3 13.5 C16.6 14.3 15.4 14.6 14 14.2 Z`,Ua=`M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55.51.23 1.07.35 1.64.35 2.21 0 4-1.79 4-4h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5-1.12-2.5-2.5-2.5-2.5 1.12-2.5 2.5z`,Wa=`M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z`;export{Xn as A,Qn as C,ir as D,$n as E,Re as F,ie as I,Jn as M,zn as N,rr as O,Dn as P,jr as S,er as T,Ci as _,ja as a,Rr as b,pa as c,ra as d,ia as f,ea as g,na as h,Va as i,Yn as j,tr as k,ta as l,oa as m,Wa as n,Ta as o,aa as p,Ha as r,Ea as s,Ua as t,sa as u,Ti as v,nr as w,Lr as x,bi as y};
@@ -0,0 +1 @@
1
+ import{$ as e,B as t,Ct as n,Dt as r,Ft as i,G as a,H as o,L as s,O as c,Ot as l,P as u,Pt as d,U as f,W as p,X as m,Y as h,Z as g,_,a as v,b as y,bt as b,ct as x,ft as S,gt as C,ht as w,mt as T,pt as E,st as D,tt as O,v as k,vt as A,wt as j,xt as M,z as N}from"./vNEnXNLV.js";import"./xihTtKlq.js";import{O as P,c as F,ft as I,gt as L,h as R,l as z,m as B,p as ee}from"./DYuawOB3.js";import{_ as V,i as H,o as U,y as W}from"./CF6zSg_o.js";import{a as te,c as ne,i as re,l as ie,o as ae,p as G,s as oe}from"./CRu55ZTy.js";import{b as K,t as q}from"./Dh5fne6n.js";import{r as J}from"./Ba1g71Sq.js";import{a as Y,c as se,d as ce,f as le,i as ue,n as de,o as fe,p as pe,r as X,s as me,u as he}from"./BUhghcIm.js";import{a as ge,c as _e,i as ve,l as ye,n as be,o as xe,r as Se,s as Ce,t as we,u as Te}from"./Bxbz6_Mb.js";function Ee(e){return e.form.kind===`field-map`}function De(e){return e.form.kind===`variant-grid`}function Oe(e,t,n){let r=t.filter(t=>e.includes(t.id));return r.flatMap(e=>(e.forms??[]).filter(e=>e.model===n).map(t=>({recipeId:e.id,form:t,extensions:r.flatMap(e=>(e.extends??[]).filter(e=>e.form===t.id))})))}function ke(e,t){return e.extensions.some(e=>(e.records??[]).some(e=>e.model===t))}function Z(e){return(e.type===`foreignKey`||e.type===`crossPackageRef`)&&typeof e.related==`string`}function Ae(e,t){if(e.type===`boolean`)return`boolean`;if(Z(e))return`relation`;if(e.enum&&e.enum.length>0)return`enum`;if(e.ui?.widget)return e.ui.widget;if(e.type===`json`&&t!==void 0&&(L[t]??[]).includes(e.name))return`address`;if(P(e))return`money`;if(B(e))return`percent`;switch(e.type){case`datetime`:return`datetime`;case`integer`:return`integer`;case`decimal`:return`decimal`;case`json`:return`json`;default:return`text`}}var je=e=>typeof e==`number`&&Number.isFinite(e)?e:0;function Me(e){let t=e.name;if(e.type===`json`)return 99;if(/^(name|title|label|code)$|Number$|^number$/.test(t))return 0;if(t===`reference`&&e.type===`text`)return .5;if(t===`description`&&e.type===`text`)return 5.9;if(Z(e))return/^(customer|vendor|profile)/i.test(t)?1:/^(contract|.*(journal|account))/i.test(t)?7:2;if((e.enum?.length??0)>0&&/(status|state|stage)$/i.test(t))return 3;if(/^(totalAmount|amount|total)$/.test(t))return 4;if(e.type===`datetime`){if(/^start(date|at)?$/i.test(t))return 1.2;if(/^due/i.test(t))return 5;if(/(issue|paid|allocated|^date$)/i.test(t))return 5.2}return 6}function Ne(e,t=6){let n=e.filter(e=>e.type!==`json`),r=new Set(n.slice(0,3)),i=n.filter(e=>r.has(e)||Me(e)<6||[`integer`,`decimal`,`boolean`,`datetime`].includes(e.type)||(e.enum?.length??0)>0||Z(e)).map((e,t)=>({f:e,i:t,rank:Me(e)})).sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.f),a=n.find(e=>e.name===`totalAmount`);if(a&&n.some(e=>e.name===`amountPaid`)){let e={...a,name:`amountDue`,label:`Amount due`,required:!1,derive:e=>je(e.totalAmount)-je(e.amountPaid)},t=i.findIndex(e=>e.name===`totalAmount`);i.splice(t<0?i.length:t+1,0,e)}let o=n.some(e=>e.name===`allDay`);return i.slice(0,t).map(e=>o&&e.type===`datetime`&&/^(start|end)(date|at)$/i.test(e.name)?{...e,showTime:!0}:e)}function Pe(e,t){return e.derive?e.derive(t):t[e.name]}function Fe(e,t,n){return e.filter(e=>e[t]===n)}function Ie(e){if(e.default!==void 0&&e.default!==null)return e.default;let t=e.enum??[];return t.length>0&&(e.required||/(status|state|stage)$/i.test(e.name))?t.includes(`draft`)?`draft`:t[0]:e.type===`boolean`?!1:e.type===`text`?``:null}function Le(e){let t={};for(let n of e)t[n.name]=Ie(n);return t}function Re(e,t,n){return{...Le(e),[t]:n}}var ze=e=>e==null||typeof e==`string`&&e.trim()===``;function Be(e,t,n=new Set){let r={};for(let i of e)i.required&&i.type!==`boolean`&&!n.has(i.name)&&ze(t[i.name])&&(r[i.name]=`${i.label} is required.`);return r}function Ve(e,t){let n=e.filter(e=>t[e.name]).map(e=>e.label);return n.length===0?``:`Cannot save yet: ${n.join(`, `)} ${n.length===1?`is`:`are`} required.`}function He(e,t,n,r){return G(e,n,(e,t)=>e.related?r.get(R(e.related,t)):void 0,t)??``}function Ue(e){e instanceof HTMLElement&&e.querySelector(`[data-invalid] :is(input, select, textarea, button):not([type="hidden"])`)?.focus()}function Q(e){return{records:[...e.form.records,...e.extensions.flatMap(e=>e.records??[])],fields:[...e.form.fields,...e.extensions.flatMap(e=>e.fields??[])]}}function We(e,t){let{records:n,fields:r}=Q(e);return r.map(e=>({field:e,catalogField:ce(e,n,t),modelId:le(e,n)}))}function Ge(e,t){return Object.fromEntries(We(e,t).map(({field:e,catalogField:t})=>[e.id,he(e,t)]))}function Ke(e){let{records:t}=Q(e),n=t.findIndex(t=>t.model===e.form.model);return n<0?0:n}async function qe(e,t,n,r){let{records:i}=Q(t),a=i[Ke(t)];if(!a)return{};let o=await e.get(n(a.model),r);return Y(e,i,{[a.as]:o},n)}async function Je(e,t,n,r){let{fields:i}=Q(t),a=await qe(e,t,n,r),o=Ge(t,n);return{values:Object.fromEntries(i.map(e=>{let{alias:t,field:n}=me(e.to),r=a[t]?.[n];return[e.id,r===void 0?o[e.id]:r]})),rows:a}}function Ye(e,t,n,r,i={},a={}){let{records:o,fields:s}=Q(e),c=ue(s,n),l=Ke(e),u=new Set;return o.map((e,o)=>{let d=fe(s,e.as,n),f={...pe(e.values,c),...o===l?Object.fromEntries(Object.entries(a).map(([e,t])=>[e,se(t)])):{}},p=t(e.model),m=r===void 0?void 0:i[e.as];try{if(o===l&&r!==void 0){let t=Object.fromEntries(Object.entries(f).filter(([,e])=>de(e)));return{op:`save`,as:e.as,model:p,id:r,values:{...d,...t}}}if(m)return{op:`save`,as:e.as,model:p,id:m.id,values:d};let t=e.match?pe(e.match,c):{},n=Object.values(t).some(e=>de(e)&&!u.has(e.ref))?{}:t,i=Object.keys(n).length>0;return{op:`save`,as:e.as,model:p,...i?{match:n}:{},onCreate:f,values:d}}finally{u.add(e.as)}})}var $=e=>typeof e==`string`&&e!==``?e:void 0;function Xe(e){let t=typeof e==`object`&&e&&!Array.isArray(e)?e:{},n=$(t.country),r=$(t.state);return{...$(t.street1)?{street:t.street1}:{},...$(t.city)?{city:t.city}:{},...r?{province:n===`US`?`US-${r}`:r}:{},...$(t.postalCode)?{postalCode:t.postalCode}:{},...n?{country:n}:{}}}function Ze(e,t){let n=typeof t==`object`&&t&&!Array.isArray(t)?{...t}:{};for(let e of[`street1`,`city`,`state`,`postalCode`,`country`])delete n[e];let r=$(e.province);return{...n,...$(e.street)?{street1:e.street}:{},...$(e.city)?{city:e.city}:{},...r?{state:r.replace(/^US-/,``)}:{},...$(e.postalCode)?{postalCode:e.postalCode}:{},...$(e.country)?{country:e.country}:{}}}function Qe(e){return document.body.appendChild(e),e.showModal(),()=>{e.close(),e.remove()}}function $e(e){let t=[e.status,e.customerType].filter(Boolean).join(` · `);return{id:e.id,label:e.profile.name,...t?{detail:t}:{}}}function et(e){return{id:e.id,label:e.profile.name,...e.status?{detail:e.status}:{}}}function tt(e,t){l(t,!0);let n=v(t,`value`,15,``),i=v(t,`label`,3,`Customer`),a=v(t,`required`,3,!1),o=v(t,`disabled`,3,!1),s=v(t,`createLabel`,3,`New customer`);U(e,{get name(){return t.name},get label(){return i()},get required(){return a()},get disabled(){return o()},get error(){return t.error},get onCreate(){return t.onCreate},get createLabel(){return s()},get onchange(){return t.onchange},search:async e=>(await t.search(e)).map($e),resolve:async e=>{let n=await t.resolve(e);return n?{id:n.id,label:n.profile.name}:null},get value(){return n()},set value(e){n(e)}}),r()}function nt(e,t){l(t,!0);let n=v(t,`value`,15,``),i=v(t,`label`,3,`Vendor`),a=v(t,`required`,3,!1),o=v(t,`disabled`,3,!1),s=v(t,`createLabel`,3,`New vendor`);U(e,{get name(){return t.name},get label(){return i()},get required(){return a()},get disabled(){return o()},get error(){return t.error},get onCreate(){return t.onCreate},get createLabel(){return s()},get onchange(){return t.onchange},search:async e=>(await t.search(e)).map(et),resolve:async e=>{let n=await t.resolve(e);return n?{id:n.id,label:n.profile.name}:null},get value(){return n()},set value(e){n(e)}}),r()}var rt=[{name:`CustomerSelect`,selects:`@happyvertical/smrt-commerce:Customer`,kind:`customer`,component:tt},{name:`VendorSelect`,selects:`@happyvertical/smrt-commerce:Vendor`,kind:`vendor`,component:nt}];function it(e,t=rt){return t.find(t=>t.selects===e)}var at=a(`<label class="plain svelte-1t0u16g"> <input type="text"/></label>`),ot=a(`<dialog class="create svelte-1t0u16g"><!></dialog>`),st=a(`<!> <!>`,1);function ct(a,s){l(s,!0);let d=v(s,`creatable`,3,!0),h=J(),T=n(()=>s.field.related??``),O=n(()=>I(e(T))?.model),j=n(()=>it(e(T))),P=n(()=>d()?Oe(q.ids,K,e(T)).find(Ee):void 0),F=n(()=>e(O)?.name.toLowerCase()??`record`),L=b(C(typeof s.value==`string`?s.value:``));x(()=>{let t=typeof s.value==`string`?s.value:``;t!==e(L)&&A(L,t,!0)});let R=b(!1),z=b(0);function B(){M(z),A(R,!0)}function ee(e){A(R,!1),A(L,e.id,!0),s.onchange(e.id)}function V(e){A(L,e,!0),s.onchange(e===``?null:e)}var H=st(),W=E(H),G=t=>{var n=at(),r=S(n),a=w(r);_(a),i(n),D(()=>{o(r,`${s.label??``} `),k(a,`name`,s.name),a.required=s.required,y(a,e(L))}),m(`input`,a,e=>V(e.currentTarget.value)),f(t,n)},Y=t=>{let r=n(()=>e(j).component);var i=p(),a=E(i);{let t=n(()=>e(P)?B:void 0),i=n(()=>`New ${e(F)}`);u(a,()=>e(r),(n,r)=>{r(n,{get name(){return s.name},get label(){return s.label},get required(){return s.required},search:e=>oe(h,e),resolve:e=>re(h,e),get onCreate(){return e(t)},get createLabel(){return e(i)},onchange:V,get value(){return e(L)},set value(e){A(L,e,!0)}})})}f(t,i)},se=t=>{let r=n(()=>e(j).component);var i=p(),a=E(i);{let t=n(()=>e(P)?B:void 0),i=n(()=>`New ${e(F)}`);u(a,()=>e(r),(n,r)=>{r(n,{get name(){return s.name},get label(){return s.label},get required(){return s.required},search:e=>ie(h,e),resolve:e=>ae(h,e),get onCreate(){return e(t)},get createLabel(){return e(i)},onchange:V,get value(){return e(L)},set value(e){A(L,e,!0)}})})}f(t,i)},ce=t=>{{let r=n(()=>e(P)?B:void 0),i=n(()=>`New ${e(F)}`);U(t,{get name(){return s.name},get label(){return s.label},get required(){return s.required},search:t=>ne(h,e(O),t),resolve:t=>te(h,e(O),t),get onCreate(){return e(r)},get createLabel(){return e(i)},onchange:V,get value(){return e(L)},set value(e){A(L,e,!0)}})}};t(W,t=>{e(O)?e(j)?.kind===`customer`?t(Y,1):e(j)?.kind===`vendor`?t(se,2):t(ce,-1):t(G)});var le=w(W,2),ue=t=>{var n=ot(),r=S(n);N(r,()=>e(z),t=>{wt(t,{get active(){return e(P)},onsaved:ee,oncancel:()=>A(R,!1)})}),i(n),c(n,()=>Qe),D(()=>k(n,`aria-label`,`New ${e(F)}`)),g(`close`,n,()=>A(R,!1)),f(t,n)};t(le,t=>{e(P)&&e(R)&&t(ue)}),f(a,H),r()}h([`input`]);var lt=a(`<div class="percent svelte-n1ol00"><!> <span class="percent-sign svelte-n1ol00" aria-hidden="true">%</span></div>`),ut=a(`<input type="url" class="svelte-n1ol00"/>`),dt=a(`<input type="number" step="1" class="svelte-n1ol00"/>`),ft=a(`<input type="number" step="any" class="svelte-n1ol00"/>`),pt=a(`<textarea rows="3" class="svelte-n1ol00"></textarea>`),mt=a(`<input type="text" class="svelte-n1ol00"/>`),ht=a(`<!> <!>`,1),gt=a(`<p class="field-error svelte-n1ol00" role="alert"> </p>`),_t=a(`<small class="svelte-n1ol00"> </small>`),vt=a(`<div class="field svelte-n1ol00"><!> <!> <!></div>`);function yt(a,s){l(s,!0);let c=v(s,`idPrefix`,3,`field`),u=v(s,`hideRequired`,3,!1),p=v(s,`creatable`,3,!0),h=n(()=>Ae(s.field,s.modelId)),b=n(()=>s.label??ee(s.field.name)),x=n(()=>`${c()}-${s.field.name}`),C=n(()=>s.field.required&&!u()),O=n(()=>s.value===null||s.value===void 0?``:typeof s.value==`object`?JSON.stringify(s.value):String(s.value)),A=n(()=>[...e(C)||(s.field.enum??[]).includes(``)?[]:[{value:``,label:`(none)`}],...(s.field.enum??[]).map(e=>({value:e,label:e===``?`(none)`:z(e)}))]);function M(e){if(e.trim()===``)return null;let t=Number(e);return Number.isFinite(t)?t:null}function N(e){try{return JSON.parse(e)}catch{return e}}let P=e=>e.slice(0,10);var F=vt(),I=S(F),L=t=>{{let r=n(()=>s.value===!0);H(t,{get checked(){return e(r)},onchange:e=>s.onchange(e.currentTarget.checked),get label(){return e(b)}})}},R=t=>{ct(t,{get field(){return s.field},get value(){return s.value},get onchange(){return s.onchange},get label(){return e(b)},get name(){return e(x)},get required(){return e(C)},get creatable(){return p()}})},B=t=>{ge(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},get options(){return e(A)},get value(){return e(O)},onchange:e=>s.onchange(e)})},U=t=>{ve(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},rows:4,get value(){return e(O)},onchange:e=>s.onchange(e)})},te=t=>{Se(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},type:`email`,get value(){return e(O)},onchange:e=>s.onchange(e)})},ne=t=>{xe(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},get value(){return e(O)},onchange:e=>s.onchange(e)})},re=t=>{{let r=n(()=>typeof s.value==`number`?s.value:null);_e(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},currency:`USD`,min:0,get value(){return e(r)},onchange:e=>s.onchange(e)})}},ie=t=>{var r=lt(),a=S(r);{let t=n(()=>we(s.value));Ce(a,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},min:0,step:.01,get value(){return e(t)},onchange:e=>s.onchange(be(e))})}d(2),i(r),f(t,r)},ae=t=>{{let r=n(()=>P(e(O)));ye(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},includeTime:!1,get value(){return e(r)},onchange:e=>s.onchange(e?new Date(`${e}T00:00:00Z`).toISOString():``)})}},G=t=>{{let r=n(()=>Xe(s.value));Te(t,{get name(){return e(x)},get label(){return e(b)},get required(){return e(C)},get value(){return e(r)},onchange:e=>s.onchange(Ze(e,s.value))})}},oe=n=>{var r=ht(),i=E(r);W(i,{get for(){return e(x)},get label(){return e(b)},get required(){return e(C)}});var a=w(i,2),o=t=>{V(t,{get id(){return e(x)},get required(){return e(C)},get value(){return e(O)},onchange:e=>s.onchange(e.currentTarget.value)})},c=t=>{var n=ut();_(n),D(()=>{k(n,`id`,e(x)),n.required=e(C),y(n,e(O))}),m(`input`,n,e=>s.onchange(e.currentTarget.value)),f(t,n)},l=t=>{var n=dt();_(n),D(()=>{k(n,`id`,e(x)),n.required=e(C),y(n,e(O))}),g(`focus`,n,e=>e.currentTarget.select()),m(`input`,n,e=>{let t=M(e.currentTarget.value);s.onchange(t===null?null:Math.trunc(t))}),f(t,n)},u=t=>{var n=ft();_(n),D(()=>{k(n,`id`,e(x)),n.required=e(C),y(n,e(O))}),g(`focus`,n,e=>e.currentTarget.select()),m(`input`,n,e=>s.onchange(M(e.currentTarget.value))),f(t,n)},d=t=>{var n=pt();j(n),D(()=>{k(n,`id`,e(x)),y(n,e(O))}),m(`input`,n,e=>s.onchange(N(e.currentTarget.value))),f(t,n)},p=t=>{var n=mt();_(n),D(()=>{k(n,`id`,e(x)),n.required=e(C),y(n,e(O))}),m(`input`,n,e=>s.onchange(e.currentTarget.value)),f(t,n)};t(a,t=>{e(h)===`currency`?t(o):e(h)===`url`?t(c,1):e(h)===`integer`?t(l,2):e(h)===`decimal`?t(u,3):e(h)===`json`?t(d,4):t(p,-1)}),f(n,r)};t(I,t=>{e(h)===`boolean`?t(L):e(h)===`relation`?t(R,1):e(h)===`enum`?t(B,2):e(h)===`textarea`?t(U,3):e(h)===`email`?t(te,4):e(h)===`phone`?t(ne,5):e(h)===`money`?t(re,6):e(h)===`percent`?t(ie,7):e(h)===`datetime`?t(ae,8):e(h)===`address`?t(G,9):t(oe,-1)});var K=w(I,2),q=t=>{var n=gt(),r=T(n,!0);D(()=>{k(n,`id`,`${e(x)}-error`),o(r,s.error)}),f(t,n)};t(K,e=>{s.error&&e(q)});var J=w(K,2),Y=e=>{var t=_t(),n=T(t,!0);D(()=>o(n,s.help)),f(e,t)};t(J,e=>{s.help&&e(Y)}),i(F),D(()=>{k(F,`data-renderer`,e(h)),k(F,`data-invalid`,s.error?``:void 0)}),f(a,F),r()}h([`input`]);var bt=a(`<p>Loading...</p>`),xt=a(`<p class="error svelte-1rp3j7g" role="alert" data-error-summary=""> </p>`),St=a(`<p class="error svelte-1rp3j7g" role="alert"> </p>`),Ct=a(`<form class="planner-form" novalidate=""><h3 class="svelte-1rp3j7g"> </h3> <!> <!> <!> <div class="actions svelte-1rp3j7g"><button type="submit" class="svelte-1rp3j7g">Save</button> <button type="button" class="secondary svelte-1rp3j7g">Cancel</button></div></form>`);function wt(a,c){l(c,!0);let u=J(),d=n(()=>We(c.active,X).filter(({catalogField:e,modelId:t})=>!q.rows.some(n=>n.objectRef===t&&n.fieldName===e.name&&n.visibility===`hidden`))),h=b(C(Ge(c.active,X))),_=b(c.id===void 0),v=b(``),y=b(C({})),x=n(()=>e(d).map(({field:e,catalogField:t})=>({...t,name:e.id,label:e.label,required:e.required??t.required}))),k=n(()=>Ve(e(x),e(y))),j={};async function M(e){let t=await Je(u,c.active,X,e);A(h,t.values,!0),j=t.rows,A(_,!0)}c.id!==void 0&&M(c.id);async function N(t){t.preventDefault();let n=t.currentTarget;if(A(v,``),A(y,Be(e(x),e(h)),!0),Object.keys(e(y)).length>0){await O(),Ue(n);return}try{let t=await u.apply(Ye(c.active,X,e(h),c.id,j,c.preset)),n=Q(c.active).records[Ke(c.active)],r=n?t[n.as]:void 0;if(!r)throw Error(`Nothing was saved.`);c.onsaved(r)}catch(e){A(v,e instanceof Error?e.message:`Could not save.`,!0)}}var P=p(),I=E(P),L=e=>{var t=bt();f(e,t)},R=r=>{var a=Ct(),l=S(a),u=T(l),p=w(l,2);s(p,17,()=>e(d),({field:e,catalogField:t,modelId:n})=>e.id,(t,r)=>{let i=()=>e(r).field,a=()=>e(r).catalogField,o=()=>e(r).modelId;{let r=n(()=>({...a(),required:i().required??a().required}));yt(t,{get modelId(){return o()},get field(){return e(r)},get label(){return i().label},get help(){return i().help},get idPrefix(){return c.active.form.id},get error(){return e(y)[i().id]},get value(){return e(h)[i().id]},onchange:t=>{e(h)[i().id]=t,delete e(y)[i().id]}})}});var _=w(p,2),b=t=>{var n=xt(),r=T(n,!0);D(()=>o(r,e(k))),f(t,n)};t(_,t=>{e(k)&&t(b)});var x=w(_,2),C=t=>{var n=St(),r=T(n,!0);D(()=>o(r,e(v))),f(t,n)};t(x,t=>{e(v)&&t(C)});var E=w(x,2),O=w(S(E),2);i(E),i(a),D(e=>o(u,`${c.id===void 0?`New`:`Edit`} ${e??``}`),[()=>F(c.active.form.label,c.noun,c.noun!==void 0)]),g(`submit`,a,N),m(`click`,O,function(...e){c.oncancel?.apply(this,e)}),f(r,a)};t(I,t=>{e(_)?t(R,-1):t(L)}),f(a,P),r()}h([`click`]);export{Le as a,Ne as c,Fe as d,Oe as f,De as h,Re as i,Be as l,Ee as m,yt as n,Pe as o,ke as p,Ue as r,Ve as s,wt as t,He as u};
@@ -0,0 +1 @@
1
+ import{$ as e,Ct as t,Dt as n,Ot as r,a as i}from"./vNEnXNLV.js";import"./xihTtKlq.js";import{n as a}from"./DCsSRJsN.js";import{t as o}from"./BzMfoxBk.js";function s(s,c){r(c,!0);let l=i(c,`dismissible`,3,!1),u=i(c,`class`,3,``),d=o(),f=t(()=>d.isAILoading),p=t(()=>d.aiLoading),m=t(()=>c.show??e(f));function h(e){switch(e){case`checking`:return`Checking AI capabilities...`;case`downloading`:return`Downloading AI models...`;case`initializing`:return`Initializing AI...`;case`ready`:return`AI Ready`;case`error`:return`Error loading AI`;default:return`Loading...`}}let g=t(()=>c.message??h(e(p).phase)),_=t(()=>e(p).overallProgress),v=t(()=>e(p).loaded),y=t(()=>e(p).error);a(s,{get show(){return e(m)},get message(){return e(g)},get progress(){return e(_)},get items(){return e(v)},get error(){return e(y)},get dismissible(){return l()},get class(){return u()},get ondismiss(){return c.ondismiss}}),n()}export{s as default};