@rosettadash/web-components 0.1.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/LICENSE +21 -0
- package/README.md +103 -0
- package/browser/media.js +484 -0
- package/browser/media.js.map +7 -0
- package/package.json +125 -0
- package/src/catalog/_shared/catalog-variant.d.ts +5 -0
- package/src/catalog/_shared/catalog-variant.js +19 -0
- package/src/catalog/_shared/catalog-variant.js.map +1 -0
- package/src/catalog/_shared/markup-shared.d.ts +6 -0
- package/src/catalog/_shared/markup-shared.js +21 -0
- package/src/catalog/_shared/markup-shared.js.map +1 -0
- package/src/catalog/component-attribute/index.d.ts +2 -0
- package/src/catalog/component-attribute/index.js +2 -0
- package/src/catalog/component-attribute/index.js.map +1 -0
- package/src/catalog/component-attribute/rd-attribute.d.ts +20 -0
- package/src/catalog/component-attribute/rd-attribute.js +27 -0
- package/src/catalog/component-attribute/rd-attribute.js.map +1 -0
- package/src/catalog/component-name/index.d.ts +2 -0
- package/src/catalog/component-name/index.js +2 -0
- package/src/catalog/component-name/index.js.map +1 -0
- package/src/catalog/component-name/rd-component-name.d.ts +40 -0
- package/src/catalog/component-name/rd-component-name.js +219 -0
- package/src/catalog/component-name/rd-component-name.js.map +1 -0
- package/src/catalog/component-option/index.d.ts +2 -0
- package/src/catalog/component-option/index.js +2 -0
- package/src/catalog/component-option/index.js.map +1 -0
- package/src/catalog/component-option/rd-component-option.d.ts +25 -0
- package/src/catalog/component-option/rd-component-option.js +104 -0
- package/src/catalog/component-option/rd-component-option.js.map +1 -0
- package/src/catalog/component-port/index.d.ts +2 -0
- package/src/catalog/component-port/index.js +2 -0
- package/src/catalog/component-port/index.js.map +1 -0
- package/src/catalog/component-port/rd-component-port.d.ts +26 -0
- package/src/catalog/component-port/rd-component-port.js +109 -0
- package/src/catalog/component-port/rd-component-port.js.map +1 -0
- package/src/catalog/component-requirement/index.d.ts +2 -0
- package/src/catalog/component-requirement/index.js +2 -0
- package/src/catalog/component-requirement/index.js.map +1 -0
- package/src/catalog/component-requirement/rd-component-requirement.d.ts +17 -0
- package/src/catalog/component-requirement/rd-component-requirement.js +76 -0
- package/src/catalog/component-requirement/rd-component-requirement.js.map +1 -0
- package/src/catalog/component-spec/index.d.ts +2 -0
- package/src/catalog/component-spec/index.js +2 -0
- package/src/catalog/component-spec/index.js.map +1 -0
- package/src/catalog/component-spec/rd-component-spec.d.ts +40 -0
- package/src/catalog/component-spec/rd-component-spec.js +367 -0
- package/src/catalog/component-spec/rd-component-spec.js.map +1 -0
- package/src/catalog/index.d.ts +23 -0
- package/src/catalog/index.js +37 -0
- package/src/catalog/index.js.map +1 -0
- package/src/catalog/palette-catalog/index.d.ts +2 -0
- package/src/catalog/palette-catalog/index.js +2 -0
- package/src/catalog/palette-catalog/index.js.map +1 -0
- package/src/catalog/palette-catalog/rd-palette-catalog.d.ts +29 -0
- package/src/catalog/palette-catalog/rd-palette-catalog.js +114 -0
- package/src/catalog/palette-catalog/rd-palette-catalog.js.map +1 -0
- package/src/catalog/palette-group/index.d.ts +2 -0
- package/src/catalog/palette-group/index.js +2 -0
- package/src/catalog/palette-group/index.js.map +1 -0
- package/src/catalog/palette-group/rd-palette-group.d.ts +33 -0
- package/src/catalog/palette-group/rd-palette-group.js +179 -0
- package/src/catalog/palette-group/rd-palette-group.js.map +1 -0
- package/src/catalog/subcomponent-name/index.d.ts +1 -0
- package/src/catalog/subcomponent-name/index.js +2 -0
- package/src/catalog/subcomponent-name/index.js.map +1 -0
- package/src/catalog/subcomponent-name/rd-subcomponent-name.d.ts +12 -0
- package/src/catalog/subcomponent-name/rd-subcomponent-name.js +29 -0
- package/src/catalog/subcomponent-name/rd-subcomponent-name.js.map +1 -0
- package/src/index.d.ts +9 -0
- package/src/index.js +23 -0
- package/src/index.js.map +1 -0
- package/src/layout/accordion/index.d.ts +4 -0
- package/src/layout/accordion/index.js +7 -0
- package/src/layout/accordion/index.js.map +1 -0
- package/src/layout/accordion/rd-accordion.d.ts +26 -0
- package/src/layout/accordion/rd-accordion.js +94 -0
- package/src/layout/accordion/rd-accordion.js.map +1 -0
- package/src/layout/accordion-link-list/index.d.ts +4 -0
- package/src/layout/accordion-link-list/index.js +7 -0
- package/src/layout/accordion-link-list/index.js.map +1 -0
- package/src/layout/accordion-link-list/rd-accordion-link-list.d.ts +36 -0
- package/src/layout/accordion-link-list/rd-accordion-link-list.js +139 -0
- package/src/layout/accordion-link-list/rd-accordion-link-list.js.map +1 -0
- package/src/lib/element-utils.d.ts +8 -0
- package/src/lib/element-utils.js +46 -0
- package/src/lib/element-utils.js.map +1 -0
- package/src/lib/parse-link-items.d.ts +6 -0
- package/src/lib/parse-link-items.js +37 -0
- package/src/lib/parse-link-items.js.map +1 -0
- package/src/lib/shadow-base.d.ts +20 -0
- package/src/lib/shadow-base.js +81 -0
- package/src/lib/shadow-base.js.map +1 -0
- package/src/lib/shadow-resources.d.ts +10 -0
- package/src/lib/shadow-resources.js +38 -0
- package/src/lib/shadow-resources.js.map +1 -0
- package/src/register-shadow-bases.browser.d.ts +1 -0
- package/src/register-shadow-bases.browser.js +5 -0
- package/src/register-shadow-bases.browser.js.map +1 -0
- package/src/visual/link-list/index.d.ts +4 -0
- package/src/visual/link-list/index.js +7 -0
- package/src/visual/link-list/index.js.map +1 -0
- package/src/visual/link-list/rd-link-list.d.ts +26 -0
- package/src/visual/link-list/rd-link-list.js +68 -0
- package/src/visual/link-list/rd-link-list.js.map +1 -0
- package/src/visual/media/equirect-viewport/index.d.ts +1 -0
- package/src/visual/media/equirect-viewport/index.js +2 -0
- package/src/visual/media/equirect-viewport/index.js.map +1 -0
- package/src/visual/media/equirect-viewport/rd-equirect-viewport.d.ts +30 -0
- package/src/visual/media/equirect-viewport/rd-equirect-viewport.js +199 -0
- package/src/visual/media/equirect-viewport/rd-equirect-viewport.js.map +1 -0
- package/src/visual/media/index.d.ts +3 -0
- package/src/visual/media/index.js +9 -0
- package/src/visual/media/index.js.map +1 -0
- package/src/visual/media/video-source/index.d.ts +1 -0
- package/src/visual/media/video-source/index.js +2 -0
- package/src/visual/media/video-source/index.js.map +1 -0
- package/src/visual/media/video-source/rd-video-source.d.ts +19 -0
- package/src/visual/media/video-source/rd-video-source.js +105 -0
- package/src/visual/media/video-source/rd-video-source.js.map +1 -0
- package/src/wasm/index.d.ts +2 -0
- package/src/wasm/index.js +6 -0
- package/src/wasm/index.js.map +1 -0
- package/src/wasm/wasm-media/index.d.ts +1 -0
- package/src/wasm/wasm-media/index.js +2 -0
- package/src/wasm/wasm-media/index.js.map +1 -0
- package/src/wasm/wasm-media/rd-wasm-media.d.ts +30 -0
- package/src/wasm/wasm-media/rd-wasm-media.js +269 -0
- package/src/wasm/wasm-media/rd-wasm-media.js.map +1 -0
- package/styles/catalog.css +69 -0
- package/styles/styles.css +76 -0
- package/styles/tokens.css +19 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { defineRosettaElement, readString } from '../../lib/element-utils.js';
|
|
2
|
+
import { escapeHtml, parseLinkItems } from '../../lib/parse-link-items.js';
|
|
3
|
+
import { applyShadowMount, ensureShadowBase, loadShadowPairForTag } from '../../lib/shadow-base.js';
|
|
4
|
+
import { registerRdAccordion } from '../accordion/rd-accordion.js';
|
|
5
|
+
import { registerRdLinkList } from '../../visual/link-list/rd-link-list.js';
|
|
6
|
+
export const RD_ACCORDION_LINK_LIST_TAG = 'rd-accordion-link-list';
|
|
7
|
+
/**
|
|
8
|
+
* Recipe custom element: collapsible nav / TOC over accordion + link-list atoms.
|
|
9
|
+
* Prefer composing atoms; use this when a single helper is clearer.
|
|
10
|
+
*/
|
|
11
|
+
export class RdAccordionLinkListElement extends HTMLElement {
|
|
12
|
+
static tagName = RD_ACCORDION_LINK_LIST_TAG;
|
|
13
|
+
itemsValue = [];
|
|
14
|
+
resourcesReady = null;
|
|
15
|
+
headerListener = null;
|
|
16
|
+
static get observedAttributes() {
|
|
17
|
+
return ['heading', 'title', 'default-open', 'open', 'items', 'dense'];
|
|
18
|
+
}
|
|
19
|
+
connectedCallback() {
|
|
20
|
+
registerRdAccordion();
|
|
21
|
+
registerRdLinkList();
|
|
22
|
+
if (!this.shadowRoot) {
|
|
23
|
+
this.attachShadow({ mode: 'open' });
|
|
24
|
+
}
|
|
25
|
+
if (!this.hasAttribute('open') && this.defaultOpen) {
|
|
26
|
+
this.setAttribute('open', '');
|
|
27
|
+
}
|
|
28
|
+
this.syncItemsFromAttribute();
|
|
29
|
+
this.resourcesReady = this.mountShadow();
|
|
30
|
+
void this.resourcesReady.then(() => this.paint());
|
|
31
|
+
}
|
|
32
|
+
disconnectedCallback() {
|
|
33
|
+
const root = this.shadowRoot;
|
|
34
|
+
const header = root?.querySelector('[data-ref="header"]');
|
|
35
|
+
if (header && this.headerListener) {
|
|
36
|
+
header.removeEventListener('click', this.headerListener);
|
|
37
|
+
}
|
|
38
|
+
this.headerListener = null;
|
|
39
|
+
}
|
|
40
|
+
attributeChangedCallback(name) {
|
|
41
|
+
if (name === 'items') {
|
|
42
|
+
this.syncItemsFromAttribute();
|
|
43
|
+
}
|
|
44
|
+
if (this.shadowRoot && this.resourcesReady) {
|
|
45
|
+
void this.resourcesReady.then(() => this.paint());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
whenReady() {
|
|
49
|
+
return this.resourcesReady ?? Promise.resolve();
|
|
50
|
+
}
|
|
51
|
+
get heading() {
|
|
52
|
+
return readString(this.getAttribute('heading') ?? this.getAttribute('title'), 'Section');
|
|
53
|
+
}
|
|
54
|
+
get defaultOpen() {
|
|
55
|
+
return this.hasAttribute('default-open');
|
|
56
|
+
}
|
|
57
|
+
get open() {
|
|
58
|
+
return this.hasAttribute('open');
|
|
59
|
+
}
|
|
60
|
+
set open(value) {
|
|
61
|
+
if (value) {
|
|
62
|
+
this.setAttribute('open', '');
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.removeAttribute('open');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
get items() {
|
|
69
|
+
return this.itemsValue;
|
|
70
|
+
}
|
|
71
|
+
set items(value) {
|
|
72
|
+
this.itemsValue = Array.isArray(value) ? value : [];
|
|
73
|
+
this.setAttribute('items', JSON.stringify(this.itemsValue));
|
|
74
|
+
}
|
|
75
|
+
get dense() {
|
|
76
|
+
return this.hasAttribute('dense');
|
|
77
|
+
}
|
|
78
|
+
syncItemsFromAttribute() {
|
|
79
|
+
this.itemsValue = parseLinkItems(this.getAttribute('items'));
|
|
80
|
+
}
|
|
81
|
+
async mountShadow() {
|
|
82
|
+
const root = this.shadowRoot;
|
|
83
|
+
if (!root || root.querySelector('[data-ref="root"]')) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const pair = await loadShadowPairForTag(RD_ACCORDION_LINK_LIST_TAG, './rd-accordion-link-list.html', './rd-accordion-link-list.css');
|
|
87
|
+
applyShadowMount(root, pair);
|
|
88
|
+
const header = root.querySelector('[data-ref="header"]');
|
|
89
|
+
this.headerListener = () => this.toggle();
|
|
90
|
+
header?.addEventListener('click', this.headerListener);
|
|
91
|
+
}
|
|
92
|
+
toggle() {
|
|
93
|
+
this.open = !this.open;
|
|
94
|
+
this.dispatchEvent(new CustomEvent('rd-accordion-link-list-toggle', {
|
|
95
|
+
detail: { open: this.open },
|
|
96
|
+
bubbles: true,
|
|
97
|
+
composed: true,
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
paint() {
|
|
101
|
+
const root = this.shadowRoot;
|
|
102
|
+
if (!root) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const open = this.open;
|
|
106
|
+
const section = root.querySelector('[data-ref="root"]');
|
|
107
|
+
const header = root.querySelector('[data-ref="header"]');
|
|
108
|
+
const title = root.querySelector('[data-ref="title"]');
|
|
109
|
+
const list = root.querySelector('[data-ref="list"]');
|
|
110
|
+
section?.classList.toggle('rd-accordion--open', open);
|
|
111
|
+
header?.setAttribute('aria-expanded', open ? 'true' : 'false');
|
|
112
|
+
if (title) {
|
|
113
|
+
title.textContent = this.heading;
|
|
114
|
+
}
|
|
115
|
+
if (list) {
|
|
116
|
+
list.className = `rd-link-list${this.dense ? ' rd-link-list--dense' : ''}`;
|
|
117
|
+
list.innerHTML = this.itemsValue
|
|
118
|
+
.map((item) => `<li class="rd-link-list__item"><a class="rd-link-list__link" href="${escapeHtml(item.href)}">${escapeHtml(item.label)}</a></li>`)
|
|
119
|
+
.join('');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** Typed recipe helper — same props as the custom element. */
|
|
124
|
+
export function AccordionLinkList(props) {
|
|
125
|
+
return {
|
|
126
|
+
title: props.title,
|
|
127
|
+
defaultOpen: props.defaultOpen ?? false,
|
|
128
|
+
className: props.className,
|
|
129
|
+
items: props.items ?? [],
|
|
130
|
+
dense: props.dense ?? false,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export function registerRdAccordionLinkList() {
|
|
134
|
+
registerRdAccordion();
|
|
135
|
+
registerRdLinkList();
|
|
136
|
+
ensureShadowBase(RD_ACCORDION_LINK_LIST_TAG);
|
|
137
|
+
defineRosettaElement(RD_ACCORDION_LINK_LIST_TAG, RdAccordionLinkListElement);
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=rd-accordion-link-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rd-accordion-link-list.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/layout/accordion-link-list/rd-accordion-link-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface DefineRosettaElementOptions {
|
|
2
|
+
extends?: keyof HTMLElementTagNameMap;
|
|
3
|
+
}
|
|
4
|
+
export declare function defineRosettaElement(tagName: string, ctor: CustomElementConstructor, options?: DefineRosettaElementOptions): void;
|
|
5
|
+
export type DashRow = Record<string, string | number | boolean | null | undefined>;
|
|
6
|
+
export declare function readNumber(value: unknown, fallback: number): number;
|
|
7
|
+
export declare function readString(value: unknown, fallback: string): string;
|
|
8
|
+
export declare const BASE_STYLES = "\n:host {\n display: block;\n font-family: var(--rd-font-family, system-ui, sans-serif);\n color: var(--rd-color-text, #1f2937);\n}\n.panel {\n border: 1px solid var(--rd-color-border, #d9dee7);\n border-radius: var(--rd-radius-md, 0.5rem);\n padding: 0.75rem;\n}\n.panel__header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n gap: 0.75rem;\n margin-bottom: 0.75rem;\n}\n.panel__header h3 {\n margin: 0;\n font-size: 0.9375rem;\n}\n.panel__meta {\n font-size: 0.75rem;\n color: var(--rd-color-muted, #6b7280);\n}\n";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function defineRosettaElement(tagName, ctor, options) {
|
|
2
|
+
if (customElements.get(tagName)) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
if (options?.extends) {
|
|
6
|
+
customElements.define(tagName, ctor, { extends: options.extends });
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
customElements.define(tagName, ctor);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function readNumber(value, fallback) {
|
|
13
|
+
const next = Number(value);
|
|
14
|
+
return Number.isFinite(next) ? next : fallback;
|
|
15
|
+
}
|
|
16
|
+
export function readString(value, fallback) {
|
|
17
|
+
return typeof value === 'string' ? value : fallback;
|
|
18
|
+
}
|
|
19
|
+
export const BASE_STYLES = `
|
|
20
|
+
:host {
|
|
21
|
+
display: block;
|
|
22
|
+
font-family: var(--rd-font-family, system-ui, sans-serif);
|
|
23
|
+
color: var(--rd-color-text, #1f2937);
|
|
24
|
+
}
|
|
25
|
+
.panel {
|
|
26
|
+
border: 1px solid var(--rd-color-border, #d9dee7);
|
|
27
|
+
border-radius: var(--rd-radius-md, 0.5rem);
|
|
28
|
+
padding: 0.75rem;
|
|
29
|
+
}
|
|
30
|
+
.panel__header {
|
|
31
|
+
display: flex;
|
|
32
|
+
justify-content: space-between;
|
|
33
|
+
align-items: baseline;
|
|
34
|
+
gap: 0.75rem;
|
|
35
|
+
margin-bottom: 0.75rem;
|
|
36
|
+
}
|
|
37
|
+
.panel__header h3 {
|
|
38
|
+
margin: 0;
|
|
39
|
+
font-size: 0.9375rem;
|
|
40
|
+
}
|
|
41
|
+
.panel__meta {
|
|
42
|
+
font-size: 0.75rem;
|
|
43
|
+
color: var(--rd-color-muted, #6b7280);
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
46
|
+
//# sourceMappingURL=element-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-utils.js","sourceRoot":"","sources":["../../../../../packages/web-components/src/lib/element-utils.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,IAA8B,EAC9B,OAAqC;IAErC,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAID,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,QAAgB;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,QAAgB;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { readString } from './element-utils.js';
|
|
2
|
+
export function parseLinkItems(raw) {
|
|
3
|
+
if (!raw) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const parsed = JSON.parse(raw);
|
|
8
|
+
if (!Array.isArray(parsed)) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
return parsed
|
|
12
|
+
.map((entry) => {
|
|
13
|
+
if (!entry || typeof entry !== 'object') {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const record = entry;
|
|
17
|
+
const label = readString(record['label'], '');
|
|
18
|
+
const href = readString(record['href'], '');
|
|
19
|
+
if (!label || !href) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return { label, href };
|
|
23
|
+
})
|
|
24
|
+
.filter((item) => item !== null);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function escapeHtml(value) {
|
|
31
|
+
return value
|
|
32
|
+
.replace(/&/g, '&')
|
|
33
|
+
.replace(/</g, '<')
|
|
34
|
+
.replace(/>/g, '>')
|
|
35
|
+
.replace(/"/g, '"');
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=parse-link-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-link-items.js","sourceRoot":"","sources":["../../../../../packages/web-components/src/lib/parse-link-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,KAAgC,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ShadowMountOptions } from './shadow-resources.js';
|
|
2
|
+
/** Co-located shadow asset directories relative to `packages/web-components/src/`. */
|
|
3
|
+
export declare const SHADOW_ELEMENT_DIRS: Record<string, string>;
|
|
4
|
+
/** Ensure a module/file URL resolves to a directory URL (trailing `/`). */
|
|
5
|
+
export declare function normalizeDirectoryUrl(urlString: string): string;
|
|
6
|
+
/** Register co-located asset directory for a custom element tag. */
|
|
7
|
+
export declare function registerShadowBase(tag: string, baseUrl: string): void;
|
|
8
|
+
/** Set package `src/` root (`file:` or `https:` URL ending in `/`). */
|
|
9
|
+
export declare function setShadowPackageSrcRoot(rootUrl: string): void;
|
|
10
|
+
/** Resolve `packages/web-components/src/` from a module URL (Vite-safe). */
|
|
11
|
+
export declare function resolvePackageSrcRootFromModule(moduleUrl: string): string;
|
|
12
|
+
/** Register all known shadow bases from {@link setShadowPackageSrcRoot}. */
|
|
13
|
+
export declare function registerAllShadowBases(): void;
|
|
14
|
+
/** Register one shadow base when package root is configured (browser entry or Jest setup). */
|
|
15
|
+
export declare function ensureShadowBase(tag: string): void;
|
|
16
|
+
/** Resolve registered base URL for shadow asset loading. */
|
|
17
|
+
export declare function getShadowBase(tag: string): string;
|
|
18
|
+
/** Load paired `.html` + `.css` for a registered element tag. */
|
|
19
|
+
export declare function loadShadowPairForTag(tag: string, htmlFile: string, cssFile: string): Promise<ShadowMountOptions>;
|
|
20
|
+
export { applyShadowMount } from './shadow-resources.js';
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { loadTextResource } from './shadow-resources.js';
|
|
2
|
+
/** Co-located shadow asset directories relative to `packages/web-components/src/`. */
|
|
3
|
+
export const SHADOW_ELEMENT_DIRS = {
|
|
4
|
+
'rd-accordion': 'layout/accordion',
|
|
5
|
+
'rd-accordion-link-list': 'layout/accordion-link-list',
|
|
6
|
+
'rd-link-list': 'visual/link-list',
|
|
7
|
+
'rd-video-source': 'visual/media/video-source',
|
|
8
|
+
'rd-equirect-viewport': 'visual/media/equirect-viewport',
|
|
9
|
+
'rd-wasm-media': 'wasm/wasm-media',
|
|
10
|
+
'rd-component-name': 'catalog/component-name',
|
|
11
|
+
};
|
|
12
|
+
const tagToBaseUrl = new Map();
|
|
13
|
+
let packageSrcRoot = null;
|
|
14
|
+
/** Ensure a module/file URL resolves to a directory URL (trailing `/`). */
|
|
15
|
+
export function normalizeDirectoryUrl(urlString) {
|
|
16
|
+
const url = new URL(urlString);
|
|
17
|
+
const lastSegment = url.pathname.split('/').pop() ?? '';
|
|
18
|
+
if (/\.[a-z0-9]+$/i.test(lastSegment)) {
|
|
19
|
+
url.pathname = url.pathname.replace(/\/[^/]+$/, '/');
|
|
20
|
+
}
|
|
21
|
+
else if (!url.pathname.endsWith('/')) {
|
|
22
|
+
url.pathname = `${url.pathname}/`;
|
|
23
|
+
}
|
|
24
|
+
return url.href.endsWith('/') ? url.href : `${url.href}/`;
|
|
25
|
+
}
|
|
26
|
+
/** Register co-located asset directory for a custom element tag. */
|
|
27
|
+
export function registerShadowBase(tag, baseUrl) {
|
|
28
|
+
tagToBaseUrl.set(tag, normalizeDirectoryUrl(baseUrl));
|
|
29
|
+
}
|
|
30
|
+
/** Set package `src/` root (`file:` or `https:` URL ending in `/`). */
|
|
31
|
+
export function setShadowPackageSrcRoot(rootUrl) {
|
|
32
|
+
packageSrcRoot = normalizeDirectoryUrl(rootUrl);
|
|
33
|
+
}
|
|
34
|
+
/** Resolve `packages/web-components/src/` from a module URL (Vite-safe). */
|
|
35
|
+
export function resolvePackageSrcRootFromModule(moduleUrl) {
|
|
36
|
+
const marker = new URL('./register-shadow-bases.browser.js', moduleUrl);
|
|
37
|
+
return normalizeDirectoryUrl(new URL('./', marker).href);
|
|
38
|
+
}
|
|
39
|
+
/** Register all known shadow bases from {@link setShadowPackageSrcRoot}. */
|
|
40
|
+
export function registerAllShadowBases() {
|
|
41
|
+
if (!packageSrcRoot) {
|
|
42
|
+
throw new Error('setShadowPackageSrcRoot must be called before registerAllShadowBases');
|
|
43
|
+
}
|
|
44
|
+
for (const [tag, dir] of Object.entries(SHADOW_ELEMENT_DIRS)) {
|
|
45
|
+
registerShadowBase(tag, new URL(`./${dir}/`, packageSrcRoot).href);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Register one shadow base when package root is configured (browser entry or Jest setup). */
|
|
49
|
+
export function ensureShadowBase(tag) {
|
|
50
|
+
if (tagToBaseUrl.has(tag)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (!packageSrcRoot) {
|
|
54
|
+
throw new Error(`Shadow base not registered for ${tag}. Import '@rosettadash/web-components' once in app code, or add the web-components Jest setup in test config.`);
|
|
55
|
+
}
|
|
56
|
+
const dir = SHADOW_ELEMENT_DIRS[tag];
|
|
57
|
+
if (!dir) {
|
|
58
|
+
throw new Error(`Unknown shadow element tag: ${tag}`);
|
|
59
|
+
}
|
|
60
|
+
registerShadowBase(tag, new URL(`./${dir}/`, packageSrcRoot).href);
|
|
61
|
+
}
|
|
62
|
+
/** Resolve registered base URL for shadow asset loading. */
|
|
63
|
+
export function getShadowBase(tag) {
|
|
64
|
+
const base = tagToBaseUrl.get(tag);
|
|
65
|
+
if (!base) {
|
|
66
|
+
throw new Error(`Shadow base not registered for ${tag}`);
|
|
67
|
+
}
|
|
68
|
+
return base;
|
|
69
|
+
}
|
|
70
|
+
/** Load paired `.html` + `.css` for a registered element tag. */
|
|
71
|
+
export async function loadShadowPairForTag(tag, htmlFile, cssFile) {
|
|
72
|
+
ensureShadowBase(tag);
|
|
73
|
+
const base = getShadowBase(tag);
|
|
74
|
+
const [html, css] = await Promise.all([
|
|
75
|
+
loadTextResource(htmlFile, base),
|
|
76
|
+
loadTextResource(cssFile, base),
|
|
77
|
+
]);
|
|
78
|
+
return { html, css };
|
|
79
|
+
}
|
|
80
|
+
export { applyShadowMount } from './shadow-resources.js';
|
|
81
|
+
//# sourceMappingURL=shadow-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-base.js","sourceRoot":"","sources":["../../../../../packages/web-components/src/lib/shadow-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Load co-located `.html` / `.css` for shadow roots (browser fetch). */
|
|
2
|
+
export declare function loadTextResource(relativePath: string, baseUrl: string): Promise<string>;
|
|
3
|
+
export interface ShadowMountOptions {
|
|
4
|
+
html: string;
|
|
5
|
+
css: string;
|
|
6
|
+
}
|
|
7
|
+
/** Apply stylesheet + markup to an open shadow root. */
|
|
8
|
+
export declare function applyShadowMount(root: ShadowRoot, options: ShadowMountOptions): void;
|
|
9
|
+
/** Load paired `.html` + `.css` next to the calling module. */
|
|
10
|
+
export declare function loadShadowPair(baseUrl: string, htmlFile: string, cssFile: string): Promise<ShadowMountOptions>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const textCache = new Map();
|
|
2
|
+
/** Load co-located `.html` / `.css` for shadow roots (browser fetch). */
|
|
3
|
+
export function loadTextResource(relativePath, baseUrl) {
|
|
4
|
+
const url = new URL(relativePath, baseUrl);
|
|
5
|
+
const cacheKey = url.href;
|
|
6
|
+
const cached = textCache.get(cacheKey);
|
|
7
|
+
if (cached) {
|
|
8
|
+
return cached;
|
|
9
|
+
}
|
|
10
|
+
const promise = (async () => {
|
|
11
|
+
const response = await fetch(url);
|
|
12
|
+
if (!response.ok) {
|
|
13
|
+
throw new Error(`Failed to load ${url.href}: ${response.status}`);
|
|
14
|
+
}
|
|
15
|
+
return response.text();
|
|
16
|
+
})();
|
|
17
|
+
textCache.set(cacheKey, promise);
|
|
18
|
+
return promise;
|
|
19
|
+
}
|
|
20
|
+
/** Apply stylesheet + markup to an open shadow root. */
|
|
21
|
+
export function applyShadowMount(root, options) {
|
|
22
|
+
root.innerHTML = '';
|
|
23
|
+
const style = document.createElement('style');
|
|
24
|
+
style.textContent = options.css;
|
|
25
|
+
root.appendChild(style);
|
|
26
|
+
const template = document.createElement('template');
|
|
27
|
+
template.innerHTML = options.html;
|
|
28
|
+
root.appendChild(template.content.cloneNode(true));
|
|
29
|
+
}
|
|
30
|
+
/** Load paired `.html` + `.css` next to the calling module. */
|
|
31
|
+
export async function loadShadowPair(baseUrl, htmlFile, cssFile) {
|
|
32
|
+
const [html, css] = await Promise.all([
|
|
33
|
+
loadTextResource(htmlFile, baseUrl),
|
|
34
|
+
loadTextResource(cssFile, baseUrl),
|
|
35
|
+
]);
|
|
36
|
+
return { html, css };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=shadow-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow-resources.js","sourceRoot":"","sources":["../../../../../packages/web-components/src/lib/shadow-resources.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;AAErD,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,OAAe;IACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC;IAEL,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,IAAgB,EAAE,OAA2B;IAC5E,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAExB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,QAAgB,EAChB,OAAe;IAEf,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;KACnC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { registerAllShadowBases, resolvePackageSrcRootFromModule, setShadowPackageSrcRoot, } from './lib/shadow-base.js';
|
|
2
|
+
/** Browser-only: register co-located shadow asset bases (not loaded in Jest). */
|
|
3
|
+
setShadowPackageSrcRoot(resolvePackageSrcRootFromModule(import.meta.url));
|
|
4
|
+
registerAllShadowBases();
|
|
5
|
+
//# sourceMappingURL=register-shadow-bases.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-shadow-bases.browser.js","sourceRoot":"","sources":["../../../../packages/web-components/src/register-shadow-bases.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,iFAAiF;AACjF,uBAAuB,CAAC,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { LinkListItem, LinkListProps } from './rd-link-list.js';
|
|
2
|
+
export { RD_LINK_LIST_TAG, RdLinkListElement, registerRdLinkList, } from './rd-link-list.js';
|
|
3
|
+
/** Convenience: register visual/link-list custom element. */
|
|
4
|
+
export declare function registerVisualLinkList(): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { RD_LINK_LIST_TAG, RdLinkListElement, registerRdLinkList, } from './rd-link-list.js';
|
|
2
|
+
import { registerRdLinkList } from './rd-link-list.js';
|
|
3
|
+
/** Convenience: register visual/link-list custom element. */
|
|
4
|
+
export function registerVisualLinkList() {
|
|
5
|
+
registerRdLinkList();
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/visual/link-list/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,6DAA6D;AAC7D,MAAM,UAAU,sBAAsB;IACpC,kBAAkB,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type LinkListItem } from '../../lib/parse-link-items.js';
|
|
2
|
+
export declare const RD_LINK_LIST_TAG = "rd-link-list";
|
|
3
|
+
export type { LinkListItem };
|
|
4
|
+
/** Public props contract for visual/link-list (all runtimes share this shape). */
|
|
5
|
+
export interface LinkListProps {
|
|
6
|
+
items?: LinkListItem[];
|
|
7
|
+
className?: string;
|
|
8
|
+
/** When true, render a denser list. */
|
|
9
|
+
dense?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class RdLinkListElement extends HTMLElement {
|
|
12
|
+
static readonly tagName = "rd-link-list";
|
|
13
|
+
private itemsValue;
|
|
14
|
+
private resourcesReady;
|
|
15
|
+
static get observedAttributes(): string[];
|
|
16
|
+
connectedCallback(): void;
|
|
17
|
+
attributeChangedCallback(name: string): void;
|
|
18
|
+
whenReady(): Promise<void>;
|
|
19
|
+
get items(): LinkListItem[];
|
|
20
|
+
set items(value: LinkListItem[]);
|
|
21
|
+
get dense(): boolean;
|
|
22
|
+
private syncItemsFromAttribute;
|
|
23
|
+
private mountShadow;
|
|
24
|
+
private paint;
|
|
25
|
+
}
|
|
26
|
+
export declare function registerRdLinkList(): void;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { defineRosettaElement } from '../../lib/element-utils.js';
|
|
2
|
+
import { escapeHtml, parseLinkItems } from '../../lib/parse-link-items.js';
|
|
3
|
+
import { applyShadowMount, ensureShadowBase, loadShadowPairForTag } from '../../lib/shadow-base.js';
|
|
4
|
+
export const RD_LINK_LIST_TAG = 'rd-link-list';
|
|
5
|
+
export class RdLinkListElement extends HTMLElement {
|
|
6
|
+
static tagName = RD_LINK_LIST_TAG;
|
|
7
|
+
itemsValue = [];
|
|
8
|
+
resourcesReady = null;
|
|
9
|
+
static get observedAttributes() {
|
|
10
|
+
return ['items', 'dense'];
|
|
11
|
+
}
|
|
12
|
+
connectedCallback() {
|
|
13
|
+
if (!this.shadowRoot) {
|
|
14
|
+
this.attachShadow({ mode: 'open' });
|
|
15
|
+
}
|
|
16
|
+
this.syncItemsFromAttribute();
|
|
17
|
+
this.resourcesReady = this.mountShadow();
|
|
18
|
+
void this.resourcesReady.then(() => this.paint());
|
|
19
|
+
}
|
|
20
|
+
attributeChangedCallback(name) {
|
|
21
|
+
if (name === 'items') {
|
|
22
|
+
this.syncItemsFromAttribute();
|
|
23
|
+
}
|
|
24
|
+
if (this.shadowRoot && this.resourcesReady) {
|
|
25
|
+
void this.resourcesReady.then(() => this.paint());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
whenReady() {
|
|
29
|
+
return this.resourcesReady ?? Promise.resolve();
|
|
30
|
+
}
|
|
31
|
+
get items() {
|
|
32
|
+
return this.itemsValue;
|
|
33
|
+
}
|
|
34
|
+
set items(value) {
|
|
35
|
+
this.itemsValue = Array.isArray(value) ? value : [];
|
|
36
|
+
this.setAttribute('items', JSON.stringify(this.itemsValue));
|
|
37
|
+
}
|
|
38
|
+
get dense() {
|
|
39
|
+
return this.hasAttribute('dense');
|
|
40
|
+
}
|
|
41
|
+
syncItemsFromAttribute() {
|
|
42
|
+
this.itemsValue = parseLinkItems(this.getAttribute('items'));
|
|
43
|
+
}
|
|
44
|
+
async mountShadow() {
|
|
45
|
+
const root = this.shadowRoot;
|
|
46
|
+
if (!root || root.querySelector('[data-ref="list"]')) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const pair = await loadShadowPairForTag(RD_LINK_LIST_TAG, './rd-link-list.html', './rd-link-list.css');
|
|
50
|
+
applyShadowMount(root, pair);
|
|
51
|
+
}
|
|
52
|
+
paint() {
|
|
53
|
+
const root = this.shadowRoot;
|
|
54
|
+
const list = root?.querySelector('[data-ref="list"]');
|
|
55
|
+
if (!list) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
list.className = `rd-link-list${this.dense ? ' rd-link-list--dense' : ''}`;
|
|
59
|
+
list.innerHTML = this.itemsValue
|
|
60
|
+
.map((item) => `<li class="rd-link-list__item"><a class="rd-link-list__link" href="${escapeHtml(item.href)}">${escapeHtml(item.label)}</a></li>`)
|
|
61
|
+
.join('');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export function registerRdLinkList() {
|
|
65
|
+
ensureShadowBase(RD_LINK_LIST_TAG);
|
|
66
|
+
defineRosettaElement(RD_LINK_LIST_TAG, RdLinkListElement);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=rd-link-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rd-link-list.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/visual/link-list/rd-link-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RdEquirectViewportElement, DB_EQUIRECT_VIEWPORT_TAG, registerRdEquirectViewport, type EquirectPreviewMode, } from './rd-equirect-viewport.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/web-components/src/visual/media/equirect-viewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DashRow } from '../../../lib/element-utils.js';
|
|
2
|
+
export declare const DB_EQUIRECT_VIEWPORT_TAG = "rd-equirect-viewport";
|
|
3
|
+
export type EquirectPreviewMode = 'flat-crop' | 'rectilinear';
|
|
4
|
+
export declare class RdEquirectViewportElement extends HTMLElement {
|
|
5
|
+
static readonly tagName = "rd-equirect-viewport";
|
|
6
|
+
private resourcesReady;
|
|
7
|
+
static get observedAttributes(): string[];
|
|
8
|
+
connectedCallback(): void;
|
|
9
|
+
attributeChangedCallback(): void;
|
|
10
|
+
whenReady(): Promise<void>;
|
|
11
|
+
setProperty(name: string, value: unknown): void;
|
|
12
|
+
get previewMode(): EquirectPreviewMode;
|
|
13
|
+
get label(): string;
|
|
14
|
+
get cropRegion(): DashRow;
|
|
15
|
+
private get sourceWidth();
|
|
16
|
+
private get sourceHeight();
|
|
17
|
+
private get cropX();
|
|
18
|
+
private get cropY();
|
|
19
|
+
private get cropWidth();
|
|
20
|
+
private get cropHeight();
|
|
21
|
+
private get outputWidth();
|
|
22
|
+
private get outputHeight();
|
|
23
|
+
private get yaw();
|
|
24
|
+
private get pitch();
|
|
25
|
+
private get horizontalFov();
|
|
26
|
+
private mountShadow;
|
|
27
|
+
private paint;
|
|
28
|
+
private emitCropRegion;
|
|
29
|
+
}
|
|
30
|
+
export declare function registerRdEquirectViewport(): void;
|