paperlab 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import * as THREE from 'three';
4
- import { P as PaperConfig, a as PaperConfigInput, S as SheetConfig, b as StockName, C as ContentConfigInput, B as BehaviorConfigInput, D as DeformerInstanceConfigInput, c as SurfaceConfigInput, M as MemoryConfigInput, d as SceneConfigInput, e as PhysicsConfigInput, f as CreaseConfig, F as FieldPaperSlot, g as ContentConfig, h as PaperStatesInput, L as LightingName, i as FilmName, j as LightOverrides, k as BackdropConfig } from './slots-DbJQfwVd.cjs';
5
- export { l as BackContentConfig, m as BehaviorConfig, n as ClothConfig, o as CoreStateName, p as CreaseConfigInput, q as DeformerInstanceConfig, r as LightOverridesInput, s as MemoryConfig, t as PaperEdge, u as PaperStates, v as PhysicsConfig, w as SceneConfig, x as StateDef, y as StateName, z as StateTransitionConfig, A as StripConfig, E as SurfaceConfig, W as WashConfig, G as backdropSchema, H as behaviorConfigSchema, I as clothConfigSchema, J as contentNames, K as contentSchemaFor, N as coreStateNames, O as creaseSchema, Q as lightSchema, R as lightingNames, T as memorySchema, U as paperConfigSchema, V as paperEdges, X as paperStatesSchema, Y as physicsNames, Z as sceneSchema, _ as stateDefSchema, $ as stockNames, a0 as stripConfigSchema, a1 as washSchema } from './slots-DbJQfwVd.cjs';
4
+ import { P as PaperConfig, a as PaperConfigInput, S as SheetConfig, b as StockName, C as ContentConfigInput, B as BehaviorConfigInput, D as DeformerInstanceConfigInput, c as SurfaceConfigInput, M as MemoryConfigInput, d as SceneConfigInput, e as PhysicsConfigInput, f as MountConfigInput, g as CreaseConfig, F as FieldPaperSlot, h as ContentConfig, i as PaperStatesInput, L as LightingName, j as FilmName, k as LightOverrides, l as BackdropConfig } from './slots-BAVzglHw.cjs';
5
+ export { m as BackContentConfig, n as BehaviorConfig, o as ClothConfig, p as CoreStateName, q as CreaseConfigInput, r as DeformerInstanceConfig, s as DieCutConfig, t as LightOverridesInput, u as MemoryConfig, v as MountConfig, w as MountStickerConfig, x as PaperEdge, y as PaperStates, z as PhysicsConfig, A as SceneConfig, E as StateDef, G as StateName, H as StateTransitionConfig, I as StripConfig, J as SurfaceConfig, W as WashConfig, K as backdropSchema, N as behaviorConfigSchema, O as clothConfigSchema, Q as contentNames, R as contentSchemaFor, T as coreStateNames, U as creaseSchema, V as lightSchema, X as lightingNames, Y as memorySchema, Z as mountObjectNames, _ as mountSchema, $ as mountStickerSchema, a0 as paperConfigSchema, a1 as paperEdges, a2 as paperStatesSchema, a3 as physicsNames, a4 as sceneSchema, a5 as stateDefSchema, a6 as stockNames, a7 as stripConfigSchema, a8 as washSchema } from './slots-BAVzglHw.cjs';
6
6
  import { D as DamageSource } from './damageContract-9RC4egJg.cjs';
7
7
  export { a as DAMAGE_CHANNELS, b as DAMAGE_LOOK_DEFAULTS, c as DamageLook } from './damageContract-9RC4egJg.cjs';
8
8
  import { z } from 'zod';
@@ -145,6 +145,11 @@ interface PaperMeshProps {
145
145
  /** Scene-level presentation that travels with the paper (lighting). */
146
146
  scene?: SceneConfigInput;
147
147
  physics?: PhysicsConfigInput | 'cloth';
148
+ /**
149
+ * What the sheet is stuck to — a lemon, or any model. The sheet hugs its
150
+ * surface, takes its texture, and every behavior is carried onto the curve.
151
+ */
152
+ mount?: MountConfigInput;
148
153
  onTwos?: boolean;
149
154
  /** Show draggable behavior handles; cloth sheets become grabbable. */
150
155
  interactive?: boolean;
@@ -497,6 +502,36 @@ declare const PaperFieldMesh: react.ForwardRefExoticComponent<PaperFieldMeshProp
497
502
  /** `<PaperField />` owns its own Canvas; PaperFieldMesh drops into existing scenes. */
498
503
  declare const PaperField: react.ForwardRefExoticComponent<PaperFieldProps & react.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
499
504
 
505
+ /**
506
+ * Sticker art for the `peeling-sticker` preset: real marks from the AI and
507
+ * design tools of the moment, each set on a die-cut shape the way a laptop
508
+ * sticker is. They are EXAMPLES. Every one is swappable for the caller's own
509
+ * art, and the editor uploads a replacement in a click.
510
+ *
511
+ * The marks belong to their owners and are used here to show the effect;
512
+ * the shapes and colourways round them are this library's. Plain SVG
513
+ * strings, so nothing is fetched and a preset carrying one still works
514
+ * offline. Generated from the brands' own SVGs (simple-icons for most,
515
+ * and paper.design, quiver.ai and higgsfield.ai for theirs).
516
+ */
517
+ declare const STICKER_ART: {
518
+ readonly paper: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"960\" height=\"384\" viewBox=\"0 0 240 96\"><rect x=\"2\" y=\"2\" width=\"236\" height=\"92\" rx=\"46\" fill=\"#17171c\"/><svg x=\"36\" y=\"18\" width=\"168\" height=\"60\" viewBox=\"0 0 88 24\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"scale(0.8)\"><path d=\"M34.9805 23.975V2.97656H42.3299C46.6196 2.97656 49.4394 5.52637 49.4394 9.39608C49.4394 13.2658 46.6196 15.8156 42.3299 15.8156H38.4002V23.975H34.9805ZM38.4002 12.6959H42.3299C44.6098 12.6959 45.9597 11.436 45.9597 9.39608C45.9597 7.35623 44.6098 6.12633 42.3299 6.12633H38.4002V12.6959ZM49.2871 16.6255C49.2871 21.1551 52.1369 24.3049 56.2166 24.3049C58.3464 24.3049 60.2063 23.315 61.1062 21.7551V23.9749H64.376V9.24598H61.1062V11.3159C60.2963 9.90594 58.3464 8.91601 56.2166 8.91601C52.1369 8.91601 49.2871 12.0658 49.2871 16.6255ZM56.8765 21.3351C54.3567 21.3351 52.5569 19.3853 52.5569 16.6255C52.5569 13.8657 54.3567 11.8858 56.8765 11.8858C59.4264 11.8858 61.2262 13.8357 61.2262 16.6255C61.2262 19.3853 59.4264 21.3351 56.8765 21.3351ZM67.0505 29.9745V9.24598H70.2903V11.4958C71.1602 9.93593 73.0501 8.91601 75.2099 8.91601C79.2896 8.91601 82.1394 12.0658 82.1394 16.5955C82.1394 21.1551 79.2896 24.3049 75.2099 24.3049C73.0801 24.3049 71.1302 23.315 70.2903 21.8751V29.9745H67.0505ZM70.2003 16.5955C70.2003 19.3853 71.9701 21.3351 74.5199 21.3351C77.0698 21.3351 78.8396 19.3553 78.8396 16.5955C78.8396 13.8357 77.0698 11.8858 74.5199 11.8858C72.0001 11.8858 70.2003 13.8357 70.2003 16.5955ZM83.4049 16.6255C83.4049 21.0651 86.5247 24.3049 90.9344 24.3049C94.1331 24.3049 96.9147 22.428 97.7651 19.6243H94.4187C93.6778 20.7667 92.3991 21.4551 90.9344 21.4551C88.6245 21.4551 86.9746 19.9252 86.6747 17.4954H97.7139C97.7739 17.2254 97.8038 16.8655 97.8038 16.3555C97.8038 11.7658 95.134 8.91601 90.8744 8.91601C86.5547 8.91601 83.4049 12.1258 83.4049 16.6255ZM94.6241 15.0956H86.7947C87.3046 13.0557 88.8345 11.7358 90.8744 11.7358C93.0042 11.7358 94.3541 12.9957 94.6241 15.0956ZM100.068 9.24598V23.9749H103.308V16.4455C103.308 13.6257 104.688 12.0958 107.327 12.0958C108.167 12.0958 108.947 12.2458 109.547 12.3958V9.24598C109.007 9.036 108.287 8.91601 107.537 8.91601C105.618 8.91601 104.118 9.90594 103.308 11.7358V9.24598H100.068Z\" fill=\"#efefe4\"></path></g><path d=\"M3 0H21V13H13V3H3ZM0 3H3V13H13V21H0Z\" fill=\"#81ACEC\" shape-rendering=\"crispEdges\"></path></svg></svg>";
519
+ readonly stripe: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"640\" viewBox=\"0 0 160 160\"><circle cx=\"80\" cy=\"80\" r=\"78\" fill=\"#635bff\"/><svg x=\"40\" y=\"38\" width=\"80\" height=\"84\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Stripe</title><path d=\"M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z\"/></g></svg></svg>";
520
+ readonly quiver: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1040\" height=\"336\" viewBox=\"0 0 260 84\"><rect x=\"2\" y=\"2\" width=\"256\" height=\"80\" rx=\"40\" fill=\"#ffffff\"/><rect x=\"2\" y=\"2\" width=\"256\" height=\"80\" rx=\"40\" fill=\"none\" stroke=\"#111\" stroke-width=\"5\"/><svg x=\"28\" y=\"16\" width=\"204\" height=\"52\" viewBox=\"0 -2 110 20\" preserveAspectRatio=\"xMidYMid meet\"><g><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.00444 0C12.4252 1.26171e-05 16.0088 3.58373 16.0088 8.00444V16.0088H8.00444C3.58373 16.0088 1.26204e-05 12.4252 0 8.00444C0 3.58373 3.58373 0 8.00444 0ZM4.28374 3.80625C3.99031 3.70792 3.71099 3.98775 3.80987 4.281L7.06088 13.9219C7.19639 14.3237 7.79025 14.2263 7.79025 13.8022V7.76177H13.791C14.2155 7.76175 14.3125 7.16708 13.91 7.0322L4.28374 3.80625Z\" fill=\"#111111\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.0454 0.913393C31.0401 0.913393 34.0799 3.95153 34.0799 7.92448C34.0799 9.48113 33.6222 10.8912 32.8287 12.034L35.0801 14.3307L33.3754 16L31.1428 13.7225C30.002 14.517 28.5956 14.9745 27.0454 14.9745C23.0508 14.9745 20.011 11.9364 20.011 7.92448C20.011 3.95153 23.0508 0.913394 27.0454 0.913393ZM27.0454 3.38675C24.5512 3.38675 22.6221 5.37322 22.6221 7.92448C22.6221 10.5147 24.5512 12.5012 27.0454 12.5012C27.8905 12.5012 28.6684 12.2731 29.3277 11.8709L26.3283 8.81117L28.033 7.14187L30.9424 10.1098C31.2673 9.46598 31.4493 8.72399 31.4493 7.92448C31.4493 5.37322 29.5396 3.38675 27.0454 3.38675Z\" fill=\"#111111\"></path><path d=\"M39.9165 14.9764C37.3833 14.9764 35.7075 13.0483 35.7075 10.127V4.28445H38.1433V9.97122C38.1433 11.5487 39.1371 12.6588 40.618 12.6588C42.1379 12.6588 43.1512 11.5877 43.1901 9.54277V4.28445H45.6259V14.7621H43.463V12.9509C42.6835 14.2168 41.4364 14.9764 39.9165 14.9764Z\" fill=\"#111111\"></path><path d=\"M47.8277 14.7622V4.28455H50.2635V14.7622H47.8277ZM47.7498 2.57073V0H50.3414V2.57073H47.7498Z\" fill=\"#111111\"></path><path d=\"M55.5447 14.7621L51.3357 4.28445H53.9858L55.8564 9.05589C56.441 10.6529 56.7723 12.0551 56.7723 12.0551C56.7723 12.0551 57.1036 10.6529 57.6881 9.05589L59.5588 4.28445H62.2089L58.0194 14.7621H55.5447Z\" fill=\"#111111\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M67.5862 4.07047C70.4896 4.07047 72.6721 6.23222 72.6721 9.05613C72.6721 9.36774 72.6721 9.89211 72.6721 10.1467H64.6828C64.9556 11.7242 66.1053 12.737 67.7032 12.737C69.0215 12.737 69.9212 12.2218 70.1735 11.3257H72.6491C72.0984 13.5131 70.4322 14.9766 67.7811 14.9766C64.5269 14.9766 62.2471 12.7175 62.2471 9.54301C62.2471 6.38803 64.5854 4.07047 67.5862 4.07047ZM67.5473 6.21275C66.1443 6.21275 65.1895 6.95281 64.7997 8.1408H70.061C70.0025 7.01123 68.9697 6.21275 67.5473 6.21275Z\" fill=\"#111111\"></path><path d=\"M79.5825 4.07031C80.3857 4.07031 80.9917 4.30602 81.4557 4.75294L80.6658 6.73554C80.0006 6.27219 79.3903 6.36672 78.764 6.44629C77.7143 6.57966 76.7375 7.65376 76.7375 9.8155V14.7622H74.3018V4.28453H76.4842V6.13468C77.1077 4.84932 78.199 4.07031 79.5825 4.07031Z\" fill=\"#111111\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M94.1846 14.7615H93.0033L91.34 10.2111H84.9046L83.2329 14.7615H82.1008L87.1952 0.913431H89.041L94.1846 14.7615ZM85.266 9.22721H90.9804L88.1304 1.42997L85.266 9.22721Z\" fill=\"#111111\"></path><path d=\"M100 1.9219H98.0804V13.7776H100V14.7615H95.0287V13.7776H96.9729V1.9219H95.0287V0.913431H100V1.9219Z\" fill=\"#111111\"></path><rect x=\"0\" y=\"0\" height=\"16\" fill=\"none\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" width=\"16px\"></rect><rect y=\"-2\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(-2px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><rect y=\"-2\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(14px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><rect y=\"14\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(14px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><rect y=\"14\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(-2px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><line y1=\"-10\" y2=\"0\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" stroke-dasharray=\"1 1\" opacity=\"0\" x1=\"8\" x2=\"8\"></line><line x1=\"-10\" y1=\"8\" x2=\"0\" y2=\"8\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" stroke-dasharray=\"1 1\" opacity=\"0\"></line></g></svg></svg>";
521
+ readonly higgsfield: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"640\" viewBox=\"0 0 160 160\"><svg x=\"0\" y=\"0\" width=\"160\" height=\"160\" viewBox=\"0 0 16 16\" preserveAspectRatio=\"xMidYMid meet\"><path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"#D9D9D9\" /> <path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"url(#paint0_linear_9066_15086)\" /> <mask id=\"mask0_9066_15086\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"1\" y=\"1\" width=\"14\" height=\"14\" > <path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"#D9D9D9\" /> <path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"url(#paint1_linear_9066_15086)\" /> </mask> <g mask=\"url(#mask0_9066_15086)\"> <path d=\"M13.5666 7.90737L13.5559 7.80523C13.4554 6.82497 12.7309 4.9807 10.7211 4.9807C9.22965 4.9807 8.10302 6.27684 7.10874 7.41957C6.31534 8.33471 5.62793 9.11974 4.87153 9.11974C4.67049 9.10123 4.41138 9.01294 4.25279 8.81319C4.10997 8.63194 4.07298 8.39969 4.14697 8.12097C4.26326 7.67965 4.92975 7.27082 5.63308 6.83416C6.01909 6.60191 6.41586 6.35568 6.69089 6.11877C7.48428 5.4452 7.88621 4.9574 7.88621 4.17236C7.88621 3.38733 7.39437 2.99701 6.98183 2.82975C6.15675 2.49536 4.94567 2.69046 4.1735 3.27587C4.05721 3.36882 3.94077 3.45698 3.83495 3.54061C3.05747 4.14919 2.53395 4.56268 1.33333 4.24667V5.51951C2.92527 6.13741 4.26341 4.9574 4.77116 4.41393C5.16247 4.05624 5.57501 3.84717 5.88188 3.84717H5.8978C6.03531 3.85183 6.1516 3.8983 6.23635 3.98193C6.37387 4.12136 6.42678 4.28396 6.40025 4.46507C6.34203 4.84607 5.89249 5.29192 5.06741 5.77972C4.09951 6.35115 2.48119 7.3081 2.35414 8.51129C2.25893 9.37543 2.76668 10.2394 3.56007 10.5738C5.41112 11.345 6.53776 10.0164 7.73293 8.61343C8.64791 7.53103 9.51529 6.50443 10.7212 6.50443C11.8054 6.50443 12.2073 7.29412 12.2073 7.79124V7.88886L12.1015 7.90737C9.47299 8.3162 8.03964 10.481 8.03964 11.4798C8.03964 12.4785 9.00223 13.3334 10.1869 13.3334C11.5727 13.3334 13.2862 12.2928 13.5612 9.36611L13.5719 9.2593H20V7.9075L13.5666 7.90737ZM12.1332 9.40779C11.9217 11.1591 10.9009 11.9768 10.2822 11.9768C10.0018 11.9768 9.61051 11.7723 9.61051 11.3915C9.61051 10.9641 10.3351 9.668 11.964 9.28247L12.1544 9.24066L12.1332 9.40779Z\" fill=\"url(#paint2_linear_9066_15086)\" /> </g> <defs> <linearGradient id=\"paint0_linear_9066_15086\" x1=\"7.96817\" y1=\"0.677645\" x2=\"7.96817\" y2=\"15.3354\" gradientUnits=\"userSpaceOnUse\"> <stop offset=\"0.109375\" stop-color=\"#BEDD4C\" /> <stop offset=\"1\" stop-color=\"#377D01\" /> </linearGradient> <linearGradient id=\"paint1_linear_9066_15086\" x1=\"7.96817\" y1=\"0.677645\" x2=\"7.96817\" y2=\"15.3354\" gradientUnits=\"userSpaceOnUse\"> <stop offset=\"0.109375\" stop-color=\"#BEDD4C\" /> <stop offset=\"1\" stop-color=\"#377D01\" /> </linearGradient> <linearGradient id=\"paint2_linear_9066_15086\" x1=\"1.33333\" y1=\"2.66669\" x2=\"14.3333\" y2=\"14.3334\" gradientUnits=\"userSpaceOnUse\"> <stop stop-color=\"white\" stop-opacity=\"0.16\" /> <stop offset=\"0.349886\" stop-color=\"white\" /> <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\" /> </linearGradient> </defs></svg></svg>";
522
+ readonly anthropic: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"744\" viewBox=\"0 0 200 186\"><path d=\"M100 178 C 40 138 8 104 8 64 C 8 30 34 8 62 8 C 80 8 93 18 100 32 C 107 18 120 8 138 8 C 166 8 192 30 192 64 C 192 104 160 138 100 178 Z\" fill=\"#d97757\"/><svg x=\"58\" y=\"40\" width=\"84\" height=\"84\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#f5efe6\"><title>Anthropic</title><path d=\"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z\"/></g></svg></svg>";
523
+ readonly openai: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"768\" viewBox=\"0 0 200 192\"><path d=\"M100.00,8.00 L125.86,68.40 L191.30,74.33 L141.85,117.60 L156.43,181.67 L100.00,148.00 L43.57,181.67 L58.15,117.60 L8.70,74.33 L74.14,68.40 Z\" fill=\"#0d0d0d\" stroke=\"#0d0d0d\" stroke-width=\"14\" stroke-linejoin=\"round\"/><svg x=\"66\" y=\"72\" width=\"68\" height=\"68\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>OpenAI</title><path d=\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\"/></g></svg></svg>";
524
+ readonly perplexity: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"720\" height=\"720\" viewBox=\"0 0 180 180\"><path d=\"M90.00,4.00 L104.05,19.38 L122.91,10.55 L130.00,30.13 L150.81,29.19 L149.87,50.00 L169.45,57.09 L160.62,75.95 L176.00,90.00 L160.62,104.05 L169.45,122.91 L149.87,130.00 L150.81,150.81 L130.00,149.87 L122.91,169.45 L104.05,160.62 L90.00,176.00 L75.95,160.62 L57.09,169.45 L50.00,149.87 L29.19,150.81 L30.13,130.00 L10.55,122.91 L19.38,104.05 L4.00,90.00 L19.38,75.95 L10.55,57.09 L30.13,50.00 L29.19,29.19 L50.00,30.13 L57.09,10.55 L75.95,19.38 Z\" fill=\"#20808d\" stroke=\"#20808d\" stroke-width=\"6\" stroke-linejoin=\"round\"/><svg x=\"50\" y=\"50\" width=\"80\" height=\"80\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#fbfaf4\"><title>Perplexity</title><path d=\"M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm12.7086.0248-5.7766-5.1509V9.0618l5.7766 5.7766v6.5588zm2.8882-5.0652h-1.733v-1.9723L13.3948 8.245h7.8478v8.087z\"/></g></svg></svg>";
525
+ readonly huggingface: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"640\" viewBox=\"0 0 160 160\"><circle cx=\"80\" cy=\"80\" r=\"78\" fill=\"#ff9d00\"/><svg x=\"30\" y=\"30\" width=\"100\" height=\"100\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#1b1b1b\"><title>Hugging Face</title><path d=\"M12.025 1.13c-5.77 0-10.449 4.647-10.449 10.378 0 1.112.178 2.181.503 3.185.064-.222.203-.444.416-.577a.96.96 0 0 1 .524-.15c.293 0 .584.124.84.284.278.173.48.408.71.694.226.282.458.611.684.951v-.014c.017-.324.106-.622.264-.874s.403-.487.762-.543c.3-.047.596.06.787.203s.31.313.4.467c.15.257.212.468.233.542.01.026.653 1.552 1.657 2.54.616.605 1.01 1.223 1.082 1.912.055.537-.096 1.059-.38 1.572.637.121 1.294.187 1.967.187.657 0 1.298-.063 1.921-.178-.287-.517-.44-1.041-.384-1.581.07-.69.465-1.307 1.081-1.913 1.004-.987 1.647-2.513 1.657-2.539.021-.074.083-.285.233-.542.09-.154.208-.323.4-.467a1.08 1.08 0 0 1 .787-.203c.359.056.604.29.762.543s.247.55.265.874v.015c.225-.34.457-.67.683-.952.23-.286.432-.52.71-.694.257-.16.547-.284.84-.285a.97.97 0 0 1 .524.151c.228.143.373.388.43.625l.006.04a10.3 10.3 0 0 0 .534-3.273c0-5.731-4.678-10.378-10.449-10.378M8.327 6.583a1.5 1.5 0 0 1 .713.174 1.487 1.487 0 0 1 .617 2.013c-.183.343-.762-.214-1.102-.094-.38.134-.532.914-.917.71a1.487 1.487 0 0 1 .69-2.803m7.486 0a1.487 1.487 0 0 1 .689 2.803c-.385.204-.536-.576-.916-.71-.34-.12-.92.437-1.103.094a1.487 1.487 0 0 1 .617-2.013 1.5 1.5 0 0 1 .713-.174m-10.68 1.55a.96.96 0 1 1 0 1.921.96.96 0 0 1 0-1.92m13.838 0a.96.96 0 1 1 0 1.92.96.96 0 0 1 0-1.92M8.489 11.458c.588.01 1.965 1.157 3.572 1.164 1.607-.007 2.984-1.155 3.572-1.164.196-.003.305.12.305.454 0 .886-.424 2.328-1.563 3.202-.22-.756-1.396-1.366-1.63-1.32q-.011.001-.02.006l-.044.026-.01.008-.03.024q-.018.017-.035.036l-.032.04a1 1 0 0 0-.058.09l-.014.025q-.049.088-.11.19a1 1 0 0 1-.083.116 1.2 1.2 0 0 1-.173.18q-.035.029-.075.058a1.3 1.3 0 0 1-.251-.243 1 1 0 0 1-.076-.107c-.124-.193-.177-.363-.337-.444-.034-.016-.104-.008-.2.022q-.094.03-.216.087-.06.028-.125.063l-.13.074q-.067.04-.136.086a3 3 0 0 0-.135.096 3 3 0 0 0-.26.219 2 2 0 0 0-.12.121 2 2 0 0 0-.106.128l-.002.002a2 2 0 0 0-.09.132l-.001.001a1.2 1.2 0 0 0-.105.212q-.013.036-.024.073c-1.139-.875-1.563-2.317-1.563-3.203 0-.334.109-.457.305-.454m.836 10.354c.824-1.19.766-2.082-.365-3.194-1.13-1.112-1.789-2.738-1.789-2.738s-.246-.945-.806-.858-.97 1.499.202 2.362c1.173.864-.233 1.45-.685.64-.45-.812-1.683-2.896-2.322-3.295s-1.089-.175-.938.647 2.822 2.813 2.562 3.244-1.176-.506-1.176-.506-2.866-2.567-3.49-1.898.473 1.23 2.037 2.16c1.564.932 1.686 1.178 1.464 1.53s-3.675-2.511-4-1.297c-.323 1.214 3.524 1.567 3.287 2.405-.238.839-2.71-1.587-3.216-.642-.506.946 3.49 2.056 3.522 2.064 1.29.33 4.568 1.028 5.713-.624m5.349 0c-.824-1.19-.766-2.082.365-3.194 1.13-1.112 1.789-2.738 1.789-2.738s.246-.945.806-.858.97 1.499-.202 2.362c-1.173.864.233 1.45.685.64.451-.812 1.683-2.896 2.322-3.295s1.089-.175.938.647-2.822 2.813-2.562 3.244 1.176-.506 1.176-.506 2.866-2.567 3.49-1.898-.473 1.23-2.037 2.16c-1.564.932-1.686 1.178-1.464 1.53s3.675-2.511 4-1.297c.323 1.214-3.524 1.567-3.287 2.405.238.839 2.71-1.587 3.216-.642.506.946-3.49 2.056-3.522 2.064-1.29.33-4.568 1.028-5.713-.624\"/></g></svg></svg>";
526
+ readonly figma: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\" viewBox=\"0 0 150 150\"><rect x=\"2\" y=\"2\" width=\"146\" height=\"146\" rx=\"34\" fill=\"#1e1e1e\"/><svg x=\"35\" y=\"30\" width=\"80\" height=\"90\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Figma</title><path d=\"M15.852 8.981h-4.588V0h4.588c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.491-4.49 4.491zM12.735 7.51h3.117c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-3.117V7.51zm0 1.471H8.148c-2.476 0-4.49-2.014-4.49-4.49S5.672 0 8.148 0h4.588v8.981zm-4.587-7.51c-1.665 0-3.019 1.355-3.019 3.019s1.354 3.02 3.019 3.02h3.117V1.471H8.148zm4.587 15.019H8.148c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h4.588v8.98zM8.148 8.981c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h3.117V8.981H8.148zM8.172 24c-2.489 0-4.515-2.014-4.515-4.49s2.014-4.49 4.49-4.49h4.588v4.441c0 2.503-2.047 4.539-4.563 4.539zm-.024-7.51a3.023 3.023 0 0 0-3.019 3.019c0 1.665 1.365 3.019 3.044 3.019 1.705 0 3.093-1.376 3.093-3.068v-2.97H8.148zm7.704 0h-.098c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h.098c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.49-4.49 4.49zm-.097-7.509c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h.098c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-.098z\"/></g></svg></svg>";
527
+ readonly vercel: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\" viewBox=\"0 0 150 150\"><circle cx=\"75\" cy=\"75\" r=\"73\" fill=\"#ffffff\"/><circle cx=\"75\" cy=\"75\" r=\"73\" fill=\"none\" stroke=\"#000\" stroke-width=\"5\"/><svg x=\"38\" y=\"34\" width=\"74\" height=\"74\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#000000\"><title>Vercel</title><path d=\"m12 1.608 12 20.784H0Z\"/></g></svg></svg>";
528
+ readonly linear: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"680\" height=\"440\" viewBox=\"0 0 170 110\"><rect x=\"2\" y=\"2\" width=\"166\" height=\"106\" rx=\"53\" fill=\"#5e6ad2\"/><svg x=\"57\" y=\"27\" width=\"56\" height=\"56\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Linear</title><path d=\"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z\"/></g></svg></svg>";
529
+ readonly cursor: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\" viewBox=\"0 0 150 150\"><path d=\"M75.00,6.00 L94.90,29.96 L125.91,27.09 L123.04,58.10 L147.00,78.00 L123.04,97.90 L125.91,128.91 L94.90,126.04 L75.00,150.00 L55.10,126.04 L24.09,128.91 L26.96,97.90 L3.00,78.00 L26.96,58.10 L24.09,27.09 L55.10,29.96 Z\" fill=\"#e8483b\" stroke=\"#e8483b\" stroke-width=\"10\" stroke-linejoin=\"round\"/><svg x=\"43\" y=\"45\" width=\"64\" height=\"64\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Cursor</title><path d=\"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23\"/></g></svg></svg>";
530
+ };
531
+ type StickerArtName = keyof typeof STICKER_ART;
532
+ /** One sticker, as a data URL an image content or a mount sticker can take as `src`. */
533
+ declare function stickerArt(name: StickerArtName): string;
534
+
500
535
  declare function getPreset(name: string): PaperConfig;
501
536
  /** Register a user preset (validated). Built-in names are reserved. */
502
537
  declare function registerPreset(name: string, input: PaperConfigInput): void;
@@ -651,6 +686,29 @@ interface Behavior<O = AnyOptions> {
651
686
  */
652
687
  transform?(o: O, t: number, pose: AeroPose, sheet: SheetDims): void;
653
688
  handles?: HandleSpec<O>[];
689
+ /**
690
+ * A point past which a drag stops steering and the rest plays by itself.
691
+ *
692
+ * Some motions end in something a hand cannot scrub: a sticker's last edge
693
+ * letting go is a snap, and a snap dragged slowly is not a snap. When a
694
+ * handle drag carries the progress param past `from`, the drag lets go of
695
+ * it and the progress runs to `to` over `duration` seconds.
696
+ */
697
+ commit?: {
698
+ from: number;
699
+ to: number;
700
+ duration: number;
701
+ };
702
+ /**
703
+ * How far through flying away these options have the sheet, 0..1. At 1
704
+ * it is gone.
705
+ *
706
+ * A flight happens in the world, on the air, and a deformer works in the
707
+ * sheet's own space, so it cannot be part of the stack. Only a sheet
708
+ * stuck to something has something to fly off, and the mount applies it
709
+ * (`MountRig.fly`); everywhere else this is never read.
710
+ */
711
+ fly?(o: O): number;
654
712
  /**
655
713
  * The two or three options that ARE this behavior — the ones someone
656
714
  * reaches for first, in the order they'd reach for them.
@@ -1285,4 +1343,4 @@ declare function segmentsForSine(span: number, amplitude: number, wavelength: nu
1285
1343
  */
1286
1344
  declare function wrapLines(ctx: CanvasRenderingContext2D, text: string, maxWidth: number, font: string): string[];
1287
1345
 
1288
- export { AUTO_CEILING, BackdropConfig, type Behavior, BehaviorConfigInput, ContentConfig, ContentConfigInput, CreaseConfig, CreaseTracker, DamageSource, type Deformer, type DeformerContext, type DeformerInstance, DeformerInstanceConfigInput, DropZone, type DropZoneConfig, type DropZoneProps, FLAT_SEGMENTS, type FieldExportInput, type FieldExportPaper, type FieldExportZone, FieldPaperSlot, FilmName, type HandleSpec, type IdleName, type IdlePreset, type Layout, type LightAngles, LightOverrides, LightRig, LightingName, type LightingPreset, MAX_CREASES, MAX_SET, MemoryConfigInput, PARITY_EPSILON, Paper, PaperBackdrop, PaperConfig, PaperConfigInput, PaperField, PaperFieldMesh, type PaperFieldMeshProps, type PaperFieldProps, type PaperHandle, PaperLighting, type PaperLightingProps, PaperMesh, type PaperMeshProps, type PaperPose, type PaperProps, PaperStatesInput, type ParityCase, type ParityResult, PhysicsConfigInput, type PlacedPaper, SAG_TOL, SceneConfigInput, SheetConfig, type SheetDims, type SheetLayoutOptions, type StateEvent, type Stock, StockName, SurfaceConfigInput, type UsePaperStatesResult, applyMemory, buildAgentPayload, buildFieldAgentPayload, buildFieldComponentSource, buildJsxSnippet, describeConfig, describeFieldConfig, diffConfig, diffFieldProps, getBehavior, getDeformer, getLayout, getPreset, getStock, idleNames, isBuiltinPreset, lightAngles, listBehaviors, listDeformers, listLayouts, listPresets, maxStripLength, mergeConfig, mergeWithDeletes, parityCases, parsePreset, quantizeSegments, recordStateOverride, registerBehavior, registerDeformer, registerLayout, registerPreset, resolveLighting, resolveStateConfig, runParityHarness, segmentsForArc, segmentsForSine, serializePreset, sheetLayoutSchema, spanAlong, stocks, supportsWebGL, uniquePresetName, unregisterPreset, usePaperStates, usePrefersReducedMotion, wrapLines };
1346
+ export { AUTO_CEILING, BackdropConfig, type Behavior, BehaviorConfigInput, ContentConfig, ContentConfigInput, CreaseConfig, CreaseTracker, DamageSource, type Deformer, type DeformerContext, type DeformerInstance, DeformerInstanceConfigInput, DropZone, type DropZoneConfig, type DropZoneProps, FLAT_SEGMENTS, type FieldExportInput, type FieldExportPaper, type FieldExportZone, FieldPaperSlot, FilmName, type HandleSpec, type IdleName, type IdlePreset, type Layout, type LightAngles, LightOverrides, LightRig, LightingName, type LightingPreset, MAX_CREASES, MAX_SET, MemoryConfigInput, MountConfigInput, PARITY_EPSILON, Paper, PaperBackdrop, PaperConfig, PaperConfigInput, PaperField, PaperFieldMesh, type PaperFieldMeshProps, type PaperFieldProps, type PaperHandle, PaperLighting, type PaperLightingProps, PaperMesh, type PaperMeshProps, type PaperPose, type PaperProps, PaperStatesInput, type ParityCase, type ParityResult, PhysicsConfigInput, type PlacedPaper, SAG_TOL, STICKER_ART, SceneConfigInput, SheetConfig, type SheetDims, type SheetLayoutOptions, type StateEvent, type StickerArtName, type Stock, StockName, SurfaceConfigInput, type UsePaperStatesResult, applyMemory, buildAgentPayload, buildFieldAgentPayload, buildFieldComponentSource, buildJsxSnippet, describeConfig, describeFieldConfig, diffConfig, diffFieldProps, getBehavior, getDeformer, getLayout, getPreset, getStock, idleNames, isBuiltinPreset, lightAngles, listBehaviors, listDeformers, listLayouts, listPresets, maxStripLength, mergeConfig, mergeWithDeletes, parityCases, parsePreset, quantizeSegments, recordStateOverride, registerBehavior, registerDeformer, registerLayout, registerPreset, resolveLighting, resolveStateConfig, runParityHarness, segmentsForArc, segmentsForSine, serializePreset, sheetLayoutSchema, spanAlong, stickerArt, stocks, supportsWebGL, uniquePresetName, unregisterPreset, usePaperStates, usePrefersReducedMotion, wrapLines };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import * as THREE from 'three';
4
- import { P as PaperConfig, a as PaperConfigInput, S as SheetConfig, b as StockName, C as ContentConfigInput, B as BehaviorConfigInput, D as DeformerInstanceConfigInput, c as SurfaceConfigInput, M as MemoryConfigInput, d as SceneConfigInput, e as PhysicsConfigInput, f as CreaseConfig, F as FieldPaperSlot, g as ContentConfig, h as PaperStatesInput, L as LightingName, i as FilmName, j as LightOverrides, k as BackdropConfig } from './slots-DbJQfwVd.js';
5
- export { l as BackContentConfig, m as BehaviorConfig, n as ClothConfig, o as CoreStateName, p as CreaseConfigInput, q as DeformerInstanceConfig, r as LightOverridesInput, s as MemoryConfig, t as PaperEdge, u as PaperStates, v as PhysicsConfig, w as SceneConfig, x as StateDef, y as StateName, z as StateTransitionConfig, A as StripConfig, E as SurfaceConfig, W as WashConfig, G as backdropSchema, H as behaviorConfigSchema, I as clothConfigSchema, J as contentNames, K as contentSchemaFor, N as coreStateNames, O as creaseSchema, Q as lightSchema, R as lightingNames, T as memorySchema, U as paperConfigSchema, V as paperEdges, X as paperStatesSchema, Y as physicsNames, Z as sceneSchema, _ as stateDefSchema, $ as stockNames, a0 as stripConfigSchema, a1 as washSchema } from './slots-DbJQfwVd.js';
4
+ import { P as PaperConfig, a as PaperConfigInput, S as SheetConfig, b as StockName, C as ContentConfigInput, B as BehaviorConfigInput, D as DeformerInstanceConfigInput, c as SurfaceConfigInput, M as MemoryConfigInput, d as SceneConfigInput, e as PhysicsConfigInput, f as MountConfigInput, g as CreaseConfig, F as FieldPaperSlot, h as ContentConfig, i as PaperStatesInput, L as LightingName, j as FilmName, k as LightOverrides, l as BackdropConfig } from './slots-BAVzglHw.js';
5
+ export { m as BackContentConfig, n as BehaviorConfig, o as ClothConfig, p as CoreStateName, q as CreaseConfigInput, r as DeformerInstanceConfig, s as DieCutConfig, t as LightOverridesInput, u as MemoryConfig, v as MountConfig, w as MountStickerConfig, x as PaperEdge, y as PaperStates, z as PhysicsConfig, A as SceneConfig, E as StateDef, G as StateName, H as StateTransitionConfig, I as StripConfig, J as SurfaceConfig, W as WashConfig, K as backdropSchema, N as behaviorConfigSchema, O as clothConfigSchema, Q as contentNames, R as contentSchemaFor, T as coreStateNames, U as creaseSchema, V as lightSchema, X as lightingNames, Y as memorySchema, Z as mountObjectNames, _ as mountSchema, $ as mountStickerSchema, a0 as paperConfigSchema, a1 as paperEdges, a2 as paperStatesSchema, a3 as physicsNames, a4 as sceneSchema, a5 as stateDefSchema, a6 as stockNames, a7 as stripConfigSchema, a8 as washSchema } from './slots-BAVzglHw.js';
6
6
  import { D as DamageSource } from './damageContract-9RC4egJg.js';
7
7
  export { a as DAMAGE_CHANNELS, b as DAMAGE_LOOK_DEFAULTS, c as DamageLook } from './damageContract-9RC4egJg.js';
8
8
  import { z } from 'zod';
@@ -145,6 +145,11 @@ interface PaperMeshProps {
145
145
  /** Scene-level presentation that travels with the paper (lighting). */
146
146
  scene?: SceneConfigInput;
147
147
  physics?: PhysicsConfigInput | 'cloth';
148
+ /**
149
+ * What the sheet is stuck to — a lemon, or any model. The sheet hugs its
150
+ * surface, takes its texture, and every behavior is carried onto the curve.
151
+ */
152
+ mount?: MountConfigInput;
148
153
  onTwos?: boolean;
149
154
  /** Show draggable behavior handles; cloth sheets become grabbable. */
150
155
  interactive?: boolean;
@@ -497,6 +502,36 @@ declare const PaperFieldMesh: react.ForwardRefExoticComponent<PaperFieldMeshProp
497
502
  /** `<PaperField />` owns its own Canvas; PaperFieldMesh drops into existing scenes. */
498
503
  declare const PaperField: react.ForwardRefExoticComponent<PaperFieldProps & react.RefAttributes<THREE.Group<THREE.Object3DEventMap>>>;
499
504
 
505
+ /**
506
+ * Sticker art for the `peeling-sticker` preset: real marks from the AI and
507
+ * design tools of the moment, each set on a die-cut shape the way a laptop
508
+ * sticker is. They are EXAMPLES. Every one is swappable for the caller's own
509
+ * art, and the editor uploads a replacement in a click.
510
+ *
511
+ * The marks belong to their owners and are used here to show the effect;
512
+ * the shapes and colourways round them are this library's. Plain SVG
513
+ * strings, so nothing is fetched and a preset carrying one still works
514
+ * offline. Generated from the brands' own SVGs (simple-icons for most,
515
+ * and paper.design, quiver.ai and higgsfield.ai for theirs).
516
+ */
517
+ declare const STICKER_ART: {
518
+ readonly paper: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"960\" height=\"384\" viewBox=\"0 0 240 96\"><rect x=\"2\" y=\"2\" width=\"236\" height=\"92\" rx=\"46\" fill=\"#17171c\"/><svg x=\"36\" y=\"18\" width=\"168\" height=\"60\" viewBox=\"0 0 88 24\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"scale(0.8)\"><path d=\"M34.9805 23.975V2.97656H42.3299C46.6196 2.97656 49.4394 5.52637 49.4394 9.39608C49.4394 13.2658 46.6196 15.8156 42.3299 15.8156H38.4002V23.975H34.9805ZM38.4002 12.6959H42.3299C44.6098 12.6959 45.9597 11.436 45.9597 9.39608C45.9597 7.35623 44.6098 6.12633 42.3299 6.12633H38.4002V12.6959ZM49.2871 16.6255C49.2871 21.1551 52.1369 24.3049 56.2166 24.3049C58.3464 24.3049 60.2063 23.315 61.1062 21.7551V23.9749H64.376V9.24598H61.1062V11.3159C60.2963 9.90594 58.3464 8.91601 56.2166 8.91601C52.1369 8.91601 49.2871 12.0658 49.2871 16.6255ZM56.8765 21.3351C54.3567 21.3351 52.5569 19.3853 52.5569 16.6255C52.5569 13.8657 54.3567 11.8858 56.8765 11.8858C59.4264 11.8858 61.2262 13.8357 61.2262 16.6255C61.2262 19.3853 59.4264 21.3351 56.8765 21.3351ZM67.0505 29.9745V9.24598H70.2903V11.4958C71.1602 9.93593 73.0501 8.91601 75.2099 8.91601C79.2896 8.91601 82.1394 12.0658 82.1394 16.5955C82.1394 21.1551 79.2896 24.3049 75.2099 24.3049C73.0801 24.3049 71.1302 23.315 70.2903 21.8751V29.9745H67.0505ZM70.2003 16.5955C70.2003 19.3853 71.9701 21.3351 74.5199 21.3351C77.0698 21.3351 78.8396 19.3553 78.8396 16.5955C78.8396 13.8357 77.0698 11.8858 74.5199 11.8858C72.0001 11.8858 70.2003 13.8357 70.2003 16.5955ZM83.4049 16.6255C83.4049 21.0651 86.5247 24.3049 90.9344 24.3049C94.1331 24.3049 96.9147 22.428 97.7651 19.6243H94.4187C93.6778 20.7667 92.3991 21.4551 90.9344 21.4551C88.6245 21.4551 86.9746 19.9252 86.6747 17.4954H97.7139C97.7739 17.2254 97.8038 16.8655 97.8038 16.3555C97.8038 11.7658 95.134 8.91601 90.8744 8.91601C86.5547 8.91601 83.4049 12.1258 83.4049 16.6255ZM94.6241 15.0956H86.7947C87.3046 13.0557 88.8345 11.7358 90.8744 11.7358C93.0042 11.7358 94.3541 12.9957 94.6241 15.0956ZM100.068 9.24598V23.9749H103.308V16.4455C103.308 13.6257 104.688 12.0958 107.327 12.0958C108.167 12.0958 108.947 12.2458 109.547 12.3958V9.24598C109.007 9.036 108.287 8.91601 107.537 8.91601C105.618 8.91601 104.118 9.90594 103.308 11.7358V9.24598H100.068Z\" fill=\"#efefe4\"></path></g><path d=\"M3 0H21V13H13V3H3ZM0 3H3V13H13V21H0Z\" fill=\"#81ACEC\" shape-rendering=\"crispEdges\"></path></svg></svg>";
519
+ readonly stripe: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"640\" viewBox=\"0 0 160 160\"><circle cx=\"80\" cy=\"80\" r=\"78\" fill=\"#635bff\"/><svg x=\"40\" y=\"38\" width=\"80\" height=\"84\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Stripe</title><path d=\"M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z\"/></g></svg></svg>";
520
+ readonly quiver: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1040\" height=\"336\" viewBox=\"0 0 260 84\"><rect x=\"2\" y=\"2\" width=\"256\" height=\"80\" rx=\"40\" fill=\"#ffffff\"/><rect x=\"2\" y=\"2\" width=\"256\" height=\"80\" rx=\"40\" fill=\"none\" stroke=\"#111\" stroke-width=\"5\"/><svg x=\"28\" y=\"16\" width=\"204\" height=\"52\" viewBox=\"0 -2 110 20\" preserveAspectRatio=\"xMidYMid meet\"><g><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.00444 0C12.4252 1.26171e-05 16.0088 3.58373 16.0088 8.00444V16.0088H8.00444C3.58373 16.0088 1.26204e-05 12.4252 0 8.00444C0 3.58373 3.58373 0 8.00444 0ZM4.28374 3.80625C3.99031 3.70792 3.71099 3.98775 3.80987 4.281L7.06088 13.9219C7.19639 14.3237 7.79025 14.2263 7.79025 13.8022V7.76177H13.791C14.2155 7.76175 14.3125 7.16708 13.91 7.0322L4.28374 3.80625Z\" fill=\"#111111\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M27.0454 0.913393C31.0401 0.913393 34.0799 3.95153 34.0799 7.92448C34.0799 9.48113 33.6222 10.8912 32.8287 12.034L35.0801 14.3307L33.3754 16L31.1428 13.7225C30.002 14.517 28.5956 14.9745 27.0454 14.9745C23.0508 14.9745 20.011 11.9364 20.011 7.92448C20.011 3.95153 23.0508 0.913394 27.0454 0.913393ZM27.0454 3.38675C24.5512 3.38675 22.6221 5.37322 22.6221 7.92448C22.6221 10.5147 24.5512 12.5012 27.0454 12.5012C27.8905 12.5012 28.6684 12.2731 29.3277 11.8709L26.3283 8.81117L28.033 7.14187L30.9424 10.1098C31.2673 9.46598 31.4493 8.72399 31.4493 7.92448C31.4493 5.37322 29.5396 3.38675 27.0454 3.38675Z\" fill=\"#111111\"></path><path d=\"M39.9165 14.9764C37.3833 14.9764 35.7075 13.0483 35.7075 10.127V4.28445H38.1433V9.97122C38.1433 11.5487 39.1371 12.6588 40.618 12.6588C42.1379 12.6588 43.1512 11.5877 43.1901 9.54277V4.28445H45.6259V14.7621H43.463V12.9509C42.6835 14.2168 41.4364 14.9764 39.9165 14.9764Z\" fill=\"#111111\"></path><path d=\"M47.8277 14.7622V4.28455H50.2635V14.7622H47.8277ZM47.7498 2.57073V0H50.3414V2.57073H47.7498Z\" fill=\"#111111\"></path><path d=\"M55.5447 14.7621L51.3357 4.28445H53.9858L55.8564 9.05589C56.441 10.6529 56.7723 12.0551 56.7723 12.0551C56.7723 12.0551 57.1036 10.6529 57.6881 9.05589L59.5588 4.28445H62.2089L58.0194 14.7621H55.5447Z\" fill=\"#111111\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M67.5862 4.07047C70.4896 4.07047 72.6721 6.23222 72.6721 9.05613C72.6721 9.36774 72.6721 9.89211 72.6721 10.1467H64.6828C64.9556 11.7242 66.1053 12.737 67.7032 12.737C69.0215 12.737 69.9212 12.2218 70.1735 11.3257H72.6491C72.0984 13.5131 70.4322 14.9766 67.7811 14.9766C64.5269 14.9766 62.2471 12.7175 62.2471 9.54301C62.2471 6.38803 64.5854 4.07047 67.5862 4.07047ZM67.5473 6.21275C66.1443 6.21275 65.1895 6.95281 64.7997 8.1408H70.061C70.0025 7.01123 68.9697 6.21275 67.5473 6.21275Z\" fill=\"#111111\"></path><path d=\"M79.5825 4.07031C80.3857 4.07031 80.9917 4.30602 81.4557 4.75294L80.6658 6.73554C80.0006 6.27219 79.3903 6.36672 78.764 6.44629C77.7143 6.57966 76.7375 7.65376 76.7375 9.8155V14.7622H74.3018V4.28453H76.4842V6.13468C77.1077 4.84932 78.199 4.07031 79.5825 4.07031Z\" fill=\"#111111\"></path><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M94.1846 14.7615H93.0033L91.34 10.2111H84.9046L83.2329 14.7615H82.1008L87.1952 0.913431H89.041L94.1846 14.7615ZM85.266 9.22721H90.9804L88.1304 1.42997L85.266 9.22721Z\" fill=\"#111111\"></path><path d=\"M100 1.9219H98.0804V13.7776H100V14.7615H95.0287V13.7776H96.9729V1.9219H95.0287V0.913431H100V1.9219Z\" fill=\"#111111\"></path><rect x=\"0\" y=\"0\" height=\"16\" fill=\"none\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" width=\"16px\"></rect><rect y=\"-2\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(-2px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><rect y=\"-2\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(14px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><rect y=\"14\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(14px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><rect y=\"14\" width=\"4\" height=\"4\" fill=\"white\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" opacity=\"0\" style=\"transform:translateX(-2px) scale(0.95);transform-origin:50% 50%;transform-box:fill-box\"></rect><line y1=\"-10\" y2=\"0\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" stroke-dasharray=\"1 1\" opacity=\"0\" x1=\"8\" x2=\"8\"></line><line x1=\"-10\" y1=\"8\" x2=\"0\" y2=\"8\" stroke=\"var(--color-accent-400)\" stroke-width=\"1\" stroke-dasharray=\"1 1\" opacity=\"0\"></line></g></svg></svg>";
521
+ readonly higgsfield: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"640\" viewBox=\"0 0 160 160\"><svg x=\"0\" y=\"0\" width=\"160\" height=\"160\" viewBox=\"0 0 16 16\" preserveAspectRatio=\"xMidYMid meet\"><path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"#D9D9D9\" /> <path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"url(#paint0_linear_9066_15086)\" /> <mask id=\"mask0_9066_15086\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"1\" y=\"1\" width=\"14\" height=\"14\" > <path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"#D9D9D9\" /> <path d=\"M7.47059 1.23425C7.73476 0.93209 8.20158 0.93209 8.46575 1.23425L9.29977 2.18819C9.46881 2.38153 9.7328 2.45976 9.97857 2.38935L11.1912 2.04193C11.5753 1.93189 11.968 2.18661 12.0284 2.58495L12.219 3.84255C12.2576 4.09743 12.4378 4.3073 12.6823 4.38217L13.8885 4.75157C14.2706 4.86858 14.4645 5.29716 14.3019 5.66521L13.7886 6.82718C13.6846 7.06268 13.7237 7.33755 13.8893 7.53393L14.7062 8.50288C14.9649 8.80979 14.8985 9.27614 14.5645 9.49705L13.5103 10.1945C13.2966 10.3358 13.1823 10.5884 13.2164 10.844L13.3845 12.1048C13.4378 12.5042 13.1321 12.8603 12.7328 12.8639L11.4724 12.8754C11.2169 12.8777 10.9854 13.0278 10.8772 13.2614L10.3433 14.4138C10.1741 14.7789 9.72624 14.9116 9.38842 14.6968L8.3219 14.0187C8.10574 13.8812 7.8306 13.8812 7.61445 14.0187L6.54792 14.6968C6.21011 14.9116 5.7622 14.7789 5.59307 14.4138L5.05912 13.2614C4.9509 13.0278 4.71944 12.8777 4.46397 12.8754L3.2035 12.8639C2.80424 12.8603 2.49854 12.5042 2.5518 12.1048L2.71995 10.844C2.75403 10.5884 2.63973 10.3358 2.42606 10.1945L1.37182 9.49705C1.03789 9.27614 0.971454 8.80979 1.23019 8.50288L2.04705 7.53393C2.2126 7.33755 2.25176 7.06268 2.14773 6.82718L1.63444 5.66521C1.47185 5.29716 1.66577 4.86858 2.04784 4.75157L3.25406 4.38217C3.49853 4.3073 3.67871 4.09743 3.71735 3.84255L3.90797 2.58495C3.96835 2.18661 4.36106 1.93189 4.74516 2.04193L5.95777 2.38935C6.20354 2.45976 6.46754 2.38153 6.63657 2.18819L7.47059 1.23425Z\" fill=\"url(#paint1_linear_9066_15086)\" /> </mask> <g mask=\"url(#mask0_9066_15086)\"> <path d=\"M13.5666 7.90737L13.5559 7.80523C13.4554 6.82497 12.7309 4.9807 10.7211 4.9807C9.22965 4.9807 8.10302 6.27684 7.10874 7.41957C6.31534 8.33471 5.62793 9.11974 4.87153 9.11974C4.67049 9.10123 4.41138 9.01294 4.25279 8.81319C4.10997 8.63194 4.07298 8.39969 4.14697 8.12097C4.26326 7.67965 4.92975 7.27082 5.63308 6.83416C6.01909 6.60191 6.41586 6.35568 6.69089 6.11877C7.48428 5.4452 7.88621 4.9574 7.88621 4.17236C7.88621 3.38733 7.39437 2.99701 6.98183 2.82975C6.15675 2.49536 4.94567 2.69046 4.1735 3.27587C4.05721 3.36882 3.94077 3.45698 3.83495 3.54061C3.05747 4.14919 2.53395 4.56268 1.33333 4.24667V5.51951C2.92527 6.13741 4.26341 4.9574 4.77116 4.41393C5.16247 4.05624 5.57501 3.84717 5.88188 3.84717H5.8978C6.03531 3.85183 6.1516 3.8983 6.23635 3.98193C6.37387 4.12136 6.42678 4.28396 6.40025 4.46507C6.34203 4.84607 5.89249 5.29192 5.06741 5.77972C4.09951 6.35115 2.48119 7.3081 2.35414 8.51129C2.25893 9.37543 2.76668 10.2394 3.56007 10.5738C5.41112 11.345 6.53776 10.0164 7.73293 8.61343C8.64791 7.53103 9.51529 6.50443 10.7212 6.50443C11.8054 6.50443 12.2073 7.29412 12.2073 7.79124V7.88886L12.1015 7.90737C9.47299 8.3162 8.03964 10.481 8.03964 11.4798C8.03964 12.4785 9.00223 13.3334 10.1869 13.3334C11.5727 13.3334 13.2862 12.2928 13.5612 9.36611L13.5719 9.2593H20V7.9075L13.5666 7.90737ZM12.1332 9.40779C11.9217 11.1591 10.9009 11.9768 10.2822 11.9768C10.0018 11.9768 9.61051 11.7723 9.61051 11.3915C9.61051 10.9641 10.3351 9.668 11.964 9.28247L12.1544 9.24066L12.1332 9.40779Z\" fill=\"url(#paint2_linear_9066_15086)\" /> </g> <defs> <linearGradient id=\"paint0_linear_9066_15086\" x1=\"7.96817\" y1=\"0.677645\" x2=\"7.96817\" y2=\"15.3354\" gradientUnits=\"userSpaceOnUse\"> <stop offset=\"0.109375\" stop-color=\"#BEDD4C\" /> <stop offset=\"1\" stop-color=\"#377D01\" /> </linearGradient> <linearGradient id=\"paint1_linear_9066_15086\" x1=\"7.96817\" y1=\"0.677645\" x2=\"7.96817\" y2=\"15.3354\" gradientUnits=\"userSpaceOnUse\"> <stop offset=\"0.109375\" stop-color=\"#BEDD4C\" /> <stop offset=\"1\" stop-color=\"#377D01\" /> </linearGradient> <linearGradient id=\"paint2_linear_9066_15086\" x1=\"1.33333\" y1=\"2.66669\" x2=\"14.3333\" y2=\"14.3334\" gradientUnits=\"userSpaceOnUse\"> <stop stop-color=\"white\" stop-opacity=\"0.16\" /> <stop offset=\"0.349886\" stop-color=\"white\" /> <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\" /> </linearGradient> </defs></svg></svg>";
522
+ readonly anthropic: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"744\" viewBox=\"0 0 200 186\"><path d=\"M100 178 C 40 138 8 104 8 64 C 8 30 34 8 62 8 C 80 8 93 18 100 32 C 107 18 120 8 138 8 C 166 8 192 30 192 64 C 192 104 160 138 100 178 Z\" fill=\"#d97757\"/><svg x=\"58\" y=\"40\" width=\"84\" height=\"84\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#f5efe6\"><title>Anthropic</title><path d=\"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z\"/></g></svg></svg>";
523
+ readonly openai: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"768\" viewBox=\"0 0 200 192\"><path d=\"M100.00,8.00 L125.86,68.40 L191.30,74.33 L141.85,117.60 L156.43,181.67 L100.00,148.00 L43.57,181.67 L58.15,117.60 L8.70,74.33 L74.14,68.40 Z\" fill=\"#0d0d0d\" stroke=\"#0d0d0d\" stroke-width=\"14\" stroke-linejoin=\"round\"/><svg x=\"66\" y=\"72\" width=\"68\" height=\"68\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>OpenAI</title><path d=\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\"/></g></svg></svg>";
524
+ readonly perplexity: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"720\" height=\"720\" viewBox=\"0 0 180 180\"><path d=\"M90.00,4.00 L104.05,19.38 L122.91,10.55 L130.00,30.13 L150.81,29.19 L149.87,50.00 L169.45,57.09 L160.62,75.95 L176.00,90.00 L160.62,104.05 L169.45,122.91 L149.87,130.00 L150.81,150.81 L130.00,149.87 L122.91,169.45 L104.05,160.62 L90.00,176.00 L75.95,160.62 L57.09,169.45 L50.00,149.87 L29.19,150.81 L30.13,130.00 L10.55,122.91 L19.38,104.05 L4.00,90.00 L19.38,75.95 L10.55,57.09 L30.13,50.00 L29.19,29.19 L50.00,30.13 L57.09,10.55 L75.95,19.38 Z\" fill=\"#20808d\" stroke=\"#20808d\" stroke-width=\"6\" stroke-linejoin=\"round\"/><svg x=\"50\" y=\"50\" width=\"80\" height=\"80\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#fbfaf4\"><title>Perplexity</title><path d=\"M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm12.7086.0248-5.7766-5.1509V9.0618l5.7766 5.7766v6.5588zm2.8882-5.0652h-1.733v-1.9723L13.3948 8.245h7.8478v8.087z\"/></g></svg></svg>";
525
+ readonly huggingface: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"640\" viewBox=\"0 0 160 160\"><circle cx=\"80\" cy=\"80\" r=\"78\" fill=\"#ff9d00\"/><svg x=\"30\" y=\"30\" width=\"100\" height=\"100\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#1b1b1b\"><title>Hugging Face</title><path d=\"M12.025 1.13c-5.77 0-10.449 4.647-10.449 10.378 0 1.112.178 2.181.503 3.185.064-.222.203-.444.416-.577a.96.96 0 0 1 .524-.15c.293 0 .584.124.84.284.278.173.48.408.71.694.226.282.458.611.684.951v-.014c.017-.324.106-.622.264-.874s.403-.487.762-.543c.3-.047.596.06.787.203s.31.313.4.467c.15.257.212.468.233.542.01.026.653 1.552 1.657 2.54.616.605 1.01 1.223 1.082 1.912.055.537-.096 1.059-.38 1.572.637.121 1.294.187 1.967.187.657 0 1.298-.063 1.921-.178-.287-.517-.44-1.041-.384-1.581.07-.69.465-1.307 1.081-1.913 1.004-.987 1.647-2.513 1.657-2.539.021-.074.083-.285.233-.542.09-.154.208-.323.4-.467a1.08 1.08 0 0 1 .787-.203c.359.056.604.29.762.543s.247.55.265.874v.015c.225-.34.457-.67.683-.952.23-.286.432-.52.71-.694.257-.16.547-.284.84-.285a.97.97 0 0 1 .524.151c.228.143.373.388.43.625l.006.04a10.3 10.3 0 0 0 .534-3.273c0-5.731-4.678-10.378-10.449-10.378M8.327 6.583a1.5 1.5 0 0 1 .713.174 1.487 1.487 0 0 1 .617 2.013c-.183.343-.762-.214-1.102-.094-.38.134-.532.914-.917.71a1.487 1.487 0 0 1 .69-2.803m7.486 0a1.487 1.487 0 0 1 .689 2.803c-.385.204-.536-.576-.916-.71-.34-.12-.92.437-1.103.094a1.487 1.487 0 0 1 .617-2.013 1.5 1.5 0 0 1 .713-.174m-10.68 1.55a.96.96 0 1 1 0 1.921.96.96 0 0 1 0-1.92m13.838 0a.96.96 0 1 1 0 1.92.96.96 0 0 1 0-1.92M8.489 11.458c.588.01 1.965 1.157 3.572 1.164 1.607-.007 2.984-1.155 3.572-1.164.196-.003.305.12.305.454 0 .886-.424 2.328-1.563 3.202-.22-.756-1.396-1.366-1.63-1.32q-.011.001-.02.006l-.044.026-.01.008-.03.024q-.018.017-.035.036l-.032.04a1 1 0 0 0-.058.09l-.014.025q-.049.088-.11.19a1 1 0 0 1-.083.116 1.2 1.2 0 0 1-.173.18q-.035.029-.075.058a1.3 1.3 0 0 1-.251-.243 1 1 0 0 1-.076-.107c-.124-.193-.177-.363-.337-.444-.034-.016-.104-.008-.2.022q-.094.03-.216.087-.06.028-.125.063l-.13.074q-.067.04-.136.086a3 3 0 0 0-.135.096 3 3 0 0 0-.26.219 2 2 0 0 0-.12.121 2 2 0 0 0-.106.128l-.002.002a2 2 0 0 0-.09.132l-.001.001a1.2 1.2 0 0 0-.105.212q-.013.036-.024.073c-1.139-.875-1.563-2.317-1.563-3.203 0-.334.109-.457.305-.454m.836 10.354c.824-1.19.766-2.082-.365-3.194-1.13-1.112-1.789-2.738-1.789-2.738s-.246-.945-.806-.858-.97 1.499.202 2.362c1.173.864-.233 1.45-.685.64-.45-.812-1.683-2.896-2.322-3.295s-1.089-.175-.938.647 2.822 2.813 2.562 3.244-1.176-.506-1.176-.506-2.866-2.567-3.49-1.898.473 1.23 2.037 2.16c1.564.932 1.686 1.178 1.464 1.53s-3.675-2.511-4-1.297c-.323 1.214 3.524 1.567 3.287 2.405-.238.839-2.71-1.587-3.216-.642-.506.946 3.49 2.056 3.522 2.064 1.29.33 4.568 1.028 5.713-.624m5.349 0c-.824-1.19-.766-2.082.365-3.194 1.13-1.112 1.789-2.738 1.789-2.738s.246-.945.806-.858.97 1.499-.202 2.362c-1.173.864.233 1.45.685.64.451-.812 1.683-2.896 2.322-3.295s1.089-.175.938.647-2.822 2.813-2.562 3.244 1.176-.506 1.176-.506 2.866-2.567 3.49-1.898-.473 1.23-2.037 2.16c-1.564.932-1.686 1.178-1.464 1.53s3.675-2.511 4-1.297c.323 1.214-3.524 1.567-3.287 2.405.238.839 2.71-1.587 3.216-.642.506.946-3.49 2.056-3.522 2.064-1.29.33-4.568 1.028-5.713-.624\"/></g></svg></svg>";
526
+ readonly figma: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\" viewBox=\"0 0 150 150\"><rect x=\"2\" y=\"2\" width=\"146\" height=\"146\" rx=\"34\" fill=\"#1e1e1e\"/><svg x=\"35\" y=\"30\" width=\"80\" height=\"90\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Figma</title><path d=\"M15.852 8.981h-4.588V0h4.588c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.491-4.49 4.491zM12.735 7.51h3.117c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-3.117V7.51zm0 1.471H8.148c-2.476 0-4.49-2.014-4.49-4.49S5.672 0 8.148 0h4.588v8.981zm-4.587-7.51c-1.665 0-3.019 1.355-3.019 3.019s1.354 3.02 3.019 3.02h3.117V1.471H8.148zm4.587 15.019H8.148c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h4.588v8.98zM8.148 8.981c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h3.117V8.981H8.148zM8.172 24c-2.489 0-4.515-2.014-4.515-4.49s2.014-4.49 4.49-4.49h4.588v4.441c0 2.503-2.047 4.539-4.563 4.539zm-.024-7.51a3.023 3.023 0 0 0-3.019 3.019c0 1.665 1.365 3.019 3.044 3.019 1.705 0 3.093-1.376 3.093-3.068v-2.97H8.148zm7.704 0h-.098c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h.098c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.49-4.49 4.49zm-.097-7.509c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h.098c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-.098z\"/></g></svg></svg>";
527
+ readonly vercel: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\" viewBox=\"0 0 150 150\"><circle cx=\"75\" cy=\"75\" r=\"73\" fill=\"#ffffff\"/><circle cx=\"75\" cy=\"75\" r=\"73\" fill=\"none\" stroke=\"#000\" stroke-width=\"5\"/><svg x=\"38\" y=\"34\" width=\"74\" height=\"74\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#000000\"><title>Vercel</title><path d=\"m12 1.608 12 20.784H0Z\"/></g></svg></svg>";
528
+ readonly linear: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"680\" height=\"440\" viewBox=\"0 0 170 110\"><rect x=\"2\" y=\"2\" width=\"166\" height=\"106\" rx=\"53\" fill=\"#5e6ad2\"/><svg x=\"57\" y=\"27\" width=\"56\" height=\"56\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Linear</title><path d=\"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z\"/></g></svg></svg>";
529
+ readonly cursor: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\" viewBox=\"0 0 150 150\"><path d=\"M75.00,6.00 L94.90,29.96 L125.91,27.09 L123.04,58.10 L147.00,78.00 L123.04,97.90 L125.91,128.91 L94.90,126.04 L75.00,150.00 L55.10,126.04 L24.09,128.91 L26.96,97.90 L3.00,78.00 L26.96,58.10 L24.09,27.09 L55.10,29.96 Z\" fill=\"#e8483b\" stroke=\"#e8483b\" stroke-width=\"10\" stroke-linejoin=\"round\"/><svg x=\"43\" y=\"45\" width=\"64\" height=\"64\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\"><g fill=\"#ffffff\"><title>Cursor</title><path d=\"M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23\"/></g></svg></svg>";
530
+ };
531
+ type StickerArtName = keyof typeof STICKER_ART;
532
+ /** One sticker, as a data URL an image content or a mount sticker can take as `src`. */
533
+ declare function stickerArt(name: StickerArtName): string;
534
+
500
535
  declare function getPreset(name: string): PaperConfig;
501
536
  /** Register a user preset (validated). Built-in names are reserved. */
502
537
  declare function registerPreset(name: string, input: PaperConfigInput): void;
@@ -651,6 +686,29 @@ interface Behavior<O = AnyOptions> {
651
686
  */
652
687
  transform?(o: O, t: number, pose: AeroPose, sheet: SheetDims): void;
653
688
  handles?: HandleSpec<O>[];
689
+ /**
690
+ * A point past which a drag stops steering and the rest plays by itself.
691
+ *
692
+ * Some motions end in something a hand cannot scrub: a sticker's last edge
693
+ * letting go is a snap, and a snap dragged slowly is not a snap. When a
694
+ * handle drag carries the progress param past `from`, the drag lets go of
695
+ * it and the progress runs to `to` over `duration` seconds.
696
+ */
697
+ commit?: {
698
+ from: number;
699
+ to: number;
700
+ duration: number;
701
+ };
702
+ /**
703
+ * How far through flying away these options have the sheet, 0..1. At 1
704
+ * it is gone.
705
+ *
706
+ * A flight happens in the world, on the air, and a deformer works in the
707
+ * sheet's own space, so it cannot be part of the stack. Only a sheet
708
+ * stuck to something has something to fly off, and the mount applies it
709
+ * (`MountRig.fly`); everywhere else this is never read.
710
+ */
711
+ fly?(o: O): number;
654
712
  /**
655
713
  * The two or three options that ARE this behavior — the ones someone
656
714
  * reaches for first, in the order they'd reach for them.
@@ -1285,4 +1343,4 @@ declare function segmentsForSine(span: number, amplitude: number, wavelength: nu
1285
1343
  */
1286
1344
  declare function wrapLines(ctx: CanvasRenderingContext2D, text: string, maxWidth: number, font: string): string[];
1287
1345
 
1288
- export { AUTO_CEILING, BackdropConfig, type Behavior, BehaviorConfigInput, ContentConfig, ContentConfigInput, CreaseConfig, CreaseTracker, DamageSource, type Deformer, type DeformerContext, type DeformerInstance, DeformerInstanceConfigInput, DropZone, type DropZoneConfig, type DropZoneProps, FLAT_SEGMENTS, type FieldExportInput, type FieldExportPaper, type FieldExportZone, FieldPaperSlot, FilmName, type HandleSpec, type IdleName, type IdlePreset, type Layout, type LightAngles, LightOverrides, LightRig, LightingName, type LightingPreset, MAX_CREASES, MAX_SET, MemoryConfigInput, PARITY_EPSILON, Paper, PaperBackdrop, PaperConfig, PaperConfigInput, PaperField, PaperFieldMesh, type PaperFieldMeshProps, type PaperFieldProps, type PaperHandle, PaperLighting, type PaperLightingProps, PaperMesh, type PaperMeshProps, type PaperPose, type PaperProps, PaperStatesInput, type ParityCase, type ParityResult, PhysicsConfigInput, type PlacedPaper, SAG_TOL, SceneConfigInput, SheetConfig, type SheetDims, type SheetLayoutOptions, type StateEvent, type Stock, StockName, SurfaceConfigInput, type UsePaperStatesResult, applyMemory, buildAgentPayload, buildFieldAgentPayload, buildFieldComponentSource, buildJsxSnippet, describeConfig, describeFieldConfig, diffConfig, diffFieldProps, getBehavior, getDeformer, getLayout, getPreset, getStock, idleNames, isBuiltinPreset, lightAngles, listBehaviors, listDeformers, listLayouts, listPresets, maxStripLength, mergeConfig, mergeWithDeletes, parityCases, parsePreset, quantizeSegments, recordStateOverride, registerBehavior, registerDeformer, registerLayout, registerPreset, resolveLighting, resolveStateConfig, runParityHarness, segmentsForArc, segmentsForSine, serializePreset, sheetLayoutSchema, spanAlong, stocks, supportsWebGL, uniquePresetName, unregisterPreset, usePaperStates, usePrefersReducedMotion, wrapLines };
1346
+ export { AUTO_CEILING, BackdropConfig, type Behavior, BehaviorConfigInput, ContentConfig, ContentConfigInput, CreaseConfig, CreaseTracker, DamageSource, type Deformer, type DeformerContext, type DeformerInstance, DeformerInstanceConfigInput, DropZone, type DropZoneConfig, type DropZoneProps, FLAT_SEGMENTS, type FieldExportInput, type FieldExportPaper, type FieldExportZone, FieldPaperSlot, FilmName, type HandleSpec, type IdleName, type IdlePreset, type Layout, type LightAngles, LightOverrides, LightRig, LightingName, type LightingPreset, MAX_CREASES, MAX_SET, MemoryConfigInput, MountConfigInput, PARITY_EPSILON, Paper, PaperBackdrop, PaperConfig, PaperConfigInput, PaperField, PaperFieldMesh, type PaperFieldMeshProps, type PaperFieldProps, type PaperHandle, PaperLighting, type PaperLightingProps, PaperMesh, type PaperMeshProps, type PaperPose, type PaperProps, PaperStatesInput, type ParityCase, type ParityResult, PhysicsConfigInput, type PlacedPaper, SAG_TOL, STICKER_ART, SceneConfigInput, SheetConfig, type SheetDims, type SheetLayoutOptions, type StateEvent, type StickerArtName, type Stock, StockName, SurfaceConfigInput, type UsePaperStatesResult, applyMemory, buildAgentPayload, buildFieldAgentPayload, buildFieldComponentSource, buildJsxSnippet, describeConfig, describeFieldConfig, diffConfig, diffFieldProps, getBehavior, getDeformer, getLayout, getPreset, getStock, idleNames, isBuiltinPreset, lightAngles, listBehaviors, listDeformers, listLayouts, listPresets, maxStripLength, mergeConfig, mergeWithDeletes, parityCases, parsePreset, quantizeSegments, recordStateOverride, registerBehavior, registerDeformer, registerLayout, registerPreset, resolveLighting, resolveStateConfig, runParityHarness, segmentsForArc, segmentsForSine, serializePreset, sheetLayoutSchema, spanAlong, stickerArt, stocks, supportsWebGL, uniquePresetName, unregisterPreset, usePaperStates, usePrefersReducedMotion, wrapLines };
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  AGENT_PAYLOAD_VERSION,
3
3
  AUTO_CEILING,
4
+ CANVAS_SHADOWS,
4
5
  CreaseTracker,
5
6
  DropZone,
6
7
  FLAT_SEGMENTS,
@@ -16,6 +17,7 @@ import {
16
17
  PaperMirror,
17
18
  ReleaseContextOnUnmount,
18
19
  SAG_TOL,
20
+ STICKER_ART,
19
21
  applyMemory,
20
22
  backdropSchema,
21
23
  behaviorConfigSchema,
@@ -48,6 +50,9 @@ import {
48
50
  memorySchema,
49
51
  mergeConfig,
50
52
  mergeWithDeletes,
53
+ mountObjectNames,
54
+ mountSchema,
55
+ mountStickerSchema,
51
56
  paperConfigSchema,
52
57
  paperEdges,
53
58
  paperStatesSchema,
@@ -68,6 +73,7 @@ import {
68
73
  sheetLayoutSchema,
69
74
  spanAlong,
70
75
  stateDefSchema,
76
+ stickerArt,
71
77
  stockNames,
72
78
  stocks,
73
79
  stripConfigSchema,
@@ -79,7 +85,7 @@ import {
79
85
  useResolvedConfig,
80
86
  washSchema,
81
87
  wrapLines
82
- } from "./chunk-LUKNPQ3S.js";
88
+ } from "./chunk-YQFQT3AH.js";
83
89
  import {
84
90
  DAMAGE_CHANNELS,
85
91
  DAMAGE_LOOK_DEFAULTS
@@ -93,7 +99,7 @@ var Paper = forwardRef(function Paper2({ children, className, style, ...meshProp
93
99
  const config = useResolvedConfig(meshProps);
94
100
  const webgl = useMemo(() => typeof window === "undefined" ? true : supportsWebGL(), []);
95
101
  return /* @__PURE__ */ jsxs("div", { className, style: { width: "100%", height: "100%", ...style }, children: [
96
- webgl ? /* @__PURE__ */ jsxs(Canvas, { shadows: true, camera: { position: [0, 0.35, 2.4], fov: 40 }, dpr: [1, 2], children: [
102
+ webgl ? /* @__PURE__ */ jsxs(Canvas, { shadows: CANVAS_SHADOWS, camera: { position: [0, 0.35, 2.4], fov: 40 }, dpr: [1, 2], children: [
97
103
  /* @__PURE__ */ jsx(PaperBackdrop, { backdrop: config.scene.backdrop }),
98
104
  /* @__PURE__ */ jsx(
99
105
  PaperLighting,
@@ -110,7 +116,12 @@ var Paper = forwardRef(function Paper2({ children, className, style, ...meshProp
110
116
  // fire's light pools on, and what the paper it cuts loose lands on.
111
117
  /* @__PURE__ */ jsxs("mesh", { "rotation-x": -Math.PI / 2, position: [0, config.scene.floor.y, 0], receiveShadow: true, children: [
112
118
  /* @__PURE__ */ jsx("planeGeometry", { args: [40, 40] }),
113
- /* @__PURE__ */ jsx(
119
+ config.scene.floor.roughness >= 1 ? (
120
+ // Chalk: all the way matte, no highlight at all. A standard material,
121
+ // even at full roughness, turns into a mirror of the key at a grazing
122
+ // angle, which drew a bright band across a black set.
123
+ /* @__PURE__ */ jsx("meshLambertMaterial", { color: config.scene.floor.color })
124
+ ) : /* @__PURE__ */ jsx(
114
125
  "meshStandardMaterial",
115
126
  {
116
127
  color: config.scene.floor.color,
@@ -340,6 +351,35 @@ var parityCases = [
340
351
  sheet: { width: 1, height: 1 },
341
352
  t: 0
342
353
  },
354
+ {
355
+ name: "lift: part-way, rolled back flat",
356
+ stack: [
357
+ { type: "lift", options: { angle: 145, front: 0.45, radius: 0.05, flap: 180, tension: 0, release: 0 } }
358
+ ],
359
+ sheet: { width: 0.8, height: 0.5 },
360
+ t: 0
361
+ },
362
+ {
363
+ // Past the arc into the straight run, with the glue holding: the fillet
364
+ // on the stuck side and the tightened bend both have to agree.
365
+ name: "lift: held flap under tension",
366
+ stack: [
367
+ {
368
+ type: "lift",
369
+ options: { angle: -30, front: 0.7, radius: 0.08, flap: 120, tension: 0.8, release: 0 }
370
+ }
371
+ ],
372
+ sheet: { width: 1, height: 1.4 },
373
+ t: 0
374
+ },
375
+ {
376
+ name: "lift: released and springing away",
377
+ stack: [
378
+ { type: "lift", options: { angle: 90, front: 1, radius: 0.04, flap: 168, tension: 0, release: 0.6 } }
379
+ ],
380
+ sheet: { width: 0.6, height: 0.6 },
381
+ t: 0
382
+ },
343
383
  {
344
384
  name: "bend: positive arc at an angle",
345
385
  stack: [{ type: "bend", options: { curvature: 1.2, angle: 33 } }],
@@ -629,6 +669,7 @@ export {
629
669
  PaperLighting,
630
670
  PaperMesh,
631
671
  SAG_TOL,
672
+ STICKER_ART,
632
673
  applyMemory,
633
674
  backdropSchema,
634
675
  behaviorConfigSchema,
@@ -663,6 +704,9 @@ export {
663
704
  memorySchema,
664
705
  mergeConfig,
665
706
  mergeWithDeletes,
707
+ mountObjectNames,
708
+ mountSchema,
709
+ mountStickerSchema,
666
710
  paperConfigSchema,
667
711
  paperEdges,
668
712
  paperStatesSchema,
@@ -685,6 +729,7 @@ export {
685
729
  sheetLayoutSchema,
686
730
  spanAlong,
687
731
  stateDefSchema,
732
+ stickerArt,
688
733
  stockNames,
689
734
  stocks,
690
735
  stripConfigSchema,