@aceshooting/lyra-ui 2.8.0 → 2.10.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/README.md +3 -1
- package/custom-elements.json +1288 -62
- package/dist/components/button/button.class.d.ts +57 -0
- package/dist/components/button/button.class.d.ts.map +1 -0
- package/dist/components/button/button.class.js +108 -0
- package/dist/components/button/button.class.js.map +1 -0
- package/dist/components/button/button.d.ts +2 -0
- package/dist/components/button/button.d.ts.map +1 -0
- package/dist/components/button/button.js +5 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/button.styles.d.ts +2 -0
- package/dist/components/button/button.styles.d.ts.map +1 -0
- package/dist/components/button/button.styles.js +121 -0
- package/dist/components/button/button.styles.js.map +1 -0
- package/dist/components/heatmap/heatmap.class.d.ts +41 -6
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +132 -21
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/heatmap/heatmap.styles.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.styles.js +6 -0
- package/dist/components/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/input/input.class.d.ts +109 -0
- package/dist/components/input/input.class.d.ts.map +1 -0
- package/dist/components/input/input.class.js +269 -0
- package/dist/components/input/input.class.js.map +1 -0
- package/dist/components/input/input.d.ts +2 -0
- package/dist/components/input/input.d.ts.map +1 -0
- package/dist/components/input/input.js +5 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input/input.styles.d.ts +2 -0
- package/dist/components/input/input.styles.d.ts.map +1 -0
- package/dist/components/input/input.styles.js +88 -0
- package/dist/components/input/input.styles.js.map +1 -0
- package/dist/components/tool-result-view/tool-result-view.class.d.ts +13 -5
- package/dist/components/tool-result-view/tool-result-view.class.d.ts.map +1 -1
- package/dist/components/tool-result-view/tool-result-view.class.js +26 -7
- package/dist/components/tool-result-view/tool-result-view.class.js.map +1 -1
- package/dist/components/tool-result-view/tool-result-view.styles.d.ts.map +1 -1
- package/dist/components/tool-result-view/tool-result-view.styles.js +11 -0
- package/dist/components/tool-result-view/tool-result-view.styles.js.map +1 -1
- package/dist/internal/icons.d.ts +6 -0
- package/dist/internal/icons.d.ts.map +1 -1
- package/dist/internal/icons.js +20 -0
- package/dist/internal/icons.js.map +1 -1
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +5 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +2 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/lyra.d.ts +7 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +4 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +136 -9
- package/llms.txt +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export type ButtonVariant = 'neutral' | 'brand' | 'success' | 'warning' | 'danger';
|
|
4
|
+
export type ButtonAppearance = 'filled' | 'outlined' | 'plain';
|
|
5
|
+
export type ButtonSize = 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
6
|
+
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
7
|
+
/**
|
|
8
|
+
* `<lyra-button>` — a generic action-button primitive, the `lyra-*` equivalent of a plain
|
|
9
|
+
* `wa-button`. Renders an internal native `<button part="base">` (never a real `<wa-button>` —
|
|
10
|
+
* this library has no runtime dependency on Web Awesome, matching `<lyra-copy-button>`/
|
|
11
|
+
* `<lyra-export-button>`'s own clean-room, API-mirroring approach). `type="submit"`/`type="reset"`
|
|
12
|
+
* are handled by this component itself via the host's own `closest('form')` — a shadow-internal
|
|
13
|
+
* native `<button type="submit">` does not participate in an ancestor light-DOM form's submission
|
|
14
|
+
* on its own, since form-submitter semantics don't cross the shadow boundary.
|
|
15
|
+
*
|
|
16
|
+
* A host `aria-label` is forwarded to the internal button as a literal string (for an icon-only
|
|
17
|
+
* button with no visible label); external `aria-labelledby`/`aria-describedby` idrefs are not
|
|
18
|
+
* copied across the shadow boundary.
|
|
19
|
+
*
|
|
20
|
+
* @customElement lyra-button
|
|
21
|
+
* @slot - Default slot: the button's label content.
|
|
22
|
+
* @slot start - Leading icon/content, rendered before the label.
|
|
23
|
+
* @slot end - Trailing icon/content, rendered after the label.
|
|
24
|
+
* @csspart base - The internal native `<button>`.
|
|
25
|
+
* @csspart label - The default-slot label wrapper.
|
|
26
|
+
* @csspart start - The `start` slot wrapper.
|
|
27
|
+
* @csspart end - The `end` slot wrapper.
|
|
28
|
+
* @csspart spinner - The loading spinner, present only while `loading` is `true`.
|
|
29
|
+
*/
|
|
30
|
+
export declare class LyraButton extends LyraElement {
|
|
31
|
+
static styles: import("lit").CSSResultGroup[];
|
|
32
|
+
/** Tone vocabulary shared with `<lyra-chip>`/`<lyra-avatar>`'s own `tone` property, named
|
|
33
|
+
* `variant` here (not `tone`) to mirror `wa-button`'s own attribute name for a mechanical
|
|
34
|
+
* migration off a plain `wa-button`. */
|
|
35
|
+
variant: ButtonVariant;
|
|
36
|
+
appearance: ButtonAppearance;
|
|
37
|
+
size: ButtonSize;
|
|
38
|
+
/** Forwarded to this component's own submit/reset handling — see the class doc comment above
|
|
39
|
+
* for why this component (not the shadow-internal `<button>`) owns that behavior. */
|
|
40
|
+
type: ButtonType;
|
|
41
|
+
/** Shows an internal spinner in place of interaction affordance and disables the button, without
|
|
42
|
+
* clearing `disabled` — a consumer's own `disabled` state and a transient `loading` state are
|
|
43
|
+
* independent (mirrors `<lyra-export-button>`'s own `loading`/`disabled` pair). */
|
|
44
|
+
loading: boolean;
|
|
45
|
+
disabled: boolean;
|
|
46
|
+
private buttonEl?;
|
|
47
|
+
focus(options?: FocusOptions): void;
|
|
48
|
+
blur(): void;
|
|
49
|
+
private onClick;
|
|
50
|
+
render(): TemplateResult;
|
|
51
|
+
}
|
|
52
|
+
declare global {
|
|
53
|
+
interface HTMLElementTagNameMap {
|
|
54
|
+
'lyra-button': LyraButton;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=button.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.class.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,CAAC,MAAM,iCAAgC;IAE7C;;6CAEyC;IACZ,OAAO,EAAE,aAAa,CAAa;IACnC,UAAU,EAAE,gBAAgB,CAAY;IACxC,IAAI,EAAE,UAAU,CAAO;IACpD;0FACsF;IAC1E,IAAI,EAAE,UAAU,CAAY;IACxC;;wFAEoF;IACxC,OAAO,UAAS;IAChB,QAAQ,UAAS;IAE5C,OAAO,CAAC,QAAQ,CAAC,CAAoB;IAE7C,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAEQ,IAAI,IAAI,IAAI,CAEpB;IAED,OAAO,CAAC,OAAO,CAMb;IAEF,MAAM,IAAI,cAAc,CAiBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property, query } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { spinnerIcon } from '../../internal/icons.js';
|
|
11
|
+
import { styles } from './button.styles.js';
|
|
12
|
+
/**
|
|
13
|
+
* `<lyra-button>` — a generic action-button primitive, the `lyra-*` equivalent of a plain
|
|
14
|
+
* `wa-button`. Renders an internal native `<button part="base">` (never a real `<wa-button>` —
|
|
15
|
+
* this library has no runtime dependency on Web Awesome, matching `<lyra-copy-button>`/
|
|
16
|
+
* `<lyra-export-button>`'s own clean-room, API-mirroring approach). `type="submit"`/`type="reset"`
|
|
17
|
+
* are handled by this component itself via the host's own `closest('form')` — a shadow-internal
|
|
18
|
+
* native `<button type="submit">` does not participate in an ancestor light-DOM form's submission
|
|
19
|
+
* on its own, since form-submitter semantics don't cross the shadow boundary.
|
|
20
|
+
*
|
|
21
|
+
* A host `aria-label` is forwarded to the internal button as a literal string (for an icon-only
|
|
22
|
+
* button with no visible label); external `aria-labelledby`/`aria-describedby` idrefs are not
|
|
23
|
+
* copied across the shadow boundary.
|
|
24
|
+
*
|
|
25
|
+
* @customElement lyra-button
|
|
26
|
+
* @slot - Default slot: the button's label content.
|
|
27
|
+
* @slot start - Leading icon/content, rendered before the label.
|
|
28
|
+
* @slot end - Trailing icon/content, rendered after the label.
|
|
29
|
+
* @csspart base - The internal native `<button>`.
|
|
30
|
+
* @csspart label - The default-slot label wrapper.
|
|
31
|
+
* @csspart start - The `start` slot wrapper.
|
|
32
|
+
* @csspart end - The `end` slot wrapper.
|
|
33
|
+
* @csspart spinner - The loading spinner, present only while `loading` is `true`.
|
|
34
|
+
*/
|
|
35
|
+
export class LyraButton extends LyraElement {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
/** Tone vocabulary shared with `<lyra-chip>`/`<lyra-avatar>`'s own `tone` property, named
|
|
39
|
+
* `variant` here (not `tone`) to mirror `wa-button`'s own attribute name for a mechanical
|
|
40
|
+
* migration off a plain `wa-button`. */
|
|
41
|
+
this.variant = 'neutral';
|
|
42
|
+
this.appearance = 'filled';
|
|
43
|
+
this.size = 'm';
|
|
44
|
+
/** Forwarded to this component's own submit/reset handling — see the class doc comment above
|
|
45
|
+
* for why this component (not the shadow-internal `<button>`) owns that behavior. */
|
|
46
|
+
this.type = 'button';
|
|
47
|
+
/** Shows an internal spinner in place of interaction affordance and disables the button, without
|
|
48
|
+
* clearing `disabled` — a consumer's own `disabled` state and a transient `loading` state are
|
|
49
|
+
* independent (mirrors `<lyra-export-button>`'s own `loading`/`disabled` pair). */
|
|
50
|
+
this.loading = false;
|
|
51
|
+
this.disabled = false;
|
|
52
|
+
this.onClick = () => {
|
|
53
|
+
if (this.type === 'submit') {
|
|
54
|
+
this.closest('form')?.requestSubmit();
|
|
55
|
+
}
|
|
56
|
+
else if (this.type === 'reset') {
|
|
57
|
+
this.closest('form')?.reset();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
62
|
+
focus(options) {
|
|
63
|
+
this.buttonEl?.focus(options);
|
|
64
|
+
}
|
|
65
|
+
blur() {
|
|
66
|
+
this.buttonEl?.blur();
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
const ariaLabel = this.getAttribute('aria-label');
|
|
70
|
+
return html `
|
|
71
|
+
<button
|
|
72
|
+
part="base"
|
|
73
|
+
type="button"
|
|
74
|
+
aria-label=${ariaLabel || nothing}
|
|
75
|
+
aria-busy=${this.loading ? 'true' : 'false'}
|
|
76
|
+
?disabled=${this.disabled || this.loading}
|
|
77
|
+
@click=${this.onClick}
|
|
78
|
+
>
|
|
79
|
+
<span part="start"><slot name="start"></slot></span>
|
|
80
|
+
<span part="label"><slot></slot></span>
|
|
81
|
+
<span part="end"><slot name="end"></slot></span>
|
|
82
|
+
${this.loading ? html `<span part="spinner" aria-hidden="true">${spinnerIcon()}</span>` : ''}
|
|
83
|
+
</button>
|
|
84
|
+
`;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
__decorate([
|
|
88
|
+
property({ reflect: true })
|
|
89
|
+
], LyraButton.prototype, "variant", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
property({ reflect: true })
|
|
92
|
+
], LyraButton.prototype, "appearance", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
property({ reflect: true })
|
|
95
|
+
], LyraButton.prototype, "size", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
property()
|
|
98
|
+
], LyraButton.prototype, "type", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
property({ type: Boolean, reflect: true })
|
|
101
|
+
], LyraButton.prototype, "loading", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
property({ type: Boolean, reflect: true })
|
|
104
|
+
], LyraButton.prototype, "disabled", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
query('button')
|
|
107
|
+
], LyraButton.prototype, "buttonEl", void 0);
|
|
108
|
+
//# sourceMappingURL=button.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.class.js","sourceRoot":"","sources":["../../../src/components/button/button.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAO5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IAA3C;;QAGE;;iDAEyC;QACZ,YAAO,GAAkB,SAAS,CAAC;QACnC,eAAU,GAAqB,QAAQ,CAAC;QACxC,SAAI,GAAe,GAAG,CAAC;QACpD;8FACsF;QAC1E,SAAI,GAAe,QAAQ,CAAC;QACxC;;4FAEoF;QACxC,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,KAAK,CAAC;QAYrD,YAAO,GAAG,GAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;IAoBJ,CAAC;aArDQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAmBpC,KAAK,CAAC,OAAsB;QACnC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEQ,IAAI;QACX,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAUD,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,CAAA;;;;qBAIM,SAAS,IAAI,OAAO;oBACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;oBAC/B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;iBAChC,IAAI,CAAC,OAAO;;;;;UAKnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,2CAA2C,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;CACF;AAhD8B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAoC;AACnC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAyC;AACxC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAwB;AAGxC;IAAX,QAAQ,EAAE;wCAA6B;AAII;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAiB;AAChB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAkB;AAEpC;IAAxB,KAAK,CAAC,QAAQ,CAAC;4CAAsC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAsHlB,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: inline-block;
|
|
5
|
+
--lyra-button-accent: var(--lyra-color-text);
|
|
6
|
+
--lyra-button-fill: var(--lyra-color-surface);
|
|
7
|
+
--lyra-button-on-fill: var(--lyra-color-text);
|
|
8
|
+
--lyra-button-border: var(--lyra-color-border);
|
|
9
|
+
}
|
|
10
|
+
:host([variant='brand']) {
|
|
11
|
+
--lyra-button-accent: var(--lyra-color-brand);
|
|
12
|
+
--lyra-button-fill: var(--lyra-color-brand);
|
|
13
|
+
--lyra-button-on-fill: var(--lyra-color-on-brand);
|
|
14
|
+
--lyra-button-border: var(--lyra-color-brand);
|
|
15
|
+
}
|
|
16
|
+
:host([variant='success']) {
|
|
17
|
+
--lyra-button-accent: var(--lyra-color-success);
|
|
18
|
+
--lyra-button-fill: var(--lyra-color-success);
|
|
19
|
+
--lyra-button-on-fill: var(--lyra-color-on-success);
|
|
20
|
+
--lyra-button-border: var(--lyra-color-success);
|
|
21
|
+
}
|
|
22
|
+
:host([variant='warning']) {
|
|
23
|
+
--lyra-button-accent: var(--lyra-color-warning);
|
|
24
|
+
--lyra-button-fill: var(--lyra-color-warning);
|
|
25
|
+
--lyra-button-on-fill: var(--lyra-color-on-warning);
|
|
26
|
+
--lyra-button-border: var(--lyra-color-warning);
|
|
27
|
+
}
|
|
28
|
+
:host([variant='danger']) {
|
|
29
|
+
--lyra-button-accent: var(--lyra-color-danger);
|
|
30
|
+
--lyra-button-fill: var(--lyra-color-danger);
|
|
31
|
+
--lyra-button-on-fill: var(--lyra-color-on-danger);
|
|
32
|
+
--lyra-button-border: var(--lyra-color-danger);
|
|
33
|
+
}
|
|
34
|
+
[part='base'] {
|
|
35
|
+
display: inline-flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: center;
|
|
38
|
+
gap: var(--lyra-space-2xs);
|
|
39
|
+
border-radius: var(--lyra-radius);
|
|
40
|
+
border: var(--lyra-border-width-thin) solid var(--lyra-button-border);
|
|
41
|
+
font: inherit;
|
|
42
|
+
font-weight: var(--lyra-font-weight-semibold);
|
|
43
|
+
cursor: pointer;
|
|
44
|
+
}
|
|
45
|
+
:host([appearance='filled']) [part='base'] {
|
|
46
|
+
background: var(--lyra-button-fill);
|
|
47
|
+
color: var(--lyra-button-on-fill);
|
|
48
|
+
}
|
|
49
|
+
:host([appearance='outlined']) [part='base'] {
|
|
50
|
+
background: transparent;
|
|
51
|
+
color: var(--lyra-button-accent);
|
|
52
|
+
}
|
|
53
|
+
:host([appearance='plain']) [part='base'] {
|
|
54
|
+
background: transparent;
|
|
55
|
+
color: var(--lyra-button-accent);
|
|
56
|
+
border-color: transparent;
|
|
57
|
+
}
|
|
58
|
+
[part='base']:disabled {
|
|
59
|
+
opacity: var(--lyra-opacity-disabled);
|
|
60
|
+
cursor: not-allowed;
|
|
61
|
+
}
|
|
62
|
+
[part='base']:focus-visible {
|
|
63
|
+
outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
|
|
64
|
+
outline-offset: var(--lyra-focus-ring-offset);
|
|
65
|
+
}
|
|
66
|
+
[part='start']:empty,
|
|
67
|
+
[part='end']:empty {
|
|
68
|
+
display: none;
|
|
69
|
+
}
|
|
70
|
+
[part='start'],
|
|
71
|
+
[part='end'] {
|
|
72
|
+
display: inline-flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
}
|
|
75
|
+
:host([size='xs']) [part='base'] {
|
|
76
|
+
padding-inline: var(--lyra-space-xs);
|
|
77
|
+
padding-block: var(--lyra-space-2xs);
|
|
78
|
+
font-size: var(--lyra-font-size-xs);
|
|
79
|
+
min-block-size: var(--lyra-size-1-5rem);
|
|
80
|
+
}
|
|
81
|
+
:host([size='s']) [part='base'] {
|
|
82
|
+
padding-inline: var(--lyra-space-s);
|
|
83
|
+
padding-block: var(--lyra-space-2xs);
|
|
84
|
+
font-size: var(--lyra-font-size-sm);
|
|
85
|
+
min-block-size: var(--lyra-size-1-75rem);
|
|
86
|
+
}
|
|
87
|
+
:host([size='m']) [part='base'] {
|
|
88
|
+
padding-inline: var(--lyra-space-m);
|
|
89
|
+
padding-block: var(--lyra-space-xs);
|
|
90
|
+
font-size: var(--lyra-font-size-md-sm);
|
|
91
|
+
min-block-size: var(--lyra-size-2rem);
|
|
92
|
+
}
|
|
93
|
+
:host([size='l']) [part='base'] {
|
|
94
|
+
padding-inline: var(--lyra-space-l);
|
|
95
|
+
padding-block: var(--lyra-space-s);
|
|
96
|
+
font-size: var(--lyra-font-size-md);
|
|
97
|
+
min-block-size: var(--lyra-size-2-5rem);
|
|
98
|
+
}
|
|
99
|
+
:host([size='xl']) [part='base'] {
|
|
100
|
+
padding-inline: var(--lyra-space-2xl);
|
|
101
|
+
padding-block: var(--lyra-space-m);
|
|
102
|
+
font-size: var(--lyra-font-size-lg);
|
|
103
|
+
min-block-size: var(--lyra-size-3rem);
|
|
104
|
+
}
|
|
105
|
+
[part='spinner'] {
|
|
106
|
+
display: inline-flex;
|
|
107
|
+
animation: lyra-button-spin 1s linear infinite;
|
|
108
|
+
}
|
|
109
|
+
@keyframes lyra-button-spin {
|
|
110
|
+
to {
|
|
111
|
+
transform: rotate(360deg);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
@media (prefers-reduced-motion: reduce) {
|
|
115
|
+
[part='spinner'] {
|
|
116
|
+
animation-duration: 0.001ms;
|
|
117
|
+
animation-iteration-count: 1;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
`;
|
|
121
|
+
//# sourceMappingURL=button.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.styles.js","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHxB,CAAC"}
|
|
@@ -31,12 +31,22 @@ export interface HeatmapAnnotation {
|
|
|
31
31
|
date?: string;
|
|
32
32
|
label?: string;
|
|
33
33
|
}
|
|
34
|
+
/** A single cell to mark as persistently selected -- `row`/`col` in matrix mode, `date` in
|
|
35
|
+
* calendar mode (whichever pair matches the active `mode`; the other field is ignored),
|
|
36
|
+
* mirroring `HeatmapAnnotation`'s own row/col/date shape. */
|
|
37
|
+
export interface HeatmapSelectedCell {
|
|
38
|
+
row?: number;
|
|
39
|
+
col?: number;
|
|
40
|
+
date?: string;
|
|
41
|
+
}
|
|
34
42
|
/**
|
|
35
|
-
* Parses a strict `#rgb
|
|
36
|
-
*
|
|
37
|
-
*
|
|
43
|
+
* Parses a strict `#rgb`/`#rgba`/`#rrggbb`/`#rrggbbaa` hex string into an
|
|
44
|
+
* `[r, g, b, a]` quadruple (`a` in `[0, 1]`, defaulting to `1` for the
|
|
45
|
+
* 3/6-digit alpha-less forms), or `null` if `hex` isn't one (rather than
|
|
46
|
+
* silently coercing an unparsable string to `0` via
|
|
47
|
+
* `Number.parseInt(..., 16)` returning `NaN`).
|
|
38
48
|
*/
|
|
39
|
-
export declare function hexToRgb(hex: string): [number, number, number] | null;
|
|
49
|
+
export declare function hexToRgb(hex: string): [number, number, number, number] | null;
|
|
40
50
|
/**
|
|
41
51
|
* Normalizes a bucket count to the safe, renderable range. Non-finite values
|
|
42
52
|
* restore the public default; finite values are floored and clamped to
|
|
@@ -46,7 +56,11 @@ export declare function hexToRgb(hex: string): [number, number, number] | null;
|
|
|
46
56
|
export declare function normalizeBucketCount(bucketCount: number): number;
|
|
47
57
|
/**
|
|
48
58
|
* Resolves any syntactically valid CSS `<color>` — hex, `rgb()`, `hsl()`,
|
|
49
|
-
* `oklch()`, a named color, etc. — to an `[r, g, b]`
|
|
59
|
+
* `oklch()`, a named color, etc. — to an `[r, g, b, a]` quadruple (`a` in
|
|
60
|
+
* `[0, 1]`, `1` for an opaque input). A translucent input (e.g.
|
|
61
|
+
* `rgba(255,255,255,.028)`, a common way to key a color ramp off a themed
|
|
62
|
+
* "quiet surface" token) round-trips its alpha rather than silently
|
|
63
|
+
* resolving to the fully opaque equivalent.
|
|
50
64
|
*
|
|
51
65
|
* Hand-rolling a parser for every CSS color syntax is unnecessary and
|
|
52
66
|
* error-prone (a naive hex-only parser silently turns an unrecognized format
|
|
@@ -58,7 +72,7 @@ export declare function normalizeBucketCount(bucketCount: number): number;
|
|
|
58
72
|
* back to `fallbackHex` (with a one-time `console.warn`) instead of
|
|
59
73
|
* silently drawing the wrong color.
|
|
60
74
|
*/
|
|
61
|
-
export declare function resolveRgb(color: string, fallbackHex: string): [number, number, number];
|
|
75
|
+
export declare function resolveRgb(color: string, fallbackHex: string): [number, number, number, number];
|
|
62
76
|
/** Linearly interpolates between two CSS colors (any valid syntax) at `t` in `[0, 1]`. */
|
|
63
77
|
export declare function mixColor(fromColor: string, toColor: string, t: number): string;
|
|
64
78
|
export type LyraHeatmapCellClickDetail = {
|
|
@@ -198,6 +212,16 @@ export declare class LyraHeatmap extends LyraElement<LyraHeatmapEventMap> {
|
|
|
198
212
|
set bucketCount(value: number);
|
|
199
213
|
/** Cells to ring-highlight — `row`/`col` in matrix mode, `date` in calendar mode. See `HeatmapAnnotation`. */
|
|
200
214
|
annotations: HeatmapAnnotation[];
|
|
215
|
+
/**
|
|
216
|
+
* The single cell to mark as persistently selected -- `row`/`col` in matrix mode, `date` in
|
|
217
|
+
* calendar mode. Purely a controlled, consumer-owned visual/accessibility marker, mirroring
|
|
218
|
+
* `<lyra-lite-chart>`'s `selectedIndex` -- this component never mutates it itself; a consumer
|
|
219
|
+
* wires it up from `lyra-cell-click` (or any other source) to build a toggle-select
|
|
220
|
+
* interaction. Unset (the default, `null`) draws no selection ring, adds no selected-cell text
|
|
221
|
+
* to the host's `aria-label`, and adds no "(selected)" suffix to the live-region announcement,
|
|
222
|
+
* reproducing today's exact output.
|
|
223
|
+
*/
|
|
224
|
+
selectedCell: HeatmapSelectedCell | null;
|
|
201
225
|
/** Formats the per-cell tooltip and keyboard live-region text — receives the cell position
|
|
202
226
|
* (`MatrixCellPos` in matrix mode, `CalendarCellPos` in calendar mode) and its value. Falls back to
|
|
203
227
|
* the built-in English "Row X, Col Y: value" / "Mon DD: value" template when unset. */
|
|
@@ -313,6 +337,9 @@ export declare class LyraHeatmap extends LyraElement<LyraHeatmapEventMap> {
|
|
|
313
337
|
private queueThemeRefresh;
|
|
314
338
|
private watchTheme;
|
|
315
339
|
protected willUpdate(changed: PropertyValues): void;
|
|
340
|
+
/** The localized "Selected: <cell>." description appended to the host `aria-label`, or `''` when
|
|
341
|
+
* `selectedCell` is unset or doesn't resolve to a real cell in the current grid. */
|
|
342
|
+
private selectedCellDescription;
|
|
316
343
|
/**
|
|
317
344
|
* The real (non-no-data) value range across `values` (or `days` in
|
|
318
345
|
* calendar mode), or `null` if there is none. Only called from
|
|
@@ -338,6 +365,14 @@ export declare class LyraHeatmap extends LyraElement<LyraHeatmapEventMap> {
|
|
|
338
365
|
private focusRingColor;
|
|
339
366
|
/** Reads the customizable canvas-drawn annotation-ring stroke color off the host's computed style. */
|
|
340
367
|
private annotationColor;
|
|
368
|
+
/** Reads the customizable canvas-drawn selected-cell-ring stroke color off the host's computed style. */
|
|
369
|
+
private selectedColor;
|
|
370
|
+
/** Whether `selectedCell` refers to the given grid position, in whichever mode is active --
|
|
371
|
+
* `row`/`col` equality in matrix mode, resolved-date equality in calendar mode (looking the
|
|
372
|
+
* position's actual date up via `calendarCellAt()`, the same way the annotation ring resolves
|
|
373
|
+
* `ann.date` against `cells`). Shared by the live-region announcement, which needs to know
|
|
374
|
+
* whether the just-announced cell *is* the selection. */
|
|
375
|
+
private isSelectedPos;
|
|
341
376
|
private draw;
|
|
342
377
|
private scheduleDraw;
|
|
343
378
|
private colorRamp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap.class.d.ts","sourceRoot":"","sources":["../../../src/components/heatmap/heatmap.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,EAAsE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoB1H;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"heatmap.class.d.ts","sourceRoot":"","sources":["../../../src/components/heatmap/heatmap.class.ts"],"names":[],"mappings":"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"}
|