@oddsquad/vite-plugin-lit 0.2.3 → 0.4.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 (240) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/LICENSE +28 -0
  3. package/README.md +157 -0
  4. package/bin.mjs +154 -0
  5. package/client.d.ts +61 -0
  6. package/dist/client/assets/browser-agent-rpc-BXhoSh1z-CdtPhBL-.js +69 -0
  7. package/dist/client/assets/browser-agent-rpc-BXhoSh1z-CdtPhBL-.js.map +1 -0
  8. package/dist/client/assets/flow-DK8vmxvN.js +745 -0
  9. package/dist/client/assets/flow-DK8vmxvN.js.map +1 -0
  10. package/dist/client/assets/index-DVe6M4HV.js +10614 -0
  11. package/dist/client/assets/index-DVe6M4HV.js.map +1 -0
  12. package/{panel → dist/client}/index.html +1 -0
  13. package/index.d.ts.map +1 -1
  14. package/index.js +2 -2
  15. package/index.js.map +1 -1
  16. package/lib/color-scheme.d.ts.map +1 -1
  17. package/lib/color-scheme.js +17 -21
  18. package/lib/color-scheme.js.map +1 -1
  19. package/lib/devframe/definition.d.ts +45 -0
  20. package/lib/devframe/definition.d.ts.map +1 -0
  21. package/lib/devframe/definition.js +547 -0
  22. package/lib/devframe/definition.js.map +1 -0
  23. package/lib/devframe/icon.d.ts +8 -0
  24. package/lib/devframe/icon.d.ts.map +1 -0
  25. package/lib/devframe/icon.js +21 -0
  26. package/lib/devframe/icon.js.map +1 -0
  27. package/lib/devframe/paths.d.ts +12 -0
  28. package/lib/devframe/paths.d.ts.map +1 -0
  29. package/lib/devframe/paths.js +38 -0
  30. package/lib/devframe/paths.js.map +1 -0
  31. package/lib/devframe/protocol.d.ts +218 -0
  32. package/lib/devframe/protocol.d.ts.map +1 -0
  33. package/lib/devframe/protocol.js +77 -0
  34. package/lib/devframe/protocol.js.map +1 -0
  35. package/lib/devframe/source.d.ts +49 -0
  36. package/lib/devframe/source.d.ts.map +1 -0
  37. package/lib/devframe/source.js +23 -0
  38. package/lib/devframe/source.js.map +1 -0
  39. package/lib/devframe/vite.d.ts +116 -0
  40. package/lib/devframe/vite.d.ts.map +1 -0
  41. package/lib/devframe/vite.js +292 -0
  42. package/lib/devframe/vite.js.map +1 -0
  43. package/lib/http.d.ts +29 -0
  44. package/lib/http.d.ts.map +1 -0
  45. package/lib/http.js +35 -0
  46. package/lib/http.js.map +1 -0
  47. package/lib/icons.d.ts +2 -0
  48. package/lib/icons.d.ts.map +1 -1
  49. package/lib/icons.js +10 -4
  50. package/lib/icons.js.map +1 -1
  51. package/lib/options.d.ts +131 -0
  52. package/lib/options.d.ts.map +1 -0
  53. package/lib/options.js +128 -0
  54. package/lib/options.js.map +1 -0
  55. package/lib/plugin.d.ts +6 -137
  56. package/lib/plugin.d.ts.map +1 -1
  57. package/lib/plugin.js +280 -677
  58. package/lib/plugin.js.map +1 -1
  59. package/lib/plugins/css-literals.d.ts +15 -0
  60. package/lib/plugins/css-literals.d.ts.map +1 -0
  61. package/lib/plugins/css-literals.js +154 -0
  62. package/lib/plugins/css-literals.js.map +1 -0
  63. package/lib/plugins/css-queries.d.ts +20 -0
  64. package/lib/plugins/css-queries.d.ts.map +1 -0
  65. package/lib/plugins/css-queries.js +139 -0
  66. package/lib/plugins/css-queries.js.map +1 -0
  67. package/lib/plugins/open-in-editor.d.ts +16 -0
  68. package/lib/plugins/open-in-editor.d.ts.map +1 -0
  69. package/lib/plugins/open-in-editor.js +91 -0
  70. package/lib/plugins/open-in-editor.js.map +1 -0
  71. package/lib/plugins/shared.d.ts +13 -0
  72. package/lib/plugins/shared.d.ts.map +1 -0
  73. package/lib/plugins/shared.js +23 -0
  74. package/lib/plugins/shared.js.map +1 -0
  75. package/lib/plugins/timeline-virtual.d.ts +19 -0
  76. package/lib/plugins/timeline-virtual.d.ts.map +1 -0
  77. package/lib/plugins/timeline-virtual.js +53 -0
  78. package/lib/plugins/timeline-virtual.js.map +1 -0
  79. package/lib/runtime/css.d.ts +2 -2
  80. package/lib/runtime/css.d.ts.map +1 -1
  81. package/lib/runtime/css.js +41 -34
  82. package/lib/runtime/css.js.map +1 -1
  83. package/lib/runtime/edge-panel.d.ts.map +1 -1
  84. package/lib/runtime/edge-panel.js +82 -91
  85. package/lib/runtime/edge-panel.js.map +1 -1
  86. package/lib/runtime/fonts.d.ts.map +1 -1
  87. package/lib/runtime/fonts.js +1 -1
  88. package/lib/runtime/fonts.js.map +1 -1
  89. package/lib/runtime/indicator.d.ts.map +1 -1
  90. package/lib/runtime/indicator.js +71 -74
  91. package/lib/runtime/indicator.js.map +1 -1
  92. package/lib/runtime/inspector/collect.d.ts.map +1 -1
  93. package/lib/runtime/inspector/collect.js +83 -90
  94. package/lib/runtime/inspector/collect.js.map +1 -1
  95. package/lib/runtime/inspector/highlight.d.ts +16 -0
  96. package/lib/runtime/inspector/highlight.d.ts.map +1 -0
  97. package/lib/runtime/inspector/highlight.js +66 -0
  98. package/lib/runtime/inspector/highlight.js.map +1 -0
  99. package/lib/runtime/inspector/install.d.ts.map +1 -1
  100. package/lib/runtime/inspector/install.js +230 -205
  101. package/lib/runtime/inspector/install.js.map +1 -1
  102. package/lib/runtime/inspector/serialize.d.ts.map +1 -1
  103. package/lib/runtime/inspector/serialize.js +86 -107
  104. package/lib/runtime/inspector/serialize.js.map +1 -1
  105. package/lib/runtime/intern.d.ts.map +1 -1
  106. package/lib/runtime/intern.js +31 -29
  107. package/lib/runtime/intern.js.map +1 -1
  108. package/lib/runtime/overrides.d.ts.map +1 -1
  109. package/lib/runtime/overrides.js +14 -13
  110. package/lib/runtime/overrides.js.map +1 -1
  111. package/lib/runtime/patch.d.ts +8 -0
  112. package/lib/runtime/patch.d.ts.map +1 -1
  113. package/lib/runtime/patch.js +321 -282
  114. package/lib/runtime/patch.js.map +1 -1
  115. package/lib/runtime/source-meta.d.ts.map +1 -1
  116. package/lib/runtime/source-meta.js +1 -1
  117. package/lib/runtime/source-meta.js.map +1 -1
  118. package/lib/runtime/source-overlay/editors.d.ts.map +1 -1
  119. package/lib/runtime/source-overlay/editors.js +27 -27
  120. package/lib/runtime/source-overlay/editors.js.map +1 -1
  121. package/lib/runtime/source-overlay/mask-path.d.ts.map +1 -1
  122. package/lib/runtime/source-overlay/mask-path.js +15 -15
  123. package/lib/runtime/source-overlay/mask-path.js.map +1 -1
  124. package/lib/runtime/source-overlay/overlay-element.d.ts.map +1 -1
  125. package/lib/runtime/source-overlay/overlay-element.js +359 -355
  126. package/lib/runtime/source-overlay/overlay-element.js.map +1 -1
  127. package/lib/runtime/source-overlay/source-host.d.ts.map +1 -1
  128. package/lib/runtime/source-overlay/source-host.js +64 -71
  129. package/lib/runtime/source-overlay/source-host.js.map +1 -1
  130. package/lib/runtime/source-overlay/template.d.ts.map +1 -1
  131. package/lib/runtime/source-overlay/template.js +3 -3
  132. package/lib/runtime/source-overlay/template.js.map +1 -1
  133. package/lib/runtime/source-overlay.d.ts.map +1 -1
  134. package/lib/runtime/source-overlay.js +5 -2
  135. package/lib/runtime/source-overlay.js.map +1 -1
  136. package/lib/runtime/timeline/clock.d.ts.map +1 -1
  137. package/lib/runtime/timeline/clock.js +2 -2
  138. package/lib/runtime/timeline/clock.js.map +1 -1
  139. package/lib/runtime/timeline/flash.d.ts +39 -0
  140. package/lib/runtime/timeline/flash.d.ts.map +1 -0
  141. package/lib/runtime/timeline/flash.js +169 -0
  142. package/lib/runtime/timeline/flash.js.map +1 -0
  143. package/lib/runtime/timeline/identity.d.ts.map +1 -1
  144. package/lib/runtime/timeline/identity.js +27 -27
  145. package/lib/runtime/timeline/identity.js.map +1 -1
  146. package/lib/runtime/timeline/input.d.ts.map +1 -1
  147. package/lib/runtime/timeline/input.js +54 -67
  148. package/lib/runtime/timeline/input.js.map +1 -1
  149. package/lib/runtime/timeline/install.d.ts.map +1 -1
  150. package/lib/runtime/timeline/install.js +47 -33
  151. package/lib/runtime/timeline/install.js.map +1 -1
  152. package/lib/runtime/timeline/lifecycle.d.ts +8 -0
  153. package/lib/runtime/timeline/lifecycle.d.ts.map +1 -1
  154. package/lib/runtime/timeline/lifecycle.js +149 -133
  155. package/lib/runtime/timeline/lifecycle.js.map +1 -1
  156. package/lib/runtime/timeline/public-api.d.ts +2 -2
  157. package/lib/runtime/timeline/public-api.d.ts.map +1 -1
  158. package/lib/runtime/timeline/public-api.js +11 -11
  159. package/lib/runtime/timeline/public-api.js.map +1 -1
  160. package/lib/runtime/timeline/render.d.ts +15 -6
  161. package/lib/runtime/timeline/render.d.ts.map +1 -1
  162. package/lib/runtime/timeline/render.js +212 -78
  163. package/lib/runtime/timeline/render.js.map +1 -1
  164. package/lib/runtime/timeline/transport.d.ts.map +1 -1
  165. package/lib/runtime/timeline/transport.js +39 -43
  166. package/lib/runtime/timeline/transport.js.map +1 -1
  167. package/lib/segmented-tabs.d.ts +3 -1
  168. package/lib/segmented-tabs.d.ts.map +1 -1
  169. package/lib/segmented-tabs.js +136 -107
  170. package/lib/segmented-tabs.js.map +1 -1
  171. package/lib/snapshot.d.ts +28 -0
  172. package/lib/snapshot.d.ts.map +1 -0
  173. package/lib/snapshot.js +57 -0
  174. package/lib/snapshot.js.map +1 -0
  175. package/lib/source-meta.d.ts.map +1 -1
  176. package/lib/source-meta.js +176 -162
  177. package/lib/source-meta.js.map +1 -1
  178. package/lib/timeline/derive.d.ts +152 -0
  179. package/lib/timeline/derive.d.ts.map +1 -0
  180. package/lib/timeline/derive.js +242 -0
  181. package/lib/timeline/derive.js.map +1 -0
  182. package/lib/tokens.d.ts.map +1 -1
  183. package/lib/tokens.js +17 -18
  184. package/lib/tokens.js.map +1 -1
  185. package/lib/transform.d.ts.map +1 -1
  186. package/lib/transform.js +62 -57
  187. package/lib/transform.js.map +1 -1
  188. package/lib/types.d.ts.map +1 -1
  189. package/lib/types.js +1 -1
  190. package/lib/types.js.map +1 -1
  191. package/lib/wrap-table.d.ts.map +1 -1
  192. package/lib/wrap-table.js +19 -17
  193. package/lib/wrap-table.js.map +1 -1
  194. package/package.json +80 -13
  195. package/types/hmr-incompatibility.d.ts +59 -0
  196. package/types/hmr-incompatibility.d.ts.map +1 -0
  197. package/types/hmr-incompatibility.js +30 -0
  198. package/types/hmr-incompatibility.js.map +1 -0
  199. package/types/in-page.d.ts +49 -0
  200. package/types/in-page.d.ts.map +1 -0
  201. package/types/in-page.js +33 -0
  202. package/types/in-page.js.map +1 -0
  203. package/types/inspector.d.ts.map +1 -1
  204. package/types/inspector.js.map +1 -1
  205. package/types/snapshot.d.ts +44 -0
  206. package/types/snapshot.d.ts.map +1 -0
  207. package/types/snapshot.js +7 -0
  208. package/types/snapshot.js.map +1 -0
  209. package/types/timeline.d.ts +23 -1
  210. package/types/timeline.d.ts.map +1 -1
  211. package/types/timeline.js +2 -0
  212. package/types/timeline.js.map +1 -1
  213. package/lib/timeline-plugin.d.ts +0 -72
  214. package/lib/timeline-plugin.d.ts.map +0 -1
  215. package/lib/timeline-plugin.js +0 -376
  216. package/lib/timeline-plugin.js.map +0 -1
  217. package/panel/components-view.d.ts +0 -60
  218. package/panel/components-view.d.ts.map +0 -1
  219. package/panel/components-view.js +0 -587
  220. package/panel/components-view.js.map +0 -1
  221. package/panel/devtools-settings.d.ts +0 -41
  222. package/panel/devtools-settings.d.ts.map +0 -1
  223. package/panel/devtools-settings.js +0 -463
  224. package/panel/devtools-settings.js.map +0 -1
  225. package/panel/lit-devtools-panel.d.ts +0 -37
  226. package/panel/lit-devtools-panel.d.ts.map +0 -1
  227. package/panel/lit-devtools-panel.js +0 -185
  228. package/panel/lit-devtools-panel.js.map +0 -1
  229. package/panel/timeline-event-list.d.ts +0 -43
  230. package/panel/timeline-event-list.d.ts.map +0 -1
  231. package/panel/timeline-event-list.js +0 -416
  232. package/panel/timeline-event-list.js.map +0 -1
  233. package/panel/timeline-layers.d.ts +0 -25
  234. package/panel/timeline-layers.d.ts.map +0 -1
  235. package/panel/timeline-layers.js +0 -96
  236. package/panel/timeline-layers.js.map +0 -1
  237. package/panel/timeline-view.d.ts +0 -38
  238. package/panel/timeline-view.d.ts.map +0 -1
  239. package/panel/timeline-view.js +0 -234
  240. package/panel/timeline-view.js.map +0 -1
@@ -1,41 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
- import { LitElement } from 'lit';
7
- /**
8
- * Settings view. Shows the plugin's resolved feature settings and lets the
9
- * HMR ones be overridden live — persisted (same-origin localStorage, read by
10
- * the app runtime on load) and pushed over HMR for immediate effect. Settings
11
- * whose feature is disabled at config time can't be enabled here (their runtime
12
- * isn't injected); those stay read-only.
13
- */
14
- export declare class DevtoolsSettings extends LitElement {
15
- static styles: import("lit").CSSResult[];
16
- private _settings;
17
- private _override;
18
- private _loaded;
19
- private _colorScheme;
20
- connectedCallback(): void;
21
- private _readOverride;
22
- private _setColorScheme;
23
- private _fetch;
24
- /** Persist the merged override and push it to the app runtime. */
25
- private _push;
26
- private _set;
27
- /** Clear overrides and revert the runtime to the resolved env values. */
28
- private _reset;
29
- private _pill;
30
- private _ovr;
31
- private _readonlyRow;
32
- private _renderAppearance;
33
- private _renderHmr;
34
- render(): import("lit-html").TemplateResult<1>;
35
- }
36
- declare global {
37
- interface HTMLElementTagNameMap {
38
- 'devtools-settings': DevtoolsSettings;
39
- }
40
- }
41
- //# sourceMappingURL=devtools-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"devtools-settings.d.ts","sourceRoot":"","sources":["../../../packages/labs/vite-plugin-lit/src/panel/devtools-settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAqB,MAAM,KAAK,CAAC;AAkBnD;;;;;;GAMG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,4BAoIpB;IAEO,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAiC;IAErD,iBAAiB;IAO1B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,eAAe;YAKT,MAAM;IAWpB,kEAAkE;IAClE,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,IAAI;IAOZ,yEAAyE;IACzE,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,UAAU;IAmGT,MAAM;CAqFhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,gBAAgB,CAAC;KACvC;CACF"}
@@ -1,463 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
7
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9
- 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;
10
- return c > 3 && r && Object.defineProperty(target, key, r), r;
11
- };
12
- import { LitElement, html, css, nothing } from 'lit';
13
- import { customElement, state } from 'lit/decorators.js';
14
- import { tokens } from '../lib/tokens.js';
15
- import { readColorSchemePreference, setColorSchemePreference, } from '../lib/color-scheme.js';
16
- import { SETTINGS_OVERRIDE_LS_KEY, SOURCE_OVERLAY_EDITORS, } from '../types/timeline.js';
17
- /** GET resolved settings / POST a {@link SettingsOverride} (server rebroadcasts). */
18
- const SETTINGS_PATH = '/__lit-devtools-settings';
19
- /**
20
- * Settings view. Shows the plugin's resolved feature settings and lets the
21
- * HMR ones be overridden live — persisted (same-origin localStorage, read by
22
- * the app runtime on load) and pushed over HMR for immediate effect. Settings
23
- * whose feature is disabled at config time can't be enabled here (their runtime
24
- * isn't injected); those stay read-only.
25
- */
26
- let DevtoolsSettings = class DevtoolsSettings extends LitElement {
27
- constructor() {
28
- super(...arguments);
29
- this._settings = null;
30
- this._override = {};
31
- this._loaded = false;
32
- this._colorScheme = 'auto';
33
- }
34
- static { this.styles = [
35
- tokens,
36
- css `
37
- :host {
38
- display: block;
39
- flex: 1;
40
- overflow-y: auto;
41
- padding: var(--lit-devtools-space-5) var(--lit-devtools-space-6);
42
- font-size: var(--lit-devtools-text-xs);
43
- line-height: var(--lit-devtools-leading-normal);
44
- }
45
- .note {
46
- color: var(--lit-devtools-text-muted);
47
- margin: 0 0 var(--lit-devtools-space-5);
48
- }
49
- .note code {
50
- color: var(--lit-devtools-accent);
51
- font-family: var(--lit-devtools-font-mono);
52
- }
53
- section {
54
- border: 1px solid var(--lit-devtools-border);
55
- border-radius: var(--lit-devtools-radius-md);
56
- margin-bottom: var(--lit-devtools-space-5);
57
- overflow: hidden;
58
- }
59
- h3 {
60
- display: flex;
61
- align-items: center;
62
- gap: var(--lit-devtools-space-4);
63
- margin: 0;
64
- padding: var(--lit-devtools-space-3) var(--lit-devtools-space-5);
65
- font-size: var(--lit-devtools-text-xs);
66
- background: var(--lit-devtools-surface-low);
67
- border-bottom: 1px solid var(--lit-devtools-border);
68
- }
69
- .pill {
70
- font-size: var(--lit-devtools-text-2xs);
71
- font-weight: var(--lit-devtools-weight-semibold);
72
- text-transform: uppercase;
73
- letter-spacing: var(--lit-devtools-tracking-caps);
74
- padding: 1px var(--lit-devtools-space-4);
75
- border-radius: var(--lit-devtools-radius-pill);
76
- border: 1px solid var(--lit-devtools-border-strong);
77
- color: var(--lit-devtools-text-muted);
78
- }
79
- .pill.on {
80
- color: var(--lit-devtools-accent);
81
- border-color: var(--lit-devtools-accent);
82
- background: var(--lit-devtools-accent-soft);
83
- }
84
- .reset {
85
- margin-left: auto;
86
- appearance: none;
87
- border: 1px solid var(--lit-devtools-border-strong);
88
- background: var(--lit-devtools-surface-elevated);
89
- color: var(--lit-devtools-text);
90
- border-radius: var(--lit-devtools-radius-sm);
91
- font: inherit;
92
- font-size: var(--lit-devtools-text-2xs);
93
- padding: var(--lit-devtools-space-1) var(--lit-devtools-space-4);
94
- cursor: pointer;
95
- }
96
- .reset:hover {
97
- background: var(--lit-devtools-surface-hover);
98
- }
99
- table {
100
- width: 100%;
101
- border-collapse: collapse;
102
- }
103
- td {
104
- padding: var(--lit-devtools-space-3) var(--lit-devtools-space-5);
105
- vertical-align: middle;
106
- }
107
- tr:not(:last-child) td {
108
- border-bottom: 1px solid var(--lit-devtools-border);
109
- }
110
- .key {
111
- color: var(--lit-devtools-text-muted);
112
- white-space: nowrap;
113
- width: 1%;
114
- }
115
- .val {
116
- color: var(--lit-devtools-text);
117
- font-family: var(--lit-devtools-font-mono);
118
- }
119
- .env {
120
- color: var(--lit-devtools-text-muted);
121
- font-family: var(--lit-devtools-font-mono);
122
- font-size: var(--lit-devtools-text-2xs);
123
- }
124
- .ovr {
125
- color: var(--lit-devtools-warning);
126
- font-size: var(--lit-devtools-text-2xs);
127
- margin-left: var(--lit-devtools-space-3);
128
- vertical-align: middle;
129
- }
130
- label.toggle {
131
- display: inline-flex;
132
- align-items: center;
133
- gap: var(--lit-devtools-space-3);
134
- cursor: pointer;
135
- vertical-align: middle;
136
- }
137
- input,
138
- select {
139
- accent-color: var(--lit-devtools-accent);
140
- font: inherit;
141
- font-family: var(--lit-devtools-font-mono);
142
- vertical-align: middle;
143
- }
144
- select {
145
- background: var(--lit-devtools-surface-elevated);
146
- color: var(--lit-devtools-text);
147
- border: 1px solid var(--lit-devtools-border-strong);
148
- border-radius: var(--lit-devtools-radius-sm);
149
- padding: 1px var(--lit-devtools-space-2);
150
- }
151
- .row-disabled {
152
- opacity: 0.5;
153
- }
154
- .empty {
155
- color: var(--lit-devtools-text-muted);
156
- padding: var(--lit-devtools-space-3) var(--lit-devtools-space-5);
157
- }
158
- .empty code {
159
- color: var(--lit-devtools-accent);
160
- font-family: var(--lit-devtools-font-mono);
161
- }
162
- .loading {
163
- color: var(--lit-devtools-text-muted);
164
- }
165
- `,
166
- ]; }
167
- connectedCallback() {
168
- super.connectedCallback();
169
- this._override = this._readOverride();
170
- this._colorScheme = readColorSchemePreference();
171
- void this._fetch();
172
- }
173
- _readOverride() {
174
- try {
175
- const raw = localStorage.getItem(SETTINGS_OVERRIDE_LS_KEY);
176
- if (raw !== null)
177
- return JSON.parse(raw);
178
- }
179
- catch {
180
- // ignore
181
- }
182
- return {};
183
- }
184
- _setColorScheme(scheme) {
185
- this._colorScheme = scheme;
186
- setColorSchemePreference(scheme);
187
- }
188
- async _fetch() {
189
- try {
190
- const res = await fetch(SETTINGS_PATH);
191
- this._settings = (await res.json());
192
- }
193
- catch {
194
- this._settings = null;
195
- }
196
- finally {
197
- this._loaded = true;
198
- }
199
- }
200
- /** Persist the merged override and push it to the app runtime. */
201
- _push(override) {
202
- this._override = override;
203
- try {
204
- localStorage.setItem(SETTINGS_OVERRIDE_LS_KEY, JSON.stringify(override));
205
- }
206
- catch {
207
- // ignore
208
- }
209
- fetch(SETTINGS_PATH, {
210
- method: 'POST',
211
- headers: { 'Content-Type': 'application/json' },
212
- body: JSON.stringify(override),
213
- }).catch(() => {
214
- // dev tool — ignore network errors
215
- });
216
- }
217
- _set(key, value) {
218
- this._push({ ...this._override, [key]: value });
219
- }
220
- /** Clear overrides and revert the runtime to the resolved env values. */
221
- _reset() {
222
- const s = this._settings;
223
- try {
224
- localStorage.removeItem(SETTINGS_OVERRIDE_LS_KEY);
225
- }
226
- catch {
227
- // ignore
228
- }
229
- this._override = {};
230
- if (s !== null) {
231
- // Send the env values explicitly so the live runtime reverts now (an
232
- // empty override would leave the current live values in place).
233
- fetch(SETTINGS_PATH, {
234
- method: 'POST',
235
- headers: { 'Content-Type': 'application/json' },
236
- body: JSON.stringify({
237
- hmrReconnect: s.hmr.reconnect,
238
- hmrOnIncompatible: s.hmr.onIncompatible,
239
- hmrIndicatorVisible: s.hmr.indicatorEnabled,
240
- hmrIndicatorCount: s.hmr.indicatorCount,
241
- sourceOverlayEditor: s.sourceOverlay.editor,
242
- }),
243
- }).catch(() => { });
244
- }
245
- }
246
- _pill(on) {
247
- return html `<span class="pill ${on ? 'on' : ''}"
248
- >${on ? 'enabled' : 'disabled'}</span
249
- >`;
250
- }
251
- _ovr(overridden) {
252
- return overridden ? html `<span class="ovr">(overridden)</span>` : nothing;
253
- }
254
- _readonlyRow(key, value, env) {
255
- return html `
256
- <tr>
257
- <td class="key">${key}</td>
258
- <td class="val">
259
- ${String(value)}
260
- ${env ? html `<span class="env">${env}</span>` : nothing}
261
- </td>
262
- </tr>
263
- `;
264
- }
265
- _renderAppearance() {
266
- return html `
267
- <section>
268
- <h3>Appearance</h3>
269
- <table>
270
- <tr>
271
- <td class="key">color scheme</td>
272
- <td class="val">
273
- <select
274
- @change=${(e) => this._setColorScheme(e.target
275
- .value)}
276
- >
277
- ${[
278
- ['auto', 'Auto'],
279
- ['dark', 'Dark'],
280
- ['light', 'Light'],
281
- ].map(([value, label]) => html `<option
282
- value=${value}
283
- ?selected=${this._colorScheme === value}
284
- >
285
- ${label}
286
- </option>`)}
287
- </select>
288
- </td>
289
- </tr>
290
- </table>
291
- </section>
292
- `;
293
- }
294
- _renderHmr(s) {
295
- const o = this._override;
296
- if (!s.hmr.enabled) {
297
- return html `<p class="empty">
298
- Enable with <code>hmr: true</code> or <code>LIT_PLUGIN_HMR=true</code>.
299
- </p>`;
300
- }
301
- const reconnect = o.hmrReconnect ?? s.hmr.reconnect;
302
- const onIncompatible = o.hmrOnIncompatible ?? s.hmr.onIncompatible;
303
- // The indicator element only exists when enabled at config time, so it can
304
- // be hidden/shown (and its count toggled) live but not created here.
305
- const indicatorVisible = o.hmrIndicatorVisible ?? s.hmr.indicatorEnabled;
306
- const indicatorCount = o.hmrIndicatorCount ?? s.hmr.indicatorCount;
307
- return html `
308
- <table>
309
- <tr>
310
- <td class="key">reconnect</td>
311
- <td class="val">
312
- <label class="toggle">
313
- <input
314
- type="checkbox"
315
- .checked=${reconnect}
316
- @change=${(e) => this._set('hmrReconnect', e.target.checked)}
317
- />
318
- ${reconnect ? 'on' : 'off'}
319
- </label>
320
- ${this._ovr(o.hmrReconnect !== undefined)}
321
- </td>
322
- </tr>
323
- <tr>
324
- <td class="key">on incompatible</td>
325
- <td class="val">
326
- <select
327
- @change=${(e) => this._set('hmrOnIncompatible', e.target.value)}
328
- >
329
- <option value="reload" ?selected=${onIncompatible === 'reload'}>
330
- reload
331
- </option>
332
- <option value="warn" ?selected=${onIncompatible === 'warn'}>
333
- warn
334
- </option>
335
- </select>
336
- ${this._ovr(o.hmrOnIncompatible !== undefined)}
337
- </td>
338
- </tr>
339
- <tr class=${s.hmr.indicatorEnabled ? '' : 'row-disabled'}>
340
- <td class="key">indicator</td>
341
- <td class="val">
342
- <label class="toggle">
343
- <input
344
- type="checkbox"
345
- .checked=${indicatorVisible}
346
- ?disabled=${!s.hmr.indicatorEnabled}
347
- @change=${(e) => this._set('hmrIndicatorVisible', e.target.checked)}
348
- />
349
- ${s.hmr.indicatorEnabled
350
- ? indicatorVisible
351
- ? 'shown'
352
- : 'hidden'
353
- : 'off (config)'}
354
- </label>
355
- ${this._ovr(o.hmrIndicatorVisible !== undefined)}
356
- </td>
357
- </tr>
358
- <tr class=${s.hmr.indicatorEnabled ? '' : 'row-disabled'}>
359
- <td class="key">indicator count</td>
360
- <td class="val">
361
- <label class="toggle">
362
- <input
363
- type="checkbox"
364
- .checked=${indicatorCount}
365
- ?disabled=${!s.hmr.indicatorEnabled}
366
- @change=${(e) => this._set('hmrIndicatorCount', e.target.checked)}
367
- />
368
- ${indicatorCount ? 'shown' : 'hidden'}
369
- </label>
370
- ${this._ovr(o.hmrIndicatorCount !== undefined)}
371
- </td>
372
- </tr>
373
- </table>
374
- `;
375
- }
376
- render() {
377
- if (!this._loaded) {
378
- return html `<p class="loading">Loading settings…</p>`;
379
- }
380
- const s = this._settings;
381
- const appearance = this._renderAppearance();
382
- if (s === null) {
383
- return html `${appearance}
384
- <p class="empty">Settings unavailable.</p>`;
385
- }
386
- const hasOverride = Object.keys(this._override).length > 0;
387
- return html `
388
- <p class="note">
389
- Resolved from plugin options and <code>LIT_PLUGIN_*</code> env at
390
- startup. Controls below override the running app live; the rest are
391
- config-time (change them in your Vite config / <code>.env</code> and
392
- restart).
393
- ${hasOverride
394
- ? html `<button class="reset" @click=${this._reset}>
395
- Reset to env
396
- </button>`
397
- : nothing}
398
- </p>
399
-
400
- ${appearance}
401
-
402
- <section>
403
- <h3>HMR ${this._pill(s.hmr.enabled)}</h3>
404
- ${this._renderHmr(s)}
405
- </section>
406
-
407
- <section>
408
- <h3>Source Overlay ${this._pill(s.sourceOverlay.enabled)}</h3>
409
- ${s.sourceOverlay.enabled
410
- ? html `<table>
411
- ${this._readonlyRow('hotkey', `Ctrl+Shift+${s.sourceOverlay.key.toUpperCase()}`, 'LIT_PLUGIN_SOURCE_OVERLAY_KEY')}
412
- <tr>
413
- <td class="key">editor</td>
414
- <td class="val">
415
- <select
416
- @change=${(e) => this._set('sourceOverlayEditor', e.target.value)}
417
- >
418
- ${SOURCE_OVERLAY_EDITORS.map((ed) => html `<option
419
- value=${ed.value}
420
- ?selected=${ed.value ===
421
- (this._override.sourceOverlayEditor ??
422
- s.sourceOverlay.editor)}
423
- >
424
- ${ed.label}
425
- </option>`)}
426
- </select>
427
- ${this._ovr(this._override.sourceOverlayEditor !== undefined)}
428
- </td>
429
- </tr>
430
- ${this._readonlyRow('throttle (ms)', s.sourceOverlay.throttleMs, 'LIT_PLUGIN_SOURCE_OVERLAY_THROTTLE_MS')}
431
- </table>`
432
- : html `<p class="empty">
433
- Enable with <code>sourceOverlay: true</code> or
434
- <code>LIT_PLUGIN_SOURCE_OVERLAY=true</code>.
435
- </p>`}
436
- </section>
437
-
438
- <section>
439
- <h3>Timeline ${this._pill(s.timeline)}</h3>
440
- <p class="empty">
441
- Layers and recording are controlled in the Timeline tab.
442
- </p>
443
- </section>
444
- `;
445
- }
446
- };
447
- __decorate([
448
- state()
449
- ], DevtoolsSettings.prototype, "_settings", void 0);
450
- __decorate([
451
- state()
452
- ], DevtoolsSettings.prototype, "_override", void 0);
453
- __decorate([
454
- state()
455
- ], DevtoolsSettings.prototype, "_loaded", void 0);
456
- __decorate([
457
- state()
458
- ], DevtoolsSettings.prototype, "_colorScheme", void 0);
459
- DevtoolsSettings = __decorate([
460
- customElement('devtools-settings')
461
- ], DevtoolsSettings);
462
- export { DevtoolsSettings };
463
- //# sourceMappingURL=devtools-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"devtools-settings.js","sourceRoot":"","sources":["../../../packages/labs/vite-plugin-lit/src/panel/devtools-settings.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2026 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {LitElement, html, css, nothing} from 'lit';\nimport {customElement, state} from 'lit/decorators.js';\nimport {tokens} from '../lib/tokens.js';\nimport {\n readColorSchemePreference,\n setColorSchemePreference,\n type ColorSchemePreference,\n} from '../lib/color-scheme.js';\nimport {\n SETTINGS_OVERRIDE_LS_KEY,\n SOURCE_OVERLAY_EDITORS,\n type FeatureSettings,\n type SettingsOverride,\n} from '../types/timeline.js';\n\n/** GET resolved settings / POST a {@link SettingsOverride} (server rebroadcasts). */\nconst SETTINGS_PATH = '/__lit-devtools-settings';\n\n/**\n * Settings view. Shows the plugin's resolved feature settings and lets the\n * HMR ones be overridden live — persisted (same-origin localStorage, read by\n * the app runtime on load) and pushed over HMR for immediate effect. Settings\n * whose feature is disabled at config time can't be enabled here (their runtime\n * isn't injected); those stay read-only.\n */\n@customElement('devtools-settings')\nexport class DevtoolsSettings extends LitElement {\n static override styles = [\n tokens,\n css`\n :host {\n display: block;\n flex: 1;\n overflow-y: auto;\n padding: var(--lit-devtools-space-5) var(--lit-devtools-space-6);\n font-size: var(--lit-devtools-text-xs);\n line-height: var(--lit-devtools-leading-normal);\n }\n .note {\n color: var(--lit-devtools-text-muted);\n margin: 0 0 var(--lit-devtools-space-5);\n }\n .note code {\n color: var(--lit-devtools-accent);\n font-family: var(--lit-devtools-font-mono);\n }\n section {\n border: 1px solid var(--lit-devtools-border);\n border-radius: var(--lit-devtools-radius-md);\n margin-bottom: var(--lit-devtools-space-5);\n overflow: hidden;\n }\n h3 {\n display: flex;\n align-items: center;\n gap: var(--lit-devtools-space-4);\n margin: 0;\n padding: var(--lit-devtools-space-3) var(--lit-devtools-space-5);\n font-size: var(--lit-devtools-text-xs);\n background: var(--lit-devtools-surface-low);\n border-bottom: 1px solid var(--lit-devtools-border);\n }\n .pill {\n font-size: var(--lit-devtools-text-2xs);\n font-weight: var(--lit-devtools-weight-semibold);\n text-transform: uppercase;\n letter-spacing: var(--lit-devtools-tracking-caps);\n padding: 1px var(--lit-devtools-space-4);\n border-radius: var(--lit-devtools-radius-pill);\n border: 1px solid var(--lit-devtools-border-strong);\n color: var(--lit-devtools-text-muted);\n }\n .pill.on {\n color: var(--lit-devtools-accent);\n border-color: var(--lit-devtools-accent);\n background: var(--lit-devtools-accent-soft);\n }\n .reset {\n margin-left: auto;\n appearance: none;\n border: 1px solid var(--lit-devtools-border-strong);\n background: var(--lit-devtools-surface-elevated);\n color: var(--lit-devtools-text);\n border-radius: var(--lit-devtools-radius-sm);\n font: inherit;\n font-size: var(--lit-devtools-text-2xs);\n padding: var(--lit-devtools-space-1) var(--lit-devtools-space-4);\n cursor: pointer;\n }\n .reset:hover {\n background: var(--lit-devtools-surface-hover);\n }\n table {\n width: 100%;\n border-collapse: collapse;\n }\n td {\n padding: var(--lit-devtools-space-3) var(--lit-devtools-space-5);\n vertical-align: middle;\n }\n tr:not(:last-child) td {\n border-bottom: 1px solid var(--lit-devtools-border);\n }\n .key {\n color: var(--lit-devtools-text-muted);\n white-space: nowrap;\n width: 1%;\n }\n .val {\n color: var(--lit-devtools-text);\n font-family: var(--lit-devtools-font-mono);\n }\n .env {\n color: var(--lit-devtools-text-muted);\n font-family: var(--lit-devtools-font-mono);\n font-size: var(--lit-devtools-text-2xs);\n }\n .ovr {\n color: var(--lit-devtools-warning);\n font-size: var(--lit-devtools-text-2xs);\n margin-left: var(--lit-devtools-space-3);\n vertical-align: middle;\n }\n label.toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--lit-devtools-space-3);\n cursor: pointer;\n vertical-align: middle;\n }\n input,\n select {\n accent-color: var(--lit-devtools-accent);\n font: inherit;\n font-family: var(--lit-devtools-font-mono);\n vertical-align: middle;\n }\n select {\n background: var(--lit-devtools-surface-elevated);\n color: var(--lit-devtools-text);\n border: 1px solid var(--lit-devtools-border-strong);\n border-radius: var(--lit-devtools-radius-sm);\n padding: 1px var(--lit-devtools-space-2);\n }\n .row-disabled {\n opacity: 0.5;\n }\n .empty {\n color: var(--lit-devtools-text-muted);\n padding: var(--lit-devtools-space-3) var(--lit-devtools-space-5);\n }\n .empty code {\n color: var(--lit-devtools-accent);\n font-family: var(--lit-devtools-font-mono);\n }\n .loading {\n color: var(--lit-devtools-text-muted);\n }\n `,\n ];\n\n @state() private _settings: FeatureSettings | null = null;\n @state() private _override: SettingsOverride = {};\n @state() private _loaded = false;\n @state() private _colorScheme: ColorSchemePreference = 'auto';\n\n override connectedCallback() {\n super.connectedCallback();\n this._override = this._readOverride();\n this._colorScheme = readColorSchemePreference();\n void this._fetch();\n }\n\n private _readOverride(): SettingsOverride {\n try {\n const raw = localStorage.getItem(SETTINGS_OVERRIDE_LS_KEY);\n if (raw !== null) return JSON.parse(raw) as SettingsOverride;\n } catch {\n // ignore\n }\n return {};\n }\n\n private _setColorScheme(scheme: ColorSchemePreference): void {\n this._colorScheme = scheme;\n setColorSchemePreference(scheme);\n }\n\n private async _fetch() {\n try {\n const res = await fetch(SETTINGS_PATH);\n this._settings = (await res.json()) as FeatureSettings | null;\n } catch {\n this._settings = null;\n } finally {\n this._loaded = true;\n }\n }\n\n /** Persist the merged override and push it to the app runtime. */\n private _push(override: SettingsOverride) {\n this._override = override;\n try {\n localStorage.setItem(SETTINGS_OVERRIDE_LS_KEY, JSON.stringify(override));\n } catch {\n // ignore\n }\n fetch(SETTINGS_PATH, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify(override),\n }).catch(() => {\n // dev tool — ignore network errors\n });\n }\n\n private _set<K extends keyof SettingsOverride>(\n key: K,\n value: SettingsOverride[K]\n ) {\n this._push({...this._override, [key]: value});\n }\n\n /** Clear overrides and revert the runtime to the resolved env values. */\n private _reset() {\n const s = this._settings;\n try {\n localStorage.removeItem(SETTINGS_OVERRIDE_LS_KEY);\n } catch {\n // ignore\n }\n this._override = {};\n if (s !== null) {\n // Send the env values explicitly so the live runtime reverts now (an\n // empty override would leave the current live values in place).\n fetch(SETTINGS_PATH, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify({\n hmrReconnect: s.hmr.reconnect,\n hmrOnIncompatible: s.hmr.onIncompatible,\n hmrIndicatorVisible: s.hmr.indicatorEnabled,\n hmrIndicatorCount: s.hmr.indicatorCount,\n sourceOverlayEditor: s.sourceOverlay.editor,\n } satisfies SettingsOverride),\n }).catch(() => {});\n }\n }\n\n private _pill(on: boolean) {\n return html`<span class=\"pill ${on ? 'on' : ''}\"\n >${on ? 'enabled' : 'disabled'}</span\n >`;\n }\n\n private _ovr(overridden: boolean) {\n return overridden ? html`<span class=\"ovr\">(overridden)</span>` : nothing;\n }\n\n private _readonlyRow(key: string, value: unknown, env?: string) {\n return html`\n <tr>\n <td class=\"key\">${key}</td>\n <td class=\"val\">\n ${String(value)}\n ${env ? html`<span class=\"env\">${env}</span>` : nothing}\n </td>\n </tr>\n `;\n }\n\n private _renderAppearance() {\n return html`\n <section>\n <h3>Appearance</h3>\n <table>\n <tr>\n <td class=\"key\">color scheme</td>\n <td class=\"val\">\n <select\n @change=${(e: Event) =>\n this._setColorScheme(\n (e.target as HTMLSelectElement)\n .value as ColorSchemePreference\n )}\n >\n ${(\n [\n ['auto', 'Auto'],\n ['dark', 'Dark'],\n ['light', 'Light'],\n ] as Array<[ColorSchemePreference, string]>\n ).map(\n ([value, label]) =>\n html`<option\n value=${value}\n ?selected=${this._colorScheme === value}\n >\n ${label}\n </option>`\n )}\n </select>\n </td>\n </tr>\n </table>\n </section>\n `;\n }\n\n private _renderHmr(s: FeatureSettings) {\n const o = this._override;\n if (!s.hmr.enabled) {\n return html`<p class=\"empty\">\n Enable with <code>hmr: true</code> or <code>LIT_PLUGIN_HMR=true</code>.\n </p>`;\n }\n const reconnect = o.hmrReconnect ?? s.hmr.reconnect;\n const onIncompatible = o.hmrOnIncompatible ?? s.hmr.onIncompatible;\n // The indicator element only exists when enabled at config time, so it can\n // be hidden/shown (and its count toggled) live but not created here.\n const indicatorVisible = o.hmrIndicatorVisible ?? s.hmr.indicatorEnabled;\n const indicatorCount = o.hmrIndicatorCount ?? s.hmr.indicatorCount;\n return html`\n <table>\n <tr>\n <td class=\"key\">reconnect</td>\n <td class=\"val\">\n <label class=\"toggle\">\n <input\n type=\"checkbox\"\n .checked=${reconnect}\n @change=${(e: Event) =>\n this._set(\n 'hmrReconnect',\n (e.target as HTMLInputElement).checked\n )}\n />\n ${reconnect ? 'on' : 'off'}\n </label>\n ${this._ovr(o.hmrReconnect !== undefined)}\n </td>\n </tr>\n <tr>\n <td class=\"key\">on incompatible</td>\n <td class=\"val\">\n <select\n @change=${(e: Event) =>\n this._set(\n 'hmrOnIncompatible',\n (e.target as HTMLSelectElement).value as 'reload' | 'warn'\n )}\n >\n <option value=\"reload\" ?selected=${onIncompatible === 'reload'}>\n reload\n </option>\n <option value=\"warn\" ?selected=${onIncompatible === 'warn'}>\n warn\n </option>\n </select>\n ${this._ovr(o.hmrOnIncompatible !== undefined)}\n </td>\n </tr>\n <tr class=${s.hmr.indicatorEnabled ? '' : 'row-disabled'}>\n <td class=\"key\">indicator</td>\n <td class=\"val\">\n <label class=\"toggle\">\n <input\n type=\"checkbox\"\n .checked=${indicatorVisible}\n ?disabled=${!s.hmr.indicatorEnabled}\n @change=${(e: Event) =>\n this._set(\n 'hmrIndicatorVisible',\n (e.target as HTMLInputElement).checked\n )}\n />\n ${s.hmr.indicatorEnabled\n ? indicatorVisible\n ? 'shown'\n : 'hidden'\n : 'off (config)'}\n </label>\n ${this._ovr(o.hmrIndicatorVisible !== undefined)}\n </td>\n </tr>\n <tr class=${s.hmr.indicatorEnabled ? '' : 'row-disabled'}>\n <td class=\"key\">indicator count</td>\n <td class=\"val\">\n <label class=\"toggle\">\n <input\n type=\"checkbox\"\n .checked=${indicatorCount}\n ?disabled=${!s.hmr.indicatorEnabled}\n @change=${(e: Event) =>\n this._set(\n 'hmrIndicatorCount',\n (e.target as HTMLInputElement).checked\n )}\n />\n ${indicatorCount ? 'shown' : 'hidden'}\n </label>\n ${this._ovr(o.hmrIndicatorCount !== undefined)}\n </td>\n </tr>\n </table>\n `;\n }\n\n override render() {\n if (!this._loaded) {\n return html`<p class=\"loading\">Loading settings…</p>`;\n }\n const s = this._settings;\n const appearance = this._renderAppearance();\n if (s === null) {\n return html`${appearance}\n <p class=\"empty\">Settings unavailable.</p>`;\n }\n const hasOverride = Object.keys(this._override).length > 0;\n return html`\n <p class=\"note\">\n Resolved from plugin options and <code>LIT_PLUGIN_*</code> env at\n startup. Controls below override the running app live; the rest are\n config-time (change them in your Vite config / <code>.env</code> and\n restart).\n ${hasOverride\n ? html`<button class=\"reset\" @click=${this._reset}>\n Reset to env\n </button>`\n : nothing}\n </p>\n\n ${appearance}\n\n <section>\n <h3>HMR ${this._pill(s.hmr.enabled)}</h3>\n ${this._renderHmr(s)}\n </section>\n\n <section>\n <h3>Source Overlay ${this._pill(s.sourceOverlay.enabled)}</h3>\n ${s.sourceOverlay.enabled\n ? html`<table>\n ${this._readonlyRow(\n 'hotkey',\n `Ctrl+Shift+${s.sourceOverlay.key.toUpperCase()}`,\n 'LIT_PLUGIN_SOURCE_OVERLAY_KEY'\n )}\n <tr>\n <td class=\"key\">editor</td>\n <td class=\"val\">\n <select\n @change=${(e: Event) =>\n this._set(\n 'sourceOverlayEditor',\n (e.target as HTMLSelectElement).value\n )}\n >\n ${SOURCE_OVERLAY_EDITORS.map(\n (ed) =>\n html`<option\n value=${ed.value}\n ?selected=${ed.value ===\n (this._override.sourceOverlayEditor ??\n s.sourceOverlay.editor)}\n >\n ${ed.label}\n </option>`\n )}\n </select>\n ${this._ovr(this._override.sourceOverlayEditor !== undefined)}\n </td>\n </tr>\n ${this._readonlyRow(\n 'throttle (ms)',\n s.sourceOverlay.throttleMs,\n 'LIT_PLUGIN_SOURCE_OVERLAY_THROTTLE_MS'\n )}\n </table>`\n : html`<p class=\"empty\">\n Enable with <code>sourceOverlay: true</code> or\n <code>LIT_PLUGIN_SOURCE_OVERLAY=true</code>.\n </p>`}\n </section>\n\n <section>\n <h3>Timeline ${this._pill(s.timeline)}</h3>\n <p class=\"empty\">\n Layers and recording are controlled in the Timeline tab.\n </p>\n </section>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'devtools-settings': DevtoolsSettings;\n }\n}\n"]}
@@ -1,37 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
- import { LitElement } from 'lit';
7
- import './timeline-view.js';
8
- import './components-view.js';
9
- import './devtools-settings.js';
10
- import '../lib/segmented-tabs.js';
11
- /**
12
- * Root of the Lit DevTools panel — a tabbed shell. Each tab's view is kept
13
- * mounted and merely hidden when inactive, so the Timeline keeps recording
14
- * (and holds its events) while another tab is in front.
15
- */
16
- export declare class LitDevtoolsPanel extends LitElement {
17
- static styles: import("lit").CSSResult[];
18
- private _tab;
19
- private _componentsView?;
20
- private _onTabChange;
21
- /** A timeline event's "inspect" link — open the Components tab on it. */
22
- private _onInspectElement;
23
- /**
24
- * A component was picked via the overlay inspector — switch to the Components
25
- * tab and request the parent DevTools shell to bring this dock entry to the
26
- * front, so the user can see the picked element without having to manually
27
- * open the Lit panel first.
28
- */
29
- private _onInspectorActivate;
30
- render(): import("lit-html").TemplateResult<1>;
31
- }
32
- declare global {
33
- interface HTMLElementTagNameMap {
34
- 'lit-devtools-panel': LitDevtoolsPanel;
35
- }
36
- }
37
- //# sourceMappingURL=lit-devtools-panel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lit-devtools-panel.d.ts","sourceRoot":"","sources":["../../../packages/labs/vite-plugin-lit/src/panel/lit-devtools-panel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAqB,MAAM,KAAK,CAAC;AAOnD,OAAO,oBAAoB,CAAC;AAW5B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAqClC;;;;GAIG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,4BA2CpB;IAEO,OAAO,CAAC,IAAI,CAAgB;IAEX,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEnE,OAAO,CAAC,YAAY;IAIpB,yEAAyE;IACzE,OAAO,CAAC,iBAAiB;IAMzB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA4BnB,MAAM;CAwBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}