@alexgorbatchev/shadcn 0.0.0-stage → 0.0.12

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 (158) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +349 -2
  3. package/THIRD_PARTY_NOTICES.md +105 -0
  4. package/dist/chunk-1j2hz3w9.js +16 -0
  5. package/dist/chunk-5wvvqege.js +259 -0
  6. package/dist/chunk-8a7dn9ps.js +93 -0
  7. package/dist/chunk-cp2m7y7v.js +26 -0
  8. package/dist/chunk-jpvw9xqy.js +4 -0
  9. package/dist/chunk-rajgnfbr.js +24 -0
  10. package/dist/chunk-rjjwytbx.js +12 -0
  11. package/dist/chunk-tnktkgvp.js +63 -0
  12. package/dist/chunk-z1fy613d.js +64 -0
  13. package/dist/components/Accordion.d.ts +12 -0
  14. package/dist/components/Alert.d.ts +15 -0
  15. package/dist/components/AlertDialog.d.ts +28 -0
  16. package/dist/components/AspectRatio.d.ts +5 -0
  17. package/dist/components/Attachment.d.ts +36 -0
  18. package/dist/components/Avatar.d.ts +19 -0
  19. package/dist/components/Badge.d.ts +15 -0
  20. package/dist/components/Breadcrumb.d.ts +18 -0
  21. package/dist/components/Bubble.d.ts +25 -0
  22. package/dist/components/Button.d.ts +13 -0
  23. package/dist/components/ButtonGroup.d.ts +14 -0
  24. package/dist/components/Card.d.ts +19 -0
  25. package/dist/components/Checkbox.d.ts +6 -0
  26. package/dist/components/Collapsible.d.ts +6 -0
  27. package/dist/components/Combobox.d.ts +39 -0
  28. package/dist/components/ConfirmationDialog.d.ts +11 -0
  29. package/dist/components/ContextMenu.d.ts +24 -0
  30. package/dist/components/DensityProvider.d.ts +7 -0
  31. package/dist/components/Dialog.d.ts +25 -0
  32. package/dist/components/DirectionProvider.d.ts +1 -0
  33. package/dist/components/DragDropPreview.d.ts +7 -0
  34. package/dist/components/DragDropProvider.d.ts +6 -0
  35. package/dist/components/DragSource.d.ts +10 -0
  36. package/dist/components/Drawer.d.ts +25 -0
  37. package/dist/components/DropTarget.d.ts +11 -0
  38. package/dist/components/DropdownMenu.d.ts +26 -0
  39. package/dist/components/Empty.d.ts +19 -0
  40. package/dist/components/EmptyState.d.ts +8 -0
  41. package/dist/components/Field.d.ts +36 -0
  42. package/dist/components/HoverCard.d.ts +8 -0
  43. package/dist/components/ImagePicker.d.ts +11 -0
  44. package/dist/components/InlineEdit.d.ts +14 -0
  45. package/dist/components/Input.d.ts +6 -0
  46. package/dist/components/InputGroup.d.ts +26 -0
  47. package/dist/components/Item.d.ts +32 -0
  48. package/dist/components/JsonViewer.d.ts +8 -0
  49. package/dist/components/Kbd.d.ts +7 -0
  50. package/dist/components/Label.d.ts +5 -0
  51. package/dist/components/Marker.d.ts +19 -0
  52. package/dist/components/Menubar.d.ts +29 -0
  53. package/dist/components/Message.d.ts +17 -0
  54. package/dist/components/NativeSelect.d.ts +11 -0
  55. package/dist/components/NavigationMenu.d.ts +21 -0
  56. package/dist/components/Pagination.d.ts +21 -0
  57. package/dist/components/Popover.d.ts +14 -0
  58. package/dist/components/Progress.d.ts +14 -0
  59. package/dist/components/RadioGroup.d.ts +9 -0
  60. package/dist/components/ScrollArea.d.ts +10 -0
  61. package/dist/components/Select.d.ts +25 -0
  62. package/dist/components/Separator.d.ts +8 -0
  63. package/dist/components/Sheet.d.ts +20 -0
  64. package/dist/components/Sidebar.d.ts +60 -0
  65. package/dist/components/Skeleton.d.ts +5 -0
  66. package/dist/components/Slider.d.ts +6 -0
  67. package/dist/components/Spinner.d.ts +5 -0
  68. package/dist/components/StarRating.d.ts +10 -0
  69. package/dist/components/Switch.d.ts +8 -0
  70. package/dist/components/Table.d.ts +28 -0
  71. package/dist/components/Tabs.d.ts +16 -0
  72. package/dist/components/Textarea.d.ts +5 -0
  73. package/dist/components/ThemeProvider.d.ts +9 -0
  74. package/dist/components/Toast.d.ts +18 -0
  75. package/dist/components/Toggle.d.ts +11 -0
  76. package/dist/components/ToggleGroup.d.ts +12 -0
  77. package/dist/components/Tooltip.d.ts +9 -0
  78. package/dist/components/calendar/Calendar.d.ts +6 -0
  79. package/dist/components/calendar/getCalendarClassNames.d.ts +3 -0
  80. package/dist/components/calendar/index.d.ts +1 -0
  81. package/dist/components/calendar/index.js +10 -0
  82. package/dist/components/calendar/types.d.ts +9 -0
  83. package/dist/components/carousel/Carousel.d.ts +9 -0
  84. package/dist/components/carousel/CarouselContext.d.ts +2 -0
  85. package/dist/components/carousel/hooks/useCarousel.d.ts +2 -0
  86. package/dist/components/carousel/index.d.ts +3 -0
  87. package/dist/components/carousel/index.js +207 -0
  88. package/dist/components/carousel/types.d.ts +23 -0
  89. package/dist/components/chart/Chart.d.ts +10 -0
  90. package/dist/components/chart/ChartContext.d.ts +2 -0
  91. package/dist/components/chart/ChartStyle.d.ts +3 -0
  92. package/dist/components/chart/getPayloadConfigFromPayload.d.ts +2 -0
  93. package/dist/components/chart/hooks/useChart.d.ts +2 -0
  94. package/dist/components/chart/index.d.ts +3 -0
  95. package/dist/components/chart/index.js +284 -0
  96. package/dist/components/chart/types.d.ts +50 -0
  97. package/dist/components/command/Command.d.ts +21 -0
  98. package/dist/components/command/index.d.ts +1 -0
  99. package/dist/components/command/index.js +142 -0
  100. package/dist/components/input-otp/InputOTP.d.ts +12 -0
  101. package/dist/components/input-otp/index.d.ts +1 -0
  102. package/dist/components/input-otp/index.js +303 -0
  103. package/dist/components/message-scroller/MessageScroller.d.ts +16 -0
  104. package/dist/components/message-scroller/hooks/useMessageScroller.d.ts +1 -0
  105. package/dist/components/message-scroller/hooks/useMessageScrollerScrollable.d.ts +1 -0
  106. package/dist/components/message-scroller/hooks/useMessageScrollerVisibility.d.ts +1 -0
  107. package/dist/components/message-scroller/index.d.ts +5 -0
  108. package/dist/components/message-scroller/index.js +600 -0
  109. package/dist/components/persian-calendar/PersianCalendar.d.ts +6 -0
  110. package/dist/components/persian-calendar/index.d.ts +1 -0
  111. package/dist/components/persian-calendar/index.js +36 -0
  112. package/dist/components/questionnaire/Questionnaire.d.ts +20 -0
  113. package/dist/components/questionnaire/index.d.ts +2 -0
  114. package/dist/components/questionnaire/index.js +747 -0
  115. package/dist/components/resizable/Resizable.d.ts +10 -0
  116. package/dist/components/resizable/SplitView.d.ts +12 -0
  117. package/dist/components/resizable/index.d.ts +2 -0
  118. package/dist/components/resizable/index.js +147 -0
  119. package/dist/components/sonner/Sonner.d.ts +7 -0
  120. package/dist/components/sonner/hooks/useSonner.d.ts +1 -0
  121. package/dist/components/sonner/index.d.ts +2 -0
  122. package/dist/components/sonner/index.js +1273 -0
  123. package/dist/density/DensityContext.d.ts +2 -0
  124. package/dist/density/types.d.ts +4 -0
  125. package/dist/drag-drop/DragDropContext.d.ts +2 -0
  126. package/dist/drag-drop/types.d.ts +45 -0
  127. package/dist/drawer/DrawerContext.d.ts +2 -0
  128. package/dist/drawer/types.d.ts +7 -0
  129. package/dist/fonts.css +1 -0
  130. package/dist/hooks/useComboboxAnchor.d.ts +2 -0
  131. package/dist/hooks/useDensity.d.ts +2 -0
  132. package/dist/hooks/useDragDrop.d.ts +2 -0
  133. package/dist/hooks/useDragSource.d.ts +2 -0
  134. package/dist/hooks/useDrawer.d.ts +2 -0
  135. package/dist/hooks/useDropTarget.d.ts +2 -0
  136. package/dist/hooks/useMediaQuery.d.ts +1 -0
  137. package/dist/hooks/useObjectURL.d.ts +1 -0
  138. package/dist/hooks/useSidebar.d.ts +2 -0
  139. package/dist/hooks/useTheme.d.ts +2 -0
  140. package/dist/hooks/useToastManager.d.ts +2 -0
  141. package/dist/index.d.ts +82 -0
  142. package/dist/index.js +4908 -0
  143. package/dist/menu/types.d.ts +14 -0
  144. package/dist/message/MessageContext.d.ts +2 -0
  145. package/dist/message/types.d.ts +7 -0
  146. package/dist/sidebar/SidebarContext.d.ts +2 -0
  147. package/dist/sidebar/types.d.ts +32 -0
  148. package/dist/theme/ThemeContext.d.ts +2 -0
  149. package/dist/theme/types.d.ts +8 -0
  150. package/dist/theme.css +454 -0
  151. package/dist/toggle-group/ToggleGroupContext.d.ts +2 -0
  152. package/dist/toggle-group/types.d.ts +5 -0
  153. package/dist/typeset.css +444 -0
  154. package/dist/utils/cn.d.ts +2 -0
  155. package/package.json +193 -4
  156. package/patches/@shadcn%2Freact@0.3.1.patch +35 -0
  157. package/patches/input-otp@1.5.0.patch +20 -0
  158. package/patches/sonner@2.0.8.patch +87 -0
@@ -0,0 +1,444 @@
1
+ /*
2
+ * shadcn/typeset
3
+ * https://ui.shadcn.com/docs/typeset.
4
+ */
5
+
6
+ @layer components {
7
+ .typeset:not(:where(.not-typeset, [data-not-typeset], .not-typeset *, [data-not-typeset] *)) {
8
+ --typeset-font-body: inherit;
9
+ --typeset-font-heading: var(--ag-font);
10
+ --typeset-font-mono: var(--ag-font);
11
+ --typeset-size: 1em;
12
+ --typeset-leading: var(--ag-leading);
13
+ --typeset-flow: 1.25em;
14
+ }
15
+ }
16
+
17
+ @layer components {
18
+ .typeset:not(:where(.not-typeset, [data-not-typeset], .not-typeset *, [data-not-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(--color-muted-foreground, color-mix(in oklab, currentColor 60%, transparent));
31
+ --typeset-rule: var(--color-border, color-mix(in oklab, currentColor 20%, transparent));
32
+ }
33
+
34
+ .typeset *:not(:where(.not-typeset, [data-not-typeset], .not-typeset *, [data-not-typeset] *)) {
35
+ /* Paragraphs. */
36
+ &:where(p) {
37
+ margin-block-start: var(--typeset-flow);
38
+ margin-block-end: 0;
39
+ }
40
+
41
+ /* Headings. */
42
+ &:where(h1, h2, h3, h4, h5, h6) {
43
+ color: var(--color-foreground, currentColor);
44
+ font-family: var(--typeset-font-heading);
45
+ font-weight: 600;
46
+ margin-block-end: 0;
47
+ }
48
+ &:where(h1) {
49
+ font-size: 1.75em;
50
+ line-height: 1.3;
51
+ margin-block-start: var(--typeset-flow);
52
+ }
53
+ &:where(h2) {
54
+ font-size: 1.25em;
55
+ line-height: 1.4;
56
+ margin-block-start: calc(var(--typeset-flow) * 1.4);
57
+ }
58
+ &:where(h3) {
59
+ font-size: 1.125em;
60
+ line-height: 1.45;
61
+ margin-block-start: var(--typeset-flow);
62
+ }
63
+ &:where(h4) {
64
+ font-size: 1em;
65
+ line-height: 1.5;
66
+ margin-block-start: var(--typeset-flow);
67
+ }
68
+ &:where(h5) {
69
+ font-size: 0.875em;
70
+ line-height: 1.5;
71
+ font-weight: 500;
72
+ color: var(--typeset-muted);
73
+ margin-block-start: calc(var(--typeset-flow) / 0.875);
74
+ }
75
+ &:where(h6) {
76
+ font-size: 0.8125em;
77
+ line-height: 1.5;
78
+ font-weight: 500;
79
+ letter-spacing: 0.08em;
80
+ text-transform: uppercase;
81
+ color: var(--typeset-muted);
82
+ margin-block-start: calc(var(--typeset-flow) / 0.8125);
83
+ }
84
+ /* Anchors. */
85
+ &:where([id]) {
86
+ scroll-margin-block-start: var(--typeset-flow);
87
+ }
88
+
89
+ /* Headings own the space below them. */
90
+ &:where(h1 + *, h2 + *, h3 + *, h4 + *, h5 + *, h6 + *) {
91
+ margin-block-start: 1em;
92
+ }
93
+ &:where(:is(h1, h2, h3, h4) :is(code)) {
94
+ font-size: 0.9em;
95
+ }
96
+
97
+ /* Links. */
98
+ &:where(a) {
99
+ color: inherit;
100
+ font-weight: 500;
101
+ text-decoration-line: underline;
102
+ text-decoration-color: color-mix(in oklab, currentColor 30%, transparent);
103
+ }
104
+ &:where(a:hover) {
105
+ text-decoration-color: currentColor;
106
+ }
107
+ &:where(a:focus-visible) {
108
+ outline: 2px solid var(--color-ring, currentColor);
109
+ outline-offset: 2px;
110
+ border-radius: 0.125em;
111
+ }
112
+ &:where(:is(h1, h2, h3, h4, h5, h6) :is(a)) {
113
+ font-weight: inherit;
114
+ }
115
+
116
+ /* Inline semantics. */
117
+ &:where(strong, b) {
118
+ font-weight: 600;
119
+ }
120
+ &:where(:is(h1, h2, h3, h4) :is(strong, b)) {
121
+ font-weight: 600;
122
+ }
123
+ &:where(mark) {
124
+ background-color: color-mix(in oklab, var(--color-warning) 40%, transparent);
125
+ color: inherit;
126
+ padding: 0.05em 0.15em;
127
+ border-radius: 0.2em;
128
+ }
129
+ &:where(abbr[title]) {
130
+ text-decoration-line: underline;
131
+ text-decoration-style: dotted;
132
+ text-underline-offset: 0.2em;
133
+ cursor: help;
134
+ }
135
+ &:where(del, s) {
136
+ color: var(--typeset-muted);
137
+ text-decoration-line: line-through;
138
+ }
139
+ &:where(sup, sub) {
140
+ font-size: 0.75em;
141
+ line-height: 0;
142
+ position: relative;
143
+ vertical-align: baseline;
144
+ }
145
+ &:where(sup) {
146
+ top: -0.5em;
147
+ }
148
+ &:where(sub) {
149
+ bottom: -0.25em;
150
+ }
151
+ &:where(sup a) {
152
+ text-decoration-line: none;
153
+ font-weight: 500;
154
+ }
155
+
156
+ /* Lists. */
157
+ &:where(ul) {
158
+ list-style-type: disc;
159
+ }
160
+ &:where(ol) {
161
+ list-style-type: decimal;
162
+ }
163
+ &:where(ul ul) {
164
+ list-style-type: circle;
165
+ }
166
+ &:where(ul ul ul) {
167
+ list-style-type: square;
168
+ }
169
+ &:where(ol[type="a" i]) {
170
+ list-style-type: lower-alpha;
171
+ }
172
+ &:where(ol[type="i" i]) {
173
+ list-style-type: lower-roman;
174
+ }
175
+ &:where(ol[type="A" s]) {
176
+ list-style-type: upper-alpha;
177
+ }
178
+ &:where(ol[type="I" s]) {
179
+ list-style-type: upper-roman;
180
+ }
181
+ &:where(ul, ol) {
182
+ margin-block-start: var(--typeset-flow);
183
+ margin-block-end: 0;
184
+ padding-inline-start: 1.5em;
185
+ }
186
+ &:where(li) {
187
+ margin-block-start: 0.5em;
188
+ padding-inline-start: 0.4em;
189
+ }
190
+ &:where(li > p, li > ul, li > ol) {
191
+ margin-block-start: 0.5em;
192
+ }
193
+ &:where(ul > li)::marker {
194
+ color: var(--typeset-muted);
195
+ }
196
+ &:where(ol > li)::marker {
197
+ color: var(--typeset-muted);
198
+ }
199
+
200
+ /* GFM task lists. */
201
+ &:where(ul.contains-task-list) {
202
+ list-style-type: none;
203
+ padding-inline-start: 0.25em;
204
+ }
205
+ &:where(li.task-list-item > input[type="checkbox"]) {
206
+ margin-inline-end: 0.5em;
207
+ vertical-align: -0.1em;
208
+ accent-color: var(--color-primary, currentColor);
209
+ }
210
+
211
+ /* Disclosures. */
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
+
224
+ /* Keyboard keys. */
225
+ &:where(kbd) {
226
+ font-family: inherit;
227
+ font-size: 0.85em;
228
+ font-weight: 500;
229
+ border: 1px solid var(--typeset-rule);
230
+ border-block-end-width: 2px;
231
+ border-radius: min(calc(var(--radius, 0.5em) * 0.6), 0.35em);
232
+ padding: 0.0625em 0.35em;
233
+ }
234
+
235
+ /* Definition lists. */
236
+ &:where(dl) {
237
+ margin-block-start: var(--typeset-flow);
238
+ margin-block-end: 0;
239
+ }
240
+ &:where(dt) {
241
+ font-weight: 500;
242
+ margin-block-start: 1em;
243
+ }
244
+ &:where(dt + dt) {
245
+ margin-block-start: 0.25em;
246
+ }
247
+ &:where(dd) {
248
+ margin-block-start: 0.25em;
249
+ margin-inline-start: 0;
250
+ padding-inline-start: 1em;
251
+ color: var(--typeset-muted);
252
+ }
253
+
254
+ /* Inline code. */
255
+ &:where(:not(pre) > code) {
256
+ background-color: var(--color-muted, color-mix(in oklab, currentColor 8%, transparent));
257
+ font-family: var(--typeset-font-mono);
258
+ font-size: 0.85em;
259
+ border-radius: min(calc(var(--radius, 0.5em) * 0.6), 0.35em);
260
+ padding: 0.125em 0.3em;
261
+ }
262
+
263
+ /* Code blocks. */
264
+ &:where(pre) {
265
+ background-color: var(--color-muted, color-mix(in oklab, currentColor 8%, transparent));
266
+ font-family: var(--typeset-font-mono);
267
+ font-size: 0.875em;
268
+ line-height: 1.5;
269
+ tab-size: 2;
270
+ direction: ltr;
271
+ border-radius: var(--radius, 0.5em);
272
+ padding: 0.75em 1em;
273
+ overflow-x: auto;
274
+ margin-block-start: calc(var(--typeset-flow) / 0.875);
275
+ margin-block-end: 0;
276
+ }
277
+ &:where(pre code) {
278
+ background-color: transparent;
279
+ font-family: inherit;
280
+ font-size: inherit;
281
+ padding: 0;
282
+ border-radius: 0;
283
+ }
284
+
285
+ /* Blockquote. */
286
+ &:where(blockquote) {
287
+ border-inline-start: 2px solid var(--typeset-rule);
288
+ padding-inline-start: 1em;
289
+ margin-block-start: var(--typeset-flow);
290
+ margin-block-end: 0;
291
+ margin-inline: 0;
292
+ }
293
+
294
+ /* Dividers. */
295
+ &:where(hr) {
296
+ border: 0;
297
+ border-block-start: 1px solid var(--typeset-rule);
298
+ margin-block-start: calc(var(--typeset-flow) * 2.4);
299
+ margin-block-end: 0;
300
+ }
301
+ &:where(hr + h1, hr + h2, hr + h3, hr + h4) {
302
+ margin-block-start: var(--typeset-flow);
303
+ }
304
+
305
+ /* GFM footnotes. */
306
+ &:where(.footnotes, [data-footnotes]) {
307
+ margin-block-start: calc(var(--typeset-flow) * 2);
308
+ border-block-start: 1px solid var(--typeset-rule);
309
+ padding-block-start: var(--typeset-flow);
310
+ font-size: 0.875em;
311
+ color: var(--typeset-muted);
312
+ }
313
+
314
+ /* Math. */
315
+ &:where(math[display="block"]) {
316
+ margin-block-start: var(--typeset-flow);
317
+ margin-block-end: 0;
318
+ overflow-x: auto;
319
+ overflow-y: hidden;
320
+ padding-block: 0.25em;
321
+ }
322
+
323
+ /* Media. */
324
+ &:where(img, video) {
325
+ border-radius: var(--radius, 0.5em);
326
+ max-width: 100%;
327
+ height: auto;
328
+ margin-block-start: var(--typeset-flow);
329
+ margin-block-end: 0;
330
+ }
331
+ &:where(p img) {
332
+ margin-block-start: 0;
333
+ }
334
+ &:where(figure) {
335
+ margin-block-start: var(--typeset-flow);
336
+ margin-block-end: 0;
337
+ margin-inline: 0;
338
+ }
339
+ &:where(figcaption, caption) {
340
+ color: var(--typeset-muted);
341
+ font-size: 0.875em;
342
+ text-align: center;
343
+ margin-block-start: calc(0.75em / 0.875);
344
+ }
345
+ &:where(caption) {
346
+ caption-side: bottom;
347
+ }
348
+
349
+ /* Tables. Separators sit on cells, not tr:last-child: append-safe.
350
+ Bare tables stay real tables (keep their semantics) and wrap to fit. */
351
+ &:where(table) {
352
+ max-width: 100%;
353
+ font-size: 1em;
354
+ line-height: 1.5;
355
+ font-variant-numeric: tabular-nums;
356
+ border-collapse: separate;
357
+ border-spacing: 0;
358
+ border-block-end: 1px solid var(--typeset-rule);
359
+ margin-block-start: var(--typeset-flow);
360
+ margin-block-end: 0;
361
+ }
362
+
363
+ /* Horizontal scroll for any wide block. Wrap it and the wrapper owns the
364
+ flow margin. Tables shrink to fit, so widen the table to make it scroll
365
+ instead of compress. */
366
+ &:where(.typeset-scroll) {
367
+ overflow-x: auto;
368
+ margin-block-start: var(--typeset-flow);
369
+ }
370
+ &:where(.typeset-scroll > *) {
371
+ margin-block-start: 0;
372
+ }
373
+ &:where(.typeset-scroll table) {
374
+ width: max-content;
375
+ max-width: none;
376
+ }
377
+ &:where(thead th) {
378
+ font-weight: 500;
379
+ text-align: start;
380
+ white-space: nowrap;
381
+ padding: 0.65em 1em;
382
+ }
383
+ &:where(:is(tbody, tfoot) :is(td, th)) {
384
+ padding: 0.75em 1em;
385
+ text-align: start;
386
+ vertical-align: top;
387
+ border-block-start: 1px solid var(--typeset-rule);
388
+ }
389
+ &:where(tbody th, tfoot th) {
390
+ font-weight: 500;
391
+ }
392
+ &:where(th:first-child, td:first-child) {
393
+ padding-inline-start: 0;
394
+ }
395
+ &:where(th[align="center"], td[align="center"]) {
396
+ text-align: center;
397
+ }
398
+ &:where(th[align="right"], td[align="right"]) {
399
+ text-align: end;
400
+ }
401
+
402
+ /* Blocks inside list items keep the list's tighter rhythm. */
403
+ &:where(li > blockquote, li > table, li > figure) {
404
+ margin-block-start: 0.5em;
405
+ }
406
+ &:where(li > pre) {
407
+ margin-block-start: calc(0.5em / 0.875);
408
+ }
409
+
410
+ @media print {
411
+ &:where(pre, table, blockquote, figure) {
412
+ break-inside: avoid;
413
+ }
414
+ &:where(h1, h2, h3, h4) {
415
+ break-after: avoid;
416
+ }
417
+ }
418
+
419
+ /* Forced colors strips the code background, so give it a border. */
420
+ @media (forced-colors: active) {
421
+ &:where(:not(pre) > code) {
422
+ border: 1px solid;
423
+ }
424
+ }
425
+ }
426
+
427
+ /* First child adds no space above. Last so it wins ties. */
428
+ .typeset > :where(:first-child):not(:where(.not-typeset, [data-not-typeset], .not-typeset *, [data-not-typeset] *)),
429
+ .typeset
430
+ > :where(:first-child)
431
+ > :where(:first-child):not(:where(.not-typeset, [data-not-typeset], .not-typeset *, [data-not-typeset] *)),
432
+ .typeset
433
+ :where(
434
+ li > :first-child,
435
+ blockquote > :first-child,
436
+ td > :first-child,
437
+ th > :first-child,
438
+ dd > :first-child,
439
+ figure > :first-child,
440
+ figure > picture > img
441
+ ):not(:where(.not-typeset, [data-not-typeset], .not-typeset *, [data-not-typeset] *)) {
442
+ margin-block-start: 0;
443
+ }
444
+ }
@@ -0,0 +1,2 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
package/package.json CHANGED
@@ -1,6 +1,195 @@
1
1
  {
2
2
  "name": "@alexgorbatchev/shadcn",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.0.12",
4
+ "description": "Sharp, monospace React components with compact and comfortable densities.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/alexgorbatchev/shadcn.git"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "patches",
13
+ "LICENSE",
14
+ "THIRD_PARTY_NOTICES.md"
15
+ ],
16
+ "type": "module",
17
+ "sideEffects": [
18
+ "**/*.css"
19
+ ],
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js"
24
+ },
25
+ "./theme.css": "./dist/theme.css",
26
+ "./typeset.css": "./dist/typeset.css",
27
+ "./fonts.css": "./dist/fonts.css",
28
+ "./chart": {
29
+ "types": "./dist/components/chart/index.d.ts",
30
+ "import": "./dist/components/chart/index.js"
31
+ },
32
+ "./calendar": {
33
+ "types": "./dist/components/calendar/index.d.ts",
34
+ "import": "./dist/components/calendar/index.js"
35
+ },
36
+ "./persian-calendar": {
37
+ "types": "./dist/components/persian-calendar/index.d.ts",
38
+ "import": "./dist/components/persian-calendar/index.js"
39
+ },
40
+ "./carousel": {
41
+ "types": "./dist/components/carousel/index.d.ts",
42
+ "import": "./dist/components/carousel/index.js"
43
+ },
44
+ "./command": {
45
+ "types": "./dist/components/command/index.d.ts",
46
+ "import": "./dist/components/command/index.js"
47
+ },
48
+ "./resizable": {
49
+ "types": "./dist/components/resizable/index.d.ts",
50
+ "import": "./dist/components/resizable/index.js"
51
+ },
52
+ "./sonner": {
53
+ "types": "./dist/components/sonner/index.d.ts",
54
+ "import": "./dist/components/sonner/index.js"
55
+ },
56
+ "./input-otp": {
57
+ "types": "./dist/components/input-otp/index.d.ts",
58
+ "import": "./dist/components/input-otp/index.js"
59
+ },
60
+ "./message-scroller": {
61
+ "types": "./dist/components/message-scroller/index.d.ts",
62
+ "import": "./dist/components/message-scroller/index.js"
63
+ },
64
+ "./questionnaire": {
65
+ "types": "./dist/components/questionnaire/index.d.ts",
66
+ "import": "./dist/components/questionnaire/index.js"
67
+ }
68
+ },
69
+ "publishConfig": {
70
+ "access": "public",
71
+ "registry": "https://registry.npmjs.org/"
72
+ },
73
+ "scripts": {
74
+ "test": "vitest run --config .storybook/vitest.config.ts && bun run test:native && bun run test:package",
75
+ "test:package": "bun run build && bun test scripts/__tests__/build.test.ts",
76
+ "test:native": "vitest run --config .storybook/vitest.native.config.ts",
77
+ "test:coverage": "vitest run --config .storybook/vitest.config.ts --coverage",
78
+ "test:contrast": "vitest run --config .storybook/vitest.contrast.config.ts",
79
+ "build": "bun scripts/build.ts && tsc -p tsconfig.build.json",
80
+ "typecheck": "tsc --noEmit",
81
+ "lint": "oxlint --deny-warnings src .storybook scripts && oxfmt --check . && bun run lint:unused",
82
+ "lint:unused": "bun --bun ts-unused check tsconfig.json",
83
+ "storybook": "storybook dev --host 127.0.0.1 -p 6006 --no-open",
84
+ "build-storybook": "storybook build",
85
+ "prepack": "bun run build",
86
+ "test:reduced-motion": "vitest run --config .storybook/vitest.reduced-motion.config.ts",
87
+ "test:visual": "vitest run --config .storybook/vitest.visual.config.ts Button.stories.tsx Badge.stories.tsx Card.stories.tsx Input.stories.tsx",
88
+ "test:visual:update": "bun run test:visual --update"
89
+ },
90
+ "dependencies": {
91
+ "@base-ui/react": "^1.9.0",
92
+ "@shadcn/react": "0.3.1",
93
+ "class-variance-authority": "^0.7.1",
94
+ "clsx": "^2.1.1",
95
+ "input-otp": "1.5.0",
96
+ "lucide-react": "^1.53.0",
97
+ "sonner": "2.0.8",
98
+ "tailwind-merge": "^3.7.0",
99
+ "tw-animate-css": "^1.4.0",
100
+ "usehooks-ts": "^3.1.1"
101
+ },
102
+ "devDependencies": {
103
+ "@daypicker/persian": "^10.0.2",
104
+ "@daypicker/react": "^10.0.2",
105
+ "@fontsource-variable/jetbrains-mono": "^5.3.0",
106
+ "@hookform/resolvers": "5.9.1",
107
+ "@storybook/addon-a11y": "^10.6.1",
108
+ "@storybook/addon-docs": "^10.6.1",
109
+ "@storybook/addon-vitest": "^10.6.1",
110
+ "@storybook/react-vite": "^10.6.1",
111
+ "@tailwindcss/vite": "^4.3.3",
112
+ "@tanstack/react-table": "9.2.8",
113
+ "@tanstack/react-virtual": "3.14.13",
114
+ "@types/bun": "^1.4.2",
115
+ "@types/cssesc": "3.0.2",
116
+ "@types/react": "^19.3.0",
117
+ "@types/react-dom": "^19.3.0",
118
+ "@typescript/native": "npm:typescript@^7.0.2",
119
+ "@vitejs/plugin-react": "^6.1.2",
120
+ "@vitest/browser": "4.1.11",
121
+ "@vitest/browser-playwright": "^4.1.6",
122
+ "@vitest/coverage-v8": "^4.1.6",
123
+ "bun": "1.4.2",
124
+ "bun-plugin-tailwind": "^0.1.2",
125
+ "chrono-node": "^2.10.2",
126
+ "cmdk": "^1.1.1",
127
+ "cssesc": "3.0.0",
128
+ "embla-carousel-autoplay": "8.6.0",
129
+ "embla-carousel-react": "^8.6.0",
130
+ "es-toolkit": "1.52.0",
131
+ "motion": "14.0.0",
132
+ "oxfmt": "^0.72.0",
133
+ "oxlint": "^1.87.0",
134
+ "playwright": "^1.64.0",
135
+ "react-hook-form": "7.89.0",
136
+ "react-resizable-panels": "^4.14.3",
137
+ "recharts": "3.8.0",
138
+ "storybook": "^10.6.1",
139
+ "tailwindcss": "^4.3.3",
140
+ "ts-unused": "3.3.1",
141
+ "typescript": "^6.0.3",
142
+ "vite": "^8.3.4",
143
+ "vitest": "^4.1.6",
144
+ "vitest-browser-react": "^2.3.0",
145
+ "zod": "4.6.5"
146
+ },
147
+ "peerDependencies": {
148
+ "@daypicker/persian": "^10.0.2",
149
+ "@daypicker/react": "^10.0.2",
150
+ "@fontsource-variable/jetbrains-mono": "^5.3.0",
151
+ "cmdk": "^1.1.1",
152
+ "cssesc": "3.0.0",
153
+ "embla-carousel-react": "^8.6.0",
154
+ "es-toolkit": "1.52.0",
155
+ "react": "^19.3.0",
156
+ "react-dom": "^19.3.0",
157
+ "react-resizable-panels": "^4.14.3",
158
+ "recharts": "3.8.0"
159
+ },
160
+ "peerDependenciesMeta": {
161
+ "recharts": {
162
+ "optional": true
163
+ },
164
+ "cssesc": {
165
+ "optional": true
166
+ },
167
+ "es-toolkit": {
168
+ "optional": true
169
+ },
170
+ "@daypicker/react": {
171
+ "optional": true
172
+ },
173
+ "@daypicker/persian": {
174
+ "optional": true
175
+ },
176
+ "embla-carousel-react": {
177
+ "optional": true
178
+ },
179
+ "cmdk": {
180
+ "optional": true
181
+ },
182
+ "react-resizable-panels": {
183
+ "optional": true
184
+ },
185
+ "@fontsource-variable/jetbrains-mono": {
186
+ "optional": true
187
+ }
188
+ },
189
+ "packageManager": "bun@1.4.2",
190
+ "patchedDependencies": {
191
+ "@shadcn/react@0.3.1": "patches/@shadcn%2Freact@0.3.1.patch",
192
+ "sonner@2.0.8": "patches/sonner@2.0.8.patch",
193
+ "input-otp@1.5.0": "patches/input-otp@1.5.0.patch"
194
+ }
195
+ }