tyrell-components 1.0.0-TC57 → 1.0.0-TC59

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 (226) hide show
  1. package/css/tyrell-colors-static.css +14 -0
  2. package/css/tyrell-theme.css +1 -0
  3. package/css/tyrell.css +8 -6
  4. package/dist/tyrell-colors-static.css +1 -1
  5. package/dist/tyrell-theme.css +1 -1
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.d.ts +20 -15
  8. package/lib/base/ty-component.js +58 -25
  9. package/lib/components/button.d.ts +14 -0
  10. package/lib/components/button.js +55 -7
  11. package/lib/components/calendar-month.d.ts +7 -1
  12. package/lib/components/calendar-month.js +35 -28
  13. package/lib/components/calendar-navigation.js +19 -6
  14. package/lib/components/calendar.d.ts +25 -4
  15. package/lib/components/calendar.js +98 -67
  16. package/lib/components/checkbox.d.ts +6 -1
  17. package/lib/components/checkbox.js +20 -6
  18. package/lib/components/copy.d.ts +2 -0
  19. package/lib/components/copy.js +15 -31
  20. package/lib/components/date-picker.d.ts +52 -19
  21. package/lib/components/date-picker.js +211 -147
  22. package/lib/components/file-upload.d.ts +2 -1
  23. package/lib/components/file-upload.js +8 -3
  24. package/lib/components/input.d.ts +4 -6
  25. package/lib/components/input.js +37 -62
  26. package/lib/components/modal.js +86 -9
  27. package/lib/components/option.js +2 -5
  28. package/lib/components/popup.js +99 -11
  29. package/lib/components/radio.d.ts +8 -1
  30. package/lib/components/radio.js +14 -29
  31. package/lib/components/resize-observer.js +2 -0
  32. package/lib/components/scroll-container.js +2 -0
  33. package/lib/components/select.d.ts +53 -6
  34. package/lib/components/select.js +127 -29
  35. package/lib/components/switch.d.ts +7 -1
  36. package/lib/components/switch.js +20 -6
  37. package/lib/components/tabs.js +1 -1
  38. package/lib/components/textarea.d.ts +45 -4
  39. package/lib/components/textarea.js +75 -18
  40. package/lib/index.d.ts +1 -0
  41. package/lib/index.js +1 -0
  42. package/lib/styles/button.js +21 -19
  43. package/lib/styles/calendar-month.js +1 -1
  44. package/lib/styles/calendar.js +3 -0
  45. package/lib/styles/checkbox.js +11 -5
  46. package/lib/styles/date-picker.js +15 -3
  47. package/lib/styles/input.js +5 -9
  48. package/lib/styles/option.d.ts +1 -1
  49. package/lib/styles/option.js +4 -0
  50. package/lib/styles/popup.d.ts +1 -1
  51. package/lib/styles/popup.js +2 -0
  52. package/lib/styles/radio.js +10 -4
  53. package/lib/styles/select-base.js +24 -3
  54. package/lib/styles/select.d.ts +1 -1
  55. package/lib/styles/select.js +4 -0
  56. package/lib/styles/switch.js +10 -5
  57. package/lib/styles/tag.js +2 -1
  58. package/lib/styles/textarea.d.ts +1 -1
  59. package/lib/styles/textarea.js +7 -0
  60. package/lib/utils/calendar-utils.d.ts +49 -0
  61. package/lib/utils/calendar-utils.js +63 -6
  62. package/lib/utils/scroll-lock.d.ts +10 -4
  63. package/lib/utils/scroll-lock.js +102 -2
  64. package/lib/utils/upgrade-properties.d.ts +21 -0
  65. package/lib/utils/upgrade-properties.js +47 -0
  66. package/lib/utils/validity.d.ts +89 -5
  67. package/lib/utils/validity.js +198 -25
  68. package/lib/version.d.ts +1 -1
  69. package/lib/version.js +1 -1
  70. package/package.json +2 -1
  71. package/lib/base/ty-component.d.ts.map +0 -1
  72. package/lib/base/ty-component.js.map +0 -1
  73. package/lib/components/button.d.ts.map +0 -1
  74. package/lib/components/button.js.map +0 -1
  75. package/lib/components/calendar-month.d.ts.map +0 -1
  76. package/lib/components/calendar-month.js.map +0 -1
  77. package/lib/components/calendar-navigation.d.ts.map +0 -1
  78. package/lib/components/calendar-navigation.js.map +0 -1
  79. package/lib/components/calendar.d.ts.map +0 -1
  80. package/lib/components/calendar.js.map +0 -1
  81. package/lib/components/checkbox.d.ts.map +0 -1
  82. package/lib/components/checkbox.js.map +0 -1
  83. package/lib/components/copy.d.ts.map +0 -1
  84. package/lib/components/copy.js.map +0 -1
  85. package/lib/components/date-picker.d.ts.map +0 -1
  86. package/lib/components/date-picker.js.map +0 -1
  87. package/lib/components/dropdown.d.ts +0 -403
  88. package/lib/components/dropdown.d.ts.map +0 -1
  89. package/lib/components/dropdown.js +0 -1315
  90. package/lib/components/dropdown.js.map +0 -1
  91. package/lib/components/icon.d.ts.map +0 -1
  92. package/lib/components/icon.js.map +0 -1
  93. package/lib/components/input.d.ts.map +0 -1
  94. package/lib/components/input.js.map +0 -1
  95. package/lib/components/modal.d.ts.map +0 -1
  96. package/lib/components/modal.js.map +0 -1
  97. package/lib/components/multiselect.d.ts +0 -389
  98. package/lib/components/multiselect.d.ts.map +0 -1
  99. package/lib/components/multiselect.js +0 -1301
  100. package/lib/components/multiselect.js.map +0 -1
  101. package/lib/components/option.d.ts.map +0 -1
  102. package/lib/components/option.js.map +0 -1
  103. package/lib/components/popup.d.ts.map +0 -1
  104. package/lib/components/popup.js.map +0 -1
  105. package/lib/components/resize-observer.d.ts.map +0 -1
  106. package/lib/components/resize-observer.js.map +0 -1
  107. package/lib/components/scroll-container.d.ts.map +0 -1
  108. package/lib/components/scroll-container.js.map +0 -1
  109. package/lib/components/step.d.ts.map +0 -1
  110. package/lib/components/step.js.map +0 -1
  111. package/lib/components/tab.d.ts.map +0 -1
  112. package/lib/components/tab.js.map +0 -1
  113. package/lib/components/tabs.d.ts.map +0 -1
  114. package/lib/components/tabs.js.map +0 -1
  115. package/lib/components/tag.d.ts.map +0 -1
  116. package/lib/components/tag.js.map +0 -1
  117. package/lib/components/textarea.d.ts.map +0 -1
  118. package/lib/components/textarea.js.map +0 -1
  119. package/lib/components/tooltip.d.ts.map +0 -1
  120. package/lib/components/tooltip.js.map +0 -1
  121. package/lib/components/wizard.d.ts.map +0 -1
  122. package/lib/components/wizard.js.map +0 -1
  123. package/lib/icons/fontawesome/brands.d.ts.map +0 -1
  124. package/lib/icons/fontawesome/brands.js.map +0 -1
  125. package/lib/icons/fontawesome/regular.d.ts.map +0 -1
  126. package/lib/icons/fontawesome/regular.js.map +0 -1
  127. package/lib/icons/fontawesome/solid.d.ts.map +0 -1
  128. package/lib/icons/fontawesome/solid.js.map +0 -1
  129. package/lib/icons/heroicons/micro.d.ts.map +0 -1
  130. package/lib/icons/heroicons/micro.js.map +0 -1
  131. package/lib/icons/heroicons/mini.d.ts.map +0 -1
  132. package/lib/icons/heroicons/mini.js.map +0 -1
  133. package/lib/icons/heroicons/outline.d.ts.map +0 -1
  134. package/lib/icons/heroicons/outline.js.map +0 -1
  135. package/lib/icons/heroicons/solid.d.ts.map +0 -1
  136. package/lib/icons/heroicons/solid.js.map +0 -1
  137. package/lib/icons/lucide.d.ts.map +0 -1
  138. package/lib/icons/lucide.js.map +0 -1
  139. package/lib/icons/material/filled.d.ts.map +0 -1
  140. package/lib/icons/material/filled.js.map +0 -1
  141. package/lib/icons/material/outlined.d.ts.map +0 -1
  142. package/lib/icons/material/outlined.js.map +0 -1
  143. package/lib/icons/material/round.d.ts.map +0 -1
  144. package/lib/icons/material/round.js.map +0 -1
  145. package/lib/icons/material/sharp.d.ts.map +0 -1
  146. package/lib/icons/material/sharp.js.map +0 -1
  147. package/lib/icons/material/two-tone.d.ts.map +0 -1
  148. package/lib/icons/material/two-tone.js.map +0 -1
  149. package/lib/index.d.ts.map +0 -1
  150. package/lib/index.js.map +0 -1
  151. package/lib/styles/button.d.ts.map +0 -1
  152. package/lib/styles/button.js.map +0 -1
  153. package/lib/styles/calendar-month.d.ts.map +0 -1
  154. package/lib/styles/calendar-month.js.map +0 -1
  155. package/lib/styles/calendar-navigation.d.ts.map +0 -1
  156. package/lib/styles/calendar-navigation.js.map +0 -1
  157. package/lib/styles/calendar.d.ts.map +0 -1
  158. package/lib/styles/calendar.js.map +0 -1
  159. package/lib/styles/copy.d.ts.map +0 -1
  160. package/lib/styles/copy.js.map +0 -1
  161. package/lib/styles/date-picker.d.ts.map +0 -1
  162. package/lib/styles/date-picker.js.map +0 -1
  163. package/lib/styles/dropdown.d.ts +0 -12
  164. package/lib/styles/dropdown.d.ts.map +0 -1
  165. package/lib/styles/dropdown.js +0 -725
  166. package/lib/styles/dropdown.js.map +0 -1
  167. package/lib/styles/icon.d.ts.map +0 -1
  168. package/lib/styles/icon.js.map +0 -1
  169. package/lib/styles/input.d.ts.map +0 -1
  170. package/lib/styles/input.js.map +0 -1
  171. package/lib/styles/modal.d.ts.map +0 -1
  172. package/lib/styles/modal.js.map +0 -1
  173. package/lib/styles/multiselect.d.ts +0 -6
  174. package/lib/styles/multiselect.d.ts.map +0 -1
  175. package/lib/styles/multiselect.js +0 -568
  176. package/lib/styles/multiselect.js.map +0 -1
  177. package/lib/styles/option.d.ts.map +0 -1
  178. package/lib/styles/option.js.map +0 -1
  179. package/lib/styles/popup.d.ts.map +0 -1
  180. package/lib/styles/popup.js.map +0 -1
  181. package/lib/styles/resize-observer.d.ts.map +0 -1
  182. package/lib/styles/resize-observer.js.map +0 -1
  183. package/lib/styles/scroll-container.d.ts.map +0 -1
  184. package/lib/styles/scroll-container.js.map +0 -1
  185. package/lib/styles/step.d.ts.map +0 -1
  186. package/lib/styles/step.js.map +0 -1
  187. package/lib/styles/tab.d.ts.map +0 -1
  188. package/lib/styles/tab.js.map +0 -1
  189. package/lib/styles/tabs.d.ts.map +0 -1
  190. package/lib/styles/tabs.js.map +0 -1
  191. package/lib/styles/tag.d.ts.map +0 -1
  192. package/lib/styles/tag.js.map +0 -1
  193. package/lib/styles/textarea.d.ts.map +0 -1
  194. package/lib/styles/textarea.js.map +0 -1
  195. package/lib/styles/tooltip.d.ts.map +0 -1
  196. package/lib/styles/tooltip.js.map +0 -1
  197. package/lib/styles/wizard.d.ts.map +0 -1
  198. package/lib/styles/wizard.js.map +0 -1
  199. package/lib/types/common.d.ts.map +0 -1
  200. package/lib/types/common.js.map +0 -1
  201. package/lib/utils/calendar-utils.d.ts.map +0 -1
  202. package/lib/utils/calendar-utils.js.map +0 -1
  203. package/lib/utils/icon-registry.d.ts.map +0 -1
  204. package/lib/utils/icon-registry.js.map +0 -1
  205. package/lib/utils/locale.d.ts.map +0 -1
  206. package/lib/utils/locale.js.map +0 -1
  207. package/lib/utils/number-format.d.ts.map +0 -1
  208. package/lib/utils/number-format.js.map +0 -1
  209. package/lib/utils/parse-boolean.d.ts +0 -39
  210. package/lib/utils/parse-boolean.d.ts.map +0 -1
  211. package/lib/utils/parse-boolean.js +0 -23
  212. package/lib/utils/parse-boolean.js.map +0 -1
  213. package/lib/utils/positioning.d.ts.map +0 -1
  214. package/lib/utils/positioning.js.map +0 -1
  215. package/lib/utils/property-capture.d.ts.map +0 -1
  216. package/lib/utils/property-capture.js.map +0 -1
  217. package/lib/utils/property-manager.d.ts.map +0 -1
  218. package/lib/utils/property-manager.js.map +0 -1
  219. package/lib/utils/resize-observer.d.ts.map +0 -1
  220. package/lib/utils/resize-observer.js.map +0 -1
  221. package/lib/utils/scroll-lock.d.ts.map +0 -1
  222. package/lib/utils/scroll-lock.js.map +0 -1
  223. package/lib/utils/styles.d.ts.map +0 -1
  224. package/lib/utils/styles.js.map +0 -1
  225. package/lib/version.d.ts.map +0 -1
  226. package/lib/version.js.map +0 -1
@@ -1,725 +0,0 @@
1
-
2
- export const dropdownStyles = `
3
- :host {
4
- display: block;
5
- width: auto;
6
- min-width: 200px;
7
- }
8
- :host {
9
- --mobile-border-color: #5858587d;
10
- }
11
- .dropdown-container {
12
- display: flex;
13
- flex-direction: column;
14
- width: 100%;
15
- box-sizing: border-box;
16
- }
17
- .dropdown-label {
18
- font-size: 14px;
19
- font-weight: 500;
20
- color: var(--ty-label-color);
21
- margin-bottom: 6px;
22
- line-height: 1.25;
23
- padding-left: 12px;
24
- }
25
- .required-icon {
26
- display: inline-flex;
27
- align-items: center;
28
- color: #ef4444;
29
- width: 12px;
30
- height: 12px;
31
- vertical-align: middle;
32
- margin-left: 4px;
33
- }
34
- .dropdown-wrapper {
35
- position: relative;
36
- display: block;
37
- width: 100%;
38
- }
39
- .dropdown-mode-desktop .dropdown-stub {
40
- width: 100%;
41
- cursor: pointer;
42
- box-sizing: border-box;
43
- position: relative;
44
- display: flex;
45
- align-items: center;
46
- background: var(--ty-input-bg);
47
- color: var(--ty-input-color);
48
- border: 1px solid var(--ty-input-border);
49
- border-radius: var(--ty-radius-md);
50
- font-family: var(--ty-font-sans);
51
- font-size: var(--ty-font-sm);
52
- font-weight: var(--ty-font-normal);
53
- line-height: var(--ty-line-height-tight);
54
- min-height: var(--ty-size-md);
55
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
56
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
57
- transition: var(--ty-transition-all), opacity 0.2s ease;
58
- outline: none;
59
- }
60
- .dropdown-mode-desktop .dropdown-stub:hover {
61
- border-color: var(--ty-input-border-hover);
62
- }
63
- .dropdown-mode-desktop .dropdown-stub[disabled] {
64
- background-color: var(--ty-input-disabled-bg);
65
- color: var(--ty-input-disabled-color);
66
- cursor: not-allowed;
67
- opacity: 0.6;
68
- }
69
- .dropdown-mode-desktop .dropdown-stub:focus {
70
- border-color: var(--ty-input-border-hover);
71
- }
72
- .dropdown-mode-desktop .dropdown-wrapper:has(.dropdown-chevron.open) .dropdown-stub {
73
- opacity: 0;
74
- pointer-events: none;
75
- }
76
- .dropdown-mode-desktop .dropdown-stub.xs {
77
- min-height: var(--ty-size-xs);
78
- font-size: var(--ty-font-xs);
79
- padding: var(--ty-spacing-1) var(--ty-spacing-2);
80
- padding-right: calc(var(--ty-spacing-2) + 1rem + var(--ty-spacing-1));
81
- }
82
- .dropdown-mode-desktop .dropdown-stub.sm {
83
- min-height: var(--ty-size-sm);
84
- font-size: var(--ty-font-sm);
85
- padding: var(--ty-spacing-1) var(--ty-spacing-2);
86
- padding-right: calc(var(--ty-spacing-2) + 1rem + var(--ty-spacing-1));
87
- }
88
- .dropdown-mode-desktop .dropdown-stub.md {
89
- min-height: var(--ty-size-md);
90
- font-size: var(--ty-font-sm);
91
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
92
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
93
- }
94
- .dropdown-mode-desktop .dropdown-stub.lg {
95
- min-height: var(--ty-size-lg);
96
- font-size: var(--ty-font-base);
97
- padding: var(--ty-spacing-3) var(--ty-spacing-4);
98
- padding-right: calc(var(--ty-spacing-4) + 1rem + var(--ty-spacing-3));
99
- }
100
- .dropdown-mode-desktop .dropdown-stub.xl {
101
- min-height: var(--ty-size-xl);
102
- font-size: var(--ty-font-lg);
103
- padding: var(--ty-spacing-4) var(--ty-spacing-5);
104
- padding-right: calc(var(--ty-spacing-5) + 1rem + var(--ty-spacing-4));
105
- }
106
- .dropdown-mode-desktop .dropdown-stub.xs.clearable.has-selection {
107
- padding-right: calc(var(--ty-spacing-2) + 2rem + var(--ty-spacing-2));
108
- }
109
- .dropdown-mode-desktop .dropdown-stub.sm.clearable.has-selection {
110
- padding-right: calc(var(--ty-spacing-2) + 2rem + var(--ty-spacing-2));
111
- }
112
- .dropdown-mode-desktop .dropdown-stub.md.clearable.has-selection {
113
- padding-right: calc(var(--ty-spacing-3) + 2rem + var(--ty-spacing-3));
114
- }
115
- .dropdown-mode-desktop .dropdown-stub.lg.clearable.has-selection {
116
- padding-right: calc(var(--ty-spacing-4) + 2rem + var(--ty-spacing-4));
117
- }
118
- .dropdown-mode-desktop .dropdown-stub.xl.clearable.has-selection {
119
- padding-right: calc(var(--ty-spacing-5) + 2rem + var(--ty-spacing-5));
120
- }
121
- .dropdown-mode-desktop .dropdown-placeholder {
122
- color: var(--ty-input-placeholder);
123
- font-weight: var(--ty-font-light);
124
- font-size: var(--ty-font-sm);
125
- font-style: italic;
126
- pointer-events: none;
127
- }
128
- .dropdown-mode-desktop .dropdown-stub.has-selection .dropdown-placeholder {
129
- display: none;
130
- }
131
- .dropdown-mode-desktop .dropdown-stub slot[name="selected"] {
132
- display: block;
133
- }
134
- .dropdown-mode-desktop .dropdown-stub.has-selection slot[name="selected"] {
135
- width: 100%;
136
- }
137
- .dropdown-mode-desktop .dropdown-stub slot[name="selected"] * {
138
- display: block;
139
- width: 100%;
140
- padding: 0;
141
- margin: 0;
142
- border: none;
143
- background: none;
144
- color: inherit;
145
- font: inherit;
146
- line-height: inherit;
147
- outline: none;
148
- appearance: none;
149
- }
150
- .dropdown-mode-desktop .dropdown-chevron {
151
- position: absolute;
152
- top: 50%;
153
- right: var(--ty-spacing-3);
154
- transform: translateY(-50%);
155
- width: 1rem;
156
- height: 1rem;
157
- color: var(--ty-input-placeholder);
158
- transition: var(--ty-transition-transform);
159
- pointer-events: none;
160
- }
161
- .dropdown-mode-desktop .dropdown-chevron.open {
162
- transform: translateY(-50%) rotate(180deg);
163
- }
164
- .dropdown-mode-desktop .dropdown-chevron svg {
165
- width: 100%;
166
- height: 100%;
167
- }
168
- .dropdown-mode-desktop .dropdown-clear-btn {
169
- position: absolute;
170
- top: 50%;
171
- right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
172
- transform: translateY(-50%);
173
- width: 1rem;
174
- height: 1rem;
175
- padding: 0;
176
- border: none;
177
- background: none;
178
- color: var(--ty-input-placeholder);
179
- cursor: pointer;
180
- transition: var(--ty-transition-colors);
181
- display: none;
182
- }
183
- .dropdown-mode-desktop .dropdown-clear-btn:hover {
184
- color: var(--ty-color-danger);
185
- }
186
- .dropdown-mode-desktop .dropdown-clear-btn:active {
187
- transform: translateY(-50%) scale(0.9);
188
- }
189
- .dropdown-mode-desktop .dropdown-clear-btn svg {
190
- width: 100%;
191
- height: 100%;
192
- display: block;
193
- }
194
- .dropdown-mode-desktop .dropdown-dialog {
195
- position: fixed;
196
- width: var(--dropdown-width, 200px);
197
- max-width: 100vw;
198
- margin: 0;
199
- padding: 0;
200
- border: none;
201
- background: transparent;
202
- box-sizing: border-box;
203
- padding: var(--dropdown-padding, 20px);
204
- opacity: 0;
205
- transition: opacity 400ms ease;
206
- transform: translate(var(--dropdown-offset-x, 0px), var(--dropdown-offset-y, 0px));
207
- top: -1000px;
208
- left: -1000px;
209
- }
210
- .dropdown-mode-desktop .dropdown-dialog[open] {
211
- display: flex;
212
- flex-direction: column;
213
- }
214
- .dropdown-mode-desktop .dropdown-dialog.position-below {
215
- left: var(--dropdown-x);
216
- top: var(--dropdown-y);
217
- }
218
- .dropdown-mode-desktop .dropdown-dialog.position-above {
219
- left: var(--dropdown-x);
220
- bottom: var(--dropdown-y);
221
- top: auto;
222
- flex-direction: column-reverse;
223
- }
224
- .dropdown-mode-desktop .dropdown-dialog.position-above .dropdown-header {
225
- margin-top: 4px;
226
- }
227
- .dropdown-mode-desktop .dropdown-dialog.position-below .dropdown-header {
228
- margin-bottom: 4px;
229
- }
230
- .dropdown-mode-desktop .dropdown-dialog.position-below .dropdown-options {
231
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1), var(--ty-shadow-md);
232
- }
233
- .dropdown-mode-desktop .dropdown-dialog.open {
234
- display: flex;
235
- opacity: 1;
236
- }
237
- .dropdown-mode-desktop .dropdown-dialog.open .dropdown-options {
238
- opacity: 1;
239
- transform: translateY(0) scale(1);
240
- }
241
- .dropdown-mode-desktop .dropdown-dialog::backdrop {
242
- background: transparent;
243
- }
244
- .dropdown-mode-desktop .dropdown-header {
245
- display: flex;
246
- align-items: center;
247
- gap: var(--ty-spacing-2);
248
- position: relative;
249
- }
250
- .dropdown-mode-desktop .dropdown-search-input {
251
- width: 100%;
252
- min-width: 0;
253
- box-sizing: border-box;
254
- background: var(--ty-input-bg);
255
- color: var(--ty-input-color);
256
- border: 1px solid var(--ty-input-border);
257
- border-radius: var(--ty-radius-md);
258
- font-family: var(--ty-font-sans);
259
- font-size: var(--ty-font-sm);
260
- font-weight: var(--ty-font-normal);
261
- line-height: var(--ty-line-height-tight);
262
- min-height: var(--ty-size-md);
263
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
264
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
265
- transition: var(--ty-transition-all);
266
- outline: none;
267
- }
268
- .dropdown-mode-desktop .dropdown-search-input:focus {
269
- border-color: var(--ty-input-border-focus);
270
- box-shadow: 0 0 0 3px var(--ty-input-shadow-focus);
271
- }
272
- .dropdown-mode-desktop .dropdown-search-input:disabled {
273
- background-color: var(--ty-input-disabled-bg);
274
- color: var(--ty-input-disabled-color);
275
- cursor: not-allowed;
276
- opacity: 0.6;
277
- }
278
- .dropdown-mode-desktop .dropdown-search-input::placeholder {
279
- color: var(--ty-input-placeholder);
280
- }
281
- .dropdown-mode-desktop .dropdown-search-input.xs {
282
- min-height: var(--ty-size-xs);
283
- font-size: var(--ty-font-xs);
284
- padding: var(--ty-spacing-1) var(--ty-spacing-2);
285
- padding-right: calc(var(--ty-spacing-2) + 1rem + var(--ty-spacing-1));
286
- }
287
- .dropdown-mode-desktop .dropdown-search-input.sm {
288
- min-height: var(--ty-size-sm);
289
- font-size: var(--ty-font-sm);
290
- padding: var(--ty-spacing-1) var(--ty-spacing-2);
291
- padding-right: calc(var(--ty-spacing-2) + 1rem + var(--ty-spacing-1));
292
- }
293
- .dropdown-mode-desktop .dropdown-search-input.md {
294
- min-height: var(--ty-size-md);
295
- font-size: var(--ty-font-sm);
296
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
297
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
298
- }
299
- .dropdown-mode-desktop .dropdown-search-input.lg {
300
- min-height: var(--ty-size-lg);
301
- font-size: var(--ty-font-base);
302
- padding: var(--ty-spacing-3) var(--ty-spacing-4);
303
- padding-right: calc(var(--ty-spacing-4) + 1rem + var(--ty-spacing-3));
304
- }
305
- .dropdown-mode-desktop .dropdown-search-input.xl {
306
- min-height: var(--ty-size-xl);
307
- font-size: var(--ty-font-lg);
308
- padding: var(--ty-spacing-4) var(--ty-spacing-5);
309
- padding-right: calc(var(--ty-spacing-5) + 1rem + var(--ty-spacing-4));
310
- }
311
- .dropdown-mode-desktop .dropdown-search-chevron {
312
- position: absolute;
313
- top: 50%;
314
- right: var(--ty-spacing-3);
315
- transform: translateY(-50%);
316
- width: 1rem;
317
- height: 1rem;
318
- color: var(--ty-input-placeholder);
319
- transition: var(--ty-transition-transform);
320
- pointer-events: none;
321
- }
322
- .dropdown-mode-desktop .dropdown-search-chevron.open {
323
- transform: translateY(-50%) rotate(180deg);
324
- }
325
- .dropdown-mode-desktop .dropdown-search-chevron svg {
326
- width: 100%;
327
- height: 100%;
328
- }
329
- .dropdown-mode-desktop .dropdown-options {
330
- opacity: 0;
331
- background: var(--ty-input-bg);
332
- border: 1px solid var(--ty-input-border);
333
- border-radius: var(--ty-radius-lg);
334
- box-shadow: var(--ty-shadow-md);
335
- max-height: 16rem;
336
- width: 100%;
337
- max-width: 100%;
338
- overflow-x: hidden;
339
- overflow-y: auto;
340
- scroll-behavior: smooth;
341
- box-sizing: border-box;
342
- box-shadow:
343
- 0 20px 25px -5px rgba(0, 0, 0, 0.1),
344
- 0 10px 10px -5px rgba(0, 0, 0, 0.04);
345
- transform: translateY(-20px) scale(0.90);
346
- transition:
347
- opacity 100ms cubic-bezier(0.16, 1, 0.3, 1),
348
- transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
349
- }
350
- .dropdown-mode-desktop .dropdown-options ::slotted(option) {
351
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
352
- color: var(--ty-input-color);
353
- cursor: pointer;
354
- transition:
355
- var(--ty-transition-colors),
356
- transform 150ms cubic-bezier(0.16, 1, 0.3, 1);
357
- border: none;
358
- background: none;
359
- font-size: inherit;
360
- font-family: inherit;
361
- width: 100%;
362
- text-align: left;
363
- box-sizing: border-box;
364
- transform: translateX(0);
365
- }
366
- .dropdown-mode-desktop .dropdown-options ::slotted(option:hover) {
367
- background-color: var(--ty-bg-neutral-soft);
368
- }
369
- .dropdown-mode-desktop .dropdown-options ::slotted(option[highlighted]) {
370
- background-color: var(--ty-bg-primary-soft);
371
- color: var(--ty-color-primary-mild);
372
- }
373
- .dropdown-mode-desktop .dropdown-options ::slotted(option[selected]) {
374
- background-color: var(--ty-color-primary);
375
- color: #ffffff;
376
- }
377
- .dropdown-mode-desktop .dropdown-options ::slotted(option[hidden]),
378
- .dropdown-mode-desktop .dropdown-options ::slotted(ty-option[hidden]),
379
- .dropdown-mode-desktop .dropdown-options ::slotted(ty-tag[hidden]) {
380
- display: none;
381
- }
382
- .dropdown-mode-mobile .dropdown-stub {
383
- width: 100%;
384
- cursor: pointer;
385
- box-sizing: border-box;
386
- position: relative;
387
- display: flex;
388
- align-items: center;
389
- background: var(--ty-input-bg);
390
- color: var(--ty-input-color);
391
- border: 1px solid var(--ty-input-border);
392
- border-radius: var(--ty-radius-md);
393
- font-family: var(--ty-font-sans);
394
- font-size: var(--ty-font-sm);
395
- font-weight: var(--ty-font-normal);
396
- line-height: var(--ty-line-height-tight);
397
- min-height: var(--ty-size-md);
398
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
399
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
400
- transition: var(--ty-transition-all);
401
- outline: none;
402
- }
403
- .dropdown-mode-mobile .dropdown-stub:hover {
404
- border-color: var(--ty-input-border-hover);
405
- }
406
- .dropdown-mode-mobile .dropdown-stub[disabled] {
407
- background-color: var(--ty-input-disabled-bg);
408
- color: var(--ty-input-disabled-color);
409
- cursor: not-allowed;
410
- opacity: 0.6;
411
- }
412
- .dropdown-mode-mobile .dropdown-stub.xs {
413
- min-height: var(--ty-size-xs);
414
- font-size: var(--ty-font-xs);
415
- padding: var(--ty-spacing-1) var(--ty-spacing-2);
416
- padding-right: calc(var(--ty-spacing-2) + 1rem + var(--ty-spacing-1));
417
- }
418
- .dropdown-mode-mobile .dropdown-stub.sm {
419
- min-height: var(--ty-size-sm);
420
- font-size: var(--ty-font-sm);
421
- padding: var(--ty-spacing-1) var(--ty-spacing-2);
422
- padding-right: calc(var(--ty-spacing-2) + 1rem + var(--ty-spacing-1));
423
- }
424
- .dropdown-mode-mobile .dropdown-stub.md {
425
- min-height: var(--ty-size-md);
426
- font-size: var(--ty-font-sm);
427
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
428
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
429
- }
430
- .dropdown-mode-mobile .dropdown-stub.lg {
431
- min-height: var(--ty-size-lg);
432
- font-size: var(--ty-font-base);
433
- padding: var(--ty-spacing-3) var(--ty-spacing-4);
434
- padding-right: calc(var(--ty-spacing-4) + 1rem + var(--ty-spacing-3));
435
- }
436
- .dropdown-mode-mobile .dropdown-stub.xl {
437
- min-height: var(--ty-size-xl);
438
- font-size: var(--ty-font-lg);
439
- padding: var(--ty-spacing-4) var(--ty-spacing-5);
440
- padding-right: calc(var(--ty-spacing-5) + 1rem + var(--ty-spacing-4));
441
- }
442
- .dropdown-mode-mobile .dropdown-placeholder {
443
- color: var(--ty-input-placeholder);
444
- font-weight: var(--ty-font-light);
445
- font-size: var(--ty-font-sm);
446
- font-style: italic;
447
- pointer-events: none;
448
- }
449
- .dropdown-mode-mobile .dropdown-stub.has-selection .dropdown-placeholder {
450
- display: none;
451
- }
452
- .dropdown-mode-mobile .dropdown-stub slot[name="selected"] {
453
- display: block;
454
- }
455
- .dropdown-mode-mobile .dropdown-stub.has-selection slot[name="selected"] {
456
- width: 100%;
457
- }
458
- .dropdown-mode-mobile .dropdown-stub slot[name="selected"] * {
459
- display: block;
460
- width: 100%;
461
- padding: 0;
462
- margin: 0;
463
- border: none;
464
- background: none;
465
- color: inherit;
466
- font: inherit;
467
- line-height: inherit;
468
- outline: none;
469
- appearance: none;
470
- }
471
- .dropdown-mode-mobile .dropdown-chevron {
472
- position: absolute;
473
- top: 50%;
474
- right: var(--ty-spacing-3);
475
- transform: translateY(-50%);
476
- width: 1rem;
477
- height: 1rem;
478
- color: var(--ty-input-placeholder);
479
- transition: var(--ty-transition-transform);
480
- pointer-events: none;
481
- }
482
- .dropdown-mode-mobile .dropdown-chevron svg {
483
- width: 100%;
484
- height: 100%;
485
- }
486
- .dropdown-mode-mobile .mobile-modal {
487
- position: fixed;
488
- top: 0;
489
- left: 0;
490
- right: 0;
491
- bottom: 0;
492
- width: 100vw;
493
- height: 100vh;
494
- z-index: 9999;
495
- display: flex;
496
- align-items: flex-start;
497
- justify-content: center;
498
- padding-top: 10vh;
499
- opacity: 0;
500
- transition: opacity 300ms ease;
501
- pointer-events: none;
502
- }
503
- .dropdown-mode-mobile .mobile-modal.open {
504
- opacity: 1;
505
- pointer-events: auto;
506
- }
507
- .dropdown-mode-mobile .mobile-modal-backdrop {
508
- position: fixed;
509
- top: 0;
510
- left: 0;
511
- width: 100vw;
512
- height: 100vh;
513
- background: rgba(0, 0, 0, 0.5);
514
- backdrop-filter: blur(8px);
515
- -webkit-backdrop-filter: blur(8px);
516
- z-index: 1;
517
- }
518
- .dropdown-mode-mobile .mobile-modal-content {
519
- position: relative;
520
- z-index: 2;
521
- display: flex;
522
- flex-direction: column;
523
- width: calc(100% - 32px);
524
- max-width: 400px;
525
- min-height: 200px;
526
- max-height: calc(90vh - 10vh);
527
- opacity: 0;
528
- transform: scale(0.95);
529
- transition:
530
- opacity 300ms cubic-bezier(0.16, 1, 0.3, 1),
531
- transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
532
- }
533
- .dropdown-mode-mobile .mobile-modal.open .mobile-modal-content {
534
- opacity: 1;
535
- transform: scale(1);
536
- }
537
- .dropdown-mode-mobile .mobile-search-header {
538
- flex-shrink: 0;
539
- display: flex;
540
- align-items: center;
541
- gap: 12px;
542
- margin-bottom: 16px;
543
- padding: 0;
544
- background: transparent;
545
- position: relative;
546
- }
547
- .dropdown-mode-mobile .mobile-header-content {
548
- display: flex;
549
- align-items: center;
550
- gap: 12px;
551
- width: 100%;
552
- }
553
- .dropdown-mode-mobile .mobile-header-nosearch {
554
- flex-shrink: 0;
555
- display: flex;
556
- justify-content: flex-end;
557
- margin-bottom: 16px;
558
- padding: 0;
559
- background: transparent;
560
- position: relative;
561
- min-height: 40px;
562
- }
563
- .dropdown-mode-mobile .mobile-close-button {
564
- flex-shrink: 0;
565
- width: 36px;
566
- height: 36px;
567
- display: flex;
568
- align-items: center;
569
- justify-content: center;
570
- background: var(--ty-surface-floating);
571
- border: 1px solid var(--ty-border-);
572
- border-radius: 50%;
573
- color: var(--ty-text-);
574
- cursor: pointer;
575
- transition: var(--ty-transition-all);
576
- padding: 0;
577
- border: 3px solid;
578
- border-color: var(--mobile-border-color);
579
- }
580
- .dropdown-mode-mobile .mobile-close-button:hover {
581
- background: var(--ty-bg-neutral);
582
- border-color: var(--ty-border);
583
- color: var(--ty-text);
584
- }
585
- .dropdown-mode-mobile .mobile-close-button:active {
586
- transform: scale(0.9);
587
- }
588
- .dropdown-mode-mobile .mobile-close-button svg {
589
- width: 24px;
590
- height: 24px;
591
- }
592
- .dropdown-mode-mobile .mobile-search-input {
593
- flex: 1;
594
- min-width: 0;
595
- box-sizing: border-box;
596
- background: var(--ty-surface-floating);
597
- color: var(--ty-text);
598
- border: 1px solid var(--ty-border-);
599
- border-radius: var(--ty-radius-md);
600
- font-family: var(--ty-font-sans);
601
- font-size: var(--ty-font-sm);
602
- font-weight: var(--ty-font-normal);
603
- line-height: var(--ty-line-height-tight);
604
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
605
- height: 40px;
606
- transition: var(--ty-transition-all);
607
- outline: none;
608
- border: 3px solid;
609
- border-color: var(--mobile-border-color);
610
- }
611
- .dropdown-mode-mobile .mobile-search-input::placeholder {
612
- color: var(--ty-text--);
613
- }
614
- .dropdown-mode-mobile .mobile-options-container {
615
- position: relative;
616
- flex: 1;
617
- overflow-y: auto;
618
- overflow-x: hidden;
619
- -webkit-overflow-scrolling: touch;
620
- background: var(--ty-surface-floating);
621
- border-radius: var(--ty-radius-lg);
622
- border: 1px solid var(--ty-border-);
623
- box-shadow:
624
- 0 20px 25px -5px rgba(0, 0, 0, 0.1),
625
- 0 10px 10px -5px rgba(0, 0, 0, 0.04);
626
- border: 3px solid;
627
- border-color: var(--mobile-border-color);
628
- }
629
- .dropdown-mode-mobile .mobile-options-container {
630
- scrollbar-width: none;
631
- -ms-overflow-style: none;
632
- }
633
- .dropdown-mode-mobile .mobile-options-container::-webkit-scrollbar {
634
- display: none;
635
- }
636
- .dropdown-mode-mobile .mobile-options-container ::slotted(option) {
637
- display: block;
638
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
639
- margin: 2px 8px;
640
- color: var(--ty-text);
641
- cursor: pointer;
642
- transition: var(--ty-transition-all);
643
- border: none;
644
- background: transparent;
645
- font-size: var(--ty-font-sm);
646
- font-family: inherit;
647
- width: calc(100% - 16px);
648
- text-align: left;
649
- box-sizing: border-box;
650
- border-radius: var(--ty-radius-sm);
651
- min-height: 36px;
652
- }
653
- .dropdown-mode-mobile .mobile-options-container ::slotted(option:active) {
654
- background-color: var(--ty-bg-neutral-soft);
655
- }
656
- .dropdown-mode-mobile .mobile-options-container ::slotted(option[highlighted]) {
657
- background-color: var(--ty-bg-primary-soft);
658
- color: var(--ty-color-primary-mild);
659
- }
660
- .dropdown-mode-mobile .mobile-options-container ::slotted(option[selected]) {
661
- background: var(--ty-bg-primary);
662
- color: var(--ty-color-primary-strong);
663
- }
664
- .dropdown-mode-mobile .mobile-options-container ::slotted(option[hidden]),
665
- .dropdown-mode-mobile .mobile-options-container ::slotted(ty-option[hidden]),
666
- .dropdown-mode-mobile .mobile-options-container ::slotted(ty-tag[hidden]) {
667
- display: none;
668
- }
669
- :host([flavor="primary"]) .dropdown-stub,
670
- :host([flavor="primary"]) .dropdown-search-input {
671
- border-color: var(--ty-color-primary);
672
- }
673
- :host([flavor="primary"]) .dropdown-stub:hover,
674
- :host([flavor="primary"]) .dropdown-search-input:focus {
675
- border-color: var(--ty-color-primary-mild);
676
- box-shadow: 0 0 0 3px var(--ty-color-primary-faint);
677
- }
678
- :host([flavor="secondary"]) .dropdown-stub,
679
- :host([flavor="secondary"]) .dropdown-search-input {
680
- border-color: var(--ty-color-secondary);
681
- }
682
- :host([flavor="secondary"]) .dropdown-stub:hover,
683
- :host([flavor="secondary"]) .dropdown-search-input:focus {
684
- border-color: var(--ty-color-secondary-mild);
685
- box-shadow: 0 0 0 3px var(--ty-color-secondary-faint);
686
- }
687
- :host([flavor="success"]) .dropdown-stub,
688
- :host([flavor="success"]) .dropdown-search-input {
689
- border-color: var(--ty-color-success);
690
- }
691
- :host([flavor="success"]) .dropdown-stub:hover,
692
- :host([flavor="success"]) .dropdown-search-input:focus {
693
- border-color: var(--ty-color-success-mild);
694
- box-shadow: 0 0 0 3px var(--ty-color-success-faint);
695
- }
696
- :host([flavor="danger"]) .dropdown-stub,
697
- :host([flavor="danger"]) .dropdown-search-input {
698
- border-color: var(--ty-color-danger);
699
- }
700
- :host([flavor="danger"]) .dropdown-stub:hover,
701
- :host([flavor="danger"]) .dropdown-search-input:focus {
702
- border-color: var(--ty-color-danger-mild);
703
- box-shadow: 0 0 0 3px var(--ty-color-danger-faint);
704
- }
705
- :host([flavor="warning"]) .dropdown-stub,
706
- :host([flavor="warning"]) .dropdown-search-input {
707
- border-color: var(--ty-color-warning);
708
- }
709
- :host([flavor="warning"]) .dropdown-stub:hover,
710
- :host([flavor="warning"]) .dropdown-search-input:focus {
711
- border-color: var(--ty-color-warning-mild);
712
- box-shadow: 0 0 0 3px var(--ty-color-warning-faint);
713
- }
714
- :host([readonly]) .dropdown-chevron {
715
- display: none;
716
- }
717
- :host([readonly]) .dropdown-stub {
718
- padding-right: var(--ty-spacing-3);
719
- }
720
- :host([readonly]) .dropdown-stub,
721
- :host([readonly]) .dropdown-stub slot[name="selected"] {
722
- cursor: initial;
723
- }
724
- `;
725
- //# sourceMappingURL=dropdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/styles/dropdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA82B7B,CAAA"}