@axenstudio/axen-form 0.1.10 → 0.1.12

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 (88) hide show
  1. package/README.md +783 -270
  2. package/dist/core/dateUtils.cjs +7 -3
  3. package/dist/core/dateUtils.d.ts +1 -1
  4. package/dist/core/dateUtils.d.ts.map +1 -1
  5. package/dist/core/dateUtils.js +7 -3
  6. package/dist/core/validation.cjs +4 -1
  7. package/dist/core/validation.d.ts.map +1 -1
  8. package/dist/core/validation.js +4 -1
  9. package/dist/fields/AutocompleteField/AutocompleteField.cjs +32 -32
  10. package/dist/fields/AutocompleteField/AutocompleteField.js +32 -32
  11. package/dist/fields/AutocompleteField/AutocompleteField.module.css.cjs +34 -13
  12. package/dist/fields/AutocompleteField/AutocompleteField.module.css.js +34 -13
  13. package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.cjs +90 -88
  14. package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.d.ts.map +1 -1
  15. package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.js +90 -88
  16. package/dist/fields/AutocompletePredictField/AutocompletePredictField.cjs +81 -64
  17. package/dist/fields/AutocompletePredictField/AutocompletePredictField.d.ts.map +1 -1
  18. package/dist/fields/AutocompletePredictField/AutocompletePredictField.js +81 -64
  19. package/dist/fields/CheckboxField/CheckboxField.module.css.cjs +12 -0
  20. package/dist/fields/CheckboxField/CheckboxField.module.css.js +12 -0
  21. package/dist/fields/ColorField/ColorField.module.css.cjs +12 -0
  22. package/dist/fields/ColorField/ColorField.module.css.js +12 -0
  23. package/dist/fields/DateField/DateField.cjs +56 -4
  24. package/dist/fields/DateField/DateField.d.ts +1 -1
  25. package/dist/fields/DateField/DateField.d.ts.map +1 -1
  26. package/dist/fields/DateField/DateField.js +56 -4
  27. package/dist/fields/DateField/DatePicker.cjs +194 -0
  28. package/dist/fields/DateField/DatePicker.d.ts +11 -0
  29. package/dist/fields/DateField/DatePicker.d.ts.map +1 -0
  30. package/dist/fields/DateField/DatePicker.js +194 -0
  31. package/dist/fields/DateField/DatePicker.module.css.cjs +62 -0
  32. package/dist/fields/DateField/DatePicker.module.css.js +62 -0
  33. package/dist/fields/DateTimeField/DateTimeField.cjs +126 -8
  34. package/dist/fields/DateTimeField/DateTimeField.d.ts +2 -1
  35. package/dist/fields/DateTimeField/DateTimeField.d.ts.map +1 -1
  36. package/dist/fields/DateTimeField/DateTimeField.js +126 -8
  37. package/dist/fields/PasswordField/PasswordField.module.css.cjs +12 -0
  38. package/dist/fields/PasswordField/PasswordField.module.css.js +12 -0
  39. package/dist/fields/RadioField/RadioField.module.css.cjs +12 -0
  40. package/dist/fields/RadioField/RadioField.module.css.js +12 -0
  41. package/dist/fields/SelectField/SelectField.cjs +6 -1
  42. package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
  43. package/dist/fields/SelectField/SelectField.js +6 -1
  44. package/dist/fields/SliderField/SliderField.module.css.cjs +15 -3
  45. package/dist/fields/SliderField/SliderField.module.css.js +15 -3
  46. package/dist/fields/SwitchField/SwitchField.module.css.cjs +12 -0
  47. package/dist/fields/SwitchField/SwitchField.module.css.js +12 -0
  48. package/dist/fields/TimeField/TimeField.cjs +60 -5
  49. package/dist/fields/TimeField/TimeField.d.ts +2 -1
  50. package/dist/fields/TimeField/TimeField.d.ts.map +1 -1
  51. package/dist/fields/TimeField/TimeField.js +60 -5
  52. package/dist/fields/TimeField/TimePicker.cjs +182 -0
  53. package/dist/fields/TimeField/TimePicker.d.ts +11 -0
  54. package/dist/fields/TimeField/TimePicker.d.ts.map +1 -0
  55. package/dist/fields/TimeField/TimePicker.js +182 -0
  56. package/dist/fields/TimeField/TimePicker.module.css.cjs +50 -0
  57. package/dist/fields/TimeField/TimePicker.module.css.js +50 -0
  58. package/dist/fields/defaultPlaceholders.cjs +1 -0
  59. package/dist/fields/defaultPlaceholders.d.ts.map +1 -1
  60. package/dist/fields/defaultPlaceholders.js +1 -0
  61. package/dist/fields/fieldBase.module.css.cjs +373 -18
  62. package/dist/fields/fieldBase.module.css.js +373 -18
  63. package/dist/fields/icons.cjs +2 -0
  64. package/dist/fields/icons.d.ts +4 -0
  65. package/dist/fields/icons.d.ts.map +1 -1
  66. package/dist/fields/icons.js +2 -0
  67. package/dist/index.cjs +230 -3
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +230 -3
  71. package/dist/layout/Box/Box.module.css.cjs +12 -0
  72. package/dist/layout/Box/Box.module.css.js +12 -0
  73. package/dist/layout/Divider/Divider.module.css.cjs +12 -0
  74. package/dist/layout/Divider/Divider.module.css.js +12 -0
  75. package/dist/layout/Grid/Grid.module.css.cjs +12 -0
  76. package/dist/layout/Grid/Grid.module.css.js +12 -0
  77. package/dist/layout/Stack/Stack.module.css.cjs +12 -0
  78. package/dist/layout/Stack/Stack.module.css.js +12 -0
  79. package/dist/react/AxenForm.cjs +228 -3
  80. package/dist/react/AxenForm.js +228 -3
  81. package/dist/react/fieldGroup.module.css.cjs +12 -0
  82. package/dist/react/fieldGroup.module.css.js +12 -0
  83. package/dist/react/gridCell.module.css.cjs +12 -0
  84. package/dist/react/gridCell.module.css.js +12 -0
  85. package/dist/types.d.ts +1 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/package.json +4 -9
  88. package/dist/axen-form.css +0 -1057
package/dist/index.cjs CHANGED
@@ -1,8 +1,231 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode(`/* ═══════════════════════════════════════════════
7
+ axen-form CSS Reset
8
+ Minimal reset for form elements
9
+ ═══════════════════════════════════════════════ */
10
+
11
+ *,
12
+ *::before,
13
+ *::after {
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ /* Reset form element defaults */
18
+ input,
19
+ textarea,
20
+ select,
21
+ button {
22
+ font-family: inherit;
23
+ font-size: inherit;
24
+ line-height: inherit;
25
+ color: inherit;
26
+ margin: 0;
27
+ }
28
+
29
+ /* Remove default styling from number inputs */
30
+ input[type='number']::-webkit-inner-spin-button,
31
+ input[type='number']::-webkit-outer-spin-button {
32
+ -webkit-appearance: none;
33
+ margin: 0;
34
+ }
35
+
36
+ input[type='number'] {
37
+ -moz-appearance: textfield;
38
+ appearance: textfield;
39
+ }
40
+
41
+ /* Remove default date/time input icons if using custom components */
42
+ input[type='date']::-webkit-calendar-picker-indicator,
43
+ input[type='time']::-webkit-calendar-picker-indicator,
44
+ input[type='datetime-local']::-webkit-calendar-picker-indicator {
45
+ cursor: pointer;
46
+ }
47
+
48
+ /* Ensure fieldset/legend reset */
49
+ fieldset {
50
+ border: none;
51
+ padding: 0;
52
+ margin: 0;
53
+ }
54
+
55
+ legend {
56
+ padding: 0;
57
+ }
58
+
59
+ /* Remove textarea resize handle (can be overridden) */
60
+ textarea {
61
+ resize: vertical;
62
+ }
63
+
64
+ /* Focus visible only — keyboard navigation (A11y) */
65
+ :focus:not(:focus-visible) {
66
+ outline: none;
67
+ }
68
+
69
+ :focus-visible {
70
+ outline: var(--axen-focus-ring-width, 2px) solid
71
+ var(--axen-focus-ring-color, rgba(25, 118, 210, 0.5));
72
+ outline-offset: var(--axen-focus-ring-offset, 2px);
73
+ }
74
+ /* ═══════════════════════════════════════════════
75
+ axen-form Built-in Theme Presets
76
+ Applied via data-axen-theme attribute on form
77
+ ═══════════════════════════════════════════════ */
78
+
79
+ /* ── Default Theme (Blue) ────────────────────── */
80
+ [data-axen-theme='default'] {
81
+ --axen-color-primary: #1976d2;
82
+ --axen-color-primary-hover: #1565c0;
83
+ --axen-color-primary-light: #e3f2fd;
84
+ --axen-color-input-bg: #f0f7ff;
85
+ --axen-color-label: #1565c0;
86
+ }
87
+
88
+ /* ── Subtle Theme (Gray) ─────────────────────── */
89
+ [data-axen-theme='subtle'] {
90
+ --axen-color-primary: #546e7a;
91
+ --axen-color-primary-hover: #37474f;
92
+ --axen-color-primary-light: #eceff1;
93
+ --axen-color-input-bg: #f5f5f5;
94
+ --axen-color-label: #37474f;
95
+ }
96
+
97
+ /* ── Green Theme ─────────────────────────────── */
98
+ [data-axen-theme='green'] {
99
+ --axen-color-primary: #2e7d32;
100
+ --axen-color-primary-hover: #1b5e20;
101
+ --axen-color-primary-light: #e8f5e9;
102
+ --axen-color-input-bg: #f1f8e9;
103
+ --axen-color-label: #1b5e20;
104
+ }
105
+ /* ═══════════════════════════════════════════════
106
+ axen-form Design Tokens
107
+ CSS Custom Properties — A11y-aware & Responsive
108
+ ═══════════════════════════════════════════════ */
109
+
110
+ :root {
111
+ /* Force light rendering for all native form controls (select, date, etc.) */
112
+ color-scheme: light;
113
+
114
+ /* ── Color Palette ─────────────────────────── */
115
+ --axen-color-primary: #1976d2;
116
+ --axen-color-primary-hover: #1565c0;
117
+ --axen-color-primary-light: #e3f2fd;
118
+ --axen-color-error: #d32f2f;
119
+ --axen-color-error-light: #fdecea;
120
+ --axen-color-success: #2e7d32;
121
+ --axen-color-warning: #ed6c02;
122
+ --axen-color-text: #1a1a1a;
123
+ --axen-color-text-secondary: #666666;
124
+ --axen-color-text-disabled: #9e9e9e;
125
+ --axen-color-border: #d0d5dd;
126
+ --axen-color-border-hover: #888888;
127
+ --axen-color-border-focus: var(--axen-color-primary);
128
+ --axen-color-bg: #ffffff;
129
+ --axen-color-bg-disabled: #f5f5f5;
130
+ --axen-color-bg-hover: #fafafa;
131
+ --axen-color-input-bg: #ffffff;
132
+ --axen-color-label: var(--axen-color-text);
133
+
134
+ /* ── Typography ────────────────────────────── */
135
+ --axen-font-family:
136
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
137
+ --axen-font-size-xs: 0.75rem;
138
+ --axen-font-size-sm: 0.875rem;
139
+ --axen-font-size-md: 1rem;
140
+ --axen-font-size-lg: 1.125rem;
141
+ --axen-font-weight-normal: 400;
142
+ --axen-font-weight-medium: 500;
143
+ --axen-font-weight-bold: 600;
144
+ --axen-line-height: 1.5;
145
+
146
+ /* ── Spacing ───────────────────────────────── */
147
+ --axen-space-xs: 0.25rem;
148
+ --axen-space-sm: 0.5rem;
149
+ --axen-space-md: 1rem;
150
+ --axen-space-lg: 1.5rem;
151
+ --axen-space-xl: 2rem;
152
+
153
+ /* ── Border & Radius ───────────────────────── */
154
+ --axen-border-width: 1px;
155
+ --axen-border-radius: 8px;
156
+ --axen-border-radius-sm: 4px;
157
+ --axen-border-radius-lg: 10px;
158
+ --axen-border-radius-pill: 9999px;
159
+
160
+ /* ── Focus Ring (A11y: WCAG 2.4.7) ─────────── */
161
+ --axen-focus-ring-width: 2px;
162
+ --axen-focus-ring-offset: 2px;
163
+ --axen-focus-ring-color: rgba(25, 118, 210, 0.5);
164
+
165
+ /* ── Field Sizing ──────────────────────────── */
166
+ --axen-field-height: 2.75rem;
167
+ --axen-field-min-height: 44px; /* A11y: min 44px touch target */
168
+ --axen-field-padding-x: 0.75rem;
169
+ --axen-field-padding-y: 0.5rem;
170
+ --axen-label-margin-bottom: 0.375rem;
171
+ --axen-helper-margin-top: 0.25rem;
172
+
173
+ /* ── Transitions ───────────────────────────── */
174
+ --axen-transition-fast: 150ms ease;
175
+ --axen-transition-normal: 200ms ease;
176
+
177
+ /* ── Shadows ───────────────────────────────── */
178
+ --axen-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
179
+ --axen-shadow-focus: 0 0 0 var(--axen-focus-ring-width) var(--axen-focus-ring-color);
180
+
181
+ /* ── Breakpoints (for reference in JS) ─────── */
182
+ --axen-bp-sm: 600px;
183
+ --axen-bp-md: 900px;
184
+ --axen-bp-lg: 1200px;
185
+ --axen-bp-xl: 1536px;
186
+
187
+ /* ── Z-index layers ────────────────────────── */
188
+ --axen-z-dropdown: 100;
189
+ --axen-z-tooltip: 200;
190
+ }
191
+
192
+ /* ── Dark Mode ───────────────────────────────
193
+ Removed: axen-form ships as light-only by default.
194
+ Form elements are locked to color-scheme: light above.
195
+ Consumers needing dark mode can override tokens via
196
+ a custom [data-axen-theme="dark"] selector.
197
+ ─────────────────────────────────────────────── */
198
+
199
+ /* ── High Contrast Mode (A11y) ──────────────── */
200
+ @media (prefers-contrast: more) {
201
+ :root {
202
+ --axen-color-border: #000000;
203
+ --axen-color-text: #000000;
204
+ --axen-color-text-secondary: #333333;
205
+ --axen-border-width: 2px;
206
+ --axen-focus-ring-width: 3px;
207
+ --axen-focus-ring-color: rgba(0, 0, 0, 0.8);
208
+ }
209
+ }
210
+
211
+ /* ── Reduced Motion (A11y: WCAG 2.3.3) ──────── */
212
+ @media (prefers-reduced-motion: reduce) {
213
+ :root {
214
+ --axen-transition-fast: 0ms;
215
+ --axen-transition-normal: 0ms;
216
+ }
217
+ }`));
218
+ document.head.appendChild(elementStyle);
219
+ }
220
+ } catch (e) {
221
+ console.error("vite-plugin-css-injected-by-js", e);
222
+ }
223
+ })();
1
224
  "use strict";
2
225
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- ;/* empty css */
4
- ;/* empty css */
5
- ;/* empty css */
226
+ ;
227
+ ;
228
+ ;
6
229
  const types = require("./types.cjs");
7
230
  const dateUtils = require("./core/dateUtils.cjs");
8
231
  const formStore = require("./core/formStore.cjs");
@@ -24,6 +247,7 @@ const CheckboxField = require("./fields/CheckboxField/CheckboxField.cjs");
24
247
  const ColorField = require("./fields/ColorField/ColorField.cjs");
25
248
  const CurrencyField = require("./fields/CurrencyField/CurrencyField.cjs");
26
249
  const DateField = require("./fields/DateField/DateField.cjs");
250
+ const DatePicker = require("./fields/DateField/DatePicker.cjs");
27
251
  const DateTimeField = require("./fields/DateTimeField/DateTimeField.cjs");
28
252
  const defaultComponentMap = require("./fields/defaultComponentMap.cjs");
29
253
  const EmailField = require("./fields/EmailField/EmailField.cjs");
@@ -37,6 +261,7 @@ const SwitchField = require("./fields/SwitchField/SwitchField.cjs");
37
261
  const TextareaField = require("./fields/TextareaField/TextareaField.cjs");
38
262
  const TextField = require("./fields/TextField/TextField.cjs");
39
263
  const TimeField = require("./fields/TimeField/TimeField.cjs");
264
+ const TimePicker = require("./fields/TimeField/TimePicker.cjs");
40
265
  const Box = require("./layout/Box/Box.cjs");
41
266
  const Divider = require("./layout/Divider/Divider.cjs");
42
267
  const Grid = require("./layout/Grid/Grid.cjs");
@@ -83,6 +308,7 @@ exports.CheckboxField = CheckboxField.CheckboxField;
83
308
  exports.ColorField = ColorField.ColorField;
84
309
  exports.CurrencyField = CurrencyField.CurrencyField;
85
310
  exports.DateField = DateField.DateField;
311
+ exports.DatePicker = DatePicker.DatePicker;
86
312
  exports.DateTimeField = DateTimeField.DateTimeField;
87
313
  exports.defaultComponentMap = defaultComponentMap.defaultComponentMap;
88
314
  exports.EmailField = EmailField.EmailField;
@@ -96,6 +322,7 @@ exports.SwitchField = SwitchField.SwitchField;
96
322
  exports.TextareaField = TextareaField.TextareaField;
97
323
  exports.TextField = TextField.TextField;
98
324
  exports.TimeField = TimeField.TimeField;
325
+ exports.TimePicker = TimePicker.TimePicker;
99
326
  exports.Box = Box.Box;
100
327
  exports.Divider = Divider.Divider;
101
328
  exports.Grid = Grid.Grid;
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export { CheckboxField } from './fields/CheckboxField/CheckboxField';
21
21
  export { ColorField } from './fields/ColorField/ColorField';
22
22
  export { CurrencyField } from './fields/CurrencyField/CurrencyField';
23
23
  export { DateField } from './fields/DateField/DateField';
24
+ export { DatePicker } from './fields/DateField/DatePicker';
24
25
  export { DateTimeField } from './fields/DateTimeField/DateTimeField';
25
26
  export { defaultComponentMap } from './fields/defaultComponentMap';
26
27
  export { EmailField } from './fields/EmailField/EmailField';
@@ -34,6 +35,7 @@ export { SwitchField } from './fields/SwitchField/SwitchField';
34
35
  export { TextareaField } from './fields/TextareaField/TextareaField';
35
36
  export { TextField } from './fields/TextField/TextField';
36
37
  export { TimeField } from './fields/TimeField/TimeField';
38
+ export { TimePicker } from './fields/TimeField/TimePicker';
37
39
  export { Box } from './layout/Box/Box';
38
40
  export { Divider } from './layout/Divider/Divider';
39
41
  export { Grid } from './layout/Grid/Grid';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,229 @@
1
- /* empty css */
2
- /* empty css */
3
- /* empty css */
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode(`/* ═══════════════════════════════════════════════
7
+ axen-form CSS Reset
8
+ Minimal reset for form elements
9
+ ═══════════════════════════════════════════════ */
10
+
11
+ *,
12
+ *::before,
13
+ *::after {
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ /* Reset form element defaults */
18
+ input,
19
+ textarea,
20
+ select,
21
+ button {
22
+ font-family: inherit;
23
+ font-size: inherit;
24
+ line-height: inherit;
25
+ color: inherit;
26
+ margin: 0;
27
+ }
28
+
29
+ /* Remove default styling from number inputs */
30
+ input[type='number']::-webkit-inner-spin-button,
31
+ input[type='number']::-webkit-outer-spin-button {
32
+ -webkit-appearance: none;
33
+ margin: 0;
34
+ }
35
+
36
+ input[type='number'] {
37
+ -moz-appearance: textfield;
38
+ appearance: textfield;
39
+ }
40
+
41
+ /* Remove default date/time input icons if using custom components */
42
+ input[type='date']::-webkit-calendar-picker-indicator,
43
+ input[type='time']::-webkit-calendar-picker-indicator,
44
+ input[type='datetime-local']::-webkit-calendar-picker-indicator {
45
+ cursor: pointer;
46
+ }
47
+
48
+ /* Ensure fieldset/legend reset */
49
+ fieldset {
50
+ border: none;
51
+ padding: 0;
52
+ margin: 0;
53
+ }
54
+
55
+ legend {
56
+ padding: 0;
57
+ }
58
+
59
+ /* Remove textarea resize handle (can be overridden) */
60
+ textarea {
61
+ resize: vertical;
62
+ }
63
+
64
+ /* Focus visible only — keyboard navigation (A11y) */
65
+ :focus:not(:focus-visible) {
66
+ outline: none;
67
+ }
68
+
69
+ :focus-visible {
70
+ outline: var(--axen-focus-ring-width, 2px) solid
71
+ var(--axen-focus-ring-color, rgba(25, 118, 210, 0.5));
72
+ outline-offset: var(--axen-focus-ring-offset, 2px);
73
+ }
74
+ /* ═══════════════════════════════════════════════
75
+ axen-form Built-in Theme Presets
76
+ Applied via data-axen-theme attribute on form
77
+ ═══════════════════════════════════════════════ */
78
+
79
+ /* ── Default Theme (Blue) ────────────────────── */
80
+ [data-axen-theme='default'] {
81
+ --axen-color-primary: #1976d2;
82
+ --axen-color-primary-hover: #1565c0;
83
+ --axen-color-primary-light: #e3f2fd;
84
+ --axen-color-input-bg: #f0f7ff;
85
+ --axen-color-label: #1565c0;
86
+ }
87
+
88
+ /* ── Subtle Theme (Gray) ─────────────────────── */
89
+ [data-axen-theme='subtle'] {
90
+ --axen-color-primary: #546e7a;
91
+ --axen-color-primary-hover: #37474f;
92
+ --axen-color-primary-light: #eceff1;
93
+ --axen-color-input-bg: #f5f5f5;
94
+ --axen-color-label: #37474f;
95
+ }
96
+
97
+ /* ── Green Theme ─────────────────────────────── */
98
+ [data-axen-theme='green'] {
99
+ --axen-color-primary: #2e7d32;
100
+ --axen-color-primary-hover: #1b5e20;
101
+ --axen-color-primary-light: #e8f5e9;
102
+ --axen-color-input-bg: #f1f8e9;
103
+ --axen-color-label: #1b5e20;
104
+ }
105
+ /* ═══════════════════════════════════════════════
106
+ axen-form Design Tokens
107
+ CSS Custom Properties — A11y-aware & Responsive
108
+ ═══════════════════════════════════════════════ */
109
+
110
+ :root {
111
+ /* Force light rendering for all native form controls (select, date, etc.) */
112
+ color-scheme: light;
113
+
114
+ /* ── Color Palette ─────────────────────────── */
115
+ --axen-color-primary: #1976d2;
116
+ --axen-color-primary-hover: #1565c0;
117
+ --axen-color-primary-light: #e3f2fd;
118
+ --axen-color-error: #d32f2f;
119
+ --axen-color-error-light: #fdecea;
120
+ --axen-color-success: #2e7d32;
121
+ --axen-color-warning: #ed6c02;
122
+ --axen-color-text: #1a1a1a;
123
+ --axen-color-text-secondary: #666666;
124
+ --axen-color-text-disabled: #9e9e9e;
125
+ --axen-color-border: #d0d5dd;
126
+ --axen-color-border-hover: #888888;
127
+ --axen-color-border-focus: var(--axen-color-primary);
128
+ --axen-color-bg: #ffffff;
129
+ --axen-color-bg-disabled: #f5f5f5;
130
+ --axen-color-bg-hover: #fafafa;
131
+ --axen-color-input-bg: #ffffff;
132
+ --axen-color-label: var(--axen-color-text);
133
+
134
+ /* ── Typography ────────────────────────────── */
135
+ --axen-font-family:
136
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
137
+ --axen-font-size-xs: 0.75rem;
138
+ --axen-font-size-sm: 0.875rem;
139
+ --axen-font-size-md: 1rem;
140
+ --axen-font-size-lg: 1.125rem;
141
+ --axen-font-weight-normal: 400;
142
+ --axen-font-weight-medium: 500;
143
+ --axen-font-weight-bold: 600;
144
+ --axen-line-height: 1.5;
145
+
146
+ /* ── Spacing ───────────────────────────────── */
147
+ --axen-space-xs: 0.25rem;
148
+ --axen-space-sm: 0.5rem;
149
+ --axen-space-md: 1rem;
150
+ --axen-space-lg: 1.5rem;
151
+ --axen-space-xl: 2rem;
152
+
153
+ /* ── Border & Radius ───────────────────────── */
154
+ --axen-border-width: 1px;
155
+ --axen-border-radius: 8px;
156
+ --axen-border-radius-sm: 4px;
157
+ --axen-border-radius-lg: 10px;
158
+ --axen-border-radius-pill: 9999px;
159
+
160
+ /* ── Focus Ring (A11y: WCAG 2.4.7) ─────────── */
161
+ --axen-focus-ring-width: 2px;
162
+ --axen-focus-ring-offset: 2px;
163
+ --axen-focus-ring-color: rgba(25, 118, 210, 0.5);
164
+
165
+ /* ── Field Sizing ──────────────────────────── */
166
+ --axen-field-height: 2.75rem;
167
+ --axen-field-min-height: 44px; /* A11y: min 44px touch target */
168
+ --axen-field-padding-x: 0.75rem;
169
+ --axen-field-padding-y: 0.5rem;
170
+ --axen-label-margin-bottom: 0.375rem;
171
+ --axen-helper-margin-top: 0.25rem;
172
+
173
+ /* ── Transitions ───────────────────────────── */
174
+ --axen-transition-fast: 150ms ease;
175
+ --axen-transition-normal: 200ms ease;
176
+
177
+ /* ── Shadows ───────────────────────────────── */
178
+ --axen-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
179
+ --axen-shadow-focus: 0 0 0 var(--axen-focus-ring-width) var(--axen-focus-ring-color);
180
+
181
+ /* ── Breakpoints (for reference in JS) ─────── */
182
+ --axen-bp-sm: 600px;
183
+ --axen-bp-md: 900px;
184
+ --axen-bp-lg: 1200px;
185
+ --axen-bp-xl: 1536px;
186
+
187
+ /* ── Z-index layers ────────────────────────── */
188
+ --axen-z-dropdown: 100;
189
+ --axen-z-tooltip: 200;
190
+ }
191
+
192
+ /* ── Dark Mode ───────────────────────────────
193
+ Removed: axen-form ships as light-only by default.
194
+ Form elements are locked to color-scheme: light above.
195
+ Consumers needing dark mode can override tokens via
196
+ a custom [data-axen-theme="dark"] selector.
197
+ ─────────────────────────────────────────────── */
198
+
199
+ /* ── High Contrast Mode (A11y) ──────────────── */
200
+ @media (prefers-contrast: more) {
201
+ :root {
202
+ --axen-color-border: #000000;
203
+ --axen-color-text: #000000;
204
+ --axen-color-text-secondary: #333333;
205
+ --axen-border-width: 2px;
206
+ --axen-focus-ring-width: 3px;
207
+ --axen-focus-ring-color: rgba(0, 0, 0, 0.8);
208
+ }
209
+ }
210
+
211
+ /* ── Reduced Motion (A11y: WCAG 2.3.3) ──────── */
212
+ @media (prefers-reduced-motion: reduce) {
213
+ :root {
214
+ --axen-transition-fast: 0ms;
215
+ --axen-transition-normal: 0ms;
216
+ }
217
+ }`));
218
+ document.head.appendChild(elementStyle);
219
+ }
220
+ } catch (e) {
221
+ console.error("vite-plugin-css-injected-by-js", e);
222
+ }
223
+ })();
224
+
225
+
226
+
4
227
  import { isFieldGroup } from "./types.js";
5
228
  import { formatDateLocale, formatDateTimeLocale, formatTimeLocale, getDefaultLocale, toISODateString, toISODateTimeLocalString, toISOTimeString } from "./core/dateUtils.js";
6
229
  import { createFormStore } from "./core/formStore.js";
@@ -22,6 +245,7 @@ import { CheckboxField } from "./fields/CheckboxField/CheckboxField.js";
22
245
  import { ColorField } from "./fields/ColorField/ColorField.js";
23
246
  import { CurrencyField } from "./fields/CurrencyField/CurrencyField.js";
24
247
  import { DateField } from "./fields/DateField/DateField.js";
248
+ import { DatePicker } from "./fields/DateField/DatePicker.js";
25
249
  import { DateTimeField } from "./fields/DateTimeField/DateTimeField.js";
26
250
  import { defaultComponentMap } from "./fields/defaultComponentMap.js";
27
251
  import { EmailField } from "./fields/EmailField/EmailField.js";
@@ -35,6 +259,7 @@ import { SwitchField } from "./fields/SwitchField/SwitchField.js";
35
259
  import { TextareaField } from "./fields/TextareaField/TextareaField.js";
36
260
  import { TextField } from "./fields/TextField/TextField.js";
37
261
  import { TimeField } from "./fields/TimeField/TimeField.js";
262
+ import { TimePicker } from "./fields/TimeField/TimePicker.js";
38
263
  import { Box } from "./layout/Box/Box.js";
39
264
  import { Divider } from "./layout/Divider/Divider.js";
40
265
  import { Grid } from "./layout/Grid/Grid.js";
@@ -56,6 +281,7 @@ export {
56
281
  ColorField,
57
282
  CurrencyField,
58
283
  DateField,
284
+ DatePicker,
59
285
  DateTimeField,
60
286
  Divider,
61
287
  EmailField,
@@ -73,6 +299,7 @@ export {
73
299
  TextField,
74
300
  TextareaField,
75
301
  TimeField,
302
+ TimePicker,
76
303
  ariaProps,
77
304
  calculateCursorPosition,
78
305
  createFormStore,
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._box_17jtc_1 {\n min-width: 0;\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  "use strict";
2
14
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
15
  const box = "_box_17jtc_1";
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._box_17jtc_1 {\n min-width: 0;\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  const box = "_box_17jtc_1";
2
14
  const styles = {
3
15
  box
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._divider_7khjl_1 {\n border: none;\n margin: 0;\n flex-shrink: 0;\n}\n\n._horizontal_7khjl_7 {\n width: 100%;\n height: 1px;\n background-color: var(--axen-color-border);\n}\n\n._vertical_7khjl_13 {\n width: 1px;\n height: auto;\n align-self: stretch;\n background-color: var(--axen-color-border);\n}\n\n@media (prefers-contrast: more) {\n ._horizontal_7khjl_7,\n ._vertical_7khjl_13 {\n background-color: var(--axen-color-text);\n }\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  "use strict";
2
14
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
15
  const divider = "_divider_7khjl_1";
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._divider_7khjl_1 {\n border: none;\n margin: 0;\n flex-shrink: 0;\n}\n\n._horizontal_7khjl_7 {\n width: 100%;\n height: 1px;\n background-color: var(--axen-color-border);\n}\n\n._vertical_7khjl_13 {\n width: 1px;\n height: auto;\n align-self: stretch;\n background-color: var(--axen-color-border);\n}\n\n@media (prefers-contrast: more) {\n ._horizontal_7khjl_7,\n ._vertical_7khjl_13 {\n background-color: var(--axen-color-text);\n }\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  const divider = "_divider_7khjl_1";
2
14
  const horizontal = "_horizontal_7khjl_7";
3
15
  const vertical = "_vertical_7khjl_13";
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("/* ═══════════════════════════════════════════════\n Grid Layout — Responsive CSS Grid\n 12-column mobile-first system\n ═══════════════════════════════════════════════ */\n\n._container_1asbx_6 {\n display: grid;\n width: 100%;\n}\n\n._item_1asbx_11 {\n min-width: 0; /* Prevent overflow */\n}\n\n/* ── Responsive Breakpoints ──────────────────── */\n\n/* sm ≥ 600px */\n@media (min-width: 600px) {\n ._sm_1asbx_19 {\n grid-column: span var(--axen-grid-sm, 12);\n }\n}\n\n/* md ≥ 900px */\n@media (min-width: 900px) {\n ._md_1asbx_26 {\n grid-column: span var(--axen-grid-md, 12);\n }\n}\n\n/* lg ≥ 1200px */\n@media (min-width: 1200px) {\n ._lg_1asbx_33 {\n grid-column: span var(--axen-grid-lg, 12);\n }\n}\n\n/* xl ≥ 1536px */\n@media (min-width: 1536px) {\n ._xl_1asbx_40 {\n grid-column: span var(--axen-grid-xl, 12);\n }\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  "use strict";
2
14
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
15
  const container = "_container_1asbx_6";
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("/* ═══════════════════════════════════════════════\n Grid Layout — Responsive CSS Grid\n 12-column mobile-first system\n ═══════════════════════════════════════════════ */\n\n._container_1asbx_6 {\n display: grid;\n width: 100%;\n}\n\n._item_1asbx_11 {\n min-width: 0; /* Prevent overflow */\n}\n\n/* ── Responsive Breakpoints ──────────────────── */\n\n/* sm ≥ 600px */\n@media (min-width: 600px) {\n ._sm_1asbx_19 {\n grid-column: span var(--axen-grid-sm, 12);\n }\n}\n\n/* md ≥ 900px */\n@media (min-width: 900px) {\n ._md_1asbx_26 {\n grid-column: span var(--axen-grid-md, 12);\n }\n}\n\n/* lg ≥ 1200px */\n@media (min-width: 1200px) {\n ._lg_1asbx_33 {\n grid-column: span var(--axen-grid-lg, 12);\n }\n}\n\n/* xl ≥ 1536px */\n@media (min-width: 1536px) {\n ._xl_1asbx_40 {\n grid-column: span var(--axen-grid-xl, 12);\n }\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  const container = "_container_1asbx_6";
2
14
  const item = "_item_1asbx_11";
3
15
  const sm = "_sm_1asbx_19";
@@ -1,3 +1,15 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._stack_1m70l_1 {\n min-width: 0;\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
1
13
  "use strict";
2
14
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
15
  const stack = "_stack_1m70l_1";