@seed-design/css 1.2.15 → 2.0.0

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 (183) hide show
  1. package/all.css +4956 -1925
  2. package/all.layered.css +5922 -2883
  3. package/all.layered.min.css +1 -1
  4. package/all.min.css +1 -1
  5. package/base.css +348 -35
  6. package/base.layered.css +348 -35
  7. package/base.layered.min.css +1 -1
  8. package/base.min.css +1 -1
  9. package/breakpoints/index.d.ts +7 -0
  10. package/breakpoints/index.mjs +17 -0
  11. package/package.json +6 -1
  12. package/recipes/accordion.css +268 -0
  13. package/recipes/accordion.d.ts +33 -0
  14. package/recipes/accordion.layered.css +308 -0
  15. package/recipes/accordion.layered.mjs +94 -0
  16. package/recipes/accordion.mjs +94 -0
  17. package/recipes/action-button.css +56 -4
  18. package/recipes/action-button.d.ts +16 -0
  19. package/recipes/action-button.layered.css +60 -4
  20. package/recipes/app-bar.css +0 -3
  21. package/recipes/app-bar.d.ts +0 -4
  22. package/recipes/app-bar.layered.css +0 -4
  23. package/recipes/app-bar.layered.mjs +1 -5
  24. package/recipes/app-bar.mjs +1 -5
  25. package/recipes/app-screen.css +3 -0
  26. package/recipes/app-screen.layered.css +4 -0
  27. package/recipes/attachment-input-item.css +275 -0
  28. package/recipes/attachment-input-item.d.ts +24 -0
  29. package/recipes/attachment-input-item.layered.css +288 -0
  30. package/recipes/attachment-input-item.layered.mjs +79 -0
  31. package/recipes/attachment-input-item.mjs +79 -0
  32. package/recipes/attachment-input-trigger.css +71 -0
  33. package/recipes/attachment-input-trigger.d.ts +21 -0
  34. package/recipes/attachment-input-trigger.layered.css +85 -0
  35. package/recipes/attachment-input-trigger.layered.mjs +48 -0
  36. package/recipes/attachment-input-trigger.mjs +48 -0
  37. package/recipes/attachment-input.css +55 -0
  38. package/recipes/attachment-input.d.ts +21 -0
  39. package/recipes/attachment-input.layered.css +64 -0
  40. package/recipes/attachment-input.layered.mjs +48 -0
  41. package/recipes/attachment-input.mjs +48 -0
  42. package/recipes/avatar.d.ts +9 -0
  43. package/recipes/badge.d.ts +10 -0
  44. package/recipes/bottom-sheet.css +62 -5
  45. package/recipes/bottom-sheet.layered.css +67 -5
  46. package/recipes/callout.d.ts +7 -0
  47. package/recipes/checkmark.d.ts +3 -0
  48. package/recipes/chip-tabs.css +8 -52
  49. package/recipes/chip-tabs.d.ts +1 -1
  50. package/recipes/chip-tabs.layered.css +8 -62
  51. package/recipes/chip-tabs.layered.mjs +1 -2
  52. package/recipes/chip-tabs.mjs +1 -2
  53. package/recipes/chip.d.ts +4 -0
  54. package/recipes/contextual-floating-button.d.ts +6 -0
  55. package/recipes/dialog.css +14 -11
  56. package/recipes/dialog.layered.css +4 -0
  57. package/recipes/footer.css +44 -0
  58. package/recipes/footer.d.ts +24 -0
  59. package/recipes/footer.layered.css +52 -0
  60. package/recipes/footer.layered.mjs +39 -0
  61. package/recipes/footer.mjs +39 -0
  62. package/recipes/help-bubble.css +29 -1
  63. package/recipes/help-bubble.layered.css +34 -1
  64. package/recipes/image-frame.css +0 -3
  65. package/recipes/image-frame.d.ts +0 -4
  66. package/recipes/image-frame.layered.css +0 -4
  67. package/recipes/image-frame.layered.mjs +1 -6
  68. package/recipes/image-frame.mjs +1 -6
  69. package/recipes/input-button.css +176 -20
  70. package/recipes/input-button.d.ts +8 -1
  71. package/recipes/input-button.layered.css +197 -21
  72. package/recipes/input-button.layered.mjs +10 -2
  73. package/recipes/input-button.mjs +10 -2
  74. package/recipes/layout.css +25 -0
  75. package/recipes/layout.d.ts +24 -0
  76. package/recipes/layout.layered.css +25 -0
  77. package/recipes/layout.layered.mjs +44 -0
  78. package/recipes/layout.mjs +44 -0
  79. package/recipes/list-item.css +72 -4
  80. package/recipes/list-item.layered.css +84 -4
  81. package/recipes/menu-item.css +174 -0
  82. package/recipes/menu-item.d.ts +35 -0
  83. package/recipes/menu-item.layered.css +200 -0
  84. package/recipes/menu-item.layered.mjs +57 -0
  85. package/recipes/menu-item.mjs +57 -0
  86. package/recipes/menu-sheet-item.d.ts +6 -0
  87. package/recipes/menu-sheet.css +19 -1
  88. package/recipes/menu-sheet.layered.css +22 -1
  89. package/recipes/menu.css +119 -0
  90. package/recipes/menu.d.ts +28 -0
  91. package/recipes/menu.layered.css +139 -0
  92. package/recipes/menu.layered.mjs +56 -0
  93. package/recipes/menu.mjs +56 -0
  94. package/recipes/notification-badge.d.ts +3 -0
  95. package/recipes/page-banner.d.ts +5 -0
  96. package/recipes/progress-circle.d.ts +7 -0
  97. package/recipes/{selectBoxCheckmark.css → select-box-checkmark.css} +6 -6
  98. package/recipes/{selectBoxCheckmark.layered.css → select-box-checkmark.layered.css} +6 -6
  99. package/recipes/{selectBoxCheckmark.layered.mjs → select-box-checkmark.layered.mjs} +4 -4
  100. package/recipes/{selectBoxCheckmark.mjs → select-box-checkmark.mjs} +4 -4
  101. package/recipes/side-navigation-inset.css +4 -0
  102. package/recipes/side-navigation-inset.d.ts +19 -0
  103. package/recipes/side-navigation-inset.layered.css +6 -0
  104. package/recipes/side-navigation-inset.layered.mjs +22 -0
  105. package/recipes/side-navigation-inset.mjs +22 -0
  106. package/recipes/side-navigation-menu-item.css +135 -0
  107. package/recipes/side-navigation-menu-item.d.ts +21 -0
  108. package/recipes/side-navigation-menu-item.layered.css +156 -0
  109. package/recipes/side-navigation-menu-item.layered.mjs +48 -0
  110. package/recipes/side-navigation-menu-item.mjs +48 -0
  111. package/recipes/side-navigation.css +115 -0
  112. package/recipes/side-navigation.d.ts +24 -0
  113. package/recipes/side-navigation.layered.css +132 -0
  114. package/recipes/side-navigation.layered.mjs +63 -0
  115. package/recipes/side-navigation.mjs +63 -0
  116. package/recipes/side-panel.css +327 -0
  117. package/recipes/side-panel.d.ts +24 -0
  118. package/recipes/side-panel.layered.css +361 -0
  119. package/recipes/side-panel.layered.mjs +72 -0
  120. package/recipes/side-panel.mjs +72 -0
  121. package/recipes/skeleton.css +36 -2
  122. package/recipes/skeleton.d.ts +8 -0
  123. package/recipes/skeleton.layered.css +40 -2
  124. package/recipes/text-input.css +323 -52
  125. package/recipes/text-input.d.ts +8 -1
  126. package/recipes/text-input.layered.css +385 -51
  127. package/recipes/text-input.layered.mjs +18 -1
  128. package/recipes/text-input.mjs +18 -1
  129. package/recipes/text.css +180 -0
  130. package/recipes/text.d.ts +59 -1
  131. package/recipes/text.layered.css +216 -0
  132. package/recipes/text.layered.mjs +37 -1
  133. package/recipes/text.mjs +37 -1
  134. package/recipes/toggle-button.d.ts +3 -0
  135. package/vars/color/bg.d.ts +2 -2
  136. package/vars/color/bg.mjs +2 -1
  137. package/vars/color/stroke.d.ts +2 -2
  138. package/vars/color/stroke.mjs +2 -2
  139. package/vars/component/accordion-item.d.ts +132 -0
  140. package/vars/component/accordion-item.mjs +126 -0
  141. package/vars/component/accordion.d.ts +22 -0
  142. package/vars/component/accordion.mjs +16 -0
  143. package/vars/component/attachment-input-dropzone.d.ts +32 -0
  144. package/vars/component/attachment-input-dropzone.mjs +30 -0
  145. package/vars/component/attachment-input-item-action-button.d.ts +37 -0
  146. package/vars/component/attachment-input-item-action-button.mjs +37 -0
  147. package/vars/component/attachment-input-item-remove-button.d.ts +28 -0
  148. package/vars/component/attachment-input-item-remove-button.mjs +28 -0
  149. package/vars/component/attachment-input-item.d.ts +103 -0
  150. package/vars/component/attachment-input-item.mjs +102 -0
  151. package/vars/component/attachment-input-trigger.d.ts +46 -0
  152. package/vars/component/attachment-input-trigger.mjs +46 -0
  153. package/vars/component/attachment-input.d.ts +14 -0
  154. package/vars/component/attachment-input.mjs +12 -0
  155. package/vars/component/chip-tablist.d.ts +0 -7
  156. package/vars/component/chip-tablist.mjs +0 -7
  157. package/vars/component/image-frame.d.ts +1 -22
  158. package/vars/component/image-frame.mjs +1 -9
  159. package/vars/component/index.d.ts +12 -1
  160. package/vars/component/index.mjs +12 -1
  161. package/vars/component/input-button.d.ts +90 -17
  162. package/vars/component/input-button.mjs +84 -17
  163. package/vars/component/menu-item.d.ts +129 -0
  164. package/vars/component/menu-item.mjs +117 -0
  165. package/vars/component/menu.d.ts +68 -0
  166. package/vars/component/menu.mjs +60 -0
  167. package/vars/component/side-panel-close-button.d.ts +23 -0
  168. package/vars/component/side-panel-close-button.mjs +23 -0
  169. package/vars/component/side-panel.d.ts +94 -0
  170. package/vars/component/side-panel.mjs +83 -0
  171. package/vars/component/text-input.d.ts +92 -24
  172. package/vars/component/text-input.mjs +76 -24
  173. package/vars/component/typography.d.ts +414 -0
  174. package/vars/component/typography.mjs +324 -0
  175. package/vars/font-size.d.ts +17 -1
  176. package/vars/font-size.mjs +9 -1
  177. package/vars/gradient.d.ts +0 -8
  178. package/vars/gradient.mjs +0 -2
  179. package/vars/line-height.d.ts +17 -1
  180. package/vars/line-height.mjs +9 -1
  181. package/vars/component/chip-tab.d.ts +0 -162
  182. package/vars/component/chip-tab.mjs +0 -162
  183. /package/recipes/{selectBoxCheckmark.d.ts → select-box-checkmark.d.ts} +0 -0
@@ -0,0 +1,288 @@
1
+ @layer seed-components {
2
+ .seed-attachment-input-item__root {
3
+ justify-content: center;
4
+ align-items: center;
5
+ gap: var(--seed-dimension-x2_5);
6
+ border-radius: var(--seed-radius-r3);
7
+ --remove-button-mask-size: var(--seed-dimension-x6);
8
+ --remove-button-mask-offset: var(--seed-dimension-x1_5);
9
+ outline: var(--seed-dimension-x0_5) solid transparent;
10
+ outline-offset: var(--seed-dimension-x0_5);
11
+ height: 80px;
12
+ display: flex;
13
+ position: relative;
14
+ }
15
+
16
+ .seed-attachment-input-item__root:is(:focus-visible, [data-focus-visible]) {
17
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
18
+ outline-offset: var(--seed-dimension-x0_5);
19
+ }
20
+
21
+ .seed-attachment-input-item__root:before {
22
+ content: "";
23
+ border-radius: inherit;
24
+ pointer-events: none;
25
+ -webkit-mask-image: linear-gradient(#000, #000), url("data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\"/></svg>");
26
+ -webkit-mask-size: 100% 100%, var(--remove-button-mask-size) var(--remove-button-mask-size);
27
+ -webkit-mask-position: 0 0, right calc(0px - var(--remove-button-mask-offset)) top calc(0px - var(--remove-button-mask-offset));
28
+ -webkit-mask-composite: source-out;
29
+ mask-image: linear-gradient(#000, #000), url("data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\"/></svg>");
30
+ -webkit-mask-repeat: no-repeat;
31
+ mask-size: 100% 100%, var(--remove-button-mask-size) var(--remove-button-mask-size);
32
+ mask-position: 0 0, right calc(0px - var(--remove-button-mask-offset)) top calc(0px - var(--remove-button-mask-offset));
33
+ position: absolute;
34
+ inset: 0;
35
+ transform: translateZ(0);
36
+ mask-repeat: no-repeat;
37
+ mask-composite: subtract;
38
+ }
39
+
40
+ .seed-attachment-input-item__root[role="button"]:not([aria-grabbed="true"]):not([data-readonly]) {
41
+ cursor: grab;
42
+ }
43
+
44
+ .seed-attachment-input-item__root[aria-grabbed="true"] {
45
+ --remove-button-mask-size: 0px;
46
+ --remove-button-mask-offset: 0px;
47
+ }
48
+
49
+ .seed-attachment-input-item__image {
50
+ object-fit: cover;
51
+ border-radius: inherit;
52
+ width: 100%;
53
+ height: 100%;
54
+ -webkit-mask-image: linear-gradient(#000, #000), url("data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\"/></svg>");
55
+ -webkit-mask-size: 100% 100%, var(--remove-button-mask-size) var(--remove-button-mask-size);
56
+ -webkit-mask-position: 0 0, right calc(0px - var(--remove-button-mask-offset)) top calc(0px - var(--remove-button-mask-offset));
57
+ -webkit-mask-composite: source-out;
58
+ mask-image: linear-gradient(#000, #000), url("data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\"/></svg>");
59
+ -webkit-mask-repeat: no-repeat;
60
+ mask-size: 100% 100%, var(--remove-button-mask-size) var(--remove-button-mask-size);
61
+ mask-position: 0 0, right calc(0px - var(--remove-button-mask-offset)) top calc(0px - var(--remove-button-mask-offset));
62
+ transform: translateZ(0);
63
+ mask-repeat: no-repeat;
64
+ mask-composite: subtract;
65
+ }
66
+
67
+ .seed-attachment-input-item__thumbnail {
68
+ width: var(--seed-dimension-x12);
69
+ height: var(--seed-dimension-x12);
70
+ background-color: var(--seed-color-bg-neutral-weak);
71
+ border-radius: var(--seed-radius-r2);
72
+ --seed-icon-size: var(--seed-dimension-x6);
73
+ --seed-icon-color: var(--seed-color-fg-neutral-subtle);
74
+ flex-shrink: 0;
75
+ justify-content: center;
76
+ align-items: center;
77
+ display: flex;
78
+ }
79
+
80
+ .seed-attachment-input-item__metadata {
81
+ flex-direction: column;
82
+ flex-grow: 1;
83
+ width: 100%;
84
+ display: flex;
85
+ }
86
+
87
+ .seed-attachment-input-item__name {
88
+ word-break: break-all;
89
+ font-size: var(--seed-font-size-t2);
90
+ line-height: var(--seed-line-height-t2);
91
+ font-weight: var(--seed-font-weight-medium);
92
+ color: var(--seed-color-fg-neutral);
93
+ overflow: hidden;
94
+ }
95
+
96
+ .seed-attachment-input-item__size {
97
+ font-size: var(--seed-font-size-t1);
98
+ line-height: var(--seed-line-height-t1);
99
+ font-weight: var(--seed-font-weight-regular);
100
+ color: var(--seed-color-fg-neutral-subtle);
101
+ }
102
+
103
+ .seed-attachment-input-item__backdrop {
104
+ border-radius: inherit;
105
+ -webkit-mask-image: linear-gradient(#000, #000), url("data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\"/></svg>");
106
+ -webkit-mask-size: 100% 100%, var(--remove-button-mask-size) var(--remove-button-mask-size);
107
+ -webkit-mask-position: 0 0, right calc(0px - var(--remove-button-mask-offset)) top calc(0px - var(--remove-button-mask-offset));
108
+ -webkit-mask-composite: source-out;
109
+ mask-image: linear-gradient(#000, #000), url("data:image/svg+xml;utf8,<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"white\"/></svg>");
110
+ -webkit-mask-repeat: no-repeat;
111
+ mask-size: 100% 100%, var(--remove-button-mask-size) var(--remove-button-mask-size);
112
+ mask-position: 0 0, right calc(0px - var(--remove-button-mask-offset)) top calc(0px - var(--remove-button-mask-offset));
113
+ flex-direction: column;
114
+ justify-content: center;
115
+ align-items: center;
116
+ display: flex;
117
+ position: absolute;
118
+ inset: 0;
119
+ transform: translateZ(0);
120
+ mask-repeat: no-repeat;
121
+ mask-composite: subtract;
122
+ }
123
+
124
+ .seed-attachment-input-item__actionButton {
125
+ text-align: center;
126
+ width: 100%;
127
+ height: 100%;
128
+ font: inherit;
129
+ cursor: pointer;
130
+ border-radius: inherit;
131
+ transition: outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
132
+ outline: var(--seed-dimension-x0_5) solid transparent;
133
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
134
+ background: none;
135
+ border: none;
136
+ flex-direction: column;
137
+ justify-content: center;
138
+ align-items: center;
139
+ padding: 0;
140
+ display: flex;
141
+ }
142
+
143
+ .seed-attachment-input-item__actionButton:is(:focus-visible, [data-focus-visible]) {
144
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
145
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
146
+ }
147
+
148
+ .seed-attachment-input-item__actionButton {
149
+ font-size: var(--seed-font-size-t2);
150
+ line-height: var(--seed-line-height-t2);
151
+ font-weight: var(--seed-font-weight-medium);
152
+ gap: var(--seed-dimension-x1);
153
+ --seed-icon-size: var(--seed-dimension-x6);
154
+ }
155
+
156
+ .seed-attachment-input-item__removeButton {
157
+ top: calc(var(--seed-dimension-x1) * -1);
158
+ right: calc(var(--seed-dimension-x1) * -1);
159
+ width: var(--seed-dimension-x5);
160
+ height: var(--seed-dimension-x5);
161
+ background-color: var(--seed-color-bg-layer-default);
162
+ border-radius: var(--seed-radius-full);
163
+ cursor: pointer;
164
+ transition: background-color .2s, outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
165
+ outline: var(--seed-dimension-x0_5) solid transparent;
166
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
167
+ border: none;
168
+ justify-content: center;
169
+ align-items: center;
170
+ padding: 0;
171
+ display: flex;
172
+ position: absolute;
173
+ }
174
+
175
+ .seed-attachment-input-item__removeButton:is(:focus-visible, [data-focus-visible]) {
176
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
177
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
178
+ }
179
+
180
+ .seed-attachment-input-item__removeButton {
181
+ box-shadow: inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);
182
+ --seed-icon-size: var(--seed-dimension-x2_5);
183
+ --seed-icon-color: var(--seed-color-fg-neutral);
184
+ }
185
+
186
+ @media (hover: hover) and (pointer: fine) {
187
+ .seed-attachment-input-item__removeButton:not(:is(:disabled, [disabled], [data-disabled])):is(:hover, [data-hover]) {
188
+ background-color: var(--seed-color-bg-layer-default-pressed);
189
+ }
190
+ }
191
+
192
+ @media not all and (hover: hover) and (pointer: fine) {
193
+ .seed-attachment-input-item__removeButton:not(:is(:disabled, [disabled], [data-disabled])):is(:active, [data-active]) {
194
+ background-color: var(--seed-color-bg-layer-default-pressed);
195
+ }
196
+ }
197
+
198
+ .seed-attachment-input-item__removeButton:is(:disabled, [disabled], [data-disabled]) {
199
+ cursor: not-allowed;
200
+ --seed-icon-color: var(--seed-color-fg-disabled);
201
+ }
202
+
203
+ [aria-grabbed="true"] .seed-attachment-input-item__removeButton {
204
+ display: none;
205
+ }
206
+
207
+ .seed-attachment-input-item__root--type_general {
208
+ width: 160px;
209
+ padding-left: var(--seed-dimension-x4);
210
+ padding-right: var(--seed-dimension-x4);
211
+ }
212
+
213
+ .seed-attachment-input-item__root--type_general:before {
214
+ box-shadow: inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);
215
+ }
216
+
217
+ .seed-attachment-input-item__thumbnail--type_general[data-has-overlay] {
218
+ display: none;
219
+ }
220
+
221
+ .seed-attachment-input-item__thumbnail--type_general[data-readonly], [aria-grabbed="true"] .seed-attachment-input-item__thumbnail--type_general {
222
+ --seed-icon-color: var(--seed-color-fg-disabled);
223
+ }
224
+
225
+ .seed-attachment-input-item__metadata--type_general[data-has-overlay] {
226
+ display: none;
227
+ }
228
+
229
+ .seed-attachment-input-item__name--type_general[data-readonly], [aria-grabbed="true"] .seed-attachment-input-item__name--type_general, .seed-attachment-input-item__size--type_general[data-readonly], [aria-grabbed="true"] .seed-attachment-input-item__size--type_general {
230
+ color: var(--seed-color-fg-disabled);
231
+ }
232
+
233
+ .seed-attachment-input-item__actionButton--type_general {
234
+ color: var(--seed-color-fg-neutral-subtle);
235
+ --seed-icon-color: var(--seed-color-fg-neutral-subtle);
236
+ }
237
+
238
+ .seed-attachment-input-item__root--type_image {
239
+ width: 80px;
240
+ transition: opacity .2s;
241
+ }
242
+
243
+ .seed-attachment-input-item__root--type_image:before {
244
+ box-shadow: inset 0 0 0 1px var(--seed-color-stroke-neutral-subtle);
245
+ }
246
+
247
+ .seed-attachment-input-item__root--type_image[data-readonly], .seed-attachment-input-item__root--type_image[aria-grabbed="true"] {
248
+ opacity: .5;
249
+ }
250
+
251
+ .seed-attachment-input-item__thumbnail--type_image, .seed-attachment-input-item__metadata--type_image {
252
+ display: none;
253
+ }
254
+
255
+ .seed-attachment-input-item__badge--type_image {
256
+ height: var(--seed-dimension-x6);
257
+ padding-left: var(--seed-dimension-x1);
258
+ padding-right: var(--seed-dimension-x1);
259
+ background-color: var(--seed-color-bg-overlay);
260
+ border-radius: 0 0 var(--seed-radius-r3) var(--seed-radius-r3);
261
+ justify-content: center;
262
+ align-items: center;
263
+ display: flex;
264
+ position: absolute;
265
+ bottom: 0;
266
+ left: 0;
267
+ right: 0;
268
+ }
269
+
270
+ .seed-attachment-input-item__badgeLabel--type_image {
271
+ text-overflow: ellipsis;
272
+ white-space: nowrap;
273
+ font-size: var(--seed-font-size-t2);
274
+ line-height: var(--seed-line-height-t2);
275
+ font-weight: var(--seed-font-weight-medium);
276
+ color: var(--seed-color-palette-static-white);
277
+ overflow: hidden;
278
+ }
279
+
280
+ .seed-attachment-input-item__backdrop--type_image {
281
+ background: var(--seed-color-bg-overlay);
282
+ }
283
+
284
+ .seed-attachment-input-item__actionButton--type_image {
285
+ color: var(--seed-color-palette-static-white);
286
+ --seed-icon-color: var(--seed-color-palette-static-white);
287
+ }
288
+ }
@@ -0,0 +1,79 @@
1
+ import './attachment-input-item.layered.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const attachmentInputItemSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-attachment-input-item__root"
8
+ ],
9
+ [
10
+ "image",
11
+ "seed-attachment-input-item__image"
12
+ ],
13
+ [
14
+ "thumbnail",
15
+ "seed-attachment-input-item__thumbnail"
16
+ ],
17
+ [
18
+ "metadata",
19
+ "seed-attachment-input-item__metadata"
20
+ ],
21
+ [
22
+ "name",
23
+ "seed-attachment-input-item__name"
24
+ ],
25
+ [
26
+ "size",
27
+ "seed-attachment-input-item__size"
28
+ ],
29
+ [
30
+ "badge",
31
+ "seed-attachment-input-item__badge"
32
+ ],
33
+ [
34
+ "badgeLabel",
35
+ "seed-attachment-input-item__badgeLabel"
36
+ ],
37
+ [
38
+ "backdrop",
39
+ "seed-attachment-input-item__backdrop"
40
+ ],
41
+ [
42
+ "actionButton",
43
+ "seed-attachment-input-item__actionButton"
44
+ ],
45
+ [
46
+ "removeButton",
47
+ "seed-attachment-input-item__removeButton"
48
+ ]
49
+ ];
50
+
51
+ const defaultVariant = {
52
+ "type": "general"
53
+ };
54
+
55
+ const compoundVariants = [];
56
+
57
+ export const attachmentInputItemVariantMap = {
58
+ "type": [
59
+ "general",
60
+ "image"
61
+ ]
62
+ };
63
+
64
+ export const attachmentInputItemVariantKeys = Object.keys(attachmentInputItemVariantMap);
65
+
66
+ export function attachmentInputItem(props) {
67
+ return Object.fromEntries(
68
+ attachmentInputItemSlotNames.map(([slot, className]) => {
69
+ return [
70
+ slot,
71
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
72
+ ];
73
+ }),
74
+ );
75
+ }
76
+
77
+ Object.assign(attachmentInputItem, { splitVariantProps: (props) => splitVariantProps(props, attachmentInputItemVariantMap) });
78
+
79
+ // @recipe(seed): attachment-input-item
@@ -0,0 +1,79 @@
1
+ import './attachment-input-item.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const attachmentInputItemSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-attachment-input-item__root"
8
+ ],
9
+ [
10
+ "image",
11
+ "seed-attachment-input-item__image"
12
+ ],
13
+ [
14
+ "thumbnail",
15
+ "seed-attachment-input-item__thumbnail"
16
+ ],
17
+ [
18
+ "metadata",
19
+ "seed-attachment-input-item__metadata"
20
+ ],
21
+ [
22
+ "name",
23
+ "seed-attachment-input-item__name"
24
+ ],
25
+ [
26
+ "size",
27
+ "seed-attachment-input-item__size"
28
+ ],
29
+ [
30
+ "badge",
31
+ "seed-attachment-input-item__badge"
32
+ ],
33
+ [
34
+ "badgeLabel",
35
+ "seed-attachment-input-item__badgeLabel"
36
+ ],
37
+ [
38
+ "backdrop",
39
+ "seed-attachment-input-item__backdrop"
40
+ ],
41
+ [
42
+ "actionButton",
43
+ "seed-attachment-input-item__actionButton"
44
+ ],
45
+ [
46
+ "removeButton",
47
+ "seed-attachment-input-item__removeButton"
48
+ ]
49
+ ];
50
+
51
+ const defaultVariant = {
52
+ "type": "general"
53
+ };
54
+
55
+ const compoundVariants = [];
56
+
57
+ export const attachmentInputItemVariantMap = {
58
+ "type": [
59
+ "general",
60
+ "image"
61
+ ]
62
+ };
63
+
64
+ export const attachmentInputItemVariantKeys = Object.keys(attachmentInputItemVariantMap);
65
+
66
+ export function attachmentInputItem(props) {
67
+ return Object.fromEntries(
68
+ attachmentInputItemSlotNames.map(([slot, className]) => {
69
+ return [
70
+ slot,
71
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
72
+ ];
73
+ }),
74
+ );
75
+ }
76
+
77
+ Object.assign(attachmentInputItem, { splitVariantProps: (props) => splitVariantProps(props, attachmentInputItemVariantMap) });
78
+
79
+ // @recipe(seed): attachment-input-item
@@ -0,0 +1,71 @@
1
+ .seed-attachment-input-trigger__root {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ width: 80px;
7
+ height: 80px;
8
+ gap: var(--seed-dimension-x1);
9
+ flex-shrink: 0;
10
+ border: none;
11
+ padding: 0;
12
+ font: inherit;
13
+ box-shadow: inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);
14
+ cursor: pointer;
15
+ background-color: transparent;
16
+ border-radius: var(--seed-radius-r3);
17
+ transition: background-color 0.2s, outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
18
+ outline: var(--seed-dimension-x0_5) solid transparent;
19
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
20
+ }
21
+ .seed-attachment-input-trigger__root:is(:focus-visible, [data-focus-visible]) {
22
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
23
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
24
+ }
25
+ @media (hover: hover) and (pointer: fine) {
26
+ .seed-attachment-input-trigger__root:not(:is(:disabled, [disabled], [data-disabled])):is(:hover, [data-hover]) {
27
+ background-color: var(--seed-color-bg-transparent-pressed);
28
+ }
29
+ }
30
+ @media not all and (hover: hover) and (pointer: fine) {
31
+ .seed-attachment-input-trigger__root:not(:is(:disabled, [disabled], [data-disabled])):is(:active, [data-active]) {
32
+ background-color: var(--seed-color-bg-transparent-pressed);
33
+ }
34
+ }
35
+ .seed-attachment-input-trigger__root:is(:disabled, [disabled], [data-disabled]) {
36
+ cursor: not-allowed;
37
+ }
38
+ .seed-attachment-input-trigger__icon {
39
+ width: var(--seed-dimension-x6);
40
+ height: var(--seed-dimension-x6);
41
+ color: var(--seed-color-fg-neutral-subtle);
42
+ flex-shrink: 0;
43
+ }
44
+ .seed-attachment-input-trigger__icon:is(:disabled, [disabled], [data-disabled]) {
45
+ color: var(--seed-color-fg-disabled);
46
+ }
47
+ .seed-attachment-input-trigger__itemCountArea {
48
+ font-size: var(--seed-font-size-t2);
49
+ line-height: var(--seed-line-height-t2);
50
+ }
51
+ .seed-attachment-input-trigger__itemCount {
52
+ color: var(--seed-color-fg-neutral);
53
+ font-size: var(--seed-font-size-t2);
54
+ line-height: var(--seed-line-height-t2);
55
+ font-weight: var(--seed-font-weight-regular);
56
+ }
57
+ .seed-attachment-input-trigger__itemCount[data-empty] {
58
+ color: var(--seed-color-fg-neutral-subtle);
59
+ }
60
+ .seed-attachment-input-trigger__itemCount:is(:disabled, [disabled], [data-disabled]) {
61
+ color: var(--seed-color-fg-disabled);
62
+ }
63
+ .seed-attachment-input-trigger__maxItemCount {
64
+ color: var(--seed-color-fg-neutral-subtle);
65
+ font-size: var(--seed-font-size-t2);
66
+ line-height: var(--seed-line-height-t2);
67
+ font-weight: var(--seed-font-weight-regular);
68
+ }
69
+ .seed-attachment-input-trigger__maxItemCount:is(:disabled, [disabled], [data-disabled]) {
70
+ color: var(--seed-color-fg-disabled);
71
+ }
@@ -0,0 +1,21 @@
1
+ declare interface AttachmentInputTriggerVariant {
2
+
3
+ }
4
+
5
+ declare type AttachmentInputTriggerVariantMap = {
6
+ [key in keyof AttachmentInputTriggerVariant]: Array<AttachmentInputTriggerVariant[key]>;
7
+ };
8
+
9
+ export declare type AttachmentInputTriggerVariantProps = Partial<AttachmentInputTriggerVariant>;
10
+
11
+ export declare type AttachmentInputTriggerSlotName = "root" | "icon" | "itemCountArea" | "itemCount" | "maxItemCount";
12
+
13
+ export declare const attachmentInputTriggerVariantMap: AttachmentInputTriggerVariantMap;
14
+
15
+ export declare const attachmentInputTrigger: ((
16
+ props?: AttachmentInputTriggerVariantProps,
17
+ ) => Record<AttachmentInputTriggerSlotName, string>) & {
18
+ splitVariantProps: <T extends AttachmentInputTriggerVariantProps>(
19
+ props: T,
20
+ ) => [AttachmentInputTriggerVariantProps, Omit<T, keyof AttachmentInputTriggerVariantProps>];
21
+ }
@@ -0,0 +1,85 @@
1
+ @layer seed-components {
2
+ .seed-attachment-input-trigger__root {
3
+ justify-content: center;
4
+ align-items: center;
5
+ gap: var(--seed-dimension-x1);
6
+ width: 80px;
7
+ height: 80px;
8
+ font: inherit;
9
+ box-shadow: inset 0 0 0 1px var(--seed-color-stroke-neutral-weak);
10
+ cursor: pointer;
11
+ border-radius: var(--seed-radius-r3);
12
+ transition: background-color .2s, outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
13
+ outline: var(--seed-dimension-x0_5) solid transparent;
14
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
15
+ background-color: #0000;
16
+ border: none;
17
+ flex-direction: column;
18
+ flex-shrink: 0;
19
+ padding: 0;
20
+ display: flex;
21
+ }
22
+
23
+ .seed-attachment-input-trigger__root:is(:focus-visible, [data-focus-visible]) {
24
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
25
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
26
+ }
27
+
28
+ @media (hover: hover) and (pointer: fine) {
29
+ .seed-attachment-input-trigger__root:not(:is(:disabled, [disabled], [data-disabled])):is(:hover, [data-hover]) {
30
+ background-color: var(--seed-color-bg-transparent-pressed);
31
+ }
32
+ }
33
+
34
+ @media not all and (hover: hover) and (pointer: fine) {
35
+ .seed-attachment-input-trigger__root:not(:is(:disabled, [disabled], [data-disabled])):is(:active, [data-active]) {
36
+ background-color: var(--seed-color-bg-transparent-pressed);
37
+ }
38
+ }
39
+
40
+ .seed-attachment-input-trigger__root:is(:disabled, [disabled], [data-disabled]) {
41
+ cursor: not-allowed;
42
+ }
43
+
44
+ .seed-attachment-input-trigger__icon {
45
+ width: var(--seed-dimension-x6);
46
+ height: var(--seed-dimension-x6);
47
+ color: var(--seed-color-fg-neutral-subtle);
48
+ flex-shrink: 0;
49
+ }
50
+
51
+ .seed-attachment-input-trigger__icon:is(:disabled, [disabled], [data-disabled]) {
52
+ color: var(--seed-color-fg-disabled);
53
+ }
54
+
55
+ .seed-attachment-input-trigger__itemCountArea {
56
+ font-size: var(--seed-font-size-t2);
57
+ line-height: var(--seed-line-height-t2);
58
+ }
59
+
60
+ .seed-attachment-input-trigger__itemCount {
61
+ color: var(--seed-color-fg-neutral);
62
+ font-size: var(--seed-font-size-t2);
63
+ line-height: var(--seed-line-height-t2);
64
+ font-weight: var(--seed-font-weight-regular);
65
+ }
66
+
67
+ .seed-attachment-input-trigger__itemCount[data-empty] {
68
+ color: var(--seed-color-fg-neutral-subtle);
69
+ }
70
+
71
+ .seed-attachment-input-trigger__itemCount:is(:disabled, [disabled], [data-disabled]) {
72
+ color: var(--seed-color-fg-disabled);
73
+ }
74
+
75
+ .seed-attachment-input-trigger__maxItemCount {
76
+ color: var(--seed-color-fg-neutral-subtle);
77
+ font-size: var(--seed-font-size-t2);
78
+ line-height: var(--seed-line-height-t2);
79
+ font-weight: var(--seed-font-weight-regular);
80
+ }
81
+
82
+ .seed-attachment-input-trigger__maxItemCount:is(:disabled, [disabled], [data-disabled]) {
83
+ color: var(--seed-color-fg-disabled);
84
+ }
85
+ }
@@ -0,0 +1,48 @@
1
+ import './attachment-input-trigger.layered.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const attachmentInputTriggerSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-attachment-input-trigger__root"
8
+ ],
9
+ [
10
+ "icon",
11
+ "seed-attachment-input-trigger__icon"
12
+ ],
13
+ [
14
+ "itemCountArea",
15
+ "seed-attachment-input-trigger__itemCountArea"
16
+ ],
17
+ [
18
+ "itemCount",
19
+ "seed-attachment-input-trigger__itemCount"
20
+ ],
21
+ [
22
+ "maxItemCount",
23
+ "seed-attachment-input-trigger__maxItemCount"
24
+ ]
25
+ ];
26
+
27
+ const defaultVariant = {};
28
+
29
+ const compoundVariants = [];
30
+
31
+ export const attachmentInputTriggerVariantMap = {};
32
+
33
+ export const attachmentInputTriggerVariantKeys = Object.keys(attachmentInputTriggerVariantMap);
34
+
35
+ export function attachmentInputTrigger(props) {
36
+ return Object.fromEntries(
37
+ attachmentInputTriggerSlotNames.map(([slot, className]) => {
38
+ return [
39
+ slot,
40
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
41
+ ];
42
+ }),
43
+ );
44
+ }
45
+
46
+ Object.assign(attachmentInputTrigger, { splitVariantProps: (props) => splitVariantProps(props, attachmentInputTriggerVariantMap) });
47
+
48
+ // @recipe(seed): attachment-input-trigger