@panphora/clayjs 1.23.0 → 1.24.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 (471) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/blockeditor/themes/light-1.css +431 -0
  3. package/dist/clay-dom.js +1 -1
  4. package/dist/clay-events.js +1 -1
  5. package/dist/clay-internals.js +1 -1
  6. package/dist/clay-options.js +1 -1
  7. package/dist/clay-router.js +1 -1
  8. package/dist/clay-ui.js +1 -1
  9. package/dist/clay-utils.js +1 -1
  10. package/dist/clay.js +1 -1
  11. package/dist/clay.standalone.js +30285 -26613
  12. package/dist/m/c-277QP5ET.js +1 -0
  13. package/dist/m/c-2BLVA6IN.js +5 -0
  14. package/dist/m/c-2OJMOUPC.js +1 -0
  15. package/dist/m/c-2PVGJFI5.js +1 -0
  16. package/dist/m/{c-AYVGD6A6.js → c-3UW5EJ77.js} +1 -1
  17. package/dist/m/{c-T5NK2TVY.js → c-42ZNV7LI.js} +1 -1
  18. package/dist/m/{c-3TLG3OLG.js → c-46LJAZZJ.js} +1 -1
  19. package/dist/m/c-47IBJGPQ.js +1 -0
  20. package/dist/m/c-5FXEKU4Y.js +1 -0
  21. package/dist/m/c-5KXDKC5G.js +1 -0
  22. package/dist/m/{c-EUGJVHDD.js → c-5RZNFTWD.js} +1 -1
  23. package/dist/m/c-65LJU2H2.js +72 -0
  24. package/dist/m/{c-NQJRVJ56.js → c-6IJEVE6B.js} +1 -1
  25. package/dist/m/{c-NW54NHKE.js → c-6LEYVQJK.js} +1 -1
  26. package/dist/m/{c-GSRLXYWL.js → c-6Q6RGFBF.js} +1 -1
  27. package/dist/m/c-6RGEQNVV.js +1 -0
  28. package/dist/m/c-7CM4GMTS.js +6 -0
  29. package/dist/m/c-7NCWENHV.js +1 -0
  30. package/dist/m/c-7V6MGMX2.js +1 -0
  31. package/dist/m/{c-LKSL4AUJ.js → c-7WZSUTYP.js} +1 -1
  32. package/dist/m/c-A4L7APIU.js +1 -0
  33. package/dist/m/c-APGHGDZM.js +1 -0
  34. package/dist/m/c-AT7GLQGV.js +34 -0
  35. package/dist/m/{c-ZRXJD4G6.js → c-B7GOFGQR.js} +1 -1
  36. package/dist/m/{c-KDXIJEEF.js → c-BGN7RCTJ.js} +1 -1
  37. package/dist/m/c-BKM46LUJ.js +1 -0
  38. package/dist/m/c-BOMQIQ3V.js +1 -0
  39. package/dist/m/{c-62HZW5DH.js → c-C5AKJVRH.js} +1 -1
  40. package/dist/m/{c-BXYSDKAN.js → c-CJ7QYEWI.js} +1 -1
  41. package/dist/m/c-CTGRDT6E.js +1 -0
  42. package/dist/m/c-CV4T65JE.js +6 -0
  43. package/dist/m/c-CVSWLX3X.js +1 -0
  44. package/dist/m/c-CZHTXGJS.js +1 -0
  45. package/dist/m/c-D7NT5S4F.js +1 -0
  46. package/dist/m/c-DD26VXAP.js +1 -0
  47. package/dist/m/{c-ANNFZFLN.js → c-DDS23EY6.js} +1 -1
  48. package/dist/m/{c-ALDVFPWL.js → c-DFKBGSN2.js} +1 -1
  49. package/dist/m/c-DIKR7H57.js +147 -0
  50. package/dist/m/c-DXPOFLEJ.js +1 -0
  51. package/dist/m/c-EDE45NM7.js +1 -0
  52. package/dist/m/c-EILLN2H2.js +1 -0
  53. package/dist/m/c-EODTTNVA.js +1 -0
  54. package/dist/m/{c-G6COVIZB.js → c-ESK4S67I.js} +1 -1
  55. package/dist/m/c-FDWR3FL7.js +1 -0
  56. package/dist/m/{c-WQZTI5P2.js → c-FEC6LGFF.js} +1 -1
  57. package/dist/m/c-FLEIU6CG.js +1 -0
  58. package/dist/m/c-FQAQRXGK.js +1 -0
  59. package/dist/m/{c-W4JCVLAB.js → c-FSQXFG5T.js} +1 -1
  60. package/dist/m/c-FVPNX2GO.js +135 -0
  61. package/dist/m/c-FYDKYW6E.js +1 -0
  62. package/dist/m/c-GNI7WHKF.js +32 -0
  63. package/dist/m/c-GO635CRU.js +3 -0
  64. package/dist/m/c-H3FNLBHN.js +2 -0
  65. package/dist/m/c-HDVH3MVC.js +72 -0
  66. package/dist/m/c-HIX5H5L7.js +1 -0
  67. package/dist/m/c-HKSLOVU4.js +1 -0
  68. package/dist/m/{c-SGRIYOAJ.js → c-HL6BLJNA.js} +1 -1
  69. package/dist/m/c-HTLYXCUH.js +1 -0
  70. package/dist/m/{c-QIR5CAKM.js → c-IUL7PU4P.js} +1 -1
  71. package/dist/m/c-IXO7EI2Q.js +1 -0
  72. package/dist/m/{c-W5E5P2TZ.js → c-JQF2EUCG.js} +1 -1
  73. package/dist/m/{c-NEL7HQW3.js → c-JWDCQL6J.js} +1 -1
  74. package/dist/m/c-KQKKIVLW.js +20 -0
  75. package/dist/m/c-LATNQ6Q5.js +1 -0
  76. package/dist/m/c-LD6UVV5R.js +1 -0
  77. package/dist/m/c-LS7IVQVW.js +1 -0
  78. package/dist/m/{c-JCOQVZYS.js → c-LSVN3OLG.js} +1 -1
  79. package/dist/m/{c-JDZDF2QM.js → c-LTSPHVAK.js} +1 -1
  80. package/dist/m/c-MFOSMAVM.js +3 -0
  81. package/dist/m/c-MJ7GVE46.js +1 -0
  82. package/dist/m/c-MP6S4AZU.js +6 -0
  83. package/dist/m/c-MQKSKQHG.js +2 -0
  84. package/dist/m/{c-UHUNXWKN.js → c-MQYEDF3Q.js} +1 -1
  85. package/dist/m/{c-IHUWUKIU.js → c-MR75YPRT.js} +1 -1
  86. package/dist/m/c-ND3Q2G2I.js +1 -0
  87. package/dist/m/c-NEQRFC4O.js +1 -0
  88. package/dist/m/{c-5FKRZNJV.js → c-NFQFV7OP.js} +1 -1
  89. package/dist/m/c-NHXOBD6A.js +1 -0
  90. package/dist/m/{c-QIKT6SKM.js → c-NICICT4P.js} +1 -1
  91. package/dist/m/c-NQAPWM7O.js +1 -0
  92. package/dist/m/{c-QUGCKMWF.js → c-NVU3DORS.js} +1 -1
  93. package/dist/m/{c-LWIDDWAR.js → c-OCYG4NBQ.js} +22 -22
  94. package/dist/m/c-OH2FPYSY.js +19 -0
  95. package/dist/m/c-OYHI67B6.js +1 -0
  96. package/dist/m/{c-R2XUODVY.js → c-OYW5MFPZ.js} +1 -1
  97. package/dist/m/{c-5B4YBZXC.js → c-P2HKMJAW.js} +1 -1
  98. package/dist/m/{c-TSBVMWAH.js → c-PCNJETUA.js} +1 -1
  99. package/dist/m/c-PDBNCJCT.js +1 -0
  100. package/dist/m/c-PGSBXHUE.js +1 -0
  101. package/dist/m/{c-5TIZ2I64.js → c-PYG2NGWU.js} +1 -1
  102. package/dist/m/c-Q26XHBLQ.js +1 -0
  103. package/dist/m/c-Q6BG3ZLO.js +1 -0
  104. package/dist/m/c-QENKN7QI.js +1 -0
  105. package/dist/m/c-QQFHEODI.js +1 -0
  106. package/dist/m/c-QTEUO2K6.js +1 -0
  107. package/dist/m/c-R23UHMXG.js +1 -0
  108. package/dist/m/c-RETTCOWO.js +10 -0
  109. package/dist/m/c-SE3SIY7Y.js +7 -0
  110. package/dist/m/{c-XX75FFNL.js → c-SGGGCIVD.js} +1 -1
  111. package/dist/m/c-SGH3UTF3.js +1 -0
  112. package/dist/m/c-SIM7Z3U7.js +1 -0
  113. package/dist/m/{c-X5LNHET5.js → c-SKMIR5HQ.js} +1 -1
  114. package/dist/m/{c-R27DWQKX.js → c-STRI73GQ.js} +1 -1
  115. package/dist/m/c-SUXHUL7U.js +1 -0
  116. package/dist/m/c-SXGEWPFC.js +10 -0
  117. package/dist/m/c-SXNSSHPP.js +1 -0
  118. package/dist/m/c-T3P3AXEW.js +1 -0
  119. package/dist/m/{c-PXLTUYZC.js → c-TFLRT5JX.js} +1 -1
  120. package/dist/m/{c-YCLU4UNT.js → c-TGIMBAWE.js} +1 -1
  121. package/dist/m/c-TGSHHFO6.js +1 -0
  122. package/dist/m/c-U4NTUVDZ.js +1 -0
  123. package/dist/m/c-UOOIF2AL.js +1 -0
  124. package/dist/m/{c-6TYGD5AB.js → c-UOUUI265.js} +1 -1
  125. package/dist/m/c-V2U3F4QX.js +1 -0
  126. package/dist/m/c-V2V5FKXX.js +1 -0
  127. package/dist/m/c-VBXRXTVS.js +26 -0
  128. package/dist/m/c-VHSMPITY.js +1 -0
  129. package/dist/m/c-VPXCXBDT.js +1 -0
  130. package/dist/m/c-WCG6AKA7.js +1 -0
  131. package/dist/m/c-WNOLMHI2.js +1 -0
  132. package/dist/m/{c-CRPIDGXC.js → c-X6MOYATI.js} +1 -1
  133. package/dist/m/{c-FQGHR32O.js → c-X75G43SZ.js} +1 -1
  134. package/dist/m/c-XB6EAIAR.js +13 -0
  135. package/dist/m/c-XMIDHEKF.js +1 -0
  136. package/dist/m/c-XUZMRQ7O.js +4 -0
  137. package/dist/m/{c-2Z22FCFK.js → c-XW5TIYYB.js} +1 -1
  138. package/dist/m/c-YDW4VCHP.js +1 -0
  139. package/dist/m/{c-QGAPG7OM.js → c-YLHTD3KX.js} +1 -1
  140. package/dist/m/c-YNIEIPBS.js +1 -0
  141. package/dist/m/c-Z4G2UK6T.js +4 -0
  142. package/dist/m/c-Z6MROEQ4.js +1 -0
  143. package/dist/m/c-ZFO5RW6G.js +2 -0
  144. package/dist/m/c-ZGCO4J3H.js +8 -0
  145. package/dist/m/c-ZKKAF4UT.js +3 -0
  146. package/dist/m/c-ZRGEN6QQ.js +4 -0
  147. package/dist/m/core/{admin-attrs-U7IJNYBG.js → admin-attrs-ONRWVXPK.js} +1 -1
  148. package/dist/m/core/{autosave-F5YQCKVL.js → autosave-TBKAAAFB.js} +1 -1
  149. package/dist/m/core/conflict-notice-FOEE6I7E.js +1 -0
  150. package/dist/m/core/draft-mode-4MCL3LYI.js +1 -0
  151. package/dist/m/core/{host-permission-6EVJGNPL.js → host-permission-X4BENZEU.js} +1 -1
  152. package/dist/m/core/{is-edit-mode-GCX6767E.js → is-edit-mode-FFHCQ5DR.js} +1 -1
  153. package/dist/m/core/{persist-CJXIL7D4.js → persist-6ILUR34S.js} +1 -1
  154. package/dist/m/core/{recovery-DRFZRJED.js → recovery-APWADU4K.js} +1 -1
  155. package/dist/m/core/save-6HT2LABE.js +1 -0
  156. package/dist/m/core/save-core-EVMNZQ4V.js +1 -0
  157. package/dist/m/core/site-edits-G4BOZMV4.js +1 -0
  158. package/dist/m/core/{unsaved-warning-HNQVTA2D.js → unsaved-warning-ITZDIZ2I.js} +1 -1
  159. package/dist/m/internals/{index-NRPNDTSA.js → index-HS3CQDFW.js} +1 -1
  160. package/dist/m/loader-GLLVDUZA.js +1 -0
  161. package/dist/m/manifest-50FF1C45.js +1 -0
  162. package/dist/m/manifest-edit-BE1A621D.js +1 -0
  163. package/dist/m/manifest.json +2072 -1811
  164. package/dist/m/page/editor-KAZDJNND.js +307 -0
  165. package/dist/m/plugins/ai-edit-LABECCSN.js +6 -0
  166. package/dist/m/plugins/{cms-H7DTMUQX.js → cms-T2HLI7JG.js} +16 -16
  167. package/dist/m/plugins/{demo-42BSYQ7T.js → demo-T7B4RIKL.js} +1 -1
  168. package/dist/m/plugins/{derive-QVI3LI3A.js → derive-6LPJOCAV.js} +1 -1
  169. package/dist/m/plugins/indicator-J4ABFARX.js +1 -0
  170. package/dist/m/plugins/{live-DCUBKXY4.js → live-PGBIEMGB.js} +1 -1
  171. package/dist/m/plugins/menu-YZL3X2AJ.js +1 -0
  172. package/dist/m/plugins/page-WOCNX2IN.js +2 -0
  173. package/dist/m/plugins/page-view-SJODOOGE.js +1 -0
  174. package/dist/m/plugins/{people-5XRNRP5U.js → people-C4TCWFOQ.js} +1 -1
  175. package/dist/m/plugins/{quickcrop-WWF5I422.js → quickcrop-X5MRIBAP.js} +2 -2
  176. package/dist/m/plugins/richclay-Y2NV44NA.js +549 -0
  177. package/dist/m/plugins/sortable-XCHQG65Z.js +1 -0
  178. package/dist/m/plugins/{source-6BKMK4PO.js → source-YK7MO23W.js} +1 -1
  179. package/dist/m/plugins/{undo-3JEYK5QY.js → undo-VLRBQNPN.js} +1 -1
  180. package/dist/m/plugins/upgrade-NNTJBSK2.js +1 -0
  181. package/dist/m/plugins/{upload-TTCQRIM5.js → upload-ZKKJV76X.js} +1 -1
  182. package/dist/m/plugins/visitor-drafts-RTZNONHT.js +20 -0
  183. package/dist/m/plugins/{visitor-drafts-owner-Z5B2OQBR.js → visitor-drafts-owner-LHUHFU3L.js} +1 -1
  184. package/dist/m/plugins/{visitor-menu-4LQMKLPP.js → visitor-menu-FY4KM2SW.js} +1 -1
  185. package/dist/m/plugins/wire-M2NR354P.js +1 -0
  186. package/dist/m/{reader-core-POFQCKRV.js → reader-core-T2S3JC4E.js} +2 -2
  187. package/dist/m/sync/live-sync-Z64YREWQ.js +1 -0
  188. package/dist/m/ui/index-MGTWOW2C.js +1 -0
  189. package/dist/m/vendor/{sap-core.vendor-OA5SKL7Q.js → sap-core.vendor-QAEPMETX.js} +1 -1
  190. package/dist/offline-manifest.json +1250 -1082
  191. package/dist/server/core.cjs +132 -109
  192. package/dist/server/page-compaction-worker.cjs +5 -5
  193. package/dist/server/rooms.mjs +3 -1
  194. package/docs/guide.md +89 -44
  195. package/entries/clay-data.js +1 -1
  196. package/entries/sap.js +1 -1
  197. package/package.json +5 -3
  198. package/src/blockeditor/themes/content.css +70 -0
  199. package/src/blockeditor/themes/light-1.css +431 -0
  200. package/src/blockeditor/themes/light-1.source.css +270 -0
  201. package/src/blockeditor/themes/light-2.css +211 -0
  202. package/src/blockeditor/themes/light-3.css +130 -0
  203. package/src/blockeditor/themes/light-4.css +299 -0
  204. package/src/core/conflict-notice.js +28 -0
  205. package/src/core/draft-mode.js +6 -0
  206. package/src/core/host-meta.js +6 -6
  207. package/src/core/is-edit-mode.js +9 -3
  208. package/src/core/mode-support.js +3 -0
  209. package/src/core/mode-switch.js +4 -4
  210. package/src/core/mode-transition.js +3 -1
  211. package/src/core/page-format-wire.js +1 -1
  212. package/src/core/page-format.js +8 -8
  213. package/src/core/save-accepted.js +6 -7
  214. package/src/core/save-core.js +52 -23
  215. package/src/core/save-failure-notice.js +37 -0
  216. package/src/core/save-feedback.js +6 -0
  217. package/src/core/save-replace.js +1 -1
  218. package/src/core/save-size.js +2 -2
  219. package/src/core/save.js +78 -15
  220. package/src/core/site-edits.js +166 -0
  221. package/src/core/unsaved-warning.js +2 -2
  222. package/src/core/upgrade-run.js +4 -4
  223. package/src/lib/ai-comment.js +23 -0
  224. package/src/lib/effect.js +8 -0
  225. package/src/lib/idb-error-code.js +20 -0
  226. package/src/live/fast-lane.js +10 -10
  227. package/src/live/local-lane.js +10 -10
  228. package/src/live/page-compaction.js +8 -8
  229. package/src/live/server-lane.js +1 -1
  230. package/src/loader-logic.js +48 -18
  231. package/src/loader.js +11 -6
  232. package/src/page/adopt-boot.js +1 -1
  233. package/src/page/adopt.js +2 -2
  234. package/src/page/ai-area.js +182 -0
  235. package/src/page/ai-preview.js +80 -0
  236. package/src/page/ai-surface.js +257 -0
  237. package/src/page/ai-tool.js +308 -145
  238. package/src/page/announce.js +2 -2
  239. package/src/page/awareness.js +18 -18
  240. package/src/page/blocks.js +35 -34
  241. package/src/page/blocksel.js +2 -2
  242. package/src/page/board-drag.js +11 -11
  243. package/src/page/board-face.js +1 -1
  244. package/src/page/board-panel.js +26 -26
  245. package/src/page/board-style.js +127 -127
  246. package/src/page/board-view.js +48 -48
  247. package/src/page/chart.js +29 -29
  248. package/src/page/checkpoint-proof.js +19 -19
  249. package/src/page/chrome.js +74 -65
  250. package/src/page/clipboard-shape.js +1 -1
  251. package/src/page/csv-import.js +4 -4
  252. package/src/page/drag.js +5 -5
  253. package/src/page/editor.js +301 -296
  254. package/src/page/export-html.js +8 -8
  255. package/src/page/features/checklist.js +36 -36
  256. package/src/page/features/export-html.js +19 -19
  257. package/src/page/features/export-markdown.js +10 -10
  258. package/src/page/features/import-markdown.js +13 -13
  259. package/src/page/features/media.js +50 -50
  260. package/src/page/features/table.js +17 -17
  261. package/src/page/features/title-cover.js +17 -17
  262. package/src/page/features/title-icon.js +7 -7
  263. package/src/page/features/toc.js +1 -1
  264. package/src/page/features/tool.js +42 -18
  265. package/src/page/format-command.js +4 -4
  266. package/src/page/format-gate.js +6 -6
  267. package/src/page/format-host.js +6 -6
  268. package/src/page/format-level.js +3 -3
  269. package/src/page/format-native-commands.js +2 -2
  270. package/src/page/highlight-slot.js +1 -1
  271. package/src/page/highlight.js +4 -4
  272. package/src/page/history-intent.js +2 -2
  273. package/src/page/image-actions.js +4 -4
  274. package/src/page/link.js +10 -10
  275. package/src/page/media.js +3 -3
  276. package/src/page/mention-picker.js +7 -7
  277. package/src/page/merge.js +1 -1
  278. package/src/page/placeholder.js +3 -3
  279. package/src/page/projection.js +11 -11
  280. package/src/page/reader-patch.js +2 -2
  281. package/src/page/recover.js +26 -26
  282. package/src/page/recovery-ui.js +28 -28
  283. package/src/page/rich/chart.js +1 -1
  284. package/src/page/rich/page-tool.js +21 -6
  285. package/src/page/rich/tool-runtime.js +3 -2
  286. package/src/page/save-projection.js +2 -2
  287. package/src/page/save-states.js +9 -9
  288. package/src/page/schema.js +9 -9
  289. package/src/page/table-style.js +21 -21
  290. package/src/page/toc-link.js +1 -1
  291. package/src/page/tool-capability.js +8 -3
  292. package/src/page/tool-transport.js +52 -0
  293. package/src/page/tool-views.js +4 -0
  294. package/src/page/tools.js +6 -1
  295. package/src/page/view.js +6 -6
  296. package/src/page/ybind/binding.js +1 -1
  297. package/src/page/ybind/conversion.js +1 -1
  298. package/src/page/ybind/layout.js +4 -4
  299. package/src/page/ybind/migrate.js +1 -1
  300. package/src/page/ybind/origins.js +2 -2
  301. package/src/page/ybind/provider.js +2 -2
  302. package/src/page/ybind/recovery-proof.js +3 -3
  303. package/src/page/ybind/recovery-replay.js +2 -2
  304. package/src/plugins/ai-edit/picker.js +235 -0
  305. package/src/plugins/ai-edit.js +220 -34
  306. package/src/plugins/indicator-chip.js +39 -34
  307. package/src/plugins/indicator.js +13 -4
  308. package/src/plugins/live.js +21 -13
  309. package/src/plugins/menu/actions.js +89 -17
  310. package/src/plugins/menu/seo.js +32 -6
  311. package/src/plugins/menu/shell-style.js +26 -7
  312. package/src/plugins/menu/shell.js +12 -7
  313. package/src/plugins/menu/variants.js +6 -10
  314. package/src/plugins/menu/visitor.js +44 -34
  315. package/src/plugins/menu.js +3 -2
  316. package/src/plugins/page-view.js +2 -2
  317. package/src/plugins/page.js +257 -98
  318. package/src/plugins/sortable.js +7 -0
  319. package/src/plugins/upgrade.js +2 -1
  320. package/src/plugins/visitor-drafts/commit.js +303 -0
  321. package/src/plugins/visitor-drafts/idb.js +221 -0
  322. package/src/plugins/visitor-drafts/intro-style.js +1 -1
  323. package/src/plugins/visitor-drafts/intro.js +8 -25
  324. package/src/plugins/visitor-drafts/prompt.js +30 -4
  325. package/src/plugins/visitor-drafts/session.js +345 -0
  326. package/src/plugins/visitor-drafts/store.js +351 -32
  327. package/src/plugins/visitor-drafts.js +158 -27
  328. package/src/server/checkpoint/index.js +8 -8
  329. package/src/server/rooms/index.js +2 -2
  330. package/src/server/rooms/live-data-rooms.js +35 -35
  331. package/src/server/rooms/live-page-history.js +2 -2
  332. package/src/server/rooms/page-admission.js +34 -6
  333. package/src/server/rooms/page-conversion.js +1 -1
  334. package/src/server/rooms/page-lineage.js +4 -4
  335. package/src/server/rooms/page-rebase.js +4 -4
  336. package/src/server/rooms/page-room-conformance.js +14 -14
  337. package/src/server/rooms/page-state.js +2 -2
  338. package/src/server/rooms/page-write-admission.js +7 -7
  339. package/src/server/rooms/page-write-guard.js +3 -3
  340. package/src/sync/data-guard-notice.js +265 -0
  341. package/src/sync/live-sync.js +54 -11
  342. package/src/sync/page-relay.js +4 -4
  343. package/src/sync/presence-store.js +1 -1
  344. package/src/sync/presence-target.js +3 -3
  345. package/src/sync/presence.js +1 -1
  346. package/src/sync/stream.js +54 -13
  347. package/src/sync/wire-profile.js +8 -3
  348. package/src/ui/bevel.js +1 -1
  349. package/src/ui/index.js +9 -10
  350. package/src/ui/skins/cms.js +1 -1
  351. package/src/ui/skins/quickcrop.js +1 -1
  352. package/src/ui/skins/richclay.js +2 -2
  353. package/src/ui/toast-lazy.js +12 -3
  354. package/src/ui/toast.js +9 -3
  355. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  356. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  357. package/src/vendor/hypercms.vendor.js +16 -16
  358. package/src/vendor/richclay.vendor.js +48 -20
  359. package/src/vendor/sap-core.vendor.js +1 -1
  360. package/tool-generation/context.md +44 -0
  361. package/tool-generation/system.md +23 -0
  362. package/dist/m/c-24PMUJIV.js +0 -2
  363. package/dist/m/c-2AYVYEI4.js +0 -1
  364. package/dist/m/c-2AZDZWCK.js +0 -1
  365. package/dist/m/c-2L6O5PDS.js +0 -6
  366. package/dist/m/c-2RYOGUQM.js +0 -2
  367. package/dist/m/c-2ZVOEU4M.js +0 -1
  368. package/dist/m/c-37NAONZA.js +0 -1
  369. package/dist/m/c-3GJ4SDE2.js +0 -1
  370. package/dist/m/c-3O7OBDCM.js +0 -1
  371. package/dist/m/c-5OJ7YF2N.js +0 -1
  372. package/dist/m/c-5WMXEKFH.js +0 -135
  373. package/dist/m/c-6RDOKLN7.js +0 -1
  374. package/dist/m/c-A4IP6MBC.js +0 -1
  375. package/dist/m/c-A6L3FMUS.js +0 -1
  376. package/dist/m/c-ATKAOH23.js +0 -1
  377. package/dist/m/c-B6O7AJYG.js +0 -32
  378. package/dist/m/c-BCGWJYXW.js +0 -1
  379. package/dist/m/c-BGKAT2FL.js +0 -7
  380. package/dist/m/c-BYTKL6UX.js +0 -1
  381. package/dist/m/c-DHBRA6DL.js +0 -1
  382. package/dist/m/c-DTMZ3ZHI.js +0 -1
  383. package/dist/m/c-E3ZXARWA.js +0 -1
  384. package/dist/m/c-EK63G3CG.js +0 -1
  385. package/dist/m/c-ELYIIYRS.js +0 -1
  386. package/dist/m/c-EXKHPOVC.js +0 -3
  387. package/dist/m/c-FCSZ3DC5.js +0 -20
  388. package/dist/m/c-FTWGYI5E.js +0 -1
  389. package/dist/m/c-G4PWUDD5.js +0 -1
  390. package/dist/m/c-GBKB5WDL.js +0 -2
  391. package/dist/m/c-GBTVCJXC.js +0 -1
  392. package/dist/m/c-GC2HICFJ.js +0 -1
  393. package/dist/m/c-GRWMD6O5.js +0 -1
  394. package/dist/m/c-HCNWJE4A.js +0 -4
  395. package/dist/m/c-HG2C77BM.js +0 -4
  396. package/dist/m/c-JGHEACGK.js +0 -1
  397. package/dist/m/c-JGLX6TBK.js +0 -1
  398. package/dist/m/c-JNRKHYWO.js +0 -1
  399. package/dist/m/c-KBS3UV6B.js +0 -1
  400. package/dist/m/c-KQ7E3PYY.js +0 -1
  401. package/dist/m/c-L3F5ZLIV.js +0 -1
  402. package/dist/m/c-L4KMT7FO.js +0 -6
  403. package/dist/m/c-L5VFATT6.js +0 -1
  404. package/dist/m/c-LCYPMULG.js +0 -1
  405. package/dist/m/c-LIGQYZ7M.js +0 -6
  406. package/dist/m/c-LKIWEPAV.js +0 -1
  407. package/dist/m/c-MPSKIU2I.js +0 -1
  408. package/dist/m/c-N7JPUPGC.js +0 -1
  409. package/dist/m/c-NK33MMYF.js +0 -1
  410. package/dist/m/c-NQLWOHLH.js +0 -10
  411. package/dist/m/c-NTHUTABN.js +0 -1
  412. package/dist/m/c-NWX3MFT4.js +0 -1
  413. package/dist/m/c-OKXI52N7.js +0 -1
  414. package/dist/m/c-OPONJ2UK.js +0 -128
  415. package/dist/m/c-OWQWOGYI.js +0 -1
  416. package/dist/m/c-P6Q2ZTFQ.js +0 -1
  417. package/dist/m/c-QEN6HZCA.js +0 -1
  418. package/dist/m/c-QIXT3Q7C.js +0 -28
  419. package/dist/m/c-QM5LXRDT.js +0 -9
  420. package/dist/m/c-QYYUVLVG.js +0 -1
  421. package/dist/m/c-RQRMPZXD.js +0 -1
  422. package/dist/m/c-SBCBXKOZ.js +0 -26
  423. package/dist/m/c-SKF5HL4I.js +0 -4
  424. package/dist/m/c-SRPC3VBE.js +0 -1
  425. package/dist/m/c-TANBH7FI.js +0 -1
  426. package/dist/m/c-THGQQDYY.js +0 -1
  427. package/dist/m/c-UD5JZTDL.js +0 -1
  428. package/dist/m/c-UDGEFWNU.js +0 -1
  429. package/dist/m/c-UGNV5MFB.js +0 -1
  430. package/dist/m/c-VIRFF5HG.js +0 -8
  431. package/dist/m/c-VJYEVRYK.js +0 -1
  432. package/dist/m/c-VQCEOGKH.js +0 -13
  433. package/dist/m/c-VYJ7O4RI.js +0 -34
  434. package/dist/m/c-W7IPVCAA.js +0 -1
  435. package/dist/m/c-WBGWGOM7.js +0 -1
  436. package/dist/m/c-WJ5DRBHT.js +0 -72
  437. package/dist/m/c-X5WC4PX5.js +0 -1
  438. package/dist/m/c-XCFQEWW6.js +0 -3
  439. package/dist/m/c-XGH4GS2T.js +0 -1
  440. package/dist/m/c-XLQ3BDMM.js +0 -1
  441. package/dist/m/c-ZQXNHZZT.js +0 -72
  442. package/dist/m/core/conflict-notice-42H4ASLA.js +0 -1
  443. package/dist/m/core/draft-mode-WSQAT67S.js +0 -1
  444. package/dist/m/core/save-ESPSQPLV.js +0 -1
  445. package/dist/m/core/save-core-6SQHOR6W.js +0 -1
  446. package/dist/m/loader-FBDE2UAB.js +0 -1
  447. package/dist/m/manifest-1D2F5CA5.js +0 -1
  448. package/dist/m/manifest-edit-F7CC5CFD.js +0 -1
  449. package/dist/m/page/editor-OSKOW6RS.js +0 -304
  450. package/dist/m/plugins/ai-edit-VV4QTINH.js +0 -6
  451. package/dist/m/plugins/indicator-WVPGMOZ7.js +0 -1
  452. package/dist/m/plugins/menu-Q4MFFQ6E.js +0 -1
  453. package/dist/m/plugins/page-OAWUJQEL.js +0 -2
  454. package/dist/m/plugins/page-view-DZ26ZDDQ.js +0 -1
  455. package/dist/m/plugins/richclay-PGOOJ4OK.js +0 -517
  456. package/dist/m/plugins/sortable-266HY6TR.js +0 -1
  457. package/dist/m/plugins/upgrade-BNZVFHMZ.js +0 -1
  458. package/dist/m/plugins/visitor-drafts-2AUYKAIJ.js +0 -20
  459. package/dist/m/plugins/wire-W2EV36KZ.js +0 -1
  460. package/dist/m/sync/live-sync-XGUPHI3I.js +0 -1
  461. package/dist/m/ui/index-VGYAKAKI.js +0 -1
  462. package/dist/page/themes/light-1.css +0 -431
  463. package/src/page/themes/content.css +0 -70
  464. package/src/page/themes/light-1.css +0 -431
  465. package/src/page/themes/light-1.source.css +0 -270
  466. package/src/page/themes/light-2.css +0 -211
  467. package/src/page/themes/light-3.css +0 -130
  468. package/src/page/themes/light-4.css +0 -299
  469. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  470. /package/dist/m/plugins/{quickcrop-WWF5I422.js.LEGAL.txt → quickcrop-X5MRIBAP.js.LEGAL.txt} +0 -0
  471. /package/dist/m/plugins/{richclay-PGOOJ4OK.js.LEGAL.txt → richclay-Y2NV44NA.js.LEGAL.txt} +0 -0
@@ -3,4 +3,4 @@ import"../c-VHNSBD2M.js";var Qn=(()=>{var ue=Object.defineProperty,dt=Object.get
3
3
  `)),a}error(e,t,r={}){let n=this.block(e,t,r);return this.errors.push(n),n}warn(e,t,r={}){let n=this.block(e,t,r);return this.warnings.push(n),n}report(){return{ok:this.errors.length===0&&!this.halted,app:this.appName,halted:this.halted,haltReason:this.haltReason,errors:this.errors.slice(),warnings:this.warnings.slice()}}};function K(e,t){e&&e.getAttribute("sap-error")!==t&&e.setAttribute("sap-error",t)}function Et(e){e&&e.hasAttribute("sap-error")&&e.removeAttribute("sap-error")}function Se(e,t){let r=null,n=3;for(let a of t){let l=kt(e,a);l<n&&(n=l,r=a)}return r}function kt(e,t){let r=e.length,n=t.length,a=Array.from({length:r+1},(l,o)=>[o,...new Array(n).fill(0)]);for(let l=0;l<=n;l++)a[0][l]=l;for(let l=1;l<=r;l++)for(let o=1;o<=n;o++)a[l][o]=Math.min(a[l-1][o]+1,a[l][o-1]+1,a[l-1][o-1]+(e[l-1]===t[o-1]?0:1));return a[r][n]}var xt=new Set(ce),St={readonly:"readOnly",novalidate:"noValidate"},Nt=0,Ne=new WeakMap;function $t(e,t="sap"){let r=e.getAttribute("data-id");if(r)return r;if(e.id)return e.id;let n=Ne.get(e);return n||(n=`${t}-${(Nt++).toString(36)}`,Ne.set(e,n)),n}function Lt(e){let t=[];for(let r=e.firstElementChild;r;r=r.nextElementSibling)r.hasAttribute("item")&&!r.hasAttribute("template")&&!r.hasAttribute("cms-template")&&t.push(r);return t}function $e(e,t){if(!e||!t)return null;let r=[...e.querySelectorAll(`template[items="${t}"]`)].find(a=>a.closest("[sap]")===e),n=r&&r.content.firstElementChild;return n&&n.hasAttribute("item")?n:null}function Tt(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.hasAttribute("item")&&t.hasAttribute("template"))return t;return $e(e.closest("[sap]"),e.getAttribute("items"))}function Le(e){let t=[];if(!e)return t;for(let r of e.trim().split(/\s+/)){if(!r)continue;let n=r,a,l=n.indexOf("=");l>=0&&(a=n.slice(l+1),n=n.slice(0,l));let o=n.split(":"),f=o[0],u="string",c=!1;for(let p of o.slice(1))p==="num"?u="num":p==="bool"?u="bool":p==="presence"?u="presence":p==="transient"&&(c=!0);let i=f,d=i.startsWith("data-")&&i.length>5?i.slice(5).replace(/-([a-z])/g,(p,k)=>k.toUpperCase()):i;t.push({name:d,attr:i,type:u,default:a,transient:c})}return t}function fe(e,t){if(t==="num"){if(e==null||e==="")return 0;let r=Number(e);return Number.isNaN(r)?0:r}return t==="bool"?e==="true"||e===""||e==="1":e??""}function _t(e,t){return t==="bool"?e?"true":"false":e==null?"":String(e)}function Te(e,t){return xt.has(t)&&typeof e[St[t]||t]=="boolean"}function _e(e,t){return t.type==="presence"||t.type!=="num"&&Te(e,t.attr||t.name)}function Ce(e){return e.default!=null?e.default:e.type==="num"?"0":e.type==="bool"?"false":""}function Ct(e,t){let r=t.attr||t.name,n=e._sapTransient||(e._sapTransient={});if(!(t.name in n)){let a=e.getAttribute(r);a==null&&(a=Ce(t)),n[t.name]=fe(a,t.type)}return e.hasAttribute(r)&&e.removeAttribute(r),n[t.name]}function R(e){if(typeof e=="number")return e;if(e==null||e==="")return 0;let t=Number(typeof e=="string"?e.replace(/[$,%\s]/g,""):e);return Number.isNaN(t)?0:t}function J(e,t){return Array.isArray(e)?t==null?e:e.map(r=>typeof t=="function"?t(r):r?.[t]):[]}function Re(e,t){return J(e,t).reduce((r,n)=>r+R(n),0)}function Rt(e,t){return Array.isArray(e)?t==null?e.length:e.reduce((r,n)=>r+(t(n)?1:0),0):0}function jt(e,t){let r=J(e,t);return r.length?Re(e,t)/r.length:0}function Mt(e,t){let r=J(e,t).filter(n=>n!=null&&n!=="");return r.length?r.every(n=>typeof n=="number"||!Number.isNaN(Number(n)))?Math.min(...r.map(Number)):r.reduce((n,a)=>String(n)<=String(a)?n:a):0}function Pt(e,t){let r=J(e,t).filter(n=>n!=null&&n!=="");return r.length?r.every(n=>typeof n=="number"||!Number.isNaN(Number(n)))?Math.max(...r.map(Number)):r.reduce((n,a)=>String(n)>=String(a)?n:a):0}function Wt(e,t,r){let n=R(e)===1?t:r??t+"s";return`${e} ${n}`}function Ot(e,t){let r=new Date(e),n=new Date(t);return Number.isNaN(+r)||Number.isNaN(+n)?0:Math.round((n-r)/864e5)}function j(e){return typeof e=="number"?e:Number(e)}var Q={usd:e=>"$"+j(e).toLocaleString("en-US",{maximumFractionDigits:0}),usd2:e=>"$"+j(e).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),pct:e=>Math.round(j(e))+"%",pct1:e=>j(e).toFixed(1)+"%",int:e=>Math.round(j(e)).toLocaleString("en-US"),num:e=>j(e).toLocaleString("en-US"),num2:e=>j(e).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}),compact:e=>j(e).toLocaleString("en-US",{notation:"compact"}),date:e=>{let t=new Date(e);return Number.isNaN(+t)?String(e):t.toLocaleDateString("en-US")},clock:e=>{let t=j(e),r=Math.floor(t/100),n=r%10,a=Math.floor(r/10)%60;return`${Math.floor(r/600)}:${String(a).padStart(2,"0")}.${n}`}},Dt=new Set(["usd","usd2","pct","pct1","int","num","num2","compact","clock"]);function Bt(e,t){if(!e)return t==null?"":String(t);let r=Q[e];if(typeof r!="function"){let n=new Error(`unknown format "${e}"`);throw n.sapCode="E22",n}if(Dt.has(e)){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n)){let a=new Error(`format "${e}" received ${typeof t=="string"?`"${t}"`:t}`);throw a.sapCode="E22",a}}return r(t)}var Ft=["state","item","el","root","fmt","num","sum","count","avg","min","max","plural","days"],Z=new Map,je=/\bstate\.([a-z][a-z0-9_]*)/g,Me=/\bitem\.([a-z][a-z0-9_]*)/g;function Ht(e){let t=new Set,r=new Set,n;for(je.lastIndex=0;n=je.exec(e);)t.add(n[1]);for(Me.lastIndex=0;n=Me.exec(e);)r.add(n[1]);return{state:t,item:r}}function M(e,t=!1){let r=(t?"!":"")+e,n=Z.get(r);if(n)return n;Z.size>512&&Z.clear();try{let a=t?`"use strict";
4
4
  ${e}`:`"use strict"; return (${e});`;n={fn:new Function(...Ft,a),src:e,statement:t,deps:Ht(e),error:null}}catch(a){n={fn:null,src:e,statement:t,deps:{state:new Set,item:new Set},error:a}}return Z.set(r,n),n}function It(e,t,r,n,a){if(e.error)throw e.error;return e.fn(t,r,n,a,Q,R,Re,Rt,jt,Mt,Pt,Wt,Ot)}var U={},G=null,Pe=!0,ee=!1;function zt(){U={}}function qt(e){let t=ee;return G?We(G.takeRecords()):Pe&&Gt(),ee=!!G&&e.getRootNode()===document,t}function Ut(e){ee=e}function Gt(){if(typeof document>"u"||typeof MutationObserver!="function"){Pe=!1;return}G=new MutationObserver(We),G.observe(document,{attributes:!0,childList:!0,subtree:!0})}function We(e){for(let t of e)if(t.type==="attributes")t.target._sapPlan&&(t.target._sapPlan=null);else for(let r of t.addedNodes)r.nodeType===1&&Oe(r)}function Oe(e){e._sapPlan&&(e._sapPlan=null);for(let t=e.firstElementChild;t;t=t.nextElementSibling)Oe(t)}function de(e){if(!ee)return De(e);let t=e._sapPlan;return t&&t.gen===U?t:e._sapPlan=De(e)}function De(e){let t={gen:U,inert:e.tagName==="TEMPLATE",template:!1,cms:!1,item:!1,scope:!1,items:!1,detail:!1,each:!1,boundary:null,bind:null,transient:!1,decls:null,calcs:null,paints:null,effects:null,invalids:null};for(let r of e.attributes){let n=r.name,a=r.value,l=n.indexOf(":");if(l<0){switch(n){case"sap-ignore":t.inert=!0;break;case"cms-template":t.inert=!0,t.cms=!0;break;case"template":t.inert=!0,t.template=!0;break;case"item":t.item=!0;break;case"scope":t.scope=!0;break;case"items":t.items=!0;break;case"detail":t.detail=!0;break;case"each":t.each=!0;break;case"bind":t.bind=a;break;case"transient":t.transient=!0;break;case"state":t.decls=Le(a);break;case"text":(t.paints||(t.paints=[])).push({kind:"text",fmt:null,entry:M(a)});break;case"show":(t.paints||(t.paints=[])).push({kind:"show",entry:M(a)});break;case"effect":(t.effects||(t.effects=[])).push({entry:M(a,!0)});break;case"invalid":(t.invalids||(t.invalids=[])).push({entry:M(a)});break}continue}let o=n.slice(0,l),f=n.slice(l+1);switch(o){case"calc":(t.calcs||(t.calcs=[])).push({name:f,entry:M(a)});break;case"text":(t.paints||(t.paints=[])).push({kind:"text",fmt:f,entry:M(a)});break;case"attr":(t.paints||(t.paints=[])).push({kind:"attr",arg:f,entry:M(a)});break;case"class":(t.paints||(t.paints=[])).push({kind:"class",arg:f,entry:M(a)});break;case"css":(t.paints||(t.paints=[])).push({kind:"css",arg:f,entry:M(a)});break;case"show-when":case"option":(t.paints||(t.paints=[])).push({kind:"when",match:"show",field:f,values:a.split("|")});break;case"hide-when":(t.paints||(t.paints=[])).push({kind:"when",match:"hide",field:f,values:a.split("|")});break;case"option-not":(t.paints||(t.paints=[])).push({kind:"when",match:"show-not",field:f,values:a.split("|")});break}}return t.boundary=t.scope?"scope":t.items?"items":t.detail?"detail":t.each?"each":null,Yt(t)?Xt():t}var te=null;function Xt(){return(!te||te.gen!==U)&&(te=Object.freeze({gen:U,inert:!1,template:!1,cms:!1,item:!1,scope:!1,items:!1,detail:!1,each:!1,boundary:null,bind:null,transient:!1,decls:null,calcs:null,paints:null,effects:null,invalids:null})),te}function Yt(e){return!e.inert&&!e.item&&e.boundary===null&&e.bind===null&&!e.transient&&!e.decls&&!e.calcs&&!e.paints&&!e.effects&&!e.invalids}var D=new WeakMap,B=new WeakMap,F=null,P=!1;function Vt(){D=new WeakMap,B=new WeakMap}function Be(e){for(let t of e){let r=t.target.nodeType===1?t.target:t.target.parentElement;for(let n=r;n;n=n.parentElement)B.delete(n);if(t.type==="attributes"){D.delete(t.target);continue}for(let n=r;n;n=n.parentElement)D.delete(n);for(let n of t.addedNodes||[])if(n.nodeType===1){D.delete(n),B.delete(n);for(let a of n.querySelectorAll("*"))D.delete(a),B.delete(a)}}}function Kt(){return P}function Jt(e){return P?B.get(e):void 0}function Qt(e,t){P&&B.set(e,t)}function Zt(e){B.delete(e)}function en(e){let t=P;return!F&&typeof MutationObserver=="function"&&(F=new MutationObserver(Be),F.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),F&&Be(F.takeRecords()),P=!!F&&e.getRootNode()===document,t}function tn(e){P=e}function Fe(e){let t=D.get(e);return t||D.set(e,t={attrs:new Map,hasText:!1,text:""}),t}function nn(e,t){if(!P)return e.getAttribute(t);let r=Fe(e);return r.attrs.has(t)||r.attrs.set(t,e.getAttribute(t)),r.attrs.get(t)}function rn(e){if(!P)return e.textContent;let t=Fe(e);return t.hasText||(t.text=e.textContent,t.hasText=!0),t.text}function He(e){return(e.getAttribute("type")||"text").toLowerCase()}function pe(e){let t=e.tagName;if(t==="INPUT"){let r=He(e);r==="checkbox"||r==="radio"?e.checked?e.setAttribute("checked",""):e.removeAttribute("checked"):e.setAttribute("value",e.value);return}if(t==="TEXTAREA"){e.setAttribute("data-value",e.value);return}if(t==="SELECT"){let r=e.options;for(let n=0;n<r.length;n++)r[n].selected?r[n].setAttribute("selected",""):r[n].removeAttribute("selected")}}function an(e,t=e){let r=e.tagName;if(r==="INPUT"){let n=He(e);n==="checkbox"||n==="radio"?t.checked?e.hasAttribute("checked")||e.setAttribute("checked",""):e.removeAttribute("checked"):t.value!==(e.getAttribute("value")??"")&&e.setAttribute("value",t.value);return}if(r==="TEXTAREA"){let n=t.value.startsWith(`
5
5
  `)?`
6
- `+t.value:t.value;e.textContent!==n&&(e.textContent=n),e.removeAttribute("data-value");return}if(r==="SELECT"){let n=e.options,a=t.options;for(let l=0;l<n.length;l++)a[l]&&a[l].selected?n[l].hasAttribute("selected")||n[l].setAttribute("selected",""):n[l].removeAttribute("selected")}}function Ie(e){e.tagName!=="TEXTAREA"||!e.hasAttribute("data-value")||e!==e.ownerDocument.activeElement&&(e.textContent=e.getAttribute("data-value"),e.removeAttribute("data-value"))}function T(e){if(typeof window>"u")return null;let t=window.clay,r=window.hyperclay;return e==="consent"?t?.confirm||r?.consent||null:t?.[e]||r?.[e]||null}function on(){let e=T("visitorDrafts");return!!(e&&typeof e.restored=="function"&&e.restored()?.restored)}var ze=["clay:mutation-ready","hyperclay:mutation-ready"],ln=["clay:sync-applied","hyperclay:livesync-applied"],sn=["clay:ready","hyperclay:ready"],un=["clay:route"],cn=["clay:modechange"];function ne(e,t,r){let n=null,a=l=>{n!==null&&n!==l.type||(n=l.type,queueMicrotask(()=>{n=null}),r(l))};for(let l of t)e.addEventListener(l,a);return()=>{for(let l of t)e.removeEventListener(l,a)}}function fn(e){let t=typeof window<"u"&&window.clay&&window.clay.ready;t&&typeof t.then=="function"?t.then(()=>e(),()=>e()):e()}function qe(e){let t=T("region");return!t||typeof t.resolveRegionPolicy!="function"||typeof t.skipForPolicy!="function"?!1:t.skipForPolicy(t.resolveRegionPolicy(e),void 0,["no-save","freeze"])}function Ue(){return typeof window>"u"?null:window.clay?.modeLifecycle||null}function me(e,{transient:t=!1}={}){if(t)return!0;let r=Ue();return typeof r?.canWrite!="function"||T("region")?.resolveRegionPolicy?.(e)?.persist==="none"?!0:r.canWrite()}function dn(e,t){if(typeof t!="function")throw new Error("Sap.batch(label, fn): fn must be a function");let r=T("undo");r&&r.flush&&r.flush();let n=t();if(n&&typeof n.then=="function")throw new Error("Sap.batch fn must be synchronous (it returned a promise)");return r&&r.commitCaptured&&r.commitCaptured(e),n}function pn(e){if(typeof window>"u"||typeof document>"u")return;let t=()=>{let p=!1;for(let k of e.apps())k.root.isConnected?e.runNow(k,"platform"):p=!0;p&&e.pruneDisconnected(),e.remountIfPresent()},r=T("derived"),n=r&&typeof r.register=="function"?r.register(t):null,a=typeof n=="function"?null:ne(document,ln,t),l=ne(document,un,t),o=null,f=!1,u=()=>{let p=o;o=null,p&&(p[2](),p[3]())},c=()=>{if(f)return!1;let p=T("undo"),k=Ue()?.state?.generation;if(o&&o[0]===p&&o[1]===k)return!0;if(u(),!p||typeof p.on!="function")return!1;let L=p.on("undo",t);if(typeof L!="function")return!1;let _=p.on("redo",t);return typeof _!="function"?(L(),!1):(o=[p,k,L,_],!0)};c();let i=[ze,sn,cn].map(p=>ne(document,p,c)),d=T("ready");return d&&typeof d.then=="function"&&d.then(c,()=>{}),()=>{f=!0,typeof n=="function"&&n(),a&&a(),l();for(let p of i)p();u()}}function Ge(e){let t=e.tagName;if(t==="INPUT"){let r=(e.getAttribute("type")||"text").toLowerCase();return r==="checkbox"?"checkbox":r==="radio"?"radio":r==="number"||r==="range"?"number":r==="hidden"?"hidden":"text"}return t==="TEXTAREA"?"text":t==="SELECT"?e.multiple?"select-multiple":"select-one":"leaf"}function mn(e){if(e.validity&&e.validity.badInput)return e.hasAttribute("value")?Number(e.getAttribute("value"))||0:e._sapLastGood??0;if(e.value==="")return 0;let t=Number(e.value);return Number.isNaN(t)?e._sapLastGood??0:(e._sapLastGood=t,t)}function Xe(e,t){switch(t){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":return mn(e);case"select-one":return e.value;case"select-multiple":return[...e.selectedOptions].map(r=>r.value);case"hidden":case"text":return e.value;case"leaf":return e.textContent;default:return e.value}}function hn(e,t,r){switch(t){case"checkbox":e.checked=!!r;break;case"radio":e.checked=String(e.value)===String(r);break;case"number":case"text":case"hidden":e.value=r==null?"":String(r);break;case"select-one":e.value=r==null?"":String(r);break;case"select-multiple":{let n=new Set((Array.isArray(r)?r:[r]).map(String));for(let a of e.options)a.selected=n.has(a.value);break}case"leaf":e.textContent=r==null?"":String(r);break;default:e.value=r==null?"":String(r)}}function Ye(e){if(e.hasAttribute("transient")){e.removeAttribute("value"),e.removeAttribute("checked"),e.removeAttribute("data-value");return}qe(e)||pe(e)}function bn(e){e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}function gn(e,t){return Xe(e,t)}function yn(e){let t=Ge(e);return{el:e,kind:t,read(){return Xe(e,t)},write(r,n={}){hn(e,t,r),n.noMirror||Ye(e),n.silent||bn(e)},mirror(){Ye(e)}}}var W=null,re=!1,H=null;function Ve(e){let t=null;return{kind:"hub",subscribe(r){let n=e.onAnyChange({debounce:0,require:"observed"},r);typeof n=="function"&&(t=n)},suppress(r){e.pause();try{return r()}finally{e.resume()}},teardown(){if(t){try{t()}catch{}t=null}}}}function vn(){let e=null;return{kind:"native",subscribe(t){e=new MutationObserver(n=>t(wn(n)));let r=typeof document<"u"&&document.body||typeof document<"u"&&document.documentElement;r&&e.observe(r,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},suppress(t){let r=T("undo");r&&r.pause&&r.pause();try{return t()}finally{e&&e.takeRecords(),r&&r.resume&&r.resume()}},teardown(){e&&(e.disconnect(),e=null)}}}function wn(e){let t=[];for(let r of e)if(r.type==="attributes"){let n=r.target;n&&n.nodeType===1&&!ae(n)&&t.push({type:"attribute",element:n})}else if(r.type==="characterData"){let n=r.target&&r.target.parentElement;n&&!ae(n)&&t.push({type:"characterData",element:n})}else if(r.type==="childList"){for(let n of r.addedNodes)if(!(n.nodeType!==1||ae(n))&&(t.push({type:"add",element:n}),n.querySelectorAll))for(let a of n.querySelectorAll("*"))ae(a)||t.push({type:"add",element:a});for(let n of r.removedNodes)n.nodeType===1&&t.push({type:"remove",element:n,parent:r.target})}return t}function ae(e){return!!(e.closest&&e.closest("[sap-ignore],[template],[cms-template]"))}function An(e,t){e.pruneDisconnected();let r=new Set,n=!1;for(let a of t){let l=a.type==="remove"?a.parent:a.element,o=l&&e.appFor(l);o&&r.add(o),a.type==="add"&&a.element&&a.element.nodeType===1&&a.element.hasAttribute&&a.element.hasAttribute("sap")&&!(e.isRegistered&&e.isRegistered(a.element))&&(n=!0)}n&&e.remountIfPresent();for(let a of r)a.root.isConnected&&e.schedule(a,"mutation")}function En(e){if(W)return W.suppress(e);let t=T("undo");if(t&&t.pause&&t.resume){t.pause();try{return e()}finally{t.resume()}}return e()}function he(e,t){re=!0,W=e,e.subscribe(r=>An(t,r))}function Ke(e){if(re||typeof window>"u"||typeof document>"u")return;let t=T("Mutation");if(t&&typeof t.onAnyChange=="function"){he(Ve(t),e);return}typeof MutationObserver=="function"&&(he(vn(),e),H=ne(document,ze,function(){let r=T("Mutation");r&&(H(),H=null,W&&W.teardown(),re=!1,he(Ve(r),e))}))}function Je(){if(W)try{W.teardown()}catch{}H&&typeof document<"u"&&H(),W=null,re=!1,H=null}var kn=new Set(ce),oe=Object.freeze([]),O=[],Qe={},Ze={};function xn(e){O.includes(e)||(O.push(e),e.boundary&&Object.assign(Qe,e.boundary),e.paintKinds&&Object.assign(Ze,e.paintKinds))}function et(e,t={}){if(t.breaker){e.diag.error("E26",e.root,{problem:"recompute loop halted after 50 passes; recent triggers: "+(e._breakerRing||[]).join(", ")}),K(e.root,"loop");return}t.full&&(zt(),Vt());let r=qt(e.root);try{En(()=>Sn(e,t))}finally{Ut(r)}e._viewsChanged&&(e._viewsChanged=!1,e.root.dispatchEvent(new CustomEvent("sap:views-updated",{bubbles:!0})))}function Sn(e,t){let r=e.root,n={},a=[],l=[],o=new Set;e.diag.errors=[];let f={root:n,state:n,item:null,ownerEl:r,projection:!1},u=null;function c(s,h,b=!1){let m=h.attr||h.name,g=b?nn(s,m):s.getAttribute(m);return g==null&&(g=Ce(h),l.push({el:s,name:h.name,attr:m,value:_t(fe(g,h.type),h.type)})),fe(g,h.type)}function i(s,h,b,m){let g=h.decls;if(!g)return;let A=!!m.item&&!m.projection&&!m.view;for(let S of g){if(S.transient){u&&(u.pure=!1),b[S.name]=Ct(s,S);continue}if(_e(s,S)){b[S.name]=s.hasAttribute(S.attr);continue}b[S.name]=c(s,S,A)}}function d(s,h,b){let m=h.bind,g=b.item||b.state,A=Ge(s);u&&(A!=="leaf"||h.transient)&&(u.pure=!1),A==="radio"?(m in g||(g[m]=""),s.checked&&(g[m]=s.value)):A==="leaf"&&b.item&&!b.projection&&!b.view?g[m]=rn(s):g[m]=gn(s,A),h.transient&&(s.removeAttribute("value"),s.removeAttribute("checked"))}function p(s,h,b){let m=!1;if(h.paints){m=!0;for(let g of h.paints)g.kind==="when"&&o.add(g.field),a.push({def:g,el:s,ctx:b})}for(let g of O)g.collect&&g.collect(w,s,h,b)!==!1&&(m=!0);u&&m&&(h.calcs&&(u.pure=!1),u.collects.push(s,h))}function k(s,h,b){Object.defineProperty(s,"$key",{value:$t(h,"row"),enumerable:!1}),Object.defineProperty(s,"$index",{value:b,enumerable:!1,configurable:!0}),Object.defineProperty(s,"$el",{value:h,enumerable:!1})}function L(s,h,b){let m=de(s);i(s,m,h,b),s._sapScope=h,!b.projection&&m.bind!=null&&d(s,m,b),p(s,m,b),m.items?le(s,h,b):_(s,h,b)}function _(s,h,b){for(let m=s.firstElementChild;m;m=m.nextElementSibling)z(m,h,b)}function z(s,h,b){let m=de(s);if(!m.inert){if(m.boundary){u&&(u.pure=!1),m.boundary==="scope"?ie(s,h,b):m.boundary==="items"?(p(s,m,b),le(s,h,b)):Qe[m.boundary](w,s,m,h,b);return}!b.projection&&!b.view&&m.bind!=null&&d(s,m,b),p(s,m,b);for(let g=s.firstElementChild;g;g=g.nextElementSibling)z(g,h,b)}}function ie(s,h,b){let m=s.getAttribute("scope"),g={};h[m]=g;let A={root:b.root,state:g,item:null,ownerEl:s,projection:b.projection};L(s,g,A)}function le(s,h,b){u&&(u.pure=!1);let m=s.getAttribute("items"),g=[];h[m]=g,s._sapList=g;let A=!b.projection&&!b.view&&Kt(),S=0;for(let N=s.firstElementChild;N;N=N.nextElementSibling){let E=de(N);if(!E.item||E.template||E.cms)continue;let $=A?Jt(N):void 0;g.push($&&$.plan===E&&Object.isExtensible($.obj)&&se($,N,S,b)||V(N,E,S,b,A)),S++}}function V(s,h,b,m,g){let A={};k(A,s,b);let S={root:m.root,state:m.state,item:A,ownerEl:s,projection:m.projection};if(!g)return L(s,A,S),A;let N=u,E={plan:h,obj:A,fields:null,presence:oe,pending:oe,collects:[],pure:!0},$=l.length,Jn=e.diag.errors.length;u=E;try{L(s,A,S)}finally{u=N}if(!E.pure||e.halted||e.diag.errors.length!==Jn)return A;let ft=[];for(let q of Object.keys(A)){let Ae=A[q];if(Ae!==null&&typeof Ae=="object")return A;ft.push(q,Ae)}if(h.decls)for(let q of h.decls)_e(s,q)&&(E.presence===oe?E.presence=[]:E.presence).push(q.name,q.attr);return l.length>$&&(E.pending=l.slice($)),E.collects.length||(E.collects=oe),E.fields=ft,Qt(s,E),A}function se(s,h,b,m){let g=s.obj;try{g.$index!==b&&Object.defineProperty(g,"$index",{value:b,enumerable:!1,configurable:!0});let N=s.presence;for(let $=0;$<N.length;$+=2)g[N[$]]=h.hasAttribute(N[$+1]);let E=s.fields;for(let $=0;$<E.length;$+=2)g[E[$]]=E[$+1]}catch{return Zt(h),null}h._sapScope=g;let A=s.pending;for(let N=0;N<A.length;N++)l.push(A[N]);let S=s.collects;if(S.length){let N={root:m.root,state:m.state,item:g,ownerEl:h,projection:m.projection};for(let E=0;E<S.length;E+=2)p(S[E],S[E+1],N)}return g}let w={app:e,root:r,rootObj:n,paints:a,stats:{calcs:0,lists:0},resolveDefault:c,collectEl:p,walkScope:_};for(let s of O)s.begin&&s.begin(w);let y=t.cacheReads===!1?null:en(r);try{L(r,n,f)}finally{t.cacheReads!==!1&&tn(y)}if(e.halted)return;for(let s of O)s.afterIntake&&s.afterIntake(w);if(l.length&&o.size)for(let s of l)o.has(s.attr)&&s.el.getAttribute(s.attr)==null&&s.el.setAttribute(s.attr,s.value);for(let s of O)s.compute&&s.compute(w);let v=0;for(let s of O)s.reconcile&&(v+=s.reconcile(w));let x=0,C=v;for(let s of a){let h=$n(s,e);s.ctx.view?C+=h:x+=h}for(let s of O)s.afterPaint&&s.afterPaint(w);e._state=n,e._stats={fields:Object.keys(n).filter(s=>typeof n[s]!="function").length,calcs:w.stats.calcs,paints:a.length,lists:w.stats.lists,writes:x,viewWrites:C},e._viewsChanged=C>0,e._lastPass={trigger:t.trigger||"refresh",writes:x},e._debug&&console.log(`sap pass \xB7 trigger: ${e._lastPass.trigger} \xB7 writes ${x}/${a.length}`)}function Nn(e){return e.kind==="text"?e.fmt?"text:"+e.fmt:"text":e.kind==="attr"?"attr:"+e.arg:e.kind==="class"?"class:"+e.arg:e.kind==="css"?"css:"+e.arg:e.kind==="when"?(e.match==="hide"?"hide-when:":e.match==="show-not"?"option-not:":"show-when:")+e.field:e.kind}function be(e,t,r,n){let a=e;for(;a&&a.nodeType===1;){if(a.hasAttribute&&a.hasAttribute(t)){let l=r.includes(a.getAttribute(t));if(n?!l:l)return!0}a=a.parentElement}return!1}function $n(e,t){let r=e.def,n=e.el,a=Ze[r.kind];if(a)return a(e,t);if(r.kind==="when")return tt(r,n,null);try{let l=It(r.entry,e.ctx.state,e.ctx.item,n,e.ctx.root),o=tt(r,n,l);return Et(n),o}catch(l){return t.diag.error(l.sapCode==="E22"?"E22":"E24",n,{attr:Nn(r),expr:r.entry&&r.entry.src,problem:String(l.message)}),K(n,l.sapCode||"E24"),0}}function tt(e,t,r){switch(e.kind){case"text":{let n=e.fmt!=null?Bt(e.fmt,r):r==null?"":String(r);return t.textContent!==n?(t.textContent=n,1):0}case"show":{let n=!r;return t.hidden!==n?(t.hidden=n,1):0}case"when":{let n=T("optionVisibility");if(n&&n._started)return t._sapWhen&&t.hidden?(t.hidden=!1,t._sapWhen=!1,1):0;let a;e.match==="hide"?a=!be(t,e.field,e.values,!1):e.match==="show-not"?a=be(t,e.field,e.values,!0):a=be(t,e.field,e.values,!1),t._sapWhen=!0;let l=!a;return t.hidden!==l?(t.hidden=l,1):0}case"attr":{let n=e.arg;if((n==="checked"||n==="selected")&&typeof t[n]=="boolean"&&!t.hasAttribute("bind")&&!t.closest("select[bind]")){let l=0;return t[n]!==!!r&&(t[n]=!!r,l=1),!!r!==t.hasAttribute(n)&&(r?t.setAttribute(n,""):t.removeAttribute(n),l=1),l}if(kn.has(n)){let l=t.hasAttribute(n);return r&&!l?(t.setAttribute(n,""),1):!r&&l?(t.removeAttribute(n),1):0}let a=typeof r=="boolean"?String(r):r==null?"":String(r);return t.getAttribute(n)!==a?(t.setAttribute(n,a),1):0}case"class":{let n=!!r;return t.classList.contains(e.arg)!==n?(t.classList.toggle(e.arg,n),1):0}case"css":{let n=r==null?"":String(r);return t.style.getPropertyValue("--"+e.arg)!==n?(t.style.setProperty("--"+e.arg,n),1):0}default:return 0}}var Ln=new Set(ce),nt=new Set(["calc","text","attr","class","css","set","move","sort","option","option-not","show-when","hide-when","editmode","viewmode"]),Tn=new Set(["show-when","hide-when","option","option-not"]),_n=/\b(?:state|item|root)\.|===|!==|&&|\|\||[()]|^\s*!/,rt=new Set(["sap","scope","items","item","template","bind","show","effect","invalid","detail","state","transient","confirm","default","persist","sortable","trigger-add","trigger-remove","trigger-reset","sap-ignore","sap-error","no-save","no-watch","no-undo","no-trigger-autosave","freeze","mutations-ignore","save-remove","save-ignore","save-freeze"]),ge=[];function Cn(e){ge.includes(e)||ge.push(e)}function Rn(e){return e.tagName==="INPUT"||e.tagName==="SELECT"||e.tagName==="TEXTAREA"}function ye(e){return e.hasAttribute("bind")}function jn(e,t){t(e);for(let n=e.firstElementChild;n;n=n.nextElementSibling)r(n);function r(n){if(!n.hasAttribute("sap-ignore")){if(n.tagName==="TEMPLATE"){if(n.hasAttribute("items"))for(let a=n.content.firstElementChild;a;a=a.nextElementSibling)r(a);return}t(n);for(let a=n.firstElementChild;a;a=a.nextElementSibling)r(a)}}}function Mn(e,t){let r=!1,n=(o,f,u)=>{t.error(o,f,u),r=!0},a=e.ownerDocument.createTreeWalker(e,4),l;for(;l=a.nextNode();)if(/\{\{.*\}\}/.test(l.nodeValue||"")){n("E02",l.parentElement||e,{problem:"moustaches in text content are not a Sap feature",fix:'move the expression onto the element: text="state.x"'});break}return jn(e,o=>{let f=new Set;for(let c of ge)c(o,n,i=>f.add(i));let u=o.closest&&o.closest("[detail]");for(let c of[...o.attributes]){let i=c.name;if(f.has(i))continue;if(i.includes(":")){let p=i.slice(0,i.indexOf(":"));if(nt.has(p)){if(Tn.has(p)&&_n.test(c.value)){let k=i.slice(i.indexOf(":")+1);t.warn("W04",o,{attr:i,expr:c.value,problem:`${p}: compares the "${k}" attribute against a literal value, not a JS expression`,fix:`use show="${c.value}" for an expression, or a literal like ${p}:${k}="overview"`})}}else{let k=Se(p,[...nt]);t.warn("W03",o,{attr:i,problem:`unknown "${p}:" attribute`,didYouMean:k?`${k}:`:null})}}else if(!rt.has(i)&&!xe.has(i)&&!Ln.has(i)&&!/^(data-|aria-|on)/.test(i)&&!(i in o)){let p=Se(i,[...rt]);p&&t.warn("W03",o,{attr:i,problem:`unknown "${i}" attribute`,didYouMean:p})}i==="attr:hidden"&&t.warn("W03",o,{attr:i,problem:"attr:hidden paints the wrong attribute",fix:'use show="expr"'});let d=ye(o)||i==="attr:selected"&&o.tagName==="OPTION"&&!!o.closest("select[bind]");(i==="attr:value"||i==="attr:checked"||i==="attr:selected")&&d&&n("E30",o,{attr:i,problem:"attr: on a bound control collides with persist ownership",fix:"remove it; bind owns this attribute"}),i==="effect"&&ye(o)&&/\b(value|checked)\s*=[^=]/.test(c.value)&&n("E30",o,{attr:i,expr:c.value,problem:"effect writes value/checked on a bound control (writes a stale value with no synthetic event)",fix:"write through onclick + Sap(this) instead"}),(i==="text"||i.startsWith("text:")||i==="show")&&Rn(o)&&(i==="show"||n("E18",o,{attr:i,problem:"paint belongs on output elements, not form controls",fix:"move the paint to an <output> or <span>"}))}if(o.hasAttribute("state")){let c=Le(o.getAttribute("state")),i=new Set;for(let d of c){d.name.includes("-")&&n("E08",o,{attr:"state",problem:`field "${d.name}" is not a valid identifier (the hyphen parses as subtraction)`,fix:`rename to ${d.name.replace(/-/g,"")}`}),i.has(d.name)&&n("E04",o,{attr:"state",problem:`field "${d.name}" is declared twice in one scope`}),i.add(d.name),vt.has(d.attr)&&n("E05",o,{attr:"state",problem:`"${d.name}" is a reserved Sap word`}),xe.has(d.attr)&&n("E06",o,{attr:"state",problem:`"${d.name}" is a global HTML attribute name; pick another field name`}),d.name==="open"&&o.tagName==="DIALOG"&&n("E33",o,{attr:"state",problem:"dialog open is transient",fix:"use showModal() \u2014 declare state= only on <details> or popovers"});let p=Te(o,d.attr);p&&(d.attr==="checked"||d.attr==="selected")&&n("E35",o,{attr:"state",problem:`"${d.attr}" on a form control is the control's own state, not a declared field`,fix:'bind the control instead, e.g. <input type="checkbox" bind="done">'}),p&&d.type==="num"&&n("E35",o,{attr:"state",problem:`"${d.attr}" is an HTML boolean attribute; it cannot hold a number`,fix:`declare it bare: state="${d.attr}"`}),d.transient&&(p||d.type==="presence")&&n("E35",o,{attr:"state",problem:`"${d.name}" is carried by attribute presence, which transient would strip`,fix:"declare a separate name:bool:transient field and paint the attribute from it"})}}if(ye(o)){if(o.hasAttribute("-"),o.tagName==="INPUT"){let c=(o.getAttribute("type")||"text").toLowerCase();c==="file"&&n("E32",o,{attr:"bind",problem:"files never serialize into an HTML file",fix:"use no-save + effect instead of bind"}),c==="password"&&!o.hasAttribute("transient")&&n("E31",o,{attr:"bind",problem:"a password must never serialize into a world-readable file",fix:"add transient to the password input"})}else if(o.tagName!=="SELECT"&&o.tagName!=="TEXTAREA"){let c=o.getAttribute("contenteditable");!(c!=null&&c!=="false")&&o.children.length>0&&n("E20",o,{attr:"bind",problem:"bind on a container element is not a control; a write would overwrite its children",fix:"bind a control (input/select/textarea), a contenteditable, or an empty text leaf"})}}if(o.hasAttribute("transient")&&o.hasAttribute("persist")&&n("E34",o,{problem:"transient and persist are opposite: persist forces the live value into the saved bytes, leaking exactly what transient drops",fix:"remove one \u2014 transient to keep it out of the file, or persist to save it"}),o.tagName==="DIALOG"&&o.hasAttribute("detail")&&!(o.parentElement&&o.parentElement.closest('[clay~="freeze"], [freeze], [save-freeze]'))&&t.warn("W31",o,{attr:"detail",problem:"a detail dialog writes open when it opens, and that attribute would be saved into the file",fix:'wrap the dialog in an element with clay="freeze" (not editor-ui, which removes it from the file), and make its key field transient'}),o.hasAttribute("item")&&!o.hasAttribute("template")&&o.parentNode&&o.parentNode.nodeType===1){let c=o.parentElement;(!c||!c.hasAttribute("items"))&&n("E10",o,{problem:"an [item] must be a direct child of an [items] list",fix:'wrap it in a container with items="name"'})}if(o.hasAttribute("items")&&u&&n("E17",o,{attr:"items",problem:"nested items inside a detail panel is a v1 mount error (nested collections ship in v1.1)"}),o.hasAttribute("items")){let c=e.querySelector(`[trigger-add="${o.getAttribute("items")}"]`);!Tt(o)&&!$e(e,o.getAttribute("items"))&&Lt(o).length===0&&c&&n("E17",o,{attr:"items",problem:`trigger-add targets items="${o.getAttribute("items")}" but it has no [item template] to clone`})}}),r&&(t.halted=!0,t.haltReason=t.errors[0]?t.errors[0].code:"halt",K(e,t.haltReason)),!r}var at="sap-styles",ot="[item][template]{display:none!important}[hidden]{display:none!important}[sap-error]{outline:2px solid #e5484d;outline-offset:1px}",ve=new WeakSet;function Pn(e){if(ve.has(e))return;let t=e.defaultView,r=t&&t.CSSStyleSheet;if(r&&"adoptedStyleSheets"in e)try{let n=new r;n.replaceSync(ot),e.adoptedStyleSheets=[...e.adoptedStyleSheets,n],ve.add(e);return}catch{}if(!e.getElementById(at)){let n=e.createElement("style");n.id=at,n.textContent=ot,(e.head||e.documentElement).appendChild(n)}ve.add(e)}var Wn=0;function it(){return typeof performance<"u"&&performance.now?performance.now():0}function lt(e){let t=e.id||e.getAttribute("sap")||`app-${Wn++}`,r=new At(t),n={root:e,name:t,diag:r,_state:null,_stats:null,_lastPass:null,_passes:0,_broken:!1,_mountMs:0,_mountWrites:0};if(!Mn(e,r))return n.halted=!0,n;Pn(e.ownerDocument);for(let l of e.querySelectorAll("textarea[data-value]"))Ie(l);let a=it();return et(n,{trigger:"mount",full:!0}),n._mountMs=it()-a,n._mountWrites=n._stats?n._stats.writes:0,n._mountWrites>0&&!on()&&!T("derived")&&r.warn("W30",e,{problem:`${n._mountWrites} paint(s) ran at mount; the saved file was out of sync with its declared state`,fix:"re-save once so the file mounts clean (a settled file writes nothing)"}),n}var st=/^(set:|move:|sort:|trigger-add$|trigger-remove$|trigger-reset$)/;function On(e){return`${e.tagName.toLowerCase()}[sap]`}function Dn(e){let t=0;for(let r of e.querySelectorAll("*"))for(let n of r.attributes)if(st.test(n.name)){t++;break}for(let r of e.attributes)if(st.test(r.name)){t++;break}return t}function Bn(e){function t(f){let u=f._stats||{},c=f.root;return{root:On(c),fields:u.fields||0,calcs:u.calcs||0,paints:u.paints||0,actions:Dn(c),lists:(c.hasAttribute("items")?1:0)+c.querySelectorAll("[items]").length,rows:c.querySelectorAll("[item]:not([template])").length,warnings:f.diag.warnings.length,errors:f.diag.errors.length,mountWrites:f._mountWrites||0,ms:Math.round((f._mountMs||0)*10)/10,passes:f._passes||0,lastPass:f._lastPass||null,ok:f.diag.errors.length===0&&!f.halted}}function r(){let f=e.apps().map(t);return{ok:f.every(u=>u.ok),apps:f}}function n(f){let u=t(f);return u.ok?`sap \u2713 ${u.root} \xB7 fields ${u.fields} \xB7 calcs ${u.calcs} \xB7 paints ${u.paints} \xB7 actions ${u.actions} \xB7 lists ${u.lists} \xB7 rows ${u.rows} \xB7 warnings ${u.warnings} \xB7 mount writes ${u.mountWrites} \xB7 ${u.ms}ms`:`sap \u2717 ${u.root} \xB7 errors ${u.errors} \xB7 warnings ${u.warnings} \xB7 ${u.ms}ms`}function a(){for(let f of e.apps()){let u=n(f);f.diag.errors.length||f.halted?console.error(u):console.log(u)}}function l(){let f=[],u=[];for(let c of e.apps())f.push(...c.diag.errors),u.push(...c.diag.warnings);return{ok:f.length===0,errors:f,warnings:u,counts:{errors:f.length,warnings:u.length}}}function o(f){let u=f===void 0?!0:!!f;for(let c of e.apps())c._debug=u;return console.log(`sap debug ${u?"on":"off"} \u2014 per-pass headers will ${u?"":"no longer "}log`),u}return{status:r,report:l,debug:o,greenLine:n,printGreenLines:a,REGISTRY:ke}}var Fn="0.7.1";function Hn({createAccessor:e,installInput:t,debugExtras:r}){let n=new Map,a=[],l=yt(et);function o(y){let v=y;for(;v;){if(v.nodeType===1&&v.hasAttribute&&v.hasAttribute("sap"))return n.get(v)||null;v=v.parentNode&&v.parentNode.host?v.parentNode.host:v.parentElement}return null}function f(){for(let y=a.length-1;y>=0;y--){let v=a[y];v.root.isConnected||(n.delete(v.root),a.splice(y,1))}}function u(y,v){if(y.moveBefore)try{y.moveBefore(v,null);return}catch{}y.appendChild(v)}function c(y,v){let x=v.parentElement;if(x){if(x.moveBefore)try{x.moveBefore(y,v);return}catch{}x.insertBefore(y,v)}}let i={apps:()=>a.slice(),appFor:o,isRegistered:y=>n.has(y),pruneDisconnected:f,schedule:(y,v)=>l.schedule(y,v),runNow:(y,v)=>l.runNow(y,v),moveInto:u,placeBefore:c,remountIfPresent:()=>V()},d=e(i),p=Bn(i),k=r?r(i,p):{},L=!1,_=!1,z=null;function ie(){L||(L=!0,t(i,d,document),z=pn(i))}function le(){let y=T("derived");y&&typeof y.mounted=="function"&&y.mounted()}function V(y=document){if(_)return[];ie(),Ke(i);let v=y.querySelectorAll("[sap]"),x=[];for(let C of v){if(n.has(C))continue;let s=lt(C);n.set(C,s),a.push(s),x.push(s)}for(let C of x){let s=p.greenLine(C);C.diag.errors.length||C.halted?console.error(s):console.log(s)}return le(),x}function se(y){if(_)return null;if(ie(),Ke(i),!y)return V();let v=typeof y=="string"?document.querySelector(y):y;if(!v)return null;if(n.has(v))return n.get(v);let x=lt(v);n.set(v,x),a.push(x);let C=p.greenLine(x);return x.diag.errors.length||x.halted?console.error(C):console.log(C),x}let w=d.Sap;return w.version=Fn,w.refresh=function(){for(let y of a)y.root.isConnected&&l.runNow(y,"refresh")},w.batch=dn,w.status=p.status,w.report=p.report,w.why=k.why,w.debug=p.debug,w.doctor=k.doctor,w.greenLine=p.greenLine,w.formats=Q,w.serializeControlToAttributes=pe,w.finalizeControlForSave=an,w.rehydrateControlFromAttributes=Ie,w.mount=se,w.config=function(y={}){return y.formats&&Object.assign(Q,y.formats),w},w._registry=n,w._reset=function(){n.clear(),a.length=0,Je()},w.unmount=function(){_=!0,n.clear(),a.length=0,Je(),typeof z=="function"&&z()},{Sap:w,mountAll:V,mount:se,runtime:i}}function In(e){if(typeof document>"u")return;let t=()=>fn(()=>e());document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}function zn(e){let t=[];function r(u){let c=u.target;if(!c||c.nodeType!==1)return;let i=e.appFor(c);if(i){c.hasAttribute("persist")&&!qe(c)&&me(c)&&pe(c);for(let d of t)if(d(c,i))return;e.schedule(i,u.type+" "+(c.id||c.tagName.toLowerCase()))}}function n(u){let c=u.target,i=e.appFor(c);i&&[...c.querySelectorAll("[bind]")].every(d=>me(d))&&setTimeout(()=>{c.querySelectorAll("[bind]").forEach(d=>{d.dispatchEvent(new Event("input",{bubbles:!0})),d.dispatchEvent(new Event("change",{bubbles:!0}))}),e.schedule(i,"reset")},0)}function a(u){let c=e.appFor(u.target);c&&e.schedule(c,"toggle")}function l(u){let c=u.detail||{};for(let i of[c.from,c.to,u.target]){if(!i||i.nodeType!==1)continue;let d=e.appFor(i);d&&e.schedule(d,"sorted")}}function o(u){if(u.key!=="ArrowUp"&&u.key!=="ArrowDown")return;let c=u.target;if(!c||c.nodeType!==1||c.tagName!=="INPUT"||!c.hasAttribute("bind")||!c.hasAttribute("step"))return;let i=(c.getAttribute("type")||"text").toLowerCase();if(i!=="text"&&i!=="tel"&&i!=="search"||!e.appFor(c)||!me(c))return;u.preventDefault();let d=R(c.getAttribute("step"))||1,p=u.key==="ArrowUp"?1:-1,k=R(c.value)+d*(u.shiftKey?10:1)*p,L=c.getAttribute("min"),_=c.getAttribute("max");L!==null&&L!==""&&k<R(L)&&(k=R(L)),_!==null&&_!==""&&k>R(_)&&(k=R(_)),yn(c).write(String(Number(k.toFixed(2))))}function f(u=document){u.addEventListener("reset",n),u.addEventListener("toggle",a,!0),u.addEventListener("input",r),u.addEventListener("change",r),u.addEventListener("clay:sorted",l),u.addEventListener("keydown",o)}return{install:f,addRouter:u=>t.push(u)}}var X="https://clayjs.com/v1/sap.js",qn=/^(calc|set|move|sort):/,Un=new Set(["each","detail","effect","invalid","confirm","trigger-add","trigger-remove","trigger-reset"]);function we(e){return qn.test(e)||Un.has(e)}Cn((e,t)=>{for(let r of e.attributes)we(r.name)&&t("E50",e,{attr:r.name,expr:r.value,problem:`${r.name} is full sapjs; the sapjs core only paints declared state`,fix:`load ${X}; the markup stays as it is`})});function I(e,t,r){e.app.diag.error("E50",t,{attr:r,problem:`${r} is full sapjs; the sapjs core only paints declared state`,fix:`load ${X}; the markup stays as it is`}),K(t,"E50"),e.app.halted=!0}xn({name:"core-only",collect(e,t,r){r.calcs&&I(e,t,"calc:"+r.calcs[0].name),r.effects&&I(e,t,"effect"),r.invalids&&I(e,t,"invalid");for(let n of t.attributes)we(n.name)&&(n.name.startsWith("calc:")&&r.calcs||n.name==="effect"&&r.effects||n.name==="invalid"&&r.invalids||I(e,t,n.name));return!1},boundary:{each(e,t){I(e,t,"each")},detail(e,t){I(e,t,"detail")}}});function Gn(){return{Sap:function(){throw new Error(`Sap(el) is full sapjs; load ${X}`)}}}var ut=e=>()=>(console.warn(`Sap.${e} is full sapjs; load ${X}`),null),{Sap:Y,mountAll:ct,mount:Xn,runtime:Yn}=Hn({createAccessor:Gn,debugExtras:()=>({why:ut("why"),doctor:ut("doctor")}),installInput(e,t,r){zn(e).install(r)}});Y.core=!0;var Vn=typeof window<"u"&&window.Sap&&!window.Sap.core;Vn?Y.unmount():In(ct),typeof window<"u"&&!window.Sap&&(window.Sap=Y);var Kn=Y;return gt(Ee)})(),Zn=Qn.default;export{Zn as default};
6
+ `+t.value:t.value;e.textContent!==n&&(e.textContent=n),e.removeAttribute("data-value");return}if(r==="SELECT"){let n=e.options,a=t.options;for(let l=0;l<n.length;l++)a[l]&&a[l].selected?n[l].hasAttribute("selected")||n[l].setAttribute("selected",""):n[l].removeAttribute("selected")}}function Ie(e){e.tagName!=="TEXTAREA"||!e.hasAttribute("data-value")||e!==e.ownerDocument.activeElement&&(e.textContent=e.getAttribute("data-value"),e.removeAttribute("data-value"))}function T(e){if(typeof window>"u")return null;let t=window.clay,r=window.hyperclay;return e==="consent"?t?.confirm||r?.consent||null:t?.[e]||r?.[e]||null}function on(){let e=T("visitorDrafts");return!!(e&&typeof e.restored=="function"&&e.restored()?.restored)}var ze=["clay:mutation-ready","hyperclay:mutation-ready"],ln=["clay:sync-applied","hyperclay:livesync-applied"],sn=["clay:ready","hyperclay:ready"],un=["clay:route"],cn=["clay:modechange"];function ne(e,t,r){let n=null,a=l=>{n!==null&&n!==l.type||(n=l.type,queueMicrotask(()=>{n=null}),r(l))};for(let l of t)e.addEventListener(l,a);return()=>{for(let l of t)e.removeEventListener(l,a)}}function fn(e){let t=typeof window<"u"&&window.clay&&window.clay.ready;t&&typeof t.then=="function"?t.then(()=>e(),()=>e()):e()}function qe(e){let t=T("region");return!t||typeof t.resolveRegionPolicy!="function"||typeof t.skipForPolicy!="function"?!1:t.skipForPolicy(t.resolveRegionPolicy(e),void 0,["no-save","freeze"])}function Ue(){return typeof window>"u"?null:window.clay?.modeLifecycle||null}function me(e,{transient:t=!1}={}){if(t)return!0;let r=Ue();return typeof r?.canWrite!="function"||T("region")?.resolveRegionPolicy?.(e)?.persist==="none"?!0:r.canWrite()}function dn(e,t){if(typeof t!="function")throw new Error("Sap.batch(label, fn): fn must be a function");let r=T("undo");r&&r.flush&&r.flush();let n=t();if(n&&typeof n.then=="function")throw new Error("Sap.batch fn must be synchronous (it returned a promise)");return r&&r.commitCaptured&&r.commitCaptured(e),n}function pn(e){if(typeof window>"u"||typeof document>"u")return;let t=()=>{let p=!1;for(let k of e.apps())k.root.isConnected?e.runNow(k,"platform"):p=!0;p&&e.pruneDisconnected(),e.remountIfPresent()},r=T("derived"),n=r&&typeof r.register=="function"?r.register(t):null,a=typeof n=="function"?null:ne(document,ln,t),l=ne(document,un,t),o=null,f=!1,u=()=>{let p=o;o=null,p&&(p[2](),p[3]())},c=()=>{if(f)return!1;let p=T("undo"),k=Ue()?.state?.generation;if(o&&o[0]===p&&o[1]===k)return!0;if(u(),!p||typeof p.on!="function")return!1;let L=p.on("undo",t);if(typeof L!="function")return!1;let _=p.on("redo",t);return typeof _!="function"?(L(),!1):(o=[p,k,L,_],!0)};c();let i=[ze,sn,cn].map(p=>ne(document,p,c)),d=T("ready");return d&&typeof d.then=="function"&&d.then(c,()=>{}),()=>{f=!0,typeof n=="function"&&n(),a&&a(),l();for(let p of i)p();u()}}function Ge(e){let t=e.tagName;if(t==="INPUT"){let r=(e.getAttribute("type")||"text").toLowerCase();return r==="checkbox"?"checkbox":r==="radio"?"radio":r==="number"||r==="range"?"number":r==="hidden"?"hidden":"text"}return t==="TEXTAREA"?"text":t==="SELECT"?e.multiple?"select-multiple":"select-one":"leaf"}function mn(e){if(e.validity&&e.validity.badInput)return e.hasAttribute("value")?Number(e.getAttribute("value"))||0:e._sapLastGood??0;if(e.value==="")return 0;let t=Number(e.value);return Number.isNaN(t)?e._sapLastGood??0:(e._sapLastGood=t,t)}function Xe(e,t){switch(t){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":return mn(e);case"select-one":return e.value;case"select-multiple":return[...e.selectedOptions].map(r=>r.value);case"hidden":case"text":return e.value;case"leaf":return e.textContent;default:return e.value}}function hn(e,t,r){switch(t){case"checkbox":e.checked=!!r;break;case"radio":e.checked=String(e.value)===String(r);break;case"number":case"text":case"hidden":e.value=r==null?"":String(r);break;case"select-one":e.value=r==null?"":String(r);break;case"select-multiple":{let n=new Set((Array.isArray(r)?r:[r]).map(String));for(let a of e.options)a.selected=n.has(a.value);break}case"leaf":e.textContent=r==null?"":String(r);break;default:e.value=r==null?"":String(r)}}function Ye(e){if(e.hasAttribute("transient")){e.removeAttribute("value"),e.removeAttribute("checked"),e.removeAttribute("data-value");return}qe(e)||pe(e)}function bn(e){e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}function gn(e,t){return Xe(e,t)}function yn(e){let t=Ge(e);return{el:e,kind:t,read(){return Xe(e,t)},write(r,n={}){hn(e,t,r),n.noMirror||Ye(e),n.silent||bn(e)},mirror(){Ye(e)}}}var W=null,re=!1,H=null;function Ve(e){let t=null;return{kind:"hub",subscribe(r){let n=e.onAnyChange({debounce:0,require:"observed"},r);typeof n=="function"&&(t=n)},suppress(r){e.pause();try{return r()}finally{e.resume()}},teardown(){if(t){try{t()}catch{}t=null}}}}function vn(){let e=null;return{kind:"native",subscribe(t){e=new MutationObserver(n=>t(wn(n)));let r=typeof document<"u"&&document.body||typeof document<"u"&&document.documentElement;r&&e.observe(r,{childList:!0,subtree:!0,attributes:!0,characterData:!0})},suppress(t){let r=T("undo");r&&r.pause&&r.pause();try{return t()}finally{e&&e.takeRecords(),r&&r.resume&&r.resume()}},teardown(){e&&(e.disconnect(),e=null)}}}function wn(e){let t=[];for(let r of e)if(r.type==="attributes"){let n=r.target;n&&n.nodeType===1&&!ae(n)&&t.push({type:"attribute",element:n})}else if(r.type==="characterData"){let n=r.target&&r.target.parentElement;n&&!ae(n)&&t.push({type:"characterData",element:n})}else if(r.type==="childList"){for(let n of r.addedNodes)if(!(n.nodeType!==1||ae(n))&&(t.push({type:"add",element:n}),n.querySelectorAll))for(let a of n.querySelectorAll("*"))ae(a)||t.push({type:"add",element:a});for(let n of r.removedNodes)n.nodeType===1&&t.push({type:"remove",element:n,parent:r.target})}return t}function ae(e){return!!(e.closest&&e.closest("[sap-ignore],[template],[cms-template]"))}function An(e,t){e.pruneDisconnected();let r=new Set,n=!1;for(let a of t){let l=a.type==="remove"?a.parent:a.element,o=l&&e.appFor(l);o&&r.add(o),a.type==="add"&&a.element&&a.element.nodeType===1&&a.element.hasAttribute&&a.element.hasAttribute("sap")&&!(e.isRegistered&&e.isRegistered(a.element))&&(n=!0)}n&&e.remountIfPresent();for(let a of r)a.root.isConnected&&e.schedule(a,"mutation")}function En(e){if(W)return W.suppress(e);let t=T("undo");if(t&&t.pause&&t.resume){t.pause();try{return e()}finally{t.resume()}}return e()}function he(e,t){re=!0,W=e,e.subscribe(r=>An(t,r))}function Ke(e){if(re||typeof window>"u"||typeof document>"u")return;let t=T("Mutation");if(t&&typeof t.onAnyChange=="function"){he(Ve(t),e);return}typeof MutationObserver=="function"&&(he(vn(),e),H=ne(document,ze,function(){let r=T("Mutation");r&&(H(),H=null,W&&W.teardown(),re=!1,he(Ve(r),e))}))}function Je(){if(W)try{W.teardown()}catch{}H&&typeof document<"u"&&H(),W=null,re=!1,H=null}var kn=new Set(ce),oe=Object.freeze([]),O=[],Qe={},Ze={};function xn(e){O.includes(e)||(O.push(e),e.boundary&&Object.assign(Qe,e.boundary),e.paintKinds&&Object.assign(Ze,e.paintKinds))}function et(e,t={}){if(t.breaker){e.diag.error("E26",e.root,{problem:"recompute loop halted after 50 passes; recent triggers: "+(e._breakerRing||[]).join(", ")}),K(e.root,"loop");return}t.full&&(zt(),Vt());let r=qt(e.root);try{En(()=>Sn(e,t))}finally{Ut(r)}e._viewsChanged&&(e._viewsChanged=!1,e.root.dispatchEvent(new CustomEvent("sap:views-updated",{bubbles:!0})))}function Sn(e,t){let r=e.root,n={},a=[],l=[],o=new Set;e.diag.errors=[];let f={root:n,state:n,item:null,ownerEl:r,projection:!1},u=null;function c(s,h,b=!1){let m=h.attr||h.name,g=b?nn(s,m):s.getAttribute(m);return g==null&&(g=Ce(h),l.push({el:s,name:h.name,attr:m,value:_t(fe(g,h.type),h.type)})),fe(g,h.type)}function i(s,h,b,m){let g=h.decls;if(!g)return;let A=!!m.item&&!m.projection&&!m.view;for(let S of g){if(S.transient){u&&(u.pure=!1),b[S.name]=Ct(s,S);continue}if(_e(s,S)){b[S.name]=s.hasAttribute(S.attr);continue}b[S.name]=c(s,S,A)}}function d(s,h,b){let m=h.bind,g=b.item||b.state,A=Ge(s);u&&(A!=="leaf"||h.transient)&&(u.pure=!1),A==="radio"?(m in g||(g[m]=""),s.checked&&(g[m]=s.value)):A==="leaf"&&b.item&&!b.projection&&!b.view?g[m]=rn(s):g[m]=gn(s,A),h.transient&&(s.removeAttribute("value"),s.removeAttribute("checked"))}function p(s,h,b){let m=!1;if(h.paints){m=!0;for(let g of h.paints)g.kind==="when"&&o.add(g.field),a.push({def:g,el:s,ctx:b})}for(let g of O)g.collect&&g.collect(w,s,h,b)!==!1&&(m=!0);u&&m&&(h.calcs&&(u.pure=!1),u.collects.push(s,h))}function k(s,h,b){Object.defineProperty(s,"$key",{value:$t(h,"row"),enumerable:!1}),Object.defineProperty(s,"$index",{value:b,enumerable:!1,configurable:!0}),Object.defineProperty(s,"$el",{value:h,enumerable:!1})}function L(s,h,b){let m=de(s);i(s,m,h,b),s._sapScope=h,!b.projection&&m.bind!=null&&d(s,m,b),p(s,m,b),m.items?le(s,h,b):_(s,h,b)}function _(s,h,b){for(let m=s.firstElementChild;m;m=m.nextElementSibling)z(m,h,b)}function z(s,h,b){let m=de(s);if(!m.inert){if(m.boundary){u&&(u.pure=!1),m.boundary==="scope"?ie(s,h,b):m.boundary==="items"?(p(s,m,b),le(s,h,b)):Qe[m.boundary](w,s,m,h,b);return}!b.projection&&!b.view&&m.bind!=null&&d(s,m,b),p(s,m,b);for(let g=s.firstElementChild;g;g=g.nextElementSibling)z(g,h,b)}}function ie(s,h,b){let m=s.getAttribute("scope"),g={};h[m]=g;let A={root:b.root,state:g,item:null,ownerEl:s,projection:b.projection};L(s,g,A)}function le(s,h,b){u&&(u.pure=!1);let m=s.getAttribute("items"),g=[];h[m]=g,s._sapList=g;let A=!b.projection&&!b.view&&Kt(),S=0;for(let N=s.firstElementChild;N;N=N.nextElementSibling){let E=de(N);if(!E.item||E.template||E.cms)continue;let $=A?Jt(N):void 0;g.push($&&$.plan===E&&Object.isExtensible($.obj)&&se($,N,S,b)||V(N,E,S,b,A)),S++}}function V(s,h,b,m,g){let A={};k(A,s,b);let S={root:m.root,state:m.state,item:A,ownerEl:s,projection:m.projection};if(!g)return L(s,A,S),A;let N=u,E={plan:h,obj:A,fields:null,presence:oe,pending:oe,collects:[],pure:!0},$=l.length,Jn=e.diag.errors.length;u=E;try{L(s,A,S)}finally{u=N}if(!E.pure||e.halted||e.diag.errors.length!==Jn)return A;let ft=[];for(let q of Object.keys(A)){let Ae=A[q];if(Ae!==null&&typeof Ae=="object")return A;ft.push(q,Ae)}if(h.decls)for(let q of h.decls)_e(s,q)&&(E.presence===oe?E.presence=[]:E.presence).push(q.name,q.attr);return l.length>$&&(E.pending=l.slice($)),E.collects.length||(E.collects=oe),E.fields=ft,Qt(s,E),A}function se(s,h,b,m){let g=s.obj;try{g.$index!==b&&Object.defineProperty(g,"$index",{value:b,enumerable:!1,configurable:!0});let N=s.presence;for(let $=0;$<N.length;$+=2)g[N[$]]=h.hasAttribute(N[$+1]);let E=s.fields;for(let $=0;$<E.length;$+=2)g[E[$]]=E[$+1]}catch{return Zt(h),null}h._sapScope=g;let A=s.pending;for(let N=0;N<A.length;N++)l.push(A[N]);let S=s.collects;if(S.length){let N={root:m.root,state:m.state,item:g,ownerEl:h,projection:m.projection};for(let E=0;E<S.length;E+=2)p(S[E],S[E+1],N)}return g}let w={app:e,root:r,rootObj:n,paints:a,stats:{calcs:0,lists:0},resolveDefault:c,collectEl:p,walkScope:_};for(let s of O)s.begin&&s.begin(w);let y=t.cacheReads===!1?null:en(r);try{L(r,n,f)}finally{t.cacheReads!==!1&&tn(y)}if(e.halted)return;for(let s of O)s.afterIntake&&s.afterIntake(w);if(l.length&&o.size)for(let s of l)o.has(s.attr)&&s.el.getAttribute(s.attr)==null&&s.el.setAttribute(s.attr,s.value);for(let s of O)s.compute&&s.compute(w);let v=0;for(let s of O)s.reconcile&&(v+=s.reconcile(w));let x=0,C=v;for(let s of a){let h=$n(s,e);s.ctx.view?C+=h:x+=h}for(let s of O)s.afterPaint&&s.afterPaint(w);e._state=n,e._stats={fields:Object.keys(n).filter(s=>typeof n[s]!="function").length,calcs:w.stats.calcs,paints:a.length,lists:w.stats.lists,writes:x,viewWrites:C},e._viewsChanged=C>0,e._lastPass={trigger:t.trigger||"refresh",writes:x},e._debug&&console.log(`sap pass \xB7 trigger: ${e._lastPass.trigger} \xB7 writes ${x}/${a.length}`)}function Nn(e){return e.kind==="text"?e.fmt?"text:"+e.fmt:"text":e.kind==="attr"?"attr:"+e.arg:e.kind==="class"?"class:"+e.arg:e.kind==="css"?"css:"+e.arg:e.kind==="when"?(e.match==="hide"?"hide-when:":e.match==="show-not"?"option-not:":"show-when:")+e.field:e.kind}function be(e,t,r,n){let a=e;for(;a&&a.nodeType===1;){if(a.hasAttribute&&a.hasAttribute(t)){let l=r.includes(a.getAttribute(t));if(n?!l:l)return!0}a=a.parentElement}return!1}function $n(e,t){let r=e.def,n=e.el,a=Ze[r.kind];if(a)return a(e,t);if(r.kind==="when")return tt(r,n,null);try{let l=It(r.entry,e.ctx.state,e.ctx.item,n,e.ctx.root),o=tt(r,n,l);return Et(n),o}catch(l){return t.diag.error(l.sapCode==="E22"?"E22":"E24",n,{attr:Nn(r),expr:r.entry&&r.entry.src,problem:String(l.message)}),K(n,l.sapCode||"E24"),0}}function tt(e,t,r){switch(e.kind){case"text":{let n=e.fmt!=null?Bt(e.fmt,r):r==null?"":String(r);return t.textContent!==n?(t.textContent=n,1):0}case"show":{let n=!r;return t.hidden!==n?(t.hidden=n,1):0}case"when":{let n=T("optionVisibility");if(n&&n._started)return t._sapWhen&&t.hidden?(t.hidden=!1,t._sapWhen=!1,1):0;let a;e.match==="hide"?a=!be(t,e.field,e.values,!1):e.match==="show-not"?a=be(t,e.field,e.values,!0):a=be(t,e.field,e.values,!1),t._sapWhen=!0;let l=!a;return t.hidden!==l?(t.hidden=l,1):0}case"attr":{let n=e.arg;if((n==="checked"||n==="selected")&&typeof t[n]=="boolean"&&!t.hasAttribute("bind")&&!t.closest("select[bind]")){let l=0;return t[n]!==!!r&&(t[n]=!!r,l=1),!!r!==t.hasAttribute(n)&&(r?t.setAttribute(n,""):t.removeAttribute(n),l=1),l}if(kn.has(n)){let l=t.hasAttribute(n);return r&&!l?(t.setAttribute(n,""),1):!r&&l?(t.removeAttribute(n),1):0}let a=typeof r=="boolean"?String(r):r==null?"":String(r);return t.getAttribute(n)!==a?(t.setAttribute(n,a),1):0}case"class":{let n=!!r;return t.classList.contains(e.arg)!==n?(t.classList.toggle(e.arg,n),1):0}case"css":{let n=r==null?"":String(r);return t.style.getPropertyValue("--"+e.arg)!==n?(t.style.setProperty("--"+e.arg,n),1):0}default:return 0}}var Ln=new Set(ce),nt=new Set(["calc","text","attr","class","css","set","move","sort","option","option-not","show-when","hide-when","editmode","viewmode"]),Tn=new Set(["show-when","hide-when","option","option-not"]),_n=/\b(?:state|item|root)\.|===|!==|&&|\|\||[()]|^\s*!/,rt=new Set(["sap","scope","items","item","template","bind","show","effect","invalid","detail","state","transient","confirm","default","persist","sortable","trigger-add","trigger-remove","trigger-reset","sap-ignore","sap-error","no-save","no-watch","no-undo","no-trigger-autosave","freeze","mutations-ignore","save-remove","save-ignore","save-freeze"]),ge=[];function Cn(e){ge.includes(e)||ge.push(e)}function Rn(e){return e.tagName==="INPUT"||e.tagName==="SELECT"||e.tagName==="TEXTAREA"}function ye(e){return e.hasAttribute("bind")}function jn(e,t){t(e);for(let n=e.firstElementChild;n;n=n.nextElementSibling)r(n);function r(n){if(!n.hasAttribute("sap-ignore")){if(n.tagName==="TEMPLATE"){if(n.hasAttribute("items"))for(let a=n.content.firstElementChild;a;a=a.nextElementSibling)r(a);return}t(n);for(let a=n.firstElementChild;a;a=a.nextElementSibling)r(a)}}}function Mn(e,t){let r=!1,n=(o,f,u)=>{t.error(o,f,u),r=!0},a=e.ownerDocument.createTreeWalker(e,4),l;for(;l=a.nextNode();)if(/\{\{.*\}\}/.test(l.nodeValue||"")){n("E02",l.parentElement||e,{problem:"moustaches in text content are not a Sap feature",fix:'move the expression onto the element: text="state.x"'});break}return jn(e,o=>{let f=new Set;for(let c of ge)c(o,n,i=>f.add(i));let u=o.closest&&o.closest("[detail]");for(let c of[...o.attributes]){let i=c.name;if(f.has(i))continue;if(i.includes(":")){let p=i.slice(0,i.indexOf(":"));if(nt.has(p)){if(Tn.has(p)&&_n.test(c.value)){let k=i.slice(i.indexOf(":")+1);t.warn("W04",o,{attr:i,expr:c.value,problem:`${p}: compares the "${k}" attribute against a literal value, not a JS expression`,fix:`use show="${c.value}" for an expression, or a literal like ${p}:${k}="overview"`})}}else{let k=Se(p,[...nt]);t.warn("W03",o,{attr:i,problem:`unknown "${p}:" attribute`,didYouMean:k?`${k}:`:null})}}else if(!rt.has(i)&&!xe.has(i)&&!Ln.has(i)&&!/^(data-|aria-|on)/.test(i)&&!(i in o)){let p=Se(i,[...rt]);p&&t.warn("W03",o,{attr:i,problem:`unknown "${i}" attribute`,didYouMean:p})}i==="attr:hidden"&&t.warn("W03",o,{attr:i,problem:"attr:hidden paints the wrong attribute",fix:'use show="expr"'});let d=ye(o)||i==="attr:selected"&&o.tagName==="OPTION"&&!!o.closest("select[bind]");(i==="attr:value"||i==="attr:checked"||i==="attr:selected")&&d&&n("E30",o,{attr:i,problem:"attr: on a bound control collides with persist ownership",fix:"remove it; bind owns this attribute"}),i==="effect"&&ye(o)&&/\b(value|checked)\s*=[^=]/.test(c.value)&&n("E30",o,{attr:i,expr:c.value,problem:"effect writes value/checked on a bound control (writes a stale value with no synthetic event)",fix:"write through onclick + Sap(this) instead"}),(i==="text"||i.startsWith("text:")||i==="show")&&Rn(o)&&(i==="show"||n("E18",o,{attr:i,problem:"paint belongs on output elements, not form controls",fix:"move the paint to an <output> or <span>"}))}if(o.hasAttribute("state")){let c=Le(o.getAttribute("state")),i=new Set;for(let d of c){d.name.includes("-")&&n("E08",o,{attr:"state",problem:`field "${d.name}" is not a valid identifier (the hyphen parses as subtraction)`,fix:`rename to ${d.name.replace(/-/g,"")}`}),i.has(d.name)&&n("E04",o,{attr:"state",problem:`field "${d.name}" is declared twice in one scope`}),i.add(d.name),vt.has(d.attr)&&n("E05",o,{attr:"state",problem:`"${d.name}" is a reserved Sap word`}),xe.has(d.attr)&&n("E06",o,{attr:"state",problem:`"${d.name}" is a global HTML attribute name; pick another field name`}),d.name==="open"&&o.tagName==="DIALOG"&&n("E33",o,{attr:"state",problem:"dialog open is transient",fix:"use showModal() \u2014 declare state= only on <details> or popovers"});let p=Te(o,d.attr);p&&(d.attr==="checked"||d.attr==="selected")&&n("E35",o,{attr:"state",problem:`"${d.attr}" on a form control is the control's own state, not a declared field`,fix:'bind the control instead, e.g. <input type="checkbox" bind="done">'}),p&&d.type==="num"&&n("E35",o,{attr:"state",problem:`"${d.attr}" is an HTML boolean attribute; it cannot hold a number`,fix:`declare it bare: state="${d.attr}"`}),d.transient&&(p||d.type==="presence")&&n("E35",o,{attr:"state",problem:`"${d.name}" is carried by attribute presence, which transient would strip`,fix:"declare a separate name:bool:transient field and paint the attribute from it"})}}if(ye(o)){if(o.hasAttribute("-"),o.tagName==="INPUT"){let c=(o.getAttribute("type")||"text").toLowerCase();c==="file"&&n("E32",o,{attr:"bind",problem:"files never serialize into an HTML file",fix:"use no-save + effect instead of bind"}),c==="password"&&!o.hasAttribute("transient")&&n("E31",o,{attr:"bind",problem:"a password must never serialize into a world-readable file",fix:"add transient to the password input"})}else if(o.tagName!=="SELECT"&&o.tagName!=="TEXTAREA"){let c=o.getAttribute("contenteditable");!(c!=null&&c!=="false")&&o.children.length>0&&n("E20",o,{attr:"bind",problem:"bind on a container element is not a control; a write would overwrite its children",fix:"bind a control (input/select/textarea), a contenteditable, or an empty text leaf"})}}if(o.hasAttribute("transient")&&o.hasAttribute("persist")&&n("E34",o,{problem:"transient and persist are opposite: persist forces the live value into the saved bytes, leaking exactly what transient drops",fix:"remove one \u2014 transient to keep it out of the file, or persist to save it"}),o.tagName==="DIALOG"&&o.hasAttribute("detail")&&!(o.parentElement&&o.parentElement.closest('[clay~="freeze"], [freeze], [save-freeze]'))&&t.warn("W31",o,{attr:"detail",problem:"a detail dialog writes open when it opens, and that attribute would be saved into the file",fix:'wrap the dialog in an element with clay="freeze" (not editor-ui, which removes it from the file), and make its key field transient'}),o.hasAttribute("item")&&!o.hasAttribute("template")&&o.parentNode&&o.parentNode.nodeType===1){let c=o.parentElement;(!c||!c.hasAttribute("items"))&&n("E10",o,{problem:"an [item] must be a direct child of an [items] list",fix:'wrap it in a container with items="name"'})}if(o.hasAttribute("items")&&u&&n("E17",o,{attr:"items",problem:"nested items inside a detail panel is a v1 mount error (nested collections ship in v1.1)"}),o.hasAttribute("items")){let c=e.querySelector(`[trigger-add="${o.getAttribute("items")}"]`);!Tt(o)&&!$e(e,o.getAttribute("items"))&&Lt(o).length===0&&c&&n("E17",o,{attr:"items",problem:`trigger-add targets items="${o.getAttribute("items")}" but it has no [item template] to clone`})}}),r&&(t.halted=!0,t.haltReason=t.errors[0]?t.errors[0].code:"halt",K(e,t.haltReason)),!r}var at="sap-styles",ot="[item][template]{display:none!important}[hidden]{display:none!important}[sap-error]{outline:2px solid #e5484d;outline-offset:1px}",ve=new WeakSet;function Pn(e){if(ve.has(e))return;let t=e.defaultView,r=t&&t.CSSStyleSheet;if(r&&"adoptedStyleSheets"in e)try{let n=new r;n.replaceSync(ot),e.adoptedStyleSheets=[...e.adoptedStyleSheets,n],ve.add(e);return}catch{}if(!e.getElementById(at)){let n=e.createElement("style");n.id=at,n.textContent=ot,(e.head||e.documentElement).appendChild(n)}ve.add(e)}var Wn=0;function it(){return typeof performance<"u"&&performance.now?performance.now():0}function lt(e){let t=e.id||e.getAttribute("sap")||`app-${Wn++}`,r=new At(t),n={root:e,name:t,diag:r,_state:null,_stats:null,_lastPass:null,_passes:0,_broken:!1,_mountMs:0,_mountWrites:0};if(!Mn(e,r))return n.halted=!0,n;Pn(e.ownerDocument);for(let l of e.querySelectorAll("textarea[data-value]"))Ie(l);let a=it();return et(n,{trigger:"mount",full:!0}),n._mountMs=it()-a,n._mountWrites=n._stats?n._stats.writes:0,n._mountWrites>0&&!on()&&!T("derived")&&r.warn("W30",e,{problem:`${n._mountWrites} paint(s) ran at mount; the saved file was out of sync with its declared state`,fix:"re-save once so the file mounts clean (a settled file writes nothing)"}),n}var st=/^(set:|move:|sort:|trigger-add$|trigger-remove$|trigger-reset$)/;function On(e){return`${e.tagName.toLowerCase()}[sap]`}function Dn(e){let t=0;for(let r of e.querySelectorAll("*"))for(let n of r.attributes)if(st.test(n.name)){t++;break}for(let r of e.attributes)if(st.test(r.name)){t++;break}return t}function Bn(e){function t(f){let u=f._stats||{},c=f.root;return{root:On(c),fields:u.fields||0,calcs:u.calcs||0,paints:u.paints||0,actions:Dn(c),lists:(c.hasAttribute("items")?1:0)+c.querySelectorAll("[items]").length,rows:c.querySelectorAll("[item]:not([template])").length,warnings:f.diag.warnings.length,errors:f.diag.errors.length,mountWrites:f._mountWrites||0,ms:Math.round((f._mountMs||0)*10)/10,passes:f._passes||0,lastPass:f._lastPass||null,ok:f.diag.errors.length===0&&!f.halted}}function r(){let f=e.apps().map(t);return{ok:f.every(u=>u.ok),apps:f}}function n(f){let u=t(f);return u.ok?`sap \u2713 ${u.root} \xB7 fields ${u.fields} \xB7 calcs ${u.calcs} \xB7 paints ${u.paints} \xB7 actions ${u.actions} \xB7 lists ${u.lists} \xB7 rows ${u.rows} \xB7 warnings ${u.warnings} \xB7 mount writes ${u.mountWrites} \xB7 ${u.ms}ms`:`sap \u2717 ${u.root} \xB7 errors ${u.errors} \xB7 warnings ${u.warnings} \xB7 ${u.ms}ms`}function a(){for(let f of e.apps()){let u=n(f);f.diag.errors.length||f.halted?console.error(u):console.log(u)}}function l(){let f=[],u=[];for(let c of e.apps())f.push(...c.diag.errors),u.push(...c.diag.warnings);return{ok:f.length===0,errors:f,warnings:u,counts:{errors:f.length,warnings:u.length}}}function o(f){let u=f===void 0?!0:!!f;for(let c of e.apps())c._debug=u;return console.log(`sap debug ${u?"on":"off"} \u2014 per-pass headers will ${u?"":"no longer "}log`),u}return{status:r,report:l,debug:o,greenLine:n,printGreenLines:a,REGISTRY:ke}}var Fn="0.8.0";function Hn({createAccessor:e,installInput:t,debugExtras:r}){let n=new Map,a=[],l=yt(et);function o(y){let v=y;for(;v;){if(v.nodeType===1&&v.hasAttribute&&v.hasAttribute("sap"))return n.get(v)||null;v=v.parentNode&&v.parentNode.host?v.parentNode.host:v.parentElement}return null}function f(){for(let y=a.length-1;y>=0;y--){let v=a[y];v.root.isConnected||(n.delete(v.root),a.splice(y,1))}}function u(y,v){if(y.moveBefore)try{y.moveBefore(v,null);return}catch{}y.appendChild(v)}function c(y,v){let x=v.parentElement;if(x){if(x.moveBefore)try{x.moveBefore(y,v);return}catch{}x.insertBefore(y,v)}}let i={apps:()=>a.slice(),appFor:o,isRegistered:y=>n.has(y),pruneDisconnected:f,schedule:(y,v)=>l.schedule(y,v),runNow:(y,v)=>l.runNow(y,v),moveInto:u,placeBefore:c,remountIfPresent:()=>V()},d=e(i),p=Bn(i),k=r?r(i,p):{},L=!1,_=!1,z=null;function ie(){L||(L=!0,t(i,d,document),z=pn(i))}function le(){let y=T("derived");y&&typeof y.mounted=="function"&&y.mounted()}function V(y=document){if(_)return[];ie(),Ke(i);let v=y.querySelectorAll("[sap]"),x=[];for(let C of v){if(n.has(C))continue;let s=lt(C);n.set(C,s),a.push(s),x.push(s)}for(let C of x){let s=p.greenLine(C);C.diag.errors.length||C.halted?console.error(s):console.log(s)}return le(),x}function se(y){if(_)return null;if(ie(),Ke(i),!y)return V();let v=typeof y=="string"?document.querySelector(y):y;if(!v)return null;if(n.has(v))return n.get(v);let x=lt(v);n.set(v,x),a.push(x);let C=p.greenLine(x);return x.diag.errors.length||x.halted?console.error(C):console.log(C),x}let w=d.Sap;return w.version=Fn,w.refresh=function(){for(let y of a)y.root.isConnected&&l.runNow(y,"refresh")},w.batch=dn,w.status=p.status,w.report=p.report,w.why=k.why,w.debug=p.debug,w.doctor=k.doctor,w.greenLine=p.greenLine,w.formats=Q,w.serializeControlToAttributes=pe,w.finalizeControlForSave=an,w.rehydrateControlFromAttributes=Ie,w.mount=se,w.config=function(y={}){return y.formats&&Object.assign(Q,y.formats),w},w._registry=n,w._reset=function(){n.clear(),a.length=0,Je()},w.unmount=function(){_=!0,n.clear(),a.length=0,Je(),typeof z=="function"&&z()},{Sap:w,mountAll:V,mount:se,runtime:i}}function In(e){if(typeof document>"u")return;let t=()=>fn(()=>e());document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}function zn(e){let t=[];function r(u){let c=u.target;if(!c||c.nodeType!==1)return;let i=e.appFor(c);if(i){c.hasAttribute("persist")&&!qe(c)&&me(c)&&pe(c);for(let d of t)if(d(c,i))return;e.schedule(i,u.type+" "+(c.id||c.tagName.toLowerCase()))}}function n(u){let c=u.target,i=e.appFor(c);i&&[...c.querySelectorAll("[bind]")].every(d=>me(d))&&setTimeout(()=>{c.querySelectorAll("[bind]").forEach(d=>{d.dispatchEvent(new Event("input",{bubbles:!0})),d.dispatchEvent(new Event("change",{bubbles:!0}))}),e.schedule(i,"reset")},0)}function a(u){let c=e.appFor(u.target);c&&e.schedule(c,"toggle")}function l(u){let c=u.detail||{};for(let i of[c.from,c.to,u.target]){if(!i||i.nodeType!==1)continue;let d=e.appFor(i);d&&e.schedule(d,"sorted")}}function o(u){if(u.key!=="ArrowUp"&&u.key!=="ArrowDown")return;let c=u.target;if(!c||c.nodeType!==1||c.tagName!=="INPUT"||!c.hasAttribute("bind")||!c.hasAttribute("step"))return;let i=(c.getAttribute("type")||"text").toLowerCase();if(i!=="text"&&i!=="tel"&&i!=="search"||!e.appFor(c)||!me(c))return;u.preventDefault();let d=R(c.getAttribute("step"))||1,p=u.key==="ArrowUp"?1:-1,k=R(c.value)+d*(u.shiftKey?10:1)*p,L=c.getAttribute("min"),_=c.getAttribute("max");L!==null&&L!==""&&k<R(L)&&(k=R(L)),_!==null&&_!==""&&k>R(_)&&(k=R(_)),yn(c).write(String(Number(k.toFixed(2))))}function f(u=document){u.addEventListener("reset",n),u.addEventListener("toggle",a,!0),u.addEventListener("input",r),u.addEventListener("change",r),u.addEventListener("clay:sorted",l),u.addEventListener("keydown",o)}return{install:f,addRouter:u=>t.push(u)}}var X="https://clayjs.com/v1/sap.js",qn=/^(calc|set|move|sort):/,Un=new Set(["each","detail","effect","invalid","confirm","trigger-add","trigger-remove","trigger-reset"]);function we(e){return qn.test(e)||Un.has(e)}Cn((e,t)=>{for(let r of e.attributes)we(r.name)&&t("E50",e,{attr:r.name,expr:r.value,problem:`${r.name} is full sapjs; the sapjs core only paints declared state`,fix:`load ${X}; the markup stays as it is`})});function I(e,t,r){e.app.diag.error("E50",t,{attr:r,problem:`${r} is full sapjs; the sapjs core only paints declared state`,fix:`load ${X}; the markup stays as it is`}),K(t,"E50"),e.app.halted=!0}xn({name:"core-only",collect(e,t,r){r.calcs&&I(e,t,"calc:"+r.calcs[0].name),r.effects&&I(e,t,"effect"),r.invalids&&I(e,t,"invalid");for(let n of t.attributes)we(n.name)&&(n.name.startsWith("calc:")&&r.calcs||n.name==="effect"&&r.effects||n.name==="invalid"&&r.invalids||I(e,t,n.name));return!1},boundary:{each(e,t){I(e,t,"each")},detail(e,t){I(e,t,"detail")}}});function Gn(){return{Sap:function(){throw new Error(`Sap(el) is full sapjs; load ${X}`)}}}var ut=e=>()=>(console.warn(`Sap.${e} is full sapjs; load ${X}`),null),{Sap:Y,mountAll:ct,mount:Xn,runtime:Yn}=Hn({createAccessor:Gn,debugExtras:()=>({why:ut("why"),doctor:ut("doctor")}),installInput(e,t,r){zn(e).install(r)}});Y.core=!0;var Vn=typeof window<"u"&&window.Sap&&!window.Sap.core;Vn?Y.unmount():In(ct),typeof window<"u"&&!window.Sap&&(window.Sap=Y);var Kn=Y;return gt(Ee)})(),Zn=Qn.default;export{Zn as default};