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.
Files changed (111) hide show
  1. package/AGENTS.md +31 -29
  2. package/README.md +55 -29
  3. package/THIRD-PARTY-NOTICES.md +0 -1
  4. package/dist/tweaks/auto.js +2 -0
  5. package/dist/tweaks/auto.js.map +6 -0
  6. package/dist/tweaks/bezier-JFEZMCLP.js +2 -0
  7. package/dist/tweaks/bezier-JFEZMCLP.js.map +6 -0
  8. package/dist/tweaks/chunk-6UO4DHBN.js +2 -0
  9. package/dist/tweaks/chunk-6UO4DHBN.js.map +6 -0
  10. package/dist/tweaks/chunk-DIQMLBAS.js +2 -0
  11. package/dist/tweaks/chunk-DIQMLBAS.js.map +6 -0
  12. package/dist/tweaks/chunk-XE6OUJBG.js +2 -0
  13. package/dist/tweaks/chunk-XE6OUJBG.js.map +6 -0
  14. package/dist/tweaks/clip-WW7JYO4X.js +2 -0
  15. package/dist/tweaks/clip-WW7JYO4X.js.map +6 -0
  16. package/dist/tweaks/color-YMMFURP6.js +2 -0
  17. package/dist/tweaks/color-YMMFURP6.js.map +6 -0
  18. package/dist/tweaks/core.js +2 -1
  19. package/dist/tweaks/core.js.map +6 -0
  20. package/dist/tweaks/{fold-UGN7TXGX.js → fold-U6YRZLCJ.js} +2 -1
  21. package/dist/tweaks/fold-U6YRZLCJ.js.map +6 -0
  22. package/dist/tweaks/gradient-JER7PW4D.js +2 -0
  23. package/dist/tweaks/gradient-JER7PW4D.js.map +6 -0
  24. package/dist/tweaks/heavy-CLD7UAVI.js +2 -0
  25. package/dist/tweaks/heavy-CLD7UAVI.js.map +6 -0
  26. package/dist/tweaks/image-H6QSLGO3.js +4 -0
  27. package/dist/tweaks/image-H6QSLGO3.js.map +6 -0
  28. package/dist/tweaks/image-store-WRKY2NPU.js +2 -0
  29. package/dist/tweaks/image-store-WRKY2NPU.js.map +6 -0
  30. package/dist/tweaks/interval-TEUHQGZN.js +2 -0
  31. package/dist/tweaks/interval-TEUHQGZN.js.map +6 -0
  32. package/dist/tweaks/markup-NIBJD6E2.js +2 -0
  33. package/dist/tweaks/markup-NIBJD6E2.js.map +6 -0
  34. package/dist/tweaks/monitor-3BY7YCGX.js +3 -0
  35. package/dist/tweaks/monitor-3BY7YCGX.js.map +6 -0
  36. package/dist/tweaks/motion-FQPUBKKM.js +2 -0
  37. package/dist/tweaks/motion-FQPUBKKM.js.map +6 -0
  38. package/dist/tweaks/plot-2HBNBZSG.js +3 -0
  39. package/dist/tweaks/plot-2HBNBZSG.js.map +6 -0
  40. package/dist/tweaks/point-VV6XV3I6.js +2 -0
  41. package/dist/tweaks/point-VV6XV3I6.js.map +6 -0
  42. package/dist/tweaks/shadow-5E4E55I2.js +2 -0
  43. package/dist/tweaks/shadow-5E4E55I2.js.map +6 -0
  44. package/dist/tweaks/sides-P3STEVYY.js +2 -0
  45. package/dist/tweaks/sides-P3STEVYY.js.map +6 -0
  46. package/dist/tweaks/spring-HUVSXNVN.js +2 -0
  47. package/dist/tweaks/spring-HUVSXNVN.js.map +6 -0
  48. package/dist/tweaks/tabs-76FW7LQ7.js +2 -0
  49. package/dist/tweaks/tabs-76FW7LQ7.js.map +6 -0
  50. package/dist/tweaks.css +1 -1
  51. package/dist/tweaks.js +6 -3
  52. package/dist/tweaks.js.map +6 -0
  53. package/dist/types/tweaks/easing.d.ts +8 -11
  54. package/dist/types/tweaks/panel.d.ts +6 -4
  55. package/dist/types/tweaks/schema.d.ts +4 -8
  56. package/dist/types/tweaks/standalone.d.ts +3 -3
  57. package/dist/types/tweaks/types.d.ts +278 -101
  58. package/package.json +27 -5
  59. package/src/tweaks/auto.ts +12 -0
  60. package/src/tweaks/clip.ts +94 -0
  61. package/src/tweaks/controls/basic.ts +403 -0
  62. package/src/tweaks/controls/bezier.ts +99 -0
  63. package/src/tweaks/controls/color.ts +412 -0
  64. package/src/tweaks/controls/gradient.ts +240 -0
  65. package/src/tweaks/controls/image.ts +299 -0
  66. package/src/tweaks/controls/interval.ts +104 -0
  67. package/src/tweaks/controls/monitor.ts +105 -0
  68. package/src/tweaks/controls/motion.ts +141 -0
  69. package/src/tweaks/controls/plot.ts +220 -0
  70. package/src/tweaks/controls/point.ts +119 -0
  71. package/src/tweaks/controls/shadow.ts +83 -0
  72. package/src/tweaks/controls/sides.ts +86 -0
  73. package/src/tweaks/controls/spring.ts +148 -0
  74. package/src/tweaks/controls/tabs.ts +47 -0
  75. package/src/tweaks/core.ts +9 -0
  76. package/src/tweaks/easing.ts +93 -0
  77. package/src/tweaks/enhance.ts +20 -0
  78. package/src/tweaks/feedback.ts +119 -0
  79. package/src/tweaks/fold.ts +21 -0
  80. package/src/tweaks/heavy.ts +302 -0
  81. package/src/tweaks/icons.ts +19 -0
  82. package/src/tweaks/image-store.ts +101 -0
  83. package/src/tweaks/lazy.ts +46 -0
  84. package/src/tweaks/markup.ts +154 -0
  85. package/src/tweaks/panel.ts +869 -0
  86. package/src/tweaks/schema.ts +189 -0
  87. package/src/tweaks/shared.ts +525 -0
  88. package/src/tweaks/single.ts +22 -0
  89. package/src/tweaks/standalone.ts +89 -0
  90. package/src/tweaks/types.ts +526 -0
  91. package/src/tweaks.css +959 -0
  92. package/src/wide-gamut.ts +310 -0
  93. package/dist/tweaks/bezier-2RABC6LD.js +0 -1
  94. package/dist/tweaks/chunk-4ATI34PB.js +0 -1
  95. package/dist/tweaks/chunk-7OSCMZ2J.js +0 -1
  96. package/dist/tweaks/chunk-W3JNIJ2F.js +0 -1
  97. package/dist/tweaks/clip-ECGCECEC.js +0 -1
  98. package/dist/tweaks/colour-2RE3FQ5E.js +0 -1
  99. package/dist/tweaks/gradient-DB6XTDHO.js +0 -1
  100. package/dist/tweaks/heavy-PKOMHB3C.js +0 -1
  101. package/dist/tweaks/image-7MCLBOZ3.js +0 -1
  102. package/dist/tweaks/interval-L2E4L3AZ.js +0 -1
  103. package/dist/tweaks/markup-ZJJ6CCWM.js +0 -1
  104. package/dist/tweaks/monitor-IEK742PG.js +0 -2
  105. package/dist/tweaks/motion-N5UNVR55.js +0 -1
  106. package/dist/tweaks/plot-VVTOY3RA.js +0 -2
  107. package/dist/tweaks/point-YMMHSLO7.js +0 -1
  108. package/dist/tweaks/shadow-IKYOV3VN.js +0 -1
  109. package/dist/tweaks/sides-FH227Z54.js +0 -1
  110. package/dist/tweaks/spring-3PKAFIH7.js +0 -1
  111. 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 lack of one, its package manager, and the component the person wants to tune.
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 values the component already has. Start from their current values with sensible ranges; four to eight controls is plenty.
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"; // single-file build: every control inlined, synchronous
26
- import { tweaks } from "tweakit/core"; // code-split build: heavy controls load on first use
27
- import "tweakit/css"; // the stylesheet, needed by either build
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 mirrors that below 0 | number |
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, title-cased; `label` overrides on a `{ type }` form and on `{ action }`, not on the `{ options, value }` shorthand. `_last` is reserved and cannot be a key.
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`; the four floor at 0 unless `min` says otherwise | `{ top, right, bottom, left, css }`; `css` is ready for `padding`, `margin` or `border-radius` |
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` | string |
88
- | `segmented` | `options, value, cols` | string |
89
- | `radiogrid` | `options, value, cols` | string |
90
- | `color` | `value` | color string in the picker's notation: `oklch(60% 0.23 286)` by default, whatever you wrote; `#rrggbb` once the user picks hex |
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 that opens 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, as a PNG up to 1.5 MB, else JPEG at `quality` (0.85), or WebP for transparency; `fit: false` keeps it whole | the chosen URL, the upload's data URL, or `""` |
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; `params._last` is the last changed key, the bare leaf (`blur`, not `shadow.blur`).
110
- - `panel.on((params, changedKey) => …)`: fires on every change; returns an unsubscribe function. `changedKey` is that same leaf, so read nested values off `params` rather than switching on the key.
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), `presets: false`, `filter: true` (a search field; needs the toolbar), `floating: true` or `{ x, y, corner }`, `draggable: false` to pin, `toolbar: false`, `undo: true`, `onReset`, `onEditStart` and `onEditEnd`.
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 a corner. 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.
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 and drop the derived ones (`css`, `easing`, a spring's `duration`).
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
- The core module also upgrades `[data-tw]` elements in place: `<div data-tw="slider" data-label="Blur" data-value="12" data-min="0" data-max="40"></div>`, inside a `.tw-panel` shell for the header and toolbar or bare anywhere in your layout, a control's options as `data-*` attributes. Each host dispatches a bubbling `tw:change` event with `{ key, value }`; `enhance(root)` binds hosts added later. Details: https://ryankiley.github.io/tweakit/markup.md
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 friendly keys (`accent`, `base`, `surface`, `border`, `text`, `radius`, `density`, `width`, `font` and more) or raw `--tw-*` tokens. Details: https://ryankiley.github.io/tweakit/theming.md
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 when `persist` is set. Values leave through the clipboard, `panel.changes()` or `panel.toJSON()`.
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, update state in `panel.on()`, and call `panel.destroy()` on unmount.
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, and `draggable: false` to pin it:
65
-
66
- ```js
67
- tweaks("Settings", schema, { floating: { x: 16, y: 16, corner: "top-right" }, draggable: false });
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
 
@@ -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