@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
@@ -0,0 +1,182 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { useState, useRef, useCallback, useEffect } from "react";
3
+ import s from "./TimePicker.module.css.js";
4
+ function pad2(n) {
5
+ return String(n).padStart(2, "0");
6
+ }
7
+ function parseTime(iso) {
8
+ if (!iso) {
9
+ const now = /* @__PURE__ */ new Date();
10
+ return { h: now.getHours(), m: now.getMinutes(), s: now.getSeconds() };
11
+ }
12
+ const parts = iso.split(":").map(Number);
13
+ return {
14
+ h: Number.isFinite(parts[0]) ? parts[0] : 0,
15
+ m: Number.isFinite(parts[1]) ? parts[1] : 0,
16
+ s: Number.isFinite(parts[2]) ? parts[2] : 0
17
+ };
18
+ }
19
+ function to12h(h24) {
20
+ const period = h24 >= 12 ? "PM" : "AM";
21
+ const h12 = h24 % 12 || 12;
22
+ return { h12, period };
23
+ }
24
+ function to24h(h12, period) {
25
+ if (period === "AM") return h12 === 12 ? 0 : h12;
26
+ return h12 === 12 ? 12 : h12 + 12;
27
+ }
28
+ function range(count) {
29
+ return Array.from({ length: count }, (_, i) => i);
30
+ }
31
+ function Column({ label, items, selected, onSelect, ariaLabel }) {
32
+ const columnRef = useRef(null);
33
+ const selectedRef = useRef(null);
34
+ useEffect(() => {
35
+ var _a;
36
+ (_a = selectedRef.current) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
37
+ }, [selected]);
38
+ return /* @__PURE__ */ jsxs("div", { children: [
39
+ /* @__PURE__ */ jsx("div", { className: s.columnLabel, children: label }),
40
+ /* @__PURE__ */ jsx("div", { className: s.column, ref: columnRef, role: "radiogroup", "aria-label": ariaLabel, children: items.map((n) => {
41
+ const isSelected = n === selected;
42
+ return /* @__PURE__ */ jsx(
43
+ "button",
44
+ {
45
+ ref: isSelected ? selectedRef : void 0,
46
+ type: "button",
47
+ role: "radio",
48
+ "aria-checked": isSelected,
49
+ className: `${s.cell} ${isSelected ? s.cellSelected : ""}`,
50
+ onClick: () => onSelect(n),
51
+ children: pad2(n)
52
+ },
53
+ n
54
+ );
55
+ }) })
56
+ ] });
57
+ }
58
+ function TimePicker({
59
+ value,
60
+ showSeconds,
61
+ ampm,
62
+ pickerId,
63
+ onApply,
64
+ onClose
65
+ }) {
66
+ const initial = parseTime(value);
67
+ const [hour24, setHour24] = useState(initial.h);
68
+ const [minute, setMinute] = useState(initial.m);
69
+ const [second, setSecond] = useState(initial.s);
70
+ const [period, setPeriod] = useState(() => to12h(initial.h).period);
71
+ const pickerRef = useRef(null);
72
+ const displayHour = ampm ? to12h(hour24).h12 : hour24;
73
+ const hourItems = ampm ? range(12).map((i) => i + 1) : range(24);
74
+ const handleHourSelect = useCallback(
75
+ (h) => {
76
+ if (ampm) {
77
+ setHour24(to24h(h, period));
78
+ } else {
79
+ setHour24(h);
80
+ }
81
+ },
82
+ [ampm, period]
83
+ );
84
+ const handlePeriodToggle = useCallback(
85
+ (p) => {
86
+ setPeriod(p);
87
+ const h12 = to12h(hour24).h12;
88
+ setHour24(to24h(h12, p));
89
+ },
90
+ [hour24]
91
+ );
92
+ const handleNow = useCallback(() => {
93
+ const now = /* @__PURE__ */ new Date();
94
+ setHour24(now.getHours());
95
+ setMinute(now.getMinutes());
96
+ setSecond(now.getSeconds());
97
+ setPeriod(now.getHours() >= 12 ? "PM" : "AM");
98
+ }, []);
99
+ const handleApply = useCallback(() => {
100
+ const parts = [pad2(hour24), pad2(minute)];
101
+ if (showSeconds) parts.push(pad2(second));
102
+ onApply(parts.join(":"));
103
+ }, [hour24, minute, second, showSeconds, onApply]);
104
+ useEffect(() => {
105
+ const handleKeyDown = (e) => {
106
+ if (e.key === "Escape") onClose();
107
+ };
108
+ document.addEventListener("keydown", handleKeyDown);
109
+ return () => document.removeEventListener("keydown", handleKeyDown);
110
+ }, [onClose]);
111
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
112
+ /* @__PURE__ */ jsx("div", { className: s.overlay, onClick: onClose, "aria-hidden": "true" }),
113
+ /* @__PURE__ */ jsxs("div", { className: s.picker, ref: pickerRef, id: pickerId, "aria-label": "Time picker", children: [
114
+ /* @__PURE__ */ jsxs("div", { className: s.columns, children: [
115
+ /* @__PURE__ */ jsx(
116
+ Column,
117
+ {
118
+ label: "HH",
119
+ items: hourItems,
120
+ selected: displayHour,
121
+ onSelect: handleHourSelect,
122
+ ariaLabel: "Hours"
123
+ }
124
+ ),
125
+ /* @__PURE__ */ jsx("div", { className: s.separator, "aria-hidden": "true", children: ":" }),
126
+ /* @__PURE__ */ jsx(
127
+ Column,
128
+ {
129
+ label: "MM",
130
+ items: range(60),
131
+ selected: minute,
132
+ onSelect: setMinute,
133
+ ariaLabel: "Minutes"
134
+ }
135
+ ),
136
+ showSeconds && /* @__PURE__ */ jsxs(Fragment, { children: [
137
+ /* @__PURE__ */ jsx("div", { className: s.separator, "aria-hidden": "true", children: ":" }),
138
+ /* @__PURE__ */ jsx(
139
+ Column,
140
+ {
141
+ label: "SS",
142
+ items: range(60),
143
+ selected: second,
144
+ onSelect: setSecond,
145
+ ariaLabel: "Seconds"
146
+ }
147
+ )
148
+ ] }),
149
+ ampm && /* @__PURE__ */ jsxs("div", { children: [
150
+ /* @__PURE__ */ jsx("div", { className: s.columnLabel, children: "AP" }),
151
+ /* @__PURE__ */ jsx("div", { className: s.column, role: "radiogroup", "aria-label": "AM/PM", children: ["AM", "PM"].map((p) => /* @__PURE__ */ jsx(
152
+ "button",
153
+ {
154
+ type: "button",
155
+ role: "radio",
156
+ "aria-checked": p === period,
157
+ className: `${s.cell} ${p === period ? s.cellSelected : ""}`,
158
+ onClick: () => handlePeriodToggle(p),
159
+ children: p
160
+ },
161
+ p
162
+ )) })
163
+ ] })
164
+ ] }),
165
+ /* @__PURE__ */ jsxs("div", { className: s.footer, children: [
166
+ /* @__PURE__ */ jsx("button", { type: "button", className: s.footerBtn, onClick: handleNow, children: "Now" }),
167
+ /* @__PURE__ */ jsx(
168
+ "button",
169
+ {
170
+ type: "button",
171
+ className: `${s.footerBtn} ${s.footerBtnPrimary}`,
172
+ onClick: handleApply,
173
+ children: "Apply"
174
+ }
175
+ )
176
+ ] })
177
+ ] })
178
+ ] });
179
+ }
180
+ export {
181
+ TimePicker
182
+ };
@@ -0,0 +1,50 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("/* ═══════════════════════════════════════════════\n axen-form Time Picker\n Custom dropdown picker for TimeField\n ═══════════════════════════════════════════════ */\n\n._overlay_1qexq_6 {\n position: fixed;\n inset: 0;\n z-index: calc(var(--axen-z-dropdown, 100) - 1);\n}\n\n._picker_1qexq_12 {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: var(--axen-z-dropdown, 100);\n margin-top: var(--axen-space-xs, 0.25rem);\n background: var(--axen-color-bg, #ffffff);\n border: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius, 8px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n padding: var(--axen-space-sm, 0.5rem);\n min-width: 200px;\n}\n\n/* ── Column layout ───────────────────────────── */\n._columns_1qexq_27 {\n display: flex;\n gap: var(--axen-space-xs, 0.25rem);\n justify-content: center;\n}\n\n._column_1qexq_27 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n max-height: 200px;\n overflow-y: auto;\n padding: var(--axen-space-xs, 0.25rem) 0;\n scrollbar-width: thin;\n}\n\n._column_1qexq_27::-webkit-scrollbar {\n width: 4px;\n}\n\n._column_1qexq_27::-webkit-scrollbar-thumb {\n background: var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius-pill, 9999px);\n}\n\n._columnLabel_1qexq_53 {\n font-size: var(--axen-font-size-xs, 0.75rem);\n font-weight: var(--axen-font-weight-medium, 500);\n color: var(--axen-color-text-secondary, #666666);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding-bottom: var(--axen-space-xs, 0.25rem);\n flex-shrink: 0;\n}\n\n/* ── Individual cell ─────────────────────────── */\n._cell_1qexq_64 {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 36px;\n border: none;\n border-radius: var(--axen-border-radius-sm, 4px);\n background: transparent;\n color: var(--axen-color-text, #1a1a1a);\n font-size: var(--axen-font-size-md, 1rem);\n font-family: var(--axen-font-family);\n cursor: pointer;\n transition: background-color var(--axen-transition-fast, 150ms ease);\n padding: 0;\n flex-shrink: 0;\n}\n\n._cell_1qexq_64:hover {\n background-color: var(--axen-color-bg-hover, #fafafa);\n}\n\n._cell_1qexq_64:focus-visible {\n outline: var(--axen-focus-ring-width, 2px) solid var(--axen-focus-ring-color);\n outline-offset: -2px;\n}\n\n._cellSelected_1qexq_91 {\n background-color: var(--axen-color-primary, #1976d2);\n color: #ffffff;\n font-weight: var(--axen-font-weight-medium, 500);\n}\n\n._cellSelected_1qexq_91:hover {\n background-color: var(--axen-color-primary-hover, #1565c0);\n}\n\n/* ── Separator between columns ───────────────── */\n._separator_1qexq_102 {\n display: flex;\n align-items: center;\n padding: 0 2px;\n font-size: var(--axen-font-size-lg, 1.125rem);\n font-weight: var(--axen-font-weight-bold, 600);\n color: var(--axen-color-text-secondary, #666666);\n user-select: none;\n margin-top: 20px;\n}\n\n/* ── Footer actions ──────────────────────────── */\n._footer_1qexq_114 {\n display: flex;\n justify-content: space-between;\n gap: var(--axen-space-sm, 0.5rem);\n padding-top: var(--axen-space-sm, 0.5rem);\n margin-top: var(--axen-space-sm, 0.5rem);\n border-top: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n}\n\n._footerBtn_1qexq_123 {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 36px;\n border: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius-sm, 4px);\n background: var(--axen-color-bg, #ffffff);\n color: var(--axen-color-text, #1a1a1a);\n font-size: var(--axen-font-size-sm, 0.875rem);\n font-family: var(--axen-font-family);\n cursor: pointer;\n transition:\n background-color var(--axen-transition-fast, 150ms ease),\n border-color var(--axen-transition-fast, 150ms ease);\n padding: 0 var(--axen-space-sm, 0.5rem);\n}\n\n._footerBtn_1qexq_123:hover {\n background-color: var(--axen-color-bg-hover, #fafafa);\n border-color: var(--axen-color-border-hover, #888888);\n}\n\n._footerBtn_1qexq_123:focus-visible {\n outline: var(--axen-focus-ring-width, 2px) solid var(--axen-focus-ring-color);\n outline-offset: -2px;\n}\n\n._footerBtnPrimary_1qexq_152 {\n background-color: var(--axen-color-primary, #1976d2);\n border-color: var(--axen-color-primary, #1976d2);\n color: #ffffff;\n}\n\n._footerBtnPrimary_1qexq_152:hover {\n background-color: var(--axen-color-primary-hover, #1565c0);\n border-color: var(--axen-color-primary-hover, #1565c0);\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
13
+ "use strict";
14
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
15
+ const overlay = "_overlay_1qexq_6";
16
+ const picker = "_picker_1qexq_12";
17
+ const columns = "_columns_1qexq_27";
18
+ const column = "_column_1qexq_27";
19
+ const columnLabel = "_columnLabel_1qexq_53";
20
+ const cell = "_cell_1qexq_64";
21
+ const cellSelected = "_cellSelected_1qexq_91";
22
+ const separator = "_separator_1qexq_102";
23
+ const footer = "_footer_1qexq_114";
24
+ const footerBtn = "_footerBtn_1qexq_123";
25
+ const footerBtnPrimary = "_footerBtnPrimary_1qexq_152";
26
+ const s = {
27
+ overlay,
28
+ picker,
29
+ columns,
30
+ column,
31
+ columnLabel,
32
+ cell,
33
+ cellSelected,
34
+ separator,
35
+ footer,
36
+ footerBtn,
37
+ footerBtnPrimary
38
+ };
39
+ exports.cell = cell;
40
+ exports.cellSelected = cellSelected;
41
+ exports.column = column;
42
+ exports.columnLabel = columnLabel;
43
+ exports.columns = columns;
44
+ exports.default = s;
45
+ exports.footer = footer;
46
+ exports.footerBtn = footerBtn;
47
+ exports.footerBtnPrimary = footerBtnPrimary;
48
+ exports.overlay = overlay;
49
+ exports.picker = picker;
50
+ exports.separator = separator;
@@ -0,0 +1,50 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("/* ═══════════════════════════════════════════════\n axen-form Time Picker\n Custom dropdown picker for TimeField\n ═══════════════════════════════════════════════ */\n\n._overlay_1qexq_6 {\n position: fixed;\n inset: 0;\n z-index: calc(var(--axen-z-dropdown, 100) - 1);\n}\n\n._picker_1qexq_12 {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: var(--axen-z-dropdown, 100);\n margin-top: var(--axen-space-xs, 0.25rem);\n background: var(--axen-color-bg, #ffffff);\n border: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius, 8px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n padding: var(--axen-space-sm, 0.5rem);\n min-width: 200px;\n}\n\n/* ── Column layout ───────────────────────────── */\n._columns_1qexq_27 {\n display: flex;\n gap: var(--axen-space-xs, 0.25rem);\n justify-content: center;\n}\n\n._column_1qexq_27 {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 2px;\n max-height: 200px;\n overflow-y: auto;\n padding: var(--axen-space-xs, 0.25rem) 0;\n scrollbar-width: thin;\n}\n\n._column_1qexq_27::-webkit-scrollbar {\n width: 4px;\n}\n\n._column_1qexq_27::-webkit-scrollbar-thumb {\n background: var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius-pill, 9999px);\n}\n\n._columnLabel_1qexq_53 {\n font-size: var(--axen-font-size-xs, 0.75rem);\n font-weight: var(--axen-font-weight-medium, 500);\n color: var(--axen-color-text-secondary, #666666);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding-bottom: var(--axen-space-xs, 0.25rem);\n flex-shrink: 0;\n}\n\n/* ── Individual cell ─────────────────────────── */\n._cell_1qexq_64 {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 36px;\n border: none;\n border-radius: var(--axen-border-radius-sm, 4px);\n background: transparent;\n color: var(--axen-color-text, #1a1a1a);\n font-size: var(--axen-font-size-md, 1rem);\n font-family: var(--axen-font-family);\n cursor: pointer;\n transition: background-color var(--axen-transition-fast, 150ms ease);\n padding: 0;\n flex-shrink: 0;\n}\n\n._cell_1qexq_64:hover {\n background-color: var(--axen-color-bg-hover, #fafafa);\n}\n\n._cell_1qexq_64:focus-visible {\n outline: var(--axen-focus-ring-width, 2px) solid var(--axen-focus-ring-color);\n outline-offset: -2px;\n}\n\n._cellSelected_1qexq_91 {\n background-color: var(--axen-color-primary, #1976d2);\n color: #ffffff;\n font-weight: var(--axen-font-weight-medium, 500);\n}\n\n._cellSelected_1qexq_91:hover {\n background-color: var(--axen-color-primary-hover, #1565c0);\n}\n\n/* ── Separator between columns ───────────────── */\n._separator_1qexq_102 {\n display: flex;\n align-items: center;\n padding: 0 2px;\n font-size: var(--axen-font-size-lg, 1.125rem);\n font-weight: var(--axen-font-weight-bold, 600);\n color: var(--axen-color-text-secondary, #666666);\n user-select: none;\n margin-top: 20px;\n}\n\n/* ── Footer actions ──────────────────────────── */\n._footer_1qexq_114 {\n display: flex;\n justify-content: space-between;\n gap: var(--axen-space-sm, 0.5rem);\n padding-top: var(--axen-space-sm, 0.5rem);\n margin-top: var(--axen-space-sm, 0.5rem);\n border-top: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n}\n\n._footerBtn_1qexq_123 {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 36px;\n border: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius-sm, 4px);\n background: var(--axen-color-bg, #ffffff);\n color: var(--axen-color-text, #1a1a1a);\n font-size: var(--axen-font-size-sm, 0.875rem);\n font-family: var(--axen-font-family);\n cursor: pointer;\n transition:\n background-color var(--axen-transition-fast, 150ms ease),\n border-color var(--axen-transition-fast, 150ms ease);\n padding: 0 var(--axen-space-sm, 0.5rem);\n}\n\n._footerBtn_1qexq_123:hover {\n background-color: var(--axen-color-bg-hover, #fafafa);\n border-color: var(--axen-color-border-hover, #888888);\n}\n\n._footerBtn_1qexq_123:focus-visible {\n outline: var(--axen-focus-ring-width, 2px) solid var(--axen-focus-ring-color);\n outline-offset: -2px;\n}\n\n._footerBtnPrimary_1qexq_152 {\n background-color: var(--axen-color-primary, #1976d2);\n border-color: var(--axen-color-primary, #1976d2);\n color: #ffffff;\n}\n\n._footerBtnPrimary_1qexq_152:hover {\n background-color: var(--axen-color-primary-hover, #1565c0);\n border-color: var(--axen-color-primary-hover, #1565c0);\n}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
13
+ const overlay = "_overlay_1qexq_6";
14
+ const picker = "_picker_1qexq_12";
15
+ const columns = "_columns_1qexq_27";
16
+ const column = "_column_1qexq_27";
17
+ const columnLabel = "_columnLabel_1qexq_53";
18
+ const cell = "_cell_1qexq_64";
19
+ const cellSelected = "_cellSelected_1qexq_91";
20
+ const separator = "_separator_1qexq_102";
21
+ const footer = "_footer_1qexq_114";
22
+ const footerBtn = "_footerBtn_1qexq_123";
23
+ const footerBtnPrimary = "_footerBtnPrimary_1qexq_152";
24
+ const s = {
25
+ overlay,
26
+ picker,
27
+ columns,
28
+ column,
29
+ columnLabel,
30
+ cell,
31
+ cellSelected,
32
+ separator,
33
+ footer,
34
+ footerBtn,
35
+ footerBtnPrimary
36
+ };
37
+ export {
38
+ cell,
39
+ cellSelected,
40
+ column,
41
+ columnLabel,
42
+ columns,
43
+ s as default,
44
+ footer,
45
+ footerBtn,
46
+ footerBtnPrimary,
47
+ overlay,
48
+ picker,
49
+ separator
50
+ };
@@ -9,6 +9,7 @@ const defaultPlaceholders = {
9
9
  textarea: "Enter description...",
10
10
  number: "0",
11
11
  currency: "0.00",
12
+ select: "Select...",
12
13
  date: "Select date",
13
14
  time: "Select time",
14
15
  datetime: "Select date and time",
@@ -1 +1 @@
1
- {"version":3,"file":"defaultPlaceholders.d.ts","sourceRoot":"","sources":["../../src/fields/defaultPlaceholders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAczE,CAAC"}
1
+ {"version":3,"file":"defaultPlaceholders.d.ts","sourceRoot":"","sources":["../../src/fields/defaultPlaceholders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAezE,CAAC"}
@@ -7,6 +7,7 @@ const defaultPlaceholders = {
7
7
  textarea: "Enter description...",
8
8
  number: "0",
9
9
  currency: "0.00",
10
+ select: "Select...",
10
11
  date: "Select date",
11
12
  time: "Select time",
12
13
  datetime: "Select date and time",