@rogieking/figui3 8.9.18 → 8.9.19

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.
@@ -128,7 +128,7 @@ Full fill editor. Core `fig-input-color` / `fig-input-fill` auto-open it when re
128
128
  </fig-fill-picker>
129
129
  ```
130
130
 
131
- Playground: `#fill-picker` — `all-modes`, `solid`, `gradient`, `image`, `video`, `webcam`.
131
+ Playground: `#fill-picker` — `all-modes`, `solid`, `gradient`, `image`, `video`, `webcam`, `shader` (custom `slot="mode-shader"`).
132
132
 
133
133
  | Attr | Notes |
134
134
  |---|---|
@@ -161,13 +161,12 @@ Do not use `picker` or `picker-anchor` on `fig-input-color`. Forward picker chro
161
161
  ### Custom modes (vanilla)
162
162
 
163
163
  ```html
164
- <fig-fill-picker mode="solid,tokens">
165
- <fig-swatch></fig-swatch>
164
+ <fig-input-fill mode="solid,tokens" value='{"type":"tokens"}'>
166
165
  <div slot="mode-tokens" label="Tokens">Token UI</div>
167
- </fig-fill-picker>
166
+ </fig-input-fill>
168
167
  ```
169
168
 
170
- Child `slot="mode-<name>"` plus `<name>` in `mode`. Custom content must dispatch `input` / `change` with `detail` so the picker stores mode data.
169
+ Child `slot="mode-<name>"` plus `<name>` in `mode`. `fig-input-fill` forwards those slots to the inner picker and uses image-style chrome (type label + opacity). Custom content must dispatch `input` / `change` with `detail` so the picker stores mode data.
171
170
 
172
171
  ### Custom modes (React)
173
172
 
@@ -138,7 +138,7 @@ Playground hashes: `/figui3#{id}`. Full attrs: [reference.md](reference.md).
138
138
  | Tag | Playground | Notes |
139
139
  |---|---|---|
140
140
  | `fig-input-color` | (propkit `#color`) | Solid color. `text`, `alpha`. Auto-detects `fig-fill-picker` |
141
- | `fig-input-fill` | `#fill-input` | Solid/gradient/image/video/webcam JSON `value`. Same `webcam` / `video.poster` shape as the picker. `webcam-mode`, `default-video`, `picker-*` forwarded if picker registered |
141
+ | `fig-input-fill` | `#fill-input` | Solid/gradient/image/video/webcam/custom JSON `value`. Custom `mode-*` slots forward to the inner picker and use image-style chrome. Same `webcam` / `video.poster` shape as the picker. `webcam-mode`, `default-video`, `picker-*` forwarded if picker registered |
142
142
  | `fig-input-palette` | (propkit `#palette`) | Multi-color. `fixed`, `open` |
143
143
  | `fig-input-gradient` | (propkit `#gradient`) | Stops. `edit`, `mode="handle\|tip"` |
144
144
  | `fig-swatch` | `#swatch` | `size`, `selected`, `alpha` |
package/components.css CHANGED
@@ -436,7 +436,7 @@
436
436
  0px 10px 16px 0px light-dark(rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.35)),
437
437
  0px 2px 5px 0px light-dark(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.35)),
438
438
  inset 0px 0.5px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.08)),
439
- inset 0px 0.75px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.075));
439
+ inset 0px 0.75px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.1));
440
440
 
441
441
  --fig-popover-shadow:
442
442
  drop-shadow(0px 1px 1.5px light-dark(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.4)))
@@ -3166,7 +3166,6 @@ dialog[is="fig-popup"] {
3166
3166
  position: sticky;
3167
3167
  top: 0;
3168
3168
  z-index: 2;
3169
- background: var(--fig-popup-bg-color, var(--figma-color-bg));
3170
3169
  }
3171
3170
 
3172
3171
  &:has(> fig-header) {
@@ -3936,6 +3935,10 @@ fig-input-number {
3936
3935
  }
3937
3936
 
3938
3937
  fig-input-fill {
3938
+ & > [slot^="mode-"] {
3939
+ display: none;
3940
+ }
3941
+
3939
3942
  & > .input-combo > fig-fill-picker {
3940
3943
  display: contents;
3941
3944
  }