@kywi-software/core 0.1.0 → 0.2.0

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 (463) 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/nav.d.ts +21 -1
  18. package/dist/admin/nav.d.ts.map +1 -1
  19. package/dist/admin/nav.js +45 -88
  20. package/dist/admin/nav.js.map +1 -1
  21. package/dist/admin/primitives.d.ts +52 -0
  22. package/dist/admin/primitives.d.ts.map +1 -0
  23. package/dist/admin/primitives.js +78 -0
  24. package/dist/admin/primitives.js.map +1 -0
  25. package/dist/admin/registry.d.ts +130 -0
  26. package/dist/admin/registry.d.ts.map +1 -0
  27. package/dist/admin/registry.js +456 -0
  28. package/dist/admin/registry.js.map +1 -0
  29. package/dist/admin/server.d.ts +154 -0
  30. package/dist/admin/server.d.ts.map +1 -0
  31. package/dist/admin/server.js +121 -0
  32. package/dist/admin/server.js.map +1 -0
  33. package/dist/admin/shell.d.ts +27 -1
  34. package/dist/admin/shell.d.ts.map +1 -1
  35. package/dist/admin/shell.js +10 -4
  36. package/dist/admin/shell.js.map +1 -1
  37. package/dist/admin/styles/admin.css +24 -0
  38. package/dist/admin/surface-matcher.d.ts +51 -0
  39. package/dist/admin/surface-matcher.d.ts.map +1 -0
  40. package/dist/admin/surface-matcher.js +181 -0
  41. package/dist/admin/surface-matcher.js.map +1 -0
  42. package/dist/admin/surfaces/approvals/approvals-data.d.ts +17 -0
  43. package/dist/admin/surfaces/approvals/approvals-data.d.ts.map +1 -0
  44. package/dist/admin/surfaces/approvals/approvals-data.js +55 -0
  45. package/dist/admin/surfaces/approvals/approvals-data.js.map +1 -0
  46. package/dist/admin/surfaces/approvals/approvals-index.d.ts +3 -0
  47. package/dist/admin/surfaces/approvals/approvals-index.d.ts.map +1 -0
  48. package/dist/admin/surfaces/approvals/approvals-index.js +75 -0
  49. package/dist/admin/surfaces/approvals/approvals-index.js.map +1 -0
  50. package/dist/admin/surfaces/audiences/audiences-data.d.ts +107 -0
  51. package/dist/admin/surfaces/audiences/audiences-data.d.ts.map +1 -0
  52. package/dist/admin/surfaces/audiences/audiences-data.js +216 -0
  53. package/dist/admin/surfaces/audiences/audiences-data.js.map +1 -0
  54. package/dist/admin/surfaces/audiences/audiences-detail.d.ts +3 -0
  55. package/dist/admin/surfaces/audiences/audiences-detail.d.ts.map +1 -0
  56. package/dist/admin/surfaces/audiences/audiences-detail.js +78 -0
  57. package/dist/admin/surfaces/audiences/audiences-detail.js.map +1 -0
  58. package/dist/admin/surfaces/audiences/audiences-edit.d.ts +3 -0
  59. package/dist/admin/surfaces/audiences/audiences-edit.d.ts.map +1 -0
  60. package/dist/admin/surfaces/audiences/audiences-edit.js +55 -0
  61. package/dist/admin/surfaces/audiences/audiences-edit.js.map +1 -0
  62. package/dist/admin/surfaces/audiences/audiences-fields.d.ts +3 -0
  63. package/dist/admin/surfaces/audiences/audiences-fields.d.ts.map +1 -0
  64. package/dist/admin/surfaces/audiences/audiences-fields.js +56 -0
  65. package/dist/admin/surfaces/audiences/audiences-fields.js.map +1 -0
  66. package/dist/admin/surfaces/audiences/audiences-list.d.ts +3 -0
  67. package/dist/admin/surfaces/audiences/audiences-list.d.ts.map +1 -0
  68. package/dist/admin/surfaces/audiences/audiences-list.js +50 -0
  69. package/dist/admin/surfaces/audiences/audiences-list.js.map +1 -0
  70. package/dist/admin/surfaces/audiences/audiences-new.d.ts +3 -0
  71. package/dist/admin/surfaces/audiences/audiences-new.d.ts.map +1 -0
  72. package/dist/admin/surfaces/audiences/audiences-new.js +54 -0
  73. package/dist/admin/surfaces/audiences/audiences-new.js.map +1 -0
  74. package/dist/admin/surfaces/audiences/audiences-preview-tokens.d.ts +3 -0
  75. package/dist/admin/surfaces/audiences/audiences-preview-tokens.d.ts.map +1 -0
  76. package/dist/admin/surfaces/audiences/audiences-preview-tokens.js +123 -0
  77. package/dist/admin/surfaces/audiences/audiences-preview-tokens.js.map +1 -0
  78. package/dist/admin/surfaces/audiences/audiences-selfid-widget.d.ts +3 -0
  79. package/dist/admin/surfaces/audiences/audiences-selfid-widget.d.ts.map +1 -0
  80. package/dist/admin/surfaces/audiences/audiences-selfid-widget.js +50 -0
  81. package/dist/admin/surfaces/audiences/audiences-selfid-widget.js.map +1 -0
  82. package/dist/admin/surfaces/audiences/audiences-test.d.ts +3 -0
  83. package/dist/admin/surfaces/audiences/audiences-test.d.ts.map +1 -0
  84. package/dist/admin/surfaces/audiences/audiences-test.js +39 -0
  85. package/dist/admin/surfaces/audiences/audiences-test.js.map +1 -0
  86. package/dist/admin/surfaces/audiences/states.d.ts +10 -0
  87. package/dist/admin/surfaces/audiences/states.d.ts.map +1 -0
  88. package/dist/admin/surfaces/audiences/states.js +11 -0
  89. package/dist/admin/surfaces/audiences/states.js.map +1 -0
  90. package/dist/admin/surfaces/changesets/changesets-data.d.ts +35 -0
  91. package/dist/admin/surfaces/changesets/changesets-data.d.ts.map +1 -0
  92. package/dist/admin/surfaces/changesets/changesets-data.js +151 -0
  93. package/dist/admin/surfaces/changesets/changesets-data.js.map +1 -0
  94. package/dist/admin/surfaces/changesets/changesets-detail.d.ts +3 -0
  95. package/dist/admin/surfaces/changesets/changesets-detail.d.ts.map +1 -0
  96. package/dist/admin/surfaces/changesets/changesets-detail.js +84 -0
  97. package/dist/admin/surfaces/changesets/changesets-detail.js.map +1 -0
  98. package/dist/admin/surfaces/changesets/changesets-index.d.ts +3 -0
  99. package/dist/admin/surfaces/changesets/changesets-index.d.ts.map +1 -0
  100. package/dist/admin/surfaces/changesets/changesets-index.js +62 -0
  101. package/dist/admin/surfaces/changesets/changesets-index.js.map +1 -0
  102. package/dist/admin/surfaces/comments/comment-moderation.d.ts +18 -0
  103. package/dist/admin/surfaces/comments/comment-moderation.d.ts.map +1 -0
  104. package/dist/admin/surfaces/comments/comment-moderation.js +36 -0
  105. package/dist/admin/surfaces/comments/comment-moderation.js.map +1 -0
  106. package/dist/admin/surfaces/comments/comments-data.d.ts +23 -0
  107. package/dist/admin/surfaces/comments/comments-data.d.ts.map +1 -0
  108. package/dist/admin/surfaces/comments/comments-data.js +81 -0
  109. package/dist/admin/surfaces/comments/comments-data.js.map +1 -0
  110. package/dist/admin/surfaces/comments/comments-index.d.ts +3 -0
  111. package/dist/admin/surfaces/comments/comments-index.d.ts.map +1 -0
  112. package/dist/admin/surfaces/comments/comments-index.js +73 -0
  113. package/dist/admin/surfaces/comments/comments-index.js.map +1 -0
  114. package/dist/admin/surfaces/content/content-edit.d.ts +3 -0
  115. package/dist/admin/surfaces/content/content-edit.d.ts.map +1 -0
  116. package/dist/admin/surfaces/content/content-edit.js +321 -0
  117. package/dist/admin/surfaces/content/content-edit.js.map +1 -0
  118. package/dist/admin/surfaces/content/content-index.d.ts +3 -0
  119. package/dist/admin/surfaces/content/content-index.d.ts.map +1 -0
  120. package/dist/admin/surfaces/content/content-index.js +21 -0
  121. package/dist/admin/surfaces/content/content-index.js.map +1 -0
  122. package/dist/admin/surfaces/content/content-list.d.ts +3 -0
  123. package/dist/admin/surfaces/content/content-list.d.ts.map +1 -0
  124. package/dist/admin/surfaces/content/content-list.js +70 -0
  125. package/dist/admin/surfaces/content/content-list.js.map +1 -0
  126. package/dist/admin/surfaces/content/content-new.d.ts +3 -0
  127. package/dist/admin/surfaces/content/content-new.d.ts.map +1 -0
  128. package/dist/admin/surfaces/content/content-new.js +109 -0
  129. package/dist/admin/surfaces/content/content-new.js.map +1 -0
  130. package/dist/admin/surfaces/content/content-translation-bar.d.ts +12 -0
  131. package/dist/admin/surfaces/content/content-translation-bar.d.ts.map +1 -0
  132. package/dist/admin/surfaces/content/content-translation-bar.js +65 -0
  133. package/dist/admin/surfaces/content/content-translation-bar.js.map +1 -0
  134. package/dist/admin/surfaces/content/runtime-content-types.d.ts +41 -0
  135. package/dist/admin/surfaces/content/runtime-content-types.d.ts.map +1 -0
  136. package/dist/admin/surfaces/content/runtime-content-types.js +51 -0
  137. package/dist/admin/surfaces/content/runtime-content-types.js.map +1 -0
  138. package/dist/admin/surfaces/contentTree/content-tree.d.ts +3 -0
  139. package/dist/admin/surfaces/contentTree/content-tree.d.ts.map +1 -0
  140. package/dist/admin/surfaces/contentTree/content-tree.js +179 -0
  141. package/dist/admin/surfaces/contentTree/content-tree.js.map +1 -0
  142. package/dist/admin/surfaces/contentTree/move-to-picker.d.ts +12 -0
  143. package/dist/admin/surfaces/contentTree/move-to-picker.d.ts.map +1 -0
  144. package/dist/admin/surfaces/contentTree/move-to-picker.js +77 -0
  145. package/dist/admin/surfaces/contentTree/move-to-picker.js.map +1 -0
  146. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts +3 -0
  147. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts.map +1 -0
  148. package/dist/admin/surfaces/contentTypes/content-types-designer.js +260 -0
  149. package/dist/admin/surfaces/contentTypes/content-types-designer.js.map +1 -0
  150. package/dist/admin/surfaces/contentTypes/content-types-list.d.ts +3 -0
  151. package/dist/admin/surfaces/contentTypes/content-types-list.d.ts.map +1 -0
  152. package/dist/admin/surfaces/contentTypes/content-types-list.js +69 -0
  153. package/dist/admin/surfaces/contentTypes/content-types-list.js.map +1 -0
  154. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts +3 -0
  155. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -0
  156. package/dist/admin/surfaces/dashboard/dashboard-index.js +100 -0
  157. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -0
  158. package/dist/admin/surfaces/experiments/experiments-data.d.ts +12 -0
  159. package/dist/admin/surfaces/experiments/experiments-data.d.ts.map +1 -0
  160. package/dist/admin/surfaces/experiments/experiments-data.js +89 -0
  161. package/dist/admin/surfaces/experiments/experiments-data.js.map +1 -0
  162. package/dist/admin/surfaces/experiments/experiments-detail.d.ts +3 -0
  163. package/dist/admin/surfaces/experiments/experiments-detail.d.ts.map +1 -0
  164. package/dist/admin/surfaces/experiments/experiments-detail.js +87 -0
  165. package/dist/admin/surfaces/experiments/experiments-detail.js.map +1 -0
  166. package/dist/admin/surfaces/experiments/experiments-list.d.ts +3 -0
  167. package/dist/admin/surfaces/experiments/experiments-list.d.ts.map +1 -0
  168. package/dist/admin/surfaces/experiments/experiments-list.js +37 -0
  169. package/dist/admin/surfaces/experiments/experiments-list.js.map +1 -0
  170. package/dist/admin/surfaces/experiments/experiments-new.d.ts +3 -0
  171. package/dist/admin/surfaces/experiments/experiments-new.d.ts.map +1 -0
  172. package/dist/admin/surfaces/experiments/experiments-new.js +33 -0
  173. package/dist/admin/surfaces/experiments/experiments-new.js.map +1 -0
  174. package/dist/admin/surfaces/experiments/states.d.ts +10 -0
  175. package/dist/admin/surfaces/experiments/states.d.ts.map +1 -0
  176. package/dist/admin/surfaces/experiments/states.js +11 -0
  177. package/dist/admin/surfaces/experiments/states.js.map +1 -0
  178. package/dist/admin/surfaces/extensions/extensions-data.d.ts +59 -0
  179. package/dist/admin/surfaces/extensions/extensions-data.d.ts.map +1 -0
  180. package/dist/admin/surfaces/extensions/extensions-data.js +71 -0
  181. package/dist/admin/surfaces/extensions/extensions-data.js.map +1 -0
  182. package/dist/admin/surfaces/extensions/extensions-import-export.d.ts +3 -0
  183. package/dist/admin/surfaces/extensions/extensions-import-export.d.ts.map +1 -0
  184. package/dist/admin/surfaces/extensions/extensions-import-export.js +77 -0
  185. package/dist/admin/surfaces/extensions/extensions-import-export.js.map +1 -0
  186. package/dist/admin/surfaces/extensions/extensions-list.d.ts +3 -0
  187. package/dist/admin/surfaces/extensions/extensions-list.d.ts.map +1 -0
  188. package/dist/admin/surfaces/extensions/extensions-list.js +106 -0
  189. package/dist/admin/surfaces/extensions/extensions-list.js.map +1 -0
  190. package/dist/admin/surfaces/extensions/form-modal.d.ts +17 -0
  191. package/dist/admin/surfaces/extensions/form-modal.d.ts.map +1 -0
  192. package/dist/admin/surfaces/extensions/form-modal.js +27 -0
  193. package/dist/admin/surfaces/extensions/form-modal.js.map +1 -0
  194. package/dist/admin/surfaces/feeds/feed-editor.d.ts +8 -0
  195. package/dist/admin/surfaces/feeds/feed-editor.d.ts.map +1 -0
  196. package/dist/admin/surfaces/feeds/feed-editor.js +120 -0
  197. package/dist/admin/surfaces/feeds/feed-editor.js.map +1 -0
  198. package/dist/admin/surfaces/feeds/feeds-data.d.ts +35 -0
  199. package/dist/admin/surfaces/feeds/feeds-data.d.ts.map +1 -0
  200. package/dist/admin/surfaces/feeds/feeds-data.js +81 -0
  201. package/dist/admin/surfaces/feeds/feeds-data.js.map +1 -0
  202. package/dist/admin/surfaces/feeds/feeds-detail.d.ts +3 -0
  203. package/dist/admin/surfaces/feeds/feeds-detail.d.ts.map +1 -0
  204. package/dist/admin/surfaces/feeds/feeds-detail.js +36 -0
  205. package/dist/admin/surfaces/feeds/feeds-detail.js.map +1 -0
  206. package/dist/admin/surfaces/feeds/feeds-list.d.ts +3 -0
  207. package/dist/admin/surfaces/feeds/feeds-list.d.ts.map +1 -0
  208. package/dist/admin/surfaces/feeds/feeds-list.js +49 -0
  209. package/dist/admin/surfaces/feeds/feeds-list.js.map +1 -0
  210. package/dist/admin/surfaces/feeds/feeds-new.d.ts +3 -0
  211. package/dist/admin/surfaces/feeds/feeds-new.d.ts.map +1 -0
  212. package/dist/admin/surfaces/feeds/feeds-new.js +7 -0
  213. package/dist/admin/surfaces/feeds/feeds-new.js.map +1 -0
  214. package/dist/admin/surfaces/forms/form-editor.d.ts +5 -0
  215. package/dist/admin/surfaces/forms/form-editor.d.ts.map +1 -0
  216. package/dist/admin/surfaces/forms/form-editor.js +59 -0
  217. package/dist/admin/surfaces/forms/form-editor.js.map +1 -0
  218. package/dist/admin/surfaces/forms/forms-data.d.ts +52 -0
  219. package/dist/admin/surfaces/forms/forms-data.d.ts.map +1 -0
  220. package/dist/admin/surfaces/forms/forms-data.js +106 -0
  221. package/dist/admin/surfaces/forms/forms-data.js.map +1 -0
  222. package/dist/admin/surfaces/forms/forms-edit.d.ts +3 -0
  223. package/dist/admin/surfaces/forms/forms-edit.d.ts.map +1 -0
  224. package/dist/admin/surfaces/forms/forms-edit.js +40 -0
  225. package/dist/admin/surfaces/forms/forms-edit.js.map +1 -0
  226. package/dist/admin/surfaces/forms/forms-list.d.ts +3 -0
  227. package/dist/admin/surfaces/forms/forms-list.d.ts.map +1 -0
  228. package/dist/admin/surfaces/forms/forms-list.js +53 -0
  229. package/dist/admin/surfaces/forms/forms-list.js.map +1 -0
  230. package/dist/admin/surfaces/forms/forms-new.d.ts +3 -0
  231. package/dist/admin/surfaces/forms/forms-new.d.ts.map +1 -0
  232. package/dist/admin/surfaces/forms/forms-new.js +7 -0
  233. package/dist/admin/surfaces/forms/forms-new.js.map +1 -0
  234. package/dist/admin/surfaces/forms/forms-submissions.d.ts +3 -0
  235. package/dist/admin/surfaces/forms/forms-submissions.d.ts.map +1 -0
  236. package/dist/admin/surfaces/forms/forms-submissions.js +125 -0
  237. package/dist/admin/surfaces/forms/forms-submissions.js.map +1 -0
  238. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts +8 -0
  239. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -0
  240. package/dist/admin/surfaces/layouts/layout-editor-client.js +77 -0
  241. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -0
  242. package/dist/admin/surfaces/layouts/layouts-data.d.ts +53 -0
  243. package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -0
  244. package/dist/admin/surfaces/layouts/layouts-data.js +61 -0
  245. package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -0
  246. package/dist/admin/surfaces/layouts/layouts-detail.d.ts +3 -0
  247. package/dist/admin/surfaces/layouts/layouts-detail.d.ts.map +1 -0
  248. package/dist/admin/surfaces/layouts/layouts-detail.js +38 -0
  249. package/dist/admin/surfaces/layouts/layouts-detail.js.map +1 -0
  250. package/dist/admin/surfaces/layouts/layouts-list.d.ts +3 -0
  251. package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -0
  252. package/dist/admin/surfaces/layouts/layouts-list.js +62 -0
  253. package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -0
  254. package/dist/admin/surfaces/layouts/layouts-new.d.ts +3 -0
  255. package/dist/admin/surfaces/layouts/layouts-new.d.ts.map +1 -0
  256. package/dist/admin/surfaces/layouts/layouts-new.js +7 -0
  257. package/dist/admin/surfaces/layouts/layouts-new.js.map +1 -0
  258. package/dist/admin/surfaces/login.d.ts +20 -0
  259. package/dist/admin/surfaces/login.d.ts.map +1 -0
  260. package/dist/admin/surfaces/login.js +92 -0
  261. package/dist/admin/surfaces/login.js.map +1 -0
  262. package/dist/admin/surfaces/media/library.d.ts +3 -0
  263. package/dist/admin/surfaces/media/library.d.ts.map +1 -0
  264. package/dist/admin/surfaces/media/library.js +7 -0
  265. package/dist/admin/surfaces/media/library.js.map +1 -0
  266. package/dist/admin/surfaces/media/media-client.d.ts +4 -0
  267. package/dist/admin/surfaces/media/media-client.d.ts.map +1 -0
  268. package/dist/admin/surfaces/media/media-client.js +203 -0
  269. package/dist/admin/surfaces/media/media-client.js.map +1 -0
  270. package/dist/admin/surfaces/media/upload.d.ts +3 -0
  271. package/dist/admin/surfaces/media/upload.d.ts.map +1 -0
  272. package/dist/admin/surfaces/media/upload.js +7 -0
  273. package/dist/admin/surfaces/media/upload.js.map +1 -0
  274. package/dist/admin/surfaces/plugins/plugins-data.d.ts +37 -0
  275. package/dist/admin/surfaces/plugins/plugins-data.d.ts.map +1 -0
  276. package/dist/admin/surfaces/plugins/plugins-data.js +31 -0
  277. package/dist/admin/surfaces/plugins/plugins-data.js.map +1 -0
  278. package/dist/admin/surfaces/plugins/plugins-index.d.ts +3 -0
  279. package/dist/admin/surfaces/plugins/plugins-index.d.ts.map +1 -0
  280. package/dist/admin/surfaces/plugins/plugins-index.js +72 -0
  281. package/dist/admin/surfaces/plugins/plugins-index.js.map +1 -0
  282. package/dist/admin/surfaces/search/search-index.d.ts +3 -0
  283. package/dist/admin/surfaces/search/search-index.d.ts.map +1 -0
  284. package/dist/admin/surfaces/search/search-index.js +76 -0
  285. package/dist/admin/surfaces/search/search-index.js.map +1 -0
  286. package/dist/admin/surfaces/settings/admin-features.d.ts +3 -0
  287. package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -0
  288. package/dist/admin/surfaces/settings/admin-features.js +138 -0
  289. package/dist/admin/surfaces/settings/admin-features.js.map +1 -0
  290. package/dist/admin/surfaces/settings/settings-ax.d.ts +3 -0
  291. package/dist/admin/surfaces/settings/settings-ax.d.ts.map +1 -0
  292. package/dist/admin/surfaces/settings/settings-ax.js +63 -0
  293. package/dist/admin/surfaces/settings/settings-ax.js.map +1 -0
  294. package/dist/admin/surfaces/settings/settings-cache.d.ts +3 -0
  295. package/dist/admin/surfaces/settings/settings-cache.d.ts.map +1 -0
  296. package/dist/admin/surfaces/settings/settings-cache.js +64 -0
  297. package/dist/admin/surfaces/settings/settings-cache.js.map +1 -0
  298. package/dist/admin/surfaces/settings/settings-email.d.ts +3 -0
  299. package/dist/admin/surfaces/settings/settings-email.d.ts.map +1 -0
  300. package/dist/admin/surfaces/settings/settings-email.js +89 -0
  301. package/dist/admin/surfaces/settings/settings-email.js.map +1 -0
  302. package/dist/admin/surfaces/settings/settings-general.d.ts +3 -0
  303. package/dist/admin/surfaces/settings/settings-general.d.ts.map +1 -0
  304. package/dist/admin/surfaces/settings/settings-general.js +91 -0
  305. package/dist/admin/surfaces/settings/settings-general.js.map +1 -0
  306. package/dist/admin/surfaces/settings/settings-site.d.ts +3 -0
  307. package/dist/admin/surfaces/settings/settings-site.d.ts.map +1 -0
  308. package/dist/admin/surfaces/settings/settings-site.js +14 -0
  309. package/dist/admin/surfaces/settings/settings-site.js.map +1 -0
  310. package/dist/admin/surfaces/settings/settings-sites.d.ts +3 -0
  311. package/dist/admin/surfaces/settings/settings-sites.d.ts.map +1 -0
  312. package/dist/admin/surfaces/settings/settings-sites.js +134 -0
  313. package/dist/admin/surfaces/settings/settings-sites.js.map +1 -0
  314. package/dist/admin/surfaces/settings/states.d.ts +33 -0
  315. package/dist/admin/surfaces/settings/states.d.ts.map +1 -0
  316. package/dist/admin/surfaces/settings/states.js +33 -0
  317. package/dist/admin/surfaces/settings/states.js.map +1 -0
  318. package/dist/admin/surfaces/taxonomy/categories.d.ts +3 -0
  319. package/dist/admin/surfaces/taxonomy/categories.d.ts.map +1 -0
  320. package/dist/admin/surfaces/taxonomy/categories.js +162 -0
  321. package/dist/admin/surfaces/taxonomy/categories.js.map +1 -0
  322. package/dist/admin/surfaces/taxonomy/tags.d.ts +3 -0
  323. package/dist/admin/surfaces/taxonomy/tags.d.ts.map +1 -0
  324. package/dist/admin/surfaces/taxonomy/tags.js +112 -0
  325. package/dist/admin/surfaces/taxonomy/tags.js.map +1 -0
  326. package/dist/admin/surfaces/taxonomy/taxonomy-ui.d.ts +39 -0
  327. package/dist/admin/surfaces/taxonomy/taxonomy-ui.d.ts.map +1 -0
  328. package/dist/admin/surfaces/taxonomy/taxonomy-ui.js +66 -0
  329. package/dist/admin/surfaces/taxonomy/taxonomy-ui.js.map +1 -0
  330. package/dist/admin/surfaces/translations/states.d.ts +10 -0
  331. package/dist/admin/surfaces/translations/states.d.ts.map +1 -0
  332. package/dist/admin/surfaces/translations/states.js +11 -0
  333. package/dist/admin/surfaces/translations/states.js.map +1 -0
  334. package/dist/admin/surfaces/translations/translations-index.d.ts +3 -0
  335. package/dist/admin/surfaces/translations/translations-index.d.ts.map +1 -0
  336. package/dist/admin/surfaces/translations/translations-index.js +99 -0
  337. package/dist/admin/surfaces/translations/translations-index.js.map +1 -0
  338. package/dist/admin/surfaces/trash/trash-index.d.ts +3 -0
  339. package/dist/admin/surfaces/trash/trash-index.d.ts.map +1 -0
  340. package/dist/admin/surfaces/trash/trash-index.js +96 -0
  341. package/dist/admin/surfaces/trash/trash-index.js.map +1 -0
  342. package/dist/admin/surfaces/users/users-data.d.ts +51 -0
  343. package/dist/admin/surfaces/users/users-data.d.ts.map +1 -0
  344. package/dist/admin/surfaces/users/users-data.js +60 -0
  345. package/dist/admin/surfaces/users/users-data.js.map +1 -0
  346. package/dist/admin/surfaces/users/users-detail.d.ts +3 -0
  347. package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -0
  348. package/dist/admin/surfaces/users/users-detail.js +148 -0
  349. package/dist/admin/surfaces/users/users-detail.js.map +1 -0
  350. package/dist/admin/surfaces/users/users-groups.d.ts +3 -0
  351. package/dist/admin/surfaces/users/users-groups.d.ts.map +1 -0
  352. package/dist/admin/surfaces/users/users-groups.js +136 -0
  353. package/dist/admin/surfaces/users/users-groups.js.map +1 -0
  354. package/dist/admin/surfaces/users/users-list.d.ts +3 -0
  355. package/dist/admin/surfaces/users/users-list.d.ts.map +1 -0
  356. package/dist/admin/surfaces/users/users-list.js +119 -0
  357. package/dist/admin/surfaces/users/users-list.js.map +1 -0
  358. package/dist/admin/surfaces/users/users-new.d.ts +3 -0
  359. package/dist/admin/surfaces/users/users-new.d.ts.map +1 -0
  360. package/dist/admin/surfaces/users/users-new.js +78 -0
  361. package/dist/admin/surfaces/users/users-new.js.map +1 -0
  362. package/dist/admin/surfaces/users/users-permissions.d.ts +3 -0
  363. package/dist/admin/surfaces/users/users-permissions.d.ts.map +1 -0
  364. package/dist/admin/surfaces/users/users-permissions.js +135 -0
  365. package/dist/admin/surfaces/users/users-permissions.js.map +1 -0
  366. package/dist/admin/surfaces/webServices/api-keys.d.ts +3 -0
  367. package/dist/admin/surfaces/webServices/api-keys.d.ts.map +1 -0
  368. package/dist/admin/surfaces/webServices/api-keys.js +65 -0
  369. package/dist/admin/surfaces/webServices/api-keys.js.map +1 -0
  370. package/dist/admin/surfaces/webServices/oauth.d.ts +3 -0
  371. package/dist/admin/surfaces/webServices/oauth.d.ts.map +1 -0
  372. package/dist/admin/surfaces/webServices/oauth.js +75 -0
  373. package/dist/admin/surfaces/webServices/oauth.js.map +1 -0
  374. package/dist/admin/surfaces/webServices/secret-reveal-modal.d.ts +8 -0
  375. package/dist/admin/surfaces/webServices/secret-reveal-modal.d.ts.map +1 -0
  376. package/dist/admin/surfaces/webServices/secret-reveal-modal.js +30 -0
  377. package/dist/admin/surfaces/webServices/secret-reveal-modal.js.map +1 -0
  378. package/dist/admin/surfaces/webServices/web-services-data.d.ts +38 -0
  379. package/dist/admin/surfaces/webServices/web-services-data.d.ts.map +1 -0
  380. package/dist/admin/surfaces/webServices/web-services-data.js +52 -0
  381. package/dist/admin/surfaces/webServices/web-services-data.js.map +1 -0
  382. package/dist/api/admin-features-routes.d.ts +10 -0
  383. package/dist/api/admin-features-routes.d.ts.map +1 -0
  384. package/dist/api/admin-features-routes.js +61 -0
  385. package/dist/api/admin-features-routes.js.map +1 -0
  386. package/dist/api/graphql/resolvers.d.ts +6 -6
  387. package/dist/api/index.d.ts.map +1 -1
  388. package/dist/api/index.js +2 -0
  389. package/dist/api/index.js.map +1 -1
  390. package/dist/config/define.d.ts +22 -1
  391. package/dist/config/define.d.ts.map +1 -1
  392. package/dist/config/define.js +44 -0
  393. package/dist/config/define.js.map +1 -1
  394. package/dist/config/parse.d.ts.map +1 -1
  395. package/dist/config/parse.js +8 -2
  396. package/dist/config/parse.js.map +1 -1
  397. package/dist/config/types.d.ts +60 -1
  398. package/dist/config/types.d.ts.map +1 -1
  399. package/dist/config/types.js +20 -1
  400. package/dist/config/types.js.map +1 -1
  401. package/dist/config/validate.d.ts.map +1 -1
  402. package/dist/config/validate.js +60 -0
  403. package/dist/config/validate.js.map +1 -1
  404. package/dist/db/admin-features-queries.d.ts +29 -0
  405. package/dist/db/admin-features-queries.d.ts.map +1 -0
  406. package/dist/db/admin-features-queries.js +46 -0
  407. package/dist/db/admin-features-queries.js.map +1 -0
  408. package/dist/db/analytics-queries.d.ts +2 -2
  409. package/dist/db/audit-queries.d.ts +3 -3
  410. package/dist/db/category-queries.d.ts +6 -6
  411. package/dist/db/changeset-audit-queries.d.ts +2 -2
  412. package/dist/db/changeset-queries.d.ts +8 -8
  413. package/dist/db/extension-queries.d.ts +17 -17
  414. package/dist/db/feed-queries.d.ts +6 -6
  415. package/dist/db/media-queries.d.ts +12 -12
  416. package/dist/db/site-admin-queries.d.ts +1 -1
  417. package/dist/db/site-queries.d.ts +3 -3
  418. package/dist/db/tag-queries.d.ts +4 -4
  419. package/dist/db/webhook-queries.d.ts +8 -8
  420. package/dist/db/workflow-queries.d.ts +5 -5
  421. package/dist/experiments/schema.d.ts +1 -1
  422. package/dist/host-client/index.d.ts +1 -0
  423. package/dist/host-client/index.d.ts.map +1 -1
  424. package/dist/host-client/index.js +4 -0
  425. package/dist/host-client/index.js.map +1 -1
  426. package/dist/host-client/json.d.ts +36 -0
  427. package/dist/host-client/json.d.ts.map +1 -0
  428. package/dist/host-client/json.js +106 -0
  429. package/dist/host-client/json.js.map +1 -0
  430. package/dist/layout/modules-extended.d.ts.map +1 -1
  431. package/dist/layout/modules-extended.js +9 -8
  432. package/dist/layout/modules-extended.js.map +1 -1
  433. package/dist/layout/modules.js +5 -5
  434. package/dist/layout/modules.js.map +1 -1
  435. package/dist/schema/base.d.ts +1 -1
  436. package/dist/scope/breadcrumbs.d.ts.map +1 -1
  437. package/dist/scope/breadcrumbs.js +4 -1
  438. package/dist/scope/breadcrumbs.js.map +1 -1
  439. package/dist/scope/head-foot.d.ts +12 -4
  440. package/dist/scope/head-foot.d.ts.map +1 -1
  441. package/dist/scope/head-foot.js +14 -6
  442. package/dist/scope/head-foot.js.map +1 -1
  443. package/dist/scope/jsonld.d.ts.map +1 -1
  444. package/dist/scope/jsonld.js +1 -11
  445. package/dist/scope/jsonld.js.map +1 -1
  446. package/dist/scope/kywi-form.d.ts.map +1 -1
  447. package/dist/scope/kywi-form.js +3 -3
  448. package/dist/scope/kywi-form.js.map +1 -1
  449. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  450. package/dist/scope/kywi-wizard-form.js +3 -3
  451. package/dist/scope/kywi-wizard-form.js.map +1 -1
  452. package/dist/scope/rendering.d.ts.map +1 -1
  453. package/dist/scope/rendering.js +7 -6
  454. package/dist/scope/rendering.js.map +1 -1
  455. package/dist/util/jsonld.d.ts +13 -0
  456. package/dist/util/jsonld.d.ts.map +1 -0
  457. package/dist/util/jsonld.js +15 -0
  458. package/dist/util/jsonld.js.map +1 -0
  459. package/dist/util/sanitize.d.ts +6 -0
  460. package/dist/util/sanitize.d.ts.map +1 -0
  461. package/dist/util/sanitize.js +156 -0
  462. package/dist/util/sanitize.js.map +1 -0
  463. package/package.json +12 -3
@@ -0,0 +1,75 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Approvals surface (`/admin/approvals`) — 0.2.0 T6 migration.
5
+ *
6
+ * Ported verbatim from `apps/reference/app/admin/approvals/page.tsx`. The
7
+ * `approvals-data.ts` sidecar moves alongside it (`./approvals-data.js`).
8
+ * `Loading`/`ErrorBox` → core `admin/primitives`; the outer
9
+ * `AdminShellWrapper` is dropped — chrome renders once around every surface
10
+ * via `KywiAdminApp`/`AdminChrome`. `ApprovalQueue` was already a core
11
+ * component (`admin/approval-queue.tsx`); only the local import path changes.
12
+ */
13
+ import { useCallback, useEffect, useMemo, useState } from 'react';
14
+ import { ApprovalQueue } from '../../approval-queue.js';
15
+ import { Loading, ErrorBox } from '../../primitives.js';
16
+ import { loadApprovals, approveSubmission, rejectSubmission } from './approvals-data.js';
17
+ export default function ApprovalsIndexSurface(_props) {
18
+ const [items, setItems] = useState([]);
19
+ const [loading, setLoading] = useState(true);
20
+ const [error, setError] = useState(null);
21
+ const [busy, setBusy] = useState(false);
22
+ const [notice, setNotice] = useState(null);
23
+ const load = useCallback(async () => {
24
+ setLoading(true);
25
+ setError(null);
26
+ try {
27
+ setItems(await loadApprovals());
28
+ }
29
+ catch (e) {
30
+ setError(e instanceof Error ? e.message : 'Failed to load approvals');
31
+ }
32
+ finally {
33
+ setLoading(false);
34
+ }
35
+ }, []);
36
+ useEffect(() => {
37
+ load();
38
+ }, [load]);
39
+ // Filter dropdowns are populated from the items actually in the queue.
40
+ const filterOptions = useMemo(() => {
41
+ const uniq = (values) => Array.from(new Set(values.filter(Boolean)));
42
+ return {
43
+ sites: uniq(items.map(i => i.siteId)),
44
+ contentTypes: uniq(items.map(i => i.contentType)),
45
+ submitters: uniq(items.map(i => i.submittedBy)),
46
+ };
47
+ }, [items]);
48
+ const runAction = useCallback(async (id, comment, verb) => {
49
+ const item = items.find(i => i.id === id);
50
+ if (!item)
51
+ return;
52
+ setBusy(true);
53
+ setError(null);
54
+ setNotice(null);
55
+ try {
56
+ if (verb === 'approve') {
57
+ await approveSubmission(item.contentTypeName, id, comment);
58
+ setNotice(`“${item.title}” approved and published.`);
59
+ }
60
+ else {
61
+ await rejectSubmission(item.contentTypeName, id, comment);
62
+ setNotice(`“${item.title}” rejected and returned to draft.`);
63
+ }
64
+ await load();
65
+ }
66
+ catch (e) {
67
+ setError(e instanceof Error ? e.message : `Failed to ${verb} submission`);
68
+ }
69
+ finally {
70
+ setBusy(false);
71
+ }
72
+ }, [items, load]);
73
+ return (_jsxs(_Fragment, { children: [notice && (_jsx("div", { className: "kywi-admin-callout kywi-admin-callout-success", role: "status", children: notice })), !loading && error && (_jsx("div", { className: "kywi-admin-callout kywi-admin-callout-danger", role: "alert", children: error })), loading ? (_jsx(Loading, { label: "Loading approvals\u2026" })) : error && items.length === 0 ? (_jsx(ErrorBox, { message: error, onRetry: load })) : (_jsx(ApprovalQueue, { items: items, filterOptions: filterOptions, busy: busy, onApprove: (id, comment) => runAction(id, comment, 'approve'), onReject: (id, comment) => runAction(id, comment, 'reject') }))] }));
74
+ }
75
+ //# sourceMappingURL=approvals-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals-index.js","sourceRoot":"","sources":["../../../../src/admin/surfaces/approvals/approvals-index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Shared data helpers for the admin Personalization (Audiences) surface.
3
+ * All calls go through the DB-backed /api/v1 handler via adminFetch; the
4
+ * httpOnly session cookie is bridged to Authorization by middleware.
5
+ *
6
+ * Response envelope: success is `{ data }`, failure is `{ error: { message } }`.
7
+ *
8
+ * Ported verbatim from `apps/reference/app/admin/audiences/audiences-data.ts`
9
+ * (0.2.0 T11). The only wiring substitutions (plan §1.3) are the import
10
+ * rewires: the `adminFetch` + JSON layer now source from
11
+ * `@kywi-software/core/host-client`, and the admin/evaluator types resolve to
12
+ * core's own modules rather than the package self-reference.
13
+ */
14
+ import { getJson } from '../../../host-client/index.js';
15
+ import type { Audience, SelfIdField, SelfIdWidgetConfig } from '../../../audiences/types.js';
16
+ import type { EvaluationTrace } from '../../../audiences/evaluator/index.js';
17
+ import type { ConditionGroupInput } from '../../condition-builder.js';
18
+ import type { SignalOption } from '../../signal-options.js';
19
+ export { getJson };
20
+ export declare function loadAudiences(): Promise<Audience[]>;
21
+ /**
22
+ * Load the dynamic condition-builder signal catalogue (base signals + self-ID
23
+ * fields + registered adapter fields). Degrades gracefully: on failure the
24
+ * editor falls back to its built-in base catalogue.
25
+ */
26
+ export declare function loadSignalOptions(): Promise<SignalOption[] | undefined>;
27
+ /** Persist the audience list order (priorities) via the reorder API. */
28
+ export declare function reorderAudiences(orderedIds: string[]): Promise<void>;
29
+ export declare function loadAudience(id: string): Promise<Audience>;
30
+ /** Payload accepted by both create and update audience routes. */
31
+ export interface AudienceSubmitValues {
32
+ name?: string;
33
+ description?: string;
34
+ status?: 'active' | 'draft' | 'archived';
35
+ priority?: number;
36
+ scoreThreshold?: number | null;
37
+ conditionGroups?: ConditionGroupInput[];
38
+ }
39
+ export declare function createAudience(v: AudienceSubmitValues): Promise<Audience>;
40
+ export declare function updateAudience(id: string, v: AudienceSubmitValues): Promise<Audience>;
41
+ export declare function deleteAudience(id: string): Promise<void>;
42
+ /** Map a stored Audience into the editor's initialValues shape. */
43
+ export declare function toEditorValues(a: Audience): {
44
+ name: string;
45
+ description: string;
46
+ status: 'active' | 'draft' | 'archived';
47
+ priority: number;
48
+ scoreThreshold: number | null;
49
+ conditionGroups: ConditionGroupInput[];
50
+ };
51
+ /** Next free priority (max + 1), so the "New" default doesn't collide with the
52
+ * (siteId, priority) unique index. */
53
+ export declare function nextPriority(audiences: Audience[]): number;
54
+ /** One audience's match analytics, as returned by GET /audiences/analytics. */
55
+ export interface AudienceAnalytics {
56
+ audienceId: string;
57
+ matchCount: number;
58
+ matchRate: number;
59
+ uniqueVisitors: number;
60
+ period: 'day' | 'week' | 'month';
61
+ }
62
+ /**
63
+ * Load match analytics for a single audience. Returns null when the endpoint
64
+ * reports no record for it (e.g. it has never been evaluated).
65
+ */
66
+ export declare function loadAudienceAnalytics(id: string, period?: 'day' | 'week' | 'month'): Promise<AudienceAnalytics | null>;
67
+ export declare function loadSelfIdFields(): Promise<SelfIdField[]>;
68
+ export declare function saveSelfIdField(field: Omit<SelfIdField, 'siteId'>): Promise<SelfIdField>;
69
+ export declare function deleteSelfIdField(fieldId: string): Promise<void>;
70
+ /**
71
+ * Returns null when no config has been saved yet. The API returns 200 with a
72
+ * null body in that case (avoids a console 404); a legacy 404 is tolerated too.
73
+ */
74
+ export declare function loadWidgetConfig(): Promise<SelfIdWidgetConfig | null>;
75
+ export declare function saveWidgetConfig(config: Omit<SelfIdWidgetConfig, 'id' | 'siteId'>): Promise<SelfIdWidgetConfig>;
76
+ /** The flat signal bag the RuleTester hands back. */
77
+ export interface FlatRuleTesterSignals {
78
+ utmSource: string;
79
+ utmMedium: string;
80
+ utmCampaign: string;
81
+ utmTerm: string;
82
+ utmContent: string;
83
+ referrerRaw: string;
84
+ referrerDomain: string;
85
+ referrerSourceType: string;
86
+ pageViews: number;
87
+ totalPageViews: number;
88
+ timeOnSite: number;
89
+ entryPage: string;
90
+ pagesVisited: string[];
91
+ categoryScores: Record<string, number>;
92
+ behavioralTotalScore: number;
93
+ selfId: Record<string, string>;
94
+ visitorId: string;
95
+ isKnown: boolean;
96
+ }
97
+ /** POST to /audiences/evaluate and return the trace for this audience. */
98
+ export declare function evaluateAudience(audienceId: string, signals: FlatRuleTesterSignals): Promise<EvaluationTrace | null>;
99
+ export interface IssuedPreviewToken {
100
+ jti: string;
101
+ jwt: string;
102
+ audienceId: string;
103
+ expiresAt: number;
104
+ }
105
+ export declare function issuePreviewToken(audienceId: string): Promise<IssuedPreviewToken>;
106
+ export declare function revokePreviewToken(jti: string, audienceId: string): Promise<void>;
107
+ //# sourceMappingURL=audiences-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-data.d.ts","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Shared data helpers for the admin Personalization (Audiences) surface.
3
+ * All calls go through the DB-backed /api/v1 handler via adminFetch; the
4
+ * httpOnly session cookie is bridged to Authorization by middleware.
5
+ *
6
+ * Response envelope: success is `{ data }`, failure is `{ error: { message } }`.
7
+ *
8
+ * Ported verbatim from `apps/reference/app/admin/audiences/audiences-data.ts`
9
+ * (0.2.0 T11). The only wiring substitutions (plan §1.3) are the import
10
+ * rewires: the `adminFetch` + JSON layer now source from
11
+ * `@kywi-software/core/host-client`, and the admin/evaluator types resolve to
12
+ * core's own modules rather than the package self-reference.
13
+ */
14
+ import { adminFetch, getJson, sendJson, readError } from '../../../host-client/index.js';
15
+ // The JSON fetch layer (getJson / sendJson / readError) lives in host-client;
16
+ // audiences-data adds only the audience-specific shaping on top of it.
17
+ export { getJson };
18
+ // ── audiences ────────────────────────────────────────────────────────────
19
+ /** Coerce JSON string dates back to Date so the value is a real `Audience`. */
20
+ function hydrateAudience(raw) {
21
+ return {
22
+ ...raw,
23
+ createdAt: new Date(raw.createdAt),
24
+ updatedAt: new Date(raw.updatedAt),
25
+ };
26
+ }
27
+ export async function loadAudiences() {
28
+ const raw = await getJson('/api/v1/audiences');
29
+ return raw.map(hydrateAudience);
30
+ }
31
+ /**
32
+ * Load the dynamic condition-builder signal catalogue (base signals + self-ID
33
+ * fields + registered adapter fields). Degrades gracefully: on failure the
34
+ * editor falls back to its built-in base catalogue.
35
+ */
36
+ export async function loadSignalOptions() {
37
+ try {
38
+ return await getJson('/api/v1/audiences/signals');
39
+ }
40
+ catch {
41
+ return undefined;
42
+ }
43
+ }
44
+ /** Persist the audience list order (priorities) via the reorder API. */
45
+ export async function reorderAudiences(orderedIds) {
46
+ await sendJson('/api/v1/audiences/reorder', 'PATCH', { orderedIds });
47
+ }
48
+ export async function loadAudience(id) {
49
+ return hydrateAudience(await getJson(`/api/v1/audiences/${id}`));
50
+ }
51
+ /**
52
+ * Build the create/update body. The create schema rejects a null
53
+ * scoreThreshold (it is `number().optional()`, not nullable), so drop it when
54
+ * null; update accepts null and clears the threshold.
55
+ */
56
+ function buildAudienceBody(v, mode) {
57
+ const body = {
58
+ name: v.name,
59
+ priority: v.priority,
60
+ status: v.status,
61
+ description: v.description ?? '',
62
+ conditionGroups: v.conditionGroups ?? [],
63
+ };
64
+ if (typeof v.scoreThreshold === 'number') {
65
+ body.scoreThreshold = v.scoreThreshold;
66
+ }
67
+ else if (mode === 'edit' && v.scoreThreshold === null) {
68
+ body.scoreThreshold = null;
69
+ }
70
+ return body;
71
+ }
72
+ export async function createAudience(v) {
73
+ return sendJson('/api/v1/audiences', 'POST', buildAudienceBody(v, 'create'));
74
+ }
75
+ export async function updateAudience(id, v) {
76
+ return sendJson(`/api/v1/audiences/${id}`, 'PUT', buildAudienceBody(v, 'edit'));
77
+ }
78
+ export async function deleteAudience(id) {
79
+ const res = await adminFetch(`/api/v1/audiences/${id}`, { method: 'DELETE' });
80
+ if (!res.ok) {
81
+ // A 409 from the deletion guard carries the referencing locations in
82
+ // error.details.references — surface them so the user knows what to fix.
83
+ if (res.status === 409) {
84
+ const body = (await res.json().catch(() => null));
85
+ const message = body?.error?.message ?? 'Audience is still in use';
86
+ const refs = body?.error?.details?.references ?? [];
87
+ throw new Error(refs.length > 0 ? `${message}\n\nReferenced by:\n- ${refs.join('\n- ')}` : message);
88
+ }
89
+ throw new Error(await readError(res));
90
+ }
91
+ }
92
+ /** Map a stored Audience into the editor's initialValues shape. */
93
+ export function toEditorValues(a) {
94
+ return {
95
+ name: a.name,
96
+ description: a.description ?? '',
97
+ status: a.status,
98
+ priority: a.priority,
99
+ scoreThreshold: a.scoreThreshold,
100
+ conditionGroups: a.conditionGroups.map(g => ({
101
+ conditions: g.conditions.map(toConditionInput),
102
+ })),
103
+ };
104
+ }
105
+ function toConditionInput(c) {
106
+ if (c.type === 'instant') {
107
+ return {
108
+ type: 'instant',
109
+ signal: c.signal,
110
+ operator: c.operator,
111
+ value: Array.isArray(c.value) ? c.value.join(', ') : String(c.value ?? ''),
112
+ };
113
+ }
114
+ return {
115
+ type: 'score',
116
+ trigger: c.trigger,
117
+ ...(c.points !== undefined ? { points: c.points } : {}),
118
+ ...(c.threshold !== undefined ? { threshold: c.threshold } : {}),
119
+ ...(c.category !== undefined ? { category: c.category } : {}),
120
+ ...(c.pattern !== undefined ? { pattern: c.pattern } : {}),
121
+ // signalMatch score conditions carry an instant signal/operator/value; keep
122
+ // them so they round-trip back into the condition builder on edit.
123
+ ...(c.signal !== undefined ? { signal: c.signal } : {}),
124
+ ...(c.operator !== undefined ? { operator: c.operator } : {}),
125
+ ...(c.value !== undefined ? { value: Array.isArray(c.value) ? c.value.join(', ') : String(c.value) } : {}),
126
+ };
127
+ }
128
+ /** Next free priority (max + 1), so the "New" default doesn't collide with the
129
+ * (siteId, priority) unique index. */
130
+ export function nextPriority(audiences) {
131
+ return audiences.reduce((max, a) => Math.max(max, a.priority), 0) + 1;
132
+ }
133
+ /**
134
+ * Load match analytics for a single audience. Returns null when the endpoint
135
+ * reports no record for it (e.g. it has never been evaluated).
136
+ */
137
+ export async function loadAudienceAnalytics(id, period = 'week') {
138
+ const rows = await getJson(`/api/v1/audiences/analytics?ids=${encodeURIComponent(id)}&period=${period}`);
139
+ return rows.find(r => r.audienceId === id) ?? rows[0] ?? null;
140
+ }
141
+ // ── self-ID fields ─────────────────────────────────────────────────────────
142
+ export async function loadSelfIdFields() {
143
+ return getJson('/api/v1/audiences/fields');
144
+ }
145
+ export async function saveSelfIdField(field) {
146
+ return sendJson('/api/v1/audiences/fields', 'POST', field);
147
+ }
148
+ export async function deleteSelfIdField(fieldId) {
149
+ const res = await adminFetch(`/api/v1/audiences/fields/${fieldId}`, { method: 'DELETE' });
150
+ if (!res.ok)
151
+ throw new Error(await readError(res));
152
+ }
153
+ // ── self-ID widget config ───────────────────────────────────────────────────
154
+ /**
155
+ * Returns null when no config has been saved yet. The API returns 200 with a
156
+ * null body in that case (avoids a console 404); a legacy 404 is tolerated too.
157
+ */
158
+ export async function loadWidgetConfig() {
159
+ const res = await adminFetch('/api/v1/audiences/self-id-widget');
160
+ if (res.status === 404)
161
+ return null;
162
+ if (!res.ok)
163
+ throw new Error(await readError(res));
164
+ const body = await res.json();
165
+ return (body.data ?? null);
166
+ }
167
+ export async function saveWidgetConfig(config) {
168
+ return sendJson('/api/v1/audiences/self-id-widget', 'PUT', config);
169
+ }
170
+ /** Flat tester signals → the nested VisitorSignals partial the evaluate route expects. */
171
+ function toVisitorSignals(s) {
172
+ return {
173
+ utm: {
174
+ source: s.utmSource || null,
175
+ medium: s.utmMedium || null,
176
+ campaign: s.utmCampaign || null,
177
+ term: s.utmTerm || null,
178
+ content: s.utmContent || null,
179
+ },
180
+ referrer: {
181
+ raw: s.referrerRaw || null,
182
+ domain: s.referrerDomain || null,
183
+ sourceType: s.referrerSourceType,
184
+ },
185
+ session: {
186
+ pageViewCount: s.pageViews,
187
+ totalPageViews: s.totalPageViews,
188
+ sessionDuration: s.timeOnSite,
189
+ entryPage: s.entryPage,
190
+ pagesVisited: s.pagesVisited,
191
+ },
192
+ behavioral: { categoryScores: s.categoryScores, totalScore: s.behavioralTotalScore },
193
+ selfId: s.selfId,
194
+ identity: { visitorId: s.visitorId, isKnown: s.isKnown, maLeadId: null },
195
+ };
196
+ }
197
+ /** POST to /audiences/evaluate and return the trace for this audience. */
198
+ export async function evaluateAudience(audienceId, signals) {
199
+ const result = await sendJson('/api/v1/audiences/evaluate', 'POST', {
200
+ audienceId,
201
+ signals: toVisitorSignals(signals),
202
+ });
203
+ return result.traces.find(t => t.audienceId === audienceId) ?? result.traces[0] ?? null;
204
+ }
205
+ export async function issuePreviewToken(audienceId) {
206
+ return sendJson(`/api/v1/audiences/${audienceId}/preview-token`, 'POST', {});
207
+ }
208
+ export async function revokePreviewToken(jti, audienceId) {
209
+ const res = await adminFetch(`/api/v1/audiences/preview-tokens/${jti}`, {
210
+ method: 'DELETE',
211
+ body: JSON.stringify({ audienceId }),
212
+ });
213
+ if (!res.ok)
214
+ throw new Error(await readError(res));
215
+ }
216
+ //# sourceMappingURL=audiences-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-data.js","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceProps } from '../../registry.js';
2
+ export default function AudienceDetailSurface({ params }: SurfaceProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=audiences-detail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-detail.d.ts","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-detail.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAgBrD,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,2CAiJrE"}
@@ -0,0 +1,78 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * `audiences.detail` surface — the audience overview + analytics view, ported
5
+ * verbatim from `apps/reference/app/admin/audiences/[id]/page.tsx` (0.2.0 T11).
6
+ * Markup / copy are unchanged; the wiring substitutions (plan §1.3) are:
7
+ * `useParams` → `props.params`, `useRouter().push` → `useAdminContext().navigate`,
8
+ * the core `AudienceAnalyticsTab` importing from its own module, and the removal
9
+ * of `AdminShellWrapper` — chrome is rendered once by `KywiAdminApp` (T14).
10
+ */
11
+ import { useCallback, useEffect, useState } from 'react';
12
+ import { useAdminContext } from '../../context.js';
13
+ import { AudienceAnalyticsTab } from '../../audience-analytics.js';
14
+ import { LoadingState, ErrorState } from './states.js';
15
+ import { loadAudience, deleteAudience, loadAudienceAnalytics } from './audiences-data.js';
16
+ function conditionCount(a) {
17
+ return a.conditionGroups.reduce((sum, g) => sum + g.conditions.length, 0);
18
+ }
19
+ /** True when analytics exist but reflect no measured traffic yet. */
20
+ function isEmptyAnalytics(a) {
21
+ return a.matchCount === 0 && a.uniqueVisitors === 0;
22
+ }
23
+ export default function AudienceDetailSurface({ params }) {
24
+ const { navigate } = useAdminContext();
25
+ const id = params.id ?? '';
26
+ const [audience, setAudience] = useState(null);
27
+ const [loading, setLoading] = useState(true);
28
+ const [error, setError] = useState(null);
29
+ const [deleting, setDeleting] = useState(false);
30
+ const [analytics, setAnalytics] = useState(null);
31
+ const [analyticsError, setAnalyticsError] = useState(null);
32
+ const load = useCallback(async () => {
33
+ setLoading(true);
34
+ setError(null);
35
+ try {
36
+ setAudience(await loadAudience(id));
37
+ }
38
+ catch (e) {
39
+ setError(e instanceof Error ? e.message : 'Failed to load audience');
40
+ }
41
+ finally {
42
+ setLoading(false);
43
+ }
44
+ }, [id]);
45
+ const loadAnalytics = useCallback(async () => {
46
+ setAnalyticsError(null);
47
+ try {
48
+ setAnalytics(await loadAudienceAnalytics(id, 'week'));
49
+ }
50
+ catch (e) {
51
+ setAnalyticsError(e instanceof Error ? e.message : 'Failed to load analytics');
52
+ }
53
+ }, [id]);
54
+ useEffect(() => { loadAnalytics(); }, [loadAnalytics]);
55
+ useEffect(() => { load(); }, [load]);
56
+ const handleDelete = useCallback(async () => {
57
+ if (!window.confirm('Delete this audience? This cannot be undone.'))
58
+ return;
59
+ setDeleting(true);
60
+ setError(null);
61
+ try {
62
+ await deleteAudience(id);
63
+ navigate('/admin/audiences');
64
+ }
65
+ catch (e) {
66
+ setError(e instanceof Error ? e.message : 'Failed to delete audience');
67
+ setDeleting(false);
68
+ }
69
+ }, [id, navigate]);
70
+ return (_jsx(_Fragment, { children: loading ? (_jsx(LoadingState, { label: "Loading audience\u2026" })) : error || !audience ? (_jsx(ErrorState, { message: error ?? 'Audience not found', onRetry: load })) : (_jsxs("div", { className: "kywi-admin-audience-detail", children: [_jsxs("div", { className: "kywi-admin-page-header", children: [_jsx("h1", { children: audience.name }), _jsxs("div", { className: "kywi-admin-button-row", children: [_jsx("button", { className: "kywi-btn kywi-btn-primary", onClick: () => navigate(`/admin/audiences/${id}/edit`), children: "Edit" }), _jsx("button", { className: "kywi-btn kywi-btn-secondary", onClick: () => navigate(`/admin/audiences/${id}/test`), children: "Test Rules" }), _jsx("button", { className: "kywi-btn kywi-btn-secondary", onClick: () => navigate('/admin/audiences/preview-tokens'), children: "Preview Tokens" }), _jsx("button", { className: "kywi-btn kywi-btn-danger", onClick: handleDelete, disabled: deleting, children: deleting ? 'Deleting…' : 'Delete' })] })] }), _jsxs("section", { className: "kywi-admin-form-section", children: [_jsx("h2", { children: "Overview" }), _jsxs("dl", { className: "kywi-role-glossary", children: [_jsxs("div", { className: "kywi-role-glossary-row", children: [_jsx("dt", { children: "Status" }), _jsx("dd", { children: _jsx("span", { className: `kywi-admin-status-badge kywi-admin-status-${audience.status}`, children: audience.status }) })] }), _jsxs("div", { className: "kywi-role-glossary-row", children: [_jsx("dt", { children: "Priority" }), _jsxs("dd", { children: [audience.priority, " ", _jsx("span", { className: "kywi-text-muted", children: "(lower = higher priority)" })] })] }), _jsxs("div", { className: "kywi-role-glossary-row", children: [_jsx("dt", { children: "Conditions" }), _jsxs("dd", { children: [conditionCount(audience), " across ", audience.conditionGroups.length, " group", audience.conditionGroups.length !== 1 ? 's' : ''] })] }), _jsxs("div", { className: "kywi-role-glossary-row", children: [_jsx("dt", { children: "Score threshold" }), _jsx("dd", { children: audience.scoreThreshold ?? _jsx("span", { className: "kywi-text-muted", children: "none" }) })] }), audience.description && (_jsxs("div", { className: "kywi-role-glossary-row", children: [_jsx("dt", { children: "Description" }), _jsx("dd", { children: audience.description })] }))] })] }), _jsxs("section", { className: "kywi-admin-form-section", children: [_jsx("h2", { children: "Analytics" }), analyticsError ? (_jsx(ErrorState, { message: analyticsError, onRetry: loadAnalytics })) : !analytics ? (
71
+ // Endpoint returned no record for this audience.
72
+ _jsx("div", { className: "kywi-admin-callout kywi-admin-callout-info", children: _jsxs("p", { children: [_jsx("strong", { children: "No analytics yet." }), " Match rate, matched visitors, and active-visitor counts appear here once live traffic is evaluated against this audience. Use ", _jsx("em", { children: "Test Rules" }), " to simulate visitor signals now."] }) })) : (_jsxs(_Fragment, { children: [_jsx(AudienceAnalyticsTab, { audienceName: audience.name, metrics: {
73
+ matchedVisitors: analytics.matchCount,
74
+ matchRate: analytics.matchRate,
75
+ activeVisitors: analytics.uniqueVisitors,
76
+ } }), isEmptyAnalytics(analytics) && (_jsx("div", { className: "kywi-admin-callout kywi-admin-callout-info", children: _jsxs("p", { children: ["No live traffic has been evaluated against this audience yet, so these counts are all zero. Use ", _jsx("em", { children: "Test Rules" }), " to simulate visitor signals."] }) }))] }))] })] })) }));
77
+ }
78
+ //# sourceMappingURL=audiences-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-detail.js","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-detail.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceProps } from '../../registry.js';
2
+ export default function EditAudienceSurface({ params }: SurfaceProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=audiences-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-edit.d.ts","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-edit.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAQrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,2CA4DnE"}
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * `audiences.edit` surface — the edit-audience editor, ported verbatim from
5
+ * `apps/reference/app/admin/audiences/[id]/edit/page.tsx` (0.2.0 T11). Markup /
6
+ * copy are unchanged; the wiring substitutions (plan §1.3) are: `useParams` →
7
+ * `props.params`, `useRouter().push` → `useAdminContext().navigate`, the core
8
+ * `AudienceEditor`/`SignalOption` importing from their own modules, and the
9
+ * removal of `AdminShellWrapper` — chrome is rendered once by `KywiAdminApp` (T14).
10
+ */
11
+ import { useCallback, useEffect, useState } from 'react';
12
+ import { useAdminContext } from '../../context.js';
13
+ import { AudienceEditor } from '../../audience-editor.js';
14
+ import { LoadingState, ErrorState } from './states.js';
15
+ import { loadAudience, updateAudience, toEditorValues, loadSignalOptions } from './audiences-data.js';
16
+ export default function EditAudienceSurface({ params }) {
17
+ const { navigate } = useAdminContext();
18
+ const id = params.id ?? '';
19
+ const [audience, setAudience] = useState(null);
20
+ const [signalOptions, setSignalOptions] = useState(undefined);
21
+ const [loading, setLoading] = useState(true);
22
+ const [loadError, setLoadError] = useState(null);
23
+ const [submitError, setSubmitError] = useState(null);
24
+ const [isSubmitting, setIsSubmitting] = useState(false);
25
+ const load = useCallback(async () => {
26
+ setLoading(true);
27
+ setLoadError(null);
28
+ try {
29
+ const [loaded, options] = await Promise.all([loadAudience(id), loadSignalOptions()]);
30
+ setAudience(loaded);
31
+ setSignalOptions(options);
32
+ }
33
+ catch (e) {
34
+ setLoadError(e instanceof Error ? e.message : 'Failed to load audience');
35
+ }
36
+ finally {
37
+ setLoading(false);
38
+ }
39
+ }, [id]);
40
+ useEffect(() => { load(); }, [load]);
41
+ const handleSubmit = useCallback(async (values) => {
42
+ setIsSubmitting(true);
43
+ setSubmitError(null);
44
+ try {
45
+ await updateAudience(id, values);
46
+ navigate(`/admin/audiences/${id}`);
47
+ }
48
+ catch (e) {
49
+ setSubmitError(e instanceof Error ? e.message : 'Failed to save audience');
50
+ setIsSubmitting(false);
51
+ }
52
+ }, [id, navigate]);
53
+ return (_jsx(_Fragment, { children: loading ? (_jsx(LoadingState, { label: "Loading audience\u2026" })) : loadError || !audience ? (_jsx(ErrorState, { message: loadError ?? 'Audience not found', onRetry: load })) : (_jsxs(_Fragment, { children: [submitError && _jsx(ErrorState, { message: submitError }), _jsx(AudienceEditor, { mode: "edit", initialValues: toEditorValues(audience), isSubmitting: isSubmitting, ...(signalOptions ? { signalOptions } : {}), onSubmit: handleSubmit, onCancel: () => navigate(`/admin/audiences/${id}`) })] })) }));
54
+ }
55
+ //# sourceMappingURL=audiences-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-edit.js","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-edit.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceProps } from '../../registry.js';
2
+ export default function SelfIdFieldsSurface(_props: SurfaceProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=audiences-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audiences-fields.d.ts","sourceRoot":"","sources":["../../../../src/admin/surfaces/audiences/audiences-fields.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAMrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,MAAM,EAAE,YAAY,2CAmD/D"}