@happyvertical/smrt-planner 0.0.2 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (752) hide show
  1. package/README.md +81 -8
  2. package/app/404.html +42 -49
  3. package/app/_app/immutable/assets/0.DUow1OzM.css +1 -0
  4. package/app/_app/immutable/assets/10.CdYxvH4G.css +1 -0
  5. package/app/_app/immutable/assets/11.nOT5Z4Fv.css +1 -0
  6. package/app/_app/immutable/assets/12.F7A7zP4J.css +1 -0
  7. package/app/_app/immutable/assets/13.JoySu8W5.css +1 -0
  8. package/app/_app/immutable/assets/14.nsp62-4b.css +1 -0
  9. package/app/_app/immutable/assets/2.CbPiqdz5.css +1 -0
  10. package/app/_app/immutable/assets/3.D518dbB5.css +1 -0
  11. package/app/_app/immutable/assets/4.B3vt1gMJ.css +1 -0
  12. package/app/_app/immutable/assets/AiSetup.4fXjMpTZ.css +1 -0
  13. package/app/_app/immutable/assets/AppShell.DOvXbUZo.css +1 -0
  14. package/app/_app/immutable/assets/ConnectTools.DTleL8YA.css +1 -0
  15. package/app/_app/immutable/assets/FieldMapForm.C8SZ3t4N.css +1 -0
  16. package/app/_app/immutable/assets/ModelPage.DbXvPbHE.css +1 -0
  17. package/app/_app/immutable/assets/SectionActions.BE1CPmxk.css +1 -0
  18. package/app/_app/immutable/assets/SectionIcons.BGFcFuOf.css +1 -0
  19. package/app/_app/immutable/assets/SegmentedControl.BkyuoCEJ.css +1 -0
  20. package/app/_app/immutable/assets/app.eM0k786r.css +1 -0
  21. package/app/_app/immutable/assets/currency-metadata.DDyu8_ub.css +1 -0
  22. package/app/_app/immutable/assets/data.bGq43K60.css +1 -0
  23. package/app/_app/immutable/assets/feedback.xBpOq9ef.css +1 -0
  24. package/app/_app/immutable/assets/forms.B3_bbIMe.css +1 -0
  25. package/app/_app/immutable/assets/labels.BiuUjqHs.css +1 -0
  26. package/app/_app/immutable/assets/percent.DbwvwMhf.css +1 -0
  27. package/app/_app/immutable/assets/state.CJipYvSU.css +1 -0
  28. package/app/_app/immutable/assets/webmcp-ui-context.BnR-DUfO.css +1 -0
  29. package/app/_app/immutable/assets/workspace.B5Xq-5pJ.css +1 -0
  30. package/app/_app/immutable/chunks/1ElZWh_R.js +10 -0
  31. package/app/_app/immutable/chunks/B-CpwO-j.js +1 -0
  32. package/app/_app/immutable/chunks/{BnRri03M.js → B7KB-rhH.js} +1 -1
  33. package/app/_app/immutable/chunks/BUhghcIm.js +1 -0
  34. package/app/_app/immutable/chunks/BV3NwM01.js +1 -0
  35. package/app/_app/immutable/chunks/BZVZZ6VY.js +1 -0
  36. package/app/_app/immutable/chunks/Ba1g71Sq.js +1 -0
  37. package/app/_app/immutable/chunks/BeJD7_hy.js +1 -0
  38. package/app/_app/immutable/chunks/BiO_bqNH.js +2 -0
  39. package/app/_app/immutable/chunks/{DkR8_Ws6.js → BqBuCJB_.js} +2 -2
  40. package/app/_app/immutable/chunks/BsJoBmTA.js +1 -0
  41. package/app/_app/immutable/chunks/Bxbz6_Mb.js +1 -0
  42. package/app/_app/immutable/chunks/Bz5uCkjV.js +2 -0
  43. package/app/_app/immutable/chunks/BzMfoxBk.js +1 -0
  44. package/app/_app/immutable/chunks/CF6zSg_o.js +2 -0
  45. package/app/_app/immutable/chunks/CFL0B6dk.js +1 -0
  46. package/app/_app/immutable/chunks/CRu55ZTy.js +4 -0
  47. package/app/_app/immutable/chunks/{CyUMm_Wp.js → Cv2EcCr0.js} +1 -1
  48. package/app/_app/immutable/chunks/D-3Ri0zJ.js +1 -0
  49. package/app/_app/immutable/chunks/{BWPhGFHl.js → D0FW0z6R.js} +1 -1
  50. package/app/_app/immutable/chunks/D7d5GssF.js +1 -0
  51. package/app/_app/immutable/chunks/DCsSRJsN.js +1 -0
  52. package/app/_app/immutable/chunks/DGqV6_5v.js +1 -0
  53. package/app/_app/immutable/chunks/DNSRTkf6.js +11 -0
  54. package/app/_app/immutable/chunks/DQNX_XPY.js +1 -0
  55. package/app/_app/immutable/chunks/DSyIMN4M.js +1 -0
  56. package/app/_app/immutable/chunks/DUTtmM1Y.js +1 -0
  57. package/app/_app/immutable/chunks/DYuawOB3.js +980 -0
  58. package/app/_app/immutable/chunks/DfCLzLZc.js +1 -0
  59. package/app/_app/immutable/chunks/Dh5fne6n.js +1 -0
  60. package/app/_app/immutable/chunks/LruoUXGC.js +1 -0
  61. package/app/_app/immutable/chunks/ZLqixH7j.js +9 -0
  62. package/app/_app/immutable/chunks/_pYwB_Eb.js +4 -0
  63. package/app/_app/immutable/chunks/aoU3lIZI.js +1 -0
  64. package/app/_app/immutable/chunks/c57ZlocB.js +24 -0
  65. package/app/_app/immutable/chunks/h8ppmjOm.js +1 -0
  66. package/app/_app/immutable/chunks/jhcy_jeO.js +1 -0
  67. package/app/_app/immutable/chunks/vNEnXNLV.js +3 -0
  68. package/app/_app/immutable/chunks/vwntRvfV.js +1 -0
  69. package/app/_app/immutable/entry/app.D5LoTsNA.js +2 -0
  70. package/app/_app/immutable/entry/start.Sb_s0NGC.js +1 -0
  71. package/app/_app/immutable/nodes/0.Cuo9-RQc.js +9 -0
  72. package/app/_app/immutable/nodes/1.BW8Ar5T3.js +1 -0
  73. package/app/_app/immutable/nodes/10.CpLYjN7r.js +3 -0
  74. package/app/_app/immutable/nodes/11.BMPKD4M3.js +1 -0
  75. package/app/_app/immutable/nodes/12.WYpy0AHE.js +4 -0
  76. package/app/_app/immutable/nodes/13.BYo05X9B.js +1 -0
  77. package/app/_app/immutable/nodes/14.DN0MT3KB.js +1 -0
  78. package/app/_app/immutable/nodes/2.DM6k_pqu.js +24 -0
  79. package/app/_app/immutable/nodes/3.YgEwJ-vF.js +1 -0
  80. package/app/_app/immutable/nodes/4.A3Y6Lax0.js +1 -0
  81. package/app/_app/immutable/nodes/5.D9Vd85hG.js +1 -0
  82. package/app/_app/immutable/nodes/6.C5c56bSW.js +1 -0
  83. package/app/_app/immutable/nodes/7.CDBMbYlD.js +1 -0
  84. package/app/_app/immutable/nodes/8.8olDkDou.js +1 -0
  85. package/app/_app/immutable/nodes/9.CWgx__8Z.js +1 -0
  86. package/app/_app/version.json +1 -1
  87. package/app/advanced-styles/index.html +84 -0
  88. package/app/ai/index.html +60 -52
  89. package/app/blueprint/index.html +46 -53
  90. package/app/cookbook/index.html +46 -53
  91. package/app/index.html +92 -64
  92. package/app/m/ads/AdDeliveryTier/index.html +52 -59
  93. package/app/m/ads/AdEvent/index.html +52 -59
  94. package/app/m/ads/AdFormat/index.html +52 -59
  95. package/app/m/ads/AdGroup/index.html +52 -59
  96. package/app/m/ads/AdVariation/index.html +52 -59
  97. package/app/m/analytics/AnalyticsDataStream/index.html +52 -59
  98. package/app/m/analytics/AnalyticsEvent/index.html +52 -59
  99. package/app/m/analytics/AnalyticsProperty/index.html +52 -59
  100. package/app/m/analytics/AnalyticsReport/index.html +52 -59
  101. package/app/m/approvals/ApprovalEvent/index.html +52 -59
  102. package/app/m/approvals/ApprovalPolicy/index.html +52 -59
  103. package/app/m/approvals/ApprovalRequest/index.html +52 -59
  104. package/app/m/assets/Asset/attachments/index.html +91 -0
  105. package/app/m/assets/Asset/index.html +52 -59
  106. package/app/m/assets/AssetAssociation/index.html +53 -60
  107. package/app/m/assets/AssetMetafield/index.html +52 -59
  108. package/app/m/assets/AssetStatus/index.html +52 -59
  109. package/app/m/assets/AssetType/index.html +52 -59
  110. package/app/m/assets/Folder/index.html +52 -59
  111. package/app/m/chat/AgentSession/index.html +52 -59
  112. package/app/m/chat/ChatMessage/index.html +53 -60
  113. package/app/m/chat/ChatParticipant/index.html +53 -60
  114. package/app/m/chat/ChatReaction/index.html +52 -59
  115. package/app/m/chat/ChatRoom/index.html +52 -59
  116. package/app/m/chat/ChatThread/index.html +53 -60
  117. package/app/m/chat/VoiceGatewayTurn/index.html +52 -59
  118. package/app/m/chat/VoiceSession/index.html +52 -59
  119. package/app/m/commerce/Agreement/index.html +52 -59
  120. package/app/m/commerce/Cart/index.html +52 -59
  121. package/app/m/commerce/Contract/index.html +52 -59
  122. package/app/m/commerce/ContractLineItem/index.html +53 -60
  123. package/app/m/commerce/Customer/index.html +52 -59
  124. package/app/m/commerce/DocumentTax/index.html +89 -0
  125. package/app/m/commerce/Estimate/index.html +52 -59
  126. package/app/m/commerce/Fulfillment/index.html +52 -59
  127. package/app/m/commerce/FulfillmentLineItem/index.html +53 -60
  128. package/app/m/commerce/Invoice/index.html +52 -59
  129. package/app/m/commerce/InvoiceLineItem/index.html +53 -60
  130. package/app/m/commerce/Lease/index.html +52 -59
  131. package/app/m/commerce/LicenseSale/index.html +52 -59
  132. package/app/m/commerce/Order/index.html +52 -59
  133. package/app/m/commerce/Payment/index.html +52 -59
  134. package/app/m/commerce/PaymentAllocation/index.html +53 -60
  135. package/app/m/commerce/PaymentInstrument/index.html +52 -59
  136. package/app/m/commerce/PaymentIntent/index.html +52 -59
  137. package/app/m/commerce/Payout/index.html +52 -59
  138. package/app/m/commerce/ProductionOrder/index.html +52 -59
  139. package/app/m/commerce/PurchaseContract/index.html +89 -0
  140. package/app/m/commerce/PurchaseOrder/index.html +52 -59
  141. package/app/m/commerce/SalesContract/index.html +89 -0
  142. package/app/m/commerce/SupplierQuote/index.html +89 -0
  143. package/app/m/commerce/TaxCode/index.html +89 -0
  144. package/app/m/commerce/TaxComponent/index.html +89 -0
  145. package/app/m/commerce/TaxSettings/index.html +89 -0
  146. package/app/m/commerce/TaxSummaryReport/index.html +89 -0
  147. package/app/m/commerce/Vendor/index.html +52 -59
  148. package/app/m/commerce/WholesaleOrder/index.html +52 -59
  149. package/app/m/content/Content/index.html +52 -59
  150. package/app/m/content/ContentContribution/index.html +52 -59
  151. package/app/m/content/ContentContributionAttachment/index.html +52 -59
  152. package/app/m/content/ContentContributionRevision/index.html +52 -59
  153. package/app/m/content/ContentContributionType/index.html +52 -59
  154. package/app/m/content/ContentContributor/index.html +52 -59
  155. package/app/m/content/ContentCorrection/index.html +52 -59
  156. package/app/m/content/ContentFeedSource/index.html +52 -59
  157. package/app/m/content/ContentGovernanceAssignment/index.html +52 -59
  158. package/app/m/content/ContentGovernancePolicy/index.html +52 -59
  159. package/app/m/content/ContentGovernanceProfile/index.html +52 -59
  160. package/app/m/content/ContentReference/index.html +52 -59
  161. package/app/m/content/ContentReview/index.html +52 -59
  162. package/app/m/content/ContentVersion/index.html +52 -59
  163. package/app/m/events/Event/index.html +52 -59
  164. package/app/m/events/EventParticipant/index.html +53 -60
  165. package/app/m/events/EventSeries/index.html +52 -59
  166. package/app/m/events/EventType/index.html +52 -59
  167. package/app/m/expenses/Expense/index.html +89 -0
  168. package/app/m/facts/Fact/index.html +52 -59
  169. package/app/m/facts/FactContent/index.html +52 -59
  170. package/app/m/facts/FactEvidence/index.html +52 -59
  171. package/app/m/facts/FactSource/index.html +52 -59
  172. package/app/m/facts/FactSubject/index.html +52 -59
  173. package/app/m/facts/FactTag/index.html +52 -59
  174. package/app/m/fields/FieldPolicy/index.html +52 -59
  175. package/app/m/fields/FieldPolicySuggestion/index.html +52 -59
  176. package/app/m/fields/FieldUsageCounter/index.html +52 -59
  177. package/app/m/images/Image/index.html +52 -59
  178. package/app/m/inventory/InventoryLocation/index.html +52 -59
  179. package/app/m/inventory/StockLevel/index.html +52 -59
  180. package/app/m/inventory/StockMovement/index.html +52 -59
  181. package/app/m/ledgers/Account/index.html +52 -59
  182. package/app/m/ledgers/Journal/index.html +52 -59
  183. package/app/m/ledgers/JournalEntry/index.html +53 -60
  184. package/app/m/manufacturing/Assembly/index.html +52 -59
  185. package/app/m/manufacturing/BillOfMaterials/index.html +52 -59
  186. package/app/m/manufacturing/BomLine/index.html +52 -59
  187. package/app/m/manufacturing/Operation/index.html +52 -59
  188. package/app/m/manufacturing/ProductionRun/index.html +52 -59
  189. package/app/m/manufacturing/ProductionRunCompletion/index.html +52 -59
  190. package/app/m/manufacturing/RoutingStep/index.html +52 -59
  191. package/app/m/marketing/Campaign/index.html +52 -59
  192. package/app/m/marketing/CampaignChannel/index.html +52 -59
  193. package/app/m/marketing/CampaignMetricSnapshot/index.html +52 -59
  194. package/app/m/messages/Account/index.html +52 -59
  195. package/app/m/messages/Attachment/index.html +52 -59
  196. package/app/m/messages/Blacklist/index.html +52 -59
  197. package/app/m/messages/Email/failed-sends/index.html +54 -59
  198. package/app/m/messages/Email/index.html +52 -59
  199. package/app/m/messages/Email/mailbox/index.html +54 -59
  200. package/app/m/messages/EmailAccount/index.html +52 -59
  201. package/app/m/messages/EmailAttachment/index.html +89 -0
  202. package/app/m/messages/EmailFolder/index.html +52 -59
  203. package/app/m/messages/Message/index.html +52 -59
  204. package/app/m/messages/MessagingEndpoint/index.html +52 -59
  205. package/app/m/messages/PersonaMessageRoute/index.html +52 -59
  206. package/app/m/messages/SlackAccount/index.html +52 -59
  207. package/app/m/messages/SlackMessage/index.html +52 -59
  208. package/app/m/messages/TelegramAccount/index.html +52 -59
  209. package/app/m/messages/Tweet/index.html +52 -59
  210. package/app/m/messages/TwitterAccount/index.html +52 -59
  211. package/app/m/messages/Whitelist/index.html +52 -59
  212. package/app/m/messages/ZulipAccount/index.html +52 -59
  213. package/app/m/places/Place/index.html +52 -59
  214. package/app/m/places/PlaceType/index.html +52 -59
  215. package/app/m/products/Category/index.html +52 -59
  216. package/app/m/products/Material/index.html +52 -59
  217. package/app/m/products/Product/index.html +52 -59
  218. package/app/m/products/Product/ingredients/index.html +54 -59
  219. package/app/m/products/ProductVariant/index.html +53 -60
  220. package/app/m/products/Sku/index.html +53 -60
  221. package/app/m/profiles/ApiKey/index.html +52 -59
  222. package/app/m/profiles/Bot/index.html +52 -59
  223. package/app/m/profiles/MagicLinkToken/index.html +52 -59
  224. package/app/m/profiles/NostrIdentity/index.html +52 -59
  225. package/app/m/profiles/OidcIdentity/index.html +52 -59
  226. package/app/m/profiles/Organization/index.html +52 -59
  227. package/app/m/profiles/Person/index.html +52 -59
  228. package/app/m/profiles/Profile/index.html +52 -59
  229. package/app/m/profiles/ProfileMetadata/index.html +52 -59
  230. package/app/m/profiles/ProfileMetafield/index.html +52 -59
  231. package/app/m/profiles/ProfileRelationship/index.html +52 -59
  232. package/app/m/profiles/ProfileRelationshipTerm/index.html +52 -59
  233. package/app/m/profiles/ProfileRelationshipType/index.html +52 -59
  234. package/app/m/profiles/ProfileType/index.html +52 -59
  235. package/app/m/projects/Comment/index.html +53 -60
  236. package/app/m/projects/Issue/index.html +52 -59
  237. package/app/m/projects/Label/index.html +52 -59
  238. package/app/m/projects/Project/index.html +52 -59
  239. package/app/m/projects/ProjectIntegration/index.html +52 -59
  240. package/app/m/projects/PullRequest/index.html +52 -59
  241. package/app/m/projects/Repository/index.html +52 -59
  242. package/app/m/properties/Property/index.html +52 -59
  243. package/app/m/properties/Zone/index.html +52 -59
  244. package/app/m/reports/RuntimeReport/index.html +52 -59
  245. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +52 -59
  246. package/app/m/reports/SmrtReportLock/index.html +52 -59
  247. package/app/m/reports/SmrtReportRefreshTask/index.html +52 -59
  248. package/app/m/reports/SmrtReportRun/index.html +52 -59
  249. package/app/m/reports/SmrtReportSchedule/index.html +52 -59
  250. package/app/m/reports/SmrtReportWatermark/index.html +52 -59
  251. package/app/m/sales/AttributionException/index.html +52 -59
  252. package/app/m/sales/AttributionPolicy/index.html +52 -59
  253. package/app/m/sales/Commission/index.html +52 -59
  254. package/app/m/sales/CommissionAdjustment/index.html +52 -59
  255. package/app/m/sales/CommissionPayout/index.html +52 -59
  256. package/app/m/sales/CommissionPlan/index.html +52 -59
  257. package/app/m/sales/Earner/index.html +52 -59
  258. package/app/m/sales/EarnerSourceAttribution/index.html +52 -59
  259. package/app/m/sales/EarningEvent/index.html +52 -59
  260. package/app/m/sales/ExecutedAgreement/index.html +52 -59
  261. package/app/m/sales/Lead/index.html +52 -59
  262. package/app/m/sales/Opportunity/index.html +52 -59
  263. package/app/m/sales/OpportunityConversion/index.html +52 -59
  264. package/app/m/sales/PipelineDefinition/index.html +52 -59
  265. package/app/m/sales/PipelineStage/index.html +53 -60
  266. package/app/m/sales/Referral/index.html +52 -59
  267. package/app/m/sales/ReferralAgreement/index.html +52 -59
  268. package/app/m/sales/ReferralLink/index.html +52 -59
  269. package/app/m/sales/ReferralProgram/index.html +52 -59
  270. package/app/m/sales/ReferralTermSnapshot/index.html +52 -59
  271. package/app/m/sales/ReferralTouch/index.html +52 -59
  272. package/app/m/sales/Referrer/index.html +52 -59
  273. package/app/m/sales/SalesActivity/index.html +52 -59
  274. package/app/m/sales/SalesRepresentative/index.html +52 -59
  275. package/app/m/sites/Site/index.html +52 -59
  276. package/app/m/sites/SiteAgentBinding/index.html +52 -59
  277. package/app/m/social/OAuthState/index.html +52 -59
  278. package/app/m/social/SocialAccount/index.html +52 -59
  279. package/app/m/social/SocialPost/index.html +52 -59
  280. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +52 -59
  281. package/app/m/subscriptions/BillingAdjustment/index.html +52 -59
  282. package/app/m/subscriptions/ClientCharge/index.html +52 -59
  283. package/app/m/subscriptions/CreditGrant/index.html +52 -59
  284. package/app/m/subscriptions/PricingRule/index.html +52 -59
  285. package/app/m/subscriptions/RetailCharge/index.html +52 -59
  286. package/app/m/subscriptions/SpendingPolicy/index.html +52 -59
  287. package/app/m/subscriptions/SubscriptionPlan/index.html +52 -59
  288. package/app/m/subscriptions/TenantSubscription/index.html +52 -59
  289. package/app/m/subscriptions/TenantUsageMetric/index.html +52 -59
  290. package/app/m/support/ServiceTimeEntry/index.html +52 -59
  291. package/app/m/support/SupportAiRun/index.html +52 -59
  292. package/app/m/support/SupportAvailability/index.html +52 -59
  293. package/app/m/support/SupportCase/index.html +52 -59
  294. package/app/m/support/SupportCaseEvent/index.html +52 -59
  295. package/app/m/support/SupportChannelBinding/index.html +52 -59
  296. package/app/m/support/SupportCharge/index.html +52 -59
  297. package/app/m/support/SupportCompensation/index.html +52 -59
  298. package/app/m/support/SupportCompensationPlan/index.html +52 -59
  299. package/app/m/support/SupportEscalation/index.html +52 -59
  300. package/app/m/support/SupportInteraction/index.html +52 -59
  301. package/app/m/support/SupportPlan/index.html +52 -59
  302. package/app/m/support/SupportPolicy/index.html +52 -59
  303. package/app/m/support/SupportQualification/index.html +52 -59
  304. package/app/m/support/SupportServiceTarget/index.html +52 -59
  305. package/app/m/support/SupportSpecialist/index.html +52 -59
  306. package/app/m/support/SupportWorkLink/index.html +52 -59
  307. package/app/m/tags/Tag/index.html +52 -59
  308. package/app/m/tags/TagAlias/index.html +52 -59
  309. package/app/m/timesheets/AttendanceBreak/index.html +52 -59
  310. package/app/m/timesheets/AttendancePunch/index.html +52 -59
  311. package/app/m/timesheets/AttendanceSegment/index.html +89 -0
  312. package/app/m/timesheets/ServiceChargeSnapshot/index.html +52 -59
  313. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +52 -59
  314. package/app/m/timesheets/ServiceTimeEntry/index.html +52 -59
  315. package/app/m/users/Group/index.html +52 -59
  316. package/app/m/users/GroupMember/index.html +52 -59
  317. package/app/m/users/GroupRole/index.html +52 -59
  318. package/app/m/users/Membership/index.html +53 -60
  319. package/app/m/users/MembershipOverride/index.html +52 -59
  320. package/app/m/users/Permission/index.html +52 -59
  321. package/app/m/users/Role/index.html +52 -59
  322. package/app/m/users/RolePermission/index.html +52 -59
  323. package/app/m/users/Session/index.html +52 -59
  324. package/app/m/users/Tenant/index.html +52 -59
  325. package/app/m/users/TenantIntegration/index.html +52 -59
  326. package/app/m/users/TenantPermissionOverride/index.html +52 -59
  327. package/app/m/users/User/index.html +52 -59
  328. package/app/m/video/Character/index.html +52 -59
  329. package/app/m/video/CharacterAsset/index.html +52 -59
  330. package/app/m/video/CompositeJob/index.html +52 -59
  331. package/app/m/video/Performer/index.html +52 -59
  332. package/app/m/video/PerformerAsset/index.html +52 -59
  333. package/app/m/video/Scene/index.html +52 -59
  334. package/app/m/video/SceneAsset/index.html +52 -59
  335. package/app/m/video/VideoComposition/index.html +52 -59
  336. package/app/m/video/VideoCompositionAsset/index.html +52 -59
  337. package/app/m/video/VideoSequence/index.html +52 -59
  338. package/app/m/video/VideoSequenceAsset/index.html +52 -59
  339. package/app/m/video/VideoShot/index.html +52 -59
  340. package/app/m/video/VideoShotAsset/index.html +52 -59
  341. package/app/m/video/VideoShotCharacter/index.html +52 -59
  342. package/app/m/video/VideoWorkflow/index.html +52 -59
  343. package/app/m/voice/VoiceOutput/index.html +52 -59
  344. package/app/m/voice/VoiceProfile/index.html +52 -59
  345. package/app/m/voice/VoiceSample/index.html +52 -59
  346. package/app/packages/ads/index.html +50 -57
  347. package/app/packages/analytics/index.html +50 -57
  348. package/app/packages/approvals/index.html +50 -57
  349. package/app/packages/assets/index.html +50 -57
  350. package/app/packages/chat/index.html +50 -57
  351. package/app/packages/comments/index.html +50 -57
  352. package/app/packages/commerce/index.html +50 -57
  353. package/app/packages/content/index.html +50 -57
  354. package/app/packages/events/index.html +50 -57
  355. package/app/packages/expenses/index.html +50 -57
  356. package/app/packages/facts/index.html +50 -57
  357. package/app/packages/fields/index.html +50 -57
  358. package/app/packages/human-resources/index.html +50 -57
  359. package/app/packages/images/index.html +50 -57
  360. package/app/packages/index.html +49 -55
  361. package/app/packages/ingestion/index.html +85 -0
  362. package/app/packages/inventory/index.html +50 -57
  363. package/app/packages/ledgers/index.html +50 -57
  364. package/app/packages/manufacturing/index.html +50 -57
  365. package/app/packages/marketing/index.html +50 -57
  366. package/app/packages/messages/index.html +50 -57
  367. package/app/packages/places/index.html +50 -57
  368. package/app/packages/preferences/index.html +50 -57
  369. package/app/packages/products/index.html +50 -57
  370. package/app/packages/profiles/index.html +50 -57
  371. package/app/packages/projects/index.html +50 -57
  372. package/app/packages/properties/index.html +50 -57
  373. package/app/packages/reports/index.html +50 -57
  374. package/app/packages/sales/index.html +50 -57
  375. package/app/packages/sites/index.html +50 -57
  376. package/app/packages/social/index.html +50 -57
  377. package/app/packages/subscriptions/index.html +50 -57
  378. package/app/packages/support/index.html +50 -57
  379. package/app/packages/tags/index.html +50 -57
  380. package/app/packages/timesheets/index.html +50 -57
  381. package/app/packages/users/index.html +50 -57
  382. package/app/packages/video/index.html +50 -57
  383. package/app/packages/voice/index.html +50 -57
  384. package/app/packages/webhooks/index.html +85 -0
  385. package/app/recipes/account-access/help/index.html +52 -57
  386. package/app/recipes/account-access/index.html +57 -59
  387. package/app/recipes/activity/help/index.html +52 -57
  388. package/app/recipes/activity/index.html +57 -59
  389. package/app/recipes/agreements/help/index.html +52 -57
  390. package/app/recipes/agreements/index.html +57 -59
  391. package/app/recipes/analytics.reports/help/index.html +52 -57
  392. package/app/recipes/analytics.reports/index.html +57 -59
  393. package/app/recipes/assets/help/index.html +52 -57
  394. package/app/recipes/assets/index.html +57 -59
  395. package/app/recipes/billing/help/index.html +52 -57
  396. package/app/recipes/billing/index.html +57 -59
  397. package/app/recipes/chat.assistant/help/index.html +52 -57
  398. package/app/recipes/chat.assistant/index.html +57 -59
  399. package/app/recipes/comments/help/index.html +52 -57
  400. package/app/recipes/comments/index.html +57 -59
  401. package/app/recipes/commerce.customers/help/index.html +52 -57
  402. package/app/recipes/commerce.customers/index.html +57 -59
  403. package/app/recipes/commerce.estimates/help/index.html +52 -57
  404. package/app/recipes/commerce.estimates/index.html +57 -59
  405. package/app/recipes/commerce.purchases/help/index.html +52 -57
  406. package/app/recipes/commerce.purchases/index.html +57 -59
  407. package/app/recipes/commerce.sales/help/index.html +52 -57
  408. package/app/recipes/commerce.sales/index.html +57 -59
  409. package/app/recipes/commerce.vendors/help/index.html +52 -57
  410. package/app/recipes/commerce.vendors/index.html +57 -59
  411. package/app/recipes/commerce.wholesale/help/index.html +52 -57
  412. package/app/recipes/commerce.wholesale/index.html +57 -59
  413. package/app/recipes/events.calendar/help/index.html +52 -57
  414. package/app/recipes/events.calendar/index.html +57 -59
  415. package/app/recipes/expenses.tracking/help/index.html +88 -0
  416. package/app/recipes/expenses.tracking/index.html +92 -0
  417. package/app/recipes/fields.form-customization/help/index.html +52 -57
  418. package/app/recipes/fields.form-customization/index.html +57 -59
  419. package/app/recipes/ingestion/help/index.html +88 -0
  420. package/app/recipes/ingestion/index.html +93 -0
  421. package/app/recipes/integrations/help/index.html +88 -0
  422. package/app/recipes/integrations/index.html +92 -0
  423. package/app/recipes/inventory.stock/help/index.html +52 -57
  424. package/app/recipes/inventory.stock/index.html +57 -59
  425. package/app/recipes/ledgers.bookkeeping/help/index.html +52 -57
  426. package/app/recipes/ledgers.bookkeeping/index.html +57 -59
  427. package/app/recipes/messages/help/index.html +52 -57
  428. package/app/recipes/messages/index.html +57 -59
  429. package/app/recipes/products/help/index.html +52 -57
  430. package/app/recipes/products/index.html +57 -59
  431. package/app/recipes/projects.tracker/help/index.html +52 -57
  432. package/app/recipes/projects.tracker/index.html +57 -59
  433. package/app/recipes/reports.materialized/help/index.html +52 -57
  434. package/app/recipes/reports.materialized/index.html +57 -59
  435. package/app/recipes/reports.runtime/help/index.html +88 -0
  436. package/app/recipes/reports.runtime/index.html +92 -0
  437. package/app/recipes/sales.pipeline/help/index.html +52 -57
  438. package/app/recipes/sales.pipeline/index.html +57 -59
  439. package/app/recipes/tags.taxonomy/help/index.html +52 -57
  440. package/app/recipes/tags.taxonomy/index.html +57 -59
  441. package/app/recipes/team-collaboration/help/index.html +52 -57
  442. package/app/recipes/team-collaboration/index.html +57 -59
  443. package/app/recipes/timesheets.time-entries/help/index.html +88 -0
  444. package/app/recipes/timesheets.time-entries/index.html +92 -0
  445. package/app/s/custom-accounts/index.html +82 -0
  446. package/app/s/custom-appointments/index.html +82 -0
  447. package/app/s/custom-billing/index.html +47 -54
  448. package/app/s/custom-buying/index.html +47 -54
  449. package/app/s/custom-checkout/index.html +82 -0
  450. package/app/s/custom-classes/index.html +47 -54
  451. package/app/s/custom-clients/index.html +82 -0
  452. package/app/s/custom-events/index.html +82 -0
  453. package/app/s/custom-fleet/index.html +82 -0
  454. package/app/s/custom-giving/index.html +82 -0
  455. package/app/s/custom-jobs/index.html +47 -54
  456. package/app/s/custom-kitchen/index.html +47 -54
  457. package/app/s/custom-material/index.html +47 -54
  458. package/app/s/custom-meetings/index.html +82 -0
  459. package/app/s/custom-members/index.html +47 -54
  460. package/app/s/custom-parts/index.html +47 -54
  461. package/app/s/custom-rentals/index.html +82 -0
  462. package/app/s/custom-roastery/index.html +82 -0
  463. package/app/s/custom-schedule/index.html +47 -54
  464. package/app/s/custom-shelf/index.html +82 -0
  465. package/app/s/custom-shop/index.html +47 -54
  466. package/app/s/custom-wholesale/index.html +47 -54
  467. package/app/s/custom-work/index.html +82 -0
  468. package/app/s/custom-yard/index.html +82 -0
  469. package/app/s/section-access-control/index.html +47 -54
  470. package/app/s/section-account-security/index.html +47 -54
  471. package/app/s/section-accounting/index.html +47 -54
  472. package/app/s/section-activity/index.html +47 -54
  473. package/app/s/section-agreements/index.html +47 -54
  474. package/app/s/section-analytics/index.html +47 -54
  475. package/app/s/section-assets/index.html +47 -54
  476. package/app/s/section-billing/index.html +47 -54
  477. package/app/s/section-calendar/index.html +47 -54
  478. package/app/s/section-catalog/index.html +47 -54
  479. package/app/s/section-chat.assistant/index.html +47 -54
  480. package/app/s/section-comments/index.html +47 -54
  481. package/app/s/section-fields.form-customization/index.html +47 -54
  482. package/app/s/section-ingestion/index.html +82 -0
  483. package/app/s/section-integrations/index.html +82 -0
  484. package/app/s/section-messages/index.html +47 -54
  485. package/app/s/section-more/index.html +47 -54
  486. package/app/s/section-operations/index.html +47 -54
  487. package/app/s/section-projects/index.html +47 -54
  488. package/app/s/section-purchasing/index.html +47 -54
  489. package/app/s/section-reports.materialized/index.html +47 -54
  490. package/app/s/section-reports.runtime/index.html +82 -0
  491. package/app/s/section-sales/index.html +47 -54
  492. package/app/s/section-taxonomy/index.html +47 -54
  493. package/app/s/section-team/index.html +47 -54
  494. package/app/s/section-work/index.html +82 -0
  495. package/dist/ai/state.svelte.d.ts +13 -0
  496. package/dist/ai/state.svelte.js +33 -0
  497. package/dist/assistant/change.d.ts +14 -3
  498. package/dist/assistant/change.js +26 -3
  499. package/dist/assistant/engine.js +5 -1
  500. package/dist/assistant/prompt.js +7 -3
  501. package/dist/catalog/catalog.json +11263 -14455
  502. package/dist/catalog/generate/exclusions.d.ts +2 -0
  503. package/dist/catalog/generate/exclusions.js +14 -0
  504. package/dist/catalog/generate/extract.js +28 -7
  505. package/dist/catalog/types.d.ts +7 -0
  506. package/dist/components/AdvancedStyles.svelte +138 -0
  507. package/dist/components/AdvancedStyles.svelte.d.ts +6 -0
  508. package/dist/components/AiModelsPage.svelte +40 -0
  509. package/dist/components/AiModelsPage.svelte.d.ts +7 -0
  510. package/dist/components/AiSetup.svelte +9 -6
  511. package/dist/components/AiStatusIcons.svelte +8 -5
  512. package/dist/components/AppSettings.svelte +105 -1
  513. package/dist/components/BrowserAssistant.svelte +16 -17
  514. package/dist/components/BrowserAssistant.svelte.d.ts +2 -0
  515. package/dist/components/ChildRecords.svelte +61 -14
  516. package/dist/components/ChildRecords.svelte.d.ts +1 -0
  517. package/dist/components/ConnectTools.svelte +5 -2
  518. package/dist/components/CookbooksPanel.svelte +56 -33
  519. package/dist/components/CopyButton.svelte +65 -0
  520. package/dist/components/CopyButton.svelte.d.ts +24 -0
  521. package/dist/components/ExportPanel.svelte +292 -57
  522. package/dist/components/ExportPanel.svelte.d.ts +10 -1
  523. package/dist/components/FeatureCard.svelte +21 -10
  524. package/dist/components/FeaturesPanel.svelte +4 -1
  525. package/dist/components/FieldInput.svelte +6 -3
  526. package/dist/components/FieldMapForm.svelte +6 -10
  527. package/dist/components/FieldMapForm.svelte.d.ts +1 -0
  528. package/dist/components/FormWorkspace.svelte +80 -9
  529. package/dist/components/FormWorkspace.svelte.d.ts +1 -0
  530. package/dist/components/HeaderIconLink.svelte +86 -0
  531. package/dist/components/HeaderIconLink.svelte.d.ts +14 -0
  532. package/dist/components/HelpView.svelte +3 -0
  533. package/dist/components/ModelOptions.svelte +13 -2
  534. package/dist/components/ModelPage.svelte +33 -5
  535. package/dist/components/ModelPage.svelte.d.ts +4 -0
  536. package/dist/components/ModelWorkspace.svelte +148 -50
  537. package/dist/components/ModelWorkspace.svelte.d.ts +4 -0
  538. package/dist/components/PackagePage.svelte +96 -0
  539. package/dist/components/PackagePage.svelte.d.ts +9 -0
  540. package/dist/components/ProductMedia.svelte +95 -0
  541. package/dist/components/ProductMedia.svelte.d.ts +10 -0
  542. package/dist/components/RecipeCards.svelte +13 -1
  543. package/dist/components/RecipeHelp.svelte +3 -0
  544. package/dist/components/RecipeOptions.svelte +13 -1
  545. package/dist/components/RecordFeatures.svelte +22 -8
  546. package/dist/components/RecordView.svelte +354 -0
  547. package/dist/components/RecordView.svelte.d.ts +14 -0
  548. package/dist/components/RelationField.svelte +5 -2
  549. package/dist/components/SectionActions.svelte +8 -5
  550. package/dist/components/SectionHeading.svelte +63 -0
  551. package/dist/components/SectionHeading.svelte.d.ts +11 -0
  552. package/dist/components/SectionIcons.svelte +15 -3
  553. package/dist/components/SectionOverview.svelte +33 -3
  554. package/dist/components/SectionOverview.svelte.d.ts +4 -0
  555. package/dist/components/SectionPage.svelte +25 -165
  556. package/dist/components/SectionView.svelte +172 -0
  557. package/dist/components/SectionView.svelte.d.ts +18 -0
  558. package/dist/components/SettingsPanel.svelte +3 -9
  559. package/dist/components/SettingsPanel.svelte.d.ts +1 -5
  560. package/dist/components/ThemeBridge.svelte +80 -4
  561. package/dist/components/ThemeBridge.svelte.d.ts +5 -1
  562. package/dist/components/ThemeSection.svelte +208 -117
  563. package/dist/components/ThemeSection.svelte.d.ts +3 -7
  564. package/dist/components/VariantGridForm.svelte +9 -13
  565. package/dist/components/VariantGridForm.svelte.d.ts +1 -0
  566. package/dist/components/VoiceTyping.svelte +3 -0
  567. package/dist/cookbook/describe.d.ts +29 -0
  568. package/dist/cookbook/describe.js +164 -0
  569. package/dist/cookbook/file.d.ts +6 -0
  570. package/dist/cookbook/file.js +18 -4
  571. package/dist/cookbook/prompt.d.ts +49 -0
  572. package/dist/cookbook/prompt.js +96 -0
  573. package/dist/cookbook/store.svelte.d.ts +13 -0
  574. package/dist/cookbook/store.svelte.js +36 -8
  575. package/dist/core/prompt.js +10 -1
  576. package/dist/core/reply.d.ts +6 -1
  577. package/dist/data/children.d.ts +50 -6
  578. package/dist/data/children.js +146 -16
  579. package/dist/data/derived.d.ts +37 -29
  580. package/dist/data/derived.js +49 -30
  581. package/dist/data/display.d.ts +21 -8
  582. package/dist/data/display.js +74 -11
  583. package/dist/data/fakes.d.ts +48 -9
  584. package/dist/data/fakes.js +146 -22
  585. package/dist/data/labels.d.ts +7 -2
  586. package/dist/data/labels.js +12 -2
  587. package/dist/data/list-sort.d.ts +8 -0
  588. package/dist/data/list-sort.js +45 -0
  589. package/dist/data/money.d.ts +225 -0
  590. package/dist/data/money.js +411 -0
  591. package/dist/data/packs.d.ts +13 -0
  592. package/dist/data/packs.js +1224 -0
  593. package/dist/data/planner-source.js +120 -3
  594. package/dist/data/source.d.ts +13 -2
  595. package/dist/data/source.js +274 -40
  596. package/dist/features/palette.d.ts +2 -0
  597. package/dist/features/palette.js +1 -1
  598. package/dist/forms/stock.d.ts +1 -1
  599. package/dist/forms/stock.js +3 -1
  600. package/dist/index.d.ts +7 -2
  601. package/dist/index.js +6 -1
  602. package/dist/kitchen/LiveKitchenBridge.svelte +73 -0
  603. package/dist/kitchen/LiveKitchenBridge.svelte.d.ts +8 -0
  604. package/dist/kitchen/live.d.ts +7 -0
  605. package/dist/kitchen/live.js +51 -0
  606. package/dist/library/icons.js +34 -0
  607. package/dist/library/library.json +1546 -15
  608. package/dist/library/pending.json +5 -0
  609. package/dist/library/types.d.ts +4 -0
  610. package/dist/motion/tokens.d.ts +6 -0
  611. package/dist/motion/tokens.js +32 -0
  612. package/dist/motion/view-transition.d.ts +13 -0
  613. package/dist/motion/view-transition.js +17 -0
  614. package/dist/overviews/definitions.d.ts +41 -2
  615. package/dist/overviews/definitions.js +111 -4
  616. package/dist/overviews/models.d.ts +10 -0
  617. package/dist/overviews/models.js +19 -0
  618. package/dist/overviews/registry.d.ts +92 -5
  619. package/dist/overviews/registry.js +468 -58
  620. package/dist/overviews/validate.js +2 -2
  621. package/dist/planner/Planner.svelte +374 -166
  622. package/dist/planner/PlannerControls.svelte +255 -0
  623. package/dist/planner/PlannerControls.svelte.d.ts +17 -0
  624. package/dist/planner/PlannerLifecycle.svelte +73 -0
  625. package/dist/planner/PlannerLifecycle.svelte.d.ts +9 -0
  626. package/dist/planner/app.svelte.d.ts +12 -2
  627. package/dist/planner/app.svelte.js +13 -3
  628. package/dist/planner/assistant.js +20 -2
  629. package/dist/planner/commands/adapter.js +9 -2
  630. package/dist/planner/commands/types.d.ts +1 -1
  631. package/dist/planner/commands/types.js +1 -0
  632. package/dist/planner/header-icons.d.ts +12 -0
  633. package/dist/planner/header-icons.js +12 -0
  634. package/dist/planner/host/HostPlanner.svelte +70 -0
  635. package/dist/planner/host/HostPlanner.svelte.d.ts +17 -0
  636. package/dist/planner/host/session.svelte.d.ts +28 -0
  637. package/dist/planner/host/session.svelte.js +186 -0
  638. package/dist/planner/routes.d.ts +49 -0
  639. package/dist/planner/routes.js +64 -0
  640. package/dist/planner/shell.d.ts +40 -0
  641. package/dist/planner/shell.js +56 -0
  642. package/dist/planner/tab.svelte.d.ts +6 -3
  643. package/dist/planner/tab.svelte.js +11 -4
  644. package/dist/planner/title.d.ts +15 -0
  645. package/dist/planner/title.js +21 -0
  646. package/dist/planner/title.svelte.d.ts +6 -0
  647. package/dist/planner/title.svelte.js +11 -0
  648. package/dist/planner/types.d.ts +39 -7
  649. package/dist/products/media.d.ts +20 -0
  650. package/dist/products/media.js +65 -0
  651. package/dist/recipes/help/descriptions.json +1 -3
  652. package/dist/recipes/index.d.ts +2 -0
  653. package/dist/recipes/index.js +6 -0
  654. package/dist/recipes/plumbing.d.ts +35 -1
  655. package/dist/recipes/plumbing.js +74 -0
  656. package/dist/screens/definition.d.ts +35 -0
  657. package/dist/screens/definition.js +132 -0
  658. package/dist/screens/relations.d.ts +17 -0
  659. package/dist/screens/relations.js +98 -0
  660. package/dist/screens/totals.d.ts +37 -0
  661. package/dist/screens/totals.js +65 -0
  662. package/dist/sections/info.d.ts +1 -1
  663. package/dist/sections/info.js +2 -2
  664. package/dist/settings/app-settings.d.ts +17 -1
  665. package/dist/settings/app-settings.js +40 -3
  666. package/dist/smrt-version.d.ts +2 -0
  667. package/dist/smrt-version.js +4 -0
  668. package/dist/styles/planner-forms.css +53 -0
  669. package/dist/styles/planner-lists.css +43 -0
  670. package/dist/theme/css-highlight.d.ts +6 -0
  671. package/dist/theme/css-highlight.js +34 -0
  672. package/dist/theme/custom-css.svelte.d.ts +34 -0
  673. package/dist/theme/custom-css.svelte.js +246 -0
  674. package/dist/theme/runtime.js +25 -5
  675. package/dist/theme/theme.d.ts +26 -3
  676. package/dist/theme/theme.js +70 -2
  677. package/dist/upstream/overlay.d.ts +14 -5
  678. package/dist/upstream/overlay.js +20 -2
  679. package/package.json +12 -6
  680. package/app/_app/immutable/assets/0.B5zXkXe_.css +0 -1
  681. package/app/_app/immutable/assets/10.hpcnxvK1.css +0 -1
  682. package/app/_app/immutable/assets/11.D7zoXfVV.css +0 -1
  683. package/app/_app/immutable/assets/12.CPobm1ED.css +0 -1
  684. package/app/_app/immutable/assets/2.CyaWdRdI.css +0 -1
  685. package/app/_app/immutable/assets/3.BlPQOes8.css +0 -1
  686. package/app/_app/immutable/assets/8.2gQeKBp_.css +0 -1
  687. package/app/_app/immutable/assets/9.HOPT4xtg.css +0 -1
  688. package/app/_app/immutable/assets/AiSetup.Cb22AigN.css +0 -1
  689. package/app/_app/immutable/assets/Button.DkP0qkG9.css +0 -1
  690. package/app/_app/immutable/assets/ConnectTools.BgIJOOGW.css +0 -1
  691. package/app/_app/immutable/assets/FieldMapForm.BCU-4pO4.css +0 -1
  692. package/app/_app/immutable/assets/ModelPage.Dd3LcMta.css +0 -1
  693. package/app/_app/immutable/assets/SectionActions.CTkVuNMF.css +0 -1
  694. package/app/_app/immutable/assets/SectionIcons.5Udq9vN-.css +0 -1
  695. package/app/_app/immutable/assets/SegmentedControl.B8SrQacd.css +0 -1
  696. package/app/_app/immutable/assets/dist.C5nHBk_O.css +0 -1
  697. package/app/_app/immutable/assets/feedback.BVKAwFck.css +0 -1
  698. package/app/_app/immutable/assets/forms.BChZ2RWM.css +0 -1
  699. package/app/_app/immutable/assets/percent.LH0z-ozZ.css +0 -1
  700. package/app/_app/immutable/assets/store.CGDwHkkF.css +0 -1
  701. package/app/_app/immutable/assets/ui.B1A1Zl2p.css +0 -1
  702. package/app/_app/immutable/assets/workspace.BIMkuZDb.css +0 -1
  703. package/app/_app/immutable/chunks/1okeBSoq.js +0 -1
  704. package/app/_app/immutable/chunks/2jFBkS1C.js +0 -1
  705. package/app/_app/immutable/chunks/6P9zxrzU.js +0 -1
  706. package/app/_app/immutable/chunks/B32EWqI8.js +0 -9
  707. package/app/_app/immutable/chunks/B4Kevpe0.js +0 -1
  708. package/app/_app/immutable/chunks/BKwRT_1p.js +0 -1
  709. package/app/_app/immutable/chunks/BS4h9ES-.js +0 -1
  710. package/app/_app/immutable/chunks/CMhpRMKg.js +0 -1
  711. package/app/_app/immutable/chunks/CPRHZZeW.js +0 -1
  712. package/app/_app/immutable/chunks/CRQ1Pmzr.js +0 -1
  713. package/app/_app/immutable/chunks/CWtfVMDz.js +0 -1
  714. package/app/_app/immutable/chunks/Chyo8rdT.js +0 -3
  715. package/app/_app/immutable/chunks/Ci0DUht6.js +0 -34
  716. package/app/_app/immutable/chunks/CmmuWmp6.js +0 -2
  717. package/app/_app/immutable/chunks/CrFNLK0f.js +0 -1
  718. package/app/_app/immutable/chunks/CsprTb3f.js +0 -2
  719. package/app/_app/immutable/chunks/CygC84VT.js +0 -2
  720. package/app/_app/immutable/chunks/D0VgZnk1.js +0 -1
  721. package/app/_app/immutable/chunks/DD7gpKb2.js +0 -1
  722. package/app/_app/immutable/chunks/DNRgqfTx.js +0 -1
  723. package/app/_app/immutable/chunks/DVRKjN-E.js +0 -1
  724. package/app/_app/immutable/chunks/D_J_XtJy.js +0 -846
  725. package/app/_app/immutable/chunks/Dp9GVO-9.js +0 -1
  726. package/app/_app/immutable/chunks/DqcD-WtP.js +0 -1
  727. package/app/_app/immutable/chunks/QukgIHDX.js +0 -1
  728. package/app/_app/immutable/chunks/WxSPP8QW.js +0 -4
  729. package/app/_app/immutable/chunks/Xp1g1t4n.js +0 -3
  730. package/app/_app/immutable/chunks/leQCwW2d.js +0 -1
  731. package/app/_app/immutable/chunks/p6bgzXiY.js +0 -1
  732. package/app/_app/immutable/entry/app.IZIJXhgq.js +0 -2
  733. package/app/_app/immutable/entry/start.BuaYHD1N.js +0 -1
  734. package/app/_app/immutable/nodes/0.m_U8WC7E.js +0 -10
  735. package/app/_app/immutable/nodes/1.Crw8ULhB.js +0 -1
  736. package/app/_app/immutable/nodes/10.1nQxyH9H.js +0 -4
  737. package/app/_app/immutable/nodes/11.Cw0JnQF3.js +0 -1
  738. package/app/_app/immutable/nodes/12.BIocA1aI.js +0 -1
  739. package/app/_app/immutable/nodes/2.CR5BwGnt.js +0 -17
  740. package/app/_app/immutable/nodes/3.1B56hgAG.js +0 -1
  741. package/app/_app/immutable/nodes/4.SSIC7sUh.js +0 -1
  742. package/app/_app/immutable/nodes/5.DgdwleDQ.js +0 -1
  743. package/app/_app/immutable/nodes/6.DmD9rqLU.js +0 -1
  744. package/app/_app/immutable/nodes/7.DdngsBmo.js +0 -1
  745. package/app/_app/immutable/nodes/8.D2Mszsua.js +0 -3
  746. package/app/_app/immutable/nodes/9.CLYsywul.js +0 -1
  747. package/app/m/content/Contents/index.html +0 -96
  748. package/app/m/preferences/UiPreferenceRecord/index.html +0 -96
  749. package/app/m/users/AccessRequest/index.html +0 -96
  750. package/app/m/users/ResourceGrant/index.html +0 -96
  751. package/app/m/users/UsersCliAuthRequest/index.html +0 -96
  752. package/app/m/users/UsersMagicLinkToken/index.html +0 -96
@@ -1,35 +1,87 @@
1
1
  <script lang="ts">
2
- import { Button } from '@happyvertical/smrt-ui';
2
+ import { Button, Chip, Disclosure } from '@happyvertical/smrt-ui';
3
3
  import { Alert, ConfirmDialog } from '@happyvertical/smrt-ui/feedback';
4
- import { downloadCookbook } from '../cookbook/file.js';
4
+ import { Textarea } from '@happyvertical/smrt-ui/forms';
5
+ import { describeCookbook, summarizeCookbook } from '../cookbook/describe.js';
6
+ import {
7
+ downloadCookbook,
8
+ exportFileName,
9
+ exportFileSize,
10
+ formatSize,
11
+ serializeCookbook,
12
+ } from '../cookbook/file.js';
13
+ import {
14
+ applyCommand,
15
+ appNameFor,
16
+ buildAgentPrompt,
17
+ } from '../cookbook/prompt.js';
5
18
  import { cookbookStore } from '../cookbook/store.svelte.js';
6
19
  import type { Cookbook } from '../cookbook/types.js';
7
20
  import { parseCookbookText } from '../cookbook/validate.js';
8
21
  import { useDataSource } from '../data/context.js';
9
- import { humanize } from '../data/format.js';
10
22
  import { kitchenState } from '../kitchen/state.svelte.js';
11
23
  import { getLibraryCookbook } from '../library/index.js';
12
24
  import { libraryState } from '../library/state.svelte.js';
13
- import { recipesById } from '../recipes/index.js';
25
+ import CopyButton from './CopyButton.svelte';
26
+
27
+ /**
28
+ * The Export tab: what the cookbook holds, a prompt that hands it to a coding
29
+ * agent, the file download (and the command the file needs), Send to kitchen
30
+ * when a kitchen is listening, and, apart from those, Import and Reset.
31
+ */
32
+ interface Props {
33
+ /** Replaces `navigator.clipboard.writeText` (tests). */
34
+ write?: (text: string) => Promise<void>;
35
+ }
36
+
37
+ let { write }: Props = $props();
14
38
 
15
39
  let fileInput: HTMLInputElement | undefined = $state();
40
+ let promptBox: ReturnType<typeof Textarea> | undefined = $state();
41
+ let commandLine: HTMLElement | undefined = $state();
16
42
  /** A validated import waiting for the visitor's confirmation. */
17
43
  let pending = $state<Cookbook | null>(null);
18
44
  /** What reading the pending import dropped (invalid page customisations). */
19
45
  let pendingDropped = $state<string[]>([]);
20
46
  let error = $state('');
21
47
  let notice = $state('');
48
+ let copyNotice = $state('');
22
49
  let confirmingReset = $state(false);
23
50
 
24
- // A file is named for the library cookbook last applied, else a generic name.
25
- const exportName = () => getLibraryCookbook(libraryState.active ?? '')?.name;
51
+ // A file is named for the cookbook's own name, else the library cookbook last
52
+ // applied, else a generic name.
53
+ const libraryName = $derived(
54
+ getLibraryCookbook(libraryState.active ?? '')?.name,
55
+ );
26
56
 
27
57
  const current = $derived(cookbookStore.snapshot());
58
+ const summary = $derived(describeCookbook(current));
59
+ const fileName = $derived(exportFileName(current.name ?? libraryName));
60
+ const fileSize = $derived(formatSize(exportFileSize(current)));
61
+ const appName = $derived(appNameFor(current, libraryName));
62
+ const prompt = $derived(
63
+ buildAgentPrompt(current, { fallbackName: libraryName }),
64
+ );
65
+ const command = $derived(applyCommand(fileName, appName));
28
66
 
29
- const pages = (b: Cookbook) => Object.keys(b.overviews ?? {}).length;
67
+ const COPY_BY_HAND =
68
+ 'Copying is not available here. The text is selected: press Ctrl+C (Cmd+C on a Mac) to copy it.';
69
+
70
+ function promptCopyFailed() {
71
+ const element = promptBox?.getElement();
72
+ element?.focus();
73
+ element?.select();
74
+ copyNotice = COPY_BY_HAND;
75
+ }
30
76
 
31
- const describe = (b: Cookbook) =>
32
- `${b.recipes.length} ${b.recipes.length === 1 ? 'recipe' : 'recipes'}, ${b.features.length} ${b.features.length === 1 ? 'feature' : 'features'}, ${b.policies.length} saved ${b.policies.length === 1 ? 'option' : 'options'}${pages(b) ? `, ${pages(b)} customised ${pages(b) === 1 ? 'page' : 'pages'}` : ''}`;
77
+ function commandCopyFailed() {
78
+ if (commandLine) {
79
+ const selection = window.getSelection();
80
+ selection?.removeAllRanges();
81
+ selection?.selectAllChildren(commandLine);
82
+ }
83
+ copyNotice = COPY_BY_HAND;
84
+ }
33
85
 
34
86
  async function choose(event: Event & { currentTarget: HTMLInputElement }) {
35
87
  const input = event.currentTarget;
@@ -53,7 +105,7 @@ async function choose(event: Event & { currentTarget: HTMLInputElement }) {
53
105
  function confirmImport() {
54
106
  if (pending) {
55
107
  cookbookStore.replace(pending);
56
- notice = `Imported ${describe(pending)}.${pendingDropped.length ? ` Not imported: ${pendingDropped.join(' ')}` : ''}`;
108
+ notice = `Imported ${summarizeCookbook(pending)}.${pendingDropped.length ? ` Not imported: ${pendingDropped.join(' ')}` : ''}`;
57
109
  }
58
110
  pending = null;
59
111
  pendingDropped = [];
@@ -75,50 +127,95 @@ function confirmReset() {
75
127
 
76
128
  <div class="export">
77
129
  <p class="meta">
78
- Your recipes, their options, the layout and customised pages, kept together in this browser.
79
- Export them as a file, or import one to replace what is here. Sample
80
- records are not part of it.
130
+ Your recipes, their options, the theme, the layout and customised pages,
131
+ kept together in this browser as one cookbook. Sample records are not part
132
+ of it.
81
133
  </p>
82
- <section aria-labelledby="current-heading">
83
- <h2 id="current-heading">Current cookbook</h2>
84
- <p>{describe(current)}.</p>
85
- {#if current.recipes.length}
86
- <ul>
87
- {#each current.recipes as id (id)}
88
- <li>{recipesById.get(id)?.label ?? id}</li>
89
- {/each}
90
- </ul>
91
- {/if}
92
- {#if current.features.length}
93
- <ul>
94
- {#each current.features as id (id)}
95
- <li>{humanize(id.slice(id.lastIndexOf(':') + 1))}</li>
134
+
135
+ <section class="block" aria-labelledby="summary-heading" data-export-section="summary">
136
+ <h2 id="summary-heading">In this cookbook</h2>
137
+ {#if summary.length}
138
+ <dl class="summary">
139
+ {#each summary as line (line.id)}
140
+ <dt>{line.label}</dt>
141
+ <dd>
142
+ {#if line.chips}
143
+ <ul class="chips">
144
+ {#each line.chips as chip, i (`${chip}:${i}`)}
145
+ <li><Chip label={chip} size="sm" /></li>
146
+ {/each}
147
+ </ul>
148
+ {:else}
149
+ {line.text}
150
+ {/if}
151
+ </dd>
96
152
  {/each}
97
- </ul>
153
+ </dl>
154
+ {:else}
155
+ <p class="quiet">Nothing customised yet. Add recipes or apply a cookbook first.</p>
98
156
  {/if}
99
157
  </section>
100
158
 
101
- <div class="actions">
102
- {#if kitchenState.config}
103
- <Button
104
- disabled={kitchenState.status === 'sending'}
105
- onclick={() => kitchenState.send(cookbookStore.snapshot())}
106
- >{kitchenState.status === 'sending' ? 'Sending to kitchen…' : 'Send to kitchen'}</Button>
107
- <Button variant="secondary" onclick={() => downloadCookbook(cookbookStore.snapshot(), exportName())}>Download cookbook</Button>
108
- {:else}
109
- <Button onclick={() => downloadCookbook(cookbookStore.snapshot(), exportName())}>Export cookbook</Button>
110
- {/if}
111
- <Button variant="secondary" onclick={() => fileInput?.click()}>Import cookbook…</Button>
112
- <Button variant="secondary" onclick={() => (confirmingReset = true)}>Reset</Button>
113
- <input
114
- bind:this={fileInput}
115
- type="file"
116
- accept="application/json,.json"
117
- hidden
118
- aria-label="Cookbook file"
119
- onchange={choose}
159
+ <section class="block" aria-labelledby="prompt-heading" data-export-section="prompt">
160
+ <h2 id="prompt-heading">Copy prompt for your coding agent</h2>
161
+ <p class="meta" id="prompt-note">
162
+ Paste it into Claude Code, Codex or another coding agent. The prompt
163
+ carries the cookbook, creates the app <code>{appName}</code> with the smrt CLI {prompt.version} and
164
+ starts it. About {formatSize(prompt.bytes)}.
165
+ </p>
166
+ <Textarea
167
+ bind:this={promptBox}
168
+ class="prompt"
169
+ value={prompt.text}
170
+ readonly
171
+ rows={10}
172
+ spellcheck={false}
173
+ wrap="soft"
174
+ aria-label="Prompt for your coding agent"
175
+ aria-describedby="prompt-note"
176
+ interaction={false}
120
177
  />
121
- </div>
178
+ <div class="actions" data-export-actions="primary">
179
+ <CopyButton
180
+ text={() => prompt.text}
181
+ label="Copy prompt"
182
+ {write}
183
+ oncopied={() => (copyNotice = 'Prompt copied.')}
184
+ onfail={promptCopyFailed}
185
+ />
186
+ {#if kitchenState.config}
187
+ <Button
188
+ variant="secondary"
189
+ disabled={kitchenState.status === 'sending'}
190
+ onclick={() => kitchenState.send(cookbookStore.snapshot())}
191
+ >{kitchenState.status === 'sending' ? 'Sending to kitchen…' : 'Send to kitchen'}</Button>
192
+ {/if}
193
+ <Button variant="secondary" onclick={() => downloadCookbook(current, current.name ?? libraryName)}>Download cookbook</Button>
194
+ </div>
195
+ <p class="notice" role="status" aria-live="polite">{copyNotice}</p>
196
+ </section>
197
+
198
+ <section class="block" aria-labelledby="file-heading" data-export-section="file">
199
+ <h2 id="file-heading">The downloaded file</h2>
200
+ <p class="meta">
201
+ Download writes <code>{fileName}</code> ({fileSize}). To make the app from
202
+ it yourself, run this where the file is:
203
+ </p>
204
+ <div class="command">
205
+ <code bind:this={commandLine} data-export-command>{command}</code>
206
+ <CopyButton
207
+ text={() => command}
208
+ label="Copy command"
209
+ variant="secondary"
210
+ {write}
211
+ oncopied={() => (copyNotice = 'Command copied.')}
212
+ onfail={commandCopyFailed}
213
+ />
214
+ </div>
215
+ <Disclosure title="Preview JSON">
216
+ <pre class="json">{serializeCookbook(current)}</pre>
217
+ </Disclosure>
218
+ </section>
122
219
 
123
220
  {#if kitchenState.needsLink}
124
221
  <Alert variant="info" title="Send to kitchen needs its link">
@@ -136,10 +233,6 @@ function confirmReset() {
136
233
  <code>smrt cookbook apply</code> on the file.
137
234
  </Alert>
138
235
  {/if}
139
- {#if error}
140
- <Alert variant="error" title="Import failed">{error}</Alert>
141
- {/if}
142
- <p class="notice" role="status" aria-live="polite">{notice}</p>
143
236
  {#if kitchenState.outcome}
144
237
  <div class="kitchen" role="status" aria-live="polite">
145
238
  {#if kitchenState.outcome.ok}
@@ -165,13 +258,40 @@ function confirmReset() {
165
258
  {/if}
166
259
  </div>
167
260
  {/if}
261
+
262
+ <section class="block replace" aria-labelledby="replace-heading" data-export-section="replace">
263
+ <h2 id="replace-heading">Replace or start over</h2>
264
+ <p class="meta">
265
+ Both replace everything listed above; download a copy first to keep it.
266
+ </p>
267
+ <div class="actions" data-export-actions="replace">
268
+ <Button variant="secondary" onclick={() => fileInput?.click()}>Import cookbook…</Button>
269
+ <Button variant="ghost" onclick={() => (confirmingReset = true)}>Reset</Button>
270
+ </div>
271
+ <p class="meta">
272
+ Import swaps this cookbook for one from a file. Reset empties it and
273
+ removes the sample records you added or changed.
274
+ </p>
275
+ <input
276
+ bind:this={fileInput}
277
+ type="file"
278
+ accept="application/json,.json"
279
+ hidden
280
+ aria-label="Cookbook file"
281
+ onchange={choose}
282
+ />
283
+ {#if error}
284
+ <Alert variant="error" title="Import failed">{error}</Alert>
285
+ {/if}
286
+ <p class="notice" role="status" aria-live="polite">{notice}</p>
287
+ </section>
168
288
  </div>
169
289
 
170
290
  <ConfirmDialog
171
291
  open={pending !== null}
172
292
  title="Replace the current cookbook?"
173
293
  message={pending
174
- ? `Importing replaces your ${describe(current)} with ${describe(pending)}.`
294
+ ? `Importing replaces ${summarizeCookbook(current)} with ${summarizeCookbook(pending)}.`
175
295
  : ''}
176
296
  confirmLabel="Replace"
177
297
  destructive
@@ -182,7 +302,7 @@ function confirmReset() {
182
302
  <ConfirmDialog
183
303
  open={confirmingReset}
184
304
  title="Reset the cookbook?"
185
- message="This removes every recipe and saved option, and the sample records you added or changed. Export first to keep a copy."
305
+ message="This removes every recipe, saved option, theme and layout change, and the sample records you added or changed. Download a copy first to keep it."
186
306
  confirmLabel="Reset"
187
307
  destructive
188
308
  onconfirm={confirmReset}
@@ -190,18 +310,35 @@ function confirmReset() {
190
310
  />
191
311
 
192
312
  <style>
313
+ @layer smrt.reset, smrt.structure, smrt.theme;
314
+ @layer smrt.theme {
193
315
  .export {
194
316
  display: grid;
195
- gap: var(--smrt-spacing-4);
317
+ gap: var(--smrt-spacing-5);
318
+ min-inline-size: 0;
196
319
  }
197
320
 
198
321
  h2,
199
- p {
322
+ p,
323
+ dl,
324
+ dd,
325
+ pre {
200
326
  margin: 0;
201
327
  }
202
328
 
329
+ h2 {
330
+ font: var(--smrt-typography-title-medium-font);
331
+ }
332
+
333
+ .block {
334
+ display: grid;
335
+ gap: var(--smrt-spacing-3);
336
+ min-inline-size: 0;
337
+ }
338
+
203
339
  .meta,
204
- .notice {
340
+ .notice,
341
+ .quiet {
205
342
  color: var(--smrt-color-on-surface-variant);
206
343
  }
207
344
 
@@ -209,9 +346,107 @@ function confirmReset() {
209
346
  display: none;
210
347
  }
211
348
 
349
+ .summary {
350
+ display: grid;
351
+ grid-template-columns: max-content minmax(0, 1fr);
352
+ gap: var(--smrt-spacing-2) var(--smrt-spacing-4);
353
+ align-items: baseline;
354
+ }
355
+
356
+ dt {
357
+ font-weight: var(--smrt-typography-weight-semibold);
358
+ white-space: nowrap;
359
+ }
360
+
361
+ .chips {
362
+ display: flex;
363
+ flex-wrap: wrap;
364
+ gap: var(--smrt-spacing-2);
365
+ margin: 0;
366
+ padding: 0;
367
+ list-style: none;
368
+ }
369
+
212
370
  .actions {
213
371
  display: flex;
214
372
  flex-wrap: wrap;
215
373
  gap: var(--smrt-spacing-2);
216
374
  }
375
+
376
+ /* The prompt: monospace, wrapped so it fits any width, scrolls vertically. */
377
+ .export :global(.prompt) {
378
+ font-family: var(--smrt-font-family-mono, ui-monospace, monospace);
379
+ white-space: pre-wrap;
380
+ overflow-wrap: anywhere;
381
+ overflow: auto;
382
+ max-block-size: 20rem;
383
+ resize: none;
384
+ }
385
+
386
+ code {
387
+ font-family: var(--smrt-font-family-mono, ui-monospace, monospace);
388
+ overflow-wrap: anywhere;
389
+ }
390
+
391
+ .command {
392
+ display: flex;
393
+ flex-wrap: wrap;
394
+ align-items: center;
395
+ gap: var(--smrt-spacing-2) var(--smrt-spacing-3);
396
+ }
397
+
398
+ .command code {
399
+ flex: 1 1 16rem;
400
+ min-inline-size: 0;
401
+ padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
402
+ border: var(--smrt-hairline);
403
+ border-radius: var(--smrt-control-radius);
404
+ background: var(--smrt-surface-sunken);
405
+ }
406
+
407
+ .json {
408
+ max-block-size: 20rem;
409
+ overflow: auto;
410
+ padding: var(--smrt-spacing-3);
411
+ border: var(--smrt-hairline);
412
+ border-radius: var(--smrt-control-radius);
413
+ background: var(--smrt-surface-sunken);
414
+ font-family: var(--smrt-font-family-mono, ui-monospace, monospace);
415
+ font-size: var(--smrt-typography-body-small-size);
416
+ white-space: pre-wrap;
417
+ overflow-wrap: anywhere;
418
+ }
419
+
420
+ /* Import and Reset: set apart from the actions above. */
421
+ .replace {
422
+ padding-block-start: var(--smrt-spacing-4);
423
+ border-block-start: var(--smrt-hairline);
424
+ }
425
+
426
+ /* Phones: one control per row, the summary in one column. */
427
+ @media (max-width: 30rem) {
428
+ .summary {
429
+ grid-template-columns: minmax(0, 1fr);
430
+ }
431
+
432
+ .actions,
433
+ .command {
434
+ flex-direction: column;
435
+ align-items: stretch;
436
+ }
437
+
438
+ .actions > :global([data-smrt-component='Button']),
439
+ .command > :global([data-smrt-component='Button']) {
440
+ inline-size: 100%;
441
+ }
442
+ }
443
+
444
+ /* Forced colours: the command and preview boxes keep a visible edge. */
445
+ @media (forced-colors: active) {
446
+ .command code,
447
+ .json {
448
+ border-color: CanvasText;
449
+ }
450
+ }
451
+ }
217
452
  </style>
@@ -1,3 +1,12 @@
1
- declare const ExportPanel: import("svelte").Component<Record<string, never>, {}, "">;
1
+ /**
2
+ * The Export tab: what the cookbook holds, a prompt that hands it to a coding
3
+ * agent, the file download (and the command the file needs), Send to kitchen
4
+ * when a kitchen is listening, and, apart from those, Import and Reset.
5
+ */
6
+ interface Props {
7
+ /** Replaces `navigator.clipboard.writeText` (tests). */
8
+ write?: (text: string) => Promise<void>;
9
+ }
10
+ declare const ExportPanel: import("svelte").Component<Props, {}, "">;
2
11
  type ExportPanel = ReturnType<typeof ExportPanel>;
3
12
  export default ExportPanel;
@@ -111,6 +111,8 @@ const id = $derived(`feature-${card.id}`);
111
111
  </li>
112
112
 
113
113
  <style>
114
+ @layer smrt.reset, smrt.structure, smrt.theme;
115
+ @layer smrt.theme {
114
116
  h3,
115
117
  h4,
116
118
  p {
@@ -122,7 +124,7 @@ const id = $derived(`feature-${card.id}`);
122
124
  align-content: start;
123
125
  gap: var(--smrt-spacing-2);
124
126
  padding: var(--smrt-spacing-4);
125
- border: 1px solid var(--smrt-color-outline-variant);
127
+ border: var(--smrt-hairline);
126
128
  border-radius: var(--smrt-radius-large);
127
129
  }
128
130
 
@@ -138,20 +140,19 @@ const id = $derived(`feature-${card.id}`);
138
140
  }
139
141
 
140
142
  h3 {
141
- font-size: var(--smrt-font-size-title-medium, 1rem);
143
+ font: var(--smrt-typography-title-medium-font); letter-spacing: var(--smrt-typography-title-medium-tracking);
142
144
  }
143
145
 
144
146
  h4 {
145
147
  color: var(--smrt-color-on-surface-variant);
146
- font-size: var(--smrt-font-size-label-medium, 0.75rem);
147
- font-weight: 600;
148
- letter-spacing: 0.04em;
148
+ font: var(--smrt-typography-label-medium-font); letter-spacing: var(--smrt-typography-label-medium-tracking);
149
+ font-weight: var(--smrt-typography-weight-semibold);
149
150
  text-transform: uppercase;
150
151
  }
151
152
 
152
153
  .meta {
153
154
  color: var(--smrt-color-on-surface-variant);
154
- font-size: var(--smrt-font-size-body-small, 0.8125rem);
155
+ font-size: var(--smrt-typography-body-small-size);
155
156
  }
156
157
 
157
158
  .plain {
@@ -160,16 +161,16 @@ const id = $derived(`feature-${card.id}`);
160
161
  margin: 0;
161
162
  padding: 0;
162
163
  list-style: none;
163
- font-size: var(--smrt-font-size-body-medium, 0.875rem);
164
+ font-size: var(--smrt-typography-body-medium-size);
164
165
  }
165
166
 
166
167
  .kind {
167
168
  margin-inline-end: var(--smrt-spacing-1);
168
169
  padding: 0 var(--smrt-spacing-2);
169
- border: 1px solid var(--smrt-color-outline-variant);
170
+ border: var(--smrt-hairline);
170
171
  border-radius: var(--smrt-radius-large);
171
172
  color: var(--smrt-color-on-surface-variant);
172
- font-size: var(--smrt-font-size-label-small, 0.6875rem);
173
+ font-size: var(--smrt-typography-label-small-size);
173
174
  }
174
175
 
175
176
  .reasons {
@@ -192,6 +193,16 @@ const id = $derived(`feature-${card.id}`);
192
193
  }
193
194
 
194
195
  .summary {
195
- font-size: var(--smrt-font-size-body-medium, 0.875rem);
196
+ font-size: var(--smrt-typography-body-medium-size);
196
197
  }
198
+
199
+ /* Forced colours: a switched-on feature's border colour is replaced, so it
200
+ gets a Highlight frame. */
201
+ @media (forced-colors: active) {
202
+ .card.selected {
203
+ border-color: Highlight;
204
+ outline: 0.125rem solid Highlight;
205
+ }
206
+ }
207
+ }
197
208
  </style>
@@ -110,6 +110,8 @@ function toggle(id: string, on: boolean) {
110
110
  </div>
111
111
 
112
112
  <style>
113
+ @layer smrt.reset, smrt.structure, smrt.theme;
114
+ @layer smrt.theme {
113
115
  .features {
114
116
  display: grid;
115
117
  gap: var(--smrt-spacing-3);
@@ -131,7 +133,7 @@ function toggle(id: string, on: boolean) {
131
133
  }
132
134
 
133
135
  .count {
134
- font-size: var(--smrt-font-size-body-medium, 0.875rem);
136
+ font-size: var(--smrt-typography-body-medium-size);
135
137
  }
136
138
 
137
139
  .notice:empty {
@@ -152,4 +154,5 @@ function toggle(id: string, on: boolean) {
152
154
  padding: 0;
153
155
  list-style: none;
154
156
  }
157
+ }
155
158
  </style>
@@ -96,7 +96,7 @@ function jsonFrom(raw: string): unknown {
96
96
  const dateOf = (stored: string): string => stored.slice(0, 10);
97
97
  </script>
98
98
 
99
- <div class="field" data-invalid={error ? '' : undefined}>
99
+ <div class="field" data-renderer={renderer} data-invalid={error ? '' : undefined}>
100
100
  {#if renderer === 'boolean'}
101
101
  <Switch
102
102
  checked={value === true}
@@ -257,6 +257,8 @@ const dateOf = (stored: string): string => stored.slice(0, 10);
257
257
  </div>
258
258
 
259
259
  <style>
260
+ @layer smrt.reset, smrt.structure, smrt.theme;
261
+ @layer smrt.theme {
260
262
  .field {
261
263
  display: grid;
262
264
  gap: var(--smrt-spacing-1);
@@ -298,10 +300,11 @@ const dateOf = (stored: string): string => stored.slice(0, 10);
298
300
  input[type='url'],
299
301
  textarea {
300
302
  padding: var(--smrt-spacing-2) var(--smrt-spacing-3);
301
- border: 1px solid var(--smrt-color-outline);
303
+ border: var(--smrt-control-border);
302
304
  border-radius: var(--smrt-radius-medium);
303
- background: var(--smrt-color-surface);
305
+ background: var(--smrt-surface-control);
304
306
  color: var(--smrt-color-on-surface);
305
307
  font: inherit;
306
308
  }
309
+ }
307
310
  </style>
@@ -17,6 +17,7 @@ import {
17
17
  import { catalogModels } from '../forms/shared.js';
18
18
  import { recipeState } from '../recipes/state.svelte.js';
19
19
  import type { FieldMapForm } from '../recipes/types.js';
20
+ import '../styles/planner-forms.css';
20
21
  import FieldInput from './FieldInput.svelte';
21
22
 
22
23
  interface FieldMapFormProps {
@@ -106,7 +107,7 @@ async function save(event: SubmitEvent) {
106
107
  {#if !loaded}
107
108
  <p>Loading...</p>
108
109
  {:else}
109
- <form onsubmit={save} novalidate>
110
+ <form class="planner-form" onsubmit={save} novalidate>
110
111
  <h3>{id === undefined ? 'New' : 'Edit'} {createNoun(active.form.label, noun, noun !== undefined)}</h3>
111
112
  {#each inputs as { field, catalogField, modelId } (field.id)}
112
113
  <FieldInput
@@ -133,14 +134,8 @@ async function save(event: SubmitEvent) {
133
134
  {/if}
134
135
 
135
136
  <style>
136
- form {
137
- display: grid;
138
- gap: var(--smrt-spacing-3);
139
- padding: var(--smrt-spacing-4);
140
- border: 1px solid var(--smrt-color-outline-variant);
141
- border-radius: var(--smrt-radius-large);
142
- }
143
-
137
+ @layer smrt.reset, smrt.structure, smrt.theme;
138
+ @layer smrt.theme {
144
139
  h3 {
145
140
  margin: 0;
146
141
  }
@@ -166,8 +161,9 @@ async function save(event: SubmitEvent) {
166
161
  }
167
162
 
168
163
  button.secondary {
169
- border: 1px solid var(--smrt-color-outline);
164
+ border: var(--smrt-control-border);
170
165
  background: transparent;
171
166
  color: var(--smrt-color-on-surface);
172
167
  }
168
+ }
173
169
  </style>
@@ -1,6 +1,7 @@
1
1
  import type { ModelRecord } from '../data/source.ts';
2
2
  import type { ActiveForm } from '../forms/active.ts';
3
3
  import type { FieldMapForm } from '../recipes/types.ts';
4
+ import '../styles/planner-forms.css';
4
5
  interface FieldMapFormProps {
5
6
  active: ActiveForm<FieldMapForm>;
6
7
  /** The row to edit; omitted when creating. */