@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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./manifest.schema.json",
3
- "version": "1.5.8",
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.8",
12
- "file": "palette-default.1.5.8.css",
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.8.min.css",
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.8",
26
- "file": "palette-autumn.1.5.8.css",
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.8.min.css",
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.8",
40
- "file": "palette-cosmic.1.5.8.css",
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.8.min.css",
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.8",
54
- "file": "palette-ocean.1.5.8.css",
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.8.min.css",
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.8",
68
- "file": "palette-spring.1.5.8.css",
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.8.min.css",
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.8",
82
- "file": "palette-winter.1.5.8.css",
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.8.min.css",
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.8",
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
- "import": "./dist/index.esm.js"
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
- "import": "./dist/config.esm.js"
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": "^7.0.6"
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