@solidxai/core-ui 0.1.8-beta.0 → 0.1.8-beta.10

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 (301) hide show
  1. package/dist/components/Svg/FileSvg.js +1 -1
  2. package/dist/components/Svg/FileSvg.js.map +1 -1
  3. package/dist/components/Svg/FileSvg.tsx +1 -1
  4. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  5. package/dist/components/auth/AuthLayout.js +94 -38
  6. package/dist/components/auth/AuthLayout.js.map +1 -1
  7. package/dist/components/auth/AuthLayout.tsx +49 -39
  8. package/dist/components/auth/AuthSettingsContext.d.ts +10 -0
  9. package/dist/components/auth/AuthSettingsContext.d.ts.map +1 -0
  10. package/dist/components/auth/AuthSettingsContext.js +49 -0
  11. package/dist/components/auth/AuthSettingsContext.js.map +1 -0
  12. package/dist/components/auth/AuthSettingsContext.tsx +19 -0
  13. package/dist/components/auth/AuthTabs.d.ts.map +1 -1
  14. package/dist/components/auth/AuthTabs.js +9 -9
  15. package/dist/components/auth/AuthTabs.js.map +1 -1
  16. package/dist/components/auth/AuthTabs.tsx +14 -15
  17. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  18. package/dist/components/auth/ForgotPasswordThankYou.js +2 -6
  19. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  20. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -7
  21. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  22. package/dist/components/auth/SolidForgotPassword.js +3 -7
  23. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  24. package/dist/components/auth/SolidForgotPassword.tsx +3 -7
  25. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  26. package/dist/components/auth/SolidInitialLoginOtp.js +4 -7
  27. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  28. package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -5
  29. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  30. package/dist/components/auth/SolidInitiateRegisterOtp.js +4 -7
  31. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  32. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -5
  33. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  34. package/dist/components/auth/SolidLogin.js +5 -8
  35. package/dist/components/auth/SolidLogin.js.map +1 -1
  36. package/dist/components/auth/SolidLogin.tsx +5 -6
  37. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  38. package/dist/components/auth/SolidRegister.js +9 -12
  39. package/dist/components/auth/SolidRegister.js.map +1 -1
  40. package/dist/components/auth/SolidRegister.tsx +21 -11
  41. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  42. package/dist/components/auth/SolidResetPassword.js +2 -6
  43. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  44. package/dist/components/auth/SolidResetPassword.tsx +2 -6
  45. package/dist/components/common/AuthBanner.js.map +1 -1
  46. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  47. package/dist/components/common/GeneralSettings.js +48 -51
  48. package/dist/components/common/GeneralSettings.js.map +1 -1
  49. package/dist/components/common/GeneralSettings.tsx +8 -25
  50. package/dist/components/common/SolidAdmin.js +1 -1
  51. package/dist/components/common/SolidAdmin.js.map +1 -1
  52. package/dist/components/common/SolidAdmin.tsx +1 -1
  53. package/dist/components/common/SolidFormStepper.js +1 -1
  54. package/dist/components/common/SolidFormStepper.js.map +1 -1
  55. package/dist/components/common/SolidFormStepper.tsx +1 -1
  56. package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
  57. package/dist/components/common/SolidThemeProvider.js +5 -21
  58. package/dist/components/common/SolidThemeProvider.js.map +1 -1
  59. package/dist/components/common/SolidThemeProvider.tsx +6 -24
  60. package/dist/components/common/solidModuleHome.module.css +1 -2
  61. package/dist/components/core/card/SolidCardView.js +1 -1
  62. package/dist/components/core/card/SolidCardView.js.map +1 -1
  63. package/dist/components/core/card/SolidCardView.tsx +1 -1
  64. package/dist/components/core/chatter/chatter.module.css +7 -7
  65. package/dist/components/core/common/PDFViewer.js +1 -1
  66. package/dist/components/core/common/PDFViewer.js.map +1 -1
  67. package/dist/components/core/common/PDFViewer.tsx +2 -2
  68. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +1 -1
  69. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +3 -4
  70. package/dist/components/core/common/SolidGlobalSearchElement.js +3 -3
  71. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  72. package/dist/components/core/common/SolidGlobalSearchElement.tsx +3 -3
  73. package/dist/components/core/common/dndCompat.d.ts +8 -0
  74. package/dist/components/core/common/dndCompat.d.ts.map +1 -0
  75. package/dist/components/core/common/dndCompat.js +5 -0
  76. package/dist/components/core/common/dndCompat.js.map +1 -0
  77. package/dist/components/core/common/dndCompat.ts +9 -0
  78. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +2 -2
  79. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -1
  80. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +2 -2
  81. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +2 -2
  82. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -1
  83. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +2 -2
  84. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js +1 -1
  85. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -1
  86. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +1 -1
  87. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js +1 -1
  88. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -1
  89. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +1 -1
  90. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js +1 -1
  91. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js.map +1 -1
  92. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx +1 -1
  93. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js +1 -1
  94. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js.map +1 -1
  95. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.tsx +1 -1
  96. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  97. package/dist/components/core/form/SolidFormActionHeader.js +4 -0
  98. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  99. package/dist/components/core/form/SolidFormActionHeader.tsx +12 -0
  100. package/dist/components/core/form/SolidFormView.js +42 -41
  101. package/dist/components/core/form/SolidFormView.js.map +1 -1
  102. package/dist/components/core/form/SolidFormView.tsx +16 -16
  103. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  104. package/dist/components/core/form/fields/SolidDateTimeField.js +8 -2
  105. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  106. package/dist/components/core/form/fields/SolidDateTimeField.tsx +8 -2
  107. package/dist/components/core/form/fields/SolidEmailField.d.ts.map +1 -1
  108. package/dist/components/core/form/fields/SolidEmailField.js +5 -4
  109. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  110. package/dist/components/core/form/fields/SolidEmailField.tsx +17 -15
  111. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  112. package/dist/components/core/form/fields/SolidIntegerField.js +5 -4
  113. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  114. package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -1
  115. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  116. package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
  117. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  118. package/dist/components/core/form/fields/SolidShortTextField.tsx +7 -1
  119. package/dist/components/core/form/fields/SolidTimeField.js +1 -1
  120. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  121. package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
  122. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
  123. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +3 -3
  124. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  125. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +0 -5
  126. package/dist/components/core/form/fields/solidFields.module.css +0 -3
  127. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts +1 -1
  128. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  129. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  130. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +1 -1
  131. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  132. package/dist/components/core/kanban/KanbanCard.js +2 -2
  133. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  134. package/dist/components/core/kanban/KanbanCard.tsx +4 -3
  135. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  136. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  137. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  138. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  139. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  140. package/dist/components/core/kanban/SolidKanbanView.js +42 -45
  141. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  142. package/dist/components/core/kanban/SolidKanbanView.tsx +17 -26
  143. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  144. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  145. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  146. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  147. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  148. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  149. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  150. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  151. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  152. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  153. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  154. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  155. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  156. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  157. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  158. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  159. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  160. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  161. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +4 -3
  162. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  163. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +13 -12
  164. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  165. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  166. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  167. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  168. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  169. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  170. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +1 -1
  171. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  172. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +6 -4
  173. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  174. package/dist/components/core/list/SolidListView.js +5 -12
  175. package/dist/components/core/list/SolidListView.js.map +1 -1
  176. package/dist/components/core/list/SolidListView.tsx +29 -49
  177. package/dist/components/core/list/SolidListViewRowActionsMenu.js +2 -2
  178. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  179. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +2 -2
  180. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  181. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  182. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  183. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  184. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  185. package/dist/components/core/module/CreateModule.js +1 -1
  186. package/dist/components/core/module/CreateModule.js.map +1 -1
  187. package/dist/components/core/module/CreateModule.tsx +1 -1
  188. package/dist/components/core/solid-ai/SolidAiChat.module.css +3 -3
  189. package/dist/components/core/tree/SolidTreeView.js +1 -1
  190. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  191. package/dist/components/core/tree/SolidTreeView.tsx +1 -1
  192. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +283 -9
  193. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
  194. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +35 -28
  195. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
  196. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +64 -62
  197. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
  198. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
  199. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +4 -4
  200. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
  201. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +17 -10
  202. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -1
  203. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +2 -19
  204. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -1
  205. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +24 -43
  206. package/dist/components/core/users/CreateUser.css +114 -0
  207. package/dist/components/core/users/CreateUser.d.ts +1 -0
  208. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  209. package/dist/components/core/users/CreateUser.js +4 -3
  210. package/dist/components/core/users/CreateUser.js.map +1 -1
  211. package/dist/components/core/users/CreateUser.tsx +32 -26
  212. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  213. package/dist/components/layout/AdminTopHeader.js +25 -1
  214. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  215. package/dist/components/layout/AdminTopHeader.tsx +38 -1
  216. package/dist/components/layout/context/layoutcontext.js +2 -2
  217. package/dist/components/layout/context/layoutcontext.js.map +1 -1
  218. package/dist/components/layout/context/layoutcontext.tsx +2 -2
  219. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  220. package/dist/components/shad-cn-ui/SolidAutocomplete.js +9 -1
  221. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  222. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +10 -1
  223. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts +6 -1
  224. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts.map +1 -1
  225. package/dist/components/shad-cn-ui/SolidConfirmDialog.js +3 -3
  226. package/dist/components/shad-cn-ui/SolidConfirmDialog.js.map +1 -1
  227. package/dist/components/shad-cn-ui/SolidConfirmDialog.tsx +15 -3
  228. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  229. package/dist/components/shad-cn-ui/SolidDatePicker.js +12 -2
  230. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  231. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +13 -2
  232. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  233. package/dist/components/shad-cn-ui/SolidTabs.js +5 -2
  234. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  235. package/dist/components/shad-cn-ui/SolidTabs.tsx +51 -25
  236. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  237. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  238. package/dist/components/solid-ui/SolidButton.js +36 -0
  239. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  240. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  241. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  242. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  243. package/dist/components/solid-ui/SolidTabs.js +22 -0
  244. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  245. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  246. package/dist/components/solid-ui/index.d.ts +3 -0
  247. package/dist/components/solid-ui/index.d.ts.map +1 -0
  248. package/dist/components/solid-ui/index.js +3 -0
  249. package/dist/components/solid-ui/index.js.map +1 -0
  250. package/dist/components/solid-ui/index.ts +2 -0
  251. package/dist/helpers/downloadMediaFile.d.ts +1 -1
  252. package/dist/helpers/downloadMediaFile.d.ts.map +1 -1
  253. package/dist/helpers/downloadMediaFile.js +8 -66
  254. package/dist/helpers/downloadMediaFile.js.map +1 -1
  255. package/dist/helpers/downloadMediaFile.tsx +8 -18
  256. package/dist/resources/globals.css +104 -84
  257. package/dist/resources/images/Background.svg +5 -1
  258. package/dist/resources/images/Navigation/SolidSettinsIcon.svg +7 -1
  259. package/dist/resources/images/errors/error.svg +14 -10
  260. package/dist/resources/shadcn-base.css +120 -354
  261. package/dist/resources/themes/solid-dark-purple/theme.css +26 -36
  262. package/dist/resources/themes/solid-light-purple/theme.css +129 -129
  263. package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -1
  264. package/dist/routes/SolidLayoutRegistry.js +3 -1
  265. package/dist/routes/SolidLayoutRegistry.js.map +1 -1
  266. package/dist/routes/SolidLayoutRegistry.tsx +3 -1
  267. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  268. package/dist/routes/guards/AuthGuard.js +4 -1
  269. package/dist/routes/guards/AuthGuard.js.map +1 -1
  270. package/dist/routes/guards/AuthGuard.tsx +6 -1
  271. package/package.json +1 -1
  272. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  273. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  274. package/dist/components/auth/SolidOTPVerify.js +0 -67
  275. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  276. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  277. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  278. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  279. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  280. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  281. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  282. package/dist/nextAuth/authProviders.d.ts +0 -4
  283. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  284. package/dist/nextAuth/authProviders.js +0 -198
  285. package/dist/nextAuth/authProviders.js.map +0 -1
  286. package/dist/nextAuth/authProviders.tsx +0 -232
  287. package/dist/nextAuth/handleLogout.d.ts +0 -2
  288. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  289. package/dist/nextAuth/handleLogout.js +0 -36
  290. package/dist/nextAuth/handleLogout.js.map +0 -1
  291. package/dist/nextAuth/handleLogout.tsx +0 -39
  292. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  293. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  294. package/dist/nextAuth/refreshAccessToken.js +0 -24
  295. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  296. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  297. package/dist/redux/features/settingsSlice.d.ts +0 -20
  298. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  299. package/dist/redux/features/settingsSlice.js +0 -39
  300. package/dist/redux/features/settingsSlice.js.map +0 -1
  301. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -91,6 +91,32 @@ export const AdminTopHeader = () => {
91
91
  window.dispatchEvent(new CustomEvent(SIDEBAR_TOGGLE_EVENT));
92
92
  };
93
93
 
94
+ const handleBreadcrumbClick = (crumbIndex: number) => {
95
+ // When on a form view, clicking the model name (second crumb) should navigate back to list
96
+ // Index 1 is the model name in a breadcrumb like: Module > Model > Action
97
+ if (crumbIndex === 1 && showBack) {
98
+ if (typeof window !== "undefined") {
99
+ // First, try to use the full stored URL (preserves all query params)
100
+ const storedFullUrl = sessionStorage.getItem("fromViewUrl");
101
+ if (storedFullUrl) {
102
+ router.push(storedFullUrl);
103
+ return;
104
+ }
105
+ }
106
+
107
+ // Fallback: construct URL from current path and stored view
108
+ const segments = pathname.split("/").filter(Boolean);
109
+ if (segments[0] === "admin" && segments[1] === "core") {
110
+ const moduleName = segments[2];
111
+ const modelName = segments[3];
112
+ const fromView = typeof window !== "undefined"
113
+ ? sessionStorage.getItem("fromView") || "list"
114
+ : "list";
115
+ router.push(`/admin/core/${moduleName}/${modelName}/${fromView}`);
116
+ }
117
+ }
118
+ };
119
+
94
120
  return (
95
121
  <header className="solid-admin-header">
96
122
  <div className="solid-admin-header-inner">
@@ -113,7 +139,18 @@ export const AdminTopHeader = () => {
113
139
  {crumbs.map((crumb, index) => (
114
140
  <span key={`${crumb}-${index}`} className="solid-admin-crumb">
115
141
  {index > 0 && <span className="solid-admin-crumb-sep">›</span>}
116
- <span>{crumb}</span>
142
+ {index === 1 && showBack ? (
143
+ <button
144
+ type="button"
145
+ className="solid-admin-crumb-link"
146
+ onClick={() => handleBreadcrumbClick(index)}
147
+ style={{ background: "none", border: "none", cursor: "pointer", color: "inherit", textDecoration: "underline" }}
148
+ >
149
+ {crumb}
150
+ </button>
151
+ ) : (
152
+ <span>{crumb}</span>
153
+ )}
117
154
  </span>
118
155
  ))}
119
156
  </nav>
@@ -22,14 +22,14 @@ export var LayoutProvider = function (_a) {
22
22
  if (stored === "dark" || stored === "light") {
23
23
  return stored;
24
24
  }
25
- return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
25
+ return "light";
26
26
  };
27
27
  var _b = useState(getInitialThemeMode), themeMode = _b[0], setThemeMode = _b[1];
28
28
  var _c = useState({
29
29
  inputStyle: 'outlined',
30
30
  colorScheme: themeMode,
31
31
  theme: 'solid-light-purple',
32
- scale: 14,
32
+ scale: 15,
33
33
  authLayout: 'Center'
34
34
  }), layoutConfig = _c[0], setLayoutConfig = _c[1];
35
35
  var _d = useState({
@@ -1 +1 @@
1
- {"version":3,"file":"layoutcontext.js","sourceRoot":"","sources":["../../../../src/components/layout/context/layoutcontext.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState, createContext } from 'react';\nimport { LayoutState, ChildContainerProps, LayoutConfig, LayoutContextProps } from '../../../types';\nexport const LayoutContext = createContext({} as LayoutContextProps);\n\nexport const LayoutProvider = ({ children }: ChildContainerProps) => {\n const THEME_STORAGE_KEY = \"solidx.theme.mode\";\n const getInitialThemeMode = (): \"light\" | \"dark\" => {\n if (typeof window === \"undefined\") return \"light\";\n\n const stored = window.localStorage.getItem(THEME_STORAGE_KEY);\n if (stored === \"dark\" || stored === \"light\") {\n return stored;\n }\n\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n };\n\n const [themeMode, setThemeMode] = useState<\"light\" | \"dark\">(getInitialThemeMode);\n const [layoutConfig, setLayoutConfig] = useState<LayoutConfig>({\n inputStyle: 'outlined',\n colorScheme: themeMode,\n theme: 'solid-light-purple',\n scale: 14,\n authLayout: 'Center'\n });\n\n const [layoutState, setLayoutState] = useState<LayoutState>({\n overlayMenuActive: false,\n profileSidebarVisible: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n });\n\n const onMenuToggle = () => {\n\n if (isDesktop()) {\n setLayoutState((prevLayoutState:any) => ({ ...prevLayoutState, staticMenuDesktopInactive: !prevLayoutState.staticMenuDesktopInactive }));\n } else {\n setLayoutState((prevLayoutState:any) => ({ ...prevLayoutState, staticMenuMobileActive: !prevLayoutState.staticMenuMobileActive }));\n }\n };\n\n const showProfileSidebar = () => {\n setLayoutState((prevLayoutState:any) => ({ ...prevLayoutState, profileSidebarVisible: !prevLayoutState.profileSidebarVisible }));\n };\n\n const toggleThemeMode = () => {\n setThemeMode((prev) => (prev === \"light\" ? \"dark\" : \"light\"));\n };\n\n const isDesktop = () => {\n return window.innerWidth > 991;\n };\n\n React.useEffect(() => {\n if (typeof window === \"undefined\") return;\n window.localStorage.setItem(THEME_STORAGE_KEY, themeMode);\n document.documentElement.classList.toggle(\"dark\", themeMode === \"dark\");\n document.documentElement.setAttribute(\"data-theme\", themeMode);\n setLayoutConfig((prevLayoutConfig: LayoutConfig) => ({\n ...prevLayoutConfig,\n colorScheme: themeMode\n }));\n }, [themeMode]);\n\n const value: LayoutContextProps = {\n layoutConfig,\n setLayoutConfig,\n themeMode,\n setThemeMode,\n toggleThemeMode,\n layoutState,\n setLayoutState,\n onMenuToggle,\n showProfileSidebar\n };\n\n return <LayoutContext.Provider value={value}>{children}</LayoutContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"layoutcontext.js","sourceRoot":"","sources":["../../../../src/components/layout/context/layoutcontext.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState, createContext } from 'react';\nimport { LayoutState, ChildContainerProps, LayoutConfig, LayoutContextProps } from '../../../types';\nexport const LayoutContext = createContext({} as LayoutContextProps);\n\nexport const LayoutProvider = ({ children }: ChildContainerProps) => {\n const THEME_STORAGE_KEY = \"solidx.theme.mode\";\n const getInitialThemeMode = (): \"light\" | \"dark\" => {\n if (typeof window === \"undefined\") return \"light\";\n\n const stored = window.localStorage.getItem(THEME_STORAGE_KEY);\n if (stored === \"dark\" || stored === \"light\") {\n return stored;\n }\n\n return \"light\";\n };\n\n const [themeMode, setThemeMode] = useState<\"light\" | \"dark\">(getInitialThemeMode);\n const [layoutConfig, setLayoutConfig] = useState<LayoutConfig>({\n inputStyle: 'outlined',\n colorScheme: themeMode,\n theme: 'solid-light-purple',\n scale: 15,\n authLayout: 'Center'\n });\n\n const [layoutState, setLayoutState] = useState<LayoutState>({\n overlayMenuActive: false,\n profileSidebarVisible: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n });\n\n const onMenuToggle = () => {\n\n if (isDesktop()) {\n setLayoutState((prevLayoutState:any) => ({ ...prevLayoutState, staticMenuDesktopInactive: !prevLayoutState.staticMenuDesktopInactive }));\n } else {\n setLayoutState((prevLayoutState:any) => ({ ...prevLayoutState, staticMenuMobileActive: !prevLayoutState.staticMenuMobileActive }));\n }\n };\n\n const showProfileSidebar = () => {\n setLayoutState((prevLayoutState:any) => ({ ...prevLayoutState, profileSidebarVisible: !prevLayoutState.profileSidebarVisible }));\n };\n\n const toggleThemeMode = () => {\n setThemeMode((prev) => (prev === \"light\" ? \"dark\" : \"light\"));\n };\n\n const isDesktop = () => {\n return window.innerWidth > 991;\n };\n\n React.useEffect(() => {\n if (typeof window === \"undefined\") return;\n window.localStorage.setItem(THEME_STORAGE_KEY, themeMode);\n document.documentElement.classList.toggle(\"dark\", themeMode === \"dark\");\n document.documentElement.setAttribute(\"data-theme\", themeMode);\n setLayoutConfig((prevLayoutConfig: LayoutConfig) => ({\n ...prevLayoutConfig,\n colorScheme: themeMode\n }));\n }, [themeMode]);\n\n const value: LayoutContextProps = {\n layoutConfig,\n setLayoutConfig,\n themeMode,\n setThemeMode,\n toggleThemeMode,\n layoutState,\n setLayoutState,\n onMenuToggle,\n showProfileSidebar\n };\n\n return <LayoutContext.Provider value={value}>{children}</LayoutContext.Provider>;\n};\n"]}
@@ -13,7 +13,7 @@ export const LayoutProvider = ({ children }: ChildContainerProps) => {
13
13
  return stored;
14
14
  }
15
15
 
16
- return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
16
+ return "light";
17
17
  };
18
18
 
19
19
  const [themeMode, setThemeMode] = useState<"light" | "dark">(getInitialThemeMode);
@@ -21,7 +21,7 @@ export const LayoutProvider = ({ children }: ChildContainerProps) => {
21
21
  inputStyle: 'outlined',
22
22
  colorScheme: themeMode,
23
23
  theme: 'solid-light-purple',
24
- scale: 14,
24
+ scale: 15,
25
25
  authLayout: 'Center'
26
26
  });
27
27
 
@@ -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} />
@@ -8,7 +8,12 @@ type SolidConfirmDialogProps = {
8
8
  onConfirm: () => void;
9
9
  onCancel: () => void;
10
10
  className?: string;
11
+ headerClassName?: string;
12
+ bodyClassName?: string;
13
+ footerClassName?: string;
14
+ separatorClassName?: string;
15
+ showSeparator?: boolean;
11
16
  };
12
- export declare function SolidConfirmDialog({ open, title, message, confirmLabel, cancelLabel, onConfirm, onCancel, className, }: SolidConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function SolidConfirmDialog({ open, title, message, confirmLabel, cancelLabel, onConfirm, onCancel, className, headerClassName, bodyClassName, footerClassName, separatorClassName, showSeparator, }: SolidConfirmDialogProps): import("react/jsx-runtime").JSX.Element;
13
18
  export {};
14
19
  //# sourceMappingURL=SolidConfirmDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidConfirmDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAiB,EACjB,OAAO,EACP,YAAwB,EACxB,WAAsB,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,uBAAuB,2CAkBzB"}
1
+ {"version":3,"file":"SolidConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidConfirmDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAiB,EACjB,OAAO,EACP,YAAwB,EACxB,WAAsB,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,aAAqB,GACtB,EAAE,uBAAuB,2CAmBzB"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogFooter, SolidDialogHeader, SolidDialogTitle, } from "./SolidDialog";
2
+ import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "./SolidDialog";
3
3
  import { SolidButton } from "./SolidButton";
4
4
  export function SolidConfirmDialog(_a) {
5
- var open = _a.open, _b = _a.title, title = _b === void 0 ? "Confirm" : _b, message = _a.message, _c = _a.confirmLabel, confirmLabel = _c === void 0 ? "Confirm" : _c, _d = _a.cancelLabel, cancelLabel = _d === void 0 ? "Cancel" : _d, onConfirm = _a.onConfirm, onCancel = _a.onCancel, className = _a.className;
6
- return (_jsxs(SolidDialog, { open: open, onOpenChange: function (val) { return !val && onCancel(); }, className: className, children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: title }), _jsx(SolidDialogClose, { "aria-label": "Close" })] }), _jsx(SolidDialogBody, { children: message }), _jsxs(SolidDialogFooter, { children: [_jsx(SolidButton, { variant: "outline", size: "sm", onClick: onCancel, children: cancelLabel }), _jsx(SolidButton, { variant: "destructive", size: "sm", onClick: onConfirm, children: confirmLabel })] })] }));
5
+ var open = _a.open, _b = _a.title, title = _b === void 0 ? "Confirm" : _b, message = _a.message, _c = _a.confirmLabel, confirmLabel = _c === void 0 ? "Confirm" : _c, _d = _a.cancelLabel, cancelLabel = _d === void 0 ? "Cancel" : _d, onConfirm = _a.onConfirm, onCancel = _a.onCancel, className = _a.className, headerClassName = _a.headerClassName, bodyClassName = _a.bodyClassName, footerClassName = _a.footerClassName, separatorClassName = _a.separatorClassName, _e = _a.showSeparator, showSeparator = _e === void 0 ? false : _e;
6
+ return (_jsxs(SolidDialog, { open: open, onOpenChange: function (val) { return !val && onCancel(); }, className: className, children: [_jsxs(SolidDialogHeader, { className: headerClassName, children: [_jsx(SolidDialogTitle, { children: title }), _jsx(SolidDialogClose, { "aria-label": "Close" })] }), showSeparator ? _jsx(SolidDialogSeparator, { className: separatorClassName }) : null, _jsx(SolidDialogBody, { className: bodyClassName, children: message }), _jsxs(SolidDialogFooter, { className: footerClassName, children: [_jsx(SolidButton, { variant: "outline", size: "sm", onClick: onCancel, children: cancelLabel }), _jsx(SolidButton, { variant: "destructive", size: "sm", onClick: onConfirm, children: confirmLabel })] })] }));
7
7
  }
8
8
  //# sourceMappingURL=SolidConfirmDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidConfirmDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidConfirmDialog.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,MAAM,UAAU,kBAAkB,CAAC,EAST;QARxB,IAAI,UAAA,EACJ,aAAiB,EAAjB,KAAK,mBAAG,SAAS,KAAA,EACjB,OAAO,aAAA,EACP,oBAAwB,EAAxB,YAAY,mBAAG,SAAS,KAAA,EACxB,mBAAsB,EAAtB,WAAW,mBAAG,QAAQ,KAAA,EACtB,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,SAAS,eAAA;IAET,OAAO,CACL,MAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,UAAC,GAAG,IAAK,OAAA,CAAC,GAAG,IAAI,QAAQ,EAAE,EAAlB,CAAkB,EAAE,SAAS,EAAE,SAAS,aACtF,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cAAE,KAAK,GAAoB,EAC5C,KAAC,gBAAgB,kBAAY,OAAO,GAAG,IACrB,EACpB,KAAC,eAAe,cAAE,OAAO,GAAmB,EAC5C,MAAC,iBAAiB,eAChB,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,YACvD,WAAW,GACA,EACd,KAAC,WAAW,IAAC,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,SAAS,YAC5D,YAAY,GACD,IACI,IACR,CACf,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogTitle,\n} from \"./SolidDialog\";\nimport { SolidButton } from \"./SolidButton\";\n\ntype SolidConfirmDialogProps = {\n open: boolean;\n title?: string;\n message?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n onConfirm: () => void;\n onCancel: () => void;\n className?: string;\n};\n\nexport function SolidConfirmDialog({\n open,\n title = \"Confirm\",\n message,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n onConfirm,\n onCancel,\n className,\n}: SolidConfirmDialogProps) {\n return (\n <SolidDialog open={open} onOpenChange={(val) => !val && onCancel()} className={className}>\n <SolidDialogHeader>\n <SolidDialogTitle>{title}</SolidDialogTitle>\n <SolidDialogClose aria-label=\"Close\" />\n </SolidDialogHeader>\n <SolidDialogBody>{message}</SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={onCancel}>\n {cancelLabel}\n </SolidButton>\n <SolidButton variant=\"destructive\" size=\"sm\" onClick={onConfirm}>\n {confirmLabel}\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidConfirmDialog.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidConfirmDialog.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkB5C,MAAM,UAAU,kBAAkB,CAAC,EAcT;QAbxB,IAAI,UAAA,EACJ,aAAiB,EAAjB,KAAK,mBAAG,SAAS,KAAA,EACjB,OAAO,aAAA,EACP,oBAAwB,EAAxB,YAAY,mBAAG,SAAS,KAAA,EACxB,mBAAsB,EAAtB,WAAW,mBAAG,QAAQ,KAAA,EACtB,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,eAAe,qBAAA,EACf,aAAa,mBAAA,EACb,eAAe,qBAAA,EACf,kBAAkB,wBAAA,EAClB,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA;IAErB,OAAO,CACL,MAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,UAAC,GAAG,IAAK,OAAA,CAAC,GAAG,IAAI,QAAQ,EAAE,EAAlB,CAAkB,EAAE,SAAS,EAAE,SAAS,aACtF,MAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,aAC3C,KAAC,gBAAgB,cAAE,KAAK,GAAoB,EAC5C,KAAC,gBAAgB,kBAAY,OAAO,GAAG,IACrB,EACnB,aAAa,CAAC,CAAC,CAAC,KAAC,oBAAoB,IAAC,SAAS,EAAE,kBAAkB,GAAI,CAAC,CAAC,CAAC,IAAI,EAC/E,KAAC,eAAe,IAAC,SAAS,EAAE,aAAa,YAAG,OAAO,GAAmB,EACtE,MAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,aAC3C,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,YACvD,WAAW,GACA,EACd,KAAC,WAAW,IAAC,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,SAAS,YAC5D,YAAY,GACD,IACI,IACR,CACf,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"./SolidDialog\";\nimport { SolidButton } from \"./SolidButton\";\n\ntype SolidConfirmDialogProps = {\n open: boolean;\n title?: string;\n message?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n onConfirm: () => void;\n onCancel: () => void;\n className?: string;\n headerClassName?: string;\n bodyClassName?: string;\n footerClassName?: string;\n separatorClassName?: string;\n showSeparator?: boolean;\n};\n\nexport function SolidConfirmDialog({\n open,\n title = \"Confirm\",\n message,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n onConfirm,\n onCancel,\n className,\n headerClassName,\n bodyClassName,\n footerClassName,\n separatorClassName,\n showSeparator = false,\n}: SolidConfirmDialogProps) {\n return (\n <SolidDialog open={open} onOpenChange={(val) => !val && onCancel()} className={className}>\n <SolidDialogHeader className={headerClassName}>\n <SolidDialogTitle>{title}</SolidDialogTitle>\n <SolidDialogClose aria-label=\"Close\" />\n </SolidDialogHeader>\n {showSeparator ? <SolidDialogSeparator className={separatorClassName} /> : null}\n <SolidDialogBody className={bodyClassName}>{message}</SolidDialogBody>\n <SolidDialogFooter className={footerClassName}>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={onCancel}>\n {cancelLabel}\n </SolidButton>\n <SolidButton variant=\"destructive\" size=\"sm\" onClick={onConfirm}>\n {confirmLabel}\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n );\n}\n"]}
@@ -5,6 +5,7 @@ import {
5
5
  SolidDialogClose,
6
6
  SolidDialogFooter,
7
7
  SolidDialogHeader,
8
+ SolidDialogSeparator,
8
9
  SolidDialogTitle,
9
10
  } from "./SolidDialog";
10
11
  import { SolidButton } from "./SolidButton";
@@ -18,6 +19,11 @@ type SolidConfirmDialogProps = {
18
19
  onConfirm: () => void;
19
20
  onCancel: () => void;
20
21
  className?: string;
22
+ headerClassName?: string;
23
+ bodyClassName?: string;
24
+ footerClassName?: string;
25
+ separatorClassName?: string;
26
+ showSeparator?: boolean;
21
27
  };
22
28
 
23
29
  export function SolidConfirmDialog({
@@ -29,15 +35,21 @@ export function SolidConfirmDialog({
29
35
  onConfirm,
30
36
  onCancel,
31
37
  className,
38
+ headerClassName,
39
+ bodyClassName,
40
+ footerClassName,
41
+ separatorClassName,
42
+ showSeparator = false,
32
43
  }: SolidConfirmDialogProps) {
33
44
  return (
34
45
  <SolidDialog open={open} onOpenChange={(val) => !val && onCancel()} className={className}>
35
- <SolidDialogHeader>
46
+ <SolidDialogHeader className={headerClassName}>
36
47
  <SolidDialogTitle>{title}</SolidDialogTitle>
37
48
  <SolidDialogClose aria-label="Close" />
38
49
  </SolidDialogHeader>
39
- <SolidDialogBody>{message}</SolidDialogBody>
40
- <SolidDialogFooter>
50
+ {showSeparator ? <SolidDialogSeparator className={separatorClassName} /> : null}
51
+ <SolidDialogBody className={bodyClassName}>{message}</SolidDialogBody>
52
+ <SolidDialogFooter className={footerClassName}>
41
53
  <SolidButton variant="outline" size="sm" onClick={onCancel}>
42
54
  {cancelLabel}
43
55
  </SolidButton>
@@ -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;AAwCF,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,2CAetB"}
@@ -36,12 +36,22 @@ function formatDateValue(value, pattern) {
36
36
  if (length === void 0) { length = 2; }
37
37
  return String(num).padStart(length, "0");
38
38
  };
39
+ var hours = value.getHours();
40
+ var minutes = value.getMinutes();
41
+ var seconds = value.getSeconds();
42
+ var ampm = hours >= 12 ? "PM" : "AM";
43
+ var h12 = hours % 12 || 12;
39
44
  return pattern
40
45
  .replace(/yyyy/g, String(value.getFullYear()))
41
46
  .replace(/MM/g, pad(value.getMonth() + 1))
42
47
  .replace(/dd/g, pad(value.getDate()))
43
- .replace(/HH/g, pad(value.getHours()))
44
- .replace(/mm/g, pad(value.getMinutes()));
48
+ .replace(/HH/g, pad(hours))
49
+ .replace(/hh/g, pad(h12))
50
+ .replace(/h/g, String(h12))
51
+ .replace(/mm/g, pad(minutes))
52
+ .replace(/ss/g, pad(seconds))
53
+ .replace(/aa/g, ampm)
54
+ .replace(/a/g, ampm);
45
55
  }
46
56
  var SolidDatePickerInput = React.forwardRef(function (_a, ref) {
47
57
  var className = _a.className, displayValue = _a.displayValue, props = __rest(_a, ["className", "displayValue"]);
@@ -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 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(value.getHours()))\n .replace(/mm/g, pad(value.getMinutes()));\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":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C,SAAS,eAAe,CAAC,KAA8B,EAAE,OAAgB;IACvE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;QACvE,OAAO,EAAE,CAAC;KACX;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;KAC5B;IACD,IAAM,GAAG,GAAG,UAAC,GAAW,EAAE,MAAU;QAAV,uBAAA,EAAA,UAAU;QAAK,OAAA,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IAAjC,CAAiC,CAAC;IAC3E,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACnC,IAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACnC,IAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,IAAM,GAAG,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;IAE7B,OAAO,OAAO;SACX,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACzC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5B,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAC3C,UAAC,EAAqC,EAAE,GAAG;IAAxC,IAAA,SAAS,eAAA,EAAE,YAAY,kBAAA,EAAK,KAAK,cAAnC,6BAAqC,CAAF;IAAY,OAAA,CAC9C,KAAC,UAAU,aACT,GAAG,EAAE,GAAG,IACJ,KAAK,IACT,KAAK,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3E,QAAQ,QACR,SAAS,EAAE,SAAS,IACpB,CACH,CAAA;CAAA,CACF,CAAC;AAEF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAE1D,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,eAAe,CAAC,EAQT;;IAPrB,IAAA,QAAQ,cAAA,EACR,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,QAAQ,cAAA,EACR,UAAU,gBAAA,EACV,SAAS,eAAA,EACN,KAAK,cAPsB,uFAQ/B,CADS;IAER,IAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1D,IAAM,cAAc,GAAG,MAAA,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,mCAAI,YAAY,CAAC;IAChG,IAAM,YAAY,GAAG,eAAe,CAAC,QAAmC,EAAE,cAAc,CAAC,CAAC;IAE1F,OAAO,CACL,KAAC,eAAe,eACV,KAAK,IACT,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,gBAAgB,EAChC,kBAAkB,EAAE,QAAQ,EAC5B,WAAW,EAAE,KAAC,oBAAoB,IAAC,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,GAAI,EAC5F,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAC5C,CACH,CAAC;AACJ,CAAC","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"]}
@@ -20,12 +20,23 @@ function formatDateValue(value: Date | null | undefined, pattern?: string) {
20
20
  return value.toISOString();
21
21
  }
22
22
  const pad = (num: number, length = 2) => String(num).padStart(length, "0");
23
+ const hours = value.getHours();
24
+ const minutes = value.getMinutes();
25
+ const seconds = value.getSeconds();
26
+ const ampm = hours >= 12 ? "PM" : "AM";
27
+ const h12 = hours % 12 || 12;
28
+
23
29
  return pattern
24
30
  .replace(/yyyy/g, String(value.getFullYear()))
25
31
  .replace(/MM/g, pad(value.getMonth() + 1))
26
32
  .replace(/dd/g, pad(value.getDate()))
27
- .replace(/HH/g, pad(value.getHours()))
28
- .replace(/mm/g, pad(value.getMinutes()));
33
+ .replace(/HH/g, pad(hours))
34
+ .replace(/hh/g, pad(h12))
35
+ .replace(/h/g, String(h12))
36
+ .replace(/mm/g, pad(minutes))
37
+ .replace(/ss/g, pad(seconds))
38
+ .replace(/aa/g, ampm)
39
+ .replace(/a/g, ampm);
29
40
  }
30
41
 
31
42
  const SolidDatePickerInput = React.forwardRef<HTMLInputElement, SolidDatePickerInputProps>(
@@ -1 +1 @@
1
- {"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,KAAK,GACN,EAAE,kBAAkB,2CAqDpB"}
1
+ {"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,KAAK,GACN,EAAE,kBAAkB,2CA+EpB"}
@@ -11,10 +11,13 @@ export function SolidTab(_props) {
11
11
  }
12
12
  export function SolidTabGroup(_a) {
13
13
  var tabs = _a.tabs, value = _a.value, onValueChange = _a.onValueChange, className = _a.className, listClassName = _a.listClassName, panelClassName = _a.panelClassName, _b = _a.tabPosition, tabPosition = _b === void 0 ? "left" : _b, extra = _a.extra;
14
- return (_jsxs("div", { className: cx("solid-notebook", "solid-tabs", "solid-tabs--".concat(tabPosition), className), children: [_jsxs("div", { className: cx("solid-notebook-tablist", "solid-tabs-list", listClassName), role: "tablist", style: extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined, children: [_jsx("div", { style: extra ? { display: "flex" } : undefined, children: tabs.map(function (tab) {
14
+ return (_jsxs("div", { className: cx("solid-notebook", "solid-tabs", "solid-tabs--".concat(tabPosition), className), children: [_jsxs("div", { className: cx("solid-notebook-tablist", "solid-tabs-list", listClassName), role: "tablist", style: extra ? { display: "flex", alignItems: "center", justifyContent: "space-between" } : undefined, children: [extra ? (_jsx("div", { style: { display: "flex" }, children: tabs.map(function (tab) {
15
15
  var isActive = tab.value === value;
16
16
  return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-notebook-tab-trigger", "solid-tabs-trigger", tab.hasError && "error", isActive && "active", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
17
- }) }), extra && _jsx("div", { children: extra })] }), tabs.map(function (tab) {
17
+ }) })) : (tabs.map(function (tab) {
18
+ var isActive = tab.value === value;
19
+ return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-notebook-tab-trigger", "solid-tabs-trigger", tab.hasError && "error", isActive && "active", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
20
+ })), extra && _jsx("div", { children: extra })] }), tabs.map(function (tab) {
18
21
  var isActive = tab.value === value;
19
22
  return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-notebook-content", "solid-tabs-panel", panelClassName), children: isActive ? tab.content : null }, tab.value));
20
23
  })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":";AAoBA,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,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAST;QARnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,mBAAoB,EAApB,WAAW,mBAAG,MAAM,KAAA,EACpB,KAAK,WAAA;IAEL,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,sBAAe,WAAW,CAAE,EAAE,SAAS,CAAC,aACzF,eACE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,CAAC,EACzE,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,aAErG,cAAK,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,YAClD,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;4BACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;4BACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;wBACJ,CAAC,CAAC,GACI,EACL,KAAK,IAAI,wBAAM,KAAK,GAAO,IACxB,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,cAAc,CAAC,YAE1E,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAPzB,GAAG,CAAC,KAAK,CAQV,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-notebook\", \"solid-tabs\", `solid-tabs--${tabPosition}`, className)}>\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n <div style={extra ? { display: \"flex\" } : undefined}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div className={cx(\"solid-notebook\", \"solid-tabs\", `solid-tabs--${tabPosition}`, className)}>\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n {extra ? (\n <div style={{ display: \"flex\" }}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n ) : (\n tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })\n )}\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}