@multiplatform.one/theme 8.4.0 → 8.6.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 (125) hide show
  1. package/dist/cjs/theme/devtools/ColorLineVisualizer.native.js +5 -232
  2. package/dist/cjs/theme/devtools/ColorLineVisualizer.native.js.map +1 -1
  3. package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.native.js +5 -1786
  4. package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.native.js.map +1 -1
  5. package/dist/esm/audit/constraintAudit.native.js.map +1 -1
  6. package/dist/esm/audit/designTokens.native.js.map +1 -1
  7. package/dist/esm/audit/diffReport.native.js.map +1 -1
  8. package/dist/esm/audit/index.native.js.map +1 -1
  9. package/dist/esm/audit/themeMatrix.native.js.map +1 -1
  10. package/dist/esm/dates.native.js.map +1 -1
  11. package/dist/esm/devWarn.native.js.map +1 -1
  12. package/dist/esm/expo.native.js.map +1 -1
  13. package/dist/esm/figma/figmaTokens.native.js.map +1 -1
  14. package/dist/esm/font.native.js.map +1 -1
  15. package/dist/esm/fonts/createFontLoader.native.js.map +1 -1
  16. package/dist/esm/fonts/index.native.js.map +1 -1
  17. package/dist/esm/fonts/interFaces.native.js.map +1 -1
  18. package/dist/esm/fonts/types.native.js.map +1 -1
  19. package/dist/esm/index.gnome.native.js.map +1 -1
  20. package/dist/esm/index.native.js.map +1 -1
  21. package/dist/esm/keyboardFocusRing.native.js.map +1 -1
  22. package/dist/esm/menuRow.native.js.map +1 -1
  23. package/dist/esm/nativeTwins.native.js.map +1 -1
  24. package/dist/esm/numbers.native.js.map +1 -1
  25. package/dist/esm/theme/Heading.native.js.map +1 -1
  26. package/dist/esm/theme/IconSlot.native.js.map +1 -1
  27. package/dist/esm/theme/Intent.native.js.map +1 -1
  28. package/dist/esm/theme/Preset.native.js.map +1 -1
  29. package/dist/esm/theme/PresetContext.native.js.map +1 -1
  30. package/dist/esm/theme/Surface.native.js.map +1 -1
  31. package/dist/esm/theme/Text.native.js.map +1 -1
  32. package/dist/esm/theme/Tint.native.js.map +1 -1
  33. package/dist/esm/theme/accentInk.native.js.map +1 -1
  34. package/dist/esm/theme/activateThemeConfig.native.js.map +1 -1
  35. package/dist/esm/theme/animations/css.native.js.map +1 -1
  36. package/dist/esm/theme/animations/index.native.js.map +1 -1
  37. package/dist/esm/theme/animations/reactNative.native.js.map +1 -1
  38. package/dist/esm/theme/chartPalette.native.js.map +1 -1
  39. package/dist/esm/theme/colorRules.native.js.map +1 -1
  40. package/dist/esm/theme/controlTiers.native.js.map +1 -1
  41. package/dist/esm/theme/cookies.native.js.map +1 -1
  42. package/dist/esm/theme/createDefaultThemeConfig.native.js.map +1 -1
  43. package/dist/esm/theme/createThemes.native.js.map +1 -1
  44. package/dist/esm/theme/dedupeInherited.native.js.map +1 -1
  45. package/dist/esm/theme/defaults/accent.native.js.map +1 -1
  46. package/dist/esm/theme/defaults/base.native.js.map +1 -1
  47. package/dist/esm/theme/defaults/builderOptions.native.js.map +1 -1
  48. package/dist/esm/theme/defaults/categoryFonts.native.js.map +1 -1
  49. package/dist/esm/theme/defaults/fonts.native.js.map +1 -1
  50. package/dist/esm/theme/defaults/house.native.js.map +1 -1
  51. package/dist/esm/theme/defaults/index.native.js.map +1 -1
  52. package/dist/esm/theme/devtools/ColorLineVisualizer.native.js +2 -218
  53. package/dist/esm/theme/devtools/ColorLineVisualizer.native.js.map +1 -1
  54. package/dist/esm/theme/devtools/ThemeDevtoolsPanel.native.js +2 -1783
  55. package/dist/esm/theme/devtools/ThemeDevtoolsPanel.native.js.map +1 -1
  56. package/dist/esm/theme/devtools/animationOptions.native.js.map +1 -1
  57. package/dist/esm/theme/devtools/buildSnapshot.native.js.map +1 -1
  58. package/dist/esm/theme/devtools/index.native.js.map +1 -1
  59. package/dist/esm/theme/devtools/knobIcons.native.js.map +1 -1
  60. package/dist/esm/theme/devtools/vizConstants.native.js.map +1 -1
  61. package/dist/esm/theme/dynamicType.native.js.map +1 -1
  62. package/dist/esm/theme/fieldFocus.native.js.map +1 -1
  63. package/dist/esm/theme/fillContrast.native.js.map +1 -1
  64. package/dist/esm/theme/focusState.native.js.map +1 -1
  65. package/dist/esm/theme/fontCategoryMetrics.native.js.map +1 -1
  66. package/dist/esm/theme/fontCategoryStacks.native.js.map +1 -1
  67. package/dist/esm/theme/glyphPaint.native.js.map +1 -1
  68. package/dist/esm/theme/glyphTint.native.js.map +1 -1
  69. package/dist/esm/theme/groupGeometry.native.js.map +1 -1
  70. package/dist/esm/theme/index.native.js.map +1 -1
  71. package/dist/esm/theme/intents.native.js.map +1 -1
  72. package/dist/esm/theme/knobs.native.js.map +1 -1
  73. package/dist/esm/theme/layoutTokens.native.js.map +1 -1
  74. package/dist/esm/theme/listRows.native.js.map +1 -1
  75. package/dist/esm/theme/mergedTokens.native.js.map +1 -1
  76. package/dist/esm/theme/motion.native.js.map +1 -1
  77. package/dist/esm/theme/motionStops.native.js.map +1 -1
  78. package/dist/esm/theme/motionTiming.native.js.map +1 -1
  79. package/dist/esm/theme/nativeMonoFamily.native.js.map +1 -1
  80. package/dist/esm/theme/nativePresetSwitch.native.js.map +1 -1
  81. package/dist/esm/theme/nativeSchemePreference.native.js.map +1 -1
  82. package/dist/esm/theme/nativeTheme.native.js.map +1 -1
  83. package/dist/esm/theme/nativeTransitionProps.native.js.map +1 -1
  84. package/dist/esm/theme/overlaySurfaces.native.js.map +1 -1
  85. package/dist/esm/theme/pageGutter.native.js.map +1 -1
  86. package/dist/esm/theme/preset.types.native.js.map +1 -1
  87. package/dist/esm/theme/presetPreview.native.js.map +1 -1
  88. package/dist/esm/theme/presetStore.native.js.map +1 -1
  89. package/dist/esm/theme/presetUserSync.native.js.map +1 -1
  90. package/dist/esm/theme/presets.native.js.map +1 -1
  91. package/dist/esm/theme/radiusClass.native.js.map +1 -1
  92. package/dist/esm/theme/radiusClassTable.generated.native.js.map +1 -1
  93. package/dist/esm/theme/ramps.native.js.map +1 -1
  94. package/dist/esm/theme/readableColor.native.js.map +1 -1
  95. package/dist/esm/theme/recipeInputs.native.js.map +1 -1
  96. package/dist/esm/theme/recipes.native.js.map +1 -1
  97. package/dist/esm/theme/resolveKnobs.native.js.map +1 -1
  98. package/dist/esm/theme/scale/activeScale.native.js.map +1 -1
  99. package/dist/esm/theme/scale/deriveRecipeInputs.native.js.map +1 -1
  100. package/dist/esm/theme/scale/index.native.js.map +1 -1
  101. package/dist/esm/theme/scale/scaleAttribute.native.js.map +1 -1
  102. package/dist/esm/theme/scale/scaleCss.native.js.map +1 -1
  103. package/dist/esm/theme/scale/scaleFonts.native.js.map +1 -1
  104. package/dist/esm/theme/scale/scaleInputs.native.js.map +1 -1
  105. package/dist/esm/theme/scale/themeScales.native.js.map +1 -1
  106. package/dist/esm/theme/scale/useActiveScale.native.js.map +1 -1
  107. package/dist/esm/theme/schemeStore.native.js.map +1 -1
  108. package/dist/esm/theme/shared.native.js.map +1 -1
  109. package/dist/esm/theme/sizeRecipes.native.js.map +1 -1
  110. package/dist/esm/theme/subsetThemes.native.js.map +1 -1
  111. package/dist/esm/theme/themeValue.native.js.map +1 -1
  112. package/dist/esm/theme/tileSizes.native.js.map +1 -1
  113. package/dist/esm/theme/tintHues.native.js.map +1 -1
  114. package/dist/esm/theme/tokenNumber.native.js.map +1 -1
  115. package/dist/esm/theme/touchManipulation.native.js.map +1 -1
  116. package/dist/esm/theme/useResolvedKnobs.native.js.map +1 -1
  117. package/dist/esm/theme/useTouchSurface.native.js.map +1 -1
  118. package/dist/esm/theme/v3TokenRoles.native.js.map +1 -1
  119. package/package.json +5 -5
  120. package/src/theme/devtools/ColorLineVisualizer.native.tsx +8 -0
  121. package/src/theme/devtools/ThemeDevtoolsPanel.native.tsx +8 -0
  122. package/types/theme/devtools/ColorLineVisualizer.native.d.ts +5 -0
  123. package/types/theme/devtools/ColorLineVisualizer.native.d.ts.map +1 -0
  124. package/types/theme/devtools/ThemeDevtoolsPanel.native.d.ts +5 -0
  125. package/types/theme/devtools/ThemeDevtoolsPanel.native.d.ts.map +1 -0
@@ -1,1786 +1,5 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
- import { writeToClipboard } from "@multiplatform.one/platform";
4
- import { storage } from "@multiplatform.one/store";
5
- import { useTheme } from "../useTheme.native.js";
6
- import { defaultKnobs, FillStyle, BorderRadius, CornerSmoothing, BorderWidth, Elevation, TextAccent, HeadingFont, BodyFont, FontWeight, FieldLabelPlacement, RequiredMarking, TableZebra, BulkBarPlacement, SelectAllScope, TimestampStyle, DisabledStyle, FormAutofocus, interactionStates } from "../knobs.native.js";
7
- import { getPresetNames, getPreset } from "../shared.native.js";
8
- import { defaultScaleInputs } from "../scale/scaleInputs.native.js";
9
- import { extractAnimationNames } from "./animationOptions.native.js";
10
- import { ColorLineVisualizer } from "./ColorLineVisualizer.native.js";
11
- import { buildSnapshot } from "./buildSnapshot.native.js";
12
- import { fillIcon as _fillIcon, borderRadiusIcon as _borderRadiusIcon, cornerSmoothingIcon as _cornerSmoothingIcon, borderWidthIcon as _borderWidthIcon, elevationIcon as _elevationIcon, textAccentIcon as _textAccentIcon, headingFontIcon as _headingFontIcon, bodyFontIcon as _bodyFontIcon, fontWeightIcon as _fontWeightIcon, modeIcon as _modeIcon, fieldLabelPlacementIcon as _fieldLabelPlacementIcon, requiredMarkingIcon as _requiredMarkingIcon, tableZebraIcon as _tableZebraIcon, bulkBarPlacementIcon as _bulkBarPlacementIcon, selectAllScopeIcon as _selectAllScopeIcon, timestampStyleIcon as _timestampStyleIcon, disabledStyleIcon as _disabledStyleIcon, formAutofocusIcon as _formAutofocusIcon } from "./knobIcons.native.js";
13
- function _type_of(obj) {
14
- "@swc/helpers - typeof";
15
-
16
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
17
- }
18
- var tanstackDevtoolsSettings = "tanstack_devtools_settings";
19
- var pinnedKnobsStorageKey = "ts-theme-pinned";
20
- var expandedKnobsStorageKey = "ts-theme-expanded";
21
- var stateDisplayLabels = {
22
- hover: "hover",
23
- press: "press",
24
- focus: "focus",
25
- focusVisible: "focusV"
26
- };
27
- var knobKeys = ["fillStyle", "borderRadius", "cornerSmoothing", "borderWidth", "elevation", "textAccent", "headingFont", "bodyFont", "fontWeight", "animation", "fieldLabelPlacement", "requiredMarking", "tableZebra", "bulkBarPlacement", "selectAllScope", "timestampStyle", "disabledStyle", "formAutofocus"];
28
- var stateKnobKeys = ["fillStyle", "borderRadius", "borderWidth", "elevation", "textAccent", "headingFont", "bodyFont", "fontWeight"];
29
- var designProfiles = {
30
- Bootstrap: {
31
- fillStyle: "filled",
32
- borderRadius: "small",
33
- borderWidth: "medium",
34
- elevation: "none",
35
- textAccent: "high",
36
- headingFont: "sans-serif",
37
- bodyFont: "sans-serif",
38
- fontWeight: "regular",
39
- animation: "quick",
40
- color: "blue"
41
- },
42
- "Material UI": {
43
- fillStyle: "filled",
44
- borderRadius: "large",
45
- borderWidth: "none",
46
- elevation: "small",
47
- textAccent: "high",
48
- headingFont: "sans-serif",
49
- bodyFont: "sans-serif",
50
- fontWeight: "bold",
51
- animation: "medium",
52
- color: "purple",
53
- "hover.elevation": "medium"
54
- },
55
- "GTK4 / Adwaita": {
56
- fillStyle: "filled",
57
- borderRadius: "small",
58
- borderWidth: "small",
59
- elevation: "none",
60
- textAccent: "high",
61
- headingFont: "sans-serif",
62
- bodyFont: "sans-serif",
63
- fontWeight: "regular",
64
- animation: "quick",
65
- color: "gray"
66
- },
67
- "Fluent UI": {
68
- fillStyle: "filled",
69
- borderRadius: "small",
70
- borderWidth: "small",
71
- elevation: "small",
72
- textAccent: "high",
73
- headingFont: "sans-serif",
74
- bodyFont: "sans-serif",
75
- fontWeight: "regular",
76
- animation: "quick",
77
- color: "blue",
78
- "hover.elevation": "small"
79
- }
80
- };
81
- var profileNames = ["", ...Object.keys(designProfiles)];
82
- function formatPresetOption(name) {
83
- var _ref, _ref1;
84
- var _getPreset;
85
- if (name === "") return "custom";
86
- var scale = (_getPreset = getPreset(name)) === null || _getPreset === void 0 ? void 0 : _getPreset.scale;
87
- var control = (_ref = scale === null || scale === void 0 ? void 0 : scale.control) !== null && _ref !== void 0 ? _ref : defaultScaleInputs.control;
88
- var type = (_ref1 = scale === null || scale === void 0 ? void 0 : scale.type) !== null && _ref1 !== void 0 ? _ref1 : defaultScaleInputs.type;
89
- return `${name} \xB7 ${control}/${type}`;
90
- }
91
- function createStyles(isDark) {
92
- return {
93
- panel: {
94
- fontFamily: "system-ui, -apple-system, sans-serif",
95
- // Not the host page's tracking, which follows the app's bodyFont knob.
96
- letterSpacing: "normal",
97
- fontSize: 13,
98
- color: isDark ? "#e8e8e8" : "#1a1a1a",
99
- padding: 12,
100
- display: "flex",
101
- flexDirection: "column",
102
- gap: 12,
103
- height: "100%",
104
- overflowY: "auto",
105
- background: "transparent"
106
- },
107
- knobsRow: {
108
- display: "flex",
109
- flexDirection: "row",
110
- flexWrap: "wrap",
111
- alignItems: "flex-start",
112
- alignContent: "flex-start",
113
- gap: 8
114
- },
115
- card: {
116
- display: "flex",
117
- flexDirection: "column",
118
- gap: 4,
119
- padding: "6px 10px",
120
- borderRadius: 6,
121
- border: isDark ? "1px solid #333" : "1px solid #e0e0e0",
122
- background: isDark ? "#1e1e1e" : "#fafafa",
123
- minWidth: 140
124
- },
125
- label: {
126
- fontSize: 11,
127
- fontWeight: 500,
128
- color: isDark ? "#888" : "#777",
129
- whiteSpace: "nowrap",
130
- textTransform: "uppercase",
131
- letterSpacing: "0.04em"
132
- },
133
- select: {
134
- padding: "3px 6px",
135
- borderRadius: 4,
136
- border: isDark ? "1px solid #444" : "1px solid #ccc",
137
- background: isDark ? "#2a2a2a" : "#fff",
138
- color: isDark ? "#e8e8e8" : "#1a1a1a",
139
- cursor: "pointer",
140
- fontSize: 13,
141
- fontFamily: "inherit",
142
- outline: "none",
143
- width: "100%"
144
- },
145
- toggleRow: {
146
- display: "flex",
147
- alignItems: "center",
148
- gap: 6
149
- },
150
- toggle: function toggle(active) {
151
- return {
152
- width: 36,
153
- height: 20,
154
- borderRadius: 10,
155
- background: active ? "#7c6cff" : isDark ? "#444" : "#ccc",
156
- position: "relative",
157
- cursor: "pointer",
158
- border: "none",
159
- padding: 0,
160
- transition: "background 0.2s"
161
- };
162
- },
163
- toggleKnob: function toggleKnob(active) {
164
- return {
165
- width: 16,
166
- height: 16,
167
- borderRadius: 8,
168
- background: "#fff",
169
- position: "absolute",
170
- top: 2,
171
- left: active ? 18 : 2,
172
- transition: "left 0.2s"
173
- };
174
- },
175
- iconBtn: function iconBtn(active) {
176
- return {
177
- width: 30,
178
- height: 30,
179
- borderRadius: 6,
180
- border: active ? `1.5px solid ${isDark ? "rgba(255,255,255,0.5)" : "rgba(0,0,0,0.35)"}` : `1px solid ${isDark ? "rgba(255,255,255,0.08)" : "rgba(0,0,0,0.08)"}`,
181
- background: active ? isDark ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.06)" : "transparent",
182
- cursor: "pointer",
183
- display: "flex",
184
- alignItems: "center",
185
- justifyContent: "center",
186
- padding: 0,
187
- transition: "all 0.15s ease",
188
- outline: "none"
189
- };
190
- },
191
- iconRow: {
192
- display: "flex",
193
- gap: 2,
194
- justifyContent: "flex-end"
195
- },
196
- resetBtn: {
197
- padding: "4px 10px",
198
- borderRadius: 4,
199
- border: isDark ? "1px solid #555" : "1px solid #ccc",
200
- background: isDark ? "#2a2a2a" : "#f5f5f5",
201
- color: isDark ? "#e8e8e8" : "#1a1a1a",
202
- cursor: "pointer",
203
- fontSize: 11,
204
- fontFamily: "inherit",
205
- fontWeight: 500,
206
- transition: "all 0.15s",
207
- whiteSpace: "nowrap"
208
- }
209
- };
210
- }
211
- function PinCheckbox(param) {
212
- var {
213
- pinned,
214
- onToggle,
215
- isDark
216
- } = param;
217
- return /* @__PURE__ */_jsx("label", {
218
- title: pinned ? "Pinned. Random won't change this" : "Pin to protect from random",
219
- style: {
220
- position: "absolute",
221
- top: 3,
222
- right: 3,
223
- display: "flex",
224
- alignItems: "center",
225
- cursor: "pointer",
226
- zIndex: 1,
227
- opacity: pinned ? 1 : 0,
228
- transition: "opacity 0.15s"
229
- },
230
- className: "pin-checkbox",
231
- children: /* @__PURE__ */_jsx("input", {
232
- type: "checkbox",
233
- checked: pinned,
234
- onChange: onToggle,
235
- style: {
236
- width: 10,
237
- height: 10,
238
- margin: 0,
239
- cursor: "pointer",
240
- accentColor: isDark ? "#e8e8e8" : "#1a1a1a"
241
- }
242
- })
243
- });
244
- }
245
- function Dropdown(param) {
246
- var {
247
- label,
248
- options,
249
- value,
250
- onChange,
251
- format,
252
- styles,
253
- pinned,
254
- onTogglePin,
255
- onUnset,
256
- isDark,
257
- children
258
- } = param;
259
- var optionStyle = isDark ? {
260
- backgroundColor: "#1f1f1f",
261
- color: "#e8e8e8"
262
- } : {
263
- backgroundColor: "#ffffff",
264
- color: "#1a1a1a"
265
- };
266
- return /* @__PURE__ */_jsxs("div", {
267
- style: {
268
- ...styles.card,
269
- position: "relative"
270
- },
271
- onMouseEnter: function onMouseEnter(e) {
272
- var element = e.currentTarget.querySelector(".pin-checkbox");
273
- if (element && !pinned) element.style.opacity = "0.5";
274
- },
275
- onMouseLeave: function onMouseLeave(e) {
276
- var element = e.currentTarget.querySelector(".pin-checkbox");
277
- if (element && !pinned) element.style.opacity = "0";
278
- },
279
- children: [onTogglePin && /* @__PURE__ */_jsx(PinCheckbox, {
280
- pinned: !!pinned,
281
- onToggle: onTogglePin,
282
- isDark: !!isDark
283
- }), /* @__PURE__ */_jsx("span", {
284
- style: styles.label,
285
- children: label
286
- }), /* @__PURE__ */_jsxs("select", {
287
- style: {
288
- ...styles.select,
289
- colorScheme: isDark ? "dark" : "light"
290
- },
291
- value: value === void 0 ? "__unset__" : String(value),
292
- onChange: function onChange1(e) {
293
- var rawValue = e.target.value;
294
- if (rawValue === "__unset__") {
295
- onUnset === null || onUnset === void 0 ? void 0 : onUnset();
296
- return;
297
- }
298
- var matchedOption = options.find(function (option) {
299
- return String(option) === rawValue;
300
- });
301
- if (matchedOption !== void 0) onChange(matchedOption);
302
- },
303
- children: [onUnset && /* @__PURE__ */_jsx("option", {
304
- value: "__unset__",
305
- style: optionStyle,
306
- children: "unset (inherit)"
307
- }), options.map(function (opt) {
308
- return /* @__PURE__ */_jsx("option", {
309
- value: String(opt),
310
- style: optionStyle,
311
- children: format ? format(opt) : String(opt)
312
- }, String(opt));
313
- })]
314
- }), children]
315
- });
316
- }
317
- function CollapseButton(param) {
318
- var {
319
- expanded,
320
- onToggle,
321
- isDark
322
- } = param;
323
- return /* @__PURE__ */_jsx("button", {
324
- type: "button",
325
- title: expanded ? "Collapse state overrides" : "Expand state overrides",
326
- onClick: onToggle,
327
- style: {
328
- background: "none",
329
- border: "none",
330
- padding: 0,
331
- cursor: "pointer",
332
- display: "flex",
333
- alignItems: "center",
334
- color: isDark ? "#666" : "#aaa",
335
- transition: "transform 0.15s, color 0.15s",
336
- transform: expanded ? "rotate(90deg)" : "rotate(0deg)",
337
- flexShrink: 0
338
- },
339
- children: /* @__PURE__ */_jsxs("svg", {
340
- width: "10",
341
- height: "10",
342
- viewBox: "0 0 10 10",
343
- fill: "none",
344
- role: "img",
345
- "aria-label": "Toggle",
346
- children: [/* @__PURE__ */_jsx("title", {
347
- children: "Toggle state overrides"
348
- }), /* @__PURE__ */_jsx("path", {
349
- d: "M3 1.5l4 3.5-4 3.5",
350
- stroke: "currentColor",
351
- strokeWidth: "1.5",
352
- strokeLinecap: "round",
353
- strokeLinejoin: "round"
354
- })]
355
- })
356
- });
357
- }
358
- function IconGroup(param) {
359
- var {
360
- label,
361
- options,
362
- value,
363
- onChange,
364
- icon,
365
- styles,
366
- isDark,
367
- pinned,
368
- onTogglePin,
369
- expanded,
370
- onToggleExpand,
371
- onUnset,
372
- children
373
- } = param;
374
- return /* @__PURE__ */_jsxs("div", {
375
- role: "group",
376
- "aria-label": label,
377
- style: {
378
- ...styles.card,
379
- position: "relative"
380
- },
381
- onMouseEnter: function onMouseEnter(e) {
382
- var element = e.currentTarget.querySelector(".pin-checkbox");
383
- if (element && !pinned) element.style.opacity = "0.5";
384
- },
385
- onMouseLeave: function onMouseLeave(e) {
386
- var element = e.currentTarget.querySelector(".pin-checkbox");
387
- if (element && !pinned) element.style.opacity = "0";
388
- },
389
- children: [onTogglePin && /* @__PURE__ */_jsx(PinCheckbox, {
390
- pinned: !!pinned,
391
- onToggle: onTogglePin,
392
- isDark
393
- }), /* @__PURE__ */_jsxs("div", {
394
- style: {
395
- display: "flex",
396
- alignItems: "center",
397
- gap: 4
398
- },
399
- children: [onToggleExpand && /* @__PURE__ */_jsx(CollapseButton, {
400
- expanded: !!expanded,
401
- onToggle: onToggleExpand,
402
- isDark
403
- }), /* @__PURE__ */_jsx("span", {
404
- style: styles.label,
405
- children: label
406
- })]
407
- }), /* @__PURE__ */_jsxs("div", {
408
- style: styles.iconRow,
409
- children: [onUnset && /* @__PURE__ */_jsx("button", {
410
- type: "button",
411
- style: {
412
- ...styles.iconBtn(value === void 0),
413
- padding: "1px 4px",
414
- fontSize: 10,
415
- minWidth: 0
416
- },
417
- onClick: onUnset,
418
- title: "unset (inherit)",
419
- "aria-pressed": value === void 0,
420
- children: "\u21BA"
421
- }), options.map(function (opt) {
422
- var active = value !== void 0 && opt === value;
423
- return /* @__PURE__ */_jsx("button", {
424
- type: "button",
425
- style: styles.iconBtn(active),
426
- onClick: function onClick() {
427
- return onChange(opt);
428
- },
429
- title: String(opt),
430
- "aria-pressed": active,
431
- children: icon(opt, active, isDark)
432
- }, String(opt));
433
- })]
434
- }), expanded && children]
435
- });
436
- }
437
- function StateSubRow(param) {
438
- var {
439
- stateName,
440
- options,
441
- value,
442
- onChange,
443
- icon,
444
- styles,
445
- isDark
446
- } = param;
447
- return /* @__PURE__ */_jsxs("div", {
448
- style: {
449
- display: "flex",
450
- alignItems: "center",
451
- gap: 4,
452
- marginTop: 2
453
- },
454
- children: [/* @__PURE__ */_jsx("span", {
455
- style: {
456
- fontSize: 9,
457
- fontWeight: 500,
458
- color: isDark ? "#666" : "#aaa",
459
- width: 46,
460
- textAlign: "right",
461
- flexShrink: 0
462
- },
463
- children: stateName
464
- }), /* @__PURE__ */_jsxs("div", {
465
- style: {
466
- ...styles.iconRow,
467
- gap: 2
468
- },
469
- children: [/* @__PURE__ */_jsx("button", {
470
- type: "button",
471
- style: {
472
- ...styles.iconBtn(value === ""),
473
- padding: "1px 4px",
474
- fontSize: 9,
475
- minWidth: 0
476
- },
477
- onClick: function onClick() {
478
- return onChange("");
479
- },
480
- title: "inherit (no override)",
481
- children: "\u2013"
482
- }), options.map(function (opt) {
483
- var active = opt === value;
484
- return /* @__PURE__ */_jsx("button", {
485
- type: "button",
486
- style: {
487
- ...styles.iconBtn(active),
488
- transform: "scale(0.85)"
489
- },
490
- onClick: function onClick() {
491
- return onChange(opt);
492
- },
493
- title: opt,
494
- children: icon(opt, active, isDark)
495
- }, opt);
496
- })]
497
- })]
498
- });
499
- }
500
- function ic(active, dark) {
501
- return active ? dark ? "#e8e8e8" : "#1a1a1a" : dark ? "#555" : "#bbb";
502
- }
503
- function modeIcon(v, active, dark) {
504
- return _modeIcon(v, ic(active, dark));
505
- }
506
- function fillIcon(v, active, dark) {
507
- return _fillIcon(v, ic(active, dark));
508
- }
509
- function borderRadiusIcon(v, active, dark) {
510
- return _borderRadiusIcon(v, ic(active, dark));
511
- }
512
- function cornerSmoothingIcon(v, active, dark) {
513
- return _cornerSmoothingIcon(v, ic(active, dark));
514
- }
515
- function borderWidthIcon(v, active, dark) {
516
- return _borderWidthIcon(v, ic(active, dark));
517
- }
518
- function elevationIconWrap(v, active, dark) {
519
- return _elevationIcon(v, ic(active, dark), dark);
520
- }
521
- function textAccentIcon(v, active, dark) {
522
- return _textAccentIcon(v, ic(active, dark));
523
- }
524
- function headingFontIcon(v, active, dark) {
525
- return _headingFontIcon(v, ic(active, dark));
526
- }
527
- function bodyFontIcon(v, active, dark) {
528
- return _bodyFontIcon(v, ic(active, dark));
529
- }
530
- function fontWeightIcon(v, active, dark) {
531
- return _fontWeightIcon(v, ic(active, dark));
532
- }
533
- function fieldLabelPlacementIcon(v, active, dark) {
534
- return _fieldLabelPlacementIcon(v, ic(active, dark));
535
- }
536
- function requiredMarkingIcon(v, active, dark) {
537
- return _requiredMarkingIcon(v, ic(active, dark));
538
- }
539
- function tableZebraIcon(v, active, dark) {
540
- return _tableZebraIcon(v, ic(active, dark));
541
- }
542
- function bulkBarPlacementIcon(v, active, dark) {
543
- return _bulkBarPlacementIcon(v, ic(active, dark));
544
- }
545
- function selectAllScopeIcon(v, active, dark) {
546
- return _selectAllScopeIcon(v, ic(active, dark));
547
- }
548
- function timestampStyleIcon(v, active, dark) {
549
- return _timestampStyleIcon(v, ic(active, dark));
550
- }
551
- function disabledStyleIcon(v, active, dark) {
552
- return _disabledStyleIcon(v, ic(active, dark));
553
- }
554
- function formAutofocusIcon(v, active, dark) {
555
- return _formAutofocusIcon(v, ic(active, dark));
556
- }
557
- function extractThemeTokenColors(tamaguiConfig, scheme, colorTheme) {
558
- var prefix = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "color";
559
- var config = tamaguiConfig;
560
- var themes = config === null || config === void 0 ? void 0 : config.themes;
561
- if (!themes) return void 0;
562
- var candidates = [];
563
- if (colorTheme) candidates.push(`${scheme}_${colorTheme}`);
564
- candidates.push(scheme);
565
- var _iteratorNormalCompletion = true,
566
- _didIteratorError = false,
567
- _iteratorError = void 0;
568
- try {
569
- for (var _iterator = candidates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
570
- var name = _step.value;
571
- var theme = themes[name];
572
- if (!theme) continue;
573
- var colors = [];
574
- var found = false;
575
- for (var i = 1; i <= 12; i++) {
576
- var token = theme[`${prefix}${i}`];
577
- var val = void 0;
578
- if (typeof token === "string") {
579
- val = token;
580
- } else if (token && (typeof token === "undefined" ? "undefined" : _type_of(token)) === "object" && "val" in token) {
581
- val = String(token.val);
582
- }
583
- if (val) {
584
- colors.push(val);
585
- found = true;
586
- } else {
587
- colors.push("");
588
- }
589
- }
590
- if (found) return colors;
591
- }
592
- } catch (err) {
593
- _didIteratorError = true;
594
- _iteratorError = err;
595
- } finally {
596
- try {
597
- if (!_iteratorNormalCompletion && _iterator.return != null) {
598
- _iterator.return();
599
- }
600
- } finally {
601
- if (_didIteratorError) {
602
- throw _iteratorError;
603
- }
604
- }
605
- }
606
- return void 0;
607
- }
608
- function ThemeDevtoolsPanel(param) {
609
- var {
610
- useUserScheme,
611
- extraPresets,
612
- devtoolsTheme,
613
- themeColors,
614
- currentThemeColor,
615
- onThemeColorChange,
616
- tamaguiConfig
617
- } = param;
618
- var _getOverride;
619
- var [knobs, setKnobs,, setPreset, activePresetName] = useTheme();
620
- var scheme = useUserScheme === null || useUserScheme === void 0 ? void 0 : useUserScheme();
621
- var isDark = devtoolsTheme !== "light";
622
- var styles = useMemo(function () {
623
- return createStyles(isDark);
624
- }, [isDark]);
625
- var animationOptions = useMemo(function () {
626
- return ["none", ...extractAnimationNames(tamaguiConfig)];
627
- }, [tamaguiConfig]);
628
- var [overrides, setOverrides] = useState(function () {
629
- var _getPreset;
630
- var presetKnobs = activePresetName ? (_getPreset = getPreset(activePresetName)) === null || _getPreset === void 0 ? void 0 : _getPreset.knobs : void 0;
631
- return new Set(knobKeys.filter(function (key) {
632
- var _ref;
633
- return knobs[key] !== ((_ref = presetKnobs === null || presetKnobs === void 0 ? void 0 : presetKnobs[key]) !== null && _ref !== void 0 ? _ref : defaultKnobs[key]);
634
- }));
635
- });
636
- var [pinnedKnobs, setPinnedKnobs] = useState(function () {
637
- try {
638
- var raw = storage.getItem(pinnedKnobsStorageKey);
639
- var stored = typeof raw === "string" || raw === null ? raw : null;
640
- if (stored) return new Set(JSON.parse(stored));
641
- } catch (unused) {}
642
- return /* @__PURE__ */new Set();
643
- });
644
- var [activeProfile, setActiveProfile] = useState("");
645
- var [expandedKnobs, setExpandedKnobs] = useState(function () {
646
- try {
647
- var raw = storage.getItem(expandedKnobsStorageKey);
648
- var stored = typeof raw === "string" || raw === null ? raw : null;
649
- if (stored) {
650
- var parsed = JSON.parse(stored);
651
- return new Set(parsed.filter(function (k) {
652
- return stateKnobKeys.includes(k);
653
- }));
654
- }
655
- } catch (unused) {}
656
- return /* @__PURE__ */new Set();
657
- });
658
- var knobsRef = useRef(knobs);
659
- knobsRef.current = knobs;
660
- useEffect(function () {
661
- void Promise.resolve(storage.setItem(pinnedKnobsStorageKey, JSON.stringify([...pinnedKnobs]))).catch(function () {});
662
- }, [pinnedKnobs]);
663
- useEffect(function () {
664
- void Promise.resolve(storage.setItem(expandedKnobsStorageKey, JSON.stringify([...expandedKnobs]))).catch(function () {});
665
- }, [expandedKnobs]);
666
- var clearStateOverridesForKeys = useCallback(function (keys) {
667
- var current = knobsRef.current;
668
- var partial = {};
669
- var _iteratorNormalCompletion = true,
670
- _didIteratorError = false,
671
- _iteratorError = void 0;
672
- try {
673
- for (var _iterator = interactionStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
674
- var state = _step.value;
675
- var stateKnobs = {
676
- ...current[state]
677
- };
678
- var mutated = false;
679
- var _iteratorNormalCompletion1 = true,
680
- _didIteratorError1 = false,
681
- _iteratorError1 = void 0;
682
- try {
683
- for (var _iterator1 = keys[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
684
- var key = _step1.value;
685
- if (stateKnobs[key] !== void 0) {
686
- stateKnobs[key] = void 0;
687
- mutated = true;
688
- }
689
- }
690
- } catch (err) {
691
- _didIteratorError1 = true;
692
- _iteratorError1 = err;
693
- } finally {
694
- try {
695
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
696
- _iterator1.return();
697
- }
698
- } finally {
699
- if (_didIteratorError1) {
700
- throw _iteratorError1;
701
- }
702
- }
703
- }
704
- if (mutated) {
705
- partial[state] = stateKnobs;
706
- }
707
- }
708
- } catch (err) {
709
- _didIteratorError = true;
710
- _iteratorError = err;
711
- } finally {
712
- try {
713
- if (!_iteratorNormalCompletion && _iterator.return != null) {
714
- _iterator.return();
715
- }
716
- } finally {
717
- if (_didIteratorError) {
718
- throw _iteratorError;
719
- }
720
- }
721
- }
722
- if (Object.keys(partial).length > 0) {
723
- setKnobs(partial);
724
- }
725
- }, [setKnobs]);
726
- var toggleExpand = useCallback(function (key) {
727
- var collapsing = false;
728
- setExpandedKnobs(function (prev) {
729
- var next = new Set(prev);
730
- if (next.has(key)) {
731
- collapsing = true;
732
- next.delete(key);
733
- } else {
734
- next.add(key);
735
- }
736
- return next;
737
- });
738
- if (collapsing) {
739
- clearStateOverridesForKeys([key]);
740
- }
741
- }, [clearStateOverridesForKeys]);
742
- var togglePin = useCallback(function (key) {
743
- setPinnedKnobs(function (prev) {
744
- var next = new Set(prev);
745
- if (next.has(key)) {
746
- next.delete(key);
747
- var _iteratorNormalCompletion = true,
748
- _didIteratorError = false,
749
- _iteratorError = void 0;
750
- try {
751
- for (var _iterator = interactionStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
752
- var state = _step.value;
753
- next.delete(`${state}.${key}`);
754
- }
755
- } catch (err) {
756
- _didIteratorError = true;
757
- _iteratorError = err;
758
- } finally {
759
- try {
760
- if (!_iteratorNormalCompletion && _iterator.return != null) {
761
- _iterator.return();
762
- }
763
- } finally {
764
- if (_didIteratorError) {
765
- throw _iteratorError;
766
- }
767
- }
768
- }
769
- } else {
770
- next.add(key);
771
- var _iteratorNormalCompletion1 = true,
772
- _didIteratorError1 = false,
773
- _iteratorError1 = void 0;
774
- try {
775
- for (var _iterator1 = interactionStates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
776
- var state1 = _step1.value;
777
- next.add(`${state1}.${key}`);
778
- }
779
- } catch (err) {
780
- _didIteratorError1 = true;
781
- _iteratorError1 = err;
782
- } finally {
783
- try {
784
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
785
- _iterator1.return();
786
- }
787
- } finally {
788
- if (_didIteratorError1) {
789
- throw _iteratorError1;
790
- }
791
- }
792
- }
793
- }
794
- return next;
795
- });
796
- }, []);
797
- var allStateKnobsExpanded = useMemo(function () {
798
- return stateKnobKeys.every(function (key) {
799
- return expandedKnobs.has(key);
800
- });
801
- }, [expandedKnobs]);
802
- var handleToggleAllStates = useCallback(function () {
803
- var collapsingAll = false;
804
- setExpandedKnobs(function (prev) {
805
- var allExpanded = stateKnobKeys.every(function (key) {
806
- return prev.has(key);
807
- });
808
- if (allExpanded) {
809
- collapsingAll = true;
810
- return /* @__PURE__ */new Set();
811
- }
812
- return new Set(stateKnobKeys);
813
- });
814
- if (collapsingAll) {
815
- clearStateOverridesForKeys(stateKnobKeys);
816
- }
817
- }, [clearStateOverridesForKeys]);
818
- var set = useCallback(function (key, value) {
819
- setOverrides(function (prev) {
820
- return new Set(prev).add(key);
821
- });
822
- setKnobs({
823
- [key]: value
824
- });
825
- if (activeProfile) setActiveProfile("");
826
- }, [setKnobs, activeProfile]);
827
- var handleProfileChange = useCallback(function (profileName) {
828
- if (!profileName) {
829
- setActiveProfile("");
830
- return;
831
- }
832
- var profile = designProfiles[profileName];
833
- if (!profile) return;
834
- var partial = {};
835
- var _iteratorNormalCompletion = true,
836
- _didIteratorError = false,
837
- _iteratorError = void 0;
838
- try {
839
- for (var _iterator = knobKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
840
- var key = _step.value;
841
- if (profile[key]) partial[key] = profile[key];
842
- }
843
- } catch (err) {
844
- _didIteratorError = true;
845
- _iteratorError = err;
846
- } finally {
847
- try {
848
- if (!_iteratorNormalCompletion && _iterator.return != null) {
849
- _iterator.return();
850
- }
851
- } finally {
852
- if (_didIteratorError) {
853
- throw _iteratorError;
854
- }
855
- }
856
- }
857
- var hover = {};
858
- var press = {};
859
- var _iteratorNormalCompletion1 = true,
860
- _didIteratorError1 = false,
861
- _iteratorError1 = void 0;
862
- try {
863
- for (var _iterator1 = Object.entries(profile)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
864
- var [k, v] = _step1.value;
865
- if (!v) continue;
866
- if (k.startsWith("hover.")) hover[k.slice(6)] = v;else if (k.startsWith("press.")) press[k.slice(6)] = v;
867
- }
868
- } catch (err) {
869
- _didIteratorError1 = true;
870
- _iteratorError1 = err;
871
- } finally {
872
- try {
873
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
874
- _iterator1.return();
875
- }
876
- } finally {
877
- if (_didIteratorError1) {
878
- throw _iteratorError1;
879
- }
880
- }
881
- }
882
- if (Object.keys(hover).length) partial.hover = hover;
883
- if (Object.keys(press).length) partial.press = press;
884
- setKnobs(partial);
885
- setOverrides(new Set(knobKeys));
886
- setPinnedKnobs(/* @__PURE__ */new Set());
887
- setActiveProfile(profileName);
888
- if (profile.color && onThemeColorChange) {
889
- onThemeColorChange(profile.color);
890
- }
891
- }, [setKnobs, onThemeColorChange]);
892
- var handleClearKnobs = useCallback(function () {
893
- if (activeProfile && designProfiles[activeProfile]) {
894
- handleProfileChange(activeProfile);
895
- setExpandedKnobs(/* @__PURE__ */new Set());
896
- return;
897
- }
898
- setOverrides(/* @__PURE__ */new Set());
899
- setPinnedKnobs(/* @__PURE__ */new Set());
900
- setExpandedKnobs(/* @__PURE__ */new Set());
901
- setActiveProfile("");
902
- if (activePresetName) {
903
- setPreset(activePresetName);
904
- } else {
905
- setKnobs({
906
- ...defaultKnobs
907
- });
908
- }
909
- }, [activeProfile, handleProfileChange, activePresetName, setPreset, setKnobs]);
910
- var handleApplyDefaults = useCallback(function () {
911
- setOverrides(new Set(knobKeys));
912
- setPinnedKnobs(/* @__PURE__ */new Set());
913
- setExpandedKnobs(/* @__PURE__ */new Set());
914
- setActiveProfile("");
915
- setPreset("");
916
- setKnobs({
917
- ...defaultKnobs
918
- });
919
- }, [setPreset, setKnobs]);
920
- var [copyStatus, setCopyStatus] = useState("idle");
921
- var handleCopySnapshot = useCallback(async function () {
922
- var _extractThemeTokenColors, _extractThemeTokenColors1;
923
- var knobValues = {};
924
- var _iteratorNormalCompletion = true,
925
- _didIteratorError = false,
926
- _iteratorError = void 0;
927
- try {
928
- for (var _iterator = Object.entries(knobs)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
929
- var [key, value] = _step.value;
930
- if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
931
- var _iteratorNormalCompletion1 = true,
932
- _didIteratorError1 = false,
933
- _iteratorError1 = void 0;
934
- try {
935
- for (var _iterator1 = Object.entries(value)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
936
- var [sk, sv] = _step1.value;
937
- if (sv) knobValues[`${key}.${sk}`] = sv;
938
- }
939
- } catch (err) {
940
- _didIteratorError1 = true;
941
- _iteratorError1 = err;
942
- } finally {
943
- try {
944
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
945
- _iterator1.return();
946
- }
947
- } finally {
948
- if (_didIteratorError1) {
949
- throw _iteratorError1;
950
- }
951
- }
952
- }
953
- } else {
954
- knobValues[key] = String(value);
955
- }
956
- }
957
- } catch (err) {
958
- _didIteratorError = true;
959
- _iteratorError = err;
960
- } finally {
961
- try {
962
- if (!_iteratorNormalCompletion && _iterator.return != null) {
963
- _iterator.return();
964
- }
965
- } finally {
966
- if (_didIteratorError) {
967
- throw _iteratorError;
968
- }
969
- }
970
- }
971
- var lightColors = (_extractThemeTokenColors = extractThemeTokenColors(tamaguiConfig, "light", currentThemeColor)) !== null && _extractThemeTokenColors !== void 0 ? _extractThemeTokenColors : [];
972
- var darkColors = (_extractThemeTokenColors1 = extractThemeTokenColors(tamaguiConfig, "dark", currentThemeColor)) !== null && _extractThemeTokenColors1 !== void 0 ? _extractThemeTokenColors1 : [];
973
- var snapshot = buildSnapshot({
974
- knobValues,
975
- activePreset: activePresetName !== null && activePresetName !== void 0 ? activePresetName : void 0,
976
- schemeSetting: scheme === null || scheme === void 0 ? void 0 : scheme.setting,
977
- schemeValue: scheme === null || scheme === void 0 ? void 0 : scheme.value,
978
- currentColor: currentThemeColor,
979
- lightColors,
980
- darkColors
981
- });
982
- var success = await writeToClipboard(snapshot);
983
- if (success) {
984
- setCopyStatus("copied");
985
- setTimeout(function () {
986
- return setCopyStatus("idle");
987
- }, 2e3);
988
- } else {
989
- setCopyStatus("error");
990
- setTimeout(function () {
991
- return setCopyStatus("idle");
992
- }, 2e3);
993
- }
994
- }, [knobs, activePresetName, scheme, currentThemeColor, tamaguiConfig]);
995
- var handleRandomize = useCallback(function () {
996
- var pick = function pick2(arr) {
997
- return arr[Math.floor(Math.random() * arr.length)];
998
- };
999
- var knobEnums = {
1000
- fillStyle: Object.values(FillStyle),
1001
- borderRadius: Object.values(BorderRadius),
1002
- borderWidth: Object.values(BorderWidth),
1003
- elevation: Object.values(Elevation),
1004
- textAccent: Object.values(TextAccent),
1005
- headingFont: Object.values(HeadingFont),
1006
- bodyFont: Object.values(BodyFont),
1007
- fontWeight: Object.values(FontWeight),
1008
- animation: animationOptions
1009
- };
1010
- var partial = {};
1011
- var newOverrides = new Set(knobKeys);
1012
- var _iteratorNormalCompletion = true,
1013
- _didIteratorError = false,
1014
- _iteratorError = void 0;
1015
- try {
1016
- for (var _iterator = knobKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1017
- var key = _step.value;
1018
- if (pinnedKnobs.has(key)) continue;
1019
- var values = knobEnums[key];
1020
- if (values) partial[key] = pick(values);
1021
- }
1022
- } catch (err) {
1023
- _didIteratorError = true;
1024
- _iteratorError = err;
1025
- } finally {
1026
- try {
1027
- if (!_iteratorNormalCompletion && _iterator.return != null) {
1028
- _iterator.return();
1029
- }
1030
- } finally {
1031
- if (_didIteratorError) {
1032
- throw _iteratorError;
1033
- }
1034
- }
1035
- }
1036
- if (expandedKnobs.size > 0) {
1037
- var knobEnumsForState = {
1038
- fillStyle: Object.values(FillStyle),
1039
- borderRadius: Object.values(BorderRadius),
1040
- borderWidth: Object.values(BorderWidth),
1041
- elevation: Object.values(Elevation),
1042
- textAccent: Object.values(TextAccent),
1043
- headingFont: Object.values(HeadingFont),
1044
- bodyFont: Object.values(BodyFont),
1045
- fontWeight: Object.values(FontWeight)
1046
- };
1047
- var _iteratorNormalCompletion1 = true,
1048
- _didIteratorError1 = false,
1049
- _iteratorError1 = void 0;
1050
- try {
1051
- for (var _iterator1 = interactionStates[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
1052
- var state = _step1.value;
1053
- var statePartial = {};
1054
- var _iteratorNormalCompletion2 = true,
1055
- _didIteratorError2 = false,
1056
- _iteratorError2 = void 0;
1057
- try {
1058
- for (var _iterator2 = expandedKnobs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
1059
- var key1 = _step2.value;
1060
- var values1 = knobEnumsForState[key1];
1061
- if (values1) statePartial[key1] = pick(values1);
1062
- }
1063
- } catch (err) {
1064
- _didIteratorError2 = true;
1065
- _iteratorError2 = err;
1066
- } finally {
1067
- try {
1068
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
1069
- _iterator2.return();
1070
- }
1071
- } finally {
1072
- if (_didIteratorError2) {
1073
- throw _iteratorError2;
1074
- }
1075
- }
1076
- }
1077
- if (Object.keys(statePartial).length > 0) {
1078
- partial[state] = statePartial;
1079
- }
1080
- }
1081
- } catch (err) {
1082
- _didIteratorError1 = true;
1083
- _iteratorError1 = err;
1084
- } finally {
1085
- try {
1086
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1087
- _iterator1.return();
1088
- }
1089
- } finally {
1090
- if (_didIteratorError1) {
1091
- throw _iteratorError1;
1092
- }
1093
- }
1094
- }
1095
- }
1096
- setOverrides(newOverrides);
1097
- setKnobs(partial);
1098
- if (!pinnedKnobs.has("color") && themeColors && onThemeColorChange) {
1099
- var nonEmpty = themeColors.filter(function (c) {
1100
- return c !== "";
1101
- });
1102
- if (nonEmpty.length > 0) {
1103
- onThemeColorChange(pick(nonEmpty));
1104
- }
1105
- }
1106
- if (!pinnedKnobs.has("scheme") && scheme) {
1107
- scheme.set(pick(["light", "dark"]));
1108
- }
1109
- if (activeProfile) setActiveProfile("");
1110
- }, [setKnobs, themeColors, onThemeColorChange, scheme, pinnedKnobs, expandedKnobs, activeProfile, animationOptions]);
1111
- var presetOptions = useMemo(function () {
1112
- var registered = getPresetNames();
1113
- var names = new Set(registered);
1114
- if (extraPresets) {
1115
- var _iteratorNormalCompletion = true,
1116
- _didIteratorError = false,
1117
- _iteratorError = void 0;
1118
- try {
1119
- for (var _iterator = extraPresets[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1120
- var name = _step.value;
1121
- names.add(name);
1122
- }
1123
- } catch (err) {
1124
- _didIteratorError = true;
1125
- _iteratorError = err;
1126
- } finally {
1127
- try {
1128
- if (!_iteratorNormalCompletion && _iterator.return != null) {
1129
- _iterator.return();
1130
- }
1131
- } finally {
1132
- if (_didIteratorError) {
1133
- throw _iteratorError;
1134
- }
1135
- }
1136
- }
1137
- }
1138
- return ["", ...Array.from(names).filter(Boolean).sort()];
1139
- }, [extraPresets]);
1140
- var handlePresetChange = useCallback(function (presetName) {
1141
- if (!presetName) return;
1142
- setPreset(presetName);
1143
- setOverrides(/* @__PURE__ */new Set());
1144
- }, [setPreset]);
1145
- var handleResetToPreset = useCallback(function () {
1146
- if (activePresetName) {
1147
- setPreset(activePresetName);
1148
- } else {
1149
- setKnobs({
1150
- ...defaultKnobs
1151
- });
1152
- }
1153
- setOverrides(/* @__PURE__ */new Set());
1154
- }, [activePresetName, setPreset, setKnobs]);
1155
- var prevDevtoolsTheme = useRef(void 0);
1156
- useEffect(function () {
1157
- if (!devtoolsTheme || !scheme) {
1158
- prevDevtoolsTheme.current = devtoolsTheme;
1159
- return;
1160
- }
1161
- if (prevDevtoolsTheme.current === void 0) {
1162
- prevDevtoolsTheme.current = devtoolsTheme;
1163
- return;
1164
- }
1165
- if (prevDevtoolsTheme.current !== devtoolsTheme) {
1166
- prevDevtoolsTheme.current = devtoolsTheme;
1167
- if (scheme.value !== devtoolsTheme) {
1168
- scheme.set(devtoolsTheme);
1169
- }
1170
- }
1171
- }, [devtoolsTheme, scheme]);
1172
- var schemeValue = scheme === null || scheme === void 0 ? void 0 : scheme.value;
1173
- useEffect(function () {
1174
- if (!schemeValue) return;
1175
- void Promise.resolve(storage.getItem(tanstackDevtoolsSettings)).then(function (raw) {
1176
- var settings = raw ? JSON.parse(raw) : {};
1177
- if (settings.theme !== schemeValue) {
1178
- settings.theme = schemeValue;
1179
- return Promise.resolve(storage.setItem(tanstackDevtoolsSettings, JSON.stringify(settings)));
1180
- }
1181
- }).catch(function () {});
1182
- },
1183
- // storage may be unavailable (e.g. SSR, iframe sandbox)
1184
- [schemeValue]);
1185
- var getOverride = function getOverride2(key) {
1186
- return overrides.has(key) ? knobs[key] : void 0;
1187
- };
1188
- var inheritedKnob = useCallback(function (key) {
1189
- var activeProfileConfig = activeProfile ? designProfiles[activeProfile] : void 0;
1190
- if (activeProfileConfig === null || activeProfileConfig === void 0 ? void 0 : activeProfileConfig[key]) {
1191
- return activeProfileConfig[key];
1192
- }
1193
- if (activePresetName) {
1194
- var _getPreset;
1195
- var presetKnobs = (_getPreset = getPreset(activePresetName)) === null || _getPreset === void 0 ? void 0 : _getPreset.knobs;
1196
- if ((presetKnobs === null || presetKnobs === void 0 ? void 0 : presetKnobs[key]) !== void 0) return presetKnobs[key];
1197
- }
1198
- return defaultKnobs[key];
1199
- }, [activeProfile, activePresetName]);
1200
- var unset = useCallback(function (key) {
1201
- setOverrides(function (prev) {
1202
- var next = new Set(prev);
1203
- next.delete(key);
1204
- return next;
1205
- });
1206
- setKnobs({
1207
- [key]: inheritedKnob(key)
1208
- });
1209
- }, [setKnobs, inheritedKnob]);
1210
- var setStateKnob = useCallback(function (state, key, value) {
1211
- var current = knobsRef.current;
1212
- setKnobs({
1213
- [state]: {
1214
- ...current[state],
1215
- [key]: value === "" ? void 0 : value
1216
- }
1217
- });
1218
- setOverrides(function (prev) {
1219
- return new Set(prev).add(state);
1220
- });
1221
- if (activeProfile) setActiveProfile("");
1222
- }, [setKnobs, activeProfile]);
1223
- var getStateKnob = function getStateKnob2(state, key) {
1224
- var _stateKnobs_key;
1225
- var stateKnobs = knobs[state];
1226
- return (_stateKnobs_key = stateKnobs[key]) !== null && _stateKnobs_key !== void 0 ? _stateKnobs_key : "";
1227
- };
1228
- var stateRows = function stateRows2(knobKey, options, icon) {
1229
- return interactionStates.map(function (state) {
1230
- return /* @__PURE__ */_jsx(StateSubRow, {
1231
- stateName: stateDisplayLabels[state],
1232
- options,
1233
- value: getStateKnob(state, knobKey),
1234
- onChange: function onChange(v) {
1235
- return setStateKnob(state, knobKey, v);
1236
- },
1237
- icon,
1238
- styles,
1239
- isDark
1240
- }, state);
1241
- });
1242
- };
1243
- return /* @__PURE__ */_jsxs("div", {
1244
- style: styles.panel,
1245
- children: [/* ── Knobs ── */
1246
- /* @__PURE__ */_jsxs("div", {
1247
- style: styles.knobsRow,
1248
- children: [presetOptions.length > 1 && /* @__PURE__ */_jsx(Dropdown, {
1249
- label: "Preset",
1250
- options: presetOptions,
1251
- value: activePresetName !== null && activePresetName !== void 0 ? activePresetName : "",
1252
- onChange: function onChange(v) {
1253
- return handlePresetChange(v);
1254
- },
1255
- format: formatPresetOption,
1256
- styles
1257
- }), presetOptions.length > 1 && /* @__PURE__ */_jsx("div", {
1258
- style: styles.card,
1259
- children: /* @__PURE__ */_jsx("button", {
1260
- type: "button",
1261
- style: styles.resetBtn,
1262
- onClick: handleResetToPreset,
1263
- children: "Reset to Preset"
1264
- })
1265
- }), themeColors && themeColors.length > 1 && onThemeColorChange && /* @__PURE__ */_jsx(Dropdown, {
1266
- label: "Theme",
1267
- options: themeColors,
1268
- value: currentThemeColor !== null && currentThemeColor !== void 0 ? currentThemeColor : "",
1269
- onChange: function onChange(v) {
1270
- return onThemeColorChange(v);
1271
- },
1272
- format: function format(v) {
1273
- return v === "" ? "none" : String(v);
1274
- },
1275
- styles,
1276
- pinned: pinnedKnobs.has("color"),
1277
- onTogglePin: function onTogglePin() {
1278
- return togglePin("color");
1279
- },
1280
- isDark
1281
- }), scheme && /* @__PURE__ */_jsx(IconGroup, {
1282
- label: "Scheme",
1283
- options: ["system", "light", "dark"],
1284
- value: scheme.setting,
1285
- onChange: function onChange(v) {
1286
- return scheme.set(v);
1287
- },
1288
- icon: modeIcon,
1289
- styles,
1290
- isDark,
1291
- pinned: pinnedKnobs.has("scheme"),
1292
- onTogglePin: function onTogglePin() {
1293
- return togglePin("scheme");
1294
- }
1295
- }), /* @__PURE__ */_jsx(IconGroup, {
1296
- label: "Fill",
1297
- options: Object.values(FillStyle),
1298
- value: getOverride("fillStyle"),
1299
- onChange: function onChange(v) {
1300
- return set("fillStyle", v);
1301
- },
1302
- icon: fillIcon,
1303
- styles,
1304
- isDark,
1305
- pinned: pinnedKnobs.has("fillStyle"),
1306
- onTogglePin: function onTogglePin() {
1307
- return togglePin("fillStyle");
1308
- },
1309
- expanded: expandedKnobs.has("fillStyle"),
1310
- onToggleExpand: function onToggleExpand() {
1311
- return toggleExpand("fillStyle");
1312
- },
1313
- onUnset: function onUnset() {
1314
- return unset("fillStyle");
1315
- },
1316
- children: stateRows("fillStyle", Object.values(FillStyle), fillIcon)
1317
- }), /* @__PURE__ */_jsx(IconGroup, {
1318
- label: "Radius",
1319
- options: Object.values(BorderRadius),
1320
- value: getOverride("borderRadius"),
1321
- onChange: function onChange(v) {
1322
- return set("borderRadius", v);
1323
- },
1324
- icon: borderRadiusIcon,
1325
- styles,
1326
- isDark,
1327
- pinned: pinnedKnobs.has("borderRadius"),
1328
- onTogglePin: function onTogglePin() {
1329
- return togglePin("borderRadius");
1330
- },
1331
- expanded: expandedKnobs.has("borderRadius"),
1332
- onToggleExpand: function onToggleExpand() {
1333
- return toggleExpand("borderRadius");
1334
- },
1335
- onUnset: function onUnset() {
1336
- return unset("borderRadius");
1337
- },
1338
- children: stateRows("borderRadius", Object.values(BorderRadius), borderRadiusIcon)
1339
- }), /* @__PURE__ */_jsx(IconGroup, {
1340
- label: "Smoothing",
1341
- options: Object.values(CornerSmoothing),
1342
- value: getOverride("cornerSmoothing"),
1343
- onChange: function onChange(v) {
1344
- return set("cornerSmoothing", v);
1345
- },
1346
- icon: cornerSmoothingIcon,
1347
- styles,
1348
- isDark,
1349
- pinned: pinnedKnobs.has("cornerSmoothing"),
1350
- onTogglePin: function onTogglePin() {
1351
- return togglePin("cornerSmoothing");
1352
- },
1353
- onUnset: function onUnset() {
1354
- return unset("cornerSmoothing");
1355
- }
1356
- }), /* @__PURE__ */_jsx(IconGroup, {
1357
- label: "Border",
1358
- options: Object.values(BorderWidth),
1359
- value: getOverride("borderWidth"),
1360
- onChange: function onChange(v) {
1361
- return set("borderWidth", v);
1362
- },
1363
- icon: borderWidthIcon,
1364
- styles,
1365
- isDark,
1366
- pinned: pinnedKnobs.has("borderWidth"),
1367
- onTogglePin: function onTogglePin() {
1368
- return togglePin("borderWidth");
1369
- },
1370
- expanded: expandedKnobs.has("borderWidth"),
1371
- onToggleExpand: function onToggleExpand() {
1372
- return toggleExpand("borderWidth");
1373
- },
1374
- onUnset: function onUnset() {
1375
- return unset("borderWidth");
1376
- },
1377
- children: stateRows("borderWidth", Object.values(BorderWidth), borderWidthIcon)
1378
- }), /* @__PURE__ */_jsx(IconGroup, {
1379
- label: "Elevation",
1380
- options: Object.values(Elevation),
1381
- value: getOverride("elevation"),
1382
- onChange: function onChange(v) {
1383
- return set("elevation", v);
1384
- },
1385
- icon: elevationIconWrap,
1386
- styles,
1387
- isDark,
1388
- pinned: pinnedKnobs.has("elevation"),
1389
- onTogglePin: function onTogglePin() {
1390
- return togglePin("elevation");
1391
- },
1392
- expanded: expandedKnobs.has("elevation"),
1393
- onToggleExpand: function onToggleExpand() {
1394
- return toggleExpand("elevation");
1395
- },
1396
- onUnset: function onUnset() {
1397
- return unset("elevation");
1398
- },
1399
- children: stateRows("elevation", Object.values(Elevation), elevationIconWrap)
1400
- }), /* @__PURE__ */_jsx(IconGroup, {
1401
- label: "Text Accent",
1402
- options: Object.values(TextAccent),
1403
- value: getOverride("textAccent"),
1404
- onChange: function onChange(v) {
1405
- return set("textAccent", v);
1406
- },
1407
- icon: textAccentIcon,
1408
- styles,
1409
- isDark,
1410
- pinned: pinnedKnobs.has("textAccent"),
1411
- onTogglePin: function onTogglePin() {
1412
- return togglePin("textAccent");
1413
- },
1414
- expanded: expandedKnobs.has("textAccent"),
1415
- onToggleExpand: function onToggleExpand() {
1416
- return toggleExpand("textAccent");
1417
- },
1418
- onUnset: function onUnset() {
1419
- return unset("textAccent");
1420
- },
1421
- children: stateRows("textAccent", Object.values(TextAccent), textAccentIcon)
1422
- }), /* @__PURE__ */_jsx(IconGroup, {
1423
- label: "Heading",
1424
- options: Object.values(HeadingFont),
1425
- value: getOverride("headingFont"),
1426
- onChange: function onChange(v) {
1427
- return set("headingFont", v);
1428
- },
1429
- icon: headingFontIcon,
1430
- styles,
1431
- isDark,
1432
- pinned: pinnedKnobs.has("headingFont"),
1433
- onTogglePin: function onTogglePin() {
1434
- return togglePin("headingFont");
1435
- },
1436
- expanded: expandedKnobs.has("headingFont"),
1437
- onToggleExpand: function onToggleExpand() {
1438
- return toggleExpand("headingFont");
1439
- },
1440
- onUnset: function onUnset() {
1441
- return unset("headingFont");
1442
- },
1443
- children: stateRows("headingFont", Object.values(HeadingFont), headingFontIcon)
1444
- }), /* @__PURE__ */_jsx(IconGroup, {
1445
- label: "Body",
1446
- options: Object.values(BodyFont),
1447
- value: getOverride("bodyFont"),
1448
- onChange: function onChange(v) {
1449
- return set("bodyFont", v);
1450
- },
1451
- icon: bodyFontIcon,
1452
- styles,
1453
- isDark,
1454
- pinned: pinnedKnobs.has("bodyFont"),
1455
- onTogglePin: function onTogglePin() {
1456
- return togglePin("bodyFont");
1457
- },
1458
- expanded: expandedKnobs.has("bodyFont"),
1459
- onToggleExpand: function onToggleExpand() {
1460
- return toggleExpand("bodyFont");
1461
- },
1462
- onUnset: function onUnset() {
1463
- return unset("bodyFont");
1464
- },
1465
- children: stateRows("bodyFont", Object.values(BodyFont), bodyFontIcon)
1466
- }), /* @__PURE__ */_jsx(IconGroup, {
1467
- label: "Weight",
1468
- options: Object.values(FontWeight),
1469
- value: getOverride("fontWeight"),
1470
- onChange: function onChange(v) {
1471
- return set("fontWeight", v);
1472
- },
1473
- icon: fontWeightIcon,
1474
- styles,
1475
- isDark,
1476
- pinned: pinnedKnobs.has("fontWeight"),
1477
- onTogglePin: function onTogglePin() {
1478
- return togglePin("fontWeight");
1479
- },
1480
- expanded: expandedKnobs.has("fontWeight"),
1481
- onToggleExpand: function onToggleExpand() {
1482
- return toggleExpand("fontWeight");
1483
- },
1484
- onUnset: function onUnset() {
1485
- return unset("fontWeight");
1486
- },
1487
- children: stateRows("fontWeight", Object.values(FontWeight), fontWeightIcon)
1488
- }), /* @__PURE__ */_jsx(Dropdown, {
1489
- label: "Animation",
1490
- options: animationOptions,
1491
- value: (_getOverride = getOverride("animation")) !== null && _getOverride !== void 0 ? _getOverride : "",
1492
- onChange: function onChange(v) {
1493
- return set("animation", v);
1494
- },
1495
- onUnset: function onUnset() {
1496
- return unset("animation");
1497
- },
1498
- styles,
1499
- pinned: pinnedKnobs.has("animation"),
1500
- onTogglePin: function onTogglePin() {
1501
- return togglePin("animation");
1502
- },
1503
- isDark
1504
- }), /* @__PURE__ */_jsx(IconGroup, {
1505
- label: "Label place",
1506
- options: Object.values(FieldLabelPlacement),
1507
- value: getOverride("fieldLabelPlacement"),
1508
- onChange: function onChange(v) {
1509
- return set("fieldLabelPlacement", v);
1510
- },
1511
- icon: fieldLabelPlacementIcon,
1512
- styles,
1513
- isDark,
1514
- pinned: pinnedKnobs.has("fieldLabelPlacement"),
1515
- onTogglePin: function onTogglePin() {
1516
- return togglePin("fieldLabelPlacement");
1517
- },
1518
- onUnset: function onUnset() {
1519
- return unset("fieldLabelPlacement");
1520
- }
1521
- }), /* @__PURE__ */_jsx(IconGroup, {
1522
- label: "Required mark",
1523
- options: Object.values(RequiredMarking),
1524
- value: getOverride("requiredMarking"),
1525
- onChange: function onChange(v) {
1526
- return set("requiredMarking", v);
1527
- },
1528
- icon: requiredMarkingIcon,
1529
- styles,
1530
- isDark,
1531
- pinned: pinnedKnobs.has("requiredMarking"),
1532
- onTogglePin: function onTogglePin() {
1533
- return togglePin("requiredMarking");
1534
- },
1535
- onUnset: function onUnset() {
1536
- return unset("requiredMarking");
1537
- }
1538
- }), /* @__PURE__ */_jsx(IconGroup, {
1539
- label: "Zebra",
1540
- options: Object.values(TableZebra),
1541
- value: getOverride("tableZebra"),
1542
- onChange: function onChange(v) {
1543
- return set("tableZebra", v);
1544
- },
1545
- icon: tableZebraIcon,
1546
- styles,
1547
- isDark,
1548
- pinned: pinnedKnobs.has("tableZebra"),
1549
- onTogglePin: function onTogglePin() {
1550
- return togglePin("tableZebra");
1551
- },
1552
- onUnset: function onUnset() {
1553
- return unset("tableZebra");
1554
- }
1555
- }), /* @__PURE__ */_jsx(IconGroup, {
1556
- label: "Bulk bar",
1557
- options: Object.values(BulkBarPlacement),
1558
- value: getOverride("bulkBarPlacement"),
1559
- onChange: function onChange(v) {
1560
- return set("bulkBarPlacement", v);
1561
- },
1562
- icon: bulkBarPlacementIcon,
1563
- styles,
1564
- isDark,
1565
- pinned: pinnedKnobs.has("bulkBarPlacement"),
1566
- onTogglePin: function onTogglePin() {
1567
- return togglePin("bulkBarPlacement");
1568
- },
1569
- onUnset: function onUnset() {
1570
- return unset("bulkBarPlacement");
1571
- }
1572
- }), /* @__PURE__ */_jsx(IconGroup, {
1573
- label: "Select all",
1574
- options: Object.values(SelectAllScope),
1575
- value: getOverride("selectAllScope"),
1576
- onChange: function onChange(v) {
1577
- return set("selectAllScope", v);
1578
- },
1579
- icon: selectAllScopeIcon,
1580
- styles,
1581
- isDark,
1582
- pinned: pinnedKnobs.has("selectAllScope"),
1583
- onTogglePin: function onTogglePin() {
1584
- return togglePin("selectAllScope");
1585
- },
1586
- onUnset: function onUnset() {
1587
- return unset("selectAllScope");
1588
- }
1589
- }), /* @__PURE__ */_jsx(IconGroup, {
1590
- label: "Timestamp",
1591
- options: Object.values(TimestampStyle),
1592
- value: getOverride("timestampStyle"),
1593
- onChange: function onChange(v) {
1594
- return set("timestampStyle", v);
1595
- },
1596
- icon: timestampStyleIcon,
1597
- styles,
1598
- isDark,
1599
- pinned: pinnedKnobs.has("timestampStyle"),
1600
- onTogglePin: function onTogglePin() {
1601
- return togglePin("timestampStyle");
1602
- },
1603
- onUnset: function onUnset() {
1604
- return unset("timestampStyle");
1605
- }
1606
- }), /* @__PURE__ */_jsx(IconGroup, {
1607
- label: "Disabled",
1608
- options: Object.values(DisabledStyle),
1609
- value: getOverride("disabledStyle"),
1610
- onChange: function onChange(v) {
1611
- return set("disabledStyle", v);
1612
- },
1613
- icon: disabledStyleIcon,
1614
- styles,
1615
- isDark,
1616
- pinned: pinnedKnobs.has("disabledStyle"),
1617
- onTogglePin: function onTogglePin() {
1618
- return togglePin("disabledStyle");
1619
- },
1620
- onUnset: function onUnset() {
1621
- return unset("disabledStyle");
1622
- }
1623
- }), /* @__PURE__ */_jsx(IconGroup, {
1624
- label: "Autofocus",
1625
- options: Object.values(FormAutofocus),
1626
- value: getOverride("formAutofocus"),
1627
- onChange: function onChange(v) {
1628
- return set("formAutofocus", v);
1629
- },
1630
- icon: formAutofocusIcon,
1631
- styles,
1632
- isDark,
1633
- pinned: pinnedKnobs.has("formAutofocus"),
1634
- onTogglePin: function onTogglePin() {
1635
- return togglePin("formAutofocus");
1636
- },
1637
- onUnset: function onUnset() {
1638
- return unset("formAutofocus");
1639
- }
1640
- }), /* @__PURE__ */_jsxs("div", {
1641
- style: {
1642
- ...styles.card,
1643
- flexDirection: "row",
1644
- gap: 6,
1645
- flexWrap: "wrap"
1646
- },
1647
- children: [/* @__PURE__ */_jsx("select", {
1648
- title: "Design system profile",
1649
- value: activeProfile,
1650
- onChange: function onChange(e) {
1651
- return handleProfileChange(e.target.value);
1652
- },
1653
- style: {
1654
- ...styles.select,
1655
- width: "auto",
1656
- fontSize: 11,
1657
- opacity: activeProfile ? 1 : 0.6
1658
- },
1659
- children: profileNames.map(function (name) {
1660
- return /* @__PURE__ */_jsx("option", {
1661
- value: name,
1662
- children: name || "profile"
1663
- }, name);
1664
- })
1665
- }), /* @__PURE__ */_jsx("button", {
1666
- type: "button",
1667
- style: {
1668
- ...styles.resetBtn,
1669
- ...(copyStatus === "copied" ? {
1670
- background: isDark ? "#1a3a1a" : "#d4edda",
1671
- borderColor: isDark ? "#2d5a2d" : "#a3d9a5"
1672
- } : copyStatus === "error" ? {
1673
- background: isDark ? "#3a1a1a" : "#f8d7da",
1674
- borderColor: isDark ? "#5a2d2d" : "#f5c6cb"
1675
- } : {})
1676
- },
1677
- onClick: handleCopySnapshot,
1678
- "aria-label": copyStatus === "copied" ? "Copied" : copyStatus === "error" ? "Copy failed" : "Copy snapshot",
1679
- children: copyStatus === "copied" ? "\u2713" : copyStatus === "error" ? "!" : "\u29C9"
1680
- }), /* @__PURE__ */_jsx("button", {
1681
- type: "button",
1682
- style: styles.resetBtn,
1683
- onClick: handleRandomize,
1684
- children: "Random"
1685
- }), /* @__PURE__ */_jsx("button", {
1686
- type: "button",
1687
- style: styles.iconBtn(false),
1688
- onClick: handleToggleAllStates,
1689
- title: allStateKnobsExpanded ? "Collapse States" : "Expand States",
1690
- "aria-label": allStateKnobsExpanded ? "Collapse States" : "Expand States",
1691
- children: /* @__PURE__ */_jsxs("svg", {
1692
- width: "14",
1693
- height: "14",
1694
- viewBox: "0 0 16 16",
1695
- fill: "none",
1696
- role: "img",
1697
- "aria-label": "States",
1698
- children: [/* @__PURE__ */_jsx("title", {
1699
- children: allStateKnobsExpanded ? "Collapse States" : "Expand States"
1700
- }), /* @__PURE__ */_jsx("path", {
1701
- d: "M2.5 4.5h7M2.5 8h7M2.5 11.5h7",
1702
- stroke: "currentColor",
1703
- strokeWidth: "1.3",
1704
- strokeLinecap: "round"
1705
- }), /* @__PURE__ */_jsx("path", {
1706
- d: allStateKnobsExpanded ? "M12 10.5l-2-2 2-2" : "M10 6.5l2 2-2 2",
1707
- stroke: "currentColor",
1708
- strokeWidth: "1.3",
1709
- strokeLinecap: "round",
1710
- strokeLinejoin: "round"
1711
- })]
1712
- })
1713
- }), /* @__PURE__ */_jsx("button", {
1714
- type: "button",
1715
- style: styles.iconBtn(false),
1716
- onClick: handleApplyDefaults,
1717
- title: "Apply Defaults",
1718
- "aria-label": "Apply Defaults",
1719
- children: /* @__PURE__ */_jsxs("svg", {
1720
- width: "14",
1721
- height: "14",
1722
- viewBox: "0 0 16 16",
1723
- fill: "none",
1724
- role: "img",
1725
- "aria-label": "Defaults",
1726
- children: [/* @__PURE__ */_jsx("title", {
1727
- children: "Apply Defaults"
1728
- }), /* @__PURE__ */_jsx("path", {
1729
- d: "M2.5 4.5h11M2.5 8h11M2.5 11.5h11",
1730
- stroke: "currentColor",
1731
- strokeWidth: "1.3",
1732
- strokeLinecap: "round"
1733
- }), /* @__PURE__ */_jsx("circle", {
1734
- cx: "5",
1735
- cy: "4.5",
1736
- r: "1.2",
1737
- fill: "currentColor"
1738
- }), /* @__PURE__ */_jsx("circle", {
1739
- cx: "8",
1740
- cy: "8",
1741
- r: "1.2",
1742
- fill: "currentColor"
1743
- }), /* @__PURE__ */_jsx("circle", {
1744
- cx: "11",
1745
- cy: "11.5",
1746
- r: "1.2",
1747
- fill: "currentColor"
1748
- })]
1749
- })
1750
- }), /* @__PURE__ */_jsx("button", {
1751
- type: "button",
1752
- style: styles.iconBtn(false),
1753
- onClick: handleClearKnobs,
1754
- title: "Clear",
1755
- "aria-label": "Clear",
1756
- children: /* @__PURE__ */_jsxs("svg", {
1757
- width: "14",
1758
- height: "14",
1759
- viewBox: "0 0 16 16",
1760
- fill: "none",
1761
- role: "img",
1762
- "aria-label": "Clear",
1763
- children: [/* @__PURE__ */_jsx("title", {
1764
- children: "Clear"
1765
- }), /* @__PURE__ */_jsx("path", {
1766
- d: "M3.5 3.5l9 9M12.5 3.5l-9 9",
1767
- stroke: "currentColor",
1768
- strokeWidth: "1.4",
1769
- strokeLinecap: "round"
1770
- })]
1771
- })
1772
- })]
1773
- })]
1774
- }), /* ── Color palette ── */
1775
- /* @__PURE__ */_jsx(ColorLineVisualizer, {
1776
- knobs,
1777
- isDark,
1778
- themeColors: extractThemeTokenColors(tamaguiConfig, isDark ? "dark" : "light", currentThemeColor || void 0),
1779
- oppositeThemeColors: extractThemeTokenColors(tamaguiConfig, isDark ? "light" : "dark", currentThemeColor || void 0),
1780
- accentColors: extractThemeTokenColors(tamaguiConfig, isDark ? "dark" : "light", currentThemeColor || void 0, "accent"),
1781
- oppositeAccentColors: extractThemeTokenColors(tamaguiConfig, isDark ? "light" : "dark", currentThemeColor || void 0, "accent")
1782
- })]
1783
- });
1
+ function ThemeDevtoolsPanel(_props) {
2
+ return null;
1784
3
  }
1785
4
  export { ThemeDevtoolsPanel };
1786
5
  //# sourceMappingURL=ThemeDevtoolsPanel.native.js.map