@fusion.dev/helix 0.143.0 → 0.145.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +19817 -1238
- package/dist/accordion/item/accordion-item.css.js +14 -3
- package/dist/accordion/item/accordion-item.d.ts +2 -0
- package/dist/aura/palette.d.ts +38 -0
- package/dist/aura/palette.js +22 -0
- package/dist/aura/root/aura-root.css.js +24 -3
- package/dist/aura/root/aura-root.d.ts +42 -7
- package/dist/aura/root/aura-root.js +31 -25
- package/dist/badge/root/badge-root.css.js +35 -0
- package/dist/badge/root/badge-root.d.ts +16 -0
- package/dist/badge/root/badge-root.js +3 -0
- package/dist/blockquote/root/blockquote-root.css.js +5 -5
- package/dist/blockquote/root/blockquote-root.d.ts +5 -0
- package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +7 -7
- package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +5 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.css.js +1 -1
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +3 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.js +2 -0
- package/dist/button/root/button-root.css.js +38 -1
- package/dist/button/root/button-root.d.ts +5 -0
- package/dist/button/root/button-root.js +2 -1
- package/dist/button-group/root/button-group-root.d.ts +3 -0
- package/dist/callout/root/callout-root.css.js +69 -11
- package/dist/callout/root/callout-root.d.ts +25 -2
- package/dist/callout/root/callout-root.js +4 -0
- package/dist/canvas/root/canvas-root.css.js +1 -0
- package/dist/card/root/card-root.css.js +26 -1
- package/dist/card/root/card-root.d.ts +11 -0
- package/dist/carousel/root/carousel-root.css.js +17 -1
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +2 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +2 -0
- package/dist/code-block/root/code-block-root.css.js +23 -0
- package/dist/code-block/root/code-block-root.d.ts +15 -0
- package/dist/code-block/root/code-block-root.js +8 -0
- package/dist/color-picker/root/color-picker-root.css.js +64 -0
- package/dist/color-picker/root/color-picker-root.d.ts +2 -0
- package/dist/copy-button/root/copy-button-root.css.js +5 -0
- package/dist/data-table/root/data-table-root.css.js +63 -0
- package/dist/data-table/root/data-table-root.d.ts +1 -0
- package/dist/date-input/root/date-input-root.css.js +19 -0
- package/dist/date-input/root/date-input-root.d.ts +8 -0
- package/dist/date-input/root/date-input-root.js +2 -0
- package/dist/date-picker/root/date-picker-root.css.js +68 -0
- package/dist/date-picker/root/date-picker-root.d.ts +1 -0
- package/dist/description-list/item/description-list-item.css.js +11 -0
- package/dist/dialog/root/dialog-root.css.js +47 -0
- package/dist/divider/root/divider-root.css.js +8 -3
- package/dist/divider/root/divider-root.d.ts +17 -1
- package/dist/divider/root/divider-root.js +4 -0
- package/dist/drawer/root/drawer-root.css.js +28 -1
- package/dist/drilldown/item/drilldown-item.css.js +2 -1
- package/dist/drilldown/root/drilldown-root.css.js +2 -1
- package/dist/element-events.generated.js +66 -14
- package/dist/empty/root/empty-root.css.js +9 -9
- package/dist/empty/root/empty-root.d.ts +9 -0
- package/dist/file-input/root/file-input-root.js +2 -0
- package/dist/filter-input/root/filter-input-root.js +2 -0
- package/dist/flex/root/flex-root.css.js +134 -9
- package/dist/flex/root/flex-root.d.ts +51 -5
- package/dist/flex/root/flex-root.js +17 -1
- package/dist/grid/root/grid-root.css.js +114 -11
- package/dist/grid/root/grid-root.d.ts +37 -0
- package/dist/grid/root/grid-root.js +13 -1
- package/dist/heatmap/root/heatmap-root.css.js +33 -5
- package/dist/heatmap/root/heatmap-root.d.ts +4 -1
- package/dist/icon/index.d.ts +1 -0
- package/dist/icon/index.js +1 -0
- package/dist/icon/root/icon-root.d.ts +1 -1
- package/dist/icon/root/icon-root.js +1 -1
- package/dist/icon/root/index.d.ts +2 -0
- package/dist/icon/root/index.js +2 -0
- package/dist/icon-button/root/icon-button-root.css.js +37 -0
- package/dist/icon-button/root/icon-button-root.d.ts +4 -0
- package/dist/icon-button/root/icon-button-root.js +2 -1
- package/dist/input/root/input-root.css.js +3 -3
- package/dist/input/root/input-root.d.ts +3 -0
- package/dist/legend/root/legend-root.css.js +40 -13
- package/dist/legend/root/legend-root.d.ts +6 -0
- package/dist/legend/root/legend-root.js +1 -1
- package/dist/lightbox/root/lightbox-root.css.js +84 -0
- package/dist/lightbox/root/lightbox-root.d.ts +1 -0
- package/dist/list/item/list-item.css.js +21 -1
- package/dist/list/item/list-item.d.ts +3 -0
- package/dist/list/root/list-root.css.js +13 -1
- package/dist/loader/root/loader-root.css.js +10 -0
- package/dist/loader/root/loader-root.d.ts +3 -0
- package/dist/menu/index.d.ts +1 -0
- package/dist/menu/index.js +1 -0
- package/dist/menu/item/menu-item.css.js +15 -1
- package/dist/menu/item/menu-item.d.ts +3 -0
- package/dist/menu/item/menu-item.js +2 -0
- package/dist/menu/section/menu-section.css.d.ts +1 -0
- package/dist/menu/section/menu-section.css.js +14 -0
- package/dist/menu/section/menu-section.d.ts +24 -0
- package/dist/menu/section/menu-section.js +16 -0
- package/dist/meter/root/meter-root.css.js +23 -1
- package/dist/meter/root/meter-root.d.ts +5 -0
- package/dist/navigation/root/navigation-root.css.js +3 -2
- package/dist/navigation/root/navigation-root.d.ts +6 -0
- package/dist/notifications/notification/notification.css.js +5 -0
- package/dist/notifications/root/notifications-root.css.js +24 -1
- package/dist/notifications/root/notifications-root.d.ts +1 -0
- package/dist/number-input/root/number-input-root.css.js +3 -3
- package/dist/number-input/root/number-input-root.d.ts +3 -0
- package/dist/object-inspector/root/object-inspector-root.css.js +36 -1
- package/dist/object-inspector/root/object-inspector-root.d.ts +4 -1
- package/dist/object-inspector/root/object-inspector-root.js +2 -1
- package/dist/orb/index.d.ts +1 -1
- package/dist/orb/index.js +1 -1
- package/dist/orb/root/orb-root.d.ts +31 -5
- package/dist/orb/root/orb-root.js +33 -4
- package/dist/outline/root/outline-root.css.js +10 -0
- package/dist/outline/root/outline-root.d.ts +7 -0
- package/dist/pin-input/root/pin-input-root.css.js +12 -5
- package/dist/pin-input/root/pin-input-root.d.ts +5 -0
- package/dist/popover/root/popover-root.css.js +36 -0
- package/dist/popover/root/popover-root.d.ts +1 -0
- package/dist/progress/root/progress-root.css.js +22 -1
- package/dist/progress/root/progress-root.d.ts +5 -0
- package/dist/quote/root/quote-root.css.js +1 -1
- package/dist/quote/root/quote-root.d.ts +1 -0
- package/dist/sandbox/frame.d.ts +63 -0
- package/dist/sandbox/frame.js +132 -0
- package/dist/sandbox/index.d.ts +1 -0
- package/dist/sandbox/index.js +1 -0
- package/dist/sandbox/levels.d.ts +10 -0
- package/dist/sandbox/levels.js +5 -0
- package/dist/sandbox/root/sandbox-root.d.ts +3 -0
- package/dist/sandbox/root/sandbox-root.js +13 -3
- package/dist/sandbox/source/sandbox-source.d.ts +1 -0
- package/dist/sandbox/source/sandbox-source.js +7 -3
- package/dist/sandbox/terminal/sandbox-terminal.css.js +39 -0
- package/dist/sandbox/terminal/sandbox-terminal.d.ts +42 -1
- package/dist/sandbox/terminal/sandbox-terminal.js +47 -3
- package/dist/scroll-area/root/scroll-area-root.css.js +83 -1
- package/dist/scroll-area/root/scroll-area-root.d.ts +6 -0
- package/dist/shared/chart/tooltip.css.js +25 -2
- package/dist/shared/field/field-segments.css.d.ts +1 -0
- package/dist/shared/field/field-segments.css.js +40 -0
- package/dist/skeleton/root/skeleton-root.css.js +56 -5
- package/dist/skeleton/root/skeleton-root.d.ts +17 -1
- package/dist/skeleton/root/skeleton-root.js +3 -0
- package/dist/skip-link/root/skip-link-root.css.js +8 -8
- package/dist/skip-link/root/skip-link-root.d.ts +9 -0
- package/dist/speed-dial/item/speed-dial-item.css.js +11 -4
- package/dist/speed-dial/item/speed-dial-item.d.ts +4 -0
- package/dist/speed-dial/root/speed-dial-root.css.js +7 -3
- package/dist/speed-dial/root/speed-dial-root.d.ts +9 -0
- package/dist/speed-dial/root/speed-dial-root.js +4 -0
- package/dist/stat/root/stat-root.css.js +7 -7
- package/dist/stat/root/stat-root.d.ts +8 -0
- package/dist/steps/step/step.js +2 -1
- package/dist/switch/root/switch-root.css.js +13 -5
- package/dist/switch/root/switch-root.d.ts +25 -1
- package/dist/switch/root/switch-root.js +7 -0
- package/dist/table/root/table-root.css.js +18 -0
- package/dist/table/root/table-root.d.ts +6 -0
- package/dist/table/root/table-root.js +2 -0
- package/dist/table/row/table-row.css.js +18 -0
- package/dist/table/row/table-row.d.ts +2 -0
- package/dist/table/row/table-row.js +2 -0
- package/dist/tabs/panel/tab-panel.css.js +5 -1
- package/dist/tabs/root/tabs-root.css.js +56 -1
- package/dist/tabs/tab/tab.css.js +5 -1
- package/dist/tag/group/tag-group.css.d.ts +1 -0
- package/dist/tag/group/tag-group.css.js +6 -0
- package/dist/tag/group/tag-group.d.ts +25 -0
- package/dist/tag/group/tag-group.js +16 -0
- package/dist/tag/index.d.ts +1 -0
- package/dist/tag/index.js +1 -0
- package/dist/tag/root/tag-root.css.js +50 -0
- package/dist/tag/root/tag-root.d.ts +4 -0
- package/dist/text/clamp.d.ts +8 -0
- package/dist/text/clamp.js +1 -0
- package/dist/text/root/text-root.css.js +85 -45
- package/dist/text/root/text-root.d.ts +48 -7
- package/dist/text/root/text-root.js +17 -11
- package/dist/textarea/root/textarea-root.css.js +12 -4
- package/dist/textarea/root/textarea-root.d.ts +4 -0
- package/dist/time-input/root/time-input-root.css.js +19 -0
- package/dist/time-input/root/time-input-root.d.ts +8 -0
- package/dist/time-input/root/time-input-root.js +2 -0
- package/dist/timeline/group/timeline-group.css.d.ts +1 -0
- package/dist/timeline/group/timeline-group.css.js +32 -0
- package/dist/timeline/group/timeline-group.d.ts +25 -0
- package/dist/timeline/group/timeline-group.js +16 -0
- package/dist/timeline/index.d.ts +1 -0
- package/dist/timeline/index.js +1 -0
- package/dist/timeline/item/timeline-item.css.js +43 -16
- package/dist/timeline/root/timeline-root.css.js +56 -0
- package/dist/timeline/root/timeline-root.d.ts +26 -0
- package/dist/timeline/root/timeline-root.js +7 -0
- package/dist/toast/item/toast-item.css.js +16 -0
- package/dist/toggle/group/toggle-group.css.js +16 -0
- package/dist/toolbar/root/toolbar-root.css.js +3 -0
- package/dist/toolbar/root/toolbar-root.d.ts +3 -0
- package/dist/tour/root/tour-root.css.js +8 -0
- package/dist/tour/stop/tour-stop.css.js +32 -0
- package/dist/tree/item/tree-item.css.js +72 -0
- package/dist/tree/item/tree-item.d.ts +10 -0
- package/dist/trend/root/trend-root.css.js +12 -5
- package/dist/trend/root/trend-root.d.ts +6 -1
- package/dist/video/root/video-root.css.js +6 -0
- package/dist/video/root/video-root.d.ts +3 -0
- package/dist/virtual-list/root/virtual-list-root.css.js +5 -0
- package/dist/virtual-list/root/virtual-list-root.d.ts +4 -3
- package/lint.json +1 -1
- package/package.json +6 -6
- package/types/jsx.d.ts +8620 -813
- package/types/svelte.d.ts +3 -0
- package/types/vue.d.ts +2372 -213
|
@@ -15,6 +15,10 @@ import type { CSSResultGroup } from 'lit';
|
|
|
15
15
|
* @documentation https://fusion.dev/helix/components/textarea
|
|
16
16
|
*
|
|
17
17
|
* @cssproperty --textarea-background-color - Fill behind the text.
|
|
18
|
+
* @cssproperty --textarea-border-color - Edge of the field at rest. Hover, focus and an error still draw their own.
|
|
19
|
+
* @cssproperty --textarea-padding - Space between the edge of the field and the text.
|
|
20
|
+
* @cssproperty --textarea-radius - Corner radius of the field.
|
|
21
|
+
* @cssproperty --textarea-resize - Which way a reader can drag the field: `vertical` by default, `none`, `both` or `horizontal`. A field under `auto-grow` has nothing to drag.
|
|
18
22
|
*/
|
|
19
23
|
export declare class HelixTextarea extends HelixHeadlessTextarea {
|
|
20
24
|
static styles: CSSResultGroup;
|
|
@@ -90,6 +90,25 @@ flex-basis: 0;
|
|
|
90
90
|
min-inline-size: var(--helix-size-icon-loose);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
[part="segments"] {
|
|
94
|
+
--_segment-focus-background-color: var(
|
|
95
|
+
--time-input-segment-focus-background-color,
|
|
96
|
+
var(--helix-color-primary)
|
|
97
|
+
);
|
|
98
|
+
--_segment-focus-color: var(
|
|
99
|
+
--time-input-segment-focus-color,
|
|
100
|
+
var(--helix-color-foreground-on-primary)
|
|
101
|
+
);
|
|
102
|
+
--_segment-literal-color: var(
|
|
103
|
+
--time-input-segment-literal-color,
|
|
104
|
+
var(--helix-color-foreground-muted)
|
|
105
|
+
);
|
|
106
|
+
--_segment-placeholder-color: var(
|
|
107
|
+
--time-input-segment-placeholder-color,
|
|
108
|
+
var(--helix-color-foreground-subtle)
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
93
112
|
@media print {
|
|
94
113
|
:host {
|
|
95
114
|
print-color-adjust: exact;
|
|
@@ -25,6 +25,14 @@ import '../../time-picker/index.js';
|
|
|
25
25
|
* @cssproperty --time-input-border-width - Width of the panel's edge. Defaults to
|
|
26
26
|
* `--helix-border-floating`, which is `0`, so the panel stands out by its shadow unless
|
|
27
27
|
* your theme sets a width.
|
|
28
|
+
* @cssproperty --time-input-segment-focus-background-color - The fill behind the
|
|
29
|
+
* segment with focus, in `segmented`. It follows `--helix-color-primary`.
|
|
30
|
+
* @cssproperty --time-input-segment-focus-color - The text of the segment with
|
|
31
|
+
* focus, in `segmented`.
|
|
32
|
+
* @cssproperty --time-input-segment-literal-color - The text the locale writes
|
|
33
|
+
* between two segments, in `segmented`.
|
|
34
|
+
* @cssproperty --time-input-segment-placeholder-color - The dashes of a segment
|
|
35
|
+
* with nothing in it, in `segmented`. It matches the text field's placeholder.
|
|
28
36
|
* @cssproperty --time-input-shadow - Shadow under the panel. Defaults to
|
|
29
37
|
* `--helix-shadow-floating`, because the panel can sit over any content.
|
|
30
38
|
*/
|
|
@@ -10,6 +10,7 @@ import '../../tag/index.js';
|
|
|
10
10
|
import '../../time-picker/index.js';
|
|
11
11
|
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
12
12
|
import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
|
|
13
|
+
import { styles as fieldSegmentsStyles } from '../../shared/field/field-segments.css.js';
|
|
13
14
|
import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
|
|
14
15
|
import { styles as floatingEntranceStyles } from '../../shared/floating/entrance.css.js';
|
|
15
16
|
import { styles as floatingPanelStyles } from '../../shared/floating/panel.css.js';
|
|
@@ -21,6 +22,7 @@ let HelixTimeInput = class HelixTimeInput extends HelixHeadlessTimeInput {
|
|
|
21
22
|
fieldStyles,
|
|
22
23
|
fieldFrameStyles,
|
|
23
24
|
fieldStackedStyles,
|
|
25
|
+
fieldSegmentsStyles,
|
|
24
26
|
tagRowStyles,
|
|
25
27
|
floatingPanelStyles,
|
|
26
28
|
floatingEntranceStyles,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
+
export const styles = createSheet(`:host {
|
|
3
|
+
display: block;
|
|
4
|
+
padding-block-end: var(--timeline-gap, var(--helix-space-lg));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
:host(:last-child) {
|
|
8
|
+
padding-block-end: var(--helix-space-none);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[part="heading"] {
|
|
12
|
+
color: var(--timeline-group-heading-color, var(--helix-color-foreground));
|
|
13
|
+
font-size: var(--helix-text-sm);
|
|
14
|
+
font-weight: var(--helix-weight-semibold);
|
|
15
|
+
padding-block-end: var(--helix-space-sm);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[part="entries"] {
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-direction: var(--_timeline-direction, column);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
::slotted(*) {
|
|
24
|
+
flex: var(--_timeline-entry-flex, 0 1 auto);
|
|
25
|
+
min-inline-size: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@media print {
|
|
29
|
+
:host {
|
|
30
|
+
break-inside: avoid-page;
|
|
31
|
+
}
|
|
32
|
+
}`);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { HelixHeadlessTimelineGroup } from '@fusion.dev/helix-headless/timeline';
|
|
2
|
+
import type { CSSResultGroup } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary A run of timeline entries under a heading, such as a day.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* The heading sits at the start edge, over the entries, in the small heavy
|
|
8
|
+
* type of a section label, and the space under one group is the space between
|
|
9
|
+
* two entries.
|
|
10
|
+
*
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
* @status stable
|
|
13
|
+
* @aliases Day, Section, Date group
|
|
14
|
+
* @documentation https://fusion.dev/helix/components/timeline
|
|
15
|
+
*
|
|
16
|
+
* @cssproperty --timeline-group-heading-color - The color of the heading.
|
|
17
|
+
*/
|
|
18
|
+
export declare class HelixTimelineGroup extends HelixHeadlessTimelineGroup {
|
|
19
|
+
static styles: CSSResultGroup;
|
|
20
|
+
}
|
|
21
|
+
declare global {
|
|
22
|
+
interface HTMLElementTagNameMap {
|
|
23
|
+
'helix-timeline-group': HelixTimelineGroup;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement } from '@fusion.dev/helix-core';
|
|
8
|
+
import { HelixHeadlessTimelineGroup } from '@fusion.dev/helix-headless/timeline';
|
|
9
|
+
import { styles } from './timeline-group.css.js';
|
|
10
|
+
let HelixTimelineGroup = class HelixTimelineGroup extends HelixHeadlessTimelineGroup {
|
|
11
|
+
static { this.styles = styles; }
|
|
12
|
+
};
|
|
13
|
+
HelixTimelineGroup = __decorate([
|
|
14
|
+
customElement('helix-timeline-group')
|
|
15
|
+
], HelixTimelineGroup);
|
|
16
|
+
export { HelixTimelineGroup };
|
package/dist/timeline/index.d.ts
CHANGED
package/dist/timeline/index.js
CHANGED
|
@@ -2,21 +2,26 @@ import { createSheet } from '@fusion.dev/helix-core';
|
|
|
2
2
|
export const styles = createSheet(`:host {
|
|
3
3
|
column-gap: var(--helix-space-md);
|
|
4
4
|
display: grid;
|
|
5
|
-
|
|
6
|
-
grid-template-
|
|
5
|
+
|
|
6
|
+
grid-template-columns: var(--_timeline-columns, auto minmax(0, 1fr));
|
|
7
|
+
grid-template-rows: var(--_timeline-rows, auto minmax(0, 1fr));
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
[part="rail"] {
|
|
11
|
+
align-items: var(--_timeline-rail-align, normal);
|
|
10
12
|
display: grid;
|
|
11
|
-
grid-
|
|
12
|
-
grid-
|
|
13
|
-
|
|
13
|
+
grid-column: var(--_timeline-rail-column, auto);
|
|
14
|
+
grid-row: var(--_timeline-rail-row, 1 / -1);
|
|
15
|
+
grid-template-columns: var(--_timeline-rail-columns, none);
|
|
16
|
+
grid-template-rows: var(--_timeline-rail-rows, subgrid);
|
|
17
|
+
justify-items: var(--_timeline-rail-justify, center);
|
|
14
18
|
}
|
|
15
19
|
|
|
16
20
|
[part="rail"]::before {
|
|
17
21
|
background-color: var(--helix-color-border);
|
|
18
22
|
block-size: 100%;
|
|
19
23
|
content: "";
|
|
24
|
+
display: var(--_timeline-arrive-display, block);
|
|
20
25
|
grid-column: 1;
|
|
21
26
|
grid-row: 1;
|
|
22
27
|
inline-size: var(--timeline-rail-size, var(--helix-border-thin));
|
|
@@ -27,14 +32,22 @@ visibility: hidden;
|
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
[part="rail"]::after {
|
|
30
|
-
align-self: stretch;
|
|
35
|
+
align-self: var(--_timeline-leave-align, stretch);
|
|
31
36
|
background-color: var(--helix-color-border);
|
|
37
|
+
block-size: var(--_timeline-leave-block-size, auto);
|
|
32
38
|
content: "";
|
|
33
39
|
|
|
34
|
-
grid-column: 1;
|
|
35
|
-
grid-row: 2;
|
|
36
|
-
inline-size: var(
|
|
37
|
-
|
|
40
|
+
grid-column: var(--_timeline-leave-column, 1);
|
|
41
|
+
grid-row: var(--_timeline-leave-row, 2);
|
|
42
|
+
inline-size: var(
|
|
43
|
+
--_timeline-leave-inline-size,
|
|
44
|
+
var(--timeline-rail-size, var(--helix-border-thin))
|
|
45
|
+
);
|
|
46
|
+
justify-self: var(--_timeline-leave-justify, auto);
|
|
47
|
+
margin-block-start: var(
|
|
48
|
+
--_timeline-leave-margin-block,
|
|
49
|
+
var(--timeline-marker-size, var(--helix-size-icon-md))
|
|
50
|
+
);
|
|
38
51
|
}
|
|
39
52
|
|
|
40
53
|
:host(:last-child) [part="rail"]::after {
|
|
@@ -52,7 +65,7 @@ border-radius: var(--timeline-marker-radius, var(--helix-radii-full));
|
|
|
52
65
|
color: var(--_timeline-tone, var(--helix-color-foreground-subtle));
|
|
53
66
|
display: inline-flex;
|
|
54
67
|
grid-column: 1;
|
|
55
|
-
grid-row: 2;
|
|
68
|
+
grid-row: var(--_timeline-marker-row, 2);
|
|
56
69
|
inline-size: var(--timeline-marker-size, var(--helix-size-icon-md));
|
|
57
70
|
justify-content: center;
|
|
58
71
|
}
|
|
@@ -92,21 +105,35 @@ color: var(--helix-color-foreground-muted);
|
|
|
92
105
|
font-family: var(--helix-font-sans);
|
|
93
106
|
font-size: var(--helix-text-xs);
|
|
94
107
|
font-weight: var(--helix-weight-medium);
|
|
95
|
-
grid-column: 2;
|
|
96
|
-
grid-row: 1;
|
|
108
|
+
grid-column: var(--_timeline-time-column, 2);
|
|
109
|
+
grid-row: var(--_timeline-time-row, 1);
|
|
97
110
|
padding-block-end: var(--helix-space-2xs);
|
|
111
|
+
|
|
112
|
+
text-align: var(--_timeline-time-align);
|
|
98
113
|
}
|
|
99
114
|
|
|
100
115
|
[part="content"] {
|
|
101
116
|
display: flex;
|
|
102
117
|
flex-direction: column;
|
|
103
118
|
gap: var(--helix-space-2xs);
|
|
104
|
-
grid-column: 2;
|
|
105
|
-
grid-row: 2;
|
|
119
|
+
grid-column: var(--_timeline-content-column, 2);
|
|
120
|
+
grid-row: var(--_timeline-content-row, 2);
|
|
106
121
|
min-inline-size: 0;
|
|
107
|
-
padding-block-end: var(--timeline-gap, var(--helix-space-lg));
|
|
122
|
+
padding-block-end: var(--_timeline-content-block-end, var(--timeline-gap, var(--helix-space-lg)));
|
|
123
|
+
padding-inline-end: var(--_timeline-content-inline-end, var(--helix-space-none));
|
|
108
124
|
}
|
|
109
125
|
|
|
110
126
|
:host(:last-child) [part="content"] {
|
|
111
127
|
padding-block-end: var(--helix-space-none);
|
|
128
|
+
padding-inline-end: var(--helix-space-none);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
:host(:nth-child(even)) [part="time"] {
|
|
132
|
+
grid-column: var(--_timeline-even-column, var(--_timeline-time-column, 2));
|
|
133
|
+
text-align: var(--_timeline-even-align, var(--_timeline-time-align));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
:host(:nth-child(even)) [part="content"] {
|
|
137
|
+
grid-column: var(--_timeline-even-column, var(--_timeline-content-column, 2));
|
|
138
|
+
text-align: var(--_timeline-even-align);
|
|
112
139
|
}`);
|
|
@@ -4,6 +4,62 @@ display: flex;
|
|
|
4
4
|
flex-direction: column;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
:host([layout="opposite"]) {
|
|
8
|
+
--_timeline-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
9
|
+
--_timeline-content-column: 3;
|
|
10
|
+
--_timeline-rail-column: 2;
|
|
11
|
+
--_timeline-time-align: end;
|
|
12
|
+
--_timeline-time-column: 1;
|
|
13
|
+
--_timeline-time-row: 2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([layout="alternate"]) {
|
|
17
|
+
--_timeline-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
18
|
+
--_timeline-content-column: 3;
|
|
19
|
+
--_timeline-even-align: end;
|
|
20
|
+
--_timeline-even-column: 1;
|
|
21
|
+
--_timeline-rail-column: 2;
|
|
22
|
+
--_timeline-time-column: 3;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:host([orientation="horizontal"]) {
|
|
26
|
+
--_timeline-arrive-display: none;
|
|
27
|
+
--_timeline-columns: minmax(0, 1fr);
|
|
28
|
+
--_timeline-content-block-end: var(--helix-space-none);
|
|
29
|
+
--_timeline-content-column: 1;
|
|
30
|
+
--_timeline-content-inline-end: var(--timeline-gap, var(--helix-space-lg));
|
|
31
|
+
--_timeline-content-row: 3;
|
|
32
|
+
--_timeline-direction: row;
|
|
33
|
+
--_timeline-entry-flex: 1 1 0;
|
|
34
|
+
--_timeline-even-align: initial;
|
|
35
|
+
--_timeline-even-column: initial;
|
|
36
|
+
--_timeline-leave-align: center;
|
|
37
|
+
--_timeline-leave-block-size: var(--timeline-rail-size, var(--helix-border-thin));
|
|
38
|
+
--_timeline-leave-column: 2;
|
|
39
|
+
--_timeline-leave-inline-size: auto;
|
|
40
|
+
--_timeline-leave-justify: stretch;
|
|
41
|
+
--_timeline-leave-margin-block: var(--helix-space-none);
|
|
42
|
+
--_timeline-leave-row: 1;
|
|
43
|
+
--_timeline-marker-row: 1;
|
|
44
|
+
--_timeline-rail-align: center;
|
|
45
|
+
--_timeline-rail-column: 1;
|
|
46
|
+
--_timeline-rail-columns: auto minmax(0, 1fr);
|
|
47
|
+
--_timeline-rail-justify: start;
|
|
48
|
+
--_timeline-rail-row: 1;
|
|
49
|
+
--_timeline-rail-rows: auto;
|
|
50
|
+
--_timeline-rows: auto auto minmax(0, 1fr);
|
|
51
|
+
--_timeline-time-align: initial;
|
|
52
|
+
--_timeline-time-column: 1;
|
|
53
|
+
--_timeline-time-row: 2;
|
|
54
|
+
|
|
55
|
+
flex-direction: row;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host([orientation="horizontal"]) ::slotted(*) {
|
|
59
|
+
flex: 1 1 0;
|
|
60
|
+
min-inline-size: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
7
63
|
@media print {
|
|
8
64
|
:host {
|
|
9
65
|
print-color-adjust: economy;
|
|
@@ -7,6 +7,19 @@ import type { CSSResultGroup } from 'lit';
|
|
|
7
7
|
* Sets the direction time runs in and the spacing between events. Each entry
|
|
8
8
|
* draws its own mark and line.
|
|
9
9
|
*
|
|
10
|
+
* `layout` and `orientation` move where the entries are drawn, and never the
|
|
11
|
+
* order they are read in, which is the order you write them in:
|
|
12
|
+
*
|
|
13
|
+
* - Unset, the line runs down the start edge, with each time over what
|
|
14
|
+
* happened.
|
|
15
|
+
* - `layout="opposite"` runs the line down the middle, with each time on the
|
|
16
|
+
* start side and what happened on the end side.
|
|
17
|
+
* - `layout="alternate"` runs the line down the middle, with the first entry on
|
|
18
|
+
* the end side, the second on the start side, and so on.
|
|
19
|
+
* - `orientation="horizontal"` runs the line across the top, with the entries
|
|
20
|
+
* side by side in the order they are read, and the time over what happened
|
|
21
|
+
* under each mark. Use it for a few entries, since they share the width.
|
|
22
|
+
*
|
|
10
23
|
* @since 0.1.0
|
|
11
24
|
* @status stable
|
|
12
25
|
* @category data
|
|
@@ -17,6 +30,19 @@ import type { CSSResultGroup } from 'lit';
|
|
|
17
30
|
*/
|
|
18
31
|
export declare class HelixTimeline extends HelixHeadlessTimeline {
|
|
19
32
|
static styles: CSSResultGroup;
|
|
33
|
+
/**
|
|
34
|
+
* Where the entries sit beside the line: `opposite` puts the times on one
|
|
35
|
+
* side and what happened on the other, and `alternate` puts every other
|
|
36
|
+
* entry on the other side. Unset, the line runs down the start edge.
|
|
37
|
+
*
|
|
38
|
+
* Down the page only: across the page it is set aside.
|
|
39
|
+
*/
|
|
40
|
+
layout?: 'alternate' | 'opposite';
|
|
41
|
+
/**
|
|
42
|
+
* Which way time runs: `horizontal` lays the entries across the page. Unset,
|
|
43
|
+
* they run down it.
|
|
44
|
+
*/
|
|
45
|
+
orientation?: 'horizontal';
|
|
20
46
|
}
|
|
21
47
|
declare global {
|
|
22
48
|
interface HTMLElementTagNameMap {
|
|
@@ -6,10 +6,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessTimeline } from '@fusion.dev/helix-headless/timeline';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
9
10
|
import { styles } from './timeline-root.css.js';
|
|
10
11
|
let HelixTimeline = class HelixTimeline extends HelixHeadlessTimeline {
|
|
11
12
|
static { this.styles = styles; }
|
|
12
13
|
};
|
|
14
|
+
__decorate([
|
|
15
|
+
property({ reflect: true })
|
|
16
|
+
], HelixTimeline.prototype, "layout", void 0);
|
|
17
|
+
__decorate([
|
|
18
|
+
property({ reflect: true })
|
|
19
|
+
], HelixTimeline.prototype, "orientation", void 0);
|
|
13
20
|
HelixTimeline = __decorate([
|
|
14
21
|
customElement('helix-timeline')
|
|
15
22
|
], HelixTimeline);
|
|
@@ -150,6 +150,22 @@ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
|
150
150
|
outline-offset: var(--helix-size-focus-offset);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
[part="item"],
|
|
154
|
+
[part="item"] > * {
|
|
155
|
+
touch-action: pan-y;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
[part="content"] > slot {
|
|
159
|
+
display: block;
|
|
160
|
+
touch-action: pan-y;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
[part="item"][data-swiping] {
|
|
164
|
+
transition: none;
|
|
165
|
+
translate: var(--toast-swipe-x, 0) 0;
|
|
166
|
+
user-select: none;
|
|
167
|
+
}
|
|
168
|
+
|
|
153
169
|
[part="timer"] {
|
|
154
170
|
animation: helix-toast-drain var(--toast-duration, 0ms) linear forwards;
|
|
155
171
|
background-color: var(--_toast-severity, var(--helix-color-foreground-muted));
|
|
@@ -111,4 +111,20 @@ gap: var(--helix-space-sm);
|
|
|
111
111
|
|
|
112
112
|
[part="row"] [part="track"] {
|
|
113
113
|
flex: 1 1 auto;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
:host([selection-mode="multiple"]) ::slotted(helix-toggle:state(pressed)) {
|
|
117
|
+
background-color: var(--toggle-group-indicator-color, var(--_indicator-surface));
|
|
118
|
+
border-radius: var(--_toggle-radius, var(--helix-radii-sm));
|
|
119
|
+
box-shadow: var(--helix-shadow-sm);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
:host([orientation="vertical"]) [part="track"] {
|
|
123
|
+
align-items: stretch;
|
|
124
|
+
flex-direction: column;
|
|
125
|
+
flex-wrap: nowrap;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
:host([orientation="vertical"]) ::slotted(helix-toggle) {
|
|
129
|
+
flex: 0 0 auto;
|
|
114
130
|
}`);
|
|
@@ -18,8 +18,11 @@ display: inline-flex;
|
|
|
18
18
|
|
|
19
19
|
[part="toolbar"] {
|
|
20
20
|
align-items: center;
|
|
21
|
+
background-color: var(--toolbar-background-color, transparent);
|
|
22
|
+
border-radius: var(--toolbar-radius, var(--helix-radii-none));
|
|
21
23
|
display: flex;
|
|
22
24
|
gap: var(--toolbar-gap, var(--helix-space-2xs));
|
|
25
|
+
padding: var(--toolbar-padding, var(--helix-space-none));
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
:host([orientation="vertical"]) [part="toolbar"] {
|
|
@@ -17,7 +17,10 @@ import type { CSSResultGroup } from 'lit';
|
|
|
17
17
|
*
|
|
18
18
|
* @csspart toolbar - The toolbar container.
|
|
19
19
|
*
|
|
20
|
+
* @cssproperty --toolbar-background-color - The fill behind the controls. Transparent unless set.
|
|
20
21
|
* @cssproperty --toolbar-gap - The space between controls.
|
|
22
|
+
* @cssproperty --toolbar-padding - The space between the toolbar's edge and its controls.
|
|
23
|
+
* @cssproperty --toolbar-radius - The corner radius of the toolbar's fill.
|
|
21
24
|
*/
|
|
22
25
|
export declare class HelixToolbar extends HelixHeadlessToolbar {
|
|
23
26
|
static styles: CSSResultGroup;
|
|
@@ -17,6 +17,14 @@ inline-size var(--helix-duration-normal) var(--helix-easing-standard);
|
|
|
17
17
|
z-index: var(--helix-layer-overlay);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
[part="backdrop"] {
|
|
21
|
+
background-color: var(--tour-scrim-color, var(--helix-color-overlay));
|
|
22
|
+
inset: 0;
|
|
23
|
+
pointer-events: none;
|
|
24
|
+
position: fixed;
|
|
25
|
+
z-index: var(--helix-layer-overlay);
|
|
26
|
+
}
|
|
27
|
+
|
|
20
28
|
@media print {
|
|
21
29
|
:host {
|
|
22
30
|
display: none;
|
|
@@ -31,6 +31,34 @@ outline: none;
|
|
|
31
31
|
display: none;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
:host([type="dialog"]) [part="bubble"] {
|
|
35
|
+
margin: auto;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
:host([type="floating"]) [part="bubble"] {
|
|
39
|
+
inset: auto;
|
|
40
|
+
inset-block-end: var(--helix-space-lg);
|
|
41
|
+
inset-inline-end: var(--helix-space-lg);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
::slotted([slot="heading"]) {
|
|
45
|
+
font-size: var(--helix-text-md);
|
|
46
|
+
font-weight: var(--helix-weight-semibold);
|
|
47
|
+
margin: var(--helix-space-none);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
::slotted([slot="description"]) {
|
|
51
|
+
color: var(--helix-color-foreground-muted);
|
|
52
|
+
font-size: var(--helix-text-sm);
|
|
53
|
+
margin: var(--helix-space-none);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
[part="progress"] {
|
|
57
|
+
color: var(--helix-color-foreground-muted);
|
|
58
|
+
font-size: var(--helix-text-sm);
|
|
59
|
+
font-variant-numeric: tabular-nums;
|
|
60
|
+
}
|
|
61
|
+
|
|
34
62
|
[part="content"] {
|
|
35
63
|
display: flex;
|
|
36
64
|
flex-direction: column;
|
|
@@ -75,4 +103,8 @@ border-left: var(--helix-border-thin) solid var(--helix-color-border);
|
|
|
75
103
|
[part="bubble"][data-placement^="left"] [part~="arrow"] {
|
|
76
104
|
border-right: var(--helix-border-thin) solid var(--helix-color-border);
|
|
77
105
|
border-top: var(--helix-border-thin) solid var(--helix-color-border);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host([type]) [part~="arrow"] {
|
|
109
|
+
display: none;
|
|
78
110
|
}`);
|
|
@@ -166,4 +166,76 @@ grid-template-rows: 0fr;
|
|
|
166
166
|
align-self: center;
|
|
167
167
|
margin-inline-start: var(--tree-chevron-gap, var(--helix-space-none));
|
|
168
168
|
order: var(--tree-chevron-order, 0);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
slot[name="chevron"]::slotted(*) {
|
|
172
|
+
align-self: center;
|
|
173
|
+
block-size: var(--_tree-chevron);
|
|
174
|
+
color: var(--helix-color-foreground-subtle);
|
|
175
|
+
flex: 0 0 auto;
|
|
176
|
+
inline-size: var(--_tree-chevron);
|
|
177
|
+
margin-inline-start: var(--tree-chevron-gap, var(--helix-space-none));
|
|
178
|
+
order: var(--tree-chevron-order, 0);
|
|
179
|
+
transform: rotate(-90deg);
|
|
180
|
+
transition: transform var(--helix-duration-fast) var(--helix-easing-standard);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
:host(:dir(rtl)) slot[name="chevron"]::slotted(*) {
|
|
184
|
+
transform: rotate(90deg);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
:host(:state(open)) slot[name="chevron"]::slotted(*) {
|
|
188
|
+
transform: rotate(0deg);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
[part~="checkbox"] {
|
|
192
|
+
align-self: center;
|
|
193
|
+
background-color: var(--tree-checkbox-background-color, var(--helix-color-background));
|
|
194
|
+
block-size: var(--tree-checkbox-size, var(--_tree-chevron));
|
|
195
|
+
border: var(--helix-border-thin) solid
|
|
196
|
+
var(--tree-checkbox-border-color, var(--helix-color-border));
|
|
197
|
+
border-radius: var(--helix-radii-sm);
|
|
198
|
+
color: var(--tree-checkbox-mark-color, var(--helix-color-foreground));
|
|
199
|
+
display: grid;
|
|
200
|
+
flex: 0 0 auto;
|
|
201
|
+
inline-size: var(--tree-checkbox-size, var(--_tree-chevron));
|
|
202
|
+
place-items: center;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
[part~="checkbox-checked"],
|
|
206
|
+
[part~="checkbox-mixed"] {
|
|
207
|
+
border-color: var(--tree-checkbox-border-color, var(--helix-color-foreground));
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
[part~="checkbox"] svg {
|
|
211
|
+
block-size: 80%;
|
|
212
|
+
inline-size: 80%;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
:host([disabled]) [part="row"] {
|
|
216
|
+
cursor: not-allowed;
|
|
217
|
+
opacity: 0.5;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
:host([disabled]) [part="row"]:hover {
|
|
221
|
+
background-color: transparent;
|
|
222
|
+
color: var(--helix-color-foreground-muted);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
:host(:state(loading)) [part="toggle"],
|
|
226
|
+
:host(:state(loading)) slot[name="chevron"]::slotted(*) {
|
|
227
|
+
animation: tree-loading var(--helix-duration-slow) var(--helix-easing-standard) infinite alternate;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
@keyframes tree-loading {
|
|
231
|
+
to {
|
|
232
|
+
opacity: 0.3;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
@media (prefers-reduced-motion: reduce) {
|
|
237
|
+
:host(:state(loading)) [part="toggle"],
|
|
238
|
+
:host(:state(loading)) slot[name="chevron"]::slotted(*) {
|
|
239
|
+
animation: none;
|
|
240
|
+
}
|
|
169
241
|
}`);
|
|
@@ -16,16 +16,26 @@ import type { CSSResultGroup } from 'lit';
|
|
|
16
16
|
* @documentation https://fusion.dev/helix/components/tree
|
|
17
17
|
*
|
|
18
18
|
* @slot - The item's label.
|
|
19
|
+
* @slot chevron - Replaces the expand and collapse mark of a branch. A slotted icon is sized and
|
|
20
|
+
* turned like the drawn one.
|
|
19
21
|
* @slot children - Nested items, which make this a branch.
|
|
20
22
|
*
|
|
21
23
|
* @event {HelixSelectEvent} helix-select - Fired when the item is chosen, and cancelable. Canceling it changes nothing.
|
|
22
24
|
*
|
|
25
|
+
* @csspart checkbox - The check mark's box, in a tree with `selection-mode="multiple"`.
|
|
26
|
+
* @csspart checkbox-checked - The check mark's box while the item is checked.
|
|
27
|
+
* @csspart checkbox-mixed - The check mark's box while some of a branch's items are checked.
|
|
23
28
|
* @csspart group - The container for nested items.
|
|
24
29
|
* @csspart item - The node, and the focus target.
|
|
25
30
|
* @csspart label - The label text.
|
|
26
31
|
* @csspart row - The clickable label row.
|
|
27
32
|
* @csspart toggle - The expand and collapse control.
|
|
28
33
|
*
|
|
34
|
+
* @cssproperty --tree-checkbox-background-color - Fill of the check mark's box.
|
|
35
|
+
* @cssproperty --tree-checkbox-border-color - Border of the check mark's box.
|
|
36
|
+
* @cssproperty --tree-checkbox-mark-color - Color of the check, and of the bar of a partly checked
|
|
37
|
+
* branch.
|
|
38
|
+
* @cssproperty --tree-checkbox-size - Size of the check mark's box. Follows the chevron's size.
|
|
29
39
|
* @cssproperty --tree-chevron-size - Size of the chevron, and the gutter a leaf reserves.
|
|
30
40
|
* @cssproperty --tree-gap - Space between rows.
|
|
31
41
|
* @cssproperty --tree-indent - Indent added per level.
|
|
@@ -4,13 +4,13 @@ align-items: center;
|
|
|
4
4
|
display: inline-flex;
|
|
5
5
|
font-size: var(--helix-text-sm);
|
|
6
6
|
font-weight: var(--helix-weight-medium);
|
|
7
|
-
gap: var(--helix-space-2xs);
|
|
7
|
+
gap: var(--trend-gap, var(--helix-space-2xs));
|
|
8
8
|
line-height: var(--helix-leading-tight);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
:host {
|
|
12
12
|
|
|
13
|
-
--_trend-color: var(--helix-color-foreground-muted);
|
|
13
|
+
--_trend-color: var(--trend-neutral-color, var(--helix-color-foreground-muted));
|
|
14
14
|
color: var(--trend-color, var(--_trend-color));
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -18,14 +18,21 @@ color: var(--trend-color, var(--_trend-color));
|
|
|
18
18
|
--icon-size: var(--trend-icon-size, 1em);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
slot[name="icon"]::slotted(*) {
|
|
22
|
+
--icon-size: var(--trend-icon-size, 1em);
|
|
23
|
+
|
|
24
|
+
block-size: var(--trend-icon-size, 1em);
|
|
25
|
+
inline-size: var(--trend-icon-size, 1em);
|
|
26
|
+
}
|
|
27
|
+
|
|
21
28
|
:host([direction="up"][good="up"]),
|
|
22
29
|
:host([direction="down"][good="down"]) {
|
|
23
|
-
--_trend-color: var(--helix-color-success);
|
|
30
|
+
--_trend-color: var(--trend-better-color, var(--helix-color-success));
|
|
24
31
|
}
|
|
25
32
|
|
|
26
33
|
:host([direction="up"][good="down"]),
|
|
27
34
|
:host([direction="down"][good="up"]) {
|
|
28
|
-
--_trend-color: var(--helix-color-danger);
|
|
35
|
+
--_trend-color: var(--trend-worse-color, var(--helix-color-danger));
|
|
29
36
|
}
|
|
30
37
|
|
|
31
38
|
[part="direction"] {
|
|
@@ -38,7 +45,7 @@ white-space: nowrap;
|
|
|
38
45
|
}
|
|
39
46
|
|
|
40
47
|
slot[name="label"] {
|
|
41
|
-
color: var(--helix-color-foreground-muted);
|
|
48
|
+
color: var(--trend-label-color, var(--helix-color-foreground-muted));
|
|
42
49
|
font-weight: var(--helix-weight-regular);
|
|
43
50
|
}
|
|
44
51
|
|