@dxos/lit-theme-editor 0.8.2-main.10c050d

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 (87) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +3 -0
  3. package/dist/src/dx-theme-editor/dx-range-spinbutton.d.ts +16 -0
  4. package/dist/src/dx-theme-editor/dx-range-spinbutton.d.ts.map +1 -0
  5. package/dist/src/dx-theme-editor/dx-range-spinbutton.js +127 -0
  6. package/dist/src/dx-theme-editor/dx-range-spinbutton.js.map +1 -0
  7. package/dist/src/dx-theme-editor/dx-theme-editor-alias-colors.d.ts +21 -0
  8. package/dist/src/dx-theme-editor/dx-theme-editor-alias-colors.d.ts.map +1 -0
  9. package/dist/src/dx-theme-editor/dx-theme-editor-alias-colors.js +267 -0
  10. package/dist/src/dx-theme-editor/dx-theme-editor-alias-colors.js.map +1 -0
  11. package/dist/src/dx-theme-editor/dx-theme-editor-physical-colors.d.ts +19 -0
  12. package/dist/src/dx-theme-editor/dx-theme-editor-physical-colors.d.ts.map +1 -0
  13. package/dist/src/dx-theme-editor/dx-theme-editor-physical-colors.js +163 -0
  14. package/dist/src/dx-theme-editor/dx-theme-editor-physical-colors.js.map +1 -0
  15. package/dist/src/dx-theme-editor/dx-theme-editor-semantic-colors.d.ts +32 -0
  16. package/dist/src/dx-theme-editor/dx-theme-editor-semantic-colors.d.ts.map +1 -0
  17. package/dist/src/dx-theme-editor/dx-theme-editor-semantic-colors.js +474 -0
  18. package/dist/src/dx-theme-editor/dx-theme-editor-semantic-colors.js.map +1 -0
  19. package/dist/src/dx-theme-editor/dx-theme-editor.d.ts +16 -0
  20. package/dist/src/dx-theme-editor/dx-theme-editor.d.ts.map +1 -0
  21. package/dist/src/dx-theme-editor/dx-theme-editor.js +160 -0
  22. package/dist/src/dx-theme-editor/dx-theme-editor.js.map +1 -0
  23. package/dist/src/dx-theme-editor/dx-theme-editor.lit-stories.d.ts +22 -0
  24. package/dist/src/dx-theme-editor/dx-theme-editor.lit-stories.d.ts.map +1 -0
  25. package/dist/src/dx-theme-editor/dx-theme-editor.lit-stories.js +27 -0
  26. package/dist/src/dx-theme-editor/dx-theme-editor.lit-stories.js.map +1 -0
  27. package/dist/src/dx-theme-editor/index.d.ts +5 -0
  28. package/dist/src/dx-theme-editor/index.d.ts.map +1 -0
  29. package/dist/src/dx-theme-editor/index.js +8 -0
  30. package/dist/src/dx-theme-editor/index.js.map +1 -0
  31. package/dist/src/dx-theme-editor/util.d.ts +8 -0
  32. package/dist/src/dx-theme-editor/util.d.ts.map +1 -0
  33. package/dist/src/dx-theme-editor/util.js +61 -0
  34. package/dist/src/dx-theme-editor/util.js.map +1 -0
  35. package/dist/src/index.d.ts +2 -0
  36. package/dist/src/index.d.ts.map +1 -0
  37. package/dist/src/index.js +5 -0
  38. package/dist/src/index.js.map +1 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -0
  40. package/dist/types/src/dx-theme-editor/dx-range-spinbutton.d.ts +16 -0
  41. package/dist/types/src/dx-theme-editor/dx-range-spinbutton.d.ts.map +1 -0
  42. package/dist/types/src/dx-theme-editor/dx-range-spinbutton.js +127 -0
  43. package/dist/types/src/dx-theme-editor/dx-range-spinbutton.js.map +1 -0
  44. package/dist/types/src/dx-theme-editor/dx-theme-editor-alias-colors.d.ts +21 -0
  45. package/dist/types/src/dx-theme-editor/dx-theme-editor-alias-colors.d.ts.map +1 -0
  46. package/dist/types/src/dx-theme-editor/dx-theme-editor-alias-colors.js +267 -0
  47. package/dist/types/src/dx-theme-editor/dx-theme-editor-alias-colors.js.map +1 -0
  48. package/dist/types/src/dx-theme-editor/dx-theme-editor-physical-colors.d.ts +19 -0
  49. package/dist/types/src/dx-theme-editor/dx-theme-editor-physical-colors.d.ts.map +1 -0
  50. package/dist/types/src/dx-theme-editor/dx-theme-editor-physical-colors.js +163 -0
  51. package/dist/types/src/dx-theme-editor/dx-theme-editor-physical-colors.js.map +1 -0
  52. package/dist/types/src/dx-theme-editor/dx-theme-editor-semantic-colors.d.ts +32 -0
  53. package/dist/types/src/dx-theme-editor/dx-theme-editor-semantic-colors.d.ts.map +1 -0
  54. package/dist/types/src/dx-theme-editor/dx-theme-editor-semantic-colors.js +474 -0
  55. package/dist/types/src/dx-theme-editor/dx-theme-editor-semantic-colors.js.map +1 -0
  56. package/dist/types/src/dx-theme-editor/dx-theme-editor.d.ts +16 -0
  57. package/dist/types/src/dx-theme-editor/dx-theme-editor.d.ts.map +1 -0
  58. package/dist/types/src/dx-theme-editor/dx-theme-editor.js +160 -0
  59. package/dist/types/src/dx-theme-editor/dx-theme-editor.js.map +1 -0
  60. package/dist/types/src/dx-theme-editor/dx-theme-editor.lit-stories.d.ts +22 -0
  61. package/dist/types/src/dx-theme-editor/dx-theme-editor.lit-stories.d.ts.map +1 -0
  62. package/dist/types/src/dx-theme-editor/dx-theme-editor.lit-stories.js +27 -0
  63. package/dist/types/src/dx-theme-editor/dx-theme-editor.lit-stories.js.map +1 -0
  64. package/dist/types/src/dx-theme-editor/index.d.ts +5 -0
  65. package/dist/types/src/dx-theme-editor/index.d.ts.map +1 -0
  66. package/dist/types/src/dx-theme-editor/index.js +8 -0
  67. package/dist/types/src/dx-theme-editor/index.js.map +1 -0
  68. package/dist/types/src/dx-theme-editor/util.d.ts +8 -0
  69. package/dist/types/src/dx-theme-editor/util.d.ts.map +1 -0
  70. package/dist/types/src/dx-theme-editor/util.js +61 -0
  71. package/dist/types/src/dx-theme-editor/util.js.map +1 -0
  72. package/dist/types/src/index.d.ts +2 -0
  73. package/dist/types/src/index.d.ts.map +1 -0
  74. package/dist/types/src/index.js +5 -0
  75. package/dist/types/src/index.js.map +1 -0
  76. package/dist/types/tsconfig.tsbuildinfo +1 -0
  77. package/package.json +40 -0
  78. package/src/dx-theme-editor/dx-range-spinbutton.ts +124 -0
  79. package/src/dx-theme-editor/dx-theme-editor-alias-colors.ts +305 -0
  80. package/src/dx-theme-editor/dx-theme-editor-physical-colors.ts +179 -0
  81. package/src/dx-theme-editor/dx-theme-editor-semantic-colors.ts +558 -0
  82. package/src/dx-theme-editor/dx-theme-editor.lit-stories.ts +37 -0
  83. package/src/dx-theme-editor/dx-theme-editor.pcss +299 -0
  84. package/src/dx-theme-editor/dx-theme-editor.ts +158 -0
  85. package/src/dx-theme-editor/index.ts +8 -0
  86. package/src/dx-theme-editor/util.ts +66 -0
  87. package/src/index.ts +5 -0
@@ -0,0 +1,267 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ };
10
+ import { LitElement, html } from 'lit';
11
+ import { customElement, state } from 'lit/decorators.js';
12
+ import { repeat } from 'lit/directives/repeat.js';
13
+ import { debounce } from '@dxos/async';
14
+ import { makeId } from '@dxos/react-hooks';
15
+ import { restore, saveAndRender, tokenSetUpdateEvent } from './util';
16
+ let DxThemeEditorAliasColors = class DxThemeEditorAliasColors extends LitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.tokenSet = restore();
20
+ this.searchTerm = '';
21
+ this.debouncedSaveAndRender = debounce(() => {
22
+ saveAndRender(this.tokenSet);
23
+ }, 200);
24
+ this.handleTokenSetUpdate = () => {
25
+ this.tokenSet = restore();
26
+ };
27
+ }
28
+ getSemanticTokenNames() {
29
+ var _a, _b;
30
+ if (!((_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.semantic) === null || _b === void 0 ? void 0 : _b.sememes)) {
31
+ return [];
32
+ }
33
+ return Object.keys(this.tokenSet.colors.semantic.sememes);
34
+ }
35
+ getUniqueAliasTokens() {
36
+ var _a, _b;
37
+ if (!((_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.alias) === null || _b === void 0 ? void 0 : _b.aliases)) {
38
+ return [];
39
+ }
40
+ const aliasMap = new Map();
41
+ // Process all semantic tokens
42
+ Object.entries(this.tokenSet.colors.alias.aliases).forEach(([semanticToken, conditions]) => {
43
+ // Process each condition (root, attention)
44
+ Object.entries(conditions).forEach(([condition, aliasNames]) => {
45
+ // Process each alias name
46
+ aliasNames.forEach((aliasName) => {
47
+ // If the alias is not in the map yet, add it
48
+ if (!aliasMap.has(aliasName)) {
49
+ aliasMap.set(aliasName, { name: aliasName });
50
+ }
51
+ // Update the condition mapping
52
+ const aliasInfo = aliasMap.get(aliasName);
53
+ if (condition === 'root') {
54
+ aliasInfo.root = semanticToken;
55
+ }
56
+ else if (condition === 'attention') {
57
+ aliasInfo.attention = semanticToken;
58
+ }
59
+ });
60
+ });
61
+ });
62
+ return Array.from(aliasMap.values()).sort((a, b) => a.name.localeCompare(b.name));
63
+ }
64
+ updateAliasToken(oldName, newName, rootToken, attentionToken) {
65
+ var _a, _b;
66
+ if (!((_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.alias) === null || _b === void 0 ? void 0 : _b.aliases)) {
67
+ return;
68
+ }
69
+ // Create a deep copy of the tokenSet to avoid direct mutation
70
+ const updatedTokenSet = JSON.parse(JSON.stringify(this.tokenSet));
71
+ const aliases = updatedTokenSet.colors.alias.aliases;
72
+ // Remove the old alias from all semantic tokens
73
+ Object.entries(aliases).forEach(([semanticToken, conditions]) => {
74
+ Object.entries(conditions).forEach(([condition, aliasNames]) => {
75
+ const index = aliasNames.indexOf(oldName);
76
+ if (index !== -1) {
77
+ aliasNames.splice(index, 1);
78
+ if (aliasNames.length === 0) {
79
+ delete conditions[condition];
80
+ }
81
+ if (Object.keys(conditions).length === 0) {
82
+ delete aliases[semanticToken];
83
+ }
84
+ }
85
+ });
86
+ });
87
+ // Add the new alias to the specified semantic tokens
88
+ if (rootToken) {
89
+ if (!aliases[rootToken]) {
90
+ aliases[rootToken] = {};
91
+ }
92
+ if (!aliases[rootToken].root) {
93
+ aliases[rootToken].root = [];
94
+ }
95
+ aliases[rootToken].root.push(newName);
96
+ }
97
+ if (attentionToken) {
98
+ if (!aliases[attentionToken]) {
99
+ aliases[attentionToken] = {};
100
+ }
101
+ if (!aliases[attentionToken].attention) {
102
+ aliases[attentionToken].attention = [];
103
+ }
104
+ aliases[attentionToken].attention.push(newName);
105
+ }
106
+ // Update the state
107
+ this.tokenSet = updatedTokenSet;
108
+ // Save and render changes
109
+ this.debouncedSaveAndRender();
110
+ }
111
+ removeAliasToken(aliasName) {
112
+ var _a, _b;
113
+ if (!((_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.alias) === null || _b === void 0 ? void 0 : _b.aliases)) {
114
+ return;
115
+ }
116
+ // Create a deep copy of the tokenSet to avoid direct mutation
117
+ const updatedTokenSet = JSON.parse(JSON.stringify(this.tokenSet));
118
+ const aliases = updatedTokenSet.colors.alias.aliases;
119
+ // Remove the alias from all semantic tokens
120
+ Object.entries(aliases).forEach(([semanticToken, conditions]) => {
121
+ Object.entries(conditions).forEach(([condition, aliasNames]) => {
122
+ const index = aliasNames.indexOf(aliasName);
123
+ if (index !== -1) {
124
+ aliasNames.splice(index, 1);
125
+ if (aliasNames.length === 0) {
126
+ delete conditions[condition];
127
+ }
128
+ if (Object.keys(conditions).length === 0) {
129
+ delete aliases[semanticToken];
130
+ }
131
+ }
132
+ });
133
+ });
134
+ // Update the state
135
+ this.tokenSet = updatedTokenSet;
136
+ // Save and render changes
137
+ this.debouncedSaveAndRender();
138
+ }
139
+ addAliasToken() {
140
+ var _a, _b, _c, _d;
141
+ if (!((_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.semantic) === null || _b === void 0 ? void 0 : _b.sememes) || !((_d = (_c = this.tokenSet.colors) === null || _c === void 0 ? void 0 : _c.alias) === null || _d === void 0 ? void 0 : _d.aliases)) {
142
+ return;
143
+ }
144
+ // Get the first semantic token
145
+ const semanticTokens = Object.keys(this.tokenSet.colors.semantic.sememes);
146
+ if (semanticTokens.length === 0) {
147
+ return;
148
+ }
149
+ const firstSemanticToken = semanticTokens[0];
150
+ // Generate a random ID for the alias name
151
+ const aliasName = makeId('alias--');
152
+ // Create a deep copy of the tokenSet to avoid direct mutation
153
+ const updatedTokenSet = JSON.parse(JSON.stringify(this.tokenSet));
154
+ const aliases = updatedTokenSet.colors.alias.aliases;
155
+ // Ensure the semantic token exists in the aliases structure
156
+ if (!aliases[firstSemanticToken]) {
157
+ aliases[firstSemanticToken] = {};
158
+ }
159
+ // Ensure the 'root' condition exists
160
+ if (!aliases[firstSemanticToken].root) {
161
+ aliases[firstSemanticToken].root = [];
162
+ }
163
+ // Add the new alias to the 'root' condition
164
+ aliases[firstSemanticToken].root.push(aliasName);
165
+ // Update the state
166
+ this.tokenSet = updatedTokenSet;
167
+ // Save and render changes
168
+ this.debouncedSaveAndRender();
169
+ }
170
+ handleSearchChange(e) {
171
+ this.searchTerm = e.target.value;
172
+ }
173
+ renderSemanticTokenSelect(condition, currentValue, onChange) {
174
+ const semanticTokenNames = this.getSemanticTokenNames();
175
+ return html `
176
+ <label class="sr-only">${condition === 'root' ? 'Root' : 'Attention'}:</label>
177
+ <select
178
+ class="semantic-token-select dx-focus-ring"
179
+ .value=${currentValue || ''}
180
+ @change=${(e) => {
181
+ const newValue = e.target.value;
182
+ onChange(newValue);
183
+ }}
184
+ >
185
+ <option value="">&mdash;</option>
186
+ ${repeat(semanticTokenNames, (name) => name, (name) => html `<option value="${name}" ?selected=${name === currentValue}>${name}</option>`)}
187
+ </select>
188
+ `;
189
+ }
190
+ connectedCallback() {
191
+ super.connectedCallback();
192
+ saveAndRender(this.tokenSet);
193
+ window.addEventListener(tokenSetUpdateEvent, this.handleTokenSetUpdate);
194
+ }
195
+ disconnectedCallback() {
196
+ super.disconnectedCallback();
197
+ window.removeEventListener(tokenSetUpdateEvent, this.handleTokenSetUpdate);
198
+ }
199
+ render() {
200
+ const aliasTokens = this.getUniqueAliasTokens();
201
+ const filteredTokens = aliasTokens.filter((token) => token.name.toLowerCase().includes(this.searchTerm.toLowerCase()));
202
+ return html `
203
+ <input
204
+ type="search"
205
+ class="token-search dx-focus-ring"
206
+ placeholder="Search alias tokens…"
207
+ .value=${this.searchTerm}
208
+ @input=${this.handleSearchChange}
209
+ aria-label="Search tokens"
210
+ />
211
+ <div class="alias-token-list">
212
+ <div class="alias-token-labels">
213
+ <span>Name</span>
214
+ <span>Root</span>
215
+ <span>Attention</span>
216
+ </div>
217
+ ${repeat(filteredTokens, (token) => token.name, (token) => html `
218
+ <div class="alias-token-item">
219
+ <input
220
+ type="text"
221
+ class="alias-name-input dx-focus-ring"
222
+ .value=${token.name}
223
+ @change=${(e) => {
224
+ const newName = e.target.value;
225
+ this.updateAliasToken(token.name, newName, token.root, token.attention);
226
+ }}
227
+ aria-label="Alias token name"
228
+ />
229
+ <div class="condition-selector">
230
+ ${this.renderSemanticTokenSelect('root', token.root, (newValue) => {
231
+ this.updateAliasToken(token.name, token.name, newValue, token.attention);
232
+ })}
233
+ </div>
234
+ <div class="condition-selector">
235
+ ${this.renderSemanticTokenSelect('attention', token.attention, (newValue) => {
236
+ this.updateAliasToken(token.name, token.name, token.root, newValue);
237
+ })}
238
+ </div>
239
+ <button
240
+ class="remove-alias-button dx-focus-ring dx-button"
241
+ @click=${() => this.removeAliasToken(token.name)}
242
+ aria-label="Remove alias token"
243
+ >
244
+ <span class="sr-only">Remove alias token</span>
245
+ <dx-icon icon="ph--minus--regular" />
246
+ </button>
247
+ </div>
248
+ `)}
249
+ </div>
250
+ <button class="add-alias-button dx-focus-ring dx-button" @click=${this.addAliasToken}>Add alias</button>
251
+ `;
252
+ }
253
+ createRenderRoot() {
254
+ return this;
255
+ }
256
+ };
257
+ __decorate([
258
+ state()
259
+ ], DxThemeEditorAliasColors.prototype, "tokenSet", void 0);
260
+ __decorate([
261
+ state()
262
+ ], DxThemeEditorAliasColors.prototype, "searchTerm", void 0);
263
+ DxThemeEditorAliasColors = __decorate([
264
+ customElement('dx-theme-editor-alias-colors')
265
+ ], DxThemeEditorAliasColors);
266
+ export { DxThemeEditorAliasColors };
267
+ //# sourceMappingURL=dx-theme-editor-alias-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-theme-editor-alias-colors.js","sourceRoot":"","sources":["../../../../src/dx-theme-editor/dx-theme-editor-alias-colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type TokenSet } from '@ch-ui/tokens';
2
+ import { LitElement } from 'lit';
3
+ import './dx-range-spinbutton';
4
+ export type DxThemeEditorPhysicalColorsProps = {};
5
+ export declare class DxThemeEditorPhysicalColors extends LitElement {
6
+ tokenSet: TokenSet;
7
+ private debouncedSaveAndRender;
8
+ private handleTokenSetUpdate;
9
+ private updateSeriesProperty;
10
+ private handleKeyPointChange;
11
+ private handleControlPointChange;
12
+ private handleTorsionChange;
13
+ private renderSeriesControls;
14
+ connectedCallback(): void;
15
+ disconnectedCallback(): void;
16
+ render(): unknown;
17
+ createRenderRoot(): this;
18
+ }
19
+ //# sourceMappingURL=dx-theme-editor-physical-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-theme-editor-physical-colors.d.ts","sourceRoot":"","sources":["../../../../src/dx-theme-editor/dx-theme-editor-physical-colors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AASvC,OAAO,uBAAuB,CAAC;AAE/B,MAAM,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAQlD,qBACa,2BAA4B,SAAQ,UAAU;IAEzD,QAAQ,EAAE,QAAQ,CAAa;IAE/B,OAAO,CAAC,sBAAsB,CAEtB;IAER,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,oBAAoB;IAiFnB,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAK5B,MAAM;IAQN,gBAAgB,IAAI,IAAI;CAGlC"}
@@ -0,0 +1,163 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ };
10
+ import { cssGradientFromCurve, helicalArcFromConfig } from '@ch-ui/colors';
11
+ import { LitElement, html } from 'lit';
12
+ import { customElement, state } from 'lit/decorators.js';
13
+ import { repeat } from 'lit/directives/repeat.js';
14
+ import { styleMap } from 'lit/directives/style-map.js';
15
+ import { debounce } from '@dxos/async';
16
+ import { restore, saveAndRender, tokenSetUpdateEvent } from './util';
17
+ import './dx-range-spinbutton';
18
+ const bindSeriesDefinitions = ['neutral', 'primary'];
19
+ const isHelicalArcSeries = (o) => {
20
+ return 'keyPoint' in (o !== null && o !== void 0 ? o : {});
21
+ };
22
+ let DxThemeEditorPhysicalColors = class DxThemeEditorPhysicalColors extends LitElement {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.tokenSet = restore();
26
+ this.debouncedSaveAndRender = debounce(() => {
27
+ saveAndRender(this.tokenSet);
28
+ }, 200);
29
+ this.handleTokenSetUpdate = () => {
30
+ this.tokenSet = restore();
31
+ };
32
+ }
33
+ updateSeriesProperty(series, property, value) {
34
+ var _a, _b, _c, _d;
35
+ if (!((_d = (_c = (_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.physical) === null || _b === void 0 ? void 0 : _b.definitions) === null || _c === void 0 ? void 0 : _c.series) === null || _d === void 0 ? void 0 : _d[series])) {
36
+ return;
37
+ }
38
+ // Create a deep copy of the tokenSet to avoid direct mutation
39
+ const updatedTokenSet = JSON.parse(JSON.stringify(this.tokenSet));
40
+ // Update the specific property
41
+ updatedTokenSet.colors.physical.definitions.series[series][property] = value;
42
+ // Update the state
43
+ this.tokenSet = updatedTokenSet;
44
+ // Save and render changes
45
+ this.debouncedSaveAndRender();
46
+ }
47
+ handleKeyPointChange(series, index, value) {
48
+ var _a, _b, _c, _d;
49
+ if (!isHelicalArcSeries((_d = (_c = (_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.physical) === null || _b === void 0 ? void 0 : _b.definitions) === null || _c === void 0 ? void 0 : _c.series) === null || _d === void 0 ? void 0 : _d[series])) {
50
+ return;
51
+ }
52
+ const keyPoint = [...this.tokenSet.colors.physical.definitions.series[series].keyPoint];
53
+ keyPoint[index] = value;
54
+ this.updateSeriesProperty(series, 'keyPoint', keyPoint);
55
+ }
56
+ handleControlPointChange(series, property, value) {
57
+ this.updateSeriesProperty(series, property, value);
58
+ }
59
+ handleTorsionChange(series, value) {
60
+ this.updateSeriesProperty(series, 'torsion', value);
61
+ }
62
+ renderSeriesControls(series) {
63
+ var _a, _b, _c, _d;
64
+ const seriesData = (_d = (_c = (_b = (_a = this.tokenSet.colors) === null || _a === void 0 ? void 0 : _a.physical) === null || _b === void 0 ? void 0 : _b.definitions) === null || _c === void 0 ? void 0 : _c.series) === null || _d === void 0 ? void 0 : _d[series];
65
+ if (!isHelicalArcSeries(seriesData)) {
66
+ return html `<div>Series ${series} not found</div>`;
67
+ }
68
+ const keyPoint = seriesData.keyPoint || [0, 0, 0];
69
+ const lowerCp = seriesData.lowerCp || 0;
70
+ const upperCp = seriesData.upperCp || 0;
71
+ const torsion = seriesData.torsion || 0;
72
+ // Create unique IDs for headings to reference in aria-labelledby
73
+ const keyColorHeadingId = `${series}-key-color-heading`;
74
+ const controlPointsHeadingId = `${series}-control-points-heading`;
75
+ const torsionHeadingId = `${series}-torsion-heading`;
76
+ return html `
77
+ <div class="series-controls">
78
+ <div
79
+ class="series-preview"
80
+ style=${styleMap({
81
+ backgroundImage: cssGradientFromCurve(helicalArcFromConfig(seriesData), 21, [0, 1], 'p3'),
82
+ })}
83
+ ></div>
84
+ <h3 class="series-title">${series} Series</h3>
85
+
86
+ <dx-range-spinbutton
87
+ label="Hue (0-360)"
88
+ min="0"
89
+ max="360"
90
+ step="0.5"
91
+ .value=${keyPoint[2]}
92
+ headingId=${keyColorHeadingId}
93
+ @value-changed=${(e) => this.handleKeyPointChange(series, 2, e.detail.value)}
94
+ ></dx-range-spinbutton>
95
+ <dx-range-spinbutton
96
+ label="Torsion (-180 to 180)"
97
+ min="-180"
98
+ max="180"
99
+ step="0.5"
100
+ .value=${torsion}
101
+ headingId=${torsionHeadingId}
102
+ variant="torsion"
103
+ @value-changed=${(e) => this.handleTorsionChange(series, e.detail.value)}
104
+ ></dx-range-spinbutton>
105
+ <dx-range-spinbutton
106
+ label="Chroma (0-0.4)"
107
+ min="0"
108
+ max="0.4"
109
+ step="0.001"
110
+ .value=${keyPoint[1]}
111
+ headingId=${keyColorHeadingId}
112
+ @value-changed=${(e) => this.handleKeyPointChange(series, 1, e.detail.value)}
113
+ ></dx-range-spinbutton>
114
+
115
+ <div class="control-group">
116
+ <dx-range-spinbutton
117
+ label="Dark Control Point (0-1)"
118
+ min="0"
119
+ max="1"
120
+ step="0.01"
121
+ .value=${upperCp}
122
+ headingId=${controlPointsHeadingId}
123
+ variant="reverse-range"
124
+ @value-changed=${(e) => this.handleControlPointChange(series, 'upperCp', e.detail.value)}
125
+ ></dx-range-spinbutton>
126
+ <dx-range-spinbutton
127
+ label="Light Control Point (0-1)"
128
+ min="0"
129
+ max="1"
130
+ step="0.01"
131
+ .value=${lowerCp}
132
+ headingId=${controlPointsHeadingId}
133
+ variant="reverse-order"
134
+ @value-changed=${(e) => this.handleControlPointChange(series, 'lowerCp', e.detail.value)}
135
+ ></dx-range-spinbutton>
136
+ </div>
137
+ </div>
138
+ `;
139
+ }
140
+ connectedCallback() {
141
+ super.connectedCallback();
142
+ saveAndRender(this.tokenSet);
143
+ window.addEventListener(tokenSetUpdateEvent, this.handleTokenSetUpdate);
144
+ }
145
+ disconnectedCallback() {
146
+ super.disconnectedCallback();
147
+ window.removeEventListener(tokenSetUpdateEvent, this.handleTokenSetUpdate);
148
+ }
149
+ render() {
150
+ return repeat(bindSeriesDefinitions, (series) => series, (series) => this.renderSeriesControls(series));
151
+ }
152
+ createRenderRoot() {
153
+ return this;
154
+ }
155
+ };
156
+ __decorate([
157
+ state()
158
+ ], DxThemeEditorPhysicalColors.prototype, "tokenSet", void 0);
159
+ DxThemeEditorPhysicalColors = __decorate([
160
+ customElement('dx-theme-editor-physical-colors')
161
+ ], DxThemeEditorPhysicalColors);
162
+ export { DxThemeEditorPhysicalColors };
163
+ //# sourceMappingURL=dx-theme-editor-physical-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-theme-editor-physical-colors.js","sourceRoot":"","sources":["../../../../src/dx-theme-editor/dx-theme-editor-physical-colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type TokenSet } from '@ch-ui/tokens';
2
+ import { LitElement } from 'lit';
3
+ import './dx-range-spinbutton';
4
+ export type DxThemeEditorSemanticColorsProps = {};
5
+ export declare class DxThemeEditorSemanticColors extends LitElement {
6
+ tokenSet: TokenSet;
7
+ searchTerm: string;
8
+ private debouncedSaveAndRender;
9
+ private handleTokenSetUpdate;
10
+ private getPhysicalColorSeries;
11
+ private getSemanticTokens;
12
+ private updateSemanticToken;
13
+ private handleTokenNameChange;
14
+ private handleSeriesChange;
15
+ private handleBothSeriesChange;
16
+ private handleLuminosityChange;
17
+ private handleAlphaChange;
18
+ private addSemanticToken;
19
+ private removeSemanticToken;
20
+ private getAliasTokensForSemantic;
21
+ private addAliasToken;
22
+ private removeAliasToken;
23
+ private updateAliasToken;
24
+ private checkDuplicateAlias;
25
+ private renderTokenControls;
26
+ connectedCallback(): void;
27
+ disconnectedCallback(): void;
28
+ private handleSearchChange;
29
+ render(): import("lit").TemplateResult<1>;
30
+ createRenderRoot(): this;
31
+ }
32
+ //# sourceMappingURL=dx-theme-editor-semantic-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-theme-editor-semantic-colors.d.ts","sourceRoot":"","sources":["../../../../src/dx-theme-editor/dx-theme-editor-semantic-colors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,QAAQ,EAAwB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAUvC,OAAO,uBAAuB,CAAC;AAE/B,MAAM,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAMlD,qBACa,2BAA4B,SAAQ,UAAU;IAEzD,QAAQ,EAAE,QAAQ,CAAa;IAG/B,UAAU,EAAE,MAAM,CAAM;IAExB,OAAO,CAAC,sBAAsB,CAEtB;IAER,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,mBAAmB;IAsLlB,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAKrC,OAAO,CAAC,kBAAkB;IAIjB,MAAM;IAwBN,gBAAgB,IAAI,IAAI;CAGlC"}