@fusion.dev/helix 0.215.3 → 0.217.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/api.json +1 -1
- package/custom-elements.json +1 -1
- package/dist/area-chart/root/area-chart-root.js +8 -1
- package/dist/bar-chart/root/bar-chart-root.js +8 -1
- package/dist/chat/composer/chat-composer.css.js +1 -1
- package/dist/chat/composer/chat-composer.d.ts +1 -0
- package/dist/chat/composer/chat-composer.js +2 -1
- package/dist/code-editor/index.d.ts +1 -0
- package/dist/code-editor/index.js +1 -0
- package/dist/code-editor/root/code-editor-root.css.d.ts +1 -0
- package/dist/code-editor/root/code-editor-root.css.js +2 -0
- package/dist/code-editor/root/code-editor-root.d.ts +52 -0
- package/dist/code-editor/root/code-editor-root.js +28 -0
- package/dist/code-input/index.d.ts +1 -0
- package/dist/code-input/index.js +1 -0
- package/dist/code-input/root/code-input-root.css.d.ts +1 -0
- package/dist/code-input/root/code-input-root.css.js +2 -0
- package/dist/code-input/root/code-input-root.d.ts +33 -0
- package/dist/code-input/root/code-input-root.js +21 -0
- package/dist/command/root/command-root.d.ts +1 -0
- package/dist/command/root/command-root.js +1 -0
- package/dist/donut-chart/root/donut-chart-root.js +8 -1
- package/dist/element-events.generated.js +36 -3
- package/dist/filter-input/root/filter-input-root.css.js +1 -1
- package/dist/filter-input/root/filter-input-root.d.ts +1 -0
- package/dist/filter-input/root/filter-input-root.js +2 -0
- package/dist/heatmap/root/heatmap-root.js +2 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/input/root/input-root.css.js +1 -1
- package/dist/input/root/input-root.d.ts +1 -0
- package/dist/input/root/input-root.js +2 -0
- package/dist/line-chart/root/line-chart-root.js +2 -0
- package/dist/listbox/root/listbox-root.css.js +1 -1
- package/dist/listbox/root/listbox-root.d.ts +1 -0
- package/dist/listbox/root/listbox-root.js +2 -0
- package/dist/markdown/index.d.ts +2 -0
- package/dist/markdown/index.js +2 -0
- package/dist/markdown/root/markdown-root.css.d.ts +1 -0
- package/dist/markdown/root/markdown-root.css.js +2 -0
- package/dist/markdown/root/markdown-root.d.ts +32 -0
- package/dist/markdown/root/markdown-root.js +14 -0
- package/dist/sandbox/compile-worker.d.ts +8 -0
- package/dist/sandbox/compile-worker.generated.d.ts +4 -0
- package/dist/sandbox/compile-worker.generated.js +2 -0
- package/dist/sandbox/compile-worker.js +26 -0
- package/dist/sandbox/compile.d.ts +23 -1
- package/dist/sandbox/compile.js +16 -4
- package/dist/sandbox/index.d.ts +1 -0
- package/dist/sandbox/index.js +1 -0
- package/dist/scatter-chart/root/scatter-chart-root.js +8 -1
- package/dist/shared/chart/sonify.css.d.ts +1 -0
- package/dist/shared/chart/sonify.css.js +2 -0
- package/dist/shared/dictation/dictation.css.d.ts +1 -0
- package/dist/shared/dictation/dictation.css.js +2 -0
- package/dist/shortcut-overlay/index.d.ts +1 -0
- package/dist/shortcut-overlay/index.js +1 -0
- package/dist/shortcut-overlay/root/shortcut-overlay-root.css.d.ts +1 -0
- package/dist/shortcut-overlay/root/shortcut-overlay-root.css.js +2 -0
- package/dist/shortcut-overlay/root/shortcut-overlay-root.d.ts +33 -0
- package/dist/shortcut-overlay/root/shortcut-overlay-root.js +13 -0
- package/dist/spatial-bar-chart/root/spatial-bar-chart-root.js +2 -1
- package/dist/spatial-heatmap/root/spatial-heatmap-root.js +2 -1
- package/dist/spatial-ribbon-chart/root/spatial-ribbon-chart-root.js +2 -1
- package/dist/spatial-scatter-chart/root/spatial-scatter-chart-root.js +2 -1
- package/dist/spatial-surface-chart/root/spatial-surface-chart-root.js +2 -1
- package/dist/spatial-treemap/root/spatial-treemap-root.js +2 -1
- package/dist/textarea/root/textarea-root.css.js +1 -1
- package/dist/textarea/root/textarea-root.d.ts +1 -0
- package/dist/textarea/root/textarea-root.js +2 -0
- package/dist/toast/root/toast-root.d.ts +1 -0
- package/dist/toast/root/toast-root.js +1 -0
- package/examples.json +1 -1
- package/lint.json +1 -1
- package/package.json +11 -9
- package/skills/helix/SKILL.md +2 -2
- package/types/jsx.d.ts +4784 -165
- package/types/svelte.d.ts +4 -0
- package/types/vue.d.ts +1122 -0
- package/types/words.d.ts +491 -0
|
@@ -2,13 +2,20 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { customElement } from '@fusion.dev/helix-core';
|
|
3
3
|
import { HelixHeadlessAreaChart } from '@fusion.dev/helix-headless/area-chart';
|
|
4
4
|
import { styles as seriesStyles } from '../../shared/chart/series.css.js';
|
|
5
|
+
import { styles as sonifyStyles } from '../../shared/chart/sonify.css.js';
|
|
5
6
|
import { styles as statusStyles } from '../../shared/chart/status.css.js';
|
|
6
7
|
import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
|
|
7
8
|
import { styles } from './area-chart-root.css.js';
|
|
8
9
|
import '../../tooltip/index.js';
|
|
9
10
|
let HelixAreaChart = class HelixAreaChart extends HelixHeadlessAreaChart {
|
|
10
11
|
static { this.tier = 'helix-'; }
|
|
11
|
-
static { this.styles = [
|
|
12
|
+
static { this.styles = [
|
|
13
|
+
seriesStyles,
|
|
14
|
+
statusStyles,
|
|
15
|
+
tooltipStyles,
|
|
16
|
+
styles,
|
|
17
|
+
sonifyStyles,
|
|
18
|
+
]; }
|
|
12
19
|
};
|
|
13
20
|
HelixAreaChart = __decorate([
|
|
14
21
|
customElement('helix-area-chart')
|
|
@@ -3,6 +3,7 @@ import { customElement, seriesIndex, seriesNames } from '@fusion.dev/helix-core'
|
|
|
3
3
|
import { HelixHeadlessBarChart } from '@fusion.dev/helix-headless/bar-chart';
|
|
4
4
|
import { property } from 'lit/decorators.js';
|
|
5
5
|
import { styles as seriesStyles } from '../../shared/chart/series.css.js';
|
|
6
|
+
import { styles as sonifyStyles } from '../../shared/chart/sonify.css.js';
|
|
6
7
|
import { styles as statusStyles } from '../../shared/chart/status.css.js';
|
|
7
8
|
import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
|
|
8
9
|
import { styles } from './bar-chart-root.css.js';
|
|
@@ -35,7 +36,13 @@ let HelixBarChart = class HelixBarChart extends HelixHeadlessBarChart {
|
|
|
35
36
|
mark(bar, 'material', glass.has(at) ? 'glass' : undefined);
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
|
-
static { this.styles = [
|
|
39
|
+
static { this.styles = [
|
|
40
|
+
seriesStyles,
|
|
41
|
+
statusStyles,
|
|
42
|
+
tooltipStyles,
|
|
43
|
+
styles,
|
|
44
|
+
sonifyStyles,
|
|
45
|
+
]; }
|
|
39
46
|
};
|
|
40
47
|
__decorate([
|
|
41
48
|
property({ reflect: true })
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {display: block}[part="composer"] {background-color: var(--chat-composer-background-color, var(--helix-color-surface));border: var(--chat-composer-border-width, var(--helix-border-thin)) solid var(--helix-color-border);border-radius: var(--helix-radii-md);display: grid;gap: var(--helix-space-2xs);padding: var(--helix-space-xs)}[part="composer"]:focus-within {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: 0}:host(:state(invalid)) [part="composer"], :host(:state(invalid)) [part="composer"]:focus-within {border-color: var(--helix-color-danger);outline-color: var(--helix-color-danger)}[part="feedback"] {color: var(--helix-color-danger);font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);line-height: var(--helix-leading-normal);margin: var(--helix-space-none);margin-block-start: var(--helix-space-2xs)}[part="field"] {background-color: transparent;border: 0;color: var(--helix-color-foreground);field-sizing: content;font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));line-height: var(--helix-leading-normal);max-block-size: var(--chat-composer-max-block-size, 12rem);padding-block: var(--helix-space-2xs);padding-inline: calc(var(--helix-space-sm) - var(--helix-space-xs) - var(--helix-border-thin));resize: none}[part="field"]:focus-visible {outline: none}[part="tools"] {align-items: center;display: flex;gap: var(--helix-space-2xs);justify-content: flex-end}[part="start"], [part="end"] {--helix-size-control: var(--helix-size-control-sm);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);align-items: center;display: flex;gap: var(--helix-space-2xs)}[part="start"] {margin-inline-end: auto}[part="end"] {margin-inline-end: var(--helix-space-2xs)}[part="start"][data-empty], [part="end"][data-empty] {display: none}[part="send"] {align-items: center;background-color: transparent;block-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));border: 0;border-radius: var(--helix-radii-sm);color: var(--helix-color-foreground-muted);cursor: pointer;display: inline-flex;inline-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));justify-content: center;padding: var(--helix-space-none)}[part="mark"] {block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight)}[part="send"]:hover:not(:disabled) {background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);color: var(--helix-color-foreground)}[part="send"]:disabled {cursor: not-allowed;opacity: 0.5}[part="send"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}`);
|
|
2
|
+
export const styles = createSheet(`:host {display: block}[part="composer"] {background-color: var(--chat-composer-background-color, var(--helix-color-surface));border: var(--chat-composer-border-width, var(--helix-border-thin)) solid var(--helix-color-border);border-radius: var(--helix-radii-md);display: grid;gap: var(--helix-space-2xs);padding: var(--helix-space-xs)}[part="composer"]:focus-within {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: 0}:host(:state(invalid)) [part="composer"], :host(:state(invalid)) [part="composer"]:focus-within {border-color: var(--helix-color-danger);outline-color: var(--helix-color-danger)}[part="feedback"] {color: var(--helix-color-danger);font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);font-weight: var(--helix-weight-medium);line-height: var(--helix-leading-normal);margin: var(--helix-space-none);margin-block-start: var(--helix-space-2xs)}[part="field"] {background-color: transparent;border: 0;color: var(--helix-color-foreground);field-sizing: content;font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));line-height: var(--helix-leading-normal);max-block-size: var(--chat-composer-max-block-size, 12rem);padding-block: var(--helix-space-2xs);padding-inline: calc(var(--helix-space-sm) - var(--helix-space-xs) - var(--helix-border-thin));resize: none}[part="field"]:focus-visible {outline: none}[part="tools"] {align-items: center;display: flex;gap: var(--helix-space-2xs);justify-content: flex-end}[part="start"], [part="end"] {--helix-size-control: var(--helix-size-control-sm);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);align-items: center;display: flex;gap: var(--helix-space-2xs)}[part="start"] {margin-inline-end: auto}[part="end"] {margin-inline-end: var(--helix-space-2xs)}[part="start"][data-empty], [part="end"][data-empty] {display: none}[part="send"], [part~="voice"] {align-items: center;background-color: transparent;block-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));border: 0;border-radius: var(--helix-radii-sm);color: var(--helix-color-foreground-muted);cursor: pointer;display: inline-flex;inline-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));justify-content: center;padding: var(--helix-space-none)}[part="mark"], [part~="voice"] svg {block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight)}[part="send"]:hover:not(:disabled), [part~="voice"]:hover:not(:disabled) {background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);color: var(--helix-color-foreground)}[part="send"]:disabled, [part~="voice"]:disabled {cursor: not-allowed;opacity: 0.5}[part="send"]:focus-visible, [part~="voice"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}`);
|
|
@@ -24,6 +24,7 @@ import type { CSSResultGroup } from 'lit';
|
|
|
24
24
|
* @cssproperty --chat-composer-background-color - Fill behind the composer.
|
|
25
25
|
* @cssproperty --chat-composer-border-width - Width of the composer's edge, so your theme can remove it.
|
|
26
26
|
* @cssproperty --chat-composer-max-block-size - Maximum height the field grows to.
|
|
27
|
+
* @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
|
|
27
28
|
*/
|
|
28
29
|
export declare class HelixChatComposer extends HelixHeadlessChatComposer {
|
|
29
30
|
static tier: string;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { customElement } from '@fusion.dev/helix-core';
|
|
3
3
|
import { HelixHeadlessChatComposer } from '@fusion.dev/helix-headless/chat';
|
|
4
|
+
import { styles as dictationStyles } from '../../shared/dictation/dictation.css.js';
|
|
4
5
|
import { styles } from './chat-composer.css.js';
|
|
5
6
|
let HelixChatComposer = class HelixChatComposer extends HelixHeadlessChatComposer {
|
|
6
7
|
static { this.tier = 'helix-'; }
|
|
7
|
-
static { this.styles = styles; }
|
|
8
|
+
static { this.styles = [styles, dictationStyles]; }
|
|
8
9
|
};
|
|
9
10
|
HelixChatComposer = __decorate([
|
|
10
11
|
customElement('helix-chat-composer')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/code-editor-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/code-editor-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
+
export const styles = createSheet(`:host {display: flex;flex-direction: column}:host([fill]) {inset: 0;position: absolute}[part="field"] {background-color: var(--code-editor-background-color, var(--helix-color-background));block-size: var(--code-editor-block-size, 24rem);border: var(--helix-border-thin) solid var(--code-editor-border-color, var(--helix-color-border));border-radius: var(--code-editor-radius, var(--helix-radii-lg));box-sizing: border-box;display: flex;flex-direction: column;overflow: hidden}:host([fill]) [part="field"] {block-size: 100%}:host([separation="plain"]) [part="field"] {border: none;border-radius: 0}[part="header"], [part="find-bar"], [part="status"] {--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);--helix-size-control: var(--helix-size-control-sm);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);align-items: center;background-color: var(--code-editor-header-background-color, var(--helix-color-surface-raised));box-sizing: border-box;display: flex;flex: 0 0 auto;gap: var(--helix-space-2xs) var(--helix-space-xs);min-inline-size: 0;padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-sm) var(--helix-space-2xs)}[part="header"] {border-block-end: var(--helix-border-thin) solid var(--code-editor-border-color, var(--helix-color-border));min-block-size: calc(var(--helix-size-control) + var(--helix-space-2xs) * 2)}[part="label"] {display: block;flex: 0 1 auto;min-inline-size: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}[part="language"] {color: var(--helix-color-foreground-muted);flex: 0 0 auto;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs)}[part="controls"] {flex: 0 0 auto;margin-inline-start: auto}:host(:state(find-open)) [part="find"], [part="find-match-case"][aria-pressed="true"], [part="find-whole-word"][aria-pressed="true"], [part="find-regex"][aria-pressed="true"] {--icon-button-background-color: color-mix(in oklab, var(--helix-color-foreground) 12%, transparent);--icon-button-foreground-color: var(--helix-color-foreground)}[part="find-bar"], [part="find-controls"] {--helix-size-control: calc(var(--helix-size-control-sm) * 0.8);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8)}[part="find-bar"] {border-block-end: var(--helix-border-thin) solid var(--code-editor-border-color, var(--helix-color-border));flex-wrap: wrap}[part="find-bar"][hidden] {display: none}[part="find-field"], [part="replace-field"] {appearance: none;background-color: var(--code-editor-background-color, var(--helix-color-background));block-size: var(--helix-size-control);border: var(--helix-border-thin) solid var(--code-editor-border-color, var(--helix-color-border));border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--helix-color-foreground);flex: 1 1 10rem;font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));max-inline-size: 20rem;min-inline-size: 0;padding-inline: var(--helix-space-xs)}[part="find-field"]:focus-visible, [part="replace-field"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part="find-field"][aria-invalid="true"] {border-color: var(--helix-color-danger)}[part="find-field"]::-webkit-search-cancel-button, [part="find-field"]::-webkit-search-decoration {appearance: none}[part="find-count"] {color: var(--helix-color-foreground-muted);flex: 0 0 auto;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);font-variant-numeric: tabular-nums;min-inline-size: 7em;white-space: nowrap}[part="find-controls"] {flex: 0 0 auto}:host(:state(replace-open)) [part="find-bar"]::after {content: "";flex-basis: 100%;order: 1}[part="replace-field"], [part="replace"], [part="replace-all"] {order: 2}:host(:state(replace-open)) [part="replace-field"] {margin-inline-start: calc(var(--helix-size-control) + var(--helix-space-xs))}[part="find-replace"] {flex: 0 0 auto}[part="body"] {color: var(--helix-color-foreground);display: flex;flex: 1 1 auto;font-family: var(--helix-font-mono);font-size: var(--code-editor-font-size, var(--helix-text-sm));font-variant-ligatures: none;min-block-size: 0}[part="control"] {all: unset;box-sizing: border-box;caret-color: var(--helix-color-foreground);flex: 1 1 auto;font: inherit;line-height: var(--helix-leading-normal);min-inline-size: 0;overflow: auto;padding: var(--helix-space-xs) var(--helix-space-sm);tab-size: 2;white-space: pre}:host([wrap]) [part="control"] {white-space: pre-wrap}[part="view"] {flex: 1 1 auto;min-block-size: 0;min-inline-size: 0}[part="control"][hidden], [part="view"][hidden] {display: none}[part="diagnostics"] {border-block-start: var(--helix-border-thin) solid var(--code-editor-border-color, var(--helix-color-border));flex: 0 0 auto;list-style: none;margin: var(--helix-space-none);max-block-size: calc(5 * (var(--helix-text-xs) * var(--helix-leading-normal) + var(--helix-space-2xs) * 2));overflow: auto;padding: var(--helix-space-none)}[part~="diagnostic"] {--icon-size: var(--helix-size-icon-tight);all: unset;align-items: center;box-sizing: border-box;color: var(--helix-color-foreground);cursor: pointer;display: flex;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);gap: var(--helix-space-xs);inline-size: 100%;line-height: var(--helix-leading-normal);padding: var(--helix-space-2xs) var(--helix-space-sm)}[part~="diagnostic"]:hover {background-color: color-mix(in oklab, var(--helix-color-foreground) 6%, transparent)}[part~="diagnostic"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: calc(var(--helix-size-focus-offset) * -1)}[part="diagnostic-icon"] {display: inline-flex;flex: 0 0 auto}[part~="diagnostic-danger"] [part="diagnostic-icon"] {color: var(--helix-color-danger)}[part~="diagnostic-warning"] [part="diagnostic-icon"] {color: var(--helix-color-warning)}[part~="diagnostic-info"] [part="diagnostic-icon"] {color: var(--helix-color-info)}[part="status"] {border-block-start: var(--helix-border-thin) solid var(--code-editor-border-color, var(--helix-color-border));color: var(--helix-color-foreground-muted);font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);font-variant-numeric: tabular-nums;gap: var(--helix-space-md);justify-content: space-between;padding-inline: var(--helix-space-sm)}:host(:disabled) [part="field"] {cursor: not-allowed;opacity: 0.5}@media print {[part="controls"], [part="find-bar"], [part="status"] {display: none}}`);
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { HelixHeadlessCodeEditor } from '@fusion.dev/helix-headless/code-editor';
|
|
2
|
+
import type { CSSResultGroup } from 'lit';
|
|
3
|
+
import '../../button/index.js';
|
|
4
|
+
import '../../icon-button/index.js';
|
|
5
|
+
import '../../toolbar/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* @summary An editor for a file of code, drawn by a code editor you connect.
|
|
8
|
+
*
|
|
9
|
+
* @description
|
|
10
|
+
* Drawn as Terminal and Code Block are: the code on the page's ground, with a
|
|
11
|
+
* header, a find bar and a status line each a strip on the raised surface,
|
|
12
|
+
* one frame around them. It is 24rem tall unless `fill` is set or
|
|
13
|
+
* `--code-editor-block-size` says otherwise. An engine draws inside it:
|
|
14
|
+
* `@fusion.dev/helix-editor` themes CodeMirror's gutter, caret, selection and
|
|
15
|
+
* syntax from your tokens, and draws a problem's line number in its tone.
|
|
16
|
+
*
|
|
17
|
+
* Set `fill` for an editor that fills a pane, such as one side of a split
|
|
18
|
+
* view.
|
|
19
|
+
*
|
|
20
|
+
* @since 0.216.0
|
|
21
|
+
* @status experimental
|
|
22
|
+
* @category inputs
|
|
23
|
+
* @aliases Code editor, CodeMirror, File editor, IDE, Monaco
|
|
24
|
+
* @documentation https://fusion.dev/helix/components/code-editor
|
|
25
|
+
*
|
|
26
|
+
* @cssproperty --code-editor-background-color - The ground the code is drawn on. Defaults to the page's background.
|
|
27
|
+
* @cssproperty --code-editor-block-size - The frame's height, as a length: 24rem unless set. Ignored with `fill`, where the container decides it.
|
|
28
|
+
* @cssproperty --code-editor-border-color - The frame's edge and the lines between its strips.
|
|
29
|
+
* @cssproperty --code-editor-font-size - The code's size. Defaults to `text-sm`.
|
|
30
|
+
* @cssproperty --code-editor-header-background-color - The fill of the header, the find bar, and the status line.
|
|
31
|
+
* @cssproperty --code-editor-radius - The frame's corner radius.
|
|
32
|
+
*/
|
|
33
|
+
export declare class HelixCodeEditor extends HelixHeadlessCodeEditor {
|
|
34
|
+
static tier: string;
|
|
35
|
+
/**
|
|
36
|
+
* Covers the container instead of taking a height of its own, for an
|
|
37
|
+
* editor that fills a pane. The container needs a position, such as
|
|
38
|
+
* `position: relative`.
|
|
39
|
+
*/
|
|
40
|
+
fill: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* How the frame stands off the page. Unset, it is outlined. `plain` draws
|
|
43
|
+
* no edge or corners, for a pane that draws its own.
|
|
44
|
+
*/
|
|
45
|
+
separation?: 'outlined' | 'plain';
|
|
46
|
+
static styles: CSSResultGroup;
|
|
47
|
+
}
|
|
48
|
+
declare global {
|
|
49
|
+
interface HTMLElementTagNameMap {
|
|
50
|
+
'helix-code-editor': HelixCodeEditor;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from '@fusion.dev/helix-core';
|
|
3
|
+
import { HelixHeadlessCodeEditor } from '@fusion.dev/helix-headless/code-editor';
|
|
4
|
+
import { property } from 'lit/decorators.js';
|
|
5
|
+
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
6
|
+
import { styles as glyphStyles } from '../../shared/glyph/glyph.css.js';
|
|
7
|
+
import { styles } from './code-editor-root.css.js';
|
|
8
|
+
import '../../button/index.js';
|
|
9
|
+
import '../../icon-button/index.js';
|
|
10
|
+
import '../../toolbar/index.js';
|
|
11
|
+
let HelixCodeEditor = class HelixCodeEditor extends HelixHeadlessCodeEditor {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.fill = false;
|
|
15
|
+
}
|
|
16
|
+
static { this.tier = 'helix-'; }
|
|
17
|
+
static { this.styles = [fieldStyles, glyphStyles, styles]; }
|
|
18
|
+
};
|
|
19
|
+
__decorate([
|
|
20
|
+
property({ reflect: true, type: Boolean })
|
|
21
|
+
], HelixCodeEditor.prototype, "fill", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
property({ reflect: true })
|
|
24
|
+
], HelixCodeEditor.prototype, "separation", void 0);
|
|
25
|
+
HelixCodeEditor = __decorate([
|
|
26
|
+
customElement('helix-code-editor')
|
|
27
|
+
], HelixCodeEditor);
|
|
28
|
+
export { HelixCodeEditor };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/code-input-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/code-input-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
+
export const styles = createSheet(`[part="field"] {background-color: var(--code-input-background-color, var(--helix-color-well));border: var(--helix-border-thin) solid var(--code-input-border-color, var(--helix-color-border));border-radius: var(--code-input-radius, var(--helix-radii-sm));display: flex;gap: var(--helix-space-2xs);padding: var(--code-input-padding, var(--helix-space-xs));transition: border-color var(--helix-duration-fast) var(--helix-easing-standard), background-color var(--helix-duration-fast) var(--helix-easing-standard)}[part="scroller"] {flex: 1 1 auto;min-inline-size: 0;scrollbar-width: thin}[part="layers"] {color: var(--helix-color-foreground);font-family: var(--helix-font-mono);font-size: var(--code-input-font-size, max(var(--helix-text-field-min), var(--helix-text-sm)));font-variant-ligatures: none;line-height: var(--helix-leading-normal);tab-size: 2}[part="control"] {caret-color: var(--helix-color-foreground)}slot[name="start"]::slotted(*), slot[name="end"]::slotted(*) {align-self: flex-start;color: var(--helix-color-foreground-muted);flex: 0 0 auto}[part="clear"], [part~="voice"] {--icon-size: var(--helix-size-icon-tight);all: unset;align-items: center;align-self: flex-start;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--helix-color-foreground-muted);cursor: pointer;display: flex;flex: 0 0 auto;justify-content: center;min-block-size: var(--helix-size-icon-loose);min-inline-size: var(--helix-size-icon-loose);transition: color var(--helix-duration-fast) var(--helix-easing-standard)}[part="clear"]:hover, [part~="voice"]:hover {color: var(--helix-color-foreground)}[part="clear"]:focus-visible, [part~="voice"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}:host(:disabled) [part="field"] {cursor: not-allowed;opacity: 0.5}:host([readonly]) [part="field"] {background-color: transparent}@media print {:host {print-color-adjust: exact}}`);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { HelixHeadlessCodeInput } from '@fusion.dev/helix-headless/code-input';
|
|
2
|
+
import type { CSSResultGroup } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary A field for a short piece of code, highlighted as it is typed.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Uses the same frame as `Textarea` and `Input`, so a form of mixed fields
|
|
8
|
+
* matches, with the code in the mono face at the size Code Block draws it.
|
|
9
|
+
* The colors are the syntax tokens, through the highlighter the page
|
|
10
|
+
* registered: `import '@fusion.dev/helix-sandbox/code-block'` colors every
|
|
11
|
+
* Code Block and Code Input on the page.
|
|
12
|
+
*
|
|
13
|
+
* @since 0.216.0
|
|
14
|
+
* @status experimental
|
|
15
|
+
* @category forms
|
|
16
|
+
* @aliases Code field, Code textarea, JSON input, Syntax highlighted input
|
|
17
|
+
* @documentation https://fusion.dev/helix/components/code-input
|
|
18
|
+
*
|
|
19
|
+
* @cssproperty --code-input-background-color - Fill behind the code.
|
|
20
|
+
* @cssproperty --code-input-border-color - Edge of the field at rest. Hover, focus and an error still draw their own.
|
|
21
|
+
* @cssproperty --code-input-font-size - The code's size. Defaults to `text-sm`, and never under 16px on a touch screen.
|
|
22
|
+
* @cssproperty --code-input-padding - Space between the edge of the field and the code.
|
|
23
|
+
* @cssproperty --code-input-radius - Corner radius of the field.
|
|
24
|
+
* @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
|
|
25
|
+
*/
|
|
26
|
+
export declare class HelixCodeInput extends HelixHeadlessCodeInput {
|
|
27
|
+
static styles: CSSResultGroup;
|
|
28
|
+
}
|
|
29
|
+
declare global {
|
|
30
|
+
interface HTMLElementTagNameMap {
|
|
31
|
+
'helix-code-input': HelixCodeInput;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from '@fusion.dev/helix-core';
|
|
3
|
+
import { HelixHeadlessCodeInput } from '@fusion.dev/helix-headless/code-input';
|
|
4
|
+
import { styles as dictationStyles } from '../../shared/dictation/dictation.css.js';
|
|
5
|
+
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
6
|
+
import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
|
|
7
|
+
import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
|
|
8
|
+
import { styles } from './code-input-root.css.js';
|
|
9
|
+
let HelixCodeInput = class HelixCodeInput extends HelixHeadlessCodeInput {
|
|
10
|
+
static { this.styles = [
|
|
11
|
+
fieldStyles,
|
|
12
|
+
fieldFrameStyles,
|
|
13
|
+
fieldStackedStyles,
|
|
14
|
+
styles,
|
|
15
|
+
dictationStyles,
|
|
16
|
+
]; }
|
|
17
|
+
};
|
|
18
|
+
HelixCodeInput = __decorate([
|
|
19
|
+
customElement('helix-code-input')
|
|
20
|
+
], HelixCodeInput);
|
|
21
|
+
export { HelixCodeInput };
|
|
@@ -2,6 +2,7 @@ import { HelixHeadlessCommand } from '@fusion.dev/helix-headless/command';
|
|
|
2
2
|
import type { CSSResultGroup } from 'lit';
|
|
3
3
|
import '../../dialog/index.js';
|
|
4
4
|
import '../../listbox/index.js';
|
|
5
|
+
import '../../option/index.js';
|
|
5
6
|
/**
|
|
6
7
|
* @summary A command palette: a list of commands that opens from anywhere on the page and filters as you type.
|
|
7
8
|
*
|
|
@@ -3,6 +3,7 @@ import { customElement } from '@fusion.dev/helix-core';
|
|
|
3
3
|
import { HelixHeadlessCommand } from '@fusion.dev/helix-headless/command';
|
|
4
4
|
import '../../dialog/index.js';
|
|
5
5
|
import '../../listbox/index.js';
|
|
6
|
+
import '../../option/index.js';
|
|
6
7
|
import { styles as liveStyles } from '../../shared/live/live.css.js';
|
|
7
8
|
import { styles } from './command-root.css.js';
|
|
8
9
|
let HelixCommand = class HelixCommand extends HelixHeadlessCommand {
|
|
@@ -3,13 +3,20 @@ import { customElement } from '@fusion.dev/helix-core';
|
|
|
3
3
|
import { HelixHeadlessDonutChart } from '@fusion.dev/helix-headless/donut-chart';
|
|
4
4
|
import { property } from 'lit/decorators.js';
|
|
5
5
|
import { styles as seriesStyles } from '../../shared/chart/series.css.js';
|
|
6
|
+
import { styles as sonifyStyles } from '../../shared/chart/sonify.css.js';
|
|
6
7
|
import { styles as statusStyles } from '../../shared/chart/status.css.js';
|
|
7
8
|
import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
|
|
8
9
|
import { styles } from './donut-chart-root.css.js';
|
|
9
10
|
import '../../tooltip/index.js';
|
|
10
11
|
let HelixDonutChart = class HelixDonutChart extends HelixHeadlessDonutChart {
|
|
11
12
|
static { this.tier = 'helix-'; }
|
|
12
|
-
static { this.styles = [
|
|
13
|
+
static { this.styles = [
|
|
14
|
+
seriesStyles,
|
|
15
|
+
statusStyles,
|
|
16
|
+
tooltipStyles,
|
|
17
|
+
styles,
|
|
18
|
+
sonifyStyles,
|
|
19
|
+
]; }
|
|
13
20
|
};
|
|
14
21
|
__decorate([
|
|
15
22
|
property({ reflect: true })
|
|
@@ -30,7 +30,13 @@ registerElementEvents({
|
|
|
30
30
|
],
|
|
31
31
|
'helix-carousel': ['helix-activate', 'helix-select'],
|
|
32
32
|
'helix-chat': ['helix-before-pin', 'helix-history', 'helix-pin', 'helix-send'],
|
|
33
|
-
'helix-chat-composer': [
|
|
33
|
+
'helix-chat-composer': [
|
|
34
|
+
'helix-before-listen',
|
|
35
|
+
'helix-listen',
|
|
36
|
+
'helix-send',
|
|
37
|
+
'helix-typing',
|
|
38
|
+
'input',
|
|
39
|
+
],
|
|
34
40
|
'helix-chat-message': ['helix-send'],
|
|
35
41
|
'helix-checkbox': ['change', 'helix-before-toggle', 'input'],
|
|
36
42
|
'helix-checkbox-group': ['change', 'helix-before-change', 'input'],
|
|
@@ -42,6 +48,15 @@ registerElementEvents({
|
|
|
42
48
|
'helix-copy-error',
|
|
43
49
|
'helix-toggle',
|
|
44
50
|
],
|
|
51
|
+
'helix-code-editor': ['change', 'helix-before-change', 'input'],
|
|
52
|
+
'helix-code-input': [
|
|
53
|
+
'change',
|
|
54
|
+
'helix-before-change',
|
|
55
|
+
'helix-before-listen',
|
|
56
|
+
'helix-clear',
|
|
57
|
+
'helix-listen',
|
|
58
|
+
'input',
|
|
59
|
+
],
|
|
45
60
|
'helix-color-input': [
|
|
46
61
|
'change',
|
|
47
62
|
'helix-before-change',
|
|
@@ -124,9 +139,11 @@ registerElementEvents({
|
|
|
124
139
|
'change',
|
|
125
140
|
'helix-before-change',
|
|
126
141
|
'helix-before-close',
|
|
142
|
+
'helix-before-listen',
|
|
127
143
|
'helix-before-open',
|
|
128
144
|
'helix-dismiss',
|
|
129
145
|
'helix-facet',
|
|
146
|
+
'helix-listen',
|
|
130
147
|
'helix-select',
|
|
131
148
|
'input',
|
|
132
149
|
'toggle',
|
|
@@ -153,7 +170,14 @@ registerElementEvents({
|
|
|
153
170
|
'helix-icon': ['error', 'load'],
|
|
154
171
|
'helix-icon-button': ['helix-press'],
|
|
155
172
|
'helix-image': ['error', 'load'],
|
|
156
|
-
'helix-input': [
|
|
173
|
+
'helix-input': [
|
|
174
|
+
'change',
|
|
175
|
+
'helix-before-change',
|
|
176
|
+
'helix-before-listen',
|
|
177
|
+
'helix-clear',
|
|
178
|
+
'helix-listen',
|
|
179
|
+
'input',
|
|
180
|
+
],
|
|
157
181
|
'helix-kbd': ['helix-shortcut'],
|
|
158
182
|
'helix-legend': ['change', 'helix-before-change'],
|
|
159
183
|
'helix-lightbox': [
|
|
@@ -177,8 +201,10 @@ registerElementEvents({
|
|
|
177
201
|
'helix-listbox': [
|
|
178
202
|
'change',
|
|
179
203
|
'helix-before-change',
|
|
204
|
+
'helix-before-listen',
|
|
180
205
|
'helix-before-reorder',
|
|
181
206
|
'helix-filter',
|
|
207
|
+
'helix-listen',
|
|
182
208
|
'helix-load-more',
|
|
183
209
|
'helix-reorder',
|
|
184
210
|
'input',
|
|
@@ -354,7 +380,14 @@ registerElementEvents({
|
|
|
354
380
|
'helix-terminal-restart',
|
|
355
381
|
'helix-terminal-title',
|
|
356
382
|
],
|
|
357
|
-
'helix-textarea': [
|
|
383
|
+
'helix-textarea': [
|
|
384
|
+
'change',
|
|
385
|
+
'helix-before-change',
|
|
386
|
+
'helix-before-listen',
|
|
387
|
+
'helix-clear',
|
|
388
|
+
'helix-listen',
|
|
389
|
+
'input',
|
|
390
|
+
],
|
|
358
391
|
'helix-time-input': [
|
|
359
392
|
'change',
|
|
360
393
|
'helix-before-change',
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {--_filter-input-size: var(--filter-input-size, var(--helix-size-control))}[part="field"] {align-items: center;background-color: var(--filter-input-background-color, var(--helix-color-well));border: var(--helix-border-thin) solid var(--filter-input-field-border-color, var(--helix-color-border));border-radius: var(--filter-input-radius, var(--helix-radii-sm));color: var(--helix-color-foreground-muted);display: flex;flex-wrap: wrap;gap: var(--helix-space-2xs);min-block-size: var(--_filter-input-size);padding-block: var(--helix-space-2xs);padding-inline: var(--filter-input-padding-inline, var(--helix-space-xs));transition: border-color var(--helix-duration-fast) var(--helix-easing-standard), background-color var(--helix-duration-fast) var(--helix-easing-standard)}::slotted([slot="tags"]) {flex: 0 0 auto;max-inline-size: 100%}[part="control"] {flex: 1 1 var(--filter-input-control-size, 6ch)}[part="lead"] {align-items: center;align-self: stretch;border-inline-end: var(--helix-border-thin) solid var(--filter-input-lead-border-color, var(--helix-color-border));display: flex;margin-block: calc(var(--helix-space-2xs) * -1);margin-inline-start: calc(var(--helix-space-xs) * -1);padding-inline: var(--helix-space-2xs)}[part="lead"][hidden] {display: none}[part="lead"], slot[name="end"] {--button-size: var(--filter-input-action-size, var(--helix-size-tag));--icon-button-size: var(--filter-input-action-size, var(--helix-size-tag));--button-padding-inline: var(--filter-input-action-padding-inline, var(--helix-space-xs))}slot[name="start"]::slotted(*), slot[name="end"]::slotted(*) {color: var(--helix-color-foreground-muted);flex: 0 0 auto}[part="clear"] {--icon-size: 0.85em;all: unset;align-items: center;align-self: center;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--filter-input-clear-color, var(--helix-color-foreground-muted));cursor: pointer;display: flex;flex: 0 0 auto;justify-content: center;min-block-size: var(--helix-size-icon-loose);min-inline-size: var(--helix-size-icon-loose);transition: color var(--helix-duration-fast) var(--helix-easing-standard)}[part="clear"]:hover {background-color: color-mix(in oklab, currentcolor 12%, transparent);color: var(--filter-input-clear-color-hover, var(--helix-color-foreground))}[part="clear"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}:host(:disabled) [part="field"] {cursor: not-allowed;opacity: 0.5}@media print {:host {print-color-adjust: exact}}[part="surface"] {--_floating-border-color: var(--filter-input-border-color, var(--helix-color-border));--_floating-border-width: var(--filter-input-border-width, var(--helix-border-floating));--_floating-shadow: var(--filter-input-shadow, var(--helix-shadow-floating));box-sizing: border-box;inline-size: var(--filter-input-panel-size, var(--floating-anchor-inline-size, 100%));max-block-size: var(--floating-available-block-size, 20rem);min-inline-size: max-content;overflow-y: auto;padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-none);position: absolute}[part="empty"], [part="loading"] {--_collection-inset-block: var(--helix-space-xs);--_collection-inset-inline: var(--helix-space-xs)}`);
|
|
2
|
+
export const styles = createSheet(`:host {--_filter-input-size: var(--filter-input-size, var(--helix-size-control))}[part="field"] {align-items: center;background-color: var(--filter-input-background-color, var(--helix-color-well));border: var(--helix-border-thin) solid var(--filter-input-field-border-color, var(--helix-color-border));border-radius: var(--filter-input-radius, var(--helix-radii-sm));color: var(--helix-color-foreground-muted);display: flex;flex-wrap: wrap;gap: var(--helix-space-2xs);min-block-size: var(--_filter-input-size);padding-block: var(--helix-space-2xs);padding-inline: var(--filter-input-padding-inline, var(--helix-space-xs));transition: border-color var(--helix-duration-fast) var(--helix-easing-standard), background-color var(--helix-duration-fast) var(--helix-easing-standard)}::slotted([slot="tags"]) {flex: 0 0 auto;max-inline-size: 100%}[part="control"] {flex: 1 1 var(--filter-input-control-size, 6ch)}[part="lead"] {align-items: center;align-self: stretch;border-inline-end: var(--helix-border-thin) solid var(--filter-input-lead-border-color, var(--helix-color-border));display: flex;margin-block: calc(var(--helix-space-2xs) * -1);margin-inline-start: calc(var(--helix-space-xs) * -1);padding-inline: var(--helix-space-2xs)}[part="lead"][hidden] {display: none}[part="lead"], slot[name="end"] {--button-size: var(--filter-input-action-size, var(--helix-size-tag));--icon-button-size: var(--filter-input-action-size, var(--helix-size-tag));--button-padding-inline: var(--filter-input-action-padding-inline, var(--helix-space-xs))}slot[name="start"]::slotted(*), slot[name="end"]::slotted(*) {color: var(--helix-color-foreground-muted);flex: 0 0 auto}[part="clear"], [part~="voice"] {--icon-size: 0.85em;all: unset;align-items: center;align-self: center;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--filter-input-clear-color, var(--helix-color-foreground-muted));cursor: pointer;display: flex;flex: 0 0 auto;justify-content: center;min-block-size: var(--helix-size-icon-loose);min-inline-size: var(--helix-size-icon-loose);transition: color var(--helix-duration-fast) var(--helix-easing-standard)}[part="clear"]:hover, [part~="voice"]:hover {background-color: color-mix(in oklab, currentcolor 12%, transparent);color: var(--filter-input-clear-color-hover, var(--helix-color-foreground))}[part="clear"]:focus-visible, [part~="voice"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}:host(:disabled) [part="field"] {cursor: not-allowed;opacity: 0.5}@media print {:host {print-color-adjust: exact}}[part="surface"] {--_floating-border-color: var(--filter-input-border-color, var(--helix-color-border));--_floating-border-width: var(--filter-input-border-width, var(--helix-border-floating));--_floating-shadow: var(--filter-input-shadow, var(--helix-shadow-floating));box-sizing: border-box;inline-size: var(--filter-input-panel-size, var(--floating-anchor-inline-size, 100%));max-block-size: var(--floating-available-block-size, 20rem);min-inline-size: max-content;overflow-y: auto;padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-none);position: absolute}[part="empty"], [part="loading"] {--_collection-inset-block: var(--helix-space-xs);--_collection-inset-inline: var(--helix-space-xs)}`);
|
|
@@ -26,6 +26,7 @@ import type { CSSResultGroup } from 'lit';
|
|
|
26
26
|
* @aliases SearchField, FacetInput, TokenInput
|
|
27
27
|
* @documentation https://fusion.dev/helix/components/filter-input
|
|
28
28
|
*
|
|
29
|
+
* @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
|
|
29
30
|
* @cssproperty --filter-input-action-padding-inline - The space on either side of a slotted control's label. It follows `--helix-space-xs`, the space a token uses.
|
|
30
31
|
* @cssproperty --filter-input-action-size - The height of a control slotted at either end. It follows `--helix-size-tag`, so it matches the height of the tokens beside it.
|
|
31
32
|
* @cssproperty --filter-input-background-color - The fill behind the field.
|
|
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { customElement } from '@fusion.dev/helix-core';
|
|
3
3
|
import { HelixHeadlessFilterInput } from '@fusion.dev/helix-headless/filter-input';
|
|
4
4
|
import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
|
|
5
|
+
import { styles as dictationStyles } from '../../shared/dictation/dictation.css.js';
|
|
5
6
|
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
6
7
|
import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
|
|
7
8
|
import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
|
|
@@ -24,6 +25,7 @@ let HelixFilterInput = class HelixFilterInput extends HelixHeadlessFilterInput {
|
|
|
24
25
|
floatingEntranceStyles,
|
|
25
26
|
collectionStateStyles,
|
|
26
27
|
styles,
|
|
28
|
+
dictationStyles,
|
|
27
29
|
]; }
|
|
28
30
|
};
|
|
29
31
|
HelixFilterInput = __decorate([
|
|
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { customElement } from '@fusion.dev/helix-core';
|
|
3
3
|
import { HelixHeadlessHeatmap } from '@fusion.dev/helix-headless/heatmap';
|
|
4
4
|
import { property } from 'lit/decorators.js';
|
|
5
|
+
import { styles as sonifyStyles } from '../../shared/chart/sonify.css.js';
|
|
5
6
|
import { styles } from './heatmap-root.css.js';
|
|
6
7
|
import '../../tooltip/index.js';
|
|
7
8
|
let HelixHeatmap = class HelixHeatmap extends HelixHeadlessHeatmap {
|
|
@@ -11,7 +12,7 @@ let HelixHeatmap = class HelixHeatmap extends HelixHeadlessHeatmap {
|
|
|
11
12
|
this.minCell = 12;
|
|
12
13
|
}
|
|
13
14
|
static { this.tier = 'helix-'; }
|
|
14
|
-
static { this.styles = styles; }
|
|
15
|
+
static { this.styles = [styles, sonifyStyles]; }
|
|
15
16
|
};
|
|
16
17
|
__decorate([
|
|
17
18
|
property({ reflect: true })
|
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export * from './checkbox/index.js';
|
|
|
26
26
|
export * from './checkbox-group/index.js';
|
|
27
27
|
export * from './code/index.js';
|
|
28
28
|
export * from './code-block/index.js';
|
|
29
|
+
export * from './code-editor/index.js';
|
|
30
|
+
export * from './code-input/index.js';
|
|
29
31
|
export * from './color-input/index.js';
|
|
30
32
|
export * from './color-picker/index.js';
|
|
31
33
|
export * from './combobox/index.js';
|
|
@@ -63,6 +65,7 @@ export * from './listbox/index.js';
|
|
|
63
65
|
export * from './loader/index.js';
|
|
64
66
|
export * from './log/index.js';
|
|
65
67
|
export * from './map/index.js';
|
|
68
|
+
export * from './markdown/index.js';
|
|
66
69
|
export * from './megamenu/index.js';
|
|
67
70
|
export * from './menu/filter/index.js';
|
|
68
71
|
export * from './menu/index.js';
|
|
@@ -87,6 +90,7 @@ export * from './sandbox/index.js';
|
|
|
87
90
|
export * from './scatter-chart/index.js';
|
|
88
91
|
export * from './scroll-area/index.js';
|
|
89
92
|
export * from './select/index.js';
|
|
93
|
+
export * from './shortcut-overlay/index.js';
|
|
90
94
|
export * from './skeleton/index.js';
|
|
91
95
|
export * from './skip-link/index.js';
|
|
92
96
|
export * from './slider/index.js';
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,8 @@ export * from './checkbox/index.js';
|
|
|
21
21
|
export * from './checkbox-group/index.js';
|
|
22
22
|
export * from './code/index.js';
|
|
23
23
|
export * from './code-block/index.js';
|
|
24
|
+
export * from './code-editor/index.js';
|
|
25
|
+
export * from './code-input/index.js';
|
|
24
26
|
export * from './color-input/index.js';
|
|
25
27
|
export * from './color-picker/index.js';
|
|
26
28
|
export * from './combobox/index.js';
|
|
@@ -58,6 +60,7 @@ export * from './listbox/index.js';
|
|
|
58
60
|
export * from './loader/index.js';
|
|
59
61
|
export * from './log/index.js';
|
|
60
62
|
export * from './map/index.js';
|
|
63
|
+
export * from './markdown/index.js';
|
|
61
64
|
export * from './megamenu/index.js';
|
|
62
65
|
export * from './menu/filter/index.js';
|
|
63
66
|
export * from './menu/index.js';
|
|
@@ -82,6 +85,7 @@ export * from './sandbox/index.js';
|
|
|
82
85
|
export * from './scatter-chart/index.js';
|
|
83
86
|
export * from './scroll-area/index.js';
|
|
84
87
|
export * from './select/index.js';
|
|
88
|
+
export * from './shortcut-overlay/index.js';
|
|
85
89
|
export * from './skeleton/index.js';
|
|
86
90
|
export * from './skip-link/index.js';
|
|
87
91
|
export * from './slider/index.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {--_input-size: var(--input-size, var(--helix-size-control))}[part="field"] {align-items: center;background-color: var(--input-background-color, var(--helix-color-well));block-size: var(--_input-size);border: var(--helix-border-thin) solid var(--input-border-color, var(--helix-color-border));border-radius: var(--input-radius, var(--helix-radii-sm));color: var(--helix-color-foreground-muted);display: flex;gap: var(--helix-space-2xs);padding-inline: var(--input-padding-inline, var(--helix-space-xs));transition: border-color var(--helix-duration-fast) var(--helix-easing-standard), background-color var(--helix-duration-fast) var(--helix-easing-standard)}[part="control"] {block-size: 100%}[part="control"]::-webkit-search-cancel-button {appearance: none}slot[name="start"]::slotted(*), slot[name="end"]::slotted(*) {color: var(--helix-color-foreground-muted);flex: 0 0 auto}:host(:disabled) [part="field"] {cursor: not-allowed;opacity: 0.5}:host([readonly]) [part="field"] {background-color: transparent}[part="clear"], [part~="reveal"] {--icon-size: var(--helix-size-icon-tight);all: unset;align-items: center;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--helix-color-foreground-muted);cursor: pointer;display: flex;flex: 0 0 auto;justify-content: center;min-block-size: var(--helix-size-icon-loose);min-inline-size: var(--helix-size-icon-loose);transition: color var(--helix-duration-fast) var(--helix-easing-standard)}[part="clear"]:hover, [part~="reveal"]:hover {color: var(--helix-color-foreground)}[part="clear"]:focus-visible, [part~="reveal"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part~="reveal"][aria-pressed="true"] {color: var(--helix-color-foreground)}@media print {:host {print-color-adjust: exact}}`);
|
|
2
|
+
export const styles = createSheet(`:host {--_input-size: var(--input-size, var(--helix-size-control))}[part="field"] {align-items: center;background-color: var(--input-background-color, var(--helix-color-well));block-size: var(--_input-size);border: var(--helix-border-thin) solid var(--input-border-color, var(--helix-color-border));border-radius: var(--input-radius, var(--helix-radii-sm));color: var(--helix-color-foreground-muted);display: flex;gap: var(--helix-space-2xs);padding-inline: var(--input-padding-inline, var(--helix-space-xs));transition: border-color var(--helix-duration-fast) var(--helix-easing-standard), background-color var(--helix-duration-fast) var(--helix-easing-standard)}[part="control"] {block-size: 100%}[part="control"]::-webkit-search-cancel-button {appearance: none}slot[name="start"]::slotted(*), slot[name="end"]::slotted(*) {color: var(--helix-color-foreground-muted);flex: 0 0 auto}:host(:disabled) [part="field"] {cursor: not-allowed;opacity: 0.5}:host([readonly]) [part="field"] {background-color: transparent}[part="clear"], [part~="reveal"], [part~="voice"] {--icon-size: var(--helix-size-icon-tight);all: unset;align-items: center;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--helix-color-foreground-muted);cursor: pointer;display: flex;flex: 0 0 auto;justify-content: center;min-block-size: var(--helix-size-icon-loose);min-inline-size: var(--helix-size-icon-loose);transition: color var(--helix-duration-fast) var(--helix-easing-standard)}[part="clear"]:hover, [part~="reveal"]:hover, [part~="voice"]:hover {color: var(--helix-color-foreground)}[part="clear"]:focus-visible, [part~="reveal"]:focus-visible, [part~="voice"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}[part~="reveal"][aria-pressed="true"] {color: var(--helix-color-foreground)}@media print {:host {print-color-adjust: exact}}`);
|
|
@@ -22,6 +22,7 @@ import type { CSSResultGroup } from 'lit';
|
|
|
22
22
|
* @aliases TextField, Field, TextInput
|
|
23
23
|
* @documentation https://fusion.dev/helix/components/input
|
|
24
24
|
*
|
|
25
|
+
* @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
|
|
25
26
|
* @cssproperty --input-background-color - Fill behind the text.
|
|
26
27
|
* @cssproperty --input-border-color - Edge of the field at rest. Hover, focus and an error still draw their own.
|
|
27
28
|
* @cssproperty --input-padding-inline - Space between the edge of the field and what is inside it.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { customElement } from '@fusion.dev/helix-core';
|
|
3
3
|
import { HelixHeadlessInput } from '@fusion.dev/helix-headless/input';
|
|
4
|
+
import { styles as dictationStyles } from '../../shared/dictation/dictation.css.js';
|
|
4
5
|
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
5
6
|
import { styles as fieldFrameStyles } from '../../shared/field/field-frame.css.js';
|
|
6
7
|
import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
|
|
@@ -13,6 +14,7 @@ let HelixInput = class HelixInput extends HelixHeadlessInput {
|
|
|
13
14
|
fieldFrameStyles,
|
|
14
15
|
fieldStackedStyles,
|
|
15
16
|
styles,
|
|
17
|
+
dictationStyles,
|
|
16
18
|
]; }
|
|
17
19
|
};
|
|
18
20
|
HelixInput = __decorate([
|
|
@@ -3,6 +3,7 @@ import { customElement } from '@fusion.dev/helix-core';
|
|
|
3
3
|
import { HelixHeadlessLineChart } from '@fusion.dev/helix-headless/line-chart';
|
|
4
4
|
import { property } from 'lit/decorators.js';
|
|
5
5
|
import { styles as seriesStyles } from '../../shared/chart/series.css.js';
|
|
6
|
+
import { styles as sonifyStyles } from '../../shared/chart/sonify.css.js';
|
|
6
7
|
import { styles as statusStyles } from '../../shared/chart/status.css.js';
|
|
7
8
|
import { styles as terminusStyles } from '../../shared/chart/terminus.css.js';
|
|
8
9
|
import { styles as tooltipStyles } from '../../shared/chart/tooltip.css.js';
|
|
@@ -16,6 +17,7 @@ let HelixLineChart = class HelixLineChart extends HelixHeadlessLineChart {
|
|
|
16
17
|
tooltipStyles,
|
|
17
18
|
terminusStyles,
|
|
18
19
|
styles,
|
|
20
|
+
sonifyStyles,
|
|
19
21
|
]; }
|
|
20
22
|
};
|
|
21
23
|
__decorate([
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createSheet } from '@fusion.dev/helix-core';
|
|
2
|
-
export const styles = createSheet(`:host {display: flex;flex-direction: column;gap: var(--helix-space-2xs)}[part="items"] {--option-radius: var(--helix-radii-none);background-color: var(--listbox-background-color, var(--helix-color-surface));border: var(--listbox-border, var(--helix-border-thin) solid var(--helix-color-border));border-radius: var(--helix-radii-sm);display: flex;flex-direction: column;gap: var(--helix-space-none);max-block-size: var(--listbox-max-block-size, 14rem);overflow-y: auto;padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-none)}:host([layout="grid"]) [part="items"] {display: grid;grid-template-columns: repeat(auto-fill, minmax(min(var(--listbox-column-min-inline-size, 8rem), 100%), 1fr))}[part="items"]:focus-visible {border-color: var(--helix-color-primary);outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: 0}:host(:state(invalid)) [part="items"], :host(:state(invalid)) [part="items"]:focus-visible {border-color: var(--helix-color-danger);outline-color: var(--helix-color-danger)}:host(:disabled) {opacity: 0.5}:host(:disabled) [part="items"] {cursor: not-allowed}[part="empty"], [part="loading"] {--_collection-inset-block: var(--helix-space-xs);--_collection-inset-inline: var(--helix-space-xs)}[part="error"] {color: var(--listbox-error-color, var(--helix-color-danger));font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);margin: var(--helix-space-none);padding: var(--helix-space-xs);text-align: center}[part="filter-icon"] {align-items: center;color: var(--helix-color-foreground-subtle);display: inline-flex;flex: 0 0 auto}[part="filter-icon"] svg, slot[name="filter-icon"]::slotted(*) {--icon-size: var(--helix-size-icon-tight);block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight)}[part="search"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);display: flex;gap: var(--helix-space-2xs);padding: var(--helix-space-2xs);padding-inline-start: var(--helix-space-xs)}[part="search-field"] {appearance: none;flex: 1 1 auto;min-inline-size: 0;background-color: transparent;block-size: var(--helix-size-control-tight);border: none;box-sizing: border-box;color: var(--helix-color-foreground);font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));font-weight: var(--helix-weight-medium);inline-size: 100%;padding-inline: var(--helix-space-xs)}[part="search-field"]:focus-visible {outline: none}:host([loading]) [part="items"] {opacity: 0.5}@media print {:host {print-color-adjust: exact}}`);
|
|
2
|
+
export const styles = createSheet(`:host {display: flex;flex-direction: column;gap: var(--helix-space-2xs)}[part="items"] {--option-radius: var(--helix-radii-none);background-color: var(--listbox-background-color, var(--helix-color-surface));border: var(--listbox-border, var(--helix-border-thin) solid var(--helix-color-border));border-radius: var(--helix-radii-sm);display: flex;flex-direction: column;gap: var(--helix-space-none);max-block-size: var(--listbox-max-block-size, 14rem);overflow-y: auto;padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-none)}:host([layout="grid"]) [part="items"] {display: grid;grid-template-columns: repeat(auto-fill, minmax(min(var(--listbox-column-min-inline-size, 8rem), 100%), 1fr))}[part="items"]:focus-visible {border-color: var(--helix-color-primary);outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: 0}:host(:state(invalid)) [part="items"], :host(:state(invalid)) [part="items"]:focus-visible {border-color: var(--helix-color-danger);outline-color: var(--helix-color-danger)}:host(:disabled) {opacity: 0.5}:host(:disabled) [part="items"] {cursor: not-allowed}[part="empty"], [part="loading"] {--_collection-inset-block: var(--helix-space-xs);--_collection-inset-inline: var(--helix-space-xs)}[part="error"] {color: var(--listbox-error-color, var(--helix-color-danger));font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);margin: var(--helix-space-none);padding: var(--helix-space-xs);text-align: center}[part="filter-icon"] {align-items: center;color: var(--helix-color-foreground-subtle);display: inline-flex;flex: 0 0 auto}[part="filter-icon"] svg, slot[name="filter-icon"]::slotted(*) {--icon-size: var(--helix-size-icon-tight);block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight)}[part="search"] {align-items: center;border-block-end: var(--helix-border-thin) solid var(--helix-color-border);display: flex;gap: var(--helix-space-2xs);padding: var(--helix-space-2xs);padding-inline-start: var(--helix-space-xs)}[part="search-field"] {appearance: none;flex: 1 1 auto;min-inline-size: 0;background-color: transparent;block-size: var(--helix-size-control-tight);border: none;box-sizing: border-box;color: var(--helix-color-foreground);font-family: var(--helix-font-sans);font-size: max(var(--helix-text-field-min), var(--helix-text-sm));font-weight: var(--helix-weight-medium);inline-size: 100%;padding-inline: var(--helix-space-xs)}[part="search-field"]:focus-visible {outline: none}[part~="voice"] {--icon-size: var(--helix-size-icon-tight);all: unset;align-items: center;border-radius: var(--helix-radii-sm);box-sizing: border-box;color: var(--helix-color-foreground-muted);cursor: pointer;display: flex;flex: 0 0 auto;justify-content: center;min-block-size: var(--helix-size-icon-loose);min-inline-size: var(--helix-size-icon-loose);transition: color var(--helix-duration-fast) var(--helix-easing-standard)}[part~="voice"]:hover {color: var(--helix-color-foreground)}[part~="voice"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset)}:host([loading]) [part="items"] {opacity: 0.5}@media print {:host {print-color-adjust: exact}}`);
|
|
@@ -17,6 +17,7 @@ import type { CSSResultGroup } from 'lit';
|
|
|
17
17
|
* @aliases Options, Select list
|
|
18
18
|
* @documentation https://fusion.dev/helix/components/listbox
|
|
19
19
|
*
|
|
20
|
+
* @cssproperty --dictation-level - How loud the microphone is while the field listens for dictation, from 0 to 1, which the element sets; the ring around the dictation button grows with it.
|
|
20
21
|
* @cssproperty --listbox-background-color - The panel's fill. Set it to `transparent` when the list is already inside a panel.
|
|
21
22
|
* @cssproperty --listbox-border - The panel's border, as a shorthand. Set it to `none` when the list is already inside a panel.
|
|
22
23
|
* @cssproperty --listbox-column-min-inline-size - How narrow a column may be with `layout="grid"`. As many columns as fit are drawn. Defaults to `8rem`.
|
|
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { customElement } from '@fusion.dev/helix-core';
|
|
3
3
|
import { HelixHeadlessListbox } from '@fusion.dev/helix-headless/listbox';
|
|
4
4
|
import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
|
|
5
|
+
import { styles as dictationStyles } from '../../shared/dictation/dictation.css.js';
|
|
5
6
|
import { styles as fieldStyles } from '../../shared/field/field.css.js';
|
|
6
7
|
import { styles as fieldStackedStyles } from '../../shared/field/field-stacked.css.js';
|
|
7
8
|
import { styles as liveStyles } from '../../shared/live/live.css.js';
|
|
@@ -14,6 +15,7 @@ let HelixListbox = class HelixListbox extends HelixHeadlessListbox {
|
|
|
14
15
|
fieldStyles,
|
|
15
16
|
fieldStackedStyles,
|
|
16
17
|
styles,
|
|
18
|
+
dictationStyles,
|
|
17
19
|
]; }
|
|
18
20
|
};
|
|
19
21
|
HelixListbox = __decorate([
|