@kywi-software/core 0.1.0 → 0.2.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 (467) hide show
  1. package/dist/admin/app.d.ts +69 -0
  2. package/dist/admin/app.d.ts.map +1 -0
  3. package/dist/admin/app.js +98 -0
  4. package/dist/admin/app.js.map +1 -0
  5. package/dist/admin/chrome.d.ts +37 -0
  6. package/dist/admin/chrome.d.ts.map +1 -0
  7. package/dist/admin/chrome.js +162 -0
  8. package/dist/admin/chrome.js.map +1 -0
  9. package/dist/admin/context.d.ts +58 -0
  10. package/dist/admin/context.d.ts.map +1 -0
  11. package/dist/admin/context.js +31 -0
  12. package/dist/admin/context.js.map +1 -0
  13. package/dist/admin/index.d.ts +9 -1
  14. package/dist/admin/index.d.ts.map +1 -1
  15. package/dist/admin/index.js +12 -0
  16. package/dist/admin/index.js.map +1 -1
  17. package/dist/admin/kywi-logo.d.ts +21 -0
  18. package/dist/admin/kywi-logo.d.ts.map +1 -0
  19. package/dist/admin/kywi-logo.js +123 -0
  20. package/dist/admin/kywi-logo.js.map +1 -0
  21. package/dist/admin/nav.d.ts +21 -1
  22. package/dist/admin/nav.d.ts.map +1 -1
  23. package/dist/admin/nav.js +45 -88
  24. package/dist/admin/nav.js.map +1 -1
  25. package/dist/admin/primitives.d.ts +52 -0
  26. package/dist/admin/primitives.d.ts.map +1 -0
  27. package/dist/admin/primitives.js +78 -0
  28. package/dist/admin/primitives.js.map +1 -0
  29. package/dist/admin/registry.d.ts +130 -0
  30. package/dist/admin/registry.d.ts.map +1 -0
  31. package/dist/admin/registry.js +456 -0
  32. package/dist/admin/registry.js.map +1 -0
  33. package/dist/admin/server.d.ts +154 -0
  34. package/dist/admin/server.d.ts.map +1 -0
  35. package/dist/admin/server.js +121 -0
  36. package/dist/admin/server.js.map +1 -0
  37. package/dist/admin/shell.d.ts +27 -1
  38. package/dist/admin/shell.d.ts.map +1 -1
  39. package/dist/admin/shell.js +71 -6
  40. package/dist/admin/shell.js.map +1 -1
  41. package/dist/admin/styles/admin.css +113 -23
  42. package/dist/admin/surface-matcher.d.ts +51 -0
  43. package/dist/admin/surface-matcher.d.ts.map +1 -0
  44. package/dist/admin/surface-matcher.js +181 -0
  45. package/dist/admin/surface-matcher.js.map +1 -0
  46. package/dist/admin/surfaces/approvals/approvals-data.d.ts +17 -0
  47. package/dist/admin/surfaces/approvals/approvals-data.d.ts.map +1 -0
  48. package/dist/admin/surfaces/approvals/approvals-data.js +55 -0
  49. package/dist/admin/surfaces/approvals/approvals-data.js.map +1 -0
  50. package/dist/admin/surfaces/approvals/approvals-index.d.ts +3 -0
  51. package/dist/admin/surfaces/approvals/approvals-index.d.ts.map +1 -0
  52. package/dist/admin/surfaces/approvals/approvals-index.js +75 -0
  53. package/dist/admin/surfaces/approvals/approvals-index.js.map +1 -0
  54. package/dist/admin/surfaces/audiences/audiences-data.d.ts +107 -0
  55. package/dist/admin/surfaces/audiences/audiences-data.d.ts.map +1 -0
  56. package/dist/admin/surfaces/audiences/audiences-data.js +216 -0
  57. package/dist/admin/surfaces/audiences/audiences-data.js.map +1 -0
  58. package/dist/admin/surfaces/audiences/audiences-detail.d.ts +3 -0
  59. package/dist/admin/surfaces/audiences/audiences-detail.d.ts.map +1 -0
  60. package/dist/admin/surfaces/audiences/audiences-detail.js +78 -0
  61. package/dist/admin/surfaces/audiences/audiences-detail.js.map +1 -0
  62. package/dist/admin/surfaces/audiences/audiences-edit.d.ts +3 -0
  63. package/dist/admin/surfaces/audiences/audiences-edit.d.ts.map +1 -0
  64. package/dist/admin/surfaces/audiences/audiences-edit.js +55 -0
  65. package/dist/admin/surfaces/audiences/audiences-edit.js.map +1 -0
  66. package/dist/admin/surfaces/audiences/audiences-fields.d.ts +3 -0
  67. package/dist/admin/surfaces/audiences/audiences-fields.d.ts.map +1 -0
  68. package/dist/admin/surfaces/audiences/audiences-fields.js +56 -0
  69. package/dist/admin/surfaces/audiences/audiences-fields.js.map +1 -0
  70. package/dist/admin/surfaces/audiences/audiences-list.d.ts +3 -0
  71. package/dist/admin/surfaces/audiences/audiences-list.d.ts.map +1 -0
  72. package/dist/admin/surfaces/audiences/audiences-list.js +50 -0
  73. package/dist/admin/surfaces/audiences/audiences-list.js.map +1 -0
  74. package/dist/admin/surfaces/audiences/audiences-new.d.ts +3 -0
  75. package/dist/admin/surfaces/audiences/audiences-new.d.ts.map +1 -0
  76. package/dist/admin/surfaces/audiences/audiences-new.js +54 -0
  77. package/dist/admin/surfaces/audiences/audiences-new.js.map +1 -0
  78. package/dist/admin/surfaces/audiences/audiences-preview-tokens.d.ts +3 -0
  79. package/dist/admin/surfaces/audiences/audiences-preview-tokens.d.ts.map +1 -0
  80. package/dist/admin/surfaces/audiences/audiences-preview-tokens.js +123 -0
  81. package/dist/admin/surfaces/audiences/audiences-preview-tokens.js.map +1 -0
  82. package/dist/admin/surfaces/audiences/audiences-selfid-widget.d.ts +3 -0
  83. package/dist/admin/surfaces/audiences/audiences-selfid-widget.d.ts.map +1 -0
  84. package/dist/admin/surfaces/audiences/audiences-selfid-widget.js +50 -0
  85. package/dist/admin/surfaces/audiences/audiences-selfid-widget.js.map +1 -0
  86. package/dist/admin/surfaces/audiences/audiences-test.d.ts +3 -0
  87. package/dist/admin/surfaces/audiences/audiences-test.d.ts.map +1 -0
  88. package/dist/admin/surfaces/audiences/audiences-test.js +39 -0
  89. package/dist/admin/surfaces/audiences/audiences-test.js.map +1 -0
  90. package/dist/admin/surfaces/audiences/states.d.ts +10 -0
  91. package/dist/admin/surfaces/audiences/states.d.ts.map +1 -0
  92. package/dist/admin/surfaces/audiences/states.js +11 -0
  93. package/dist/admin/surfaces/audiences/states.js.map +1 -0
  94. package/dist/admin/surfaces/changesets/changesets-data.d.ts +35 -0
  95. package/dist/admin/surfaces/changesets/changesets-data.d.ts.map +1 -0
  96. package/dist/admin/surfaces/changesets/changesets-data.js +151 -0
  97. package/dist/admin/surfaces/changesets/changesets-data.js.map +1 -0
  98. package/dist/admin/surfaces/changesets/changesets-detail.d.ts +3 -0
  99. package/dist/admin/surfaces/changesets/changesets-detail.d.ts.map +1 -0
  100. package/dist/admin/surfaces/changesets/changesets-detail.js +84 -0
  101. package/dist/admin/surfaces/changesets/changesets-detail.js.map +1 -0
  102. package/dist/admin/surfaces/changesets/changesets-index.d.ts +3 -0
  103. package/dist/admin/surfaces/changesets/changesets-index.d.ts.map +1 -0
  104. package/dist/admin/surfaces/changesets/changesets-index.js +62 -0
  105. package/dist/admin/surfaces/changesets/changesets-index.js.map +1 -0
  106. package/dist/admin/surfaces/comments/comment-moderation.d.ts +18 -0
  107. package/dist/admin/surfaces/comments/comment-moderation.d.ts.map +1 -0
  108. package/dist/admin/surfaces/comments/comment-moderation.js +36 -0
  109. package/dist/admin/surfaces/comments/comment-moderation.js.map +1 -0
  110. package/dist/admin/surfaces/comments/comments-data.d.ts +23 -0
  111. package/dist/admin/surfaces/comments/comments-data.d.ts.map +1 -0
  112. package/dist/admin/surfaces/comments/comments-data.js +81 -0
  113. package/dist/admin/surfaces/comments/comments-data.js.map +1 -0
  114. package/dist/admin/surfaces/comments/comments-index.d.ts +3 -0
  115. package/dist/admin/surfaces/comments/comments-index.d.ts.map +1 -0
  116. package/dist/admin/surfaces/comments/comments-index.js +73 -0
  117. package/dist/admin/surfaces/comments/comments-index.js.map +1 -0
  118. package/dist/admin/surfaces/content/content-edit.d.ts +3 -0
  119. package/dist/admin/surfaces/content/content-edit.d.ts.map +1 -0
  120. package/dist/admin/surfaces/content/content-edit.js +321 -0
  121. package/dist/admin/surfaces/content/content-edit.js.map +1 -0
  122. package/dist/admin/surfaces/content/content-index.d.ts +3 -0
  123. package/dist/admin/surfaces/content/content-index.d.ts.map +1 -0
  124. package/dist/admin/surfaces/content/content-index.js +21 -0
  125. package/dist/admin/surfaces/content/content-index.js.map +1 -0
  126. package/dist/admin/surfaces/content/content-list.d.ts +3 -0
  127. package/dist/admin/surfaces/content/content-list.d.ts.map +1 -0
  128. package/dist/admin/surfaces/content/content-list.js +70 -0
  129. package/dist/admin/surfaces/content/content-list.js.map +1 -0
  130. package/dist/admin/surfaces/content/content-new.d.ts +3 -0
  131. package/dist/admin/surfaces/content/content-new.d.ts.map +1 -0
  132. package/dist/admin/surfaces/content/content-new.js +109 -0
  133. package/dist/admin/surfaces/content/content-new.js.map +1 -0
  134. package/dist/admin/surfaces/content/content-translation-bar.d.ts +12 -0
  135. package/dist/admin/surfaces/content/content-translation-bar.d.ts.map +1 -0
  136. package/dist/admin/surfaces/content/content-translation-bar.js +65 -0
  137. package/dist/admin/surfaces/content/content-translation-bar.js.map +1 -0
  138. package/dist/admin/surfaces/content/runtime-content-types.d.ts +41 -0
  139. package/dist/admin/surfaces/content/runtime-content-types.d.ts.map +1 -0
  140. package/dist/admin/surfaces/content/runtime-content-types.js +51 -0
  141. package/dist/admin/surfaces/content/runtime-content-types.js.map +1 -0
  142. package/dist/admin/surfaces/contentTree/content-tree.d.ts +3 -0
  143. package/dist/admin/surfaces/contentTree/content-tree.d.ts.map +1 -0
  144. package/dist/admin/surfaces/contentTree/content-tree.js +179 -0
  145. package/dist/admin/surfaces/contentTree/content-tree.js.map +1 -0
  146. package/dist/admin/surfaces/contentTree/move-to-picker.d.ts +12 -0
  147. package/dist/admin/surfaces/contentTree/move-to-picker.d.ts.map +1 -0
  148. package/dist/admin/surfaces/contentTree/move-to-picker.js +77 -0
  149. package/dist/admin/surfaces/contentTree/move-to-picker.js.map +1 -0
  150. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts +3 -0
  151. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts.map +1 -0
  152. package/dist/admin/surfaces/contentTypes/content-types-designer.js +260 -0
  153. package/dist/admin/surfaces/contentTypes/content-types-designer.js.map +1 -0
  154. package/dist/admin/surfaces/contentTypes/content-types-list.d.ts +3 -0
  155. package/dist/admin/surfaces/contentTypes/content-types-list.d.ts.map +1 -0
  156. package/dist/admin/surfaces/contentTypes/content-types-list.js +69 -0
  157. package/dist/admin/surfaces/contentTypes/content-types-list.js.map +1 -0
  158. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts +3 -0
  159. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -0
  160. package/dist/admin/surfaces/dashboard/dashboard-index.js +100 -0
  161. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -0
  162. package/dist/admin/surfaces/experiments/experiments-data.d.ts +12 -0
  163. package/dist/admin/surfaces/experiments/experiments-data.d.ts.map +1 -0
  164. package/dist/admin/surfaces/experiments/experiments-data.js +89 -0
  165. package/dist/admin/surfaces/experiments/experiments-data.js.map +1 -0
  166. package/dist/admin/surfaces/experiments/experiments-detail.d.ts +3 -0
  167. package/dist/admin/surfaces/experiments/experiments-detail.d.ts.map +1 -0
  168. package/dist/admin/surfaces/experiments/experiments-detail.js +87 -0
  169. package/dist/admin/surfaces/experiments/experiments-detail.js.map +1 -0
  170. package/dist/admin/surfaces/experiments/experiments-list.d.ts +3 -0
  171. package/dist/admin/surfaces/experiments/experiments-list.d.ts.map +1 -0
  172. package/dist/admin/surfaces/experiments/experiments-list.js +37 -0
  173. package/dist/admin/surfaces/experiments/experiments-list.js.map +1 -0
  174. package/dist/admin/surfaces/experiments/experiments-new.d.ts +3 -0
  175. package/dist/admin/surfaces/experiments/experiments-new.d.ts.map +1 -0
  176. package/dist/admin/surfaces/experiments/experiments-new.js +33 -0
  177. package/dist/admin/surfaces/experiments/experiments-new.js.map +1 -0
  178. package/dist/admin/surfaces/experiments/states.d.ts +10 -0
  179. package/dist/admin/surfaces/experiments/states.d.ts.map +1 -0
  180. package/dist/admin/surfaces/experiments/states.js +11 -0
  181. package/dist/admin/surfaces/experiments/states.js.map +1 -0
  182. package/dist/admin/surfaces/extensions/extensions-data.d.ts +59 -0
  183. package/dist/admin/surfaces/extensions/extensions-data.d.ts.map +1 -0
  184. package/dist/admin/surfaces/extensions/extensions-data.js +71 -0
  185. package/dist/admin/surfaces/extensions/extensions-data.js.map +1 -0
  186. package/dist/admin/surfaces/extensions/extensions-import-export.d.ts +3 -0
  187. package/dist/admin/surfaces/extensions/extensions-import-export.d.ts.map +1 -0
  188. package/dist/admin/surfaces/extensions/extensions-import-export.js +77 -0
  189. package/dist/admin/surfaces/extensions/extensions-import-export.js.map +1 -0
  190. package/dist/admin/surfaces/extensions/extensions-list.d.ts +3 -0
  191. package/dist/admin/surfaces/extensions/extensions-list.d.ts.map +1 -0
  192. package/dist/admin/surfaces/extensions/extensions-list.js +106 -0
  193. package/dist/admin/surfaces/extensions/extensions-list.js.map +1 -0
  194. package/dist/admin/surfaces/extensions/form-modal.d.ts +17 -0
  195. package/dist/admin/surfaces/extensions/form-modal.d.ts.map +1 -0
  196. package/dist/admin/surfaces/extensions/form-modal.js +27 -0
  197. package/dist/admin/surfaces/extensions/form-modal.js.map +1 -0
  198. package/dist/admin/surfaces/feeds/feed-editor.d.ts +8 -0
  199. package/dist/admin/surfaces/feeds/feed-editor.d.ts.map +1 -0
  200. package/dist/admin/surfaces/feeds/feed-editor.js +120 -0
  201. package/dist/admin/surfaces/feeds/feed-editor.js.map +1 -0
  202. package/dist/admin/surfaces/feeds/feeds-data.d.ts +35 -0
  203. package/dist/admin/surfaces/feeds/feeds-data.d.ts.map +1 -0
  204. package/dist/admin/surfaces/feeds/feeds-data.js +81 -0
  205. package/dist/admin/surfaces/feeds/feeds-data.js.map +1 -0
  206. package/dist/admin/surfaces/feeds/feeds-detail.d.ts +3 -0
  207. package/dist/admin/surfaces/feeds/feeds-detail.d.ts.map +1 -0
  208. package/dist/admin/surfaces/feeds/feeds-detail.js +36 -0
  209. package/dist/admin/surfaces/feeds/feeds-detail.js.map +1 -0
  210. package/dist/admin/surfaces/feeds/feeds-list.d.ts +3 -0
  211. package/dist/admin/surfaces/feeds/feeds-list.d.ts.map +1 -0
  212. package/dist/admin/surfaces/feeds/feeds-list.js +49 -0
  213. package/dist/admin/surfaces/feeds/feeds-list.js.map +1 -0
  214. package/dist/admin/surfaces/feeds/feeds-new.d.ts +3 -0
  215. package/dist/admin/surfaces/feeds/feeds-new.d.ts.map +1 -0
  216. package/dist/admin/surfaces/feeds/feeds-new.js +7 -0
  217. package/dist/admin/surfaces/feeds/feeds-new.js.map +1 -0
  218. package/dist/admin/surfaces/forms/form-editor.d.ts +5 -0
  219. package/dist/admin/surfaces/forms/form-editor.d.ts.map +1 -0
  220. package/dist/admin/surfaces/forms/form-editor.js +59 -0
  221. package/dist/admin/surfaces/forms/form-editor.js.map +1 -0
  222. package/dist/admin/surfaces/forms/forms-data.d.ts +52 -0
  223. package/dist/admin/surfaces/forms/forms-data.d.ts.map +1 -0
  224. package/dist/admin/surfaces/forms/forms-data.js +106 -0
  225. package/dist/admin/surfaces/forms/forms-data.js.map +1 -0
  226. package/dist/admin/surfaces/forms/forms-edit.d.ts +3 -0
  227. package/dist/admin/surfaces/forms/forms-edit.d.ts.map +1 -0
  228. package/dist/admin/surfaces/forms/forms-edit.js +40 -0
  229. package/dist/admin/surfaces/forms/forms-edit.js.map +1 -0
  230. package/dist/admin/surfaces/forms/forms-list.d.ts +3 -0
  231. package/dist/admin/surfaces/forms/forms-list.d.ts.map +1 -0
  232. package/dist/admin/surfaces/forms/forms-list.js +53 -0
  233. package/dist/admin/surfaces/forms/forms-list.js.map +1 -0
  234. package/dist/admin/surfaces/forms/forms-new.d.ts +3 -0
  235. package/dist/admin/surfaces/forms/forms-new.d.ts.map +1 -0
  236. package/dist/admin/surfaces/forms/forms-new.js +7 -0
  237. package/dist/admin/surfaces/forms/forms-new.js.map +1 -0
  238. package/dist/admin/surfaces/forms/forms-submissions.d.ts +3 -0
  239. package/dist/admin/surfaces/forms/forms-submissions.d.ts.map +1 -0
  240. package/dist/admin/surfaces/forms/forms-submissions.js +125 -0
  241. package/dist/admin/surfaces/forms/forms-submissions.js.map +1 -0
  242. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts +8 -0
  243. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -0
  244. package/dist/admin/surfaces/layouts/layout-editor-client.js +77 -0
  245. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -0
  246. package/dist/admin/surfaces/layouts/layouts-data.d.ts +53 -0
  247. package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -0
  248. package/dist/admin/surfaces/layouts/layouts-data.js +61 -0
  249. package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -0
  250. package/dist/admin/surfaces/layouts/layouts-detail.d.ts +3 -0
  251. package/dist/admin/surfaces/layouts/layouts-detail.d.ts.map +1 -0
  252. package/dist/admin/surfaces/layouts/layouts-detail.js +38 -0
  253. package/dist/admin/surfaces/layouts/layouts-detail.js.map +1 -0
  254. package/dist/admin/surfaces/layouts/layouts-list.d.ts +3 -0
  255. package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -0
  256. package/dist/admin/surfaces/layouts/layouts-list.js +62 -0
  257. package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -0
  258. package/dist/admin/surfaces/layouts/layouts-new.d.ts +3 -0
  259. package/dist/admin/surfaces/layouts/layouts-new.d.ts.map +1 -0
  260. package/dist/admin/surfaces/layouts/layouts-new.js +7 -0
  261. package/dist/admin/surfaces/layouts/layouts-new.js.map +1 -0
  262. package/dist/admin/surfaces/login.d.ts +20 -0
  263. package/dist/admin/surfaces/login.d.ts.map +1 -0
  264. package/dist/admin/surfaces/login.js +93 -0
  265. package/dist/admin/surfaces/login.js.map +1 -0
  266. package/dist/admin/surfaces/media/library.d.ts +3 -0
  267. package/dist/admin/surfaces/media/library.d.ts.map +1 -0
  268. package/dist/admin/surfaces/media/library.js +7 -0
  269. package/dist/admin/surfaces/media/library.js.map +1 -0
  270. package/dist/admin/surfaces/media/media-client.d.ts +4 -0
  271. package/dist/admin/surfaces/media/media-client.d.ts.map +1 -0
  272. package/dist/admin/surfaces/media/media-client.js +203 -0
  273. package/dist/admin/surfaces/media/media-client.js.map +1 -0
  274. package/dist/admin/surfaces/media/upload.d.ts +3 -0
  275. package/dist/admin/surfaces/media/upload.d.ts.map +1 -0
  276. package/dist/admin/surfaces/media/upload.js +7 -0
  277. package/dist/admin/surfaces/media/upload.js.map +1 -0
  278. package/dist/admin/surfaces/plugins/plugins-data.d.ts +37 -0
  279. package/dist/admin/surfaces/plugins/plugins-data.d.ts.map +1 -0
  280. package/dist/admin/surfaces/plugins/plugins-data.js +31 -0
  281. package/dist/admin/surfaces/plugins/plugins-data.js.map +1 -0
  282. package/dist/admin/surfaces/plugins/plugins-index.d.ts +3 -0
  283. package/dist/admin/surfaces/plugins/plugins-index.d.ts.map +1 -0
  284. package/dist/admin/surfaces/plugins/plugins-index.js +72 -0
  285. package/dist/admin/surfaces/plugins/plugins-index.js.map +1 -0
  286. package/dist/admin/surfaces/search/search-index.d.ts +3 -0
  287. package/dist/admin/surfaces/search/search-index.d.ts.map +1 -0
  288. package/dist/admin/surfaces/search/search-index.js +76 -0
  289. package/dist/admin/surfaces/search/search-index.js.map +1 -0
  290. package/dist/admin/surfaces/settings/admin-features.d.ts +3 -0
  291. package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -0
  292. package/dist/admin/surfaces/settings/admin-features.js +138 -0
  293. package/dist/admin/surfaces/settings/admin-features.js.map +1 -0
  294. package/dist/admin/surfaces/settings/settings-ax.d.ts +3 -0
  295. package/dist/admin/surfaces/settings/settings-ax.d.ts.map +1 -0
  296. package/dist/admin/surfaces/settings/settings-ax.js +63 -0
  297. package/dist/admin/surfaces/settings/settings-ax.js.map +1 -0
  298. package/dist/admin/surfaces/settings/settings-cache.d.ts +3 -0
  299. package/dist/admin/surfaces/settings/settings-cache.d.ts.map +1 -0
  300. package/dist/admin/surfaces/settings/settings-cache.js +64 -0
  301. package/dist/admin/surfaces/settings/settings-cache.js.map +1 -0
  302. package/dist/admin/surfaces/settings/settings-email.d.ts +3 -0
  303. package/dist/admin/surfaces/settings/settings-email.d.ts.map +1 -0
  304. package/dist/admin/surfaces/settings/settings-email.js +89 -0
  305. package/dist/admin/surfaces/settings/settings-email.js.map +1 -0
  306. package/dist/admin/surfaces/settings/settings-general.d.ts +3 -0
  307. package/dist/admin/surfaces/settings/settings-general.d.ts.map +1 -0
  308. package/dist/admin/surfaces/settings/settings-general.js +91 -0
  309. package/dist/admin/surfaces/settings/settings-general.js.map +1 -0
  310. package/dist/admin/surfaces/settings/settings-site.d.ts +3 -0
  311. package/dist/admin/surfaces/settings/settings-site.d.ts.map +1 -0
  312. package/dist/admin/surfaces/settings/settings-site.js +14 -0
  313. package/dist/admin/surfaces/settings/settings-site.js.map +1 -0
  314. package/dist/admin/surfaces/settings/settings-sites.d.ts +3 -0
  315. package/dist/admin/surfaces/settings/settings-sites.d.ts.map +1 -0
  316. package/dist/admin/surfaces/settings/settings-sites.js +134 -0
  317. package/dist/admin/surfaces/settings/settings-sites.js.map +1 -0
  318. package/dist/admin/surfaces/settings/states.d.ts +33 -0
  319. package/dist/admin/surfaces/settings/states.d.ts.map +1 -0
  320. package/dist/admin/surfaces/settings/states.js +33 -0
  321. package/dist/admin/surfaces/settings/states.js.map +1 -0
  322. package/dist/admin/surfaces/taxonomy/categories.d.ts +3 -0
  323. package/dist/admin/surfaces/taxonomy/categories.d.ts.map +1 -0
  324. package/dist/admin/surfaces/taxonomy/categories.js +162 -0
  325. package/dist/admin/surfaces/taxonomy/categories.js.map +1 -0
  326. package/dist/admin/surfaces/taxonomy/tags.d.ts +3 -0
  327. package/dist/admin/surfaces/taxonomy/tags.d.ts.map +1 -0
  328. package/dist/admin/surfaces/taxonomy/tags.js +112 -0
  329. package/dist/admin/surfaces/taxonomy/tags.js.map +1 -0
  330. package/dist/admin/surfaces/taxonomy/taxonomy-ui.d.ts +39 -0
  331. package/dist/admin/surfaces/taxonomy/taxonomy-ui.d.ts.map +1 -0
  332. package/dist/admin/surfaces/taxonomy/taxonomy-ui.js +66 -0
  333. package/dist/admin/surfaces/taxonomy/taxonomy-ui.js.map +1 -0
  334. package/dist/admin/surfaces/translations/states.d.ts +10 -0
  335. package/dist/admin/surfaces/translations/states.d.ts.map +1 -0
  336. package/dist/admin/surfaces/translations/states.js +11 -0
  337. package/dist/admin/surfaces/translations/states.js.map +1 -0
  338. package/dist/admin/surfaces/translations/translations-index.d.ts +3 -0
  339. package/dist/admin/surfaces/translations/translations-index.d.ts.map +1 -0
  340. package/dist/admin/surfaces/translations/translations-index.js +99 -0
  341. package/dist/admin/surfaces/translations/translations-index.js.map +1 -0
  342. package/dist/admin/surfaces/trash/trash-index.d.ts +3 -0
  343. package/dist/admin/surfaces/trash/trash-index.d.ts.map +1 -0
  344. package/dist/admin/surfaces/trash/trash-index.js +96 -0
  345. package/dist/admin/surfaces/trash/trash-index.js.map +1 -0
  346. package/dist/admin/surfaces/users/users-data.d.ts +51 -0
  347. package/dist/admin/surfaces/users/users-data.d.ts.map +1 -0
  348. package/dist/admin/surfaces/users/users-data.js +60 -0
  349. package/dist/admin/surfaces/users/users-data.js.map +1 -0
  350. package/dist/admin/surfaces/users/users-detail.d.ts +3 -0
  351. package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -0
  352. package/dist/admin/surfaces/users/users-detail.js +148 -0
  353. package/dist/admin/surfaces/users/users-detail.js.map +1 -0
  354. package/dist/admin/surfaces/users/users-groups.d.ts +3 -0
  355. package/dist/admin/surfaces/users/users-groups.d.ts.map +1 -0
  356. package/dist/admin/surfaces/users/users-groups.js +136 -0
  357. package/dist/admin/surfaces/users/users-groups.js.map +1 -0
  358. package/dist/admin/surfaces/users/users-list.d.ts +3 -0
  359. package/dist/admin/surfaces/users/users-list.d.ts.map +1 -0
  360. package/dist/admin/surfaces/users/users-list.js +119 -0
  361. package/dist/admin/surfaces/users/users-list.js.map +1 -0
  362. package/dist/admin/surfaces/users/users-new.d.ts +3 -0
  363. package/dist/admin/surfaces/users/users-new.d.ts.map +1 -0
  364. package/dist/admin/surfaces/users/users-new.js +78 -0
  365. package/dist/admin/surfaces/users/users-new.js.map +1 -0
  366. package/dist/admin/surfaces/users/users-permissions.d.ts +3 -0
  367. package/dist/admin/surfaces/users/users-permissions.d.ts.map +1 -0
  368. package/dist/admin/surfaces/users/users-permissions.js +135 -0
  369. package/dist/admin/surfaces/users/users-permissions.js.map +1 -0
  370. package/dist/admin/surfaces/webServices/api-keys.d.ts +3 -0
  371. package/dist/admin/surfaces/webServices/api-keys.d.ts.map +1 -0
  372. package/dist/admin/surfaces/webServices/api-keys.js +65 -0
  373. package/dist/admin/surfaces/webServices/api-keys.js.map +1 -0
  374. package/dist/admin/surfaces/webServices/oauth.d.ts +3 -0
  375. package/dist/admin/surfaces/webServices/oauth.d.ts.map +1 -0
  376. package/dist/admin/surfaces/webServices/oauth.js +75 -0
  377. package/dist/admin/surfaces/webServices/oauth.js.map +1 -0
  378. package/dist/admin/surfaces/webServices/secret-reveal-modal.d.ts +8 -0
  379. package/dist/admin/surfaces/webServices/secret-reveal-modal.d.ts.map +1 -0
  380. package/dist/admin/surfaces/webServices/secret-reveal-modal.js +30 -0
  381. package/dist/admin/surfaces/webServices/secret-reveal-modal.js.map +1 -0
  382. package/dist/admin/surfaces/webServices/web-services-data.d.ts +38 -0
  383. package/dist/admin/surfaces/webServices/web-services-data.d.ts.map +1 -0
  384. package/dist/admin/surfaces/webServices/web-services-data.js +52 -0
  385. package/dist/admin/surfaces/webServices/web-services-data.js.map +1 -0
  386. package/dist/api/admin-features-routes.d.ts +10 -0
  387. package/dist/api/admin-features-routes.d.ts.map +1 -0
  388. package/dist/api/admin-features-routes.js +61 -0
  389. package/dist/api/admin-features-routes.js.map +1 -0
  390. package/dist/api/graphql/resolvers.d.ts +6 -6
  391. package/dist/api/index.d.ts.map +1 -1
  392. package/dist/api/index.js +2 -0
  393. package/dist/api/index.js.map +1 -1
  394. package/dist/config/define.d.ts +22 -1
  395. package/dist/config/define.d.ts.map +1 -1
  396. package/dist/config/define.js +44 -0
  397. package/dist/config/define.js.map +1 -1
  398. package/dist/config/parse.d.ts.map +1 -1
  399. package/dist/config/parse.js +8 -2
  400. package/dist/config/parse.js.map +1 -1
  401. package/dist/config/types.d.ts +60 -1
  402. package/dist/config/types.d.ts.map +1 -1
  403. package/dist/config/types.js +20 -1
  404. package/dist/config/types.js.map +1 -1
  405. package/dist/config/validate.d.ts.map +1 -1
  406. package/dist/config/validate.js +60 -0
  407. package/dist/config/validate.js.map +1 -1
  408. package/dist/db/admin-features-queries.d.ts +29 -0
  409. package/dist/db/admin-features-queries.d.ts.map +1 -0
  410. package/dist/db/admin-features-queries.js +46 -0
  411. package/dist/db/admin-features-queries.js.map +1 -0
  412. package/dist/db/analytics-queries.d.ts +2 -2
  413. package/dist/db/audit-queries.d.ts +3 -3
  414. package/dist/db/category-queries.d.ts +6 -6
  415. package/dist/db/changeset-audit-queries.d.ts +2 -2
  416. package/dist/db/changeset-queries.d.ts +8 -8
  417. package/dist/db/extension-queries.d.ts +17 -17
  418. package/dist/db/feed-queries.d.ts +6 -6
  419. package/dist/db/media-queries.d.ts +12 -12
  420. package/dist/db/site-admin-queries.d.ts +1 -1
  421. package/dist/db/site-queries.d.ts +3 -3
  422. package/dist/db/tag-queries.d.ts +4 -4
  423. package/dist/db/webhook-queries.d.ts +8 -8
  424. package/dist/db/workflow-queries.d.ts +5 -5
  425. package/dist/experiments/schema.d.ts +1 -1
  426. package/dist/host-client/index.d.ts +1 -0
  427. package/dist/host-client/index.d.ts.map +1 -1
  428. package/dist/host-client/index.js +4 -0
  429. package/dist/host-client/index.js.map +1 -1
  430. package/dist/host-client/json.d.ts +36 -0
  431. package/dist/host-client/json.d.ts.map +1 -0
  432. package/dist/host-client/json.js +106 -0
  433. package/dist/host-client/json.js.map +1 -0
  434. package/dist/layout/modules-extended.d.ts.map +1 -1
  435. package/dist/layout/modules-extended.js +9 -8
  436. package/dist/layout/modules-extended.js.map +1 -1
  437. package/dist/layout/modules.js +5 -5
  438. package/dist/layout/modules.js.map +1 -1
  439. package/dist/schema/base.d.ts +1 -1
  440. package/dist/scope/breadcrumbs.d.ts.map +1 -1
  441. package/dist/scope/breadcrumbs.js +4 -1
  442. package/dist/scope/breadcrumbs.js.map +1 -1
  443. package/dist/scope/head-foot.d.ts +12 -4
  444. package/dist/scope/head-foot.d.ts.map +1 -1
  445. package/dist/scope/head-foot.js +14 -6
  446. package/dist/scope/head-foot.js.map +1 -1
  447. package/dist/scope/jsonld.d.ts.map +1 -1
  448. package/dist/scope/jsonld.js +1 -11
  449. package/dist/scope/jsonld.js.map +1 -1
  450. package/dist/scope/kywi-form.d.ts.map +1 -1
  451. package/dist/scope/kywi-form.js +3 -3
  452. package/dist/scope/kywi-form.js.map +1 -1
  453. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  454. package/dist/scope/kywi-wizard-form.js +3 -3
  455. package/dist/scope/kywi-wizard-form.js.map +1 -1
  456. package/dist/scope/rendering.d.ts.map +1 -1
  457. package/dist/scope/rendering.js +7 -6
  458. package/dist/scope/rendering.js.map +1 -1
  459. package/dist/util/jsonld.d.ts +13 -0
  460. package/dist/util/jsonld.d.ts.map +1 -0
  461. package/dist/util/jsonld.js +15 -0
  462. package/dist/util/jsonld.js.map +1 -0
  463. package/dist/util/sanitize.d.ts +6 -0
  464. package/dist/util/sanitize.d.ts.map +1 -0
  465. package/dist/util/sanitize.js +156 -0
  466. package/dist/util/sanitize.js.map +1 -0
  467. package/package.json +12 -3
@@ -0,0 +1,69 @@
1
+ /**
2
+ * `KywiAdminApp` — the core-mounted, configurable admin client router (plan
3
+ * `docs/orchestration/plans/admin-app-configurable.md` §1.1, §1.2, §2, §5).
4
+ *
5
+ * This is the single client component the host's server-rendered catch-all page
6
+ * (`app/admin/[[...admin]]/page.tsx`) mounts. It maps the `/admin`-stripped path
7
+ * `segments` to a surface via the registry matcher and renders it, lazily and
8
+ * code-split (one webpack chunk per surface — proven in the T0 spike), inside
9
+ * the core `AdminChrome`. Core stays `next`-free: routing is prop-driven
10
+ * (`segments`), lazy loading is `React.lazy` + `Suspense` (never `next/dynamic`),
11
+ * and navigation defaults to a full-load `location` assign.
12
+ *
13
+ * Resolution order (plan §1.1, §4 precedence):
14
+ * 1. `segments === ['login']` → render `LoginSurface` directly, NO chrome
15
+ * (the middleware auth exception; login is not a registry surface).
16
+ * 2. `resolveSurface(segments, runtime.admin)` applies the CONFIG CEILING
17
+ * (hard gate). null (unknown path OR config-disabled area/surface) →
18
+ * `SurfaceNotFound` inside chrome. (The host page can additionally pre-check
19
+ * `resolveSurface` and call Next `notFound()` for a real HTTP 404.)
20
+ * 3. Runtime flag gate (soft, client-side): a surface whose area/id is toggled
21
+ * off in the per-site `admin.features` flag map (from context, fetched by
22
+ * chrome) renders `SurfaceNotFound` (the 404 view) — matching the nav
23
+ * hiding it. The Admin Features surface is EXEMPT (superAdmin escape hatch).
24
+ * 4. Role gate (soft, client-side): a surface whose `minRole` the signed-in
25
+ * user lacks renders `SurfaceForbidden`.
26
+ * 5. Otherwise the matched surface is `React.lazy`-mounted in a `<Suspense>`,
27
+ * receiving the matched pattern `params` as `SurfaceProps`.
28
+ *
29
+ * The empty path (`/admin`) resolves through `matchSurface([])` to the dashboard
30
+ * index surface (`ADMIN_INDEX_SURFACE_ID`), so `/admin` mounts the dashboard.
31
+ */
32
+ import React from 'react';
33
+ import type { AdminRuntimeConfig } from './server.js';
34
+ import type { AdminSurface } from './registry.js';
35
+ import { AdminProvider } from './context.js';
36
+ export interface KywiAdminAppProps {
37
+ /** Secret-free projection of `kywi.config.ts` (host calls `toAdminRuntimeConfig`). */
38
+ runtime: AdminRuntimeConfig;
39
+ /** Path segments with the `/admin` prefix already stripped (`['content','page']`). */
40
+ segments: string[];
41
+ /**
42
+ * Injected client navigation (host may pass `next`'s `router.push`). Defaults
43
+ * to a full-load `location` assign so core never imports `next` (v1 model).
44
+ */
45
+ navigate?: (href: string) => void;
46
+ /**
47
+ * The already-extracted `?next=` value for the login surface. Core cannot read
48
+ * the query string itself, so the host page extracts it and passes it down.
49
+ */
50
+ loginNext?: string | null;
51
+ /**
52
+ * Reserved forward-compat slot for an injected `Link` component (soft-nav
53
+ * fast-follow, plan §1.1). Unused in v1 — nav renders plain `<a href>` full
54
+ * loads — but accepted so the host contract does not change when soft-nav lands.
55
+ */
56
+ linkComponent?: React.ComponentType<{
57
+ href: string;
58
+ children: React.ReactNode;
59
+ }>;
60
+ }
61
+ /** Core 404 view: shown for an unknown path or a config-disabled surface. */
62
+ export declare function SurfaceNotFound(): import("react/jsx-runtime").JSX.Element;
63
+ /** Core 403 view: the path resolves but the signed-in user's role is too low. */
64
+ export declare function SurfaceForbidden({ surface }: {
65
+ surface?: AdminSurface;
66
+ }): import("react/jsx-runtime").JSX.Element;
67
+ export declare function KywiAdminApp({ runtime, segments, navigate, loginNext }: KywiAdminAppProps): import("react/jsx-runtime").JSX.Element;
68
+ export { AdminProvider };
69
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/admin/app.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAA;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,eAAe,CAAA;AAI/D,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAA;AAK7D,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,OAAO,EAAE,kBAAkB,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAA;CACjF;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,4CAU9B;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,2CAavE;AAsDD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,2CAwBzF;AAKD,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,98 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * `KywiAdminApp` — the core-mounted, configurable admin client router (plan
5
+ * `docs/orchestration/plans/admin-app-configurable.md` §1.1, §1.2, §2, §5).
6
+ *
7
+ * This is the single client component the host's server-rendered catch-all page
8
+ * (`app/admin/[[...admin]]/page.tsx`) mounts. It maps the `/admin`-stripped path
9
+ * `segments` to a surface via the registry matcher and renders it, lazily and
10
+ * code-split (one webpack chunk per surface — proven in the T0 spike), inside
11
+ * the core `AdminChrome`. Core stays `next`-free: routing is prop-driven
12
+ * (`segments`), lazy loading is `React.lazy` + `Suspense` (never `next/dynamic`),
13
+ * and navigation defaults to a full-load `location` assign.
14
+ *
15
+ * Resolution order (plan §1.1, §4 precedence):
16
+ * 1. `segments === ['login']` → render `LoginSurface` directly, NO chrome
17
+ * (the middleware auth exception; login is not a registry surface).
18
+ * 2. `resolveSurface(segments, runtime.admin)` applies the CONFIG CEILING
19
+ * (hard gate). null (unknown path OR config-disabled area/surface) →
20
+ * `SurfaceNotFound` inside chrome. (The host page can additionally pre-check
21
+ * `resolveSurface` and call Next `notFound()` for a real HTTP 404.)
22
+ * 3. Runtime flag gate (soft, client-side): a surface whose area/id is toggled
23
+ * off in the per-site `admin.features` flag map (from context, fetched by
24
+ * chrome) renders `SurfaceNotFound` (the 404 view) — matching the nav
25
+ * hiding it. The Admin Features surface is EXEMPT (superAdmin escape hatch).
26
+ * 4. Role gate (soft, client-side): a surface whose `minRole` the signed-in
27
+ * user lacks renders `SurfaceForbidden`.
28
+ * 5. Otherwise the matched surface is `React.lazy`-mounted in a `<Suspense>`,
29
+ * receiving the matched pattern `params` as `SurfaceProps`.
30
+ *
31
+ * The empty path (`/admin`) resolves through `matchSurface([])` to the dashboard
32
+ * index surface (`ADMIN_INDEX_SURFACE_ID`), so `/admin` mounts the dashboard.
33
+ */
34
+ import React, { Suspense, useMemo } from 'react';
35
+ import { hasMinRole } from '../auth/roles.js';
36
+ import { ADMIN_FEATURES_SURFACE_ID } from '../config/types.js';
37
+ import { AdminChrome } from './chrome.js';
38
+ import { AdminProvider, useAdminContext } from './context.js';
39
+ import { resolveSurface } from './surface-matcher.js';
40
+ import LoginSurface from './surfaces/login.js';
41
+ import { Loading } from './primitives.js';
42
+ /** Core 404 view: shown for an unknown path or a config-disabled surface. */
43
+ export function SurfaceNotFound() {
44
+ return (_jsxs("div", { className: "kywi-admin-surface-message", children: [_jsx("h1", { children: "Not found" }), _jsx("p", { children: "This admin page does not exist or is disabled." }), _jsx("p", { children: _jsx("a", { href: "/admin", children: "Back to admin" }) })] }));
45
+ }
46
+ /** Core 403 view: the path resolves but the signed-in user's role is too low. */
47
+ export function SurfaceForbidden({ surface }) {
48
+ return (_jsxs("div", { className: "kywi-admin-surface-message", children: [_jsx("h1", { children: "You don't have access" }), _jsxs("p", { children: ["Your role does not permit this page", surface ? ` (requires ${surface.minRole} or higher)` : '', "."] }), _jsx("p", { children: _jsx("a", { href: "/admin", children: "Back to admin" }) })] }));
49
+ }
50
+ /**
51
+ * Inner gate that runs INSIDE `AdminChrome` — so it reads the bootstrapped
52
+ * `user` from context (chrome resolves it before rendering children, and shows
53
+ * its own loading state until then). This keeps the role check and the lazy
54
+ * mount entirely client-side and consistent (no server/client hydration
55
+ * mismatch, since the surface only mounts after the client-only bootstrap).
56
+ */
57
+ function SurfaceGate({ surface, params, runtime, }) {
58
+ const { user, flags } = useAdminContext();
59
+ // One React.lazy per surface, keyed on id so navigating between surfaces
60
+ // swaps the lazy component (and its chunk) rather than reusing a stale one.
61
+ // The static-literal `import()` inside each `surface.load` is what lets
62
+ // webpack/tsc emit one chunk per surface (T0 finding — do not build the path
63
+ // dynamically).
64
+ const Lazy = useMemo(() => React.lazy(surface.load), [surface.id]);
65
+ // The config ceiling was already applied by `resolveSurface` upstream. Here we
66
+ // apply the two soft, client-side gates in the plan's precedence order. The
67
+ // Admin Features surface is EXEMPT from the runtime flag gate — the superAdmin
68
+ // self-lockout escape hatch (config/types.ts `ADMIN_FEATURES_SURFACE_ID`).
69
+ const isAdminFeatures = surface.id === ADMIN_FEATURES_SURFACE_ID;
70
+ // (a) Runtime flag OFF ⇒ the 404 view (surface hidden, mirrors the nav).
71
+ if (!isAdminFeatures && (flags[surface.id] === false || flags[surface.area] === false)) {
72
+ return _jsx(SurfaceNotFound, {});
73
+ }
74
+ // (b) Role too low ⇒ the 403 view. user is populated by the time chrome
75
+ // renders its children; guard anyway.
76
+ if (user && !hasMinRole(user.role, surface.minRole)) {
77
+ return _jsx(SurfaceForbidden, { surface: surface });
78
+ }
79
+ return (_jsx(Suspense, { fallback: _jsx(Loading, {}), children: _jsx(Lazy, { params: params }) }));
80
+ }
81
+ export function KywiAdminApp({ runtime, segments, navigate, loginNext }) {
82
+ // ── Login special-case: chrome-less, not a registry surface (plan §1.1). ──
83
+ if (segments.length === 1 && segments[0] === 'login') {
84
+ return _jsx(LoginSurface, { next: loginNext ?? null });
85
+ }
86
+ // Full-load navigation by default (matches AdminChrome's default + v1 model).
87
+ const go = navigate ?? ((href) => { window.location.href = href; });
88
+ const currentPath = '/admin/' + segments.join('/');
89
+ // Config ceiling (hard gate). null ⇒ unknown path or config-disabled surface.
90
+ const match = resolveSurface(segments, runtime.admin);
91
+ const content = match ? (_jsx(SurfaceGate, { surface: match.surface, params: match.params, runtime: runtime })) : (_jsx(SurfaceNotFound, {}));
92
+ return (_jsx(AdminChrome, { runtime: runtime, currentPath: currentPath, navigate: go, children: content }));
93
+ }
94
+ // AdminProvider is re-exported here only so consumers importing the app entry
95
+ // point can access the context wiring without a second import path; the chrome
96
+ // provides the actual provider instance.
97
+ export { AdminProvider };
98
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/admin/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `AdminChrome` — the core admin shell, ported from
3
+ * `apps/reference/components/admin-shell-wrapper.tsx`.
4
+ *
5
+ * It renders ONCE around the whole admin (not per-surface as the old wrapper
6
+ * was): the sidebar/nav (`AdminShell` → `buildAdminNav`), the topbar
7
+ * (SiteSwitcher + search + role + sign-out), the user-bootstrap/bounce-to-login
8
+ * effect, AND the `AdminProvider` that threads session/wiring to surfaces. T14's
9
+ * `KywiAdminApp` mounts the matched surface into the `children` slot.
10
+ *
11
+ * Framework-decoupling (plan §0, §1.1): core never imports `next`. Where the
12
+ * reference wrapper used `usePathname`/`useRouter`, `AdminChrome` instead takes
13
+ * `currentPath` as a prop (T14 derives it from `segments`) and an injected
14
+ * `navigate` (defaulting to a plain `location` assignment). Session/user/fetch
15
+ * come from `@kywi-software/core/host-client`, not reference `lib/*`.
16
+ */
17
+ import React from 'react';
18
+ import type { AdminRuntimeConfig } from './server.js';
19
+ export interface AdminChromeProps {
20
+ /**
21
+ * The secret-free `AdminRuntimeConfig` projection. Its `.admin` ceiling drives
22
+ * nav derivation and it is exposed to surfaces via `AdminContext`. The full
23
+ * `KywiConfig` never crosses into the client (plan §1.1, §5).
24
+ */
25
+ runtime: AdminRuntimeConfig;
26
+ /** Active path for nav highlighting. T14 derives this from `segments`. */
27
+ currentPath: string;
28
+ /** The matched surface (T14 mounts it here). */
29
+ children: React.ReactNode;
30
+ /**
31
+ * Injected client navigation (host passes `next`'s `router.push`). Defaults to
32
+ * a `location` assignment so core stays `next`-free.
33
+ */
34
+ navigate?: (path: string) => void;
35
+ }
36
+ export declare function AdminChrome({ runtime, currentPath, children, navigate }: AdminChromeProps): import("react/jsx-runtime").JSX.Element;
37
+ //# sourceMappingURL=chrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/admin/chrome.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAkBrD,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,OAAO,EAAE,kBAAkB,CAAA;IAC3B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IACnB,gDAAgD;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAClC;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAiLzF"}
@@ -0,0 +1,162 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * `AdminChrome` — the core admin shell, ported from
5
+ * `apps/reference/components/admin-shell-wrapper.tsx`.
6
+ *
7
+ * It renders ONCE around the whole admin (not per-surface as the old wrapper
8
+ * was): the sidebar/nav (`AdminShell` → `buildAdminNav`), the topbar
9
+ * (SiteSwitcher + search + role + sign-out), the user-bootstrap/bounce-to-login
10
+ * effect, AND the `AdminProvider` that threads session/wiring to surfaces. T14's
11
+ * `KywiAdminApp` mounts the matched surface into the `children` slot.
12
+ *
13
+ * Framework-decoupling (plan §0, §1.1): core never imports `next`. Where the
14
+ * reference wrapper used `usePathname`/`useRouter`, `AdminChrome` instead takes
15
+ * `currentPath` as a prop (T14 derives it from `segments`) and an injected
16
+ * `navigate` (defaulting to a plain `location` assignment). Session/user/fetch
17
+ * come from `@kywi-software/core/host-client`, not reference `lib/*`.
18
+ */
19
+ import { useEffect, useState } from 'react';
20
+ import { AdminShell } from './shell.js';
21
+ import { SiteSwitcher, filterSitesForUser } from './site-switcher.js';
22
+ import { AdminProvider } from './context.js';
23
+ import { adminFetch, getAdminUser, signOut, getActiveSiteId, setActiveSiteId, } from '../host-client/index.js';
24
+ export function AdminChrome({ runtime, currentPath, children, navigate }) {
25
+ const [user, setUser] = useState(null);
26
+ const [checked, setChecked] = useState(false);
27
+ const [sites, setSites] = useState([]);
28
+ const [activeSiteId, setActiveSiteIdState] = useState('');
29
+ const [flags, setFlags] = useState({});
30
+ const [search, setSearch] = useState('');
31
+ const [pluginNav, setPluginNav] = useState([]);
32
+ // Default navigation keeps core framework-free: a full-load location assign,
33
+ // exactly matching v1's `<a href>` full-load navigation model (plan §1.1).
34
+ const go = navigate ?? ((path) => { window.location.href = path; });
35
+ function handleSearch(e) {
36
+ e.preventDefault();
37
+ const q = search.trim();
38
+ if (q)
39
+ go(`/admin/search?q=${encodeURIComponent(q)}`);
40
+ }
41
+ useEffect(() => {
42
+ // Server-side middleware (middleware.ts) is the real access gate: reaching
43
+ // this component means a valid httpOnly session cookie was already verified
44
+ // on the server. Here we only load the user descriptor for the chrome. If
45
+ // it's missing (e.g. signed out in another tab), bounce to login to
46
+ // re-establish it — not a loop, since login always repopulates it.
47
+ const u = getAdminUser();
48
+ if (!u) {
49
+ window.location.href = '/admin/login';
50
+ return;
51
+ }
52
+ setUser(u);
53
+ setChecked(true);
54
+ void loadSites(u);
55
+ void loadFlags();
56
+ void loadPluginNav();
57
+ }, []);
58
+ // Fetch the active site's runtime admin feature flags ONCE per full page load
59
+ // (plan §4). Navigation and site switching are both full reloads in v1, so a
60
+ // single fetch on mount always reflects the current site. adminFetch appends
61
+ // the active-site `?siteId=`; the route falls back to the first site when none
62
+ // is set. Any failure leaves flags `{}` (fully permissive) — a flags hiccup
63
+ // must never hide the admin.
64
+ async function loadFlags() {
65
+ try {
66
+ const res = await adminFetch('/api/v1/admin-features');
67
+ if (!res.ok)
68
+ return;
69
+ const body = (await res.json());
70
+ if (body.data?.flags)
71
+ setFlags(body.data.flags);
72
+ }
73
+ catch {
74
+ // Best-effort: keep the permissive empty map.
75
+ }
76
+ }
77
+ // T17: plugin-contributed admin nav (design §2), fire-and-forget alongside
78
+ // loadSites/loadFlags — none is awaited before `checked`/the core nav render,
79
+ // so the chrome mounts with the core nav immediately and the "Plugins"
80
+ // section appears once (if) this resolves. GET /plugins/nav is siteAdmin+-
81
+ // gated, so for lower roles — and any other failure — this degrades to no
82
+ // plugin items rather than surfacing an error.
83
+ async function loadPluginNav() {
84
+ try {
85
+ const res = await adminFetch('/api/v1/plugins/nav');
86
+ if (!res.ok)
87
+ return;
88
+ const body = (await res.json());
89
+ const items = body.data?.navItems ?? [];
90
+ setPluginNav(items.map((i) => ({ label: i.label, href: i.path, ...(i.icon ? { icon: i.icon } : {}) })));
91
+ }
92
+ catch {
93
+ // Best-effort: plugin nav is additive, never blocks the chrome.
94
+ }
95
+ }
96
+ // F2c-J09-G1: populate the site switcher. Sites come from the DB (their UUIDs
97
+ // are what every site-scoped route accepts as ?siteId=). A superAdmin sees all
98
+ // sites; any other role is filtered to its memberships via filterSitesForUser.
99
+ async function loadSites(u) {
100
+ try {
101
+ const sitesRes = await adminFetch('/api/v1/sites');
102
+ const sitesBody = (await sitesRes.json());
103
+ const all = (sitesBody.data ?? []).map((s) => ({
104
+ id: s.id,
105
+ name: s.name ?? s.slug ?? s.id,
106
+ domain: s.domain ?? '',
107
+ }));
108
+ let memberships = [];
109
+ try {
110
+ const memRes = await adminFetch(`/api/v1/users/${u.id}/sites`);
111
+ if (memRes.ok) {
112
+ const memBody = (await memRes.json());
113
+ memberships = (memBody.data ?? []).map((m) => m.siteId ?? '').filter(Boolean);
114
+ }
115
+ }
116
+ catch {
117
+ // Membership lookup is best-effort; superAdmin ignores it anyway.
118
+ }
119
+ const allowed = filterSitesForUser(all, {
120
+ id: u.id,
121
+ role: u.role,
122
+ groups: u.groups,
123
+ siteMemberships: memberships,
124
+ });
125
+ setSites(allowed);
126
+ // Establish the effective active site: the stored cookie if it still
127
+ // points at an allowed site, else the first allowed site.
128
+ const stored = getActiveSiteId();
129
+ const effective = stored && allowed.some((s) => s.id === stored)
130
+ ? stored
131
+ : allowed[0]?.id ?? '';
132
+ setActiveSiteIdState(effective);
133
+ }
134
+ catch {
135
+ // A failed site load leaves the switcher hidden (single-site fallback).
136
+ }
137
+ }
138
+ function handleSwitch(siteId) {
139
+ setActiveSiteId(siteId);
140
+ // Full reload so every page re-fetches through adminFetch with the new
141
+ // ?siteId=, repainting the tree/media/dashboard/theme for the chosen site.
142
+ window.location.reload();
143
+ }
144
+ async function handleSignOut() {
145
+ await signOut();
146
+ window.location.href = '/admin/login';
147
+ }
148
+ const contextValue = {
149
+ fetch: adminFetch,
150
+ user,
151
+ activeSiteId,
152
+ flags,
153
+ signOut,
154
+ navigate: go,
155
+ runtime,
156
+ };
157
+ if (!checked) {
158
+ return _jsx("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '100vh' }, children: "Loading..." });
159
+ }
160
+ return (_jsx(AdminProvider, { value: contextValue, children: _jsxs(AdminShell, { config: { admin: runtime.admin }, role: user?.role, flags: flags, pluginNav: pluginNav, currentPath: currentPath, children: [_jsxs("div", { className: "kywi-admin-topbar", children: [_jsx(SiteSwitcher, { sites: sites, currentSiteId: activeSiteId, onSwitch: handleSwitch }), _jsxs("form", { className: "kywi-admin-topbar-search", role: "search", onSubmit: handleSearch, children: [_jsx("input", { type: "search", className: "kywi-input", value: search, onChange: e => setSearch(e.target.value), placeholder: "Search content\u2026", "aria-label": "Search content" }), _jsx("button", { type: "submit", className: "kywi-btn kywi-btn-secondary kywi-btn-sm", children: "Search" })] }), _jsx("span", { children: user?.role }), _jsx("button", { onClick: handleSignOut, children: "Sign out" })] }), children] }) }));
161
+ }
162
+ //# sourceMappingURL=chrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/admin/chrome.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * `AdminContext` — the single session/wiring channel the admin surfaces consume
3
+ * instead of app-local imports. `AdminChrome` (chrome.tsx) provides it once;
4
+ * migrated surfaces (T5+) read `fetch`/`user`/`navigate`/etc. from
5
+ * `useAdminContext()` in place of the old `adminFetch`/`useRouter`/`kywiConfig`
6
+ * app wiring (plan §1.3, §5).
7
+ *
8
+ * Everything here is sourced from `@kywi-software/core/host-client` (the
9
+ * generated-app contract) so core stays framework-decoupled: no `next` import.
10
+ */
11
+ import React from 'react';
12
+ import type { AdminUser } from '../host-client/index.js';
13
+ import type { AdminFeatureFlags } from './registry.js';
14
+ /**
15
+ * The value every admin surface can read. `fetch` is the cookie-aware,
16
+ * active-site-threading `adminFetch`; `navigate` is an injected router push
17
+ * (host passes `next`'s router; the default is a plain `location` assignment so
18
+ * core never imports `next`).
19
+ */
20
+ export interface AdminContextValue {
21
+ /** Cookie-aware admin API fetch (host-client `adminFetch`). */
22
+ fetch: (path: string, init?: RequestInit) => Promise<Response>;
23
+ /** The signed-in user descriptor for chrome/role gating, or null pre-bootstrap. */
24
+ user: AdminUser | null;
25
+ /** The DB UUID of the currently-selected site (`''` when none/single-site). */
26
+ activeSiteId: string;
27
+ /**
28
+ * The active site's runtime admin feature-flag map (T16), fetched once by
29
+ * `AdminChrome` on mount from `GET /admin-features`. A missing entry means
30
+ * enabled (active-by-default). Feeds the soft nav + router surface gate via
31
+ * `isSurfaceVisible`. `{}` before the fetch resolves / on fetch failure ⇒
32
+ * fully permissive, so a flags-endpoint hiccup never hides the admin.
33
+ */
34
+ flags: AdminFeatureFlags;
35
+ /** Full sign-out (clears the httpOnly session server-side + local descriptor). */
36
+ signOut: () => Promise<void>;
37
+ /** Client navigation. Injected by the host; defaults to a `location` assign. */
38
+ navigate: (path: string) => void;
39
+ /**
40
+ * The secret-free `AdminRuntimeConfig` projection surfaces read instead of the
41
+ * full `kywi.config.ts`. Typed `unknown` here so T4 does NOT hard-depend on
42
+ * T2's `AdminRuntimeConfig` type; T2 defines it and T14 wires the real value.
43
+ */
44
+ runtime: unknown;
45
+ }
46
+ declare const AdminContext: React.Context<AdminContextValue | null>;
47
+ /** Provider. `AdminChrome` mounts this once around the shell + surface slot. */
48
+ export declare function AdminProvider({ value, children, }: {
49
+ value: AdminContextValue;
50
+ children: React.ReactNode;
51
+ }): import("react/jsx-runtime").JSX.Element;
52
+ /**
53
+ * Read the admin wiring. Throws if a surface is mounted outside `AdminChrome`,
54
+ * which is always a wiring bug rather than a runtime-recoverable state.
55
+ */
56
+ export declare function useAdminContext(): AdminContextValue;
57
+ export { AdminContext };
58
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/admin/context.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9D,mFAAmF;IACnF,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,EAAE,iBAAiB,CAAA;IACxB,kFAAkF;IAClF,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,gFAAgF;IAChF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,YAAY,yCAAgD,CAAA;AAElE,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAA;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,2CAEA;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAMnD;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * `AdminContext` — the single session/wiring channel the admin surfaces consume
5
+ * instead of app-local imports. `AdminChrome` (chrome.tsx) provides it once;
6
+ * migrated surfaces (T5+) read `fetch`/`user`/`navigate`/etc. from
7
+ * `useAdminContext()` in place of the old `adminFetch`/`useRouter`/`kywiConfig`
8
+ * app wiring (plan §1.3, §5).
9
+ *
10
+ * Everything here is sourced from `@kywi-software/core/host-client` (the
11
+ * generated-app contract) so core stays framework-decoupled: no `next` import.
12
+ */
13
+ import { createContext, useContext } from 'react';
14
+ const AdminContext = createContext(null);
15
+ /** Provider. `AdminChrome` mounts this once around the shell + surface slot. */
16
+ export function AdminProvider({ value, children, }) {
17
+ return _jsx(AdminContext.Provider, { value: value, children: children });
18
+ }
19
+ /**
20
+ * Read the admin wiring. Throws if a surface is mounted outside `AdminChrome`,
21
+ * which is always a wiring bug rather than a runtime-recoverable state.
22
+ */
23
+ export function useAdminContext() {
24
+ const ctx = useContext(AdminContext);
25
+ if (!ctx) {
26
+ throw new Error('useAdminContext must be used within an AdminChrome / AdminProvider');
27
+ }
28
+ return ctx;
29
+ }
30
+ export { AdminContext };
31
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/admin/context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;GASG;AAEH,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAqCxD,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;AAElE,gFAAgF;AAChF,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAA;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;IACvF,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,4 +1,6 @@
1
- export { buildAdminNav, type AdminNavItem } from './nav.js';
1
+ export { buildAdminNav, type AdminNavItem, type BuildAdminNavOptions } from './nav.js';
2
+ export { ADMIN_AREAS, ADMIN_SURFACES, ADMIN_NAV_GROUPS, ADMIN_INDEX_SURFACE_ID, type AdminArea, type AdminSurface, type AdminSurfaceNav, type AdminNavGroup, type SurfaceProps, type AdminConfigCeiling, type AdminFeatureFlags, } from './registry.js';
3
+ export { matchSurface, resolveSurface, isSurfaceEnabled, type SurfaceMatch, } from './surface-matcher.js';
2
4
  export { ContentListToolbar, type ContentListToolbarProps } from './content-list-toolbar.js';
3
5
  export { AdminShell } from './shell.js';
4
6
  export { ContentListView } from './content-list.js';
@@ -82,4 +84,10 @@ export { AudienceAnalyticsTab } from './audience-analytics.js';
82
84
  export { SelfIdFieldManager } from './selfid-fields.js';
83
85
  export { SelfIdWidgetBuilder } from './selfid-widget-builder.js';
84
86
  export { PreviewTokenManager } from './preview-tokens.js';
87
+ export { toAdminRuntimeConfig, type AdminRuntimeConfig, type AdminRuntimeContentType, type AdminRuntimeSite } from './server.js';
88
+ export { slugify, Loading, ErrorBox, EmptyState, LoadingState, ErrorState, Modal, ConfirmDialog, } from './primitives.js';
89
+ export { AdminChrome, type AdminChromeProps } from './chrome.js';
90
+ export { AdminProvider, useAdminContext, AdminContext, type AdminContextValue, } from './context.js';
91
+ export { default as LoginSurface, safeNext, type LoginSurfaceProps } from './surfaces/login.js';
92
+ export { KywiAdminApp, SurfaceNotFound, SurfaceForbidden, type KywiAdminAppProps, } from './app.js';
85
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { buildAdminNav } from './nav.js';
2
+ export { ADMIN_AREAS, ADMIN_SURFACES, ADMIN_NAV_GROUPS, ADMIN_INDEX_SURFACE_ID, } from './registry.js';
3
+ export { matchSurface, resolveSurface, isSurfaceEnabled, } from './surface-matcher.js';
2
4
  export { ContentListToolbar } from './content-list-toolbar.js';
3
5
  export { AdminShell } from './shell.js';
4
6
  export { ContentListView } from './content-list.js';
@@ -54,4 +56,14 @@ export { AudienceAnalyticsTab } from './audience-analytics.js';
54
56
  export { SelfIdFieldManager } from './selfid-fields.js';
55
57
  export { SelfIdWidgetBuilder } from './selfid-widget-builder.js';
56
58
  export { PreviewTokenManager } from './preview-tokens.js';
59
+ export { toAdminRuntimeConfig } from './server.js';
60
+ // ── T4: admin chrome + shared UI primitives + surface wiring context ──────────
61
+ export { slugify, Loading, ErrorBox, EmptyState, LoadingState, ErrorState, Modal, ConfirmDialog, } from './primitives.js';
62
+ export { AdminChrome } from './chrome.js';
63
+ export { AdminProvider, useAdminContext, AdminContext, } from './context.js';
64
+ // ── T13: login surface (NOT a registry surface — see surfaces/login.tsx doc) ──
65
+ export { default as LoginSurface, safeNext } from './surfaces/login.js';
66
+ // ── T14: the configurable admin client router (also its own subpath export
67
+ // `@kywi-software/core/admin/app` for the host catch-all page) ────────────────
68
+ export { KywiAdminApp, SurfaceNotFound, SurfaceForbidden, } from './app.js';
57
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface KywiLogoProps {
2
+ /** Applied to the wrapping element so callers size the mark via CSS. */
3
+ className?: string;
4
+ /** Accessible name for the mark; omit for a decorative render. */
5
+ title?: string;
6
+ }
7
+ /**
8
+ * The sidebar wordmark. Its type inherits `currentColor` (the shell sets the
9
+ * container to `--kywi-sidebar-fg-muted`), so it reads muted on the dark
10
+ * sidebar exactly like the nav links; the kiwi icon keeps its accent colours.
11
+ * The wrapper carries the accessible name when `title` is given; the inner SVG
12
+ * is `aria-hidden`/`focusable="false"` so it never double-announces. Size it via
13
+ * `className` in CSS.
14
+ */
15
+ export declare function KywiLogo({ className, title }: KywiLogoProps): import("react/jsx-runtime").JSX.Element;
16
+ /**
17
+ * The dark-inked wordmark for LIGHT surfaces (login card, mobile bar). Reads
18
+ * as-is (baked dark type); same a11y contract as {@link KywiLogo}.
19
+ */
20
+ export declare function KywiLogoDark({ className, title }: KywiLogoProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=kywi-logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kywi-logo.d.ts","sourceRoot":"","sources":["../../src/admin/kywi-logo.tsx"],"names":[],"mappings":"AAyGA,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAOD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,2CAE3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,aAAa,2CAE/D"}