@bagelink/vue 1.12.71 → 1.12.74
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.
- package/dist/components/Dropdown.vue.d.ts.map +1 -1
- package/dist/components/FilterQuery.types.d.ts +19 -0
- package/dist/components/FilterQuery.types.d.ts.map +1 -0
- package/dist/components/FilterQuery.vue.d.ts.map +1 -1
- package/dist/components/analytics/PieChart.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/ArrayInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/CheckInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/CodeEditor/Index.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/ColorInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/DateInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/EmailInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/JSONInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/MarkdownEditor.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/OTP.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/PasswordInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RangeInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/SelectBtn.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/SignaturePad.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/TableField.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/TelInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/ToggleInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/bagelInputShell.d.ts +21 -0
- package/dist/components/form/inputs/bagelInputShell.d.ts.map +1 -0
- package/dist/components/form/inputs/index.d.ts.map +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.vue.d.ts.map +1 -1
- package/dist/dialog/Dialog.vue.d.ts.map +1 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/index.cjs +135 -135
- package/dist/index.mjs +16026 -15661
- package/dist/style.css +1 -1
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/utils/BagelFormUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Dropdown.vue +2 -1
- package/src/components/FilterQuery.types.ts +21 -0
- package/src/components/FilterQuery.vue +112 -15
- package/src/components/form/inputs/ArrayInput.vue +10 -2
- package/src/components/form/inputs/CheckInput.vue +28 -9
- package/src/components/form/inputs/CodeEditor/Index.vue +15 -2
- package/src/components/form/inputs/ColorInput.vue +77 -9
- package/src/components/form/inputs/DateInput.vue +10 -3
- package/src/components/form/inputs/EmailInput.vue +90 -54
- package/src/components/form/inputs/JSONInput.vue +12 -4
- package/src/components/form/inputs/MarkdownEditor.vue +12 -4
- package/src/components/form/inputs/NumberInput.vue +154 -89
- package/src/components/form/inputs/OTP.vue +46 -7
- package/src/components/form/inputs/PasswordInput.vue +32 -21
- package/src/components/form/inputs/RadioGroup.vue +18 -7
- package/src/components/form/inputs/RangeInput.vue +23 -7
- package/src/components/form/inputs/RichText/index.vue +21 -12
- package/src/components/form/inputs/SelectBtn.vue +34 -6
- package/src/components/form/inputs/SelectInput.vue +19 -25
- package/src/components/form/inputs/SignaturePad.vue +39 -14
- package/src/components/form/inputs/TableField.vue +6 -2
- package/src/components/form/inputs/TelInput.vue +52 -4
- package/src/components/form/inputs/TextInput.vue +23 -31
- package/src/components/form/inputs/ToggleInput.vue +27 -4
- package/src/components/form/inputs/Upload/UploadInput.vue +44 -9
- package/src/components/form/inputs/Upload/upload.css +15 -0
- package/src/components/form/inputs/bagelInputShell.ts +43 -0
- package/src/components/form/inputs/index.ts +1 -0
- package/src/components/index.ts +1 -0
- package/src/dialog/Dialog.vue +12 -1
- package/src/i18n/locales/en.json +4 -1
- package/src/i18n/locales/es.json +4 -1
- package/src/i18n/locales/fr.json +4 -1
- package/src/i18n/locales/he.json +4 -1
- package/src/i18n/locales/it.json +4 -1
- package/src/i18n/locales/ru.json +4 -1
- package/src/styles/input-variants.css +12 -13
- package/src/styles/inputs.css +134 -15
- package/src/styles/text.css +10 -10
- package/src/types/BagelForm.ts +11 -1
- package/src/utils/BagelFormUtils.ts +1 -0
package/src/styles/inputs.css
CHANGED
|
@@ -41,8 +41,22 @@ select {
|
|
|
41
41
|
color: var(--placeholder-color);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
.bagel-input
|
|
45
|
-
color: var(--label-color);
|
|
44
|
+
.bagel-input {
|
|
45
|
+
--bgl-input-label-color: var(--label-color);
|
|
46
|
+
--bgl-input-label-active-color: var(--bgl-primary);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.bagel-input label,
|
|
50
|
+
.bagel-input .label-text,
|
|
51
|
+
.bagel-input > .label {
|
|
52
|
+
color: var(--bgl-input-label-color);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.bagel-input:focus-within label,
|
|
56
|
+
.bagel-input:focus-within .label-text,
|
|
57
|
+
.bagel-input.open label,
|
|
58
|
+
.bagel-input.open .label-text {
|
|
59
|
+
color: var(--bgl-input-label-active-color);
|
|
46
60
|
}
|
|
47
61
|
|
|
48
62
|
.bagel-input input,
|
|
@@ -65,9 +79,26 @@ select {
|
|
|
65
79
|
width: 100%;
|
|
66
80
|
}
|
|
67
81
|
|
|
82
|
+
.bagel-input input[type="radio"],
|
|
83
|
+
.bagel-input input[type="checkbox"] {
|
|
84
|
+
min-width: unset;
|
|
85
|
+
width: auto;
|
|
86
|
+
height: auto;
|
|
87
|
+
padding: 0;
|
|
88
|
+
background: none;
|
|
89
|
+
border-radius: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* ─── RadioGroup: frame/outline — transparent item background ────────────── */
|
|
93
|
+
|
|
94
|
+
.bagel-input.frame .active-list-item,
|
|
95
|
+
.bagel-input.bgl-outline .active-list-item {
|
|
96
|
+
background-color: transparent !important;
|
|
97
|
+
}
|
|
98
|
+
|
|
68
99
|
/* ─── Variant: frame ──────────────────────────────────────────────────────── */
|
|
69
100
|
|
|
70
|
-
.bagel-input.frame input,
|
|
101
|
+
.bagel-input.frame input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
|
|
71
102
|
.bagel-input.frame textarea,
|
|
72
103
|
.bagel-input.frame select,
|
|
73
104
|
.custom-select.frame .input {
|
|
@@ -79,11 +110,37 @@ select {
|
|
|
79
110
|
box-shadow 0.2s ease;
|
|
80
111
|
}
|
|
81
112
|
|
|
82
|
-
.bagel-input.frame input:focus,
|
|
113
|
+
.bagel-input.frame input:not([type="radio"]):not([type="checkbox"]):not([type="color"]):not(.colorInputPick):focus,
|
|
83
114
|
.bagel-input.frame textarea:focus,
|
|
84
115
|
.bagel-input.frame select:focus {
|
|
85
|
-
outline-color: var(--bgl-primary) !important;
|
|
86
|
-
box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-primary) 12%, transparent) !important;
|
|
116
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
|
|
117
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent) !important;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* tel-input and colorInputPick: focus handled by wrapper — suppress inner focus ring */
|
|
121
|
+
.bagel-input.frame .tel-input input:focus,
|
|
122
|
+
.bagel-input.frame .colorInputPick:focus,
|
|
123
|
+
.bagel-input.frame .colorInputPick:focus-visible {
|
|
124
|
+
outline: none !important;
|
|
125
|
+
box-shadow: none !important;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* ─── Variant: underlined — transparent background ───────────────────────── */
|
|
129
|
+
|
|
130
|
+
.bagel-input.underlined input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
|
|
131
|
+
.bagel-input.underlined textarea,
|
|
132
|
+
.bagel-input.underlined select {
|
|
133
|
+
background: transparent;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* ─── Variant: bgl-outline ────────────────────────────────────────────────── */
|
|
137
|
+
|
|
138
|
+
.bagel-input.bgl-outline input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
|
|
139
|
+
.bagel-input.bgl-outline textarea,
|
|
140
|
+
.bagel-input.bgl-outline select,
|
|
141
|
+
.custom-select.bgl-outline .input {
|
|
142
|
+
outline: 1.5px solid var(--border-color);
|
|
143
|
+
outline-offset: -1px;
|
|
87
144
|
}
|
|
88
145
|
|
|
89
146
|
.bagel-input input::-webkit-input-placeholder,
|
|
@@ -158,10 +215,6 @@ select {
|
|
|
158
215
|
width: fit-content;
|
|
159
216
|
}
|
|
160
217
|
|
|
161
|
-
.bagel-input:focus-within label {
|
|
162
|
-
color: var(--bgl-primary);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
218
|
.bagel-input select.no-edit,
|
|
166
219
|
.bagel-input input.no-edit,
|
|
167
220
|
.bagel-input textarea.no-edit,
|
|
@@ -172,9 +225,74 @@ select {
|
|
|
172
225
|
}
|
|
173
226
|
|
|
174
227
|
.bagel-input label.active {
|
|
175
|
-
color: var(--bgl-
|
|
228
|
+
color: var(--bgl-input-label-active-color);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/* ─── Variant: frame (outline) — select, OTP, signature, etc. ─────────────── */
|
|
232
|
+
|
|
233
|
+
.bagel-input.frame .selectinput-btn {
|
|
234
|
+
background: transparent;
|
|
235
|
+
outline: 1.5px solid var(--border-color);
|
|
236
|
+
outline-offset: -1px;
|
|
237
|
+
transition:
|
|
238
|
+
outline-color 0.2s ease,
|
|
239
|
+
box-shadow 0.2s ease;
|
|
176
240
|
}
|
|
177
241
|
|
|
242
|
+
.bagel-input.frame:focus-within .selectinput-btn,
|
|
243
|
+
.bagel-input.frame.open .selectinput-btn {
|
|
244
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
|
|
245
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent) !important;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* digit-box frame/outline styles live in OTP.vue */
|
|
249
|
+
|
|
250
|
+
.bagel-input.frame.bgl_input.signature-pad .canvas,
|
|
251
|
+
.bagel-input.frame .signature-pad-canvas-wrap .canvas {
|
|
252
|
+
outline: 1.5px solid var(--border-color);
|
|
253
|
+
outline-offset: -1px;
|
|
254
|
+
border-radius: var(--input-border-radius);
|
|
255
|
+
transition: outline-color 0.2s ease, box-shadow 0.2s ease;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.bagel-input.frame:focus-within.bgl_input.signature-pad .canvas,
|
|
259
|
+
.bagel-input.frame:focus-within .signature-pad-canvas-wrap .canvas {
|
|
260
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
|
|
261
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.bagel-input.bgl-outline.bgl_input.signature-pad .canvas {
|
|
265
|
+
outline: 1.5px solid var(--border-color);
|
|
266
|
+
outline-offset: -1px;
|
|
267
|
+
border-radius: var(--input-border-radius);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* colorInputPickWrap variants handled in ColorInput.vue */
|
|
271
|
+
|
|
272
|
+
.bagel-input.frame .code-editor-grandpa {
|
|
273
|
+
outline: 1.5px solid var(--border-color);
|
|
274
|
+
outline-offset: -1px;
|
|
275
|
+
border-radius: var(--input-border-radius);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.bagel-input.frame:focus-within .code-editor-grandpa {
|
|
279
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.bagel-input.frame .rich-text-editor {
|
|
283
|
+
outline: 1.5px solid var(--border-color);
|
|
284
|
+
outline-offset: -1px;
|
|
285
|
+
border: none;
|
|
286
|
+
border-radius: var(--input-border-radius);
|
|
287
|
+
transition: outline-color 0.2s ease, box-shadow 0.2s ease;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.bagel-input.frame:focus-within .rich-text-editor {
|
|
291
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary));
|
|
292
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 12%, transparent);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
|
|
178
296
|
.inline-80 {
|
|
179
297
|
display: inline-block;
|
|
180
298
|
width: 80%;
|
|
@@ -237,11 +355,11 @@ select {
|
|
|
237
355
|
.bagel-input textarea:focus-visible,
|
|
238
356
|
.bagel-input button:focus-visible,
|
|
239
357
|
.bgl_btn:focus-visible {
|
|
240
|
-
outline-color: var(--bgl-primary-tint);
|
|
358
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary-tint));
|
|
241
359
|
box-shadow: inset 0 0 10px #00000012;
|
|
242
360
|
}
|
|
243
361
|
|
|
244
|
-
.bagel-input input:focus,
|
|
362
|
+
.bagel-input input:not([type="radio"]):not([type="checkbox"]):focus,
|
|
245
363
|
.bagel-input select:focus,
|
|
246
364
|
.bagel-input textarea:focus {
|
|
247
365
|
outline-color: rgba(0, 0, 0, 0.05);
|
|
@@ -249,6 +367,7 @@ select {
|
|
|
249
367
|
outline-color: var(--input-bg);
|
|
250
368
|
}
|
|
251
369
|
|
|
370
|
+
|
|
252
371
|
.bagel-input .bgl_btn:focus,
|
|
253
372
|
.bagel-input button:focus {
|
|
254
373
|
outline-color: rgba(0, 0, 0, 0.05);
|
|
@@ -278,8 +397,8 @@ select {
|
|
|
278
397
|
.bagel-input.light-input textarea:focus-visible {
|
|
279
398
|
box-shadow:
|
|
280
399
|
0 2px 8px 0 rgba(0, 0, 0, 0.15),
|
|
281
|
-
0 0 0 3px color-mix(in srgb, var(--bgl-primary) 15%, transparent) !important;
|
|
282
|
-
outline-color: var(--bgl-primary) !important;
|
|
400
|
+
0 0 0 3px color-mix(in srgb, var(--bgl-input-label-active-color, var(--bgl-primary)) 15%, transparent) !important;
|
|
401
|
+
outline-color: var(--bgl-input-label-active-color, var(--bgl-primary)) !important;
|
|
283
402
|
}
|
|
284
403
|
|
|
285
404
|
.bagel-input input[type='number']::-webkit-inner-spin-button,
|
package/src/styles/text.css
CHANGED
|
@@ -1484,23 +1484,23 @@
|
|
|
1484
1484
|
text-wrap: pretty;
|
|
1485
1485
|
}
|
|
1486
1486
|
|
|
1487
|
-
.white-space {
|
|
1487
|
+
.white-space, .white-space-nowrap, .whitespace, .whitespace-nowrap {
|
|
1488
1488
|
white-space: nowrap;
|
|
1489
1489
|
}
|
|
1490
1490
|
|
|
1491
|
-
.white-space-break-spaces {
|
|
1491
|
+
.white-space-break-spaces, .whitespace-break-spaces {
|
|
1492
1492
|
white-space: break-spaces;
|
|
1493
1493
|
}
|
|
1494
1494
|
|
|
1495
|
-
.white-space-pre {
|
|
1495
|
+
.white-space-pre, .whitespace-pre {
|
|
1496
1496
|
white-space: pre;
|
|
1497
1497
|
}
|
|
1498
1498
|
|
|
1499
|
-
.white-space-pre-line {
|
|
1499
|
+
.white-space-pre-line, .whitespace-pre-line {
|
|
1500
1500
|
white-space: pre-line;
|
|
1501
1501
|
}
|
|
1502
1502
|
|
|
1503
|
-
.white-space-pre-wrap {
|
|
1503
|
+
.white-space-pre-wrap, .whitespace-pre-wrap {
|
|
1504
1504
|
white-space: pre-wrap;
|
|
1505
1505
|
}
|
|
1506
1506
|
|
|
@@ -3025,23 +3025,23 @@
|
|
|
3025
3025
|
text-transform: capitalize;
|
|
3026
3026
|
}
|
|
3027
3027
|
|
|
3028
|
-
.m_white-space {
|
|
3028
|
+
.m_white-space, .m_white-space-nowrap, .m_whitespace, .m_whitespace-nowrap {
|
|
3029
3029
|
white-space: nowrap;
|
|
3030
3030
|
}
|
|
3031
3031
|
|
|
3032
|
-
.m_white-space-break-spaces {
|
|
3032
|
+
.m_white-space-break-spaces, .m_whitespace-break-spaces {
|
|
3033
3033
|
white-space: break-spaces;
|
|
3034
3034
|
}
|
|
3035
3035
|
|
|
3036
|
-
.m_white-space-pre {
|
|
3036
|
+
.m_white-space-pre, .m_whitespace-pre {
|
|
3037
3037
|
white-space: pre;
|
|
3038
3038
|
}
|
|
3039
3039
|
|
|
3040
|
-
.m_white-space-pre-line {
|
|
3040
|
+
.m_white-space-pre-line, .m_whitespace-pre-line {
|
|
3041
3041
|
white-space: pre-line;
|
|
3042
3042
|
}
|
|
3043
3043
|
|
|
3044
|
-
.m_white-space-pre-wrap {
|
|
3044
|
+
.m_white-space-pre-wrap, .m_whitespace-pre-wrap {
|
|
3045
3045
|
white-space: pre-wrap;
|
|
3046
3046
|
}
|
|
3047
3047
|
}
|
package/src/types/BagelForm.ts
CHANGED
|
@@ -8,6 +8,10 @@ import type { VNode } from 'vue'
|
|
|
8
8
|
type ArrayAttrs = any
|
|
9
9
|
interface Option { label: string, value: any }
|
|
10
10
|
|
|
11
|
+
// BagelInputShellProps is exported from components/form/inputs/bagelInputShell.ts
|
|
12
|
+
// Do not re-export here to avoid duplicate export in src/index.ts
|
|
13
|
+
import type { BagelInputShellProps } from '../components/form/inputs/bagelInputShell'
|
|
14
|
+
|
|
11
15
|
export type AttributeValue
|
|
12
16
|
= | string
|
|
13
17
|
| number
|
|
@@ -280,7 +284,7 @@ export interface ValidateInputBaseT {
|
|
|
280
284
|
getFormData?: () => any
|
|
281
285
|
}
|
|
282
286
|
|
|
283
|
-
export interface UploadInputProps {
|
|
287
|
+
export interface UploadInputProps extends BagelInputShellProps {
|
|
284
288
|
id?: string
|
|
285
289
|
name?: string
|
|
286
290
|
label?: string
|
|
@@ -298,7 +302,13 @@ export interface UploadInputProps {
|
|
|
298
302
|
disabled?: boolean
|
|
299
303
|
baseURL?: string
|
|
300
304
|
placeholder?: string
|
|
305
|
+
/** Alias for dropzone placeholder text (same as `placeholder` when theme is dropzone). */
|
|
306
|
+
dropPlaceholder?: string
|
|
301
307
|
noFilePlaceholder?: string
|
|
302
308
|
btnPlaceholder?: string
|
|
303
309
|
error?: string
|
|
310
|
+
showIcon?: boolean
|
|
311
|
+
icon?: string
|
|
312
|
+
iconSize?: number | string
|
|
313
|
+
iconMobileSize?: number | string
|
|
304
314
|
}
|