@solidxai/core-ui 0.1.19-beta.0 → 0.1.19

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 (512) hide show
  1. package/README.md +19 -0
  2. package/dist/components/common/SolidPopupContainer.d.ts.map +1 -1
  3. package/dist/components/common/SolidPopupContainer.js +3 -2
  4. package/dist/components/common/SolidPopupContainer.js.map +1 -1
  5. package/dist/components/common/SolidPopupContainer.tsx +3 -2
  6. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
  7. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +4 -1
  8. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +11 -5
  10. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  11. package/dist/components/core/chatter/SolidChatter.js +2 -1
  12. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  13. package/dist/components/core/chatter/SolidChatter.tsx +2 -0
  14. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +2 -0
  15. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  16. package/dist/components/core/chatter/SolidChatterMessageBox.js +7 -4
  17. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  18. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +8 -3
  19. package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts +5 -0
  20. package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts.map +1 -0
  21. package/dist/components/core/chatter/SolidChatterMessageWidget.js +85 -0
  22. package/dist/components/core/chatter/SolidChatterMessageWidget.js.map +1 -0
  23. package/dist/components/core/chatter/SolidChatterMessageWidget.tsx +59 -0
  24. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  25. package/dist/components/core/common/SolidGlobalSearchElement.js +6 -5
  26. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  27. package/dist/components/core/common/SolidGlobalSearchElement.tsx +6 -5
  28. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts +11 -0
  29. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts.map +1 -0
  30. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js +102 -0
  31. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js.map +1 -0
  32. package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.tsx +129 -0
  33. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts +4 -0
  34. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts.map +1 -0
  35. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js +29 -0
  36. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js.map +1 -0
  37. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.module.css +226 -0
  38. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.tsx +57 -0
  39. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts +4 -0
  40. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts.map +1 -0
  41. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js +33 -0
  42. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js.map +1 -0
  43. package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx +47 -0
  44. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts +5 -0
  45. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts.map +1 -0
  46. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js +59 -0
  47. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js.map +1 -0
  48. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx +82 -0
  49. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts +17 -0
  50. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts.map +1 -0
  51. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js +258 -0
  52. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js.map +1 -0
  53. package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx +286 -0
  54. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  55. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +102 -62
  56. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  57. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +116 -106
  58. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts +6 -0
  59. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts.map +1 -0
  60. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js +37 -0
  61. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js.map +1 -0
  62. package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx +89 -0
  63. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts +3 -0
  64. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts.map +1 -0
  65. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js +18 -0
  66. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js.map +1 -0
  67. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx +51 -0
  68. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts +10 -0
  69. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts.map +1 -0
  70. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js +63 -0
  71. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js.map +1 -0
  72. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.tsx +111 -0
  73. package/dist/components/core/field/FieldListViewData.d.ts.map +1 -1
  74. package/dist/components/core/field/FieldListViewData.js +29 -9
  75. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  76. package/dist/components/core/field/FieldListViewData.tsx +7 -6
  77. package/dist/components/core/form/SolidFormView.d.ts +1 -0
  78. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  79. package/dist/components/core/form/SolidFormView.js +49 -48
  80. package/dist/components/core/form/SolidFormView.js.map +1 -1
  81. package/dist/components/core/form/SolidFormView.tsx +4 -3
  82. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  83. package/dist/components/core/form/fields/SolidPasswordField.js +13 -1
  84. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  85. package/dist/components/core/form/fields/SolidPasswordField.tsx +14 -3
  86. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  87. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  88. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  89. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  90. package/dist/components/core/kanban/KanbanBoard.tsx +5 -1
  91. package/dist/components/core/kanban/KanbanCard.d.ts +3 -0
  92. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  93. package/dist/components/core/kanban/KanbanCard.js +5 -4
  94. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  95. package/dist/components/core/kanban/KanbanCard.tsx +31 -11
  96. package/dist/components/core/kanban/KanbanColumn.d.ts +5 -1
  97. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  98. package/dist/components/core/kanban/KanbanColumn.js +14 -3
  99. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  100. package/dist/components/core/kanban/KanbanColumn.tsx +43 -3
  101. package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
  102. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  103. package/dist/components/core/kanban/SolidKanbanView.js +90 -52
  104. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  105. package/dist/components/core/kanban/SolidKanbanView.tsx +93 -13
  106. package/dist/components/core/list/SolidDataTable.d.ts +2 -1
  107. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  108. package/dist/components/core/list/SolidDataTable.js +2 -2
  109. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  110. package/dist/components/core/list/SolidDataTable.tsx +3 -0
  111. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  112. package/dist/components/core/list/SolidListView.js +114 -57
  113. package/dist/components/core/list/SolidListView.js.map +1 -1
  114. package/dist/components/core/list/SolidListView.tsx +71 -7
  115. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  116. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +14 -0
  117. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  118. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +13 -0
  119. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts +3 -0
  120. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts.map +1 -0
  121. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js +51 -0
  122. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js.map +1 -0
  123. package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.tsx +60 -0
  124. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts +4 -0
  125. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts.map +1 -0
  126. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js +24 -0
  127. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js.map +1 -0
  128. package/dist/components/core/list/widgets/SolidIconNameListViewWidget.tsx +32 -0
  129. package/dist/components/core/model/ModelListViewData.d.ts.map +1 -1
  130. package/dist/components/core/model/ModelListViewData.js +6 -23
  131. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  132. package/dist/components/core/model/ModelListViewData.tsx +1 -48
  133. package/dist/components/core/solid-agent/AgentModelIndicator.d.ts +5 -0
  134. package/dist/components/core/solid-agent/AgentModelIndicator.d.ts.map +1 -0
  135. package/dist/components/core/solid-agent/AgentModelIndicator.js +14 -0
  136. package/dist/components/core/solid-agent/AgentModelIndicator.js.map +1 -0
  137. package/dist/components/core/solid-agent/AgentModelIndicator.tsx +40 -0
  138. package/dist/components/core/solid-agent/AgentSignIn.d.ts +12 -0
  139. package/dist/components/core/solid-agent/AgentSignIn.d.ts.map +1 -0
  140. package/dist/components/core/solid-agent/AgentSignIn.js +82 -0
  141. package/dist/components/core/solid-agent/AgentSignIn.js.map +1 -0
  142. package/dist/components/core/solid-agent/AgentSignIn.tsx +91 -0
  143. package/dist/components/core/solid-agent/SolidAgent.module.css +596 -0
  144. package/dist/components/core/solid-agent/SolidAgentChat.d.ts +30 -0
  145. package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -0
  146. package/dist/components/core/solid-agent/SolidAgentChat.js +300 -0
  147. package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -0
  148. package/dist/components/core/solid-agent/SolidAgentChat.tsx +451 -0
  149. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +44 -0
  150. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -0
  151. package/dist/components/core/solid-agent/SolidAgentEmbedded.js +46 -0
  152. package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -0
  153. package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +87 -0
  154. package/dist/components/core/solid-agent/SolidAgentHost.d.ts +8 -0
  155. package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -0
  156. package/dist/components/core/solid-agent/SolidAgentHost.js +152 -0
  157. package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -0
  158. package/dist/components/core/solid-agent/SolidAgentHost.tsx +164 -0
  159. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts +16 -0
  160. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts.map +1 -0
  161. package/dist/components/core/solid-agent/SolidAgentMarkdown.js +161 -0
  162. package/dist/components/core/solid-agent/SolidAgentMarkdown.js.map +1 -0
  163. package/dist/components/core/solid-agent/SolidAgentMarkdown.tsx +133 -0
  164. package/dist/components/core/solid-agent/SolidAgentMount.d.ts +3 -0
  165. package/dist/components/core/solid-agent/SolidAgentMount.d.ts.map +1 -0
  166. package/dist/components/core/solid-agent/SolidAgentMount.js +62 -0
  167. package/dist/components/core/solid-agent/SolidAgentMount.js.map +1 -0
  168. package/dist/components/core/solid-agent/SolidAgentMount.tsx +31 -0
  169. package/dist/components/core/solid-agent/SolidXAIIcon.d.ts +5 -0
  170. package/dist/components/core/solid-agent/SolidXAIIcon.d.ts.map +1 -0
  171. package/dist/components/core/solid-agent/SolidXAIIcon.js +7 -0
  172. package/dist/components/core/solid-agent/SolidXAIIcon.js.map +1 -0
  173. package/dist/components/core/solid-agent/SolidXAIIcon.tsx +6 -0
  174. package/dist/components/core/solid-agent/agentAttachments.d.ts +20 -0
  175. package/dist/components/core/solid-agent/agentAttachments.d.ts.map +1 -0
  176. package/dist/components/core/solid-agent/agentAttachments.js +184 -0
  177. package/dist/components/core/solid-agent/agentAttachments.js.map +1 -0
  178. package/dist/components/core/solid-agent/agentAttachments.ts +119 -0
  179. package/dist/components/core/solid-agent/agentEvents.d.ts +34 -0
  180. package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -0
  181. package/dist/components/core/solid-agent/agentEvents.js +282 -0
  182. package/dist/components/core/solid-agent/agentEvents.js.map +1 -0
  183. package/dist/components/core/solid-agent/agentEvents.ts +292 -0
  184. package/dist/components/core/solid-agent/agentFormat.d.ts +18 -0
  185. package/dist/components/core/solid-agent/agentFormat.d.ts.map +1 -0
  186. package/dist/components/core/solid-agent/agentFormat.js +179 -0
  187. package/dist/components/core/solid-agent/agentFormat.js.map +1 -0
  188. package/dist/components/core/solid-agent/agentFormat.ts +160 -0
  189. package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts +9 -0
  190. package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts.map +1 -0
  191. package/dist/components/core/solid-agent/client/agentAttachmentMedia.js +129 -0
  192. package/dist/components/core/solid-agent/client/agentAttachmentMedia.js.map +1 -0
  193. package/dist/components/core/solid-agent/client/agentAttachmentMedia.ts +69 -0
  194. package/dist/components/core/solid-agent/client/agentAuth.d.ts +63 -0
  195. package/dist/components/core/solid-agent/client/agentAuth.d.ts.map +1 -0
  196. package/dist/components/core/solid-agent/client/agentAuth.js +307 -0
  197. package/dist/components/core/solid-agent/client/agentAuth.js.map +1 -0
  198. package/dist/components/core/solid-agent/client/agentAuth.ts +222 -0
  199. package/dist/components/core/solid-agent/client/agentRest.d.ts +30 -0
  200. package/dist/components/core/solid-agent/client/agentRest.d.ts.map +1 -0
  201. package/dist/components/core/solid-agent/client/agentRest.js +178 -0
  202. package/dist/components/core/solid-agent/client/agentRest.js.map +1 -0
  203. package/dist/components/core/solid-agent/client/agentRest.ts +100 -0
  204. package/dist/components/core/solid-agent/client/agentRuntime.d.ts +48 -0
  205. package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -0
  206. package/dist/components/core/solid-agent/client/agentRuntime.js +406 -0
  207. package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -0
  208. package/dist/components/core/solid-agent/client/agentRuntime.ts +226 -0
  209. package/dist/components/core/solid-agent/client/agentSocket.d.ts +46 -0
  210. package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -0
  211. package/dist/components/core/solid-agent/client/agentSocket.js +535 -0
  212. package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -0
  213. package/dist/components/core/solid-agent/client/agentSocket.ts +276 -0
  214. package/dist/components/core/solid-agent/client/agentUrls.d.ts +11 -0
  215. package/dist/components/core/solid-agent/client/agentUrls.d.ts.map +1 -0
  216. package/dist/components/core/solid-agent/client/agentUrls.js +18 -0
  217. package/dist/components/core/solid-agent/client/agentUrls.js.map +1 -0
  218. package/dist/components/core/solid-agent/client/agentUrls.ts +19 -0
  219. package/dist/components/core/solid-agent/composer/AgentComposer.d.ts +21 -0
  220. package/dist/components/core/solid-agent/composer/AgentComposer.d.ts.map +1 -0
  221. package/dist/components/core/solid-agent/composer/AgentComposer.js +219 -0
  222. package/dist/components/core/solid-agent/composer/AgentComposer.js.map +1 -0
  223. package/dist/components/core/solid-agent/composer/AgentComposer.tsx +241 -0
  224. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts +8 -0
  225. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -0
  226. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +87 -0
  227. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -0
  228. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +58 -0
  229. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +20 -0
  230. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -0
  231. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +103 -0
  232. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -0
  233. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +60 -0
  234. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +11 -0
  235. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -0
  236. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +21 -0
  237. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -0
  238. package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +266 -0
  239. package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts +15 -0
  240. package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts.map +1 -0
  241. package/dist/components/core/solid-agent/processes/agentHubProcessApi.js +122 -0
  242. package/dist/components/core/solid-agent/processes/agentHubProcessApi.js.map +1 -0
  243. package/dist/components/core/solid-agent/processes/agentHubProcessApi.ts +64 -0
  244. package/dist/components/core/solid-agent/sdk/solidAgent.d.ts +39 -0
  245. package/dist/components/core/solid-agent/sdk/solidAgent.d.ts.map +1 -0
  246. package/dist/components/core/solid-agent/sdk/solidAgent.js +44 -0
  247. package/dist/components/core/solid-agent/sdk/solidAgent.js.map +1 -0
  248. package/dist/components/core/solid-agent/sdk/solidAgent.ts +56 -0
  249. package/dist/components/core/solid-agent/thread/AgentThread.d.ts +17 -0
  250. package/dist/components/core/solid-agent/thread/AgentThread.d.ts.map +1 -0
  251. package/dist/components/core/solid-agent/thread/AgentThread.js +166 -0
  252. package/dist/components/core/solid-agent/thread/AgentThread.js.map +1 -0
  253. package/dist/components/core/solid-agent/thread/AgentThread.tsx +248 -0
  254. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts +36 -0
  255. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts.map +1 -0
  256. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js +148 -0
  257. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js.map +1 -0
  258. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.tsx +116 -0
  259. package/dist/components/core/solid-agent/thread/inlineWidget.d.ts +8 -0
  260. package/dist/components/core/solid-agent/thread/inlineWidget.d.ts.map +1 -0
  261. package/dist/components/core/solid-agent/thread/inlineWidget.js +30 -0
  262. package/dist/components/core/solid-agent/thread/inlineWidget.js.map +1 -0
  263. package/dist/components/core/solid-agent/thread/inlineWidget.ts +27 -0
  264. package/dist/components/core/solid-agent/types.d.ts +155 -0
  265. package/dist/components/core/solid-agent/types.d.ts.map +1 -0
  266. package/dist/components/core/solid-agent/types.js +31 -0
  267. package/dist/components/core/solid-agent/types.js.map +1 -0
  268. package/dist/components/core/solid-agent/types.ts +148 -0
  269. package/dist/components/core/solid-agent/useAdminInputContext.d.ts +4 -0
  270. package/dist/components/core/solid-agent/useAdminInputContext.d.ts.map +1 -0
  271. package/dist/components/core/solid-agent/useAdminInputContext.js +49 -0
  272. package/dist/components/core/solid-agent/useAdminInputContext.js.map +1 -0
  273. package/dist/components/core/solid-agent/useAdminInputContext.ts +52 -0
  274. package/dist/components/core/solid-agent/useAgentAuth.d.ts +14 -0
  275. package/dist/components/core/solid-agent/useAgentAuth.d.ts.map +1 -0
  276. package/dist/components/core/solid-agent/useAgentAuth.js +88 -0
  277. package/dist/components/core/solid-agent/useAgentAuth.js.map +1 -0
  278. package/dist/components/core/solid-agent/useAgentAuth.ts +40 -0
  279. package/dist/components/core/solid-agent/useAgentAvailability.d.ts +19 -0
  280. package/dist/components/core/solid-agent/useAgentAvailability.d.ts.map +1 -0
  281. package/dist/components/core/solid-agent/useAgentAvailability.js +109 -0
  282. package/dist/components/core/solid-agent/useAgentAvailability.js.map +1 -0
  283. package/dist/components/core/solid-agent/useAgentAvailability.ts +80 -0
  284. package/dist/components/core/solid-agent/useAgentChat.d.ts +22 -0
  285. package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -0
  286. package/dist/components/core/solid-agent/useAgentChat.js +45 -0
  287. package/dist/components/core/solid-agent/useAgentChat.js.map +1 -0
  288. package/dist/components/core/solid-agent/useAgentChat.ts +57 -0
  289. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts +7 -0
  290. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts.map +1 -0
  291. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js +15 -0
  292. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js.map +1 -0
  293. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.tsx +24 -0
  294. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts +7 -0
  295. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts.map +1 -0
  296. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js +15 -0
  297. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js.map +1 -0
  298. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.tsx +28 -0
  299. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts +4 -0
  300. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts.map +1 -0
  301. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js +20 -0
  302. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js.map +1 -0
  303. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.tsx +8 -0
  304. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts +7 -0
  305. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts.map +1 -0
  306. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js +11 -0
  307. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js.map +1 -0
  308. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.tsx +16 -0
  309. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts +7 -0
  310. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts.map +1 -0
  311. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js +67 -0
  312. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js.map +1 -0
  313. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.tsx +135 -0
  314. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts +7 -0
  315. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts.map +1 -0
  316. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js +24 -0
  317. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js.map +1 -0
  318. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.tsx +17 -0
  319. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts +8 -0
  320. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -0
  321. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +30 -0
  322. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -0
  323. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +77 -0
  324. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts +7 -0
  325. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts.map +1 -0
  326. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js +40 -0
  327. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js.map +1 -0
  328. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.tsx +57 -0
  329. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts +4 -0
  330. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts.map +1 -0
  331. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js +13 -0
  332. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js.map +1 -0
  333. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.tsx +19 -0
  334. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts +7 -0
  335. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts.map +1 -0
  336. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js +55 -0
  337. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js.map +1 -0
  338. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.tsx +81 -0
  339. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts +4 -0
  340. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts.map +1 -0
  341. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js +15 -0
  342. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js.map +1 -0
  343. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.tsx +30 -0
  344. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts +4 -0
  345. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts.map +1 -0
  346. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js +15 -0
  347. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js.map +1 -0
  348. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.tsx +21 -0
  349. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts +7 -0
  350. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts.map +1 -0
  351. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js +21 -0
  352. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js.map +1 -0
  353. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.tsx +33 -0
  354. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts +4 -0
  355. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts.map +1 -0
  356. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js +11 -0
  357. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js.map +1 -0
  358. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.tsx +9 -0
  359. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts +15 -0
  360. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts.map +1 -0
  361. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js +26 -0
  362. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js.map +1 -0
  363. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.tsx +42 -0
  364. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts +7 -0
  365. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts.map +1 -0
  366. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js +41 -0
  367. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js.map +1 -0
  368. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.tsx +69 -0
  369. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts +7 -0
  370. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts.map +1 -0
  371. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js +23 -0
  372. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js.map +1 -0
  373. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.tsx +40 -0
  374. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts +4 -0
  375. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts.map +1 -0
  376. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js +32 -0
  377. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js.map +1 -0
  378. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.tsx +55 -0
  379. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts +7 -0
  380. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts.map +1 -0
  381. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js +17 -0
  382. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js.map +1 -0
  383. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.tsx +31 -0
  384. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts +12 -0
  385. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts.map +1 -0
  386. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js +17 -0
  387. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js.map +1 -0
  388. package/dist/components/core/solid-agent/widgets/chatWidgetUtils.ts +19 -0
  389. package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +909 -0
  390. package/dist/components/core/solid-ai/SolidAiChat.js +1 -1
  391. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -1
  392. package/dist/components/core/solid-ai/SolidAiChat.tsx +2 -2
  393. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  394. package/dist/components/layout/AdminLayout.js +2 -1
  395. package/dist/components/layout/AdminLayout.js.map +1 -1
  396. package/dist/components/layout/AdminLayout.tsx +2 -0
  397. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  398. package/dist/components/shad-cn-ui/SolidAutocomplete.js +2 -2
  399. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  400. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +19 -15
  401. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  402. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  403. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  404. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  405. package/dist/components/shad-cn-ui/SolidDialog.tsx +3 -0
  406. package/dist/components/shad-cn-ui/SolidIconPicker.d.ts +7 -0
  407. package/dist/components/shad-cn-ui/SolidIconPicker.d.ts.map +1 -0
  408. package/dist/components/shad-cn-ui/SolidIconPicker.js +43 -0
  409. package/dist/components/shad-cn-ui/SolidIconPicker.js.map +1 -0
  410. package/dist/components/shad-cn-ui/SolidIconPicker.tsx +73 -0
  411. package/dist/components/shad-cn-ui/index.d.ts +1 -0
  412. package/dist/components/shad-cn-ui/index.d.ts.map +1 -1
  413. package/dist/components/shad-cn-ui/index.js +1 -0
  414. package/dist/components/shad-cn-ui/index.js.map +1 -1
  415. package/dist/components/shad-cn-ui/index.ts +1 -0
  416. package/dist/constants/allowed-ai-models.d.ts +8 -0
  417. package/dist/constants/allowed-ai-models.d.ts.map +1 -0
  418. package/dist/constants/allowed-ai-models.js +33 -0
  419. package/dist/constants/allowed-ai-models.js.map +1 -0
  420. package/dist/constants/allowed-ai-models.ts +39 -0
  421. package/dist/helpers/hydrateRelationRules.d.ts.map +1 -1
  422. package/dist/helpers/hydrateRelationRules.js +3 -1
  423. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  424. package/dist/helpers/hydrateRelationRules.ts +5 -1
  425. package/dist/helpers/registry.d.ts +4 -2
  426. package/dist/helpers/registry.d.ts.map +1 -1
  427. package/dist/helpers/registry.js +75 -12
  428. package/dist/helpers/registry.js.map +1 -1
  429. package/dist/helpers/registry.ts +73 -16
  430. package/dist/helpers/updatePasswordField.d.ts.map +1 -1
  431. package/dist/helpers/updatePasswordField.js +21 -15
  432. package/dist/helpers/updatePasswordField.js.map +1 -1
  433. package/dist/helpers/updatePasswordField.ts +6 -1
  434. package/dist/index.d.ts +21 -5
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +16 -3
  437. package/dist/index.js.map +1 -1
  438. package/dist/index.ts +34 -3
  439. package/dist/redux/api/fieldApi.js +1 -1
  440. package/dist/redux/api/fieldApi.js.map +1 -1
  441. package/dist/redux/api/fieldApi.ts +2 -2
  442. package/dist/redux/api/modelApi.d.ts +13 -13
  443. package/dist/redux/api/modelApi.d.ts.map +1 -1
  444. package/dist/redux/api/modelApi.js +15 -15
  445. package/dist/redux/api/modelApi.js.map +1 -1
  446. package/dist/redux/api/modelApi.ts +12 -15
  447. package/dist/redux/features/agentSlice.d.ts +34 -0
  448. package/dist/redux/features/agentSlice.d.ts.map +1 -0
  449. package/dist/redux/features/agentSlice.js +92 -0
  450. package/dist/redux/features/agentSlice.js.map +1 -0
  451. package/dist/redux/features/agentSlice.ts +119 -0
  452. package/dist/redux/store/defaultStoreConfig.d.ts +11 -10
  453. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  454. package/dist/redux/store/defaultStoreConfig.js +2 -0
  455. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  456. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  457. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  458. package/dist/redux/store/solidEntityApiPool.js +7 -0
  459. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  460. package/dist/redux/store/solidEntityApiPool.ts +6 -0
  461. package/dist/resources/globals.css +109 -1
  462. package/dist/resources/solid-custom.css +295 -0
  463. package/dist/resources/solid-tailwind-generated.css +1 -1
  464. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.css +47 -0
  465. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts +12 -0
  466. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts.map +1 -0
  467. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js +80 -0
  468. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js.map +1 -0
  469. package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.tsx +123 -0
  470. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.css +110 -0
  471. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts +3 -0
  472. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -0
  473. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +702 -0
  474. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -0
  475. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +630 -0
  476. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.css +303 -0
  477. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts +3 -0
  478. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -0
  479. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +330 -0
  480. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -0
  481. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +460 -0
  482. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.css +125 -0
  483. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts +3 -0
  484. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -0
  485. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +295 -0
  486. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -0
  487. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +275 -0
  488. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +11 -11
  489. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +1 -1
  490. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +15 -15
  491. package/dist/routes/pages/embed/AgentEmbedPage.d.ts +3 -0
  492. package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -0
  493. package/dist/routes/pages/embed/AgentEmbedPage.js +170 -0
  494. package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -0
  495. package/dist/routes/pages/embed/AgentEmbedPage.module.css +195 -0
  496. package/dist/routes/pages/embed/AgentEmbedPage.tsx +169 -0
  497. package/dist/routes/solidRoutes.d.ts.map +1 -1
  498. package/dist/routes/solidRoutes.js +8 -0
  499. package/dist/routes/solidRoutes.js.map +1 -1
  500. package/dist/routes/solidRoutes.tsx +8 -0
  501. package/dist/types/extension-registry.d.ts +4 -0
  502. package/dist/types/extension-registry.d.ts.map +1 -1
  503. package/dist/types/extension-registry.js +7 -0
  504. package/dist/types/extension-registry.js.map +1 -1
  505. package/dist/types/extension-registry.ts +7 -0
  506. package/dist/types/index.d.ts +4 -0
  507. package/dist/types/list-row-action.d.ts +2 -0
  508. package/dist/types/list-row-action.d.ts.map +1 -1
  509. package/dist/types/list-row-action.js.map +1 -1
  510. package/dist/types/list-row-action.ts +3 -0
  511. package/dist/types/solid-core.d.ts +36 -0
  512. package/package.json +1 -1
@@ -38,7 +38,7 @@ interface Message {
38
38
  interface SessionSummary {
39
39
  session_id: string;
40
40
  status: string;
41
- total_steps: number;
41
+ totalSteps: number;
42
42
  created_at: string | null;
43
43
  preview: string;
44
44
  }
@@ -975,7 +975,7 @@ export const SolidAiChat: React.FC = () => {
975
975
  <span className={styles.SessionItemPreview}>{s.preview || "New conversation"}</span>
976
976
  <span className={styles.SessionItemMeta}>
977
977
  {formatSessionDate(s.created_at)}
978
- {s.total_steps > 0 && ` · ${s.total_steps} turn${s.total_steps !== 1 ? "s" : ""}`}
978
+ {s.totalSteps > 0 && ` · ${s.totalSteps} turn${s.totalSteps !== 1 ? "s" : ""}`}
979
979
  </span>
980
980
  </div>
981
981
  <button
@@ -1 +1 @@
1
- {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/AdminLayout.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,WAAW;cAA8B,MAAM,SAAS;6CAqCpE,CAAA"}
1
+ {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/AdminLayout.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,WAAW;cAA8B,MAAM,SAAS;6CAsCpE,CAAA"}
@@ -9,6 +9,7 @@ import { Layout } from "./Layout";
9
9
  import SolidChangeForcePassword from "../auth/SolidChangeForcePassword";
10
10
  import { ERROR_MESSAGES } from "../../constants/error-messages";
11
11
  import { SolidDialog, SolidDialogBody, SolidDialogSeparator } from "../shad-cn-ui";
12
+ import { SolidAgentMount } from "../core/solid-agent/SolidAgentMount";
12
13
  export var AdminLayout = function (_a) {
13
14
  var children = _a.children;
14
15
  // const theme = useSelector((state: any) => state.theme.mode);
@@ -28,6 +29,6 @@ export var AdminLayout = function (_a) {
28
29
  signOut({ callbackUrl: "/auth/login" });
29
30
  }
30
31
  }, [session, status]);
31
- return (_jsxs(_Fragment, { children: [_jsx(Layout, { children: children }), isForcePasswordChange && (_jsxs(SolidDialog, { header: "Change Default Password", className: "solid-change-dialog", visible: isForcePasswordChange, onHide: function () { return setIsForcePasswordChange(false); }, children: [_jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { children: _jsx(SolidChangeForcePassword, {}) })] }))] }));
32
+ return (_jsxs(_Fragment, { children: [_jsx(Layout, { children: children }), _jsx(SolidAgentMount, {}), isForcePasswordChange && (_jsxs(SolidDialog, { header: "Change Default Password", className: "solid-change-dialog", visible: isForcePasswordChange, onHide: function () { return setIsForcePasswordChange(false); }, children: [_jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { children: _jsx(SolidChangeForcePassword, {}) })] }))] }));
32
33
  };
33
34
  //# sourceMappingURL=AdminLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminLayout.js","sourceRoot":"","sources":["../../../src/components/layout/AdminLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEnF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA2C;QAAzC,QAAQ,cAAA;IAClC,+DAA+D;IAC/D,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACzB,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IACzC,IAAA,KAAoD,QAAQ,CAAC,KAAK,CAAC,EAAlE,qBAAqB,QAAA,EAAE,wBAAwB,QAAmB,CAAC;IAE1E,SAAS,CAAC;;QACN,wBAAwB,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,mBAAmB,MAAK,IAAI,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,SAAS,CAAC;QACN,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IAAI,CAAC,OAAO,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAK,yBAAyB,EAAE;YAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;YACpG,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;SAC3C;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,OAAO,CACH,8BACI,KAAC,MAAM,cAAE,QAAQ,GAAU,EAC1B,qBAAqB,IAAI,CACtB,MAAC,WAAW,IACR,MAAM,EAAC,yBAAyB,EAChC,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,cAAM,OAAA,wBAAwB,CAAC,KAAK,CAAC,EAA/B,CAA+B,aAE7C,KAAC,oBAAoB,KAAG,EACxB,KAAC,eAAe,cACZ,KAAC,wBAAwB,KAAG,GACd,IACR,CACjB,IACF,CACN,CAAC;AACN,CAAC,CAAA","sourcesContent":["import { signOut } from \"../../adapters/auth/index\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../redux/features/toastSlice';\nimport { Layout } from \"./Layout\";\nimport SolidChangeForcePassword from \"../auth/SolidChangeForcePassword\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport { SolidDialog, SolidDialogBody, SolidDialogSeparator } from \"../shad-cn-ui\";\n\nexport const AdminLayout = ({ children }: { children: React.ReactNode }) => {\n // const theme = useSelector((state: any) => state.theme.mode);\n const dispatch = useDispatch();\n const { data: session, status } = useSession();\n const [isForcePasswordChange, setIsForcePasswordChange] = useState(false);\n\n useEffect(() => {\n setIsForcePasswordChange(session?.user?.forcePasswordChange === true);\n }, [session]);\n\n const router = useRouter();\n useEffect(() => {\n if (status === \"loading\") return;\n if (!session || session?.error === \"RefreshAccessTokenError\") {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: ERROR_MESSAGES.SESSION_EXPIRED }))\n signOut({ callbackUrl: \"/auth/login\" });\n }\n }, [session, status]);\n\n return (\n <>\n <Layout>{children}</Layout>\n {isForcePasswordChange && (\n <SolidDialog\n header=\"Change Default Password\"\n className=\"solid-change-dialog\"\n visible={isForcePasswordChange}\n onHide={() => setIsForcePasswordChange(false)}\n >\n <SolidDialogSeparator />\n <SolidDialogBody>\n <SolidChangeForcePassword />\n </SolidDialogBody>\n </SolidDialog>\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"AdminLayout.js","sourceRoot":"","sources":["../../../src/components/layout/AdminLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA2C;QAAzC,QAAQ,cAAA;IAClC,+DAA+D;IAC/D,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACzB,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IACzC,IAAA,KAAoD,QAAQ,CAAC,KAAK,CAAC,EAAlE,qBAAqB,QAAA,EAAE,wBAAwB,QAAmB,CAAC;IAE1E,SAAS,CAAC;;QACN,wBAAwB,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,mBAAmB,MAAK,IAAI,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,SAAS,CAAC;QACN,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IAAI,CAAC,OAAO,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAK,yBAAyB,EAAE;YAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;YACpG,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;SAC3C;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,OAAO,CACH,8BACI,KAAC,MAAM,cAAE,QAAQ,GAAU,EAC3B,KAAC,eAAe,KAAG,EAClB,qBAAqB,IAAI,CACtB,MAAC,WAAW,IACR,MAAM,EAAC,yBAAyB,EAChC,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,cAAM,OAAA,wBAAwB,CAAC,KAAK,CAAC,EAA/B,CAA+B,aAE7C,KAAC,oBAAoB,KAAG,EACxB,KAAC,eAAe,cACZ,KAAC,wBAAwB,KAAG,GACd,IACR,CACjB,IACF,CACN,CAAC;AACN,CAAC,CAAA","sourcesContent":["import { signOut } from \"../../adapters/auth/index\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../redux/features/toastSlice';\nimport { Layout } from \"./Layout\";\nimport SolidChangeForcePassword from \"../auth/SolidChangeForcePassword\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport { SolidDialog, SolidDialogBody, SolidDialogSeparator } from \"../shad-cn-ui\";\nimport { SolidAgentMount } from \"../core/solid-agent/SolidAgentMount\";\n\nexport const AdminLayout = ({ children }: { children: React.ReactNode }) => {\n // const theme = useSelector((state: any) => state.theme.mode);\n const dispatch = useDispatch();\n const { data: session, status } = useSession();\n const [isForcePasswordChange, setIsForcePasswordChange] = useState(false);\n\n useEffect(() => {\n setIsForcePasswordChange(session?.user?.forcePasswordChange === true);\n }, [session]);\n\n const router = useRouter();\n useEffect(() => {\n if (status === \"loading\") return;\n if (!session || session?.error === \"RefreshAccessTokenError\") {\n dispatch(showToast({ severity: 'error', summary: 'Error', detail: ERROR_MESSAGES.SESSION_EXPIRED }))\n signOut({ callbackUrl: \"/auth/login\" });\n }\n }, [session, status]);\n\n return (\n <>\n <Layout>{children}</Layout>\n <SolidAgentMount />\n {isForcePasswordChange && (\n <SolidDialog\n header=\"Change Default Password\"\n className=\"solid-change-dialog\"\n visible={isForcePasswordChange}\n onHide={() => setIsForcePasswordChange(false)}\n >\n <SolidDialogSeparator />\n <SolidDialogBody>\n <SolidChangeForcePassword />\n </SolidDialogBody>\n </SolidDialog>\n )}\n </>\n );\n}\n"]}
@@ -8,6 +8,7 @@ import { Layout } from "./Layout";
8
8
  import SolidChangeForcePassword from "../auth/SolidChangeForcePassword";
9
9
  import { ERROR_MESSAGES } from "../../constants/error-messages";
10
10
  import { SolidDialog, SolidDialogBody, SolidDialogSeparator } from "../shad-cn-ui";
11
+ import { SolidAgentMount } from "../core/solid-agent/SolidAgentMount";
11
12
 
12
13
  export const AdminLayout = ({ children }: { children: React.ReactNode }) => {
13
14
  // const theme = useSelector((state: any) => state.theme.mode);
@@ -31,6 +32,7 @@ export const AdminLayout = ({ children }: { children: React.ReactNode }) => {
31
32
  return (
32
33
  <>
33
34
  <Layout>{children}</Layout>
35
+ <SolidAgentMount />
34
36
  {isForcePasswordChange && (
35
37
  <SolidDialog
36
38
  header="Change Default Password"
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAiBF,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAgB,EAChB,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,KAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAmB,EACnB,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE,sBAAsB,2CAwXxB"}
1
+ {"version":3,"file":"SolidAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAiBF,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAgB,EAChB,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,KAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAmB,EACnB,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE,sBAAsB,2CA4XxB"}
@@ -289,10 +289,10 @@ export function SolidAutocomplete(_a) {
289
289
  if (nextOpen) {
290
290
  runCompleteMethod(hasCustomQuery ? query : "", true);
291
291
  }
292
- }, "aria-label": "Toggle suggestions", disabled: disabled || readOnly, children: open ? _jsx(ChevronUp, { size: 14 }) : _jsx(ChevronDown, { size: 14 }) }))] }), multiple && manageOpen && selectedItems.length > 0 && (_jsxs("div", { className: "solid-autocomplete-manager-panel", children: [_jsxs("div", { className: "solid-autocomplete-manager-header", children: [_jsxs("div", { className: "solid-autocomplete-manager-title", children: ["Selected (", selectedItems.length, ")"] }), _jsx("button", { type: "button", className: "solid-autocomplete-manager-clear", onClick: clearAllSelected, children: "Clear all" })] }), _jsx("div", { className: "solid-autocomplete-manager-body", children: selectedItems.map(function (item, index) { return (_jsxs("span", { className: "solid-autocomplete-chip", children: [_jsx("span", { className: "solid-autocomplete-chip-label", children: getDisplayValue(item, field) }), _jsx("button", { type: "button", className: "solid-autocomplete-chip-remove", onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () {
292
+ }, "aria-label": "Toggle suggestions", disabled: disabled || readOnly, children: open ? _jsx(ChevronUp, { size: 14 }) : _jsx(ChevronDown, { size: 14 }) }))] }), multiple && manageOpen && selectedItems.length > 0 && (_jsxs("div", { className: "solid-autocomplete-manager-panel", children: [_jsxs("div", { className: "solid-autocomplete-manager-header", children: [_jsxs("div", { className: "solid-autocomplete-manager-title", children: ["Selected (", selectedItems.length, ")"] }), !(disabled || readOnly) && (_jsx("button", { type: "button", className: "solid-autocomplete-manager-clear", onClick: clearAllSelected, children: "Clear all" }))] }), _jsx("div", { className: "solid-autocomplete-manager-body", children: selectedItems.map(function (item, index) { return (_jsxs("span", { className: "solid-autocomplete-chip", children: [_jsx("span", { className: "solid-autocomplete-chip-label", children: getDisplayValue(item, field) }), !(disabled || readOnly) && (_jsx("button", { type: "button", className: "solid-autocomplete-chip-remove", onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () {
293
293
  onUnselect === null || onUnselect === void 0 ? void 0 : onUnselect({ value: item });
294
294
  removeSelectedAt(index);
295
- }, "aria-label": "Remove selection", children: _jsx(X, { size: 12 }) })] }, "managed-".concat(toItemKey(item, index)))); }) })] })), open && normalizedSuggestions.length > 0 && (function () {
295
+ }, "aria-label": "Remove selection", children: _jsx(X, { size: 12 }) }))] }, "managed-".concat(toItemKey(item, index)))); }) })] })), open && normalizedSuggestions.length > 0 && (function () {
296
296
  var panel = (_jsx("div", { ref: panelRef, className: "solid-autocomplete-panel", role: "listbox", style: portal ? (portalStyle !== null && portalStyle !== void 0 ? portalStyle : { visibility: "hidden" }) : undefined, children: normalizedSuggestions.map(function (item, index) { return (_jsx("button", { type: "button", className: cx("solid-autocomplete-option", activeIndex === index && "is-active"), onMouseEnter: function () { return setActiveIndex(index); }, onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () { return commitSelection(item.raw); }, children: item.label }, "".concat(item.label, "-").concat(index))); }) }));
297
297
  return portal && typeof document !== "undefined"
298
298
  ? createPortal(panel, document.body)
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAutocomplete.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ChevronDown, ChevronUp, X } from \"lucide-react\";\n\ntype SolidAutocompleteProps = {\n value?: any;\n suggestions?: any[];\n completeMethod?: (event: { query: string }) => void | Promise<void>;\n onChange?: (event: { value: any }) => void;\n onSelect?: (event: { value: any }) => void;\n onUnselect?: (event: { value: any }) => void;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n readOnly?: boolean;\n emptyMessage?: string;\n id?: string;\n virtualScrollerOptions?: any;\n field?: string;\n placeholder?: string;\n className?: string;\n inputClassName?: string;\n dropdown?: boolean;\n forceSelection?: boolean;\n multiple?: boolean;\n maxVisibleChips?: number;\n style?: React.CSSProperties;\n portal?: boolean;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction getDisplayValue(value: any, field: string) {\n if (value == null) return \"\";\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof value === \"object\") {\n const direct = value?.[field];\n if (direct != null) return String(direct);\n if (value?.label != null) return String(value.label);\n }\n return \"\";\n}\n\nexport function SolidAutocomplete({\n value,\n suggestions = [],\n completeMethod,\n onChange,\n onSelect,\n onUnselect,\n id,\n disabled,\n readOnly,\n emptyMessage,\n field = \"label\",\n placeholder,\n className,\n inputClassName,\n dropdown,\n forceSelection,\n multiple,\n maxVisibleChips = 2,\n style,\n onBlur,\n portal,\n}: SolidAutocompleteProps) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const panelRef = useRef<HTMLDivElement | null>(null);\n const completeTimerRef = useRef<number | null>(null);\n const [open, setOpen] = useState(false);\n const [manageOpen, setManageOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(-1);\n const [isFocused, setIsFocused] = useState(false);\n const [hasCustomQuery, setHasCustomQuery] = useState(false);\n const [portalStyle, setPortalStyle] = useState<React.CSSProperties | null>(null);\n\n useEffect(() => {\n if (multiple) return;\n setQuery(\"\");\n setHasCustomQuery(false);\n }, [value, field, multiple]);\n\n useEffect(() => {\n return () => {\n if (completeTimerRef.current) {\n window.clearTimeout(completeTimerRef.current);\n }\n };\n }, []);\n\n const runCompleteMethod = (nextQuery: string, immediate = false) => {\n if (!completeMethod) return;\n if (completeTimerRef.current) {\n window.clearTimeout(completeTimerRef.current);\n completeTimerRef.current = null;\n }\n if (immediate) {\n void completeMethod({ query: nextQuery });\n return;\n }\n completeTimerRef.current = window.setTimeout(() => {\n void completeMethod({ query: nextQuery });\n }, 140);\n };\n\n useEffect(() => {\n function handleOutsideClick(event: MouseEvent) {\n const target = event.target as Node;\n const insideRoot = rootRef.current?.contains(target);\n const insidePanel = panelRef.current?.contains(target);\n if (!insideRoot && !insidePanel) {\n setOpen(false);\n setManageOpen(false);\n setIsFocused(false);\n }\n }\n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => document.removeEventListener(\"mousedown\", handleOutsideClick);\n }, []);\n\n useLayoutEffect(() => {\n if (!portal || !open) {\n setPortalStyle(null);\n return;\n }\n const updatePosition = () => {\n const el = rootRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n setPortalStyle({\n position: \"fixed\",\n top: rect.bottom + 4,\n left: rect.left,\n right: \"auto\",\n width: rect.width,\n minWidth: rect.width,\n zIndex: 100000,\n pointerEvents: \"auto\",\n });\n };\n updatePosition();\n window.addEventListener(\"resize\", updatePosition);\n window.addEventListener(\"scroll\", updatePosition, true);\n return () => {\n window.removeEventListener(\"resize\", updatePosition);\n window.removeEventListener(\"scroll\", updatePosition, true);\n };\n }, [portal, open]);\n\n const normalizedSuggestions = useMemo(\n () =>\n (suggestions || []).map((item) => ({\n raw: item,\n label: getDisplayValue(item, field),\n })),\n [suggestions, field]\n );\n\n useEffect(() => {\n if (!portal || !open) return;\n const el = panelRef.current;\n if (!el) return;\n const handleWheel = (event: WheelEvent) => {\n if (el.scrollHeight <= el.clientHeight) return;\n event.preventDefault();\n el.scrollTop += event.deltaY;\n };\n el.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => el.removeEventListener(\"wheel\", handleWheel);\n }, [portal, open, normalizedSuggestions.length]);\n\n const selectedItems = useMemo(() => {\n const isRenderable = (item: any) => {\n if (item === null || item === undefined || item === \"\") return false;\n const label = getDisplayValue(item, field);\n return typeof label === \"string\" ? label.trim().length > 0 : !!label;\n };\n\n if (multiple) {\n if (!Array.isArray(value)) return [];\n return value.filter(isRenderable);\n }\n if (value === null || value === undefined || value === \"\") return [];\n if (typeof value === \"string\" || typeof value === \"number\") {\n return isRenderable(value) ? [value] : [];\n }\n return isRenderable(value) ? [value] : [];\n }, [multiple, value, field]);\n\n const visibleSelectedItems = selectedItems.slice(0, maxVisibleChips);\n const hiddenSelectedItems = selectedItems.slice(maxVisibleChips);\n\n useEffect(() => {\n if (multiple && hiddenSelectedItems.length === 0 && manageOpen) {\n setManageOpen(false);\n }\n }, [multiple, hiddenSelectedItems.length, manageOpen]);\n\n const toItemKey = (item: any, index: number) => {\n if (item && typeof item === \"object\") {\n if (item.value !== undefined && item.value !== null) return String(item.value);\n if (item.id !== undefined && item.id !== null) return String(item.id);\n }\n const label = getDisplayValue(item, field);\n return label ? `${label}-${index}` : String(index);\n };\n\n const toComparableKey = (item: any) => {\n if (item && typeof item === \"object\") {\n if (item.value !== undefined && item.value !== null) return `value:${String(item.value)}`;\n if (item.id !== undefined && item.id !== null) return `id:${String(item.id)}`;\n }\n return `label:${getDisplayValue(item, field)}`;\n };\n\n const removeSelectedAt = (index: number) => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n existing.splice(index, 1);\n onChange?.({ value: existing });\n return;\n }\n onChange?.({ value: null });\n setQuery(\"\");\n setHasCustomQuery(false);\n };\n\n const clearAllSelected = () => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n existing.forEach((item) => onUnselect?.({ value: item }));\n }\n onChange?.({ value: multiple ? [] : null });\n setManageOpen(false);\n };\n\n const commitSelection = (item: any) => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n const exists = existing.some((entry) => toComparableKey(entry) === toComparableKey(item));\n if (!exists) {\n onChange?.({ value: [...existing, item] });\n onSelect?.({ value: item });\n }\n setQuery(\"\");\n setOpen(false);\n setManageOpen(false);\n setActiveIndex(-1);\n return;\n }\n setQuery(\"\");\n onChange?.({ value: item });\n onSelect?.({ value: item });\n setOpen(false);\n setManageOpen(false);\n setActiveIndex(-1);\n setHasCustomQuery(false);\n };\n\n return (\n <div ref={rootRef} id={id} className={cx(\"solid-autocomplete\", className)} style={style}>\n <div className={cx(\"solid-autocomplete-control solid-autocomplete-chip-control\", isFocused && \"is-focused\")}>\n {(multiple || (!multiple && selectedItems.length > 0)) && visibleSelectedItems.map((item, index) => (\n <span key={toItemKey(item, index)} className=\"solid-autocomplete-chip\">\n <span className=\"solid-autocomplete-chip-label\">{getDisplayValue(item, field)}</span>\n {!(disabled || readOnly) && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-remove\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n onUnselect?.({ value: item });\n removeSelectedAt(index);\n }}\n aria-label=\"Remove selection\"\n >\n <X size={12} />\n </button>\n )}\n </span>\n ))}\n {multiple && hiddenSelectedItems.length > 0 && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-manage\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n setOpen(false);\n setManageOpen((prev) => !prev);\n }}\n >\n +{hiddenSelectedItems.length} more\n </button>\n )}\n <input\n className={cx(\"solid-input solid-autocomplete-input solid-autocomplete-inline-input\", inputClassName)}\n value={query}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n onFocus={() => {\n setIsFocused(true);\n setOpen(true);\n setManageOpen(false);\n runCompleteMethod(hasCustomQuery ? query : \"\", true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setQuery(next);\n setHasCustomQuery(true);\n setOpen(true);\n setManageOpen(false);\n runCompleteMethod(next, false);\n }}\n onClick={() => {\n setOpen(true);\n setManageOpen(false);\n }}\n onBlur={(event) => {\n setIsFocused(false);\n if (!forceSelection) return;\n const matched = normalizedSuggestions.find(\n (item) => item.label.toLowerCase() === query.toLowerCase()\n );\n if (matched) {\n onChange?.({ value: matched.raw });\n setQuery(\"\");\n }\n onBlur?.(event);\n }}\n onKeyDown={(event) => {\n if (!open && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n setOpen(true);\n return;\n }\n if (!normalizedSuggestions.length) return;\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setActiveIndex((prev) => (prev + 1) % normalizedSuggestions.length);\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActiveIndex((prev) =>\n prev <= 0 ? normalizedSuggestions.length - 1 : prev - 1\n );\n }\n if (event.key === \"Enter\" && activeIndex >= 0) {\n event.preventDefault();\n commitSelection(normalizedSuggestions[activeIndex].raw);\n }\n if (event.key === \"Backspace\" && !query && selectedItems.length > 0) {\n event.preventDefault();\n removeSelectedAt(selectedItems.length - 1);\n }\n }}\n />\n {dropdown && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-trigger\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n const nextOpen = !open;\n setOpen(nextOpen);\n if (nextOpen) {\n setManageOpen(false);\n }\n if (nextOpen) {\n runCompleteMethod(hasCustomQuery ? query : \"\", true);\n }\n }}\n aria-label=\"Toggle suggestions\"\n disabled={disabled || readOnly}\n >\n {open ? <ChevronUp size={14} /> : <ChevronDown size={14} />}\n </button>\n )}\n </div>\n\n {multiple && manageOpen && selectedItems.length > 0 && (\n <div className=\"solid-autocomplete-manager-panel\">\n <div className=\"solid-autocomplete-manager-header\">\n <div className=\"solid-autocomplete-manager-title\">Selected ({selectedItems.length})</div>\n <button type=\"button\" className=\"solid-autocomplete-manager-clear\" onClick={clearAllSelected}>\n Clear all\n </button>\n </div>\n <div className=\"solid-autocomplete-manager-body\">\n {selectedItems.map((item, index) => (\n <span key={`managed-${toItemKey(item, index)}`} className=\"solid-autocomplete-chip\">\n <span className=\"solid-autocomplete-chip-label\">{getDisplayValue(item, field)}</span>\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-remove\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n onUnselect?.({ value: item });\n removeSelectedAt(index);\n }}\n aria-label=\"Remove selection\"\n >\n <X size={12} />\n </button>\n </span>\n ))}\n </div>\n </div>\n )}\n\n {open && normalizedSuggestions.length > 0 && (() => {\n const panel = (\n <div\n ref={panelRef}\n className=\"solid-autocomplete-panel\"\n role=\"listbox\"\n style={portal ? (portalStyle ?? { visibility: \"hidden\" }) : undefined}\n >\n {normalizedSuggestions.map((item, index) => (\n <button\n key={`${item.label}-${index}`}\n type=\"button\"\n className={cx(\n \"solid-autocomplete-option\",\n activeIndex === index && \"is-active\"\n )}\n onMouseEnter={() => setActiveIndex(index)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitSelection(item.raw)}\n >\n {item.label}\n </button>\n ))}\n </div>\n );\n return portal && typeof document !== \"undefined\"\n ? createPortal(panel, document.body)\n : panel;\n })()}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidAutocomplete.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { ChevronDown, ChevronUp, X } from \"lucide-react\";\n\ntype SolidAutocompleteProps = {\n value?: any;\n suggestions?: any[];\n completeMethod?: (event: { query: string }) => void | Promise<void>;\n onChange?: (event: { value: any }) => void;\n onSelect?: (event: { value: any }) => void;\n onUnselect?: (event: { value: any }) => void;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n readOnly?: boolean;\n emptyMessage?: string;\n id?: string;\n virtualScrollerOptions?: any;\n field?: string;\n placeholder?: string;\n className?: string;\n inputClassName?: string;\n dropdown?: boolean;\n forceSelection?: boolean;\n multiple?: boolean;\n maxVisibleChips?: number;\n style?: React.CSSProperties;\n portal?: boolean;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction getDisplayValue(value: any, field: string) {\n if (value == null) return \"\";\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof value === \"object\") {\n const direct = value?.[field];\n if (direct != null) return String(direct);\n if (value?.label != null) return String(value.label);\n }\n return \"\";\n}\n\nexport function SolidAutocomplete({\n value,\n suggestions = [],\n completeMethod,\n onChange,\n onSelect,\n onUnselect,\n id,\n disabled,\n readOnly,\n emptyMessage,\n field = \"label\",\n placeholder,\n className,\n inputClassName,\n dropdown,\n forceSelection,\n multiple,\n maxVisibleChips = 2,\n style,\n onBlur,\n portal,\n}: SolidAutocompleteProps) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const panelRef = useRef<HTMLDivElement | null>(null);\n const completeTimerRef = useRef<number | null>(null);\n const [open, setOpen] = useState(false);\n const [manageOpen, setManageOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(-1);\n const [isFocused, setIsFocused] = useState(false);\n const [hasCustomQuery, setHasCustomQuery] = useState(false);\n const [portalStyle, setPortalStyle] = useState<React.CSSProperties | null>(null);\n\n useEffect(() => {\n if (multiple) return;\n setQuery(\"\");\n setHasCustomQuery(false);\n }, [value, field, multiple]);\n\n useEffect(() => {\n return () => {\n if (completeTimerRef.current) {\n window.clearTimeout(completeTimerRef.current);\n }\n };\n }, []);\n\n const runCompleteMethod = (nextQuery: string, immediate = false) => {\n if (!completeMethod) return;\n if (completeTimerRef.current) {\n window.clearTimeout(completeTimerRef.current);\n completeTimerRef.current = null;\n }\n if (immediate) {\n void completeMethod({ query: nextQuery });\n return;\n }\n completeTimerRef.current = window.setTimeout(() => {\n void completeMethod({ query: nextQuery });\n }, 140);\n };\n\n useEffect(() => {\n function handleOutsideClick(event: MouseEvent) {\n const target = event.target as Node;\n const insideRoot = rootRef.current?.contains(target);\n const insidePanel = panelRef.current?.contains(target);\n if (!insideRoot && !insidePanel) {\n setOpen(false);\n setManageOpen(false);\n setIsFocused(false);\n }\n }\n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => document.removeEventListener(\"mousedown\", handleOutsideClick);\n }, []);\n\n useLayoutEffect(() => {\n if (!portal || !open) {\n setPortalStyle(null);\n return;\n }\n const updatePosition = () => {\n const el = rootRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n setPortalStyle({\n position: \"fixed\",\n top: rect.bottom + 4,\n left: rect.left,\n right: \"auto\",\n width: rect.width,\n minWidth: rect.width,\n zIndex: 100000,\n pointerEvents: \"auto\",\n });\n };\n updatePosition();\n window.addEventListener(\"resize\", updatePosition);\n window.addEventListener(\"scroll\", updatePosition, true);\n return () => {\n window.removeEventListener(\"resize\", updatePosition);\n window.removeEventListener(\"scroll\", updatePosition, true);\n };\n }, [portal, open]);\n\n const normalizedSuggestions = useMemo(\n () =>\n (suggestions || []).map((item) => ({\n raw: item,\n label: getDisplayValue(item, field),\n })),\n [suggestions, field]\n );\n\n useEffect(() => {\n if (!portal || !open) return;\n const el = panelRef.current;\n if (!el) return;\n const handleWheel = (event: WheelEvent) => {\n if (el.scrollHeight <= el.clientHeight) return;\n event.preventDefault();\n el.scrollTop += event.deltaY;\n };\n el.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => el.removeEventListener(\"wheel\", handleWheel);\n }, [portal, open, normalizedSuggestions.length]);\n\n const selectedItems = useMemo(() => {\n const isRenderable = (item: any) => {\n if (item === null || item === undefined || item === \"\") return false;\n const label = getDisplayValue(item, field);\n return typeof label === \"string\" ? label.trim().length > 0 : !!label;\n };\n\n if (multiple) {\n if (!Array.isArray(value)) return [];\n return value.filter(isRenderable);\n }\n if (value === null || value === undefined || value === \"\") return [];\n if (typeof value === \"string\" || typeof value === \"number\") {\n return isRenderable(value) ? [value] : [];\n }\n return isRenderable(value) ? [value] : [];\n }, [multiple, value, field]);\n\n const visibleSelectedItems = selectedItems.slice(0, maxVisibleChips);\n const hiddenSelectedItems = selectedItems.slice(maxVisibleChips);\n\n useEffect(() => {\n if (multiple && hiddenSelectedItems.length === 0 && manageOpen) {\n setManageOpen(false);\n }\n }, [multiple, hiddenSelectedItems.length, manageOpen]);\n\n const toItemKey = (item: any, index: number) => {\n if (item && typeof item === \"object\") {\n if (item.value !== undefined && item.value !== null) return String(item.value);\n if (item.id !== undefined && item.id !== null) return String(item.id);\n }\n const label = getDisplayValue(item, field);\n return label ? `${label}-${index}` : String(index);\n };\n\n const toComparableKey = (item: any) => {\n if (item && typeof item === \"object\") {\n if (item.value !== undefined && item.value !== null) return `value:${String(item.value)}`;\n if (item.id !== undefined && item.id !== null) return `id:${String(item.id)}`;\n }\n return `label:${getDisplayValue(item, field)}`;\n };\n\n const removeSelectedAt = (index: number) => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n existing.splice(index, 1);\n onChange?.({ value: existing });\n return;\n }\n onChange?.({ value: null });\n setQuery(\"\");\n setHasCustomQuery(false);\n };\n\n const clearAllSelected = () => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n existing.forEach((item) => onUnselect?.({ value: item }));\n }\n onChange?.({ value: multiple ? [] : null });\n setManageOpen(false);\n };\n\n const commitSelection = (item: any) => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n const exists = existing.some((entry) => toComparableKey(entry) === toComparableKey(item));\n if (!exists) {\n onChange?.({ value: [...existing, item] });\n onSelect?.({ value: item });\n }\n setQuery(\"\");\n setOpen(false);\n setManageOpen(false);\n setActiveIndex(-1);\n return;\n }\n setQuery(\"\");\n onChange?.({ value: item });\n onSelect?.({ value: item });\n setOpen(false);\n setManageOpen(false);\n setActiveIndex(-1);\n setHasCustomQuery(false);\n };\n\n return (\n <div ref={rootRef} id={id} className={cx(\"solid-autocomplete\", className)} style={style}>\n <div className={cx(\"solid-autocomplete-control solid-autocomplete-chip-control\", isFocused && \"is-focused\")}>\n {(multiple || (!multiple && selectedItems.length > 0)) && visibleSelectedItems.map((item, index) => (\n <span key={toItemKey(item, index)} className=\"solid-autocomplete-chip\">\n <span className=\"solid-autocomplete-chip-label\">{getDisplayValue(item, field)}</span>\n {!(disabled || readOnly) && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-remove\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n onUnselect?.({ value: item });\n removeSelectedAt(index);\n }}\n aria-label=\"Remove selection\"\n >\n <X size={12} />\n </button>\n )}\n </span>\n ))}\n {multiple && hiddenSelectedItems.length > 0 && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-manage\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n setOpen(false);\n setManageOpen((prev) => !prev);\n }}\n >\n +{hiddenSelectedItems.length} more\n </button>\n )}\n <input\n className={cx(\"solid-input solid-autocomplete-input solid-autocomplete-inline-input\", inputClassName)}\n value={query}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n onFocus={() => {\n setIsFocused(true);\n setOpen(true);\n setManageOpen(false);\n runCompleteMethod(hasCustomQuery ? query : \"\", true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setQuery(next);\n setHasCustomQuery(true);\n setOpen(true);\n setManageOpen(false);\n runCompleteMethod(next, false);\n }}\n onClick={() => {\n setOpen(true);\n setManageOpen(false);\n }}\n onBlur={(event) => {\n setIsFocused(false);\n if (!forceSelection) return;\n const matched = normalizedSuggestions.find(\n (item) => item.label.toLowerCase() === query.toLowerCase()\n );\n if (matched) {\n onChange?.({ value: matched.raw });\n setQuery(\"\");\n }\n onBlur?.(event);\n }}\n onKeyDown={(event) => {\n if (!open && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n setOpen(true);\n return;\n }\n if (!normalizedSuggestions.length) return;\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setActiveIndex((prev) => (prev + 1) % normalizedSuggestions.length);\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActiveIndex((prev) =>\n prev <= 0 ? normalizedSuggestions.length - 1 : prev - 1\n );\n }\n if (event.key === \"Enter\" && activeIndex >= 0) {\n event.preventDefault();\n commitSelection(normalizedSuggestions[activeIndex].raw);\n }\n if (event.key === \"Backspace\" && !query && selectedItems.length > 0) {\n event.preventDefault();\n removeSelectedAt(selectedItems.length - 1);\n }\n }}\n />\n {dropdown && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-trigger\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n const nextOpen = !open;\n setOpen(nextOpen);\n if (nextOpen) {\n setManageOpen(false);\n }\n if (nextOpen) {\n runCompleteMethod(hasCustomQuery ? query : \"\", true);\n }\n }}\n aria-label=\"Toggle suggestions\"\n disabled={disabled || readOnly}\n >\n {open ? <ChevronUp size={14} /> : <ChevronDown size={14} />}\n </button>\n )}\n </div>\n\n {multiple && manageOpen && selectedItems.length > 0 && (\n <div className=\"solid-autocomplete-manager-panel\">\n <div className=\"solid-autocomplete-manager-header\">\n <div className=\"solid-autocomplete-manager-title\">Selected ({selectedItems.length})</div>\n {!(disabled || readOnly) && (\n <button type=\"button\" className=\"solid-autocomplete-manager-clear\" onClick={clearAllSelected}>\n Clear all\n </button>\n )}\n </div>\n <div className=\"solid-autocomplete-manager-body\">\n {selectedItems.map((item, index) => (\n <span key={`managed-${toItemKey(item, index)}`} className=\"solid-autocomplete-chip\">\n <span className=\"solid-autocomplete-chip-label\">{getDisplayValue(item, field)}</span>\n {!(disabled || readOnly) && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-remove\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n onUnselect?.({ value: item });\n removeSelectedAt(index);\n }}\n aria-label=\"Remove selection\"\n >\n <X size={12} />\n </button>\n )}\n </span>\n ))}\n </div>\n </div>\n )}\n\n {open && normalizedSuggestions.length > 0 && (() => {\n const panel = (\n <div\n ref={panelRef}\n className=\"solid-autocomplete-panel\"\n role=\"listbox\"\n style={portal ? (portalStyle ?? { visibility: \"hidden\" }) : undefined}\n >\n {normalizedSuggestions.map((item, index) => (\n <button\n key={`${item.label}-${index}`}\n type=\"button\"\n className={cx(\n \"solid-autocomplete-option\",\n activeIndex === index && \"is-active\"\n )}\n onMouseEnter={() => setActiveIndex(index)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitSelection(item.raw)}\n >\n {item.label}\n </button>\n ))}\n </div>\n );\n return portal && typeof document !== \"undefined\"\n ? createPortal(panel, document.body)\n : panel;\n })()}\n </div>\n );\n}\n"]}
@@ -383,26 +383,30 @@ export function SolidAutocomplete({
383
383
  <div className="solid-autocomplete-manager-panel">
384
384
  <div className="solid-autocomplete-manager-header">
385
385
  <div className="solid-autocomplete-manager-title">Selected ({selectedItems.length})</div>
386
- <button type="button" className="solid-autocomplete-manager-clear" onClick={clearAllSelected}>
387
- Clear all
388
- </button>
386
+ {!(disabled || readOnly) && (
387
+ <button type="button" className="solid-autocomplete-manager-clear" onClick={clearAllSelected}>
388
+ Clear all
389
+ </button>
390
+ )}
389
391
  </div>
390
392
  <div className="solid-autocomplete-manager-body">
391
393
  {selectedItems.map((item, index) => (
392
394
  <span key={`managed-${toItemKey(item, index)}`} className="solid-autocomplete-chip">
393
395
  <span className="solid-autocomplete-chip-label">{getDisplayValue(item, field)}</span>
394
- <button
395
- type="button"
396
- className="solid-autocomplete-chip-remove"
397
- onMouseDown={(event) => event.preventDefault()}
398
- onClick={() => {
399
- onUnselect?.({ value: item });
400
- removeSelectedAt(index);
401
- }}
402
- aria-label="Remove selection"
403
- >
404
- <X size={12} />
405
- </button>
396
+ {!(disabled || readOnly) && (
397
+ <button
398
+ type="button"
399
+ className="solid-autocomplete-chip-remove"
400
+ onMouseDown={(event) => event.preventDefault()}
401
+ onClick={() => {
402
+ onUnselect?.({ value: item });
403
+ removeSelectedAt(index);
404
+ }}
405
+ aria-label="Remove selection"
406
+ >
407
+ <X size={12} />
408
+ </button>
409
+ )}
406
410
  </span>
407
411
  ))}
408
412
  </div>
@@ -4,6 +4,7 @@ type SolidDialogProps = {
4
4
  onOpenChange?: (open: boolean) => void;
5
5
  children?: React.ReactNode;
6
6
  className?: string;
7
+ ariaLabel?: string;
7
8
  contentClassName?: string;
8
9
  overlayClassName?: string;
9
10
  style?: React.CSSProperties;
@@ -22,7 +23,7 @@ type SolidDialogSectionProps = {
22
23
  children: React.ReactNode;
23
24
  className?: string;
24
25
  };
25
- export declare function SolidDialog({ open, onOpenChange, children, className, contentClassName, overlayClassName, style, visible, onHide, header, footer, showHeader, headerClassName, contentStyle, dismissible, }: SolidDialogProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function SolidDialog({ open, onOpenChange, children, className, ariaLabel, contentClassName, overlayClassName, style, visible, onHide, header, footer, showHeader, headerClassName, contentStyle, dismissible, }: SolidDialogProps): import("react/jsx-runtime").JSX.Element;
26
27
  export declare function SolidDialogHeader({ children, className }: SolidDialogSectionProps): import("react/jsx-runtime").JSX.Element;
27
28
  export declare function SolidDialogTitle({ children, className }: SolidDialogSectionProps): import("react/jsx-runtime").JSX.Element;
28
29
  export declare function SolidDialogDescription({ children, className }: SolidDialogSectionProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAuCF,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAkB,GACnB,EAAE,gBAAgB,2CAgDlB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEjF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEhF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAMtF;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAE/E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEjF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAEzE;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EAAE,SAA0B,GACzC,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAaA"}
1
+ {"version":3,"file":"SolidDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAuCF,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAkB,GACnB,EAAE,gBAAgB,2CAiDlB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEjF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEhF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAMtF;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAE/E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,2CAEjF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAEzE;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EAAE,SAA0B,GACzC,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CAaA"}
@@ -36,14 +36,14 @@ function shouldPreventOutsideDismiss(event) {
36
36
  }
37
37
  export function SolidDialog(_a) {
38
38
  var _b;
39
- var open = _a.open, onOpenChange = _a.onOpenChange, children = _a.children, className = _a.className, contentClassName = _a.contentClassName, overlayClassName = _a.overlayClassName, style = _a.style, visible = _a.visible, onHide = _a.onHide, header = _a.header, footer = _a.footer, _c = _a.showHeader, showHeader = _c === void 0 ? true : _c, headerClassName = _a.headerClassName, contentStyle = _a.contentStyle, _d = _a.dismissible, dismissible = _d === void 0 ? true : _d;
39
+ var open = _a.open, onOpenChange = _a.onOpenChange, children = _a.children, className = _a.className, ariaLabel = _a.ariaLabel, contentClassName = _a.contentClassName, overlayClassName = _a.overlayClassName, style = _a.style, visible = _a.visible, onHide = _a.onHide, header = _a.header, footer = _a.footer, _c = _a.showHeader, showHeader = _c === void 0 ? true : _c, headerClassName = _a.headerClassName, contentStyle = _a.contentStyle, _d = _a.dismissible, dismissible = _d === void 0 ? true : _d;
40
40
  var controlledOpen = (_b = open !== null && open !== void 0 ? open : visible) !== null && _b !== void 0 ? _b : false;
41
41
  var handleOpenChange = function (next) {
42
42
  onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(next);
43
43
  if (!next)
44
44
  onHide === null || onHide === void 0 ? void 0 : onHide();
45
45
  };
46
- return (_jsx(Dialog.Root, { open: controlledOpen, onOpenChange: handleOpenChange, children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: cx("solid-radix-dialog-overlay", overlayClassName) }), _jsxs(Dialog.Content, { className: cx("solid-radix-dialog-content", className, contentClassName), style: style !== null && style !== void 0 ? style : contentStyle, onEscapeKeyDown: function (event) {
46
+ return (_jsx(Dialog.Root, { open: controlledOpen, onOpenChange: handleOpenChange, children: _jsxs(Dialog.Portal, { children: [_jsx(Dialog.Overlay, { className: cx("solid-radix-dialog-overlay", overlayClassName) }), _jsxs(Dialog.Content, { className: cx("solid-radix-dialog-content", className, contentClassName), "aria-label": ariaLabel, style: style !== null && style !== void 0 ? style : contentStyle, onEscapeKeyDown: function (event) {
47
47
  if (!dismissible)
48
48
  event.preventDefault();
49
49
  }, onPointerDownOutside: function (event) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\ntype SolidDialogProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n className?: string;\n contentClassName?: string;\n overlayClassName?: string;\n style?: React.CSSProperties;\n // Compatibility props\n visible?: boolean;\n onHide?: () => void;\n modal?: boolean;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n showHeader?: boolean;\n headerClassName?: string;\n contentStyle?: React.CSSProperties;\n breakpoints?: Record<string, string>;\n dismissible?: boolean;\n};\n\ntype SolidDialogSectionProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nconst DATEPICKER_OUTSIDE_SAFE_SELECTOR =\n \"#solid-datepicker-portal, .react-datepicker, .react-datepicker-popper, .react-datepicker__portal, [class*='react-datepicker'], [data-solid-dialog-outside-safe='true']\";\n\nfunction isDatePickerInteractionTarget(target: EventTarget | null): boolean {\n if (!target) return false;\n\n if (target instanceof Element) {\n return Boolean(target.closest(DATEPICKER_OUTSIDE_SAFE_SELECTOR));\n }\n\n if (target instanceof Node) {\n return Boolean(target.parentElement?.closest(DATEPICKER_OUTSIDE_SAFE_SELECTOR));\n }\n\n return false;\n}\n\nfunction shouldPreventOutsideDismiss(event: any): boolean {\n const original = event?.detail?.originalEvent ?? event;\n const target = original?.target as EventTarget | null;\n\n if (isDatePickerInteractionTarget(target)) {\n return true;\n }\n\n if (typeof original?.composedPath === \"function\") {\n const path = original.composedPath() as EventTarget[];\n return path.some((node) => isDatePickerInteractionTarget(node));\n }\n\n return false;\n}\n\nexport function SolidDialog({\n open,\n onOpenChange,\n children,\n className,\n contentClassName,\n overlayClassName,\n style,\n visible,\n onHide,\n header,\n footer,\n showHeader = true,\n headerClassName,\n contentStyle,\n dismissible = true,\n}: SolidDialogProps) {\n const controlledOpen = open ?? visible ?? false;\n const handleOpenChange = (next: boolean) => {\n onOpenChange?.(next);\n if (!next) onHide?.();\n };\n\n return (\n <Dialog.Root open={controlledOpen} onOpenChange={handleOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay className={cx(\"solid-radix-dialog-overlay\", overlayClassName)} />\n <Dialog.Content\n className={cx(\"solid-radix-dialog-content\", className, contentClassName)}\n style={style ?? contentStyle}\n onEscapeKeyDown={(event: any) => {\n if (!dismissible) event.preventDefault();\n }}\n onPointerDownOutside={(event: any) => {\n if (!dismissible) {\n event.preventDefault();\n return;\n }\n if (shouldPreventOutsideDismiss(event)) {\n event.preventDefault();\n }\n }}\n onInteractOutside={(event: any) => {\n if (!dismissible) {\n event.preventDefault();\n return;\n }\n if (shouldPreventOutsideDismiss(event)) {\n event.preventDefault();\n }\n }}\n >\n {showHeader && (header || onHide) ? (\n <SolidDialogHeader className={headerClassName}>\n {header ? <SolidDialogTitle>{header}</SolidDialogTitle> : null}\n <SolidDialogClose aria-label=\"Close\" />\n </SolidDialogHeader>\n ) : null}\n {children}\n {footer ? <SolidDialogFooter>{footer}</SolidDialogFooter> : null}\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n\nexport function SolidDialogHeader({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-header\", className)}>{children}</div>;\n}\n\nexport function SolidDialogTitle({ children, className }: SolidDialogSectionProps) {\n return <Dialog.Title className={cx(\"solid-radix-dialog-title\", className)}>{children}</Dialog.Title>;\n}\n\nexport function SolidDialogDescription({ children, className }: SolidDialogSectionProps) {\n return (\n <Dialog.Description className={cx(\"solid-radix-dialog-description\", className)}>\n {children}\n </Dialog.Description>\n );\n}\n\nexport function SolidDialogBody({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-body\", className)}>{children}</div>;\n}\n\nexport function SolidDialogFooter({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-footer\", className)}>{children}</div>;\n}\n\nexport function SolidDialogSeparator({ className }: { className?: string }) {\n return <div className={cx(\"solid-radix-dialog-separator\", className)} />;\n}\n\nexport function SolidDialogClose({\n className,\n children,\n onClick,\n \"aria-label\": ariaLabel = \"Close dialog\",\n}: {\n className?: string;\n children?: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n \"aria-label\"?: string;\n}) {\n return (\n <Dialog.Close asChild>\n <button\n type=\"button\"\n className={cx(\"solid-radix-dialog-close\", className)}\n aria-label={ariaLabel}\n onClick={onClick}\n >\n {children ?? <X size={16} />}\n </button>\n </Dialog.Close>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\ntype SolidDialogProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n className?: string;\n ariaLabel?: string;\n contentClassName?: string;\n overlayClassName?: string;\n style?: React.CSSProperties;\n // Compatibility props\n visible?: boolean;\n onHide?: () => void;\n modal?: boolean;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n showHeader?: boolean;\n headerClassName?: string;\n contentStyle?: React.CSSProperties;\n breakpoints?: Record<string, string>;\n dismissible?: boolean;\n};\n\ntype SolidDialogSectionProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nconst DATEPICKER_OUTSIDE_SAFE_SELECTOR =\n \"#solid-datepicker-portal, .react-datepicker, .react-datepicker-popper, .react-datepicker__portal, [class*='react-datepicker'], [data-solid-dialog-outside-safe='true']\";\n\nfunction isDatePickerInteractionTarget(target: EventTarget | null): boolean {\n if (!target) return false;\n\n if (target instanceof Element) {\n return Boolean(target.closest(DATEPICKER_OUTSIDE_SAFE_SELECTOR));\n }\n\n if (target instanceof Node) {\n return Boolean(target.parentElement?.closest(DATEPICKER_OUTSIDE_SAFE_SELECTOR));\n }\n\n return false;\n}\n\nfunction shouldPreventOutsideDismiss(event: any): boolean {\n const original = event?.detail?.originalEvent ?? event;\n const target = original?.target as EventTarget | null;\n\n if (isDatePickerInteractionTarget(target)) {\n return true;\n }\n\n if (typeof original?.composedPath === \"function\") {\n const path = original.composedPath() as EventTarget[];\n return path.some((node) => isDatePickerInteractionTarget(node));\n }\n\n return false;\n}\n\nexport function SolidDialog({\n open,\n onOpenChange,\n children,\n className,\n ariaLabel,\n contentClassName,\n overlayClassName,\n style,\n visible,\n onHide,\n header,\n footer,\n showHeader = true,\n headerClassName,\n contentStyle,\n dismissible = true,\n}: SolidDialogProps) {\n const controlledOpen = open ?? visible ?? false;\n const handleOpenChange = (next: boolean) => {\n onOpenChange?.(next);\n if (!next) onHide?.();\n };\n\n return (\n <Dialog.Root open={controlledOpen} onOpenChange={handleOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay className={cx(\"solid-radix-dialog-overlay\", overlayClassName)} />\n <Dialog.Content\n className={cx(\"solid-radix-dialog-content\", className, contentClassName)}\n aria-label={ariaLabel}\n style={style ?? contentStyle}\n onEscapeKeyDown={(event: any) => {\n if (!dismissible) event.preventDefault();\n }}\n onPointerDownOutside={(event: any) => {\n if (!dismissible) {\n event.preventDefault();\n return;\n }\n if (shouldPreventOutsideDismiss(event)) {\n event.preventDefault();\n }\n }}\n onInteractOutside={(event: any) => {\n if (!dismissible) {\n event.preventDefault();\n return;\n }\n if (shouldPreventOutsideDismiss(event)) {\n event.preventDefault();\n }\n }}\n >\n {showHeader && (header || onHide) ? (\n <SolidDialogHeader className={headerClassName}>\n {header ? <SolidDialogTitle>{header}</SolidDialogTitle> : null}\n <SolidDialogClose aria-label=\"Close\" />\n </SolidDialogHeader>\n ) : null}\n {children}\n {footer ? <SolidDialogFooter>{footer}</SolidDialogFooter> : null}\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n\nexport function SolidDialogHeader({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-header\", className)}>{children}</div>;\n}\n\nexport function SolidDialogTitle({ children, className }: SolidDialogSectionProps) {\n return <Dialog.Title className={cx(\"solid-radix-dialog-title\", className)}>{children}</Dialog.Title>;\n}\n\nexport function SolidDialogDescription({ children, className }: SolidDialogSectionProps) {\n return (\n <Dialog.Description className={cx(\"solid-radix-dialog-description\", className)}>\n {children}\n </Dialog.Description>\n );\n}\n\nexport function SolidDialogBody({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-body\", className)}>{children}</div>;\n}\n\nexport function SolidDialogFooter({ children, className }: SolidDialogSectionProps) {\n return <div className={cx(\"solid-radix-dialog-footer\", className)}>{children}</div>;\n}\n\nexport function SolidDialogSeparator({ className }: { className?: string }) {\n return <div className={cx(\"solid-radix-dialog-separator\", className)} />;\n}\n\nexport function SolidDialogClose({\n className,\n children,\n onClick,\n \"aria-label\": ariaLabel = \"Close dialog\",\n}: {\n className?: string;\n children?: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n \"aria-label\"?: string;\n}) {\n return (\n <Dialog.Close asChild>\n <button\n type=\"button\"\n className={cx(\"solid-radix-dialog-close\", className)}\n aria-label={ariaLabel}\n onClick={onClick}\n >\n {children ?? <X size={16} />}\n </button>\n </Dialog.Close>\n );\n}\n"]}
@@ -7,6 +7,7 @@ type SolidDialogProps = {
7
7
  onOpenChange?: (open: boolean) => void;
8
8
  children?: React.ReactNode;
9
9
  className?: string;
10
+ ariaLabel?: string;
10
11
  contentClassName?: string;
11
12
  overlayClassName?: string;
12
13
  style?: React.CSSProperties;
@@ -70,6 +71,7 @@ export function SolidDialog({
70
71
  onOpenChange,
71
72
  children,
72
73
  className,
74
+ ariaLabel,
73
75
  contentClassName,
74
76
  overlayClassName,
75
77
  style,
@@ -94,6 +96,7 @@ export function SolidDialog({
94
96
  <Dialog.Overlay className={cx("solid-radix-dialog-overlay", overlayClassName)} />
95
97
  <Dialog.Content
96
98
  className={cx("solid-radix-dialog-content", className, contentClassName)}
99
+ aria-label={ariaLabel}
97
100
  style={style ?? contentStyle}
98
101
  onEscapeKeyDown={(event: any) => {
99
102
  if (!dismissible) event.preventDefault();
@@ -0,0 +1,7 @@
1
+ export type SolidIconPickerProps = {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ };
5
+ /** Searchable Material Symbols picker for custom SolidX interfaces. */
6
+ export declare function SolidIconPicker({ value, onChange }: SolidIconPickerProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=SolidIconPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidIconPicker.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIconPicker.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AASF,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAoDxE"}
@@ -0,0 +1,43 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ import React from "react";
12
+ import { solidIcons } from "../../helpers/solidIcons";
13
+ import { SolidMaterialSymbol } from "../common/SolidMaterialSymbol";
14
+ import { SolidButton } from "./SolidButton";
15
+ import { SolidDialog, SolidDialogBody, SolidDialogFooter, SolidDialogHeader, SolidDialogTitle } from "./SolidDialog";
16
+ import { SolidInput } from "./SolidInput";
17
+ var categories = __spreadArray(["All"], solidIcons.map(function (_a) {
18
+ var category = _a.category;
19
+ return category;
20
+ }), true);
21
+ var icons = solidIcons.flatMap(function (_a) {
22
+ var category = _a.category, icons = _a.icons;
23
+ return icons.map(function (name) { return ({ name: name, category: category }); });
24
+ });
25
+ function formatIconName(name) {
26
+ return name.split("_").map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); }).join(" ");
27
+ }
28
+ /** Searchable Material Symbols picker for custom SolidX interfaces. */
29
+ export function SolidIconPicker(_a) {
30
+ var value = _a.value, onChange = _a.onChange;
31
+ var _b = React.useState(false), open = _b[0], setOpen = _b[1];
32
+ var _c = React.useState("All"), category = _c[0], setCategory = _c[1];
33
+ var _d = React.useState(""), search = _d[0], setSearch = _d[1];
34
+ var filtered = icons.filter(function (_a) {
35
+ var name = _a.name, iconCategory = _a.category;
36
+ return (category === "All" || iconCategory === category) && name.toLowerCase().includes(search.toLowerCase());
37
+ });
38
+ return (_jsxs("div", { className: "flex items-center gap-3", children: [value ? _jsx(SolidMaterialSymbol, { name: value, size: 32, "aria-label": formatIconName(value) }) : _jsx("span", { className: "text-sm opacity-70", children: "No icon selected" }), _jsx(SolidButton, { type: "button", size: "small", variant: "outline", onClick: function () { return setOpen(true); }, children: value ? "Change icon" : "Select icon" }), value && _jsx(SolidButton, { type: "button", size: "small", variant: "ghost", onClick: function () { return onChange(""); }, children: "Remove" }), _jsxs(SolidDialog, { open: open, onOpenChange: setOpen, className: "p-0", style: { width: "min(900px, 94vw)", maxHeight: "85vh" }, children: [_jsx(SolidDialogHeader, { children: _jsx(SolidDialogTitle, { children: "Select an icon" }) }), _jsxs(SolidDialogBody, { className: "p-4", children: [_jsx("div", { className: "flex flex-wrap gap-2 mb-4", children: categories.map(function (item) { return (_jsx(SolidButton, { type: "button", size: "small", variant: category === item ? "primary" : "outline", onClick: function () { return setCategory(item); }, children: item }, item)); }) }), _jsx(SolidInput, { "aria-label": "Search icons", placeholder: "Search icons", value: search, onChange: function (event) { return setSearch(event.target.value); } }), _jsxs("div", { className: "mt-4 grid grid-cols-4 sm:grid-cols-6 md:grid-cols-8 gap-2 overflow-y-auto", style: { maxHeight: "55vh" }, children: [filtered.map(function (_a) {
39
+ var name = _a.name;
40
+ return (_jsxs("button", { type: "button", className: "flex flex-col items-center justify-center gap-2 rounded-md border p-2 hover:bg-muted", "aria-label": formatIconName(name), title: name, onClick: function () { onChange(name); setOpen(false); }, children: [_jsx(SolidMaterialSymbol, { name: name, size: 24 }), _jsx("span", { className: "text-xs text-center", children: formatIconName(name) })] }, name));
41
+ }), filtered.length === 0 && _jsx("p", { className: "col-span-full text-sm opacity-70", children: "No icons found." })] })] }), _jsx(SolidDialogFooter, { children: _jsx(SolidButton, { type: "button", variant: "outline", onClick: function () { return setOpen(false); }, children: "Done" }) })] })] }));
42
+ }
43
+ //# sourceMappingURL=SolidIconPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidIconPicker.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIconPicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { solidIcons } from \"../../helpers/solidIcons\";\nimport { SolidMaterialSymbol } from \"../common/SolidMaterialSymbol\";\nimport { SolidButton } from \"./SolidButton\";\nimport { SolidDialog, SolidDialogBody, SolidDialogFooter, SolidDialogHeader, SolidDialogTitle } from \"./SolidDialog\";\nimport { SolidInput } from \"./SolidInput\";\n\nexport type SolidIconPickerProps = {\n value: string;\n onChange: (value: string) => void;\n};\n\nconst categories = [\"All\", ...solidIcons.map(({ category }) => category)];\nconst icons = solidIcons.flatMap(({ category, icons }) => icons.map((name) => ({ name, category })));\n\nfunction formatIconName(name: string) {\n return name.split(\"_\").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(\" \");\n}\n\n/** Searchable Material Symbols picker for custom SolidX interfaces. */\nexport function SolidIconPicker({ value, onChange }: SolidIconPickerProps) {\n const [open, setOpen] = React.useState(false);\n const [category, setCategory] = React.useState(\"All\");\n const [search, setSearch] = React.useState(\"\");\n const filtered = icons.filter(({ name, category: iconCategory }) =>\n (category === \"All\" || iconCategory === category) && name.toLowerCase().includes(search.toLowerCase()),\n );\n\n return (\n <div className=\"flex items-center gap-3\">\n {value ? <SolidMaterialSymbol name={value} size={32} aria-label={formatIconName(value)} /> : <span className=\"text-sm opacity-70\">No icon selected</span>}\n <SolidButton type=\"button\" size=\"small\" variant=\"outline\" onClick={() => setOpen(true)}>\n {value ? \"Change icon\" : \"Select icon\"}\n </SolidButton>\n {value && <SolidButton type=\"button\" size=\"small\" variant=\"ghost\" onClick={() => onChange(\"\")}>Remove</SolidButton>}\n\n <SolidDialog open={open} onOpenChange={setOpen} className=\"p-0\" style={{ width: \"min(900px, 94vw)\", maxHeight: \"85vh\" }}>\n <SolidDialogHeader>\n <SolidDialogTitle>Select an icon</SolidDialogTitle>\n </SolidDialogHeader>\n <SolidDialogBody className=\"p-4\">\n <div className=\"flex flex-wrap gap-2 mb-4\">\n {categories.map((item) => (\n <SolidButton key={item} type=\"button\" size=\"small\" variant={category === item ? \"primary\" : \"outline\"} onClick={() => setCategory(item)}>\n {item}\n </SolidButton>\n ))}\n </div>\n <SolidInput aria-label=\"Search icons\" placeholder=\"Search icons\" value={search} onChange={(event) => setSearch(event.target.value)} />\n <div className=\"mt-4 grid grid-cols-4 sm:grid-cols-6 md:grid-cols-8 gap-2 overflow-y-auto\" style={{ maxHeight: \"55vh\" }}>\n {filtered.map(({ name }) => (\n <button\n key={name}\n type=\"button\"\n className=\"flex flex-col items-center justify-center gap-2 rounded-md border p-2 hover:bg-muted\"\n aria-label={formatIconName(name)}\n title={name}\n onClick={() => { onChange(name); setOpen(false); }}\n >\n <SolidMaterialSymbol name={name} size={24} />\n <span className=\"text-xs text-center\">{formatIconName(name)}</span>\n </button>\n ))}\n {filtered.length === 0 && <p className=\"col-span-full text-sm opacity-70\">No icons found.</p>}\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton type=\"button\" variant=\"outline\" onClick={() => setOpen(false)}>Done</SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n </div>\n );\n}\n"]}
@@ -0,0 +1,73 @@
1
+ import React from "react";
2
+ import { solidIcons } from "../../helpers/solidIcons";
3
+ import { SolidMaterialSymbol } from "../common/SolidMaterialSymbol";
4
+ import { SolidButton } from "./SolidButton";
5
+ import { SolidDialog, SolidDialogBody, SolidDialogFooter, SolidDialogHeader, SolidDialogTitle } from "./SolidDialog";
6
+ import { SolidInput } from "./SolidInput";
7
+
8
+ export type SolidIconPickerProps = {
9
+ value: string;
10
+ onChange: (value: string) => void;
11
+ };
12
+
13
+ const categories = ["All", ...solidIcons.map(({ category }) => category)];
14
+ const icons = solidIcons.flatMap(({ category, icons }) => icons.map((name) => ({ name, category })));
15
+
16
+ function formatIconName(name: string) {
17
+ return name.split("_").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
18
+ }
19
+
20
+ /** Searchable Material Symbols picker for custom SolidX interfaces. */
21
+ export function SolidIconPicker({ value, onChange }: SolidIconPickerProps) {
22
+ const [open, setOpen] = React.useState(false);
23
+ const [category, setCategory] = React.useState("All");
24
+ const [search, setSearch] = React.useState("");
25
+ const filtered = icons.filter(({ name, category: iconCategory }) =>
26
+ (category === "All" || iconCategory === category) && name.toLowerCase().includes(search.toLowerCase()),
27
+ );
28
+
29
+ return (
30
+ <div className="flex items-center gap-3">
31
+ {value ? <SolidMaterialSymbol name={value} size={32} aria-label={formatIconName(value)} /> : <span className="text-sm opacity-70">No icon selected</span>}
32
+ <SolidButton type="button" size="small" variant="outline" onClick={() => setOpen(true)}>
33
+ {value ? "Change icon" : "Select icon"}
34
+ </SolidButton>
35
+ {value && <SolidButton type="button" size="small" variant="ghost" onClick={() => onChange("")}>Remove</SolidButton>}
36
+
37
+ <SolidDialog open={open} onOpenChange={setOpen} className="p-0" style={{ width: "min(900px, 94vw)", maxHeight: "85vh" }}>
38
+ <SolidDialogHeader>
39
+ <SolidDialogTitle>Select an icon</SolidDialogTitle>
40
+ </SolidDialogHeader>
41
+ <SolidDialogBody className="p-4">
42
+ <div className="flex flex-wrap gap-2 mb-4">
43
+ {categories.map((item) => (
44
+ <SolidButton key={item} type="button" size="small" variant={category === item ? "primary" : "outline"} onClick={() => setCategory(item)}>
45
+ {item}
46
+ </SolidButton>
47
+ ))}
48
+ </div>
49
+ <SolidInput aria-label="Search icons" placeholder="Search icons" value={search} onChange={(event) => setSearch(event.target.value)} />
50
+ <div className="mt-4 grid grid-cols-4 sm:grid-cols-6 md:grid-cols-8 gap-2 overflow-y-auto" style={{ maxHeight: "55vh" }}>
51
+ {filtered.map(({ name }) => (
52
+ <button
53
+ key={name}
54
+ type="button"
55
+ className="flex flex-col items-center justify-center gap-2 rounded-md border p-2 hover:bg-muted"
56
+ aria-label={formatIconName(name)}
57
+ title={name}
58
+ onClick={() => { onChange(name); setOpen(false); }}
59
+ >
60
+ <SolidMaterialSymbol name={name} size={24} />
61
+ <span className="text-xs text-center">{formatIconName(name)}</span>
62
+ </button>
63
+ ))}
64
+ {filtered.length === 0 && <p className="col-span-full text-sm opacity-70">No icons found.</p>}
65
+ </div>
66
+ </SolidDialogBody>
67
+ <SolidDialogFooter>
68
+ <SolidButton type="button" variant="outline" onClick={() => setOpen(false)}>Done</SolidButton>
69
+ </SolidDialogFooter>
70
+ </SolidDialog>
71
+ </div>
72
+ );
73
+ }
@@ -30,4 +30,5 @@ export { SolidCodeEditor } from "./SolidCodeEditor";
30
30
  export { SolidRichTextEditor } from "./SolidRichTextEditor";
31
31
  export { SolidLightbox } from "./SolidLightbox";
32
32
  export { SolidIcon, type SolidIconName, type SolidIconMeta, parseSolidIconMeta, normalizeSolidIconName } from "./SolidIcon";
33
+ export { SolidIconPicker, type SolidIconPickerProps } from "./SolidIconPicker";
33
34
  //# sourceMappingURL=index.d.ts.map