tyrell-components 1.0.0-TC55 → 1.0.0-TC57

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 (248) hide show
  1. package/README.md +53 -53
  2. package/css/tyrell-theme.css +7 -2
  3. package/css/tyrell.css +9 -18
  4. package/dist/tyrell-theme.css +1 -1
  5. package/dist/tyrell.css +1 -1
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.d.ts +17 -0
  8. package/lib/base/ty-component.d.ts.map +1 -0
  9. package/lib/base/ty-component.js +32 -1
  10. package/lib/base/ty-component.js.map +1 -0
  11. package/lib/components/button.d.ts.map +1 -0
  12. package/lib/components/button.js +7 -0
  13. package/lib/components/button.js.map +1 -0
  14. package/lib/components/calendar-month.d.ts.map +1 -0
  15. package/lib/components/calendar-month.js +3 -2
  16. package/lib/components/calendar-month.js.map +1 -0
  17. package/lib/components/calendar-navigation.d.ts +11 -0
  18. package/lib/components/calendar-navigation.d.ts.map +1 -0
  19. package/lib/components/calendar-navigation.js +51 -40
  20. package/lib/components/calendar-navigation.js.map +1 -0
  21. package/lib/components/calendar.d.ts +28 -0
  22. package/lib/components/calendar.d.ts.map +1 -0
  23. package/lib/components/calendar.js +186 -4
  24. package/lib/components/calendar.js.map +1 -0
  25. package/lib/components/checkbox.d.ts +2 -0
  26. package/lib/components/checkbox.d.ts.map +1 -0
  27. package/lib/components/checkbox.js +10 -3
  28. package/lib/components/checkbox.js.map +1 -0
  29. package/lib/components/copy.d.ts.map +1 -0
  30. package/lib/components/copy.js +9 -2
  31. package/lib/components/copy.js.map +1 -0
  32. package/lib/components/date-picker.d.ts +17 -16
  33. package/lib/components/date-picker.d.ts.map +1 -0
  34. package/lib/components/date-picker.js +182 -249
  35. package/lib/components/date-picker.js.map +1 -0
  36. package/lib/components/dropdown.d.ts +403 -0
  37. package/lib/components/dropdown.d.ts.map +1 -0
  38. package/lib/components/dropdown.js +1315 -0
  39. package/lib/components/dropdown.js.map +1 -0
  40. package/lib/components/file-upload.d.ts +6 -0
  41. package/lib/components/file-upload.js +29 -2
  42. package/lib/components/icon.d.ts.map +1 -0
  43. package/lib/components/icon.js.map +1 -0
  44. package/lib/components/input.d.ts +74 -2
  45. package/lib/components/input.d.ts.map +1 -0
  46. package/lib/components/input.js +168 -8
  47. package/lib/components/input.js.map +1 -0
  48. package/lib/components/modal.d.ts +4 -8
  49. package/lib/components/modal.d.ts.map +1 -0
  50. package/lib/components/modal.js +18 -25
  51. package/lib/components/modal.js.map +1 -0
  52. package/lib/components/multiselect.d.ts +389 -0
  53. package/lib/components/multiselect.d.ts.map +1 -0
  54. package/lib/components/multiselect.js +1301 -0
  55. package/lib/components/multiselect.js.map +1 -0
  56. package/lib/components/option.d.ts.map +1 -0
  57. package/lib/components/option.js +5 -0
  58. package/lib/components/option.js.map +1 -0
  59. package/lib/components/popup.d.ts.map +1 -0
  60. package/lib/components/popup.js +19 -4
  61. package/lib/components/popup.js.map +1 -0
  62. package/lib/components/radio.d.ts +17 -0
  63. package/lib/components/radio.js +42 -4
  64. package/lib/components/resize-observer.d.ts.map +1 -0
  65. package/lib/components/resize-observer.js.map +1 -0
  66. package/lib/components/scroll-container.d.ts +3 -2
  67. package/lib/components/scroll-container.d.ts.map +1 -0
  68. package/lib/components/scroll-container.js +5 -8
  69. package/lib/components/scroll-container.js.map +1 -0
  70. package/lib/components/select.d.ts +16 -6
  71. package/lib/components/select.js +73 -19
  72. package/lib/components/selected-tags.d.ts +7 -1
  73. package/lib/components/selected-tags.js +10 -1
  74. package/lib/components/step.d.ts.map +1 -0
  75. package/lib/components/step.js.map +1 -0
  76. package/lib/components/switch.d.ts +2 -0
  77. package/lib/components/switch.js +10 -3
  78. package/lib/components/tab.d.ts +49 -1
  79. package/lib/components/tab.d.ts.map +1 -0
  80. package/lib/components/tab.js +151 -10
  81. package/lib/components/tab.js.map +1 -0
  82. package/lib/components/tabs.d.ts +14 -2
  83. package/lib/components/tabs.d.ts.map +1 -0
  84. package/lib/components/tabs.js +184 -135
  85. package/lib/components/tabs.js.map +1 -0
  86. package/lib/components/tag.d.ts +4 -7
  87. package/lib/components/tag.d.ts.map +1 -0
  88. package/lib/components/tag.js +6 -7
  89. package/lib/components/tag.js.map +1 -0
  90. package/lib/components/textarea.d.ts +8 -3
  91. package/lib/components/textarea.d.ts.map +1 -0
  92. package/lib/components/textarea.js +23 -15
  93. package/lib/components/textarea.js.map +1 -0
  94. package/lib/components/tooltip.d.ts +4 -3
  95. package/lib/components/tooltip.d.ts.map +1 -0
  96. package/lib/components/tooltip.js +34 -24
  97. package/lib/components/tooltip.js.map +1 -0
  98. package/lib/components/wizard.d.ts +5 -4
  99. package/lib/components/wizard.d.ts.map +1 -0
  100. package/lib/components/wizard.js +120 -156
  101. package/lib/components/wizard.js.map +1 -0
  102. package/lib/icons/fontawesome/brands.d.ts.map +1 -0
  103. package/lib/icons/fontawesome/brands.js.map +1 -0
  104. package/lib/icons/fontawesome/regular.d.ts.map +1 -0
  105. package/lib/icons/fontawesome/regular.js.map +1 -0
  106. package/lib/icons/fontawesome/solid.d.ts.map +1 -0
  107. package/lib/icons/fontawesome/solid.js.map +1 -0
  108. package/lib/icons/heroicons/micro.d.ts.map +1 -0
  109. package/lib/icons/heroicons/micro.js.map +1 -0
  110. package/lib/icons/heroicons/mini.d.ts.map +1 -0
  111. package/lib/icons/heroicons/mini.js.map +1 -0
  112. package/lib/icons/heroicons/outline.d.ts.map +1 -0
  113. package/lib/icons/heroicons/outline.js.map +1 -0
  114. package/lib/icons/heroicons/solid.d.ts.map +1 -0
  115. package/lib/icons/heroicons/solid.js.map +1 -0
  116. package/lib/icons/lucide.d.ts.map +1 -0
  117. package/lib/icons/lucide.js.map +1 -0
  118. package/lib/icons/material/filled.d.ts.map +1 -0
  119. package/lib/icons/material/filled.js.map +1 -0
  120. package/lib/icons/material/outlined.d.ts.map +1 -0
  121. package/lib/icons/material/outlined.js.map +1 -0
  122. package/lib/icons/material/round.d.ts.map +1 -0
  123. package/lib/icons/material/round.js.map +1 -0
  124. package/lib/icons/material/sharp.d.ts.map +1 -0
  125. package/lib/icons/material/sharp.js.map +1 -0
  126. package/lib/icons/material/two-tone.d.ts.map +1 -0
  127. package/lib/icons/material/two-tone.js.map +1 -0
  128. package/lib/index.d.ts +1 -1
  129. package/lib/index.d.ts.map +1 -0
  130. package/lib/index.js.map +1 -0
  131. package/lib/styles/button.d.ts.map +1 -0
  132. package/lib/styles/button.js +68 -58
  133. package/lib/styles/button.js.map +1 -0
  134. package/lib/styles/calendar-month.d.ts +3 -0
  135. package/lib/styles/calendar-month.d.ts.map +1 -0
  136. package/lib/styles/calendar-month.js +43 -27
  137. package/lib/styles/calendar-month.js.map +1 -0
  138. package/lib/styles/calendar-navigation.d.ts +1 -1
  139. package/lib/styles/calendar-navigation.d.ts.map +1 -0
  140. package/lib/styles/calendar-navigation.js +55 -26
  141. package/lib/styles/calendar-navigation.js.map +1 -0
  142. package/lib/styles/calendar.d.ts +3 -2
  143. package/lib/styles/calendar.d.ts.map +1 -0
  144. package/lib/styles/calendar.js +74 -0
  145. package/lib/styles/calendar.js.map +1 -0
  146. package/lib/styles/checkbox.js +22 -10
  147. package/lib/styles/copy.d.ts.map +1 -0
  148. package/lib/styles/copy.js +5 -1
  149. package/lib/styles/copy.js.map +1 -0
  150. package/lib/styles/date-picker.d.ts.map +1 -0
  151. package/lib/styles/date-picker.js +53 -23
  152. package/lib/styles/date-picker.js.map +1 -0
  153. package/lib/styles/dropdown.d.ts +12 -0
  154. package/lib/styles/dropdown.d.ts.map +1 -0
  155. package/lib/styles/dropdown.js +725 -0
  156. package/lib/styles/dropdown.js.map +1 -0
  157. package/lib/styles/file-upload.d.ts +1 -1
  158. package/lib/styles/file-upload.js +3 -3
  159. package/lib/styles/icon.d.ts +1 -1
  160. package/lib/styles/icon.d.ts.map +1 -0
  161. package/lib/styles/icon.js +2 -2
  162. package/lib/styles/icon.js.map +1 -0
  163. package/lib/styles/input.d.ts.map +1 -0
  164. package/lib/styles/input.js +1 -1
  165. package/lib/styles/input.js.map +1 -0
  166. package/lib/styles/modal.d.ts.map +1 -0
  167. package/lib/styles/modal.js.map +1 -0
  168. package/lib/styles/multiselect.d.ts +6 -0
  169. package/lib/styles/multiselect.d.ts.map +1 -0
  170. package/lib/styles/multiselect.js +568 -0
  171. package/lib/styles/multiselect.js.map +1 -0
  172. package/lib/styles/option.d.ts +1 -1
  173. package/lib/styles/option.d.ts.map +1 -0
  174. package/lib/styles/option.js +3 -3
  175. package/lib/styles/option.js.map +1 -0
  176. package/lib/styles/popup.d.ts +1 -1
  177. package/lib/styles/popup.d.ts.map +1 -0
  178. package/lib/styles/popup.js +8 -5
  179. package/lib/styles/popup.js.map +1 -0
  180. package/lib/styles/radio.js +10 -4
  181. package/lib/styles/resize-observer.d.ts.map +1 -0
  182. package/lib/styles/resize-observer.js.map +1 -0
  183. package/lib/styles/scroll-container.d.ts +1 -1
  184. package/lib/styles/scroll-container.d.ts.map +1 -0
  185. package/lib/styles/scroll-container.js +1 -1
  186. package/lib/styles/scroll-container.js.map +1 -0
  187. package/lib/styles/select.d.ts +1 -1
  188. package/lib/styles/select.js +6 -0
  189. package/lib/styles/step.d.ts +1 -1
  190. package/lib/styles/step.d.ts.map +1 -0
  191. package/lib/styles/step.js +1 -9
  192. package/lib/styles/step.js.map +1 -0
  193. package/lib/styles/switch.js +6 -3
  194. package/lib/styles/tab.d.ts +1 -1
  195. package/lib/styles/tab.d.ts.map +1 -0
  196. package/lib/styles/tab.js +67 -3
  197. package/lib/styles/tab.js.map +1 -0
  198. package/lib/styles/tabs.d.ts +1 -1
  199. package/lib/styles/tabs.d.ts.map +1 -0
  200. package/lib/styles/tabs.js +7 -3
  201. package/lib/styles/tabs.js.map +1 -0
  202. package/lib/styles/tag.d.ts.map +1 -0
  203. package/lib/styles/tag.js +1 -2
  204. package/lib/styles/tag.js.map +1 -0
  205. package/lib/styles/textarea.d.ts.map +1 -0
  206. package/lib/styles/textarea.js.map +1 -0
  207. package/lib/styles/tooltip.d.ts.map +1 -0
  208. package/lib/styles/tooltip.js.map +1 -0
  209. package/lib/styles/wizard.d.ts +9 -5
  210. package/lib/styles/wizard.d.ts.map +1 -0
  211. package/lib/styles/wizard.js +211 -99
  212. package/lib/styles/wizard.js.map +1 -0
  213. package/lib/types/common.d.ts +2 -2
  214. package/lib/types/common.d.ts.map +1 -0
  215. package/lib/types/common.js.map +1 -0
  216. package/lib/utils/calendar-utils.d.ts.map +1 -0
  217. package/lib/utils/calendar-utils.js.map +1 -0
  218. package/lib/utils/icon-registry.d.ts.map +1 -0
  219. package/lib/utils/icon-registry.js.map +1 -0
  220. package/lib/utils/locale.d.ts.map +1 -0
  221. package/lib/utils/locale.js.map +1 -0
  222. package/lib/utils/number-format.d.ts.map +1 -0
  223. package/lib/utils/number-format.js.map +1 -0
  224. package/lib/utils/parse-boolean.d.ts +39 -0
  225. package/lib/utils/parse-boolean.d.ts.map +1 -0
  226. package/lib/utils/parse-boolean.js +23 -0
  227. package/lib/utils/parse-boolean.js.map +1 -0
  228. package/lib/utils/positioning.d.ts.map +1 -0
  229. package/lib/utils/positioning.js.map +1 -0
  230. package/lib/utils/property-capture.d.ts.map +1 -0
  231. package/lib/utils/property-capture.js.map +1 -0
  232. package/lib/utils/property-manager.d.ts +7 -1
  233. package/lib/utils/property-manager.d.ts.map +1 -0
  234. package/lib/utils/property-manager.js +16 -4
  235. package/lib/utils/property-manager.js.map +1 -0
  236. package/lib/utils/resize-observer.d.ts.map +1 -0
  237. package/lib/utils/resize-observer.js.map +1 -0
  238. package/lib/utils/scroll-lock.d.ts.map +1 -0
  239. package/lib/utils/scroll-lock.js.map +1 -0
  240. package/lib/utils/styles.d.ts.map +1 -0
  241. package/lib/utils/styles.js.map +1 -0
  242. package/lib/utils/validity.d.ts +38 -0
  243. package/lib/utils/validity.js +116 -0
  244. package/lib/version.d.ts +1 -1
  245. package/lib/version.d.ts.map +1 -0
  246. package/lib/version.js +1 -1
  247. package/lib/version.js.map +1 -0
  248. package/package.json +26 -5
@@ -0,0 +1,725 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/styles/dropdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA82B7B,CAAA"}