winduum 2.2.28 → 3.0.0-next.10

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 (69) hide show
  1. package/package.json +19 -12
  2. package/src/base/defaults.css +3 -0
  3. package/src/base/reset.css +4 -0
  4. package/src/common.d.ts +4 -0
  5. package/src/common.js +9 -1
  6. package/src/components/carousel/content.css +1 -0
  7. package/src/components/carousel/index.d.ts +14 -35
  8. package/src/components/carousel/index.js +75 -194
  9. package/src/components/check/props/default.css +1 -1
  10. package/src/components/control/props/select-picker.css +4 -4
  11. package/src/components/control/props/select.css +2 -2
  12. package/src/components/control/tel-country-code.css +24 -0
  13. package/src/components/details/default.css +14 -0
  14. package/src/components/details/index.css +1 -0
  15. package/src/components/details/index.d.ts +2 -6
  16. package/src/components/details/index.js +7 -72
  17. package/src/components/details/readme.md +2 -5
  18. package/src/components/dialog/content.css +8 -2
  19. package/src/components/dialog/default.css +16 -2
  20. package/src/components/dialog/drawer.css +20 -0
  21. package/src/components/dialog/index.css +1 -0
  22. package/src/components/dialog/index.js +8 -79
  23. package/src/components/dialog/readme.md +1 -5
  24. package/src/components/drawer/content.css +2 -1
  25. package/src/components/drawer/default.css +13 -31
  26. package/src/components/drawer/index.css +3 -0
  27. package/src/components/drawer/index.d.ts +8 -15
  28. package/src/components/drawer/index.js +67 -50
  29. package/src/components/drawer/keyframes/default.css +9 -0
  30. package/src/components/drawer/noscript.css +32 -0
  31. package/src/components/drawer/nosnap.css +32 -0
  32. package/src/components/drawer/props/content.css +2 -2
  33. package/src/components/drawer/props/default.css +6 -0
  34. package/src/components/drawer/scroller.css +32 -0
  35. package/src/components/form/index.d.ts +5 -12
  36. package/src/components/form/index.js +35 -70
  37. package/src/components/heading/lg.css +1 -1
  38. package/src/components/heading/props/default.css +1 -1
  39. package/src/components/heading/sm.css +1 -1
  40. package/src/components/index.css +1 -0
  41. package/src/components/label/props/default.css +3 -2
  42. package/src/components/popover/content.css +7 -94
  43. package/src/components/popover/default.css +16 -3
  44. package/src/components/popover/index.css +2 -0
  45. package/src/components/popover/index.d.ts +14 -18
  46. package/src/components/popover/index.js +40 -80
  47. package/src/components/popover/props/content.css +1 -2
  48. package/src/components/popover/props/default.css +4 -0
  49. package/src/components/popover/readme.md +1 -2
  50. package/src/components/popover/tooltip.css +11 -0
  51. package/src/components/tabs/index.d.ts +2 -2
  52. package/src/components/text/content.css +241 -0
  53. package/src/components/text/default.css +0 -238
  54. package/src/components/text/index.css +2 -0
  55. package/src/components/text/props/content.css +9 -0
  56. package/src/components/text/props/default.css +1 -7
  57. package/src/components/toast/default.css +6 -0
  58. package/src/components/toast/index.js +2 -1
  59. package/src/components/toaster/index.d.ts +1 -0
  60. package/src/components/toaster/index.js +18 -0
  61. package/src/components/tooltip/default.css +8 -8
  62. package/src/polyfill.js +13 -0
  63. package/src/supports.js +15 -0
  64. package/src/utilities/container/props/default.css +3 -3
  65. package/tailwindcss/utilities/animation-trigger-fallback.css +18 -0
  66. package/tailwindcss/utilities/index.css +1 -0
  67. package/tailwindcss/utilities/position.css +203 -0
  68. package/types/index.d.ts +20 -58
  69. package/src/components/dialog/index.d.ts +0 -13
@@ -0,0 +1,241 @@
1
+ .x-text {
2
+ &:where(.content) {
3
+ > :is(*:first-child) {
4
+ margin-block-start: 0;
5
+ }
6
+
7
+ > :is(*:last-child) {
8
+ margin-block-end: 0;
9
+ }
10
+
11
+ :where(b, strong) {
12
+ font-weight: var(--x-text-content-bold);
13
+ }
14
+
15
+ :where(em) {
16
+ font-style: italic;
17
+ }
18
+
19
+ :where(img) {
20
+ display: block;
21
+ height: auto;
22
+ border-radius: var(--x-text-img-border-radius);
23
+ }
24
+
25
+ :where(p) {
26
+ margin-block: var(--x-text-p-margin-block, var(--x-text-content-margin-block));
27
+
28
+ &:empty {
29
+ line-height: 0;
30
+ margin: 0;
31
+
32
+ &::after {
33
+ content: "\00a0";
34
+ }
35
+ }
36
+ }
37
+
38
+ :where(hr) {
39
+ margin-block: var(--x-text-hr-margin-block);
40
+ background-color:
41
+ color-mix(
42
+ in var(--x-text-hr-background-color-space, srgb),
43
+ var(--x-text-hr-background-color, currentColor) var(--x-text-hr-background-color-opacity, 10%),
44
+ var(--x-text-hr-background-color-mix, transparent)
45
+ );
46
+ }
47
+
48
+ :where(a) {
49
+ color: var(--x-text-link-color, var(--color-accent));
50
+ text-decoration: var(--x-text-link-text-decoration, underline);
51
+ transition: var(--transition-color);
52
+
53
+ &:hover {
54
+ color:
55
+ color-mix(
56
+ in var(--x-text-link-hover-color-space, srgb),
57
+ var(--x-text-link-hover-color, var(--color-accent)) var(--x-text-link-hover-color-opacity, 75%),
58
+ var(--x-text-link-hover-color-mix, transparent)
59
+ );
60
+ }
61
+
62
+ &:focus-visible {
63
+ color:
64
+ color-mix(
65
+ in var(--x-text-link-focus-color-space, srgb),
66
+ var(--x-text-link-focus-color, var(--color-accent)) var(--x-text-link-focus-color-opacity, 75%),
67
+ var(--x-text-link-focus-color-mix, transparent)
68
+ );
69
+ }
70
+ }
71
+
72
+ :where(h1, h2, h3, h4, h5, h6) {
73
+ font-family: var(--x-text-heading-font-family);
74
+ font-weight: var(--x-text-heading-font-weight, var(--x-text-content-bold));
75
+ font-size: var(--x-text-heading-font-size);
76
+ line-height: var(--x-text-heading-line-height);
77
+ letter-spacing: var(--x-text-heading-letter-spacing);
78
+ margin-block: var(--x-text-heading-margin-block);
79
+ color: var(--x-text-heading-color);
80
+ text-wrap: balance;
81
+ }
82
+
83
+ :where(h1) {
84
+ --x-text-heading-font-size: var(--x-text-heading-1-font-size, var(--text-5xl));
85
+ }
86
+
87
+ :where(h2) {
88
+ --x-text-heading-font-size: var(--x-text-heading-2-font-size, var(--text-4xl));
89
+ }
90
+
91
+ :where(h3) {
92
+ --x-text-heading-font-size: var(--x-text-heading-3-font-size, var(--text-3xl));
93
+ }
94
+
95
+ :where(h4) {
96
+ --x-text-heading-font-size: var(--x-text-heading-4-font-size, var(--text-2xl));
97
+ }
98
+
99
+ :where(h5) {
100
+ --x-text-heading-font-size: var(--x-text-heading-5-font-size, var(--text-xl));
101
+ }
102
+
103
+ :where(h6) {
104
+ --x-text-heading-font-size: var(--x-text-heading-6-font-size, var(--text-lg));
105
+ }
106
+
107
+ :where(table) {
108
+ border: 0;
109
+ min-inline-size: 100%;
110
+
111
+ :where(td, th) {
112
+ padding: var(--x-text-table-cell-padding-block, 1em) var(--x-text-table-cell-padding-inline, 1.25em);
113
+ text-align: left;
114
+ }
115
+
116
+ :where(thead) {
117
+ font-weight: var(--x-text-table-thead-font-weight, var(--x-text-content-bold));
118
+ border-block-end:
119
+ 1px solid color-mix(
120
+ in var(--x-text-table-thead-border-color-space, srgb),
121
+ var(--x-text-table-thead-border-color, currentColor) var(--x-text-table-thead-border-color-opacity, 10%),
122
+ var(--x-text-table-thead-border-color-mix, transparent)
123
+ );
124
+ }
125
+
126
+ :where(tbody tr) {
127
+ &:nth-of-type(even) {
128
+ background-color:
129
+ color-mix(
130
+ in var(--x-text-table-row-even-background-color-space, srgb),
131
+ var(--x-text-table-row-even-background-color, currentColor) var(--x-text-table-row-even-background-color-opacity, 5%),
132
+ var(--x-text-table-row-even-background-color-mix, transparent)
133
+ );
134
+ }
135
+ }
136
+ }
137
+
138
+ :where(ol, ul) {
139
+ margin-inline-start: var(--x-text-list-margin-inline-start, 0.75em);
140
+ padding-inline-start: var(--x-text-list-padding-inline-start, 1em);
141
+ margin-block: var(--x-text-list-margin-block, var(--x-text-content-margin-block));
142
+
143
+ :where(li) {
144
+ margin-block: var(--x-text-list-item-margin-block, 0.5em);
145
+ padding-inline-start: var(--x-text-list-item-padding-inline-start, 1ch);
146
+ }
147
+ }
148
+
149
+ :where(ol) {
150
+ &:not([type]) {
151
+ list-style: decimal;
152
+ }
153
+
154
+ & :where(li) {
155
+ &::marker {
156
+ color: var(--x-text-list-marker-color, var(--color-accent));
157
+ font-weight: var(--x-text-list-marker-font-weight, var(--x-text-content-bold));
158
+ }
159
+ }
160
+ }
161
+
162
+ :where(ul) {
163
+ :where(li) {
164
+ position: relative;
165
+ list-style-type: "";
166
+
167
+ &::before {
168
+ inline-size: var(--x-text-list-marker-size);
169
+ block-size: var(--x-text-list-marker-size);
170
+ inset-inline-start: var(--x-text-list-marker-inset-inline-start, -0.75em);
171
+ inset-block-start: var(--x-text-list-marker-inset-block-start, 0.5lh);
172
+ border:
173
+ var(--x-text-list-marker-border-width, 1px) solid
174
+ var(--x-text-list-marker-border-color, var(--color-accent));
175
+ background-color: var(--x-text-list-marker-background-color, var(--color-accent));
176
+ margin-inline-start: calc((var(--x-text-list-marker-size) / 2) * -1);
177
+ margin-block-start: calc(var(--x-text-list-marker-size) / 2 * -1);
178
+ border-radius: var(--x-text-list-marker-border-radius, 50%);
179
+ mask: var(--x-text-list-marker-mask);
180
+ position: absolute;
181
+ will-change: transform;
182
+ content: "";
183
+ }
184
+ }
185
+
186
+ &[style*="square"] {
187
+ --x-text-list-marker-border-radius: 0;
188
+ }
189
+
190
+ &[style*="circle"] {
191
+ --x-text-list-marker-background-color: transparent;
192
+ }
193
+ }
194
+
195
+ :where(blockquote) {
196
+ border-inline-start:
197
+ var(--x-text-blockquote-border-inline-start-width, 0.125rem) solid
198
+ var(--x-text-blockquote-border-inline-start-color, var(--color-accent));
199
+ margin-block: var(--x-text-blockquote-margin-block, var(--x-text-content-margin-block));
200
+ padding: var(--x-text-blockquote-padding-block, 0) var(--x-text-blockquote-padding-inline, 1.25em);
201
+ font-size: var(--x-text-blockquote-font-size, var(--text-lg));
202
+ font-style: var(--x-text-blockquote-font-style);
203
+ letter-spacing: var(--x-text-blockquote-letter-spacing, inherit);
204
+ line-height: var(--x-text-blockquote-line-height, inherit);
205
+ }
206
+
207
+ :where(code) {
208
+ font-size: var(--x-text-code-font-size, 87.5%);
209
+ }
210
+
211
+ :where(figure) {
212
+ margin-block: var(--x-text-figure-margin-block, var(--x-text-content-margin-block));
213
+ }
214
+
215
+ :where(figcaption) {
216
+ font-size: var(--x-text-figcaption-font-size, 87.5%);
217
+ font-weight: var(--x-text-figcaption-font-weight, var(--font-weight-normal));
218
+ font-style: var(--x-text-figcaption-font-style);
219
+ line-height: var(--x-text-figcaption-line-height, 1.5);
220
+ letter-spacing: var(--x-text-figcaption-letter-spacing);
221
+ margin-block-start: var(--x-text-figcaption-margin-block-start, 0.5em);
222
+ padding-inline-start: var(--x-text-figcaption-padding-inline-start);
223
+ border-inline-start: var(--x-text-figcaption-border-inline-start);
224
+ }
225
+
226
+ :where(pre) {
227
+ padding: var(--x-text-pre-padding-block, 0.25rem) var(--x-text-pre-padding-inline, 0.5rem);
228
+ background-color: var(--x-text-pre-background-color, var(--color-body-secondary));
229
+ border-radius: var(--x-pre-border-radius, var(--radius-md));
230
+ scrollbar-color: var(--x-pre-scrollbar-color, currentcolor var(--color-body-secondary));
231
+ overflow-x: auto;
232
+ overscroll-behavior: contain;
233
+
234
+ > :where(code) {
235
+ background: transparent;
236
+ width: max-content;
237
+ color: inherit;
238
+ }
239
+ }
240
+ }
241
+ }
@@ -5,242 +5,4 @@
5
5
  line-height: var(--x-text-line-height);
6
6
  letter-spacing: var(--x-text-letter-spacing);
7
7
  text-wrap: pretty;
8
-
9
- > :is(*:first-child) {
10
- margin-block-start: 0;
11
- }
12
-
13
- > :is(*:last-child) {
14
- margin-block-end: 0;
15
- }
16
-
17
- :where(b, strong) {
18
- font-weight: var(--x-text-content-bold);
19
- }
20
-
21
- :where(em) {
22
- font-style: italic;
23
- }
24
-
25
- :where(img) {
26
- display: block;
27
- height: auto;
28
- border-radius: var(--x-text-img-border-radius);
29
- }
30
-
31
- :where(p) {
32
- margin-block: var(--x-text-p-margin-block, var(--x-text-content-margin-block));
33
-
34
- &:empty {
35
- line-height: 0;
36
- margin: 0;
37
-
38
- &::after {
39
- content: "\00a0";
40
- }
41
- }
42
- }
43
-
44
- :where(hr) {
45
- margin-block: var(--x-text-hr-margin-block);
46
- background-color:
47
- color-mix(
48
- in var(--x-text-hr-background-color-space, srgb),
49
- var(--x-text-hr-background-color, currentColor) var(--x-text-hr-background-color-opacity, 10%),
50
- var(--x-text-hr-background-color-mix, transparent)
51
- );
52
- }
53
-
54
- :where(a) {
55
- color: var(--x-text-link-color, var(--color-accent));
56
- text-decoration: var(--x-text-link-text-decoration, underline);
57
- transition: var(--transition-color);
58
-
59
- &:hover {
60
- color:
61
- color-mix(
62
- in var(--x-text-link-hover-color-space, srgb),
63
- var(--x-text-link-hover-color, var(--color-accent)) var(--x-text-link-hover-color-opacity, 75%),
64
- var(--x-text-link-hover-color-mix, transparent)
65
- );
66
- }
67
-
68
- &:focus-visible {
69
- color:
70
- color-mix(
71
- in var(--x-text-link-focus-color-space, srgb),
72
- var(--x-text-link-focus-color, var(--color-accent)) var(--x-text-link-focus-color-opacity, 75%),
73
- var(--x-text-link-focus-color-mix, transparent)
74
- );
75
- }
76
- }
77
-
78
- :where(h1, h2, h3, h4, h5, h6) {
79
- font-family: var(--x-text-heading-font-family);
80
- font-weight: var(--x-text-heading-font-weight, var(--x-text-content-bold));
81
- font-size: var(--x-text-heading-font-size);
82
- line-height: var(--x-text-heading-line-height);
83
- letter-spacing: var(--x-text-heading-letter-spacing);
84
- margin-block: var(--x-text-heading-margin-block);
85
- color: var(--x-text-heading-color);
86
- text-wrap: balance;
87
- }
88
-
89
- :where(h1) {
90
- --x-text-heading-font-size: var(--x-text-heading-1-font-size, var(--text-4xl));
91
- }
92
-
93
- :where(h2) {
94
- --x-text-heading-font-size: var(--x-text-heading-2-font-size, var(--text-3xl));
95
- }
96
-
97
- :where(h3) {
98
- --x-text-heading-font-size: var(--x-text-heading-3-font-size, var(--text-2xl));
99
- }
100
-
101
- :where(h4) {
102
- --x-text-heading-font-size: var(--x-text-heading-4-font-size, var(--text-xl));
103
- }
104
-
105
- :where(h5) {
106
- --x-text-heading-font-size: var(--x-text-heading-5-font-size, var(--text-lg));
107
- }
108
-
109
- :where(h6) {
110
- --x-text-heading-font-size: var(--x-text-heading-6-font-size);
111
- }
112
-
113
- :where(table) {
114
- border: 0;
115
- min-inline-size: 100%;
116
-
117
- :where(td, th) {
118
- padding: var(--x-text-table-cell-padding-block, 1em) var(--x-text-table-cell-padding-inline, 1.25em);
119
- text-align: left;
120
- }
121
-
122
- :where(thead) {
123
- font-weight: var(--x-text-table-thead-font-weight, var(--x-text-content-bold));
124
- border-block-end:
125
- 1px solid color-mix(
126
- in var(--x-text-table-thead-border-color-space, srgb),
127
- var(--x-text-table-thead-border-color, currentColor) var(--x-text-table-thead-border-color-opacity, 10%),
128
- var(--x-text-table-thead-border-color-mix, transparent)
129
- );
130
- }
131
-
132
- :where(tbody tr) {
133
- &:nth-of-type(even) {
134
- background-color:
135
- color-mix(
136
- in var(--x-text-table-row-even-background-color-space, srgb),
137
- var(--x-text-table-row-even-background-color, currentColor) var(--x-text-table-row-even-background-color-opacity, 5%),
138
- var(--x-text-table-row-even-background-color-mix, transparent)
139
- );
140
- }
141
- }
142
- }
143
-
144
- :where(ol, ul) {
145
- margin-inline-start: var(--x-text-list-margin-inline-start, 0.75em);
146
- padding-inline-start: var(--x-text-list-padding-inline-start, 1em);
147
- margin-block: var(--x-text-list-margin-block, var(--x-text-content-margin-block));
148
-
149
- :where(li) {
150
- margin-block: var(--x-text-list-item-margin-block, 0.5em);
151
- padding-inline-start: var(--x-text-list-item-padding-inline-start, 1ch);
152
- }
153
- }
154
-
155
- :where(ol) {
156
- &:not([type]) {
157
- list-style: decimal;
158
- }
159
-
160
- & :where(li) {
161
- &::marker {
162
- color: var(--x-text-list-marker-color, var(--color-accent));
163
- font-weight: var(--x-text-list-marker-font-weight, var(--x-text-content-bold));
164
- }
165
- }
166
- }
167
-
168
- :where(ul) {
169
- :where(li) {
170
- position: relative;
171
- list-style-type: "";
172
-
173
- &::before {
174
- inline-size: var(--x-text-list-marker-size);
175
- block-size: var(--x-text-list-marker-size);
176
- inset-inline-start: var(--x-text-list-marker-inset-inline-start, -0.75em);
177
- inset-block-start: var(--x-text-list-marker-inset-block-start, 0.5lh);
178
- border:
179
- var(--x-text-list-marker-border-width, 1px) solid
180
- var(--x-text-list-marker-border-color, var(--color-accent));
181
- background-color: var(--x-text-list-marker-background-color, var(--color-accent));
182
- margin-inline-start: calc((var(--x-text-list-marker-size) / 2) * -1);
183
- margin-block-start: calc(var(--x-text-list-marker-size) / 2 * -1);
184
- border-radius: var(--x-text-list-marker-border-radius, 50%);
185
- mask: var(--x-text-list-marker-mask);
186
- position: absolute;
187
- will-change: transform;
188
- content: "";
189
- }
190
- }
191
-
192
- &[style*="square"] {
193
- --x-text-list-marker-border-radius: 0;
194
- }
195
-
196
- &[style*="circle"] {
197
- --x-text-list-marker-background-color: transparent;
198
- }
199
- }
200
-
201
- :where(blockquote) {
202
- border-inline-start:
203
- var(--x-text-blockquote-border-inline-start-width, 0.375em) solid
204
- var(--x-text-blockquote-border-inline-start-color, var(--color-accent));
205
- margin-block: var(--x-text-blockquote-margin-block, var(--x-text-content-margin-block));
206
- padding: var(--x-text-blockquote-padding-block, 0) var(--x-text-blockquote-padding-inline, 1.25em);
207
- font-size: var(--x-text-blockquote-font-size, inherit);
208
- font-style: var(--x-text-blockquote-font-style);
209
- letter-spacing: var(--x-text-blockquote-letter-spacing, inherit);
210
- line-height: var(--x-text-blockquote-line-height, inherit);
211
- }
212
-
213
- :where(code) {
214
- font-size: var(--x-text-code-font-size, 87.5%);
215
- }
216
-
217
- :where(figure) {
218
- margin-block: var(--x-text-figure-margin-block, var(--x-text-content-margin-block));
219
- }
220
-
221
- :where(figcaption) {
222
- font-size: var(--x-text-figcaption-font-size, 87.5%);
223
- font-weight: var(--x-text-figcaption-font-weight, var(--font-weight-semibold));
224
- font-style: var(--x-text-figcaption-font-style);
225
- line-height: var(--x-text-figcaption-line-height, 1.5);
226
- letter-spacing: var(--x-text-figcaption-letter-spacing);
227
- margin-block-start: var(--x-text-figcaption-margin-block-start, 0.5em);
228
- padding-inline-start: var(--x-text-figcaption-padding-inline-start);
229
- border-inline-start: var(--x-text-figcaption-border-inline-start);
230
- }
231
-
232
- :where(pre) {
233
- padding: var(--x-text-pre-padding-block, 0.25rem) var(--x-text-pre-padding-inline, 0.5rem);
234
- background-color: var(--x-text-pre-background-color, var(--color-body-secondary));
235
- border-radius: var(--x-pre-border-radius, var(--radius-md));
236
- scrollbar-color: var(--x-pre-scrollbar-color, currentcolor var(--color-body-secondary));
237
- overflow-x: auto;
238
- overscroll-behavior: contain;
239
-
240
- > :where(code) {
241
- background: transparent;
242
- width: max-content;
243
- color: inherit;
244
- }
245
- }
246
8
  }
@@ -1,2 +1,4 @@
1
1
  @import "./props/default.css";
2
+ @import "./props/content.css";
2
3
  @import "./default.css";
4
+ @import "./content.css";
@@ -0,0 +1,9 @@
1
+ :root,
2
+ :host {
3
+ --x-text-content-bold: var(--font-weight-semibold);
4
+ --x-text-list-marker-size: 0.375em;
5
+ --x-text-content-margin-block: 1.25em;
6
+ --x-text-hr-margin-block: 3em;
7
+ --x-text-heading-line-height: 1.2;
8
+ --x-text-img-border-radius: var(--radius-2xl);
9
+ }
@@ -1,10 +1,4 @@
1
1
  :root,
2
2
  :host {
3
- --x-text-content-bold: var(--font-weight-semibold);
4
- --x-text-content-margin-block: calc(var(--spacing) * 5);
5
- --x-text-list-marker-size: 0.375em;
6
- --x-text-line-height: calc(1em + 0.75rem);
7
- --x-text-hr-margin-block: 3em;
8
- --x-text-heading-line-height: calc(1em + 0.375rem);
9
- --x-text-heading-margin-block: 1.5em 0.5em;
3
+ --x-text-line-height: 1.5;
10
4
  }
@@ -9,6 +9,12 @@
9
9
  visibility: hidden;
10
10
  opacity: 0%;
11
11
 
12
+ :where(:root, :host):has(dialog[open]) & {
13
+ button {
14
+ display: none;
15
+ }
16
+ }
17
+
12
18
  .flex-col-reverse & {
13
19
  justify-content: flex-end;
14
20
  }
@@ -9,6 +9,7 @@ export const closeToast = async (element, options = {}) => {
9
9
  options = {
10
10
  closedAttribute: 'data-closed',
11
11
  heightProperty: '--x-toast-block-size',
12
+ remove: true,
12
13
  ...options,
13
14
  }
14
15
 
@@ -31,7 +32,7 @@ export const closeToast = async (element, options = {}) => {
31
32
  export const showToast = async (element, options = {}) => {
32
33
  options = {
33
34
  openAttribute: 'data-open',
34
- autoHide: null,
35
+ autoHide: 7500,
35
36
  heightProperty: '--x-toast-block-size',
36
37
  close: {},
37
38
  ...options,
@@ -4,3 +4,4 @@ export interface CloseToastOptions {
4
4
  }
5
5
 
6
6
  export function closeToaster(element: HTMLElement, options?: CloseToastOptions): Promise<void>
7
+ export function toasterObserver(): MutationObserver
@@ -10,3 +10,21 @@ export const closeToaster = (element, options = {}) => {
10
10
  closeToast(toast, options),
11
11
  )
12
12
  }
13
+
14
+ /**
15
+ * @returns MutationObserver
16
+ */
17
+ export const toasterObserver = () => {
18
+ return new MutationObserver((mutations) => {
19
+ for (const { target } of mutations) {
20
+ if (target.children.length > 0) {
21
+ if (!target.matches(':popover-open')) {
22
+ target?.showPopover?.()
23
+ }
24
+ }
25
+ else {
26
+ target?.hidePopover?.()
27
+ }
28
+ }
29
+ })
30
+ }
@@ -26,8 +26,8 @@
26
26
  pointer-events: none;
27
27
  }
28
28
 
29
- &:where(.top),
30
- &:where(.bottom) {
29
+ &:where(.tooltip-top),
30
+ &:where(.tooltip-bottom) {
31
31
  &::before {
32
32
  --tw-translate-x: -50%;
33
33
 
@@ -36,8 +36,8 @@
36
36
  }
37
37
  }
38
38
 
39
- &:where(.left),
40
- &:where(.right) {
39
+ &:where(.tooltip-left),
40
+ &:where(.tooltip-right) {
41
41
  &::before {
42
42
  --tw-translate-y: -50%;
43
43
 
@@ -46,28 +46,28 @@
46
46
  }
47
47
  }
48
48
 
49
- &:where(.bottom) {
49
+ &:where(.tooltip-bottom) {
50
50
  &::before {
51
51
  inset-block-start: 100%;
52
52
  transform-origin: top;
53
53
  }
54
54
  }
55
55
 
56
- &:where(.top) {
56
+ &:where(.tooltip-top) {
57
57
  &::before {
58
58
  inset-block-end: 100%;
59
59
  transform-origin: bottom;
60
60
  }
61
61
  }
62
62
 
63
- &:where(.left) {
63
+ &:where(.tooltip-left) {
64
64
  &::before {
65
65
  inset-inline-end: 100%;
66
66
  transform-origin: right;
67
67
  }
68
68
  }
69
69
 
70
- &:where(.right) {
70
+ &:where(.tooltip-right) {
71
71
  &::before {
72
72
  inset-inline-start: 100%;
73
73
  transform-origin: left;
@@ -0,0 +1,13 @@
1
+ import { supportsTimelineTrigger, supportsInterestFor, supportsScrollSnapEvents } from './supports.js'
2
+
3
+ if (!supportsInterestFor) {
4
+ import('interestfor/src/interestfor.js')
5
+ }
6
+
7
+ if (!supportsTimelineTrigger) {
8
+ import('./polyfills/timelineTrigger.js')
9
+ }
10
+
11
+ if (!supportsScrollSnapEvents) {
12
+ import('scrollsnap-events/scrollsnapchanging')
13
+ }
package/src/supports.js CHANGED
@@ -7,3 +7,18 @@ export const supportsTimelineTrigger = CSS.supports('timeline-trigger-name: --v'
7
7
  * @type {boolean}
8
8
  */
9
9
  export const supportsInterestFor = Object.prototype.hasOwnProperty.call(HTMLButtonElement.prototype, 'interestForElement')
10
+
11
+ /**
12
+ * @type {boolean}
13
+ */
14
+ export const supportsScrollInitialTarget = CSS.supports('scroll-initial-target', 'nearest')
15
+
16
+ /**
17
+ * @type {boolean}
18
+ */
19
+ export const supportsAnimationTimeline = CSS.supports('animation-timeline: scroll()')
20
+
21
+ /**
22
+ * @type {boolean}
23
+ */
24
+ export const supportsScrollSnapEvents = ('onscrollsnapchanging' in window)
@@ -2,8 +2,8 @@
2
2
  :host {
3
3
  --container: min(100% - (var(--container-padding) * 2), var(--container-width));
4
4
  --container-breakout: min(100% - (var(--container-padding) * 2), var(--container-breakout-width));
5
- --container-width: 80rem;
5
+ --container-width: 82rem;
6
6
  --container-breakout-width: calc(var(--container-width) + 10rem);
7
- --container-padding: 5vw;
8
- --container-padding-calc: max(calc(50vw - (var(--container-width) / 2)), var(--container-padding));
7
+ --container-padding: clamp(1.25rem, 7.5cqw - 1.5rem, 4rem);
8
+ --container-padding-calc: max(calc(50cqw - (var(--container-width) / 2)), var(--container-padding));
9
9
  }
@@ -0,0 +1,18 @@
1
+ @utility animation-trigger-enter {
2
+ @supports not (timeline-trigger-name: --v) {
3
+ animation-play-state: paused;
4
+
5
+ @media (scripting: none) {
6
+ animation: none;
7
+ }
8
+
9
+ &:is([data-enter]),
10
+ :is([data-enter]) & {
11
+ animation-play-state: running;
12
+ }
13
+ }
14
+
15
+ @media (prefers-reduced-motion), print {
16
+ animation: none;
17
+ }
18
+ }