@fusion.dev/helix 0.145.0 → 0.146.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 +7841 -3357
- package/dist/accordion/item/accordion-item.css.js +12 -8
- package/dist/accordion/item/accordion-item.d.ts +8 -0
- package/dist/aura/root/aura-root.css.js +3 -0
- package/dist/aura/root/aura-root.d.ts +21 -9
- package/dist/aura/root/aura-root.js +23 -12
- package/dist/badge/root/badge-root.css.js +86 -16
- package/dist/badge/root/badge-root.d.ts +18 -0
- package/dist/badge/root/badge-root.js +6 -0
- package/dist/blockquote/root/blockquote-root.css.js +2 -2
- package/dist/blockquote/root/blockquote-root.d.ts +2 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.css.js +23 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +1 -0
- package/dist/button/root/button-root.css.js +4 -3
- package/dist/button/root/button-root.d.ts +2 -0
- package/dist/callout/root/callout-root.css.js +4 -3
- package/dist/callout/root/callout-root.d.ts +6 -2
- package/dist/card/root/card-root.d.ts +6 -0
- package/dist/chat/message/chat-message.css.js +0 -62
- package/dist/chat/message/chat-message.js +2 -1
- package/dist/chat/root/chat-root.css.js +7 -0
- package/dist/chat/root/chat-root.d.ts +2 -0
- package/dist/chat/root/chat-root.js +2 -1
- package/dist/chat/typing.css.d.ts +1 -0
- package/dist/chat/typing.css.js +62 -0
- package/dist/checkbox/root/checkbox-root.css.js +15 -0
- package/dist/checkbox/root/checkbox-root.d.ts +2 -1
- package/dist/code/root/code-root.css.js +2 -2
- package/dist/code/root/code-root.d.ts +2 -0
- package/dist/code-block/root/code-block-root.css.js +24 -0
- package/dist/code-block/root/code-block-root.d.ts +2 -1
- package/dist/color-input/root/color-input-root.css.js +10 -0
- package/dist/color-picker/root/color-picker-root.css.js +8 -0
- package/dist/color-picker/root/color-picker-root.d.ts +1 -0
- package/dist/copy-button/root/copy-button-root.css.js +15 -6
- package/dist/copy-button/root/copy-button-root.d.ts +7 -0
- package/dist/data-table/root/data-table-root.css.js +14 -7
- package/dist/data-table/root/data-table-root.d.ts +5 -0
- package/dist/date-input/root/date-input-root.css.js +10 -0
- package/dist/donut-chart/root/donut-chart-root.css.js +19 -0
- package/dist/donut-chart/root/donut-chart-root.d.ts +3 -0
- package/dist/drawer/root/drawer-root.css.js +47 -0
- package/dist/drawer/root/drawer-root.d.ts +5 -0
- package/dist/drilldown/item/drilldown-item.css.js +6 -6
- package/dist/drilldown/item/drilldown-item.d.ts +6 -0
- package/dist/drilldown/root/drilldown-root.css.js +25 -12
- package/dist/drilldown/root/drilldown-root.d.ts +10 -0
- package/dist/element-events.generated.js +15 -5
- package/dist/file-input/root/file-input-root.css.js +12 -11
- package/dist/file-input/root/file-input-root.d.ts +11 -0
- package/dist/filter-input/root/filter-input-root.css.js +6 -5
- package/dist/filter-input/root/filter-input-root.d.ts +5 -0
- package/dist/flex/root/flex-root.css.js +9 -0
- package/dist/flex/root/flex-root.d.ts +17 -6
- package/dist/graph/root/graph-root.css.js +11 -8
- package/dist/graph/root/graph-root.d.ts +8 -0
- package/dist/grid/root/grid-root.d.ts +4 -1
- package/dist/heatmap/root/heatmap-root.css.js +2 -1
- package/dist/icon-button/root/icon-button-root.css.js +68 -13
- package/dist/icon-button/root/icon-button-root.d.ts +4 -0
- package/dist/kbd/root/kbd-root.css.js +27 -0
- package/dist/kbd/root/kbd-root.d.ts +2 -0
- package/dist/lightbox/item/lightbox-item.css.js +4 -0
- package/dist/lightbox/root/lightbox-root.css.js +41 -0
- package/dist/line-chart/root/line-chart-root.css.js +16 -0
- package/dist/line-chart/root/line-chart-root.d.ts +2 -0
- package/dist/listbox/root/listbox-root.css.js +9 -0
- package/dist/listbox/root/listbox-root.d.ts +1 -0
- package/dist/loader/root/loader-root.css.js +3 -3
- package/dist/loader/root/loader-root.d.ts +2 -0
- package/dist/megamenu/root/megamenu-root.css.js +16 -13
- package/dist/megamenu/root/megamenu-root.d.ts +11 -0
- package/dist/menu/item/menu-item.css.js +25 -4
- package/dist/menu/item/menu-item.d.ts +1 -0
- package/dist/meter/root/meter-root.css.js +6 -3
- package/dist/meter/root/meter-root.d.ts +1 -0
- package/dist/navigation/root/navigation-root.d.ts +7 -0
- package/dist/notifications/root/notifications-root.css.js +6 -0
- package/dist/number-input/root/number-input-root.css.js +12 -9
- package/dist/number-input/root/number-input-root.d.ts +8 -0
- package/dist/object-inspector/root/object-inspector-root.css.js +2 -6
- package/dist/option/root/option-root.css.js +1 -1
- package/dist/orb/root/orb-root.d.ts +14 -6
- package/dist/orb/root/orb-root.js +16 -27
- package/dist/pin-input/root/pin-input-root.css.js +4 -4
- package/dist/pin-input/root/pin-input-root.d.ts +4 -0
- package/dist/progress/root/progress-root.css.js +4 -2
- package/dist/progress/root/progress-root.d.ts +1 -0
- package/dist/qr-code/root/qr-code-root.css.js +11 -0
- package/dist/quote/root/quote-root.css.js +3 -0
- package/dist/quote/root/quote-root.d.ts +2 -0
- package/dist/radio/root/radio-root.css.js +16 -0
- package/dist/radio/root/radio-root.d.ts +2 -1
- package/dist/sandbox/frame.d.ts +3 -2
- package/dist/sandbox/frame.js +19 -5
- package/dist/sandbox/index.d.ts +1 -0
- package/dist/sandbox/source/sandbox-source.css.js +70 -0
- package/dist/sandbox/source/sandbox-source.d.ts +34 -0
- package/dist/sandbox/source/sandbox-source.js +15 -0
- package/dist/sandbox/terminal/sandbox-terminal.d.ts +10 -2
- package/dist/sandbox/terminal/sandbox-terminal.js +18 -5
- package/dist/sandbox/tokens.d.ts +39 -0
- package/dist/sandbox/tokens.js +9 -0
- package/dist/scatter-chart/root/scatter-chart-root.css.js +9 -0
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +2 -0
- package/dist/skeleton/root/skeleton-root.css.js +11 -11
- package/dist/skeleton/root/skeleton-root.d.ts +1 -0
- package/dist/skip-link/root/skip-link-root.css.js +12 -0
- package/dist/skip-link/root/skip-link-root.d.ts +3 -3
- package/dist/slider/root/slider-root.css.js +26 -0
- package/dist/sparkline/root/sparkline-root.css.js +49 -0
- package/dist/sparkline/root/sparkline-root.d.ts +6 -0
- package/dist/sparkline/root/sparkline-root.js +2 -1
- package/dist/speed-dial/item/speed-dial-item.css.js +7 -6
- package/dist/speed-dial/item/speed-dial-item.d.ts +3 -0
- package/dist/speed-dial/root/speed-dial-root.css.js +10 -5
- package/dist/speed-dial/root/speed-dial-root.d.ts +7 -1
- package/dist/speed-dial/root/speed-dial-root.js +0 -1
- package/dist/stat/root/stat-root.css.js +4 -0
- package/dist/steps/root/steps-root.css.js +28 -0
- package/dist/steps/root/steps-root.d.ts +5 -0
- package/dist/tabs/root/tabs-root.css.js +2 -2
- package/dist/tabs/root/tabs-root.d.ts +4 -0
- package/dist/tabs/tab/tab.css.js +16 -9
- package/dist/tabs/tab/tab.d.ts +7 -0
- package/dist/tag/group/tag-group.css.js +6 -0
- package/dist/text/clamp.d.ts +5 -2
- package/dist/text/clamp.js +3 -1
- package/dist/text/root/text-root.css.js +0 -6
- package/dist/text/root/text-root.d.ts +2 -1
- package/dist/textarea/root/textarea-root.css.js +27 -0
- package/dist/time-input/root/time-input-root.css.js +12 -0
- package/dist/time-picker/root/time-picker-root.css.js +1 -1
- package/dist/toast/item/toast-item.css.js +10 -0
- package/dist/toast/root/toast-root.d.ts +1 -0
- package/dist/toast/root/toast-root.js +1 -0
- package/dist/toggle/group/toggle-group.css.js +10 -7
- package/dist/toggle/group/toggle-group.d.ts +6 -1
- package/dist/toggle/root/toggle-root.d.ts +6 -0
- package/dist/toolbar/root/toolbar-root.css.js +1 -0
- package/dist/toolbar/root/toolbar-root.d.ts +2 -0
- package/dist/tooltip/root/tooltip-root.css.js +5 -5
- package/dist/tooltip/root/tooltip-root.d.ts +4 -0
- package/dist/tree/item/tree-item.css.js +19 -9
- package/dist/tree/item/tree-item.d.ts +9 -0
- package/dist/trend/root/trend-root.css.js +3 -5
- package/dist/trend/root/trend-root.d.ts +2 -2
- package/dist/virtual-list/root/virtual-list-root.css.js +14 -0
- package/dist/virtual-list/root/virtual-list-root.d.ts +7 -1
- package/lint.json +1 -1
- package/package.json +9 -9
- package/types/jsx.d.ts +4289 -631
- package/types/vue.d.ts +1296 -127
|
@@ -7,10 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { customElement } from '@fusion.dev/helix-core';
|
|
8
8
|
import { HelixHeadlessChatMessage } from '@fusion.dev/helix-headless/chat';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
|
+
import { styles as typingStyles } from '../typing.css.js';
|
|
10
11
|
import { styles } from './chat-message.css.js';
|
|
11
12
|
let HelixChatMessage = class HelixChatMessage extends HelixHeadlessChatMessage {
|
|
12
13
|
static { this.tier = 'helix-'; }
|
|
13
|
-
static { this.styles = styles; }
|
|
14
|
+
static { this.styles = [typingStyles, styles]; }
|
|
14
15
|
};
|
|
15
16
|
__decorate([
|
|
16
17
|
property({ reflect: true })
|
|
@@ -109,6 +109,13 @@ padding-block-start: var(--helix-space-xs);
|
|
|
109
109
|
padding-inline: var(--chat-padding-inline, var(--helix-space-md));
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
[part="typing"] {
|
|
113
|
+
align-items: center;
|
|
114
|
+
color: var(--chat-typing-color, var(--helix-color-foreground-muted));
|
|
115
|
+
display: inline-flex;
|
|
116
|
+
gap: var(--chat-typing-gap, var(--helix-space-xs));
|
|
117
|
+
}
|
|
118
|
+
|
|
112
119
|
[part="composer"] {
|
|
113
120
|
padding-block: var(--helix-space-sm);
|
|
114
121
|
padding-inline: var(--chat-padding-inline, var(--helix-space-md));
|
|
@@ -36,6 +36,8 @@ import '../message/chat-message.js';
|
|
|
36
36
|
* @cssproperty --chat-resume-border-width - Width of the edge around the resume control, which sits over content.
|
|
37
37
|
* @cssproperty --chat-resume-shadow - Shadow under the resume control, which floats over the transcript.
|
|
38
38
|
* @cssproperty --chat-rule - The hairline under the header.
|
|
39
|
+
* @cssproperty --chat-typing-color - The color of the dots and the words that say who is typing.
|
|
40
|
+
* @cssproperty --chat-typing-gap - The space between the dots and the words that say who is typing.
|
|
39
41
|
*/
|
|
40
42
|
export declare class HelixChat extends HelixHeadlessChat {
|
|
41
43
|
static tier: string;
|
|
@@ -8,12 +8,13 @@ import { customElement } from '@fusion.dev/helix-core';
|
|
|
8
8
|
import { HelixHeadlessChat } from '@fusion.dev/helix-headless/chat';
|
|
9
9
|
import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
|
|
10
10
|
import { styles as liveStyles } from '../../shared/live/live.css.js';
|
|
11
|
+
import { styles as typingStyles } from '../typing.css.js';
|
|
11
12
|
import { styles } from './chat-root.css.js';
|
|
12
13
|
import '../composer/chat-composer.js';
|
|
13
14
|
import '../message/chat-message.js';
|
|
14
15
|
let HelixChat = class HelixChat extends HelixHeadlessChat {
|
|
15
16
|
static { this.tier = 'helix-'; }
|
|
16
|
-
static { this.styles = [liveStyles, collectionStateStyles, styles]; }
|
|
17
|
+
static { this.styles = [liveStyles, collectionStateStyles, typingStyles, styles]; }
|
|
17
18
|
};
|
|
18
19
|
HelixChat = __decorate([
|
|
19
20
|
customElement('helix-chat')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
+
export const styles = createSheet(`[part="indicator"] {
|
|
3
|
+
|
|
4
|
+
--_chat-typing-cycle: 1.2s;
|
|
5
|
+
|
|
6
|
+
animation: helix-chat-typing var(--_chat-typing-cycle) infinite ease-in-out;
|
|
7
|
+
background-image:
|
|
8
|
+
radial-gradient(circle closest-side, currentColor 90%, transparent),
|
|
9
|
+
radial-gradient(circle closest-side, currentColor 90%, transparent),
|
|
10
|
+
radial-gradient(circle closest-side, currentColor 90%, transparent);
|
|
11
|
+
background-position:
|
|
12
|
+
0% 50%,
|
|
13
|
+
50% 50%,
|
|
14
|
+
100% 50%;
|
|
15
|
+
background-repeat: no-repeat;
|
|
16
|
+
background-size:
|
|
17
|
+
20% 30%,
|
|
18
|
+
20% 30%,
|
|
19
|
+
20% 30%;
|
|
20
|
+
block-size: 1lh;
|
|
21
|
+
display: block;
|
|
22
|
+
inline-size: 1.75em;
|
|
23
|
+
opacity: 0.7;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@keyframes helix-chat-typing {
|
|
27
|
+
0%,
|
|
28
|
+
60%,
|
|
29
|
+
100% {
|
|
30
|
+
background-position:
|
|
31
|
+
0% 50%,
|
|
32
|
+
50% 50%,
|
|
33
|
+
100% 50%;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
20% {
|
|
37
|
+
background-position:
|
|
38
|
+
0% 10%,
|
|
39
|
+
50% 50%,
|
|
40
|
+
100% 50%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
33% {
|
|
44
|
+
background-position:
|
|
45
|
+
0% 50%,
|
|
46
|
+
50% 10%,
|
|
47
|
+
100% 50%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
46% {
|
|
51
|
+
background-position:
|
|
52
|
+
0% 50%,
|
|
53
|
+
50% 50%,
|
|
54
|
+
100% 10%;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@media (prefers-reduced-motion: reduce) {
|
|
59
|
+
[part="indicator"] {
|
|
60
|
+
animation: none;
|
|
61
|
+
}
|
|
62
|
+
}`);
|
|
@@ -86,6 +86,21 @@ scale: 1;
|
|
|
86
86
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M7 12h10'/%3E%3C/svg%3E");
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
:host(:state(has-check)) [part~="mark"]:not([part~="mark-dash"]),
|
|
90
|
+
:host(:state(has-dash)) [part~="mark-dash"] {
|
|
91
|
+
background-color: transparent;
|
|
92
|
+
color: var(--checkbox-mark-color, var(--helix-color-foreground));
|
|
93
|
+
display: grid;
|
|
94
|
+
mask-image: none;
|
|
95
|
+
place-items: center;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
slot[name="check"]::slotted(*),
|
|
99
|
+
slot[name="dash"]::slotted(*) {
|
|
100
|
+
block-size: var(--checkbox-icon-size, 100%);
|
|
101
|
+
inline-size: var(--checkbox-icon-size, 100%);
|
|
102
|
+
}
|
|
103
|
+
|
|
89
104
|
[part="control"]:focus-visible {
|
|
90
105
|
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
91
106
|
outline-offset: var(--helix-size-focus-offset);
|
|
@@ -24,7 +24,8 @@ import type { CSSResultGroup } from 'lit';
|
|
|
24
24
|
* @cssproperty --checkbox-card-border-color - The border color of the card.
|
|
25
25
|
* @cssproperty --checkbox-card-padding - The padding of the card.
|
|
26
26
|
* @cssproperty --checkbox-checked-color - The border color of a checked box when `--checkbox-border-color` is not set.
|
|
27
|
-
* @cssproperty --checkbox-
|
|
27
|
+
* @cssproperty --checkbox-icon-size - The width and height of an icon slotted into `check` or `dash`. It fills the box by default.
|
|
28
|
+
* @cssproperty --checkbox-mark-color - The color of the check mark and the dash, and of an icon slotted into `check` or `dash`.
|
|
28
29
|
* @cssproperty --checkbox-size - The width and height of the box.
|
|
29
30
|
*/
|
|
30
31
|
export declare class HelixCheckbox extends HelixHeadlessCheckbox {
|
|
@@ -9,13 +9,13 @@ background-color: var(
|
|
|
9
9
|
--code-background-color,
|
|
10
10
|
color-mix(in oklab, var(--helix-color-foreground) 6%, transparent)
|
|
11
11
|
);
|
|
12
|
-
border-radius: var(--helix-radii-sm);
|
|
12
|
+
border-radius: var(--code-radius, var(--helix-radii-sm));
|
|
13
13
|
|
|
14
14
|
color: var(
|
|
15
15
|
--code-foreground-color,
|
|
16
16
|
color-mix(in oklab, var(--helix-color-foreground) 30%, var(--helix-color-foreground-muted))
|
|
17
17
|
);
|
|
18
|
-
font-family: var(--helix-font-mono);
|
|
18
|
+
font-family: var(--code-font-family, var(--helix-font-mono));
|
|
19
19
|
|
|
20
20
|
font-size: var(--code-size, calc(var(--helix-text-sm) / var(--helix-text-md) * 1em));
|
|
21
21
|
padding-block: var(--helix-space-none);
|
|
@@ -15,10 +15,12 @@ import type { CSSResultGroup } from 'lit';
|
|
|
15
15
|
*
|
|
16
16
|
* @cssproperty --code-background-color - Fill behind the fragment. Defaults to the
|
|
17
17
|
* foreground color at 6%, which looks the same on a light page and a dark one.
|
|
18
|
+
* @cssproperty --code-font-family - The fragment's typeface. Defaults to the mono face.
|
|
18
19
|
* @cssproperty --code-foreground-color - Color of the fragment's text. Defaults to the
|
|
19
20
|
* foreground color mixed toward `foreground-muted`.
|
|
20
21
|
* @cssproperty --code-padding - Space either side of the fragment. Defaults to half of
|
|
21
22
|
* `space-2xs`, so a bracket next to the fragment sits close to it.
|
|
23
|
+
* @cssproperty --code-radius - Corner radius of the wash. Defaults to `radii-sm`.
|
|
22
24
|
* @cssproperty --code-size - The fragment's size. Defaults to `text-sm`.
|
|
23
25
|
*/
|
|
24
26
|
export declare class HelixCode extends HelixHeadlessCode {
|
|
@@ -106,6 +106,30 @@ max-block-size: var(--code-block-max-block-size, none);
|
|
|
106
106
|
overflow-x: auto;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
:host(:state(expanded)) [part="code"] {
|
|
110
|
+
max-block-size: none;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
[part="expand"] {
|
|
114
|
+
all: unset;
|
|
115
|
+
|
|
116
|
+
box-sizing: border-box;
|
|
117
|
+
border-radius: var(--helix-radii-sm);
|
|
118
|
+
color: var(--code-block-expand-color, var(--helix-color-foreground-muted));
|
|
119
|
+
cursor: pointer;
|
|
120
|
+
font-size: var(--helix-text-sm);
|
|
121
|
+
padding: var(--helix-space-xs);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
[part="expand"]:hover {
|
|
125
|
+
color: var(--helix-color-foreground);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
[part="expand"]:focus-visible {
|
|
129
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
130
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
131
|
+
}
|
|
132
|
+
|
|
109
133
|
:host([wrap]:not([diff], [line-numbers])) [part="code"] {
|
|
110
134
|
overflow-wrap: anywhere;
|
|
111
135
|
white-space: pre-wrap;
|
|
@@ -28,9 +28,10 @@ import '../../copy-button/index.js';
|
|
|
28
28
|
* @cssproperty --code-block-backdrop - A backdrop filter for the block and its header, for a translucent background.
|
|
29
29
|
* @cssproperty --code-block-background-color - The background behind the code. Set it for a block that sits on a surface other than the page background.
|
|
30
30
|
* @cssproperty --code-block-border-color - The line around the block and its header.
|
|
31
|
+
* @cssproperty --code-block-expand-color - The color of the button under a capped block that shows every line.
|
|
31
32
|
* @cssproperty --code-block-gutter-color - The color of the line numbers.
|
|
32
33
|
* @cssproperty --code-block-header-background-color - The background behind the name. The default is `surface-raised`.
|
|
33
|
-
* @cssproperty --code-block-max-block-size - The tallest the code grows before it scrolls. The default is no limit.
|
|
34
|
+
* @cssproperty --code-block-max-block-size - The tallest the code grows before it scrolls, or until `expandable`'s button shows every line. The default is no limit.
|
|
34
35
|
* @cssproperty --code-block-radius - The corner radius of the header's top and the block's bottom, which form one shape.
|
|
35
36
|
*/
|
|
36
37
|
export declare class HelixCodeBlock extends HelixHeadlessCodeBlock {
|
|
@@ -71,6 +71,16 @@ display: block;
|
|
|
71
71
|
padding: var(--helix-space-sm);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
::slotted([slot="panel-header"]) {
|
|
75
|
+
display: block;
|
|
76
|
+
margin: var(--helix-space-sm) var(--helix-space-sm) var(--helix-space-none);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
::slotted([slot="panel-footer"]) {
|
|
80
|
+
display: block;
|
|
81
|
+
margin: var(--helix-space-none) var(--helix-space-sm) var(--helix-space-sm);
|
|
82
|
+
}
|
|
83
|
+
|
|
74
84
|
@media (prefers-reduced-motion: reduce) {
|
|
75
85
|
[part="field"] {
|
|
76
86
|
transition: none;
|
|
@@ -337,6 +337,14 @@ inline-size: var(--color-picker-swatch-size, var(--helix-size-icon-loose));
|
|
|
337
337
|
padding: var(--helix-space-none);
|
|
338
338
|
}
|
|
339
339
|
|
|
340
|
+
[part="feedback"] {
|
|
341
|
+
color: var(--color-picker-feedback-color, var(--helix-color-danger));
|
|
342
|
+
font-family: var(--helix-font-sans);
|
|
343
|
+
font-size: var(--helix-text-sm);
|
|
344
|
+
margin: var(--helix-space-sm) var(--helix-space-none) var(--helix-space-none);
|
|
345
|
+
padding-inline: var(--color-picker-padding, var(--helix-space-none));
|
|
346
|
+
}
|
|
347
|
+
|
|
340
348
|
@media (prefers-reduced-motion: reduce) {
|
|
341
349
|
|
|
342
350
|
[part="sample"] {
|
|
@@ -34,6 +34,7 @@ import '../../slider/index.js';
|
|
|
34
34
|
* @aliases Color, ColorArea, Swatch picker
|
|
35
35
|
* @documentation https://fusion.dev/helix/components/color-picker
|
|
36
36
|
*
|
|
37
|
+
* @cssproperty --color-picker-feedback-color - The color of the message under the picker, while `feedback` is set.
|
|
37
38
|
* @cssproperty --color-picker-field-label-color - The color of the names above the channel number fields, in `channel-fields`.
|
|
38
39
|
* @cssproperty --color-picker-fields-gap - The space between the channel number fields, in `channel-fields`.
|
|
39
40
|
* @cssproperty --color-picker-grid-radius - The corner radius of the square.
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(
|
|
2
|
+
export const styles = createSheet(`:host {
|
|
3
|
+
--_icon-button-ink: var(--copy-button-color, var(--helix-color-foreground-muted));
|
|
4
|
+
--_icon-button-ink-hover: var(
|
|
5
|
+
--copy-button-color-hover,
|
|
6
|
+
var(--copy-button-color, var(--helix-color-foreground))
|
|
7
|
+
);
|
|
8
|
+
--_icon-button-size: var(--copy-button-size, var(--icon-button-size, var(--helix-size-control)));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[part="button"] {
|
|
3
12
|
display: inline-grid;
|
|
4
13
|
place-items: center;
|
|
5
14
|
}
|
|
@@ -13,21 +22,21 @@ display: none;
|
|
|
13
22
|
}
|
|
14
23
|
|
|
15
24
|
[part="button"][data-copied] {
|
|
16
|
-
color: var(--helix-color-success);
|
|
25
|
+
color: var(--copy-button-success-color, var(--helix-color-success));
|
|
17
26
|
}
|
|
18
27
|
|
|
19
28
|
:host(:not(:disabled)) [part="button"][data-copied]:hover {
|
|
20
|
-
color: var(--helix-color-success);
|
|
29
|
+
color: var(--copy-button-success-color, var(--helix-color-success));
|
|
21
30
|
}
|
|
22
31
|
|
|
23
32
|
[part="button"][data-failed],
|
|
24
33
|
:host(:not(:disabled)) [part="button"][data-failed]:hover {
|
|
25
|
-
color: var(--helix-color-danger);
|
|
34
|
+
color: var(--copy-button-error-color, var(--helix-color-danger));
|
|
26
35
|
}
|
|
27
36
|
|
|
28
37
|
slot > svg {
|
|
29
|
-
block-size: var(--helix-size-icon-tight);
|
|
30
|
-
inline-size: var(--helix-size-icon-tight);
|
|
38
|
+
block-size: var(--copy-button-icon-size, var(--helix-size-icon-tight));
|
|
39
|
+
inline-size: var(--copy-button-icon-size, var(--helix-size-icon-tight));
|
|
31
40
|
}
|
|
32
41
|
|
|
33
42
|
@media print {
|
|
@@ -14,6 +14,13 @@ declare const HelixCopyButton_base: (new (...args: any[]) => import("../../share
|
|
|
14
14
|
* @status stable
|
|
15
15
|
* @category actions
|
|
16
16
|
* @documentation https://fusion.dev/helix/components/copy-button
|
|
17
|
+
*
|
|
18
|
+
* @cssproperty --copy-button-color - The icon's color at rest. A `tone` keeps its own.
|
|
19
|
+
* @cssproperty --copy-button-color-hover - The icon's color under the pointer. Without it, `--copy-button-color` also applies on hover.
|
|
20
|
+
* @cssproperty --copy-button-error-color - The cross's color after a copy that put nothing on the clipboard.
|
|
21
|
+
* @cssproperty --copy-button-icon-size - The width and height of the clipboard, check, and cross icons drawn by default.
|
|
22
|
+
* @cssproperty --copy-button-size - Edge length of the button. Without it, `--icon-button-size` applies.
|
|
23
|
+
* @cssproperty --copy-button-success-color - The check mark's color after a copy.
|
|
17
24
|
*/
|
|
18
25
|
export declare class HelixCopyButton extends HelixCopyButton_base {
|
|
19
26
|
static tier: string;
|
|
@@ -144,7 +144,10 @@ grid-column: 1 / -1;
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
:host([child-field]) [part~="cell-header"] {
|
|
147
|
-
--_data-table-gutter: calc(
|
|
147
|
+
--_data-table-gutter: calc(
|
|
148
|
+
var(--data-table-toggle-size, var(--helix-size-icon-tight)) +
|
|
149
|
+
var(--helix-space-2xs)
|
|
150
|
+
);
|
|
148
151
|
padding-inline-start: calc(
|
|
149
152
|
(var(--data-table-level, 1) - 1) *
|
|
150
153
|
var(--data-table-indent, var(--_data-table-gutter))
|
|
@@ -162,12 +165,12 @@ var(--_data-table-gutter)
|
|
|
162
165
|
[part~="toggle"] {
|
|
163
166
|
align-items: center;
|
|
164
167
|
background: none;
|
|
165
|
-
block-size: var(--helix-size-icon-tight);
|
|
168
|
+
block-size: var(--data-table-toggle-size, var(--helix-size-icon-tight));
|
|
166
169
|
border: none;
|
|
167
|
-
color: var(--helix-color-foreground-muted);
|
|
170
|
+
color: var(--data-table-toggle-color, var(--helix-color-foreground-muted));
|
|
168
171
|
cursor: pointer;
|
|
169
172
|
display: inline-flex;
|
|
170
|
-
inline-size: var(--helix-size-icon-tight);
|
|
173
|
+
inline-size: var(--data-table-toggle-size, var(--helix-size-icon-tight));
|
|
171
174
|
justify-content: center;
|
|
172
175
|
margin-inline-end: var(--helix-space-2xs);
|
|
173
176
|
padding: 0;
|
|
@@ -191,8 +194,9 @@ padding-block: var(--data-table-padding-block, var(--helix-space-sm));
|
|
|
191
194
|
|
|
192
195
|
[part="more-button"] {
|
|
193
196
|
background: none;
|
|
194
|
-
border: var(--helix-border-thin) solid
|
|
195
|
-
border-
|
|
197
|
+
border: var(--helix-border-thin) solid
|
|
198
|
+
var(--data-table-more-border-color, var(--helix-color-border));
|
|
199
|
+
border-radius: var(--data-table-more-radius, var(--helix-radii-sm));
|
|
196
200
|
color: var(--data-table-color, var(--helix-color-foreground));
|
|
197
201
|
cursor: pointer;
|
|
198
202
|
font-family: var(--helix-font-sans);
|
|
@@ -202,7 +206,10 @@ padding-inline: var(--helix-space-sm);
|
|
|
202
206
|
}
|
|
203
207
|
|
|
204
208
|
[part="more-button"]:hover {
|
|
205
|
-
background-color: var(
|
|
209
|
+
background-color: var(
|
|
210
|
+
--data-table-more-hover-background-color,
|
|
211
|
+
var(--helix-color-surface-raised)
|
|
212
|
+
);
|
|
206
213
|
}
|
|
207
214
|
|
|
208
215
|
:host([windowed]) [part="table"] {
|
|
@@ -45,12 +45,17 @@ import '../../table/index.js';
|
|
|
45
45
|
* It is opaque, because rows scroll under the sticky heading. Unset otherwise.
|
|
46
46
|
* @cssproperty --data-table-heading-color - The text color of a heading.
|
|
47
47
|
* @cssproperty --data-table-indent - How far a tree grid's row header steps in for each level. It defaults to the width of the mark that opens a row.
|
|
48
|
+
* @cssproperty --data-table-more-border-color - The color of the edge around the button in the `load-more` row.
|
|
49
|
+
* @cssproperty --data-table-more-hover-background-color - The fill behind the button in the `load-more` row while the pointer is over it.
|
|
50
|
+
* @cssproperty --data-table-more-radius - The corner radius of the button in the `load-more` row.
|
|
48
51
|
* @cssproperty --data-table-padding-block - The space above and below a cell's content.
|
|
49
52
|
* @cssproperty --data-table-padding-inline - The space on either side of a cell's content.
|
|
50
53
|
* @cssproperty --data-table-rule-color - The color of the line between rows. It takes a
|
|
51
54
|
* color only, because it fills the color in a border shorthand, and a full border value
|
|
52
55
|
* makes the rule invalid. It is drawn on the cells, because the row is `display: contents`.
|
|
53
56
|
* @cssproperty --data-table-text - The font size of headings and cells.
|
|
57
|
+
* @cssproperty --data-table-toggle-color - The color of the mark that opens and closes a row of a tree grid.
|
|
58
|
+
* @cssproperty --data-table-toggle-size - The size of the mark that opens and closes a row of a tree grid, and of the room a row with no children keeps for it.
|
|
54
59
|
*/
|
|
55
60
|
export declare class HelixDataTable extends HelixHeadlessDataTable {
|
|
56
61
|
static tier: string;
|
|
@@ -51,6 +51,16 @@ padding: var(--helix-space-sm);
|
|
|
51
51
|
position: absolute;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
::slotted([slot="panel-header"]) {
|
|
55
|
+
display: block;
|
|
56
|
+
margin-block-end: var(--helix-space-sm);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
::slotted([slot="panel-footer"]) {
|
|
60
|
+
display: block;
|
|
61
|
+
margin-block-start: var(--helix-space-sm);
|
|
62
|
+
}
|
|
63
|
+
|
|
54
64
|
:host(:disabled) [part="field"] {
|
|
55
65
|
color: var(--helix-color-foreground-subtle);
|
|
56
66
|
}
|
|
@@ -185,4 +185,23 @@ margin: var(--helix-space-none);
|
|
|
185
185
|
overflow: hidden;
|
|
186
186
|
position: absolute;
|
|
187
187
|
white-space: nowrap;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
[part="slice-label"] {
|
|
191
|
+
background-color: var(--donut-chart-slice-label-background-color, var(--helix-color-surface));
|
|
192
|
+
border-radius: var(--helix-radii-sm);
|
|
193
|
+
color: var(--donut-chart-slice-label-color, var(--helix-color-foreground));
|
|
194
|
+
font-family: var(--helix-font-sans);
|
|
195
|
+
font-size: var(--donut-chart-slice-label-font-size, var(--helix-text-xs));
|
|
196
|
+
font-variant-numeric: tabular-nums;
|
|
197
|
+
line-height: 1.4;
|
|
198
|
+
padding: 0 var(--helix-space-2xs);
|
|
199
|
+
pointer-events: none;
|
|
200
|
+
position: absolute;
|
|
201
|
+
translate: -50% -50%;
|
|
202
|
+
white-space: nowrap;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
:host([sweep="half"]:dir(rtl)) [part="slice-label"] {
|
|
206
|
+
translate: 50% -50%;
|
|
188
207
|
}`);
|
|
@@ -28,6 +28,9 @@ import '../../tooltip/index.js';
|
|
|
28
28
|
*
|
|
29
29
|
* @cssproperty --donut-chart-edge-stroke - Thickness of the slice boundary under `outlined`.
|
|
30
30
|
* @cssproperty --donut-chart-size - Width and height of the ring.
|
|
31
|
+
* @cssproperty --donut-chart-slice-label-background-color - Plate behind a slice's share, under `slice-labels`.
|
|
32
|
+
* @cssproperty --donut-chart-slice-label-color - Color of a slice's share, under `slice-labels`.
|
|
33
|
+
* @cssproperty --donut-chart-slice-label-font-size - Size of a slice's share, under `slice-labels`.
|
|
31
34
|
* @cssproperty --donut-chart-track-color - Color of the ring under the slices.
|
|
32
35
|
*/
|
|
33
36
|
export declare class HelixDonutChart extends HelixHeadlessDonutChart {
|
|
@@ -195,6 +195,53 @@ overflow-y: auto;
|
|
|
195
195
|
padding-inline: var(--helix-size-focus-reach);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
[part="dismiss"] {
|
|
199
|
+
all: unset;
|
|
200
|
+
|
|
201
|
+
box-sizing: border-box;
|
|
202
|
+
position: absolute;
|
|
203
|
+
inset-block-start: calc(
|
|
204
|
+
var(--drawer-padding-block-start, var(--drawer-padding, var(--helix-space-2xl))) +
|
|
205
|
+
(var(--helix-text-lg) * var(--helix-leading-tight) - var(--helix-size-control-sm)) /
|
|
206
|
+
2
|
|
207
|
+
);
|
|
208
|
+
inset-inline-end: var(--helix-space-md);
|
|
209
|
+
block-size: var(--helix-size-control-sm);
|
|
210
|
+
border-radius: var(--helix-radii-sm);
|
|
211
|
+
color: var(--helix-color-foreground-muted);
|
|
212
|
+
cursor: pointer;
|
|
213
|
+
display: inline-flex;
|
|
214
|
+
inline-size: var(--helix-size-control-sm);
|
|
215
|
+
place-content: center;
|
|
216
|
+
place-items: center;
|
|
217
|
+
transition: color var(--helix-duration-fast) var(--helix-easing-standard);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
[part="dismiss"] svg {
|
|
221
|
+
block-size: var(--helix-size-icon-sm);
|
|
222
|
+
inline-size: var(--helix-size-icon-sm);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
[part="dismiss"]:hover {
|
|
226
|
+
background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
|
|
227
|
+
color: var(--helix-color-foreground);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
[part="dismiss"]:focus-visible {
|
|
231
|
+
outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
|
|
232
|
+
outline-offset: var(--helix-size-focus-offset);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
:host([dismissible]) ::slotted([slot="header"]) {
|
|
236
|
+
padding-inline-end: calc(var(--helix-size-control-sm) + var(--helix-space-xs));
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
@media (prefers-reduced-motion: reduce) {
|
|
240
|
+
[part="dismiss"] {
|
|
241
|
+
transition: none;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
198
245
|
@media print {
|
|
199
246
|
:host {
|
|
200
247
|
display: none;
|
|
@@ -15,9 +15,14 @@ import type { CSSResultGroup } from 'lit';
|
|
|
15
15
|
* @documentation https://fusion.dev/helix/components/drawer
|
|
16
16
|
*
|
|
17
17
|
* @slot - The drawer's content.
|
|
18
|
+
* @slot dismiss-icon - Replaces the glyph inside the close control.
|
|
19
|
+
* @slot footer - Content pinned below the scrolling area, such as the drawer's actions.
|
|
18
20
|
* @slot header - Content pinned above the scrolling area.
|
|
19
21
|
*
|
|
20
22
|
* @csspart content - The scrolling content region.
|
|
23
|
+
* @csspart dismiss - The close control, drawn when the drawer is `dismissible`, in the corner by the title.
|
|
24
|
+
* @csspart dismiss-mark - The glyph on the close control, where none is slotted.
|
|
25
|
+
* @csspart footer - The footer region.
|
|
21
26
|
* @csspart header - The header region.
|
|
22
27
|
* @csspart panel - The sliding panel.
|
|
23
28
|
*
|
|
@@ -6,17 +6,17 @@ display: block;
|
|
|
6
6
|
[part="item"] {
|
|
7
7
|
all: unset;
|
|
8
8
|
align-items: center;
|
|
9
|
-
block-size: var(--helix-size-control-tight);
|
|
9
|
+
block-size: var(--drilldown-item-block-size, var(--helix-size-control-tight));
|
|
10
10
|
box-sizing: border-box;
|
|
11
11
|
inline-size: 100%;
|
|
12
|
-
color: var(--helix-color-foreground);
|
|
12
|
+
color: var(--drilldown-item-color, var(--helix-color-foreground));
|
|
13
13
|
cursor: pointer;
|
|
14
14
|
display: flex;
|
|
15
15
|
font-family: var(--helix-font-sans);
|
|
16
|
-
font-size: var(--helix-text-sm);
|
|
16
|
+
font-size: var(--drilldown-item-font-size, var(--helix-text-sm));
|
|
17
17
|
gap: var(--helix-space-xs);
|
|
18
18
|
|
|
19
|
-
padding-inline: var(--helix-space-sm);
|
|
19
|
+
padding-inline: var(--drilldown-item-padding-inline, var(--helix-space-sm));
|
|
20
20
|
user-select: none;
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ white-space: nowrap;
|
|
|
30
30
|
[part="mark"],
|
|
31
31
|
slot[name="chevron"]::slotted(*) {
|
|
32
32
|
block-size: var(--helix-size-icon-tight);
|
|
33
|
-
color: var(--helix-color-foreground-subtle);
|
|
33
|
+
color: var(--drilldown-item-mark-color, var(--helix-color-foreground-subtle));
|
|
34
34
|
flex: none;
|
|
35
35
|
inline-size: var(--helix-size-icon-tight);
|
|
36
36
|
}
|
|
@@ -50,5 +50,5 @@ outline-offset: calc(var(--helix-size-focus-offset) * -1);
|
|
|
50
50
|
|
|
51
51
|
:host([disabled]) [part="item"] {
|
|
52
52
|
cursor: default;
|
|
53
|
-
opacity: 0.5;
|
|
53
|
+
opacity: var(--drilldown-item-disabled-opacity, 0.5);
|
|
54
54
|
}`);
|
|
@@ -12,7 +12,13 @@ import type { CSSResultGroup } from 'lit';
|
|
|
12
12
|
* @aliases Panel item, Drill row
|
|
13
13
|
* @documentation https://fusion.dev/helix/components/drilldown
|
|
14
14
|
*
|
|
15
|
+
* @cssproperty --drilldown-item-block-size - Height of a row.
|
|
16
|
+
* @cssproperty --drilldown-item-color - Color of a row's words.
|
|
17
|
+
* @cssproperty --drilldown-item-disabled-opacity - How faint a disabled row is drawn.
|
|
18
|
+
* @cssproperty --drilldown-item-font-size - Size of a row's words.
|
|
15
19
|
* @cssproperty --drilldown-item-hover-color - Fill when a row is under the pointer.
|
|
20
|
+
* @cssproperty --drilldown-item-mark-color - Color of the caret on a row that opens a page.
|
|
21
|
+
* @cssproperty --drilldown-item-padding-inline - Space at either end of a row.
|
|
16
22
|
*/
|
|
17
23
|
export declare class HelixDrilldownItem extends HelixHeadlessDrilldownItem {
|
|
18
24
|
static styles: CSSResultGroup;
|