@solidxai/core-ui 0.1.7-beta.3 → 0.1.7-beta.5

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 (234) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +1 -1
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +5 -3
  5. package/dist/components/auth/SolidLogin.js +3 -3
  6. package/dist/components/auth/SolidLogin.js.map +1 -1
  7. package/dist/components/auth/SolidLogin.tsx +2 -2
  8. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  9. package/dist/components/common/DropzonePlaceholder.js +1 -1
  10. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  11. package/dist/components/common/DropzonePlaceholder.tsx +8 -6
  12. package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
  13. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  14. package/dist/components/core/chatter/SolidChatter.js +2 -4
  15. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  16. package/dist/components/core/chatter/SolidChatter.tsx +3 -4
  17. package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
  18. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  19. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  20. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  21. package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
  22. package/dist/components/core/chatter/chatter.module.css +42 -32
  23. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js +1 -1
  24. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js.map +1 -1
  25. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +2 -2
  26. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +153 -30
  27. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  28. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +7 -7
  29. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  30. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +9 -10
  31. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts.map +1 -1
  32. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js +1 -1
  33. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js.map +1 -1
  34. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.tsx +6 -4
  35. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts.map +1 -1
  36. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js +1 -1
  37. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js.map +1 -1
  38. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.tsx +3 -1
  39. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  40. package/dist/components/core/form/SolidFormActionHeader.js +13 -13
  41. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  42. package/dist/components/core/form/SolidFormActionHeader.tsx +21 -24
  43. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  44. package/dist/components/core/form/SolidFormFooter.js +1 -1
  45. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  46. package/dist/components/core/form/SolidFormFooter.tsx +0 -1
  47. package/dist/components/core/form/SolidFormUserViewLayout.js +1 -1
  48. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  49. package/dist/components/core/form/SolidFormUserViewLayout.tsx +1 -1
  50. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  51. package/dist/components/core/form/SolidFormView.js +22 -33
  52. package/dist/components/core/form/SolidFormView.js.map +1 -1
  53. package/dist/components/core/form/SolidFormView.tsx +38 -59
  54. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  55. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +12 -1
  56. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  57. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +1 -0
  58. package/dist/components/core/form/fields/SolidLongTextField.js +4 -4
  59. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  60. package/dist/components/core/form/fields/SolidLongTextField.tsx +4 -4
  61. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidMediaMultipleField.js +14 -14
  63. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +35 -21
  65. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  67. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  68. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +48 -34
  69. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  70. package/dist/components/core/form/fields/SolidPasswordField.js +2 -2
  71. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  72. package/dist/components/core/form/fields/SolidPasswordField.tsx +46 -42
  73. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  74. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +23 -27
  75. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  76. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +64 -66
  77. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  78. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -6
  79. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  80. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +4 -7
  81. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  82. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -15
  83. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  84. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +30 -16
  85. package/dist/components/core/form/fields/solidFields.module.css +86 -15
  86. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  87. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  88. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  89. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  90. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  91. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +18 -28
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +52 -48
  95. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  96. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  97. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  98. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  99. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  100. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  101. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  102. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  103. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +5 -4
  104. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  105. package/dist/components/core/kanban/KanbanBoard.js +11 -5
  106. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  107. package/dist/components/core/kanban/KanbanBoard.tsx +8 -0
  108. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  109. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  110. package/dist/components/core/kanban/KanbanCard.js +4 -4
  111. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  112. package/dist/components/core/kanban/KanbanCard.tsx +5 -4
  113. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  114. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  115. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  116. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  117. package/dist/components/core/kanban/KanbanColumn.tsx +4 -3
  118. package/dist/components/core/list/SolidDataTable.d.ts +1 -0
  119. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  120. package/dist/components/core/list/SolidDataTable.js +19 -2
  121. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  122. package/dist/components/core/list/SolidDataTable.tsx +30 -2
  123. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidListView.js +1 -1
  125. package/dist/components/core/list/SolidListView.js.map +1 -1
  126. package/dist/components/core/list/SolidListView.tsx +1 -0
  127. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  128. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  129. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  130. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  131. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  132. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  133. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  134. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  135. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  136. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  137. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  138. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  139. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  140. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  141. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  142. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  143. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  144. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  145. package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -4
  146. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  147. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +28 -11
  148. package/dist/components/core/locales/SolidLocale.js +4 -4
  149. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  150. package/dist/components/core/locales/SolidLocale.tsx +18 -18
  151. package/dist/components/core/locales/solid-locale.css +105 -7
  152. package/dist/components/core/model/CreateModel.js +2 -2
  153. package/dist/components/core/model/CreateModel.js.map +1 -1
  154. package/dist/components/core/model/CreateModel.tsx +2 -2
  155. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  156. package/dist/components/core/model/FieldMetaData.js +3 -3
  157. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  158. package/dist/components/core/model/FieldMetaData.tsx +45 -22
  159. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts +7 -0
  160. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -0
  161. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +138 -0
  162. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -0
  163. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +246 -0
  164. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +8 -0
  165. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -0
  166. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +156 -0
  167. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -0
  168. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +184 -0
  169. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts +9 -0
  170. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -0
  171. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +37 -0
  172. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -0
  173. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +111 -0
  174. package/dist/components/core/users/ApiKeysTab/index.d.ts +4 -0
  175. package/dist/components/core/users/ApiKeysTab/index.d.ts.map +1 -0
  176. package/dist/components/core/users/ApiKeysTab/index.js +4 -0
  177. package/dist/components/core/users/ApiKeysTab/index.js.map +1 -0
  178. package/dist/components/core/users/ApiKeysTab/index.ts +3 -0
  179. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  180. package/dist/components/layout/AppSidebar.js +75 -7
  181. package/dist/components/layout/AppSidebar.js.map +1 -1
  182. package/dist/components/layout/AppSidebar.tsx +84 -7
  183. package/dist/components/layout/FilterMenu.js +2 -3
  184. package/dist/components/layout/FilterMenu.js.map +1 -1
  185. package/dist/components/layout/FilterMenu.tsx +3 -3
  186. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  187. package/dist/components/shad-cn-ui/SolidCodeEditor.js +13 -7
  188. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  189. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +22 -12
  190. package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -1
  191. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  192. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +1 -1
  193. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  194. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  195. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  196. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  197. package/dist/components/shad-cn-ui/SolidDialog.tsx +6 -3
  198. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  199. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  200. package/dist/components/shad-cn-ui/SolidIcon.js +4 -3
  201. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  202. package/dist/components/shad-cn-ui/SolidIcon.tsx +15 -12
  203. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  204. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  205. package/dist/components/shad-cn-ui/SolidSelect.js +2 -2
  206. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  207. package/dist/components/shad-cn-ui/SolidSelect.tsx +3 -0
  208. package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
  209. package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
  210. package/dist/components/shad-cn-ui/SolidTextarea.js +3 -2
  211. package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
  212. package/dist/components/shad-cn-ui/SolidTextarea.tsx +17 -2
  213. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  214. package/dist/helpers/registry.d.ts.map +1 -1
  215. package/dist/helpers/registry.js +10 -0
  216. package/dist/helpers/registry.js.map +1 -1
  217. package/dist/helpers/registry.ts +16 -0
  218. package/dist/index.d.ts +3 -2
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +3 -2
  221. package/dist/index.js.map +1 -1
  222. package/dist/index.ts +71 -2
  223. package/dist/redux/api/apiKeyApi.d.ts +40 -0
  224. package/dist/redux/api/apiKeyApi.d.ts.map +1 -0
  225. package/dist/redux/api/apiKeyApi.js +36 -0
  226. package/dist/redux/api/apiKeyApi.js.map +1 -0
  227. package/dist/redux/api/apiKeyApi.ts +60 -0
  228. package/dist/resources/globals.css +628 -67
  229. package/dist/resources/shadcn-base.css +333 -7
  230. package/dist/resources/solid-responsive.css +6 -6
  231. package/dist/resources/themes/solid-dark-purple/theme.css +1 -1
  232. package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -1
  233. package/dist/routes/pages/studio/StudioLandingPage.tsx +1 -1
  234. package/package.json +2 -1
@@ -1024,6 +1024,53 @@ body {
1024
1024
  width: min(296px, calc(100vw - 32px));
1025
1025
  }
1026
1026
 
1027
+ .solid-field-delete-flow-dialog {
1028
+ width: min(560px, calc(100vw - 32px));
1029
+ }
1030
+
1031
+ .solid-field-delete-flow-head {
1032
+ text-align: left;
1033
+ }
1034
+
1035
+ .solid-field-delete-flow-body {
1036
+ text-align: left;
1037
+ }
1038
+
1039
+ .solid-field-delete-flow-intro {
1040
+ margin-bottom: 12px;
1041
+ font-size: 13px;
1042
+ line-height: 1.55;
1043
+ color: var(--foreground);
1044
+ }
1045
+
1046
+ .solid-field-delete-flow-list {
1047
+ margin: 0;
1048
+ padding-left: 18px;
1049
+ display: flex;
1050
+ flex-direction: column;
1051
+ gap: 12px;
1052
+ color: var(--foreground);
1053
+ }
1054
+
1055
+ .solid-field-delete-flow-list li {
1056
+ font-size: 13px;
1057
+ line-height: 1.55;
1058
+ font-weight: 500;
1059
+ }
1060
+
1061
+ .solid-field-delete-flow-list li span {
1062
+ display: block;
1063
+ margin-top: 2px;
1064
+ font-size: 12px;
1065
+ line-height: 1.55;
1066
+ font-weight: 400;
1067
+ color: var(--muted-foreground);
1068
+ }
1069
+
1070
+ .solid-field-delete-flow-actions {
1071
+ justify-content: flex-end;
1072
+ }
1073
+
1027
1074
  .solid-delete-confirm-dialog .solid-shadcn-dialog-head {
1028
1075
  padding: 9px 12px;
1029
1076
  }
@@ -1349,8 +1396,9 @@ body {
1349
1396
  .solid-autocomplete-trigger {
1350
1397
  position: absolute;
1351
1398
  right: 2px;
1352
- top: 2px;
1353
- height: calc(100% - 4px);
1399
+ top: 50%;
1400
+ transform: translateY(-50%);
1401
+ height: 24px;
1354
1402
  width: 24px;
1355
1403
  min-width: 24px;
1356
1404
  border: 0;
@@ -1358,6 +1406,9 @@ body {
1358
1406
  background: transparent;
1359
1407
  color: color-mix(in srgb, var(--foreground) 65%, transparent);
1360
1408
  cursor: pointer;
1409
+ display: flex;
1410
+ align-items: center;
1411
+ justify-content: center;
1361
1412
  }
1362
1413
 
1363
1414
  .solid-autocomplete-trigger:hover {
@@ -2228,7 +2279,11 @@ body {
2228
2279
  .solid-auth-brand.is-center {
2229
2280
  align-self: center;
2230
2281
  }
2231
-
2282
+ .solid-auth-brand-logo img{
2283
+ width:100%;
2284
+ max-width: 125px;
2285
+ align-items: center;
2286
+ }
2232
2287
  .solid-auth-brand-icon {
2233
2288
  width: 24px;
2234
2289
  height: 24px;
@@ -2909,15 +2964,15 @@ body {
2909
2964
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--solid-focus-ring) 60%, transparent);
2910
2965
  }
2911
2966
 
2912
- .solid-auth-theme-wrapper .solid-auth-otp-input .solid-otp-input-field:nth-child(3),
2967
+ /* .solid-auth-theme-wrapper .solid-auth-otp-input .solid-otp-input-field:nth-child(3),
2913
2968
  .solid-auth-theme-wrapper .solid-auth-otp-input.p-inputotp .p-inputotp-input:nth-child(3) {
2914
2969
  margin-right: 10px;
2915
2970
  }
2916
2971
 
2917
2972
  .solid-auth-theme-wrapper .solid-auth-otp-input .solid-otp-input-field:nth-child(4),
2918
2973
  .solid-auth-theme-wrapper .solid-auth-otp-input.p-inputotp .p-inputotp-input:nth-child(4) {
2919
- margin-left: 10px;
2920
- }
2974
+ margin-right: 10px;
2975
+ } */
2921
2976
 
2922
2977
  .solid-auth-theme-wrapper .solid-auth-otp-input.is-invalid .solid-otp-input-field,
2923
2978
  .solid-auth-theme-wrapper .solid-auth-otp-input.p-inputotp.p-invalid .p-inputotp-input {
@@ -3251,6 +3306,90 @@ body {
3251
3306
  padding: 0 !important;
3252
3307
  }
3253
3308
 
3309
+ html.dark .solid-list-page-wrapper,
3310
+ [data-theme="dark"] .solid-list-page-wrapper {
3311
+ background:
3312
+ radial-gradient(circle at top right, color-mix(in srgb, var(--primary) 10%, transparent), transparent 26%),
3313
+ linear-gradient(180deg, color-mix(in srgb, var(--background) 98%, #020617 2%), color-mix(in srgb, var(--background) 94%, #020617 6%)) !important;
3314
+ }
3315
+
3316
+ html.dark .solid-list-surface,
3317
+ [data-theme="dark"] .solid-list-surface {
3318
+ background:
3319
+ linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, #0b1220 4%), color-mix(in srgb, var(--card) 90%, #020617 10%));
3320
+ border-color: color-mix(in srgb, var(--border) 72%, #334155 28%);
3321
+ box-shadow:
3322
+ 0 18px 40px rgba(2, 6, 23, 0.42),
3323
+ inset 0 1px 0 rgba(148, 163, 184, 0.04);
3324
+ }
3325
+
3326
+ html.dark .solid-list-toolbar,
3327
+ [data-theme="dark"] .solid-list-toolbar {
3328
+ background:
3329
+ linear-gradient(180deg, color-mix(in srgb, var(--card) 94%, #172554 6%), color-mix(in srgb, var(--card) 88%, #0b1220 12%));
3330
+ border-bottom-color: color-mix(in srgb, var(--border) 72%, #334155 28%);
3331
+ box-shadow:
3332
+ inset 0 -1px 0 rgba(15, 23, 42, 0.55),
3333
+ 0 10px 20px rgba(2, 6, 23, 0.18);
3334
+ }
3335
+
3336
+ html.dark .solid-list-toolbar .view-title,
3337
+ [data-theme="dark"] .solid-list-toolbar .view-title {
3338
+ color: color-mix(in srgb, var(--foreground) 94%, white 6%);
3339
+ letter-spacing: -0.01em;
3340
+ }
3341
+
3342
+ html.dark .solid-list-toolbar .solid-global-search-element,
3343
+ html.dark .solid-kanban-toolbar .solid-global-search-element,
3344
+ [data-theme="dark"] .solid-list-toolbar .solid-global-search-element,
3345
+ [data-theme="dark"] .solid-kanban-toolbar .solid-global-search-element {
3346
+ border-color: color-mix(in srgb, var(--border) 72%, #334155 28%);
3347
+ background: color-mix(in srgb, var(--background) 76%, var(--card) 24%);
3348
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
3349
+ }
3350
+
3351
+ html.dark .solid-list-toolbar .solid-global-search-element input::placeholder,
3352
+ html.dark .solid-kanban-toolbar .solid-global-search-element input::placeholder,
3353
+ [data-theme="dark"] .solid-list-toolbar .solid-global-search-element input::placeholder,
3354
+ [data-theme="dark"] .solid-kanban-toolbar .solid-global-search-element input::placeholder {
3355
+ color: color-mix(in srgb, var(--muted-foreground) 64%, transparent);
3356
+ }
3357
+
3358
+ html.dark .solid-list-toolbar .p-button.p-button-secondary,
3359
+ html.dark .solid-list-toolbar .p-button.p-button-outlined,
3360
+ html.dark .solid-list-toolbar .solid-btn--secondary,
3361
+ html.dark .solid-list-toolbar .solid-btn--outline,
3362
+ html.dark .solid-list-toolbar .solid-icon-button,
3363
+ html.dark .solid-icon-button,
3364
+ html.dark .solid-list-toolbar .solid-header-cog-trigger,
3365
+ html.dark .solid-header-cog-trigger,
3366
+ [data-theme="dark"] .solid-list-toolbar .p-button.p-button-secondary,
3367
+ [data-theme="dark"] .solid-list-toolbar .p-button.p-button-outlined,
3368
+ [data-theme="dark"] .solid-list-toolbar .solid-btn--secondary,
3369
+ [data-theme="dark"] .solid-list-toolbar .solid-btn--outline,
3370
+ [data-theme="dark"] .solid-list-toolbar .solid-icon-button,
3371
+ [data-theme="dark"] .solid-icon-button,
3372
+ [data-theme="dark"] .solid-list-toolbar .solid-header-cog-trigger,
3373
+ [data-theme="dark"] .solid-header-cog-trigger {
3374
+ background: color-mix(in srgb, var(--background) 72%, var(--card) 28%);
3375
+ border-color: color-mix(in srgb, var(--border) 70%, #334155 30%);
3376
+ color: color-mix(in srgb, var(--foreground) 88%, transparent);
3377
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
3378
+ }
3379
+
3380
+ html.dark .solid-list-toolbar .solid-icon-button:hover,
3381
+ html.dark .solid-icon-button:hover,
3382
+ html.dark .solid-list-toolbar .solid-header-cog-trigger:hover,
3383
+ html.dark .solid-header-cog-trigger:hover,
3384
+ [data-theme="dark"] .solid-list-toolbar .solid-icon-button:hover,
3385
+ [data-theme="dark"] .solid-icon-button:hover,
3386
+ [data-theme="dark"] .solid-list-toolbar .solid-header-cog-trigger:hover,
3387
+ [data-theme="dark"] .solid-header-cog-trigger:hover {
3388
+ background: color-mix(in srgb, var(--accent) 48%, #172554 22%);
3389
+ border-color: color-mix(in srgb, var(--primary) 26%, var(--border) 74%);
3390
+ color: var(--foreground);
3391
+ }
3392
+
3254
3393
  /* === Solid Notebook (Tabs 11 underline style) === */
3255
3394
  .solid-notebook-tablist {
3256
3395
  display: flex;
@@ -3259,6 +3398,10 @@ body {
3259
3398
  gap: 0;
3260
3399
  }
3261
3400
 
3401
+ .chatter-section .solid-locale-tabs-list {
3402
+ padding-left: 2.7rem;
3403
+ }
3404
+
3262
3405
  .solid-notebook-tab-trigger {
3263
3406
  position: relative;
3264
3407
  padding: 9px 14px;
@@ -3551,6 +3694,162 @@ body {
3551
3694
  cursor: not-allowed;
3552
3695
  }
3553
3696
 
3697
+ html.dark .solid-list-table-area,
3698
+ [data-theme="dark"] .solid-list-table-area {
3699
+ padding: 0 10px 10px;
3700
+ }
3701
+
3702
+ html.dark .solid-data-table-viewport,
3703
+ [data-theme="dark"] .solid-data-table-viewport {
3704
+ border-radius: 0 0 12px 12px;
3705
+ background:
3706
+ linear-gradient(180deg, color-mix(in srgb, var(--card) 90%, #0b1220 10%), color-mix(in srgb, var(--card) 84%, #020617 16%));
3707
+ }
3708
+
3709
+ html.dark .solid-data-table-head,
3710
+ [data-theme="dark"] .solid-data-table-head {
3711
+ background:
3712
+ linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, #172554 4%), color-mix(in srgb, var(--card) 88%, #0b1220 12%));
3713
+ backdrop-filter: blur(10px);
3714
+ box-shadow:
3715
+ inset 0 -1px 0 color-mix(in srgb, var(--border) 70%, #334155 30%),
3716
+ 0 8px 18px rgba(2, 6, 23, 0.2);
3717
+ }
3718
+
3719
+ html.dark .solid-data-table-th,
3720
+ [data-theme="dark"] .solid-data-table-th {
3721
+ color: color-mix(in srgb, var(--foreground) 85%, white 15%);
3722
+ border-bottom-color: color-mix(in srgb, var(--border) 72%, #334155 28%);
3723
+ }
3724
+
3725
+ html.dark .solid-table-header-button,
3726
+ [data-theme="dark"] .solid-table-header-button {
3727
+ color: color-mix(in srgb, var(--foreground) 84%, transparent);
3728
+ }
3729
+
3730
+ html.dark .solid-table-header-button.is-sortable:hover,
3731
+ [data-theme="dark"] .solid-table-header-button.is-sortable:hover {
3732
+ color: color-mix(in srgb, var(--foreground) 96%, white 4%);
3733
+ }
3734
+
3735
+ html.dark .solid-data-table-td,
3736
+ [data-theme="dark"] .solid-data-table-td {
3737
+ color: color-mix(in srgb, var(--foreground) 90%, #dbeafe 10%);
3738
+ }
3739
+
3740
+ html.dark .solid-data-table-row,
3741
+ [data-theme="dark"] .solid-data-table-row {
3742
+ border-top-color: color-mix(in srgb, var(--border) 62%, #334155 38%);
3743
+ }
3744
+
3745
+ html.dark .solid-data-table-row:nth-child(even),
3746
+ [data-theme="dark"] .solid-data-table-row:nth-child(even) {
3747
+ background: color-mix(in srgb, var(--accent) 12%, transparent);
3748
+ }
3749
+
3750
+ html.dark .solid-data-table-row:hover,
3751
+ [data-theme="dark"] .solid-data-table-row:hover {
3752
+ background: color-mix(in srgb, var(--accent) 34%, #1e293b 18%);
3753
+ }
3754
+
3755
+ html.dark .solid-data-table-row:has(input[type="checkbox"]:checked),
3756
+ [data-theme="dark"] .solid-data-table-row:has(input[type="checkbox"]:checked) {
3757
+ background: color-mix(in srgb, var(--primary) 10%, var(--accent) 24%);
3758
+ box-shadow: inset 2px 0 0 color-mix(in srgb, var(--primary) 86%, white 14%);
3759
+ }
3760
+
3761
+ html.dark .solid-datatable-wrapper td a:not(.solid-inline-row-button):not(.solid-row-menu-trigger),
3762
+ [data-theme="dark"] .solid-datatable-wrapper td a:not(.solid-inline-row-button):not(.solid-row-menu-trigger) {
3763
+ color: color-mix(in srgb, var(--primary) 68%, var(--foreground) 32%);
3764
+ text-decoration: none;
3765
+ transition: color 120ms ease, opacity 120ms ease;
3766
+ }
3767
+
3768
+ html.dark .solid-datatable-wrapper td a:not(.solid-inline-row-button):not(.solid-row-menu-trigger):hover,
3769
+ [data-theme="dark"] .solid-datatable-wrapper td a:not(.solid-inline-row-button):not(.solid-row-menu-trigger):hover {
3770
+ color: color-mix(in srgb, var(--primary) 82%, white 18%);
3771
+ }
3772
+
3773
+ html.dark .solid-data-table-root input[type="checkbox"],
3774
+ [data-theme="dark"] .solid-data-table-root input[type="checkbox"] {
3775
+ appearance: none;
3776
+ border: 1px solid color-mix(in srgb, var(--border) 66%, #475569 34%);
3777
+ border-radius: 4px;
3778
+ background: color-mix(in srgb, var(--background) 70%, var(--card) 30%);
3779
+ display: inline-grid;
3780
+ place-items: center;
3781
+ margin: 0;
3782
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
3783
+ transition: background 120ms ease, border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
3784
+ }
3785
+
3786
+ html.dark .solid-data-table-root input[type="checkbox"]::before,
3787
+ [data-theme="dark"] .solid-data-table-root input[type="checkbox"]::before {
3788
+ content: "";
3789
+ width: 8px;
3790
+ height: 8px;
3791
+ transform: scale(0);
3792
+ transition: transform 120ms ease;
3793
+ clip-path: polygon(14% 44%, 0 59%, 41% 100%, 100% 20%, 84% 6%, 38% 62%);
3794
+ background: var(--primary-foreground);
3795
+ }
3796
+
3797
+ html.dark .solid-data-table-root input[type="checkbox"]:hover,
3798
+ [data-theme="dark"] .solid-data-table-root input[type="checkbox"]:hover {
3799
+ border-color: color-mix(in srgb, var(--primary) 34%, var(--border) 66%);
3800
+ }
3801
+
3802
+ html.dark .solid-data-table-root input[type="checkbox"]:focus-visible,
3803
+ [data-theme="dark"] .solid-data-table-root input[type="checkbox"]:focus-visible {
3804
+ outline: none;
3805
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 34%, transparent);
3806
+ }
3807
+
3808
+ html.dark .solid-data-table-root input[type="checkbox"]:checked,
3809
+ [data-theme="dark"] .solid-data-table-root input[type="checkbox"]:checked {
3810
+ background: color-mix(in srgb, var(--primary) 88%, #93c5fd 12%);
3811
+ border-color: color-mix(in srgb, var(--primary) 72%, white 28%);
3812
+ box-shadow:
3813
+ 0 0 0 3px color-mix(in srgb, var(--ring) 26%, transparent),
3814
+ inset 0 1px 0 rgba(255, 255, 255, 0.12);
3815
+ }
3816
+
3817
+ html.dark .solid-data-table-root input[type="checkbox"]:checked::before,
3818
+ [data-theme="dark"] .solid-data-table-root input[type="checkbox"]:checked::before {
3819
+ transform: scale(1);
3820
+ }
3821
+
3822
+ html.dark .solid-table-paginator,
3823
+ [data-theme="dark"] .solid-table-paginator {
3824
+ background:
3825
+ linear-gradient(180deg, color-mix(in srgb, var(--card) 90%, #0b1220 10%), color-mix(in srgb, var(--card) 84%, #020617 16%));
3826
+ border-color: color-mix(in srgb, var(--border) 72%, #334155 28%) !important;
3827
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
3828
+ }
3829
+
3830
+ html.dark .solid-paginator-label,
3831
+ html.dark .solid-paginator-report,
3832
+ [data-theme="dark"] .solid-paginator-label,
3833
+ [data-theme="dark"] .solid-paginator-report {
3834
+ color: color-mix(in srgb, var(--foreground) 72%, transparent);
3835
+ }
3836
+
3837
+ html.dark .solid-paginator-select,
3838
+ html.dark .solid-paginator-btn,
3839
+ [data-theme="dark"] .solid-paginator-select,
3840
+ [data-theme="dark"] .solid-paginator-btn {
3841
+ background: color-mix(in srgb, var(--background) 74%, var(--card) 26%);
3842
+ border-color: color-mix(in srgb, var(--border) 70%, #334155 30%);
3843
+ color: color-mix(in srgb, var(--foreground) 88%, transparent);
3844
+ }
3845
+
3846
+ html.dark .solid-paginator-btn:hover:not(:disabled),
3847
+ [data-theme="dark"] .solid-paginator-btn:hover:not(:disabled) {
3848
+ background: color-mix(in srgb, var(--accent) 46%, #172554 20%);
3849
+ border-color: color-mix(in srgb, var(--primary) 26%, var(--border) 74%);
3850
+ color: var(--foreground);
3851
+ }
3852
+
3554
3853
  .solid-treetable-wrapper {
3555
3854
  position: relative;
3556
3855
  height: 100%;
@@ -5715,6 +6014,33 @@ body {
5715
6014
  padding: 12px;
5716
6015
  }
5717
6016
 
6017
+ .solid-form-layout-group,
6018
+ .solid-form-layout-row,
6019
+ .solid-form-layout-column {
6020
+ min-width: 0;
6021
+ }
6022
+
6023
+ .solid-form-layout-label {
6024
+ margin: 0 0 0.9rem;
6025
+ display: flex;
6026
+ align-items: center;
6027
+ gap: 0.8rem;
6028
+ font-size: 14px;
6029
+ line-height: 1.3;
6030
+ font-weight: 650;
6031
+ color: var(--solid-form-title, color-mix(in srgb, var(--foreground) 88%, var(--muted-foreground) 12%));
6032
+ letter-spacing: -0.015em;
6033
+ }
6034
+
6035
+ .solid-form-layout-label::after {
6036
+ content: "";
6037
+ flex: 1;
6038
+ min-width: 1.5rem;
6039
+ height: 1px;
6040
+ border-radius: 999px;
6041
+ background: color-mix(in srgb, var(--border) 82%, transparent);
6042
+ }
6043
+
5718
6044
  .solid-message {
5719
6045
  display: inline-flex;
5720
6046
  align-items: center;
@@ -6017,4 +6343,4 @@ body {
6017
6343
  .solid-segmented-item.is-disabled {
6018
6344
  opacity: 0.5;
6019
6345
  cursor: not-allowed;
6020
- }
6346
+ }
@@ -76,13 +76,13 @@
76
76
 
77
77
  .chatter-section.open {
78
78
  position: absolute;
79
- right: 0;
79
+ right: 12px;
80
80
  top: 0;
81
- width: 380px !important;
81
+ width: 320px !important;
82
82
  height: 100%;
83
83
  z-index: 99;
84
- background-color: #fff;
85
- border-left: 1px solid var(--primary-light-color);
84
+ background-color: transparent;
85
+ border-left: none;
86
86
  max-width: calc(100% - 100px);
87
87
  }
88
88
 
@@ -185,7 +185,7 @@
185
185
  /* ===================== Chatter Section ===================== */
186
186
 
187
187
  .chatter-section.open {
188
- width: 330px;
188
+ width: 320px;
189
189
  }
190
190
 
191
191
  .solid-common-dialog {
@@ -381,7 +381,7 @@
381
381
  }
382
382
 
383
383
  .chatter-section.collapsed {
384
- width: 40px !important;
384
+ width: 32px !important;
385
385
  }
386
386
 
387
387
 
@@ -50,7 +50,7 @@
50
50
  --solid-light-grey: #161616;
51
51
  --solid-stepper-border: rgba(216, 226, 234, 0.08);
52
52
  --solid-dark-title: #FFFFFF;
53
- --solid-dropzone-bg: rgba(216, 226, 234, 0.08);
53
+ --solid-dropzone-bg: rgba(255, 255, 255, 0.03);
54
54
  --solid-file-wrapper: rgba(216, 226, 234, 0.08);
55
55
  --solid-chatter-dash: rgba(216, 226, 234, 0.08);
56
56
  --solid-chatter-date-border: rgba(216, 226, 234, 0.08);
@@ -1 +1 @@
1
- {"version":3,"file":"StudioLandingPage.js","sourceRoot":"","sources":["../../../../src/routes/pages/studio/StudioLandingPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSolidLayoutRegistry } from \"../../SolidLayoutRegistry\";\nimport type { SolidLayoutEntry } from \"../../SolidLayoutRegistry\";\nimport { ChatIcon } from \"@/components/layout/SolidAiStudioLayout\";\nimport { env } from \"../../../adapters/env\";\n\n// ── Icons ──────────────────────────────────────────────────────────────────────\n\nconst ArrowIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2.5 7h9M8 3.5l3.5 3.5L8 10.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nconst LayoutPlaceholderIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"16\" height=\"16\" rx=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path d=\"M1 6h16\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n <path d=\"M6 6v11\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n </svg>\n);\n\nconst NoLayoutIcon = () => (\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"2\" width=\"28\" height=\"28\" rx=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" opacity=\"0.4\" strokeDasharray=\"4 3\" />\n <path d=\"M11 16h10M16 11v10\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" opacity=\"0.5\" />\n </svg>\n);\n\nconst GridViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\nconst ListViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"2.5\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"6.25\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"10\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\n// ── Per-card accent colours (cycles by index) ──────────────────────────────────\n\nconst CARD_ACCENTS = [\n { bg: \"hsl(224 70% 54%)\", cls: \"solid-studio-home-card-icon--backend\" },\n { bg: \"hsl(158 64% 42%)\", cls: \"solid-studio-home-card-icon--list\" },\n { bg: \"hsl(32 95% 48%)\", cls: \"solid-studio-home-card-icon--kanban\" },\n { bg: \"hsl(270 65% 58%)\", cls: \"solid-studio-home-card-icon--form\" },\n { bg: \"hsl(199 89% 48%)\", cls: \"solid-studio-home-card-icon--tree\" },\n { bg: \"hsl(215 25% 52%)\", cls: \"solid-studio-home-card-icon--settings\" },\n];\n\n// ── Generic layout wireframe thumbnail ────────────────────────────────────────\n\nfunction LayoutThumb({ accentColor, title }: { accentColor: string; title: string }) {\n const initials = title\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n\n return (\n <svg\n className=\"solid-studio-home-card-thumb\"\n viewBox=\"0 0 280 122\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n {/* background */}\n <rect width=\"280\" height=\"122\" fill=\"var(--sidebar-background)\" />\n\n {/* sidebar */}\n <rect width=\"40\" height=\"122\" fill=\"var(--border)\" opacity=\"0.7\" />\n <rect x=\"7\" y=\"14\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.45\" />\n <rect x=\"7\" y=\"26\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"38\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"50\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n\n {/* top bar */}\n <rect x=\"40\" y=\"0\" width=\"240\" height=\"18\" fill=\"var(--border)\" opacity=\"0.5\" />\n\n {/* accent header band */}\n <rect x=\"48\" y=\"22\" width=\"224\" height=\"28\" rx=\"3\" fill={accentColor} opacity=\"0.12\" />\n <rect x=\"56\" y=\"30\" width=\"80\" height=\"7\" rx=\"2\" fill={accentColor} opacity=\"0.45\" />\n <rect x=\"56\" y=\"40\" width=\"50\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.3\" />\n\n {/* content blocks */}\n <rect x=\"48\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"126\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"58\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"90\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n\n {/* inner muted lines */}\n <rect x=\"54\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"54\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n <rect x=\"132\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"132\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n\n {/* initials badge */}\n <circle cx=\"60\" cy=\"98\" r=\"9\" fill={accentColor} opacity=\"0.18\" />\n <text\n x=\"60\"\n y=\"102\"\n textAnchor=\"middle\"\n fontSize=\"7\"\n fontWeight=\"700\"\n fill={accentColor}\n opacity=\"0.8\"\n fontFamily=\"system-ui, sans-serif\"\n >\n {initials}\n </text>\n </svg>\n );\n}\n\n// ── Card Components (shadcn-inspired) ────────────────────────────────────────\n\nfunction Card({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={`solid-studio-card ${className}`}>\n {children}\n </div>\n );\n}\n\nfunction CardHeader({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-header ${className}`}>{children}</div>;\n}\n\nfunction CardTitle({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <h3 className={`solid-studio-card-title ${className}`}>{children}</h3>;\n}\n\nfunction CardDescription({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <p className={`solid-studio-card-description ${className}`}>{children}</p>;\n}\n\nfunction CardContent({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-content ${className}`}>{children}</div>;\n}\n\nfunction CardFooter({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-footer ${className}`}>{children}</div>;\n}\n\n// ── Empty state ───────────────────────────────────────────────────────────────\n\nfunction EmptyState() {\n return (\n <div className=\"solid-studio-landing-empty-container\">\n <Card className=\"solid-studio-landing-empty-card\">\n <CardHeader className=\"solid-studio-landing-empty-header\">\n <div className=\"solid-studio-home-badge\" style={{ marginBottom: '12px' }}>Frontend Studio</div>\n <CardTitle>Frontend layout will appear here</CardTitle>\n <CardDescription>\n Register your app layouts to explore and customize them in the Studio.\n </CardDescription>\n </CardHeader>\n\n <CardContent className=\"solid-studio-landing-empty-body\">\n <div className=\"solid-studio-landing-empty-primary-action\">\n <p>To get started, use the <strong>SolidX AI Agent</strong> to add a new custom layout.</p>\n <button\n type=\"button\"\n className=\"solid-studio-empty-cta-button\"\n onClick={() => {\n const aiUrl = env(\"VITE_SOLIDX_AI_URL\");\n if (aiUrl) window.open(aiUrl, \"_blank\");\n }}\n >\n <ChatIcon />\n <span>Open AI Chat</span>\n {/* <ArrowIcon /> */}\n </button>\n </div>\n\n <div className=\"solid-studio-landing-empty-divider\" />\n\n <div className=\"solid-studio-landing-empty-details\">\n <p className=\"solid-studio-landing-empty-instruction\">\n Any route with a <code>path</code> and <code>children</code> passed to{\" \"}\n <code>getSolidRoutes()</code> will automatically appear as a card.\n </p>\n <div className=\"solid-studio-landing-snippet\">\n <pre>\n <code>{`// AppRoutes.tsx\\nconst extraRoutes = [\\n {\\n path: \"/my-layout\",\\n element: <MyLayout />,\\n children: [{ index: true, element: <MyPage /> }],\\n },\\n];\\n\\ngetSolidRoutes({ extraRoutes });`}</code>\n </pre>\n </div>\n <p className=\"solid-studio-landing-hint\">\n <strong>Pro Tip:</strong> Add <code>handle: {`{ title, description }`}</code> to a route to customize its appearance.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n\n// ── Card ──────────────────────────────────────────────────────────────────────\n\nfunction LayoutCard({\n entry,\n index,\n listView,\n}: {\n entry: SolidLayoutEntry;\n index: number;\n listView: boolean;\n}) {\n const navigate = useNavigate();\n const accent = CARD_ACCENTS[index % CARD_ACCENTS.length];\n\n return (\n <button\n type=\"button\"\n className={`solid-studio-home-card${listView ? \" solid-studio-home-card--list\" : \"\"}`}\n onClick={() => navigate(entry.to)}\n aria-label={`Open ${entry.title}`}\n >\n {!listView && (\n <div className=\"solid-studio-home-card-image-wrap\">\n <LayoutThumb accentColor={accent.bg} title={entry.title} />\n <div className=\"solid-studio-home-card-image-overlay\" />\n </div>\n )}\n <div className=\"solid-studio-home-card-body\">\n <div className={`solid-studio-home-card-icon ${accent.cls}`}>\n <LayoutPlaceholderIcon />\n </div>\n <div className=\"solid-studio-home-card-content\">\n <span className=\"solid-studio-home-card-title\">{entry.title}</span>\n {entry.description && (\n <span className=\"solid-studio-home-card-desc\">{entry.description}</span>\n )}\n <span className=\"solid-studio-home-card-desc\" style={{ opacity: 0.6, fontSize: 12 }}>\n {entry.to}\n </span>\n </div>\n <div className=\"solid-studio-home-card-cta\">\n <span>Open</span>\n <ArrowIcon />\n </div>\n </div>\n </button>\n );\n}\n\n// ── Page ──────────────────────────────────────────────────────────────────────\n\nexport function StudioLandingPage() {\n const layouts = useSolidLayoutRegistry();\n const [listView, setListView] = useState(false);\n\n return (\n <div className={`solid-studio-home ${layouts.length > 0 ? \"solid-studio-home--top\" : \"\"}`}>\n <div className={`solid-studio-home-inner ${layouts.length > 0 ? \"solid-studio-home-inner--fluid\" : \"\"}`}>\n\n {/* Toolbar: title left, view toggle right */}\n <div className=\"solid-studio-home-toolbar\">\n {/* <div className=\"solid-studio-home-toolbar-left\">\n <div className=\"solid-studio-home-heading\">\n <div className=\"solid-studio-home-badge\">Frontend Studio</div>\n <h1>Frontend Layouts</h1>\n <p>\n {layouts.length > 0\n ? `${layouts.length} layout${layouts.length === 1 ? \"\" : \"s\"} registered in your app.`\n : \"Register your app layouts to explore them here.\"}\n </p>\n </div>\n </div> */}\n {layouts.length > 0 && (\n <div className=\"solid-studio-home-toolbar-right\">\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${!listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(false)}\n aria-label=\"Grid view\"\n title=\"Grid view\"\n >\n <GridViewIcon />\n </button>\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(true)}\n aria-label=\"List view\"\n title=\"List view\"\n >\n <ListViewIcon />\n </button>\n </div>\n )}\n </div>\n\n {layouts.length === 0 ? (\n <EmptyState />\n ) : listView ? (\n <div className=\"solid-studio-home-cards--list\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView />\n ))}\n </div>\n ) : (\n <div className=\"solid-studio-home-cards solid-studio-home-cards--fluid\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView={false} />\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"StudioLandingPage.js","sourceRoot":"","sources":["../../../../src/routes/pages/studio/StudioLandingPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSolidLayoutRegistry } from \"../../SolidLayoutRegistry\";\nimport type { SolidLayoutEntry } from \"../../SolidLayoutRegistry\";\nimport { ChatIcon } from \"../../../components/layout/SolidAiStudioLayout\";\nimport { env } from \"../../../adapters/env\";\n\n// ── Icons ──────────────────────────────────────────────────────────────────────\n\nconst ArrowIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2.5 7h9M8 3.5l3.5 3.5L8 10.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nconst LayoutPlaceholderIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"16\" height=\"16\" rx=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path d=\"M1 6h16\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n <path d=\"M6 6v11\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n </svg>\n);\n\nconst NoLayoutIcon = () => (\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"2\" width=\"28\" height=\"28\" rx=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" opacity=\"0.4\" strokeDasharray=\"4 3\" />\n <path d=\"M11 16h10M16 11v10\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" opacity=\"0.5\" />\n </svg>\n);\n\nconst GridViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\nconst ListViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"2.5\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"6.25\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"10\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\n// ── Per-card accent colours (cycles by index) ──────────────────────────────────\n\nconst CARD_ACCENTS = [\n { bg: \"hsl(224 70% 54%)\", cls: \"solid-studio-home-card-icon--backend\" },\n { bg: \"hsl(158 64% 42%)\", cls: \"solid-studio-home-card-icon--list\" },\n { bg: \"hsl(32 95% 48%)\", cls: \"solid-studio-home-card-icon--kanban\" },\n { bg: \"hsl(270 65% 58%)\", cls: \"solid-studio-home-card-icon--form\" },\n { bg: \"hsl(199 89% 48%)\", cls: \"solid-studio-home-card-icon--tree\" },\n { bg: \"hsl(215 25% 52%)\", cls: \"solid-studio-home-card-icon--settings\" },\n];\n\n// ── Generic layout wireframe thumbnail ────────────────────────────────────────\n\nfunction LayoutThumb({ accentColor, title }: { accentColor: string; title: string }) {\n const initials = title\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n\n return (\n <svg\n className=\"solid-studio-home-card-thumb\"\n viewBox=\"0 0 280 122\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n {/* background */}\n <rect width=\"280\" height=\"122\" fill=\"var(--sidebar-background)\" />\n\n {/* sidebar */}\n <rect width=\"40\" height=\"122\" fill=\"var(--border)\" opacity=\"0.7\" />\n <rect x=\"7\" y=\"14\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.45\" />\n <rect x=\"7\" y=\"26\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"38\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"50\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n\n {/* top bar */}\n <rect x=\"40\" y=\"0\" width=\"240\" height=\"18\" fill=\"var(--border)\" opacity=\"0.5\" />\n\n {/* accent header band */}\n <rect x=\"48\" y=\"22\" width=\"224\" height=\"28\" rx=\"3\" fill={accentColor} opacity=\"0.12\" />\n <rect x=\"56\" y=\"30\" width=\"80\" height=\"7\" rx=\"2\" fill={accentColor} opacity=\"0.45\" />\n <rect x=\"56\" y=\"40\" width=\"50\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.3\" />\n\n {/* content blocks */}\n <rect x=\"48\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"126\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"58\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"90\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n\n {/* inner muted lines */}\n <rect x=\"54\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"54\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n <rect x=\"132\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"132\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n\n {/* initials badge */}\n <circle cx=\"60\" cy=\"98\" r=\"9\" fill={accentColor} opacity=\"0.18\" />\n <text\n x=\"60\"\n y=\"102\"\n textAnchor=\"middle\"\n fontSize=\"7\"\n fontWeight=\"700\"\n fill={accentColor}\n opacity=\"0.8\"\n fontFamily=\"system-ui, sans-serif\"\n >\n {initials}\n </text>\n </svg>\n );\n}\n\n// ── Card Components (shadcn-inspired) ────────────────────────────────────────\n\nfunction Card({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={`solid-studio-card ${className}`}>\n {children}\n </div>\n );\n}\n\nfunction CardHeader({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-header ${className}`}>{children}</div>;\n}\n\nfunction CardTitle({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <h3 className={`solid-studio-card-title ${className}`}>{children}</h3>;\n}\n\nfunction CardDescription({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <p className={`solid-studio-card-description ${className}`}>{children}</p>;\n}\n\nfunction CardContent({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-content ${className}`}>{children}</div>;\n}\n\nfunction CardFooter({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-footer ${className}`}>{children}</div>;\n}\n\n// ── Empty state ───────────────────────────────────────────────────────────────\n\nfunction EmptyState() {\n return (\n <div className=\"solid-studio-landing-empty-container\">\n <Card className=\"solid-studio-landing-empty-card\">\n <CardHeader className=\"solid-studio-landing-empty-header\">\n <div className=\"solid-studio-home-badge\" style={{ marginBottom: '12px' }}>Frontend Studio</div>\n <CardTitle>Frontend layout will appear here</CardTitle>\n <CardDescription>\n Register your app layouts to explore and customize them in the Studio.\n </CardDescription>\n </CardHeader>\n\n <CardContent className=\"solid-studio-landing-empty-body\">\n <div className=\"solid-studio-landing-empty-primary-action\">\n <p>To get started, use the <strong>SolidX AI Agent</strong> to add a new custom layout.</p>\n <button\n type=\"button\"\n className=\"solid-studio-empty-cta-button\"\n onClick={() => {\n const aiUrl = env(\"VITE_SOLIDX_AI_URL\");\n if (aiUrl) window.open(aiUrl, \"_blank\");\n }}\n >\n <ChatIcon />\n <span>Open AI Chat</span>\n {/* <ArrowIcon /> */}\n </button>\n </div>\n\n <div className=\"solid-studio-landing-empty-divider\" />\n\n <div className=\"solid-studio-landing-empty-details\">\n <p className=\"solid-studio-landing-empty-instruction\">\n Any route with a <code>path</code> and <code>children</code> passed to{\" \"}\n <code>getSolidRoutes()</code> will automatically appear as a card.\n </p>\n <div className=\"solid-studio-landing-snippet\">\n <pre>\n <code>{`// AppRoutes.tsx\\nconst extraRoutes = [\\n {\\n path: \"/my-layout\",\\n element: <MyLayout />,\\n children: [{ index: true, element: <MyPage /> }],\\n },\\n];\\n\\ngetSolidRoutes({ extraRoutes });`}</code>\n </pre>\n </div>\n <p className=\"solid-studio-landing-hint\">\n <strong>Pro Tip:</strong> Add <code>handle: {`{ title, description }`}</code> to a route to customize its appearance.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n\n// ── Card ──────────────────────────────────────────────────────────────────────\n\nfunction LayoutCard({\n entry,\n index,\n listView,\n}: {\n entry: SolidLayoutEntry;\n index: number;\n listView: boolean;\n}) {\n const navigate = useNavigate();\n const accent = CARD_ACCENTS[index % CARD_ACCENTS.length];\n\n return (\n <button\n type=\"button\"\n className={`solid-studio-home-card${listView ? \" solid-studio-home-card--list\" : \"\"}`}\n onClick={() => navigate(entry.to)}\n aria-label={`Open ${entry.title}`}\n >\n {!listView && (\n <div className=\"solid-studio-home-card-image-wrap\">\n <LayoutThumb accentColor={accent.bg} title={entry.title} />\n <div className=\"solid-studio-home-card-image-overlay\" />\n </div>\n )}\n <div className=\"solid-studio-home-card-body\">\n <div className={`solid-studio-home-card-icon ${accent.cls}`}>\n <LayoutPlaceholderIcon />\n </div>\n <div className=\"solid-studio-home-card-content\">\n <span className=\"solid-studio-home-card-title\">{entry.title}</span>\n {entry.description && (\n <span className=\"solid-studio-home-card-desc\">{entry.description}</span>\n )}\n <span className=\"solid-studio-home-card-desc\" style={{ opacity: 0.6, fontSize: 12 }}>\n {entry.to}\n </span>\n </div>\n <div className=\"solid-studio-home-card-cta\">\n <span>Open</span>\n <ArrowIcon />\n </div>\n </div>\n </button>\n );\n}\n\n// ── Page ──────────────────────────────────────────────────────────────────────\n\nexport function StudioLandingPage() {\n const layouts = useSolidLayoutRegistry();\n const [listView, setListView] = useState(false);\n\n return (\n <div className={`solid-studio-home ${layouts.length > 0 ? \"solid-studio-home--top\" : \"\"}`}>\n <div className={`solid-studio-home-inner ${layouts.length > 0 ? \"solid-studio-home-inner--fluid\" : \"\"}`}>\n\n {/* Toolbar: title left, view toggle right */}\n <div className=\"solid-studio-home-toolbar\">\n {/* <div className=\"solid-studio-home-toolbar-left\">\n <div className=\"solid-studio-home-heading\">\n <div className=\"solid-studio-home-badge\">Frontend Studio</div>\n <h1>Frontend Layouts</h1>\n <p>\n {layouts.length > 0\n ? `${layouts.length} layout${layouts.length === 1 ? \"\" : \"s\"} registered in your app.`\n : \"Register your app layouts to explore them here.\"}\n </p>\n </div>\n </div> */}\n {layouts.length > 0 && (\n <div className=\"solid-studio-home-toolbar-right\">\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${!listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(false)}\n aria-label=\"Grid view\"\n title=\"Grid view\"\n >\n <GridViewIcon />\n </button>\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(true)}\n aria-label=\"List view\"\n title=\"List view\"\n >\n <ListViewIcon />\n </button>\n </div>\n )}\n </div>\n\n {layouts.length === 0 ? (\n <EmptyState />\n ) : listView ? (\n <div className=\"solid-studio-home-cards--list\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView />\n ))}\n </div>\n ) : (\n <div className=\"solid-studio-home-cards solid-studio-home-cards--fluid\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView={false} />\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n"]}
@@ -2,7 +2,7 @@ import { useState } from "react";
2
2
  import { useNavigate } from "react-router-dom";
3
3
  import { useSolidLayoutRegistry } from "../../SolidLayoutRegistry";
4
4
  import type { SolidLayoutEntry } from "../../SolidLayoutRegistry";
5
- import { ChatIcon } from "@/components/layout/SolidAiStudioLayout";
5
+ import { ChatIcon } from "../../../components/layout/SolidAiStudioLayout";
6
6
  import { env } from "../../../adapters/env";
7
7
 
8
8
  // ── Icons ──────────────────────────────────────────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidxai/core-ui",
3
- "version": "0.1.7-beta.3",
3
+ "version": "0.1.7-beta.5",
4
4
  "scripts": {
5
5
  "prebuild": "npm run copy-resources && npm run copy-styles",
6
6
  "build": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json",
@@ -34,6 +34,7 @@
34
34
  "@types/lodash": "^4.17.23",
35
35
  "@types/pluralize": "^0.0.33",
36
36
  "@types/qs": "^6.14.0",
37
+ "@types/react-datepicker": "^4.11.2",
37
38
  "axios": "^1.7.2",
38
39
  "bcryptjs": "^2.4.3",
39
40
  "bootstrap": "^5.3.3",