@texturehq/edges 0.1.6 → 0.1.7
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/components.manifest.json +122 -2
- package/dist/index.cjs +5 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +64 -3
- package/dist/index.d.ts +64 -3
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/styles.css +168 -22
- package/package.json +1 -1
- package/scripts/setup-cursor-rules-manual.js +1 -14
- package/scripts/setup-cursor-rules.js +24 -44
package/dist/styles.css
CHANGED
|
@@ -217,9 +217,15 @@
|
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
@layer utilities {
|
|
220
|
+
.pointer-events-auto {
|
|
221
|
+
pointer-events: auto;
|
|
222
|
+
}
|
|
220
223
|
.pointer-events-none {
|
|
221
224
|
pointer-events: none;
|
|
222
225
|
}
|
|
226
|
+
.collapse {
|
|
227
|
+
visibility: collapse;
|
|
228
|
+
}
|
|
223
229
|
.invisible {
|
|
224
230
|
visibility: hidden;
|
|
225
231
|
}
|
|
@@ -270,6 +276,9 @@
|
|
|
270
276
|
.top-1\/2 {
|
|
271
277
|
top: calc(1/2 * 100%);
|
|
272
278
|
}
|
|
279
|
+
.top-2 {
|
|
280
|
+
top: calc(0.25rem * 2);
|
|
281
|
+
}
|
|
273
282
|
.-right-2 {
|
|
274
283
|
right: calc(0.25rem * -2);
|
|
275
284
|
}
|
|
@@ -372,6 +381,9 @@
|
|
|
372
381
|
.mb-2 {
|
|
373
382
|
margin-bottom: calc(0.25rem * 2);
|
|
374
383
|
}
|
|
384
|
+
.mb-3 {
|
|
385
|
+
margin-bottom: calc(0.25rem * 3);
|
|
386
|
+
}
|
|
375
387
|
.mb-4 {
|
|
376
388
|
margin-bottom: calc(0.25rem * 4);
|
|
377
389
|
}
|
|
@@ -483,6 +495,9 @@
|
|
|
483
495
|
.h-px {
|
|
484
496
|
height: 1px;
|
|
485
497
|
}
|
|
498
|
+
.max-h-48 {
|
|
499
|
+
max-height: calc(0.25rem * 48);
|
|
500
|
+
}
|
|
486
501
|
.max-h-\[300px\] {
|
|
487
502
|
max-height: 300px;
|
|
488
503
|
}
|
|
@@ -556,15 +571,15 @@
|
|
|
556
571
|
.w-full {
|
|
557
572
|
width: 100%;
|
|
558
573
|
}
|
|
574
|
+
.max-w-4xl {
|
|
575
|
+
max-width: 56rem;
|
|
576
|
+
}
|
|
559
577
|
.max-w-\[200px\] {
|
|
560
578
|
max-width: 200px;
|
|
561
579
|
}
|
|
562
580
|
.max-w-\[250px\] {
|
|
563
581
|
max-width: 250px;
|
|
564
582
|
}
|
|
565
|
-
.max-w-\[400px\] {
|
|
566
|
-
max-width: 400px;
|
|
567
|
-
}
|
|
568
583
|
.max-w-full {
|
|
569
584
|
max-width: 100%;
|
|
570
585
|
}
|
|
@@ -580,6 +595,9 @@
|
|
|
580
595
|
.max-w-xl {
|
|
581
596
|
max-width: 36rem;
|
|
582
597
|
}
|
|
598
|
+
.max-w-xs {
|
|
599
|
+
max-width: 20rem;
|
|
600
|
+
}
|
|
583
601
|
.min-w-0 {
|
|
584
602
|
min-width: calc(0.25rem * 0);
|
|
585
603
|
}
|
|
@@ -592,15 +610,9 @@
|
|
|
592
610
|
.min-w-\[150px\] {
|
|
593
611
|
min-width: 150px;
|
|
594
612
|
}
|
|
595
|
-
.min-w-\[200px\] {
|
|
596
|
-
min-width: 200px;
|
|
597
|
-
}
|
|
598
613
|
.min-w-\[208px\] {
|
|
599
614
|
min-width: 208px;
|
|
600
615
|
}
|
|
601
|
-
.min-w-\[var\(--trigger-width\)\] {
|
|
602
|
-
min-width: var(--trigger-width);
|
|
603
|
-
}
|
|
604
616
|
.flex-1 {
|
|
605
617
|
flex: 1;
|
|
606
618
|
}
|
|
@@ -649,6 +661,9 @@
|
|
|
649
661
|
.cursor-pointer {
|
|
650
662
|
cursor: pointer;
|
|
651
663
|
}
|
|
664
|
+
.cursor-text {
|
|
665
|
+
cursor: text;
|
|
666
|
+
}
|
|
652
667
|
.resize {
|
|
653
668
|
resize: both;
|
|
654
669
|
}
|
|
@@ -713,6 +728,9 @@
|
|
|
713
728
|
.justify-start {
|
|
714
729
|
justify-content: flex-start;
|
|
715
730
|
}
|
|
731
|
+
.\!gap-1 {
|
|
732
|
+
gap: calc(0.25rem * 1) !important;
|
|
733
|
+
}
|
|
716
734
|
.gap-0 {
|
|
717
735
|
gap: calc(0.25rem * 0);
|
|
718
736
|
}
|
|
@@ -722,6 +740,9 @@
|
|
|
722
740
|
.gap-1 {
|
|
723
741
|
gap: calc(0.25rem * 1);
|
|
724
742
|
}
|
|
743
|
+
.gap-1\.5 {
|
|
744
|
+
gap: calc(0.25rem * 1.5);
|
|
745
|
+
}
|
|
725
746
|
.gap-2 {
|
|
726
747
|
gap: calc(0.25rem * 2);
|
|
727
748
|
}
|
|
@@ -764,6 +785,13 @@
|
|
|
764
785
|
.gap-\[var\(--control-gap-xl\)\] {
|
|
765
786
|
gap: var(--control-gap-xl);
|
|
766
787
|
}
|
|
788
|
+
.space-y-1 {
|
|
789
|
+
:where(& > :not(:last-child)) {
|
|
790
|
+
--tw-space-y-reverse: 0;
|
|
791
|
+
margin-block-start: calc(calc(0.25rem * 1) * var(--tw-space-y-reverse));
|
|
792
|
+
margin-block-end: calc(calc(0.25rem * 1) * calc(1 - var(--tw-space-y-reverse)));
|
|
793
|
+
}
|
|
794
|
+
}
|
|
767
795
|
.space-y-1\.5 {
|
|
768
796
|
:where(& > :not(:last-child)) {
|
|
769
797
|
--tw-space-y-reverse: 0;
|
|
@@ -851,6 +879,9 @@
|
|
|
851
879
|
.overscroll-contain {
|
|
852
880
|
overscroll-behavior: contain;
|
|
853
881
|
}
|
|
882
|
+
.\!rounded-md {
|
|
883
|
+
border-radius: 0.375rem !important;
|
|
884
|
+
}
|
|
854
885
|
.rounded {
|
|
855
886
|
border-radius: 0.25rem;
|
|
856
887
|
}
|
|
@@ -952,6 +983,12 @@
|
|
|
952
983
|
.border-action-primary {
|
|
953
984
|
border-color: #444ae1;
|
|
954
985
|
}
|
|
986
|
+
.border-action-primary\/20 {
|
|
987
|
+
border-color: color-mix(in oklab, #444ae1 20%, transparent);
|
|
988
|
+
}
|
|
989
|
+
.border-blue-200 {
|
|
990
|
+
border-color: oklch(0.882 0.059 254.128);
|
|
991
|
+
}
|
|
955
992
|
.border-border-default {
|
|
956
993
|
border-color: #e5e7eb;
|
|
957
994
|
}
|
|
@@ -1033,6 +1070,9 @@
|
|
|
1033
1070
|
.bg-action-primary {
|
|
1034
1071
|
background-color: #444ae1;
|
|
1035
1072
|
}
|
|
1073
|
+
.bg-action-primary\/10 {
|
|
1074
|
+
background-color: color-mix(in oklab, #444ae1 10%, transparent);
|
|
1075
|
+
}
|
|
1036
1076
|
.bg-background-hover {
|
|
1037
1077
|
background-color: #f3f4f6;
|
|
1038
1078
|
}
|
|
@@ -1060,6 +1100,9 @@
|
|
|
1060
1100
|
.bg-blue-50 {
|
|
1061
1101
|
background-color: oklch(0.97 0.014 254.604);
|
|
1062
1102
|
}
|
|
1103
|
+
.bg-blue-100 {
|
|
1104
|
+
background-color: oklch(0.932 0.032 255.585);
|
|
1105
|
+
}
|
|
1063
1106
|
.bg-blue-500 {
|
|
1064
1107
|
background-color: oklch(0.623 0.214 259.815);
|
|
1065
1108
|
}
|
|
@@ -1221,6 +1264,9 @@
|
|
|
1221
1264
|
.p-\[1rem\] {
|
|
1222
1265
|
padding: 1rem;
|
|
1223
1266
|
}
|
|
1267
|
+
.\!px-1\.5 {
|
|
1268
|
+
padding-inline: calc(0.25rem * 1.5) !important;
|
|
1269
|
+
}
|
|
1224
1270
|
.\!px-2 {
|
|
1225
1271
|
padding-inline: calc(0.25rem * 2) !important;
|
|
1226
1272
|
}
|
|
@@ -1230,6 +1276,9 @@
|
|
|
1230
1276
|
.px-1 {
|
|
1231
1277
|
padding-inline: calc(0.25rem * 1);
|
|
1232
1278
|
}
|
|
1279
|
+
.px-1\.5 {
|
|
1280
|
+
padding-inline: calc(0.25rem * 1.5);
|
|
1281
|
+
}
|
|
1233
1282
|
.px-2 {
|
|
1234
1283
|
padding-inline: calc(0.25rem * 2);
|
|
1235
1284
|
}
|
|
@@ -1257,6 +1306,9 @@
|
|
|
1257
1306
|
.px-px {
|
|
1258
1307
|
padding-inline: 1px;
|
|
1259
1308
|
}
|
|
1309
|
+
.\!py-0\.5 {
|
|
1310
|
+
padding-block: calc(0.25rem * 0.5) !important;
|
|
1311
|
+
}
|
|
1260
1312
|
.py-0\.5 {
|
|
1261
1313
|
padding-block: calc(0.25rem * 0.5);
|
|
1262
1314
|
}
|
|
@@ -1269,6 +1321,9 @@
|
|
|
1269
1321
|
.py-2 {
|
|
1270
1322
|
padding-block: calc(0.25rem * 2);
|
|
1271
1323
|
}
|
|
1324
|
+
.py-2\.5 {
|
|
1325
|
+
padding-block: calc(0.25rem * 2.5);
|
|
1326
|
+
}
|
|
1272
1327
|
.py-3 {
|
|
1273
1328
|
padding-block: calc(0.25rem * 3);
|
|
1274
1329
|
}
|
|
@@ -1341,12 +1396,19 @@
|
|
|
1341
1396
|
.text-start {
|
|
1342
1397
|
text-align: start;
|
|
1343
1398
|
}
|
|
1399
|
+
.align-baseline {
|
|
1400
|
+
vertical-align: baseline;
|
|
1401
|
+
}
|
|
1344
1402
|
.align-middle {
|
|
1345
1403
|
vertical-align: middle;
|
|
1346
1404
|
}
|
|
1347
1405
|
.font-mono {
|
|
1348
1406
|
font-family: "Fira Code", monospace;
|
|
1349
1407
|
}
|
|
1408
|
+
.\!text-xs {
|
|
1409
|
+
font-size: 0.75rem !important;
|
|
1410
|
+
line-height: var(--tw-leading, calc(1 / 0.75)) !important;
|
|
1411
|
+
}
|
|
1350
1412
|
.text-2xl {
|
|
1351
1413
|
font-size: 1.5rem;
|
|
1352
1414
|
line-height: var(--tw-leading, calc(2 / 1.5));
|
|
@@ -1397,6 +1459,10 @@
|
|
|
1397
1459
|
.text-\[length\:var\(--control-text-xl\)\] {
|
|
1398
1460
|
font-size: var(--control-text-xl);
|
|
1399
1461
|
}
|
|
1462
|
+
.\!leading-none {
|
|
1463
|
+
--tw-leading: 1 !important;
|
|
1464
|
+
line-height: 1 !important;
|
|
1465
|
+
}
|
|
1400
1466
|
.leading-\[2\.25\] {
|
|
1401
1467
|
--tw-leading: 2.25;
|
|
1402
1468
|
line-height: 2.25;
|
|
@@ -1471,6 +1537,9 @@
|
|
|
1471
1537
|
.text-blue-600 {
|
|
1472
1538
|
color: oklch(0.546 0.245 262.881);
|
|
1473
1539
|
}
|
|
1540
|
+
.text-blue-800 {
|
|
1541
|
+
color: oklch(0.424 0.199 265.638);
|
|
1542
|
+
}
|
|
1474
1543
|
.text-brand-dark {
|
|
1475
1544
|
color: #363ccb;
|
|
1476
1545
|
}
|
|
@@ -1480,6 +1549,9 @@
|
|
|
1480
1549
|
.text-brand-primary {
|
|
1481
1550
|
color: #444ae1;
|
|
1482
1551
|
}
|
|
1552
|
+
.text-current {
|
|
1553
|
+
color: currentcolor;
|
|
1554
|
+
}
|
|
1483
1555
|
.text-feedback-error-text {
|
|
1484
1556
|
color: #b91c1c;
|
|
1485
1557
|
}
|
|
@@ -1581,9 +1653,6 @@
|
|
|
1581
1653
|
--tw-numeric-spacing: tabular-nums;
|
|
1582
1654
|
font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
|
|
1583
1655
|
}
|
|
1584
|
-
.caret-transparent {
|
|
1585
|
-
caret-color: transparent;
|
|
1586
|
-
}
|
|
1587
1656
|
.opacity-0 {
|
|
1588
1657
|
opacity: 0%;
|
|
1589
1658
|
}
|
|
@@ -1593,6 +1662,9 @@
|
|
|
1593
1662
|
.opacity-60 {
|
|
1594
1663
|
opacity: 60%;
|
|
1595
1664
|
}
|
|
1665
|
+
.opacity-70 {
|
|
1666
|
+
opacity: 70%;
|
|
1667
|
+
}
|
|
1596
1668
|
.opacity-100 {
|
|
1597
1669
|
opacity: 100%;
|
|
1598
1670
|
}
|
|
@@ -1611,6 +1683,10 @@
|
|
|
1611
1683
|
--tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
|
|
1612
1684
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1613
1685
|
}
|
|
1686
|
+
.shadow-lg {
|
|
1687
|
+
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1688
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1689
|
+
}
|
|
1614
1690
|
.shadow-md {
|
|
1615
1691
|
--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1616
1692
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -2005,6 +2081,13 @@
|
|
|
2005
2081
|
}
|
|
2006
2082
|
}
|
|
2007
2083
|
}
|
|
2084
|
+
.hover\:bg-action-primary\/15 {
|
|
2085
|
+
&:hover {
|
|
2086
|
+
@media (hover: hover) {
|
|
2087
|
+
background-color: color-mix(in oklab, #444ae1 15%, transparent);
|
|
2088
|
+
}
|
|
2089
|
+
}
|
|
2090
|
+
}
|
|
2008
2091
|
.hover\:bg-background-hover {
|
|
2009
2092
|
&:hover {
|
|
2010
2093
|
@media (hover: hover) {
|
|
@@ -2012,6 +2095,23 @@
|
|
|
2012
2095
|
}
|
|
2013
2096
|
}
|
|
2014
2097
|
}
|
|
2098
|
+
.hover\:bg-black\/10 {
|
|
2099
|
+
&:hover {
|
|
2100
|
+
@media (hover: hover) {
|
|
2101
|
+
background-color: color-mix(in srgb, #333333 10%, transparent);
|
|
2102
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2103
|
+
background-color: color-mix(in oklab, var(--color-neutral-black) 10%, transparent);
|
|
2104
|
+
}
|
|
2105
|
+
}
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
.hover\:bg-blue-200 {
|
|
2109
|
+
&:hover {
|
|
2110
|
+
@media (hover: hover) {
|
|
2111
|
+
background-color: oklch(0.882 0.059 254.128);
|
|
2112
|
+
}
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2015
2115
|
.hover\:bg-blue-600 {
|
|
2016
2116
|
&:hover {
|
|
2017
2117
|
@media (hover: hover) {
|
|
@@ -2117,6 +2217,13 @@
|
|
|
2117
2217
|
}
|
|
2118
2218
|
}
|
|
2119
2219
|
}
|
|
2220
|
+
.hover\:opacity-100 {
|
|
2221
|
+
&:hover {
|
|
2222
|
+
@media (hover: hover) {
|
|
2223
|
+
opacity: 100%;
|
|
2224
|
+
}
|
|
2225
|
+
}
|
|
2226
|
+
}
|
|
2120
2227
|
.hover\:brightness-90 {
|
|
2121
2228
|
&:hover {
|
|
2122
2229
|
@media (hover: hover) {
|
|
@@ -2218,6 +2325,22 @@
|
|
|
2218
2325
|
opacity: 100%;
|
|
2219
2326
|
}
|
|
2220
2327
|
}
|
|
2328
|
+
.data-\[focused\]\:\!outline-\[1\.5px\] {
|
|
2329
|
+
&[data-focused] {
|
|
2330
|
+
outline-style: var(--tw-outline-style) !important;
|
|
2331
|
+
outline-width: 1.5px !important;
|
|
2332
|
+
}
|
|
2333
|
+
}
|
|
2334
|
+
.data-\[focused\]\:\!outline-\[var\(--control-focus-ring-color\)\] {
|
|
2335
|
+
&[data-focused] {
|
|
2336
|
+
outline-color: var(--control-focus-ring-color) !important;
|
|
2337
|
+
}
|
|
2338
|
+
}
|
|
2339
|
+
.data-\[focused\]\:\!\[--tw-outline-style\:solid\] {
|
|
2340
|
+
&[data-focused] {
|
|
2341
|
+
--tw-outline-style: solid !important;
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2221
2344
|
.data-\[placeholder\]\:text-text-placeholder {
|
|
2222
2345
|
&[data-placeholder] {
|
|
2223
2346
|
color: #9ca3af;
|
|
@@ -2365,11 +2488,6 @@
|
|
|
2365
2488
|
color: #333333;
|
|
2366
2489
|
}
|
|
2367
2490
|
}
|
|
2368
|
-
.dark\:text-white {
|
|
2369
|
-
@media (prefers-color-scheme: dark) {
|
|
2370
|
-
color: var(--color-neutral-white);
|
|
2371
|
-
}
|
|
2372
|
-
}
|
|
2373
2491
|
.dark\:text-zinc-100 {
|
|
2374
2492
|
@media (prefers-color-scheme: dark) {
|
|
2375
2493
|
color: oklch(0.967 0.001 286.375);
|
|
@@ -2385,11 +2503,6 @@
|
|
|
2385
2503
|
color: oklch(0.871 0.006 286.286);
|
|
2386
2504
|
}
|
|
2387
2505
|
}
|
|
2388
|
-
.dark\:text-zinc-400 {
|
|
2389
|
-
@media (prefers-color-scheme: dark) {
|
|
2390
|
-
color: oklch(0.705 0.015 286.067);
|
|
2391
|
-
}
|
|
2392
|
-
}
|
|
2393
2506
|
.dark\:text-zinc-600 {
|
|
2394
2507
|
@media (prefers-color-scheme: dark) {
|
|
2395
2508
|
color: oklch(0.442 0.017 285.786);
|
|
@@ -2643,6 +2756,14 @@
|
|
|
2643
2756
|
}
|
|
2644
2757
|
}
|
|
2645
2758
|
}
|
|
2759
|
+
.\[\&_\[data-chip-id\]\:\:selection\]\:bg-action-primary\/20 {
|
|
2760
|
+
& [data-chip-id]::-moz-selection {
|
|
2761
|
+
background-color: color-mix(in oklab, #444ae1 20%, transparent);
|
|
2762
|
+
}
|
|
2763
|
+
& [data-chip-id]::selection {
|
|
2764
|
+
background-color: color-mix(in oklab, #444ae1 20%, transparent);
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2646
2767
|
.\[\&_td\]\:px-0 {
|
|
2647
2768
|
& td {
|
|
2648
2769
|
padding-inline: calc(0.25rem * 0);
|
|
@@ -2783,6 +2904,31 @@
|
|
|
2783
2904
|
}
|
|
2784
2905
|
}
|
|
2785
2906
|
}
|
|
2907
|
+
.\[\&\:empty\]\:before\:pointer-events-none {
|
|
2908
|
+
&:empty {
|
|
2909
|
+
&::before {
|
|
2910
|
+
content: var(--tw-content);
|
|
2911
|
+
pointer-events: none;
|
|
2912
|
+
}
|
|
2913
|
+
}
|
|
2914
|
+
}
|
|
2915
|
+
.\[\&\:empty\]\:before\:text-text-placeholder {
|
|
2916
|
+
&:empty {
|
|
2917
|
+
&::before {
|
|
2918
|
+
content: var(--tw-content);
|
|
2919
|
+
color: #9ca3af;
|
|
2920
|
+
}
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
.\[\&\:empty\]\:before\:content-\[attr\(data-placeholder\)\] {
|
|
2924
|
+
&:empty {
|
|
2925
|
+
&::before {
|
|
2926
|
+
content: var(--tw-content);
|
|
2927
|
+
--tw-content: attr(data-placeholder);
|
|
2928
|
+
content: var(--tw-content);
|
|
2929
|
+
}
|
|
2930
|
+
}
|
|
2931
|
+
}
|
|
2786
2932
|
.\[\&\>\*\]\:rounded-none {
|
|
2787
2933
|
&>* {
|
|
2788
2934
|
border-radius: 0;
|
package/package.json
CHANGED
|
@@ -100,13 +100,6 @@ const setupCursorRules = () => {
|
|
|
100
100
|
|
|
101
101
|
const targetPath = path.join(rulesDir, file);
|
|
102
102
|
|
|
103
|
-
// Backup existing rule before overwriting
|
|
104
|
-
if (fs.existsSync(targetPath)) {
|
|
105
|
-
const backupsDir = path.join(rulesDir, "_backups");
|
|
106
|
-
fs.mkdirSync(backupsDir, { recursive: true });
|
|
107
|
-
const ts = new Date().toISOString().replace(/[:.]/g, "-");
|
|
108
|
-
fs.copyFileSync(targetPath, path.join(backupsDir, `${file}.${ts}.bak`));
|
|
109
|
-
}
|
|
110
103
|
// Always overwrite to ensure version-specific rules
|
|
111
104
|
fs.writeFileSync(targetPath, templateContent, "utf8");
|
|
112
105
|
copiedCount++;
|
|
@@ -143,13 +136,7 @@ const setupCursorRules = () => {
|
|
|
143
136
|
}
|
|
144
137
|
}
|
|
145
138
|
const outPath = path.join(rulesDir, 'edges-components.mdc');
|
|
146
|
-
|
|
147
|
-
if (fs.existsSync(outPath)) {
|
|
148
|
-
const backupsDir = path.join(rulesDir, "_backups");
|
|
149
|
-
fs.mkdirSync(backupsDir, { recursive: true });
|
|
150
|
-
const ts = new Date().toISOString().replace(/[:.]/g, "-");
|
|
151
|
-
fs.copyFileSync(outPath, path.join(backupsDir, `edges-components.mdc.${ts}.bak`));
|
|
152
|
-
}
|
|
139
|
+
|
|
153
140
|
fs.writeFileSync(outPath, lines.join('\n'), "utf8");
|
|
154
141
|
console.log(`✅ Wrote .cursor/rules/edges-components.mdc from manifest (${manifest.components?.length || 0} components)`);
|
|
155
142
|
} catch (err) {
|
|
@@ -36,13 +36,6 @@ const setupCursorRules = () => {
|
|
|
36
36
|
const templatePath = path.join(cursorTemplatesDir, file);
|
|
37
37
|
const targetPath = path.join(rulesDir, file);
|
|
38
38
|
|
|
39
|
-
// Backup existing rule before overwriting
|
|
40
|
-
if (fs.existsSync(targetPath)) {
|
|
41
|
-
const backupsDir = path.join(rulesDir, "_backups");
|
|
42
|
-
fs.mkdirSync(backupsDir, { recursive: true });
|
|
43
|
-
const ts = new Date().toISOString().replace(/[:.]/g, "-");
|
|
44
|
-
fs.copyFileSync(targetPath, path.join(backupsDir, `${file}.${ts}.bak`));
|
|
45
|
-
}
|
|
46
39
|
// Always copy to ensure latest version
|
|
47
40
|
fs.copyFileSync(templatePath, targetPath);
|
|
48
41
|
copiedCount++;
|
|
@@ -57,30 +50,29 @@ const setupCursorRules = () => {
|
|
|
57
50
|
|
|
58
51
|
// Setup Claude rules
|
|
59
52
|
if (fs.existsSync(claudeTemplatesDir)) {
|
|
60
|
-
const claudeTemplateFiles = fs.readdirSync(claudeTemplatesDir).filter(file => file.endsWith('.md')
|
|
53
|
+
const claudeTemplateFiles = fs.readdirSync(claudeTemplatesDir).filter(file => file.endsWith('.md'));
|
|
61
54
|
|
|
62
55
|
if (claudeTemplateFiles.length > 0) {
|
|
63
56
|
let claudeCopiedCount = 0;
|
|
64
57
|
|
|
58
|
+
// Create .claude directory for namespaced files
|
|
59
|
+
const claudeDir = path.join(cwd, '.claude');
|
|
60
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
61
|
+
|
|
65
62
|
claudeTemplateFiles.forEach(file => {
|
|
66
63
|
const templatePath = path.join(claudeTemplatesDir, file);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (fs.existsSync(targetPath)) {
|
|
71
|
-
const backupPath = `${targetPath}.${new Date().toISOString().replace(/[:.]/g, "-")}.bak`;
|
|
72
|
-
fs.copyFileSync(targetPath, backupPath);
|
|
73
|
-
console.log(`📋 Backed up existing ${file} to ${backupPath}`);
|
|
74
|
-
}
|
|
64
|
+
// Namespace the file as edges-specific
|
|
65
|
+
const namespacedFileName = 'edges.md';
|
|
66
|
+
const targetPath = path.join(claudeDir, namespacedFileName);
|
|
75
67
|
|
|
76
68
|
// Always copy to ensure latest version
|
|
77
69
|
fs.copyFileSync(templatePath, targetPath);
|
|
78
70
|
claudeCopiedCount++;
|
|
79
|
-
console.log(`✅ Updated
|
|
71
|
+
console.log(`✅ Updated .claude/${namespacedFileName} for Claude`);
|
|
80
72
|
});
|
|
81
73
|
|
|
82
74
|
if (claudeCopiedCount > 0) {
|
|
83
|
-
console.log(`🤖 Added ${claudeCopiedCount} Claude rule(s) for @texturehq/edges design system`);
|
|
75
|
+
console.log(`🤖 Added ${claudeCopiedCount} namespaced Claude rule(s) for @texturehq/edges design system`);
|
|
84
76
|
}
|
|
85
77
|
}
|
|
86
78
|
}
|
|
@@ -137,13 +129,7 @@ const setupCursorRules = () => {
|
|
|
137
129
|
cursorLines.push('');
|
|
138
130
|
}
|
|
139
131
|
const cursorOutPath = path.join(rulesDir, 'edges-components.mdc');
|
|
140
|
-
|
|
141
|
-
if (fs.existsSync(cursorOutPath)) {
|
|
142
|
-
const backupsDir = path.join(rulesDir, "_backups");
|
|
143
|
-
fs.mkdirSync(backupsDir, { recursive: true });
|
|
144
|
-
const ts = new Date().toISOString().replace(/[:.]/g, "-");
|
|
145
|
-
fs.copyFileSync(cursorOutPath, path.join(backupsDir, `edges-components.mdc.${ts}.bak`));
|
|
146
|
-
}
|
|
132
|
+
|
|
147
133
|
fs.writeFileSync(cursorOutPath, cursorLines.join('\n'), "utf8");
|
|
148
134
|
console.log(`✅ Wrote .cursor/rules/edges-components.mdc from manifest (${manifest.components?.length || 0} components)`);
|
|
149
135
|
|
|
@@ -183,25 +169,19 @@ const setupCursorRules = () => {
|
|
|
183
169
|
claudeLines.push('');
|
|
184
170
|
}
|
|
185
171
|
|
|
186
|
-
// Update Claude
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
console.log(`📋 Backed up existing ${templateName} to ${backupPath}`);
|
|
200
|
-
}
|
|
201
|
-
fs.writeFileSync(claudeOutPath, claudeContent, "utf8");
|
|
202
|
-
console.log(`✅ Wrote ${templateName} with components list (${manifest.components?.length || 0} components)`);
|
|
203
|
-
}
|
|
204
|
-
});
|
|
172
|
+
// Update Claude template with components list
|
|
173
|
+
const claudeTemplatePath = path.join(claudeTemplatesDir, 'claude.md');
|
|
174
|
+
if (fs.existsSync(claudeTemplatePath)) {
|
|
175
|
+
const claudeDir = path.join(cwd, '.claude');
|
|
176
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
177
|
+
|
|
178
|
+
let claudeContent = fs.readFileSync(claudeTemplatePath, 'utf8');
|
|
179
|
+
claudeContent = claudeContent.split("{{COMPONENTS_LIST}}").join(claudeLines.join("\n"));
|
|
180
|
+
|
|
181
|
+
const claudeOutPath = path.join(claudeDir, 'edges.md');
|
|
182
|
+
fs.writeFileSync(claudeOutPath, claudeContent, "utf8");
|
|
183
|
+
console.log(`✅ Wrote .claude/edges.md with components list (${manifest.components?.length || 0} components)`);
|
|
184
|
+
}
|
|
205
185
|
} catch (err) {
|
|
206
186
|
console.log('⚠️ Failed to read components.manifest.json:', err.message);
|
|
207
187
|
}
|