@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/app-shell.json +1 -1
- package/docs/button-group.json +1 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +45 -11
- package/docs/button.md +10 -6
- package/docs/chart.json +7 -0
- package/docs/chart.md +1 -0
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/currency-field.json +32 -1
- package/docs/currency-field.md +4 -1
- package/docs/dialog.examples.md +20 -0
- package/docs/dialog.json +14 -2
- package/docs/dialog.md +1 -1
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +108 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +129 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +192 -0
- package/docs/guidelines/index.md +121 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +165 -0
- package/docs/guidelines/overviews.md +66 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/index.md +12 -0
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +1 -2
- package/docs/progress-indicator.md +2 -2
- package/docs/segmented-control.json +29 -1
- package/docs/segmented-control.md +17 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +76 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +70 -0
- package/docs/skills/theme-app/SKILL.md +79 -0
- package/docs/skills/waiting-states/SKILL.md +139 -0
- package/docs/split-button.json +1 -0
- package/docs/split-button.md +1 -1
- package/docs/stat-card.json +2 -0
- package/docs/stat-card.md +1 -1
- package/docs/table.examples.md +1 -1
- package/docs/table.json +70 -1
- package/docs/table.md +10 -1
- package/docs/tabs.json +1 -4
- package/docs/tabs.md +1 -1
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +448 -0
- package/docs/tour.json +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +48 -16
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +4 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +51 -19
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +1 -1
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +41 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +11 -2
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +12 -6
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +59 -8
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +18 -22
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +7 -3
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +2 -2
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +4 -4
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +5 -1
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +18 -8
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +8 -8
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +28 -17
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +2 -2
- package/fesm2022/slotted-angular-markdown.mjs +1 -1
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +32 -27
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +2 -2
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +6 -6
- package/fesm2022/slotted-angular-saved-views.mjs +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +25 -5
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +1 -25
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +4 -4
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +2 -2
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +97 -10
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +2 -2
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +17 -4
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +2 -2
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +1 -1
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +1 -1
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +2 -2
- package/fesm2022/slotted-angular-wizard.mjs +1 -1
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-app-shell.d.ts +6 -0
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +9 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +25 -3
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +10 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-table.d.ts +43 -3
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
|
@@ -122,7 +122,7 @@ class SlStatCard {
|
|
|
122
122
|
labelledBy = computed(() => this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId), /* @ts-ignore */
|
|
123
123
|
...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
|
|
124
124
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlStatCard, isStandalone: true, selector: "[slStatCard]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, goodWhen: { classPropertyName: "goodWhen", publicName: "goodWhen", isSignal: true, isRequired: false, transformFunction: null }, delta: { classPropertyName: "delta", publicName: "delta", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "stat-card", "data-part": "root", "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-size": "resolvedSize()", "attr.data-fill": "resolvedFill()", "attr.data-layout": "resolvedLayout()", "attr.data-status": "status()", "attr.data-good-when": "resolvedGoodWhen()", "attr.data-tone": "resolvedTone() ?? null", "attr.data-loading": "loading() ? \"\" : null" } }, exportAs: ["slStatCard"], ngImport: i0, template: '<div data-part="body"><ng-content /></div>', isInline: true, styles: ["@layer slotted.components{[data-ui=stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui=stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui=stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui=stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui=stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui=stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui=stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}[data-ui=stat-card] [data-part=body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}[data-ui=stat-card][data-layout=stacked] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=header]{contain:inline-size;grid-area:header}[data-ui=stat-card] [data-part=figure]{align-self:start;grid-area:figure;min-inline-size:0}[data-ui=stat-card] [data-part=trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}@container stat-card-trend (max-width: 39px){[data-ui=stat-card] [data-part=trend]>*{visibility:hidden}}[data-ui=stat-card][data-layout=stacked] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=message]{contain:inline-size;grid-area:message}@container stat-card (max-width: 219px){[data-ui=stat-card] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}[data-ui=stat-card] [data-part=header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}[data-ui=stat-card] [data-part=status]{display:inline-flex;flex:none}[data-ui=stat-card] [data-part=action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}[data-ui=stat-card] [data-part=figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}[data-ui=stat-card] [data-part=comparison]{contain:inline-size;flex:1 1 100%}[data-ui=stat-card] [data-part=value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:-.02em;unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}[data-ui=stat-card] [data-part=unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}[data-ui=stat-card] [data-part=delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}[data-ui=stat-card] [data-part=delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}[data-ui=stat-card] [data-part=delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}[data-ui=stat-card] [data-part=delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}[data-ui=stat-card] [data-part=delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}[data-ui=stat-card] [data-part=delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}[data-ui=stat-card] [data-part=delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}[data-ui=stat-card] [data-part=indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}[data-ui=stat-card] [data-part=delta][data-trend=down] [data-part=indicator]>[data-ui=icon]{rotate:x 180deg}[data-ui=stat-card] [data-part=comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card] [data-part=period]{color:var(--_ink-muted)}[data-ui=stat-card] [data-part=trend]{align-self:center;display:flex}[data-ui=stat-card][data-tone=success] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}[data-ui=stat-card][data-tone=danger] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}[data-ui=stat-card][data-tone=warning] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}[data-ui=stat-card][data-tone=accent] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}[data-ui=stat-card][data-tone=secondary] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}[data-ui=stat-card][data-fill=plain] [data-part=trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}[data-ui=stat-card] [data-part=message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card][data-status=error] [data-part=message]{color:var(--slotted-tone-danger-text)}[data-ui=stat-card][data-status=empty] [data-part=value],[data-ui=stat-card][data-status=error] [data-part=value]{color:var(--_ink-muted)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}[data-ui=stat-card][data-loading] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}[data-ui=stat-card][data-loading][data-size=sm] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}[data-ui=stat-card][data-loading][data-size=lg] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
125
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlStatCard, isStandalone: true, selector: "[slStatCard]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, goodWhen: { classPropertyName: "goodWhen", publicName: "goodWhen", isSignal: true, isRequired: false, transformFunction: null }, delta: { classPropertyName: "delta", publicName: "delta", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, formatOptions: { classPropertyName: "formatOptions", publicName: "formatOptions", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "stat-card", "data-part": "root", "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.aria-busy": "loading() ? \"true\" : null", "attr.data-size": "resolvedSize()", "attr.data-fill": "resolvedFill()", "attr.data-layout": "resolvedLayout()", "attr.data-status": "status()", "attr.data-good-when": "resolvedGoodWhen()", "attr.data-tone": "resolvedTone() ?? null", "attr.data-loading": "loading() ? \"\" : null" } }, exportAs: ["slStatCard"], ngImport: i0, template: '<div data-part="body"><ng-content /></div>', isInline: true, styles: ["@layer slotted.components{[data-ui=stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui=stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui=stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui=stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui=stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui=stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui=stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}[data-ui=stat-card] [data-part=body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}[data-ui=stat-card][data-layout=stacked] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=header]{contain:inline-size;grid-area:header}[data-ui=stat-card] [data-part=figure]{align-self:start;grid-area:figure;min-inline-size:0}[data-ui=stat-card] [data-part=trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}@container stat-card-trend (max-width: 39px){[data-ui=stat-card] [data-part=trend]>*{visibility:hidden}}[data-ui=stat-card][data-layout=stacked] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=message]{contain:inline-size;grid-area:message}@container stat-card (max-width: 219px){[data-ui=stat-card] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}[data-ui=stat-card] [data-part=header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}[data-ui=stat-card] [data-part=status]{display:inline-flex;flex:none}[data-ui=stat-card] [data-part=action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}@media(pointer:coarse){[data-ui=stat-card] :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)){position:relative}[data-ui=stat-card] :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}[data-ui=stat-card] [data-part=figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}[data-ui=stat-card] [data-part=comparison]{contain:inline-size;flex:1 1 100%}[data-ui=stat-card] [data-part=value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:var(--slotted-letter-spacing-tighter, -.03em);unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}[data-ui=stat-card] [data-part=unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}[data-ui=stat-card] [data-part=delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}[data-ui=stat-card] [data-part=delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}[data-ui=stat-card] [data-part=delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}[data-ui=stat-card] [data-part=delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}[data-ui=stat-card] [data-part=delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}[data-ui=stat-card] [data-part=delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}[data-ui=stat-card] [data-part=delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}[data-ui=stat-card] [data-part=indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}[data-ui=stat-card] [data-part=delta][data-trend=down] [data-part=indicator]>[data-ui=icon]{rotate:x 180deg}[data-ui=stat-card] [data-part=comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card] [data-part=period]{color:var(--_ink-muted)}[data-ui=stat-card] [data-part=trend]{align-self:center;display:flex}[data-ui=stat-card][data-tone=success] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}[data-ui=stat-card][data-tone=danger] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}[data-ui=stat-card][data-tone=warning] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}[data-ui=stat-card][data-tone=accent] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}[data-ui=stat-card][data-tone=secondary] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}[data-ui=stat-card][data-fill=plain] [data-part=trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}[data-ui=stat-card] [data-part=message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card][data-status=error] [data-part=message]{color:var(--slotted-tone-danger-text)}[data-ui=stat-card][data-status=empty] [data-part=value],[data-ui=stat-card][data-status=error] [data-part=value]{color:var(--_ink-muted)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}[data-ui=stat-card][data-loading] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}[data-ui=stat-card][data-loading][data-size=sm] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}[data-ui=stat-card][data-loading][data-size=lg] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
126
126
|
}
|
|
127
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatCard, decorators: [{
|
|
128
128
|
type: Component,
|
|
@@ -139,7 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
139
139
|
'[attr.data-good-when]': 'resolvedGoodWhen()',
|
|
140
140
|
'[attr.data-tone]': 'resolvedTone() ?? null',
|
|
141
141
|
'[attr.data-loading]': 'loading() ? "" : null',
|
|
142
|
-
}, styles: ["@layer slotted.components{[data-ui=stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui=stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui=stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui=stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui=stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui=stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui=stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}[data-ui=stat-card] [data-part=body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}[data-ui=stat-card][data-layout=stacked] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=header]{contain:inline-size;grid-area:header}[data-ui=stat-card] [data-part=figure]{align-self:start;grid-area:figure;min-inline-size:0}[data-ui=stat-card] [data-part=trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}@container stat-card-trend (max-width: 39px){[data-ui=stat-card] [data-part=trend]>*{visibility:hidden}}[data-ui=stat-card][data-layout=stacked] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=message]{contain:inline-size;grid-area:message}@container stat-card (max-width: 219px){[data-ui=stat-card] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}[data-ui=stat-card] [data-part=header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}[data-ui=stat-card] [data-part=status]{display:inline-flex;flex:none}[data-ui=stat-card] [data-part=action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}[data-ui=stat-card] [data-part=figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}[data-ui=stat-card] [data-part=comparison]{contain:inline-size;flex:1 1 100%}[data-ui=stat-card] [data-part=value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:-.02em;unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}[data-ui=stat-card] [data-part=unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}[data-ui=stat-card] [data-part=delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}[data-ui=stat-card] [data-part=delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}[data-ui=stat-card] [data-part=delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}[data-ui=stat-card] [data-part=delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}[data-ui=stat-card] [data-part=delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}[data-ui=stat-card] [data-part=delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}[data-ui=stat-card] [data-part=delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}[data-ui=stat-card] [data-part=indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}[data-ui=stat-card] [data-part=delta][data-trend=down] [data-part=indicator]>[data-ui=icon]{rotate:x 180deg}[data-ui=stat-card] [data-part=comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card] [data-part=period]{color:var(--_ink-muted)}[data-ui=stat-card] [data-part=trend]{align-self:center;display:flex}[data-ui=stat-card][data-tone=success] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}[data-ui=stat-card][data-tone=danger] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}[data-ui=stat-card][data-tone=warning] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}[data-ui=stat-card][data-tone=accent] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}[data-ui=stat-card][data-tone=secondary] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}[data-ui=stat-card][data-fill=plain] [data-part=trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}[data-ui=stat-card] [data-part=message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card][data-status=error] [data-part=message]{color:var(--slotted-tone-danger-text)}[data-ui=stat-card][data-status=empty] [data-part=value],[data-ui=stat-card][data-status=error] [data-part=value]{color:var(--_ink-muted)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}[data-ui=stat-card][data-loading] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}[data-ui=stat-card][data-loading][data-size=sm] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}[data-ui=stat-card][data-loading][data-size=lg] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}\n"] }]
|
|
142
|
+
}, styles: ["@layer slotted.components{[data-ui=stat-card]{--_edge-width: var(--slotted-stat-card-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-stat-card-radius, var(--slotted-radius-lg, 8px));--_inset-block: var(--slotted-stat-card-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-stat-card-padding-inline, var(--slotted-space-6, 1rem));--_region-gap: var(--slotted-stat-card-region-gap, var(--slotted-space-3, .375rem));--_trend-gap: var(--slotted-stat-card-trend-gap, var(--slotted-space-6, 1rem));--_trend-size: var( --slotted-stat-card-trend-inline-size, calc(var(--slotted-space-12, 4rem) * 1.5) );--_surface: var(--slotted-stat-card-background, var(--slotted-surface-raised, Canvas));--_edge: var(--slotted-stat-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_shadow: var(--slotted-stat-card-shadow, none);--_ink: var(--slotted-stat-card-color, var(--slotted-text, CanvasText));--_ink-muted: var(--slotted-stat-card-color-muted, var(--slotted-text-muted, GrayText));--_value-size: var(--slotted-stat-card-value-font-size, var(--slotted-font-size-3xl, 1.5rem));--_value-line: var(--slotted-stat-card-value-line-height, var(--slotted-line-height-3xl, 1.3));--_label-size: var(--slotted-stat-card-label-font-size, var(--slotted-font-size-sm, .8125rem));--_label-line: var(--slotted-stat-card-label-line-height, var(--slotted-line-height-sm, 1.45));--_delta-size: var(--slotted-stat-card-delta-font-size, var(--slotted-font-size-sm, .8125rem));--_prose-size: var(--slotted-stat-card-prose-font-size, var(--slotted-font-size-xs, .75rem));--_prose-line: var(--slotted-stat-card-prose-line-height, var(--slotted-line-height-xs, 1.4));--_indicator-size: var( --slotted-stat-card-indicator-size, var(--slotted-control-icon-size-sm, 14px) );--_value-size-narrow: var(--slotted-font-size-2xl, 1.25rem);--_value-line-narrow: var(--slotted-line-height-2xl, 1.4);--_tone-text: var(--_ink-muted);background-color:var(--_surface);border:none;border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_ink);container-name:stat-card;container-type:inline-size;display:flex;flex-direction:column;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);min-inline-size:var( --slotted-stat-card-min-inline-size, calc(var(--slotted-space-12, 4rem) * 2.5) );padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);position:relative}[data-ui=stat-card]:before{border:var(--_edge-width) solid var(--_edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute}[data-ui=stat-card][data-size=sm]{--_inset-block: var(--slotted-stat-card-padding-block-sm, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-stat-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_region-gap: var(--slotted-stat-card-region-gap-sm, var(--slotted-space-2, .25rem));--_trend-gap: var(--slotted-stat-card-trend-gap-sm, var(--slotted-space-5, .75rem));--_trend-size: var(--slotted-stat-card-trend-inline-size-sm, var(--slotted-space-12, 4rem));--_value-size: var( --slotted-stat-card-value-font-size-sm, var(--slotted-font-size-2xl, 1.25rem) );--_value-line: var( --slotted-stat-card-value-line-height-sm, var(--slotted-line-height-2xl, 1.4) );--_label-size: var( --slotted-stat-card-label-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_label-line: var( --slotted-stat-card-label-line-height-sm, var(--slotted-line-height-xs, 1.4) );--_delta-size: var( --slotted-stat-card-delta-font-size-sm, var(--slotted-font-size-xs, .75rem) );--_value-size-narrow: var(--slotted-font-size-xl, 1.125rem);--_value-line-narrow: var(--slotted-line-height-xl, 1.45)}[data-ui=stat-card][data-size=lg]{--_inset-block: var(--slotted-stat-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_inset-inline: var(--slotted-stat-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_region-gap: var(--slotted-stat-card-region-gap-lg, var(--slotted-space-4, .5rem));--_trend-gap: var(--slotted-stat-card-trend-gap-lg, var(--slotted-space-8, 1.5rem));--_trend-size: var( --slotted-stat-card-trend-inline-size-lg, calc(var(--slotted-space-12, 4rem) * 2) );--_value-size: var(--slotted-stat-card-value-font-size-lg, var(--slotted-font-size-4xl, 2rem));--_value-line: var( --slotted-stat-card-value-line-height-lg, var(--slotted-line-height-4xl, 1.2) );--_label-size: var( --slotted-stat-card-label-font-size-lg, var(--slotted-font-size-md, .875rem) );--_label-line: var( --slotted-stat-card-label-line-height-lg, var(--slotted-line-height-md, 1.5) );--_delta-size: var( --slotted-stat-card-delta-font-size-lg, var(--slotted-font-size-md, .875rem) );--_prose-size: var( --slotted-stat-card-prose-font-size-lg, var(--slotted-font-size-sm, .8125rem) );--_prose-line: var( --slotted-stat-card-prose-line-height-lg, var(--slotted-line-height-sm, 1.45) );--_indicator-size: var( --slotted-stat-card-indicator-size-lg, var(--slotted-control-icon-size-md, 16px) );--_value-size-narrow: var(--slotted-font-size-3xl, 1.5rem);--_value-line-narrow: var(--slotted-line-height-3xl, 1.3)}[data-ui=stat-card][data-fill=elevated]{--_shadow: var(--slotted-stat-card-shadow-elevated, var(--slotted-shadow-md))}[data-ui=stat-card][data-fill=subtle]{--_surface: var(--slotted-stat-card-background-subtle, var(--slotted-surface-sunken, Canvas))}[data-ui=stat-card][data-fill=plain]{--_surface: transparent;--_edge: transparent;--_shadow: none;--_inset-block: 0;--_inset-inline: 0;--_radius: var(--slotted-radius-none, 0px)}[data-ui=stat-card] [data-part=body]{column-gap:var(--_trend-gap);display:grid;flex:1 1 auto;grid-template-areas:\"header header\" \"figure trend\" \"message message\";grid-template-columns:minmax(min-content,1fr) minmax(0,var(--_trend-size));grid-template-rows:auto minmax(0,1fr) auto;min-inline-size:0;row-gap:var(--_region-gap)}[data-ui=stat-card][data-layout=stacked] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=header]{contain:inline-size;grid-area:header}[data-ui=stat-card] [data-part=figure]{align-self:start;grid-area:figure;min-inline-size:0}[data-ui=stat-card] [data-part=trend]{--slotted-sparkline-ring-color: var(--_surface);align-self:center;container-name:stat-card-trend;container-type:inline-size;grid-area:trend;inline-size:100%;min-inline-size:0}@container stat-card-trend (max-width: 39px){[data-ui=stat-card] [data-part=trend]>*{visibility:hidden}}[data-ui=stat-card][data-layout=stacked] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=message]{contain:inline-size;grid-area:message}@container stat-card (max-width: 219px){[data-ui=stat-card] [data-part=body]{grid-template-areas:\"header\" \"figure\" \"trend\" \"message\";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto}[data-ui=stat-card] [data-part=trend]{align-self:end;margin-block-start:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=value]{font-size:var(--_value-size-narrow);line-height:var(--_value-line-narrow)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size-narrow) * var(--_value-line-narrow))}}[data-ui=stat-card] [data-part=header]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;min-inline-size:0;row-gap:var(--slotted-space-2, .25rem)}[data-ui=stat-card] [data-part=label]{color:var(--_ink-muted);flex:1 1 0%;font-size:var(--_label-size);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--_label-line);margin:0;min-inline-size:min(100%,10rem);overflow-wrap:break-word}[data-ui=stat-card] [data-part=status]{display:inline-flex;flex:none}[data-ui=stat-card] [data-part=action]{flex:none;font-size:var(--_label-size);line-height:var(--_label-line);margin-inline-start:auto}@media(pointer:coarse){[data-ui=stat-card] :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)){position:relative}[data-ui=stat-card] :is([data-part=action]:is(a,button),[data-part=action]>:is(a,button)):before{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}[data-ui=stat-card] [data-part=figure]{align-items:baseline;column-gap:var(--slotted-space-3, .375rem);display:flex;flex-wrap:wrap;row-gap:0}[data-ui=stat-card] [data-part=comparison]{contain:inline-size;flex:1 1 100%}[data-ui=stat-card] [data-part=value]{align-items:baseline;color:var(--_ink);display:inline-flex;flex-wrap:wrap;gap:.15em;font-size:var(--_value-size);font-variant-numeric:proportional-nums;font-weight:var(--slotted-font-weight-semibold, 600);letter-spacing:var(--slotted-letter-spacing-tighter, -.03em);unicode-bidi:plaintext;line-height:var(--_value-line);margin:0;min-inline-size:0;overflow-wrap:break-word}[data-ui=stat-card] [data-part=unit]{color:var(--_ink-muted);font-size:var(--_delta-size);font-weight:var(--slotted-font-weight-medium, 500);letter-spacing:0}[data-ui=stat-card] [data-part=delta]{align-items:center;color:var(--_tone-text);column-gap:var(--slotted-space-1, .125rem);display:inline-flex;font-size:var(--_delta-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:1;unicode-bidi:plaintext;white-space:nowrap}[data-ui=stat-card] [data-part=delta][data-tone=neutral]{--_tone-text: var(--_ink-muted)}[data-ui=stat-card] [data-part=delta][data-tone=accent]{--_tone-text: var(--slotted-tone-accent-text)}[data-ui=stat-card] [data-part=delta][data-tone=secondary]{--_tone-text: var(--slotted-tone-secondary-text)}[data-ui=stat-card] [data-part=delta][data-tone=success]{--_tone-text: var(--slotted-tone-success-text)}[data-ui=stat-card] [data-part=delta][data-tone=warning]{--_tone-text: var(--slotted-tone-warning-text)}[data-ui=stat-card] [data-part=delta][data-tone=danger]{--_tone-text: var(--slotted-tone-danger-text)}[data-ui=stat-card] [data-part=indicator]{--slotted-icon-size: var(--_indicator-size);display:inline-flex;flex:none}[data-ui=stat-card] [data-part=delta][data-trend=down] [data-part=indicator]>[data-ui=icon]{rotate:x 180deg}[data-ui=stat-card] [data-part=comparison]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin-block-start:var(--_region-gap);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card] [data-part=period]{color:var(--_ink-muted)}[data-ui=stat-card] [data-part=trend]{align-self:center;display:flex}[data-ui=stat-card][data-tone=success] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-success-text)}[data-ui=stat-card][data-tone=danger] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-danger-text)}[data-ui=stat-card][data-tone=warning] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-warning-text)}[data-ui=stat-card][data-tone=accent] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-accent-text)}[data-ui=stat-card][data-tone=secondary] [data-part=trend]{--slotted-sparkline-color: var(--slotted-tone-secondary-text)}[data-ui=stat-card][data-fill=plain] [data-part=trend]{--slotted-sparkline-ring-color: var(--slotted-surface-raised, Canvas)}[data-ui=stat-card] [data-part=message]{color:var(--_ink-muted);font-size:var(--_prose-size);line-height:var(--_prose-line);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=stat-card][data-status=error] [data-part=message]{color:var(--slotted-tone-danger-text)}[data-ui=stat-card][data-status=empty] [data-part=value],[data-ui=stat-card][data-status=error] [data-part=value]{color:var(--_ink-muted)}[data-ui=stat-card][data-loading] [data-part=value]{min-block-size:calc(var(--_value-size) * var(--_value-line))}[data-ui=stat-card][data-loading] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size, var(--slotted-space-9, 2rem) )}[data-ui=stat-card][data-loading][data-size=sm] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-sm, var(--slotted-space-7, 1.25rem) )}[data-ui=stat-card][data-loading][data-size=lg] [data-part=trend]{--slotted-skeleton-block-size: var( --slotted-sparkline-block-size-lg, var(--slotted-space-11, 3rem) )}}\n"] }]
|
|
143
143
|
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], goodWhen: [{ type: i0.Input, args: [{ isSignal: true, alias: "goodWhen", required: false }] }], delta: [{ type: i0.Input, args: [{ isSignal: true, alias: "delta", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], formatOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatOptions", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }] } });
|
|
144
144
|
function optionalNumber(value) {
|
|
145
145
|
if (value === undefined || value === null || value === '')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-stat-card.mjs","sources":["../../stat-card/src/stat-card-defaults.ts","../../stat-card/src/stat-card.constants.ts","../../stat-card/src/stat-card.ts","../../stat-card/src/stat-card-delta.ts","../../stat-card/src/stat-card-parts.ts","../../stat-card/src/stat-card-value.ts","../../stat-card/src/slotted-angular-stat-card.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type {\n StatCardFill,\n StatCardGoodWhen,\n StatCardLayout,\n StatCardSize,\n} from './stat-card.constants';\n\n/**\n * What every card in an application does before any of them states anything\n * of its own. `goodWhen` is here because a product usually has one answer —\n * a sales dashboard wants everything up, an operations one wants everything\n * down — and a card that disagrees says so.\n */\nexport interface StatCardDefaults {\n fill?: StatCardFill;\n formatOptions?: Intl.NumberFormatOptions;\n goodWhen?: StatCardGoodWhen;\n layout?: StatCardLayout;\n size?: StatCardSize;\n}\n\nexport const STAT_CARD_DEFAULTS_TOKEN = new InjectionToken<StatCardDefaults>(\n 'slotted stat-card defaults',\n { providedIn: 'root', factory: (): StatCardDefaults => ({}) },\n);\n\n/**\n * An explicit input is never overridden by the token. The words and the locale\n * come from the language in force (`provideSlotted`).\n */\nexport function provideStatCardDefaults(defaults: StatCardDefaults) {\n return { provide: STAT_CARD_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectStatCardDefaults(): StatCardDefaults {\n return inject(STAT_CARD_DEFAULTS_TOKEN);\n}\n","export type StatCardSize = 'sm' | 'md' | 'lg';\nexport type StatCardFill = 'outline' | 'elevated' | 'subtle' | 'plain';\nexport type StatCardLayout = 'inline' | 'stacked';\nexport type StatCardValueStatus = 'ready' | 'empty' | 'error';\nexport type StatCardGoodWhen = 'up' | 'down' | 'none';\nexport type StatCardTone = 'neutral' | 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type StatCardDirection = 'up' | 'down' | 'flat';\nexport type StatCardDeltaFormat = 'percent' | 'decimal';\n\n/** The direction of a change, from its sign. */\nexport function trendOf(value: number | undefined): StatCardDirection {\n if (value === undefined || Number.isNaN(value) || value === 0) return 'flat';\n return value > 0 ? 'up' : 'down';\n}\n\n/**\n * The tone of a change, from what the metric means and never from the sign:\n * a rise is good when up is good and bad when down is; a fall is the reverse;\n * a flat change, or a metric with no valence, is neutral.\n */\nexport function toneOf(trend: StatCardDirection, goodWhen: StatCardGoodWhen): StatCardTone {\n if (trend === 'flat' || goodWhen === 'none') return 'neutral';\n return (trend === 'up') === (goodWhen === 'up') ? 'success' : 'danger';\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { type PartialMessages, statCardMessages, type StatCardMessages } from '@slotted/core/i18n';\n\nimport { injectStatCardDefaults } from './stat-card-defaults';\nimport {\n toneOf,\n trendOf,\n type StatCardFill,\n type StatCardGoodWhen,\n type StatCardLayout,\n type StatCardSize,\n type StatCardTone,\n type StatCardValueStatus,\n} from './stat-card.constants';\n\nlet nextId = 0;\n\n/**\n * A metric with its name, its change and its trend, in a frame.\n *\n * The root holds the facts the parts read — which way is good, the change,\n * the status, whether it is loading — and derives the one thing two parts\n * have to agree on: the tone of the change, which the delta wears and the\n * trend hands to its sparkline. It is derived here, from `delta` and\n * `goodWhen`, so the first render already carries it.\n *\n * The root is a group named by its label, so a reader who lands on the\n * action inside it hears which metric it belongs to; an `aria-label` or\n * `aria-labelledby` the consumer wrote on the element wins. It carries\n * `aria-busy` while loading; the placeholders are `skeleton`s, and a\n * consumer who wants one announcement for a whole dashboard wraps it in a\n * `slSkeletonRegion`.\n */\n@Component({\n selector: '[slStatCard]',\n standalone: true,\n template: '<div data-part=\"body\"><ng-content /></div>',\n styleUrl: '../../../styles/src/stat-card/stat-card.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCard',\n host: {\n 'data-ui': 'stat-card',\n 'data-part': 'root',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-fill]': 'resolvedFill()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-status]': 'status()',\n '[attr.data-good-when]': 'resolvedGoodWhen()',\n '[attr.data-tone]': 'resolvedTone() ?? null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n },\n})\nexport class SlStatCard {\n readonly size = input<StatCardSize | undefined>(undefined);\n readonly fill = input<StatCardFill | undefined>(undefined);\n readonly layout = input<StatCardLayout | undefined>(undefined);\n /** Whether there is a value to show, and if not, why. */\n readonly status = input<StatCardValueStatus>('ready');\n /** The value is still on its way: every part stands in with a placeholder. */\n readonly loading = input<boolean, unknown>(false, { transform: booleanAttribute });\n /** Which way is good for this metric. The delta's tone is derived from it, never from the sign. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /**\n * The change since the comparison period, as the first delta inside reads\n * it: a fraction for a percentage (`0.124` is +12.4%), or a number.\n */\n readonly delta = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** The tone the card hands to its trend. Unset, it is the delta's. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n /** The locale numbers are written in; the language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n /** How the value, the delta and the comparison read numbers. */\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: what a\n * screen reader hears beside a change (`up`, `down`, `flat`, read before the\n * number because a sign is a glyph some readers skip) and what stands in for\n * a value that is not there (`empty`).\n */\n readonly messages = input<PartialMessages<StatCardMessages> | undefined>(undefined);\n\n private readonly defaults = injectStatCardDefaults();\n private readonly appLocale = injectLocale();\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n /** The id the label takes, and the root is named by. */\n readonly labelId = `slotted-stat-card-label-${nextId++}`;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size ?? 'md');\n readonly resolvedFill = computed(() => this.fill() ?? this.defaults.fill ?? 'outline');\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout ?? 'inline');\n readonly resolvedGoodWhen = computed(() => this.goodWhen() ?? this.defaults.goodWhen ?? 'up');\n readonly resolvedLocale = computed(() => this.locale() ?? this.appLocale());\n readonly resolvedFormatOptions = computed(\n () => this.formatOptions() ?? this.defaults.formatOptions,\n );\n /** The family's words in the language in force, with this card's `messages` laid over them. */\n readonly t = injectMessages(statCardMessages, this.messages);\n readonly resolvedTone = computed<StatCardTone | undefined>(() => {\n const explicit = this.tone();\n if (explicit !== undefined) return explicit;\n const delta = this.delta();\n return delta === undefined ? undefined : toneOf(trendOf(delta), this.resolvedGoodWhen());\n });\n\n readonly labelledBy = computed(() =>\n this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId),\n );\n}\n\nexport function optionalNumber(value: unknown): number | undefined {\n if (value === undefined || value === null || value === '') return undefined;\n return numberAttribute(value);\n}\n\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { SlStatCard, optionalNumber } from './stat-card';\nimport {\n toneOf,\n trendOf,\n type StatCardDeltaFormat,\n type StatCardGoodWhen,\n type StatCardTone,\n} from './stat-card.constants';\n\n/**\n * The change, with the mark that says which way and the word a screen reader\n * hears before the number. `value` is the root's `delta` unless the part\n * states its own, so a second delta on one card — month over month beside\n * year over year — is one more part with one more value.\n *\n * `percent` reads the value as a fraction, which is what a division gives;\n * the sign is always shown except on nought. The tone is derived from the\n * direction and from `goodWhen`, never from the sign, and an explicit `tone`\n * wins.\n */\n@Component({\n selector: '[slStatCardDelta]',\n standalone: true,\n imports: [SlGlyph, SlIcon, SlSkeleton, SlVisuallyHidden],\n /* One glyph for a rise and a fall, turned over by the sheet for a fall. */\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"3.5em\"></span>\n } @else {\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"trend() !== 'flat'\"\n ><svg slGlyph [name]=\"trend() === 'flat' ? 'minus' : 'trending-up'\"></svg></span></span\n ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardDelta',\n host: {\n 'data-part': 'delta',\n '[attr.data-trend]': 'card.loading() ? \"flat\" : trend()',\n '[attr.data-tone]': 'card.loading() ? \"neutral\" : resolvedTone()',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlStatCardDelta {\n /** The change. Unset, the root's `delta`. */\n readonly value = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** `percent` reads the value as a fraction; `decimal` reads it as it is. */\n readonly format = input<StatCardDeltaFormat>('percent');\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /** Unset, the root's. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /** An explicit tone, which wins over the one derived from `goodWhen`. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly change = computed(() => this.value() ?? this.card.delta());\n readonly trend = computed(() => trendOf(this.change()));\n readonly resolvedTone = computed(\n () => this.tone() ?? toneOf(this.trend(), this.goodWhen() ?? this.card.resolvedGoodWhen()),\n );\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n\n readonly formatted = computed(() => {\n const change = this.change();\n if (typeof change !== 'number') return '';\n return new Intl.NumberFormat(this.card.resolvedLocale(), {\n signDisplay: 'exceptZero',\n ...(this.format() === 'percent' ? { style: 'percent', maximumFractionDigits: 1 } : {}),\n ...this.card.resolvedFormatOptions(),\n ...this.formatOptions(),\n }).format(change);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/** The row with the name, a status beside it and an action at the end. */\n@Directive({\n selector: '[slStatCardHeader]',\n standalone: true,\n exportAs: 'slStatCardHeader',\n host: { 'data-part': 'header' },\n})\nexport class SlStatCardHeader {}\n\n/**\n * The name of the metric. It is the element the root is named by, so it\n * carries the id the root points at; an `id` the consumer wrote wins, and\n * the root then names nothing, which is the consumer's decision to make.\n */\n@Directive({\n selector: '[slStatCardLabel]',\n standalone: true,\n exportAs: 'slStatCardLabel',\n host: { 'data-part': 'label', '[attr.id]': 'id' },\n})\nexport class SlStatCardLabel {\n private readonly card = inject(SlStatCard);\n private readonly ownId = inject(new HostAttributeToken('id'), { optional: true });\n readonly id = this.ownId ?? this.card.labelId;\n}\n\n/** A slot beside the name for a badge or a status indicator. */\n@Directive({\n selector: '[slStatCardStatus]',\n standalone: true,\n exportAs: 'slStatCardStatus',\n host: { 'data-part': 'status' },\n})\nexport class SlStatCardStatus {}\n\n/** The place at the end of the header for the consumer's link or button. */\n@Directive({\n selector: '[slStatCardAction]',\n standalone: true,\n exportAs: 'slStatCardAction',\n host: { 'data-part': 'action' },\n})\nexport class SlStatCardAction {}\n\n/** The value with its unit and its delta on one line, and the comparison under them. */\n@Directive({\n selector: '[slStatCardFigure]',\n standalone: true,\n exportAs: 'slStatCardFigure',\n host: { 'data-part': 'figure' },\n})\nexport class SlStatCardFigure {}\n\n/** The unit, wherever the consumer puts it inside the value: `$` before, `%` after. */\n@Directive({\n selector: '[slStatCardUnit]',\n standalone: true,\n exportAs: 'slStatCardUnit',\n host: { 'data-part': 'unit' },\n})\nexport class SlStatCardUnit {}\n\n@Directive({\n selector: '[slStatCardPeriod]',\n standalone: true,\n exportAs: 'slStatCardPeriod',\n host: { 'data-part': 'period' },\n})\nexport class SlStatCardPeriod {}\n\n/**\n * The prose under the figure: what the value was, and the period. Shown\n * only while there is a value to compare; a placeholder while loading.\n */\n@Component({\n selector: '[slStatCardComparison]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"10em\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardComparison',\n host: { 'data-part': 'comparison', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardComparison {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/**\n * Where a sparkline goes. The stylesheet hands it the card's tone and the\n * card's ground; while loading it holds a block the sparkline's height, so\n * the card does not change size when the line arrives.\n */\n@Component({\n selector: '[slStatCardTrend]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton shape=\"block\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardTrend',\n host: { 'data-part': 'trend', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardTrend {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/** What is said in place of a value that is missing or failed. Shown only then. */\n@Directive({\n selector: '[slStatCardMessage]',\n standalone: true,\n exportAs: 'slStatCardMessage',\n host: { 'data-part': 'message', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardMessage {\n private readonly card = inject(SlStatCard);\n readonly shown = computed(() => !this.card.loading() && this.card.status() !== 'ready');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { inject } from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/**\n * The number. A numeric `value` is formatted with the card's locale and\n * `formatOptions` — `notation: 'compact'` is how 12,900 becomes 12.9K — and\n * projected content is the consumer's own rendering, unit and all, after\n * it. A missing or failed value is the `empty` message, a dash; a loading\n * one is a placeholder five figures wide, on the value's own line.\n */\n@Component({\n selector: '[slStatCardValue]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"5ch\"></span>\n } @else if (card.status() !== 'ready') {\n {{ card.t('empty') }}\n } @else {\n {{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardValue',\n host: { 'data-part': 'value' },\n})\nexport class SlStatCardValue {\n /** A number, formatted with the card's locale and `formatOptions`; the text otherwise. */\n readonly value = input<number | string | undefined>(undefined);\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly formatted = computed(() => {\n const value = this.value();\n if (typeof value !== 'number') return value ?? '';\n return new Intl.NumberFormat(\n this.card.resolvedLocale(),\n this.formatOptions() ?? this.card.resolvedFormatOptions(),\n ).format(value);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-stat-card.mjs","sources":["../../stat-card/src/stat-card-defaults.ts","../../stat-card/src/stat-card.constants.ts","../../stat-card/src/stat-card.ts","../../stat-card/src/stat-card-delta.ts","../../stat-card/src/stat-card-parts.ts","../../stat-card/src/stat-card-value.ts","../../stat-card/src/slotted-angular-stat-card.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type {\n StatCardFill,\n StatCardGoodWhen,\n StatCardLayout,\n StatCardSize,\n} from './stat-card.constants';\n\n/**\n * What every card in an application does before any of them states anything\n * of its own. `goodWhen` is here because a product usually has one answer —\n * a sales dashboard wants everything up, an operations one wants everything\n * down — and a card that disagrees says so.\n */\nexport interface StatCardDefaults {\n fill?: StatCardFill;\n formatOptions?: Intl.NumberFormatOptions;\n goodWhen?: StatCardGoodWhen;\n layout?: StatCardLayout;\n size?: StatCardSize;\n}\n\nexport const STAT_CARD_DEFAULTS_TOKEN = new InjectionToken<StatCardDefaults>(\n 'slotted stat-card defaults',\n { providedIn: 'root', factory: (): StatCardDefaults => ({}) },\n);\n\n/**\n * An explicit input is never overridden by the token. The words and the locale\n * come from the language in force (`provideSlotted`).\n */\nexport function provideStatCardDefaults(defaults: StatCardDefaults) {\n return { provide: STAT_CARD_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectStatCardDefaults(): StatCardDefaults {\n return inject(STAT_CARD_DEFAULTS_TOKEN);\n}\n","export type StatCardSize = 'sm' | 'md' | 'lg';\nexport type StatCardFill = 'outline' | 'elevated' | 'subtle' | 'plain';\nexport type StatCardLayout = 'inline' | 'stacked';\nexport type StatCardValueStatus = 'ready' | 'empty' | 'error';\nexport type StatCardGoodWhen = 'up' | 'down' | 'none';\nexport type StatCardTone = 'neutral' | 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type StatCardDirection = 'up' | 'down' | 'flat';\nexport type StatCardDeltaFormat = 'percent' | 'decimal';\n\n/** The direction of a change, from its sign. */\nexport function trendOf(value: number | undefined): StatCardDirection {\n if (value === undefined || Number.isNaN(value) || value === 0) return 'flat';\n return value > 0 ? 'up' : 'down';\n}\n\n/**\n * The tone of a change, from what the metric means and never from the sign:\n * a rise is good when up is good and bad when down is; a fall is the reverse;\n * a flat change, or a metric with no valence, is neutral.\n */\nexport function toneOf(trend: StatCardDirection, goodWhen: StatCardGoodWhen): StatCardTone {\n if (trend === 'flat' || goodWhen === 'none') return 'neutral';\n return (trend === 'up') === (goodWhen === 'up') ? 'success' : 'danger';\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { type PartialMessages, statCardMessages, type StatCardMessages } from '@slotted/core/i18n';\n\nimport { injectStatCardDefaults } from './stat-card-defaults';\nimport {\n toneOf,\n trendOf,\n type StatCardFill,\n type StatCardGoodWhen,\n type StatCardLayout,\n type StatCardSize,\n type StatCardTone,\n type StatCardValueStatus,\n} from './stat-card.constants';\n\nlet nextId = 0;\n\n/**\n * A metric with its name, its change and its trend, in a frame.\n *\n * The root holds the facts the parts read — which way is good, the change,\n * the status, whether it is loading — and derives the one thing two parts\n * have to agree on: the tone of the change, which the delta wears and the\n * trend hands to its sparkline. It is derived here, from `delta` and\n * `goodWhen`, so the first render already carries it.\n *\n * The root is a group named by its label, so a reader who lands on the\n * action inside it hears which metric it belongs to; an `aria-label` or\n * `aria-labelledby` the consumer wrote on the element wins. It carries\n * `aria-busy` while loading; the placeholders are `skeleton`s, and a\n * consumer who wants one announcement for a whole dashboard wraps it in a\n * `slSkeletonRegion`.\n */\n@Component({\n selector: '[slStatCard]',\n standalone: true,\n template: '<div data-part=\"body\"><ng-content /></div>',\n styleUrl: '../../../styles/src/stat-card/stat-card.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCard',\n host: {\n 'data-ui': 'stat-card',\n 'data-part': 'root',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-fill]': 'resolvedFill()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-status]': 'status()',\n '[attr.data-good-when]': 'resolvedGoodWhen()',\n '[attr.data-tone]': 'resolvedTone() ?? null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n },\n})\nexport class SlStatCard {\n readonly size = input<StatCardSize | undefined>(undefined);\n readonly fill = input<StatCardFill | undefined>(undefined);\n readonly layout = input<StatCardLayout | undefined>(undefined);\n /** Whether there is a value to show, and if not, why. */\n readonly status = input<StatCardValueStatus>('ready');\n /** The value is still on its way: every part stands in with a placeholder. */\n readonly loading = input<boolean, unknown>(false, { transform: booleanAttribute });\n /** Which way is good for this metric. The delta's tone is derived from it, never from the sign. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /**\n * The change since the comparison period, as the first delta inside reads\n * it: a fraction for a percentage (`0.124` is +12.4%), or a number.\n */\n readonly delta = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** The tone the card hands to its trend. Unset, it is the delta's. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n /** The locale numbers are written in; the language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n /** How the value, the delta and the comparison read numbers. */\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: what a\n * screen reader hears beside a change (`up`, `down`, `flat`, read before the\n * number because a sign is a glyph some readers skip) and what stands in for\n * a value that is not there (`empty`).\n */\n readonly messages = input<PartialMessages<StatCardMessages> | undefined>(undefined);\n\n private readonly defaults = injectStatCardDefaults();\n private readonly appLocale = injectLocale();\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n /** The id the label takes, and the root is named by. */\n readonly labelId = `slotted-stat-card-label-${nextId++}`;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size ?? 'md');\n readonly resolvedFill = computed(() => this.fill() ?? this.defaults.fill ?? 'outline');\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout ?? 'inline');\n readonly resolvedGoodWhen = computed(() => this.goodWhen() ?? this.defaults.goodWhen ?? 'up');\n readonly resolvedLocale = computed(() => this.locale() ?? this.appLocale());\n readonly resolvedFormatOptions = computed(\n () => this.formatOptions() ?? this.defaults.formatOptions,\n );\n /** The family's words in the language in force, with this card's `messages` laid over them. */\n readonly t = injectMessages(statCardMessages, this.messages);\n readonly resolvedTone = computed<StatCardTone | undefined>(() => {\n const explicit = this.tone();\n if (explicit !== undefined) return explicit;\n const delta = this.delta();\n return delta === undefined ? undefined : toneOf(trendOf(delta), this.resolvedGoodWhen());\n });\n\n readonly labelledBy = computed(() =>\n this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId),\n );\n}\n\nexport function optionalNumber(value: unknown): number | undefined {\n if (value === undefined || value === null || value === '') return undefined;\n return numberAttribute(value);\n}\n\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { SlStatCard, optionalNumber } from './stat-card';\nimport {\n toneOf,\n trendOf,\n type StatCardDeltaFormat,\n type StatCardGoodWhen,\n type StatCardTone,\n} from './stat-card.constants';\n\n/**\n * The change, with the mark that says which way and the word a screen reader\n * hears before the number. `value` is the root's `delta` unless the part\n * states its own, so a second delta on one card — month over month beside\n * year over year — is one more part with one more value.\n *\n * `percent` reads the value as a fraction, which is what a division gives;\n * the sign is always shown except on nought. The tone is derived from the\n * direction and from `goodWhen`, never from the sign, and an explicit `tone`\n * wins.\n */\n@Component({\n selector: '[slStatCardDelta]',\n standalone: true,\n imports: [SlGlyph, SlIcon, SlSkeleton, SlVisuallyHidden],\n /* One glyph for a rise and a fall, turned over by the sheet for a fall. */\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"3.5em\"></span>\n } @else {\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"trend() !== 'flat'\"\n ><svg slGlyph [name]=\"trend() === 'flat' ? 'minus' : 'trending-up'\"></svg></span></span\n ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardDelta',\n host: {\n 'data-part': 'delta',\n '[attr.data-trend]': 'card.loading() ? \"flat\" : trend()',\n '[attr.data-tone]': 'card.loading() ? \"neutral\" : resolvedTone()',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlStatCardDelta {\n /** The change. Unset, the root's `delta`. */\n readonly value = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** `percent` reads the value as a fraction; `decimal` reads it as it is. */\n readonly format = input<StatCardDeltaFormat>('percent');\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /** Unset, the root's. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /** An explicit tone, which wins over the one derived from `goodWhen`. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly change = computed(() => this.value() ?? this.card.delta());\n readonly trend = computed(() => trendOf(this.change()));\n readonly resolvedTone = computed(\n () => this.tone() ?? toneOf(this.trend(), this.goodWhen() ?? this.card.resolvedGoodWhen()),\n );\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n\n readonly formatted = computed(() => {\n const change = this.change();\n if (typeof change !== 'number') return '';\n return new Intl.NumberFormat(this.card.resolvedLocale(), {\n signDisplay: 'exceptZero',\n ...(this.format() === 'percent' ? { style: 'percent', maximumFractionDigits: 1 } : {}),\n ...this.card.resolvedFormatOptions(),\n ...this.formatOptions(),\n }).format(change);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/** The row with the name, a status beside it and an action at the end. */\n@Directive({\n selector: '[slStatCardHeader]',\n standalone: true,\n exportAs: 'slStatCardHeader',\n host: { 'data-part': 'header' },\n})\nexport class SlStatCardHeader {}\n\n/**\n * The name of the metric. It is the element the root is named by, so it\n * carries the id the root points at; an `id` the consumer wrote wins, and\n * the root then names nothing, which is the consumer's decision to make.\n */\n@Directive({\n selector: '[slStatCardLabel]',\n standalone: true,\n exportAs: 'slStatCardLabel',\n host: { 'data-part': 'label', '[attr.id]': 'id' },\n})\nexport class SlStatCardLabel {\n private readonly card = inject(SlStatCard);\n private readonly ownId = inject(new HostAttributeToken('id'), { optional: true });\n readonly id = this.ownId ?? this.card.labelId;\n}\n\n/** A slot beside the name for a badge or a status indicator. */\n@Directive({\n selector: '[slStatCardStatus]',\n standalone: true,\n exportAs: 'slStatCardStatus',\n host: { 'data-part': 'status' },\n})\nexport class SlStatCardStatus {}\n\n/** The place at the end of the header for the consumer's link or button. */\n@Directive({\n selector: '[slStatCardAction]',\n standalone: true,\n exportAs: 'slStatCardAction',\n host: { 'data-part': 'action' },\n})\nexport class SlStatCardAction {}\n\n/** The value with its unit and its delta on one line, and the comparison under them. */\n@Directive({\n selector: '[slStatCardFigure]',\n standalone: true,\n exportAs: 'slStatCardFigure',\n host: { 'data-part': 'figure' },\n})\nexport class SlStatCardFigure {}\n\n/** The unit, wherever the consumer puts it inside the value: `$` before, `%` after. */\n@Directive({\n selector: '[slStatCardUnit]',\n standalone: true,\n exportAs: 'slStatCardUnit',\n host: { 'data-part': 'unit' },\n})\nexport class SlStatCardUnit {}\n\n@Directive({\n selector: '[slStatCardPeriod]',\n standalone: true,\n exportAs: 'slStatCardPeriod',\n host: { 'data-part': 'period' },\n})\nexport class SlStatCardPeriod {}\n\n/**\n * The prose under the figure: what the value was, and the period. Shown\n * only while there is a value to compare; a placeholder while loading.\n */\n@Component({\n selector: '[slStatCardComparison]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"10em\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardComparison',\n host: { 'data-part': 'comparison', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardComparison {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/**\n * Where a sparkline goes. The stylesheet hands it the card's tone and the\n * card's ground; while loading it holds a block the sparkline's height, so\n * the card does not change size when the line arrives.\n */\n@Component({\n selector: '[slStatCardTrend]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton shape=\"block\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardTrend',\n host: { 'data-part': 'trend', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardTrend {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/** What is said in place of a value that is missing or failed. Shown only then. */\n@Directive({\n selector: '[slStatCardMessage]',\n standalone: true,\n exportAs: 'slStatCardMessage',\n host: { 'data-part': 'message', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardMessage {\n private readonly card = inject(SlStatCard);\n readonly shown = computed(() => !this.card.loading() && this.card.status() !== 'ready');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { inject } from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/**\n * The number. A numeric `value` is formatted with the card's locale and\n * `formatOptions` — `notation: 'compact'` is how 12,900 becomes 12.9K — and\n * projected content is the consumer's own rendering, unit and all, after\n * it. A missing or failed value is the `empty` message, a dash; a loading\n * one is a placeholder five figures wide, on the value's own line.\n */\n@Component({\n selector: '[slStatCardValue]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"5ch\"></span>\n } @else if (card.status() !== 'ready') {\n {{ card.t('empty') }}\n } @else {\n {{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardValue',\n host: { 'data-part': 'value' },\n})\nexport class SlStatCardValue {\n /** A number, formatted with the card's locale and `formatOptions`; the text otherwise. */\n readonly value = input<number | string | undefined>(undefined);\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly formatted = computed(() => {\n const value = this.value();\n if (typeof value !== 'number') return value ?? '';\n return new Intl.NumberFormat(\n this.card.resolvedLocale(),\n this.formatOptions() ?? this.card.resolvedFormatOptions(),\n ).format(value);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|