tweakit 0.5.2 → 0.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.
- package/AGENTS.md +31 -29
- package/README.md +55 -29
- package/THIRD-PARTY-NOTICES.md +0 -1
- package/dist/tweaks/auto.js +2 -0
- package/dist/tweaks/auto.js.map +6 -0
- package/dist/tweaks/bezier-JFEZMCLP.js +2 -0
- package/dist/tweaks/bezier-JFEZMCLP.js.map +6 -0
- package/dist/tweaks/chunk-6UO4DHBN.js +2 -0
- package/dist/tweaks/chunk-6UO4DHBN.js.map +6 -0
- package/dist/tweaks/chunk-DIQMLBAS.js +2 -0
- package/dist/tweaks/chunk-DIQMLBAS.js.map +6 -0
- package/dist/tweaks/chunk-XE6OUJBG.js +2 -0
- package/dist/tweaks/chunk-XE6OUJBG.js.map +6 -0
- package/dist/tweaks/clip-WW7JYO4X.js +2 -0
- package/dist/tweaks/clip-WW7JYO4X.js.map +6 -0
- package/dist/tweaks/color-YMMFURP6.js +2 -0
- package/dist/tweaks/color-YMMFURP6.js.map +6 -0
- package/dist/tweaks/core.js +2 -1
- package/dist/tweaks/core.js.map +6 -0
- package/dist/tweaks/{fold-UGN7TXGX.js → fold-U6YRZLCJ.js} +2 -1
- package/dist/tweaks/fold-U6YRZLCJ.js.map +6 -0
- package/dist/tweaks/gradient-JER7PW4D.js +2 -0
- package/dist/tweaks/gradient-JER7PW4D.js.map +6 -0
- package/dist/tweaks/heavy-CLD7UAVI.js +2 -0
- package/dist/tweaks/heavy-CLD7UAVI.js.map +6 -0
- package/dist/tweaks/image-H6QSLGO3.js +4 -0
- package/dist/tweaks/image-H6QSLGO3.js.map +6 -0
- package/dist/tweaks/image-store-WRKY2NPU.js +2 -0
- package/dist/tweaks/image-store-WRKY2NPU.js.map +6 -0
- package/dist/tweaks/interval-TEUHQGZN.js +2 -0
- package/dist/tweaks/interval-TEUHQGZN.js.map +6 -0
- package/dist/tweaks/markup-NIBJD6E2.js +2 -0
- package/dist/tweaks/markup-NIBJD6E2.js.map +6 -0
- package/dist/tweaks/monitor-3BY7YCGX.js +3 -0
- package/dist/tweaks/monitor-3BY7YCGX.js.map +6 -0
- package/dist/tweaks/motion-FQPUBKKM.js +2 -0
- package/dist/tweaks/motion-FQPUBKKM.js.map +6 -0
- package/dist/tweaks/plot-2HBNBZSG.js +3 -0
- package/dist/tweaks/plot-2HBNBZSG.js.map +6 -0
- package/dist/tweaks/point-VV6XV3I6.js +2 -0
- package/dist/tweaks/point-VV6XV3I6.js.map +6 -0
- package/dist/tweaks/shadow-5E4E55I2.js +2 -0
- package/dist/tweaks/shadow-5E4E55I2.js.map +6 -0
- package/dist/tweaks/sides-P3STEVYY.js +2 -0
- package/dist/tweaks/sides-P3STEVYY.js.map +6 -0
- package/dist/tweaks/spring-HUVSXNVN.js +2 -0
- package/dist/tweaks/spring-HUVSXNVN.js.map +6 -0
- package/dist/tweaks/tabs-76FW7LQ7.js +2 -0
- package/dist/tweaks/tabs-76FW7LQ7.js.map +6 -0
- package/dist/tweaks.css +1 -1
- package/dist/tweaks.js +6 -3
- package/dist/tweaks.js.map +6 -0
- package/dist/types/tweaks/easing.d.ts +8 -11
- package/dist/types/tweaks/panel.d.ts +6 -4
- package/dist/types/tweaks/schema.d.ts +4 -8
- package/dist/types/tweaks/standalone.d.ts +3 -3
- package/dist/types/tweaks/types.d.ts +278 -101
- package/package.json +27 -5
- package/src/tweaks/auto.ts +12 -0
- package/src/tweaks/clip.ts +94 -0
- package/src/tweaks/controls/basic.ts +403 -0
- package/src/tweaks/controls/bezier.ts +99 -0
- package/src/tweaks/controls/color.ts +412 -0
- package/src/tweaks/controls/gradient.ts +240 -0
- package/src/tweaks/controls/image.ts +299 -0
- package/src/tweaks/controls/interval.ts +104 -0
- package/src/tweaks/controls/monitor.ts +105 -0
- package/src/tweaks/controls/motion.ts +141 -0
- package/src/tweaks/controls/plot.ts +220 -0
- package/src/tweaks/controls/point.ts +119 -0
- package/src/tweaks/controls/shadow.ts +83 -0
- package/src/tweaks/controls/sides.ts +86 -0
- package/src/tweaks/controls/spring.ts +148 -0
- package/src/tweaks/controls/tabs.ts +47 -0
- package/src/tweaks/core.ts +9 -0
- package/src/tweaks/easing.ts +93 -0
- package/src/tweaks/enhance.ts +20 -0
- package/src/tweaks/feedback.ts +119 -0
- package/src/tweaks/fold.ts +21 -0
- package/src/tweaks/heavy.ts +302 -0
- package/src/tweaks/icons.ts +19 -0
- package/src/tweaks/image-store.ts +101 -0
- package/src/tweaks/lazy.ts +46 -0
- package/src/tweaks/markup.ts +154 -0
- package/src/tweaks/panel.ts +869 -0
- package/src/tweaks/schema.ts +189 -0
- package/src/tweaks/shared.ts +525 -0
- package/src/tweaks/single.ts +22 -0
- package/src/tweaks/standalone.ts +89 -0
- package/src/tweaks/types.ts +526 -0
- package/src/tweaks.css +959 -0
- package/src/wide-gamut.ts +310 -0
- package/dist/tweaks/bezier-2RABC6LD.js +0 -1
- package/dist/tweaks/chunk-4ATI34PB.js +0 -1
- package/dist/tweaks/chunk-7OSCMZ2J.js +0 -1
- package/dist/tweaks/chunk-W3JNIJ2F.js +0 -1
- package/dist/tweaks/clip-ECGCECEC.js +0 -1
- package/dist/tweaks/colour-2RE3FQ5E.js +0 -1
- package/dist/tweaks/gradient-DB6XTDHO.js +0 -1
- package/dist/tweaks/heavy-PKOMHB3C.js +0 -1
- package/dist/tweaks/image-7MCLBOZ3.js +0 -1
- package/dist/tweaks/interval-L2E4L3AZ.js +0 -1
- package/dist/tweaks/markup-ZJJ6CCWM.js +0 -1
- package/dist/tweaks/monitor-IEK742PG.js +0 -2
- package/dist/tweaks/motion-N5UNVR55.js +0 -1
- package/dist/tweaks/plot-VVTOY3RA.js +0 -2
- package/dist/tweaks/point-YMMHSLO7.js +0 -1
- package/dist/tweaks/shadow-IKYOV3VN.js +0 -1
- package/dist/tweaks/sides-FH227Z54.js +0 -1
- package/dist/tweaks/spring-3PKAFIH7.js +0 -1
- package/dist/tweaks/tabs-BKK5NIIY.js +0 -1
package/AGENTS.md
CHANGED
|
@@ -7,9 +7,9 @@ Tweakit is a dependency-free, code-split, real-time parameter panel for the brow
|
|
|
7
7
|
|
|
8
8
|
## Workflow
|
|
9
9
|
|
|
10
|
-
1. Look at the project first: its bundler or
|
|
10
|
+
1. Look at the project first: its bundler (or none), its package manager, and the component to tune.
|
|
11
11
|
2. Install, then import one build and the stylesheet (below).
|
|
12
|
-
3. Build one panel from
|
|
12
|
+
3. Build one panel from the component's current values, with sensible ranges; four to eight controls is plenty.
|
|
13
13
|
4. Bind the live values to the component's styles or animation in `panel.on()`, and apply `panel.params` once after `panel.ready`.
|
|
14
14
|
5. Append `panel.el` somewhere visible. Gate the panel behind a development flag; tweakit has no production switch of its own.
|
|
15
15
|
6. Run the project's build or checks and confirm the panel renders with the expected keys on `panel.params`.
|
|
@@ -22,12 +22,12 @@ npm install tweakit
|
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
```js
|
|
25
|
-
import { tweaks } from "tweakit";
|
|
26
|
-
import { tweaks } from "tweakit/
|
|
27
|
-
import "tweakit/css";
|
|
25
|
+
import { tweaks } from "tweakit"; // code-split build: heavy controls load on first use
|
|
26
|
+
import { tweaks } from "tweakit/single"; // single-file build: every control inlined, synchronous
|
|
27
|
+
import "tweakit/css"; // the stylesheet, needed by either build
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
Without a bundler, copy `dist/tweaks.js` and `dist/tweaks.css` out of the package; the script is an ES module, so load it with `<script type="module">`. Both builds share one API. On the code-split build a panel whose schema needs a lazy control (color, gradient, shadow, motion, point and others) fills in when `panel.ready` resolves; the single-file build resolves it at once.
|
|
30
|
+
Without a bundler, copy `dist/tweaks.js` and `dist/tweaks.css` out of the package; the script is an ES module, so load it with `<script type="module">`. Both builds share one API. On the code-split build a panel whose schema needs a lazy control (color, gradient, shadow, motion, point and others) fills in when `panel.ready` resolves; the single-file build resolves it at once, except that a panel persisting an image control waits for its stored images on either build.
|
|
31
31
|
|
|
32
32
|
## A first panel
|
|
33
33
|
|
|
@@ -57,9 +57,9 @@ panel.ready.then(() => apply(panel.params));
|
|
|
57
57
|
|
|
58
58
|
| You write | Control | `params` value |
|
|
59
59
|
| --- | --- | --- |
|
|
60
|
-
| `24` | slider; range 0 to 1 for a value up to 1, else 0 to 3 times the value; a negative value
|
|
60
|
+
| `24` | slider; range 0 to 1 for a value up to 1, else 0 to 3 times the value; a negative value spans that either side of 0 (`-45` gives −135 to 135) | number |
|
|
61
61
|
| `[1.2, 0, 3, 0.1]` | slider with min, max, step; `[v]`, `[v, min]` and `[v, min, max]` fill in the rest; up to four numbers are always this tuple, never a list | number |
|
|
62
|
-
| `[[20, 80], 0, 100]` | interval, two handles | `[lo, hi]` |
|
|
62
|
+
| `[[20, 80], 0, 100]` | interval, two handles; missing bounds widen from each end as for a bare number (`[[20, 80]]` spans 0 to 240) | `[lo, hi]` |
|
|
63
63
|
| `true` | checkbox | boolean |
|
|
64
64
|
| `"Hello"` | text input | string |
|
|
65
65
|
| `"#7C5CFF"` | color picker, for hex or a color function (`oklch(…)`, `rgb(…)`, `hsl(…)`, `color(…)`); a named color such as `"red"` or `"transparent"` builds a text input, so write it as hex | color string |
|
|
@@ -69,7 +69,9 @@ panel.ready.then(() => apply(panel.params));
|
|
|
69
69
|
| `{ x: 0, y: 10 }` | folder of controls | nested object |
|
|
70
70
|
| `{ type: "…", … }` | that control, verbatim (next table) | per control |
|
|
71
71
|
|
|
72
|
-
A missing step is 0.01 for a range up to 1, 0.1 up to 10, 1 up to 100, else 10. Keys become labels,
|
|
72
|
+
A missing step is 0.01 for a range up to 1 (a written span under 0.0001: a hundredth of its decade), 0.1 up to 10, 1 up to 100, else 10, and finer, to a hundredth of that at most, when the default, the min, or 0 in a range across zero would fall between steps, and for the max too when that reaches it (`37` steps by 1, not 10, `[1.25, 0.25, 4]` by 0.01, and `-45` reaches 0); a negative's derived range steps like its positive twin (`-0.5` by 0.01). A `number` or `point` with no step fits its default (`0.5` steps by 0.1, a whole `number` by 1, `1/3` by 0.0001). Keys become labels, humanised (`fontSize` reads "Font Size"); option strings show as written. `label` overrides on a `{ type }` form and on `{ action }`, not on the `{ options, value }` shorthand.
|
|
73
|
+
|
|
74
|
+
In TypeScript, a schema written inline types `params` from its shape: `radius: [18, 0, 60, 1]` is a `number`, `blend: ["normal", "multiply"]` is `"normal" | "multiply"`, and a typo such as `params.raduis` is an error. A schema held in a variable keeps its keys and its shorthands' types, but widens list options to `string` and a verbose form's `type` to `string`, which leaves that value `any`; write it `as const` to keep them all, or `satisfies Schema` to keep the verbose forms. A `type` that names no control (`{ type: "slidr" }`) is a compile error where it's written, in `mountControl()` too.
|
|
73
75
|
|
|
74
76
|
## Every control, as `{ type, … }`, and what it returns
|
|
75
77
|
|
|
@@ -80,20 +82,20 @@ Every `{ type }` form also takes `label`, `hint` (a tooltip), `render: (get) =>
|
|
|
80
82
|
| `slider` | `value, min, max, step, unit, soft, format, parse` | number |
|
|
81
83
|
| `number` | `value, min, max, step, unit, soft` | number |
|
|
82
84
|
| `interval` | `value: [lo, hi], min, max, step` | `[lo, hi]` |
|
|
83
|
-
| `sides` | `value` (one number, a CSS-order array, or `"8px 16px"`), `unit, step, min, max, corners`;
|
|
84
|
-
| `point` | `components: [{ key, label, value, min, max, step }], pad, invertY` | an object keyed by component, such as `{ x, y }` |
|
|
85
|
+
| `sides` | `value` (one number, a CSS-order array, or `"8px 16px"`, whose unit is used when `unit` isn't given), `unit, step, min, max, corners`; only corners floor at 0 unless `min` says otherwise | `{ top, right, bottom, left, css }`; `css` is ready for `padding`, `margin` or `border-radius` |
|
|
86
|
+
| `point` | `components: [{ key, label, value, min, max, step }]`, or `value: { x: 0, y: 10 }` alone, which names them; `pad, invertY` | an object keyed by component, such as `{ x, y }` |
|
|
85
87
|
| `checkbox` | `value` | boolean |
|
|
86
88
|
| `text` | `value, rows, placeholder` | string |
|
|
87
|
-
| `list` | `options, value` |
|
|
88
|
-
| `segmented` | `options, value, cols` |
|
|
89
|
-
| `radiogrid` | `options, value, cols` |
|
|
90
|
-
| `color` | `value` | color string
|
|
89
|
+
| `list` | `options, value` | the option's value |
|
|
90
|
+
| `segmented` | `options, value, cols` | the option's value |
|
|
91
|
+
| `radiogrid` | `options, value, cols` | the option's value |
|
|
92
|
+
| `color` | `value`, `mode` | color string exactly as you wrote it (`"#7c5cff"` reads back `"#7c5cff"`) until it's edited; an edit writes the same notation, a digit finer than the readout, and a gray's hue as `none` (`0` in comma syntax) |
|
|
91
93
|
| `gradient` | `stops: [[color, position], …]` | `{ stops: [{ color, pos }], interpolation, easing }`, which goes back in whole as `value`; `gradientCss(value, angle)` makes the CSS |
|
|
92
94
|
| `shadow` | `x, y, blur, spread, color, inset`, or `value` as a `box-shadow` string | `{ x, y, blur, spread, color, inset, css }`; `css` is ready for `box-shadow` |
|
|
93
|
-
| `image` | `value`; `options` (URLs or `{ value, label }`) makes a row
|
|
95
|
+
| `image` | `value`; `options` (URLs or `{ value, label }`) makes a row opening a gallery pane, with `cols` (1 to 6), `maxSize, upload`, and `clear: false` to keep a value chosen; an upload past `fit` px (2560) on its long side, or over 1.5 MB, is redrawn in Display P3 where it can, as a PNG up to 1.5 MB, else JPEG at `quality` (0.85), or WebP for transparency; a GIF, SVG, or animated WebP or PNG is never redrawn, and a JPEG or PNG kept as it is loses its Exif and XMP (GPS), bar gain maps; `fit: false` never redraws | the chosen URL, the upload's data URL, or `""` |
|
|
94
96
|
| `motion` | `mode: "easing"` with `curve` and `duration` (ms), or `mode: "spring"` with `stiffness, damping, mass` or `visualDuration, bounce` | `{ mode, …, duration, easing }`; `easing` is a `cubic-bezier(…)` or sampled `linear(…)` string for a CSS transition; a spring's `duration` is its settle time |
|
|
95
|
-
| `spring` | `mode: "time"` or `"physics"`, `visualDuration, bounce, stiffness, damping, mass` | `{ stiffness, damping, mass }`, plus the time pair when tuned by feel |
|
|
96
|
-
| `cubicbezier` | `value: [x1, y1, x2, y2]` | `[x1, y1, x2, y2]
|
|
97
|
+
| `spring` | `mode: "time"` or `"physics"`, `visualDuration, bounce, stiffness, damping, mass` | `{ stiffness, damping, mass }`, plus the time pair when tuned by feel; that pair resolves exactly as Motion's `{ visualDuration, bounce }` does, bounce −1 to 1 |
|
|
98
|
+
| `cubicbezier` | `value: [x1, y1, x2, y2]` | `[x1, y1, x2, y2]`, x 0 to 1, y −1 to 2 |
|
|
97
99
|
| `plot` | `expr` or `fn`, `xMin, xMax, yMin, yMax, samples, editable` | the expression string, `""` when drawn from `fn` |
|
|
98
100
|
| `monitor` | `get: () => number` (or a string), or `value`, `graph, view, min, max, interval, rows, decimals` | none; it watches |
|
|
99
101
|
| `fpsgraph` | none | none; a frame-rate graph |
|
|
@@ -106,18 +108,18 @@ Every `{ type }` form also takes `label`, `hint` (a tooltip), `render: (get) =>
|
|
|
106
108
|
|
|
107
109
|
`tweaks(name, schema, options?)` returns synchronously.
|
|
108
110
|
|
|
109
|
-
- `panel.el`: append it. `panel.params`: live values, nested like the schema, updated in place
|
|
110
|
-
- `panel.on((params, changedKey) => …)`: fires on every change; returns an unsubscribe function. `changedKey` is
|
|
111
|
-
- `panel.ready`: resolves once lazy controls have built.
|
|
112
|
-
- `panel.set("folder.key", value)` and `panel.setMany({ "folder.key": v, other: w })`: write from code; dotted paths reach nested controls; `{ silent: true }` skips your listeners.
|
|
111
|
+
- `panel.el`: append it. `panel.params`: live values only, nested like the schema, updated in place.
|
|
112
|
+
- `panel.on((params, changedKey) => …)`: fires on every change; returns an unsubscribe function. `changedKey` is the control's dotted path, as `set()` and `changes()` name it (`size` at the top, `card.size` in a folder), or `undefined` when many changed at once (a restore, `reset()`, `fromJSON`, `setMany`).
|
|
113
|
+
- `panel.ready`: resolves once lazy controls have built and, for a panel persisting an image control, its stored images are back; when they arrive, `on()` fires once more with no changed key.
|
|
114
|
+
- `panel.set("folder.key", value)` and `panel.setMany({ "folder.key": v, other: w })`: write from code; dotted paths reach nested controls; a key no control has is refused with a console warning (and a type error on an inline schema), and a number past a hard range clamps, warning once a key; `{ silent: true }` skips your listeners.
|
|
113
115
|
- `panel.changes()`: the values that differ from their defaults, keyed by dotted path. `panel.reset()` restores the defaults.
|
|
114
116
|
- `panel.toJSON()` and `panel.fromJSON(state)`: every value, nested, plus folder and tab UI state, JSON-safe; `JSON.stringify(panel)` uses it.
|
|
115
117
|
- `panel.setTheme(theme)`, `panel.setName(name)`; `panel.undo()` and `panel.redo()` with `undo: true`; `savePreset`, `loadPreset`, `deletePreset` and `presets()` with `persist`.
|
|
116
118
|
- `panel.destroy()`: removes it and releases every listener.
|
|
117
119
|
|
|
118
|
-
Options, the third argument: `theme` (token overrides), `persist` (a localStorage key, or `true` to key by name; turns presets on
|
|
120
|
+
Options, the third argument: `theme` (token overrides), `persist` (a localStorage key, or `true` to key by name; turns presets on; two live panels on one key overwrite each other, and the second warns), `presets: false`, `floating: true` or `{ x, y }`, `draggable: false` to pin, `toolbar: false`, `undo: true` and `onReset`.
|
|
119
121
|
|
|
120
|
-
Every panel drags by its header and lifts into a floating layer on the first drag; `floating` starts it there, inset from
|
|
122
|
+
Every panel drags by its header and lifts into a floating layer on the first drag; `floating` starts it there, inset from the top-left. A click anywhere on the header outside its toolbar folds the panel; Escape mid-drag puts it back. Its placement is plain `.tw-panel` CSS, so a class of yours loaded after `tweakit/css` overrides it.
|
|
121
123
|
|
|
122
124
|
An open editor pane or the presets menu drags by its edge and keeps that spot until it closes. In a pane's field, Escape restores an unsaved edit and a second Escape closes the pane. Escapes the panel handles stop at the document.
|
|
123
125
|
|
|
@@ -132,12 +134,12 @@ The panel's toolbar copy button puts JSON on the clipboard. A click copies the f
|
|
|
132
134
|
Tweakit never writes to source files. The person pastes that JSON to you; then:
|
|
133
135
|
|
|
134
136
|
1. Find the `tweaks(name, …)` call whose schema holds those keys. The panel's title is its name.
|
|
135
|
-
2. For each key, change the default in the schema: the first element of a slider tuple, the bare value, or `value:` in a `{ type }` form. A key like `shadow.blur` is `blur` inside the `shadow` folder. A control whose value is an object (shadow, sides, gradient, motion, spring, point) comes back whole under its own key: copy its fields onto the `{ type }` form
|
|
137
|
+
2. For each key, change the default in the schema: the first element of a slider tuple, the bare value, or `value:` in a `{ type }` form. A key like `shadow.blur` is `blur` inside the `shadow` folder. A control whose value is an object (shadow, sides, gradient, motion, spring, point) comes back whole under its own key: copy its fields onto the `{ type }` form, less the derived `css`, a motion's `easing` and spring `duration`.
|
|
136
138
|
3. Leave the panel code in place and run the build.
|
|
137
139
|
|
|
138
140
|
## Markup instead of a schema
|
|
139
141
|
|
|
140
|
-
|
|
142
|
+
`enhance(root = document)` upgrades the `[data-tw]` elements under it in place: `<div data-tw="slider" data-label="Blur" data-value="12" data-min="0" data-max="40"></div>`, in a `.tw-panel` shell for the header and toolbar or bare anywhere, a control's options as `data-*` attributes. Importing the kit binds nothing; `import "tweakit/auto"`, the same API, runs `enhance()` once the page has parsed. Each host dispatches a bubbling `tw:change` event with `{ key, value }`. Details: https://ryankiley.github.io/tweakit/markup.md
|
|
141
143
|
|
|
142
144
|
## One control without a panel
|
|
143
145
|
|
|
@@ -145,13 +147,13 @@ The core module also upgrades `[data-tw]` elements in place: `<div data-tw="slid
|
|
|
145
147
|
|
|
146
148
|
## Theming
|
|
147
149
|
|
|
148
|
-
The panel is dark by default and follows the system scheme; `data-tw-scheme="light"` or `"dark"` on any ancestor pins it. `theme` takes
|
|
150
|
+
The panel is dark by default and follows the system scheme; `data-tw-scheme="light"` or `"dark"` on any ancestor pins it. `theme` takes `--tw-*` tokens (`"--tw-accent"`, `"--tw-base"`, `"--tw-radius"`, `"--tw-width"` and more) as CSS values; any other key is skipped with a console warning. Details: https://ryankiley.github.io/tweakit/theming.md
|
|
149
151
|
|
|
150
152
|
## What tweakit does not do
|
|
151
153
|
|
|
152
|
-
- It never edits source files, and it persists only to localStorage
|
|
154
|
+
- It never edits source files, and it persists only when `persist` is set: values to localStorage, as `{ v: 1, values }` (0.5's bare object is ignored), and uploaded images to IndexedDB, with their refs in localStorage. A panel that persists an image control restores its other values as it builds, and its images by `panel.ready`; an upload with nowhere else to go (no IndexedDB, or the store refused it) saves inline in localStorage when it fits, and otherwise is left out with its row saying "Not saved". Values leave through the clipboard, `panel.changes()` or `panel.toJSON()`.
|
|
153
155
|
- It has no production switch. Gate the panel in your code, for example behind `import.meta.env.DEV`.
|
|
154
|
-
- It is not a framework component. In React, Vue, Svelte or Solid, create the panel once in a mount effect, append `panel.el` to a ref,
|
|
156
|
+
- It is not a framework component. In React, Vue, Svelte or Solid, create the panel once in a mount effect, append `panel.el` to a ref, set state in `panel.on()`, and `panel.destroy()` on unmount.
|
|
155
157
|
- `params` is a plain object updated in place. Subscribe with `on()`; do not poll it.
|
|
156
158
|
|
|
157
159
|
## Example requests
|
package/README.md
CHANGED
|
@@ -9,12 +9,34 @@ length (padding, margin or radii) on one row, monitors, a 2D point pad, and more
|
|
|
9
9
|
|
|
10
10
|
**[Docs & live examples →](https://ryankiley.github.io/tweakit/)**
|
|
11
11
|
|
|
12
|
+
## Why tweakit
|
|
13
|
+
|
|
14
|
+
Tweakpane, lil-gui and Leva are all good panels: Tweakpane for its plugin ecosystem, lil-gui for the
|
|
15
|
+
smallest footprint, Leva if your app is React hooks throughout. Tweakit is for when the values you're
|
|
16
|
+
tuning are color and motion:
|
|
17
|
+
|
|
18
|
+
- **Wide-gamut color.** An OKLCH picker that reaches past sRGB into Display P3 and Rec. 2020 and says
|
|
19
|
+
which gamut a color is in, eleven notations, and the value handed back exactly as you wrote it until
|
|
20
|
+
you edit it.
|
|
21
|
+
- **Motion editors that match Motion.** Easing, cubic-bézier and spring editors; a time-mode spring
|
|
22
|
+
(`visualDuration`, `bounce`) resolves exactly as Motion does, and every one hands back a ready
|
|
23
|
+
`transition` easing, a sampled `linear()` for springs.
|
|
24
|
+
- **Markup mode.** `[data-tw]` elements become controls in place, no script per control.
|
|
25
|
+
- **CSP-safe.** The plot control parses its expressions itself, with no `eval` or `new Function`.
|
|
26
|
+
- **Values back into source.** The copy button puts the tuned values on the clipboard as JSON, and
|
|
27
|
+
[AGENTS.md](https://ryankiley.github.io/tweakit/AGENTS.md) tells a coding agent how to apply them.
|
|
28
|
+
|
|
12
29
|
## Install
|
|
13
30
|
|
|
14
31
|
```
|
|
15
32
|
npm install tweakit
|
|
16
33
|
```
|
|
17
34
|
|
|
35
|
+
tweakit is an ES module only. In a CommonJS project, set `"type": "module"` in package.json, or load it
|
|
36
|
+
with `await import("tweakit")`; TypeScript under `moduleResolution: node16` needs the same. There, a `.cts` file
|
|
37
|
+
imports the types as `import type { Schema } from "tweakit" with { "resolution-mode": "import" }` (TS1541 without it;
|
|
38
|
+
`nodenext` on current TypeScript does without it).
|
|
39
|
+
|
|
18
40
|
## Use
|
|
19
41
|
|
|
20
42
|
```js
|
|
@@ -31,6 +53,35 @@ document.body.append(panel.el);
|
|
|
31
53
|
panel.on((values) => { /* values.blur, values.tint, … */ });
|
|
32
54
|
```
|
|
33
55
|
|
|
56
|
+
Panels can also come from `[data-tw]` markup, bound by `enhance()`. Importing `tweakit` binds
|
|
57
|
+
nothing on its own; import `tweakit/auto` instead (the same API) to bind the page's markup once it
|
|
58
|
+
has parsed.
|
|
59
|
+
|
|
60
|
+
### In React (or Vue, Svelte, Solid)
|
|
61
|
+
|
|
62
|
+
The panel isn't a component: create it once in a mount effect, append `panel.el` to a ref, and
|
|
63
|
+
destroy it on unmount. `params` is updated in place, so copy it into state.
|
|
64
|
+
|
|
65
|
+
```jsx
|
|
66
|
+
import { useEffect, useRef, useState } from "react";
|
|
67
|
+
import { tweaks } from "tweakit";
|
|
68
|
+
import "tweakit/css";
|
|
69
|
+
|
|
70
|
+
function Card() {
|
|
71
|
+
const host = useRef(null);
|
|
72
|
+
const [p, setP] = useState({ radius: 18, tint: "#7C5CFF" });
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
const panel = tweaks("Card", { radius: [18, 0, 60, 1], tint: "#7C5CFF" });
|
|
75
|
+
host.current.append(panel.el);
|
|
76
|
+
panel.on((values) => setP({ ...values }));
|
|
77
|
+
return () => panel.destroy();
|
|
78
|
+
}, []);
|
|
79
|
+
return (<><div ref={host} /><div style={{ borderRadius: p.radius, background: p.tint }} /></>);
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Gate it behind a development flag (`import.meta.env.DEV`): tweakit has no production switch of its own.
|
|
84
|
+
|
|
34
85
|
Everything else is on the **[docs site](https://ryankiley.github.io/tweakit/)**: every
|
|
35
86
|
control live, the panel API, theming, markup-driven panels, and the two builds (the
|
|
36
87
|
single-file build vs the code-split entry).
|
|
@@ -61,35 +112,10 @@ Verify the build.
|
|
|
61
112
|
## Floating panel
|
|
62
113
|
|
|
63
114
|
Every panel drags by its header and lifts into a fixed layer on the first drag. Pass `floating`
|
|
64
|
-
to start it there
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
- `floating: true` sits 16px in from the top-left. `{ x, y, corner }` sets the insets in px
|
|
71
|
-
from the edges of `corner`: `"top-left"` (the default), `"top-right"`, `"bottom-left"` or
|
|
72
|
-
`"bottom-right"`. The panel keeps that corner as the window resizes, and a drag moves it from there.
|
|
73
|
-
A bottom-anchored panel keeps its bottom edge when it collapses, so its header drops.
|
|
74
|
-
- A draggable panel with `persist` remembers where it was dropped. A pinned one always sits at
|
|
75
|
-
its `floating` placement.
|
|
76
|
-
- The height caps at the window, with a gap at the far edge equal to `y` while the panel sits
|
|
77
|
-
at its placement (8px once dragged). In a window too short for both, a pinned panel's inset and
|
|
78
|
-
gap shrink together. Past the cap the whole panel scrolls, header included, with its scrollbar hidden.
|
|
79
|
-
|
|
80
|
-
The placement lives in CSS at plain `.tw-panel` specificity, so a class of your own, loaded
|
|
81
|
-
after `tweakit/css`, overrides any part of it without `!important`. If your bundler might load
|
|
82
|
-
it first, write the selector as `.tw-panel.my-panel`:
|
|
83
|
-
|
|
84
|
-
```css
|
|
85
|
-
.my-panel {
|
|
86
|
-
--tw-float-gap: 1.5rem; /* the far-edge gap the height cap leaves, in any length */
|
|
87
|
-
max-height: 60vh; /* or replace the cap outright */
|
|
88
|
-
top: 72px; right: 16px; left: auto; /* the inset, on a pinned panel */
|
|
89
|
-
z-index: 2; /* 99990 by default; a drag raises it while it lasts */
|
|
90
|
-
box-shadow: none; /* var(--tw-shadow-panel-lifted) by default */
|
|
91
|
-
}
|
|
92
|
-
```
|
|
115
|
+
to start it there (`true` sits 16px in from the top-left; `{ x, y }` sets the insets), and
|
|
116
|
+
`draggable: false` to pin it. A draggable panel with `persist` remembers where it was dropped.
|
|
117
|
+
Its placement is plain `.tw-panel` CSS, so a class of yours overrides it; the
|
|
118
|
+
[panel API page](https://ryankiley.github.io/tweakit/panel-api.html#floating) has the recipe.
|
|
93
119
|
|
|
94
120
|
## Develop
|
|
95
121
|
|
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -15,7 +15,6 @@ reproduced below.
|
|
|
15
15
|
| `ICON_INFO` | Hugeicons `information-circle`, two paths merged | MIT |
|
|
16
16
|
| `ICON_X` | Hugeicons `cancel-01` | MIT |
|
|
17
17
|
| `ICON_PLUS` | Hugeicons `add-01`, two paths merged | MIT |
|
|
18
|
-
| `ICON_SEARCH` | Hugeicons `search-01`, two paths merged | MIT |
|
|
19
18
|
| `ICON_COPY` | Hugeicons `copy-01`, back sheet's ends trimmed | MIT |
|
|
20
19
|
| `ICON_PRESETS` | Hugeicons `layer` | MIT |
|
|
21
20
|
| `ICON_RESET` | Hugeicons `undo` | MIT |
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{enhance as t}from"./core.js";export*from"./core.js";if(typeof document<"u"){const e=()=>{document.querySelector('[data-tw], .tw-panel[data-mode="inline"] > .tw-controls')&&t(document)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}
|
|
2
|
+
//# sourceMappingURL=auto.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/tweaks/auto.ts"],
|
|
4
|
+
"mappings": "AAGA,OAAS,WAAAA,MAAe,YACxB,WAAc,YAGd,GAAI,OAAO,SAAa,IAAa,CACnC,MAAMC,EAAM,IAAM,CAAM,SAAS,cAAc,yDAAyD,GAAGD,EAAQ,QAAQ,CAAG,EAC1H,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoBC,CAAG,EACnFA,EAAI,CACX",
|
|
5
|
+
"names": ["enhance", "run"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as f,g as K,j as q,n as J}from"./chunk-XE6OUJBG.js";import{A as Z,da as _,g as h,v as k,w as Y,x as Q,z as U}from"./chunk-6UO4DHBN.js";function re(v,M){let P=[.25,.1,.25,1],A=-1,z=2,l=8,R=e=>e.map((r,i)=>h(r,i%2?A:0,i%2?z:1)),d=[-.25,1.25],H=!1,ee=()=>{H||(d=[Math.min(-.25,t[1]-.1,t[3]-.1),Math.max(1.25,t[1]+.1,t[3]+.1)])},t=Array.isArray(v.value)&&v.value.length===4?v.value.map(Number):P.slice();t.some(e=>!Number.isFinite(e))&&(t=P.slice()),t=R(t);let te=t.slice(),C=k("div","tw-bezier");v.label&&C.append(Q("div","tw-bezier-label",v.label));let m=k("div","tw-bezier-graph"),E=f("svg","tw-bezier-svg");E.setAttribute("preserveAspectRatio","none");let S=f("line","tw-bezier-guide"),X=f("line","tw-bezier-guide"),j=f("line","tw-bezier-diag"),G=f("line","tw-bezier-ctl"),O=f("line","tw-bezier-ctl"),V=f("path","tw-bezier-curve");E.append(S,X,j,G,O,V);let w=Y("tw-bezier-handle");w.setAttribute("aria-label","Control point 1");let g=Y("tw-bezier-handle");g.setAttribute("aria-label","Control point 2"),m.append(E,w,g);let W=k("div","tw-fields tw-bezier-fields");C.append(m,W);let x=0,F=0,B=e=>l+e*(x-2*l),D=e=>F-l-(e-d[0])/(d[1]-d[0])*(F-2*l),$=(e,r,i,y,a)=>{e.setAttribute("x1",r),e.setAttribute("y1",i),e.setAttribute("x2",y),e.setAttribute("y2",a)},b=()=>{if(w.setAttribute("aria-label",`Control point 1, x ${t[0]}, y ${t[1]}`),g.setAttribute("aria-label",`Control point 2, x ${t[2]}, y ${t[3]}`),x=m.offsetWidth,F=m.offsetHeight,x<2)return;ee(),E.setAttribute("viewBox",`0 0 ${x} ${F}`);let[e,r,i,y]=t,a=B(0),c=D(0),n=B(1),s=D(1),u=B(e),p=D(r),o=B(i),N=D(y);$(S,l,c,x-l,c),$(X,l,s,x-l,s),$(j,a,c,n,s),$(G,a,c,u,p),$(O,n,s,o,N),V.setAttribute("d",`M${a},${c} C${u},${p} ${o},${N} ${n},${s}`),w.style.left=u+"px",w.style.top=p+"px",g.style.left=o+"px",g.style.top=N+"px"},T=[{label:"X1",i:0,lo:0,hi:1},{label:"Y1",i:1,lo:A,hi:z},{label:"X2",i:2,lo:0,hi:1},{label:"Y2",i:3,lo:A,hi:z}],ie=T.map(e=>{let r=J({label:e.label,value:t[e.i],step:.01,min:e.lo,max:e.hi},i=>{t[e.i]=i,b(),M(t.slice())});return W.append(r.el),r}),L=()=>ie.forEach((e,r)=>e.set(t[T[r].i])),I=(e,r)=>{let i=null,y=0,a=0,c=1;K(e,{onDown:n=>{n.preventDefault(),i=m.getBoundingClientRect(),y=m.offsetWidth||i.width,a=m.offsetHeight||i.height,c=i.width/y,e.classList.add("is-dragging"),e.focus({focusVisible:!1}),H=!0},onMove:n=>{let s=(n.clientX-i.left)/c,u=(n.clientY-i.top)/c,p=h((s-l)/(y-2*l),0,1),o=h(d[0]+(a-l-u)/(a-2*l)*(d[1]-d[0]),A,z);t[r*2]=+p.toFixed(2),t[r*2+1]=+o.toFixed(2),b(),L(),M(t.slice())},onEnd:()=>{i=null,e.classList.remove("is-dragging"),H=!1,b()}}),e.addEventListener("keydown",n=>{if(n.key==="Escape")return e.blur();if(n.key==="Home"){n.preventDefault(),t=te.slice(),b(),L(),M(t.slice());return}let[s,u]=q(n);if(!s&&!u)return;n.preventDefault();let p=n.shiftKey?.1:.01,o=r*2;s&&(t[o]=+h(t[o]+s*p,0,1).toFixed(2)),u&&(t[o+1]=+h(t[o+1]+u*p,A,z).toFixed(2)),b(),L(),M(t.slice())})};return I(w,0),I(g,1),U(b),Z(C,[[window,"resize"],[window,"tw-reflow"]],b),{el:C,set:e=>{if(Array.isArray(e)&&e.length===4){let r=e.map(Number);if(r.some(i=>!Number.isFinite(i)))return;t=R(r),b(),L()}},get:()=>t.slice()}}_("cubicbezier",re);
|
|
2
|
+
//# sourceMappingURL=bezier-JFEZMCLP.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/tweaks/controls/bezier.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["createBezier", "meta", "onChange", "DEF", "YMIN", "YMAX", "PAD", "fit", "m", "n", "clamp", "view", "held", "fitView", "v", "def", "root", "el", "txt", "graph", "svg", "svgEl", "unitBot", "unitTop", "diag", "line1", "line2", "curve", "h1", "btn", "h2", "fields", "W", "H", "xPx", "x", "yPx", "y", "setLine", "ln", "ax", "ay", "bx", "by", "drawGraph", "x1", "y1", "x2", "y2", "p1x", "p1y", "p2x", "p2y", "SPECS", "flds", "sp", "fld", "numField", "val", "syncFields", "k", "drag", "handle", "idx", "rect", "gw", "gh", "scale", "dragGesture", "e", "gx", "gy", "dx", "dy", "arrowStep", "i", "onReady", "onLive", "nv", "registerControl"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var V=Object.assign(Object.create(null),{ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]}),C=e=>Math.min(1,Math.max(0,e)),R=15;function ne(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();if(V[t])return V[t];let n=/^cubic-bezier\(([^()]*)\)$/.exec(t);if(!n)return null;let r=n[1].split(",").map(o=>o.trim()?Number(o):NaN);return r.length!==4||!r.every(Number.isFinite)?null:[C(r[0]),r[1],C(r[2]),r[3]]}function re(e){let t=[];for(let n=0;n<=R;n++){let r=n/R,o=1-r,i=3*o*o*r,a=3*o*r*r,s=r*r*r;t.push([i*e[0]+a*e[2]+s,C(i*e[1]+a*e[3]+s)])}return t}var A=e=>+(e*100).toFixed(2),oe=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?!(?:url|var)\()[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i,ie=/^(?:(?:hsl|hwb|lch|oklch)(?: (?:shorter|longer|increasing|decreasing) hue)?|srgb(?:-linear)?|oklab|lab|display-p3|rec2020|a98-rgb|prophoto-rgb|xyz(?:-d50|-d65)?)$/i,z=e=>typeof e.interpolation=="string"&&ie.test(e.interpolation)?e.interpolation:"oklch";function j(e,t){let n=e&&typeof e=="object"?e.stops:null,r=Array.isArray(n)?n.filter(o=>o&&typeof o.color=="string"&&oe.test(o.color.trim())&&Number.isFinite(o.pos)):[];return(!r.length||r.length<n.length)&&import("./heavy-CLD7UAVI.js").then(o=>o.badGradient(t,e,n,r.length),()=>{}),r.sort((o,i)=>o.pos-i.pos)}function se(e){let t=j(e,"gradientStops");return t.length?D(e,t):"transparent, transparent"}function D(e,t){let n=s=>`${s.color} ${A(s.pos)}%`;if(t.length<2)return`${t[0].color}, ${t[0].color}`;let r=ne(e.easing);if(!r)return t.map(n).join(", ");let o=re(r),i=z(e),a=[n(t[0])];for(let s=1;s<t.length;s++){let l=t[s-1],d=t[s],f=d.pos-l.pos;if(f>1e-6)for(let c=1;c<R;c++){let[u,h]=o[c];a.push(`color-mix(in ${i}, ${l.color}, ${d.color} ${A(h)}%) ${A(l.pos+f*u)}%`)}a.push(n(d))}return a.join(", ")}function ae(e,t="to right"){let n=j(e,"gradientCss");return n.length?`linear-gradient(in ${z(e)} ${typeof t=="number"?`${t}deg`:t}, ${D(e,n)})`:"none"}var K=e=>e.replace(/([a-z])(?=[A-Z])|([A-Z\d])(?=[A-Z][a-z])/g,"$1$2 ").replace(/^./,t=>t.toUpperCase()).trim(),Fe=e=>{let t=/^(?:[a-z][A-Z]{2,}?|(?:mac|tv|watch|iPad|vision)OS)(?=[A-Z][a-z]|[^A-Za-z]|$)/.exec(e);return t?`${t[0]} ${K(e.slice(t[0].length))}`.trim():K(e)},S=(e,t,n)=>Math.min(n,Math.max(t,e)),G=e=>!!e&&typeof e=="object",Oe=e=>typeof e=="string"&&/^(#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$|(oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\()/i.test(e.trim()),I=20,le=e=>{let t=String(e),n=/e-(\d+)$/i.exec(t);if(n)return Math.min(I,Number(n[1])+(t.split("e")[0].split(".")[1]||"").length);let r=t.indexOf(".");return r===-1?0:Math.min(I,t.length-r-1)},ue=(e,t,n)=>{if(!(n>0))return e;let r=le(n),o=Number((+t).toFixed(r)),i=Math.round((e-o)/n);return Number.isFinite(i)?Number((o+i*n).toFixed(r)):e},Pe=(e,t,n,r=e)=>{let o=l=>ue(l,r,n),i=Number.isFinite(e)?o(e):-1/0,a=Number.isFinite(t)?o(t):1/0,s=n*1e-6;return i<e-s&&(i=o(i+n)),a>t+s&&(a=o(a-n)),i>a?[e,e]:[i,a]},H=(e,t,...n)=>{let r=t-e;e<0&&t>0&&n.push(0);let o=r>0&&r<1e-4?10**Math.floor(Math.log10(r))/100:r<=1?.01:r<=10?.1:r<=100?1:10,i=d=>!Number.isFinite(d)||Math.abs(d-Math.round(d))<=1e-6,a=(d,f)=>i(e/Math.min(d,1))&&f.every(c=>i((c-e)/d)),s=d=>{let f=o;for(let c=0;c<2&&!a(f,d);c++)f/=10;return f},l=s([...n,t]);return a(l,[...n,t])?l:s(n)},q=(...e)=>{let t=(e.length?e:[0]).map(ce),n=Math.min(...t.map(o=>o[0])),r=Math.max(...t.map(o=>o[1]));return{min:n,max:r,step:n<0&&n===-r?H(0,r,r,...e.map(Math.abs)):H(n,r,...e)}},F=null,Ne=e=>{F=e},X=(e,...t)=>{F?F(e,t):import("./heavy-CLD7UAVI.js").then(n=>n.notice(e,t),()=>{})},Be=(e,t,n,r=[],o)=>{let i=f=>f!=null&&f!==""&&Number.isFinite(+f);r=r.filter(Number.isFinite);let a=q(...r),s=i(e)?+e:a.min,l=i(t)?+t:a.max,d=+n;if(i(e)!==i(t)&&!(l>s)){let f=i(e),c=f?s:l,u=q(c);f?l=u.max>c?u.max:c+u.max-u.min:s=u.min<c?u.min:c-u.max+u.min}if(l<s){o!=null&&X("swap",o,s,l);let f=s;s=l,l=f}return(!(d>0)||d>l-s)&&(d=i(e)||i(t)?H(s,l,...r):a.step),{min:s,max:l,step:d}},_e=(e,t,n,r,o,i=null)=>{let a=e.shiftKey?10:1;switch(e.key){case"ArrowRight":case"ArrowUp":return t+n*a;case"ArrowLeft":case"ArrowDown":return t-n*a;case"PageUp":return i!=null?t+i:null;case"PageDown":return i!=null?t-i:null;case"Home":return r;case"End":return o}return null},$e=(e,t,n,r,o=0)=>{let i=e.offsetLeft,a=i+e.offsetWidth,s=t.offsetLeft,l=s+t.offsetWidth;return n<a&&n+r>i||n<l+o&&n+r>s-o},ce=e=>{if(!Number.isFinite(e))return[0,1];let t=Number((Math.abs(e)*3).toPrecision(12));if(e>=0)return[0,e<=1?1:t||100];let n=e>=-1?1:t;return[-n,n]},de=e=>e==null?void 0:typeof e=="object"?e.value:e,me=e=>{try{return JSON.stringify(e)}catch{return String(e)}},fe=e=>e==null?"":typeof e=="string"?e:typeof e=="object"?e.label??(e.value!==void 0?String(e.value):me(e)):String(e),k=(e,t,n)=>{let r=document.createElement(e);return t&&(r.className=t),n!=null&&(r.innerHTML=n),(e=="input"||e=="textarea")&&(r.setAttribute("autocomplete","off"),r.setAttribute("data-1p-ignore",""),r.setAttribute("data-lpignore","true")),r},he=(e,t)=>{let n=k("button",e,t);return n.type="button",n},be=(e,t,n)=>{let r=e==="button"?he(t):k(e,t);return r.textContent=n,r},ge=e=>["pointerdown","pointermove","pointerup","click"].forEach(t=>e.addEventListener(t,n=>n.stopPropagation())),pe=e=>{requestAnimationFrame(e),document.fonts&&document.fonts.ready&&document.fonts.ready.then(e)},we=(e,t,n)=>{let r=e.isConnected;r||requestAnimationFrame(()=>{e.isConnected&&(r=!0)});let o=a=>{if(!e.isConnected){(r||e.closest("[data-tw-destroyed]"))&&i();return}r=!0,n(a)},i=()=>t.forEach(([a,s])=>a.removeEventListener(s,o));return t.forEach(([a,s])=>a.addEventListener(s,o)),i},Ve=()=>requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow"))),ze=(e,t)=>{e.addEventListener("pointerenter",()=>{e.classList.add("is-hover"),t()}),e.addEventListener("pointerleave",()=>e.classList.remove("is-hover"))},T=!1;typeof document<"u"&&(document.addEventListener("pointerdown",()=>{T=!0},!0),document.addEventListener("keydown",()=>{T=!1},!0));var je=e=>{e.addEventListener("focus",()=>e.classList.toggle("tw-focus-quiet",T)),e.addEventListener("blur",()=>e.classList.remove("tw-focus-quiet"))},ye=(e,t,{width:n,fallbackH:r=300,gap:o=6,align:i="start",prefer:a="below"}={})=>{let s=e.getBoundingClientRect();n==="match"&&(t.style.width=s.width+"px");let l=t.offsetWidth||(n==="match"?s.width:n||0),f=i==="end"||n==="match"&&l>s.width+.5?s.right-l:i==="center"?s.left+s.width/2-l/2:s.left;t.style.left=Math.max(8,Math.min(f,window.innerWidth-l-8))+"px";let c=t.offsetHeight||r,u=window.innerHeight-s.bottom,h=s.top,g=c+12,p=u>=g,y=h>=g,E=a==="above"?y||!p&&h>=u:!p&&(y||h>u),L=E?s.top-c-o:s.bottom+o;t.style.top=S(L,o,window.innerHeight-c-o)+"px",t.dataset.side=E?"above":"below",t.style.setProperty("--tw-pop-h",String(c))},De=e=>{if(!e||typeof e!="object")return null;let t={};for(let[n,r]of Object.entries(e))r!=null&&(n.startsWith("--")?t[n]=String(r):X("theme",n));return Object.keys(t).length?t:null},Ee=(e,t)=>{if(e){if(e._twAppliedVars)for(let n of e._twAppliedVars)e.style.removeProperty(n);if(e._twAppliedVars=t?Object.keys(t):null,t)for(let n in t)e.style.setProperty(n,t[n])}},ve=(e,t)=>{let n=t?.closest('[data-tw-scheme="light"]')?"light":t?.closest('[data-tw-scheme="dark"]')?"dark":null;n?e.setAttribute("data-tw-scheme",n):e.removeAttribute("data-tw-scheme")},W=(e,t)=>{Ee(e,t?.closest(".tw-panel")?._twTheme),ve(e,t)},v=null,O=null,Le=e=>{v&&e.contains(O)&&v()};function Ke(e,t,n,r={}){let o=!1,i=null,a,s=!1,l=null,d=()=>t.focus({focusVisible:!s});n.classList.add("tw-portal"),n.inert=!0,ge(n);let f=0,c=0,u={open:!1,moved:!1},h=!1,g=()=>{n.style.left=S(parseFloat(n.style.left),8,window.innerWidth-n.offsetWidth-8)+"px",n.style.top=S(parseFloat(n.style.top),8,window.innerHeight-n.offsetHeight-8)+"px"},p=()=>{u.moved?g():ye(t,n,{width:r.width??"match",fallbackH:r.fallbackH,align:r.align});let m=t.getBoundingClientRect();f=parseFloat(n.style.left)-m.left,c=parseFloat(n.style.top)-m.top},y=()=>{if(o){if(!e.isConnected)return w();p(),r.onReflow&&r.onReflow()}},E=()=>{if(!o)return;if(!e.isConnected)return w();let m=t.getBoundingClientRect(),b=t.closest(".tw-panel")?.getBoundingClientRect();if(!(m.width||m.height)||m.bottom<0||m.top>window.innerHeight||m.right<0||m.left>window.innerWidth||b?.height&&(m.bottom<b.top||m.top>b.bottom))return w();n.style.left=m.left+f+"px",n.style.top=m.top+c+"px"},L=m=>{!e.contains(m.target)&&!n.contains(m.target)&&w()},B=m=>{m.key==="Escape"&&o&&!m.defaultPrevented&&(m.preventDefault(),m.stopPropagation(),w(),d())},_=m=>{if(!o)return;let b=m.relatedTarget;!b&&!document.hasFocus()||(b?e.contains(b)||n.contains(b):T)||(w(),b&&!t.closest(".tw-panel")?.contains(b)&&setTimeout(()=>{!o&&document.activeElement===b&&t.focus()},0))};e.addEventListener("focusout",_),n.addEventListener("focusout",_);let ee=()=>n.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'),x=()=>W(n,e),te=m=>{m.every(b=>b.target===n)||x()},$=()=>{v&&v!==w&&v(),v=w,O=t,o=u.open=!0,e.classList.add("is-open"),t.setAttribute("aria-expanded","true"),clearTimeout(a);let m=n.parentNode===document.body;u.moved=!1,s=T,n.inert=!1,m||document.body.appendChild(n),!h&&r.movable!==!1&&(h=!0,import("./heavy-CLD7UAVI.js").then(b=>b.dragPane(n,u,p),()=>{})),W(n,e),window.addEventListener("tw-retheme",x),typeof MutationObserver=="function"&&(i=new MutationObserver(te),i.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),m?p():(n.style.transition="none",p(),n.offsetWidth,n.style.transition=""),typeof ResizeObserver=="function"&&(l=new ResizeObserver(()=>{o&&p()}),l.observe(n)),requestAnimationFrame(()=>{if(o&&(n.classList.add("is-open"),r.onOpen&&r.onOpen(),p(),!n.contains(document.activeElement))){let b=r.initialFocus&&r.initialFocus()||ee();b&&b.focus({focusVisible:!T})}}),requestAnimationFrame(function b(){if(o){if(!e.isConnected)return w();requestAnimationFrame(b)}}),setTimeout(()=>{o&&document.addEventListener("pointerdown",L,!0)},0),document.addEventListener("keydown",B),window.addEventListener("scroll",E,!0),window.addEventListener("resize",y)},w=()=>{v===w&&(v=null,O=null),n.contains(document.activeElement)&&d(),o=u.open=!1,e.classList.remove("is-open"),n.classList.remove("is-open"),n.inert=!0,t.setAttribute("aria-expanded","false"),document.removeEventListener("pointerdown",L,!0),document.removeEventListener("keydown",B),window.removeEventListener("scroll",E,!0),window.removeEventListener("resize",y),window.removeEventListener("tw-retheme",x),i&&(i.disconnect(),i=null),l?.disconnect(),l=null,a=setTimeout(()=>{o||n.remove()},200)};return t.addEventListener("click",()=>{t.disabled||(o?w():$())}),{open:$,close:w,isOpen:()=>o,reflow:y}}var J=typeof matchMedia=="function"?matchMedia("(prefers-reduced-motion: reduce)"):{matches:!1},P="cubic-bezier(0.22, 1, 0.36, 1)",Ge="cubic-bezier(0.34, 1.2, 0.64, 1)",Me=(e,t)=>{J.matches||typeof e.animate!="function"||(e.style.transformOrigin=t>0?"left center":"right center",e.animate([{transform:"scaleX(1)"},{transform:"scaleX(1.18)"},{transform:"scaleX(1)"}],{duration:300,easing:P}))},Te=(e,t,n)=>{let r=e.querySelector('[data-active="true"]');if(!r)return;let o=r.offsetLeft,i=r.offsetWidth,a=parseFloat(t.style.left);t.style.left=o+"px",t.style.width=i+"px",n&&Number.isFinite(a)&&a!==o&&Me(t,o>a?1:-1)},ke=32,xe=200,Ae=8,Ie=(e,t,n)=>{let r=n<t.left?n-t.left:n>t.right?n-t.right:0,o=Math.sign(r)*Ae*Math.sqrt(Math.min(Math.max(0,Math.abs(r)-ke)/xe,1));e.style.width=o?`calc(100% + ${Math.abs(o)}px)`:"",e.style.transform=o<0?`translateX(${o}px)`:""},qe=e=>{e.style.transition=`width 0.35s ${P}, transform 0.35s ${P}`,e.style.width="",e.style.transform="",setTimeout(()=>{e.style.transition=""},360)},We=(e,t)=>{e.classList.toggle("is-disabled",t);for(let n of e.children)n.classList.contains("tw-portal")||(n.inert=t);t&&Le(e)},U=(e,t,n,r)=>{e.classList.toggle("is-collapsed",r),t.setAttribute("aria-expanded",String(!r)),n.inert=r},Ue=(e,t,n,r,o)=>{if(J.matches||typeof n.animate!="function"){U(e,t,n,r),o&&setTimeout(o,370);return}let i=n.getBoundingClientRect(),a=i.height,s=e.closest(".tw-panel"),l=s&&getComputedStyle(s),d=l?parseFloat(l.maxHeight):NaN,f=l&&s.dataset.mode==="floating"&&d>=0?s.getBoundingClientRect().top+d-parseFloat(l.paddingBottom)-parseFloat(l.borderBottomWidth):1/0,c=Math.max(0,Math.min(window.innerHeight,f)-i.top),u=getComputedStyle(n).getPropertyValue("--tw-ease-fold").trim();n._twFold?.cancel(),n._twFold=null,n.style.transition="none",n.style.gridTemplateRows="",U(e,t,n,r);let h=0;if(!r){for(let L of n.firstElementChild?.getAnimations?.()??[])L.transitionProperty!=="opacity"&&L.finish();h=n.getBoundingClientRect().height}let g=Math.min(a,c),p=Math.min(h,c),y=()=>{n.style.gridTemplateRows="",n.offsetHeight,n._twFold?.cancel(),n._twFold=null,n.style.transition="",o?.()};if(Math.abs(g-p)<1)return y();n.style.gridTemplateRows="1fr";let E=n._twFold=n.animate([{height:g+"px"},{height:p+"px"}],{duration:350,easing:u,fill:"forwards"});E.onfinish=()=>{n._twFold===E&&y()}},Y=(e,t)=>{let n=e.findIndex(r=>r.dataset.value===String(t));return n<0&&e.length?0:n},Ce=(e,t)=>{let n=Y(e,t);e.forEach((r,o)=>{let i=r.dataset.value===String(t);r.dataset.active=String(i),r.setAttribute("aria-checked",String(i)),r.tabIndex=o===n?0:-1})},Re=(e,t,n)=>{let r=be("button",e,fe(t));return r.setAttribute("role","radio"),r._twVal=de(t),r.dataset.value=String(r._twVal),r.addEventListener("click",()=>n(r._twVal)),r},Se=(e,t,n,r=0)=>{switch(e){case"ArrowRight":return(t+1)%n;case"ArrowLeft":return(t-1+n)%n;case"ArrowDown":return r<0?-1:r?t+r<n?t+r:t:(t+1)%n;case"ArrowUp":return r<0?-1:r?t-r>=0?t-r:t:(t-1+n)%n;case"Home":return 0;case"End":return n-1}return-1};function Ze(e,t,n,r,o){let i=o!==void 0,a=k("div","tw-seg");a.setAttribute("role",i?"switch":"radiogroup"),r&&a.setAttribute("aria-label",r),i&&(a.tabIndex=0);let s=k("div","tw-seg-pill");a.append(s);let l=e.map(u=>{let h=Re("tw-seg-btn",u,g=>c(g));return i&&(h.setAttribute("aria-hidden","true"),h.addEventListener("focus",()=>a.focus())),a.append(h),h}),d=u=>Te(a,s,u),f=()=>{Ce(l,t),i&&(a.setAttribute("aria-checked",String(t===o)),l.forEach(u=>u.tabIndex=-1)),d(!0)},c=(u,h=!0)=>{u!=null&&!l.some(g=>g._twVal===u)||(t=u,f(),h&&n(u))};return a.addEventListener("keydown",u=>{let h=Y(l,t);if(h<0)return;if(i&&(u.key===" "||u.key==="Enter")){u.preventDefault(),c(l[1-h]._twVal);return}let g=i?{ArrowRight:1,ArrowUp:1,End:1,ArrowLeft:0,ArrowDown:0,Home:0}[u.key]??-1:Se(u.key,h,l.length);g<0||(u.preventDefault(),c(l[g]._twVal),(i?a:l[g]).focus())}),f(),pe(()=>{d(),a.classList.add("is-ready")}),we(a,[[window,"tw-reflow"]],()=>d()),{el:a,set:u=>c(u,!1),get:()=>t}}var Xe=(e,t="",n=2,r=24)=>`<svg${t?` class="${t}"`:""} viewBox="0 0 ${r} ${r}" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${e}</svg>`,Je=(e,t)=>({el:e,set:()=>{},get:()=>{},destroy:t}),Ye=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Qe=e=>e==="__proto__"||e==="constructor"||e==="prototype",et=(e,t)=>e!==t&&!(G(e)&&G(t)&&JSON.stringify(e)===JSON.stringify(t)),tt=(e,t,n)=>{e.set(n),e.set(t)},nt=["stiffness","damping","mass","visualDuration","bounce"],N={},rt=(e,t)=>{N[e]=t},ot=e=>N[e],it=()=>Object.keys(N),Q=null,st=e=>{Q=e},at=()=>Q,M=null,Z=0,lt=e=>{M||(M=k("div","tw-sr"),M.setAttribute("role","status")),M.isConnected||document.body.appendChild(M),M.textContent="",clearTimeout(Z),Z=setTimeout(()=>{M.textContent=e},100)};export{V as a,ne as b,re as c,se as d,ae as e,Fe as f,S as g,G as h,Oe as i,le as j,ue as k,Pe as l,Ne as m,X as n,Be as o,_e as p,$e as q,ce as r,de as s,me as t,fe as u,k as v,he as w,be as x,ge as y,pe as z,we as A,Ve as B,ze as C,je as D,ye as E,De as F,Ee as G,ve as H,W as I,Le as J,Ke as K,J as L,P as M,Ge as N,Te as O,Ie as P,qe as Q,We as R,Ue as S,Y as T,Ce as U,Re as V,Se as W,Ze as X,Xe as Y,Je as Z,Ye as _,Qe as $,et as aa,tt as ba,nt as ca,rt as da,ot as ea,it as fa,st as ga,at as ha,lt as ia};
|
|
2
|
+
//# sourceMappingURL=chunk-6UO4DHBN.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/tweaks/easing.ts", "../../src/tweaks/shared.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["KEYWORDS", "clamp01", "n", "SAMPLES", "parseEasing", "s", "m", "x", "easingSamples", "b", "out", "k", "t", "u", "p1", "p2", "p3", "pct", "STOP_COLOR", "INTERP", "blend", "v", "drawable", "value", "fn", "all", "ok", "a", "gradientStops", "stops", "stopList", "plain", "bez", "samples", "space", "i", "span", "y", "gradientCss", "direction", "humanize", "s", "c", "titleCase", "m", "clamp", "v", "lo", "hi", "isObj", "isColorStr", "MAX_FIXED", "stepPrecision", "step", "e", "i", "roundToStep", "min", "p", "a", "n", "gridEnds", "max", "anchor", "r", "eps", "inferStep", "vals", "range", "base", "on", "fits", "vs", "finest", "withMax", "derivedRange", "rs", "defaultRange", "says", "sayNow", "f", "notice", "kind", "args", "normalizeRange", "rawMin", "rawMax", "rawStep", "label", "given", "d", "up", "b", "t", "rangeStep", "cur", "page", "coarse", "overlapsText", "labelEl", "valueEl", "hx", "hw", "ll", "lr", "vl", "vr", "x3", "optValue", "o", "json", "optLabel", "el", "tag", "cls", "html", "btn", "txt", "text", "stopPointerLeak", "node", "onReady", "fn", "onLive", "owner", "targets", "mounted", "h", "off", "ev", "requestReflow", "wireHoverClass", "onEnter", "pointerModality", "quietFocus", "input", "placeBelow", "trigger", "pop", "width", "fallbackH", "gap", "align", "prefer", "w", "x", "below", "above", "need", "fitsBelow", "fitsAbove", "goAbove", "top", "resolveTheme", "theme", "out", "k", "applyThemeVars", "vars", "carryScheme", "portal", "carrySkin", "activePopoverClose", "activePopoverTrigger", "closeActivePopover", "popover", "root", "opts", "open", "schemeObs", "removeTimer", "byPointer", "sizeObs", "refocus", "dx", "dy", "st", "dragBound", "keepInView", "place", "reflow", "close", "follow", "sr", "onOutside", "onKey", "onFocusOut", "firstFocusable", "recarry", "onScheme", "recs", "openPop", "fading", "watch", "REDUCE_MOTION", "EASE_SPRING", "EASE_GLIDE", "stretchPill", "pill", "dir", "measurePill", "container", "animate", "left", "prev", "RUBBER_DEAD", "RUBBER_RANGE", "RUBBER_MAX", "rubberBand", "track", "rect", "clientX", "over", "rubberRelease", "setDisabled", "setCollapsed", "toggle", "body", "foldBody", "done", "from", "panel", "cs", "maxH", "capBottom", "room", "easing", "to", "finish", "activeIndex", "btns", "value", "setRadioActive", "stop", "radioButton", "onPick", "navIndex", "key", "cols", "createSegmented", "options", "onChange", "ariaLabel", "onIs", "sw", "seg", "set", "measure", "reflect", "fire", "j", "icon", "box", "blade", "destroy", "hasOwn", "isReservedKey", "valueChanged", "restoreDefault", "ctrl", "raw", "def", "SPRING_KEYS", "REGISTRY", "registerControl", "type", "ctor", "getControl", "controlTypes", "MARKUP", "setMarkup", "getMarkup", "srEl", "srT", "announce", "msg"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as kt,e as xt,h as Ae,i as Ne,j as Mt,k as yt,m as wt,n as vt}from"./chunk-XE6OUJBG.js";import{D as St,K as _t,da as Fe,g as m,p as Ct,v as x,x as $t}from"./chunk-6UO4DHBN.js";var wn=180/Math.PI,Ge=Math.PI/180,S=(e,t)=>[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]],vn=(e,t)=>{let n=[[0,0,0],[0,0,0],[0,0,0]];for(let o=0;o<3;o++)for(let r=0;r<3;r++)n[o][r]=e[o][0]*t[0][r]+e[o][1]*t[1][r]+e[o][2]*t[2][r];return n},f=e=>Number.isFinite(e)?e:0,Ft=(e,t,n)=>Math.min(n,Math.max(t,e)),ie=e=>{let t=Math.abs(e);return t<=.04045?e/12.92:Math.sign(e)*((t+.055)/1.055)**2.4},Q=e=>{let t=Math.abs(e);return t<=.0031308?e*12.92:Math.sign(e)*(1.055*t**(1/2.4)-.055)},pe=1.09929682680944,Ht=.018053968510807,Cn=e=>{let t=Math.abs(e);return t<Ht*4.5?e/4.5:Math.sign(e)*((t+pe-1)/pe)**(1/.45)},Gt=e=>{let t=Math.abs(e);return t<Ht?e*4.5:Math.sign(e)*(pe*t**.45-(pe-1))},It=1/512,$n=e=>{let t=Math.abs(e);return t<=It*16?e/16:Math.sign(e)*t**1.8},Sn=e=>{let t=Math.abs(e);return t>=It?Math.sign(e)*t**(1/1.8):16*e},ue=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],ee=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],_n=[[.4865709486482162,.26566769316909306,.19821728523436247],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],Dt=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],En=[[.6369580483012914,.14461690358620832,.16888097516417205],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],Bt=[[1.7166511879712674,-.35567078377639233,-.25336628137365974],[-.6666843518324892,1.6164812366349395,.01576854581391113],[.017639857445310783,-.042770613257808524,.9421031212354738]],Ln=[[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],On=[[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],Pt=563/256,Vn=e=>Math.sign(e)*Math.abs(e)**Pt,Tn=e=>Math.sign(e)*Math.abs(e)**(1/Pt),Rn=[[573536/994567,263643/1420810,187206/994567],[591459/1989134,6239551/9945670,374412/4972835],[53769/1989134,351524/4972835,4929758/4972835]],An=[[1829569/896150,-506331/896150,-308931/896150],[-851781/878810,1648619/878810,36519/878810],[16779/1248040,-147721/1248040,1266979/1248040]],Nn=e=>e,Ie=[[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],De=[[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Fn=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],Xt=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],Hn=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],zt=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],he=216/24389,te=24389/27,K=[.3457/.3585,1,(1-.3457-.3585)/.3585],I=(e,t,n)=>S(n,[t(e[0]),t(e[1]),t(e[2])]),R=(e,t,n)=>{let o=S(n,e);return[t(o[0]),t(o[1]),t(o[2])]},Et=e=>{let t=S(zt,e);return S(Xt,[t[0]**3,t[1]**3,t[2]**3])},Lt=e=>{let t=S(Fn,e);return S(Hn,[Math.cbrt(t[0]),Math.cbrt(t[1]),Math.cbrt(t[2])])};function Ot(e){let[t,n,o]=e,r=(t+16)/116,a=n/500+r,c=r-o/200,l=a**3>he?a**3:(116*a-16)/te,p=t>te*he?r**3:t/te,b=c**3>he?c**3:(116*c-16)/te;return S(De,[l*K[0],p*K[1],b*K[2]])}function Vt(e){let t=S(Ie,e),n=c=>c>he?Math.cbrt(c):(te*c+16)/116,o=n(t[0]/K[0]),r=n(t[1]/K[1]),a=n(t[2]/K[2]);return[116*r-16,500*(o-r),200*(r-a)]}var be=e=>{let t=Math.hypot(e[1],e[2]),n=Math.atan2(e[2],e[1])*wn;return n<0&&(n+=360),[e[0],t,n]},ge=e=>[e[0],e[1]*Math.cos(e[2]*Ge),e[1]*Math.sin(e[2]*Ge)];function jt(e){let t=((Number.isNaN(e[0])?0:e[0])%360+360)%360,n=e[1]/100,o=e[2]/100,r=a=>{let c=(a+t/30)%12,l=n*Math.min(o,1-o);return o-l*Math.max(-1,Math.min(c-3,9-c,1))};return[r(0),r(8),r(4)]}function Kt(e){let t=Math.max(...e),n=Math.min(...e),o=t-n;if(o<1e-9)return NaN;let r;return t===e[0]?r=(e[1]-e[2])/o+(e[1]<e[2]?6:0):t===e[1]?r=(e[2]-e[0])/o+2:r=(e[0]-e[1])/o+4,r*60}function Gn(e){let t=Math.max(...e),n=Math.min(...e),o=(n+t)/2,r=Kt(e),a=t===n||o===0||o===1?0:(t-o)/Math.min(o,1-o);return a<0&&(r+=180,a=-a),r>=360&&(r-=360),[r,a*100,o*100]}function In(e){let t=e[1]/100,n=e[2]/100;if(t+n>=1){let a=t/(t+n);return[a,a,a]}let o=jt([e[0],100,50]),r=1-t-n;return[o[0]*r+t,o[1]*r+t,o[2]*r+t]}var Dn=e=>[Kt(e),Math.min(...e)*100,(1-Math.max(...e))*100];function Bn(e,t){switch(t){case"srgb":return I(e,ie,ue);case"p3":return I(e,ie,_n);case"rec2020":return I(e,Cn,En);case"prophoto-rgb":return S(De,I(e,$n,Ln));case"a98-rgb":return I(e,Vn,Rn);case"srgb-linear":return S(ue,e);case"xyz-d65":return[e[0],e[1],e[2]];case"xyz-d50":return S(De,e);case"oklab":return Et(e);case"oklch":return Et(ge(e));case"lab":return Ot(e);case"lch":return Ot(ge(e));case"hsl":return I(jt(e),ie,ue);case"hwb":return I(In(e),ie,ue)}}function Pn(e,t){switch(t){case"srgb":return R(e,Q,ee);case"p3":return R(e,Q,Dt);case"rec2020":return R(e,Gt,Bt);case"prophoto-rgb":return R(S(Ie,e),Sn,On);case"a98-rgb":return R(e,Tn,An);case"srgb-linear":return R(e,Nn,ee);case"xyz-d65":return[e[0],e[1],e[2]];case"xyz-d50":return S(Ie,e);case"oklab":return Lt(e);case"oklch":return be(Lt(e));case"lab":return Vt(e);case"lch":return be(Vt(e));case"hsl":return Gn(R(e,Q,ee));case"hwb":return Dn(R(e,Q,ee))}}function k(e,t,n){return t===n?[e[0],e[1],e[2]]:t==="oklch"&&n==="oklab"?ge(e):t==="oklab"&&n==="oklch"?be(e):t==="lch"&&n==="lab"?ge(e):t==="lab"&&n==="lch"?be(e):Pn(Bn(e,t),n)}var me=75e-6,Yt=e=>e.every(t=>t>=-me&&t<=1+me),Be=(e,t)=>Yt(k(e,"oklch",t)),He=e=>e.map(t=>Math.min(1,Math.max(0,t))),Tt=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2]);function W(e,t){if(Be(e,t))return k(e,"oklch",t);let n=e[0];if(n>=1)return[1,1,1];if(n<=0)return[0,0,0];if(!Number.isFinite(e[1]))return He(k([n,0,f(e[2])],"oklch",t));let o=.02,r=1e-4,a=[e[0],e[1],e[2]],c=0,l=e[1],p=!0,b=He(k(a,"oklch",t));if(Tt(k(b,t,"oklab"),k(e,"oklch","oklab"))<o)return b;for(;l-c>r;){let i=(c+l)/2;a[1]=i;let g=k(a,"oklch",t);if(p&&Yt(g)){c=i;continue}b=He(g);let d=Tt(k(b,t,"oklab"),k(a,"oklch","oklab"));if(d<o){if(o-d<r)return b;p=!1,c=i}else l=i}return b}var Xn=(e,t)=>{let n=e*Ge,o=Math.cos(n),r=Math.sin(n),a=zt.map(l=>o*l[1]+r*l[2]),c=vn(t==="p3"?Dt:t==="rec2020"?Bt:ee,Xt);return{d:a,F:c,gam:t==="rec2020"?Gt:Q}};function Xe(e,t){let{d:[n,o,r],F:a,gam:c}=Xn(e,t);return(l,p,b)=>{let i=l+p*n,g=l+p*o,d=l+p*r,T=i**3,O=g**3,y=d**3;b[0]=c(a[0][0]*T+a[0][1]*O+a[0][2]*y),b[1]=c(a[1][0]*T+a[1][1]*O+a[1][2]*y),b[2]=c(a[2][0]*T+a[2][1]*O+a[2][2]*y)}}function de(e,t){let n=Xe(e,t),o=[0,0,0],r=-me,a=1+me,c=l=>l>=r&&l<=a;return(l,p)=>(n(l,p,o),o.every(c))}function fe(e,t,n=.5){if(!e(t,0))return 0;let o=0;for(let r=0;r<16;r++){let a=(o+n)/2;e(t,a)?o=a:n=a}return o}var Y=e=>Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,"0").toUpperCase(),zn=e=>`#${Y(e[0])}${Y(e[1])}${Y(e[2])}`,Wt=(e,t,n)=>zn(W([e,t,n],"srgb"));function Zt(e){let t=String(e).replace("#","").trim();if(t.length===3&&(t=t.split("").map(o=>o+o).join("")),t.length<6)return[.7,.1,280];let n=[parseInt(t.slice(0,2),16)/255,parseInt(t.slice(2,4),16)/255,parseInt(t.slice(4,6),16)/255];return k(n,"srgb","oklch").map(f)}var ke=["hex","srgb","css","hsl","hwb","oklch","oklab","lch","lab","p3","rec2020"],qt={hex:"HEX",srgb:"RGB",css:"CSS",hsl:"HSL",hwb:"HWB",oklch:"OKLCH",oklab:"OKLab",lch:"LCH",lab:"Lab",p3:"P3",rec2020:"Rec2020"},Ut=["srgb","css","hsl","hwb","hex"],ze=e=>!Ut.includes(e),je=e=>e==="hex"||e==="css"?"srgb":e,jn=Object.assign(Object.create(null),{hex:"srgb",srgb:"srgb",css:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab",p3:"display-p3",rec2020:"rec2020"}),cr=e=>jn[e]||"oklch",Kn=Object.assign(Object.create(null),{srgb:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab","display-p3":"p3",rec2020:"rec2020"}),ir=e=>Kn[e]||"oklch",Ke=.5,Jt=(e,t,n)=>Object.freeze(["R","G","B"].map(o=>Object.freeze({k:o,min:0,max:e,step:t,scale:n}))),Rt=Jt(255,1,255),At=Jt(1,.01,1),Z={oklch:[{k:"L",min:0,max:100,step:1,scale:100},{k:"C",min:0,max:Ke,step:.01,scale:1},{k:"H",min:0,max:360,step:1,scale:1}],oklab:[{k:"L",min:0,max:100,step:1,scale:100},{k:"a",min:-.4,max:.4,step:.01,scale:1},{k:"b",min:-.4,max:.4,step:.01,scale:1}],lch:[{k:"L",min:0,max:100,step:1,scale:1},{k:"C",min:0,max:150,step:1,scale:1},{k:"H",min:0,max:360,step:1,scale:1}],lab:[{k:"L",min:0,max:100,step:1,scale:1},{k:"a",min:-125,max:125,step:1,scale:1},{k:"b",min:-125,max:125,step:1,scale:1}],srgb:Rt,css:Rt,hsl:[{k:"H",min:0,max:360,step:1,scale:1},{k:"S",min:0,max:100,step:1,scale:1},{k:"L",min:0,max:100,step:1,scale:1}],hwb:[{k:"H",min:0,max:360,step:1,scale:1},{k:"W",min:0,max:100,step:1,scale:1},{k:"B",min:0,max:100,step:1,scale:1}],p3:At,rec2020:At},Pe=e=>e>=1?0:e>=.1?1:e>=.01?2:3,Ye=(e,t,n)=>t==="oklch"?[e[0],e[1],e[2]]:Ut.includes(n)?t==="srgb"?W(e,"srgb"):k(W(e,"srgb"),"srgb",t):k(e,"oklch",t);function xe(e,t){let n=Ye(e,je(t),t);return Z[t].map((o,r)=>{let a=f(n[r])*o.scale;return Ft(Math.abs(a)<.5*o.step?0:a,o.min,o.max)})}function Qt(e,t,n,o){let r=je(t),a=Ye(e,r,t).map(f);a[n]=o/Z[t][n].scale;let c=k(a,r,"oklch");return[f(c[0]),f(c[1]),f(c[2])]}function en(e,t){if(!ze(t))return"sRGB";let n=W(e,"srgb");return Math.max(...n)<.03||Math.min(...n)>.97||Be(e,"srgb")?"sRGB":Be(e,"p3")?"P3":"wide"}var tn=(e,t)=>e==="css"?`${t(0)}, ${t(1)}, ${t(2)}`:e==="oklch"||e==="oklab"||e==="lch"||e==="lab"?`${t(0)}% ${t(1)} ${t(2)}`:e==="hsl"||e==="hwb"?`${t(0)} ${t(1)}% ${t(2)}%`:`${t(0)} ${t(1)} ${t(2)}`;function nn(e,t){if(t==="hex")return Wt(e[0],e[1],e[2]);let n=Z[t],o=xe(e,t);return tn(t,r=>{let a=o[r].toFixed(Pe(n[r].step));return n[r].k==="H"&&+a==360?0 .toFixed(Pe(n[r].step)):a})}var Nt=(e,t)=>t==="hex"?e:t==="srgb"?`rgb(${e})`:t==="css"?`rgba(${e}, 1)`:t==="hsl"?`hsl(${e})`:t==="hwb"?`hwb(${e})`:t==="p3"?`color(display-p3 ${e})`:t==="rec2020"?`color(rec2020 ${e})`:`${t}(${e})`;function Yn(e,t){let n=Z[t],o=Ye(e,je(t),t),r=n.map((c,l)=>{let p=Pe(c.step)+1,b=+Ft(f(o[l])*c.scale,c.min,c.max).toFixed(p);return c.k==="H"&&b===360?0:b+0});t==="hsl"&&(r[2]===0||r[2]===100)&&(r[1]=0);let a=t==="oklch"||t==="lch"||t==="hsl"?r[1]===0:t==="hwb"&&r[1]+r[2]>=100;return tn(t,c=>a&&n[c].k==="H"?"none":String(r[c]))}function We(e,t,n){let o=f(n);if(t==="hex")return Wt(e[0],e[1],e[2])+(o<.999?Y(o):"");let r=Yn(e,t);if(o>=.999)return Nt(r,t);let a=+o.toFixed(3);return t==="css"?`rgba(${r}, ${a})`:Nt(`${r} / ${a}`,t)}var sn=(()=>{try{return document.createElement("canvas").getContext("2d",{colorSpace:"display-p3"})?.getContextAttributes?.().colorSpace==="display-p3"}catch{return!1}})(),Ze=sn?{colorSpace:"display-p3"}:{},Wn=sn?"p3":"srgb",Me=(e,t)=>{let n=e.length-1,o=Math.max(0,Math.min(n,t*n)),r=Math.floor(o),a=o-r;return e[r]*(1-a)+e[Math.min(r+1,n)]*a},Zn=(e,t)=>{let n=de(e,t),o=new Float64Array(128);for(let r=0;r<128;r++)o[r]=fe(n,r/127);return o},qn="var(--tw-checker)",Un=Object.assign(Object.create(null),{srgb:"srgb","display-p3":"p3",rec2020:"rec2020","prophoto-rgb":"prophoto-rgb","a98-rgb":"a98-rgb","srgb-linear":"srgb-linear",xyz:"xyz-d65","xyz-d65":"xyz-d65","xyz-d50":"xyz-d50"}),tt=/^(rgba?|hsla?|hwb)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,nt=/^(oklch|oklab|lch|lab|color)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,Jn=/^(srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/i,q=/^#?([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,qe,ln=()=>qe===void 0?qe=document.createElement("canvas").getContext("2d"):qe,Qn=/^(#[0-9a-f]{3,8}|[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i,er=new Set("aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkgrey darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkslategrey darkturquoise darkviolet deeppink deepskyblue dimgray dimgrey dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow grey honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightslategrey lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple rebeccapurple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray slategrey snow springgreen steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow yellowgreen transparent currentcolor".split(" "));function ye(e){if(e=String(e??"").trim(),!Qn.test(e))return!1;if(q.test(e))return!0;if(nt.test(e))return rr(e);if(tt.test(e))return un(e)!==null;let t=ln();return t?["#000","#fff"].some(n=>{t.fillStyle=n;let o=t.fillStyle;return t.fillStyle=e,t.fillStyle!==o}):!e.includes("(")&&er.has(e.toLowerCase())}var rt="[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?",tr=new RegExp("^"+rt+"$","i"),nr=new RegExp("^"+rt+"%$","i"),cn=new RegExp("^("+rt+")(deg|grad|rad|turn)$","i"),ot=/[ \t\n\r\f]+/,at=/^none$/i,Ue=e=>e.replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g,""),Je=e=>!!e&&!ot.test(e),D=e=>at.test(e)?"none":tr.test(e)?"num":nr.test(e)?"pct":cn.test(e)?"angle":null,Qe=e=>{let t=cn.exec(e);if(!t)return f(parseFloat(e));let n=parseFloat(t[1]),o=t[2].toLowerCase();return f(o==="turn"?n*360:o==="grad"?n*.9:o==="rad"?n*180/Math.PI:n)};function un(e){let t=tt.exec(e);if(!t)return null;let n=t[1].toLowerCase().replace(/a$/,""),o=t[2],r,a,c;if(o.includes(",")){if(n==="hwb")return null;let i=o.split(",").map(Ue);if(i.length<3||i.length>4||!i.every(Je)||(r=i.slice(0,3),a=i[3],c=r.map(D),n==="rgb"?!(c.every(g=>g==="num")||c.every(g=>g==="pct")):!((c[0]==="num"||c[0]==="angle")&&c[1]==="pct"&&c[2]==="pct"))||a!==void 0&&D(a)!=="num"&&D(a)!=="pct")return null}else{let i=o.split("/");if(i.length>2||(r=i[0].split(ot).filter(Boolean),r.length!==3))return null;if(i.length===2){a=Ue(i[1]);let g=Je(a)?D(a):null;if(!g||g==="angle")return null}if(c=r.map(D),n==="rgb"?!c.every(g=>g&&g!=="angle"):!(c[0]&&c[0]!=="pct"&&c[1]&&c[1]!=="angle"&&c[2]&&c[2]!=="angle"))return null}let l=(i,g)=>at.test(i)?0:/%$/.test(i)?parseFloat(i)/100*g:parseFloat(i),p=a===void 0?1:m(l(a,1),0,1);return[n==="rgb"?k([m(l(r[0],255)/255,0,1),m(l(r[1],255)/255,0,1),m(l(r[2],255)/255,0,1)],"srgb","oklch"):k([c[0]==="none"?0:Qe(r[0]),m(l(r[1],100),0,100),m(l(r[2],100),0,100)],n,"oklch"),p]}var rr=e=>{let t=nt.exec(e);if(!t)return!1;let n=t[1].toLowerCase(),o=t[2].split("/");if(o.length>2)return!1;let r=o[0].split(ot).filter(Boolean);if(n==="color"&&!Jn.test(r.shift()||"")||r.length!==3)return!1;let a=n==="lch"||n==="oklch";if(!r.every((c,l)=>{let p=D(c);return p&&(a&&l===2?p!=="pct":p!=="angle")}))return!1;if(o.length===2){let c=Ue(o[1]),l=Je(c)?D(c):null;if(!l||l==="angle")return!1}return!0},rn=(e,t)=>[f(e[0]),m(f(e[1]),0,Ke),(f(e[2])%360+360)%360,t];function we(e){if(e=String(e??"").trim(),q.test(e)){let l=e.replace("#",""),p=1;l.length===4?(p=parseInt(l[3]+l[3],16)/255,l=l.slice(0,3)):l.length===8&&(p=parseInt(l.slice(6,8),16)/255,l=l.slice(0,6));let[b,i,g]=Zt("#"+l);return[b,i,g,p]}let t=nt.exec(e);if(t){let l=t[1].toLowerCase(),[p,b]=t[2].split("/").map(y=>y.trim()),i=p.split(/\s+/).filter(Boolean),g=l;if(l==="color"&&(g=Un[(i[0]||"").toLowerCase()],i=i.slice(1),!g))return[.7,.1,280,1];let d=(y,U=1)=>!y||at.test(y)?0:f(parseFloat(y))*(/%$/.test(y)?U:1),T=b?m(d(b,.01),0,1):1,O=l==="lab"?[m(d(i[0]),0,100),d(i[1],1.25),d(i[2],1.25)]:l==="lch"?[m(d(i[0]),0,100),Math.max(0,d(i[1],1.5)),Qe(i[2]||"0")]:l==="color"?[d(i[0],.01),d(i[1],.01),d(i[2],.01)]:l==="oklab"?[m(d(i[0],.01),0,1),d(i[1],.004),d(i[2],.004)]:[m(d(i[0],.01),0,1),Math.max(0,d(i[1],.004)),Qe(i[2]||"0")];return rn(g==="oklch"?O:k(O,g,"oklch"),T)}if(tt.test(e)){let l=un(e);return l?rn(...l):[0,0,0,1]}let n=ln();if(!n)return[0,0,0,1];n.fillStyle="#000",n.fillStyle=e;let o=n.fillStyle;if(q.test(o))return we(o);let r=o.match(/^rgba?\(([^)]*)\)/i),a=((r?r[1]:"").match(/-?[\d.]+(?:e[+-]?\d+)?/gi)||[0,0,0]).map(Number),c=k([a[0]/255,a[1]/255,a[2]/255],"srgb","oklch");return[f(c[0]),f(c[1]),f(c[2]),a[3]!=null?m(f(a[3]),0,1):1]}var on=e=>typeof e=="string"&&ye(e)&&(et(e)!==null||/^\s*color\(/i.test(e))&&(q.test(e.trim())||(e.replace(/^\s*[a-z]+\(\s*(?:[a-z][\w-]*\s)?/i,"").match(/[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/gi)||[]).every(t=>Math.abs(+t)<=1e3)),et=e=>{let t=String(e??"").trim().toLowerCase();if(q.test(t))return"hex";let n=/^([a-z]+)\(\s*([a-z0-9-]*)/.exec(t);return n?n[1]==="rgb"||n[1]==="rgba"?t.includes(",")?"css":"srgb":n[1]==="color"?n[2]==="display-p3"?"p3":n[2]==="rec2020"?"rec2020":n[2]==="srgb"?"srgb":null:["hsl","hwb","oklch","oklab","lch","lab"].find(o=>o===n[1]||n[1]==="hsla"&&o==="hsl")??null:null},an=e=>{let t=/^\s*(rgba?|hsla?|color)\(\s*([^)]*)\)\s*$/i.exec(e);if(!t)return null;let n=t[1].toLowerCase(),o=t[2].split(",").length;return n==="color"?/^srgb\s/i.test(t[2])?{name:n,legacy:!1,alphaSlot:!1}:null:{name:n,legacy:o>1,alphaSlot:o===4}},or=(e,t)=>{if(!e)return null;if(e.name==="color")return"color(srgb)";let n=t==="css"?{name:"rgba",legacy:!0,alphaSlot:!0}:{name:t==="hsl"?"hsl":"rgb",legacy:!1,alphaSlot:!1};return e.name===n.name&&e.legacy===n.legacy&&e.alphaSlot===n.alphaSlot?null:`${e.name}(${e.legacy?",":""})`},ar=(e,t,n,o)=>{if(!t)return e;let r=o<.999?String(+o.toFixed(3)):t.alphaSlot?"1":"";if(t.name==="color")return`color(srgb ${W(n,"srgb").map(c=>+m(f(c),0,1).toFixed(3)+0).join(" ")}${r&&` / ${r}`})`;let a=(/\((.*)\)$/.exec(e)?.[1]??"").split(/\s*[,/]\s*|\s+/).slice(0,3);return t.legacy?`${t.name}(${a.map(c=>c==="none"?"0":c).join(", ")}${r&&`, ${r}`})`:`${t.name}(${a.join(" ")}${r&&` / ${r}`})`};function hn(e,t){let[n,o,r,a]=we(ye(e.value)?e.value:"#7c5cff"),c=ke.includes(e.mode),l=c?e.mode:et(e.value)??"oklch",p=on(e.value)?e.value.trim():null,b=!c&&ye(e.value)?an(String(e.value)):null,i=NaN,g=null,d=[],T=NaN,O="",y=()=>p??ar(We([n,o,r],l,a),b,[n,o,r],a),U=x("div","tw-color-body"),_=x("div","tw-wg-area"),B=document.createElement("canvas");B.className="tw-wg-canvas";let ne=x("div","tw-wg-thumb");_.append(B,ne);let A=x("div","tw-wg-hue"),N=document.createElement("canvas");N.className="tw-wg-hue-canvas";let ve=x("div","tw-wg-hue-thumb");A.append(N,ve);let re=x("div","tw-wg-alpha"),st=x("div","tw-wg-alpha-grad"),Ce=x("div","tw-wg-hue-thumb");re.append(st,Ce),B.setAttribute("aria-hidden","true"),N.setAttribute("aria-hidden","true"),_.tabIndex=0,_.setAttribute("role","group"),_.setAttribute("aria-label","Color plane: chroma across, lightness up");let lt=x("div","tw-color-mode-row"),V=x("select","tw-color-mode");V.setAttribute("aria-label","Color mode"),ke.forEach(s=>{let u=document.createElement("option");u.value=s,u.textContent=qt[s],V.append(u)});let oe=document.createElement("option");oe.value="kept";let $e=()=>{let s=or(b,l);s?(oe.textContent=s,V.querySelector(`option[value="${l}"]`).after(oe),V.value="kept"):(oe.remove(),V.value=l)};$e();let ct=x("span","tw-color-gamut");lt.append(V,ct);let F=x("div","tw-color-channels");U.append(_,A,re,lt,F);let C=B.getContext("2d",Ze),it=N.getContext("2d"),P=document.createElement("canvas"),pn=P.getContext("2d",Ze),Se=null,_e=()=>{let s=_.clientWidth,u=_.clientHeight;if(s<2)return;let h=window.devicePixelRatio||1,w=ze(l)?"p3":"srgb",v=Zn(r,w);g=v;let $=Math.round(s*h),M=Math.round(u*h),E=Math.max(1,Math.round($/4)),z=Math.max(1,Math.round(M/4));(P.width!==E||P.height!==z)&&(P.width=E,P.height=z,Se=new ImageData(E,z,Ze));let se=Se.data,kn=z>1?1/(z-1):0,xn=E>1?1/(E-1):0,Mn=Xe(r,Wn),le=[0,0,0];for(let H=0;H<z;H++){let ce=1-H*kn,Ve=Me(v,ce);for(let G=0;G<E;G++){Mn(ce,G*xn*Ve,le);let j=(H*E+G)*4;se[j]=Math.round(m(le[0],0,1)*255),se[j+1]=Math.round(m(le[1],0,1)*255),se[j+2]=Math.round(m(le[2],0,1)*255),se[j+3]=255}}if(pn.putImageData(Se,0,0),B.width=$,B.height=M,C.imageSmoothingEnabled=!0,C.drawImage(P,0,0,$,M),w!=="srgb"){let H=(ce,Ve,G,j)=>{let yn=de(r,ce),Te=[];for(let L=0;L<=100;L++){let J=L/100,Re=Me(v,J);if(Re<=0)continue;let ft=fe(yn,J,Re);ft<=0||Te.push([Math.min(ft/Re*$,$-G*h/2),(1-J)*M])}Te.length<2||(C.save(),C.strokeStyle=Ve,C.lineWidth=G*h,C.lineJoin=C.lineCap="round",C.setLineDash(j.map(L=>L*h)),C.beginPath(),Te.forEach((L,J)=>J?C.lineTo(L[0],L[1]):C.moveTo(L[0],L[1])),C.stroke(),C.restore())};H("srgb","rgba(255,255,255,0.7)",1.5,[]),H("p3","rgba(255,255,255,0.4)",1,[3,3])}i=r},ut=.7,ht=s=>{let u=k([ut,fe(de(s,"srgb"),ut),s],"oklch","srgb");return`rgb(${m(u[0]*255,0,255)|0},${m(u[1]*255,0,255)|0},${m(u[2]*255,0,255)|0})`},pt=0,bn=()=>{let s=Math.max(1,A.clientWidth),u=Math.max(1,A.clientHeight);if(!(s<2)&&!(s===pt&&N.width===s)){pt=s,N.width=s,N.height=u;for(let h=0;h<s;h++)it.fillStyle=ht(h/(s-1)*360),it.fillRect(h,0,1,u)}},Ee=()=>{let s=g?Me(g,n):.4,u=v=>`${m(v,0,1)*100}%`,h=(v,$)=>{let M=m(v,0,1);return`calc(${M*100}% + ${(.5-M)*$}px)`};ne.style.left=u(s>0?o/s:0),ne.style.top=u(1-n),ve.style.left=h(r/360,16),Ce.style.left=h(a,16),re.setAttribute("aria-valuenow",String(+a.toFixed(2)));let w=Math.round(r);A.setAttribute("aria-valuenow",String(w)),A.setAttribute("aria-valuetext",`${w}\xB0`),_.setAttribute("aria-description",`lightness ${Math.round(n*100)}%, chroma ${+o.toFixed(3)}`),st.style.background=`linear-gradient(to right, oklch(${n} ${o} ${r} / 0), oklch(${n} ${o} ${r}))`,ne.style.background=`oklch(${n} ${o} ${r})`,Ce.style.background=`linear-gradient(oklch(${n} ${o} ${r} / ${a}), oklch(${n} ${o} ${r} / ${a})), var(--tw-dropdown-bg)`,r!==T&&(O=ht(r),T=r),ve.style.background=O},bt=()=>We([n,o,r],"hex",a),ae=()=>{if(ct.textContent=en([n,o,r],l),l==="hex"){let s=F.querySelector(".tw-color-chan-input");s&&document.activeElement!==s&&(s.value=bt())}else{let s=xe([n,o,r],l);d.forEach((u,h)=>{u.el.contains(document.activeElement)||u.set(s[h])})}},gn=()=>{bn(),_e(),Ee()},mn=()=>t(y()),gt=s=>{s&&r!==i&&_e(),Ee(),ae()},X=s=>{p=null,gt(s),mn()},mt=()=>{if(F.replaceChildren(),d=[],l==="hex"){F.classList.add("tw-color-channels--hex");let s=x("div","tw-color-chan"),u=x("input","tw-color-chan-input");u.type="text",u.spellcheck=!1,u.setAttribute("aria-label","Hex color"),St(u),kt(u),u.addEventListener("change",()=>{let h=u.value.trim();q.test(h)&&([n,o,r,a]=we(h),X(!0))}),u.addEventListener("blur",ae),u.addEventListener("keydown",h=>{h.key==="Enter"&&u.blur()}),xt(u,bt),s.append($t("span","tw-color-chan-label","HEX"),u),F.append(s)}else{F.classList.remove("tw-color-channels--hex");let s=xe([n,o,r],l);Z[l].forEach((u,h)=>{let w=vt({label:u.k,value:s[h],min:u.min,max:u.max,step:u.step},v=>{[n,o,r]=Qt([n,o,r],l,h,m(v,u.min,u.max)),X(!0)});w.el.addEventListener("focusout",ae),d.push(w),F.append(w.el)})}ae()},Le=s=>g?Me(g,s):.4,dn=s=>Ne(s,_);Ae(_,s=>{let[u,h]=dn(s);n=1-h,o=u*Le(n),X(!1)});let fn=yt(_);_.addEventListener("keydown",s=>{if(s.key==="Home"||s.key==="End"){s.preventDefault();return}let u=s.shiftKey?10:1,[h,w]=Mt(s),v=h*u,$=w?w*u:s.key==="PageUp"?10:s.key==="PageDown"?-10:0;if(!v&&!$)return;s.preventDefault();let M=Le(n),E=m((M>0?o/M:0)+v*.01,0,1);n=m(n+$*.01,0,1),o=E*Le(n),X(!1),fn()});let dt=(s,u,h,w,v,$)=>{s.tabIndex=0,s.setAttribute("role","slider"),s.setAttribute("aria-label",u),s.setAttribute("aria-valuemin","0"),s.setAttribute("aria-valuemax",String(h)),Ae(s,M=>$(Ne(M,s)[0]*h)),s.addEventListener("keydown",M=>{let E=Ct(M,v(),w,0,h);E!=null&&(M.preventDefault(),$(m(E,0,h)))})};dt(A,"Hue",360,1,()=>r,s=>{r=s,X(!0)}),dt(re,"Alpha",1,.01,()=>a,s=>{a=s,X(!1)});let Oe=s=>{l=s,p=null,b=null,$e(),mt(),_e(),Ee()};return V.addEventListener("change",()=>{V.value!=="kept"&&(Oe(V.value),e.onMode&&e.onMode())}),mt(),{el:U,set:s=>{if(!ye(s)){console.warn(`[tweaks] color: "${String(s).slice(0,40)}" isn't a color \u2014 kept ${y()}`);return}let u=document.activeElement;u&&U.contains(u)&&u.matches("input")&&u.blur(),[n,o,r,a]=we(s);let h=c?null:et(s);h&&h!==l&&Oe(h),b=h?an(s):null,$e(),p=on(s)?s.trim():null,gt(!0)},get:()=>y(),mode:()=>l,setMode:s=>{s!==l&&ke.includes(s)&&Oe(s)},reflow:gn,swatchCss:()=>`linear-gradient(oklch(${n} ${o} ${r} / ${a}), oklch(${n} ${o} ${r} / ${a})), ${qn}`,valueText:()=>nn([n,o,r],l)+(a<.999?l==="hex"?Y(a):` / ${+a.toFixed(2)}`:"")}}function sr(e,t){let{root:n,trigger:o,right:r}=wt("tw-color",e.label??"Color"),a=x("span","tw-trigger-chip tw-color-swatch"),c=x("span","tw-trigger-value");r.append(a,c);let l=x("div","tw-color-pop"),p=()=>{a.style.background=b.swatchCss(),c.textContent=b.valueText()},b=hn({value:e.value,mode:e.mode,onMode:()=>p()},i=>{p(),t(i)});return l.append(b.el),n.append(l),_t(n,o,l,{fallbackH:340,onOpen:b.reflow,onReflow:b.reflow}),p(),{el:n,set:i=>{i!=null&&(b.set(i),p())},get:()=>b.get()}}var gr=(e,t,n,o)=>o<.999?`oklch(${+e.toFixed(4)} ${+t.toFixed(4)} ${+n.toFixed(2)} / ${+o.toFixed(3)})`:`oklch(${+e.toFixed(4)} ${+t.toFixed(4)} ${+n.toFixed(2)})`;Fe("color",sr);Fe("colorpicker",hn);export{cr as a,ir as b,qn as c,ye as d,we as e,hn as f,gr as g};
|
|
2
|
+
//# sourceMappingURL=chunk-DIQMLBAS.js.map
|