anentrypoint-design 0.0.323 → 0.0.325

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 (62) hide show
  1. package/README.md +22 -2
  2. package/app-shell.css +24 -4793
  3. package/colors_and_type.css +43 -0
  4. package/dist/247420.css +104 -49
  5. package/dist/247420.js +82 -19
  6. package/package.json +20 -8
  7. package/scripts/lint-glyphs.mjs +105 -0
  8. package/scripts/lint-null-children.mjs +129 -0
  9. package/src/bootstrap.js +10 -1
  10. package/src/community-app.js +3 -3
  11. package/src/components/chat-message-parts.js +356 -0
  12. package/src/components/chat.js +28 -324
  13. package/src/components/content.js +9 -5
  14. package/src/components/data-density.js +15 -10
  15. package/src/components/editor-primitives.js +2 -2
  16. package/src/components/files-modals.js +5 -4
  17. package/src/components/files.js +5 -1
  18. package/src/components/freddie/helpers.js +46 -8
  19. package/src/components/freddie.js +1 -9
  20. package/src/components/interaction-primitives.js +6 -6
  21. package/src/components/sessions.js +15 -0
  22. package/src/components/shell.js +8 -8
  23. package/src/components/theme-toggle.js +2 -2
  24. package/src/components.js +1 -1
  25. package/src/css/app-shell/base.css +157 -0
  26. package/src/css/app-shell/catalog-theme.css +140 -0
  27. package/src/css/app-shell/chat-basic.css +12 -0
  28. package/src/css/app-shell/chat-polish.css +459 -0
  29. package/src/css/app-shell/data-density.css +147 -0
  30. package/src/css/app-shell/files.css +709 -0
  31. package/src/css/app-shell/hero-content.css +405 -0
  32. package/src/css/app-shell/kits-appended.css +361 -0
  33. package/src/css/app-shell/loading-alerts.css +120 -0
  34. package/src/css/app-shell/panel-row.css +177 -0
  35. package/src/css/app-shell/primitives.css +197 -0
  36. package/src/css/app-shell/responsive.css +266 -0
  37. package/src/css/app-shell/responsive2-workspace.css +465 -0
  38. package/src/css/app-shell/row-print.css +75 -0
  39. package/src/css/app-shell/sidebar-misc.css +79 -0
  40. package/src/css/app-shell/states-interactions.css +707 -0
  41. package/src/css/app-shell/topbar.css +319 -0
  42. package/src/deck-stage.js +6 -4
  43. package/src/highlight.js +20 -4
  44. package/src/i18n.js +58 -0
  45. package/src/index.js +22 -7
  46. package/src/kits/os/freddie/pages-chat.js +5 -5
  47. package/src/kits/os/freddie/pages-core.js +1 -1
  48. package/src/kits/os/freddie/pages-os.js +1 -1
  49. package/src/kits/os/freddie/pages-tools.js +2 -2
  50. package/src/kits/os/terminal-app.js +1 -1
  51. package/src/kits/os/wm.js +38 -0
  52. package/src/kits/slides/deck-stage-overlay.js +68 -0
  53. package/src/kits/slides/deck-stage-state.js +81 -0
  54. package/src/kits/slides/deck-stage-style.js +117 -0
  55. package/src/kits/slides/deck-stage.js +167 -0
  56. package/src/kits/slides/index.js +5 -0
  57. package/src/lint.js +10 -0
  58. package/src/markdown.js +89 -11
  59. package/src/page-html.js +121 -4
  60. package/src/theme.js +7 -7
  61. package/src/uid.js +16 -0
  62. package/src/kits/os/freddie/helpers.js +0 -33
@@ -535,6 +535,49 @@ select:focus-visible {
535
535
  }
536
536
  }
537
537
 
538
+ /* ============================================================
539
+ Semantic alias tier — primitive -> semantic -> component
540
+ ------------------------------------------------------------
541
+ Three layers, in order:
542
+ 1. PRIMITIVE (above) raw palette values: --acid, --green, --sky, --warn,
543
+ --panel-1/2/3, --paper/--ink, etc. These are the only tokens that ever
544
+ carry a literal color/length. A re-brand edits primitives.
545
+ 2. SEMANTIC (here) named-by-INTENT aliases that resolve to a primitive
546
+ (e.g. --accent: var(--panel-accent)). A component or a future re-brand
547
+ can retune ONE semantic variable (say, --rail-danger) without hunting
548
+ through every primitive it happens to reuse elsewhere.
549
+ 3. COMPONENT (app-shell.css, community.css, etc.) component sheets keep
550
+ consuming primitives directly today (--accent, --panel-*, --green,
551
+ --warn, ...) exactly as before — this tier does not repoint any
552
+ existing component rule. It exists so a FUTURE swap has a semantic
553
+ layer ready to migrate onto, one component sheet at a time, without
554
+ a flag-day rewrite. Purely additive: no primitive token's name or
555
+ value changes here, and no component references these new names yet.
556
+
557
+ Naming matches vocabulary already established elsewhere in this system:
558
+ --surface-1/2 mirror the --panel-1/--panel-2 tonal-surface steps already
559
+ used across app-shell.css/community.css; --rail-info/-success/-warning/-error
560
+ mirror the canonical .tone-info/.tone-success/.tone-warning/.tone-error
561
+ banner/badge/chip severity names (app-shell.css L592, community.css
562
+ .cm-banner.tone-*) rather than inventing a new severity vocabulary.
563
+ ============================================================ */
564
+ :root {
565
+ /* --accent already exists as a primitive-facing alias (var(--acid)) above;
566
+ restated here under the semantic tier for discoverability alongside its
567
+ siblings. Same value, same token — not a second definition. */
568
+ --surface-1: var(--panel-1);
569
+ --surface-2: var(--panel-2);
570
+
571
+ /* Rail/status severity aliases — map onto the same color choices the
572
+ existing .cm-banner.tone-* rules in community.css already use, so a
573
+ future rail/indicator component can consume one semantic name instead
574
+ of picking the right primitive per severity by hand. */
575
+ --rail-info: var(--sky);
576
+ --rail-success: var(--green-2);
577
+ --rail-warning: var(--amber);
578
+ --rail-error: var(--warn);
579
+ }
580
+
538
581
  /* Elevation tokens consumed by overlays (Tooltip, Popover, Dropdown, Dialog). */
539
582
  :root {
540
583
  --shadow-1: 0 1px 2px color-mix(in oklab, var(--fg) 8%, transparent);
package/dist/247420.css CHANGED
@@ -537,6 +537,49 @@
537
537
  }
538
538
  }
539
539
 
540
+ /* ============================================================
541
+ Semantic alias tier — primitive -> semantic -> component
542
+ ------------------------------------------------------------
543
+ Three layers, in order:
544
+ 1. PRIMITIVE (above) raw palette values: --acid, --green, --sky, --warn,
545
+ --panel-1/2/3, --paper/--ink, etc. These are the only tokens that ever
546
+ carry a literal color/length. A re-brand edits primitives.
547
+ 2. SEMANTIC (here) named-by-INTENT aliases that resolve to a primitive
548
+ (e.g. --accent: var(--panel-accent)). A component or a future re-brand
549
+ can retune ONE semantic variable (say, --rail-danger) without hunting
550
+ through every primitive it happens to reuse elsewhere.
551
+ 3. COMPONENT (app-shell.css, community.css, etc.) component sheets keep
552
+ consuming primitives directly today (--accent, --panel-*, --green,
553
+ --warn, ...) exactly as before — this tier does not repoint any
554
+ existing component rule. It exists so a FUTURE swap has a semantic
555
+ layer ready to migrate onto, one component sheet at a time, without
556
+ a flag-day rewrite. Purely additive: no primitive token's name or
557
+ value changes here, and no component references these new names yet.
558
+
559
+ Naming matches vocabulary already established elsewhere in this system:
560
+ --surface-1/2 mirror the --panel-1/--panel-2 tonal-surface steps already
561
+ used across app-shell.css/community.css; --rail-info/-success/-warning/-error
562
+ mirror the canonical .tone-info/.tone-success/.tone-warning/.tone-error
563
+ banner/badge/chip severity names (app-shell.css L592, community.css
564
+ .cm-banner.tone-*) rather than inventing a new severity vocabulary.
565
+ ============================================================ */
566
+ .ds-247420 {
567
+ /* --accent already exists as a primitive-facing alias (var(--acid)) above;
568
+ restated here under the semantic tier for discoverability alongside its
569
+ siblings. Same value, same token — not a second definition. */
570
+ --surface-1: var(--panel-1);
571
+ --surface-2: var(--panel-2);
572
+
573
+ /* Rail/status severity aliases — map onto the same color choices the
574
+ existing .cm-banner.tone-* rules in community.css already use, so a
575
+ future rail/indicator component can consume one semantic name instead
576
+ of picking the right primitive per severity by hand. */
577
+ --rail-info: var(--sky);
578
+ --rail-success: var(--green-2);
579
+ --rail-warning: var(--amber);
580
+ --rail-error: var(--warn);
581
+ }
582
+
540
583
  /* Elevation tokens consumed by overlays (Tooltip, Popover, Dropdown, Dialog). */
541
584
  .ds-247420 {
542
585
  --shadow-1: 0 1px 2px color-mix(in oklab, var(--fg) 8%, transparent);
@@ -1799,12 +1842,10 @@
1799
1842
  .ds-247420 .row-form input:focus-visible,
1800
1843
  .ds-247420 .row-form textarea:focus-visible { box-shadow: var(--focus-ring-inset); }
1801
1844
 
1802
- /* Field char counter (TextField maxLength) */
1803
- .ds-247420 .ds-field-count {
1804
- font-size: var(--fs-tiny, 13px);
1805
- color: var(--fg-3, var(--fg-2));
1806
- text-align: right;
1807
- }
1845
+ /* Field char counter (TextField maxLength) — canonical definition is with
1846
+ the rest of the .ds-field family below (states-interactions.css); this
1847
+ duplicate was removed to stop the two bodies fighting on stylesheet load
1848
+ order. */
1808
1849
 
1809
1850
  /* Multi-column form layout (Form columns prop) */
1810
1851
  .ds-247420 .row-form[data-columns="2"] { grid-template-columns: repeat(2, 1fr); }
@@ -2903,14 +2944,10 @@
2903
2944
  .ds-247420 .ds-shortcuts-hint .ds-kbd { white-space: normal; max-width: 100%; }
2904
2945
  .ds-247420 .ds-kbd-caps { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
2905
2946
  .ds-247420 .ds-kbd-sep { color: var(--fg-3); font-size: var(--fs-micro); padding: 0 2px; }
2906
- .ds-247420 .ds-kbd {
2907
- display: inline-block; min-width: 0;
2908
- padding: 2px 7px; border-radius: var(--r-0);
2909
- background: var(--bg); border: var(--bw-hair) solid var(--rule);
2910
- border-bottom-width: 2px;
2911
- font-family: var(--ff-mono); font-size: var(--fs-micro); color: var(--fg-2);
2912
- white-space: nowrap;
2913
- }
2947
+ /* .ds-kbd base definition lives in editor-primitives.css (canonical home —
2948
+ it owns the fuller ds-kbd-group/ds-kbd-row family this key chip belongs
2949
+ to); this file only carries the .ds-shortcuts-hint contextual overrides
2950
+ above. */
2914
2951
 
2915
2952
  /* ============================================================
2916
2953
  Theme toggle (segmented + compact) — bound to src/theme.js
@@ -3867,14 +3904,25 @@
3867
3904
  }
3868
3905
  .ds-247420 .ds-field-label {
3869
3906
  font-size: var(--fs-sm, 14px);
3907
+ font-weight: 500;
3870
3908
  color: var(--fg-2);
3871
3909
  line-height: 1.3;
3872
3910
  }
3911
+ .ds-247420 .ds-field-required {
3912
+ color: var(--danger);
3913
+ font-weight: 700;
3914
+ margin-left: 2px;
3915
+ }
3873
3916
  .ds-247420 .ds-field-hint {
3874
3917
  font-size: var(--fs-tiny, 13px);
3875
3918
  color: var(--fg-3);
3876
3919
  line-height: 1.35;
3877
3920
  }
3921
+ .ds-247420 .ds-field-error {
3922
+ color: var(--danger);
3923
+ font-size: var(--fs-tiny, 13px);
3924
+ font-weight: 500;
3925
+ }
3878
3926
  .ds-247420 .ds-field-count {
3879
3927
  font-size: var(--fs-tiny, 13px);
3880
3928
  color: var(--fg-3);
@@ -4920,13 +4968,10 @@
4920
4968
  .ds-247420 .ds-sub-btn:hover { border-color: var(--accent); color: var(--accent-ink); }
4921
4969
  .ds-247420 .ds-sub-btn span { display: block; font-size: 18px; font-weight: 700; color: var(--accent-ink); }
4922
4970
 
4923
- /* SessionRow */
4924
- .ds-247420 .ds-session-row {
4925
- display: flex; align-items: center; gap: 8px; padding: 6px 10px;
4926
- flex-wrap: wrap; min-width: 0;
4927
- border-bottom: var(--bw-hair) solid var(--bg-3); cursor: pointer;
4928
- }
4929
- .ds-247420 .ds-session-row:hover { background: var(--bg-3); }
4971
+ /* SessionRow — base .ds-session-row (layout, hover/focus/active states,
4972
+ rail-tone indicators) is canonically defined in chat.css alongside the
4973
+ rest of the chat session-list component; this file only carries the
4974
+ dev/admin-row sub-parts (id/counts/devcnt/span) that decorate it. */
4930
4975
  .ds-247420 .ds-session-row-id {
4931
4976
  font-family: var(--ff-mono); font-size: var(--fs-micro); color: var(--accent-ink);
4932
4977
  flex: 0 1 160px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
@@ -9051,25 +9096,10 @@
9051
9096
  display: flex; flex-direction: column; gap: var(--space-1, 4px);
9052
9097
  margin-bottom: var(--space-2, 8px);
9053
9098
  }
9054
- .ds-247420 .ds-field-label {
9055
- color: var(--fg-2, var(--fg));
9056
- font-size: var(--fs-sm, 14px);
9057
- font-weight: 500;
9058
- }
9059
- .ds-247420 .ds-field-required {
9060
- color: var(--danger);
9061
- font-weight: 700;
9062
- margin-left: 2px;
9063
- }
9064
- .ds-247420 .ds-field-hint {
9065
- color: var(--fg-3, var(--fg-2));
9066
- font-size: var(--fs-tiny, 12px);
9067
- }
9068
- .ds-247420 .ds-field-error {
9069
- color: var(--danger);
9070
- font-size: var(--fs-tiny, 12px);
9071
- font-weight: 500;
9072
- }
9099
+ /* .ds-field-label / .ds-field-required / .ds-field-hint / .ds-field-error
9100
+ canonical definitions now live in app-shell.css alongside the rest of the
9101
+ .ds-field family (this file's .ds-field-wrap consumes them by class name).
9102
+ Removed here to stop the two bodies fighting on stylesheet load order. */
9073
9103
  .ds-247420 .ds-field-wrap [aria-invalid="true"] {
9074
9104
  border-color: var(--danger) !important;
9075
9105
  }
@@ -9663,9 +9693,26 @@
9663
9693
  the app-composition wrapper, the server+channel rail pills, the voice view grid,
9664
9694
  and the category-color tokens the consumer avatars use. All scoped under
9665
9695
  .ds-247420. Additive — defines only the ca- prefix, group, rail-empty, vx-view
9666
- classes plus the cat color tokens. */
9667
-
9668
- .ds-247420.ds-247420 .ca-app {
9696
+ classes plus the cat color tokens.
9697
+
9698
+ Relationship to community.css: this is NOT a fork of community.css's content
9699
+ -- it is a small (~150-line), genuinely distinct app-shell WRAPPER around the
9700
+ canonical, complete community surface. community.css (~1650 lines) owns every
9701
+ .cm-*/.ds-247420 .vx-* component (server rail, channel sidebar, chat header, member list,
9702
+ voice PTT/VAD/webcam, thread panel, forum, page view) and is the canonical, .ds-247420 actively-referenced stylesheet -- it is the one listed in package.json's
9703
+ `exports`/`files`, the one scripts/build.mjs and scripts/lint-tokens.mjs treat
9704
+ as a first-class component sheet on its own, and the one THEME.md/
9705
+ COMPONENT_API.md document as the load-order anchor
9706
+ (colors_and_type.css -> app-shell.css -> community.css -> chat.css ->
9707
+ editor-primitives.css -> community-app.css -> app-surfaces.css). This file
9708
+ loads strictly AFTER community.css (see ui_kits/community-app/index.html) and
9709
+ only adds the .ca-* composition shell + category-color tokens that
9710
+ community.css deliberately has no opinion about -- it never redefines a
9711
+ .cm-*/.vx-* rule community.css already owns. Canonical tokens/rules live in
9712
+ community.css; only overrides/additions specific to mountCommunityApp's own
9713
+ composition live here. */
9714
+
9715
+ html.ds-247420 .ca-app {
9669
9716
  display: flex;
9670
9717
  flex-direction: column;
9671
9718
  height: 100vh;
@@ -10140,7 +10187,15 @@
10140
10187
  }
10141
10188
  }
10142
10189
 
10143
- .ds-247420 .cli {
10190
+ /* .ds-cli-block — the multi-row article/transcript container (CliBlock()'s
10191
+ outer wrapper holding stacked .ds-cli-row / .ds-cli-comment children).
10192
+ Distinct from the bare `.cli` single prompt+cmd row primitive owned by
10193
+ app-shell.css (Install(), HeroFromPageData(), terminal/site quickstart
10194
+ lines) — the two used to share the `.cli` selector with incompatible
10195
+ display models (flex row vs block transcript), so whichever stylesheet
10196
+ loaded last silently won for both consumers. Renamed here to remove the
10197
+ collision; see content.js CliBlock(). */
10198
+ .ds-247420 .ds-cli-block {
10144
10199
  display: block;
10145
10200
  background: var(--panel-1);
10146
10201
  border-radius: var(--r-0);
@@ -10155,7 +10210,7 @@
10155
10210
  white-space: pre-wrap;
10156
10211
  word-break: break-word;
10157
10212
  }
10158
- .ds-247420 .cli .ds-cli-comment {
10213
+ .ds-247420 .ds-cli-block .ds-cli-comment {
10159
10214
  color: var(--panel-text-3);
10160
10215
  white-space: pre-wrap;
10161
10216
  word-break: break-word;
@@ -10163,20 +10218,20 @@
10163
10218
  padding: 3px 0;
10164
10219
  line-height: 1.6;
10165
10220
  }
10166
- .ds-247420 .cli .ds-cli-comment:empty::before { content: '\00a0'; }
10167
- .ds-247420 .cli .ds-cli-row {
10221
+ .ds-247420 .ds-cli-block .ds-cli-comment:empty::before { content: '\00a0'; }
10222
+ .ds-247420 .ds-cli-block .ds-cli-row {
10168
10223
  display: flex;
10169
10224
  gap: 10px;
10170
10225
  padding: 3px 0;
10171
10226
  white-space: pre-wrap;
10172
10227
  word-break: break-word;
10173
10228
  }
10174
- .ds-247420 .cli .ds-cli-row .prompt {
10229
+ .ds-247420 .ds-cli-block .ds-cli-row .prompt {
10175
10230
  color: var(--panel-accent);
10176
10231
  flex: 0 0 auto;
10177
10232
  user-select: none;
10178
10233
  }
10179
- .ds-247420 .cli .ds-cli-row .cmd {
10234
+ .ds-247420 .ds-cli-block .ds-cli-row .cmd {
10180
10235
  color: var(--panel-text);
10181
10236
  flex: 1 1 auto;
10182
10237
  white-space: pre-wrap;