@solidxai/core-ui 0.1.8-beta.9 → 0.1.8

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 (321) hide show
  1. package/README.md +2 -2
  2. package/dist/adapters/auth/getSession.d.ts.map +1 -1
  3. package/dist/adapters/auth/getSession.js +1 -1
  4. package/dist/adapters/auth/getSession.js.map +1 -1
  5. package/dist/adapters/auth/getSession.ts +1 -0
  6. package/dist/adapters/auth/helper.d.ts.map +1 -1
  7. package/dist/adapters/auth/helper.js +1 -0
  8. package/dist/adapters/auth/helper.js.map +1 -1
  9. package/dist/adapters/auth/helper.ts +3 -1
  10. package/dist/adapters/auth/signIn.d.ts.map +1 -1
  11. package/dist/adapters/auth/signIn.js +1 -0
  12. package/dist/adapters/auth/signIn.js.map +1 -1
  13. package/dist/adapters/auth/signIn.ts +3 -1
  14. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
  15. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  16. package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
  17. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  18. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
  19. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  20. package/dist/adapters/auth/signOut.js +7 -1
  21. package/dist/adapters/auth/signOut.js.map +1 -1
  22. package/dist/adapters/auth/signOut.ts +7 -1
  23. package/dist/adapters/auth/types.d.ts +1 -0
  24. package/dist/adapters/auth/types.d.ts.map +1 -1
  25. package/dist/adapters/auth/types.js.map +1 -1
  26. package/dist/adapters/auth/types.ts +1 -0
  27. package/dist/components/auth/AuthLayout.d.ts +1 -1
  28. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  29. package/dist/components/auth/AuthLayout.js +87 -18
  30. package/dist/components/auth/AuthLayout.js.map +1 -1
  31. package/dist/components/auth/AuthLayout.tsx +35 -11
  32. package/dist/components/auth/AuthSettingsContext.d.ts +10 -0
  33. package/dist/components/auth/AuthSettingsContext.d.ts.map +1 -0
  34. package/dist/components/auth/AuthSettingsContext.js +49 -0
  35. package/dist/components/auth/AuthSettingsContext.js.map +1 -0
  36. package/dist/components/auth/AuthSettingsContext.tsx +19 -0
  37. package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
  38. package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
  39. package/dist/components/auth/FacebookAuthChecking.js +98 -0
  40. package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
  41. package/dist/components/auth/FacebookAuthChecking.tsx +59 -0
  42. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  43. package/dist/components/auth/ForgotPasswordThankYou.js +2 -6
  44. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  45. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -7
  46. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  47. package/dist/components/auth/GoogleAuthChecking.js +10 -16
  48. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  49. package/dist/components/auth/GoogleAuthChecking.tsx +2 -7
  50. package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
  51. package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
  52. package/dist/components/auth/MicrosoftAuthChecking.js +98 -0
  53. package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
  54. package/dist/components/auth/MicrosoftAuthChecking.tsx +59 -0
  55. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  56. package/dist/components/auth/SolidForgotPassword.js +2 -6
  57. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  58. package/dist/components/auth/SolidForgotPassword.tsx +2 -7
  59. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  60. package/dist/components/auth/SolidInitialLoginOtp.js +13 -22
  61. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  62. package/dist/components/auth/SolidInitialLoginOtp.tsx +4 -12
  63. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  64. package/dist/components/auth/SolidInitiateRegisterOtp.js +27 -14
  65. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  66. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +27 -15
  67. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  68. package/dist/components/auth/SolidLogin.js +18 -23
  69. package/dist/components/auth/SolidLogin.js.map +1 -1
  70. package/dist/components/auth/SolidLogin.tsx +18 -15
  71. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  72. package/dist/components/auth/SolidRegister.js +50 -22
  73. package/dist/components/auth/SolidRegister.js.map +1 -1
  74. package/dist/components/auth/SolidRegister.tsx +89 -36
  75. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  76. package/dist/components/auth/SolidResetPassword.js +2 -6
  77. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  78. package/dist/components/auth/SolidResetPassword.tsx +2 -6
  79. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  80. package/dist/components/common/GeneralSettings.js +235 -151
  81. package/dist/components/common/GeneralSettings.js.map +1 -1
  82. package/dist/components/common/GeneralSettings.tsx +1109 -776
  83. package/dist/components/common/SettingsComponent.d.ts +2 -0
  84. package/dist/components/common/SettingsComponent.d.ts.map +1 -0
  85. package/dist/components/common/SettingsComponent.js +351 -0
  86. package/dist/components/common/SettingsComponent.js.map +1 -0
  87. package/dist/components/common/SettingsComponent.module.css +421 -0
  88. package/dist/components/common/SettingsComponent.tsx +582 -0
  89. package/dist/components/common/SocialMediaLogin.d.ts +8 -1
  90. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  91. package/dist/components/common/SocialMediaLogin.js +6 -13
  92. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  93. package/dist/components/common/SocialMediaLogin.tsx +120 -58
  94. package/dist/components/common/SolidExport.d.ts.map +1 -1
  95. package/dist/components/common/SolidExport.js +1 -1
  96. package/dist/components/common/SolidExport.js.map +1 -1
  97. package/dist/components/common/SolidExport.tsx +2 -1
  98. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  99. package/dist/components/common/SolidFormStepper.js +2 -1
  100. package/dist/components/common/SolidFormStepper.js.map +1 -1
  101. package/dist/components/common/SolidFormStepper.tsx +2 -1
  102. package/dist/components/common/solid-export.css +26 -0
  103. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  104. package/dist/components/core/card/SolidCardView.js +24 -25
  105. package/dist/components/core/card/SolidCardView.js.map +1 -1
  106. package/dist/components/core/card/SolidCardView.tsx +22 -27
  107. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  108. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  109. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  110. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  111. package/dist/components/core/chatter/SolidChatter.js +39 -9
  112. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  113. package/dist/components/core/chatter/SolidChatter.tsx +42 -7
  114. package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
  115. package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
  116. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  117. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
  118. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
  119. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  120. package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
  121. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  122. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
  123. package/dist/components/core/chatter/chatter.module.css +0 -3
  124. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  125. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
  126. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  127. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
  128. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  129. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
  130. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  131. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
  132. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  133. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  134. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  135. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts +7 -0
  136. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts.map +1 -0
  137. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js +75 -0
  138. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js.map +1 -0
  139. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.ts +45 -0
  140. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
  141. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
  142. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
  143. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
  144. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
  145. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  146. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  147. package/dist/components/core/form/SolidFormActionHeader.js +5 -3
  148. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  149. package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
  150. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  151. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  152. package/dist/components/core/form/SolidFormLayouts.tsx +1 -1
  153. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  154. package/dist/components/core/form/SolidFormView.js +117 -27
  155. package/dist/components/core/form/SolidFormView.js.map +1 -1
  156. package/dist/components/core/form/SolidFormView.tsx +107 -9
  157. package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
  158. package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
  159. package/dist/components/core/form/fields/SolidComputedField.js +128 -0
  160. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
  161. package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
  162. package/dist/components/core/form/fields/SolidDateTimeField.js +1 -1
  163. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  164. package/dist/components/core/form/fields/SolidDateTimeField.tsx +1 -1
  165. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  166. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +35 -24
  167. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  168. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +30 -14
  169. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  170. package/dist/components/core/form/fields/SolidSelectionStaticField.js +29 -28
  171. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  172. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +17 -12
  173. package/dist/components/core/form/fields/SolidTimeField.js +1 -1
  174. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  175. package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
  176. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
  177. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +3 -3
  178. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  179. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +0 -5
  180. package/dist/components/core/kanban/KanbanBoard.js +1 -1
  181. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  182. package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
  183. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  184. package/dist/components/core/kanban/SolidKanbanView.js +216 -102
  185. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  186. package/dist/components/core/kanban/SolidKanbanView.tsx +204 -72
  187. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  188. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  189. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  190. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  191. package/dist/components/core/list/SolidDataTable.js +6 -5
  192. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  193. package/dist/components/core/list/SolidDataTable.tsx +6 -5
  194. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  195. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -3
  196. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  197. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +1 -0
  198. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  199. package/dist/components/core/list/SolidListView.js +60 -63
  200. package/dist/components/core/list/SolidListView.js.map +1 -1
  201. package/dist/components/core/list/SolidListView.tsx +43 -48
  202. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  203. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  204. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  205. package/dist/components/core/list/SolidListViewRowActionsMenu.js +2 -2
  206. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  207. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +2 -2
  208. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +1 -1
  209. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  210. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +1 -1
  211. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  212. package/dist/components/layout/user-profile-menu.js +15 -14
  213. package/dist/components/layout/user-profile-menu.js.map +1 -1
  214. package/dist/components/layout/user-profile-menu.tsx +8 -6
  215. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  216. package/dist/components/shad-cn-ui/SolidAutocomplete.js +9 -1
  217. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  218. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +10 -1
  219. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  220. package/dist/components/shad-cn-ui/SolidDatePicker.js +1 -1
  221. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  222. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +2 -0
  223. package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
  224. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  225. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  226. package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
  227. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  228. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  229. package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
  230. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  231. package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
  232. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
  233. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
  234. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
  235. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
  236. package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
  237. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  238. package/dist/components/shad-cn-ui/SolidTabs.js +2 -2
  239. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  240. package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -1
  241. package/dist/helpers/hydrateRelationRules.js +1 -1
  242. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  243. package/dist/helpers/hydrateRelationRules.ts +1 -1
  244. package/dist/helpers/permissions.js +2 -2
  245. package/dist/helpers/permissions.js.map +1 -1
  246. package/dist/helpers/permissions.ts +2 -2
  247. package/dist/helpers/registry.d.ts +2 -2
  248. package/dist/helpers/registry.d.ts.map +1 -1
  249. package/dist/helpers/registry.js +6 -0
  250. package/dist/helpers/registry.js.map +1 -1
  251. package/dist/helpers/registry.ts +9 -2
  252. package/dist/helpers/settingsPayload.d.ts +32 -0
  253. package/dist/helpers/settingsPayload.d.ts.map +1 -0
  254. package/dist/helpers/settingsPayload.js +72 -0
  255. package/dist/helpers/settingsPayload.js.map +1 -0
  256. package/dist/helpers/settingsPayload.ts +125 -0
  257. package/dist/index.d.ts +4 -0
  258. package/dist/index.d.ts.map +1 -1
  259. package/dist/index.js +4 -0
  260. package/dist/index.js.map +1 -1
  261. package/dist/index.ts +4 -0
  262. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  263. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  264. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  265. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  266. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  267. package/dist/redux/api/solidEntityApi.js +1 -1
  268. package/dist/redux/api/solidEntityApi.js.map +1 -1
  269. package/dist/redux/api/solidEntityApi.tsx +1 -1
  270. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  271. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  272. package/dist/resources/globals.css +20 -6
  273. package/dist/resources/shadcn-base.css +248 -87
  274. package/dist/resources/solid-responsive.css +22 -4
  275. package/dist/routes/AppEventListener.js +1 -1
  276. package/dist/routes/AppEventListener.js.map +1 -1
  277. package/dist/routes/AppEventListener.tsx +1 -1
  278. package/dist/routes/pages/admin/core/CardPage.js +1 -1
  279. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  280. package/dist/routes/pages/admin/core/CardPage.tsx +1 -1
  281. package/dist/routes/pages/admin/core/FormPage.js +1 -1
  282. package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
  283. package/dist/routes/pages/admin/core/FormPage.tsx +1 -1
  284. package/dist/routes/pages/admin/core/KanbanPage.js +1 -1
  285. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  286. package/dist/routes/pages/admin/core/KanbanPage.tsx +1 -1
  287. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  288. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  289. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  290. package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
  291. package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
  292. package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
  293. package/dist/routes/pages/admin/core/TreePage.js +1 -1
  294. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  295. package/dist/routes/pages/admin/core/TreePage.tsx +1 -1
  296. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
  297. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
  298. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
  299. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
  300. package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
  301. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
  302. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
  303. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
  304. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
  305. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
  306. package/dist/routes/solidRoutes.d.ts.map +1 -1
  307. package/dist/routes/solidRoutes.js +5 -1
  308. package/dist/routes/solidRoutes.js.map +1 -1
  309. package/dist/routes/solidRoutes.tsx +5 -1
  310. package/dist/routes/types.d.ts +1 -1
  311. package/dist/routes/types.d.ts.map +1 -1
  312. package/dist/routes/types.js.map +1 -1
  313. package/dist/routes/types.ts +2 -0
  314. package/dist/types/extension-registry.d.ts +1 -0
  315. package/dist/types/extension-registry.d.ts.map +1 -1
  316. package/dist/types/extension-registry.js +1 -0
  317. package/dist/types/extension-registry.js.map +1 -1
  318. package/dist/types/extension-registry.ts +1 -0
  319. package/dist/types/index.d.ts +2 -0
  320. package/dist/types/solid-core.d.ts +11 -0
  321. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"user-profile-menu.js","sourceRoot":"","sources":["../../../src/components/layout/user-profile-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolidAccountSettings } from \"../core/common/SolidAccountSettings/SolidAccountSettings\";\nimport { useGetUserQuery } from \"../../redux/api/userApi\";\nimport { handleLogout } from \"../../adapters/auth/handleLogout\";\nimport { useLazyGetSolidSettingsQuery } from \"../../redux/api/solidSettingsApi\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { SolidButton } from \"../shad-cn-ui/SolidButton\";\nimport { SolidIcon, parseSolidIconMeta } from \"../shad-cn-ui/SolidIcon\";\n\ntype InlineToast = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary?: string;\n detail?: string;\n sticky?: boolean;\n life?: number;\n};\n\nconst UserProfileMenu = () => {\n const menuRef = useRef<HTMLDivElement>(null);\n const [showProfileSettingsDialog, setShowProfileSettingsDialog] = useState(false);\n const [menuOpen, setMenuOpen] = useState(false);\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n const [toast, setToast] = useState<InlineToast | null>(null);\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n\n const session = useSession();\n const userId = session?.data?.user?.id;\n\n const { data: userData } = useGetUserQuery(userId, {\n skip: !userId,\n });\n const [confirmLogout, setConfirmLogout] = useState(false);\n\n useEffect(() => {\n if (!menuOpen) return;\n const onPointerDown = (event: MouseEvent) => {\n if (!menuRef.current) return;\n if (!menuRef.current.contains(event.target as Node)) {\n setMenuOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n return () => document.removeEventListener(\"mousedown\", onPointerDown);\n }, [menuOpen]);\n\n useEffect(() => {\n if (!toast || toast.sticky) return;\n const timer = window.setTimeout(() => setToast((current) => (current?.id === toast.id ? null : current)), toast.life ?? 3000);\n return () => window.clearTimeout(timer);\n }, [toast]);\n\n const toastRef = useMemo(\n () => ({\n current: {\n show: (message: Partial<InlineToast>) => {\n const nextToast: InlineToast = {\n id: Date.now(),\n severity: (message.severity as InlineToast[\"severity\"]) || \"info\",\n summary: message.summary,\n detail: message.detail,\n sticky: Boolean(message.sticky),\n life: typeof message.life === \"number\" ? message.life : 3000,\n };\n setToast(nextToast);\n },\n },\n }),\n []\n );\n\n const getInitials = (value: string) => {\n if (!value) return \"\";\n\n const email = value.includes('@') ? value.split('@')[0] : value;\n return email[0]?.toUpperCase() || \"\";\n };\n\n const getColorFromInitials = (initials: string) => {\n let hash = 0;\n for (let i = 0; i < initials.length; i++) {\n hash = initials.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash) % 360;\n return `hsl(${hue}, 60%, 60%)`;\n };\n\n\n const value = userData?.data?.email;\n const initials = getInitials(value);\n const bgColor = getColorFromInitials(initials);\n const roleLabel = userData?.data?.roles\n ?.filter((role: any) => role.name !== \"Internal User\")\n .map((role: any) => role.name)\n .join(\" | \");\n const displayName = solidSettingsData?.data?.enableUsername\n ? userData?.data?.username\n : userData?.data?.email;\n const primaryRole = roleLabel?.split(\"|\")?.[0]?.trim() || \"User\";\n const toastSeverityClass =\n toast?.severity === \"error\"\n ? \"is-error\"\n : toast?.severity === \"success\"\n ? \"is-success\"\n : toast?.severity === \"warn\"\n ? \"is-warn\"\n : \"is-info\";\n\n const UserProfileAvatar = ({ compact = false }: { compact?: boolean }) => {\n const imageUrl = userData?.data?._media?.profilePicture?.[0]?._full_url;\n const sizeClass = compact ? \"is-compact\" : \"\";\n return (\n <span\n className={`solid-user-avatar ${sizeClass}`}\n style={imageUrl ? undefined : { backgroundColor: bgColor }}\n aria-hidden=\"true\"\n >\n {imageUrl ? (\n <img src={imageUrl} alt=\"Profile\" className=\"solid-user-avatar-image\" />\n ) : (\n <span className=\"solid-user-avatar-text\">{initials || \"U\"}</span>\n )}\n </span>\n );\n };\n\n return (\n <div className=\"userProfile\">\n {toast && (\n <div className={`solid-inline-toast ${toastSeverityClass}`} role=\"status\" aria-live=\"polite\">\n <div className=\"solid-inline-toast-body\">\n {toast.summary && <div className=\"solid-inline-toast-title\">{toast.summary}</div>}\n {toast.detail && <div className=\"solid-inline-toast-detail\">{toast.detail}</div>}\n </div>\n <button\n type=\"button\"\n className=\"solid-inline-toast-close\"\n onClick={() => setToast(null)}\n aria-label=\"Close notification\"\n >\n ×\n </button>\n </div>\n )}\n <div className=\"solid-user-menu\" ref={menuRef}>\n <button\n type=\"button\"\n className=\"solid-user-menu-trigger\"\n onClick={() => setMenuOpen((prev) => !prev)}\n aria-haspopup=\"menu\"\n aria-expanded={menuOpen}\n aria-label=\"Open user menu\"\n >\n <span className=\"solid-user-menu-trigger-left\">\n <UserProfileAvatar compact />\n <span className=\"solid-user-menu-trigger-meta\">\n <span className=\"solid-user-menu-trigger-name\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-trigger-role\">{primaryRole}</span>\n </span>\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7 5.83301L3.5 9.33301H10.5L7 5.83301Z\" fill=\"currentColor\" />\n </svg>\n </button>\n\n {menuOpen && (\n <div className=\"solid-user-menu-content\" role=\"menu\">\n <div className=\"solid-user-menu-header\">\n <UserProfileAvatar />\n <div className=\"solid-user-menu-meta\">\n <span className=\"solid-user-menu-title\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-subtitle\">{roleLabel || \"User\"}</span>\n </div>\n </div>\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n setShowProfileSettingsDialog(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8.1191 16.5C7.7816 16.5 7.49098 16.3875 7.24723 16.1625C7.00348 15.9375 6.8566 15.6625 6.8066 15.3375L6.63785 14.1C6.47535 14.0375 6.32223 13.9625 6.17848 13.875C6.03473 13.7875 5.8941 13.6938 5.7566 13.5938L4.5941 14.0813C4.2816 14.2188 3.9691 14.2313 3.6566 14.1188C3.3441 14.0063 3.10035 13.8063 2.92535 13.5188L2.0441 11.9813C1.8691 11.6938 1.8191 11.3875 1.8941 11.0625C1.9691 10.7375 2.13785 10.4688 2.40035 10.2563L3.3941 9.50625C3.3816 9.41875 3.37535 9.33438 3.37535 9.25313V8.74688C3.37535 8.66563 3.3816 8.58125 3.3941 8.49375L2.40035 7.74375C2.13785 7.53125 1.9691 7.2625 1.8941 6.9375C1.8191 6.6125 1.8691 6.30625 2.0441 6.01875L2.92535 4.48125C3.10035 4.19375 3.3441 3.99375 3.6566 3.88125C3.9691 3.76875 4.2816 3.78125 4.5941 3.91875L5.7566 4.40625C5.8941 4.30625 6.03785 4.2125 6.18785 4.125C6.33785 4.0375 6.48785 3.9625 6.63785 3.9L6.8066 2.6625C6.8566 2.3375 7.00348 2.0625 7.24723 1.8375C7.49098 1.6125 7.7816 1.5 8.1191 1.5H9.8816C10.2191 1.5 10.5097 1.6125 10.7535 1.8375C10.9972 2.0625 11.1441 2.3375 11.1941 2.6625L11.3629 3.9C11.5254 3.9625 11.6785 4.0375 11.8222 4.125C11.966 4.2125 12.1066 4.30625 12.2441 4.40625L13.4066 3.91875C13.7191 3.78125 14.0316 3.76875 14.3441 3.88125C14.6566 3.99375 14.9004 4.19375 15.0754 4.48125L15.9566 6.01875C16.1316 6.30625 16.1816 6.6125 16.1066 6.9375C16.0316 7.2625 15.8629 7.53125 15.6004 7.74375L14.6066 8.49375C14.6191 8.58125 14.6254 8.66563 14.6254 8.74688V9.25313C14.6254 9.33438 14.6129 9.41875 14.5879 9.50625L15.5816 10.2563C15.8441 10.4688 16.0129 10.7375 16.0879 11.0625C16.1629 11.3875 16.1129 11.6938 15.9379 11.9813L15.0379 13.5188C14.8629 13.8063 14.6191 14.0063 14.3066 14.1188C13.9941 14.2313 13.6816 14.2188 13.3691 14.0813L12.2441 13.5938C12.1066 13.6938 11.9629 13.7875 11.8129 13.875C11.6629 13.9625 11.5129 14.0375 11.3629 14.1L11.1941 15.3375C11.1441 15.6625 10.9972 15.9375 10.7535 16.1625C10.5097 16.3875 10.2191 16.5 9.8816 16.5H8.1191ZM8.25035 15H9.7316L9.9941 13.0125C10.3816 12.9125 10.741 12.7656 11.0722 12.5719C11.4035 12.3781 11.7066 12.1438 11.9816 11.8688L13.8379 12.6375L14.5691 11.3625L12.9566 10.1438C13.0191 9.96875 13.0629 9.78438 13.0879 9.59063C13.1129 9.39688 13.1254 9.2 13.1254 9C13.1254 8.8 13.1129 8.60313 13.0879 8.40938C13.0629 8.21563 13.0191 8.03125 12.9566 7.85625L14.5691 6.6375L13.8379 5.3625L11.9816 6.15C11.7066 5.8625 11.4035 5.62188 11.0722 5.42813C10.741 5.23438 10.3816 5.0875 9.9941 4.9875L9.75035 3H8.2691L8.0066 4.9875C7.6191 5.0875 7.25973 5.23438 6.92848 5.42813C6.59723 5.62188 6.2941 5.85625 6.0191 6.13125L4.16285 5.3625L3.4316 6.6375L5.0441 7.8375C4.9816 8.025 4.93785 8.2125 4.91285 8.4C4.88785 8.5875 4.87535 8.7875 4.87535 9C4.87535 9.2 4.88785 9.39375 4.91285 9.58125C4.93785 9.76875 4.9816 9.95625 5.0441 10.1438L3.4316 11.3625L4.16285 12.6375L6.0191 11.85C6.2941 12.1375 6.59723 12.3781 6.92848 12.5719C7.25973 12.7656 7.6191 12.9125 8.0066 13.0125L8.25035 15ZM9.03785 11.625C9.76285 11.625 10.3816 11.3688 10.8941 10.8563C11.4066 10.3438 11.6629 9.725 11.6629 9C11.6629 8.275 11.4066 7.65625 10.8941 7.14375C10.3816 6.63125 9.76285 6.375 9.03785 6.375C8.30035 6.375 7.67848 6.63125 7.17223 7.14375C6.66598 7.65625 6.41285 8.275 6.41285 9C6.41285 9.725 6.66598 10.3438 7.17223 10.8563C7.67848 11.3688 8.30035 11.625 9.03785 11.625Z\" fill=\"currentColor\" />\n </svg>\n <span>Account Settings</span>\n </button>\n\n {solidSettingsData?.data?.contactSupportEmail && (\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n window.location.href = `mailto:${solidSettingsData?.data?.contactSupportEmail}`;\n }}\n >\n {solidSettingsData?.data?.contactSupportIcon ? (\n (() => { const m = parseSolidIconMeta(solidSettingsData?.data?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden=\"true\" /> : <i className={solidSettingsData?.data?.contactSupportIcon} aria-hidden=\"true\" />; })()\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 4.5C3 3.67157 3.67157 3 4.5 3H13.5C14.3284 3 15 3.67157 15 4.5V13.5C15 14.3284 14.3284 15 13.5 15H4.5C3.67157 15 3 14.3284 3 13.5V4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n <path d=\"M4.125 5.25L9 9L13.875 5.25\" stroke=\"currentColor\" strokeWidth=\"1.25\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n <span>{solidSettingsData?.data?.contactSupportDisplayName || \"Contact Support\"}</span>\n </button>\n )}\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item is-danger\"\n onClick={() => {\n setMenuOpen(false);\n setConfirmLogout(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.75 15.75C3.3375 15.75 2.98438 15.6031 2.69063 15.3094C2.39687 15.0156 2.25 14.6625 2.25 14.25V3.75C2.25 3.3375 2.39687 2.98438 2.69063 2.69063C2.98438 2.39687 3.3375 2.25 3.75 2.25H9V3.75H3.75V14.25H9V15.75H3.75ZM12 12.75L10.9688 11.6625L12.8813 9.75H6.75V8.25H12.8813L10.9688 6.3375L12 5.25L15.75 9L12 12.75Z\" fill=\"currentColor\" />\n </svg>\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n {confirmLogout && (\n <div\n className=\"solid-dialog-backdrop\"\n role=\"presentation\"\n onClick={() => setConfirmLogout(false)}\n >\n <div\n className=\"solid-confirm-dialog solid-shadcn-confirm-dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"solid-logout-dialog-title\"\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"solid-shadcn-dialog-head\">\n <h3 id=\"solid-logout-dialog-title\">Logout</h3>\n </div>\n <div className=\"solid-shadcn-dialog-sep\" />\n <div className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to log out?</p>\n </div>\n <div className=\"solid-shadcn-dialog-actions\">\n <SolidButton size=\"sm\" variant=\"destructive\" onClick={() => handleLogout({ toast: toastRef })}>\n Logout\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={() => setConfirmLogout(false)}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n )}\n {showProfileSettingsDialog &&\n <SolidAccountSettings\n showProfileSettingsDialog={showProfileSettingsDialog}\n setShowProfileSettingsDialog={setShowProfileSettingsDialog}\n />\n }\n </div>\n );\n};\n\nexport default UserProfileMenu;\n"]}
1
+ {"version":3,"file":"user-profile-menu.js","sourceRoot":"","sources":["../../../src/components/layout/user-profile-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { SolidAccountSettings } from \"../core/common/SolidAccountSettings/SolidAccountSettings\";\nimport { useGetUserQuery } from \"../../redux/api/userApi\";\nimport { handleLogout } from \"../../adapters/auth/handleLogout\";\nimport { useLazyGetSolidSettingsQuery } from \"../../redux/api/solidSettingsApi\";\nimport { useSession } from \"../../hooks/useSession\";\nimport { SolidButton } from \"../shad-cn-ui/SolidButton\";\nimport { SolidIcon, parseSolidIconMeta } from \"../shad-cn-ui/SolidIcon\";\nimport { getSettingsMap } from \"../../helpers/settingsPayload\";\n\ntype InlineToast = {\n id: number;\n severity: \"success\" | \"error\" | \"info\" | \"warn\";\n summary?: string;\n detail?: string;\n sticky?: boolean;\n life?: number;\n};\n\nconst UserProfileMenu = () => {\n const menuRef = useRef<HTMLDivElement>(null);\n const [showProfileSettingsDialog, setShowProfileSettingsDialog] = useState(false);\n const [menuOpen, setMenuOpen] = useState(false);\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n const [toast, setToast] = useState<InlineToast | null>(null);\n\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [trigger])\n const settingsMap = useMemo(() => getSettingsMap(solidSettingsData), [solidSettingsData]);\n\n const session = useSession();\n const userId = session?.data?.user?.id;\n\n const { data: userData } = useGetUserQuery(userId, {\n skip: !userId,\n });\n const [confirmLogout, setConfirmLogout] = useState(false);\n\n useEffect(() => {\n if (!menuOpen) return;\n const onPointerDown = (event: MouseEvent) => {\n if (!menuRef.current) return;\n if (!menuRef.current.contains(event.target as Node)) {\n setMenuOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n return () => document.removeEventListener(\"mousedown\", onPointerDown);\n }, [menuOpen]);\n\n useEffect(() => {\n if (!toast || toast.sticky) return;\n const timer = window.setTimeout(() => setToast((current) => (current?.id === toast.id ? null : current)), toast.life ?? 3000);\n return () => window.clearTimeout(timer);\n }, [toast]);\n\n const toastRef = useMemo(\n () => ({\n current: {\n show: (message: Partial<InlineToast>) => {\n const nextToast: InlineToast = {\n id: Date.now(),\n severity: (message.severity as InlineToast[\"severity\"]) || \"info\",\n summary: message.summary,\n detail: message.detail,\n sticky: Boolean(message.sticky),\n life: typeof message.life === \"number\" ? message.life : 3000,\n };\n setToast(nextToast);\n },\n },\n }),\n []\n );\n\n const getInitials = (value: string) => {\n if (!value) return \"\";\n\n const email = value.includes('@') ? value.split('@')[0] : value;\n return email[0]?.toUpperCase() || \"\";\n };\n\n const getColorFromInitials = (initials: string) => {\n let hash = 0;\n for (let i = 0; i < initials.length; i++) {\n hash = initials.charCodeAt(i) + ((hash << 5) - hash);\n }\n const hue = Math.abs(hash) % 360;\n return `hsl(${hue}, 60%, 60%)`;\n };\n\n\n const value = userData?.data?.email;\n const initials = getInitials(value);\n const bgColor = getColorFromInitials(initials);\n const roleLabel = userData?.data?.roles\n ?.filter((role: any) => role.name !== \"Internal User\")\n .map((role: any) => role.name)\n .join(\" | \");\n const displayName = settingsMap?.enableUsername\n ? userData?.data?.username\n : userData?.data?.email;\n const primaryRole = roleLabel?.split(\"|\")?.[0]?.trim() || \"User\";\n const toastSeverityClass =\n toast?.severity === \"error\"\n ? \"is-error\"\n : toast?.severity === \"success\"\n ? \"is-success\"\n : toast?.severity === \"warn\"\n ? \"is-warn\"\n : \"is-info\";\n\n const UserProfileAvatar = ({ compact = false }: { compact?: boolean }) => {\n const imageUrl = userData?.data?._media?.profilePicture?.[0]?._full_url;\n const sizeClass = compact ? \"is-compact\" : \"\";\n return (\n <span\n className={`solid-user-avatar ${sizeClass}`}\n style={imageUrl ? undefined : { backgroundColor: bgColor }}\n aria-hidden=\"true\"\n >\n {imageUrl ? (\n <img src={imageUrl} alt=\"Profile\" className=\"solid-user-avatar-image\" />\n ) : (\n <span className=\"solid-user-avatar-text\">{initials || \"U\"}</span>\n )}\n </span>\n );\n };\n\n return (\n <div className=\"userProfile\">\n {toast && (\n <div className={`solid-inline-toast ${toastSeverityClass}`} role=\"status\" aria-live=\"polite\">\n <div className=\"solid-inline-toast-body\">\n {toast.summary && <div className=\"solid-inline-toast-title\">{toast.summary}</div>}\n {toast.detail && <div className=\"solid-inline-toast-detail\">{toast.detail}</div>}\n </div>\n <button\n type=\"button\"\n className=\"solid-inline-toast-close\"\n onClick={() => setToast(null)}\n aria-label=\"Close notification\"\n >\n ×\n </button>\n </div>\n )}\n <div className=\"solid-user-menu\" ref={menuRef}>\n <button\n type=\"button\"\n className=\"solid-user-menu-trigger\"\n onClick={() => setMenuOpen((prev) => !prev)}\n aria-haspopup=\"menu\"\n aria-expanded={menuOpen}\n aria-label=\"Open user menu\"\n >\n <span className=\"solid-user-menu-trigger-left\">\n <UserProfileAvatar compact />\n <span className=\"solid-user-menu-trigger-meta\">\n <span className=\"solid-user-menu-trigger-name\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-trigger-role\">{primaryRole}</span>\n </span>\n </span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7 5.83301L3.5 9.33301H10.5L7 5.83301Z\" fill=\"currentColor\" />\n </svg>\n </button>\n\n {menuOpen && (\n <div className=\"solid-user-menu-content\" role=\"menu\">\n <div className=\"solid-user-menu-header\">\n <UserProfileAvatar />\n <div className=\"solid-user-menu-meta\">\n <span className=\"solid-user-menu-title\">{displayName || \"User\"}</span>\n <span className=\"solid-user-menu-subtitle\">{roleLabel || \"User\"}</span>\n </div>\n </div>\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n setShowProfileSettingsDialog(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M8.1191 16.5C7.7816 16.5 7.49098 16.3875 7.24723 16.1625C7.00348 15.9375 6.8566 15.6625 6.8066 15.3375L6.63785 14.1C6.47535 14.0375 6.32223 13.9625 6.17848 13.875C6.03473 13.7875 5.8941 13.6938 5.7566 13.5938L4.5941 14.0813C4.2816 14.2188 3.9691 14.2313 3.6566 14.1188C3.3441 14.0063 3.10035 13.8063 2.92535 13.5188L2.0441 11.9813C1.8691 11.6938 1.8191 11.3875 1.8941 11.0625C1.9691 10.7375 2.13785 10.4688 2.40035 10.2563L3.3941 9.50625C3.3816 9.41875 3.37535 9.33438 3.37535 9.25313V8.74688C3.37535 8.66563 3.3816 8.58125 3.3941 8.49375L2.40035 7.74375C2.13785 7.53125 1.9691 7.2625 1.8941 6.9375C1.8191 6.6125 1.8691 6.30625 2.0441 6.01875L2.92535 4.48125C3.10035 4.19375 3.3441 3.99375 3.6566 3.88125C3.9691 3.76875 4.2816 3.78125 4.5941 3.91875L5.7566 4.40625C5.8941 4.30625 6.03785 4.2125 6.18785 4.125C6.33785 4.0375 6.48785 3.9625 6.63785 3.9L6.8066 2.6625C6.8566 2.3375 7.00348 2.0625 7.24723 1.8375C7.49098 1.6125 7.7816 1.5 8.1191 1.5H9.8816C10.2191 1.5 10.5097 1.6125 10.7535 1.8375C10.9972 2.0625 11.1441 2.3375 11.1941 2.6625L11.3629 3.9C11.5254 3.9625 11.6785 4.0375 11.8222 4.125C11.966 4.2125 12.1066 4.30625 12.2441 4.40625L13.4066 3.91875C13.7191 3.78125 14.0316 3.76875 14.3441 3.88125C14.6566 3.99375 14.9004 4.19375 15.0754 4.48125L15.9566 6.01875C16.1316 6.30625 16.1816 6.6125 16.1066 6.9375C16.0316 7.2625 15.8629 7.53125 15.6004 7.74375L14.6066 8.49375C14.6191 8.58125 14.6254 8.66563 14.6254 8.74688V9.25313C14.6254 9.33438 14.6129 9.41875 14.5879 9.50625L15.5816 10.2563C15.8441 10.4688 16.0129 10.7375 16.0879 11.0625C16.1629 11.3875 16.1129 11.6938 15.9379 11.9813L15.0379 13.5188C14.8629 13.8063 14.6191 14.0063 14.3066 14.1188C13.9941 14.2313 13.6816 14.2188 13.3691 14.0813L12.2441 13.5938C12.1066 13.6938 11.9629 13.7875 11.8129 13.875C11.6629 13.9625 11.5129 14.0375 11.3629 14.1L11.1941 15.3375C11.1441 15.6625 10.9972 15.9375 10.7535 16.1625C10.5097 16.3875 10.2191 16.5 9.8816 16.5H8.1191ZM8.25035 15H9.7316L9.9941 13.0125C10.3816 12.9125 10.741 12.7656 11.0722 12.5719C11.4035 12.3781 11.7066 12.1438 11.9816 11.8688L13.8379 12.6375L14.5691 11.3625L12.9566 10.1438C13.0191 9.96875 13.0629 9.78438 13.0879 9.59063C13.1129 9.39688 13.1254 9.2 13.1254 9C13.1254 8.8 13.1129 8.60313 13.0879 8.40938C13.0629 8.21563 13.0191 8.03125 12.9566 7.85625L14.5691 6.6375L13.8379 5.3625L11.9816 6.15C11.7066 5.8625 11.4035 5.62188 11.0722 5.42813C10.741 5.23438 10.3816 5.0875 9.9941 4.9875L9.75035 3H8.2691L8.0066 4.9875C7.6191 5.0875 7.25973 5.23438 6.92848 5.42813C6.59723 5.62188 6.2941 5.85625 6.0191 6.13125L4.16285 5.3625L3.4316 6.6375L5.0441 7.8375C4.9816 8.025 4.93785 8.2125 4.91285 8.4C4.88785 8.5875 4.87535 8.7875 4.87535 9C4.87535 9.2 4.88785 9.39375 4.91285 9.58125C4.93785 9.76875 4.9816 9.95625 5.0441 10.1438L3.4316 11.3625L4.16285 12.6375L6.0191 11.85C6.2941 12.1375 6.59723 12.3781 6.92848 12.5719C7.25973 12.7656 7.6191 12.9125 8.0066 13.0125L8.25035 15ZM9.03785 11.625C9.76285 11.625 10.3816 11.3688 10.8941 10.8563C11.4066 10.3438 11.6629 9.725 11.6629 9C11.6629 8.275 11.4066 7.65625 10.8941 7.14375C10.3816 6.63125 9.76285 6.375 9.03785 6.375C8.30035 6.375 7.67848 6.63125 7.17223 7.14375C6.66598 7.65625 6.41285 8.275 6.41285 9C6.41285 9.725 6.66598 10.3438 7.17223 10.8563C7.67848 11.3688 8.30035 11.625 9.03785 11.625Z\" fill=\"currentColor\" />\n </svg>\n <span>Account Settings</span>\n </button>\n\n {settingsMap?.contactSupportEmail && (\n <button\n type=\"button\"\n className=\"solid-user-menu-item\"\n onClick={() => {\n setMenuOpen(false);\n window.location.href = `mailto:${settingsMap?.contactSupportEmail}`;\n }}\n >\n {settingsMap?.contactSupportIcon ? (\n (() => { const m = parseSolidIconMeta(settingsMap?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden=\"true\" /> : <i className={settingsMap?.contactSupportIcon} aria-hidden=\"true\" />; })()\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 4.5C3 3.67157 3.67157 3 4.5 3H13.5C14.3284 3 15 3.67157 15 4.5V13.5C15 14.3284 14.3284 15 13.5 15H4.5C3.67157 15 3 14.3284 3 13.5V4.5Z\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n <path d=\"M4.125 5.25L9 9L13.875 5.25\" stroke=\"currentColor\" strokeWidth=\"1.25\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n <span>{settingsMap?.contactSupportDisplayName || \"Contact Support\"}</span>\n </button>\n )}\n\n <div className=\"solid-user-menu-sep\" />\n\n <button\n type=\"button\"\n className=\"solid-user-menu-item is-danger\"\n onClick={() => {\n setMenuOpen(false);\n setConfirmLogout(true);\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3.75 15.75C3.3375 15.75 2.98438 15.6031 2.69063 15.3094C2.39687 15.0156 2.25 14.6625 2.25 14.25V3.75C2.25 3.3375 2.39687 2.98438 2.69063 2.69063C2.98438 2.39687 3.3375 2.25 3.75 2.25H9V3.75H3.75V14.25H9V15.75H3.75ZM12 12.75L10.9688 11.6625L12.8813 9.75H6.75V8.25H12.8813L10.9688 6.3375L12 5.25L15.75 9L12 12.75Z\" fill=\"currentColor\" />\n </svg>\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n {confirmLogout && (\n <div\n className=\"solid-dialog-backdrop\"\n role=\"presentation\"\n onClick={() => setConfirmLogout(false)}\n >\n <div\n className=\"solid-confirm-dialog solid-shadcn-confirm-dialog\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"solid-logout-dialog-title\"\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"solid-shadcn-dialog-head\">\n <h3 id=\"solid-logout-dialog-title\">Logout</h3>\n </div>\n <div className=\"solid-shadcn-dialog-sep\" />\n <div className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to log out?</p>\n </div>\n <div className=\"solid-shadcn-dialog-actions\">\n <SolidButton size=\"sm\" variant=\"destructive\" onClick={() => handleLogout({ toast: toastRef })}>\n Logout\n </SolidButton>\n <SolidButton size=\"sm\" variant=\"outline\" onClick={() => setConfirmLogout(false)}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n )}\n {showProfileSettingsDialog &&\n <SolidAccountSettings\n showProfileSettingsDialog={showProfileSettingsDialog}\n setShowProfileSettingsDialog={setShowProfileSettingsDialog}\n />\n }\n </div>\n );\n};\n\nexport default UserProfileMenu;\n"]}
@@ -6,6 +6,7 @@ import { useLazyGetSolidSettingsQuery } from "../../redux/api/solidSettingsApi";
6
6
  import { useSession } from "../../hooks/useSession";
7
7
  import { SolidButton } from "../shad-cn-ui/SolidButton";
8
8
  import { SolidIcon, parseSolidIconMeta } from "../shad-cn-ui/SolidIcon";
9
+ import { getSettingsMap } from "../../helpers/settingsPayload";
9
10
 
10
11
  type InlineToast = {
11
12
  id: number;
@@ -26,6 +27,7 @@ const UserProfileMenu = () => {
26
27
  useEffect(() => {
27
28
  trigger("") // Fetch settings on mount
28
29
  }, [trigger])
30
+ const settingsMap = useMemo(() => getSettingsMap(solidSettingsData), [solidSettingsData]);
29
31
 
30
32
  const session = useSession();
31
33
  const userId = session?.data?.user?.id;
@@ -96,7 +98,7 @@ const UserProfileMenu = () => {
96
98
  ?.filter((role: any) => role.name !== "Internal User")
97
99
  .map((role: any) => role.name)
98
100
  .join(" | ");
99
- const displayName = solidSettingsData?.data?.enableUsername
101
+ const displayName = settingsMap?.enableUsername
100
102
  ? userData?.data?.username
101
103
  : userData?.data?.email;
102
104
  const primaryRole = roleLabel?.split("|")?.[0]?.trim() || "User";
@@ -192,24 +194,24 @@ const UserProfileMenu = () => {
192
194
  <span>Account Settings</span>
193
195
  </button>
194
196
 
195
- {solidSettingsData?.data?.contactSupportEmail && (
197
+ {settingsMap?.contactSupportEmail && (
196
198
  <button
197
199
  type="button"
198
200
  className="solid-user-menu-item"
199
201
  onClick={() => {
200
202
  setMenuOpen(false);
201
- window.location.href = `mailto:${solidSettingsData?.data?.contactSupportEmail}`;
203
+ window.location.href = `mailto:${settingsMap?.contactSupportEmail}`;
202
204
  }}
203
205
  >
204
- {solidSettingsData?.data?.contactSupportIcon ? (
205
- (() => { const m = parseSolidIconMeta(solidSettingsData?.data?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden="true" /> : <i className={solidSettingsData?.data?.contactSupportIcon} aria-hidden="true" />; })()
206
+ {settingsMap?.contactSupportIcon ? (
207
+ (() => { const m = parseSolidIconMeta(settingsMap?.contactSupportIcon); return m ? <SolidIcon name={m.name} spin={m.spin} aria-hidden="true" /> : <i className={settingsMap?.contactSupportIcon} aria-hidden="true" />; })()
206
208
  ) : (
207
209
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 18 18" fill="none" aria-hidden="true">
208
210
  <path d="M3 4.5C3 3.67157 3.67157 3 4.5 3H13.5C14.3284 3 15 3.67157 15 4.5V13.5C15 14.3284 14.3284 15 13.5 15H4.5C3.67157 15 3 14.3284 3 13.5V4.5Z" stroke="currentColor" strokeWidth="1.25" />
209
211
  <path d="M4.125 5.25L9 9L13.875 5.25" stroke="currentColor" strokeWidth="1.25" strokeLinecap="round" strokeLinejoin="round" />
210
212
  </svg>
211
213
  )}
212
- <span>{solidSettingsData?.data?.contactSupportDisplayName || "Contact Support"}</span>
214
+ <span>{settingsMap?.contactSupportDisplayName || "Contact Support"}</span>
213
215
  </button>
214
216
  )}
215
217
 
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAGpE,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;CAC7B,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,GACP,EAAE,sBAAsB,2CAuTxB"}
1
+ {"version":3,"file":"SolidAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAGpE,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;CAC7B,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,GACP,EAAE,sBAAsB,2CAgUxB"}
@@ -146,6 +146,10 @@ export function SolidAutocomplete(_a) {
146
146
  setHasCustomQuery(false);
147
147
  };
148
148
  var clearAllSelected = function () {
149
+ if (multiple) {
150
+ var existing = Array.isArray(value) ? __spreadArray([], value, true) : [];
151
+ existing.forEach(function (item) { return onUnselect === null || onUnselect === void 0 ? void 0 : onUnselect({ value: item }); });
152
+ }
149
153
  onChange === null || onChange === void 0 ? void 0 : onChange({ value: multiple ? [] : null });
150
154
  setManageOpen(false);
151
155
  };
@@ -155,6 +159,7 @@ export function SolidAutocomplete(_a) {
155
159
  var exists = existing.some(function (entry) { return toComparableKey(entry) === toComparableKey(item); });
156
160
  if (!exists) {
157
161
  onChange === null || onChange === void 0 ? void 0 : onChange({ value: __spreadArray(__spreadArray([], existing, true), [item], false) });
162
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect({ value: item });
158
163
  }
159
164
  setQuery("");
160
165
  setOpen(false);
@@ -235,6 +240,9 @@ export function SolidAutocomplete(_a) {
235
240
  if (nextOpen) {
236
241
  runCompleteMethod(hasCustomQuery ? query : "", true);
237
242
  }
238
- }, "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", onClick: function () { return removeSelectedAt(index); }, "aria-label": "Remove selection", children: _jsx(X, { size: 12 }) })] }, "managed-".concat(toItemKey(item, index)))); }) })] })), open && normalizedSuggestions.length > 0 && (_jsx("div", { className: "solid-autocomplete-panel", role: "listbox", 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))); }) }))] }));
243
+ }, "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 () {
244
+ onUnselect === null || onUnselect === void 0 ? void 0 : onUnselect({ value: item });
245
+ removeSelectedAt(index);
246
+ }, "aria-label": "Remove selection", children: _jsx(X, { size: 12 }) })] }, "managed-".concat(toItemKey(item, index)))); }) })] })), open && normalizedSuggestions.length > 0 && (_jsx("div", { className: "solid-autocomplete-panel", role: "listbox", 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))); }) }))] }));
239
247
  }
240
248
  //# sourceMappingURL=SolidAutocomplete.js.map
@@ -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, useMemo, useRef, useState } from \"react\";\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};\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}: SolidAutocompleteProps) {\n const rootRef = 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\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 if (!rootRef.current) return;\n if (!rootRef.current.contains(event.target as Node)) {\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 const normalizedSuggestions = useMemo(\n () =>\n (suggestions || []).map((item) => ({\n raw: item,\n label: getDisplayValue(item, field),\n })),\n [suggestions, field]\n );\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 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 }\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 onClick={() => removeSelectedAt(index)}\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 <div className=\"solid-autocomplete-panel\" role=\"listbox\">\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 </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, useMemo, useRef, useState } from \"react\";\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};\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}: SolidAutocompleteProps) {\n const rootRef = 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\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 if (!rootRef.current) return;\n if (!rootRef.current.contains(event.target as Node)) {\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 const normalizedSuggestions = useMemo(\n () =>\n (suggestions || []).map((item) => ({\n raw: item,\n label: getDisplayValue(item, field),\n })),\n [suggestions, field]\n );\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 <div className=\"solid-autocomplete-panel\" role=\"listbox\">\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 </div>\n );\n}\n"]}
@@ -179,6 +179,10 @@ export function SolidAutocomplete({
179
179
  };
180
180
 
181
181
  const clearAllSelected = () => {
182
+ if (multiple) {
183
+ const existing = Array.isArray(value) ? [...value] : [];
184
+ existing.forEach((item) => onUnselect?.({ value: item }));
185
+ }
182
186
  onChange?.({ value: multiple ? [] : null });
183
187
  setManageOpen(false);
184
188
  };
@@ -189,6 +193,7 @@ export function SolidAutocomplete({
189
193
  const exists = existing.some((entry) => toComparableKey(entry) === toComparableKey(item));
190
194
  if (!exists) {
191
195
  onChange?.({ value: [...existing, item] });
196
+ onSelect?.({ value: item });
192
197
  }
193
198
  setQuery("");
194
199
  setOpen(false);
@@ -340,7 +345,11 @@ export function SolidAutocomplete({
340
345
  <button
341
346
  type="button"
342
347
  className="solid-autocomplete-chip-remove"
343
- onClick={() => removeSelectedAt(index)}
348
+ onMouseDown={(event) => event.preventDefault()}
349
+ onClick={() => {
350
+ onUnselect?.({ value: item });
351
+ removeSelectedAt(index);
352
+ }}
344
353
  aria-label="Remove selection"
345
354
  >
346
355
  <X size={12} />
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AAGpD,KAAK,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,GAAG;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAmDF,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,cAAc,EACd,cAAc,EACd,QAAQ,EACR,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAetB"}
1
+ {"version":3,"file":"SolidDatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AAGpD,KAAK,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,GAAG;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAmDF,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,cAAc,EACd,cAAc,EACd,QAAQ,EACR,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAiBtB"}
@@ -71,6 +71,6 @@ export function SolidDatePicker(_a) {
71
71
  var resolvedShowTime = timeOnly ? true : showTimeSelect;
72
72
  var resolvedFormat = (_b = (Array.isArray(dateFormat) ? dateFormat[0] : dateFormat)) !== null && _b !== void 0 ? _b : "yyyy-MM-dd";
73
73
  var displayValue = formatDateValue(selected, resolvedFormat);
74
- return (_jsx(ReactDatePicker, __assign({}, props, { selected: selected, showTimeSelect: resolvedShowTime, showTimeSelectOnly: timeOnly, customInput: _jsx(SolidDatePickerInput, { className: inputClassName, displayValue: displayValue }), className: cx("solid-datepicker", className) })));
74
+ return (_jsx(ReactDatePicker, __assign({ popperProps: { strategy: "fixed" }, popperPlacement: "bottom-start" }, props, { selected: selected, showTimeSelect: resolvedShowTime, showTimeSelectOnly: timeOnly, customInput: _jsx(SolidDatePickerInput, { className: inputClassName, displayValue: displayValue }), className: cx("solid-datepicker", className) })));
75
75
  }
76
76
  //# sourceMappingURL=SolidDatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDatePicker.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactDatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { SolidInput } from \"./SolidInput\";\n\ntype SolidDatePickerProps = React.ComponentProps<typeof ReactDatePicker> & {\n timeOnly?: boolean;\n inputClassName?: string;\n};\n\ntype SolidDatePickerInputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n displayValue?: string;\n};\n\nfunction formatDateValue(value: Date | null | undefined, pattern?: string) {\n if (!value || !(value instanceof Date) || Number.isNaN(value.getTime())) {\n return \"\";\n }\n if (!pattern) {\n return value.toISOString();\n }\n const pad = (num: number, length = 2) => String(num).padStart(length, \"0\");\n const hours = value.getHours();\n const minutes = value.getMinutes();\n const seconds = value.getSeconds();\n const ampm = hours >= 12 ? \"PM\" : \"AM\";\n const h12 = hours % 12 || 12;\n\n return pattern\n .replace(/yyyy/g, String(value.getFullYear()))\n .replace(/MM/g, pad(value.getMonth() + 1))\n .replace(/dd/g, pad(value.getDate()))\n .replace(/HH/g, pad(hours))\n .replace(/hh/g, pad(h12))\n .replace(/h/g, String(h12))\n .replace(/mm/g, pad(minutes))\n .replace(/ss/g, pad(seconds))\n .replace(/aa/g, ampm)\n .replace(/a/g, ampm);\n}\n\nconst SolidDatePickerInput = React.forwardRef<HTMLInputElement, SolidDatePickerInputProps>(\n ({ className, displayValue, ...props }, ref) => (\n <SolidInput\n ref={ref}\n {...props}\n value={displayValue ?? (typeof props.value === \"string\" ? props.value : \"\")}\n readOnly\n className={className}\n />\n )\n);\n\nSolidDatePickerInput.displayName = \"SolidDatePickerInput\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidDatePicker({\n timeOnly,\n showTimeSelect,\n inputClassName,\n selected,\n dateFormat,\n className,\n ...props\n}: SolidDatePickerProps) {\n const resolvedShowTime = timeOnly ? true : showTimeSelect;\n const resolvedFormat = (Array.isArray(dateFormat) ? dateFormat[0] : dateFormat) ?? \"yyyy-MM-dd\";\n const displayValue = formatDateValue(selected as Date | null | undefined, resolvedFormat);\n\n return (\n <ReactDatePicker\n {...props}\n selected={selected}\n showTimeSelect={resolvedShowTime}\n showTimeSelectOnly={timeOnly}\n customInput={<SolidDatePickerInput className={inputClassName} displayValue={displayValue} />}\n className={cx(\"solid-datepicker\", className)}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"SolidDatePicker.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactDatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { SolidInput } from \"./SolidInput\";\n\ntype SolidDatePickerProps = React.ComponentProps<typeof ReactDatePicker> & {\n timeOnly?: boolean;\n inputClassName?: string;\n};\n\ntype SolidDatePickerInputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n displayValue?: string;\n};\n\nfunction formatDateValue(value: Date | null | undefined, pattern?: string) {\n if (!value || !(value instanceof Date) || Number.isNaN(value.getTime())) {\n return \"\";\n }\n if (!pattern) {\n return value.toISOString();\n }\n const pad = (num: number, length = 2) => String(num).padStart(length, \"0\");\n const hours = value.getHours();\n const minutes = value.getMinutes();\n const seconds = value.getSeconds();\n const ampm = hours >= 12 ? \"PM\" : \"AM\";\n const h12 = hours % 12 || 12;\n\n return pattern\n .replace(/yyyy/g, String(value.getFullYear()))\n .replace(/MM/g, pad(value.getMonth() + 1))\n .replace(/dd/g, pad(value.getDate()))\n .replace(/HH/g, pad(hours))\n .replace(/hh/g, pad(h12))\n .replace(/h/g, String(h12))\n .replace(/mm/g, pad(minutes))\n .replace(/ss/g, pad(seconds))\n .replace(/aa/g, ampm)\n .replace(/a/g, ampm);\n}\n\nconst SolidDatePickerInput = React.forwardRef<HTMLInputElement, SolidDatePickerInputProps>(\n ({ className, displayValue, ...props }, ref) => (\n <SolidInput\n ref={ref}\n {...props}\n value={displayValue ?? (typeof props.value === \"string\" ? props.value : \"\")}\n readOnly\n className={className}\n />\n )\n);\n\nSolidDatePickerInput.displayName = \"SolidDatePickerInput\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidDatePicker({\n timeOnly,\n showTimeSelect,\n inputClassName,\n selected,\n dateFormat,\n className,\n ...props\n}: SolidDatePickerProps) {\n const resolvedShowTime = timeOnly ? true : showTimeSelect;\n const resolvedFormat = (Array.isArray(dateFormat) ? dateFormat[0] : dateFormat) ?? \"yyyy-MM-dd\";\n const displayValue = formatDateValue(selected as Date | null | undefined, resolvedFormat);\n\n return (\n <ReactDatePicker\n popperProps={{ strategy: \"fixed\" }}\n popperPlacement=\"bottom-start\"\n {...props}\n selected={selected}\n showTimeSelect={resolvedShowTime}\n showTimeSelectOnly={timeOnly}\n customInput={<SolidDatePickerInput className={inputClassName} displayValue={displayValue} />}\n className={cx(\"solid-datepicker\", className)}\n />\n );\n}\n"]}
@@ -72,6 +72,8 @@ export function SolidDatePicker({
72
72
 
73
73
  return (
74
74
  <ReactDatePicker
75
+ popperProps={{ strategy: "fixed" }}
76
+ popperPlacement="bottom-start"
75
77
  {...props}
76
78
  selected={selected}
77
79
  showTimeSelect={resolvedShowTime}
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  type SolidDialogProps = {
3
3
  open?: boolean;
4
4
  onOpenChange?: (open: boolean) => void;
5
- children: React.ReactNode;
5
+ children?: React.ReactNode;
6
6
  className?: string;
7
7
  contentClassName?: string;
8
8
  overlayClassName?: string;
@@ -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,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,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;AAMF,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,2CAqClB;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,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;AAMF,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,2CAqClB;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 +1 @@
1
- {"version":3,"file":"SolidDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDialog.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AA4BjC,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAgBT;;QAfjB,IAAI,UAAA,EACJ,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,gBAAgB,sBAAA,EAChB,gBAAgB,sBAAA,EAChB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,MAAM,YAAA,EACN,MAAM,YAAA,EACN,MAAM,YAAA,EACN,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA,EACjB,eAAe,qBAAA,EACf,YAAY,kBAAA,EACZ,mBAAkB,EAAlB,WAAW,mBAAG,IAAI,KAAA;IAElB,IAAM,cAAc,GAAG,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO,mCAAI,KAAK,CAAC;IAChD,IAAM,gBAAgB,GAAG,UAAC,IAAa;QACrC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;YAAE,OAAO;QAClC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI;YAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,CAAC,IAAI,IAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,YAC/D,MAAC,MAAM,CAAC,MAAM,eACZ,KAAC,MAAM,CAAC,OAAO,IAAC,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,GAAI,EACjF,MAAC,MAAM,CAAC,OAAO,IACb,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,EAAE,gBAAgB,CAAC,EACxE,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,YAAY,EAC5B,eAAe,EAAE,UAAC,KAAU;wBAC1B,IAAI,CAAC,WAAW;4BAAE,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC3C,CAAC,EACD,oBAAoB,EAAE,UAAC,KAAU;wBAC/B,IAAI,CAAC,WAAW;4BAAE,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC3C,CAAC,EACD,iBAAiB,EAAE,UAAC,KAAU;wBAC5B,IAAI,CAAC,WAAW;4BAAE,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC3C,CAAC,aAEA,UAAU,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAClC,MAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,aAC1C,MAAM,CAAC,CAAC,CAAC,KAAC,gBAAgB,cAAE,MAAM,GAAoB,CAAC,CAAC,CAAC,IAAI,EAC9D,KAAC,gBAAgB,kBAAY,OAAO,GAAG,IACrB,CACrB,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,KAAC,iBAAiB,cAAE,MAAM,GAAqB,CAAC,CAAC,CAAC,IAAI,IACjD,IACH,GACJ,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAgD;QAA9C,QAAQ,cAAA,EAAE,SAAS,eAAA;IACrD,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAgD;QAA9C,QAAQ,cAAA,EAAE,SAAS,eAAA;IACpD,OAAO,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAgB,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAgD;QAA9C,QAAQ,cAAA,EAAE,SAAS,eAAA;IAC1D,OAAO,CACL,KAAC,MAAM,CAAC,WAAW,IAAC,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,YAC3E,QAAQ,GACU,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAgD;QAA9C,QAAQ,cAAA,EAAE,SAAS,eAAA;IACnD,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAgD;QAA9C,QAAQ,cAAA,EAAE,SAAS,eAAA;IACrD,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAqC;QAAnC,SAAS,eAAA;IAC9C,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,GAAI,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAUhC;QATC,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,qBAAwC,EAA1B,SAAS,mBAAG,cAAc,KAAA;IAOxC,OAAO,CACL,KAAC,MAAM,CAAC,KAAK,IAAC,OAAO,kBACnB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,gBACxC,SAAS,EACrB,OAAO,EAAE,OAAO,YAEf,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACrB,GACI,CAChB,CAAC;AACJ,CAAC","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\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 if (!dismissible && !next) return;\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) event.preventDefault();\n }}\n onInteractOutside={(event: any) => {\n if (!dismissible) event.preventDefault();\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 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\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 if (!dismissible && !next) return;\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) event.preventDefault();\n }}\n onInteractOutside={(event: any) => {\n if (!dismissible) event.preventDefault();\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"]}
@@ -5,7 +5,7 @@ import { X } from "lucide-react";
5
5
  type SolidDialogProps = {
6
6
  open?: boolean;
7
7
  onOpenChange?: (open: boolean) => void;
8
- children: React.ReactNode;
8
+ children?: React.ReactNode;
9
9
  className?: string;
10
10
  contentClassName?: string;
11
11
  overlayClassName?: string;
@@ -75,13 +75,13 @@ declare const ICON_MAP: {
75
75
  "si-wifi": React.ForwardRefExoticComponent<Omit<import("lucide-react").LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
76
76
  };
77
77
  export type SolidIconName = keyof typeof ICON_MAP;
78
- export interface SolidIconProps extends React.ComponentPropsWithoutRef<"svg"> {
78
+ export interface SolidIconProps extends React.SVGAttributes<SVGSVGElement> {
79
79
  name: SolidIconName;
80
80
  size?: number | string;
81
81
  spin?: boolean;
82
82
  }
83
83
  export declare const ICON_KEYS: ("si-android" | "si-angle-double-left" | "si-angle-double-right" | "si-angle-down" | "si-angle-left" | "si-angle-right" | "si-angle-up" | "si-arrow-left" | "si-arrow-right" | "si-bars" | "si-bell" | "si-calendar" | "si-calendar-minus" | "si-calendar-plus" | "si-chart-bar" | "si-check" | "si-check-circle" | "si-chevron-down" | "si-chevron-left" | "si-chevron-right" | "si-chevron-up" | "si-clone" | "si-cloud-download" | "si-cloud-upload" | "si-code" | "si-cog" | "si-comments" | "si-copy" | "si-download" | "si-ellipsis-h" | "si-ellipsis-v" | "si-envelope" | "si-exclamation-circle" | "si-exclamation-triangle" | "si-external-link" | "si-eye" | "si-eye-slash" | "si-file" | "si-file-edit" | "si-file-excel" | "si-file-pdf" | "si-file-word" | "si-filter" | "si-filter-fill" | "si-filter-slash" | "si-history" | "si-image" | "si-inbox" | "si-info-circle" | "si-lock" | "si-minus" | "si-objects-column" | "si-pencil" | "si-plus" | "si-power-off" | "si-refresh" | "si-save" | "si-search" | "si-send" | "si-sliders-h" | "si-sort-down-fill" | "si-sort-up-fill" | "si-spinner" | "si-star" | "si-terminal" | "si-th-large" | "si-times" | "si-times-circle" | "si-trash" | "si-upload" | "si-user" | "si-users" | "si-wifi")[];
84
- export declare const SolidIcon: React.ForwardRefExoticComponent<SolidIconProps & React.RefAttributes<SVGSVGElement>>;
84
+ export declare function SolidIcon({ name, size, spin, className, ...rest }: SolidIconProps): import("react/jsx-runtime").JSX.Element;
85
85
  export type SolidIconMeta = {
86
86
  name: SolidIconName;
87
87
  spin?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidIcon.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2E1B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E2B,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,QAAQ,CAAC;AAYlD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC3E,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,isCAA2C,CAAC;AAElE,eAAO,MAAM,SAAS,sFAarB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CA2BnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAEvF"}
1
+ {"version":3,"file":"SolidIcon.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2E1B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E2B,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,QAAQ,CAAC;AAYlD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IACxE,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,isCAA2C,CAAC;AAElE,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAY,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CAUzF;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CA2BnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAEvF"}
@@ -21,7 +21,6 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  return t;
22
22
  };
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
- import React from "react";
25
24
  import { AlertCircle, AlertTriangle, ArrowDownWideNarrow, ArrowLeft, ArrowRight, ArrowUpWideNarrow, BarChart3, Bell, Bot, Calendar, CalendarMinus, CalendarPlus, Check, CheckCircle2, ChevronsLeft, ChevronsRight, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, CircleHelp, Code, Cog, Columns3, Copy, Download, DownloadCloud, ExternalLink, Eye, EyeOff, File, FilePenLine, FileSpreadsheet, FileText, FileType, Filter, FilterX, History, Image as ImageIcon, Inbox, Info, LayoutGrid, Loader2, Lock, Mail, Menu, MessageSquare, Minus, MoreHorizontal, MoreVertical, Pencil, Plus, Power, RefreshCcw, Save, Search, Send, SlidersHorizontal, Star, Terminal, Trash2, Upload, UploadCloud, User, Users, Wifi, X, XCircle } from "lucide-react";
26
25
  var ICON_MAP = {
27
26
  "si-android": Bot,
@@ -110,12 +109,12 @@ function isSolidIconName(name) {
110
109
  return Object.prototype.hasOwnProperty.call(ICON_MAP, name);
111
110
  }
112
111
  export var ICON_KEYS = Object.keys(ICON_MAP);
113
- export var SolidIcon = React.forwardRef(function (_a, ref) {
112
+ export function SolidIcon(_a) {
114
113
  var _b;
115
114
  var name = _a.name, _c = _a.size, size = _c === void 0 ? "1em" : _c, spin = _a.spin, className = _a.className, rest = __rest(_a, ["name", "size", "spin", "className"]);
116
115
  var IconComponent = (_b = ICON_MAP[name]) !== null && _b !== void 0 ? _b : CircleHelp;
117
- return (_jsx(IconComponent, __assign({ ref: ref, size: size, className: cx("solid-icon", spin && "solid-icon--spin", className) }, rest)));
118
- });
116
+ return (_jsx(IconComponent, __assign({ size: size, className: cx("solid-icon", spin && "solid-icon--spin", className) }, rest)));
117
+ }
119
118
  export function parseSolidIconMeta(value) {
120
119
  if (!value)
121
120
  return undefined;