@aceshooting/lyra-ui 2.5.0 → 2.7.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 +13 -7
- package/custom-elements.json +4560 -1025
- package/dist/components/app-rail/app-rail.class.d.ts +8 -1
- package/dist/components/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail.class.js +12 -2
- package/dist/components/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/chat-composer/chat-composer.class.d.ts +27 -0
- package/dist/components/chat-composer/chat-composer.class.d.ts.map +1 -1
- package/dist/components/chat-composer/chat-composer.class.js +64 -1
- package/dist/components/chat-composer/chat-composer.class.js.map +1 -1
- package/dist/components/chat-message/chat-message.class.d.ts +7 -1
- package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/chat-message/chat-message.class.js +15 -4
- package/dist/components/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/checkbox/checkbox.class.d.ts +7 -0
- package/dist/components/checkbox/checkbox.class.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.class.js +7 -0
- package/dist/components/checkbox/checkbox.class.js.map +1 -1
- package/dist/components/chip/chip.class.d.ts +2 -0
- package/dist/components/chip/chip.class.d.ts.map +1 -1
- package/dist/components/chip/chip.class.js +3 -1
- package/dist/components/chip/chip.class.js.map +1 -1
- package/dist/components/chip/chip.styles.d.ts.map +1 -1
- package/dist/components/chip/chip.styles.js +10 -2
- package/dist/components/chip/chip.styles.js.map +1 -1
- package/dist/components/combobox/combobox.class.d.ts +16 -0
- package/dist/components/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/combobox/combobox.class.js +47 -2
- package/dist/components/combobox/combobox.class.js.map +1 -1
- package/dist/components/combobox/combobox.styles.d.ts.map +1 -1
- package/dist/components/combobox/combobox.styles.js +56 -6
- package/dist/components/combobox/combobox.styles.js.map +1 -1
- package/dist/components/conversation-item/conversation-item.class.d.ts +14 -0
- package/dist/components/conversation-item/conversation-item.class.d.ts.map +1 -1
- package/dist/components/conversation-item/conversation-item.class.js +38 -0
- package/dist/components/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/date-picker/date-input.class.d.ts +25 -0
- package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/date-picker/date-input.class.js +61 -0
- package/dist/components/date-picker/date-input.class.js.map +1 -1
- package/dist/components/dialog/dialog.class.d.ts +13 -1
- package/dist/components/dialog/dialog.class.d.ts.map +1 -1
- package/dist/components/dialog/dialog.class.js +24 -8
- package/dist/components/dialog/dialog.class.js.map +1 -1
- package/dist/components/empty/empty.class.d.ts +2 -0
- package/dist/components/empty/empty.class.d.ts.map +1 -1
- package/dist/components/empty/empty.class.js +2 -0
- package/dist/components/empty/empty.class.js.map +1 -1
- package/dist/components/empty/empty.styles.d.ts.map +1 -1
- package/dist/components/empty/empty.styles.js +6 -3
- package/dist/components/empty/empty.styles.js.map +1 -1
- package/dist/components/export-button/export-button.class.d.ts +19 -2
- package/dist/components/export-button/export-button.class.d.ts.map +1 -1
- package/dist/components/export-button/export-button.class.js +32 -8
- package/dist/components/export-button/export-button.class.js.map +1 -1
- package/dist/components/export-button/export-button.styles.d.ts.map +1 -1
- package/dist/components/export-button/export-button.styles.js +8 -1
- package/dist/components/export-button/export-button.styles.js.map +1 -1
- package/dist/components/gauge/gauge.class.d.ts +6 -2
- package/dist/components/gauge/gauge.class.d.ts.map +1 -1
- package/dist/components/gauge/gauge.class.js +40 -4
- package/dist/components/gauge/gauge.class.js.map +1 -1
- package/dist/components/gauge/gauge.styles.js +1 -1
- package/dist/components/graph/graph.class.d.ts +28 -1
- package/dist/components/graph/graph.class.d.ts.map +1 -1
- package/dist/components/graph/graph.class.js +94 -42
- package/dist/components/graph/graph.class.js.map +1 -1
- package/dist/components/graph/graph.styles.d.ts.map +1 -1
- package/dist/components/graph/graph.styles.js +4 -1
- package/dist/components/graph/graph.styles.js.map +1 -1
- package/dist/components/heatmap/heatmap.class.d.ts +22 -1
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +38 -3
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/map/map.class.d.ts +4 -2
- package/dist/components/map/map.class.d.ts.map +1 -1
- package/dist/components/map/map.class.js +5 -3
- package/dist/components/map/map.class.js.map +1 -1
- package/dist/components/mention-popover/mention-popover.class.d.ts +9 -4
- package/dist/components/mention-popover/mention-popover.class.d.ts.map +1 -1
- package/dist/components/mention-popover/mention-popover.class.js +11 -5
- package/dist/components/mention-popover/mention-popover.class.js.map +1 -1
- package/dist/components/menu/menu.class.d.ts +10 -4
- package/dist/components/menu/menu.class.d.ts.map +1 -1
- package/dist/components/menu/menu.class.js +11 -5
- package/dist/components/menu/menu.class.js.map +1 -1
- package/dist/components/model-select/model-select.class.d.ts +44 -0
- package/dist/components/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/model-select/model-select.class.js +125 -0
- package/dist/components/model-select/model-select.class.js.map +1 -1
- package/dist/components/model-select/model-select.styles.d.ts.map +1 -1
- package/dist/components/model-select/model-select.styles.js +21 -0
- package/dist/components/model-select/model-select.styles.js.map +1 -1
- package/dist/components/pagination/pagination.class.d.ts +81 -0
- package/dist/components/pagination/pagination.class.d.ts.map +1 -0
- package/dist/components/pagination/pagination.class.js +278 -0
- package/dist/components/pagination/pagination.class.js.map +1 -0
- package/dist/components/pagination/pagination.d.ts +2 -0
- package/dist/components/pagination/pagination.d.ts.map +1 -0
- package/dist/components/pagination/pagination.js +5 -0
- package/dist/components/pagination/pagination.js.map +1 -0
- package/dist/components/pagination/pagination.styles.d.ts +2 -0
- package/dist/components/pagination/pagination.styles.d.ts.map +1 -0
- package/dist/components/pagination/pagination.styles.js +142 -0
- package/dist/components/pagination/pagination.styles.js.map +1 -0
- package/dist/components/phone-input/phone-input.class.d.ts +191 -0
- package/dist/components/phone-input/phone-input.class.d.ts.map +1 -0
- package/dist/components/phone-input/phone-input.class.js +493 -0
- package/dist/components/phone-input/phone-input.class.js.map +1 -0
- package/dist/components/phone-input/phone-input.d.ts +2 -0
- package/dist/components/phone-input/phone-input.d.ts.map +1 -0
- package/dist/components/phone-input/phone-input.js +5 -0
- package/dist/components/phone-input/phone-input.js.map +1 -0
- package/dist/components/phone-input/phone-input.styles.d.ts +2 -0
- package/dist/components/phone-input/phone-input.styles.d.ts.map +1 -0
- package/dist/components/phone-input/phone-input.styles.js +123 -0
- package/dist/components/phone-input/phone-input.styles.js.map +1 -0
- package/dist/components/poll-status/poll-status.styles.d.ts.map +1 -1
- package/dist/components/poll-status/poll-status.styles.js +5 -6
- package/dist/components/poll-status/poll-status.styles.js.map +1 -1
- package/dist/components/segmented/segmented.class.d.ts +4 -0
- package/dist/components/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/segmented/segmented.class.js +2 -1
- package/dist/components/segmented/segmented.class.js.map +1 -1
- package/dist/components/segmented/segmented.styles.d.ts.map +1 -1
- package/dist/components/segmented/segmented.styles.js +7 -0
- package/dist/components/segmented/segmented.styles.js.map +1 -1
- package/dist/components/skeleton/skeleton.styles.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.styles.js +1 -0
- package/dist/components/skeleton/skeleton.styles.js.map +1 -1
- package/dist/components/slider/slider.class.d.ts +3 -0
- package/dist/components/slider/slider.class.d.ts.map +1 -1
- package/dist/components/slider/slider.class.js +3 -0
- package/dist/components/slider/slider.class.js.map +1 -1
- package/dist/components/stream-status/stream-status.styles.d.ts.map +1 -1
- package/dist/components/stream-status/stream-status.styles.js +4 -5
- package/dist/components/stream-status/stream-status.styles.js.map +1 -1
- package/dist/components/switch/switch.class.d.ts +20 -0
- package/dist/components/switch/switch.class.d.ts.map +1 -1
- package/dist/components/switch/switch.class.js +83 -23
- package/dist/components/switch/switch.class.js.map +1 -1
- package/dist/components/switch/switch.styles.d.ts.map +1 -1
- package/dist/components/switch/switch.styles.js +18 -0
- package/dist/components/switch/switch.styles.js.map +1 -1
- package/dist/components/table/table.class.d.ts +12 -0
- package/dist/components/table/table.class.d.ts.map +1 -1
- package/dist/components/table/table.class.js +6 -1
- package/dist/components/table/table.class.js.map +1 -1
- package/dist/components/table/table.styles.d.ts.map +1 -1
- package/dist/components/table/table.styles.js +3 -0
- package/dist/components/table/table.styles.js.map +1 -1
- package/dist/components/textarea/textarea.class.d.ts +127 -0
- package/dist/components/textarea/textarea.class.d.ts.map +1 -0
- package/dist/components/textarea/textarea.class.js +364 -0
- package/dist/components/textarea/textarea.class.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +2 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -0
- package/dist/components/textarea/textarea.js +5 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/textarea/textarea.styles.d.ts +2 -0
- package/dist/components/textarea/textarea.styles.d.ts.map +1 -0
- package/dist/components/textarea/textarea.styles.js +67 -0
- package/dist/components/textarea/textarea.styles.js.map +1 -0
- package/dist/components/time-range/time-range.class.d.ts +4 -0
- package/dist/components/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/time-range/time-range.class.js +4 -0
- package/dist/components/time-range/time-range.class.js.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +6 -0
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +8 -0
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/tree/tree-node.class.d.ts +3 -0
- package/dist/components/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/tree/tree-node.class.js +16 -1
- package/dist/components/tree/tree-node.class.js.map +1 -1
- package/dist/components/tree/tree-node.styles.d.ts.map +1 -1
- package/dist/components/tree/tree-node.styles.js +27 -1
- package/dist/components/tree/tree-node.styles.js.map +1 -1
- package/dist/components/tree/tree.class.d.ts +11 -1
- package/dist/components/tree/tree.class.d.ts.map +1 -1
- package/dist/components/tree/tree.class.js +6 -2
- package/dist/components/tree/tree.class.js.map +1 -1
- package/dist/components/typing-indicator/typing-indicator.class.d.ts +4 -0
- package/dist/components/typing-indicator/typing-indicator.class.d.ts.map +1 -1
- package/dist/components/typing-indicator/typing-indicator.class.js +4 -0
- package/dist/components/typing-indicator/typing-indicator.class.js.map +1 -1
- package/dist/components/typing-indicator/typing-indicator.styles.d.ts.map +1 -1
- package/dist/components/typing-indicator/typing-indicator.styles.js +24 -22
- package/dist/components/typing-indicator/typing-indicator.styles.js.map +1 -1
- package/dist/components/widget/widget.class.d.ts +5 -0
- package/dist/components/widget/widget.class.d.ts.map +1 -1
- package/dist/components/widget/widget.class.js +22 -1
- package/dist/components/widget/widget.class.js.map +1 -1
- package/dist/components/widget/widget.styles.d.ts.map +1 -1
- package/dist/components/widget/widget.styles.js +3 -2
- package/dist/components/widget/widget.styles.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 +6 -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 +3 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +6 -2
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +14 -2
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +6 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +615 -92
- package/llms.txt +5 -3
- package/package.json +12 -2
|
@@ -2,9 +2,20 @@ import { type TemplateResult, type PropertyValues } from 'lit';
|
|
|
2
2
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
3
|
import { type CsvColumn } from './csv.js';
|
|
4
4
|
export type ExportFormat = 'csv' | 'json';
|
|
5
|
+
export interface ExportFormatDescriptor {
|
|
6
|
+
/** Stable id carried through `lyra-export`. */
|
|
7
|
+
id: string;
|
|
8
|
+
/** Consumer-supplied, already-localized menu label. */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Optional consumer-supplied secondary menu text. */
|
|
11
|
+
description?: string;
|
|
12
|
+
/** Optional metadata for the external export handler. */
|
|
13
|
+
extension?: string;
|
|
14
|
+
}
|
|
15
|
+
export type ExportFormatOption = ExportFormat | ExportFormatDescriptor;
|
|
5
16
|
export interface LyraExportButtonEventMap {
|
|
6
17
|
'lyra-export': CustomEvent<{
|
|
7
|
-
format:
|
|
18
|
+
format: string;
|
|
8
19
|
}>;
|
|
9
20
|
'lyra-export-complete': CustomEvent<{
|
|
10
21
|
format: ExportFormat;
|
|
@@ -27,6 +38,8 @@ export interface LyraExportButtonEventMap {
|
|
|
27
38
|
* @csspart trigger - The button that triggers the export (or opens the format menu).
|
|
28
39
|
* @csspart menu - The format-choice menu, shown when more than one format is configured.
|
|
29
40
|
* @csspart menu-item - A single format option inside the menu.
|
|
41
|
+
* @csspart format-label - A format option's primary label.
|
|
42
|
+
* @csspart format-description - A custom format option's optional secondary text.
|
|
30
43
|
*/
|
|
31
44
|
export declare class LyraExportButton extends LyraElement<LyraExportButtonEventMap> {
|
|
32
45
|
static styles: import("lit").CSSResultGroup[];
|
|
@@ -37,8 +50,10 @@ export declare class LyraExportButton extends LyraElement<LyraExportButtonEventM
|
|
|
37
50
|
* degrading to a blank file while only JSON had a fallback. */
|
|
38
51
|
columns: CsvColumn[];
|
|
39
52
|
filename: string;
|
|
40
|
-
formats:
|
|
53
|
+
formats: ExportFormatOption[];
|
|
41
54
|
disabled: boolean;
|
|
55
|
+
/** Controlled busy state for async/server-generated exports. */
|
|
56
|
+
loading: boolean;
|
|
42
57
|
/** Trigger button text, also feeds the format menu's `aria-label` (as
|
|
43
58
|
* "`${label} format`") so assistive tech gets an accessible name for it.
|
|
44
59
|
* Left at its default English `'Export'`, the rendered text instead
|
|
@@ -76,6 +91,8 @@ export declare class LyraExportButton extends LyraElement<LyraExportButtonEventM
|
|
|
76
91
|
private effectiveColumns;
|
|
77
92
|
/** Applies the same `columns` allow-list CSV exports use, so JSON can't leak fields CSV hides. */
|
|
78
93
|
private rowsForExport;
|
|
94
|
+
private formatId;
|
|
95
|
+
private formatLabel;
|
|
79
96
|
private doExport;
|
|
80
97
|
private onTriggerClick;
|
|
81
98
|
/** Resolves `label`'s effective text: an explicit override wins verbatim; left at the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-button.class.d.ts","sourceRoot":"","sources":["../../../src/components/export-button/export-button.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGlE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"export-button.class.d.ts","sourceRoot":"","sources":["../../../src/components/export-button/export-button.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGlE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,sBAAsB,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,sBAAsB,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAC9D,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACrC;AACD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,wBAAwB,CAAC;IACzE,MAAM,CAAC,MAAM,iCAAgC;IAEb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;IACrE;;;oEAGgE;IAChC,OAAO,EAAE,SAAS,EAAE,CAAM;IAC9C,QAAQ,SAAY;IACA,OAAO,EAAE,kBAAkB,EAAE,CAAW;IAC5B,QAAQ,UAAS;IAC7D,gEAAgE;IACpB,OAAO,UAAS;IAC5D;;;;;;wEAMoE;IACxD,KAAK,SAAY;IACe,IAAI,UAAS;IAE9B,OAAO,CAAC,SAAS,CAAC,CAAoB;IACzC,OAAO,CAAC,MAAM,CAAC,CAAc;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,cAAc,CAAQ;IAC9B,iFAAiF;IACjF,OAAO,CAAC,qBAAqB,CAAK;IAElC,oBAAoB,IAAI,IAAI,CAM3B;IAED,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAInB,4FAA4F;IAC5F,OAAO,CAAC,aAAa;IAMrB,qGAAqG;IACrG,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,SAAS,CA2Cf;IAEF,SAAS,CAAC,YAAY,IAAI,IAAI,CAI7B;IAED,SAAS,CAAC,UAAU,IAAI,IAAI,CAG3B;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAwB/C;IAED;;;;yCAIqC;IACrC,OAAO,CAAC,gBAAgB;IASxB,kGAAkG;IAClG,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,cAAc;IAMtB;;uEAEmE;IACnE,OAAO,KAAK,cAAc,GAEzB;IAED,MAAM,IAAI,cAAc,CAwCvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
|
|
@@ -26,6 +26,8 @@ import { styles } from './export-button.styles.js';
|
|
|
26
26
|
* @csspart trigger - The button that triggers the export (or opens the format menu).
|
|
27
27
|
* @csspart menu - The format-choice menu, shown when more than one format is configured.
|
|
28
28
|
* @csspart menu-item - A single format option inside the menu.
|
|
29
|
+
* @csspart format-label - A format option's primary label.
|
|
30
|
+
* @csspart format-description - A custom format option's optional secondary text.
|
|
29
31
|
*/
|
|
30
32
|
export class LyraExportButton extends LyraElement {
|
|
31
33
|
constructor() {
|
|
@@ -39,6 +41,8 @@ export class LyraExportButton extends LyraElement {
|
|
|
39
41
|
this.filename = 'export';
|
|
40
42
|
this.formats = ['csv'];
|
|
41
43
|
this.disabled = false;
|
|
44
|
+
/** Controlled busy state for async/server-generated exports. */
|
|
45
|
+
this.loading = false;
|
|
42
46
|
/** Trigger button text, also feeds the format menu's `aria-label` (as
|
|
43
47
|
* "`${label} format`") so assistive tech gets an accessible name for it.
|
|
44
48
|
* Left at its default English `'Export'`, the rendered text instead
|
|
@@ -65,7 +69,7 @@ export class LyraExportButton extends LyraElement {
|
|
|
65
69
|
}
|
|
66
70
|
return;
|
|
67
71
|
}
|
|
68
|
-
if (this.formats.length <= 1 || this.disabled)
|
|
72
|
+
if (this.formats.length <= 1 || this.disabled || this.loading)
|
|
69
73
|
return;
|
|
70
74
|
const items = this.menuItemEls();
|
|
71
75
|
const currentIndex = items.indexOf(e.target);
|
|
@@ -144,6 +148,7 @@ export class LyraExportButton extends LyraElement {
|
|
|
144
148
|
}
|
|
145
149
|
willUpdate() {
|
|
146
150
|
this._isFirstUpdate = !this.hasUpdated;
|
|
151
|
+
this.toggleAttribute('aria-busy', this.loading);
|
|
147
152
|
}
|
|
148
153
|
updated(changed) {
|
|
149
154
|
if (changed.has('open')) {
|
|
@@ -199,24 +204,36 @@ export class LyraExportButton extends LyraElement {
|
|
|
199
204
|
return picked;
|
|
200
205
|
});
|
|
201
206
|
}
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
formatId(format) {
|
|
208
|
+
return typeof format === 'string' ? format : format.id;
|
|
209
|
+
}
|
|
210
|
+
formatLabel(format) {
|
|
211
|
+
return typeof format === 'string' ? format.toUpperCase() : format.label;
|
|
212
|
+
}
|
|
213
|
+
doExport(formatOption) {
|
|
214
|
+
if (this.disabled || this.loading)
|
|
204
215
|
return;
|
|
205
216
|
this.closeMenu();
|
|
206
217
|
this.triggerEl?.focus();
|
|
218
|
+
const format = this.formatId(formatOption);
|
|
207
219
|
const ev = this.emit('lyra-export', { format }, { cancelable: true });
|
|
208
220
|
if (ev.defaultPrevented)
|
|
209
221
|
return;
|
|
210
222
|
if (format === 'csv') {
|
|
211
223
|
downloadBlob(buildCsv(this.rows, this.effectiveColumns()), `${this.filename}.csv`, 'text/csv;charset=utf-8;');
|
|
212
224
|
}
|
|
213
|
-
else {
|
|
225
|
+
else if (format === 'json') {
|
|
214
226
|
downloadBlob(JSON.stringify(this.rowsForExport(), null, 2), `${this.filename}.json`, 'application/json');
|
|
215
227
|
}
|
|
228
|
+
else {
|
|
229
|
+
// Custom formats are intentionally handler-only: Lyra owns the menu and
|
|
230
|
+
// event contract but does not pull format-specific encoders into the base bundle.
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
216
233
|
this.emit('lyra-export-complete', { format });
|
|
217
234
|
}
|
|
218
235
|
onTriggerClick() {
|
|
219
|
-
if (this.disabled)
|
|
236
|
+
if (this.disabled || this.loading)
|
|
220
237
|
return;
|
|
221
238
|
if (this.formats.length <= 1)
|
|
222
239
|
this.doExport(this.formats[0] ?? 'csv');
|
|
@@ -235,7 +252,8 @@ export class LyraExportButton extends LyraElement {
|
|
|
235
252
|
<button
|
|
236
253
|
part="trigger"
|
|
237
254
|
type="button"
|
|
238
|
-
?disabled=${this.disabled}
|
|
255
|
+
?disabled=${this.disabled || this.loading}
|
|
256
|
+
aria-busy=${this.loading ? 'true' : nothing}
|
|
239
257
|
aria-haspopup=${this.formats.length > 1 ? 'menu' : nothing}
|
|
240
258
|
aria-expanded=${this.formats.length > 1 ? (this.open ? 'true' : 'false') : nothing}
|
|
241
259
|
aria-controls=${this.formats.length > 1 ? this.menuId : nothing}
|
|
@@ -254,10 +272,13 @@ export class LyraExportButton extends LyraElement {
|
|
|
254
272
|
part="menu-item"
|
|
255
273
|
role="menuitem"
|
|
256
274
|
type="button"
|
|
257
|
-
?disabled=${this.disabled}
|
|
275
|
+
?disabled=${this.disabled || this.loading}
|
|
258
276
|
@click=${() => this.doExport(f)}
|
|
259
277
|
>
|
|
260
|
-
|
|
278
|
+
<span part="format-label">${this.formatLabel(f)}</span>
|
|
279
|
+
${typeof f !== 'string' && f.description
|
|
280
|
+
? html `<span part="format-description">${f.description}</span>`
|
|
281
|
+
: nothing}
|
|
261
282
|
</button>`)}
|
|
262
283
|
</div>`
|
|
263
284
|
: nothing}
|
|
@@ -279,6 +300,9 @@ __decorate([
|
|
|
279
300
|
__decorate([
|
|
280
301
|
property({ type: Boolean, reflect: true })
|
|
281
302
|
], LyraExportButton.prototype, "disabled", void 0);
|
|
303
|
+
__decorate([
|
|
304
|
+
property({ type: Boolean, reflect: true })
|
|
305
|
+
], LyraExportButton.prototype, "loading", void 0);
|
|
282
306
|
__decorate([
|
|
283
307
|
property()
|
|
284
308
|
], LyraExportButton.prototype, "label", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-button.class.js","sourceRoot":"","sources":["../../../src/components/export-button/export-button.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAA4C,MAAM,KAAK,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAkB,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"export-button.class.js","sourceRoot":"","sources":["../../../src/components/export-button/export-button.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/export-button/export-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"export-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/export-button/export-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAgGlB,CAAC"}
|
|
@@ -66,7 +66,10 @@ export const styles = css `
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
[part='menu-item'] {
|
|
69
|
-
display:
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
align-items: flex-start;
|
|
72
|
+
gap: var(--lyra-size-1px);
|
|
70
73
|
inline-size: 100%;
|
|
71
74
|
text-align: start;
|
|
72
75
|
padding: var(--lyra-space-xs) var(--lyra-space-s);
|
|
@@ -88,5 +91,9 @@ export const styles = css `
|
|
|
88
91
|
opacity: var(--lyra-opacity-disabled);
|
|
89
92
|
cursor: not-allowed;
|
|
90
93
|
}
|
|
94
|
+
[part='format-description'] {
|
|
95
|
+
color: var(--lyra-color-text-quiet);
|
|
96
|
+
font-size: var(--lyra-font-size-sm);
|
|
97
|
+
}
|
|
91
98
|
`;
|
|
92
99
|
//# sourceMappingURL=export-button.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-button.styles.js","sourceRoot":"","sources":["../../../src/components/export-button/export-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"export-button.styles.js","sourceRoot":"","sources":["../../../src/components/export-button/export-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGxB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type TemplateResult } from 'lit';
|
|
2
2
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
-
export type GaugeType = 'radial' | 'linear';
|
|
3
|
+
export type GaugeType = 'radial' | 'ring' | 'linear';
|
|
4
4
|
/**
|
|
5
|
-
* `<lyra-gauge>` — a radial or linear meter. First-party invention; no
|
|
5
|
+
* `<lyra-gauge>` — a radial, full-circle ring, or linear meter. First-party invention; no
|
|
6
6
|
* generic gauge widget exists in Web Awesome.
|
|
7
7
|
*
|
|
8
8
|
* @customElement lyra-gauge
|
|
@@ -11,6 +11,7 @@ export type GaugeType = 'radial' | 'linear';
|
|
|
11
11
|
* @csspart fill - The animated fill arc/line.
|
|
12
12
|
* @csspart value - The value text.
|
|
13
13
|
* @csspart label - The label text.
|
|
14
|
+
* @cssprop [--lyra-gauge-fill=var(--lyra-color-brand)] - Fill stroke for radial, ring, and linear gauges.
|
|
14
15
|
*/
|
|
15
16
|
export declare class LyraGauge extends LyraElement {
|
|
16
17
|
static styles: import("lit").CSSResultGroup[];
|
|
@@ -22,6 +23,8 @@ export declare class LyraGauge extends LyraElement {
|
|
|
22
23
|
/** Imperative override for the displayed/announced value text, e.g. `'72°F'` for a raw `value` of `72`.
|
|
23
24
|
* An empty string is treated the same as unset and falls back to the numeric `value`. */
|
|
24
25
|
valueLabel?: string;
|
|
26
|
+
private appliedAriaLabel;
|
|
27
|
+
private explicitAriaLabel;
|
|
25
28
|
private get domain();
|
|
26
29
|
private get ratio();
|
|
27
30
|
/** The text rendered/announced for the current value: `valueLabel` when set,
|
|
@@ -31,6 +34,7 @@ export declare class LyraGauge extends LyraElement {
|
|
|
31
34
|
protected willUpdate(): void;
|
|
32
35
|
private renderRadial;
|
|
33
36
|
private renderLinear;
|
|
37
|
+
private renderRing;
|
|
34
38
|
render(): TemplateResult;
|
|
35
39
|
}
|
|
36
40
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gauge.class.d.ts","sourceRoot":"","sources":["../../../src/components/gauge/gauge.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"gauge.class.d.ts","sourceRoot":"","sources":["../../../src/components/gauge/gauge.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAsCrD;;;;;;;;;;;GAWG;AACH,qBAAa,SAAU,SAAQ,WAAW;IACxC,MAAM,CAAC,MAAM,iCAAgC;IAEjB,KAAK,SAAK;IACV,GAAG,SAAK;IACR,GAAG,SAAO;IACT,IAAI,EAAE,SAAS,CAAY;IAC5C,KAAK,SAAM;IACvB;6FACyF;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,iBAAiB,CAAuB;IAKhD,OAAO,KAAK,MAAM,GAIjB;IAED,OAAO,KAAK,KAAK,GAMhB;IAED;;mEAE+D;IAC/D,OAAO,KAAK,WAAW,GAEtB;IAED,SAAS,CAAC,UAAU,IAAI,IAAI,CA4B3B;IAED,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,UAAU;IAoBlB,MAAM,IAAI,cAAc,CAIvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
|
|
@@ -39,8 +39,9 @@ function arcPath(startDeg, endDeg) {
|
|
|
39
39
|
// technique used for the linear variant's fill line below.
|
|
40
40
|
const RADIAL_ARC_D = arcPath(START_DEG, START_DEG + SWEEP_DEG);
|
|
41
41
|
const RADIAL_ARC_LENGTH = (SWEEP_DEG / 360) * 2 * Math.PI * RADIUS;
|
|
42
|
+
const RING_CIRCUMFERENCE = 2 * Math.PI * RADIUS;
|
|
42
43
|
/**
|
|
43
|
-
* `<lyra-gauge>` — a radial or linear meter. First-party invention; no
|
|
44
|
+
* `<lyra-gauge>` — a radial, full-circle ring, or linear meter. First-party invention; no
|
|
44
45
|
* generic gauge widget exists in Web Awesome.
|
|
45
46
|
*
|
|
46
47
|
* @customElement lyra-gauge
|
|
@@ -49,6 +50,7 @@ const RADIAL_ARC_LENGTH = (SWEEP_DEG / 360) * 2 * Math.PI * RADIUS;
|
|
|
49
50
|
* @csspart fill - The animated fill arc/line.
|
|
50
51
|
* @csspart value - The value text.
|
|
51
52
|
* @csspart label - The label text.
|
|
53
|
+
* @cssprop [--lyra-gauge-fill=var(--lyra-color-brand)] - Fill stroke for radial, ring, and linear gauges.
|
|
52
54
|
*/
|
|
53
55
|
export class LyraGauge extends LyraElement {
|
|
54
56
|
constructor() {
|
|
@@ -58,6 +60,11 @@ export class LyraGauge extends LyraElement {
|
|
|
58
60
|
this.max = 100;
|
|
59
61
|
this.type = 'radial';
|
|
60
62
|
this.label = '';
|
|
63
|
+
// `label` supplies the default meter name, but an author-provided host
|
|
64
|
+
// `aria-label` must win. Track the value last applied by the component so
|
|
65
|
+
// later label updates remain distinguishable from author attribute edits.
|
|
66
|
+
this.appliedAriaLabel = null;
|
|
67
|
+
this.explicitAriaLabel = null;
|
|
61
68
|
}
|
|
62
69
|
static { this.styles = [LyraElement.styles, styles]; }
|
|
63
70
|
// Normalizes a reversed min > max domain by swapping lo/hi, but only once
|
|
@@ -106,10 +113,16 @@ export class LyraGauge extends LyraElement {
|
|
|
106
113
|
this.setAttribute('aria-valuemax', String(hi));
|
|
107
114
|
else
|
|
108
115
|
this.removeAttribute('aria-valuemax');
|
|
109
|
-
|
|
110
|
-
|
|
116
|
+
const currentAriaLabel = this.getAttribute('aria-label');
|
|
117
|
+
if (currentAriaLabel !== this.appliedAriaLabel) {
|
|
118
|
+
this.explicitAriaLabel = currentAriaLabel;
|
|
119
|
+
}
|
|
120
|
+
const nextAriaLabel = this.explicitAriaLabel || this.label || null;
|
|
121
|
+
if (nextAriaLabel)
|
|
122
|
+
this.setAttribute('aria-label', nextAriaLabel);
|
|
111
123
|
else
|
|
112
124
|
this.removeAttribute('aria-label');
|
|
125
|
+
this.appliedAriaLabel = nextAriaLabel;
|
|
113
126
|
if (this.valueLabel)
|
|
114
127
|
this.setAttribute('aria-valuetext', this.valueLabel);
|
|
115
128
|
else
|
|
@@ -163,8 +176,31 @@ export class LyraGauge extends LyraElement {
|
|
|
163
176
|
<text part="value" x=${endX} y=${LINEAR_TEXT_Y} style=${rtl ? 'text-anchor:start' : nothing} aria-hidden="true">${text}</text>
|
|
164
177
|
</svg>`;
|
|
165
178
|
}
|
|
179
|
+
renderRing() {
|
|
180
|
+
const text = this.displayText;
|
|
181
|
+
const dashoffset = RING_CIRCUMFERENCE * (1 - this.ratio);
|
|
182
|
+
return html `<svg part="base" viewBox="0 0 100 100">
|
|
183
|
+
<circle part="track" cx=${CENTER} cy=${CENTER} r=${RADIUS} stroke-width=${STROKE}></circle>
|
|
184
|
+
<circle
|
|
185
|
+
part="fill"
|
|
186
|
+
cx=${CENTER}
|
|
187
|
+
cy=${CENTER}
|
|
188
|
+
r=${RADIUS}
|
|
189
|
+
stroke-width=${STROKE}
|
|
190
|
+
stroke-dasharray=${RING_CIRCUMFERENCE}
|
|
191
|
+
stroke-dashoffset=${dashoffset}
|
|
192
|
+
transform="rotate(-90 50 50)"
|
|
193
|
+
></circle>
|
|
194
|
+
<text part="value" x="50" y="52" aria-hidden="true">${text}</text>
|
|
195
|
+
${this.label ? svg `<text part="label" x="50" y="68" aria-hidden="true">${this.label}</text>` : ''}
|
|
196
|
+
</svg>`;
|
|
197
|
+
}
|
|
166
198
|
render() {
|
|
167
|
-
|
|
199
|
+
if (this.type === 'linear')
|
|
200
|
+
return this.renderLinear();
|
|
201
|
+
if (this.type === 'ring')
|
|
202
|
+
return this.renderRing();
|
|
203
|
+
return this.renderRadial();
|
|
168
204
|
}
|
|
169
205
|
}
|
|
170
206
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gauge.class.js","sourceRoot":"","sources":["../../../src/components/gauge/gauge.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAuB,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,kFAAkF;AAClF,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,8CAA8C;AACrE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,+EAA+E;AAC/E,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IACvC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB,EAAE,MAAc;IAC/C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,IAAI,MAAM,MAAM,QAAQ,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;AAC3E,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,qEAAqE;AACrE,8EAA8E;AAC9E,2DAA2D;AAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAC/D,MAAM,iBAAiB,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"gauge.class.js","sourceRoot":"","sources":["../../../src/components/gauge/gauge.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@ import '../skeleton/skeleton.class.js';
|
|
|
4
4
|
export interface GraphNode {
|
|
5
5
|
id: string;
|
|
6
6
|
label?: string;
|
|
7
|
+
/** Spoken label when it needs more context than the visible label. */
|
|
8
|
+
accessibleLabel?: string;
|
|
9
|
+
/** Optional native SVG tooltip text. */
|
|
10
|
+
description?: string;
|
|
7
11
|
/** Clamped to [6, 24] (a non-finite/missing value uses the midpoint, 15) — never rendered smaller/larger. */
|
|
8
12
|
radius?: number;
|
|
9
13
|
color?: string;
|
|
@@ -13,9 +17,24 @@ export interface GraphNode {
|
|
|
13
17
|
* a not-yet-created page. A link whose `source` id has no matching node is still dropped
|
|
14
18
|
* entirely (there is no position to draw a stub from). */
|
|
15
19
|
export interface GraphLink {
|
|
20
|
+
/** Optional stable id returned by `lyra-link-click`. */
|
|
21
|
+
id?: string;
|
|
16
22
|
source: string;
|
|
17
23
|
target: string;
|
|
18
24
|
width?: number;
|
|
25
|
+
/** Optional spoken-name and SVG-tooltip fallback used before the generated source/target text.
|
|
26
|
+
* It is not rendered as a visible edge label. */
|
|
27
|
+
label?: string;
|
|
28
|
+
/** Spoken label for the keyboard-operable link. */
|
|
29
|
+
accessibleLabel?: string;
|
|
30
|
+
/** Optional native SVG tooltip text. */
|
|
31
|
+
description?: string;
|
|
32
|
+
/** Draw an arrowhead at the target end. */
|
|
33
|
+
directed?: boolean;
|
|
34
|
+
/** Per-link stroke color; unsafe CSS declaration delimiters are rejected. */
|
|
35
|
+
color?: string;
|
|
36
|
+
/** SVG stroke-dash sequence. Invalid/negative entries are rejected as a whole. */
|
|
37
|
+
dash?: number[];
|
|
19
38
|
}
|
|
20
39
|
export interface LyraGraphEventMap {
|
|
21
40
|
'lyra-node-click': CustomEvent<{
|
|
@@ -24,6 +43,7 @@ export interface LyraGraphEventMap {
|
|
|
24
43
|
'lyra-link-click': CustomEvent<{
|
|
25
44
|
source: string;
|
|
26
45
|
target: string;
|
|
46
|
+
id?: string;
|
|
27
47
|
}>;
|
|
28
48
|
}
|
|
29
49
|
/**
|
|
@@ -43,11 +63,12 @@ export interface LyraGraphEventMap {
|
|
|
43
63
|
*
|
|
44
64
|
* @customElement lyra-graph
|
|
45
65
|
* @event lyra-node-click - `detail: { id }`.
|
|
46
|
-
* @event lyra-link-click - `detail: { source, target }`.
|
|
66
|
+
* @event lyra-link-click - `detail: { source, target, id? }`.
|
|
47
67
|
* @csspart base - The graph wrapper.
|
|
48
68
|
* @csspart svg - The graph SVG.
|
|
49
69
|
* @csspart node - A graph node.
|
|
50
70
|
* @csspart link - A graph link.
|
|
71
|
+
* @csspart arrowhead - The marker used by directed graph links.
|
|
51
72
|
* @csspart label - A node label.
|
|
52
73
|
* @csspart live-region - The current graph item announcement.
|
|
53
74
|
* @csspart data-list - A visually hidden list alternative for graph data.
|
|
@@ -63,6 +84,8 @@ export declare class LyraGraph extends LyraElement<LyraGraphEventMap> {
|
|
|
63
84
|
linkDistance: number;
|
|
64
85
|
minZoom: number;
|
|
65
86
|
maxZoom: number;
|
|
87
|
+
/** Accessible name forwarded from the host to the semantic graph SVG. */
|
|
88
|
+
accessibleLabel: string | null;
|
|
66
89
|
/** When set, seeds each node's initial x/y deterministically (keyed by
|
|
67
90
|
* node id, not array index) instead of forceSimulation()'s own random
|
|
68
91
|
* start, and settles the simulation synchronously — see rebuildSimulation().
|
|
@@ -72,6 +95,7 @@ export declare class LyraGraph extends LyraElement<LyraGraphEventMap> {
|
|
|
72
95
|
* not retroactively reposition already-settled nodes; there is currently
|
|
73
96
|
* no way to make an already-rendered graph reproducible after the fact. */
|
|
74
97
|
seed?: number;
|
|
98
|
+
private readonly arrowMarkerId;
|
|
75
99
|
/** True until the lazy-loaded d3 peer dependencies have settled (success or failure). */
|
|
76
100
|
private loading;
|
|
77
101
|
private simNodes;
|
|
@@ -157,6 +181,9 @@ export declare class LyraGraph extends LyraElement<LyraGraphEventMap> {
|
|
|
157
181
|
private rebuildSimulation;
|
|
158
182
|
private onNodeClick;
|
|
159
183
|
private onLinkClick;
|
|
184
|
+
private nodeAccessibleText;
|
|
185
|
+
private linkAccessibleText;
|
|
186
|
+
private linkCoordinates;
|
|
160
187
|
private graphItemCount;
|
|
161
188
|
private normalizedGraphItem;
|
|
162
189
|
private graphItemText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.class.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph.class.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"graph.class.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,OAAO,+BAA+B,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6GAA6G;IAC7G,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD;;;2DAG2D;AAC3D,MAAM,WAAW,SAAS;IACxB,wDAAwD;IACxD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;qDACiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AA+ED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,WAAW,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,iBAAiB,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,SAAU,SAAQ,WAAW,CAAC,iBAAiB,CAAC;IAC3D,MAAM,CAAC,MAAM,iCAAwC;IAErB,KAAK,EAAE,SAAS,EAAE,CAAM;IACxB,KAAK,EAAE,SAAS,EAAE,CAAM;IAC5B,KAAK,SAAO;IACZ,MAAM,SAAO;IACiB,cAAc,SAAQ;IACxB,YAAY,SAAO;IACxB,OAAO,SAAO;IACd,OAAO,SAAK;IAC/D,yEAAyE;IAClC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7E;;;;;;;gFAO4E;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD,yFAAyF;IAChF,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,aAAa,CAAiB;IACtC,yFAAyF;IAChF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAAM;IAEpC,OAAO,CAAC,UAAU,CAAC,CAAkD;IACrE;;oCAEgC;IAChC,OAAO,CAAC,WAAW,CAAC,CAA4C;IAChE,OAAO,CAAC,SAAS,CAAC,CAAiD;IACnE,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC;;qFAEiF;IACjF,OAAO,CAAC,GAAG,CAAC,CAAc;IAC1B;;iCAE6B;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAyD;IAC9E;wFACoF;IACpF,OAAO,CAAC,YAAY,CAA0B;IAC9C;;;gFAG4E;IAC5E,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,OAAO,CAAwB;IAEvC,iBAAiB,IAAI,IAAI,CAwBxB;IAED,oBAAoB,IAAI,IAAI,CAG3B;IAED;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAKlB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAUlD;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CA6B/C;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,iBAAiB;IAsDzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM;IA8Bd,OAAO,CAAC,iBAAiB;IA8FzB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,cAAc;IActB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAsBtB,MAAM,IAAI,cAAc,CAiHvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
|