@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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/browser/media.js +484 -0
  4. package/browser/media.js.map +7 -0
  5. package/package.json +125 -0
  6. package/src/catalog/_shared/catalog-variant.d.ts +5 -0
  7. package/src/catalog/_shared/catalog-variant.js +19 -0
  8. package/src/catalog/_shared/catalog-variant.js.map +1 -0
  9. package/src/catalog/_shared/markup-shared.d.ts +6 -0
  10. package/src/catalog/_shared/markup-shared.js +21 -0
  11. package/src/catalog/_shared/markup-shared.js.map +1 -0
  12. package/src/catalog/component-attribute/index.d.ts +2 -0
  13. package/src/catalog/component-attribute/index.js +2 -0
  14. package/src/catalog/component-attribute/index.js.map +1 -0
  15. package/src/catalog/component-attribute/rd-attribute.d.ts +20 -0
  16. package/src/catalog/component-attribute/rd-attribute.js +27 -0
  17. package/src/catalog/component-attribute/rd-attribute.js.map +1 -0
  18. package/src/catalog/component-name/index.d.ts +2 -0
  19. package/src/catalog/component-name/index.js +2 -0
  20. package/src/catalog/component-name/index.js.map +1 -0
  21. package/src/catalog/component-name/rd-component-name.d.ts +40 -0
  22. package/src/catalog/component-name/rd-component-name.js +219 -0
  23. package/src/catalog/component-name/rd-component-name.js.map +1 -0
  24. package/src/catalog/component-option/index.d.ts +2 -0
  25. package/src/catalog/component-option/index.js +2 -0
  26. package/src/catalog/component-option/index.js.map +1 -0
  27. package/src/catalog/component-option/rd-component-option.d.ts +25 -0
  28. package/src/catalog/component-option/rd-component-option.js +104 -0
  29. package/src/catalog/component-option/rd-component-option.js.map +1 -0
  30. package/src/catalog/component-port/index.d.ts +2 -0
  31. package/src/catalog/component-port/index.js +2 -0
  32. package/src/catalog/component-port/index.js.map +1 -0
  33. package/src/catalog/component-port/rd-component-port.d.ts +26 -0
  34. package/src/catalog/component-port/rd-component-port.js +109 -0
  35. package/src/catalog/component-port/rd-component-port.js.map +1 -0
  36. package/src/catalog/component-requirement/index.d.ts +2 -0
  37. package/src/catalog/component-requirement/index.js +2 -0
  38. package/src/catalog/component-requirement/index.js.map +1 -0
  39. package/src/catalog/component-requirement/rd-component-requirement.d.ts +17 -0
  40. package/src/catalog/component-requirement/rd-component-requirement.js +76 -0
  41. package/src/catalog/component-requirement/rd-component-requirement.js.map +1 -0
  42. package/src/catalog/component-spec/index.d.ts +2 -0
  43. package/src/catalog/component-spec/index.js +2 -0
  44. package/src/catalog/component-spec/index.js.map +1 -0
  45. package/src/catalog/component-spec/rd-component-spec.d.ts +40 -0
  46. package/src/catalog/component-spec/rd-component-spec.js +367 -0
  47. package/src/catalog/component-spec/rd-component-spec.js.map +1 -0
  48. package/src/catalog/index.d.ts +23 -0
  49. package/src/catalog/index.js +37 -0
  50. package/src/catalog/index.js.map +1 -0
  51. package/src/catalog/palette-catalog/index.d.ts +2 -0
  52. package/src/catalog/palette-catalog/index.js +2 -0
  53. package/src/catalog/palette-catalog/index.js.map +1 -0
  54. package/src/catalog/palette-catalog/rd-palette-catalog.d.ts +29 -0
  55. package/src/catalog/palette-catalog/rd-palette-catalog.js +114 -0
  56. package/src/catalog/palette-catalog/rd-palette-catalog.js.map +1 -0
  57. package/src/catalog/palette-group/index.d.ts +2 -0
  58. package/src/catalog/palette-group/index.js +2 -0
  59. package/src/catalog/palette-group/index.js.map +1 -0
  60. package/src/catalog/palette-group/rd-palette-group.d.ts +33 -0
  61. package/src/catalog/palette-group/rd-palette-group.js +179 -0
  62. package/src/catalog/palette-group/rd-palette-group.js.map +1 -0
  63. package/src/catalog/subcomponent-name/index.d.ts +1 -0
  64. package/src/catalog/subcomponent-name/index.js +2 -0
  65. package/src/catalog/subcomponent-name/index.js.map +1 -0
  66. package/src/catalog/subcomponent-name/rd-subcomponent-name.d.ts +12 -0
  67. package/src/catalog/subcomponent-name/rd-subcomponent-name.js +29 -0
  68. package/src/catalog/subcomponent-name/rd-subcomponent-name.js.map +1 -0
  69. package/src/index.d.ts +9 -0
  70. package/src/index.js +23 -0
  71. package/src/index.js.map +1 -0
  72. package/src/layout/accordion/index.d.ts +4 -0
  73. package/src/layout/accordion/index.js +7 -0
  74. package/src/layout/accordion/index.js.map +1 -0
  75. package/src/layout/accordion/rd-accordion.d.ts +26 -0
  76. package/src/layout/accordion/rd-accordion.js +94 -0
  77. package/src/layout/accordion/rd-accordion.js.map +1 -0
  78. package/src/layout/accordion-link-list/index.d.ts +4 -0
  79. package/src/layout/accordion-link-list/index.js +7 -0
  80. package/src/layout/accordion-link-list/index.js.map +1 -0
  81. package/src/layout/accordion-link-list/rd-accordion-link-list.d.ts +36 -0
  82. package/src/layout/accordion-link-list/rd-accordion-link-list.js +139 -0
  83. package/src/layout/accordion-link-list/rd-accordion-link-list.js.map +1 -0
  84. package/src/lib/element-utils.d.ts +8 -0
  85. package/src/lib/element-utils.js +46 -0
  86. package/src/lib/element-utils.js.map +1 -0
  87. package/src/lib/parse-link-items.d.ts +6 -0
  88. package/src/lib/parse-link-items.js +37 -0
  89. package/src/lib/parse-link-items.js.map +1 -0
  90. package/src/lib/shadow-base.d.ts +20 -0
  91. package/src/lib/shadow-base.js +81 -0
  92. package/src/lib/shadow-base.js.map +1 -0
  93. package/src/lib/shadow-resources.d.ts +10 -0
  94. package/src/lib/shadow-resources.js +38 -0
  95. package/src/lib/shadow-resources.js.map +1 -0
  96. package/src/register-shadow-bases.browser.d.ts +1 -0
  97. package/src/register-shadow-bases.browser.js +5 -0
  98. package/src/register-shadow-bases.browser.js.map +1 -0
  99. package/src/visual/link-list/index.d.ts +4 -0
  100. package/src/visual/link-list/index.js +7 -0
  101. package/src/visual/link-list/index.js.map +1 -0
  102. package/src/visual/link-list/rd-link-list.d.ts +26 -0
  103. package/src/visual/link-list/rd-link-list.js +68 -0
  104. package/src/visual/link-list/rd-link-list.js.map +1 -0
  105. package/src/visual/media/equirect-viewport/index.d.ts +1 -0
  106. package/src/visual/media/equirect-viewport/index.js +2 -0
  107. package/src/visual/media/equirect-viewport/index.js.map +1 -0
  108. package/src/visual/media/equirect-viewport/rd-equirect-viewport.d.ts +30 -0
  109. package/src/visual/media/equirect-viewport/rd-equirect-viewport.js +199 -0
  110. package/src/visual/media/equirect-viewport/rd-equirect-viewport.js.map +1 -0
  111. package/src/visual/media/index.d.ts +3 -0
  112. package/src/visual/media/index.js +9 -0
  113. package/src/visual/media/index.js.map +1 -0
  114. package/src/visual/media/video-source/index.d.ts +1 -0
  115. package/src/visual/media/video-source/index.js +2 -0
  116. package/src/visual/media/video-source/index.js.map +1 -0
  117. package/src/visual/media/video-source/rd-video-source.d.ts +19 -0
  118. package/src/visual/media/video-source/rd-video-source.js +105 -0
  119. package/src/visual/media/video-source/rd-video-source.js.map +1 -0
  120. package/src/wasm/index.d.ts +2 -0
  121. package/src/wasm/index.js +6 -0
  122. package/src/wasm/index.js.map +1 -0
  123. package/src/wasm/wasm-media/index.d.ts +1 -0
  124. package/src/wasm/wasm-media/index.js +2 -0
  125. package/src/wasm/wasm-media/index.js.map +1 -0
  126. package/src/wasm/wasm-media/rd-wasm-media.d.ts +30 -0
  127. package/src/wasm/wasm-media/rd-wasm-media.js +269 -0
  128. package/src/wasm/wasm-media/rd-wasm-media.js.map +1 -0
  129. package/styles/catalog.css +69 -0
  130. package/styles/styles.css +76 -0
  131. package/styles/tokens.css +19 -0
@@ -0,0 +1,33 @@
1
+ import { type CatalogVariant } from '../_shared/catalog-variant.js';
2
+ export declare const RD_PALETTE_GROUP_TAG = "rd-palette-group";
3
+ export type PaletteGroupFit = 'universal' | 'specialized' | 'mixed';
4
+ export interface PaletteGroupProps {
5
+ groupId: string;
6
+ label?: string;
7
+ fit?: PaletteGroupFit;
8
+ variant?: CatalogVariant;
9
+ }
10
+ export declare class RdPaletteGroupElement extends HTMLElement {
11
+ static readonly tagName = "rd-palette-group";
12
+ static get observedAttributes(): string[];
13
+ connectedCallback(): void;
14
+ attributeChangedCallback(): void;
15
+ get groupId(): string;
16
+ get groupLabel(): string;
17
+ get fit(): PaletteGroupFit;
18
+ get variant(): CatalogVariant;
19
+ private fitLabel;
20
+ private render;
21
+ }
22
+ export declare function registerRdPaletteGroup(): void;
23
+ export declare function createPaletteGroupElement(options: {
24
+ groupId: string;
25
+ label: string;
26
+ fit: PaletteGroupFit;
27
+ summary: string;
28
+ relationships: string;
29
+ learnMore: string;
30
+ relatedButtonsHtml?: string;
31
+ variant?: CatalogVariant;
32
+ showTitle?: boolean;
33
+ }): RdPaletteGroupElement;
@@ -0,0 +1,179 @@
1
+ import { defineRosettaElement, readString } from '../../lib/element-utils.js';
2
+ import { applyCatalogVariant, readCatalogVariant } from '../_shared/catalog-variant.js';
3
+ export const RD_PALETTE_GROUP_TAG = 'rd-palette-group';
4
+ export class RdPaletteGroupElement extends HTMLElement {
5
+ static tagName = RD_PALETTE_GROUP_TAG;
6
+ static get observedAttributes() {
7
+ return ['group-id', 'label', 'fit', 'variant'];
8
+ }
9
+ connectedCallback() {
10
+ if (!this.shadowRoot) {
11
+ this.attachShadow({ mode: 'open' });
12
+ }
13
+ this.render();
14
+ }
15
+ attributeChangedCallback() {
16
+ if (this.shadowRoot) {
17
+ this.render();
18
+ }
19
+ }
20
+ get groupId() {
21
+ return readString(this.getAttribute('group-id'), '');
22
+ }
23
+ get groupLabel() {
24
+ return readString(this.getAttribute('label'), this.groupId);
25
+ }
26
+ get fit() {
27
+ const value = readString(this.getAttribute('fit'), 'mixed');
28
+ if (value === 'universal' || value === 'specialized') {
29
+ return value;
30
+ }
31
+ return 'mixed';
32
+ }
33
+ get variant() {
34
+ return readCatalogVariant(this.getAttribute('variant'));
35
+ }
36
+ fitLabel() {
37
+ switch (this.fit) {
38
+ case 'universal':
39
+ return 'Fits most dashboards';
40
+ case 'specialized':
41
+ return 'Specialized / single-purpose flows';
42
+ default:
43
+ return 'Mixed — some universal, some specialized';
44
+ }
45
+ }
46
+ render() {
47
+ const root = this.shadowRoot;
48
+ if (!root) {
49
+ return;
50
+ }
51
+ root.innerHTML = `
52
+ <style>
53
+ :host { display: block; }
54
+ .rd-palette-group {
55
+ display: grid;
56
+ gap: 0.75rem;
57
+ padding: 1rem 1.125rem;
58
+ border: 1px solid var(--rd-color-border, #d0d0d0);
59
+ border-radius: var(--rd-radius-md, 0.5rem);
60
+ background: linear-gradient(180deg, color-mix(in srgb, var(--rd-color-accent, #2563eb) 5%, #fff) 0%, #fff 100%);
61
+ font-family: var(--rd-font-family, system-ui, sans-serif);
62
+ color: var(--rd-color-text, #1a1a1a);
63
+ }
64
+ .rd-palette-group__title {
65
+ margin: 0;
66
+ font-size: 1.125rem;
67
+ }
68
+ .rd-palette-group__fit {
69
+ margin: 0;
70
+ font-size: 0.6875rem;
71
+ font-weight: 600;
72
+ text-transform: uppercase;
73
+ letter-spacing: 0.04em;
74
+ color: var(--rd-color-muted, #5c5c5c);
75
+ }
76
+ .rd-palette-group__fit span {
77
+ padding: 0.125rem 0.5rem;
78
+ border-radius: 999px;
79
+ background: rgb(15 23 42 / 6%);
80
+ }
81
+ .rd-palette-group__heading {
82
+ margin: 0.5rem 0 0;
83
+ font-size: 0.8125rem;
84
+ font-weight: 700;
85
+ text-transform: uppercase;
86
+ letter-spacing: 0.03em;
87
+ color: var(--rd-color-muted, #5c5c5c);
88
+ }
89
+ .rd-palette-group__body {
90
+ margin: 0;
91
+ font-size: 0.875rem;
92
+ line-height: 1.55;
93
+ }
94
+ .rd-palette-group__related {
95
+ display: flex;
96
+ flex-wrap: wrap;
97
+ align-items: center;
98
+ gap: 0.375rem;
99
+ font-size: 0.8125rem;
100
+ color: var(--rd-color-muted, #5c5c5c);
101
+ }
102
+ ::slotted([slot="related"] button) {
103
+ padding: 0.25rem 0.625rem;
104
+ border: 1px solid var(--rd-color-border, #d0d0d0);
105
+ border-radius: 999px;
106
+ background: #fff;
107
+ font: inherit;
108
+ font-size: 0.75rem;
109
+ color: var(--rd-color-accent, #2563eb);
110
+ cursor: pointer;
111
+ }
112
+ .rd-palette-group--compact { padding: 0.75rem; gap: 0.5rem; }
113
+ .rd-palette-group--compact .rd-palette-group__title { font-size: 1rem; }
114
+ .rd-palette-group--plain {
115
+ background: #fff;
116
+ border-style: dashed;
117
+ }
118
+ </style>
119
+ <aside class="rd-palette-group" part="group" data-guide-group="${escapeAttr(this.groupId)}">
120
+ <h2 class="rd-palette-group__title">${escapeHtml(this.groupLabel)}</h2>
121
+ <p class="rd-palette-group__fit"><span>${escapeHtml(this.fitLabel())}</span></p>
122
+ <slot name="summary"></slot>
123
+ <h3 class="rd-palette-group__heading">How components relate</h3>
124
+ <slot name="relationships"></slot>
125
+ <h3 class="rd-palette-group__heading">Where to learn more</h3>
126
+ <slot name="learn-more"></slot>
127
+ <div class="rd-palette-group__related">
128
+ <span>Related groups:</span>
129
+ <slot name="related"></slot>
130
+ </div>
131
+ </aside>`;
132
+ applyCatalogVariant(this, 'rd-palette-group', this.variant);
133
+ }
134
+ }
135
+ function escapeHtml(value) {
136
+ return value
137
+ .replace(/&/g, '&amp;')
138
+ .replace(/</g, '&lt;')
139
+ .replace(/>/g, '&gt;')
140
+ .replace(/"/g, '&quot;');
141
+ }
142
+ function escapeAttr(value) {
143
+ return escapeHtml(value);
144
+ }
145
+ export function registerRdPaletteGroup() {
146
+ defineRosettaElement(RD_PALETTE_GROUP_TAG, RdPaletteGroupElement);
147
+ }
148
+ export function createPaletteGroupElement(options) {
149
+ const el = document.createElement(RD_PALETTE_GROUP_TAG);
150
+ el.setAttribute('group-id', options.groupId);
151
+ el.setAttribute('label', options.label);
152
+ el.setAttribute('fit', options.fit);
153
+ if (options.variant) {
154
+ el.setAttribute('variant', options.variant);
155
+ }
156
+ const summary = document.createElement('p');
157
+ summary.slot = 'summary';
158
+ summary.className = 'rd-palette-group__body';
159
+ summary.textContent = options.summary;
160
+ el.appendChild(summary);
161
+ const relationships = document.createElement('p');
162
+ relationships.slot = 'relationships';
163
+ relationships.className = 'rd-palette-group__body';
164
+ relationships.textContent = options.relationships;
165
+ el.appendChild(relationships);
166
+ const learnMore = document.createElement('p');
167
+ learnMore.slot = 'learn-more';
168
+ learnMore.className = 'rd-palette-group__body';
169
+ learnMore.innerHTML = options.learnMore.replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>');
170
+ el.appendChild(learnMore);
171
+ if (options.relatedButtonsHtml) {
172
+ const related = document.createElement('div');
173
+ related.slot = 'related';
174
+ related.innerHTML = options.relatedButtonsHtml;
175
+ el.appendChild(related);
176
+ }
177
+ return el;
178
+ }
179
+ //# sourceMappingURL=rd-palette-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rd-palette-group.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/catalog/palette-group/rd-palette-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAuB,MAAM,+BAA+B,CAAC;AAE7G,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAWvD,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IACpD,MAAM,CAAU,OAAO,GAAG,oBAAoB,CAAC;IAE/C,MAAM,KAAK,kBAAkB;QAC3B,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,wBAAwB;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,GAAG;QACL,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,QAAQ;QACd,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,KAAK,WAAW;gBACd,OAAO,sBAAsB,CAAC;YAChC,KAAK,aAAa;gBAChB,OAAO,oCAAoC,CAAC;YAC9C;gBACE,OAAO,0CAA0C,CAAC;QACtD,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAoE4C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;wCACjD,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;2CACxB,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;;;;;;;;;SAU7D,CAAC;QAEN,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;;AAGH,SAAS,UAAU,CAAC,KAAa;IAC/B,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;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,oBAAoB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAUzC;IACC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAA0B,CAAC;IACjF,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC;IAC7C,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IACtC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClD,aAAa,CAAC,IAAI,GAAG,eAAe,CAAC;IACrC,aAAa,CAAC,SAAS,GAAG,wBAAwB,CAAC;IACnD,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAClD,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9C,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,SAAS,CAAC,SAAS,GAAG,wBAAwB,CAAC;IAC/C,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IAC3F,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE1B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC/C,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1 @@
1
+ export { RD_SUBCOMPONENT_NAME_TAG, RdSubcomponentNameElement, registerRdSubcomponentName } from './rd-subcomponent-name.js';
@@ -0,0 +1,2 @@
1
+ export { RD_SUBCOMPONENT_NAME_TAG, RdSubcomponentNameElement, registerRdSubcomponentName } from './rd-subcomponent-name.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/catalog/subcomponent-name/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type RdAttributeElement } from '../component-attribute/rd-attribute.js';
2
+ export declare const RD_SUBCOMPONENT_NAME_TAG = "rd-subcomponent-name";
3
+ export declare class RdSubcomponentNameElement extends HTMLElement {
4
+ static readonly tagName = "rd-subcomponent-name";
5
+ static get observedAttributes(): string[];
6
+ get subTag(): string;
7
+ get bindHint(): string;
8
+ get isRequired(): boolean;
9
+ get requirementClass(): 'required' | 'optional';
10
+ get attributeElements(): RdAttributeElement[];
11
+ }
12
+ export declare function registerRdSubcomponentName(): void;
@@ -0,0 +1,29 @@
1
+ import { defineRosettaElement, readString } from '../../lib/element-utils.js';
2
+ import { RD_ATTRIBUTE_TAG } from '../component-attribute/rd-attribute.js';
3
+ export const RD_SUBCOMPONENT_NAME_TAG = 'rd-subcomponent-name';
4
+ export class RdSubcomponentNameElement extends HTMLElement {
5
+ static tagName = RD_SUBCOMPONENT_NAME_TAG;
6
+ static get observedAttributes() {
7
+ return ['tag', 'bind'];
8
+ }
9
+ get subTag() {
10
+ const raw = readString(this.getAttribute('tag'), 'rd-child');
11
+ return raw.startsWith('rd-') ? raw : `rd-${raw}`;
12
+ }
13
+ get bindHint() {
14
+ return readString(this.getAttribute('bind'), '');
15
+ }
16
+ get isRequired() {
17
+ return this.hasAttribute('required');
18
+ }
19
+ get requirementClass() {
20
+ return this.isRequired ? 'required' : 'optional';
21
+ }
22
+ get attributeElements() {
23
+ return [...this.querySelectorAll(`:scope > ${RD_ATTRIBUTE_TAG}`)];
24
+ }
25
+ }
26
+ export function registerRdSubcomponentName() {
27
+ defineRosettaElement(RD_SUBCOMPONENT_NAME_TAG, RdSubcomponentNameElement);
28
+ }
29
+ //# sourceMappingURL=rd-subcomponent-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rd-subcomponent-name.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/catalog/subcomponent-name/rd-subcomponent-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAA2B,MAAM,wCAAwC,CAAC;AAEnG,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACxD,MAAM,CAAU,OAAO,GAAG,wBAAwB,CAAC;IAEnD,MAAM,KAAK,kBAAkB;QAC3B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACR,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACnD,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,gBAAgB,EAAE,CAAC,CAAyB,CAAC;IAC5F,CAAC;;AAGH,MAAM,UAAU,0BAA0B;IACxC,oBAAoB,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;AAC5E,CAAC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export * from './visual/media/index.js';
2
+ export * from './wasm/index.js';
3
+ export * from './layout/accordion/index.js';
4
+ export * from './layout/accordion-link-list/index.js';
5
+ export * from './visual/link-list/index.js';
6
+ export * from './catalog/index.js';
7
+ import './register-shadow-bases.browser.js';
8
+ /** Register all RosettaDash runtime custom elements (layout + media + wasm + catalog). */
9
+ export declare function registerRosettaDashElements(): void;
package/src/index.js ADDED
@@ -0,0 +1,23 @@
1
+ export * from './visual/media/index.js';
2
+ export * from './wasm/index.js';
3
+ export * from './layout/accordion/index.js';
4
+ export * from './layout/accordion-link-list/index.js';
5
+ export * from './visual/link-list/index.js';
6
+ export * from './catalog/index.js';
7
+ import { registerLayoutAccordion } from './layout/accordion/index.js';
8
+ import { registerLayoutAccordionLinkList } from './layout/accordion-link-list/index.js';
9
+ import { registerVisualLinkList } from './visual/link-list/index.js';
10
+ import { registerRosettaDashMediaElements } from './visual/media/index.js';
11
+ import { registerRosettaDashWasmElements } from './wasm/index.js';
12
+ import { registerRosettaDashCatalogElements } from './catalog/index.js';
13
+ import './register-shadow-bases.browser.js';
14
+ /** Register all RosettaDash runtime custom elements (layout + media + wasm + catalog). */
15
+ export function registerRosettaDashElements() {
16
+ registerLayoutAccordion();
17
+ registerLayoutAccordionLinkList();
18
+ registerVisualLinkList();
19
+ registerRosettaDashMediaElements();
20
+ registerRosettaDashWasmElements();
21
+ registerRosettaDashCatalogElements();
22
+ }
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/web-components/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,oCAAoC,CAAC;AAE5C,0FAA0F;AAC1F,MAAM,UAAU,2BAA2B;IACzC,uBAAuB,EAAE,CAAC;IAC1B,+BAA+B,EAAE,CAAC;IAClC,sBAAsB,EAAE,CAAC;IACzB,gCAAgC,EAAE,CAAC;IACnC,+BAA+B,EAAE,CAAC;IAClC,kCAAkC,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type { AccordionProps } from './rd-accordion.js';
2
+ export { RD_ACCORDION_TAG, RdAccordionElement, registerRdAccordion, } from './rd-accordion.js';
3
+ /** Convenience: register layout/accordion custom element. */
4
+ export declare function registerLayoutAccordion(): void;
@@ -0,0 +1,7 @@
1
+ export { RD_ACCORDION_TAG, RdAccordionElement, registerRdAccordion, } from './rd-accordion.js';
2
+ import { registerRdAccordion } from './rd-accordion.js';
3
+ /** Convenience: register layout/accordion custom element. */
4
+ export function registerLayoutAccordion() {
5
+ registerRdAccordion();
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/layout/accordion/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,6DAA6D;AAC7D,MAAM,UAAU,uBAAuB;IACrC,mBAAmB,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare const RD_ACCORDION_TAG = "rd-accordion";
2
+ /** Public props contract for layout/accordion (all runtimes share this shape). */
3
+ export interface AccordionProps {
4
+ title: string;
5
+ defaultOpen?: boolean;
6
+ className?: string;
7
+ }
8
+ export declare class RdAccordionElement extends HTMLElement {
9
+ static readonly tagName = "rd-accordion";
10
+ private resourcesReady;
11
+ private headerListener;
12
+ static get observedAttributes(): string[];
13
+ connectedCallback(): void;
14
+ disconnectedCallback(): void;
15
+ attributeChangedCallback(): void;
16
+ /** Await shadow template + first paint (tests and Storybook helpers). */
17
+ whenReady(): Promise<void>;
18
+ get heading(): string;
19
+ get defaultOpen(): boolean;
20
+ get open(): boolean;
21
+ set open(value: boolean);
22
+ private mountShadow;
23
+ private toggle;
24
+ private paint;
25
+ }
26
+ export declare function registerRdAccordion(): void;
@@ -0,0 +1,94 @@
1
+ import { defineRosettaElement, readString } from '../../lib/element-utils.js';
2
+ import { applyShadowMount, ensureShadowBase, loadShadowPairForTag } from '../../lib/shadow-base.js';
3
+ export const RD_ACCORDION_TAG = 'rd-accordion';
4
+ export class RdAccordionElement extends HTMLElement {
5
+ static tagName = RD_ACCORDION_TAG;
6
+ resourcesReady = null;
7
+ headerListener = null;
8
+ static get observedAttributes() {
9
+ return ['heading', 'title', 'default-open', 'open'];
10
+ }
11
+ connectedCallback() {
12
+ if (!this.shadowRoot) {
13
+ this.attachShadow({ mode: 'open' });
14
+ }
15
+ if (!this.hasAttribute('open') && this.defaultOpen) {
16
+ this.setAttribute('open', '');
17
+ }
18
+ this.resourcesReady = this.mountShadow();
19
+ void this.resourcesReady.then(() => this.paint());
20
+ }
21
+ disconnectedCallback() {
22
+ const root = this.shadowRoot;
23
+ const header = root?.querySelector('[data-ref="header"]');
24
+ if (header && this.headerListener) {
25
+ header.removeEventListener('click', this.headerListener);
26
+ }
27
+ this.headerListener = null;
28
+ }
29
+ attributeChangedCallback() {
30
+ if (this.shadowRoot && this.resourcesReady) {
31
+ void this.resourcesReady.then(() => this.paint());
32
+ }
33
+ }
34
+ /** Await shadow template + first paint (tests and Storybook helpers). */
35
+ whenReady() {
36
+ return this.resourcesReady ?? Promise.resolve();
37
+ }
38
+ get heading() {
39
+ return readString(this.getAttribute('heading') ?? this.getAttribute('title'), 'Section');
40
+ }
41
+ get defaultOpen() {
42
+ return this.hasAttribute('default-open');
43
+ }
44
+ get open() {
45
+ return this.hasAttribute('open');
46
+ }
47
+ set open(value) {
48
+ if (value) {
49
+ this.setAttribute('open', '');
50
+ }
51
+ else {
52
+ this.removeAttribute('open');
53
+ }
54
+ }
55
+ async mountShadow() {
56
+ const root = this.shadowRoot;
57
+ if (!root || root.querySelector('[data-ref="root"]')) {
58
+ return;
59
+ }
60
+ const pair = await loadShadowPairForTag(RD_ACCORDION_TAG, './rd-accordion.html', './rd-accordion.css');
61
+ applyShadowMount(root, pair);
62
+ const header = root.querySelector('[data-ref="header"]');
63
+ this.headerListener = () => this.toggle();
64
+ header?.addEventListener('click', this.headerListener);
65
+ }
66
+ toggle() {
67
+ this.open = !this.open;
68
+ this.dispatchEvent(new CustomEvent('rd-accordion-toggle', {
69
+ detail: { open: this.open },
70
+ bubbles: true,
71
+ composed: true,
72
+ }));
73
+ }
74
+ paint() {
75
+ const root = this.shadowRoot;
76
+ if (!root) {
77
+ return;
78
+ }
79
+ const open = this.open;
80
+ const section = root.querySelector('[data-ref="root"]');
81
+ const header = root.querySelector('[data-ref="header"]');
82
+ const title = root.querySelector('[data-ref="title"]');
83
+ section?.classList.toggle('rd-accordion--open', open);
84
+ header?.setAttribute('aria-expanded', open ? 'true' : 'false');
85
+ if (title) {
86
+ title.textContent = this.heading;
87
+ }
88
+ }
89
+ }
90
+ export function registerRdAccordion() {
91
+ ensureShadowBase(RD_ACCORDION_TAG);
92
+ defineRosettaElement(RD_ACCORDION_TAG, RdAccordionElement);
93
+ }
94
+ //# sourceMappingURL=rd-accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rd-accordion.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/layout/accordion/rd-accordion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type { AccordionLinkListProps } from './rd-accordion-link-list.js';
2
+ export { AccordionLinkList, RD_ACCORDION_LINK_LIST_TAG, RdAccordionLinkListElement, registerRdAccordionLinkList, } from './rd-accordion-link-list.js';
3
+ /** Convenience: register layout/accordion-link-list recipe element. */
4
+ export declare function registerLayoutAccordionLinkList(): void;
@@ -0,0 +1,7 @@
1
+ export { AccordionLinkList, RD_ACCORDION_LINK_LIST_TAG, RdAccordionLinkListElement, registerRdAccordionLinkList, } from './rd-accordion-link-list.js';
2
+ import { registerRdAccordionLinkList } from './rd-accordion-link-list.js';
3
+ /** Convenience: register layout/accordion-link-list recipe element. */
4
+ export function registerLayoutAccordionLinkList() {
5
+ registerRdAccordionLinkList();
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/web-components/src/layout/accordion-link-list/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,uEAAuE;AACvE,MAAM,UAAU,+BAA+B;IAC7C,2BAA2B,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { type LinkListItem } from '../../lib/parse-link-items.js';
2
+ import { type AccordionProps } from '../accordion/rd-accordion.js';
3
+ import { type LinkListProps } from '../../visual/link-list/rd-link-list.js';
4
+ export declare const RD_ACCORDION_LINK_LIST_TAG = "rd-accordion-link-list";
5
+ /** Public props for the accordion + link-list recipe (all runtimes). */
6
+ export interface AccordionLinkListProps extends AccordionProps, Pick<LinkListProps, 'items' | 'dense'> {
7
+ }
8
+ /**
9
+ * Recipe custom element: collapsible nav / TOC over accordion + link-list atoms.
10
+ * Prefer composing atoms; use this when a single helper is clearer.
11
+ */
12
+ export declare class RdAccordionLinkListElement extends HTMLElement {
13
+ static readonly tagName = "rd-accordion-link-list";
14
+ private itemsValue;
15
+ private resourcesReady;
16
+ private headerListener;
17
+ static get observedAttributes(): string[];
18
+ connectedCallback(): void;
19
+ disconnectedCallback(): void;
20
+ attributeChangedCallback(name: string): void;
21
+ whenReady(): Promise<void>;
22
+ get heading(): string;
23
+ get defaultOpen(): boolean;
24
+ get open(): boolean;
25
+ set open(value: boolean);
26
+ get items(): LinkListItem[];
27
+ set items(value: LinkListItem[]);
28
+ get dense(): boolean;
29
+ private syncItemsFromAttribute;
30
+ private mountShadow;
31
+ private toggle;
32
+ private paint;
33
+ }
34
+ /** Typed recipe helper — same props as the custom element. */
35
+ export declare function AccordionLinkList(props: AccordionLinkListProps): AccordionLinkListProps;
36
+ export declare function registerRdAccordionLinkList(): void;