@adia-ai/web-components 0.8.42 → 0.8.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/MIGRATION.md +130 -80
- package/USAGE.md +1 -1
- package/color/index.js +1 -1
- package/components/action-list/action-item.a2ui.json +3 -8
- package/components/action-list/action-item.yaml +10 -16
- package/components/action-list/action-list.class.js +5 -61
- package/components/action-list/action-list.d.ts +1 -3
- package/components/avatar/avatar.class.js +12 -1
- package/components/button/button.d.ts +4 -0
- package/components/button/button.yaml +1 -1
- package/components/calendar-picker/calendar-picker.a2ui.json +1 -1
- package/components/calendar-picker/calendar-picker.class.js +2 -3
- package/components/calendar-picker/calendar-picker.css +16 -18
- package/components/calendar-picker/calendar-picker.yaml +2 -2
- package/components/card/card.css +3 -3
- package/components/chart/chart.a2ui.json +29 -18
- package/components/chart/chart.class.js +1308 -266
- package/components/chart/chart.css +151 -1
- package/components/chart/chart.d.ts +9 -9
- package/components/chart/chart.yaml +63 -31
- package/components/chart-legend/chart-legend.a2ui.json +20 -14
- package/components/chart-legend/chart-legend.class.js +79 -58
- package/components/chart-legend/chart-legend.css +65 -1
- package/components/chart-legend/chart-legend.d.ts +5 -5
- package/components/chart-legend/chart-legend.examples.md +4 -4
- package/components/chart-legend/chart-legend.yaml +50 -20
- package/components/check/check.css +9 -0
- package/components/color-area/color-area.a2ui.json +1 -1
- package/components/color-area/color-area.class.js +2 -2
- package/components/color-area/color-area.css +4 -7
- package/components/color-area/color-area.d.ts +1 -1
- package/components/color-area/color-area.yaml +3 -3
- package/components/color-input/color-input.a2ui.json +1 -1
- package/components/color-input/color-input.class.js +1 -1
- package/components/color-input/color-input.yaml +2 -2
- package/components/combobox/combobox.a2ui.json +3 -0
- package/components/combobox/combobox.class.js +9 -8
- package/components/combobox/combobox.css +25 -4
- package/components/combobox/combobox.yaml +6 -0
- package/components/command/command.css +17 -1
- package/components/context-menu/context-menu.d.ts +2 -0
- package/components/drilldown/drilldown.a2ui.json +3 -0
- package/components/drilldown/drilldown.css +8 -1
- package/components/drilldown/drilldown.yaml +2 -0
- package/components/field/field.class.js +5 -5
- package/components/heatmap/heatmap.a2ui.json +5 -0
- package/components/heatmap/heatmap.d.ts +2 -0
- package/components/heatmap/heatmap.yaml +8 -0
- package/components/index.js +0 -4
- package/components/input/input.a2ui.json +4 -4
- package/components/input/input.class.js +20 -7
- package/components/input/input.css +6 -0
- package/components/input/input.yaml +15 -11
- package/components/integration-card/integration-card.d.ts +2 -0
- package/components/menu/menu-item.a2ui.json +3 -8
- package/components/menu/menu-item.yaml +13 -21
- package/components/menu/menu.class.js +5 -27
- package/components/menu/menu.d.ts +1 -3
- package/components/noodles/noodles.a2ui.json +0 -15
- package/components/noodles/noodles.yaml +0 -12
- package/components/number-format/number-format.class.js +10 -0
- package/components/pagination/pagination.class.js +88 -4
- package/components/pane/pane.a2ui.json +2 -12
- package/components/pane/pane.class.js +5 -30
- package/components/pane/pane.d.ts +3 -5
- package/components/pane/pane.yaml +7 -19
- package/components/popover/popover.d.ts +2 -0
- package/components/progress/progress.a2ui.json +1 -1
- package/components/progress/progress.class.js +13 -8
- package/components/progress/progress.d.ts +1 -1
- package/components/progress/progress.yaml +2 -2
- package/components/radio/radio.css +7 -0
- package/components/range/range.class.js +9 -1
- package/components/search/search.css +10 -1
- package/components/segment/segment.a2ui.json +1 -2
- package/components/segment/segment.css +10 -0
- package/components/segment/segment.yaml +1 -2
- package/components/segmented/segmented.a2ui.json +1 -3
- package/components/segmented/segmented.class.js +2 -2
- package/components/segmented/segmented.yaml +2 -4
- package/components/select/select.a2ui.json +5 -1
- package/components/select/select.class.js +14 -14
- package/components/select/select.css +20 -1
- package/components/select/select.yaml +7 -1
- package/components/step-progress/step-progress.yaml +1 -1
- package/components/stream/stream.d.ts +2 -0
- package/components/switch/switch.css +8 -0
- package/components/table/table.a2ui.json +6 -1
- package/components/table/table.class.js +18 -1
- package/components/table/table.css +31 -6
- package/components/table/table.d.ts +3 -1
- package/components/table/table.examples.md +2 -2
- package/components/table/table.yaml +9 -1
- package/components/table-toolbar/table-toolbar.a2ui.json +67 -2
- package/components/table-toolbar/table-toolbar.class.js +492 -17
- package/components/table-toolbar/table-toolbar.css +311 -0
- package/components/table-toolbar/table-toolbar.d.ts +17 -1
- package/components/table-toolbar/table-toolbar.yaml +220 -15
- package/components/tag/tag.class.js +13 -1
- package/components/text/text.a2ui.json +3 -3
- package/components/text/text.d.ts +5 -3
- package/components/text/text.yaml +3 -3
- package/components/textarea/textarea.class.js +9 -1
- package/components/textarea/textarea.css +4 -0
- package/components/time-picker/time-picker.yaml +3 -2
- package/components/tour/tour.d.ts +10 -0
- package/components/tree/tree.yaml +1 -1
- package/components/upload/upload.class.js +16 -0
- package/components/upload/upload.d.ts +7 -0
- package/components/upload/upload.yaml +7 -3
- package/core/a11y.d.ts +22 -0
- package/core/a11y.js +64 -0
- package/core/anchor.js +9 -5
- package/core/element.js +1 -1
- package/core/icons.js +2 -5
- package/custom-elements.json +142 -594
- package/dist/host.min.css +1 -1
- package/dist/host.sheet.js +1 -1
- package/dist/theme-provider.min.js +1 -1
- package/dist/web-components.min.css +1 -1
- package/dist/web-components.min.js +122 -119
- package/dist/web-components.sheet.js +1 -1
- package/index.d.ts +0 -15
- package/package.json +1 -1
- package/patterns/access-requests/access-requests.examples.html +1 -1
- package/patterns/admin-keys-and-export/admin-keys-and-export.examples.html +7 -7
- package/patterns/agent-cost/agent-cost.examples.html +6 -6
- package/patterns/agent-memory/agent-memory.examples.html +3 -3
- package/patterns/agent-prompt-library/agent-prompt-library.examples.html +8 -8
- package/patterns/agent-tool-call/agent-tool-call.examples.html +1 -1
- package/patterns/approvals/approvals.examples.html +6 -6
- package/patterns/audit-log/audit-log.examples.html +1 -1
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.html +4 -4
- package/patterns/chart-in-card/chart-in-card.examples.html +124 -10
- package/patterns/chart-in-card/chart-in-card.examples.js +37 -0
- package/patterns/comments-and-collaboration/comments-and-collaboration.examples.html +5 -5
- package/patterns/conversion-funnel/conversion-funnel.html +2 -2
- package/patterns/data-tables-inline-edit-and-tree/data-tables-inline-edit-and-tree.examples.html +2 -2
- package/patterns/diff-review/diff-review.examples.html +6 -6
- package/patterns/editor-shell/editor-shell.examples.html +3 -3
- package/patterns/export-flow/export-flow.examples.html +2 -2
- package/patterns/filter-bar/filter-bar.examples.html +2 -2
- package/patterns/forms-conditional-and-autocomplete/forms-conditional-and-autocomplete.examples.html +2 -2
- package/patterns/inline-dialog/inline-dialog.examples.html +2 -2
- package/patterns/marketing-engagement/marketing-engagement.examples.html +4 -4
- package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.examples.html +1 -1
- package/patterns/permissions-matrix/permissions-matrix.examples.html +1 -1
- package/patterns/permissions-sharing/permissions-sharing.examples.html +2 -2
- package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html +4 -4
- package/patterns/search-discovery/search-discovery.examples.html +2 -2
- package/styles/colors/semantics/features.css +8 -1
- package/styles/components.css +0 -4
- package/styles/type/roles.css +29 -9
- package/traits/arrow-grid-nav/arrow-grid-nav.js +1 -1
- package/traits/resize-observer/resize-observer.js +1 -1
- package/components/color-picker/color-picker.a2ui.json +0 -148
- package/components/color-picker/color-picker.class.js +0 -46
- package/components/color-picker/color-picker.css +0 -14
- package/components/color-picker/color-picker.d.ts +0 -99
- package/components/color-picker/color-picker.examples.md +0 -19
- package/components/color-picker/color-picker.js +0 -17
- package/components/color-picker/color-picker.yaml +0 -175
- package/components/datetime-picker/datetime-picker.a2ui.json +0 -256
- package/components/datetime-picker/datetime-picker.class.js +0 -58
- package/components/datetime-picker/datetime-picker.css +0 -11
- package/components/datetime-picker/datetime-picker.d.ts +0 -87
- package/components/datetime-picker/datetime-picker.examples.md +0 -25
- package/components/datetime-picker/datetime-picker.js +0 -17
- package/components/datetime-picker/datetime-picker.yaml +0 -254
- package/components/progress-row/progress-row.a2ui.json +0 -107
- package/components/progress-row/progress-row.class.js +0 -118
- package/components/progress-row/progress-row.css +0 -60
- package/components/progress-row/progress-row.d.ts +0 -24
- package/components/progress-row/progress-row.examples.md +0 -7
- package/components/progress-row/progress-row.js +0 -17
- package/components/progress-row/progress-row.yaml +0 -85
- package/components/toggle-group/toggle-group.a2ui.json +0 -148
- package/components/toggle-group/toggle-group.class.js +0 -195
- package/components/toggle-group/toggle-group.css +0 -127
- package/components/toggle-group/toggle-group.d.ts +0 -50
- package/components/toggle-group/toggle-group.examples.md +0 -33
- package/components/toggle-group/toggle-group.js +0 -18
- package/components/toggle-group/toggle-group.yaml +0 -135
- package/components/toggle-group/toggle-option.a2ui.json +0 -86
- package/components/toggle-group/toggle-option.yaml +0 -75
package/index.d.ts
CHANGED
|
@@ -107,16 +107,6 @@ export type {
|
|
|
107
107
|
ColorAreaConstraintClampEventDetail,
|
|
108
108
|
} from './components/color-area/color-area.js';
|
|
109
109
|
|
|
110
|
-
export type {
|
|
111
|
-
UIColorPicker,
|
|
112
|
-
ColorPickerChangeEvent,
|
|
113
|
-
ColorPickerInputEvent,
|
|
114
|
-
ColorPickerChangeEventDetail,
|
|
115
|
-
ColorPickerClampRecord,
|
|
116
|
-
ColorPickerConstraintClampEvent,
|
|
117
|
-
ColorPickerConstraintClampEventDetail,
|
|
118
|
-
} from './components/color-picker/color-picker.js';
|
|
119
|
-
|
|
120
110
|
export type {
|
|
121
111
|
UIRating,
|
|
122
112
|
RatingChangeEvent,
|
|
@@ -201,7 +191,6 @@ export * from './components/pane/pane.js';
|
|
|
201
191
|
export * from './components/pipeline-status/pipeline-status.js';
|
|
202
192
|
export * from './components/popover/popover.js';
|
|
203
193
|
export * from './components/progress/progress.js';
|
|
204
|
-
export * from './components/progress-row/progress-row.js';
|
|
205
194
|
export * from './components/richtext/richtext.js';
|
|
206
195
|
export * from './components/row/row.js';
|
|
207
196
|
export * from './components/segment/segment.js';
|
|
@@ -219,7 +208,6 @@ export * from './components/tag/tag.js';
|
|
|
219
208
|
export * from './components/text/text.js';
|
|
220
209
|
export * from './components/timeline/timeline.js';
|
|
221
210
|
export * from './components/toast/toast.js';
|
|
222
|
-
export * from './components/toggle-group/toggle-group.js';
|
|
223
211
|
export * from './components/toggle-scheme/toggle-scheme.js';
|
|
224
212
|
export * from './components/toolbar/toolbar.js';
|
|
225
213
|
export * from './components/tooltip/tooltip.js';
|
|
@@ -251,7 +239,6 @@ declare global {
|
|
|
251
239
|
'otp-input-ui': import('./components/otp-input/otp-input.js').UIOtpInput;
|
|
252
240
|
'option-card-ui': import('./components/option-card/option-card.js').UIOptionCard;
|
|
253
241
|
'color-area-ui': import('./components/color-area/color-area.js').UIColorArea;
|
|
254
|
-
'color-picker-ui': import('./components/color-picker/color-picker.js').UIColorPicker;
|
|
255
242
|
'rating-ui': import('./components/rating/rating.js').UIRating;
|
|
256
243
|
'code-ui': import('./components/code/code.js').UICode;
|
|
257
244
|
'calendar-picker-ui': import('./components/calendar-picker/calendar-picker.js').UICalendarPicker;
|
|
@@ -307,7 +294,6 @@ declare global {
|
|
|
307
294
|
'pipeline-status-ui': import('./components/pipeline-status/pipeline-status.js').UIPipelineStatus;
|
|
308
295
|
'popover-ui': import('./components/popover/popover.js').UIPopover;
|
|
309
296
|
'progress-ui': import('./components/progress/progress.js').UIProgress;
|
|
310
|
-
'progress-row-ui': import('./components/progress-row/progress-row.js').UIProgressRow;
|
|
311
297
|
'richtext-ui': import('./components/richtext/richtext.js').UIRichText;
|
|
312
298
|
'row-ui': import('./components/row/row.js').UIRow;
|
|
313
299
|
'segment-ui': import('./components/segment/segment.js').UISegment;
|
|
@@ -325,7 +311,6 @@ declare global {
|
|
|
325
311
|
'text-ui': import('./components/text/text.js').UIText;
|
|
326
312
|
'timeline-ui': import('./components/timeline/timeline.js').UITimeline;
|
|
327
313
|
'toast-ui': import('./components/toast/toast.js').UIToast;
|
|
328
|
-
'toggle-group-ui': import('./components/toggle-group/toggle-group.js').UIToggleGroup;
|
|
329
314
|
'toggle-scheme-ui': import('./components/toggle-scheme/toggle-scheme.js').UIToggleScheme;
|
|
330
315
|
'toolbar-ui': import('./components/toolbar/toolbar.js').UIToolbar;
|
|
331
316
|
'tooltip-ui': import('./components/tooltip/tooltip.js').UITooltip;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/web-components",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.44",
|
|
4
4
|
"description": "AdiaUI web components \u2014 vanilla custom elements. A2UI runtime (renderer, registry, streams, wiring) lives in @adia-ai/a2ui.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
</section>
|
|
42
42
|
<footer divider>
|
|
43
43
|
<button-ui slot="action" text="Go back" variant="ghost"></button-ui>
|
|
44
|
-
<button-ui slot="action" text="Request access" variant="primary" icon
|
|
44
|
+
<button-ui slot="action" text="Request access" variant="primary" icon="paper-plane-tilt"></button-ui>
|
|
45
45
|
</footer>
|
|
46
46
|
</card-ui>
|
|
47
47
|
</div>
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
<header>
|
|
34
34
|
<span slot="heading" variant="section">API keys</span>
|
|
35
35
|
<text-ui slot="description" color="subtle">3 active · last rotated 12 days ago</text-ui>
|
|
36
|
-
<button-ui slot="action" text="Create key" variant="primary" size="sm" icon
|
|
36
|
+
<button-ui slot="action" text="Create key" variant="primary" size="sm" icon="plus"></button-ui>
|
|
37
37
|
</header>
|
|
38
38
|
<section bleed>
|
|
39
39
|
<list-ui divider contained>
|
|
40
40
|
<list-item-ui text="Production — backend">
|
|
41
41
|
<icon-ui slot="icon" name="key" size="sm"></icon-ui>
|
|
42
|
-
<span slot="description"><code>
|
|
42
|
+
<span slot="description"><code>sk_test_…A4F2</code> · last used 4 minutes ago</span>
|
|
43
43
|
<row-ui slot="action" gap="2" align="center">
|
|
44
44
|
<tag-ui variant="primary">read · write</tag-ui>
|
|
45
45
|
<button-ui icon="dots-three-vertical" variant="ghost" size="sm" aria-label="Manage"></button-ui>
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
</list-item-ui>
|
|
48
48
|
<list-item-ui text="CI — read-only">
|
|
49
49
|
<icon-ui slot="icon" name="key" size="sm"></icon-ui>
|
|
50
|
-
<span slot="description"><code>
|
|
50
|
+
<span slot="description"><code>sk_test_…9821</code> · last used 2 hours ago</span>
|
|
51
51
|
<row-ui slot="action" gap="2" align="center">
|
|
52
52
|
<tag-ui>read</tag-ui>
|
|
53
53
|
<button-ui icon="dots-three-vertical" variant="ghost" size="sm" aria-label="Manage"></button-ui>
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
<section>
|
|
85
85
|
<col-ui gap="3">
|
|
86
86
|
<field-ui label="Production — backend">
|
|
87
|
-
<input-ui name="api_key" value="
|
|
87
|
+
<input-ui name="api_key" value="sk_test_FAKEDEMOKEY0000A4F2" readonly suffix="copy"></input-ui>
|
|
88
88
|
</field-ui>
|
|
89
89
|
<alert-ui variant="warning" icon="warning">
|
|
90
90
|
<col-ui slot="content" gap="0-5">
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
<header>
|
|
115
115
|
<span slot="heading" variant="section">Webhooks</span>
|
|
116
116
|
<text-ui slot="description" color="subtle">2 endpoints · 1 failing</text-ui>
|
|
117
|
-
<button-ui slot="action" text="Add endpoint" variant="primary" size="sm" icon
|
|
117
|
+
<button-ui slot="action" text="Add endpoint" variant="primary" size="sm" icon="plus"></button-ui>
|
|
118
118
|
</header>
|
|
119
119
|
<section bleed>
|
|
120
120
|
<list-ui divider contained>
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
<span slot="description">Ready 2 hours ago · 4.2 MB · expires in 6 days</span>
|
|
212
212
|
<row-ui slot="action" gap="2" align="center">
|
|
213
213
|
<tag-ui variant="success">Ready</tag-ui>
|
|
214
|
-
<button-ui text="Download" variant="primary" size="sm" icon
|
|
214
|
+
<button-ui text="Download" variant="primary" size="sm" icon="download-simple"></button-ui>
|
|
215
215
|
</row-ui>
|
|
216
216
|
</list-item-ui>
|
|
217
217
|
<list-item-ui text="Workspace · JSON">
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
<section data-section data-property="composition">
|
|
230
230
|
<h2 variant="section">Composition rules</h2>
|
|
231
231
|
<ul>
|
|
232
|
-
<li><strong>Show the prefix, never the full key</strong> — the list view always renders <code>
|
|
232
|
+
<li><strong>Show the prefix, never the full key</strong> — the list view always renders <code>sk_test_…A4F2</code>. The full secret only ever appears in the one-time reveal card; if the user lost it, they have to revoke + recreate. Storing the full key in the DB plaintext is the smell this convention prevents.</li>
|
|
233
233
|
<li><strong>One-time reveal needs a confirmation gate</strong> — the "I've stored it safely" button is the user's acknowledgment that they grabbed the key. Closing the modal/page without clicking it should still hide the secret (security default).</li>
|
|
234
234
|
<li><strong>Webhook failures are first-class</strong> — a 503 tag + Retry button is the canonical row. Hiding failures in a sub-page guarantees they get ignored.</li>
|
|
235
235
|
<li><strong>Data export is async, not sync</strong> — never block the UI on a "Generate now" call. Queue the job; email the link. Users with 1M-record workspaces shouldn't see a spinner.</li>
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
data-chunk-domain="agent"
|
|
30
30
|
data-chunk-description="Inline agent-cost strip — compact tag row showing per-response cost, token count, and latency, with the model name right-aligned. Rides under an agent reply as a usage footer."
|
|
31
31
|
data-chunk-keywords="agent cost tokens latency model usage inline strip tags price per-response footer telemetry llm" gap="2" align="center" padding="2" style="max-width: 560px;">
|
|
32
|
-
<tag-ui
|
|
33
|
-
<tag-ui
|
|
34
|
-
<tag-ui
|
|
32
|
+
<tag-ui>$0.014</tag-ui>
|
|
33
|
+
<tag-ui>2,184 tok</tag-ui>
|
|
34
|
+
<tag-ui>3.2s</tag-ui>
|
|
35
35
|
<row-ui grow></row-ui>
|
|
36
36
|
<text-ui color="subtle" size="sm">claude-opus-4-7</text-ui>
|
|
37
37
|
</row-ui>
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
<section>
|
|
56
56
|
<col-ui gap="3">
|
|
57
57
|
<grid-ui columns="3" gap="2">
|
|
58
|
-
<stat-ui label="Cost" value="$2.41" trend="up"
|
|
59
|
-
<stat-ui label="Tokens" value="184k" trend="up"
|
|
58
|
+
<stat-ui label="Cost" value="$2.41" trend="up" change="+18%"></stat-ui>
|
|
59
|
+
<stat-ui label="Tokens" value="184k" trend="up" change="+12%"></stat-ui>
|
|
60
60
|
<stat-ui label="Calls" value="47" trend="flat"></stat-ui>
|
|
61
61
|
</grid-ui>
|
|
62
62
|
<description-list-ui layout="inline" align="between">
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
</section>
|
|
70
70
|
<footer divider>
|
|
71
71
|
<text-ui slot="description" color="subtle" size="sm">Plan limit: 1M tokens / day</text-ui>
|
|
72
|
-
<button-ui slot="action" text="View invoice" variant="ghost" size="sm" icon
|
|
72
|
+
<button-ui slot="action" text="View invoice" variant="ghost" size="sm" icon="receipt"></button-ui>
|
|
73
73
|
</footer>
|
|
74
74
|
</card-ui>
|
|
75
75
|
</div>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<header>
|
|
33
33
|
<span slot="heading" variant="section">Agent memory</span>
|
|
34
34
|
<text-ui slot="description" color="subtle">14 entries across 3 sources</text-ui>
|
|
35
|
-
<button-ui slot="action" text="Add memory" variant="ghost" size="sm" icon
|
|
35
|
+
<button-ui slot="action" text="Add memory" variant="ghost" size="sm" icon="plus"></button-ui>
|
|
36
36
|
</header>
|
|
37
37
|
<section bleed>
|
|
38
38
|
<list-ui divider contained>
|
|
@@ -96,8 +96,8 @@
|
|
|
96
96
|
</col-ui>
|
|
97
97
|
</section>
|
|
98
98
|
<footer divider>
|
|
99
|
-
<button-ui slot="action" text="Delete" variant="ghost" color="danger" size="sm" icon
|
|
100
|
-
<button-ui slot="action" text="Edit" variant="outline" size="sm" icon
|
|
99
|
+
<button-ui slot="action" text="Delete" variant="ghost" color="danger" size="sm" icon="trash"></button-ui>
|
|
100
|
+
<button-ui slot="action" text="Edit" variant="outline" size="sm" icon="pencil"></button-ui>
|
|
101
101
|
</footer>
|
|
102
102
|
</card-ui>
|
|
103
103
|
</div>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<header>
|
|
33
33
|
<span slot="heading" variant="section">Prompt library</span>
|
|
34
34
|
<text-ui slot="description" color="subtle">12 prompts · 4 categories</text-ui>
|
|
35
|
-
<button-ui slot="action" text="New prompt" variant="primary" size="sm" icon
|
|
35
|
+
<button-ui slot="action" text="New prompt" variant="primary" size="sm" icon="plus"></button-ui>
|
|
36
36
|
</header>
|
|
37
37
|
<section>
|
|
38
38
|
<col-ui gap="3">
|
|
@@ -48,19 +48,19 @@
|
|
|
48
48
|
<tag-ui>Personal · 2</tag-ui>
|
|
49
49
|
</row-ui>
|
|
50
50
|
<grid-ui columns="2" gap="2">
|
|
51
|
-
<card-ui
|
|
51
|
+
<card-ui size="sm">
|
|
52
52
|
<header><span slot="heading">Code review</span><tag-ui slot="action">Pinned</tag-ui></header>
|
|
53
53
|
<section><text-ui color="subtle" size="sm">Review the diff for security, perf, and naming. Flag with file:line. Suggest fixes inline.</text-ui></section>
|
|
54
54
|
</card-ui>
|
|
55
|
-
<card-ui
|
|
55
|
+
<card-ui size="sm">
|
|
56
56
|
<header><span slot="heading">Standup draft</span></header>
|
|
57
57
|
<section><text-ui color="subtle" size="sm">Summarize what I did yesterday from my git log. Group by repo. End with today's plan.</text-ui></section>
|
|
58
58
|
</card-ui>
|
|
59
|
-
<card-ui
|
|
59
|
+
<card-ui size="sm">
|
|
60
60
|
<header><span slot="heading">Spec from notes</span></header>
|
|
61
61
|
<section><text-ui color="subtle" size="sm">Turn these notes into a spec doc with sections: problem, design, alternatives, open questions.</text-ui></section>
|
|
62
62
|
</card-ui>
|
|
63
|
-
<card-ui
|
|
63
|
+
<card-ui size="sm">
|
|
64
64
|
<header><span slot="heading">Bug repro</span></header>
|
|
65
65
|
<section><text-ui color="subtle" size="sm">Given this stack trace, propose three hypotheses ordered by likelihood. Show the test that would falsify each.</text-ui></section>
|
|
66
66
|
</card-ui>
|
|
@@ -159,9 +159,9 @@
|
|
|
159
159
|
</col-ui>
|
|
160
160
|
</section>
|
|
161
161
|
<footer divider>
|
|
162
|
-
<button-ui slot="action" text="Delete" variant="ghost" color="danger" size="sm" icon
|
|
163
|
-
<button-ui slot="action" text="Edit" variant="ghost" size="sm" icon
|
|
164
|
-
<button-ui slot="action" text="Run" variant="primary" size="sm" icon
|
|
162
|
+
<button-ui slot="action" text="Delete" variant="ghost" color="danger" size="sm" icon="trash"></button-ui>
|
|
163
|
+
<button-ui slot="action" text="Edit" variant="ghost" size="sm" icon="pencil"></button-ui>
|
|
164
|
+
<button-ui slot="action" text="Run" variant="primary" size="sm" icon="play"></button-ui>
|
|
165
165
|
</footer>
|
|
166
166
|
</card-ui>
|
|
167
167
|
</div>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<col-ui gap="2">
|
|
33
33
|
<code-ui language="json">{ "query": "claude opus tool use latency", "max_results": 5 }</code-ui>
|
|
34
34
|
<row-ui align="center" gap="2">
|
|
35
|
-
<progress-ui
|
|
35
|
+
<progress-ui size="sm" style="flex: 1;"></progress-ui>
|
|
36
36
|
<text-ui color="subtle" size="sm">Running…</text-ui>
|
|
37
37
|
</row-ui>
|
|
38
38
|
</col-ui>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<header>
|
|
31
31
|
<span slot="heading" variant="section">Pending your approval</span>
|
|
32
32
|
<text-ui slot="description" color="subtle">5 items · 2 high priority</text-ui>
|
|
33
|
-
<button-ui slot="action" text="Approve all" variant="ghost" size="sm" icon
|
|
33
|
+
<button-ui slot="action" text="Approve all" variant="ghost" size="sm" icon="check"></button-ui>
|
|
34
34
|
</header>
|
|
35
35
|
<section bleed>
|
|
36
36
|
<!-- Canonical list-item rows: text + slot="description" + slot="icon" +
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<span slot="description"><tag-ui variant="warning">High</tag-ui> Jordan Lee · Engineering · 2 hours ago</span>
|
|
45
45
|
<row-ui slot="action" gap="2" align="center">
|
|
46
46
|
<button-ui text="Reject" variant="ghost" size="sm"></button-ui>
|
|
47
|
-
<button-ui text="Approve" variant="primary" size="sm" icon
|
|
47
|
+
<button-ui text="Approve" variant="primary" size="sm" icon="check"></button-ui>
|
|
48
48
|
</row-ui>
|
|
49
49
|
</list-item-ui>
|
|
50
50
|
<list-item-ui text="Vendor contract — Adobe Creative Cloud">
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
<span slot="description">Avery Chen · Design · 5 hours ago</span>
|
|
53
53
|
<row-ui slot="action" gap="2" align="center">
|
|
54
54
|
<button-ui text="Reject" variant="ghost" size="sm"></button-ui>
|
|
55
|
-
<button-ui text="Approve" variant="primary" size="sm" icon
|
|
55
|
+
<button-ui text="Approve" variant="primary" size="sm" icon="check"></button-ui>
|
|
56
56
|
</row-ui>
|
|
57
57
|
</list-item-ui>
|
|
58
58
|
<list-item-ui text="Access request — production database">
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
<span slot="description"><tag-ui variant="warning">High</tag-ui> Sam Park · Data · 1 day ago</span>
|
|
61
61
|
<row-ui slot="action" gap="2" align="center">
|
|
62
62
|
<button-ui text="Reject" variant="ghost" size="sm"></button-ui>
|
|
63
|
-
<button-ui text="Approve" variant="primary" size="sm" icon
|
|
63
|
+
<button-ui text="Approve" variant="primary" size="sm" icon="check"></button-ui>
|
|
64
64
|
</row-ui>
|
|
65
65
|
</list-item-ui>
|
|
66
66
|
<list-item-ui text="Travel — SF → NYC, May 12–14">
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
<span slot="description">Riley Tan · Sales · 2 days ago</span>
|
|
69
69
|
<row-ui slot="action" gap="2" align="center">
|
|
70
70
|
<button-ui text="Reject" variant="ghost" size="sm"></button-ui>
|
|
71
|
-
<button-ui text="Approve" variant="primary" size="sm" icon
|
|
71
|
+
<button-ui text="Approve" variant="primary" size="sm" icon="check"></button-ui>
|
|
72
72
|
</row-ui>
|
|
73
73
|
</list-item-ui>
|
|
74
74
|
</list-ui>
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
<footer divider>
|
|
106
106
|
<button-ui slot="action" text="Reject" variant="ghost"></button-ui>
|
|
107
107
|
<button-ui slot="action" text="Request changes" variant="ghost"></button-ui>
|
|
108
|
-
<button-ui slot="action" text="Approve" variant="primary" icon
|
|
108
|
+
<button-ui slot="action" text="Approve" variant="primary" icon="check"></button-ui>
|
|
109
109
|
</footer>
|
|
110
110
|
</card-ui>
|
|
111
111
|
</div>
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<footer divider>
|
|
47
47
|
<text-ui color="subtle" size="sm">Showing 8 of 247 events</text-ui>
|
|
48
48
|
<row-ui slot="action" gap="2">
|
|
49
|
-
<button-ui text="Export" variant="ghost" size="sm" icon
|
|
49
|
+
<button-ui text="Export" variant="ghost" size="sm" icon="download-simple"></button-ui>
|
|
50
50
|
<button-ui text="Load older" variant="ghost" size="sm"></button-ui>
|
|
51
51
|
</row-ui>
|
|
52
52
|
</footer>
|
|
@@ -113,11 +113,11 @@
|
|
|
113
113
|
<span data-bulk-controls></span>
|
|
114
114
|
</toolbar-group-ui>
|
|
115
115
|
<toolbar-group-ui>
|
|
116
|
-
<button-ui icon="archive"
|
|
117
|
-
<button-ui icon="download-simple"
|
|
118
|
-
<button-ui icon="folder-simple"
|
|
116
|
+
<button-ui icon="archive" aria-label="Archive" variant="ghost" size="sm" data-bulk-action="archive"></button-ui>
|
|
117
|
+
<button-ui icon="download-simple" aria-label="Export" variant="ghost" size="sm" data-bulk-action="export"></button-ui>
|
|
118
|
+
<button-ui icon="folder-simple" aria-label="Move" variant="ghost" size="sm" data-bulk-action="move"></button-ui>
|
|
119
119
|
<divider-ui vertical></divider-ui>
|
|
120
|
-
<button-ui icon="trash"
|
|
120
|
+
<button-ui icon="trash" aria-label="Delete" variant="ghost" size="sm" data-bulk-action="delete"></button-ui>
|
|
121
121
|
<divider-ui vertical></divider-ui>
|
|
122
122
|
<button-ui text="Clear" variant="ghost" size="sm" data-bulk-clear></button-ui>
|
|
123
123
|
</toolbar-group-ui>
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
<text-ui slot="description" color="subtle">Last 12 months</text-ui>
|
|
53
53
|
</header>
|
|
54
54
|
<section>
|
|
55
|
-
<chart-ui id="pat-revenue" type="bar" x="month" y="revenue"
|
|
55
|
+
<chart-ui id="pat-revenue" type="bar" x="month" y="revenue" no-values></chart-ui>
|
|
56
56
|
</section>
|
|
57
57
|
<footer>
|
|
58
58
|
<button-ui text="View report" variant="outline" stretch></button-ui>
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
</span>
|
|
78
78
|
</header>
|
|
79
79
|
<section>
|
|
80
|
-
<chart-ui id="pat-mrr" type="line" x="month" y="revenue" smooth="0.4"
|
|
80
|
+
<chart-ui id="pat-mrr" type="line" x="month" y="revenue" smooth="0.4" no-values></chart-ui>
|
|
81
81
|
</section>
|
|
82
82
|
</card-ui>
|
|
83
83
|
</div>
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
</header>
|
|
100
100
|
<section>
|
|
101
101
|
<col-ui gap="3">
|
|
102
|
-
<chart-ui id="pat-sessions" type="bar" x="day" y="sessions"
|
|
102
|
+
<chart-ui id="pat-sessions" type="bar" x="day" y="sessions" no-values></chart-ui>
|
|
103
103
|
<grid-ui columns="3" gap="2">
|
|
104
104
|
<card-ui><section><stat-ui label="Desktop" value="2,840"></stat-ui></section></card-ui>
|
|
105
105
|
<card-ui><section><stat-ui label="Mobile" value="1,590"></stat-ui></section></card-ui>
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
<text-ui slot="description" color="subtle">January – March 2024</text-ui>
|
|
127
127
|
</header>
|
|
128
128
|
<section>
|
|
129
|
-
<chart-ui id="pat-trend-revenue" type="area" x="month" y="revenue"
|
|
129
|
+
<chart-ui id="pat-trend-revenue" type="area" x="month" y="revenue" no-values></chart-ui>
|
|
130
130
|
</section>
|
|
131
131
|
<footer>
|
|
132
132
|
<span slot="heading">Trending up by 5.2% this month</span>
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
</segmented-ui>
|
|
176
176
|
</header>
|
|
177
177
|
<section>
|
|
178
|
-
<chart-ui id="pat-filter-sessions" type="line" x="day" y="sessions"
|
|
178
|
+
<chart-ui id="pat-filter-sessions" type="line" x="day" y="sessions" no-values></chart-ui>
|
|
179
179
|
</section>
|
|
180
180
|
</card-ui>
|
|
181
181
|
</div>
|
|
@@ -186,8 +186,8 @@
|
|
|
186
186
|
<h2 variant="section">Full-bleed chart + legend band</h2>
|
|
187
187
|
<p data-note>
|
|
188
188
|
<code>bleed</code> only earns true edge-to-edge treatment for bare plotted
|
|
189
|
-
marks — a sparkline, or another chart type with both <code>
|
|
190
|
-
and <code>
|
|
189
|
+
marks — a sparkline, or another chart type with both <code>no-grid</code>
|
|
190
|
+
and <code>no-values</code> set (gh#1095). A multi-series chart still
|
|
191
191
|
needs a legend, so keep <code><chart-legend-ui></code> OUT of the
|
|
192
192
|
bled section — wire it to the chart via <code>[for]</code> in a normal
|
|
193
193
|
(inset) section below instead. It reads as its own band beneath the
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
<text-ui slot="description" color="subtle">Last 6 months</text-ui>
|
|
205
205
|
</header>
|
|
206
206
|
<section bleed>
|
|
207
|
-
<chart-ui id="pat-bleed-legend-chart" type="multi-line" x="month" y="revenue,users,churn"
|
|
207
|
+
<chart-ui id="pat-bleed-legend-chart" type="multi-line" x="month" y="revenue,users,churn" no-grid no-values></chart-ui>
|
|
208
208
|
</section>
|
|
209
209
|
<section>
|
|
210
210
|
<chart-legend-ui for="pat-bleed-legend-chart" shape="line"></chart-legend-ui>
|
|
@@ -214,6 +214,120 @@
|
|
|
214
214
|
</div>
|
|
215
215
|
</section>
|
|
216
216
|
|
|
217
|
+
<section data-section data-property="full-bleed-card-padding-none">
|
|
218
|
+
<h2 variant="section">Full-bleed via card padding="none" (Chart 2.0)</h2>
|
|
219
|
+
<p data-note>
|
|
220
|
+
Chart 2.0's own full-bleed mechanism (<a href="/site/docs/adr/adr-0074">ADR-0074</a>'s
|
|
221
|
+
<code>ratio</code> grammar + <a href="/site/docs/spec/spec-charts-2-0-ratio-and-surface">the
|
|
222
|
+
ratio-and-surface SPEC</a>'s REQ-R-001) is <strong>not</strong> the same affordance as
|
|
223
|
+
<code>section[bleed]</code> above — <code><card-ui padding="none"></code> zeroes the
|
|
224
|
+
CARD's own outer inset while the chart keeps its own internal plot margins (axis-label
|
|
225
|
+
gutters, computed per-ratio — REQ-R-004), so axis ticks and value labels render normally
|
|
226
|
+
with no clipping risk; <code>[bleed]</code> instead asks the chart itself to render bare
|
|
227
|
+
marks (hence its own <code>no-grid</code>/<code>no-values</code> requirement above). Pick
|
|
228
|
+
<code>padding="none"</code> for a premium edge-to-edge card tile that still shows a full
|
|
229
|
+
axis; pick <code>[bleed]</code> for a truly bare sparkline-style mark.
|
|
230
|
+
</p>
|
|
231
|
+
<div data-artifact-container>
|
|
232
|
+
<div data-artifact-item data-artifact-label="full-bleed bar, 3:2 (wide)">
|
|
233
|
+
<card-ui padding="none" data-chunk="chart-in-card-full-bleed-bar-wide" data-chunk-kind="block"
|
|
234
|
+
data-chunk-domain="dashboard"
|
|
235
|
+
data-chunk-description="Full-bleed bar chart card pinned to the 3:2 wide ratio — Revenue by month, edge-to-edge against the card's own quiet container-low background, no outer card padding."
|
|
236
|
+
data-chunk-keywords="chart card bar full-bleed edge-to-edge revenue wide ratio padding none dashboard analytics premium" style="max-width:420px;">
|
|
237
|
+
<section>
|
|
238
|
+
<chart-ui id="pat-bleed-bar-wide" type="bar" ratio="3:2" x="month" y="revenue"></chart-ui>
|
|
239
|
+
</section>
|
|
240
|
+
</card-ui>
|
|
241
|
+
</div>
|
|
242
|
+
<div data-artifact-item data-artifact-label="full-bleed line, 1:1 (square)">
|
|
243
|
+
<card-ui padding="none" data-chunk="chart-in-card-full-bleed-line-square" data-chunk-kind="block"
|
|
244
|
+
data-chunk-domain="dashboard"
|
|
245
|
+
data-chunk-description="Full-bleed line chart card pinned to the 1:1 square ratio — Users trend, edge-to-edge against the card's own quiet container-low background, no outer card padding."
|
|
246
|
+
data-chunk-keywords="chart card line full-bleed edge-to-edge users square ratio padding none dashboard analytics premium" style="max-width:320px;">
|
|
247
|
+
<section>
|
|
248
|
+
<chart-ui id="pat-bleed-line-square" type="line" ratio="1:1" x="month" y="users" smooth="0.4"></chart-ui>
|
|
249
|
+
</section>
|
|
250
|
+
</card-ui>
|
|
251
|
+
</div>
|
|
252
|
+
<div data-artifact-item data-artifact-label="full-bleed bar, 2:3 (tall)">
|
|
253
|
+
<card-ui padding="none" data-chunk="chart-in-card-full-bleed-bar-tall" data-chunk-kind="block"
|
|
254
|
+
data-chunk-domain="dashboard"
|
|
255
|
+
data-chunk-description="Full-bleed bar chart card pinned to the 2:3 tall ratio — Sessions by day, rendered in horizontal-bar orientation (category on Y) for the narrow column, edge-to-edge against the card's own quiet container-low background."
|
|
256
|
+
data-chunk-keywords="chart card bar full-bleed edge-to-edge sessions tall ratio horizontal padding none dashboard analytics premium" style="max-width:220px;">
|
|
257
|
+
<section>
|
|
258
|
+
<chart-ui id="pat-bleed-bar-tall" type="bar" ratio="2:3" x="day" y="sessions"></chart-ui>
|
|
259
|
+
</section>
|
|
260
|
+
</card-ui>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
</section>
|
|
264
|
+
|
|
265
|
+
<section data-section data-property="full-bleed-ratio-legend">
|
|
266
|
+
<h2 variant="section">Full-bleed + ratio + legend, together (plan step 7)</h2>
|
|
267
|
+
<p data-note>
|
|
268
|
+
The full-bleed proof above (bar/line/bar) uses single-series, no-legend
|
|
269
|
+
types — REQ-R-006's own ≥3-instance floor. This trio completes the
|
|
270
|
+
pattern for the more common multi-series case: a full-bleed
|
|
271
|
+
(<code>card-ui padding="none"</code>) chart pinned to a studied ratio,
|
|
272
|
+
paired with a <code><chart-legend-ui for></code> that mirrors the
|
|
273
|
+
same resolved bucket (<a href="/site/components/chart-legend">step 5</a>,
|
|
274
|
+
REQ-R-005) rather than running its own classification. The legend sits
|
|
275
|
+
in a plain <code><section></code> below the chart's — its own
|
|
276
|
+
internal row padding (<code>--chart-legend-py</code>) supplies the
|
|
277
|
+
breathing room a zero-inset card no longer provides.
|
|
278
|
+
</p>
|
|
279
|
+
<div data-artifact-container>
|
|
280
|
+
<div data-artifact-item data-artifact-label="full-bleed stacked-bar + row legend, 3:2 (wide)">
|
|
281
|
+
<card-ui padding="none" data-chunk="chart-in-card-full-bleed-legend-stacked-wide" data-chunk-kind="block"
|
|
282
|
+
data-chunk-domain="dashboard"
|
|
283
|
+
data-chunk-description="Full-bleed stacked-bar chart card pinned to the 3:2 wide ratio with a mirrored horizontal-row legend below — Sessions by device segment, edge-to-edge against the card's own quiet container-low background."
|
|
284
|
+
data-chunk-keywords="chart card stacked-bar full-bleed edge-to-edge legend row wide ratio segments sessions device dashboard analytics premium" style="max-width:420px;">
|
|
285
|
+
<header>
|
|
286
|
+
<span slot="heading"><h3>Sessions by device</h3></span>
|
|
287
|
+
</header>
|
|
288
|
+
<section>
|
|
289
|
+
<chart-ui id="pat-fb-legend-32-chart" type="stacked-bar" ratio="3:2" x="quarter" y="desktop,mobile,tablet"></chart-ui>
|
|
290
|
+
</section>
|
|
291
|
+
<section>
|
|
292
|
+
<chart-legend-ui for="pat-fb-legend-32-chart"></chart-legend-ui>
|
|
293
|
+
</section>
|
|
294
|
+
</card-ui>
|
|
295
|
+
</div>
|
|
296
|
+
<div data-artifact-item data-artifact-label="full-bleed composed + grid legend, 1:1 (square, deemphasized secondary)">
|
|
297
|
+
<card-ui padding="none" data-chunk="chart-in-card-full-bleed-legend-composed-square" data-chunk-kind="block"
|
|
298
|
+
data-chunk-domain="dashboard"
|
|
299
|
+
data-chunk-description="Full-bleed composed bar+line chart card pinned to the 1:1 square ratio with a mirrored 2-column grid legend below — Revenue bars with a de-emphasized Growth line overlay, edge-to-edge against the card's own quiet container-low background."
|
|
300
|
+
data-chunk-keywords="chart card composed full-bleed edge-to-edge legend grid square ratio revenue growth deemphasized dashboard analytics premium" style="max-width:320px;">
|
|
301
|
+
<header>
|
|
302
|
+
<span slot="heading"><h3>Revenue vs. growth</h3></span>
|
|
303
|
+
</header>
|
|
304
|
+
<section>
|
|
305
|
+
<chart-ui id="pat-fb-legend-11-chart" type="composed" ratio="1:1" x="quarter" y="revenue,growth"></chart-ui>
|
|
306
|
+
</section>
|
|
307
|
+
<section>
|
|
308
|
+
<chart-legend-ui for="pat-fb-legend-11-chart"></chart-legend-ui>
|
|
309
|
+
</section>
|
|
310
|
+
</card-ui>
|
|
311
|
+
</div>
|
|
312
|
+
<div data-artifact-item data-artifact-label="full-bleed grouped-bar + list legend, 2:3 (tall)">
|
|
313
|
+
<card-ui padding="none" data-chunk="chart-in-card-full-bleed-legend-grouped-tall" data-chunk-kind="block"
|
|
314
|
+
data-chunk-domain="dashboard"
|
|
315
|
+
data-chunk-description="Full-bleed grouped-bar chart card pinned to the 2:3 tall ratio with a mirrored vertical-list legend below — Desktop vs Mobile signups by quarter, rotated to horizontal bars for the narrow column, edge-to-edge against the card's own quiet container-low background."
|
|
316
|
+
data-chunk-keywords="chart card grouped-bar full-bleed edge-to-edge legend list tall ratio desktop mobile signups quarter dashboard analytics premium" style="max-width:220px;">
|
|
317
|
+
<header>
|
|
318
|
+
<span slot="heading"><h3>Signups by platform</h3></span>
|
|
319
|
+
</header>
|
|
320
|
+
<section>
|
|
321
|
+
<chart-ui id="pat-fb-legend-23-chart" type="grouped-bar" ratio="2:3" x="quarter" y="desktop,mobile"></chart-ui>
|
|
322
|
+
</section>
|
|
323
|
+
<section>
|
|
324
|
+
<chart-legend-ui for="pat-fb-legend-23-chart"></chart-legend-ui>
|
|
325
|
+
</section>
|
|
326
|
+
</card-ui>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
</section>
|
|
330
|
+
|
|
217
331
|
<section data-section data-property="anatomy">
|
|
218
332
|
<h2 variant="section">Anatomy</h2>
|
|
219
333
|
<code-ui language="html"><card-ui>
|
|
@@ -239,9 +353,9 @@
|
|
|
239
353
|
<h2 variant="section">Rules</h2>
|
|
240
354
|
<ul>
|
|
241
355
|
<li>For sparklines, set <code>bleed</code> on the card's <code><section></code> so the line touches the edges.</li>
|
|
242
|
-
<li><code>bleed</code> is a bare-marks affordance, not a general "edge-to-edge chart" switch (gh#1095). It's safe for a sparkline, or for any other chart <code>type</code> that also sets both <code>
|
|
356
|
+
<li><code>bleed</code> is a bare-marks affordance, not a general "edge-to-edge chart" switch (gh#1095). It's safe for a sparkline, or for any other chart <code>type</code> that also sets both <code>no-grid</code> and <code>no-values</code> — i.e. nothing that renders axis ticks, gridlines, or value text. A chart that still shows guides or values needs the card's normal inset so that text doesn't collide with (and clip under) the card's rounded corners; card.css restores the inset automatically if it detects either case, so a forgotten <code>no-grid</code>/<code>no-values</code> fails safe rather than clipping silently.</li>
|
|
243
357
|
<li>Never put <code><chart-legend-ui></code> inside a <code>bleed</code> section — its badge rows need their own breathing room too. Place it in a plain <code><section></code> immediately after the chart's section, wired via <code>chart-legend-ui[for="<chart id>"]</code> (mirrors <code>.legendData</code>; see the "Full-bleed chart + legend band" example above and <a href="/site/components/chart-legend">chart-legend-ui</a>'s own <code>for</code> docs). card.css also restores the section's inset if a legend ends up inside a bled section anyway, so the fallback stays readable rather than edge-clipped.</li>
|
|
244
|
-
<li>Put <code>
|
|
358
|
+
<li>Put <code>no-values</code> on bar/line charts inside cards — the stat in the header already shows the current number.</li>
|
|
245
359
|
<li>Use <code><stat-ui></code> in the heading slot only when the card's primary metric is a single number; otherwise use <code><h3></code> + description.</li>
|
|
246
360
|
<li>Keep breakdowns shallow — 3–4 stats max. More belongs in a full section, not inside a tile.</li>
|
|
247
361
|
</ul>
|
|
@@ -55,4 +55,41 @@ export default function setup(router) {
|
|
|
55
55
|
|
|
56
56
|
const bleedLegend = router.querySelector('#pat-bleed-legend-chart');
|
|
57
57
|
if (bleedLegend) bleedLegend.data = growthMetrics;
|
|
58
|
+
|
|
59
|
+
// Wave A (gh#1624 plan step 2) — full-bleed `card-ui[padding="none"]`
|
|
60
|
+
// proof set, one instance per ratio bucket.
|
|
61
|
+
const bleedBarWide = router.querySelector('#pat-bleed-bar-wide');
|
|
62
|
+
if (bleedBarWide) bleedBarWide.data = monthlyRevenue;
|
|
63
|
+
|
|
64
|
+
const bleedLineSquare = router.querySelector('#pat-bleed-line-square');
|
|
65
|
+
if (bleedLineSquare) bleedLineSquare.data = monthlyRevenue.map(d => ({ month: d.month, users: Math.round(d.revenue / 3) }));
|
|
66
|
+
|
|
67
|
+
const bleedBarTall = router.querySelector('#pat-bleed-bar-tall');
|
|
68
|
+
if (bleedBarTall) bleedBarTall.data = sessions;
|
|
69
|
+
|
|
70
|
+
// Step 7 (gh#1624 plan step 7) — full-bleed × ratio × chart-legend-ui
|
|
71
|
+
// mirroring, together, across three multi-series types (one per ratio).
|
|
72
|
+
const fbLegendStacked = router.querySelector('#pat-fb-legend-32-chart');
|
|
73
|
+
if (fbLegendStacked) fbLegendStacked.data = [
|
|
74
|
+
{ quarter: 'Q1', desktop: 1200, mobile: 640, tablet: 180 },
|
|
75
|
+
{ quarter: 'Q2', desktop: 1350, mobile: 780, tablet: 210 },
|
|
76
|
+
{ quarter: 'Q3', desktop: 1180, mobile: 860, tablet: 195 },
|
|
77
|
+
{ quarter: 'Q4', desktop: 1420, mobile: 910, tablet: 230 },
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
const fbLegendComposed = router.querySelector('#pat-fb-legend-11-chart');
|
|
81
|
+
if (fbLegendComposed) fbLegendComposed.data = [
|
|
82
|
+
{ quarter: 'Q1', revenue: 40, growth: 60 },
|
|
83
|
+
{ quarter: 'Q2', revenue: 55, growth: 70 },
|
|
84
|
+
{ quarter: 'Q3', revenue: 45, growth: 58 },
|
|
85
|
+
{ quarter: 'Q4', revenue: 70, growth: 82 },
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
const fbLegendGrouped = router.querySelector('#pat-fb-legend-23-chart');
|
|
89
|
+
if (fbLegendGrouped) fbLegendGrouped.data = [
|
|
90
|
+
{ quarter: 'Q1', desktop: 820, mobile: 640 },
|
|
91
|
+
{ quarter: 'Q2', desktop: 910, mobile: 780 },
|
|
92
|
+
{ quarter: 'Q3', desktop: 860, mobile: 890 },
|
|
93
|
+
{ quarter: 'Q4', desktop: 1020, mobile: 950 },
|
|
94
|
+
];
|
|
58
95
|
}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<header>
|
|
32
32
|
<span slot="heading" variant="section">Discussion</span>
|
|
33
33
|
<text-ui slot="description" color="subtle">3 comments · 2 participants</text-ui>
|
|
34
|
-
<button-ui slot="action" text="Resolve" variant="ghost" size="sm" icon
|
|
34
|
+
<button-ui slot="action" text="Resolve" variant="ghost" size="sm" icon="check"></button-ui>
|
|
35
35
|
</header>
|
|
36
36
|
<section>
|
|
37
37
|
<col-ui gap="3">
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
</row-ui>
|
|
45
45
|
<text-ui>Should the OKLCH ramp here use the chrome or the data scale? <text-ui color="accent">@Kim</text-ui> what's the convention?</text-ui>
|
|
46
46
|
<row-ui gap="1">
|
|
47
|
-
<tag-ui
|
|
48
|
-
<tag-ui
|
|
47
|
+
<tag-ui>2</tag-ui>
|
|
48
|
+
<tag-ui>1</tag-ui>
|
|
49
49
|
<button-ui text="Reply" variant="ghost" size="sm"></button-ui>
|
|
50
50
|
</row-ui>
|
|
51
51
|
</col-ui>
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
</row-ui>
|
|
60
60
|
<text-ui>Chrome — the data scale is reserved for visualization series. Spec at <text-ui color="accent">.claude/docs/specs/component-token-contract.md</text-ui>.</text-ui>
|
|
61
61
|
<row-ui gap="1">
|
|
62
|
-
<tag-ui
|
|
62
|
+
<tag-ui>3</tag-ui>
|
|
63
63
|
<button-ui text="Reply" variant="ghost" size="sm"></button-ui>
|
|
64
64
|
</row-ui>
|
|
65
65
|
</col-ui>
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
<section>
|
|
197
197
|
<col-ui gap="2">
|
|
198
198
|
<field-ui>
|
|
199
|
-
<input-ui placeholder="Search emoji…"
|
|
199
|
+
<input-ui placeholder="Search emoji…" prefix="magnifying-glass"></input-ui>
|
|
200
200
|
</field-ui>
|
|
201
201
|
<col-ui gap="1">
|
|
202
202
|
<text-ui strong size="sm" color="subtle">Frequently used</text-ui>
|