@flanksource/clicky-ui 0.3.41 → 0.3.42

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 (472) hide show
  1. package/dist/ai.cjs +4 -0
  2. package/dist/ai.cjs.map +1 -1
  3. package/dist/ai.js +4 -0
  4. package/dist/ai.js.map +1 -1
  5. package/dist/comments/CommentCard.cjs +3 -1
  6. package/dist/comments/CommentCard.cjs.map +1 -1
  7. package/dist/comments/CommentCard.d.ts.map +1 -1
  8. package/dist/comments/CommentCard.js +4 -2
  9. package/dist/comments/CommentCard.js.map +1 -1
  10. package/dist/comments/CommentCardParts.cjs +16 -0
  11. package/dist/comments/CommentCardParts.cjs.map +1 -1
  12. package/dist/comments/CommentCardParts.d.ts +4 -1
  13. package/dist/comments/CommentCardParts.d.ts.map +1 -1
  14. package/dist/comments/CommentCardParts.js +16 -0
  15. package/dist/comments/CommentCardParts.js.map +1 -1
  16. package/dist/comments/comment-types.cjs.map +1 -1
  17. package/dist/comments/comment-types.d.ts +4 -0
  18. package/dist/comments/comment-types.d.ts.map +1 -1
  19. package/dist/comments/comment-types.js.map +1 -1
  20. package/dist/components/Combobox.cjs +54 -8
  21. package/dist/components/Combobox.cjs.map +1 -1
  22. package/dist/components/Combobox.d.ts.map +1 -1
  23. package/dist/components/Combobox.js +56 -10
  24. package/dist/components/Combobox.js.map +1 -1
  25. package/dist/components/ComboboxMenu.cjs +139 -113
  26. package/dist/components/ComboboxMenu.cjs.map +1 -1
  27. package/dist/components/ComboboxMenu.d.ts +3 -1
  28. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  29. package/dist/components/ComboboxMenu.js +139 -113
  30. package/dist/components/ComboboxMenu.js.map +1 -1
  31. package/dist/components/ComboboxMenuTrigger.cjs +87 -0
  32. package/dist/components/ComboboxMenuTrigger.cjs.map +1 -0
  33. package/dist/components/ComboboxMenuTrigger.d.ts +23 -0
  34. package/dist/components/ComboboxMenuTrigger.d.ts.map +1 -0
  35. package/dist/components/ComboboxMenuTrigger.js +87 -0
  36. package/dist/components/ComboboxMenuTrigger.js.map +1 -0
  37. package/dist/components/JsonSchemaForm.cjs +30 -7
  38. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  39. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  40. package/dist/components/JsonSchemaForm.js +30 -7
  41. package/dist/components/JsonSchemaForm.js.map +1 -1
  42. package/dist/components/SegmentedControl.cjs +20 -3
  43. package/dist/components/SegmentedControl.cjs.map +1 -1
  44. package/dist/components/SegmentedControl.d.ts +11 -0
  45. package/dist/components/SegmentedControl.d.ts.map +1 -1
  46. package/dist/components/SegmentedControl.js +21 -4
  47. package/dist/components/SegmentedControl.js.map +1 -1
  48. package/dist/components/combobox-types.d.ts +8 -0
  49. package/dist/components/combobox-types.d.ts.map +1 -1
  50. package/dist/components/json-schema-form-debug-badge.cjs +108 -0
  51. package/dist/components/json-schema-form-debug-badge.cjs.map +1 -0
  52. package/dist/components/json-schema-form-debug-badge.d.ts +10 -0
  53. package/dist/components/json-schema-form-debug-badge.d.ts.map +1 -0
  54. package/dist/components/json-schema-form-debug-badge.js +108 -0
  55. package/dist/components/json-schema-form-debug-badge.js.map +1 -0
  56. package/dist/components/json-schema-form-debug-glyph-map.cjs +129 -0
  57. package/dist/components/json-schema-form-debug-glyph-map.cjs.map +1 -0
  58. package/dist/components/json-schema-form-debug-glyph-map.d.ts +20 -0
  59. package/dist/components/json-schema-form-debug-glyph-map.d.ts.map +1 -0
  60. package/dist/components/json-schema-form-debug-glyph-map.js +129 -0
  61. package/dist/components/json-schema-form-debug-glyph-map.js.map +1 -0
  62. package/dist/components/json-schema-form-debug-glyph.cjs +13 -0
  63. package/dist/components/json-schema-form-debug-glyph.cjs.map +1 -0
  64. package/dist/components/json-schema-form-debug-glyph.d.ts +6 -0
  65. package/dist/components/json-schema-form-debug-glyph.d.ts.map +1 -0
  66. package/dist/components/json-schema-form-debug-glyph.js +13 -0
  67. package/dist/components/json-schema-form-debug-glyph.js.map +1 -0
  68. package/dist/components/json-schema-form-debug-groups.cjs +56 -0
  69. package/dist/components/json-schema-form-debug-groups.cjs.map +1 -0
  70. package/dist/components/json-schema-form-debug-groups.d.ts +8 -0
  71. package/dist/components/json-schema-form-debug-groups.d.ts.map +1 -0
  72. package/dist/components/json-schema-form-debug-groups.js +56 -0
  73. package/dist/components/json-schema-form-debug-groups.js.map +1 -0
  74. package/dist/components/json-schema-form-debug-keywords.cjs +159 -0
  75. package/dist/components/json-schema-form-debug-keywords.cjs.map +1 -0
  76. package/dist/components/json-schema-form-debug-keywords.d.ts +6 -0
  77. package/dist/components/json-schema-form-debug-keywords.d.ts.map +1 -0
  78. package/dist/components/json-schema-form-debug-keywords.js +159 -0
  79. package/dist/components/json-schema-form-debug-keywords.js.map +1 -0
  80. package/dist/components/json-schema-form-debug-listeners.cjs +102 -0
  81. package/dist/components/json-schema-form-debug-listeners.cjs.map +1 -0
  82. package/dist/components/json-schema-form-debug-listeners.d.ts +6 -0
  83. package/dist/components/json-schema-form-debug-listeners.d.ts.map +1 -0
  84. package/dist/components/json-schema-form-debug-listeners.js +102 -0
  85. package/dist/components/json-schema-form-debug-listeners.js.map +1 -0
  86. package/dist/components/json-schema-form-debug.cjs +31 -0
  87. package/dist/components/json-schema-form-debug.cjs.map +1 -0
  88. package/dist/components/json-schema-form-debug.d.ts +11 -0
  89. package/dist/components/json-schema-form-debug.d.ts.map +1 -0
  90. package/dist/components/json-schema-form-debug.js +31 -0
  91. package/dist/components/json-schema-form-debug.js.map +1 -0
  92. package/dist/components/json-schema-form-enum-choice.cjs +114 -0
  93. package/dist/components/json-schema-form-enum-choice.cjs.map +1 -0
  94. package/dist/components/json-schema-form-enum-choice.d.ts +14 -0
  95. package/dist/components/json-schema-form-enum-choice.d.ts.map +1 -0
  96. package/dist/components/json-schema-form-enum-choice.js +114 -0
  97. package/dist/components/json-schema-form-enum-choice.js.map +1 -0
  98. package/dist/components/json-schema-form-fields.cjs +3 -93
  99. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  100. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  101. package/dist/components/json-schema-form-fields.js +1 -91
  102. package/dist/components/json-schema-form-fields.js.map +1 -1
  103. package/dist/components/json-schema-form-listeners.cjs +7 -1
  104. package/dist/components/json-schema-form-listeners.cjs.map +1 -1
  105. package/dist/components/json-schema-form-listeners.d.ts.map +1 -1
  106. package/dist/components/json-schema-form-listeners.js +7 -1
  107. package/dist/components/json-schema-form-listeners.js.map +1 -1
  108. package/dist/components/json-schema-form-preferences.cjs +1 -0
  109. package/dist/components/json-schema-form-preferences.cjs.map +1 -1
  110. package/dist/components/json-schema-form-preferences.d.ts +1 -0
  111. package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-preferences.js +1 -0
  113. package/dist/components/json-schema-form-preferences.js.map +1 -1
  114. package/dist/components/json-schema-form-render.cjs +21 -5
  115. package/dist/components/json-schema-form-render.cjs.map +1 -1
  116. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  117. package/dist/components/json-schema-form-render.js +21 -5
  118. package/dist/components/json-schema-form-render.js.map +1 -1
  119. package/dist/components/json-schema-form-runtime-types.d.ts +1 -0
  120. package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -1
  121. package/dist/components/json-schema-form-tone.cjs +12 -0
  122. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  123. package/dist/components/json-schema-form-tone.js +12 -0
  124. package/dist/components/json-schema-form-tone.js.map +1 -1
  125. package/dist/components/json-schema-form-types.d.ts +1 -0
  126. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  127. package/dist/data/GraphDiagram.cjs +125 -138
  128. package/dist/data/GraphDiagram.cjs.map +1 -1
  129. package/dist/data/GraphDiagram.d.ts +30 -23
  130. package/dist/data/GraphDiagram.d.ts.map +1 -1
  131. package/dist/data/GraphDiagram.js +128 -141
  132. package/dist/data/GraphDiagram.js.map +1 -1
  133. package/dist/data/GraphDiagramEdges.cjs +208 -0
  134. package/dist/data/GraphDiagramEdges.cjs.map +1 -0
  135. package/dist/data/GraphDiagramEdges.d.ts +40 -0
  136. package/dist/data/GraphDiagramEdges.d.ts.map +1 -0
  137. package/dist/data/GraphDiagramEdges.js +208 -0
  138. package/dist/data/GraphDiagramEdges.js.map +1 -0
  139. package/dist/data/GraphDiagramNodes.cjs +142 -0
  140. package/dist/data/GraphDiagramNodes.cjs.map +1 -0
  141. package/dist/data/GraphDiagramNodes.d.ts +22 -0
  142. package/dist/data/GraphDiagramNodes.d.ts.map +1 -0
  143. package/dist/data/GraphDiagramNodes.js +142 -0
  144. package/dist/data/GraphDiagramNodes.js.map +1 -0
  145. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs +8 -3
  146. package/dist/data/ai/PromptRunEditor/RuntimeRows.cjs.map +1 -1
  147. package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts.map +1 -1
  148. package/dist/data/ai/PromptRunEditor/RuntimeRows.js +8 -3
  149. package/dist/data/ai/PromptRunEditor/RuntimeRows.js.map +1 -1
  150. package/dist/data/ai/PromptRunEditor/index.cjs +37 -43
  151. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  152. package/dist/data/ai/PromptRunEditor/index.d.ts +3 -1
  153. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  154. package/dist/data/ai/PromptRunEditor/index.js +38 -44
  155. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  156. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +16 -5
  157. package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
  158. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -1
  159. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
  160. package/dist/data/ai/PromptRunEditor/runtimeActions.js +17 -6
  161. package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
  162. package/dist/data/ai/SessionInspector.approvals-model.cjs +12 -0
  163. package/dist/data/ai/SessionInspector.approvals-model.cjs.map +1 -1
  164. package/dist/data/ai/SessionInspector.approvals-model.d.ts +11 -2
  165. package/dist/data/ai/SessionInspector.approvals-model.d.ts.map +1 -1
  166. package/dist/data/ai/SessionInspector.approvals-model.js +12 -0
  167. package/dist/data/ai/SessionInspector.approvals-model.js.map +1 -1
  168. package/dist/data/ai/SessionInspector.approvals.cjs +25 -1
  169. package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
  170. package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -1
  171. package/dist/data/ai/SessionInspector.approvals.js +26 -2
  172. package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
  173. package/dist/data/ai/SessionInspector.summary.cjs +9 -3
  174. package/dist/data/ai/SessionInspector.summary.cjs.map +1 -1
  175. package/dist/data/ai/SessionInspector.summary.d.ts.map +1 -1
  176. package/dist/data/ai/SessionInspector.summary.js +9 -3
  177. package/dist/data/ai/SessionInspector.summary.js.map +1 -1
  178. package/dist/data/ai/SessionInspector.transcript.cjs +4 -0
  179. package/dist/data/ai/SessionInspector.transcript.cjs.map +1 -1
  180. package/dist/data/ai/SessionInspector.transcript.d.ts.map +1 -1
  181. package/dist/data/ai/SessionInspector.transcript.js +4 -0
  182. package/dist/data/ai/SessionInspector.transcript.js.map +1 -1
  183. package/dist/data/ai/SessionViewer.approval-body.cjs +146 -0
  184. package/dist/data/ai/SessionViewer.approval-body.cjs.map +1 -0
  185. package/dist/data/ai/SessionViewer.approval-body.d.ts +11 -0
  186. package/dist/data/ai/SessionViewer.approval-body.d.ts.map +1 -0
  187. package/dist/data/ai/SessionViewer.approval-body.js +146 -0
  188. package/dist/data/ai/SessionViewer.approval-body.js.map +1 -0
  189. package/dist/data/ai/SessionViewer.approval-forms.cjs +150 -0
  190. package/dist/data/ai/SessionViewer.approval-forms.cjs.map +1 -0
  191. package/dist/data/ai/SessionViewer.approval-forms.d.ts +23 -0
  192. package/dist/data/ai/SessionViewer.approval-forms.d.ts.map +1 -0
  193. package/dist/data/ai/SessionViewer.approval-forms.js +150 -0
  194. package/dist/data/ai/SessionViewer.approval-forms.js.map +1 -0
  195. package/dist/data/ai/SessionViewer.cjs +57 -20
  196. package/dist/data/ai/SessionViewer.cjs.map +1 -1
  197. package/dist/data/ai/SessionViewer.d.ts +13 -3
  198. package/dist/data/ai/SessionViewer.d.ts.map +1 -1
  199. package/dist/data/ai/SessionViewer.decision-controls.cjs +313 -0
  200. package/dist/data/ai/SessionViewer.decision-controls.cjs.map +1 -0
  201. package/dist/data/ai/SessionViewer.decision-controls.d.ts +43 -0
  202. package/dist/data/ai/SessionViewer.decision-controls.d.ts.map +1 -0
  203. package/dist/data/ai/SessionViewer.decision-controls.js +313 -0
  204. package/dist/data/ai/SessionViewer.decision-controls.js.map +1 -0
  205. package/dist/data/ai/SessionViewer.decision.cjs +21 -0
  206. package/dist/data/ai/SessionViewer.decision.cjs.map +1 -0
  207. package/dist/data/ai/SessionViewer.decision.d.ts +12 -0
  208. package/dist/data/ai/SessionViewer.decision.d.ts.map +1 -0
  209. package/dist/data/ai/SessionViewer.decision.js +21 -0
  210. package/dist/data/ai/SessionViewer.decision.js.map +1 -0
  211. package/dist/data/ai/SessionViewer.input.cjs +14 -0
  212. package/dist/data/ai/SessionViewer.input.cjs.map +1 -1
  213. package/dist/data/ai/SessionViewer.input.d.ts +5 -0
  214. package/dist/data/ai/SessionViewer.input.d.ts.map +1 -1
  215. package/dist/data/ai/SessionViewer.input.js +14 -0
  216. package/dist/data/ai/SessionViewer.input.js.map +1 -1
  217. package/dist/data/ai/SessionViewer.js +58 -21
  218. package/dist/data/ai/SessionViewer.js.map +1 -1
  219. package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
  220. package/dist/data/ai/SessionViewer.model.d.ts +4 -0
  221. package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
  222. package/dist/data/ai/SessionViewer.model.js.map +1 -1
  223. package/dist/data/ai/SessionViewer.rows.cjs +6 -3
  224. package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
  225. package/dist/data/ai/SessionViewer.rows.d.ts +2 -1
  226. package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
  227. package/dist/data/ai/SessionViewer.rows.js +6 -3
  228. package/dist/data/ai/SessionViewer.rows.js.map +1 -1
  229. package/dist/data/ai/SessionViewer.tool-row.cjs +29 -237
  230. package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
  231. package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
  232. package/dist/data/ai/SessionViewer.tool-row.js +27 -235
  233. package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
  234. package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
  235. package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
  236. package/dist/data/ai/SessionViewerMenu.cjs +8 -2
  237. package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
  238. package/dist/data/ai/SessionViewerMenu.d.ts +4 -1
  239. package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
  240. package/dist/data/ai/SessionViewerMenu.js +8 -2
  241. package/dist/data/ai/SessionViewerMenu.js.map +1 -1
  242. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +28 -17
  243. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  244. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +10 -2
  245. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  246. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +29 -18
  247. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  248. package/dist/data/ai/SpecRuntimeEditor/index.cjs +9 -1
  249. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  250. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +9 -2
  251. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  252. package/dist/data/ai/SpecRuntimeEditor/index.js +9 -1
  253. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  254. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.cjs +1 -1
  255. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.js +1 -1
  256. package/dist/data/ai/SpecRuntimeEditor/summaries.cjs.map +1 -1
  257. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +8 -2
  258. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts.map +1 -1
  259. package/dist/data/ai/SpecRuntimeEditor/summaries.js.map +1 -1
  260. package/dist/data/ai/SpecRuntimeEditor/update.cjs +14 -6
  261. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  262. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -0
  263. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  264. package/dist/data/ai/SpecRuntimeEditor/update.js +14 -6
  265. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  266. package/dist/data/ai/approval-request.cjs +75 -0
  267. package/dist/data/ai/approval-request.cjs.map +1 -0
  268. package/dist/data/ai/approval-request.d.ts +155 -0
  269. package/dist/data/ai/approval-request.d.ts.map +1 -0
  270. package/dist/data/ai/approval-request.js +75 -0
  271. package/dist/data/ai/approval-request.js.map +1 -0
  272. package/dist/data/ai/index.d.ts +3 -0
  273. package/dist/data/ai/index.d.ts.map +1 -1
  274. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs +125 -0
  275. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.cjs.map +1 -0
  276. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts +11 -0
  277. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.d.ts.map +1 -0
  278. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js +125 -0
  279. package/dist/data/ai/runtime-preset-menu/SavePresetDialog.js.map +1 -0
  280. package/dist/data/ai/runtime-preset-menu/index.d.ts +3 -0
  281. package/dist/data/ai/runtime-preset-menu/index.d.ts.map +1 -0
  282. package/dist/data/ai/runtime-preset-menu/model.cjs +73 -0
  283. package/dist/data/ai/runtime-preset-menu/model.cjs.map +1 -0
  284. package/dist/data/ai/runtime-preset-menu/model.d.ts +13 -0
  285. package/dist/data/ai/runtime-preset-menu/model.d.ts.map +1 -0
  286. package/dist/data/ai/runtime-preset-menu/model.js +73 -0
  287. package/dist/data/ai/runtime-preset-menu/model.js.map +1 -0
  288. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs +149 -0
  289. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.cjs.map +1 -0
  290. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts +15 -0
  291. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.d.ts.map +1 -0
  292. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js +149 -0
  293. package/dist/data/ai/runtime-preset-menu/use-runtime-preset-menu.js.map +1 -0
  294. package/dist/data/ai/runtime-spec-fields.cjs +166 -0
  295. package/dist/data/ai/runtime-spec-fields.cjs.map +1 -0
  296. package/dist/data/ai/runtime-spec-fields.d.ts +13 -0
  297. package/dist/data/ai/runtime-spec-fields.d.ts.map +1 -0
  298. package/dist/data/ai/runtime-spec-fields.js +166 -0
  299. package/dist/data/ai/runtime-spec-fields.js.map +1 -0
  300. package/dist/data/ai/session-categories.cjs +4 -0
  301. package/dist/data/ai/session-categories.cjs.map +1 -1
  302. package/dist/data/ai/session-categories.d.ts +1 -0
  303. package/dist/data/ai/session-categories.d.ts.map +1 -1
  304. package/dist/data/ai/session-categories.js +4 -0
  305. package/dist/data/ai/session-categories.js.map +1 -1
  306. package/dist/data/ai/use-session-scroll.cjs +49 -21
  307. package/dist/data/ai/use-session-scroll.cjs.map +1 -1
  308. package/dist/data/ai/use-session-scroll.d.ts +2 -0
  309. package/dist/data/ai/use-session-scroll.d.ts.map +1 -1
  310. package/dist/data/ai/use-session-scroll.js +49 -21
  311. package/dist/data/ai/use-session-scroll.js.map +1 -1
  312. package/dist/data/chat/Chat.runtime.cjs +1 -1
  313. package/dist/data/chat/Chat.runtime.cjs.map +1 -1
  314. package/dist/data/chat/Chat.runtime.d.ts.map +1 -1
  315. package/dist/data/chat/Chat.runtime.js +1 -1
  316. package/dist/data/chat/Chat.runtime.js.map +1 -1
  317. package/dist/data/graph-columns-layout.cjs +216 -0
  318. package/dist/data/graph-columns-layout.cjs.map +1 -0
  319. package/dist/data/graph-columns-layout.d.ts +56 -0
  320. package/dist/data/graph-columns-layout.d.ts.map +1 -0
  321. package/dist/data/graph-columns-layout.js +216 -0
  322. package/dist/data/graph-columns-layout.js.map +1 -0
  323. package/dist/data/graph-diagram-model.cjs +73 -0
  324. package/dist/data/graph-diagram-model.cjs.map +1 -0
  325. package/dist/data/graph-diagram-model.d.ts +90 -0
  326. package/dist/data/graph-diagram-model.d.ts.map +1 -0
  327. package/dist/data/graph-diagram-model.js +73 -0
  328. package/dist/data/graph-diagram-model.js.map +1 -0
  329. package/dist/data/graph-edge-routing.cjs +235 -0
  330. package/dist/data/graph-edge-routing.cjs.map +1 -0
  331. package/dist/data/graph-edge-routing.d.ts +73 -0
  332. package/dist/data/graph-edge-routing.d.ts.map +1 -0
  333. package/dist/data/graph-edge-routing.js +235 -0
  334. package/dist/data/graph-edge-routing.js.map +1 -0
  335. package/dist/data/graph-layout.cjs +0 -82
  336. package/dist/data/graph-layout.cjs.map +1 -1
  337. package/dist/data/graph-layout.d.ts +1 -28
  338. package/dist/data/graph-layout.d.ts.map +1 -1
  339. package/dist/data/graph-layout.js +1 -83
  340. package/dist/data/graph-layout.js.map +1 -1
  341. package/dist/data/har/HarPanel.cjs +129 -33
  342. package/dist/data/har/HarPanel.cjs.map +1 -1
  343. package/dist/data/har/HarPanel.d.ts +13 -1
  344. package/dist/data/har/HarPanel.d.ts.map +1 -1
  345. package/dist/data/har/HarPanel.js +130 -34
  346. package/dist/data/har/HarPanel.js.map +1 -1
  347. package/dist/data/har/fixtures.d.ts +12 -0
  348. package/dist/data/har/fixtures.d.ts.map +1 -1
  349. package/dist/data/har/types.d.ts +12 -0
  350. package/dist/data/har/types.d.ts.map +1 -1
  351. package/dist/data/runtime/RuntimeBar.cjs +67 -84
  352. package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
  353. package/dist/data/runtime/RuntimeBar.d.ts +4 -5
  354. package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
  355. package/dist/data/runtime/RuntimeBar.fields.cjs +170 -0
  356. package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -0
  357. package/dist/data/runtime/RuntimeBar.fields.d.ts +16 -0
  358. package/dist/data/runtime/RuntimeBar.fields.d.ts.map +1 -0
  359. package/dist/data/runtime/RuntimeBar.fields.js +170 -0
  360. package/dist/data/runtime/RuntimeBar.fields.js.map +1 -0
  361. package/dist/data/runtime/RuntimeBar.js +70 -87
  362. package/dist/data/runtime/RuntimeBar.js.map +1 -1
  363. package/dist/data/runtime/RuntimeBar.selection.cjs +56 -0
  364. package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -0
  365. package/dist/data/runtime/RuntimeBar.selection.d.ts +20 -0
  366. package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -0
  367. package/dist/data/runtime/RuntimeBar.selection.js +56 -0
  368. package/dist/data/runtime/RuntimeBar.selection.js.map +1 -0
  369. package/dist/data/runtime/RuntimeBarActions.cjs +10 -6
  370. package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
  371. package/dist/data/runtime/RuntimeBarActions.d.ts +8 -1
  372. package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
  373. package/dist/data/runtime/RuntimeBarActions.js +10 -6
  374. package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
  375. package/dist/data/runtime/RuntimeBarIdentity.cjs +166 -0
  376. package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -0
  377. package/dist/data/runtime/RuntimeBarIdentity.d.ts +25 -0
  378. package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -0
  379. package/dist/data/runtime/RuntimeBarIdentity.js +166 -0
  380. package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -0
  381. package/dist/data/runtime/RuntimeBarLayout.cjs +95 -0
  382. package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -0
  383. package/dist/data/runtime/RuntimeBarLayout.d.ts +9 -0
  384. package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -0
  385. package/dist/data/runtime/RuntimeBarLayout.js +95 -0
  386. package/dist/data/runtime/RuntimeBarLayout.js.map +1 -0
  387. package/dist/data/runtime/RuntimeBarSegment.cjs +25 -14
  388. package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
  389. package/dist/data/runtime/RuntimeBarSegment.d.ts +4 -0
  390. package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
  391. package/dist/data/runtime/RuntimeBarSegment.js +25 -14
  392. package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
  393. package/dist/data/runtime/RuntimeLimitInput.cjs +41 -0
  394. package/dist/data/runtime/RuntimeLimitInput.cjs.map +1 -0
  395. package/dist/data/runtime/RuntimeLimitInput.d.ts +9 -0
  396. package/dist/data/runtime/RuntimeLimitInput.d.ts.map +1 -0
  397. package/dist/data/runtime/RuntimeLimitInput.js +41 -0
  398. package/dist/data/runtime/RuntimeLimitInput.js.map +1 -0
  399. package/dist/data/runtime/use-runtime-bar-overflow.cjs +70 -0
  400. package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -0
  401. package/dist/data/runtime/use-runtime-bar-overflow.d.ts +13 -0
  402. package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -0
  403. package/dist/data/runtime/use-runtime-bar-overflow.js +70 -0
  404. package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -0
  405. package/dist/data/use-edge-focus.cjs +20 -0
  406. package/dist/data/use-edge-focus.cjs.map +1 -0
  407. package/dist/data/use-edge-focus.d.ts +23 -0
  408. package/dist/data/use-edge-focus.d.ts.map +1 -0
  409. package/dist/data/use-edge-focus.js +20 -0
  410. package/dist/data/use-edge-focus.js.map +1 -0
  411. package/dist/data/use-pan-zoom.cjs +159 -0
  412. package/dist/data/use-pan-zoom.cjs.map +1 -0
  413. package/dist/data/use-pan-zoom.d.ts +79 -0
  414. package/dist/data/use-pan-zoom.d.ts.map +1 -0
  415. package/dist/data/use-pan-zoom.js +159 -0
  416. package/dist/data/use-pan-zoom.js.map +1 -0
  417. package/dist/data/version-info.cjs +3 -3
  418. package/dist/data/version-info.js +3 -3
  419. package/dist/data.cjs +5 -1
  420. package/dist/data.cjs.map +1 -1
  421. package/dist/data.d.ts +4 -3
  422. package/dist/data.d.ts.map +1 -1
  423. package/dist/data.js +6 -2
  424. package/dist/data.js.map +1 -1
  425. package/dist/index.cjs +5 -1
  426. package/dist/index.cjs.map +1 -1
  427. package/dist/index.js +6 -2
  428. package/dist/index.js.map +1 -1
  429. package/dist/overlay/DropdownMenu.cjs +1 -0
  430. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  431. package/dist/overlay/DropdownMenu.d.ts +4 -0
  432. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  433. package/dist/overlay/DropdownMenu.js +1 -0
  434. package/dist/overlay/DropdownMenu.js.map +1 -1
  435. package/dist/overlay/DropdownMenuSubmenu.cjs +31 -15
  436. package/dist/overlay/DropdownMenuSubmenu.cjs.map +1 -1
  437. package/dist/overlay/DropdownMenuSubmenu.d.ts.map +1 -1
  438. package/dist/overlay/DropdownMenuSubmenu.js +31 -15
  439. package/dist/overlay/DropdownMenuSubmenu.js.map +1 -1
  440. package/dist/rpc/OperationCatalog.cjs +3 -1
  441. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  442. package/dist/rpc/OperationCatalog.d.ts +3 -1
  443. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  444. package/dist/rpc/OperationCatalog.js +3 -1
  445. package/dist/rpc/OperationCatalog.js.map +1 -1
  446. package/dist/rpc/useOperationPages.cjs +6 -1
  447. package/dist/rpc/useOperationPages.cjs.map +1 -1
  448. package/dist/rpc/useOperationPages.d.ts +3 -1
  449. package/dist/rpc/useOperationPages.d.ts.map +1 -1
  450. package/dist/rpc/useOperationPages.js +6 -1
  451. package/dist/rpc/useOperationPages.js.map +1 -1
  452. package/dist/styles.css +1 -1
  453. package/package.json +1 -1
  454. package/schemas/json-schema-form.schema.json +5 -0
  455. package/dist/data/runtime/RuntimeBarCombo.cjs +0 -423
  456. package/dist/data/runtime/RuntimeBarCombo.cjs.map +0 -1
  457. package/dist/data/runtime/RuntimeBarCombo.d.ts +0 -33
  458. package/dist/data/runtime/RuntimeBarCombo.d.ts.map +0 -1
  459. package/dist/data/runtime/RuntimeBarCombo.js +0 -423
  460. package/dist/data/runtime/RuntimeBarCombo.js.map +0 -1
  461. package/dist/data/runtime/RuntimeBarLimits.cjs +0 -262
  462. package/dist/data/runtime/RuntimeBarLimits.cjs.map +0 -1
  463. package/dist/data/runtime/RuntimeBarLimits.d.ts +0 -17
  464. package/dist/data/runtime/RuntimeBarLimits.d.ts.map +0 -1
  465. package/dist/data/runtime/RuntimeBarLimits.js +0 -262
  466. package/dist/data/runtime/RuntimeBarLimits.js.map +0 -1
  467. package/dist/data/runtime/RuntimeBarSegments.cjs +0 -346
  468. package/dist/data/runtime/RuntimeBarSegments.cjs.map +0 -1
  469. package/dist/data/runtime/RuntimeBarSegments.d.ts +0 -37
  470. package/dist/data/runtime/RuntimeBarSegments.d.ts.map +0 -1
  471. package/dist/data/runtime/RuntimeBarSegments.js +0 -346
  472. package/dist/data/runtime/RuntimeBarSegments.js.map +0 -1
@@ -0,0 +1,129 @@
1
+ import { UiDataSchemaDark, UiDataSchema } from "../icons/components/UiDataSchema.js";
2
+ import { UiExtensionDark, UiExtension } from "../icons/components/UiExtension.js";
3
+ import { UiPluginModuleDark, UiPluginModule } from "../icons/components/UiPluginModule.js";
4
+ import { UiPalette } from "../icons/components/UiPalette.js";
5
+ import { UiHibernateEventDark, UiHibernateEvent } from "../icons/components/UiHibernateEvent.js";
6
+ import { UiNull } from "../icons/components/UiNull.js";
7
+ import { UiLayoutDashboard } from "../icons/components/UiLayoutDashboard.js";
8
+ import { UiColumns } from "../icons/components/UiColumns.js";
9
+ import { UiQuestion } from "../icons/components/UiQuestion.js";
10
+ import { UiRows } from "../icons/components/UiRows.js";
11
+ import { UiListOrdered } from "../icons/components/UiListOrdered.js";
12
+ import { UiSortAlphabeticallyDark, UiSortAlphabetically } from "../icons/components/UiSortAlphabetically.js";
13
+ import { UiDatabaseLinkDark, UiDatabaseLink } from "../icons/components/UiDatabaseLink.js";
14
+ import { UiLock } from "../icons/components/UiLock.js";
15
+ import { UiEyeClosed } from "../icons/components/UiEyeClosed.js";
16
+ import { UiWriteAccessDark, UiWriteAccess } from "../icons/components/UiWriteAccess.js";
17
+ import { UiReadAccessDark, UiReadAccess } from "../icons/components/UiReadAccess.js";
18
+ import { UiRegexDark, UiRegex } from "../icons/components/UiRegex.js";
19
+ import { UiFileFormatDark, UiFileFormat } from "../icons/components/UiFileFormat.js";
20
+ import { UiConstant1Dark, UiConstant1 } from "../icons/components/UiConstant1.js";
21
+ import { UiCircleOutline } from "../icons/components/UiCircleOutline.js";
22
+ import { UiEvaluateExpressionDark, UiEvaluateExpression } from "../icons/components/UiEvaluateExpression.js";
23
+ import { UiProhibit } from "../icons/components/UiProhibit.js";
24
+ import { UiEditModeDark, UiEditMode } from "../icons/components/UiEditMode.js";
25
+ import { UiVariable5Dark, UiVariable5 } from "../icons/components/UiVariable5.js";
26
+ import { UiArrowsCounterClockwise } from "../icons/components/UiArrowsCounterClockwise.js";
27
+ import { UiAsterisk } from "../icons/components/UiAsterisk.js";
28
+ import { UiLockOpen } from "../icons/components/UiLockOpen.js";
29
+ import { UiEye } from "../icons/components/UiEye.js";
30
+ import { UiLink } from "../icons/components/UiLink.js";
31
+ import { UiText } from "../icons/components/UiText.js";
32
+ import { UiObject } from "../icons/components/UiObject.js";
33
+ import { UiArray } from "../icons/components/UiArray.js";
34
+ import { UiCalendarBlank } from "../icons/components/UiCalendarBlank.js";
35
+ import { UiSelect } from "../icons/components/UiSelect.js";
36
+ import { UiEnum } from "../icons/components/UiEnum.js";
37
+ import { UiBoolean } from "../icons/components/UiBoolean.js";
38
+ import { UiNumeric } from "../icons/components/UiNumeric.js";
39
+ import { UiFileCode } from "../icons/components/UiFileCode.js";
40
+ import { UiString } from "../icons/components/UiString.js";
41
+ const pair = (light, dark) => dark ? { light, dark } : { light };
42
+ const GROUP_GLYPH = {
43
+ behaviour: pair(UiHibernateEvent, UiHibernateEventDark),
44
+ presentation: pair(UiPalette),
45
+ "opt-in": pair(UiPluginModule, UiPluginModuleDark),
46
+ consumer: pair(UiExtension, UiExtensionDark),
47
+ schema: pair(UiDataSchema, UiDataSchemaDark)
48
+ };
49
+ const KIND_GLYPH = {
50
+ string: pair(UiString),
51
+ textarea: pair(UiText),
52
+ markdown: pair(UiFileCode),
53
+ number: pair(UiNumeric),
54
+ boolean: pair(UiBoolean),
55
+ enum: pair(UiEnum),
56
+ lookup: pair(UiSelect),
57
+ date: pair(UiCalendarBlank),
58
+ "string-map": pair(UiDataSchema, UiDataSchemaDark),
59
+ array: pair(UiArray),
60
+ object: pair(UiObject),
61
+ display: pair(UiText),
62
+ link: pair(UiLink)
63
+ };
64
+ const TYPE_GLYPH = {
65
+ string: KIND_GLYPH.string,
66
+ integer: KIND_GLYPH.number,
67
+ number: KIND_GLYPH.number,
68
+ boolean: KIND_GLYPH.boolean,
69
+ array: KIND_GLYPH.array,
70
+ object: KIND_GLYPH.object,
71
+ null: pair(UiNull)
72
+ };
73
+ const KEYWORD_GLYPH = {
74
+ enum: KIND_GLYPH.enum,
75
+ const: pair(UiConstant1, UiConstant1Dark),
76
+ default: pair(UiConstant1, UiConstant1Dark),
77
+ format: pair(UiFileFormat, UiFileFormatDark),
78
+ pattern: pair(UiRegex, UiRegexDark),
79
+ readOnly: pair(UiReadAccess, UiReadAccessDark),
80
+ writeOnly: pair(UiWriteAccess, UiWriteAccessDark),
81
+ "x-hidden": pair(UiEyeClosed),
82
+ "x-hidden-by": pair(UiEyeClosed),
83
+ "x-disabled": pair(UiLock),
84
+ "x-on-change": GROUP_GLYPH.behaviour,
85
+ "x-on-load": GROUP_GLYPH.behaviour,
86
+ "x-clicky-lookup": pair(UiDatabaseLink, UiDatabaseLinkDark),
87
+ "x-discriminator": KIND_GLYPH.enum,
88
+ "x-order": pair(UiSortAlphabetically, UiSortAlphabeticallyDark),
89
+ "x-clicky-order": pair(UiListOrdered),
90
+ "x-item": pair(UiRows),
91
+ "x-help": pair(UiQuestion),
92
+ "x-help-display": pair(UiQuestion),
93
+ "x-md-editor": KIND_GLYPH.markdown,
94
+ "x-columns": pair(UiColumns),
95
+ "x-col-span": pair(UiColumns),
96
+ "x-layout": pair(UiLayoutDashboard),
97
+ "x-label-position": pair(UiLayoutDashboard)
98
+ };
99
+ function keywordGlyph(keyword, raw) {
100
+ if (keyword === "type" && typeof raw === "string") return TYPE_GLYPH[raw];
101
+ return KEYWORD_GLYPH[keyword];
102
+ }
103
+ const ACTION_GLYPH = {
104
+ hide: pair(UiEyeClosed),
105
+ show: pair(UiEye),
106
+ enable: pair(UiLockOpen),
107
+ disable: pair(UiLock),
108
+ require: pair(UiAsterisk),
109
+ optional: pair(UiCircleOutline),
110
+ reset: pair(UiArrowsCounterClockwise),
111
+ set: pair(UiVariable5, UiVariable5Dark),
112
+ patch: pair(UiEditMode, UiEditModeDark)
113
+ };
114
+ const CONDITION_GLYPH = {
115
+ const: pair(UiConstant1, UiConstant1Dark),
116
+ enum: KIND_GLYPH.enum,
117
+ not: pair(UiProhibit),
118
+ expr: pair(UiEvaluateExpression, UiEvaluateExpressionDark),
119
+ schema: pair(UiDataSchema, UiDataSchemaDark),
120
+ always: pair(UiCircleOutline)
121
+ };
122
+ export {
123
+ ACTION_GLYPH,
124
+ CONDITION_GLYPH,
125
+ GROUP_GLYPH,
126
+ KIND_GLYPH,
127
+ keywordGlyph
128
+ };
129
+ //# sourceMappingURL=json-schema-form-debug-glyph-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-glyph-map.js","sources":["../../src/components/json-schema-form-debug-glyph-map.ts"],"sourcesContent":["import {\n UiArray,\n UiArrowsCounterClockwise,\n UiAsterisk,\n UiBoolean,\n UiCalendarBlank,\n UiCircleOutline,\n UiColumns,\n UiConstant1,\n UiConstant1Dark,\n UiDataSchema,\n UiDataSchemaDark,\n UiDatabaseLink,\n UiDatabaseLinkDark,\n UiEditMode,\n UiEditModeDark,\n UiEnum,\n UiEvaluateExpression,\n UiEvaluateExpressionDark,\n UiExtension,\n UiExtensionDark,\n UiEye,\n UiEyeClosed,\n UiFileCode,\n UiFileFormat,\n UiFileFormatDark,\n UiHibernateEvent,\n UiHibernateEventDark,\n UiLayoutDashboard,\n UiLink,\n UiListOrdered,\n UiLock,\n UiLockOpen,\n UiNull,\n UiNumeric,\n UiObject,\n UiPalette,\n UiPluginModule,\n UiPluginModuleDark,\n UiProhibit,\n UiQuestion,\n UiReadAccess,\n UiReadAccessDark,\n UiRegex,\n UiRegexDark,\n UiRows,\n UiSelect,\n UiSortAlphabetically,\n UiSortAlphabeticallyDark,\n UiString,\n UiText,\n UiVariable5,\n UiVariable5Dark,\n UiWriteAccess,\n UiWriteAccessDark,\n} from \"../icons\";\nimport type { IconComponent } from \"../icons/types\";\nimport type { KeywordGroup } from \"./json-schema-form-debug-groups\";\nimport type { ChangeActions, FieldControlKind } from \"./json-schema-form-types\";\n\n// Glyphs the debug card draws from the programming icon palette. A palette icon\n// is a coloured pair: `dark` is its dark-theme artwork, where one exists.\nexport interface DebugGlyphPair {\n light: IconComponent;\n dark?: IconComponent;\n}\n\nconst pair = (light: IconComponent, dark?: IconComponent): DebugGlyphPair => (dark ? { light, dark } : { light });\n\nexport const GROUP_GLYPH: Record<KeywordGroup, DebugGlyphPair> = {\n behaviour: pair(UiHibernateEvent, UiHibernateEventDark),\n presentation: pair(UiPalette),\n \"opt-in\": pair(UiPluginModule, UiPluginModuleDark),\n consumer: pair(UiExtension, UiExtensionDark),\n schema: pair(UiDataSchema, UiDataSchemaDark),\n};\n\nexport const KIND_GLYPH: Record<FieldControlKind, DebugGlyphPair> = {\n string: pair(UiString),\n textarea: pair(UiText),\n markdown: pair(UiFileCode),\n number: pair(UiNumeric),\n boolean: pair(UiBoolean),\n enum: pair(UiEnum),\n lookup: pair(UiSelect),\n date: pair(UiCalendarBlank),\n \"string-map\": pair(UiDataSchema, UiDataSchemaDark),\n array: pair(UiArray),\n object: pair(UiObject),\n display: pair(UiText),\n link: pair(UiLink),\n};\n\n// The JSON Schema `type` names, read by the `type` keyword row.\nconst TYPE_GLYPH: Record<string, DebugGlyphPair> = {\n string: KIND_GLYPH.string,\n integer: KIND_GLYPH.number,\n number: KIND_GLYPH.number,\n boolean: KIND_GLYPH.boolean,\n array: KIND_GLYPH.array,\n object: KIND_GLYPH.object,\n null: pair(UiNull),\n};\n\nconst KEYWORD_GLYPH: Record<string, DebugGlyphPair> = {\n enum: KIND_GLYPH.enum,\n const: pair(UiConstant1, UiConstant1Dark),\n default: pair(UiConstant1, UiConstant1Dark),\n format: pair(UiFileFormat, UiFileFormatDark),\n pattern: pair(UiRegex, UiRegexDark),\n readOnly: pair(UiReadAccess, UiReadAccessDark),\n writeOnly: pair(UiWriteAccess, UiWriteAccessDark),\n \"x-hidden\": pair(UiEyeClosed),\n \"x-hidden-by\": pair(UiEyeClosed),\n \"x-disabled\": pair(UiLock),\n \"x-on-change\": GROUP_GLYPH.behaviour,\n \"x-on-load\": GROUP_GLYPH.behaviour,\n \"x-clicky-lookup\": pair(UiDatabaseLink, UiDatabaseLinkDark),\n \"x-discriminator\": KIND_GLYPH.enum,\n \"x-order\": pair(UiSortAlphabetically, UiSortAlphabeticallyDark),\n \"x-clicky-order\": pair(UiListOrdered),\n \"x-item\": pair(UiRows),\n \"x-help\": pair(UiQuestion),\n \"x-help-display\": pair(UiQuestion),\n \"x-md-editor\": KIND_GLYPH.markdown,\n \"x-columns\": pair(UiColumns),\n \"x-col-span\": pair(UiColumns),\n \"x-layout\": pair(UiLayoutDashboard),\n \"x-label-position\": pair(UiLayoutDashboard),\n};\n\n// keywordGlyph is the glyph beside a keyword row; `type` is marked by the\n// type it names. A keyword the palette has no symbol for has none.\nexport function keywordGlyph(keyword: string, raw: unknown): DebugGlyphPair | undefined {\n if (keyword === \"type\" && typeof raw === \"string\") return TYPE_GLYPH[raw];\n return KEYWORD_GLYPH[keyword];\n}\n\nexport const ACTION_GLYPH: Record<keyof ChangeActions, DebugGlyphPair> = {\n hide: pair(UiEyeClosed),\n show: pair(UiEye),\n enable: pair(UiLockOpen),\n disable: pair(UiLock),\n require: pair(UiAsterisk),\n optional: pair(UiCircleOutline),\n reset: pair(UiArrowsCounterClockwise),\n set: pair(UiVariable5, UiVariable5Dark),\n patch: pair(UiEditMode, UiEditModeDark),\n};\n\n// One glyph per predicate a `when` can state.\nexport const CONDITION_GLYPH = {\n const: pair(UiConstant1, UiConstant1Dark),\n enum: KIND_GLYPH.enum,\n not: pair(UiProhibit),\n expr: pair(UiEvaluateExpression, UiEvaluateExpressionDark),\n schema: pair(UiDataSchema, UiDataSchemaDark),\n always: pair(UiCircleOutline),\n} satisfies Record<string, DebugGlyphPair>;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useTheme = require("../hooks/use-theme.cjs");
5
+ const utils = require("../lib/utils.cjs");
6
+ function DebugGlyph({ glyph, className }) {
7
+ const theme = useTheme.useResolvedTheme();
8
+ if (!glyph) return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: utils.cn("inline-block size-3.5 shrink-0", className) });
9
+ const Glyph = theme === "dark" && glyph.dark ? glyph.dark : glyph.light;
10
+ return /* @__PURE__ */ jsxRuntime.jsx(Glyph, { "data-glyph": Glyph.displayName, className: utils.cn("size-3.5 shrink-0", className) });
11
+ }
12
+ exports.DebugGlyph = DebugGlyph;
13
+ //# sourceMappingURL=json-schema-form-debug-glyph.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-glyph.cjs","sources":["../../src/components/json-schema-form-debug-glyph.tsx"],"sourcesContent":["import { useResolvedTheme } from \"../hooks/use-theme\";\nimport { cn } from \"../lib/utils\";\nimport type { DebugGlyphPair } from \"./json-schema-form-debug-glyph-map\";\n\n// DebugGlyph draws a palette glyph in the variant for the resolved theme. It\n// names the component it drew in `data-glyph`.\nexport function DebugGlyph({ glyph, className }: { glyph: DebugGlyphPair | undefined; className?: string }) {\n const theme = useResolvedTheme();\n if (!glyph) return <span aria-hidden className={cn(\"inline-block size-3.5 shrink-0\", className)} />;\n const Glyph = theme === \"dark\" && glyph.dark ? glyph.dark : glyph.light;\n return <Glyph data-glyph={Glyph.displayName} className={cn(\"size-3.5 shrink-0\", className)} />;\n}\n"],"names":["useResolvedTheme","jsx","cn"],"mappings":";;;;;AAMO,SAAS,WAAW,EAAE,OAAO,aAAwE;AAC1G,QAAM,QAAQA,SAAAA,iBAAA;AACd,MAAI,CAAC,MAAO,QAAOC,2BAAAA,IAAC,QAAA,EAAK,eAAW,MAAC,WAAWC,MAAAA,GAAG,kCAAkC,SAAS,EAAA,CAAG;AACjG,QAAM,QAAQ,UAAU,UAAU,MAAM,OAAO,MAAM,OAAO,MAAM;AAClE,SAAOD,+BAAC,SAAM,cAAY,MAAM,aAAa,WAAWC,MAAAA,GAAG,qBAAqB,SAAS,EAAA,CAAG;AAC9F;;"}
@@ -0,0 +1,6 @@
1
+ import { DebugGlyphPair } from './json-schema-form-debug-glyph-map.js';
2
+ export declare function DebugGlyph({ glyph, className }: {
3
+ glyph: DebugGlyphPair | undefined;
4
+ className?: string;
5
+ }): import("react").JSX.Element;
6
+ //# sourceMappingURL=json-schema-form-debug-glyph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-glyph.d.ts","sourceRoot":"","sources":["../../src/components/json-schema-form-debug-glyph.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAKzG"}
@@ -0,0 +1,13 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useResolvedTheme } from "../hooks/use-theme.js";
3
+ import { cn } from "../lib/utils.js";
4
+ function DebugGlyph({ glyph, className }) {
5
+ const theme = useResolvedTheme();
6
+ if (!glyph) return /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: cn("inline-block size-3.5 shrink-0", className) });
7
+ const Glyph = theme === "dark" && glyph.dark ? glyph.dark : glyph.light;
8
+ return /* @__PURE__ */ jsx(Glyph, { "data-glyph": Glyph.displayName, className: cn("size-3.5 shrink-0", className) });
9
+ }
10
+ export {
11
+ DebugGlyph
12
+ };
13
+ //# sourceMappingURL=json-schema-form-debug-glyph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-glyph.js","sources":["../../src/components/json-schema-form-debug-glyph.tsx"],"sourcesContent":["import { useResolvedTheme } from \"../hooks/use-theme\";\nimport { cn } from \"../lib/utils\";\nimport type { DebugGlyphPair } from \"./json-schema-form-debug-glyph-map\";\n\n// DebugGlyph draws a palette glyph in the variant for the resolved theme. It\n// names the component it drew in `data-glyph`.\nexport function DebugGlyph({ glyph, className }: { glyph: DebugGlyphPair | undefined; className?: string }) {\n const theme = useResolvedTheme();\n if (!glyph) return <span aria-hidden className={cn(\"inline-block size-3.5 shrink-0\", className)} />;\n const Glyph = theme === \"dark\" && glyph.dark ? glyph.dark : glyph.light;\n return <Glyph data-glyph={Glyph.displayName} className={cn(\"size-3.5 shrink-0\", className)} />;\n}\n"],"names":[],"mappings":";;;AAMO,SAAS,WAAW,EAAE,OAAO,aAAwE;AAC1G,QAAM,QAAQ,iBAAA;AACd,MAAI,CAAC,MAAO,QAAO,oBAAC,QAAA,EAAK,eAAW,MAAC,WAAW,GAAG,kCAAkC,SAAS,EAAA,CAAG;AACjG,QAAM,QAAQ,UAAU,UAAU,MAAM,OAAO,MAAM,OAAO,MAAM;AAClE,SAAO,oBAAC,SAAM,cAAY,MAAM,aAAa,WAAW,GAAG,qBAAqB,SAAS,EAAA,CAAG;AAC9F;"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const FORM_KEYWORD_GROUPS = {
4
+ "x-hidden": "behaviour",
5
+ "x-hidden-by": "behaviour",
6
+ "x-disabled": "behaviour",
7
+ "x-on-change": "behaviour",
8
+ "x-on-load": "behaviour",
9
+ "x-clicky-lookup": "behaviour",
10
+ "x-discriminator": "behaviour",
11
+ "x-order": "presentation",
12
+ "x-clicky-order": "presentation",
13
+ "x-enum-labels": "presentation",
14
+ "x-enum-icons": "presentation",
15
+ "x-enum-descriptions": "presentation",
16
+ "x-enum-tones": "presentation",
17
+ "x-enum-display": "presentation",
18
+ "x-array-display": "presentation",
19
+ "x-help-display": "presentation",
20
+ "x-help": "presentation",
21
+ "x-item": "presentation",
22
+ "x-number-display": "presentation",
23
+ "x-md-editor": "presentation",
24
+ "x-label-classes": "presentation",
25
+ "x-input-classes": "presentation",
26
+ "x-input-prefix": "presentation",
27
+ "x-input-suffix": "presentation",
28
+ "x-input-prefix-icon": "presentation",
29
+ "x-input-suffix-icon": "presentation",
30
+ "x-label-position": "presentation",
31
+ "x-layout": "presentation",
32
+ "x-col-span": "presentation",
33
+ "x-columns": "presentation",
34
+ "x-column-min-width": "presentation",
35
+ "x-columns-max-width": "presentation",
36
+ "x-classes": "presentation",
37
+ "x-icon": "presentation",
38
+ "x-table-max-columns": "presentation",
39
+ "x-clicky-component": "opt-in",
40
+ "x-clicky-default-source": "opt-in",
41
+ "x-clicky-unit": "opt-in"
42
+ };
43
+ const GROUP_ORDER = ["behaviour", "presentation", "opt-in", "consumer", "schema"];
44
+ const HEADING = /* @__PURE__ */ new Set(["title", "description"]);
45
+ function groupKeywords(prop) {
46
+ const grouped = /* @__PURE__ */ new Map();
47
+ for (const [keyword, raw] of Object.entries(prop)) {
48
+ if (HEADING.has(keyword)) continue;
49
+ const group = FORM_KEYWORD_GROUPS[keyword] ?? (keyword.startsWith("x-") ? "consumer" : "schema");
50
+ grouped.set(group, [...grouped.get(group) ?? [], [keyword, raw]]);
51
+ }
52
+ return GROUP_ORDER.filter((group) => grouped.has(group)).map((group) => ({ group, entries: grouped.get(group) }));
53
+ }
54
+ exports.FORM_KEYWORD_GROUPS = FORM_KEYWORD_GROUPS;
55
+ exports.groupKeywords = groupKeywords;
56
+ //# sourceMappingURL=json-schema-form-debug-groups.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-groups.cjs","sources":["../../src/components/json-schema-form-debug-groups.ts"],"sourcesContent":["import type { JsonSchemaProperty } from \"./json-schema-form-types\";\n\n// Which part of the form a schema keyword drives, for the debug card. Every x-*\n// keyword the form (or an opt-in clicky extension) reads is catalogued here; an\n// x-* key the catalog does not know is the consumer's own.\nexport type KeywordGroup = \"behaviour\" | \"presentation\" | \"opt-in\" | \"consumer\" | \"schema\";\n\n// FORM_KEYWORD_GROUPS names every x-* keyword documented by the meta-schema,\n// schemas/json-schema-form.schema.json (kept in step by its test).\nexport const FORM_KEYWORD_GROUPS: Record<string, Exclude<KeywordGroup, \"consumer\" | \"schema\">> = {\n \"x-hidden\": \"behaviour\",\n \"x-hidden-by\": \"behaviour\",\n \"x-disabled\": \"behaviour\",\n \"x-on-change\": \"behaviour\",\n \"x-on-load\": \"behaviour\",\n \"x-clicky-lookup\": \"behaviour\",\n \"x-discriminator\": \"behaviour\",\n \"x-order\": \"presentation\",\n \"x-clicky-order\": \"presentation\",\n \"x-enum-labels\": \"presentation\",\n \"x-enum-icons\": \"presentation\",\n \"x-enum-descriptions\": \"presentation\",\n \"x-enum-tones\": \"presentation\",\n \"x-enum-display\": \"presentation\",\n \"x-array-display\": \"presentation\",\n \"x-help-display\": \"presentation\",\n \"x-help\": \"presentation\",\n \"x-item\": \"presentation\",\n \"x-number-display\": \"presentation\",\n \"x-md-editor\": \"presentation\",\n \"x-label-classes\": \"presentation\",\n \"x-input-classes\": \"presentation\",\n \"x-input-prefix\": \"presentation\",\n \"x-input-suffix\": \"presentation\",\n \"x-input-prefix-icon\": \"presentation\",\n \"x-input-suffix-icon\": \"presentation\",\n \"x-label-position\": \"presentation\",\n \"x-layout\": \"presentation\",\n \"x-col-span\": \"presentation\",\n \"x-columns\": \"presentation\",\n \"x-column-min-width\": \"presentation\",\n \"x-columns-max-width\": \"presentation\",\n \"x-classes\": \"presentation\",\n \"x-icon\": \"presentation\",\n \"x-table-max-columns\": \"presentation\",\n \"x-clicky-component\": \"opt-in\",\n \"x-clicky-default-source\": \"opt-in\",\n \"x-clicky-unit\": \"opt-in\",\n};\n\nconst GROUP_ORDER: KeywordGroup[] = [\"behaviour\", \"presentation\", \"opt-in\", \"consumer\", \"schema\"];\n\n// Keywords already shown as the card's heading.\nconst HEADING = new Set([\"title\", \"description\"]);\n\nexport function groupKeywords(prop: JsonSchemaProperty): { group: KeywordGroup; entries: [string, unknown][] }[] {\n const grouped = new Map<KeywordGroup, [string, unknown][]>();\n for (const [keyword, raw] of Object.entries(prop)) {\n if (HEADING.has(keyword)) continue;\n const group = FORM_KEYWORD_GROUPS[keyword] ?? (keyword.startsWith(\"x-\") ? \"consumer\" : \"schema\");\n grouped.set(group, [...(grouped.get(group) ?? []), [keyword, raw]]);\n }\n return GROUP_ORDER.filter((group) => grouped.has(group)).map((group) => ({ group, entries: grouped.get(group)! }));\n}\n"],"names":[],"mappings":";;AASO,MAAM,sBAAoF;AAAA,EAC/F,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,iBAAiB;AACnB;AAEA,MAAM,cAA8B,CAAC,aAAa,gBAAgB,UAAU,YAAY,QAAQ;AAGhG,MAAM,UAAU,oBAAI,IAAI,CAAC,SAAS,aAAa,CAAC;AAEzC,SAAS,cAAc,MAAmF;AAC/G,QAAM,8BAAc,IAAA;AACpB,aAAW,CAAC,SAAS,GAAG,KAAK,OAAO,QAAQ,IAAI,GAAG;AACjD,QAAI,QAAQ,IAAI,OAAO,EAAG;AAC1B,UAAM,QAAQ,oBAAoB,OAAO,MAAM,QAAQ,WAAW,IAAI,IAAI,aAAa;AACvF,YAAQ,IAAI,OAAO,CAAC,GAAI,QAAQ,IAAI,KAAK,KAAK,CAAA,GAAK,CAAC,SAAS,GAAG,CAAC,CAAC;AAAA,EACpE;AACA,SAAO,YAAY,OAAO,CAAC,UAAU,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,SAAS,QAAQ,IAAI,KAAK,IAAK;AACnH;;;"}
@@ -0,0 +1,8 @@
1
+ import { JsonSchemaProperty } from './json-schema-form-types.js';
2
+ export type KeywordGroup = "behaviour" | "presentation" | "opt-in" | "consumer" | "schema";
3
+ export declare const FORM_KEYWORD_GROUPS: Record<string, Exclude<KeywordGroup, "consumer" | "schema">>;
4
+ export declare function groupKeywords(prop: JsonSchemaProperty): {
5
+ group: KeywordGroup;
6
+ entries: [string, unknown][];
7
+ }[];
8
+ //# sourceMappingURL=json-schema-form-debug-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-groups.d.ts","sourceRoot":"","sources":["../../src/components/json-schema-form-debug-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKnE,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAI3F,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,GAAG,QAAQ,CAAC,CAuC5F,CAAC;AAOF,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,EAAE,CAQ/G"}
@@ -0,0 +1,56 @@
1
+ const FORM_KEYWORD_GROUPS = {
2
+ "x-hidden": "behaviour",
3
+ "x-hidden-by": "behaviour",
4
+ "x-disabled": "behaviour",
5
+ "x-on-change": "behaviour",
6
+ "x-on-load": "behaviour",
7
+ "x-clicky-lookup": "behaviour",
8
+ "x-discriminator": "behaviour",
9
+ "x-order": "presentation",
10
+ "x-clicky-order": "presentation",
11
+ "x-enum-labels": "presentation",
12
+ "x-enum-icons": "presentation",
13
+ "x-enum-descriptions": "presentation",
14
+ "x-enum-tones": "presentation",
15
+ "x-enum-display": "presentation",
16
+ "x-array-display": "presentation",
17
+ "x-help-display": "presentation",
18
+ "x-help": "presentation",
19
+ "x-item": "presentation",
20
+ "x-number-display": "presentation",
21
+ "x-md-editor": "presentation",
22
+ "x-label-classes": "presentation",
23
+ "x-input-classes": "presentation",
24
+ "x-input-prefix": "presentation",
25
+ "x-input-suffix": "presentation",
26
+ "x-input-prefix-icon": "presentation",
27
+ "x-input-suffix-icon": "presentation",
28
+ "x-label-position": "presentation",
29
+ "x-layout": "presentation",
30
+ "x-col-span": "presentation",
31
+ "x-columns": "presentation",
32
+ "x-column-min-width": "presentation",
33
+ "x-columns-max-width": "presentation",
34
+ "x-classes": "presentation",
35
+ "x-icon": "presentation",
36
+ "x-table-max-columns": "presentation",
37
+ "x-clicky-component": "opt-in",
38
+ "x-clicky-default-source": "opt-in",
39
+ "x-clicky-unit": "opt-in"
40
+ };
41
+ const GROUP_ORDER = ["behaviour", "presentation", "opt-in", "consumer", "schema"];
42
+ const HEADING = /* @__PURE__ */ new Set(["title", "description"]);
43
+ function groupKeywords(prop) {
44
+ const grouped = /* @__PURE__ */ new Map();
45
+ for (const [keyword, raw] of Object.entries(prop)) {
46
+ if (HEADING.has(keyword)) continue;
47
+ const group = FORM_KEYWORD_GROUPS[keyword] ?? (keyword.startsWith("x-") ? "consumer" : "schema");
48
+ grouped.set(group, [...grouped.get(group) ?? [], [keyword, raw]]);
49
+ }
50
+ return GROUP_ORDER.filter((group) => grouped.has(group)).map((group) => ({ group, entries: grouped.get(group) }));
51
+ }
52
+ export {
53
+ FORM_KEYWORD_GROUPS,
54
+ groupKeywords
55
+ };
56
+ //# sourceMappingURL=json-schema-form-debug-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-groups.js","sources":["../../src/components/json-schema-form-debug-groups.ts"],"sourcesContent":["import type { JsonSchemaProperty } from \"./json-schema-form-types\";\n\n// Which part of the form a schema keyword drives, for the debug card. Every x-*\n// keyword the form (or an opt-in clicky extension) reads is catalogued here; an\n// x-* key the catalog does not know is the consumer's own.\nexport type KeywordGroup = \"behaviour\" | \"presentation\" | \"opt-in\" | \"consumer\" | \"schema\";\n\n// FORM_KEYWORD_GROUPS names every x-* keyword documented by the meta-schema,\n// schemas/json-schema-form.schema.json (kept in step by its test).\nexport const FORM_KEYWORD_GROUPS: Record<string, Exclude<KeywordGroup, \"consumer\" | \"schema\">> = {\n \"x-hidden\": \"behaviour\",\n \"x-hidden-by\": \"behaviour\",\n \"x-disabled\": \"behaviour\",\n \"x-on-change\": \"behaviour\",\n \"x-on-load\": \"behaviour\",\n \"x-clicky-lookup\": \"behaviour\",\n \"x-discriminator\": \"behaviour\",\n \"x-order\": \"presentation\",\n \"x-clicky-order\": \"presentation\",\n \"x-enum-labels\": \"presentation\",\n \"x-enum-icons\": \"presentation\",\n \"x-enum-descriptions\": \"presentation\",\n \"x-enum-tones\": \"presentation\",\n \"x-enum-display\": \"presentation\",\n \"x-array-display\": \"presentation\",\n \"x-help-display\": \"presentation\",\n \"x-help\": \"presentation\",\n \"x-item\": \"presentation\",\n \"x-number-display\": \"presentation\",\n \"x-md-editor\": \"presentation\",\n \"x-label-classes\": \"presentation\",\n \"x-input-classes\": \"presentation\",\n \"x-input-prefix\": \"presentation\",\n \"x-input-suffix\": \"presentation\",\n \"x-input-prefix-icon\": \"presentation\",\n \"x-input-suffix-icon\": \"presentation\",\n \"x-label-position\": \"presentation\",\n \"x-layout\": \"presentation\",\n \"x-col-span\": \"presentation\",\n \"x-columns\": \"presentation\",\n \"x-column-min-width\": \"presentation\",\n \"x-columns-max-width\": \"presentation\",\n \"x-classes\": \"presentation\",\n \"x-icon\": \"presentation\",\n \"x-table-max-columns\": \"presentation\",\n \"x-clicky-component\": \"opt-in\",\n \"x-clicky-default-source\": \"opt-in\",\n \"x-clicky-unit\": \"opt-in\",\n};\n\nconst GROUP_ORDER: KeywordGroup[] = [\"behaviour\", \"presentation\", \"opt-in\", \"consumer\", \"schema\"];\n\n// Keywords already shown as the card's heading.\nconst HEADING = new Set([\"title\", \"description\"]);\n\nexport function groupKeywords(prop: JsonSchemaProperty): { group: KeywordGroup; entries: [string, unknown][] }[] {\n const grouped = new Map<KeywordGroup, [string, unknown][]>();\n for (const [keyword, raw] of Object.entries(prop)) {\n if (HEADING.has(keyword)) continue;\n const group = FORM_KEYWORD_GROUPS[keyword] ?? (keyword.startsWith(\"x-\") ? \"consumer\" : \"schema\");\n grouped.set(group, [...(grouped.get(group) ?? []), [keyword, raw]]);\n }\n return GROUP_ORDER.filter((group) => grouped.has(group)).map((group) => ({ group, entries: grouped.get(group)! }));\n}\n"],"names":[],"mappings":"AASO,MAAM,sBAAoF;AAAA,EAC/F,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,EACvB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,iBAAiB;AACnB;AAEA,MAAM,cAA8B,CAAC,aAAa,gBAAgB,UAAU,YAAY,QAAQ;AAGhG,MAAM,UAAU,oBAAI,IAAI,CAAC,SAAS,aAAa,CAAC;AAEzC,SAAS,cAAc,MAAmF;AAC/G,QAAM,8BAAc,IAAA;AACpB,aAAW,CAAC,SAAS,GAAG,KAAK,OAAO,QAAQ,IAAI,GAAG;AACjD,QAAI,QAAQ,IAAI,OAAO,EAAG;AAC1B,UAAM,QAAQ,oBAAoB,OAAO,MAAM,QAAQ,WAAW,IAAI,IAAI,aAAa;AACvF,YAAQ,IAAI,OAAO,CAAC,GAAI,QAAQ,IAAI,KAAK,KAAK,CAAA,GAAK,CAAC,SAAS,GAAG,CAAC,CAAC;AAAA,EACpE;AACA,SAAO,YAAY,OAAO,CAAC,UAAU,QAAQ,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,SAAS,QAAQ,IAAI,KAAK,IAAK;AACnH;"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const Icon = require("../data/Icon.cjs");
5
+ const jsonSchemaFormTone = require("./json-schema-form-tone.cjs");
6
+ const utils = require("../lib/utils.cjs");
7
+ const jsonSchemaFormDebugGroups = require("./json-schema-form-debug-groups.cjs");
8
+ const jsonSchemaFormDebugGlyph = require("./json-schema-form-debug-glyph.cjs");
9
+ const jsonSchemaFormDebugGlyphMap = require("./json-schema-form-debug-glyph-map.cjs");
10
+ const jsonSchemaFormDebugListeners = require("./json-schema-form-debug-listeners.cjs");
11
+ const GROUP_TITLE = {
12
+ behaviour: "Behaviour",
13
+ presentation: "Presentation",
14
+ "opt-in": "Opt-in extensions",
15
+ consumer: "Consumer extensions",
16
+ schema: "Schema"
17
+ };
18
+ const GROUP_NOTE = {
19
+ "opt-in": "read only when the host passes the matching create*FormExtensions()",
20
+ consumer: "not read by the form"
21
+ };
22
+ const STRUCTURE = /* @__PURE__ */ new Set(["properties", "items", "allOf", "anyOf", "oneOf", "$defs", "patternProperties", "additionalProperties"]);
23
+ const ICON_KEYWORDS = /* @__PURE__ */ new Set(["x-icon", "x-input-prefix-icon", "x-input-suffix-icon"]);
24
+ const ENUM_MAPS = ["x-enum-labels", "x-enum-icons", "x-enum-descriptions", "x-enum-tones"];
25
+ function DebugKeywords({ prop, value }) {
26
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsonSchemaFormDebugGroups.groupKeywords(prop).map(({ group, entries }) => {
27
+ const enumMaps = entries.filter(([keyword]) => ENUM_MAPS.includes(keyword));
28
+ const rest = entries.filter(([keyword]) => !ENUM_MAPS.includes(keyword));
29
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { role: "group", "aria-label": GROUP_TITLE[group], className: "space-y-0.5 border-t border-border pt-1.5", children: [
30
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: [
31
+ /* @__PURE__ */ jsxRuntime.jsx(jsonSchemaFormDebugGlyph.DebugGlyph, { glyph: jsonSchemaFormDebugGlyphMap.GROUP_GLYPH[group] }),
32
+ GROUP_TITLE[group],
33
+ GROUP_NOTE[group] && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-normal normal-case tracking-normal", children: [
34
+ "· ",
35
+ GROUP_NOTE[group]
36
+ ] })
37
+ ] }),
38
+ enumMaps.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(EnumOptionTable, { prop }),
39
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-0.5 font-mono text-[11px]", children: rest.map(([keyword, raw]) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex gap-1", children: [
40
+ /* @__PURE__ */ jsxRuntime.jsx(jsonSchemaFormDebugGlyph.DebugGlyph, { glyph: jsonSchemaFormDebugGlyphMap.keywordGlyph(keyword, raw), className: "mt-px" }),
41
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1 break-words", children: [
42
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: keyword }),
43
+ " ",
44
+ describeKeyword(keyword, raw, value)
45
+ ] })
46
+ ] }, keyword)) })
47
+ ] }, group);
48
+ }) });
49
+ }
50
+ function describeKeyword(keyword, raw, value) {
51
+ if (keyword === "x-on-change" || keyword === "x-on-load") {
52
+ return Array.isArray(raw) ? /* @__PURE__ */ jsxRuntime.jsx(jsonSchemaFormDebugListeners.ListenerList, { listeners: raw, subject: value }) : /* @__PURE__ */ jsxRuntime.jsx(Json, { value: raw });
53
+ }
54
+ if (keyword === "x-clicky-lookup") return /* @__PURE__ */ jsxRuntime.jsx(LookupSummary, { descriptor: raw });
55
+ if (keyword === "x-item") return /* @__PURE__ */ jsxRuntime.jsx(ItemSpecSummary, { spec: raw });
56
+ if (keyword === "x-help") return /* @__PURE__ */ jsxRuntime.jsx(HelpSummary, { help: raw });
57
+ if (ICON_KEYWORDS.has(keyword) && typeof raw === "string") {
58
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
59
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.LabelIcon, { icon: raw, className: "size-3.5" }),
60
+ raw
61
+ ] });
62
+ }
63
+ if (STRUCTURE.has(keyword)) {
64
+ if (Array.isArray(raw)) return `[${raw.length}]`;
65
+ if (typeof raw === "object" && raw !== null) return `{${Object.keys(raw).join(", ")}}`;
66
+ }
67
+ if (typeof raw === "string") return raw;
68
+ if (Array.isArray(raw) && raw.every((item) => typeof item === "string")) return raw.join(", ");
69
+ return /* @__PURE__ */ jsxRuntime.jsx(Json, { value: raw });
70
+ }
71
+ function Json({ value }) {
72
+ if (typeof value !== "object" || value === null) return /* @__PURE__ */ jsxRuntime.jsx("span", { children: JSON.stringify(value) });
73
+ return /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-0.5 max-h-40 overflow-auto whitespace-pre-wrap rounded bg-muted/60 p-1", children: JSON.stringify(value, null, 2) });
74
+ }
75
+ function LookupSummary({ descriptor }) {
76
+ const { scope, hierarchy } = descriptor;
77
+ const parts = [
78
+ `filter ${descriptor.filter}`,
79
+ descriptor.searchParam && `search ${descriptor.searchParam}`,
80
+ descriptor.multi && "multi-select",
81
+ scope && `scope ${scope.param} ← ${scope.from}${scope.map ? ` via ${JSON.stringify(scope.map)}` : ""}`,
82
+ hierarchy && `tree split on ${JSON.stringify(hierarchy.delimiters)}`
83
+ ].filter(Boolean);
84
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
85
+ "GET ",
86
+ descriptor.url,
87
+ " ",
88
+ parts.join(" · ")
89
+ ] });
90
+ }
91
+ function ItemSpecSummary({ spec }) {
92
+ var _a;
93
+ const summary = (_a = spec.summary) == null ? void 0 : _a.map((part) => typeof part === "string" ? part : (part.pattern ?? "{}").replace("{}", part.property));
94
+ const parts = [
95
+ spec.title && `title ${spec.title.join(" | ")}${spec.fallback ? ` (else ${spec.fallback})` : ""}`,
96
+ summary && `summary ${summary.join(" · ")}`,
97
+ spec.glyph && `glyph ${spec.glyph}`,
98
+ spec.badge && `badge ${spec.badge}`,
99
+ spec.flag && `flag ${spec.flag}`,
100
+ spec.actions && `actions ${spec.actions.length > 0 ? spec.actions.join(", ") : "none"}`,
101
+ spec.noun && `noun ${spec.noun}${spec.nounPlural ? `/${spec.nounPlural}` : ""}`,
102
+ spec.empty && `empty "${spec.empty}"`
103
+ ].filter(Boolean);
104
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { children: parts.join(" · ") });
105
+ }
106
+ function HelpSummary({ help }) {
107
+ const origin = [help.source, help.section].filter(Boolean).join(" › ");
108
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
109
+ origin && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
110
+ "[",
111
+ origin,
112
+ "] "
113
+ ] }),
114
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-sans", children: help.body })
115
+ ] });
116
+ }
117
+ function EnumOptionTable({ prop }) {
118
+ const labels = prop["x-enum-labels"] ?? {};
119
+ const icons = prop["x-enum-icons"] ?? {};
120
+ const descriptions = prop["x-enum-descriptions"] ?? {};
121
+ const tones = prop["x-enum-tones"] ?? {};
122
+ const enumValues = (prop.enum ?? []).map(String);
123
+ const mapped = [...new Set([labels, icons, descriptions, tones].flatMap((map) => Object.keys(map)))];
124
+ const values = [...enumValues, ...mapped.filter((value) => !enumValues.includes(value))];
125
+ const checkEnum = prop.enum !== void 0;
126
+ const hasIcons = Object.keys(icons).length > 0;
127
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1 font-mono text-[11px]", children: [
128
+ /* @__PURE__ */ jsxRuntime.jsx(jsonSchemaFormDebugGlyph.DebugGlyph, { glyph: jsonSchemaFormDebugGlyphMap.KIND_GLYPH.enum, className: "mt-px" }),
129
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
130
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: "x-enum-*" }),
131
+ /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full", children: [
132
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "text-left text-[10px] text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
133
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "pr-2 font-normal", children: "value" }),
134
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "pr-2 font-normal", children: "label" }),
135
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "pr-2 font-normal", children: "description" }),
136
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "font-normal", children: "tone" })
137
+ ] }) }),
138
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: values.map((value) => {
139
+ const tone = tones[value];
140
+ return /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "align-top", children: [
141
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "pr-2", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
142
+ hasIcons && /* @__PURE__ */ jsxRuntime.jsx(Icon.LabelIcon, { icon: icons[value], className: "size-3.5" }),
143
+ value,
144
+ checkEnum && !enumValues.includes(value) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-amber-700 dark:text-amber-300", children: " ⚠ not in enum" })
145
+ ] }) }),
146
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "pr-2", children: labels[value] ?? "" }),
147
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "pr-2 font-sans", children: descriptions[value] ?? "" }),
148
+ /* @__PURE__ */ jsxRuntime.jsx("td", { children: tone && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
149
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("size-2 rounded-full", jsonSchemaFormTone.isFieldTone(tone) ? jsonSchemaFormTone.TONE_DOT_CLASS[tone] : "outline outline-1 outline-rose-500") }),
150
+ tone
151
+ ] }) })
152
+ ] }, value);
153
+ }) })
154
+ ] })
155
+ ] })
156
+ ] });
157
+ }
158
+ exports.DebugKeywords = DebugKeywords;
159
+ //# sourceMappingURL=json-schema-form-debug-keywords.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-keywords.cjs","sources":["../../src/components/json-schema-form-debug-keywords.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { LabelIcon } from \"../data/Icon\";\nimport { TONE_DOT_CLASS, isFieldTone } from \"./json-schema-form-tone\";\nimport { cn } from \"../lib/utils\";\nimport { groupKeywords, type KeywordGroup } from \"./json-schema-form-debug-groups\";\nimport { DebugGlyph } from \"./json-schema-form-debug-glyph\";\nimport { GROUP_GLYPH, KIND_GLYPH, keywordGlyph } from \"./json-schema-form-debug-glyph-map\";\nimport { ListenerList } from \"./json-schema-form-debug-listeners\";\nimport type { ArrayItemSpec, ChangeListener, JsonSchemaHelpBlock, JsonSchemaProperty, LookupDescriptor } from \"./json-schema-form-types\";\n\n// The debug card's keyword list, one labelled group at a time (see\n// groupKeywords), each keyword beside its palette glyph and rendered in its own\n// vocabulary — listeners as condition/action cards, the x-enum-* maps as one\n// option table, a lookup as the request it makes — instead of as raw JSON.\n\nconst GROUP_TITLE: Record<KeywordGroup, string> = {\n behaviour: \"Behaviour\",\n presentation: \"Presentation\",\n \"opt-in\": \"Opt-in extensions\",\n consumer: \"Consumer extensions\",\n schema: \"Schema\",\n};\nconst GROUP_NOTE: Partial<Record<KeywordGroup, string>> = {\n \"opt-in\": \"read only when the host passes the matching create*FormExtensions()\",\n consumer: \"not read by the form\",\n};\n\n// Keywords that shape the tree rather than source the field; listed by name.\nconst STRUCTURE = new Set([\"properties\", \"items\", \"allOf\", \"anyOf\", \"oneOf\", \"$defs\", \"patternProperties\", \"additionalProperties\"]);\nconst ICON_KEYWORDS = new Set([\"x-icon\", \"x-input-prefix-icon\", \"x-input-suffix-icon\"]);\nconst ENUM_MAPS = [\"x-enum-labels\", \"x-enum-icons\", \"x-enum-descriptions\", \"x-enum-tones\"] as const;\n\n// DebugKeywords renders a property's keywords, one labelled group at a time.\n// `value` is the field's current value: listeners are evaluated against it.\nexport function DebugKeywords({ prop, value }: { prop: JsonSchemaProperty; value?: unknown }) {\n return (\n <>\n {groupKeywords(prop).map(({ group, entries }) => {\n const enumMaps = entries.filter(([keyword]) => (ENUM_MAPS as readonly string[]).includes(keyword));\n const rest = entries.filter(([keyword]) => !(ENUM_MAPS as readonly string[]).includes(keyword));\n return (\n <section key={group} role=\"group\" aria-label={GROUP_TITLE[group]} className=\"space-y-0.5 border-t border-border pt-1.5\">\n <div className=\"flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground\">\n <DebugGlyph glyph={GROUP_GLYPH[group]} />\n {GROUP_TITLE[group]}\n {GROUP_NOTE[group] && <span className=\"font-normal normal-case tracking-normal\">· {GROUP_NOTE[group]}</span>}\n </div>\n {enumMaps.length > 0 && <EnumOptionTable prop={prop} />}\n <ul className=\"space-y-0.5 font-mono text-[11px]\">\n {rest.map(([keyword, raw]) => (\n <li key={keyword} className=\"flex gap-1\">\n <DebugGlyph glyph={keywordGlyph(keyword, raw)} className=\"mt-px\" />\n <div className=\"min-w-0 flex-1 break-words\">\n <span className=\"text-muted-foreground\">{keyword}</span> {describeKeyword(keyword, raw, value)}\n </div>\n </li>\n ))}\n </ul>\n </section>\n );\n })}\n </>\n );\n}\n\nfunction describeKeyword(keyword: string, raw: unknown, value: unknown): ReactNode {\n if (keyword === \"x-on-change\" || keyword === \"x-on-load\") {\n return Array.isArray(raw) ? <ListenerList listeners={raw as ChangeListener[]} subject={value} /> : <Json value={raw} />;\n }\n if (keyword === \"x-clicky-lookup\") return <LookupSummary descriptor={raw as LookupDescriptor} />;\n if (keyword === \"x-item\") return <ItemSpecSummary spec={raw as ArrayItemSpec} />;\n if (keyword === \"x-help\") return <HelpSummary help={raw as JsonSchemaHelpBlock} />;\n if (ICON_KEYWORDS.has(keyword) && typeof raw === \"string\") {\n return (\n <span className=\"inline-flex items-center gap-1\">\n <LabelIcon icon={raw} className=\"size-3.5\" />\n {raw}\n </span>\n );\n }\n if (STRUCTURE.has(keyword)) {\n if (Array.isArray(raw)) return `[${raw.length}]`;\n if (typeof raw === \"object\" && raw !== null) return `{${Object.keys(raw).join(\", \")}}`;\n }\n if (typeof raw === \"string\") return raw;\n if (Array.isArray(raw) && raw.every((item) => typeof item === \"string\")) return raw.join(\", \");\n return <Json value={raw} />;\n}\n\nfunction Json({ value }: { value: unknown }) {\n if (typeof value !== \"object\" || value === null) return <span>{JSON.stringify(value)}</span>;\n return <pre className=\"mt-0.5 max-h-40 overflow-auto whitespace-pre-wrap rounded bg-muted/60 p-1\">{JSON.stringify(value, null, 2)}</pre>;\n}\n\nfunction LookupSummary({ descriptor }: { descriptor: LookupDescriptor }) {\n const { scope, hierarchy } = descriptor;\n const parts = [\n `filter ${descriptor.filter}`,\n descriptor.searchParam && `search ${descriptor.searchParam}`,\n descriptor.multi && \"multi-select\",\n scope && `scope ${scope.param} ← ${scope.from}${scope.map ? ` via ${JSON.stringify(scope.map)}` : \"\"}`,\n hierarchy && `tree split on ${JSON.stringify(hierarchy.delimiters)}`,\n ].filter(Boolean);\n return (\n <span>\n GET {descriptor.url} {parts.join(\" · \")}\n </span>\n );\n}\n\nfunction ItemSpecSummary({ spec }: { spec: ArrayItemSpec }) {\n const summary = spec.summary?.map((part) => (typeof part === \"string\" ? part : (part.pattern ?? \"{}\").replace(\"{}\", part.property)));\n const parts = [\n spec.title && `title ${spec.title.join(\" | \")}${spec.fallback ? ` (else ${spec.fallback})` : \"\"}`,\n summary && `summary ${summary.join(\" · \")}`,\n spec.glyph && `glyph ${spec.glyph}`,\n spec.badge && `badge ${spec.badge}`,\n spec.flag && `flag ${spec.flag}`,\n spec.actions && `actions ${spec.actions.length > 0 ? spec.actions.join(\", \") : \"none\"}`,\n spec.noun && `noun ${spec.noun}${spec.nounPlural ? `/${spec.nounPlural}` : \"\"}`,\n spec.empty && `empty \"${spec.empty}\"`,\n ].filter(Boolean);\n return <span>{parts.join(\" · \")}</span>;\n}\n\nfunction HelpSummary({ help }: { help: JsonSchemaHelpBlock }) {\n const origin = [help.source, help.section].filter(Boolean).join(\" › \");\n return (\n <span>\n {origin && <span className=\"text-muted-foreground\">[{origin}] </span>}\n <span className=\"font-sans\">{help.body}</span>\n </span>\n );\n}\n\n// EnumOptionTable joins the x-enum-* maps by value: one row per enum value,\n// then any map key the enum does not list (a typo, or a stale value).\nfunction EnumOptionTable({ prop }: { prop: JsonSchemaProperty }) {\n const labels = prop[\"x-enum-labels\"] ?? {};\n const icons = prop[\"x-enum-icons\"] ?? {};\n const descriptions = prop[\"x-enum-descriptions\"] ?? {};\n const tones = prop[\"x-enum-tones\"] ?? {};\n const enumValues = (prop.enum ?? []).map(String);\n const mapped = [...new Set([labels, icons, descriptions, tones].flatMap((map) => Object.keys(map)))];\n const values = [...enumValues, ...mapped.filter((value) => !enumValues.includes(value))];\n const checkEnum = prop.enum !== undefined;\n const hasIcons = Object.keys(icons).length > 0;\n return (\n <div className=\"flex gap-1 font-mono text-[11px]\">\n <DebugGlyph glyph={KIND_GLYPH.enum} className=\"mt-px\" />\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-muted-foreground\">x-enum-*</div>\n <table className=\"w-full\">\n <thead className=\"text-left text-[10px] text-muted-foreground\">\n <tr>\n <th className=\"pr-2 font-normal\">value</th>\n <th className=\"pr-2 font-normal\">label</th>\n <th className=\"pr-2 font-normal\">description</th>\n <th className=\"font-normal\">tone</th>\n </tr>\n </thead>\n <tbody>\n {values.map((value) => {\n const tone = tones[value];\n return (\n <tr key={value} className=\"align-top\">\n <td className=\"pr-2\">\n <span className=\"inline-flex items-center gap-1\">\n {hasIcons && <LabelIcon icon={icons[value]} className=\"size-3.5\" />}\n {value}\n {checkEnum && !enumValues.includes(value) && <span className=\"text-amber-700 dark:text-amber-300\"> ⚠ not in enum</span>}\n </span>\n </td>\n <td className=\"pr-2\">{labels[value] ?? \"\"}</td>\n <td className=\"pr-2 font-sans\">{descriptions[value] ?? \"\"}</td>\n <td>\n {tone && (\n <span className=\"inline-flex items-center gap-1\">\n <span className={cn(\"size-2 rounded-full\", isFieldTone(tone) ? TONE_DOT_CLASS[tone] : \"outline outline-1 outline-rose-500\")} />\n {tone}\n </span>\n )}\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n"],"names":["jsx","Fragment","jsxs","DebugGlyph","GROUP_GLYPH","keywordGlyph","ListenerList","LabelIcon","KIND_GLYPH","cn","isFieldTone","TONE_DOT_CLASS"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { JsonSchemaProperty } from './json-schema-form-types.js';
2
+ export declare function DebugKeywords({ prop, value }: {
3
+ prop: JsonSchemaProperty;
4
+ value?: unknown;
5
+ }): import("react").JSX.Element;
6
+ //# sourceMappingURL=json-schema-form-debug-keywords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-form-debug-keywords.d.ts","sourceRoot":"","sources":["../../src/components/json-schema-form-debug-keywords.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAsD,kBAAkB,EAAoB,MAAM,0BAA0B,CAAC;AA0BzI,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,+BA6B3F"}