fulldev-ui 0.11.1 → 0.13.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 (166) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/package.json +29 -21
  3. package/public/r/accordion.json +2 -2
  4. package/public/r/alert-dialog.json +2 -2
  5. package/public/r/aspect-ratio.json +23 -0
  6. package/public/r/attachment.json +66 -0
  7. package/public/r/banner.json +0 -4
  8. package/public/r/blocks-1.json +1 -1
  9. package/public/r/button-group.json +41 -0
  10. package/public/r/button.json +1 -1
  11. package/public/r/carousel.json +8 -8
  12. package/public/r/collapsible.json +2 -2
  13. package/public/r/combobox.json +6 -5
  14. package/public/r/command.json +5 -4
  15. package/public/r/components.json +8 -0
  16. package/public/r/dialog.json +2 -2
  17. package/public/r/doc-1.json +1 -1
  18. package/public/r/drawer.json +109 -0
  19. package/public/r/dropdown-menu.json +4 -4
  20. package/public/r/hover-card.json +4 -4
  21. package/public/r/init.json +1 -1
  22. package/public/r/input-group.json +0 -1
  23. package/public/r/layout.json +3 -0
  24. package/public/r/navigation-menu.json +3 -3
  25. package/public/r/pagination.json +59 -0
  26. package/public/r/popover.json +3 -3
  27. package/public/r/radio-group.json +2 -2
  28. package/public/r/registry.json +418 -28
  29. package/public/r/resizable.json +36 -0
  30. package/public/r/reviews-3.json +1 -1
  31. package/public/r/select.json +3 -3
  32. package/public/r/sheet.json +2 -2
  33. package/public/r/sidebar-1.json +1 -1
  34. package/public/r/sidebar.json +1 -1
  35. package/public/r/slider.json +2 -2
  36. package/public/r/switch.json +2 -2
  37. package/public/r/tabs.json +4 -4
  38. package/public/r/toast.json +80 -0
  39. package/public/r/toggle-group.json +34 -0
  40. package/public/r/toggle.json +2 -2
  41. package/public/r/tooltip.json +3 -3
  42. package/public/r/typography.json +21 -16
  43. package/registry/init/global.css +2 -0
  44. package/registry.json +384 -23
  45. package/src/components/blocks/blocks-1.astro +23 -23
  46. package/src/components/blocks/doc-1.astro +116 -26
  47. package/src/components/blocks/reviews-3.astro +1 -1
  48. package/src/components/blocks/sidebar-1.astro +46 -44
  49. package/src/components/ui/accordion/accordion.astro +8 -2
  50. package/src/components/ui/alert-dialog/alert-dialog.astro +8 -2
  51. package/src/components/ui/aspect-ratio/aspect-ratio.astro +25 -0
  52. package/src/components/ui/aspect-ratio/index.ts +1 -0
  53. package/src/components/ui/attachment/attachment-action.astro +20 -0
  54. package/src/components/ui/attachment/attachment-actions.astro +20 -0
  55. package/src/components/ui/attachment/attachment-content.astro +20 -0
  56. package/src/components/ui/attachment/attachment-description.astro +20 -0
  57. package/src/components/ui/attachment/attachment-group.astro +20 -0
  58. package/src/components/ui/attachment/attachment-media.astro +36 -0
  59. package/src/components/ui/attachment/attachment-title.astro +20 -0
  60. package/src/components/ui/attachment/attachment-trigger.astro +24 -0
  61. package/src/components/ui/attachment/attachment.astro +52 -0
  62. package/src/components/ui/attachment/index.ts +9 -0
  63. package/src/components/ui/button/button.astro +4 -1
  64. package/src/components/ui/button-group/button-group-separator.astro +29 -0
  65. package/src/components/ui/button-group/button-group-text.astro +20 -0
  66. package/src/components/ui/button-group/button-group-variants.ts +20 -0
  67. package/src/components/ui/button-group/button-group.astro +30 -0
  68. package/src/components/ui/button-group/index.ts +7 -0
  69. package/src/components/ui/carousel/carousel-content.astro +11 -13
  70. package/src/components/ui/carousel/carousel-item.astro +2 -5
  71. package/src/components/ui/carousel/carousel-next.astro +0 -3
  72. package/src/components/ui/carousel/carousel-previous.astro +0 -3
  73. package/src/components/ui/carousel/carousel.astro +19 -219
  74. package/src/components/ui/carousel/index.ts +1 -5
  75. package/src/components/ui/collapsible/collapsible.astro +8 -2
  76. package/src/components/ui/combobox/combobox-content.astro +1 -1
  77. package/src/components/ui/combobox/combobox-input.astro +11 -4
  78. package/src/components/ui/combobox/combobox-trigger.astro +7 -7
  79. package/src/components/ui/combobox/combobox.astro +9 -17
  80. package/src/components/ui/command/command-dialog.astro +1 -0
  81. package/src/components/ui/command/command.astro +40 -25
  82. package/src/components/ui/dialog/dialog.astro +8 -2
  83. package/src/components/ui/drawer/drawer-close.astro +13 -0
  84. package/src/components/ui/drawer/drawer-content.astro +43 -0
  85. package/src/components/ui/drawer/drawer-description.astro +17 -0
  86. package/src/components/ui/drawer/drawer-footer.astro +17 -0
  87. package/src/components/ui/drawer/drawer-header.astro +17 -0
  88. package/src/components/ui/drawer/drawer-indent-background.astro +11 -0
  89. package/src/components/ui/drawer/drawer-indent.astro +11 -0
  90. package/src/components/ui/drawer/drawer-overlay.astro +21 -0
  91. package/src/components/ui/drawer/drawer-popup.astro +36 -0
  92. package/src/components/ui/drawer/drawer-portal.astro +27 -0
  93. package/src/components/ui/drawer/drawer-provider.astro +11 -0
  94. package/src/components/ui/drawer/drawer-swipe-handle.astro +20 -0
  95. package/src/components/ui/drawer/drawer-title.astro +17 -0
  96. package/src/components/ui/drawer/drawer-trigger.astro +21 -0
  97. package/src/components/ui/drawer/drawer-viewport.astro +21 -0
  98. package/src/components/ui/drawer/drawer-virtual-keyboard-provider.astro +11 -0
  99. package/src/components/ui/drawer/drawer.astro +60 -0
  100. package/src/components/ui/drawer/index.ts +28 -0
  101. package/src/components/ui/dropdown-menu/dropdown-menu-content.astro +1 -1
  102. package/src/components/ui/dropdown-menu/dropdown-menu-item.astro +40 -9
  103. package/src/components/ui/dropdown-menu/dropdown-menu.astro +8 -2
  104. package/src/components/ui/hover-card/hover-card-content.astro +1 -1
  105. package/src/components/ui/hover-card/hover-card.astro +15 -4
  106. package/src/components/ui/navigation-menu/navigation-menu-positioner.astro +1 -1
  107. package/src/components/ui/navigation-menu/navigation-menu.astro +13 -4
  108. package/src/components/ui/pagination/index.ts +7 -0
  109. package/src/components/ui/pagination/pagination-content.astro +17 -0
  110. package/src/components/ui/pagination/pagination-ellipsis.astro +22 -0
  111. package/src/components/ui/pagination/pagination-item.astro +11 -0
  112. package/src/components/ui/pagination/pagination-link.astro +41 -0
  113. package/src/components/ui/pagination/pagination-next.astro +27 -0
  114. package/src/components/ui/pagination/pagination-previous.astro +27 -0
  115. package/src/components/ui/pagination/pagination.astro +19 -0
  116. package/src/components/ui/popover/popover-content.astro +2 -1
  117. package/src/components/ui/popover/popover.astro +9 -2
  118. package/src/components/ui/radio-group/radio-group.astro +8 -2
  119. package/src/components/ui/resizable/index.ts +4 -0
  120. package/src/components/ui/resizable/resizable-handle.astro +32 -0
  121. package/src/components/ui/resizable/resizable-panel.astro +36 -0
  122. package/src/components/ui/resizable/resizable.astro +43 -0
  123. package/src/components/ui/select/select-content.astro +2 -2
  124. package/src/components/ui/select/select.astro +11 -7
  125. package/src/components/ui/sheet/sheet.astro +8 -2
  126. package/src/components/ui/slider/slider.astro +9 -3
  127. package/src/components/ui/switch/switch.astro +8 -2
  128. package/src/components/ui/tabs/tabs-content.astro +1 -1
  129. package/src/components/ui/tabs/tabs-trigger.astro +3 -2
  130. package/src/components/ui/tabs/tabs.astro +8 -2
  131. package/src/components/ui/toast/index.ts +26 -0
  132. package/src/components/ui/toast/toast-action.astro +25 -0
  133. package/src/components/ui/toast/toast-close.astro +27 -0
  134. package/src/components/ui/toast/toast-content.astro +20 -0
  135. package/src/components/ui/toast/toast-description.astro +18 -0
  136. package/src/components/ui/toast/toast-icon.astro +37 -0
  137. package/src/components/ui/toast/toast-item.astro +28 -0
  138. package/src/components/ui/toast/toast-template.astro +11 -0
  139. package/src/components/ui/toast/toast-title.astro +17 -0
  140. package/src/components/ui/toast/toast-viewport.astro +20 -0
  141. package/src/components/ui/toast/toast.astro +51 -0
  142. package/src/components/ui/toast/toaster.astro +37 -0
  143. package/src/components/ui/toggle/toggle.astro +8 -2
  144. package/src/components/ui/toggle-group/index.ts +2 -0
  145. package/src/components/ui/toggle-group/toggle-group-item.astro +44 -0
  146. package/src/components/ui/toggle-group/toggle-group.astro +74 -0
  147. package/src/components/ui/tooltip/tooltip-content.astro +1 -1
  148. package/src/components/ui/tooltip/tooltip.astro +11 -2
  149. package/src/components/ui/typography/typeset.css +441 -0
  150. package/src/components/ui/typography/typography-a.astro +13 -22
  151. package/src/components/ui/typography/typography-blockquote.astro +4 -23
  152. package/src/components/ui/typography/typography-h1.astro +13 -26
  153. package/src/components/ui/typography/typography-h2.astro +13 -31
  154. package/src/components/ui/typography/typography-h3.astro +9 -26
  155. package/src/components/ui/typography/typography-h4.astro +9 -26
  156. package/src/components/ui/typography/typography-inline-code.astro +8 -27
  157. package/src/components/ui/typography/typography-lead.astro +4 -26
  158. package/src/components/ui/typography/typography-list-item.astro +4 -24
  159. package/src/components/ui/typography/typography-list.astro +10 -40
  160. package/src/components/ui/typography/typography-p.astro +9 -28
  161. package/src/components/ui/typography/typography-table-cell.astro +9 -40
  162. package/src/components/ui/typography/typography-table-head.astro +9 -35
  163. package/src/components/ui/typography/typography-table-row.astro +4 -23
  164. package/src/components/ui/typography/typography-table.astro +8 -28
  165. package/src/components/ui/typography/typography.astro +10 -283
  166. package/src/styles/global.css +2 -0
@@ -0,0 +1,441 @@
1
+ /*
2
+ * shadcn/typeset
3
+ * https://ui.shadcn.com/docs/typeset.
4
+ */
5
+
6
+ @layer components {
7
+ .typeset {
8
+ --typeset-font-body: inherit;
9
+ --typeset-font-heading: var(--font-heading);
10
+ --typeset-font-mono: var(--font-mono);
11
+ --typeset-size: 1em;
12
+ --typeset-leading: 1.75;
13
+ --typeset-flow: 1.25em;
14
+ }
15
+ }
16
+
17
+ @layer components {
18
+ .typeset {
19
+ font-family: var(--typeset-font-body);
20
+ font-size: calc(var(--typeset-size) * 1.125);
21
+ line-height: var(--typeset-leading);
22
+ color: var(--color-foreground, currentColor);
23
+ overflow-wrap: break-word;
24
+ margin-trim: block-start;
25
+
26
+ @media (min-width: 48rem), print {
27
+ font-size: var(--typeset-size);
28
+ }
29
+
30
+ --typeset-muted: var(
31
+ --color-muted-foreground,
32
+ color-mix(in oklab, currentColor 60%, transparent)
33
+ );
34
+ --typeset-rule: var(
35
+ --color-border,
36
+ color-mix(in oklab, currentColor 20%, transparent)
37
+ );
38
+ }
39
+
40
+ .typeset
41
+ *:not(
42
+ :where(
43
+ .not-typeset,
44
+ [data-not-typeset],
45
+ .not-typeset *,
46
+ [data-not-typeset] *
47
+ )
48
+ ) {
49
+ &:where(p) {
50
+ margin-block-start: var(--typeset-flow);
51
+ margin-block-end: 0;
52
+ }
53
+ &:where(h1, h2, h3, h4, h5, h6) {
54
+ color: var(--color-foreground, currentColor);
55
+ font-family: var(--typeset-font-heading);
56
+ font-weight: 600;
57
+ margin-block-end: 0;
58
+ }
59
+ &:where(h1) {
60
+ font-size: 1.75em;
61
+ line-height: 1.3;
62
+ margin-block-start: var(--typeset-flow);
63
+ }
64
+ &:where(h2) {
65
+ font-size: 1.25em;
66
+ line-height: 1.4;
67
+ margin-block-start: calc(var(--typeset-flow) * 1.4);
68
+ }
69
+ &:where(h3) {
70
+ font-size: 1.125em;
71
+ line-height: 1.45;
72
+ margin-block-start: var(--typeset-flow);
73
+ }
74
+ &:where(h4) {
75
+ font-size: 1em;
76
+ line-height: 1.5;
77
+ margin-block-start: var(--typeset-flow);
78
+ }
79
+ &:where(h5) {
80
+ font-size: 0.875em;
81
+ line-height: 1.5;
82
+ font-weight: 500;
83
+ color: var(--typeset-muted);
84
+ margin-block-start: calc(var(--typeset-flow) / 0.875);
85
+ }
86
+ &:where(h6) {
87
+ font-size: 0.8125em;
88
+ line-height: 1.5;
89
+ font-weight: 500;
90
+ letter-spacing: 0.08em;
91
+ text-transform: uppercase;
92
+ color: var(--typeset-muted);
93
+ margin-block-start: calc(var(--typeset-flow) / 0.8125);
94
+ }
95
+ &:where([id]) {
96
+ scroll-margin-block-start: var(--typeset-flow);
97
+ }
98
+ &:where(h1 + *, h2 + *, h3 + *, h4 + *, h5 + *, h6 + *) {
99
+ margin-block-start: 1em;
100
+ }
101
+ &:where(:is(h1, h2, h3, h4) :is(code)) {
102
+ font-size: 0.9em;
103
+ }
104
+ &:where(a) {
105
+ color: inherit;
106
+ font-weight: 500;
107
+ text-decoration-line: underline;
108
+ text-decoration-color: color-mix(in oklab, currentColor 30%, transparent);
109
+ }
110
+ &:where(a:hover) {
111
+ text-decoration-color: currentColor;
112
+ }
113
+ &:where(a:focus-visible) {
114
+ outline: 2px solid var(--color-ring, currentColor);
115
+ outline-offset: 2px;
116
+ border-radius: 0.125em;
117
+ }
118
+ &:where(:is(h1, h2, h3, h4, h5, h6) :is(a)) {
119
+ font-weight: inherit;
120
+ }
121
+ &:where(strong, b) {
122
+ font-weight: 600;
123
+ }
124
+ &:where(:is(h1, h2, h3, h4) :is(strong, b)) {
125
+ font-weight: 600;
126
+ }
127
+ &:where(mark) {
128
+ background-color: color-mix(
129
+ in oklab,
130
+ oklch(0.86 0.17 95) 40%,
131
+ transparent
132
+ );
133
+ color: inherit;
134
+ padding: 0.05em 0.15em;
135
+ border-radius: 0.2em;
136
+ }
137
+ &:where(abbr[title]) {
138
+ text-decoration-line: underline;
139
+ text-decoration-style: dotted;
140
+ text-underline-offset: 0.2em;
141
+ cursor: help;
142
+ }
143
+ &:where(del, s) {
144
+ color: var(--typeset-muted);
145
+ text-decoration-line: line-through;
146
+ }
147
+ &:where(sup, sub) {
148
+ font-size: 0.75em;
149
+ line-height: 0;
150
+ position: relative;
151
+ vertical-align: baseline;
152
+ }
153
+ &:where(sup) {
154
+ top: -0.5em;
155
+ }
156
+ &:where(sub) {
157
+ bottom: -0.25em;
158
+ }
159
+ &:where(sup a) {
160
+ text-decoration-line: none;
161
+ font-weight: 500;
162
+ }
163
+ &:where(ul) {
164
+ list-style-type: disc;
165
+ }
166
+ &:where(ol) {
167
+ list-style-type: decimal;
168
+ }
169
+ &:where(ul ul) {
170
+ list-style-type: circle;
171
+ }
172
+ &:where(ul ul ul) {
173
+ list-style-type: square;
174
+ }
175
+ &:where(ol[type="a" i]) {
176
+ list-style-type: lower-alpha;
177
+ }
178
+ &:where(ol[type="i" i]) {
179
+ list-style-type: lower-roman;
180
+ }
181
+ &:where(ol[type="A" s]) {
182
+ list-style-type: upper-alpha;
183
+ }
184
+ &:where(ol[type="I" s]) {
185
+ list-style-type: upper-roman;
186
+ }
187
+ &:where(ul, ol) {
188
+ margin-block-start: var(--typeset-flow);
189
+ margin-block-end: 0;
190
+ padding-inline-start: 1.5em;
191
+ }
192
+ &:where(li) {
193
+ margin-block-start: 0.5em;
194
+ padding-inline-start: 0.4em;
195
+ }
196
+ &:where(li > p, li > ul, li > ol) {
197
+ margin-block-start: 0.5em;
198
+ }
199
+ &:where(ul > li)::marker,
200
+ &:where(ol > li)::marker {
201
+ color: var(--typeset-muted);
202
+ }
203
+ &:where(ul.contains-task-list) {
204
+ list-style-type: none;
205
+ padding-inline-start: 0.25em;
206
+ }
207
+ &:where(li.task-list-item > input[type="checkbox"]) {
208
+ margin-inline-end: 0.5em;
209
+ vertical-align: -0.1em;
210
+ accent-color: var(--color-primary, currentColor);
211
+ }
212
+ &:where(details) {
213
+ margin-block-start: var(--typeset-flow);
214
+ margin-block-end: 0;
215
+ }
216
+ &:where(summary) {
217
+ cursor: pointer;
218
+ font-weight: 500;
219
+ }
220
+ &:where(summary)::marker {
221
+ color: var(--typeset-muted);
222
+ }
223
+ &:where(kbd) {
224
+ font-family: inherit;
225
+ font-size: 0.85em;
226
+ font-weight: 500;
227
+ border: 1px solid var(--typeset-rule);
228
+ border-block-end-width: 2px;
229
+ border-radius: min(calc(var(--radius, 0.5em) * 0.6), 0.35em);
230
+ padding: 0.0625em 0.35em;
231
+ }
232
+ &:where(dl) {
233
+ margin-block-start: var(--typeset-flow);
234
+ margin-block-end: 0;
235
+ }
236
+ &:where(dt) {
237
+ font-weight: 500;
238
+ margin-block-start: 1em;
239
+ }
240
+ &:where(dt + dt) {
241
+ margin-block-start: 0.25em;
242
+ }
243
+ &:where(dd) {
244
+ margin-block-start: 0.25em;
245
+ margin-inline-start: 0;
246
+ padding-inline-start: 1em;
247
+ color: var(--typeset-muted);
248
+ }
249
+ &:where(:not(pre) > code) {
250
+ background-color: var(
251
+ --color-muted,
252
+ color-mix(in oklab, currentColor 8%, transparent)
253
+ );
254
+ font-family: var(--typeset-font-mono);
255
+ font-size: 0.85em;
256
+ border-radius: min(calc(var(--radius, 0.5em) * 0.6), 0.35em);
257
+ padding: 0.125em 0.3em;
258
+ }
259
+ &:where(pre) {
260
+ background-color: var(
261
+ --color-muted,
262
+ color-mix(in oklab, currentColor 8%, transparent)
263
+ );
264
+ font-family: var(--typeset-font-mono);
265
+ font-size: 0.875em;
266
+ line-height: 1.5;
267
+ tab-size: 2;
268
+ direction: ltr;
269
+ border-radius: var(--radius, 0.5em);
270
+ padding: 0.75em 1em;
271
+ overflow-x: auto;
272
+ margin-block-start: calc(var(--typeset-flow) / 0.875);
273
+ margin-block-end: 0;
274
+ }
275
+ &:where(pre code) {
276
+ background-color: transparent;
277
+ font-family: inherit;
278
+ font-size: inherit;
279
+ padding: 0;
280
+ border-radius: 0;
281
+ }
282
+ &:where(blockquote) {
283
+ border-inline-start: 2px solid var(--typeset-rule);
284
+ padding-inline-start: 1em;
285
+ margin-block-start: var(--typeset-flow);
286
+ margin-block-end: 0;
287
+ margin-inline: 0;
288
+ }
289
+ &:where(hr) {
290
+ border: 0;
291
+ border-block-start: 1px solid var(--typeset-rule);
292
+ margin-block-start: calc(var(--typeset-flow) * 2.4);
293
+ margin-block-end: 0;
294
+ }
295
+ &:where(hr + h1, hr + h2, hr + h3, hr + h4) {
296
+ margin-block-start: var(--typeset-flow);
297
+ }
298
+ &:where(.footnotes, [data-footnotes]) {
299
+ margin-block-start: calc(var(--typeset-flow) * 2);
300
+ border-block-start: 1px solid var(--typeset-rule);
301
+ padding-block-start: var(--typeset-flow);
302
+ font-size: 0.875em;
303
+ color: var(--typeset-muted);
304
+ }
305
+ &:where(math[display="block"]) {
306
+ margin-block-start: var(--typeset-flow);
307
+ margin-block-end: 0;
308
+ overflow-x: auto;
309
+ overflow-y: hidden;
310
+ padding-block: 0.25em;
311
+ }
312
+ &:where(img, video) {
313
+ border-radius: var(--radius, 0.5em);
314
+ max-width: 100%;
315
+ height: auto;
316
+ margin-block-start: var(--typeset-flow);
317
+ margin-block-end: 0;
318
+ }
319
+ &:where(p img) {
320
+ margin-block-start: 0;
321
+ }
322
+ &:where(figure) {
323
+ margin-block-start: var(--typeset-flow);
324
+ margin-block-end: 0;
325
+ margin-inline: 0;
326
+ }
327
+ &:where(figcaption, caption) {
328
+ color: var(--typeset-muted);
329
+ font-size: 0.875em;
330
+ text-align: center;
331
+ margin-block-start: calc(0.75em / 0.875);
332
+ }
333
+ &:where(caption) {
334
+ caption-side: bottom;
335
+ }
336
+ &:where(table) {
337
+ max-width: 100%;
338
+ font-size: 1em;
339
+ line-height: 1.5;
340
+ font-variant-numeric: tabular-nums;
341
+ border-collapse: separate;
342
+ border-spacing: 0;
343
+ border-block-end: 1px solid var(--typeset-rule);
344
+ margin-block-start: var(--typeset-flow);
345
+ margin-block-end: 0;
346
+ }
347
+ &:where(.typeset-scroll) {
348
+ overflow-x: auto;
349
+ margin-block-start: var(--typeset-flow);
350
+ }
351
+ &:where(.typeset-scroll > *) {
352
+ margin-block-start: 0;
353
+ }
354
+ &:where(.typeset-scroll table) {
355
+ width: max-content;
356
+ max-width: none;
357
+ }
358
+ &:where(thead th) {
359
+ font-weight: 500;
360
+ text-align: start;
361
+ white-space: nowrap;
362
+ padding: 0.65em 1em;
363
+ }
364
+ &:where(:is(tbody, tfoot) :is(td, th)) {
365
+ padding: 0.75em 1em;
366
+ text-align: start;
367
+ vertical-align: top;
368
+ border-block-start: 1px solid var(--typeset-rule);
369
+ }
370
+ &:where(tbody th, tfoot th) {
371
+ font-weight: 500;
372
+ }
373
+ &:where(th:first-child, td:first-child) {
374
+ padding-inline-start: 0;
375
+ }
376
+ &:where(th[align="center"], td[align="center"]) {
377
+ text-align: center;
378
+ }
379
+ &:where(th[align="right"], td[align="right"]) {
380
+ text-align: end;
381
+ }
382
+ &:where(li > blockquote, li > table, li > figure) {
383
+ margin-block-start: 0.5em;
384
+ }
385
+ &:where(li > pre) {
386
+ margin-block-start: calc(0.5em / 0.875);
387
+ }
388
+ @media print {
389
+ &:where(pre, table, blockquote, figure) {
390
+ break-inside: avoid;
391
+ }
392
+ &:where(h1, h2, h3, h4) {
393
+ break-after: avoid;
394
+ }
395
+ }
396
+ @media (forced-colors: active) {
397
+ &:where(:not(pre) > code) {
398
+ border: 1px solid;
399
+ }
400
+ }
401
+ }
402
+
403
+ .typeset
404
+ > :where(:first-child):not(
405
+ :where(
406
+ .not-typeset,
407
+ [data-not-typeset],
408
+ .not-typeset *,
409
+ [data-not-typeset] *
410
+ )
411
+ ),
412
+ .typeset
413
+ > :where(:first-child)
414
+ > :where(:first-child):not(
415
+ :where(
416
+ .not-typeset,
417
+ [data-not-typeset],
418
+ .not-typeset *,
419
+ [data-not-typeset] *
420
+ )
421
+ ),
422
+ .typeset
423
+ :where(
424
+ li > :first-child,
425
+ blockquote > :first-child,
426
+ td > :first-child,
427
+ th > :first-child,
428
+ dd > :first-child,
429
+ figure > :first-child,
430
+ figure > picture > img
431
+ ):not(
432
+ :where(
433
+ .not-typeset,
434
+ [data-not-typeset],
435
+ .not-typeset *,
436
+ [data-not-typeset] *
437
+ )
438
+ ) {
439
+ margin-block-start: 0;
440
+ }
441
+ }
@@ -9,29 +9,20 @@ type Props = HTMLAttributes<"a"> & {
9
9
  }
10
10
 
11
11
  const { class: className, size = "default", ...props } = Astro.props
12
+
13
+ const sizeClass =
14
+ size === "sm" ? "text-sm" : size === "lg" ? "text-lg" : "text-base"
12
15
  ---
13
16
 
14
- <a data-slot="typography-a" data-size={size} class={cn(className)} {...props}>
17
+ <a
18
+ data-slot="typography-a"
19
+ data-size={size}
20
+ class={cn(
21
+ "text-primary font-medium underline underline-offset-4",
22
+ sizeClass,
23
+ className
24
+ )}
25
+ {...props}
26
+ >
15
27
  <slot />
16
28
  </a>
17
-
18
- <style is:global>
19
- @reference "@/styles/global.css";
20
-
21
- [data-slot="typography-a"],
22
- [data-slot="typography"] > a:not([data-slot]) {
23
- @apply text-primary font-medium underline underline-offset-4;
24
- }
25
-
26
- [data-slot="typography-a"][data-size="sm"] {
27
- @apply text-sm;
28
- }
29
-
30
- [data-slot="typography-a"][data-size="default"] {
31
- @apply text-base;
32
- }
33
-
34
- [data-slot="typography-a"][data-size="lg"] {
35
- @apply text-lg;
36
- }
37
- </style>
@@ -9,35 +9,16 @@ type Props = HTMLAttributes<"blockquote"> & {
9
9
  }
10
10
 
11
11
  const { class: className, size = "default", ...props } = Astro.props
12
+
13
+ const sizeClass =
14
+ size === "sm" ? "text-sm" : size === "lg" ? "text-lg" : "text-base"
12
15
  ---
13
16
 
14
17
  <blockquote
15
18
  data-slot="typography-blockquote"
16
19
  data-size={size}
17
- class={cn(className)}
20
+ class={cn("mt-6 border-l-2 pl-6 italic", sizeClass, className)}
18
21
  {...props}
19
22
  >
20
23
  <slot />
21
24
  </blockquote>
22
-
23
- <style is:global>
24
- @reference "@/styles/global.css";
25
-
26
- [data-slot="typography-blockquote"],
27
- [data-slot="typography"] > blockquote {
28
- @apply mt-6 border-l-2 pl-6 italic;
29
- }
30
-
31
- [data-slot="typography-blockquote"][data-size="sm"] {
32
- @apply text-sm;
33
- }
34
-
35
- [data-slot="typography-blockquote"][data-size="default"],
36
- [data-slot="typography"] > blockquote {
37
- @apply text-base;
38
- }
39
-
40
- [data-slot="typography-blockquote"][data-size="lg"] {
41
- @apply text-lg;
42
- }
43
- </style>
@@ -9,33 +9,20 @@ type Props = HTMLAttributes<"h1"> & {
9
9
  }
10
10
 
11
11
  const { class: className, size = "default", ...props } = Astro.props
12
+
13
+ const sizeClass =
14
+ size === "sm" ? "text-3xl" : size === "lg" ? "text-5xl" : "text-4xl"
12
15
  ---
13
16
 
14
- <h1 data-slot="typography-h1" data-size={size} class={cn(className)} {...props}>
17
+ <h1
18
+ data-slot="typography-h1"
19
+ data-size={size}
20
+ class={cn(
21
+ "scroll-m-20 font-semibold tracking-tight text-balance",
22
+ sizeClass,
23
+ className
24
+ )}
25
+ {...props}
26
+ >
15
27
  <slot />
16
28
  </h1>
17
-
18
- <style is:global>
19
- @reference "@/styles/global.css";
20
-
21
- [data-slot="typography-h1"],
22
- [data-slot="typography"] > h1 {
23
- @apply scroll-m-20 font-semibold tracking-tight text-balance;
24
- }
25
-
26
- [data-slot="typography-h1"][data-size="sm"],
27
- [data-slot="typography"][data-size="sm"] > h1 {
28
- @apply text-3xl;
29
- }
30
-
31
- [data-slot="typography-h1"][data-size="default"],
32
- [data-slot="typography"] > h1,
33
- [data-slot="typography"][data-size="default"] > h1 {
34
- @apply text-4xl;
35
- }
36
-
37
- [data-slot="typography-h1"][data-size="lg"],
38
- [data-slot="typography"][data-size="lg"] > h1 {
39
- @apply text-5xl;
40
- }
41
- </style>
@@ -9,38 +9,20 @@ type Props = HTMLAttributes<"h2"> & {
9
9
  }
10
10
 
11
11
  const { class: className, size = "default", ...props } = Astro.props
12
+
13
+ const sizeClass =
14
+ size === "sm" ? "text-2xl" : size === "lg" ? "text-4xl" : "text-3xl"
12
15
  ---
13
16
 
14
- <h2 data-slot="typography-h2" data-size={size} class={cn(className)} {...props}>
17
+ <h2
18
+ data-slot="typography-h2"
19
+ data-size={size}
20
+ class={cn(
21
+ "scroll-m-20 font-semibold tracking-tight first:mt-0",
22
+ sizeClass,
23
+ className
24
+ )}
25
+ {...props}
26
+ >
15
27
  <slot />
16
28
  </h2>
17
-
18
- <style is:global>
19
- @reference "@/styles/global.css";
20
-
21
- [data-slot="typography-h2"],
22
- [data-slot="typography"] > h2 {
23
- @apply scroll-m-20 font-semibold tracking-tight;
24
- }
25
-
26
- [data-slot="typography-h2"][data-size="sm"],
27
- [data-slot="typography"][data-size="sm"] > h2 {
28
- @apply text-2xl;
29
- }
30
-
31
- [data-slot="typography-h2"][data-size="default"],
32
- [data-slot="typography"] > h2,
33
- [data-slot="typography"][data-size="default"] > h2 {
34
- @apply text-3xl;
35
- }
36
-
37
- [data-slot="typography-h2"][data-size="lg"],
38
- [data-slot="typography"][data-size="lg"] > h2 {
39
- @apply text-4xl;
40
- }
41
-
42
- [data-slot="typography-h2"]:first-child,
43
- [data-slot="typography"] > h2:first-child {
44
- @apply mt-0;
45
- }
46
- </style>
@@ -9,33 +9,16 @@ type Props = HTMLAttributes<"h3"> & {
9
9
  }
10
10
 
11
11
  const { class: className, size = "default", ...props } = Astro.props
12
+
13
+ const sizeClass =
14
+ size === "sm" ? "text-xl" : size === "lg" ? "text-3xl" : "text-2xl"
12
15
  ---
13
16
 
14
- <h3 data-slot="typography-h3" data-size={size} class={cn(className)} {...props}>
17
+ <h3
18
+ data-slot="typography-h3"
19
+ data-size={size}
20
+ class={cn("scroll-m-20 font-semibold tracking-tight", sizeClass, className)}
21
+ {...props}
22
+ >
15
23
  <slot />
16
24
  </h3>
17
-
18
- <style is:global>
19
- @reference "@/styles/global.css";
20
-
21
- [data-slot="typography-h3"],
22
- [data-slot="typography"] > h3 {
23
- @apply scroll-m-20 font-semibold tracking-tight;
24
- }
25
-
26
- [data-slot="typography-h3"][data-size="sm"],
27
- [data-slot="typography"][data-size="sm"] > h3 {
28
- @apply text-xl;
29
- }
30
-
31
- [data-slot="typography-h3"][data-size="default"],
32
- [data-slot="typography"] > h3,
33
- [data-slot="typography"][data-size="default"] > h3 {
34
- @apply text-2xl;
35
- }
36
-
37
- [data-slot="typography-h3"][data-size="lg"],
38
- [data-slot="typography"][data-size="lg"] > h3 {
39
- @apply text-3xl;
40
- }
41
- </style>
@@ -9,33 +9,16 @@ type Props = HTMLAttributes<"h4"> & {
9
9
  }
10
10
 
11
11
  const { class: className, size = "default", ...props } = Astro.props
12
+
13
+ const sizeClass =
14
+ size === "sm" ? "text-lg" : size === "lg" ? "text-2xl" : "text-xl"
12
15
  ---
13
16
 
14
- <h4 data-slot="typography-h4" data-size={size} class={cn(className)} {...props}>
17
+ <h4
18
+ data-slot="typography-h4"
19
+ data-size={size}
20
+ class={cn("scroll-m-20 font-semibold tracking-tight", sizeClass, className)}
21
+ {...props}
22
+ >
15
23
  <slot />
16
24
  </h4>
17
-
18
- <style is:global>
19
- @reference "@/styles/global.css";
20
-
21
- [data-slot="typography-h4"],
22
- [data-slot="typography"] > h4 {
23
- @apply scroll-m-20 font-semibold tracking-tight;
24
- }
25
-
26
- [data-slot="typography-h4"][data-size="sm"],
27
- [data-slot="typography"][data-size="sm"] > h4 {
28
- @apply text-lg;
29
- }
30
-
31
- [data-slot="typography-h4"][data-size="default"],
32
- [data-slot="typography"] > h4,
33
- [data-slot="typography"][data-size="default"] > h4 {
34
- @apply text-xl;
35
- }
36
-
37
- [data-slot="typography-h4"][data-size="lg"],
38
- [data-slot="typography"][data-size="lg"] > h4 {
39
- @apply text-2xl;
40
- }
41
- </style>