@qwickapps/react-framework 1.5.8 → 1.5.9
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/palettes/manifest.json +19 -19
- package/package.json +6 -4
- package/src/components/Markdown.tsx +2 -2
- package/src/components/SafeSpan.tsx +1 -1
- package/src/components/blocks/Article.tsx +1 -1
- package/src/components/blocks/Image.tsx +2 -2
- package/src/components/blocks/Section.tsx +4 -4
- package/src/components/blocks/Text.tsx +7 -7
- package/src/components/buttons/Button.tsx +3 -3
- /package/dist/palettes/{palette-autumn.1.5.8.css → palette-autumn.1.5.9.css} +0 -0
- /package/dist/palettes/{palette-autumn.1.5.8.min.css → palette-autumn.1.5.9.min.css} +0 -0
- /package/dist/palettes/{palette-cosmic.1.5.8.css → palette-cosmic.1.5.9.css} +0 -0
- /package/dist/palettes/{palette-cosmic.1.5.8.min.css → palette-cosmic.1.5.9.min.css} +0 -0
- /package/dist/palettes/{palette-default.1.5.8.css → palette-default.1.5.9.css} +0 -0
- /package/dist/palettes/{palette-default.1.5.8.min.css → palette-default.1.5.9.min.css} +0 -0
- /package/dist/palettes/{palette-ocean.1.5.8.css → palette-ocean.1.5.9.css} +0 -0
- /package/dist/palettes/{palette-ocean.1.5.8.min.css → palette-ocean.1.5.9.min.css} +0 -0
- /package/dist/palettes/{palette-spring.1.5.8.css → palette-spring.1.5.9.css} +0 -0
- /package/dist/palettes/{palette-spring.1.5.8.min.css → palette-spring.1.5.9.min.css} +0 -0
- /package/dist/palettes/{palette-winter.1.5.8.css → palette-winter.1.5.9.css} +0 -0
- /package/dist/palettes/{palette-winter.1.5.8.min.css → palette-winter.1.5.9.min.css} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./manifest.schema.json",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.9",
|
|
4
4
|
"palettes": [
|
|
5
5
|
{
|
|
6
6
|
"id": "default",
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"description": "Classic blue and neutral color scheme - the original QwickApps palette",
|
|
9
9
|
"author": "QwickApps",
|
|
10
10
|
"license": "PolyForm-Shield-1.0.0",
|
|
11
|
-
"version": "1.5.
|
|
12
|
-
"file": "palette-default.1.5.
|
|
11
|
+
"version": "1.5.9",
|
|
12
|
+
"file": "palette-default.1.5.9.css",
|
|
13
13
|
"primaryColor": "#007bff",
|
|
14
14
|
"inlined": true,
|
|
15
|
-
"fileMinified": "palette-default.1.5.
|
|
15
|
+
"fileMinified": "palette-default.1.5.9.min.css",
|
|
16
16
|
"fileLatest": "palette-default.latest.css",
|
|
17
17
|
"fileLatestMinified": "palette-default.latest.min.css"
|
|
18
18
|
},
|
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
"description": "Warm oranges, golden yellows, and earthy browns - inspired by fall foliage",
|
|
23
23
|
"author": "QwickApps",
|
|
24
24
|
"license": "PolyForm-Shield-1.0.0",
|
|
25
|
-
"version": "1.5.
|
|
26
|
-
"file": "palette-autumn.1.5.
|
|
25
|
+
"version": "1.5.9",
|
|
26
|
+
"file": "palette-autumn.1.5.9.css",
|
|
27
27
|
"primaryColor": "#ea580c",
|
|
28
28
|
"inlined": false,
|
|
29
|
-
"fileMinified": "palette-autumn.1.5.
|
|
29
|
+
"fileMinified": "palette-autumn.1.5.9.min.css",
|
|
30
30
|
"fileLatest": "palette-autumn.latest.css",
|
|
31
31
|
"fileLatestMinified": "palette-autumn.latest.min.css"
|
|
32
32
|
},
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"description": "Modern purple gradient for creative and tech brands - inspired by cosmic nebulae",
|
|
37
37
|
"author": "QwickApps",
|
|
38
38
|
"license": "PolyForm-Shield-1.0.0",
|
|
39
|
-
"version": "1.5.
|
|
40
|
-
"file": "palette-cosmic.1.5.
|
|
39
|
+
"version": "1.5.9",
|
|
40
|
+
"file": "palette-cosmic.1.5.9.css",
|
|
41
41
|
"primaryColor": "#8b5cf6",
|
|
42
42
|
"inlined": false,
|
|
43
|
-
"fileMinified": "palette-cosmic.1.5.
|
|
43
|
+
"fileMinified": "palette-cosmic.1.5.9.min.css",
|
|
44
44
|
"fileLatest": "palette-cosmic.latest.css",
|
|
45
45
|
"fileLatestMinified": "palette-cosmic.latest.min.css"
|
|
46
46
|
},
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
"description": "Deep blues, aqua teals, and seafoam greens - inspired by ocean depths",
|
|
51
51
|
"author": "QwickApps",
|
|
52
52
|
"license": "PolyForm-Shield-1.0.0",
|
|
53
|
-
"version": "1.5.
|
|
54
|
-
"file": "palette-ocean.1.5.
|
|
53
|
+
"version": "1.5.9",
|
|
54
|
+
"file": "palette-ocean.1.5.9.css",
|
|
55
55
|
"primaryColor": "#0891b2",
|
|
56
56
|
"inlined": false,
|
|
57
|
-
"fileMinified": "palette-ocean.1.5.
|
|
57
|
+
"fileMinified": "palette-ocean.1.5.9.min.css",
|
|
58
58
|
"fileLatest": "palette-ocean.latest.css",
|
|
59
59
|
"fileLatestMinified": "palette-ocean.latest.min.css"
|
|
60
60
|
},
|
|
@@ -64,11 +64,11 @@
|
|
|
64
64
|
"description": "Fresh greens, soft pinks, and bright yellows - inspired by spring blooms",
|
|
65
65
|
"author": "QwickApps",
|
|
66
66
|
"license": "PolyForm-Shield-1.0.0",
|
|
67
|
-
"version": "1.5.
|
|
68
|
-
"file": "palette-spring.1.5.
|
|
67
|
+
"version": "1.5.9",
|
|
68
|
+
"file": "palette-spring.1.5.9.css",
|
|
69
69
|
"primaryColor": "#16a34a",
|
|
70
70
|
"inlined": false,
|
|
71
|
-
"fileMinified": "palette-spring.1.5.
|
|
71
|
+
"fileMinified": "palette-spring.1.5.9.min.css",
|
|
72
72
|
"fileLatest": "palette-spring.latest.css",
|
|
73
73
|
"fileLatestMinified": "palette-spring.latest.min.css"
|
|
74
74
|
},
|
|
@@ -78,11 +78,11 @@
|
|
|
78
78
|
"description": "Cool blues, icy whites, and frosty grays - inspired by winter landscapes",
|
|
79
79
|
"author": "QwickApps",
|
|
80
80
|
"license": "PolyForm-Shield-1.0.0",
|
|
81
|
-
"version": "1.5.
|
|
82
|
-
"file": "palette-winter.1.5.
|
|
81
|
+
"version": "1.5.9",
|
|
82
|
+
"file": "palette-winter.1.5.9.css",
|
|
83
83
|
"primaryColor": "#0077be",
|
|
84
84
|
"inlined": false,
|
|
85
|
-
"fileMinified": "palette-winter.1.5.
|
|
85
|
+
"fileMinified": "palette-winter.1.5.9.min.css",
|
|
86
86
|
"fileLatest": "palette-winter.latest.css",
|
|
87
87
|
"fileLatestMinified": "palette-winter.latest.min.css"
|
|
88
88
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qwickapps/react-framework",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.9",
|
|
4
4
|
"description": "Complete React framework with responsive navigation, flexible layouts, theming system, and reusable components for building modern applications.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -11,13 +11,15 @@
|
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.esm.js",
|
|
14
15
|
"require": "./dist/index.js",
|
|
15
|
-
"
|
|
16
|
+
"default": "./dist/index.js"
|
|
16
17
|
},
|
|
17
18
|
"./config": {
|
|
18
19
|
"types": "./dist/config.d.ts",
|
|
20
|
+
"import": "./dist/config.esm.js",
|
|
19
21
|
"require": "./dist/config.js",
|
|
20
|
-
"
|
|
22
|
+
"default": "./dist/config.js"
|
|
21
23
|
},
|
|
22
24
|
"./dist/index.css": "./dist/index.css",
|
|
23
25
|
"./index.css": "./dist/index.css"
|
|
@@ -129,7 +131,7 @@
|
|
|
129
131
|
"ts-jest": "^29.4.1",
|
|
130
132
|
"ts-loader": "^9.5.2",
|
|
131
133
|
"typescript": "^5.9.2",
|
|
132
|
-
"vite": "^
|
|
134
|
+
"vite": "^6.0.0"
|
|
133
135
|
},
|
|
134
136
|
"publishConfig": {
|
|
135
137
|
"access": "public"
|
|
@@ -227,7 +227,7 @@ export class Markdown extends ModelView<MarkdownProps> {
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
// Transform div with markdown-content class to Markdown component
|
|
230
|
-
private static transformMarkdownDiv(element: Element): unknown {
|
|
230
|
+
private static transformMarkdownDiv(element: Element): Record<string, unknown> {
|
|
231
231
|
const sanitize = element.getAttribute('data-sanitize') !== 'false';
|
|
232
232
|
const placeholder = element.getAttribute('data-placeholder');
|
|
233
233
|
|
|
@@ -242,7 +242,7 @@ export class Markdown extends ModelView<MarkdownProps> {
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
// Transform elements with data-markdown attribute to Markdown component
|
|
245
|
-
private static transformDataMarkdown(element: Element): unknown {
|
|
245
|
+
private static transformDataMarkdown(element: Element): Record<string, unknown> {
|
|
246
246
|
const markdownContent = element.getAttribute('data-markdown') || element.textContent;
|
|
247
247
|
const sanitize = element.getAttribute('data-sanitize') !== 'false';
|
|
248
248
|
const placeholder = element.getAttribute('data-placeholder');
|
|
@@ -135,7 +135,7 @@ export class SafeSpan extends ModelView<SafeSpanProps> {
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
// Transform span elements to SafeSpan component
|
|
138
|
-
private static transformSafeSpan(element: Element): unknown {
|
|
138
|
+
private static transformSafeSpan(element: Element): Record<string, unknown> {
|
|
139
139
|
const placeholder = element.getAttribute('data-placeholder');
|
|
140
140
|
|
|
141
141
|
return {
|
|
@@ -371,7 +371,7 @@ export class Article extends ModelView<ArticleProps> {
|
|
|
371
371
|
}
|
|
372
372
|
|
|
373
373
|
// Transform article elements to Article component
|
|
374
|
-
private static transformArticle(element: Element): unknown {
|
|
374
|
+
private static transformArticle(element: Element): Record<string, unknown> {
|
|
375
375
|
const skipHeader = element.getAttribute('data-skip-header') === 'true';
|
|
376
376
|
|
|
377
377
|
return {
|
|
@@ -246,7 +246,7 @@ interface PatternRegistry {
|
|
|
246
246
|
};
|
|
247
247
|
|
|
248
248
|
// Transform img elements to Image component
|
|
249
|
-
function transformImage(element: Element): unknown {
|
|
249
|
+
function transformImage(element: Element): Record<string, unknown> {
|
|
250
250
|
const src = element.getAttribute('src') || '';
|
|
251
251
|
const alt = element.getAttribute('alt') || '';
|
|
252
252
|
const width = element.getAttribute('width');
|
|
@@ -266,7 +266,7 @@ function transformImage(element: Element): unknown {
|
|
|
266
266
|
}
|
|
267
267
|
|
|
268
268
|
// Transform figure > img elements to Image component with caption support
|
|
269
|
-
function transformFigureImage(element: Element): unknown {
|
|
269
|
+
function transformFigureImage(element: Element): Record<string, unknown> {
|
|
270
270
|
const figure = element.closest('figure');
|
|
271
271
|
const figcaption = figure?.querySelector('figcaption');
|
|
272
272
|
const caption = figcaption?.textContent || '';
|
|
@@ -172,17 +172,17 @@ interface PatternRegistry {
|
|
|
172
172
|
|
|
173
173
|
// Register section element pattern
|
|
174
174
|
if (typedRegistry.hasPattern && !typedRegistry.hasPattern('section')) {
|
|
175
|
-
typedRegistry.registerPattern?.('section', (Section as unknown as { transformSection: (element: Element) => unknown }).transformSection);
|
|
175
|
+
typedRegistry.registerPattern?.('section', (Section as unknown as { transformSection: (element: Element) => Record<string, unknown> }).transformSection);
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
// Register section with specific classes
|
|
179
179
|
if (typedRegistry.hasPattern && !typedRegistry.hasPattern('section.blog-section')) {
|
|
180
|
-
typedRegistry.registerPattern?.('section.blog-section', (Section as unknown as { transformBlogSection: (element: Element) => unknown }).transformBlogSection);
|
|
180
|
+
typedRegistry.registerPattern?.('section.blog-section', (Section as unknown as { transformBlogSection: (element: Element) => Record<string, unknown> }).transformBlogSection);
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
183
|
|
|
184
184
|
// Transform generic section elements to Section component
|
|
185
|
-
(Section as unknown as { transformSection: (element: Element) => unknown }).transformSection = (element: Element): unknown => {
|
|
185
|
+
(Section as unknown as { transformSection: (element: Element) => Record<string, unknown> }).transformSection = (element: Element): Record<string, unknown> => {
|
|
186
186
|
const padding = element.getAttribute('data-padding') || 'medium';
|
|
187
187
|
const background = element.getAttribute('data-background');
|
|
188
188
|
const contentMaxWidth = element.getAttribute('data-max-width') || 'lg';
|
|
@@ -200,7 +200,7 @@ interface PatternRegistry {
|
|
|
200
200
|
};
|
|
201
201
|
|
|
202
202
|
// Transform blog section elements to Section component with specific styling
|
|
203
|
-
(Section as unknown as { transformBlogSection: (element: Element) => unknown }).transformBlogSection = (element: Element): unknown => {
|
|
203
|
+
(Section as unknown as { transformBlogSection: (element: Element) => Record<string, unknown> }).transformBlogSection = (element: Element): Record<string, unknown> => {
|
|
204
204
|
const padding = element.getAttribute('data-padding') || 'large';
|
|
205
205
|
const background = element.getAttribute('data-background') || 'var(--theme-surface)';
|
|
206
206
|
|
|
@@ -123,15 +123,15 @@ export const Text: SerializableComponent<TextProps> = createSerializableView<Tex
|
|
|
123
123
|
// Type for pattern registry with basic methods
|
|
124
124
|
interface PatternRegistry {
|
|
125
125
|
hasPattern(pattern: string): boolean;
|
|
126
|
-
registerPattern(pattern: string, handler: (element: Element) => unknown): void;
|
|
126
|
+
registerPattern(pattern: string, handler: (element: Element) => Record<string, unknown>): void;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
// Type for Text component with pattern handlers
|
|
130
130
|
interface TextComponentWithPatterns {
|
|
131
131
|
registerPatternHandlers: (registry: PatternRegistry) => void;
|
|
132
|
-
transformParagraph: (element: Element) => unknown
|
|
133
|
-
transformHeading: (element: Element, tagName: string) => unknown
|
|
134
|
-
transformSpan: (element: Element) => unknown
|
|
132
|
+
transformParagraph: (element: Element) => Record<string, unknown>;
|
|
133
|
+
transformHeading: (element: Element, tagName: string) => Record<string, unknown>;
|
|
134
|
+
transformSpan: (element: Element) => Record<string, unknown>;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
// Register HTML patterns that Text component can handle
|
|
@@ -160,7 +160,7 @@ interface TextComponentWithPatterns {
|
|
|
160
160
|
};
|
|
161
161
|
|
|
162
162
|
// Transform paragraph elements to Text component
|
|
163
|
-
(Text as unknown as TextComponentWithPatterns).transformParagraph = (element: Element): unknown => {
|
|
163
|
+
(Text as unknown as TextComponentWithPatterns).transformParagraph = (element: Element): Record<string, unknown> => {
|
|
164
164
|
return {
|
|
165
165
|
tagName: 'Text',
|
|
166
166
|
version: '1.0.0',
|
|
@@ -173,7 +173,7 @@ interface TextComponentWithPatterns {
|
|
|
173
173
|
};
|
|
174
174
|
|
|
175
175
|
// Transform heading elements to Text component
|
|
176
|
-
(Text as unknown as TextComponentWithPatterns).transformHeading = (element: Element, tagName: string): unknown => {
|
|
176
|
+
(Text as unknown as TextComponentWithPatterns).transformHeading = (element: Element, tagName: string): Record<string, unknown> => {
|
|
177
177
|
const variantMap: { [key: string]: string } = {
|
|
178
178
|
'h1': 'h1',
|
|
179
179
|
'h2': 'h2',
|
|
@@ -195,7 +195,7 @@ interface TextComponentWithPatterns {
|
|
|
195
195
|
};
|
|
196
196
|
|
|
197
197
|
// Transform span elements to Text component
|
|
198
|
-
(Text as unknown as TextComponentWithPatterns).transformSpan = (element: Element): unknown => {
|
|
198
|
+
(Text as unknown as TextComponentWithPatterns).transformSpan = (element: Element): Record<string, unknown> => {
|
|
199
199
|
return {
|
|
200
200
|
tagName: 'Text',
|
|
201
201
|
version: '1.0.0',
|
|
@@ -330,7 +330,7 @@ export const Button: SerializableComponent<ButtonProps> = createSerializableView
|
|
|
330
330
|
};
|
|
331
331
|
|
|
332
332
|
// Transform button elements to Button component
|
|
333
|
-
function transformButton(element: Element): unknown {
|
|
333
|
+
function transformButton(element: Element): Record<string, unknown> {
|
|
334
334
|
const variant = element.getAttribute('data-variant') ||
|
|
335
335
|
(element.className.includes('btn-primary') ? 'primary' :
|
|
336
336
|
element.className.includes('btn-outlined') ? 'outlined' : 'secondary');
|
|
@@ -351,7 +351,7 @@ function transformButton(element: Element): unknown {
|
|
|
351
351
|
}
|
|
352
352
|
|
|
353
353
|
// Transform input type="button" elements to Button component
|
|
354
|
-
function transformInputButton(element: Element): unknown {
|
|
354
|
+
function transformInputButton(element: Element): Record<string, unknown> {
|
|
355
355
|
const disabled = element.hasAttribute('disabled');
|
|
356
356
|
const value = element.getAttribute('value') || 'Button';
|
|
357
357
|
|
|
@@ -366,7 +366,7 @@ function transformInputButton(element: Element): unknown {
|
|
|
366
366
|
}
|
|
367
367
|
|
|
368
368
|
// Transform input type="submit" elements to Button component
|
|
369
|
-
function transformSubmitButton(element: Element): unknown {
|
|
369
|
+
function transformSubmitButton(element: Element): Record<string, unknown> {
|
|
370
370
|
const disabled = element.hasAttribute('disabled');
|
|
371
371
|
const value = element.getAttribute('value') || 'Submit';
|
|
372
372
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|