@solidxai/core-ui 0.1.9-beta.20 → 0.1.9-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/README.md +1 -1
  2. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  3. package/dist/components/auth/AuthLayout.js +23 -19
  4. package/dist/components/auth/AuthLayout.js.map +1 -1
  5. package/dist/components/auth/AuthLayout.tsx +62 -52
  6. package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
  7. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  8. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
  9. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts +2 -0
  10. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts.map +1 -0
  11. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js +112 -0
  12. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js.map +1 -0
  13. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.tsx +78 -0
  14. package/dist/components/auth/SolidChangeForcePassword.js +2 -2
  15. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  16. package/dist/components/auth/SolidChangeForcePassword.tsx +13 -13
  17. package/dist/components/auth/SolidForgotPassword.js +1 -1
  18. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  19. package/dist/components/auth/SolidForgotPassword.tsx +3 -3
  20. package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  22. package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -2
  23. package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
  24. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -2
  26. package/dist/components/auth/SolidLogin.js +4 -4
  27. package/dist/components/auth/SolidLogin.js.map +1 -1
  28. package/dist/components/auth/SolidLogin.tsx +11 -11
  29. package/dist/components/auth/SolidRegister.js +6 -6
  30. package/dist/components/auth/SolidRegister.js.map +1 -1
  31. package/dist/components/auth/SolidRegister.tsx +14 -14
  32. package/dist/components/auth/SolidResetPassword.js +2 -2
  33. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  34. package/dist/components/auth/SolidResetPassword.tsx +8 -8
  35. package/dist/components/common/BackButton.js +1 -1
  36. package/dist/components/common/BackButton.js.map +1 -1
  37. package/dist/components/common/BackButton.tsx +1 -1
  38. package/dist/components/common/CancelButton.js +2 -2
  39. package/dist/components/common/CancelButton.js.map +1 -1
  40. package/dist/components/common/CancelButton.tsx +3 -3
  41. package/dist/components/common/GeneralSettings.js +18 -18
  42. package/dist/components/common/GeneralSettings.js.map +1 -1
  43. package/dist/components/common/GeneralSettings.tsx +136 -136
  44. package/dist/components/common/SolidExport.d.ts +1 -1
  45. package/dist/components/common/SolidExport.d.ts.map +1 -1
  46. package/dist/components/common/SolidExport.js +10 -3
  47. package/dist/components/common/SolidExport.js.map +1 -1
  48. package/dist/components/common/SolidExport.tsx +10 -2
  49. package/dist/components/common/SolidFormHeader.js +1 -1
  50. package/dist/components/common/SolidFormHeader.js.map +1 -1
  51. package/dist/components/common/SolidFormHeader.tsx +1 -1
  52. package/dist/components/common/SolidModuleHome.js +2 -2
  53. package/dist/components/common/SolidModuleHome.js.map +1 -1
  54. package/dist/components/common/SolidModuleHome.tsx +7 -7
  55. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +3 -3
  56. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  57. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +6 -6
  58. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +1 -1
  59. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
  60. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +4 -4
  61. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +1 -1
  62. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
  63. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +4 -4
  64. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +1 -1
  65. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
  66. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +1 -1
  67. package/dist/components/core/card/SolidCardView.js +1 -1
  68. package/dist/components/core/card/SolidCardView.js.map +1 -1
  69. package/dist/components/core/card/SolidCardView.tsx +5 -5
  70. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  71. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  72. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  73. package/dist/components/core/card/SolidCardViewConfigure.tsx +5 -1
  74. package/dist/components/core/chatter/SolidChatter.js +5 -5
  75. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  76. package/dist/components/core/chatter/SolidChatter.tsx +8 -8
  77. package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
  78. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  79. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +2 -2
  80. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  81. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  82. package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -6
  83. package/dist/components/core/chatter/SolidChatterMessageBox.js +4 -4
  84. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  85. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +12 -12
  86. package/dist/components/core/chatter/SolidMessageComposer.js +1 -1
  87. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  88. package/dist/components/core/chatter/SolidMessageComposer.tsx +7 -7
  89. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  90. package/dist/components/core/common/SolidCreateButton.js +16 -1
  91. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  92. package/dist/components/core/common/SolidCreateButton.tsx +18 -1
  93. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +60 -0
  94. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +1 -1
  95. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  96. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -2
  97. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  98. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +19 -1
  99. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  100. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +16 -3
  101. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  102. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +168 -26
  103. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  104. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +174 -10
  105. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  106. package/dist/components/core/common/SolidGlobalSearchElement.js +46 -36
  107. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  108. package/dist/components/core/common/SolidGlobalSearchElement.tsx +77 -40
  109. package/dist/components/core/common/SolidLayoutViews.js +2 -2
  110. package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
  111. package/dist/components/core/common/SolidLayoutViews.tsx +4 -4
  112. package/dist/components/core/common/SolidListViewOptions.js +1 -1
  113. package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
  114. package/dist/components/core/common/SolidListViewOptions.tsx +1 -1
  115. package/dist/components/core/common/SolidPasswordHelperText.js +2 -2
  116. package/dist/components/core/common/SolidPasswordHelperText.js.map +1 -1
  117. package/dist/components/core/common/SolidPasswordHelperText.tsx +4 -4
  118. package/dist/components/core/common/SolidSearchBox.js +1 -1
  119. package/dist/components/core/common/SolidSearchBox.js.map +1 -1
  120. package/dist/components/core/common/SolidSearchBox.tsx +1 -1
  121. package/dist/components/core/common/SolidXAiIframe.js +1 -1
  122. package/dist/components/core/common/SolidXAiIframe.js.map +1 -1
  123. package/dist/components/core/common/SolidXAiIframe.tsx +1 -1
  124. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +1 -1
  125. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -1
  126. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +2 -2
  127. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +2 -2
  128. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  129. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +4 -4
  130. package/dist/components/core/field/FieldListViewData.js +2 -2
  131. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  132. package/dist/components/core/field/FieldListViewData.tsx +5 -5
  133. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  134. package/dist/components/core/filter/fields/SolidBooleanField.js +2 -2
  135. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  136. package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -12
  137. package/dist/components/core/filter/fields/SolidDateField.js +2 -2
  138. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  139. package/dist/components/core/filter/fields/SolidDateField.tsx +3 -3
  140. package/dist/components/core/filter/fields/SolidDatetimeField.js +2 -2
  141. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  142. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -3
  143. package/dist/components/core/filter/fields/SolidExternalIdField.js +2 -2
  144. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  145. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +3 -3
  146. package/dist/components/core/filter/fields/SolidIdField.js +2 -2
  147. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  148. package/dist/components/core/filter/fields/SolidIdField.tsx +2 -2
  149. package/dist/components/core/filter/fields/SolidIntField.js +2 -2
  150. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  151. package/dist/components/core/filter/fields/SolidIntField.tsx +3 -3
  152. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
  153. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  154. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +3 -3
  155. package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
  156. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  157. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +3 -3
  158. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +2 -2
  159. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  160. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -3
  161. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +2 -2
  162. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  163. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -3
  164. package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
  165. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  166. package/dist/components/core/filter/fields/SolidShortTextField.tsx +3 -3
  167. package/dist/components/core/filter/fields/SolidTimeField.js +2 -2
  168. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  169. package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -3
  170. package/dist/components/core/filter/fields/SolidUuidField.js +2 -2
  171. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  172. package/dist/components/core/filter/fields/SolidUuidField.tsx +4 -4
  173. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
  174. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  175. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -3
  176. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +2 -2
  177. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  178. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -3
  179. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
  180. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  181. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -3
  182. package/dist/components/core/form/SolidFormActionHeader.js +8 -8
  183. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  184. package/dist/components/core/form/SolidFormActionHeader.tsx +13 -13
  185. package/dist/components/core/form/SolidFormFieldRender.js +1 -1
  186. package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
  187. package/dist/components/core/form/SolidFormFieldRender.tsx +1 -1
  188. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  189. package/dist/components/core/form/SolidFormFooter.js +12 -5
  190. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  191. package/dist/components/core/form/SolidFormFooter.tsx +14 -5
  192. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  193. package/dist/components/core/form/SolidFormView.js +200 -65
  194. package/dist/components/core/form/SolidFormView.js.map +1 -1
  195. package/dist/components/core/form/SolidFormView.tsx +188 -41
  196. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  197. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +5 -1
  198. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  199. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +5 -1
  200. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  201. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +5 -1
  202. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  203. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +5 -1
  204. package/dist/components/core/form/SolidFormViewShimmerLoading.js +1 -1
  205. package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
  206. package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +46 -46
  207. package/dist/components/core/form/fields/SolidBooleanField.js +3 -3
  208. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  209. package/dist/components/core/form/fields/SolidBooleanField.tsx +3 -3
  210. package/dist/components/core/form/fields/SolidComputedField.js +1 -1
  211. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -1
  212. package/dist/components/core/form/fields/SolidComputedField.tsx +1 -1
  213. package/dist/components/core/form/fields/SolidDateField.js +2 -2
  214. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  215. package/dist/components/core/form/fields/SolidDateField.tsx +2 -2
  216. package/dist/components/core/form/fields/SolidDateTimeField.js +2 -2
  217. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  218. package/dist/components/core/form/fields/SolidDateTimeField.tsx +2 -2
  219. package/dist/components/core/form/fields/SolidDecimalField.js +1 -1
  220. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  221. package/dist/components/core/form/fields/SolidDecimalField.tsx +1 -1
  222. package/dist/components/core/form/fields/SolidEmailField.js +1 -1
  223. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  224. package/dist/components/core/form/fields/SolidEmailField.tsx +1 -1
  225. package/dist/components/core/form/fields/SolidIntegerField.js +3 -3
  226. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  227. package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -3
  228. package/dist/components/core/form/fields/SolidJsonField.js +3 -3
  229. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  230. package/dist/components/core/form/fields/SolidJsonField.tsx +3 -3
  231. package/dist/components/core/form/fields/SolidLongTextField.js +6 -6
  232. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  233. package/dist/components/core/form/fields/SolidLongTextField.tsx +12 -12
  234. package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
  235. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  236. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +28 -28
  237. package/dist/components/core/form/fields/SolidMediaSingleField.js +5 -5
  238. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  239. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +9 -9
  240. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  241. package/dist/components/core/form/fields/SolidPasswordField.js +12 -6
  242. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  243. package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -6
  244. package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
  245. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  246. package/dist/components/core/form/fields/SolidRichTextField.tsx +2 -2
  247. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +2 -2
  248. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  249. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -2
  250. package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
  251. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  252. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +1 -1
  253. package/dist/components/core/form/fields/SolidShortTextField.js +1 -1
  254. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  255. package/dist/components/core/form/fields/SolidShortTextField.tsx +1 -1
  256. package/dist/components/core/form/fields/SolidTimeField.js +2 -2
  257. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  258. package/dist/components/core/form/fields/SolidTimeField.tsx +2 -2
  259. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +7 -11
  260. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  261. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +18 -63
  262. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  263. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +63 -164
  264. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  265. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +6 -6
  266. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  267. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -36
  268. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +6 -6
  269. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  270. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -6
  271. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  272. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +10 -10
  273. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  274. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +20 -25
  275. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js +1 -1
  276. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js.map +1 -1
  277. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +1 -1
  278. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +1 -1
  279. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
  280. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +1 -1
  281. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +5 -5
  282. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  283. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +17 -17
  284. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +1 -1
  285. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
  286. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +1 -1
  287. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js +1 -1
  288. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
  289. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -1
  290. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  291. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  292. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  293. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  294. package/dist/components/core/kanban/KanbanBoard.tsx +2 -1
  295. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  296. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  297. package/dist/components/core/kanban/KanbanCard.js +15 -4
  298. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  299. package/dist/components/core/kanban/KanbanCard.tsx +27 -4
  300. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  301. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  302. package/dist/components/core/kanban/KanbanColumn.js +4 -4
  303. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  304. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  305. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  306. package/dist/components/core/kanban/SolidKanbanView.js +44 -39
  307. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  308. package/dist/components/core/kanban/SolidKanbanView.tsx +22 -10
  309. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  310. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  311. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  312. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +5 -1
  313. package/dist/components/core/list/ListViewRowActionPopup.js +1 -1
  314. package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
  315. package/dist/components/core/list/ListViewRowActionPopup.tsx +1 -2
  316. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +1 -1
  317. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  318. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +3 -3
  319. package/dist/components/core/list/SolidDataTable.js +1 -1
  320. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  321. package/dist/components/core/list/SolidDataTable.tsx +1 -1
  322. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  323. package/dist/components/core/list/SolidListView.js +14 -6
  324. package/dist/components/core/list/SolidListView.js.map +1 -1
  325. package/dist/components/core/list/SolidListView.tsx +21 -13
  326. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  327. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  328. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  329. package/dist/components/core/list/SolidListViewConfigure.tsx +5 -1
  330. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  331. package/dist/components/core/list/SolidListViewHeaderButton.js +5 -1
  332. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  333. package/dist/components/core/list/SolidListViewHeaderButton.tsx +5 -1
  334. package/dist/components/core/list/SolidListingHeader.js +1 -1
  335. package/dist/components/core/list/SolidListingHeader.js.map +1 -1
  336. package/dist/components/core/list/SolidListingHeader.tsx +4 -4
  337. package/dist/components/core/list/SolidTableRowCell.js +1 -1
  338. package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
  339. package/dist/components/core/list/SolidTableRowCell.tsx +1 -1
  340. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +5 -5
  341. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  342. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +8 -8
  343. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -3
  344. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  345. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -3
  346. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js +1 -1
  347. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js.map +1 -1
  348. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +1 -1
  349. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +1 -1
  350. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
  351. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +1 -2
  352. package/dist/components/core/locales/SolidLocale.js +3 -3
  353. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  354. package/dist/components/core/locales/SolidLocale.tsx +7 -7
  355. package/dist/components/core/locales/solid-locale.css +5 -4
  356. package/dist/components/core/model/FieldMetaData.js +2 -2
  357. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  358. package/dist/components/core/model/FieldMetaData.tsx +2 -2
  359. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  360. package/dist/components/core/model/FieldMetaDataForm.js +50 -50
  361. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  362. package/dist/components/core/model/FieldMetaDataForm.tsx +74 -229
  363. package/dist/components/core/model/ModelListViewData.js +4 -4
  364. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  365. package/dist/components/core/model/ModelListViewData.tsx +7 -7
  366. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  367. package/dist/components/core/model/ModelMetaData.js +2 -2
  368. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  369. package/dist/components/core/model/ModelMetaData.tsx +3 -58
  370. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  371. package/dist/components/core/module/CreateModule.js +3 -17
  372. package/dist/components/core/module/CreateModule.js.map +1 -1
  373. package/dist/components/core/module/CreateModule.tsx +18 -32
  374. package/dist/components/core/module/ModuleListViewData.js +5 -5
  375. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  376. package/dist/components/core/module/ModuleListViewData.tsx +8 -8
  377. package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
  378. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
  379. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -1
  380. package/dist/components/core/solid-ai/SolidAiChat.module.css +2 -2
  381. package/dist/components/core/tree/SolidTreeTable.js +1 -1
  382. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  383. package/dist/components/core/tree/SolidTreeTable.tsx +1 -1
  384. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  385. package/dist/components/core/tree/SolidTreeView.js +3 -3
  386. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  387. package/dist/components/core/tree/SolidTreeView.tsx +14 -10
  388. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  389. package/dist/components/core/users/CreateUser.js +8 -10
  390. package/dist/components/core/users/CreateUser.js.map +1 -1
  391. package/dist/components/core/users/CreateUser.tsx +18 -36
  392. package/dist/components/core/users/CreateUserRole.js +2 -2
  393. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  394. package/dist/components/core/users/CreateUserRole.tsx +9 -9
  395. package/dist/components/core/users/UserListView.js +4 -4
  396. package/dist/components/core/users/UserListView.js.map +1 -1
  397. package/dist/components/core/users/UserListView.tsx +6 -6
  398. package/dist/components/layout/AdminHeaderActions.d.ts +1 -0
  399. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  400. package/dist/components/layout/AdminHeaderActions.js +1 -1
  401. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  402. package/dist/components/layout/AdminHeaderActions.tsx +1 -1
  403. package/dist/components/layout/AdminSidebar.js +1 -1
  404. package/dist/components/layout/AdminSidebar.js.map +1 -1
  405. package/dist/components/layout/AdminSidebar.tsx +1 -1
  406. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  407. package/dist/components/layout/AdminTopHeader.js +21 -3
  408. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  409. package/dist/components/layout/AdminTopHeader.tsx +64 -2
  410. package/dist/components/layout/CustomPagination.js +0 -1
  411. package/dist/components/layout/CustomPagination.js.map +1 -1
  412. package/dist/components/layout/CustomPagination.tsx +0 -1
  413. package/dist/components/layout/FilterMenu.js +1 -1
  414. package/dist/components/layout/FilterMenu.js.map +1 -1
  415. package/dist/components/layout/FilterMenu.tsx +4 -4
  416. package/dist/components/layout/Footer.js +1 -1
  417. package/dist/components/layout/Footer.js.map +1 -1
  418. package/dist/components/layout/Footer.tsx +1 -1
  419. package/dist/components/layout/GlobalSearch.js +1 -1
  420. package/dist/components/layout/GlobalSearch.js.map +1 -1
  421. package/dist/components/layout/GlobalSearch.tsx +1 -1
  422. package/dist/components/layout/ListingHeader.js +3 -3
  423. package/dist/components/layout/ListingHeader.js.map +1 -1
  424. package/dist/components/layout/ListingHeader.tsx +4 -4
  425. package/dist/components/layout/Loader.js +1 -1
  426. package/dist/components/layout/Loader.js.map +1 -1
  427. package/dist/components/layout/Loader.tsx +1 -1
  428. package/dist/components/layout/UserSidebar.js +1 -1
  429. package/dist/components/layout/UserSidebar.js.map +1 -1
  430. package/dist/components/layout/UserSidebar.tsx +1 -1
  431. package/dist/components/layout/navbar-one.js +2 -2
  432. package/dist/components/layout/navbar-one.js.map +1 -1
  433. package/dist/components/layout/navbar-one.tsx +8 -8
  434. package/dist/components/layout/navbar-two-menu.js +2 -2
  435. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  436. package/dist/components/layout/navbar-two-menu.tsx +7 -7
  437. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  438. package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -1
  439. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  440. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
  441. package/dist/components/shad-cn-ui/SolidPopover.d.ts +1 -0
  442. package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -1
  443. package/dist/components/shad-cn-ui/SolidPopover.js +124 -5
  444. package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -1
  445. package/dist/components/shad-cn-ui/SolidPopover.tsx +173 -10
  446. package/dist/constants/error-messages.d.ts +13 -0
  447. package/dist/constants/error-messages.d.ts.map +1 -1
  448. package/dist/constants/error-messages.js +17 -0
  449. package/dist/constants/error-messages.js.map +1 -1
  450. package/dist/constants/error-messages.ts +15 -0
  451. package/dist/resources/globals.css +32 -1
  452. package/dist/resources/solid-custom.css +6565 -0
  453. package/dist/resources/solid-primereact.css +14 -12
  454. package/dist/resources/solid-responsive.css +25 -2
  455. package/dist/resources/solid-tailwind-generated.css +1 -0
  456. package/dist/resources/solid-tailwind.css +3 -0
  457. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts +2 -0
  458. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts.map +1 -0
  459. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js +6 -0
  460. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js.map +1 -0
  461. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.tsx +5 -0
  462. package/dist/routes/pages/auth/SsoPage.js +1 -1
  463. package/dist/routes/pages/auth/SsoPage.js.map +1 -1
  464. package/dist/routes/pages/auth/SsoPage.tsx +1 -1
  465. package/dist/styles.d.ts +2 -1
  466. package/dist/styles.d.ts.map +1 -1
  467. package/dist/styles.js +2 -1
  468. package/dist/styles.js.map +1 -1
  469. package/dist/styles.ts +2 -1
  470. package/package.json +6 -3
@@ -68,7 +68,7 @@ const NavbarOne = () => {
68
68
 
69
69
 
70
70
  return (
71
- <div className="flex flex-column md:flex-row justify-content-between navBar">
71
+ <div className="flex flex-col md:flex-row justify-between navBar">
72
72
 
73
73
  {/* commented this as this is not working properly @Jenendar to figure this out... */}
74
74
  {currentMainMenu && (
@@ -117,7 +117,7 @@ const NavbarOne = () => {
117
117
  </div>
118
118
  {currentMenu && (
119
119
  <div className={visibleNavbar ? "show navBarTwo" : "hide navBarTwo"}>
120
- <div className="flex relative justify-content-between align-items-center pt-4 px-3 pb-3 mb-3">
120
+ <div className="flex relative justify-between items-center pt-6 px-4 pb-4 mb-4">
121
121
  <div className="absolute bottom-0" style={{ width: 50, height: 0.8, background: '#d8e2ea' }}></div>
122
122
  {!isSearchShow && <div className="text-base font-semibold">{currentMainMenu && currentMainMenu}</div>}
123
123
  {isSearchShow === false && (
@@ -125,7 +125,7 @@ const NavbarOne = () => {
125
125
  variant="ghost"
126
126
  size="sm"
127
127
  aria-label="Search"
128
- className="transparent-background min-w-0 px-2 py-1 border-1 border-round border-200"
128
+ className="transparent-background min-w-0 rounded border border-[var(--surface-200)] px-2 py-1"
129
129
  onClick={() => setSearchShow(true)}
130
130
  leftIcon={<SolidIcon name="si-search" />}
131
131
  />
@@ -137,7 +137,7 @@ const NavbarOne = () => {
137
137
  <input
138
138
  type="text"
139
139
  placeholder="Search"
140
- className="small-input text-sm w-full pr-6"
140
+ className="small-input text-sm w-full pr-12"
141
141
  value={searchTerm}
142
142
  onChange={(event) => setSearchTerm(event.target.value)}
143
143
  />
@@ -152,7 +152,7 @@ const NavbarOne = () => {
152
152
  </div>
153
153
  )}
154
154
  {/* <div className="input-icon inputDiv navtwo-searchbox">
155
- <i className="pi pi-search " style={{ color: '#8D9199' }}></i>
155
+ <i className="pi pi-search" style={{ color: '#8D9199' }}></i>
156
156
  <input
157
157
  type="text"
158
158
  placeholder="Jump to."
@@ -169,7 +169,7 @@ const NavbarOne = () => {
169
169
  />
170
170
  </div> */}
171
171
  </div>
172
- {/* <div className="flex flex-column md:flex-row navtwo-header justify-content-between">
172
+ {/* <div className="flex flex-col md:flex-row navtwo-header justify-between">
173
173
  <div className="text-sm font-semibold">{currentMainMenu && currentMainMenu}</div> */}
174
174
  {/* <a
175
175
  className={
@@ -190,7 +190,7 @@ const NavbarOne = () => {
190
190
  {/* <div className="p-inputgroup navtwo-searchbox">
191
191
 
192
192
  <span className="p-inputgroup-addon">
193
- <i className="pi pi-search "></i>
193
+ <i className="pi pi-search"></i>
194
194
  </span>
195
195
  <InputText
196
196
  placeholder="Search"
@@ -199,7 +199,7 @@ const NavbarOne = () => {
199
199
  <span className="p-inputgroup-addon">⌘+k</span>
200
200
  </div> */}
201
201
  {/* <div className="input-icon inputDiv navtwo-searchbox">
202
- <i className="pi pi-search " style={{ color: '#8D9199' }}></i>
202
+ <i className="pi pi-search" style={{ color: '#8D9199' }}></i>
203
203
  <input
204
204
  type="text"
205
205
  placeholder="Jump to."
@@ -27,7 +27,7 @@ var NavbarTwoMenu = function (_a) {
27
27
  var _a, _b;
28
28
  var isSelected = activeId !== null && item.id !== null && item.id === activeId;
29
29
  var isParentActive = activeId !== null && ((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) > 0 && hasActiveChild(item.items);
30
- return (_jsx("div", { className: "flex align-items-center cursor-pointer menuHead px-3 ".concat(isSelected || isParentActive ? "p-highlight" : ""), onClick: options.onClick, children: _jsxs(Link, { href: (item === null || item === void 0 ? void 0 : item.url) ? item === null || item === void 0 ? void 0 : item.url : "#", className: "w-full flex justify-content-between font-normal", children: [_jsxs("div", { className: "flex align-items-center", style: { gap: 10 }, children: [item.icon && (
30
+ return (_jsx("div", { className: "flex items-center cursor-pointer menuHead px-4 ".concat(isSelected || isParentActive ? "p-highlight" : ""), onClick: options.onClick, children: _jsxs(Link, { href: (item === null || item === void 0 ? void 0 : item.url) ? item === null || item === void 0 ? void 0 : item.url : "#", className: "w-full flex justify-between font-normal", children: [_jsxs("div", { className: "flex items-center", style: { gap: 10 }, children: [item.icon && (
31
31
  // material-symbols-${item.iconVariant ?? 'outlined'}
32
32
  _jsx("span", { className: "material-symbols-outlined", style: { fontSize: 18 }, children: item.icon })), _jsx("span", { children: item.label })] }), ((_b = item === null || item === void 0 ? void 0 : item.items) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
33
33
  _jsx("span", { className: "sidebar-chevrons ".concat(expandedKeys[item.key] ? "pi pi-angle-up" : "pi pi-angle-down") })] }) }, item === null || item === void 0 ? void 0 : item.key));
@@ -76,7 +76,7 @@ var NavbarTwoMenu = function (_a) {
76
76
  var isExpanded = !!expandedKeys[item.key];
77
77
  var isSelected = activeId !== null && item.id !== null && item.id === activeId;
78
78
  var isParentActive = hasChildren && hasActiveChild(item.items);
79
- return (_jsxs("li", { children: [_jsxs("div", { className: "flex align-items-center cursor-pointer menuHead px-3 ".concat(isSelected || isParentActive ? "p-highlight" : ""), children: [_jsx(Link, { href: (item === null || item === void 0 ? void 0 : item.url) ? item === null || item === void 0 ? void 0 : item.url : "#", className: "w-full flex justify-content-between font-normal", children: _jsxs("div", { className: "flex align-items-center", style: { gap: 10 }, children: [item.icon && (_jsx("span", { className: "material-symbols-outlined", style: { fontSize: 18 }, children: item.icon })), _jsx("span", { children: item.label })] }) }), hasChildren && (_jsx("button", { type: "button", className: "sidebar-chevrons-button", onClick: function () { return toggleExpansion(item.key); }, "aria-label": "Toggle ".concat(item.label, " menu"), children: _jsx("span", { className: "sidebar-chevrons ".concat(isExpanded ? "pi pi-angle-up" : "pi pi-angle-down") }) }))] }), hasChildren && isExpanded && (_jsx("div", { className: "solid-panel-menu-children pl-3", children: renderMenuItems(item.items) }))] }, item.key));
79
+ return (_jsxs("li", { children: [_jsxs("div", { className: "flex items-center cursor-pointer menuHead px-4 ".concat(isSelected || isParentActive ? "p-highlight" : ""), children: [_jsx(Link, { href: (item === null || item === void 0 ? void 0 : item.url) ? item === null || item === void 0 ? void 0 : item.url : "#", className: "w-full flex justify-between font-normal", children: _jsxs("div", { className: "flex items-center", style: { gap: 10 }, children: [item.icon && (_jsx("span", { className: "material-symbols-outlined", style: { fontSize: 18 }, children: item.icon })), _jsx("span", { children: item.label })] }) }), hasChildren && (_jsx("button", { type: "button", className: "sidebar-chevrons-button", onClick: function () { return toggleExpansion(item.key); }, "aria-label": "Toggle ".concat(item.label, " menu"), children: _jsx("span", { className: "sidebar-chevrons ".concat(isExpanded ? "pi pi-angle-up" : "pi pi-angle-down") }) }))] }), hasChildren && isExpanded && (_jsx("div", { className: "solid-panel-menu-children pl-6", children: renderMenuItems(item.items) }))] }, item.key));
80
80
  }) }));
81
81
  };
82
82
  return _jsx("div", { className: "solid-panel-menu", children: renderMenuItems(items) });
@@ -1 +1 @@
1
- {"version":3,"file":"navbar-two-menu.js","sourceRoot":"","sources":["../../../src/components/layout/navbar-two-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { useState, useEffect } from \"react\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\n\nconst NavbarTwoMenu = ({ menuItems }: any) => {\n const searchParams = useSearchParams();\n const [expandedKeys, setExpandedKeys] = useState<any>({});\n\n const activeId = searchParams.get(\"menuItemId\");\n const hasActiveChild = (items: any[]): boolean => {\n if (!activeId) return false;\n return items?.some((item) =>\n (item.id !== null && item.id === activeId) || hasActiveChild(item.items ?? [])\n );\n };\n const itemRenderer = (item: any, options: any) => {\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);\n return (\n <div key={item?.key} className={`flex align-items-center cursor-pointer menuHead px-3 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`} onClick={options.onClick} >\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-content-between font-normal\">\n <div className=\"flex align-items-center\" style={{ gap: 10 }}>\n {item.icon && (\n // material-symbols-${item.iconVariant ?? 'outlined'}\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>\n {item.label}\n </span>\n </div>\n {item?.items?.length > 0 &&\n <span className={`sidebar-chevrons ${expandedKeys[item.key] ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n }\n </Link>\n </div>\n )\n };\n\n const createMenuItems = (menuItems: any[]): any[] =>\n menuItems.map((mi) => {\n const menuItemId = new URLSearchParams(mi.path?.split(\"?\")[1]).get(\"menuItemId\");\n return {\n key: mi.key,\n id: menuItemId, // ← extracted from path\n label: mi.title,\n icon: mi.icon ?? \"\",\n // iconVariant: mi.iconVariant,\n template: itemRenderer,\n url: mi.path ?? null,\n items: mi.children ? createMenuItems(mi.children) : null,\n };\n })\n\n\n const items = createMenuItems(menuItems);\n\n // Auto-expand parents with active child when activeId changes\n useEffect(() => {\n const newExpandedKeys: any = {};\n const expandIfActive = (items: any[]) => {\n items?.forEach((item) => {\n if (item.items?.length && hasActiveChild(item.items)) {\n newExpandedKeys[item.key] = true;\n expandIfActive(item.items);\n }\n });\n };\n expandIfActive(createMenuItems(menuItems));\n setExpandedKeys((prev: any) => ({ ...prev, ...newExpandedKeys }));\n }, [activeId]);\n\n const toggleExpansion = (key: string) => {\n setExpandedKeys((prev: any) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const renderMenuItems = (menuItems: any[]): React.ReactNode => {\n return (\n <ul className=\"solid-panel-menu-list\">\n {menuItems.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = !!expandedKeys[item.key];\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = hasChildren && hasActiveChild(item.items);\n\n return (\n <li key={item.key}>\n <div className={`flex align-items-center cursor-pointer menuHead px-3 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`}>\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-content-between font-normal\">\n <div className=\"flex align-items-center\" style={{ gap: 10 }}>\n {item.icon && (\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>{item.label}</span>\n </div>\n </Link>\n {hasChildren && (\n <button\n type=\"button\"\n className=\"sidebar-chevrons-button\"\n onClick={() => toggleExpansion(item.key)}\n aria-label={`Toggle ${item.label} menu`}\n >\n <span className={`sidebar-chevrons ${isExpanded ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n </button>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div className=\"solid-panel-menu-children pl-3\">\n {renderMenuItems(item.items)}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n );\n };\n\n return <div className=\"solid-panel-menu\">{renderMenuItems(items)}</div>;\n};\n\nexport default NavbarTwoMenu;\n"]}
1
+ {"version":3,"file":"navbar-two-menu.js","sourceRoot":"","sources":["../../../src/components/layout/navbar-two-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { useState, useEffect } from \"react\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\n\nconst NavbarTwoMenu = ({ menuItems }: any) => {\n const searchParams = useSearchParams();\n const [expandedKeys, setExpandedKeys] = useState<any>({});\n\n const activeId = searchParams.get(\"menuItemId\");\n const hasActiveChild = (items: any[]): boolean => {\n if (!activeId) return false;\n return items?.some((item) =>\n (item.id !== null && item.id === activeId) || hasActiveChild(item.items ?? [])\n );\n };\n const itemRenderer = (item: any, options: any) => {\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);\n return (\n <div key={item?.key} className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`} onClick={options.onClick} >\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n // material-symbols-${item.iconVariant ?? 'outlined'}\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>\n {item.label}\n </span>\n </div>\n {item?.items?.length > 0 &&\n <span className={`sidebar-chevrons ${expandedKeys[item.key] ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n }\n </Link>\n </div>\n )\n };\n\n const createMenuItems = (menuItems: any[]): any[] =>\n menuItems.map((mi) => {\n const menuItemId = new URLSearchParams(mi.path?.split(\"?\")[1]).get(\"menuItemId\");\n return {\n key: mi.key,\n id: menuItemId, // ← extracted from path\n label: mi.title,\n icon: mi.icon ?? \"\",\n // iconVariant: mi.iconVariant,\n template: itemRenderer,\n url: mi.path ?? null,\n items: mi.children ? createMenuItems(mi.children) : null,\n };\n })\n\n\n const items = createMenuItems(menuItems);\n\n // Auto-expand parents with active child when activeId changes\n useEffect(() => {\n const newExpandedKeys: any = {};\n const expandIfActive = (items: any[]) => {\n items?.forEach((item) => {\n if (item.items?.length && hasActiveChild(item.items)) {\n newExpandedKeys[item.key] = true;\n expandIfActive(item.items);\n }\n });\n };\n expandIfActive(createMenuItems(menuItems));\n setExpandedKeys((prev: any) => ({ ...prev, ...newExpandedKeys }));\n }, [activeId]);\n\n const toggleExpansion = (key: string) => {\n setExpandedKeys((prev: any) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const renderMenuItems = (menuItems: any[]): React.ReactNode => {\n return (\n <ul className=\"solid-panel-menu-list\">\n {menuItems.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = !!expandedKeys[item.key];\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = hasChildren && hasActiveChild(item.items);\n\n return (\n <li key={item.key}>\n <div className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`}>\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>{item.label}</span>\n </div>\n </Link>\n {hasChildren && (\n <button\n type=\"button\"\n className=\"sidebar-chevrons-button\"\n onClick={() => toggleExpansion(item.key)}\n aria-label={`Toggle ${item.label} menu`}\n >\n <span className={`sidebar-chevrons ${isExpanded ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n </button>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div className=\"solid-panel-menu-children pl-6\">\n {renderMenuItems(item.items)}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n );\n };\n\n return <div className=\"solid-panel-menu\">{renderMenuItems(items)}</div>;\n};\n\nexport default NavbarTwoMenu;\n"]}
@@ -17,9 +17,9 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
17
17
  const isSelected = activeId !== null && item.id !== null && item.id === activeId;
18
18
  const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);
19
19
  return (
20
- <div key={item?.key} className={`flex align-items-center cursor-pointer menuHead px-3 ${isSelected || isParentActive ? "p-highlight" : ""}`} onClick={options.onClick} >
21
- <Link href={item?.url ? item?.url : "#"} className="w-full flex justify-content-between font-normal">
22
- <div className="flex align-items-center" style={{ gap: 10 }}>
20
+ <div key={item?.key} className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? "p-highlight" : ""}`} onClick={options.onClick} >
21
+ <Link href={item?.url ? item?.url : "#"} className="w-full flex justify-between font-normal">
22
+ <div className="flex items-center" style={{ gap: 10 }}>
23
23
  {item.icon && (
24
24
  // material-symbols-${item.iconVariant ?? 'outlined'}
25
25
  <span className="material-symbols-outlined" style={{ fontSize: 18 }}>
@@ -86,9 +86,9 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
86
86
 
87
87
  return (
88
88
  <li key={item.key}>
89
- <div className={`flex align-items-center cursor-pointer menuHead px-3 ${isSelected || isParentActive ? "p-highlight" : ""}`}>
90
- <Link href={item?.url ? item?.url : "#"} className="w-full flex justify-content-between font-normal">
91
- <div className="flex align-items-center" style={{ gap: 10 }}>
89
+ <div className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? "p-highlight" : ""}`}>
90
+ <Link href={item?.url ? item?.url : "#"} className="w-full flex justify-between font-normal">
91
+ <div className="flex items-center" style={{ gap: 10 }}>
92
92
  {item.icon && (
93
93
  <span className="material-symbols-outlined" style={{ fontSize: 18 }}>
94
94
  {item.icon}
@@ -109,7 +109,7 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
109
109
  )}
110
110
  </div>
111
111
  {hasChildren && isExpanded && (
112
- <div className="solid-panel-menu-children pl-3">
112
+ <div className="solid-panel-menu-children pl-6">
113
113
  {renderMenuItems(item.items)}
114
114
  </div>
115
115
  )}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidCodeEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAU,EACV,QAAQ,EACR,MAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,SAAS,EACT,QAAuB,GACxB,EAAE,oBAAoB,2CA2BtB"}
1
+ {"version":3,"file":"SolidCodeEditor.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":"AAEA,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,KAAU,EACV,QAAQ,EACR,MAAgB,EAChB,QAAiB,EACjB,QAAgB,EAChB,SAAS,EACT,QAAuB,GACxB,EAAE,oBAAoB,2CA8BtB"}
@@ -3,11 +3,13 @@ import Editor from "@monaco-editor/react";
3
3
  export function SolidCodeEditor(_a) {
4
4
  var _b = _a.value, value = _b === void 0 ? "" : _b, onChange = _a.onChange, _c = _a.height, height = _c === void 0 ? "300px" : _c, _d = _a.fontSize, fontSize = _d === void 0 ? "14px" : _d, _e = _a.readOnly, readOnly = _e === void 0 ? false : _e, className = _a.className, _f = _a.language, language = _f === void 0 ? "javascript" : _f;
5
5
  return (_jsx("div", { className: className, style: {
6
+ width: "100%",
7
+ minWidth: 0,
6
8
  border: "1px solid var(--surface-border, #d0d7de)",
7
9
  borderRadius: "0.5rem",
8
10
  overflow: "hidden",
9
11
  background: "var(--surface-card, #fff)",
10
- }, children: _jsx(Editor, { height: height, language: language, value: value, onChange: function (val) { return onChange === null || onChange === void 0 ? void 0 : onChange(val !== null && val !== void 0 ? val : ""); }, options: {
12
+ }, children: _jsx(Editor, { width: "100%", height: height, language: language, value: value, onChange: function (val) { return onChange === null || onChange === void 0 ? void 0 : onChange(val !== null && val !== void 0 ? val : ""); }, options: {
11
13
  readOnly: readOnly,
12
14
  minimap: { enabled: false },
13
15
  lineNumbers: "on",
@@ -1 +1 @@
1
- {"version":3,"file":"SolidCodeEditor.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAY1C,MAAM,UAAU,eAAe,CAAC,EAQT;QAPrB,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,QAAQ,cAAA,EACR,cAAgB,EAAhB,MAAM,mBAAG,OAAO,KAAA,EAChB,gBAAiB,EAAjB,QAAQ,mBAAG,MAAM,KAAA,EACjB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,eAAA,EACT,gBAAuB,EAAvB,QAAQ,mBAAG,YAAY,KAAA;IAEvB,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,MAAM,EAAE,0CAA0C;YAClD,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,2BAA2B;SACxC,YAED,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,GAAG,IAAK,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,EAArB,CAAqB,EACxC,OAAO,EAAE;gBACP,QAAQ,UAAA;gBACR,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC3B,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxF,oBAAoB,EAAE,KAAK;gBAC3B,mBAAmB,EAAE,KAAK;aAC3B,GACD,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import Editor from \"@monaco-editor/react\";\n\ntype SolidCodeEditorProps = {\n value?: string;\n onChange?: (value: string | undefined) => void;\n height?: string;\n fontSize?: string | number;\n readOnly?: boolean;\n className?: string;\n language?: string;\n};\n\nexport function SolidCodeEditor({\n value = \"\",\n onChange,\n height = \"300px\",\n fontSize = \"14px\",\n readOnly = false,\n className,\n language = \"javascript\",\n}: SolidCodeEditorProps) {\n return (\n <div\n className={className}\n style={{\n border: \"1px solid var(--surface-border, #d0d7de)\",\n borderRadius: \"0.5rem\",\n overflow: \"hidden\",\n background: \"var(--surface-card, #fff)\",\n }}\n >\n <Editor\n height={height}\n language={language}\n value={value}\n onChange={(val) => onChange?.(val ?? \"\")}\n options={{\n readOnly,\n minimap: { enabled: false },\n lineNumbers: \"on\",\n fontSize: typeof fontSize === \"number\" ? fontSize : parseInt(String(fontSize), 10) || 14,\n scrollBeyondLastLine: false,\n overviewRulerBorder: false,\n }}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidCodeEditor.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidCodeEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAY1C,MAAM,UAAU,eAAe,CAAC,EAQT;QAPrB,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,QAAQ,cAAA,EACR,cAAgB,EAAhB,MAAM,mBAAG,OAAO,KAAA,EAChB,gBAAiB,EAAjB,QAAQ,mBAAG,MAAM,KAAA,EACjB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,eAAA,EACT,gBAAuB,EAAvB,QAAQ,mBAAG,YAAY,KAAA;IAEvB,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,0CAA0C;YAClD,YAAY,EAAE,QAAQ;YACtB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,2BAA2B;SACxC,YAED,KAAC,MAAM,IACL,KAAK,EAAC,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,GAAG,IAAK,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,EAArB,CAAqB,EACxC,OAAO,EAAE;gBACP,QAAQ,UAAA;gBACR,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC3B,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;gBACxF,oBAAoB,EAAE,KAAK;gBAC3B,mBAAmB,EAAE,KAAK;aAC3B,GACD,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import Editor from \"@monaco-editor/react\";\n\ntype SolidCodeEditorProps = {\n value?: string;\n onChange?: (value: string | undefined) => void;\n height?: string;\n fontSize?: string | number;\n readOnly?: boolean;\n className?: string;\n language?: string;\n};\n\nexport function SolidCodeEditor({\n value = \"\",\n onChange,\n height = \"300px\",\n fontSize = \"14px\",\n readOnly = false,\n className,\n language = \"javascript\",\n}: SolidCodeEditorProps) {\n return (\n <div\n className={className}\n style={{\n width: \"100%\",\n minWidth: 0,\n border: \"1px solid var(--surface-border, #d0d7de)\",\n borderRadius: \"0.5rem\",\n overflow: \"hidden\",\n background: \"var(--surface-card, #fff)\",\n }}\n >\n <Editor\n width=\"100%\"\n height={height}\n language={language}\n value={value}\n onChange={(val) => onChange?.(val ?? \"\")}\n options={{\n readOnly,\n minimap: { enabled: false },\n lineNumbers: \"on\",\n fontSize: typeof fontSize === \"number\" ? fontSize : parseInt(String(fontSize), 10) || 14,\n scrollBeyondLastLine: false,\n overviewRulerBorder: false,\n }}\n />\n </div>\n );\n}\n"]}
@@ -23,6 +23,8 @@ export function SolidCodeEditor({
23
23
  <div
24
24
  className={className}
25
25
  style={{
26
+ width: "100%",
27
+ minWidth: 0,
26
28
  border: "1px solid var(--surface-border, #d0d7de)",
27
29
  borderRadius: "0.5rem",
28
30
  overflow: "hidden",
@@ -30,6 +32,7 @@ export function SolidCodeEditor({
30
32
  }}
31
33
  >
32
34
  <Editor
35
+ width="100%"
33
36
  height={height}
34
37
  language={language}
35
38
  value={value}
@@ -14,6 +14,7 @@ export declare const SolidPopoverContent: React.ForwardRefExoticComponent<React.
14
14
  sideOffset?: number | undefined;
15
15
  align?: "end" | "center" | "start" | undefined;
16
16
  side?: "left" | "right" | "top" | "bottom" | undefined;
17
+ portal?: boolean | undefined;
17
18
  } & React.RefAttributes<HTMLDivElement>>;
18
19
  export {};
19
20
  //# sourceMappingURL=SolidPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPopover.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,KAAK,iBAAiB,GAAG;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,EAAE,iBAAiB,2CAqDnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAe,GAChB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,OAuBA;AAED,eAAO,MAAM,mBAAmB;;;;wCA0B9B,CAAC"}
1
+ {"version":3,"file":"SolidPopover.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoC/B,KAAK,iBAAiB,GAAG;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA+EF,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,EAAE,iBAAiB,2CAwDnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAe,GAChB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,OAuBA;AAED,eAAO,MAAM,mBAAmB;;;;;wCAiG9B,CAAC"}
@@ -22,6 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import * as React from "react";
25
+ import { createPortal } from "react-dom";
25
26
  var SolidPopoverContext = React.createContext(null);
26
27
  var SOLID_POPOVER_EVENT = "solid-popover-open";
27
28
  function cx() {
@@ -31,9 +32,74 @@ function cx() {
31
32
  }
32
33
  return parts.filter(Boolean).join(" ");
33
34
  }
35
+ function assignRef(ref, value) {
36
+ if (typeof ref === "function") {
37
+ ref(value);
38
+ }
39
+ else if (ref && typeof ref === "object") {
40
+ ref.current = value;
41
+ }
42
+ }
43
+ var POPOVER_VIEWPORT_OFFSET = 8;
44
+ var POPOVER_PORTAL_Z_INDEX = 100000;
45
+ function clamp(value, min, max) {
46
+ return Math.min(Math.max(value, min), max);
47
+ }
48
+ function resolvePopoverPosition(_a) {
49
+ var triggerRect = _a.triggerRect, contentRect = _a.contentRect, side = _a.side, align = _a.align, sideOffset = _a.sideOffset;
50
+ var viewportWidth = window.innerWidth;
51
+ var viewportHeight = window.innerHeight;
52
+ var availableTop = triggerRect.top;
53
+ var availableBottom = viewportHeight - triggerRect.bottom;
54
+ var availableLeft = triggerRect.left;
55
+ var availableRight = viewportWidth - triggerRect.right;
56
+ var resolvedSide = side;
57
+ if (side === "bottom" && availableBottom < contentRect.height + sideOffset && availableTop > availableBottom) {
58
+ resolvedSide = "top";
59
+ }
60
+ else if (side === "top" && availableTop < contentRect.height + sideOffset && availableBottom > availableTop) {
61
+ resolvedSide = "bottom";
62
+ }
63
+ else if (side === "right" && availableRight < contentRect.width + sideOffset && availableLeft > availableRight) {
64
+ resolvedSide = "left";
65
+ }
66
+ else if (side === "left" && availableLeft < contentRect.width + sideOffset && availableRight > availableLeft) {
67
+ resolvedSide = "right";
68
+ }
69
+ var top = triggerRect.bottom + sideOffset;
70
+ var left = triggerRect.left;
71
+ if (resolvedSide === "bottom" || resolvedSide === "top") {
72
+ if (align === "center") {
73
+ left = triggerRect.left + (triggerRect.width / 2) - (contentRect.width / 2);
74
+ }
75
+ else if (align === "end") {
76
+ left = triggerRect.right - contentRect.width;
77
+ }
78
+ top = resolvedSide === "bottom"
79
+ ? triggerRect.bottom + sideOffset
80
+ : triggerRect.top - contentRect.height - sideOffset;
81
+ }
82
+ else {
83
+ if (align === "center") {
84
+ top = triggerRect.top + (triggerRect.height / 2) - (contentRect.height / 2);
85
+ }
86
+ else if (align === "end") {
87
+ top = triggerRect.bottom - contentRect.height;
88
+ }
89
+ left = resolvedSide === "right"
90
+ ? triggerRect.right + sideOffset
91
+ : triggerRect.left - contentRect.width - sideOffset;
92
+ }
93
+ return {
94
+ left: clamp(left, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportWidth - contentRect.width - POPOVER_VIEWPORT_OFFSET)),
95
+ top: clamp(top, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportHeight - contentRect.height - POPOVER_VIEWPORT_OFFSET)),
96
+ side: resolvedSide,
97
+ };
98
+ }
34
99
  export function SolidPopover(_a) {
35
100
  var open = _a.open, onOpenChange = _a.onOpenChange, children = _a.children, autoCloseGroup = _a.autoCloseGroup;
36
101
  var rootRef = React.useRef(null);
102
+ var contentRef = React.useRef(null);
37
103
  var popoverId = React.useId();
38
104
  var _b = React.useState(false), internalOpen = _b[0], setInternalOpen = _b[1];
39
105
  var isControlled = typeof open === "boolean";
@@ -68,7 +134,9 @@ export function SolidPopover(_a) {
68
134
  return;
69
135
  var handlePointerDown = function (event) {
70
136
  var root = rootRef.current;
71
- if (!root || root.contains(event.target))
137
+ var content = contentRef.current;
138
+ var target = event.target;
139
+ if (!root || root.contains(target) || (content === null || content === void 0 ? void 0 : content.contains(target)))
72
140
  return;
73
141
  handleSetOpen(false);
74
142
  };
@@ -77,7 +145,7 @@ export function SolidPopover(_a) {
77
145
  document.removeEventListener("pointerdown", handlePointerDown);
78
146
  };
79
147
  }, [currentOpen, handleSetOpen]);
80
- return (_jsx(SolidPopoverContext.Provider, { value: { open: currentOpen, setOpen: handleSetOpen }, children: _jsx("div", { className: "solid-popover-root", ref: rootRef, children: children }) }));
148
+ return (_jsx(SolidPopoverContext.Provider, { value: { open: currentOpen, setOpen: handleSetOpen, rootRef: rootRef, contentRef: contentRef }, children: _jsx("div", { className: "solid-popover-root", ref: rootRef, children: children }) }));
81
149
  }
82
150
  export function SolidPopoverTrigger(_a) {
83
151
  var children = _a.children, _b = _a.asChild, asChild = _b === void 0 ? false : _b;
@@ -99,12 +167,63 @@ export function SolidPopoverTrigger(_a) {
99
167
  }
100
168
  export var SolidPopoverContent = React.forwardRef(function SolidPopoverContent(_a, ref) {
101
169
  var _b;
102
- var className = _a.className, children = _a.children, _c = _a.sideOffset, sideOffset = _c === void 0 ? 4 : _c, _d = _a.align, align = _d === void 0 ? "end" : _d, _e = _a.side, side = _e === void 0 ? "bottom" : _e, style = _a.style, props = __rest(_a, ["className", "children", "sideOffset", "align", "side", "style"]);
170
+ var className = _a.className, children = _a.children, _c = _a.sideOffset, sideOffset = _c === void 0 ? 4 : _c, _d = _a.align, align = _d === void 0 ? "end" : _d, _e = _a.side, side = _e === void 0 ? "bottom" : _e, style = _a.style, _f = _a.portal, portal = _f === void 0 ? true : _f, props = __rest(_a, ["className", "children", "sideOffset", "align", "side", "style", "portal"]);
103
171
  var ctx = React.useContext(SolidPopoverContext);
104
172
  if (!ctx || !ctx.open)
105
173
  return null;
174
+ var localRef = React.useRef(null);
175
+ var _g = React.useState(null), portalPosition = _g[0], setPortalPosition = _g[1];
176
+ var attachRef = React.useCallback(function (node) {
177
+ localRef.current = node;
178
+ ctx.contentRef.current = node;
179
+ assignRef(ref, node);
180
+ }, [ctx.contentRef, ref]);
181
+ React.useLayoutEffect(function () {
182
+ if (!portal || typeof window === "undefined") {
183
+ setPortalPosition(null);
184
+ return;
185
+ }
186
+ var updatePosition = function () {
187
+ var trigger = ctx.rootRef.current;
188
+ var content = localRef.current;
189
+ if (!trigger || !content)
190
+ return;
191
+ var triggerRect = trigger.getBoundingClientRect();
192
+ var contentRect = content.getBoundingClientRect();
193
+ var nextPosition = resolvePopoverPosition({ triggerRect: triggerRect, contentRect: contentRect, side: side, align: align, sideOffset: sideOffset });
194
+ setPortalPosition(nextPosition);
195
+ };
196
+ var rafId = window.requestAnimationFrame(updatePosition);
197
+ window.addEventListener("resize", updatePosition);
198
+ window.addEventListener("scroll", updatePosition, true);
199
+ var observer = typeof ResizeObserver !== "undefined"
200
+ ? new ResizeObserver(function () { return updatePosition(); })
201
+ : null;
202
+ if (observer) {
203
+ if (ctx.rootRef.current)
204
+ observer.observe(ctx.rootRef.current);
205
+ if (localRef.current)
206
+ observer.observe(localRef.current);
207
+ }
208
+ return function () {
209
+ window.cancelAnimationFrame(rafId);
210
+ window.removeEventListener("resize", updatePosition);
211
+ window.removeEventListener("scroll", updatePosition, true);
212
+ observer === null || observer === void 0 ? void 0 : observer.disconnect();
213
+ };
214
+ }, [align, ctx.rootRef, portal, side, sideOffset]);
106
215
  var offsetValue = "".concat(sideOffset, "px");
107
- var contentStyle = __assign(__assign({}, (style !== null && style !== void 0 ? style : {})), (_b = {}, _b["--solid-popover-side-offset"] = offsetValue, _b));
108
- return (_jsx("div", __assign({ ref: ref, className: cx("solid-popover-content", className), role: "dialog", "data-align": align, "data-side": side, style: contentStyle }, props, { children: children })));
216
+ var contentStyle = React.useMemo(function () {
217
+ var _a, _b;
218
+ var _c, _d;
219
+ if (!portal) {
220
+ return __assign(__assign({}, (style !== null && style !== void 0 ? style : {})), (_a = {}, _a["--solid-popover-side-offset"] = offsetValue, _a));
221
+ }
222
+ return __assign(__assign({}, (style !== null && style !== void 0 ? style : {})), (_b = {}, _b["--solid-popover-side-offset"] = offsetValue, _b.position = "fixed", _b.top = (_c = portalPosition === null || portalPosition === void 0 ? void 0 : portalPosition.top) !== null && _c !== void 0 ? _c : 0, _b.left = (_d = portalPosition === null || portalPosition === void 0 ? void 0 : portalPosition.left) !== null && _d !== void 0 ? _d : 0, _b.right = "auto", _b.bottom = "auto", _b.transform = "none", _b.zIndex = POPOVER_PORTAL_Z_INDEX, _b.pointerEvents = "auto", _b.visibility = portalPosition ? "visible" : "hidden", _b));
223
+ }, [offsetValue, portal, portalPosition, style]);
224
+ var content = (_jsx("div", __assign({ ref: attachRef, className: cx("solid-popover-content", className), role: "dialog", "data-align": align, "data-side": (_b = portalPosition === null || portalPosition === void 0 ? void 0 : portalPosition.side) !== null && _b !== void 0 ? _b : side, "data-portal": portal ? "true" : "false", style: contentStyle }, props, { children: children })));
225
+ return portal && typeof document !== "undefined"
226
+ ? createPortal(content, document.body)
227
+ : content;
109
228
  });
110
229
  //# sourceMappingURL=SolidPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidPopover.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\n\ntype SolidPopoverContextValue = {\n open: boolean;\n setOpen: (open: boolean) => void;\n};\n\nconst SolidPopoverContext = React.createContext<SolidPopoverContextValue | null>(null);\nconst SOLID_POPOVER_EVENT = \"solid-popover-open\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\ntype SolidPopoverContentProps = React.HTMLAttributes<HTMLDivElement> & {\n sideOffset?: number;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n};\n\ntype SolidPopoverContentStyle = React.CSSProperties & {\n [\"--solid-popover-side-offset\"]?: string;\n};\n\ntype SolidPopoverProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n autoCloseGroup?: string;\n};\n\nexport function SolidPopover({\n open,\n onOpenChange,\n children,\n autoCloseGroup,\n}: SolidPopoverProps) {\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const popoverId = React.useId();\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = typeof open === \"boolean\";\n const currentOpen = isControlled ? !!open : internalOpen;\n\n const handleSetOpen = React.useCallback((next: boolean) => {\n if (!isControlled) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n if (next && autoCloseGroup && typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(SOLID_POPOVER_EVENT, { detail: { id: popoverId, group: autoCloseGroup } })\n );\n }\n }, [autoCloseGroup, isControlled, onOpenChange, popoverId]);\n\n React.useEffect(() => {\n if (!autoCloseGroup || typeof window === \"undefined\") return;\n const handleExternalOpen = (event: Event) => {\n const detail = (event as CustomEvent<{ id: string; group?: string }>).detail;\n if (!detail || detail.group !== autoCloseGroup) return;\n if (detail.id === popoverId) return;\n handleSetOpen(false);\n };\n window.addEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n return () => {\n window.removeEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n };\n }, [autoCloseGroup, handleSetOpen, popoverId]);\n\n React.useEffect(() => {\n if (!currentOpen || typeof document === \"undefined\") return;\n const handlePointerDown = (event: MouseEvent) => {\n const root = rootRef.current;\n if (!root || root.contains(event.target as Node)) return;\n handleSetOpen(false);\n };\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => {\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n };\n }, [currentOpen, handleSetOpen]);\n\n return (\n <SolidPopoverContext.Provider value={{ open: currentOpen, setOpen: handleSetOpen }}>\n <div className=\"solid-popover-root\" ref={rootRef}>\n {children}\n </div>\n </SolidPopoverContext.Provider>\n );\n}\n\nexport function SolidPopoverTrigger({\n children,\n asChild = false,\n}: {\n children: React.ReactNode;\n asChild?: boolean;\n}) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx) return null;\n\n const child = asChild && React.isValidElement(children)\n ? React.cloneElement(children as any, {\n onClick: (event: React.MouseEvent) => {\n (children as any).props?.onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n },\n })\n : (\n <button\n type=\"button\"\n onClick={() => ctx.setOpen(!ctx.open)}\n className=\"solid-popover-trigger\"\n >\n {children}\n </button>\n );\n\n return child as any;\n}\n\nexport const SolidPopoverContent = React.forwardRef<HTMLDivElement, SolidPopoverContentProps>(function SolidPopoverContent(\n { className, children, sideOffset = 4, align = \"end\", side = \"bottom\", style, ...props },\n ref\n) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx || !ctx.open) return null;\n\n const offsetValue = `${sideOffset}px`;\n const contentStyle: SolidPopoverContentStyle = {\n ...(style ?? {}),\n [\"--solid-popover-side-offset\"]: offsetValue,\n };\n\n return (\n <div\n ref={ref}\n className={cx(\"solid-popover-content\", className)}\n role=\"dialog\"\n data-align={align}\n data-side={side}\n style={contentStyle}\n {...props}\n >\n {children}\n </div>\n );\n});\n"]}
1
+ {"version":3,"file":"SolidPopover.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidPopover.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { createPortal } from \"react-dom\";\n\ntype SolidPopoverContextValue = {\n open: boolean;\n setOpen: (open: boolean) => void;\n rootRef: React.MutableRefObject<HTMLDivElement | null>;\n contentRef: React.MutableRefObject<HTMLDivElement | null>;\n};\n\nconst SolidPopoverContext = React.createContext<SolidPopoverContextValue | null>(null);\nconst SOLID_POPOVER_EVENT = \"solid-popover-open\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction assignRef<T>(ref: React.ForwardedRef<T>, value: T) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && typeof ref === \"object\") {\n ref.current = value;\n }\n}\n\ntype SolidPopoverContentProps = React.HTMLAttributes<HTMLDivElement> & {\n sideOffset?: number;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n portal?: boolean;\n};\n\ntype SolidPopoverContentStyle = React.CSSProperties & {\n [\"--solid-popover-side-offset\"]?: string;\n};\n\ntype SolidPopoverProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n autoCloseGroup?: string;\n};\n\ntype PopoverPosition = {\n left: number;\n top: number;\n side: \"top\" | \"right\" | \"bottom\" | \"left\";\n};\n\nconst POPOVER_VIEWPORT_OFFSET = 8;\nconst POPOVER_PORTAL_Z_INDEX = 100000;\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction resolvePopoverPosition({\n triggerRect,\n contentRect,\n side,\n align,\n sideOffset,\n}: {\n triggerRect: DOMRect;\n contentRect: DOMRect;\n side: \"top\" | \"right\" | \"bottom\" | \"left\";\n align: \"start\" | \"center\" | \"end\";\n sideOffset: number;\n}): PopoverPosition {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const availableTop = triggerRect.top;\n const availableBottom = viewportHeight - triggerRect.bottom;\n const availableLeft = triggerRect.left;\n const availableRight = viewportWidth - triggerRect.right;\n\n let resolvedSide = side;\n\n if (side === \"bottom\" && availableBottom < contentRect.height + sideOffset && availableTop > availableBottom) {\n resolvedSide = \"top\";\n } else if (side === \"top\" && availableTop < contentRect.height + sideOffset && availableBottom > availableTop) {\n resolvedSide = \"bottom\";\n } else if (side === \"right\" && availableRight < contentRect.width + sideOffset && availableLeft > availableRight) {\n resolvedSide = \"left\";\n } else if (side === \"left\" && availableLeft < contentRect.width + sideOffset && availableRight > availableLeft) {\n resolvedSide = \"right\";\n }\n\n let top = triggerRect.bottom + sideOffset;\n let left = triggerRect.left;\n\n if (resolvedSide === \"bottom\" || resolvedSide === \"top\") {\n if (align === \"center\") {\n left = triggerRect.left + (triggerRect.width / 2) - (contentRect.width / 2);\n } else if (align === \"end\") {\n left = triggerRect.right - contentRect.width;\n }\n\n top = resolvedSide === \"bottom\"\n ? triggerRect.bottom + sideOffset\n : triggerRect.top - contentRect.height - sideOffset;\n } else {\n if (align === \"center\") {\n top = triggerRect.top + (triggerRect.height / 2) - (contentRect.height / 2);\n } else if (align === \"end\") {\n top = triggerRect.bottom - contentRect.height;\n }\n\n left = resolvedSide === \"right\"\n ? triggerRect.right + sideOffset\n : triggerRect.left - contentRect.width - sideOffset;\n }\n\n return {\n left: clamp(left, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportWidth - contentRect.width - POPOVER_VIEWPORT_OFFSET)),\n top: clamp(top, POPOVER_VIEWPORT_OFFSET, Math.max(POPOVER_VIEWPORT_OFFSET, viewportHeight - contentRect.height - POPOVER_VIEWPORT_OFFSET)),\n side: resolvedSide,\n };\n}\n\nexport function SolidPopover({\n open,\n onOpenChange,\n children,\n autoCloseGroup,\n}: SolidPopoverProps) {\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const contentRef = React.useRef<HTMLDivElement | null>(null);\n const popoverId = React.useId();\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = typeof open === \"boolean\";\n const currentOpen = isControlled ? !!open : internalOpen;\n\n const handleSetOpen = React.useCallback((next: boolean) => {\n if (!isControlled) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n if (next && autoCloseGroup && typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(SOLID_POPOVER_EVENT, { detail: { id: popoverId, group: autoCloseGroup } })\n );\n }\n }, [autoCloseGroup, isControlled, onOpenChange, popoverId]);\n\n React.useEffect(() => {\n if (!autoCloseGroup || typeof window === \"undefined\") return;\n const handleExternalOpen = (event: Event) => {\n const detail = (event as CustomEvent<{ id: string; group?: string }>).detail;\n if (!detail || detail.group !== autoCloseGroup) return;\n if (detail.id === popoverId) return;\n handleSetOpen(false);\n };\n window.addEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n return () => {\n window.removeEventListener(SOLID_POPOVER_EVENT, handleExternalOpen as EventListener);\n };\n }, [autoCloseGroup, handleSetOpen, popoverId]);\n\n React.useEffect(() => {\n if (!currentOpen || typeof document === \"undefined\") return;\n const handlePointerDown = (event: MouseEvent) => {\n const root = rootRef.current;\n const content = contentRef.current;\n const target = event.target as Node;\n if (!root || root.contains(target) || content?.contains(target)) return;\n handleSetOpen(false);\n };\n document.addEventListener(\"pointerdown\", handlePointerDown);\n return () => {\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n };\n }, [currentOpen, handleSetOpen]);\n\n return (\n <SolidPopoverContext.Provider value={{ open: currentOpen, setOpen: handleSetOpen, rootRef, contentRef }}>\n <div className=\"solid-popover-root\" ref={rootRef}>\n {children}\n </div>\n </SolidPopoverContext.Provider>\n );\n}\n\nexport function SolidPopoverTrigger({\n children,\n asChild = false,\n}: {\n children: React.ReactNode;\n asChild?: boolean;\n}) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx) return null;\n\n const child = asChild && React.isValidElement(children)\n ? React.cloneElement(children as any, {\n onClick: (event: React.MouseEvent) => {\n (children as any).props?.onClick?.(event);\n if (event.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n },\n })\n : (\n <button\n type=\"button\"\n onClick={() => ctx.setOpen(!ctx.open)}\n className=\"solid-popover-trigger\"\n >\n {children}\n </button>\n );\n\n return child as any;\n}\n\nexport const SolidPopoverContent = React.forwardRef<HTMLDivElement, SolidPopoverContentProps>(function SolidPopoverContent(\n { className, children, sideOffset = 4, align = \"end\", side = \"bottom\", style, portal = true, ...props },\n ref\n) {\n const ctx = React.useContext(SolidPopoverContext);\n if (!ctx || !ctx.open) return null;\n\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const [portalPosition, setPortalPosition] = React.useState<PopoverPosition | null>(null);\n\n const attachRef = React.useCallback((node: HTMLDivElement | null) => {\n localRef.current = node;\n ctx.contentRef.current = node;\n assignRef(ref, node);\n }, [ctx.contentRef, ref]);\n\n React.useLayoutEffect(() => {\n if (!portal || typeof window === \"undefined\") {\n setPortalPosition(null);\n return;\n }\n\n const updatePosition = () => {\n const trigger = ctx.rootRef.current;\n const content = localRef.current;\n if (!trigger || !content) return;\n\n const triggerRect = trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const nextPosition = resolvePopoverPosition({ triggerRect, contentRect, side, align, sideOffset });\n\n setPortalPosition(nextPosition);\n };\n\n const rafId = window.requestAnimationFrame(updatePosition);\n window.addEventListener(\"resize\", updatePosition);\n window.addEventListener(\"scroll\", updatePosition, true);\n\n const observer = typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(() => updatePosition())\n : null;\n\n if (observer) {\n if (ctx.rootRef.current) observer.observe(ctx.rootRef.current);\n if (localRef.current) observer.observe(localRef.current);\n }\n\n return () => {\n window.cancelAnimationFrame(rafId);\n window.removeEventListener(\"resize\", updatePosition);\n window.removeEventListener(\"scroll\", updatePosition, true);\n observer?.disconnect();\n };\n }, [align, ctx.rootRef, portal, side, sideOffset]);\n\n const offsetValue = `${sideOffset}px`;\n const contentStyle = React.useMemo<SolidPopoverContentStyle>(() => {\n if (!portal) {\n return {\n ...(style ?? {}),\n [\"--solid-popover-side-offset\"]: offsetValue,\n };\n }\n\n return {\n ...(style ?? {}),\n [\"--solid-popover-side-offset\"]: offsetValue,\n position: \"fixed\",\n top: portalPosition?.top ?? 0,\n left: portalPosition?.left ?? 0,\n right: \"auto\",\n bottom: \"auto\",\n transform: \"none\",\n zIndex: POPOVER_PORTAL_Z_INDEX,\n pointerEvents: \"auto\",\n visibility: portalPosition ? \"visible\" : \"hidden\",\n };\n }, [offsetValue, portal, portalPosition, style]);\n\n const content = (\n <div\n ref={attachRef}\n className={cx(\"solid-popover-content\", className)}\n role=\"dialog\"\n data-align={align}\n data-side={portalPosition?.side ?? side}\n data-portal={portal ? \"true\" : \"false\"}\n style={contentStyle}\n {...props}\n >\n {children}\n </div>\n );\n\n return portal && typeof document !== \"undefined\"\n ? createPortal(content, document.body)\n : content;\n});\n"]}