@qwickapps/react-framework 1.5.13 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Scaffold.d.ts +2 -2
- package/dist/components/Scaffold.d.ts.map +1 -1
- package/dist/components/forms/Captcha.d.ts +33 -28
- package/dist/components/forms/Captcha.d.ts.map +1 -1
- package/dist/components/forms/FormCheckbox.d.ts +15 -12
- package/dist/components/forms/FormCheckbox.d.ts.map +1 -1
- package/dist/components/forms/FormField.d.ts +20 -23
- package/dist/components/forms/FormField.d.ts.map +1 -1
- package/dist/components/forms/FormSelect.d.ts +16 -15
- package/dist/components/forms/FormSelect.d.ts.map +1 -1
- package/dist/contexts/QwickAppContext.d.ts +1 -1
- package/dist/contexts/QwickAppContext.d.ts.map +1 -1
- package/dist/hooks/useBaseProps.d.ts +27 -1172
- package/dist/hooks/useBaseProps.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +393 -160
- package/dist/index.js +393 -159
- package/dist/palettes/PaletteBoutique.d.ts +10 -0
- package/dist/palettes/PaletteBoutique.d.ts.map +1 -0
- package/dist/palettes/index.d.ts +1 -0
- package/dist/palettes/index.d.ts.map +1 -1
- package/dist/palettes/manifest.json +33 -19
- package/dist/palettes/{palette-autumn.1.5.13.css → palette-autumn.1.7.0.css} +3 -1
- package/dist/palettes/palette-autumn.1.7.0.min.css +1 -0
- package/dist/palettes/palette-autumn.latest.css +3 -1
- package/dist/palettes/palette-autumn.latest.min.css +1 -1
- package/dist/palettes/palette-boutique.1.7.0.css +176 -0
- package/dist/palettes/palette-boutique.1.7.0.min.css +1 -0
- package/dist/palettes/palette-boutique.latest.css +176 -0
- package/dist/palettes/palette-boutique.latest.min.css +1 -0
- package/dist/palettes/{palette-cosmic.1.5.13.css → palette-cosmic.1.7.0.css} +3 -1
- package/dist/palettes/palette-cosmic.1.7.0.min.css +1 -0
- package/dist/palettes/palette-cosmic.latest.css +3 -1
- package/dist/palettes/palette-cosmic.latest.min.css +1 -1
- package/dist/palettes/{palette-ocean.1.5.13.css → palette-ocean.1.7.0.css} +3 -1
- package/dist/palettes/palette-ocean.1.7.0.min.css +1 -0
- package/dist/palettes/palette-ocean.latest.css +3 -1
- package/dist/palettes/palette-ocean.latest.min.css +1 -1
- package/dist/palettes/{palette-spring.1.5.13.css → palette-spring.1.7.0.css} +3 -1
- package/dist/palettes/palette-spring.1.7.0.min.css +1 -0
- package/dist/palettes/palette-spring.latest.css +3 -1
- package/dist/palettes/palette-spring.latest.min.css +1 -1
- package/dist/palettes/{palette-winter.1.5.13.css → palette-winter.1.7.0.css} +3 -1
- package/dist/palettes/palette-winter.1.7.0.min.css +1 -0
- package/dist/palettes/palette-winter.latest.css +3 -1
- package/dist/palettes/palette-winter.latest.min.css +1 -1
- package/dist/schemas/CaptchaSchema.d.ts +16 -0
- package/dist/schemas/CaptchaSchema.d.ts.map +1 -0
- package/dist/schemas/FormCheckboxSchema.d.ts +16 -0
- package/dist/schemas/FormCheckboxSchema.d.ts.map +1 -0
- package/dist/schemas/FormFieldSchema.d.ts +23 -0
- package/dist/schemas/FormFieldSchema.d.ts.map +1 -0
- package/dist/schemas/FormSelectSchema.d.ts +20 -0
- package/dist/schemas/FormSelectSchema.d.ts.map +1 -0
- package/dist/schemas/index.d.ts +4 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/transformers/ComponentTransformer.d.ts +1 -0
- package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/components/QwickApp.css +22 -0
- package/src/components/Scaffold.css +5 -0
- package/src/components/Scaffold.tsx +5 -3
- package/src/components/forms/Captcha.tsx +57 -63
- package/src/components/forms/FormCheckbox.tsx +35 -43
- package/src/components/forms/FormField.tsx +50 -66
- package/src/components/forms/FormSelect.tsx +41 -49
- package/src/contexts/QwickAppContext.tsx +1 -1
- package/src/hooks/useBaseProps.ts +34 -1
- package/src/palettes/PaletteAutumn.css +3 -1
- package/src/palettes/PaletteBoutique.css +176 -0
- package/src/palettes/PaletteBoutique.ts +16 -0
- package/src/palettes/PaletteCosmic.css +3 -1
- package/src/palettes/PaletteOcean.css +3 -1
- package/src/palettes/PaletteSpring.css +3 -1
- package/src/palettes/PaletteWinter.css +3 -1
- package/src/palettes/index.ts +3 -0
- package/src/palettes/manifest.json +12 -1
- package/src/schemas/CaptchaSchema.ts +65 -0
- package/src/schemas/FormCheckboxSchema.ts +65 -0
- package/src/schemas/FormFieldSchema.ts +140 -0
- package/src/schemas/FormSelectSchema.ts +108 -0
- package/src/schemas/index.ts +4 -0
- package/src/schemas/transformers/ComponentTransformer.ts +32 -2
- package/dist/palettes/palette-autumn.1.5.13.min.css +0 -1
- package/dist/palettes/palette-cosmic.1.5.13.min.css +0 -1
- package/dist/palettes/palette-ocean.1.5.13.min.css +0 -1
- package/dist/palettes/palette-spring.1.5.13.min.css +0 -1
- package/dist/palettes/palette-winter.1.5.13.min.css +0 -1
- /package/dist/palettes/{palette-default.1.5.13.css → palette-default.1.7.0.css} +0 -0
- /package/dist/palettes/{palette-default.1.5.13.min.css → palette-default.1.7.0.min.css} +0 -0
|
@@ -61,12 +61,14 @@ html[data-palette="cosmic"][data-theme="light"] {
|
|
|
61
61
|
--palette-error-main: #ef4444;
|
|
62
62
|
--palette-error-light: #fee2e2;
|
|
63
63
|
--palette-error-dark: #b91c1c;
|
|
64
|
+
--palette-on-error: #ffffff;
|
|
64
65
|
--palette-error-border: #fecaca;
|
|
65
|
-
|
|
66
|
+
|
|
66
67
|
/* Warning palette - Solar flare */
|
|
67
68
|
--palette-warning-main: #f59e0b;
|
|
68
69
|
--palette-warning-light: #fef3c7;
|
|
69
70
|
--palette-warning-dark: #b45309;
|
|
71
|
+
--palette-on-warning: #000000;
|
|
70
72
|
--palette-warning-border: #fde68a;
|
|
71
73
|
|
|
72
74
|
/* Info palette - Cosmic blue */
|
|
@@ -61,12 +61,14 @@ html[data-palette="ocean"][data-theme="light"] {
|
|
|
61
61
|
--palette-error-main: #ef4444;
|
|
62
62
|
--palette-error-light: #fee2e2;
|
|
63
63
|
--palette-error-dark: #7f1d1d;
|
|
64
|
+
--palette-on-error: #ffffff;
|
|
64
65
|
--palette-error-border: #fecaca;
|
|
65
|
-
|
|
66
|
+
|
|
66
67
|
/* Warning palette - Sandy yellow */
|
|
67
68
|
--palette-warning-main: #f59e0b;
|
|
68
69
|
--palette-warning-light: #fef3c7;
|
|
69
70
|
--palette-warning-dark: #78350f;
|
|
71
|
+
--palette-on-warning: #000000;
|
|
70
72
|
--palette-warning-border: #fde68a;
|
|
71
73
|
|
|
72
74
|
/* Info palette - Crystal blue */
|
|
@@ -55,12 +55,14 @@ html[data-palette="spring"][data-theme="light"] {
|
|
|
55
55
|
--palette-error-main: #f43f5e;
|
|
56
56
|
--palette-error-light: #ffe4e6;
|
|
57
57
|
--palette-error-dark: #881337;
|
|
58
|
+
--palette-on-error: #ffffff;
|
|
58
59
|
--palette-error-border: #fecdd3;
|
|
59
|
-
|
|
60
|
+
|
|
60
61
|
/* Warning palette - Daffodil */
|
|
61
62
|
--palette-warning-main: #eab308;
|
|
62
63
|
--palette-warning-light: #fefce8;
|
|
63
64
|
--palette-warning-dark: #713f12;
|
|
65
|
+
--palette-on-warning: #000000;
|
|
64
66
|
--palette-warning-border: #fef08a;
|
|
65
67
|
|
|
66
68
|
/* Info palette - Sky blue */
|
|
@@ -61,12 +61,14 @@ html[data-palette="winter"][data-theme="light"] {
|
|
|
61
61
|
--palette-error-main: #dc2626;
|
|
62
62
|
--palette-error-light: #fee2e2;
|
|
63
63
|
--palette-error-dark: #7f1d1d;
|
|
64
|
+
--palette-on-error: #ffffff;
|
|
64
65
|
--palette-error-border: #fecaca;
|
|
65
|
-
|
|
66
|
+
|
|
66
67
|
/* Warning palette - Amber frost */
|
|
67
68
|
--palette-warning-main: #d97706;
|
|
68
69
|
--palette-warning-light: #fef3c7;
|
|
69
70
|
--palette-warning-dark: #92400e;
|
|
71
|
+
--palette-on-warning: #000000;
|
|
70
72
|
--palette-warning-border: #fde68a;
|
|
71
73
|
|
|
72
74
|
/* Info palette - Arctic blue */
|
package/src/palettes/index.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
export { default as PaletteDefault } from './PaletteDefault';
|
|
8
8
|
export { default as PaletteAutumn } from './PaletteAutumn';
|
|
9
|
+
export { default as PaletteBoutique } from './PaletteBoutique';
|
|
9
10
|
export { default as PaletteOcean } from './PaletteOcean';
|
|
10
11
|
export { default as PaletteSpring } from './PaletteSpring';
|
|
11
12
|
export { default as PaletteWinter } from './PaletteWinter';
|
|
@@ -14,6 +15,7 @@ export { default as PaletteCosmic } from './PaletteCosmic';
|
|
|
14
15
|
// Export all palette configs as an array
|
|
15
16
|
import PaletteDefault from './PaletteDefault';
|
|
16
17
|
import PaletteAutumn from './PaletteAutumn';
|
|
18
|
+
import PaletteBoutique from './PaletteBoutique';
|
|
17
19
|
import PaletteOcean from './PaletteOcean';
|
|
18
20
|
import PaletteSpring from './PaletteSpring';
|
|
19
21
|
import PaletteWinter from './PaletteWinter';
|
|
@@ -21,6 +23,7 @@ import PaletteCosmic from './PaletteCosmic';
|
|
|
21
23
|
|
|
22
24
|
export const AllPalettes = [
|
|
23
25
|
PaletteDefault,
|
|
26
|
+
PaletteBoutique,
|
|
24
27
|
PaletteOcean,
|
|
25
28
|
PaletteCosmic,
|
|
26
29
|
PaletteWinter,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./manifest.schema.json",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.14",
|
|
4
4
|
"palettes": [
|
|
5
5
|
{
|
|
6
6
|
"id": "default",
|
|
@@ -24,6 +24,17 @@
|
|
|
24
24
|
"primaryColor": "#ea580c",
|
|
25
25
|
"inlined": false
|
|
26
26
|
},
|
|
27
|
+
{
|
|
28
|
+
"id": "boutique",
|
|
29
|
+
"name": "Boutique",
|
|
30
|
+
"description": "Sophisticated teal, bronze, and navy - perfect for premium retail and fashion brands",
|
|
31
|
+
"author": "QwickApps",
|
|
32
|
+
"license": "PolyForm-Shield-1.0.0",
|
|
33
|
+
"version": "1.0.0",
|
|
34
|
+
"file": "PaletteBoutique.css",
|
|
35
|
+
"primaryColor": "#3ca6b6",
|
|
36
|
+
"inlined": false
|
|
37
|
+
},
|
|
27
38
|
{
|
|
28
39
|
"id": "cosmic",
|
|
29
40
|
"name": "Cosmic",
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema for Captcha component - Universal CAPTCHA widget
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { IsIn, IsOptional, IsString } from 'class-validator';
|
|
8
|
+
import 'reflect-metadata';
|
|
9
|
+
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
10
|
+
import ViewSchema from './ViewSchema';
|
|
11
|
+
|
|
12
|
+
@Schema('Captcha', '1.0.0')
|
|
13
|
+
export class CaptchaModel extends ViewSchema {
|
|
14
|
+
@Field()
|
|
15
|
+
@Editor({
|
|
16
|
+
field_type: FieldType.SELECT,
|
|
17
|
+
label: 'CAPTCHA Provider',
|
|
18
|
+
description: 'Which CAPTCHA service to use'
|
|
19
|
+
})
|
|
20
|
+
@IsIn(['recaptcha-v2', 'recaptcha-v3', 'hcaptcha', 'turnstile'])
|
|
21
|
+
provider!: 'recaptcha-v2' | 'recaptcha-v3' | 'hcaptcha' | 'turnstile';
|
|
22
|
+
|
|
23
|
+
@Field()
|
|
24
|
+
@Editor({
|
|
25
|
+
field_type: FieldType.TEXT,
|
|
26
|
+
label: 'Site Key',
|
|
27
|
+
description: 'Public site key from CAPTCHA provider',
|
|
28
|
+
placeholder: 'Enter site key...'
|
|
29
|
+
})
|
|
30
|
+
@IsString()
|
|
31
|
+
siteKey!: string;
|
|
32
|
+
|
|
33
|
+
@Field({ defaultValue: 'light' })
|
|
34
|
+
@Editor({
|
|
35
|
+
field_type: FieldType.SELECT,
|
|
36
|
+
label: 'Theme',
|
|
37
|
+
description: 'CAPTCHA widget theme'
|
|
38
|
+
})
|
|
39
|
+
@IsOptional()
|
|
40
|
+
@IsIn(['light', 'dark'])
|
|
41
|
+
theme?: 'light' | 'dark';
|
|
42
|
+
|
|
43
|
+
@Field({ defaultValue: 'normal' })
|
|
44
|
+
@Editor({
|
|
45
|
+
field_type: FieldType.SELECT,
|
|
46
|
+
label: 'Size',
|
|
47
|
+
description: 'CAPTCHA widget size'
|
|
48
|
+
})
|
|
49
|
+
@IsOptional()
|
|
50
|
+
@IsIn(['normal', 'compact', 'invisible'])
|
|
51
|
+
size?: 'normal' | 'compact' | 'invisible';
|
|
52
|
+
|
|
53
|
+
@Field({ defaultValue: 'submit' })
|
|
54
|
+
@Editor({
|
|
55
|
+
field_type: FieldType.TEXT,
|
|
56
|
+
label: 'Action',
|
|
57
|
+
description: 'reCAPTCHA v3 action name',
|
|
58
|
+
placeholder: 'submit'
|
|
59
|
+
})
|
|
60
|
+
@IsOptional()
|
|
61
|
+
@IsString()
|
|
62
|
+
action?: string;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export default CaptchaModel;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema for FormCheckbox component - Themed checkbox input
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { IsBoolean, IsOptional, IsString } from 'class-validator';
|
|
8
|
+
import 'reflect-metadata';
|
|
9
|
+
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
10
|
+
import ViewSchema from './ViewSchema';
|
|
11
|
+
|
|
12
|
+
@Schema('FormCheckbox', '1.0.0')
|
|
13
|
+
export class FormCheckboxModel extends ViewSchema {
|
|
14
|
+
@Field()
|
|
15
|
+
@Editor({
|
|
16
|
+
field_type: FieldType.TEXT,
|
|
17
|
+
label: 'Label',
|
|
18
|
+
description: 'Label text for the checkbox',
|
|
19
|
+
placeholder: 'Enter label...'
|
|
20
|
+
})
|
|
21
|
+
@IsString()
|
|
22
|
+
label!: string;
|
|
23
|
+
|
|
24
|
+
@Field({ defaultValue: false })
|
|
25
|
+
@Editor({
|
|
26
|
+
field_type: FieldType.BOOLEAN,
|
|
27
|
+
label: 'Checked',
|
|
28
|
+
description: 'Checkbox checked state'
|
|
29
|
+
})
|
|
30
|
+
@IsBoolean()
|
|
31
|
+
checked!: boolean;
|
|
32
|
+
|
|
33
|
+
@Field()
|
|
34
|
+
@Editor({
|
|
35
|
+
field_type: FieldType.TEXT,
|
|
36
|
+
label: 'Helper Text',
|
|
37
|
+
description: 'Helper text displayed below the checkbox',
|
|
38
|
+
placeholder: 'Enter helper text...'
|
|
39
|
+
})
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@IsString()
|
|
42
|
+
helperText?: string;
|
|
43
|
+
|
|
44
|
+
@Field({ defaultValue: false })
|
|
45
|
+
@Editor({
|
|
46
|
+
field_type: FieldType.BOOLEAN,
|
|
47
|
+
label: 'Required',
|
|
48
|
+
description: 'Mark checkbox as required'
|
|
49
|
+
})
|
|
50
|
+
@IsOptional()
|
|
51
|
+
@IsBoolean()
|
|
52
|
+
required?: boolean;
|
|
53
|
+
|
|
54
|
+
@Field({ defaultValue: false })
|
|
55
|
+
@Editor({
|
|
56
|
+
field_type: FieldType.BOOLEAN,
|
|
57
|
+
label: 'Disabled',
|
|
58
|
+
description: 'Disable the checkbox'
|
|
59
|
+
})
|
|
60
|
+
@IsOptional()
|
|
61
|
+
@IsBoolean()
|
|
62
|
+
disabled?: boolean;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export default FormCheckboxModel;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema for FormField component - Themed text/number input field
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { IsBoolean, IsIn, IsInt, IsOptional, IsString, Min } from 'class-validator';
|
|
8
|
+
import 'reflect-metadata';
|
|
9
|
+
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
10
|
+
import ViewSchema from './ViewSchema';
|
|
11
|
+
|
|
12
|
+
@Schema('FormField', '1.0.0')
|
|
13
|
+
export class FormFieldModel extends ViewSchema {
|
|
14
|
+
@Field()
|
|
15
|
+
@Editor({
|
|
16
|
+
field_type: FieldType.TEXT,
|
|
17
|
+
label: 'Label',
|
|
18
|
+
description: 'Label text for the input field',
|
|
19
|
+
placeholder: 'Enter label...'
|
|
20
|
+
})
|
|
21
|
+
@IsString()
|
|
22
|
+
label!: string;
|
|
23
|
+
|
|
24
|
+
@Field()
|
|
25
|
+
@Editor({
|
|
26
|
+
field_type: FieldType.TEXT,
|
|
27
|
+
label: 'Value',
|
|
28
|
+
description: 'Current input value',
|
|
29
|
+
placeholder: ''
|
|
30
|
+
})
|
|
31
|
+
@IsString()
|
|
32
|
+
value!: string | number;
|
|
33
|
+
|
|
34
|
+
@Field({ defaultValue: 'text' })
|
|
35
|
+
@Editor({
|
|
36
|
+
field_type: FieldType.SELECT,
|
|
37
|
+
label: 'Input Type',
|
|
38
|
+
description: 'Type of input field'
|
|
39
|
+
})
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@IsIn(['text', 'number', 'password', 'email', 'tel'])
|
|
42
|
+
type?: 'text' | 'number' | 'password' | 'email' | 'tel';
|
|
43
|
+
|
|
44
|
+
@Field()
|
|
45
|
+
@Editor({
|
|
46
|
+
field_type: FieldType.TEXT,
|
|
47
|
+
label: 'Helper Text',
|
|
48
|
+
description: 'Helper text displayed below the input',
|
|
49
|
+
placeholder: 'Enter helper text...'
|
|
50
|
+
})
|
|
51
|
+
@IsOptional()
|
|
52
|
+
@IsString()
|
|
53
|
+
helperText?: string;
|
|
54
|
+
|
|
55
|
+
@Field({ defaultValue: false })
|
|
56
|
+
@Editor({
|
|
57
|
+
field_type: FieldType.BOOLEAN,
|
|
58
|
+
label: 'Required',
|
|
59
|
+
description: 'Mark field as required'
|
|
60
|
+
})
|
|
61
|
+
@IsOptional()
|
|
62
|
+
@IsBoolean()
|
|
63
|
+
required?: boolean;
|
|
64
|
+
|
|
65
|
+
@Field({ defaultValue: false })
|
|
66
|
+
@Editor({
|
|
67
|
+
field_type: FieldType.BOOLEAN,
|
|
68
|
+
label: 'Read Only',
|
|
69
|
+
description: 'Make field read-only'
|
|
70
|
+
})
|
|
71
|
+
@IsOptional()
|
|
72
|
+
@IsBoolean()
|
|
73
|
+
readOnly?: boolean;
|
|
74
|
+
|
|
75
|
+
@Field({ defaultValue: false })
|
|
76
|
+
@Editor({
|
|
77
|
+
field_type: FieldType.BOOLEAN,
|
|
78
|
+
label: 'Disabled',
|
|
79
|
+
description: 'Disable the input field'
|
|
80
|
+
})
|
|
81
|
+
@IsOptional()
|
|
82
|
+
@IsBoolean()
|
|
83
|
+
disabled?: boolean;
|
|
84
|
+
|
|
85
|
+
@Field()
|
|
86
|
+
@Editor({
|
|
87
|
+
field_type: FieldType.TEXT,
|
|
88
|
+
label: 'Disabled Color',
|
|
89
|
+
description: 'Custom color for disabled state (CSS color value)',
|
|
90
|
+
placeholder: 'var(--theme-text-disabled)'
|
|
91
|
+
})
|
|
92
|
+
@IsOptional()
|
|
93
|
+
@IsString()
|
|
94
|
+
disabledColor?: string;
|
|
95
|
+
|
|
96
|
+
@Field({ defaultValue: true })
|
|
97
|
+
@Editor({
|
|
98
|
+
field_type: FieldType.BOOLEAN,
|
|
99
|
+
label: 'Full Width',
|
|
100
|
+
description: 'Make input take full width of container'
|
|
101
|
+
})
|
|
102
|
+
@IsOptional()
|
|
103
|
+
@IsBoolean()
|
|
104
|
+
fullWidth?: boolean;
|
|
105
|
+
|
|
106
|
+
@Field({ defaultValue: false })
|
|
107
|
+
@Editor({
|
|
108
|
+
field_type: FieldType.BOOLEAN,
|
|
109
|
+
label: 'Multiline',
|
|
110
|
+
description: 'Enable multiline textarea mode'
|
|
111
|
+
})
|
|
112
|
+
@IsOptional()
|
|
113
|
+
@IsBoolean()
|
|
114
|
+
multiline?: boolean;
|
|
115
|
+
|
|
116
|
+
@Field()
|
|
117
|
+
@Editor({
|
|
118
|
+
field_type: FieldType.TEXT,
|
|
119
|
+
label: 'Rows',
|
|
120
|
+
description: 'Number of rows for multiline textarea',
|
|
121
|
+
placeholder: '4'
|
|
122
|
+
})
|
|
123
|
+
@IsOptional()
|
|
124
|
+
@IsInt()
|
|
125
|
+
@Min(1)
|
|
126
|
+
rows?: number;
|
|
127
|
+
|
|
128
|
+
@Field()
|
|
129
|
+
@Editor({
|
|
130
|
+
field_type: FieldType.TEXT,
|
|
131
|
+
label: 'Placeholder',
|
|
132
|
+
description: 'Placeholder text',
|
|
133
|
+
placeholder: 'Enter text...'
|
|
134
|
+
})
|
|
135
|
+
@IsOptional()
|
|
136
|
+
@IsString()
|
|
137
|
+
placeholder?: string;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export default FormFieldModel;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema for FormSelect component - Themed dropdown select input
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { IsBoolean, IsIn, IsOptional, IsString } from 'class-validator';
|
|
8
|
+
import 'reflect-metadata';
|
|
9
|
+
import { Editor, Field, Schema, FieldType } from '@qwickapps/schema';
|
|
10
|
+
import ViewSchema from './ViewSchema';
|
|
11
|
+
|
|
12
|
+
@Schema('FormSelect', '1.0.0')
|
|
13
|
+
export class FormSelectModel extends ViewSchema {
|
|
14
|
+
@Field()
|
|
15
|
+
@Editor({
|
|
16
|
+
field_type: FieldType.TEXT,
|
|
17
|
+
label: 'Label',
|
|
18
|
+
description: 'Label text for the select field',
|
|
19
|
+
placeholder: 'Enter label...'
|
|
20
|
+
})
|
|
21
|
+
@IsOptional()
|
|
22
|
+
@IsString()
|
|
23
|
+
label?: string;
|
|
24
|
+
|
|
25
|
+
@Field()
|
|
26
|
+
@Editor({
|
|
27
|
+
field_type: FieldType.TEXT,
|
|
28
|
+
label: 'Value',
|
|
29
|
+
description: 'Current selected value',
|
|
30
|
+
placeholder: ''
|
|
31
|
+
})
|
|
32
|
+
@IsString()
|
|
33
|
+
value!: string | number;
|
|
34
|
+
|
|
35
|
+
@Field()
|
|
36
|
+
@Editor({
|
|
37
|
+
field_type: FieldType.TEXTAREA,
|
|
38
|
+
label: 'Options',
|
|
39
|
+
description: 'Select options as JSON array: [{"value": "1", "label": "Option 1"}]',
|
|
40
|
+
placeholder: '[{"value": "1", "label": "Option 1"}]'
|
|
41
|
+
})
|
|
42
|
+
@IsString()
|
|
43
|
+
options!: string; // JSON string of FormSelectOption[]
|
|
44
|
+
|
|
45
|
+
@Field()
|
|
46
|
+
@Editor({
|
|
47
|
+
field_type: FieldType.TEXT,
|
|
48
|
+
label: 'Helper Text',
|
|
49
|
+
description: 'Helper text displayed below the select',
|
|
50
|
+
placeholder: 'Enter helper text...'
|
|
51
|
+
})
|
|
52
|
+
@IsOptional()
|
|
53
|
+
@IsString()
|
|
54
|
+
helperText?: string;
|
|
55
|
+
|
|
56
|
+
@Field({ defaultValue: false })
|
|
57
|
+
@Editor({
|
|
58
|
+
field_type: FieldType.BOOLEAN,
|
|
59
|
+
label: 'Required',
|
|
60
|
+
description: 'Mark field as required'
|
|
61
|
+
})
|
|
62
|
+
@IsOptional()
|
|
63
|
+
@IsBoolean()
|
|
64
|
+
required?: boolean;
|
|
65
|
+
|
|
66
|
+
@Field({ defaultValue: false })
|
|
67
|
+
@Editor({
|
|
68
|
+
field_type: FieldType.BOOLEAN,
|
|
69
|
+
label: 'Disabled',
|
|
70
|
+
description: 'Disable the select field'
|
|
71
|
+
})
|
|
72
|
+
@IsOptional()
|
|
73
|
+
@IsBoolean()
|
|
74
|
+
disabled?: boolean;
|
|
75
|
+
|
|
76
|
+
@Field({ defaultValue: true })
|
|
77
|
+
@Editor({
|
|
78
|
+
field_type: FieldType.BOOLEAN,
|
|
79
|
+
label: 'Full Width',
|
|
80
|
+
description: 'Make select take full width of container'
|
|
81
|
+
})
|
|
82
|
+
@IsOptional()
|
|
83
|
+
@IsBoolean()
|
|
84
|
+
fullWidth?: boolean;
|
|
85
|
+
|
|
86
|
+
@Field({ defaultValue: 'small' })
|
|
87
|
+
@Editor({
|
|
88
|
+
field_type: FieldType.SELECT,
|
|
89
|
+
label: 'Size',
|
|
90
|
+
description: 'Size variant of the select field'
|
|
91
|
+
})
|
|
92
|
+
@IsOptional()
|
|
93
|
+
@IsIn(['small', 'medium'])
|
|
94
|
+
size?: 'small' | 'medium';
|
|
95
|
+
|
|
96
|
+
@Field()
|
|
97
|
+
@Editor({
|
|
98
|
+
field_type: FieldType.TEXT,
|
|
99
|
+
label: 'Placeholder',
|
|
100
|
+
description: 'Placeholder text when no value is selected',
|
|
101
|
+
placeholder: 'Select an option...'
|
|
102
|
+
})
|
|
103
|
+
@IsOptional()
|
|
104
|
+
@IsString()
|
|
105
|
+
placeholder?: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export default FormSelectModel;
|
package/src/schemas/index.ts
CHANGED
|
@@ -28,6 +28,10 @@ export * from './FeatureGridSchema';
|
|
|
28
28
|
export * from './FeatureItemSchema';
|
|
29
29
|
export * from './FooterItemSchema';
|
|
30
30
|
export * from './FormBlockSchema';
|
|
31
|
+
export * from './FormSelectSchema';
|
|
32
|
+
export * from './FormFieldSchema';
|
|
33
|
+
export * from './FormCheckboxSchema';
|
|
34
|
+
export * from './CaptchaSchema';
|
|
31
35
|
export * from './FooterSchema';
|
|
32
36
|
export * from './FooterSectionSchema';
|
|
33
37
|
export * from './GridCellSchema';
|
|
@@ -14,6 +14,19 @@ import { SerializableConstructor } from '../types/Serializable';
|
|
|
14
14
|
import { ReactNodeTransformer } from './ReactNodeTransformer';
|
|
15
15
|
import SafeSpan from '../../components/SafeSpan';
|
|
16
16
|
|
|
17
|
+
// Import linkedom for server-side HTML parsing
|
|
18
|
+
let parseHTML: ((html: string) => Document) | null = null;
|
|
19
|
+
if (typeof window === 'undefined') {
|
|
20
|
+
// Server-side: use linkedom
|
|
21
|
+
try {
|
|
22
|
+
const { parseHTML: parse } = require('linkedom');
|
|
23
|
+
parseHTML = (html: string) => parse(html).document;
|
|
24
|
+
} catch (e) {
|
|
25
|
+
// linkedom not available, will fall back to client-only rendering
|
|
26
|
+
console.warn('linkedom not available for SSR HTML parsing');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
17
30
|
/**
|
|
18
31
|
* Registry for component classes that support serialization
|
|
19
32
|
*/
|
|
@@ -370,13 +383,30 @@ export class ComponentTransformer {
|
|
|
370
383
|
|
|
371
384
|
/**
|
|
372
385
|
* Transform HTML string to React nodes using registered patterns
|
|
386
|
+
* Supports both server-side (linkedom) and client-side (DOMParser) rendering
|
|
373
387
|
* @param html - HTML string to transform
|
|
374
388
|
* @returns Array of React nodes
|
|
375
389
|
*/
|
|
376
390
|
static transformHTML(html: string): ReactNode[] {
|
|
377
391
|
if (!html.trim()) return [];
|
|
378
|
-
|
|
379
|
-
|
|
392
|
+
|
|
393
|
+
let doc: Document;
|
|
394
|
+
|
|
395
|
+
// Server-side: use linkedom if available
|
|
396
|
+
if (typeof window === 'undefined') {
|
|
397
|
+
if (parseHTML) {
|
|
398
|
+
doc = parseHTML(html);
|
|
399
|
+
} else {
|
|
400
|
+
// linkedom not available, return empty for client-side rendering
|
|
401
|
+
console.warn('SSR HTML parsing unavailable - content will render client-side only');
|
|
402
|
+
return [];
|
|
403
|
+
}
|
|
404
|
+
} else {
|
|
405
|
+
// Client-side: use DOMParser
|
|
406
|
+
const parser = new DOMParser();
|
|
407
|
+
doc = parser.parseFromString(html, 'text/html');
|
|
408
|
+
}
|
|
409
|
+
|
|
380
410
|
return Array.from(doc.body.children).map((element, index) =>
|
|
381
411
|
ComponentTransformer.transformElement(element, `element-${index}`)
|
|
382
412
|
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html[data-palette="autumn"]:not([data-theme="dark"]),html[data-palette="autumn"][data-theme="light"]{--palette-primary-main:#ea580c;--palette-primary-light:#fb923c;--palette-primary-dark:#c2410c;--palette-on-primary:#ffffff;--palette-secondary-main:#b45309;--palette-secondary-light:#d97706;--palette-secondary-dark:#92400e;--palette-on-secondary:#ffffff;--palette-surface-main:#fffbeb;--palette-surface-variant:#fef3c7;--palette-surface-elevated:#ffffff;--palette-on-surface:#451a03;--palette-background-main:#fefce8;--palette-background-dark:#fef3c7;--palette-background-overlay:rgba(254,252,232,0.95);--palette-on-background:#78350f;--palette-header-bg-start:rgba(254,252,232,0.98);--palette-header-bg-end:rgba(254,252,232,0.95);--palette-header-collapsed-bg-start:rgba(254,252,232,0.99);--palette-header-collapsed-bg-end:rgba(254,252,232,0.96);--palette-text-primary:#451a03;--palette-text-secondary:#78350f;--palette-text-disabled:rgba(69,26,3,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#d4d4aa;--palette-border-light:rgba(69,26,3,0.12);--palette-border-lighter:rgba(69,26,3,0.05);--palette-border-medium:#a8a29e;--palette-success-main:#16a34a;--palette-success-light:#dcfce7;--palette-success-dark:#14532d;--palette-success-border:#bbf7d0;--palette-error-main:#dc2626;--palette-error-light:#fee2e2;--palette-error-dark:#7f1d1d;--palette-error-border:#fecaca;--palette-warning-main:#f59e0b;--palette-warning-light:#fef3c7;--palette-warning-dark:#78350f;--palette-warning-border:#fde68a;--palette-info-main:#0891b2;--palette-info-light:#e6fffa;--palette-info-dark:#164e63;--palette-on-info:#ffffff;--palette-info-border:#67e8f9;--palette-accent-main:#dc2626;--palette-accent-light:#f87171;--palette-accent-dark:#991b1b;--palette-on-accent:#ffffff;--palette-control-main:#451a03;--palette-control-light:#78350f;--palette-control-text:#fef3c7;--palette-control-border:#92400e}html[data-palette="autumn"][data-theme="dark"]{--palette-primary-main:#fb923c;--palette-primary-light:#fdba74;--palette-primary-dark:#ea580c;--palette-on-primary:#1c1917;--palette-secondary-main:#fbbf24;--palette-secondary-light:#fcd34d;--palette-secondary-dark:#f59e0b;--palette-on-secondary:#1c1917;--palette-surface-main:#231f1d;--palette-surface-variant:#302a27;--palette-surface-elevated:#44403c;--palette-on-surface:#fef3c7;--palette-background-main:#0a0807;--palette-background-dark:#151210;--palette-background-overlay:rgba(28,25,23,0.95);--palette-on-background:#d6d3d1;--palette-header-bg-start:rgba(10,8,7,0.98);--palette-header-bg-end:rgba(10,8,7,0.95);--palette-header-collapsed-bg-start:rgba(10,8,7,0.99);--palette-header-collapsed-bg-end:rgba(10,8,7,0.96);--palette-text-primary:#fef3c7;--palette-text-secondary:#d6d3d1;--palette-text-disabled:rgba(254,243,199,0.38);--palette-text-inverted:#0c0a09;--palette-border-main:#78716c;--palette-border-light:rgba(254,243,199,0.12);--palette-border-lighter:rgba(254,243,199,0.05);--palette-border-medium:#57534e;--palette-success-main:#4ade80;--palette-success-light:#14532d;--palette-success-dark:#22c55e;--palette-success-border:#166534;--palette-error-main:#f87171;--palette-error-light:#7f1d1d;--palette-error-dark:#ef4444;--palette-error-border:#991b1b;--palette-warning-main:#eab308;--palette-warning-light:#78350f;--palette-warning-dark:#ca8a04;--palette-warning-border:#a16207;--palette-info-main:#22d3ee;--palette-info-light:#164e63;--palette-info-dark:#06b6d4;--palette-on-info:#0c0a09;--palette-info-border:#0891b2;--palette-accent-main:#b91c1c;--palette-accent-light:#dc2626;--palette-accent-dark:#7f1d1d;--palette-on-accent:#fef3c7;--palette-control-main:#292524;--palette-control-light:#44403c;--palette-control-text:#f5f5f4;--palette-control-border:#57534e}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html[data-palette="cosmic"]:not([data-theme="dark"]),html[data-palette="cosmic"][data-theme="light"]{--palette-primary-main:#8b5cf6;--palette-primary-light:#a78bfa;--palette-primary-dark:#7c3aed;--palette-on-primary:#ffffff;--palette-secondary-main:#8b5cf6;--palette-secondary-light:#c4b5fd;--palette-secondary-dark:#6d28d9;--palette-on-secondary:#ffffff;--palette-surface-main:#faf7ff;--palette-surface-variant:#f3e8ff;--palette-surface-elevated:#ffffff;--palette-on-surface:#4c1d95;--palette-background-main:#fef7ff;--palette-background-dark:#fae8ff;--palette-background-overlay:rgba(254,247,255,0.95);--palette-on-background:#6b21a8;--palette-header-bg-start:rgba(254,247,255,0.98);--palette-header-bg-end:rgba(254,247,255,0.95);--palette-header-collapsed-bg-start:rgba(254,247,255,0.99);--palette-header-collapsed-bg-end:rgba(254,247,255,0.96);--palette-text-primary:#4c1d95;--palette-text-secondary:#7c3aed;--palette-text-disabled:rgba(76,29,149,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#c4b5fd;--palette-border-light:rgba(76,29,149,0.12);--palette-border-lighter:rgba(76,29,149,0.05);--palette-border-medium:#a78bfa;--palette-success-main:#10b981;--palette-success-light:#d1fae5;--palette-success-dark:#047857;--palette-success-border:#6ee7b7;--palette-error-main:#ef4444;--palette-error-light:#fee2e2;--palette-error-dark:#b91c1c;--palette-error-border:#fecaca;--palette-warning-main:#f59e0b;--palette-warning-light:#fef3c7;--palette-warning-dark:#b45309;--palette-warning-border:#fde68a;--palette-info-main:#3b82f6;--palette-info-light:#dbeafe;--palette-info-dark:#1d4ed8;--palette-on-info:#ffffff;--palette-info-border:#93c5fd;--palette-accent-main:#ec4899;--palette-accent-light:#f472b6;--palette-accent-dark:#be185d;--palette-on-accent:#ffffff;--palette-control-main:#1e1b4b;--palette-control-light:#3730a3;--palette-control-text:#e0e7ff;--palette-control-border:#8b5cf6}html[data-palette="cosmic"][data-theme="dark"]{--palette-primary-main:#a78bfa;--palette-primary-light:#c4b5fd;--palette-primary-dark:#8b5cf6;--palette-on-primary:#1e1b4b;--palette-secondary-main:#c4b5fd;--palette-secondary-light:#ddd6fe;--palette-secondary-dark:#a78bfa;--palette-on-secondary:#1e1b4b;--palette-surface-main:#252059;--palette-surface-variant:#312e81;--palette-surface-elevated:#3730a3;--palette-on-surface:#e0e7ff;--palette-background-main:#0a0818;--palette-background-dark:#12101f;--palette-background-overlay:rgba(10,8,24,0.95);--palette-on-background:#c4b5fd;--palette-header-bg-start:rgba(10,8,24,0.98);--palette-header-bg-end:rgba(10,8,24,0.95);--palette-header-collapsed-bg-start:rgba(10,8,24,0.99);--palette-header-collapsed-bg-end:rgba(10,8,24,0.96);--palette-text-primary:#e0e7ff;--palette-text-secondary:#c4b5fd;--palette-text-disabled:rgba(224,231,255,0.38);--palette-text-inverted:#0f0c29;--palette-border-main:#4338ca;--palette-border-light:rgba(224,231,255,0.12);--palette-border-lighter:rgba(224,231,255,0.05);--palette-border-medium:#312e81;--palette-success-main:#34d399;--palette-success-light:#047857;--palette-success-dark:#10b981;--palette-success-border:#065f46;--palette-error-main:#f87171;--palette-error-light:#b91c1c;--palette-error-dark:#ef4444;--palette-error-border:#991b1b;--palette-warning-main:#fb7185;--palette-warning-light:#881337;--palette-warning-dark:#e11d48;--palette-warning-border:#be123c;--palette-info-main:#60a5fa;--palette-info-light:#1d4ed8;--palette-info-dark:#3b82f6;--palette-on-info:#0f0c29;--palette-info-border:#2563eb;--palette-accent-main:#f472b6;--palette-accent-light:#f9a8d4;--palette-accent-dark:#ec4899;--palette-on-accent:#0f0c29;--palette-control-main:#312e81;--palette-control-light:#4338ca;--palette-control-text:#f3f4f6;--palette-control-border:#4338ca}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html[data-palette="ocean"]:not([data-theme="dark"]),html[data-palette="ocean"][data-theme="light"]{--palette-primary-main:#0891b2;--palette-primary-light:#22d3ee;--palette-primary-dark:#164e63;--palette-on-primary:#ffffff;--palette-secondary-main:#0f766e;--palette-secondary-light:#14b8a6;--palette-secondary-dark:#134e4a;--palette-on-secondary:#ffffff;--palette-surface-main:#f0fdfa;--palette-surface-variant:#ccfbf1;--palette-surface-elevated:#ffffff;--palette-on-surface:#164e63;--palette-background-main:#ecfeff;--palette-background-dark:#cffafe;--palette-background-overlay:rgba(236,254,255,0.95);--palette-on-background:#0f766e;--palette-header-bg-start:rgba(236,254,255,0.98);--palette-header-bg-end:rgba(236,254,255,0.95);--palette-header-collapsed-bg-start:rgba(236,254,255,0.99);--palette-header-collapsed-bg-end:rgba(236,254,255,0.96);--palette-text-primary:#164e63;--palette-text-secondary:#0891b2;--palette-text-disabled:rgba(22,78,99,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#a7f3d0;--palette-border-light:rgba(22,78,99,0.12);--palette-border-lighter:rgba(22,78,99,0.05);--palette-border-medium:#67e8f9;--palette-success-main:#059669;--palette-success-light:#d1fae5;--palette-success-dark:#065f46;--palette-success-border:#a7f3d0;--palette-error-main:#ef4444;--palette-error-light:#fee2e2;--palette-error-dark:#7f1d1d;--palette-error-border:#fecaca;--palette-warning-main:#f59e0b;--palette-warning-light:#fef3c7;--palette-warning-dark:#78350f;--palette-warning-border:#fde68a;--palette-info-main:#0ea5e9;--palette-info-light:#e0f2fe;--palette-info-dark:#0c4a6e;--palette-on-info:#ffffff;--palette-info-border:#7dd3fc;--palette-accent-main:#f97316;--palette-accent-light:#fb923c;--palette-accent-dark:#ea580c;--palette-on-accent:#ffffff;--palette-control-main:#0c4a6e;--palette-control-light:#075985;--palette-control-text:#cffafe;--palette-control-border:#0891b2}html[data-palette="ocean"][data-theme="dark"]{--palette-primary-main:#22d3ee;--palette-primary-light:#67e8f9;--palette-primary-dark:#0891b2;--palette-on-primary:#0a1a1f;--palette-secondary-main:#5eead4;--palette-secondary-light:#99f6e4;--palette-secondary-dark:#14b8a6;--palette-on-secondary:#0a1a1f;--palette-surface-main:#122830;--palette-surface-variant:#1a3a45;--palette-surface-elevated:#0e7490;--palette-on-surface:#cffafe;--palette-background-main:#040a0d;--palette-background-dark:#0a1418;--palette-background-overlay:rgba(10,26,31,0.95);--palette-on-background:#5eead4;--palette-header-bg-start:rgba(4,10,13,0.98);--palette-header-bg-end:rgba(4,10,13,0.95);--palette-header-collapsed-bg-start:rgba(4,10,13,0.99);--palette-header-collapsed-bg-end:rgba(4,10,13,0.96);--palette-text-primary:#cffafe;--palette-text-secondary:#a5f3fc;--palette-text-disabled:rgba(207,250,254,0.38);--palette-text-inverted:#020617;--palette-border-main:#155e75;--palette-border-light:rgba(207,250,254,0.12);--palette-border-lighter:rgba(207,250,254,0.05);--palette-border-medium:#0c4a6e;--palette-success-main:#34d399;--palette-success-light:#065f46;--palette-success-dark:#10b981;--palette-success-border:#047857;--palette-error-main:#f87171;--palette-error-light:#7f1d1d;--palette-error-dark:#ef4444;--palette-error-border:#991b1b;--palette-warning-main:#fb7185;--palette-warning-light:#881337;--palette-warning-dark:#e11d48;--palette-warning-border:#be123c;--palette-info-main:#0ea5e9;--palette-info-light:#0c4a6e;--palette-info-dark:#38bdf8;--palette-on-info:#020617;--palette-info-border:#0284c7;--palette-accent-main:#ea580c;--palette-accent-light:#fb923c;--palette-accent-dark:#c2410c;--palette-on-accent:#cffafe;--palette-control-main:#164e63;--palette-control-light:#0e7490;--palette-control-text:#ecfeff;--palette-control-border:#155e75}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html[data-palette="spring"]:not([data-theme="dark"]),html[data-palette="spring"][data-theme="light"]{--palette-primary-main:#16a34a;--palette-primary-light:#4ade80;--palette-primary-dark:#15803d;--palette-on-primary:#ffffff;--palette-secondary-main:#ec4899;--palette-secondary-light:#f472b6;--palette-secondary-dark:#be185d;--palette-on-secondary:#ffffff;--palette-surface-main:#f7fee7;--palette-surface-variant:#d9f7be;--palette-surface-elevated:#ffffff;--palette-on-surface:#14532d;--palette-background-main:#f0fdf4;--palette-background-dark:#dcfce7;--palette-background-overlay:rgba(240,253,244,0.95);--palette-on-background:#166534;--palette-text-primary:#14532d;--palette-text-secondary:#166534;--palette-text-disabled:rgba(20,83,45,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#bbf7d0;--palette-border-light:rgba(20,83,45,0.12);--palette-border-lighter:rgba(20,83,45,0.05);--palette-border-medium:#86efac;--palette-success-main:#22c55e;--palette-success-light:#dcfce7;--palette-success-dark:#15803d;--palette-success-border:#bbf7d0;--palette-error-main:#f43f5e;--palette-error-light:#ffe4e6;--palette-error-dark:#881337;--palette-error-border:#fecdd3;--palette-warning-main:#eab308;--palette-warning-light:#fefce8;--palette-warning-dark:#713f12;--palette-warning-border:#fef08a;--palette-info-main:#0ea5e9;--palette-info-light:#e0f2fe;--palette-info-dark:#0c4a6e;--palette-on-info:#14532d;--palette-info-border:#7dd3fc;--palette-accent-main:#ec4899;--palette-accent-light:#fce7f3;--palette-accent-dark:#be185d;--palette-on-accent:#ffffff;--palette-control-main:#365314;--palette-control-light:#4d7c0f;--palette-control-text:#ecfdf5;--palette-control-border:#65a30d}html[data-palette="spring"][data-theme="dark"]{--palette-primary-main:#4ade80;--palette-primary-light:#86efac;--palette-primary-dark:#16a34a;--palette-on-primary:#0f1f0f;--palette-secondary-main:#f472b6;--palette-secondary-light:#f9a8d4;--palette-secondary-dark:#ec4899;--palette-on-secondary:#0f1f0f;--palette-surface-main:#162816;--palette-surface-variant:#1f351f;--palette-surface-elevated:#2d4a2d;--palette-on-surface:#dcfce7;--palette-background-main:#060b06;--palette-background-dark:#0c140c;--palette-background-overlay:rgba(6,11,6,0.95);--palette-on-background:#bbf7d0;--palette-header-bg-start:rgba(6,11,6,0.98);--palette-header-bg-end:rgba(6,11,6,0.95);--palette-header-collapsed-bg-start:rgba(6,11,6,0.99);--palette-header-collapsed-bg-end:rgba(6,11,6,0.96);--palette-text-primary:#dcfce7;--palette-text-secondary:#bbf7d0;--palette-text-disabled:rgba(220,252,231,0.38);--palette-text-inverted:#0a120a;--palette-border-main:#166534;--palette-border-light:rgba(220,252,231,0.12);--palette-border-lighter:rgba(220,252,231,0.05);--palette-border-medium:#14532d;--palette-success-main:#22c55e;--palette-success-light:#14532d;--palette-success-dark:#4ade80;--palette-success-border:#166534;--palette-error-main:#f472b6;--palette-error-light:#881337;--palette-error-dark:#ec4899;--palette-error-border:#be185d;--palette-warning-main:#facc15;--palette-warning-light:#713f12;--palette-warning-dark:#eab308;--palette-warning-border:#a16207;--palette-info-main:#06b6d4;--palette-info-light:#164e63;--palette-info-dark:#22d3ee;--palette-on-info:#0a120a;--palette-info-border:#0891b2;--palette-accent-main:#f472b6;--palette-accent-light:#fce7f3;--palette-accent-dark:#db2777;--palette-on-accent:#dcfce7;--palette-control-main:#1a2e1a;--palette-control-light:#2d4a2d;--palette-control-text:#dcfce7;--palette-control-border:#166534}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html[data-palette="winter"]:not([data-theme="dark"]),html[data-palette="winter"][data-theme="light"]{--palette-primary-main:#0077be;--palette-primary-light:#5ba3d0;--palette-primary-dark:#005082;--palette-on-primary:#ffffff;--palette-secondary-main:#4682b4;--palette-secondary-light:#7ba7cc;--palette-secondary-dark:#2e5984;--palette-on-secondary:#ffffff;--palette-surface-main:#fafbfc;--palette-surface-variant:#e2e8f0;--palette-surface-elevated:#ffffff;--palette-on-surface:#0f172a;--palette-background-main:#f8fafc;--palette-background-dark:#f1f5f9;--palette-background-overlay:rgba(248,250,252,0.95);--palette-on-background:#475569;--palette-header-bg-start:rgba(248,250,252,0.98);--palette-header-bg-end:rgba(248,250,252,0.95);--palette-header-collapsed-bg-start:rgba(248,250,252,0.99);--palette-header-collapsed-bg-end:rgba(248,250,252,0.96);--palette-text-primary:#0f172a;--palette-text-secondary:#475569;--palette-text-disabled:rgba(15,23,42,0.38);--palette-text-inverted:#ffffff;--palette-border-main:#cbd5e1;--palette-border-light:rgba(15,23,42,0.12);--palette-border-lighter:rgba(15,23,42,0.05);--palette-border-medium:#94a3b8;--palette-success-main:#059669;--palette-success-light:#d1fae5;--palette-success-dark:#064e3b;--palette-success-border:#a7f3d0;--palette-error-main:#dc2626;--palette-error-light:#fee2e2;--palette-error-dark:#7f1d1d;--palette-error-border:#fecaca;--palette-warning-main:#d97706;--palette-warning-light:#fef3c7;--palette-warning-dark:#92400e;--palette-warning-border:#fde68a;--palette-info-main:#0284c7;--palette-info-light:#e0f2fe;--palette-info-dark:#0c4a6e;--palette-on-info:#ffffff;--palette-info-border:#7dd3fc;--palette-accent-main:#ec4899;--palette-accent-light:#fce7f3;--palette-accent-dark:#be185d;--palette-on-accent:#ffffff;--palette-control-main:#1e293b;--palette-control-light:#334155;--palette-control-text:#e2e8f0;--palette-control-border:#475569}html[data-palette="winter"][data-theme="dark"]{--palette-primary-main:#7dd3fc;--palette-primary-light:#bae6fd;--palette-primary-dark:#0369a1;--palette-on-primary:#020617;--palette-secondary-main:#94a3b8;--palette-secondary-light:#cbd5e1;--palette-secondary-dark:#64748b;--palette-on-secondary:#020617;--palette-surface-main:#172033;--palette-surface-variant:#1e293b;--palette-surface-elevated:#334155;--palette-on-surface:#f8fafc;--palette-background-main:#04080f;--palette-background-dark:#0a1018;--palette-background-overlay:rgba(15,23,42,0.95);--palette-on-background:#cbd5e1;--palette-header-bg-start:rgba(4,8,15,0.98);--palette-header-bg-end:rgba(4,8,15,0.95);--palette-header-collapsed-bg-start:rgba(4,8,15,0.99);--palette-header-collapsed-bg-end:rgba(4,8,15,0.96);--palette-text-primary:#f8fafc;--palette-text-secondary:#cbd5e1;--palette-text-disabled:rgba(248,250,252,0.38);--palette-text-inverted:#020617;--palette-border-main:#475569;--palette-border-light:rgba(248,250,252,0.12);--palette-border-lighter:rgba(248,250,252,0.05);--palette-border-medium:#334155;--palette-success-main:#34d399;--palette-success-light:#064e3b;--palette-success-dark:#10b981;--palette-success-border:#065f46;--palette-error-main:#f87171;--palette-error-light:#7f1d1d;--palette-error-dark:#ef4444;--palette-error-border:#991b1b;--palette-warning-main:#fb923c;--palette-warning-light:#9a3412;--palette-warning-dark:#f97316;--palette-warning-border:#c2410c;--palette-info-main:#38bdf8;--palette-info-light:#0c4a6e;--palette-info-dark:#0ea5e9;--palette-on-info:#020617;--palette-info-border:#0284c7;--palette-accent-main:#f472b6;--palette-accent-light:#fce7f3;--palette-accent-dark:#db2777;--palette-on-accent:#f8fafc;--palette-control-main:#1e293b;--palette-control-light:#334155;--palette-control-text:#e2e8f0;--palette-control-border:#475569}
|
|
File without changes
|
|
File without changes
|