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