@particle-academy/react-fancy 5.54.0 → 5.54.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -0
- package/dist/button.cjs +4 -4
- package/dist/button.js +2 -2
- package/dist/chat-drawer.cjs +3 -3
- package/dist/chat-drawer.js +2 -2
- package/dist/chunk-2O5UXH5R.cjs +191 -0
- package/dist/chunk-2O5UXH5R.cjs.map +1 -0
- package/dist/{chunk-Y6LL3B5P.js → chunk-4FZOH7BJ.js} +3 -3
- package/dist/{chunk-Y6LL3B5P.js.map → chunk-4FZOH7BJ.js.map} +1 -1
- package/dist/{chunk-VP7MT7LH.cjs → chunk-6XX6OHAP.cjs} +17 -17
- package/dist/{chunk-VP7MT7LH.cjs.map → chunk-6XX6OHAP.cjs.map} +1 -1
- package/dist/{chunk-N7ABDCQ6.cjs → chunk-7R7HENZG.cjs} +11 -11
- package/dist/{chunk-N7ABDCQ6.cjs.map → chunk-7R7HENZG.cjs.map} +1 -1
- package/dist/{chunk-X7H75WVP.cjs → chunk-BJKKW77L.cjs} +17 -8
- package/dist/chunk-BJKKW77L.cjs.map +1 -0
- package/dist/{chunk-CAMQ5B3V.cjs → chunk-C5YX5XVL.cjs} +22 -16
- package/dist/chunk-C5YX5XVL.cjs.map +1 -0
- package/dist/{chunk-EJ6P7K4G.js → chunk-DAJPPKPO.js} +3 -3
- package/dist/{chunk-EJ6P7K4G.js.map → chunk-DAJPPKPO.js.map} +1 -1
- package/dist/chunk-DXZCKDYS.js +189 -0
- package/dist/chunk-DXZCKDYS.js.map +1 -0
- package/dist/chunk-I27K6NLX.cjs +15 -0
- package/dist/chunk-I27K6NLX.cjs.map +1 -0
- package/dist/{chunk-IVRYSSM7.js → chunk-J3A4Z2P7.js} +2 -2
- package/dist/chunk-J3A4Z2P7.js.map +1 -0
- package/dist/{chunk-2MUGEPRD.js → chunk-KQYOIPHQ.js} +5 -5
- package/dist/{chunk-2MUGEPRD.js.map → chunk-KQYOIPHQ.js.map} +1 -1
- package/dist/{chunk-EEFWVFKO.js → chunk-KUJ5XRBD.js} +7 -4
- package/dist/chunk-KUJ5XRBD.js.map +1 -0
- package/dist/{chunk-TFKG5FSG.cjs → chunk-LVE6ERRS.cjs} +4 -4
- package/dist/{chunk-TFKG5FSG.cjs.map → chunk-LVE6ERRS.cjs.map} +1 -1
- package/dist/{chunk-QKFOJKVE.cjs → chunk-MXWR3T3N.cjs} +2 -2
- package/dist/chunk-MXWR3T3N.cjs.map +1 -0
- package/dist/{chunk-G4M3MCJO.cjs → chunk-ONHT2PDW.cjs} +4 -4
- package/dist/{chunk-G4M3MCJO.cjs.map → chunk-ONHT2PDW.cjs.map} +1 -1
- package/dist/{chunk-2KFHSFFY.cjs → chunk-SIEPD6NR.cjs} +4 -4
- package/dist/{chunk-2KFHSFFY.cjs.map → chunk-SIEPD6NR.cjs.map} +1 -1
- package/dist/chunk-SV5BW3IA.js +13 -0
- package/dist/chunk-SV5BW3IA.js.map +1 -0
- package/dist/{chunk-CF5KRDN4.js → chunk-TGBLDJ72.js} +18 -9
- package/dist/chunk-TGBLDJ72.js.map +1 -0
- package/dist/{chunk-26JZ47BJ.js → chunk-TLRRMYNV.js} +18 -12
- package/dist/chunk-TLRRMYNV.js.map +1 -0
- package/dist/{chunk-QFC736WY.js → chunk-WE5WGVVX.js} +3 -3
- package/dist/{chunk-QFC736WY.js.map → chunk-WE5WGVVX.js.map} +1 -1
- package/dist/{chunk-YVTFODCJ.cjs → chunk-WUG646R4.cjs} +6 -3
- package/dist/chunk-WUG646R4.cjs.map +1 -0
- package/dist/{chunk-OC5OUZSD.js → chunk-YBRQTZKV.js} +4 -4
- package/dist/{chunk-OC5OUZSD.js.map → chunk-YBRQTZKV.js.map} +1 -1
- package/dist/icon.cjs +7 -7
- package/dist/icon.js +1 -1
- package/dist/index.cjs +40 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/inputs.cjs +5 -4
- package/dist/inputs.js +3 -2
- package/dist/json-editor.cjs +15 -15
- package/dist/json-editor.js +4 -4
- package/dist/magic-wand.cjs +4 -4
- package/dist/magic-wand.js +3 -3
- package/dist/multi-switch.cjs +3 -2
- package/dist/multi-switch.js +2 -1
- package/dist/prompt-input.cjs +6 -5
- package/dist/prompt-input.js +5 -4
- package/dist/reason-tag.cjs +4 -4
- package/dist/reason-tag.js +3 -3
- package/dist/switch.cjs +2 -2
- package/dist/switch.js +1 -1
- package/dist/tooltip.cjs +3 -2
- package/dist/tooltip.js +2 -1
- package/package.json +1 -1
- package/dist/chunk-26JZ47BJ.js.map +0 -1
- package/dist/chunk-CAMQ5B3V.cjs.map +0 -1
- package/dist/chunk-CF5KRDN4.js.map +0 -1
- package/dist/chunk-EEFWVFKO.js.map +0 -1
- package/dist/chunk-IVRYSSM7.js.map +0 -1
- package/dist/chunk-QKFOJKVE.cjs.map +0 -1
- package/dist/chunk-RVBTDXPD.cjs +0 -169
- package/dist/chunk-RVBTDXPD.cjs.map +0 -1
- package/dist/chunk-VQXXX6DK.js +0 -167
- package/dist/chunk-VQXXX6DK.js.map +0 -1
- package/dist/chunk-X7H75WVP.cjs.map +0 -1
- package/dist/chunk-YVTFODCJ.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [5.54.2] - 2026-10-21
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **The default `Button`'s fill follows the theme tokens.** (PR #37; pinned by
|
|
19
|
+
`tests/button-default-tokens.test.tsx`, which fails on 5.54.1.) **Nothing to
|
|
20
|
+
do:** with no tokens set, its computed colours are identical to 5.54.1 in
|
|
21
|
+
light and dark, verified in a browser. Its text and
|
|
22
|
+
border already read `--fancy-text-soft` and `--fancy-border`; its background
|
|
23
|
+
and light hover were still raw `bg-white` / `dark:bg-zinc-800` /
|
|
24
|
+
`hover:bg-zinc-50` / `hover:border-zinc-300`, so a host palette recoloured
|
|
25
|
+
everything around a default button but the button itself. They now read
|
|
26
|
+
`--fancy-surface` (light), `--fancy-surface-muted-dark` (dark),
|
|
27
|
+
`--fancy-surface-hover` and `--fancy-border-strong`, each falling back to
|
|
28
|
+
the colour it was. A host that sets no tokens renders exactly as before.
|
|
29
|
+
- **Not yet tokenised:** the dark hover (`dark:hover:bg-zinc-700`). No role
|
|
30
|
+
defaults to zinc-700 for a fill; `--fancy-surface-hover-dark` defaults to
|
|
31
|
+
a translucent zinc-800, which on a zinc-800 button would all but erase the
|
|
32
|
+
hover. A `control-hover` role (or a different default) is the owner's call.
|
|
33
|
+
|
|
34
|
+
## [5.54.1] - 2026-10-21
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **A `Button` narrower than its label now wraps the label inside itself.**
|
|
39
|
+
The showcase's own "Constrained width" example (104px columns, captioned
|
|
40
|
+
"multi-word labels stack left-aligned, icon stays put") had its labels
|
|
41
|
+
spilling past the buttons and over each other: the label carried
|
|
42
|
+
`whitespace-nowrap`, so text 92-116px wide had nowhere to go in a 54px slot.
|
|
43
|
+
It now wraps, left-aligned, with the icon staying put beside it; words are
|
|
44
|
+
never split. An unconstrained button is unchanged -- measured in Chrome, every
|
|
45
|
+
width and height in the probe row is identical to 5.54.0.
|
|
46
|
+
- **Want one line with an ellipsis instead?** `labelClassName="truncate"`.
|
|
47
|
+
The label has `min-w-0` and no white-space class of its own, so `truncate`
|
|
48
|
+
wins uncontested inside a button whose width you set (`w-full` in a narrow
|
|
49
|
+
column, `w-24`, `max-w-[120px]`, ...).
|
|
50
|
+
- **What to DO:** nothing, unless you relied on a squeezed button keeping its
|
|
51
|
+
label on one line (a flex row narrower than its buttons, a "send →" label
|
|
52
|
+
whose arrow is part of the text). 4.4.1 made that the default; it is now
|
|
53
|
+
opt-in: add `labelClassName="whitespace-nowrap"` to that button, or
|
|
54
|
+
`shrink-0` so the row cannot squeeze it.
|
|
55
|
+
- **`Switch` honours `labelHidden`.** It was ignored, so the label was always
|
|
56
|
+
drawn. It is now visually hidden (`sr-only`) and still names the control, as
|
|
57
|
+
on Input, Field, DatePicker and CheckboxGroup.
|
|
58
|
+
- **`aria-*` on a `Switch` now names the switch, not its wrapper.** Rest props
|
|
59
|
+
were spread on the wrapping `<div>`, so `aria-label` / `aria-labelledby`
|
|
60
|
+
labelled a div and left the `role="switch"` button unnamed. The split: every
|
|
61
|
+
`aria-*` prop goes on the button; everything else -- `className`, `style`,
|
|
62
|
+
`data-*`, event handlers -- stays on the wrapper exactly as before. (In
|
|
63
|
+
`mode="view"`, where there is no button, `aria-*` stays on the wrapper.)
|
|
64
|
+
- **`Switch`'s unchecked track reads the `border` token** (`--fancy-border` /
|
|
65
|
+
`--fancy-border-dark`) instead of hard-coded zinc. Set nothing and nothing
|
|
66
|
+
changes: the fallbacks are today's `zinc-200` / `zinc-600` (the dark one is
|
|
67
|
+
one step lighter than the role's `zinc-700` default, so a track still reads
|
|
68
|
+
against a dark surface; listed as a deliberate exception in the token test).
|
|
69
|
+
- **A `MultiSwitch` directly inside a `Tooltip` lost its selected thumb.**
|
|
70
|
+
Two halves, both fixed. `Tooltip` cloned its child with its own `ref` and
|
|
71
|
+
`onMouseEnter` / `onMouseLeave` / `onFocus` / `onBlur`, REPLACING the child's;
|
|
72
|
+
they are now composed, so a child's own ref and handlers keep working. And in
|
|
73
|
+
React 19 a ref reaches a function component as a plain prop, so the
|
|
74
|
+
Tooltip's ref arrived in `MultiSwitch`'s rest props and replaced the ref its
|
|
75
|
+
thumb is measured from; `MultiSwitch` now feeds both. A `ref` you put on a
|
|
76
|
+
`MultiSwitch` yourself reaches its radiogroup too. If you wrapped the switch
|
|
77
|
+
in a `<span>` to work around this, the wrapper can go.
|
|
78
|
+
- The same report said the switch also lost its `className`. It does not:
|
|
79
|
+
the class is in the DOM and paints in light mode, directly inside a Tooltip
|
|
80
|
+
or not. In DARK mode a bare `border-green-500` loses to the component's own
|
|
81
|
+
`dark:border-*`, with or without a Tooltip -- add `dark:border-green-500`.
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- Docs only: `icon-config.ts`'s comments now say `<Icon name="github-logo" />`
|
|
86
|
+
resolves the brand mark. fancy-brand-icons 0.4.0 registers every mark as
|
|
87
|
+
`<brand>-logo`, so a bare `github` is Lucide's icon.
|
|
88
|
+
|
|
14
89
|
## [5.54.0] - 2026-10-21
|
|
15
90
|
|
|
16
91
|
### Added
|
package/dist/button.cjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('./chunk-M5MUGSON.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkC5YX5XVL_cjs = require('./chunk-C5YX5XVL.cjs');
|
|
5
5
|
require('./chunk-X2FC7ODX.cjs');
|
|
6
6
|
require('./chunk-XCZZVRBY.cjs');
|
|
7
|
-
require('./chunk-
|
|
7
|
+
require('./chunk-MXWR3T3N.cjs');
|
|
8
8
|
require('./chunk-ZU5Q77OT.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
Object.defineProperty(exports, "Action", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkC5YX5XVL_cjs.Action; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "Button", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunkC5YX5XVL_cjs.Button; }
|
|
19
19
|
});
|
|
20
20
|
//# sourceMappingURL=button.cjs.map
|
|
21
21
|
//# sourceMappingURL=button.cjs.map
|
package/dist/button.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import './chunk-LQ4ICCN2.js';
|
|
2
|
-
export { Action, Button } from './chunk-
|
|
2
|
+
export { Action, Button } from './chunk-TLRRMYNV.js';
|
|
3
3
|
import './chunk-6TBRBN7H.js';
|
|
4
4
|
import './chunk-45BBNJQD.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-J3A4Z2P7.js';
|
|
6
6
|
import './chunk-MMW2JGKZ.js';
|
|
7
7
|
//# sourceMappingURL=button.js.map
|
|
8
8
|
//# sourceMappingURL=button.js.map
|
package/dist/chat-drawer.cjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkONHT2PDW_cjs = require('./chunk-ONHT2PDW.cjs');
|
|
4
4
|
require('./chunk-AIA5UNQ5.cjs');
|
|
5
|
-
require('./chunk-
|
|
5
|
+
require('./chunk-MXWR3T3N.cjs');
|
|
6
6
|
require('./chunk-ZU5Q77OT.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, "ChatDrawer", {
|
|
11
11
|
enumerable: true,
|
|
12
|
-
get: function () { return
|
|
12
|
+
get: function () { return chunkONHT2PDW_cjs.ChatDrawer; }
|
|
13
13
|
});
|
|
14
14
|
//# sourceMappingURL=chat-drawer.cjs.map
|
|
15
15
|
//# sourceMappingURL=chat-drawer.cjs.map
|
package/dist/chat-drawer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { ChatDrawer } from './chunk-
|
|
1
|
+
export { ChatDrawer } from './chunk-WE5WGVVX.js';
|
|
2
2
|
import './chunk-TJ66S5K6.js';
|
|
3
|
-
import './chunk-
|
|
3
|
+
import './chunk-J3A4Z2P7.js';
|
|
4
4
|
import './chunk-MMW2JGKZ.js';
|
|
5
5
|
//# sourceMappingURL=chat-drawer.js.map
|
|
6
6
|
//# sourceMappingURL=chat-drawer.js.map
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkO3F6DYWR_cjs = require('./chunk-O3F6DYWR.cjs');
|
|
4
|
+
var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
|
|
5
|
+
var chunkL3V3BYVS_cjs = require('./chunk-L3V3BYVS.cjs');
|
|
6
|
+
var chunkSNHU2AI4_cjs = require('./chunk-SNHU2AI4.cjs');
|
|
7
|
+
var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
|
|
11
|
+
// src/components/inputs/Switch/Switch.colors.ts
|
|
12
|
+
var switchTrack = {
|
|
13
|
+
// The host's colour, from CSS variables -- no dark: variant, because a
|
|
14
|
+
// host that themes per mode scopes the variables themselves.
|
|
15
|
+
brand: "bg-brand",
|
|
16
|
+
slate: "bg-slate-500",
|
|
17
|
+
gray: "bg-gray-500",
|
|
18
|
+
zinc: "bg-zinc-500",
|
|
19
|
+
neutral: "bg-neutral-500",
|
|
20
|
+
stone: "bg-stone-500",
|
|
21
|
+
red: "bg-red-500",
|
|
22
|
+
orange: "bg-orange-500",
|
|
23
|
+
amber: "bg-amber-500",
|
|
24
|
+
yellow: "bg-yellow-500",
|
|
25
|
+
lime: "bg-lime-500",
|
|
26
|
+
green: "bg-green-500",
|
|
27
|
+
emerald: "bg-emerald-500",
|
|
28
|
+
teal: "bg-teal-500",
|
|
29
|
+
cyan: "bg-cyan-500",
|
|
30
|
+
sky: "bg-sky-500",
|
|
31
|
+
blue: "bg-blue-500",
|
|
32
|
+
indigo: "bg-indigo-500",
|
|
33
|
+
violet: "bg-violet-500",
|
|
34
|
+
purple: "bg-purple-500",
|
|
35
|
+
fuchsia: "bg-fuchsia-500",
|
|
36
|
+
pink: "bg-pink-500",
|
|
37
|
+
rose: "bg-rose-500"
|
|
38
|
+
};
|
|
39
|
+
var Switch = react.forwardRef(
|
|
40
|
+
({
|
|
41
|
+
size = "md",
|
|
42
|
+
dirty,
|
|
43
|
+
error,
|
|
44
|
+
label,
|
|
45
|
+
labelHidden,
|
|
46
|
+
description,
|
|
47
|
+
required,
|
|
48
|
+
disabled,
|
|
49
|
+
className,
|
|
50
|
+
id,
|
|
51
|
+
name,
|
|
52
|
+
checked: controlledChecked,
|
|
53
|
+
defaultChecked = false,
|
|
54
|
+
onCheckedChange,
|
|
55
|
+
color = "blue",
|
|
56
|
+
mode,
|
|
57
|
+
...rest
|
|
58
|
+
}, ref) => {
|
|
59
|
+
const wrapperProps = {};
|
|
60
|
+
const controlAria = {};
|
|
61
|
+
for (const [key, value] of Object.entries(rest)) {
|
|
62
|
+
if (key.startsWith("aria-")) controlAria[key] = value;
|
|
63
|
+
else wrapperProps[key] = value;
|
|
64
|
+
}
|
|
65
|
+
const autoId = react.useId();
|
|
66
|
+
const switchId = id ?? autoId;
|
|
67
|
+
const resolvedMode = chunkL3V3BYVS_cjs.useFieldMode(mode);
|
|
68
|
+
const { showControl, interactive, enterEdit, exitEdit } = chunkKJ22KE56_cjs.useInlineEdit(resolvedMode, disabled);
|
|
69
|
+
const [checked, setChecked] = chunkSNHU2AI4_cjs.useControllableState(
|
|
70
|
+
controlledChecked,
|
|
71
|
+
defaultChecked,
|
|
72
|
+
onCheckedChange
|
|
73
|
+
);
|
|
74
|
+
const trackSizes = {
|
|
75
|
+
xs: "h-3.5 w-6",
|
|
76
|
+
sm: "h-4 w-7",
|
|
77
|
+
md: "h-5 w-9",
|
|
78
|
+
lg: "h-6 w-11",
|
|
79
|
+
xl: "h-7 w-[52px]"
|
|
80
|
+
}[size];
|
|
81
|
+
const knobSizes = {
|
|
82
|
+
xs: "h-2.5 w-2.5",
|
|
83
|
+
sm: "h-3 w-3",
|
|
84
|
+
md: "h-4 w-4",
|
|
85
|
+
lg: "h-5 w-5",
|
|
86
|
+
xl: "h-6 w-6"
|
|
87
|
+
}[size];
|
|
88
|
+
const translateOn = {
|
|
89
|
+
xs: "translate-x-2.5",
|
|
90
|
+
sm: "translate-x-3",
|
|
91
|
+
md: "translate-x-4",
|
|
92
|
+
lg: "translate-x-5",
|
|
93
|
+
xl: "translate-x-6"
|
|
94
|
+
}[size];
|
|
95
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
96
|
+
"div",
|
|
97
|
+
{
|
|
98
|
+
...wrapperProps,
|
|
99
|
+
...showControl ? void 0 : controlAria,
|
|
100
|
+
"data-react-fancy-switch": "",
|
|
101
|
+
className: chunkZU5Q77OT_cjs.cn("flex items-start gap-2", className),
|
|
102
|
+
children: [
|
|
103
|
+
!showControl ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
104
|
+
"span",
|
|
105
|
+
{
|
|
106
|
+
"data-react-fancy-display": "",
|
|
107
|
+
"data-mode": "view",
|
|
108
|
+
role: interactive ? "button" : void 0,
|
|
109
|
+
tabIndex: interactive ? 0 : void 0,
|
|
110
|
+
title: interactive ? "Click to edit" : void 0,
|
|
111
|
+
onClick: interactive ? enterEdit : void 0,
|
|
112
|
+
onKeyDown: interactive ? (e) => {
|
|
113
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
enterEdit();
|
|
116
|
+
}
|
|
117
|
+
} : void 0,
|
|
118
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
119
|
+
"text-sm font-medium text-zinc-700 dark:text-zinc-200",
|
|
120
|
+
interactive && "cursor-pointer rounded-md outline-none transition-colors hover:text-zinc-900 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:text-white"
|
|
121
|
+
),
|
|
122
|
+
children: checked ? "On" : "Off"
|
|
123
|
+
}
|
|
124
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
125
|
+
"button",
|
|
126
|
+
{
|
|
127
|
+
...controlAria,
|
|
128
|
+
ref,
|
|
129
|
+
id: switchId,
|
|
130
|
+
type: "button",
|
|
131
|
+
role: "switch",
|
|
132
|
+
"aria-checked": checked,
|
|
133
|
+
disabled,
|
|
134
|
+
autoFocus: interactive,
|
|
135
|
+
onBlur: () => {
|
|
136
|
+
if (interactive) exitEdit();
|
|
137
|
+
},
|
|
138
|
+
onClick: () => setChecked(!checked),
|
|
139
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
140
|
+
"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
141
|
+
trackSizes,
|
|
142
|
+
// The unchecked track is the `border` role ("tracks"). The dark
|
|
143
|
+
// fallback stays zinc-600, today's colour, not the role's zinc-700
|
|
144
|
+
// default — set nothing, see no change.
|
|
145
|
+
checked ? switchTrack[color] : "bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-600))]",
|
|
146
|
+
chunkO3F6DYWR_cjs.dirtyRingClasses(dirty),
|
|
147
|
+
error && "ring-2 ring-red-500/50"
|
|
148
|
+
),
|
|
149
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
150
|
+
"span",
|
|
151
|
+
{
|
|
152
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
153
|
+
"pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform",
|
|
154
|
+
knobSizes,
|
|
155
|
+
checked ? translateOn : "translate-x-0"
|
|
156
|
+
)
|
|
157
|
+
}
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
name && /* @__PURE__ */ jsxRuntime.jsx("input", { type: "hidden", name, value: checked ? "1" : "0" }),
|
|
162
|
+
(label || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
|
|
163
|
+
label && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
164
|
+
"label",
|
|
165
|
+
{
|
|
166
|
+
htmlFor: switchId,
|
|
167
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
168
|
+
"cursor-pointer text-sm text-zinc-700 dark:text-zinc-100",
|
|
169
|
+
disabled && "cursor-not-allowed opacity-50",
|
|
170
|
+
// Not drawn, still the accessible name (it labels the button).
|
|
171
|
+
labelHidden && "sr-only"
|
|
172
|
+
),
|
|
173
|
+
children: [
|
|
174
|
+
label,
|
|
175
|
+
required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-0.5 text-red-500", children: "*" })
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
),
|
|
179
|
+
description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]", children: description }),
|
|
180
|
+
error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-red-500", children: error })
|
|
181
|
+
] })
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
);
|
|
187
|
+
Switch.displayName = "Switch";
|
|
188
|
+
|
|
189
|
+
exports.Switch = Switch;
|
|
190
|
+
//# sourceMappingURL=chunk-2O5UXH5R.cjs.map
|
|
191
|
+
//# sourceMappingURL=chunk-2O5UXH5R.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/inputs/Switch/Switch.colors.ts","../src/components/inputs/Switch/Switch.tsx"],"names":["forwardRef","useId","useFieldMode","useInlineEdit","useControllableState","jsxs","cn","jsx","dirtyRingClasses"],"mappings":"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","file":"chunk-2O5UXH5R.cjs","sourcesContent":["// AUTO-GENERATED by scripts/gen-switch-colors — do not edit by hand.\n// Literal Tailwind class strings for every color in the v4 palette so the\n// scanner can detect them in the published dist (template-built names are\n// invisible to Tailwind's JIT). Regenerate after changing the palette.\nimport type { Color } from \"../../../utils/types\";\n\nexport const switchTrack: Record<Color, string> = {\n // The host's colour, from CSS variables -- no dark: variant, because a\n // host that themes per mode scopes the variables themselves.\n brand: \"bg-brand\",\n slate: \"bg-slate-500\",\n gray: \"bg-gray-500\",\n zinc: \"bg-zinc-500\",\n neutral: \"bg-neutral-500\",\n stone: \"bg-stone-500\",\n red: \"bg-red-500\",\n orange: \"bg-orange-500\",\n amber: \"bg-amber-500\",\n yellow: \"bg-yellow-500\",\n lime: \"bg-lime-500\",\n green: \"bg-green-500\",\n emerald: \"bg-emerald-500\",\n teal: \"bg-teal-500\",\n cyan: \"bg-cyan-500\",\n sky: \"bg-sky-500\",\n blue: \"bg-blue-500\",\n indigo: \"bg-indigo-500\",\n violet: \"bg-violet-500\",\n purple: \"bg-purple-500\",\n fuchsia: \"bg-fuchsia-500\",\n pink: \"bg-pink-500\",\n rose: \"bg-rose-500\",\n};\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport { dirtyRingClasses } from \"../inputs.utils\";\nimport type { SwitchProps } from \"./Switch.types\";\nimport { switchTrack } from \"./Switch.colors\";\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n labelHidden,\n description,\n required,\n disabled,\n className,\n id,\n name,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n color = \"blue\",\n mode,\n ...rest\n },\n ref,\n ) => {\n // `aria-*` names and describes the CONTROL, so it goes on the role=\"switch\"\n // button; everything else (className, style, data-*, handlers) stays on the\n // wrapper, where it has always gone. On the wrapper, an `aria-label` named a\n // div and left the switch itself unnamed.\n const wrapperProps: Record<string, unknown> = {};\n const controlAria: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(rest)) {\n if (key.startsWith(\"aria-\")) controlAria[key] = value;\n else wrapperProps[key] = value;\n }\n\n const autoId = useId();\n const switchId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n const [checked, setChecked] = useControllableState(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n );\n\n const trackSizes = {\n xs: \"h-3.5 w-6\",\n sm: \"h-4 w-7\",\n md: \"h-5 w-9\",\n lg: \"h-6 w-11\",\n xl: \"h-7 w-[52px]\",\n }[size];\n\n const knobSizes = {\n xs: \"h-2.5 w-2.5\",\n sm: \"h-3 w-3\",\n md: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n const translateOn = {\n xs: \"translate-x-2.5\",\n sm: \"translate-x-3\",\n md: \"translate-x-4\",\n lg: \"translate-x-5\",\n xl: \"translate-x-6\",\n }[size];\n\n return (\n <div\n {...wrapperProps}\n // View mode has no switch to name, so its aria-* stay on the wrapper.\n {...(showControl ? undefined : controlAria)}\n data-react-fancy-switch=\"\" className={cn(\"flex items-start gap-2\", className)}>\n {!showControl ? (\n <span\n data-react-fancy-display=\"\"\n data-mode=\"view\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n title={interactive ? \"Click to edit\" : undefined}\n onClick={interactive ? enterEdit : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n enterEdit();\n }\n }\n : undefined\n }\n className={cn(\n \"text-sm font-medium text-zinc-700 dark:text-zinc-200\",\n interactive &&\n \"cursor-pointer rounded-md outline-none transition-colors hover:text-zinc-900 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:text-white\",\n )}\n >\n {checked ? \"On\" : \"Off\"}\n </span>\n ) : (\n <button\n {...controlAria}\n ref={ref}\n id={switchId}\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n autoFocus={interactive}\n onBlur={() => {\n if (interactive) exitEdit();\n }}\n onClick={() => setChecked(!checked)}\n className={cn(\n \"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n trackSizes,\n // The unchecked track is the `border` role (\"tracks\"). The dark\n // fallback stays zinc-600, today's colour, not the role's zinc-700\n // default — set nothing, see no change.\n checked\n ? switchTrack[color]\n : \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-600))]\",\n dirtyRingClasses(dirty),\n error && \"ring-2 ring-red-500/50\",\n )}\n >\n <span\n className={cn(\n \"pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform\",\n knobSizes,\n checked ? translateOn : \"translate-x-0\",\n )}\n />\n </button>\n )}\n {name && (\n <input type=\"hidden\" name={name} value={checked ? \"1\" : \"0\"} />\n )}\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label\n htmlFor={switchId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-100\",\n disabled && \"cursor-not-allowed opacity-50\",\n // Not drawn, still the accessible name (it labels the button).\n labelHidden && \"sr-only\",\n )}\n >\n {label}\n {required && <span className=\"ml-0.5 text-red-500\">*</span>}\n </label>\n )}\n {description && (\n <span className=\"text-xs text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\">\n {description}\n </span>\n )}\n {error && <span className=\"text-xs text-red-500\">{error}</span>}\n </div>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Popover } from './chunk-XYOT75HH.js';
|
|
2
|
-
import { Button } from './chunk-
|
|
2
|
+
import { Button } from './chunk-TLRRMYNV.js';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
5
|
var CONFIDENCE_TIERS = [
|
|
@@ -113,5 +113,5 @@ function ReasonTag({
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
export { ReasonTag };
|
|
116
|
-
//# sourceMappingURL=chunk-
|
|
117
|
-
//# sourceMappingURL=chunk-
|
|
116
|
+
//# sourceMappingURL=chunk-4FZOH7BJ.js.map
|
|
117
|
+
//# sourceMappingURL=chunk-4FZOH7BJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ReasonTag/ReasonTag.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/ReasonTag/ReasonTag.tsx"],"names":[],"mappings":"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","file":"chunk-4FZOH7BJ.js","sourcesContent":["import { Popover } from \"../Popover\";\nimport { Button } from \"../Button\";\n\n/**\n * ReasonTag — wraps any value with a small affordance that reveals the\n * agent's reasoning, sources, and confidence on hover or click.\n *\n * <ReasonTag\n * value=\"$1.4M\"\n * reason=\"Projected Q3 ARR after stacking renewals.\"\n * confidence={0.91}\n * sources={[{ label: \"Q2 actuals · CRM export\" }]}\n * by=\"Forecaster\"\n * />\n *\n * Three visual styles:\n * • \"dot\" — value with a tiny coloured dot (default, subtle)\n * • \"underline\" — dotted underline + trailing \"?\"\n * • \"chip\" — full coloured pill (loud)\n *\n * Confidence drives the colour via three tiers (high / medium / low),\n * so a quick visual scan tells the human which suggestions deserve a\n * second look without opening any tooltips.\n *\n * `pinned` swaps the popover for an inline annotation slot — useful\n * when explainability should always be visible, not buried in a hover.\n */\nexport type ReasonTagSource = { label: string; href?: string };\n\nexport type ReasonTagTheme = \"dot\" | \"underline\" | \"chip\";\n\nexport interface ReasonTagProps {\n /** The value the tag wraps — usually a number, label, or short phrase. */\n value: React.ReactNode;\n /** Free-text rationale shown in the popover / inline annotation. */\n reason: string;\n /** 0..1 confidence. Drives the tier colour. Defaults to 1. */\n confidence?: number;\n /** Optional list of sources (label + optional href). */\n sources?: ReasonTagSource[];\n /** Optional author / agent name shown in the popover header. */\n by?: string;\n /** Visual treatment for the trigger. */\n theme?: ReasonTagTheme;\n /**\n * When true, the popover is replaced with an always-visible inline\n * annotation below the value.\n */\n pinned?: boolean;\n /** Called when the user hits the \"ask follow-up\" action. */\n onFollowUp?: () => void;\n /** Optional className applied to the trigger element. */\n className?: string;\n}\n\nconst CONFIDENCE_TIERS: Array<{ min: number; color: string; label: string }> = [\n { min: 0.85, color: \"#10b981\", label: \"high\" },\n { min: 0.6, color: \"#f59e0b\", label: \"medium\" },\n { min: 0, color: \"#ef4444\", label: \"low\" },\n];\n\nfunction tier(c: number) {\n return CONFIDENCE_TIERS.find((t) => c >= t.min) ?? CONFIDENCE_TIERS[2];\n}\n\nexport function ReasonTag({\n value,\n reason,\n confidence = 1,\n sources = [],\n by,\n theme = \"dot\",\n pinned = false,\n onFollowUp,\n className,\n}: ReasonTagProps) {\n const t = tier(confidence);\n\n const trigger =\n theme === \"chip\" ? (\n <span\n className={`inline-flex cursor-help items-center gap-1 rounded-full px-2 py-0.5 text-[12px] font-medium ${className ?? \"\"}`}\n style={{ backgroundColor: t.color + \"22\", color: t.color }}\n >\n <span\n className=\"h-1.5 w-1.5 rounded-full\"\n style={{ backgroundColor: t.color }}\n />\n {value}\n <span className=\"text-[10px] opacity-70\">?</span>\n </span>\n ) : theme === \"underline\" ? (\n <span\n className={`cursor-help underline decoration-dotted underline-offset-2 ${className ?? \"\"}`}\n style={{ textDecorationColor: t.color }}\n >\n {value}\n <span\n className=\"ml-0.5 font-mono text-[10px]\"\n style={{ color: t.color }}\n >\n ?\n </span>\n </span>\n ) : (\n <span className={`inline-flex cursor-help items-baseline gap-1 ${className ?? \"\"}`}>\n <span className=\"font-medium\">{value}</span>\n <span\n className=\"inline-block h-1.5 w-1.5 rounded-full align-middle\"\n style={{ backgroundColor: t.color }}\n title=\"reason available\"\n />\n </span>\n );\n\n if (pinned) {\n return (\n <span className=\"inline-flex flex-col items-start gap-0.5 align-top\">\n {trigger}\n <span\n className=\"block max-w-[280px] rounded border-l-2 pl-2 text-[11px] leading-snug text-zinc-600 dark:text-zinc-300\"\n style={{ borderColor: t.color }}\n >\n {reason}\n </span>\n </span>\n );\n }\n\n return (\n <Popover hover>\n <Popover.Trigger>{trigger}</Popover.Trigger>\n <Popover.Content>\n <div className=\"w-72 space-y-2 text-sm\">\n <div className=\"flex items-baseline gap-2\">\n <span\n className=\"text-[10px] font-semibold uppercase tracking-wider\"\n style={{ color: t.color }}\n >\n {t.label} confidence · {(confidence * 100).toFixed(0)}%\n </span>\n {by && (\n <span className=\"ml-auto font-mono text-[10px] text-zinc-400\">\n @{by}\n </span>\n )}\n </div>\n <p className=\"text-[13px] leading-snug text-zinc-700 dark:text-zinc-200\">\n {reason}\n </p>\n {sources.length > 0 && (\n <div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-400\">\n sources\n </div>\n <ul className=\"mt-0.5 space-y-0.5 text-[12px]\">\n {sources.map((s, i) => (\n <li key={i}>\n {s.href ? (\n <a className=\"text-violet-600 hover:underline\" href={s.href}>\n {s.label}\n </a>\n ) : (\n <span className=\"text-zinc-600 dark:text-zinc-300\">\n {s.label}\n </span>\n )}\n </li>\n ))}\n </ul>\n </div>\n )}\n {onFollowUp && (\n <div className=\"flex justify-end pt-1\">\n <Button size=\"sm\" variant=\"ghost\" onClick={onFollowUp}>\n ask follow-up\n </Button>\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover>\n );\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkJRRYYW3Y_cjs = require('./chunk-JRRYYW3Y.cjs');
|
|
4
4
|
var chunkGLGUQGAQ_cjs = require('./chunk-GLGUQGAQ.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunk2O5UXH5R_cjs = require('./chunk-2O5UXH5R.cjs');
|
|
6
6
|
var chunkTLRFXSPA_cjs = require('./chunk-TLRFXSPA.cjs');
|
|
7
7
|
var chunkMAZEX4EZ_cjs = require('./chunk-MAZEX4EZ.cjs');
|
|
8
8
|
var chunkP53432AK_cjs = require('./chunk-P53432AK.cjs');
|
|
@@ -11,7 +11,7 @@ var chunk4XMBXG4K_cjs = require('./chunk-4XMBXG4K.cjs');
|
|
|
11
11
|
var chunkGKLETY7D_cjs = require('./chunk-GKLETY7D.cjs');
|
|
12
12
|
var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
|
|
13
13
|
var chunkMOU6O324_cjs = require('./chunk-MOU6O324.cjs');
|
|
14
|
-
var
|
|
14
|
+
var chunkC5YX5XVL_cjs = require('./chunk-C5YX5XVL.cjs');
|
|
15
15
|
var chunkLCNHEYIM_cjs = require('./chunk-LCNHEYIM.cjs');
|
|
16
16
|
var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
|
|
17
17
|
var react = require('react');
|
|
@@ -512,7 +512,7 @@ function JsonEditorValue({ node, mode, size, readOnly, id, onCommit }) {
|
|
|
512
512
|
switch (node.type) {
|
|
513
513
|
case "boolean":
|
|
514
514
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
515
|
-
|
|
515
|
+
chunk2O5UXH5R_cjs.Switch,
|
|
516
516
|
{
|
|
517
517
|
...common,
|
|
518
518
|
checked: value === true,
|
|
@@ -692,7 +692,7 @@ function JsonEditorRow({ node }) {
|
|
|
692
692
|
children: [
|
|
693
693
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 px-2", style: { paddingInlineStart: depth * INDENT + 8 }, children: [
|
|
694
694
|
container ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
695
|
-
|
|
695
|
+
chunkC5YX5XVL_cjs.Button,
|
|
696
696
|
{
|
|
697
697
|
variant: "ghost",
|
|
698
698
|
size: "xs",
|
|
@@ -767,7 +767,7 @@ function JsonEditorRow({ node }) {
|
|
|
767
767
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5 pt-0.5", children: [
|
|
768
768
|
node.declared && /* @__PURE__ */ jsxRuntime.jsx(chunkMOU6O324_cjs.Badge, { size: "sm", variant: "soft", color: conflict ? "red" : "zinc", children: node.type }),
|
|
769
769
|
container && ctx.allowAdd && !ctx.readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
770
|
-
|
|
770
|
+
chunkC5YX5XVL_cjs.Button,
|
|
771
771
|
{
|
|
772
772
|
variant: "ghost",
|
|
773
773
|
size: "xs",
|
|
@@ -780,7 +780,7 @@ function JsonEditorRow({ node }) {
|
|
|
780
780
|
),
|
|
781
781
|
ctx.allowReorder && !ctx.readOnly && node.parentKind === "array" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
782
782
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
783
|
-
|
|
783
|
+
chunkC5YX5XVL_cjs.Button,
|
|
784
784
|
{
|
|
785
785
|
variant: "ghost",
|
|
786
786
|
size: "xs",
|
|
@@ -792,7 +792,7 @@ function JsonEditorRow({ node }) {
|
|
|
792
792
|
}
|
|
793
793
|
),
|
|
794
794
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
795
|
-
|
|
795
|
+
chunkC5YX5XVL_cjs.Button,
|
|
796
796
|
{
|
|
797
797
|
variant: "ghost",
|
|
798
798
|
size: "xs",
|
|
@@ -805,7 +805,7 @@ function JsonEditorRow({ node }) {
|
|
|
805
805
|
)
|
|
806
806
|
] }),
|
|
807
807
|
ctx.allowRemove && !ctx.readOnly && node.parentKind !== "root" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
808
|
-
|
|
808
|
+
chunkC5YX5XVL_cjs.Button,
|
|
809
809
|
{
|
|
810
810
|
variant: "ghost",
|
|
811
811
|
size: "xs",
|
|
@@ -847,7 +847,7 @@ function JsonEditorRow({ node }) {
|
|
|
847
847
|
edit.op === "set" || edit.op === "insert" ? ` \u2192 ${toText(edit.value)}` : ""
|
|
848
848
|
] }),
|
|
849
849
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
850
|
-
|
|
850
|
+
chunkC5YX5XVL_cjs.Button,
|
|
851
851
|
{
|
|
852
852
|
size: "xs",
|
|
853
853
|
color: "emerald",
|
|
@@ -858,7 +858,7 @@ function JsonEditorRow({ node }) {
|
|
|
858
858
|
}
|
|
859
859
|
),
|
|
860
860
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
861
|
-
|
|
861
|
+
chunkC5YX5XVL_cjs.Button,
|
|
862
862
|
{
|
|
863
863
|
size: "xs",
|
|
864
864
|
variant: "ghost",
|
|
@@ -914,7 +914,7 @@ function JsonEditorAddForm({ path, kind, depth, suggestedType }) {
|
|
|
914
914
|
}
|
|
915
915
|
),
|
|
916
916
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
917
|
-
|
|
917
|
+
chunkC5YX5XVL_cjs.Button,
|
|
918
918
|
{
|
|
919
919
|
size: "xs",
|
|
920
920
|
color: "blue",
|
|
@@ -924,7 +924,7 @@ function JsonEditorAddForm({ path, kind, depth, suggestedType }) {
|
|
|
924
924
|
}
|
|
925
925
|
),
|
|
926
926
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
927
|
-
|
|
927
|
+
chunkC5YX5XVL_cjs.Button,
|
|
928
928
|
{
|
|
929
929
|
size: "xs",
|
|
930
930
|
variant: "ghost",
|
|
@@ -1225,7 +1225,7 @@ var JsonEditor = react.forwardRef(function JsonEditor2({
|
|
|
1225
1225
|
orphanPending.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { "data-react-fancy-json-editor-orphan-pending": "", className: "border-t border-zinc-100 p-2 dark:border-zinc-800", children: orphanPending.map((edit) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 py-0.5", children: [
|
|
1226
1226
|
/* @__PURE__ */ jsxRuntime.jsx(chunk4XMBXG4K_cjs.Text, { as: "span", size: "xs", color: "muted", className: "min-w-0 flex-1 truncate font-mono", children: edit.label ?? describeEdit(edit) }),
|
|
1227
1227
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1228
|
-
|
|
1228
|
+
chunkC5YX5XVL_cjs.Button,
|
|
1229
1229
|
{
|
|
1230
1230
|
size: "xs",
|
|
1231
1231
|
color: "emerald",
|
|
@@ -1236,7 +1236,7 @@ var JsonEditor = react.forwardRef(function JsonEditor2({
|
|
|
1236
1236
|
}
|
|
1237
1237
|
),
|
|
1238
1238
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1239
|
-
|
|
1239
|
+
chunkC5YX5XVL_cjs.Button,
|
|
1240
1240
|
{
|
|
1241
1241
|
size: "xs",
|
|
1242
1242
|
variant: "ghost",
|
|
@@ -1248,7 +1248,7 @@ var JsonEditor = react.forwardRef(function JsonEditor2({
|
|
|
1248
1248
|
)
|
|
1249
1249
|
] }, edit.id)) }),
|
|
1250
1250
|
rootIsContainer && allowAdd && !readOnly && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t border-zinc-100 p-2 dark:border-zinc-800", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1251
|
-
|
|
1251
|
+
chunkC5YX5XVL_cjs.Button,
|
|
1252
1252
|
{
|
|
1253
1253
|
variant: "ghost",
|
|
1254
1254
|
size: "xs",
|
|
@@ -1350,5 +1350,5 @@ exports.parsePath = parsePath;
|
|
|
1350
1350
|
exports.pathToString = pathToString;
|
|
1351
1351
|
exports.resolveKeyRule = resolveKeyRule;
|
|
1352
1352
|
exports.typeMatches = typeMatches;
|
|
1353
|
-
//# sourceMappingURL=chunk-
|
|
1354
|
-
//# sourceMappingURL=chunk-
|
|
1353
|
+
//# sourceMappingURL=chunk-6XX6OHAP.cjs.map
|
|
1354
|
+
//# sourceMappingURL=chunk-6XX6OHAP.cjs.map
|