@hachej/boring-workspace 0.1.20 → 0.1.23
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.
- package/dist/{FileTree-DHVB9rpk.js → FileTree-D8Rmj8Bo.js} +101 -90
- package/dist/{MarkdownEditor-L1KDH0bM.js → MarkdownEditor-DKC4gNT4.js} +1 -1
- package/dist/{WorkspaceLoadingState-DYDxUYnx.js → WorkspaceLoadingState-hKrnYCL3.js} +138 -139
- package/dist/{WorkspaceProvider-CDPaAO5u.js → WorkspaceProvider-Cn0sPgaB.js} +412 -407
- package/dist/app-front.js +2 -2
- package/dist/app-server.d.ts +8 -4
- package/dist/app-server.js +106 -16
- package/dist/{createInMemoryBridge-BDxDzihm.d.ts → createInMemoryBridge-CYNW1h_o.d.ts} +9 -5
- package/dist/server.d.ts +3 -3
- package/dist/server.js +27 -1
- package/dist/shared.d.ts +15 -1
- package/dist/shared.js +16 -1
- package/dist/testing.js +1 -1
- package/dist/{ui-bridge-Gfh1MMgl.d.ts → ui-bridge-CT18yqwN.d.ts} +1 -1
- package/dist/workspace.css +79 -43
- package/dist/workspace.js +5 -5
- package/package.json +5 -3
package/dist/workspace.css
CHANGED
|
@@ -1576,6 +1576,12 @@
|
|
|
1576
1576
|
.mt-2 {
|
|
1577
1577
|
margin-top: calc(var(--spacing) * 2);
|
|
1578
1578
|
}
|
|
1579
|
+
.mt-4 {
|
|
1580
|
+
margin-top: calc(var(--spacing) * 4);
|
|
1581
|
+
}
|
|
1582
|
+
.mt-px {
|
|
1583
|
+
margin-top: 1px;
|
|
1584
|
+
}
|
|
1579
1585
|
.mr-1 {
|
|
1580
1586
|
margin-right: calc(var(--spacing) * 1);
|
|
1581
1587
|
}
|
|
@@ -1585,6 +1591,9 @@
|
|
|
1585
1591
|
.mb-1\.5 {
|
|
1586
1592
|
margin-bottom: calc(var(--spacing) * 1.5);
|
|
1587
1593
|
}
|
|
1594
|
+
.ml-0\.5 {
|
|
1595
|
+
margin-left: calc(var(--spacing) * 0.5);
|
|
1596
|
+
}
|
|
1588
1597
|
.ml-1 {
|
|
1589
1598
|
margin-left: calc(var(--spacing) * 1);
|
|
1590
1599
|
}
|
|
@@ -1643,6 +1652,10 @@
|
|
|
1643
1652
|
width: calc(var(--spacing) * 4);
|
|
1644
1653
|
height: calc(var(--spacing) * 4);
|
|
1645
1654
|
}
|
|
1655
|
+
.size-\[22px\] {
|
|
1656
|
+
width: 22px;
|
|
1657
|
+
height: 22px;
|
|
1658
|
+
}
|
|
1646
1659
|
.h-1\.5 {
|
|
1647
1660
|
height: calc(var(--spacing) * 1.5);
|
|
1648
1661
|
}
|
|
@@ -1658,9 +1671,6 @@
|
|
|
1658
1671
|
.h-5 {
|
|
1659
1672
|
height: calc(var(--spacing) * 5);
|
|
1660
1673
|
}
|
|
1661
|
-
.h-6 {
|
|
1662
|
-
height: calc(var(--spacing) * 6);
|
|
1663
|
-
}
|
|
1664
1674
|
.h-7 {
|
|
1665
1675
|
height: calc(var(--spacing) * 7);
|
|
1666
1676
|
}
|
|
@@ -1724,9 +1734,6 @@
|
|
|
1724
1734
|
.w-5 {
|
|
1725
1735
|
width: calc(var(--spacing) * 5);
|
|
1726
1736
|
}
|
|
1727
|
-
.w-6 {
|
|
1728
|
-
width: calc(var(--spacing) * 6);
|
|
1729
|
-
}
|
|
1730
1737
|
.w-9 {
|
|
1731
1738
|
width: calc(var(--spacing) * 9);
|
|
1732
1739
|
}
|
|
@@ -1829,12 +1836,18 @@
|
|
|
1829
1836
|
.flex-row {
|
|
1830
1837
|
flex-direction: row;
|
|
1831
1838
|
}
|
|
1839
|
+
.place-items-center {
|
|
1840
|
+
place-items: center;
|
|
1841
|
+
}
|
|
1832
1842
|
.items-baseline {
|
|
1833
1843
|
align-items: baseline;
|
|
1834
1844
|
}
|
|
1835
1845
|
.items-center {
|
|
1836
1846
|
align-items: center;
|
|
1837
1847
|
}
|
|
1848
|
+
.items-start {
|
|
1849
|
+
align-items: flex-start;
|
|
1850
|
+
}
|
|
1838
1851
|
.items-stretch {
|
|
1839
1852
|
align-items: stretch;
|
|
1840
1853
|
}
|
|
@@ -1975,28 +1988,18 @@
|
|
|
1975
1988
|
border-left-style: var(--tw-border-style);
|
|
1976
1989
|
border-left-width: 1px;
|
|
1977
1990
|
}
|
|
1978
|
-
.border-l-2 {
|
|
1979
|
-
border-left-style: var(--tw-border-style);
|
|
1980
|
-
border-left-width: 2px;
|
|
1981
|
-
}
|
|
1982
1991
|
.border-\[color\:oklch\(from_var\(--border\)_l_c_h\/0\.4\)\] {
|
|
1983
1992
|
border-color: oklch(from var(--border) l c h/0.4);
|
|
1984
1993
|
}
|
|
1985
1994
|
.border-\[color\:oklch\(from_var\(--border\)_l_c_h\/0\.6\)\] {
|
|
1986
1995
|
border-color: oklch(from var(--border) l c h/0.6);
|
|
1987
1996
|
}
|
|
1988
|
-
.border-\[color\:oklch\(from_var\(--border\)_l_c_h\/0\.25\)\] {
|
|
1989
|
-
border-color: oklch(from var(--border) l c h/0.25);
|
|
1990
|
-
}
|
|
1991
1997
|
.border-\[color\:var\(--accent\)\]\/60 {
|
|
1992
1998
|
border-color: var(--accent);
|
|
1993
1999
|
@supports (color: color-mix(in lab, red, red)) {
|
|
1994
2000
|
border-color: color-mix(in oklab, var(--accent) 60%, transparent);
|
|
1995
2001
|
}
|
|
1996
2002
|
}
|
|
1997
|
-
.border-accent {
|
|
1998
|
-
border-color: var(--boring-accent);
|
|
1999
|
-
}
|
|
2000
2003
|
.border-background {
|
|
2001
2004
|
border-color: var(--boring-background);
|
|
2002
2005
|
}
|
|
@@ -2021,6 +2024,9 @@
|
|
|
2021
2024
|
.border-t-transparent {
|
|
2022
2025
|
border-top-color: transparent;
|
|
2023
2026
|
}
|
|
2027
|
+
.bg-\[color\:oklch\(from_var\(--background\)_calc\(l-0\.01\)_c_h\)\] {
|
|
2028
|
+
background-color: oklch(from var(--background) calc(l - 0.01) c h);
|
|
2029
|
+
}
|
|
2024
2030
|
.bg-\[color\:var\(--accent\)\] {
|
|
2025
2031
|
background-color: var(--accent);
|
|
2026
2032
|
}
|
|
@@ -2051,6 +2057,9 @@
|
|
|
2051
2057
|
background-color: color-mix(in oklab, var(--boring-card) 60%, transparent);
|
|
2052
2058
|
}
|
|
2053
2059
|
}
|
|
2060
|
+
.bg-foreground {
|
|
2061
|
+
background-color: var(--boring-foreground);
|
|
2062
|
+
}
|
|
2054
2063
|
.bg-foreground\/5 {
|
|
2055
2064
|
background-color: var(--boring-foreground);
|
|
2056
2065
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2147,6 +2156,9 @@
|
|
|
2147
2156
|
.px-3 {
|
|
2148
2157
|
padding-inline: calc(var(--spacing) * 3);
|
|
2149
2158
|
}
|
|
2159
|
+
.px-3\.5 {
|
|
2160
|
+
padding-inline: calc(var(--spacing) * 3.5);
|
|
2161
|
+
}
|
|
2150
2162
|
.px-4 {
|
|
2151
2163
|
padding-inline: calc(var(--spacing) * 4);
|
|
2152
2164
|
}
|
|
@@ -2171,6 +2183,9 @@
|
|
|
2171
2183
|
.py-2 {
|
|
2172
2184
|
padding-block: calc(var(--spacing) * 2);
|
|
2173
2185
|
}
|
|
2186
|
+
.py-2\.5 {
|
|
2187
|
+
padding-block: calc(var(--spacing) * 2.5);
|
|
2188
|
+
}
|
|
2174
2189
|
.py-3 {
|
|
2175
2190
|
padding-block: calc(var(--spacing) * 3);
|
|
2176
2191
|
}
|
|
@@ -2195,9 +2210,6 @@
|
|
|
2195
2210
|
.pr-7 {
|
|
2196
2211
|
padding-right: calc(var(--spacing) * 7);
|
|
2197
2212
|
}
|
|
2198
|
-
.pb-1 {
|
|
2199
|
-
padding-bottom: calc(var(--spacing) * 1);
|
|
2200
|
-
}
|
|
2201
2213
|
.pb-2 {
|
|
2202
2214
|
padding-bottom: calc(var(--spacing) * 2);
|
|
2203
2215
|
}
|
|
@@ -2302,18 +2314,6 @@
|
|
|
2302
2314
|
--tw-tracking: -0.02em;
|
|
2303
2315
|
letter-spacing: -0.02em;
|
|
2304
2316
|
}
|
|
2305
|
-
.tracking-\[0\.12em\] {
|
|
2306
|
-
--tw-tracking: 0.12em;
|
|
2307
|
-
letter-spacing: 0.12em;
|
|
2308
|
-
}
|
|
2309
|
-
.tracking-\[0\.14em\] {
|
|
2310
|
-
--tw-tracking: 0.14em;
|
|
2311
|
-
letter-spacing: 0.14em;
|
|
2312
|
-
}
|
|
2313
|
-
.tracking-\[0\.16em\] {
|
|
2314
|
-
--tw-tracking: 0.16em;
|
|
2315
|
-
letter-spacing: 0.16em;
|
|
2316
|
-
}
|
|
2317
2317
|
.tracking-tight {
|
|
2318
2318
|
--tw-tracking: var(--tracking-tight);
|
|
2319
2319
|
letter-spacing: var(--tracking-tight);
|
|
@@ -2341,6 +2341,9 @@
|
|
|
2341
2341
|
.text-accent-foreground {
|
|
2342
2342
|
color: var(--boring-accent-foreground);
|
|
2343
2343
|
}
|
|
2344
|
+
.text-background {
|
|
2345
|
+
color: var(--boring-background);
|
|
2346
|
+
}
|
|
2344
2347
|
.text-card-foreground {
|
|
2345
2348
|
color: var(--boring-card-foreground);
|
|
2346
2349
|
}
|
|
@@ -2356,6 +2359,18 @@
|
|
|
2356
2359
|
.text-foreground {
|
|
2357
2360
|
color: var(--boring-foreground);
|
|
2358
2361
|
}
|
|
2362
|
+
.text-foreground\/65 {
|
|
2363
|
+
color: var(--boring-foreground);
|
|
2364
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2365
|
+
color: color-mix(in oklab, var(--boring-foreground) 65%, transparent);
|
|
2366
|
+
}
|
|
2367
|
+
}
|
|
2368
|
+
.text-foreground\/70 {
|
|
2369
|
+
color: var(--boring-foreground);
|
|
2370
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2371
|
+
color: color-mix(in oklab, var(--boring-foreground) 70%, transparent);
|
|
2372
|
+
}
|
|
2373
|
+
}
|
|
2359
2374
|
.text-foreground\/90 {
|
|
2360
2375
|
color: var(--boring-foreground);
|
|
2361
2376
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -2365,10 +2380,16 @@
|
|
|
2365
2380
|
.text-muted-foreground {
|
|
2366
2381
|
color: var(--boring-muted-foreground);
|
|
2367
2382
|
}
|
|
2368
|
-
.text-muted-foreground\/
|
|
2383
|
+
.text-muted-foreground\/40 {
|
|
2369
2384
|
color: var(--boring-muted-foreground);
|
|
2370
2385
|
@supports (color: color-mix(in lab, red, red)) {
|
|
2371
|
-
color: color-mix(in oklab, var(--boring-muted-foreground)
|
|
2386
|
+
color: color-mix(in oklab, var(--boring-muted-foreground) 40%, transparent);
|
|
2387
|
+
}
|
|
2388
|
+
}
|
|
2389
|
+
.text-muted-foreground\/45 {
|
|
2390
|
+
color: var(--boring-muted-foreground);
|
|
2391
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2392
|
+
color: color-mix(in oklab, var(--boring-muted-foreground) 45%, transparent);
|
|
2372
2393
|
}
|
|
2373
2394
|
}
|
|
2374
2395
|
.text-muted-foreground\/60 {
|
|
@@ -2383,12 +2404,24 @@
|
|
|
2383
2404
|
color: color-mix(in oklab, var(--boring-muted-foreground) 70%, transparent);
|
|
2384
2405
|
}
|
|
2385
2406
|
}
|
|
2407
|
+
.text-muted-foreground\/75 {
|
|
2408
|
+
color: var(--boring-muted-foreground);
|
|
2409
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2410
|
+
color: color-mix(in oklab, var(--boring-muted-foreground) 75%, transparent);
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2386
2413
|
.text-muted-foreground\/80 {
|
|
2387
2414
|
color: var(--boring-muted-foreground);
|
|
2388
2415
|
@supports (color: color-mix(in lab, red, red)) {
|
|
2389
2416
|
color: color-mix(in oklab, var(--boring-muted-foreground) 80%, transparent);
|
|
2390
2417
|
}
|
|
2391
2418
|
}
|
|
2419
|
+
.text-muted-foreground\/85 {
|
|
2420
|
+
color: var(--boring-muted-foreground);
|
|
2421
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2422
|
+
color: color-mix(in oklab, var(--boring-muted-foreground) 85%, transparent);
|
|
2423
|
+
}
|
|
2424
|
+
}
|
|
2392
2425
|
.text-popover-foreground {
|
|
2393
2426
|
color: var(--boring-popover-foreground);
|
|
2394
2427
|
}
|
|
@@ -2549,13 +2582,6 @@
|
|
|
2549
2582
|
.\[scrollbar-width\:none\] {
|
|
2550
2583
|
scrollbar-width: none;
|
|
2551
2584
|
}
|
|
2552
|
-
.group-hover\:text-muted-foreground {
|
|
2553
|
-
&:is(:where(.group):hover *) {
|
|
2554
|
-
@media (hover: hover) {
|
|
2555
|
-
color: var(--boring-muted-foreground);
|
|
2556
|
-
}
|
|
2557
|
-
}
|
|
2558
|
-
}
|
|
2559
2585
|
.group-hover\:opacity-100 {
|
|
2560
2586
|
&:is(:where(.group):hover *) {
|
|
2561
2587
|
@media (hover: hover) {
|
|
@@ -2656,6 +2682,16 @@
|
|
|
2656
2682
|
}
|
|
2657
2683
|
}
|
|
2658
2684
|
}
|
|
2685
|
+
.hover\:bg-muted\/70 {
|
|
2686
|
+
&:hover {
|
|
2687
|
+
@media (hover: hover) {
|
|
2688
|
+
background-color: var(--boring-muted);
|
|
2689
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2690
|
+
background-color: color-mix(in oklab, var(--boring-muted) 70%, transparent);
|
|
2691
|
+
}
|
|
2692
|
+
}
|
|
2693
|
+
}
|
|
2694
|
+
}
|
|
2659
2695
|
.hover\:bg-primary\/40 {
|
|
2660
2696
|
&:hover {
|
|
2661
2697
|
@media (hover: hover) {
|
|
@@ -5716,8 +5752,8 @@
|
|
|
5716
5752
|
--boring-secondary-foreground: oklch(0.985 0 0);
|
|
5717
5753
|
--boring-muted: oklch(0.269 0.006 285.885);
|
|
5718
5754
|
--boring-muted-foreground: oklch(0.708 0.01 286.073);
|
|
5719
|
-
--boring-accent: oklch(0.
|
|
5720
|
-
--boring-accent-foreground: oklch(0.
|
|
5755
|
+
--boring-accent: oklch(0.72 0.13 65);
|
|
5756
|
+
--boring-accent-foreground: oklch(0.18 0.02 65);
|
|
5721
5757
|
--boring-accent-soft: oklch(0.28 0.04 65);
|
|
5722
5758
|
--boring-success: oklch(0.74 0.14 145);
|
|
5723
5759
|
--boring-success-foreground: oklch(0.12 0.004 285.823);
|
|
@@ -5726,7 +5762,7 @@
|
|
|
5726
5762
|
--boring-destructive-foreground: oklch(0.985 0 0);
|
|
5727
5763
|
--boring-border: oklch(0.269 0.006 285.885);
|
|
5728
5764
|
--boring-input: oklch(0.269 0.006 285.885);
|
|
5729
|
-
--boring-ring: oklch(0.
|
|
5765
|
+
--boring-ring: oklch(0.72 0.13 65);
|
|
5730
5766
|
--boring-canvas: oklch(0.12 0.004 285.823);
|
|
5731
5767
|
--boring-surface-chat: oklch(0.165 0.004 285.823);
|
|
5732
5768
|
--boring-surface-workbench: oklch(0.165 0.004 285.823);
|
package/dist/workspace.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
var X = Object.defineProperty;
|
|
2
2
|
var q = (e, r, t) => r in e ? X(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
|
|
3
3
|
var T = (e, r, t) => q(e, typeof r != "symbol" ? r + "" : r, t);
|
|
4
|
-
import { u as z, a as G, b as Q, D as Y } from "./WorkspaceProvider-
|
|
5
|
-
import { A as ze, C as Ke, c as je, d as $e, e as _e, F as He, f as Ue, M as Ae, g as Je, P as Ve, h as Xe, i as qe, j as Ge, k as Qe, R as Ye, S as Ze, l as et, m as tt, T as nt, U as rt, W as at, n as st, o as ot, p as it, q as lt, r as ct, s as dt, t as ut, v as pt, w as mt, x as ht, y as ft, z as gt, B as bt, E as yt, G as vt, H as xt, I as St, J as Ct, K as Pt, L as kt, N as wt, O as Nt, Q as Et, V as Rt, X as Tt, Y as Ot, Z as It, _ as Lt, $ as Mt, a0 as Bt, a1 as Ft, a2 as Wt, a3 as Dt, a4 as zt, a5 as Kt, a6 as jt, a7 as $t, a8 as _t, a9 as Ht, aa as Ut, ab as At, ac as Jt, ad as Vt, ae as Xt, af as qt, ag as Gt, ah as Qt, ai as Yt } from "./WorkspaceProvider-
|
|
4
|
+
import { u as z, a as G, b as Q, D as Y } from "./WorkspaceProvider-Cn0sPgaB.js";
|
|
5
|
+
import { A as ze, C as Ke, c as je, d as $e, e as _e, F as He, f as Ue, M as Ae, g as Je, P as Ve, h as Xe, i as qe, j as Ge, k as Qe, R as Ye, S as Ze, l as et, m as tt, T as nt, U as rt, W as at, n as st, o as ot, p as it, q as lt, r as ct, s as dt, t as ut, v as pt, w as mt, x as ht, y as ft, z as gt, B as bt, E as yt, G as vt, H as xt, I as St, J as Ct, K as Pt, L as kt, N as wt, O as Nt, Q as Et, V as Rt, X as Tt, Y as Ot, Z as It, _ as Lt, $ as Mt, a0 as Bt, a1 as Ft, a2 as Wt, a3 as Dt, a4 as zt, a5 as Kt, a6 as jt, a7 as $t, a8 as _t, a9 as Ht, aa as Ut, ab as At, ac as Jt, ad as Vt, ae as Xt, af as qt, ag as Gt, ah as Qt, ai as Yt } from "./WorkspaceProvider-Cn0sPgaB.js";
|
|
6
6
|
import { c as w } from "./utils-B6yFEsav.js";
|
|
7
|
-
import { C as en, T as tn, W as nn, b as rn } from "./WorkspaceLoadingState-
|
|
7
|
+
import { C as en, T as tn, W as nn, b as rn } from "./WorkspaceLoadingState-hKrnYCL3.js";
|
|
8
8
|
import { jsxs as b, jsx as n, Fragment as Z } from "react/jsx-runtime";
|
|
9
9
|
import { Button as P, Sheet as ee, SheetContent as te, SheetHeader as ne, SheetTitle as re, SheetDescription as ae, EmptyState as se, Kbd as O, ErrorState as oe, IconButton as I } from "@hachej/boring-ui-kit";
|
|
10
10
|
import { Toaster as sn, dismissToast as on, toast as ln } from "@hachej/boring-ui-kit";
|
|
11
11
|
import { useSyncExternalStore as K, useState as N, useEffect as S, useRef as k, useCallback as y, useMemo as C, Suspense as ie, Component as le } from "react";
|
|
12
12
|
import { C as dn, c as un } from "./CodeEditor-DQqOn4xz.js";
|
|
13
|
-
import { FileTree as mn } from "./FileTree-
|
|
14
|
-
import { MarkdownEditor as fn } from "./MarkdownEditor-
|
|
13
|
+
import { FileTree as mn } from "./FileTree-D8Rmj8Bo.js";
|
|
14
|
+
import { MarkdownEditor as fn } from "./MarkdownEditor-DKC4gNT4.js";
|
|
15
15
|
import { MenuIcon as ce, PanelLeftOpenIcon as de, PanelLeftCloseIcon as ue, PinIcon as pe, CheckIcon as me, CopyIcon as he } from "lucide-react";
|
|
16
16
|
import { d as bn } from "./panel-DnvDNQac.js";
|
|
17
17
|
function Te() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hachej/boring-workspace",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Workspace UI, plugin, and bridge package for composing chat, files, catalogs, editors, and app-specific panes.",
|
|
@@ -120,16 +120,18 @@
|
|
|
120
120
|
"clsx": "^2.1.0",
|
|
121
121
|
"cmdk": "^1.1.1",
|
|
122
122
|
"dockview-react": "^4.13.1",
|
|
123
|
+
"dnd-core": "^14.0.1",
|
|
123
124
|
"fastify": "^5.3.3",
|
|
124
125
|
"jiti": "^2.6.1",
|
|
125
126
|
"lowlight": "^3.3.0",
|
|
126
127
|
"lucide-react": "^1.8.0",
|
|
127
128
|
"react-arborist": "^3.4.0",
|
|
129
|
+
"react-dnd-html5-backend": "^14.1.0",
|
|
128
130
|
"tailwind-merge": "^2.0.0",
|
|
129
131
|
"zod": "^3.23.0",
|
|
130
132
|
"zustand": "^5.0.0",
|
|
131
|
-
"@hachej/boring-agent": "0.1.
|
|
132
|
-
"@hachej/boring-ui-kit": "0.1.
|
|
133
|
+
"@hachej/boring-agent": "0.1.23",
|
|
134
|
+
"@hachej/boring-ui-kit": "0.1.23"
|
|
133
135
|
},
|
|
134
136
|
"devDependencies": {
|
|
135
137
|
"@tailwindcss/postcss": "^4.0.0",
|