@polishd/next 0.2.0 → 0.2.1-dev.1
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/CHANGELOG.md +69 -0
- package/README.md +49 -2
- package/dist/ai/actions.d.ts +7 -1
- package/dist/ai/actions.d.ts.map +1 -1
- package/dist/ai/actions.js +10 -0
- package/dist/ai/actions.js.map +1 -1
- package/dist/ai/design.d.ts +28 -0
- package/dist/ai/design.d.ts.map +1 -0
- package/dist/ai/design.js +245 -0
- package/dist/ai/design.js.map +1 -0
- package/dist/ai/types.d.ts +47 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/client/design-scan.d.ts +37 -0
- package/dist/client/design-scan.d.ts.map +1 -0
- package/dist/client/design-scan.js +325 -0
- package/dist/client/design-scan.js.map +1 -0
- package/dist/client/init.d.ts.map +1 -1
- package/dist/client/init.js +16 -0
- package/dist/client/init.js.map +1 -1
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +34 -0
- package/dist/config.js.map +1 -1
- package/dist/dashboard/design-review-card.d.ts +15 -0
- package/dist/dashboard/design-review-card.d.ts.map +1 -0
- package/dist/dashboard/design-review-card.js +82 -0
- package/dist/dashboard/design-review-card.js.map +1 -0
- package/dist/dashboard/design.d.ts +10 -0
- package/dist/dashboard/design.d.ts.map +1 -0
- package/dist/dashboard/design.js +118 -0
- package/dist/dashboard/design.js.map +1 -0
- package/dist/dashboard/index.d.ts +11 -0
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +58 -8
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/journeys.d.ts.map +1 -1
- package/dist/dashboard/journeys.js +1 -0
- package/dist/dashboard/journeys.js.map +1 -1
- package/dist/dashboard/show-more.d.ts +17 -0
- package/dist/dashboard/show-more.d.ts.map +1 -0
- package/dist/dashboard/show-more.js +18 -0
- package/dist/dashboard/show-more.js.map +1 -0
- package/dist/dashboard.css +159 -0
- package/dist/server/design.d.ts +93 -0
- package/dist/server/design.d.ts.map +1 -0
- package/dist/server/design.js +405 -0
- package/dist/server/design.js.map +1 -0
- package/dist/server/ingest.d.ts.map +1 -1
- package/dist/server/ingest.js +15 -3
- package/dist/server/ingest.js.map +1 -1
- package/dist/server/queries.d.ts +22 -0
- package/dist/server/queries.d.ts.map +1 -1
- package/dist/server/queries.js +22 -25
- package/dist/server/queries.js.map +1 -1
- package/dist/shared/types.d.ts +31 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +1 -0
- package/dist/shared/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Polishd — collapse long lists behind a "Show more" toggle.
|
|
5
|
+
*
|
|
6
|
+
* The Design tab's sections are server-rendered; this is the one client-side
|
|
7
|
+
* piece they share. The server passes the overflow rows as `children`, so the
|
|
8
|
+
* hidden content is already rendered and toggling costs nothing — no state
|
|
9
|
+
* beyond a boolean, no refetch.
|
|
10
|
+
*/
|
|
11
|
+
import { useState } from "react";
|
|
12
|
+
export default function ShowMore({ count, label, children, }) {
|
|
13
|
+
const [open, setOpen] = useState(false);
|
|
14
|
+
if (count <= 0)
|
|
15
|
+
return _jsx(_Fragment, { children: children });
|
|
16
|
+
return (_jsxs(_Fragment, { children: [open && children, _jsx("div", { className: "border-t border-[#2e2e2e] px-4 py-2.5 sm:px-5", children: _jsx("button", { type: "button", onClick: () => setOpen((o) => !o), className: "text-[11px] font-medium text-[#888] transition-colors hover:text-white", children: open ? `Show less ↑` : `Show ${count} more ${label} ↓` }) })] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=show-more.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-more.js","sourceRoot":"","sources":["../../src/dashboard/show-more.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,GAOT;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACvC,OAAO,CACL,8BACG,IAAI,IAAI,QAAQ,EACjB,cAAK,SAAS,EAAC,+CAA+C,YAC5D,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACjC,SAAS,EAAC,wEAAwE,YAEjF,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,KAAK,IAAI,GAChD,GACL,IACL,CACJ,CAAC;AACJ,CAAC"}
|
package/dist/dashboard.css
CHANGED
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
--color-red-950: oklch(25.8% .092 26.042);
|
|
79
79
|
--color-amber-300: oklch(87.9% .169 91.605);
|
|
80
80
|
--color-amber-400: oklch(82.8% .189 84.429);
|
|
81
|
+
--color-amber-500: oklch(76.9% .188 70.08);
|
|
81
82
|
--color-amber-900: oklch(41.4% .112 45.904);
|
|
82
83
|
--color-amber-950: oklch(27.9% .077 45.635);
|
|
83
84
|
--color-emerald-400: oklch(76.5% .177 163.223);
|
|
@@ -100,6 +101,7 @@
|
|
|
100
101
|
--container-lg: 32rem;
|
|
101
102
|
--container-xl: 36rem;
|
|
102
103
|
--container-5xl: 64rem;
|
|
104
|
+
--container-6xl: 72rem;
|
|
103
105
|
--font-weight-normal: 400;
|
|
104
106
|
--font-weight-medium: 500;
|
|
105
107
|
--font-weight-semibold: 600;
|
|
@@ -109,6 +111,7 @@
|
|
|
109
111
|
--tracking-wider: .05em;
|
|
110
112
|
--leading-snug: 1.375;
|
|
111
113
|
--leading-relaxed: 1.625;
|
|
114
|
+
--radius-sm: .25rem;
|
|
112
115
|
--radius-md: .375rem;
|
|
113
116
|
--radius-lg: .5rem;
|
|
114
117
|
--radius-xl: .75rem;
|
|
@@ -218,6 +221,10 @@
|
|
|
218
221
|
pointer-events: none;
|
|
219
222
|
}
|
|
220
223
|
|
|
224
|
+
.polishd-root.polishd-root .collapse {
|
|
225
|
+
visibility: collapse;
|
|
226
|
+
}
|
|
227
|
+
|
|
221
228
|
.polishd-root.polishd-root .invisible {
|
|
222
229
|
visibility: hidden;
|
|
223
230
|
}
|
|
@@ -428,6 +435,10 @@
|
|
|
428
435
|
margin-top: 5px;
|
|
429
436
|
}
|
|
430
437
|
|
|
438
|
+
.polishd-root.polishd-root .mt-\[7px\] {
|
|
439
|
+
margin-top: 7px;
|
|
440
|
+
}
|
|
441
|
+
|
|
431
442
|
.polishd-root.polishd-root .mt-\[18px\] {
|
|
432
443
|
margin-top: 18px;
|
|
433
444
|
}
|
|
@@ -540,6 +551,10 @@
|
|
|
540
551
|
height: calc(var(--spacing) * 3.5);
|
|
541
552
|
}
|
|
542
553
|
|
|
554
|
+
.polishd-root.polishd-root .h-4 {
|
|
555
|
+
height: calc(var(--spacing) * 4);
|
|
556
|
+
}
|
|
557
|
+
|
|
543
558
|
.polishd-root.polishd-root .h-5 {
|
|
544
559
|
height: calc(var(--spacing) * 5);
|
|
545
560
|
}
|
|
@@ -548,6 +563,18 @@
|
|
|
548
563
|
height: calc(var(--spacing) * 7);
|
|
549
564
|
}
|
|
550
565
|
|
|
566
|
+
.polishd-root.polishd-root .h-9 {
|
|
567
|
+
height: calc(var(--spacing) * 9);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.polishd-root.polishd-root .h-12 {
|
|
571
|
+
height: calc(var(--spacing) * 12);
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
.polishd-root.polishd-root .h-16 {
|
|
575
|
+
height: calc(var(--spacing) * 16);
|
|
576
|
+
}
|
|
577
|
+
|
|
551
578
|
.polishd-root.polishd-root .h-\[5px\] {
|
|
552
579
|
height: 5px;
|
|
553
580
|
}
|
|
@@ -592,6 +619,10 @@
|
|
|
592
619
|
min-height: 100dvh;
|
|
593
620
|
}
|
|
594
621
|
|
|
622
|
+
.polishd-root.polishd-root .w-1 {
|
|
623
|
+
width: var(--spacing);
|
|
624
|
+
}
|
|
625
|
+
|
|
595
626
|
.polishd-root.polishd-root .w-1\.5 {
|
|
596
627
|
width: calc(var(--spacing) * 1.5);
|
|
597
628
|
}
|
|
@@ -608,6 +639,10 @@
|
|
|
608
639
|
width: calc(var(--spacing) * 3.5);
|
|
609
640
|
}
|
|
610
641
|
|
|
642
|
+
.polishd-root.polishd-root .w-4 {
|
|
643
|
+
width: calc(var(--spacing) * 4);
|
|
644
|
+
}
|
|
645
|
+
|
|
611
646
|
.polishd-root.polishd-root .w-7 {
|
|
612
647
|
width: calc(var(--spacing) * 7);
|
|
613
648
|
}
|
|
@@ -620,6 +655,10 @@
|
|
|
620
655
|
width: calc(var(--spacing) * 12);
|
|
621
656
|
}
|
|
622
657
|
|
|
658
|
+
.polishd-root.polishd-root .w-14 {
|
|
659
|
+
width: calc(var(--spacing) * 14);
|
|
660
|
+
}
|
|
661
|
+
|
|
623
662
|
.polishd-root.polishd-root .w-16 {
|
|
624
663
|
width: calc(var(--spacing) * 16);
|
|
625
664
|
}
|
|
@@ -672,6 +711,10 @@
|
|
|
672
711
|
max-width: var(--container-5xl);
|
|
673
712
|
}
|
|
674
713
|
|
|
714
|
+
.polishd-root.polishd-root .max-w-6xl {
|
|
715
|
+
max-width: var(--container-6xl);
|
|
716
|
+
}
|
|
717
|
+
|
|
675
718
|
.polishd-root.polishd-root .max-w-\[15ch\] {
|
|
676
719
|
max-width: 15ch;
|
|
677
720
|
}
|
|
@@ -833,6 +876,10 @@
|
|
|
833
876
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
834
877
|
}
|
|
835
878
|
|
|
879
|
+
.polishd-root.polishd-root .grid-cols-3 {
|
|
880
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
881
|
+
}
|
|
882
|
+
|
|
836
883
|
.polishd-root.polishd-root .flex-col {
|
|
837
884
|
flex-direction: column;
|
|
838
885
|
}
|
|
@@ -873,6 +920,10 @@
|
|
|
873
920
|
gap: calc(var(--spacing) * .5);
|
|
874
921
|
}
|
|
875
922
|
|
|
923
|
+
.polishd-root.polishd-root .gap-1 {
|
|
924
|
+
gap: var(--spacing);
|
|
925
|
+
}
|
|
926
|
+
|
|
876
927
|
.polishd-root.polishd-root .gap-1\.5 {
|
|
877
928
|
gap: calc(var(--spacing) * 1.5);
|
|
878
929
|
}
|
|
@@ -901,6 +952,10 @@
|
|
|
901
952
|
gap: calc(var(--spacing) * 5);
|
|
902
953
|
}
|
|
903
954
|
|
|
955
|
+
.polishd-root.polishd-root .gap-6 {
|
|
956
|
+
gap: calc(var(--spacing) * 6);
|
|
957
|
+
}
|
|
958
|
+
|
|
904
959
|
.polishd-root.polishd-root .gap-10 {
|
|
905
960
|
gap: calc(var(--spacing) * 10);
|
|
906
961
|
}
|
|
@@ -947,6 +1002,10 @@
|
|
|
947
1002
|
column-gap: calc(var(--spacing) * 3);
|
|
948
1003
|
}
|
|
949
1004
|
|
|
1005
|
+
.polishd-root.polishd-root .gap-x-4 {
|
|
1006
|
+
column-gap: calc(var(--spacing) * 4);
|
|
1007
|
+
}
|
|
1008
|
+
|
|
950
1009
|
.polishd-root.polishd-root .gap-y-0\.5 {
|
|
951
1010
|
row-gap: calc(var(--spacing) * .5);
|
|
952
1011
|
}
|
|
@@ -1013,6 +1072,10 @@
|
|
|
1013
1072
|
border-radius: var(--radius-md);
|
|
1014
1073
|
}
|
|
1015
1074
|
|
|
1075
|
+
.polishd-root.polishd-root .rounded-sm {
|
|
1076
|
+
border-radius: var(--radius-sm);
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1016
1079
|
.polishd-root.polishd-root .rounded-t-xl {
|
|
1017
1080
|
border-top-left-radius: var(--radius-xl);
|
|
1018
1081
|
border-top-right-radius: var(--radius-xl);
|
|
@@ -1057,6 +1120,10 @@
|
|
|
1057
1120
|
border-color: #1a1a1a;
|
|
1058
1121
|
}
|
|
1059
1122
|
|
|
1123
|
+
.polishd-root.polishd-root .border-\[\#1e3a5f\]\/60 {
|
|
1124
|
+
border-color: oklab(34.6182% -.0177443 -.0713795 / .6);
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1060
1127
|
.polishd-root.polishd-root .border-\[\#2e2e2e\] {
|
|
1061
1128
|
border-color: #2e2e2e;
|
|
1062
1129
|
}
|
|
@@ -1111,6 +1178,10 @@
|
|
|
1111
1178
|
background-color: #0a0a0a;
|
|
1112
1179
|
}
|
|
1113
1180
|
|
|
1181
|
+
.polishd-root.polishd-root .bg-\[\#0c1a2b\]\/60 {
|
|
1182
|
+
background-color: oklab(21.479% -.0106614 -.037564 / .6);
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1114
1185
|
.polishd-root.polishd-root .bg-\[\#1a1a1a\] {
|
|
1115
1186
|
background-color: #1a1a1a;
|
|
1116
1187
|
}
|
|
@@ -1119,6 +1190,10 @@
|
|
|
1119
1190
|
background-color: #2e2e2e;
|
|
1120
1191
|
}
|
|
1121
1192
|
|
|
1193
|
+
.polishd-root.polishd-root .bg-\[\#7fb2e5\] {
|
|
1194
|
+
background-color: #7fb2e5;
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1122
1197
|
.polishd-root.polishd-root .bg-\[\#101c14\] {
|
|
1123
1198
|
background-color: #101c14;
|
|
1124
1199
|
}
|
|
@@ -1159,10 +1234,28 @@
|
|
|
1159
1234
|
background-color: #141414;
|
|
1160
1235
|
}
|
|
1161
1236
|
|
|
1237
|
+
.polishd-root.polishd-root .bg-\[\#161616\] {
|
|
1238
|
+
background-color: #161616;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1162
1241
|
.polishd-root.polishd-root .bg-\[\#f5a623\] {
|
|
1163
1242
|
background-color: #f5a623;
|
|
1164
1243
|
}
|
|
1165
1244
|
|
|
1245
|
+
.polishd-root.polishd-root .bg-amber-400 {
|
|
1246
|
+
background-color: var(--color-amber-400);
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
.polishd-root.polishd-root .bg-amber-500\/70 {
|
|
1250
|
+
background-color: #f99c00b3;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1254
|
+
.polishd-root.polishd-root .bg-amber-500\/70 {
|
|
1255
|
+
background-color: color-mix(in oklab, var(--color-amber-500) 70%, transparent);
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1166
1259
|
.polishd-root.polishd-root .bg-amber-950 {
|
|
1167
1260
|
background-color: var(--color-amber-950);
|
|
1168
1261
|
}
|
|
@@ -1221,6 +1314,16 @@
|
|
|
1221
1314
|
background-color: var(--color-blue-500);
|
|
1222
1315
|
}
|
|
1223
1316
|
|
|
1317
|
+
.polishd-root.polishd-root .bg-blue-500\/80 {
|
|
1318
|
+
background-color: #3080ffcc;
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1322
|
+
.polishd-root.polishd-root .bg-blue-500\/80 {
|
|
1323
|
+
background-color: color-mix(in oklab, var(--color-blue-500) 80%, transparent);
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1224
1327
|
.polishd-root.polishd-root .bg-blue-950 {
|
|
1225
1328
|
background-color: var(--color-blue-950);
|
|
1226
1329
|
}
|
|
@@ -1405,6 +1508,10 @@
|
|
|
1405
1508
|
padding-top: 88px;
|
|
1406
1509
|
}
|
|
1407
1510
|
|
|
1511
|
+
.polishd-root.polishd-root .pr-2\.5 {
|
|
1512
|
+
padding-right: calc(var(--spacing) * 2.5);
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1408
1515
|
.polishd-root.polishd-root .pr-3 {
|
|
1409
1516
|
padding-right: calc(var(--spacing) * 3);
|
|
1410
1517
|
}
|
|
@@ -1421,10 +1528,18 @@
|
|
|
1421
1528
|
padding-right: calc(var(--spacing) * 6);
|
|
1422
1529
|
}
|
|
1423
1530
|
|
|
1531
|
+
.polishd-root.polishd-root .pb-1 {
|
|
1532
|
+
padding-bottom: var(--spacing);
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1424
1535
|
.polishd-root.polishd-root .pb-3 {
|
|
1425
1536
|
padding-bottom: calc(var(--spacing) * 3);
|
|
1426
1537
|
}
|
|
1427
1538
|
|
|
1539
|
+
.polishd-root.polishd-root .pb-4 {
|
|
1540
|
+
padding-bottom: calc(var(--spacing) * 4);
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1428
1543
|
.polishd-root.polishd-root .pb-6 {
|
|
1429
1544
|
padding-bottom: calc(var(--spacing) * 6);
|
|
1430
1545
|
}
|
|
@@ -1441,6 +1556,10 @@
|
|
|
1441
1556
|
padding-bottom: 72px;
|
|
1442
1557
|
}
|
|
1443
1558
|
|
|
1559
|
+
.polishd-root.polishd-root .pl-1\.5 {
|
|
1560
|
+
padding-left: calc(var(--spacing) * 1.5);
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1444
1563
|
.polishd-root.polishd-root .pl-4 {
|
|
1445
1564
|
padding-left: calc(var(--spacing) * 4);
|
|
1446
1565
|
}
|
|
@@ -1760,6 +1879,10 @@
|
|
|
1760
1879
|
color: #0cce6b;
|
|
1761
1880
|
}
|
|
1762
1881
|
|
|
1882
|
+
.polishd-root.polishd-root .text-\[\#7fb2e5\] {
|
|
1883
|
+
color: #7fb2e5;
|
|
1884
|
+
}
|
|
1885
|
+
|
|
1763
1886
|
.polishd-root.polishd-root .text-\[\#444\] {
|
|
1764
1887
|
color: #444;
|
|
1765
1888
|
}
|
|
@@ -2032,6 +2155,10 @@
|
|
|
2032
2155
|
border-color: #555;
|
|
2033
2156
|
}
|
|
2034
2157
|
|
|
2158
|
+
.polishd-root.polishd-root .hover\:bg-\[\#0f0f0f\]:hover {
|
|
2159
|
+
background-color: #0f0f0f;
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2035
2162
|
.polishd-root.polishd-root .hover\:bg-\[\#1a1a1a\]:hover {
|
|
2036
2163
|
background-color: #1a1a1a;
|
|
2037
2164
|
}
|
|
@@ -2153,6 +2280,10 @@
|
|
|
2153
2280
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
2154
2281
|
}
|
|
2155
2282
|
|
|
2283
|
+
.polishd-root.polishd-root .sm\:grid-cols-6 {
|
|
2284
|
+
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
2285
|
+
}
|
|
2286
|
+
|
|
2156
2287
|
.polishd-root.polishd-root .sm\:gap-4 {
|
|
2157
2288
|
gap: calc(var(--spacing) * 4);
|
|
2158
2289
|
}
|
|
@@ -2221,14 +2352,30 @@
|
|
|
2221
2352
|
position: sticky;
|
|
2222
2353
|
}
|
|
2223
2354
|
|
|
2355
|
+
.polishd-root.polishd-root .lg\:top-8 {
|
|
2356
|
+
top: calc(var(--spacing) * 8);
|
|
2357
|
+
}
|
|
2358
|
+
|
|
2224
2359
|
.polishd-root.polishd-root .lg\:top-\[128px\] {
|
|
2225
2360
|
top: 128px;
|
|
2226
2361
|
}
|
|
2227
2362
|
|
|
2363
|
+
.polishd-root.polishd-root .lg\:mt-5 {
|
|
2364
|
+
margin-top: calc(var(--spacing) * 5);
|
|
2365
|
+
}
|
|
2366
|
+
|
|
2367
|
+
.polishd-root.polishd-root .lg\:block {
|
|
2368
|
+
display: block;
|
|
2369
|
+
}
|
|
2370
|
+
|
|
2228
2371
|
.polishd-root.polishd-root .lg\:min-h-\[52vh\] {
|
|
2229
2372
|
min-height: 52vh;
|
|
2230
2373
|
}
|
|
2231
2374
|
|
|
2375
|
+
.polishd-root.polishd-root .lg\:w-44 {
|
|
2376
|
+
width: calc(var(--spacing) * 44);
|
|
2377
|
+
}
|
|
2378
|
+
|
|
2232
2379
|
.polishd-root.polishd-root .lg\:grid-cols-3 {
|
|
2233
2380
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2234
2381
|
}
|
|
@@ -2245,6 +2392,18 @@
|
|
|
2245
2392
|
grid-template-columns: 380px 1fr;
|
|
2246
2393
|
}
|
|
2247
2394
|
|
|
2395
|
+
.polishd-root.polishd-root .lg\:flex-col {
|
|
2396
|
+
flex-direction: column;
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2399
|
+
.polishd-root.polishd-root .lg\:flex-row {
|
|
2400
|
+
flex-direction: row;
|
|
2401
|
+
}
|
|
2402
|
+
|
|
2403
|
+
.polishd-root.polishd-root .lg\:gap-10 {
|
|
2404
|
+
gap: calc(var(--spacing) * 10);
|
|
2405
|
+
}
|
|
2406
|
+
|
|
2248
2407
|
.polishd-root.polishd-root .lg\:gap-16 {
|
|
2249
2408
|
gap: calc(var(--spacing) * 16);
|
|
2250
2409
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export interface DesignFontUsage {
|
|
2
|
+
family: string;
|
|
3
|
+
sizePx: number;
|
|
4
|
+
weight: number;
|
|
5
|
+
/** Elements across all pages rendering this exact combination. */
|
|
6
|
+
count: number;
|
|
7
|
+
/** Real text sampled from the site in this style. */
|
|
8
|
+
sample: string | null;
|
|
9
|
+
/** Tag names seen carrying it (h1, p, button…). */
|
|
10
|
+
tags: string[];
|
|
11
|
+
pages: string[];
|
|
12
|
+
/** True when this looks like a one-off rather than part of the type scale. */
|
|
13
|
+
outlier: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type DesignColorRole = "text" | "background" | "border";
|
|
16
|
+
export interface DesignColorUsage {
|
|
17
|
+
hex: string;
|
|
18
|
+
/** Total tallies across roles. */
|
|
19
|
+
count: number;
|
|
20
|
+
roles: Record<DesignColorRole, number>;
|
|
21
|
+
pages: string[];
|
|
22
|
+
/** Share of all color tallies, 0–100. */
|
|
23
|
+
pct: number;
|
|
24
|
+
outlier: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface DesignContrastPair {
|
|
27
|
+
fg: string;
|
|
28
|
+
bg: string;
|
|
29
|
+
count: number;
|
|
30
|
+
/** Smallest font size this pair was seen at, px. */
|
|
31
|
+
minSizePx: number;
|
|
32
|
+
/** WCAG 2.x contrast ratio, e.g. 4.53. */
|
|
33
|
+
ratio: number;
|
|
34
|
+
/** The AA threshold that applies at `minSizePx` (3 for large text, else 4.5). */
|
|
35
|
+
required: number;
|
|
36
|
+
passes: boolean;
|
|
37
|
+
pages: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface DesignRadiusUsage {
|
|
40
|
+
/** "8px", "9999px (full)" style label. */
|
|
41
|
+
value: string;
|
|
42
|
+
count: number;
|
|
43
|
+
pages: string[];
|
|
44
|
+
outlier: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface DesignSpacingUsage {
|
|
47
|
+
px: number;
|
|
48
|
+
count: number;
|
|
49
|
+
pages: string[];
|
|
50
|
+
/** True when the value sits off the site's dominant spacing grid. */
|
|
51
|
+
offGrid: boolean;
|
|
52
|
+
}
|
|
53
|
+
export type DesignFlagSection = "typography" | "color" | "contrast" | "radius" | "spacing";
|
|
54
|
+
export interface DesignFlag {
|
|
55
|
+
section: DesignFlagSection;
|
|
56
|
+
severity: "warn" | "info";
|
|
57
|
+
message: string;
|
|
58
|
+
}
|
|
59
|
+
export interface DesignPageScan {
|
|
60
|
+
path: string;
|
|
61
|
+
scannedAt: number;
|
|
62
|
+
elements: number;
|
|
63
|
+
}
|
|
64
|
+
export interface PolishdDesignData {
|
|
65
|
+
ready: boolean;
|
|
66
|
+
/** Pages with a scan, newest first. */
|
|
67
|
+
pages: DesignPageScan[];
|
|
68
|
+
fonts: DesignFontUsage[];
|
|
69
|
+
/** Distinct font families, most used first. */
|
|
70
|
+
families: {
|
|
71
|
+
family: string;
|
|
72
|
+
count: number;
|
|
73
|
+
}[];
|
|
74
|
+
colors: DesignColorUsage[];
|
|
75
|
+
contrast: DesignContrastPair[];
|
|
76
|
+
radii: DesignRadiusUsage[];
|
|
77
|
+
spacing: DesignSpacingUsage[];
|
|
78
|
+
flags: DesignFlag[];
|
|
79
|
+
}
|
|
80
|
+
export declare const EMPTY_DESIGN_DATA: PolishdDesignData;
|
|
81
|
+
/** WCAG 2.x contrast ratio between two hex colors, or null if unparseable. */
|
|
82
|
+
export declare function contrastRatio(a: string, b: string): number | null;
|
|
83
|
+
/**
|
|
84
|
+
* Build the full design dataset: merge per-page tallies site-wide, then run
|
|
85
|
+
* the deterministic checks. Read-only; degrades to `EMPTY_DESIGN_DATA`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function getDesignData(): Promise<PolishdDesignData>;
|
|
88
|
+
/**
|
|
89
|
+
* Rule-based checks over the aggregated data. Pure function of its input so
|
|
90
|
+
* it's easy to test and the AI layer can quote the same findings verbatim.
|
|
91
|
+
*/
|
|
92
|
+
export declare function buildDesignFlags(data: PolishdDesignData): DesignFlag[];
|
|
93
|
+
//# sourceMappingURL=design.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../src/server/design.ts"],"names":[],"mappings":"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"}
|