@qwickapps/react-framework 1.5.13 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/components/Scaffold.d.ts +2 -2
  2. package/dist/components/Scaffold.d.ts.map +1 -1
  3. package/dist/components/forms/Captcha.d.ts +33 -28
  4. package/dist/components/forms/Captcha.d.ts.map +1 -1
  5. package/dist/components/forms/FormCheckbox.d.ts +15 -12
  6. package/dist/components/forms/FormCheckbox.d.ts.map +1 -1
  7. package/dist/components/forms/FormField.d.ts +20 -23
  8. package/dist/components/forms/FormField.d.ts.map +1 -1
  9. package/dist/components/forms/FormSelect.d.ts +16 -15
  10. package/dist/components/forms/FormSelect.d.ts.map +1 -1
  11. package/dist/contexts/QwickAppContext.d.ts +1 -1
  12. package/dist/contexts/QwickAppContext.d.ts.map +1 -1
  13. package/dist/hooks/useBaseProps.d.ts +27 -1172
  14. package/dist/hooks/useBaseProps.d.ts.map +1 -1
  15. package/dist/index.css +1 -1
  16. package/dist/index.esm.css +1 -1
  17. package/dist/index.esm.js +393 -160
  18. package/dist/index.js +393 -159
  19. package/dist/palettes/PaletteBoutique.d.ts +10 -0
  20. package/dist/palettes/PaletteBoutique.d.ts.map +1 -0
  21. package/dist/palettes/index.d.ts +1 -0
  22. package/dist/palettes/index.d.ts.map +1 -1
  23. package/dist/palettes/manifest.json +33 -19
  24. package/dist/palettes/{palette-autumn.1.5.13.css → palette-autumn.1.7.0.css} +3 -1
  25. package/dist/palettes/palette-autumn.1.7.0.min.css +1 -0
  26. package/dist/palettes/palette-autumn.latest.css +3 -1
  27. package/dist/palettes/palette-autumn.latest.min.css +1 -1
  28. package/dist/palettes/palette-boutique.1.7.0.css +176 -0
  29. package/dist/palettes/palette-boutique.1.7.0.min.css +1 -0
  30. package/dist/palettes/palette-boutique.latest.css +176 -0
  31. package/dist/palettes/palette-boutique.latest.min.css +1 -0
  32. package/dist/palettes/{palette-cosmic.1.5.13.css → palette-cosmic.1.7.0.css} +3 -1
  33. package/dist/palettes/palette-cosmic.1.7.0.min.css +1 -0
  34. package/dist/palettes/palette-cosmic.latest.css +3 -1
  35. package/dist/palettes/palette-cosmic.latest.min.css +1 -1
  36. package/dist/palettes/{palette-ocean.1.5.13.css → palette-ocean.1.7.0.css} +3 -1
  37. package/dist/palettes/palette-ocean.1.7.0.min.css +1 -0
  38. package/dist/palettes/palette-ocean.latest.css +3 -1
  39. package/dist/palettes/palette-ocean.latest.min.css +1 -1
  40. package/dist/palettes/{palette-spring.1.5.13.css → palette-spring.1.7.0.css} +3 -1
  41. package/dist/palettes/palette-spring.1.7.0.min.css +1 -0
  42. package/dist/palettes/palette-spring.latest.css +3 -1
  43. package/dist/palettes/palette-spring.latest.min.css +1 -1
  44. package/dist/palettes/{palette-winter.1.5.13.css → palette-winter.1.7.0.css} +3 -1
  45. package/dist/palettes/palette-winter.1.7.0.min.css +1 -0
  46. package/dist/palettes/palette-winter.latest.css +3 -1
  47. package/dist/palettes/palette-winter.latest.min.css +1 -1
  48. package/dist/schemas/CaptchaSchema.d.ts +16 -0
  49. package/dist/schemas/CaptchaSchema.d.ts.map +1 -0
  50. package/dist/schemas/FormCheckboxSchema.d.ts +16 -0
  51. package/dist/schemas/FormCheckboxSchema.d.ts.map +1 -0
  52. package/dist/schemas/FormFieldSchema.d.ts +23 -0
  53. package/dist/schemas/FormFieldSchema.d.ts.map +1 -0
  54. package/dist/schemas/FormSelectSchema.d.ts +20 -0
  55. package/dist/schemas/FormSelectSchema.d.ts.map +1 -0
  56. package/dist/schemas/index.d.ts +4 -0
  57. package/dist/schemas/index.d.ts.map +1 -1
  58. package/dist/schemas/transformers/ComponentTransformer.d.ts +1 -0
  59. package/dist/schemas/transformers/ComponentTransformer.d.ts.map +1 -1
  60. package/package.json +2 -1
  61. package/src/components/QwickApp.css +22 -0
  62. package/src/components/Scaffold.css +5 -0
  63. package/src/components/Scaffold.tsx +5 -3
  64. package/src/components/forms/Captcha.tsx +57 -63
  65. package/src/components/forms/FormCheckbox.tsx +35 -43
  66. package/src/components/forms/FormField.tsx +50 -66
  67. package/src/components/forms/FormSelect.tsx +41 -49
  68. package/src/contexts/QwickAppContext.tsx +1 -1
  69. package/src/hooks/useBaseProps.ts +34 -1
  70. package/src/palettes/PaletteAutumn.css +3 -1
  71. package/src/palettes/PaletteBoutique.css +176 -0
  72. package/src/palettes/PaletteBoutique.ts +16 -0
  73. package/src/palettes/PaletteCosmic.css +3 -1
  74. package/src/palettes/PaletteOcean.css +3 -1
  75. package/src/palettes/PaletteSpring.css +3 -1
  76. package/src/palettes/PaletteWinter.css +3 -1
  77. package/src/palettes/index.ts +3 -0
  78. package/src/palettes/manifest.json +12 -1
  79. package/src/schemas/CaptchaSchema.ts +65 -0
  80. package/src/schemas/FormCheckboxSchema.ts +65 -0
  81. package/src/schemas/FormFieldSchema.ts +140 -0
  82. package/src/schemas/FormSelectSchema.ts +108 -0
  83. package/src/schemas/index.ts +4 -0
  84. package/src/schemas/transformers/ComponentTransformer.ts +32 -2
  85. package/dist/palettes/palette-autumn.1.5.13.min.css +0 -1
  86. package/dist/palettes/palette-cosmic.1.5.13.min.css +0 -1
  87. package/dist/palettes/palette-ocean.1.5.13.min.css +0 -1
  88. package/dist/palettes/palette-spring.1.5.13.min.css +0 -1
  89. package/dist/palettes/palette-winter.1.5.13.min.css +0 -1
  90. /package/dist/palettes/{palette-default.1.5.13.css → palette-default.1.7.0.css} +0 -0
  91. /package/dist/palettes/{palette-default.1.5.13.min.css → palette-default.1.7.0.min.css} +0 -0
@@ -21,8 +21,8 @@ import type { MenuItem } from './menu/MenuItem';
21
21
  export interface AppBarProps {
22
22
  /** Title to display in the app bar */
23
23
  title?: string;
24
- /** Actions to display on the right side */
25
- actions?: React.ReactNode;
24
+ /** Actions to display on the right side - use render function for server/client boundary safety */
25
+ actions?: React.ReactNode | (() => React.ReactNode);
26
26
  /** Whether to show the menu button (for drawer toggle) */
27
27
  showMenuButton?: boolean;
28
28
  /** Custom logo override */
@@ -1 +1 @@
1
- {"version":3,"file":"Scaffold.d.ts","sourceRoot":"","sources":["../../src/components/Scaffold.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+BAA+B;IAC/B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAWD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqarC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Scaffold.d.ts","sourceRoot":"","sources":["../../src/components/Scaffold.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mGAAmG;IACnG,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,0DAA0D;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+BAA+B;IAC/B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAWD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuarC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -11,45 +11,50 @@
11
11
  * - Provider-agnostic API
12
12
  * - Automatic script loading
13
13
  * - TypeScript support
14
- * - Themed styling with base props support
14
+ * - Themed styling with schema-driven architecture
15
15
  * - Grid behavior support
16
16
  * - Error handling
17
17
  *
18
18
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
19
19
  */
20
- import React from 'react';
21
- import { WithBaseProps } from '../../hooks/useBaseProps';
22
- export type CaptchaProvider = 'recaptcha-v2' | 'recaptcha-v3' | 'hcaptcha' | 'turnstile';
23
- interface CaptchaBaseProps {
24
- /** CAPTCHA provider */
25
- provider: CaptchaProvider;
26
- /** Site key (public key) */
27
- siteKey: string;
20
+ import type { SchemaProps } from '@qwickapps/schema';
21
+ import CaptchaModel from '../../schemas/CaptchaSchema';
22
+ import { ViewProps } from '../shared/viewProps';
23
+ import { SerializableComponent } from '../shared/createSerializableView';
24
+ declare global {
25
+ interface Window {
26
+ grecaptcha?: {
27
+ render?: (container: HTMLElement | null, params: Record<string, unknown>) => string | number;
28
+ execute?: (siteKey: string, options: {
29
+ action: string;
30
+ }) => Promise<string>;
31
+ reset?: (widgetId: string | number) => void;
32
+ };
33
+ hcaptcha?: {
34
+ render?: (container: HTMLElement | null, params: Record<string, unknown>) => string | number;
35
+ remove?: (widgetId: string | number) => void;
36
+ };
37
+ turnstile?: {
38
+ render?: (container: HTMLElement | null, params: Record<string, unknown>) => string | number;
39
+ remove?: (widgetId: string | number) => void;
40
+ };
41
+ }
42
+ }
43
+ /**
44
+ * Props interface for Captcha component
45
+ * Combines schema props with callback handlers
46
+ */
47
+ export interface CaptchaProps extends ViewProps, SchemaProps<typeof CaptchaModel> {
28
48
  /** Callback when CAPTCHA is successfully completed */
29
49
  onVerify: (token: string) => void;
30
50
  /** Callback when CAPTCHA expires or fails */
31
51
  onExpire?: () => void;
32
52
  /** Callback when CAPTCHA encounters an error */
33
53
  onError?: (error: Error) => void;
34
- /** Theme for the widget (light or dark) */
35
- theme?: 'light' | 'dark';
36
- /** Size of the widget */
37
- size?: 'normal' | 'compact' | 'invisible';
38
- /** reCAPTCHA v3 action name */
39
- action?: string;
40
- }
41
- export interface CaptchaProps extends WithBaseProps<CaptchaBaseProps> {
42
54
  }
43
- declare global {
44
- interface Window {
45
- grecaptcha?: unknown;
46
- hcaptcha?: unknown;
47
- turnstile?: unknown;
48
- onRecaptchaLoad?: () => void;
49
- onHcaptchaLoad?: () => void;
50
- onTurnstileLoad?: () => void;
51
- }
52
- }
53
- export declare const Captcha: React.ForwardRefExoticComponent<CaptchaProps & React.RefAttributes<HTMLDivElement>>;
55
+ /**
56
+ * Create Captcha component using the factory pattern
57
+ */
58
+ export declare const Captcha: SerializableComponent<CaptchaProps>;
54
59
  export default Captcha;
55
60
  //# sourceMappingURL=Captcha.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Captcha.d.ts","sourceRoot":"","sources":["../../../src/components/forms/Captcha.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzF,UAAU,gBAAgB;IACxB,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,yBAAyB;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IAC1C,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,gBAAgB,CAAC;CAAG;AAGxE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;QAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;KAC9B;CACF;AAED,eAAO,MAAM,OAAO,qFAgOlB,CAAC;AAOH,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Captcha.d.ts","sourceRoot":"","sources":["../../../src/components/forms/Captcha.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGjG,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,CAAC,EAAE;YACX,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;YAC7F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAA;aAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5E,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;SAC7C,CAAC;QACF,QAAQ,CAAC,EAAE;YACT,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;YAC7F,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;SAC9C,CAAC;QACF,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;YAC7F,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;SAC9C,CAAC;KACH;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,YAAY,CAAC;IAC/E,sDAAsD;IACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAyND;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,qBAAqB,CAAC,YAAY,CAKtD,CAAC;AAEH,eAAe,OAAO,CAAC"}
@@ -6,22 +6,25 @@
6
6
  * - Supports FormControlLabel for proper label positioning
7
7
  * - Handles required and disabled states
8
8
  * - Helper text support
9
- * - Base props support for grid behavior and styling
9
+ * - Schema-driven architecture with serialization support
10
10
  *
11
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
12
12
  */
13
- import React from 'react';
14
- import { WithBaseProps } from '../../hooks/useBaseProps';
15
- interface FormCheckboxBaseProps {
16
- label: string;
17
- checked: boolean;
13
+ import type { SchemaProps } from '@qwickapps/schema';
14
+ import FormCheckboxModel from '../../schemas/FormCheckboxSchema';
15
+ import { ViewProps } from '../shared/viewProps';
16
+ import { SerializableComponent } from '../shared/createSerializableView';
17
+ /**
18
+ * Props interface for FormCheckbox component
19
+ * Combines schema props with callback handler
20
+ */
21
+ export interface FormCheckboxProps extends ViewProps, SchemaProps<typeof FormCheckboxModel> {
22
+ /** Callback when checkbox state changes */
18
23
  onChange: (checked: boolean) => void;
19
- helperText?: string;
20
- required?: boolean;
21
- disabled?: boolean;
22
- }
23
- export interface FormCheckboxProps extends WithBaseProps<FormCheckboxBaseProps> {
24
24
  }
25
- export declare const FormCheckbox: React.ForwardRefExoticComponent<FormCheckboxProps & React.RefAttributes<HTMLDivElement>>;
25
+ /**
26
+ * Create FormCheckbox component using the factory pattern
27
+ */
28
+ export declare const FormCheckbox: SerializableComponent<FormCheckboxProps>;
26
29
  export default FormCheckbox;
27
30
  //# sourceMappingURL=FormCheckbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormCheckbox.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;CAAG;AAElF,eAAO,MAAM,YAAY,0FA2EvB,CAAC;AAOH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"FormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormCheckbox.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,iBAAiB,CAAC;IACzF,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAiED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,qBAAqB,CAAC,iBAAiB,CAKhE,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -4,40 +4,37 @@
4
4
  * Features:
5
5
  * - Uses QwickApps CSS theme variables for consistent styling
6
6
  * - Supports text, number, password, and email input types
7
- * - Integrated with MUI FormControl, Input, and Select
7
+ * - Integrated with MUI FormControl, Input
8
8
  * - Handles readonly, disabled, and required states
9
9
  * - Support for adornments and helper text
10
- * - Base props support for grid behavior and styling
10
+ * - Schema-driven architecture with serialization support
11
11
  *
12
12
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
13
13
  */
14
14
  import React from 'react';
15
- import { WithBaseProps } from '../../hooks/useBaseProps';
16
- export interface FormFieldOption {
17
- value: string | number;
18
- label: string;
19
- }
20
- interface FormFieldBaseProps {
21
- label: string;
22
- value: string | number;
15
+ import type { SchemaProps } from '@qwickapps/schema';
16
+ import FormFieldModel from '../../schemas/FormFieldSchema';
17
+ import { ViewProps } from '../shared/viewProps';
18
+ import { SerializableComponent } from '../shared/createSerializableView';
19
+ /**
20
+ * Props interface for FormField component
21
+ * Combines schema props with callback handlers and adornments
22
+ */
23
+ export interface FormFieldProps extends ViewProps, SchemaProps<typeof FormFieldModel> {
24
+ /** Callback when value changes */
23
25
  onChange?: (value: string | number) => void;
26
+ /** Raw change handler with event */
24
27
  onChangeRaw?: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
25
- type?: 'text' | 'number' | 'password' | 'email' | 'tel';
26
- helperText?: string;
27
- required?: boolean;
28
- readOnly?: boolean;
29
- disabled?: boolean;
30
- disabledColor?: string;
31
- fullWidth?: boolean;
32
- multiline?: boolean;
33
- rows?: number;
34
- placeholder?: string;
28
+ /** Start adornment (icon, text, etc.) */
35
29
  startAdornment?: React.ReactNode;
30
+ /** End adornment (icon, text, etc.) */
36
31
  endAdornment?: React.ReactNode;
32
+ /** Additional input props */
37
33
  inputProps?: unknown;
38
34
  }
39
- export interface FormFieldProps extends WithBaseProps<FormFieldBaseProps> {
40
- }
41
- export declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
35
+ /**
36
+ * Create FormField component using the factory pattern
37
+ */
38
+ export declare const FormField: SerializableComponent<FormFieldProps>;
42
39
  export default FormField;
43
40
  //# sourceMappingURL=FormField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACrF,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,kBAAkB,CAAC;CAAG;AAE5E,eAAO,MAAM,SAAS,uFAyHpB,CAAC;AAOH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,cAAc,CAAC;IACnF,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACrF,yCAAyC;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,uCAAuC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA+GD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,qBAAqB,CAAC,cAAc,CAK1D,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -6,30 +6,31 @@
6
6
  * - Simplified select-only interface (use FormField for mixed inputs)
7
7
  * - Support for placeholder, size variants, and helper text
8
8
  * - Integrated with MUI FormControl and Select
9
- * - Base props support for grid behavior and styling
9
+ * - Schema-driven architecture with serialization support
10
10
  *
11
11
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
12
12
  */
13
- import React from 'react';
14
- import { WithBaseProps } from '../../hooks/useBaseProps';
13
+ import type { SchemaProps } from '@qwickapps/schema';
14
+ import FormSelectModel from '../../schemas/FormSelectSchema';
15
+ import { ViewProps } from '../shared/viewProps';
16
+ import { SerializableComponent } from '../shared/createSerializableView';
15
17
  export interface FormSelectOption {
16
18
  value: string | number;
17
19
  label: string;
18
20
  }
19
- interface FormSelectBaseProps {
20
- label?: string;
21
- value: string | number;
21
+ /**
22
+ * Props interface for FormSelect component
23
+ * Combines schema props with callback handlers
24
+ */
25
+ export interface FormSelectProps extends ViewProps, SchemaProps<typeof FormSelectModel> {
26
+ /** Callback when value changes */
22
27
  onChange: (value: string | number) => void;
28
+ /** Options array (runtime prop, overrides schema) */
23
29
  options: FormSelectOption[];
24
- helperText?: string;
25
- required?: boolean;
26
- disabled?: boolean;
27
- fullWidth?: boolean;
28
- size?: 'small' | 'medium';
29
- placeholder?: string;
30
30
  }
31
- export interface FormSelectProps extends WithBaseProps<FormSelectBaseProps> {
32
- }
33
- export declare const FormSelect: React.ForwardRefExoticComponent<FormSelectProps & React.RefAttributes<HTMLDivElement>>;
31
+ /**
32
+ * Create FormSelect component using the factory pattern
33
+ */
34
+ export declare const FormSelect: SerializableComponent<FormSelectProps>;
34
35
  export default FormSelect;
35
36
  //# sourceMappingURL=FormSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormSelect.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAgB,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa,CAAC,mBAAmB,CAAC;CAAG;AAE9E,eAAO,MAAM,UAAU,wFAyFrB,CAAC;AAOH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FormSelect.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormSelect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS,EAAE,WAAW,CAAC,OAAO,eAAe,CAAC;IACrF,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,qDAAqD;IACrD,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAiFD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAAC,eAAe,CAK5D,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -26,7 +26,7 @@ export interface QwickAppProps {
26
26
  enableScaffolding?: boolean;
27
27
  /** Primary navigation items for scaffolding */
28
28
  navigationItems?: MenuItem[];
29
- /** App bar configuration for scaffolding */
29
+ /** App bar configuration for scaffolding - use render function for actions to cross server/client boundaries safely */
30
30
  appBar?: ScaffoldProps['appBar'];
31
31
  /** Whether to show app bar when scaffolding is enabled (default: true) */
32
32
  showAppBar?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"QwickAppContext.d.ts","sourceRoot":"","sources":["../../src/contexts/QwickAppContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uCAAuC;IACvC,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,yEAAyE;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,KAAK,IAAI,CAAC;CAE1M;AAED,QAAA,MAAM,eAAe,qCAYnB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,eAAO,MAAM,WAAW,QAAO,oBAM9B,CAAC"}
1
+ {"version":3,"file":"QwickAppContext.d.ts","sourceRoot":"","sources":["../../src/contexts/QwickAppContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,6BAA6B;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,uHAAuH;IACvH,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,qCAAqC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uCAAuC;IACvC,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,yEAAyE;IACzE,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,KAAK,IAAI,CAAC;CAE1M;AAED,QAAA,MAAM,eAAe,qCAYnB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,eAAO,MAAM,WAAW,QAAO,oBAM9B,CAAC"}