@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
@@ -1,16 +1,19 @@
1
1
  /**
2
- * SwitchInputField - Switch toggle component with data binding support
2
+ * SwitchInputField - Switch toggle component with serialization support
3
3
  *
4
- * Provides a standardized switch field with:
4
+ * Features:
5
+ * - Complete switch toggle functionality
6
+ * - Form validation and error handling
7
+ * - Data binding support for dynamic content
8
+ * - Full serialization support via ModelView
5
9
  * - Consistent Material-UI styling
6
- * - Data binding capabilities
7
- * - Label and helper text support
8
- * - Focus and error handling
9
10
  *
10
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
11
12
  */
13
+ import React, { ReactElement } from 'react';
12
14
  import type { WithDataBinding, ModelProps } from '@qwickapps/schema';
13
15
  import SwitchInputFieldModel from '../../schemas/SwitchInputFieldSchema';
16
+ import { ModelView } from '../base/ModelView';
14
17
  type SwitchInputFieldViewProps = ModelProps<SwitchInputFieldModel> & {
15
18
  /** Change handler */
16
19
  onChange?: (checked: boolean) => void;
@@ -19,10 +22,13 @@ type SwitchInputFieldViewProps = ModelProps<SwitchInputFieldModel> & {
19
22
  };
20
23
  export interface SwitchInputFieldProps extends SwitchInputFieldViewProps, WithDataBinding {
21
24
  }
22
- /**
23
- * SwitchInputField component with data binding support
24
- * Supports both traditional props and dataSource-driven rendering
25
- */
26
- declare function SwitchInputField(props: SwitchInputFieldProps): import("react/jsx-runtime").JSX.Element | null;
25
+ export declare class SwitchInputField extends ModelView<SwitchInputFieldProps, SwitchInputFieldModel> {
26
+ static readonly tagName = "SwitchInputField";
27
+ static readonly version = "1.0.0";
28
+ static fromJson(jsonData: any): ReactElement;
29
+ protected getComponentSpecificProps(): any;
30
+ protected renderView(): React.ReactElement;
31
+ protected renderWithDataBinding(): React.ReactElement;
32
+ }
27
33
  export default SwitchInputField;
28
34
  //# sourceMappingURL=SwitchInputField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchInputField.d.ts","sourceRoot":"","sources":["../../../src/components/input/SwitchInputField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AAEzE,KAAK,yBAAyB,GAAG,UAAU,CAAC,qBAAqB,CAAC,GAAG;IACnE,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB,EAAE,eAAe;CAAG;AA2D5F;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,kDA+DrD;AAKD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"SwitchInputField.d.ts","sourceRoot":"","sources":["../../../src/components/input/SwitchInputField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAS5C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,KAAK,yBAAyB,GAAG,UAAU,CAAC,qBAAqB,CAAC,GAAG;IACnE,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,yBAAyB,EAAE,eAAe;CAAG;AA4D5F,qBAAa,gBAAiB,SAAQ,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAE3F,MAAM,CAAC,QAAQ,CAAC,OAAO,sBAAsB;IAC7C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAK5C,SAAS,CAAC,yBAAyB,IAAI,GAAG;IAe1C,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;IAM1C,SAAS,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY;CAGtD;AAkED,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/input/TextField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA6B,cAAc,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC;CAE3G;AAED,eAAO,MAAM,SAAS,oGAuBpB,CAAC;AAIH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/components/input/TextField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA6B,cAAc,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC;CAE3G;AAED,eAAO,MAAM,SAAS,oGA+DpB,CAAC;AAIH,eAAe,SAAS,CAAC"}
@@ -1,18 +1,20 @@
1
1
  /**
2
- * TextInputField - Reusable text input component with consistent styling
2
+ * TextInputField - Reusable text input component with serialization support
3
3
  *
4
- * Provides a standardized text field with:
4
+ * Features:
5
+ * - Complete text field functionality (single/multiline, input types)
6
+ * - Form validation and error handling
7
+ * - Data binding support for dynamic content
8
+ * - Full serialization support via ModelView
5
9
  * - Consistent Material-UI styling
6
- * - Data binding support
7
- * - Focus handling
8
- * - Validation and error states
9
- * - Support for multiline/textarea mode
10
10
  *
11
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
12
12
  */
13
+ import React, { ReactElement } from 'react';
13
14
  import { TextFieldProps } from '@mui/material';
14
15
  import type { WithDataBinding, ModelProps } from '@qwickapps/schema';
15
16
  import TextInputFieldModel from '../../schemas/TextInputFieldSchema';
17
+ import { ModelView } from '../base/ModelView';
16
18
  type TextInputFieldViewProps = ModelProps<TextInputFieldModel> & {
17
19
  /** Change handler */
18
20
  onChange?: (value: string) => void;
@@ -23,10 +25,13 @@ type TextInputFieldViewProps = ModelProps<TextInputFieldModel> & {
23
25
  };
24
26
  export interface TextInputFieldProps extends TextInputFieldViewProps, WithDataBinding {
25
27
  }
26
- /**
27
- * TextInputField component with data binding support
28
- * Supports both traditional props and dataSource-driven rendering
29
- */
30
- declare function TextInputField(props: TextInputFieldProps): import("react/jsx-runtime").JSX.Element | null;
28
+ export declare class TextInputField extends ModelView<TextInputFieldProps, TextInputFieldModel> {
29
+ static readonly tagName = "TextInputField";
30
+ static readonly version = "1.0.0";
31
+ static fromJson(jsonData: any): ReactElement;
32
+ protected getComponentSpecificProps(): any;
33
+ protected renderView(): React.ReactElement;
34
+ protected renderWithDataBinding(): React.ReactElement;
35
+ }
31
36
  export default TextInputField;
32
37
  //# sourceMappingURL=TextInputField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextInputField.d.ts","sourceRoot":"","sources":["../../../src/components/input/TextInputField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAa,cAAc,EAAqB,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AAErE,KAAK,uBAAuB,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG;IAC/D,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iCAAiC;IACjC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CAClM,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB,EAAE,eAAe;CAAG;AAiDxF;;;GAGG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,mBAAmB,kDAwDjD;AAKD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"TextInputField.d.ts","sourceRoot":"","sources":["../../../src/components/input/TextInputField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAa,cAAc,EAAqB,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,KAAK,uBAAuB,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG;IAC/D,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iCAAiC;IACjC,cAAc,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CAClM,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB,EAAE,eAAe;CAAG;AAkDxF,qBAAa,cAAe,SAAQ,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAErF,MAAM,CAAC,QAAQ,CAAC,OAAO,oBAAoB;IAC3C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAK5C,SAAS,CAAC,yBAAyB,IAAI,GAAG;IAmB1C,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;IAM1C,SAAS,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY;CAGtD;AA2DD,eAAe,cAAc,CAAC"}
@@ -1,16 +1,33 @@
1
1
  /**
2
- * GridCell - Simple cell wrapper for GridLayout
2
+ * GridCell - Simple cell wrapper for GridLayout with serialization support
3
3
  *
4
4
  * A lightweight wrapper that applies grid props to any content
5
5
  * Uses the base props pattern for consistency
6
+ * Full serialization support via ModelView including nested components
7
+ *
8
+ * Usage:
9
+ * - Traditional: <GridCell span={6} background="primary">...</GridCell>
10
+ * - Data-driven: <GridCell dataSource="layout.cell" />
11
+ * - Serializable: ComponentTransformer.serialize(<GridCell ... />)
6
12
  *
7
13
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
14
  */
9
- import React from 'react';
10
- import { WithBaseProps } from '../../hooks/useBaseProps';
11
- export interface GridCellProps extends WithBaseProps {
12
- children: React.ReactNode;
15
+ import React, { ReactElement, ReactNode } from 'react';
16
+ import type { WithDataBinding, ModelProps } from '@qwickapps/schema';
17
+ import GridCellModel from '../../schemas/GridCellSchema';
18
+ import { ModelView } from '../base/ModelView';
19
+ type GridCellViewProps = ModelProps<GridCellModel>;
20
+ export interface GridCellProps extends GridCellViewProps, WithDataBinding {
21
+ }
22
+ export declare class GridCell extends ModelView<GridCellProps, GridCellModel> {
23
+ static readonly tagName = "GridCell";
24
+ static readonly version = "1.0.0";
25
+ static fromJson(jsonData: any): ReactElement;
26
+ protected getComponentSpecificProps(): any;
27
+ protected hasNestedComponents(children: ReactNode): boolean;
28
+ protected serializeChildren(children: ReactNode): any;
29
+ protected renderView(): React.ReactElement;
30
+ protected renderWithDataBinding(): React.ReactElement;
13
31
  }
14
- export declare const GridCell: React.FC<GridCellProps>;
15
32
  export default GridCell;
16
33
  //# sourceMappingURL=GridCell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridCell.d.ts","sourceRoot":"","sources":["../../../src/components/layout/GridCell.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwB5C,CAAC;AAIF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"GridCell.d.ts","sourceRoot":"","sources":["../../../src/components/layout/GridCell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,KAAK,iBAAiB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AAEnD,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,eAAe;CAAG;AA8B5E,qBAAa,QAAS,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAEnE,MAAM,CAAC,QAAQ,CAAC,OAAO,cAAc;IACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAK5C,SAAS,CAAC,yBAAyB,IAAI,GAAG;IAoB1C,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO;IAK3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,GAAG;IAarD,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;IAM1C,SAAS,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY;CAGtD;AAwCD,eAAe,QAAQ,CAAC"}
@@ -1,38 +1,39 @@
1
1
  /**
2
- * GridLayout - Flexible grid layout component
2
+ * GridLayout - Flexible grid layout component with serialization support
3
3
  *
4
4
  * Works with any component that has grid props (span, xs, sm, md, lg, xl)
5
5
  * Automatically wraps components in Grid when grid props are detected
6
+ * Full serialization support via ModelView including nested components
7
+ *
8
+ * Usage:
9
+ * - Traditional: <GridLayout columns={3} spacing="medium">...</GridLayout>
10
+ * - Data-driven: <GridLayout dataSource="layouts.main" />
11
+ * - Serializable: ComponentTransformer.serialize(<GridLayout ... />)
6
12
  *
7
13
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
14
  */
9
- import React from 'react';
15
+ import React, { ReactElement, ReactNode } from 'react';
10
16
  import { SxProps, Theme } from '@mui/material';
11
- import { SpacingValue } from '../../utils/spacing';
12
- import { DimensionValue } from '../../utils/dimensions';
13
- export interface GridLayoutProps {
14
- /** Layout children - any components with grid props work */
15
- children: React.ReactNode;
16
- /** Number of equal-width columns (auto-distribution) */
17
- columns?: 1 | 2 | 3 | 4 | 5 | 6;
18
- /** Spacing between columns */
19
- spacing?: SpacingValue;
20
- /** Equal height columns */
21
- equalHeight?: boolean;
22
- /** Layout dimensions */
23
- height?: DimensionValue;
24
- width?: DimensionValue;
25
- minHeight?: DimensionValue;
26
- minWidth?: DimensionValue;
27
- maxHeight?: DimensionValue;
28
- maxWidth?: DimensionValue;
29
- /** Additional CSS class */
30
- className?: string;
17
+ import type { WithDataBinding, ModelProps } from '@qwickapps/schema';
18
+ import GridLayoutModel from '../../schemas/GridLayoutSchema';
19
+ import { ModelView } from '../base/ModelView';
20
+ type GridLayoutViewProps = ModelProps<GridLayoutModel> & {
31
21
  /** Custom styles */
32
22
  sx?: SxProps<Theme>;
33
23
  /** Inline styles */
34
24
  style?: React.CSSProperties;
25
+ };
26
+ export interface GridLayoutProps extends GridLayoutViewProps, WithDataBinding {
27
+ }
28
+ export declare class GridLayout extends ModelView<GridLayoutProps, GridLayoutModel> {
29
+ static readonly tagName = "GridLayout";
30
+ static readonly version = "1.0.0";
31
+ static fromJson(jsonData: any): ReactElement;
32
+ protected getComponentSpecificProps(): any;
33
+ protected hasNestedComponents(children: ReactNode): boolean;
34
+ protected serializeChildren(children: ReactNode): any;
35
+ protected renderView(): React.ReactElement;
36
+ protected renderWithDataBinding(): React.ReactElement;
35
37
  }
36
- export declare const GridLayout: React.FC<GridLayoutProps>;
37
38
  export default GridLayout;
38
39
  //# sourceMappingURL=GridLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridLayout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/GridLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,YAAY,EAAkB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAoB,MAAM,wBAAwB,CAAC;AAG1E,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+HhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"GridLayout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/GridLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAQ,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKrE,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,KAAK,mBAAmB,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG;IACvD,oBAAoB;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,mBAAmB,EAAE,eAAe;CAAG;AAyIhF,qBAAa,UAAW,SAAQ,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAEzE,MAAM,CAAC,QAAQ,CAAC,OAAO,gBAAgB;IACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAK5C,SAAS,CAAC,yBAAyB,IAAI,GAAG;IAkB1C,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO;IAK3D,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,GAAG;IAarD,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;IAM1C,SAAS,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY;CAGtD;AA2CD,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormPage.d.ts","sourceRoot":"","sources":["../../../src/components/pages/FormPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAEtC;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAElD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IAE9C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4B5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"FormPage.d.ts","sourceRoot":"","sources":["../../../src/components/pages/FormPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAEtC;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAElD;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IAE9C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2B5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,55 +1,35 @@
1
1
  /**
2
- * Page Component - Main content wrapper for application pages
3
- *
4
- * The Page component is what developers primarily focus on when building applications.
5
- * It provides:
6
- * - Automatic page title management
7
- * - Route-based configuration
8
- * - Contextual menu items that appear in navigation
9
- * - Proper content spacing and layout
10
- * - SEO and accessibility features
11
- *
12
- * Page components automatically integrate with the AppScaffold to provide
13
- * contextual actions and menu items specific to the current page.
2
+ * Page Architecture - Clean separation with functional controller
14
3
  *
15
4
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
16
5
  */
17
6
  import React from 'react';
7
+ import { WithBaseProps } from '../../hooks/useBaseProps';
8
+ import { PageTemplateSchema } from '../../schemas/PageTemplateSchema';
9
+ import { PrintConfigSchema } from '../../schemas/PrintConfigSchema';
18
10
  import './Page.css';
19
11
  export interface PageContextValue {
20
12
  /** Current page route/path */
21
13
  route?: string;
14
+ /** Whether the page is currently in print mode */
15
+ isPrintMode: boolean;
16
+ /** Current print configuration */
17
+ printConfig: PrintConfigSchema;
18
+ /** Trigger print mode and dialog */
19
+ triggerPrint: (config?: Partial<PrintConfigSchema>) => void;
20
+ /** Set page loading state */
21
+ setLoading: (loading: boolean) => void;
22
+ /** Set page error state */
23
+ setError: (error: string | null) => void;
24
+ /** Current page loading state */
25
+ isLoading: boolean;
26
+ /** Current page error state */
27
+ error: string | null;
22
28
  }
23
29
  export declare const usePageContext: () => PageContextValue;
24
- export type MessageType = 'loading' | 'error' | 'warning' | 'success' | 'info';
25
- export type LoadingType = 'spinner' | 'bar-top' | 'bar-bottom' | 'dots' | 'custom';
26
- export interface MessageState {
27
- /** Type of message to display */
28
- type: MessageType;
29
- /** Message content (string or custom JSX) */
30
- content?: string | React.ReactNode;
31
- /** Custom component to render instead of default */
32
- customComponent?: React.ReactNode;
33
- }
34
- export interface LoadingState {
35
- /** Type of loading indicator */
36
- type?: LoadingType;
37
- /** Loading message */
38
- message?: string;
39
- /** Custom loading component */
40
- customComponent?: React.ReactNode;
41
- }
42
- export interface PageProps {
43
- /** Page content */
44
- children: React.ReactNode;
30
+ export interface PageProps extends WithBaseProps {
45
31
  /** Current route/path for this page */
46
32
  route?: string;
47
- /** Optional header component */
48
- header?: React.ReactNode;
49
- /** Optional footer component */
50
- footer?: React.ReactNode;
51
- /** Additional CSS class */
52
- className?: string;
53
33
  /** Page layout variant */
54
34
  variant?: 'default' | 'centered' | 'narrow' | 'wide' | 'fullwidth';
55
35
  /** Padding around page content */
@@ -58,67 +38,49 @@ export interface PageProps {
58
38
  background?: 'default' | 'surface' | 'alternate';
59
39
  /** Maximum width for content */
60
40
  maxWidth?: 'small' | 'medium' | 'large' | 'extra-large' | 'none';
61
- /** Loading state configuration */
62
- loading?: boolean | LoadingState;
63
- /** Message state for displaying info/warning/error/success messages */
64
- message?: MessageState;
41
+ /** Print configuration for this page */
42
+ printConfig?: Partial<PrintConfigSchema>;
43
+ /** PageTemplate model instance */
44
+ template?: PageTemplateSchema;
45
+ /** Page title */
46
+ title?: string;
47
+ /** Page description for SEO */
48
+ description?: string;
49
+ /** Page name/heading */
50
+ name?: string;
51
+ /** Page slug for URL */
52
+ slug?: string;
65
53
  }
66
- declare const Page: React.FC<PageProps>;
67
- export declare const usePage: () => {
68
- setTitle: (newTitle: string) => void;
69
- /** Current page route/path */
70
- route?: string;
71
- };
72
54
  /**
73
- * Base Page Class Component - Extendable page component for inheritance pattern
74
- *
75
- * Usage:
76
- * class MyPage extends BasePage {
77
- * getPageProps() {
78
- * return {
79
- * route: '/my-page',
80
- * variant: 'narrow',
81
- * padding: 'large',
82
- * // ... other page props
83
- * };
84
- * }
85
- *
86
- * renderContent() {
87
- * return (
88
- * <div>My page content</div>
89
- * );
90
- * }
91
- * }
55
+ * Page - Functional component that controls print/normal view routing
92
56
  */
93
- export declare abstract class BasePage<P = {}, S = {}> extends React.Component<P, S> {
57
+ interface PageWithViewsProps extends PageProps {
58
+ /** Function to render normal view */
59
+ renderView: () => React.ReactNode;
60
+ /** Function to render print view */
61
+ renderPrintView: () => React.ReactNode;
62
+ }
63
+ declare const Page: React.FC<PageWithViewsProps>;
64
+ /**
65
+ * PageComponent - Base class for pages that provide view functions
66
+ */
67
+ export declare abstract class PageComponent<P = {}, S = {}> extends React.Component<P, S> {
94
68
  /**
95
69
  * Override this method to provide page configuration
96
- * This will be passed to the Page component wrapper
97
70
  */
98
- abstract getPageProps(): Partial<PageProps>;
71
+ abstract getPageProps(): PageProps;
99
72
  /**
100
- * Override this method to provide the page content
101
- * This replaces the render() method in your page components
73
+ * Override this method to provide the normal view content
102
74
  */
103
- abstract renderContent(): React.ReactNode;
75
+ abstract renderView(): React.ReactNode;
104
76
  /**
105
- * Override this method to handle page mounting logic
106
- * Called after the page is mounted and context is available
77
+ * Override this method to provide the print view content
107
78
  */
108
- onPageMount?(): void;
79
+ abstract renderPrintView(): React.ReactNode;
109
80
  /**
110
- * Override this method to handle page unmounting logic
111
- */
112
- onPageUnmount?(): void;
113
- /**
114
- * Internal render method - wraps content in Page component
81
+ * Render method - uses functional Page as controller
115
82
  */
116
83
  render(): import("react/jsx-runtime").JSX.Element;
117
- /**
118
- * Component lifecycle methods
119
- */
120
- componentDidMount(): void;
121
- componentWillUnmount(): void;
122
84
  }
123
85
  export default Page;
124
86
  //# sourceMappingURL=Page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/components/pages/Page.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,YAAY,CAAC;AAGpB,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,eAAO,MAAM,cAAc,QAAO,gBAMjC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACnC,oDAAoD;IACpD,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gCAAgC;IAChC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACnE,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChD,yBAAyB;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IACjD,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACjE,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IACjC,uEAAuE;IACvE,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA+K7B,CAAC;AAGF,eAAO,MAAM,OAAO;yBAMiB,MAAM;IAtPzC,8BAA8B;YACtB,MAAM;CAyPf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8BAAsB,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAE,SAAQ,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1E;;;OAGG;IACH,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS;IAEzC;;;OAGG;IACH,WAAW,CAAC,IAAI,IAAI;IAEpB;;OAEG;IACH,aAAa,CAAC,IAAI,IAAI;IAEtB;;OAEG;IACH,MAAM;IAUN;;OAEG;IACH,iBAAiB;IAIjB,oBAAoB;CAGrB;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/components/pages/Page.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAgG,MAAM,OAAO,CAAC;AAErH,OAAO,EAAgB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,WAAW,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,oCAAoC;IACpC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC5D,6BAA6B;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,2BAA2B;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAKD,eAAO,MAAM,cAAc,QAAO,gBAMjC,CAAC;AAEF,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACnE,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChD,yBAAyB;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IACjD,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACjE,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAuQD;;GAEG;AACH,UAAU,kBAAmB,SAAQ,SAAS;IAC5C,qCAAqC;IACrC,UAAU,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAClC,oCAAoC;IACpC,eAAe,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CACxC;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAQtC,CAAC;AAWF;;GAEG;AACH,8BAAsB,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAE,SAAQ,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/E;;OAEG;IACH,QAAQ,CAAC,YAAY,IAAI,SAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS;IAEtC;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,KAAK,CAAC,SAAS;IAE3C;;OAEG;IACH,MAAM;CAWP;AAED,eAAe,IAAI,CAAC"}
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
5
5
  */
6
- export { BasePage } from './Page';
6
+ export { PageComponent, usePageContext } from './Page';
7
7
  export { default as FormPage } from './FormPage';
8
8
  export { default as Page } from './Page';
9
9
  export type { FormPageProps } from './FormPage';
10
- export type { PageProps } from './Page';
10
+ export type { PageProps, PageContextValue } from './Page';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/pages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEzC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/pages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEzC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * QwickApps AppConfig Implementation
3
+ *
4
+ * Immutable configuration object with computed properties for Vite and PWA.
5
+ *
6
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
7
+ */
8
+ import type { UserConfig as ViteUserConfig } from 'vite';
9
+ import type { AppConfig as IAppConfig, AppIdentity, BuildConfig, PWAConfig, UIConfig, CopyrightConfig } from './types';
10
+ /**
11
+ * Immutable application configuration
12
+ */
13
+ export declare class AppConfig implements IAppConfig {
14
+ readonly app: AppIdentity;
15
+ readonly build: BuildConfig;
16
+ readonly pwa: PWAConfig;
17
+ readonly ui: UIConfig;
18
+ readonly copyright: CopyrightConfig;
19
+ constructor(config: {
20
+ app: AppIdentity;
21
+ build: BuildConfig;
22
+ pwa: PWAConfig;
23
+ ui: UIConfig;
24
+ copyright: CopyrightConfig;
25
+ });
26
+ /**
27
+ * Generate complete Vite configuration
28
+ */
29
+ get viteConfig(): ViteUserConfig;
30
+ /**
31
+ * Generate PWA manifest
32
+ */
33
+ get pwaManifest(): Record<string, any>;
34
+ /**
35
+ * Convert to plain object (for serialization)
36
+ */
37
+ toJSON(): Record<string, any>;
38
+ /**
39
+ * Create a copy with overrides (returns new immutable instance)
40
+ */
41
+ with(overrides: Partial<{
42
+ app: Partial<AppIdentity>;
43
+ build: Partial<BuildConfig>;
44
+ pwa: Partial<PWAConfig>;
45
+ ui: Partial<UIConfig>;
46
+ copyright: Partial<CopyrightConfig>;
47
+ }>): AppConfig;
48
+ }
49
+ //# sourceMappingURL=AppConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppConfig.d.ts","sourceRoot":"","sources":["../../src/config/AppConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,KAAK,EACV,SAAS,IAAI,UAAU,EACvB,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,SAAgB,GAAG,EAAE,WAAW,CAAC;IACjC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,EAAE,EAAE,QAAQ,CAAC;IAC7B,SAAgB,SAAS,EAAE,eAAe,CAAC;gBAE/B,MAAM,EAAE;QAClB,GAAG,EAAE,WAAW,CAAC;QACjB,KAAK,EAAE,WAAW,CAAC;QACnB,GAAG,EAAE,SAAS,CAAC;QACf,EAAE,EAAE,QAAQ,CAAC;QACb,SAAS,EAAE,eAAe,CAAC;KAC5B;IAYD;;OAEG;IACH,IAAI,UAAU,IAAI,cAAc,CAqB/B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAwBrC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAU7B;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;QACtB,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACxB,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;KACrC,CAAC,GAAG,SAAS;CASf"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * QwickApps AppConfigBuilder
3
+ *
4
+ * Builder pattern for creating validated, immutable AppConfig instances.
5
+ * Supports fluent API and deferred validation.
6
+ *
7
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
8
+ */
9
+ import { AppConfig } from './AppConfig';
10
+ import type { AppConfigOptions } from './types';
11
+ /**
12
+ * Builder for creating AppConfig instances with validation
13
+ */
14
+ export declare class AppConfigBuilder {
15
+ private config;
16
+ private options;
17
+ private constructor();
18
+ /**
19
+ * Create a new AppConfigBuilder instance
20
+ */
21
+ static create(): AppConfigBuilder;
22
+ /**
23
+ * Load configuration from JSON file (Node.js only)
24
+ */
25
+ withConfig(configPath: string): AppConfigBuilder;
26
+ /**
27
+ * Set builder options
28
+ */
29
+ withOptions(options: AppConfigOptions): AppConfigBuilder;
30
+ withName(name: string): AppConfigBuilder;
31
+ withId(id: string): AppConfigBuilder;
32
+ withShortName(shortName: string): AppConfigBuilder;
33
+ withDescription(description: string): AppConfigBuilder;
34
+ withVersion(version: string): AppConfigBuilder;
35
+ withLogo(logo: string): AppConfigBuilder;
36
+ withAuthor(author: string): AppConfigBuilder;
37
+ withHomepage(homepage: string): AppConfigBuilder;
38
+ withPort(port: number): AppConfigBuilder;
39
+ withPreviewPort(previewPort: number): AppConfigBuilder;
40
+ withOutputDir(outputDir: string): AppConfigBuilder;
41
+ withPublicPath(publicPath: string): AppConfigBuilder;
42
+ withBase(base: string): AppConfigBuilder;
43
+ withThemeColor(themeColor: string): AppConfigBuilder;
44
+ withBackgroundColor(backgroundColor: string): AppConfigBuilder;
45
+ withStartUrl(startUrl: string): AppConfigBuilder;
46
+ withScope(scope: string): AppConfigBuilder;
47
+ withDisplay(display: 'standalone' | 'fullscreen' | 'minimal-ui' | 'browser'): AppConfigBuilder;
48
+ withOrientation(orientation: 'portrait' | 'landscape' | 'any'): AppConfigBuilder;
49
+ withDefaultTheme(defaultTheme: 'light' | 'dark' | 'system'): AppConfigBuilder;
50
+ withDefaultPalette(defaultPalette: string): AppConfigBuilder;
51
+ withScaffolding(enableScaffolding: boolean): AppConfigBuilder;
52
+ withThemeSwitcher(showThemeSwitcher: boolean): AppConfigBuilder;
53
+ withPaletteSwitcher(showPaletteSwitcher: boolean): AppConfigBuilder;
54
+ withCopyright(year: 'auto' | number, author: string, text?: string): AppConfigBuilder;
55
+ withCopyrightYear(year: 'auto' | number): AppConfigBuilder;
56
+ withCopyrightAuthor(author: string): AppConfigBuilder;
57
+ withCopyrightText(text: string): AppConfigBuilder;
58
+ /**
59
+ * Build and validate the configuration
60
+ */
61
+ build(): AppConfig;
62
+ /**
63
+ * Validate the current configuration
64
+ */
65
+ private validate;
66
+ /**
67
+ * Apply default values to configuration
68
+ */
69
+ private applyDefaults;
70
+ /**
71
+ * Simple color validation
72
+ */
73
+ private isValidColor;
74
+ }
75
+ //# sourceMappingURL=AppConfigBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppConfigBuilder.d.ts","sourceRoot":"","sources":["../../src/config/AppConfigBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAMV,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CA4CZ;IAEF,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,gBAAgB;IAIjC;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB;IA0BhD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;IAMxD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKxC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB;IAKpC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAKlD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAKtD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAK9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKxC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAK5C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAMhD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKxC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAKtD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAKlD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB;IAKpD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAMxC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB;IAKpD,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,gBAAgB;IAK9D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAKhD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IAK1C,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,gBAAgB;IAK9F,eAAe,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,gBAAgB;IAMhF,gBAAgB,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,gBAAgB;IAK7E,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB;IAK5D,eAAe,CAAC,iBAAiB,EAAE,OAAO,GAAG,gBAAgB;IAK7D,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,GAAG,gBAAgB;IAK/D,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,GAAG,gBAAgB;IAMnE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOrF,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB;IAK1D,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAKrD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKjD;;OAEG;IACH,KAAK,IAAI,SAAS;IAkBlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoDhB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoDrB;;OAEG;IACH,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * QwickApps Configuration Module
3
+ *
4
+ * Exports configuration types and utilities for QwickApp applications.
5
+ *
6
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
7
+ */
8
+ export { AppConfig } from './AppConfig';
9
+ export { AppConfigBuilder } from './AppConfigBuilder';
10
+ export type { AppConfig as IAppConfig, AppIdentity, BuildConfig, PWAConfig, UIConfig, CopyrightConfig, AppConfigOptions, ValidationResult, } from './types';
11
+ import { AppConfigBuilder } from './AppConfigBuilder';
12
+ export declare const createAppConfig: typeof AppConfigBuilder.create;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,SAAS,IAAI,UAAU,EACvB,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,eAAO,MAAM,eAAe,gCAA0B,CAAC"}