@v1nt1248/3nclient-lib 0.4.5 → 0.4.7

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 (28) hide show
  1. package/dist/chunks/{ui3n-tooltip-BvWcGgmA.js → ui3n-tooltip-BpW_0eBg.js} +12 -12
  2. package/dist/src/components/ui3n-badge/ui3n-badge-simple.d.ts +0 -2
  3. package/dist/style.css +1 -1
  4. package/dist/ui3n-components.js +656 -656
  5. package/dist/ui3n-plugins.js +1 -1
  6. package/package.json +4 -1
  7. package/src/components/ui3n-autocomplete/ui3n-autocomplete.vue +34 -11
  8. package/src/components/ui3n-badge/ui3n-badge-simple.vue +40 -5
  9. package/src/components/ui3n-breadcrumbs/types.ts +19 -1
  10. package/src/components/ui3n-breadcrumbs/ui3n-breadcrumb.vue +9 -3
  11. package/src/components/ui3n-breadcrumbs/ui3n-breadcrumbs.vue +5 -3
  12. package/src/components/ui3n-dialog/ui3n-dialog.vue +13 -10
  13. package/src/components/ui3n-drop-files/ui3n-drop-files.vue +10 -5
  14. package/src/components/ui3n-editable/ui3n-editable.vue +23 -8
  15. package/src/components/ui3n-input/ui3n-input.vue +36 -18
  16. package/src/components/ui3n-input-file/ui3n-input-file.vue +7 -2
  17. package/src/components/ui3n-mobile-menu/ui3n-mobile-menu.vue +4 -2
  18. package/src/components/ui3n-mobile-menu-item/ui3n-mobile-menu-item.vue +16 -3
  19. package/src/components/ui3n-notification/ui3n-notification.vue +18 -9
  20. package/src/components/ui3n-progress/ui3n-progress-linear.vue +2 -1
  21. package/src/components/ui3n-radio-group/ui3n-radio.vue +2 -1
  22. package/src/components/ui3n-selector/ui3n-selector.vue +42 -13
  23. package/src/components/ui3n-step-line-bar/ui3n-step-line-bar.vue +12 -3
  24. package/src/components/ui3n-switch/ui3n-switch.vue +7 -2
  25. package/src/components/ui3n-table/ui3n-table.vue +14 -10
  26. package/src/components/ui3n-tabs/ui3n-tabs.vue +3 -2
  27. package/src/components/ui3n-text/ui3n-text.vue +34 -16
  28. package/src/components/ui3n-virtual-scroll/ui3n-virtual-scroll.vue +3 -1
@@ -1,5 +1,5 @@
1
1
  import { U as e, a as t, i as n, n as r, r as i, t as a } from "./chunks/plugins-keys-DY2USp8H.js";
2
- import { a as o, n as s, t as c } from "./chunks/ui3n-tooltip-BvWcGgmA.js";
2
+ import { a as o, n as s, t as c } from "./chunks/ui3n-tooltip-BpW_0eBg.js";
3
3
  import { Fragment as l, createApp as u, createBlock as d, createElementBlock as f, defineComponent as p, markRaw as m, mergeProps as h, normalizeClass as g, openBlock as _, ref as v, renderList as y } from "vue";
4
4
  import "pinia";
5
5
  import b from "mitt";
package/package.json CHANGED
@@ -2,13 +2,16 @@
2
2
  "name": "@v1nt1248/3nclient-lib",
3
3
  "license": "AGPL-3.0-or-later",
4
4
  "author": "v1nt1248",
5
- "version": "0.4.5",
5
+ "version": "0.4.7",
6
6
  "description": "Library for 3NWeb clients",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist",
10
10
  "src/components/"
11
11
  ],
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
12
15
  "main": "./dist/ui3n-components.js",
13
16
  "module": "./dist/ui3n-components.js",
14
17
  "exports": {
@@ -570,6 +570,29 @@
570
570
  --_autocomplete-padding-inline: var(--ui3n-autocomplete-padding-inline, 8px);
571
571
  --_autocomplete-padding-block: var(--ui3n-autocomplete-padding-block, 4px);
572
572
  --_autocomplete-border-radius: var(--ui3n-autocomplete-border-radius, 4px);
573
+ --_autocomplete-text-color: var(--ui3n-autocomplete-text-color, var(--color-text-control-primary-default));
574
+ --_autocomplete-placeholder-color: var(
575
+ --ui3n-autocomplete-placeholder-color,
576
+ var(--color-text-control-secondary-default)
577
+ );
578
+ --_autocomplete-highlight-color: var(
579
+ --ui3n-autocomplete-highlight-color,
580
+ var(--color-text-control-accent-default)
581
+ );
582
+ --_autocomplete-bg-color: var(--ui3n-autocomplete-bg-color, var(--color-bg-block-primary-default));
583
+ --_autocomplete-input-bg-color: var(
584
+ --ui3n-autocomplete-input-bg-color,
585
+ var(--color-bg-control-secondary-default)
586
+ );
587
+ --_autocomplete-item-bg-color: var(
588
+ --ui3n-autocomplete-item-bg-color,
589
+ var(--color-bg-control-primary-hover)
590
+ );
591
+ --_autocomplete-item-selected-color: var(
592
+ --ui3n-autocomplete-item-selected-color,
593
+ var(--color-text-control-accent-default)
594
+ );
595
+ --_autocomplete-error-color: var(--ui3n-autocomplete-error-color, var(--error-content-default));
573
596
 
574
597
  position: relative;
575
598
  display: flex;
@@ -578,7 +601,7 @@
578
601
 
579
602
  :global(.match-search) {
580
603
  font-weight: 600;
581
- color: var(--color-text-control-accent-default) !important;
604
+ color: var(--_autocomplete-highlight-color) !important;
582
605
  }
583
606
  }
584
607
 
@@ -602,7 +625,7 @@
602
625
  font-size: var(--_autocomplete-font-size);
603
626
  line-height: var(--_autocomplete-min-height);
604
627
  font-weight: 400;
605
- color: var(--color-text-control-primary-default);
628
+ color: var(--_autocomplete-text-color);
606
629
  }
607
630
 
608
631
  .input {
@@ -614,30 +637,30 @@
614
637
  font-size: var(--_autocomplete-font-size);
615
638
  line-height: var(--_autocomplete-min-height);
616
639
  font-weight: 400;
617
- color: var(--color-text-control-primary-default);
640
+ color: var(--_autocomplete-text-color);
618
641
  background-color: transparent;
619
642
  border: none;
620
643
  outline: none;
621
644
 
622
645
  &::placeholder {
623
- color: var(--color-text-control-secondary-default);
646
+ color: var(--_autocomplete-placeholder-color);
624
647
  }
625
648
 
626
649
  &:hover,
627
650
  &:focus {
628
- background-color: var(--color-bg-control-secondary-default);
651
+ background-color: var(--_autocomplete-input-bg-color);
629
652
  }
630
653
 
631
654
  &.inputWithError {
632
655
  height: calc(var(--_autocomplete-min-height) - 2px);
633
656
  padding: 0 calc(var(--_autocomplete-padding-inline) - 1px);
634
- border: 1px solid var(--error-content-default);
657
+ border: 1px solid var(--_autocomplete-error-color);
635
658
  }
636
659
  }
637
660
 
638
661
  .body {
639
662
  position: relative;
640
- background-color: var(--color-bg-block-primary-default);
663
+ background-color: var(--_autocomplete-bg-color);
641
664
  padding: 4px;
642
665
  }
643
666
 
@@ -650,15 +673,15 @@
650
673
  font-size: var(--_autocomplete-item-font-size);
651
674
  line-height: 1.23;
652
675
  font-weight: 500;
653
- color: var(--color-text-control-primary-default);
676
+ color: var(--_autocomplete-text-color);
654
677
  border-radius: var(--_autocomplete-border-radius);
655
678
  user-select: none;
656
679
  cursor: pointer;
657
680
 
658
681
  &.itemSelected,
659
682
  &:hover {
660
- background-color: var(--color-bg-control-primary-hover);
661
- color: var(--color-text-control-accent-default);
683
+ background-color: var(--_autocomplete-item-bg-color);
684
+ color: var(--_autocomplete-item-selected-color);
662
685
  }
663
686
 
664
687
  &.itemDisabled {
@@ -681,7 +704,7 @@
681
704
  font-size: var(--_autocomplete-item-font-size);
682
705
  line-height: 1.23;
683
706
  font-weight: 500;
684
- color: var(--color-text-control-primary-default);
707
+ color: var(--_autocomplete-text-color);
685
708
  border-radius: var(--_autocomplete-border-radius);
686
709
  }
687
710
 
@@ -5,8 +5,6 @@
5
5
  const props = withDefaults(defineProps<Ui3nBadgeSimpleProps>(), {
6
6
  dot: false,
7
7
  value: '',
8
- color: 'var(--color-bg-button-primary-default)',
9
- textColor: 'var(--color-text-button-primary-default)',
10
8
  });
11
9
 
12
10
  const emits = defineEmits<Ui3nBadgeSimpleEmits>();
@@ -26,7 +24,41 @@
26
24
  () => getElementSize(),
27
25
  );
28
26
 
27
+ watch(
28
+ [() => props.color, () => props.textColor],
29
+ (newValue: [string | undefined, string | undefined], prevValue: [string | undefined, string | undefined]) => {
30
+ if (!element.value) {
31
+ return;
32
+ }
33
+
34
+ const [color, textColor] = newValue;
35
+ const [prevColor, prevTextColor] = prevValue;
36
+
37
+ color !== prevColor &&
38
+ element.value.style.setProperty(
39
+ '--ui3n-badge-bg-color',
40
+ color ?? 'var(--color-bg-button-primary-default)',
41
+ );
42
+
43
+ textColor !== prevTextColor &&
44
+ element.value.style.setProperty(
45
+ '--ui3n-badge-text-color',
46
+ textColor ?? 'var(--color-text-button-primary-default)',
47
+ );
48
+ },
49
+ );
50
+
29
51
  onMounted(() => {
52
+ if (element.value) {
53
+ if (props.color) {
54
+ element.value.style.setProperty('--ui3n-badge-bg-color', props.color);
55
+ }
56
+
57
+ if (props.textColor) {
58
+ element.value.style.setProperty('--ui3n-badge-text-color', props.textColor);
59
+ }
60
+ }
61
+
30
62
  getElementSize();
31
63
  });
32
64
  </script>
@@ -54,11 +86,14 @@
54
86
  --_badge-padding-inline: var(--ui3n-badge-padding-inline, 6px);
55
87
  --_badge-nodot-border-radius: var(--ui3n-badge-nodot-border-radius, 10px);
56
88
  --_badge-font-size: var(--ui3n-badge-font-size, 12px);
89
+ --_badge-outline-color: var(--ui3n-badge-outline-color, var(--color-bg-block-primary-default));
90
+ --_badge-bg-color: var(--ui3n-badge-bg-color, var(--color-bg-button-primary-default));
91
+ --_badge-text-color: var(--ui3n-badge-text-color, var(--color-text-button-primary-default));
57
92
 
58
93
  position: relative;
59
94
  box-sizing: border-box;
60
- background-color: v-bind(color);
61
- outline: 1px var(--color-bg-block-primary-default) solid;
95
+ background-color: var(--_badge-bg-color);
96
+ outline: 1px var(--_badge-outline-color) solid;
62
97
 
63
98
  &:not(.ui3nBadgeDot) {
64
99
  min-height: var(--_badge-size);
@@ -81,7 +116,7 @@
81
116
 
82
117
  .ui3nBadgeText {
83
118
  display: block;
84
- color: v-bind(textColor);
119
+ color: var(--_badge-text-color);
85
120
  font-size: var(--_badge-font-size);
86
121
  line-height: var(--_badge-size);
87
122
  text-align: center;
@@ -1,4 +1,4 @@
1
- import { VNode } from 'vue';
1
+ import { Slot, VNode } from 'vue';
2
2
 
3
3
  /**
4
4
  * Breadcrumb component properties
@@ -72,3 +72,21 @@ export interface Ui3nBreadcrumbsSlots {
72
72
  */
73
73
  default: () => VNode;
74
74
  }
75
+
76
+ /**
77
+ * Context shared by Ui3nBreadcrumbs with its child Ui3nBreadcrumb components
78
+ */
79
+ export interface Ui3nBreadcrumbsContext {
80
+ /**
81
+ * Resolves the separator of the whole chain
82
+ */
83
+ separator: () => string | undefined;
84
+ /**
85
+ * Resolves whether the whole chain is disabled
86
+ */
87
+ disabled: () => boolean;
88
+ /**
89
+ * Global separator slot passed to each breadcrumb
90
+ */
91
+ customSeparatorSlot?: Slot;
92
+ }
@@ -1,6 +1,11 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed, inject, useCssModule, useSlots } from 'vue';
3
- import type { Ui3nBreadcrumbEmits, Ui3nBreadcrumbProps, Ui3nBreadcrumbSlots } from './types';
3
+ import type {
4
+ Ui3nBreadcrumbEmits,
5
+ Ui3nBreadcrumbProps,
6
+ Ui3nBreadcrumbSlots,
7
+ Ui3nBreadcrumbsContext,
8
+ } from './types';
4
9
 
5
10
  const props = withDefaults(defineProps<Ui3nBreadcrumbProps>(), {
6
11
  separator: undefined,
@@ -15,7 +20,7 @@
15
20
 
16
21
  const $css = useCssModule();
17
22
 
18
- const parentContext = inject<any>('ui3n-breadcrumbs-context', null);
23
+ const parentContext = inject<Ui3nBreadcrumbsContext | null>('ui3n-breadcrumbs-context', null);
19
24
 
20
25
  const separatorValue = computed(() => {
21
26
  if (props.separator) {
@@ -73,6 +78,7 @@
73
78
  --_breadcrumb-separator-distance: var(--ui3n-breadcrumb-separator-distance, 8px);
74
79
  --_breadcrumb-color-default: var(--ui3n-breadcrumb-color-default, var(--color-text-block-primary-default));
75
80
  --_breadcrumb-color-selected: var(--ui3n-breadcrumb-color-selected, var(--color-text-block-accent-default));
81
+ --_breadcrumb-separator-color: var(--ui3n-breadcrumb-separator-color, var(--color-text-block-tertiary-default));
76
82
 
77
83
  display: flex;
78
84
  align-items: center;
@@ -95,7 +101,7 @@
95
101
  align-items: center;
96
102
  margin: 0 var(--_breadcrumb-separator-distance);
97
103
  padding-left: var(--_breadcrumb-padding-inline);
98
- color: var(--color-text-block-tertiary-default);
104
+ color: var(--_breadcrumb-separator-color);
99
105
  }
100
106
 
101
107
  .ui3nBreadcrumbActive {
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { provide, useSlots } from 'vue';
3
- import type { Ui3nBreadcrumbsProps, Ui3nBreadcrumbsSlots } from './types';
3
+ import type { Ui3nBreadcrumbsContext, Ui3nBreadcrumbsProps, Ui3nBreadcrumbsSlots } from './types';
4
4
 
5
5
  const props = withDefaults(defineProps<Ui3nBreadcrumbsProps>(), {
6
6
  separator: '/',
@@ -10,11 +10,13 @@
10
10
  const slots = useSlots();
11
11
  defineSlots<Ui3nBreadcrumbsSlots>();
12
12
 
13
- provide('ui3n-breadcrumbs-context', {
13
+ const context: Ui3nBreadcrumbsContext = {
14
14
  separator: () => props.separator,
15
15
  disabled: () => props.disabled,
16
16
  customSeparatorSlot: slots.separator,
17
- });
17
+ };
18
+
19
+ provide('ui3n-breadcrumbs-context', context);
18
20
  </script>
19
21
 
20
22
  <template>
@@ -137,12 +137,12 @@
137
137
  v-on="
138
138
  draggable
139
139
  ? {
140
- dragstart: onDragstart,
141
- mousedown: onMousedown,
142
- mouseup: onMouseup,
143
- mousemove: onMousemove,
144
- keydown: onKeydown,
145
- }
140
+ dragstart: onDragstart,
141
+ mousedown: onMousedown,
142
+ mouseup: onMouseup,
143
+ mousemove: onMousemove,
144
+ keydown: onKeydown,
145
+ }
146
146
  : { keydown: onKeydown }
147
147
  "
148
148
  >
@@ -244,6 +244,9 @@
244
244
  --_dialog-cancel-button-color: var(--ui3n-dialog-cancel-button-color, var(--color-text-button-secondary-default));
245
245
  --_dialog-confirm-background-color: var(--ui3n-dialog-confirm-background-color, var(--color-bg-button-primary-default));
246
246
  --_dialog-cancel-background-color: var(--ui3n-dialog-cancel-background-color, var(--color-bg-button-secondary-default));
247
+ --_dialog-bg-color: var(--ui3n-dialog-bg-color, var(--color-bg-block-primary-default));
248
+ --_dialog-border-color: var(--ui3n-dialog-border-color, var(--color-border-block-primary-default));
249
+ --_dialog-title-color: var(--ui3n-dialog-title-color, var(--color-text-control-primary-default));
247
250
 
248
251
  position: relative;
249
252
  display: flex;
@@ -251,8 +254,8 @@
251
254
  height: auto;
252
255
  min-height: 48px;
253
256
  max-height: 95%;
254
- background-color: var(--color-bg-block-primary-default);
255
- border: 1px solid var(--color-border-block-primary-default);
257
+ background-color: var(--_dialog-bg-color);
258
+ border: 1px solid var(--_dialog-border-color);
256
259
  border-radius: var(--_dialog-border-radius);
257
260
  outline: none;
258
261
  box-shadow:
@@ -284,7 +287,7 @@
284
287
  align-items: center;
285
288
  column-gap: 8px;
286
289
  padding: var(--_dialog-title-padding);
287
- border-bottom: 1px solid var(--color-border-block-primary-default);
290
+ border-bottom: 1px solid var(--_dialog-border-color);
288
291
 
289
292
  span {
290
293
  display: block;
@@ -293,7 +296,7 @@
293
296
  font-size: var(--_dialog-title-font-size);
294
297
  font-weight: 600;
295
298
  line-height: 1;
296
- color: var(--color-text-control-primary-default);
299
+ color: var(--_dialog-title-color);
297
300
  @include mixins.text-overflow-ellipsis();
298
301
  }
299
302
 
@@ -177,6 +177,11 @@
177
177
  --_dropzone-height: var(--ui3n-dropzone-height, 0);
178
178
  --_dropzone-title-font: var(--ui3n-dropzone-title-font, 0);
179
179
  --_dropzone-border-radius: var(--ui3n-dropzone-border-radius, 4px);
180
+ --_dropzone-border-color: var(--ui3n-dropzone-border-color, var(--color-border-block-primary-default));
181
+ --_dropzone-accent-border-color: var(--ui3n-dropzone-accent-border-color, var(--accent-fill-pressed));
182
+ --_dropzone-bg-color: var(--ui3n-dropzone-bg-color, var(--color-bg-block-primary-default));
183
+ --_dropzone-title-color: var(--ui3n-dropzone-title-color, var(--color-text-table-secondary-default));
184
+ --_dropzone-icon-bg-color: var(--ui3n-dropzone-icon-bg-color, var(--color-bg-button-tritery-default));
180
185
 
181
186
  position: relative;
182
187
  box-sizing: border-box;
@@ -186,17 +191,17 @@
186
191
  }
187
192
 
188
193
  .ui3nDropFilesWithBorder {
189
- border: 2px dashed var(--color-border-block-primary-default);
194
+ border: 2px dashed var(--_dropzone-border-color);
190
195
  }
191
196
 
192
197
  .ui3nDropFilesWithAccentBorder {
193
- border: 2px dashed var(--accent-fill-pressed);
198
+ border: 2px dashed var(--_dropzone-accent-border-color);
194
199
  }
195
200
 
196
201
  .ui3nDropFilesDropzone {
197
202
  box-sizing: border-box;
198
203
  position: absolute;
199
- background-color: var(--color-bg-block-primary-default);
204
+ background-color: var(--_dropzone-bg-color);
200
205
  display: flex;
201
206
  flex-direction: column;
202
207
  justify-content: center;
@@ -209,7 +214,7 @@
209
214
  .ui3nDropFilesDropzoneTitle {
210
215
  font-size: var(--_dropzone-title-font);
211
216
  font-weight: 500;
212
- color: var(--color-text-table-secondary-default);
217
+ color: var(--_dropzone-title-color);
213
218
  margin: 0;
214
219
  pointer-events: none;
215
220
  }
@@ -219,7 +224,7 @@
219
224
  width: calc(var(--_dropzone-height) * 0.4);
220
225
  height: calc(var(--_dropzone-height) * 0.4);
221
226
  border-radius: 50%;
222
- background-color: var(--color-bg-button-tritery-default);
227
+ background-color: var(--_dropzone-icon-bg-color);
223
228
  display: flex;
224
229
  justify-content: center;
225
230
  align-items: center;
@@ -267,6 +267,20 @@
267
267
  //--ui3n-editable-padding: 0 4px;
268
268
  //--ui3n-editable-padding: 4px 44px 4px 4px;
269
269
  --_editable-button-size: var(--ui3n-editable-button-size, 16px);
270
+ --_editable-text-color: var(--ui3n-editable-text-color, var(--color-text-table-primary-default));
271
+ --_editable-placeholder-color: var(--ui3n-editable-placeholder-color, var(--color-text-table-secondary-default));
272
+ --_editable-empty-color: var(--ui3n-editable-empty-color, var(--color-text-table-secondary-default));
273
+ --_editable-edit-bg-color: var(--ui3n-editable-edit-bg-color, var(--color-bg-control-primary-default, #fff));
274
+ --_editable-edit-border-color: var(--ui3n-editable-edit-border-color, var(--color-border-table-accent-default));
275
+ --_editable-edit-border-warning-color: var(
276
+ --ui3n-editable-edit-border-warning-color,
277
+ var(--error-content-default)
278
+ );
279
+ --_editable-hover-bg-color: var(--ui3n-editable-hover-bg-color, var(--color-bg-control-primary-hover));
280
+ --_editable-button-hover-bg-color: var(
281
+ --ui3n-editable-button-hover-bg-color,
282
+ var(--color-bg-button-secondary-hover)
283
+ );
270
284
 
271
285
  position: relative;
272
286
  box-sizing: border-box;
@@ -277,19 +291,19 @@
277
291
  font-size: var(--_editable-font-size);
278
292
  font-weight: 400;
279
293
  line-height: var(--_editable-height);
280
- color: var(--color-text-table-primary-default);
294
+ color: var(--_editable-text-color);
281
295
  overflow: hidden;
282
296
  border: 1px solid transparent;
283
297
 
284
298
  &.ui3nEditableInEdit {
285
- background-color: var(--color-bg-control-primary-default, #fff);
299
+ background-color: var(--_editable-edit-bg-color);
286
300
 
287
301
  &:not(.ui3nEditableInEditWarning) {
288
- border: 1px solid var(--color-border-table-accent-default);
302
+ border: 1px solid var(--_editable-edit-border-color);
289
303
  }
290
304
 
291
305
  &.ui3nEditableInEditWarning {
292
- border: 1px solid var(--error-content-default);
306
+ border: 1px solid var(--_editable-edit-border-warning-color);
293
307
  }
294
308
  }
295
309
  }
@@ -320,11 +334,11 @@
320
334
  }
321
335
 
322
336
  &.contentEmpty {
323
- color: var(--color-text-table-secondary-default);
337
+ color: var(--_editable-empty-color);
324
338
  }
325
339
 
326
340
  &:hover {
327
- background-color: var(--color-bg-control-primary-hover);
341
+ background-color: var(--_editable-hover-bg-color);
328
342
 
329
343
  .btn.editBtn {
330
344
  opacity: 1;
@@ -346,9 +360,10 @@
346
360
  border-radius: var(--_editable-border-radius);
347
361
  background-color: transparent;
348
362
  border: none;
363
+ color: var(--_editable-text-color);
349
364
 
350
365
  &::placeholder {
351
- color: var(--color-text-table-secondary-default);
366
+ color: var(--_editable-placeholder-color);
352
367
  }
353
368
 
354
369
  &:focus-visible {
@@ -385,7 +400,7 @@
385
400
 
386
401
  &:hover {
387
402
  cursor: pointer;
388
- background-color: var(--color-bg-button-secondary-hover);
403
+ background-color: var(--_editable-button-hover-bg-color);
389
404
  }
390
405
 
391
406
  &.editBtn {
@@ -298,6 +298,24 @@
298
298
  --_input-outer-padding-top: var(--ui3n-input-outer-padding-top, 1px);
299
299
  --_input-outer-padding-bottom: var(--ui3n-input-outer-padding-bottom, 15px);
300
300
  --_input-outer-padding-x: var(--ui3n-input-outer-padding-x, 1px);
301
+ --_input-text-color: var(--ui3n-input-text-color, var(--color-text-control-primary-default));
302
+ --_input-placeholder-color: var(--ui3n-input-placeholder-color, var(--color-text-control-secondary-default));
303
+ --_input-placeholder-hover-color: var(
304
+ --ui3n-input-placeholder-hover-color,
305
+ var(--color-text-control-secondary-hover)
306
+ );
307
+ --_input-bg-color: var(--ui3n-input-bg-color, var(--color-bg-control-secondary-default));
308
+ --_input-bg-hover-color: var(--ui3n-input-bg-hover-color, var(--color-bg-control-secondary-hover));
309
+ --_input-bg-focused-color: var(--ui3n-input-bg-focused-color, var(--color-bg-control-secondary-focused));
310
+ --_input-bg-disabled-color: var(--ui3n-input-bg-disabled-color, var(--color-bg-control-secondary-disabled));
311
+ --_input-outline-focused-color: var(
312
+ --ui3n-input-outline-focused-color,
313
+ var(--color-border-control-accent-focused)
314
+ );
315
+ --_input-disabled-color: var(--ui3n-input-disabled-color, var(--color-text-control-secondary-disabled));
316
+ --_input-label-color: var(--ui3n-input-label-color, var(--color-text-control-primary-default));
317
+ --_input-error-color: var(--ui3n-input-error-color, var(--error-content-default));
318
+ --_input-success-color: var(--ui3n-input-success-color, var(--success-content-default));
301
319
 
302
320
  &.withLabel {
303
321
  --_input-message-top: var(
@@ -327,18 +345,18 @@
327
345
 
328
346
  &:hover {
329
347
  .inputWrapper:not(:focus-within) {
330
- background-color: var(--color-bg-control-secondary-hover);
348
+ background-color: var(--_input-bg-hover-color);
331
349
 
332
350
  .ui3nInputField::placeholder {
333
- color: var(--color-text-control-secondary-hover);
351
+ color: var(--_input-placeholder-hover-color);
334
352
  }
335
353
  }
336
354
  }
337
355
 
338
356
  &:focus-within {
339
357
  .inputWrapper {
340
- background-color: var(--color-bg-control-secondary-focused);
341
- outline: 1px solid var(--color-border-control-accent-focused);
358
+ background-color: var(--_input-bg-focused-color);
359
+ outline: 1px solid var(--_input-outline-focused-color);
342
360
  }
343
361
  }
344
362
  }
@@ -349,7 +367,7 @@
349
367
  font-size: var(--_input-label-font-size);
350
368
  line-height: 1.33;
351
369
  font-weight: 500;
352
- color: var(--color-text-control-primary-default);
370
+ color: var(--_input-label-color);
353
371
  margin-bottom: 4px;
354
372
  }
355
373
 
@@ -358,7 +376,7 @@
358
376
  align-items: center;
359
377
  height: var(--_input-height);
360
378
  border-radius: var(--_input-border-radius);
361
- background-color: var(--color-bg-control-secondary-default);
379
+ background-color: var(--_input-bg-color);
362
380
  transition: background-color 0.2s ease-in-out;
363
381
  }
364
382
 
@@ -376,11 +394,11 @@
376
394
  font-size: var(--_input-font-size);
377
395
  line-height: 1.23;
378
396
  font-weight: 400;
379
- color: var(--color-text-control-primary-default);
397
+ color: var(--_input-text-color);
380
398
  transition: color 0.2s ease-in-out;
381
399
 
382
400
  &::placeholder {
383
- color: var(--color-text-control-secondary-default);
401
+ color: var(--_input-placeholder-color);
384
402
  font-style: italic;
385
403
  font-size: var(--_input-font-size);
386
404
  font-weight: 400;
@@ -391,7 +409,7 @@
391
409
  }
392
410
 
393
411
  &[disabled] {
394
- color: var(--color-text-control-secondary-disabled);
412
+ color: var(--_input-disabled-color);
395
413
  cursor: not-allowed;
396
414
  }
397
415
 
@@ -443,34 +461,34 @@
443
461
  }
444
462
 
445
463
  .ui3nInputErrorMessage {
446
- color: var(--error-content-default);
464
+ color: var(--_input-error-color);
447
465
  }
448
466
 
449
467
  .ui3nInputSuccessMessage {
450
- color: var(--success-content-default);
468
+ color: var(--_input-success-color);
451
469
  }
452
470
 
453
471
  .error {
454
472
  .ui3nInputLabel {
455
- color: var(--error-content-default);
473
+ color: var(--_input-error-color);
456
474
  }
457
475
 
458
476
  .inputWrapper {
459
- outline: 1px solid var(--error-content-default);
477
+ outline: 1px solid var(--_input-error-color);
460
478
  }
461
479
 
462
480
  &:focus-within {
463
481
  .inputWrapper {
464
- background-color: var(--color-bg-control-secondary-focused);
465
- outline: 1px solid var(--error-content-default);
466
- box-shadow: 0 0 0 1px var(--error-content-default);
482
+ background-color: var(--_input-bg-focused-color);
483
+ outline: 1px solid var(--_input-error-color);
484
+ box-shadow: 0 0 0 1px var(--_input-error-color);
467
485
  }
468
486
  }
469
487
  }
470
488
 
471
489
  .success {
472
490
  .ui3nInputLabel {
473
- color: var(--success-content-default);
491
+ color: var(--_input-success-color);
474
492
  }
475
493
  }
476
494
 
@@ -479,7 +497,7 @@
479
497
  user-select: none;
480
498
 
481
499
  .inputWrapper {
482
- background-color: var(--color-bg-control-secondary-disabled);
500
+ background-color: var(--_input-bg-disabled-color);
483
501
  cursor: not-allowed;
484
502
  }
485
503
  }
@@ -163,6 +163,11 @@
163
163
  .ui3nInputFile {
164
164
  --_input-file-font-size: var(--ui3n-input-file-font-size, 12px);
165
165
  --_input-file-padding-inline: var(--ui3n-input-file-padding-inline, 4px);
166
+ --_input-file-label-color: var(--ui3n-input-file-label-color, var(--color-text-button-secondary-default));
167
+ --_input-file-label-hover-color: var(
168
+ --ui3n-input-file-label-hover-color,
169
+ var(--color-text-button-secondary-hover)
170
+ );
166
171
 
167
172
  position: relative;
168
173
  width: max-content;
@@ -172,12 +177,12 @@
172
177
  font-size: var(--_input-file-font-size);
173
178
  font-weight: 500;
174
179
  line-height: 1.33;
175
- color: var(--color-text-button-secondary-default);
180
+ color: var(--_input-file-label-color);
176
181
  padding: 0 var(--_input-file-padding-inline);
177
182
  cursor: pointer;
178
183
 
179
184
  &:hover {
180
- color: var(--color-text-button-secondary-hover);
185
+ color: var(--_input-file-label-hover-color);
181
186
  }
182
187
 
183
188
  &.disabled {
@@ -83,6 +83,8 @@
83
83
 
84
84
  .ui3nMobileMenu {
85
85
  --_menu-width-custom: var(--ui3n-menu-width-custom, 240px);
86
+ --_menu-color: var(--ui3n-menu-color, var(--color-text-block-primary-default));
87
+ --_menu-bg-color: var(--ui3n-menu-bg-color, var(--color-bg-block-primary-default));
86
88
 
87
89
  display: inline-block;
88
90
  width: max-content;
@@ -118,8 +120,8 @@
118
120
  justify-content: flex-start;
119
121
  align-items: stretch;
120
122
  height: 100%;
121
- color: var(--color-text-block-primary-default);
122
- background-color: var(--color-bg-block-primary-default);
123
+ color: var(--_menu-color);
124
+ background-color: var(--_menu-bg-color);
123
125
  overflow-x: hidden;
124
126
  overflow-y: auto;
125
127
  box-shadow: 4px 0 16px var(--shadow-close);