@flanksource/clicky-ui 0.3.25 → 0.3.26

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 (470) hide show
  1. package/NOTICE.md +1 -0
  2. package/dist/ai.cjs +4 -0
  3. package/dist/ai.cjs.map +1 -1
  4. package/dist/ai.js +6 -2
  5. package/dist/ai.js.map +1 -1
  6. package/dist/chat.cjs +8 -0
  7. package/dist/chat.cjs.map +1 -1
  8. package/dist/chat.js +9 -1
  9. package/dist/chat.js.map +1 -1
  10. package/dist/comments/CommentCard.cjs +89 -14
  11. package/dist/comments/CommentCard.cjs.map +1 -1
  12. package/dist/comments/CommentCard.d.ts.map +1 -1
  13. package/dist/comments/CommentCard.js +90 -15
  14. package/dist/comments/CommentCard.js.map +1 -1
  15. package/dist/comments/CommentComposer.cjs +25 -2
  16. package/dist/comments/CommentComposer.cjs.map +1 -1
  17. package/dist/comments/CommentComposer.d.ts.map +1 -1
  18. package/dist/comments/CommentComposer.js +25 -2
  19. package/dist/comments/CommentComposer.js.map +1 -1
  20. package/dist/comments/CommentProvider.cjs +21 -14
  21. package/dist/comments/CommentProvider.cjs.map +1 -1
  22. package/dist/comments/CommentProvider.d.ts +1 -1
  23. package/dist/comments/CommentProvider.d.ts.map +1 -1
  24. package/dist/comments/CommentProvider.js +21 -14
  25. package/dist/comments/CommentProvider.js.map +1 -1
  26. package/dist/comments/CommentSidePanel.cjs +1 -1
  27. package/dist/comments/CommentSidePanel.cjs.map +1 -1
  28. package/dist/comments/CommentSidePanel.js +1 -1
  29. package/dist/comments/CommentSidePanel.js.map +1 -1
  30. package/dist/comments/comment-types.cjs.map +1 -1
  31. package/dist/comments/comment-types.d.ts +6 -0
  32. package/dist/comments/comment-types.d.ts.map +1 -1
  33. package/dist/comments/comment-types.js.map +1 -1
  34. package/dist/components/DimensionField.cjs +56 -0
  35. package/dist/components/DimensionField.cjs.map +1 -0
  36. package/dist/components/DimensionField.d.ts +17 -0
  37. package/dist/components/DimensionField.d.ts.map +1 -0
  38. package/dist/components/DimensionField.js +56 -0
  39. package/dist/components/DimensionField.js.map +1 -0
  40. package/dist/components.cjs +4 -0
  41. package/dist/components.cjs.map +1 -1
  42. package/dist/components.d.ts +2 -0
  43. package/dist/components.d.ts.map +1 -1
  44. package/dist/components.js +4 -0
  45. package/dist/components.js.map +1 -1
  46. package/dist/data/Clicky.cjs +4 -5
  47. package/dist/data/Clicky.cjs.map +1 -1
  48. package/dist/data/Clicky.d.ts.map +1 -1
  49. package/dist/data/Clicky.js +4 -5
  50. package/dist/data/Clicky.js.map +1 -1
  51. package/dist/data/TaskExecDetails.cjs +8 -3
  52. package/dist/data/TaskExecDetails.cjs.map +1 -1
  53. package/dist/data/TaskExecDetails.d.ts +4 -0
  54. package/dist/data/TaskExecDetails.d.ts.map +1 -1
  55. package/dist/data/TaskExecDetails.js +9 -4
  56. package/dist/data/TaskExecDetails.js.map +1 -1
  57. package/dist/data/TaskManagerButton.cjs +101 -7
  58. package/dist/data/TaskManagerButton.cjs.map +1 -1
  59. package/dist/data/TaskManagerButton.d.ts +6 -1
  60. package/dist/data/TaskManagerButton.d.ts.map +1 -1
  61. package/dist/data/TaskManagerButton.js +103 -9
  62. package/dist/data/TaskManagerButton.js.map +1 -1
  63. package/dist/data/TaskProcessDetails.cjs +2 -0
  64. package/dist/data/TaskProcessDetails.cjs.map +1 -1
  65. package/dist/data/TaskProcessDetails.d.ts.map +1 -1
  66. package/dist/data/TaskProcessDetails.js +2 -0
  67. package/dist/data/TaskProcessDetails.js.map +1 -1
  68. package/dist/data/TaskProgress.cjs +14 -4
  69. package/dist/data/TaskProgress.cjs.map +1 -1
  70. package/dist/data/TaskProgress.js +14 -4
  71. package/dist/data/TaskProgress.js.map +1 -1
  72. package/dist/data/TaskSnapshot.cjs.map +1 -1
  73. package/dist/data/TaskSnapshot.d.ts +1 -0
  74. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  75. package/dist/data/TaskSnapshot.js.map +1 -1
  76. package/dist/data/ai/ChatWindow.cjs +18 -23
  77. package/dist/data/ai/ChatWindow.cjs.map +1 -1
  78. package/dist/data/ai/ChatWindow.d.ts +1 -1
  79. package/dist/data/ai/ChatWindow.d.ts.map +1 -1
  80. package/dist/data/ai/ChatWindow.js +19 -24
  81. package/dist/data/ai/ChatWindow.js.map +1 -1
  82. package/dist/data/ai/ChatWindow.preferences.cjs +12 -21
  83. package/dist/data/ai/ChatWindow.preferences.cjs.map +1 -1
  84. package/dist/data/ai/ChatWindow.preferences.d.ts +3 -2
  85. package/dist/data/ai/ChatWindow.preferences.d.ts.map +1 -1
  86. package/dist/data/ai/ChatWindow.preferences.js +12 -21
  87. package/dist/data/ai/ChatWindow.preferences.js.map +1 -1
  88. package/dist/data/ai/ChatWindow.tool-catalog.cjs +21 -38
  89. package/dist/data/ai/ChatWindow.tool-catalog.cjs.map +1 -1
  90. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +5 -5
  91. package/dist/data/ai/ChatWindow.tool-catalog.d.ts.map +1 -1
  92. package/dist/data/ai/ChatWindow.tool-catalog.js +21 -38
  93. package/dist/data/ai/ChatWindow.tool-catalog.js.map +1 -1
  94. package/dist/data/ai/ChatWindow.types.d.ts +2 -2
  95. package/dist/data/ai/ChatWindow.types.d.ts.map +1 -1
  96. package/dist/data/ai/ChatWindowManager.cjs +2 -2
  97. package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
  98. package/dist/data/ai/ChatWindowManager.js +2 -2
  99. package/dist/data/ai/ChatWindowManager.js.map +1 -1
  100. package/dist/data/ai/ChatWindowRequestBody.cjs +4 -2
  101. package/dist/data/ai/ChatWindowRequestBody.cjs.map +1 -1
  102. package/dist/data/ai/ChatWindowRequestBody.d.ts +15 -3
  103. package/dist/data/ai/ChatWindowRequestBody.d.ts.map +1 -1
  104. package/dist/data/ai/ChatWindowRequestBody.js +4 -2
  105. package/dist/data/ai/ChatWindowRequestBody.js.map +1 -1
  106. package/dist/data/ai/ToolPreferences.cjs +5 -5
  107. package/dist/data/ai/ToolPreferences.cjs.map +1 -1
  108. package/dist/data/ai/ToolPreferences.d.ts +6 -5
  109. package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
  110. package/dist/data/ai/ToolPreferences.js +5 -5
  111. package/dist/data/ai/ToolPreferences.js.map +1 -1
  112. package/dist/data/ai/ToolPreferences.model.cjs +61 -37
  113. package/dist/data/ai/ToolPreferences.model.cjs.map +1 -1
  114. package/dist/data/ai/ToolPreferences.model.d.ts +32 -13
  115. package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -1
  116. package/dist/data/ai/ToolPreferences.model.js +62 -38
  117. package/dist/data/ai/ToolPreferences.model.js.map +1 -1
  118. package/dist/data/ai/ToolPreferencesList.cjs +17 -20
  119. package/dist/data/ai/ToolPreferencesList.cjs.map +1 -1
  120. package/dist/data/ai/ToolPreferencesList.d.ts +16 -7
  121. package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
  122. package/dist/data/ai/ToolPreferencesList.js +18 -21
  123. package/dist/data/ai/ToolPreferencesList.js.map +1 -1
  124. package/dist/data/ai/chat-window-context.cjs +1 -1
  125. package/dist/data/ai/chat-window-context.cjs.map +1 -1
  126. package/dist/data/ai/chat-window-context.d.ts +7 -7
  127. package/dist/data/ai/chat-window-context.d.ts.map +1 -1
  128. package/dist/data/ai/chat-window-context.js +1 -1
  129. package/dist/data/ai/chat-window-context.js.map +1 -1
  130. package/dist/data/ai/index.d.ts +3 -1
  131. package/dist/data/ai/index.d.ts.map +1 -1
  132. package/dist/data/chat/clickyOperationsToTools.cjs +2 -1
  133. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
  134. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
  135. package/dist/data/chat/clickyOperationsToTools.js +2 -1
  136. package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
  137. package/dist/data/chat/index.d.ts +2 -1
  138. package/dist/data/chat/index.d.ts.map +1 -1
  139. package/dist/data/chat/tool-policy.cjs +132 -0
  140. package/dist/data/chat/tool-policy.cjs.map +1 -0
  141. package/dist/data/chat/tool-policy.d.ts +81 -0
  142. package/dist/data/chat/tool-policy.d.ts.map +1 -0
  143. package/dist/data/chat/tool-policy.js +132 -0
  144. package/dist/data/chat/tool-policy.js.map +1 -0
  145. package/dist/data/chat/types.cjs +20 -0
  146. package/dist/data/chat/types.cjs.map +1 -1
  147. package/dist/data/chat/types.d.ts +22 -2
  148. package/dist/data/chat/types.d.ts.map +1 -1
  149. package/dist/data/chat/types.js +20 -0
  150. package/dist/data/chat/types.js.map +1 -1
  151. package/dist/data/debugConsoleSignal.cjs +64 -0
  152. package/dist/data/debugConsoleSignal.cjs.map +1 -0
  153. package/dist/data/debugConsoleSignal.d.ts +83 -0
  154. package/dist/data/debugConsoleSignal.d.ts.map +1 -0
  155. package/dist/data/debugConsoleSignal.js +64 -0
  156. package/dist/data/debugConsoleSignal.js.map +1 -0
  157. package/dist/data/har/HarPanel.cjs +20 -14
  158. package/dist/data/har/HarPanel.cjs.map +1 -1
  159. package/dist/data/har/HarPanel.d.ts.map +1 -1
  160. package/dist/data/har/HarPanel.js +20 -14
  161. package/dist/data/har/HarPanel.js.map +1 -1
  162. package/dist/data/har/types.d.ts +18 -0
  163. package/dist/data/har/types.d.ts.map +1 -1
  164. package/dist/data/query-browser/QueryBrowser.cjs +4 -42
  165. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  166. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  167. package/dist/data/query-browser/QueryBrowser.js +5 -43
  168. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  169. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -1
  170. package/dist/data/query-browser/QueryBrowser.types.d.ts +0 -1
  171. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -1
  172. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -1
  173. package/dist/data/useDebugAction.cjs +29 -0
  174. package/dist/data/useDebugAction.cjs.map +1 -0
  175. package/dist/data/useDebugAction.d.ts +16 -0
  176. package/dist/data/useDebugAction.d.ts.map +1 -0
  177. package/dist/data/useDebugAction.js +29 -0
  178. package/dist/data/useDebugAction.js.map +1 -0
  179. package/dist/data/version-info.cjs +3 -3
  180. package/dist/data/version-info.js +3 -3
  181. package/dist/data.cjs +16 -8
  182. package/dist/data.cjs.map +1 -1
  183. package/dist/data.d.ts +3 -2
  184. package/dist/data.d.ts.map +1 -1
  185. package/dist/data.js +16 -8
  186. package/dist/devtools/DebugConsole.cjs +138 -0
  187. package/dist/devtools/DebugConsole.cjs.map +1 -0
  188. package/dist/devtools/DebugConsole.d.ts +23 -0
  189. package/dist/devtools/DebugConsole.d.ts.map +1 -0
  190. package/dist/devtools/DebugConsole.js +138 -0
  191. package/dist/devtools/DebugConsole.js.map +1 -0
  192. package/dist/devtools/DebugConsoleButton.cjs +59 -0
  193. package/dist/devtools/DebugConsoleButton.cjs.map +1 -0
  194. package/dist/devtools/DebugConsoleButton.d.ts +20 -0
  195. package/dist/devtools/DebugConsoleButton.d.ts.map +1 -0
  196. package/dist/devtools/DebugConsoleButton.js +59 -0
  197. package/dist/devtools/DebugConsoleButton.js.map +1 -0
  198. package/dist/devtools/DebugConsoleDock.cjs +112 -0
  199. package/dist/devtools/DebugConsoleDock.cjs.map +1 -0
  200. package/dist/devtools/DebugConsoleDock.d.ts +26 -0
  201. package/dist/devtools/DebugConsoleDock.d.ts.map +1 -0
  202. package/dist/devtools/DebugConsoleDock.js +112 -0
  203. package/dist/devtools/DebugConsoleDock.js.map +1 -0
  204. package/dist/devtools/ExecutionDetail.cjs +135 -0
  205. package/dist/devtools/ExecutionDetail.cjs.map +1 -0
  206. package/dist/devtools/ExecutionDetail.d.ts +19 -0
  207. package/dist/devtools/ExecutionDetail.d.ts.map +1 -0
  208. package/dist/devtools/ExecutionDetail.js +135 -0
  209. package/dist/devtools/ExecutionDetail.js.map +1 -0
  210. package/dist/devtools/debugClient.cjs +172 -0
  211. package/dist/devtools/debugClient.cjs.map +1 -0
  212. package/dist/devtools/debugClient.d.ts +98 -0
  213. package/dist/devtools/debugClient.d.ts.map +1 -0
  214. package/dist/devtools/debugClient.js +172 -0
  215. package/dist/devtools/debugClient.js.map +1 -0
  216. package/dist/devtools/debugStore.cjs +115 -0
  217. package/dist/devtools/debugStore.cjs.map +1 -0
  218. package/dist/devtools/debugStore.d.ts +83 -0
  219. package/dist/devtools/debugStore.d.ts.map +1 -0
  220. package/dist/devtools/debugStore.js +115 -0
  221. package/dist/devtools/debugStore.js.map +1 -0
  222. package/dist/devtools/dockState.cjs +51 -0
  223. package/dist/devtools/dockState.cjs.map +1 -0
  224. package/dist/devtools/dockState.d.ts +31 -0
  225. package/dist/devtools/dockState.d.ts.map +1 -0
  226. package/dist/devtools/dockState.js +51 -0
  227. package/dist/devtools/dockState.js.map +1 -0
  228. package/dist/devtools/tabs/ConsoleTab.cjs +36 -0
  229. package/dist/devtools/tabs/ConsoleTab.cjs.map +1 -0
  230. package/dist/devtools/tabs/ConsoleTab.d.ts +19 -0
  231. package/dist/devtools/tabs/ConsoleTab.d.ts.map +1 -0
  232. package/dist/devtools/tabs/ConsoleTab.js +36 -0
  233. package/dist/devtools/tabs/ConsoleTab.js.map +1 -0
  234. package/dist/devtools/tabs/InspectionCaches.cjs +150 -0
  235. package/dist/devtools/tabs/InspectionCaches.cjs.map +1 -0
  236. package/dist/devtools/tabs/InspectionCaches.d.ts +23 -0
  237. package/dist/devtools/tabs/InspectionCaches.d.ts.map +1 -0
  238. package/dist/devtools/tabs/InspectionCaches.js +150 -0
  239. package/dist/devtools/tabs/InspectionCaches.js.map +1 -0
  240. package/dist/devtools/tabs/InspectionTab.cjs +316 -0
  241. package/dist/devtools/tabs/InspectionTab.cjs.map +1 -0
  242. package/dist/devtools/tabs/InspectionTab.d.ts +27 -0
  243. package/dist/devtools/tabs/InspectionTab.d.ts.map +1 -0
  244. package/dist/devtools/tabs/InspectionTab.js +316 -0
  245. package/dist/devtools/tabs/InspectionTab.js.map +1 -0
  246. package/dist/devtools/tabs/NetworkTab.cjs +91 -0
  247. package/dist/devtools/tabs/NetworkTab.cjs.map +1 -0
  248. package/dist/devtools/tabs/NetworkTab.d.ts +20 -0
  249. package/dist/devtools/tabs/NetworkTab.d.ts.map +1 -0
  250. package/dist/devtools/tabs/NetworkTab.js +91 -0
  251. package/dist/devtools/tabs/NetworkTab.js.map +1 -0
  252. package/dist/devtools/tabs/QueriesTab.cjs +85 -0
  253. package/dist/devtools/tabs/QueriesTab.cjs.map +1 -0
  254. package/dist/devtools/tabs/QueriesTab.d.ts +24 -0
  255. package/dist/devtools/tabs/QueriesTab.d.ts.map +1 -0
  256. package/dist/devtools/tabs/QueriesTab.js +85 -0
  257. package/dist/devtools/tabs/QueriesTab.js.map +1 -0
  258. package/dist/devtools/types.cjs +26 -0
  259. package/dist/devtools/types.cjs.map +1 -0
  260. package/dist/devtools/types.d.ts +235 -0
  261. package/dist/devtools/types.d.ts.map +1 -0
  262. package/dist/devtools/types.js +26 -0
  263. package/dist/devtools/types.js.map +1 -0
  264. package/dist/devtools/useDebugStream.cjs +46 -0
  265. package/dist/devtools/useDebugStream.cjs.map +1 -0
  266. package/dist/devtools/useDebugStream.d.ts +23 -0
  267. package/dist/devtools/useDebugStream.d.ts.map +1 -0
  268. package/dist/devtools/useDebugStream.js +46 -0
  269. package/dist/devtools/useDebugStream.js.map +1 -0
  270. package/dist/devtools.cjs +51 -0
  271. package/dist/devtools.cjs.map +1 -0
  272. package/dist/devtools.d.ts +37 -0
  273. package/dist/devtools.d.ts.map +1 -0
  274. package/dist/devtools.js +51 -0
  275. package/dist/devtools.js.map +1 -0
  276. package/dist/icons/components/UiOpenScad.cjs +10 -0
  277. package/dist/icons/components/UiOpenScad.cjs.map +1 -0
  278. package/dist/icons/components/UiOpenScad.d.ts +9 -0
  279. package/dist/icons/components/UiOpenScad.d.ts.map +1 -0
  280. package/dist/icons/components/UiOpenScad.js +10 -0
  281. package/dist/icons/components/UiOpenScad.js.map +1 -0
  282. package/dist/icons/index.d.ts +1 -0
  283. package/dist/icons/index.d.ts.map +1 -1
  284. package/dist/icons/registry.cjs +2 -0
  285. package/dist/icons/registry.cjs.map +1 -1
  286. package/dist/icons/registry.d.ts.map +1 -1
  287. package/dist/icons/registry.js +2 -0
  288. package/dist/icons/registry.js.map +1 -1
  289. package/dist/icons.cjs +2 -0
  290. package/dist/icons.cjs.map +1 -1
  291. package/dist/icons.js +2 -0
  292. package/dist/icons.js.map +1 -1
  293. package/dist/index.cjs +20 -8
  294. package/dist/index.cjs.map +1 -1
  295. package/dist/index.js +20 -8
  296. package/dist/index.js.map +1 -1
  297. package/dist/layout/AppShell.cjs +15 -10
  298. package/dist/layout/AppShell.cjs.map +1 -1
  299. package/dist/layout/AppShell.d.ts +11 -0
  300. package/dist/layout/AppShell.d.ts.map +1 -1
  301. package/dist/layout/AppShell.js +15 -10
  302. package/dist/layout/AppShell.js.map +1 -1
  303. package/dist/layout/AppShell.nav.cjs +170 -49
  304. package/dist/layout/AppShell.nav.cjs.map +1 -1
  305. package/dist/layout/AppShell.nav.d.ts.map +1 -1
  306. package/dist/layout/AppShell.nav.js +170 -49
  307. package/dist/layout/AppShell.nav.js.map +1 -1
  308. package/dist/overlay/CellActions.cjs +18 -124
  309. package/dist/overlay/CellActions.cjs.map +1 -1
  310. package/dist/overlay/CellActions.d.ts +1 -1
  311. package/dist/overlay/CellActions.d.ts.map +1 -1
  312. package/dist/overlay/CellActions.js +18 -124
  313. package/dist/overlay/CellActions.js.map +1 -1
  314. package/dist/overlay/ContextMenu.cjs +144 -0
  315. package/dist/overlay/ContextMenu.cjs.map +1 -0
  316. package/dist/overlay/ContextMenu.d.ts +8 -0
  317. package/dist/overlay/ContextMenu.d.ts.map +1 -0
  318. package/dist/overlay/ContextMenu.js +144 -0
  319. package/dist/overlay/ContextMenu.js.map +1 -0
  320. package/dist/profiles/connections/connectionBrowserModel.cjs +14 -65
  321. package/dist/profiles/connections/connectionBrowserModel.cjs.map +1 -1
  322. package/dist/profiles/connections/connectionBrowserModel.d.ts +35 -35
  323. package/dist/profiles/connections/connectionBrowserModel.d.ts.map +1 -1
  324. package/dist/profiles/connections/connectionBrowserModel.js +14 -65
  325. package/dist/profiles/connections/connectionBrowserModel.js.map +1 -1
  326. package/dist/profiles/connections/connectionQueryWorkspace.cjs +29 -9
  327. package/dist/profiles/connections/connectionQueryWorkspace.cjs.map +1 -1
  328. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +3 -2
  329. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -1
  330. package/dist/profiles/connections/connectionQueryWorkspace.js +30 -10
  331. package/dist/profiles/connections/connectionQueryWorkspace.js.map +1 -1
  332. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs +15 -0
  333. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs.map +1 -1
  334. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts +22 -1
  335. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts.map +1 -1
  336. package/dist/profiles/connections/connectionQueryWorkspaceModel.js +15 -0
  337. package/dist/profiles/connections/connectionQueryWorkspaceModel.js.map +1 -1
  338. package/dist/profiles/connections/index.d.ts +1 -0
  339. package/dist/profiles/connections/index.d.ts.map +1 -1
  340. package/dist/profiles/connections/inspectionStatus.cjs +44 -0
  341. package/dist/profiles/connections/inspectionStatus.cjs.map +1 -0
  342. package/dist/profiles/connections/inspectionStatus.d.ts +5 -0
  343. package/dist/profiles/connections/inspectionStatus.d.ts.map +1 -0
  344. package/dist/profiles/connections/inspectionStatus.js +44 -0
  345. package/dist/profiles/connections/inspectionStatus.js.map +1 -0
  346. package/dist/profiles/connections/useInspection.cjs +123 -0
  347. package/dist/profiles/connections/useInspection.cjs.map +1 -0
  348. package/dist/profiles/connections/useInspection.d.ts +35 -0
  349. package/dist/profiles/connections/useInspection.d.ts.map +1 -0
  350. package/dist/profiles/connections/useInspection.js +123 -0
  351. package/dist/profiles/connections/useInspection.js.map +1 -0
  352. package/dist/profiles/editor/profileBuilderWorkspace.cjs +55 -23
  353. package/dist/profiles/editor/profileBuilderWorkspace.cjs.map +1 -1
  354. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -1
  355. package/dist/profiles/editor/profileBuilderWorkspace.js +56 -24
  356. package/dist/profiles/editor/profileBuilderWorkspace.js.map +1 -1
  357. package/dist/profiles/elasticsearch/esQueryBuilder.cjs +12 -3
  358. package/dist/profiles/elasticsearch/esQueryBuilder.cjs.map +1 -1
  359. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +2 -2
  360. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -1
  361. package/dist/profiles/elasticsearch/esQueryBuilder.js +12 -3
  362. package/dist/profiles/elasticsearch/esQueryBuilder.js.map +1 -1
  363. package/dist/profiles/fields/profileFieldEditor.cjs +137 -22
  364. package/dist/profiles/fields/profileFieldEditor.cjs.map +1 -1
  365. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -1
  366. package/dist/profiles/fields/profileFieldEditor.js +137 -22
  367. package/dist/profiles/fields/profileFieldEditor.js.map +1 -1
  368. package/dist/profiles/fields/profileFieldFilterEditor.cjs +171 -82
  369. package/dist/profiles/fields/profileFieldFilterEditor.cjs.map +1 -1
  370. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +0 -9
  371. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -1
  372. package/dist/profiles/fields/profileFieldFilterEditor.js +174 -85
  373. package/dist/profiles/fields/profileFieldFilterEditor.js.map +1 -1
  374. package/dist/profiles/fields/profileFieldIcons.cjs +6 -3
  375. package/dist/profiles/fields/profileFieldIcons.cjs.map +1 -1
  376. package/dist/profiles/fields/profileFieldIcons.js +6 -3
  377. package/dist/profiles/fields/profileFieldIcons.js.map +1 -1
  378. package/dist/profiles/query/profileSampleFilterLookup.cjs +34 -0
  379. package/dist/profiles/query/profileSampleFilterLookup.cjs.map +1 -0
  380. package/dist/profiles/query/profileSampleFilterLookup.d.ts +12 -0
  381. package/dist/profiles/query/profileSampleFilterLookup.d.ts.map +1 -0
  382. package/dist/profiles/query/profileSampleFilterLookup.js +34 -0
  383. package/dist/profiles/query/profileSampleFilterLookup.js.map +1 -0
  384. package/dist/profiles/query/profileSamplePayload.cjs +6 -4
  385. package/dist/profiles/query/profileSamplePayload.cjs.map +1 -1
  386. package/dist/profiles/query/profileSamplePayload.d.ts +11 -4
  387. package/dist/profiles/query/profileSamplePayload.d.ts.map +1 -1
  388. package/dist/profiles/query/profileSamplePayload.js +6 -4
  389. package/dist/profiles/query/profileSamplePayload.js.map +1 -1
  390. package/dist/profiles/query/profileSampleResult.cjs +26 -0
  391. package/dist/profiles/query/profileSampleResult.cjs.map +1 -0
  392. package/dist/profiles/query/profileSampleResult.d.ts +11 -0
  393. package/dist/profiles/query/profileSampleResult.d.ts.map +1 -0
  394. package/dist/profiles/query/profileSampleResult.js +26 -0
  395. package/dist/profiles/query/profileSampleResult.js.map +1 -0
  396. package/dist/profiles/query/queryTargetPicker.cjs +5 -3
  397. package/dist/profiles/query/queryTargetPicker.cjs.map +1 -1
  398. package/dist/profiles/query/queryTargetPicker.d.ts +3 -2
  399. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -1
  400. package/dist/profiles/query/queryTargetPicker.js +5 -3
  401. package/dist/profiles/query/queryTargetPicker.js.map +1 -1
  402. package/dist/profiles/wizard/profileWizard.cjs +14 -5
  403. package/dist/profiles/wizard/profileWizard.cjs.map +1 -1
  404. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -1
  405. package/dist/profiles/wizard/profileWizard.js +15 -6
  406. package/dist/profiles/wizard/profileWizard.js.map +1 -1
  407. package/dist/profiles/wizard/profileWizardModel.cjs +35 -6
  408. package/dist/profiles/wizard/profileWizardModel.cjs.map +1 -1
  409. package/dist/profiles/wizard/profileWizardModel.d.ts +29 -4
  410. package/dist/profiles/wizard/profileWizardModel.d.ts.map +1 -1
  411. package/dist/profiles/wizard/profileWizardModel.js +35 -6
  412. package/dist/profiles/wizard/profileWizardModel.js.map +1 -1
  413. package/dist/profiles/wizard/profileWizardQueryStep.cjs +44 -11
  414. package/dist/profiles/wizard/profileWizardQueryStep.cjs.map +1 -1
  415. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -1
  416. package/dist/profiles/wizard/profileWizardQueryStep.js +46 -13
  417. package/dist/profiles/wizard/profileWizardQueryStep.js.map +1 -1
  418. package/dist/profiles/wizard/profileWizardSteps.cjs +33 -2
  419. package/dist/profiles/wizard/profileWizardSteps.cjs.map +1 -1
  420. package/dist/profiles/wizard/profileWizardSteps.d.ts +11 -2
  421. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -1
  422. package/dist/profiles/wizard/profileWizardSteps.js +33 -2
  423. package/dist/profiles/wizard/profileWizardSteps.js.map +1 -1
  424. package/dist/profiles.cjs +8 -2
  425. package/dist/profiles.cjs.map +1 -1
  426. package/dist/profiles.js +10 -4
  427. package/dist/profiles.js.map +1 -1
  428. package/dist/rpc/FilterForm.cjs +21 -237
  429. package/dist/rpc/FilterForm.cjs.map +1 -1
  430. package/dist/rpc/FilterForm.d.ts +3 -1
  431. package/dist/rpc/FilterForm.d.ts.map +1 -1
  432. package/dist/rpc/FilterForm.js +21 -237
  433. package/dist/rpc/FilterForm.js.map +1 -1
  434. package/dist/rpc/FilterFormFields.cjs +240 -0
  435. package/dist/rpc/FilterFormFields.cjs.map +1 -0
  436. package/dist/rpc/FilterFormFields.d.ts +12 -0
  437. package/dist/rpc/FilterFormFields.d.ts.map +1 -0
  438. package/dist/rpc/FilterFormFields.js +240 -0
  439. package/dist/rpc/FilterFormFields.js.map +1 -0
  440. package/dist/rpc/router.cjs +3 -2
  441. package/dist/rpc/router.cjs.map +1 -1
  442. package/dist/rpc/router.d.ts.map +1 -1
  443. package/dist/rpc/router.js +3 -2
  444. package/dist/rpc/router.js.map +1 -1
  445. package/dist/rpc/types.cjs.map +1 -1
  446. package/dist/rpc/types.d.ts +3 -1
  447. package/dist/rpc/types.d.ts.map +1 -1
  448. package/dist/rpc/types.js.map +1 -1
  449. package/dist/styles.css +1 -1
  450. package/package.json +6 -1
  451. package/dist/data/query-info/QueryInfoDialog.cjs +0 -106
  452. package/dist/data/query-info/QueryInfoDialog.cjs.map +0 -1
  453. package/dist/data/query-info/QueryInfoDialog.d.ts +0 -16
  454. package/dist/data/query-info/QueryInfoDialog.d.ts.map +0 -1
  455. package/dist/data/query-info/QueryInfoDialog.js +0 -106
  456. package/dist/data/query-info/QueryInfoDialog.js.map +0 -1
  457. package/dist/data/query-info/index.d.ts +0 -4
  458. package/dist/data/query-info/index.d.ts.map +0 -1
  459. package/dist/data/query-info/queryInfo.cjs +0 -42
  460. package/dist/data/query-info/queryInfo.cjs.map +0 -1
  461. package/dist/data/query-info/queryInfo.d.ts +0 -45
  462. package/dist/data/query-info/queryInfo.d.ts.map +0 -1
  463. package/dist/data/query-info/queryInfo.js +0 -42
  464. package/dist/data/query-info/queryInfo.js.map +0 -1
  465. package/dist/data/query-info/useQueryInfo.cjs +0 -48
  466. package/dist/data/query-info/useQueryInfo.cjs.map +0 -1
  467. package/dist/data/query-info/useQueryInfo.d.ts +0 -26
  468. package/dist/data/query-info/useQueryInfo.d.ts.map +0 -1
  469. package/dist/data/query-info/useQueryInfo.js +0 -48
  470. package/dist/data/query-info/useQueryInfo.js.map +0 -1
@@ -4,12 +4,22 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const profileFieldControls = require("./profileFieldControls.cjs");
5
5
  const profileFieldIcons = require("./profileFieldIcons.cjs");
6
6
  const profileWizardModel = require("../wizard/profileWizardModel.cjs");
7
- const UiFilter = require("../../icons/components/UiFilter.cjs");
8
- const UiFunnelData = require("../../icons/components/UiFunnelData.cjs");
9
7
  const UiDatabase = require("../../icons/components/UiDatabase.cjs");
10
8
  const UiListDashes = require("../../icons/components/UiListDashes.cjs");
11
9
  const UiListOrdered = require("../../icons/components/UiListOrdered.cjs");
12
10
  const UiListChecks = require("../../icons/components/UiListChecks.cjs");
11
+ const UiMagicWand = require("../../icons/components/UiMagicWand.cjs");
12
+ const UiProhibit = require("../../icons/components/UiProhibit.cjs");
13
+ const FILTER_SEGMENTS = [
14
+ { value: "auto", label: "Auto", icon: /* @__PURE__ */ jsxRuntime.jsx(UiMagicWand.UiMagicWand, {}) },
15
+ { value: "off", label: "Off", icon: /* @__PURE__ */ jsxRuntime.jsx(UiProhibit.UiProhibit, {}) },
16
+ ...profileWizardModel.PROFILE_FILTER_KIND_OPTIONS.filter(
17
+ (option) => option.value !== "none"
18
+ ).map((option) => ({
19
+ ...option,
20
+ icon: profileFieldIcons.profileFilterKindIcon(option.value)
21
+ }))
22
+ ];
13
23
  function ProfileFieldFilterEditor({
14
24
  field,
15
25
  columns,
@@ -17,106 +27,185 @@ function ProfileFieldFilterEditor({
17
27
  }) {
18
28
  var _a;
19
29
  const filter = field.filter ?? {};
20
- const set = (patch) => onChange({ filter: profileWizardModel.patchColumnFilter(field.filter, patch) });
21
- const kind = filter.kind ?? profileWizardModel.inferredFilterKind(field);
22
- const picksFromAList = kind === "terms";
30
+ const state = filter.disabled || filter.kind === "none" ? "off" : filter.kind || "auto";
31
+ const effectiveKind = state === "auto" ? profileWizardModel.inferredFilterKind(field) : state;
32
+ const enabled = state !== "off" && effectiveKind !== "none";
33
+ const picksFromAList = effectiveKind === "terms";
34
+ const supportsMultiple = picksFromAList || effectiveKind === "exact";
23
35
  const enumerated = (((_a = filter.options) == null ? void 0 : _a.length) ?? 0) > 0;
24
36
  const looksUp = picksFromAList && !enumerated && (filter.lookup ?? true);
25
- const enabled = !filter.disabled;
26
37
  const wide = columns === 2 ? "sm:col-span-2" : "";
27
- return /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "rounded-md border px-3 py-2", children: [
28
- /* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "flex cursor-pointer items-center gap-2 text-sm font-medium", children: [
29
- /* @__PURE__ */ jsxRuntime.jsx(UiFilter.UiFilter, { className: "shrink-0 text-[15px] text-muted-foreground" }),
30
- "Filtering",
31
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-normal text-muted-foreground", children: enabled ? summarizeFilter(kind, enumerated, looksUp, filter.limit) : "off" })
38
+ const set = (patch) => onChange({ filter: profileWizardModel.patchColumnFilter(field.filter, patch) });
39
+ const selectState = (next) => {
40
+ if (next === "off") {
41
+ set({
42
+ disabled: true,
43
+ kind: filter.kind === "none" ? void 0 : filter.kind
44
+ });
45
+ return;
46
+ }
47
+ const kind = next === "auto" ? profileWizardModel.inferredFilterKind(field) : next;
48
+ const selected = profileWizardModel.patchColumnFilter(filter, {
49
+ disabled: void 0,
50
+ kind: next === "auto" ? void 0 : next
51
+ });
52
+ onChange({ filter: filterForKind(selected, kind) });
53
+ };
54
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: `grid gap-4 ${wide}`, "aria-label": "Filtering", children: [
55
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
56
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: "Filter type" }),
57
+ /* @__PURE__ */ jsxRuntime.jsx(
58
+ "div",
59
+ {
60
+ role: "radiogroup",
61
+ "aria-label": "Filter type",
62
+ className: "flex flex-wrap gap-1 rounded-md border bg-muted/30 p-1",
63
+ children: FILTER_SEGMENTS.map((segment) => {
64
+ const selected = state === segment.value;
65
+ return /* @__PURE__ */ jsxRuntime.jsxs(
66
+ "label",
67
+ {
68
+ title: segment.label,
69
+ className: `flex h-9 cursor-pointer items-center gap-1.5 rounded px-2 text-xs transition-colors focus-within:ring-2 focus-within:ring-primary/30 ${selected ? "bg-background font-medium text-foreground shadow-sm" : "text-muted-foreground hover:bg-background/70 hover:text-foreground"}`,
70
+ children: [
71
+ /* @__PURE__ */ jsxRuntime.jsx(
72
+ "input",
73
+ {
74
+ type: "radio",
75
+ name: `filter-type-${field.name}`,
76
+ value: segment.value,
77
+ checked: selected,
78
+ "aria-label": segment.label,
79
+ className: "sr-only",
80
+ onChange: () => selectState(segment.value)
81
+ }
82
+ ),
83
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[15px]", children: segment.icon }),
84
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: segment.label })
85
+ ]
86
+ },
87
+ segment.value
88
+ );
89
+ })
90
+ }
91
+ ),
92
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: "Auto derives the control from the data type; choose a type to override it." })
32
93
  ] }),
33
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `mt-3 grid gap-4 ${columns === 2 ? "sm:grid-cols-2" : ""}`, children: [
34
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: `flex items-center gap-2 text-sm font-medium ${wide}`, children: [
35
- /* @__PURE__ */ jsxRuntime.jsx(
36
- "input",
37
- {
38
- type: "checkbox",
39
- checked: enabled,
40
- onChange: (event) => set({ disabled: event.target.checked ? void 0 : true })
41
- }
42
- ),
43
- "Filter",
44
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-normal text-muted-foreground", children: "Offer a filter for this column" })
45
- ] }),
46
- enabled ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
47
- /* @__PURE__ */ jsxRuntime.jsx(
48
- profileFieldControls.EnumField,
49
- {
50
- label: "Filter type",
51
- icon: /* @__PURE__ */ jsxRuntime.jsx(UiFunnelData.UiFunnelData, {}),
52
- help: "Overrides the control derived from Type; set it where the rendered type and the backend storage disagree.",
53
- value: filter.kind ?? "",
54
- options: profileFieldIcons.profileFilterKindOptions,
55
- placeholder: `From Type (${filterKindLabel(kind)})`,
56
- onChange: (next) => set({ kind: next })
57
- }
58
- ),
59
- /* @__PURE__ */ jsxRuntime.jsx(profileFieldControls.EditorField, { label: "Backend field", icon: /* @__PURE__ */ jsxRuntime.jsx(UiDatabase.UiDatabase, {}), help: "The indexed field for a document store, the result column for SQL; blank infers it from the column.", children: /* @__PURE__ */ jsxRuntime.jsx("input", { "aria-label": "Backend field", value: filter.field ?? "", className: profileFieldControls.inputClassName, placeholder: field.source || field.name, onChange: (event) => set({ field: event.target.value || void 0 }) }) }),
60
- picksFromAList ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: wide, children: /* @__PURE__ */ jsxRuntime.jsx(profileFieldControls.EditorField, { label: "Values", icon: /* @__PURE__ */ jsxRuntime.jsx(UiListDashes.UiListDashes, {}), help: "Comma-separated values to offer instead of asking the backend; leave blank to enumerate from the data.", children: /* @__PURE__ */ jsxRuntime.jsx(
94
+ enabled ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `grid gap-4 ${columns === 2 ? "sm:grid-cols-2" : ""}`, children: [
95
+ /* @__PURE__ */ jsxRuntime.jsx(
96
+ profileFieldControls.EditorField,
97
+ {
98
+ label: "Backend field",
99
+ icon: /* @__PURE__ */ jsxRuntime.jsx(UiDatabase.UiDatabase, {}),
100
+ help: "The indexed field for a document store, or the result column for SQL; blank infers it from the column.",
101
+ children: /* @__PURE__ */ jsxRuntime.jsx(
62
102
  "input",
63
103
  {
64
- "aria-label": "Values",
65
- value: (filter.options ?? []).join(", "),
104
+ "aria-label": "Backend field",
105
+ value: filter.field ?? "",
66
106
  className: profileFieldControls.inputClassName,
67
- placeholder: "Ask the backend",
68
- onChange: (event) => set({ options: parseFilterOptions(event.target.value) })
107
+ placeholder: field.source || field.name,
108
+ onChange: (event) => set({ field: event.target.value || void 0 })
69
109
  }
70
- ) }) }),
71
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
72
- /* @__PURE__ */ jsxRuntime.jsx(
110
+ )
111
+ }
112
+ ),
113
+ picksFromAList ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
114
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: wide, children: /* @__PURE__ */ jsxRuntime.jsx(
115
+ profileFieldControls.EditorField,
116
+ {
117
+ label: "Values",
118
+ icon: /* @__PURE__ */ jsxRuntime.jsx(UiListDashes.UiListDashes, {}),
119
+ help: "Comma-separated values to offer instead of asking the backend; leave blank to enumerate from the data.",
120
+ children: /* @__PURE__ */ jsxRuntime.jsx(
73
121
  "input",
74
122
  {
75
- type: "checkbox",
76
- checked: looksUp,
77
- disabled: enumerated,
78
- onChange: (event) => set({ lookup: event.target.checked })
123
+ "aria-label": "Values",
124
+ value: (filter.options ?? []).join(", "),
125
+ className: profileFieldControls.inputClassName,
126
+ placeholder: "Ask the backend",
127
+ onChange: (event) => set({ options: parseFilterOptions(event.target.value) })
79
128
  }
80
- ),
81
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: enumerated ? "text-muted-foreground" : void 0, children: enumerated ? "Values are listed above" : "Look values up from the data" })
82
- ] }),
83
- /* @__PURE__ */ jsxRuntime.jsx(profileFieldControls.EditorField, { label: "Values offered", icon: /* @__PURE__ */ jsxRuntime.jsx(UiListOrdered.UiListOrdered, {}), help: `How many distinct values the control lists before the rest have to be typed for. Blank uses ${profileWizardModel.PROFILE_FILTER_DEFAULT_LIMIT}.`, children: /* @__PURE__ */ jsxRuntime.jsx(
129
+ )
130
+ }
131
+ ) }),
132
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
133
+ /* @__PURE__ */ jsxRuntime.jsx(
84
134
  "input",
85
135
  {
86
- "aria-label": "Values offered",
87
- type: "number",
88
- min: 1,
89
- max: profileWizardModel.PROFILE_FILTER_MAX_LIMIT,
90
- value: filter.limit ?? "",
91
- disabled: !looksUp,
92
- className: profileFieldControls.inputClassName,
93
- placeholder: String(profileWizardModel.PROFILE_FILTER_DEFAULT_LIMIT),
94
- onChange: (event) => set({ limit: event.target.value ? Number(event.target.value) : void 0 })
136
+ type: "checkbox",
137
+ checked: looksUp,
138
+ disabled: enumerated,
139
+ onChange: (event) => set({ lookup: event.target.checked })
95
140
  }
96
- ) })
97
- ] }) : null,
98
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
99
- /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: filter.multi ?? true, onChange: (event) => set({ multi: event.target.checked }) }),
100
- /* @__PURE__ */ jsxRuntime.jsx(UiListChecks.UiListChecks, { className: "text-[15px] text-muted-foreground" }),
101
- "Allow several values at once"
102
- ] })
141
+ ),
142
+ /* @__PURE__ */ jsxRuntime.jsx(
143
+ "span",
144
+ {
145
+ className: enumerated ? "text-muted-foreground" : void 0,
146
+ children: enumerated ? "Values are listed above" : "Look values up from the data"
147
+ }
148
+ )
149
+ ] }),
150
+ /* @__PURE__ */ jsxRuntime.jsx(
151
+ profileFieldControls.EditorField,
152
+ {
153
+ label: "Values offered",
154
+ icon: /* @__PURE__ */ jsxRuntime.jsx(UiListOrdered.UiListOrdered, {}),
155
+ help: `How many distinct values the control lists before the rest have to be typed. Blank uses ${profileWizardModel.PROFILE_FILTER_DEFAULT_LIMIT}.`,
156
+ children: /* @__PURE__ */ jsxRuntime.jsx(
157
+ "input",
158
+ {
159
+ "aria-label": "Values offered",
160
+ type: "number",
161
+ min: 1,
162
+ max: profileWizardModel.PROFILE_FILTER_MAX_LIMIT,
163
+ value: filter.limit ?? "",
164
+ disabled: !looksUp,
165
+ className: profileFieldControls.inputClassName,
166
+ placeholder: String(profileWizardModel.PROFILE_FILTER_DEFAULT_LIMIT),
167
+ onChange: (event) => set({
168
+ limit: event.target.value ? Number(event.target.value) : void 0
169
+ })
170
+ }
171
+ )
172
+ }
173
+ )
174
+ ] }) : null,
175
+ supportsMultiple ? /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
176
+ /* @__PURE__ */ jsxRuntime.jsx(
177
+ "input",
178
+ {
179
+ type: "checkbox",
180
+ checked: filter.multi ?? true,
181
+ onChange: (event) => set({ multi: event.target.checked })
182
+ }
183
+ ),
184
+ /* @__PURE__ */ jsxRuntime.jsx(UiListChecks.UiListChecks, { className: "text-[15px] text-muted-foreground" }),
185
+ "Allow several values at once"
103
186
  ] }) : null
104
- ] })
187
+ ] }) : null
105
188
  ] });
106
189
  }
190
+ function filterForKind(filter, kind) {
191
+ if (kind === "terms") return filter;
192
+ if (kind === "exact") {
193
+ return profileWizardModel.patchColumnFilter(filter, {
194
+ options: void 0,
195
+ lookup: void 0,
196
+ limit: void 0
197
+ });
198
+ }
199
+ return profileWizardModel.patchColumnFilter(filter, {
200
+ options: void 0,
201
+ lookup: void 0,
202
+ limit: void 0,
203
+ multi: void 0
204
+ });
205
+ }
107
206
  function parseFilterOptions(raw) {
108
207
  const values = raw.split(",").map((value) => value.trim()).filter(Boolean);
109
208
  return values.length ? values : void 0;
110
209
  }
111
- function filterKindLabel(kind) {
112
- var _a;
113
- return ((_a = profileWizardModel.PROFILE_FILTER_KIND_OPTIONS.find((option) => option.value === kind)) == null ? void 0 : _a.label) ?? kind;
114
- }
115
- function summarizeFilter(kind, enumerated, looksUp, limit) {
116
- const control = filterKindLabel(kind);
117
- if (enumerated) return `${control}, listed`;
118
- if (!looksUp) return control;
119
- return `${control}, top ${limit ?? profileWizardModel.PROFILE_FILTER_DEFAULT_LIMIT}`;
120
- }
121
210
  exports.ProfileFieldFilterEditor = ProfileFieldFilterEditor;
122
211
  //# sourceMappingURL=profileFieldFilterEditor.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"profileFieldFilterEditor.cjs","sources":["../../../src/profiles/fields/profileFieldFilterEditor.tsx"],"sourcesContent":["import { UiDatabase, UiFilter, UiFunnelData, UiListChecks, UiListDashes, UiListOrdered } from \"../../icons\";\nimport { EditorField, EnumField, inputClassName } from \"./profileFieldControls\";\nimport { profileFilterKindOptions } from \"./profileFieldIcons\";\nimport {\n inferredFilterKind,\n patchColumnFilter,\n PROFILE_FILTER_DEFAULT_LIMIT,\n PROFILE_FILTER_KIND_OPTIONS,\n PROFILE_FILTER_MAX_LIMIT,\n type Patch,\n type ProfileColumn,\n type ProfileColumnFilter,\n} from \"../wizard/profileWizardModel\";\n\n/**\n * How this column is filtered. Collapsed by default: every field here overrides\n * an inference the server already makes correctly for most columns, so opening\n * it should be a deliberate act rather than the price of editing a label.\n *\n * The Filter toggle leads and gates the rest: a column that offers no filter has\n * nothing to say about its control, its backend field or its values, so those\n * are hidden rather than left editable and inert.\n */\nexport function ProfileFieldFilterEditor({\n field,\n columns,\n onChange,\n}: {\n field: ProfileColumn;\n columns: 1 | 2;\n onChange: (patch: Patch<ProfileColumn>) => void;\n}) {\n const filter = field.filter ?? {};\n const set = (patch: Patch<ProfileColumnFilter>) =>\n onChange({ filter: patchColumnFilter(field.filter, patch) });\n\n // A value selection is the only kind with a list to enumerate; a range, a\n // toggle and a substring are typed rather than picked.\n const kind = filter.kind ?? inferredFilterKind(field);\n const picksFromAList = kind === \"terms\";\n const enumerated = (filter.options?.length ?? 0) > 0;\n // Declaring the values IS the answer the lookup would go and fetch, so the two\n // are mutually exclusive — the server enforces this and the form mirrors it.\n const looksUp = picksFromAList && !enumerated && (filter.lookup ?? true);\n const enabled = !filter.disabled;\n const wide = columns === 2 ? \"sm:col-span-2\" : \"\";\n\n return (\n <details className=\"rounded-md border px-3 py-2\">\n <summary className=\"flex cursor-pointer items-center gap-2 text-sm font-medium\">\n <UiFilter className=\"shrink-0 text-[15px] text-muted-foreground\" />\n Filtering\n <span className=\"text-xs font-normal text-muted-foreground\">\n {enabled ? summarizeFilter(kind, enumerated, looksUp, filter.limit) : \"off\"}\n </span>\n </summary>\n <div className={`mt-3 grid gap-4 ${columns === 2 ? \"sm:grid-cols-2\" : \"\"}`}>\n <label className={`flex items-center gap-2 text-sm font-medium ${wide}`}>\n <input\n type=\"checkbox\"\n checked={enabled}\n onChange={(event) => set({ disabled: event.target.checked ? undefined : true })}\n />\n Filter\n <span className=\"text-xs font-normal text-muted-foreground\">\n Offer a filter for this column\n </span>\n </label>\n {enabled ? (\n <>\n <EnumField\n label=\"Filter type\"\n icon={<UiFunnelData />}\n help=\"Overrides the control derived from Type; set it where the rendered type and the backend storage disagree.\"\n value={filter.kind ?? \"\"}\n options={profileFilterKindOptions}\n placeholder={`From Type (${filterKindLabel(kind)})`}\n onChange={(next) => set({ kind: next })}\n />\n <EditorField label=\"Backend field\" icon={<UiDatabase />} help=\"The indexed field for a document store, the result column for SQL; blank infers it from the column.\">\n <input aria-label=\"Backend field\" value={filter.field ?? \"\"} className={inputClassName} placeholder={field.source || field.name} onChange={(event) => set({ field: event.target.value || undefined })} />\n </EditorField>\n {picksFromAList ? (\n <>\n <div className={wide}>\n <EditorField label=\"Values\" icon={<UiListDashes />} help=\"Comma-separated values to offer instead of asking the backend; leave blank to enumerate from the data.\">\n <input\n aria-label=\"Values\"\n value={(filter.options ?? []).join(\", \")}\n className={inputClassName}\n placeholder=\"Ask the backend\"\n onChange={(event) => set({ options: parseFilterOptions(event.target.value) })}\n />\n </EditorField>\n </div>\n <label className=\"flex items-center gap-2 text-sm font-medium\">\n <input\n type=\"checkbox\"\n checked={looksUp}\n disabled={enumerated}\n onChange={(event) => set({ lookup: event.target.checked })}\n />\n <span className={enumerated ? \"text-muted-foreground\" : undefined}>\n {enumerated ? \"Values are listed above\" : \"Look values up from the data\"}\n </span>\n </label>\n <EditorField label=\"Values offered\" icon={<UiListOrdered />} help={`How many distinct values the control lists before the rest have to be typed for. Blank uses ${PROFILE_FILTER_DEFAULT_LIMIT}.`}>\n <input\n aria-label=\"Values offered\"\n type=\"number\"\n min={1}\n max={PROFILE_FILTER_MAX_LIMIT}\n value={filter.limit ?? \"\"}\n disabled={!looksUp}\n className={inputClassName}\n placeholder={String(PROFILE_FILTER_DEFAULT_LIMIT)}\n onChange={(event) => set({ limit: event.target.value ? Number(event.target.value) : undefined })}\n />\n </EditorField>\n </>\n ) : null}\n <label className=\"flex items-center gap-2 text-sm font-medium\">\n <input type=\"checkbox\" checked={filter.multi ?? true} onChange={(event) => set({ multi: event.target.checked })} />\n <UiListChecks className=\"text-[15px] text-muted-foreground\" />\n Allow several values at once\n </label>\n </>\n ) : null}\n </div>\n </details>\n );\n}\n\nfunction parseFilterOptions(raw: string): string[] | undefined {\n const values = raw.split(\",\").map((value) => value.trim()).filter(Boolean);\n return values.length ? values : undefined;\n}\n\nfunction filterKindLabel(kind: string): string {\n return PROFILE_FILTER_KIND_OPTIONS.find((option) => option.value === kind)?.label ?? kind;\n}\n\nfunction summarizeFilter(kind: string, enumerated: boolean, looksUp: boolean, limit?: number) {\n const control = filterKindLabel(kind);\n if (enumerated) return `${control}, listed`;\n if (!looksUp) return control;\n return `${control}, top ${limit ?? PROFILE_FILTER_DEFAULT_LIMIT}`;\n}\n"],"names":["patchColumnFilter","inferredFilterKind","jsxs","jsx","UiFilter","Fragment","EnumField","UiFunnelData","profileFilterKindOptions","EditorField","UiDatabase","inputClassName","UiListDashes","UiListOrdered","PROFILE_FILTER_DEFAULT_LIMIT","PROFILE_FILTER_MAX_LIMIT","UiListChecks","PROFILE_FILTER_KIND_OPTIONS"],"mappings":"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"}
1
+ {"version":3,"file":"profileFieldFilterEditor.cjs","sources":["../../../src/profiles/fields/profileFieldFilterEditor.tsx"],"sourcesContent":["import {\n UiDatabase,\n UiListChecks,\n UiListDashes,\n UiListOrdered,\n UiMagicWand,\n UiProhibit,\n} from \"../../icons\";\nimport { EditorField, inputClassName } from \"./profileFieldControls\";\nimport { profileFilterKindIcon } from \"./profileFieldIcons\";\nimport {\n inferredFilterKind,\n patchColumnFilter,\n PROFILE_FILTER_DEFAULT_LIMIT,\n PROFILE_FILTER_KIND_OPTIONS,\n PROFILE_FILTER_MAX_LIMIT,\n type Patch,\n type ProfileColumn,\n type ProfileColumnFilter,\n} from \"../wizard/profileWizardModel\";\n\ntype FilterState = \"auto\" | \"off\" | string;\n\nconst FILTER_SEGMENTS = [\n { value: \"auto\", label: \"Auto\", icon: <UiMagicWand /> },\n { value: \"off\", label: \"Off\", icon: <UiProhibit /> },\n ...PROFILE_FILTER_KIND_OPTIONS.filter(\n (option) => option.value !== \"none\",\n ).map((option) => ({\n ...option,\n icon: profileFilterKindIcon(option.value),\n })),\n] as const;\n\nexport function ProfileFieldFilterEditor({\n field,\n columns,\n onChange,\n}: {\n field: ProfileColumn;\n columns: 1 | 2;\n onChange: (patch: Patch<ProfileColumn>) => void;\n}) {\n const filter = field.filter ?? {};\n const state: FilterState =\n filter.disabled || filter.kind === \"none\" ? \"off\" : filter.kind || \"auto\";\n const effectiveKind = state === \"auto\" ? inferredFilterKind(field) : state;\n const enabled = state !== \"off\" && effectiveKind !== \"none\";\n const picksFromAList = effectiveKind === \"terms\";\n const supportsMultiple = picksFromAList || effectiveKind === \"exact\";\n const enumerated = (filter.options?.length ?? 0) > 0;\n const looksUp = picksFromAList && !enumerated && (filter.lookup ?? true);\n const wide = columns === 2 ? \"sm:col-span-2\" : \"\";\n\n const set = (patch: Patch<ProfileColumnFilter>) =>\n onChange({ filter: patchColumnFilter(field.filter, patch) });\n const selectState = (next: FilterState) => {\n if (next === \"off\") {\n set({\n disabled: true,\n kind: filter.kind === \"none\" ? undefined : filter.kind,\n });\n return;\n }\n const kind = next === \"auto\" ? inferredFilterKind(field) : next;\n const selected = patchColumnFilter(filter, {\n disabled: undefined,\n kind: next === \"auto\" ? undefined : next,\n });\n onChange({ filter: filterForKind(selected, kind) });\n };\n\n return (\n <section className={`grid gap-4 ${wide}`} aria-label=\"Filtering\">\n <div className=\"grid gap-1.5\">\n <span className=\"text-sm font-medium\">Filter type</span>\n <div\n role=\"radiogroup\"\n aria-label=\"Filter type\"\n className=\"flex flex-wrap gap-1 rounded-md border bg-muted/30 p-1\"\n >\n {FILTER_SEGMENTS.map((segment) => {\n const selected = state === segment.value;\n return (\n <label\n key={segment.value}\n title={segment.label}\n className={`flex h-9 cursor-pointer items-center gap-1.5 rounded px-2 text-xs transition-colors focus-within:ring-2 focus-within:ring-primary/30 ${\n selected\n ? \"bg-background font-medium text-foreground shadow-sm\"\n : \"text-muted-foreground hover:bg-background/70 hover:text-foreground\"\n }`}\n >\n <input\n type=\"radio\"\n name={`filter-type-${field.name}`}\n value={segment.value}\n checked={selected}\n aria-label={segment.label}\n className=\"sr-only\"\n onChange={() => selectState(segment.value)}\n />\n <span className=\"text-[15px]\">{segment.icon}</span>\n <span>{segment.label}</span>\n </label>\n );\n })}\n </div>\n <span className=\"text-xs text-muted-foreground\">\n Auto derives the control from the data type; choose a type to override it.\n </span>\n </div>\n\n {enabled ? (\n <div className={`grid gap-4 ${columns === 2 ? \"sm:grid-cols-2\" : \"\"}`}>\n <EditorField\n label=\"Backend field\"\n icon={<UiDatabase />}\n help=\"The indexed field for a document store, or the result column for SQL; blank infers it from the column.\"\n >\n <input\n aria-label=\"Backend field\"\n value={filter.field ?? \"\"}\n className={inputClassName}\n placeholder={field.source || field.name}\n onChange={(event) =>\n set({ field: event.target.value || undefined })\n }\n />\n </EditorField>\n {picksFromAList ? (\n <>\n <div className={wide}>\n <EditorField\n label=\"Values\"\n icon={<UiListDashes />}\n help=\"Comma-separated values to offer instead of asking the backend; leave blank to enumerate from the data.\"\n >\n <input\n aria-label=\"Values\"\n value={(filter.options ?? []).join(\", \")}\n className={inputClassName}\n placeholder=\"Ask the backend\"\n onChange={(event) =>\n set({ options: parseFilterOptions(event.target.value) })\n }\n />\n </EditorField>\n </div>\n <label className=\"flex items-center gap-2 text-sm font-medium\">\n <input\n type=\"checkbox\"\n checked={looksUp}\n disabled={enumerated}\n onChange={(event) => set({ lookup: event.target.checked })}\n />\n <span\n className={enumerated ? \"text-muted-foreground\" : undefined}\n >\n {enumerated\n ? \"Values are listed above\"\n : \"Look values up from the data\"}\n </span>\n </label>\n <EditorField\n label=\"Values offered\"\n icon={<UiListOrdered />}\n help={`How many distinct values the control lists before the rest have to be typed. Blank uses ${PROFILE_FILTER_DEFAULT_LIMIT}.`}\n >\n <input\n aria-label=\"Values offered\"\n type=\"number\"\n min={1}\n max={PROFILE_FILTER_MAX_LIMIT}\n value={filter.limit ?? \"\"}\n disabled={!looksUp}\n className={inputClassName}\n placeholder={String(PROFILE_FILTER_DEFAULT_LIMIT)}\n onChange={(event) =>\n set({\n limit: event.target.value\n ? Number(event.target.value)\n : undefined,\n })\n }\n />\n </EditorField>\n </>\n ) : null}\n {supportsMultiple ? (\n <label className=\"flex items-center gap-2 text-sm font-medium\">\n <input\n type=\"checkbox\"\n checked={filter.multi ?? true}\n onChange={(event) => set({ multi: event.target.checked })}\n />\n <UiListChecks className=\"text-[15px] text-muted-foreground\" />\n Allow several values at once\n </label>\n ) : null}\n </div>\n ) : null}\n </section>\n );\n}\n\nfunction filterForKind(\n filter: ProfileColumnFilter | undefined,\n kind: string,\n): ProfileColumnFilter | undefined {\n if (kind === \"terms\") return filter;\n if (kind === \"exact\") {\n return patchColumnFilter(filter, {\n options: undefined,\n lookup: undefined,\n limit: undefined,\n });\n }\n return patchColumnFilter(filter, {\n options: undefined,\n lookup: undefined,\n limit: undefined,\n multi: undefined,\n });\n}\n\nfunction parseFilterOptions(raw: string): string[] | undefined {\n const values = raw\n .split(\",\")\n .map((value) => value.trim())\n .filter(Boolean);\n return values.length ? values : undefined;\n}\n"],"names":["jsx","UiMagicWand","UiProhibit","PROFILE_FILTER_KIND_OPTIONS","profileFilterKindIcon","inferredFilterKind","patchColumnFilter","jsxs","EditorField","UiDatabase","inputClassName","Fragment","UiListDashes","UiListOrdered","PROFILE_FILTER_DEFAULT_LIMIT","PROFILE_FILTER_MAX_LIMIT","UiListChecks"],"mappings":"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"}
@@ -1,13 +1,4 @@
1
1
  import { Patch, ProfileColumn } from '../wizard/profileWizardModel';
2
- /**
3
- * How this column is filtered. Collapsed by default: every field here overrides
4
- * an inference the server already makes correctly for most columns, so opening
5
- * it should be a deliberate act rather than the price of editing a label.
6
- *
7
- * The Filter toggle leads and gates the rest: a column that offers no filter has
8
- * nothing to say about its control, its backend field or its values, so those
9
- * are hidden rather than left editable and inert.
10
- */
11
2
  export declare function ProfileFieldFilterEditor({ field, columns, onChange, }: {
12
3
  field: ProfileColumn;
13
4
  columns: 1 | 2;
@@ -1 +1 @@
1
- {"version":3,"file":"profileFieldFilterEditor.d.ts","sourceRoot":"","sources":["../../../src/profiles/fields/profileFieldFilterEditor.tsx"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,KAAK,EACV,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CACjD,2CAoGA"}
1
+ {"version":3,"file":"profileFieldFilterEditor.d.ts","sourceRoot":"","sources":["../../../src/profiles/fields/profileFieldFilterEditor.tsx"],"names":[],"mappings":"AAUA,OAAO,EAML,KAAK,KAAK,EACV,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AAetC,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CACjD,2CAkKA"}