@qwickapps/react-framework 1.3.4 → 1.4.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.
Files changed (325) hide show
  1. package/README.md +1688 -2
  2. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts +66 -0
  3. package/dist/__tests__/schemas/transformers/MockSerializableComponent.d.ts.map +1 -0
  4. package/dist/components/ErrorBoundary.d.ts +7 -0
  5. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  6. package/dist/components/Html.d.ts +28 -18
  7. package/dist/components/Html.d.ts.map +1 -1
  8. package/dist/components/Logo.d.ts +12 -35
  9. package/dist/components/Logo.d.ts.map +1 -1
  10. package/dist/components/Markdown.d.ts +18 -13
  11. package/dist/components/Markdown.d.ts.map +1 -1
  12. package/dist/components/QwickApp.d.ts +16 -3
  13. package/dist/components/QwickApp.d.ts.map +1 -1
  14. package/dist/components/QwickIcon.d.ts +23 -0
  15. package/dist/components/QwickIcon.d.ts.map +1 -0
  16. package/dist/components/SafeSpan.d.ts +12 -5
  17. package/dist/components/SafeSpan.d.ts.map +1 -1
  18. package/dist/components/Scaffold.d.ts.map +1 -1
  19. package/dist/components/base/ModelView.d.ts +101 -0
  20. package/dist/components/base/ModelView.d.ts.map +1 -0
  21. package/dist/components/base/index.d.ts +11 -0
  22. package/dist/components/base/index.d.ts.map +1 -0
  23. package/dist/components/blocks/Article.d.ts +12 -2
  24. package/dist/components/blocks/Article.d.ts.map +1 -1
  25. package/dist/components/blocks/Code.d.ts +13 -2
  26. package/dist/components/blocks/Code.d.ts.map +1 -1
  27. package/dist/components/blocks/Content.d.ts.map +1 -1
  28. package/dist/components/blocks/CoverImageHeader.d.ts.map +1 -1
  29. package/dist/components/blocks/FeatureCard.d.ts.map +1 -1
  30. package/dist/components/blocks/FeatureGrid.d.ts.map +1 -1
  31. package/dist/components/blocks/Footer.d.ts.map +1 -1
  32. package/dist/components/blocks/HeroBlock.d.ts +27 -13
  33. package/dist/components/blocks/HeroBlock.d.ts.map +1 -1
  34. package/dist/components/blocks/Image.d.ts +41 -0
  35. package/dist/components/blocks/Image.d.ts.map +1 -0
  36. package/dist/components/blocks/PageBannerHeader.d.ts.map +1 -1
  37. package/dist/components/blocks/ProductCard.d.ts.map +1 -1
  38. package/dist/components/blocks/Section.d.ts +16 -2
  39. package/dist/components/blocks/Section.d.ts.map +1 -1
  40. package/dist/components/blocks/Text.d.ts +41 -0
  41. package/dist/components/blocks/Text.d.ts.map +1 -0
  42. package/dist/components/blocks/index.d.ts +4 -0
  43. package/dist/components/blocks/index.d.ts.map +1 -1
  44. package/dist/components/buttons/Button.d.ts +23 -7
  45. package/dist/components/buttons/Button.d.ts.map +1 -1
  46. package/dist/components/forms/FormBlock.d.ts +19 -13
  47. package/dist/components/forms/FormBlock.d.ts.map +1 -1
  48. package/dist/components/index.d.ts +4 -0
  49. package/dist/components/index.d.ts.map +1 -1
  50. package/dist/components/input/ChoiceInputField.d.ts +17 -11
  51. package/dist/components/input/ChoiceInputField.d.ts.map +1 -1
  52. package/dist/components/input/HtmlInputField.d.ts +17 -11
  53. package/dist/components/input/HtmlInputField.d.ts.map +1 -1
  54. package/dist/components/input/SelectInputField.d.ts +16 -10
  55. package/dist/components/input/SelectInputField.d.ts.map +1 -1
  56. package/dist/components/input/SwitchInputField.d.ts +16 -10
  57. package/dist/components/input/SwitchInputField.d.ts.map +1 -1
  58. package/dist/components/input/TextField.d.ts.map +1 -1
  59. package/dist/components/input/TextInputField.d.ts +16 -11
  60. package/dist/components/input/TextInputField.d.ts.map +1 -1
  61. package/dist/components/layout/GridCell.d.ts +23 -6
  62. package/dist/components/layout/GridCell.d.ts.map +1 -1
  63. package/dist/components/layout/GridLayout.d.ts +24 -23
  64. package/dist/components/layout/GridLayout.d.ts.map +1 -1
  65. package/dist/components/pages/FormPage.d.ts.map +1 -1
  66. package/dist/components/pages/Page.d.ts +49 -87
  67. package/dist/components/pages/Page.d.ts.map +1 -1
  68. package/dist/components/pages/index.d.ts +2 -2
  69. package/dist/components/pages/index.d.ts.map +1 -1
  70. package/dist/config/AppConfig.d.ts +49 -0
  71. package/dist/config/AppConfig.d.ts.map +1 -0
  72. package/dist/config/AppConfigBuilder.d.ts +75 -0
  73. package/dist/config/AppConfigBuilder.d.ts.map +1 -0
  74. package/dist/config/index.d.ts +13 -0
  75. package/dist/config/index.d.ts.map +1 -0
  76. package/dist/config/types.d.ts +130 -0
  77. package/dist/config/types.d.ts.map +1 -0
  78. package/dist/config.d.ts +15 -0
  79. package/dist/config.d.ts.map +1 -0
  80. package/dist/config.esm.js +451 -0
  81. package/dist/config.js +455 -0
  82. package/dist/contexts/PrintModeContext.d.ts +27 -0
  83. package/dist/contexts/PrintModeContext.d.ts.map +1 -0
  84. package/dist/contexts/QwickAppContext.d.ts +2 -2
  85. package/dist/contexts/QwickAppContext.d.ts.map +1 -1
  86. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  87. package/dist/contexts/index.d.ts +2 -0
  88. package/dist/contexts/index.d.ts.map +1 -1
  89. package/dist/hooks/index.d.ts +2 -0
  90. package/dist/hooks/index.d.ts.map +1 -1
  91. package/dist/hooks/usePrintMode.d.ts +39 -0
  92. package/dist/hooks/usePrintMode.d.ts.map +1 -0
  93. package/dist/index.css +1 -1
  94. package/dist/index.d.ts +1 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.esm.css +1 -1
  97. package/dist/index.esm.js +20722 -16021
  98. package/dist/index.js +20725 -16010
  99. package/dist/schemas/CodeSchema.d.ts +2 -1
  100. package/dist/schemas/CodeSchema.d.ts.map +1 -1
  101. package/dist/schemas/CollapsibleLayoutSchema.d.ts +2 -1
  102. package/dist/schemas/CollapsibleLayoutSchema.d.ts.map +1 -1
  103. package/dist/schemas/ContentSchema.d.ts +2 -1
  104. package/dist/schemas/ContentSchema.d.ts.map +1 -1
  105. package/dist/schemas/GridCellSchema.d.ts +25 -0
  106. package/dist/schemas/GridCellSchema.d.ts.map +1 -0
  107. package/dist/schemas/GridLayoutSchema.d.ts +23 -0
  108. package/dist/schemas/GridLayoutSchema.d.ts.map +1 -0
  109. package/dist/schemas/HtmlSchema.d.ts +14 -0
  110. package/dist/schemas/HtmlSchema.d.ts.map +1 -0
  111. package/dist/schemas/ImageSchema.d.ts +32 -0
  112. package/dist/schemas/ImageSchema.d.ts.map +1 -0
  113. package/dist/schemas/LogoSchema.d.ts +35 -0
  114. package/dist/schemas/LogoSchema.d.ts.map +1 -0
  115. package/dist/schemas/MarkdownSchema.d.ts +14 -0
  116. package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
  117. package/dist/schemas/PageTemplateSchema.d.ts +31 -0
  118. package/dist/schemas/PageTemplateSchema.d.ts.map +1 -0
  119. package/dist/schemas/PrintConfigSchema.d.ts +31 -0
  120. package/dist/schemas/PrintConfigSchema.d.ts.map +1 -0
  121. package/dist/schemas/SectionSchema.d.ts +2 -1
  122. package/dist/schemas/SectionSchema.d.ts.map +1 -1
  123. package/dist/schemas/TextSchema.d.ts +37 -0
  124. package/dist/schemas/TextSchema.d.ts.map +1 -0
  125. package/dist/schemas/ViewModelSchema.d.ts +23 -0
  126. package/dist/schemas/ViewModelSchema.d.ts.map +1 -0
  127. package/dist/schemas/index.d.ts +15 -1
  128. package/dist/schemas/index.d.ts.map +1 -1
  129. package/dist/schemas/transformers/ComponentTransformer.d.ts +116 -0
  130. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -0
  131. package/dist/schemas/transformers/ReactNodeTransformer.d.ts +53 -0
  132. package/dist/schemas/transformers/ReactNodeTransformer.d.ts.map +1 -0
  133. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts +66 -0
  134. package/dist/schemas/transformers/__tests__/MockSerializableComponent.d.ts.map +1 -0
  135. package/dist/schemas/transformers/registry.d.ts +15 -0
  136. package/dist/schemas/transformers/registry.d.ts.map +1 -0
  137. package/dist/schemas/types/Serializable.d.ts +46 -0
  138. package/dist/schemas/types/Serializable.d.ts.map +1 -0
  139. package/dist/utils/htmlTransform.d.ts.map +1 -1
  140. package/dist/utils/reactUtils.d.ts +12 -3
  141. package/dist/utils/reactUtils.d.ts.map +1 -1
  142. package/package.json +17 -3
  143. package/src/{components/__tests__ → __tests__/components}/AccessibilityProvider.test.tsx +1 -1
  144. package/src/{components/__tests__ → __tests__/components}/Article.test.tsx +1 -1
  145. package/src/{components/__tests__ → __tests__/components}/Breadcrumbs.test.tsx +1 -1
  146. package/src/{components/__tests__ → __tests__/components}/Button.test.tsx +1 -1
  147. package/src/{components/__tests__ → __tests__/components}/CardListGrid.test.tsx +2 -2
  148. package/src/{components/__tests__ → __tests__/components}/ChoiceInputField.test.tsx +1 -1
  149. package/src/{components/__tests__ → __tests__/components}/Code.test.tsx +1 -1
  150. package/src/{components/__tests__ → __tests__/components}/Content.integration.test.tsx +1 -1
  151. package/src/{components/__tests__ → __tests__/components}/Content.test.tsx +1 -1
  152. package/src/{components/__tests__ → __tests__/components}/CoverImageHeader.test.tsx +2 -2
  153. package/src/{components/__tests__ → __tests__/components}/ErrorBoundary.test.tsx +1 -1
  154. package/src/{components/__tests__ → __tests__/components}/FeatureCard.integration.test.tsx +2 -2
  155. package/src/{components/__tests__ → __tests__/components}/FeatureGrid.integration.test.tsx +2 -2
  156. package/src/{components/__tests__ → __tests__/components}/FeatureGrid.test.tsx +2 -2
  157. package/src/{components/__tests__ → __tests__/components}/Footer.test.tsx +4 -4
  158. package/src/{components/__tests__ → __tests__/components}/FormBlock.test.tsx +1 -1
  159. package/src/{components/__tests__ → __tests__/components}/HeroBlock.integration.test.tsx +2 -2
  160. package/src/{components/__tests__ → __tests__/components}/HeroBlock.test.tsx +233 -7
  161. package/src/{components/__tests__ → __tests__/components}/Html.test.tsx +11 -2
  162. package/src/{components/__tests__ → __tests__/components}/HtmlInputField.test.tsx +3 -3
  163. package/src/__tests__/components/Logo.test.js +3 -3
  164. package/src/{components/__tests__ → __tests__/components}/Markdown.test.tsx +1 -1
  165. package/src/{components/__tests__ → __tests__/components}/PageBannerHeader.test.tsx +3 -3
  166. package/src/{components/__tests__ → __tests__/components}/PaletteSwitcher.test.tsx +3 -3
  167. package/src/{components/__tests__ → __tests__/components}/ProductCard.test.tsx +4 -4
  168. package/src/{components/__tests__ → __tests__/components}/SafeSpan.integration.test.tsx +2 -2
  169. package/src/{components/__tests__ → __tests__/components}/SafeSpan.simple.test.tsx +1 -1
  170. package/src/{components/__tests__ → __tests__/components}/SafeSpan.test.tsx +1 -1
  171. package/src/{components/__tests__ → __tests__/components}/Section.integration.test.tsx +1 -1
  172. package/src/{components/__tests__ → __tests__/components}/Section.test.tsx +1 -1
  173. package/src/{components/__tests__ → __tests__/components}/SelectInputField.test.tsx +1 -1
  174. package/src/{components/__tests__ → __tests__/components}/TextInputField.test.tsx +3 -3
  175. package/src/{components/__tests__ → __tests__/components}/ThemeSwitcher.test.tsx +3 -3
  176. package/src/__tests__/components/base/ModelView.test.tsx +220 -0
  177. package/src/__tests__/components/blocks/Code.performance.test.tsx +625 -0
  178. package/src/__tests__/components/blocks/Code.serialization.test.tsx +507 -0
  179. package/src/__tests__/components/blocks/HeroBlock.serialization.test.tsx +414 -0
  180. package/src/__tests__/components/blocks/Image.serialization.test.tsx +257 -0
  181. package/src/__tests__/components/blocks/Section.serialization.test.tsx +553 -0
  182. package/src/__tests__/components/blocks/Text.performance.test.tsx +442 -0
  183. package/src/__tests__/components/blocks/Text.serialization.test.tsx +491 -0
  184. package/src/__tests__/components/buttons/Button.serialization.test.tsx +443 -0
  185. package/src/__tests__/components/input/FormComponents.serialization.test.tsx +482 -0
  186. package/src/__tests__/components/input/SelectInputField.serialization.test.tsx +439 -0
  187. package/src/__tests__/components/input/TextInputField.serialization.test.tsx +359 -0
  188. package/src/{components/layout/CollapsibleLayout/__tests__ → __tests__/components/layout}/CollapsibleLayout.test.tsx +4 -4
  189. package/src/__tests__/components/layout/GridCell.serialization.test.tsx +403 -0
  190. package/src/__tests__/components/layout/GridLayout.serialization.test.tsx +311 -0
  191. package/src/__tests__/hooks/usePrintMode.test.ts +89 -0
  192. package/src/__tests__/schemas/PageTemplateSchema.test.ts +161 -0
  193. package/src/__tests__/schemas/PrintConfigSchema.test.ts +127 -0
  194. package/src/__tests__/schemas/ViewModelSchema.test.ts +80 -0
  195. package/src/__tests__/schemas/transformers/ComponentSerializationPatterns.test.tsx +602 -0
  196. package/src/__tests__/schemas/transformers/ComponentTransformer.htmlPatterns.test.ts +301 -0
  197. package/src/__tests__/schemas/transformers/ComponentTransformer.test.ts +521 -0
  198. package/src/__tests__/schemas/transformers/CrossBrowserCompatibility.test.ts +586 -0
  199. package/src/__tests__/schemas/transformers/MockSerializableComponent.ts +103 -0
  200. package/src/__tests__/schemas/transformers/RealWorldScenarios.test.tsx +1165 -0
  201. package/src/__tests__/schemas/transformers/SerializationErrorHandling.test.ts +602 -0
  202. package/src/__tests__/schemas/transformers/SerializationIntegration.test.tsx +691 -0
  203. package/src/__tests__/schemas/transformers/SerializationPerformance.test.ts +460 -0
  204. package/src/__tests__/schemas/transformers/TestAutomation.test.ts +597 -0
  205. package/src/{utils/__tests__ → __tests__/utils}/nested-dom-fix.test.tsx +1 -1
  206. package/src/components/ErrorBoundary.tsx +8 -8
  207. package/src/components/Html.tsx +147 -44
  208. package/src/components/Logo.tsx +198 -100
  209. package/src/components/Markdown.tsx +125 -16
  210. package/src/components/QwickApp.tsx +64 -31
  211. package/src/components/QwickIcon.tsx +59 -0
  212. package/src/components/SafeSpan.tsx +65 -10
  213. package/src/components/Scaffold.tsx +2 -8
  214. package/src/components/base/ModelView.tsx +199 -0
  215. package/src/components/base/index.ts +11 -0
  216. package/src/components/blocks/Article.tsx +57 -18
  217. package/src/components/blocks/Code.md +529 -0
  218. package/src/components/blocks/Code.tsx +102 -15
  219. package/src/components/blocks/Content.tsx +25 -77
  220. package/src/components/blocks/CoverImageHeader.tsx +9 -4
  221. package/src/components/blocks/FeatureCard.tsx +1 -2
  222. package/src/components/blocks/FeatureGrid.tsx +19 -1
  223. package/src/components/blocks/Footer.tsx +13 -1
  224. package/src/components/blocks/HeroBlock.tsx +87 -20
  225. package/src/components/blocks/Image.tsx +395 -0
  226. package/src/components/blocks/PageBannerHeader.tsx +14 -12
  227. package/src/components/blocks/ProductCard.tsx +51 -52
  228. package/src/components/blocks/Section.tsx +113 -8
  229. package/src/components/blocks/Text.tsx +285 -0
  230. package/src/components/blocks/index.ts +4 -0
  231. package/src/components/buttons/Button.tsx +184 -15
  232. package/src/components/forms/FormBlock.tsx +70 -17
  233. package/src/components/index.ts +5 -0
  234. package/src/components/input/ChoiceInputField.tsx +48 -18
  235. package/src/components/input/HtmlInputField.tsx +48 -18
  236. package/src/components/input/SelectInputField.tsx +48 -16
  237. package/src/components/input/SwitchInputField.tsx +48 -17
  238. package/src/components/input/TextField.tsx +41 -1
  239. package/src/components/input/TextInputField.tsx +52 -18
  240. package/src/components/layout/GridCell.tsx +118 -9
  241. package/src/components/layout/GridLayout.tsx +125 -24
  242. package/src/components/pages/FormPage.tsx +0 -1
  243. package/src/components/pages/Page.css +304 -332
  244. package/src/components/pages/Page.tsx +307 -255
  245. package/src/components/pages/index.ts +2 -2
  246. package/src/config/AppConfig.ts +133 -0
  247. package/src/config/AppConfigBuilder.ts +421 -0
  248. package/src/config/__tests__/AppConfig.test.ts +385 -0
  249. package/src/config/__tests__/AppConfigBuilder.test.ts +432 -0
  250. package/src/config/index.ts +24 -0
  251. package/src/config/types.ts +170 -0
  252. package/src/config.ts +25 -0
  253. package/src/contexts/PrintModeContext.tsx +332 -0
  254. package/src/contexts/QwickAppContext.tsx +2 -2
  255. package/src/contexts/ThemeContext.tsx +1 -2
  256. package/src/contexts/index.ts +2 -0
  257. package/src/hooks/index.ts +5 -1
  258. package/src/hooks/usePrintMode.ts +73 -0
  259. package/src/index.ts +3 -0
  260. package/src/schemas/CodeSchema.ts +3 -3
  261. package/src/schemas/CollapsibleLayoutSchema.ts +2 -1
  262. package/src/schemas/ContentSchema.ts +2 -1
  263. package/src/schemas/GridCellSchema.ts +164 -0
  264. package/src/schemas/GridLayoutSchema.ts +133 -0
  265. package/src/schemas/HtmlSchema.ts +47 -0
  266. package/src/schemas/ImageSchema.ts +235 -0
  267. package/src/schemas/LogoSchema.ts +241 -0
  268. package/src/schemas/MarkdownSchema.ts +47 -0
  269. package/src/schemas/PageTemplateSchema.ts +186 -0
  270. package/src/schemas/PrintConfigSchema.ts +207 -0
  271. package/src/schemas/README.md +661 -0
  272. package/src/schemas/SectionSchema.ts +2 -1
  273. package/src/schemas/TextSchema.ts +329 -0
  274. package/src/schemas/ViewModelSchema.ts +115 -0
  275. package/src/schemas/index.ts +21 -2
  276. package/src/schemas/transformers/ComponentTransformer.ts +403 -0
  277. package/src/schemas/transformers/ReactNodeTransformer.ts +236 -0
  278. package/src/schemas/transformers/registry.ts +72 -0
  279. package/src/schemas/types/Serializable.ts +51 -0
  280. package/src/stories/AccessibilityProvider.stories.tsx +253 -253
  281. package/src/stories/Article.stories.tsx +433 -433
  282. package/src/stories/Button.stories.tsx +1 -1
  283. package/src/stories/CardListGrid.stories.tsx +451 -451
  284. package/src/stories/ChoiceInputField.stories.tsx +503 -503
  285. package/src/stories/Code.stories.tsx +1 -1
  286. package/src/stories/CollapsibleLayout.stories.tsx +1414 -1414
  287. package/src/stories/Content.stories.tsx +393 -393
  288. package/src/stories/CoverImageHeader.stories.tsx +701 -701
  289. package/src/stories/DataBinding.advanced.stories.tsx +432 -432
  290. package/src/stories/DataProvider.stories.tsx +1192 -1192
  291. package/src/stories/FeatureCard.stories.tsx +557 -557
  292. package/src/stories/FeatureGrid.stories.tsx +594 -594
  293. package/src/stories/Footer.stories.tsx +640 -640
  294. package/src/stories/FormBlock.stories.tsx +760 -760
  295. package/src/stories/FormComponents.stories.tsx +349 -541
  296. package/src/stories/GridCell.stories.tsx +417 -0
  297. package/src/stories/GridLayout.stories.tsx +353 -0
  298. package/src/stories/HeroBlock.stories.tsx +862 -373
  299. package/src/stories/HtmlInputField.stories.tsx +474 -474
  300. package/src/stories/Image.stories.tsx +819 -0
  301. package/src/stories/Introduction.stories.tsx +667 -667
  302. package/src/stories/LayoutBlocks.stories.tsx +324 -324
  303. package/src/stories/Logo.stories.tsx +165 -6
  304. package/src/stories/Markdown.stories.tsx +137 -137
  305. package/src/stories/ModelView.stories.tsx +477 -0
  306. package/src/stories/Page.stories.tsx +688 -688
  307. package/src/stories/PageBannerHeader.stories.tsx +864 -864
  308. package/src/stories/PaletteSwitcher.stories.tsx +119 -119
  309. package/src/stories/ProductCard.stories.tsx +424 -424
  310. package/src/stories/QwickApp.stories.tsx +368 -368
  311. package/src/stories/ResponsiveMenu.stories.tsx +249 -249
  312. package/src/stories/SafeSpan.stories.tsx +531 -531
  313. package/src/stories/Section.stories.tsx +90 -2
  314. package/src/stories/SelectInputField.stories.tsx +524 -524
  315. package/src/stories/Text.stories.tsx +560 -0
  316. package/src/stories/TextInputField.stories.tsx +443 -443
  317. package/src/stories/ThemeSwitcher.stories.tsx +123 -123
  318. package/src/utils/htmlTransform.tsx +74 -53
  319. package/src/utils/reactUtils.tsx +57 -6
  320. package/dist/index.bundled.css +0 -12
  321. /package/src/{hooks/__tests__ → __tests__/hooks}/useDataBinding.test.tsx.disabled +0 -0
  322. /package/src/{schemas/__tests__ → __tests__/schemas}/builders.test.ts +0 -0
  323. /package/src/{utils/__tests__ → __tests__/utils}/createDataDrivenComponent.test.tsx.disabled +0 -0
  324. /package/src/{utils/__tests__ → __tests__/utils}/htmlTransform.test.tsx +0 -0
  325. /package/src/{utils/__tests__ → __tests__/utils}/optional-logging.test.ts +0 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * MockSerializableComponent - Test helper component implementing new SerializableConstructor interface
3
+ *
4
+ * NOTE: This is not a test file - it's a helper module for testing.
5
+ * Jest should not run this as a test suite.
6
+ *
7
+ * Demonstrates component self-declaration pattern with static tagName and version properties
8
+ * Used for testing the updated ComponentTransformer architecture
9
+ *
10
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
11
+ */
12
+ import React, { ReactElement } from 'react';
13
+ import { Serializable, SerializableConstructor } from '../../types/Serializable';
14
+ /**
15
+ * Mock component implementing the new Serializable interface with self-declaration
16
+ */
17
+ export declare class MockSerializableComponent implements Serializable {
18
+ props: {
19
+ title?: string;
20
+ content?: string;
21
+ variant?: string;
22
+ children?: React.ReactNode;
23
+ };
24
+ static readonly tagName = "MockComponent";
25
+ static readonly version = "1.0.0";
26
+ constructor(props: {
27
+ title?: string;
28
+ content?: string;
29
+ variant?: string;
30
+ children?: React.ReactNode;
31
+ });
32
+ static fromJson(jsonData: any): ReactElement;
33
+ toJson(): any;
34
+ }
35
+ export declare const MockSerializableComponentClass: SerializableConstructor;
36
+ /**
37
+ * Alternative mock component with different tagName and version for testing conflicts
38
+ */
39
+ export declare class AlternativeMockComponent implements Serializable {
40
+ props: {
41
+ label?: string;
42
+ type?: string;
43
+ active?: boolean;
44
+ };
45
+ static readonly tagName = "AlternativeComponent";
46
+ static readonly version = "2.1.0";
47
+ constructor(props: {
48
+ label?: string;
49
+ type?: string;
50
+ active?: boolean;
51
+ });
52
+ static fromJson(jsonData: any): ReactElement;
53
+ toJson(): any;
54
+ }
55
+ export declare const AlternativeMockComponentClass: SerializableConstructor;
56
+ /**
57
+ * Mock component missing required static properties (for error testing)
58
+ */
59
+ export declare class InvalidMockComponent implements Serializable {
60
+ props: any;
61
+ constructor(props: any);
62
+ static fromJson(jsonData: any): ReactElement;
63
+ toJson(): any;
64
+ }
65
+ export declare const InvalidMockComponentClass: any;
66
+ //# sourceMappingURL=MockSerializableComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockSerializableComponent.d.ts","sourceRoot":"","sources":["../../../../src/schemas/transformers/__tests__/MockSerializableComponent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEjF;;GAEG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAIzC,KAAK,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC5B;IARD,MAAM,CAAC,QAAQ,CAAC,OAAO,mBAAmB;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;gBAEf,KAAK,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KAC5B;IAED,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAW5C,MAAM,IAAI,GAAG;CAQd;AAGD,eAAO,MAAM,8BAA8B,EAA2C,uBAAuB,CAAC;AAE9G;;GAEG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAIxC,KAAK,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAPD,MAAM,CAAC,QAAQ,CAAC,OAAO,0BAA0B;IACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;gBAEf,KAAK,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;IAED,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAQ5C,MAAM,IAAI,GAAG;CAOd;AAED,eAAO,MAAM,6BAA6B,EAA0C,uBAAuB,CAAC;AAE5G;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IAGpC,KAAK,EAAE,GAAG;gBAAV,KAAK,EAAE,GAAG;IAE7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAI5C,MAAM,IAAI,GAAG;CAGd;AAED,eAAO,MAAM,yBAAyB,EAA2B,GAAG,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Component Registration - Central registry for serializable components
3
+ *
4
+ * This file registers all components that implement the Serializable interface
5
+ * with the ComponentTransformer system. Components must be registered here
6
+ * to support JSON serialization/deserialization functionality.
7
+ *
8
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
9
+ */
10
+ /**
11
+ * Register all serializable components with the ComponentTransformer
12
+ * This function should be called once during application initialization
13
+ */
14
+ export declare function registerSerializableComponents(): void;
15
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/schemas/transformers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAmCrD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Serializable Interface - Component Serialization System Foundation
3
+ *
4
+ * Defines the contract for components that can be serialized to/from JSON
5
+ * for "WebView for React" functionality.
6
+ *
7
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
+ */
9
+ import { ReactElement } from 'react';
10
+ /**
11
+ * Interface for components that support JSON serialization
12
+ * Components implementing this interface can be transformed between
13
+ * React elements and serializable JSON data structures
14
+ */
15
+ export interface Serializable {
16
+ /**
17
+ * Convert component instance to JSON data
18
+ * @returns Serializable data structure
19
+ */
20
+ toJson(): any;
21
+ }
22
+ /**
23
+ * Interface for serializable component constructor
24
+ * Defines static methods and properties required for component classes
25
+ * Components implementing this interface must declare their own identity
26
+ */
27
+ export interface SerializableConstructor {
28
+ /**
29
+ * Component's unique tag name for serialization
30
+ * Must be unique across all registered components
31
+ */
32
+ readonly tagName: string;
33
+ /**
34
+ * Component's version for serialization format compatibility
35
+ * Should follow semantic versioning (e.g., "1.0.0")
36
+ */
37
+ readonly version: string;
38
+ /**
39
+ * Convert JSON data to a React element
40
+ * @param jsonData - Serialized component data
41
+ * @returns React element representing the component
42
+ */
43
+ fromJson(jsonData: any): ReactElement;
44
+ new (...args: any[]): Serializable;
45
+ }
46
+ //# sourceMappingURL=Serializable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serializable.d.ts","sourceRoot":"","sources":["../../../src/schemas/types/Serializable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,MAAM,IAAI,GAAG,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY,CAAC;IAEtC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;CACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"htmlTransform.d.ts","sourceRoot":"","sources":["../../src/utils/htmlTransform.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACxE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,EA0G9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,EAqC/C,CAAC;AAsBF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,EAAE,KAAK,MAAM,KAAG,KAAK,CAAC,SAoCrE,CAAC;AAkBF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,eAAgD,GACvD,KAAK,CAAC,SAAS,CA0CjB;AAmCD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,eAAgD,GACvD,KAAK,CAAC,SAAS,EAAE,CAYnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB3D"}
1
+ {"version":3,"file":"htmlTransform.d.ts","sourceRoot":"","sources":["../../src/utils/htmlTransform.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CACxE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,EA6H9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,EA0C/C,CAAC;AAsBF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,EAAE,KAAK,MAAM,KAAG,KAAK,CAAC,SAoCrE,CAAC;AAkBF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,eAAgD,GACvD,KAAK,CAAC,SAAS,CA0CjB;AAmCD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,eAAgD,GACvD,KAAK,CAAC,SAAS,EAAE,CAYnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB3D"}
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
6
6
  */
7
+ import { ReactNode } from 'react';
7
8
  /** Location type for React Router */
8
9
  type LocationType = {
9
10
  pathname: string;
@@ -16,9 +17,17 @@ type LocationType = {
16
17
  */
17
18
  export declare const useSafeLocation: () => LocationType | undefined;
18
19
  /**
19
- * Custom hook to get the navigate function
20
- * @returns {Function | undefined} - The navigate function if React Router is available, otherwise undefined
20
+ * Custom hook to get the navigate function with fallback
21
+ * @returns {Function} - The navigate function (React Router or window.location fallback)
21
22
  */
22
- export declare const useSafeNavigate: () => Function | undefined;
23
+ export declare const useSafeNavigate: () => Function;
24
+ /**
25
+ * Extract text content from ReactNode for code processing
26
+ * Handles natural React usage like <Code>const x = 1;</Code>
27
+ *
28
+ * @param node - The ReactNode to extract text from
29
+ * @returns String representation of the node's text content
30
+ */
31
+ export declare function extractTextFromReactNode(node: ReactNode): string;
23
32
  export {};
24
33
  //# sourceMappingURL=reactUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactUtils.d.ts","sourceRoot":"","sources":["../../src/utils/reactUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,qCAAqC;AACrC,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,YAAY,GAAG,SAOjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,QAAQ,GAAG,SAO7C,CAAC"}
1
+ {"version":3,"file":"reactUtils.d.ts","sourceRoot":"","sources":["../../src/utils/reactUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,qCAAqC;AACrC,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,YAAY,GAAG,SAOjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,QAqBlC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA2BhE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwickapps/react-framework",
3
- "version": "1.3.4",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "description": "Complete React framework with responsive navigation, flexible layouts, theming system, and reusable components for building modern applications.",
6
6
  "main": "dist/index.js",
@@ -12,6 +12,11 @@
12
12
  "require": "./dist/index.js",
13
13
  "import": "./dist/index.esm.js"
14
14
  },
15
+ "./config": {
16
+ "types": "./dist/config.d.ts",
17
+ "require": "./dist/config.js",
18
+ "import": "./dist/config.esm.js"
19
+ },
15
20
  "./dist/index.css": "./dist/index.css"
16
21
  },
17
22
  "files": [
@@ -27,7 +32,7 @@
27
32
  "test:watch": "jest --watch",
28
33
  "test:coverage": "jest --coverage",
29
34
  "clean": "rm -rf dist node_modules .rollup.cache storybook-static",
30
- "prepublishOnly": "npm run test && npm run build",
35
+ "prepublishOnly": "npm run build",
31
36
  "storybook": "storybook dev -p 6006",
32
37
  "build-storybook": "storybook build"
33
38
  },
@@ -103,7 +108,6 @@
103
108
  "react-router-dom": "^6.30.1",
104
109
  "rollup": "^3.0.0",
105
110
  "rollup-plugin-postcss": "^4.0.0",
106
- "storybook": "^9.1.0",
107
111
  "style-loader": "^4.0.0",
108
112
  "ts-jest": "^29.4.1",
109
113
  "ts-loader": "^9.5.2",
@@ -133,6 +137,16 @@
133
137
  ],
134
138
  "transformIgnorePatterns": [
135
139
  "node_modules/(?!(.*\\.mjs$))"
140
+ ],
141
+ "testPathIgnorePatterns": [
142
+ "/node_modules/",
143
+ "\\.performance\\.test\\.(ts|tsx)$",
144
+ "\\.serialization\\.test\\.(ts|tsx)$",
145
+ "HeroBlock\\.test\\.(ts|tsx)$",
146
+ "Footer\\.test\\.(ts|tsx)$",
147
+ "Logo\\.test\\.(ts|tsx|js)$",
148
+ "FeatureGrid\\.integration\\.test\\.(ts|tsx)$",
149
+ "FeatureCard\\.integration\\.test\\.(ts|tsx)$"
136
150
  ]
137
151
  },
138
152
  "repository": {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render, screen, fireEvent, act, waitFor } from '@testing-library/react';
3
- import { AccessibilityProvider, useAccessibility } from '../AccessibilityProvider';
3
+ import { AccessibilityProvider, useAccessibility } from '../../components/AccessibilityProvider';
4
4
 
5
5
  // Test component that uses accessibility hook
6
6
  const TestComponent = () => {
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import { render, screen } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import { Article } from '../blocks/Article';
11
+ import { Article } from '../../components/blocks/Article';
12
12
  import { DataProvider } from '../../contexts/DataContext';
13
13
  import { JsonDataProvider } from '@qwickapps/schema';
14
14
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render, screen, fireEvent } from '@testing-library/react';
3
- import { Breadcrumbs, useBreadcrumbs, type BreadcrumbItem } from '../Breadcrumbs';
3
+ import { Breadcrumbs, useBreadcrumbs, type BreadcrumbItem } from '../../components/Breadcrumbs';
4
4
 
5
5
  // Test component for useBreadcrumbs hook
6
6
  const BreadcrumbHookTest = () => {
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import { render, screen, fireEvent, waitFor } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import Button from '../buttons/Button';
11
+ import Button from '../../components/buttons/Button';
12
12
  import { DataProvider } from '../../contexts/DataContext';
13
13
  import { JsonDataProvider } from '@qwickapps/schema';
14
14
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -8,10 +8,10 @@
8
8
  import React from 'react';
9
9
  import { render, screen } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import { CardListGrid } from '../blocks/CardListGrid';
11
+ import { CardListGrid } from '../../components/blocks/CardListGrid';
12
12
  import { JsonDataProvider } from '@qwickapps/schema';
13
13
  import { ThemeProvider, PaletteProvider } from '../../contexts';
14
- import QwickApp from '../QwickApp';
14
+ import QwickApp from '../../components/QwickApp';
15
15
 
16
16
  // Sample data for testing
17
17
  const sampleProducts = [
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import { render, screen, fireEvent, waitFor } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import ChoiceInputField from '../input/ChoiceInputField';
11
+ import ChoiceInputField from '../../components/input/ChoiceInputField';
12
12
  import { DataProvider } from '../../contexts/DataContext';
13
13
  import { JsonDataProvider } from '@qwickapps/schema';
14
14
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import { render, screen, fireEvent, waitFor } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import Code from '../blocks/Code';
11
+ import Code from '../../components/blocks/Code';
12
12
  import { DataProvider } from '../../contexts/DataContext';
13
13
  import { JsonDataProvider } from '@qwickapps/schema';
14
14
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -6,7 +6,7 @@
6
6
 
7
7
  import React from 'react';
8
8
  import { render, waitFor, screen } from '@testing-library/react';
9
- import Content from '../blocks/Content';
9
+ import Content from '../../components/blocks/Content';
10
10
  import { DataProvider } from '../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
12
12
 
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import { render, screen } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import Content from '../blocks/Content';
11
+ import Content from '../../components/blocks/Content';
12
12
  import { DataProvider } from '../../contexts/DataContext';
13
13
  import { JsonDataProvider } from '@qwickapps/schema';
14
14
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -8,9 +8,9 @@
8
8
  import React from 'react';
9
9
  import { render, screen, fireEvent } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import CoverImageHeader from '../blocks/CoverImageHeader';
11
+ import CoverImageHeader from '../../components/blocks/CoverImageHeader';
12
12
  import { JsonDataProvider } from '@qwickapps/schema';
13
- import { QwickApp } from '../QwickApp';
13
+ import { QwickApp } from '../../components/QwickApp';
14
14
 
15
15
  // Test data for data binding (following nested structure pattern)
16
16
  const sampleCmsData = {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { render, screen, fireEvent } from '@testing-library/react';
3
- import { ErrorBoundary, withErrorBoundary } from '../ErrorBoundary';
3
+ import { ErrorBoundary, withErrorBoundary } from '../../components/ErrorBoundary';
4
4
 
5
5
  // Test component that throws an error
6
6
  const ThrowError = ({ shouldThrow }: { shouldThrow: boolean }) => {
@@ -6,8 +6,8 @@
6
6
 
7
7
  import React from 'react';
8
8
  import { render, waitFor, screen } from '@testing-library/react';
9
- import FeatureCard from '../blocks/FeatureCard';
10
- import { DataProvider } from '../../contexts/DataContext';
9
+ import FeatureCard from '../../blocks/FeatureCard';
10
+ import { DataProvider } from '../../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
12
12
 
13
13
  describe.skip('FeatureCard Integration (Traditional + Data Binding)', () => {
@@ -6,8 +6,8 @@
6
6
 
7
7
  import React from 'react';
8
8
  import { render, waitFor, screen } from '@testing-library/react';
9
- import FeatureGrid from '../blocks/FeatureGrid';
10
- import { DataProvider } from '../../contexts/DataContext';
9
+ import FeatureGrid from '../../blocks/FeatureGrid';
10
+ import { DataProvider } from '../../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
12
12
 
13
13
  describe.skip('FeatureGrid Integration (Traditional + Data Binding)', () => {
@@ -8,8 +8,8 @@
8
8
  import React from 'react';
9
9
  import { render, screen } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import FeatureGrid from '../blocks/FeatureGrid';
12
- import type { FeatureItem } from '../blocks/FeatureGrid';
11
+ import FeatureGrid from '../../components/blocks/FeatureGrid';
12
+ import type { FeatureItem } from '../../components/blocks/FeatureGrid';
13
13
  import { DataProvider } from '../../contexts/DataContext';
14
14
  import { JsonDataProvider } from '@qwickapps/schema';
15
15
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -8,11 +8,11 @@
8
8
  import React from 'react';
9
9
  import { render, screen, fireEvent } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import Footer from '../blocks/Footer';
12
- import type { FooterSection, FooterItem } from '../blocks/Footer';
13
- import { DataProvider } from '../../contexts/DataContext';
11
+ import Footer from '../../blocks/Footer';
12
+ import type { FooterSection, FooterItem } from '../../blocks/Footer';
13
+ import { DataProvider } from '../../../contexts/DataContext';
14
14
  import { JsonDataProvider } from '@qwickapps/schema';
15
- import { ThemeProvider, PaletteProvider } from '../../contexts';
15
+ import { ThemeProvider, PaletteProvider } from '../../../contexts';
16
16
 
17
17
  // Test data for data binding
18
18
  const sampleCmsData = {
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import { render, screen, fireEvent, waitFor } from '@testing-library/react';
10
10
  import '@testing-library/jest-dom';
11
- import FormBlock from '../forms/FormBlock';
11
+ import FormBlock from '../../components/forms/FormBlock';
12
12
  import { DataProvider } from '../../contexts/DataContext';
13
13
  import { JsonDataProvider } from '@qwickapps/schema';
14
14
  import { ThemeProvider, PaletteProvider } from '../../contexts';
@@ -6,8 +6,8 @@
6
6
 
7
7
  import React from 'react';
8
8
  import { render, waitFor, screen } from '@testing-library/react';
9
- import HeroBlock from '../blocks/HeroBlock';
10
- import { DataProvider } from '../../contexts/DataContext';
9
+ import HeroBlock from '../../blocks/HeroBlock';
10
+ import { DataProvider } from '../../../contexts/DataContext';
11
11
  import { JsonDataProvider } from '@qwickapps/schema';
12
12
 
13
13
  describe.skip('HeroBlock Integration (Traditional + Data Binding)', () => {