@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.
Files changed (81) hide show
  1. package/dist/components/Dropdown.vue.d.ts.map +1 -1
  2. package/dist/components/FilterQuery.types.d.ts +19 -0
  3. package/dist/components/FilterQuery.types.d.ts.map +1 -0
  4. package/dist/components/FilterQuery.vue.d.ts.map +1 -1
  5. package/dist/components/analytics/PieChart.vue.d.ts.map +1 -1
  6. package/dist/components/form/inputs/ArrayInput.vue.d.ts.map +1 -1
  7. package/dist/components/form/inputs/CheckInput.vue.d.ts.map +1 -1
  8. package/dist/components/form/inputs/CodeEditor/Index.vue.d.ts.map +1 -1
  9. package/dist/components/form/inputs/ColorInput.vue.d.ts.map +1 -1
  10. package/dist/components/form/inputs/DateInput.vue.d.ts.map +1 -1
  11. package/dist/components/form/inputs/EmailInput.vue.d.ts.map +1 -1
  12. package/dist/components/form/inputs/JSONInput.vue.d.ts.map +1 -1
  13. package/dist/components/form/inputs/MarkdownEditor.vue.d.ts.map +1 -1
  14. package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
  15. package/dist/components/form/inputs/OTP.vue.d.ts.map +1 -1
  16. package/dist/components/form/inputs/PasswordInput.vue.d.ts.map +1 -1
  17. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  18. package/dist/components/form/inputs/RangeInput.vue.d.ts.map +1 -1
  19. package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
  20. package/dist/components/form/inputs/SelectBtn.vue.d.ts.map +1 -1
  21. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  22. package/dist/components/form/inputs/SignaturePad.vue.d.ts.map +1 -1
  23. package/dist/components/form/inputs/TableField.vue.d.ts.map +1 -1
  24. package/dist/components/form/inputs/TelInput.vue.d.ts.map +1 -1
  25. package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
  26. package/dist/components/form/inputs/ToggleInput.vue.d.ts.map +1 -1
  27. package/dist/components/form/inputs/Upload/UploadInput.vue.d.ts.map +1 -1
  28. package/dist/components/form/inputs/bagelInputShell.d.ts +21 -0
  29. package/dist/components/form/inputs/bagelInputShell.d.ts.map +1 -0
  30. package/dist/components/form/inputs/index.d.ts.map +1 -1
  31. package/dist/components/index.d.ts.map +1 -1
  32. package/dist/components/layout/AppSidebar.vue.d.ts.map +1 -1
  33. package/dist/dialog/Dialog.vue.d.ts.map +1 -1
  34. package/dist/i18n/index.d.ts.map +1 -1
  35. package/dist/index.cjs +135 -135
  36. package/dist/index.mjs +16026 -15661
  37. package/dist/style.css +1 -1
  38. package/dist/types/BagelForm.d.ts.map +1 -1
  39. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/src/components/Dropdown.vue +2 -1
  42. package/src/components/FilterQuery.types.ts +21 -0
  43. package/src/components/FilterQuery.vue +112 -15
  44. package/src/components/form/inputs/ArrayInput.vue +10 -2
  45. package/src/components/form/inputs/CheckInput.vue +28 -9
  46. package/src/components/form/inputs/CodeEditor/Index.vue +15 -2
  47. package/src/components/form/inputs/ColorInput.vue +77 -9
  48. package/src/components/form/inputs/DateInput.vue +10 -3
  49. package/src/components/form/inputs/EmailInput.vue +90 -54
  50. package/src/components/form/inputs/JSONInput.vue +12 -4
  51. package/src/components/form/inputs/MarkdownEditor.vue +12 -4
  52. package/src/components/form/inputs/NumberInput.vue +154 -89
  53. package/src/components/form/inputs/OTP.vue +46 -7
  54. package/src/components/form/inputs/PasswordInput.vue +32 -21
  55. package/src/components/form/inputs/RadioGroup.vue +18 -7
  56. package/src/components/form/inputs/RangeInput.vue +23 -7
  57. package/src/components/form/inputs/RichText/index.vue +21 -12
  58. package/src/components/form/inputs/SelectBtn.vue +34 -6
  59. package/src/components/form/inputs/SelectInput.vue +19 -25
  60. package/src/components/form/inputs/SignaturePad.vue +39 -14
  61. package/src/components/form/inputs/TableField.vue +6 -2
  62. package/src/components/form/inputs/TelInput.vue +52 -4
  63. package/src/components/form/inputs/TextInput.vue +23 -31
  64. package/src/components/form/inputs/ToggleInput.vue +27 -4
  65. package/src/components/form/inputs/Upload/UploadInput.vue +44 -9
  66. package/src/components/form/inputs/Upload/upload.css +15 -0
  67. package/src/components/form/inputs/bagelInputShell.ts +43 -0
  68. package/src/components/form/inputs/index.ts +1 -0
  69. package/src/components/index.ts +1 -0
  70. package/src/dialog/Dialog.vue +12 -1
  71. package/src/i18n/locales/en.json +4 -1
  72. package/src/i18n/locales/es.json +4 -1
  73. package/src/i18n/locales/fr.json +4 -1
  74. package/src/i18n/locales/he.json +4 -1
  75. package/src/i18n/locales/it.json +4 -1
  76. package/src/i18n/locales/ru.json +4 -1
  77. package/src/styles/input-variants.css +12 -13
  78. package/src/styles/inputs.css +134 -15
  79. package/src/styles/text.css +10 -10
  80. package/src/types/BagelForm.ts +11 -1
  81. package/src/utils/BagelFormUtils.ts +1 -0
@@ -41,8 +41,22 @@ select {
41
41
  color: var(--placeholder-color);
42
42
  }
43
43
 
44
- .bagel-input label {
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-primary);
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,
@@ -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
  }
@@ -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
  }
@@ -387,6 +387,7 @@ export function uploadField<
387
387
  $el: 'upload',
388
388
  id,
389
389
  label,
390
+ placeholder: options?.placeholder ?? options?.dropPlaceholder,
390
391
  class: options?.class,
391
392
  required: options?.required,
392
393
  helptext: options?.helptext,