@nodaro/shared 1.4.1

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 (665) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +32 -0
  3. package/dist/index.cjs +12506 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +12269 -0
  6. package/dist/index.d.ts +12269 -0
  7. package/dist/index.js +11831 -0
  8. package/dist/index.js.map +1 -0
  9. package/package.json +54 -0
  10. package/src/__tests__/__snapshots__/prompt-builder-segments.test.ts.snap +65 -0
  11. package/src/__tests__/ai-avatar-pricing.test.ts +321 -0
  12. package/src/__tests__/apply-video-negative-prompt.test.ts +76 -0
  13. package/src/__tests__/attach-columns.test.ts +28 -0
  14. package/src/__tests__/audio-crossfade-curves.test.ts +33 -0
  15. package/src/__tests__/build-model-menu.test.ts +58 -0
  16. package/src/__tests__/character-aspect-defaults.test.ts +142 -0
  17. package/src/__tests__/character-mention-slug.test.ts +199 -0
  18. package/src/__tests__/character-reference-photo-kinds.test.ts +32 -0
  19. package/src/__tests__/character-usage-mode.test.ts +147 -0
  20. package/src/__tests__/character-variant-assets.test.ts +142 -0
  21. package/src/__tests__/character-voice.test.ts +130 -0
  22. package/src/__tests__/cinematic-avatar-pricing.test.ts +119 -0
  23. package/src/__tests__/combine-transitions.test.ts +137 -0
  24. package/src/__tests__/component-types.test.ts +87 -0
  25. package/src/__tests__/condition-variables.test.ts +98 -0
  26. package/src/__tests__/credit-identifiers.test.ts +811 -0
  27. package/src/__tests__/default-video-provider.test.ts +63 -0
  28. package/src/__tests__/entity-image-handle.test.ts +43 -0
  29. package/src/__tests__/entity-variants.test.ts +33 -0
  30. package/src/__tests__/fal-lip-sync-sets.test.ts +31 -0
  31. package/src/__tests__/featured-entities.test.ts +33 -0
  32. package/src/__tests__/film-pricing.test.ts +64 -0
  33. package/src/__tests__/filter-condition.test.ts +285 -0
  34. package/src/__tests__/freecut-protocol.test.ts +35 -0
  35. package/src/__tests__/generate-text-items.test.ts +19 -0
  36. package/src/__tests__/generated-results.test.ts +50 -0
  37. package/src/__tests__/graph-utils.test.ts +618 -0
  38. package/src/__tests__/group-aggregation.test.ts +83 -0
  39. package/src/__tests__/i18n-locale-completeness.test.ts +156 -0
  40. package/src/__tests__/image-critic-node.test.ts +86 -0
  41. package/src/__tests__/image-mask-mode.test.ts +16 -0
  42. package/src/__tests__/image-ref-limit.test.ts +78 -0
  43. package/src/__tests__/inpaint-region.test.ts +24 -0
  44. package/src/__tests__/input-field-map-parity.test.ts +30 -0
  45. package/src/__tests__/json-evaluator.test.ts +289 -0
  46. package/src/__tests__/json-path.test.ts +64 -0
  47. package/src/__tests__/lip-sync-pricing.test.ts +142 -0
  48. package/src/__tests__/list-merge.test.ts +96 -0
  49. package/src/__tests__/list-sort.test.ts +134 -0
  50. package/src/__tests__/llm-models.test.ts +445 -0
  51. package/src/__tests__/location-mention-slug.test.ts +246 -0
  52. package/src/__tests__/locations-coverage-critic-schema.test.ts +92 -0
  53. package/src/__tests__/loop-delimiter.test.ts +39 -0
  54. package/src/__tests__/lottie-slots.test.ts +245 -0
  55. package/src/__tests__/model-catalog-flux2-resolutions.test.ts +21 -0
  56. package/src/__tests__/model-constants-location.test.ts +20 -0
  57. package/src/__tests__/model-constants.test.ts +122 -0
  58. package/src/__tests__/model-tree.test.ts +86 -0
  59. package/src/__tests__/no-internal-imports.test.ts +25 -0
  60. package/src/__tests__/node-default-mappings.test.ts +175 -0
  61. package/src/__tests__/node-mappable-fields.test.ts +7 -0
  62. package/src/__tests__/node-preset-export.test.ts +46 -0
  63. package/src/__tests__/node-preset-extract.test.ts +166 -0
  64. package/src/__tests__/node-refs-canonical.test.ts +54 -0
  65. package/src/__tests__/node-refs-combine.test.ts +54 -0
  66. package/src/__tests__/node-refs.test.ts +187 -0
  67. package/src/__tests__/node-runtime-keys.test.ts +99 -0
  68. package/src/__tests__/object-aspect-defaults.test.ts +59 -0
  69. package/src/__tests__/parameter-node-value.test.ts +137 -0
  70. package/src/__tests__/pinterest-url.test.ts +35 -0
  71. package/src/__tests__/pipeline-chat.test.ts +110 -0
  72. package/src/__tests__/pipeline-validation.test.ts +98 -0
  73. package/src/__tests__/presentation-utils.test.ts +1137 -0
  74. package/src/__tests__/producer-types.test.ts +47 -0
  75. package/src/__tests__/prompt-length-limits.test.ts +156 -0
  76. package/src/__tests__/provider-directive-defaults.test.ts +46 -0
  77. package/src/__tests__/reduce-strategy-registry.test.ts +43 -0
  78. package/src/__tests__/reference-board-templates.test.ts +33 -0
  79. package/src/__tests__/reference-roles.test.ts +36 -0
  80. package/src/__tests__/resolve-field-mappings.test.ts +110 -0
  81. package/src/__tests__/resolve-pipeline-model.test.ts +76 -0
  82. package/src/__tests__/scene-node-types.test.ts +80 -0
  83. package/src/__tests__/scraper-actors.test.ts +67 -0
  84. package/src/__tests__/seedance-2-catalog.test.ts +18 -0
  85. package/src/__tests__/seedance-2-credit-id.test.ts +23 -0
  86. package/src/__tests__/seedance-aspects.test.ts +52 -0
  87. package/src/__tests__/selector.test.ts +1151 -0
  88. package/src/__tests__/settled-with-limit.test.ts +214 -0
  89. package/src/__tests__/social-media-specs.test.ts +129 -0
  90. package/src/__tests__/sub-workflow-validation.test.ts +88 -0
  91. package/src/__tests__/switchx-pricing.test.ts +28 -0
  92. package/src/__tests__/to-connected-references.test.ts +153 -0
  93. package/src/__tests__/utilities.test.ts +541 -0
  94. package/src/__tests__/video-analysis-pricing.test.ts +58 -0
  95. package/src/__tests__/video-analysis.test.ts +63 -0
  96. package/src/__tests__/video-audio-capability.test.ts +204 -0
  97. package/src/__tests__/video-gen-providers.test.ts +28 -0
  98. package/src/__tests__/video-mode-aliases.test.ts +150 -0
  99. package/src/__tests__/video-ref-limits.test.ts +72 -0
  100. package/src/__tests__/video-utils.test.ts +303 -0
  101. package/src/__tests__/voice-changer-models.test.ts +33 -0
  102. package/src/__tests__/workflow-export-strip.test.ts +46 -0
  103. package/src/ai-avatar-pricing.ts +213 -0
  104. package/src/ancestor-refs.ts +48 -0
  105. package/src/animals.ts +231 -0
  106. package/src/audio-crossfade-curves.ts +73 -0
  107. package/src/audio-fx-presets.ts +64 -0
  108. package/src/avatar-payload-validators.ts +214 -0
  109. package/src/caption-styles.ts +31 -0
  110. package/src/character-aspect-defaults.ts +102 -0
  111. package/src/character-facets.ts +37 -0
  112. package/src/character-mention-slug.ts +166 -0
  113. package/src/character-usage-mode.ts +109 -0
  114. package/src/character-variant-assets.ts +121 -0
  115. package/src/character-voice.ts +151 -0
  116. package/src/cinematic-avatar-pricing.ts +111 -0
  117. package/src/clone-utils.ts +46 -0
  118. package/src/combine-transitions.ts +482 -0
  119. package/src/community.ts +112 -0
  120. package/src/component-types.ts +127 -0
  121. package/src/condition-variables.ts +65 -0
  122. package/src/credit-estimators/index.ts +15 -0
  123. package/src/credit-estimators/video-utils.ts +165 -0
  124. package/src/credit-identifiers.ts +304 -0
  125. package/src/entity-approval-types.ts +31 -0
  126. package/src/entity-aspect-defaults.ts +82 -0
  127. package/src/entity-asset-types.ts +296 -0
  128. package/src/entity-image-handle.ts +36 -0
  129. package/src/extra-refs.ts +139 -0
  130. package/src/featured-entities.ts +136 -0
  131. package/src/film-pricing.ts +117 -0
  132. package/src/filter-condition.ts +250 -0
  133. package/src/flux2-pricing.ts +18 -0
  134. package/src/freecut-protocol.ts +52 -0
  135. package/src/furniture.ts +167 -0
  136. package/src/generate-text-items.ts +15 -0
  137. package/src/generated-results.ts +63 -0
  138. package/src/group-aggregation.ts +75 -0
  139. package/src/hint-graph-types.ts +18 -0
  140. package/src/i18n/action-fx.ar.ts +89 -0
  141. package/src/i18n/action-fx.de.ts +89 -0
  142. package/src/i18n/action-fx.es.ts +89 -0
  143. package/src/i18n/action-fx.fr.ts +89 -0
  144. package/src/i18n/action-fx.he.ts +89 -0
  145. package/src/i18n/action-fx.hi.ts +89 -0
  146. package/src/i18n/action-fx.ja.ts +89 -0
  147. package/src/i18n/action-fx.ko.ts +89 -0
  148. package/src/i18n/action-fx.pt-BR.ts +89 -0
  149. package/src/i18n/action-fx.ru.ts +89 -0
  150. package/src/i18n/action-fx.zh-CN.ts +89 -0
  151. package/src/i18n/aesthetic.ar.ts +170 -0
  152. package/src/i18n/aesthetic.de.ts +48 -0
  153. package/src/i18n/aesthetic.es.ts +169 -0
  154. package/src/i18n/aesthetic.fr.ts +52 -0
  155. package/src/i18n/aesthetic.he.ts +169 -0
  156. package/src/i18n/aesthetic.hi.ts +55 -0
  157. package/src/i18n/aesthetic.ja.ts +165 -0
  158. package/src/i18n/aesthetic.ko.ts +169 -0
  159. package/src/i18n/aesthetic.pt-BR.ts +148 -0
  160. package/src/i18n/aesthetic.ru.ts +155 -0
  161. package/src/i18n/aesthetic.zh-CN.ts +172 -0
  162. package/src/i18n/animals.ar.ts +145 -0
  163. package/src/i18n/animals.de.ts +144 -0
  164. package/src/i18n/animals.es.ts +158 -0
  165. package/src/i18n/animals.fr.ts +144 -0
  166. package/src/i18n/animals.he.ts +155 -0
  167. package/src/i18n/animals.hi.ts +157 -0
  168. package/src/i18n/animals.ja.ts +159 -0
  169. package/src/i18n/animals.ko.ts +159 -0
  170. package/src/i18n/animals.pt-BR.ts +157 -0
  171. package/src/i18n/animals.ru.ts +155 -0
  172. package/src/i18n/animals.zh-CN.ts +155 -0
  173. package/src/i18n/atmosphere.ar.ts +49 -0
  174. package/src/i18n/atmosphere.de.ts +47 -0
  175. package/src/i18n/atmosphere.es.ts +50 -0
  176. package/src/i18n/atmosphere.fr.ts +47 -0
  177. package/src/i18n/atmosphere.he.ts +47 -0
  178. package/src/i18n/atmosphere.hi.ts +49 -0
  179. package/src/i18n/atmosphere.ja.ts +49 -0
  180. package/src/i18n/atmosphere.ko.ts +49 -0
  181. package/src/i18n/atmosphere.pt-BR.ts +49 -0
  182. package/src/i18n/atmosphere.ru.ts +47 -0
  183. package/src/i18n/atmosphere.zh-CN.ts +152 -0
  184. package/src/i18n/backdrop.ar.ts +53 -0
  185. package/src/i18n/backdrop.de.ts +46 -0
  186. package/src/i18n/backdrop.es.ts +54 -0
  187. package/src/i18n/backdrop.fr.ts +52 -0
  188. package/src/i18n/backdrop.he.ts +51 -0
  189. package/src/i18n/backdrop.hi.ts +59 -0
  190. package/src/i18n/backdrop.ja.ts +61 -0
  191. package/src/i18n/backdrop.ko.ts +59 -0
  192. package/src/i18n/backdrop.pt-BR.ts +59 -0
  193. package/src/i18n/backdrop.ru.ts +57 -0
  194. package/src/i18n/backdrop.zh-CN.ts +57 -0
  195. package/src/i18n/camera-format.ar.ts +40 -0
  196. package/src/i18n/camera-format.de.ts +37 -0
  197. package/src/i18n/camera-format.es.ts +41 -0
  198. package/src/i18n/camera-format.fr.ts +37 -0
  199. package/src/i18n/camera-format.he.ts +37 -0
  200. package/src/i18n/camera-format.hi.ts +42 -0
  201. package/src/i18n/camera-format.ja.ts +37 -0
  202. package/src/i18n/camera-format.ko.ts +37 -0
  203. package/src/i18n/camera-format.pt-BR.ts +46 -0
  204. package/src/i18n/camera-format.ru.ts +42 -0
  205. package/src/i18n/camera-format.zh-CN.ts +42 -0
  206. package/src/i18n/camera-motions.ar.ts +86 -0
  207. package/src/i18n/camera-motions.de.ts +74 -0
  208. package/src/i18n/camera-motions.es.ts +86 -0
  209. package/src/i18n/camera-motions.fr.ts +86 -0
  210. package/src/i18n/camera-motions.he.ts +86 -0
  211. package/src/i18n/camera-motions.hi.ts +99 -0
  212. package/src/i18n/camera-motions.ja.ts +99 -0
  213. package/src/i18n/camera-motions.ko.ts +99 -0
  214. package/src/i18n/camera-motions.pt-BR.ts +99 -0
  215. package/src/i18n/camera-motions.ru.ts +99 -0
  216. package/src/i18n/camera-motions.zh-CN.ts +99 -0
  217. package/src/i18n/character-fx.ar.ts +72 -0
  218. package/src/i18n/character-fx.de.ts +72 -0
  219. package/src/i18n/character-fx.es.ts +72 -0
  220. package/src/i18n/character-fx.fr.ts +72 -0
  221. package/src/i18n/character-fx.he.ts +72 -0
  222. package/src/i18n/character-fx.hi.ts +72 -0
  223. package/src/i18n/character-fx.ja.ts +72 -0
  224. package/src/i18n/character-fx.ko.ts +72 -0
  225. package/src/i18n/character-fx.pt-BR.ts +72 -0
  226. package/src/i18n/character-fx.ru.ts +72 -0
  227. package/src/i18n/character-fx.zh-CN.ts +72 -0
  228. package/src/i18n/color-look.ar.ts +50 -0
  229. package/src/i18n/color-look.de.ts +47 -0
  230. package/src/i18n/color-look.es.ts +50 -0
  231. package/src/i18n/color-look.fr.ts +50 -0
  232. package/src/i18n/color-look.he.ts +49 -0
  233. package/src/i18n/color-look.hi.ts +52 -0
  234. package/src/i18n/color-look.ja.ts +54 -0
  235. package/src/i18n/color-look.ko.ts +54 -0
  236. package/src/i18n/color-look.pt-BR.ts +54 -0
  237. package/src/i18n/color-look.ru.ts +52 -0
  238. package/src/i18n/color-look.zh-CN.ts +53 -0
  239. package/src/i18n/composition-effects.ar.ts +26 -0
  240. package/src/i18n/composition-effects.de.ts +25 -0
  241. package/src/i18n/composition-effects.es.ts +27 -0
  242. package/src/i18n/composition-effects.fr.ts +25 -0
  243. package/src/i18n/composition-effects.he.ts +25 -0
  244. package/src/i18n/composition-effects.hi.ts +27 -0
  245. package/src/i18n/composition-effects.ja.ts +27 -0
  246. package/src/i18n/composition-effects.ko.ts +27 -0
  247. package/src/i18n/composition-effects.pt-BR.ts +25 -0
  248. package/src/i18n/composition-effects.ru.ts +82 -0
  249. package/src/i18n/composition-effects.zh-CN.ts +25 -0
  250. package/src/i18n/era.ar.ts +37 -0
  251. package/src/i18n/era.de.ts +34 -0
  252. package/src/i18n/era.es.ts +37 -0
  253. package/src/i18n/era.fr.ts +37 -0
  254. package/src/i18n/era.he.ts +36 -0
  255. package/src/i18n/era.hi.ts +39 -0
  256. package/src/i18n/era.ja.ts +41 -0
  257. package/src/i18n/era.ko.ts +39 -0
  258. package/src/i18n/era.pt-BR.ts +41 -0
  259. package/src/i18n/era.ru.ts +121 -0
  260. package/src/i18n/era.zh-CN.ts +39 -0
  261. package/src/i18n/exposure-settings.ar.ts +28 -0
  262. package/src/i18n/exposure-settings.de.ts +26 -0
  263. package/src/i18n/exposure-settings.es.ts +28 -0
  264. package/src/i18n/exposure-settings.fr.ts +29 -0
  265. package/src/i18n/exposure-settings.he.ts +28 -0
  266. package/src/i18n/exposure-settings.hi.ts +31 -0
  267. package/src/i18n/exposure-settings.ja.ts +31 -0
  268. package/src/i18n/exposure-settings.ko.ts +31 -0
  269. package/src/i18n/exposure-settings.pt-BR.ts +31 -0
  270. package/src/i18n/exposure-settings.ru.ts +31 -0
  271. package/src/i18n/exposure-settings.zh-CN.ts +31 -0
  272. package/src/i18n/framing.ar.ts +78 -0
  273. package/src/i18n/framing.de.ts +73 -0
  274. package/src/i18n/framing.es.ts +78 -0
  275. package/src/i18n/framing.fr.ts +78 -0
  276. package/src/i18n/framing.he.ts +77 -0
  277. package/src/i18n/framing.hi.ts +82 -0
  278. package/src/i18n/framing.ja.ts +84 -0
  279. package/src/i18n/framing.ko.ts +82 -0
  280. package/src/i18n/framing.pt-BR.ts +84 -0
  281. package/src/i18n/framing.ru.ts +82 -0
  282. package/src/i18n/framing.zh-CN.ts +82 -0
  283. package/src/i18n/furniture.ar.ts +92 -0
  284. package/src/i18n/furniture.de.ts +93 -0
  285. package/src/i18n/furniture.es.ts +101 -0
  286. package/src/i18n/furniture.fr.ts +93 -0
  287. package/src/i18n/furniture.he.ts +101 -0
  288. package/src/i18n/furniture.hi.ts +101 -0
  289. package/src/i18n/furniture.ja.ts +101 -0
  290. package/src/i18n/furniture.ko.ts +101 -0
  291. package/src/i18n/furniture.pt-BR.ts +101 -0
  292. package/src/i18n/furniture.ru.ts +101 -0
  293. package/src/i18n/furniture.zh-CN.ts +101 -0
  294. package/src/i18n/held-prop.ar.ts +74 -0
  295. package/src/i18n/held-prop.de.ts +65 -0
  296. package/src/i18n/held-prop.es.ts +83 -0
  297. package/src/i18n/held-prop.fr.ts +74 -0
  298. package/src/i18n/held-prop.he.ts +73 -0
  299. package/src/i18n/held-prop.hi.ts +82 -0
  300. package/src/i18n/held-prop.ja.ts +84 -0
  301. package/src/i18n/held-prop.ko.ts +84 -0
  302. package/src/i18n/held-prop.pt-BR.ts +84 -0
  303. package/src/i18n/held-prop.ru.ts +82 -0
  304. package/src/i18n/held-prop.zh-CN.ts +82 -0
  305. package/src/i18n/index.ts +208 -0
  306. package/src/i18n/instrumentation.ar.ts +195 -0
  307. package/src/i18n/instrumentation.de.ts +195 -0
  308. package/src/i18n/instrumentation.es.ts +195 -0
  309. package/src/i18n/instrumentation.fr.ts +195 -0
  310. package/src/i18n/instrumentation.he.ts +195 -0
  311. package/src/i18n/instrumentation.hi.ts +195 -0
  312. package/src/i18n/instrumentation.ja.ts +195 -0
  313. package/src/i18n/instrumentation.ko.ts +195 -0
  314. package/src/i18n/instrumentation.pt-BR.ts +195 -0
  315. package/src/i18n/instrumentation.ru.ts +195 -0
  316. package/src/i18n/instrumentation.zh-CN.ts +195 -0
  317. package/src/i18n/lens.ar.ts +24 -0
  318. package/src/i18n/lens.de.ts +24 -0
  319. package/src/i18n/lens.es.ts +24 -0
  320. package/src/i18n/lens.fr.ts +24 -0
  321. package/src/i18n/lens.he.ts +24 -0
  322. package/src/i18n/lens.hi.ts +24 -0
  323. package/src/i18n/lens.ja.ts +24 -0
  324. package/src/i18n/lens.ko.ts +24 -0
  325. package/src/i18n/lens.pt-BR.ts +24 -0
  326. package/src/i18n/lens.ru.ts +25 -0
  327. package/src/i18n/lens.zh-CN.ts +24 -0
  328. package/src/i18n/lighting.ar.ts +86 -0
  329. package/src/i18n/lighting.de.ts +84 -0
  330. package/src/i18n/lighting.es.ts +89 -0
  331. package/src/i18n/lighting.fr.ts +84 -0
  332. package/src/i18n/lighting.he.ts +88 -0
  333. package/src/i18n/lighting.hi.ts +90 -0
  334. package/src/i18n/lighting.ja.ts +90 -0
  335. package/src/i18n/lighting.ko.ts +90 -0
  336. package/src/i18n/lighting.pt-BR.ts +90 -0
  337. package/src/i18n/lighting.ru.ts +88 -0
  338. package/src/i18n/lighting.zh-CN.ts +92 -0
  339. package/src/i18n/loop-subject.ar.ts +39 -0
  340. package/src/i18n/loop-subject.de.ts +39 -0
  341. package/src/i18n/loop-subject.es.ts +39 -0
  342. package/src/i18n/loop-subject.fr.ts +39 -0
  343. package/src/i18n/loop-subject.he.ts +39 -0
  344. package/src/i18n/loop-subject.hi.ts +39 -0
  345. package/src/i18n/loop-subject.ja.ts +39 -0
  346. package/src/i18n/loop-subject.ko.ts +39 -0
  347. package/src/i18n/loop-subject.pt-BR.ts +39 -0
  348. package/src/i18n/loop-subject.ru.ts +39 -0
  349. package/src/i18n/loop-subject.zh-CN.ts +39 -0
  350. package/src/i18n/materials.ar.ts +80 -0
  351. package/src/i18n/materials.de.ts +80 -0
  352. package/src/i18n/materials.es.ts +87 -0
  353. package/src/i18n/materials.fr.ts +80 -0
  354. package/src/i18n/materials.he.ts +86 -0
  355. package/src/i18n/materials.hi.ts +86 -0
  356. package/src/i18n/materials.ja.ts +88 -0
  357. package/src/i18n/materials.ko.ts +88 -0
  358. package/src/i18n/materials.pt-BR.ts +88 -0
  359. package/src/i18n/materials.ru.ts +86 -0
  360. package/src/i18n/materials.zh-CN.ts +86 -0
  361. package/src/i18n/mood.ar.ts +61 -0
  362. package/src/i18n/mood.de.ts +61 -0
  363. package/src/i18n/mood.es.ts +66 -0
  364. package/src/i18n/mood.fr.ts +61 -0
  365. package/src/i18n/mood.he.ts +64 -0
  366. package/src/i18n/mood.hi.ts +66 -0
  367. package/src/i18n/mood.ja.ts +66 -0
  368. package/src/i18n/mood.ko.ts +66 -0
  369. package/src/i18n/mood.pt-BR.ts +64 -0
  370. package/src/i18n/mood.ru.ts +64 -0
  371. package/src/i18n/mood.zh-CN.ts +64 -0
  372. package/src/i18n/music-genre.ar.ts +302 -0
  373. package/src/i18n/music-genre.de.ts +302 -0
  374. package/src/i18n/music-genre.es.ts +302 -0
  375. package/src/i18n/music-genre.fr.ts +302 -0
  376. package/src/i18n/music-genre.he.ts +302 -0
  377. package/src/i18n/music-genre.hi.ts +302 -0
  378. package/src/i18n/music-genre.ja.ts +302 -0
  379. package/src/i18n/music-genre.ko.ts +302 -0
  380. package/src/i18n/music-genre.pt-BR.ts +302 -0
  381. package/src/i18n/music-genre.ru.ts +302 -0
  382. package/src/i18n/music-genre.zh-CN.ts +302 -0
  383. package/src/i18n/music-mood.ar.ts +75 -0
  384. package/src/i18n/music-mood.de.ts +75 -0
  385. package/src/i18n/music-mood.es.ts +75 -0
  386. package/src/i18n/music-mood.fr.ts +75 -0
  387. package/src/i18n/music-mood.he.ts +75 -0
  388. package/src/i18n/music-mood.hi.ts +75 -0
  389. package/src/i18n/music-mood.ja.ts +75 -0
  390. package/src/i18n/music-mood.ko.ts +75 -0
  391. package/src/i18n/music-mood.pt-BR.ts +75 -0
  392. package/src/i18n/music-mood.ru.ts +75 -0
  393. package/src/i18n/music-mood.zh-CN.ts +75 -0
  394. package/src/i18n/person.ar.ts +638 -0
  395. package/src/i18n/person.de.ts +629 -0
  396. package/src/i18n/person.es.ts +645 -0
  397. package/src/i18n/person.fr.ts +621 -0
  398. package/src/i18n/person.he.ts +656 -0
  399. package/src/i18n/person.hi.ts +654 -0
  400. package/src/i18n/person.ja.ts +662 -0
  401. package/src/i18n/person.ko.ts +662 -0
  402. package/src/i18n/person.pt-BR.ts +656 -0
  403. package/src/i18n/person.ru.ts +656 -0
  404. package/src/i18n/person.zh-CN.ts +656 -0
  405. package/src/i18n/photo-genre.ar.ts +58 -0
  406. package/src/i18n/photo-genre.de.ts +52 -0
  407. package/src/i18n/photo-genre.es.ts +64 -0
  408. package/src/i18n/photo-genre.fr.ts +58 -0
  409. package/src/i18n/photo-genre.he.ts +62 -0
  410. package/src/i18n/photo-genre.hi.ts +63 -0
  411. package/src/i18n/photo-genre.ja.ts +65 -0
  412. package/src/i18n/photo-genre.ko.ts +63 -0
  413. package/src/i18n/photo-genre.pt-BR.ts +65 -0
  414. package/src/i18n/photo-genre.ru.ts +63 -0
  415. package/src/i18n/photo-genre.zh-CN.ts +63 -0
  416. package/src/i18n/photographer.ar.ts +75 -0
  417. package/src/i18n/photographer.de.ts +74 -0
  418. package/src/i18n/photographer.es.ts +77 -0
  419. package/src/i18n/photographer.fr.ts +77 -0
  420. package/src/i18n/photographer.he.ts +78 -0
  421. package/src/i18n/photographer.hi.ts +80 -0
  422. package/src/i18n/photographer.ja.ts +84 -0
  423. package/src/i18n/photographer.ko.ts +84 -0
  424. package/src/i18n/photographer.pt-BR.ts +83 -0
  425. package/src/i18n/photographer.ru.ts +78 -0
  426. package/src/i18n/photographer.zh-CN.ts +78 -0
  427. package/src/i18n/pose.ar.ts +95 -0
  428. package/src/i18n/pose.de.ts +96 -0
  429. package/src/i18n/pose.es.ts +104 -0
  430. package/src/i18n/pose.fr.ts +96 -0
  431. package/src/i18n/pose.he.ts +104 -0
  432. package/src/i18n/pose.hi.ts +104 -0
  433. package/src/i18n/pose.ja.ts +104 -0
  434. package/src/i18n/pose.ko.ts +104 -0
  435. package/src/i18n/pose.pt-BR.ts +104 -0
  436. package/src/i18n/pose.ru.ts +104 -0
  437. package/src/i18n/pose.zh-CN.ts +104 -0
  438. package/src/i18n/post-process-effects.ar.ts +25 -0
  439. package/src/i18n/post-process-effects.de.ts +24 -0
  440. package/src/i18n/post-process-effects.es.ts +26 -0
  441. package/src/i18n/post-process-effects.fr.ts +24 -0
  442. package/src/i18n/post-process-effects.he.ts +24 -0
  443. package/src/i18n/post-process-effects.hi.ts +26 -0
  444. package/src/i18n/post-process-effects.ja.ts +26 -0
  445. package/src/i18n/post-process-effects.ko.ts +26 -0
  446. package/src/i18n/post-process-effects.pt-BR.ts +24 -0
  447. package/src/i18n/post-process-effects.ru.ts +24 -0
  448. package/src/i18n/post-process-effects.zh-CN.ts +24 -0
  449. package/src/i18n/render-quality.ar.ts +34 -0
  450. package/src/i18n/render-quality.de.ts +30 -0
  451. package/src/i18n/render-quality.es.ts +35 -0
  452. package/src/i18n/render-quality.fr.ts +34 -0
  453. package/src/i18n/render-quality.he.ts +33 -0
  454. package/src/i18n/render-quality.hi.ts +39 -0
  455. package/src/i18n/render-quality.ja.ts +39 -0
  456. package/src/i18n/render-quality.ko.ts +39 -0
  457. package/src/i18n/render-quality.pt-BR.ts +37 -0
  458. package/src/i18n/render-quality.ru.ts +37 -0
  459. package/src/i18n/render-quality.zh-CN.ts +37 -0
  460. package/src/i18n/seasons.ar.ts +10 -0
  461. package/src/i18n/seasons.de.ts +10 -0
  462. package/src/i18n/seasons.es.ts +10 -0
  463. package/src/i18n/seasons.fr.ts +10 -0
  464. package/src/i18n/seasons.he.ts +10 -0
  465. package/src/i18n/seasons.hi.ts +10 -0
  466. package/src/i18n/seasons.ja.ts +10 -0
  467. package/src/i18n/seasons.ko.ts +10 -0
  468. package/src/i18n/seasons.pt-BR.ts +10 -0
  469. package/src/i18n/seasons.ru.ts +10 -0
  470. package/src/i18n/seasons.zh-CN.ts +10 -0
  471. package/src/i18n/setting.ar.ts +73 -0
  472. package/src/i18n/setting.de.ts +73 -0
  473. package/src/i18n/setting.es.ts +77 -0
  474. package/src/i18n/setting.fr.ts +73 -0
  475. package/src/i18n/setting.he.ts +76 -0
  476. package/src/i18n/setting.hi.ts +76 -0
  477. package/src/i18n/setting.ja.ts +78 -0
  478. package/src/i18n/setting.ko.ts +76 -0
  479. package/src/i18n/setting.pt-BR.ts +78 -0
  480. package/src/i18n/setting.ru.ts +76 -0
  481. package/src/i18n/setting.zh-CN.ts +76 -0
  482. package/src/i18n/style.ar.ts +55 -0
  483. package/src/i18n/style.de.ts +54 -0
  484. package/src/i18n/style.es.ts +54 -0
  485. package/src/i18n/style.fr.ts +54 -0
  486. package/src/i18n/style.he.ts +54 -0
  487. package/src/i18n/style.hi.ts +54 -0
  488. package/src/i18n/style.ja.ts +54 -0
  489. package/src/i18n/style.ko.ts +54 -0
  490. package/src/i18n/style.pt-BR.ts +56 -0
  491. package/src/i18n/style.ru.ts +54 -0
  492. package/src/i18n/style.zh-CN.ts +54 -0
  493. package/src/i18n/styling.ar.ts +295 -0
  494. package/src/i18n/styling.de.ts +285 -0
  495. package/src/i18n/styling.es.ts +317 -0
  496. package/src/i18n/styling.fr.ts +285 -0
  497. package/src/i18n/styling.he.ts +307 -0
  498. package/src/i18n/styling.hi.ts +323 -0
  499. package/src/i18n/styling.ja.ts +317 -0
  500. package/src/i18n/styling.ko.ts +311 -0
  501. package/src/i18n/styling.pt-BR.ts +301 -0
  502. package/src/i18n/styling.ru.ts +301 -0
  503. package/src/i18n/styling.zh-CN.ts +307 -0
  504. package/src/i18n/temporal.ar.ts +31 -0
  505. package/src/i18n/temporal.de.ts +24 -0
  506. package/src/i18n/temporal.es.ts +27 -0
  507. package/src/i18n/temporal.fr.ts +28 -0
  508. package/src/i18n/temporal.he.ts +31 -0
  509. package/src/i18n/temporal.hi.ts +31 -0
  510. package/src/i18n/temporal.ja.ts +31 -0
  511. package/src/i18n/temporal.ko.ts +31 -0
  512. package/src/i18n/temporal.pt-BR.ts +31 -0
  513. package/src/i18n/temporal.ru.ts +31 -0
  514. package/src/i18n/temporal.zh-CN.ts +31 -0
  515. package/src/i18n/transitions.ar.ts +97 -0
  516. package/src/i18n/transitions.de.ts +97 -0
  517. package/src/i18n/transitions.es.ts +97 -0
  518. package/src/i18n/transitions.fr.ts +97 -0
  519. package/src/i18n/transitions.he.ts +97 -0
  520. package/src/i18n/transitions.hi.ts +97 -0
  521. package/src/i18n/transitions.ja.ts +97 -0
  522. package/src/i18n/transitions.ko.ts +97 -0
  523. package/src/i18n/transitions.pt-BR.ts +97 -0
  524. package/src/i18n/transitions.ru.ts +97 -0
  525. package/src/i18n/transitions.zh-CN.ts +97 -0
  526. package/src/i18n/types.ts +158 -0
  527. package/src/i18n/vehicles.ar.ts +137 -0
  528. package/src/i18n/vehicles.de.ts +125 -0
  529. package/src/i18n/vehicles.es.ts +138 -0
  530. package/src/i18n/vehicles.fr.ts +125 -0
  531. package/src/i18n/vehicles.he.ts +136 -0
  532. package/src/i18n/vehicles.hi.ts +138 -0
  533. package/src/i18n/vehicles.ja.ts +138 -0
  534. package/src/i18n/vehicles.ko.ts +138 -0
  535. package/src/i18n/vehicles.pt-BR.ts +136 -0
  536. package/src/i18n/vehicles.ru.ts +136 -0
  537. package/src/i18n/vehicles.zh-CN.ts +136 -0
  538. package/src/i18n/voice-character.ar.ts +126 -0
  539. package/src/i18n/voice-character.de.ts +126 -0
  540. package/src/i18n/voice-character.es.ts +126 -0
  541. package/src/i18n/voice-character.fr.ts +126 -0
  542. package/src/i18n/voice-character.he.ts +126 -0
  543. package/src/i18n/voice-character.hi.ts +126 -0
  544. package/src/i18n/voice-character.ja.ts +126 -0
  545. package/src/i18n/voice-character.ko.ts +126 -0
  546. package/src/i18n/voice-character.pt-BR.ts +126 -0
  547. package/src/i18n/voice-character.ru.ts +126 -0
  548. package/src/i18n/voice-character.zh-CN.ts +126 -0
  549. package/src/i18n/voice-delivery.ar.ts +77 -0
  550. package/src/i18n/voice-delivery.de.ts +77 -0
  551. package/src/i18n/voice-delivery.es.ts +77 -0
  552. package/src/i18n/voice-delivery.fr.ts +77 -0
  553. package/src/i18n/voice-delivery.he.ts +77 -0
  554. package/src/i18n/voice-delivery.hi.ts +77 -0
  555. package/src/i18n/voice-delivery.ja.ts +77 -0
  556. package/src/i18n/voice-delivery.ko.ts +77 -0
  557. package/src/i18n/voice-delivery.pt-BR.ts +77 -0
  558. package/src/i18n/voice-delivery.ru.ts +77 -0
  559. package/src/i18n/voice-delivery.zh-CN.ts +77 -0
  560. package/src/i18n/weapons.ar.ts +115 -0
  561. package/src/i18n/weapons.de.ts +114 -0
  562. package/src/i18n/weapons.es.ts +116 -0
  563. package/src/i18n/weapons.fr.ts +103 -0
  564. package/src/i18n/weapons.he.ts +114 -0
  565. package/src/i18n/weapons.hi.ts +116 -0
  566. package/src/i18n/weapons.ja.ts +116 -0
  567. package/src/i18n/weapons.ko.ts +116 -0
  568. package/src/i18n/weapons.pt-BR.ts +114 -0
  569. package/src/i18n/weapons.ru.ts +114 -0
  570. package/src/i18n/weapons.zh-CN.ts +114 -0
  571. package/src/image-critic-node.ts +61 -0
  572. package/src/image-critic-types.ts +40 -0
  573. package/src/index.ts +866 -0
  574. package/src/inject-upstream.ts +15 -0
  575. package/src/inpaint-region.ts +51 -0
  576. package/src/json-evaluator.ts +732 -0
  577. package/src/json-path.ts +52 -0
  578. package/src/lip-sync-pricing.ts +90 -0
  579. package/src/list-merge.ts +40 -0
  580. package/src/list-sort.ts +122 -0
  581. package/src/list-source-resolver.ts +50 -0
  582. package/src/llm-models.ts +245 -0
  583. package/src/location-mention-slug.ts +291 -0
  584. package/src/location-preset-catalog-map.ts +128 -0
  585. package/src/loop-delimiter.ts +73 -0
  586. package/src/lora-routing.ts +95 -0
  587. package/src/lottie-overlay-catalog.ts +175 -0
  588. package/src/lottie-slots.ts +309 -0
  589. package/src/model-catalog.ts +2386 -0
  590. package/src/model-constants.ts +1910 -0
  591. package/src/model-tree.ts +120 -0
  592. package/src/monetization.ts +15 -0
  593. package/src/multi-pick.ts +42 -0
  594. package/src/node-default-mappings.ts +262 -0
  595. package/src/node-mappable-fields.ts +70 -0
  596. package/src/node-preset-export.ts +56 -0
  597. package/src/node-preset-extract.ts +147 -0
  598. package/src/node-refs.ts +253 -0
  599. package/src/node-runtime-keys.ts +117 -0
  600. package/src/object-aspect-defaults.ts +72 -0
  601. package/src/object-picker-types.ts +22 -0
  602. package/src/parameter-node-value.ts +284 -0
  603. package/src/pinterest-url.ts +28 -0
  604. package/src/pipeline-chat.ts +72 -0
  605. package/src/pipeline-defaults.ts +318 -0
  606. package/src/pipeline-events.ts +162 -0
  607. package/src/pipeline-state-types.ts +196 -0
  608. package/src/pipeline-types.ts +647 -0
  609. package/src/pipeline-validation.ts +87 -0
  610. package/src/presentation-types.ts +23 -0
  611. package/src/presentation-utils.ts +397 -0
  612. package/src/producer-types.ts +188 -0
  613. package/src/progress-curve.ts +99 -0
  614. package/src/provider-directive-defaults.ts +69 -0
  615. package/src/reduce-strategy-registry.ts +121 -0
  616. package/src/reference-board-templates.ts +81 -0
  617. package/src/reference-roles.ts +153 -0
  618. package/src/reference-sheet/__tests__/board-to-column.test.ts +20 -0
  619. package/src/reference-sheet/__tests__/catalog.test.ts +50 -0
  620. package/src/reference-sheet/__tests__/cost.test.ts +38 -0
  621. package/src/reference-sheet/__tests__/no-drift.test.ts +28 -0
  622. package/src/reference-sheet/__tests__/panel-plan.test.ts +61 -0
  623. package/src/reference-sheet/__tests__/panel-prompts.test.ts +17 -0
  624. package/src/reference-sheet/__tests__/plan-generation.test.ts +72 -0
  625. package/src/reference-sheet/__tests__/presets.test.ts +54 -0
  626. package/src/reference-sheet/__tests__/types.test.ts +24 -0
  627. package/src/reference-sheet/catalog.ts +144 -0
  628. package/src/reference-sheet/cost.ts +37 -0
  629. package/src/reference-sheet/credit-id.ts +7 -0
  630. package/src/reference-sheet/index.ts +8 -0
  631. package/src/reference-sheet/panel-plan.ts +65 -0
  632. package/src/reference-sheet/panel-prompts.ts +14 -0
  633. package/src/reference-sheet/plan-generation.ts +79 -0
  634. package/src/reference-sheet/presets.ts +77 -0
  635. package/src/reference-sheet/types.ts +92 -0
  636. package/src/repeat-types.ts +97 -0
  637. package/src/resolve-field-mappings.ts +119 -0
  638. package/src/route-filter.ts +80 -0
  639. package/src/scene-helper-types.ts +249 -0
  640. package/src/scene-node-types.ts +281 -0
  641. package/src/scraper-actors.ts +57 -0
  642. package/src/scraper-output-schemas.ts +25 -0
  643. package/src/seasons.ts +45 -0
  644. package/src/selector.ts +864 -0
  645. package/src/settled-with-limit.ts +42 -0
  646. package/src/shot-element.ts +43 -0
  647. package/src/social-media-specs.ts +121 -0
  648. package/src/social-post.ts +24 -0
  649. package/src/sub-workflow-validation.ts +78 -0
  650. package/src/supported-fonts.ts +40 -0
  651. package/src/surround.ts +113 -0
  652. package/src/switchx-pricing.ts +33 -0
  653. package/src/text-separators.ts +59 -0
  654. package/src/to-connected-references.ts +77 -0
  655. package/src/types.ts +272 -0
  656. package/src/variant-job-id.ts +17 -0
  657. package/src/vehicles.ts +213 -0
  658. package/src/video-analysis-pricing.ts +74 -0
  659. package/src/video-analysis.ts +127 -0
  660. package/src/video-duration.ts +25 -0
  661. package/src/voice-changer-models.ts +36 -0
  662. package/src/voice-matcher-types.ts +37 -0
  663. package/src/voices.ts +92 -0
  664. package/src/weapons.ts +190 -0
  665. package/src/workflow-export.ts +153 -0
@@ -0,0 +1,285 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Makeup
5
+ "makeup-natural": { label: "Naturel", description: "Maquillage subtil sans-maquillage" },
6
+ "makeup-glamour": { label: "Glamour", description: "Look glam complet et soigné" },
7
+ "makeup-smoky": { label: "Œil charbonneux", description: "Maquillage des yeux sombre et dramatique" },
8
+ "makeup-bold-lips": { label: "Lèvres audacieuses", description: "Rouge à lèvres rouge ou foncé fort" },
9
+ "makeup-editorial": { label: "Éditorial", description: "Maquillage mode avant-gardiste" },
10
+ "makeup-goth": { label: "Goth", description: "Esthétique goth sombre" },
11
+ "makeup-dewy": { label: "Lueur rosée", description: "Peau fraîche et lumineuse en avant" },
12
+ // Eyewear
13
+ "eyewear-sunglasses": { label: "Lunettes de soleil", description: "Lunettes de soleil sombres génériques" },
14
+ "eyewear-aviators": { label: "Aviateurs", description: "Lunettes aviateur classiques" },
15
+ "eyewear-cat-eye": { label: "Œil de chat", description: "Monture vintage en œil de chat" },
16
+ "eyewear-round": { label: "Rondes / John Lennon", description: "Lunettes rondes à monture en fil de fer" },
17
+ "eyewear-fashion": { label: "Lunettes mode", description: "Montures de créateur audacieuses" },
18
+ "eyewear-sport": { label: "Lunettes de sport", description: "Lunettes de sport enveloppantes" },
19
+ // Headwear
20
+ "headwear-beanie": { label: "Bonnet", description: "Bonnet en tricot" },
21
+ "headwear-baseball-cap": { label: "Casquette de baseball", description: "Casquette à visière courbée" },
22
+ "headwear-fedora": { label: "Fedora", description: "Fedora à bord" },
23
+ "headwear-sun-hat": { label: "Chapeau de soleil", description: "Chapeau de soleil à large bord" },
24
+ "headwear-headband": { label: "Bandeau", description: "Bandeau pour cheveux" },
25
+ "headwear-bandana": { label: "Bandana", description: "Bandana noué autour de la tête" },
26
+ "headwear-hood": { label: "Capuche", description: "Capuche de sweat-shirt remontée" },
27
+ "headwear-crown": { label: "Couronne", description: "Couronne royale ou décorative" },
28
+ "headwear-helmet": { label: "Casque", description: "Casque de protection" },
29
+ "headwear-veil": { label: "Voile", description: "Voile drapé sur le visage/les cheveux" },
30
+ "headwear-bucket-hat": { label: "Bob", description: "Bob souple à bord décontracté" },
31
+ "headwear-beret": { label: "Béret", description: "Béret français rond et souple" },
32
+ "headwear-turban": { label: "Turban", description: "Turban enroulé autour de la tête, culturel / mode" },
33
+ "headwear-fascinator": { label: "Fascinator", description: "Petit ornement décoratif de tête, style mariage royal" },
34
+ "headwear-bowler": { label: "Chapeau melon", description: "Chapeau melon / derby à calotte ronde" },
35
+ "headwear-cowboy-hat": { label: "Chapeau de cowboy", description: "Chapeau de cowboy western à large bord" },
36
+ // Hair Cut
37
+ "cut-pixie": { label: "Pixie", description: "Coupe pixie courte et nette" },
38
+ "cut-buzz-cut": { label: "Boule à zéro", description: "Coupe très courte" },
39
+ "cut-crew-cut": { label: "Crew cut", description: "Crew cut court dégradé classique" },
40
+ "cut-shaved": { label: "Rasé", description: "Entièrement rasé" },
41
+ "cut-undercut": { label: "Undercut", description: "Côtés courts, dessus plus long" },
42
+ "cut-faux-hawk": { description: "Bande centrale relevée, côtés dégradés" },
43
+ "cut-mohawk": { description: "Côtés rasés, haute bande centrale" },
44
+ "cut-pompadour": { description: "Vers le haut et l'arrière, volume devant" },
45
+ "cut-short": { label: "Court", description: "Coupe courte générique" },
46
+ "cut-short-curly": { label: "Coupe courte bouclée", description: "Forme courte bouclée en couches" },
47
+ "cut-micro-bob": { description: "Carré très court à hauteur d'oreille" },
48
+ "cut-french-bob": { label: "Carré français", description: "Carré net à hauteur de mâchoire, souvent avec frange" },
49
+ "cut-bob": { label: "Carré", description: "Carré à hauteur du menton" },
50
+ "cut-lob": { label: "Long carré", description: "Long carré, à hauteur de clavicule" },
51
+ "cut-mullet": { label: "Mulet", description: "Court sur le dessus et les côtés, long derrière" },
52
+ "cut-wolf-cut": { description: "Mulet shaggy en couches avec frange" },
53
+ "cut-bangs": { label: "Frange droite", description: "Frange droite sur le front" },
54
+ "cut-curtain-bangs": { label: "Frange rideau", description: "Frange centrée encadrant le visage" },
55
+ "cut-wispy-bangs": { label: "Frange wispy", description: "Frange fine, en mèches, aérée" },
56
+ "cut-side-swept": { label: "Mèche balayée sur le côté", description: "Tombe sur le visage couvrant un œil" },
57
+ "cut-slicked-back": { label: "Plaqué en arrière", description: "Tiré tout droit en arrière, soigné" },
58
+ "cut-bardot-tendrils": { label: "Mèches Bardot", description: "Tirés en arrière avec mèches encadrant le visage" },
59
+ "cut-ponytail": { label: "Queue de cheval (basse)", description: "Queue de cheval basse tirée en arrière" },
60
+ "cut-high-ponytail": { label: "Queue de cheval haute", description: "Queue de cheval attachée haut sur la tête" },
61
+ "cut-half-up": { label: "Moitié relevée moitié libre", description: "Haut relevé, le reste flotte vers le bas" },
62
+ "cut-bun": { label: "Chignon", description: "Chignon classique bas ou mi-haut" },
63
+ "cut-top-knot": { label: "Top knot", description: "Chignon noué haut sur la tête" },
64
+ "cut-space-buns": { description: "Deux chignons symétriques de chaque côté" },
65
+ "cut-braids": { label: "Tresses", description: "Plusieurs tresses lâches tissées" },
66
+ "cut-single-braid": { label: "Tresse unique", description: "Une longue tresse dans le dos" },
67
+ "cut-two-braids": { label: "Deux tresses", description: "Tresses en couettes de chaque côté" },
68
+ "cut-french-braid": { label: "Tresse française", description: "Tressée à plat contre le cuir chevelu" },
69
+ "cut-dutch-braid": { label: "Tresse hollandaise", description: "Tresse française inversée surélevée" },
70
+ "cut-fishtail-braid": { label: "Tresse en épi", description: "Tissage fin à deux brins" },
71
+ "cut-box-braids": { description: "Tresses individuelles sectionnées" },
72
+ "cut-crown-braid": { label: "Tresse couronne", description: "Tresse enroulée autour de la tête" },
73
+ "cut-cornrows": { description: "Motif de cornrows tressés" },
74
+ "cut-dreadlocks": { description: "Locks emmêlés en cordes" },
75
+ "cut-sisterlocks": { description: "Micro-locks fins et bien sectionnés" },
76
+ // Hair state
77
+ "hair-wet": { label: "Mouillés", description: "Cheveux trempés, eau ruisselante" },
78
+ "hair-damp": { label: "Humides", description: "Cheveux à peine lavés humides" },
79
+ "hair-messy": { label: "Désordonnés", description: "Échevelés, en bataille" },
80
+ "hair-tousled": { label: "Décoiffés", description: "Légèrement froissés, vécus" },
81
+ "hair-bedhead": { label: "Bedhead", description: "Aplatis d'un côté, comme au réveil" },
82
+ "hair-windswept": { label: "Battus par le vent", description: "Soufflés par le vent, en mouvement" },
83
+ "hair-voluminous": { label: "Volumineux", description: "Grand volume soufflé" },
84
+ "hair-sleek": { label: "Lisses", description: "Lisses comme du verre" },
85
+ "hair-frizzy": { label: "Crépus", description: "Halo de frisottis" },
86
+ "hair-strands-on-face": { label: "Mèches sur le visage", description: "Mèches lâches en travers du visage" },
87
+ "hair-tucked-behind-ear": { label: "Glissés derrière l'oreille", description: "Repoussés derrière une oreille" },
88
+ "hair-flowing": { label: "Flottants", description: "Long mouvement flottant" },
89
+ // Hair treatment
90
+ "treatment-babylights": { description: "Mèches ultra-fines et délicates" },
91
+ "treatment-balayage": { description: "Mèches peintes à la main" },
92
+ "treatment-ombre": { label: "Ombré", description: "Dégradé racines foncées vers pointes claires" },
93
+ "treatment-sombre": { label: "Sombré", description: "Ombré subtil et doux" },
94
+ "treatment-highlights": { label: "Mèches", description: "Mèches classiques aux papillotes" },
95
+ "treatment-lowlights": { label: "Lowlights", description: "Mèches plus foncées" },
96
+ "treatment-rooted": { label: "Racines apparentes", description: "Look avec racines visibles" },
97
+ // Jewelry
98
+ "jewelry-subtle": { label: "Discret", description: "Bijoux minimalistes et délicats" },
99
+ "jewelry-statement": { label: "Statement", description: "Pièce statement audacieuse" },
100
+ "jewelry-gold": { label: "Or", description: "Collier + boucles d'oreilles en or" },
101
+ "jewelry-silver": { label: "Argent", description: "Collier + boucles d'oreilles en argent" },
102
+ "jewelry-layered": { label: "Superposés", description: "Colliers / chaînes superposés" },
103
+ "jewelry-pearl": { label: "Perles", description: "Collier / boucles d'oreilles en perles" },
104
+ "jewelry-chunky": { label: "Massifs", description: "Chaînes massives et bagues" },
105
+ "jewelry-smart-watch": { label: "Montre connectée", description: "Montre connectée moderne au poignet" },
106
+ "jewelry-choker-leather": { label: "Ras-de-cou en cuir", description: "Ras-de-cou en cuir noir près de la gorge" },
107
+ "jewelry-choker-velvet": { label: "Ras-de-cou en velours", description: "Ruban ras-de-cou en velours, habillé et vintage" },
108
+ "jewelry-choker-chain": { label: "Ras-de-cou chaîne", description: "Ras-de-cou fin en chaîne métallique" },
109
+ "jewelry-stud-earrings": { label: "Boucles d'oreilles puces", description: "Petites puces simples" },
110
+ "jewelry-hoop-earrings": { label: "Créoles", description: "Créoles en or ou argent" },
111
+ "jewelry-ear-cuff": { label: "Manchette d'oreille", description: "Manchette sculpturale grimpant le cartilage" },
112
+ "jewelry-septum-ring": { label: "Anneau de septum", description: "Anneau de nez septum" },
113
+ "jewelry-body-chain": { label: "Chaîne de corps", description: "Fine chaîne métallique en travers du torse" },
114
+ // Nails
115
+ "nails-polished": { label: "Vernis discret", description: "Ongles vernis transparents ou nude" },
116
+ "nails-red": { label: "Rouge", description: "Vernis à ongles rouge vif" },
117
+ "nails-dark": { label: "Foncés", description: "Ongles foncés / noirs" },
118
+ "nails-long-acrylic": { label: "Acrylique long", description: "Faux ongles en acrylique longs" },
119
+ "nails-french": { label: "French manucure", description: "Manucure french classique" },
120
+ // Face Paint
121
+ "face-paint-subtle": { label: "Body paint subtil", description: "Accents subtils de body / face paint" },
122
+ "face-paint-dramatic": { label: "Face paint dramatique", description: "Face paint artistique audacieux" },
123
+ "face-paint-costume": { label: "Peinture de costume", description: "Peinture cosplay / théâtrale" },
124
+ "face-paint-tribal": { label: "Marques tribales", description: "Marques faciales d'inspiration tribale" },
125
+ "face-paint-warpaint": { label: "Peintures de guerre", description: "Traînées de peinture de guerre" },
126
+ // Fabric
127
+ "fabric-silk": { label: "Soie", description: "Vêtements en soie lisse et brillante" },
128
+ "fabric-cotton": { label: "Coton", description: "Coton mat doux" },
129
+ "fabric-denim": { label: "Denim", description: "Denim indigo épais" },
130
+ "fabric-leather": { label: "Cuir", description: "Cuir riche et souple" },
131
+ "fabric-velvet": { label: "Velours", description: "Velours moelleux" },
132
+ "fabric-satin": { label: "Satin", description: "Satin brillant" },
133
+ "fabric-lace": { label: "Dentelle", description: "Dentelle délicate à motifs" },
134
+ "fabric-wool": { label: "Laine", description: "Laine tissée chaude" },
135
+ "fabric-linen": { label: "Lin", description: "Lin texturé naturel" },
136
+ "fabric-tweed": { label: "Tweed", description: "Tweed tissé rustique" },
137
+ "fabric-cashmere": { label: "Cachemire", description: "Cachemire luxueux et doux" },
138
+ "fabric-chiffon": { label: "Mousseline", description: "Mousseline fluide et transparente" },
139
+ "fabric-fur": { label: "Fourrure", description: "Fourrure épaisse et moelleuse" },
140
+ "fabric-sequins": { label: "Paillettes", description: "Tissu à paillettes scintillant" },
141
+ "fabric-latex": { label: "Latex", description: "Latex brillant" },
142
+ // Outfit
143
+ "outfit-school-uniform": { label: "Uniforme scolaire", description: "Ensemble d'uniforme scolaire classique" },
144
+ "outfit-business-suit": { label: "Costume d'affaires", description: "Costume d'affaires deux pièces ajusté" },
145
+ "outfit-tuxedo": { label: "Smoking", description: "Smoking de cravate noire" },
146
+ "outfit-evening-gown": { label: "Robe de soirée", description: "Robe formelle pleine longueur" },
147
+ "outfit-wedding-dress": { label: "Robe de mariée", description: "Robe de mariée blanche" },
148
+ "outfit-cocktail-dress": { label: "Robe de cocktail", description: "Robe de cocktail à hauteur du genou" },
149
+ "outfit-lab-coat": { label: "Blouse de laboratoire", description: "Blouse médicale blanche" },
150
+ "outfit-scrubs": { label: "Tenue médicale", description: "Tenue médicale unie" },
151
+ "outfit-military": { label: "Treillis militaire", description: "Treillis militaire vert olive" },
152
+ "outfit-lifeguard": { label: "Tenue de sauveteur", description: "Haut et short rouges de sauveteur" },
153
+ "outfit-athleisure": { label: "Ensemble athleisure", description: "Haut et bas athleisure assortis" },
154
+ "outfit-tracksuit": { label: "Survêtement", description: "Survêtement deux pièces zippé" },
155
+ "outfit-bikini": { label: "Bikini", description: "Maillot de bain deux pièces" },
156
+ "outfit-one-piece-swim": { label: "Maillot une pièce", description: "Maillot une pièce ajusté" },
157
+ "outfit-lingerie": { label: "Ensemble lingerie", description: "Ensemble de lingerie assorti" },
158
+ "outfit-pajamas": { label: "Pyjama", description: "Pyjama doux en coton" },
159
+ "outfit-bathrobe": { label: "Peignoir", description: "Peignoir éponge moelleux" },
160
+ "outfit-kimono": { label: "Kimono", description: "Kimono japonais traditionnel" },
161
+ "outfit-ballerina": { label: "Tenue de ballerine", description: "Costume de ballerine classique" },
162
+ "outfit-flapper": { label: "Flapper années 1920", description: "Robe flapper à perles" },
163
+ "outfit-goth": { label: "Goth", description: "Look goth sombre complet : dentelle noire, cuir, maquillage sombre, chaînes" },
164
+ "outfit-emo": { label: "Emo", description: "Emo début des années 2000 : jean slim, t-shirt de groupe, cheveux teints, eye-liner" },
165
+ "outfit-streetwear": { label: "Streetwear", description: "Streetwear moderne : sweat à capuche, pantalon baggy, baskets, bob" },
166
+ "outfit-cyberpunk": { label: "Cyberpunk", description: "Cyberpunk au néon : techwear, accents LED, couches en mesh" },
167
+ "outfit-cottagecore": { label: "Cottagecore", description: "Esthétique pastorale cottage : robe prairie, tablier, panier" },
168
+ "outfit-dark-academia": { label: "Dark Academia", description: "Étudiant tweed Oxford : blazer, gilet, chaussures Oxford" },
169
+ "outfit-anime-cosplay": { label: "Cosplay anime", description: "Costume modelé sur un personnage d'anime reconnaissable" },
170
+ "outfit-nurse": { label: "Infirmière", description: "Tenue médicale, stéthoscope, badge à lanière" },
171
+ "outfit-pirate": { label: "Pirate", description: "Costume de pirate : tricorne, ceinture, chemise à jabot, bottes" },
172
+ "outfit-fairy": { label: "Fée", description: "Fée fantastique : ailes vaporeuses, couronne de fleurs, robe éthérée" },
173
+ "outfit-mermaid": { label: "Sirène", description: "Sirène fantastique : queue / jupe à écailles, haut en coquillages" },
174
+ // Top
175
+ "top-tshirt": { label: "T-shirt", description: "T-shirt simple à col rond" },
176
+ "top-tank": { label: "Débardeur", description: "Débardeur à col rond" },
177
+ "top-crop-top": { label: "Crop top", description: "Coupé au-dessus du nombril" },
178
+ "top-hoodie": { label: "Sweat à capuche", description: "Sweat à capuche pull" },
179
+ "top-sweater": { label: "Pull", description: "Pull tricoté à enfiler" },
180
+ "top-turtleneck": { label: "Col roulé", description: "Col roulé haut" },
181
+ "top-blouse": { label: "Chemisier", description: "Chemisier habillé fluide" },
182
+ "top-button-down": { label: "Chemise boutonnée", description: "Chemise boutonnée ajustée" },
183
+ "top-polo": { label: "Polo", description: "Polo à manches courtes" },
184
+ "top-tube-top": { label: "Bustier tube", description: "Bustier tube sans bretelles" },
185
+ "top-camisole": { label: "Caraco", description: "Caraco fin en satin" },
186
+ "top-corset": { label: "Corset", description: "Top corset structuré" },
187
+ "top-bra-top": { label: "Top brassière", description: "Top type brassière laissant le ventre nu" },
188
+ "top-sports-bra": { label: "Brassière de sport", description: "Brassière de sport athlétique" },
189
+ "top-bikini-top": { label: "Haut de bikini", description: "Haut de bikini triangle" },
190
+ "top-bodysuit": { label: "Body", description: "Vêtement une pièce ajusté pour le torse" },
191
+ "top-leotard": { label: "Justaucorps", description: "Top ajusté style danse avec manches" },
192
+ "top-mesh-top": { label: "Top en mesh", description: "Top en tissu mesh transparent" },
193
+ "top-sheer-top": { label: "Top transparent", description: "Top en tissu translucide" },
194
+ "top-bandeau": { label: "Bandeau", description: "Top tube sans bretelles" },
195
+ // Bottom
196
+ "bottom-jeans": { label: "Jean", description: "Jean bleu classique" },
197
+ "bottom-skinny-jeans": { label: "Jean slim", description: "Jean coupe slim" },
198
+ "bottom-wide-leg-jeans": { label: "Jean large", description: "Jean large décontracté" },
199
+ "bottom-mom-jeans": { label: "Mom jean", description: "Mom jean taille haute" },
200
+ "bottom-low-rise-jeans": { label: "Jean taille basse", description: "Jean taille basse" },
201
+ "bottom-chinos": { label: "Chinos", description: "Pantalon chino ajusté" },
202
+ "bottom-trousers": { label: "Pantalon de costume", description: "Pantalon de costume repassé" },
203
+ "bottom-cargo": { label: "Pantalon cargo", description: "Pantalon cargo à poches latérales" },
204
+ "bottom-leggings": { label: "Leggings", description: "Leggings ajustés" },
205
+ "bottom-sweatpants": { label: "Pantalon de jogging", description: "Pantalon de jogging détendu" },
206
+ "bottom-shorts": { label: "Short", description: "Short mi-cuisse" },
207
+ "bottom-denim-shorts": { label: "Short en jean", description: "Short en jean coupé" },
208
+ "bottom-mini-skirt": { label: "Mini-jupe", description: "Mini-jupe au-dessus du genou" },
209
+ "bottom-pleated-skirt": { label: "Jupe plissée", description: "Jupe plissée mi-cuisse" },
210
+ "bottom-midi-skirt": { label: "Jupe midi", description: "Jupe midi à hauteur du mollet" },
211
+ "bottom-maxi-skirt": { label: "Jupe maxi", description: "Jupe maxi pleine longueur" },
212
+ "bottom-overalls": { label: "Salopette", description: "Salopette en jean / dungarees" },
213
+ "bottom-culottes": { label: "Jupe-culotte", description: "Pantalon large et court, à mi-mollet" },
214
+ "bottom-palazzo-pants": { label: "Pantalon palazzo", description: "Pantalon ample fluide à jambes larges" },
215
+ "bottom-harem-pants": { label: "Pantalon sarouel", description: "Pantalon ample à entrejambe bas" },
216
+ "bottom-bike-shorts": { label: "Cuissard de vélo", description: "Short ajusté en lycra à mi-cuisse" },
217
+ // Outerwear
218
+ "outerwear-leather-jacket": { label: "Veste en cuir", description: "Veste en cuir slim" },
219
+ "outerwear-denim-jacket": { label: "Veste en jean", description: "Veste en jean classique" },
220
+ "outerwear-bomber": { label: "Bomber", description: "Bomber en satin" },
221
+ "outerwear-blazer": { label: "Blazer", description: "Blazer ajusté" },
222
+ "outerwear-trench": { label: "Trench-coat", description: "Trench-coat ceinturé" },
223
+ "outerwear-overcoat": { label: "Manteau en laine", description: "Long manteau en laine" },
224
+ "outerwear-puffer": { label: "Doudoune", description: "Doudoune matelassée" },
225
+ "outerwear-parka": { label: "Parka", description: "Parka à capuche bordée de fourrure" },
226
+ "outerwear-cardigan": { label: "Cardigan", description: "Cardigan tricoté ouvert devant" },
227
+ "outerwear-vest": { label: "Gilet", description: "Gilet ajusté" },
228
+ "outerwear-kimono-robe": { label: "Robe kimono", description: "Robe kimono fluide" },
229
+ "outerwear-varsity": { label: "Varsity", description: "Veste varsity letterman" },
230
+ "outerwear-fur-coat": { label: "Manteau de fourrure", description: "Manteau de fourrure moelleux" },
231
+ // Legwear
232
+ "legwear-bare": { label: "Jambes nues", description: "Jambes nues, sans bas" },
233
+ "legwear-sheer-tights": { label: "Collants transparents", description: "Collants nude transparents" },
234
+ "legwear-opaque-tights": { label: "Collants opaques", description: "Collants opaques unis" },
235
+ "legwear-fishnets": { label: "Bas résille", description: "Résille à mailles losangées" },
236
+ "legwear-thigh-highs": { label: "Bas autofixants", description: "Bas autofixants jusqu'à mi-cuisse" },
237
+ "legwear-lace-top-stockings": { label: "Bas autofixants à dentelle", description: "Bas autofixants à bande de dentelle" },
238
+ "legwear-knee-highs": { label: "Mi-bas hauts", description: "Mi-bas hauts" },
239
+ "legwear-crew-socks": { label: "Chaussettes mi-mollet", description: "Chaussettes mi-mollet" },
240
+ "legwear-ankle-socks": { label: "Socquettes", description: "Socquettes basses" },
241
+ "legwear-leg-warmers": { label: "Jambières", description: "Jambières en tricot" },
242
+ // Footwear
243
+ "footwear-sneakers": { label: "Baskets", description: "Baskets basses" },
244
+ "footwear-high-tops": { label: "Baskets montantes", description: "Baskets montantes en toile" },
245
+ "footwear-running-shoes": { label: "Chaussures de course", description: "Chaussures de course athlétiques" },
246
+ "footwear-stilettos": { label: "Talons stilettos", description: "Talons stilettos pointus" },
247
+ "footwear-block-heels": { label: "Talons carrés", description: "Escarpins à talons carrés massifs" },
248
+ "footwear-platforms": { label: "Plateformes", description: "Hautes semelles plateformes" },
249
+ "footwear-ankle-boots": { label: "Bottines", description: "Bottines ajustées" },
250
+ "footwear-knee-boots": { label: "Bottes hautes", description: "Bottes hautes" },
251
+ "footwear-thigh-high-boots": { label: "Cuissardes", description: "Cuissardes" },
252
+ "footwear-combat-boots": { label: "Rangers", description: "Rangers à lacets" },
253
+ "footwear-chelsea-boots": { label: "Chelsea boots", description: "Chelsea boots à enfiler" },
254
+ "footwear-cowboy-boots": { label: "Bottes de cowboy", description: "Bottes de cowboy à bout pointu" },
255
+ "footwear-loafers": { label: "Mocassins", description: "Mocassins penny polis" },
256
+ "footwear-oxfords": { label: "Oxfords", description: "Oxfords en cuir lacés" },
257
+ "footwear-sandals": { label: "Sandales", description: "Sandales plates à brides" },
258
+ "footwear-mules": { label: "Mules", description: "Mules à enfiler" },
259
+ "footwear-flip-flops": { label: "Tongs", description: "Tongs en caoutchouc décontractées" },
260
+ "footwear-ballet-flats": { label: "Ballerines", description: "Ballerines à enfiler" },
261
+ "footwear-barefoot": { label: "Pieds nus", description: "Pas de chaussures — pieds nus" },
262
+ "footwear-crocs": { label: "Crocs", description: "Sabots colorés en résine, décontractés" },
263
+ "footwear-birkenstocks": { label: "Birkenstocks", description: "Sandales à semelle en liège" },
264
+ "footwear-doc-martens": { label: "Doc Martens", description: "Bottes de combat massives en cuir" },
265
+ "footwear-converse": { label: "Converse", description: "Baskets montantes en toile, Chuck Taylor classiques" },
266
+ "footwear-vans": { label: "Vans", description: "Baskets de skate à enfiler ou basses" },
267
+ "footwear-espadrilles": { label: "Espadrilles", description: "Chaussures d'été en toile à semelle de jute tressée" },
268
+ // Wardrobe state
269
+ "state-oversized": { label: "Surdimensionné", description: "Coupe lâche, oversize" },
270
+ "state-fitted": { label: "Ajusté", description: "Silhouette ajustée près du corps" },
271
+ "state-cropped": { label: "Court", description: "Top coupé au-dessus du nombril" },
272
+ "state-sheer": { label: "Transparent", description: "Tissu translucide" },
273
+ "state-wet": { label: "Mouillé", description: "Trempé, collant à l'eau" },
274
+ "state-ripped": { label: "Déchiré", description: "Déchiré et effiloché" },
275
+ "state-distressed": { label: "Délavé", description: "Usé, fané, patiné" },
276
+ "state-vintage": { label: "Vintage", description: "Patiné, caractère rétro" },
277
+ "state-tucked-in": { label: "Rentré", description: "Top rentré dans le bas" },
278
+ "state-half-tucked": { label: "À demi rentré", description: "Devant rentré, derrière libre" },
279
+ "state-off-shoulder": { label: "Épaule dénudée", description: "Glissé sur une épaule" },
280
+ "state-unbuttoned": { label: "Déboutonné", description: "Ouvert / déboutonné" },
281
+ "state-rolled-sleeves": { label: "Manches retroussées", description: "Manches retroussées sur l'avant-bras" },
282
+ "state-layered": { label: "Superposé", description: "Plusieurs couches superposées" },
283
+ }
284
+
285
+ export default map