@aglyn/plugins-ai 1.0.0-beta.260 → 1.0.0-beta.262

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 (81) hide show
  1. package/package.json +17 -17
  2. package/src/lib/components/ai-brief-dialog.component.d.ts +21 -58
  3. package/src/lib/components/ai-brief-dialog.component.js +8 -132
  4. package/src/lib/components/ai-brief-dialog.component.js.map +1 -1
  5. package/src/lib/components/ai-job-follow.component.js +2 -35
  6. package/src/lib/components/ai-job-follow.component.js.map +1 -1
  7. package/src/lib/components/ai-job-plan.component.d.ts +2 -8
  8. package/src/lib/components/ai-job-plan.component.js +13 -74
  9. package/src/lib/components/ai-job-plan.component.js.map +1 -1
  10. package/src/lib/components/ai-site-start-card.component.js +43 -34
  11. package/src/lib/components/ai-site-start-card.component.js.map +1 -1
  12. package/src/lib/components/ai-template-collection-field.component.d.ts +2 -12
  13. package/src/lib/components/ai-template-collection-field.component.js +13 -10
  14. package/src/lib/components/ai-template-collection-field.component.js.map +1 -1
  15. package/src/lib/components/ai-upsell-dialog.component.d.ts +3 -25
  16. package/src/lib/components/ai-upsell-dialog.component.js +9 -66
  17. package/src/lib/components/ai-upsell-dialog.component.js.map +1 -1
  18. package/src/lib/components/use-ai-job-run.d.ts +3 -8
  19. package/src/lib/components/use-ai-job-run.js +4 -15
  20. package/src/lib/components/use-ai-job-run.js.map +1 -1
  21. package/src/lib/insights/ai-figure-readers.js +15 -5
  22. package/src/lib/insights/ai-figure-readers.js.map +1 -1
  23. package/src/lib/insights/ai-figure-summaries.d.ts +27 -0
  24. package/src/lib/insights/ai-figure-summaries.js +79 -0
  25. package/src/lib/insights/ai-figure-summaries.js.map +1 -0
  26. package/src/lib/insights/ai-insight-readers.d.ts +2 -1
  27. package/src/lib/insights/ai-insight-readers.js +11 -26
  28. package/src/lib/insights/ai-insight-readers.js.map +1 -1
  29. package/src/lib/jobs/ai-job-admission.d.ts +6 -0
  30. package/src/lib/jobs/ai-job-admission.js.map +1 -1
  31. package/src/lib/jobs/ai-job-site-step.js +10 -6
  32. package/src/lib/jobs/ai-job-site-step.js.map +1 -1
  33. package/src/lib/jobs/ai-layout-stock-photos.d.ts +43 -11
  34. package/src/lib/jobs/ai-layout-stock-photos.js +329 -32
  35. package/src/lib/jobs/ai-layout-stock-photos.js.map +1 -1
  36. package/src/lib/jobs/ai-stock-photo-picker.js +13 -7
  37. package/src/lib/jobs/ai-stock-photo-picker.js.map +1 -1
  38. package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-recordings.d.ts +35 -0
  39. package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-recordings.js +404 -0
  40. package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-recordings.js.map +1 -0
  41. package/src/lib/layout-language/ai-layout-motion.d.ts +9 -3
  42. package/src/lib/layout-language/ai-layout-motion.js +9 -3
  43. package/src/lib/layout-language/ai-layout-motion.js.map +1 -1
  44. package/src/lib/layout-language/ai-layout-pictures.d.ts +10 -1
  45. package/src/lib/layout-language/ai-layout-pictures.js +12 -6
  46. package/src/lib/layout-language/ai-layout-pictures.js.map +1 -1
  47. package/src/lib/model/ai-brief-copy.d.ts +85 -0
  48. package/src/lib/model/ai-brief-copy.js +152 -0
  49. package/src/lib/model/ai-brief-copy.js.map +1 -0
  50. package/src/lib/model/ai-create-view.d.ts +200 -0
  51. package/src/lib/model/ai-create-view.js +263 -0
  52. package/src/lib/model/ai-create-view.js.map +1 -0
  53. package/src/lib/model/ai-insight.d.ts +1 -1
  54. package/src/lib/model/ai-insight.js +4 -39
  55. package/src/lib/model/ai-insight.js.map +1 -1
  56. package/src/lib/model/ai-job-activity.d.ts +24 -0
  57. package/src/lib/model/ai-job-activity.js +52 -1
  58. package/src/lib/model/ai-job-activity.js.map +1 -1
  59. package/src/lib/model/ai-job-plan-lines.d.ts +46 -0
  60. package/src/lib/model/ai-job-plan-lines.js +70 -0
  61. package/src/lib/model/ai-job-plan-lines.js.map +1 -0
  62. package/src/lib/model/ai-template-collections.d.ts +28 -0
  63. package/src/lib/model/ai-template-collections.js +28 -0
  64. package/src/lib/model/ai-template-collections.js.map +1 -0
  65. package/src/lib/model/ai-upsell-copy.d.ts +41 -0
  66. package/src/lib/model/ai-upsell-copy.js +85 -0
  67. package/src/lib/model/ai-upsell-copy.js.map +1 -0
  68. package/src/lib/runtime/ai-doctrine-validators.d.ts +40 -0
  69. package/src/lib/runtime/ai-doctrine-validators.js +148 -3
  70. package/src/lib/runtime/ai-doctrine-validators.js.map +1 -1
  71. package/src/lib/runtime/ai-doctrine.js +6 -2
  72. package/src/lib/runtime/ai-doctrine.js.map +1 -1
  73. package/src/lib/runtime/ai-eval-memory-firestore.js +2 -0
  74. package/src/lib/runtime/ai-eval-memory-firestore.js.map +1 -1
  75. package/src/lib/server/ai-create-route.d.ts +32 -0
  76. package/src/lib/server/ai-create-route.js +295 -0
  77. package/src/lib/server/ai-create-route.js.map +1 -0
  78. package/src/lib/server/ai-jobs-route.js +19 -0
  79. package/src/lib/server/ai-jobs-route.js.map +1 -1
  80. package/src/lib/server.js +14 -0
  81. package/src/lib/server.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/plugins/ai/src/lib/jobs/fixtures/ai-stock-photo-agl3856-recordings.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { StockPhoto } from '@aglyn/aglyn/plugin-manager/stock-photo-provider'\n\n/**\n * PIXABAY'S RECORDED ANSWERS FOR THREE BETA.259 GUIDED STARTS (AGL-3856):\n * what production's `stockPhotoSearches` cache held on 2026-10-16 for the\n * searches the sites \"Hartwell Reyes Family Law\" (job E4PIY8RJS5), \"Ironline\n * Strength Studio\" (job rglwQoGmLQ) and \"Juniper and Rye Photography\" (job\n * FrKrUct5mk) sent, read back from the cache by each search's key, never\n * searched again. Ids, sizes, page slugs and tags are Pixabay's own, in its\n * order; the contributor is left out.\n */\n\nconst hit = (\n id: number,\n width: number,\n height: number,\n slug: string,\n tags: string,\n): StockPhoto =>\n ({\n provider: 'pixabay',\n id: String(id),\n width,\n height,\n pageUrl: `https://pixabay.com/photos/${slug}/`,\n photographer: 'A Pixabay contributor',\n tags: tags.split(', '),\n downloadUrl: `https://pixabay.com/get/g${id}_1280.jpg`,\n }) as StockPhoto\n\n/** `two-attorney law firm` (vertical, min_width 1600), for the Hartwell Reyes home hero (a 4 / 5 frame); answered 2026-10-16T06:25:29.795Z. */\nexport const TWO_ATTORNEY_LAW_FIRM_TALL: StockPhoto[] = [\n hit(\n 4944558,\n 853,\n 1280,\n 'right-advocacy-lex-attorney-jura-4944558',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 2722004,\n 853,\n 1280,\n 'justice-justitia-2722004',\n 'justice, justitia, justitia the goddess of, justitia statue, goddess, statue, pan, blind, symbol, just, libra, law, jurisdiction, female, bronze, bronze statue, woman, woman statue, gracefulness, lawyer',\n ),\n hit(\n 7278059,\n 853,\n 1280,\n 'horse-leg-hoof-her-mammal-7278059',\n 'horse, leg, hoof, her, mammal, nature, farm animal, fauna, firm',\n ),\n hit(\n 5211993,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5211993',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, bronze, attorney, balance, woman, legal, legal, justice, justice, justice, justice, justice',\n ),\n hit(\n 5293007,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5293007',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, attorney, balance, woman, legal, legal, legal, legal, legal, justice, themis, themis',\n ),\n hit(\n 10430557,\n 853,\n 1280,\n 'cheese-shelves-cheese-storage-10430557',\n 'cheese, shelves, cheese storage, round shape, aged cheese, light and shadow, workshop, dairy production, artisanal cheese, cheese factory, textural form, indoor lighting, exposure, industry, food industry, cheese care, processing, product, milk, indoor',\n ),\n hit(\n 6778953,\n 854,\n 1280,\n 'justice-law-judgment-trial-libra-6778953',\n 'justice, law, judgment, trial, libra, snake, judge, lawyer, legal, justice, justice, justice, justice, justice, law, law, trial, judge, lawyer, lawyer',\n ),\n hit(\n 4944547,\n 853,\n 1280,\n 'right-advocacy-lex-attorney-jura-4944547',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 4100373,\n 990,\n 1280,\n 'justice-libra-human-happy-unhappy-4100373',\n 'justice, libra, human, happy, unhappy, right, law, lawyer, equality, crime, judge, seal, symbol, silhouette, libra, lawyer, lawyer, lawyer, lawyer, lawyer',\n ),\n hit(\n 5211992,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5211992',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, bronze, attorney, balance, woman, legal, legal, legal, legal, justice, justice, justice',\n ),\n hit(\n 5211994,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5211994',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, bronze, attorney, balance, woman, legal, legal, justice, justice, justice, justice, justice',\n ),\n hit(\n 5293008,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5293008',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, silver, attorney, balance, woman, legal, legal, legal, justice, justice, justice, justice',\n ),\n hit(\n 3528885,\n 853,\n 1280,\n 'architecture-michigan-university-3528885',\n 'architecture, michigan, university, interior, old, buildings, building, law, law quad, university of michigan, library, chandelier, cook william, research library, cook william legal research library, brown library, brown cooking, brown research, brown law, michigan',\n ),\n hit(\n 5091383,\n 853,\n 1280,\n 'taiwan-taipei-city-law-bucket-dog-5091383',\n 'taiwan, taipei city, law bucket, animal, dog, grassland, pet',\n ),\n hit(\n 5222561,\n 853,\n 1280,\n 'stained-glass-window-church-jesus-5222561',\n 'stained glass, window, church, jesus, teenager, doctors, law, to teach, parents, worried, temple, jerusalem, married, joseph, recovery, faith, jesus, jesus, jerusalem, jerusalem',\n ),\n hit(\n 6795457,\n 1180,\n 1280,\n 'computer-desk-desktop-contemporary-6795457',\n 'computer, desk, desktop, contemporary, occupation, working, architecture, armchair, boardroom, business, chair, coffee, company, conference, corporate, data, education, empty, firm, furniture',\n ),\n hit(\n 4985304,\n 853,\n 1280,\n 'snake-plant-houseplant-4985304',\n \"snake plant, houseplant, mother in law's tongue, growing, nature, spring, green, garden, greenhouse, leaf, gardening\",\n ),\n hit(\n 1161140,\n 852,\n 1280,\n 'paragraph-attorney-judge-process-1161140',\n 'paragraph, attorney, judge, process, justitiia, justice, law, dish, libra, code, isolated, decision, sword, bosom, verdict, judge, justice, justice, law, law',\n ),\n hit(\n 7744375,\n 853,\n 1280,\n 'white-spider-tomisus-onustus-insect-7744375',\n 'white spider, tomisus onustus, insect, bee, macro, animal, close, predator, hunting, prey, nature, aggression, food, to eat, law of nature',\n ),\n hit(\n 3803190,\n 890,\n 1280,\n 'district-court-erfurt-dish-building-3803190',\n 'district court, erfurt, dish, building, architecture, justice, law, facade, thuringia, germany',\n ),\n hit(\n 4446799,\n 853,\n 1280,\n 'police-security-fast-machine-4446799',\n 'police, security, fast, machine, police car, weapons, partners, fantastic, patrol, protection, policeman, crime, stop, law, post-apocalypse, postapocalyptic, transport, police, police, police',\n ),\n hit(\n 1161139,\n 852,\n 1280,\n 'paragraph-attorney-judge-process-1161139',\n 'paragraph, attorney, judge, process, justitiia, justice, law, dish, libra, code, decision, verdict, sword, bosom, attorney, judge, judge, judge, judge, justice',\n ),\n hit(\n 7499921,\n 853,\n 1280,\n 'gavel-justice-judge-courtroom-7499921',\n 'gavel, justice, judge, courtroom, lawsuit, law, lawyer, regulation, statute, themis, gavel, gavel, gavel, justice, justice, judge, courtroom, courtroom, lawsuit, lawsuit',\n ),\n hit(\n 7714319,\n 855,\n 1280,\n 'sansevieria-aesthetic-7714319',\n \"sansevieria, aesthetic, decorative plants, flora, mother-in-law's tongue, upright, snake plants, sansevieria trifasciata, sansevieria, sansevieria, sansevieria, sansevieria, sansevieria, aesthetic\",\n ),\n hit(\n 4299303,\n 853,\n 1280,\n 'justitia-dish-blind-gull-statue-4299303',\n 'justitia, dish, blind, gull, statue, goddess, justice, jurisdiction, legal studies, law, legal theory, jurisprudence, court of justice',\n ),\n hit(\n 9826062,\n 853,\n 1280,\n 'divorce-separation-breakup-9826062',\n 'divorce, separation, breakup, relationship',\n ),\n hit(\n 4857794,\n 961,\n 1280,\n 'leaf-rain-law-drips-nature-ferns-4857794',\n 'leaf, rain, law, drips, nature, ferns, plants, moody, macro, sheet, wet, drops',\n ),\n hit(\n 3785581,\n 840,\n 1280,\n 'justitia-justice-jurisdiction-3785581',\n 'justitia, justice, jurisdiction, symbol, woman, law, libra, sword, laws, legal theory, justitia, justice, justice, justice, law, law, law, law, law',\n ),\n hit(\n 2527300,\n 1004,\n 1280,\n 'figure-police-fun-funny-uniform-2527300',\n 'figure, police, fun, funny, uniform, cop, law enforcement officers, handcuffs, cap, control, deco, decoration, isolated, cropping, exemption, cutting out, cut out, police, police, police',\n ),\n hit(\n 62943,\n 1057,\n 1280,\n 'constitution-united-states-usa-62943',\n 'constitution, united states, usa, america, september 17, 1787, federal republic, order, separation of powers, politics, contract, certificate, document, constitution, constitution, constitution, constitution, constitution, contract, contract',\n ),\n hit(\n 620009,\n 960,\n 1280,\n 'hammer-books-law-dish-lawyer-620009',\n 'hammer, books, law, dish, lawyer, paragraphs, regulation, court of justice, a book, §, code, law books, judge, order, paragraph, rule, disposal, auction, law, law',\n ),\n hit(\n 237109,\n 924,\n 1280,\n 'figure-of-justice-new-york-city-237109',\n 'figure of justice, new york city, courthouse, justice, sculpture, art, artistic, blind justice, brown news, brown new, courthouse, courthouse, courthouse, justice, justice, justice, justice, justice, blind justice',\n ),\n hit(\n 5341989,\n 1024,\n 1280,\n 'justitia-justice-libra-law-lawyer-5341989',\n 'justitia, justice, libra, law, lawyer, woman, symbol, jurisdiction, statue, dish, legal theory, court of justice, attorney, the right care, goddess, mythology, libra, law, lawyer, lawyer',\n ),\n hit(\n 67715,\n 1024,\n 1280,\n 'judge-dish-justice-law-67715',\n 'judge, dish, justice, law, us supreme court, sonia sotomayor, judge robe, robe, garment, woman, smile, laugh, judge, judge, judge, judge, judge',\n ),\n hit(\n 3917412,\n 853,\n 1280,\n 'security-policeman-weapon-federal-3917412',\n 'security, policeman, weapon, federal, gun, military, soldier, shoot, war, armed, army, protection, men, defense, police, force, combat, agent, mexico',\n ),\n hit(\n 2585928,\n 853,\n 1280,\n 'policeman-officer-police-law-2585928',\n 'policeman, officer, police, law, uniform, cop, man, security, safety, crime, guard, patrol, protection, professional, badge, enforcement, service, occupation, authority, equipment',\n ),\n hit(\n 4339703,\n 851,\n 1280,\n 'stained-glass-colorful-church-holy-4339703',\n 'stained glass, nature, colorful, church, holy, evangelist, marc, halo, law, scriptures, lion, gospel',\n ),\n hit(\n 5243222,\n 853,\n 1280,\n 'law-general-terms-and-conditions-5243222',\n 'law, general terms and conditions, attorney, company, codex, regulation, paragraph, lawyer, paragraphs, regulations, guideline, justice, rule, international, verdict, law, law, attorney, lawyer, lawyer',\n ),\n hit(\n 181739,\n 853,\n 1280,\n 'deployment-practice-action-police-181739',\n 'deployment, practice, action, police, in an emergency, team, armed, rab, prisoner, police officer',\n ),\n hit(\n 2420811,\n 720,\n 1280,\n 'justice-statue-woman-politics-2420811',\n 'justice, statue, woman, politics, symbol, law, lady, legal, sculpture, goddess, sword, greek, indianapolis, female, equality, order, gray law, gray lady, law, indianapolis',\n ),\n]\n\n/** `two-attorney law firm` (any, min_width 1600), for a square Hartwell Reyes hero on another page; answered 2026-10-16T06:29:20.290Z. */\nexport const TWO_ATTORNEY_LAW_FIRM_SQUARE: StockPhoto[] = [\n hit(\n 4944558,\n 853,\n 1280,\n 'right-advocacy-lex-attorney-jura-4944558',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 469588,\n 1280,\n 960,\n 'door-sign-name-tag-attorney-lawyer-469588',\n 'door sign, name tag, attorney, lawyer, law, paragraph, to study, §, information sign, attorney, attorney, lawyer, lawyer, lawyer, lawyer, lawyer',\n ),\n hit(\n 4703925,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4703925',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 2722004,\n 853,\n 1280,\n 'justice-justitia-2722004',\n 'justice, justitia, justitia the goddess of, justitia statue, goddess, statue, pan, blind, symbol, just, libra, law, jurisdiction, female, bronze, bronze statue, woman, woman statue, gracefulness, lawyer',\n ),\n hit(\n 3792958,\n 1280,\n 853,\n 'law-office-lawyer-attorney-office-3792958',\n 'law office, lawyer, attorney, office, law, legal, computer, business, type writer, technology, work, writing, company, gray computer, gray office, gray work, gray writing, gray law',\n ),\n hit(\n 1000803,\n 1280,\n 853,\n 'lawyers-personal-injury-accident-1000803',\n 'lawyers, personal injury, accident, claim, personal injury, personal injury, personal injury, personal injury, personal injury',\n ),\n hit(\n 4924547,\n 1280,\n 857,\n 'chancellery-office-table-work-4924547',\n 'chancellery, office, table, work, law firm, workplace, laptop, desk, computer, a book, law firm, law firm, law firm, law firm, law firm',\n ),\n hit(\n 2388500,\n 1280,\n 960,\n 'lady-justice-legal-law-justice-2388500',\n 'lady justice, legal, law, justice, symbol, lawyer, balance, scale, attorney, law office, scales of justice lady, legal, legal, law, law, law, law, law, justice, lawyer',\n ),\n hit(\n 4703944,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4703944',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 4926156,\n 1280,\n 853,\n 'right-law-attorney-justice-4926156',\n 'right, law, attorney, justice, the court, the regulation, law, law, law, law, law, justice',\n ),\n hit(\n 4926021,\n 1280,\n 853,\n 'the-legal-justice-law-right-4926021',\n 'the legal, justice, law, right, justice, justice, justice, law, law, law, law, law',\n ),\n hit(\n 335849,\n 1280,\n 850,\n 'bookcase-chancellery-attorney-335849',\n 'bookcase, chancellery, attorney, law books, order, paragraphs, law, paragraph forest, law, law, law, law, law',\n ),\n hit(\n 2492011,\n 1280,\n 711,\n 'gavel-auction-law-hammer-symbol-2492011',\n 'gavel, auction, law, hammer, symbol, judge, legal, justice, crime, criminal, wooden, 3d, wood, judgment, trial, verdict, punishment, rights, authority, court',\n ),\n hit(\n 4703926,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4703926',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 4777073,\n 1280,\n 853,\n 'justitia-online-shopping-dish-4777073',\n 'justitia, online shopping, dish, verdict, judge, law, penalty, justice, hammer, lawyer, attorney, legal basis, libra, authority, paragraph, symbol, dsgvo, the courtroom, system, judge',\n ),\n hit(\n 4944546,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4944546',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 948442,\n 1280,\n 853,\n 'binding-contract-contract-secure-948442',\n 'binding contract, contract, secure, agreement, binding, legal, document, contractual, law, business, deal, sign, pen, signature, lawyer, paperwork, obligation, negotiation, finance, commitment',\n ),\n hit(\n 802301,\n 1280,\n 960,\n 'hammer-libra-dish-justice-law-802301',\n 'hammer, libra, dish, justice, law, jurisdiction, paragraph, order, regulation, judge, justice, law, law, law, law, law, judge',\n ),\n hit(\n 7278059,\n 853,\n 1280,\n 'horse-leg-hoof-her-mammal-7278059',\n 'horse, leg, hoof, her, mammal, nature, farm animal, fauna, firm',\n ),\n hit(\n 5806011,\n 1280,\n 853,\n 'man-lawyer-office-desk-computer-5806011',\n 'man, lawyer, office, desk, computer, advocacy, civil right, work, business, paperwork, profession, professional, lawyer, lawyer, lawyer, lawyer, lawyer',\n ),\n hit(\n 423446,\n 1280,\n 853,\n 'justice-scales-balance-lawyer-423446',\n \"justice, scales, balance, lawyer, lower's fee, money, time, expensive, golden, justice, scales, balance, balance, balance, balance, balance, lawyer, lawyer, lawyer, money\",\n ),\n hit(\n 3101151,\n 1280,\n 853,\n 'a-book-paper-document-poetry-side-3101151',\n 'a book, paper, document, poetry, side, literature, writing, reading glasses, glasses, low vision, read, text, book pages, to learn, pitched, library, intellectually, bookworm, books, eyeglass lenses',\n ),\n hit(\n 4703943,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4703943',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 3665164,\n 1280,\n 684,\n 'judge-hammer-auction-hammer-auction-3665164',\n 'judge, hammer, auction hammer, auction, verdict, law, dish, criminal law, justice, lawyer, regulation, paragraph, courthouse, auctioneer, jurisdiction, youth court, dsgvo, attorney, privacy policy, notary',\n ),\n hit(\n 9637622,\n 1280,\n 853,\n 'bull-white-muscular-muscles-firm-9637622',\n 'bull, white, muscular, muscles, firm, to urinate, meadow, nature, grass',\n ),\n hit(\n 2060093,\n 1280,\n 853,\n 'justice-statue-lady-justice-2060093',\n 'justice, statue, lady justice, greek mythology, themis, law, court, justice, justice, justice, law, law, law, law, law, court, court, busan, south korea',\n ),\n hit(\n 5211993,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5211993',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, bronze, attorney, balance, woman, legal, legal, justice, justice, justice, justice, justice',\n ),\n hit(\n 802300,\n 1280,\n 960,\n 'hammer-libra-dish-justice-law-802300',\n 'hammer, libra, dish, justice, law, jurisdiction, paragraph, order, regulation, judge, justice, justice, justice, justice, law, law, judge, judge, judge, judge',\n ),\n hit(\n 4944550,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4944550',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n hit(\n 7123797,\n 1280,\n 853,\n 'lawyer-law-confident-court-7123797',\n 'lawyer, law, confident, court, lawyer, lawyer, lawyer, lawyer, lawyer',\n ),\n hit(\n 5293009,\n 1280,\n 853,\n 'legal-right-justice-law-of-nature-5293009',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, silver, attorney, balance, woman, legal, legal, legal, legal, legal, justice, justice',\n ),\n hit(\n 335850,\n 1280,\n 850,\n 'bookcase-chancellery-attorney-335850',\n 'bookcase, chancellery, attorney, law books, order, paragraphs, law, paragraph forest, bookcase, bookcase, bookcase, bookcase, law books, law books, law books, law books, law books, order, law, law',\n ),\n hit(\n 802298,\n 1280,\n 960,\n 'hammer-libra-dish-justice-law-802298',\n 'hammer, libra, dish, justice, law, jurisdiction, paragraph, order, regulation, judge, justice, law, law, law, law, law, judge',\n ),\n hit(\n 1027103,\n 1280,\n 851,\n 'taxes-tax-evasion-police-handcuffs-1027103',\n 'taxes, tax evasion, police, handcuffs, fraud, tax consultant, finance, money, tax return, invoice, income tax, wealth, income tax return, form, files, bureaucracy, tax office, criminal, country, theft',\n ),\n hit(\n 8023696,\n 1280,\n 853,\n 'helicopter-flying-sky-aviation-8023696',\n 'helicopter, flying, sky, aviation, flight, nature, police, operation, blue sky',\n ),\n hit(\n 7538565,\n 1280,\n 803,\n 'gavel-justice-judge-courtroom-7538565',\n 'gavel, justice, judge, courtroom, lawsuit, law, regulation, symbol, america, lawyer, libra, liberty, scales, themis, civil, sheriff, legal, contract, merger, corporation',\n ),\n hit(\n 5293007,\n 853,\n 1280,\n 'legal-right-justice-law-of-nature-5293007',\n 'legal, right, justice, law of nature, themis, goddess, laws, just, symbol, attorney, balance, woman, legal, legal, legal, legal, legal, justice, themis, themis',\n ),\n hit(\n 6778953,\n 854,\n 1280,\n 'justice-law-judgment-trial-libra-6778953',\n 'justice, law, judgment, trial, libra, snake, judge, lawyer, legal, justice, justice, justice, justice, justice, law, law, trial, judge, lawyer, lawyer',\n ),\n hit(\n 335848,\n 1280,\n 850,\n 'bookcase-chancellery-attorney-335848',\n 'bookcase, chancellery, attorney, law books, order, paragraphs, law, paragraph forest, bookcase, law books, law books, law books, law books, law books, law, law, law, law',\n ),\n hit(\n 4703938,\n 1280,\n 853,\n 'right-advocacy-lex-attorney-jura-4703938',\n 'right, advocacy, lex, attorney, jura, justice, the regulation, bookshelf, paragraph, cool, law, symbol, goddess, justitia, the court, the case-law, woman, europe, bronze, the fair',\n ),\n]\n\n/** `gym strength session` (horizontal, min_width 900), for the Ironline event \"Open gym strength session\"; answered 2026-10-16T06:28:22.096Z. */\nexport const GYM_STRENGTH_SESSION: StockPhoto[] = [\n hit(\n 828726,\n 1280,\n 850,\n 'training-muscles-arms-blonde-828726',\n 'training, muscles, arms, blonde, bar bells, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio',\n ),\n hit(\n 828741,\n 1280,\n 850,\n 'training-rmuscles-back-shoulders-828741',\n 'training, rmuscles, back, shoulders, blonde, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio',\n ),\n hit(\n 2264825,\n 1280,\n 853,\n 'man-woman-push-ups-wellness-2264825',\n 'man, woman, push-ups, wellness, exercise, pair, couple, fit, fitness, sport, strength training, one arm, sporty, movement, muscles, muscle training, training, exercise, exercise, fitness',\n ),\n hit(\n 534615,\n 1280,\n 853,\n 'crossfit-sports-fitness-training-534615',\n 'crossfit, sports, fitness, training, exercise, athlete, young, healthy, workout, fit, muscular, body, people, strength, power, strong, female, sport, woman, athletic',\n ),\n hit(\n 1282232,\n 1280,\n 853,\n 'man-person-power-strength-strong-1282232',\n 'man, person, power, strength, strong, fitness, body, muscles, weights, exhausted, heavy, weightlifting, effort, exhausting, bodybuilding, powerful, black fitness, black workout, black body, black power',\n ),\n hit(\n 2465478,\n 1280,\n 853,\n 'dumbbells-shoes-sneakers-2465478',\n 'dumbbells, shoes, sneakers, rubber shoes, fitness, gym, training, workout, exercise, health, fit, strength, bodybuilding, pilates, trainer, running shoes, cardio vascular, physio therapy, wellness, shoes',\n ),\n hit(\n 2604149,\n 1280,\n 720,\n 'man-exercise-fitness-gym-dumbbells-2604149',\n 'man, exercise, fitness, gym, dumbbells, workout, weightlifting, exercise, fitness, gym, gym, gym, gym, gym, workout',\n ),\n hit(\n 8246973,\n 1280,\n 960,\n 'weight-dumbbell-strength-arm-force-8246973',\n 'weight, dumbbell, strength, arm, force, male, exercise, sport, fitness, wrist, hand, muscle, youth, body, adult, health, exercise, exercise, exercise, exercise',\n ),\n hit(\n 2250970,\n 1280,\n 853,\n 'woman-crunches-sport-training-2250970',\n 'woman, crunches, sport, training, exercise, fit, fitness, wellness, body, abdominals, movement, sporty, active, condition, shoes, sneakers, health, healthy, sport, sport',\n ),\n hit(\n 594143,\n 1280,\n 853,\n 'fitness-dumbbells-training-gym-594143',\n 'fitness, dumbbells, training, gym, weights, weightlifting, weight training, gym equipment, fitness studio, studio, weight, exercise, many, train, fit, fitness, gym, gym, gym, gym',\n ),\n hit(\n 2245029,\n 1280,\n 853,\n 'sports-fitness-fit-training-2245029',\n 'sports, fitness, fit, training, abdominal muscles, six pack, athletic, move, gymnastics, power, weight training, human, elegant, female, elegance, abdominal trainer, woman, bodybuilding, femininity, abdominal exercise',\n ),\n hit(\n 1984344,\n 1280,\n 783,\n 'boxer-woman-sport-fighter-fitness-1984344',\n 'boxer, woman, sport, fighter, fitness, training, athlete, dark, fitness, fitness, fitness, fitness, fitness',\n ),\n hit(\n 8563109,\n 1280,\n 914,\n 'ai-generated-woman-fitness-training-8563109',\n 'ai generated, woman, fitness, training, gym, adventure, sport, portrait, pose, stretch, exercise',\n ),\n hit(\n 8246972,\n 1280,\n 960,\n 'weights-dumbbells-strength-force-8246972',\n 'weights, dumbbells, strength, force, exercise, sport, fitness, wrist, hand, muscle, body, health',\n ),\n hit(\n 1850925,\n 1280,\n 850,\n 'adult-gym-athlete-dark-energy-1850925',\n 'adult, gym, athlete, dark, energy, exercise, exercise equipment, female, fit, fitness, girl, healthy, legs, muscles, plates, strength, strong, sweat, training, woman',\n ),\n hit(\n 1850926,\n 1280,\n 850,\n 'abs-athlete-biceps-blonde-body-1850926',\n 'abs, athlete, biceps, blonde, body, fit, fitness, gym, healthy, muscles, person, strength, strong, trainer, training, woman, workout, workout gear',\n ),\n hit(\n 2260736,\n 1280,\n 853,\n 'woman-personal-trainer-fitness-2260736',\n 'woman, personal trainer, fitness, exercise, workout, strength training, coach, dumbbells, weight bench, weight training, healthy, caucasian, personal trainer, personal trainer, personal trainer, personal trainer, fitness, fitness, fitness, fitness',\n ),\n hit(\n 595529,\n 1280,\n 853,\n 'physiotherapy-weight-training-595529',\n 'physiotherapy, weight training, dumbbells, exercise balls, weight loss, workout, health, gym, therapist, physiotherapist, healthcare, fitness, wellness, rehabilitation, healing, therapeutic, weight loss, weight loss, workout, health',\n ),\n hit(\n 1284616,\n 1280,\n 853,\n 'weight-lifting-fitness-gym-1284616',\n 'weight lifting, fitness, gym, perspective, bodybuilding, dumbells, weights, health, sport, training, exercise, workout, fitness, gym, gym, gym, gym, gym',\n ),\n hit(\n 6888634,\n 1280,\n 930,\n 'woman-training-health-gym-strong-6888634',\n 'woman, training, health, gym, strong, wellness, strength, fit, gym, gym, gym, gym, gym',\n ),\n hit(\n 1966702,\n 1280,\n 853,\n 'dumbbell-sports-weights-1966702',\n 'dumbbell, sports, weights, weight training, weight lifting, muscles, muscle training, work out, weight plates, training, fitness, dark, dumbbell, dumbbell, dumbbell, dumbbell, dumbbell, weights, weights, weights',\n ),\n hit(\n 4938219,\n 1280,\n 853,\n 'fitness-weights-gym-exercise-4938219',\n 'fitness, weights, gym, exercise, weight, strength, gray fitness, gray gym, gray exercise, gray workout, gym, gym, gym, gym, gym',\n ),\n hit(\n 1452965,\n 1280,\n 853,\n 'sports-fitness-body-building-iron-1452965',\n 'sports, fitness, body-building, iron, metal, muscle, sports equipment, workout, weightlifting, barbell, disks, healthy, strong, heavy, equipment, black, health, leisure, vacation, gym',\n ),\n hit(\n 1235019,\n 1280,\n 853,\n 'sport-exercises-fitness-center-1235019',\n 'sport, exercises, fitness center, muscles, iron, metal, bitumen, rubber, health, strength, practice, diet, bodybuilding, dumbbells, barbells, slimming, fitness center, strength, strength, strength',\n ),\n hit(\n 1847866,\n 1280,\n 853,\n 'fitness-upper-body-fit-lifestyle-1847866',\n 'fitness, upper body, fit, lifestyle, athlete, person, man, model, health, muscle, muscular, six-pack abs, strong, guy, young, chest, developed, shoulder, body-building, athletic',\n ),\n hit(\n 1045067,\n 1280,\n 848,\n 'kettlebell-training-fitness-center-1045067',\n 'kettlebell, training, fitness center, kettlebell, kettlebell, kettlebell, kettlebell, fitness center, fitness center, fitness center, fitness center, fitness center',\n ),\n hit(\n 3399107,\n 1280,\n 853,\n 'dumbbells-weight-training-training-3399107',\n 'dumbbells, weight training, training, sports, gym, weights, power, weight lifting, muscle training, to lift, weight room, muscles, athletic, fit, gym, gym, gym, gym, gym, weights',\n ),\n hit(\n 5013990,\n 1280,\n 853,\n 'weights-fitness-strength-muscles-5013990',\n 'weights, fitness, strength, muscles, gym, bodybuilding, weights, gym, gym, gym, gym, gym, bodybuilding',\n ),\n hit(\n 2266395,\n 1280,\n 853,\n 'sports-fitness-training-athletic-2266395',\n 'sports, fitness, training, athletic, move, gymnastics, fit, graceful, weight training, dumbbell, weight lifting, muscles, weights, weight plates, work out, muscle training, sports equipment, fitness, gymnastics, weight training',\n ),\n hit(\n 3293475,\n 1280,\n 852,\n 'kettlebell-fitness-crossfit-fit-3293475',\n 'kettlebell, fitness, crossfit, fit, exercise, training, gym, workout, fitness classes, move, bodybuilding, remove, athletic, sports, fitness outdoors, woman exercising, people, power, work out, active',\n ),\n hit(\n 1882721,\n 1280,\n 853,\n 'fitness-weight-dumbbell-gym-1882721',\n 'fitness, weight, dumbbell, gym, fitness center, weight lifting, weight training, fit, gym, gym, gym, gym, gym',\n ),\n hit(\n 1333600,\n 1280,\n 853,\n 'young-woman-boxer-ring-boxing-pear-1333600',\n 'young woman, boxer, ring, boxing pear, beautiful girl, gloves, sports, hairstyle, body, young woman, young woman, boxer, boxer, boxer, boxer, boxer, sports, sports, sports, sports',\n ),\n hit(\n 2310291,\n 1280,\n 816,\n 'gym-dumbbell-weights-sports-2310291',\n 'gym, dumbbell, weights, sports, bodybuilding, weight lifting, fit, weight training, work out, athletic, weight plates, muscle training, health, fitness device, whole body, isolated, model, power, leisure time, remove',\n ),\n hit(\n 2054729,\n 1280,\n 853,\n 'plank-exercise-female-fitness-fit-2054729',\n 'plank, exercise, female, fitness, fit, training, workout, body, healthy, planking, gym, core, woman, gray fitness, gray gym, gray exercise, gray training, gray healthy, gray workout, gray body',\n ),\n hit(\n 4879191,\n 1280,\n 853,\n 'fitness-work-out-gym-body-strength-4879191',\n 'fitness, work out, gym, body, strength, education, movement, healthy, lifestyle, athlete, muscular, active, health, gym, gym, gym, gym, gym',\n ),\n hit(\n 828764,\n 1280,\n 854,\n 'training-ropes-workout-fitness-828764',\n 'training, ropes, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio, athlete, equipment, strength',\n ),\n hit(\n 5434989,\n 1280,\n 855,\n 'kettle-bell-cross-fit-training-5434989',\n 'kettle bell, cross fit, training, exercise, sport, body building, gym, fitness, dumbbell, barbells, kettle bell, kettle bell, kettle bell, cross fit, cross fit, body building, gym, gym, gym, gym',\n ),\n hit(\n 4724741,\n 1280,\n 853,\n 'dumbbell-weight-fitness-4724741',\n 'dumbbell, weight, fitness, weight training, muscles, gym, dumbbell, dumbbell, dumbbell, dumbbell, weight training, weight training, gym, gym, gym, gym, gym',\n ),\n hit(\n 1677212,\n 1280,\n 853,\n 'fitness-fitness-center-kettlebells-1677212',\n 'fitness, fitness center, kettlebells, weights, exercises, sports shoes, fitness, fitness, fitness, fitness, fitness, weights, weights',\n ),\n hit(\n 299537,\n 1280,\n 960,\n 'weight-plates-fitness-power-299537',\n 'weight plates, fitness, power, weight training, training, weight lifting, sports, gym, weight plates, weight lifting, weight lifting, gym, gym, gym, gym, gym',\n ),\n]\n\n/** `strength` (horizontal, min_width 900), for the Ironline site's broad search; answered 2026-10-16T06:27:31.966Z. */\nexport const STRENGTH: StockPhoto[] = [\n hit(\n 3134828,\n 1280,\n 853,\n 'ease-balance-easy-power-positive-3134828',\n 'ease, balance, easy, power, positive, dance, yoga, nature, meditation, woman, fitness, health, waterdrop, splash, water, drops, reflection, crown, expression, move',\n ),\n hit(\n 2037255,\n 1280,\n 811,\n 'man-board-drawing-muscles-strong-2037255',\n 'man, board, drawing, muscles, strong, weak, chalk, disappointment, biceps, hood, disappointed, fitness, muscle, training, hope, pose, power, bodybuilding, poor, hardness',\n ),\n hit(\n 2904536,\n 1280,\n 960,\n 'horses-pair-wild-horses-animals-2904536',\n 'horses, pair, nature, wild horses, animals, wild, stallion, equestrian, horse mane, equines, mammals, animal world, digital painting, digital artwork',\n ),\n hit(\n 2888519,\n 1280,\n 953,\n 'african-lion-wild-cat-feline-mane-2888519',\n 'african lion, wild cat, feline, mane, closeup, wildlife, wild, nature, portrait, face, king, lion, animal, animal world, wildlife photography',\n ),\n hit(\n 3186483,\n 1280,\n 724,\n 'fantasy-surreal-god-foot-power-3186483',\n 'fantasy, surreal, god, foot, power, strength, superiority, deity, big, gigantic, mystical, force of nature, fairytale, composing, eve, nature, photomontage, sunset',\n ),\n hit(\n 828741,\n 1280,\n 850,\n 'training-rmuscles-back-shoulders-828741',\n 'training, rmuscles, back, shoulders, blonde, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio',\n ),\n hit(\n 828726,\n 1280,\n 850,\n 'training-muscles-arms-blonde-828726',\n 'training, muscles, arms, blonde, bar bells, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio',\n ),\n hit(\n 1850711,\n 1280,\n 1097,\n 'agility-ballet-dancing-athlete-1850711',\n 'agility, ballet, dancing, athlete, ballerina, balance, ballet dancer, dancer, exercise, flexibility, motion, performance, position, skill, strength, stretching, elegance, elegant, coordination, choreography',\n ),\n hit(\n 534615,\n 1280,\n 853,\n 'crossfit-sports-fitness-training-534615',\n 'crossfit, sports, fitness, training, exercise, athlete, young, healthy, workout, fit, muscular, body, people, strength, power, strong, female, sport, woman, athletic',\n ),\n hit(\n 2264825,\n 1280,\n 853,\n 'man-woman-push-ups-wellness-2264825',\n 'man, woman, push-ups, wellness, exercise, pair, couple, fit, fitness, sport, strength training, one arm, sporty, movement, muscles, muscle training, training, exercise, exercise, fitness',\n ),\n hit(\n 2587066,\n 1280,\n 800,\n 'yoga-strength-woman-balance-2587066',\n 'yoga, strength, woman, balance, balancing, fit, fitness, nature, young woman, fit woman, wellness, pose, yoga pose, posing, strength training, meditation, health, outdoors, beach, international yoga day',\n ),\n hit(\n 1282232,\n 1280,\n 853,\n 'man-person-power-strength-strong-1282232',\n 'man, person, power, strength, strong, fitness, body, muscles, weights, exhausted, heavy, weightlifting, effort, exhausting, bodybuilding, powerful, black fitness, black workout, black body, black power',\n ),\n hit(\n 1219339,\n 1280,\n 853,\n 'girl-woman-dancer-artist-circus-1219339',\n 'girl, woman, dancer, artist, circus, gravitation, shawl, elegance, weightless',\n ),\n hit(\n 2604149,\n 1280,\n 720,\n 'man-exercise-fitness-gym-dumbbells-2604149',\n 'man, exercise, fitness, gym, dumbbells, workout, weightlifting, exercise, fitness, gym, gym, gym, gym, gym, workout',\n ),\n hit(\n 2465478,\n 1280,\n 853,\n 'dumbbells-shoes-sneakers-2465478',\n 'dumbbells, shoes, sneakers, rubber shoes, fitness, gym, training, workout, exercise, health, fit, strength, bodybuilding, pilates, trainer, running shoes, cardio vascular, physio therapy, wellness, shoes',\n ),\n hit(\n 641691,\n 1280,\n 853,\n 'man-muscle-fitness-workout-641691',\n 'man, muscle, fitness, workout, training, fit, exercise, strength, body, strong, young, people, health, muscular, male, athletic, athlete, person, adult, lifestyle',\n ),\n hit(\n 2224104,\n 1280,\n 853,\n 'handstand-man-beach-sea-ocean-2224104',\n 'handstand, man, beach, sea, ocean, sand, sandy beach, shore, seashore, exercise, young, fitness, nature, water, male, sky, lifestyle, healthy, balance, strong',\n ),\n hit(\n 2318998,\n 1280,\n 853,\n 'gorilla-monkey-face-head-2318998',\n 'gorilla, monkey, nature, face, head, gorilla face, primate, mammal, wild animal, animal world, portrait, animal, zoo, furry, omnivore, hellabrunn zoo',\n ),\n hit(\n 4581841,\n 1280,\n 853,\n 'lion-zoo-africa-predator-animal-4581841',\n 'lion, zoo, africa, predator, animal, big cat, wild animal, wildlife, safari, mammal, cats, wildcat, nature, species, fauna',\n ),\n hit(\n 2578819,\n 1280,\n 862,\n 'karate-sunset-fight-sports-2578819',\n 'karate, sunset, fight, sports, silhouette, nature, resistance, samurai, fit, girl, self-defense, defense, fist, brown sunset, brown sports',\n ),\n hit(\n 8246973,\n 1280,\n 960,\n 'weight-dumbbell-strength-arm-force-8246973',\n 'weight, dumbbell, strength, arm, force, male, exercise, sport, fitness, wrist, hand, muscle, youth, body, adult, health, exercise, exercise, exercise, exercise',\n ),\n hit(\n 3481377,\n 1280,\n 850,\n 'chain-security-metal-iron-3481377',\n 'chain, security, metal, iron, metal chain, chain link, metallic, iron chain, protection, barrier, chain, chain, chain, chain, chain',\n ),\n hit(\n 2250970,\n 1280,\n 853,\n 'woman-crunches-sport-training-2250970',\n 'woman, crunches, sport, training, exercise, fit, fitness, wellness, body, abdominals, movement, sporty, active, condition, shoes, sneakers, health, healthy, sport, sport',\n ),\n hit(\n 1822701,\n 1280,\n 853,\n 'children-river-attack-martial-arts-1822701',\n 'children, river, attack, martial arts, nature, boxing, boys, exercise, kick, kickboxing, fighting, thai boxing, splash, sports, asia, thailand, training, water',\n ),\n hit(\n 2245029,\n 1280,\n 853,\n 'sports-fitness-fit-training-2245029',\n 'sports, fitness, fit, training, abdominal muscles, six pack, athletic, move, gymnastics, power, weight training, human, elegant, female, elegance, abdominal trainer, woman, bodybuilding, femininity, abdominal exercise',\n ),\n hit(\n 594143,\n 1280,\n 853,\n 'fitness-dumbbells-training-gym-594143',\n 'fitness, dumbbells, training, gym, weights, weightlifting, weight training, gym equipment, fitness studio, studio, weight, exercise, many, train, fit, fitness, gym, gym, gym, gym',\n ),\n hit(\n 1984344,\n 1280,\n 783,\n 'boxer-woman-sport-fighter-fitness-1984344',\n 'boxer, woman, sport, fighter, fitness, training, athlete, dark, fitness, fitness, fitness, fitness, fitness',\n ),\n hit(\n 752875,\n 1280,\n 908,\n 'gorilla-ape-zoo-silverback-grim-752875',\n 'gorilla, ape, zoo, silverback, grim, watch, trouble, boss, serious, view, eyes, animal portrait, tiergarten nürnberg, gorilla, gorilla, gorilla, gorilla, gorilla, boss',\n ),\n hit(\n 1850925,\n 1280,\n 850,\n 'adult-gym-athlete-dark-energy-1850925',\n 'adult, gym, athlete, dark, energy, exercise, exercise equipment, female, fit, fitness, girl, healthy, legs, muscles, plates, strength, strong, sweat, training, woman',\n ),\n hit(\n 8246972,\n 1280,\n 960,\n 'weights-dumbbells-strength-force-8246972',\n 'weights, dumbbells, strength, force, exercise, sport, fitness, wrist, hand, muscle, body, health',\n ),\n hit(\n 8563109,\n 1280,\n 914,\n 'ai-generated-woman-fitness-training-8563109',\n 'ai generated, woman, fitness, training, gym, adventure, sport, portrait, pose, stretch, exercise',\n ),\n hit(\n 2260736,\n 1280,\n 853,\n 'woman-personal-trainer-fitness-2260736',\n 'woman, personal trainer, fitness, exercise, workout, strength training, coach, dumbbells, weight bench, weight training, healthy, caucasian, personal trainer, personal trainer, personal trainer, personal trainer, fitness, fitness, fitness, fitness',\n ),\n hit(\n 461195,\n 1280,\n 857,\n 'man-muscular-back-male-guy-fit-461195',\n 'man, muscular, back, male, guy, fit, brawny, strong, muscles, biceps, triceps, bodybuilder, black and white, monochrome, back, back, strong, strong, strong, strong',\n ),\n hit(\n 595529,\n 1280,\n 853,\n 'physiotherapy-weight-training-595529',\n 'physiotherapy, weight training, dumbbells, exercise balls, weight loss, workout, health, gym, therapist, physiotherapist, healthcare, fitness, wellness, rehabilitation, healing, therapeutic, weight loss, weight loss, workout, health',\n ),\n hit(\n 1850926,\n 1280,\n 850,\n 'abs-athlete-biceps-blonde-body-1850926',\n 'abs, athlete, biceps, blonde, body, fit, fitness, gym, healthy, muscles, person, strength, strong, trainer, training, woman, workout, workout gear',\n ),\n hit(\n 423794,\n 1280,\n 859,\n 'hands-words-meaning-fingers-423794',\n 'hands, words, meaning, fingers, colorful, markers, palm, painted, emotions, body, expression, hands, words, words, words, words, words, emotions, emotions, body',\n ),\n hit(\n 1284616,\n 1280,\n 853,\n 'weight-lifting-fitness-gym-1284616',\n 'weight lifting, fitness, gym, perspective, bodybuilding, dumbells, weights, health, sport, training, exercise, workout, fitness, gym, gym, gym, gym, gym',\n ),\n hit(\n 8332727,\n 1280,\n 960,\n 'chain-stole-iron-metal-rusty-8332727',\n 'chain, stole, iron, metal, rusty, chain links, barrier, limbs, connection, chain, chain, chain, chain, chain, iron, iron, iron, iron, connection, connection',\n ),\n hit(\n 1854265,\n 1280,\n 854,\n 'woman-yoga-pose-wellness-1854265',\n 'woman, yoga, pose, wellness, well-being, meditate, balance, balancing, artwork, art, drawing, indoors, lifestyle, recreation, healthy, healthy lifestyle, yoga, yoga, yoga, yoga',\n ),\n hit(\n 567950,\n 1280,\n 853,\n 'arm-wrestling-bet-monochrome-sport-567950',\n 'arm wrestling, bet, monochrome, sport, competition, fight, strength, power, men, hands, armfighting, money, bills, betting, gambling, black and white, fight, power, money, money',\n ),\n]\n\n/** `intro barbell basics` (horizontal, min_width 900), for the Ironline event \"Intro to barbell basics\"; answered 2026-10-16T06:28:28.474Z. */\nexport const INTRO_BARBELL_BASICS: StockPhoto[] = [\n hit(\n 534615,\n 1280,\n 853,\n 'crossfit-sports-fitness-training-534615',\n 'crossfit, sports, fitness, training, exercise, athlete, young, healthy, workout, fit, muscular, body, people, strength, power, strong, female, sport, woman, athletic',\n ),\n hit(\n 1282232,\n 1280,\n 853,\n 'man-person-power-strength-strong-1282232',\n 'man, person, power, strength, strong, fitness, body, muscles, weights, exhausted, heavy, weightlifting, effort, exhausting, bodybuilding, powerful, black fitness, black workout, black body, black power',\n ),\n hit(\n 594143,\n 1280,\n 853,\n 'fitness-dumbbells-training-gym-594143',\n 'fitness, dumbbells, training, gym, weights, weightlifting, weight training, gym equipment, fitness studio, studio, weight, exercise, many, train, fit, fitness, gym, gym, gym, gym',\n ),\n hit(\n 7432851,\n 1280,\n 853,\n 'lake-turquoise-riverbank-mountain-7432851',\n 'lake, turquoise, riverbank, mountain, austria, landscape, clear, nature, clean, water, basic',\n ),\n hit(\n 2206285,\n 1280,\n 854,\n 'basic-colors-rgb-coloured-2206285',\n 'basic colors, rgb, coloured, rgb, rgb, rgb, rgb, rgb',\n ),\n hit(\n 3239249,\n 1280,\n 854,\n 'people-strong-barbell-lie-female-3239249',\n 'people, strong, barbell, lie, female, barbell, barbell, barbell, barbell, barbell',\n ),\n hit(\n 1634760,\n 1280,\n 853,\n 'weight-dumbbells-barbell-to-lift-1634760',\n 'weight, dumbbells, barbell, to lift, kilo, sports equipment, fitness, barbell, barbell, barbell, barbell, barbell, fitness',\n ),\n hit(\n 2296369,\n 1280,\n 960,\n 'chess-chess-pieces-2296369',\n 'chess, chess pieces, the basic position, staunton, chess, chess, chess, chess, chess',\n ),\n hit(\n 1573068,\n 1280,\n 914,\n 'rock-art-craft-wellness-workout-1573068',\n 'rock, art, craft, wellness, workout, fitness, wellness, wellness, workout, workout, fitness, fitness, fitness, fitness, fitness',\n ),\n hit(\n 1882721,\n 1280,\n 853,\n 'fitness-weight-dumbbell-gym-1882721',\n 'fitness, weight, dumbbell, gym, fitness center, weight lifting, weight training, fit, gym, gym, gym, gym, gym',\n ),\n hit(\n 1966247,\n 1280,\n 853,\n 'dumbbell-sports-weights-gym-1966247',\n 'dumbbell, sports, weights, gym, weight training, fitness device, muscle training, work out, bodybuilding, weight plates, barbell, black, gym, gym, gym, gym, gym',\n ),\n hit(\n 5237134,\n 1280,\n 853,\n 'dumbell-weights-gym-fitness-5237134',\n 'dumbell, weights, gym, fitness, exercise, equipment, weight, barbell, crossfit, kettlebell, bodybuilding, sport, workout, fit, healthy, lifting, training, heavy, strength, dumbbell',\n ),\n hit(\n 91849,\n 1280,\n 814,\n 'gym-equipment-weights-machines-91849',\n 'gym, equipment, weights, machines, lifting weights, workout, bodybuilding, sports, inside, interior, gym, gym, gym, gym, gym',\n ),\n hit(\n 1966702,\n 1280,\n 853,\n 'dumbbell-sports-weights-1966702',\n 'dumbbell, sports, weights, weight training, weight lifting, muscles, muscle training, work out, weight plates, training, fitness, dark, dumbbell, dumbbell, dumbbell, dumbbell, dumbbell, weights, weights, weights',\n ),\n hit(\n 2427461,\n 1280,\n 853,\n 'weightlifting-power-fitness-gym-2427461',\n 'weightlifting, power, fitness, gym, workout, training, exercise, body, fit, weight, athlete, strong, strength, black fitness, black gym, black exercise, black training, black workout, black body, black power',\n ),\n hit(\n 3516208,\n 1280,\n 853,\n 'gym-lift-training-bodybuilding-3516208',\n 'gym, lift, training, bodybuilding, exercise, muscular, physical, weight, gym, gym, gym, gym, gym, bodybuilding, bodybuilding',\n ),\n hit(\n 1839086,\n 1280,\n 853,\n 'barbell-bodybuilding-effort-1839086',\n 'barbell, bodybuilding, effort, exercise, fitness, gym, man, muscles, person, strong, weightlifting, black fitness, black gym, black exercise, black workout, gym, gym, gym, gym, gym',\n ),\n hit(\n 5354410,\n 1280,\n 854,\n 'fountain-basic-watercourse-flow-5354410',\n 'fountain, basic, watercourse, flow, golden, glitter, reflection, mainau island, lake constance',\n ),\n hit(\n 7363769,\n 1280,\n 853,\n 'wheat-grain-food-grain-field-ear-7363769',\n 'wheat, grain, food, grain field, ear, wheat field, basic food, close up, ripe',\n ),\n hit(\n 1839087,\n 1280,\n 855,\n 'barbell-bodybuilding-effort-1839087',\n 'barbell, bodybuilding, effort, exercise, fitness, gym, man, muscles, person, strong, weightlifting, weights, black fitness, black gym, black exercise, black workout, gym, gym, gym, gym',\n ),\n hit(\n 7363775,\n 1280,\n 853,\n 'wheat-grain-food-grain-field-ear-7363775',\n 'wheat, grain, food, grain field, ear, wheat field, basic food, close up, ripe',\n ),\n hit(\n 546138,\n 1280,\n 857,\n 'gym-fitness-workout-dumbbell-546138',\n 'gym, fitness, workout, dumbbell, lifting, weight, equipment, gym, gym, gym, gym, gym',\n ),\n hit(\n 7200534,\n 1280,\n 853,\n 'woman-athletic-body-exercise-7200534',\n 'woman, athletic, body, exercise, fitness, fit, gym, healthy, strength, lifestyle, bodybuilding, muscle, bodybuilder, people, power, sport, sportswear, training, workout, posing',\n ),\n hit(\n 3263324,\n 1280,\n 853,\n 'man-weight-lifter-muscular-strength-3263324',\n 'man, weight lifter, muscular, strength, bodybuilding, athlete, weightlifting, equipment, athletic, workout, training, exercise, power, weight, weightlifter, bodybuilder, heavy, black fitness, black exercise, black training',\n ),\n hit(\n 3563462,\n 1280,\n 720,\n 'man-male-person-young-muscles-3563462',\n 'man, male, person, desktop backgrounds, young, muscles, free wallpaper, wallpaper 4k, 4k wallpaper, cool backgrounds, biceps, triceps, gym, bodybuilder, bodybuilding, torso, shadow, free background, hd wallpaper, full hd wallpaper',\n ),\n hit(\n 5730110,\n 1280,\n 853,\n 'weightlifting-workout-girl-woman-5730110',\n 'weightlifting, workout, girl, woman, female, athlete, fit, strong, gym, barbell, exercise, wellness, fitness, crossfit, lifestyle, weightlifting, weightlifting, gym, gym, gym',\n ),\n hit(\n 3102642,\n 1280,\n 853,\n 'weightlifting-barbells-dumbbells-3102642',\n 'weightlifting, barbells, dumbbells, heavy, iron, equipment, bodybuilding, physical exercise, power, healthy, fitness center, banana, fruit, weightlifting, weightlifting, bodybuilding, bodybuilding, bodybuilding, bodybuilding, bodybuilding',\n ),\n hit(\n 5354413,\n 1280,\n 854,\n 'flowers-water-stairs-watercourse-5354413',\n 'flowers water stairs, watercourse, basic, flow, golden, glitter, mainau island, lake constance, basic, basic, basic, basic, basic, glitter, glitter, glitter',\n ),\n hit(\n 1235019,\n 1280,\n 853,\n 'sport-exercises-fitness-center-1235019',\n 'sport, exercises, fitness center, muscles, iron, metal, bitumen, rubber, health, strength, practice, diet, bodybuilding, dumbbells, barbells, slimming, fitness center, strength, strength, strength',\n ),\n hit(\n 2726736,\n 1280,\n 855,\n 'sport-fitness-center-fitness-2726736',\n 'sport, fitness center, fitness, bodybuilding, dumbbells, metal, chrome, silver, muscles, health, exercises, practice, slimming, barbells, iron, physical exercise, lifestyle, diets, fit, scales',\n ),\n hit(\n 79587,\n 1280,\n 933,\n 'weights-weight-lifters-dead-lift-79587',\n 'weights, weight lifters, dead lift, men, woman, gym, workout, bodybuilding, gray fitness, gray gym, gray workout, gym, gym, gym, gym, gym, bodybuilding',\n ),\n hit(\n 1244925,\n 1280,\n 853,\n 'sport-exercises-fitness-center-1244925',\n 'sport, exercises, fitness center, dumbbells, bitumen, iron, health, slimming, muscles, bodybuilding, diet, dumbbells, dumbbells, bodybuilding, bodybuilding, bodybuilding, bodybuilding, bodybuilding',\n ),\n hit(\n 1966704,\n 1280,\n 853,\n 'dumbbell-sports-weights-1966704',\n 'dumbbell, sports, weights, weight training, weight lifting, muscles, muscle training, work out, weight plates, training, fitness, dark, dumbbell, dumbbell, dumbbell, dumbbell, dumbbell, weights, weights, weights',\n ),\n hit(\n 2726735,\n 1280,\n 855,\n 'sport-fitness-center-fitness-2726735',\n 'sport, fitness center, fitness, bodybuilding, dumbbells, metal, chrome, silver, muscles, health, exercises, practice, slimming, barbells, iron, physical exercise, lifestyle, diets, fit, scales',\n ),\n hit(\n 3435990,\n 1280,\n 704,\n 'dumbell-barbell-bodybuilding-3435990',\n 'dumbell, barbell, bodybuilding, equipment, fitness, exercise, sport, gym, weight, workout, fit, healthy, lifting, training, heavy, strength, dumbbell, body, strong, weightlifting',\n ),\n hit(\n 375482,\n 1280,\n 719,\n 'barbell-crossfit-lifting-gym-375482',\n 'barbell, crossfit, lifting, gym, fitness, exercise, workout, strong, athlete, equipment, lift, man, barbell, barbell, crossfit, crossfit, crossfit, gym, gym, gym',\n ),\n hit(\n 2792995,\n 1280,\n 854,\n 'sport-bodybuilding-fitness-2792995',\n 'sport, bodybuilding, fitness, powerlifting, athlete, training, gym, muscles, black fitness, black gym, black training, black workout, black sports, gym, gym, gym, gym, gym',\n ),\n hit(\n 1452965,\n 1280,\n 853,\n 'sports-fitness-body-building-iron-1452965',\n 'sports, fitness, body-building, iron, metal, muscle, sports equipment, workout, weightlifting, barbell, disks, healthy, strong, heavy, equipment, black, health, leisure, vacation, gym',\n ),\n hit(\n 7847247,\n 1280,\n 853,\n 'man-strong-fitness-gym-body-7847247',\n 'man, strong, fitness, gym, body, muscles, model, tattoos, gym, gym, gym, gym, gym',\n ),\n hit(\n 2427475,\n 1280,\n 848,\n 'weightlifting-power-fitness-gym-2427475',\n 'weightlifting, power, fitness, gym, workout, training, exercise, body, fit, weight, athlete, strong, strength, black fitness, black gym, black exercise, black training, black workout, black body, black power',\n ),\n]\n\n/** `basic` (horizontal, min_width 900), for the same event's object, read as \"basic\"; answered 2026-10-16T06:28:28.685Z. */\nexport const BASIC: StockPhoto[] = [\n hit(\n 7432851,\n 1280,\n 853,\n 'lake-turquoise-riverbank-mountain-7432851',\n 'lake, turquoise, riverbank, mountain, austria, landscape, clear, nature, clean, water, basic',\n ),\n hit(\n 2206285,\n 1280,\n 854,\n 'basic-colors-rgb-coloured-2206285',\n 'basic colors, rgb, coloured, rgb, rgb, rgb, rgb, rgb',\n ),\n hit(\n 2296369,\n 1280,\n 960,\n 'chess-chess-pieces-2296369',\n 'chess, chess pieces, the basic position, staunton, chess, chess, chess, chess, chess',\n ),\n hit(\n 5354410,\n 1280,\n 854,\n 'fountain-basic-watercourse-flow-5354410',\n 'fountain, basic, watercourse, flow, golden, glitter, reflection, mainau island, lake constance',\n ),\n hit(\n 7363769,\n 1280,\n 853,\n 'wheat-grain-food-grain-field-ear-7363769',\n 'wheat, grain, food, grain field, ear, wheat field, basic food, close up, ripe',\n ),\n hit(\n 7363775,\n 1280,\n 853,\n 'wheat-grain-food-grain-field-ear-7363775',\n 'wheat, grain, food, grain field, ear, wheat field, basic food, close up, ripe',\n ),\n hit(\n 5354413,\n 1280,\n 854,\n 'flowers-water-stairs-watercourse-5354413',\n 'flowers water stairs, watercourse, basic, flow, golden, glitter, mainau island, lake constance, basic, basic, basic, basic, basic, glitter, glitter, glitter',\n ),\n hit(\n 2354945,\n 1280,\n 720,\n 'luxembourg-basic-historic-center-2354945',\n 'luxembourg, basic, historic center, flow, nature, historical, city, historic old town, water, building, houses, river course',\n ),\n hit(\n 5290800,\n 1280,\n 720,\n 'jugs-garden-summer-basic-ceramic-5290800',\n 'jugs, garden, summer, basic, ceramic, nature, material, live, plant',\n ),\n hit(\n 5485718,\n 1280,\n 853,\n 'knife-hunting-knife-tool-weapon-5485718',\n 'knife, hunting knife, tool, weapon, basic survival, nature, forest, woods',\n ),\n hit(\n 5485730,\n 1280,\n 853,\n 'knife-hunting-knife-tool-weapon-5485730',\n 'knife, hunting knife, tool, weapon, basic survival, nature, forest, woods, hand holding a knife',\n ),\n hit(\n 5306324,\n 1280,\n 853,\n 'loaf-wheat-rye-dough-sauereig-bio-5306324',\n 'loaf, wheat, rye, dough, sauereig, bio, baked, oven, steam, to form, a sourdough starter, to bake, naturally, spices, homemade, food photo, yummy, food, carbohydrates, basic food',\n ),\n hit(\n 2454404,\n 1280,\n 853,\n 'the-basic-law-germany-a-book-2454404',\n 'the basic law, germany, a book, imperial eagle, book stack',\n ),\n hit(\n 5485726,\n 1280,\n 853,\n 'knife-hunting-knife-tool-weapon-5485726',\n 'knife, hunting knife, tool, weapon, basic survival, forest, nature, woods, hand holding a knife, cross',\n ),\n hit(\n 829054,\n 1280,\n 853,\n 'fence-barrier-private-locked-829054',\n 'fence, barrier, private, locked, delimitation, ibiza, own tower, wood, island, power, wealth, nature, border, plot, basic, tree, green, gray, sea, blue',\n ),\n hit(\n 3486048,\n 1280,\n 853,\n 'wood-heart-heart-shape-macro-food-3486048',\n 'wood, heart, heart shape, macro, food, meal, shape, cook, garnish, heart potato, potato, basic food, tuber, erdknolle, potatoes, strength, fresh, market, bio, vegetables',\n ),\n hit(\n 5306260,\n 1280,\n 853,\n 'bot-wheat-rye-raw-raw-dough-5306260',\n 'bot, wheat, rye, raw, raw dough, sauereig, ungebacken, to form, a sourdough starter, to bake, naturally, spices, homemade, food photo, yummy, food, carbohydrates, basic food, baking sheet',\n ),\n hit(\n 4479965,\n 1280,\n 853,\n 'lens-zoom-lens-canon-efs-kit-lens-4479965',\n 'lens, zoom lens, canon, efs, kit lens, glass, basic, dslr lens, hood, lens hood, photography, zoom, focus, technology, equipment, photograph, digital, aperture, retro, dslr',\n ),\n hit(\n 3599819,\n 1280,\n 853,\n 'water-basic-stones-nature-lake-3599819',\n 'water, 4k wallpaper, basic, free wallpaper, stones, nature, full hd wallpaper, free background, desktop backgrounds, wallpaper 4k, 4k wallpaper 1920x1080, beautiful wallpaper, laptop wallpaper, cool backgrounds, hd wallpaper, wallpaper hd, lake, windows wallpaper, mac wallpaper, background',\n ),\n hit(\n 4487472,\n 1280,\n 853,\n 'water-sea-lake-waves-structure-4487472',\n 'water, sea, mac wallpaper, lake, waves, hd wallpaper, nature, desktop backgrounds, structure, stones, wallpaper 4k, free background, free wallpaper, basic, cool backgrounds, beautiful wallpaper, laptop wallpaper, background, 4k wallpaper, windows wallpaper',\n ),\n hit(\n 3824173,\n 1280,\n 805,\n 'birds-electric-wires-sitting-3824173',\n 'birds, electric, wires, sitting, nature, on the wire, houfující, music, basics, syllabus, migrating',\n ),\n hit(\n 5485761,\n 1280,\n 853,\n 'knife-nature-background-tool-5485761',\n 'knife, nature, desktop backgrounds, background, hd wallpaper, laptop wallpaper, beautiful wallpaper, cool backgrounds, free wallpaper, tool, free background, weapon, wallpaper 4k, forest, wallpaper hd, basic survival, mac wallpaper, windows wallpaper, 4k wallpaper, 4k wallpaper 1920x1080',\n ),\n hit(\n 5257434,\n 1280,\n 1021,\n 'mockup-t-shirt-shirt-tshirt-wear-5257434',\n 'mockup, t-shirt, shirt, tshirt, wear, model, fashion, clothing, design, apparel, clothes, mock, casual, pod, print on demand, print, merch, free mockup, t-shirt mockup, shirt mockup',\n ),\n hit(\n 1903637,\n 1280,\n 960,\n 'particle-accelerator-gsi-1903637',\n 'particle accelerator, gsi, quantum physics, darmstadt, research, atoms, heavy ions, physics, science, scientists, ions, science city, basic research, matter, particle accelerator, particle accelerator, particle accelerator, particle accelerator, particle accelerator, quantum physics',\n ),\n hit(\n 671705,\n 1280,\n 960,\n 'ordinary-gravel-root-kunigunde-herb-671705',\n 'ordinary gravel root, kunigunde herb, eupatorium cannabinum, composites, asteraceae, plant, inflorescence, blossoms, sedum, alapkraut, albdost, albkraut, alpkraut, blue weather cooling, bolkenskruit, bruchwurz, donner herb, in measured doses, dragon herb, long sheaf of',\n ),\n hit(\n 8418171,\n 1280,\n 853,\n 'air-force-aviation-silver-falcons-8418171',\n 'air force, aviation, silver falcons, aerobatic display team, south african, pilatus pc-7 mk ii, basic trainer, airshow, climb',\n ),\n hit(\n 5306304,\n 1280,\n 853,\n 'loaf-wheat-rye-raw-raw-dough-5306304',\n 'loaf, wheat, rye, raw, raw dough, sauereig, bio, baked, oven, steam, to form, a sourdough starter, to bake, naturally, spices, homemade, food photo, yummy, food, carbohydrates',\n ),\n hit(\n 5306296,\n 1280,\n 853,\n 'loaf-wheat-rye-raw-raw-dough-5306296',\n 'loaf, wheat, rye, raw, raw dough, sauereig, bio, baked, oven, steam, to form, a sourdough starter, to bake, naturally, spices, homemade, food photo, yummy, food, carbohydrates',\n ),\n hit(\n 4969402,\n 1280,\n 960,\n 'animal-chicken-heat-wing-wings-4969402',\n 'animal, chicken, heat, wing, wings, white, basic court, eye, beak, plumages, sky',\n ),\n hit(\n 4410137,\n 1280,\n 853,\n 'loaf-frozen-vegetarian-4410137',\n 'loaf, frozen, vegetarian, organic crust, crumb, to bake, fiber, grain, grains, ice cream, dough, vegetarian basic food, sourdough, thawing, tasty, meal, healthy, nourishment, close up',\n ),\n hit(\n 4021485,\n 1280,\n 862,\n 'pensioners-id-miniature-figures-4021485',\n 'pensioners, id, miniature figures, retirement, pension reform, supply, old, basic pension, eventide, granny, grandpa, grandchild, pension, old-age security, pension ruling, miniature figure, miniature, creative, toy figure, model construction figure',\n ),\n]\n\n/** `small-group strength class` (horizontal, min_width 900), for the Ironline event \"Small-group strength class\"; answered 2026-10-16T06:28:34.281Z. */\nexport const SMALL_GROUP_STRENGTH_CLASS: StockPhoto[] = [\n hit(\n 4333580,\n 1280,\n 852,\n 'zumba-marathon-sport-exercise-4333580',\n 'zumba, marathon, sport, exercise, dance, women, dancers, girls, performance, movement, dancing, freedom, female, zumba, exercise, exercise, exercise, exercise, exercise',\n ),\n hit(\n 1948813,\n 1280,\n 852,\n 'fitness-healthy-happy-sports-1948813',\n 'fitness, healthy, happy, sports, training, yoga, pilates, yoga, yoga, pilates, pilates, pilates, pilates, pilates',\n ),\n hit(\n 4581841,\n 1280,\n 853,\n 'lion-zoo-africa-predator-animal-4581841',\n 'lion, zoo, africa, predator, animal, big cat, wild animal, wildlife, safari, mammal, cats, wildcat, nature, species, fauna',\n ),\n hit(\n 6888635,\n 1280,\n 1280,\n 'strength-gym-fitness-exercise-6888635',\n 'strength, gym, fitness, exercise, workout, training, fit, gym, gym, gym, gym, gym',\n ),\n hit(\n 4925664,\n 1280,\n 853,\n 'fitness-dumbbell-step-4925664',\n 'fitness, dumbbell, step, weight training, course, aerobics, bodypump, group, dumbbell, weight training, aerobics, aerobics, aerobics, aerobics, aerobics, bodypump',\n ),\n hit(\n 7383498,\n 1280,\n 853,\n 'yoga-yoga-class-yoga-studio-7383498',\n 'yoga, yoga class, yoga studio, yoga center, yoga practice, yoga world, yoga training, international yoga day, yoga teacher, yoga, yoga, yoga class, yoga class, yoga class, yoga class, yoga class, yoga studio, yoga studio',\n ),\n hit(\n 1840275,\n 1280,\n 1280,\n 'woman-stretch-yoga-pose-yoga-pose-1840275',\n 'woman, stretch, yoga, pose, yoga pose, stretching, meditation, young woman, active, lifestyle, fit, fitness, wellness, portrait, yoga, yoga, yoga, yoga, yoga, meditation',\n ),\n hit(\n 4941738,\n 1280,\n 853,\n 'ballet-foot-feet-dance-wait-4941738',\n 'ballet, foot, feet, dance, wait, ballet shoes, legs, girl, sports, ballet, ballet, ballet, ballet, ballet, foot, foot, feet, dance, dance, dance',\n ),\n hit(\n 3134828,\n 1280,\n 853,\n 'ease-balance-easy-power-positive-3134828',\n 'ease, balance, easy, power, positive, dance, yoga, nature, meditation, woman, fitness, health, waterdrop, splash, water, drops, reflection, crown, expression, move',\n ),\n hit(\n 2037255,\n 1280,\n 811,\n 'man-board-drawing-muscles-strong-2037255',\n 'man, board, drawing, muscles, strong, weak, chalk, disappointment, biceps, hood, disappointed, fitness, muscle, training, hope, pose, power, bodybuilding, poor, hardness',\n ),\n hit(\n 2904536,\n 1280,\n 960,\n 'horses-pair-wild-horses-animals-2904536',\n 'horses, pair, nature, wild horses, animals, wild, stallion, equestrian, horse mane, equines, mammals, animal world, digital painting, digital artwork',\n ),\n hit(\n 2888519,\n 1280,\n 953,\n 'african-lion-wild-cat-feline-mane-2888519',\n 'african lion, wild cat, feline, mane, closeup, wildlife, wild, nature, portrait, face, king, lion, animal, animal world, wildlife photography',\n ),\n hit(\n 3186483,\n 1280,\n 724,\n 'fantasy-surreal-god-foot-power-3186483',\n 'fantasy, surreal, god, foot, power, strength, superiority, deity, big, gigantic, mystical, force of nature, fairytale, composing, eve, nature, photomontage, sunset',\n ),\n hit(\n 1178187,\n 1280,\n 960,\n 'women-yoga-class-asana-fitness-1178187',\n 'women, yoga class, asana, fitness, instructor, hatha yoga, posture, woman, person, wellness, relaxation, stretching, sporty, athletic, body and mind harmony, practice yoga, serenity, zen, international yoga day, yoga class',\n ),\n hit(\n 1850711,\n 1280,\n 1097,\n 'agility-ballet-dancing-athlete-1850711',\n 'agility, ballet, dancing, athlete, ballerina, balance, ballet dancer, dancer, exercise, flexibility, motion, performance, position, skill, strength, stretching, elegance, elegant, coordination, choreography',\n ),\n hit(\n 828741,\n 1280,\n 850,\n 'training-rmuscles-back-shoulders-828741',\n 'training, rmuscles, back, shoulders, blonde, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio',\n ),\n hit(\n 534615,\n 1280,\n 853,\n 'crossfit-sports-fitness-training-534615',\n 'crossfit, sports, fitness, training, exercise, athlete, young, healthy, workout, fit, muscular, body, people, strength, power, strong, female, sport, woman, athletic',\n ),\n hit(\n 2587066,\n 1280,\n 800,\n 'yoga-strength-woman-balance-2587066',\n 'yoga, strength, woman, balance, balancing, fit, fitness, nature, young woman, fit woman, wellness, pose, yoga pose, posing, strength training, meditation, health, outdoors, beach, international yoga day',\n ),\n hit(\n 828726,\n 1280,\n 850,\n 'training-muscles-arms-blonde-828726',\n 'training, muscles, arms, blonde, bar bells, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio',\n ),\n hit(\n 2264825,\n 1280,\n 853,\n 'man-woman-push-ups-wellness-2264825',\n 'man, woman, push-ups, wellness, exercise, pair, couple, fit, fitness, sport, strength training, one arm, sporty, movement, muscles, muscle training, training, exercise, exercise, fitness',\n ),\n hit(\n 1282232,\n 1280,\n 853,\n 'man-person-power-strength-strong-1282232',\n 'man, person, power, strength, strong, fitness, body, muscles, weights, exhausted, heavy, weightlifting, effort, exhausting, bodybuilding, powerful, black fitness, black workout, black body, black power',\n ),\n hit(\n 2568410,\n 1280,\n 853,\n 'woman-stretching-yoga-exercise-2568410',\n 'woman, stretching, yoga, exercise, health, physical, fitness, international yoga day, yoga class, yoga, yoga, yoga, yoga, yoga, yoga class',\n ),\n hit(\n 1219339,\n 1280,\n 853,\n 'girl-woman-dancer-artist-circus-1219339',\n 'girl, woman, dancer, artist, circus, gravitation, shawl, elegance, weightless',\n ),\n hit(\n 10271298,\n 1280,\n 717,\n 'classroom-child-education-learning-10271298',\n 'classroom, child, education, learning, school, activity, bright, primary, student, desk, teacher, group, colorful, pencil, kindergarten, preschool, study, age, happy, indoor',\n ),\n hit(\n 2604149,\n 1280,\n 720,\n 'man-exercise-fitness-gym-dumbbells-2604149',\n 'man, exercise, fitness, gym, dumbbells, workout, weightlifting, exercise, fitness, gym, gym, gym, gym, gym, workout',\n ),\n hit(\n 2465478,\n 1280,\n 853,\n 'dumbbells-shoes-sneakers-2465478',\n 'dumbbells, shoes, sneakers, rubber shoes, fitness, gym, training, workout, exercise, health, fit, strength, bodybuilding, pilates, trainer, running shoes, cardio vascular, physio therapy, wellness, shoes',\n ),\n hit(\n 641691,\n 1280,\n 853,\n 'man-muscle-fitness-workout-641691',\n 'man, muscle, fitness, workout, training, fit, exercise, strength, body, strong, young, people, health, muscular, male, athletic, athlete, person, adult, lifestyle',\n ),\n hit(\n 2224104,\n 1280,\n 853,\n 'handstand-man-beach-sea-ocean-2224104',\n 'handstand, man, beach, sea, ocean, sand, sandy beach, shore, seashore, exercise, young, fitness, nature, water, male, sky, lifestyle, healthy, balance, strong',\n ),\n hit(\n 2318998,\n 1280,\n 853,\n 'gorilla-monkey-face-head-2318998',\n 'gorilla, monkey, nature, face, head, gorilla face, primate, mammal, wild animal, animal world, portrait, animal, zoo, furry, omnivore, hellabrunn zoo',\n ),\n hit(\n 2250970,\n 1280,\n 853,\n 'woman-crunches-sport-training-2250970',\n 'woman, crunches, sport, training, exercise, fit, fitness, wellness, body, abdominals, movement, sporty, active, condition, shoes, sneakers, health, healthy, sport, sport',\n ),\n hit(\n 1179452,\n 1280,\n 854,\n 'men-yoga-class-gym-instructor-1179452',\n 'men, yoga class, gym, instructor, hatha yoga, professor, posture, person, moral, wellness, hobbies, relaxation, stretching, sporty, athletic, body and mind harmony, fitness, practice yoga, gymnastic, serenity',\n ),\n hit(\n 2578819,\n 1280,\n 862,\n 'karate-sunset-fight-sports-2578819',\n 'karate, sunset, fight, sports, silhouette, nature, resistance, samurai, fit, girl, self-defense, defense, fist, brown sunset, brown sports',\n ),\n hit(\n 8246973,\n 1280,\n 960,\n 'weight-dumbbell-strength-arm-force-8246973',\n 'weight, dumbbell, strength, arm, force, male, exercise, sport, fitness, wrist, hand, muscle, youth, body, adult, health, exercise, exercise, exercise, exercise',\n ),\n hit(\n 594143,\n 1280,\n 853,\n 'fitness-dumbbells-training-gym-594143',\n 'fitness, dumbbells, training, gym, weights, weightlifting, weight training, gym equipment, fitness studio, studio, weight, exercise, many, train, fit, fitness, gym, gym, gym, gym',\n ),\n hit(\n 3481377,\n 1280,\n 850,\n 'chain-security-metal-iron-3481377',\n 'chain, security, metal, iron, metal chain, chain link, metallic, iron chain, protection, barrier, chain, chain, chain, chain, chain',\n ),\n hit(\n 2245029,\n 1280,\n 853,\n 'sports-fitness-fit-training-2245029',\n 'sports, fitness, fit, training, abdominal muscles, six pack, athletic, move, gymnastics, power, weight training, human, elegant, female, elegance, abdominal trainer, woman, bodybuilding, femininity, abdominal exercise',\n ),\n hit(\n 1822701,\n 1280,\n 853,\n 'children-river-attack-martial-arts-1822701',\n 'children, river, attack, martial arts, nature, boxing, boys, exercise, kick, kickboxing, fighting, thai boxing, splash, sports, asia, thailand, training, water',\n ),\n hit(\n 1180062,\n 1280,\n 849,\n 'fitness-room-fitness-sport-1180062',\n 'fitness room, fitness, sport, gymnastics class, instructor, education, sports teacher, physical condition, burn calories, performance, bodybuilding, to build up muscle, tone up, to lose weight, gymnastic, relaxation, hobbies, sports hall, man, woman',\n ),\n hit(\n 1984344,\n 1280,\n 783,\n 'boxer-woman-sport-fighter-fitness-1984344',\n 'boxer, woman, sport, fighter, fitness, training, athlete, dark, fitness, fitness, fitness, fitness, fitness',\n ),\n hit(\n 8563109,\n 1280,\n 914,\n 'ai-generated-woman-fitness-training-8563109',\n 'ai generated, woman, fitness, training, gym, adventure, sport, portrait, pose, stretch, exercise',\n ),\n]\n\n/** `film` (vertical, min_height 900), for the Juniper and Rye home \"Film\" card; answered 2026-10-16T06:32:36.651Z. */\nexport const FILM: StockPhoto[] = [\n hit(\n 8246764,\n 851,\n 1280,\n 'camera-hat-fallen-leaves-retro-8246764',\n 'camera, hat, fallen leaves, retro, autumn, lawn, notebook, still life, vintage, retro camera, object shooting, autumn mood, cap, details, retro, retro, retro, retro, retro, autumn',\n ),\n hit(\n 1867296,\n 857,\n 1280,\n 'camera-film-little-girl-minolta-1867296',\n 'camera, film, little girl, minolta, positive, photographer, taking picture, photo, image, photoshoot, blonde, child, countryside, cute, nature, daylight, dress, fashion, girl, kid',\n ),\n hit(\n 9703143,\n 853,\n 1280,\n 'woman-cry-sad-film-9703143',\n 'woman, cry, sad, film',\n ),\n hit(\n 8191564,\n 851,\n 1280,\n 'camera-portrait-take-pictures-lens-8191564',\n 'camera, portrait, take pictures, lens, photographer, boy, young man, teen, film camera, take pictures on film, retro camera, old camera, camera, camera, camera, boy, boy, boy, boy, boy',\n ),\n hit(\n 1705135,\n 853,\n 1280,\n 'camera-film-camera-photography-1705135',\n 'camera, film camera, photography, analog camera, analog, slr camera, exposure, classic, film, lens, media, photo, beautiful wallpaper, vintage, retro, background, iphone wallpaper',\n ),\n hit(\n 7699766,\n 853,\n 1280,\n 'film-camera-camera-antique-camera-7699766',\n 'film camera, camera, antique camera, film photography, analog camera, vintage camera, filmstrip, rollei 35, filter, camera, camera, camera, camera, camera, antique camera, vintage camera, vintage camera, vintage camera, filter',\n ),\n hit(\n 7883774,\n 880,\n 1280,\n 'woman-coat-camera-photographer-7883774',\n 'woman, coat, camera, photographer, young, portrait, camera, camera, camera, camera, camera, photographer, photographer, photographer',\n ),\n hit(\n 2168170,\n 853,\n 1280,\n 'camera-vintage-map-plant-flat-lay-2168170',\n 'camera, vintage, map, plant, flat lay, retro, nature, photographs, old, old camera, vintage camera, photography',\n ),\n hit(\n 5149664,\n 853,\n 1280,\n 'photographer-girl-photography-5149664',\n 'photographer, girl, photography, camera, shoot, film, lens, photograph, heart, picture, focus, shooting, dslr, instagram, cute, creative, window, portrait, face, out',\n ),\n hit(\n 4436130,\n 854,\n 1280,\n 'girl-camera-photography-lifestyle-4436130',\n 'girl, camera, photography, lifestyle, outdoors, camera, camera, photography, photography, photography, photography, photography, lifestyle, lifestyle',\n ),\n hit(\n 7135326,\n 853,\n 1280,\n 'behind-the-scenes-film-shoot-filming-7135326',\n 'behind the scenes, film shoot, filming, film, india, film director, video, delhi, manesar, videography, film director, videography, videography, videography, videography, videography',\n ),\n hit(\n 7699765,\n 853,\n 1280,\n 'camera-vintage-camera-film-camera-7699765',\n 'camera, vintage camera, film camera, leica, analog camera, film photography, filmstrip, leica mp, summicron, 50mm, camera, camera, camera, camera, camera, vintage camera, film camera, leica, leica, leica',\n ),\n hit(\n 7699767,\n 853,\n 1280,\n 'old-camera-camera-collapsible-camera-7699767',\n \"old camera, camera, collapsible camera, antiquity, chrome, film camera, lens, mamiya, mamiya six ivs, collector's item, vintage, film photography, analog camera, vintage camera, filmstrip\",\n ),\n hit(\n 1290368,\n 1266,\n 1280,\n 'movie-projector-movie-projector-1290368',\n 'movie, projector, movie projector, old movie projector, film, cinema hall, showing, coils, spool, lens, transparent background, iphone wallpaper, movie, movie, movie, movie, movie, projector, projector, projector',\n ),\n hit(\n 6960169,\n 859,\n 1280,\n 'camera-film-camera-still-life-6960169',\n 'camera, film camera, still life',\n ),\n hit(\n 8179268,\n 1011,\n 1280,\n 'woman-portrait-nature-summer-sunny-8179268',\n 'woman, portrait, nature, summer, sunny, grass, beach, flower background, film, photo on film, reeds, greens, vintage, sight, beautiful flowers, bouquet, spikelets, flowers, flower wallpaper, film photography',\n ),\n hit(\n 8718783,\n 852,\n 1280,\n 'girl-student-camera-vietnam-8718783',\n 'girl, student, camera, vietnam, vietnamese, school, photography, film, lens',\n ),\n hit(\n 3601033,\n 853,\n 1280,\n 'horse-portrait-western-film-snaffle-3601033',\n 'horse, portrait, western film, snaffle, brown, animal, nature, horse riding, horse, horse, horse, horse, horse',\n ),\n hit(\n 8179262,\n 1020,\n 1280,\n 'woman-portrait-nature-summer-sunny-8179262',\n 'woman, portrait, nature, summer, sunny, grass, beach, film, flower background, photo on film, reeds, greens, vintage, sight, beautiful flowers, bouquet, spikelets, flowers, flower wallpaper, film photography',\n ),\n hit(\n 3536473,\n 853,\n 1280,\n 'cavalry-people-mammal-portrait-3536473',\n 'cavalry, people, mammal, portrait, horse, arab, palomino, nature, western film, snaffle, beautiful, black',\n ),\n hit(\n 2202242,\n 1067,\n 1280,\n 'kodak-max-film-2202242',\n 'kodak, max, film, kodak, kodak, kodak, kodak, kodak, max, max',\n ),\n hit(\n 3996096,\n 916,\n 1280,\n 'box-camera-film-6x9-film-camera-3996096',\n 'box camera, film, 6x9 film camera, retro, antique, photography, camera, agfa synchro box, art deco, medium format film, 120 film, made in germany, simple, shutter, aperture, filter, tripod, box, analog, emulsion',\n ),\n hit(\n 8179258,\n 1007,\n 1280,\n 'woman-portrait-nature-summer-sunny-8179258',\n 'woman, portrait, nature, summer, sunny, grass, beach, film, flower background, photo on film, reeds, greens, beautiful flowers, vintage, flower wallpaper, sight, bouquet, spikelets, flowers, film photography',\n ),\n hit(\n 7951865,\n 881,\n 1280,\n 'camera-vintage-retro-film-lens-7951865',\n 'camera, vintage, retro, film, lens, old, collector, antique, collection',\n ),\n hit(\n 4495159,\n 853,\n 1280,\n 'cowboy-boy-hooligan-bandit-4495159',\n 'cowboy, boy, hooligan, bandit, wild west, texas, western film, cowboys, cowboy, wild west, wild west, wild west, wild west, wild west, cowboys',\n ),\n hit(\n 3852988,\n 1113,\n 1280,\n 'lubitel-2-vintage-camera-3852988',\n 'lubitel 2, vintage camera, twin lens reflex, tlr, medium format, russian, soviet, shutter, aperture, film, photography, simple, retro, lens, vintage, camera, technology, helios, f2, amateur',\n ),\n hit(\n 7626093,\n 854,\n 1280,\n 'fighter-ninja-japan-film-village-7626093',\n 'fighter, ninja, japan, film village, kyoto, actor, ninja, ninja, ninja, ninja, ninja, japan',\n ),\n hit(\n 4897413,\n 1024,\n 1280,\n 'kodak-kodak-junior-six-20-620-film-4897413',\n 'kodak, kodak junior, six-20, 620, film, film camera, folding, folding camera, antique, vintage, 620 film, shutter, bellows, aperture, meniscus, meniscus lens, photo, photography, classic',\n ),\n hit(\n 8277409,\n 849,\n 1280,\n 'woman-portrait-retro-vintage-8277409',\n 'woman, portrait, retro, flower wallpaper, vintage, autumn, film, beautiful flowers, film photography, flower background, coat, nature, flowers, meadow, glade',\n ),\n hit(\n 5518255,\n 878,\n 1280,\n 'camera-lens-film-light-analogue-5518255',\n 'camera, lens, film, light, analogue, technology, table, body, bokeh, equipment',\n ),\n hit(\n 3916273,\n 853,\n 1280,\n 'gimbal-stabilizer-video-production-3916273',\n 'gimbal, stabilizer, video, production, movie, film, camera, cinema, cinematography, equipment, studio, filmmaking, gimbal, gimbal, gimbal, gimbal, gimbal',\n ),\n hit(\n 932154,\n 853,\n 1280,\n 'film-reel-movie-reel-retro-vintage-932154',\n 'film, reel, movie reel, retro, vintage, strip, cinema, spool, film strip, film-roll, obsolete, 35mm, cinematography, movie, old, roll, antique, brown movie, brown film, brown retro',\n ),\n hit(\n 8277408,\n 849,\n 1280,\n 'woman-portrait-retro-vintage-bw-8277408',\n 'woman, portrait, flower wallpaper, retro, vintage, bw, film, film photography, coat, nature, beautiful flowers, flowers, autumn, meadow, flower background, glade',\n ),\n hit(\n 2447813,\n 853,\n 1280,\n 'film-photography-filmstrip-roll-2447813',\n 'film, photography, filmstrip, roll, negative, celluloid, 35mm, strip, analog, film canister, old, retro, vintage',\n ),\n hit(\n 7171846,\n 853,\n 1280,\n 'photographer-nikon-observer-7171846',\n 'photographer, nikon, observer, documentary film, hobby',\n ),\n hit(\n 3601043,\n 853,\n 1280,\n 'horse-flow-water-bach-to-bathe-3601043',\n 'horse, flow, water, bach, to bathe, brown, animal, snaffle, western film, horse riding, nature, horse, horse, horse, horse, horse, western film, western film',\n ),\n hit(\n 1380748,\n 946,\n 1280,\n 'director-burke-roberts-camera-old-1380748',\n 'director, burke roberts, camera, old, retro, action, movie, gray camera, gray movie, gray retro, director, director, director, director, director',\n ),\n hit(\n 7383454,\n 916,\n 1280,\n 'buffaloes-bisons-bulls-cows-7383454',\n 'buffaloes, bisons, bulls, cows, animals, wildlife, landscape, western film, nature, mammals, cattle',\n ),\n hit(\n 7738997,\n 851,\n 1280,\n 'young-woman-cellophane-model-7738997',\n 'young woman, cellophane, model, portrait, woman, pose, movie, package, plastic, fashion, style, film, photosession',\n ),\n hit(\n 7012728,\n 853,\n 1280,\n 'camera-minolta-film-lens-7012728',\n 'camera, minolta, film, lens, photography',\n ),\n]\n\n/** `wedding` (horizontal, min_width 1600), for the Juniper and Rye home hero; answered 2026-10-16T06:32:36.101Z. */\nexport const WEDDING_WIDE: StockPhoto[] = [\n hit(\n 1837148,\n 1280,\n 853,\n 'bride-couple-groom-hands-1837148',\n 'bride, couple, groom, hands, holding hands, wedding, wedding rings, wedding bands, lovers, husband and wife, bride and groom, love, man, marriage, partners, people, trust, woman, wedding, wedding',\n ),\n hit(\n 3611277,\n 1280,\n 800,\n 'wedding-rings-engagement-rings-3611277',\n 'wedding rings, engagement rings, marriage, jewelry, gold, wedding rings, wedding rings, marriage, marriage, marriage, jewelry, jewelry, gold, gold, gold, gold, gold',\n ),\n hit(\n 2595862,\n 1280,\n 853,\n 'valentines-day-background-wedding-2595862',\n 'valentines day background, wedding, marriage, husband, wife, bride, groom, bridal gown, bridal dress, bridal bouquet, suit, man, woman, couple, lovers, together, love, people, guy, female',\n ),\n hit(\n 5574694,\n 1280,\n 853,\n 'hand-wedding-marriage-couple-love-5574694',\n 'hand, wedding, marriage, couple, love, romance, romantic, celebration, family, togetherness, commitment, diamond, honeymoon, relationship, gold, jewelry, fiance, wedding ring, horizontal, touching',\n ),\n hit(\n 260894,\n 1280,\n 853,\n 'flowers-rings-bouquet-260894',\n 'flowers, rings, flower wallpaper, beautiful flowers, bouquet, wedding bouquet, wedding rings, bridal bouquet, nature, wedding bands, wedding, flower background, marriage, flower arrangement, close up',\n ),\n hit(\n 698501,\n 1280,\n 852,\n 'sunset-wedding-silhouettes-marriage-698501',\n 'sunset, wedding, silhouettes, marriage, newlyweds, bride, groom, nature, holding hands, couple, bridal, sky, clouds, dusk, romantic, love, romance, man, woman, relationship',\n ),\n hit(\n 6388640,\n 1280,\n 853,\n 'bride-groom-wedding-6388640',\n 'bride, groom, wedding, wedding photography, bridal gown, bridal dress, couple, pair, together, love, lovers, newlyweds, bridal, wedding dress, marriage, woman, fashion, dress, man, people',\n ),\n hit(\n 10320741,\n 1280,\n 853,\n 'wedding-bride-groom-beach-love-10320741',\n 'wedding, bride, groom, beach, love, beautiful flowers, romance, kiss, nature, couple, wedding dress, suit, tenderness, happiness, marriage, flower wallpaper, flowers, bouquet, special day, bridal bouquet',\n ),\n hit(\n 4615557,\n 1280,\n 853,\n 'happy-valentines-day-couple-wedding-4615557',\n 'happy valentines day, couple, wedding, marriage, bridal, double, love, people, man, woman, romance, happy, romantic, dress, married, male, big, girl, happiness, celebration',\n ),\n hit(\n 1284225,\n 1280,\n 851,\n 'wedding-rings-marriage-wedding-1284225',\n 'wedding rings, marriage, wedding, open bible, golden rings, couple, love, rings, book, bible, vows, love wallpaper, wedding rings, marriage, marriage, marriage, wedding, wedding, wedding, wedding',\n ),\n hit(\n 8220935,\n 1280,\n 853,\n 'rings-marriage-gold-love-family-8220935',\n 'rings, marriage, gold, love, family, marriage, marriage, marriage, marriage, marriage, gold, love, love, family',\n ),\n hit(\n 1485984,\n 1280,\n 864,\n 'wedding-dress-bride-extravagant-1485984',\n 'wedding dress, bride, extravagant, fancy, luxury, dress, white, wedding, wedding gown, fashion, style, modeling, pose, posing, portrait, wedding dress, wedding dress, wedding dress, bride, bride',\n ),\n hit(\n 10397634,\n 1280,\n 853,\n 'couple-hands-wedding-ring-love-10397634',\n 'couple, hands, wedding, ring, love, wedding rings, vow, delicate, feeling, connection, closeness, romance, skin, ceremony, softness, close, symbol, marriage, holding hands, support',\n ),\n hit(\n 1836315,\n 1280,\n 838,\n 'wedding-couple-marriage-1836315',\n 'wedding, beautiful flowers, couple, marriage, bridal bouquet, wedding ceremony, matrimony, flower wallpaper, husband and wife, bride and groom, bloom, blossom, bouquet, bride, flower background, nature, ceremony, flowers, groom, people',\n ),\n hit(\n 7744547,\n 1280,\n 853,\n 'church-catholic-cathedral-aisle-7744547',\n 'church, catholic, cathedral, aisle, pews, religion, altar, christian, faith, wedding, ceremony, wedding ceremony, couple, marriage, chapel, architecture, church, church, church, church',\n ),\n hit(\n 6825609,\n 1280,\n 853,\n 'bride-groom-wedding-6825609',\n 'bride, groom, wedding, wedding photography, bouquet, bridal gown, bridal dress, couple, pair, together, love, lovers, newlyweds, bridal, wedding dress, marriage, woman, fashion, dress, man',\n ),\n hit(\n 7743478,\n 1280,\n 853,\n 'couple-marriage-wedding-love-heart-7743478',\n 'couple, marriage, nature, wedding, love, heart, lovers, fun, beach',\n ),\n hit(\n 3061485,\n 1280,\n 852,\n 'paper-page-ring-romantic-love-3061485',\n 'paper, page, ring, romantic, love, valentine, heart, book, read, getting married, rings, proposing, ring, ring, ring, ring, ring, love, love, love',\n ),\n hit(\n 5955351,\n 1280,\n 853,\n 'wedding-couple-bouquet-marriage-5955351',\n 'wedding, couple, bouquet, marriage, love, romantic, bride, groom, man, woman, together, relationship, romance, hands, bridal, wedding dress, happiness, closeup, wedding, wedding',\n ),\n hit(\n 6230420,\n 1280,\n 853,\n 'bride-groom-wedding-marriage-6230420',\n 'bride, groom, wedding, marriage, wedding photography, bridal gown, bridal dress, couple, love, lovers, bridal, together, man, wedding dress, woman, people, in love, romantic, romance, relationship',\n ),\n hit(\n 6552057,\n 1280,\n 762,\n 'bride-groom-wedding-6552057',\n 'bride, groom, wedding, wedding photography, bridal gown, bridal dress, couple, pair, together, love, lovers, newlyweds, bridal, wedding dress, marriage, woman, fashion, dress, man, people',\n ),\n hit(\n 8176869,\n 1280,\n 853,\n 'couple-wedding-marriage-love-8176869',\n 'couple, wedding, marriage, love, romance, man, woman, portrait, groom, bride',\n ),\n hit(\n 8176870,\n 1280,\n 853,\n 'couple-wedding-marriage-love-8176870',\n 'couple, wedding, marriage, love, romance, man, woman, portrait, groom, bride',\n ),\n hit(\n 1846114,\n 1280,\n 854,\n 'wedding-aisle-flower-arrangement-1846114',\n 'wedding, aisle, flower arrangement, bloom, flower wallpaper, blossom, bouquet, nature, celebration, chairs, decoration, flora, beautiful flowers, flowers, roses, flower background, event, wedding photography, wedding preparations',\n ),\n hit(\n 1854076,\n 1280,\n 852,\n 'beach-wedding-reception-1854076',\n 'beach, flower wallpaper, wedding, flower background, reception, table setting, centerpieces, flower vases, event, beach wedding, wedding photography, wedding preparations, bunch of flowers, celebration, chairs, decorations, flowers, beautiful flowers, sea, summer',\n ),\n hit(\n 260899,\n 1280,\n 853,\n 'happy-valentines-day-couple-marriage-260899',\n 'happy valentines day, couple, marriage, bench, married couple, bride, groom, sit, sitting, together, relationship, lovers, love, wedding, rest',\n ),\n hit(\n 1183271,\n 1280,\n 853,\n 'wedding-bride-married-ceremony-1183271',\n 'wedding, bride, married, ceremony, romance, couple, romantic, love, wedding dress, event, white, lovers, marriage, beautiful, woman, brown love, brown beauty, brown wedding, brown event, wedding',\n ),\n hit(\n 1355473,\n 1280,\n 850,\n 'bride-wedding-redhead-red-hair-1355473',\n 'bride, wedding, flower wallpaper, redhead, red hair, flower background, floral wreath, hairstyle, nature, beautiful flowers, flowers, marriage, decoration, woman',\n ),\n hit(\n 10119091,\n 1280,\n 853,\n 'classic-bike-old-house-kiss-love-10119091',\n 'classic, bike, old house, kiss, love, couple, romantic, relationship, wedding, wedding ring',\n ),\n hit(\n 1745240,\n 1280,\n 853,\n 'wedding-beach-young-couple-couple-1745240',\n 'wedding, beach, young couple, couple, portrait, lovers, husband and wife, bride and groom, beach wedding, marriage, pair, together, romantic couple, nature, couple portrait, love, romantic, ocean, seashore, shore',\n ),\n hit(\n 1255520,\n 1280,\n 852,\n 'bride-groom-wedding-1255520',\n 'bride, groom, wedding, wedding photography, bridal gown, bridal dress, couple, pair, together, love, lovers, newlyweds, bridal, wedding dress, marriage, woman, fashion, dress, man, people',\n ),\n hit(\n 2162950,\n 1280,\n 853,\n 'couple-wedding-love-back-lovers-2162950',\n 'couple, wedding, love, back, lovers, relationship, newlyweds, marriage, bride, groom, sit, sitting, together, man, woman, dress, female, romantic, pier, jetty',\n ),\n hit(\n 4066022,\n 1280,\n 853,\n 'bride-groom-wedding-4066022',\n 'bride, groom, wedding, wedding photography, bridal gown, bridal dress, couple, pair, together, love, lovers, newlyweds, bridal, wedding dress, marriage, woman, fashion, dress, man, people',\n ),\n hit(\n 458119,\n 1280,\n 853,\n 'newlyweds-bride-groom-wedding-458119',\n 'newlyweds, bride, groom, wedding, bride and groom, husband and wife, wedding photography, wedding day, wedding dress, wedding details, couple, love, man, woman, marriage, happy couple, happy, happiness, together, bridal',\n ),\n hit(\n 443600,\n 1280,\n 853,\n 'couple-wedding-park-newlyweds-443600',\n 'couple, wedding, park, newlyweds, wedding day, husband, wife, man, woman, bride, groom, romantic, love, happy, relationship, outdoors, wedding photography, portrait, couple, wedding',\n ),\n hit(\n 1854074,\n 1280,\n 852,\n 'wedding-reception-table-banquet-1854074',\n 'wedding, reception, table, banquet, centerpieces, flower vases, table setting, bouquets, nature, celebration, flower wallpaper, event, decorations, elegant, flower background, flower arrangements, flowers, roses, beautiful flowers, table set-up',\n ),\n hit(\n 8628796,\n 1280,\n 853,\n 'couple-lovers-wedding-marriage-8628796',\n 'couple, lovers, wedding, marriage, bridal',\n ),\n hit(\n 529607,\n 1280,\n 852,\n 'heart-wedding-marriage-529607',\n 'heart, wedding, 4k wallpaper, hd wallpaper, wallpaper hd, free wallpaper, free background, beautiful wallpaper, marriage, mac wallpaper, full hd wallpaper, wallpaper 4k, valentines day, hands, laptop wallpaper, romantic, 4k wallpaper 1920x1080, marry, desktop backgrounds, windows wallpaper',\n ),\n hit(\n 4226896,\n 1280,\n 853,\n 'marriage-couple-wedding-love-4226896',\n 'marriage, couple, wedding, love, family, romantic, romance, relationship, happy, together, grooms, husband, wife, wedding, wedding, wedding, wedding, wedding, family',\n ),\n hit(\n 1868868,\n 1280,\n 853,\n 'wedding-ceremony-champagne-glasses-1868868',\n 'wedding, ceremony, champagne, glasses, newlyweds, marriage, bride and groom, champagne glasses, toast, cheers, celebrate, celebration, wedding ceremony, elegant, bride, formal, groom, love, man, people',\n ),\n]\n"],"names":["hit","id","width","height","slug","tags","provider","String","pageUrl","photographer","split","downloadUrl","TWO_ATTORNEY_LAW_FIRM_TALL","TWO_ATTORNEY_LAW_FIRM_SQUARE","GYM_STRENGTH_SESSION","STRENGTH","INTRO_BARBELL_BASICS","BASIC","SMALL_GROUP_STRENGTH_CLASS","FILM","WEDDING_WIDE"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAID;;;;;;;;CAQC,GAED,MAAMA,MAAM,CACVC,IACAC,OACAC,QACAC,MACAC,OAEC,CAAA;QACCC,UAAU;QACVL,IAAIM,OAAON;QACXC;QACAC;QACAK,SAAS,CAAC,2BAA2B,EAAEJ,KAAK,CAAC,CAAC;QAC9CK,cAAc;QACdJ,MAAMA,KAAKK,KAAK,CAAC;QACjBC,aAAa,CAAC,yBAAyB,EAAEV,GAAG,SAAS,CAAC;IACxD,CAAA;AAEF,6IAA6I,GAC7I,OAAO,MAAMW,6BAA2C;IACtDZ,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,4BACA;IAEFA,IACE,SACA,KACA,MACA,qCACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,UACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,MACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,kCACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,+CACA;IAEFA,IACE,SACA,KACA,MACA,+CACA;IAEFA,IACE,SACA,KACA,MACA,wCACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,yCACA;IAEFA,IACE,SACA,KACA,MACA,iCACA;IAEFA,IACE,SACA,KACA,MACA,2CACA;IAEFA,IACE,SACA,KACA,MACA,sCACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,yCACA;IAEFA,IACE,SACA,MACA,MACA,2CACA;IAEFA,IACE,OACA,MACA,MACA,wCACA;IAEFA,IACE,QACA,KACA,MACA,uCACA;IAEFA,IACE,QACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,MACA,MACA,6CACA;IAEFA,IACE,OACA,MACA,MACA,gCACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,wCACA;IAEFA,IACE,SACA,KACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,QACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,yCACA;CAEH,CAAA;AAED,wIAAwI,GACxI,OAAO,MAAMa,+BAA6C;IACxDb,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,QACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,KACA,MACA,4BACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,KACA,MACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;CAEH,CAAA;AAED,+IAA+I,GAC/I,OAAO,MAAMc,uBAAqC;IAChDd,IACE,QACA,MACA,KACA,uCACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,QACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,mCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,QACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,mCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,QACA,MACA,KACA,sCACA;CAEH,CAAA;AAED,qHAAqH,GACrH,OAAO,MAAMe,WAAyB;IACpCf,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,QACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,MACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,QACA,MACA,KACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,QACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,QACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,yCACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,QACA,MACA,KACA,6CACA;CAEH,CAAA;AAED,6IAA6I,GAC7I,OAAO,MAAMgB,uBAAqC;IAChDhB,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,QACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,8BACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,OACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,mCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,QACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,OACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,mCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,QACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;CAEH,CAAA;AAED,0HAA0H,GAC1H,OAAO,MAAMiB,QAAsB;IACjCjB,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,8BACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,QACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,MACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,QACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,kCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;CAEH,CAAA;AAED,sJAAsJ,GACtJ,OAAO,MAAMkB,6BAA2C;IACtDlB,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,MACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,iCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,MACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,MACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,QACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,QACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,UACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,QACA,MACA,KACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,QACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,qCACA;IAEFA,IACE,SACA,MACA,KACA,uCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,sCACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,+CACA;CAEH,CAAA;AAED,oHAAoH,GACpH,OAAO,MAAMmB,OAAqB;IAChCnB,IACE,SACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,KACA,MACA,2CACA;IAEFA,IACE,SACA,KACA,MACA,8BACA;IAEFA,IACE,SACA,KACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,yCACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,gDACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,gDACA;IAEFA,IACE,SACA,MACA,MACA,2CACA;IAEFA,IACE,SACA,KACA,MACA,yCACA;IAEFA,IACE,SACA,MACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,uCACA;IAEFA,IACE,SACA,KACA,MACA,+CACA;IAEFA,IACE,SACA,MACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,MACA,MACA,0BACA;IAEFA,IACE,SACA,KACA,MACA,2CACA;IAEFA,IACE,SACA,MACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,KACA,MACA,sCACA;IAEFA,IACE,SACA,MACA,MACA,oCACA;IAEFA,IACE,SACA,KACA,MACA,4CACA;IAEFA,IACE,SACA,MACA,MACA,8CACA;IAEFA,IACE,SACA,KACA,MACA,wCACA;IAEFA,IACE,SACA,KACA,MACA,2CACA;IAEFA,IACE,SACA,KACA,MACA,8CACA;IAEFA,IACE,QACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,2CACA;IAEFA,IACE,SACA,KACA,MACA,2CACA;IAEFA,IACE,SACA,KACA,MACA,uCACA;IAEFA,IACE,SACA,KACA,MACA,0CACA;IAEFA,IACE,SACA,KACA,MACA,6CACA;IAEFA,IACE,SACA,KACA,MACA,uCACA;IAEFA,IACE,SACA,KACA,MACA,wCACA;IAEFA,IACE,SACA,KACA,MACA,oCACA;CAEH,CAAA;AAED,kHAAkH,GAClH,OAAO,MAAMoB,eAA6B;IACxCpB,IACE,SACA,MACA,KACA,oCACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,QACA,MACA,KACA,gCACA;IAEFA,IACE,QACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,+BACA;IAEFA,IACE,UACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,UACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,mCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,+BACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;IAEFA,IACE,SACA,MACA,KACA,yCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,+BACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,4CACA;IAEFA,IACE,SACA,MACA,KACA,mCACA;IAEFA,IACE,QACA,MACA,KACA,+CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,UACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,6CACA;IAEFA,IACE,SACA,MACA,KACA,+BACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,+BACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,QACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,2CACA;IAEFA,IACE,SACA,MACA,KACA,0CACA;IAEFA,IACE,QACA,MACA,KACA,iCACA;IAEFA,IACE,SACA,MACA,KACA,wCACA;IAEFA,IACE,SACA,MACA,KACA,8CACA;CAEH,CAAA"}
@@ -27,12 +27,18 @@ import { type ElementMotionCharacter } from '@aglyn/aglyn/app-utils/element-moti
27
27
  * are drawn apart by their seeds, the way their looks are.
28
28
  *
29
29
  * The moods, by the kinds `ai-site-kinds.ts` lists:
30
- * - CALM — practices, health, reading: a fade, on a gentle curve, slower.
30
+ * - CALM — practices, health, reading: fades and rises taken in turn, on a
31
+ * gentle curve, slower.
31
32
  * - BOLD — studios, fitness, music, events: a rise with overshoot, and
32
33
  * pictures that zoom in.
33
34
  * - GALLERY — portfolios and photography: pictures zoom in, one after
34
35
  * another; the words fade or rise.
35
- * - STANDARD — everything else: a smooth rise.
36
+ * - STANDARD — everything else: rises and fades taken in turn.
37
+ *
38
+ * In every mood a page's later sections take the mood's presets in turn,
39
+ * starting where the seed says, and a column of words beside a picture comes
40
+ * in from its own side (Zach 2026-10-16: "some slide in ones would be cool
41
+ * too"). A page is never one move repeated.
36
42
  *
37
43
  * Every number stays inside the vocabulary's caps, and inside 400–800 ms for
38
44
  * a duration and 60–120 ms between staggered items: slower reads as a site
@@ -40,7 +46,7 @@ import { type ElementMotionCharacter } from '@aglyn/aglyn/app-utils/element-moti
40
46
  */
41
47
  export type AiSiteMotionMood = 'calm' | 'bold' | 'gallery' | 'standard';
42
48
  interface AiSiteMotionRange {
43
- /** The word presets the seed picks among. */
49
+ /** The word presets: the seed picks the first, and later sections take them in turn from there. */
44
50
  presets: readonly AnimationPreset[];
45
51
  /** The picture presets the seed picks among. */
46
52
  media: readonly AnimationPreset[];
@@ -18,7 +18,8 @@ import { applyElementMotion } from "@aglyn/aglyn/app-utils/element-motion";
18
18
  /** Each mood's range. The seed picks one character from it. */ export const AI_SITE_MOTION_MOODS = {
19
19
  calm: {
20
20
  presets: [
21
- 'fade'
21
+ 'fade',
22
+ 'slide-up'
22
23
  ],
23
24
  media: [
24
25
  'fade'
@@ -89,7 +90,8 @@ import { applyElementMotion } from "@aglyn/aglyn/app-utils/element-motion";
89
90
  },
90
91
  standard: {
91
92
  presets: [
92
- 'slide-up'
93
+ 'slide-up',
94
+ 'fade'
93
95
  ],
94
96
  media: [
95
97
  'slide-up',
@@ -146,8 +148,12 @@ const pick = (next, list)=>list[Math.floor(next() * list.length) % list.length];
146
148
  /** The motion character of a site: its kind's mood, turned by its seed. */ export function aiSiteMotion(input) {
147
149
  const range = AI_SITE_MOTION_MOODS[aiSiteMotionMood(input.kind)];
148
150
  const next = random(input.seed >>> 0);
151
+ const first = Math.floor(next() * range.presets.length) % range.presets.length;
152
+ const sectionPresets = range.presets.map((_, index)=>range.presets[(first + index) % range.presets.length]);
149
153
  return {
150
- preset: pick(next, range.presets),
154
+ preset: sectionPresets[0],
155
+ sectionPresets,
156
+ sides: true,
151
157
  mediaPreset: pick(next, range.media),
152
158
  ease: pick(next, range.eases),
153
159
  durationMs: within(next, range.duration, 10),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../libs/plugins/ai/src/lib/layout-language/ai-layout-motion.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AnimationEase, AnimationPreset } from '@aglyn/aglyn/app-utils/element-animation'\nimport {\n applyElementMotion,\n type ElementMotionCharacter,\n} from '@aglyn/aglyn/app-utils/element-motion'\n\n/**\n * How an AI-built site moves (AGL-3838): a small motion CHARACTER per kind of\n * site, turned by the site's design seed, which the platform's entrance pass\n * (`element-motion.ts`) writes onto every page the AI builds.\n *\n * Decided in code, never by the model: no prompt names a preset, no answer\n * carries one, and no credit is spent on it. The same site — same kind, same\n * seed — always moves the same way on every page, and two sites of one kind\n * are drawn apart by their seeds, the way their looks are.\n *\n * The moods, by the kinds `ai-site-kinds.ts` lists:\n * - CALM — practices, health, reading: a fade, on a gentle curve, slower.\n * - BOLD — studios, fitness, music, events: a rise with overshoot, and\n * pictures that zoom in.\n * - GALLERY — portfolios and photography: pictures zoom in, one after\n * another; the words fade or rise.\n * - STANDARD — everything else: a smooth rise.\n *\n * Every number stays inside the vocabulary's caps, and inside 400–800 ms for\n * a duration and 60–120 ms between staggered items: slower reads as a site\n * that is loading, faster as one that is twitching.\n */\n\nexport type AiSiteMotionMood = 'calm' | 'bold' | 'gallery' | 'standard'\n\ninterface AiSiteMotionRange {\n /** The word presets the seed picks among. */\n presets: readonly AnimationPreset[]\n /** The picture presets the seed picks among. */\n media: readonly AnimationPreset[]\n eases: readonly AnimationEase[]\n /** Inclusive millisecond ranges. */\n duration: readonly [number, number]\n stagger: readonly [number, number]\n hero: readonly [number, number]\n}\n\n/** Each mood's range. The seed picks one character from it. */\nexport const AI_SITE_MOTION_MOODS: Readonly<Record<AiSiteMotionMood, AiSiteMotionRange>> = {\n calm: {\n presets: ['fade'],\n media: ['fade'],\n eases: ['gentle-end', 'gentle-both'],\n duration: [650, 800],\n stagger: [100, 120],\n hero: [130, 160],\n },\n bold: {\n presets: ['slide-up'],\n media: ['zoom-in'],\n eases: ['overshoot'],\n duration: [450, 600],\n stagger: [60, 80],\n hero: [80, 100],\n },\n gallery: {\n presets: ['fade', 'slide-up'],\n media: ['zoom-in'],\n eases: ['smooth'],\n duration: [600, 750],\n stagger: [80, 110],\n hero: [110, 130],\n },\n standard: {\n presets: ['slide-up'],\n media: ['slide-up', 'fade'],\n eases: ['smooth'],\n duration: [500, 700],\n stagger: [70, 100],\n hero: [100, 130],\n },\n}\n\n/** Each site kind's mood; a kind not listed is standard. */\nexport const AI_SITE_MOTION_KINDS: Readonly<Record<string, AiSiteMotionMood>> = {\n professional: 'calm',\n wellness: 'calm',\n yoga: 'calm',\n beauty: 'calm',\n blog: 'calm',\n studio: 'bold',\n fitness: 'bold',\n music: 'bold',\n events: 'bold',\n portfolio: 'gallery',\n photography: 'gallery',\n}\n\n/** The mood a kind of site moves in. */\nexport function aiSiteMotionMood(kind: string | null | undefined): AiSiteMotionMood {\n return (kind && AI_SITE_MOTION_KINDS[kind]) || 'standard'\n}\n\n/**\n * A small deterministic generator over a seed (mulberry32), mixed with its\n * own constant so a site's motion does not move in step with its layout.\n */\nfunction random(seed: number): () => number {\n let state = (seed ^ 0x6a09e667) >>> 0\n return () => {\n state = (state + 0x6d2b79f5) >>> 0\n let t = state\n t = Math.imul(t ^ (t >>> 15), t | 1)\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61)\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296\n }\n}\n\nconst pick = <T>(next: () => number, list: readonly T[]): T => list[Math.floor(next() * list.length) % list.length] as T\n/** A value in an inclusive range, on a step: 10 ms for a duration, 5 ms for a gap. */\nconst within = (next: () => number, [low, high]: readonly [number, number], step: number): number =>\n low + Math.floor(next() * (Math.floor((high - low) / step) + 1)) * step\n\n/** The motion character of a site: its kind's mood, turned by its seed. */\nexport function aiSiteMotion(input: { kind?: string | null; seed: number }): ElementMotionCharacter {\n const range = AI_SITE_MOTION_MOODS[aiSiteMotionMood(input.kind)]\n const next = random(input.seed >>> 0)\n return {\n preset: pick(next, range.presets),\n mediaPreset: pick(next, range.media),\n ease: pick(next, range.eases),\n durationMs: within(next, range.duration, 10),\n staggerStepMs: within(next, range.stagger, 5),\n heroStepMs: within(next, range.hero, 5),\n }\n}\n\n/**\n * A page the AI built, with its site's entrance motion written onto it —\n * or the same node map, when there was nothing left to move.\n */\nexport function aiWithSiteMotion<T extends Record<string, any>>(\n nodes: T,\n site: { kind?: string | null; seed: number },\n page: { rootId?: string; sectionIds?: readonly string[] } = {},\n): T {\n return applyElementMotion(nodes, {\n character: aiSiteMotion(site),\n ...(page.rootId ? { rootId: page.rootId } : {}),\n ...(page.sectionIds?.length ? { sectionIds: page.sectionIds } : {}),\n })\n}\n"],"names":["applyElementMotion","AI_SITE_MOTION_MOODS","calm","presets","media","eases","duration","stagger","hero","bold","gallery","standard","AI_SITE_MOTION_KINDS","professional","wellness","yoga","beauty","blog","studio","fitness","music","events","portfolio","photography","aiSiteMotionMood","kind","random","seed","state","t","Math","imul","pick","next","list","floor","length","within","low","high","step","aiSiteMotion","input","range","preset","mediaPreset","ease","durationMs","staggerStepMs","heroStepMs","aiWithSiteMotion","nodes","site","page","character","rootId","sectionIds"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC;AAGD,SACEA,kBAAkB,QAEb,wCAAuC;AAuC9C,6DAA6D,GAC7D,OAAO,MAAMC,uBAA8E;IACzFC,MAAM;QACJC,SAAS;YAAC;SAAO;QACjBC,OAAO;YAAC;SAAO;QACfC,OAAO;YAAC;YAAc;SAAc;QACpCC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAK;SAAI;QACnBC,MAAM;YAAC;YAAK;SAAI;IAClB;IACAC,MAAM;QACJN,SAAS;YAAC;SAAW;QACrBC,OAAO;YAAC;SAAU;QAClBC,OAAO;YAAC;SAAY;QACpBC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAI;SAAG;QACjBC,MAAM;YAAC;YAAI;SAAI;IACjB;IACAE,SAAS;QACPP,SAAS;YAAC;YAAQ;SAAW;QAC7BC,OAAO;YAAC;SAAU;QAClBC,OAAO;YAAC;SAAS;QACjBC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAI;SAAI;QAClBC,MAAM;YAAC;YAAK;SAAI;IAClB;IACAG,UAAU;QACRR,SAAS;YAAC;SAAW;QACrBC,OAAO;YAAC;YAAY;SAAO;QAC3BC,OAAO;YAAC;SAAS;QACjBC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAI;SAAI;QAClBC,MAAM;YAAC;YAAK;SAAI;IAClB;AACF,EAAC;AAED,0DAA0D,GAC1D,OAAO,MAAMI,uBAAmE;IAC9EC,cAAc;IACdC,UAAU;IACVC,MAAM;IACNC,QAAQ;IACRC,MAAM;IACNC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC,aAAa;AACf,EAAC;AAED,sCAAsC,GACtC,OAAO,SAASC,iBAAiBC,IAA+B;IAC9D,OAAO,AAACA,QAAQb,oBAAoB,CAACa,KAAK,IAAK;AACjD;AAEA;;;CAGC,GACD,SAASC,OAAOC,IAAY;IAC1B,IAAIC,QAAQ,AAACD,CAAAA,OAAO,UAAS,MAAO;IACpC,OAAO;QACLC,QAAQ,AAACA,QAAQ,eAAgB;QACjC,IAAIC,IAAID;QACRC,IAAIC,KAAKC,IAAI,CAACF,IAAKA,MAAM,IAAKA,IAAI;QAClCA,KAAKA,IAAIC,KAAKC,IAAI,CAACF,IAAKA,MAAM,GAAIA,IAAI;QACtC,OAAO,AAAC,CAAA,AAACA,CAAAA,IAAKA,MAAM,EAAE,MAAO,CAAA,IAAK;IACpC;AACF;AAEA,MAAMG,OAAO,CAAIC,MAAoBC,OAA0BA,IAAI,CAACJ,KAAKK,KAAK,CAACF,SAASC,KAAKE,MAAM,IAAIF,KAAKE,MAAM,CAAC;AACnH,oFAAoF,GACpF,MAAMC,SAAS,CAACJ,MAAoB,CAACK,KAAKC,KAAgC,EAAEC,OAC1EF,MAAMR,KAAKK,KAAK,CAACF,SAAUH,CAAAA,KAAKK,KAAK,CAAC,AAACI,CAAAA,OAAOD,GAAE,IAAKE,QAAQ,CAAA,KAAMA;AAErE,yEAAyE,GACzE,OAAO,SAASC,aAAaC,KAA6C;IACxE,MAAMC,QAAQ1C,oBAAoB,CAACuB,iBAAiBkB,MAAMjB,IAAI,EAAE;IAChE,MAAMQ,OAAOP,OAAOgB,MAAMf,IAAI,KAAK;IACnC,OAAO;QACLiB,QAAQZ,KAAKC,MAAMU,MAAMxC,OAAO;QAChC0C,aAAab,KAAKC,MAAMU,MAAMvC,KAAK;QACnC0C,MAAMd,KAAKC,MAAMU,MAAMtC,KAAK;QAC5B0C,YAAYV,OAAOJ,MAAMU,MAAMrC,QAAQ,EAAE;QACzC0C,eAAeX,OAAOJ,MAAMU,MAAMpC,OAAO,EAAE;QAC3C0C,YAAYZ,OAAOJ,MAAMU,MAAMnC,IAAI,EAAE;IACvC;AACF;AAEA;;;CAGC,GACD,OAAO,SAAS0C,iBACdC,KAAQ,EACRC,IAA4C,EAC5CC,OAA4D,CAAC,CAAC;QAKxDA;IAHN,OAAOrD,mBAAmBmD,OAAO;QAC/BG,WAAWb,aAAaW;OACpBC,KAAKE,MAAM,GAAG;QAAEA,QAAQF,KAAKE,MAAM;IAAC,IAAI,CAAC,GACzCF,EAAAA,mBAAAA,KAAKG,UAAU,qBAAfH,iBAAiBjB,MAAM,IAAG;QAAEoB,YAAYH,KAAKG,UAAU;IAAC,IAAI,CAAC;AAErE"}
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/ai/src/lib/layout-language/ai-layout-motion.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AnimationEase, AnimationPreset } from '@aglyn/aglyn/app-utils/element-animation'\nimport {\n applyElementMotion,\n type ElementMotionCharacter,\n} from '@aglyn/aglyn/app-utils/element-motion'\n\n/**\n * How an AI-built site moves (AGL-3838): a small motion CHARACTER per kind of\n * site, turned by the site's design seed, which the platform's entrance pass\n * (`element-motion.ts`) writes onto every page the AI builds.\n *\n * Decided in code, never by the model: no prompt names a preset, no answer\n * carries one, and no credit is spent on it. The same site — same kind, same\n * seed — always moves the same way on every page, and two sites of one kind\n * are drawn apart by their seeds, the way their looks are.\n *\n * The moods, by the kinds `ai-site-kinds.ts` lists:\n * - CALM — practices, health, reading: fades and rises taken in turn, on a\n * gentle curve, slower.\n * - BOLD — studios, fitness, music, events: a rise with overshoot, and\n * pictures that zoom in.\n * - GALLERY — portfolios and photography: pictures zoom in, one after\n * another; the words fade or rise.\n * - STANDARD — everything else: rises and fades taken in turn.\n *\n * In every mood a page's later sections take the mood's presets in turn,\n * starting where the seed says, and a column of words beside a picture comes\n * in from its own side (Zach 2026-10-16: \"some slide in ones would be cool\n * too\"). A page is never one move repeated.\n *\n * Every number stays inside the vocabulary's caps, and inside 400–800 ms for\n * a duration and 60–120 ms between staggered items: slower reads as a site\n * that is loading, faster as one that is twitching.\n */\n\nexport type AiSiteMotionMood = 'calm' | 'bold' | 'gallery' | 'standard'\n\ninterface AiSiteMotionRange {\n /** The word presets: the seed picks the first, and later sections take them in turn from there. */\n presets: readonly AnimationPreset[]\n /** The picture presets the seed picks among. */\n media: readonly AnimationPreset[]\n eases: readonly AnimationEase[]\n /** Inclusive millisecond ranges. */\n duration: readonly [number, number]\n stagger: readonly [number, number]\n hero: readonly [number, number]\n}\n\n/** Each mood's range. The seed picks one character from it. */\nexport const AI_SITE_MOTION_MOODS: Readonly<Record<AiSiteMotionMood, AiSiteMotionRange>> = {\n calm: {\n presets: ['fade', 'slide-up'],\n media: ['fade'],\n eases: ['gentle-end', 'gentle-both'],\n duration: [650, 800],\n stagger: [100, 120],\n hero: [130, 160],\n },\n bold: {\n presets: ['slide-up'],\n media: ['zoom-in'],\n eases: ['overshoot'],\n duration: [450, 600],\n stagger: [60, 80],\n hero: [80, 100],\n },\n gallery: {\n presets: ['fade', 'slide-up'],\n media: ['zoom-in'],\n eases: ['smooth'],\n duration: [600, 750],\n stagger: [80, 110],\n hero: [110, 130],\n },\n standard: {\n presets: ['slide-up', 'fade'],\n media: ['slide-up', 'fade'],\n eases: ['smooth'],\n duration: [500, 700],\n stagger: [70, 100],\n hero: [100, 130],\n },\n}\n\n/** Each site kind's mood; a kind not listed is standard. */\nexport const AI_SITE_MOTION_KINDS: Readonly<Record<string, AiSiteMotionMood>> = {\n professional: 'calm',\n wellness: 'calm',\n yoga: 'calm',\n beauty: 'calm',\n blog: 'calm',\n studio: 'bold',\n fitness: 'bold',\n music: 'bold',\n events: 'bold',\n portfolio: 'gallery',\n photography: 'gallery',\n}\n\n/** The mood a kind of site moves in. */\nexport function aiSiteMotionMood(kind: string | null | undefined): AiSiteMotionMood {\n return (kind && AI_SITE_MOTION_KINDS[kind]) || 'standard'\n}\n\n/**\n * A small deterministic generator over a seed (mulberry32), mixed with its\n * own constant so a site's motion does not move in step with its layout.\n */\nfunction random(seed: number): () => number {\n let state = (seed ^ 0x6a09e667) >>> 0\n return () => {\n state = (state + 0x6d2b79f5) >>> 0\n let t = state\n t = Math.imul(t ^ (t >>> 15), t | 1)\n t ^= t + Math.imul(t ^ (t >>> 7), t | 61)\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296\n }\n}\n\nconst pick = <T>(next: () => number, list: readonly T[]): T => list[Math.floor(next() * list.length) % list.length] as T\n/** A value in an inclusive range, on a step: 10 ms for a duration, 5 ms for a gap. */\nconst within = (next: () => number, [low, high]: readonly [number, number], step: number): number =>\n low + Math.floor(next() * (Math.floor((high - low) / step) + 1)) * step\n\n/** The motion character of a site: its kind's mood, turned by its seed. */\nexport function aiSiteMotion(input: { kind?: string | null; seed: number }): ElementMotionCharacter {\n const range = AI_SITE_MOTION_MOODS[aiSiteMotionMood(input.kind)]\n const next = random(input.seed >>> 0)\n const first = Math.floor(next() * range.presets.length) % range.presets.length\n const sectionPresets = range.presets.map((_, index) => range.presets[(first + index) % range.presets.length])\n return {\n preset: sectionPresets[0],\n sectionPresets,\n sides: true,\n mediaPreset: pick(next, range.media),\n ease: pick(next, range.eases),\n durationMs: within(next, range.duration, 10),\n staggerStepMs: within(next, range.stagger, 5),\n heroStepMs: within(next, range.hero, 5),\n }\n}\n\n/**\n * A page the AI built, with its site's entrance motion written onto it —\n * or the same node map, when there was nothing left to move.\n */\nexport function aiWithSiteMotion<T extends Record<string, any>>(\n nodes: T,\n site: { kind?: string | null; seed: number },\n page: { rootId?: string; sectionIds?: readonly string[] } = {},\n): T {\n return applyElementMotion(nodes, {\n character: aiSiteMotion(site),\n ...(page.rootId ? { rootId: page.rootId } : {}),\n ...(page.sectionIds?.length ? { sectionIds: page.sectionIds } : {}),\n })\n}\n"],"names":["applyElementMotion","AI_SITE_MOTION_MOODS","calm","presets","media","eases","duration","stagger","hero","bold","gallery","standard","AI_SITE_MOTION_KINDS","professional","wellness","yoga","beauty","blog","studio","fitness","music","events","portfolio","photography","aiSiteMotionMood","kind","random","seed","state","t","Math","imul","pick","next","list","floor","length","within","low","high","step","aiSiteMotion","input","range","first","sectionPresets","map","_","index","preset","sides","mediaPreset","ease","durationMs","staggerStepMs","heroStepMs","aiWithSiteMotion","nodes","site","page","character","rootId","sectionIds"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC;AAGD,SACEA,kBAAkB,QAEb,wCAAuC;AA6C9C,6DAA6D,GAC7D,OAAO,MAAMC,uBAA8E;IACzFC,MAAM;QACJC,SAAS;YAAC;YAAQ;SAAW;QAC7BC,OAAO;YAAC;SAAO;QACfC,OAAO;YAAC;YAAc;SAAc;QACpCC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAK;SAAI;QACnBC,MAAM;YAAC;YAAK;SAAI;IAClB;IACAC,MAAM;QACJN,SAAS;YAAC;SAAW;QACrBC,OAAO;YAAC;SAAU;QAClBC,OAAO;YAAC;SAAY;QACpBC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAI;SAAG;QACjBC,MAAM;YAAC;YAAI;SAAI;IACjB;IACAE,SAAS;QACPP,SAAS;YAAC;YAAQ;SAAW;QAC7BC,OAAO;YAAC;SAAU;QAClBC,OAAO;YAAC;SAAS;QACjBC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAI;SAAI;QAClBC,MAAM;YAAC;YAAK;SAAI;IAClB;IACAG,UAAU;QACRR,SAAS;YAAC;YAAY;SAAO;QAC7BC,OAAO;YAAC;YAAY;SAAO;QAC3BC,OAAO;YAAC;SAAS;QACjBC,UAAU;YAAC;YAAK;SAAI;QACpBC,SAAS;YAAC;YAAI;SAAI;QAClBC,MAAM;YAAC;YAAK;SAAI;IAClB;AACF,EAAC;AAED,0DAA0D,GAC1D,OAAO,MAAMI,uBAAmE;IAC9EC,cAAc;IACdC,UAAU;IACVC,MAAM;IACNC,QAAQ;IACRC,MAAM;IACNC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC,aAAa;AACf,EAAC;AAED,sCAAsC,GACtC,OAAO,SAASC,iBAAiBC,IAA+B;IAC9D,OAAO,AAACA,QAAQb,oBAAoB,CAACa,KAAK,IAAK;AACjD;AAEA;;;CAGC,GACD,SAASC,OAAOC,IAAY;IAC1B,IAAIC,QAAQ,AAACD,CAAAA,OAAO,UAAS,MAAO;IACpC,OAAO;QACLC,QAAQ,AAACA,QAAQ,eAAgB;QACjC,IAAIC,IAAID;QACRC,IAAIC,KAAKC,IAAI,CAACF,IAAKA,MAAM,IAAKA,IAAI;QAClCA,KAAKA,IAAIC,KAAKC,IAAI,CAACF,IAAKA,MAAM,GAAIA,IAAI;QACtC,OAAO,AAAC,CAAA,AAACA,CAAAA,IAAKA,MAAM,EAAE,MAAO,CAAA,IAAK;IACpC;AACF;AAEA,MAAMG,OAAO,CAAIC,MAAoBC,OAA0BA,IAAI,CAACJ,KAAKK,KAAK,CAACF,SAASC,KAAKE,MAAM,IAAIF,KAAKE,MAAM,CAAC;AACnH,oFAAoF,GACpF,MAAMC,SAAS,CAACJ,MAAoB,CAACK,KAAKC,KAAgC,EAAEC,OAC1EF,MAAMR,KAAKK,KAAK,CAACF,SAAUH,CAAAA,KAAKK,KAAK,CAAC,AAACI,CAAAA,OAAOD,GAAE,IAAKE,QAAQ,CAAA,KAAMA;AAErE,yEAAyE,GACzE,OAAO,SAASC,aAAaC,KAA6C;IACxE,MAAMC,QAAQ1C,oBAAoB,CAACuB,iBAAiBkB,MAAMjB,IAAI,EAAE;IAChE,MAAMQ,OAAOP,OAAOgB,MAAMf,IAAI,KAAK;IACnC,MAAMiB,QAAQd,KAAKK,KAAK,CAACF,SAASU,MAAMxC,OAAO,CAACiC,MAAM,IAAIO,MAAMxC,OAAO,CAACiC,MAAM;IAC9E,MAAMS,iBAAiBF,MAAMxC,OAAO,CAAC2C,GAAG,CAAC,CAACC,GAAGC,QAAUL,MAAMxC,OAAO,CAAC,AAACyC,CAAAA,QAAQI,KAAI,IAAKL,MAAMxC,OAAO,CAACiC,MAAM,CAAC;IAC5G,OAAO;QACLa,QAAQJ,cAAc,CAAC,EAAE;QACzBA;QACAK,OAAO;QACPC,aAAanB,KAAKC,MAAMU,MAAMvC,KAAK;QACnCgD,MAAMpB,KAAKC,MAAMU,MAAMtC,KAAK;QAC5BgD,YAAYhB,OAAOJ,MAAMU,MAAMrC,QAAQ,EAAE;QACzCgD,eAAejB,OAAOJ,MAAMU,MAAMpC,OAAO,EAAE;QAC3CgD,YAAYlB,OAAOJ,MAAMU,MAAMnC,IAAI,EAAE;IACvC;AACF;AAEA;;;CAGC,GACD,OAAO,SAASgD,iBACdC,KAAQ,EACRC,IAA4C,EAC5CC,OAA4D,CAAC,CAAC;QAKxDA;IAHN,OAAO3D,mBAAmByD,OAAO;QAC/BG,WAAWnB,aAAaiB;OACpBC,KAAKE,MAAM,GAAG;QAAEA,QAAQF,KAAKE,MAAM;IAAC,IAAI,CAAC,GACzCF,EAAAA,mBAAAA,KAAKG,UAAU,qBAAfH,iBAAiBvB,MAAM,IAAG;QAAE0B,YAAYH,KAAKG,UAAU;IAAC,IAAI,CAAC;AAErE"}
@@ -48,7 +48,9 @@ import type { NodesMap } from '@aglyn/aglyn/types/nodes';
48
48
  * A slot keeps the alt text the model wrote only when it describes the photo
49
49
  * placed: a stock photo that is not what it says is described by what it is
50
50
  * (`aiStockPhotoAlt`), and a starter photo always by its own words, since
51
- * the model never wrote for it (AGL-3831).
51
+ * the model never wrote for it (AGL-3831). A stand-in the compiler drew where
52
+ * the model described no picture is decorative while empty; the photo placed
53
+ * there is described by its own words and is no longer decorative (AGL-3856).
52
54
  */
53
55
  /** What a picture slot is for, read from where it sits and what it says. */
54
56
  export type AiLayoutPictureRole = 'hero' | 'about' | 'gallery';
@@ -74,6 +76,13 @@ export interface AiLayoutPictureSlot {
74
76
  product?: {
75
77
  subjects: readonly string[];
76
78
  };
79
+ /**
80
+ * A stand-in the compiler drew where the model described no picture
81
+ * (AGL-3856): its words are what a search looks for, never what a photo
82
+ * shows, so a photo placed there is described by its own, and is no longer
83
+ * decorative once it is.
84
+ */
85
+ standIn?: boolean;
77
86
  }
78
87
  /** A photo a slot is filled with. */
79
88
  export interface AiLayoutPicturePhoto {
@@ -84,25 +84,28 @@ import { aiLayoutLabel, aiLayoutSpeaksOtherThanEnglish } from "./ai-layout-label
84
84
  const alt = typeof ((_node_props1 = node.props) == null ? void 0 : _node_props1['alt']) === 'string' ? node.props['alt'].trim() : '';
85
85
  if ((typeof src !== 'string' || !src.trim()) && alt) {
86
86
  var _ref, _sections_names_here;
87
- var _frame_nodes;
87
+ var _frame_nodes, _node_props2;
88
88
  const frame = parentId ? map[parentId] : undefined;
89
89
  const iconId = (_ref = frame == null ? void 0 : (_frame_nodes = frame.nodes) == null ? void 0 : _frame_nodes.find((child)=>{
90
90
  var _map_child;
91
91
  return child !== id && ((_map_child = map[child]) == null ? void 0 : _map_child.componentId) === 'icon';
92
92
  })) != null ? _ref : null;
93
- slots.push({
93
+ slots.push(_extends({
94
94
  imageId: id,
95
95
  frameId: frame ? parentId : null,
96
96
  iconId,
97
97
  alt,
98
98
  aspect: slotAspect(node, frame),
99
- sectionIndex: here,
99
+ sectionIndex: here
100
+ }, ((_node_props2 = node.props) == null ? void 0 : _node_props2['decorative']) === true ? {
101
+ standIn: true
102
+ } : {}, {
100
103
  role: aiLayoutPictureRole({
101
104
  sectionIndex: here,
102
105
  sectionName: here >= 0 ? (_sections_names_here = sections.names[here]) != null ? _sections_names_here : '' : '',
103
106
  alt
104
107
  })
105
- });
108
+ }));
106
109
  }
107
110
  }
108
111
  for (const child of (_node_nodes = node.nodes) != null ? _node_nodes : [])visit(child, id, here);
@@ -237,18 +240,21 @@ function rotate(list, by) {
237
240
  const lead = slots.findIndex((_, index)=>Boolean(photos[index] && next[slots[index].imageId]));
238
241
  slots.forEach((slot, index)=>{
239
242
  var _node_props;
240
- var _photo_alt;
243
+ var _photo_alt, _photo_alt1;
241
244
  const photo = photos[index];
242
245
  const node = next[slot.imageId];
243
246
  if (!photo || !node) return;
244
247
  const props = _extends({}, (_node_props = node['props']) != null ? _node_props : {});
245
248
  delete props['loading'];
249
+ // A photo placed is described by its words, never hidden from a screen
250
+ // reader: a stand-in was decorative only while it showed nothing (AGL-3856).
251
+ if ((_photo_alt = photo.alt) == null ? void 0 : _photo_alt.trim()) delete props['decorative'];
246
252
  next[slot.imageId] = _extends({}, node, {
247
253
  props: _extends({}, props, {
248
254
  src: photo.src,
249
255
  intrinsicWidth: photo.width,
250
256
  intrinsicHeight: photo.height
251
- }, ((_photo_alt = photo.alt) == null ? void 0 : _photo_alt.trim()) ? {
257
+ }, ((_photo_alt1 = photo.alt) == null ? void 0 : _photo_alt1.trim()) ? {
252
258
  alt: photo.alt.trim()
253
259
  } : {}, index === lead && slot.role === 'hero' ? {
254
260
  loading: 'eager'