@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,327 @@
1
+ .seed-side-panel__positioner {
2
+ position: fixed;
3
+ top: 0;
4
+ right: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ overscroll-behavior-y: none;
8
+ --side-panel-z-index: 2;
9
+ z-index: calc(var(--side-panel-z-index) + var(--layer-index, 0));
10
+ }
11
+ .seed-side-panel__backdrop {
12
+ position: fixed;
13
+ top: 0;
14
+ right: 0;
15
+ bottom: 0;
16
+ left: 0;
17
+ background: var(--seed-color-bg-overlay);
18
+ z-index: calc(var(--side-panel-z-index) + var(--layer-index, 0));
19
+ }
20
+ .seed-side-panel__backdrop:is([data-state="open"], [data-open]) {
21
+ animation: seed-enter;
22
+ animation-timing-function: var(--seed-timing-function-enter);
23
+ animation-duration: var(--seed-duration-d6);
24
+ --seed-enter-translate-x: 0;
25
+ --seed-enter-translate-y: 0;
26
+ --seed-enter-opacity: 0;
27
+ --seed-enter-scale: 1;
28
+ }
29
+ .seed-side-panel__backdrop:not(:is([data-state="open"], [data-open])) {
30
+ animation: seed-exit;
31
+ animation-timing-function: var(--seed-timing-function-exit);
32
+ animation-duration: var(--seed-duration-d6);
33
+ animation-fill-mode: forwards;
34
+ --seed-exit-translate-x: 0;
35
+ --seed-exit-translate-y: 0;
36
+ --seed-exit-opacity: 0;
37
+ --seed-exit-scale: 1;
38
+ }
39
+ .seed-side-panel__content {
40
+ position: absolute;
41
+ display: flex;
42
+ flex-direction: column;
43
+ box-sizing: border-box;
44
+ word-break: break-all;
45
+ z-index: calc(var(--side-panel-z-index) + var(--layer-index, 0));
46
+ background: var(--seed-color-bg-layer-floating);
47
+ touch-action: none;
48
+ will-change: transform;
49
+ --seed-box-width-base: initial;
50
+ --seed-box-width-sm: var(--seed-box-width-base);
51
+ --seed-box-width-md: var(--seed-box-width-sm);
52
+ --seed-box-width-lg: var(--seed-box-width-md);
53
+ --seed-box-width-xl: var(--seed-box-width-lg);
54
+ --seed-box-width: var(--seed-box-width-base);
55
+ --seed-box-max-width-base: calc(0.8 * 100%);
56
+ --seed-box-max-width-sm: var(--seed-box-max-width-base);
57
+ --seed-box-max-width-md: var(--seed-box-max-width-sm);
58
+ --seed-box-max-width-lg: var(--seed-box-max-width-md);
59
+ --seed-box-max-width-xl: var(--seed-box-max-width-lg);
60
+ --seed-box-max-width: var(--seed-box-max-width-base);
61
+ top: 0;
62
+ bottom: 0;
63
+ width: var(--seed-box-width, calc(0.8 * 100vw));
64
+ max-width: var(--seed-box-max-width);
65
+ padding-bottom: var(--seed-safe-area-bottom);
66
+ }
67
+ @media (min-width: 768px) {
68
+ .seed-side-panel__content {
69
+ width: var(--seed-box-width, var(--side-panel-size-width));
70
+ }
71
+ }
72
+ .seed-side-panel__content::after {
73
+ content: "";
74
+ position: absolute;
75
+ top: 0;
76
+ bottom: 0;
77
+ width: 100vw;
78
+ background: inherit;
79
+ z-index: -1;
80
+ }
81
+ .seed-side-panel__content:is(:focus, [data-focus]) {
82
+ outline: none;
83
+ }
84
+ .seed-side-panel__content[data-drawer-direction='left'] {
85
+ left: 0;
86
+ padding-left: env(safe-area-inset-left, 0);
87
+ }
88
+ .seed-side-panel__content[data-drawer-direction='left']::after {
89
+ right: 100%;
90
+ }
91
+ .seed-side-panel__content[data-drawer-direction='right'] {
92
+ right: 0;
93
+ padding-right: env(safe-area-inset-right, 0);
94
+ }
95
+ .seed-side-panel__content[data-drawer-direction='right']::after {
96
+ left: 100%;
97
+ }
98
+ .seed-side-panel__content:is([data-state="open"], [data-open])[data-drawer-direction='right'] {
99
+ animation: seed-enter;
100
+ animation-timing-function: var(--seed-timing-function-enter-expressive);
101
+ animation-duration: var(--seed-duration-d6);
102
+ --seed-enter-translate-x: 100%;
103
+ --seed-enter-translate-y: 0;
104
+ --seed-enter-opacity: 1;
105
+ --seed-enter-scale: 1;
106
+ }
107
+ .seed-side-panel__content:not(:is([data-state="open"], [data-open]))[data-drawer-direction='right'] {
108
+ animation: seed-exit;
109
+ animation-timing-function: var(--seed-timing-function-exit-expressive);
110
+ animation-duration: var(--seed-duration-d6);
111
+ animation-fill-mode: forwards;
112
+ --seed-exit-translate-x: 100%;
113
+ --seed-exit-translate-y: 0;
114
+ --seed-exit-opacity: 1;
115
+ --seed-exit-scale: 1;
116
+ }
117
+ .seed-side-panel__content:is([data-state="open"], [data-open])[data-drawer-direction='left'] {
118
+ animation: seed-enter;
119
+ animation-timing-function: var(--seed-timing-function-enter-expressive);
120
+ animation-duration: var(--seed-duration-d6);
121
+ --seed-enter-translate-x: -100%;
122
+ --seed-enter-translate-y: 0;
123
+ --seed-enter-opacity: 1;
124
+ --seed-enter-scale: 1;
125
+ }
126
+ .seed-side-panel__content:not(:is([data-state="open"], [data-open]))[data-drawer-direction='left'] {
127
+ animation: seed-exit;
128
+ animation-timing-function: var(--seed-timing-function-exit-expressive);
129
+ animation-duration: var(--seed-duration-d6);
130
+ animation-fill-mode: forwards;
131
+ --seed-exit-translate-x: -100%;
132
+ --seed-exit-translate-y: 0;
133
+ --seed-exit-opacity: 1;
134
+ --seed-exit-scale: 1;
135
+ }
136
+ .seed-side-panel__header {
137
+ position: relative;
138
+ display: flex;
139
+ flex-direction: column;
140
+ box-sizing: border-box;
141
+ gap: var(--seed-dimension-x1_5);
142
+ min-height: calc(70px + var(--seed-safe-area-top));
143
+ padding-left: var(--seed-dimension-x6);
144
+ padding-right: var(--seed-dimension-x6);
145
+ padding-top: calc(var(--seed-dimension-x6) + var(--seed-safe-area-top));
146
+ padding-bottom: var(--seed-dimension-x4);
147
+ }
148
+ .seed-side-panel__header[data-show-close-button] {
149
+ padding-right: calc(var(--seed-dimension-x6) + 52px);
150
+ }
151
+ .seed-side-panel__title {
152
+ color: var(--seed-color-fg-neutral);
153
+ font-size: var(--seed-font-size-t8);
154
+ line-height: var(--seed-line-height-t8);
155
+ font-weight: var(--seed-font-weight-bold);
156
+ word-break: keep-all;
157
+ margin: 0;
158
+ }
159
+ .seed-side-panel__description {
160
+ color: var(--seed-color-fg-neutral-muted);
161
+ font-size: var(--seed-font-size-t5);
162
+ line-height: var(--seed-line-height-t5);
163
+ font-weight: var(--seed-font-weight-regular);
164
+ margin: 0;
165
+ white-space: pre-wrap;
166
+ }
167
+ .seed-side-panel__body {
168
+ display: flex;
169
+ flex-direction: column;
170
+ flex: 1;
171
+ overflow-y: auto;
172
+ --seed-box-padding-x-base: var(--seed-dimension-x6);
173
+ --seed-box-padding-x-sm: var(--seed-box-padding-x-base);
174
+ --seed-box-padding-x-md: var(--seed-box-padding-x-sm);
175
+ --seed-box-padding-x-lg: var(--seed-box-padding-x-md);
176
+ --seed-box-padding-x-xl: var(--seed-box-padding-x-lg);
177
+ --seed-box-padding-x: var(--seed-box-padding-x-base);
178
+ --seed-box-height-base: initial;
179
+ --seed-box-height-sm: var(--seed-box-height-base);
180
+ --seed-box-height-md: var(--seed-box-height-sm);
181
+ --seed-box-height-lg: var(--seed-box-height-md);
182
+ --seed-box-height-xl: var(--seed-box-height-lg);
183
+ --seed-box-height: var(--seed-box-height-base);
184
+ --seed-box-min-height-base: initial;
185
+ --seed-box-min-height-sm: var(--seed-box-min-height-base);
186
+ --seed-box-min-height-md: var(--seed-box-min-height-sm);
187
+ --seed-box-min-height-lg: var(--seed-box-min-height-md);
188
+ --seed-box-min-height-xl: var(--seed-box-min-height-lg);
189
+ --seed-box-min-height: var(--seed-box-min-height-base);
190
+ --seed-box-max-height-base: initial;
191
+ --seed-box-max-height-sm: var(--seed-box-max-height-base);
192
+ --seed-box-max-height-md: var(--seed-box-max-height-sm);
193
+ --seed-box-max-height-lg: var(--seed-box-max-height-md);
194
+ --seed-box-max-height-xl: var(--seed-box-max-height-lg);
195
+ --seed-box-max-height: var(--seed-box-max-height-base);
196
+ --seed-box-justify-content: initial;
197
+ --seed-box-align-items: initial;
198
+ padding-left: var(--seed-box-padding-x);
199
+ padding-right: var(--seed-box-padding-x);
200
+ padding-bottom: var(--seed-dimension-x12);
201
+ height: var(--seed-box-height);
202
+ min-height: var(--seed-box-min-height);
203
+ max-height: var(--seed-box-max-height);
204
+ justify-content: var(--seed-box-justify-content);
205
+ align-items: var(--seed-box-align-items);
206
+ transition: box-shadow var(--seed-duration-color-transition) var(--seed-timing-function-easing);
207
+ }
208
+ .seed-side-panel__body[data-scrolled]:not(:first-child) {
209
+ box-shadow: inset 0 1px 0 0 var(--seed-color-stroke-neutral-muted);
210
+ }
211
+ .seed-side-panel__body {
212
+ mask-image: linear-gradient(to top, transparent 0, black var(--seed-dimension-x12));
213
+ -webkit-mask-image: linear-gradient(to top, transparent 0, black var(--seed-dimension-x12));
214
+ }
215
+ .seed-side-panel__footer {
216
+ display: flex;
217
+ flex-direction: column;
218
+ padding-left: var(--seed-dimension-x6);
219
+ padding-right: var(--seed-dimension-x6);
220
+ padding-top: var(--seed-dimension-x4);
221
+ padding-bottom: var(--seed-dimension-x6);
222
+ }
223
+ .seed-side-panel__closeButton {
224
+ position: absolute;
225
+ display: flex;
226
+ justify-content: center;
227
+ align-items: center;
228
+ border: none;
229
+ top: calc(28px + var(--seed-safe-area-top));
230
+ right: 24px;
231
+ border-radius: var(--seed-radius-r3);
232
+ background: var(--seed-color-bg-transparent);
233
+ width: 22px;
234
+ height: 22px;
235
+ cursor: pointer;
236
+ --seed-icon-size: 22px;
237
+ --seed-icon-color: var(--seed-color-fg-neutral-subtle);
238
+ }
239
+ .seed-side-panel__closeButton :where(.seed-icon) {
240
+ transition: color var(--seed-duration-color-transition) var(--seed-timing-function-easing);
241
+ }
242
+ @media (hover: hover) and (pointer: fine) {
243
+ .seed-side-panel__closeButton:is(:hover, [data-hover]) {
244
+ --seed-icon-color: var(--seed-color-fg-neutral);
245
+ }
246
+ }
247
+ @media not all and (hover: hover) and (pointer: fine) {
248
+ .seed-side-panel__closeButton:is(:active, [data-active]) {
249
+ --seed-icon-color: var(--seed-color-fg-neutral);
250
+ }
251
+ }
252
+ .seed-side-panel__closeButton:after {
253
+ content: "";
254
+ position: absolute;
255
+ top: calc((22px - 52px) / 2);
256
+ right: calc((22px - 52px) / 2);
257
+ bottom: calc((22px - 52px) / 2);
258
+ left: calc((22px - 52px) / 2);
259
+ border-radius: var(--seed-radius-r3);
260
+ outline: var(--seed-dimension-x0_5) solid transparent;
261
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
262
+ transition: outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
263
+ }
264
+ .seed-side-panel__closeButton:is(:focus, [data-focus]) {
265
+ outline: none;
266
+ }
267
+ .seed-side-panel__closeButton:is(:focus-visible, [data-focus-visible]):after {
268
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
269
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
270
+ }
271
+ .seed-side-panel__content--size_small {
272
+ --side-panel-size-width: 480px;
273
+ }
274
+ .seed-side-panel__content--size_medium {
275
+ --side-panel-size-width: 720px;
276
+ }
277
+ .seed-side-panel__content--size_large {
278
+ --side-panel-size-width: 960px;
279
+ }
280
+ @media (min-width: 480px) {
281
+ .seed-side-panel__content {
282
+ --seed-box-width: var(--seed-box-width-sm);
283
+ --seed-box-max-width: var(--seed-box-max-width-sm);
284
+ }
285
+ .seed-side-panel__body {
286
+ --seed-box-padding-x: var(--seed-box-padding-x-sm);
287
+ --seed-box-height: var(--seed-box-height-sm);
288
+ --seed-box-min-height: var(--seed-box-min-height-sm);
289
+ --seed-box-max-height: var(--seed-box-max-height-sm);
290
+ }
291
+ }
292
+ @media (min-width: 768px) {
293
+ .seed-side-panel__content {
294
+ --seed-box-width: var(--seed-box-width-md);
295
+ --seed-box-max-width: var(--seed-box-max-width-md);
296
+ }
297
+ .seed-side-panel__body {
298
+ --seed-box-padding-x: var(--seed-box-padding-x-md);
299
+ --seed-box-height: var(--seed-box-height-md);
300
+ --seed-box-min-height: var(--seed-box-min-height-md);
301
+ --seed-box-max-height: var(--seed-box-max-height-md);
302
+ }
303
+ }
304
+ @media (min-width: 1280px) {
305
+ .seed-side-panel__content {
306
+ --seed-box-width: var(--seed-box-width-lg);
307
+ --seed-box-max-width: var(--seed-box-max-width-lg);
308
+ }
309
+ .seed-side-panel__body {
310
+ --seed-box-padding-x: var(--seed-box-padding-x-lg);
311
+ --seed-box-height: var(--seed-box-height-lg);
312
+ --seed-box-min-height: var(--seed-box-min-height-lg);
313
+ --seed-box-max-height: var(--seed-box-max-height-lg);
314
+ }
315
+ }
316
+ @media (min-width: 1440px) {
317
+ .seed-side-panel__content {
318
+ --seed-box-width: var(--seed-box-width-xl);
319
+ --seed-box-max-width: var(--seed-box-max-width-xl);
320
+ }
321
+ .seed-side-panel__body {
322
+ --seed-box-padding-x: var(--seed-box-padding-x-xl);
323
+ --seed-box-height: var(--seed-box-height-xl);
324
+ --seed-box-min-height: var(--seed-box-min-height-xl);
325
+ --seed-box-max-height: var(--seed-box-max-height-xl);
326
+ }
327
+ }
@@ -0,0 +1,24 @@
1
+ declare interface SidePanelVariant {
2
+ /**
3
+ * @default "medium"
4
+ */
5
+ size: "small" | "medium" | "large";
6
+ }
7
+
8
+ declare type SidePanelVariantMap = {
9
+ [key in keyof SidePanelVariant]: Array<SidePanelVariant[key]>;
10
+ };
11
+
12
+ export declare type SidePanelVariantProps = Partial<SidePanelVariant>;
13
+
14
+ export declare type SidePanelSlotName = "positioner" | "backdrop" | "content" | "header" | "body" | "footer" | "title" | "description" | "closeButton";
15
+
16
+ export declare const sidePanelVariantMap: SidePanelVariantMap;
17
+
18
+ export declare const sidePanel: ((
19
+ props?: SidePanelVariantProps,
20
+ ) => Record<SidePanelSlotName, string>) & {
21
+ splitVariantProps: <T extends SidePanelVariantProps>(
22
+ props: T,
23
+ ) => [SidePanelVariantProps, Omit<T, keyof SidePanelVariantProps>];
24
+ }
@@ -0,0 +1,361 @@
1
+ @layer seed-components {
2
+ .seed-side-panel__positioner {
3
+ overscroll-behavior-y: none;
4
+ --side-panel-z-index: 2;
5
+ z-index: calc(var(--side-panel-z-index) + var(--layer-index, 0));
6
+ position: fixed;
7
+ inset: 0;
8
+ }
9
+
10
+ .seed-side-panel__backdrop {
11
+ background: var(--seed-color-bg-overlay);
12
+ z-index: calc(var(--side-panel-z-index) + var(--layer-index, 0));
13
+ position: fixed;
14
+ inset: 0;
15
+ }
16
+
17
+ .seed-side-panel__backdrop:is([data-state="open"], [data-open]) {
18
+ animation: seed-enter;
19
+ animation-timing-function: var(--seed-timing-function-enter);
20
+ animation-duration: var(--seed-duration-d6);
21
+ --seed-enter-translate-x: 0;
22
+ --seed-enter-translate-y: 0;
23
+ --seed-enter-opacity: 0;
24
+ --seed-enter-scale: 1;
25
+ }
26
+
27
+ .seed-side-panel__backdrop:not(:is([data-state="open"], [data-open])) {
28
+ animation: seed-exit;
29
+ animation-timing-function: var(--seed-timing-function-exit);
30
+ animation-duration: var(--seed-duration-d6);
31
+ --seed-exit-translate-x: 0;
32
+ --seed-exit-translate-y: 0;
33
+ --seed-exit-opacity: 0;
34
+ --seed-exit-scale: 1;
35
+ animation-fill-mode: forwards;
36
+ }
37
+
38
+ .seed-side-panel__content {
39
+ box-sizing: border-box;
40
+ word-break: break-all;
41
+ z-index: calc(var(--side-panel-z-index) + var(--layer-index, 0));
42
+ background: var(--seed-color-bg-layer-floating);
43
+ touch-action: none;
44
+ will-change: transform;
45
+ --seed-box-width-base: initial;
46
+ --seed-box-width-sm: var(--seed-box-width-base);
47
+ --seed-box-width-md: var(--seed-box-width-sm);
48
+ --seed-box-width-lg: var(--seed-box-width-md);
49
+ --seed-box-width-xl: var(--seed-box-width-lg);
50
+ --seed-box-width: var(--seed-box-width-base);
51
+ --seed-box-max-width-base: calc(.8 * 100%);
52
+ --seed-box-max-width-sm: var(--seed-box-max-width-base);
53
+ --seed-box-max-width-md: var(--seed-box-max-width-sm);
54
+ --seed-box-max-width-lg: var(--seed-box-max-width-md);
55
+ --seed-box-max-width-xl: var(--seed-box-max-width-lg);
56
+ --seed-box-max-width: var(--seed-box-max-width-base);
57
+ width: var(--seed-box-width, calc(.8 * 100vw));
58
+ max-width: var(--seed-box-max-width);
59
+ padding-bottom: var(--seed-safe-area-bottom);
60
+ flex-direction: column;
61
+ display: flex;
62
+ position: absolute;
63
+ top: 0;
64
+ bottom: 0;
65
+ }
66
+
67
+ @media (width >= 768px) {
68
+ .seed-side-panel__content {
69
+ width: var(--seed-box-width, var(--side-panel-size-width));
70
+ }
71
+ }
72
+
73
+ .seed-side-panel__content:after {
74
+ content: "";
75
+ background: inherit;
76
+ z-index: -1;
77
+ width: 100vw;
78
+ position: absolute;
79
+ top: 0;
80
+ bottom: 0;
81
+ }
82
+
83
+ .seed-side-panel__content:is(:focus, [data-focus]) {
84
+ outline: none;
85
+ }
86
+
87
+ .seed-side-panel__content[data-drawer-direction="left"] {
88
+ padding-left: env(safe-area-inset-left, 0);
89
+ left: 0;
90
+ }
91
+
92
+ .seed-side-panel__content[data-drawer-direction="left"]:after {
93
+ right: 100%;
94
+ }
95
+
96
+ .seed-side-panel__content[data-drawer-direction="right"] {
97
+ padding-right: env(safe-area-inset-right, 0);
98
+ right: 0;
99
+ }
100
+
101
+ .seed-side-panel__content[data-drawer-direction="right"]:after {
102
+ left: 100%;
103
+ }
104
+
105
+ .seed-side-panel__content:is([data-state="open"], [data-open])[data-drawer-direction="right"] {
106
+ animation: seed-enter;
107
+ animation-timing-function: var(--seed-timing-function-enter-expressive);
108
+ animation-duration: var(--seed-duration-d6);
109
+ --seed-enter-translate-x: 100%;
110
+ --seed-enter-translate-y: 0;
111
+ --seed-enter-opacity: 1;
112
+ --seed-enter-scale: 1;
113
+ }
114
+
115
+ .seed-side-panel__content:not(:is([data-state="open"], [data-open]))[data-drawer-direction="right"] {
116
+ animation: seed-exit;
117
+ animation-timing-function: var(--seed-timing-function-exit-expressive);
118
+ animation-duration: var(--seed-duration-d6);
119
+ --seed-exit-translate-x: 100%;
120
+ --seed-exit-translate-y: 0;
121
+ --seed-exit-opacity: 1;
122
+ --seed-exit-scale: 1;
123
+ animation-fill-mode: forwards;
124
+ }
125
+
126
+ .seed-side-panel__content:is([data-state="open"], [data-open])[data-drawer-direction="left"] {
127
+ animation: seed-enter;
128
+ animation-timing-function: var(--seed-timing-function-enter-expressive);
129
+ animation-duration: var(--seed-duration-d6);
130
+ --seed-enter-translate-x: -100%;
131
+ --seed-enter-translate-y: 0;
132
+ --seed-enter-opacity: 1;
133
+ --seed-enter-scale: 1;
134
+ }
135
+
136
+ .seed-side-panel__content:not(:is([data-state="open"], [data-open]))[data-drawer-direction="left"] {
137
+ animation: seed-exit;
138
+ animation-timing-function: var(--seed-timing-function-exit-expressive);
139
+ animation-duration: var(--seed-duration-d6);
140
+ --seed-exit-translate-x: -100%;
141
+ --seed-exit-translate-y: 0;
142
+ --seed-exit-opacity: 1;
143
+ --seed-exit-scale: 1;
144
+ animation-fill-mode: forwards;
145
+ }
146
+
147
+ .seed-side-panel__header {
148
+ box-sizing: border-box;
149
+ gap: var(--seed-dimension-x1_5);
150
+ min-height: calc(70px + var(--seed-safe-area-top));
151
+ padding-left: var(--seed-dimension-x6);
152
+ padding-right: var(--seed-dimension-x6);
153
+ padding-top: calc(var(--seed-dimension-x6) + var(--seed-safe-area-top));
154
+ padding-bottom: var(--seed-dimension-x4);
155
+ flex-direction: column;
156
+ display: flex;
157
+ position: relative;
158
+ }
159
+
160
+ .seed-side-panel__header[data-show-close-button] {
161
+ padding-right: calc(var(--seed-dimension-x6) + 52px);
162
+ }
163
+
164
+ .seed-side-panel__title {
165
+ color: var(--seed-color-fg-neutral);
166
+ font-size: var(--seed-font-size-t8);
167
+ line-height: var(--seed-line-height-t8);
168
+ font-weight: var(--seed-font-weight-bold);
169
+ word-break: keep-all;
170
+ margin: 0;
171
+ }
172
+
173
+ .seed-side-panel__description {
174
+ color: var(--seed-color-fg-neutral-muted);
175
+ font-size: var(--seed-font-size-t5);
176
+ line-height: var(--seed-line-height-t5);
177
+ font-weight: var(--seed-font-weight-regular);
178
+ white-space: pre-wrap;
179
+ margin: 0;
180
+ }
181
+
182
+ .seed-side-panel__body {
183
+ --seed-box-padding-x-base: var(--seed-dimension-x6);
184
+ --seed-box-padding-x-sm: var(--seed-box-padding-x-base);
185
+ --seed-box-padding-x-md: var(--seed-box-padding-x-sm);
186
+ --seed-box-padding-x-lg: var(--seed-box-padding-x-md);
187
+ --seed-box-padding-x-xl: var(--seed-box-padding-x-lg);
188
+ --seed-box-padding-x: var(--seed-box-padding-x-base);
189
+ --seed-box-height-base: initial;
190
+ --seed-box-height-sm: var(--seed-box-height-base);
191
+ --seed-box-height-md: var(--seed-box-height-sm);
192
+ --seed-box-height-lg: var(--seed-box-height-md);
193
+ --seed-box-height-xl: var(--seed-box-height-lg);
194
+ --seed-box-height: var(--seed-box-height-base);
195
+ --seed-box-min-height-base: initial;
196
+ --seed-box-min-height-sm: var(--seed-box-min-height-base);
197
+ --seed-box-min-height-md: var(--seed-box-min-height-sm);
198
+ --seed-box-min-height-lg: var(--seed-box-min-height-md);
199
+ --seed-box-min-height-xl: var(--seed-box-min-height-lg);
200
+ --seed-box-min-height: var(--seed-box-min-height-base);
201
+ --seed-box-max-height-base: initial;
202
+ --seed-box-max-height-sm: var(--seed-box-max-height-base);
203
+ --seed-box-max-height-md: var(--seed-box-max-height-sm);
204
+ --seed-box-max-height-lg: var(--seed-box-max-height-md);
205
+ --seed-box-max-height-xl: var(--seed-box-max-height-lg);
206
+ --seed-box-max-height: var(--seed-box-max-height-base);
207
+ --seed-box-justify-content: initial;
208
+ --seed-box-align-items: initial;
209
+ padding-left: var(--seed-box-padding-x);
210
+ padding-right: var(--seed-box-padding-x);
211
+ padding-bottom: var(--seed-dimension-x12);
212
+ height: var(--seed-box-height);
213
+ min-height: var(--seed-box-min-height);
214
+ max-height: var(--seed-box-max-height);
215
+ justify-content: var(--seed-box-justify-content);
216
+ align-items: var(--seed-box-align-items);
217
+ transition: box-shadow var(--seed-duration-color-transition) var(--seed-timing-function-easing);
218
+ flex-direction: column;
219
+ flex: 1;
220
+ display: flex;
221
+ overflow-y: auto;
222
+ }
223
+
224
+ .seed-side-panel__body[data-scrolled]:not(:first-child) {
225
+ box-shadow: inset 0 1px 0 0 var(--seed-color-stroke-neutral-muted);
226
+ }
227
+
228
+ .seed-side-panel__body {
229
+ mask-image: linear-gradient(to top, transparent 0, black var(--seed-dimension-x12));
230
+ -webkit-mask-image: linear-gradient(to top, transparent 0, black var(--seed-dimension-x12));
231
+ }
232
+
233
+ .seed-side-panel__footer {
234
+ padding-left: var(--seed-dimension-x6);
235
+ padding-right: var(--seed-dimension-x6);
236
+ padding-top: var(--seed-dimension-x4);
237
+ padding-bottom: var(--seed-dimension-x6);
238
+ flex-direction: column;
239
+ display: flex;
240
+ }
241
+
242
+ .seed-side-panel__closeButton {
243
+ top: calc(28px + var(--seed-safe-area-top));
244
+ border-radius: var(--seed-radius-r3);
245
+ background: var(--seed-color-bg-transparent);
246
+ cursor: pointer;
247
+ --seed-icon-size: 22px;
248
+ --seed-icon-color: var(--seed-color-fg-neutral-subtle);
249
+ border: none;
250
+ justify-content: center;
251
+ align-items: center;
252
+ width: 22px;
253
+ height: 22px;
254
+ display: flex;
255
+ position: absolute;
256
+ right: 24px;
257
+ }
258
+
259
+ .seed-side-panel__closeButton :where(.seed-icon) {
260
+ transition: color var(--seed-duration-color-transition) var(--seed-timing-function-easing);
261
+ }
262
+
263
+ @media (hover: hover) and (pointer: fine) {
264
+ .seed-side-panel__closeButton:is(:hover, [data-hover]) {
265
+ --seed-icon-color: var(--seed-color-fg-neutral);
266
+ }
267
+ }
268
+
269
+ @media not all and (hover: hover) and (pointer: fine) {
270
+ .seed-side-panel__closeButton:is(:active, [data-active]) {
271
+ --seed-icon-color: var(--seed-color-fg-neutral);
272
+ }
273
+ }
274
+
275
+ .seed-side-panel__closeButton:after {
276
+ content: "";
277
+ border-radius: var(--seed-radius-r3);
278
+ outline: var(--seed-dimension-x0_5) solid transparent;
279
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
280
+ transition: outline-color var(--seed-duration-d3) var(--seed-timing-function-easing);
281
+ position: absolute;
282
+ inset: -15px;
283
+ }
284
+
285
+ .seed-side-panel__closeButton:is(:focus, [data-focus]) {
286
+ outline: none;
287
+ }
288
+
289
+ .seed-side-panel__closeButton:is(:focus-visible, [data-focus-visible]):after {
290
+ outline: var(--seed-dimension-x0_5) solid var(--seed-color-stroke-focus-ring);
291
+ outline-offset: calc(var(--seed-dimension-x0_5) * -1);
292
+ }
293
+
294
+ .seed-side-panel__content--size_small {
295
+ --side-panel-size-width: 480px;
296
+ }
297
+
298
+ .seed-side-panel__content--size_medium {
299
+ --side-panel-size-width: 720px;
300
+ }
301
+
302
+ .seed-side-panel__content--size_large {
303
+ --side-panel-size-width: 960px;
304
+ }
305
+
306
+ @media (width >= 480px) {
307
+ .seed-side-panel__content {
308
+ --seed-box-width: var(--seed-box-width-sm);
309
+ --seed-box-max-width: var(--seed-box-max-width-sm);
310
+ }
311
+
312
+ .seed-side-panel__body {
313
+ --seed-box-padding-x: var(--seed-box-padding-x-sm);
314
+ --seed-box-height: var(--seed-box-height-sm);
315
+ --seed-box-min-height: var(--seed-box-min-height-sm);
316
+ --seed-box-max-height: var(--seed-box-max-height-sm);
317
+ }
318
+ }
319
+
320
+ @media (width >= 768px) {
321
+ .seed-side-panel__content {
322
+ --seed-box-width: var(--seed-box-width-md);
323
+ --seed-box-max-width: var(--seed-box-max-width-md);
324
+ }
325
+
326
+ .seed-side-panel__body {
327
+ --seed-box-padding-x: var(--seed-box-padding-x-md);
328
+ --seed-box-height: var(--seed-box-height-md);
329
+ --seed-box-min-height: var(--seed-box-min-height-md);
330
+ --seed-box-max-height: var(--seed-box-max-height-md);
331
+ }
332
+ }
333
+
334
+ @media (width >= 1280px) {
335
+ .seed-side-panel__content {
336
+ --seed-box-width: var(--seed-box-width-lg);
337
+ --seed-box-max-width: var(--seed-box-max-width-lg);
338
+ }
339
+
340
+ .seed-side-panel__body {
341
+ --seed-box-padding-x: var(--seed-box-padding-x-lg);
342
+ --seed-box-height: var(--seed-box-height-lg);
343
+ --seed-box-min-height: var(--seed-box-min-height-lg);
344
+ --seed-box-max-height: var(--seed-box-max-height-lg);
345
+ }
346
+ }
347
+
348
+ @media (width >= 1440px) {
349
+ .seed-side-panel__content {
350
+ --seed-box-width: var(--seed-box-width-xl);
351
+ --seed-box-max-width: var(--seed-box-max-width-xl);
352
+ }
353
+
354
+ .seed-side-panel__body {
355
+ --seed-box-padding-x: var(--seed-box-padding-x-xl);
356
+ --seed-box-height: var(--seed-box-height-xl);
357
+ --seed-box-min-height: var(--seed-box-min-height-xl);
358
+ --seed-box-max-height: var(--seed-box-max-height-xl);
359
+ }
360
+ }
361
+ }