@happyvertical/smrt-planner 0.57.18 → 0.57.20

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 (549) hide show
  1. package/README.md +25 -0
  2. package/agents/commands.md +3 -0
  3. package/agents/cookbook.md +4 -1
  4. package/app/404.html +21 -21
  5. package/app/_app/immutable/assets/0.BwSv64V0.css +1 -0
  6. package/app/_app/immutable/assets/{2.D3Ee82Nk.css → 2.BSQtjEJf.css} +1 -1
  7. package/app/_app/immutable/chunks/{D18ccNbM.js → -2dfZP6X.js} +1 -1
  8. package/app/_app/immutable/chunks/{BEfnNZ_r.js → 1Uq1awDD.js} +1 -1
  9. package/app/_app/immutable/chunks/5I4x_KS6.js +1 -0
  10. package/app/_app/immutable/chunks/{CYV1bZYS.js → 7y8ldvJX.js} +2 -2
  11. package/app/_app/immutable/chunks/{BqoDi2ah.js → B1Pf2l_R.js} +21 -21
  12. package/app/_app/immutable/chunks/B2aomX_k.js +1 -0
  13. package/app/_app/immutable/chunks/{D4ZXuDn5.js → BE4TZ3aw.js} +1 -1
  14. package/app/_app/immutable/chunks/{CckqctPA.js → BL2JRgxi.js} +1 -1
  15. package/app/_app/immutable/chunks/{WxmttVik.js → BdMHVrP7.js} +1 -1
  16. package/app/_app/immutable/chunks/{CEnFvaV_.js → Bns8l-x1.js} +1 -1
  17. package/app/_app/immutable/chunks/{BkH1cevg.js → CLySd19b.js} +1 -1
  18. package/app/_app/immutable/chunks/{D4xI8dt4.js → CM3HdjYi.js} +1 -1
  19. package/app/_app/immutable/chunks/{B094Upwj.js → CRGGx5Lw.js} +1 -1
  20. package/app/_app/immutable/chunks/{cgG95It7.js → CYCgPm88.js} +1 -1
  21. package/app/_app/immutable/chunks/CeUbBJTD.js +1 -0
  22. package/app/_app/immutable/chunks/{3YcXW6yo.js → CgE1Gcro.js} +1 -1
  23. package/app/_app/immutable/chunks/{B6l3em0z.js → CmAUvRQx.js} +1 -1
  24. package/app/_app/immutable/chunks/{BSd70kcz.js → CpP-dbYB.js} +1 -1
  25. package/app/_app/immutable/chunks/{CmzwyvUc.js → Cw26E4UG.js} +1 -1
  26. package/app/_app/immutable/chunks/{CRAFzMd4.js → Cy7yT1On.js} +3 -3
  27. package/app/_app/immutable/chunks/{masgq8Qh.js → D7WLtlpw.js} +1 -1
  28. package/app/_app/immutable/chunks/{BMzaHFhM.js → DADOPup4.js} +1 -1
  29. package/app/_app/immutable/chunks/{B5cHPql0.js → DC203NCO.js} +1 -1
  30. package/app/_app/immutable/chunks/{qBSxbVXE.js → DDIQ8W6V.js} +1 -1
  31. package/app/_app/immutable/chunks/{DNKv-5Rn.js → DKgADWce.js} +1 -1
  32. package/app/_app/immutable/chunks/{BKaViC3K.js → DNpuZXha.js} +1 -1
  33. package/app/_app/immutable/chunks/{yoo-DzHO.js → DYS_WKPd.js} +1 -1
  34. package/app/_app/immutable/chunks/DYku8Hqx.js +1 -0
  35. package/app/_app/immutable/chunks/{CR7v6iSc.js → DfD9dv_l.js} +1 -1
  36. package/app/_app/immutable/chunks/{Bs5WxZDd.js → Qxx7HWld.js} +1 -1
  37. package/app/_app/immutable/chunks/{C3_MyZ8U.js → agvanIM7.js} +2 -2
  38. package/app/_app/immutable/chunks/{Cwt6a32V.js → juz5EBPL.js} +1 -1
  39. package/app/_app/immutable/entry/{app.Bfo_XQ_u.js → app.UfGUpLlK.js} +2 -2
  40. package/app/_app/immutable/entry/start.BAb-NXu1.js +1 -0
  41. package/app/_app/immutable/nodes/0.CVYFDYxr.js +7 -0
  42. package/app/_app/immutable/nodes/{1.BIIgo6hP.js → 1.CJEHWdw8.js} +1 -1
  43. package/app/_app/immutable/nodes/{10.p-z5jbqI.js → 10._eiewXMR.js} +1 -1
  44. package/app/_app/immutable/nodes/{11.DikmsDwP.js → 11.Dp8fmXsX.js} +1 -1
  45. package/app/_app/immutable/nodes/{12.OJHha47l.js → 12.bKzQ9OLN.js} +1 -1
  46. package/app/_app/immutable/nodes/{13.B5uFEHhN.js → 13.DaudqCzg.js} +1 -1
  47. package/app/_app/immutable/nodes/{14.DSqhro7V.js → 14.ZMVp9EbO.js} +1 -1
  48. package/app/_app/immutable/nodes/2.BEaYX5kW.js +26 -0
  49. package/app/_app/immutable/nodes/{3.4GrrsC59.js → 3.XnNGal1u.js} +1 -1
  50. package/app/_app/immutable/nodes/{4.CyWWMczB.js → 4.CczBNlYL.js} +1 -1
  51. package/app/_app/immutable/nodes/{5.B3AevRqW.js → 5.D0-S4wqa.js} +1 -1
  52. package/app/_app/immutable/nodes/{6.DOjCozUO.js → 6.DiqKNjHf.js} +1 -1
  53. package/app/_app/immutable/nodes/{7.BVKnH6b6.js → 7.CzhUZRpM.js} +1 -1
  54. package/app/_app/immutable/nodes/{8.wnGurkrO.js → 8.BwuGOj43.js} +1 -1
  55. package/app/_app/immutable/nodes/{9.PyL2mnd3.js → 9.C9C4Mx7X.js} +1 -1
  56. package/app/_app/version.json +1 -1
  57. package/app/advanced-styles/index.html +25 -25
  58. package/app/ai/index.html +28 -28
  59. package/app/blueprint/index.html +23 -23
  60. package/app/cookbook/index.html +23 -23
  61. package/app/index.html +36 -32
  62. package/app/m/ads/AdDeliveryTier/index.html +27 -27
  63. package/app/m/ads/AdEvent/index.html +27 -27
  64. package/app/m/ads/AdFormat/index.html +27 -27
  65. package/app/m/ads/AdGroup/index.html +27 -27
  66. package/app/m/ads/AdVariation/index.html +27 -27
  67. package/app/m/analytics/AnalyticsDataStream/index.html +27 -27
  68. package/app/m/analytics/AnalyticsEvent/index.html +27 -27
  69. package/app/m/analytics/AnalyticsProperty/index.html +27 -27
  70. package/app/m/analytics/AnalyticsReport/index.html +27 -27
  71. package/app/m/approvals/ApprovalEvent/index.html +27 -27
  72. package/app/m/approvals/ApprovalPolicy/index.html +27 -27
  73. package/app/m/approvals/ApprovalRequest/index.html +27 -27
  74. package/app/m/assets/Asset/attachments/index.html +28 -28
  75. package/app/m/assets/Asset/index.html +27 -27
  76. package/app/m/assets/AssetAssociation/index.html +27 -27
  77. package/app/m/assets/AssetMetafield/index.html +27 -27
  78. package/app/m/assets/AssetStatus/index.html +27 -27
  79. package/app/m/assets/AssetType/index.html +27 -27
  80. package/app/m/assets/Folder/index.html +27 -27
  81. package/app/m/chat/AgentSession/index.html +27 -27
  82. package/app/m/chat/ChatMessage/index.html +27 -27
  83. package/app/m/chat/ChatParticipant/index.html +27 -27
  84. package/app/m/chat/ChatReaction/index.html +27 -27
  85. package/app/m/chat/ChatRoom/index.html +27 -27
  86. package/app/m/chat/ChatThread/index.html +27 -27
  87. package/app/m/chat/VoiceGatewayTurn/index.html +27 -27
  88. package/app/m/chat/VoiceSession/index.html +27 -27
  89. package/app/m/commerce/Agreement/index.html +27 -27
  90. package/app/m/commerce/Cart/index.html +27 -27
  91. package/app/m/commerce/Contract/index.html +27 -27
  92. package/app/m/commerce/ContractLineItem/index.html +27 -27
  93. package/app/m/commerce/Customer/index.html +27 -27
  94. package/app/m/commerce/DocumentTax/index.html +27 -27
  95. package/app/m/commerce/Estimate/index.html +27 -27
  96. package/app/m/commerce/Fulfillment/index.html +27 -27
  97. package/app/m/commerce/FulfillmentLineItem/index.html +27 -27
  98. package/app/m/commerce/HistoricalCustomerFunds/index.html +27 -27
  99. package/app/m/commerce/HistoricalCustomerFundsAllocation/index.html +27 -27
  100. package/app/m/commerce/HistoricalSalesLine/index.html +27 -27
  101. package/app/m/commerce/Invoice/index.html +27 -27
  102. package/app/m/commerce/InvoiceLineItem/index.html +27 -27
  103. package/app/m/commerce/Lease/index.html +27 -27
  104. package/app/m/commerce/LicenseSale/index.html +27 -27
  105. package/app/m/commerce/Order/index.html +27 -27
  106. package/app/m/commerce/Payment/index.html +27 -27
  107. package/app/m/commerce/PaymentAllocation/index.html +27 -27
  108. package/app/m/commerce/PaymentInstrument/index.html +27 -27
  109. package/app/m/commerce/PaymentIntent/index.html +27 -27
  110. package/app/m/commerce/Payout/index.html +27 -27
  111. package/app/m/commerce/ProductionOrder/index.html +27 -27
  112. package/app/m/commerce/PurchaseContract/index.html +27 -27
  113. package/app/m/commerce/PurchaseOrder/index.html +27 -27
  114. package/app/m/commerce/SalesContract/index.html +27 -27
  115. package/app/m/commerce/SupplierQuote/index.html +27 -27
  116. package/app/m/commerce/TaxCode/index.html +27 -27
  117. package/app/m/commerce/TaxComponent/index.html +27 -27
  118. package/app/m/commerce/TaxSettings/index.html +27 -27
  119. package/app/m/commerce/TaxSummaryReport/index.html +27 -27
  120. package/app/m/commerce/TenantPaymentAccount/index.html +27 -27
  121. package/app/m/commerce/Vendor/index.html +27 -27
  122. package/app/m/commerce/WholesaleOrder/index.html +27 -27
  123. package/app/m/content/Content/index.html +27 -27
  124. package/app/m/content/ContentContribution/index.html +27 -27
  125. package/app/m/content/ContentContributionAttachment/index.html +27 -27
  126. package/app/m/content/ContentContributionRevision/index.html +27 -27
  127. package/app/m/content/ContentContributionType/index.html +27 -27
  128. package/app/m/content/ContentContributor/index.html +27 -27
  129. package/app/m/content/ContentCorrection/index.html +27 -27
  130. package/app/m/content/ContentFeedSource/index.html +27 -27
  131. package/app/m/content/ContentGovernanceAssignment/index.html +27 -27
  132. package/app/m/content/ContentGovernancePolicy/index.html +27 -27
  133. package/app/m/content/ContentGovernanceProfile/index.html +27 -27
  134. package/app/m/content/ContentReference/index.html +27 -27
  135. package/app/m/content/ContentReview/index.html +27 -27
  136. package/app/m/content/ContentVersion/index.html +27 -27
  137. package/app/m/events/Event/index.html +27 -27
  138. package/app/m/events/EventParticipant/index.html +27 -27
  139. package/app/m/events/EventSeries/index.html +27 -27
  140. package/app/m/events/EventType/index.html +27 -27
  141. package/app/m/expenses/Expense/index.html +27 -27
  142. package/app/m/facts/Fact/index.html +27 -27
  143. package/app/m/facts/FactContent/index.html +27 -27
  144. package/app/m/facts/FactEvidence/index.html +27 -27
  145. package/app/m/facts/FactSource/index.html +27 -27
  146. package/app/m/facts/FactSubject/index.html +27 -27
  147. package/app/m/facts/FactTag/index.html +27 -27
  148. package/app/m/fields/FieldPolicy/index.html +27 -27
  149. package/app/m/fields/FieldPolicySuggestion/index.html +27 -27
  150. package/app/m/fields/FieldUsageCounter/index.html +27 -27
  151. package/app/m/images/Image/index.html +27 -27
  152. package/app/m/inventory/InventoryLocation/index.html +27 -27
  153. package/app/m/inventory/Lot/index.html +27 -27
  154. package/app/m/inventory/LotCorrection/index.html +27 -27
  155. package/app/m/inventory/LotDocument/index.html +27 -27
  156. package/app/m/inventory/LotStockLevel/index.html +27 -27
  157. package/app/m/inventory/LotUsage/index.html +27 -27
  158. package/app/m/inventory/StockLevel/index.html +27 -27
  159. package/app/m/inventory/StockMovement/index.html +27 -27
  160. package/app/m/ledgers/Account/index.html +27 -27
  161. package/app/m/ledgers/Journal/index.html +27 -27
  162. package/app/m/ledgers/JournalEntry/index.html +27 -27
  163. package/app/m/ledgers/Ledger/index.html +27 -27
  164. package/app/m/manufacturing/Assembly/index.html +27 -27
  165. package/app/m/manufacturing/BillOfMaterials/index.html +27 -27
  166. package/app/m/manufacturing/BomLine/index.html +27 -27
  167. package/app/m/manufacturing/Operation/index.html +27 -27
  168. package/app/m/manufacturing/ProductionRun/index.html +27 -27
  169. package/app/m/manufacturing/ProductionRunCompletion/index.html +27 -27
  170. package/app/m/manufacturing/RoutingStep/index.html +27 -27
  171. package/app/m/marketing/Campaign/index.html +27 -27
  172. package/app/m/marketing/CampaignChannel/index.html +27 -27
  173. package/app/m/marketing/CampaignMetricSnapshot/index.html +27 -27
  174. package/app/m/messages/Account/index.html +27 -27
  175. package/app/m/messages/Attachment/index.html +27 -27
  176. package/app/m/messages/Blacklist/index.html +27 -27
  177. package/app/m/messages/Email/failed-sends/index.html +28 -28
  178. package/app/m/messages/Email/index.html +27 -27
  179. package/app/m/messages/Email/mailbox/index.html +28 -28
  180. package/app/m/messages/EmailAccount/index.html +27 -27
  181. package/app/m/messages/EmailAttachment/index.html +27 -27
  182. package/app/m/messages/EmailFolder/index.html +27 -27
  183. package/app/m/messages/Message/index.html +27 -27
  184. package/app/m/messages/MessagingEndpoint/index.html +27 -27
  185. package/app/m/messages/PersonaMessageRoute/index.html +27 -27
  186. package/app/m/messages/SlackAccount/index.html +27 -27
  187. package/app/m/messages/SlackMessage/index.html +27 -27
  188. package/app/m/messages/TelegramAccount/index.html +27 -27
  189. package/app/m/messages/Tweet/index.html +27 -27
  190. package/app/m/messages/TwitterAccount/index.html +27 -27
  191. package/app/m/messages/Whitelist/index.html +27 -27
  192. package/app/m/messages/ZulipAccount/index.html +27 -27
  193. package/app/m/places/Place/index.html +27 -27
  194. package/app/m/places/PlaceType/index.html +27 -27
  195. package/app/m/products/Category/index.html +27 -27
  196. package/app/m/products/Material/index.html +27 -27
  197. package/app/m/products/Product/index.html +27 -27
  198. package/app/m/products/Product/ingredients/index.html +28 -28
  199. package/app/m/products/ProductVariant/index.html +27 -27
  200. package/app/m/products/Sku/index.html +27 -27
  201. package/app/m/profiles/ApiKey/index.html +27 -27
  202. package/app/m/profiles/Bot/index.html +27 -27
  203. package/app/m/profiles/MagicLinkToken/index.html +27 -27
  204. package/app/m/profiles/NostrIdentity/index.html +27 -27
  205. package/app/m/profiles/OidcIdentity/index.html +27 -27
  206. package/app/m/profiles/Organization/index.html +27 -27
  207. package/app/m/profiles/Person/index.html +27 -27
  208. package/app/m/profiles/Profile/index.html +27 -27
  209. package/app/m/profiles/ProfileMetadata/index.html +27 -27
  210. package/app/m/profiles/ProfileMetafield/index.html +27 -27
  211. package/app/m/profiles/ProfileRelationship/index.html +27 -27
  212. package/app/m/profiles/ProfileRelationshipTerm/index.html +27 -27
  213. package/app/m/profiles/ProfileRelationshipType/index.html +27 -27
  214. package/app/m/profiles/ProfileType/index.html +27 -27
  215. package/app/m/projects/Comment/index.html +27 -27
  216. package/app/m/projects/Issue/index.html +27 -27
  217. package/app/m/projects/Label/index.html +27 -27
  218. package/app/m/projects/Project/index.html +27 -27
  219. package/app/m/projects/ProjectIntegration/index.html +27 -27
  220. package/app/m/projects/PullRequest/index.html +27 -27
  221. package/app/m/projects/Repository/index.html +27 -27
  222. package/app/m/properties/Property/index.html +27 -27
  223. package/app/m/properties/Zone/index.html +27 -27
  224. package/app/m/reports/RuntimeReport/index.html +27 -27
  225. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +27 -27
  226. package/app/m/reports/SmrtReportLock/index.html +27 -27
  227. package/app/m/reports/SmrtReportRefreshTask/index.html +27 -27
  228. package/app/m/reports/SmrtReportRun/index.html +27 -27
  229. package/app/m/reports/SmrtReportSchedule/index.html +27 -27
  230. package/app/m/reports/SmrtReportWatermark/index.html +27 -27
  231. package/app/m/sales/Agreement/index.html +27 -27
  232. package/app/m/sales/AttributionException/index.html +27 -27
  233. package/app/m/sales/AttributionPolicy/index.html +27 -27
  234. package/app/m/sales/Commission/index.html +27 -27
  235. package/app/m/sales/CommissionAdjustment/index.html +27 -27
  236. package/app/m/sales/CommissionPayout/index.html +27 -27
  237. package/app/m/sales/CommissionPlan/index.html +27 -27
  238. package/app/m/sales/Earner/index.html +27 -27
  239. package/app/m/sales/EarnerSourceAttribution/index.html +27 -27
  240. package/app/m/sales/EarningEvent/index.html +27 -27
  241. package/app/m/sales/ExecutedAgreement/index.html +27 -27
  242. package/app/m/sales/Lead/index.html +27 -27
  243. package/app/m/sales/Opportunity/index.html +27 -27
  244. package/app/m/sales/OpportunityConversion/index.html +27 -27
  245. package/app/m/sales/PipelineDefinition/index.html +27 -27
  246. package/app/m/sales/PipelineStage/index.html +27 -27
  247. package/app/m/sales/Referral/index.html +27 -27
  248. package/app/m/sales/ReferralAgreement/index.html +27 -27
  249. package/app/m/sales/ReferralLink/index.html +27 -27
  250. package/app/m/sales/ReferralProgram/index.html +27 -27
  251. package/app/m/sales/ReferralTermSnapshot/index.html +27 -27
  252. package/app/m/sales/ReferralTouch/index.html +27 -27
  253. package/app/m/sales/Referrer/index.html +27 -27
  254. package/app/m/sales/SalesActivity/index.html +27 -27
  255. package/app/m/sales/SalesRepresentative/index.html +27 -27
  256. package/app/m/sites/Site/index.html +27 -27
  257. package/app/m/sites/SiteAgentBinding/index.html +27 -27
  258. package/app/m/social/OAuthState/index.html +27 -27
  259. package/app/m/social/SocialAccount/index.html +27 -27
  260. package/app/m/social/SocialPost/index.html +27 -27
  261. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +27 -27
  262. package/app/m/subscriptions/BillingAdjustment/index.html +27 -27
  263. package/app/m/subscriptions/ClientCharge/index.html +27 -27
  264. package/app/m/subscriptions/CreditGrant/index.html +27 -27
  265. package/app/m/subscriptions/PricingRule/index.html +27 -27
  266. package/app/m/subscriptions/RetailCharge/index.html +27 -27
  267. package/app/m/subscriptions/SpendingPolicy/index.html +27 -27
  268. package/app/m/subscriptions/SubscriptionPlan/index.html +27 -27
  269. package/app/m/subscriptions/SubscriptionPlanVersion/index.html +27 -27
  270. package/app/m/subscriptions/TenantSubscription/index.html +27 -27
  271. package/app/m/subscriptions/TenantUsageMetric/index.html +27 -27
  272. package/app/m/support/ServiceTimeEntry/index.html +27 -27
  273. package/app/m/support/SupportAiRun/index.html +27 -27
  274. package/app/m/support/SupportAvailability/index.html +27 -27
  275. package/app/m/support/SupportCase/index.html +27 -27
  276. package/app/m/support/SupportCaseEvent/index.html +27 -27
  277. package/app/m/support/SupportChannelBinding/index.html +27 -27
  278. package/app/m/support/SupportCharge/index.html +27 -27
  279. package/app/m/support/SupportCompensation/index.html +27 -27
  280. package/app/m/support/SupportCompensationPlan/index.html +27 -27
  281. package/app/m/support/SupportEscalation/index.html +27 -27
  282. package/app/m/support/SupportInteraction/index.html +27 -27
  283. package/app/m/support/SupportPlan/index.html +27 -27
  284. package/app/m/support/SupportPolicy/index.html +27 -27
  285. package/app/m/support/SupportQualification/index.html +27 -27
  286. package/app/m/support/SupportServiceTarget/index.html +27 -27
  287. package/app/m/support/SupportSpecialist/index.html +27 -27
  288. package/app/m/support/SupportWorkLink/index.html +27 -27
  289. package/app/m/tags/Tag/index.html +27 -27
  290. package/app/m/tags/TagAlias/index.html +27 -27
  291. package/app/m/timesheets/AttendanceBreak/index.html +27 -27
  292. package/app/m/timesheets/AttendancePunch/index.html +27 -27
  293. package/app/m/timesheets/AttendanceSegment/index.html +27 -27
  294. package/app/m/timesheets/ServiceChargeSnapshot/index.html +27 -27
  295. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +27 -27
  296. package/app/m/timesheets/ServiceTimeEntry/index.html +27 -27
  297. package/app/m/users/Group/index.html +27 -27
  298. package/app/m/users/GroupMember/index.html +27 -27
  299. package/app/m/users/GroupRole/index.html +27 -27
  300. package/app/m/users/Membership/index.html +27 -27
  301. package/app/m/users/MembershipOverride/index.html +27 -27
  302. package/app/m/users/Permission/index.html +27 -27
  303. package/app/m/users/Role/index.html +27 -27
  304. package/app/m/users/RolePermission/index.html +27 -27
  305. package/app/m/users/Session/index.html +27 -27
  306. package/app/m/users/Tenant/index.html +27 -27
  307. package/app/m/users/TenantIntegration/index.html +27 -27
  308. package/app/m/users/TenantPermissionOverride/index.html +27 -27
  309. package/app/m/users/User/index.html +27 -27
  310. package/app/m/video/Character/index.html +27 -27
  311. package/app/m/video/CharacterAsset/index.html +27 -27
  312. package/app/m/video/CompositeJob/index.html +27 -27
  313. package/app/m/video/Performer/index.html +27 -27
  314. package/app/m/video/PerformerAsset/index.html +27 -27
  315. package/app/m/video/Scene/index.html +27 -27
  316. package/app/m/video/SceneAsset/index.html +27 -27
  317. package/app/m/video/VideoComposition/index.html +27 -27
  318. package/app/m/video/VideoCompositionAsset/index.html +27 -27
  319. package/app/m/video/VideoSequence/index.html +27 -27
  320. package/app/m/video/VideoSequenceAsset/index.html +27 -27
  321. package/app/m/video/VideoShot/index.html +27 -27
  322. package/app/m/video/VideoShotAsset/index.html +27 -27
  323. package/app/m/video/VideoShotCharacter/index.html +27 -27
  324. package/app/m/video/VideoWorkflow/index.html +27 -27
  325. package/app/m/voice/VoiceOutput/index.html +27 -27
  326. package/app/m/voice/VoiceProfile/index.html +27 -27
  327. package/app/m/voice/VoiceSample/index.html +27 -27
  328. package/app/mcp.html +2 -2
  329. package/app/packages/ads/index.html +24 -24
  330. package/app/packages/analytics/index.html +24 -24
  331. package/app/packages/approvals/index.html +24 -24
  332. package/app/packages/assets/index.html +24 -24
  333. package/app/packages/chat/index.html +24 -24
  334. package/app/packages/comments/index.html +24 -24
  335. package/app/packages/commerce/index.html +24 -24
  336. package/app/packages/content/index.html +24 -24
  337. package/app/packages/events/index.html +24 -24
  338. package/app/packages/expenses/index.html +24 -24
  339. package/app/packages/facts/index.html +24 -24
  340. package/app/packages/fields/index.html +24 -24
  341. package/app/packages/human-resources/index.html +24 -24
  342. package/app/packages/images/index.html +24 -24
  343. package/app/packages/index.html +24 -24
  344. package/app/packages/ingestion/index.html +24 -24
  345. package/app/packages/inventory/index.html +24 -24
  346. package/app/packages/ledgers/index.html +24 -24
  347. package/app/packages/manufacturing/index.html +24 -24
  348. package/app/packages/marketing/index.html +24 -24
  349. package/app/packages/messages/index.html +24 -24
  350. package/app/packages/places/index.html +24 -24
  351. package/app/packages/preferences/index.html +24 -24
  352. package/app/packages/products/index.html +24 -24
  353. package/app/packages/profiles/index.html +24 -24
  354. package/app/packages/projects/index.html +24 -24
  355. package/app/packages/properties/index.html +24 -24
  356. package/app/packages/reports/index.html +24 -24
  357. package/app/packages/sales/index.html +24 -24
  358. package/app/packages/sites/index.html +24 -24
  359. package/app/packages/social/index.html +24 -24
  360. package/app/packages/subscriptions/index.html +24 -24
  361. package/app/packages/support/index.html +24 -24
  362. package/app/packages/tags/index.html +24 -24
  363. package/app/packages/timesheets/index.html +24 -24
  364. package/app/packages/users/index.html +24 -24
  365. package/app/packages/video/index.html +24 -24
  366. package/app/packages/voice/index.html +24 -24
  367. package/app/packages/webhooks/index.html +24 -24
  368. package/app/recipes/account-access/help/index.html +25 -25
  369. package/app/recipes/account-access/index.html +27 -27
  370. package/app/recipes/activity/help/index.html +25 -25
  371. package/app/recipes/activity/index.html +27 -27
  372. package/app/recipes/agreements/help/index.html +25 -25
  373. package/app/recipes/agreements/index.html +27 -27
  374. package/app/recipes/analytics.reports/help/index.html +25 -25
  375. package/app/recipes/analytics.reports/index.html +27 -27
  376. package/app/recipes/assets/help/index.html +25 -25
  377. package/app/recipes/assets/index.html +27 -27
  378. package/app/recipes/billing/help/index.html +25 -25
  379. package/app/recipes/billing/index.html +27 -27
  380. package/app/recipes/chat.assistant/help/index.html +25 -25
  381. package/app/recipes/chat.assistant/index.html +27 -27
  382. package/app/recipes/comments/help/index.html +25 -25
  383. package/app/recipes/comments/index.html +27 -27
  384. package/app/recipes/commerce.customers/help/index.html +25 -25
  385. package/app/recipes/commerce.customers/index.html +27 -27
  386. package/app/recipes/commerce.estimates/help/index.html +25 -25
  387. package/app/recipes/commerce.estimates/index.html +27 -27
  388. package/app/recipes/commerce.purchases/help/index.html +25 -25
  389. package/app/recipes/commerce.purchases/index.html +27 -27
  390. package/app/recipes/commerce.sales/help/index.html +25 -25
  391. package/app/recipes/commerce.sales/index.html +27 -27
  392. package/app/recipes/commerce.vendors/help/index.html +25 -25
  393. package/app/recipes/commerce.vendors/index.html +27 -27
  394. package/app/recipes/commerce.wholesale/help/index.html +25 -25
  395. package/app/recipes/commerce.wholesale/index.html +27 -27
  396. package/app/recipes/events.calendar/help/index.html +25 -25
  397. package/app/recipes/events.calendar/index.html +27 -27
  398. package/app/recipes/expenses.tracking/help/index.html +25 -25
  399. package/app/recipes/expenses.tracking/index.html +27 -27
  400. package/app/recipes/fields.form-customization/help/index.html +25 -25
  401. package/app/recipes/fields.form-customization/index.html +27 -27
  402. package/app/recipes/ingestion/help/index.html +25 -25
  403. package/app/recipes/ingestion/index.html +27 -27
  404. package/app/recipes/integrations/help/index.html +25 -25
  405. package/app/recipes/integrations/index.html +27 -27
  406. package/app/recipes/inventory.stock/help/index.html +25 -25
  407. package/app/recipes/inventory.stock/index.html +27 -27
  408. package/app/recipes/ledgers.bookkeeping/help/index.html +25 -25
  409. package/app/recipes/ledgers.bookkeeping/index.html +27 -27
  410. package/app/recipes/messages/help/index.html +25 -25
  411. package/app/recipes/messages/index.html +27 -27
  412. package/app/recipes/products/help/index.html +25 -25
  413. package/app/recipes/products/index.html +27 -27
  414. package/app/recipes/projects.tracker/help/index.html +25 -25
  415. package/app/recipes/projects.tracker/index.html +27 -27
  416. package/app/recipes/reports.materialized/help/index.html +25 -25
  417. package/app/recipes/reports.materialized/index.html +27 -27
  418. package/app/recipes/reports.runtime/help/index.html +25 -25
  419. package/app/recipes/reports.runtime/index.html +27 -27
  420. package/app/recipes/sales.pipeline/help/index.html +25 -25
  421. package/app/recipes/sales.pipeline/index.html +27 -27
  422. package/app/recipes/tags.taxonomy/help/index.html +25 -25
  423. package/app/recipes/tags.taxonomy/index.html +27 -27
  424. package/app/recipes/team-collaboration/help/index.html +25 -25
  425. package/app/recipes/team-collaboration/index.html +27 -27
  426. package/app/recipes/timesheets.time-entries/help/index.html +25 -25
  427. package/app/recipes/timesheets.time-entries/index.html +27 -27
  428. package/app/s/custom-accounts/index.html +23 -23
  429. package/app/s/custom-appointments/index.html +23 -23
  430. package/app/s/custom-billing/index.html +23 -23
  431. package/app/s/custom-bookings/index.html +23 -23
  432. package/app/s/custom-buying/index.html +23 -23
  433. package/app/s/custom-checkout/index.html +23 -23
  434. package/app/s/custom-classes/index.html +23 -23
  435. package/app/s/custom-clients/index.html +23 -23
  436. package/app/s/custom-events/index.html +23 -23
  437. package/app/s/custom-fleet/index.html +23 -23
  438. package/app/s/custom-gigs/index.html +23 -23
  439. package/app/s/custom-giving/index.html +23 -23
  440. package/app/s/custom-instruments/index.html +23 -23
  441. package/app/s/custom-jobs/index.html +23 -23
  442. package/app/s/custom-kitchen/index.html +23 -23
  443. package/app/s/custom-lessons/index.html +23 -23
  444. package/app/s/custom-material/index.html +23 -23
  445. package/app/s/custom-meetings/index.html +23 -23
  446. package/app/s/custom-members/index.html +23 -23
  447. package/app/s/custom-merch/index.html +23 -23
  448. package/app/s/custom-money/index.html +23 -23
  449. package/app/s/custom-paint/index.html +23 -23
  450. package/app/s/custom-parts/index.html +23 -23
  451. package/app/s/custom-rentals/index.html +23 -23
  452. package/app/s/custom-roastery/index.html +23 -23
  453. package/app/s/custom-schedule/index.html +23 -23
  454. package/app/s/custom-shelf/index.html +23 -23
  455. package/app/s/custom-shop/index.html +23 -23
  456. package/app/s/custom-students/index.html +23 -23
  457. package/app/s/custom-wholesale/index.html +23 -23
  458. package/app/s/custom-work/index.html +23 -23
  459. package/app/s/custom-yard/index.html +23 -23
  460. package/app/s/section-access-control/index.html +23 -23
  461. package/app/s/section-account-security/index.html +23 -23
  462. package/app/s/section-accounting/index.html +23 -23
  463. package/app/s/section-activity/index.html +23 -23
  464. package/app/s/section-agreements/index.html +23 -23
  465. package/app/s/section-analytics/index.html +23 -23
  466. package/app/s/section-assets/index.html +23 -23
  467. package/app/s/section-billing/index.html +23 -23
  468. package/app/s/section-calendar/index.html +23 -23
  469. package/app/s/section-catalog/index.html +23 -23
  470. package/app/s/section-chat.assistant/index.html +23 -23
  471. package/app/s/section-comments/index.html +23 -23
  472. package/app/s/section-fields.form-customization/index.html +23 -23
  473. package/app/s/section-ingestion/index.html +23 -23
  474. package/app/s/section-integrations/index.html +23 -23
  475. package/app/s/section-messages/index.html +23 -23
  476. package/app/s/section-more/index.html +23 -23
  477. package/app/s/section-operations/index.html +23 -23
  478. package/app/s/section-projects/index.html +23 -23
  479. package/app/s/section-purchasing/index.html +23 -23
  480. package/app/s/section-reports.materialized/index.html +23 -23
  481. package/app/s/section-reports.runtime/index.html +23 -23
  482. package/app/s/section-sales/index.html +23 -23
  483. package/app/s/section-taxonomy/index.html +23 -23
  484. package/app/s/section-team/index.html +23 -23
  485. package/app/s/section-work/index.html +23 -23
  486. package/dist/catalog/catalog.json +634 -39
  487. package/dist/components/HeaderIconLink.svelte +106 -2
  488. package/dist/components/HeaderIconLink.svelte.d.ts +4 -0
  489. package/dist/components/HeaderIconLink.svelte.d.ts.map +1 -1
  490. package/dist/components/SpecsPanel.svelte +54 -0
  491. package/dist/components/SpecsPanel.svelte.d.ts +4 -0
  492. package/dist/components/SpecsPanel.svelte.d.ts.map +1 -0
  493. package/dist/cookbook/assemble.d.ts +1 -0
  494. package/dist/cookbook/assemble.d.ts.map +1 -1
  495. package/dist/cookbook/assemble.js +2 -0
  496. package/dist/cookbook/parse.d.ts.map +1 -1
  497. package/dist/cookbook/parse.js +8 -0
  498. package/dist/cookbook/prompt.d.ts.map +1 -1
  499. package/dist/cookbook/prompt.js +6 -0
  500. package/dist/cookbook/store.svelte.d.ts +4 -1
  501. package/dist/cookbook/store.svelte.d.ts.map +1 -1
  502. package/dist/cookbook/store.svelte.js +10 -1
  503. package/dist/cookbook/types.d.ts +2 -0
  504. package/dist/cookbook/types.d.ts.map +1 -1
  505. package/dist/core/index.d.ts +1 -0
  506. package/dist/core/index.d.ts.map +1 -1
  507. package/dist/core/index.js +1 -0
  508. package/dist/index.d.ts +1 -0
  509. package/dist/index.d.ts.map +1 -1
  510. package/dist/index.js +1 -0
  511. package/dist/planner/Planner.svelte +87 -16
  512. package/dist/planner/Planner.svelte.d.ts.map +1 -1
  513. package/dist/planner/PlannerControls.svelte +35 -3
  514. package/dist/planner/PlannerControls.svelte.d.ts.map +1 -1
  515. package/dist/planner/PlannerLifecycle.svelte +10 -0
  516. package/dist/planner/PlannerLifecycle.svelte.d.ts +1 -1
  517. package/dist/planner/PlannerLifecycle.svelte.d.ts.map +1 -1
  518. package/dist/planner/bridge.d.ts +2 -0
  519. package/dist/planner/bridge.d.ts.map +1 -1
  520. package/dist/planner/bridge.js +17 -3
  521. package/dist/planner/commands/types.d.ts +1 -1
  522. package/dist/planner/commands/types.d.ts.map +1 -1
  523. package/dist/planner/commands/types.js +1 -0
  524. package/dist/planner/guide.d.ts +21 -1
  525. package/dist/planner/guide.d.ts.map +1 -1
  526. package/dist/planner/guide.js +21 -2
  527. package/dist/planner/header-icons.d.ts +6 -0
  528. package/dist/planner/header-icons.d.ts.map +1 -1
  529. package/dist/planner/header-icons.js +6 -0
  530. package/dist/planner/header-nav.d.ts +17 -0
  531. package/dist/planner/header-nav.d.ts.map +1 -0
  532. package/dist/planner/header-nav.js +41 -0
  533. package/dist/planner/instance.d.ts +1 -1
  534. package/dist/planner/tab.svelte.d.ts +2 -2
  535. package/dist/planner/tab.svelte.d.ts.map +1 -1
  536. package/dist/planner/tab.svelte.js +1 -0
  537. package/dist/planner/types.d.ts +21 -0
  538. package/dist/planner/types.d.ts.map +1 -1
  539. package/dist/smrt-version.d.ts +1 -1
  540. package/dist/smrt-version.js +1 -1
  541. package/package.json +56 -56
  542. package/app/_app/immutable/assets/0.BaRFeYGU.css +0 -1
  543. package/app/_app/immutable/chunks/By9nPosf.js +0 -1
  544. package/app/_app/immutable/chunks/CguB2Z-c.js +0 -1
  545. package/app/_app/immutable/chunks/DdwZKwdT.js +0 -1
  546. package/app/_app/immutable/chunks/Do3aLnHk.js +0 -1
  547. package/app/_app/immutable/entry/start.COZRMvoH.js +0 -1
  548. package/app/_app/immutable/nodes/0.CpAyxFG1.js +0 -7
  549. package/app/_app/immutable/nodes/2.BsxeuTRf.js +0 -22
@@ -1,22 +0,0 @@
1
- import{$ as e,A as t,B as n,C as r,Ct as i,Dt as a,E as o,Et as s,Ft as c,G as l,H as u,J as d,K as f,L as p,M as m,Mt as h,Ot as g,Pt as _,S as v,T as y,U as b,W as x,X as S,Y as C,Z as w,_ as T,a as E,b as D,bt as O,ct as k,d as A,dt as j,ft as M,gt as N,ht as P,it as F,lt as I,mt as L,nt as R,pt as z,r as B,st as V,tt as ee,ut as H,v as U,vt as W}from"../chunks/DG3qFFTE.js";import"../chunks/xihTtKlq.js";import{i as te,o as G}from"../chunks/Bv5jGtB8.js";import{a as K}from"../chunks/YUSKx8_q.js";import{At as ne,W as re,_t as ie,ct as ae,i as oe,jt as se,kt as ce,ot as le,p as q,st as ue,t as de}from"../chunks/BqoDi2ah.js";import{n as J}from"../chunks/DK8Blf1Y.js";import{E as fe,a as pe,g as me,m as he}from"../chunks/CRAFzMd4.js";import{b as ge,n as _e}from"../chunks/By9nPosf.js";import{t as ve}from"../chunks/CEnFvaV_.js";import{p as ye,u as be}from"../chunks/DIE02RSm.js";import{f as xe,g as Se,o as Ce,p as we}from"../chunks/D18ccNbM.js";import{r as Te}from"../chunks/CUyVrfsu.js";import{a as Ee,b as De,i as Y,n as Oe,p as ke,t as Ae,x as je,y as Me}from"../chunks/Bs5WxZDd.js";import{a as Ne,d as Pe,f as Fe,g as Ie,h as Le,i as X,m as Re,o as ze,p as Be,u as Ve,x as He,y as Ue}from"../chunks/DNKv-5Rn.js";import"../chunks/qBSxbVXE.js";import{_ as We,a as Ge,m as Ke,n as Z,s as qe}from"../chunks/CYV1bZYS.js";import{$ as Je,F as Ye,I as Xe,L as Ze,M as Qe,N as $e,R as et,a as tt,b as nt,i as rt,nt as it,t as Q,u as at,x as ot,z as st}from"../chunks/BkH1cevg.js";import{S as ct,g as lt,h as ut,m as dt,v as ft}from"../chunks/CguB2Z-c.js";import{n as pt,r as mt,t as ht}from"../chunks/3YcXW6yo.js";import{n as gt,r as _t,t as vt}from"../chunks/D_U_DYjx.js";import{_ as yt,c as $,d as bt,f as xt,g as St,h as Ct,i as wt,l as Tt,m as Et,n as Dt,o as Ot,p as kt,r as At,t as jt,u as Mt}from"../chunks/Cwt6a32V.js";import{r as Nt}from"../chunks/BMgzWMdF.js";import{t as Pt}from"../chunks/BMzaHFhM.js";import{n as Ft,s as It,t as Lt}from"../chunks/CR7v6iSc.js";import{t as Rt}from"../chunks/CckqctPA.js";var zt={bread:[`M7 3h10a4 4 0 0 1 2.4 7.2L20 19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2l.6-8.8A4 4 0 0 1 7 3z`,`M9 13l1 3`,`M14 13l1 3`],car:[`M5 17a2 2 0 1 0 4 0a2 2 0 1 0-4 0`,`M15 17a2 2 0 1 0 4 0a2 2 0 1 0-4 0`,`M5 17h-2v-6l2-5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0h-6m-6-6h15m-6 0v-5`],flame:[`M12 12c2-2.96 0-7-1-8 0 3.038-1.773 4.741-3 6-1.226 1.26-2 3.24-2 5a6 6 0 1 0 12 0c0-1.532-1.056-3.94-2-5-1.786 3-2.791 3-4 2z`],yoga:[`M11 4a1 1 0 1 0 2 0a1 1 0 1 0-2 0`,`M4 20h4l1.5-3`,`M17 20l-1-5h-5l1-7`,`M4 10l4-1l4-1l4 1.5l4 1.5`],leaf:[`M5 21c.5-4.5 2.5-8 7-10`,`M9 18c6.218 0 10.5-3.288 11-12v-2h-4.014c-9 0-11.986 4-12 9c0 1 0 3 2 5h3z`],scissors:[`M6 7m-3 0a3 3 0 1 0 6 0a3 3 0 1 0-6 0`,`M6 17m-3 0a3 3 0 1 0 6 0a3 3 0 1 0-6 0`,`M8.6 8.6l10.4 10.4`,`M8.6 15.4l10.4-10.4`],coffee:[`M3 14c.83.642 2.077 1.017 3.5 1c1.423.017 2.67-.358 3.5-1c.83-.642 2.077-1.017 3.5-1c1.423-.017 2.67.358 3.5 1`,`M8 3a2.4 2.4 0 0 0-1 2a2.4 2.4 0 0 0 1 2`,`M12 3a2.4 2.4 0 0 0-1 2a2.4 2.4 0 0 0 1 2`,`M3 10h14v5a6 6 0 0 1-6 6h-2a6 6 0 0 1-6-6v-5z`,`M16.746 16.726a3 3 0 1 0 .252-5.555`],forklift:[`M5 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0`,`M13 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0`,`M7 17h4`,`M3 17v-6h13v6`,`M5 11v-4h4`,`M9 11v-6h4l3 6`,`M22 15h-3v-10`,`M16 13h3`],heart:[`M19.5 12.572l-7.5 7.428l-7.5-7.428a5 5 0 1 1 7.5-6.566a5 5 0 1 1 7.5 6.572`],pencil:[`M4 20h4l10.5-10.5a2.828 2.828 0 1 0-4-4l-10.5 10.5v4`,`M13.5 6.5l4 4`],tool:[`M7 10h3v-3l-3.5-3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1-3 3l-6-6a6 6 0 0 1-8-8l3.5 3.5`],bolt:[`M13 3v7h6l-8 11v-7H5l8-11`],brush:[`M3 21v-4a4 4 0 1 1 4 4h-4`,`M21 3a16 16 0 0 0-12.8 10.2`,`M21 3a16 16 0 0 1-10.2 12.8`,`M10.6 9a9 9 0 0 1 4.4 4.4`],home:[`M5 12H3l9-9l9 9h-2`,`M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-7`,`M9 21v-6a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v6`],music:[`M3 17a3 3 0 1 0 6 0a3 3 0 0 0-6 0`,`M13 17a3 3 0 1 0 6 0a3 3 0 0 0-6 0`,`M9 17v-13h10v13`,`M9 8h10`],microphone:[`M15 12.9a5 5 0 1 0-3.902-3.9`,`M15 12.9l-3.902-3.899l-7.513 8.584a2 2 0 1 0 2.827 2.83l8.588-7.515z`]};K({"ui.audit.history":`Record history`,"ui.audit.list":`Audit trail`,"ui.audit.empty":`No audit entries.`,"ui.audit.loading":`Loading audit entries…`,"ui.audit.person":`Person ID`,"ui.audit.record":`Record ID`,"ui.audit.from":`From date`,"ui.audit.to":`To date`,"ui.audit.filter":`Apply filters`,"ui.audit.reason":`Reason: {reason}`,"ui.audit.behalf":`On behalf of {actor}`,"ui.audit.change":`{field}: {before} → {after}`}),K({"ui.notification_bell.label":`Notifications`,"ui.notification_bell.unread":`{count} unread`,"ui.notification_bell.mark_all":`Mark all read`,"ui.notification_bell.mark_one":`Mark read`,"ui.notification_bell.loading":`Loading notifications`,"ui.notification_bell.empty":`No notifications.`,"ui.notification_bell.unavailable":`Notifications are unavailable.`,"ui.notification_bell.mark_error":`Could not mark notifications read.`,"ui.notification_bell.live_error":`Live notifications are unavailable.`}),C([`keydown`]);var Bt=l(`<option>Per line</option> <option>Once per document</option>`,1),Vt=l(`<option></option>`),Ht=l(`<li class="svelte-1adyoey"><span class="name"> </span> <span class="rates svelte-1adyoey"> </span></li>`),Ut=l(`<div class="settings svelte-1adyoey"><div class="field svelte-1adyoey"><!> <!></div> <div class="percent svelte-1adyoey"><!> <span class="percent-sign svelte-1adyoey" aria-hidden="true">%</span></div> <div class="field svelte-1adyoey"><!> <!></div> <div class="field switch svelte-1adyoey"><!> <small class="svelte-1adyoey"> </small></div> <div class="field svelte-1adyoey"><!> <!> <datalist></datalist></div></div> <section class="tax-codes svelte-1adyoey"><h3 class="svelte-1adyoey">Tax codes</h3> <p class="meta svelte-1adyoey">New documents use <strong> </strong> </p> <ul class="svelte-1adyoey"></ul> <p class="meta svelte-1adyoey">The country codes are smrt’s examples; check they apply before using one.</p></section>`,1);function Wt(t,n){g(n,!0);let r=E(n,`idPrefix`,3,`app-settings`),o=[`Due on receipt`,`Net 15`,`Net 30`,`Net 60`,`50% deposit, balance on completion`],s=e=>n.onchange({...n.value,...e}),l=i(()=>ae(n.value.taxRate)),d=i(()=>[...ue,...le].filter(t=>t.id!==e(l).id)),f=e=>e.components.map(e=>e.name).join(` + `)||`No tax, reported as ${e.kind.replace(/-/g,` `)}`;var m=Ut(),h=z(m),v=M(h),y=M(v);je(y,{get for(){return`${r()??``}-currency`},label:`Currency`});var x=P(y,2);Me(x,{get id(){return`${r()??``}-currency`},get value(){return n.value.currency},onchange:e=>s({currency:e.currentTarget.value})}),c(v);var S=P(v,2),C=M(S);{let t=i(()=>Lt(n.value.taxRate));It(C,{get name(){return`${r()??``}-tax-rate`},label:`Default tax rate`,min:0,step:.01,get value(){return e(t)},onchange:e=>s({taxRate:Ft(e)??0})})}_(2),c(S);var w=P(S,2),T=M(w);je(T,{get for(){return`${r()??``}-rounding`},label:`Tax rounding`});var D=P(T,2);De(D,{get id(){return`${r()??``}-rounding`},get value(){return n.value.taxRounding},onchange:e=>s({taxRounding:e.currentTarget.value}),children:(e,t)=>{var n=Bt(),r=z(n);r.value=r.__value=`line`;var i=P(r,2);i.value=i.__value=`document`,b(e,n)},$$slots:{default:!0}}),c(w);var O=P(w,2),k=M(O);Y(k,{get checked(){return n.value.pricesIncludeTax},onchange:e=>s({pricesIncludeTax:e.currentTarget.checked}),label:`Prices include tax`});var A=P(k,2),j=L(A,!0);c(O);var N=P(O,2),F=M(N);je(F,{get for(){return`${r()??``}-terms`},label:`Default payment terms`});var I=P(F,2);_e(I,{get id(){return`${r()??``}-terms`},type:`text`,get list(){return`${r()??``}-terms-options`},autocomplete:`off`,placeholder:`Not set`,get value(){return n.value.paymentTerms},oninput:e=>s({paymentTerms:e.currentTarget.value})});var R=P(I,2);p(R,20,()=>o,e=>e,(e,t)=>{var n=Vt(),r={};V(()=>{r!==(r=t)&&(n.value=(n.__value=r)??``)}),b(e,n)}),c(R),c(N),c(h);var B=P(h,2),ee=M(B),H=P(ee,2),W=P(M(H)),te=L(W,!0),G=P(W);c(H);var K=P(H,2);p(K,21,()=>e(d),e=>e.id,(t,n)=>{var r=Ht(),i=M(r),a=L(i,!0),o=P(i,2),s=L(o,!0);c(r),V(t=>{U(r,`data-tax-code`,e(n).code),u(a,e(n).name),u(s,t)},[()=>f(e(n))]),b(t,r)}),c(K),_(2),c(B),V(t=>{u(j,n.value.pricesIncludeTax?`A line’s amount is what the customer pays; tax is part of it.`:`Tax is added on top of each line’s amount.`),U(R,`id`,`${r()??``}-terms-options`),U(B,`aria-labelledby`,`${r()??``}-tax-codes`),U(ee,`id`,`${r()??``}-tax-codes`),u(te,e(l).name),u(G,` (${t??``}),
2
- from the default tax rate. A line can choose another code; an exempt
3
- customer pays none.`)},[()=>f(e(l))]),b(t,m),a()}var Gt=f(`<path></path>`),Kt=l(`<span class="badge svelte-mzas8k">In use</span>`),qt=l(`<li><button type="button" class="card svelte-mzas8k"><span class="heading svelte-mzas8k"><svg class="icon svelte-mzas8k" viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg> <span class="name svelte-mzas8k"> </span></span> <span class="summary svelte-mzas8k"> </span> <!></button></li>`),Jt=l(`<ul class="grid svelte-mzas8k" aria-label="Cookbooks"></ul>`),Yt=l(`<span aria-hidden="true">←</span> Back to cookbooks`,1),Xt=l(`<li class="svelte-mzas8k"> </li>`),Zt=l(`<li> </li>`),Qt=l(`<div><h4 class="svelte-mzas8k"> </h4> <ul class="svelte-mzas8k"></ul></div>`),$t=l(`<section class="preview svelte-mzas8k" aria-labelledby="preview-heading"><div class="back svelte-mzas8k"><!></div> <h2 id="preview-heading" tabindex="-1" class="svelte-mzas8k"> </h2> <p class="summary svelte-mzas8k"> </p> <div class="block svelte-mzas8k"><h3 class="svelte-mzas8k">Recipes</h3> <ul class="chips svelte-mzas8k" aria-label="Recipes"></ul></div> <div class="block svelte-mzas8k"><h3 class="svelte-mzas8k">Menu</h3> <div class="menu svelte-mzas8k"></div></div> <div class="block svelte-mzas8k"><h3 class="svelte-mzas8k">Settings</h3> <!></div> <div class="actions svelte-mzas8k"><!> <span class="meta svelte-mzas8k">Replaces your current recipes, menu and sample records.</span></div></section>`),en=l(`<div class="cookbooks svelte-mzas8k"><!> <p class="meta svelte-mzas8k">A cookbook is a ready-made starting point: the recipes, menu and settings a
4
- kind of business usually needs. Pick one, look it over, then change
5
- anything in the other tabs.</p> <div class="swap svelte-mzas8k"><!></div> <!></div> <!>`,1);function tn(t,r){g(r,!0);let o=_t(),s=fe(),l=O(!1),f=O(``),m=O(``);B(()=>{ft.load()});let v=i(()=>pt.find(e=>e.id===Ot.open)),y=O(null),x=O(null),C;k(()=>{let t=e(v)?.id??null,n=C===void 0,r=C!==t;C=t,!n&&r&&ee().then(()=>{if(t){e(x)?.scrollIntoView({block:`nearest`}),e(x)?.focus({preventScroll:!0});return}let n=e(y)?.querySelector(`[data-cookbook="${Ot.returnTo??``}"]`);n?.scrollIntoView({block:`nearest`}),n?.focus({preventScroll:!0})})});function w(e){W(m,``),W(f,``),Ot.show(e.id)}function T(){Ot.back()}function E(t){t.key!==`Escape`||t.defaultPrevented||e(l)||(t.preventDefault(),T())}let D=O(N(at(void 0)));k(()=>{W(D,at(e(v)?.settings),!0)});let j=e=>ft.active===e.id&&St(e,{recipes:Q.ids,features:Q.features});function F(){e(v)&&(yt(Z)?W(l,!0):I())}function I(){if(W(l,!1),!e(v))return;let t=Ct(e(v),Z,h(e(D)));if(t.ok){o.reset?.(),W(f,``);let t=Et(e(v).document).length;W(m,`${e(v).name} added ${t} menu sections. Explore them in the left sidebar.`),s?.setPanelState(`left`,`expanded`)}else W(f,t.error,!0),W(m,``)}var R=en(),H=z(R),K=M(H),ne=t=>{G(t,{variant:`success`,title:`Cookbook applied`,children:(t,n)=>{_();var r=d();V(()=>u(r,e(m))),b(t,r)},$$slots:{default:!0}})};n(K,t=>{e(m)&&t(ne)});var re=P(K,4),ie=M(re),ae=t=>{var r=Jt();p(r,21,()=>pt,e=>e.id,(t,r)=>{let a=i(()=>j(e(r)));var o=qt(),s=M(o),l=M(s),d=M(l);p(d,20,()=>zt[e(r).icon]??[],e=>e,(e,t)=>{var n=Gt();V(()=>U(n,`d`,t)),b(e,n)}),c(d);var f=P(d,2),m=L(f,!0);c(l);var h=P(l,2),g=L(h,!0),_=P(h,2),v=e=>{var t=Kt();b(e,t)};n(_,t=>{e(a)&&t(v)}),c(s),c(o),V(()=>{U(s,`data-cookbook`,e(r).id),u(m,e(r).name),u(g,e(r).summary)}),S(`click`,s,()=>w(e(r))),b(t,o)}),c(r),A(r,e=>W(y,e),()=>e(y)),b(t,r)},oe=t=>{let n=i(()=>Et(e(v).document));var r=$t(),a=M(r),o=M(a);J(o,{variant:`ghost`,onclick:T,children:(e,t)=>{var n=Yt();_(),b(e,n)},$$slots:{default:!0}}),c(a);var s=P(a,2),l=L(s,!0);A(s,e=>W(x,e),()=>e(x));var f=P(s,2),m=L(f,!0),h=P(f,2),g=P(M(h),2);p(g,20,()=>mt(e(v)),e=>e,(e,t)=>{var n=Xt(),r=L(n,!0);V(()=>u(r,t)),b(e,n)}),c(g),c(h);var y=P(h,2),C=P(M(y),2);p(C,21,()=>e(n),e=>e.id,(t,n)=>{var r=Qt(),i=M(r),a=L(i,!0),o=P(i,2);p(o,21,()=>e(n).entries,e=>e.id,(t,n)=>{var r=Zt(),i=L(r,!0);V(()=>u(i,e(n).label)),b(t,r)}),c(o),c(r),V(()=>u(a,e(n).label)),b(t,r)}),c(C),c(y);var w=P(y,2);Wt(P(M(w),2),{get value(){return e(D)},onchange:e=>W(D,e,!0),idPrefix:`cookbook-settings`}),c(w);var O=P(w,2),k=M(O);J(k,{onclick:F,children:(e,t)=>{_();var n=d(`Use this cookbook`);b(e,n)},$$slots:{default:!0}}),_(2),c(O),c(r),V(()=>{U(r,`data-cookbook-detail`,e(v).id),u(l,e(v).name),u(m,e(v).summary)}),S(`keydown`,r,E),b(t,r)};n(ie,t=>{e(v)?t(oe,-1):t(ae)}),c(re);var se=P(re,2),ce=t=>{G(t,{variant:`error`,title:`Could not use this cookbook`,children:(t,n)=>{_();var r=d();V(()=>u(r,e(f))),b(t,r)},$$slots:{default:!0}})};n(se,t=>{e(f)&&t(ce)}),c(H);var le=P(H,2);{let t=i(()=>e(v)?`Use the ${e(v).name} cookbook?`:`Use this cookbook?`);te(le,{get open(){return e(l)},get title(){return e(t)},message:`Replaces your current recipes, menu and sample records.`,confirmLabel:`Replace`,destructive:!0,onconfirm:I,oncancel:()=>W(l,!1)})}b(t,R),a()}C([`click`,`keydown`]);var nn=(e,t,n=`${t}s`)=>`${e} ${e===1?t:n}`,rn=new Map(st(nt).map(e=>[e.id,e.label]));function an(e){return q(e.slice(e.lastIndexOf(`:`)+1))}function on(e){let t=new Map;for(let n of e){let e=an(n.objectRef),r=t.get(e)??[],i=q(n.fieldName).toLowerCase();r.includes(i)||r.push(i),t.set(e,r)}return[...t].map(([e,t])=>`${e}: ${t.join(`, `)}`)}function sn(e){let t=[];e.custom?t.push(`brand colour ${e.custom.primary}`):e.preset&&e.preset!==`glass`&&t.push(`${we(e.preset)?xe(e.preset):e.preset} preset`),e.colorScheme&&e.colorScheme!==`system`&&t.push(`${e.colorScheme} scheme`);let n=e.fontFamily??e.custom?.fontFamily;return n&&t.push(`${n} font`),e.borderRadius&&t.push(`${e.borderRadius} corners`),e.density===`touch`&&t.push(`touch density`),e.contrast&&e.contrast!==`auto`&&t.push(`${e.contrast} contrast`),e.customCss?.trim()&&t.push(`custom CSS`),t}function cn(e){let t=[],n=e.customSections??[];if(n.length){let e=n.map(e=>e.label).filter(Boolean);t.push(`${nn(n.length,`custom section`)}${e.length&&e.length<=4?` (${e.join(`, `)})`:``}`)}let r=e.hidden?.length??0;r&&t.push(`${r} hidden`);let i=Object.values(e.items??{}).filter(e=>e.label).length+Object.values(e.sections??{}).filter(e=>e.label||e.icon||e.showTitle===!1).length;i&&t.push(`${i} renamed or restyled`);let a=Object.keys(e.moved??{}).length;a&&t.push(`${a} moved`),(e.sectionOrder?.length||Object.keys(e.itemOrder??{}).length)&&t.push(`reordered`);let o=Object.keys(e.placements??{}).length;return o&&t.push(`${nn(o,`shell item`)} placed`),Object.keys(e.panels??{}).length&&t.push(`panel settings`),t}function ln(e,t){if(e===`section:${Qe.id}`)return Qe.label;if(e.startsWith(`section:`)){let n=e.slice(8);return t?.sections?.[e]?.label??rn.get(n)??q(n)}if(e.startsWith(`custom:`))return t?.customSections?.find(t=>t.id===e)?.label??q(e.slice(7));if(e.startsWith(`detail:`)){let t=e.slice(e.lastIndexOf(`.`)+1);return`${q(t)} record`}return q(e)}function un(e){let t=[];e.recipes.length&&t.push({id:`recipes`,label:nn(e.recipes.length,`recipe`),chips:e.recipes.map(e=>ot.get(e)?.label??e)}),e.features.length&&t.push({id:`features`,label:nn(e.features.length,`feature`),chips:e.features.map(an)}),e.policies.length&&t.push({id:`options`,label:nn(e.policies.length,`saved option`),chips:on(e.policies)});let n=Object.entries(e.exposure??{}).filter(([,e])=>e.length);n.length&&t.push({id:`exposure`,label:`Surfaces switched off`,chips:n.map(([e,t])=>`${an(e)}: ${t.join(`, `)}`)});let r=e.theme?sn(e.theme):[];r.length&&t.push({id:`theme`,label:`Theme`,text:r.join(`, `)});let i=e.layout?cn(e.layout):[];i.length&&t.push({id:`layout`,label:`Layout`,text:i.join(`, `)});let a=Object.keys(e.overviews??{});return a.length&&t.push({id:`pages`,label:nn(a.length,`customised page`),chips:a.map(t=>ln(t,e.layout))}),t}function dn(e){let t=un(e);if(!t.length)return`an empty cookbook`;let n=t.map(e=>e.id===`theme`?`a theme`:e.id===`layout`?`a layout`:e.id===`exposure`?`narrowed surfaces`:e.label);return n.length===1?n[0]:`${n.slice(0,-1).join(`, `)} and ${n.at(-1)}`}var fn=`0.57.18`,pn=`Node 26 or newer`,mn=`pnpm 11`,hn=`cookbook.json`,gn=`COOKBOOK_EOF`;function _n(e=fn){return`npx -y @happyvertical/smrt-cli@${e}`}function vn(e,t){return Le(e.name)||Le(t)||`my-app`}function yn(e,t,n=fn){return`${_n(n)} cookbook apply ${e} ${t}`}function bn(e,t=gn){let n=new Set(e.split(`
6
- `)),r=t;for(let e=1;n.has(r);e++)r=`${t}_${e}`;return r}function xn(e,t={}){let n=t.version??`0.57.18`,r=vn(e,t.fallbackName),i=JSON.stringify(e),a=bn(i),o=_n(n),s=[`Create a new s-m-r-t app from the cookbook below. Work in a new, empty directory outside any existing project, run the steps in order, and when you finish report what you ran and what happened, including anything that failed.`,``,`1. Prerequisites: ${pn} (\`node --version\`), git, and ${mn} or newer (\`npm install -g pnpm\` if missing).`,``,`2. Write the cookbook exactly as given, without reformatting or editing it:`,``,`cat > ${hn} <<'${a}'\n${i}\n${a}`,``,`3. Validate it, then create the app in ./${r}:`,``,`${o} cookbook validate ${hn}`,`${o} cookbook apply ${hn} ${r}`,``,`4. Set it up (in a subshell, so the commands below still run from this directory):`,``,`(cd ${r} && pnpm exec smrt app install)`,``,`If any step fails, run \`pnpm exec smrt app doctor\` inside ${r} and include its findings in your report. Do not hand-edit the app's smrt.cookbook.json: change ${hn} and run \`${o} cookbook apply ${hn} --into ${r}\` instead.`,``].join(`
7
- `);return{text:s,bytes:new TextEncoder().encode(s).length,appName:r,version:n,delimiter:a}}function Sn(e,t){if(t?.busy)throw Error(`Wait for the assistant to finish, or stop it, then try again.`);let n=e.run({name:`export_cookbook`,input:{}});if(!n.ok)throw Error(n.error.message);return structuredClone({export:n.data,revision:n.snapshot.revision,conversation:t?.conversation()??[]})}function Cn(t,n){g(n,!0);let r=E(n,`copiedLabel`,3,`Copied`),i=E(n,`variant`,3,`primary`),o=E(n,`confirmFor`,3,2e3),s=O(!1),c;async function l(){let e=typeof n.text==`function`?n.text():n.text,t=n.write??(typeof navigator<`u`&&navigator.clipboard?e=>navigator.clipboard.writeText(e):void 0);try{if(!t)throw Error(`no clipboard`);await t(e)}catch{W(s,!1),n.onfail?.();return}W(s,!0),n.oncopied?.(),clearTimeout(c),c=setTimeout(()=>W(s,!1),o())}J(t,{get variant(){return i()},onclick:l,"aria-live":`polite`,get"aria-describedby"(){return n[`aria-describedby`]},children:(t,i)=>{_();var a=d();V(()=>u(a,e(s)?r():n.label)),b(t,a)},$$slots:{default:!0}}),a()}var wn=l(`<!> <div class="actions svelte-1ij12un"><!> <!></div>`,1),Tn=l(`<h2 class="svelte-1ij12un">Project</h2> <p class="meta svelte-1ij12un">Your plan, sample records and settings stay in this browser session by default. Conversations and contact or request drafts stay in the current tab session.</p> <!> <p class="meta svelte-1ij12un">Remembering keeps your cookbook, sample records and settings on this device after the session ends. Conversations and contact or request drafts still stay in the current tab session. Turn it off to remove the remembered project copy.</p> <!>`,1),En=l(`<p class="meta svelte-1ij12un" role="status"> </p>`),Dn=l(`<p role="status" class="svelte-1ij12un"> </p>`),On=l(`<section class="project svelte-1ij12un" aria-label="Project"><!> <div class="actions svelte-1ij12un"><!></div> <!> <!> <!></section> <!> <!>`,1);function kn(t,r){g(r,!0);let o=E(r,`controller`,3,dt),s=E(r,`resetOnly`,3,!1),l=E(r,`projectPersistence`,3,At),f=_t(),p=O(!1),m=O(!1),h=O(``),v=O(``),y=i(()=>l()?.remembering??!1);function x(e){W(h,l()?.setRemember(e)?``:`Your storage preference could not be changed. Your existing plan is preserved.`,!0)}function S(){W(p,!1),!r.resetDisabledReason&&(W(h,``),Dt({controller:o(),dataSource:f,nativeAssistant:r.nativeAssistant,onreset:r.onreset})?W(v,`Project reset. Start a new plan whenever you are ready.`):W(h,`The project could not be fully reset. Please try again.`))}function C(){W(m,!1),!r.resetDisabledReason&&(l()?.recover()?location.reload():W(h,`The previous plan could not be recovered. Its saved copy is preserved.`))}function w(){W(h,l()?.discardRecovery()?``:`The previous saved copy could not be removed. Please try again.`,!0)}var T=On(),D=z(T),k=M(D),A=t=>{var a=Tn(),o=P(z(a),4);Y(o,{label:`Remember this plan`,onchange:async t=>{let n=t.currentTarget;x(n.checked),await ee(),W(y,l()?.remembering??!1),n.checked=e(y)},get checked(){return e(y)},set checked(e){W(y,e)}});var s=P(o,4),u=t=>{var n=wn(),a=z(n);G(a,{variant:`info`,title:`Previous saved plan available`,children:(e,t)=>{_();var n=d(`An earlier project has been kept as a recovery copy of its cookbook, sample records and settings. Recover it to replace this project, or discard the copy. Conversations are not remembered.`);b(e,n)},$$slots:{default:!0}});var o=P(a,2),s=M(o);{let t=i(()=>!!r.resetDisabledReason);J(s,{variant:`secondary`,onclick:()=>W(m,!0),get disabled(){return e(t)},children:(e,t)=>{_();var n=d(`Recover previous plan`);b(e,n)},$$slots:{default:!0}})}var l=P(s,2);J(l,{variant:`ghost`,onclick:w,children:(e,t)=>{_();var n=d(`Discard saved copy`);b(e,n)},$$slots:{default:!0}}),c(o),b(t,n)};n(s,e=>{l()?.recoveryAvailable&&e(u)}),b(t,a)};n(k,e=>{!s()&&l()&&e(A)});var j=P(k,2),N=M(j);{let t=i(()=>!!r.resetDisabledReason);J(N,{variant:`ghost`,get disabled(){return e(t)},onclick:()=>W(p,!0),children:(e,t)=>{_();var n=d(`Reset project`);b(e,n)},$$slots:{default:!0}})}c(j);var F=P(j,2),I=e=>{var t=En(),n=L(t,!0);V(()=>u(n,r.resetDisabledReason)),b(e,t)};n(F,e=>{r.resetDisabledReason&&e(I)});var R=P(F,2),B=t=>{G(t,{variant:`error`,title:`Project action could not finish`,children:(t,n)=>{_();var r=d();V(()=>u(r,e(h))),b(t,r)},$$slots:{default:!0}})};n(R,t=>{e(h)&&t(B)});var H=P(R,2),U=t=>{var n=Dn(),r=L(n,!0);V(()=>u(r,e(v))),b(t,n)};n(H,t=>{e(v)&&t(U)}),c(D);var K=P(D,2);te(K,{get open(){return e(m)},title:`Recover the previous plan?`,message:`Recovering replaces this project with its previous cookbook, sample records and settings. Current manual edits will be lost. It does not recover conversations or contact and request drafts.`,confirmLabel:`Recover plan`,destructive:!0,onconfirm:C,oncancel:()=>W(m,!1)});var ne=P(K,2);te(ne,{get open(){return e(p)},title:`Reset this project?`,message:`This clears your plan, conversation, sample records, manual edits and current Build it draft. Manual edits will be lost. Your theme preference and identity settings are kept. Download the cookbook first if you want a copy. A reset cannot unsend a request you already sent.`,confirmLabel:`Reset project`,destructive:!0,onconfirm:S,oncancel:()=>W(p,!1)}),b(t,T),a()}var An=l(`<div class="build-step svelte-17nkvtk"><h3 class="svelte-17nkvtk">Build your app</h3> <p class="meta svelte-17nkvtk">Continue with your current plan.</p> <div class="actions svelte-17nkvtk"><!></div></div>`),jn=l(`<p class="meta svelte-17nkvtk" role="status">Wait for the assistant to finish, or stop it, before continuing.</p>`),Mn=l(`<p class="meta svelte-17nkvtk" id="prompt-note">Paste it into Claude Code, Codex or another coding agent. The prompt
8
- carries the cookbook, creates the app <code class="svelte-17nkvtk"> </code> </p> <!>`,1),Nn=l(`<pre class="json svelte-17nkvtk"> </pre>`),Pn=l(`<p class="meta svelte-17nkvtk">Download writes <code class="svelte-17nkvtk"> </code> </p> <div class="command svelte-17nkvtk"><code data-export-command="" class="svelte-17nkvtk"> </code> <!></div> <!>`,1),Fn=l(`<li><!></li>`),In=l(`<ul class="chips svelte-17nkvtk"></ul>`),Ln=l(`<dt class="svelte-17nkvtk"> </dt> <dd class="svelte-17nkvtk"><!></dd>`,1),Rn=l(`<dl class="summary svelte-17nkvtk"></dl>`),zn=l(`<p class="quiet svelte-17nkvtk">Nothing customised yet. Add recipes or apply a cookbook first.</p>`),Bn=l(`The kitchen is running, but this page was opened without its one-time
9
- token. Open the address <code class="svelte-17nkvtk">smrt kitchen</code> printed (it ends in <code class="svelte-17nkvtk">#kitchen=…</code>), or download the cookbook and run <code class="svelte-17nkvtk">smrt cookbook apply</code> on the file.`,1),Vn=l(`This version of <code class="svelte-17nkvtk">smrt kitchen</code> puts its one-time token in a
10
- file other programs on this computer can read, so the planner does not
11
- use it. Update the <code class="svelte-17nkvtk">smrt</code> CLI, or download the cookbook and run <code class="svelte-17nkvtk">smrt cookbook apply</code> on the file.`,1),Hn=l(`<li><code class="svelte-17nkvtk"> </code></li>`),Un=l(`Next, in your terminal: <ul></ul>`,1),Wn=l(` <!>`,1),Gn=l(`<li> </li>`),Kn=l(`<ul></ul>`),qn=l(`<div class="kitchen" role="status" aria-live="polite"><!></div>`),Jn=l(`<p class="meta svelte-17nkvtk">Both replace everything listed above; download a copy first to keep it.</p> <div class="actions svelte-17nkvtk" data-export-actions="replace"><!></div> <p class="meta svelte-17nkvtk">Import swaps this cookbook for one from a file. Reset project also clears
12
- your conversation, sample records and current Build it draft.</p> <!> <input type="file" accept="application/json,.json" hidden="" aria-label="Cookbook file"/> <!> <p class="notice svelte-17nkvtk" role="status" aria-live="polite"> </p>`,1),Yn=l(`<div class="export svelte-17nkvtk"><section class="block svelte-17nkvtk" aria-labelledby="prompt-heading" data-export-section="prompt"><div class="export-intro svelte-17nkvtk"><p class="eyebrow svelte-17nkvtk">Your app plan</p> <h2 id="prompt-heading" class="svelte-17nkvtk">Ready for the next step?</h2> <p class="meta svelte-17nkvtk">Your recipes, theme, layout and customised pages travel together as a cookbook. Sample records stay in this preview.</p></div> <div class="next-steps svelte-17nkvtk" data-export-actions="primary"><!> <div class="copy-step svelte-17nkvtk"><h3 class="svelte-17nkvtk">Keep a copy</h3> <p class="meta svelte-17nkvtk">Download your cookbook or copy a prompt for your coding agent.</p> <div class="actions svelte-17nkvtk"><!> <!> <!></div></div></div> <!> <!> <p class="notice svelte-17nkvtk" role="status" aria-live="polite"> </p> <!></section> <section class="block svelte-17nkvtk" aria-label="Downloaded file instructions" data-export-section="file"><!></section> <section class="block svelte-17nkvtk" aria-label="Cookbook summary" data-export-section="summary"><!></section> <!> <!> <!> <section class="block replace svelte-17nkvtk" aria-label="Import or reset project" data-export-section="replace"><!></section></div> <!>`,1);function Xn(t,r){g(r,!0);let o=E(r,`controller`,3,dt),s=O(!1),l=O(!1),f=O(``);B(()=>r.nativeAssistant?.subscribeConversation(()=>{W(l,r.nativeAssistant?.busy??!1,!0)}));function m(){let e=o().run({name:`export_cookbook`,input:{}});e.ok?Ve(e.data):W(f,e.error.message,!0)}async function h(){if(r.exportAction&&!e(s)){W(f,``),W(s,!0);try{await r.exportAction.run(Sn(o(),r.nativeAssistant))}catch(e){W(f,e instanceof Error?e.message:`The export action could not finish. Try again.`,!0)}finally{W(s,!1)}}}let v=O(void 0),y=O(void 0),C=O(void 0),w=O(null),T=O(N([])),D=O(``),k=O(``),j=O(``),F=O(!1),I=i(()=>ht(ft.active??``)?.name),R=i(()=>Z.snapshot()),H=i(()=>un(e(R))),U=i(()=>Pe(e(R).name??e(I))),K=i(()=>Be(Fe(e(R)))),re=i(()=>vn(e(R),e(I))),ie=i(()=>xn(e(R),{fallbackName:e(I)})),ae=i(()=>yn(e(U),e(re))),oe=`Copying is not available here. The text is selected: press Ctrl+C (Cmd+C on a Mac) to copy it.`;async function se(){W(F,!0),await ee();let t=e(y)?.getElement();t?.focus(),t?.select(),W(j,oe)}function le(){if(e(C)){let t=window.getSelection();t?.removeAllRanges(),t?.selectAllChildren(e(C))}W(j,oe)}async function q(e){let t=e.currentTarget,n=t.files?.[0];if(W(D,``),W(k,``),n){try{let e=qe(await n.text());e.ok?(W(w,e.cookbook,!0),W(T,e.dropped??[],!0)):W(D,e.error,!0)}catch{W(D,`The file could not be read.`)}t.value=``}}function ue(){e(w)&&(Z.replace(e(w)),W(k,`Imported ${dn(e(w))}.${e(T).length?` Not imported: ${e(T).join(` `)}`:``}`)),W(w,null),W(T,[],!0)}var de=Yn(),fe=z(de),pe=M(fe),me=P(M(pe),2),he=M(me),ge=t=>{var n=An(),a=P(M(n),4),o=M(a);{let t=i(()=>e(s)||e(l));J(o,{get disabled(){return e(t)},onclick:h,children:(e,t)=>{_();var n=d();V(()=>u(n,r.exportAction.label)),b(e,n)},$$slots:{default:!0}})}c(a),c(n),b(t,n)};n(he,e=>{r.exportAction&&e(ge)});var _e=P(he,2),ve=P(M(_e),4),ye=M(ve);{let t=i(()=>r.exportAction?`secondary`:`primary`);Cn(ye,{text:()=>e(ie).text,label:`Copy prompt`,get variant(){return e(t)},get write(){return r.write},oncopied:()=>W(j,`Prompt copied.`),onfail:se})}var be=P(ye,2),xe=t=>{{let n=i(()=>$.status===`sending`);J(t,{variant:`secondary`,get disabled(){return e(n)},onclick:()=>$.send(Z.snapshot()),children:(e,t)=>{_();var n=d();V(()=>u(n,$.status===`sending`?`Sending to kitchen…`:`Send to kitchen`)),b(e,n)},$$slots:{default:!0}})}};n(be,e=>{$.config&&e(xe)});var Se=P(be,2);J(Se,{variant:`secondary`,onclick:m,children:(e,t)=>{_();var n=d(`Download cookbook`);b(e,n)},$$slots:{default:!0}}),c(ve),c(_e),c(me);var Ce=P(me,2),we=t=>{G(t,{variant:`error`,title:`Export action failed`,children:(t,n)=>{_();var r=d();V(()=>u(r,e(f))),b(t,r)},$$slots:{default:!0}})};n(Ce,t=>{e(f)&&t(we)});var Te=P(Ce,2),Ee=e=>{var t=jn();b(e,t)};n(Te,t=>{r.exportAction&&e(l)&&t(Ee)});var De=P(Te,2),Y=L(De,!0),ke=P(De,2);ce(ke,{title:`Preview coding-agent prompt`,get open(){return e(F)},set open(e){W(F,e,!0)},children:(t,n)=>{var r=Mn(),i=z(r),a=P(M(i)),o=L(a,!0),s=P(a);c(i);var l=P(i,2);A(Oe(l,{class:`prompt`,get value(){return e(ie).text},readonly:!0,rows:7,spellcheck:!1,wrap:`soft`,"aria-label":`Prompt for your coding agent`,"aria-describedby":`prompt-note`,interaction:!1}),e=>W(y,e,!0),()=>e(y)),V(t=>{u(o,e(re)),u(s,` with the smrt CLI ${e(ie).version??``} and
13
- starts it. About ${t??``}.`)},[()=>Be(e(ie).bytes)]),b(t,r)},$$slots:{default:!0}}),c(pe);var Ae=P(pe,2),je=M(Ae);ce(je,{title:`Use the downloaded file yourself`,children:(t,n)=>{var i=Pn(),a=z(i),o=P(M(a)),s=L(o,!0),l=P(o);c(a);var d=P(a,2),f=M(d),p=L(f,!0);A(f,e=>W(C,e),()=>e(C)),Cn(P(f,2),{text:()=>e(ae),label:`Copy command`,variant:`secondary`,get write(){return r.write},oncopied:()=>W(j,`Command copied.`),onfail:le}),c(d);var m=P(d,2);ce(m,{title:`Preview JSON`,children:(t,n)=>{var r=Nn(),i=L(r,!0);V(e=>u(i,e),[()=>Re(e(R))]),b(t,r)},$$slots:{default:!0}}),V(()=>{u(s,e(U)),u(l,` (${e(K)??``}). To make the app from
14
- it yourself, run this where the file is:`),u(p,e(ae))}),b(t,i)},$$slots:{default:!0}}),c(Ae);var Me=P(Ae,2),Ne=M(Me);ce(Ne,{title:`In this cookbook`,children:(t,r)=>{var i=x(),a=z(i),o=t=>{var r=Rn();p(r,21,()=>e(H),e=>e.id,(t,r)=>{var i=Ln(),a=z(i),o=L(a,!0),s=P(a,2),l=M(s),f=t=>{var n=In();p(n,23,()=>e(r).chips,(e,t)=>`${e}:${t}`,(t,n)=>{var r=Fn(),i=M(r);ne(i,{get label(){return e(n)},size:`sm`}),c(r),b(t,r)}),c(n),b(t,n)},m=t=>{var n=d();V(()=>u(n,e(r).text)),b(t,n)};n(l,t=>{e(r).chips?t(f):t(m,-1)}),c(s),V(()=>u(o,e(r).label)),b(t,i)}),c(r),b(t,r)},s=e=>{var t=zn();b(e,t)};n(a,t=>{e(H).length?t(o):t(s,-1)}),b(t,i)},$$slots:{default:!0}}),c(Me);var Ie=P(Me,2),Le=e=>{G(e,{variant:`info`,title:`Send to kitchen needs its link`,children:(e,t)=>{_();var n=Bn();_(6),b(e,n)},$$slots:{default:!0}})};n(Ie,e=>{$.needsLink&&e(Le)});var X=P(Ie,2),ze=e=>{G(e,{variant:`warning`,title:`Send to kitchen is off`,children:(e,t)=>{_();var n=Vn();_(6),b(e,n)},$$slots:{default:!0}})};n(X,e=>{$.tokenInConfig&&e(ze)});var He=P(X,2),Ue=e=>{var t=qn(),r=M(t),i=e=>{G(e,{variant:`success`,title:`Sent to the kitchen`,children:(e,t)=>{_();var r=Wn(),i=z(r),a=P(i),o=e=>{var t=Un(),n=P(z(t));p(n,20,()=>$.outcome.result.nextSteps,e=>e,(e,t)=>{var n=Hn(),r=M(n),i=L(r,!0);c(n),V(()=>u(i,t)),b(e,n)}),c(n),b(e,t)};n(a,e=>{$.outcome.result.nextSteps.length&&e(o)}),V(()=>u(i,`${$.outcome.result.mode===`update`?`Updated`:`Created`} the project${$.outcome.result.dir?` in ${$.outcome.result.dir}`:``}. `)),b(e,r)},$$slots:{default:!0}})},a=e=>{G(e,{variant:`error`,title:`The kitchen could not use this cookbook`,children:(e,t)=>{var n=Kn();p(n,20,()=>$.outcome.errors,e=>e,(e,t)=>{var n=Gn(),r=L(n,!0);V(()=>u(r,t)),b(e,n)}),c(n),b(e,n)},$$slots:{default:!0}})};n(r,e=>{$.outcome.ok?e(i):e(a,-1)}),c(t),b(e,t)};n(He,e=>{$.outcome&&e(Ue)});var We=P(He,2),Ge=M(We);ce(Ge,{title:`Import or reset project`,children:(t,i)=>{var a=Jn(),s=P(z(a),2),l=M(s);J(l,{variant:`secondary`,onclick:()=>e(v)?.click(),children:(e,t)=>{_();var n=d(`Import cookbook…`);b(e,n)},$$slots:{default:!0}}),c(s);var f=P(s,4);kn(f,{resetOnly:!0,get controller(){return o()},get nativeAssistant(){return r.nativeAssistant},get onreset(){return r.onreset},get resetDisabledReason(){return r.resetDisabledReason}});var p=P(f,2);A(p,e=>W(v,e),()=>e(v));var m=P(p,2),h=t=>{G(t,{variant:`error`,title:`Import failed`,children:(t,n)=>{_();var r=d();V(()=>u(r,e(D))),b(t,r)},$$slots:{default:!0}})};n(m,t=>{e(D)&&t(h)});var g=P(m,2),y=L(g,!0);V(()=>u(y,e(k))),S(`change`,p,q),b(t,a)},$$slots:{default:!0}}),c(We),c(fe);var Ke=P(fe,2);{let t=i(()=>e(w)!==null),n=i(()=>e(w)?`Importing replaces ${dn(e(R))} with ${dn(e(w))}.`:``);te(Ke,{get open(){return e(t)},title:`Replace the current cookbook?`,get message(){return e(n)},confirmLabel:`Replace`,destructive:!0,onconfirm:ue,oncancel:()=>W(w,null)})}V(()=>u(Y,e(j))),b(t,de),a()}C([`change`]);var Zn={"header.start":`header, left side`,"header.center":`header, middle`,"header.end":`header, right side`,"footer.start":`footer, left side`,"footer.center":`footer, middle`,"footer.end":`footer, right side`,"leftSidebar.header":`left sidebar, top`,"leftSidebar.footer":`left sidebar, bottom`,"rightSidebar.header":`right sidebar, top`,"rightSidebar.footer":`right sidebar, bottom`},Qn={llm:`Language model`,email:`Email`,oauth:`Sign-in (OAuth)`,storage:`File storage`,sms:`Text messages`,payments:`Payments`},$n={openai:`OpenAI`,anthropic:`Anthropic`,gemini:`Gemini`,webllm:`WebLLM`,bitgpu:`BitGPU`,smtp:`SMTP`,imap:`IMAP`,s3:`S3`,github:`GitHub`};function er(e){return $n[e]??q(e)}function tr(e,t=`or`){let n=e.map(er);return n.length<=1?n.join(``):n.length===2?`${n[0]} ${t} ${n[1]}`:`${n.slice(0,-1).join(`, `)} ${t} ${n[n.length-1]}`}function nr(e){switch(e.kind){case`shell-widget`:return{kind:e.kind,kindLabel:`Shell widget`,label:e.label,where:Zn[e.slot]??q(e.slot)};case`route`:return{kind:e.kind,kindLabel:`Page`,label:e.label,where:e.path};case`settings-panel`:return{kind:e.kind,kindLabel:`Settings panel`,label:e.label};case`playground`:return{kind:e.kind,kindLabel:`Playground`,label:e.label??`Try it`};case`widget`:return{kind:e.kind,kindLabel:`Overview widget`,label:e.label}}}function rr(e){return{id:e.id,kind:e.kind,kindLabel:Qn[e.kind]??q(e.kind),required:e.required,options:e.options,browserOptions:e.browserOptions??[],secrets:e.secrets??[]}}function ir(e){let t=e.nav.map(e=>({kind:`menu`,kindLabel:`List and form`,label:e.label})),n=(e.surfaces??[]).map(nr),r=[...t,...n];return r.length>0?r:[{kind:`data`,kindLabel:`Records only`,label:`${e.models.length} ${e.models.length===1?`model`:`models`}, no screens of their own`}]}function ar(e,t){return e.group?{id:`group:${e.group.id}`,label:e.group.label,...e.group.summary?{summary:e.group.summary}:{}}:{id:`package:${t}`,label:q(t)}}function or(e,t){let n=new Map;for(let e of t)for(let t of e.recipes??[])n.set(t.id,e);let r=e=>n.get(e.id)??t.find(t=>t.models.some(t=>t.id===e.models[0]));return e.map(e=>{let t=r(e),n=t?.id??e.id.split(`.`)[0],i=xt(e),a=bt(i);return{recipe:e,id:e.id,label:e.label,summary:e.summary,group:ar(e,n),packageId:n,demo:a,ownMode:e.demo&&i&&e.demo.mode!==i.mode?e.demo.mode:void 0,packageNote:Mt(t?.browser),providers:(e.providers??[]).map(rr),gets:ir(e),requires:e.requires,runtime:e.runtime}})}function sr(e){let t=new Map;for(let n of e){let e=t.get(n.group.id);e?!e.summary&&n.group.summary&&t.set(n.group.id,{...e,summary:n.group.summary}):t.set(n.group.id,n.group)}return[...t.values()].sort((e,t)=>e.label.localeCompare(t.label))}function cr(e,t,n){let r=t.toLowerCase().split(/\s+/).filter(Boolean);return e.filter(e=>{if(n&&e.group.id!==n)return!1;if(r.length===0)return!0;let t=[e.label,e.summary,e.id,e.group.label,e.packageId,...e.recipe.synonyms,...e.gets.flatMap(e=>[e.kindLabel,e.label,e.where??``]),...e.providers.flatMap(e=>[e.kindLabel,...e.options]),e.demo?.label??``].join(` `).toLowerCase();return r.every(e=>t.includes(e))})}function lr(e){return sr(e).map(t=>({group:t,cards:e.filter(e=>e.group.id===t.id)}))}function ur(e,t,n){let r=new Set(tt(t,n));return tt([...t,e],n).filter(t=>t!==e&&!r.has(t))}var dr=l(`<span class="meta where svelte-1tvhds4"> </span>`),fr=l(`<li><span class="kind svelte-1tvhds4"> </span> <!></li>`),pr=l(`<span class="meta svelte-1tvhds4"> </span>`),mr=l(`<code class="svelte-1tvhds4"> </code> `,1),hr=l(`<p class="meta svelte-1tvhds4">Secrets (names only): <!></p>`),gr=l(`<h4 class="svelte-1tvhds4">Needs</h4> <ul class="plain svelte-1tvhds4"></ul> <!>`,1),_r=l(`<p class="meta svelte-1tvhds4"> </p>`),vr=l(`<li> </li>`),yr=l(`<ul class="plain reasons svelte-1tvhds4"></ul>`),br=l(`<!> <!> <!>`,1),xr=l(`<li><div class="head svelte-1tvhds4"><h3 class="svelte-1tvhds4"> </h3> <!></div> <p class="summary svelte-1tvhds4"> </p> <p class="meta svelte-1tvhds4"><!></p> <h4 class="svelte-1tvhds4">You get</h4> <ul class="plain svelte-1tvhds4"></ul> <!> <!> <!> <div class="foot svelte-1tvhds4"><!> <!></div></li>`);function Sr(t,r){g(r,!0);let s=i(()=>r.card.demo),l=i(()=>(e(s)?.reasons.length??0)>0||r.card.ownMode!==void 0||r.card.packageNote!==void 0),f=i(()=>[...new Set(r.card.providers.flatMap(e=>e.secrets))]),m=i(()=>`feature-${r.card.id}`);var h=xr();let v;var y=M(h),x=M(y),S=L(x,!0),C=P(x,2),w=t=>{se(t,{get variant(){return e(s).variant},size:`sm`,get title(){return e(s).meaning},children:(t,n)=>{_();var r=d();V(()=>u(r,e(s).label)),b(t,r)},$$slots:{default:!0}})};n(C,t=>{e(s)&&t(w)}),c(y);var T=P(y,2),E=L(T,!0),D=P(T,2),O=M(D),k=t=>{var n=d();V(()=>u(n,e(s).meaning)),b(t,n)},A=e=>{var t=d(`Demo status not reported for this feature.`);b(e,t)};n(O,t=>{e(s)?t(k):t(A,-1)}),c(D);var j=P(D,4);p(j,21,()=>r.card.gets,e=>`${e.kind}:${e.label}`,(t,r)=>{var i=fr(),a=M(i),o=L(a,!0),s=P(a),l=P(s),d=t=>{var n=dr(),i=L(n);V(()=>u(i,`(${e(r).where??``})`)),b(t,n)};n(l,t=>{e(r).where&&t(d)}),c(i),V(()=>{u(o,e(r).kindLabel),u(s,` ${e(r).label??``}`)}),b(t,i)}),c(j);var N=P(j,2),F=t=>{var i=gr(),a=P(z(i),2);p(a,21,()=>r.card.providers,e=>e.id,(t,r)=>{var i=fr(),a=M(i),o=L(a,!0),s=P(a),l=P(s),d=t=>{var n=pr(),i=L(n);V(t=>u(i,`${t??``}
15
- ${e(r).browserOptions.length===1?`runs`:`run`} in the
16
- browser with no key.`),[()=>tr(e(r).browserOptions,`and`)]),b(t,n)};n(l,t=>{e(r).browserOptions.length&&t(d)}),c(i),V(t=>{u(o,e(r).kindLabel),u(s,` ${e(r).required?`Required`:`Optional`}: ${t??``}. `)},[()=>tr(e(r).options)]),b(t,i)}),c(a);var o=P(a,2),s=t=>{var n=hr(),r=P(M(n));p(r,18,()=>e(f),e=>e,(t,n,r)=>{var i=mr(),a=z(i),o=L(a,!0),s=P(a,1,!0);V(()=>{u(o,n),u(s,e(r)<e(f).length-1?`, `:``)}),b(t,i)}),c(n),b(t,n)};n(o,t=>{e(f).length&&t(s)}),V(()=>U(a,`aria-label`,`${r.card.label}: providers`)),b(t,i)};n(N,e=>{r.card.providers.length&&e(F)});var I=P(N,2),R=e=>{var t=_r(),n=L(t);V(e=>u(n,`Also adds ${e??``}.`),[()=>r.alsoAdds.join(`, `)]),b(e,t)};n(I,e=>{!r.on&&r.alsoAdds.length&&e(R)});var B=P(I,2),ee=t=>{{let a=i(()=>e(s)?`Why ${e(s).label}?`:`Details`);ce(t,{get title(){return e(a)},children:(t,i)=>{var a=br(),o=z(a),l=t=>{var n=yr();p(n,20,()=>e(s).reasons,e=>e,(e,t)=>{var n=vr(),r=L(n,!0);V(()=>u(r,t)),b(e,n)}),c(n),V(()=>U(n,`aria-label`,`${r.card.label}: reasons`)),b(t,n)};n(o,t=>{e(s)?.reasons.length&&t(l)});var d=P(o,2),f=t=>{var n=_r(),i=L(n);V(()=>u(i,`On its own it would be ${r.card.ownMode??``}; what it needs sets ${e(s).label??``}.`)),b(t,n)};n(d,t=>{r.card.ownMode&&e(s)&&t(f)});var m=P(d,2),h=e=>{var t=_r(),n=L(t,!0);V(()=>u(n,r.card.packageNote)),b(e,t)};n(m,e=>{r.card.packageNote&&e(h)}),b(t,a)},$$slots:{default:!0}})}};n(B,t=>{e(l)&&t(ee)});var H=P(B,2),W=M(H);{let t=i(()=>r.lockedBy.length>0),n=i(()=>`${e(m)}-summary${r.lockedBy.length?` ${e(m)}-locked`:``}`);Y(W,{get label(){return r.card.label},get checked(){return r.on},get disabled(){return e(t)},get"aria-describedby"(){return e(n)},onchange:e=>r.onchange(e.currentTarget.checked)})}var te=P(W,2),G=t=>{var n=_r(),i=L(n);V(t=>{U(n,`id`,`${e(m)}-locked`),u(i,`Stays on while ${t??``} needs it.`)},[()=>r.lockedBy.join(`, `)]),b(t,n)};n(te,e=>{r.lockedBy.length&&e(G)}),c(H),c(h),V(()=>{v=o(h,1,`card svelte-1tvhds4`,null,v,{selected:r.on}),u(S,r.card.label),U(T,`id`,`${e(m)}-summary`),u(E,r.card.summary),U(j,`aria-label`,`${r.card.label}: what you get`)}),b(t,h),a()}var Cr=l(`<div class="chips svelte-7kphei" role="group" aria-label="Filter by package"><!> <!></div>`),wr=l(`<span class="tag svelte-7kphei">plumbing</span>`),Tr=l(`<span class="includes svelte-7kphei"> </span>`),Er=l(`<li><span class="icon svelte-7kphei" aria-hidden="true"><!></span> <div class="text svelte-7kphei"><span class="name svelte-7kphei"><a class="svelte-7kphei"> </a> <!></span> <span class="meta svelte-7kphei"> </span> <!></div> <!></li>`),Dr=l(`<ul class="rows svelte-7kphei" aria-label="Features"></ul>`),Or=l(`<p class="empty svelte-7kphei"> </p>`),kr=l(`<div class="features svelte-7kphei"><p class="meta svelte-7kphei">Models no recipe covers. Add one to give it a list and a form of its own
17
- under More in the menu.</p> <!> <!> <div class="bar svelte-7kphei"><h2 class="count svelte-7kphei"> </h2> <!></div> <!> <p class="notice svelte-7kphei" role="status" aria-live="polite"> </p></div>`);function Ar(t,r){g(r,!0);let s=$e(ie,nt),l=O(``),f=O(null),h=O(!1),v=O(``),y=i(()=>et(s,e(h))),x=i(()=>Ye(Ze(e(y),e(l)))),S=i(()=>e(f)&&e(x).includes(e(f))?e(f):null),C=i(()=>Ze(e(y),e(l),e(S))),w=i(()=>e(h)?0:Ze(s,e(l),e(S)).length-e(C).length);function T(e,t){t?Q.addFeature(e.id):Q.removeFeature(e.id),W(v,t?`Added ${e.label} to the menu.`:`Removed ${e.label} from the menu.`,!0)}var E=kr(),D=P(M(E),2);Ee(D,{get value(){return e(l)},onsearch:e=>{W(l,e,!0)},label:`Search features`,placeholder:`Search models, packages and fields`,debounceMs:0});var k=P(D,2),A=t=>{var n=Cr(),r=M(n);{let t=i(()=>e(S)===null);Ae(r,{get pressed(){return e(t)},onclick:()=>W(f,null),children:(e,t)=>{_();var n=d(`All`);b(e,n)},$$slots:{default:!0}})}var a=P(r,2);p(a,16,()=>e(x),e=>e,(t,n)=>{{let r=i(()=>e(S)===n);Ae(t,{get pressed(){return e(r)},onclick:()=>W(f,e(S)===n?null:n,!0),children:(e,t)=>{_();var r=d();V(e=>u(r,e),[()=>q(n)]),b(e,r)},$$slots:{default:!0}})}}),c(n),b(t,n)};n(k,t=>{e(x).length>1&&t(A)});var j=P(k,2),N=M(j),F=L(N),I=P(N,2);Y(I,{get checked(){return e(h)},label:`Show all`,onchange:e=>{W(h,e.currentTarget.checked,!0)}}),c(j);var R=P(j,2),z=t=>{var r=Dr();p(r,29,()=>e(C),e=>e.id,(t,r)=>{let a=i(()=>Q.hasFeature(e(r).id));var s=Er();let l;var d=M(s),f=M(d);it(f,{path:`M12 3C7.58 3 4 4.79 4 7v10c0 2.21 3.59 4 8 4s8-1.79 8-4V7c0-2.21-3.58-4-8-4zm6 14c0 .5-2.13 2-6 2s-6-1.5-6-2v-2.23c1.61.78 3.72 1.23 6 1.23s4.39-.45 6-1.23V17zm0-4.55c-1.3.95-3.58 1.55-6 1.55s-4.7-.6-6-1.55V9.64c1.47.83 3.61 1.36 6 1.36s4.53-.53 6-1.36v2.81zM12 9C8.13 9 6 7.5 6 7s2.13-2 6-2 6 1.5 6 2-2.13 2-6 2z`,size:22}),c(d);var p=P(d,2),h=M(p),g=M(h),_=L(g,!0),v=P(g,2),y=e=>{var t=wr();b(e,t)};n(v,t=>{e(r).plumbing&&t(y)}),c(h);var x=P(h,2),S=L(x,!0),C=P(x,2),w=t=>{var n=Tr(),i=L(n);V(e=>u(i,`+ ${e??``}`),[()=>e(r).includes.join(`, `)]),b(t,n)};n(C,t=>{e(r).includes.length&&t(w)}),c(p);var E=P(p,2);{let t=i(()=>`${e(a)?`Remove`:`Add`} ${e(r).label} feature`);Y(E,{get checked(){return e(a)},get"aria-label"(){return e(t)},onchange:t=>T(e(r),t.currentTarget.checked)})}c(s),V((t,n)=>{l=o(s,1,`svelte-7kphei`,null,l,{selected:e(a)}),U(g,`href`,t),u(_,e(r).label),u(S,n)},[()=>de(`/packages/${e(r).packageId}/`),()=>Xe(e(r))]),m(s,()=>ye,()=>({duration:Rt(`medium2`,300)})),b(t,s)}),c(r),b(t,r)},B=t=>{var n=Or(),r=L(n);V(()=>u(r,`No features match "${e(l)??``}".`)),b(t,n)};n(R,t=>{e(C).length?t(z):t(B,-1)});var ee=P(R,2),H=L(ee,!0);c(E),V(()=>{u(F,`${e(C).length??``} ${e(C).length===1?`feature`:`features`}${e(w)?` (${e(w)} hidden)`:``}`),u(H,e(v))}),b(t,E),a()}var jr=l(`<div class="chips svelte-q9yl1j" role="group" aria-label="Browse by group"><!> <!></div>`),Mr=l(`<p class="meta svelte-q9yl1j"> </p>`),Nr=l(`<section class="svelte-q9yl1j"><h2 class="svelte-q9yl1j"> </h2> <!> <ul class="cards svelte-q9yl1j"></ul></section>`),Pr=l(`<div class="features svelte-q9yl1j"><p class="meta svelte-q9yl1j">Everything s-m-r-t can add to your app. Switch a feature on to add it, with
18
- what it needs, to your cookbook. Each label says how far it runs in this
19
- browser-only demo; menu entries appear in the sidebar, while widgets, pages
20
- and panels are listed for the real app and are not mounted here.</p> <!> <!> <p class="count svelte-q9yl1j" aria-live="polite"> </p> <!> <p class="notice meta svelte-q9yl1j" role="status" aria-live="polite"> </p> <!></div>`);function Fr(t,r){g(r,!0);let o=or(nt,ie.packages),s=sr(o),l=O(``),f=O(null),m=O(``),h=i(()=>cr(o,e(l),e(f))),v=i(()=>lr(e(h))),y=e=>ot.get(e)?.label??e;function x(e,t){let n=new Set(Q.ids);t?Q.add(e):Q.remove(e);let r=new Set(Q.ids),i=Q.ids.filter(e=>!n.has(e)),a=[...n].filter(e=>!r.has(e)),o=[];i.length&&o.push(`Added ${i.map(y).join(`, `)}.`),a.length&&o.push(`Removed ${a.map(y).join(`, `)}.`),W(m,o.join(` `),!0)}var S=Pr(),C=P(M(S),2);Ee(C,{get value(){return e(l)},onsearch:e=>{W(l,e,!0)},label:`Search features`,placeholder:`Search features`,debounceMs:0});var w=P(C,2),T=t=>{var n=jr(),r=M(n);{let t=i(()=>e(f)===null);Ae(r,{get pressed(){return e(t)},onclick:()=>W(f,null),children:(e,t)=>{_();var n=d(`All`);b(e,n)},$$slots:{default:!0}})}var a=P(r,2);p(a,17,()=>s,e=>e.id,(t,n)=>{{let r=i(()=>e(f)===e(n).id);Ae(t,{get pressed(){return e(r)},onclick:()=>W(f,e(f)===e(n).id?null:e(n).id,!0),children:(t,r)=>{_();var i=d();V(()=>u(i,e(n).label)),b(t,i)},$$slots:{default:!0}})}}),c(n),b(t,n)};n(w,e=>{s.length>1&&e(T)});var E=P(w,2),D=L(E),k=P(E,2);p(k,17,()=>e(v),e=>e.group.id,(t,r)=>{var a=Nr(),o=M(a),s=L(o,!0),l=P(o,2),d=t=>{var n=Mr(),i=L(n,!0);V(()=>u(i,e(r).group.summary)),b(t,n)};n(l,t=>{e(r).group.summary&&t(d)});var f=P(l,2);p(f,21,()=>e(r).cards,e=>e.id,(t,n)=>{{let r=i(()=>Q.has(e(n).id)),a=i(()=>rt([e(n).id],Q.ids,ot).map(y)),o=i(()=>ur(e(n).id,Q.ids,ot).map(y));Sr(t,{get card(){return e(n)},get on(){return e(r)},get lockedBy(){return e(a)},get alsoAdds(){return e(o)},onchange:t=>x(e(n).id,t)})}}),c(f),c(a),V(()=>{U(a,`aria-labelledby`,`group-${e(r).group.id}`),U(o,`id`,`group-${e(r).group.id}`),u(s,e(r).group.label),U(f,`aria-label`,`${e(r).group.label} features`)}),b(t,a)},t=>{var n=Mr(),r=L(n);V(()=>u(r,`No features match "${e(l)??``}".`)),b(t,n)});var A=P(k,2),j=L(A,!0),N=P(A,2);ce(N,{title:`Single records`,children:(e,t)=>{Ar(e,{})},$$slots:{default:!0}}),c(S),V(()=>{u(D,`${e(h).length??``} ${e(h).length===1?`feature`:`features`}`),u(j,e(m))}),b(t,S),a()}function Ir(e){let t=new Map;for(let n of e){let e=n.group?.id??n.id,r=t.get(e);r?(r.recipes.push(n),r.hasSubSwitches=!0):t.set(e,{id:e,label:n.group?.label??n.label,summary:n.group?.summary??n.summary,recipes:[n],hasSubSwitches:!1})}return[...t.values()].sort((e,t)=>e.label.localeCompare(t.label))}function Lr(e,t){return e.recipes.some(e=>t.includes(e.id))}function Rr(e,t,n){if(n){let n=e.recipes[0];return{add:n&&!Lr(e,t)?[n.id]:[],remove:[]}}return{add:[],remove:e.recipes.map(e=>e.id)}}function zr(e,t){return t?{add:[e],remove:[]}:{add:[],remove:[e]}}function Br(e,t,n){let r=e.recipes.filter(e=>t.includes(e.id)),i={};if(e.hasSubSwitches)for(let e of r){let r=rt([e.id],t,n);r.length&&(i[e.id]=r)}return{main:r.length?rt(e.recipes.map(e=>e.id),t,n):[],subs:i}}function Vr(e,t){let n=t.join(`, `);return e.hasSubSwitches?`${e.label} stays on while ${n} needs at least one ${e.label} recipe.`:`${e.label} stays on while ${n} needs it.`}function Hr(e,t,n){return`${t} is the last ${e.label} recipe on, and ${n.join(`, `)} needs one.`}var Ur=l(`<p class="meta svelte-1d5gge1"> </p>`),Wr=l(`<div class="sub svelte-1d5gge1"><!> <p class="meta svelte-1d5gge1"> </p> <!></div>`),Gr=l(`<li><h2 class="svelte-1d5gge1"> </h2> <p class="description svelte-1d5gge1"> </p> <!> <!> <!> <!></li>`),Kr=l(`<ul class="cards svelte-1d5gge1" aria-label="Recipes"></ul> <p class="notice svelte-1d5gge1" role="status" aria-live="polite"> </p>`,1);function qr(t,r){g(r,!0);let s=Ir(nt),l=O(``),d=e=>ot.get(e)?.label??e,f=e=>e.map(d).join(`, `);function m(e){let t=new Set(Q.ids);e.add.length&&Q.add(...e.add),e.remove.length&&Q.remove(...e.remove);let n=new Set(Q.ids),r=Q.ids.filter(e=>!t.has(e)),i=[...t].filter(e=>!n.has(e)),a=[];r.length&&a.push(`Added ${f(r)} to the menu.`),i.length&&a.push(`Removed ${f(i)} from the menu.`),W(l,a.join(` `),!0)}function h(e){let t=e.recipes[0];return!t||e.hasSubSwitches?``:[...t.requires.map(d),...(t.requiresAny??[]).map(e=>`one of ${f(e)}`)].join(`, `)}let _=e=>Lr(e,Q.ids);var v=Kr(),y=z(v);p(y,21,()=>s,e=>e.id,(t,r)=>{let a=i(()=>_(e(r))),s=i(()=>Br(e(r),Q.ids,ot)),l=i(()=>e(s).main);var f=Gr();let g;var v=M(f),y=L(v,!0),S=P(v,2),C=L(S,!0),w=P(S,2);{let t=i(()=>e(l).length>0),n=i(()=>`card-${e(r).id}-summary${e(l).length?` card-${e(r).id}-needed`:``}`);Y(w,{get label(){return e(r).label},get checked(){return e(a)},get disabled(){return e(t)},get"aria-describedby"(){return e(n)},onchange:t=>m(Rr(e(r),Q.ids,t.currentTarget.checked))})}var T=P(w,2),E=t=>{var n=Ur(),i=L(n,!0);V(t=>{U(n,`id`,`card-${e(r).id}-needed`),u(i,t)},[()=>Vr(e(r),e(l).map(d))]),b(t,n)};n(T,t=>{e(l).length&&t(E)});var D=P(T,2),O=t=>{{let a=i(()=>`${e(r).label} recipes`);ke(t,{get legend(){return e(a)},stack:!0,class:`subs`,children:(t,a)=>{var o=x(),l=z(o);p(l,17,()=>e(r).recipes,e=>e.id,(t,a)=>{let o=i(()=>Q.has(e(a).id)),l=i(()=>e(s).subs[e(a).id]??[]);var f=Wr(),p=M(f);{let t=i(()=>e(l).length>0),n=i(()=>`sub-${e(a).id}-summary${e(l).length?` sub-${e(a).id}-needed`:``}`);Y(p,{get label(){return e(a).label},size:`sm`,get checked(){return e(o)},get disabled(){return e(t)},get"aria-describedby"(){return e(n)},onchange:t=>m(zr(e(a).id,t.currentTarget.checked))})}var h=P(p,2),g=L(h,!0),_=P(h,2),v=t=>{var n=Ur(),i=L(n,!0);V(t=>{U(n,`id`,`sub-${e(a).id}-needed`),u(i,t)},[()=>Hr(e(r),e(a).label,e(l).map(d))]),b(t,n)};n(_,t=>{e(l).length&&t(v)}),c(f),V(()=>{U(h,`id`,`sub-${e(a).id}-summary`),u(g,e(a).summary)}),b(t,f)}),b(t,o)},$$slots:{default:!0}})}};n(D,t=>{e(r).hasSubSwitches&&t(O)});var k=P(D,2),A=t=>{var n=Ur(),i=L(n);V(e=>u(i,`Needs ${e??``}.`),[()=>h(e(r))]),b(t,n)},j=i(()=>!e(a)&&h(e(r)));n(k,t=>{e(j)&&t(A)}),c(f),V(()=>{g=o(f,1,`svelte-1d5gge1`,null,g,{selected:e(a)}),U(v,`id`,`card-${e(r).id}`),u(y,e(r).label),U(S,`id`,`card-${e(r).id}-summary`),u(C,e(r).summary)}),b(t,f)}),c(y);var S=P(y,2),C=L(S,!0);V(()=>u(C,e(l))),b(t,v),a()}var Jr=l(`<div class="pane svelte-d580bl"><!> <p class="meta svelte-d580bl">Defaults for this app. They apply to new records only; existing records
21
- keep their values.</p> <!></div>`);function Yr(t,n){g(n,!0);let r=E(n,`projectPersistence`,3,At),i=O(N(Z.settings())),o,s=Z.replacementGeneration;function l(e){W(i,e,!0),clearTimeout(o),o=setTimeout(u,300)}function u(){s===Z.replacementGeneration?o!==void 0&&(clearTimeout(o),o=void 0,Z.setSettings(e(i))):(clearTimeout(o),o=void 0,s=Z.replacementGeneration,W(i,Z.settings(),!0))}k(()=>{let e=Z.replacementGeneration,t=Z.settings();s===e?o===void 0&&W(i,t,!0):(clearTimeout(o),o=void 0,s=e,W(i,t,!0))});var d=Jr();w(`pagehide`,j,u);var f=M(d);kn(f,{get projectPersistence(){return r()},get controller(){return n.controller},get nativeAssistant(){return n.nativeAssistant},get onreset(){return n.onreset},get resetDisabledReason(){return n.resetDisabledReason}}),Wt(P(f,4),{get value(){return e(i)},onchange:l,idPrefix:`app-settings-tab`}),c(d),b(t,d),a()}var Xr=l(`<button type="button"><span class="choice-name svelte-18m8le4"><span class="choice-icon svelte-18m8le4" aria-hidden="true"> </span> </span> <span class="preview svelte-18m8le4" aria-hidden="true"><span class="preview-sidebar svelte-18m8le4"><span class="svelte-18m8le4"></span><span class="svelte-18m8le4"></span><span class="svelte-18m8le4"></span></span> <span class="preview-main svelte-18m8le4"><span class="preview-title svelte-18m8le4"></span><span class="preview-body svelte-18m8le4"><span class="svelte-18m8le4"></span><span class="svelte-18m8le4"></span></span></span></span></button>`),Zr=l(`<button type="button"><span class="choice-name svelte-18m8le4"><span class="choice-icon svelte-18m8le4" aria-hidden="true"> </span> </span> <span class="choice-hint svelte-18m8le4"> </span></button>`),Qr=l(`<div class="cards svelte-18m8le4" role="group" aria-label="Theme look"></div> <div class="cards schemes svelte-18m8le4" role="group" aria-label="Appearance"></div>`,1),$r=l(`<option> </option>`),ei=l(`<p class="error svelte-18m8le4" role="alert">Use a hex colour like #c2410c.</p>`),ti=l(`<section class="theme svelte-18m8le4" aria-label="Theme settings"><!> <div class="shape svelte-18m8le4" role="group" aria-label="Shape and contrast"><div class="field svelte-18m8le4"><!> <select id="theme-radius" class="svelte-18m8le4"></select></div> <div class="field svelte-18m8le4"><!> <select id="theme-density" class="svelte-18m8le4"></select></div> <div class="field svelte-18m8le4"><!> <select id="theme-contrast" class="svelte-18m8le4"></select></div></div> <div class="brand svelte-18m8le4"><div class="field svelte-18m8le4"><!> <div class="pick svelte-18m8le4"><span class="wheel svelte-18m8le4"><input id="theme-brand-colour" type="color" aria-label="Choose brand colour" class="svelte-18m8le4"/></span> <!></div></div> <div class="field font-field svelte-18m8le4"><!> <select id="theme-brand-font" class="svelte-18m8le4"><option>Theme default</option><!></select></div> <!></div> <!> <a class="advanced svelte-18m8le4"><span class="advanced-icon svelte-18m8le4" aria-hidden="true"></span> <span><strong class="svelte-18m8le4">Advanced Styles</strong><small class="svelte-18m8le4"> </small></span> <span class="arrow svelte-18m8le4" aria-hidden="true">→</span></a></section>`);function ni(t,s){g(s,!0);let l=E(s,`provider`,3,!0),f=E(s,`advancedStylesHref`,3,`#/advanced-styles/`),m=Se(),h=i(()=>Z.theme?.custom),x=O(``),C=O(!1);k(()=>{W(x,e(h)?.primary??``,!0),W(C,!1)});let w={material:`◆`,glass:`◇`,studio:`▣`,smrt:`✦`,happyvertical:`⬡`},A=[{id:`light`,label:`Light`,icon:`☀`,hint:`Bright all the time`},{id:`dark`,label:`Dark`,icon:`☾`,hint:`Dim all the time`},{id:`system`,label:`Auto`,icon:`◐`,hint:`Follow this device`}],j=[{id:`none`,label:`None`},{id:`sm`,label:`Small`},{id:`md`,label:`Medium`},{id:`lg`,label:`Large`},{id:`xl`,label:`Extra large`},{id:`full`,label:`Full`}],N=[{id:`comfortable`,label:`Comfortable`},{id:`touch`,label:`Touch`}],F=[{id:`auto`,label:`Auto`},{id:`standard`,label:`Standard`},{id:`more`,label:`More`}],I={borderRadius:`md`,density:`comfortable`,contrast:`auto`};function R(e,t){Z.setTheme({...Z.theme,[e]:t===I[e]?void 0:t})}function B(t){let n=We(t);W(C,!n),n&&Z.setTheme({...Z.theme,fontFamily:Z.theme?.fontFamily??e(h)?.fontFamily,custom:{primary:n}})}function ee(t){let n=e(h)?{primary:e(h).primary}:void 0;Z.setTheme({...Z.theme,fontFamily:t||void 0,custom:n})}function H(){Z.setTheme({...Z.theme,fontFamily:Z.theme?.fontFamily??e(h)?.fontFamily,custom:void 0})}let te=i(()=>{let e=Z.theme?.customCss;return!!e&&!Nt(e??``)});var G=ti(),K=M(G),ne=t=>{var n=Qr(),r=z(n);p(r,21,()=>Ce,e=>e.id,(t,n)=>{let r=i(()=>m.state.resolvedScheme===`dark`?e(n).dark:e(n).light);var a=Xr();let s,l;var d=M(a),f=M(d),p=L(f,!0),g=P(f,1,!0);c(d),_(2),c(a),V(()=>{s=o(a,1,`choice preset svelte-18m8le4`,null,s,{selected:!e(h)&&(Z.theme?.preset??`glass`)===e(n).id}),U(a,`aria-pressed`,!e(h)&&(Z.theme?.preset??`glass`)===e(n).id),l=y(a,``,l,{"--smrt-planner-preview-bg":e(r).background,"--smrt-planner-preview-surface":e(r).surface,"--smrt-planner-preview-primary":e(r).primary,"--smrt-planner-preview-ink":e(r).onSurface}),u(p,w[e(n).id]),u(g,e(n).label)}),S(`click`,a,()=>m?.setPreset(e(n).id)),b(t,a)}),c(r);var a=P(r,2);p(a,21,()=>A,e=>e.id,(t,n)=>{var r=Zr();let i;var a=M(r),s=M(a),l=L(s,!0),d=P(s,1,!0);c(a);var f=P(a,2),p=L(f,!0);c(r),V(()=>{i=o(r,1,`choice scheme svelte-18m8le4`,null,i,{selected:m.state.colorScheme===e(n).id}),U(r,`aria-pressed`,m.state.colorScheme===e(n).id),u(l,e(n).icon),u(d,e(n).label),u(p,e(n).hint)}),S(`click`,r,()=>m?.setColorScheme(e(n).id)),b(t,r)}),c(a),b(t,n)};n(K,e=>{l()&&m&&e(ne)});var re=P(K,2),ie=M(re),ae=M(ie);je(ae,{for:`theme-radius`,label:`Corner radius`});var oe=P(ae,2);p(oe,21,()=>j,e=>e.id,(t,n)=>{var r=$r(),i=L(r,!0),a={};V(()=>{u(i,e(n).label),a!==(a=e(n).id)&&(r.value=(r.__value=a)??``)}),b(t,r)}),c(oe);var se;v(oe),c(ie);var ce=P(ie,2),le=M(ce);je(le,{for:`theme-density`,label:`Density`});var q=P(le,2);p(q,21,()=>N,e=>e.id,(t,n)=>{var r=$r(),i=L(r,!0),a={};V(()=>{u(i,e(n).label),a!==(a=e(n).id)&&(r.value=(r.__value=a)??``)}),b(t,r)}),c(q);var ue;v(q),c(ce);var de=P(ce,2),fe=M(de);je(fe,{for:`theme-contrast`,label:`Contrast`});var pe=P(fe,2);p(pe,21,()=>F,e=>e.id,(t,n)=>{var r=$r(),i=L(r,!0),a={};V(()=>{u(i,e(n).label),a!==(a=e(n).id)&&(r.value=(r.__value=a)??``)}),b(t,r)}),c(pe);var me;v(pe),c(de),c(re);var he=P(re,2),ge=M(he),ve=M(ge);je(ve,{for:`theme-brand-colour`,label:`Brand colour`});var ye=P(ve,2),be=M(ye);let xe;var we=M(be);T(we),c(be);var Te=P(be,2);_e(Te,{type:`text`,"aria-label":`Brand colour hex`,placeholder:`#c2410c`,autocomplete:`off`,spellcheck:`false`,get value(){return e(x)},get"aria-invalid"(){return e(C)},oninput:t=>{W(x,t.currentTarget.value,!0),e(x).trim()&&B(e(x))}}),c(ye),c(ge);var Ee=P(ge,2),De=M(Ee);je(De,{for:`theme-brand-font`,label:`Font`});var Y=P(De,2),Oe=M(Y);Oe.value=Oe.__value=``;var ke=P(Oe);p(ke,16,()=>Object.keys(Ke),e=>e,(e,t)=>{var n=$r(),r=L(n,!0),i={};V(()=>{u(r,t),i!==(i=t)&&(n.value=(n.__value=i)??``)}),b(e,n)}),c(Y);var Ae;v(Y),c(Ee);var Me=P(Ee,2),Ne=e=>{J(e,{variant:`secondary`,onclick:H,children:(e,t)=>{_();var n=d(`Reset brand colour`);b(e,n)},$$slots:{default:!0}})};n(Me,t=>{e(h)&&t(Ne)}),c(he);var Pe=P(he,2),Fe=e=>{var t=ei();b(e,t)};n(Pe,t=>{e(C)&&t(Fe)});var Ie=P(Pe,2),Le=M(Ie);Le.textContent=`{}`;var X=P(Le,2),Re=P(M(X)),ze=L(Re,!0);c(X),_(2),c(Ie),c(G),V(()=>{se!==(se=Z.theme?.borderRadius??I.borderRadius)&&(oe.value=(oe.__value=se)??``,r(oe,se)),ue!==(ue=Z.theme?.density??I.density)&&(q.value=(q.__value=ue)??``,r(q,ue)),me!==(me=Z.theme?.contrast??I.contrast)&&(pe.value=(pe.__value=me)??``,r(pe,me)),xe=y(be,``,xe,{"--smrt-planner-picked-color":e(h)?.primary??`#e68a00`}),D(we,e(h)?.primary??`#e68a00`),Ae!==(Ae=Z.theme?.fontFamily??e(h)?.fontFamily??``)&&(Y.value=(Y.__value=Ae)??``,r(Y,Ae)),U(Ie,`href`,f()),u(ze,e(te)?`This cookbook has custom CSS waiting for your approval`:`Edit custom CSS for your app`)}),S(`change`,oe,e=>R(`borderRadius`,e.currentTarget.value)),S(`change`,q,e=>R(`density`,e.currentTarget.value)),S(`change`,pe,e=>R(`contrast`,e.currentTarget.value)),S(`input`,we,e=>B(e.currentTarget.value)),S(`change`,Y,e=>ee(e.currentTarget.value)),b(t,G),a()}C([`click`,`change`,`input`]);function ri(e){return{get ids(){return e.snapshot().recipes.map(e=>e.id)},add:(...t)=>void e.run({name:`add_recipes`,input:{ids:t}}),remove:(...t)=>void e.run({name:`remove_recipes`,input:{ids:t}})}}function ii(e){return{read:()=>{let{currency:t,taxRate:n,paymentTerms:r,pricesIncludeTax:i,taxRounding:a}=e.snapshot().settings;return{currency:t,taxRate:Number((n/100).toFixed(6)),paymentTerms:r,pricesIncludeTax:i,taxRounding:a}},write:t=>{e.run({name:`set_settings`,input:{currency:t.currency,taxRate:Number((t.taxRate*100).toFixed(4)),...t.paymentTerms?{paymentTerms:t.paymentTerms}:{},pricesIncludeTax:t.pricesIncludeTax,taxRounding:t.taxRounding}})}}}function ai(e){return{read:()=>{let t=e.snapshot().theme,{preset:n,primary:r,colorScheme:i}=t,a={};return n&&(a.preset=n),r&&(a.custom={primary:r}),i!==`system`&&(a.colorScheme=i),t.borderRadius&&(a.borderRadius=t.borderRadius),t.density&&(a.density=t.density),t.contrast&&(a.contrast=t.contrast),Object.keys(a).length?a:void 0},write:t=>{t?(e.run({name:`reset_theme`,input:{}}),e.run({name:`set_theme`,input:{...t.preset?{preset:t.preset}:{},...t.custom?{primary:t.custom.primary}:{},...t.colorScheme?{colorScheme:t.colorScheme}:{},...t.borderRadius?{borderRadius:t.borderRadius}:{},...t.density?{density:t.density}:{},...t.contrast?{contrast:t.contrast}:{}}})):e.run({name:`reset_theme`,input:{}})}}}function oi(e,t){let n=ai(e),r=`browser`,i,a=()=>null;if(`chat`in t){let e=t.chat;a=()=>typeof e==`function`?e():e}else{let n=ze(t);if(i=n.notice,r=n.config.mode,n.config.mode===`host`&&n.config.host){let t=Ne({endpoint:n.config.host.endpoint,snapshot:()=>e.snapshot()});a=()=>t}else if(n.config.mode===`byo`){let e=n.config.byo?.presets;a=()=>Ie(Ge(),e,void 0,n.config.credentialPersistence)}}let o=new He(n,e);return{transport:Ue({model:a,acceptCommands:r===`host`,unavailable:r===`byo`?`Connect your model on the AI page first, then I can help.`:`No model is connected yet, so I cannot help. The planner works without one.`,store:ri(e),recipes:nt,cookbooks:[],settings:ii(e),theme:n,themeUndos:o,controller:e,onReply:t.onReply,menu:()=>e===dt&&ut.openSection?e.snapshot().sections.filter(e=>!e.hidden).map(({id:e,label:t})=>({id:e,label:t})):[]}),themeUndos:o,mode:r,...i?{notice:i}:{}}}var si={build:{targetId:`item:planner-host-action`,label:`Build it`,description:`Build it prepares your current plan and conversation for the next build step.`},export:{targetId:`item:planner-export`,label:`Export`,description:`Export opens the cookbook download and prompt options for your current plan.`},chef:{targetId:`item:planner-customize`,label:`Plan the app`,description:`The chef hat opens Cookbooks, Recipes, Theme and Settings to plan your app.`},edit:{targetId:`item:layout-edit`,label:`Edit`,description:`Edit lets you rearrange the menu and page layout in the planner.`}};function ci(e,t){if(!t.ok||!t.receipt.changed||t.replayed)return;let n=new Set(e.sections.flatMap(e=>e.items.map(e=>e.id)));for(let e of t.snapshot.sections){if(e.hidden)continue;let t=e.items.find(e=>!e.hidden&&!n.has(e.id));if(t)return{section:e,item:t}}}function li(e){let t,n,r,i=0,a=!1,o=()=>{r&&clearTimeout(r),r=void 0,n?.(),n=void 0,t&&(delete t.dataset.smrtHighlighted,t.removeEventListener(`click`,s)),t=void 0,typeof document<`u`&&document.removeEventListener(`keydown`,c)},s=()=>{i++,o()},c=e=>{e.key===`Escape`&&s()};return{dismiss:s,async highlight(l){if(l.kind===`arrival`&&a)return{ok:!1,reason:`Arrival guidance was already shown.`};let u=++i,d=l.kind===`addition`?ci(l.before,l.result):void 0;if(l.kind===`addition`&&!d)return{ok:!1,reason:`No new visible menu item was added.`};if(d&&e.revealMenu?.(),await ee(),!e.isMounted()||u!==i)return{ok:!1,reason:`Guidance is no longer active.`};let f=si[l.kind===`control`?l.control:`edit`],p=d?.section.id??f.targetId,m=e.targets?.get(p)??(d?e.targets?.get(d.item.id):void 0);return m?(o(),t=m,n=ge(m,6e3,{presentation:`spotlight`,dismissLabel:`Dismiss guidance`,onDismiss:s}),u===i?(l.kind===`arrival`&&(a=!0),m.addEventListener(`click`,s,{once:!0}),document.addEventListener(`keydown`,c),r=setTimeout(o,6e3),{ok:!0,targetId:m.dataset.smrtTarget??p,label:d?.section.label??f.label,description:d?`Find ${d.item.label} under ${d.section.label} in the planner’s main menu.`:f.description}):{ok:!1,reason:`The actual guide target is not visible.`}):{ok:!1,reason:`The actual guide target is not available.`}}}}function ui(e,t){g(t,!0);let n=E(t,`controller`,3,dt),r=E(t,`persistence`,3,`self`),i=E(t,`cookbookOffers`,3,!0),o=E(t,`nativeAssistant`,3,!1),s=E(t,`links`,3,`path`),c=fe(),l=he(),u=gt()??vt(Tt());I(()=>{(t.basePath!==void 0||s()!==`path`)&&oe(t.basePath??``,s())}),B(()=>{let e=!0,a=o()?li({targets:l,isMounted:()=>e,revealMenu:()=>c?.expandPanel(`left`)}):void 0,s=ut.onReplaced;ut.onReplaced=()=>u.reset?.(),r()===`self`&&!Z.loaded&&(ft.load(),Z.hydrate(``,re()));let d=t.inference?oi(n(),t.inference):void 0;t.inference&&(`chat`in t.inference?X.useChat(t.inference.chat,`Host model`):X.configure(ze(t.inference)),X.hydrate(Q.ids.length>0||Q.features.length>0));let f=o()?X.session.transport:void 0,p=t.inference?f:void 0,m=f?.resetRevision,h=f?.subscribeConversation(()=>{f.resetRevision!==m&&(m=f.resetRevision,a?.dismiss())}),g=X.session.cookbookOffers,_=X.session.hostTurn;return p&&(X.session.cookbookOffers=i(),X.session.hostTurn=t.conversationalAction,t.initialConversation&&p.seed(t.initialConversation)),t.onready?.({controller:n(),...a?{guide:a}:{},workspaceStorage:re(),...d?{assistant:d}:{},...p?{nativeAssistant:p,openAssistant:async()=>(await ee(),e&&X.assistantReady&&(c?.openDockTool(`assistant`)??!1))}:{}}),()=>{e=!1,a?.dismiss(),h?.(),ut.onReplaced=s,p&&(X.session.cookbookOffers=g,X.session.hostTurn=_)}}),k(()=>{r()===`self`&&(JSON.stringify(Z.snapshot()),Z.scheduleSave())}),w(`pagehide`,j,()=>r()===`self`&&Z.flush()),a()}var di=l(`<div><!></div>`),fi=l(`<div class="pane svelte-zuxcuo"><p class="meta svelte-zuxcuo">Reorder, move or hide navigation entries and choose which panels show.
22
- The layout is saved with the cookbook.</p> <!></div>`),pi=l(`<!> <!> <!> <!> <!> <!> <!>`,1),mi=l(`<div class="planner svelte-zuxcuo"><!></div>`),hi=l(`<!> <!>`,1);function gi(t,r){g(r,!0);let o=t=>{var a=mi(),o=M(a);Je(o,{get tabs(){return e(C)},get active(){return e(w)},onchange:N,"aria-label":`Planner`,children:(t,a)=>{var o=pi(),s=z(o),l=t=>{var n=di();tn(M(n),{}),c(n),V(()=>U(n,`hidden`,e(w)!==`cookbooks`)),b(t,n)},d=i(()=>e(S).includes(`cookbooks`));n(s,t=>{e(d)&&t(l)});var f=P(s,2),m=t=>{var n=di();qr(M(n),{}),c(n),V(()=>U(n,`hidden`,e(w)!==`recipes`)),b(t,n)},h=i(()=>e(S).includes(`recipes`));n(f,t=>{e(h)&&t(m)});var g=P(f,2),v=t=>{var n=di();Fr(M(n),{}),c(n),V(()=>U(n,`hidden`,e(w)!==`features`)),b(t,n)},y=i(()=>e(S).includes(`features`));n(g,t=>{e(y)&&t(v)});var x=P(g,2),C=t=>{var n=fi(),r=P(M(n),2);{let t=i(()=>D??j??void 0);ve(r,{get controller(){return e(t)}})}c(n),V(()=>U(n,`hidden`,e(w)!==`layout`)),b(t,n)},T=i(()=>e(S).includes(`layout`));n(x,t=>{e(T)&&t(C)});var E=P(x,2),O=t=>{var n=di();ni(M(n),{get provider(){return p()},get advancedStylesHref(){return r.advancedStylesHref}}),c(n),V(()=>U(n,`hidden`,e(w)!==`theme`)),b(t,n)},k=i(()=>e(S).includes(`theme`));n(E,t=>{e(k)&&t(O)});var A=P(E,2),N=t=>{var n=di();Yr(M(n),{get projectPersistence(){return e(_)},get controller(){return u()},get nativeAssistant(){return r.nativeAssistant},get onreset(){return r.onreset},get resetDisabledReason(){return r.resetDisabledReason}}),c(n),V(()=>U(n,`hidden`,e(w)!==`settings`)),b(t,n)},F=i(()=>e(S).includes(`settings`));n(A,t=>{e(F)&&t(N)});var I=P(A,2),L=t=>{var n=di();Xn(M(n),{get exportAction(){return r.exportAction},get controller(){return u()},get nativeAssistant(){return r.nativeAssistant},get onreset(){return r.onreset},get resetDisabledReason(){return r.resetDisabledReason}}),c(n),V(()=>U(n,`hidden`,e(w)!==`export`)),b(t,n)},R=i(()=>e(S).includes(`export`));n(I,t=>{e(R)&&t(L)}),b(t,o)},$$slots:{default:!0}}),c(a),A(a,e=>W(F,e),()=>e(F)),b(t,a)},s=[`cookbooks`,`recipes`,`theme`,`settings`,`export`],l=[`features`,`layout`],u=E(r,`controller`,3,dt),d=E(r,`layout`,3,`own`),f=E(r,`persistence`,3,`self`),p=E(r,`themeControls`,3,!1),m=E(r,`tabs`,3,s),h=E(r,`managedByParent`,3,!1),_=i(()=>r.projectPersistence===void 0?f()===`self`?At:null:r.projectPersistence);gt()||vt(Tt());let v=Te()!==null,y={cookbooks:`Cookbooks`,recipes:`Recipes`,features:`Features`,layout:`Layout`,theme:`Theme`,settings:`Settings`,export:`Export`},x=i(()=>m().filter(e=>ct.includes(e))),S=i(()=>m()===s?[...e(x),...l]:e(x)),C=i(()=>e(x).map(e=>({id:e,label:y[e]}))),w=i(()=>e(S).includes(lt.active)?lt.active:e(x)[0]??`recipes`),T=R(()=>d()),D=T===`own`?new me({nav:()=>[],groups:()=>kt({recipes:Q.ids,features:Q.features}),panels:()=>void 0,layout:()=>Z.layout,editable:()=>!0,commit:e=>Z.setLayout(e)}):null,j=T===`shell`?be():null,N=e=>{let t=ct.find(t=>t===e);t&&(lt.active=t)};B(()=>u().subscribe(e=>{let t=e.focus.tab;t&&t!==lt.active&&(lt.active=t)}));let F=O(null),I;k(()=>{let t=e(w);I===void 0||I===t?I=t:(I=t,ee().then(()=>{e(F)?.querySelector(`[role="tablist"]`)?.scrollIntoView({block:`nearest`})}))}),k(()=>{let e=lt.active;R(()=>{u().snapshot().focus.tab!==e&&u().run({name:`focus`,input:{tab:e}})})});var L=hi(),H=z(L),te=e=>{ui(e,{get controller(){return u()},get basePath(){return r.basePath},get inference(){return r.inference},get persistence(){return f()},get onready(){return r.onready}})};n(H,e=>{h()||e(te)});var G=P(H,2),K=e=>{o(e)},ne=e=>{pe(e,{children:(e,t)=>{o(e)},$$slots:{default:!0}})};n(G,e=>{v?e(K):e(ne,-1)}),b(t,L),a()}var _i=l(`<section class="first-run svelte-1uha8ag" aria-labelledby="first-run-title"><h1 id="first-run-title" class="svelte-1uha8ag">Set up your assistant</h1> <p class="meta svelte-1uha8ag"> </p> <!> <div class="actions svelte-1uha8ag"><!> <!></div></section>`),vi=l(`<main class="svelte-1uha8ag"><!></main>`);function yi(r,o){g(o,!0);let l=s(jt),f=i(wt);var p=vi();t(`1uha8ag`,t=>{F(()=>{H.title=`${e(f)??``} · smrt planner`})});var m=M(p),h=e=>{var t=_i(),n=P(M(t),2),r=L(n,!0),i=P(n,2);Pt(i,{});var a=P(i,2),o=M(a);J(o,{onclick:()=>X.continueFirstRun(),children:(e,t)=>{_();var n=d(`Continue`);b(e,n)},$$slots:{default:!0}});var s=P(o,2);J(s,{variant:`secondary`,onclick:()=>X.dismissFirstRun(),children:(e,t)=>{_();var n=d(`I don't need AI, let's just build`);b(e,n)},$$slots:{default:!0}}),c(a),c(t),V(()=>u(r,X.privacyNote)),b(e,t)},v=t=>{{let n=i(()=>l?.current??null),r=i(()=>de(`/advanced-styles/`));gi(t,{get projectPersistence(){return e(n)},get nativeAssistant(){return X.session.transport},layout:`shell`,persistence:`host`,themeControls:!0,get advancedStylesHref(){return e(r)}})}};n(m,e=>{X.firstRun?e(h):e(v,-1)}),c(p),b(r,p),a()}export{yi as component};