@nodaro/prompts 1.26.1 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/index.cjs +3127 -92
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +1776 -10
  4. package/dist/index.d.ts +1776 -10
  5. package/dist/index.js +3094 -93
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/__tests__/fixtures/parameter-hint-golden.json +33 -1
  9. package/src/__tests__/hint-join.test.ts +64 -1
  10. package/src/__tests__/motion-hint.test.ts +20 -0
  11. package/src/__tests__/parameter-registry-sync.test.ts +1 -0
  12. package/src/__tests__/person-mixed-heritage.test.ts +43 -0
  13. package/src/__tests__/picker-art-images.test.ts +191 -0
  14. package/src/__tests__/resolve-prompt.test.ts +13 -1
  15. package/src/__tests__/transition-options.test.ts +223 -0
  16. package/src/__tests__/transition-styles.test.ts +202 -0
  17. package/src/__tests__/transitions-instant.test.ts +9 -5
  18. package/src/__tests__/transitions-scope.test.ts +593 -8
  19. package/src/__tests__/video-own-motion.test.ts +26 -0
  20. package/src/catalog-sections.ts +24 -0
  21. package/src/hint-join.ts +33 -1
  22. package/src/index.ts +4 -0
  23. package/src/parameter-prompt-hint.ts +20 -3
  24. package/src/person.ts +24 -8
  25. package/src/picker-art/character-art-files.generated.ts +1118 -0
  26. package/src/picker-art/images.ts +83 -0
  27. package/src/picker-art/index.ts +13 -0
  28. package/src/picker-art/look-preview-sets.ts +489 -0
  29. package/src/picker-art/paths.ts +53 -0
  30. package/src/picker-art/sound-art-files.generated.ts +319 -0
  31. package/src/picker-art/sound-art-map.ts +722 -0
  32. package/src/picker-art/sound-art-types.ts +19 -0
  33. package/src/picker-catalogs.ts +125 -24
  34. package/src/prompt-builder.ts +2 -1
  35. package/src/prompt-hint-join.ts +8 -2
  36. package/src/prompt-style-section.ts +3 -5
  37. package/src/resolve-prompt.ts +22 -4
  38. package/src/styling.ts +18 -0
  39. package/src/transitions.ts +320 -51
  40. package/src/video-own-motion.ts +29 -0
package/dist/index.js CHANGED
@@ -3294,13 +3294,17 @@ function normalizePickIds(value) {
3294
3294
  }
3295
3295
  return out;
3296
3296
  }
3297
+ function heritageNoun(id) {
3298
+ const noun = (getPerson(id)?.promptHint ?? "").trim().replace(/^of\s+/i, "").replace(/\s+(descent|heritage)$/i, "").trim();
3299
+ return noun.length > 0 ? noun : void 0;
3300
+ }
3297
3301
  function buildEthnicityFragment(value, fragmentFor) {
3298
- const ids = normalizePickIds(value);
3302
+ const ids = normalizePickIds(value).filter((id, _, all) => all.length < 2 || id !== "mixed");
3299
3303
  if (ids.length === 0) return "";
3300
3304
  if (ids.length === 1) return fragmentFor(ids[0]);
3301
- const labels = ids.slice(0, 2).map((id) => getPerson(id)?.shortLabel ?? getPerson(id)?.label ?? "").filter((s) => Boolean(s));
3302
- if (labels.length < 2) return fragmentFor(ids[0]);
3303
- return `of mixed ${labels[0]} and ${labels[1]} heritage`;
3305
+ const nouns = ids.slice(0, 2).map(heritageNoun).filter((s) => Boolean(s));
3306
+ if (nouns.length < 2) return fragmentFor(ids[0]);
3307
+ return `of mixed ${nouns[0]} and ${nouns[1]} heritage`;
3304
3308
  }
3305
3309
  function buildHairColorFragment(value, fragmentFor) {
3306
3310
  const ids = normalizePickIds(value);
@@ -4070,6 +4074,12 @@ var STYLING_DIMENSION_ORDER = [
4070
4074
  "fabric",
4071
4075
  "wardrobe-state"
4072
4076
  ];
4077
+ var STYLING_DIMENSION_SECTIONS = [
4078
+ { label: "Beauty & Hair", dimensions: ["makeup", "hair-cut", "hair-treatment", "hair-state", "nails", "face-paint"] },
4079
+ { label: "Accessories", dimensions: ["eyewear", "headwear", "jewelry"] },
4080
+ { label: "Wardrobe", dimensions: ["outfit", "top", "bottom", "outerwear", "legwear", "footwear"] },
4081
+ { label: "Fabric & Fit", dimensions: ["fabric", "wardrobe-state"] }
4082
+ ];
4073
4083
  var STYLING_DIMENSION_LABELS = {
4074
4084
  makeup: "Makeup",
4075
4085
  eyewear: "Eyewear",
@@ -4259,7 +4269,7 @@ function buildTemporalTerms(data) {
4259
4269
  }
4260
4270
 
4261
4271
  // src/hint-join.ts
4262
- var ENDS_SENTENCE = /[.!?]$/;
4272
+ var ENDS_SENTENCE = /[.!?…。!?]$/;
4263
4273
  function joinHintFragments(fragments) {
4264
4274
  let out = "";
4265
4275
  for (const fragment of fragments) {
@@ -4272,6 +4282,23 @@ function joinHintFragments(fragments) {
4272
4282
  }
4273
4283
  return out;
4274
4284
  }
4285
+ function joinSentences(pieces) {
4286
+ let out = "";
4287
+ for (const piece of pieces) {
4288
+ if (!piece || !piece.trim()) continue;
4289
+ if (!out) {
4290
+ out = piece;
4291
+ continue;
4292
+ }
4293
+ const head = out.trimEnd();
4294
+ out = ENDS_SENTENCE.test(head) ? `${head} ${piece}` : `${head}. ${piece}`;
4295
+ }
4296
+ return out;
4297
+ }
4298
+ function appendPromptHints(prompt, hints) {
4299
+ const joined = joinHintFragments(hints);
4300
+ return joined.trim() ? joinSentences([prompt, joined]) : prompt ?? "";
4301
+ }
4275
4302
 
4276
4303
  // src/camera-motions.ts
4277
4304
  var CAMERA_MOTIONS = [
@@ -4865,6 +4892,179 @@ function composeCameraMotionTermFromConnections(motionId, startTerms, endTerms)
4865
4892
  }
4866
4893
 
4867
4894
  // src/transitions.ts
4895
+ var WIPE_DIRECTION = {
4896
+ field: "wipeDirection",
4897
+ label: "Direction",
4898
+ choices: [
4899
+ {
4900
+ id: "auto",
4901
+ label: "Auto",
4902
+ description: "Let the model choose the direction",
4903
+ term: "",
4904
+ phrase: "straight edge sweeps across the frame"
4905
+ },
4906
+ {
4907
+ id: "left-to-right",
4908
+ label: "Left \u2192 Right",
4909
+ description: "A vertical edge travels from the left side to the right",
4910
+ term: "left to right",
4911
+ phrase: "vertical edge sweeps across the frame from left to right"
4912
+ },
4913
+ {
4914
+ id: "right-to-left",
4915
+ label: "Right \u2192 Left",
4916
+ description: "A vertical edge travels from the right side to the left",
4917
+ term: "right to left",
4918
+ phrase: "vertical edge sweeps across the frame from right to left"
4919
+ },
4920
+ {
4921
+ id: "top-to-bottom",
4922
+ label: "Top \u2192 Bottom",
4923
+ description: "A horizontal edge travels down from the top",
4924
+ term: "top to bottom",
4925
+ phrase: "horizontal edge sweeps down the frame from top to bottom"
4926
+ },
4927
+ {
4928
+ id: "bottom-to-top",
4929
+ label: "Bottom \u2192 Top",
4930
+ description: "A horizontal edge travels up from the bottom",
4931
+ term: "bottom to top",
4932
+ phrase: "horizontal edge sweeps up the frame from bottom to top"
4933
+ },
4934
+ {
4935
+ id: "top-left-to-bottom-right",
4936
+ label: "Top-left \u2192 Bottom-right",
4937
+ description: "A diagonal edge travels from the top-left corner to the bottom-right",
4938
+ term: "top-left to bottom-right",
4939
+ phrase: "diagonal edge sweeps across the frame from the top-left corner to the bottom-right corner"
4940
+ },
4941
+ {
4942
+ id: "top-right-to-bottom-left",
4943
+ label: "Top-right \u2192 Bottom-left",
4944
+ description: "A diagonal edge travels from the top-right corner to the bottom-left",
4945
+ term: "top-right to bottom-left",
4946
+ phrase: "diagonal edge sweeps across the frame from the top-right corner to the bottom-left corner"
4947
+ }
4948
+ ]
4949
+ };
4950
+ function rowStyle(row, choices) {
4951
+ return {
4952
+ field: TRANSITION_STYLE_FIELD,
4953
+ label: "Style",
4954
+ choices: choices.map((c, i) => ({
4955
+ id: i === 0 ? "auto" : `${row}-${c.slug}`,
4956
+ label: i === 0 ? `${c.label} (default)` : c.label,
4957
+ description: c.description,
4958
+ phrase: c.phrase,
4959
+ term: ""
4960
+ }))
4961
+ };
4962
+ }
4963
+ var TRANSITION_STYLE_FIELD = "style";
4964
+ var DEBRIS_SHOWER_STYLE = rowStyle("debris-shower", [
4965
+ {
4966
+ label: "Full cover",
4967
+ description: "Debris fills the whole screen, then blows past to reveal the next scene",
4968
+ phrase: "a dense shower of loose leaves, paper scraps and dust whips across the frame from one side, close to the lens, thick enough to hide the whole picture. The camera stays where it is and the framing does not change. As the last of the debris blows past the far edge, the second shot is revealed behind it. The shot ends on the second shot, clear and fully resolved, with no debris left. The debris passes in front of the picture in one direction, and the second shot appears only once it has passed"
4969
+ },
4970
+ {
4971
+ slug: "light-sweep",
4972
+ label: "Light sweep",
4973
+ description: "A quick scatter of debris crosses the screen; the scene has changed behind it",
4974
+ phrase: "a shower of debris \u2014 leaves, papers, dust \u2014 sweeps across the frame in front of the camera, and once the debris clears the scene behind has changed"
4975
+ }
4976
+ ]);
4977
+ var GARDEN_BLOOM_STYLE = rowStyle("garden-bloom", [
4978
+ {
4979
+ label: "Grow & part",
4980
+ description: "Flowers and vines grow over the picture, then part like curtains on the next scene",
4981
+ phrase: "lush flowers and vines rapidly grow and bloom outward from the edges of the frame, the foliage spreads to overtake the entire image, then parts open like curtains to reveal the new scene behind"
4982
+ },
4983
+ {
4984
+ slug: "hedge-doors",
4985
+ label: "Hedge doors",
4986
+ description: "Leafy panels close over the picture, then slide apart to the sides",
4987
+ phrase: "vines and flowers grow rapidly inward from the edges of the frame, blooming as they spread, until leaves and blossoms cover the whole picture. The camera stays where it is and the framing does not change. The foliage then splits down the middle and draws apart toward the side edges, opening onto the second shot behind it. The shot ends on the second shot, clear and fully resolved, with no leaves or flowers left. The plants grow over the front of the picture, and the first shot stays unchanged until they cover it completely"
4988
+ }
4989
+ ]);
4990
+ var SMOKE_PUFF_STYLE = rowStyle("smoke-puff", [
4991
+ {
4992
+ label: "Engulf",
4993
+ description: "Smoke billows up around the subject, and the new subject appears inside it",
4994
+ phrase: "the subject vanishes in a soft puff of smoke that billows outward and fills the frame, the smoke then clears to reveal the new subject in the new scene"
4995
+ },
4996
+ {
4997
+ slug: "full-cover",
4998
+ label: "Full cover",
4999
+ description: "Smoke from the subject fills the whole screen, then clears on the next scene",
5000
+ phrase: "the first subject vanishes in a sudden soft puff of smoke that billows outward from where it stood until the smoke fills the frame. The camera stays where it is and the framing does not change. The smoke thins and clears from the centre outward, revealing the second shot with the second subject at the same place in the frame. The shot ends on the second shot, clear and fully resolved, with no smoke left. The smoke comes only from where the first subject was"
5001
+ }
5002
+ ]);
5003
+ var SAKURA_PETALS_STYLE = rowStyle("sakura-petals", [
5004
+ {
5005
+ label: "Swirling veil",
5006
+ description: "A swirl of pink petals veils the picture, then drifts past",
5007
+ phrase: "a dense storm of cherry blossom petals swirls in from one side and fills the frame in soft pink motion, the petals cluster to fully veil the image, then drift past to reveal the new scene"
5008
+ },
5009
+ {
5010
+ slug: "side-sweep",
5011
+ label: "Side sweep",
5012
+ description: "Petals sweep across from one side and leave by the other, uncovering the next scene",
5013
+ phrase: "a dense storm of pink cherry blossom petals swirls in from one side of the frame, close to the lens, and thickens until the petals veil the whole picture. The camera stays where it is and the framing does not change. The petals keep drifting the same way and thin out, revealing the second shot behind them. The shot ends on the second shot, clear and fully resolved, with no petals left. The petals fly across the front of the picture in one direction, and the first shot stays unchanged until they hide it completely"
5014
+ }
5015
+ ]);
5016
+ var AURORA_SWEEP_STYLE = rowStyle("aurora-sweep", [
5017
+ {
5018
+ label: "Sky glow",
5019
+ description: "Aurora light glows over the scene, then fades to reveal the next one",
5020
+ phrase: "a luminous curtain of green and violet aurora light ripples across the whole frame, and its bright bands veil the first shot. The camera stays where it is and the framing does not change. As the bands fade, the second shot is revealed behind them. The shot ends on the second shot, clear and fully resolved, with no aurora light left. The aurora glows over the front of the picture, and the second shot appears only as it fades"
5021
+ },
5022
+ {
5023
+ slug: "veil",
5024
+ label: "Veil",
5025
+ description: "Aurora curtains drop over the whole picture, then fade to reveal the next scene",
5026
+ phrase: "a luminous green and violet aurora curtain ripples across the entire frame, the bright bands obscure the first scene, and as the aurora dissipates the second scene resolves in the clear sky"
5027
+ }
5028
+ ]);
5029
+ var SAND_STORM_STYLE = rowStyle("sand-storm", [
5030
+ {
5031
+ label: "Full cover",
5032
+ description: "A wall of sand hides the whole picture, then clears on the next scene",
5033
+ phrase: "a wall of opaque, swirling ochre sand sweeps in from one side of the frame and surges across it until the whole picture is hidden in dust. The camera stays where it is and the framing does not change. The dust then thins and sinks away toward the lower edge of the frame, revealing the second shot behind it. The shot ends on the second shot, clear and fully resolved, with no dust left. The first shot stays as it is until the sand covers it completely, and the second shot appears only as the dust clears"
5034
+ },
5035
+ {
5036
+ slug: "light-sweep",
5037
+ label: "Light sweep",
5038
+ description: "A streak of blown sand crosses the screen with the next scene already behind it",
5039
+ phrase: "a narrow streak of blown sand races across the frame close to the lens in one direction. The first shot stays clear ahead of the streak and the second shot is already clear behind it. The camera stays where it is and the framing does not change. The shot ends on the second shot, fully resolved, with no sand left"
5040
+ }
5041
+ ]);
5042
+ var WHITE_FLASH_STYLE = rowStyle("white-flash", [
5043
+ {
5044
+ label: "Flash",
5045
+ description: "A camera flash pops the picture to white, holds, then fades down on the next scene",
5046
+ phrase: "a bright camera-flash bloom fills the whole frame with pure white. The camera stays where it is and the framing does not change. The white holds for a clear beat, then fades down to reveal the second shot. The shot ends on the second shot, fully resolved, with no white haze left. The first shot is gone once the frame is white, and the second shot appears only out of the white"
5047
+ },
5048
+ {
5049
+ slug: "overexposure",
5050
+ label: "Overexposure",
5051
+ description: "The picture blooms to white and resolves into the next scene",
5052
+ phrase: "a bright camera-flash bloom fills the frame with pure white, holds for a fraction of a second, then resolves into the new scene"
5053
+ }
5054
+ ]);
5055
+ var optionToken = (field) => `{${field}}`;
5056
+ function fillOptionSlots(template, options, values2) {
5057
+ let out = template;
5058
+ for (const option of options) {
5059
+ const picked = values2?.[option.field];
5060
+ const choice = option.choices.find((c) => c.id === picked) ?? option.choices[0];
5061
+ out = out.split(optionToken(option.field)).join(choice?.phrase ?? "");
5062
+ }
5063
+ return out;
5064
+ }
5065
+ function withOptionSlots(row) {
5066
+ return { ...row, promptHint: fillOptionSlots(row.promptTemplate, row.options) };
5067
+ }
4868
5068
  var TRANSITIONS = [
4869
5069
  // ============================================================================
4870
5070
  // STANDARD — 14 entries — classical editing transitions
@@ -4905,7 +5105,7 @@ var TRANSITIONS = [
4905
5105
  label: "Snap to Black",
4906
5106
  category: "standard",
4907
5107
  description: "Instant cut to full black for a beat, then the next shot",
4908
- promptHint: "snap to black: the first shot cuts instantly to full black with no fade, the frame holds pure black for a single beat, then the second shot cuts in at full brightness",
5108
+ promptHint: "snap to black: the first shot cuts straight to full black on a single frame. The camera holds its framing right up to the cut. The frame stays pure black for a single beat, then the second shot cuts in at full brightness on a single frame. The shot ends on the second shot, fully resolved",
4909
5109
  term: "snap to black",
4910
5110
  instant: true
4911
5111
  },
@@ -4914,7 +5114,7 @@ var TRANSITIONS = [
4914
5114
  label: "Match Cut",
4915
5115
  category: "standard",
4916
5116
  description: "Shape or motion match across shots",
4917
- promptHint: "match cut: the final composition of the first shot matches the opening composition of the second shot in shape, color, and motion, so the cut feels like a visual rhyme",
5117
+ promptHint: "match cut: the last picture of the first shot and the first picture of the second share one shape, at the same place and the same size in the frame. The camera holds that shape in place across the cut. On the next frame everything around the shape has changed while the shape itself stays put. The shot ends on the second shot, fully resolved, with no flash frame or zoom between the two",
4918
5118
  instant: true
4919
5119
  },
4920
5120
  {
@@ -4933,20 +5133,21 @@ var TRANSITIONS = [
4933
5133
  promptHint: "iris transition: a circular vignette closes inward over the first shot until the frame is black, then opens outward to reveal the second shot",
4934
5134
  term: "iris wipe"
4935
5135
  },
4936
- {
5136
+ withOptionSlots({
4937
5137
  id: "wipe",
4938
5138
  label: "Wipe",
4939
5139
  category: "standard",
4940
5140
  description: "Linear wipe replaces first shot",
4941
- promptHint: "linear wipe transition: a clean diagonal line sweeps across the frame, revealing the second shot behind it",
4942
- term: "linear wipe"
4943
- },
5141
+ promptTemplate: "linear wipe transition: a clean {wipeDirection}, revealing the second shot behind it",
5142
+ term: "linear wipe",
5143
+ options: [WIPE_DIRECTION]
5144
+ }),
4944
5145
  {
4945
5146
  id: "roll-transition",
4946
5147
  label: "Roll",
4947
5148
  category: "standard",
4948
5149
  description: "Frame rolls 90-180\xB0, second shot upright on landing",
4949
- promptHint: "the frame rolls along the camera axis with a smooth 90 to 180 degree rotation, motion-blurred during the roll, and as the rotation completes the new shot is upright and stable in frame",
5150
+ promptHint: "the picture rolls around its centre in one smooth, fast turn, blurred by the speed of the turn. The camera stays in the same spot, turning only around its lens axis. During the turn the second shot takes over, and the roll slows and stops with it level and upright. The shot ends on the second shot, level, upright and still. The roll turns one way only and stops once, with no swing back",
4950
5151
  term: "camera roll transition"
4951
5152
  },
4952
5153
  {
@@ -4971,7 +5172,7 @@ var TRANSITIONS = [
4971
5172
  label: "Jump Cut",
4972
5173
  category: "standard",
4973
5174
  description: "Same framing, time skips forward",
4974
- promptHint: "jump cut: the framing, lens, and camera position stay identical across the cut while time skips abruptly forward, so the subject snaps to a new position inside what still reads as one continuous shot",
5175
+ promptHint: "jump cut: the framing, lens, and camera position stay identical across the cut while time skips abruptly forward, so the subject snaps to a new position inside what still reads as one continuous shot. No leap, no run, no lunge and no motion blur between the two positions; the subject is in the old place on one frame and already in the new place on the next",
4975
5176
  term: "jump cut",
4976
5177
  instant: true
4977
5178
  },
@@ -4983,7 +5184,7 @@ var TRANSITIONS = [
4983
5184
  label: "Fast-Forward (Day \u2192 Night)",
4984
5185
  category: "time",
4985
5186
  description: "Time-lapse day to night same scene",
4986
- promptHint: "fast-forward time-lapse transition: the sun visibly arcs across the sky, shadows sweep, clouds streak, sky shifts from daylight blue through golden hour to deep night, stars emerge, all while framing and camera position remain locked on the same scene",
5187
+ promptHint: "fast-forward time-lapse transition: the same view with framing locked while hours pass in seconds: light and shadows sweep across the scene, daylight warms to dusk and fades to night, lights come on, until the picture matches the end frame",
4987
5188
  term: "day-to-night time-lapse"
4988
5189
  },
4989
5190
  {
@@ -4999,7 +5200,7 @@ var TRANSITIONS = [
4999
5200
  label: "Seasonal Shift",
5000
5201
  category: "time",
5001
5202
  description: "Same scene through changing seasons",
5002
- promptHint: "accelerated seasonal time-lapse: foliage transitions from spring green to summer lushness to autumn red-gold to winter bare, leaves fall and regrow, snow accumulates and melts, all within the same locked framing",
5203
+ promptHint: "accelerated seasonal time-lapse: the same view races through the seasons in fast motion, from the season of the first shot to the season of the second, as growing things bud, turn and fall and snow comes or goes. The camera stays where it is and the framing does not change. The change flows continuously across the whole picture, every part moving on together, until the view matches the second shot. The shot ends on the second shot's season, still and fully resolved. Only the season changes, and the layout of the view stays exactly the same",
5003
5204
  term: "seasonal time-lapse"
5004
5205
  },
5005
5206
  {
@@ -5039,7 +5240,7 @@ var TRANSITIONS = [
5039
5240
  label: "Flashback",
5040
5241
  category: "time",
5041
5242
  description: "Memory-flashback into a past moment of the subject",
5042
- promptHint: "brief flashback transition: the frame washes with a soft warm or desaturated tint, faint ripple distortion crosses the image as the present scene fades, and a remembered earlier moment resolves into focus on the same subject"
5243
+ promptHint: "brief flashback transition: a soft warm wash spreads over the whole picture and a faint ripple drifts across it as the present moment fades. The camera stays where it is and the framing does not change. Through the ripple an earlier moment of the same subject comes into focus, like a memory. The shot ends on the remembered moment, steady and fully resolved, with the ripple gone. The subject stays at the same place in the frame while the moment around it changes"
5043
5244
  },
5044
5245
  // ============================================================================
5045
5246
  // ELEMENT — 14 entries — teleport via natural element
@@ -5073,13 +5274,14 @@ var TRANSITIONS = [
5073
5274
  promptHint: "the subject ignites and burns from edges inward into glowing embers and ash, the embers swirl through the frame and re-ignite into the new subject",
5074
5275
  term: "burn to embers and reform"
5075
5276
  },
5076
- {
5277
+ withOptionSlots({
5077
5278
  id: "smoke-puff",
5078
5279
  label: "Smoke Puff",
5079
5280
  category: "element",
5080
5281
  description: "Subject vanishes in smoke, reappears",
5081
- promptHint: "the subject vanishes in a soft puff of smoke that billows outward and fills the frame, the smoke then clears to reveal the new subject in the new scene"
5082
- },
5282
+ promptTemplate: "{style}",
5283
+ options: [SMOKE_PUFF_STYLE]
5284
+ }),
5083
5285
  {
5084
5286
  id: "magic-sparkles",
5085
5287
  label: "Magic Sparkles",
@@ -5092,7 +5294,7 @@ var TRANSITIONS = [
5092
5294
  label: "Lightning Strike",
5093
5295
  category: "element",
5094
5296
  description: "Lightning strikes, scene changes in flash",
5095
- promptHint: "a brilliant white lightning bolt cracks across the frame with a bright flash, and when the flash subsides the scene has changed to the new setting"
5297
+ promptHint: "a brilliant jagged bolt of lightning cracks across the frame and its flash turns the whole picture white. The camera stays where it is and the framing does not change. As the flash dies away, the second shot is revealed in its place. The shot ends on the second shot, fully resolved, with no bolt or flash left. The change happens inside the flash, and the second shot appears only as the white fades"
5096
5298
  },
5097
5299
  {
5098
5300
  id: "ink-splash",
@@ -5101,13 +5303,14 @@ var TRANSITIONS = [
5101
5303
  description: "Ink splashes across, scene changes",
5102
5304
  promptHint: "black ink splashes across the frame in expanding tendrils that fully cover the image, then the ink retracts inward and pulls back to reveal the new scene"
5103
5305
  },
5104
- {
5306
+ withOptionSlots({
5105
5307
  id: "sand-storm",
5106
5308
  label: "Sand Storm",
5107
5309
  category: "element",
5108
5310
  description: "Sand storm engulfs the frame, scene changes inside",
5109
- promptHint: "a wall of opaque, swirling ochre sand sweeps in from one side of the frame and surges across it until the whole picture is hidden in dust. The camera stays where it is and the framing does not change. The dust then thins and sinks away toward the lower edge of the frame, revealing the second shot behind it. The shot ends on the second shot, clear and fully resolved, with no dust left. The first shot stays as it is until the sand covers it completely, and the second shot appears only as the dust clears"
5110
- },
5311
+ promptTemplate: "{style}",
5312
+ options: [SAND_STORM_STYLE]
5313
+ }),
5111
5314
  {
5112
5315
  id: "paint-splash",
5113
5316
  label: "Paint Splash",
@@ -5115,28 +5318,31 @@ var TRANSITIONS = [
5115
5318
  description: "Vivid paint splash covers, retracts into new scene",
5116
5319
  promptHint: "vivid splashes of coloured paint fly across the frame in arcing streaks and pile over one another until the whole picture is covered in wet paint. The camera stays where it is and the framing does not change. The paint then gathers toward the centre of the frame and shrinks to nothing, uncovering the second shot from the edges inward. The shot ends on the second shot, clean and fully resolved, with no paint left. The paint lies on the surface of the picture itself, and the second shot appears only where the paint has gone"
5117
5320
  },
5118
- {
5321
+ withOptionSlots({
5119
5322
  id: "aurora-sweep",
5120
5323
  label: "Aurora Sweep",
5121
5324
  category: "element",
5122
5325
  description: "Aurora curtain sweeps across, scene changes behind",
5123
- promptHint: "a luminous curtain of green and violet aurora light ripples across the whole frame, and its bright bands veil the first shot. The camera stays where it is and the framing does not change. As the bands fade, the second shot is revealed behind them. The shot ends on the second shot, clear and fully resolved, with no aurora light left. The aurora glows over the front of the picture, and the second shot appears only as it fades"
5124
- },
5125
- {
5326
+ promptTemplate: "{style}",
5327
+ options: [AURORA_SWEEP_STYLE]
5328
+ }),
5329
+ withOptionSlots({
5126
5330
  id: "sakura-petals",
5127
5331
  label: "Sakura Storm",
5128
5332
  category: "element",
5129
5333
  description: "Cherry blossom petals storm across the frame",
5130
- promptHint: "a dense storm of cherry blossom petals swirls in from one side and fills the frame in soft pink motion, the petals cluster to fully veil the image, then drift past to reveal the new scene",
5131
- term: "cherry blossom petal storm"
5132
- },
5133
- {
5334
+ promptTemplate: "{style}",
5335
+ term: "cherry blossom petal storm",
5336
+ options: [SAKURA_PETALS_STYLE]
5337
+ }),
5338
+ withOptionSlots({
5134
5339
  id: "garden-bloom",
5135
5340
  label: "Garden Bloom",
5136
5341
  category: "element",
5137
5342
  description: "Flowers bloom outward, parting to reveal new scene",
5138
- promptHint: "lush flowers and vines rapidly grow and bloom outward from the edges of the frame, the foliage spreads to overtake the entire image, then parts open like curtains to reveal the new scene behind"
5139
- },
5343
+ promptTemplate: "{style}",
5344
+ options: [GARDEN_BLOOM_STYLE]
5345
+ }),
5140
5346
  {
5141
5347
  id: "powder-burst",
5142
5348
  label: "Powder Burst",
@@ -5228,7 +5434,7 @@ var TRANSITIONS = [
5228
5434
  label: "Zoom Into Mirror",
5229
5435
  category: "portal",
5230
5436
  description: "Push into mirror, scene inside reflection",
5231
- promptHint: "the camera pushes toward a mirror in the scene, the mirror's reflection fills the frame, and the camera passes through the mirror surface into the reflected world which becomes the new scene"
5437
+ promptHint: "the camera pushes straight at a mirror in the frame. As the lens meets the glass, the mirror's surface turns liquid and rings ripple out across the whole picture, and the camera keeps moving forward through the rippling surface, out the far side into the second shot. Until the lens touches the glass, the mirror keeps its own reflection. The shot ends in the second shot, still and fully resolved, with no ripples left"
5232
5438
  },
5233
5439
  {
5234
5440
  id: "zoom-into-screen",
@@ -5242,14 +5448,14 @@ var TRANSITIONS = [
5242
5448
  label: "Zoom Into Book",
5243
5449
  category: "portal",
5244
5450
  description: "Push into book page illustration",
5245
- promptHint: "the camera pushes down into an illustrated page in a book, the illustration grows to fill the frame, and the illustration comes alive as the new scene"
5451
+ promptHint: "the camera pushes down toward the illustrated page of an open book in the frame until the illustration fills the whole picture. The camera travels in one smooth line, without turning or rolling. The drawn picture comes alive, gaining depth, light and movement, and becomes the second shot. The shot ends inside the second shot, real and fully resolved, with no paper, ink lines or page edges left. The camera heads for the page from the start and goes into its illustration"
5246
5452
  },
5247
5453
  {
5248
5454
  id: "walk-through-door",
5249
5455
  label: "Walk Through Doorway",
5250
5456
  category: "portal",
5251
5457
  description: "Through doorway into new scene",
5252
- promptHint: "the camera follows the subject through a doorway, and the space on the other side is the new scene \u2014 different location entirely, lit differently"
5458
+ promptHint: "the camera follows the first subject through a doorway in the frame, moving forward at the subject's pace. The camera travels straight forward, without turning, tilting or rolling. On the far side of the doorway the space is the second shot, a different place in different light. The shot ends in the second shot, fully resolved, with the doorway behind the camera. The change of place happens at the doorway itself, the moment the camera passes through it"
5253
5459
  },
5254
5460
  {
5255
5461
  id: "fall-into-hole",
@@ -5263,7 +5469,7 @@ var TRANSITIONS = [
5263
5469
  label: "Pull-Out Reveal",
5264
5470
  category: "portal",
5265
5471
  description: "Reveals scene was a picture in larger context",
5266
- promptHint: "the camera pulls back rapidly and reveals that the entire first scene was actually contained within a picture, painting, screen, or window in a larger second scene",
5472
+ promptHint: "the camera pulls straight back fast, and the whole first shot shrinks until its edges show as the border of a framed picture inside a larger space. The camera travels back in one smooth line, without turning, tilting or rolling. The larger space around the picture is the second shot, and the first shot stays inside the picture. The shot ends on the second shot, with the first shot visible as a picture within it. The first shot's image stays exactly the same as it shrinks, so it reads as the same picture all along",
5267
5473
  term: "pull-back reveal"
5268
5474
  },
5269
5475
  {
@@ -5271,7 +5477,7 @@ var TRANSITIONS = [
5271
5477
  label: "Zoom Into Mouth",
5272
5478
  category: "portal",
5273
5479
  description: "Push into open mouth, emerges in new world inside",
5274
- promptHint: "the camera pushes into the subject's open mouth, the dark interior fills the frame, and the camera passes through into the new scene which materialises as if emerging from inside the body"
5480
+ promptHint: "the camera pushes straight into the first subject's open mouth until the dark interior fills the whole picture. The camera travels forward in one smooth line, without turning, tilting or rolling. It passes through the darkness, and the second shot emerges out of it. The shot ends inside the second shot, still and fully resolved, with no mouth left in view. The dark interior stays a plain darkness the camera passes through"
5275
5481
  },
5276
5482
  {
5277
5483
  id: "push-through-glass",
@@ -5293,7 +5499,7 @@ var TRANSITIONS = [
5293
5499
  label: "Mask Transition",
5294
5500
  category: "portal",
5295
5501
  description: "Foreground object blacks out the frame, camera pulls through",
5296
- promptHint: "mask transition: a foreground object or a passer-by sweeps across the lens and fills the frame with darkness, the camera keeps travelling forward through the black, then pulls out of the darkness into the new scene",
5502
+ promptHint: "a dark foreground shape sweeps across the lens and fills the frame with black. The camera keeps travelling forward through the black in one smooth line. It emerges from the darkness into the second shot. The shot ends in the second shot, fully resolved, with no dark shape left. The dark shape passes close to the lens and is gone once the second shot appears",
5297
5503
  term: "mask transition"
5298
5504
  },
5299
5505
  {
@@ -5319,7 +5525,7 @@ var TRANSITIONS = [
5319
5525
  label: "Shockwave",
5320
5526
  category: "physics",
5321
5527
  description: "Shockwave ripples across, scene changes",
5322
- promptHint: "a visible shockwave ripples outward across the frame distorting the image, and as the shockwave passes the scene behind it has changed to the new setting"
5528
+ promptHint: "a flash at the exact centre of the frame bursts into a sharp, bright ring that races past every edge in a moment, trailing a smear of motion blur behind its rim and warping the picture as it goes. The camera stays where it is and the picture stays level. The second shot shows only inside the ring and the first only outside it, with the bright ring as the one hard border and no blending anywhere"
5323
5529
  },
5324
5530
  {
5325
5531
  id: "punch-into-camera",
@@ -5328,13 +5534,14 @@ var TRANSITIONS = [
5328
5534
  description: "Fist strikes camera, scene changes",
5329
5535
  promptHint: "a fist or object swings rapidly toward the camera and strikes the lens with motion blur and impact frames, and the moment of impact reveals the new scene"
5330
5536
  },
5331
- {
5537
+ withOptionSlots({
5332
5538
  id: "debris-shower",
5333
5539
  label: "Debris Shower",
5334
5540
  category: "physics",
5335
5541
  description: "Debris flies past, scene changes behind",
5336
- promptHint: "a shower of debris \u2014 leaves, papers, dust \u2014 sweeps across the frame in front of the camera, and once the debris clears the scene behind has changed"
5337
- },
5542
+ promptTemplate: "{style}",
5543
+ options: [DEBRIS_SHOWER_STYLE]
5544
+ }),
5338
5545
  {
5339
5546
  id: "gravity-flip",
5340
5547
  label: "Gravity Flip",
@@ -5347,21 +5554,21 @@ var TRANSITIONS = [
5347
5554
  label: "Building Explosion",
5348
5555
  category: "physics",
5349
5556
  description: "Structure detonates, scene shifts through smoke",
5350
- promptHint: "a large structure in the frame detonates with a massive fireball, debris and dust pluming outward to fill the image, and as the smoke clears the new scene is revealed where the structure used to stand"
5557
+ promptHint: "the largest structure in the frame detonates in a massive fireball, and debris and dust plume outward until they fill the whole picture. The camera stays where it is and the framing does not change. As the dust cloud clears, the second shot is revealed in its place. The shot ends on the second shot, clear and fully resolved, with no dust or debris left. The blast comes from that structure itself, and the second shot appears only as the dust clears"
5351
5558
  },
5352
5559
  {
5353
5560
  id: "vehicle-explosion",
5354
5561
  label: "Vehicle Explosion",
5355
5562
  category: "physics",
5356
5563
  description: "Vehicle detonates in foreground, scene changes behind",
5357
- promptHint: "a vehicle in the foreground erupts in a violent explosion of fire and twisted metal, the fireball expands toward the camera and washes the frame in orange flame, and as the smoke parts the second scene resolves"
5564
+ promptHint: "a vehicle in the frame bursts into a violent explosion of fire and twisted metal, and the fireball billows toward the lens until orange flame fills the whole picture. The camera stays where it is and the framing does not change. The flame gives way to thick smoke, and as the smoke parts the second shot is revealed. The shot ends on the second shot, clear and fully resolved, with no fire or smoke left. The explosion comes from that vehicle itself, and the second shot appears only as the smoke parts"
5358
5565
  },
5359
5566
  {
5360
5567
  id: "jump-match",
5361
5568
  label: "Jump Match",
5362
5569
  category: "physics",
5363
5570
  description: "Subject jumps, landing matches into new scene",
5364
- promptHint: "the subject jumps upward and out of frame at the end of the first shot, with matched velocity the camera follows the arc, and on landing the subject is in a new location seamlessly continuing the same jump",
5571
+ promptHint: "the subject launches into a jump, and at the height of the leap the picture cuts to a new place. The camera follows the arc of the jump at the same speed on both sides of the cut, and the subject stays at the same place in the frame. In the second shot the same jump carries on without a break, and the subject comes down and lands in the new place. The shot ends on the subject landed in the second shot, fully resolved",
5365
5572
  term: "match cut on a jump",
5366
5573
  instant: true
5367
5574
  },
@@ -5384,13 +5591,14 @@ var TRANSITIONS = [
5384
5591
  // ============================================================================
5385
5592
  // LIGHT — 8 entries — flash and lens FX
5386
5593
  // ============================================================================
5387
- {
5594
+ withOptionSlots({
5388
5595
  id: "white-flash",
5389
5596
  label: "White Flash",
5390
5597
  category: "light",
5391
5598
  description: "Frame blooms to white",
5392
- promptHint: "a bright camera-flash bloom fills the frame with pure white, holds for a fraction of a second, then resolves into the new scene"
5393
- },
5599
+ promptTemplate: "{style}",
5600
+ options: [WHITE_FLASH_STYLE]
5601
+ }),
5394
5602
  {
5395
5603
  id: "lens-flare-swipe",
5396
5604
  label: "Lens Flare Swipe",
@@ -5410,21 +5618,21 @@ var TRANSITIONS = [
5410
5618
  label: "Color Invert Flash",
5411
5619
  category: "light",
5412
5620
  description: "Colors invert briefly",
5413
- promptHint: "colors invert across the entire frame to their negative for a single beat, and when the colors snap back the scene has changed to the new setting"
5621
+ promptHint: "the colours of the whole picture turn to their photographic negative in an instant. The camera stays where it is and the framing does not change. The negative holds for a single beat, and when the colours snap back to normal the second shot is in place. The shot ends on the second shot in natural colour, fully resolved. The change of shot happens while the picture is in negative, and the picture stays upright and in place throughout"
5414
5622
  },
5415
5623
  {
5416
5624
  id: "sun-glare",
5417
5625
  label: "Sun Glare",
5418
5626
  category: "light",
5419
5627
  description: "Sun glare washes frame",
5420
- promptHint: "intense sun glare overwhelms the lens with bright lens flares and bloom that wash out the frame, and as the glare dissipates the new scene resolves"
5628
+ promptHint: "intense warm glare floods the lens from one corner of the frame, blooming and scattering flares until the whole picture is washed out to a bright haze. The camera stays where it is and the framing does not change. As the glare fades, the second shot emerges through the haze. The shot ends on the second shot, clear and fully resolved, with no glare left. The glare comes from the lens itself, and the second shot appears only as the haze clears"
5421
5629
  },
5422
5630
  {
5423
5631
  id: "lens-crack",
5424
5632
  label: "Lens Crack",
5425
5633
  category: "light",
5426
5634
  description: "Lens cracks, scene through fractured glass",
5427
- promptHint: "a hairline crack races diagonally across the camera lens with a sharp visual snap, multiple fracture lines branch outward, and the second scene resolves through the cracked glass before the fractures fade away"
5635
+ promptHint: "a hairline crack snaps diagonally across the lens and branches into a web of fracture lines that spreads over the whole picture. The camera stays where it is and the framing does not change. Seen through the cracks, the first shot gives way to the second shot, and then the fracture lines fade away. The shot ends on the second shot, clear and fully resolved, with no cracks left. The cracks form on the lens itself, while everything behind them stays whole"
5428
5636
  },
5429
5637
  {
5430
5638
  id: "dirty-lens-wipe",
@@ -5462,14 +5670,14 @@ var TRANSITIONS = [
5462
5670
  label: "Datamosh",
5463
5671
  category: "glitch",
5464
5672
  description: "Motion-vector smear bleeds scenes",
5465
- promptHint: "datamosh transition: the motion vectors of the first scene continue smearing into the pixels of the second scene, creating a fluid pixel-bleed handoff"
5673
+ promptHint: "datamosh transition: the first shot's pixels tear loose in square compression blocks and slide sideways across the frame in long smeared streaks. The camera stays where it is and the framing does not change. The blocks pile up into the shapes of the second shot, still in the first shot's colours, until the true colours snap in block by block. The shot ends on the second shot, sharp and fully resolved, with no smears or blocks left. The smear covers the whole frame"
5466
5674
  },
5467
5675
  {
5468
5676
  id: "channel-flip",
5469
5677
  label: "Channel Flip",
5470
5678
  category: "glitch",
5471
5679
  description: "TV channel flip with static",
5472
- promptHint: "a brief burst of TV static and channel-flip artifacts sweeps the frame, and the new scene resolves as if changing channels on an old television",
5680
+ promptHint: "the whole picture breaks into a brief burst of black-and-white static, the image jumping and tearing as if the channel were being changed. The camera stays where it is and the framing does not change. The static clears as quickly as it came, and the second shot snaps in, steady, like the next channel. The shot ends on the second shot, clean and fully resolved, with no static left. The static covers the whole frame, so the picture itself is what changes channel",
5473
5681
  term: "tv channel flip with static"
5474
5682
  },
5475
5683
  {
@@ -5477,14 +5685,14 @@ var TRANSITIONS = [
5477
5685
  label: "Hologram Flicker",
5478
5686
  category: "glitch",
5479
5687
  description: "Hologram-style flicker materialises new scene",
5480
- promptHint: "a hologram-style flicker with horizontal interference bands and chromatic aberration overtakes the frame for a beat, and resolves into the new scene as if it materialised from a projection"
5688
+ promptHint: "the first shot breaks into thin lines of cyan light that flicker out from the top down, leaving the frame black. The camera stays where it is and the framing does not change. A bright scan line sweeps down and draws the second shot behind it in flickering cyan lines that steady into natural colour. The shot ends on the second shot, solid and fully resolved, with no scan lines left. The second shot is drawn only on black, never over the first shot"
5481
5689
  },
5482
5690
  {
5483
5691
  id: "display-wipe",
5484
5692
  label: "Display Wipe",
5485
5693
  category: "glitch",
5486
5694
  description: "Scene compresses into display, expands to new scene",
5487
- promptHint: "the first scene compresses into a small floating display screen at the center of the frame with a CRT power-on/off animation and scanline flicker, the display then expands outward and unfolds into the new scene full-frame",
5695
+ promptHint: "the whole first shot shrinks toward the centre of the frame into a small glowing rectangle, then collapses to a bright line and a dot as if its power were cut. The camera stays where it is and the framing does not change. From the dot a line snaps open and widens into a rectangle showing the second shot, which grows until it fills the frame. The shot ends on the second shot, full frame and fully resolved, with no border or scanlines left. The picture itself shrinks and grows on a black field, with the camera holding still throughout",
5488
5696
  term: "compress into a screen and expand out"
5489
5697
  },
5490
5698
  {
@@ -5492,7 +5700,7 @@ var TRANSITIONS = [
5492
5700
  label: "Double Exposure",
5493
5701
  category: "glitch",
5494
5702
  description: "Two scenes overlay translucent, first fades to second",
5495
- promptHint: "the first and second scenes blend as a translucent double exposure where both images coexist semi-transparently on the frame, the first image then gradually fades out leaving the second image fully resolved"
5703
+ promptHint: "the first subject becomes a crisp silhouette filled solid with the second shot, while the rest of the first shot stays untouched around it. The camera stays where it is and the framing does not change. The silhouette holds for a clear beat, both pictures plainly seen at once, then the first shot around it gives way to the second shot. The shot ends on the second shot alone, fully resolved"
5496
5704
  }
5497
5705
  ];
5498
5706
  var TRANSITION_CATEGORY_ORDER = [
@@ -5528,8 +5736,27 @@ function getTransitionLabel(id, fallback) {
5528
5736
  if (fallback !== void 0) return fallback;
5529
5737
  return (id ?? "").replace(/-/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
5530
5738
  }
5531
- function getTransitionPromptHint(id) {
5532
- return getTransition(id)?.promptHint ?? "";
5739
+ function getTransitionPromptHint(id, values2) {
5740
+ const t = getTransition(id);
5741
+ if (!t) return "";
5742
+ if (!values2 || !t.promptTemplate || !t.options?.length) return t.promptHint;
5743
+ if (t.promptHint !== fillOptionSlots(t.promptTemplate, t.options)) return t.promptHint;
5744
+ return fillOptionSlots(t.promptTemplate, t.options, values2);
5745
+ }
5746
+ function getTransitionOptions(id) {
5747
+ return getTransition(id)?.options ?? [];
5748
+ }
5749
+ var TRANSITION_OPTION_FIELDS = Array.from(
5750
+ new Set(TRANSITIONS.flatMap((t) => (t.options ?? []).map((o) => o.field)))
5751
+ );
5752
+ function readTransitionOptionValues(data) {
5753
+ if (!data) return void 0;
5754
+ const out = {};
5755
+ for (const field of TRANSITION_OPTION_FIELDS) {
5756
+ const v = data[field];
5757
+ if (typeof v === "string" && v.length > 0) out[field] = v;
5758
+ }
5759
+ return Object.keys(out).length > 0 ? out : void 0;
5533
5760
  }
5534
5761
  function getTransitionTerm(id) {
5535
5762
  return resolveTerm(getTransition(id));
@@ -5543,21 +5770,21 @@ function isInstantTransition(id) {
5543
5770
  var INSTANT_CUT_CLAUSE = "an abrupt single-frame hard cut, no dissolve, crossfade or superimposition; the two images never blend";
5544
5771
  var LEADING_LABEL = /^\s*((?:[^\s:,;.()]+\s+){0,4}[^\s:,;.()]+)\s*:\s+/;
5545
5772
  var normalizePhrase = (s) => s.trim().toLowerCase().replace(/\s+/g, " ");
5546
- function transitionHintBody(id, term) {
5547
- const hint = getTransitionPromptHint(id).replace(LEADING_LABEL, "").trim();
5773
+ function transitionHintBody(id, term, values2) {
5774
+ const hint = getTransitionPromptHint(id, values2).replace(LEADING_LABEL, "").trim();
5548
5775
  const t = normalizePhrase(term);
5549
5776
  return hint.split(/,\s*/).filter((item) => normalizePhrase(item) !== t).join(", ").trim();
5550
5777
  }
5551
- function transitionFragment(id, withCutClause) {
5778
+ function transitionFragment(id, withCutClause, values2) {
5552
5779
  const term = getTransitionTerm(id);
5553
5780
  if (!term) return "";
5554
- const inner = [transitionHintBody(id, term), withCutClause ? INSTANT_CUT_CLAUSE : ""].filter((part) => part.length > 0).join("; ");
5781
+ const inner = [transitionHintBody(id, term, values2), withCutClause ? INSTANT_CUT_CLAUSE : ""].filter((part) => part.length > 0).join("; ");
5555
5782
  return inner.length > 0 && normalizePhrase(inner) !== normalizePhrase(term) ? `${term} (${inner})` : term;
5556
5783
  }
5557
- function renderTransitionBases(ids, _mode = "full") {
5784
+ function renderTransitionBases(ids, _mode = "full", values2) {
5558
5785
  const picked = ids.filter((id) => getTransitionTerm(id).length > 0);
5559
5786
  const instant = isInstantTransition(picked);
5560
- return picked.map((id, i) => transitionFragment(id, instant && i === 0));
5787
+ return picked.map((id, i) => transitionFragment(id, instant && i === 0, values2));
5561
5788
  }
5562
5789
  var TRANSITION_POSITIONS = [
5563
5790
  { id: "auto", label: "Auto", description: "Let the model place it", promptHint: "", term: "" },
@@ -5596,7 +5823,7 @@ var DURATION_CLAUSES = clausesOf(TRANSITION_DURATIONS);
5596
5823
  var INTENSITY_CLAUSES = clausesOf(TRANSITION_INTENSITIES);
5597
5824
  function composeTransitionHintFromConnections(transitionId, startHints, endHints, timing, mode = "full", options) {
5598
5825
  const ids = Array.isArray(transitionId) ? Array.from(new Set(transitionId)).slice(0, 2) : transitionId ? [transitionId] : [];
5599
- const baseHints = renderTransitionBases(ids, mode);
5826
+ const baseHints = renderTransitionBases(ids, mode, options?.optionValues);
5600
5827
  if (baseHints.length === 0) return "";
5601
5828
  const instant = isInstantTransition(ids.filter((id) => getTransitionTerm(id).length > 0));
5602
5829
  const combinedBase = baseHints.join(", and ");
@@ -17043,6 +17270,2695 @@ var MATERIAL_CATEGORY_ORDER = [
17043
17270
  "exotic"
17044
17271
  ];
17045
17272
 
17273
+ // src/picker-art/look-preview-sets.ts
17274
+ var LOOK_PREVIEW_SETS = {
17275
+ "style": {
17276
+ "3d-render": "https://cdn.nodaro.ai/images/c0f46e9b-25f7-4a7d-b66a-2c5065dfc296.png",
17277
+ anime: "https://cdn.nodaro.ai/images/611eb595-5d4b-4e4a-afdf-70fd276fdf4b.png",
17278
+ "children-book": "https://cdn.nodaro.ai/images/9564a952-51f9-4438-a4ac-e3aa85a93a10.png",
17279
+ cinematic: "https://cdn.nodaro.ai/images/1dcc40b2-8833-470f-8625-7e239ee241ed.png",
17280
+ "comic-book": "https://cdn.nodaro.ai/images/ea428565-343e-4e64-9b78-ef56511109e5.png",
17281
+ "digital-art": "https://cdn.nodaro.ai/images/dc47008c-c652-4401-8afe-0ab3a002985e.png",
17282
+ fantasy: "https://cdn.nodaro.ai/images/f34d4f7d-ce95-4a11-a9c9-c3b9437a7a99.png",
17283
+ minimalist: "https://cdn.nodaro.ai/images/94e42dc0-912c-450f-b056-4b0276bed754.png",
17284
+ noir: "https://cdn.nodaro.ai/images/9dd5bc91-1240-48f1-88e9-84e7892ad82c.png",
17285
+ "oil-painting": "https://cdn.nodaro.ai/images/f6181fc9-76fd-438f-a0bb-ae264f196b43.png",
17286
+ "pencil-sketch": "https://cdn.nodaro.ai/images/d397a468-7c6d-4833-b97f-944c1a671344.png",
17287
+ photorealistic: "https://cdn.nodaro.ai/images/a313ff29-176f-4a6e-be86-c714c7b5cc72.png",
17288
+ "pixel-art": "https://cdn.nodaro.ai/images/23416a3c-c6f8-4b01-bea6-9d921e21f6e6.png",
17289
+ "pop-art": "https://cdn.nodaro.ai/images/efdf4120-bb1e-4af2-87fe-6caca5d538ac.png",
17290
+ "retro-vintage": "https://cdn.nodaro.ai/images/adc1d6cb-e122-4242-b367-b749cdd16940.png",
17291
+ watercolor: "https://cdn.nodaro.ai/images/edff0eac-3cf7-48b1-bec7-238e0d6f9dfb.png",
17292
+ "concept-art": "https://cdn.nodaro.ai/images/534241d5-23f0-4e20-a6b2-214b62dee427.png",
17293
+ impressionism: "https://cdn.nodaro.ai/images/ba71184d-84ec-48cc-8cce-446db0805ca4.png",
17294
+ surrealism: "https://cdn.nodaro.ai/images/1a82c203-729b-4021-b34b-97e425c3c19c.png",
17295
+ cyberpunk: "https://cdn.nodaro.ai/images/22c4757e-755a-4b10-8f32-c7248eddcc3d.png",
17296
+ steampunk: "https://cdn.nodaro.ai/images/c129c819-3a1f-4519-a1f7-e9e82c6c5a8b.png",
17297
+ vaporwave: "https://cdn.nodaro.ai/images/d8935953-39d2-4c2b-9d29-a5cd688c7e38.png",
17298
+ "low-poly": "https://cdn.nodaro.ai/images/15b1d1a7-0073-4dfd-b5cd-d40613afee04.png",
17299
+ "ink-wash": "https://cdn.nodaro.ai/images/2c1b25dc-2ab0-4106-beb0-5391231e9d42.png",
17300
+ isometric: "https://cdn.nodaro.ai/images/773d59bc-5d0e-4843-8d93-0396b9334ad2.png",
17301
+ "flat-vector": "https://cdn.nodaro.ai/images/aabf2c35-28fe-4a36-bb05-d9e95d117a70.png",
17302
+ "ukiyo-e": "https://cdn.nodaro.ai/images/f663559f-3890-4d3f-bc6c-d08c888caa55.png",
17303
+ graffiti: "https://cdn.nodaro.ai/images/3616c5af-0386-43d9-8a6e-6ca9566ec52b.png",
17304
+ claymation: "https://cdn.nodaro.ai/images/b58317a3-2a30-4f25-abfe-b6b8ef8827a1.png",
17305
+ "glitch-art": "https://cdn.nodaro.ai/images/9774491e-2ca0-4584-9ef9-7a0e9b9e1b9e.png",
17306
+ "ascii-art": "https://cdn.nodaro.ai/images/090e407a-f486-4e76-aea2-b4c75105ae84.png",
17307
+ blueprint: "https://cdn.nodaro.ai/images/ab07abf7-05fb-4b95-b3b2-bf98629a875e.png",
17308
+ "stained-glass": "https://cdn.nodaro.ai/images/e9be8a96-8327-43b9-892c-017118155562.png",
17309
+ chalkboard: "https://cdn.nodaro.ai/images/2250ed18-55b8-4ff7-9f5f-17a8db8a53c8.png",
17310
+ "paper-cutout": "https://cdn.nodaro.ai/images/9cdcb351-5f46-49f0-8016-5595e9a55fa1.png",
17311
+ illuminated: "https://cdn.nodaro.ai/images/471bffc4-e764-44ab-97b4-46c0d5652af8.png",
17312
+ "pixar-3d": "https://cdn.nodaro.ai/images/8050d399-cf0e-46de-8770-d48c2e444898.png",
17313
+ caricature: "https://cdn.nodaro.ai/images/ffd49a16-4a41-40de-92ff-d6d231ef6d53.png",
17314
+ fresco: "https://cdn.nodaro.ai/images/0a4389e0-4038-40c4-b055-6d4346f04cf6.png",
17315
+ mosaic: "https://cdn.nodaro.ai/images/de4855e9-4bc6-4967-ac60-b1ad63ceb748.png",
17316
+ woodcut: "https://cdn.nodaro.ai/images/f5b381eb-63cd-4fc0-9623-9e0cc39f0ec9.png",
17317
+ etching: "https://cdn.nodaro.ai/images/e54ace76-56b4-4dd6-8dfc-48b743234b98.png",
17318
+ lithograph: "https://cdn.nodaro.ai/images/6b04aa8a-9cf8-401c-a337-0ceeffa85783.png",
17319
+ charcoal: "https://cdn.nodaro.ai/images/218d0e69-ef00-4735-9441-c4462c197688.png",
17320
+ pastel: "https://cdn.nodaro.ai/images/6a1a90ae-c9ea-4f2e-842b-f5572215a373.png",
17321
+ "acrylic-paint": "https://cdn.nodaro.ai/images/23191845-ef25-4152-8877-2e63daf2f2ac.png",
17322
+ "mixed-media": "https://cdn.nodaro.ai/images/d36ab150-9cd6-47ac-bdd9-3b26990a4fa9.png",
17323
+ manga: "https://cdn.nodaro.ai/images/3d6bbfd8-8c62-4769-b62e-11d2a7e43b4b.png"
17324
+ },
17325
+ "color-look": {
17326
+ warm: "https://cdn.nodaro.ai/images/8511a1bc-3d3b-46a8-adc0-26fcc9e93a4b.png",
17327
+ cool: "https://cdn.nodaro.ai/images/99cff1f4-ad81-4f54-b43d-a6e7c85a2e0f.png",
17328
+ "teal-orange": "https://cdn.nodaro.ai/images/b6539da8-82aa-4e33-a04d-8e4d2830fad8.png",
17329
+ "split-toning": "https://cdn.nodaro.ai/images/051e9b4d-c864-4102-a683-15432c01cd3a.png",
17330
+ "selective-color": "https://cdn.nodaro.ai/images/87837101-dc0b-47c1-8a21-97566677494b.png",
17331
+ "faded-matte": "https://cdn.nodaro.ai/images/67fe86ce-9ad7-442d-851c-edca6f01db61.png",
17332
+ "log-flat": "https://cdn.nodaro.ai/images/585b9684-7ad3-4448-9210-f6f0ae2e1db8.png",
17333
+ desaturated: "https://cdn.nodaro.ai/images/b9b6520e-82de-4d14-8ba7-d5e3840242e0.png",
17334
+ "monochrome-bw": "https://cdn.nodaro.ai/images/2aa2959b-8b64-49b2-92b9-cb53ad4d0707.png",
17335
+ sepia: "https://cdn.nodaro.ai/images/582f5427-3d6c-469e-9967-e48c6b0c038b.png",
17336
+ pastel: "https://cdn.nodaro.ai/images/2c147c8b-2d38-4e12-9031-42ebf4c177f5.png",
17337
+ "high-contrast": "https://cdn.nodaro.ai/images/cd9e3a3a-3059-4c74-98a3-b01252f1b759.png",
17338
+ vibrant: "https://cdn.nodaro.ai/images/f1bee489-eedb-437e-a111-6d613c1c5c7b.png",
17339
+ "kodak-portra": "https://cdn.nodaro.ai/images/8804bc8e-a88b-4088-ab06-161f85132418.png",
17340
+ "kodak-ektar": "https://cdn.nodaro.ai/images/e30bb737-e94c-464f-ae25-c59e61157d2d.png",
17341
+ "kodak-vision3": "https://cdn.nodaro.ai/images/3133be3d-35de-4810-bf2e-02f64a43efa5.png",
17342
+ "fuji-pro-400h": "https://cdn.nodaro.ai/images/dbd14e16-9932-4461-a3a8-1b5b436628c5.png",
17343
+ "cinestill-800t": "https://cdn.nodaro.ai/images/e677eb71-9ffd-45e8-b03c-427eacac5733.png",
17344
+ "bleach-bypass": "https://cdn.nodaro.ai/images/da2c3153-f8a2-427d-b4a6-3264716e8833.png",
17345
+ technicolor: "https://cdn.nodaro.ai/images/274c86c5-0fa0-483b-a831-0aba6845d80a.png",
17346
+ "two-strip-technicolor": "https://cdn.nodaro.ai/images/de62cc14-7ae6-468c-bc75-a841a7f3ad83.png",
17347
+ "eastman-color": "https://cdn.nodaro.ai/images/7cc87700-6d94-4b63-a9bf-0d4665164eb2.png",
17348
+ "hand-tinted": "https://cdn.nodaro.ai/images/1ce94366-073a-4840-b95b-a946b736dc25.png",
17349
+ "agfa-orwo": "https://cdn.nodaro.ai/images/861e5e24-9fc5-489c-82c2-39b0ecaccdfb.png",
17350
+ "day-for-night": "https://cdn.nodaro.ai/images/7e150f10-1dec-4797-af51-308de411e3e1.png",
17351
+ "cross-processed": "https://cdn.nodaro.ai/images/02e06b80-86f8-4df8-a66c-f1309b7fc35f.png",
17352
+ "kodachrome-64": "https://cdn.nodaro.ai/images/11e43274-57fd-49c6-8a79-f435df18acfa.png",
17353
+ "ektachrome-100": "https://cdn.nodaro.ai/images/923670d0-8769-466a-97f5-5edfca45772d.png",
17354
+ "kodak-tri-x-400": "https://cdn.nodaro.ai/images/bb0a4e49-0096-425f-9069-cc8e918032ac.png",
17355
+ aerochrome: "https://cdn.nodaro.ai/images/39dbb701-b848-47c6-a2a5-2b0bc462fbf8.png",
17356
+ "fuji-instax": "https://cdn.nodaro.ai/images/ed48b1bc-e20b-4efb-830d-850b9133482e.png",
17357
+ "cinestill-50d": "https://cdn.nodaro.ai/images/084c6185-7303-4c53-ac7a-7eb3e141f2f9.png",
17358
+ "expired-film": "https://cdn.nodaro.ai/images/c5fbbc8b-5d9f-428d-8f8a-168114ac2199.png",
17359
+ "instagram-warm": "https://cdn.nodaro.ai/images/ef3d3bda-cbf1-4328-9a70-e339dee7bf51.png",
17360
+ "tiktok-saturated": "https://cdn.nodaro.ai/images/97bcc6e5-7089-4fc8-a1e6-54d7e58de59a.png",
17361
+ "youtube-vlog-flat": "https://cdn.nodaro.ai/images/72022437-4f6e-4b0b-9d35-1b0eb937d7a8.png",
17362
+ "iphone-hdr": "https://cdn.nodaro.ai/images/546e2b9e-f163-4021-a2c2-634e2efc09d2.png",
17363
+ "y2k-saturated": "https://cdn.nodaro.ai/images/452fa094-4154-47e8-92a5-6f9d1fbf2680.png",
17364
+ "mtv-90s-vhs": "https://cdn.nodaro.ai/images/4ece53ce-2d1d-41cd-9815-c4ee7e22c579.png",
17365
+ "polaroid-faded": "https://cdn.nodaro.ai/images/e97229c0-5117-4017-87d5-b1e09c8961d1.png",
17366
+ "lifestyle-warm-magazine": "https://cdn.nodaro.ai/images/5c215af2-98b1-4196-bf1a-74007bd2beca.png"
17367
+ },
17368
+ "era": {
17369
+ "1920s-flapper": "https://cdn.nodaro.ai/images/3982f52e-9261-40b1-a8fb-61cb1c03e022.png",
17370
+ "1930s-art-deco": "https://cdn.nodaro.ai/images/05f3c0cb-c5ec-4e54-b20d-e1b1ef0d4641.png",
17371
+ "1940s-wartime": "https://cdn.nodaro.ai/images/902bfc0e-aa5a-41d6-985f-25f0ffff80c1.png",
17372
+ "1950s-diner": "https://cdn.nodaro.ai/images/0675491a-a34c-4c0a-9e05-88546bd50e31.png",
17373
+ "atomic-age-50s": "https://cdn.nodaro.ai/images/f0663b89-648e-40c7-901f-b866d9426ce9.png",
17374
+ "1960s-mod": "https://cdn.nodaro.ai/images/929b1d51-b69f-4292-a11f-7dcc9123c877.png",
17375
+ "1970s-disco": "https://cdn.nodaro.ai/images/e8a915dc-8855-4d7c-b07b-b6f2797eba3d.png",
17376
+ "1980s-neon": "https://cdn.nodaro.ai/images/a9f7c56c-ec8a-4985-8fe3-de4f150ea664.png",
17377
+ "1990s-mall": "https://cdn.nodaro.ai/images/b6a957ea-ecad-45bb-8818-f1d5a1efa9bc.png",
17378
+ "2000s-y2k": "https://cdn.nodaro.ai/images/dd00da33-4772-4c18-826b-304504966ef4.png",
17379
+ "gen-z-2020s": "https://cdn.nodaro.ai/images/3bb102c0-ed9c-4a39-82c1-3733ae39f6bf.png",
17380
+ medieval: "https://cdn.nodaro.ai/images/f8fc069f-1d2c-4b01-85bc-27c618a841c4.png",
17381
+ renaissance: "https://cdn.nodaro.ai/images/2e386af4-7f66-4804-b329-d3c3d74cb9fe.png",
17382
+ victorian: "https://cdn.nodaro.ai/images/fa0c0db0-c260-422e-8f22-07ad82f81f71.png",
17383
+ edwardian: "https://cdn.nodaro.ai/images/3858996a-5747-40fb-9f18-be947b178a39.png",
17384
+ "wild-west": "https://cdn.nodaro.ai/images/d99237a5-218f-4540-9a05-2699ad03f2b5.png",
17385
+ "ancient-rome": "https://cdn.nodaro.ai/images/59524682-3031-4ce4-8b22-89ebaa31eab3.png",
17386
+ "ancient-egypt": "https://cdn.nodaro.ai/images/7ac3eca4-eed7-44d8-a98e-c8a752163d19.png",
17387
+ "feudal-japan": "https://cdn.nodaro.ai/images/65e20d34-c572-46ff-9ba5-394f647469c4.png",
17388
+ "fin-de-siecle": "https://cdn.nodaro.ai/images/f70a9700-70b2-4345-b0ab-20732b8404c7.png",
17389
+ "roaring-prewar": "https://cdn.nodaro.ai/images/54c5e57d-0207-4a85-8c7f-8c2d0bead46a.png",
17390
+ "near-future": "https://cdn.nodaro.ai/images/0d7dc860-abb4-4bfb-9fd6-b0d58676d3c3.png",
17391
+ "far-future": "https://cdn.nodaro.ai/images/8656b10e-6f9e-49ce-a9e9-931671a102ab.png",
17392
+ dieselpunk: "https://cdn.nodaro.ai/images/d7028ee4-5e69-4279-a285-8d0b6fb10221.png",
17393
+ atompunk: "https://cdn.nodaro.ai/images/8be7b7a1-72ad-4d1e-b47b-1da9cf946702.png",
17394
+ "cyberpunk-future": "https://cdn.nodaro.ai/images/0f103853-bf20-409e-8a81-b220d16346bc.png",
17395
+ "post-apocalyptic": "https://cdn.nodaro.ai/images/b5ab4697-d539-4a77-bcaf-3c407a44f9da.png",
17396
+ retrofuturism: "https://cdn.nodaro.ai/images/d80f31c9-bc71-4e45-a1d0-c7cd81d7c7f3.png"
17397
+ },
17398
+ "lens": {
17399
+ "ultra-wide-14mm": "https://cdn.nodaro.ai/images/45eba250-e883-4436-9b46-75b9c3daafd3.png",
17400
+ "wide-24mm": "https://cdn.nodaro.ai/images/37d6f16c-81ad-42b6-baca-7073b49883e5.png",
17401
+ "standard-35mm": "https://cdn.nodaro.ai/images/e15be97f-66df-435c-a88d-2054ec90820f.png",
17402
+ "normal-50mm": "https://cdn.nodaro.ai/images/2dff5ea9-d167-49fb-8568-1214ce1f7495.png",
17403
+ "portrait-85mm": "https://cdn.nodaro.ai/images/375c4462-34f5-4b57-8eed-835674c68fd7.png",
17404
+ "telephoto-135mm": "https://cdn.nodaro.ai/images/eaa95302-5fea-42d5-94d9-134fd05d43ea.png",
17405
+ "super-telephoto-400mm": "https://cdn.nodaro.ai/images/098339a1-e7a3-48aa-9518-00c74e96dfab.png",
17406
+ fisheye: "https://cdn.nodaro.ai/images/e15d627a-e893-4b56-9273-d0a0f53495ba.png",
17407
+ anamorphic: "https://cdn.nodaro.ai/images/de4c4534-0e6e-4f65-97ac-e072413292f9.png",
17408
+ macro: "https://cdn.nodaro.ai/images/4c6d4a62-af22-4a76-a252-8fe4d7ad8255.png",
17409
+ probe: "https://cdn.nodaro.ai/images/9b4731b8-f171-4a4c-80fc-c3c8528e0f2c.png",
17410
+ cctv: "https://cdn.nodaro.ai/images/673b96c1-0319-44dd-8c56-e9f4e1cc811a.png",
17411
+ "tilt-shift": "https://cdn.nodaro.ai/images/c29fa871-18df-4f25-be40-0a69a5b04026.png",
17412
+ "shallow-dof": "https://cdn.nodaro.ai/images/8981a476-1b4b-437c-a442-2c5f00761b6f.png",
17413
+ "canon-k35": "https://cdn.nodaro.ai/images/56672c8c-5831-4489-995b-766b0f96c038.png",
17414
+ "cooke-s4": "https://cdn.nodaro.ai/images/bc59af17-031c-4ed4-b3ef-f0e1c4d61d08.png",
17415
+ "helios-44": "https://cdn.nodaro.ai/images/ef5e6b83-c6ef-45f6-a03b-bc5676a5aa5b.png",
17416
+ petzval: "https://cdn.nodaro.ai/images/b1e28aad-edd5-404b-8706-e72060f407ee.png"
17417
+ },
17418
+ "mood": {
17419
+ happy: "https://cdn.nodaro.ai/images/710df65a-3c1e-485b-b8b7-29f7b3baf479.png",
17420
+ joyful: "https://cdn.nodaro.ai/images/a550b63e-1db7-448e-990e-6c14225db77f.png",
17421
+ relieved: "https://cdn.nodaro.ai/images/fc48f8c6-dbd4-41e9-bbb2-75607d17d61a.png",
17422
+ serene: "https://cdn.nodaro.ai/images/1e23547e-f3d5-42a0-9693-ab4e51a91ee7.png",
17423
+ playful: "https://cdn.nodaro.ai/images/71e21749-8975-44a3-88c2-1154693470b2.png",
17424
+ confident: "https://cdn.nodaro.ai/images/952987ee-83e1-470a-bdda-110f040760d4.png",
17425
+ loving: "https://cdn.nodaro.ai/images/b68eb347-8303-4a25-9bfa-06bd13a7168a.png",
17426
+ amused: "https://cdn.nodaro.ai/images/c0fca3dd-9eca-4f69-aec5-3f493eda10e1.png",
17427
+ smirking: "https://cdn.nodaro.ai/images/27214fff-a7e2-4233-9089-a423f5a26b21.png",
17428
+ eccentric: "https://cdn.nodaro.ai/images/84bdb6ab-772d-4063-b99c-e2d8af599eee.png",
17429
+ hopeful: "https://cdn.nodaro.ai/images/9550cbd6-1577-4e30-beee-c41c02cd0402.png",
17430
+ sad: "https://cdn.nodaro.ai/images/66223dc0-9fae-414f-a217-f2a59418353f.png",
17431
+ angry: "https://cdn.nodaro.ai/images/a575e3cc-7850-43bb-b6bf-4dd49b54b9d4.png",
17432
+ afraid: "https://cdn.nodaro.ai/images/d7ca91ea-c2c5-4df8-a759-95da0f763dc6.png",
17433
+ anxious: "https://cdn.nodaro.ai/images/d02266c8-4957-43ea-8684-54edaa362e78.png",
17434
+ melancholy: "https://cdn.nodaro.ai/images/3752502c-6afb-4189-b1a6-ac352fc6ff80.png",
17435
+ devastated: "https://cdn.nodaro.ai/images/b46d301a-2174-49f1-9a76-f195839f7171.png",
17436
+ grieving: "https://cdn.nodaro.ai/images/c97c52be-1f43-4cbd-a7ee-79a17f29b0b8.png",
17437
+ "caught-off-guard": "https://cdn.nodaro.ai/images/f3baeab0-2389-42ce-8717-fc483b9adad3.png",
17438
+ aloof: "https://cdn.nodaro.ai/images/96ef8281-e931-4849-bb45-37f712676056.png",
17439
+ vulnerable: "https://cdn.nodaro.ai/images/f05343b4-e6ec-456b-bfdc-f47bf0d89965.png",
17440
+ coy: "https://cdn.nodaro.ai/images/0505ea50-c03a-4367-8ebd-4cdaac72a473.png",
17441
+ bored: "https://cdn.nodaro.ai/images/b8303e13-085e-45b7-8966-4b7379b5c4b7.png",
17442
+ embarrassed: "https://cdn.nodaro.ai/images/b6c426e6-efa8-4a2d-8b4a-bd56013ae7ae.png",
17443
+ disgusted: "https://cdn.nodaro.ai/images/e60d81e7-c8db-47de-875c-83d34347352c.png",
17444
+ bewildered: "https://cdn.nodaro.ai/images/6020b288-515e-4299-a341-b60a4ceebb8c.png",
17445
+ thoughtful: "https://cdn.nodaro.ai/images/73b14a16-ca63-4de2-91f2-d8d2a96ab669.png",
17446
+ stoic: "https://cdn.nodaro.ai/images/3d8a8240-3696-4b6b-a2b9-8618d153eff4.png",
17447
+ calm: "https://cdn.nodaro.ai/images/7d5c62d7-96a1-49e9-8a77-6c2f99922f72.png",
17448
+ curious: "https://cdn.nodaro.ai/images/4b1f6ea3-a2ab-4e4a-840a-19389b0f668b.png",
17449
+ mysterious: "https://cdn.nodaro.ai/images/88c84305-5b99-405a-86a7-2a69132b24a9.png",
17450
+ dazed: "https://cdn.nodaro.ai/images/47c07bbd-fcbf-4684-8755-4a25244a8035.png",
17451
+ sleepy: "https://cdn.nodaro.ai/images/97387a98-ad4d-493f-922c-b73f6a45408e.png",
17452
+ unbothered: "https://cdn.nodaro.ai/images/5b99a9bc-c3ec-4415-85c8-400b19e9cbb8.png",
17453
+ fierce: "https://cdn.nodaro.ai/images/d935807e-660c-47fc-8e5a-9048d0fe7cbb.png",
17454
+ determined: "https://cdn.nodaro.ai/images/8df47771-0f4e-4762-b51f-f896e9c92eb3.png",
17455
+ passionate: "https://cdn.nodaro.ai/images/c94b64f3-b1c1-4e2a-adb5-5c9f8a15d673.png",
17456
+ brooding: "https://cdn.nodaro.ai/images/1d71dbfa-bce2-4c28-985f-9f3a5fe9c74e.png",
17457
+ seductive: "https://cdn.nodaro.ai/images/b88b3e2d-c87d-4c61-b5d9-5f7ded19b3e8.png",
17458
+ defiant: "https://cdn.nodaro.ai/images/2ceb8a7f-653b-4e2f-bb06-c718cde96a5b.png",
17459
+ sultry: "https://cdn.nodaro.ai/images/57a1b8e2-0600-4cfe-b836-d26484b2a952.png",
17460
+ smoldering: "https://cdn.nodaro.ai/images/eda9d2bf-3d33-4784-8039-a41cab0a3912.png",
17461
+ sinister: "https://cdn.nodaro.ai/images/2a0e4f94-c0c2-4bc7-a842-bd1f074f3863.png",
17462
+ "wiccan-mystical": "https://cdn.nodaro.ai/images/3898f098-1469-4a73-8ab6-37055868bb1c.png",
17463
+ "lazy-shy": "https://cdn.nodaro.ai/images/644c8e18-024a-4b23-81c1-898ad36c4cdd.png",
17464
+ awe: "https://cdn.nodaro.ai/images/f54ab8bf-5108-4ef1-9599-4e8744f2612a.png",
17465
+ shocked: "https://cdn.nodaro.ai/images/3b5c6eb6-1c76-457b-a130-6930603450ba.png",
17466
+ flirty: "https://cdn.nodaro.ai/images/b2d36ecf-38d0-41f8-a49b-21ca00641e2a.png",
17467
+ suspicious: "https://cdn.nodaro.ai/images/cbea4dbf-2fe4-4cae-bed0-ea2707b77f75.png",
17468
+ resigned: "https://cdn.nodaro.ai/images/da4c2867-d144-4222-9ba6-88006f7fbfd2.png",
17469
+ conflicted: "https://cdn.nodaro.ai/images/44e0bee8-c784-4d25-85c6-83cd90edc70a.png"
17470
+ },
17471
+ "atmosphere": {
17472
+ clear: "https://cdn.nodaro.ai/images/566ab159-8e8b-4bc1-9b1a-ef4de1e5e9b8.png",
17473
+ cloudy: "https://cdn.nodaro.ai/images/6e86d4b4-a3e5-4816-a6dc-ef293aa0149b.png",
17474
+ overcast: "https://cdn.nodaro.ai/images/cf1b7b08-542c-4835-8d6e-6769875d43c7.png",
17475
+ fog: "https://cdn.nodaro.ai/images/042450d5-aadd-4b48-8ae8-b6130154c576.png",
17476
+ mist: "https://cdn.nodaro.ai/images/f183ff64-95ce-4a80-abed-4172a632d2d7.png",
17477
+ "fog-mist": "https://cdn.nodaro.ai/images/c6e76aa3-0faa-4aba-9413-0bc9c7f0a162.png",
17478
+ "light-rain": "https://cdn.nodaro.ai/images/f3779fae-0e88-4b82-b4ce-e77113be558a.png",
17479
+ "heavy-rain": "https://cdn.nodaro.ai/images/58c5b785-4b32-4c5b-805f-3617af2be82b.png",
17480
+ storm: "https://cdn.nodaro.ai/images/e0971493-f049-4b88-a888-06f3c79b6bf6.png",
17481
+ snow: "https://cdn.nodaro.ai/images/ad3fc164-fd33-445a-aa7d-e5a456f2a813.png",
17482
+ blizzard: "https://cdn.nodaro.ai/images/2ad6e61b-de81-4bec-bd3b-e6b622914a6d.png",
17483
+ dust: "https://cdn.nodaro.ai/images/a817e05f-b255-4e60-82b6-f86c54aba916.png",
17484
+ "god-rays": "https://cdn.nodaro.ai/images/862e1702-b47e-4449-8aca-489e28087a48.png",
17485
+ smoke: "https://cdn.nodaro.ai/images/249516ae-2d82-4048-a377-d661c65eff42.png",
17486
+ "bokeh-particles": "https://cdn.nodaro.ai/images/13fa3576-900e-4b9c-9b19-bb776683ecbb.png",
17487
+ "chalk-dust": "https://cdn.nodaro.ai/images/13086322-e1f7-4647-9d07-554ca17d12e3.png",
17488
+ "falling-petals": "https://cdn.nodaro.ai/images/55edeed2-4ad8-4de8-afd0-44ac66aa50d9.png",
17489
+ confetti: "https://cdn.nodaro.ai/images/b72cf291-9d52-41b0-a204-9096c318fcd5.png",
17490
+ "sparks-embers": "https://cdn.nodaro.ai/images/13d65693-1b55-4231-8173-9a102881eacf.png",
17491
+ "lens-flare": "https://cdn.nodaro.ai/images/aac783aa-3459-4d85-be47-36f6a6d711c9.png",
17492
+ "heat-haze": "https://cdn.nodaro.ai/images/73627492-e2d2-43d1-9318-71abb81bc84e.png",
17493
+ steam: "https://cdn.nodaro.ai/images/9421fd49-7b83-41b4-915d-6e487cb4f9ce.png",
17494
+ "bubbles-underwater": "https://cdn.nodaro.ai/images/6816f7ed-0869-4220-a4a2-aede796f5980.png",
17495
+ "rain-on-glass": "https://cdn.nodaro.ai/images/b73bfd84-d18e-4594-a9c3-83e2ae933537.png",
17496
+ "pollen-light": "https://cdn.nodaro.ai/images/b059ac4f-e7ae-4a41-acf3-88fcf2ccd31e.png",
17497
+ "water-droplets": "https://cdn.nodaro.ai/images/fca4502d-9f63-4624-b8d9-bb3bf848c8df.png",
17498
+ "falling-ash": "https://cdn.nodaro.ai/images/0e825e62-16be-4092-80f6-436f1f7aafb7.png",
17499
+ fireflies: "https://cdn.nodaro.ai/images/a6ae39f6-a67a-44bc-a79a-b19fa54ec2fc.png",
17500
+ "incense-smoke": "https://cdn.nodaro.ai/images/9922d19c-6fa9-4e38-b5bb-9b18dae31922.png",
17501
+ "cigarette-smoke": "https://cdn.nodaro.ai/images/779397d3-ff0d-4237-aca3-58e1530c7ebd.png",
17502
+ "candle-glow": "https://cdn.nodaro.ai/images/aee0c724-7772-4952-b944-51ca0d7a922e.png",
17503
+ "glitter-sparkle": "https://cdn.nodaro.ai/images/49c917fe-f582-4277-9543-b03bccfe231e.png",
17504
+ starfield: "https://cdn.nodaro.ai/images/97d2767e-ac88-44b5-9d1f-77eb0da6aa78.png",
17505
+ "dandelion-seeds": "https://cdn.nodaro.ai/images/aa94769f-4f0a-40c5-9d62-7201215e5db2.png",
17506
+ "pollen-drift": "https://cdn.nodaro.ai/images/d1ce013d-99ba-423d-87b3-d85f854e5aad.png",
17507
+ "snowflakes-heavy": "https://cdn.nodaro.ai/images/8566be3d-14d6-4f5b-ac17-e090a6a5fb3b.png",
17508
+ "snowflakes-light": "https://cdn.nodaro.ai/images/f86c17bc-7e14-45e6-98ed-7f6e23b801aa.png",
17509
+ "raindrops-on-skin": "https://cdn.nodaro.ai/images/d0f090aa-47a9-4300-92f2-e486a267935c.png",
17510
+ "bioluminescent-cloud": "https://cdn.nodaro.ai/images/5de7a3e0-9ecc-413f-9899-3568ea1d6438.png",
17511
+ "motion-streaks": "https://cdn.nodaro.ai/images/9bdc1ea8-ea20-44aa-b9cb-771efc2d5931.png"
17512
+ },
17513
+ "composition-effects": {
17514
+ // "None" is pictured by the untouched base frame, so the difference reads.
17515
+ none: "https://cdn.nodaro.ai/images/a32481c2-20c7-4ad0-8998-4828034f5409.png",
17516
+ "bursting-through-frame": "https://cdn.nodaro.ai/images/de193923-d7d7-4a4d-a00f-0f11e103e07e.png",
17517
+ "breaking-out-of-frame": "https://cdn.nodaro.ai/images/78252b2d-8116-4c0b-9d96-e3fbf5f972f3.png",
17518
+ "pixel-disintegration": "https://cdn.nodaro.ai/images/ef82100c-7835-4649-9499-5b5f03040c2f.png",
17519
+ "smoke-sculpture": "https://cdn.nodaro.ai/images/4c0d1860-198f-4c3b-a7c8-e5972562ae81.png",
17520
+ "liquid-sculpture": "https://cdn.nodaro.ai/images/c7275187-6891-4ad8-b023-6d777b0f6549.png",
17521
+ "shattering-glass": "https://cdn.nodaro.ai/images/9bf4ca79-565b-45d3-9d5e-caa098e3bea7.png",
17522
+ "emerging-from-background": "https://cdn.nodaro.ai/images/55e0328d-236e-4e77-a5d9-5a5b871796e8.png",
17523
+ "fragmented-mosaic": "https://cdn.nodaro.ai/images/7d5ef9da-819e-4588-a047-a0e7fe1dab52.png",
17524
+ "glitch-distortion": "https://cdn.nodaro.ai/images/7c14d6da-dc8c-4990-a9ef-79f05d722179.png",
17525
+ "doubled-mirror": "https://cdn.nodaro.ai/images/0d6ab020-e33a-422b-8c29-1019c4ea2727.png",
17526
+ "floating-fragments": "https://cdn.nodaro.ai/images/e0e384cf-b95e-422a-9272-bc505d02c728.png",
17527
+ "silhouette-outline": "https://cdn.nodaro.ai/images/537ead59-cdcf-4747-afed-6390e4daa3ed.png",
17528
+ "exploding-particles": "https://cdn.nodaro.ai/images/5213da13-eaf7-4017-9636-1b49685f5e37.png",
17529
+ "matte-painting": "https://cdn.nodaro.ai/images/a2e56582-853e-45ad-b194-44cc80445d71.png",
17530
+ "double-exposure": "https://cdn.nodaro.ai/images/ea66f9a1-6f31-445c-81ac-924518399f88.png",
17531
+ "multiple-exposure": "https://cdn.nodaro.ai/images/791350a6-9c5a-4755-a4e3-5c8bfecbd90e.png",
17532
+ "in-camera-effects": "https://cdn.nodaro.ai/images/b1fc8610-f7ff-4449-a5ea-6bd07830989d.png",
17533
+ "prism-flares": "https://cdn.nodaro.ai/images/a8dca9b1-3e42-43fe-8057-72a155a7e63b.png"
17534
+ },
17535
+ "camera-format": {
17536
+ "35mm-film": "https://cdn.nodaro.ai/images/54c5b9c2-776b-40f8-a24a-eb98d54ec655.png",
17537
+ "16mm-film": "https://cdn.nodaro.ai/images/a829f950-e854-467d-98d0-e140701f5e90.png",
17538
+ "super-8": "https://cdn.nodaro.ai/images/cbaae659-6264-465d-abfe-cf8d074e1fc2.png",
17539
+ "imax-70mm": "https://cdn.nodaro.ai/images/79def2f8-46d6-4cb9-b269-dd4490922648.png",
17540
+ "anamorphic-scope": "https://cdn.nodaro.ai/images/225f7f90-8339-495c-b449-269d717c6033.png",
17541
+ "arri-alexa": "https://cdn.nodaro.ai/images/6e4af3a3-1dd5-4e92-b9ab-9a9fa9766c24.png",
17542
+ "alexa-65": "https://cdn.nodaro.ai/images/9cd1e018-7c12-4306-9949-b81c1b84ba31.png",
17543
+ "sony-venice": "https://cdn.nodaro.ai/images/d68139d8-ba89-48e4-ad8b-ad075ead7e94.png",
17544
+ "blackmagic-pocket-6k": "https://cdn.nodaro.ai/images/9104de37-c398-400c-9247-ebbdb165b231.png",
17545
+ "red-komodo": "https://cdn.nodaro.ai/images/f3635885-add0-4930-a208-4e9f4d1f37ef.png",
17546
+ dslr: "https://cdn.nodaro.ai/images/df54d588-abbe-46ae-b6e5-2fa4189fea70.png",
17547
+ "mirrorless-a7iii": "https://cdn.nodaro.ai/images/5903c65b-4152-4d73-851e-5770982d5c94.png",
17548
+ "canon-r5": "https://cdn.nodaro.ai/images/2558490d-4dca-4c8b-b882-120d447467eb.png",
17549
+ "hasselblad-medium-format": "https://cdn.nodaro.ai/images/d1b5c21d-94d7-42d4-8dca-6a30773844fc.png",
17550
+ "leica-m-rangefinder": "https://cdn.nodaro.ai/images/45a1c919-f810-4371-931c-02e6a998e738.png",
17551
+ voigtlander: "https://cdn.nodaro.ai/images/85b8f1bb-5ca4-4544-a945-ee90d80fa326.png",
17552
+ "fuji-xt4": "https://cdn.nodaro.ai/images/0a316b78-37fb-435c-999b-bb9f4894ca4f.png",
17553
+ "drone-aerial": "https://cdn.nodaro.ai/images/c4a1977e-6263-4608-b9fd-39f4660f3c7f.png",
17554
+ "gopro-action-cam": "https://cdn.nodaro.ai/images/2938d0b7-e118-48d6-8ef5-0fd97bdc2e30.png",
17555
+ "webcam-facetime": "https://cdn.nodaro.ai/images/44fec809-2616-44d0-ab84-cf18c12b7e76.png",
17556
+ vhs: "https://cdn.nodaro.ai/images/559a5ce1-4fae-431c-99c8-ae8c1fd8c50d.png",
17557
+ camcorder: "https://cdn.nodaro.ai/images/eb79f17f-6627-46e7-b7a0-fad665a74269.png",
17558
+ polaroid: "https://cdn.nodaro.ai/images/4ab94dcc-b78b-4f31-a1c6-30d7f55b6049.png",
17559
+ "fuji-instax": "https://cdn.nodaro.ai/images/f14bee6e-bf0a-45cc-92d6-3680b0479eaa.png",
17560
+ "disposable-camera": "https://cdn.nodaro.ai/images/523727d0-46ae-48eb-9e32-9cbdd11acb16.png",
17561
+ "toy-camera-holga": "https://cdn.nodaro.ai/images/9c1205d6-8c6d-4220-882c-0e6c670c688f.png",
17562
+ "tintype-wet-plate": "https://cdn.nodaro.ai/images/fb707d22-a051-4f9c-96ab-92392b32d5f6.png",
17563
+ daguerreotype: "https://cdn.nodaro.ai/images/694be33e-4e80-4713-96fb-f13029a35419.png",
17564
+ "security-cam": "https://cdn.nodaro.ai/images/ffd06480-030b-474f-b55b-612f6b565368.png",
17565
+ "bw-film": "https://cdn.nodaro.ai/images/fddfea55-5e76-428b-8826-8d64abc7560f.png",
17566
+ iphone: "https://cdn.nodaro.ai/images/2307781b-78d2-445d-81a8-791f5d092707.png"
17567
+ },
17568
+ "framing": {
17569
+ "extreme-wide-shot": "https://cdn.nodaro.ai/images/845e97b8-53a5-46b4-9a04-9a318b5ba0ce.png",
17570
+ "wide-shot": "https://cdn.nodaro.ai/images/ac647452-4d78-47a1-afc8-7b1905770742.png",
17571
+ "medium-wide-shot": "https://cdn.nodaro.ai/images/b1900820-bfd4-4a40-8426-bb078cf2cd48.png",
17572
+ "medium-shot": "https://cdn.nodaro.ai/images/a6653334-f164-426b-841f-28aee0930df2.png",
17573
+ "medium-close-up": "https://cdn.nodaro.ai/images/7f53ce64-2297-455a-9b1c-262483fd7ec4.png",
17574
+ "close-up": "https://cdn.nodaro.ai/images/20d15e8b-22ee-4f97-b5b3-7ed8a1a8d80c.png",
17575
+ "extreme-close-up": "https://cdn.nodaro.ai/images/3fc3b535-b8b3-43ae-a61a-6d87e5e7fe86.png",
17576
+ "ecu-eye": "https://cdn.nodaro.ai/images/8ed82244-169d-48f9-9924-7e1c592b551a.png",
17577
+ "ecu-mouth": "https://cdn.nodaro.ai/images/034b9262-2dd8-40af-94b1-0fae7e5d48ec.png",
17578
+ "ecu-hands": "https://cdn.nodaro.ai/images/239c63a7-db02-414f-ae41-2a120a7d0593.png",
17579
+ "big-close-up": "https://cdn.nodaro.ai/images/95f4dd5a-f4ef-498c-98b0-da3cbf1bac4e.png",
17580
+ choker: "https://cdn.nodaro.ai/images/a955908e-6d51-4fb5-b7f9-06faca670d48.png",
17581
+ "italian-shot": "https://cdn.nodaro.ai/images/f87099b2-a15b-430d-b3fd-f5c25fb1dc55.png",
17582
+ insert: "https://cdn.nodaro.ai/images/f9c9caf9-e352-4555-8cb6-97d540065ed7.png",
17583
+ macro: "https://cdn.nodaro.ai/images/06a817db-58a0-4e5e-b537-dafa90ba9e66.png",
17584
+ "full-shot": "https://cdn.nodaro.ai/images/91e8045d-7ce0-4dfc-bf6c-b09187e65cd4.png",
17585
+ "cowboy-shot": "https://cdn.nodaro.ai/images/d4e20051-c453-4e22-85e4-c9a1604031f0.png",
17586
+ "head-to-hip": "https://cdn.nodaro.ai/images/4d99a831-755e-49b1-aee8-81167870fdaf.png",
17587
+ "half-body": "https://cdn.nodaro.ai/images/0b4331be-2756-433f-81f3-38b50fb27db9.png",
17588
+ "eye-level": "https://cdn.nodaro.ai/images/1e258940-8157-4058-82a1-1f43ffe7b1e0.png",
17589
+ "high-angle": "https://cdn.nodaro.ai/images/19f39949-dfc9-4e2d-9818-0f9aaaf39b42.png",
17590
+ "low-angle": "https://cdn.nodaro.ai/images/63a0e889-dc46-4e7f-86b5-16d92cf4056d.png",
17591
+ overhead: "https://cdn.nodaro.ai/images/1207f040-1961-4d11-aafd-a9a6255bbaa4.png",
17592
+ "worms-eye-angle": "https://cdn.nodaro.ai/images/aac7c26e-e507-462d-9476-8e74a10ee576.png",
17593
+ "dutch-angle": "https://cdn.nodaro.ai/images/79afd253-5b2d-440a-939c-fa17aaac272d.png",
17594
+ "birds-eye": "https://cdn.nodaro.ai/images/2021f3e4-bbef-4952-b91f-341b4742c602.png",
17595
+ "slightly-downward": "https://cdn.nodaro.ai/images/ffea28eb-c262-4b87-82c1-a81aaefac777.png",
17596
+ "front-on": "https://cdn.nodaro.ai/images/260d46af-eabd-456d-b514-436cd3dcacd8.png",
17597
+ "three-quarter-front": "https://cdn.nodaro.ai/images/871da9ca-c73c-4b97-9928-e3de96d408a8.png",
17598
+ "profile-left": "https://cdn.nodaro.ai/images/82126107-a0a4-4479-b799-a42691ceb56e.png",
17599
+ "profile-right": "https://cdn.nodaro.ai/images/b684b9d0-722c-41a3-8333-d8d16c2b2976.png",
17600
+ "three-quarter-back": "https://cdn.nodaro.ai/images/4f31dbbf-3192-4c60-9e40-3d22e2d238d7.png",
17601
+ behind: "https://cdn.nodaro.ai/images/64cafb2e-f9f4-4179-941d-854ee9f4b79b.png",
17602
+ "side-back-angle": "https://cdn.nodaro.ai/images/8a38a7de-44f2-4e57-8a60-6a91d1ed3d7f.png",
17603
+ "rule-of-thirds": "https://cdn.nodaro.ai/images/5c3652c4-5f87-40a6-a30a-856eb96eea43.png",
17604
+ centered: "https://cdn.nodaro.ai/images/37e40de5-19fc-48a5-9d4c-4ba8c338cc5a.png",
17605
+ "headroom-tight": "https://cdn.nodaro.ai/images/f03927e6-6321-4144-826e-bd432e97bcae.png",
17606
+ "negative-space": "https://cdn.nodaro.ai/images/2a8c2941-bd7b-4f67-9f69-2611f89a2a17.png",
17607
+ "leading-lines": "https://cdn.nodaro.ai/images/49c7c88d-3ce9-4fef-9e3a-2b994bacca11.png",
17608
+ "3x3-grid-collage": "https://cdn.nodaro.ai/images/79dd780f-5591-4bad-a6fb-4060a233c29c.png",
17609
+ diptych: "https://cdn.nodaro.ai/images/e7331d4f-3b28-41ed-b226-28fa3df28dce.png",
17610
+ triptych: "https://cdn.nodaro.ai/images/c9120de4-88ef-4a87-8c2d-005d1a03ee3c.png",
17611
+ "multi-frame-mosaic": "https://cdn.nodaro.ai/images/bddaa365-44bf-47d1-94b7-4455c0af995a.png",
17612
+ "contact-sheet": "https://cdn.nodaro.ai/images/65bb3f42-a778-4502-91ed-3d57f9a5a7a3.png",
17613
+ "magazine-spread": "https://cdn.nodaro.ai/images/0a114450-752e-42f7-a346-bfc364052b0e.png",
17614
+ "cutaway-cross-section": "https://cdn.nodaro.ai/images/78308a76-f2dc-4c31-89d2-edcf92dea13e.png",
17615
+ "golden-spiral": "https://cdn.nodaro.ai/images/2fea452f-18b9-47ab-94a0-1af9225c288e.png",
17616
+ "frame-within-frame": "https://cdn.nodaro.ai/images/167cf3e9-a94e-4250-a772-c244c580bd37.png",
17617
+ "s-curve": "https://cdn.nodaro.ai/images/e8854c4e-97f5-44bc-a331-14f13560bb64.png",
17618
+ "diagonal-composition": "https://cdn.nodaro.ai/images/bc352a58-25da-4162-9db9-7ee45e5ee0f9.png",
17619
+ "triangular-composition": "https://cdn.nodaro.ai/images/ddc51811-e412-4b93-aa88-80c4c3f7f3ec.png",
17620
+ "symmetrical-mirror": "https://cdn.nodaro.ai/images/639d3c65-d5a3-44c0-8fae-019ae5222df4.png",
17621
+ "vignette-composition": "https://cdn.nodaro.ai/images/b4d33b4d-9c84-4d2a-bf42-3e596753b331.png"
17622
+ },
17623
+ "lighting": {
17624
+ dawn: "https://cdn.nodaro.ai/images/87650594-2070-4e0f-96b2-b6b7fb44ab12.png",
17625
+ sunrise: "https://cdn.nodaro.ai/images/4e18b54f-6b2c-4ab7-842c-be1fa25351b3.png",
17626
+ morning: "https://cdn.nodaro.ai/images/c1aa52a0-a6e0-4e5b-befd-1cdf0b337e60.png",
17627
+ noon: "https://cdn.nodaro.ai/images/3f0c135a-65b5-4ab3-92de-4231ed620f2e.png",
17628
+ "harsh-midday": "https://cdn.nodaro.ai/images/67130cb6-8a2e-4796-bc93-8937a670a388.png",
17629
+ afternoon: "https://cdn.nodaro.ai/images/e899c830-f4c8-4df2-8afa-de39e1bf00ff.png",
17630
+ overcast: "https://cdn.nodaro.ai/images/abd5c850-8f50-4904-977b-c73f28179ac5.png",
17631
+ "golden-hour": "https://cdn.nodaro.ai/images/045bf7a8-6669-4a6e-81d5-e27975e20623.png",
17632
+ dusk: "https://cdn.nodaro.ai/images/2e20deb8-c39a-45e4-9778-14d5231ac2de.png",
17633
+ "blue-hour": "https://cdn.nodaro.ai/images/c8abc238-b1cd-48e2-90bb-fec6ef2f69ed.png",
17634
+ twilight: "https://cdn.nodaro.ai/images/005df80e-d23a-4172-be5a-53d6858dda5a.png",
17635
+ night: "https://cdn.nodaro.ai/images/f521f1ec-c753-4d0f-b780-9a576fc8e807.png",
17636
+ midnight: "https://cdn.nodaro.ai/images/dc149ee2-a3a8-477e-9dc7-90720101e53f.png",
17637
+ moonlight: "https://cdn.nodaro.ai/images/2d4327b5-8405-4022-9794-fb445ab8e914.png",
17638
+ "neon-night": "https://cdn.nodaro.ai/images/811df332-195b-4141-8a08-c9bc980d904f.png",
17639
+ "three-point": "https://cdn.nodaro.ai/images/a8147090-9096-4126-98a2-1a0a1adf4683.png",
17640
+ rembrandt: "https://cdn.nodaro.ai/images/8f7e9930-df57-4e2d-91cf-2962edd2985f.png",
17641
+ chiaroscuro: "https://cdn.nodaro.ai/images/d9e4b796-1c2c-4378-a70e-907edc6fe3ba.png",
17642
+ silhouette: "https://cdn.nodaro.ai/images/b21f02c6-70d6-462c-b2d8-d03925e7eb2c.png",
17643
+ "high-key": "https://cdn.nodaro.ai/images/0a00ca56-25dc-4b50-9612-98577ec46de5.png",
17644
+ "low-key": "https://cdn.nodaro.ai/images/422fc336-f8c8-4546-b768-af08660e2ddb.png",
17645
+ split: "https://cdn.nodaro.ai/images/94c60342-158d-48ff-b438-047d6e5d5770.png",
17646
+ butterfly: "https://cdn.nodaro.ai/images/03d045d0-7f14-4d24-8cc2-e411c43d30c5.png",
17647
+ loop: "https://cdn.nodaro.ai/images/a1e9d179-fa55-4c76-a594-e943cc814b50.png",
17648
+ broad: "https://cdn.nodaro.ai/images/ffbd98ce-6bf5-4e6e-9605-37c1ef095723.png",
17649
+ short: "https://cdn.nodaro.ai/images/c12955de-7bb2-4b33-9aa7-72f67e5dcd15.png",
17650
+ hatchet: "https://cdn.nodaro.ai/images/28ba6aeb-7628-40db-af6f-71e3a161eab5.png",
17651
+ clamshell: "https://cdn.nodaro.ai/images/c474b1bd-5bac-4521-acae-11ac3842b7f2.png",
17652
+ hard: "https://cdn.nodaro.ai/images/8f6d1fe5-7288-4693-a12d-8e776222d440.png",
17653
+ soft: "https://cdn.nodaro.ai/images/f3789819-d0e7-4d67-8716-f118ebab6180.png",
17654
+ practical: "https://cdn.nodaro.ai/images/62e4045f-0bdc-43c8-8e35-3969780ec66a.png",
17655
+ "ring-light": "https://cdn.nodaro.ai/images/3dc9d872-300c-42fc-8ccb-c6a3b168a05c.png",
17656
+ "phone-screen-glow": "https://cdn.nodaro.ai/images/9d84db1c-4ee1-4b00-be94-8ff28a519eb5.png",
17657
+ "selfie-natural": "https://cdn.nodaro.ai/images/36c476a4-4f2a-41e1-aec8-537184103aec.png",
17658
+ natural: "https://cdn.nodaro.ai/images/93d792dc-6269-4109-a406-727c2852a0d0.png",
17659
+ volumetric: "https://cdn.nodaro.ai/images/f66f85d8-5135-4884-9146-31ef0f0af772.png",
17660
+ noir: "https://cdn.nodaro.ai/images/22435d3e-f25b-4592-a31d-21ff19016930.png",
17661
+ "on-camera-flash": "https://cdn.nodaro.ai/images/272dee07-0da0-406b-8dcb-f66a7ddb9bc2.png",
17662
+ "mirror-bounce-flash": "https://cdn.nodaro.ai/images/3ca0f856-4da2-4175-bf94-8f246139f14b.png",
17663
+ "bounced-flash": "https://cdn.nodaro.ai/images/b0d73207-90e8-48d7-85c1-2021632ffe93.png",
17664
+ "softbox-key": "https://cdn.nodaro.ai/images/fb88d4d9-5e8a-4430-b5c8-6308255f95aa.png",
17665
+ "beauty-dish": "https://cdn.nodaro.ai/images/45658292-7487-48b2-8d0f-193aca9cfdb1.png",
17666
+ "gridded-snoot": "https://cdn.nodaro.ai/images/a7702f7c-8315-4613-8d91-807e044289ec.png",
17667
+ "silk-diffusion": "https://cdn.nodaro.ai/images/c7c70b01-5470-4014-ab9e-0e0a03546280.png",
17668
+ "kicker-rim": "https://cdn.nodaro.ai/images/c7029103-a656-4c48-925f-1db98c60c2d5.png",
17669
+ candlelight: "https://cdn.nodaro.ai/images/1838e5f8-aa89-4a77-aff6-befd5bae4d9c.png",
17670
+ "edison-tungsten": "https://cdn.nodaro.ai/images/47c06056-4df7-49b9-a6b0-a0feab1dc5de.png",
17671
+ "dappled-light": "https://cdn.nodaro.ai/images/95d659cf-f4c4-464c-9693-0ec63d458ee9.png",
17672
+ "raking-sidelight": "https://cdn.nodaro.ai/images/2e4b6ab0-b1f5-4207-8481-8cc7f8b193cc.png",
17673
+ "stage-spotlight": "https://cdn.nodaro.ai/images/97ed4ec9-13f6-4916-ba67-cec51c5dcb1e.png",
17674
+ "underwater-caustics": "https://cdn.nodaro.ai/images/85be921e-d20a-42d3-8712-cc4e627b5f8b.png",
17675
+ bioluminescence: "https://cdn.nodaro.ai/images/838f5a17-3277-4e6e-b84e-d5c50e895250.png"
17676
+ },
17677
+ // Camera motion renders are CLIPS: tiles loop a small silent encode over a
17678
+ // still frame while on screen (see LookArt / media-url.ts).
17679
+ "camera-motion": {
17680
+ static: "https://cdn.nodaro.ai/videos/70ae8a77-6988-420d-b178-4a2778ac5821.mp4",
17681
+ handheld: "https://cdn.nodaro.ai/videos/fc5fed73-856f-4c91-9653-b4f440f1fcb5.mp4",
17682
+ steadicam: "https://cdn.nodaro.ai/videos/69b117ef-4833-48cd-adb3-ebed7b72cf0f.mp4",
17683
+ "pan-left": "https://cdn.nodaro.ai/videos/c6c2e4b2-148b-4d16-9061-5e1c65dc322b.mp4",
17684
+ "pan-right": "https://cdn.nodaro.ai/videos/62b38623-2b5d-45e4-ba32-92d43132099c.mp4",
17685
+ "whip-pan-left": "https://cdn.nodaro.ai/videos/f17d30d6-01ce-4344-a5ce-306d999fb5be.mp4",
17686
+ "whip-pan-right": "https://cdn.nodaro.ai/videos/5a104889-6151-494a-817c-dc8b714b5d1e.mp4",
17687
+ "tilt-up": "https://cdn.nodaro.ai/videos/1b57ffc3-e9a9-4fb5-a4a6-9c37c308c187.mp4",
17688
+ "tilt-down": "https://cdn.nodaro.ai/videos/50e198bc-7938-4134-bc18-0fa1909d1309.mp4",
17689
+ "zoom-in": "https://cdn.nodaro.ai/videos/b9a01c72-a645-4698-b3c0-f3403707fbfd.mp4",
17690
+ "zoom-out": "https://cdn.nodaro.ai/videos/b44491ac-140c-4bce-aedb-d2dbdce5bd64.mp4",
17691
+ "crash-zoom-in": "https://cdn.nodaro.ai/videos/5d083a4a-ccb7-4347-a8bb-4a28d0f3e77a.mp4",
17692
+ "crash-zoom-out": "https://cdn.nodaro.ai/videos/f59de464-dd49-4651-8341-069ef04f66d8.mp4",
17693
+ "dolly-in": "https://cdn.nodaro.ai/videos/beb6409d-9d81-4921-a4c8-41c33a6e2ecd.mp4",
17694
+ "dolly-out": "https://cdn.nodaro.ai/videos/5f82caed-6378-4b83-9721-9242ceff3f68.mp4",
17695
+ "dolly-zoom": "https://cdn.nodaro.ai/videos/0e71f794-0f6c-4325-9aea-adca41784564.mp4",
17696
+ "push-in": "https://cdn.nodaro.ai/videos/390636f4-0e70-4dcb-a8ad-d1963089691e.mp4",
17697
+ "pull-out": "https://cdn.nodaro.ai/videos/b30b9d5a-44f4-4f15-a9c3-e484ddb7d607.mp4",
17698
+ breathing: "https://cdn.nodaro.ai/videos/7552dffd-6028-4d89-8a2c-b7148efe5c0f.mp4",
17699
+ "push-pull": "https://cdn.nodaro.ai/videos/d7cdb4d4-f8ac-4e85-ba84-10f4510cff50.mp4",
17700
+ "creep-in": "https://cdn.nodaro.ai/videos/18999856-69f6-4f02-ab3b-c3a1651f0e57.mp4",
17701
+ "creep-out": "https://cdn.nodaro.ai/videos/1ffe3a50-d720-4c47-8468-f664323e2529.mp4",
17702
+ "truck-left": "https://cdn.nodaro.ai/videos/ae8b0b19-8eee-4792-b176-7f20bfd5fdeb.mp4",
17703
+ "truck-right": "https://cdn.nodaro.ai/videos/1d67760b-aeda-440f-90b8-a1cfa8d896dc.mp4",
17704
+ "pedestal-up": "https://cdn.nodaro.ai/videos/79df6cf3-fadf-42a3-afac-6b3c33a2e01e.mp4",
17705
+ "pedestal-down": "https://cdn.nodaro.ai/videos/aa107622-04ed-4656-9202-fc46ef5f90b0.mp4",
17706
+ "roll-left": "https://cdn.nodaro.ai/videos/486eedf9-d8ff-4025-8238-aa7789a746b2.mp4",
17707
+ "roll-right": "https://cdn.nodaro.ai/videos/ee7eb921-0468-46ff-abb4-52f1a0f523bf.mp4",
17708
+ "dutch-angle": "https://cdn.nodaro.ai/videos/a9f87831-c35d-4995-b7e2-5f921d966139.mp4",
17709
+ "spin-360": "https://cdn.nodaro.ai/videos/185eaa23-39dd-44ef-aa2b-1b05ba6249cb.mp4",
17710
+ "orbit-left": "https://cdn.nodaro.ai/videos/eb857fea-b3e2-4eb0-b1b4-f6534dd2e00e.mp4",
17711
+ "orbit-right": "https://cdn.nodaro.ai/videos/ea4ba395-74e9-4fc6-b89a-959e655081df.mp4",
17712
+ "arc-left": "https://cdn.nodaro.ai/videos/92b0d528-994d-4107-a896-ea9598f5ad0c.mp4",
17713
+ "arc-right": "https://cdn.nodaro.ai/videos/2cbc3dc0-3a91-49dc-b466-28407e5e3ebb.mp4",
17714
+ "orbit-360": "https://cdn.nodaro.ai/videos/097a7ef5-27b6-4de7-bbf9-655504ec795f.mp4",
17715
+ "crane-up": "https://cdn.nodaro.ai/videos/e18f5347-7529-4f40-84b5-e7e1ecf186a4.mp4",
17716
+ "crane-down": "https://cdn.nodaro.ai/videos/f80b8248-f74f-4448-988d-0f78a4c93b75.mp4",
17717
+ "tracking-shot": "https://cdn.nodaro.ai/videos/efea057d-7779-464d-b79a-feaf5a8e2d76.mp4",
17718
+ follow: "https://cdn.nodaro.ai/videos/21afeb8c-50b3-4e11-883b-c505ae189843.mp4",
17719
+ lead: "https://cdn.nodaro.ai/videos/5f1279d0-caf6-4717-a470-66ad1bb286eb.mp4",
17720
+ "drone-follow": "https://cdn.nodaro.ai/videos/a36d0f48-d65d-41b7-910f-38d71ca7e5e1.mp4",
17721
+ "dolly-track": "https://cdn.nodaro.ai/videos/4b471ddf-9901-4ffe-9934-50f510fd3e5c.mp4",
17722
+ "gimbal-walk": "https://cdn.nodaro.ai/videos/2043bafd-9332-4558-b43e-d26f7450e2ed.mp4",
17723
+ "ronin-glide": "https://cdn.nodaro.ai/videos/b408e6ae-0a9e-4a7b-a097-17f343245636.mp4",
17724
+ serpentine: "https://cdn.nodaro.ai/videos/14a4f8f0-a831-49fa-8c20-b4e3236b89e5.mp4",
17725
+ pov: "https://cdn.nodaro.ai/videos/9e4a0dcd-1ca9-4ec5-b65c-40ef2e543a0f.mp4",
17726
+ "over-the-shoulder": "https://cdn.nodaro.ai/videos/6827388c-4226-4e0e-afbe-efd9022495b9.mp4",
17727
+ "birds-eye": "https://cdn.nodaro.ai/videos/d752038a-ce24-4bf8-b117-d2424c01c4ab.mp4",
17728
+ "worms-eye": "https://cdn.nodaro.ai/videos/79c953d9-1f94-4ba8-b769-89428450be1e.mp4",
17729
+ aerial: "https://cdn.nodaro.ai/videos/59bdf3a0-f40c-4e34-b102-45269c5c1605.mp4",
17730
+ helicopter: "https://cdn.nodaro.ai/videos/556e857d-62a6-4e66-8c09-0b74741acaeb.mp4",
17731
+ "fly-over": "https://cdn.nodaro.ai/videos/86638280-7d0c-4f7a-8fc9-5f10f9554a0f.mp4",
17732
+ flythrough: "https://cdn.nodaro.ai/videos/d95788b6-3a0a-4673-9bb3-99b7c29814c3.mp4",
17733
+ reveal: "https://cdn.nodaro.ai/videos/ecd5c9f2-048d-423b-bd9a-9ba0fd1e4d30.mp4",
17734
+ snorricam: "https://cdn.nodaro.ai/videos/bbe9c3f0-90e0-4196-ac0a-fe86bf815a0a.mp4",
17735
+ "rack-focus": "https://cdn.nodaro.ai/videos/ffe2d73d-b1bd-4b25-a58c-ccd22aac023d.mp4",
17736
+ "handheld-vlog": "https://cdn.nodaro.ai/videos/7ba3389b-7050-4405-a5d2-ecdac8b960f6.mp4",
17737
+ "pov-walk": "https://cdn.nodaro.ai/videos/4c4460f7-15d8-473b-8316-e82cf4b77a9d.mp4",
17738
+ "velocity-edit": "https://cdn.nodaro.ai/videos/d42f535f-365d-486d-b49d-a76ded3aabd5.mp4",
17739
+ "match-cut-zoom": "https://cdn.nodaro.ai/videos/054aa78a-19d8-47bf-b4ab-47939e0429d4.mp4",
17740
+ "screen-tap": "https://cdn.nodaro.ai/videos/8d05b0e3-4129-468d-9c84-a48b11990ed8.mp4",
17741
+ "phone-flip": "https://cdn.nodaro.ai/videos/884eb274-2c24-46ca-bf32-1e1833c7e1ba.mp4",
17742
+ "gentle-drift": "https://cdn.nodaro.ai/videos/b8d23d14-5089-4f10-87a6-622a388d4edc.mp4",
17743
+ parallax: "https://cdn.nodaro.ai/videos/c6a97b45-ff45-48cb-b8be-37af726ff485.mp4"
17744
+ }
17745
+ };
17746
+
17747
+ // src/picker-art/character-art-files.generated.ts
17748
+ var CHARACTER_ART_FILES = {
17749
+ "animals": {
17750
+ "allosaurus": "allosaurus.a8c17f12",
17751
+ "ankylosaurus": "ankylosaurus.f7b96d0f",
17752
+ "ant": "ant.5bc16af7",
17753
+ "axolotl": "axolotl.501f44ca",
17754
+ "bear": "bear.c755bd46",
17755
+ "bee": "bee.24232092",
17756
+ "beetle": "beetle.d6ac7f88",
17757
+ "brachiosaurus": "brachiosaurus.e65d23da",
17758
+ "brontosaurus": "brontosaurus.57149de4",
17759
+ "butterfly": "butterfly.1774611c",
17760
+ "camel": "camel.83b59bd5",
17761
+ "cat-bengal": "cat-bengal.a00d5f0e",
17762
+ "cat-black": "cat-black.f15b4d96",
17763
+ "cat-british-shorthair": "cat-british-shorthair.72ea0b5b",
17764
+ "cat-maine-coon": "cat-maine-coon.a38e349e",
17765
+ "cat-persian": "cat-persian.ad3a811e",
17766
+ "cat-ragdoll": "cat-ragdoll.7ffc73db",
17767
+ "cat-scottish-fold": "cat-scottish-fold.5165ee8e",
17768
+ "cat-siamese": "cat-siamese.749c1c76",
17769
+ "cat-sphynx": "cat-sphynx.b3989454",
17770
+ "cat-tabby": "cat-tabby.64fe97a3",
17771
+ "caterpillar": "caterpillar.6928d27d",
17772
+ "chameleon": "chameleon.7eede57f",
17773
+ "cheetah": "cheetah.dd0c094a",
17774
+ "chicken": "chicken.81ac376f",
17775
+ "cow": "cow.77fe7167",
17776
+ "crab": "crab.b62eb070",
17777
+ "crocodile": "crocodile.708dc02d",
17778
+ "crow": "crow.9ad96e7d",
17779
+ "deer": "deer.ed802962",
17780
+ "diplodocus": "diplodocus.066df8b9",
17781
+ "dog-beagle": "dog-beagle.0b83b599",
17782
+ "dog-border-collie": "dog-border-collie.ae2ea5f3",
17783
+ "dog-bulldog": "dog-bulldog.f6500783",
17784
+ "dog-chihuahua": "dog-chihuahua.0bb06c3a",
17785
+ "dog-corgi": "dog-corgi.e3815394",
17786
+ "dog-dachshund": "dog-dachshund.f78ddd0e",
17787
+ "dog-german-shepherd": "dog-german-shepherd.2f4078b8",
17788
+ "dog-golden-retriever": "dog-golden-retriever.05a8542f",
17789
+ "dog-husky": "dog-husky.26754d5a",
17790
+ "dog-labrador": "dog-labrador.b44ac49a",
17791
+ "dog-poodle": "dog-poodle.1946f1da",
17792
+ "dog-pug": "dog-pug.f400c4e6",
17793
+ "dog-rottweiler": "dog-rottweiler.6cd68f58",
17794
+ "dog-shiba-inu": "dog-shiba-inu.439d2ce0",
17795
+ "dolphin": "dolphin.fa4d6e8a",
17796
+ "donkey": "donkey.0efb6732",
17797
+ "dragon": "dragon.f272b46f",
17798
+ "dragonfly": "dragonfly.05313080",
17799
+ "duck": "duck.811d93ce",
17800
+ "eagle": "eagle.1fa5e313",
17801
+ "elephant": "elephant.ebf10b6f",
17802
+ "emu": "emu.4fe2b1f0",
17803
+ "ferret": "ferret.b9e22534",
17804
+ "flamingo": "flamingo.692c893f",
17805
+ "fox": "fox.d4436a27",
17806
+ "gecko": "gecko.5cc57319",
17807
+ "gerbil": "gerbil.f0c09501",
17808
+ "giraffe": "giraffe.93ff8a66",
17809
+ "goat": "goat.3502fab3",
17810
+ "gorilla": "gorilla.1bce7ebd",
17811
+ "grasshopper": "grasshopper.e50c33d2",
17812
+ "griffin": "griffin.d6885b6e",
17813
+ "guinea-pig": "guinea-pig.2aacb68d",
17814
+ "hamster": "hamster.5b28b174",
17815
+ "horse": "horse.be80922f",
17816
+ "hummingbird": "hummingbird.d00a387b",
17817
+ "jellyfish": "jellyfish.7b3797e9",
17818
+ "kangaroo": "kangaroo.67978eee",
17819
+ "koala": "koala.544a2587",
17820
+ "kraken": "kraken.596e11e7",
17821
+ "ladybug": "ladybug.0b25502b",
17822
+ "leopard": "leopard.1821cada",
17823
+ "lion": "lion.0fbb741f",
17824
+ "lizard": "lizard.bbec51ab",
17825
+ "monkey": "monkey.175442f8",
17826
+ "mosquito": "mosquito.da3867ac",
17827
+ "mule": "mule.92d9739e",
17828
+ "octopus": "octopus.5c0ed8ee",
17829
+ "owl": "owl.3f41afd7",
17830
+ "ox": "ox.cff00c59",
17831
+ "panda": "panda.8637b49e",
17832
+ "parakeet": "parakeet.1561d9ce",
17833
+ "parasaurolophus": "parasaurolophus.3b7f4a62",
17834
+ "parrot": "parrot.13921ea8",
17835
+ "peacock": "peacock.5e547210",
17836
+ "pegasus": "pegasus.73b0bf39",
17837
+ "penguin": "penguin.85df86cf",
17838
+ "phoenix": "phoenix.8b540438",
17839
+ "pig": "pig.f938cdcc",
17840
+ "polar-bear": "polar-bear.884214d9",
17841
+ "praying-mantis": "praying-mantis.f974cfec",
17842
+ "pterodactyl": "pterodactyl.2fce3e5b",
17843
+ "rabbit": "rabbit.39012085",
17844
+ "raccoon": "raccoon.2b7899c2",
17845
+ "raven": "raven.afa6fbdc",
17846
+ "rooster": "rooster.a29222aa",
17847
+ "scorpion": "scorpion.f5a81e3e",
17848
+ "sea-turtle": "sea-turtle.bbe478f8",
17849
+ "seahorse": "seahorse.28cbf61d",
17850
+ "shark": "shark.39595dad",
17851
+ "sheep": "sheep.610be154",
17852
+ "snake": "snake.ac56c5ad",
17853
+ "sparrow": "sparrow.3767d585",
17854
+ "spider": "spider.7abd4af4",
17855
+ "spinosaurus": "spinosaurus.3e72d893",
17856
+ "stegosaurus": "stegosaurus.57ea8c11",
17857
+ "swan": "swan.cbfba1df",
17858
+ "t-rex": "t-rex.ae8e16c3",
17859
+ "tarantula": "tarantula.b6076259",
17860
+ "tiger": "tiger.7c72c50a",
17861
+ "triceratops": "triceratops.9e90736d",
17862
+ "turkey": "turkey.551057cb",
17863
+ "turtle": "turtle.b2b50ef0",
17864
+ "unicorn": "unicorn.eba5dc7e",
17865
+ "velociraptor": "velociraptor.410db91c",
17866
+ "whale": "whale.0b25ad11",
17867
+ "wolf": "wolf.981f7393",
17868
+ "zebra": "zebra.9e4b47b5"
17869
+ },
17870
+ "held-prop": {
17871
+ "beer-bottle": "beer-bottle.ec311993",
17872
+ "book": "book.b040b0c9",
17873
+ "bouquet": "bouquet.279d8941",
17874
+ "bow-and-arrow": "bow-and-arrow.70d34f44",
17875
+ "briefcase": "briefcase.d85da47f",
17876
+ "cat": "cat.d59490f3",
17877
+ "chalk": "chalk.2de4ee9f",
17878
+ "champagne-flute": "champagne-flute.37536dac",
17879
+ "cigar": "cigar.7df6fe8f",
17880
+ "cigarette": "cigarette.1fdd1a08",
17881
+ "cocktail-glass": "cocktail-glass.1521ff32",
17882
+ "coffee-cup": "coffee-cup.71c403e4",
17883
+ "compass": "compass.bece7fe3",
17884
+ "drumsticks": "drumsticks.275822ad",
17885
+ "dslr-camera": "dslr-camera.3216946d",
17886
+ "fan-folding": "fan-folding.4eba4219",
17887
+ "flashlight": "flashlight.6e98b4de",
17888
+ "fruit-apple": "fruit-apple.6c1a4642",
17889
+ "gavel": "gavel.5003c44d",
17890
+ "guitar": "guitar.f00db048",
17891
+ "handbag": "handbag.6560e568",
17892
+ "joint": "joint.5dd8ffb9",
17893
+ "katana": "katana.3515f230",
17894
+ "lantern": "lantern.0308336c",
17895
+ "leaf": "leaf.9f4e4cac",
17896
+ "lighter": "lighter.d803ecd6",
17897
+ "locket": "locket.ed6fc582",
17898
+ "magazine": "magazine.63ee0c93",
17899
+ "marker": "marker.3978ebb2",
17900
+ "martini-glass": "martini-glass.a57900fa",
17901
+ "megaphone": "megaphone.ee9c011f",
17902
+ "microphone": "microphone.fc1230f5",
17903
+ "newspaper": "newspaper.6e468eaa",
17904
+ "notebook": "notebook.8e74d2a4",
17905
+ "paintbrush": "paintbrush.8419306b",
17906
+ "parasol": "parasol.8bd62902",
17907
+ "pen": "pen.27d1dcf0",
17908
+ "plush-toy": "plush-toy.77708a68",
17909
+ "pointer-stick": "pointer-stick.74541d1c",
17910
+ "polaroid-camera": "polaroid-camera.e23e7349",
17911
+ "saxophone": "saxophone.df7cd712",
17912
+ "sheet-music": "sheet-music.f9ecc93b",
17913
+ "shield": "shield.29a444dc",
17914
+ "single-rose": "single-rose.dd06eff0",
17915
+ "small-dog": "small-dog.be6edc1b",
17916
+ "smartphone": "smartphone.16fefa67",
17917
+ "smartphone-raised": "smartphone-raised.33a0bc1c",
17918
+ "smartwatch": "smartwatch.7302bd61",
17919
+ "sunflower": "sunflower.252fcad9",
17920
+ "takeaway-coffee": "takeaway-coffee.3afc90a9",
17921
+ "tote-bag": "tote-bag.22ec999f",
17922
+ "umbrella": "umbrella.66d8a3b8",
17923
+ "vape-pen": "vape-pen.bb0de364",
17924
+ "video-camera": "video-camera.114b5a95",
17925
+ "vintage-camera": "vintage-camera.ac2e0d06",
17926
+ "violin": "violin.67d1289c",
17927
+ "water-bottle": "water-bottle.eac460f2",
17928
+ "wine-bottle": "wine-bottle.a362f196",
17929
+ "wine-glass": "wine-glass.bb9e6fd1",
17930
+ "work-gloves": "work-gloves.1ad60507"
17931
+ },
17932
+ "materials": {
17933
+ "bamboo": "bamboo.69ac4df6",
17934
+ "birch": "birch.52522773",
17935
+ "brass": "brass.8f0cf32a",
17936
+ "bronze": "bronze.230b36fb",
17937
+ "carbon-fiber": "carbon-fiber.43272abe",
17938
+ "cashmere": "cashmere.fc84137f",
17939
+ "ceramic-glazed": "ceramic-glazed.50099db9",
17940
+ "chiffon": "chiffon.b08d62ed",
17941
+ "chrome": "chrome.7655acb9",
17942
+ "concrete": "concrete.665596bc",
17943
+ "copper": "copper.ead831e3",
17944
+ "cotton": "cotton.9cd80763",
17945
+ "crystal": "crystal.5d3e7cea",
17946
+ "crystal-shard": "crystal-shard.eb16a269",
17947
+ "denim": "denim.24f13353",
17948
+ "driftwood": "driftwood.44ca341f",
17949
+ "fire": "fire.0705dec4",
17950
+ "fur": "fur.96e93bb0",
17951
+ "glass": "glass.cf1ca985",
17952
+ "gold": "gold.85972950",
17953
+ "granite": "granite.1eb8c994",
17954
+ "holographic": "holographic.7b2598f1",
17955
+ "holographic-film": "holographic-film.dc8700bb",
17956
+ "ice": "ice.e98fef67",
17957
+ "iridescent": "iridescent.12f07bc3",
17958
+ "iron": "iron.e261d954",
17959
+ "jade": "jade.b0ee13c5",
17960
+ "lace": "lace.7c24bf97",
17961
+ "leather": "leather.26ac1396",
17962
+ "leaves": "leaves.05138902",
17963
+ "linen": "linen.d1c34524",
17964
+ "liquid-metal": "liquid-metal.3f2fdc61",
17965
+ "mahogany": "mahogany.44594d41",
17966
+ "marble": "marble.4b0f642b",
17967
+ "mesh": "mesh.fd334095",
17968
+ "mirror": "mirror.f7ea813f",
17969
+ "moss": "moss.95408e34",
17970
+ "mother-of-pearl": "mother-of-pearl.4b525cc3",
17971
+ "neon": "neon.aa42958a",
17972
+ "oak": "oak.cec47c98",
17973
+ "obsidian": "obsidian.0a7cc89c",
17974
+ "obsidian-glass": "obsidian-glass.4773cd41",
17975
+ "onyx": "onyx.8f66edc9",
17976
+ "patent-leather": "patent-leather.a49bd393",
17977
+ "plasma": "plasma.cfb294ed",
17978
+ "platinum": "platinum.de0efeff",
17979
+ "porcelain": "porcelain.ff129958",
17980
+ "sand": "sand.32a34f7b",
17981
+ "sandstone": "sandstone.2df2331b",
17982
+ "satin": "satin.0dbb5deb",
17983
+ "silk": "silk.24ba7f6e",
17984
+ "silver": "silver.9e07dc12",
17985
+ "slate": "slate.29d421f2",
17986
+ "smoke": "smoke.c3c0f254",
17987
+ "stained-glass": "stained-glass.482c0c79",
17988
+ "steel": "steel.ebf8d06c",
17989
+ "subsurface": "subsurface.5d579536",
17990
+ "suede": "suede.50fdfe11",
17991
+ "terracotta": "terracotta.a5181fdd",
17992
+ "terrazzo": "terrazzo.e7668b81",
17993
+ "titanium": "titanium.58eb2bab",
17994
+ "translucent": "translucent.cd432ed7",
17995
+ "tweed": "tweed.396a6009",
17996
+ "velvet": "velvet.f0261d28",
17997
+ "walnut": "walnut.7a723bf6",
17998
+ "water": "water.1d444dd4",
17999
+ "wool": "wool.3fc2cb4f"
18000
+ },
18001
+ "person": {
18002
+ "abidjan-cosmopolitan": "abidjan-cosmopolitan.0aef5cc6",
18003
+ "aboriginal-australian": "aboriginal-australian.03edf64c",
18004
+ "accra-afro-fashion": "accra-afro-fashion.455aef15",
18005
+ "addis-habesha": "addis-habesha.4fe853c5",
18006
+ "african": "african.bec5cae8",
18007
+ "afro-caribbean": "afro-caribbean.3d98e33c",
18008
+ "age-20s": "age-20s.f4d83ba7",
18009
+ "age-30s": "age-30s.8a80b865",
18010
+ "age-40s": "age-40s.3492dc4c",
18011
+ "age-50s": "age-50s.f94dc049",
18012
+ "age-60s": "age-60s.2b31919a",
18013
+ "age-baby": "age-baby.889ff675",
18014
+ "age-child": "age-child.5710d38e",
18015
+ "age-custom": "age-custom.02cba899",
18016
+ "age-early-20s": "age-early-20s.b43ebb95",
18017
+ "age-early-teen": "age-early-teen.29cd52af",
18018
+ "age-elderly": "age-elderly.a27b558d",
18019
+ "age-late-20s": "age-late-20s.3b7c0c20",
18020
+ "age-late-teen": "age-late-teen.35fe5215",
18021
+ "age-pre-teen": "age-pre-teen.c1d0b5ae",
18022
+ "age-teen": "age-teen.049e2a6b",
18023
+ "age-toddler": "age-toddler.502fd1c1",
18024
+ "age-young-child": "age-young-child.90638c96",
18025
+ "ai-hologram": "ai-hologram.ba0a61e7",
18026
+ "alice-wonderland": "alice-wonderland.57e019cb",
18027
+ "alien": "alien.b894f17a",
18028
+ "andean-indigenous": "andean-indigenous.6ad8992f",
18029
+ "androgynous": "androgynous.1075c43e",
18030
+ "android-man": "android-man.3ed0b0c9",
18031
+ "android-neutral": "android-neutral.075e2b8a",
18032
+ "android-woman": "android-woman.d23cd019",
18033
+ "angel": "angel.3656f37c",
18034
+ "anthro": "anthro.2b1c3d8b",
18035
+ "apeman": "apeman.089992df",
18036
+ "artist": "artist.6bfc7af5",
18037
+ "asian-any": "asian-any.b51d6a45",
18038
+ "astronaut": "astronaut.d56a7184",
18039
+ "athlete": "athlete.62d9d086",
18040
+ "atl-southern": "atl-southern.72455a11",
18041
+ "auckland-coastal": "auckland-coastal.b2242c01",
18042
+ "australian-outback": "australian-outback.a0e9a781",
18043
+ "bad-boy": "bad-boy.474ef57d",
18044
+ "baddie": "baddie.1ead2959",
18045
+ "baltic": "baltic.28743272",
18046
+ "bangkok-street": "bangkok-street.2e4e81ad",
18047
+ "barbarian": "barbarian.a2c31f07",
18048
+ "barbarian-man": "barbarian-man.c07e7a3e",
18049
+ "barbarian-woman": "barbarian-woman.b2223fbd",
18050
+ "barista": "barista.bbce4edb",
18051
+ "base-afro": "base-afro.e1d36b85",
18052
+ "base-bald": "base-bald.4e294be7",
18053
+ "base-buzz": "base-buzz.3e37acbc",
18054
+ "base-long-coily": "base-long-coily.4a406f37",
18055
+ "base-long-curly": "base-long-curly.a9528e94",
18056
+ "base-long-straight": "base-long-straight.8a1a44ad",
18057
+ "base-long-wavy": "base-long-wavy.eaa9c845",
18058
+ "base-medium-coily": "base-medium-coily.dae7afc4",
18059
+ "base-medium-curly": "base-medium-curly.cf94873c",
18060
+ "base-medium-straight": "base-medium-straight.e168f8ca",
18061
+ "base-medium-wavy": "base-medium-wavy.ba9df58c",
18062
+ "base-short-coily": "base-short-coily.cce628a7",
18063
+ "base-short-curly": "base-short-curly.91585291",
18064
+ "base-short-straight": "base-short-straight.3d27b4dd",
18065
+ "base-short-wavy": "base-short-wavy.8cd385d9",
18066
+ "base-thinning": "base-thinning.921feecf",
18067
+ "base-very-long-curly": "base-very-long-curly.9604aa2c",
18068
+ "base-very-long-straight": "base-very-long-straight.35f46100",
18069
+ "base-very-long-wavy": "base-very-long-wavy.9ae6fc79",
18070
+ "base-wet": "base-wet.477dbfbc",
18071
+ "bear": "bear.64ab6686",
18072
+ "beautiful-woman": "beautiful-woman.24189676",
18073
+ "beijing-hutong": "beijing-hutong.76f7ffec",
18074
+ "beirut-riviera": "beirut-riviera.ac571e9e",
18075
+ "berlin-alt": "berlin-alt.cef33626",
18076
+ "bogota-cosmopolitan": "bogota-cosmopolitan.76dfe5b2",
18077
+ "boho-la": "boho-la.513a474a",
18078
+ "bondi-beach": "bondi-beach.cc59bef6",
18079
+ "boy-next-door": "boy-next-door.00517ae2",
18080
+ "brazilian": "brazilian.1d5c6b88",
18081
+ "brooklyn-hipster": "brooklyn-hipster.a02dafc0",
18082
+ "brows-arched": "brows-arched.692c9c09",
18083
+ "brows-bold": "brows-bold.1e2aa159",
18084
+ "brows-microbladed": "brows-microbladed.45792f9c",
18085
+ "brows-natural": "brows-natural.504c5f1a",
18086
+ "brows-soft": "brows-soft.469c07a5",
18087
+ "brows-straight": "brows-straight.7a5561a3",
18088
+ "brows-thick": "brows-thick.0544a421",
18089
+ "brows-thin": "brows-thin.6c292a1a",
18090
+ "brows-tinted": "brows-tinted.7d824c8a",
18091
+ "brows-unibrow": "brows-unibrow.21908d56",
18092
+ "buenos-aires-tango": "buenos-aires-tango.0bc0fb95",
18093
+ "businessman": "businessman.ef3c8fdc",
18094
+ "businesswoman": "businesswoman.bb2b7d57",
18095
+ "bust-average": "bust-average.a692b6d6",
18096
+ "bust-full": "bust-full.13d4a4a7",
18097
+ "bust-small": "bust-small.6fca2e36",
18098
+ "bust-very-full": "bust-very-full.015464c3",
18099
+ "cairene-cosmopolitan": "cairene-cosmopolitan.c5b89fa0",
18100
+ "cali-beach": "cali-beach.24602197",
18101
+ "canthal-neutral": "canthal-neutral.85814b09",
18102
+ "cape-town-cosmopolitan": "cape-town-cosmopolitan.3a088a23",
18103
+ "caped-crusader": "caped-crusader.573520dc",
18104
+ "caped-crusader-man": "caped-crusader-man.df8541d5",
18105
+ "caped-crusader-woman": "caped-crusader-woman.2f7b0e7f",
18106
+ "captain-nemo": "captain-nemo.3b4a6a17",
18107
+ "caribbean-latino": "caribbean-latino.8b749d79",
18108
+ "carioca-rio": "carioca-rio.2e2acb66",
18109
+ "catalan-modern": "catalan-modern.d456749f",
18110
+ "catboy": "catboy.84bbb452",
18111
+ "catgirl": "catgirl.563abdff",
18112
+ "caveman": "caveman.7aed8c8b",
18113
+ "cavewoman": "cavewoman.7dcf64e1",
18114
+ "celtic": "celtic.254f4712",
18115
+ "centaur": "centaur.2baface4",
18116
+ "central-african": "central-african.ade477a2",
18117
+ "centurion": "centurion.73eda6ef",
18118
+ "cheekbones-average": "cheekbones-average.aa1189e2",
18119
+ "cheekbones-high-defined": "cheekbones-high-defined.15c9ff76",
18120
+ "cheekbones-low": "cheekbones-low.5d041829",
18121
+ "cheekbones-sculpted": "cheekbones-sculpted.fbe28059",
18122
+ "cheekbones-wide": "cheekbones-wide.cac3b8b0",
18123
+ "chef": "chef.3b56ba79",
18124
+ "chicago-south-side": "chicago-south-side.f53a9b1a",
18125
+ "chilango-traditional": "chilango-traditional.7fc9d9d4",
18126
+ "chinese": "chinese.5f908dbe",
18127
+ "cleopatra": "cleopatra.0cca50dd",
18128
+ "construction-worker": "construction-worker.a2e182c4",
18129
+ "cowardly-lion": "cowardly-lion.fb80e9f0",
18130
+ "crusader": "crusader.337a99a3",
18131
+ "cyborg": "cyborg.689a9408",
18132
+ "cyborg-man": "cyborg-man.2592b90a",
18133
+ "cyborg-woman": "cyborg-woman.c3dc9782",
18134
+ "czech": "czech.15cc5210",
18135
+ "dakar-francophone": "dakar-francophone.81731f36",
18136
+ "danish": "danish.785f39b2",
18137
+ "demon": "demon.8b78d570",
18138
+ "detective": "detective.1f603e4a",
18139
+ "dmv-go-go": "dmv-go-go.ff785218",
18140
+ "doctor": "doctor.decd6c53",
18141
+ "dorothy-oz": "dorothy-oz.28ea6954",
18142
+ "dracula": "dracula.88f16e11",
18143
+ "dragonkin": "dragonkin.505b2ded",
18144
+ "druid": "druid.8f515c24",
18145
+ "dubai-modern": "dubai-modern.d66254b0",
18146
+ "dwarf": "dwarf.2c738257",
18147
+ "east-african": "east-african.94770acb",
18148
+ "east-asian": "east-asian.93728c3f",
18149
+ "eastern-european-glam": "eastern-european-glam.7591f99e",
18150
+ "eastern-european-stoic": "eastern-european-stoic.5630b64d",
18151
+ "elegant-woman": "elegant-woman.c7838f49",
18152
+ "elf": "elf.d2ce8a4c",
18153
+ "elf-man": "elf-man.11e4767e",
18154
+ "elf-woman": "elf-woman.d16020ff",
18155
+ "english-rose": "english-rose.85317171",
18156
+ "european-any": "european-any.fafa4abf",
18157
+ "eye-almond": "eye-almond.bc7e3503",
18158
+ "eye-close-set": "eye-close-set.0b759f93",
18159
+ "eye-deep-set": "eye-deep-set.bc9d9b5a",
18160
+ "eye-double-eyelid": "eye-double-eyelid.67fe42ff",
18161
+ "eye-downturned": "eye-downturned.6b0844fc",
18162
+ "eye-droopy": "eye-droopy.007b3d94",
18163
+ "eye-hooded": "eye-hooded.6cf3ec31",
18164
+ "eye-monolid": "eye-monolid.17bcef86",
18165
+ "eye-narrow": "eye-narrow.f0e41313",
18166
+ "eye-round": "eye-round.721c97b9",
18167
+ "eye-spacing-average": "eye-spacing-average.be643de1",
18168
+ "eye-state-closed": "eye-state-closed.dc36ccab",
18169
+ "eye-state-gazing-away": "eye-state-gazing-away.9315db66",
18170
+ "eye-state-gazing-down": "eye-state-gazing-down.b081a87e",
18171
+ "eye-state-gazing-up": "eye-state-gazing-up.f603f35b",
18172
+ "eye-state-glassy": "eye-state-glassy.6238ec85",
18173
+ "eye-state-half-lidded": "eye-state-half-lidded.eb56deed",
18174
+ "eye-state-staring-camera": "eye-state-staring-camera.40a3470e",
18175
+ "eye-state-wide-eyed": "eye-state-wide-eyed.07f7a0ae",
18176
+ "eye-upturned": "eye-upturned.b7e49e00",
18177
+ "eye-wide": "eye-wide.4ddd5668",
18178
+ "eye-wide-set": "eye-wide-set.270c2f04",
18179
+ "eyelid-standard": "eyelid-standard.8d4c2eef",
18180
+ "eyes-amber": "eyes-amber.307003c2",
18181
+ "eyes-black": "eyes-black.9453213e",
18182
+ "eyes-blue": "eyes-blue.c8c38a75",
18183
+ "eyes-brown": "eyes-brown.c9cfcfc5",
18184
+ "eyes-gold": "eyes-gold.160c9aca",
18185
+ "eyes-gray": "eyes-gray.0072e258",
18186
+ "eyes-green": "eyes-green.b66fa233",
18187
+ "eyes-hazel": "eyes-hazel.9e51d8b8",
18188
+ "eyes-pink": "eyes-pink.e692c76f",
18189
+ "eyes-red": "eyes-red.7984bf8e",
18190
+ "eyes-silver": "eyes-silver.1e9f3130",
18191
+ "eyes-turquoise": "eyes-turquoise.661fd2ae",
18192
+ "eyes-violet": "eyes-violet.15fa47a7",
18193
+ "eyeset-average": "eyeset-average.f9587aa7",
18194
+ "eyeset-high": "eyeset-high.39ab51f6",
18195
+ "eyeset-low": "eyeset-low.e325b760",
18196
+ "face-clean-shaven": "face-clean-shaven.d04de7eb",
18197
+ "face-diamond": "face-diamond.e3365863",
18198
+ "face-five-oclock-shadow": "face-five-oclock-shadow.214ad504",
18199
+ "face-full-beard": "face-full-beard.b06c169d",
18200
+ "face-goatee": "face-goatee.70ba5fbc",
18201
+ "face-heart": "face-heart.2686002d",
18202
+ "face-mustache": "face-mustache.16d74dc2",
18203
+ "face-oblong": "face-oblong.61ec6394",
18204
+ "face-oval": "face-oval.886f59a8",
18205
+ "face-round": "face-round.9f39b316",
18206
+ "face-short-beard": "face-short-beard.af30d08c",
18207
+ "face-square": "face-square.aed294cf",
18208
+ "face-stubble": "face-stubble.5d6f9d2f",
18209
+ "face-triangular": "face-triangular.f433b6b2",
18210
+ "facial-fullness-average": "facial-fullness-average.762dbcf2",
18211
+ "facial-fullness-full": "facial-fullness-full.62d93d33",
18212
+ "facial-fullness-gaunt": "facial-fullness-gaunt.4188130d",
18213
+ "facial-fullness-lean": "facial-fullness-lean.6177edbd",
18214
+ "facial-fullness-round": "facial-fullness-round.199ae5d7",
18215
+ "farmer": "farmer.331b03a2",
18216
+ "faun": "faun.81cb2fd2",
18217
+ "feature-aegyo-sal": "feature-aegyo-sal.d427846a",
18218
+ "feature-back-tattoo": "feature-back-tattoo.4ec928a2",
18219
+ "feature-bare-shoulders": "feature-bare-shoulders.07dcca4b",
18220
+ "feature-birthmark": "feature-birthmark.7aa4a3d8",
18221
+ "feature-chest-tattoo": "feature-chest-tattoo.e424c5c2",
18222
+ "feature-cleft-chin": "feature-cleft-chin.15fd25b6",
18223
+ "feature-collarbone-visible": "feature-collarbone-visible.badbbc9b",
18224
+ "feature-dimpled-chin": "feature-dimpled-chin.dc61f5c0",
18225
+ "feature-dimples": "feature-dimples.882152b1",
18226
+ "feature-ear-piercings": "feature-ear-piercings.4d3c5767",
18227
+ "feature-elongated-neck": "feature-elongated-neck.0deb3bb7",
18228
+ "feature-eye-bags": "feature-eye-bags.fbee5aef",
18229
+ "feature-face-tattoo": "feature-face-tattoo.4cda5e86",
18230
+ "feature-fangs": "feature-fangs.a4dcbb06",
18231
+ "feature-forearm-tattoo": "feature-forearm-tattoo.f07b7858",
18232
+ "feature-freckles": "feature-freckles.2b5af280",
18233
+ "feature-gap-teeth": "feature-gap-teeth.77d13397",
18234
+ "feature-glasses": "feature-glasses.da35804b",
18235
+ "feature-hand-tattoos": "feature-hand-tattoos.47e0f0d0",
18236
+ "feature-heterochromia": "feature-heterochromia.8960094f",
18237
+ "feature-leg-tattoo": "feature-leg-tattoo.999d01fa",
18238
+ "feature-lip-piercing": "feature-lip-piercing.4f074400",
18239
+ "feature-midriff-visible": "feature-midriff-visible.d5c3ffc1",
18240
+ "feature-mole": "feature-mole.86214bc4",
18241
+ "feature-navel-visible": "feature-navel-visible.3ae33e88",
18242
+ "feature-nostril-piercing": "feature-nostril-piercing.9e5818e2",
18243
+ "feature-piercing": "feature-piercing.5f095ccc",
18244
+ "feature-scar": "feature-scar.6fd43c5e",
18245
+ "feature-sleeve-tattoo": "feature-sleeve-tattoo.8a57bd76",
18246
+ "feature-tattoos": "feature-tattoos.b7208be9",
18247
+ "feature-under-eye-circles": "feature-under-eye-circles.6c8b5ebb",
18248
+ "feature-visible-piercings": "feature-visible-piercings.5cdba354",
18249
+ "feature-vitiligo": "feature-vitiligo.edcf7edc",
18250
+ "femboy": "femboy.57646350",
18251
+ "femme-fatale": "femme-fatale.11fb0348",
18252
+ "feral-wildman": "feral-wildman.d1352c60",
18253
+ "filipino": "filipino.5656d473",
18254
+ "finnish": "finnish.f92cc3b3",
18255
+ "firefighter": "firefighter.d9e30f88",
18256
+ "flight-attendant": "flight-attendant.5c343e49",
18257
+ "frame-average": "frame-average.ae2c9d90",
18258
+ "frame-broad": "frame-broad.f84fe416",
18259
+ "frame-petite": "frame-petite.2cb2a5b7",
18260
+ "frame-slim": "frame-slim.06112816",
18261
+ "frankenstein-monster": "frankenstein-monster.15f158a0",
18262
+ "french": "french.916c1127",
18263
+ "gangnam-glam": "gangnam-glam.35f37ca8",
18264
+ "gentleman": "gentleman.ff00e0f9",
18265
+ "germanic": "germanic.0189483f",
18266
+ "ghost": "ghost.26004442",
18267
+ "ginza-office": "ginza-office.357e843d",
18268
+ "girl-next-door": "girl-next-door.067745c4",
18269
+ "gladiator": "gladiator.321aeaee",
18270
+ "goblin": "goblin.35d79297",
18271
+ "god": "god.2b5ab072",
18272
+ "goddess": "goddess.ad30ad48",
18273
+ "goth": "goth.8b32fdf9",
18274
+ "graceful-woman": "graceful-woman.a68a59e0",
18275
+ "greek": "greek.fcc4b151",
18276
+ "greek-mediterranean": "greek-mediterranean.f81ee0ab",
18277
+ "grim-reaper": "grim-reaper.2569b486",
18278
+ "hair-ash-blonde": "hair-ash-blonde.de2d1bda",
18279
+ "hair-auburn": "hair-auburn.9a70be5d",
18280
+ "hair-black": "hair-black.0ddfa287",
18281
+ "hair-blonde": "hair-blonde.b55cee73",
18282
+ "hair-blue": "hair-blue.f481ec14",
18283
+ "hair-brown": "hair-brown.d822daff",
18284
+ "hair-burgundy": "hair-burgundy.ef64b93a",
18285
+ "hair-caramel": "hair-caramel.9df2e0e9",
18286
+ "hair-chestnut": "hair-chestnut.d27c23ce",
18287
+ "hair-chocolate": "hair-chocolate.d3939f13",
18288
+ "hair-copper": "hair-copper.7bde014d",
18289
+ "hair-creamy": "hair-creamy.e19dc4ee",
18290
+ "hair-dark-brown": "hair-dark-brown.6f2c491c",
18291
+ "hair-dyed": "hair-dyed.f998f32d",
18292
+ "hair-ginger": "hair-ginger.627ab53a",
18293
+ "hair-gray": "hair-gray.00a9adef",
18294
+ "hair-green": "hair-green.660f2c76",
18295
+ "hair-honey": "hair-honey.693b9aeb",
18296
+ "hair-jet-black": "hair-jet-black.19fa76f5",
18297
+ "hair-lavender": "hair-lavender.e2562d95",
18298
+ "hair-light-brown": "hair-light-brown.886d0b91",
18299
+ "hair-magenta": "hair-magenta.20871a96",
18300
+ "hair-mermaid": "hair-mermaid.5985ba5b",
18301
+ "hair-mint": "hair-mint.5deed4a8",
18302
+ "hair-pastel-blue": "hair-pastel-blue.caaf7784",
18303
+ "hair-pastel-pink": "hair-pastel-pink.20917313",
18304
+ "hair-peach": "hair-peach.8425a328",
18305
+ "hair-pink": "hair-pink.305739ec",
18306
+ "hair-platinum": "hair-platinum.b1b325ef",
18307
+ "hair-purple": "hair-purple.db070bee",
18308
+ "hair-rainbow": "hair-rainbow.56401c53",
18309
+ "hair-red": "hair-red.68a93f0e",
18310
+ "hair-rose-gold": "hair-rose-gold.fc4cb0ee",
18311
+ "hair-salt-pepper": "hair-salt-pepper.890424d3",
18312
+ "hair-silver": "hair-silver.40e3d472",
18313
+ "hair-strawberry": "hair-strawberry.10f0b520",
18314
+ "hair-teal": "hair-teal.1e0d1de6",
18315
+ "hair-white": "hair-white.ede1960d",
18316
+ "half-elf": "half-elf.7ee2ee17",
18317
+ "handsome-man": "handsome-man.d113fbe7",
18318
+ "harlem-classic": "harlem-classic.ead2e23b",
18319
+ "hawaii-island": "hawaii-island.2957cc6f",
18320
+ "hips-balanced": "hips-balanced.8e3827cb",
18321
+ "hips-narrow": "hips-narrow.e905840c",
18322
+ "hips-wide": "hips-wide.f3f07481",
18323
+ "hong-kong-cinematic": "hong-kong-cinematic.3a70d257",
18324
+ "iberian": "iberian.388b6ce8",
18325
+ "icelandic": "icelandic.69bc6644",
18326
+ "indigenous-any": "indigenous-any.97c4f62a",
18327
+ "indonesian-malay": "indonesian-malay.7c0acf0c",
18328
+ "inuit": "inuit.edd729f6",
18329
+ "israeli": "israeli.ebf4a1a0",
18330
+ "istanbul-bosphorus": "istanbul-bosphorus.cd094332",
18331
+ "italian": "italian.eb5b746d",
18332
+ "japanese": "japanese.26ff1a91",
18333
+ "jaw-double": "jaw-double.ed20ea16",
18334
+ "jaw-pointed": "jaw-pointed.90268a61",
18335
+ "jaw-soft": "jaw-soft.7b0295c8",
18336
+ "jaw-strong": "jaw-strong.9442d3f6",
18337
+ "jaw-wide": "jaw-wide.56013eba",
18338
+ "jerusalem-stone": "jerusalem-stone.7b602219",
18339
+ "joan-of-arc": "joan-of-arc.72e7d4ef",
18340
+ "johannesburg-urban": "johannesburg-urban.c873b0bf",
18341
+ "journalist": "journalist.d82e88eb",
18342
+ "judge": "judge.ea3c1f04",
18343
+ "karate-fighter": "karate-fighter.0a2683f8",
18344
+ "khmer": "khmer.e438ac8b",
18345
+ "king-arthur": "king-arthur.9a110d20",
18346
+ "kinshasa-sape": "kinshasa-sape.e793d787",
18347
+ "knight": "knight.ebe07e0d",
18348
+ "knight-man": "knight-man.6312ed68",
18349
+ "knight-woman": "knight-woman.44b02a31",
18350
+ "korean": "korean.ac39779e",
18351
+ "kung-fu-master": "kung-fu-master.54078936",
18352
+ "kunoichi": "kunoichi.36d1e4b6",
18353
+ "lagos-afro-glam": "lagos-afro-glam.112a127c",
18354
+ "latin-american": "latin-american.56206332",
18355
+ "lawyer": "lawyer.436f5bdb",
18356
+ "lip-state-bare": "lip-state-bare.df6331a6",
18357
+ "lip-state-bitten": "lip-state-bitten.095dadc1",
18358
+ "lip-state-bold-black": "lip-state-bold-black.25847ba4",
18359
+ "lip-state-bold-red": "lip-state-bold-red.24b999e6",
18360
+ "lip-state-burgundy": "lip-state-burgundy.ed9f17c1",
18361
+ "lip-state-chapped": "lip-state-chapped.395dca92",
18362
+ "lip-state-glossy": "lip-state-glossy.6e79ae8b",
18363
+ "lip-state-mauve": "lip-state-mauve.dd101f88",
18364
+ "lip-state-parted": "lip-state-parted.49df312d",
18365
+ "lip-state-plum": "lip-state-plum.e58bcfce",
18366
+ "lip-state-pouting": "lip-state-pouting.678de7c7",
18367
+ "lip-state-pursed": "lip-state-pursed.b6f161ab",
18368
+ "lips-cupids-bow": "lips-cupids-bow.f6a7edf3",
18369
+ "lips-full": "lips-full.5b360348",
18370
+ "lips-full-lower": "lips-full-lower.5e3e14cc",
18371
+ "lips-heart": "lips-heart.e4846849",
18372
+ "lips-medium": "lips-medium.284333c5",
18373
+ "lips-natural": "lips-natural.3b0383db",
18374
+ "lips-small": "lips-small.09de7235",
18375
+ "lips-thin": "lips-thin.497d66b7",
18376
+ "lips-wide": "lips-wide.2f3b0121",
18377
+ "london-prep": "london-prep.ab700df0",
18378
+ "luanda-lusophone": "luanda-lusophone.ba6ea78e",
18379
+ "madrile\xF1a": "madrilena.80edd022",
18380
+ "madrile\xF1o": "madrileno.f281e739",
18381
+ "maghreb-coastal": "maghreb-coastal.507d2bb8",
18382
+ "magical-girl": "magical-girl.88fbeedf",
18383
+ "man": "man.d6bed999",
18384
+ "manchester-indie": "manchester-indie.e5aab9bb",
18385
+ "marrakech-bohemian": "marrakech-bohemian.a61ff7cd",
18386
+ "masked-vigilante": "masked-vigilante.c2ca668c",
18387
+ "mass-average": "mass-average.882e2121",
18388
+ "mass-full": "mass-full.ff8a45c4",
18389
+ "mass-heavy": "mass-heavy.4b24a5c8",
18390
+ "mass-lean": "mass-lean.e8f80c9f",
18391
+ "mechanic": "mechanic.ce6ed356",
18392
+ "mediterranean": "mediterranean.1891dd5f",
18393
+ "mena-any": "mena-any.61739d1c",
18394
+ "merlin": "merlin.4a510bf6",
18395
+ "mermaid": "mermaid.776e28b5",
18396
+ "merman": "merman.9b914bcf",
18397
+ "mexican-mesoamerican": "mexican-mesoamerican.3db55830",
18398
+ "mexico-city-chic": "mexico-city-chic.a569a510",
18399
+ "miami-latina": "miami-latina.16272589",
18400
+ "miami-latino": "miami-latino.69f94943",
18401
+ "middle-eastern": "middle-eastern.ba4852ec",
18402
+ "milanese-fashion": "milanese-fashion.296a9ea9",
18403
+ "mixed": "mixed.e2c2056e",
18404
+ "mongol-warrior": "mongol-warrior.2a863884",
18405
+ "mongolian-tibetan": "mongolian-tibetan.6e1490dd",
18406
+ "mr-hyde": "mr-hyde.a2411b5a",
18407
+ "mumbai-bollywood": "mumbai-bollywood.e8c2bf8f",
18408
+ "munich-traditional": "munich-traditional.3006319e",
18409
+ "musician": "musician.1fabfea7",
18410
+ "musketeer": "musketeer.d4d8ee22",
18411
+ "mutant": "mutant.c4f8b5e0",
18412
+ "mysterious-figure": "mysterious-figure.6f7029e8",
18413
+ "nairobi-cosmopolitan": "nairobi-cosmopolitan.6965b9f3",
18414
+ "nashville-country": "nashville-country.a4eb14a2",
18415
+ "nashville-cowboy": "nashville-cowboy.db923886",
18416
+ "native-american": "native-american.061cec3a",
18417
+ "neanderthal": "neanderthal.defc1c63",
18418
+ "necromancer": "necromancer.ff3b5f7d",
18419
+ "new-england-prep": "new-england-prep.2d5f43f5",
18420
+ "ninja": "ninja.4af2ef6f",
18421
+ "nola-creole": "nola-creole.4c862ac1",
18422
+ "norcal-hippie": "norcal-hippie.0f613651",
18423
+ "nordic": "nordic.7d40c268",
18424
+ "norwegian": "norwegian.0a5dc507",
18425
+ "nose-aquiline": "nose-aquiline.7d245d4b",
18426
+ "nose-broad": "nose-broad.8fb09d3c",
18427
+ "nose-button": "nose-button.8b8389c1",
18428
+ "nose-hooked": "nose-hooked.3104bb61",
18429
+ "nose-narrow": "nose-narrow.f18c4f78",
18430
+ "nose-roman": "nose-roman.18edd526",
18431
+ "nose-snub": "nose-snub.d9fbb6d2",
18432
+ "nose-straight": "nose-straight.2198c654",
18433
+ "nose-tip-drooping": "nose-tip-drooping.44fe00dd",
18434
+ "nose-tip-natural": "nose-tip-natural.0d901d3c",
18435
+ "nose-tip-refined": "nose-tip-refined.ea59e2f8",
18436
+ "nose-tip-rounded": "nose-tip-rounded.da12465c",
18437
+ "nose-tip-upturned": "nose-tip-upturned.d2d3735e",
18438
+ "not-defined": "not-defined.2c6ef9e9",
18439
+ "nun": "nun.e1d5dbd2",
18440
+ "nurse": "nurse.0b1fb0d6",
18441
+ "nyc-fashion": "nyc-fashion.40ffdf0d",
18442
+ "nyc-sharp": "nyc-sharp.f9ec3dac",
18443
+ "orc": "orc.4f32e967",
18444
+ "osaka-everyday": "osaka-everyday.f70a4435",
18445
+ "outback-stockman": "outback-stockman.fe20eff0",
18446
+ "pacific-islander": "pacific-islander.1e9307e4",
18447
+ "parisian-flaneur": "parisian-flaneur.b4f83da3",
18448
+ "parisienne": "parisienne.2078870a",
18449
+ "paulista": "paulista.ac3e8047",
18450
+ "persian": "persian.06e3183d",
18451
+ "persian-glam": "persian-glam.af63e019",
18452
+ "peter-pan": "peter-pan.f65d0d17",
18453
+ "phantom-opera": "phantom-opera.efedd2be",
18454
+ "pilot": "pilot.60e9e573",
18455
+ "pirate": "pirate.601480f4",
18456
+ "pnw-granola": "pnw-granola.0ff8e6aa",
18457
+ "police-officer": "police-officer.32508cf2",
18458
+ "policeman": "policeman.2a9ee10d",
18459
+ "policewoman": "policewoman.c51b625e",
18460
+ "porte\xF1o": "porteno.3c696546",
18461
+ "priest": "priest.f7c42b55",
18462
+ "prince": "prince.aa18454f",
18463
+ "princess": "princess.b3f7e096",
18464
+ "ranger": "ranger.e9f3fdb4",
18465
+ "robin-hood": "robin-hood.283d0b04",
18466
+ "robot": "robot.59d59049",
18467
+ "rugged-man": "rugged-man.b8748c04",
18468
+ "russian": "russian.1429e993",
18469
+ "sabra": "sabra.9b1e2cc3",
18470
+ "samarkand-silk-road": "samarkand-silk-road.67bd8700",
18471
+ "samurai": "samurai.a52cb568",
18472
+ "samurai-man": "samurai-man.1fdeaff2",
18473
+ "samurai-woman": "samurai-woman.2fcf592b",
18474
+ "santa-claus": "santa-claus.4ccdc63b",
18475
+ "scandi-minimal": "scandi-minimal.523c802c",
18476
+ "scarecrow-oz": "scarecrow-oz.03c8170e",
18477
+ "scientist": "scientist.74883917",
18478
+ "seoul-k-pop": "seoul-k-pop.b692640b",
18479
+ "shanghai-modern": "shanghai-modern.33fc6694",
18480
+ "shaolin-monk": "shaolin-monk.c74bc683",
18481
+ "sherlock-holmes": "sherlock-holmes.8e9d1104",
18482
+ "shibuya-streetwear": "shibuya-streetwear.89d6cf63",
18483
+ "sicilian-beach": "sicilian-beach.6b283aae",
18484
+ "silhouette-athletic": "silhouette-athletic.d34c439e",
18485
+ "silhouette-hourglass": "silhouette-hourglass.92fa8e9e",
18486
+ "silhouette-inverted": "silhouette-inverted.434484f3",
18487
+ "silhouette-pear": "silhouette-pear.2007e0ac",
18488
+ "silhouette-rectangular": "silhouette-rectangular.c8a9aa0b",
18489
+ "silver-fox": "silver-fox.a88e888d",
18490
+ "skin-brown": "skin-brown.322fc699",
18491
+ "skin-dark": "skin-dark.ac4dcaf3",
18492
+ "skin-fair": "skin-fair.cd7f7b02",
18493
+ "skin-medium": "skin-medium.a8fb61b7",
18494
+ "skin-olive": "skin-olive.7511bea5",
18495
+ "skin-tan": "skin-tan.35fac0a5",
18496
+ "skin-very-dark": "skin-very-dark.e549eef5",
18497
+ "skin-very-fair": "skin-very-fair.3c4720e8",
18498
+ "slavic": "slavic.bf0cf9c5",
18499
+ "soft-butch": "soft-butch.792a0390",
18500
+ "soldier": "soldier.ecc5cc82",
18501
+ "sorcerer": "sorcerer.0daa8d13",
18502
+ "sorceress": "sorceress.cf4210f1",
18503
+ "south-asian": "south-asian.fbe88975",
18504
+ "south-india-traditional": "south-india-traditional.710fe3e3",
18505
+ "southeast-asian": "southeast-asian.6912605e",
18506
+ "southern-african": "southern-african.cb5fb395",
18507
+ "southern-belle": "southern-belle.97d426e2",
18508
+ "southern-cone": "southern-cone.af853610",
18509
+ "southern-gentleman": "southern-gentleman.57ccdb40",
18510
+ "space-marine": "space-marine.2cd0ff57",
18511
+ "spartan-warrior": "spartan-warrior.a8e42f6a",
18512
+ "stunning-model": "stunning-model.25296a3b",
18513
+ "stylish-influencer": "stylish-influencer.2f2d3ee7",
18514
+ "sumo-wrestler": "sumo-wrestler.a8c26c39",
18515
+ "super-soldier": "super-soldier.f024b621",
18516
+ "superhero": "superhero.25ce9fbd",
18517
+ "superheroine": "superheroine.3538fe42",
18518
+ "supermodel": "supermodel.09201ad9",
18519
+ "supervillain": "supervillain.adf639c2",
18520
+ "surgeon": "surgeon.ca7c440b",
18521
+ "swahili-coast": "swahili-coast.eb18d0b5",
18522
+ "swedish": "swedish.077da3e3",
18523
+ "tashkent-modern": "tashkent-modern.02a029e0",
18524
+ "teacher": "teacher.6e56ed1f",
18525
+ "tel-aviv-beach": "tel-aviv-beach.77c9282a",
18526
+ "texas-cowboy": "texas-cowboy.3937dc42",
18527
+ "texas-cowgirl": "texas-cowgirl.4b6e6150",
18528
+ "texture-acne-scarred": "texture-acne-scarred.c4473d07",
18529
+ "texture-ashen": "texture-ashen.c18145d8",
18530
+ "texture-baby-soft": "texture-baby-soft.b0012681",
18531
+ "texture-blemished": "texture-blemished.481c0e52",
18532
+ "texture-dewy": "texture-dewy.9d65b82f",
18533
+ "texture-freckled": "texture-freckled.65e37192",
18534
+ "texture-glistening": "texture-glistening.96a0b98f",
18535
+ "texture-goosebumps": "texture-goosebumps.6992862e",
18536
+ "texture-matte": "texture-matte.d002334a",
18537
+ "texture-oily": "texture-oily.ac1a4399",
18538
+ "texture-porcelain": "texture-porcelain.5c6199dc",
18539
+ "texture-ruddy": "texture-ruddy.720b4f98",
18540
+ "texture-shower-fresh-wet": "texture-shower-fresh-wet.ef1f1acb",
18541
+ "texture-smooth": "texture-smooth.157ef1a9",
18542
+ "texture-sun-kissed": "texture-sun-kissed.d129181d",
18543
+ "texture-tan-lines": "texture-tan-lines.e9e11ba8",
18544
+ "texture-tanned": "texture-tanned.67065ef7",
18545
+ "texture-weathered": "texture-weathered.28c3fdb0",
18546
+ "texture-wrinkled": "texture-wrinkled.f8d764d5",
18547
+ "thai": "thai.c8513baf",
18548
+ "thick": "thick.3e9d2e5d",
18549
+ "tiefling": "tiefling.7e838233",
18550
+ "tin-man": "tin-man.56955978",
18551
+ "tokyo-harajuku": "tokyo-harajuku.0734e03e",
18552
+ "tomboy": "tomboy.f6c8a669",
18553
+ "tough-guy": "tough-guy.50dac40a",
18554
+ "turkish": "turkish.66810177",
18555
+ "twink": "twink.a3508b54",
18556
+ "ukrainian": "ukrainian.b69e81ed",
18557
+ "valkyrie": "valkyrie.1bedd383",
18558
+ "valley-girl": "valley-girl.5898bb6c",
18559
+ "vampire": "vampire.07d80bd3",
18560
+ "vampire-man": "vampire-man.3fc6397e",
18561
+ "vampire-woman": "vampire-woman.5b937d84",
18562
+ "vegas-glam": "vegas-glam.2aff6744",
18563
+ "vegas-suit": "vegas-suit.fb77c9b2",
18564
+ "vietnamese": "vietnamese.eb1b8774",
18565
+ "viking-warrior": "viking-warrior.965f44e7",
18566
+ "waist-average": "waist-average.061081a9",
18567
+ "waist-defined": "waist-defined.8e232aea",
18568
+ "waist-straight": "waist-straight.5f67cd31",
18569
+ "werewolf": "werewolf.693ea905",
18570
+ "west-african": "west-african.3075244d",
18571
+ "west-coast-hip-hop": "west-coast-hip-hop.f3a874cd",
18572
+ "wise-elder": "wise-elder.2c8166e5",
18573
+ "witch": "witch.318b2d4e",
18574
+ "wizard": "wizard.a7710a5f",
18575
+ "woman": "woman.ff7f6f85"
18576
+ },
18577
+ "sections": {
18578
+ "accessories": "accessories.08c7cf49",
18579
+ "beauty-hair": "beauty-hair.fa5c89b8",
18580
+ "body": "body.889bf7ef",
18581
+ "fabric-fit": "fabric-fit.e5b448e2",
18582
+ "face": "face.20c80976",
18583
+ "features": "features.5926664a",
18584
+ "hair": "hair.a1a94a09",
18585
+ "identity": "identity.2d5ec1a4",
18586
+ "skin-eyes": "skin-eyes.b66d13cb",
18587
+ "wardrobe": "wardrobe.853ab11b"
18588
+ },
18589
+ "styling": {
18590
+ "bottom-bike-shorts": "bottom-bike-shorts.9060553c",
18591
+ "bottom-cargo": "bottom-cargo.2044a8af",
18592
+ "bottom-chinos": "bottom-chinos.ed22cab7",
18593
+ "bottom-culottes": "bottom-culottes.75dfbcba",
18594
+ "bottom-denim-shorts": "bottom-denim-shorts.1b7f4195",
18595
+ "bottom-harem-pants": "bottom-harem-pants.cf288f56",
18596
+ "bottom-jeans": "bottom-jeans.c871be4d",
18597
+ "bottom-leggings": "bottom-leggings.39bfd7cd",
18598
+ "bottom-low-rise-jeans": "bottom-low-rise-jeans.9f40e6b0",
18599
+ "bottom-maxi-skirt": "bottom-maxi-skirt.add72e11",
18600
+ "bottom-midi-skirt": "bottom-midi-skirt.a0b43f5a",
18601
+ "bottom-mini-skirt": "bottom-mini-skirt.3f3bbfd2",
18602
+ "bottom-mom-jeans": "bottom-mom-jeans.e48648ec",
18603
+ "bottom-overalls": "bottom-overalls.2b44e94f",
18604
+ "bottom-palazzo-pants": "bottom-palazzo-pants.a1ecb1f6",
18605
+ "bottom-pleated-skirt": "bottom-pleated-skirt.6f224319",
18606
+ "bottom-shorts": "bottom-shorts.fff80fc2",
18607
+ "bottom-skinny-jeans": "bottom-skinny-jeans.c25d454b",
18608
+ "bottom-sweatpants": "bottom-sweatpants.11e6427e",
18609
+ "bottom-trousers": "bottom-trousers.51010ca7",
18610
+ "bottom-wide-leg-jeans": "bottom-wide-leg-jeans.398fcc4b",
18611
+ "cut-bangs": "cut-bangs.b5d2bb2e",
18612
+ "cut-bardot-tendrils": "cut-bardot-tendrils.8a1a63d7",
18613
+ "cut-bob": "cut-bob.75f0dc0b",
18614
+ "cut-box-braids": "cut-box-braids.5ca05340",
18615
+ "cut-braids": "cut-braids.4a2efc0f",
18616
+ "cut-bun": "cut-bun.b584d833",
18617
+ "cut-buzz-cut": "cut-buzz-cut.3ed06739",
18618
+ "cut-cornrows": "cut-cornrows.cccbbe08",
18619
+ "cut-crew-cut": "cut-crew-cut.549cd2c2",
18620
+ "cut-crown-braid": "cut-crown-braid.749bab90",
18621
+ "cut-curtain-bangs": "cut-curtain-bangs.a1919836",
18622
+ "cut-dreadlocks": "cut-dreadlocks.ee424c7d",
18623
+ "cut-dutch-braid": "cut-dutch-braid.6c425623",
18624
+ "cut-faux-hawk": "cut-faux-hawk.1313c505",
18625
+ "cut-fishtail-braid": "cut-fishtail-braid.0fe04fe1",
18626
+ "cut-french-bob": "cut-french-bob.288e9ebb",
18627
+ "cut-french-braid": "cut-french-braid.be7cf82d",
18628
+ "cut-half-up": "cut-half-up.d8053596",
18629
+ "cut-high-ponytail": "cut-high-ponytail.3f76e6fb",
18630
+ "cut-lob": "cut-lob.f8c76078",
18631
+ "cut-micro-bob": "cut-micro-bob.4dbd218c",
18632
+ "cut-mohawk": "cut-mohawk.e8b781a9",
18633
+ "cut-mullet": "cut-mullet.2076b436",
18634
+ "cut-pixie": "cut-pixie.3fd3a300",
18635
+ "cut-pompadour": "cut-pompadour.30653f25",
18636
+ "cut-ponytail": "cut-ponytail.19eee211",
18637
+ "cut-shaved": "cut-shaved.6ad77f15",
18638
+ "cut-short": "cut-short.056116e6",
18639
+ "cut-short-curly": "cut-short-curly.5d93ef4c",
18640
+ "cut-side-swept": "cut-side-swept.5197e886",
18641
+ "cut-single-braid": "cut-single-braid.22e82326",
18642
+ "cut-sisterlocks": "cut-sisterlocks.4e4b4e10",
18643
+ "cut-slicked-back": "cut-slicked-back.546ad84e",
18644
+ "cut-space-buns": "cut-space-buns.369c3057",
18645
+ "cut-top-knot": "cut-top-knot.849f303a",
18646
+ "cut-two-braids": "cut-two-braids.4e20ba2e",
18647
+ "cut-undercut": "cut-undercut.744dad42",
18648
+ "cut-wispy-bangs": "cut-wispy-bangs.c95ecddf",
18649
+ "cut-wolf-cut": "cut-wolf-cut.4275c4b6",
18650
+ "eyewear-aviators": "eyewear-aviators.56442c0b",
18651
+ "eyewear-cat-eye": "eyewear-cat-eye.d3511b51",
18652
+ "eyewear-fashion": "eyewear-fashion.957d42fc",
18653
+ "eyewear-round": "eyewear-round.188d3f78",
18654
+ "eyewear-sport": "eyewear-sport.fe9c1610",
18655
+ "eyewear-sunglasses": "eyewear-sunglasses.3c458acc",
18656
+ "fabric-cashmere": "fabric-cashmere.91251a5c",
18657
+ "fabric-chiffon": "fabric-chiffon.7b0c07e6",
18658
+ "fabric-cotton": "fabric-cotton.91c05306",
18659
+ "fabric-denim": "fabric-denim.3a57d2c4",
18660
+ "fabric-fur": "fabric-fur.97982cdb",
18661
+ "fabric-lace": "fabric-lace.08a57549",
18662
+ "fabric-latex": "fabric-latex.60ba8233",
18663
+ "fabric-leather": "fabric-leather.8b321c73",
18664
+ "fabric-linen": "fabric-linen.628cf5dd",
18665
+ "fabric-satin": "fabric-satin.cfdcc5f0",
18666
+ "fabric-sequins": "fabric-sequins.774ba433",
18667
+ "fabric-silk": "fabric-silk.84512ca9",
18668
+ "fabric-tweed": "fabric-tweed.d10134ec",
18669
+ "fabric-velvet": "fabric-velvet.21a58226",
18670
+ "fabric-wool": "fabric-wool.96a61c88",
18671
+ "face-paint-costume": "face-paint-costume.96008fd2",
18672
+ "face-paint-dramatic": "face-paint-dramatic.12374a4b",
18673
+ "face-paint-flag": "face-paint-flag.2ce4ed7f",
18674
+ "face-paint-subtle": "face-paint-subtle.f511b75b",
18675
+ "face-paint-tribal": "face-paint-tribal.04a637a4",
18676
+ "face-paint-warpaint": "face-paint-warpaint.1c5e186d",
18677
+ "footwear-ankle-boots": "footwear-ankle-boots.b43998b5",
18678
+ "footwear-ballet-flats": "footwear-ballet-flats.1277a5f9",
18679
+ "footwear-barefoot": "footwear-barefoot.9ca2e9a8",
18680
+ "footwear-birkenstocks": "footwear-birkenstocks.edab59f4",
18681
+ "footwear-block-heels": "footwear-block-heels.aeca4ea6",
18682
+ "footwear-chelsea-boots": "footwear-chelsea-boots.c20f3cdf",
18683
+ "footwear-combat-boots": "footwear-combat-boots.64229643",
18684
+ "footwear-converse": "footwear-converse.0d3bae13",
18685
+ "footwear-cowboy-boots": "footwear-cowboy-boots.5dbeaa45",
18686
+ "footwear-crocs": "footwear-crocs.eae6153d",
18687
+ "footwear-doc-martens": "footwear-doc-martens.f81af079",
18688
+ "footwear-espadrilles": "footwear-espadrilles.d9649d28",
18689
+ "footwear-flip-flops": "footwear-flip-flops.0e96f97a",
18690
+ "footwear-high-tops": "footwear-high-tops.f5bd4895",
18691
+ "footwear-knee-boots": "footwear-knee-boots.50c30725",
18692
+ "footwear-loafers": "footwear-loafers.b97b74ae",
18693
+ "footwear-mules": "footwear-mules.650086b2",
18694
+ "footwear-oxfords": "footwear-oxfords.2af6e3cb",
18695
+ "footwear-platforms": "footwear-platforms.e147196b",
18696
+ "footwear-running-shoes": "footwear-running-shoes.f1e0bd27",
18697
+ "footwear-sandals": "footwear-sandals.17458d19",
18698
+ "footwear-sneakers": "footwear-sneakers.85306f6e",
18699
+ "footwear-stilettos": "footwear-stilettos.37c4a9de",
18700
+ "footwear-thigh-high-boots": "footwear-thigh-high-boots.77092a53",
18701
+ "footwear-vans": "footwear-vans.fcda0fdb",
18702
+ "hair-bedhead": "hair-bedhead.ee281255",
18703
+ "hair-damp": "hair-damp.abf9925b",
18704
+ "hair-flowing": "hair-flowing.45709728",
18705
+ "hair-frizzy": "hair-frizzy.0ef9ff0d",
18706
+ "hair-messy": "hair-messy.dfb67cdb",
18707
+ "hair-sleek": "hair-sleek.2b6f088d",
18708
+ "hair-strands-on-face": "hair-strands-on-face.643a1b7e",
18709
+ "hair-tousled": "hair-tousled.349f5ced",
18710
+ "hair-tucked-behind-ear": "hair-tucked-behind-ear.09337473",
18711
+ "hair-voluminous": "hair-voluminous.2a9a404b",
18712
+ "hair-wet": "hair-wet.43644a3e",
18713
+ "hair-windswept": "hair-windswept.a8530bd9",
18714
+ "headwear-bandana": "headwear-bandana.ac10a25d",
18715
+ "headwear-baseball-cap": "headwear-baseball-cap.627606af",
18716
+ "headwear-beanie": "headwear-beanie.b09137f3",
18717
+ "headwear-beret": "headwear-beret.88764f8f",
18718
+ "headwear-bowler": "headwear-bowler.e81d6dfd",
18719
+ "headwear-bucket-hat": "headwear-bucket-hat.bc519561",
18720
+ "headwear-cowboy-hat": "headwear-cowboy-hat.1dec95c4",
18721
+ "headwear-crown": "headwear-crown.a02c4c1d",
18722
+ "headwear-fascinator": "headwear-fascinator.287129df",
18723
+ "headwear-fedora": "headwear-fedora.506927cb",
18724
+ "headwear-headband": "headwear-headband.e8f87355",
18725
+ "headwear-helmet": "headwear-helmet.253412c6",
18726
+ "headwear-hood": "headwear-hood.bdbae33f",
18727
+ "headwear-nemes": "headwear-nemes.62eb47fc",
18728
+ "headwear-sun-hat": "headwear-sun-hat.022eb4e0",
18729
+ "headwear-turban": "headwear-turban.dc3d3aff",
18730
+ "headwear-veil": "headwear-veil.4031712e",
18731
+ "jewelry-body-chain": "jewelry-body-chain.9f11de48",
18732
+ "jewelry-choker-chain": "jewelry-choker-chain.a5a4da08",
18733
+ "jewelry-choker-leather": "jewelry-choker-leather.6448d973",
18734
+ "jewelry-choker-velvet": "jewelry-choker-velvet.1cca0ce0",
18735
+ "jewelry-chunky": "jewelry-chunky.8cf7a880",
18736
+ "jewelry-ear-cuff": "jewelry-ear-cuff.216c94fc",
18737
+ "jewelry-gold": "jewelry-gold.34ef222a",
18738
+ "jewelry-hoop-earrings": "jewelry-hoop-earrings.85855cd5",
18739
+ "jewelry-layered": "jewelry-layered.6b1dfc03",
18740
+ "jewelry-pearl": "jewelry-pearl.a86bff6e",
18741
+ "jewelry-septum-ring": "jewelry-septum-ring.08fa5b67",
18742
+ "jewelry-silver": "jewelry-silver.5df644e7",
18743
+ "jewelry-smart-watch": "jewelry-smart-watch.0b7ee144",
18744
+ "jewelry-statement": "jewelry-statement.cda47b86",
18745
+ "jewelry-stud-earrings": "jewelry-stud-earrings.730c79ec",
18746
+ "jewelry-subtle": "jewelry-subtle.dfdb83ec",
18747
+ "legwear-ankle-socks": "legwear-ankle-socks.594e2f2f",
18748
+ "legwear-bare": "legwear-bare.17089d6b",
18749
+ "legwear-crew-socks": "legwear-crew-socks.688b410c",
18750
+ "legwear-fishnets": "legwear-fishnets.52c65e84",
18751
+ "legwear-knee-highs": "legwear-knee-highs.5d3da43d",
18752
+ "legwear-lace-top-stockings": "legwear-lace-top-stockings.92b06ce7",
18753
+ "legwear-leg-warmers": "legwear-leg-warmers.2911f776",
18754
+ "legwear-opaque-tights": "legwear-opaque-tights.9e21d11a",
18755
+ "legwear-sheer-tights": "legwear-sheer-tights.c3fad1de",
18756
+ "legwear-thigh-highs": "legwear-thigh-highs.4bdb8559",
18757
+ "makeup-bold-lips": "makeup-bold-lips.cf748f63",
18758
+ "makeup-dewy": "makeup-dewy.50adfe5e",
18759
+ "makeup-editorial": "makeup-editorial.a1c3d23f",
18760
+ "makeup-glamour": "makeup-glamour.92acbca4",
18761
+ "makeup-goth": "makeup-goth.0e673755",
18762
+ "makeup-natural": "makeup-natural.a4988547",
18763
+ "makeup-smoky": "makeup-smoky.14e99615",
18764
+ "nails-dark": "nails-dark.32f9c9f3",
18765
+ "nails-french": "nails-french.f7558b76",
18766
+ "nails-long-acrylic": "nails-long-acrylic.4e298dc6",
18767
+ "nails-polished": "nails-polished.51c36a41",
18768
+ "nails-red": "nails-red.292eba64",
18769
+ "outerwear-blazer": "outerwear-blazer.28e27441",
18770
+ "outerwear-bomber": "outerwear-bomber.e880e53c",
18771
+ "outerwear-cardigan": "outerwear-cardigan.d85af034",
18772
+ "outerwear-denim-jacket": "outerwear-denim-jacket.e9fdf38c",
18773
+ "outerwear-fur-coat": "outerwear-fur-coat.be6db900",
18774
+ "outerwear-kimono-robe": "outerwear-kimono-robe.2ea0f939",
18775
+ "outerwear-leather-jacket": "outerwear-leather-jacket.324b625d",
18776
+ "outerwear-overcoat": "outerwear-overcoat.7397b8b8",
18777
+ "outerwear-parka": "outerwear-parka.b7b9a619",
18778
+ "outerwear-puffer": "outerwear-puffer.43e78da5",
18779
+ "outerwear-trench": "outerwear-trench.2a9b1981",
18780
+ "outerwear-varsity": "outerwear-varsity.46f27750",
18781
+ "outerwear-vest": "outerwear-vest.dbbb3cc9",
18782
+ "outfit-anime-cosplay": "outfit-anime-cosplay.d0b9e1aa",
18783
+ "outfit-athleisure": "outfit-athleisure.040f33da",
18784
+ "outfit-ballerina": "outfit-ballerina.522f51c6",
18785
+ "outfit-bathrobe": "outfit-bathrobe.707196bf",
18786
+ "outfit-bikini": "outfit-bikini.3270dab6",
18787
+ "outfit-business-suit": "outfit-business-suit.b72955f0",
18788
+ "outfit-caftan": "outfit-caftan.2071364d",
18789
+ "outfit-chapan": "outfit-chapan.6f5f9d86",
18790
+ "outfit-cocktail-dress": "outfit-cocktail-dress.c1a26736",
18791
+ "outfit-cottagecore": "outfit-cottagecore.f44c6cf5",
18792
+ "outfit-cyberpunk": "outfit-cyberpunk.c3116c60",
18793
+ "outfit-dark-academia": "outfit-dark-academia.41b62c5a",
18794
+ "outfit-emo": "outfit-emo.a30eb876",
18795
+ "outfit-evening-gown": "outfit-evening-gown.5e0dab39",
18796
+ "outfit-fairy": "outfit-fairy.31f59a56",
18797
+ "outfit-flapper": "outfit-flapper.5db4e7aa",
18798
+ "outfit-goth": "outfit-goth.7bdf9574",
18799
+ "outfit-kimono": "outfit-kimono.d2be8d07",
18800
+ "outfit-lab-coat": "outfit-lab-coat.a6f569c1",
18801
+ "outfit-lifeguard": "outfit-lifeguard.fcf481cb",
18802
+ "outfit-lingerie": "outfit-lingerie.a4f136b5",
18803
+ "outfit-mermaid": "outfit-mermaid.909e59d3",
18804
+ "outfit-military": "outfit-military.7b8fc3d8",
18805
+ "outfit-nurse": "outfit-nurse.09dce229",
18806
+ "outfit-one-piece-swim": "outfit-one-piece-swim.aa69f9a5",
18807
+ "outfit-pajamas": "outfit-pajamas.238b8081",
18808
+ "outfit-pharaoh": "outfit-pharaoh.73c25fe5",
18809
+ "outfit-pirate": "outfit-pirate.97ebc2b8",
18810
+ "outfit-school-uniform": "outfit-school-uniform.fd6e2d93",
18811
+ "outfit-scrubs": "outfit-scrubs.41eb4132",
18812
+ "outfit-soccer-jersey": "outfit-soccer-jersey.40303b6c",
18813
+ "outfit-streetwear": "outfit-streetwear.c2760dba",
18814
+ "outfit-sundress": "outfit-sundress.2706ef53",
18815
+ "outfit-tracksuit": "outfit-tracksuit.32c131bc",
18816
+ "outfit-tuxedo": "outfit-tuxedo.62bc51ce",
18817
+ "outfit-wedding-dress": "outfit-wedding-dress.c06fae98",
18818
+ "outfit-workwear-overalls": "outfit-workwear-overalls.f093b5ce",
18819
+ "state-cropped": "state-cropped.f7a53c8d",
18820
+ "state-distressed": "state-distressed.5f75d0a6",
18821
+ "state-fitted": "state-fitted.e6ad8e5e",
18822
+ "state-half-tucked": "state-half-tucked.c4ef3df8",
18823
+ "state-halter-neck": "state-halter-neck.ed7753af",
18824
+ "state-layered": "state-layered.f198ef8c",
18825
+ "state-off-shoulder": "state-off-shoulder.e14ee342",
18826
+ "state-oversized": "state-oversized.98e8c311",
18827
+ "state-plunging-neck": "state-plunging-neck.159ba456",
18828
+ "state-ripped": "state-ripped.8ef1a17c",
18829
+ "state-rolled-sleeves": "state-rolled-sleeves.2ac0e529",
18830
+ "state-sheer": "state-sheer.963c3e20",
18831
+ "state-tucked-in": "state-tucked-in.10bfa442",
18832
+ "state-unbuttoned": "state-unbuttoned.546c59c8",
18833
+ "state-vintage": "state-vintage.1d4a0393",
18834
+ "state-wet": "state-wet.02fded51",
18835
+ "top-bandeau": "top-bandeau.e5188852",
18836
+ "top-bikini-top": "top-bikini-top.94c4f495",
18837
+ "top-blouse": "top-blouse.36522a34",
18838
+ "top-bodysuit": "top-bodysuit.a8698dec",
18839
+ "top-bra-top": "top-bra-top.b2145721",
18840
+ "top-button-down": "top-button-down.f69df264",
18841
+ "top-camisole": "top-camisole.bffdb8d9",
18842
+ "top-corset": "top-corset.00119961",
18843
+ "top-crop-top": "top-crop-top.43f58e2d",
18844
+ "top-hoodie": "top-hoodie.6d35511e",
18845
+ "top-leotard": "top-leotard.73187d24",
18846
+ "top-mesh-top": "top-mesh-top.f647f5a1",
18847
+ "top-polo": "top-polo.ddc22e97",
18848
+ "top-sheer-top": "top-sheer-top.ad7a3b11",
18849
+ "top-sports-bra": "top-sports-bra.929be52a",
18850
+ "top-sweater": "top-sweater.6b7055af",
18851
+ "top-tank": "top-tank.03fad03c",
18852
+ "top-tshirt": "top-tshirt.a8f275a3",
18853
+ "top-tube-top": "top-tube-top.94cdf5eb",
18854
+ "top-turtleneck": "top-turtleneck.a0b23f60",
18855
+ "treatment-babylights": "treatment-babylights.888bfe6e",
18856
+ "treatment-balayage": "treatment-balayage.d79045e7",
18857
+ "treatment-highlights": "treatment-highlights.f7e0e4a0",
18858
+ "treatment-lowlights": "treatment-lowlights.2dec991c",
18859
+ "treatment-ombre": "treatment-ombre.32a7699d",
18860
+ "treatment-rooted": "treatment-rooted.dc8ce2dd",
18861
+ "treatment-sombre": "treatment-sombre.421b96f3"
18862
+ }
18863
+ };
18864
+
18865
+ // src/picker-art/sound-art-map.ts
18866
+ var SOUND_ART = {
18867
+ "music-genre": {
18868
+ genre: {
18869
+ "hip-hop": "emoji/microphone_3d",
18870
+ rnb: "emoji/rose_3d",
18871
+ soul: "emoji/studio_microphone_3d",
18872
+ funk: "emoji/man_dancing_3d_default",
18873
+ lofi: "emoji/headphone_3d",
18874
+ electronic: "emoji/control_knobs_3d",
18875
+ industrial: "emoji/factory_3d",
18876
+ "ambient-genre": "emoji/milky_way_3d",
18877
+ experimental: "emoji/test_tube_3d",
18878
+ chill: "emoji/tropical_drink_3d",
18879
+ disco: "emoji/mirror_ball_3d",
18880
+ pop: "emoji/glowing_star_3d",
18881
+ anime: "emoji/cherry_blossom_3d",
18882
+ rock: "emoji/guitar_3d",
18883
+ punk: "emoji/safety_pin_3d",
18884
+ metal: "emoji/sign_of_the_horns_3d_default",
18885
+ jazz: "emoji/saxophone_3d",
18886
+ blues: "emoji/blue_heart_3d",
18887
+ country: "emoji/cowboy_hat_face_3d",
18888
+ folk: "emoji/banjo_3d",
18889
+ gospel: "emoji/dove_3d",
18890
+ reggae: "emoji/palm_tree_3d",
18891
+ latin: "emoji/maracas_3d",
18892
+ world: "emoji/globe_showing_europe-africa_3d",
18893
+ classical: "emoji/violin_3d",
18894
+ cinematic: "emoji/clapper_board_3d",
18895
+ "video-game": "emoji/video_game_3d",
18896
+ holiday: "emoji/christmas_tree_3d",
18897
+ children: "emoji/teddy_bear_3d"
18898
+ },
18899
+ subgenre: {
18900
+ trap: "emoji/money_bag_3d",
18901
+ "boom-bap": "emoji/radio_3d",
18902
+ "lo-fi-hip-hop": "emoji/headphone_3d",
18903
+ drill: "emoji/skull_3d",
18904
+ "uk-drill": "emoji/guard_3d_default",
18905
+ "cloud-rap": "emoji/cloud_3d",
18906
+ "conscious-rap": "emoji/brain_3d",
18907
+ "gangsta-rap": "emoji/smiling_face_with_sunglasses_3d",
18908
+ "jazz-rap": "emoji/trumpet_3d",
18909
+ "alt-hip-hop": "emoji/alien_3d",
18910
+ phonk: "emoji/skull_and_crossbones_3d",
18911
+ "drift-phonk": "emoji/racing_car_3d",
18912
+ "uk-hip-hop": "emoji/bus_3d",
18913
+ grime: "emoji/cityscape_3d",
18914
+ pluggnb: "emoji/electric_plug_3d",
18915
+ rage: "emoji/fire_3d",
18916
+ "jersey-club": "emoji/party_popper_3d",
18917
+ "brazilian-funk": "emoji/parrot_3d",
18918
+ moombahton: "emoji/pineapple_3d",
18919
+ "glitch-hop": "emoji/robot_3d",
18920
+ "neo-soul": "emoji/sparkles_3d",
18921
+ "contemporary-rnb": "emoji/rose_3d",
18922
+ "alt-rnb": "emoji/crescent_moon_3d",
18923
+ "neo-rnb": "emoji/purple_heart_3d",
18924
+ "quiet-storm": "emoji/cloud_with_lightning_and_rain_3d",
18925
+ "new-jack-swing": "emoji/videocassette_3d",
18926
+ "future-soul": "emoji/crystal_ball_3d",
18927
+ motown: "emoji/automobile_3d",
18928
+ "northern-soul": "emoji/man_dancing_3d_default",
18929
+ "southern-soul": "emoji/sun_3d",
18930
+ "psychedelic-soul": "emoji/rainbow_3d",
18931
+ "p-funk": "emoji/flying_saucer_3d",
18932
+ "g-funk": "emoji/palm_tree_3d",
18933
+ "electro-funk": "emoji/high_voltage_3d",
18934
+ "jazz-funk": "emoji/trumpet_3d",
18935
+ "lofi-beats": "emoji/headphone_3d",
18936
+ "lofi-jazz": "emoji/hot_beverage_3d",
18937
+ chillhop: "emoji/cat_3d",
18938
+ house: "emoji/house_3d",
18939
+ "deep-house": "emoji/water_wave_3d",
18940
+ "tech-house": "emoji/gear_3d",
18941
+ "afro-house": "emoji/drum_3d",
18942
+ amapiano: "emoji/musical_keyboard_3d",
18943
+ techno: "emoji/robot_3d",
18944
+ "minimal-techno": "emoji/control_knobs_3d",
18945
+ "melodic-techno": "emoji/musical_notes_3d",
18946
+ "drum-and-bass": "emoji/drum_3d",
18947
+ jungle: "emoji/leopard_3d",
18948
+ dubstep: "emoji/loudspeaker_3d",
18949
+ "future-bass": "emoji/sparkles_3d",
18950
+ "trap-edm": "emoji/collision_3d",
18951
+ synthwave: "emoji/sunset_3d",
18952
+ outrun: "emoji/racing_car_3d",
18953
+ vaporwave: "emoji/moai_3d",
18954
+ trance: "emoji/dizzy_3d",
18955
+ psytrance: "emoji/mushroom_3d",
18956
+ ambient: "emoji/milky_way_3d",
18957
+ idm: "emoji/brain_3d",
18958
+ breakbeat: "emoji/drum_3d",
18959
+ "garage-uk": "emoji/bus_3d",
18960
+ hardstyle: "emoji/hammer_3d",
18961
+ footwork: "emoji/running_shoe_3d",
18962
+ "indie-electronic": "emoji/light_bulb_3d",
18963
+ ebm: "emoji/gear_3d",
18964
+ "industrial-metal": "emoji/nut_and_bolt_3d",
18965
+ noise: "emoji/speaker_high_volume_3d",
18966
+ "dark-ambient": "emoji/new_moon_3d",
18967
+ drone: "emoji/fog_3d",
18968
+ "new-age": "emoji/lotus_3d",
18969
+ "space-music": "emoji/ringed_planet_3d",
18970
+ "musique-concrete": "emoji/brick_3d",
18971
+ "noise-music": "emoji/speaker_high_volume_3d",
18972
+ "free-improv": "emoji/artist_palette_3d",
18973
+ "sound-art": "emoji/framed_picture_3d",
18974
+ chillout: "emoji/beach_with_umbrella_3d",
18975
+ chillwave: "emoji/water_wave_3d",
18976
+ downtempo: "emoji/snail_3d",
18977
+ "trip-hop": "emoji/crescent_moon_3d",
18978
+ "italo-disco": "emoji/pizza_3d",
18979
+ "nu-disco": "emoji/mirror_ball_3d",
18980
+ "euro-disco": "emoji/glowing_star_3d",
18981
+ "synth-pop": "emoji/musical_keyboard_3d",
18982
+ "dream-pop": "emoji/cloud_3d",
18983
+ "indie-pop": "emoji/cherries_3d",
18984
+ "k-pop": "emoji/sparkling_heart_3d",
18985
+ "j-pop": "emoji/cherry_blossom_3d",
18986
+ "art-pop": "emoji/artist_palette_3d",
18987
+ "bubblegum-pop": "emoji/lollipop_3d",
18988
+ "chamber-pop": "emoji/violin_3d",
18989
+ "electro-pop": "emoji/high_voltage_3d",
18990
+ hyperpop: "emoji/unicorn_3d",
18991
+ "power-pop": "emoji/flexed_biceps_3d_default",
18992
+ "bedroom-pop": "emoji/bed_3d",
18993
+ "anime-opening": "emoji/japanese_dolls_3d",
18994
+ "j-rock": "emoji/guitar_3d",
18995
+ "city-pop": "emoji/night_with_stars_3d",
18996
+ "classic-rock": "emoji/guitar_3d",
18997
+ "hard-rock": "emoji/rock_3d",
18998
+ "indie-rock": "emoji/sunflower_3d",
18999
+ "punk-rock": "emoji/safety_pin_3d",
19000
+ "alt-rock": "emoji/radio_3d",
19001
+ "psychedelic-rock": "emoji/rainbow_3d",
19002
+ "garage-rock": "emoji/wrench_3d",
19003
+ "surf-rock": "emoji/person_surfing_3d_default",
19004
+ "prog-rock": "emoji/hourglass_done_3d",
19005
+ "post-rock": "emoji/mountain_3d",
19006
+ shoegaze: "emoji/fog_3d",
19007
+ "math-rock": "emoji/abacus_3d",
19008
+ "stoner-rock": "emoji/herb_3d",
19009
+ emo: "emoji/black_heart_3d",
19010
+ "hardcore-punk": "emoji/collision_3d",
19011
+ "post-punk": "emoji/bat_3d",
19012
+ "pop-punk": "emoji/skateboard_3d",
19013
+ "skate-punk": "emoji/skateboard_3d",
19014
+ "anarcho-punk": "emoji/fire_3d",
19015
+ "heavy-metal": "emoji/sign_of_the_horns_3d_default",
19016
+ "death-metal": "emoji/skull_3d",
19017
+ "black-metal": "emoji/bat_3d",
19018
+ "thrash-metal": "emoji/tornado_3d",
19019
+ "doom-metal": "emoji/coffin_3d",
19020
+ "power-metal": "emoji/crossed_swords_3d",
19021
+ "prog-metal": "emoji/hourglass_done_3d",
19022
+ metalcore: "emoji/collision_3d",
19023
+ deathcore: "emoji/skull_and_crossbones_3d",
19024
+ "nu-metal": "emoji/chains_3d",
19025
+ "sludge-metal": "emoji/volcano_3d",
19026
+ "symphonic-metal": "emoji/violin_3d",
19027
+ bebop: "emoji/saxophone_3d",
19028
+ "smooth-jazz": "emoji/wine_glass_3d",
19029
+ fusion: "emoji/atom_symbol_3d",
19030
+ "cool-jazz": "emoji/smiling_face_with_sunglasses_3d",
19031
+ "free-jazz": "emoji/bird_3d",
19032
+ swing: "emoji/woman_dancing_3d_default",
19033
+ "big-band": "emoji/trumpet_3d",
19034
+ dixieland: "emoji/top_hat_3d",
19035
+ "latin-jazz": "emoji/maracas_3d",
19036
+ "nu-jazz": "emoji/cocktail_glass_3d",
19037
+ "acid-jazz": "emoji/test_tube_3d",
19038
+ "delta-blues": "emoji/canoe_3d",
19039
+ "chicago-blues": "emoji/cityscape_3d",
19040
+ "electric-blues": "emoji/high_voltage_3d",
19041
+ "jump-blues": "emoji/man_dancing_3d_default",
19042
+ "blues-rock": "emoji/guitar_3d",
19043
+ "country-pop": "emoji/cowboy_hat_face_3d",
19044
+ "outlaw-country": "emoji/cactus_3d",
19045
+ "alt-country": "emoji/horse_3d",
19046
+ "country-rock": "emoji/pickup_truck_3d",
19047
+ americana: "emoji/fuel_pump_3d",
19048
+ "honky-tonk": "emoji/beer_mug_3d",
19049
+ bluegrass: "emoji/banjo_3d",
19050
+ "indie-folk": "emoji/evergreen_tree_3d",
19051
+ "traditional-folk": "emoji/scroll_3d",
19052
+ "celtic-folk": "emoji/shamrock_3d",
19053
+ "freak-folk": "emoji/mushroom_3d",
19054
+ "folk-rock": "emoji/guitar_3d",
19055
+ "anti-folk": "emoji/upside-down_face_3d",
19056
+ "traditional-gospel": "emoji/dove_3d",
19057
+ "contemporary-gospel": "emoji/sparkles_3d",
19058
+ "urban-gospel": "emoji/cityscape_3d",
19059
+ "roots-reggae": "emoji/seedling_3d",
19060
+ dub: "emoji/speaker_high_volume_3d",
19061
+ dancehall: "emoji/woman_dancing_3d_default",
19062
+ ska: "emoji/palm_tree_3d",
19063
+ rocksteady: "emoji/rock_3d",
19064
+ salsa: "emoji/hot_pepper_3d",
19065
+ "bossa-nova": "emoji/beach_with_umbrella_3d",
19066
+ reggaeton: "emoji/fire_3d",
19067
+ cumbia: "emoji/maracas_3d",
19068
+ merengue: "emoji/woman_dancing_3d_default",
19069
+ bachata: "emoji/rose_3d",
19070
+ tango: "emoji/man_in_tuxedo_3d_default",
19071
+ mariachi: "emoji/trumpet_3d",
19072
+ samba: "emoji/parrot_3d",
19073
+ flamenco: "emoji/hibiscus_3d",
19074
+ "latin-pop": "emoji/sun_3d",
19075
+ "latin-trap": "emoji/money_bag_3d",
19076
+ afrobeat: "emoji/drum_3d",
19077
+ afrobeats: "emoji/woman_dancing_3d_default",
19078
+ highlife: "emoji/sun_3d",
19079
+ "amapiano-w": "emoji/musical_keyboard_3d",
19080
+ bhangra: "emoji/man_dancing_3d_default",
19081
+ bollywood: "emoji/clapper_board_3d",
19082
+ "indian-classical": "emoji/lotus_3d",
19083
+ klezmer: "emoji/violin_3d",
19084
+ balkan: "emoji/trumpet_3d",
19085
+ "middle-eastern": "emoji/camel_3d",
19086
+ celtic: "emoji/shamrock_3d",
19087
+ gamelan: "emoji/bell_3d",
19088
+ "throat-singing": "emoji/mountain_3d",
19089
+ baroque: "emoji/violin_3d",
19090
+ romantic: "emoji/rose_3d",
19091
+ "modern-classical": "emoji/musical_score_3d",
19092
+ "minimalist-classical": "emoji/leaf_fluttering_in_wind_3d",
19093
+ choral: "emoji/busts_in_silhouette_3d",
19094
+ "chamber-music": "emoji/candle_3d",
19095
+ opera: "emoji/performing_arts_3d",
19096
+ "early-music": "emoji/scroll_3d",
19097
+ "epic-orchestral": "emoji/mountain_3d",
19098
+ "minimalist-score": "emoji/musical_score_3d",
19099
+ "trailer-music": "emoji/film_projector_3d",
19100
+ "score-action": "emoji/collision_3d",
19101
+ "score-horror": "emoji/ghost_3d",
19102
+ "score-romance": "emoji/smiling_face_with_hearts_3d",
19103
+ "score-sci-fi": "emoji/flying_saucer_3d",
19104
+ "score-fantasy": "emoji/dragon_3d",
19105
+ "score-noir": "emoji/detective_3d_default",
19106
+ "score-documentary": "emoji/clapper_board_3d",
19107
+ chiptune: "emoji/joystick_3d",
19108
+ "8bit": "emoji/alien_monster_3d",
19109
+ "16bit": "emoji/video_game_3d",
19110
+ "vgm-orchestral": "emoji/violin_3d",
19111
+ "vgm-synth": "emoji/joystick_3d",
19112
+ christmas: "emoji/christmas_tree_3d",
19113
+ winter: "emoji/snowflake_3d",
19114
+ festive: "emoji/party_popper_3d",
19115
+ lullaby: "emoji/baby_bottle_3d",
19116
+ "nursery-rhyme": "emoji/teddy_bear_3d",
19117
+ "kids-pop": "emoji/balloon_3d"
19118
+ },
19119
+ era: {
19120
+ "1920s": "emoji/cocktail_glass_3d",
19121
+ "1930s": "emoji/trumpet_3d",
19122
+ "1940s": "emoji/radio_3d",
19123
+ "1950s": "emoji/automobile_3d",
19124
+ "1960s": "emoji/peace_symbol_3d",
19125
+ "1970s": "emoji/mirror_ball_3d",
19126
+ "1980s": "emoji/videocassette_3d",
19127
+ "1990s": "emoji/pager_3d",
19128
+ "2000s": "emoji/mobile_phone_3d",
19129
+ "2010s": "emoji/headphone_3d",
19130
+ modern: "emoji/sparkles_3d",
19131
+ futurist: "emoji/rocket_3d"
19132
+ }
19133
+ },
19134
+ "music-mood": {
19135
+ energy: {
19136
+ low: "emoji/low_battery_3d",
19137
+ mellow: "emoji/hot_beverage_3d",
19138
+ gentle: "emoji/feather_3d",
19139
+ moderate: "emoji/person_walking_3d_default",
19140
+ building: "emoji/chart_increasing_3d",
19141
+ upbeat: "emoji/balloon_3d",
19142
+ driving: "emoji/automobile_3d",
19143
+ high: "emoji/high_voltage_3d",
19144
+ explosive: "emoji/collision_3d",
19145
+ frenetic: "emoji/tornado_3d",
19146
+ pulsing: "emoji/beating_heart_3d",
19147
+ throbbing: "emoji/drum_3d",
19148
+ simmering: "emoji/hot_springs_3d",
19149
+ ferocious: "emoji/lion_3d"
19150
+ },
19151
+ emotion: {
19152
+ happy: "emoji/smiling_face_with_smiling_eyes_3d",
19153
+ joyful: "emoji/grinning_face_with_big_eyes_3d",
19154
+ euphoric: "emoji/star-struck_3d",
19155
+ melancholic: "emoji/cloud_with_rain_3d",
19156
+ sad: "emoji/crying_face_3d",
19157
+ longing: "emoji/sunset_3d",
19158
+ lonely: "emoji/pensive_face_3d",
19159
+ angry: "emoji/pouting_face_3d",
19160
+ defiant: "emoji/raised_fist_3d_default",
19161
+ triumphant: "emoji/trophy_3d",
19162
+ victorious: "emoji/1st_place_medal_3d",
19163
+ tender: "emoji/two_hearts_3d",
19164
+ romantic: "emoji/smiling_face_with_hearts_3d",
19165
+ haunting: "emoji/ghost_3d",
19166
+ mysterious: "emoji/crystal_ball_3d",
19167
+ menacing: "emoji/smiling_face_with_horns_3d",
19168
+ playful: "emoji/kite_3d",
19169
+ mischievous: "emoji/smirking_face_3d",
19170
+ anxious: "emoji/anxious_face_with_sweat_3d",
19171
+ fearful: "emoji/fearful_face_3d",
19172
+ hopeful: "emoji/sunrise_3d",
19173
+ inspirational: "emoji/glowing_star_3d",
19174
+ nostalgic: "emoji/framed_picture_3d",
19175
+ bittersweet: "emoji/lemon_3d",
19176
+ peaceful: "emoji/dove_3d",
19177
+ contemplative: "emoji/thinking_face_3d",
19178
+ ethereal: "emoji/bubbles_3d",
19179
+ awe: "emoji/milky_way_3d"
19180
+ },
19181
+ vibe: {
19182
+ cinematic: "emoji/clapper_board_3d",
19183
+ intimate: "emoji/candle_3d",
19184
+ epic: "emoji/mountain_3d",
19185
+ anthemic: "emoji/megaphone_3d",
19186
+ "lo-fi": "emoji/videocassette_3d",
19187
+ polished: "emoji/gem_stone_3d",
19188
+ raw: "emoji/rock_3d",
19189
+ dreamy: "emoji/cloud_3d",
19190
+ hypnotic: "emoji/dizzy_3d",
19191
+ dark: "emoji/new_moon_3d",
19192
+ gritty: "emoji/brick_3d",
19193
+ uplifting: "emoji/sunrise_over_mountains_3d",
19194
+ tense: "emoji/grimacing_face_3d",
19195
+ spacey: "emoji/rocket_3d",
19196
+ psychedelic: "emoji/rainbow_3d",
19197
+ noir: "emoji/detective_3d_default",
19198
+ vintage: "emoji/radio_3d",
19199
+ futuristic: "emoji/robot_3d",
19200
+ suspenseful: "emoji/hourglass_not_done_3d",
19201
+ espionage: "emoji/magnifying_glass_tilted_left_3d",
19202
+ cold: "emoji/ice_3d",
19203
+ clandestine: "emoji/locked_3d"
19204
+ }
19205
+ },
19206
+ "instrumentation": {
19207
+ instruments: {
19208
+ drums: "emoji/drum_3d",
19209
+ "drum-machine": "emoji/control_knobs_3d",
19210
+ "808": "emoji/loudspeaker_3d",
19211
+ "live-drums": "emoji/drum_3d",
19212
+ breakbeats: "emoji/repeat_button_3d",
19213
+ "trap-drums": "emoji/drum_3d",
19214
+ bongos: "emoji/drum_3d",
19215
+ conga: "emoji/long_drum_3d",
19216
+ djembe: "emoji/long_drum_3d",
19217
+ timbales: "emoji/drum_3d",
19218
+ tambourine: "emoji/drum_3d",
19219
+ shaker: "emoji/maracas_3d",
19220
+ cowbell: "emoji/bell_3d",
19221
+ maracas: "emoji/maracas_3d",
19222
+ claves: "emoji/chopsticks_3d",
19223
+ marimba: "emoji/musical_keyboard_3d",
19224
+ vibraphone: "emoji/musical_keyboard_3d",
19225
+ xylophone: "emoji/musical_keyboard_3d",
19226
+ glockenspiel: "emoji/bell_3d",
19227
+ timpani: "emoji/drum_3d",
19228
+ taiko: "emoji/drum_3d",
19229
+ "frame-drum": "emoji/drum_3d",
19230
+ cajon: "emoji/package_3d",
19231
+ darbuka: "emoji/drum_3d",
19232
+ piano: "emoji/musical_keyboard_3d",
19233
+ "electric-piano": "emoji/musical_keyboard_3d",
19234
+ wurlitzer: "emoji/musical_keyboard_3d",
19235
+ rhodes: "emoji/musical_keyboard_3d",
19236
+ clavinet: "emoji/musical_keyboard_3d",
19237
+ organ: "emoji/musical_keyboard_3d",
19238
+ "hammond-organ": "emoji/musical_keyboard_3d",
19239
+ "pipe-organ": "emoji/classical_building_3d",
19240
+ accordion: "emoji/accordion_3d",
19241
+ mellotron: "emoji/videocassette_3d",
19242
+ harpsichord: "emoji/musical_keyboard_3d",
19243
+ celesta: "emoji/bell_3d",
19244
+ synthesizer: "emoji/control_knobs_3d",
19245
+ "lead-synth": "emoji/level_slider_3d",
19246
+ "pluck-synth": "emoji/musical_note_3d",
19247
+ pads: "emoji/cloud_3d",
19248
+ arpeggiator: "emoji/musical_notes_3d",
19249
+ vocoder: "emoji/robot_3d",
19250
+ talkbox: "emoji/speaking_head_3d",
19251
+ "modular-synth": "emoji/electric_plug_3d",
19252
+ "fm-synth": "emoji/control_knobs_3d",
19253
+ "wavetable-synth": "emoji/control_knobs_3d",
19254
+ "stab-synth": "emoji/collision_3d",
19255
+ "acoustic-guitar": "emoji/guitar_3d",
19256
+ "electric-guitar": "emoji/guitar_3d",
19257
+ "classical-guitar": "emoji/guitar_3d",
19258
+ "12-string-guitar": "emoji/guitar_3d",
19259
+ "pedal-steel": "emoji/guitar_3d",
19260
+ "lap-steel": "emoji/guitar_3d",
19261
+ dobro: "emoji/guitar_3d",
19262
+ banjo: "emoji/banjo_3d",
19263
+ mandolin: "emoji/guitar_3d",
19264
+ ukulele: "emoji/guitar_3d",
19265
+ "bass-guitar": "emoji/guitar_3d",
19266
+ "synth-bass": "emoji/control_knobs_3d",
19267
+ "sub-bass": "emoji/speaker_high_volume_3d",
19268
+ "acoustic-bass": "emoji/guitar_3d",
19269
+ "upright-bass": "emoji/violin_3d",
19270
+ "fretless-bass": "emoji/guitar_3d",
19271
+ "acid-bass": "emoji/test_tube_3d",
19272
+ "wobble-bass": "emoji/water_wave_3d",
19273
+ "reese-bass": "emoji/loudspeaker_3d",
19274
+ brass: "emoji/trumpet_3d",
19275
+ trumpet: "emoji/trumpet_3d",
19276
+ trombone: "emoji/trumpet_3d",
19277
+ "french-horn": "emoji/postal_horn_3d",
19278
+ tuba: "emoji/trumpet_3d",
19279
+ saxophone: "emoji/saxophone_3d",
19280
+ flugelhorn: "emoji/trumpet_3d",
19281
+ cornet: "emoji/trumpet_3d",
19282
+ "muted-trumpet": "emoji/trumpet_3d",
19283
+ flute: "emoji/flute_3d",
19284
+ clarinet: "emoji/flute_3d",
19285
+ harmonica: "emoji/flute_3d",
19286
+ oboe: "emoji/flute_3d",
19287
+ bassoon: "emoji/flute_3d",
19288
+ "english-horn": "emoji/flute_3d",
19289
+ piccolo: "emoji/flute_3d",
19290
+ recorder: "emoji/flute_3d",
19291
+ "pan-flute": "emoji/flute_3d",
19292
+ strings: "emoji/violin_3d",
19293
+ violin: "emoji/violin_3d",
19294
+ viola: "emoji/violin_3d",
19295
+ cello: "emoji/violin_3d",
19296
+ "double-bass": "emoji/violin_3d",
19297
+ harp: "emoji/violin_3d",
19298
+ "pizzicato-strings": "emoji/violin_3d",
19299
+ "staccato-strings": "emoji/violin_3d",
19300
+ fiddle: "emoji/violin_3d",
19301
+ sitar: "emoji/guitar_3d",
19302
+ tabla: "emoji/drum_3d",
19303
+ "steel-drum": "emoji/drum_3d",
19304
+ kalimba: "emoji/musical_keyboard_3d",
19305
+ bagpipes: "emoji/flute_3d",
19306
+ didgeridoo: "emoji/flute_3d",
19307
+ oud: "emoji/guitar_3d",
19308
+ erhu: "emoji/violin_3d",
19309
+ koto: "emoji/guitar_3d",
19310
+ shakuhachi: "emoji/flute_3d",
19311
+ shamisen: "emoji/guitar_3d",
19312
+ duduk: "emoji/flute_3d",
19313
+ balalaika: "emoji/guitar_3d",
19314
+ bouzouki: "emoji/guitar_3d",
19315
+ kora: "emoji/guitar_3d",
19316
+ "hang-drum": "emoji/drum_3d",
19317
+ kamancheh: "emoji/violin_3d",
19318
+ ney: "emoji/flute_3d",
19319
+ santur: "emoji/musical_keyboard_3d"
19320
+ },
19321
+ production: {
19322
+ polished: "emoji/gem_stone_3d",
19323
+ "lo-fi": "emoji/videocassette_3d",
19324
+ raw: "emoji/rock_3d",
19325
+ vintage: "emoji/radio_3d",
19326
+ modern: "emoji/laptop_3d",
19327
+ minimalist: "emoji/leaf_fluttering_in_wind_3d",
19328
+ "wall-of-sound": "emoji/brick_3d",
19329
+ ambient: "emoji/fog_3d",
19330
+ "garage-band": "emoji/hammer_and_wrench_3d",
19331
+ "live-recording": "emoji/admission_tickets_3d",
19332
+ "demo-quality": "emoji/pencil_3d",
19333
+ "studio-pristine": "emoji/studio_microphone_3d",
19334
+ "tape-saturated": "emoji/film_frames_3d",
19335
+ "8-bit-retro": "emoji/alien_monster_3d"
19336
+ },
19337
+ vocalPresence: {
19338
+ instrumental: "emoji/musical_keyboard_3d",
19339
+ "male-lead": "emoji/man_3d_default",
19340
+ "female-lead": "emoji/woman_3d_default",
19341
+ "androgynous-lead": "emoji/person_3d_default",
19342
+ duet: "emoji/people_hugging_3d",
19343
+ choir: "emoji/busts_in_silhouette_3d",
19344
+ "gospel-choir": "emoji/folded_hands_3d_default",
19345
+ "harmony-stack": "emoji/musical_notes_3d",
19346
+ "rapper-lead": "emoji/microphone_3d",
19347
+ "spoken-word": "emoji/speaking_head_3d",
19348
+ "vocal-chops": "emoji/scissors_3d",
19349
+ mixed: "emoji/busts_in_silhouette_3d"
19350
+ },
19351
+ singingStyle: {
19352
+ "pop-singing": "emoji/microphone_3d",
19353
+ "rock-singing": "emoji/sign_of_the_horns_3d_default",
19354
+ operatic: "emoji/performing_arts_3d",
19355
+ "classical-vocals": "emoji/musical_score_3d",
19356
+ rap: "emoji/microphone_3d",
19357
+ "trap-melodic": "emoji/money_bag_3d",
19358
+ growl: "emoji/wolf_3d",
19359
+ scream: "emoji/face_screaming_in_fear_3d",
19360
+ shout: "emoji/megaphone_3d",
19361
+ falsetto: "emoji/bird_3d",
19362
+ "head-voice": "emoji/feather_3d",
19363
+ "chest-voice": "emoji/lion_3d",
19364
+ belting: "emoji/loudspeaker_3d",
19365
+ crooning: "emoji/rose_3d",
19366
+ scat: "emoji/saxophone_3d",
19367
+ yodeling: "emoji/snow-capped_mountain_3d",
19368
+ "throat-singing": "emoji/mountain_3d",
19369
+ melismatic: "emoji/musical_notes_3d",
19370
+ autotuned: "emoji/robot_3d",
19371
+ vocoded: "emoji/robot_3d",
19372
+ "whisper-singing": "emoji/shushing_face_3d",
19373
+ "breathy-singing": "emoji/wind_face_3d",
19374
+ harmonized: "emoji/busts_in_silhouette_3d",
19375
+ chant: "emoji/candle_3d"
19376
+ }
19377
+ },
19378
+ "voice-character": {
19379
+ age: {
19380
+ infant: "emoji/baby_3d_default",
19381
+ child: "emoji/child_3d_default",
19382
+ preteen: "emoji/boy_3d_default",
19383
+ teen: "emoji/girl_3d_default",
19384
+ "young-adult": "emoji/woman_3d_default",
19385
+ "middle-aged": "emoji/man_3d_default",
19386
+ mature: "emoji/older_person_3d_default",
19387
+ elderly: "emoji/old_woman_3d_default"
19388
+ },
19389
+ gender: {
19390
+ male: "emoji/man_3d_default",
19391
+ female: "emoji/woman_3d_default",
19392
+ androgynous: "emoji/person_3d_default"
19393
+ },
19394
+ language: {
19395
+ english: "flags/gb",
19396
+ spanish: "flags/es",
19397
+ french: "flags/fr",
19398
+ german: "flags/de",
19399
+ italian: "flags/it",
19400
+ portuguese: "flags/pt",
19401
+ dutch: "flags/nl",
19402
+ russian: "flags/ru",
19403
+ polish: "flags/pl",
19404
+ ukrainian: "flags/ua",
19405
+ swedish: "flags/se",
19406
+ norwegian: "flags/no",
19407
+ danish: "flags/dk",
19408
+ finnish: "flags/fi",
19409
+ greek: "flags/gr",
19410
+ turkish: "flags/tr",
19411
+ arabic: "flags/sa",
19412
+ hebrew: "flags/il",
19413
+ persian: "flags/ir",
19414
+ hindi: "flags/in",
19415
+ bengali: "flags/bd",
19416
+ tamil: "flags/in",
19417
+ urdu: "flags/pk",
19418
+ tagalog: "flags/ph",
19419
+ indonesian: "flags/id",
19420
+ thai: "flags/th",
19421
+ vietnamese: "flags/vn",
19422
+ mandarin: "flags/cn",
19423
+ cantonese: "flags/hk",
19424
+ japanese: "flags/jp",
19425
+ korean: "flags/kr",
19426
+ swahili: "flags/tz",
19427
+ yoruba: "flags/ng"
19428
+ },
19429
+ accent: {
19430
+ "general-american": "flags/us",
19431
+ "southern-us": "emoji/cowboy_hat_face_3d",
19432
+ "new-york": "emoji/statue_of_liberty_3d",
19433
+ boston: "emoji/lobster_3d",
19434
+ "midwestern-us": "emoji/ear_of_corn_3d",
19435
+ chicago: "emoji/cityscape_3d",
19436
+ appalachian: "emoji/mountain_3d",
19437
+ canadian: "flags/ca",
19438
+ "british-rp": "emoji/crown_3d",
19439
+ cockney: "flags/gb",
19440
+ "estuary-english": "flags/gb",
19441
+ "northern-english": "flags/gb",
19442
+ scouse: "flags/gb",
19443
+ geordie: "flags/gb",
19444
+ scottish: "flags/gb-sct",
19445
+ irish: "flags/ie",
19446
+ welsh: "flags/gb-wls",
19447
+ australian: "flags/au",
19448
+ "new-zealand": "flags/nz",
19449
+ "south-african": "flags/za",
19450
+ "indian-english": "flags/in",
19451
+ caribbean: "flags/bb",
19452
+ jamaican: "flags/jm",
19453
+ "french-accented": "flags/fr",
19454
+ "italian-accented": "flags/it",
19455
+ "german-accented": "flags/de",
19456
+ "dutch-accented": "flags/nl",
19457
+ "russian-accented": "flags/ru",
19458
+ "polish-accented": "flags/pl",
19459
+ "spanish-accented": "flags/es",
19460
+ "portuguese-accented": "flags/pt",
19461
+ "scandinavian-accented": "flags/se",
19462
+ "mexican-accented": "flags/mx",
19463
+ "argentinian-accented": "flags/ar",
19464
+ "japanese-accented": "flags/jp",
19465
+ "korean-accented": "flags/kr",
19466
+ "chinese-accented": "flags/cn",
19467
+ "filipino-accented": "flags/ph",
19468
+ "arabic-accented": "flags/sa",
19469
+ "hebrew-accented": "flags/il",
19470
+ "turkish-accented": "flags/tr",
19471
+ "persian-accented": "flags/ir",
19472
+ "nigerian-accented": "flags/ng",
19473
+ "neutral-international": "emoji/globe_with_meridians_3d",
19474
+ transatlantic: "emoji/passenger_ship_3d"
19475
+ },
19476
+ timbre: {
19477
+ warm: "emoji/hot_beverage_3d",
19478
+ smooth: "emoji/butter_3d",
19479
+ silky: "emoji/ribbon_3d",
19480
+ velvety: "emoji/chocolate_bar_3d",
19481
+ raspy: "emoji/cactus_3d",
19482
+ gravelly: "emoji/rock_3d",
19483
+ rough: "emoji/brick_3d",
19484
+ husky: "emoji/dog_face_3d",
19485
+ breathy: "emoji/wind_face_3d",
19486
+ whispered: "emoji/shushing_face_3d",
19487
+ nasal: "emoji/nose_3d_default",
19488
+ twangy: "emoji/cowboy_hat_face_3d",
19489
+ deep: "emoji/whale_3d",
19490
+ booming: "emoji/loudspeaker_3d",
19491
+ "high-pitched": "emoji/bird_3d",
19492
+ squeaky: "emoji/mouse_3d",
19493
+ bright: "emoji/sun_3d",
19494
+ dark: "emoji/new_moon_3d",
19495
+ youthful: "emoji/seedling_3d",
19496
+ authoritative: "emoji/crown_3d",
19497
+ sultry: "emoji/wine_glass_3d",
19498
+ polished: "emoji/gem_stone_3d"
19499
+ }
19500
+ },
19501
+ "voice-delivery": {
19502
+ pace: {
19503
+ "very-slow": "emoji/turtle_3d",
19504
+ slow: "emoji/snail_3d",
19505
+ drawl: "emoji/sloth_3d",
19506
+ measured: "emoji/balance_scale_3d",
19507
+ moderate: "emoji/person_walking_3d_default",
19508
+ punchy: "emoji/boxing_glove_3d",
19509
+ brisk: "emoji/person_running_3d_default",
19510
+ rapid: "emoji/rabbit_3d",
19511
+ "rapid-fire": "emoji/racing_car_3d",
19512
+ frenetic: "emoji/tornado_3d",
19513
+ halting: "emoji/stop_sign_3d"
19514
+ },
19515
+ emotion: {
19516
+ neutral: "emoji/neutral_face_3d",
19517
+ cheerful: "emoji/grinning_face_3d",
19518
+ warm: "emoji/smiling_face_3d",
19519
+ reassuring: "emoji/handshake_3d",
19520
+ compassionate: "emoji/hugging_face_3d",
19521
+ somber: "emoji/pensive_face_3d",
19522
+ stoic: "emoji/moai_3d",
19523
+ urgent: "emoji/police_car_light_3d",
19524
+ frantic: "emoji/exploding_head_3d",
19525
+ anxious: "emoji/anxious_face_with_sweat_3d",
19526
+ scared: "emoji/fearful_face_3d",
19527
+ excited: "emoji/star-struck_3d",
19528
+ enthusiastic: "emoji/party_popper_3d",
19529
+ wistful: "emoji/sunset_3d",
19530
+ melancholic: "emoji/cloud_with_rain_3d",
19531
+ menacing: "emoji/smiling_face_with_horns_3d",
19532
+ angry: "emoji/pouting_face_3d",
19533
+ sarcastic: "emoji/face_with_rolling_eyes_3d",
19534
+ smug: "emoji/smirking_face_3d",
19535
+ playful: "emoji/winking_face_with_tongue_3d",
19536
+ flirty: "emoji/winking_face_3d",
19537
+ intimate: "emoji/candle_3d",
19538
+ seductive: "emoji/kiss_mark_3d"
19539
+ },
19540
+ archetype: {
19541
+ newscaster: "emoji/newspaper_3d",
19542
+ anchor: "emoji/television_3d",
19543
+ "documentary-narrator": "emoji/globe_showing_europe-africa_3d",
19544
+ "nature-narrator": "emoji/elephant_3d",
19545
+ "fairy-tale-narrator": "emoji/castle_3d",
19546
+ "audiobook-narrator": "emoji/open_book_3d",
19547
+ podcaster: "emoji/studio_microphone_3d",
19548
+ "talk-show-host": "emoji/couch_and_lamp_3d",
19549
+ "radio-dj": "emoji/radio_3d",
19550
+ asmr: "emoji/ear_3d_default",
19551
+ sportscaster: "emoji/soccer_ball_3d",
19552
+ auctioneer: "emoji/hammer_3d",
19553
+ preacher: "emoji/scroll_3d",
19554
+ politician: "emoji/classical_building_3d",
19555
+ lawyer: "emoji/balance_scale_3d",
19556
+ professor: "emoji/graduation_cap_3d",
19557
+ infomercial: "emoji/shopping_cart_3d",
19558
+ "voice-actor": "emoji/performing_arts_3d",
19559
+ "drag-queen": "emoji/lipstick_3d",
19560
+ villain: "emoji/smiling_face_with_horns_3d",
19561
+ hero: "emoji/shield_3d",
19562
+ mentor: "emoji/owl_3d",
19563
+ comedian: "emoji/face_with_tears_of_joy_3d",
19564
+ "stand-up-comic": "emoji/microphone_3d",
19565
+ "drill-sergeant": "emoji/military_helmet_3d",
19566
+ "meditation-guide": "emoji/lotus_3d",
19567
+ "yoga-instructor": "emoji/person_in_lotus_position_3d_default",
19568
+ "noir-detective": "emoji/detective_3d_default",
19569
+ wizard: "emoji/magic_wand_3d",
19570
+ robot: "emoji/robot_3d",
19571
+ "ai-assistant": "emoji/speech_balloon_3d",
19572
+ "siri-style": "emoji/mobile_phone_3d"
19573
+ }
19574
+ }
19575
+ };
19576
+
19577
+ // src/picker-art/sound-art-files.generated.ts
19578
+ var SOUND_ART_FILES = {
19579
+ "emoji/1st_place_medal_3d": "emoji/1st_place_medal_3d.4d08ba51.webp",
19580
+ "emoji/abacus_3d": "emoji/abacus_3d.eeac7578.webp",
19581
+ "emoji/accordion_3d": "emoji/accordion_3d.9b033101.webp",
19582
+ "emoji/admission_tickets_3d": "emoji/admission_tickets_3d.cee4c302.webp",
19583
+ "emoji/alien_3d": "emoji/alien_3d.eae0ce4d.webp",
19584
+ "emoji/alien_monster_3d": "emoji/alien_monster_3d.420a4a9a.webp",
19585
+ "emoji/anxious_face_with_sweat_3d": "emoji/anxious_face_with_sweat_3d.2429a78c.webp",
19586
+ "emoji/artist_palette_3d": "emoji/artist_palette_3d.c49f7f21.webp",
19587
+ "emoji/atom_symbol_3d": "emoji/atom_symbol_3d.0ba7a673.webp",
19588
+ "emoji/automobile_3d": "emoji/automobile_3d.b868a834.webp",
19589
+ "emoji/baby_3d_default": "emoji/baby_3d_default.c475a442.webp",
19590
+ "emoji/baby_bottle_3d": "emoji/baby_bottle_3d.66dd28fb.webp",
19591
+ "emoji/balance_scale_3d": "emoji/balance_scale_3d.f362d0ed.webp",
19592
+ "emoji/balloon_3d": "emoji/balloon_3d.e3c66ef0.webp",
19593
+ "emoji/banjo_3d": "emoji/banjo_3d.4bc7d110.webp",
19594
+ "emoji/bat_3d": "emoji/bat_3d.1aacb01c.webp",
19595
+ "emoji/beach_with_umbrella_3d": "emoji/beach_with_umbrella_3d.477b226c.webp",
19596
+ "emoji/beating_heart_3d": "emoji/beating_heart_3d.a868028e.webp",
19597
+ "emoji/bed_3d": "emoji/bed_3d.252c87f8.webp",
19598
+ "emoji/beer_mug_3d": "emoji/beer_mug_3d.2fa0fb06.webp",
19599
+ "emoji/bell_3d": "emoji/bell_3d.dc81679e.webp",
19600
+ "emoji/bird_3d": "emoji/bird_3d.fef835ab.webp",
19601
+ "emoji/black_heart_3d": "emoji/black_heart_3d.227d0788.webp",
19602
+ "emoji/blue_heart_3d": "emoji/blue_heart_3d.fc3a8e4b.webp",
19603
+ "emoji/boxing_glove_3d": "emoji/boxing_glove_3d.dd9700b2.webp",
19604
+ "emoji/boy_3d_default": "emoji/boy_3d_default.09c3510c.webp",
19605
+ "emoji/brain_3d": "emoji/brain_3d.5964e588.webp",
19606
+ "emoji/brick_3d": "emoji/brick_3d.47ceb710.webp",
19607
+ "emoji/bubbles_3d": "emoji/bubbles_3d.ef31d81a.webp",
19608
+ "emoji/bus_3d": "emoji/bus_3d.af2bcb8d.webp",
19609
+ "emoji/busts_in_silhouette_3d": "emoji/busts_in_silhouette_3d.4ef5a4c0.webp",
19610
+ "emoji/butter_3d": "emoji/butter_3d.b4b2ceee.webp",
19611
+ "emoji/cactus_3d": "emoji/cactus_3d.2ca3a3a3.webp",
19612
+ "emoji/camel_3d": "emoji/camel_3d.1d16b60b.webp",
19613
+ "emoji/candle_3d": "emoji/candle_3d.58f5237e.webp",
19614
+ "emoji/canoe_3d": "emoji/canoe_3d.a84def48.webp",
19615
+ "emoji/castle_3d": "emoji/castle_3d.8882892f.webp",
19616
+ "emoji/cat_3d": "emoji/cat_3d.960e09e8.webp",
19617
+ "emoji/chains_3d": "emoji/chains_3d.24877245.webp",
19618
+ "emoji/chart_increasing_3d": "emoji/chart_increasing_3d.d23089f4.webp",
19619
+ "emoji/cherries_3d": "emoji/cherries_3d.3b51e09f.webp",
19620
+ "emoji/cherry_blossom_3d": "emoji/cherry_blossom_3d.6f21b83d.webp",
19621
+ "emoji/child_3d_default": "emoji/child_3d_default.438b1110.webp",
19622
+ "emoji/chocolate_bar_3d": "emoji/chocolate_bar_3d.6170e3ba.webp",
19623
+ "emoji/chopsticks_3d": "emoji/chopsticks_3d.078b4591.webp",
19624
+ "emoji/christmas_tree_3d": "emoji/christmas_tree_3d.97ae6194.webp",
19625
+ "emoji/cityscape_3d": "emoji/cityscape_3d.ae21cbc0.webp",
19626
+ "emoji/clapper_board_3d": "emoji/clapper_board_3d.d82288ca.webp",
19627
+ "emoji/classical_building_3d": "emoji/classical_building_3d.f2db9124.webp",
19628
+ "emoji/cloud_3d": "emoji/cloud_3d.736eb8d1.webp",
19629
+ "emoji/cloud_with_lightning_and_rain_3d": "emoji/cloud_with_lightning_and_rain_3d.e81e65c7.webp",
19630
+ "emoji/cloud_with_rain_3d": "emoji/cloud_with_rain_3d.b2aaf273.webp",
19631
+ "emoji/cocktail_glass_3d": "emoji/cocktail_glass_3d.ce81286b.webp",
19632
+ "emoji/coffin_3d": "emoji/coffin_3d.a19ed692.webp",
19633
+ "emoji/collision_3d": "emoji/collision_3d.67d7fc5f.webp",
19634
+ "emoji/control_knobs_3d": "emoji/control_knobs_3d.618a7c50.webp",
19635
+ "emoji/couch_and_lamp_3d": "emoji/couch_and_lamp_3d.43ef3640.webp",
19636
+ "emoji/cowboy_hat_face_3d": "emoji/cowboy_hat_face_3d.0a7a001d.webp",
19637
+ "emoji/crescent_moon_3d": "emoji/crescent_moon_3d.79c9ea4b.webp",
19638
+ "emoji/crossed_swords_3d": "emoji/crossed_swords_3d.b97526bd.webp",
19639
+ "emoji/crown_3d": "emoji/crown_3d.796669c5.webp",
19640
+ "emoji/crying_face_3d": "emoji/crying_face_3d.ea2fba88.webp",
19641
+ "emoji/crystal_ball_3d": "emoji/crystal_ball_3d.d89871b3.webp",
19642
+ "emoji/detective_3d_default": "emoji/detective_3d_default.bd5b9568.webp",
19643
+ "emoji/dizzy_3d": "emoji/dizzy_3d.af0acddb.webp",
19644
+ "emoji/dog_face_3d": "emoji/dog_face_3d.f9254c80.webp",
19645
+ "emoji/dove_3d": "emoji/dove_3d.5bec412e.webp",
19646
+ "emoji/dragon_3d": "emoji/dragon_3d.57218a80.webp",
19647
+ "emoji/drum_3d": "emoji/drum_3d.2b96aebc.webp",
19648
+ "emoji/ear_3d_default": "emoji/ear_3d_default.c03eb8df.webp",
19649
+ "emoji/ear_of_corn_3d": "emoji/ear_of_corn_3d.3ff89108.webp",
19650
+ "emoji/electric_plug_3d": "emoji/electric_plug_3d.ac998f88.webp",
19651
+ "emoji/elephant_3d": "emoji/elephant_3d.9f4e8e3b.webp",
19652
+ "emoji/evergreen_tree_3d": "emoji/evergreen_tree_3d.b2a8fbfd.webp",
19653
+ "emoji/exploding_head_3d": "emoji/exploding_head_3d.0d9dbcd6.webp",
19654
+ "emoji/face_screaming_in_fear_3d": "emoji/face_screaming_in_fear_3d.710298e2.webp",
19655
+ "emoji/face_with_rolling_eyes_3d": "emoji/face_with_rolling_eyes_3d.fcbad541.webp",
19656
+ "emoji/face_with_tears_of_joy_3d": "emoji/face_with_tears_of_joy_3d.1e60a09c.webp",
19657
+ "emoji/factory_3d": "emoji/factory_3d.85535d44.webp",
19658
+ "emoji/fearful_face_3d": "emoji/fearful_face_3d.f7a570ae.webp",
19659
+ "emoji/feather_3d": "emoji/feather_3d.7547cacd.webp",
19660
+ "emoji/film_frames_3d": "emoji/film_frames_3d.8418f155.webp",
19661
+ "emoji/film_projector_3d": "emoji/film_projector_3d.53aeacc1.webp",
19662
+ "emoji/fire_3d": "emoji/fire_3d.295c8507.webp",
19663
+ "emoji/flexed_biceps_3d_default": "emoji/flexed_biceps_3d_default.16a1e33d.webp",
19664
+ "emoji/flute_3d": "emoji/flute_3d.1b547b31.webp",
19665
+ "emoji/flying_saucer_3d": "emoji/flying_saucer_3d.33e4ad76.webp",
19666
+ "emoji/fog_3d": "emoji/fog_3d.5918a022.webp",
19667
+ "emoji/folded_hands_3d_default": "emoji/folded_hands_3d_default.6fb30f7a.webp",
19668
+ "emoji/framed_picture_3d": "emoji/framed_picture_3d.f690ca63.webp",
19669
+ "emoji/fuel_pump_3d": "emoji/fuel_pump_3d.69cc95b5.webp",
19670
+ "emoji/gear_3d": "emoji/gear_3d.056bd877.webp",
19671
+ "emoji/gem_stone_3d": "emoji/gem_stone_3d.2122be84.webp",
19672
+ "emoji/ghost_3d": "emoji/ghost_3d.2852df13.webp",
19673
+ "emoji/girl_3d_default": "emoji/girl_3d_default.0b89ac65.webp",
19674
+ "emoji/globe_showing_europe-africa_3d": "emoji/globe_showing_europe-africa_3d.c7f6d3b1.webp",
19675
+ "emoji/globe_with_meridians_3d": "emoji/globe_with_meridians_3d.fb8a50cc.webp",
19676
+ "emoji/glowing_star_3d": "emoji/glowing_star_3d.f05c1f61.webp",
19677
+ "emoji/graduation_cap_3d": "emoji/graduation_cap_3d.40aedecc.webp",
19678
+ "emoji/grimacing_face_3d": "emoji/grimacing_face_3d.3977bd4c.webp",
19679
+ "emoji/grinning_face_3d": "emoji/grinning_face_3d.2a2e74f8.webp",
19680
+ "emoji/grinning_face_with_big_eyes_3d": "emoji/grinning_face_with_big_eyes_3d.9fc82932.webp",
19681
+ "emoji/guard_3d_default": "emoji/guard_3d_default.98ad0996.webp",
19682
+ "emoji/guitar_3d": "emoji/guitar_3d.0416ba38.webp",
19683
+ "emoji/hammer_3d": "emoji/hammer_3d.51272a5d.webp",
19684
+ "emoji/hammer_and_wrench_3d": "emoji/hammer_and_wrench_3d.137dcb10.webp",
19685
+ "emoji/handshake_3d": "emoji/handshake_3d.e2b96894.webp",
19686
+ "emoji/headphone_3d": "emoji/headphone_3d.db48327a.webp",
19687
+ "emoji/herb_3d": "emoji/herb_3d.54975d48.webp",
19688
+ "emoji/hibiscus_3d": "emoji/hibiscus_3d.f599ae80.webp",
19689
+ "emoji/high_voltage_3d": "emoji/high_voltage_3d.54bdebd8.webp",
19690
+ "emoji/horse_3d": "emoji/horse_3d.8cdb7af9.webp",
19691
+ "emoji/hot_beverage_3d": "emoji/hot_beverage_3d.b2a8805d.webp",
19692
+ "emoji/hot_pepper_3d": "emoji/hot_pepper_3d.7e4ee487.webp",
19693
+ "emoji/hot_springs_3d": "emoji/hot_springs_3d.3feda1de.webp",
19694
+ "emoji/hourglass_done_3d": "emoji/hourglass_done_3d.7d5d9df1.webp",
19695
+ "emoji/hourglass_not_done_3d": "emoji/hourglass_not_done_3d.11c1f660.webp",
19696
+ "emoji/house_3d": "emoji/house_3d.89ec0369.webp",
19697
+ "emoji/hugging_face_3d": "emoji/hugging_face_3d.e2cf7c76.webp",
19698
+ "emoji/ice_3d": "emoji/ice_3d.deb8d0df.webp",
19699
+ "emoji/japanese_dolls_3d": "emoji/japanese_dolls_3d.a0cceaf3.webp",
19700
+ "emoji/joystick_3d": "emoji/joystick_3d.944ec6d9.webp",
19701
+ "emoji/kiss_mark_3d": "emoji/kiss_mark_3d.4569473a.webp",
19702
+ "emoji/kite_3d": "emoji/kite_3d.b3585005.webp",
19703
+ "emoji/laptop_3d": "emoji/laptop_3d.41e8661a.webp",
19704
+ "emoji/leaf_fluttering_in_wind_3d": "emoji/leaf_fluttering_in_wind_3d.bafe832d.webp",
19705
+ "emoji/lemon_3d": "emoji/lemon_3d.d9786fd2.webp",
19706
+ "emoji/leopard_3d": "emoji/leopard_3d.125c4ccd.webp",
19707
+ "emoji/level_slider_3d": "emoji/level_slider_3d.88b2cf4b.webp",
19708
+ "emoji/light_bulb_3d": "emoji/light_bulb_3d.d7c6b3a6.webp",
19709
+ "emoji/lion_3d": "emoji/lion_3d.50c1e9e4.webp",
19710
+ "emoji/lipstick_3d": "emoji/lipstick_3d.bb2e9acf.webp",
19711
+ "emoji/lobster_3d": "emoji/lobster_3d.59fd230a.webp",
19712
+ "emoji/locked_3d": "emoji/locked_3d.64457d19.webp",
19713
+ "emoji/lollipop_3d": "emoji/lollipop_3d.d8fa2fc9.webp",
19714
+ "emoji/long_drum_3d": "emoji/long_drum_3d.22eedd09.webp",
19715
+ "emoji/lotus_3d": "emoji/lotus_3d.2fe3dc52.webp",
19716
+ "emoji/loudspeaker_3d": "emoji/loudspeaker_3d.4e1a1d8c.webp",
19717
+ "emoji/low_battery_3d": "emoji/low_battery_3d.61bab068.webp",
19718
+ "emoji/magic_wand_3d": "emoji/magic_wand_3d.2d764cda.webp",
19719
+ "emoji/magnifying_glass_tilted_left_3d": "emoji/magnifying_glass_tilted_left_3d.913e1bba.webp",
19720
+ "emoji/man_3d_default": "emoji/man_3d_default.2c6ad3e3.webp",
19721
+ "emoji/man_dancing_3d_default": "emoji/man_dancing_3d_default.be7ebf85.webp",
19722
+ "emoji/man_in_tuxedo_3d_default": "emoji/man_in_tuxedo_3d_default.df11645d.webp",
19723
+ "emoji/maracas_3d": "emoji/maracas_3d.f8951a90.webp",
19724
+ "emoji/megaphone_3d": "emoji/megaphone_3d.e242a485.webp",
19725
+ "emoji/microphone_3d": "emoji/microphone_3d.8e9d43d6.webp",
19726
+ "emoji/military_helmet_3d": "emoji/military_helmet_3d.ace8783b.webp",
19727
+ "emoji/milky_way_3d": "emoji/milky_way_3d.6f83da44.webp",
19728
+ "emoji/mirror_ball_3d": "emoji/mirror_ball_3d.3b3bb92b.webp",
19729
+ "emoji/moai_3d": "emoji/moai_3d.79692217.webp",
19730
+ "emoji/mobile_phone_3d": "emoji/mobile_phone_3d.015f4240.webp",
19731
+ "emoji/money_bag_3d": "emoji/money_bag_3d.1605638d.webp",
19732
+ "emoji/mountain_3d": "emoji/mountain_3d.c95ca720.webp",
19733
+ "emoji/mouse_3d": "emoji/mouse_3d.135e8e06.webp",
19734
+ "emoji/mushroom_3d": "emoji/mushroom_3d.42d3fd23.webp",
19735
+ "emoji/musical_keyboard_3d": "emoji/musical_keyboard_3d.58df4323.webp",
19736
+ "emoji/musical_note_3d": "emoji/musical_note_3d.583c7f64.webp",
19737
+ "emoji/musical_notes_3d": "emoji/musical_notes_3d.e9d17d2a.webp",
19738
+ "emoji/musical_score_3d": "emoji/musical_score_3d.c0171575.webp",
19739
+ "emoji/neutral_face_3d": "emoji/neutral_face_3d.a600d80b.webp",
19740
+ "emoji/new_moon_3d": "emoji/new_moon_3d.7eb94a2a.webp",
19741
+ "emoji/newspaper_3d": "emoji/newspaper_3d.f2406ddb.webp",
19742
+ "emoji/night_with_stars_3d": "emoji/night_with_stars_3d.46f0b404.webp",
19743
+ "emoji/nose_3d_default": "emoji/nose_3d_default.c4749af2.webp",
19744
+ "emoji/nut_and_bolt_3d": "emoji/nut_and_bolt_3d.61358d40.webp",
19745
+ "emoji/old_woman_3d_default": "emoji/old_woman_3d_default.aba5fa97.webp",
19746
+ "emoji/older_person_3d_default": "emoji/older_person_3d_default.53fcc167.webp",
19747
+ "emoji/open_book_3d": "emoji/open_book_3d.e9d01ba4.webp",
19748
+ "emoji/owl_3d": "emoji/owl_3d.13fe0976.webp",
19749
+ "emoji/package_3d": "emoji/package_3d.d72cf506.webp",
19750
+ "emoji/pager_3d": "emoji/pager_3d.b9817782.webp",
19751
+ "emoji/palm_tree_3d": "emoji/palm_tree_3d.1947d143.webp",
19752
+ "emoji/parrot_3d": "emoji/parrot_3d.bdd97a42.webp",
19753
+ "emoji/party_popper_3d": "emoji/party_popper_3d.2a8444b8.webp",
19754
+ "emoji/passenger_ship_3d": "emoji/passenger_ship_3d.1cea6ab2.webp",
19755
+ "emoji/peace_symbol_3d": "emoji/peace_symbol_3d.b6b5871c.webp",
19756
+ "emoji/pencil_3d": "emoji/pencil_3d.c95b8040.webp",
19757
+ "emoji/pensive_face_3d": "emoji/pensive_face_3d.dc875000.webp",
19758
+ "emoji/people_hugging_3d": "emoji/people_hugging_3d.2d408cf1.webp",
19759
+ "emoji/performing_arts_3d": "emoji/performing_arts_3d.3e276da2.webp",
19760
+ "emoji/person_3d_default": "emoji/person_3d_default.f5eca5b7.webp",
19761
+ "emoji/person_in_lotus_position_3d_default": "emoji/person_in_lotus_position_3d_default.dc17e50b.webp",
19762
+ "emoji/person_running_3d_default": "emoji/person_running_3d_default.944e0d56.webp",
19763
+ "emoji/person_surfing_3d_default": "emoji/person_surfing_3d_default.dab0445a.webp",
19764
+ "emoji/person_walking_3d_default": "emoji/person_walking_3d_default.0818fe4c.webp",
19765
+ "emoji/pickup_truck_3d": "emoji/pickup_truck_3d.8be6b193.webp",
19766
+ "emoji/pineapple_3d": "emoji/pineapple_3d.a56c1cf4.webp",
19767
+ "emoji/pizza_3d": "emoji/pizza_3d.8003232a.webp",
19768
+ "emoji/police_car_light_3d": "emoji/police_car_light_3d.30e128e5.webp",
19769
+ "emoji/postal_horn_3d": "emoji/postal_horn_3d.d0ae5fee.webp",
19770
+ "emoji/pouting_face_3d": "emoji/pouting_face_3d.140b9541.webp",
19771
+ "emoji/purple_heart_3d": "emoji/purple_heart_3d.003a9458.webp",
19772
+ "emoji/rabbit_3d": "emoji/rabbit_3d.0d5a735c.webp",
19773
+ "emoji/racing_car_3d": "emoji/racing_car_3d.c0b44d25.webp",
19774
+ "emoji/radio_3d": "emoji/radio_3d.50c23194.webp",
19775
+ "emoji/rainbow_3d": "emoji/rainbow_3d.3c36fd7f.webp",
19776
+ "emoji/raised_fist_3d_default": "emoji/raised_fist_3d_default.eb91ccc0.webp",
19777
+ "emoji/repeat_button_3d": "emoji/repeat_button_3d.346c767d.webp",
19778
+ "emoji/ribbon_3d": "emoji/ribbon_3d.b0390fc2.webp",
19779
+ "emoji/ringed_planet_3d": "emoji/ringed_planet_3d.4b48dd81.webp",
19780
+ "emoji/robot_3d": "emoji/robot_3d.533b5a81.webp",
19781
+ "emoji/rock_3d": "emoji/rock_3d.c1815a29.webp",
19782
+ "emoji/rocket_3d": "emoji/rocket_3d.d8ef8111.webp",
19783
+ "emoji/rose_3d": "emoji/rose_3d.46b02779.webp",
19784
+ "emoji/running_shoe_3d": "emoji/running_shoe_3d.94ceffb5.webp",
19785
+ "emoji/safety_pin_3d": "emoji/safety_pin_3d.b70d955f.webp",
19786
+ "emoji/saxophone_3d": "emoji/saxophone_3d.9f9f4acb.webp",
19787
+ "emoji/scissors_3d": "emoji/scissors_3d.76afcdfb.webp",
19788
+ "emoji/scroll_3d": "emoji/scroll_3d.11181e9f.webp",
19789
+ "emoji/seedling_3d": "emoji/seedling_3d.f5b35195.webp",
19790
+ "emoji/shamrock_3d": "emoji/shamrock_3d.f4e84a02.webp",
19791
+ "emoji/shield_3d": "emoji/shield_3d.e022c663.webp",
19792
+ "emoji/shopping_cart_3d": "emoji/shopping_cart_3d.cb5f96ab.webp",
19793
+ "emoji/shushing_face_3d": "emoji/shushing_face_3d.fab370d3.webp",
19794
+ "emoji/sign_of_the_horns_3d_default": "emoji/sign_of_the_horns_3d_default.8278781b.webp",
19795
+ "emoji/skateboard_3d": "emoji/skateboard_3d.881e56e4.webp",
19796
+ "emoji/skull_3d": "emoji/skull_3d.fd0e03ad.webp",
19797
+ "emoji/skull_and_crossbones_3d": "emoji/skull_and_crossbones_3d.2e366096.webp",
19798
+ "emoji/sloth_3d": "emoji/sloth_3d.67adc9f6.webp",
19799
+ "emoji/smiling_face_3d": "emoji/smiling_face_3d.1a3ac08e.webp",
19800
+ "emoji/smiling_face_with_hearts_3d": "emoji/smiling_face_with_hearts_3d.23a763a9.webp",
19801
+ "emoji/smiling_face_with_horns_3d": "emoji/smiling_face_with_horns_3d.2996a20d.webp",
19802
+ "emoji/smiling_face_with_smiling_eyes_3d": "emoji/smiling_face_with_smiling_eyes_3d.9ba53fb0.webp",
19803
+ "emoji/smiling_face_with_sunglasses_3d": "emoji/smiling_face_with_sunglasses_3d.e6140884.webp",
19804
+ "emoji/smirking_face_3d": "emoji/smirking_face_3d.a8421758.webp",
19805
+ "emoji/snail_3d": "emoji/snail_3d.2e67da53.webp",
19806
+ "emoji/snow-capped_mountain_3d": "emoji/snow-capped_mountain_3d.4e365589.webp",
19807
+ "emoji/snowflake_3d": "emoji/snowflake_3d.c9fa0c9e.webp",
19808
+ "emoji/soccer_ball_3d": "emoji/soccer_ball_3d.80ccb031.webp",
19809
+ "emoji/sparkles_3d": "emoji/sparkles_3d.acd7e64d.webp",
19810
+ "emoji/sparkling_heart_3d": "emoji/sparkling_heart_3d.69d4ef28.webp",
19811
+ "emoji/speaker_high_volume_3d": "emoji/speaker_high_volume_3d.de469632.webp",
19812
+ "emoji/speaking_head_3d": "emoji/speaking_head_3d.6ef2d7c6.webp",
19813
+ "emoji/speech_balloon_3d": "emoji/speech_balloon_3d.08ca6643.webp",
19814
+ "emoji/star-struck_3d": "emoji/star-struck_3d.6e7bf40c.webp",
19815
+ "emoji/statue_of_liberty_3d": "emoji/statue_of_liberty_3d.3027c0ca.webp",
19816
+ "emoji/stop_sign_3d": "emoji/stop_sign_3d.54b2cac4.webp",
19817
+ "emoji/studio_microphone_3d": "emoji/studio_microphone_3d.ef8fd3a9.webp",
19818
+ "emoji/sun_3d": "emoji/sun_3d.921d3208.webp",
19819
+ "emoji/sunflower_3d": "emoji/sunflower_3d.8cd07c2f.webp",
19820
+ "emoji/sunrise_3d": "emoji/sunrise_3d.ba5e0533.webp",
19821
+ "emoji/sunrise_over_mountains_3d": "emoji/sunrise_over_mountains_3d.2d008ec3.webp",
19822
+ "emoji/sunset_3d": "emoji/sunset_3d.17a22747.webp",
19823
+ "emoji/teddy_bear_3d": "emoji/teddy_bear_3d.9fb5d6fb.webp",
19824
+ "emoji/television_3d": "emoji/television_3d.2cb4ab1e.webp",
19825
+ "emoji/test_tube_3d": "emoji/test_tube_3d.7407f7e9.webp",
19826
+ "emoji/thinking_face_3d": "emoji/thinking_face_3d.754ab1a4.webp",
19827
+ "emoji/top_hat_3d": "emoji/top_hat_3d.c01ec02b.webp",
19828
+ "emoji/tornado_3d": "emoji/tornado_3d.7b0e91be.webp",
19829
+ "emoji/trophy_3d": "emoji/trophy_3d.2491635a.webp",
19830
+ "emoji/tropical_drink_3d": "emoji/tropical_drink_3d.bab2fe86.webp",
19831
+ "emoji/trumpet_3d": "emoji/trumpet_3d.d22ec4da.webp",
19832
+ "emoji/turtle_3d": "emoji/turtle_3d.a9adb524.webp",
19833
+ "emoji/two_hearts_3d": "emoji/two_hearts_3d.2f069693.webp",
19834
+ "emoji/unicorn_3d": "emoji/unicorn_3d.a77a50f6.webp",
19835
+ "emoji/upside-down_face_3d": "emoji/upside-down_face_3d.7459a4e5.webp",
19836
+ "emoji/video_game_3d": "emoji/video_game_3d.cdc99665.webp",
19837
+ "emoji/videocassette_3d": "emoji/videocassette_3d.ec66eb9f.webp",
19838
+ "emoji/violin_3d": "emoji/violin_3d.94269dc7.webp",
19839
+ "emoji/volcano_3d": "emoji/volcano_3d.d3b74a42.webp",
19840
+ "emoji/water_wave_3d": "emoji/water_wave_3d.6a5d45d7.webp",
19841
+ "emoji/whale_3d": "emoji/whale_3d.d08c1899.webp",
19842
+ "emoji/wind_face_3d": "emoji/wind_face_3d.e8e29b6f.webp",
19843
+ "emoji/wine_glass_3d": "emoji/wine_glass_3d.2636c9a6.webp",
19844
+ "emoji/winking_face_3d": "emoji/winking_face_3d.96c4bc72.webp",
19845
+ "emoji/winking_face_with_tongue_3d": "emoji/winking_face_with_tongue_3d.a51191f7.webp",
19846
+ "emoji/wolf_3d": "emoji/wolf_3d.02b3d91a.webp",
19847
+ "emoji/woman_3d_default": "emoji/woman_3d_default.b3b74562.webp",
19848
+ "emoji/woman_dancing_3d_default": "emoji/woman_dancing_3d_default.54b7f23b.webp",
19849
+ "emoji/wrench_3d": "emoji/wrench_3d.2ea37744.webp",
19850
+ "flags/ar": "flags/ar.3a0473f6.webp",
19851
+ "flags/au": "flags/au.a07c7c71.webp",
19852
+ "flags/bb": "flags/bb.e3b0823b.webp",
19853
+ "flags/bd": "flags/bd.6ce65533.webp",
19854
+ "flags/ca": "flags/ca.9bcc5a4a.webp",
19855
+ "flags/cn": "flags/cn.3edc00ab.webp",
19856
+ "flags/de": "flags/de.ca308531.webp",
19857
+ "flags/dk": "flags/dk.e36cdc6f.webp",
19858
+ "flags/es": "flags/es.12e14f2f.webp",
19859
+ "flags/fi": "flags/fi.21f4d59b.webp",
19860
+ "flags/fr": "flags/fr.86fd4a39.webp",
19861
+ "flags/gb": "flags/gb.8cdfe620.webp",
19862
+ "flags/gb-sct": "flags/gb-sct.7c393ebd.webp",
19863
+ "flags/gb-wls": "flags/gb-wls.bf845ca9.webp",
19864
+ "flags/gr": "flags/gr.a1f71c5e.webp",
19865
+ "flags/hk": "flags/hk.46469efa.webp",
19866
+ "flags/id": "flags/id.101c1643.webp",
19867
+ "flags/ie": "flags/ie.874cbc21.webp",
19868
+ "flags/il": "flags/il.d78b70d8.webp",
19869
+ "flags/in": "flags/in.c32102f6.webp",
19870
+ "flags/ir": "flags/ir.29e991da.webp",
19871
+ "flags/it": "flags/it.5fcb941f.webp",
19872
+ "flags/jm": "flags/jm.bba0ff36.webp",
19873
+ "flags/jp": "flags/jp.5ce5b5e0.webp",
19874
+ "flags/kr": "flags/kr.e85321e1.webp",
19875
+ "flags/mx": "flags/mx.eda894e9.webp",
19876
+ "flags/ng": "flags/ng.c7956c84.webp",
19877
+ "flags/nl": "flags/nl.887e5e73.webp",
19878
+ "flags/no": "flags/no.285f2e0e.webp",
19879
+ "flags/nz": "flags/nz.26be49b6.webp",
19880
+ "flags/ph": "flags/ph.37714d90.webp",
19881
+ "flags/pk": "flags/pk.25cbe69f.webp",
19882
+ "flags/pl": "flags/pl.aa1f6bd6.webp",
19883
+ "flags/pt": "flags/pt.aaa844f0.webp",
19884
+ "flags/ru": "flags/ru.de5dc449.webp",
19885
+ "flags/sa": "flags/sa.3850423d.webp",
19886
+ "flags/se": "flags/se.74c50a64.webp",
19887
+ "flags/th": "flags/th.fa84b67a.webp",
19888
+ "flags/tr": "flags/tr.fca0eea3.webp",
19889
+ "flags/tz": "flags/tz.e56d68a9.webp",
19890
+ "flags/ua": "flags/ua.03973095.webp",
19891
+ "flags/us": "flags/us.d18ddec2.webp",
19892
+ "flags/vn": "flags/vn.2f0fdfd5.webp",
19893
+ "flags/za": "flags/za.312bfb61.webp"
19894
+ };
19895
+
19896
+ // src/picker-art/paths.ts
19897
+ var PICKER_ART_PATH = "/picker-art/";
19898
+ var CHARACTER_ART_PATH = "/picker-art/character/";
19899
+ var CHARACTER_ART_FAMILIES = ["person", "styling", "held-prop", "materials", "animals"];
19900
+ var SECTIONS_FAMILY = "sections";
19901
+ function characterFile(family, id) {
19902
+ const stem = CHARACTER_ART_FILES[family]?.[id];
19903
+ return stem ? `${CHARACTER_ART_PATH}${family}/${stem}.webp` : void 0;
19904
+ }
19905
+ function characterArtPath(family, id) {
19906
+ return family === SECTIONS_FAMILY ? void 0 : characterFile(family, id);
19907
+ }
19908
+ function characterSectionSlug(sectionLabel) {
19909
+ return sectionLabel.toLowerCase().replace(/&/g, " ").replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
19910
+ }
19911
+ function characterSectionArtPath(sectionLabel) {
19912
+ return characterFile(SECTIONS_FAMILY, characterSectionSlug(sectionLabel));
19913
+ }
19914
+ function soundArtFilePath(key) {
19915
+ const file2 = SOUND_ART_FILES[key];
19916
+ return file2 ? PICKER_ART_PATH + file2 : void 0;
19917
+ }
19918
+ function soundArtPath(catalogId, field, id) {
19919
+ const byField = SOUND_ART[catalogId];
19920
+ const key = byField?.[field]?.[id];
19921
+ return key ? soundArtFilePath(key) : void 0;
19922
+ }
19923
+
19924
+ // src/picker-art/images.ts
19925
+ var TRANSFORM_HOSTS = /* @__PURE__ */ new Set(["cdn.nodaro.ai", "assets.nodaro.ai"]);
19926
+ var STILL_WIDTH = 480;
19927
+ function originOf(baseUrl) {
19928
+ try {
19929
+ const url2 = new URL(baseUrl);
19930
+ if (url2.protocol !== "https:" && url2.protocol !== "http:") return void 0;
19931
+ return url2.origin + url2.pathname.replace(/\/+$/, "");
19932
+ } catch {
19933
+ return void 0;
19934
+ }
19935
+ }
19936
+ function lookPreviewStillUrl(url2, width = STILL_WIDTH) {
19937
+ let parsed;
19938
+ try {
19939
+ parsed = new URL(url2);
19940
+ } catch {
19941
+ return void 0;
19942
+ }
19943
+ const clip = /\.(mp4|webm|mov)$/i.test(parsed.pathname);
19944
+ if (!TRANSFORM_HOSTS.has(parsed.hostname)) return clip ? void 0 : url2;
19945
+ return clip ? `${parsed.origin}/cdn-cgi/media/mode=frame,time=1s,width=${width}${parsed.pathname}` : `${parsed.origin}/cdn-cgi/image/width=${width},format=auto,quality=80${parsed.pathname}`;
19946
+ }
19947
+ function pickerOptionImageUrl(catalog, field, id, images) {
19948
+ const origin = originOf(images.baseUrl);
19949
+ const own = characterArtPath(catalog.catalogId, id) ?? (field ? soundArtPath(catalog.catalogId, field, id) : void 0);
19950
+ if (own) return origin ? origin + own : void 0;
19951
+ if (!images.lookPreviews) return void 0;
19952
+ const look = LOOK_PREVIEW_SETS[catalog.nodeType];
19953
+ const render = look?.[id];
19954
+ return render ? lookPreviewStillUrl(render) : void 0;
19955
+ }
19956
+ function pickerSectionImageUrl(sectionLabel, images) {
19957
+ const origin = originOf(images.baseUrl);
19958
+ const path = characterSectionArtPath(sectionLabel);
19959
+ return origin && path ? origin + path : void 0;
19960
+ }
19961
+
17046
19962
  // src/held-prop.ts
17047
19963
  var HELD_PROPS = [
17048
19964
  // -------------------- Devices / Phones --------------------
@@ -17267,6 +20183,17 @@ function buildExposureTerms(data) {
17267
20183
  }
17268
20184
  return terms;
17269
20185
  }
20186
+
20187
+ // src/catalog-sections.ts
20188
+ function catalogTopics(catalogId) {
20189
+ if (catalogId === "person") {
20190
+ return PERSON_DIMENSION_SECTIONS.map((s) => ({ label: s.label, fields: s.dimensions.map((d) => PERSON_FIELD_BY_DIMENSION[d]) }));
20191
+ }
20192
+ if (catalogId === "styling") {
20193
+ return STYLING_DIMENSION_SECTIONS.map((s) => ({ label: s.label, fields: s.dimensions.map((d) => STYLING_FIELD_BY_DIMENSION[d]) }));
20194
+ }
20195
+ return void 0;
20196
+ }
17270
20197
  var MUSIC_GENRE_CATEGORY_ORDER = [
17271
20198
  "hip-hop-rnb",
17272
20199
  "electronic",
@@ -18659,6 +21586,19 @@ function toOptions(arr, categoryField) {
18659
21586
  if (categoryField) opt.category = e[categoryField];
18660
21587
  if (e.adultOnly) opt.adultOnly = true;
18661
21588
  if (e.instant) opt.instant = true;
21589
+ if (e.options?.length) {
21590
+ opt.params = e.options.map((o) => ({
21591
+ field: o.field,
21592
+ label: o.label,
21593
+ options: o.choices.map((c) => ({
21594
+ id: c.id,
21595
+ label: c.label,
21596
+ description: c.description,
21597
+ promptHint: c.phrase,
21598
+ term: c.term
21599
+ }))
21600
+ }));
21601
+ }
18662
21602
  return opt;
18663
21603
  });
18664
21604
  }
@@ -19208,20 +22148,43 @@ setComposedCatalogResolver(getPickerCatalog);
19208
22148
  function listPickerCatalogs() {
19209
22149
  return getRegisteredPickerCatalogs();
19210
22150
  }
19211
- function summarizePickerCatalogs() {
19212
- return getRegisteredPickerCatalogs().map((c) => ({
19213
- nodeType: c.nodeType,
19214
- label: c.label,
19215
- catalogId: c.catalogId,
19216
- kind: c.kind,
19217
- valueField: c.valueField,
19218
- fields: c.fields,
19219
- // Every option the detail call will return, whichever kind — a single-dim
19220
- // catalog with secondary dimensions carries both.
19221
- optionCount: (c.options?.length ?? 0) + (c.dimensions?.reduce((n, d) => n + d.options.length, 0) ?? 0)
19222
- }));
22151
+ function everyOption(c) {
22152
+ return [
22153
+ ...(c.options ?? []).map((option) => ({ field: c.valueField, option })),
22154
+ ...(c.dimensions ?? []).flatMap((d) => d.options.map((option) => ({ field: d.field, option })))
22155
+ ];
22156
+ }
22157
+ function summarizePickerCatalogs(opts = {}) {
22158
+ return getRegisteredPickerCatalogs().map((c) => {
22159
+ const all = everyOption(c);
22160
+ const images = opts.images;
22161
+ return {
22162
+ nodeType: c.nodeType,
22163
+ label: c.label,
22164
+ catalogId: c.catalogId,
22165
+ kind: c.kind,
22166
+ valueField: c.valueField,
22167
+ fields: c.fields,
22168
+ // Every option the detail call will return, whichever kind — a single-dim
22169
+ // catalog with secondary dimensions carries both.
22170
+ optionCount: all.length,
22171
+ imageCount: images ? all.filter(({ field, option }) => pickerOptionImageUrl(c, field, option.id, images) !== void 0).length : 0
22172
+ };
22173
+ });
19223
22174
  }
19224
- function projectOption(o, detail) {
22175
+ function projectOption(o, detail, imageUrl) {
22176
+ const projected = projectOptionFields(o, detail, imageUrl);
22177
+ return o.params ? {
22178
+ ...projected,
22179
+ params: o.params.map((d) => ({
22180
+ field: d.field,
22181
+ label: d.label,
22182
+ options: d.options.map((p) => projectOption(p, detail))
22183
+ }))
22184
+ } : projected;
22185
+ }
22186
+ function projectOptionFields(o, detail, imageUrl) {
22187
+ const extras = { ...o.motion ? { motion: o.motion } : {}, ...imageUrl ? { imageUrl } : {} };
19225
22188
  return detail === "full" ? {
19226
22189
  id: o.id,
19227
22190
  label: o.label,
@@ -19230,8 +22193,17 @@ function projectOption(o, detail) {
19230
22193
  promptHint: o.promptHint,
19231
22194
  term: o.term,
19232
22195
  icon: o.icon,
19233
- ...o.motion ? { motion: o.motion } : {}
19234
- } : { id: o.id, label: o.label, category: o.category, term: o.term, icon: o.icon, ...o.motion ? { motion: o.motion } : {} };
22196
+ ...extras
22197
+ } : { id: o.id, label: o.label, category: o.category, term: o.term, icon: o.icon, ...extras };
22198
+ }
22199
+ function catalogSections(c, images) {
22200
+ const source = catalogTopics(c.catalogId);
22201
+ if (!source) return void 0;
22202
+ const present2 = new Set((c.dimensions ?? []).map((d) => d.field));
22203
+ return source.map((s) => {
22204
+ const imageUrl = images ? pickerSectionImageUrl(s.label, images) : void 0;
22205
+ return { label: s.label, fields: s.fields.filter((f) => present2.has(f)), ...imageUrl ? { imageUrl } : {} };
22206
+ }).filter((s) => s.fields.length > 0);
19235
22207
  }
19236
22208
  function projectPickerCatalog(c, opts = {}) {
19237
22209
  const detail = opts.detail ?? "compact";
@@ -19246,15 +22218,17 @@ function projectPickerCatalog(c, opts = {}) {
19246
22218
  categoryLabels: c.categoryLabels,
19247
22219
  detail
19248
22220
  };
22221
+ const images = opts.images;
22222
+ const imageOf = (field, o) => images ? pickerOptionImageUrl(c, field, o.id, images) : void 0;
19249
22223
  const projectDims = (dims2) => dims2.map((d) => ({
19250
22224
  field: d.field,
19251
22225
  label: d.label,
19252
- options: d.options.map((o) => projectOption(o, detail))
22226
+ options: d.options.map((o) => projectOption(o, detail, imageOf(d.field, o)))
19253
22227
  }));
19254
22228
  if (c.kind === "single") {
19255
22229
  let options = c.options ?? [];
19256
22230
  if (opts.category) options = options.filter((o) => o.category === opts.category);
19257
- const projected = { ...base, options: options.map((o) => projectOption(o, detail)) };
22231
+ const projected = { ...base, options: options.map((o) => projectOption(o, detail, imageOf(c.valueField, o))) };
19258
22232
  if (!c.dimensions) return projected;
19259
22233
  let dims2 = c.dimensions;
19260
22234
  if (opts.field) dims2 = dims2.filter((d) => d.field === opts.field);
@@ -19262,10 +22236,11 @@ function projectPickerCatalog(c, opts = {}) {
19262
22236
  }
19263
22237
  let dims = c.dimensions ?? [];
19264
22238
  if (opts.field) dims = dims.filter((d) => d.field === opts.field);
19265
- return { ...base, fields: c.fields, dimensions: projectDims(dims) };
22239
+ const sections = catalogSections(c, images);
22240
+ return { ...base, fields: c.fields, dimensions: projectDims(dims), ...sections ? { sections } : {} };
19266
22241
  }
19267
22242
  function projectAllCatalogs(opts = {}) {
19268
- return getRegisteredPickerCatalogs().map((c) => projectPickerCatalog(c, { detail: opts.detail }));
22243
+ return getRegisteredPickerCatalogs().map((c) => projectPickerCatalog(c, { detail: opts.detail, images: opts.images }));
19269
22244
  }
19270
22245
 
19271
22246
  // src/age-floor.ts
@@ -19498,6 +22473,11 @@ function readHintMode(data) {
19498
22473
  function byMode(mode, full, compact) {
19499
22474
  return mode === "compact" ? compact : full;
19500
22475
  }
22476
+ var MOTION_INTENSITY_HINTS = {
22477
+ subtle: { full: "subtle, gentle motion with slow, minimal movement", compact: "subtle motion" },
22478
+ moderate: { full: "moderate, natural motion at an even pace", compact: "moderate motion" },
22479
+ dynamic: { full: "dynamic, energetic motion with fast, pronounced movement", compact: "dynamic motion" }
22480
+ };
19501
22481
  function getParameterPromptHint(node, ctx) {
19502
22482
  return resolveParameterHint(node, ctx);
19503
22483
  }
@@ -19529,8 +22509,10 @@ function resolveParameterHint(node, ctx, inherited) {
19529
22509
  duration: asStr(data.duration),
19530
22510
  intensity: asStr(data.intensity)
19531
22511
  };
22512
+ const optionValues = readTransitionOptionValues(data);
22513
+ const hintOptions = optionValues ? { optionValues } : void 0;
19532
22514
  if (!ctx) {
19533
- return withCustomText(data, composeTransitionHintFromConnections(transitionId, [], [], timing, mode));
22515
+ return withCustomText(data, composeTransitionHintFromConnections(transitionId, [], [], timing, mode, hintOptions));
19534
22516
  }
19535
22517
  const startHints = [];
19536
22518
  const endHints = [];
@@ -19543,7 +22525,7 @@ function resolveParameterHint(node, ctx, inherited) {
19543
22525
  if (edge.targetHandle === "startState") startHints.push(hint);
19544
22526
  else if (edge.targetHandle === "endState") endHints.push(hint);
19545
22527
  }
19546
- return withCustomText(data, composeTransitionHintFromConnections(transitionId, startHints, endHints, timing, mode));
22528
+ return withCustomText(data, composeTransitionHintFromConnections(transitionId, startHints, endHints, timing, mode, hintOptions));
19547
22529
  }
19548
22530
  if (node.type === "character-fx") {
19549
22531
  const raw = data.characterFx;
@@ -19678,6 +22660,12 @@ function resolveBaseHint(type, data, mode = "full") {
19678
22660
  return withCustomText(data, byMode(mode, getCompositionEffectPromptHint, getCompositionEffectTerm)(asStr(data.compositionEffect)));
19679
22661
  case "post-process-effects":
19680
22662
  return withCustomText(data, buildPostProcessHints(data.postProcess, mode).join(", "));
22663
+ // Motion intensity: a Generation Settings node that a video node's
22664
+ // Settings input takes as a prompt fragment (video only).
22665
+ case "motion": {
22666
+ const hint = MOTION_INTENSITY_HINTS[asStr(data.motion)];
22667
+ return hint ? byMode(mode, hint.full, hint.compact) : "";
22668
+ }
19681
22669
  // Free text authored by the user, not catalog copy — there is no shorter
19682
22670
  // professional form to swap in, so these are identical in both modes.
19683
22671
  case "tone":
@@ -19690,6 +22678,15 @@ function resolveBaseHint(type, data, mode = "full") {
19690
22678
  return "";
19691
22679
  }
19692
22680
  }
22681
+
22682
+ // src/video-own-motion.ts
22683
+ var OWN_MOTION_NODE_TYPES = /* @__PURE__ */ new Set(["image-to-video", "generate-video"]);
22684
+ var DEFAULT_OWN_MOTION = "moderate";
22685
+ function ownMotionHint(nodeType, data) {
22686
+ if (!OWN_MOTION_NODE_TYPES.has(nodeType) || !data.motionEnabled) return void 0;
22687
+ const step = typeof data.motion === "string" && data.motion ? data.motion : DEFAULT_OWN_MOTION;
22688
+ return `${step} motion`;
22689
+ }
19693
22690
  function effectiveName(name) {
19694
22691
  const trimmed = name.trim();
19695
22692
  if (!trimmed || trimmed === PLACEHOLDER_CHARACTER_NAME) return void 0;
@@ -19847,7 +22844,7 @@ function resolveBrandInput(brand) {
19847
22844
  var PROMPT_HINT_SEPARATOR = ". ";
19848
22845
  function joinPromptHints(userPrompt, hints) {
19849
22846
  if (hints.length === 0) return userPrompt;
19850
- return [userPrompt.trim(), ...hints].filter((p) => p.length > 0).join(PROMPT_HINT_SEPARATOR);
22847
+ return joinSentences([userPrompt.trim(), ...hints]);
19851
22848
  }
19852
22849
 
19853
22850
  // src/direction-registry.ts
@@ -20023,7 +23020,7 @@ function partitionStyleClauses(direction, opts) {
20023
23020
  }));
20024
23021
  }
20025
23022
  function styleSectionFromClauses(clauses) {
20026
- const line = (slot) => clauses.filter((c) => c.slot === slot).map((c) => c.text).join(PROMPT_HINT_SEPARATOR);
23023
+ const line = (slot) => joinSentences(clauses.filter((c) => c.slot === slot).map((c) => c.text));
20027
23024
  const lines = [line("film"), line("scene")].filter((l) => l.length > 0);
20028
23025
  return lines.length === 0 ? "" : `${STYLE_SECTION_HEADER}
20029
23026
  ${lines.join("\n")}`;
@@ -20141,7 +23138,7 @@ function composeIdentityDescPart(subject, canonicalDesc, elementInjection) {
20141
23138
  if (c) parts.push(c);
20142
23139
  const e = elementInjection?.trim();
20143
23140
  if (e) parts.push(e);
20144
- return parts.length > 0 ? `${subject} \u2014 ${parts.join(". ")}` : subject;
23141
+ return parts.length > 0 ? `${subject} \u2014 ${joinSentences(parts)}` : subject;
20145
23142
  }
20146
23143
  function pushOverrideDirective(out, ref, binding) {
20147
23144
  const line = referenceDescriptionLine(binding, ref.descriptionOverride);
@@ -38850,7 +41847,7 @@ function resolvePrompt({ override, typed = [], wired, refMap, appendWired, affix
38850
41847
  function resolveCore({ override, typed = [], wired, refMap, appendWired }) {
38851
41848
  if (appendWired && !present(override)) {
38852
41849
  const base = typed.find(present);
38853
- return [base, wired].filter(present).map((s) => rr(s, refMap)).join(". ");
41850
+ return joinSentences([base, wired].filter(present).map((s) => rr(s, refMap)));
38854
41851
  }
38855
41852
  if (present(override)) return rr(override, refMap);
38856
41853
  for (const t of typed) if (present(t)) return rr(t, refMap);
@@ -38858,7 +41855,7 @@ function resolveCore({ override, typed = [], wired, refMap, appendWired }) {
38858
41855
  return "";
38859
41856
  }
38860
41857
  function composeNegative(typed, wired) {
38861
- return [typed, wired].filter(present).join(". ");
41858
+ return joinSentences([typed, wired]);
38862
41859
  }
38863
41860
  var NODE_PROMPT_CANDIDATE_FIELDS = {
38864
41861
  "generate-image": ["prompt"],
@@ -38903,6 +41900,10 @@ function computeLlmChatFields(data, { override, wiredUserInput, wiredSystemPromp
38903
41900
  systemPrompt: resolvePrompt({ typed: [data.systemPrompt], wired: wiredSystemPrompt, refMap })
38904
41901
  };
38905
41902
  }
41903
+ function computeScriptTopic(data, { override, wired, refMap }) {
41904
+ const core = [override, wired, data.prompt].find(present);
41905
+ return applyPromptAffixes(core === void 0 ? "" : rr(core, refMap), readPromptAffixes(data), refMap);
41906
+ }
38906
41907
 
38907
41908
  // src/node-prompt-fields.ts
38908
41909
  var NODE_PROMPT_FIELDS = {
@@ -44397,6 +47398,6 @@ Analyst focus from the user: ${input.focus}`);
44397
47398
  return lines.join("\n");
44398
47399
  }
44399
47400
 
44400
- export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_POSITIONS, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FILM_STYLE_KEYS, FLOORED_PICKER_KEYS, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, GAPS_SCHEMA, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MAX_SUBJECT_KEYS, MINOR_IMPLYING_TYPE_IDS, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, RETIRED_ADULT_ONLY_HINT_STRINGS, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SEEDANCE_VIDEO_EDIT_PREFIX, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SNIPPET_MEDIA_VALUES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, SUBJECT_ARRAY_CEILING, SUBJECT_CUSTOM_AGE_KEY, SUBJECT_FIELDS, SUBJECT_FOLD_KEYS, SUBJECT_ID_MAX_CHARS, SUBJECT_IMAGE_HINT_MODE_DEFAULT, SUBJECT_KEYS, SUBJECT_KEY_MAX_CHARS, SUBJECT_VIDEO_HINT_MODE_DEFAULT, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_POSITIONS, VIDEO_HINT_MODE_DEFAULT, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAdCreativeAnalysisUserText, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildNeedleAlternationSource, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, buildScenePrompt, buildSeedanceVideoEditPrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterLockToRefLock, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionBindings, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMinorAgeHintStrings, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRegisteredSubjectKeys, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasCatalogPacksFor, hasScene3DLayoutScopingLine, hasUpstreamCharacter, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, keepableDirectionHints, listPickerCatalogs, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, renderTransitionBases, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
47401
+ export { ACTION_FX, ACTION_FX_CATEGORY_LABELS, ACTION_FX_CATEGORY_ORDER, ACTION_FX_IDS, ADULT_AGE_IDS, ADULT_ONLY_FLAG, ADULT_SWEPT_CATALOG_IDS, AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AESTHETICS, AESTHETIC_CATEGORY_LABELS, AESTHETIC_CATEGORY_ORDER, AESTHETIC_IDS, ALL_PICKER_WIRING, ANALYZABLE_PICKER_TYPES, ANGLE_LABELS, ASPECT_RATIO_LABELS, ATMOSPHERES, ATMOSPHERE_IDS, AUDIO_WIZARD_CATEGORIES, AURORA_SWEEP_STYLE, BACKDROPS, BACKDROP_CATEGORY_LABELS, BACKDROP_CATEGORY_ORDER, BACKDROP_IDS, BRAND_PRESETS, BRAND_PRESET_IDS, BRAND_PRESET_META, CAMERA_FORMATS, CAMERA_FORMAT_IDS, CAMERA_MOTIONS, CAMERA_MOTION_CATEGORY_LABELS, CAMERA_MOTION_CATEGORY_ORDER, CAMERA_MOTION_IDS, CHARACTER_ART_FAMILIES, CHARACTER_ART_FILES, CHARACTER_ART_PATH, CHARACTER_FX, CHARACTER_FX_CATEGORY_LABELS, CHARACTER_FX_CATEGORY_ORDER, CHARACTER_FX_DURATIONS, CHARACTER_FX_IDS, CHARACTER_FX_INTENSITIES, CHARACTER_FX_POSITIONS, CHARACTER_MOTIONS, CHARACTER_MOTION_CATEGORY_LABELS, CHARACTER_MOTION_CATEGORY_ORDER, CHARACTER_MOTION_IDS, CHARACTER_MOTION_MAX_PICKS, CHARACTER_MOTION_PACES, CHARACTER_MOTION_POSITIONS, CINEMATIC_LOOK_TAIL, COLOR_LOOKS, COLOR_LOOK_CATEGORY_LABELS, COLOR_LOOK_CATEGORY_ORDER, COLOR_LOOK_IDS, COMPOSITION_EFFECTS, COMPOSITION_EFFECT_IDS, DEBRIS_SHOWER_STYLE, DEFAULT_IDENTITY_LOCK, DEFAULT_OWN_MOTION, DEFAULT_TEMPLATES, DIRECTION_ARRAY_CEILING, DIRECTION_FIELDS, DIRECTION_ID_MAX_CHARS, DIRECTION_KEYS, ERAS, ERA_CATEGORY_LABELS, ERA_CATEGORY_ORDER, ERA_IDS, EXPOSURE_CATEGORY_LABELS, EXPOSURE_CATEGORY_ORDER, EXPOSURE_FIELD_BY_CATEGORY, EXPOSURE_IDS, EXPOSURE_SETTINGS, FACTORY_PRESETS, FACTORY_SNIPPETS, FILM_STILL_PREFIX, FILM_STYLE_KEYS, FLOORED_PICKER_KEYS, FRAMINGS, FRAMING_CATEGORY_LABELS, FRAMING_CATEGORY_ORDER, FRAMING_FIELD_BY_CATEGORY, FRAMING_IDS, GAPS_SCHEMA, GARDEN_BLOOM_STYLE, HELD_PROPS, HELD_PROP_CATEGORY_LABELS, HELD_PROP_CATEGORY_ORDER, HELD_PROP_IDS, IMAGE_HINT_MODE_DEFAULT, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, INSTANT_CUT_CLAUSE, INSTRUMENTATION_DEFAULT_DATA, INSTRUMENTS, INSTRUMENT_CATEGORY_LABELS, INSTRUMENT_CATEGORY_ORDER, LENSES, LENS_IDS, LIGHTINGS, LIGHTING_CATEGORY_LABELS, LIGHTING_CATEGORY_ORDER, LIGHTING_FIELD_BY_CATEGORY, LIGHTING_IDS, LLM_CHAT_WIZARD_CATEGORIES, LOOK_PREVIEW_SETS, LOOP_SUBJECTS, LOOP_SUBJECT_CATEGORY_LABELS, LOOP_SUBJECT_CATEGORY_ORDER, MATERIALS, MATERIAL_CATEGORY_LABELS, MATERIAL_CATEGORY_ORDER, MATERIAL_IDS, MAX_SELECTED_BY_DIMENSION, MAX_SELECTED_BY_FRAMING_CATEGORY, MAX_SELECTED_BY_STYLING_DIMENSION, MAX_SUBJECT_KEYS, MINOR_IMPLYING_TYPE_IDS, MOODS, MOOD_CATEGORY_LABELS, MOOD_CATEGORY_ORDER, MOOD_IDS, MOVEMENT_LABELS, MULTI_PICKER_WIRING, MUSIC_EMOTIONS, MUSIC_ENERGIES, MUSIC_ERAS, MUSIC_GENRES, MUSIC_GENRE_CATEGORY_LABELS, MUSIC_GENRE_CATEGORY_ORDER, MUSIC_GENRE_DEFAULT_DATA, MUSIC_MOOD_DEFAULT_DATA, MUSIC_VIBES, MUSIC_WIZARD_CATEGORIES, NODE_PROMPT_CANDIDATE_FIELDS, NODE_PROMPT_FIELDS, OBJECT_ANGLE_PRESETS, OBJECT_ANGLE_PROMPTS, OBJECT_ASSET_PRESETS, OBJECT_ASSET_PROMPTS, OBJECT_MATERIAL_PRESETS, OBJECT_MATERIAL_PROMPTS, OBJECT_VARIATION_PRESETS, OBJECT_VARIATION_PROMPTS, OWN_MOTION_NODE_TYPES, PEOPLE, PERSON_DIMENSION_LABELS, PERSON_DIMENSION_ORDER, PERSON_DIMENSION_SECTIONS, PERSON_FIELD_BY_DIMENSION, PERSON_IDS, PHOTOGRAPHERS, PHOTOGRAPHER_CATEGORY_LABELS, PHOTOGRAPHER_CATEGORY_ORDER, PHOTOGRAPHER_IDS, PHOTO_GENRES, PHOTO_GENRE_CATEGORY_LABELS, PHOTO_GENRE_CATEGORY_ORDER, PHOTO_GENRE_IDS, PICKER_ANALYZER_FAMILIES, PICKER_ANALYZER_REGISTRY, PICKER_ART_PATH, PICKER_CATALOGS, PICKER_TYPES, POSES, POSE_CATEGORY_LABELS, POSE_CATEGORY_ORDER, POSE_IDS, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, POST_PROCESS_EFFECTS, POST_PROCESS_EFFECT_IDS, PRODUCTION_STYLES, PROMPT_AFFIX_CORE_FIELD_OVERRIDES, PROMPT_AFFIX_NODE_TYPES, PROMPT_HINT_SEPARATOR, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, REF_BINDING, RENDER_QUALITIES, RENDER_QUALITY_IDS, RETIRED_ADULT_ONLY_HINT_STRINGS, SAKURA_PETALS_STYLE, SAND_STORM_STYLE, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, SCENE_FRAME_RULE, SCENE_PROMPT_MAX_LENGTH, SEEDANCE_VIDEO_EDIT_PREFIX, SETTINGS, SETTING_CATEGORY_LABELS, SETTING_IDS, SHOT_LABELS, SINGING_STYLES, SINGLE_PICKER_WIRING, SMOKE_PUFF_STYLE, SNIPPET_MEDIA_VALUES, SOUND_ART, SOUND_ART_FILES, STYLES, STYLE_IDS, STYLE_PRESETS, STYLE_SECTION_GAP, STYLE_SECTION_HEADER, STYLINGS, STYLING_DIMENSION_LABELS, STYLING_DIMENSION_ORDER, STYLING_DIMENSION_SECTIONS, STYLING_FIELD_BY_DIMENSION, STYLING_IDS, SUBJECT_ARRAY_CEILING, SUBJECT_CUSTOM_AGE_KEY, SUBJECT_FIELDS, SUBJECT_FOLD_KEYS, SUBJECT_ID_MAX_CHARS, SUBJECT_IMAGE_HINT_MODE_DEFAULT, SUBJECT_KEYS, SUBJECT_KEY_MAX_CHARS, SUBJECT_VIDEO_HINT_MODE_DEFAULT, TEMPORALS, TEMPORAL_CATEGORY_LABELS, TEMPORAL_CATEGORY_ORDER, TEMPORAL_FIELD_BY_CATEGORY, TEMPORAL_IDS, TERM_MAX_CHARS, TEXT_WIZARD_CATEGORIES, TRANSITIONS, TRANSITION_CATEGORY_LABELS, TRANSITION_CATEGORY_ORDER, TRANSITION_DURATIONS, TRANSITION_IDS, TRANSITION_INTENSITIES, TRANSITION_OPTION_FIELDS, TRANSITION_POSITIONS, TRANSITION_STYLE_FIELD, VIDEO_HINT_MODE_DEFAULT, VIDEO_WIZARD_CATEGORIES, VOCAL_PRESENCE, VOCAL_PRESENCE_INSTRUMENTAL_ID, VOICE_ACCENTS, VOICE_AGES, VOICE_ARCHETYPES, VOICE_CHARACTER_DEFAULT_DATA, VOICE_DELIVERY_DEFAULT_DATA, VOICE_EMOTIONS, VOICE_GENDERS, VOICE_LANGUAGES, VOICE_PACES, VOICE_TIMBRES, WARDROBE, WARDROBE_CATEGORY_LABELS, WARDROBE_DIMENSION_ORDER, WARDROBE_FIELD_BY_DIMENSION, WHITE_FLASH_STYLE, WIPE_DIRECTION, __resetCatalogIdGuardForTests, appendField, appendMusicMeta, appendPromptHints, appendReferenceLines, appendScene3DStillScopingLines, applyMinorAgeFloorToPickerValues, applyPickerJson, applyPromptAffixes, applyReferenceOrderToVideo, applyTemplate, asBodyClauses, assembleImageInput, assembleSunoInput, buildActionFxHints, buildActionFxTerms, buildAdCreativeAnalysisUserText, buildAestheticHints, buildAestheticTerms, buildAgeHint, buildAtmosphereHints, buildAtmosphereTerms, buildCharacterPrompt, buildCreaturePrompt, buildExposureHints, buildExposureTerms, buildFaceTemplateInputs, buildFramingHints, buildFramingTerms, buildHeldPropHints, buildHeldPropTerms, buildIdentityDirectives, buildIdentityLockLine, buildImagePrompt, buildImagePromptSegments, buildImagePromptWithOverflow, buildInstrumentationHints, buildInstrumentationTerms, buildLightingHints, buildLightingTerms, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMaterialHints, buildMaterialTerms, buildMoodHints, buildMoodTerms, buildMotionPrompt, buildMultiPickerAnalyzerSpec, buildMusicGenreHints, buildMusicGenreTerms, buildMusicMoodHints, buildMusicMoodTerms, buildNeedleAlternationSource, buildObjectMotionPrompt, buildObjectPrompt, buildPersonHints, buildPersonTerms, buildPhotographerHints, buildPhotographerTerms, buildPickerAnalyzerSpec, buildPickerLegend, buildPickerZodSchema, buildPoseHints, buildPoseTerms, buildPostProcessHints, buildPostProcessTerms, buildReferenceBlocks, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, buildScenePrompt, buildSeedanceVideoEditPrompt, buildStylingHints, buildStylingTerms, buildSurroundFillPrompt, buildTemporalHints, buildTemporalTerms, buildVoiceCharacterHints, buildVoiceCharacterTerms, buildVoiceDeliveryHints, buildVoiceDeliveryTerms, buildWardrobeHints, catalogGuardActive, catalogPacksVersion, characterArtPath, characterLockToRefLock, characterSectionArtPath, characterSectionSlug, collectIdentityLockClause, composeCameraMotionHintFromConnections, composeCameraMotionTermFromConnections, composeCharacterFxHintFromConnections, composeCharacterMotionHintFromConnections, composeNegative, composePickerCatalogs, composeSectionedPrompt, composeSoundHintFromConnections, composeTransitionHintFromConnections, composeVideoPromptText, composedHas, composedOption, composedOptionIndex, computeLlmChatFields, computeNodePrompt, computePackSidecarCoverage, computeScriptTopic, containsMinorAgeHint, curateEntries, curatedAnimalPromptHint, curatedAnimalTerm, curatedFurnitureText, curatedVehicleText, curatedWeaponText, deriveTerm, directionFieldsForSurface, endsInsideStyleSection, expandImagePositionRefs, expandImageRefTokens, filmStillPrefix, findForeignCatalogIds, findForeignCatalogIdsInBody, foreignCatalogIdMessage, getActionFx, getActionFxLabel, getActionFxPromptHint, getActionFxTerm, getAdultOnlyEntries, getAdultOnlyHintStrings, getAdultOnlyIds, getAesthetic, getAestheticLabel, getAestheticPromptHint, getAestheticTerm, getAtmosphere, getAtmosphereLabel, getAtmospherePromptHint, getAtmosphereTerm, getBackdrop, getBackdropLabel, getBackdropPromptHint, getBackdropTerm, getCameraFormat, getCameraFormatLabel, getCameraFormatPromptHint, getCameraFormatTerm, getCameraMotion, getCameraMotionLabel, getCameraMotionPromptHint, getCameraMotionTerm, getCategoriesForNodeType, getCharacterFx, getCharacterFxLabel, getCharacterFxPromptHint, getCharacterFxTerm, getCharacterMotion, getCharacterMotionBindings, getCharacterMotionDiagnostics, getCharacterMotionLabel, getCharacterMotionPromptHint, getCharacterMotionTerm, getColorLook, getColorLookLabel, getColorLookPromptHint, getColorLookTerm, getCompositionEffect, getCompositionEffectLabel, getCompositionEffectPromptHint, getCompositionEffectTerm, getEffectiveSunoCustomMode, getEra, getEraLabel, getEraPromptHint, getEraTerm, getExposure, getExposureLabel, getExposurePromptHint, getExposureTerm, getFactoryPresets, getFactorySnippets, getFraming, getFramingCategoryLimit, getFramingLabel, getFramingPromptHint, getFramingTerm, getHeldProp, getHeldPropLabel, getHeldPropPromptHint, getHeldPropTerm, getIdentityLockClause, getInstrument, getInstrumentTerm, getLens, getLensLabel, getLensPromptHint, getLensTerm, getLighting, getLightingLabel, getLightingPromptHint, getLightingTerm, getLoopSubject, getLoopSubjectLabel, getLoopSubjectPromptHint, getLoopSubjectTerm, getMaterial, getMaterialLabel, getMaterialPromptHint, getMaterialTerm, getMinorAgeHintStrings, getMood, getMoodLabel, getMoodPromptHint, getMoodTerm, getMusicEmotion, getMusicEmotionTerm, getMusicEnergy, getMusicEnergyTerm, getMusicEra, getMusicEraTerm, getMusicGenre, getMusicGenreLabel, getMusicGenreTerm, getMusicSubgenre, getMusicSubgenreTerm, getMusicVibe, getMusicVibeTerm, getParameterPromptHint, getPerson, getPersonDimensionLimit, getPersonLabel, getPersonPromptHint, getPersonTerm, getPhotoGenre, getPhotoGenreLabel, getPhotoGenrePromptHint, getPhotoGenreTerm, getPhotographer, getPhotographerLabel, getPhotographerPromptHint, getPhotographerTerm, getPickerAnalyzer, getPickerCatalog, getPickerWiring, getPose, getPoseLabel, getPosePromptHint, getPoseTerm, getPostProcessEffect, getPostProcessEffectLabel, getPostProcessEffectPromptHint, getPostProcessEffectTerm, getProductionStyle, getProductionStyleTerm, getPromptDoctrine, getPromptFields, getPromptTips, getRegisteredCatalogPacks, getRegisteredPeople, getRegisteredPersonDimensionLabels, getRegisteredPersonDimensionOrder, getRegisteredPersonFieldByDimension, getRegisteredPickerCatalogs, getRegisteredSubjectKeys, getRenderQuality, getRenderQualityLabel, getRenderQualityPromptHint, getRenderQualityTerm, getSetting, getSettingLabel, getSettingPromptHint, getSettingTerm, getSingingStyle, getSingingStyleTerm, getSnippetMedia, getStyle, getStyleLabel, getStylePreset, getStylePromptHint, getStyleTerm, getStyling, getStylingDimensionLimit, getStylingLabel, getStylingPromptHint, getStylingTerm, getTemporal, getTemporalLabel, getTemporalPromptHint, getTemporalTerm, getTransition, getTransitionLabel, getTransitionOptions, getTransitionPromptHint, getTransitionTerm, getVocalPresence, getVocalPresenceTerm, getVoiceAccent, getVoiceAccentTerm, getVoiceAge, getVoiceAgeTerm, getVoiceArchetype, getVoiceArchetypeTerm, getVoiceEmotion, getVoiceEmotionTerm, getVoiceGender, getVoiceGenderTerm, getVoiceLanguage, getVoiceLanguageTerm, getVoicePace, getVoicePaceTerm, getVoiceTimbre, getVoiceTimbreTerm, getWardrobeEntriesByDimension, getWardrobeEntry, getWardrobePromptHint, groupFactoryPresets, hasCatalogPacksFor, hasScene3DLayoutScopingLine, hasUpstreamCharacter, identityRefsSentence, insertBeforeStyleSection, isAnalyzablePicker, isDeniedStyleId, isInstantTransition, isInstrumentalVocal, isMinorAge, isSuspiciousDerivedTerm, isVantageFraming, isWizardSupported, joinHintFragments, joinPromptHints, joinPromptParts, joinSentences, keepableDirectionHints, listPickerCatalogs, lookPreviewStillUrl, migratePersonValue, modeForFamily, nodeHasInlinePrompt, nodeHasPromptField, nodeSupportsPromptAffixes, normalizeSubjectFields, overlayEntry, ownMotionHint, partitionStyleClauses, personPacksVersion, pickerFanoutTargets, pickerOptionImageUrl, pickerSectionImageUrl, planFrameDelivery, projectAllCatalogs, projectPickerCatalog, promptAffixCoreField, promptBindsFirstFrame, promptFieldCarriesAffixes, promptPartSeparator, readDirectionFields, readStructuredFields, readSubjectFields, readTransitionOptionValues, referenceDescriptionLine, referenceRulesBlock, registerCatalogPack, registerPersonPack, renderDescribedReferenceLines, renderDirectionHintClauses, renderDirectionHints, renderReferenceCaptionLines, renderScene3DLayoutScopingLine, renderStructuredFields, renderStyleSection, renderSubjectHints, renderTransitionBases, resetCatalogPacks, resetPersonPacks, resolveBrandInput, resolveCharacterMentions, resolveGeminiOmniI2vInputs, resolveLocationMentions, resolvePrompt, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveTemplate, resolveTerm, resolveVeoI2vInputs, resolveVideoReferenceCore, scene3DLayoutVideoCaptions, sectionedClauseCosts, setComposedCatalogResolver, soundArtFilePath, soundArtPath, splitStyleSection, styleSectionFromClauses, styleSlotFor, subjectFieldsForSurface, subscribeCatalogPacks, summarizePickerCatalogs, toIdentityLockMode, truncateForField, truncateText, withForcedIdentityLock };
44401
47402
  //# sourceMappingURL=index.js.map
44402
47403
  //# sourceMappingURL=index.js.map