From aeec7b0471390e403353213e85e66db0a7e99bb0 Mon Sep 17 00:00:00 2001 From: Chetan Date: Sat, 5 Sep 2026 18:40:30 +0530 Subject: [PATCH] Refactor DashboardPage to use new solid-dashboard.css and update class names - Replaced CSS module imports with a new global CSS file for the DashboardPage. - Updated class names in the DashboardPage component to match the new CSS styles. - Introduced a new solid-dashboard.css file containing styles for the dashboard layout, header, filters, and widgets. - Removed the old CSS module type definitions as they are no longer needed. --- src/components/common/SettingsComponent.tsx | 116 +-- src/components/common/SolidLoadingState.tsx | 12 +- src/components/common/SolidModuleHome.tsx | 21 +- ...nent.module.css => settings-component.css} | 256 +++---- ...ate.module.css => solid-loading-state.css} | 14 +- src/components/common/solid-module-home.css | 84 +++ .../common/solidModuleHome.module.css | 134 ---- .../chatter/SolidChatterCustomMessage.tsx | 6 +- .../core/chatter/SolidChatterDateDivider.tsx | 6 +- .../core/chatter/SolidChatterHeader.tsx | 5 +- .../core/chatter/SolidChatterMentionMenu.tsx | 14 +- .../core/chatter/SolidChatterMessageBox.tsx | 31 +- .../core/chatter/SolidMessageComposer.tsx | 27 +- .../{chatter.module.css => solid-chatter.css} | 100 ++- .../SolidAccountSettings.tsx | 20 +- .../SolidChangePassword.tsx | 46 +- .../SolidNotifications.tsx | 18 +- .../SolidPersonalInfo.tsx | 72 +- .../SolidAccountSettings/SolidVersionInfo.tsx | 66 +- ....module.css => solid-account-settings.css} | 244 +++--- .../SolidImportDropzone.tsx | 5 +- .../SolidImportInstructions.tsx | 5 +- .../SolidImportTransaction.tsx | 7 +- ...olidImport.module.css => solid-import.css} | 246 +++--- .../SolidLoaders/SolidCircularLoader.tsx | 6 +- ...s.module.css => solid-circular-loader.css} | 4 +- .../media/fileSize/MediaFileSizeWidget.tsx | 8 +- .../core/form/SolidFormViewShimmerLoading.tsx | 6 +- .../core/form/fields/SolidBooleanField.tsx | 26 +- .../core/form/fields/SolidComputedField.tsx | 14 +- .../core/form/fields/SolidDateField.tsx | 12 +- .../core/form/fields/SolidDateTimeField.tsx | 12 +- .../core/form/fields/SolidDecimalField.tsx | 16 +- .../core/form/fields/SolidEmailField.tsx | 10 +- .../core/form/fields/SolidIntegerField.tsx | 16 +- .../core/form/fields/SolidJsonField.tsx | 10 +- .../core/form/fields/SolidLongTextField.tsx | 20 +- .../form/fields/SolidMediaMultipleField.tsx | 52 +- .../form/fields/SolidMediaSingleField.tsx | 36 +- .../core/form/fields/SolidPasswordField.tsx | 36 +- .../core/form/fields/SolidRichTextField.tsx | 12 +- .../fields/SolidSelectionDynamicField.tsx | 16 +- .../form/fields/SolidSelectionStaticField.tsx | 32 +- .../core/form/fields/SolidShortTextField.tsx | 28 +- .../core/form/fields/SolidTimeField.tsx | 12 +- .../SolidRelationManyToManyField.tsx | 20 +- .../relations/SolidRelationManyToOneField.tsx | 16 +- .../relations/SolidRelationOneToManyField.tsx | 12 +- ...olidFields.module.css => solid-fields.css} | 95 ++- ...ss => solid-form-view-shimmer-loading.css} | 2 +- .../SolidListColumnSelector.tsx | 7 +- ...ule.css => solid-list-column-selector.css} | 4 +- src/components/core/list/SolidListView.tsx | 10 +- .../core/list/SolidListViewWrapper.module.css | 90 --- .../list/columns/SolidMediaMultipleColumn.tsx | 14 +- .../core/list/solid-list-view-wrapper.css | 13 + .../widgets/PublishedStatusListViewWidget.tsx | 8 +- ... => published-status-list-view-widget.css} | 10 +- .../core/model/FieldMetaDataForm.tsx | 264 +++---- src/components/core/model/ModelMetaData.tsx | 52 +- src/components/core/module/CreateModule.tsx | 44 +- src/components/core/solid-ai/SolidAiChat.tsx | 248 +++---- ...lidAiChat.module.css => solid-ai-chat.css} | 485 ++++-------- .../themes/solid-dark-enterprise/theme.css | 695 +++-------------- .../themes/solid-dark-modern/theme.css | 280 ++----- .../themes/solid-dark-purple/theme.css | 14 +- .../themes/solid-light-enterprise/theme.css | 700 +++--------------- .../themes/solid-light-modern/theme.css | 463 ++++-------- .../themes/solid-light-purple/theme.css | 14 +- src/routes/pages/admin/core/DashboardPage.tsx | 84 +-- ...ardPage.module.css => solid-dashboard.css} | 92 +-- src/types/css-modules.d.ts | 6 - 72 files changed, 1999 insertions(+), 3682 deletions(-) rename src/components/common/{SettingsComponent.module.css => settings-component.css} (72%) rename src/components/common/{SolidLoadingState.module.css => solid-loading-state.css} (85%) create mode 100644 src/components/common/solid-module-home.css delete mode 100644 src/components/common/solidModuleHome.module.css rename src/components/core/chatter/{chatter.module.css => solid-chatter.css} (80%) rename src/components/core/common/SolidAccountSettings/{SolidAccountSettings.module.css => solid-account-settings.css} (69%) rename src/components/core/common/SolidGenericImport/{SolidImport.module.css => solid-import.css} (70%) rename src/components/core/common/SolidLoaders/{SolidLoaders.module.css => solid-circular-loader.css} (93%) rename src/components/core/form/fields/{solidFields.module.css => solid-fields.css} (78%) rename src/components/core/form/{solidFormViewShimmerLoading.module.css => solid-form-view-shimmer-loading.css} (67%) rename src/components/core/list/SolidColumnSelector/{SolidListColumnSelector.module.css => solid-list-column-selector.css} (69%) delete mode 100644 src/components/core/list/SolidListViewWrapper.module.css create mode 100644 src/components/core/list/solid-list-view-wrapper.css rename src/components/core/list/widgets/{PublishedStatusListViewWidget.module.css => published-status-list-view-widget.css} (68%) rename src/components/core/solid-ai/{SolidAiChat.module.css => solid-ai-chat.css} (75%) rename src/routes/pages/admin/core/{DashboardPage.module.css => solid-dashboard.css} (66%) delete mode 100644 src/types/css-modules.d.ts diff --git a/src/components/common/SettingsComponent.tsx b/src/components/common/SettingsComponent.tsx index 54de70e9..56f16f19 100644 --- a/src/components/common/SettingsComponent.tsx +++ b/src/components/common/SettingsComponent.tsx @@ -33,7 +33,7 @@ import { import { SettingDropzoneActivePlaceholder } from "./SolidSettings/SettingDropzoneActivePlaceholder"; import { SettingsImageRemoveButton } from "./SolidSettings/SettingsImageRemoveButton"; import { SolidUploadedImage } from "./SolidSettings/SolidUploadedImage"; -import styles from "./SettingsComponent.module.css"; +import "./settings-component.css"; type SettingsFormValue = string | number | boolean | null | File; type SettingsFilterMode = "all" | "read-only" | "editable"; @@ -306,11 +306,11 @@ export function SettingsComponent() { const moduleTabs = moduleEntries.map((entry) => ({ value: entry.moduleName, label: ( - - {entry.badge} - - {entry.label} - {entry.settings.length} settings + + {entry.badge} + + {entry.label} + {entry.settings.length} settings ), @@ -318,15 +318,15 @@ export function SettingsComponent() {
{groupedModuleSettings.length ? ( groupedModuleSettings.map((group) => ( -
-
-
+
+
+
-

{group.label}

-
{group.settings.length} item{group.settings.length === 1 ? "" : "s"}
+

{group.label}

+
{group.settings.length} item{group.settings.length === 1 ? "" : "s"}
-
+
{group.settings.map((setting) => { const value = formValues[setting.key]; const settingName = setting.label || humanizeSettingToken(setting.key); @@ -344,22 +344,22 @@ export function SettingsComponent() { updateFileValue, }; return ( -
-
-
-

{settingName}

+
+
+
+

{settingName}

{settingHelpText ? ( - + {settingHelpText} @@ -377,14 +377,14 @@ export function SettingsComponent() { ) : null}
- {setting.description ?

{setting.description}

: null} + {setting.description ?

{setting.description}

: null}
{!setting.editable ? ( setting.controlType === "custom" ? ( customWidgetErrorText ? ( -
- {customWidgetErrorText} +
+ {customWidgetErrorText}
) : SettingsWidget ? ( (() => { @@ -393,22 +393,22 @@ export function SettingsComponent() { })() ) : null ) : setting.controlType === "mediaSingle" && value ? ( -
+
) : ( -
- +
+ {formatReadonlyValue(setting, value)}
) ) : ( -
+
{setting.controlType === "boolean" ? ( -
+
updateValue(setting.key, checked)} /> - {value ? "Enabled" : "Disabled"} + {value ? "Enabled" : "Disabled"}
) : null} @@ -459,11 +459,11 @@ export function SettingsComponent() { ) : null} {setting.controlType === "mediaSingle" ? ( -
-
-
)) ) : ( -
No settings match the current filter.
+
No settings match the current filter.
)}
), })); return ( -
-
-
+
+
+
Settings
-
Manage platform configuration across modules from a single workspace.
-
- {moduleEntries.length} module{moduleEntries.length === 1 ? "" : "s"} - {totalSettingsCount} setting{totalSettingsCount === 1 ? "" : "s"} +
Manage platform configuration across modules from a single workspace.
+
+ {moduleEntries.length} module{moduleEntries.length === 1 ? "" : "s"} + {totalSettingsCount} setting{totalSettingsCount === 1 ? "" : "s"}
-
-
+
+
setSearchTerm(event.target.value)} />
{searchTerm ? ( - + {filteredSettings.length} result{filteredSettings.length === 1 ? "" : "s"} ) : null}
-
-
+
+
- + {filterMode === "read-only" ? "Read-only filter active" : "System-managed value"} - @@ -578,19 +578,19 @@ export function SettingsComponent() {
-
+
{moduleTabs.length ? ( ) : ( -
No settings are available.
+
No settings are available.
)}
diff --git a/src/components/common/SolidLoadingState.tsx b/src/components/common/SolidLoadingState.tsx index cad4a68f..86d155d5 100644 --- a/src/components/common/SolidLoadingState.tsx +++ b/src/components/common/SolidLoadingState.tsx @@ -2,7 +2,7 @@ import { useLayoutEffect } from "react"; import type { ReactNode } from "react"; import { SolidSpinner } from "../shad-cn-ui"; import { getDefaultThemeKey, isRegisteredThemeKey, type ThemeMode } from "../../theme/theme-registry"; -import styles from "./SolidLoadingState.module.css"; +import "./solid-loading-state.css"; const THEME_MODE_STORAGE_KEY = "solidx.theme.mode"; const LIGHT_THEME_STORAGE_KEY = "solidx.theme.light"; @@ -47,11 +47,11 @@ export function SolidLoadingState({ }, []); return ( -
-
- -

{title}

-

{description}

+
+
+ +

{title}

+

{description}

{children}
diff --git a/src/components/common/SolidModuleHome.tsx b/src/components/common/SolidModuleHome.tsx index 9cc2b7ec..48763c7a 100644 --- a/src/components/common/SolidModuleHome.tsx +++ b/src/components/common/SolidModuleHome.tsx @@ -1,8 +1,7 @@ import { useSession } from "../../hooks/useSession"; -import styles from './solidModuleHome.module.css' -import { DocsSvg } from '../Svg/DocsSvg'; +import './solid-module-home.css';import { DocsSvg } from '../Svg/DocsSvg'; import { SettingsSvg } from '../Svg/SettingsSvg'; import { DevDocs } from '../Svg/DevDocs'; import { HomePageModuleSvg } from '../Svg/HomePageModuleSvg'; @@ -46,16 +45,16 @@ export const SolidModuleHome = ({ moduleName = "Dashboard" }: SolidModuleHomePro
-
+
-

+

Welcome, {status === "loading" ? "." : user}

This is the home page for the {moduleName} module. You can find documentation and settings below.

-
+
@@ -66,26 +65,26 @@ export const SolidModuleHome = ({ moduleName = "Dashboard" }: SolidModuleHomePro icon: , title: 'Admin Docs', description: 'Explore the administrator documentation to manage and configure your system', - class: styles.dashboardCardOne, + class: "solid-module-home-dashboard-card-one", url: 'https://docs.solidxai.com/docs/admin-docs/' }, { icon: , title: 'Dev Docs', description: 'Dive into the developer documentation to build, extend, and integrate with the platform', - class: styles.dashboardCardTwo, + class: "solid-module-home-dashboard-card-two", url: 'https://docs.solidxai.com/docs/developer-docs/' }, { icon: , title: 'Settings', description: 'Access and update your account settings, preferences, and profile information', - class: styles.dashboardCardThree, + class: "solid-module-home-dashboard-card-three", type: 'popup' }].map((card, i) => (
-
+
-
{card.icon}
-

{card.title}

+
{card.icon}
+

{card.title}

{card.description}

diff --git a/src/components/common/SettingsComponent.module.css b/src/components/common/settings-component.css similarity index 72% rename from src/components/common/SettingsComponent.module.css rename to src/components/common/settings-component.css index 1a4a8fa7..6da84210 100644 --- a/src/components/common/SettingsComponent.module.css +++ b/src/components/common/settings-component.css @@ -1,4 +1,4 @@ -.page { +.solid-settings-page { display: flex; flex-direction: column; gap: 0.6rem; @@ -6,7 +6,7 @@ color: var(--foreground); } -.pageHeader { +.solid-settings-page-header { flex-shrink: 0; position: sticky; top: 0; @@ -19,14 +19,14 @@ border-bottom: 1px solid color-mix(in srgb, var(--border) 84%, transparent); } -.headerIntro { +.solid-settings-header-intro { display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; } -.headerSearch { +.solid-settings-header-search { display: flex; align-items: center; gap: 0.75rem; @@ -35,19 +35,19 @@ min-width: 0; } -.subtitle { +.solid-settings-subtitle { color: var(--muted-foreground); font-size: 0.9rem; margin: 0; } -.summaryChips { +.solid-settings-summary-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; } -.summaryChip { +.solid-settings-summary-chip { display: inline-flex; align-items: center; min-height: 1.75rem; @@ -60,17 +60,17 @@ font-weight: 600; } -.summaryChipButton { +.solid-settings-summary-chip-button { cursor: pointer; } -.summaryChipActive { +.solid-settings-summary-chip-active { border-color: color-mix(in srgb, var(--primary-color, #7c3aed) 45%, transparent); background: color-mix(in srgb, var(--primary-color, #7c3aed) 14%, var(--card) 86%); color: var(--primary-color, #7c3aed); } -.resultsMeta { +.solid-settings-results-meta { display: inline-flex; flex-direction: row; align-items: center; @@ -85,7 +85,7 @@ white-space: nowrap; } -.legend { +.solid-settings-legend { display: inline-flex; align-items: center; gap: 0.45rem; @@ -93,7 +93,7 @@ font-size: 0.78rem; } -.readonlyFilterButton { +.solid-settings-readonly-filter-button { border: 1px solid transparent; background: transparent; padding: 0.12rem; @@ -106,24 +106,24 @@ box-shadow 0.15s ease; } -.readonlyFilterButton:hover { +.solid-settings-readonly-filter-button:hover { transform: translateY(-1px); border-color: color-mix(in srgb, #f59e0b 36%, transparent); } -.readonlyFilterButtonActive { +.solid-settings-readonly-filter-button-active { filter: saturate(1.18); border-color: color-mix(in srgb, #f59e0b 50%, transparent); background: color-mix(in srgb, #f59e0b 14%, transparent); box-shadow: 0 0 0 2px color-mix(in srgb, #f59e0b 22%, transparent); } -.legendLabelActive { +.solid-settings-legend-label-active { color: color-mix(in srgb, #b45309 78%, var(--foreground)); font-weight: 700; } -.legendButton { +.solid-settings-legend-button { display: inline-flex; align-items: center; justify-content: center; @@ -137,7 +137,7 @@ cursor: help; } -.toolbarActions { +.solid-settings-toolbar-actions { display: flex; align-items: center; gap: 0.65rem; @@ -146,12 +146,12 @@ min-width: 0; } -.searchIcon { +.solid-settings-search-icon { position: relative; width: min(100%, 28rem); } -.searchIcon svg { +.solid-settings-search-icon svg { position: absolute; left: 0.85rem; top: 50%; @@ -159,11 +159,11 @@ color: var(--muted-foreground); } -.searchInput { +.solid-settings-search-input { padding-left: 2.4rem; } -.workspace { +.solid-settings-workspace { background: color-mix(in srgb, var(--surface-card, var(--card)) 94%, var(--card) 6%); border: 1px solid color-mix(in srgb, var(--border) 85%, transparent); border-radius: 1.25rem; @@ -173,7 +173,7 @@ min-height: 0; } -.tabGroup { +.solid-settings-tab-group { display: grid; grid-template-columns: minmax(210px, 236px) minmax(0, 1fr); gap: 0; @@ -181,7 +181,7 @@ min-height: 0; } -.tabList { +.solid-settings-tab-list { display: flex; flex-direction: column; align-items: stretch; @@ -197,14 +197,14 @@ max-width: 100%; } -.tabPanel { +.solid-settings-tab-panel { padding: 0.85rem 0.95rem 1rem; overflow-y: auto; min-height: 0; overflow-x: hidden; } -.moduleTab { +.solid-settings-module-tab { display: flex; align-items: center; gap: 0.75rem; @@ -213,7 +213,7 @@ min-width: 0; } -.moduleTabBadge { +.solid-settings-module-tab-badge { width: 1.95rem; height: 1.95rem; border-radius: 0.85rem; @@ -227,7 +227,7 @@ border: 1px solid color-mix(in srgb, var(--primary-color, #4f46e5) 28%, transparent); } -.moduleTabText { +.solid-settings-module-tab-text { display: flex; flex-direction: column; gap: 0.15rem; @@ -235,37 +235,37 @@ overflow: hidden; } -.moduleTabLabel { +.solid-settings-module-tab-label { font-size: 0.89rem; font-weight: 600; line-height: 1.2; } -.moduleTabMeta { +.solid-settings-module-tab-meta { font-size: 0.72rem; color: var(--muted-foreground); } -.moduleTabLabel, -.moduleTabMeta { +.solid-settings-module-tab-label, +.solid-settings-module-tab-meta { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.groupSection + .groupSection { +.solid-settings-group-section + .solid-settings-group-section { margin-top: 0.85rem; } -.groupCard { +.solid-settings-group-card { border: 1px solid color-mix(in srgb, var(--border) 85%, transparent); border-radius: 1rem; overflow: visible; background: color-mix(in srgb, var(--surface-card, var(--card)) 96%, var(--card) 4%); } -.groupHeader { +.solid-settings-group-header { display: flex; align-items: center; justify-content: space-between; @@ -275,23 +275,23 @@ border-bottom: 1px solid color-mix(in srgb, var(--border) 80%, transparent); } -.groupTitle { +.solid-settings-group-title { margin: 0; font-size: 0.94rem; font-weight: 700; color: var(--solid-form-title, #0f172a); } -.groupMeta { +.solid-settings-group-meta { font-size: 0.74rem; color: var(--muted-foreground); } -.groupBody { +.solid-settings-group-body { padding: 0.15rem 0.9rem; } -.settingRow { +.solid-settings-setting-row { display: grid; grid-template-columns: minmax(200px, 250px) minmax(0, 1fr); gap: 0.95rem; @@ -299,31 +299,31 @@ align-items: start; } -.settingRow + .settingRow { +.solid-settings-setting-row + .solid-settings-setting-row { border-top: 1px solid color-mix(in srgb, var(--border) 75%, transparent); } -.settingLabelWrap { +.solid-settings-setting-label-wrap { display: flex; flex-direction: column; gap: 0.35rem; } -.settingLabelLine { +.solid-settings-setting-label-line { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; } -.settingLabel { +.solid-settings-setting-label { margin: 0; font-size: 0.86rem; font-weight: 600; color: var(--solid-form-title, #0f172a); } -.settingHelpButton { +.solid-settings-setting-help-button { display: inline-flex; align-items: center; justify-content: center; @@ -338,24 +338,24 @@ transition: color 0.15s ease, background-color 0.15s ease, transform 0.15s ease; } -.settingHelpButton:hover { +.solid-settings-setting-help-button:hover { color: var(--primary-color, #7c3aed); background: color-mix(in srgb, var(--primary-color, #7c3aed) 10%, transparent); transform: translateY(-1px); } -.settingHelpButton:focus-visible { +.solid-settings-setting-help-button:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary-color, #7c3aed) 45%, transparent); outline-offset: 2px; } -.settingHelpTooltip { +.solid-settings-setting-help-tooltip { max-width: 24rem; white-space: normal; line-height: 1.45; } -.settingDescription { +.solid-settings-setting-description { margin: 0; color: var(--muted-foreground); font-size: 0.79rem; @@ -363,7 +363,7 @@ max-width: 20rem; } -.readonlyValue { +.solid-settings-readonly-value { min-height: 2.45rem; max-width: 100%; display: flex; @@ -378,62 +378,62 @@ word-break: break-word; } -.emptyValue { +.solid-settings-empty-value { color: var(--muted-foreground); font-style: italic; } -.customWidgetError { +.solid-settings-custom-widget-error { color: var(--red-600, #dc2626); font-style: normal; } -.controlStack { +.solid-settings-control-stack { display: flex; flex-direction: column; gap: 0.5rem; max-width: 38rem; } -.customControlStack { +.solid-settings-custom-control-stack { max-width: none; } /* Keep nested horizontal widget tabs sized to their labels. The outer settings tabs intentionally use full-width vertical triggers. */ -.customControlStack :global(.solid-tabs:not(.solid-tabs--vertical) .solid-notebook-tab-trigger) { +.solid-settings-custom-control-stack .solid-tabs:not(.solid-tabs--vertical) .solid-notebook-tab-trigger { flex: 0 0 auto !important; width: auto !important; } -.mediaField { +.solid-settings-media-field { display: flex; flex-direction: column; gap: 0.55rem; } -.mediaComposer { +.solid-settings-media-composer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 260px); gap: 0.75rem; align-items: start; } -.mediaDropzone { +.solid-settings-media-dropzone { position: relative; display: block; cursor: pointer; max-width: 100%; } -.mediaInput { +.solid-settings-media-input { position: absolute; inset: 0; opacity: 0; cursor: pointer; } -.mediaPreview { +.solid-settings-media-preview { width: min(100%, 260px); border-radius: 0.9rem; border: 1px solid color-mix(in srgb, var(--border) 80%, transparent); @@ -441,7 +441,7 @@ background: color-mix(in srgb, var(--surface-ground, var(--card)) 80%, var(--card) 20%); } -.mediaEmptyState { +.solid-settings-media-empty-state { min-height: 8.5rem; display: flex; align-items: center; @@ -455,19 +455,19 @@ font-size: 0.8rem; } -.boolRow { +.solid-settings-bool-row { display: flex; align-items: center; gap: 0.65rem; min-height: 2.45rem; } -.boolText { +.solid-settings-bool-text { font-size: 0.84rem; color: var(--muted-foreground); } -.emptyState { +.solid-settings-empty-state { padding: 2.25rem 1.5rem; text-align: center; color: var(--muted-foreground); @@ -477,34 +477,34 @@ intentionally uses a fixed vertical module rail, but that rail leaves too little room for nested AI settings tabs and their provider table on phones. */ @media (max-width: 767px) { - .page { + .solid-settings-page { height: auto; min-height: calc(100dvh - 46px); overflow-x: hidden; } - .pageHeader { + .solid-settings-page-header { grid-template-columns: minmax(0, 1fr); align-items: stretch; } - .headerSearch, - .searchIcon { + .solid-settings-header-search, + .solid-settings-search-icon { width: 100%; max-width: none; } - .toolbarActions { + .solid-settings-toolbar-actions { justify-content: space-between; } - .tabGroup { + .solid-settings-tab-group { display: flex; flex-direction: column; width: 100%; } - .tabList { + .solid-settings-tab-list { flex: 0 0 auto; flex-direction: row; overflow-x: auto; @@ -513,55 +513,55 @@ border-bottom: 1px solid color-mix(in srgb, var(--border) 86%, transparent); } - .tabPanel { + .solid-settings-tab-panel { width: 100%; min-width: 0; overflow-x: auto; padding: 0.75rem 0.65rem 1rem; } - .settingRow { + .solid-settings-setting-row { grid-template-columns: minmax(0, 1fr); } - .customControlStack, - .customControlStack :global(.solid-notebook), - .customControlStack :global(.solid-notebook-content) { + .solid-settings-custom-control-stack, + .solid-settings-custom-control-stack .solid-notebook, + .solid-settings-custom-control-stack .solid-notebook-content { width: 100%; min-width: 0; max-width: 100%; } - .customControlStack :global(.solid-notebook-tablist) { + .solid-settings-custom-control-stack .solid-notebook-tablist { max-width: 100%; overflow-x: auto; } - .customControlStack :global(.solid-ai-model-config-card) { + .solid-settings-custom-control-stack .solid-ai-model-config-card { width: 100% !important; } } -.pageHeader :global(.form-wrapper-title) { +.solid-settings-page-header .form-wrapper-title { color: var(--foreground) !important; } -.workspace :global(.solid-notebook-tab-trigger) { +.solid-settings-workspace .solid-notebook-tab-trigger { color: color-mix(in srgb, var(--muted-foreground) 88%, transparent); border-bottom-color: transparent; } -.workspace :global(.solid-notebook-tab-trigger:hover) { +.solid-settings-workspace .solid-notebook-tab-trigger:hover { color: var(--foreground); } -.workspace :global(.solid-notebook-tab-trigger.active) { +.solid-settings-workspace .solid-notebook-tab-trigger.active { color: var(--foreground); background: color-mix(in srgb, var(--primary) 10%, var(--card) 90%); border-bottom-color: transparent; } -.workspace :global(.solid-tabs--vertical .solid-notebook-tab-trigger) { +.solid-settings-workspace .solid-tabs--vertical .solid-notebook-tab-trigger { width: 100%; justify-content: flex-start; padding: 0.7rem 0.8rem; @@ -570,25 +570,25 @@ text-align: left; } -.workspace :global(.solid-tabs--vertical .solid-notebook-tab-trigger.active) { +.solid-settings-workspace .solid-tabs--vertical .solid-notebook-tab-trigger.active { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 24%, transparent); } -.workspace :global(.solid-notebook-tablist.solid-tabs-list) { +.solid-settings-workspace .solid-notebook-tablist.solid-tabs-list { width: 100% !important; max-width: 100%; min-width: 0; } -:global(html.dark) .pageHeader, -:global([data-theme="dark"]) .pageHeader { +html.dark .solid-settings-page-header, +[data-theme="dark"] .solid-settings-page-header { background: linear-gradient(180deg, color-mix(in srgb, var(--background) 96%, #020617 4%), color-mix(in srgb, var(--background) 92%, #020617 8%)); border-bottom-color: color-mix(in srgb, var(--border) 72%, #334155 28%); } -:global(html.dark) .workspace, -:global([data-theme="dark"]) .workspace { +html.dark .solid-settings-workspace, +[data-theme="dark"] .solid-settings-workspace { background: linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, #172554 4%), color-mix(in srgb, var(--card) 90%, #0b1220 10%)); border-color: color-mix(in srgb, var(--border) 74%, #334155 26%); @@ -597,75 +597,75 @@ inset 0 1px 0 rgba(148, 163, 184, 0.04); } -:global(html.dark) .tabList, -:global([data-theme="dark"]) .tabList { +html.dark .solid-settings-tab-list, +[data-theme="dark"] .solid-settings-tab-list { background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 10%, transparent), transparent 34%), color-mix(in srgb, var(--background) 78%, var(--card) 22%); border-right-color: color-mix(in srgb, var(--border) 74%, #334155 26%); } -:global(html.dark) .groupCard, -:global([data-theme="dark"]) .groupCard { +html.dark .solid-settings-group-card, +[data-theme="dark"] .solid-settings-group-card { border-color: color-mix(in srgb, var(--border) 76%, #334155 24%); background: linear-gradient(180deg, color-mix(in srgb, var(--card) 95%, #172554 5%), color-mix(in srgb, var(--card) 90%, #0b1220 10%)); } -:global(html.dark) .groupHeader, -:global([data-theme="dark"]) .groupHeader { +html.dark .solid-settings-group-header, +[data-theme="dark"] .solid-settings-group-header { background: color-mix(in srgb, var(--background) 72%, var(--card) 28%); border-bottom-color: color-mix(in srgb, var(--border) 72%, #334155 28%); } -:global(html.dark) .groupTitle, -:global(html.dark) .settingLabel, -:global([data-theme="dark"]) .groupTitle, -:global([data-theme="dark"]) .settingLabel { +html.dark .solid-settings-group-title, +html.dark .solid-settings-setting-label, +[data-theme="dark"] .solid-settings-group-title, +[data-theme="dark"] .solid-settings-setting-label { color: var(--foreground); } -:global(html.dark) .readonlyValue, -:global(html.dark) .mediaPreview, -:global(html.dark) .mediaEmptyState, -:global([data-theme="dark"]) .readonlyValue, -:global([data-theme="dark"]) .mediaPreview, -:global([data-theme="dark"]) .mediaEmptyState { +html.dark .solid-settings-readonly-value, +html.dark .solid-settings-media-preview, +html.dark .solid-settings-media-empty-state, +[data-theme="dark"] .solid-settings-readonly-value, +[data-theme="dark"] .solid-settings-media-preview, +[data-theme="dark"] .solid-settings-media-empty-state { border-color: color-mix(in srgb, var(--border) 74%, #334155 26%); background: color-mix(in srgb, var(--background) 70%, var(--card) 30%); } -:global(html.dark) .workspace :global(.solid-notebook-tab-trigger), -:global([data-theme="dark"]) .workspace :global(.solid-notebook-tab-trigger) { +html.dark .solid-settings-workspace .solid-notebook-tab-trigger, +[data-theme="dark"] .solid-settings-workspace .solid-notebook-tab-trigger { color: color-mix(in srgb, var(--foreground) 74%, transparent); } -:global(html.dark) .workspace :global(.solid-notebook-tab-trigger.active), -:global([data-theme="dark"]) .workspace :global(.solid-notebook-tab-trigger.active) { +html.dark .solid-settings-workspace .solid-notebook-tab-trigger.active, +[data-theme="dark"] .solid-settings-workspace .solid-notebook-tab-trigger.active { color: color-mix(in srgb, var(--foreground) 96%, white 4%); background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 18%, #172554 82%), color-mix(in srgb, var(--primary) 10%, #0b1220 90%)); } @media (max-width: 960px) { - .pageHeader { + .solid-settings-page-header { grid-template-columns: 1fr; align-items: stretch; } - .tabGroup { + .solid-settings-tab-group { grid-template-columns: 1fr; } - .headerSearch { + .solid-settings-header-search { justify-content: flex-start; min-width: 100%; } - .toolbarActions { + .solid-settings-toolbar-actions { justify-content: space-between; } - .tabList { + .solid-settings-tab-list { flex-direction: row; align-items: stretch; border-right: none; @@ -674,72 +674,72 @@ overflow-x: auto; } - .moduleTab { + .solid-settings-module-tab { min-width: 12rem; } - .settingRow { + .solid-settings-setting-row { grid-template-columns: 1fr; } - .mediaComposer { + .solid-settings-media-composer { grid-template-columns: 1fr; } - .mediaPreview { + .solid-settings-media-preview { width: 100%; } } @media (max-width: 640px) { - .page { + .solid-settings-page { height: auto; min-height: calc(100dvh - 46px); } - .pageHeader { + .solid-settings-page-header { gap: 0.75rem; } - .subtitle { + .solid-settings-subtitle { max-width: none; line-height: 1.45; } - .searchIcon { + .solid-settings-search-icon { width: 100%; } - .toolbarActions { + .solid-settings-toolbar-actions { justify-content: flex-start; } - .legend { + .solid-settings-legend { flex-wrap: wrap; } - .tabList { + .solid-settings-tab-list { padding: 0.7rem; } - .tabPanel { + .solid-settings-tab-panel { padding: 0.75rem; } - .moduleTab { + .solid-settings-module-tab { min-width: 10.5rem; } - .groupHeader { + .solid-settings-group-header { align-items: flex-start; flex-direction: column; } - .groupBody { + .solid-settings-group-body { padding-inline: 0.75rem; } - .readonlyValue { + .solid-settings-readonly-value { min-height: 2.3rem; } } diff --git a/src/components/common/SolidLoadingState.module.css b/src/components/common/solid-loading-state.css similarity index 85% rename from src/components/common/SolidLoadingState.module.css rename to src/components/common/solid-loading-state.css index 8c0a6b7d..13947a90 100644 --- a/src/components/common/SolidLoadingState.module.css +++ b/src/components/common/solid-loading-state.css @@ -1,4 +1,4 @@ -.solidLoadingState { +.solid-loading-state { min-height: 100vh; width: 100%; display: flex; @@ -10,7 +10,7 @@ var(--background); } -.card { +.solid-loading-card { width: min(100%, 28rem); display: flex; flex-direction: column; @@ -24,11 +24,11 @@ box-shadow: 0 18px 40px -28px rgba(15, 23, 42, 0.35); } -.spinner { +.solid-loading-spinner { color: var(--primary-color); } -.title { +.solid-loading-title { margin: 0; font-size: 1rem; font-weight: 600; @@ -36,7 +36,7 @@ color: var(--foreground); } -.description { +.solid-loading-description { margin: 0; max-width: 24rem; font-size: 0.875rem; @@ -45,11 +45,11 @@ } @media (max-width: 640px) { - .solidLoadingState { + .solid-loading-state { padding: 1.25rem; } - .card { + .solid-loading-card { padding: 1.5rem 1.25rem; border-radius: 0.875rem; } diff --git a/src/components/common/solid-module-home.css b/src/components/common/solid-module-home.css new file mode 100644 index 00000000..c024c60b --- /dev/null +++ b/src/components/common/solid-module-home.css @@ -0,0 +1,84 @@ +.solid-module-welcome-section { + background-color: var(--solid-dashboard-welcome-bg); + padding: 24px; + border-radius: 0.5rem; + position: relative; + overflow: hidden; +} + +.solid-module-home-home-svg { + position: absolute; + right: 0; + top: 0; + bottom: 0; +} + +.solid-module-home-title1 { + font-size: 1.5rem; + font-style: normal; + font-weight: 700; + color: var(--solid-dark-title); + margin: 0; +} + +.solid-module-home-color-cards { + border-radius: 0.5rem; + padding: 24px; + display: flex; + align-items: flex-end; + justify-content: space-between; + height: 100%; +} + +.solid-module-home-dashboard-card-one { + border: 1px solid var(--solid-dashboard-card-one-border); + background: var(--solid-dashboard-card-one-bg); +} + +.solid-module-home-dashboard-card-one .solid-module-home-card-svg-wrapper { + background-color: var(--solid-admin-card-color-1); +} + +.solid-module-home-dashboard-card-two { + border: 1px solid var(--solid-dashboard-card-two-border); + background: var(--solid-dashboard-card-two-bg); +} + +.solid-module-home-dashboard-card-two .solid-module-home-card-svg-wrapper { + background-color: var(--solid-admin-card-color-2); +} + +.solid-module-home-dashboard-card-three { + border: 1px solid var(--solid-dashboard-card-three-border); + background: var(--solid-dashboard-card-three-bg); +} + +.solid-module-home-dashboard-card-three .solid-module-home-card-svg-wrapper { + background-color: var(--solid-admin-card-color-3); +} + +@media(max-width:991px) { + .solid-module-welcome-section { + padding: 16px; + height: 100%; + padding-bottom: 0 !important; + padding-right: 0px !important; + } + + .solid-module-home-color-cards { + padding: 16px; + } + + .solid-module-home-title1 { + font-size: 1.4rem; + } + + .solid-module-home-home-svg { + position: relative; + right: 0; + top: 0; + bottom: 0; + } + + +} \ No newline at end of file diff --git a/src/components/common/solidModuleHome.module.css b/src/components/common/solidModuleHome.module.css deleted file mode 100644 index f45f0686..00000000 --- a/src/components/common/solidModuleHome.module.css +++ /dev/null @@ -1,134 +0,0 @@ -.solidModuleWelcomeSection { - background-color: var(--solid-dashboard-welcome-bg); - padding: 24px; - border-radius: 0.5rem; - position: relative; - overflow: hidden; -} - -.homeSvg { - position: absolute; - right: 0; - top: 0; - bottom: 0; -} - -.solidModuleHomeTitle1 { - font-size: 1.5rem; - font-style: normal; - font-weight: 700; - color: var(--solid-dark-title); - margin: 0; -} - -.solidModuleHomeColorCards { - border-radius: 0.5rem; - padding: 24px; - display: flex; - align-items: flex-end; - justify-content: space-between; - height: 100%; -} - -.dashboardCardOne { - border: 1px solid var(--solid-dashboard-card-one-border); - background: var(--solid-dashboard-card-one-bg); -} - -.dashboardCardOne .solidModuleHomeCardSvgWrapper { - background-color: var(--solid-admin-card-color-1); -} - -.dashboardCardTwo { - border: 1px solid var(--solid-dashboard-card-two-border); - background: var(--solid-dashboard-card-two-bg); -} - -.dashboardCardTwo .solidModuleHomeCardSvgWrapper { - background-color: var(--solid-admin-card-color-2); -} - -.dashboardCardThree { - border: 1px solid var(--solid-dashboard-card-three-border); - background: var(--solid-dashboard-card-three-bg); -} - -.dashboardCardThree .solidModuleHomeCardSvgWrapper { - background-color: var(--solid-admin-card-color-3); -} - -.solidModuleHomeCardSvgWrapper, -.solidModuleHomeActionCardSvgWrapper { - display: flex; - width: 3rem; - height: 3rem; - padding: 0.5rem; - justify-content: center; - align-items: center; - flex-shrink: 0; - aspect-ratio: 1/1; - border-radius: 50%; -} - -.solidModuleHomeActionCard { - border-radius: 0.5rem; - padding: 24px; - height: 100%; - border: 1px solid var(--primary-light-color); - transition: 0.2s linear; - cursor: pointer; - background-color: var(--surface-0); -} - -.solidModuleHomeActionCard:hover { - background-color: var(--solid-surface-elevated); -} - -.solidModuleHomeActionCardSvgWrapper { - background-color: var(--gray-100); - transition: 0.2s linear; -} - -.solidModuleHomeActionCardSvgWrapper svg path { - fill: var(--primary-color); - background-color: var(--primary-color); - transition: 0.2s linear; -} - -.solidModuleHomeActionCard:hover .solidModuleHomeActionCardSvgWrapper { - background-color: var(--primary-color); -} - -.solidModuleHomeActionCard:hover .solidModuleHomeActionCardSvgWrapper svg path { - fill: var(--surface-a); -} - -@media(max-width:991px) { - .solidModuleWelcomeSection { - padding: 16px; - height: 100%; - padding-bottom: 0 !important; - padding-right: 0px !important; - } - - .solidModuleHomeColorCards { - padding: 16px; - } - - .solidModuleHomeActionCard { - padding: 16px; - } - - .solidModuleHomeTitle1 { - font-size: 1.4rem; - } - - .homeSvg { - position: relative; - right: 0; - top: 0; - bottom: 0; - } - - -} \ No newline at end of file diff --git a/src/components/core/chatter/SolidChatterCustomMessage.tsx b/src/components/core/chatter/SolidChatterCustomMessage.tsx index 1e6ec43c..f6ab4302 100644 --- a/src/components/core/chatter/SolidChatterCustomMessage.tsx +++ b/src/components/core/chatter/SolidChatterCustomMessage.tsx @@ -1,9 +1,7 @@ import React from 'react' import MarkdownViewer from '../../../components/common/MarkdownViewer' -import styles from './chatter.module.css' - -interface SolidChatterCustomMessageProps { +import './solid-chatter.css';interface SolidChatterCustomMessageProps { message: string; } @@ -39,5 +37,5 @@ export const SolidChatterCustomMessage: React.FC ); } - return

{message}

; + return

{message}

; }; diff --git a/src/components/core/chatter/SolidChatterDateDivider.tsx b/src/components/core/chatter/SolidChatterDateDivider.tsx index 06eadbfb..d02dc2f5 100644 --- a/src/components/core/chatter/SolidChatterDateDivider.tsx +++ b/src/components/core/chatter/SolidChatterDateDivider.tsx @@ -1,5 +1,5 @@ -import styles from './chatter.module.css'; +import './solid-chatter.css'; interface Props { date: string; @@ -11,8 +11,8 @@ export const SolidChatterDateDivider = ({ date }: Props) => { : new Date(date).toLocaleDateString(undefined, { year: 'numeric', month: 'long', day: 'numeric' }); return ( -
-
+
+
{displayDate}
diff --git a/src/components/core/chatter/SolidChatterHeader.tsx b/src/components/core/chatter/SolidChatterHeader.tsx index ae6ac718..fff62776 100644 --- a/src/components/core/chatter/SolidChatterHeader.tsx +++ b/src/components/core/chatter/SolidChatterHeader.tsx @@ -1,6 +1,5 @@ import { useState } from 'react' -import styles from './chatter.module.css' -import { SolidMessageComposer } from './SolidMessageComposer' +import './solid-chatter.css';import { SolidMessageComposer } from './SolidMessageComposer' import { useLazyGetusersQuery } from '../../../redux/api/userApi' import { ERROR_MESSAGES } from '../../../constants/error-messages' import { @@ -129,7 +128,7 @@ export const SolidChatterHeader = (props: Props) => { }; return ( -
+

{title || ''} diff --git a/src/components/core/chatter/SolidChatterMentionMenu.tsx b/src/components/core/chatter/SolidChatterMentionMenu.tsx index 85eef0ce..fe8b751c 100644 --- a/src/components/core/chatter/SolidChatterMentionMenu.tsx +++ b/src/components/core/chatter/SolidChatterMentionMenu.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef } from 'react'; -import styles from './chatter.module.css'; +import './solid-chatter.css'; interface Props { isLoading: boolean; @@ -18,26 +18,26 @@ export const SolidChatterMentionMenu = ({ isLoading, users, activeIndex, onSelec }, [activeIndex]); return ( -

+
{isLoading && ( -
Searching users...
+
Searching users...
)} {!isLoading && users.length === 0 && ( -
No users found
+
No users found
)} {!isLoading && users.map((user, index) => ( ))}
diff --git a/src/components/core/chatter/SolidChatterMessageBox.tsx b/src/components/core/chatter/SolidChatterMessageBox.tsx index a2efb6f0..eef005b5 100644 --- a/src/components/core/chatter/SolidChatterMessageBox.tsx +++ b/src/components/core/chatter/SolidChatterMessageBox.tsx @@ -2,8 +2,7 @@ import { getTextColor, stringToColor } from '../../../helpers/getRandomColors' import Image from "../../common/Image" import { useEffect, useMemo, useRef, useState } from 'react' -import styles from './chatter.module.css' -import { SolidChatterCustomMessage } from './SolidChatterCustomMessage' +import './solid-chatter.css';import { SolidChatterCustomMessage } from './SolidChatterCustomMessage' import { SolidChatterAuditMessage } from './SolidChatterAuditMessage' import { Check, GitBranch, MessageSquare, Paperclip, Pencil, Trash2, X } from 'lucide-react' import { SolidButton, SolidLightbox, SolidTag, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger, SolidIcon, SolidTextarea, type SolidIconName } from '../../shad-cn-ui' @@ -293,20 +292,20 @@ export const SolidChatterMessageBox = (props: Props) => { }; return ( -
-
-
-
+
+
+
+
{initials || user.charAt(0).toUpperCase()}
-
-
+
+
-

{user}

+

{user}

@@ -333,17 +332,17 @@ export const SolidChatterMessageBox = (props: Props) => { title="Edit note" /> )} - {time} + {time}
{modelDisplayName && ( -

+

{modelDisplayName} {modelUserKey && <> ยท {modelUserKey}}

)} {localMessage && !isEditing && ( -
+
{messageType === 'audit' ? : } @@ -361,7 +360,7 @@ export const SolidChatterMessageBox = (props: Props) => { rows={4} className="w-full py-2" /> -

+

Type @ to mention a user. Press Ctrl+Enter to save.

{mentionRange && ( @@ -440,11 +439,11 @@ export const SolidChatterMessageBox = (props: Props) => {
)} {visibleAttachments.length > 0 && ( -
+
{visibleAttachments.map((attachment) => { const isImage = attachment.mimeType.startsWith('image/'); return ( -
+
{isEditing && canEditNote && ( +
{/* {type === 'email' &&
To: -
+
{tempEmails.map((mail, index) => ( {mail} ))}
-
-
+
+
{tempEmails.map((mail, index) => ( {mail} @@ -134,7 +133,7 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
} */} -
+

{type === 'email' ? 'Email Message' : 'Internal Note'} @@ -151,7 +150,7 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC className="w-full p-2" rows={4} /> -

+

Type @ to mention a user. Press Ctrl+Enter to save.

{mentionRange && ( @@ -206,15 +205,15 @@ export const SolidMessageComposer = ({ type, modelSingularName, refetch, id, onC
{selectedFiles.length > 0 && ( -
+
{selectedFiles.map((file, index) => ( -
-
+
+
-
-

{file.name}

- {formatFileSize(file.size)} +
+

{file.name}

+ {formatFileSize(file.size)}
setShowProfileSettingsDialog(false)}> +
setShowProfileSettingsDialog(false)}>
event.stopPropagation()} > -
+
-

+

Account Settings

-

Manage your profile and security settings.

+

Manage your profile and security settings.

-
+
{settings.map((option) => (
-
{renderSettingComponent}
+
{renderSettingComponent}
); diff --git a/src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx b/src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx index b1124013..7afb85f0 100644 --- a/src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +++ b/src/components/core/common/SolidAccountSettings/SolidChangePassword.tsx @@ -8,7 +8,7 @@ import { useSession } from "../../../../hooks/useSession"; import { useChangePasswordMutation } from "../../../../redux/api/authApi"; import { SolidPasswordHelperText } from "../SolidPasswordHelperText"; import { SolidButton } from "../../../shad-cn-ui/SolidButton"; -import styles from "./SolidAccountSettings.module.css"; +import "./solid-account-settings.css"; type ToastState = { id: number; @@ -23,20 +23,20 @@ const ToastMessage = ({ toast, onClose }: { toast: ToastState; onClose: () => vo if (!toast) return null; const severityClass = toast.severity === "error" - ? styles.toastError + ? "solid-account-settings-toast-error" : toast.severity === "success" - ? styles.toastSuccess + ? "solid-account-settings-toast-success" : toast.severity === "warn" - ? styles.toastWarn - : styles.toastInfo; + ? "solid-account-settings-toast-warn" + : "solid-account-settings-toast-info"; return ( -
+
-
{toast.summary}
-
{toast.detail}
+
{toast.summary}
+
{toast.detail}
-
@@ -60,12 +60,12 @@ const PasswordInput = ({ }) => { const [visible, setVisible] = useState(false); return ( -
+
@@ -55,17 +55,17 @@ const ConfirmDialog = ({ }) => { if (!visible) return null; return ( -
+
event.stopPropagation()} > -
{title}
-
{text}
-
+
{title}
+
{text}
+
Confirm @@ -232,18 +232,18 @@ export const SolidPersonalInfo = () => { return ( <> - + setToast(null)} /> -
-
Profile Picture
+
+
Profile Picture
-
-
+
+
{liveAvatarUrl ? ( - Profile + Profile ) : ( - + {initials} )} @@ -251,7 +251,7 @@ export const SolidPersonalInfo = () => { {liveAvatarUrl ? (
-
+
-
Details
-
-
+
Details
+
+
-
+
- +
-
+
- +
-
+
-
+
{roleLabels.map((name: string) => ( - + {name} ))} @@ -321,7 +321,7 @@ export const SolidPersonalInfo = () => {
-
+
Save diff --git a/src/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx b/src/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx index aabea700..b3b65bad 100644 --- a/src/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +++ b/src/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx @@ -5,7 +5,7 @@ import { useSession } from "../../../../hooks/useSession"; import { useLazyGetSolidVersionInfoQuery } from "../../../../redux/api/solidSettingsApi"; import { getSolidEntityApiPoolSnapshot, SOLID_ENTITY_API_POOL_LIMIT } from "../../../../redux/store/solidEntityApiPool"; import { SolidButton } from "../../../shad-cn-ui/SolidButton"; -import styles from "./SolidAccountSettings.module.css"; +import "./solid-account-settings.css"; interface PackageVersionInfo { repo: "local" | "npm"; @@ -66,14 +66,14 @@ export const SolidVersionInfo = () => { if (isLoading) { return ( -
+
); } if (isError || !data) { - return

Unable to load version information.

; + return

Unable to load version information.

; } const packages = ((data as any)?.data?.data ?? (data as any)?.data ?? data) as Record; @@ -86,24 +86,24 @@ export const SolidVersionInfo = () => { const activeCount = poolSnapshot.filter((entry) => entry.active).length; if (!packages || Object.keys(packages).length === 0) { - return

Version information is currently unavailable.

; + return

Version information is currently unavailable.

; } return ( -
-

Version Information

-

Packages powering this application

+
+

Version Information

+

Packages powering this application

-
+
{Object.entries(packages).map(([key, info]) => ( -
+
-
{PACKAGE_LABELS[key] || key}
-
{PACKAGE_HINTS[key] || key}
+
{PACKAGE_LABELS[key] || key}
+
{PACKAGE_HINTS[key] || key}
-
- {info.version} - +
+ {info.version} + {info.repo}
@@ -112,7 +112,7 @@ export const SolidVersionInfo = () => {
{canOpenDiagnostics && ( -
+
{ )} {canOpenDiagnostics && showDiagnostics && ( -
setShowDiagnostics(false)}> +
setShowDiagnostics(false)}>
event.stopPropagation()} > -
+
-

Diagnostics

-

Current tab runtime entity API pool snapshot.

+

Diagnostics

+

Current tab runtime entity API pool snapshot.

-
- {lastDiagnosticsRefreshLabel} +
+ {lastDiagnosticsRefreshLabel} {
-
+
Environment: {envName || "unknown"} Pool Limit: {SOLID_ENTITY_API_POOL_LIMIT} Active: {activeCount} Cached: {poolSnapshot.length}
-
+
{activeTab === "pool" ? ( -
- +
+
@@ -199,13 +199,13 @@ export const SolidVersionInfo = () => { {poolSnapshot.length === 0 ? ( - + ) : ( poolSnapshot.map((entry) => ( - + @@ -216,12 +216,12 @@ export const SolidVersionInfo = () => {
Entity
No entity APIs created in this session yet.No entity APIs created in this session yet.
{entry.entityName}{entry.reducerPath}{entry.reducerPath} #{entry.registeredAt} #{entry.lastAccessedAt} {entry.active ? "yes" : "no"}
) : ( -
+
Environment: {envName || "unknown"}
Backend API: {backendApi}
Login Redirect: {loginRedirect}
User: {session?.user?.email || session?.user?.name || "(unknown)"}
-
Roles: {roles}
+
Roles: {roles}
)}
diff --git a/src/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css b/src/components/core/common/SolidAccountSettings/solid-account-settings.css similarity index 69% rename from src/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css rename to src/components/core/common/SolidAccountSettings/solid-account-settings.css index 01b77f5e..cc93bfdb 100644 --- a/src/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +++ b/src/components/core/common/SolidAccountSettings/solid-account-settings.css @@ -1,4 +1,4 @@ -.backdrop { +.solid-account-settings-backdrop { position: fixed; inset: 0; z-index: 1100; @@ -9,7 +9,7 @@ padding: 16px; } -.modal { +.solid-account-settings-modal { width: min(540px, calc(100vw - 20px)); max-height: calc(100vh - 32px); min-width: 0; @@ -24,7 +24,7 @@ overscroll-behavior: contain; } -.header { +.solid-account-settings-header { min-height: 62px; border-bottom: 1px solid var(--border); padding: 12px 14px; @@ -34,11 +34,11 @@ gap: 12px; } -.header > div { +.solid-account-settings-header > div { min-width: 0; } -.title { +.solid-account-settings-title { margin: 0; color: var(--card-foreground); font-size: 20px; @@ -47,13 +47,13 @@ letter-spacing: -0.01em; } -.subtitle { +.solid-account-settings-subtitle { margin: 4px 0 0; font-size: 12px; color: var(--muted-foreground); } -.closeButton { +.solid-account-settings-close-button { width: 30px; height: 30px; border-radius: 8px; @@ -65,12 +65,12 @@ cursor: pointer; } -.closeButton:hover { +.solid-account-settings-close-button:hover { background: var(--accent); color: var(--accent-foreground); } -.tabsLine { +.solid-account-settings-tabs-line { display: flex; align-items: center; gap: 16px; @@ -78,7 +78,7 @@ padding: 0 14px; } -.tabTrigger { +.solid-account-settings-tab-trigger { border: 0; background: transparent; color: var(--muted-foreground); @@ -89,17 +89,17 @@ cursor: pointer; } -.tabTrigger:hover { +.solid-account-settings-tab-trigger:hover { color: var(--foreground); } -.tabActive { +.solid-account-settings-tab-active { color: var(--foreground); font-weight: 600; border-bottom-color: var(--foreground); } -.formWrapper { +.solid-account-settings-form-wrapper { flex: 1; min-height: 0; min-width: 0; @@ -108,7 +108,7 @@ background: var(--card); } -.toast { +.solid-account-settings-toast { display: flex; justify-content: space-between; align-items: flex-start; @@ -120,19 +120,19 @@ background: var(--card); } -.toastTitle { +.solid-account-settings-toast-title { font-size: 12px; font-weight: 600; line-height: 1.25; } -.toastBody { +.solid-account-settings-toast-body { font-size: 12px; color: var(--muted-foreground); line-height: 1.25; } -.toastClose { +.solid-account-settings-toast-close { width: 22px; height: 22px; border: 0; @@ -142,28 +142,28 @@ cursor: pointer; } -.toastClose:hover { +.solid-account-settings-toast-close:hover { background: var(--accent); color: var(--accent-foreground); } -.toastError { +.solid-account-settings-toast-error { border-color: color-mix(in srgb, #ef4444 46%, var(--border)); } -.toastSuccess { +.solid-account-settings-toast-success { border-color: color-mix(in srgb, #22c55e 46%, var(--border)); } -.toastWarn { +.solid-account-settings-toast-warn { border-color: color-mix(in srgb, #f59e0b 46%, var(--border)); } -.toastInfo { +.solid-account-settings-toast-info { border-color: color-mix(in srgb, var(--primary) 42%, var(--border)); } -.confirmBackdrop { +.solid-account-settings-confirm-backdrop { position: fixed; inset: 0; z-index: 1200; @@ -173,7 +173,7 @@ padding: 16px; } -.confirmModal { +.solid-account-settings-confirm-modal { width: min(360px, calc(100vw - 24px)); border-radius: 12px; border: 1px solid var(--border); @@ -182,32 +182,32 @@ box-shadow: 0 18px 44px rgba(2, 6, 23, 0.35); } -.confirmHeader { +.solid-account-settings-confirm-header { border-bottom: 1px solid var(--border); padding: 12px 14px; font-size: 14px; font-weight: 600; } -.confirmBody { +.solid-account-settings-confirm-body { padding: 14px; font-size: 13px; color: var(--muted-foreground); } -.confirmActions { +.solid-account-settings-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 0 14px 14px; } -.tabsLine::-webkit-scrollbar { +.solid-account-settings-tabs-line::-webkit-scrollbar { display: none; } @media (max-width: 900px) { - .tabsLine { + .solid-account-settings-tabs-line { gap: 12px; overflow-x: auto; white-space: nowrap; @@ -216,7 +216,7 @@ } } -.accountForm { +.solid-account-settings-account-form { min-height: 100%; display: flex; flex-direction: column; @@ -227,25 +227,25 @@ background: transparent; } -.accountScroll { +.solid-account-settings-account-scroll { min-height: 0; padding: 12px 12px 0; } -.sectionTitle { +.solid-account-settings-section-title { margin: 0 0 8px; font-size: 14px; font-weight: 650; color: var(--foreground); } -.avatarRow { +.solid-account-settings-avatar-row { display: flex; align-items: center; gap: 12px; } -.avatarShell { +.solid-account-settings-avatar-shell { position: relative; width: 72px; height: 72px; @@ -255,14 +255,14 @@ background: var(--muted); } -.avatarImage { +.solid-account-settings-avatar-image { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; } -.avatarFallback { +.solid-account-settings-avatar-fallback { width: 100%; height: 100%; display: grid; @@ -273,7 +273,7 @@ border-radius: inherit; } -.avatarRemove { +.solid-account-settings-avatar-remove { position: absolute; right: -2px; top: -2px; @@ -288,35 +288,35 @@ cursor: pointer; } -.avatarRemove:hover { +.solid-account-settings-avatar-remove:hover { background: #ef4444; color: #fff; } -.dashedDivider { +.solid-account-settings-dashed-divider { margin: 14px 0; border-bottom: 1px dashed var(--border); } -.grid { +.solid-account-settings-grid { display: grid; grid-template-columns: 1fr; gap: 12px; } -.field { +.solid-account-settings-field { display: flex; flex-direction: column; gap: 5px; } -.field label { +.solid-account-settings-field label { font-size: 12px; color: var(--muted-foreground); font-weight: 500; } -.input { +.solid-account-settings-input { width: 100%; height: 34px; border-radius: 8px; @@ -327,18 +327,18 @@ font-size: 13px; } -.input:disabled { +.solid-account-settings-input:disabled { opacity: 0.78; cursor: not-allowed; background: color-mix(in srgb, var(--muted) 35%, transparent); } -.input:focus-visible { +.solid-account-settings-input:focus-visible { outline: none; border-color: var(--primary); } -.roleBox { +.solid-account-settings-role-box { min-height: 34px; border-radius: 8px; border: 1px solid var(--border); @@ -349,7 +349,7 @@ gap: 6px; } -.roleChip { +.solid-account-settings-role-chip { border: 1px solid var(--border); border-radius: 999px; padding: 3px 8px; @@ -358,41 +358,37 @@ background: var(--card); } -.footerActions { +.solid-account-settings-footer-actions { border-top: 1px solid var(--border); padding: 10px 12px 12px; display: flex; justify-content: flex-start; } -.passwordHintWrap { +.solid-account-settings-password-hint-wrap { margin: 8px; } -.accountPrimaryBtn.solid-btn { - font-weight: 500; -} - -.accountSecondaryBtn.solid-btn { +.solid-account-settings-account-secondary-btn.solid-btn { --solid-btn-bg: var(--card); --solid-btn-fg: var(--foreground); --solid-btn-border: var(--border); font-weight: 500; } -.accountSecondaryBtn.solid-btn:hover { +.solid-account-settings-account-secondary-btn.solid-btn:hover { background: color-mix(in srgb, var(--accent) 75%, transparent); } -.passwordWrap { +.solid-account-settings-password-wrap { position: relative; } -.passwordWrap .input { +.solid-account-settings-password-wrap .solid-account-settings-input { padding-right: 56px; } -.passwordToggle { +.solid-account-settings-password-toggle { position: absolute; right: 7px; top: 50%; @@ -408,44 +404,44 @@ cursor: pointer; } -.passwordToggle:hover { +.solid-account-settings-password-toggle:hover { background: var(--accent); color: var(--accent-foreground); } -.errorText { +.solid-account-settings-error-text { margin: 0; color: #ef4444; font-size: 12px; line-height: 1.2; } -.formStack { +.solid-account-settings-form-stack { display: grid; grid-template-columns: 1fr; gap: 12px; } -.versionPanel { +.solid-account-settings-version-panel { display: flex; flex-direction: column; gap: 8px; } -.versionCaption { +.solid-account-settings-version-caption { margin: 0; font-size: 12px; color: var(--muted-foreground); } -.versionList { +.solid-account-settings-version-list { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; } -.versionRow { +.solid-account-settings-version-row { border: 1px solid var(--border); border-radius: 10px; background: color-mix(in srgb, var(--muted) 20%, transparent); @@ -456,22 +452,22 @@ gap: 8px; } -.versionName { +.solid-account-settings-version-name { font-size: 13px; font-weight: 600; } -.versionHint { +.solid-account-settings-version-hint { font-size: 11px; color: var(--muted-foreground); } -.versionTags { +.solid-account-settings-version-tags { display: flex; gap: 6px; } -.versionTag { +.solid-account-settings-version-tag { border: 1px solid var(--border); border-radius: 999px; padding: 3px 8px; @@ -479,35 +475,35 @@ background: var(--card); } -.repoLocal { +.solid-account-settings-repo-local { border-color: color-mix(in srgb, #f59e0b 48%, var(--border)); color: #b45309; } -.repoNpm { +.solid-account-settings-repo-npm { border-color: color-mix(in srgb, #22c55e 48%, var(--border)); color: #15803d; } -.versionLoaderWrap { +.solid-account-settings-version-loader-wrap { min-height: 200px; display: grid; place-items: center; } -.versionError { +.solid-account-settings-version-error { color: var(--muted-foreground); margin: 0; font-size: 13px; } -.versionActions { +.solid-account-settings-version-actions { margin-top: 12px; display: flex; justify-content: flex-start; } -.diagnosticsBackdrop { +.solid-account-settings-diagnostics-backdrop { position: fixed; inset: 0; z-index: 1300; @@ -517,7 +513,7 @@ padding: 16px; } -.diagnosticsModal { +.solid-account-settings-diagnostics-modal { width: min(1100px, calc(100vw - 24px)); max-height: calc(100vh - 28px); overflow: auto; @@ -529,14 +525,14 @@ padding: 16px; } -.diagnosticsHeader { +.solid-account-settings-diagnostics-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } -.diagnosticsHeaderActions { +.solid-account-settings-diagnostics-header-actions { display: flex; align-items: center; gap: 8px; @@ -544,7 +540,7 @@ justify-content: flex-end; } -.diagnosticsRefreshStatus { +.solid-account-settings-diagnostics-refresh-status { font-size: 12px; color: var(--muted-foreground); min-height: 18px; @@ -552,7 +548,7 @@ align-items: center; } -.diagnosticsSummary { +.solid-account-settings-diagnostics-summary { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--border); @@ -564,20 +560,20 @@ font-size: 13px; } -.diagnosticsTableWrap { +.solid-account-settings-diagnostics-table-wrap { margin-top: 12px; border: 1px solid var(--border); border-radius: 10px; overflow: auto; } -.diagnosticsTabs { +.solid-account-settings-diagnostics-tabs { margin-top: 12px; display: flex; gap: 8px; } -.diagnosticsTab { +.solid-account-settings-diagnostics-tab { border: 1px solid var(--border); border-radius: 999px; background: transparent; @@ -588,45 +584,45 @@ cursor: pointer; } -.diagnosticsTab:hover { +.solid-account-settings-diagnostics-tab:hover { color: var(--foreground); } -.diagnosticsTabActive { +.solid-account-settings-diagnostics-tab-active { background: color-mix(in srgb, var(--accent) 42%, transparent); color: var(--foreground); } -.diagnosticsTable { +.solid-account-settings-diagnostics-table { width: 100%; border-collapse: collapse; font-size: 13px; } -.diagnosticsTable thead tr { +.solid-account-settings-diagnostics-table thead tr { border-bottom: 1px solid var(--border); } -.diagnosticsTable tbody tr { +.solid-account-settings-diagnostics-table tbody tr { border-bottom: 1px solid color-mix(in srgb, var(--border) 85%, transparent); } -.diagnosticsTable th, -.diagnosticsTable td { +.solid-account-settings-diagnostics-table th, +.solid-account-settings-diagnostics-table td { text-align: left; padding: 8px 10px; vertical-align: top; } -.diagnosticsEmpty { +.solid-account-settings-diagnostics-empty { opacity: 0.75; } -.diagnosticsMono { +.solid-account-settings-diagnostics-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } -.diagnosticsRuntimeGrid { +.solid-account-settings-diagnostics-runtime-grid { margin-top: 12px; border: 1px solid var(--border); border-radius: 10px; @@ -638,11 +634,11 @@ font-size: 13px; } -.diagnosticsSpan2 { +.solid-account-settings-diagnostics-span2 { grid-column: span 2; } -.switchRow { +.solid-account-settings-switch-row { border: 1px solid var(--border); border-radius: 10px; padding: 12px; @@ -652,20 +648,20 @@ gap: 12px; } -.switch { +.solid-account-settings-switch { position: relative; display: inline-flex; width: 42px; height: 24px; } -.switch input { +.solid-account-settings-switch input { opacity: 0; width: 0; height: 0; } -.switchTrack { +.solid-account-settings-switch-track { position: absolute; inset: 0; border-radius: 999px; @@ -674,7 +670,7 @@ transition: 120ms ease; } -.switchTrack::after { +.solid-account-settings-switch-track::after { content: ""; position: absolute; top: 2px; @@ -687,111 +683,111 @@ box-shadow: 0 1px 3px rgba(2, 6, 23, 0.2); } -.switch input:checked + .switchTrack { +.solid-account-settings-switch input:checked + .solid-account-settings-switch-track { background: color-mix(in srgb, var(--primary) 70%, transparent); border-color: color-mix(in srgb, var(--primary) 60%, var(--border)); } -.switch input:checked + .switchTrack::after { +.solid-account-settings-switch input:checked + .solid-account-settings-switch-track::after { left: 20px; } @media (max-width: 760px) { - .modal { + .solid-account-settings-modal { width: min(98vw, 540px); } - .diagnosticsModal { + .solid-account-settings-diagnostics-modal { width: min(98vw, 1100px); padding: 12px; } - .diagnosticsHeader { + .solid-account-settings-diagnostics-header { flex-direction: column; align-items: stretch; } - .diagnosticsRuntimeGrid { + .solid-account-settings-diagnostics-runtime-grid { grid-template-columns: 1fr; } - .diagnosticsSpan2 { + .solid-account-settings-diagnostics-span2 { grid-column: span 1; } } @media (max-width: 640px) { - .backdrop { + .solid-account-settings-backdrop { padding: 8px; } - .modal { + .solid-account-settings-modal { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 14px; } - .header { + .solid-account-settings-header { padding: 14px 12px 10px; align-items: flex-start; } - .title { + .solid-account-settings-title { font-size: 18px; } - .subtitle { + .solid-account-settings-subtitle { font-size: 11.5px; line-height: 1.4; } - .tabsLine { + .solid-account-settings-tabs-line { gap: 10px; padding: 0 12px; overscroll-behavior-x: contain; } - .tabTrigger { + .solid-account-settings-tab-trigger { flex: 0 0 auto; font-size: 12px; padding: 11px 0 9px; } - .formWrapper { + .solid-account-settings-form-wrapper { padding: 8px; } - .accountScroll { + .solid-account-settings-account-scroll { padding: 8px 8px 0; } - .avatarRow, - .versionRow { + .solid-account-settings-avatar-row, + .solid-account-settings-version-row { flex-direction: column; align-items: flex-start; } - .versionTags { + .solid-account-settings-version-tags { flex-wrap: wrap; } - .footerActions { + .solid-account-settings-footer-actions { padding: 10px 8px 12px; } - .confirmActions { + .solid-account-settings-confirm-actions { padding: 0 8px 12px; flex-direction: column-reverse; } - .footerActions :global(.solid-btn), - .confirmActions :global(.solid-btn), - .versionActions :global(.solid-btn) { + .solid-account-settings-footer-actions .solid-btn, + .solid-account-settings-confirm-actions .solid-btn, + .solid-account-settings-version-actions .solid-btn { width: 100%; justify-content: center; } - .versionActions { + .solid-account-settings-version-actions { width: 100%; } } diff --git a/src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx b/src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx index 720f4ce0..0f33b0f4 100644 --- a/src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +++ b/src/components/core/common/SolidGenericImport/SolidImportDropzone.tsx @@ -4,8 +4,7 @@ import { useDropzone } from 'react-dropzone'; import { FileSpreadsheet, FileText, Trash2, Upload } from 'lucide-react'; import { useDispatch } from 'react-redux'; import { showToast } from '../../../../redux/features/toastSlice'; -import styles from './SolidImport.module.css' -import { DocumentSvg } from './DocumentSvg'; +import './solid-import.css';import { DocumentSvg } from './DocumentSvg'; import { useCreateImportTransactionMutation } from '../../../../redux/api/importTransactionApi'; import { ERROR_MESSAGES } from '../../../../constants/error-messages'; import { SolidButton } from '../../../shad-cn-ui'; @@ -70,7 +69,7 @@ export const SolidImportDropzone = ({ setImportStep, setTransactionId, modelMeta return (
-
+
diff --git a/src/components/core/common/SolidGenericImport/SolidImportInstructions.tsx b/src/components/core/common/SolidGenericImport/SolidImportInstructions.tsx index 310f716f..ee970fd3 100644 --- a/src/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +++ b/src/components/core/common/SolidGenericImport/SolidImportInstructions.tsx @@ -1,6 +1,5 @@ import { Download, FileSpreadsheet, MoveRight } from 'lucide-react'; -import styles from './SolidImport.module.css' -import { useLazyGetImportInstructionsQuery } from '../../../../redux/api/importTransactionApi'; +import './solid-import.css';import { useLazyGetImportInstructionsQuery } from '../../../../redux/api/importTransactionApi'; import { useEffect } from 'react'; import { getSession } from "../../../../adapters/auth/index"; import { ERROR_MESSAGES } from '../../../../constants/error-messages'; @@ -65,7 +64,7 @@ export const SolidImportInstructions = ({ setImportStep, listViewMetaData }: any return (
-
+
{isLoading ? (
diff --git a/src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx b/src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx index 7f9fc0e1..adbc9f4a 100644 --- a/src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +++ b/src/components/core/common/SolidGenericImport/SolidImportTransaction.tsx @@ -1,6 +1,5 @@ import { AlertTriangle, CircleX, MoveRight } from 'lucide-react' -import styles from './SolidImport.module.css' -import { useCreateImportSyncMutation, useLazyGetImportMappingInfoQuery, usePatchUpdateImportTransactionMutation } from '../../../../redux/api/importTransactionApi'; +import './solid-import.css';import { useCreateImportSyncMutation, useLazyGetImportMappingInfoQuery, usePatchUpdateImportTransactionMutation } from '../../../../redux/api/importTransactionApi'; import React, { useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; import { showToast } from '../../../../redux/features/toastSlice'; @@ -256,7 +255,7 @@ export const SolidImportTransaction = ({ setImportStatusResult, transactionId, s ); return (
-
+
{isLoading ? (
@@ -291,7 +290,7 @@ export const SolidImportTransaction = ({ setImportStatusResult, transactionId, s
) : null}
-
+
File Column
SolidX Field
diff --git a/src/components/core/common/SolidGenericImport/SolidImport.module.css b/src/components/core/common/SolidGenericImport/solid-import.css similarity index 70% rename from src/components/core/common/SolidGenericImport/SolidImport.module.css rename to src/components/core/common/SolidGenericImport/solid-import.css index 5bc46e2d..80ab47fb 100644 --- a/src/components/core/common/SolidGenericImport/SolidImport.module.css +++ b/src/components/core/common/SolidGenericImport/solid-import.css @@ -1,4 +1,4 @@ -.SolidImportContextWrapper { +.solid-import-solid-import-context-wrapper { min-height: 360px; max-height: min(58vh, 520px); border-radius: 14px; @@ -8,7 +8,7 @@ overflow-x: visible; } -.ImportTableHeader { +.solid-import-import-table-header { background: color-mix(in srgb, var(--accent) 48%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--border) 90%, transparent); position: sticky; @@ -16,51 +16,51 @@ z-index: 1; } -:global(.solid-import-dialog) { +.solid-import-dialog { width: min(840px, calc(100vw - 1.5rem)); } -:global(.solid-import-dialog-body) { +.solid-import-dialog-body { padding: 14px 16px 16px; } -:global(.solid-import-shell) { +.solid-import-shell { display: flex; flex-direction: column; gap: 12px; } -:global(.solid-import-dialog-heading) { +.solid-import-dialog-heading { display: flex; flex-direction: column; gap: 4px; } -:global(.solid-import-dialog-title) { +.solid-import-dialog-title { font-size: 18px; line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; } -:global(.solid-import-dialog-subtitle) { +.solid-import-dialog-subtitle { max-width: 560px; font-size: 12.5px; line-height: 1.55; color: color-mix(in srgb, var(--foreground) 74%, transparent); } -:global(.solid-import-stepper) { +.solid-import-stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; } -:global(.solid-import-stepper-item-wrap) { +.solid-import-stepper-item-wrap { min-width: 0; } -:global(.solid-import-stepper-item) { +.solid-import-stepper-item { width: 100%; min-height: 46px; border: 1px solid color-mix(in srgb, var(--border) 92%, transparent); @@ -75,35 +75,35 @@ transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease, opacity 120ms ease; } -:global(.solid-import-stepper-item:hover:not(:disabled)) { +.solid-import-stepper-item:hover:not(:disabled) { background-color: color-mix(in srgb, var(--card) 90%, white 10%); } -:global(.solid-import-stepper-item:focus-visible) { +.solid-import-stepper-item:focus-visible { outline: none; border-color: var(--primary); } -:global(.solid-import-stepper-item:disabled) { +.solid-import-stepper-item:disabled { cursor: not-allowed; } -:global(.solid-import-stepper-item.is-active) { +.solid-import-stepper-item.is-active { border-color: color-mix(in srgb, var(--primary) 50%, var(--border)); background: color-mix(in srgb, var(--primary) 12%, var(--card)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); } -:global(.solid-import-stepper-item.is-complete) { +.solid-import-stepper-item.is-complete { border-color: color-mix(in srgb, #16a34a 24%, var(--border)); background: color-mix(in srgb, #16a34a 10%, var(--card)); } -:global(.solid-import-stepper-item.is-locked) { +.solid-import-stepper-item.is-locked { opacity: 0.6; } -:global(.solid-import-stepper-badge) { +.solid-import-stepper-badge { width: 22px; height: 22px; flex: 0 0 22px; @@ -117,37 +117,37 @@ font-weight: 700; } -:global(.solid-import-stepper-item.is-active .solid-import-stepper-badge) { +.solid-import-stepper-item.is-active .solid-import-stepper-badge { background: var(--primary); border-color: transparent; color: var(--primary-foreground); } -:global(.solid-import-stepper-item.is-complete .solid-import-stepper-badge) { +.solid-import-stepper-item.is-complete .solid-import-stepper-badge { background: #16a34a; border-color: transparent; color: #fff; } -:global(.solid-import-stepper-label) { +.solid-import-stepper-label { min-width: 0; font-size: 13px; line-height: 1.2; font-weight: 600; } -:global(.solid-import-panel-grid) { +.solid-import-panel-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(240px, 0.85fr); gap: 14px; padding: 14px; } -:global(.solid-import-panel-grid.is-single-column) { +.solid-import-panel-grid.is-single-column { grid-template-columns: 1fr; } -:global(.solid-import-panel-grid.is-single-column .solid-import-panel) { +.solid-import-panel-grid.is-single-column .solid-import-panel { border: 0; border-radius: 0; background: transparent; @@ -155,11 +155,11 @@ padding: 0; } -:global(.solid-import-panel-grid.is-single-column .solid-import-panel-main) { +.solid-import-panel-grid.is-single-column .solid-import-panel-main { max-width: 100%; } -:global(.solid-import-panel) { +.solid-import-panel { border: 1px solid color-mix(in srgb, var(--border) 90%, transparent); border-radius: 14px; background: linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, white 4%), color-mix(in srgb, var(--card) 99%, black 1%)); @@ -167,15 +167,15 @@ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); } -:global(.solid-import-panel.is-full-width) { +.solid-import-panel.is-full-width { max-width: 100%; } -:global(.solid-import-panel-side) { +.solid-import-panel-side { background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 26%, var(--card)), color-mix(in srgb, var(--card) 96%, black 4%)); } -:global(.solid-import-section-title) { +.solid-import-section-title { margin: 0 0 12px; font-size: 14px; line-height: 1.25; @@ -184,13 +184,13 @@ color: var(--foreground); } -:global(.solid-import-section-copy) { +.solid-import-section-copy { font-size: 12.5px; line-height: 1.6; color: color-mix(in srgb, var(--foreground) 76%, transparent); } -:global(.solid-import-instruction-list) { +.solid-import-instruction-list { margin: 0; padding-left: 22px; display: flex; @@ -198,34 +198,34 @@ gap: 16px; } -:global(.solid-import-panel-grid.is-single-column .solid-import-instruction-list) { +.solid-import-panel-grid.is-single-column .solid-import-instruction-list { padding-left: 0; gap: 0; list-style: none; counter-reset: solid-import-instruction; } -:global(.solid-import-instruction-list li::marker) { +.solid-import-instruction-list li::marker { font-size: 12px; font-weight: 700; color: color-mix(in srgb, var(--foreground) 74%, transparent); } -:global(.solid-import-instruction-item) { +.solid-import-instruction-item { line-height: 1.45; } -:global(.solid-import-instruction-list > li) { +.solid-import-instruction-list > li { padding-bottom: 14px; border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent); } -:global(.solid-import-instruction-list > li:last-child) { +.solid-import-instruction-list > li:last-child { padding-bottom: 0; border-bottom: 0; } -:global(.solid-import-panel-grid.is-single-column .solid-import-instruction-list > li) { +.solid-import-panel-grid.is-single-column .solid-import-instruction-list > li { display: grid; grid-template-columns: minmax(150px, 190px) minmax(0, 1fr); gap: 16px; @@ -234,7 +234,7 @@ counter-increment: solid-import-instruction; } -:global(.solid-import-instruction-title) { +.solid-import-instruction-title { margin: 0 0 6px; font-size: 13px; line-height: 1.4; @@ -243,40 +243,40 @@ color: color-mix(in srgb, var(--foreground) 96%, transparent); } -:global(.solid-import-panel-grid.is-single-column .solid-import-instruction-title) { +.solid-import-panel-grid.is-single-column .solid-import-instruction-title { margin: 0; padding-top: 3px; } -:global(.solid-import-panel-grid.is-single-column .solid-import-instruction-title::before) { +.solid-import-panel-grid.is-single-column .solid-import-instruction-title::before { content: counter(solid-import-instruction) ". "; color: color-mix(in srgb, var(--foreground) 66%, transparent); font-variant-numeric: tabular-nums; } -:global(.solid-import-instruction-copy) { +.solid-import-instruction-copy { font-size: 12px; line-height: 1.65; color: color-mix(in srgb, var(--foreground) 72%, transparent); } -:global(.solid-import-template-actions) { +.solid-import-template-actions { display: flex; flex-wrap: wrap; gap: 10px; } -:global(.solid-import-panel-grid.is-single-column .solid-import-template-actions) { +.solid-import-panel-grid.is-single-column .solid-import-template-actions { justify-content: flex-start; } -:global(.solid-import-inline-token-list) { +.solid-import-inline-token-list { display: flex; flex-wrap: wrap; gap: 8px; } -:global(.solid-import-inline-token) { +.solid-import-inline-token { display: inline-flex; align-items: center; min-height: 26px; @@ -290,11 +290,11 @@ font-weight: 500; } -:global(.solid-import-panel-grid.is-single-column .solid-import-inline-token-list) { +.solid-import-panel-grid.is-single-column .solid-import-inline-token-list { gap: 9px; } -:global(.solid-import-custom-instruction) { +.solid-import-custom-instruction { margin: 0; padding: 10px 12px; border-radius: 10px; @@ -305,11 +305,11 @@ color: color-mix(in srgb, var(--foreground) 78%, transparent); } -:global(.solid-import-custom-instruction + .solid-import-custom-instruction) { +.solid-import-custom-instruction + .solid-import-custom-instruction { margin-top: 10px; } -:global(.solid-import-dropzone-shell) { +.solid-import-dropzone-shell { min-height: 300px; padding: 16px 18px; border: 1px dashed color-mix(in srgb, var(--primary) 24%, var(--border)); @@ -326,11 +326,11 @@ transition: border-color 120ms ease, box-shadow 120ms ease, background 120ms ease; } -:global(.solid-import-dropzone-shell:hover) { +.solid-import-dropzone-shell:hover { border-color: color-mix(in srgb, var(--primary) 52%, var(--border)); } -:global(.solid-import-dropzone-copy) { +.solid-import-dropzone-copy { width: min(420px, 100%); display: flex; flex-direction: column; @@ -338,7 +338,7 @@ gap: 8px; } -:global(.solid-import-dropzone-kicker) { +.solid-import-dropzone-kicker { padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--primary) 10%, transparent); @@ -348,12 +348,12 @@ letter-spacing: 0.02em; } -:global(.solid-import-dropzone-title) { +.solid-import-dropzone-title { font-size: 15px; margin-bottom: 2px; } -:global(.solid-import-dropzone-format-list) { +.solid-import-dropzone-format-list { display: flex; align-items: center; gap: 8px; @@ -361,7 +361,7 @@ justify-content: center; } -:global(.solid-import-dropzone-format-pill) { +.solid-import-dropzone-format-pill { display: inline-flex; align-items: center; gap: 6px; @@ -375,7 +375,7 @@ color: color-mix(in srgb, var(--foreground) 82%, transparent); } -:global(.solid-import-file-card) { +.solid-import-file-card { width: min(420px, 100%); margin-top: 4px; border: 1px solid color-mix(in srgb, var(--border) 90%, transparent); @@ -388,14 +388,14 @@ gap: 10px; } -:global(.solid-import-file-card-main) { +.solid-import-file-card-main { display: flex; align-items: center; gap: 12px; min-width: 0; } -:global(.solid-import-file-icon) { +.solid-import-file-icon { width: 38px; height: 38px; border-radius: 10px; @@ -407,11 +407,11 @@ flex: 0 0 38px; } -:global(.solid-import-file-meta) { +.solid-import-file-meta { min-width: 0; } -:global(.solid-import-file-name) { +.solid-import-file-name { font-size: 12px; font-weight: 600; color: var(--foreground); @@ -420,17 +420,17 @@ text-overflow: ellipsis; } -:global(.solid-import-file-caption) { +.solid-import-file-caption { font-size: 11px; line-height: 1.4; color: color-mix(in srgb, var(--foreground) 68%, transparent); } -:global(.solid-import-file-remove) { +.solid-import-file-remove { flex: 0 0 auto; } -:global(.solid-import-actions) { +.solid-import-actions { display: flex; align-items: center; justify-content: space-between; @@ -438,15 +438,15 @@ padding-top: 10px; } -:global(.solid-import-actions-copy) { +.solid-import-actions-copy { margin: 0; font-size: 11.5px; line-height: 1.5; color: color-mix(in srgb, var(--foreground) 62%, transparent); } -:global(.solid-import-loading-state), -:global(.solid-import-empty-state) { +.solid-import-loading-state, +.solid-import-empty-state { min-height: 100%; padding: 20px; display: flex; @@ -457,29 +457,29 @@ gap: 8px; } -:global(.solid-import-empty-state h4) { +.solid-import-empty-state h4 { margin: 0; font-size: 16px; line-height: 1.3; color: var(--foreground); } -:global(.solid-import-empty-state p) { +.solid-import-empty-state p { margin: 0; font-size: 12.5px; line-height: 1.6; color: color-mix(in srgb, var(--foreground) 70%, transparent); } -:global(.solid-import-empty-state.solid-import-empty-state-danger h4) { +.solid-import-empty-state.solid-import-empty-state-danger h4 { color: #b91c1c; } -:global(.solid-import-mapping-shell) { +.solid-import-mapping-shell { padding: 12px; } -:global(.solid-import-mapping-intro) { +.solid-import-mapping-intro { display: flex; align-items: flex-start; justify-content: space-between; @@ -487,7 +487,7 @@ margin-bottom: 10px; } -:global(.solid-import-mapping-count) { +.solid-import-mapping-count { min-height: 26px; padding: 0 10px; border-radius: 999px; @@ -501,7 +501,7 @@ color: color-mix(in srgb, var(--foreground) 78%, transparent); } -:global(.solid-import-mapping-alert) { +.solid-import-mapping-alert { margin-bottom: 12px; padding: 12px 14px; border: 1px solid color-mix(in srgb, #f59e0b 34%, var(--border)); @@ -516,7 +516,7 @@ align-items: flex-start; } -:global(.solid-import-mapping-alert-icon) { +.solid-import-mapping-alert-icon { width: 30px; height: 30px; border-radius: 9px; @@ -528,11 +528,11 @@ flex-shrink: 0; } -:global(.solid-import-mapping-alert-copy) { +.solid-import-mapping-alert-copy { min-width: 0; } -:global(.solid-import-mapping-alert-title) { +.solid-import-mapping-alert-title { margin: 0; font-size: 12.5px; line-height: 1.35; @@ -540,14 +540,14 @@ color: color-mix(in srgb, var(--foreground) 96%, transparent); } -:global(.solid-import-mapping-alert-text) { +.solid-import-mapping-alert-text { margin: 3px 0 0; font-size: 12px; line-height: 1.6; color: color-mix(in srgb, var(--foreground) 74%, transparent); } -:global(.solid-import-mapping-table) { +.solid-import-mapping-table { border: 1px solid color-mix(in srgb, var(--border) 90%, transparent); border-radius: 12px; overflow: visible; @@ -555,14 +555,14 @@ position: relative; } -:global(.solid-import-mapping-head) { +.solid-import-mapping-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 0.9fr); border-top-left-radius: 12px; border-top-right-radius: 12px; } -:global(.solid-import-mapping-head-cell) { +.solid-import-mapping-head-cell { padding: 11px 14px; font-size: 11px; font-weight: 700; @@ -571,7 +571,7 @@ color: color-mix(in srgb, var(--foreground) 62%, transparent); } -:global(.solid-import-mapping-row) { +.solid-import-mapping-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 0.9fr); border-top: 1px solid color-mix(in srgb, var(--border) 90%, transparent); @@ -579,23 +579,23 @@ z-index: 0; } -:global(.solid-import-mapping-row:focus-within) { +.solid-import-mapping-row:focus-within { z-index: 4; } -:global(.solid-import-mapping-source), -:global(.solid-import-mapping-target) { +.solid-import-mapping-source, +.solid-import-mapping-target { padding: 12px 14px; min-width: 0; } -:global(.solid-import-mapping-source-title) { +.solid-import-mapping-source-title { font-size: 12px; font-weight: 600; color: var(--foreground); } -:global(.solid-import-mapping-source-value) { +.solid-import-mapping-source-value { margin-top: 4px; font-size: 11px; line-height: 1.45; @@ -603,32 +603,32 @@ word-break: break-word; } -:global(.solid-import-mapping-target-controls) { +.solid-import-mapping-target-controls { display: flex; align-items: center; gap: 8px; min-width: 0; } -:global(.solid-import-mapping-target-controls > .solid-select-wrap) { +.solid-import-mapping-target-controls > .solid-select-wrap { flex: 1 1 auto; min-width: 0; } -:global(.solid-import-mapping-select .solid-select-trigger) { +.solid-import-mapping-select .solid-select-trigger { width: 100%; } -:global(.solid-import-mapping-select .solid-select-menu) { +.solid-import-mapping-select .solid-select-menu { z-index: calc(var(--z-overlay) + 4); } -:global(.solid-import-mapping-row:nth-child(-n + 1) .solid-import-mapping-select .solid-select-menu.solid-select-menu-top) { +.solid-import-mapping-row:nth-child(-n + 1) .solid-import-mapping-select .solid-select-menu.solid-select-menu-top { top: calc(100% + 4px); bottom: auto; } -:global(.solid-import-mapping-remove) { +.solid-import-mapping-remove { width: 32px; height: 32px; border: 1px solid color-mix(in srgb, var(--border) 90%, transparent); @@ -640,34 +640,34 @@ justify-content: center; } -:global(.solid-import-mapping-remove:hover) { +.solid-import-mapping-remove:hover { background: color-mix(in srgb, #ef4444 10%, transparent); color: #dc2626; } -:global(.solid-import-mapping-remove:focus-visible) { +.solid-import-mapping-remove:focus-visible { outline: none; border-color: #dc2626; } -:global(.solid-import-mapping-remove-placeholder) { +.solid-import-mapping-remove-placeholder { width: 32px; height: 32px; flex: 0 0 32px; } -:global(.solid-import-summary-card) { +.solid-import-summary-card { border: 1px solid color-mix(in srgb, var(--border) 90%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--card) 94%, white 6%); padding: 14px; } -:global(.solid-import-summary-card-header) { +.solid-import-summary-card-header { margin-bottom: 14px; } -:global(.solid-import-status-pill) { +.solid-import-status-pill { min-height: 32px; padding: 0 12px; border-radius: 999px; @@ -678,27 +678,27 @@ font-weight: 600; } -:global(.solid-import-status-pill.is-success) { +.solid-import-status-pill.is-success { background: color-mix(in srgb, #16a34a 12%, transparent); color: #15803d; } -:global(.solid-import-status-pill.is-danger) { +.solid-import-status-pill.is-danger { background: color-mix(in srgb, #ef4444 12%, transparent); color: #dc2626; } -:global(.solid-import-status-pill.is-warning) { +.solid-import-status-pill.is-warning { background: color-mix(in srgb, #f59e0b 14%, transparent); color: #b45309; } -:global(.solid-import-summary-metrics) { +.solid-import-summary-metrics { color: var(--foreground); font-weight: 600; } -:global(.solid-import-summary-metric) { +.solid-import-summary-metric { display: flex; align-items: center; justify-content: space-between; @@ -706,94 +706,94 @@ font-size: 12px; } -:global(.solid-import-summary-divider-wrap) { +.solid-import-summary-divider-wrap { padding: 10px 0; } -:global(.solid-import-summary-divider) { +.solid-import-summary-divider { height: 1px; background: color-mix(in srgb, var(--border) 90%, transparent); } -:global(.solid-import-confirm-dialog) { +.solid-import-confirm-dialog { width: min(430px, calc(100vw - 1.5rem)); } -:global(.solid-import-confirm-dialog-body) { +.solid-import-confirm-dialog-body { padding-top: 12px; } -:global(.solid-import-confirm-dialog-body p) { +.solid-import-confirm-dialog-body p { margin: 0; font-size: 12px; line-height: 1.55; color: color-mix(in srgb, var(--foreground) 74%, transparent); } -:global(.solid-import-confirm-dialog-footer) { +.solid-import-confirm-dialog-footer { display: flex; justify-content: flex-end; gap: 8px; } @media (max-width: 960px) { - :global(.solid-import-panel-grid) { + .solid-import-panel-grid { grid-template-columns: 1fr; } - :global(.solid-import-mapping-head), - :global(.solid-import-mapping-row) { + .solid-import-mapping-head, + .solid-import-mapping-row { grid-template-columns: 1fr; } - :global(.solid-import-mapping-target) { + .solid-import-mapping-target { padding-top: 0; } } @media (max-width: 720px) { - .SolidImportContextWrapper { + .solid-import-solid-import-context-wrapper { min-height: 320px; max-height: none; } - :global(.solid-import-stepper) { + .solid-import-stepper { grid-template-columns: 1fr 1fr; } - :global(.solid-import-stepper-label) { + .solid-import-stepper-label { font-size: 12px; } - :global(.solid-import-actions) { + .solid-import-actions { flex-direction: column; align-items: stretch; } - :global(.solid-import-actions-copy) { + .solid-import-actions-copy { text-align: center; } - :global(.solid-import-mapping-intro) { + .solid-import-mapping-intro { flex-direction: column; } - :global(.solid-import-mapping-alert) { + .solid-import-mapping-alert { grid-template-columns: 1fr; gap: 10px; } - :global(.solid-import-mapping-alert-icon) { + .solid-import-mapping-alert-icon { width: 28px; height: 28px; } - :global(.solid-import-panel-grid.is-single-column .solid-import-instruction-list > li) { + .solid-import-panel-grid.is-single-column .solid-import-instruction-list > li { grid-template-columns: 1fr; gap: 8px; } - :global(.solid-import-panel-grid.is-single-column .solid-import-instruction-title) { + .solid-import-panel-grid.is-single-column .solid-import-instruction-title { padding-top: 0; } } diff --git a/src/components/core/common/SolidLoaders/SolidCircularLoader.tsx b/src/components/core/common/SolidLoaders/SolidCircularLoader.tsx index 3aa351e7..74777a31 100644 --- a/src/components/core/common/SolidLoaders/SolidCircularLoader.tsx +++ b/src/components/core/common/SolidLoaders/SolidCircularLoader.tsx @@ -1,7 +1,5 @@ -import styles from './SolidLoaders.module.css' - -export const SolidCircularLoader = () => { +import './solid-circular-loader.css';export const SolidCircularLoader = () => { return ( -
+
) } \ No newline at end of file diff --git a/src/components/core/common/SolidLoaders/SolidLoaders.module.css b/src/components/core/common/SolidLoaders/solid-circular-loader.css similarity index 93% rename from src/components/core/common/SolidLoaders/SolidLoaders.module.css rename to src/components/core/common/SolidLoaders/solid-circular-loader.css index aa1a7453..aa12cae6 100644 --- a/src/components/core/common/SolidLoaders/SolidLoaders.module.css +++ b/src/components/core/common/SolidLoaders/solid-circular-loader.css @@ -1,4 +1,4 @@ -.SolidCircularLoader { +.solid-circular-loader { width: 48px; height: 48px; border: 5px solid var(--primary-color); @@ -17,4 +17,4 @@ 100% { transform: rotate(360deg); } -} \ No newline at end of file +} diff --git a/src/components/core/extension/solid-core/media/fileSize/MediaFileSizeWidget.tsx b/src/components/core/extension/solid-core/media/fileSize/MediaFileSizeWidget.tsx index d35967b5..fc302035 100644 --- a/src/components/core/extension/solid-core/media/fileSize/MediaFileSizeWidget.tsx +++ b/src/components/core/extension/solid-core/media/fileSize/MediaFileSizeWidget.tsx @@ -1,5 +1,5 @@ import { SolidFormFieldWidgetProps, SolidListFieldWidgetProps } from "../../../../../../types/solid-core"; -import styles from "../../../../form/fields/solidFields.module.css"; +import "../../../../form/fields/solid-fields.css"; export const formatMediaFileSize = (value: unknown) => { const size = Number(value); @@ -37,11 +37,11 @@ export const MediaFileSizeFormViewWidget = ({ formik, fieldContext }: SolidFormF const value = formik.values[fieldLayoutInfo.attrs.name]; return ( -
+
{showFieldLabel !== false && ( -

{fieldLabel}

+

{fieldLabel}

)} -

{formatMediaFileSize(value)}

+

{formatMediaFileSize(value)}

); }; diff --git a/src/components/core/form/SolidFormViewShimmerLoading.tsx b/src/components/core/form/SolidFormViewShimmerLoading.tsx index 133a2e22..d20fa8fa 100644 --- a/src/components/core/form/SolidFormViewShimmerLoading.tsx +++ b/src/components/core/form/SolidFormViewShimmerLoading.tsx @@ -1,7 +1,5 @@ -import styles from './solidFormViewShimmerLoading.module.css' - -const SkeletonBlock = ({ width, height, className }: { width?: string; height?: string; className?: string }) => ( +import './solid-form-view-shimmer-loading.css';const SkeletonBlock = ({ width, height, className }: { width?: string; height?: string; className?: string }) => (
); @@ -24,7 +22,7 @@ export const SolidFormViewShimmerLoading = () => {
-
+
diff --git a/src/components/core/form/fields/SolidBooleanField.tsx b/src/components/core/form/fields/SolidBooleanField.tsx index b44829f6..cf12143b 100644 --- a/src/components/core/form/fields/SolidBooleanField.tsx +++ b/src/components/core/form/fields/SolidBooleanField.tsx @@ -3,7 +3,7 @@ import { useEffect, useState } from "react"; import * as Yup from "yup"; import { getExtensionComponent } from "../../../../helpers/registry"; import { SolidFormFieldWidgetProps } from "../../../../types/solid-core"; -import styles from "./solidFields.module.css"; +import "./solid-fields.css"; import { FormikObject, ISolidField, SolidFieldProps } from "./ISolidField"; import { SolidFieldTooltip } from "../../../../components/common/SolidFieldTooltip"; import { @@ -202,9 +202,9 @@ export const DefaultBooleanFormEditWidget = ({ formik, fieldContext }: SolidForm const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly; return ( -
+
{showFieldLabel != false && -
); @@ -268,9 +268,9 @@ export const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext } const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly; return ( -
+
{showFieldLabel !== false && ( -
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && ( -

{formik.errors[fieldLayoutInfo.attrs.name]?.toString()}

+

{formik.errors[fieldLayoutInfo.attrs.name]?.toString()}

)}
); @@ -365,9 +365,9 @@ export const SolidBooleanSwitchStyleFormEditWidget = ({ formik, fieldContext }: const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly; return ( -
+
{showFieldLabel !== false && ( -
{isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && ( -

{formik.errors[fieldLayoutInfo.attrs.name]?.toString()}

+

{formik.errors[fieldLayoutInfo.attrs.name]?.toString()}

)}
); @@ -423,11 +423,11 @@ export const DefaultBooleanFormViewWidget = ({ formik, fieldContext }: SolidForm return ( -
+
{showFieldLabel !== false && ( -

{fieldLabel}

+

{fieldLabel}

)} -

+

{(() => { const value = formik.values[fieldLayoutInfo.attrs.name]; if (value === true) return trueLabel; diff --git a/src/components/core/form/fields/SolidComputedField.tsx b/src/components/core/form/fields/SolidComputedField.tsx index 193c8cbf..47646b34 100644 --- a/src/components/core/form/fields/SolidComputedField.tsx +++ b/src/components/core/form/fields/SolidComputedField.tsx @@ -1,6 +1,6 @@ import * as Yup from 'yup'; -import styles from './solidFields.module.css'; +import './solid-fields.css'; import { FormikObject, ISolidField, SolidFieldProps } from "./ISolidField"; import { getExtensionComponent } from "../../../../helpers/registry"; import { SolidFormFieldWidgetProps } from "../../../../types/solid-core"; @@ -102,20 +102,20 @@ export const DefaultComputedFormWidget = ({ formik, fieldContext }: SolidFormFie if (viewMode === 'view') { // View mode: display as plain text (same as DefaultShortTextFormViewWidget) return ( -

+
{showFieldLabel !== false && ( -

{fieldLabel}

+

{fieldLabel}

)} -

{value && typeof value === 'string' ? value : ''}

+

{value && typeof value === 'string' ? value : ''}

); } // Edit mode: read-only input to make it clear this is a server-computed value return ( -
+
{showFieldLabel != false && -
); diff --git a/src/components/core/form/fields/SolidDateField.tsx b/src/components/core/form/fields/SolidDateField.tsx index dd0a363a..f118e7cb 100644 --- a/src/components/core/form/fields/SolidDateField.tsx +++ b/src/components/core/form/fields/SolidDateField.tsx @@ -10,7 +10,7 @@ import { SolidFormFieldWidgetProps } from "../../../../types/solid-core"; import { SolidFieldTooltip } from "../../../../components/common/SolidFieldTooltip"; import { ERROR_MESSAGES } from "../../../../constants/error-messages"; import { DateFieldViewComponent } from '../../../../components/core/common/DateFieldViewComponent'; -import styles from "./solidFields.module.css"; +import "./solid-fields.css"; const toDateValue = (value: any) => { if (!value) return null; @@ -140,9 +140,9 @@ export const DefaultDateFormEditWidget = ({ formik, fieldContext }: SolidFormFie return (
-
+
{showFieldLabel != false && -