@ng-prism/core 22.2.0-beta.5 → 22.2.0
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/app/canvas/canvas-bg.styles.d.ts +19 -0
- package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -0
- package/dist/app/canvas/canvas-bg.styles.js +58 -0
- package/dist/app/canvas/prism-canvas-bg-pill.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -3
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +25 -7
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.js +152 -121
- package/dist/app/canvas/prism-template-popover.component.d.ts +0 -3
- package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-template-popover.component.js +43 -59
- package/dist/app/component-head/head-metrics.d.ts +41 -0
- package/dist/app/component-head/head-metrics.d.ts.map +1 -0
- package/dist/app/component-head/head-metrics.js +39 -0
- package/dist/app/component-head/prism-component-head.component.d.ts +10 -2
- package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-component-head.component.js +107 -209
- package/dist/app/component-head/prism-head-gauge.component.d.ts +23 -0
- package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -0
- package/dist/app/component-head/prism-head-gauge.component.js +123 -0
- package/dist/app/component-head/prism-head-info.component.d.ts +23 -0
- package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -0
- package/dist/app/component-head/prism-head-info.component.js +124 -0
- package/dist/app/component-head/prism-stat.component.d.ts +10 -4
- package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-stat.component.js +34 -44
- package/dist/app/header/prism-header.component.js +2 -2
- package/dist/app/icons/icon-registry.d.ts.map +1 -1
- package/dist/app/icons/icon-registry.js +2 -0
- package/dist/app/index.d.ts +3 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +26 -1
- package/dist/app/layout-menu/prism-layout-menu.component.js +2 -2
- package/dist/app/overview/overview-panel.d.ts +3 -0
- package/dist/app/overview/overview-panel.d.ts.map +1 -0
- package/dist/app/overview/overview-panel.js +9 -0
- package/dist/app/overview/overview-visibility.d.ts +15 -0
- package/dist/app/overview/overview-visibility.d.ts.map +1 -0
- package/dist/app/overview/overview-visibility.js +18 -0
- package/dist/app/overview/prism-overview-cell.component.d.ts +29 -0
- package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -0
- package/dist/app/overview/prism-overview-cell.component.js +136 -0
- package/dist/app/overview/prism-overview.component.d.ts +17 -0
- package/dist/app/overview/prism-overview.component.d.ts.map +1 -0
- package/dist/app/overview/prism-overview.component.js +53 -0
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
- package/dist/app/page-renderer/prism-page-renderer.component.js +3 -3
- package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-header-badge.component.js +21 -30
- package/dist/app/panels/builtin-panels.d.ts.map +1 -1
- package/dist/app/panels/builtin-panels.js +2 -0
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.js +15 -11
- package/dist/app/renderer/prism-renderer.component.d.ts +0 -1
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +9 -71
- package/dist/app/renderer/projectable-content.d.ts +10 -0
- package/dist/app/renderer/projectable-content.d.ts.map +1 -0
- package/dist/app/renderer/projectable-content.js +60 -0
- package/dist/app/services/prism-capture.service.d.ts.map +1 -1
- package/dist/app/services/prism-capture.service.js +20 -0
- package/dist/app/services/prism-layout.service.d.ts +0 -3
- package/dist/app/services/prism-layout.service.d.ts.map +1 -1
- package/dist/app/services/prism-layout.service.js +0 -8
- package/dist/app/services/prism-panel.service.d.ts +18 -0
- package/dist/app/services/prism-panel.service.d.ts.map +1 -1
- package/dist/app/services/prism-panel.service.js +28 -0
- package/dist/app/shared/prism-metric-badge.component.d.ts +32 -0
- package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -0
- package/dist/app/shared/prism-metric-badge.component.js +70 -0
- package/dist/app/shell/prism-shell.component.d.ts +0 -1
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +56 -48
- package/dist/app/sidebar/navigation-decorations.d.ts +6 -3
- package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
- package/dist/app/sidebar/navigation-decorations.js +7 -4
- package/dist/app/sidebar/prism-sidebar.component.d.ts +11 -7
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
- package/dist/app/sidebar/prism-sidebar.component.js +61 -83
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
- package/dist/app/theme/prism-default-theme.js +44 -4
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +13 -26
- package/dist/app/variant-ribbon/spectrum.d.ts +19 -0
- package/dist/app/variant-ribbon/spectrum.d.ts.map +1 -0
- package/dist/app/variant-ribbon/spectrum.js +15 -0
- package/dist/app/view-tab-bar/next-view-id.d.ts +12 -0
- package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -0
- package/dist/app/view-tab-bar/next-view-id.js +16 -0
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +0 -1
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +10 -11
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +0 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +6 -13
- package/dist/transformer/cli.js +0 -0
- package/package.json +1 -1
- package/dist/app/canvas/prism-code-drawer.component.d.ts +0 -14
- package/dist/app/canvas/prism-code-drawer.component.d.ts.map +0 -1
- package/dist/app/canvas/prism-code-drawer.component.js +0 -116
- package/dist/app/component-header/prism-component-header.component.d.ts +0 -8
- package/dist/app/component-header/prism-component-header.component.d.ts.map +0 -1
- package/dist/app/component-header/prism-component-header.component.js +0 -77
- package/dist/cli/audit-a11y/aggregator.d.ts +0 -10
- package/dist/cli/audit-a11y/aggregator.d.ts.map +0 -1
- package/dist/cli/audit-a11y/aggregator.js +0 -64
- package/dist/cli/audit-a11y/auditor.d.ts +0 -14
- package/dist/cli/audit-a11y/auditor.d.ts.map +0 -1
- package/dist/cli/audit-a11y/auditor.js +0 -104
- package/dist/cli/audit-a11y/cli.d.ts +0 -3
- package/dist/cli/audit-a11y/cli.d.ts.map +0 -1
- package/dist/cli/audit-a11y/cli.js +0 -143
- package/dist/cli/audit-a11y/index.d.ts +0 -4
- package/dist/cli/audit-a11y/index.d.ts.map +0 -1
- package/dist/cli/audit-a11y/index.js +0 -3
- package/dist/cli/audit-a11y/static-server.d.ts +0 -11
- package/dist/cli/audit-a11y/static-server.d.ts.map +0 -1
- package/dist/cli/audit-a11y/static-server.js +0 -61
|
@@ -7,6 +7,7 @@ import { PrismSearchService } from '../services/prism-search.service.js';
|
|
|
7
7
|
import { decorateItem, lifecycleIcon, resolveNavigationDecorations, rollupCategory, } from './navigation-decorations.js';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
const _c0 = ["filterInput"];
|
|
10
|
+
const _c1 = () => [];
|
|
10
11
|
const _forTrack0 = ($index, $item) => $item.name;
|
|
11
12
|
function _forTrack1($index, $item) { /* @ts-ignore */
|
|
12
13
|
return this.itemKey($item); }
|
|
@@ -53,9 +54,7 @@ function PrismSidebarComponent_Conditional_8_For_8_Template(rf, ctx) { if (rf &
|
|
|
53
54
|
i0.ɵɵattribute("aria-expanded", !ctx_r2.isCollapsed("page:" + cat_r2.name));
|
|
54
55
|
i0.ɵɵadvance();
|
|
55
56
|
i0.ɵɵproperty("size", 10);
|
|
56
|
-
i0.ɵɵadvance();
|
|
57
|
-
i0.ɵɵstyleProp("--%NS%chip", cat_r2.color);
|
|
58
|
-
i0.ɵɵadvance();
|
|
57
|
+
i0.ɵɵadvance(2);
|
|
59
58
|
i0.ɵɵtextInterpolate1(" ", cat_r2.name, " ");
|
|
60
59
|
i0.ɵɵadvance();
|
|
61
60
|
i0.ɵɵconditional(!ctx_r2.isCollapsed("page:" + cat_r2.name) ? 5 : -1);
|
|
@@ -68,7 +67,7 @@ function PrismSidebarComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
|
68
67
|
i0.ɵɵelementStart(5, "span");
|
|
69
68
|
i0.ɵɵtext(6);
|
|
70
69
|
i0.ɵɵelementEnd()();
|
|
71
|
-
i0.ɵɵrepeaterCreate(7, PrismSidebarComponent_Conditional_8_For_8_Template, 6,
|
|
70
|
+
i0.ɵɵrepeaterCreate(7, PrismSidebarComponent_Conditional_8_For_8_Template, 6, 6, "div", 10, _forTrack0);
|
|
72
71
|
i0.ɵɵelementEnd();
|
|
73
72
|
} if (rf & 2) {
|
|
74
73
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -79,44 +78,36 @@ function PrismSidebarComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
|
79
78
|
i0.ɵɵadvance();
|
|
80
79
|
i0.ɵɵrepeater(ctx_r2.pageCategories());
|
|
81
80
|
} }
|
|
82
|
-
function
|
|
83
|
-
i0.ɵɵ
|
|
84
|
-
i0.ɵɵtext(1);
|
|
85
|
-
i0.ɵɵelementEnd();
|
|
81
|
+
function PrismSidebarComponent_For_10_For_7_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
i0.ɵɵtext(0);
|
|
86
83
|
} if (rf & 2) {
|
|
87
84
|
const cat_r7 = i0.ɵɵnextContext().$implicit;
|
|
88
|
-
|
|
89
|
-
i0.ɵɵclassProp("sb-group-rollup--warn", cat_r7.rollup.variant === "warn")("sb-group-rollup--danger", cat_r7.rollup.variant === "danger");
|
|
90
|
-
i0.ɵɵattribute("title", ctx_r2.rollupTooltip(cat_r7.rollup))("aria-label", ctx_r2.rollupTooltip(cat_r7.rollup));
|
|
91
|
-
i0.ɵɵadvance();
|
|
92
|
-
i0.ɵɵtextInterpolate(cat_r7.rollup.problems);
|
|
85
|
+
i0.ɵɵtextInterpolate2(" ", cat_r7.rollup.problems, "/", cat_r7.items.length, " ");
|
|
93
86
|
} }
|
|
94
|
-
function
|
|
95
|
-
i0.ɵɵ
|
|
87
|
+
function PrismSidebarComponent_For_10_For_7_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
88
|
+
i0.ɵɵtext(0);
|
|
89
|
+
} if (rf & 2) {
|
|
90
|
+
const cat_r7 = i0.ɵɵnextContext().$implicit;
|
|
91
|
+
i0.ɵɵtextInterpolate1(" ", cat_r7.items.length, " ");
|
|
92
|
+
} }
|
|
93
|
+
function PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelement(0, "prism-icon", 27);
|
|
96
95
|
} if (rf & 2) {
|
|
97
96
|
const mark_r11 = ctx.$implicit;
|
|
98
97
|
i0.ɵɵclassMap("sb-health sb-health--" + mark_r11.variant);
|
|
99
98
|
i0.ɵɵproperty("name", mark_r11.icon)("size", 11);
|
|
100
99
|
} }
|
|
101
|
-
function PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
-
i0.ɵɵelementStart(0, "span", 27);
|
|
103
|
-
i0.ɵɵrepeaterCreate(1, PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Conditional_4_For_2_Template, 1, 4, "prism-icon", 28, _forTrack3);
|
|
104
|
-
i0.ɵɵelementEnd();
|
|
105
|
-
} if (rf & 2) {
|
|
106
|
-
const row_r10 = i0.ɵɵnextContext().$implicit;
|
|
107
|
-
i0.ɵɵadvance();
|
|
108
|
-
i0.ɵɵrepeater(row_r10.decorations.marks);
|
|
109
|
-
} }
|
|
110
100
|
function PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
111
101
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
112
102
|
i0.ɵɵelementStart(0, "button", 17);
|
|
113
103
|
i0.ɵɵlistener("click", function PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Template_button_click_0_listener() { const row_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.onSelect(row_r10.item)); });
|
|
114
|
-
i0.ɵɵelement(1, "prism-icon",
|
|
104
|
+
i0.ɵɵelement(1, "prism-icon", 24);
|
|
115
105
|
i0.ɵɵelementStart(2, "span", 18);
|
|
116
106
|
i0.ɵɵtext(3);
|
|
117
107
|
i0.ɵɵelementEnd();
|
|
118
|
-
i0.ɵɵ
|
|
119
|
-
i0.ɵɵ
|
|
108
|
+
i0.ɵɵelementStart(4, "span", 25);
|
|
109
|
+
i0.ɵɵrepeaterCreate(5, PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_For_6_Template, 1, 4, "prism-icon", 26, _forTrack3);
|
|
110
|
+
i0.ɵɵelementEnd()();
|
|
120
111
|
} if (rf & 2) {
|
|
121
112
|
const row_r10 = ctx.$implicit;
|
|
122
113
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
@@ -126,12 +117,12 @@ function PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Template(rf, ctx
|
|
|
126
117
|
i0.ɵɵproperty("name", row_r10.icon)("size", 12);
|
|
127
118
|
i0.ɵɵadvance(2);
|
|
128
119
|
i0.ɵɵtextInterpolate(ctx_r2.itemLabel(row_r10.item));
|
|
129
|
-
i0.ɵɵadvance();
|
|
130
|
-
i0.ɵɵ
|
|
120
|
+
i0.ɵɵadvance(2);
|
|
121
|
+
i0.ɵɵrepeater(row_r10.decorations?.marks ?? i0.ɵɵpureFunction0(8, _c1));
|
|
131
122
|
} }
|
|
132
123
|
function PrismSidebarComponent_For_10_For_7_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
133
124
|
i0.ɵɵelementStart(0, "div", 15);
|
|
134
|
-
i0.ɵɵrepeaterCreate(1, PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Template,
|
|
125
|
+
i0.ɵɵrepeaterCreate(1, PrismSidebarComponent_For_10_For_7_Conditional_8_For_2_Template, 7, 9, "button", 23, _forTrack2, true);
|
|
135
126
|
i0.ɵɵelementEnd();
|
|
136
127
|
} if (rf & 2) {
|
|
137
128
|
const cat_r7 = i0.ɵɵnextContext().$implicit;
|
|
@@ -144,9 +135,8 @@ function PrismSidebarComponent_For_10_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
144
135
|
i0.ɵɵlistener("click", function PrismSidebarComponent_For_10_For_7_Template_button_click_1_listener() { const cat_r7 = i0.ɵɵrestoreView(_r6).$implicit; const section_r8 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleCollapse("sec:" + section_r8.name + ":" + cat_r7.name)); });
|
|
145
136
|
i0.ɵɵelement(2, "prism-icon", 13)(3, "span", 14);
|
|
146
137
|
i0.ɵɵtext(4);
|
|
147
|
-
i0.ɵɵ
|
|
148
|
-
i0.ɵɵ
|
|
149
|
-
i0.ɵɵtext(7);
|
|
138
|
+
i0.ɵɵelementStart(5, "span", 22);
|
|
139
|
+
i0.ɵɵconditionalCreate(6, PrismSidebarComponent_For_10_For_7_Conditional_6_Template, 1, 2)(7, PrismSidebarComponent_For_10_For_7_Conditional_7_Template, 1, 1);
|
|
150
140
|
i0.ɵɵelementEnd()();
|
|
151
141
|
i0.ɵɵconditionalCreate(8, PrismSidebarComponent_For_10_For_7_Conditional_8_Template, 3, 0, "div", 15);
|
|
152
142
|
i0.ɵɵelementEnd();
|
|
@@ -159,15 +149,14 @@ function PrismSidebarComponent_For_10_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
159
149
|
i0.ɵɵattribute("aria-expanded", !ctx_r2.isCollapsed("sec:" + section_r8.name + ":" + cat_r7.name));
|
|
160
150
|
i0.ɵɵadvance();
|
|
161
151
|
i0.ɵɵproperty("size", 10);
|
|
162
|
-
i0.ɵɵadvance();
|
|
163
|
-
i0.ɵɵstyleProp("--%NS%chip", cat_r7.color);
|
|
164
|
-
i0.ɵɵadvance();
|
|
152
|
+
i0.ɵɵadvance(2);
|
|
165
153
|
i0.ɵɵtextInterpolate1(" ", cat_r7.name, " ");
|
|
166
154
|
i0.ɵɵadvance();
|
|
167
|
-
i0.ɵɵ
|
|
168
|
-
i0.ɵɵ
|
|
169
|
-
i0.ɵɵtextInterpolate(cat_r7.items.length);
|
|
155
|
+
i0.ɵɵclassProp("sb-group-count--warn", cat_r7.rollup.variant === "warn")("sb-group-count--danger", cat_r7.rollup.variant === "danger");
|
|
156
|
+
i0.ɵɵattribute("title", cat_r7.rollup.problems ? ctx_r2.rollupTooltip(cat_r7.rollup) : null)("aria-label", cat_r7.rollup.problems ? ctx_r2.rollupTooltip(cat_r7.rollup) : null);
|
|
170
157
|
i0.ɵɵadvance();
|
|
158
|
+
i0.ɵɵconditional(cat_r7.rollup.problems ? 6 : 7);
|
|
159
|
+
i0.ɵɵadvance(2);
|
|
171
160
|
i0.ɵɵconditional(!ctx_r2.isCollapsed("sec:" + section_r8.name + ":" + cat_r7.name) ? 8 : -1);
|
|
172
161
|
} }
|
|
173
162
|
function PrismSidebarComponent_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -178,7 +167,7 @@ function PrismSidebarComponent_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
|
178
167
|
i0.ɵɵelementStart(4, "span");
|
|
179
168
|
i0.ɵɵtext(5);
|
|
180
169
|
i0.ɵɵelementEnd()();
|
|
181
|
-
i0.ɵɵrepeaterCreate(6, PrismSidebarComponent_For_10_For_7_Template, 9,
|
|
170
|
+
i0.ɵɵrepeaterCreate(6, PrismSidebarComponent_For_10_For_7_Template, 9, 13, "div", 10, _forTrack0);
|
|
182
171
|
} if (rf & 2) {
|
|
183
172
|
const section_r8 = ctx.$implicit;
|
|
184
173
|
i0.ɵɵadvance(2);
|
|
@@ -191,15 +180,6 @@ function PrismSidebarComponent_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
|
191
180
|
i0.ɵɵrepeater(section_r8.categories);
|
|
192
181
|
} }
|
|
193
182
|
const STORAGE_KEY = 'ng-prism-sidebar-collapsed';
|
|
194
|
-
const CATEGORY_COLORS = {
|
|
195
|
-
'Data Display': '#f472b6',
|
|
196
|
-
Feedback: '#fbbf24',
|
|
197
|
-
Inputs: '#a78bfa',
|
|
198
|
-
Layout: '#34d399',
|
|
199
|
-
Navigation: '#60a5fa',
|
|
200
|
-
Overlay: '#c084fc',
|
|
201
|
-
Directives: '#ec4899',
|
|
202
|
-
};
|
|
203
183
|
const SECTION_ICONS = {
|
|
204
184
|
Components: 'box',
|
|
205
185
|
Directives: 'zap',
|
|
@@ -208,15 +188,6 @@ const DEFAULT_SECTION_ICON = 'box-select';
|
|
|
208
188
|
function sectionIcon(name) {
|
|
209
189
|
return SECTION_ICONS[name] ?? DEFAULT_SECTION_ICON;
|
|
210
190
|
}
|
|
211
|
-
function categoryColor(name) {
|
|
212
|
-
if (CATEGORY_COLORS[name])
|
|
213
|
-
return CATEGORY_COLORS[name];
|
|
214
|
-
let hash = 0;
|
|
215
|
-
for (let i = 0; i < name.length; i++)
|
|
216
|
-
hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
|
|
217
|
-
const hue = Math.abs(hash) % 360;
|
|
218
|
-
return `hsl(${hue}, 70%, 65%)`;
|
|
219
|
-
}
|
|
220
191
|
export class PrismSidebarComponent {
|
|
221
192
|
navigationService = inject(PrismNavigationService);
|
|
222
193
|
searchService = inject(PrismSearchService);
|
|
@@ -253,7 +224,6 @@ export class PrismSidebarComponent {
|
|
|
253
224
|
}
|
|
254
225
|
return [...catMap.entries()].map(([name, items]) => ({
|
|
255
226
|
name,
|
|
256
|
-
color: categoryColor(name),
|
|
257
227
|
items,
|
|
258
228
|
}));
|
|
259
229
|
}, /* @ts-ignore */
|
|
@@ -263,7 +233,6 @@ export class PrismSidebarComponent {
|
|
|
263
233
|
return this.navigationService.sectionTree().map((section) => ({
|
|
264
234
|
name: section.name,
|
|
265
235
|
icon: sectionIcon(section.name),
|
|
266
|
-
color: categoryColor(section.name),
|
|
267
236
|
totalCount: section.totalCount,
|
|
268
237
|
categories: section.categories.map((cat) => {
|
|
269
238
|
const items = cat.items.map((item) => ({
|
|
@@ -273,7 +242,6 @@ export class PrismSidebarComponent {
|
|
|
273
242
|
}));
|
|
274
243
|
return {
|
|
275
244
|
name: cat.name,
|
|
276
|
-
color: categoryColor(cat.name),
|
|
277
245
|
rollup: rollupCategory(items.map((row) => row.decorations)),
|
|
278
246
|
items,
|
|
279
247
|
};
|
|
@@ -311,10 +279,17 @@ export class PrismSidebarComponent {
|
|
|
311
279
|
: undefined;
|
|
312
280
|
}
|
|
313
281
|
/**
|
|
314
|
-
* Accessible name for the roll-up pill
|
|
315
|
-
* number distinguished only by colour — a
|
|
316
|
-
* group head as "Feedback 3 12" with nothing
|
|
317
|
-
* means, and a colour-blind reader can't tell
|
|
282
|
+
* Accessible name for the roll-up pill, for the deviating case only. The
|
|
283
|
+
* pill otherwise renders a bare number distinguished only by colour — a
|
|
284
|
+
* screen reader would read the group head as "Feedback 3 12" with nothing
|
|
285
|
+
* naming what either number means, and a colour-blind reader can't tell
|
|
286
|
+
* them apart at all.
|
|
287
|
+
*
|
|
288
|
+
* There is deliberately no zero branch: a clean category renders its plain
|
|
289
|
+
* item count and the template leaves both attributes off, because
|
|
290
|
+
* `aria-label` on a descendant feeds the group button's name-from-content
|
|
291
|
+
* and "Buttons 0 components need review" is a claim about a group that has
|
|
292
|
+
* nothing to review.
|
|
318
293
|
*/
|
|
319
294
|
rollupTooltip(rollup) {
|
|
320
295
|
const noun = rollup.problems === 1 ? 'component needs' : 'components need';
|
|
@@ -370,7 +345,7 @@ export class PrismSidebarComponent {
|
|
|
370
345
|
i0.ɵɵqueryAdvance();
|
|
371
346
|
} }, hostBindings: function PrismSidebarComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
372
347
|
i0.ɵɵlistener("keydown", function PrismSidebarComponent_keydown_HostBindingHandler($event) { return ctx.onGlobalKey($event); }, i0.ɵɵresolveDocument);
|
|
373
|
-
} }, decls: 11, vars: 3, consts: [["filterInput", ""], [1, "prism-sidebar"], [1, "sb-filter"], ["name", "search", 3, "size"], ["placeholder", "Filter components\u2026", 3, "input", "value"], [1, "sb-scroll"], [1, "sb-pinned"], [1, "sb-pinned-head"], [1, "sb-pinned-head-l"], ["name", "pin", 1, "sb-pinned-pin", 3, "size"], [1, "sb-group", 3, "sb-group--collapsed"], [1, "sb-group"], [1, "sb-group-head", 3, "click"], ["name", "chevron-down", 3, "size"], [1, "sb-group-chip"], [1, "sb-group-body"], [1, "sb-item", 3, "sb-item--active"], [1, "sb-item", 3, "click"], [1, "sb-item-name"], [1, "sb-section-head"], [1, "sb-section-head-l"], [1, "sb-section-icon", 3, "name", "size"], [1, "sb-group-
|
|
348
|
+
} }, decls: 11, vars: 3, consts: [["filterInput", ""], [1, "prism-sidebar"], [1, "sb-filter"], ["name", "search", 3, "size"], ["placeholder", "Filter components\u2026", 3, "input", "value"], [1, "sb-scroll"], [1, "sb-pinned"], [1, "sb-pinned-head"], [1, "sb-pinned-head-l"], ["name", "pin", 1, "sb-pinned-pin", 3, "size"], [1, "sb-group", 3, "sb-group--collapsed"], [1, "sb-group"], [1, "sb-group-head", 3, "click"], ["name", "chevron-down", 3, "size"], [1, "sb-group-chip"], [1, "sb-group-body"], [1, "sb-item", 3, "sb-item--active"], [1, "sb-item", 3, "click"], [1, "sb-item-name"], [1, "sb-section-head"], [1, "sb-section-head-l"], [1, "sb-section-icon", 3, "name", "size"], [1, "sb-group-count"], [1, "sb-item", 3, "sb-item--active", "sb-item--deprecated"], [1, "sb-item-icon", 3, "name", "size"], [1, "sb-item-health"], [3, "name", "size", "class"], [3, "name", "size"]], template: function PrismSidebarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
374
349
|
i0.ɵɵelementStart(0, "nav", 1)(1, "div", 2);
|
|
375
350
|
i0.ɵɵelement(2, "prism-icon", 3);
|
|
376
351
|
i0.ɵɵelementStart(3, "input", 4, 0);
|
|
@@ -392,7 +367,7 @@ export class PrismSidebarComponent {
|
|
|
392
367
|
i0.ɵɵconditional(ctx.pageCategories().length > 0 ? 8 : -1);
|
|
393
368
|
i0.ɵɵadvance();
|
|
394
369
|
i0.ɵɵrepeater(ctx.componentSections());
|
|
395
|
-
} }, dependencies: [PrismIconComponent], styles: [".prism-sidebar[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 6px;\n color: var(--%NS%prism-text-muted);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text);\n font-family: var(--%NS%font-sans);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder { color: var(--%NS%prism-text-muted); }\n .sb-filter[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n color: var(--%NS%prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--%NS%prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--%NS%prism-border-strong); border-radius: 4px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned[_ngcontent-%COMP%] {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--%NS%prism-border);\n border-top: 1px solid var(--%NS%prism-border);\n }\n .sb-section-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon[_ngcontent-%COMP%] { color: var(--%NS%prism-primary); }\n .sb-pinned-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n }\n .sb-pinned-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin[_ngcontent-%COMP%] { color: var(--%NS%prism-accent); }\n\n .sb-group[_ngcontent-%COMP%] { margin-bottom: 4px; }\n .sb-group-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--%NS%font-sans);\n }\n .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n transition: transform var(--%NS%dur-fast);\n color: var(--%NS%prism-text-ghost);\n }\n .sb-group--collapsed[_ngcontent-%COMP%] .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { transform: rotate(-90deg); }\n\n .sb-group-chip[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--%NS%
|
|
370
|
+
} }, dependencies: [PrismIconComponent], styles: [".prism-sidebar[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 6px;\n color: var(--%NS%prism-text-muted);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text);\n font-family: var(--%NS%font-sans);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder { color: var(--%NS%prism-text-muted); }\n .sb-filter[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n color: var(--%NS%prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--%NS%prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--%NS%prism-border-strong); border-radius: 4px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned[_ngcontent-%COMP%] {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--%NS%prism-border);\n border-top: 1px solid var(--%NS%prism-border);\n }\n .sb-section-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon[_ngcontent-%COMP%] { color: var(--%NS%prism-primary); }\n .sb-pinned-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n }\n .sb-pinned-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin[_ngcontent-%COMP%] { color: var(--%NS%prism-accent); }\n\n .sb-group[_ngcontent-%COMP%] { margin-bottom: 4px; }\n .sb-group-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--%NS%font-sans);\n }\n .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n transition: transform var(--%NS%dur-fast);\n color: var(--%NS%prism-text-ghost);\n }\n .sb-group--collapsed[_ngcontent-%COMP%] .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { transform: rotate(-90deg); }\n\n .sb-group-chip[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--%NS%prism-text-ghost);\n }\n .sb-group-count[_ngcontent-%COMP%] {\n margin-left: auto;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n color: var(--%NS%prism-text-ghost);\n font-weight: 500;\n }\n .sb-group-count--warn[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-attention); }\n .sb-group-count--danger[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-critical); }\n\n .sb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-size: 13px;\n color: var(--%NS%prism-text-2);\n cursor: pointer;\n border: none;\n background: none;\n transition: background var(--%NS%dur-fast), color var(--%NS%dur-fast);\n text-align: left;\n font-family: var(--%NS%font-sans);\n }\n .sb-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 5%, transparent);\n color: var(--%NS%prism-text);\n }\n .sb-item--active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-primary) 12%, transparent);\n font-weight: 500;\n }\n .sb-item-icon[_ngcontent-%COMP%] { flex: 0 0 12px; opacity: 0.7; }\n .sb-item-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n\n\n\n .sb-item-health[_ngcontent-%COMP%] {\n width: 40px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--%NS%sp-1);\n overflow: hidden;\n }\n\n \n\n\n\n\n .sb-health[_ngcontent-%COMP%] { fill: none; stroke: currentColor; stroke-width: 2; }\n .sb-health--warn[_ngcontent-%COMP%] {\n color: color-mix(in srgb, var(--%NS%prism-mark-attention) 80%, transparent);\n }\n .sb-health--danger[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-critical); }\n\n .sb-item--deprecated[_ngcontent-%COMP%] .sb-item-name[_ngcontent-%COMP%] {\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n color: var(--%NS%prism-text-ghost);\n opacity: 0.7;\n }\n\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
|
|
396
371
|
}
|
|
397
372
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismSidebarComponent, [{
|
|
398
373
|
type: Component,
|
|
@@ -430,7 +405,7 @@ export class PrismSidebarComponent {
|
|
|
430
405
|
[attr.aria-expanded]="!isCollapsed('page:' + cat.name)"
|
|
431
406
|
>
|
|
432
407
|
<prism-icon name="chevron-down" [size]="10" />
|
|
433
|
-
<span class="sb-group-chip"
|
|
408
|
+
<span class="sb-group-chip"></span>
|
|
434
409
|
{{ cat.name }}
|
|
435
410
|
</button>
|
|
436
411
|
@if (!isCollapsed('page:' + cat.name)) {
|
|
@@ -476,19 +451,24 @@ export class PrismSidebarComponent {
|
|
|
476
451
|
"
|
|
477
452
|
>
|
|
478
453
|
<prism-icon name="chevron-down" [size]="10" />
|
|
479
|
-
<span class="sb-group-chip"
|
|
454
|
+
<span class="sb-group-chip"></span>
|
|
480
455
|
{{ cat.name }}
|
|
481
|
-
@if (cat.rollup.problems) {
|
|
482
456
|
<span
|
|
483
|
-
class="sb-group-
|
|
484
|
-
[class.sb-group-
|
|
485
|
-
[class.sb-group-
|
|
486
|
-
[attr.title]="
|
|
487
|
-
|
|
488
|
-
|
|
457
|
+
class="sb-group-count"
|
|
458
|
+
[class.sb-group-count--warn]="cat.rollup.variant === 'warn'"
|
|
459
|
+
[class.sb-group-count--danger]="cat.rollup.variant === 'danger'"
|
|
460
|
+
[attr.title]="
|
|
461
|
+
cat.rollup.problems ? rollupTooltip(cat.rollup) : null
|
|
462
|
+
"
|
|
463
|
+
[attr.aria-label]="
|
|
464
|
+
cat.rollup.problems ? rollupTooltip(cat.rollup) : null
|
|
465
|
+
"
|
|
489
466
|
>
|
|
490
|
-
|
|
491
|
-
|
|
467
|
+
@if (cat.rollup.problems) { {{ cat.rollup.problems }}/{{
|
|
468
|
+
cat.items.length
|
|
469
|
+
}}
|
|
470
|
+
} @else { {{ cat.items.length }} }
|
|
471
|
+
</span>
|
|
492
472
|
</button>
|
|
493
473
|
@if (!isCollapsed('sec:' + section.name + ':' + cat.name)) {
|
|
494
474
|
<div class="sb-group-body">
|
|
@@ -504,9 +484,8 @@ export class PrismSidebarComponent {
|
|
|
504
484
|
>
|
|
505
485
|
<prism-icon [name]="row.icon" [size]="12" class="sb-item-icon" />
|
|
506
486
|
<span class="sb-item-name">{{ itemLabel(row.item) }}</span>
|
|
507
|
-
@if (row.decorations) {
|
|
508
487
|
<span class="sb-item-health">
|
|
509
|
-
@for (mark of row.decorations
|
|
488
|
+
@for (mark of row.decorations?.marks ?? []; track mark.id) {
|
|
510
489
|
<prism-icon
|
|
511
490
|
[name]="mark.icon"
|
|
512
491
|
[size]="11"
|
|
@@ -514,7 +493,6 @@ export class PrismSidebarComponent {
|
|
|
514
493
|
/>
|
|
515
494
|
}
|
|
516
495
|
</span>
|
|
517
|
-
}
|
|
518
496
|
</button>
|
|
519
497
|
}
|
|
520
498
|
</div>
|
|
@@ -523,9 +501,9 @@ export class PrismSidebarComponent {
|
|
|
523
501
|
} }
|
|
524
502
|
</div>
|
|
525
503
|
</nav>
|
|
526
|
-
`, styles: ["\n .prism-sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n color: var(--prism-text-muted);\n }\n .sb-filter input {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--fs-md);\n color: var(--prism-text);\n font-family: var(--font-sans);\n }\n .sb-filter input::placeholder { color: var(--prism-text-muted); }\n .sb-filter kbd {\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll::-webkit-scrollbar { width: 8px; }\n .sb-scroll::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n .sb-scroll::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--prism-border);\n border-top: 1px solid var(--prism-border);\n }\n .sb-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon { color: var(--prism-primary); }\n .sb-pinned-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n }\n .sb-pinned-head-l { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin { color: var(--prism-accent); }\n\n .sb-group { margin-bottom: 4px; }\n .sb-group-head {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-group-head prism-icon {\n transition: transform var(--dur-fast);\n color: var(--prism-text-ghost);\n }\n .sb-group--collapsed .sb-group-head prism-icon { transform: rotate(-90deg); }\n\n .sb-group-chip {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--
|
|
504
|
+
`, styles: ["\n .prism-sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n color: var(--prism-text-muted);\n }\n .sb-filter input {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--fs-md);\n color: var(--prism-text);\n font-family: var(--font-sans);\n }\n .sb-filter input::placeholder { color: var(--prism-text-muted); }\n .sb-filter kbd {\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll::-webkit-scrollbar { width: 8px; }\n .sb-scroll::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n .sb-scroll::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--prism-border);\n border-top: 1px solid var(--prism-border);\n }\n .sb-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon { color: var(--prism-primary); }\n .sb-pinned-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n }\n .sb-pinned-head-l { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin { color: var(--prism-accent); }\n\n .sb-group { margin-bottom: 4px; }\n .sb-group-head {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-group-head prism-icon {\n transition: transform var(--dur-fast);\n color: var(--prism-text-ghost);\n }\n .sb-group--collapsed .sb-group-head prism-icon { transform: rotate(-90deg); }\n\n .sb-group-chip {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--prism-text-ghost);\n }\n .sb-group-count {\n margin-left: auto;\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }\n .sb-group-count--warn { color: var(--prism-mark-attention); }\n .sb-group-count--danger { color: var(--prism-mark-critical); }\n\n .sb-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-size: 13px;\n color: var(--prism-text-2);\n cursor: pointer;\n border: none;\n background: none;\n transition: background var(--dur-fast), color var(--dur-fast);\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-item:hover {\n background: color-mix(in srgb, var(--prism-primary) 5%, transparent);\n color: var(--prism-text);\n }\n .sb-item--active {\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n font-weight: 500;\n }\n .sb-item-icon { flex: 0 0 12px; opacity: 0.7; }\n .sb-item-name {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Fixed width sized for the three built-in decoration sources (a11y,\n plugin-coverage, plugin-visual-regression) at 11px each plus two\n --sp-1 gaps, with a little headroom. navigationDecorations is an open\n extension point, so a fourth mark from a third-party plugin is\n clipped via overflow: hidden rather than allowed to grow the gutter \u2014\n the point of a fixed-width gutter is that rows never shift\n horizontally as you scan the list. */\n .sb-item-health {\n width: 40px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--sp-1);\n overflow: hidden;\n }\n\n /* Outline, not fill, and full saturation only for danger. The mechanism\n behind these marks is already deviation-driven: decorateItem returns\n null for a clean component and every source bails out at variant === 'ok'.\n What made them read as wallpaper was the drawing: a filled shape at full\n saturation, one per row, in a repo where deviating is the normal case. */\n .sb-health { fill: none; stroke: currentColor; stroke-width: 2; }\n .sb-health--warn {\n color: color-mix(in srgb, var(--prism-mark-attention) 80%, transparent);\n }\n .sb-health--danger { color: var(--prism-mark-critical); }\n\n .sb-item--deprecated .sb-item-name {\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n color: var(--prism-text-ghost);\n opacity: 0.7;\n }\n\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
|
|
527
505
|
}], null, { filterInput: [{ type: i0.ViewChild, args: ['filterInput', { isSignal: true }] }], onGlobalKey: [{
|
|
528
506
|
type: HostListener,
|
|
529
507
|
args: ['document:keydown', ['$event']]
|
|
530
508
|
}] }); })();
|
|
531
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismSidebarComponent, { className: "PrismSidebarComponent", filePath: "app/sidebar/prism-sidebar.component.ts", lineNumber:
|
|
509
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismSidebarComponent, { className: "PrismSidebarComponent", filePath: "app/sidebar/prism-sidebar.component.ts", lineNumber: 394 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-default-theme.d.ts","sourceRoot":"","sources":["../../../src/app/theme/prism-default-theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"prism-default-theme.d.ts","sourceRoot":"","sources":["../../../src/app/theme/prism-default-theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0CnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0CpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBAAmB,CAAC"}
|
|
@@ -7,6 +7,8 @@ export const PRISM_DARK_THEME = {
|
|
|
7
7
|
'--prism-bg': '#0d0b1c',
|
|
8
8
|
'--prism-bg-surface': '#131022',
|
|
9
9
|
'--prism-bg-elevated': '#1a1535',
|
|
10
|
+
'--prism-stage': '#16122b',
|
|
11
|
+
'--prism-stage-edge': 'rgba(255, 255, 255, 0.10)',
|
|
10
12
|
'--prism-text': '#ede9f8',
|
|
11
13
|
'--prism-text-2': '#b0a6c8',
|
|
12
14
|
'--prism-text-muted': '#8476a2',
|
|
@@ -24,6 +26,11 @@ export const PRISM_DARK_THEME = {
|
|
|
24
26
|
'--prism-success': '#34d399',
|
|
25
27
|
'--prism-warn': '#fbbf24',
|
|
26
28
|
'--prism-danger': '#f87171',
|
|
29
|
+
'--prism-mark-nominal': '#34d399',
|
|
30
|
+
'--prism-mark-attention': '#e8a33d',
|
|
31
|
+
'--prism-mark-critical': '#e5484d',
|
|
32
|
+
'--prism-measure': '#22d3ee',
|
|
33
|
+
'--prism-spectrum': 'linear-gradient(90deg, var(--prism-accent), var(--prism-primary), var(--prism-primary-to))',
|
|
27
34
|
};
|
|
28
35
|
export const PRISM_LIGHT_THEME = {
|
|
29
36
|
'--prism-code-tag': '#be185d',
|
|
@@ -34,6 +41,8 @@ export const PRISM_LIGHT_THEME = {
|
|
|
34
41
|
'--prism-bg': '#ffffff',
|
|
35
42
|
'--prism-bg-surface': '#faf9fd',
|
|
36
43
|
'--prism-bg-elevated': '#ffffff',
|
|
44
|
+
'--prism-stage': '#ffffff',
|
|
45
|
+
'--prism-stage-edge': 'rgba(28, 21, 48, 0.14)',
|
|
37
46
|
'--prism-text': '#1c1530',
|
|
38
47
|
'--prism-text-2': '#4d4266',
|
|
39
48
|
'--prism-text-muted': '#6b5e80',
|
|
@@ -48,9 +57,14 @@ export const PRISM_LIGHT_THEME = {
|
|
|
48
57
|
'--prism-glow-strong': 'rgba(124, 58, 237, 0.25)',
|
|
49
58
|
'--prism-input-bg': 'rgba(28, 21, 48, 0.04)',
|
|
50
59
|
'--prism-dot': 'rgba(124, 58, 237, 0.2)',
|
|
51
|
-
'--prism-success': '#
|
|
52
|
-
'--prism-warn': '#
|
|
53
|
-
'--prism-danger': '#
|
|
60
|
+
'--prism-success': '#047857',
|
|
61
|
+
'--prism-warn': '#8f6b00',
|
|
62
|
+
'--prism-danger': '#951226',
|
|
63
|
+
'--prism-mark-nominal': '#047857',
|
|
64
|
+
'--prism-mark-attention': '#8f6b00',
|
|
65
|
+
'--prism-mark-critical': '#951226',
|
|
66
|
+
'--prism-measure': '#0b93ad',
|
|
67
|
+
'--prism-spectrum': 'linear-gradient(90deg, var(--prism-accent), var(--prism-primary), var(--prism-primary-to))',
|
|
54
68
|
};
|
|
55
69
|
export const PRISM_BASE_TOKENS = {
|
|
56
70
|
'--font-sans': "'Inter', system-ui, sans-serif",
|
|
@@ -61,6 +75,13 @@ export const PRISM_BASE_TOKENS = {
|
|
|
61
75
|
'--fs-lg': '13.5px',
|
|
62
76
|
'--fs-xl': '15px',
|
|
63
77
|
'--fs-2xl': '22px',
|
|
78
|
+
'--sp-1': '2px',
|
|
79
|
+
'--sp-2': '4px',
|
|
80
|
+
'--sp-3': '8px',
|
|
81
|
+
'--sp-4': '12px',
|
|
82
|
+
'--sp-5': '16px',
|
|
83
|
+
'--sp-6': '24px',
|
|
84
|
+
'--sp-7': '40px',
|
|
64
85
|
'--radius-xs': '3px',
|
|
65
86
|
'--radius-sm': '5px',
|
|
66
87
|
'--radius-md': '7px',
|
|
@@ -69,10 +90,29 @@ export const PRISM_BASE_TOKENS = {
|
|
|
69
90
|
'--dur-fast': '0.12s',
|
|
70
91
|
'--dur-base': '0.2s',
|
|
71
92
|
'--dur-slow': '0.3s',
|
|
93
|
+
/**
|
|
94
|
+
* Chrome density. Set on the shell host, so a consuming app can compact or
|
|
95
|
+
* loosen the entire interface from CSS alone:
|
|
96
|
+
*
|
|
97
|
+
* prism-shell { --density: .8 }
|
|
98
|
+
*
|
|
99
|
+
* There is deliberately no signal, service or menu behind this — the whole
|
|
100
|
+
* control surface is the custom property.
|
|
101
|
+
*/
|
|
102
|
+
'--density': '1',
|
|
103
|
+
'--band-header': 'calc(40px * var(--density))',
|
|
104
|
+
'--band-head': 'calc(36px * var(--density))',
|
|
105
|
+
'--band-rail': 'calc(28px * var(--density))',
|
|
106
|
+
'--band-tabs': 'calc(34px * var(--density))',
|
|
72
107
|
'--prism-void-light': '#f7f5fc',
|
|
73
108
|
'--prism-void-dark': '#07050f',
|
|
74
109
|
'--prism-text-light': '#ede9f8',
|
|
75
|
-
|
|
110
|
+
/**
|
|
111
|
+
* Kept as an alias rather than removed: it is exported through
|
|
112
|
+
* PRISM_BASE_TOKENS, so a consuming stylesheet may reference it even though
|
|
113
|
+
* nothing inside this package does.
|
|
114
|
+
*/
|
|
115
|
+
'--prism-header-height': 'var(--band-header)',
|
|
76
116
|
'--prism-font-sans': 'var(--font-sans)',
|
|
77
117
|
'--prism-font-mono': 'var(--font-mono)',
|
|
78
118
|
};
|
|
@@ -7,7 +7,10 @@ export declare class PrismVariantRibbonComponent {
|
|
|
7
7
|
private readonly tabButtons;
|
|
8
8
|
protected readonly variants: import("@angular/core").Signal<import("../../index.js").Variant<unknown>[]>;
|
|
9
9
|
constructor();
|
|
10
|
-
protected
|
|
10
|
+
protected slot(index: number): {
|
|
11
|
+
i: number;
|
|
12
|
+
n: number;
|
|
13
|
+
};
|
|
11
14
|
protected prev(): void;
|
|
12
15
|
protected next(): void;
|
|
13
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismVariantRibbonComponent, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-variant-ribbon.component.d.ts","sourceRoot":"","sources":["../../../src/app/variant-ribbon/prism-variant-ribbon.component.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;;
|
|
1
|
+
{"version":3,"file":"prism-variant-ribbon.component.d.ts","sourceRoot":"","sources":["../../../src/app/variant-ribbon/prism-variant-ribbon.component.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;;AAG7E,qBAwJa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,aAAa,CACwB;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CACgC;IAE3D,SAAS,CAAC,QAAQ,CAAC,QAAQ,8EAGxB;;IAsBH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAIvD,SAAS,CAAC,IAAI,IAAI,IAAI;IAKtB,SAAS,CAAC,IAAI,IAAI,IAAI;yCA3CX,2BAA2B;2CAA3B,2BAA2B;CAgDvC"}
|
|
@@ -2,6 +2,7 @@ import { Component, inject, computed, effect, viewChild, viewChildren, ChangeDet
|
|
|
2
2
|
import { PrismIconComponent } from '../icons/prism-icon.component.js';
|
|
3
3
|
import { PrismNavigationService } from '../services/prism-navigation.service.js';
|
|
4
4
|
import { PrismRendererService } from '../services/prism-renderer.service.js';
|
|
5
|
+
import { spectrumSlot } from './spectrum.js';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
const _c0 = ["tabsContainer"];
|
|
7
8
|
const _c1 = ["tabButton"];
|
|
@@ -10,22 +11,21 @@ function PrismVariantRibbonComponent_Conditional_0_For_4_Template(rf, ctx) { if
|
|
|
10
11
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
11
12
|
i0.ɵɵelementStart(0, "button", 10, 1);
|
|
12
13
|
i0.ɵɵlistener("click", function PrismVariantRibbonComponent_Conditional_0_For_4_Template_button_click_0_listener() { const ɵ$index_6_r3 = i0.ɵɵrestoreView(_r2).$index; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.rendererService.selectVariant(ɵ$index_6_r3)); });
|
|
13
|
-
i0.ɵɵ
|
|
14
|
-
i0.ɵɵtext(3);
|
|
14
|
+
i0.ɵɵtext(2);
|
|
15
15
|
i0.ɵɵelementEnd();
|
|
16
16
|
} if (rf & 2) {
|
|
17
17
|
const v_r5 = ctx.$implicit;
|
|
18
18
|
const ɵ$index_6_r3 = ctx.$index;
|
|
19
19
|
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
20
|
-
i0.ɵɵstyleProp("--%NS%
|
|
20
|
+
i0.ɵɵstyleProp("--%NS%i", ctx_r3.slot(ɵ$index_6_r3).i)("--%NS%n", ctx_r3.slot(ɵ$index_6_r3).n);
|
|
21
21
|
i0.ɵɵclassProp("v-tab--active", ctx_r3.rendererService.activeVariantIndex() === ɵ$index_6_r3);
|
|
22
|
-
i0.ɵɵadvance(
|
|
22
|
+
i0.ɵɵadvance(2);
|
|
23
23
|
i0.ɵɵtextInterpolate1(" ", v_r5.name, " ");
|
|
24
24
|
} }
|
|
25
25
|
function PrismVariantRibbonComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
26
26
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
27
27
|
i0.ɵɵelementStart(0, "nav", 2)(1, "div", 3, 0);
|
|
28
|
-
i0.ɵɵrepeaterCreate(3, PrismVariantRibbonComponent_Conditional_0_For_4_Template,
|
|
28
|
+
i0.ɵɵrepeaterCreate(3, PrismVariantRibbonComponent_Conditional_0_For_4_Template, 3, 7, "button", 4, _forTrack0);
|
|
29
29
|
i0.ɵɵelementEnd();
|
|
30
30
|
i0.ɵɵelementStart(5, "div", 5)(6, "button", 6);
|
|
31
31
|
i0.ɵɵlistener("click", function PrismVariantRibbonComponent_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.prev()); });
|
|
@@ -48,19 +48,6 @@ function PrismVariantRibbonComponent_Conditional_0_Template(rf, ctx) { if (rf &
|
|
|
48
48
|
i0.ɵɵadvance();
|
|
49
49
|
i0.ɵɵproperty("size", 14);
|
|
50
50
|
} }
|
|
51
|
-
function variantColor(name, index) {
|
|
52
|
-
const palette = [
|
|
53
|
-
'#a78bfa',
|
|
54
|
-
'#60a5fa',
|
|
55
|
-
'#34d399',
|
|
56
|
-
'#fbbf24',
|
|
57
|
-
'#f472b6',
|
|
58
|
-
'#8476a2',
|
|
59
|
-
'#ec4899',
|
|
60
|
-
'#06b6d4',
|
|
61
|
-
];
|
|
62
|
-
return palette[index % palette.length];
|
|
63
|
-
}
|
|
64
51
|
export class PrismVariantRibbonComponent {
|
|
65
52
|
navigationService = inject(PrismNavigationService);
|
|
66
53
|
rendererService = inject(PrismRendererService);
|
|
@@ -92,8 +79,8 @@ export class PrismVariantRibbonComponent {
|
|
|
92
79
|
}
|
|
93
80
|
});
|
|
94
81
|
}
|
|
95
|
-
|
|
96
|
-
return
|
|
82
|
+
slot(index) {
|
|
83
|
+
return spectrumSlot(index, this.variants().length);
|
|
97
84
|
}
|
|
98
85
|
prev() {
|
|
99
86
|
const idx = this.rendererService.activeVariantIndex();
|
|
@@ -110,11 +97,11 @@ export class PrismVariantRibbonComponent {
|
|
|
110
97
|
i0.ɵɵviewQuerySignal(ctx.tabsContainer, _c0, 5)(ctx.tabButtons, _c1, 5);
|
|
111
98
|
} if (rf & 2) {
|
|
112
99
|
i0.ɵɵqueryAdvance(2);
|
|
113
|
-
} }, decls: 1, vars: 1, consts: [["tabsContainer", ""], ["tabButton", ""], [1, "variant-ribbon"], [1, "variant-ribbon-tabs"], [1, "v-tab", 3, "v-tab--active", "--%NS%
|
|
100
|
+
} }, decls: 1, vars: 1, consts: [["tabsContainer", ""], ["tabButton", ""], [1, "variant-ribbon"], [1, "variant-ribbon-tabs"], [1, "v-tab", 3, "v-tab--active", "--%NS%i", "--%NS%n"], [1, "variant-ribbon-right"], ["title", "Previous variant", "aria-label", "Previous variant", 1, "tool-btn", 3, "click", "disabled"], ["name", "chevron-right", 2, "transform", "rotate(180deg)", 3, "size"], ["title", "Next variant", "aria-label", "Next variant", 1, "tool-btn", 3, "click", "disabled"], ["name", "chevron-right", 3, "size"], [1, "v-tab", 3, "click"]], template: function PrismVariantRibbonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
114
101
|
i0.ɵɵconditionalCreate(0, PrismVariantRibbonComponent_Conditional_0_Template, 10, 4, "nav", 2);
|
|
115
102
|
} if (rf & 2) {
|
|
116
103
|
i0.ɵɵconditional(ctx.variants().length > 0 ? 0 : -1);
|
|
117
|
-
} }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] { display: block; flex-shrink: 0; }\n\n .variant-ribbon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0
|
|
104
|
+
} }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] { display: block; flex-shrink: 0; }\n\n .variant-ribbon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0 var(--%NS%sp-5);\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n height: var(--%NS%band-rail);\n }\n\n .variant-ribbon-tabs[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 2px;\n height: 100%;\n overflow-x: auto;\n scrollbar-width: none;\n }\n .variant-ribbon-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .v-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 14px;\n font-size: 13px;\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n transition: color var(--%NS%dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--%NS%font-sans);\n }\n \n\n\n .v-tab[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: var(--%NS%sp-3);\n right: var(--%NS%sp-3);\n bottom: 0;\n height: 2px;\n border-radius: 2px;\n background: var(--%NS%prism-spectrum);\n background-size: calc(var(--%NS%n) * 100%) 100%;\n background-position: calc(var(--%NS%i) / (var(--%NS%n) - 1) * 100%) 0;\n opacity: 0;\n transition: opacity var(--%NS%dur-fast) var(--%NS%ease-default);\n }\n .v-tab[_ngcontent-%COMP%]:hover { color: var(--%NS%prism-text-2); }\n .v-tab--active[_ngcontent-%COMP%] { color: var(--%NS%prism-text); }\n .v-tab--%NS%active[_ngcontent-%COMP%]::after { opacity: 1; }\n .v-tab[_ngcontent-%COMP%]:hover::after { opacity: 0.4; }\n\n .variant-ribbon-right[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n margin-left: 12px;\n border-left: 1px solid var(--%NS%prism-border);\n height: 24px;\n }\n\n .tool-btn[_ngcontent-%COMP%] {\n height: 24px;\n width: 24px;\n display: grid;\n place-items: center;\n border-radius: var(--%NS%radius-sm);\n color: var(--%NS%prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--%NS%dur-fast);\n }\n .tool-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n color: var(--%NS%prism-text);\n background: color-mix(in srgb, var(--%NS%prism-primary) 8%, transparent);\n }\n .tool-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.3;\n cursor: default;\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
|
|
118
105
|
}
|
|
119
106
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismVariantRibbonComponent, [{
|
|
120
107
|
type: Component,
|
|
@@ -127,10 +114,10 @@ export class PrismVariantRibbonComponent {
|
|
|
127
114
|
#tabButton
|
|
128
115
|
class="v-tab"
|
|
129
116
|
[class.v-tab--active]="rendererService.activeVariantIndex() === i"
|
|
130
|
-
[style.--
|
|
117
|
+
[style.--i]="slot(i).i"
|
|
118
|
+
[style.--n]="slot(i).n"
|
|
131
119
|
(click)="rendererService.selectVariant(i)"
|
|
132
120
|
>
|
|
133
|
-
<span class="v-dot"></span>
|
|
134
121
|
{{ v.name }}
|
|
135
122
|
</button>
|
|
136
123
|
}
|
|
@@ -163,6 +150,6 @@ export class PrismVariantRibbonComponent {
|
|
|
163
150
|
</div>
|
|
164
151
|
</nav>
|
|
165
152
|
}
|
|
166
|
-
`, styles: ["\n :host { display: block; flex-shrink: 0; }\n\n .variant-ribbon {\n display: flex;\n align-items: center;\n padding: 0
|
|
153
|
+
`, styles: ["\n :host { display: block; flex-shrink: 0; }\n\n .variant-ribbon {\n display: flex;\n align-items: center;\n padding: 0 var(--sp-5);\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n height: var(--band-rail);\n }\n\n .variant-ribbon-tabs {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n gap: 2px;\n height: 100%;\n overflow-x: auto;\n scrollbar-width: none;\n }\n .variant-ribbon-tabs::-webkit-scrollbar { display: none; }\n\n .v-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 14px;\n font-size: 13px;\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n /* Colour as position, not assignment: each tab shows the slice of one\n broken spectrum that corresponds to where it sits in the sequence. Nine\n arbitrary hues used to say nothing at all; this says \"you are here\". */\n .v-tab::after {\n content: '';\n position: absolute;\n left: var(--sp-3);\n right: var(--sp-3);\n bottom: 0;\n height: 2px;\n border-radius: 2px;\n background: var(--prism-spectrum);\n background-size: calc(var(--n) * 100%) 100%;\n background-position: calc(var(--i) / (var(--n) - 1) * 100%) 0;\n opacity: 0;\n transition: opacity var(--dur-fast) var(--ease-default);\n }\n .v-tab:hover { color: var(--prism-text-2); }\n .v-tab--active { color: var(--prism-text); }\n .v-tab--active::after { opacity: 1; }\n .v-tab:hover::after { opacity: 0.4; }\n\n .variant-ribbon-right {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n margin-left: 12px;\n border-left: 1px solid var(--prism-border);\n height: 24px;\n }\n\n .tool-btn {\n height: 24px;\n width: 24px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .tool-btn:hover:not(:disabled) {\n color: var(--prism-text);\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .tool-btn:disabled {\n opacity: 0.3;\n cursor: default;\n }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
|
|
167
154
|
}], () => [], { tabsContainer: [{ type: i0.ViewChild, args: ['tabsContainer', { isSignal: true }] }], tabButtons: [{ type: i0.ViewChildren, args: ['tabButton', { isSignal: true }] }] }); })();
|
|
168
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismVariantRibbonComponent, { className: "PrismVariantRibbonComponent", filePath: "app/variant-ribbon/prism-variant-ribbon.component.ts", lineNumber:
|
|
155
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismVariantRibbonComponent, { className: "PrismVariantRibbonComponent", filePath: "app/variant-ribbon/prism-variant-ribbon.component.ts", lineNumber: 168 }); })();
|