tailwind-styled-v4 5.0.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +398 -0
- package/LICENSE +21 -0
- package/README.md +532 -0
- package/dist/analyzer.d.mts +114 -0
- package/dist/analyzer.d.ts +114 -0
- package/dist/analyzer.js +1555 -0
- package/dist/analyzer.js.map +1 -0
- package/dist/analyzer.mjs +1544 -0
- package/dist/analyzer.mjs.map +1 -0
- package/dist/{animate.d.cts → animate.d.mts} +3 -30
- package/dist/animate.d.ts +3 -30
- package/dist/animate.js +149 -99
- package/dist/animate.js.map +1 -1
- package/dist/{animate.cjs → animate.mjs} +130 -119
- package/dist/animate.mjs.map +1 -0
- package/dist/atomic.d.mts +18 -0
- package/dist/atomic.d.ts +18 -0
- package/dist/atomic.js +191 -0
- package/dist/atomic.js.map +1 -0
- package/dist/atomic.mjs +185 -0
- package/dist/atomic.mjs.map +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +6063 -0
- package/dist/cli.js.map +1 -0
- package/dist/cli.mjs +6053 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/compiler.d.mts +1009 -0
- package/dist/compiler.d.ts +1009 -0
- package/dist/compiler.js +4518 -0
- package/dist/compiler.js.map +1 -0
- package/dist/compiler.mjs +4443 -0
- package/dist/compiler.mjs.map +1 -0
- package/dist/dashboard.d.mts +272 -0
- package/dist/dashboard.d.ts +272 -0
- package/dist/dashboard.js +249 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/dashboard.mjs +239 -0
- package/dist/dashboard.mjs.map +1 -0
- package/dist/devtools.js +170 -157
- package/dist/devtools.js.map +1 -1
- package/dist/{devtools.cjs → devtools.mjs} +165 -166
- package/dist/devtools.mjs.map +1 -0
- package/dist/engine.d.mts +84 -0
- package/dist/engine.d.ts +84 -0
- package/dist/engine.js +3014 -0
- package/dist/engine.js.map +1 -0
- package/dist/engine.mjs +3005 -0
- package/dist/engine.mjs.map +1 -0
- package/dist/{index.d.cts → index.d.mts} +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +945 -36
- package/dist/index.js.map +1 -1
- package/dist/{index.cjs → index.mjs} +899 -90
- package/dist/index.mjs.map +1 -0
- package/dist/liveTokenEngine-DYN3Zale.d.mts +34 -0
- package/dist/liveTokenEngine-DYN3Zale.d.ts +34 -0
- package/dist/{next.d.cts → next.d.mts} +2 -1
- package/dist/next.d.ts +2 -1
- package/dist/next.js +6853 -35
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +7050 -0
- package/dist/next.mjs.map +1 -0
- package/dist/plugin.d.mts +90 -0
- package/dist/plugin.d.ts +90 -0
- package/dist/plugin.js +185 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugin.mjs +174 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/pluginRegistry.d.mts +83 -0
- package/dist/pluginRegistry.d.ts +83 -0
- package/dist/pluginRegistry.js +303 -0
- package/dist/pluginRegistry.js.map +1 -0
- package/dist/pluginRegistry.mjs +298 -0
- package/dist/pluginRegistry.mjs.map +1 -0
- package/dist/preset.js +9 -4
- package/dist/preset.js.map +1 -1
- package/dist/{preset.cjs → preset.mjs} +5 -14
- package/dist/preset.mjs.map +1 -0
- package/dist/rspack.d.mts +33 -0
- package/dist/rspack.d.ts +33 -0
- package/dist/rspack.js +55 -0
- package/dist/rspack.js.map +1 -0
- package/dist/rspack.mjs +45 -0
- package/dist/rspack.mjs.map +1 -0
- package/dist/runtime.d.mts +62 -0
- package/dist/runtime.d.ts +62 -0
- package/dist/runtime.js +207 -0
- package/dist/runtime.js.map +1 -0
- package/dist/runtime.mjs +188 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/runtimeCss.d.mts +65 -0
- package/dist/runtimeCss.d.ts +65 -0
- package/dist/{css.cjs → runtimeCss.js} +71 -4
- package/dist/runtimeCss.js.map +1 -0
- package/dist/{css.js → runtimeCss.mjs} +66 -5
- package/dist/runtimeCss.mjs.map +1 -0
- package/dist/scanner.d.mts +25 -0
- package/dist/scanner.d.ts +25 -0
- package/dist/scanner.js +717 -0
- package/dist/scanner.js.map +1 -0
- package/dist/scanner.mjs +703 -0
- package/dist/scanner.mjs.map +1 -0
- package/dist/shared.d.mts +85 -0
- package/dist/shared.d.ts +85 -0
- package/dist/shared.js +255 -0
- package/dist/shared.js.map +1 -0
- package/dist/shared.mjs +233 -0
- package/dist/shared.mjs.map +1 -0
- package/dist/storybookAddon.d.mts +108 -0
- package/dist/storybookAddon.d.ts +108 -0
- package/dist/storybookAddon.js +95 -0
- package/dist/storybookAddon.js.map +1 -0
- package/dist/storybookAddon.mjs +88 -0
- package/dist/storybookAddon.mjs.map +1 -0
- package/dist/svelte.d.mts +114 -0
- package/dist/svelte.d.ts +114 -0
- package/dist/svelte.js +67 -0
- package/dist/svelte.js.map +1 -0
- package/dist/svelte.mjs +59 -0
- package/dist/svelte.mjs.map +1 -0
- package/dist/testing.d.mts +185 -0
- package/dist/testing.d.ts +185 -0
- package/dist/testing.js +173 -0
- package/dist/testing.js.map +1 -0
- package/dist/testing.mjs +158 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/theme.d.mts +188 -0
- package/dist/theme.d.ts +188 -0
- package/dist/theme.js +334 -0
- package/dist/theme.js.map +1 -0
- package/dist/theme.mjs +311 -0
- package/dist/theme.mjs.map +1 -0
- package/dist/types-DXr2PmGP.d.mts +31 -0
- package/dist/types-DXr2PmGP.d.ts +31 -0
- package/dist/vite.js +4181 -16
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +4281 -0
- package/dist/vite.mjs.map +1 -0
- package/dist/vue.d.mts +89 -0
- package/dist/vue.d.ts +89 -0
- package/dist/vue.js +104 -0
- package/dist/vue.js.map +1 -0
- package/dist/vue.mjs +96 -0
- package/dist/vue.mjs.map +1 -0
- package/package.json +168 -65
- package/dist/animate.cjs.map +0 -1
- package/dist/chunk-VZEJV27B.js +0 -11
- package/dist/chunk-VZEJV27B.js.map +0 -1
- package/dist/chunk-Y5D3E72P.cjs +0 -13
- package/dist/chunk-Y5D3E72P.cjs.map +0 -1
- package/dist/css.cjs.map +0 -1
- package/dist/css.d.cts +0 -30
- package/dist/css.d.ts +0 -30
- package/dist/css.js.map +0 -1
- package/dist/devtools.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/next.cjs +0 -248
- package/dist/next.cjs.map +0 -1
- package/dist/preset.cjs.map +0 -1
- package/dist/turbopackLoader.cjs +0 -37
- package/dist/turbopackLoader.cjs.map +0 -1
- package/dist/turbopackLoader.d.cts +0 -12
- package/dist/turbopackLoader.d.ts +0 -12
- package/dist/turbopackLoader.js +0 -35
- package/dist/turbopackLoader.js.map +0 -1
- package/dist/vite.cjs +0 -138
- package/dist/vite.cjs.map +0 -1
- package/dist/webpackLoader.cjs +0 -51
- package/dist/webpackLoader.cjs.map +0 -1
- package/dist/webpackLoader.d.cts +0 -17
- package/dist/webpackLoader.d.ts +0 -17
- package/dist/webpackLoader.js +0 -49
- package/dist/webpackLoader.js.map +0 -1
- /package/dist/{devtools.d.cts → devtools.d.mts} +0 -0
- /package/dist/{preset.d.cts → preset.d.mts} +0 -0
- /package/dist/{vite.d.cts → vite.d.mts} +0 -0
package/dist/devtools.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
1
|
+
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
var React = require('react');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
8
|
+
|
|
9
|
+
/* tailwind-styled-v4 v5.0.1 | MIT | https://github.com/dictionar32/tailwind-styled-v4 */
|
|
5
10
|
function parseDataTw(dataTw) {
|
|
6
11
|
if (!dataTw) return { name: "Unknown", classes: [] };
|
|
7
12
|
const colonIdx = dataTw.indexOf(":");
|
|
@@ -68,53 +73,53 @@ function InspectorPanel({
|
|
|
68
73
|
pinned: _pinned
|
|
69
74
|
}) {
|
|
70
75
|
if (!inspected) {
|
|
71
|
-
return
|
|
76
|
+
return React__default.default.createElement(
|
|
72
77
|
"div",
|
|
73
78
|
{ style: S.emptyPanel },
|
|
74
|
-
|
|
79
|
+
React__default.default.createElement("span", { style: { opacity: 0.4 } }, "Hover an element to inspect")
|
|
75
80
|
);
|
|
76
81
|
}
|
|
77
|
-
return
|
|
82
|
+
return React__default.default.createElement(
|
|
78
83
|
"div",
|
|
79
84
|
{ style: S.scrollArea },
|
|
80
85
|
// Variant props
|
|
81
|
-
Object.keys(inspected.variantProps).length > 0 &&
|
|
86
|
+
Object.keys(inspected.variantProps).length > 0 && React__default.default.createElement(
|
|
82
87
|
"div",
|
|
83
88
|
{ style: S.section },
|
|
84
|
-
|
|
89
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Variants"),
|
|
85
90
|
Object.entries(inspected.variantProps).map(
|
|
86
|
-
([k, v]) =>
|
|
91
|
+
([k, v]) => React__default.default.createElement(
|
|
87
92
|
"div",
|
|
88
93
|
{ key: k, style: S.row },
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
React__default.default.createElement("span", { style: S.varKey }, k),
|
|
95
|
+
React__default.default.createElement("span", { style: S.varValue }, `"${v}"`)
|
|
91
96
|
)
|
|
92
97
|
)
|
|
93
98
|
),
|
|
94
99
|
// Active states
|
|
95
|
-
Object.keys(inspected.activeStates).length > 0 &&
|
|
100
|
+
Object.keys(inspected.activeStates).length > 0 && React__default.default.createElement(
|
|
96
101
|
"div",
|
|
97
102
|
{ style: S.section },
|
|
98
|
-
|
|
103
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Active Data Attrs"),
|
|
99
104
|
Object.entries(inspected.activeStates).map(
|
|
100
|
-
([k, v]) =>
|
|
105
|
+
([k, v]) => React__default.default.createElement(
|
|
101
106
|
"div",
|
|
102
107
|
{ key: k, style: S.row },
|
|
103
|
-
|
|
104
|
-
|
|
108
|
+
React__default.default.createElement("code", { style: { ...S.varKey, color: "#f59e0b" } }, `data-${k}`),
|
|
109
|
+
React__default.default.createElement("span", { style: { ...S.varValue, color: "#34d399" } }, `"${v}"`)
|
|
105
110
|
)
|
|
106
111
|
)
|
|
107
112
|
),
|
|
108
113
|
// State names
|
|
109
|
-
inspected.stateNames.length > 0 &&
|
|
114
|
+
inspected.stateNames.length > 0 && React__default.default.createElement(
|
|
110
115
|
"div",
|
|
111
116
|
{ style: S.section },
|
|
112
|
-
|
|
113
|
-
|
|
117
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Reactive States"),
|
|
118
|
+
React__default.default.createElement(
|
|
114
119
|
"div",
|
|
115
120
|
{ style: S.classGrid },
|
|
116
121
|
inspected.stateNames.map(
|
|
117
|
-
(s) =>
|
|
122
|
+
(s) => React__default.default.createElement(
|
|
118
123
|
"code",
|
|
119
124
|
{
|
|
120
125
|
key: s,
|
|
@@ -130,15 +135,15 @@ function InspectorPanel({
|
|
|
130
135
|
)
|
|
131
136
|
),
|
|
132
137
|
// Container breakpoints
|
|
133
|
-
inspected.containerBps.length > 0 &&
|
|
138
|
+
inspected.containerBps.length > 0 && React__default.default.createElement(
|
|
134
139
|
"div",
|
|
135
140
|
{ style: S.section },
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Container Breakpoints"),
|
|
142
|
+
React__default.default.createElement(
|
|
138
143
|
"div",
|
|
139
144
|
{ style: S.classGrid },
|
|
140
145
|
inspected.containerBps.map(
|
|
141
|
-
(bp) =>
|
|
146
|
+
(bp) => React__default.default.createElement(
|
|
142
147
|
"code",
|
|
143
148
|
{ key: bp, style: { ...S.classChip, color: "#818cf8" } },
|
|
144
149
|
bp
|
|
@@ -147,15 +152,15 @@ function InspectorPanel({
|
|
|
147
152
|
)
|
|
148
153
|
),
|
|
149
154
|
// Tailwind classes
|
|
150
|
-
inspected.twClasses.length > 0 &&
|
|
155
|
+
inspected.twClasses.length > 0 && React__default.default.createElement(
|
|
151
156
|
"div",
|
|
152
157
|
{ style: S.section },
|
|
153
|
-
|
|
154
|
-
|
|
158
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Classes"),
|
|
159
|
+
React__default.default.createElement(
|
|
155
160
|
"div",
|
|
156
161
|
{ style: S.classGrid },
|
|
157
162
|
inspected.twClasses.map(
|
|
158
|
-
(cls) =>
|
|
163
|
+
(cls) => React__default.default.createElement(
|
|
159
164
|
"code",
|
|
160
165
|
{ key: cls, style: S.classChip, title: inspected.atomicMap[cls] },
|
|
161
166
|
cls
|
|
@@ -164,7 +169,7 @@ function InspectorPanel({
|
|
|
164
169
|
)
|
|
165
170
|
),
|
|
166
171
|
// Copy
|
|
167
|
-
|
|
172
|
+
React__default.default.createElement(
|
|
168
173
|
"button",
|
|
169
174
|
{
|
|
170
175
|
style: S.copyBtn,
|
|
@@ -188,8 +193,8 @@ function InspectorPanel({
|
|
|
188
193
|
);
|
|
189
194
|
}
|
|
190
195
|
function StatePanel() {
|
|
191
|
-
const [entries, setEntries] = useState([]);
|
|
192
|
-
useEffect(() => {
|
|
196
|
+
const [entries, setEntries] = React.useState([]);
|
|
197
|
+
React.useEffect(() => {
|
|
193
198
|
const refresh = () => {
|
|
194
199
|
const reg = window.__TW_STATE_REGISTRY__;
|
|
195
200
|
setEntries(reg ? Array.from(reg.values()) : []);
|
|
@@ -199,54 +204,54 @@ function StatePanel() {
|
|
|
199
204
|
return () => clearInterval(interval);
|
|
200
205
|
}, []);
|
|
201
206
|
if (entries.length === 0) {
|
|
202
|
-
return
|
|
207
|
+
return React__default.default.createElement(
|
|
203
208
|
"div",
|
|
204
209
|
{ style: S.emptyPanel },
|
|
205
|
-
|
|
210
|
+
React__default.default.createElement(
|
|
206
211
|
"span",
|
|
207
212
|
{ style: { opacity: 0.4 } },
|
|
208
213
|
"No state-enabled components found."
|
|
209
214
|
),
|
|
210
|
-
|
|
211
|
-
|
|
215
|
+
React__default.default.createElement("br", null),
|
|
216
|
+
React__default.default.createElement(
|
|
212
217
|
"span",
|
|
213
218
|
{ style: { opacity: 0.3, fontSize: "11px" } },
|
|
214
219
|
'Use tw.button({ state: { active: "..." } }) to register.'
|
|
215
220
|
)
|
|
216
221
|
);
|
|
217
222
|
}
|
|
218
|
-
return
|
|
223
|
+
return React__default.default.createElement(
|
|
219
224
|
"div",
|
|
220
225
|
{ style: S.scrollArea },
|
|
221
226
|
entries.map(
|
|
222
|
-
(entry) =>
|
|
227
|
+
(entry) => React__default.default.createElement(
|
|
223
228
|
"div",
|
|
224
229
|
{ key: entry.id, style: S.section },
|
|
225
|
-
|
|
230
|
+
React__default.default.createElement(
|
|
226
231
|
"div",
|
|
227
232
|
{ style: S.sectionTitle },
|
|
228
|
-
|
|
229
|
-
|
|
233
|
+
React__default.default.createElement("span", { style: { color: "#60a5fa" } }, entry.tag.toUpperCase()),
|
|
234
|
+
React__default.default.createElement(
|
|
230
235
|
"span",
|
|
231
236
|
{ style: { marginLeft: "8px", color: "#52525b", fontSize: "10px" } },
|
|
232
237
|
entry.id
|
|
233
238
|
)
|
|
234
239
|
),
|
|
235
|
-
|
|
240
|
+
React__default.default.createElement(
|
|
236
241
|
"div",
|
|
237
242
|
{ style: S.classGrid },
|
|
238
243
|
entry.states.map(
|
|
239
|
-
(s) =>
|
|
244
|
+
(s) => React__default.default.createElement(
|
|
240
245
|
"code",
|
|
241
246
|
{ key: s, style: { ...S.classChip, color: "#f59e0b" } },
|
|
242
247
|
`data-${s}`
|
|
243
248
|
)
|
|
244
249
|
)
|
|
245
250
|
),
|
|
246
|
-
|
|
251
|
+
React__default.default.createElement(
|
|
247
252
|
"div",
|
|
248
253
|
{ style: { ...S.row, marginTop: "4px" } },
|
|
249
|
-
|
|
254
|
+
React__default.default.createElement(
|
|
250
255
|
"span",
|
|
251
256
|
{
|
|
252
257
|
style: {
|
|
@@ -263,8 +268,8 @@ function StatePanel() {
|
|
|
263
268
|
);
|
|
264
269
|
}
|
|
265
270
|
function ContainerPanel() {
|
|
266
|
-
const [entries, setEntries] = useState([]);
|
|
267
|
-
useEffect(() => {
|
|
271
|
+
const [entries, setEntries] = React.useState([]);
|
|
272
|
+
React.useEffect(() => {
|
|
268
273
|
const refresh = () => {
|
|
269
274
|
const reg = window.__TW_CONTAINER_REGISTRY__;
|
|
270
275
|
setEntries(reg ? Array.from(reg.values()) : []);
|
|
@@ -274,57 +279,57 @@ function ContainerPanel() {
|
|
|
274
279
|
return () => clearInterval(interval);
|
|
275
280
|
}, []);
|
|
276
281
|
if (entries.length === 0) {
|
|
277
|
-
return
|
|
282
|
+
return React__default.default.createElement(
|
|
278
283
|
"div",
|
|
279
284
|
{ style: S.emptyPanel },
|
|
280
|
-
|
|
285
|
+
React__default.default.createElement(
|
|
281
286
|
"span",
|
|
282
287
|
{ style: { opacity: 0.4 } },
|
|
283
288
|
"No container query components found."
|
|
284
289
|
),
|
|
285
|
-
|
|
286
|
-
|
|
290
|
+
React__default.default.createElement("br", null),
|
|
291
|
+
React__default.default.createElement(
|
|
287
292
|
"span",
|
|
288
293
|
{ style: { opacity: 0.3, fontSize: "11px" } },
|
|
289
294
|
'Use tw.div({ container: { md: "flex-row" } }) to register.'
|
|
290
295
|
)
|
|
291
296
|
);
|
|
292
297
|
}
|
|
293
|
-
return
|
|
298
|
+
return React__default.default.createElement(
|
|
294
299
|
"div",
|
|
295
300
|
{ style: S.scrollArea },
|
|
296
301
|
entries.map(
|
|
297
|
-
(entry) =>
|
|
302
|
+
(entry) => React__default.default.createElement(
|
|
298
303
|
"div",
|
|
299
304
|
{ key: entry.id, style: S.section },
|
|
300
|
-
|
|
305
|
+
React__default.default.createElement(
|
|
301
306
|
"div",
|
|
302
307
|
{ style: S.sectionTitle },
|
|
303
|
-
|
|
304
|
-
entry.containerName &&
|
|
308
|
+
React__default.default.createElement("span", { style: { color: "#60a5fa" } }, entry.tag.toUpperCase()),
|
|
309
|
+
entry.containerName && React__default.default.createElement(
|
|
305
310
|
"span",
|
|
306
311
|
{ style: { marginLeft: "6px", color: "#818cf8" } },
|
|
307
312
|
`[${entry.containerName}]`
|
|
308
313
|
),
|
|
309
|
-
|
|
314
|
+
React__default.default.createElement(
|
|
310
315
|
"span",
|
|
311
316
|
{ style: { marginLeft: "8px", color: "#52525b", fontSize: "10px" } },
|
|
312
317
|
entry.id
|
|
313
318
|
)
|
|
314
319
|
),
|
|
315
|
-
|
|
320
|
+
React__default.default.createElement(
|
|
316
321
|
"div",
|
|
317
322
|
null,
|
|
318
323
|
entry.breakpoints.map(
|
|
319
|
-
(bp, i) =>
|
|
324
|
+
(bp, i) => React__default.default.createElement(
|
|
320
325
|
"div",
|
|
321
326
|
{ key: i, style: { ...S.row, marginBottom: "2px" } },
|
|
322
|
-
|
|
327
|
+
React__default.default.createElement(
|
|
323
328
|
"code",
|
|
324
329
|
{ style: { color: "#818cf8", fontSize: "11px" } },
|
|
325
330
|
`\u2265 ${bp.minWidth}`
|
|
326
331
|
),
|
|
327
|
-
|
|
332
|
+
React__default.default.createElement(
|
|
328
333
|
"span",
|
|
329
334
|
{ style: { color: "#6b7280", fontSize: "11px" } },
|
|
330
335
|
bp.classes
|
|
@@ -337,8 +342,8 @@ function ContainerPanel() {
|
|
|
337
342
|
);
|
|
338
343
|
}
|
|
339
344
|
function TokensPanel() {
|
|
340
|
-
const [tokens, setTokens_] = useState({});
|
|
341
|
-
useEffect(() => {
|
|
345
|
+
const [tokens, setTokens_] = React.useState({});
|
|
346
|
+
React.useEffect(() => {
|
|
342
347
|
const engine = window.__TW_TOKEN_ENGINE__;
|
|
343
348
|
if (!engine) return;
|
|
344
349
|
setTokens_(engine.getTokens());
|
|
@@ -347,35 +352,35 @@ function TokensPanel() {
|
|
|
347
352
|
}, []);
|
|
348
353
|
const entries = Object.entries(tokens);
|
|
349
354
|
if (entries.length === 0) {
|
|
350
|
-
return
|
|
355
|
+
return React__default.default.createElement(
|
|
351
356
|
"div",
|
|
352
357
|
{ style: S.emptyPanel },
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
358
|
+
React__default.default.createElement("span", { style: { opacity: 0.4 } }, "No live tokens registered."),
|
|
359
|
+
React__default.default.createElement("br", null),
|
|
360
|
+
React__default.default.createElement(
|
|
356
361
|
"span",
|
|
357
362
|
{ style: { opacity: 0.3, fontSize: "11px" } },
|
|
358
363
|
'Use liveToken({ primary: "#3b82f6" }) to register tokens.'
|
|
359
364
|
)
|
|
360
365
|
);
|
|
361
366
|
}
|
|
362
|
-
return
|
|
367
|
+
return React__default.default.createElement(
|
|
363
368
|
"div",
|
|
364
369
|
{ style: S.scrollArea },
|
|
365
|
-
|
|
370
|
+
React__default.default.createElement(
|
|
366
371
|
"div",
|
|
367
372
|
{ style: { ...S.sectionTitle, padding: "8px 12px 4px", color: "#52525b" } },
|
|
368
373
|
"Click color to edit \xB7 Changes apply instantly"
|
|
369
374
|
),
|
|
370
375
|
entries.map(([name, value]) => {
|
|
371
376
|
const isColor = value.startsWith("#") || value.startsWith("rgb") || value.startsWith("hsl");
|
|
372
|
-
return
|
|
377
|
+
return React__default.default.createElement(
|
|
373
378
|
"div",
|
|
374
379
|
{ key: name, style: { ...S.row, padding: "6px 12px", borderBottom: "1px solid #18181b" } },
|
|
375
|
-
|
|
380
|
+
React__default.default.createElement(
|
|
376
381
|
"div",
|
|
377
382
|
{ style: { display: "flex", alignItems: "center", gap: "8px" } },
|
|
378
|
-
isColor &&
|
|
383
|
+
isColor && React__default.default.createElement("div", {
|
|
379
384
|
style: {
|
|
380
385
|
width: "16px",
|
|
381
386
|
height: "16px",
|
|
@@ -385,9 +390,9 @@ function TokensPanel() {
|
|
|
385
390
|
flexShrink: 0
|
|
386
391
|
}
|
|
387
392
|
}),
|
|
388
|
-
|
|
393
|
+
React__default.default.createElement("span", { style: { color: "#a1a1aa", fontSize: "12px" } }, name)
|
|
389
394
|
),
|
|
390
|
-
isColor ?
|
|
395
|
+
isColor ? React__default.default.createElement("input", {
|
|
391
396
|
type: "color",
|
|
392
397
|
defaultValue: value.startsWith("#") ? value : "#000000",
|
|
393
398
|
style: {
|
|
@@ -401,7 +406,7 @@ function TokensPanel() {
|
|
|
401
406
|
const engine = window.__TW_TOKEN_ENGINE__;
|
|
402
407
|
if (engine) engine.setToken(name, e.target.value);
|
|
403
408
|
}
|
|
404
|
-
}) :
|
|
409
|
+
}) : React__default.default.createElement("input", {
|
|
405
410
|
type: "text",
|
|
406
411
|
defaultValue: value,
|
|
407
412
|
style: {
|
|
@@ -424,16 +429,18 @@ function TokensPanel() {
|
|
|
424
429
|
);
|
|
425
430
|
}
|
|
426
431
|
function AnalyzerPanel() {
|
|
427
|
-
const [scanning, setScanning] = useState(false);
|
|
428
|
-
const [results, setResults] = useState(null);
|
|
429
|
-
const [engineMetrics, setEngineMetrics] = useState(null);
|
|
430
|
-
const [metricsFetching, setMetricsFetching] = useState(false);
|
|
431
|
-
const [metricsError, setMetricsError] = useState(null);
|
|
432
|
-
const loadEngineMetrics = useCallback(async () => {
|
|
432
|
+
const [scanning, setScanning] = React.useState(false);
|
|
433
|
+
const [results, setResults] = React.useState(null);
|
|
434
|
+
const [engineMetrics, setEngineMetrics] = React.useState(null);
|
|
435
|
+
const [metricsFetching, setMetricsFetching] = React.useState(false);
|
|
436
|
+
const [metricsError, setMetricsError] = React.useState(null);
|
|
437
|
+
const loadEngineMetrics = React.useCallback(async () => {
|
|
433
438
|
setMetricsFetching(true);
|
|
434
439
|
setMetricsError(null);
|
|
435
440
|
try {
|
|
436
|
-
const res = await fetch("http://localhost:3000/metrics", {
|
|
441
|
+
const res = await fetch("http://localhost:3000/metrics", {
|
|
442
|
+
signal: AbortSignal.timeout(2e3)
|
|
443
|
+
});
|
|
437
444
|
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
438
445
|
const data = await res.json();
|
|
439
446
|
setEngineMetrics(data);
|
|
@@ -447,7 +454,7 @@ function AnalyzerPanel() {
|
|
|
447
454
|
setMetricsFetching(false);
|
|
448
455
|
}
|
|
449
456
|
}, []);
|
|
450
|
-
const runScan = useCallback(() => {
|
|
457
|
+
const runScan = React.useCallback(() => {
|
|
451
458
|
setScanning(true);
|
|
452
459
|
setTimeout(() => {
|
|
453
460
|
const twEls = document.querySelectorAll("[data-tw]");
|
|
@@ -479,14 +486,14 @@ function AnalyzerPanel() {
|
|
|
479
486
|
setScanning(false);
|
|
480
487
|
}, 100);
|
|
481
488
|
}, []);
|
|
482
|
-
return
|
|
489
|
+
return React__default.default.createElement(
|
|
483
490
|
"div",
|
|
484
491
|
{ style: S.scrollArea },
|
|
485
|
-
|
|
492
|
+
React__default.default.createElement(
|
|
486
493
|
"div",
|
|
487
494
|
{ style: { padding: "10px 12px" } },
|
|
488
495
|
// ── DOM Scan ──────────────────────────────────────────────────────────
|
|
489
|
-
|
|
496
|
+
React__default.default.createElement(
|
|
490
497
|
"button",
|
|
491
498
|
{
|
|
492
499
|
style: { ...S.copyBtn, borderTop: "none", color: "#60a5fa", fontWeight: "600" },
|
|
@@ -496,58 +503,58 @@ function AnalyzerPanel() {
|
|
|
496
503
|
scanning ? "Scanning DOM..." : "\u25B6 Run DOM Scan"
|
|
497
504
|
),
|
|
498
505
|
// ── Engine Metrics (dari dashboard) ───────────────────────────────────
|
|
499
|
-
|
|
506
|
+
React__default.default.createElement(
|
|
500
507
|
"div",
|
|
501
508
|
{ style: { ...S.section, marginTop: "8px" } },
|
|
502
|
-
|
|
509
|
+
React__default.default.createElement(
|
|
503
510
|
"div",
|
|
504
511
|
{ style: { ...S.sectionTitle, marginBottom: "6px" } },
|
|
505
512
|
"\u26A1 Engine Metrics"
|
|
506
513
|
),
|
|
507
|
-
engineMetrics ?
|
|
514
|
+
engineMetrics ? React__default.default.createElement(
|
|
508
515
|
"div",
|
|
509
516
|
null,
|
|
510
|
-
|
|
517
|
+
React__default.default.createElement(
|
|
511
518
|
"div",
|
|
512
519
|
{ style: S.row },
|
|
513
|
-
|
|
514
|
-
|
|
520
|
+
React__default.default.createElement("span", { style: S.varKey }, "Build"),
|
|
521
|
+
React__default.default.createElement(
|
|
515
522
|
"span",
|
|
516
523
|
{ style: { ...S.varValue, color: "#34d399" } },
|
|
517
524
|
engineMetrics.buildMs != null ? `${engineMetrics.buildMs}ms` : "\u2014"
|
|
518
525
|
)
|
|
519
526
|
),
|
|
520
|
-
|
|
527
|
+
React__default.default.createElement(
|
|
521
528
|
"div",
|
|
522
529
|
{ style: S.row },
|
|
523
|
-
|
|
524
|
-
|
|
530
|
+
React__default.default.createElement("span", { style: S.varKey }, "Classes"),
|
|
531
|
+
React__default.default.createElement(
|
|
525
532
|
"span",
|
|
526
533
|
{ style: { ...S.varValue, color: "#34d399" } },
|
|
527
534
|
String(engineMetrics.classCount ?? "\u2014")
|
|
528
535
|
)
|
|
529
536
|
),
|
|
530
|
-
|
|
537
|
+
React__default.default.createElement(
|
|
531
538
|
"div",
|
|
532
539
|
{ style: S.row },
|
|
533
|
-
|
|
534
|
-
|
|
540
|
+
React__default.default.createElement("span", { style: S.varKey }, "Files"),
|
|
541
|
+
React__default.default.createElement(
|
|
535
542
|
"span",
|
|
536
543
|
{ style: { ...S.varValue, color: "#34d399" } },
|
|
537
544
|
String(engineMetrics.fileCount ?? "\u2014")
|
|
538
545
|
)
|
|
539
546
|
),
|
|
540
|
-
|
|
547
|
+
React__default.default.createElement(
|
|
541
548
|
"div",
|
|
542
549
|
{ style: S.row },
|
|
543
|
-
|
|
544
|
-
|
|
550
|
+
React__default.default.createElement("span", { style: S.varKey }, "Mode"),
|
|
551
|
+
React__default.default.createElement(
|
|
545
552
|
"span",
|
|
546
553
|
{ style: { color: "#a1a1aa", fontSize: "11px" } },
|
|
547
554
|
String(engineMetrics.mode ?? "\u2014")
|
|
548
555
|
)
|
|
549
556
|
),
|
|
550
|
-
|
|
557
|
+
React__default.default.createElement(
|
|
551
558
|
"button",
|
|
552
559
|
{
|
|
553
560
|
style: {
|
|
@@ -562,15 +569,15 @@ function AnalyzerPanel() {
|
|
|
562
569
|
},
|
|
563
570
|
"\u21BB Refresh"
|
|
564
571
|
)
|
|
565
|
-
) : metricsError ?
|
|
572
|
+
) : metricsError ? React__default.default.createElement(
|
|
566
573
|
"div",
|
|
567
574
|
null,
|
|
568
|
-
|
|
575
|
+
React__default.default.createElement(
|
|
569
576
|
"div",
|
|
570
577
|
{ style: { color: "#f87171", fontSize: "11px", marginBottom: "6px" } },
|
|
571
578
|
metricsError
|
|
572
579
|
),
|
|
573
|
-
|
|
580
|
+
React__default.default.createElement(
|
|
574
581
|
"button",
|
|
575
582
|
{
|
|
576
583
|
style: { ...S.copyBtn, borderTop: "none", color: "#34d399", fontWeight: "600" },
|
|
@@ -579,23 +586,28 @@ function AnalyzerPanel() {
|
|
|
579
586
|
},
|
|
580
587
|
metricsFetching ? "Connecting..." : "\u21BB Retry"
|
|
581
588
|
)
|
|
582
|
-
) :
|
|
589
|
+
) : React__default.default.createElement(
|
|
583
590
|
"div",
|
|
584
591
|
null,
|
|
585
|
-
|
|
592
|
+
React__default.default.createElement(
|
|
586
593
|
"div",
|
|
587
594
|
{
|
|
588
|
-
style: {
|
|
595
|
+
style: {
|
|
596
|
+
color: "#71717a",
|
|
597
|
+
fontSize: "11px",
|
|
598
|
+
lineHeight: 1.6,
|
|
599
|
+
marginBottom: "6px"
|
|
600
|
+
}
|
|
589
601
|
},
|
|
590
602
|
"Rust analyzer hanya tersedia via CLI atau dashboard.",
|
|
591
|
-
|
|
592
|
-
|
|
603
|
+
React__default.default.createElement("br", null),
|
|
604
|
+
React__default.default.createElement(
|
|
593
605
|
"code",
|
|
594
606
|
{ style: { color: "#52525b", fontSize: "10px" } },
|
|
595
607
|
"tw analyze . | tw dashboard"
|
|
596
608
|
)
|
|
597
609
|
),
|
|
598
|
-
|
|
610
|
+
React__default.default.createElement(
|
|
599
611
|
"button",
|
|
600
612
|
{
|
|
601
613
|
style: { ...S.copyBtn, borderTop: "none", color: "#34d399", fontWeight: "600" },
|
|
@@ -607,46 +619,46 @@ function AnalyzerPanel() {
|
|
|
607
619
|
)
|
|
608
620
|
),
|
|
609
621
|
// ── DOM Scan Results ──────────────────────────────────────────────────
|
|
610
|
-
results &&
|
|
622
|
+
results && React__default.default.createElement(
|
|
611
623
|
"div",
|
|
612
624
|
null,
|
|
613
|
-
|
|
625
|
+
React__default.default.createElement(
|
|
614
626
|
"div",
|
|
615
627
|
{ style: S.section },
|
|
616
|
-
|
|
617
|
-
|
|
628
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Summary"),
|
|
629
|
+
React__default.default.createElement(
|
|
618
630
|
"div",
|
|
619
631
|
{ style: S.row },
|
|
620
|
-
|
|
621
|
-
|
|
632
|
+
React__default.default.createElement("span", { style: S.varKey }, "State components"),
|
|
633
|
+
React__default.default.createElement("span", { style: S.varValue }, String(results.stateCount))
|
|
622
634
|
),
|
|
623
|
-
|
|
635
|
+
React__default.default.createElement(
|
|
624
636
|
"div",
|
|
625
637
|
{ style: S.row },
|
|
626
|
-
|
|
627
|
-
|
|
638
|
+
React__default.default.createElement("span", { style: S.varKey }, "Container components"),
|
|
639
|
+
React__default.default.createElement("span", { style: S.varValue }, String(results.containerCount))
|
|
628
640
|
),
|
|
629
|
-
|
|
641
|
+
React__default.default.createElement(
|
|
630
642
|
"div",
|
|
631
643
|
{ style: S.row },
|
|
632
|
-
|
|
633
|
-
|
|
644
|
+
React__default.default.createElement("span", { style: S.varKey }, "Live tokens"),
|
|
645
|
+
React__default.default.createElement("span", { style: S.varValue }, String(results.tokenCount))
|
|
634
646
|
)
|
|
635
647
|
),
|
|
636
|
-
results.duplicates.length > 0 ?
|
|
648
|
+
results.duplicates.length > 0 ? React__default.default.createElement(
|
|
637
649
|
"div",
|
|
638
650
|
{ style: S.section },
|
|
639
|
-
|
|
651
|
+
React__default.default.createElement("div", { style: S.sectionTitle }, "Duplicate Class Sets"),
|
|
640
652
|
results.duplicates.map(
|
|
641
|
-
(d, i) =>
|
|
653
|
+
(d, i) => React__default.default.createElement(
|
|
642
654
|
"div",
|
|
643
655
|
{ key: i, style: { marginBottom: "8px" } },
|
|
644
|
-
|
|
656
|
+
React__default.default.createElement(
|
|
645
657
|
"div",
|
|
646
658
|
{ style: { color: "#f59e0b", fontSize: "11px", marginBottom: "2px" } },
|
|
647
659
|
d.names.join(", ")
|
|
648
660
|
),
|
|
649
|
-
|
|
661
|
+
React__default.default.createElement(
|
|
650
662
|
"code",
|
|
651
663
|
{
|
|
652
664
|
style: {
|
|
@@ -659,10 +671,10 @@ function AnalyzerPanel() {
|
|
|
659
671
|
)
|
|
660
672
|
)
|
|
661
673
|
)
|
|
662
|
-
) :
|
|
674
|
+
) : React__default.default.createElement(
|
|
663
675
|
"div",
|
|
664
676
|
{ style: S.section },
|
|
665
|
-
|
|
677
|
+
React__default.default.createElement(
|
|
666
678
|
"span",
|
|
667
679
|
{ style: { color: "#34d399", fontSize: "12px" } },
|
|
668
680
|
"\u2713 No duplicate class sets in current DOM"
|
|
@@ -674,16 +686,16 @@ function AnalyzerPanel() {
|
|
|
674
686
|
}
|
|
675
687
|
function TwDevTools() {
|
|
676
688
|
if (process.env.NODE_ENV === "production") return null;
|
|
677
|
-
const [state, setState] = useState({
|
|
689
|
+
const [state, setState] = React.useState({
|
|
678
690
|
open: false,
|
|
679
691
|
panel: "inspector",
|
|
680
692
|
pinned: false,
|
|
681
693
|
inspected: null,
|
|
682
694
|
position: { x: 0, y: 0 }
|
|
683
695
|
});
|
|
684
|
-
const overlayRef = useRef(null);
|
|
696
|
+
const overlayRef = React.useRef(null);
|
|
685
697
|
const isInspecting = state.open && state.panel === "inspector";
|
|
686
|
-
useEffect(() => {
|
|
698
|
+
React.useEffect(() => {
|
|
687
699
|
const onKey = (e) => {
|
|
688
700
|
if (e.ctrlKey && e.shiftKey && e.key === "D") {
|
|
689
701
|
e.preventDefault();
|
|
@@ -700,7 +712,7 @@ function TwDevTools() {
|
|
|
700
712
|
window.addEventListener("keydown", onKey);
|
|
701
713
|
return () => window.removeEventListener("keydown", onKey);
|
|
702
714
|
}, []);
|
|
703
|
-
const onMouseMove = useCallback(
|
|
715
|
+
const onMouseMove = React.useCallback(
|
|
704
716
|
(e) => {
|
|
705
717
|
if (!isInspecting || state.pinned) return;
|
|
706
718
|
const twEl = findNearestTwElement(e.target);
|
|
@@ -728,7 +740,7 @@ function TwDevTools() {
|
|
|
728
740
|
},
|
|
729
741
|
[isInspecting, state.pinned]
|
|
730
742
|
);
|
|
731
|
-
const onClick = useCallback(
|
|
743
|
+
const onClick = React.useCallback(
|
|
732
744
|
(e) => {
|
|
733
745
|
if (!isInspecting) return;
|
|
734
746
|
if (overlayRef.current?.contains(e.target)) return;
|
|
@@ -736,7 +748,7 @@ function TwDevTools() {
|
|
|
736
748
|
},
|
|
737
749
|
[isInspecting]
|
|
738
750
|
);
|
|
739
|
-
useEffect(() => {
|
|
751
|
+
React.useEffect(() => {
|
|
740
752
|
if (!isInspecting) return;
|
|
741
753
|
window.addEventListener("mousemove", onMouseMove);
|
|
742
754
|
window.addEventListener("click", onClick);
|
|
@@ -746,7 +758,7 @@ function TwDevTools() {
|
|
|
746
758
|
};
|
|
747
759
|
}, [isInspecting, onMouseMove, onClick]);
|
|
748
760
|
if (!state.open) {
|
|
749
|
-
return
|
|
761
|
+
return React__default.default.createElement(
|
|
750
762
|
"button",
|
|
751
763
|
{
|
|
752
764
|
onClick: () => setState((s) => ({ ...s, open: true })),
|
|
@@ -763,11 +775,11 @@ function TwDevTools() {
|
|
|
763
775
|
{ id: "tokens", label: "Tokens", icon: "\u{1F3A8}" },
|
|
764
776
|
{ id: "analyzer", label: "Analyzer", icon: "\u{1F4CA}" }
|
|
765
777
|
];
|
|
766
|
-
return
|
|
778
|
+
return React__default.default.createElement(
|
|
767
779
|
"div",
|
|
768
780
|
{ style: S.root },
|
|
769
781
|
// ── Element highlight (inspector only) ──────────────────────────────
|
|
770
|
-
isInspecting && state.inspected &&
|
|
782
|
+
isInspecting && state.inspected && React__default.default.createElement("div", {
|
|
771
783
|
style: {
|
|
772
784
|
...S.highlight,
|
|
773
785
|
top: state.inspected.rect.top + window.scrollY,
|
|
@@ -777,7 +789,7 @@ function TwDevTools() {
|
|
|
777
789
|
}
|
|
778
790
|
}),
|
|
779
791
|
// ── Component name label ────────────────────────────────────────────
|
|
780
|
-
isInspecting && state.inspected &&
|
|
792
|
+
isInspecting && state.inspected && React__default.default.createElement(
|
|
781
793
|
"div",
|
|
782
794
|
{
|
|
783
795
|
style: {
|
|
@@ -797,7 +809,7 @@ function TwDevTools() {
|
|
|
797
809
|
state.inspected.componentName
|
|
798
810
|
),
|
|
799
811
|
// ── Main DevTools panel ─────────────────────────────────────────────
|
|
800
|
-
|
|
812
|
+
React__default.default.createElement(
|
|
801
813
|
"div",
|
|
802
814
|
{
|
|
803
815
|
ref: overlayRef,
|
|
@@ -814,19 +826,19 @@ function TwDevTools() {
|
|
|
814
826
|
}
|
|
815
827
|
},
|
|
816
828
|
// Header
|
|
817
|
-
|
|
829
|
+
React__default.default.createElement(
|
|
818
830
|
"div",
|
|
819
831
|
{ style: S.header },
|
|
820
|
-
|
|
832
|
+
React__default.default.createElement(
|
|
821
833
|
"span",
|
|
822
834
|
{ style: S.componentName },
|
|
823
835
|
state.inspected && state.panel === "inspector" ? state.inspected.componentName : "tailwind-styled-v4"
|
|
824
836
|
),
|
|
825
|
-
|
|
837
|
+
React__default.default.createElement(
|
|
826
838
|
"div",
|
|
827
839
|
{ style: S.headerActions },
|
|
828
|
-
state.pinned &&
|
|
829
|
-
|
|
840
|
+
state.pinned && React__default.default.createElement("span", { style: S.pinBadge }, "\u{1F4CC}"),
|
|
841
|
+
React__default.default.createElement(
|
|
830
842
|
"button",
|
|
831
843
|
{
|
|
832
844
|
style: S.closeBtn,
|
|
@@ -837,11 +849,11 @@ function TwDevTools() {
|
|
|
837
849
|
)
|
|
838
850
|
),
|
|
839
851
|
// Tab bar
|
|
840
|
-
|
|
852
|
+
React__default.default.createElement(
|
|
841
853
|
"div",
|
|
842
854
|
{ style: S.tabBar },
|
|
843
855
|
PANELS.map(
|
|
844
|
-
(p) =>
|
|
856
|
+
(p) => React__default.default.createElement(
|
|
845
857
|
"button",
|
|
846
858
|
{
|
|
847
859
|
key: p.id,
|
|
@@ -859,22 +871,22 @@ function TwDevTools() {
|
|
|
859
871
|
)
|
|
860
872
|
),
|
|
861
873
|
// Panel content
|
|
862
|
-
state.panel === "inspector" &&
|
|
874
|
+
state.panel === "inspector" && React__default.default.createElement(InspectorPanel, {
|
|
863
875
|
inspected: state.inspected,
|
|
864
876
|
position: state.position,
|
|
865
877
|
pinned: state.pinned
|
|
866
878
|
}),
|
|
867
|
-
state.panel === "state" &&
|
|
868
|
-
state.panel === "container" &&
|
|
869
|
-
state.panel === "tokens" &&
|
|
870
|
-
state.panel === "analyzer" &&
|
|
879
|
+
state.panel === "state" && React__default.default.createElement(StatePanel, null),
|
|
880
|
+
state.panel === "container" && React__default.default.createElement(ContainerPanel, null),
|
|
881
|
+
state.panel === "tokens" && React__default.default.createElement(TokensPanel, null),
|
|
882
|
+
state.panel === "analyzer" && React__default.default.createElement(AnalyzerPanel, null)
|
|
871
883
|
),
|
|
872
884
|
// ── Status bar ──────────────────────────────────────────────────────
|
|
873
|
-
|
|
885
|
+
React__default.default.createElement(
|
|
874
886
|
"div",
|
|
875
887
|
{ style: S.statusBar },
|
|
876
|
-
|
|
877
|
-
|
|
888
|
+
React__default.default.createElement("span", null, "\u{1F3A8} tailwind-styled-v4 DevTools"),
|
|
889
|
+
React__default.default.createElement(
|
|
878
890
|
"span",
|
|
879
891
|
{ style: { opacity: 0.6, fontSize: "10px" } },
|
|
880
892
|
state.pinned ? "Click to unpin" : isInspecting ? "Hover to inspect \xB7 Click to pin \xB7 1-5 switch panel \xB7 Esc close" : "Ctrl+Shift+D close \xB7 1-5 switch panel"
|
|
@@ -1056,9 +1068,10 @@ var S = {
|
|
|
1056
1068
|
};
|
|
1057
1069
|
function DevToolsProvider() {
|
|
1058
1070
|
if (process.env.NODE_ENV === "production") return null;
|
|
1059
|
-
return
|
|
1071
|
+
return React__default.default.createElement(TwDevTools);
|
|
1060
1072
|
}
|
|
1061
1073
|
|
|
1062
|
-
|
|
1074
|
+
exports.DevToolsProvider = DevToolsProvider;
|
|
1075
|
+
exports.TwDevTools = TwDevTools;
|
|
1063
1076
|
//# sourceMappingURL=devtools.js.map
|
|
1064
1077
|
//# sourceMappingURL=devtools.js.map
|