@auvyx/ui 0.0.0-stage → 0.1.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 (143) hide show
  1. package/LICENSE +48 -0
  2. package/README.md +43 -2
  3. package/dist/auvyx.bundle.css +5941 -0
  4. package/dist/auvyx.chart.min.js +2 -0
  5. package/dist/auvyx.corners.min.js +2 -0
  6. package/dist/auvyx.css +10880 -0
  7. package/dist/auvyx.js +3222 -0
  8. package/dist/auvyx.min.css +2 -0
  9. package/dist/auvyx.min.js +19 -0
  10. package/dist/custom-elements.json +948 -0
  11. package/dist/elements/calendar.min.js +2 -0
  12. package/dist/elements/context-menu.min.js +2 -0
  13. package/dist/elements/data-table.min.js +2 -0
  14. package/dist/elements/date-picker.min.js +2 -0
  15. package/dist/elements/index.min.js +2 -0
  16. package/dist/elements/menu.min.js +2 -0
  17. package/dist/elements/resizable.min.js +2 -0
  18. package/dist/js/accordion.min.js +2 -0
  19. package/dist/js/calendar.min.js +2 -0
  20. package/dist/js/combobox.min.js +2 -0
  21. package/dist/js/command.min.js +2 -0
  22. package/dist/js/context-menu.min.js +2 -0
  23. package/dist/js/copy.min.js +2 -0
  24. package/dist/js/data-table.min.js +2 -0
  25. package/dist/js/date-picker.min.js +2 -0
  26. package/dist/js/drawer.min.js +2 -0
  27. package/dist/js/dropdown-menu.min.js +2 -0
  28. package/dist/js/manifest.json +114 -0
  29. package/dist/js/menu.min.js +2 -0
  30. package/dist/js/popover.min.js +2 -0
  31. package/dist/js/resizable.min.js +2 -0
  32. package/dist/js/select.min.js +2 -0
  33. package/dist/js/sidebar.min.js +2 -0
  34. package/dist/js/slider.min.js +2 -0
  35. package/dist/js/tabs.min.js +2 -0
  36. package/dist/js/toast.min.js +19 -0
  37. package/dist/styles/auvyx-luma.min.css +3 -0
  38. package/dist/styles/auvyx-lyra.min.css +3 -0
  39. package/dist/styles/auvyx-maia.min.css +3 -0
  40. package/dist/styles/auvyx-mira.min.css +3 -0
  41. package/dist/styles/auvyx-nova.min.css +3 -0
  42. package/dist/styles/auvyx-rhea.min.css +3 -0
  43. package/dist/styles/auvyx-sera.min.css +3 -0
  44. package/dist/styles/auvyx-vega.min.css +3 -0
  45. package/dist/types/elements.d.ts +262 -0
  46. package/dist/types/react.d.ts +181 -0
  47. package/dist/types/vue.d.ts +155 -0
  48. package/dist/ui/accordion.css +91 -0
  49. package/dist/ui/accordion.js +249 -0
  50. package/dist/ui/accordion.native.css +24 -0
  51. package/dist/ui/alert.css +119 -0
  52. package/dist/ui/aspect-ratio.css +38 -0
  53. package/dist/ui/attachment.css +211 -0
  54. package/dist/ui/avatar.css +204 -0
  55. package/dist/ui/badge.css +183 -0
  56. package/dist/ui/base.css +1200 -0
  57. package/dist/ui/breadcrumb.css +90 -0
  58. package/dist/ui/bubble.css +171 -0
  59. package/dist/ui/button-group.css +110 -0
  60. package/dist/ui/button.css +328 -0
  61. package/dist/ui/calendar.css +260 -0
  62. package/dist/ui/calendar.js +317 -0
  63. package/dist/ui/card.css +126 -0
  64. package/dist/ui/carousel.css +172 -0
  65. package/dist/ui/chart.css +130 -0
  66. package/dist/ui/checkbox.css +119 -0
  67. package/dist/ui/code-block.css +235 -0
  68. package/dist/ui/combobox.css +500 -0
  69. package/dist/ui/combobox.js +757 -0
  70. package/dist/ui/command.css +366 -0
  71. package/dist/ui/command.js +382 -0
  72. package/dist/ui/context-menu.css +17 -0
  73. package/dist/ui/context-menu.js +52 -0
  74. package/dist/ui/copy.js +56 -0
  75. package/dist/ui/data-table.css +114 -0
  76. package/dist/ui/data-table.js +140 -0
  77. package/dist/ui/date-picker.css +14 -0
  78. package/dist/ui/date-picker.js +101 -0
  79. package/dist/ui/dialog.css +363 -0
  80. package/dist/ui/dialog.native.css +6 -0
  81. package/dist/ui/drawer.css +238 -0
  82. package/dist/ui/drawer.js +265 -0
  83. package/dist/ui/dropdown-menu.css +193 -0
  84. package/dist/ui/dropdown-menu.js +388 -0
  85. package/dist/ui/empty.css +111 -0
  86. package/dist/ui/field.css +293 -0
  87. package/dist/ui/hover-card.css +85 -0
  88. package/dist/ui/input-group.css +269 -0
  89. package/dist/ui/input-otp.css +101 -0
  90. package/dist/ui/input.css +117 -0
  91. package/dist/ui/item.css +223 -0
  92. package/dist/ui/kbd.css +50 -0
  93. package/dist/ui/label.css +48 -0
  94. package/dist/ui/manifest.json +667 -0
  95. package/dist/ui/marker.css +66 -0
  96. package/dist/ui/menu.js +161 -0
  97. package/dist/ui/menubar.css +55 -0
  98. package/dist/ui/message-scroller.css +83 -0
  99. package/dist/ui/message.css +69 -0
  100. package/dist/ui/native-select.css +130 -0
  101. package/dist/ui/navigation-menu.css +166 -0
  102. package/dist/ui/popover.css +154 -0
  103. package/dist/ui/popover.js +268 -0
  104. package/dist/ui/popover.native.css +84 -0
  105. package/dist/ui/progress.css +29 -0
  106. package/dist/ui/questionnaire.css +188 -0
  107. package/dist/ui/radio-group.css +115 -0
  108. package/dist/ui/resizable.css +94 -0
  109. package/dist/ui/resizable.js +95 -0
  110. package/dist/ui/scroll-area.css +43 -0
  111. package/dist/ui/select.css +289 -0
  112. package/dist/ui/select.js +646 -0
  113. package/dist/ui/sheet.css +219 -0
  114. package/dist/ui/sidebar.css +716 -0
  115. package/dist/ui/sidebar.js +287 -0
  116. package/dist/ui/skeleton.css +13 -0
  117. package/dist/ui/slider.css +184 -0
  118. package/dist/ui/slider.js +206 -0
  119. package/dist/ui/switch.css +156 -0
  120. package/dist/ui/table.css +157 -0
  121. package/dist/ui/tabs.css +240 -0
  122. package/dist/ui/tabs.js +288 -0
  123. package/dist/ui/textarea.css +91 -0
  124. package/dist/ui/toast.css +110 -0
  125. package/dist/ui/toast.js +378 -0
  126. package/dist/ui/toggle-group.css +42 -0
  127. package/dist/ui/toggle.css +150 -0
  128. package/dist/ui/tooltip.css +319 -0
  129. package/dist/ui/trace.css +142 -0
  130. package/dist/ui/typography.css +184 -0
  131. package/dist/wc/accordion.min.js +2 -0
  132. package/dist/wc/combobox.min.js +2 -0
  133. package/dist/wc/command.min.js +2 -0
  134. package/dist/wc/drawer.min.js +2 -0
  135. package/dist/wc/dropdown-menu.min.js +2 -0
  136. package/dist/wc/manifest.json +154 -0
  137. package/dist/wc/popover.min.js +2 -0
  138. package/dist/wc/select.min.js +2 -0
  139. package/dist/wc/sidebar.min.js +2 -0
  140. package/dist/wc/slider.min.js +2 -0
  141. package/dist/wc/tabs.min.js +2 -0
  142. package/dist/wc/toast.min.js +19 -0
  143. package/package.json +62 -4
@@ -0,0 +1,319 @@
1
+ /* @auvyx/ui tooltip | order 37 */
2
+ @layer components {
3
+ [data-tooltip] {
4
+ position: relative;
5
+ &:before {
6
+ pointer-events: none;
7
+ visibility: hidden;
8
+ position: absolute;
9
+ z-index: 60;
10
+ display: block;
11
+ width: fit-content;
12
+ max-width: var(--container-xs);
13
+ transform-origin: var(--transform-origin);
14
+ --tw-scale-x: 95%;
15
+ --tw-scale-y: 95%;
16
+ --tw-scale-z: 95%;
17
+ scale: var(--tw-scale-x) var(--tw-scale-y);
18
+ overflow: hidden;
19
+ text-overflow: ellipsis;
20
+ white-space: nowrap;
21
+ opacity: 0%;
22
+ transition-property: all;
23
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
24
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
25
+ --tw-content: attr(data-tooltip);
26
+ content: var(--tw-content);
27
+ }
28
+ &:hover:before {
29
+ visibility: visible;
30
+ --tw-scale-x: 100%;
31
+ --tw-scale-y: 100%;
32
+ --tw-scale-z: 100%;
33
+ scale: var(--tw-scale-x) var(--tw-scale-y);
34
+ opacity: 100%;
35
+ }
36
+ &:focus-visible:not(:hover):before {
37
+ display: none;
38
+ }
39
+ &:not([data-side]), &[data-side='top'] {
40
+ &::before {
41
+ content: var(--tw-content);
42
+ bottom: 100%;
43
+ }
44
+ &::before {
45
+ content: var(--tw-content);
46
+ margin-bottom: calc(var(--spacing) * 1.5);
47
+ }
48
+ &::before {
49
+ content: var(--tw-content);
50
+ --tw-translate-y: calc(var(--spacing) * 2);
51
+ translate: var(--tw-translate-x) var(--tw-translate-y);
52
+ }
53
+ &:hover {
54
+ @media (hover: hover) {
55
+ &::before {
56
+ content: var(--tw-content);
57
+ --tw-translate-y: 0;
58
+ translate: var(--tw-translate-x) var(--tw-translate-y);
59
+ }
60
+ }
61
+ }
62
+ }
63
+ &[data-side='bottom'] {
64
+ &::before {
65
+ content: var(--tw-content);
66
+ top: 100%;
67
+ }
68
+ &::before {
69
+ content: var(--tw-content);
70
+ margin-top: calc(var(--spacing) * 1.5);
71
+ }
72
+ &::before {
73
+ content: var(--tw-content);
74
+ --tw-translate-y: calc(var(--spacing) * -2);
75
+ translate: var(--tw-translate-x) var(--tw-translate-y);
76
+ }
77
+ &:hover {
78
+ @media (hover: hover) {
79
+ &::before {
80
+ content: var(--tw-content);
81
+ --tw-translate-y: 0;
82
+ translate: var(--tw-translate-x) var(--tw-translate-y);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ &:not([data-side]), &[data-side='top'], &[data-side='bottom'] {
88
+ &[data-align='start'] {
89
+ &::before {
90
+ content: var(--tw-content);
91
+ left: 0;
92
+ }
93
+ }
94
+ &[data-align='end'] {
95
+ &::before {
96
+ content: var(--tw-content);
97
+ right: 0;
98
+ }
99
+ }
100
+ &:not([data-align]), &[data-align='center'] {
101
+ &::before {
102
+ content: var(--tw-content);
103
+ left: calc(1 / 2 * 100%);
104
+ }
105
+ &::before {
106
+ content: var(--tw-content);
107
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
108
+ translate: var(--tw-translate-x) var(--tw-translate-y);
109
+ }
110
+ }
111
+ }
112
+ &[data-side='left'] {
113
+ &::before {
114
+ content: var(--tw-content);
115
+ right: 100%;
116
+ }
117
+ &::before {
118
+ content: var(--tw-content);
119
+ margin-right: calc(var(--spacing) * 1.5);
120
+ }
121
+ &::before {
122
+ content: var(--tw-content);
123
+ --tw-translate-x: calc(var(--spacing) * 2);
124
+ translate: var(--tw-translate-x) var(--tw-translate-y);
125
+ }
126
+ &:hover {
127
+ @media (hover: hover) {
128
+ &::before {
129
+ content: var(--tw-content);
130
+ --tw-translate-x: 0;
131
+ translate: var(--tw-translate-x) var(--tw-translate-y);
132
+ }
133
+ }
134
+ }
135
+ }
136
+ &[data-side='right'] {
137
+ &::before {
138
+ content: var(--tw-content);
139
+ left: 100%;
140
+ }
141
+ &::before {
142
+ content: var(--tw-content);
143
+ margin-left: calc(var(--spacing) * 1.5);
144
+ }
145
+ &::before {
146
+ content: var(--tw-content);
147
+ --tw-translate-x: calc(var(--spacing) * -2);
148
+ translate: var(--tw-translate-x) var(--tw-translate-y);
149
+ }
150
+ &:hover {
151
+ @media (hover: hover) {
152
+ &::before {
153
+ content: var(--tw-content);
154
+ --tw-translate-x: 0;
155
+ translate: var(--tw-translate-x) var(--tw-translate-y);
156
+ }
157
+ }
158
+ }
159
+ }
160
+ &[data-side='inline-start'] {
161
+ &::before {
162
+ content: var(--tw-content);
163
+ right: 100%;
164
+ }
165
+ &::before {
166
+ content: var(--tw-content);
167
+ margin-right: calc(var(--spacing) * 1.5);
168
+ }
169
+ &::before {
170
+ content: var(--tw-content);
171
+ --tw-translate-x: calc(var(--spacing) * 2);
172
+ translate: var(--tw-translate-x) var(--tw-translate-y);
173
+ }
174
+ &:hover {
175
+ @media (hover: hover) {
176
+ &::before {
177
+ content: var(--tw-content);
178
+ --tw-translate-x: 0;
179
+ translate: var(--tw-translate-x) var(--tw-translate-y);
180
+ }
181
+ }
182
+ }
183
+ }
184
+ &[data-side='inline-start']:dir(rtl) {
185
+ &::before {
186
+ content: var(--tw-content);
187
+ right: auto;
188
+ }
189
+ &::before {
190
+ content: var(--tw-content);
191
+ left: 100%;
192
+ }
193
+ &::before {
194
+ content: var(--tw-content);
195
+ margin-right: 0;
196
+ }
197
+ &::before {
198
+ content: var(--tw-content);
199
+ margin-left: calc(var(--spacing) * 1.5);
200
+ }
201
+ &::before {
202
+ content: var(--tw-content);
203
+ --tw-translate-x: calc(var(--spacing) * -2);
204
+ translate: var(--tw-translate-x) var(--tw-translate-y);
205
+ }
206
+ &:hover {
207
+ @media (hover: hover) {
208
+ &::before {
209
+ content: var(--tw-content);
210
+ --tw-translate-x: 0;
211
+ translate: var(--tw-translate-x) var(--tw-translate-y);
212
+ }
213
+ }
214
+ }
215
+ }
216
+ &[data-side='inline-end'] {
217
+ &::before {
218
+ content: var(--tw-content);
219
+ left: 100%;
220
+ }
221
+ &::before {
222
+ content: var(--tw-content);
223
+ margin-left: calc(var(--spacing) * 1.5);
224
+ }
225
+ &::before {
226
+ content: var(--tw-content);
227
+ --tw-translate-x: calc(var(--spacing) * -2);
228
+ translate: var(--tw-translate-x) var(--tw-translate-y);
229
+ }
230
+ &:hover {
231
+ @media (hover: hover) {
232
+ &::before {
233
+ content: var(--tw-content);
234
+ --tw-translate-x: 0;
235
+ translate: var(--tw-translate-x) var(--tw-translate-y);
236
+ }
237
+ }
238
+ }
239
+ }
240
+ &[data-side='inline-end']:dir(rtl) {
241
+ &::before {
242
+ content: var(--tw-content);
243
+ right: 100%;
244
+ }
245
+ &::before {
246
+ content: var(--tw-content);
247
+ left: auto;
248
+ }
249
+ &::before {
250
+ content: var(--tw-content);
251
+ margin-right: calc(var(--spacing) * 1.5);
252
+ }
253
+ &::before {
254
+ content: var(--tw-content);
255
+ margin-left: 0;
256
+ }
257
+ &::before {
258
+ content: var(--tw-content);
259
+ --tw-translate-x: calc(var(--spacing) * 2);
260
+ translate: var(--tw-translate-x) var(--tw-translate-y);
261
+ }
262
+ &:hover {
263
+ @media (hover: hover) {
264
+ &::before {
265
+ content: var(--tw-content);
266
+ --tw-translate-x: 0;
267
+ translate: var(--tw-translate-x) var(--tw-translate-y);
268
+ }
269
+ }
270
+ }
271
+ }
272
+ &[data-side='left'], &[data-side='right'], &[data-side='inline-start'], &[data-side='inline-end'] {
273
+ &[data-align='start'] {
274
+ &::before {
275
+ content: var(--tw-content);
276
+ top: 0;
277
+ }
278
+ }
279
+ &[data-align='end'] {
280
+ &::before {
281
+ content: var(--tw-content);
282
+ bottom: 0;
283
+ }
284
+ }
285
+ &:not([data-align]), &[data-align='center'] {
286
+ &::before {
287
+ content: var(--tw-content);
288
+ top: calc(1 / 2 * 100%);
289
+ }
290
+ &::before {
291
+ content: var(--tw-content);
292
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
293
+ translate: var(--tw-translate-x) var(--tw-translate-y);
294
+ }
295
+ }
296
+ }
297
+ }
298
+ }
299
+
300
+ @layer components {
301
+ [data-tooltip]::before {
302
+ border-radius: var(--radius-md);
303
+ background-color: var(--color-foreground);
304
+ padding-inline: calc(var(--spacing) * 3);
305
+ padding-block: calc(var(--spacing) * 1.5);
306
+ font-size: var(--text-xs);
307
+ line-height: var(--tw-leading, var(--text-xs--line-height));
308
+ color: var(--color-background);
309
+ }
310
+ [data-tooltip][data-arrow]::after {
311
+ position: absolute;
312
+ z-index: 60;
313
+ width: calc(var(--spacing) * 2.5);
314
+ height: calc(var(--spacing) * 2.5);
315
+ rotate: 45deg;
316
+ border-radius: 2px;
317
+ background-color: var(--color-foreground);
318
+ }
319
+ }
@@ -0,0 +1,142 @@
1
+ /* @auvyx/ui trace | order 50 */
2
+ @layer components {
3
+ .trace {
4
+ margin: 0;
5
+ display: flex;
6
+ width: 100%;
7
+ min-width: 0;
8
+ list-style-type: none;
9
+ flex-direction: column;
10
+ padding: 0;
11
+ :is(li, summary)[data-status], > li:not(:has(> details)), summary {
12
+ display: flex;
13
+ width: fit-content;
14
+ max-width: 100%;
15
+ min-width: 0;
16
+ align-items: center;
17
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
18
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
19
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
20
+ }
21
+ > li > :is(a, button) {
22
+ display: flex;
23
+ width: fit-content;
24
+ max-width: 100%;
25
+ min-width: 0;
26
+ cursor: pointer;
27
+ align-items: center;
28
+ text-align: start;
29
+ --tw-outline-style: none;
30
+ outline-style: none;
31
+ }
32
+ :is(li, summary) > svg {
33
+ pointer-events: none;
34
+ display: flex;
35
+ flex-shrink: 0;
36
+ }
37
+ :is(li, summary) > span {
38
+ min-width: 0;
39
+ overflow: hidden;
40
+ text-overflow: ellipsis;
41
+ white-space: nowrap;
42
+ }
43
+ :is(li, summary) > small {
44
+ flex-shrink: 0;
45
+ --tw-numeric-spacing: tabular-nums;
46
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
47
+ }
48
+ [data-status='pending'] {
49
+ opacity: 60%;
50
+ }
51
+ details {
52
+ display: flex;
53
+ width: 100%;
54
+ min-width: 0;
55
+ flex-direction: column;
56
+ > summary {
57
+ cursor: pointer;
58
+ list-style-type: none;
59
+ --tw-outline-style: none;
60
+ outline-style: none;
61
+ &::-webkit-details-marker {
62
+ display: none;
63
+ }
64
+ > svg:first-child {
65
+ transition-property: transform, translate, scale, rotate;
66
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
67
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
68
+ }
69
+ }
70
+ &[open] > summary > svg:first-child {
71
+ rotate: 90deg;
72
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
73
+ rotate: calc(90deg * -1);
74
+ }
75
+ }
76
+ > :not(summary) {
77
+ min-width: 0;
78
+ overflow-wrap: break-word;
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ @layer components {
85
+ .trace {
86
+ gap: calc(var(--spacing) * 2);
87
+ }
88
+ .trace :is(li, summary) {
89
+ gap: calc(var(--spacing) * 2);
90
+ font-size: var(--text-sm);
91
+ line-height: var(--tw-leading, var(--text-sm--line-height));
92
+ color: var(--color-muted-foreground);
93
+ }
94
+ .trace > li > :is(a, button), .trace summary {
95
+ gap: var(--spacing);
96
+ border-radius: var(--auvyx-r-control);
97
+ &:hover {
98
+ @media (hover: hover) {
99
+ color: var(--color-foreground);
100
+ }
101
+ }
102
+ &:focus-visible {
103
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
104
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
105
+ }
106
+ &:focus-visible {
107
+ --tw-ring-color: var(--color-ring);
108
+ @supports (color: color-mix(in lab, red, red)) {
109
+ --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);
110
+ }
111
+ }
112
+ }
113
+ .trace [data-status='error'] {
114
+ color: var(--color-destructive);
115
+ }
116
+ .trace :is(li, summary) > svg {
117
+ width: calc(var(--spacing) * 4);
118
+ height: calc(var(--spacing) * 4);
119
+ }
120
+ .trace :is(li, summary) > small {
121
+ font-size: var(--text-sm);
122
+ line-height: var(--tw-leading, var(--text-sm--line-height));
123
+ color: var(--color-muted-foreground);
124
+ @supports (color: color-mix(in lab, red, red)) {
125
+ color: color-mix(in oklab, var(--color-muted-foreground) 70%, transparent);
126
+ }
127
+ }
128
+ .trace details > :not(summary) {
129
+ margin-inline-start: calc(calc(var(--spacing) * 2) - 1px);
130
+ margin-top: calc(var(--spacing) * 2);
131
+ margin-bottom: var(--spacing);
132
+ border-inline-start-style: var(--tw-border-style);
133
+ border-inline-start-width: 1px;
134
+ padding-inline-start: calc(var(--spacing) * 4);
135
+ padding-inline-end: var(--spacing);
136
+ font-size: var(--text-sm);
137
+ line-height: var(--tw-leading, var(--text-sm--line-height));
138
+ --tw-leading: var(--leading-relaxed);
139
+ line-height: var(--leading-relaxed);
140
+ color: var(--color-muted-foreground);
141
+ }
142
+ }
@@ -0,0 +1,184 @@
1
+ /* @auvyx/ui typography | order 60 */
2
+ @layer components {
3
+ .typography {
4
+ color: var(--color-foreground);
5
+ :is(h1) {
6
+ scroll-margin: calc(var(--spacing) * 20);
7
+ font-size: var(--text-4xl);
8
+ line-height: var(--tw-leading, var(--text-4xl--line-height));
9
+ --tw-font-weight: var(--font-weight-extrabold);
10
+ font-weight: var(--font-weight-extrabold);
11
+ --tw-tracking: var(--tracking-tight);
12
+ letter-spacing: var(--tracking-tight);
13
+ text-wrap: balance;
14
+ }
15
+ :is(h2) {
16
+ margin-top: calc(var(--spacing) * 10);
17
+ scroll-margin: calc(var(--spacing) * 20);
18
+ border-bottom-style: var(--tw-border-style);
19
+ border-bottom-width: 1px;
20
+ padding-bottom: calc(var(--spacing) * 2);
21
+ font-size: var(--text-3xl);
22
+ line-height: var(--tw-leading, var(--text-3xl--line-height));
23
+ --tw-font-weight: var(--font-weight-semibold);
24
+ font-weight: var(--font-weight-semibold);
25
+ --tw-tracking: var(--tracking-tight);
26
+ letter-spacing: var(--tracking-tight);
27
+ &:first-child {
28
+ margin-top: 0;
29
+ }
30
+ }
31
+ :is(h3) {
32
+ margin-top: calc(var(--spacing) * 8);
33
+ scroll-margin: calc(var(--spacing) * 20);
34
+ font-size: var(--text-2xl);
35
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
36
+ --tw-font-weight: var(--font-weight-semibold);
37
+ font-weight: var(--font-weight-semibold);
38
+ --tw-tracking: var(--tracking-tight);
39
+ letter-spacing: var(--tracking-tight);
40
+ }
41
+ :is(h4) {
42
+ margin-top: calc(var(--spacing) * 6);
43
+ scroll-margin: calc(var(--spacing) * 20);
44
+ font-size: var(--text-xl);
45
+ line-height: var(--tw-leading, var(--text-xl--line-height));
46
+ --tw-font-weight: var(--font-weight-semibold);
47
+ font-weight: var(--font-weight-semibold);
48
+ --tw-tracking: var(--tracking-tight);
49
+ letter-spacing: var(--tracking-tight);
50
+ }
51
+ p {
52
+ --tw-leading: calc(var(--spacing) * 7);
53
+ line-height: calc(var(--spacing) * 7);
54
+ &:not(:first-child) {
55
+ margin-top: calc(var(--spacing) * 6);
56
+ }
57
+ }
58
+ blockquote {
59
+ margin-top: calc(var(--spacing) * 6);
60
+ border-inline-start-style: var(--tw-border-style);
61
+ border-inline-start-width: 2px;
62
+ padding-inline-start: calc(var(--spacing) * 6);
63
+ font-style: italic;
64
+ }
65
+ ul {
66
+ margin-block: calc(var(--spacing) * 6);
67
+ margin-inline-start: calc(var(--spacing) * 6);
68
+ list-style-type: disc;
69
+ &>li {
70
+ margin-top: calc(var(--spacing) * 2);
71
+ }
72
+ }
73
+ ol {
74
+ margin-block: calc(var(--spacing) * 6);
75
+ margin-inline-start: calc(var(--spacing) * 6);
76
+ list-style-type: decimal;
77
+ &>li {
78
+ margin-top: calc(var(--spacing) * 2);
79
+ }
80
+ }
81
+ a {
82
+ --tw-font-weight: var(--font-weight-medium);
83
+ font-weight: var(--font-weight-medium);
84
+ color: var(--color-primary);
85
+ text-decoration-line: underline;
86
+ text-underline-offset: 4px;
87
+ }
88
+ :not(pre) > code {
89
+ position: relative;
90
+ border-radius: 0.25rem;
91
+ background-color: var(--color-muted);
92
+ padding-inline: 0.3rem;
93
+ padding-block: 0.2rem;
94
+ font-family: var(--font-mono);
95
+ font-size: var(--text-sm);
96
+ line-height: var(--tw-leading, var(--text-sm--line-height));
97
+ --tw-font-weight: var(--font-weight-semibold);
98
+ font-weight: var(--font-weight-semibold);
99
+ }
100
+ pre {
101
+ margin-block: calc(var(--spacing) * 6);
102
+ overflow-x: auto;
103
+ border-radius: var(--auvyx-r-surface);
104
+ background-color: var(--color-muted);
105
+ padding: calc(var(--spacing) * 4);
106
+ font-family: var(--font-mono);
107
+ font-size: var(--text-sm);
108
+ line-height: var(--tw-leading, var(--text-sm--line-height));
109
+ }
110
+ hr {
111
+ margin-block: calc(var(--spacing) * 8);
112
+ }
113
+ table {
114
+ margin-block: calc(var(--spacing) * 6);
115
+ width: 100%;
116
+ font-size: var(--text-sm);
117
+ line-height: var(--tw-leading, var(--text-sm--line-height));
118
+ }
119
+ th {
120
+ border-style: var(--tw-border-style);
121
+ border-width: 1px;
122
+ padding-inline: calc(var(--spacing) * 4);
123
+ padding-block: calc(var(--spacing) * 2);
124
+ text-align: start;
125
+ --tw-font-weight: var(--font-weight-bold);
126
+ font-weight: var(--font-weight-bold);
127
+ &[align=center] {
128
+ text-align: center;
129
+ }
130
+ &[align=right] {
131
+ text-align: end;
132
+ }
133
+ }
134
+ td {
135
+ border-style: var(--tw-border-style);
136
+ border-width: 1px;
137
+ padding-inline: calc(var(--spacing) * 4);
138
+ padding-block: calc(var(--spacing) * 2);
139
+ text-align: start;
140
+ &[align=center] {
141
+ text-align: center;
142
+ }
143
+ &[align=right] {
144
+ text-align: end;
145
+ }
146
+ }
147
+ tr {
148
+ margin: 0;
149
+ border-top-style: var(--tw-border-style);
150
+ border-top-width: 1px;
151
+ padding: 0;
152
+ &:nth-child(even) {
153
+ background-color: var(--color-muted);
154
+ }
155
+ }
156
+ p[data-variant='lead'] {
157
+ font-size: var(--text-xl);
158
+ line-height: var(--tw-leading, var(--text-xl--line-height));
159
+ color: var(--color-muted-foreground);
160
+ }
161
+ p[data-variant='large'] {
162
+ font-size: var(--text-lg);
163
+ line-height: var(--tw-leading, var(--text-lg--line-height));
164
+ --tw-font-weight: var(--font-weight-semibold);
165
+ font-weight: var(--font-weight-semibold);
166
+ }
167
+ p[data-variant='muted'] {
168
+ font-size: var(--text-sm);
169
+ line-height: var(--tw-leading, var(--text-sm--line-height));
170
+ color: var(--color-muted-foreground);
171
+ }
172
+ small {
173
+ font-size: var(--text-sm);
174
+ line-height: var(--tw-leading, var(--text-sm--line-height));
175
+ --tw-leading: 1;
176
+ line-height: 1;
177
+ --tw-font-weight: var(--font-weight-medium);
178
+ font-weight: var(--font-weight-medium);
179
+ }
180
+ > :is(h1, h2, h3, h4):first-child {
181
+ margin-top: 0;
182
+ }
183
+ }
184
+ }
@@ -0,0 +1,2 @@
1
+ /*! @auvyx/ui v0.1.0 | MIT | based on Basecoat (MIT) */
2
+ window.basecoat||(()=>{const l={};let a=null;const m=(t,o,i)=>{const n=typeof o=="object"?o:{selector:o,init:i};l[t]={selector:n.selector,init:n.init,refresh:n.refresh}},e=(t,o)=>{const i=l[o];if(i)try{i.init(t),t.hasAttribute(`data-${o}-initialized`)&&(t.dataset.basecoatComponent=o)}catch(n){if(console.error(`Failed to initialize ${o}:`,n),typeof t._destroy=="function")try{t._destroy()}catch(d){console.error(`Failed to clean up ${o} after initialization error:`,d)}delete t._destroy,t.removeAttribute(`data-${o}-initialized`),delete t.dataset.basecoatComponent}},r=t=>{if(!t||t.nodeType!==Node.ELEMENT_NODE)return;const o=t.dataset?.basecoatComponent;if(typeof t._destroy=="function")try{t._destroy()}catch(i){console.error("Failed to destroy Basecoat component:",i)}delete t._destroy,o&&t.removeAttribute(`data-${o}-initialized`),delete t.dataset.basecoatComponent},s=t=>{t.nodeType===Node.ELEMENT_NODE&&(t.isConnected||(t.dataset?.basecoatComponent&&r(t),t.querySelectorAll("[data-basecoat-component]").forEach(r)))},u=t=>Array.from(new Set(t)),f=(t,o,i=!1)=>{const n=Array.from(document.querySelectorAll(o));return i&&n.push(...document.querySelectorAll(`[data-basecoat-component="${t}"]`)),u(n)},y=(t={})=>{const o=t.force===!0;Object.entries(l).forEach(([i,{selector:n}])=>{f(i,n,o).forEach(d=>{const g=d.dataset?.basecoatComponent===i;o&&r(d),(g||d.matches(n))&&e(d,i)})})},c=t=>{t.nodeType===Node.ELEMENT_NODE&&Object.entries(l).forEach(([o,{selector:i}])=>{t.matches(i)&&e(t,o),t.querySelectorAll(i).forEach(n=>e(n,o))})},p=t=>{if(!t)return;if(typeof t.refresh=="function"){t.refresh();return}const o=t.dataset?.basecoatComponent,i=o?l[o]:null;i?.refresh&&i.refresh(t)},h=()=>{a||(a=new MutationObserver(t=>{t.forEach(o=>{o.addedNodes.forEach(c),o.removedNodes.forEach(s)})}),a.observe(document.body,{childList:!0,subtree:!0}))},b=()=>{a&&(a.disconnect(),a=null)},C=(t,o={})=>{const i=l[t];if(!i){console.warn(`Component '${t}' not found in registry`);return}const n=o.force===!0;f(t,i.selector,n).forEach(d=>{const g=d.dataset?.basecoatComponent===t;n&&r(d),(g||d.matches(i.selector))&&e(d,t)})},_=(t={})=>{y(t)},v=t=>{const o=t==="dark";document.documentElement.classList.toggle("dark",o);try{localStorage.setItem("themeMode",o?"dark":"light")}catch{}document.dispatchEvent(new CustomEvent("basecoat:themechange",{detail:{mode:o?"dark":"light"}}))},E=()=>document.documentElement.classList.contains("dark")?"dark":"light";window.basecoat={register:m,init:C,initAll:_,refresh:p,start:h,stop:b,theme:{get:E,set:v,toggle:()=>v(E()==="dark"?"light":"dark")}},document.addEventListener("DOMContentLoaded",()=>{y(),h()})})(),(()=>{const l=new WeakMap,a=s=>{const u=s.querySelector(":scope > summary");return s.getAttribute("aria-disabled")==="true"||s.dataset.disabled==="true"||u?.getAttribute("aria-disabled")==="true"},m=s=>s.hasAttribute("data-multiple"),e=(s,u)=>{m(s)||!u.open||s.querySelectorAll(":scope > details[open]").forEach(f=>{f!==u&&(f.open=!1)})},r=s=>{if(s.dataset.accordionInitialized)return;const u=c=>{const h=c.target.closest("summary")?.closest("details");!h||h.parentElement!==s||!a(h)||c.preventDefault()},f=c=>{if(c.key!=="Enter"&&c.key!==" ")return;const h=c.target.closest("summary")?.closest("details");!h||h.parentElement!==s||!a(h)||c.preventDefault()},y=c=>{const p=c.target;if(p.parentElement===s){if(a(p)){p.open=!1;return}e(s,p)}};s.addEventListener("click",u),s.addEventListener("keydown",f),s.addEventListener("toggle",y,!0),s.querySelectorAll(":scope > details[open]").forEach(c=>e(s,c)),l.set(s,{handleClick:u,handleToggle:y}),s._destroy=()=>{s.removeEventListener("click",u),s.removeEventListener("keydown",f),s.removeEventListener("toggle",y,!0),l.delete(s)},s.dataset.accordionInitialized="true",s.dispatchEvent(new CustomEvent("basecoat:initialized"))};window.basecoat&&window.basecoat.register("accordion",".accordion:not([data-accordion-initialized])",r)})(),(()=>{var l=class extends HTMLElement{static observedAttributes=["value"];static relayed=["change"];static relayNative=!1;connectedCallback(){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.isConnected&&this.connectedCallback(),{once:!0});return}this.setup(),this._children=new MutationObserver(()=>{if(this.querySelector(`:scope > ${this.constructor.rootSelector}`)===this.root)return;const e=this.root?this.snapshot():void 0;this.teardown(),this.setup(e)}),this._children.observe(this,{childList:!0})}disconnectedCallback(){this._children?.disconnect(),this.teardown()}setup(e){if(this.root=this.querySelector(`:scope > ${this.constructor.rootSelector}`),!!this.root){window.basecoat?.init(this.constructor.component),this._relay=r=>{r.target!==this.root||!this.constructor.relayNative&&!(r instanceof CustomEvent)||(r.stopPropagation(),this._silent||this.emit(r.type,{value:this.value}))};for(const r of this.constructor.relayed)this.root.addEventListener(r,this._relay);this.attach?.(),e!==void 0?this.restore(e):this.applyInitial()}}teardown(){if(this.detach?.(),!!this.root){for(const e of this.constructor.relayed)this.root.removeEventListener(e,this._relay);this.root._destroy?.(),delete this.root.dataset[`${this.constructor.component.replace(/-(\w)/g,(e,r)=>r.toUpperCase())}Initialized`],this.root=null}}applyInitial(){const e=this._pending!==void 0?this._pending:this.getAttribute("value");this._pending=void 0,e!==null&&(this.value=e)}snapshot(){return this.value}restore(e){e!==null&&(this.value=e)}attributeChangedCallback(e,r,s){e==="value"&&this.root&&s!==null&&s!==this.value&&(this.value=s)}defer(e){return this.root?!1:(this._pending=e,!0)}silently(e){this._silent=!0;try{e()}finally{this._silent=!1}}emit(e,r){this.dispatchEvent(new CustomEvent(e,{detail:r,bubbles:!0}))}reportValue(){const e=this.value;JSON.stringify(e)!==JSON.stringify(this._last)&&(this._last=e,this._silent||this.emit("change",{value:e}))}},a=e=>e.dataset.value??(e.id||String([...e.parentElement.children].filter(r=>r.localName==="details").indexOf(e))),m=class extends l{static component="accordion";static rootSelector=".accordion";static relayed=[];get items(){return this.root?[...this.root.querySelectorAll(":scope > details")]:[]}get multiple(){return this.root?.hasAttribute("data-multiple")??!1}attach(){this._last=this.value,this._onToggle=e=>{e.target.parentElement===this.root&&this.reportValue()},this.root.addEventListener("toggle",this._onToggle,!0)}detach(){this.root?.removeEventListener("toggle",this._onToggle,!0)}get value(){const e=this.items.filter(r=>r.open).map(a);return this.multiple?e:e[0]??null}set value(e){if(this.defer(e))return;const r=new Set((Array.isArray(e)?e:[e]).filter(s=>s!=null).map(String));for(const s of this.items)s.open=r.has(a(s));this._last=this.value}};customElements.get("auvyx-accordion")||customElements.define("auvyx-accordion",m)})();