anentrypoint-design 0.0.449 → 0.0.451
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/README.md +1 -1
- package/colors_and_type.css +4 -2
- package/dist/247420.css +166 -34
- package/dist/247420.js +25 -25
- package/package.json +1 -1
- package/src/community-app.js +18 -2
- package/src/components/chat/threads.js +9 -2
- package/src/components/content/hero.js +10 -8
- package/src/css/app-shell/hero-content.css +43 -12
- package/src/css/app-shell/kits-appended.css +76 -1
- package/src/css/app-shell/panel-row.css +35 -19
- package/types/components.d.ts +1 -2
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ filename `dist/247420.js`/`dist/247420.css` and in a few package.json fields;
|
|
|
6
6
|
the published npm package name is `anentrypoint-design`. Both names refer to
|
|
7
7
|
the same single system.)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
shadcn-neutral: a grayscale accent system on paper or near-black ink, system-font stack (no web-font request), monospace only on real code, tonal surfaces over borders, indicator rails for color-coded separation, centered layout, print texture inert (kept for a future opt-in).
|
|
10
10
|
|
|
11
11
|
we fart in its general direction.
|
|
12
12
|
|
package/colors_and_type.css
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/* ============================================================
|
|
2
2
|
247420 design system — colors + type
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
shadcn-neutral (2026-07-30 restyle): confident display type, ink-on-paper
|
|
4
|
+
with a grayscale accent, print texture inert. RESTYLED from the prior
|
|
5
|
+
"Acid Editorial" warm-paper/electric-lime identity -- see the RESTYLED
|
|
6
|
+
notes below for the token-by-token detail. Scope-prefixed at build time.
|
|
5
7
|
Source-of-truth tokens. Component sheet lives in app-shell.css.
|
|
6
8
|
============================================================ */
|
|
7
9
|
|
package/dist/247420.css
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
/* colors_and_type.css */
|
|
3
3
|
/* ============================================================
|
|
4
4
|
247420 design system — colors + type
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
shadcn-neutral (2026-07-30 restyle): confident display type, ink-on-paper
|
|
6
|
+
with a grayscale accent, print texture inert. RESTYLED from the prior
|
|
7
|
+
"Acid Editorial" warm-paper/electric-lime identity -- see the RESTYLED
|
|
8
|
+
notes below for the token-by-token detail. Scope-prefixed at build time.
|
|
7
9
|
Source-of-truth tokens. Component sheet lives in app-shell.css.
|
|
8
10
|
============================================================ */
|
|
9
11
|
|
|
@@ -1871,30 +1873,46 @@
|
|
|
1871
1873
|
/* A row with no leading code/index drops the empty first column so the title
|
|
1872
1874
|
takes the full width instead of wrapping in the narrow code gutter. */
|
|
1873
1875
|
.ds-247420 .row.row-nocode { grid-template-columns: minmax(0, 1fr) auto; }
|
|
1874
|
-
/* Template-rendered index/example rows (site/theme.mjs
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
".
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
(
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
row
|
|
1889
|
-
|
|
1876
|
+
/* Template-rendered index/example rows (site/theme.mjs panels, via
|
|
1877
|
+
panelNode()/examplesNode() in src/page-html/client-script.js) share one
|
|
1878
|
+
row template across every panel-driven section on the homepage — "ui
|
|
1879
|
+
kits", "previews", "file browser", "web components", "public api", "why
|
|
1880
|
+
design", "live examples". Every one of those rows carries an inline
|
|
1881
|
+
".meta.dim" description and a trailing ".ds-row-arrow"; some ALSO carry a
|
|
1882
|
+
leading ".code" span (file_browser/web_components/api_exports items have
|
|
1883
|
+
a `code` field, "why design"/"live examples" items do not) — the
|
|
1884
|
+
selector below has to handle both shapes as ONE template, not two.
|
|
1885
|
+
Un-augmented, the base 3-track .row grid (minmax(80px,12ch) /
|
|
1886
|
+
minmax(0,1fr) / auto) either crams the title into the narrow 12ch code
|
|
1887
|
+
gutter (no-code rows) or, worse, auto-places an EXPLICIT-grid orphan:
|
|
1888
|
+
once .title/.ds-row-arrow/.meta.dim below are pinned to explicit
|
|
1889
|
+
grid-column/grid-row, a .code span left on `auto` placement can't share
|
|
1890
|
+
row 1 with .title (already occupying column 1) and gets pushed into a
|
|
1891
|
+
phantom row 3, rendering as a stray floating "fb"/"wc"/"api" line under
|
|
1892
|
+
the description — the exact bug this rule exists to prevent, previously
|
|
1893
|
+
left unfixed for the has-code case. Rows carrying a dim meta description
|
|
1894
|
+
and an arrow always get the two-row template: code + title + arrow share
|
|
1895
|
+
row 1 (code first, in its own narrow track), the description drops to
|
|
1896
|
+
its own full-width row 2 and wraps normally — matching how every other
|
|
1897
|
+
multi-line row pattern in this file (.ds-row-detail) already gets a
|
|
1898
|
+
dedicated line. */
|
|
1890
1899
|
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) {
|
|
1891
|
-
grid-template-columns: minmax(0, 1fr) auto;
|
|
1900
|
+
grid-template-columns: minmax(80px, 12ch) minmax(0, 1fr) auto;
|
|
1892
1901
|
grid-template-rows: auto auto;
|
|
1893
1902
|
row-gap: var(--space-1);
|
|
1894
1903
|
}
|
|
1895
|
-
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) .
|
|
1896
|
-
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) .
|
|
1904
|
+
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) .code { grid-column: 1; grid-row: 1; }
|
|
1905
|
+
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) .title { grid-column: 2; grid-row: 1; }
|
|
1906
|
+
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) .ds-row-arrow { grid-column: 3; grid-row: 1; }
|
|
1897
1907
|
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow) .meta.dim { grid-column: 1 / -1; grid-row: 2; }
|
|
1908
|
+
/* No-code rows ("why design", "live examples") drop the empty leading
|
|
1909
|
+
gutter so the title starts flush left instead of leaving a dead 12ch
|
|
1910
|
+
column — same fix .row-nocode already applies to the base template. */
|
|
1911
|
+
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow):not(:has(.code)) {
|
|
1912
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
1913
|
+
}
|
|
1914
|
+
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow):not(:has(.code)) .title { grid-column: 1; }
|
|
1915
|
+
.ds-247420 .row:has(.meta.dim):has(.ds-row-arrow):not(:has(.code)) .ds-row-arrow { grid-column: 2; }
|
|
1898
1916
|
.ds-247420 .row .meta.dim {
|
|
1899
1917
|
white-space: normal;
|
|
1900
1918
|
min-width: 0;
|
|
@@ -1969,21 +1987,37 @@
|
|
|
1969
1987
|
specific to the retired Acid Editorial identity. All child classes/markup
|
|
1970
1988
|
are UNCHANGED (no JS component edit needed) -- only the grid arrangement
|
|
1971
1989
|
and each part's own layout (aside becomes a full-width card below the body
|
|
1972
|
-
instead of a right-column card) changed. Centered text, capped measure.
|
|
1990
|
+
instead of a right-column card) changed. Centered text, capped measure.
|
|
1991
|
+
|
|
1992
|
+
DE-CENTERED 2026-07-31: the flex-stack architecture from the restyle above
|
|
1993
|
+
is kept as-is (still a single-column stack, still the oversized display
|
|
1994
|
+
lead, still the full-width aside card) -- this is NOT a revert to the old
|
|
1995
|
+
two-column grid. What changed is alignment only: `align-items: center` /
|
|
1996
|
+
`text-align: center` read as the textbook dead-centered "AI portfolio"
|
|
1997
|
+
hero the moment the oversized display type is involved, regardless of
|
|
1998
|
+
architecture. Swapping to flex-start + left text-align, plus a
|
|
1999
|
+
--space-6 left inset inside the unchanged --stage-wide container, pushes
|
|
2000
|
+
the whole block toward the left edge so the oversized title crops against
|
|
2001
|
+
real whitespace on the right instead of sitting symmetric in the middle --
|
|
2002
|
+
editorial tension from a one-axis asymmetry, no grid architecture
|
|
2003
|
+
reintroduced. */
|
|
1973
2004
|
.ds-247420 .ds-hero {
|
|
1974
2005
|
padding: var(--space-9) 0 var(--space-8);
|
|
1975
|
-
display: flex; flex-direction: column; align-items:
|
|
2006
|
+
display: flex; flex-direction: column; align-items: flex-start;
|
|
1976
2007
|
gap: var(--space-5);
|
|
1977
2008
|
max-width: var(--stage-wide);
|
|
1978
|
-
|
|
2009
|
+
margin-inline-start: 0;
|
|
2010
|
+
padding-inline-start: var(--space-6);
|
|
2011
|
+
text-align: left;
|
|
1979
2012
|
position: relative; isolation: isolate;
|
|
1980
2013
|
}
|
|
1981
|
-
.ds-247420 .ds-hero-head { display: grid; gap: var(--space-3); justify-items:
|
|
1982
|
-
.ds-247420 .ds-hero-body { margin-inline:
|
|
2014
|
+
.ds-247420 .ds-hero-head { display: grid; gap: var(--space-3); justify-items: start; }
|
|
2015
|
+
.ds-247420 .ds-hero-body { margin-inline: 0; }
|
|
1983
2016
|
/* The stat/badge/CTA cluster now sits as a full-width card BELOW the body
|
|
1984
|
-
copy,
|
|
1985
|
-
visual weight via the top accent bar
|
|
1986
|
-
so it still reads as a deliberate
|
|
2017
|
+
copy, left-aligned with the rest of the stack, rather than a right-offset
|
|
2018
|
+
column -- still carries its own visual weight via the top accent bar
|
|
2019
|
+
(rotated from the former left spine) so it still reads as a deliberate
|
|
2020
|
+
block, not an afterthought. */
|
|
1987
2021
|
.ds-247420 .ds-hero-aside {
|
|
1988
2022
|
position: relative; isolation: isolate;
|
|
1989
2023
|
width: 100%; max-width: 46ch;
|
|
@@ -2015,23 +2049,23 @@
|
|
|
2015
2049
|
Snapping to either changes the hero's whole optical weight. */
|
|
2016
2050
|
font-size: clamp(40px, 9cqi, 116px);
|
|
2017
2051
|
line-height: 0.96; letter-spacing: var(--tr-tighter);
|
|
2018
|
-
margin: 0
|
|
2052
|
+
margin: 0; max-width: 20ch; text-wrap: balance;
|
|
2019
2053
|
}
|
|
2020
2054
|
.ds-247420 .ds-hero-body {
|
|
2021
2055
|
font-family: var(--ff-body); font-size: var(--fs-xl);
|
|
2022
|
-
line-height: 1.45; margin: 0
|
|
2056
|
+
line-height: 1.45; margin: 0; max-width: 46ch;
|
|
2023
2057
|
color: var(--fg-2);
|
|
2024
2058
|
}
|
|
2025
2059
|
/* The lead phrase in the title — printed in the electric lead, not glowing. */
|
|
2026
2060
|
.ds-247420 .ds-hero-accent { color: var(--accent-ink); font-weight: 700; }
|
|
2027
2061
|
.ds-247420 .ds-hero-actions {
|
|
2028
2062
|
display: flex; gap: var(--space-2, 10px); flex-wrap: wrap;
|
|
2029
|
-
justify-content:
|
|
2063
|
+
justify-content: flex-start; margin-top: var(--space-hair, 4px);
|
|
2030
2064
|
}
|
|
2031
2065
|
/* Below this width the aside card's own internal rhythm (stat rows still
|
|
2032
2066
|
stacked vertically at full width) is already correct for a narrow column —
|
|
2033
2067
|
no separate breakpoint override needed now that .ds-hero is always a
|
|
2034
|
-
single-column
|
|
2068
|
+
single-column left-aligned stack at every width. */
|
|
2035
2069
|
@container (max-width: 900px) {
|
|
2036
2070
|
.ds-247420 .ds-hero { padding: var(--space-7) 0 var(--space-6); }
|
|
2037
2071
|
}
|
|
@@ -2041,6 +2075,21 @@
|
|
|
2041
2075
|
Section grouping
|
|
2042
2076
|
============================================================ */
|
|
2043
2077
|
.ds-247420 .ds-section { margin: var(--space-8) 0; }
|
|
2078
|
+
/* A .ds-section's own margin-top exists so a BARE first section (no element
|
|
2079
|
+
above it inside .app-main/.ds-app-surface) still gets the --space-8 lead
|
|
2080
|
+
from something. But .app-main and .ds-tier are flex/grid containers, where
|
|
2081
|
+
sibling margins never collapse -- so once ANY preceding sibling supplies
|
|
2082
|
+
its own trailing space (a .panel's --space-4 bottom margin, or a prior
|
|
2083
|
+
.ds-section's own --space-8 bottom margin), that top margin stacks ON TOP
|
|
2084
|
+
of it instead of coordinating into one gap: measured live, two adjacent
|
|
2085
|
+
.ds-section elements sat 192px apart (96 + 96) instead of 96, and a .panel
|
|
2086
|
+
followed by a .ds-section sat ~136px apart instead of the intended single
|
|
2087
|
+
gap. Zeroing the top margin on every NON-first .ds-section collapses the
|
|
2088
|
+
pair back to one coordinated gap, supplied by whichever side already
|
|
2089
|
+
carries it (the preceding sibling's own bottom margin, or the .ds-section's
|
|
2090
|
+
trailing margin below) -- same "gap is owned by one side only" pattern as
|
|
2091
|
+
.ds-panel-gap + .ds-panel-gap / .row + .row elsewhere in this file. */
|
|
2092
|
+
.ds-247420 * + .ds-section { margin-top: 0; }
|
|
2044
2093
|
/* Compact section (e.g. a PageHeader used as a page's first element): no large
|
|
2045
2094
|
leading margin, modest trailing margin — top-aligns without consumer overrides. */
|
|
2046
2095
|
.ds-247420 .ds-section-compact { margin-top: 0; margin-bottom: var(--space-4); }
|
|
@@ -6456,7 +6505,21 @@
|
|
|
6456
6505
|
it leaves a lone thread column growing to 1400px+ with no other use of
|
|
6457
6506
|
the extra width. This wrapper adds a persistent "thread info" rail once
|
|
6458
6507
|
there is room to spare, instead of just widening the message column. */
|
|
6459
|
-
|
|
6508
|
+
/* min-height is a floor, not the intended size — .chat-kit-page's flex-column
|
|
6509
|
+
splits leftover height between this (flex:1 1 0%, "leftover") and the
|
|
6510
|
+
pattern-notes panel below it (flex:0 1 auto, i.e. sized to its own content
|
|
6511
|
+
first). On a short viewport the panel's natural content height can consume
|
|
6512
|
+
the entire column budget, squeezing this flex-basis:0% sibling to a real,
|
|
6513
|
+
rendered, fully-populated-with-messages 0px — the thread is never empty,
|
|
6514
|
+
it is invisible. Inside .chat itself, .chat-head and .chat-composer are
|
|
6515
|
+
also flex:0-ish naturally-sized siblings of .chat-thread (flex:1 1 0%,
|
|
6516
|
+
chat-polish.css), so the floor has to clear their combined natural height
|
|
6517
|
+
(~55px head + ~78px composer, chrome + gap) with real room left for the
|
|
6518
|
+
thread to still show at least a couple of message bubbles rather than
|
|
6519
|
+
collapsing to a sliver between them — 30vh was not enough on a short
|
|
6520
|
+
viewport. It still grows past this floor via flex:1 whenever the column
|
|
6521
|
+
has room. */
|
|
6522
|
+
.ds-247420 .ds-chat-layout { display: flex; flex-direction: column; flex: 1; min-height: max(30vh, 420px); gap: var(--space-3); }
|
|
6460
6523
|
.ds-247420 .ds-chat-layout > .chat { min-width: 0; }
|
|
6461
6524
|
.ds-247420 .ds-chat-detail { display: none; }
|
|
6462
6525
|
@media (min-width: 1100px) {
|
|
@@ -6692,6 +6755,67 @@
|
|
|
6692
6755
|
}
|
|
6693
6756
|
.ds-247420 .ds-pattern-notes strong { color: var(--fg); font-weight: 600; }
|
|
6694
6757
|
|
|
6758
|
+
/* .panel.panel-docs — documentation/annotation chrome, visibly different from
|
|
6759
|
+
the plain .panel the real interface renders in. aicat stacks its "about
|
|
6760
|
+
this kit" caption directly under the live chat surface; identical card
|
|
6761
|
+
chrome on both made the meta-explanation read as part of the product
|
|
6762
|
+
instead of a caption about it. Dashed border reuses the .ds-dropzone
|
|
6763
|
+
affordance vocabulary (a dashed edge already reads as "not solid content"
|
|
6764
|
+
in this system) and the tint is a quiet, low-saturation wash rather than
|
|
6765
|
+
an accent color, so it never competes with real accent-toned UI state. */
|
|
6766
|
+
.ds-247420 .panel.panel-docs {
|
|
6767
|
+
border-style: dashed;
|
|
6768
|
+
border-color: var(--rule-strong);
|
|
6769
|
+
background: color-mix(in oklab, var(--fg) 4%, var(--bg-2));
|
|
6770
|
+
box-shadow: none;
|
|
6771
|
+
}
|
|
6772
|
+
.ds-247420 .panel.panel-docs .panel-title {
|
|
6773
|
+
color: var(--fg-3);
|
|
6774
|
+
font-family: var(--ff-mono);
|
|
6775
|
+
font-size: var(--fs-xs);
|
|
6776
|
+
letter-spacing: 0.02em;
|
|
6777
|
+
text-transform: uppercase;
|
|
6778
|
+
}
|
|
6779
|
+
.ds-247420 .panel.panel-docs .panel-title::before {
|
|
6780
|
+
content: 'docs · ';
|
|
6781
|
+
color: var(--fg-3);
|
|
6782
|
+
}
|
|
6783
|
+
|
|
6784
|
+
/* .ds-kit-controls — collapsed-by-default dev/demo toggle drawer. Reference
|
|
6785
|
+
state-toggle pills (ready/loading/empty/error and similar) are scaffolding
|
|
6786
|
+
for exercising a kit's other states, not live content; sitting exposed in
|
|
6787
|
+
the flow next to real content made them read as leftover dev debris. A
|
|
6788
|
+
native <details>/<summary> disclosure needs no bespoke open/close state or
|
|
6789
|
+
JS and is keyboard/AT-operable for free — closed by default, opens on
|
|
6790
|
+
click or Enter/Space on the summary. */
|
|
6791
|
+
.ds-247420 .ds-kit-controls {
|
|
6792
|
+
border: var(--bw-hair) dashed var(--rule);
|
|
6793
|
+
border-radius: var(--r-2);
|
|
6794
|
+
margin: 0 0 var(--space-4);
|
|
6795
|
+
background: var(--bg);
|
|
6796
|
+
}
|
|
6797
|
+
.ds-247420 .ds-kit-controls summary {
|
|
6798
|
+
cursor: pointer;
|
|
6799
|
+
padding: var(--space-2) var(--space-3);
|
|
6800
|
+
font-family: var(--ff-mono);
|
|
6801
|
+
font-size: var(--fs-xs);
|
|
6802
|
+
color: var(--fg-3);
|
|
6803
|
+
list-style: none;
|
|
6804
|
+
}
|
|
6805
|
+
.ds-247420 .ds-kit-controls summary::-webkit-details-marker { display: none; }
|
|
6806
|
+
.ds-247420 .ds-kit-controls summary::before { content: '[+] '; }
|
|
6807
|
+
.ds-247420 .ds-kit-controls[open] summary::before { content: '[-] '; }
|
|
6808
|
+
.ds-247420 .ds-kit-controls summary:focus-visible {
|
|
6809
|
+
outline: var(--focus-w) solid var(--focus-color);
|
|
6810
|
+
outline-offset: var(--focus-offset);
|
|
6811
|
+
}
|
|
6812
|
+
.ds-247420 .ds-kit-controls-body {
|
|
6813
|
+
padding: 0 var(--space-3) var(--space-3);
|
|
6814
|
+
display: flex;
|
|
6815
|
+
flex-direction: column;
|
|
6816
|
+
gap: var(--space-2);
|
|
6817
|
+
}
|
|
6818
|
+
|
|
6695
6819
|
/* Swatch cell wrapper (system_primer pairs it with .ds-swatch-col, which owns
|
|
6696
6820
|
the column/gap). This adds only what the wrapper itself needs: a minimum-zero
|
|
6697
6821
|
track so long token names ellipsize inside the grid instead of widening it. */
|
|
@@ -12387,6 +12511,14 @@
|
|
|
12387
12511
|
font: var(--fs-tiny, 12px)/1 var(--ff-mono, monospace);
|
|
12388
12512
|
color: var(--panel-text-3, var(--fg-3));
|
|
12389
12513
|
white-space: nowrap;
|
|
12514
|
+
/* Sits on the ::before/::after rule line, which otherwise draws straight
|
|
12515
|
+
through the label text. Background must match the label's containing
|
|
12516
|
+
card (.panel uses --panel-1, falling back to --bg-2) so the line reads
|
|
12517
|
+
as visually broken around the label rather than crossing it. */
|
|
12518
|
+
background: var(--panel-1, var(--bg-2));
|
|
12519
|
+
padding: 0 var(--space-1-5, 5px);
|
|
12520
|
+
position: relative;
|
|
12521
|
+
z-index: var(--z-raised);
|
|
12390
12522
|
}
|
|
12391
12523
|
/* PermissionMenu (ov-perm) — roving-tabindex menuitemcheckbox rows +
|
|
12392
12524
|
approve-all/revoke-all actions, styled to match the sibling Dropdown menu. */
|