@fusion.dev/helix 0.148.0 → 0.149.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 +7471 -982
- package/dist/chat/root/chat-root.css.js +3 -1
- package/dist/chat/root/chat-root.d.ts +3 -0
- package/dist/data-table/root/data-table-root.css.js +20 -8
- package/dist/data-table/root/data-table-root.d.ts +12 -0
- package/dist/element-events.generated.js +32 -4
- package/dist/list/item/list-item.css.js +4 -2
- package/dist/list/item/list-item.d.ts +4 -0
- package/dist/list/root/list-root.css.js +2 -1
- package/dist/list/root/list-root.d.ts +6 -0
- package/dist/list/root/list-root.js +2 -1
- package/dist/listbox/reorder/index.d.ts +1 -0
- package/dist/listbox/reorder/index.js +6 -0
- package/dist/listbox/reorder/listbox-drag-preview.css.d.ts +1 -0
- package/dist/listbox/reorder/listbox-drag-preview.css.js +3 -0
- package/dist/listbox/reorder/listbox-reorder.css.d.ts +1 -0
- package/dist/listbox/reorder/listbox-reorder.css.js +4 -0
- package/dist/listbox/root/listbox-root.d.ts +9 -0
- package/dist/notifications/notification/notification.css.js +8 -2
- package/dist/notifications/notification/notification.d.ts +13 -5
- package/dist/notifications/notification/notification.js +13 -0
- package/dist/notifications/root/notifications-root.css.js +3 -1
- package/dist/notifications/root/notifications-root.d.ts +17 -2
- package/dist/notifications/root/notifications-root.js +13 -1
- package/dist/orb/root/orb-root.d.ts +5 -0
- package/dist/orb/root/orb-root.js +13 -12
- package/dist/sandbox/preview/sandbox-preview.d.ts +5 -0
- package/dist/sandbox/preview/sandbox-preview.js +11 -8
- package/dist/sandbox/root/sandbox-root.d.ts +8 -3
- package/dist/sandbox/root/sandbox-root.js +7 -3
- package/dist/sandbox/source/sandbox-source.d.ts +5 -0
- package/dist/sandbox/source/sandbox-source.js +4 -1
- package/dist/sandbox/status-bar/sandbox-status-bar.d.ts +10 -0
- package/dist/sandbox/status-bar/sandbox-status-bar.js +14 -2
- package/dist/sandbox/terminal/sandbox-terminal.d.ts +11 -0
- package/dist/sandbox/terminal/sandbox-terminal.js +22 -11
- package/dist/scroll-area/root/scroll-area-root.css.js +5 -4
- package/dist/scroll-area/root/scroll-area-root.d.ts +3 -3
- package/dist/table/root/table-root.css.js +3 -1
- package/dist/table/root/table-root.d.ts +8 -1
- package/dist/table/row/table-row.css.js +9 -1
- package/dist/table/row/table-row.d.ts +5 -0
- package/dist/tooltip/root/tooltip-root.d.ts +9 -0
- package/dist/tree/item/tree-item.css.js +3 -1
- package/dist/tree/item/tree-item.d.ts +6 -0
- package/dist/tree/root/tree-root.css.js +2 -1
- package/dist/tree/root/tree-root.d.ts +8 -1
- package/dist/virtual-list/root/virtual-list-root.css.js +6 -1
- package/dist/virtual-list/root/virtual-list-root.d.ts +3 -0
- package/lint.json +1 -1
- package/package.json +8 -7
- package/types/jsx.d.ts +4137 -1515
- package/types/vue.d.ts +1409 -501
- package/types/words.d.ts +2555 -0
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var HelixSandboxPreview_1;
|
|
8
|
-
import { customElement, DelayController, HelixConsoleEvent, HelixElement, HelixResizeEvent, } from '@fusion.dev/helix-core';
|
|
8
|
+
import { customElement, DelayController, HelixConsoleEvent, HelixElement, HelixResizeEvent, words, } from '@fusion.dev/helix-core';
|
|
9
9
|
const SETTLE = 120;
|
|
10
10
|
import { html } from 'lit';
|
|
11
11
|
import { property } from 'lit/decorators.js';
|
|
@@ -27,26 +27,28 @@ let HelixSandboxPreview = class HelixSandboxPreview extends HelixElement {
|
|
|
27
27
|
if (event.source !== this.frame?.contentWindow || event.origin !== 'null') {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
const data = event.data;
|
|
31
|
+
if (data?.type === 'helix-preview-ready') {
|
|
31
32
|
this.handleFrameLoad();
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
|
-
if (
|
|
35
|
-
this.dispatchEvent(new HelixConsoleEvent({ level:
|
|
36
|
-
if (
|
|
35
|
+
if (data?.type === 'helix-preview-console') {
|
|
36
|
+
this.dispatchEvent(new HelixConsoleEvent({ level: data.level, text: data.text }));
|
|
37
|
+
if (data.uncaught) {
|
|
37
38
|
this.toggleState('failed', true);
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
if (
|
|
41
|
+
if (data?.type === 'helix-preview-press') {
|
|
41
42
|
this.dispatchEvent(new PointerEvent('pointerdown', { bubbles: true, composed: true }));
|
|
42
43
|
}
|
|
43
|
-
if (
|
|
44
|
-
this.dispatchEvent(new HelixResizeEvent({ size:
|
|
44
|
+
if (data?.type === 'helix-preview-size') {
|
|
45
|
+
this.dispatchEvent(new HelixResizeEvent({ size: data.size }));
|
|
45
46
|
}
|
|
46
47
|
};
|
|
47
48
|
this.settle = new DelayController(this, { renders: false });
|
|
48
49
|
}
|
|
49
50
|
static { HelixSandboxPreview_1 = this; }
|
|
51
|
+
static { this.words = 'helix-sandbox-preview'; }
|
|
50
52
|
get frame() {
|
|
51
53
|
return this.renderRoot.querySelector('iframe');
|
|
52
54
|
}
|
|
@@ -123,6 +125,7 @@ __decorate([
|
|
|
123
125
|
property()
|
|
124
126
|
], HelixSandboxPreview.prototype, "direction", void 0);
|
|
125
127
|
__decorate([
|
|
128
|
+
words,
|
|
126
129
|
property()
|
|
127
130
|
], HelixSandboxPreview.prototype, "label", void 0);
|
|
128
131
|
__decorate([
|
|
@@ -55,6 +55,11 @@ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
|
|
|
55
55
|
* @cssstate panel-collapsed - While there is a panel and it is no taller than `panel-collapsed-size`.
|
|
56
56
|
*/
|
|
57
57
|
export declare class HelixSandbox extends HelixElement {
|
|
58
|
+
/**
|
|
59
|
+
* The key this family's words are registered under, its tag:
|
|
60
|
+
* `registerWords('de', { 'helix-sandbox': { panelLabel: 'Bereich anpassen' } })`.
|
|
61
|
+
*/
|
|
62
|
+
static words: string;
|
|
58
63
|
/**
|
|
59
64
|
* The name of the corner handle that moves both dividers at once, read by
|
|
60
65
|
* screen readers.
|
|
@@ -132,9 +137,9 @@ export declare class HelixSandbox extends HelixElement {
|
|
|
132
137
|
panelSize: number;
|
|
133
138
|
/**
|
|
134
139
|
* The name of the divider between the panes, read by screen readers.
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
140
|
+
* `{pane}` is the lead pane, `source` or `preview`, whose share the
|
|
141
|
+
* divider's value is, so each is a whole sentence: "Resize source pane" or
|
|
142
|
+
* "Resize preview pane".
|
|
138
143
|
*/
|
|
139
144
|
separatorLabel: string;
|
|
140
145
|
/**
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixBeforePanelResizeEvent, HelixBeforeSplitEvent, HelixElement, HelixPanelResizeEvent, HelixSplitEvent, requestChange, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, formatWords, HelixBeforePanelResizeEvent, HelixBeforeSplitEvent, HelixElement, HelixPanelResizeEvent, HelixSplitEvent, requestChange, words, } from '@fusion.dev/helix-core';
|
|
8
8
|
import '../../splitter/index.js';
|
|
9
9
|
import { html } from 'lit';
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
@@ -22,7 +22,7 @@ let HelixSandbox = class HelixSandbox extends HelixElement {
|
|
|
22
22
|
this.panelCollapsedSize = 0;
|
|
23
23
|
this.panelLabel = 'Resize panel';
|
|
24
24
|
this.panelSize = DEFAULT_PANEL;
|
|
25
|
-
this.separatorLabel = '';
|
|
25
|
+
this.separatorLabel = '{pane, select, preview {Resize preview pane} other {Resize source pane}}';
|
|
26
26
|
this.split = DEFAULT_SPLIT;
|
|
27
27
|
this.hasPanel = false;
|
|
28
28
|
this.bodyHeight = 0;
|
|
@@ -98,6 +98,7 @@ let HelixSandbox = class HelixSandbox extends HelixElement {
|
|
|
98
98
|
this.hasPanel = this.querySelector(':scope > [slot="panel"]') !== null;
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
+
static { this.words = 'helix-sandbox'; }
|
|
101
102
|
shareOf(size) {
|
|
102
103
|
if (this.bodyHeight <= 0) {
|
|
103
104
|
return 0;
|
|
@@ -249,7 +250,7 @@ let HelixSandbox = class HelixSandbox extends HelixElement {
|
|
|
249
250
|
const second = first === 'preview' ? 'source' : 'preview';
|
|
250
251
|
const split = Number.isFinite(this.split) ? this.split : DEFAULT_SPLIT;
|
|
251
252
|
const home = Number.isFinite(this.defaultSplit) ? this.defaultSplit : DEFAULT_SPLIT;
|
|
252
|
-
const label = this
|
|
253
|
+
const label = formatWords(this, 'separatorLabel', { pane: first });
|
|
253
254
|
return html `<slot name="toolbar"></slot>
|
|
254
255
|
<helix-splitter part="body" ?data-panel=${this.hasPanel} exportparts="separator, corner"
|
|
255
256
|
orientation="vertical" collapsed-size=${this.panelSliver} corner-label=${this.cornerLabel}
|
|
@@ -269,6 +270,7 @@ let HelixSandbox = class HelixSandbox extends HelixElement {
|
|
|
269
270
|
static { this.styles = styles; }
|
|
270
271
|
};
|
|
271
272
|
__decorate([
|
|
273
|
+
words,
|
|
272
274
|
property({ attribute: 'corner-label' })
|
|
273
275
|
], HelixSandbox.prototype, "cornerLabel", void 0);
|
|
274
276
|
__decorate([
|
|
@@ -287,12 +289,14 @@ __decorate([
|
|
|
287
289
|
property({ attribute: 'panel-collapsed-size', type: Number })
|
|
288
290
|
], HelixSandbox.prototype, "panelCollapsedSize", void 0);
|
|
289
291
|
__decorate([
|
|
292
|
+
words,
|
|
290
293
|
property({ attribute: 'panel-label' })
|
|
291
294
|
], HelixSandbox.prototype, "panelLabel", void 0);
|
|
292
295
|
__decorate([
|
|
293
296
|
property({ attribute: 'panel-size', type: Number })
|
|
294
297
|
], HelixSandbox.prototype, "panelSize", void 0);
|
|
295
298
|
__decorate([
|
|
299
|
+
words,
|
|
296
300
|
property({ attribute: 'separator-label' })
|
|
297
301
|
], HelixSandbox.prototype, "separatorLabel", void 0);
|
|
298
302
|
__decorate([
|
|
@@ -50,6 +50,11 @@ import { type SandboxTokenizer } from '../tokens.js';
|
|
|
50
50
|
* @cssproperty --sandbox-source-tag-color - Color of a `tag` run, under `tokenize`. Defaults to `--helix-color-syntax-tag`.
|
|
51
51
|
*/
|
|
52
52
|
export declare class HelixSandboxSource extends HelixElement {
|
|
53
|
+
/**
|
|
54
|
+
* The key this part's words are registered under, its tag:
|
|
55
|
+
* `registerWords('de', { 'helix-sandbox-source': { fieldLabel: 'Quelltext' } })`.
|
|
56
|
+
*/
|
|
57
|
+
static words: string;
|
|
53
58
|
/**
|
|
54
59
|
* The editable region's name, read by screen readers.
|
|
55
60
|
*/
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixBeforeEditEvent, HelixCaretEvent, HelixEditEvent, HelixElement, onUnlessFalse, restoreValue, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, HelixBeforeEditEvent, HelixCaretEvent, HelixEditEvent, HelixElement, onUnlessFalse, restoreValue, words, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { html, nothing } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
import { drawnRuns } from '../tokens.js';
|
|
@@ -54,6 +54,7 @@ let HelixSandboxSource = class HelixSandboxSource extends HelixElement {
|
|
|
54
54
|
this.edit(field, field.value);
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
+
static { this.words = 'helix-sandbox-source'; }
|
|
57
58
|
edit(field, next) {
|
|
58
59
|
const request = new HelixBeforeEditEvent({ value: next });
|
|
59
60
|
const accepted = this.dispatchEvent(request);
|
|
@@ -101,9 +102,11 @@ let HelixSandboxSource = class HelixSandboxSource extends HelixElement {
|
|
|
101
102
|
static { this.styles = styles; }
|
|
102
103
|
};
|
|
103
104
|
__decorate([
|
|
105
|
+
words,
|
|
104
106
|
property({ attribute: 'field-label' })
|
|
105
107
|
], HelixSandboxSource.prototype, "fieldLabel", void 0);
|
|
106
108
|
__decorate([
|
|
109
|
+
words,
|
|
107
110
|
property({ attribute: 'keys-description' })
|
|
108
111
|
], HelixSandboxSource.prototype, "keysDescription", void 0);
|
|
109
112
|
__decorate([
|
|
@@ -29,6 +29,11 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
|
|
|
29
29
|
* @cssproperty --sandbox-status-bar-color - Color of the bar's text.
|
|
30
30
|
*/
|
|
31
31
|
export declare class HelixSandboxStatusBar extends HelixElement {
|
|
32
|
+
/**
|
|
33
|
+
* The key this part's words are registered under, its tag:
|
|
34
|
+
* `registerWords('de', { 'helix-sandbox-status-bar': { positionLabel: 'Z. {line}, Sp. {column}' } })`.
|
|
35
|
+
*/
|
|
36
|
+
static words: string;
|
|
32
37
|
/**
|
|
33
38
|
* One-based column of the cursor.
|
|
34
39
|
*
|
|
@@ -45,6 +50,11 @@ export declare class HelixSandboxStatusBar extends HelixElement {
|
|
|
45
50
|
* Absent shows no readout.
|
|
46
51
|
*/
|
|
47
52
|
line?: number;
|
|
53
|
+
/**
|
|
54
|
+
* How the cursor's place reads. `{line}` and `{column}` are the line and
|
|
55
|
+
* the column, written as an editor writes them, without grouping.
|
|
56
|
+
*/
|
|
57
|
+
positionLabel: string;
|
|
48
58
|
/** How the position reads, or nothing when there is no cursor to report. */
|
|
49
59
|
private get position();
|
|
50
60
|
protected render(): TemplateResult;
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixElement } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, formatWords, HelixElement, words } from '@fusion.dev/helix-core';
|
|
8
8
|
import { html, nothing } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
import { styles } from './sandbox-status-bar.css.js';
|
|
@@ -15,11 +15,19 @@ const LABELS = {
|
|
|
15
15
|
tsx: 'TSX',
|
|
16
16
|
};
|
|
17
17
|
let HelixSandboxStatusBar = class HelixSandboxStatusBar extends HelixElement {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.positionLabel = 'Ln {line}, Col {column}';
|
|
21
|
+
}
|
|
22
|
+
static { this.words = 'helix-sandbox-status-bar'; }
|
|
18
23
|
get position() {
|
|
19
24
|
if (this.line === undefined || this.column === undefined) {
|
|
20
25
|
return undefined;
|
|
21
26
|
}
|
|
22
|
-
return
|
|
27
|
+
return formatWords(this, 'positionLabel', {
|
|
28
|
+
column: String(this.column),
|
|
29
|
+
line: String(this.line),
|
|
30
|
+
});
|
|
23
31
|
}
|
|
24
32
|
render() {
|
|
25
33
|
const language = this.language;
|
|
@@ -42,6 +50,10 @@ __decorate([
|
|
|
42
50
|
__decorate([
|
|
43
51
|
property({ type: Number })
|
|
44
52
|
], HelixSandboxStatusBar.prototype, "line", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
words,
|
|
55
|
+
property({ attribute: 'position-label' })
|
|
56
|
+
], HelixSandboxStatusBar.prototype, "positionLabel", void 0);
|
|
45
57
|
HelixSandboxStatusBar = __decorate([
|
|
46
58
|
customElement('helix-sandbox-status-bar')
|
|
47
59
|
], HelixSandboxStatusBar);
|
|
@@ -43,6 +43,11 @@ import { type ConsoleLevel } from '../levels.js';
|
|
|
43
43
|
* @cssproperty --sandbox-terminal-size - Height of the scrolling region.
|
|
44
44
|
*/
|
|
45
45
|
export declare class HelixSandboxTerminal extends HelixElement {
|
|
46
|
+
/**
|
|
47
|
+
* The key this part's words are registered under, its tag:
|
|
48
|
+
* `registerWords('de', { 'helix-sandbox-terminal': { clearLabel: 'Leeren' } })`.
|
|
49
|
+
*/
|
|
50
|
+
static words: string;
|
|
46
51
|
/**
|
|
47
52
|
* The clear button's text, under `controls`.
|
|
48
53
|
*/
|
|
@@ -81,6 +86,12 @@ export declare class HelixSandboxTerminal extends HelixElement {
|
|
|
81
86
|
* that does not parse is no words.
|
|
82
87
|
*/
|
|
83
88
|
levelWords: Partial<Record<ConsoleLevel, string>>;
|
|
89
|
+
/**
|
|
90
|
+
* What a screen reader is told a repeated line's count is. `{count}` is how
|
|
91
|
+
* many times it was written, two or more, in the locale, and a language
|
|
92
|
+
* writes the forms it has: `{count, plural, few {# razy} other {# razy}}`.
|
|
93
|
+
*/
|
|
94
|
+
timesLabel: string;
|
|
84
95
|
private entries;
|
|
85
96
|
/**
|
|
86
97
|
* Whether the reader is at the bottom, and so wants to follow new output.
|
|
@@ -4,17 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { customElement, HelixBeforeChangeEvent, HelixElement, requestChange, wordsConverter, } from '@fusion.dev/helix-core';
|
|
7
|
+
import { customElement, formatWords, HelixBeforeChangeEvent, HelixElement, requestChange, words, wordsConverter, } from '@fusion.dev/helix-core';
|
|
8
8
|
import { html, nothing } from 'lit';
|
|
9
9
|
import { property, state } from 'lit/decorators.js';
|
|
10
10
|
import { LEVELS, shows } from '../levels.js';
|
|
11
11
|
import { styles } from './sandbox-terminal.css.js';
|
|
12
|
-
const LEVEL_WORDS = {
|
|
13
|
-
error: 'Errors',
|
|
14
|
-
info: 'Info and above',
|
|
15
|
-
log: 'All levels',
|
|
16
|
-
warn: 'Warnings and errors',
|
|
17
|
-
};
|
|
18
12
|
const LIMIT = 200;
|
|
19
13
|
const stop = (event) => event.stopPropagation();
|
|
20
14
|
let HelixSandboxTerminal = class HelixSandboxTerminal extends HelixElement {
|
|
@@ -25,7 +19,13 @@ let HelixSandboxTerminal = class HelixSandboxTerminal extends HelixElement {
|
|
|
25
19
|
this.emptyLabel = 'Nothing written to the console yet.';
|
|
26
20
|
this.label = 'Console output';
|
|
27
21
|
this.levelLabel = 'Levels shown';
|
|
28
|
-
this.levelWords = {
|
|
22
|
+
this.levelWords = {
|
|
23
|
+
error: 'Errors',
|
|
24
|
+
info: 'Info and above',
|
|
25
|
+
log: 'All levels',
|
|
26
|
+
warn: 'Warnings and errors',
|
|
27
|
+
};
|
|
28
|
+
this.timesLabel = '{count} times';
|
|
29
29
|
this.entries = [];
|
|
30
30
|
this.following = true;
|
|
31
31
|
this.handleLevel = (event) => {
|
|
@@ -46,6 +46,7 @@ let HelixSandboxTerminal = class HelixSandboxTerminal extends HelixElement {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
static { this.words = 'helix-sandbox-terminal'; }
|
|
49
50
|
get log() {
|
|
50
51
|
return this.renderRoot.querySelector('[part="log"]');
|
|
51
52
|
}
|
|
@@ -77,13 +78,14 @@ let HelixSandboxTerminal = class HelixSandboxTerminal extends HelixElement {
|
|
|
77
78
|
if (!this.controls) {
|
|
78
79
|
return nothing;
|
|
79
80
|
}
|
|
81
|
+
const clear = this.clearLabel;
|
|
80
82
|
return html `<div part="controls">
|
|
81
83
|
<select part="filter" aria-label=${this.levelLabel} @change=${this.handleLevel} @input=${stop}>
|
|
82
84
|
${LEVELS.map((one) => html `<option value=${one} ?selected=${(this.level ?? 'log') === one}>
|
|
83
|
-
${this.levelWords
|
|
85
|
+
${this.levelWords[one]}
|
|
84
86
|
</option>`)}
|
|
85
87
|
</select>
|
|
86
|
-
<button part="clear" type="button" @click=${() => this.clear()}>${
|
|
88
|
+
<button part="clear" type="button" @click=${() => this.clear()}>${clear}</button>
|
|
87
89
|
</div>`;
|
|
88
90
|
}
|
|
89
91
|
render() {
|
|
@@ -97,7 +99,7 @@ let HelixSandboxTerminal = class HelixSandboxTerminal extends HelixElement {
|
|
|
97
99
|
>
|
|
98
100
|
<span part="message">${entry.text}</span>
|
|
99
101
|
${entry.count > 1
|
|
100
|
-
? html `<span part="count" aria-label
|
|
102
|
+
? html `<span part="count" aria-label=${formatWords(this, 'timesLabel', { count: entry.count })}
|
|
101
103
|
>${entry.count}</span
|
|
102
104
|
>`
|
|
103
105
|
: nothing}
|
|
@@ -107,26 +109,35 @@ let HelixSandboxTerminal = class HelixSandboxTerminal extends HelixElement {
|
|
|
107
109
|
static { this.styles = styles; }
|
|
108
110
|
};
|
|
109
111
|
__decorate([
|
|
112
|
+
words,
|
|
110
113
|
property({ attribute: 'clear-label' })
|
|
111
114
|
], HelixSandboxTerminal.prototype, "clearLabel", void 0);
|
|
112
115
|
__decorate([
|
|
113
116
|
property({ reflect: true, type: Boolean })
|
|
114
117
|
], HelixSandboxTerminal.prototype, "controls", void 0);
|
|
115
118
|
__decorate([
|
|
119
|
+
words,
|
|
116
120
|
property({ attribute: 'empty-label' })
|
|
117
121
|
], HelixSandboxTerminal.prototype, "emptyLabel", void 0);
|
|
118
122
|
__decorate([
|
|
123
|
+
words,
|
|
119
124
|
property()
|
|
120
125
|
], HelixSandboxTerminal.prototype, "label", void 0);
|
|
121
126
|
__decorate([
|
|
122
127
|
property()
|
|
123
128
|
], HelixSandboxTerminal.prototype, "level", void 0);
|
|
124
129
|
__decorate([
|
|
130
|
+
words,
|
|
125
131
|
property({ attribute: 'level-label' })
|
|
126
132
|
], HelixSandboxTerminal.prototype, "levelLabel", void 0);
|
|
127
133
|
__decorate([
|
|
134
|
+
words,
|
|
128
135
|
property({ attribute: 'level-words', converter: wordsConverter })
|
|
129
136
|
], HelixSandboxTerminal.prototype, "levelWords", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
words,
|
|
139
|
+
property({ attribute: 'times-label' })
|
|
140
|
+
], HelixSandboxTerminal.prototype, "timesLabel", void 0);
|
|
130
141
|
__decorate([
|
|
131
142
|
state()
|
|
132
143
|
], HelixSandboxTerminal.prototype, "entries", void 0);
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {display: block;position: relative;}[part="viewport"] {block-size: 100%;overflow: auto;overscroll-behavior: contain;}[part="viewport"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}[part="viewport"] {scrollbar-color: var(--scroll-area-thumb-color, var(--helix-color
|
|
3
|
-
var(--scroll-area-track-color,
|
|
2
|
+
export const styles = createSheet(`:host {display: block;position: relative;}[part="viewport"] {block-size: 100%;overflow: auto;overscroll-behavior: contain;}[part="viewport"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}[part="viewport"] {scrollbar-color: var(--scroll-area-thumb-color, var(--helix-scrollbar-thumb-color))
|
|
3
|
+
var(--scroll-area-track-color, var(--helix-scrollbar-track-color));scrollbar-width: var(--scroll-area-scrollbar, thin);}[part="viewport"]:hover {scrollbar-color: var(--scroll-area-thumb-hover-color, var(--helix-scrollbar-thumb-hover-color))
|
|
4
|
+
var(--scroll-area-track-color, var(--helix-scrollbar-track-color));}:host([scrollbars]) [part="viewport"] {scrollbar-width: none;}[part~="scrollbar"] {--_scroll-area-thumb: max(
|
|
4
5
|
var(--scroll-area-thumb-min-size, var(--helix-space-lg)),
|
|
5
6
|
var(--scroll-area-thumb-fraction, 1) *
|
|
6
7
|
100%
|
|
7
|
-
);background-color: var(--scroll-area-track-color,
|
|
8
|
+
);background-color: var(--scroll-area-track-color, var(--helix-scrollbar-track-color));opacity: 0;position: absolute;touch-action: none;transition: opacity var(--helix-duration-fast) var(--helix-easing-standard);user-select: none;z-index: calc(var(--helix-layer-raised) + 1);}[part~="scrollbar-visible"] {opacity: 1;}[part~="scrollbar-vertical"] {inline-size: var(--scroll-area-scrollbar-size, var(--helix-space-sm));inset-block: 0;inset-inline-end: 0;}[part~="scrollbar-horizontal"] {block-size: var(--scroll-area-scrollbar-size, var(--helix-space-sm));inset-block-end: 0;inset-inline: 0;}:host(:state(scrollbar-horizontal)) [part~="scrollbar-vertical"] {inset-block-end: var(--scroll-area-scrollbar-size, var(--helix-space-sm));}:host(:state(scrollbar-vertical)) [part~="scrollbar-horizontal"] {inset-inline-end: var(--scroll-area-scrollbar-size, var(--helix-space-sm));}[part~="thumb"] {background-color: var(--scroll-area-thumb-color, var(--helix-scrollbar-thumb-color));border-radius: var(--helix-radii-full);position: absolute;}[part~="thumb"]:hover {background-color: var(--scroll-area-thumb-hover-color, var(--helix-scrollbar-thumb-hover-color));}[part~="thumb-vertical"] {block-size: var(--_scroll-area-thumb);inset-block-start: calc(
|
|
8
9
|
var(--scroll-area-scroll-fraction, 0) *
|
|
9
10
|
(100% - var(--_scroll-area-thumb))
|
|
10
11
|
);inset-inline: var(--helix-border-thick);}[part~="thumb-horizontal"] {inline-size: var(--_scroll-area-thumb);inset-block: var(--helix-border-thick);inset-inline-start: calc(
|
|
11
12
|
var(--scroll-area-scroll-fraction, 0) *
|
|
12
13
|
(100% - var(--_scroll-area-thumb))
|
|
13
|
-
);}[part="corner"] {background-color: var(--scroll-area-track-color,
|
|
14
|
+
);}[part="corner"] {background-color: var(--scroll-area-track-color, var(--helix-scrollbar-track-color));block-size: var(--scroll-area-scrollbar-size, var(--helix-space-sm));inline-size: var(--scroll-area-scrollbar-size, var(--helix-space-sm));inset-block-end: 0;inset-inline-end: 0;position: absolute;}:host::before,
|
|
14
15
|
:host::after {content: "";opacity: 0;pointer-events: none;position: absolute;transition: opacity var(--helix-duration-fast) var(--helix-easing-standard);z-index: var(--helix-layer-raised);}:host::before {background: linear-gradient(
|
|
15
16
|
to bottom,
|
|
16
17
|
var(--scroll-area-fade-color, var(--helix-color-background)),
|
|
@@ -25,10 +25,10 @@ import type { CSSResultGroup } from 'lit';
|
|
|
25
25
|
* @cssproperty --scroll-area-fade-inline-start - The depth of the fade at the inline start, or `0` to remove it.
|
|
26
26
|
* @cssproperty --scroll-area-scrollbar - The scrollbar width, as a `scrollbar-width` keyword.
|
|
27
27
|
* @cssproperty --scroll-area-scrollbar-size - The thickness of each scrollbar drawn under `scrollbars`, and the size of the corner.
|
|
28
|
-
* @cssproperty --scroll-area-thumb-color - The color of the scrollbar's thumb.
|
|
29
|
-
* @cssproperty --scroll-area-thumb-hover-color - The color of a thumb drawn under `scrollbars` while the pointer is over it.
|
|
28
|
+
* @cssproperty --scroll-area-thumb-color - The color of the scrollbar's thumb. Defaults to `--helix-scrollbar-thumb-color`.
|
|
29
|
+
* @cssproperty --scroll-area-thumb-hover-color - The color of the browser's thumb while the pointer is over the scroll area, and of a thumb drawn under `scrollbars` while the pointer is over it. Defaults to `--helix-scrollbar-thumb-hover-color`.
|
|
30
30
|
* @cssproperty --scroll-area-thumb-min-size - The shortest a thumb drawn under `scrollbars` gets, however long the content.
|
|
31
|
-
* @cssproperty --scroll-area-track-color - The color of the scrollbar's track.
|
|
31
|
+
* @cssproperty --scroll-area-track-color - The color of the scrollbar's track. Defaults to `--helix-scrollbar-track-color`.
|
|
32
32
|
*/
|
|
33
33
|
export declare class HelixScrollArea extends HelixHeadlessScrollArea {
|
|
34
34
|
static styles: CSSResultGroup;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {display: block;overflow-x: auto;}[part="table"] {display: grid;grid-template-columns: var(--table-columns, var(--table-template, minmax(0, 1fr)));inline-size: 100%;}[part="head"] {display: contents;}::slotted([slot="heading"]) {color: var(--table-title-color, var(--helix-color-foreground));display: block;font-family: var(--helix-font-sans);font-size: var(--table-title-text, var(--helix-text-md));font-weight: var(--helix-weight-semibold);margin-block: var(--helix-space-none) var(--table-title-gap, var(--helix-space-sm));}[part="select-all"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);box-sizing: border-box;display: flex;min-block-size: var(--helix-size-control-loose);padding-inline: var(--helix-space-none) var(--helix-space-md);}[part="
|
|
2
|
+
export const styles = createSheet(`:host {display: block;overflow-x: auto;}[part="table"] {display: grid;grid-template-columns: var(--table-columns, var(--table-template, minmax(0, 1fr)));inline-size: 100%;}[part="head"] {display: contents;}::slotted([slot="heading"]) {color: var(--table-title-color, var(--helix-color-foreground));display: block;font-family: var(--helix-font-sans);font-size: var(--table-title-text, var(--helix-text-md));font-weight: var(--helix-weight-semibold);margin-block: var(--helix-space-none) var(--table-title-gap, var(--helix-space-sm));}[part="select-all"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);box-sizing: border-box;display: flex;min-block-size: var(--helix-size-control-loose);padding-inline: var(--helix-space-none) var(--helix-space-md);}[part="grip-head"] {border-block-end: var(--helix-border-thin) solid var(--helix-color-border);box-sizing: border-box;min-block-size: var(--helix-size-control-loose);}[part="grip-head"]:focus-visible,
|
|
3
|
+
[part="select-all"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}:host([loading]) [part="table"] {opacity: 0.5;}[part="drag-preview"] {background-color: var(--table-drag-preview-background-color, var(--helix-color-surface-raised));border: var(--table-drag-preview-border-width, var(--helix-border-floating)) solid
|
|
4
|
+
var(--table-drag-preview-border-color, var(--helix-color-border));border-radius: var(--table-drag-preview-radius, var(--helix-radii-sm));box-shadow: var(--table-drag-preview-shadow, var(--helix-shadow-floating));opacity: var(--table-drag-preview-opacity, 0.9);}@media print {:host {print-color-adjust: economy;}}`);
|
|
@@ -16,10 +16,17 @@ import '../../checkbox/index.js';
|
|
|
16
16
|
* @slot - The table's rows.
|
|
17
17
|
* @slot heading - Words that name the table, shown above it in the weight of a heading.
|
|
18
18
|
*
|
|
19
|
-
* @csspart
|
|
19
|
+
* @csspart drag-preview - A copy of the row a pointer drags by its grip, which follows the pointer in the top layer until the row is let go, in a `reorderable` table. Hidden from assistive technology.
|
|
20
|
+
* @csspart live - A live region that repeats the empty and loading text, and says each step of a move, so screen readers announce it when it changes. Visually hidden in the styled tier.
|
|
20
21
|
* @csspart table - The grid.
|
|
21
22
|
*
|
|
22
23
|
* @cssproperty --table-columns - Track list for the columns. It overrides the track list worked out from the columns.
|
|
24
|
+
* @cssproperty --table-drag-preview-background-color - The fill behind the copy of a row a pointer drags.
|
|
25
|
+
* @cssproperty --table-drag-preview-border-color - The color of the edge around the copy of a row a pointer drags.
|
|
26
|
+
* @cssproperty --table-drag-preview-border-width - The width of the edge around the copy of a row a pointer drags. None by default, where the shadow lifts it.
|
|
27
|
+
* @cssproperty --table-drag-preview-opacity - The opacity of the copy of a row a pointer drags.
|
|
28
|
+
* @cssproperty --table-drag-preview-radius - The corner radius of the copy of a row a pointer drags.
|
|
29
|
+
* @cssproperty --table-drag-preview-shadow - The shadow that raises the copy of a row a pointer drags over the page.
|
|
23
30
|
* @cssproperty --table-title-color - The color of the words in the `heading` slot.
|
|
24
31
|
* @cssproperty --table-title-gap - The space between the `heading` slot and the grid.
|
|
25
32
|
* @cssproperty --table-title-text - The font size of the words in the `heading` slot.
|
|
@@ -7,4 +7,12 @@ var(--helix-color-background)
|
|
|
7
7
|
);}:host(:state(link)) ::slotted(*) {cursor: pointer;}:host(:state(link):hover) ::slotted(*) {background-color: var(
|
|
8
8
|
--table-row-hover-background-color,
|
|
9
9
|
color-mix(in oklab, var(--helix-color-foreground) 5%, transparent)
|
|
10
|
-
);}[part~="select"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}
|
|
10
|
+
);}[part~="select"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}[part~="grip"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);box-sizing: border-box;display: flex;min-block-size: var(--helix-size-control);padding-inline: var(--helix-space-2xs) var(--helix-space-sm);}[part~="grip"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}[part="grip-button"] {all: unset;align-items: center;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--table-grip-color, var(--helix-color-foreground-muted));cursor: grab;display: inline-flex;touch-action: none;}[part="grip-button"]:active {cursor: grabbing;}[part="grip-button"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}[part="grip-button"][aria-disabled="true"] {cursor: default;opacity: var(--table-grip-disabled-opacity, 0.4);}[part="grip-mark"] {block-size: 1em;inline-size: 1em;}:host(:state(dragging)) [part~="grip"],
|
|
11
|
+
:host(:state(dragging)) [part~="select"],
|
|
12
|
+
:host(:state(dragging)) ::slotted(*) {opacity: var(--table-dragging-opacity, 0.5);}:host(:state(drop-before)) [part~="grip"],
|
|
13
|
+
:host(:state(drop-before)) [part~="select"],
|
|
14
|
+
:host(:state(drop-before)) ::slotted(*) {box-shadow: inset 0 var(--table-drop-indicator-size, var(--helix-border-thick)) 0 0
|
|
15
|
+
var(--table-drop-indicator-color, var(--helix-color-primary));}:host(:state(drop-after)) [part~="grip"],
|
|
16
|
+
:host(:state(drop-after)) [part~="select"],
|
|
17
|
+
:host(:state(drop-after)) ::slotted(*) {box-shadow: inset 0 calc(var(--table-drop-indicator-size, var(--helix-border-thick)) * -1) 0 0
|
|
18
|
+
var(--table-drop-indicator-color, var(--helix-color-primary));}`);
|
|
@@ -16,6 +16,11 @@ import '../../checkbox/index.js';
|
|
|
16
16
|
*
|
|
17
17
|
* @slot - The row's cells.
|
|
18
18
|
*
|
|
19
|
+
* @cssproperty --table-dragging-opacity - The opacity of a row being moved, in a `reorderable` table.
|
|
20
|
+
* @cssproperty --table-drop-indicator-color - The color of the line where a moved row would land.
|
|
21
|
+
* @cssproperty --table-drop-indicator-size - The thickness of the line where a moved row would land.
|
|
22
|
+
* @cssproperty --table-grip-color - The color of a row's grip, in a `reorderable` table.
|
|
23
|
+
* @cssproperty --table-grip-disabled-opacity - The opacity of a row's grip while a sort decides the order.
|
|
19
24
|
* @cssproperty --table-row-hover-background-color - The wash across the cells of a row with `href` under the pointer.
|
|
20
25
|
*/
|
|
21
26
|
export declare class HelixTableRow extends HelixHeadlessTableRow {
|
|
@@ -4,6 +4,15 @@ import type { CSSResultGroup } from 'lit';
|
|
|
4
4
|
* @summary A short text that appears next to an element on hover and focus.
|
|
5
5
|
*
|
|
6
6
|
* @description
|
|
7
|
+
* Place the tooltip beside its trigger, name the trigger with `for`, and name
|
|
8
|
+
* the tooltip in the trigger's `aria-describedby`, so the trigger is described
|
|
9
|
+
* in the server's markup and at rest:
|
|
10
|
+
*
|
|
11
|
+
* ```html
|
|
12
|
+
* <helix-button aria-describedby="save-tip" id="save">Save</helix-button>
|
|
13
|
+
* <helix-tooltip content="Save your work" for="save" id="save-tip"></helix-tooltip>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
7
16
|
* The bubble is in the top layer, so it needs no `z-index` and no container
|
|
8
17
|
* clips it.
|
|
9
18
|
*
|
|
@@ -20,6 +20,8 @@ slot[name="end"]::slotted(*) {flex: 0 0 auto;}slot[name="end"] {align-items: cen
|
|
|
20
20
|
grid-template-rows var(--helix-duration-fast) var(--helix-easing-standard),
|
|
21
21
|
display var(--helix-duration-fast) allow-discrete;}[part="group"] > slot {display: block;min-block-size: 0;overflow: hidden;}[part="group"][hidden] {display: none;grid-template-rows: 0fr;}@starting-style {[part="group"]:not([hidden]) {grid-template-rows: 0fr;}}[part="toggle"] {align-self: center;margin-inline-start: var(--tree-chevron-gap, var(--helix-space-none));order: var(--tree-chevron-order, 0);}slot[name="chevron"]::slotted(*) {align-self: center;block-size: var(--_tree-chevron);color: var(--helix-color-foreground-subtle);flex: 0 0 auto;inline-size: var(--_tree-chevron);margin-inline-start: var(--tree-chevron-gap, var(--helix-space-none));order: var(--tree-chevron-order, 0);transform: rotate(-90deg);transition: transform var(--helix-duration-fast) var(--helix-easing-standard);}:host(:dir(rtl)) slot[name="chevron"]::slotted(*) {transform: rotate(90deg);}:host(:state(open)) slot[name="chevron"]::slotted(*) {transform: rotate(0deg);}[part~="checkbox"] {align-self: center;background-color: var(--tree-checkbox-background-color, var(--helix-color-background));block-size: var(--tree-checkbox-size, var(--_tree-chevron));border: var(--helix-border-thin) solid
|
|
22
22
|
var(--tree-checkbox-border-color, var(--helix-color-border));border-radius: var(--helix-radii-sm);color: var(--tree-checkbox-mark-color, var(--helix-color-foreground));display: grid;flex: 0 0 auto;inline-size: var(--tree-checkbox-size, var(--_tree-chevron));place-items: center;}[part~="checkbox-checked"],
|
|
23
|
-
[part~="checkbox-mixed"] {border-color: var(--tree-checkbox-border-color, var(--helix-color-foreground));}[part~="checkbox"] svg {block-size: 80%;inline-size: 80%;}
|
|
23
|
+
[part~="checkbox-mixed"] {border-color: var(--tree-checkbox-border-color, var(--helix-color-foreground));}[part~="checkbox"] svg {block-size: 80%;inline-size: 80%;}[part="grip"] {align-items: center;color: var(--tree-grip-color, var(--helix-color-foreground-subtle));cursor: grab;display: inline-flex;flex: 0 0 auto;order: 3;touch-action: none;}[part="grip"]:active {cursor: grabbing;}[part="grip-mark"] {block-size: var(--_tree-chevron);inline-size: var(--_tree-chevron);}:host(:state(dragging)) [part="item"] {opacity: var(--tree-dragging-opacity, 0.5);}:host(:state(drop-before)) [part="item"],
|
|
24
|
+
:host(:state(drop-after)) [part="item"] {position: relative;}:host(:state(drop-before)) [part="item"]::before,
|
|
25
|
+
:host(:state(drop-after)) [part="item"]::after {background-color: var(--tree-drop-indicator-color, var(--helix-color-primary));block-size: var(--tree-drop-indicator-size, var(--helix-border-thick));content: "";inset-inline: 0;pointer-events: none;position: absolute;z-index: 1;}:host(:state(drop-before)) [part="item"]::before {inset-block-start: 0;}:host(:state(drop-after)) [part="item"]::after {inset-block-end: 0;}:host([disabled]) [part="row"] {cursor: not-allowed;opacity: var(--tree-row-disabled-opacity, 0.5);}:host([disabled]) [part="row"]:hover {background-color: transparent;color: var(--tree-row-color, var(--helix-color-foreground-muted));}:host(:state(loading)) [part="toggle"],
|
|
24
26
|
:host(:state(loading)) slot[name="chevron"]::slotted(*) {animation: tree-loading var(--helix-duration-slow) var(--helix-easing-standard) infinite alternate;}@keyframes tree-loading {to {opacity: 0.3;}}@media (prefers-reduced-motion: reduce) {:host(:state(loading)) [part="toggle"],
|
|
25
27
|
:host(:state(loading)) slot[name="chevron"]::slotted(*) {animation: none;}}`);
|
|
@@ -25,6 +25,8 @@ import type { CSSResultGroup } from 'lit';
|
|
|
25
25
|
* @csspart checkbox - The check mark's box, in a tree with `selection-mode="multiple"`.
|
|
26
26
|
* @csspart checkbox-checked - The check mark's box while the item is checked.
|
|
27
27
|
* @csspart checkbox-mixed - The check mark's box while some of a branch's items are checked.
|
|
28
|
+
* @csspart grip - The handle a pointer drags to move the item, in a `reorderable` tree.
|
|
29
|
+
* @csspart grip-mark - The icon on the grip.
|
|
28
30
|
* @csspart group - The container for nested items.
|
|
29
31
|
* @csspart item - The node, and the focus target.
|
|
30
32
|
* @csspart label - The label text.
|
|
@@ -37,7 +39,11 @@ import type { CSSResultGroup } from 'lit';
|
|
|
37
39
|
* branch.
|
|
38
40
|
* @cssproperty --tree-checkbox-size - Size of the check mark's box. Follows the chevron's size.
|
|
39
41
|
* @cssproperty --tree-chevron-size - Size of the chevron, and the gutter a leaf reserves.
|
|
42
|
+
* @cssproperty --tree-dragging-opacity - The opacity of an item being moved, in a `reorderable` tree.
|
|
43
|
+
* @cssproperty --tree-drop-indicator-color - The color of the line where a moved item would land.
|
|
44
|
+
* @cssproperty --tree-drop-indicator-size - The thickness of the line where a moved item would land.
|
|
40
45
|
* @cssproperty --tree-gap - Space between rows.
|
|
46
|
+
* @cssproperty --tree-grip-color - The color of the grip, in a `reorderable` tree.
|
|
41
47
|
* @cssproperty --tree-indent - Indent added per level.
|
|
42
48
|
* @cssproperty --tree-row-checked-background-color - Fill of a checked row, in a tree with `selection-mode="multiple"`. Unset, the box alone marks it.
|
|
43
49
|
* @cssproperty --tree-row-checked-color - Text color of a checked row, in a tree with `selection-mode="multiple"`.
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {display: block;}[part="tree"] {display: flex;flex-direction: column;}:host {--tree-chevron-order: 0;}:host([chevron-placement="end"]) {--tree-chevron-order: 2;--tree-chevron-gap: var(--helix-space-none);--_tree-reserve: var(--helix-space-none);}:host([nesting="subordinate"]) {--_tree-nested-text: var(--helix-text-xs);}:host([nesting="heading"]) {--_tree-heading-ink: var(--helix-color-foreground-subtle);--_tree-heading-text: var(--helix-text-xs);--_tree-heading-tracking: var(--helix-tracking-wide);}:host([loading]) [part="tree"] {opacity: 0.5;}
|
|
2
|
+
export const styles = createSheet(`:host {display: block;}[part="tree"] {display: flex;flex-direction: column;}:host {--tree-chevron-order: 0;}:host([chevron-placement="end"]) {--tree-chevron-order: 2;--tree-chevron-gap: var(--helix-space-none);--_tree-reserve: var(--helix-space-none);}:host([nesting="subordinate"]) {--_tree-nested-text: var(--helix-text-xs);}:host([nesting="heading"]) {--_tree-heading-ink: var(--helix-color-foreground-subtle);--_tree-heading-text: var(--helix-text-xs);--_tree-heading-tracking: var(--helix-tracking-wide);}:host([loading]) [part="tree"] {opacity: 0.5;}[part="drag-preview"] {background-color: var(--tree-drag-preview-background-color, var(--helix-color-surface-raised));border: var(--tree-drag-preview-border-width, var(--helix-border-floating)) solid
|
|
3
|
+
var(--tree-drag-preview-border-color, var(--helix-color-border));border-radius: var(--tree-drag-preview-radius, var(--helix-radii-sm));box-shadow: var(--tree-drag-preview-shadow, var(--helix-shadow-floating));opacity: var(--tree-drag-preview-opacity, 0.9);}@media print {:host {print-color-adjust: economy;}}`);
|
|
@@ -17,12 +17,19 @@ import type { CSSResultGroup } from 'lit';
|
|
|
17
17
|
*
|
|
18
18
|
* @event {HelixSelectEvent} helix-select - Fired when an item is chosen. The item sends it, and you can listen for it on the tree. Cancelable: canceling it changes nothing.
|
|
19
19
|
*
|
|
20
|
-
* @csspart
|
|
20
|
+
* @csspart drag-preview - A copy of the row a pointer drags by its grip, which follows the pointer in the top layer until the item is let go, in a `reorderable` tree. Hidden from assistive technology.
|
|
21
|
+
* @csspart live - A copy of the empty and loading messages, and each step of a move in a `reorderable` tree, in a live region that announces them when they change. Visually hidden in the styled tier.
|
|
21
22
|
* @csspart tree - The tree container.
|
|
22
23
|
*
|
|
23
24
|
* @cssproperty --tree-chevron-gap - The space before the chevron. Set from `chevron-placement`.
|
|
24
25
|
* @cssproperty --tree-chevron-order - The chevron's order in the row. Set from `chevron-placement` and read by each item.
|
|
25
26
|
* @cssproperty --tree-chevron-size - Size of the chevron, and the gutter a leaf reserves.
|
|
27
|
+
* @cssproperty --tree-drag-preview-background-color - The fill behind the copy of an item a pointer drags.
|
|
28
|
+
* @cssproperty --tree-drag-preview-border-color - The color of the edge around the copy of an item a pointer drags.
|
|
29
|
+
* @cssproperty --tree-drag-preview-border-width - The width of the edge around the copy of an item a pointer drags. None by default, where the shadow lifts it.
|
|
30
|
+
* @cssproperty --tree-drag-preview-opacity - The opacity of the copy of an item a pointer drags.
|
|
31
|
+
* @cssproperty --tree-drag-preview-radius - The corner radius of the copy of an item a pointer drags.
|
|
32
|
+
* @cssproperty --tree-drag-preview-shadow - The shadow that raises the copy of an item a pointer drags over the page.
|
|
26
33
|
* @cssproperty --tree-gap - Space between rows.
|
|
27
34
|
* @cssproperty --tree-indent - Indent added per level.
|
|
28
35
|
* @cssproperty --tree-row-size - Minimum height of a row, so rows with and without an icon match.
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {display: block;}[part="viewport"] {block-size: var(--virtual-list-block-size, 20em);margin-inline: calc(var(--helix-size-focus-reach) * -1);overflow-y: auto;overscroll-behavior: contain;padding-inline: var(--helix-size-focus-reach);scrollbar-color: var(--
|
|
2
|
+
export const styles = createSheet(`:host {display: block;}[part="viewport"] {block-size: var(--virtual-list-block-size, 20em);margin-inline: calc(var(--helix-size-focus-reach) * -1);overflow-y: auto;overscroll-behavior: contain;padding-inline: var(--helix-size-focus-reach);scrollbar-color: var(--virtual-list-scrollbar-thumb-color, var(--helix-scrollbar-thumb-color))
|
|
3
|
+
var(--virtual-list-scrollbar-track-color, var(--helix-scrollbar-track-color));scrollbar-width: thin;}[part="viewport"]:hover {scrollbar-color: var(
|
|
4
|
+
--virtual-list-scrollbar-thumb-hover-color,
|
|
5
|
+
var(--helix-scrollbar-thumb-hover-color)
|
|
6
|
+
)
|
|
7
|
+
var(--virtual-list-scrollbar-track-color, var(--helix-scrollbar-track-color));}::slotted([data-index]:focus-visible) {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1);}::slotted([aria-selected="true"]) {background-color: var(
|
|
3
8
|
--virtual-list-selected-background-color,
|
|
4
9
|
var(--helix-color-primary-subtle)
|
|
5
10
|
);}[part="loading"] {color: var(--virtual-list-loading-color, var(--helix-color-foreground-muted));font-size: var(--helix-text-sm);padding: var(--virtual-list-loading-padding, var(--helix-space-sm));text-align: center;}[part="after"],
|
|
@@ -24,6 +24,9 @@ import type { CSSResultGroup } from 'lit';
|
|
|
24
24
|
* @cssproperty --virtual-list-block-size - How tall the scrolling box is.
|
|
25
25
|
* @cssproperty --virtual-list-loading-color - The color of the text in the row drawn while `loading` is set.
|
|
26
26
|
* @cssproperty --virtual-list-loading-padding - The space around the text in the row drawn while `loading` is set.
|
|
27
|
+
* @cssproperty --virtual-list-scrollbar-thumb-color - The thumb of the list's scrollbar. Defaults to `--helix-scrollbar-thumb-color`.
|
|
28
|
+
* @cssproperty --virtual-list-scrollbar-thumb-hover-color - The thumb while the pointer is over the list. Defaults to `--helix-scrollbar-thumb-hover-color`.
|
|
29
|
+
* @cssproperty --virtual-list-scrollbar-track-color - The track of the list's scrollbar. Defaults to `--helix-scrollbar-track-color`.
|
|
27
30
|
* @cssproperty --virtual-list-selected-background-color - The fill behind a chosen row, in a list with `selection-mode`.
|
|
28
31
|
*/
|
|
29
32
|
export declare class HelixVirtualList extends HelixHeadlessVirtualList {
|