@primitiv-ui/harmoni-wasm 0.1.32 → 0.1.34
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/harmoni_wasm.d.ts +45 -0
- package/harmoni_wasm.js +94 -0
- package/harmoni_wasm_bg.wasm +0 -0
- package/package.json +1 -1
package/harmoni_wasm.d.ts
CHANGED
|
@@ -216,8 +216,33 @@ export function generate_alpha_ramp(anchor: string): AlphaRamp;
|
|
|
216
216
|
*/
|
|
217
217
|
export function generate_alpha_ramp_with_steps(anchor: string, steps: number): AlphaRamp;
|
|
218
218
|
|
|
219
|
+
/**
|
|
220
|
+
* A neutral ramp in both modes from anchors that are **already** tinted, for a
|
|
221
|
+
* caller that did its own tinting (or wants none).
|
|
222
|
+
*
|
|
223
|
+
* [`generate_tinted_neutral_pair`] is the one to reach for. This is the seam
|
|
224
|
+
* underneath it, kept public because the anchors are a legitimate thing to hold
|
|
225
|
+
* directly — the Harmoni project stores its own `SoftNeutrals`.
|
|
226
|
+
*/
|
|
227
|
+
export function generate_neutral_pair(white: string, black: string, tint: TintMode, bow: number, steps: number): PaletteSet;
|
|
228
|
+
|
|
219
229
|
export function generate_neutral_ramp(white: string, black: string, tint: TintMode, bow: number): Palette;
|
|
220
230
|
|
|
231
|
+
/**
|
|
232
|
+
* Builds a neutral ramp of `steps` steps, so the neutral ramp can match the
|
|
233
|
+
* length of the solid ramps it sits beside — a ten-step neutral against a
|
|
234
|
+
* seven-step brand would otherwise carry two different label sets for one
|
|
235
|
+
* palette. Labels come from the same ladder `generate_palette_with_steps`
|
|
236
|
+
* walks. `steps` outside the range `supported_step_range` reports is rejected
|
|
237
|
+
* rather than clamped.
|
|
238
|
+
*
|
|
239
|
+
* Like every `palette_to_js` entry point, this has no native test:
|
|
240
|
+
* `serde_wasm_bindgen::to_value` needs a JS runtime, so the whole function is
|
|
241
|
+
* unreachable off-target. The step-count and label decisions it forwards are
|
|
242
|
+
* covered where they are actually made — `api::neutral_tests`.
|
|
243
|
+
*/
|
|
244
|
+
export function generate_neutral_ramp_with_steps(white: string, black: string, tint: TintMode, bow: number, steps: number): Palette;
|
|
245
|
+
|
|
221
246
|
export function generate_palette(hex: string, light_padding: number, dark_padding: number): Palette;
|
|
222
247
|
|
|
223
248
|
export function generate_palette_pair(hex: string, light_lightness: Array<any>, dark_lightness: Array<any>, light_padding: number, dark_padding: number): PaletteSet;
|
|
@@ -248,6 +273,23 @@ export function generate_palette_with_lightness(hex: string, lightness: Array<an
|
|
|
248
273
|
*/
|
|
249
274
|
export function generate_palette_with_steps(hex: string, steps: number, light_padding: number, dark_padding: number): Palette;
|
|
250
275
|
|
|
276
|
+
/**
|
|
277
|
+
* A neutral ramp in **both modes**, with its tint applied — the plugin's whole
|
|
278
|
+
* neutral generation in one call.
|
|
279
|
+
*
|
|
280
|
+
* This exists to take work away from TypeScript. The plugin's adapter was
|
|
281
|
+
* choosing between `tint_neutrals` and `tint_neutrals_duotone`, splitting the
|
|
282
|
+
* source hue by the spread, zeroing `bow` when untinted, and calling the
|
|
283
|
+
* generator twice with the anchors swapped. Every one of those is a colour
|
|
284
|
+
* decision, and colour decisions belong to the engine — the adapter's job is to
|
|
285
|
+
* marshal input in and results out, nothing else.
|
|
286
|
+
*
|
|
287
|
+
* `tint_source` of `None` is an untinted grey, which is what `tint === null` has
|
|
288
|
+
* always meant on the plugin side. `strength`, `spread` and `bow` are ignored in
|
|
289
|
+
* that case rather than shaping nothing.
|
|
290
|
+
*/
|
|
291
|
+
export function generate_tinted_neutral_pair(white: string, black: string, tint_source: string | null | undefined, strength: number, spread: number, bow: number, steps: number): PaletteSet;
|
|
292
|
+
|
|
251
293
|
export function get_contrast_rating(bg: string, fg: string): ContrastResult;
|
|
252
294
|
|
|
253
295
|
/**
|
|
@@ -350,7 +392,9 @@ export interface InitOutput {
|
|
|
350
392
|
readonly describe_oklch: (a: number, b: number, c: number) => any;
|
|
351
393
|
readonly generate_alpha_ramp: (a: number, b: number) => [number, number, number];
|
|
352
394
|
readonly generate_alpha_ramp_with_steps: (a: number, b: number, c: number) => [number, number, number];
|
|
395
|
+
readonly generate_neutral_pair: (a: number, b: number, c: number, d: number, e: any, f: number, g: number) => [number, number, number];
|
|
353
396
|
readonly generate_neutral_ramp: (a: number, b: number, c: number, d: number, e: any, f: number) => [number, number, number];
|
|
397
|
+
readonly generate_neutral_ramp_with_steps: (a: number, b: number, c: number, d: number, e: any, f: number, g: number) => [number, number, number];
|
|
354
398
|
readonly generate_palette: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
355
399
|
readonly generate_palette_pair: (a: number, b: number, c: any, d: any, e: number, f: number) => [number, number, number];
|
|
356
400
|
readonly generate_palette_pair_with_curve: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number, number];
|
|
@@ -358,6 +402,7 @@ export interface InitOutput {
|
|
|
358
402
|
readonly generate_palette_with_light_padding: (a: number, b: number, c: number) => [number, number, number];
|
|
359
403
|
readonly generate_palette_with_lightness: (a: number, b: number, c: any, d: number, e: number) => [number, number, number];
|
|
360
404
|
readonly generate_palette_with_steps: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
405
|
+
readonly generate_tinted_neutral_pair: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number];
|
|
361
406
|
readonly get_contrast_rating: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
362
407
|
readonly grade: (a: number, b: any) => any;
|
|
363
408
|
readonly max_in_gamut_chroma: (a: number, b: number, c: any) => number;
|
package/harmoni_wasm.js
CHANGED
|
@@ -140,6 +140,32 @@ export function generate_alpha_ramp_with_steps(anchor, steps) {
|
|
|
140
140
|
return takeFromExternrefTable0(ret[0]);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
/**
|
|
144
|
+
* A neutral ramp in both modes from anchors that are **already** tinted, for a
|
|
145
|
+
* caller that did its own tinting (or wants none).
|
|
146
|
+
*
|
|
147
|
+
* [`generate_tinted_neutral_pair`] is the one to reach for. This is the seam
|
|
148
|
+
* underneath it, kept public because the anchors are a legitimate thing to hold
|
|
149
|
+
* directly — the Harmoni project stores its own `SoftNeutrals`.
|
|
150
|
+
* @param {string} white
|
|
151
|
+
* @param {string} black
|
|
152
|
+
* @param {TintMode} tint
|
|
153
|
+
* @param {number} bow
|
|
154
|
+
* @param {number} steps
|
|
155
|
+
* @returns {PaletteSet}
|
|
156
|
+
*/
|
|
157
|
+
export function generate_neutral_pair(white, black, tint, bow, steps) {
|
|
158
|
+
const ptr0 = passStringToWasm0(white, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
159
|
+
const len0 = WASM_VECTOR_LEN;
|
|
160
|
+
const ptr1 = passStringToWasm0(black, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
161
|
+
const len1 = WASM_VECTOR_LEN;
|
|
162
|
+
const ret = wasm.generate_neutral_pair(ptr0, len0, ptr1, len1, tint, bow, steps);
|
|
163
|
+
if (ret[2]) {
|
|
164
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
165
|
+
}
|
|
166
|
+
return takeFromExternrefTable0(ret[0]);
|
|
167
|
+
}
|
|
168
|
+
|
|
143
169
|
/**
|
|
144
170
|
* @param {string} white
|
|
145
171
|
* @param {string} black
|
|
@@ -159,6 +185,37 @@ export function generate_neutral_ramp(white, black, tint, bow) {
|
|
|
159
185
|
return takeFromExternrefTable0(ret[0]);
|
|
160
186
|
}
|
|
161
187
|
|
|
188
|
+
/**
|
|
189
|
+
* Builds a neutral ramp of `steps` steps, so the neutral ramp can match the
|
|
190
|
+
* length of the solid ramps it sits beside — a ten-step neutral against a
|
|
191
|
+
* seven-step brand would otherwise carry two different label sets for one
|
|
192
|
+
* palette. Labels come from the same ladder `generate_palette_with_steps`
|
|
193
|
+
* walks. `steps` outside the range `supported_step_range` reports is rejected
|
|
194
|
+
* rather than clamped.
|
|
195
|
+
*
|
|
196
|
+
* Like every `palette_to_js` entry point, this has no native test:
|
|
197
|
+
* `serde_wasm_bindgen::to_value` needs a JS runtime, so the whole function is
|
|
198
|
+
* unreachable off-target. The step-count and label decisions it forwards are
|
|
199
|
+
* covered where they are actually made — `api::neutral_tests`.
|
|
200
|
+
* @param {string} white
|
|
201
|
+
* @param {string} black
|
|
202
|
+
* @param {TintMode} tint
|
|
203
|
+
* @param {number} bow
|
|
204
|
+
* @param {number} steps
|
|
205
|
+
* @returns {Palette}
|
|
206
|
+
*/
|
|
207
|
+
export function generate_neutral_ramp_with_steps(white, black, tint, bow, steps) {
|
|
208
|
+
const ptr0 = passStringToWasm0(white, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
209
|
+
const len0 = WASM_VECTOR_LEN;
|
|
210
|
+
const ptr1 = passStringToWasm0(black, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
211
|
+
const len1 = WASM_VECTOR_LEN;
|
|
212
|
+
const ret = wasm.generate_neutral_ramp_with_steps(ptr0, len0, ptr1, len1, tint, bow, steps);
|
|
213
|
+
if (ret[2]) {
|
|
214
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
215
|
+
}
|
|
216
|
+
return takeFromExternrefTable0(ret[0]);
|
|
217
|
+
}
|
|
218
|
+
|
|
162
219
|
/**
|
|
163
220
|
* @param {string} hex
|
|
164
221
|
* @param {number} light_padding
|
|
@@ -287,6 +344,43 @@ export function generate_palette_with_steps(hex, steps, light_padding, dark_padd
|
|
|
287
344
|
return takeFromExternrefTable0(ret[0]);
|
|
288
345
|
}
|
|
289
346
|
|
|
347
|
+
/**
|
|
348
|
+
* A neutral ramp in **both modes**, with its tint applied — the plugin's whole
|
|
349
|
+
* neutral generation in one call.
|
|
350
|
+
*
|
|
351
|
+
* This exists to take work away from TypeScript. The plugin's adapter was
|
|
352
|
+
* choosing between `tint_neutrals` and `tint_neutrals_duotone`, splitting the
|
|
353
|
+
* source hue by the spread, zeroing `bow` when untinted, and calling the
|
|
354
|
+
* generator twice with the anchors swapped. Every one of those is a colour
|
|
355
|
+
* decision, and colour decisions belong to the engine — the adapter's job is to
|
|
356
|
+
* marshal input in and results out, nothing else.
|
|
357
|
+
*
|
|
358
|
+
* `tint_source` of `None` is an untinted grey, which is what `tint === null` has
|
|
359
|
+
* always meant on the plugin side. `strength`, `spread` and `bow` are ignored in
|
|
360
|
+
* that case rather than shaping nothing.
|
|
361
|
+
* @param {string} white
|
|
362
|
+
* @param {string} black
|
|
363
|
+
* @param {string | null | undefined} tint_source
|
|
364
|
+
* @param {number} strength
|
|
365
|
+
* @param {number} spread
|
|
366
|
+
* @param {number} bow
|
|
367
|
+
* @param {number} steps
|
|
368
|
+
* @returns {PaletteSet}
|
|
369
|
+
*/
|
|
370
|
+
export function generate_tinted_neutral_pair(white, black, tint_source, strength, spread, bow, steps) {
|
|
371
|
+
const ptr0 = passStringToWasm0(white, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
372
|
+
const len0 = WASM_VECTOR_LEN;
|
|
373
|
+
const ptr1 = passStringToWasm0(black, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
374
|
+
const len1 = WASM_VECTOR_LEN;
|
|
375
|
+
var ptr2 = isLikeNone(tint_source) ? 0 : passStringToWasm0(tint_source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
376
|
+
var len2 = WASM_VECTOR_LEN;
|
|
377
|
+
const ret = wasm.generate_tinted_neutral_pair(ptr0, len0, ptr1, len1, ptr2, len2, strength, spread, bow, steps);
|
|
378
|
+
if (ret[2]) {
|
|
379
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
380
|
+
}
|
|
381
|
+
return takeFromExternrefTable0(ret[0]);
|
|
382
|
+
}
|
|
383
|
+
|
|
290
384
|
/**
|
|
291
385
|
* @param {string} bg
|
|
292
386
|
* @param {string} fg
|
package/harmoni_wasm_bg.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED