srcdev-nuxt-forms 4.2.0 → 5.0.1

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 (82) hide show
  1. package/assets/styles/extends-layer/srcdev-forms/components/_form-fieldset.css +16 -0
  2. package/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-options-button.css +59 -0
  3. package/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox.css +71 -0
  4. package/assets/styles/extends-layer/srcdev-forms/components/_input-error.css +55 -0
  5. package/assets/styles/extends-layer/srcdev-forms/components/_input-label.css +18 -0
  6. package/assets/styles/extends-layer/srcdev-forms/components/_input-radio.css +67 -0
  7. package/assets/styles/extends-layer/srcdev-forms/components/_input-select.css +16 -0
  8. package/assets/styles/extends-layer/srcdev-forms/components/_input-text-as-number.css +22 -0
  9. package/assets/styles/extends-layer/srcdev-forms/components/_input-textarea.css +5 -0
  10. package/assets/styles/extends-layer/srcdev-forms/components/index.css +9 -0
  11. package/assets/styles/extends-layer/srcdev-forms/index.css +2 -0
  12. package/assets/styles/{forms/variables/_theme.css → extends-layer/srcdev-forms/setup/_generic.css} +3 -1
  13. package/assets/styles/extends-layer/srcdev-forms/setup/index.css +4 -0
  14. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_default.css +12 -0
  15. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_large.css +12 -0
  16. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_medium.css +12 -0
  17. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_small.css +12 -0
  18. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_x-small.css +11 -0
  19. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/index.css +21 -0
  20. package/assets/styles/extends-layer/srcdev-forms/setup/variants/_normal.css +48 -0
  21. package/assets/styles/extends-layer/srcdev-forms/setup/variants/_underlined.css +48 -0
  22. package/assets/styles/extends-layer/srcdev-forms/setup/variants/index.css +2 -0
  23. package/assets/styles/main.css +3 -3
  24. package/assets/styles/setup/index.css +1 -0
  25. package/assets/styles/setup/variables/index.css +2 -0
  26. package/assets/styles/theming/index.css +2 -0
  27. package/assets/styles/theming/vars/index.css +1 -0
  28. package/assets/styles/utils/_page.css +1 -1
  29. package/components/forms/c12/prop-validators/index.ts +1 -1
  30. package/components/forms/form-errors/InputError.vue +22 -6
  31. package/components/forms/form-fieldset/FormFieldset.vue +94 -0
  32. package/components/forms/input-button/InputButtonCore.vue +1 -1
  33. package/components/forms/input-button/variants/InputButtonConfirm.vue +1 -1
  34. package/components/forms/input-button/variants/InputButtonSubmit.vue +1 -1
  35. package/components/forms/input-checkbox/MultipleCheckboxes.vue +62 -78
  36. package/components/forms/input-checkbox/SingleCheckbox.vue +19 -40
  37. package/components/forms/input-checkbox-radio/InputCheckboxRadioButton.vue +43 -40
  38. package/components/forms/input-checkbox-radio/InputCheckboxRadioCore.vue +28 -42
  39. package/components/forms/input-checkbox-radio/InputCheckboxRadioWithLabel.vue +5 -1
  40. package/components/forms/input-label/InputLabel.vue +60 -0
  41. package/components/forms/input-radio/MultipleRadiobuttons.vue +56 -78
  42. package/components/forms/input-select/InputSelectCore.vue +164 -0
  43. package/components/forms/input-select/variants/InputSelectWithLabel.vue +123 -0
  44. package/components/forms/input-text/InputTextCore.vue +60 -1
  45. package/components/forms/input-text/variants/InputTextAsNumberWithLabel.vue +1 -1
  46. package/components/forms/input-text/variants/InputTextWithLabel.vue +11 -9
  47. package/components/forms/input-textarea/InputTextareaCore.vue +62 -1
  48. package/components/forms/input-textarea/variants/InputTextareaWithLabel.vue +7 -5
  49. package/components/forms/toggle-switch/ToggleSwitchCore.vue +1 -1
  50. package/components/forms/toggle-switch/ToggleSwitchCoreOld.vue +1 -1
  51. package/components/forms/toggle-switch/variants/ToggleSwitchWithLabel.vue +1 -1
  52. package/components/forms/toggle-switch/variants/ToggleSwitchWithLabelInline.vue +1 -1
  53. package/package.json +1 -1
  54. package/assets/styles/forms/index.css +0 -2
  55. package/assets/styles/forms/variables/_sizes.css +0 -71
  56. package/assets/styles/forms/variables/index.css +0 -2
  57. package/assets/styles/typography/index.css +0 -2
  58. package/assets/styles/typography/variables/index.css +0 -2
  59. package/assets/styles/variables/index.css +0 -1
  60. package/components/forms/input-select/InputSelect.vue +0 -289
  61. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_error.css +0 -0
  62. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_ghost.css +0 -0
  63. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_input-action-underlined.css +0 -0
  64. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_input-action.css +0 -0
  65. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_primary.css +0 -0
  66. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_secondary.css +0 -0
  67. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_success.css +0 -0
  68. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_tertiary.css +0 -0
  69. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/_warning.css +0 -0
  70. /package/assets/styles/{forms → extends-layer/srcdev-forms/setup}/themes/index.css +0 -0
  71. /package/assets/styles/{typography → setup}/variables/_reponsive-font-size.css +0 -0
  72. /package/assets/styles/{variables → setup/variables}/colors/_blue.css +0 -0
  73. /package/assets/styles/{variables → setup/variables}/colors/_gray.css +0 -0
  74. /package/assets/styles/{variables → setup/variables}/colors/_green.css +0 -0
  75. /package/assets/styles/{variables → setup/variables}/colors/_orange.css +0 -0
  76. /package/assets/styles/{variables → setup/variables}/colors/_red.css +0 -0
  77. /package/assets/styles/{variables → setup/variables}/colors/_yellow.css +0 -0
  78. /package/assets/styles/{variables/colors/colors.css → setup/variables/colors/index.css} +0 -0
  79. /package/assets/styles/{typography → theming}/utils/_font-classes.css +0 -0
  80. /package/assets/styles/{typography → theming}/utils/_weights.css +0 -0
  81. /package/assets/styles/{typography → theming}/utils/index.css +0 -0
  82. /package/assets/styles/{typography/variables/_colors.css → theming/vars/_type-colors.css} +0 -0
@@ -70,7 +70,7 @@ const props = defineProps({
70
70
  },
71
71
  size: {
72
72
  type: String as PropType<string>,
73
- default: 'normal',
73
+ default: 'default',
74
74
  validator(value: string) {
75
75
  return propValidators.size.includes(value);
76
76
  },
@@ -107,6 +107,67 @@ const { elementClasses } = useStyleClassPassthrough(props.styleClassPassthrough)
107
107
 
108
108
  <style lang="css">
109
109
  .input-textarea-wrapper {
110
+ background-color: var(--element-decorator-background-color);
111
+ outline: var(--element-decorator-outline-default);
112
+
113
+ border-top-left-radius: var(--element-decorator-border-top-left-radius);
114
+ border-top-right-radius: var(--element-decorator-border-top-right-radius);
115
+ border-bottom-left-radius: var(--element-decorator-border-bottom-left-radius);
116
+ border-bottom-right-radius: var(--element-decorator-border-bottom-right-radius);
117
+
118
+ border-top: var(--element-decorator-border-top-default);
119
+ border-right: var(--element-decorator-border-right-default);
120
+ border-bottom: var(--element-decorator-border-bottom-default);
121
+ border-left: var(--element-decorator-border-left-default);
122
+
123
+ padding-inline: var(--element-decorator-padding-inline);
124
+
125
+ &:hover {
126
+ /* background-color: lab(89.6502 -0.829279 -2.45323 / 0.1); */
127
+ background-color: hsl(from var(--theme-form-input-border) h s 20%);
128
+ }
129
+
130
+ display: flex;
131
+ align-items: center;
132
+ gap: 12px;
133
+
134
+ .slot {
135
+ display: flex;
136
+ place-items: center;
137
+ background-clip: padding-box;
138
+
139
+ &.left-slot {
140
+ /* background-color: green; */
141
+ }
142
+ &.right-slot {
143
+ /* background-color: orange; */
144
+ }
145
+ }
146
+
147
+ .input-textarea-core {
148
+ all: unset;
149
+ flex-grow: 1;
150
+ field-sizing: content;
151
+
152
+ font-family: var(--font-family);
153
+ font-size: var(--form-element-font-size);
154
+ line-height: var(--form-element-line-height);
155
+ padding-block: var(--input-element-padding-block);
156
+ padding-inline: var(--input-element-padding-inline);
157
+
158
+ min-height: var(--input-textarea-min-height);
159
+
160
+ &::placeholder {
161
+ color: var(--input-placeholder-color);
162
+ font-size: var(--input-placeholder-font-size);
163
+ font-style: var(--input-placeholder-font-style);
164
+ line-height: var(--input-placeholder-line-height);
165
+ font-weight: var(--input-placeholder-font-weight);
166
+ }
167
+ }
168
+ }
169
+
170
+ .input-textarea-wrapper-XXX {
110
171
  --_focus-box-shadow: var(--box-shadow-off);
111
172
  --_input-textarea-core-color: var(--theme-form-input-text-color-normal);
112
173
 
@@ -1,6 +1,8 @@
1
1
  <template>
2
2
  <div class="input-textarea-with-label" :data-form-theme="formTheme" :class="[elementClasses, inputVariant, { dirty: isDirty }, { active: isActive }]">
3
- <label :for="id" class="input-textarea-label body-normal-semibold">{{ label }}</label>
3
+ <InputLabel :for="id" :id :theme :name :input-variant :field-has-error :style-class-passthrough="['input-textarea-label']">
4
+ <template #textLabel>{{ label }}</template>
5
+ </InputLabel>
4
6
 
5
7
  <InputTextareaCore
6
8
  v-model="modelValue"
@@ -25,7 +27,7 @@
25
27
  <slot name="right"></slot>
26
28
  </template>
27
29
  </InputTextareaCore>
28
- <InputError :errorMessage :showError="fieldHasError" :id :isDetached="false" />
30
+ <InputError :errorMessage :showError="fieldHasError" :id :isDetached="false" :inputVariant />
29
31
  </div>
30
32
  </template>
31
33
 
@@ -73,7 +75,7 @@ const props = defineProps({
73
75
  },
74
76
  size: {
75
77
  type: String as PropType<string>,
76
- default: 'normal',
78
+ default: 'default',
77
79
  validator(value: string) {
78
80
  return propValidators.size.includes(value);
79
81
  },
@@ -123,7 +125,7 @@ watch(
123
125
  </script>
124
126
 
125
127
  <style lang="css">
126
- .input-textarea-with-label {
128
+ .input-textarea-with-label-XXX {
127
129
  --_input-textarea-with-label-margin-block-start: 0;
128
130
  --_input-textarea-with-label-background-color: transparent;
129
131
 
@@ -213,7 +215,7 @@ watch(
213
215
  /* overflow: clip; */
214
216
 
215
217
  &.underlined {
216
- border-bottom: var(--_input-textarea-wrapper-border-underlined);
218
+ /* border-bottom: var(--_input-textarea-wrapper-border-underlined); */
217
219
  border-top-left-radius: var(--_input-textarea-wrapper-underlined-border-radius-top-left);
218
220
  border-top-right-radius: var(--_input-textarea-wrapper-underlined-border-radius-top-right);
219
221
  border-bottom-left-radius: var(--_input-textarea-wrapper-underlined-border-radius-bottom-left);
@@ -66,7 +66,7 @@ const props = defineProps({
66
66
  },
67
67
  size: {
68
68
  type: String as PropType<string>,
69
- default: 'normal',
69
+ default: 'default',
70
70
  validator(value: string) {
71
71
  return propValidators.size.includes(value);
72
72
  },
@@ -62,7 +62,7 @@ const props = defineProps({
62
62
  },
63
63
  size: {
64
64
  type: String as PropType<string>,
65
- default: 'normal',
65
+ default: 'default',
66
66
  validator(value: string) {
67
67
  return propValidators.size.includes(value);
68
68
  },
@@ -67,7 +67,7 @@ const props = defineProps({
67
67
  },
68
68
  size: {
69
69
  type: String as PropType<string>,
70
- default: 'normal',
70
+ default: 'default',
71
71
  validator(value: string) {
72
72
  return propValidators.size.includes(value);
73
73
  },
@@ -57,7 +57,7 @@ const props = defineProps({
57
57
  },
58
58
  size: {
59
59
  type: String as PropType<string>,
60
- default: 'normal',
60
+ default: 'default',
61
61
  validator(value: string) {
62
62
  return propValidators.size.includes(value);
63
63
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "srcdev-nuxt-forms",
3
3
  "type": "module",
4
- "version": "4.2.0",
4
+ "version": "5.0.1",
5
5
  "main": "nuxt.config.ts",
6
6
  "scripts": {
7
7
  "clean": "rm -rf .nuxt && rm -rf .output && rm -rf .playground/.nuxt && rm -rf .playground/.output",
@@ -1,2 +0,0 @@
1
- @import './variables/index.css';
2
- @import './themes/index.css';
@@ -1,71 +0,0 @@
1
- :root {
2
- --form-element-padding-block-start: 0.4lh;
3
- --form-element-padding-block-end: 0.4lh;
4
- --form-element-border-width: 0.2rem;
5
- --form-element-border-width-underlined: 0.4rem;
6
- --form-element-outline-width: 0.1rem;
7
-
8
- --form-text-padding-inline: 0.5em;
9
- --form-button-padding-inline: 1.25em;
10
- --form-button-icon-gap: 1em;
11
-
12
- [data-size='x-small'] {
13
- --form-element-font-size: var(--step-0);
14
- --form-placeholder-font-size: calc(var(--step-0) * 0.65);
15
- --form-element-line-height: var(--step-0);
16
- --form-input-border-radius: 0.4rem;
17
- --form-icon-only-button-size: calc(var(--step-1) * 2 + 1px);
18
- --form-toggle-symbol-size: calc(var(--step-0) * 1.55);
19
- --form-toggle-switch-width-adjustment: 0.5rem;
20
-
21
- --form-input-checkbox-radio-button-size: var(--step-0);
22
- }
23
- [data-size='small'] {
24
- --form-element-font-size: var(--step-1);
25
- --form-placeholder-font-size: calc(var(--step-1) * 0.65);
26
- --form-element-line-height: var(--step-1);
27
- --form-icon-size: var(--step-1);
28
- --form-input-border-radius: 0.4rem;
29
- --form-icon-only-button-size: calc(var(--step-1) * 2.25 + 1px);
30
- --form-toggle-symbol-size: calc(var(--step-1) * 1.635);
31
- --form-toggle-switch-width-adjustment: 0.3rem;
32
-
33
- --form-input-checkbox-radio-button-size: var(--step-1);
34
- }
35
- [data-size='normal'] {
36
- --form-element-font-size: var(--step-2);
37
- --form-placeholder-font-size: calc(var(--step-2) * 0.65);
38
- --form-element-line-height: var(--step-2);
39
- --form-icon-size: var(--step-2);
40
- --form-input-border-radius: 0.4rem;
41
- --form-icon-only-button-size: calc(var(--step-1) * 2.5 + 1px);
42
- --form-toggle-symbol-size: calc(var(--step-2) * 1.72);
43
- --form-toggle-switch-width-adjustment: 0.2rem;
44
-
45
- --form-input-checkbox-radio-button-size: var(--step-2);
46
- }
47
- [data-size='medium'] {
48
- --form-element-font-size: var(--step-3);
49
- --form-placeholder-font-size: calc(var(--step-3) * 0.65);
50
- --form-element-line-height: var(--step-3);
51
- --form-icon-size: var(--step-3);
52
- --form-input-border-radius: 0.4rem;
53
- --form-icon-only-button-size: calc(var(--step-1) * 2.75 + 1px);
54
- --form-toggle-symbol-size: calc(var(--step-3) * 1.78);
55
- --form-toggle-switch-width-adjustment: 0rem;
56
-
57
- --form-input-checkbox-radio-button-size: var(--step-3);
58
- }
59
- [data-size='large'] {
60
- --form-element-font-size: var(--step-4);
61
- --form-placeholder-font-size: calc(var(--step-4) * 0.65);
62
- --form-element-line-height: var(--step-4);
63
- --form-icon-size: var(--step-4);
64
- --form-input-border-radius: 0.4rem;
65
- --form-icon-only-button-size: calc(var(--step-1) * 3 + 1px);
66
- --form-toggle-symbol-size: calc(var(--step-4) * 1.816);
67
- --form-toggle-switch-width-adjustment: -0.2rem;
68
-
69
- --form-input-checkbox-radio-button-size: var(--step-4);
70
- }
71
- }
@@ -1,2 +0,0 @@
1
- @import './_theme.css';
2
- @import './_sizes.css';
@@ -1,2 +0,0 @@
1
- @import './utils';
2
- @import './variables';
@@ -1,2 +0,0 @@
1
- @import './_colors.css';
2
- @import './_reponsive-font-size.css';
@@ -1 +0,0 @@
1
- @import './colors/colors.css';
@@ -1,289 +0,0 @@
1
- <template>
2
- <fieldset
3
- :aria-required="required"
4
- :aria-invalid="fieldHasError"
5
- class="input-select-fieldset"
6
- :class="[inputVariant, { dirty: isDirty }, { active: isActive }, { error: fieldHasError }]"
7
- :data-testid
8
- :data-form-theme="formTheme"
9
- :data-size="size"
10
- >
11
- <legend :class="[{ 'has-description': hasDescriptionSlot }]">{{ legend }}</legend>
12
-
13
- <div v-if="hasDescriptionSlot" :id="`${name}-description`">
14
- <slot name="description"></slot>
15
- </div>
16
-
17
- <select v-model="modelValue" class="input-select" :class="[inputVariant]" :name>
18
- <option v-if="placeholder" value="" readonly :selected="!modelValue" class="input-select-option placeholder">{{ placeholder }}</option>
19
- <option v-for="item in fieldData.data" :key="item.id" :value="item.value" :selected="item.value === modelValue" class="input-select-option">
20
- <Icon :name="item.icon" class="icon" />
21
- {{ item.label }}
22
- </option>
23
- </select>
24
-
25
- <InputError :errorMessage="errorMessage" :showError="fieldHasError" :id="errorId" :isDetached="false" :inputVariant />
26
- </fieldset>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- import propValidators from '../c12/prop-validators';
31
- import type { IFormMultipleOptions } from '@/types/types.forms';
32
-
33
- const props = defineProps({
34
- dataTestid: {
35
- type: String,
36
- default: 'input-select',
37
- },
38
- name: {
39
- type: String,
40
- required: true,
41
- },
42
- legend: {
43
- type: String,
44
- required: true,
45
- },
46
- label: {
47
- type: String,
48
- required: true,
49
- },
50
- placeholder: {
51
- type: String,
52
- default: '',
53
- },
54
- errorMessage: {
55
- type: [Object, String],
56
- required: true,
57
- },
58
- required: {
59
- type: Boolean,
60
- default: false,
61
- },
62
- fieldHasError: {
63
- type: Boolean,
64
- default: false,
65
- },
66
- size: {
67
- type: String as PropType<string>,
68
- default: 'medium',
69
- validator(value: string) {
70
- return propValidators.size.includes(value);
71
- },
72
- },
73
- styleClassPassthrough: {
74
- type: Array as PropType<string[]>,
75
- default: () => [],
76
- },
77
- theme: {
78
- type: String as PropType<string>,
79
- default: 'primary',
80
- validator(value: string) {
81
- return propValidators.theme.includes(value);
82
- },
83
- },
84
- inputVariant: {
85
- type: String as PropType<string>,
86
- default: 'normal',
87
- validator(value: string) {
88
- return propValidators.inputVariant.includes(value);
89
- },
90
- },
91
- });
92
-
93
- const slots = useSlots();
94
- const hasDescriptionSlot = computed(() => slots.description !== undefined);
95
- const { elementClasses } = useStyleClassPassthrough(props.styleClassPassthrough);
96
-
97
- const formTheme = computed(() => {
98
- return props.fieldHasError ? 'error' : props.theme;
99
- });
100
-
101
- const id = useId();
102
- const errorId = `${name}-error-message`;
103
- const ariaDescribedby = computed(() => {
104
- const ariaDescribedbyId = hasDescriptionSlot.value ? `${id}-description` : undefined;
105
- return props.fieldHasError ? errorId : ariaDescribedbyId;
106
- });
107
-
108
- const modelValue = defineModel({ required: true });
109
- const isDirty = defineModel('isDirty');
110
- const isActive = defineModel('isActive');
111
- const fieldData = defineModel('fieldData') as Ref<IFormMultipleOptions>;
112
- </script>
113
-
114
- <style lang="css">
115
- .input-select-fieldset {
116
- --_input-select-fieldset-underline-color: transparent;
117
- margin: 0;
118
- padding: 0;
119
- border: 0;
120
-
121
- border-bottom-right-radius: var(--form-input-border-radius);
122
- border-bottom-left-radius: var(--form-input-border-radius);
123
- border-bottom: var(--form-element-border-width-underlined) solid var(--_input-select-fieldset-underline-color);
124
-
125
- &.underlined {
126
- --_input-select-fieldset-underline-color: var(--theme-form-input-border);
127
- }
128
-
129
- /* &.error {
130
- border-bottom: var(--form-element-border-width-underlined) solid var(--theme-form-input-border);
131
- } */
132
-
133
- legend {
134
- font-family: var(--font-family);
135
- font-size: 1.6rem;
136
- font-weight: 500;
137
-
138
- &.has-description {
139
- margin-bottom: 0;
140
- }
141
- }
142
-
143
- .label-description {
144
- font-family: var(--font-family);
145
- font-size: 1.6rem;
146
- margin-top: 1.2rem;
147
- }
148
-
149
- .input-select {
150
- &,
151
- &::picker(select) {
152
- appearance: base-select;
153
- }
154
-
155
- &::picker(select) {
156
- transition: display allow-discrete 0.5s, opacity 0.5s, overlay 0.5s allow-discrete;
157
- }
158
-
159
- &:not(:open)::picker(select) {
160
- opacity: 0;
161
- }
162
-
163
- &:open::picker(select) {
164
- opacity: 1;
165
-
166
- @starting-style {
167
- opacity: 0;
168
- }
169
- }
170
- }
171
-
172
- .input-select {
173
- --_input-select-border: var(--form-element-border-width) solid var(--theme-form-input-border);
174
- --_input-select-border-radius: var(--form-input-border-radius);
175
- --_input-select-outline-color: var(--theme-form-input-outline);
176
- --_input-select-outline: var(--form-element-outline-width) solid var(--_input-select-outline-color);
177
-
178
- --_input-select-box-shadow: var(--_focus-box-shadow);
179
- --_focus-box-shadow: var(--box-shadow-off);
180
-
181
- --_input-select-text-color: var(--theme-form-input-text-color-normal);
182
- --_input-select-text-font-size: var(--step-2);
183
- --_input-select-line-height: 1.5;
184
-
185
- --_input-select-background-color: var(--theme-form-input-bg-normal);
186
-
187
- /* Underlined vars */
188
- --_input-select-border-underlined: var(--form-element-border-width-underlined) solid var(--theme-form-input-border);
189
- --_input-select-underlined-border-radius-top-left: 0;
190
- --_input-select-underlined-border-radius-top-right: 0;
191
- --_input-select-underlined-border-radius-bottom-left: 4px;
192
- --_input-select-underlined-border-radius-bottom-right: 4px;
193
-
194
- /* Placeholder vars */
195
- --_placeholder-text-color: var(--theme-form-input-text-label-color-normal);
196
- --_placeholder-text-margin-block: 0.8rem;
197
- --_placeholder-text-size: var(--step-2);
198
- --_placeholder-text-weight: normal;
199
- --_placeholder-text-line-height: 1.5;
200
- --_placeholder-text-background-color: var(--_input-text-with-label-background-color);
201
-
202
- background-color: var(--_input-select-background-color);
203
-
204
- border-radius: var(--_input-select-border-radius);
205
- border: var(--_input-select-border);
206
- outline: var(--_input-select-outline);
207
-
208
- color: var(--_input-select-text-color);
209
- font-size: var(--_input-select-text-font-size);
210
- line-height: var(--_input-select-line-height);
211
-
212
- padding-block-start: calc(var(--form-element-padding-block-start) - 2px);
213
- padding-block-end: calc(var(--form-element-padding-block-start) - 3px);
214
-
215
- min-width: 100%;
216
-
217
- &:focus-visible {
218
- --_input-select-box-shadow: var(--box-shadow-on);
219
- --_input-select-outline: var(--form-element-outline-width) solid hsl(from var(--theme-form-input-outline-focus) h s 90%);
220
- }
221
-
222
- &.underlined {
223
- --_input-select-text-color: var(--theme-form-input-text-label-color-underlined);
224
- --_input-select-background-color: color-mix(in srgb, currentColor 5%, transparent);
225
- /* --_input-select-background-color: var(--theme-form-input-bg-underlined); */
226
- --_input-select-outline-color: transparent;
227
- --_input-select-text-color: var(--_input-text-core-color);
228
-
229
- border-color: transparent;
230
- /* border-bottom: var(--_input-select-border-underlined);
231
- border-top-left-radius: var(--_input-select-underlined-border-radius-top-left);
232
- border-top-right-radius: var(--_input-select-underlined-border-radius-top-right);
233
- border-bottom-left-radius: var(--_input-select-underlined-border-radius-bottom-left);
234
- border-bottom-right-radius: var(--_input-select-underlined-border-radius-bottom-right);
235
-
236
- &.error {
237
- --_input-select-border-underlined: var(--form-element-border-width-underlined) solid transparent;
238
- } */
239
-
240
- &.active,
241
- &.dirty {
242
- }
243
- }
244
-
245
- &.outlined {
246
- &.active,
247
- &.dirty {
248
- }
249
- }
250
-
251
- &:not(.normal) {
252
- &.active,
253
- &.dirty {
254
- }
255
- &:focus-within {
256
- }
257
- }
258
-
259
- /*
260
- * Apply generic styles
261
- **/
262
-
263
- &.underlined {
264
- }
265
-
266
- &.outlined {
267
- }
268
-
269
- &:not(.normal) {
270
- &:focus-visible {
271
- /* --_input-select-box-shadow: var(--box-shadow-on);
272
- --_input-select-outline: var(--form-element-outline-width) solid hsl(from var(--theme-form-input-outline-focus) h s 90%); */
273
- }
274
- }
275
-
276
- .input-select-option {
277
- color: var(--_placeholder-text-color);
278
- margin-block: var(--_placeholder-text-margin-block);
279
- font-size: var(--_placeholder-text-size);
280
- font-weight: var(--_placeholder-text-weight);
281
- line-height: var(--_placeholder-text-line-height);
282
-
283
- &.placeholder {
284
- /* background-color: var(--_placeholder-text-background-color); */
285
- }
286
- }
287
- }
288
- }
289
- </style>