@aglyn/plugins-ai 1.0.0-beta.263 → 1.0.0-beta.266
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +17 -17
- package/src/lib/assets/site-styles/beauty.webp +0 -0
- package/src/lib/assets/site-styles/blog.webp +0 -0
- package/src/lib/assets/site-styles/business.webp +0 -0
- package/src/lib/assets/site-styles/coming-soon.webp +0 -0
- package/src/lib/assets/site-styles/education.webp +0 -0
- package/src/lib/assets/site-styles/events.webp +0 -0
- package/src/lib/assets/site-styles/fitness.webp +0 -0
- package/src/lib/assets/site-styles/landing.webp +0 -0
- package/src/lib/assets/site-styles/music.webp +0 -0
- package/src/lib/assets/site-styles/nonprofit.webp +0 -0
- package/src/lib/assets/site-styles/personal.webp +0 -0
- package/src/lib/assets/site-styles/photography.webp +0 -0
- package/src/lib/assets/site-styles/portfolio.webp +0 -0
- package/src/lib/assets/site-styles/professional.webp +0 -0
- package/src/lib/assets/site-styles/realestate.webp +0 -0
- package/src/lib/assets/site-styles/restaurant.webp +0 -0
- package/src/lib/assets/site-styles/store.webp +0 -0
- package/src/lib/assets/site-styles/studio.webp +0 -0
- package/src/lib/assets/site-styles/trades.webp +0 -0
- package/src/lib/assets/site-styles/wellness.webp +0 -0
- package/src/lib/assets/site-styles/yoga.webp +0 -0
- package/src/lib/components/ai-site-start-card.component.d.ts +12 -0
- package/src/lib/components/ai-site-start-card.component.js +256 -236
- package/src/lib/components/ai-site-start-card.component.js.map +1 -1
- package/src/lib/components/ai-site-start-steps.component.d.ts +108 -0
- package/src/lib/components/ai-site-start-steps.component.js +451 -0
- package/src/lib/components/ai-site-start-steps.component.js.map +1 -0
- package/src/lib/components/ai-site-start-tracking.d.ts +114 -0
- package/src/lib/components/ai-site-start-tracking.js +277 -0
- package/src/lib/components/ai-site-start-tracking.js.map +1 -0
- package/src/lib/components/ai-site-style-previews.d.ts +26 -0
- package/src/lib/components/ai-site-style-previews.js +115 -0
- package/src/lib/components/ai-site-style-previews.js.map +1 -0
- package/src/lib/insights/ai-insight-digest.d.ts +9 -0
- package/src/lib/insights/ai-insight-digest.js +35 -11
- package/src/lib/insights/ai-insight-digest.js.map +1 -1
- package/src/lib/jobs/ai-job-page-language.d.ts +9 -0
- package/src/lib/jobs/ai-job-page-language.js +20 -2
- package/src/lib/jobs/ai-job-page-language.js.map +1 -1
- package/src/lib/jobs/ai-job-page-sections.js +8 -2
- package/src/lib/jobs/ai-job-page-sections.js.map +1 -1
- package/src/lib/jobs/ai-job-plan-step.d.ts +43 -8
- package/src/lib/jobs/ai-job-plan-step.js +99 -18
- package/src/lib/jobs/ai-job-plan-step.js.map +1 -1
- package/src/lib/jobs/ai-job-site-datasets.d.ts +93 -2
- package/src/lib/jobs/ai-job-site-datasets.js +308 -21
- package/src/lib/jobs/ai-job-site-datasets.js.map +1 -1
- package/src/lib/jobs/ai-layout-stock-photos.d.ts +191 -13
- package/src/lib/jobs/ai-layout-stock-photos.js +1709 -69
- package/src/lib/jobs/ai-layout-stock-photos.js.map +1 -1
- package/src/lib/jobs/fixtures/ai-site-foreign-datasets-recording.d.ts +58 -0
- package/src/lib/jobs/fixtures/ai-site-foreign-datasets-recording.js +678 -0
- package/src/lib/jobs/fixtures/ai-site-foreign-datasets-recording.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-beta265-recordings.d.ts +33 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-beta265-recordings.js +270 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-beta265-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-people-recordings.d.ts +33 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-people-recordings.js +277 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3856-people-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-juniper-records-recordings.d.ts +23 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-juniper-records-recordings.js +163 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-juniper-records-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-learning-center-recordings.d.ts +23 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-learning-center-recordings.js +53 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-learning-center-recordings.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-recordings.d.ts +21 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-recordings.js +119 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-recordings.js.map +1 -0
- package/src/lib/layout-language/ai-layout-compiler.js +54 -15
- package/src/lib/layout-language/ai-layout-compiler.js.map +1 -1
- package/src/lib/layout-language/ai-layout-design.d.ts +6 -3
- package/src/lib/layout-language/ai-layout-design.js +14 -13
- package/src/lib/layout-language/ai-layout-design.js.map +1 -1
- package/src/lib/layout-language/ai-layout-listings.d.ts +55 -0
- package/src/lib/layout-language/ai-layout-listings.js +103 -5
- package/src/lib/layout-language/ai-layout-listings.js.map +1 -1
- package/src/lib/layout-language/ai-layout-pictures.d.ts +42 -8
- package/src/lib/layout-language/ai-layout-pictures.js +91 -6
- package/src/lib/layout-language/ai-layout-pictures.js.map +1 -1
- package/src/lib/model/ai-site-home-arcs.d.ts +75 -0
- package/src/lib/model/ai-site-home-arcs.js +741 -0
- package/src/lib/model/ai-site-home-arcs.js.map +1 -0
- package/src/lib/model/ai-site-inventory.d.ts +18 -0
- package/src/lib/model/ai-site-inventory.js.map +1 -1
- package/src/lib/model/ai-site-job.d.ts +9 -6
- package/src/lib/model/ai-site-job.js +8 -5
- package/src/lib/model/ai-site-job.js.map +1 -1
- package/src/lib/model/ai-site-kinds.js +24 -24
- package/src/lib/model/ai-site-kinds.js.map +1 -1
- package/src/lib/model/ai-site-start-steps.d.ts +67 -0
- package/src/lib/model/ai-site-start-steps.js +127 -0
- package/src/lib/model/ai-site-start-steps.js.map +1 -0
- package/src/lib/model/ai-site-start.js +4 -1
- package/src/lib/model/ai-site-start.js.map +1 -1
- package/src/lib/runtime/ai-doctrine-validators.d.ts +32 -0
- package/src/lib/runtime/ai-doctrine-validators.js +119 -2
- package/src/lib/runtime/ai-doctrine-validators.js.map +1 -1
- package/src/lib/runtime/ai-doctrine.d.ts +6 -1
- package/src/lib/runtime/ai-doctrine.js +9 -5
- package/src/lib/runtime/ai-doctrine.js.map +1 -1
- package/src/lib/runtime/ai-palette.generated.js +5 -2
- package/src/lib/runtime/ai-palette.generated.js.map +1 -1
- package/src/lib/runtime/site-inventory.js +6 -0
- package/src/lib/runtime/site-inventory.js.map +1 -1
- package/src/lib/server/ai-insight-digest-route.js +2 -2
- package/src/lib/server/ai-insight-digest-route.js.map +1 -1
- package/src/lib/usage/assist-free-taste.js +3 -0
- package/src/lib/usage/assist-free-taste.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/plugins/ai/src/lib/jobs/fixtures/ai-stock-photo-synchronicity-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 THE BETA.261 SYNCHRONICITY GYM START\n * (AGL-3856): what production's `stockPhotoSearches` cache held on 2026-10-16\n * for \"ready train\", the one search the site's home page sent (job\n * pB0Jnr3isL; its hero, held to no world, sent none), and for \"gym\", sent\n * the same day by another start, read back from the cache by each search's\n * key, never searched again. Ids, sizes, page slugs and tags are Pixabay's\n * own, in its 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/** `ready train` (horizontal, min_width 900), for the Synchronicity Gym closing band, a cover whose words read as the subject \"ready train\"; answered 2026-10-16T19:19:16.709Z. 8517089 is the subway train it placed. */\nexport const READY_TRAIN_WIDE: StockPhoto[] = [\n hit(3237738, 1280, 722, 'regional-express-double-deck-train-3237738', 'regional express, double deck train, schubzug, control car, electric locomotive, br143, hbf, central station, trier, platform, ready to go, train, railroad, transport system, rail, railway regional transport, regional train, the moselle range'),\n hit(2110931, 1280, 820, 'switzerland-sbb-powerhouse-30000-hp-2110931', 'switzerland, sbb, powerhouse, 30000 hp, ready to use, uphill, alpine crossing, railroad, swiss federal railway, ffs, cff, electric locomotive, re 16-16, freight train, brig, valais, central station, rhône valley, lötschberg, simplon'),\n hit(4576439, 1280, 725, 'lokdepot-deutsche-bahn-depot-meshes-4576439', 'lokdepot, deutsche bahn, depot, meshes, hamburg, electric locomotive, diesel locomotive, switcher, waiting, readiness for operation, overview of freight trains, marshalling yard'),\n hit(3274537, 1280, 853, 'transportation-system-bus-car-train-3274537', 'transportation system, bus, car, train, traffic, street, subway system, city, free wallpaper, vehicle, public, road, industry, urban, travel, railway, commuter, wallpaper hd, tram, locomotive'),\n hit(498257, 1280, 853, 'woman-athlete-running-exercise-498257', 'woman, athlete, running, exercise, sprint, cinder-track, cinderpath, start, sports, fitness, healthy, workout, young, female, body, lifestyle, training, fit, health, people'),\n hit(797072, 1280, 853, 'train-railroad-transport-rails-797072', 'train, railroad, transport, rails, catenary, miniature, masts, catenary masts, railway line, rail track, train, train, train, train, train'),\n hit(4362166, 1280, 853, 'train-monument-scotland-jacobite-4362166', 'train, monument, scotland, jacobite, landscape, travel, scottish, nature, train, train, train, train, train, scotland, scotland'),\n hit(4797907, 1280, 853, 'bride-ready-wedding-female-dress-4797907', 'bride, ready, wedding, female, dress, gray wedding, bride, bride, ready, ready, ready, ready, ready, wedding'),\n hit(4314049, 1280, 853, 'train-bridge-mountains-railway-4314049', 'train, bridge, mountains, railway, steam, transport, landscape, nature, railroad'),\n hit(5237269, 1280, 853, 'shinkansen-bullet-train-5237269', 'shinkansen, bullet train, railway station, train station, express train, platform, railway, railroad, travel, train, transport, vehicle, high speed, fast, modern, kyoto, japan, shinkansen, bullet train, bullet train'),\n hit(3169964, 1280, 722, 'train-station-couple-traveling-3169964', 'train station, couple, traveling, railway, travelers, train station, couple, couple, couple, couple, couple, traveling'),\n hit(8517089, 1280, 720, 'train-station-subway-metro-8517089', 'train, station, subway, metro, architecture, cityscape, transport, modern, futuristic, building, steel construction, germany, hamburg, track, railroad, rails, railroad track, elbe bridge, hafencity'),\n hit(4324792, 1280, 720, 'buildings-skyscrapers-downtown-4324792', 'buildings, skyscrapers, downtown, chicago, architecture, urban, illinois, city, cityscape, nature, skyline, water, travel'),\n hit(1527780, 1280, 652, 'central-station-railway-station-1527780', 'central station, railway station, train, cologne, cologne main station, railway, rails, railroad track, rail traffic, train tracks, train station, departure, tilt shift, train, train, train, train, train'),\n hit(7859021, 1280, 850, 'train-railroad-station-passengers-7859021', 'train, railroad, station, passengers, travellers, regional train, train, train, train, train, train'),\n hit(7860168, 1280, 853, 'railway-train-station-train-7860168', 'railway, train station, train, passenger, travel, skill, civilization, rail, transportation, red, train station, train, train, train, train, train'),\n hit(3928590, 1280, 853, 'harbour-city-hamburg-city-3928590', 'harbour city, hamburg, city, lights game, shining, lamps, metro, platform, modern, architecture, hamburg, hamburg, hamburg, hamburg, hamburg, city, city, city, metro, metro'),\n hit(1868256, 1280, 853, 'train-station-adult-wait-waiting-1868256', 'train station, adult, wait, waiting, benches, trains, commuter, commute, passenger trains, public transportation, transportation, city, man, person, railway, station, train, transportation system, travel, urban'),\n hit(7767132, 1280, 853, 'station-train-railroad-rail-city-7767132', 'station, train, railroad, rail, city, architecture, berlin, germany, icc, capital city, cityscape, transport, metro, to travel, wait, commuter, platform, terminal, station, rail'),\n hit(1940691, 1280, 853, 'city-people-underground-metro-1940691', 'city, people, underground, metro, transport, transfer, traffic, transportation, prague, czech, business, man, motion, lights, station, train, stop, architecture, metro, metro'),\n hit(3714601, 1280, 815, 'train-speed-in-transit-platform-3714601', 'train, speed, in transit, platform, train station, passenger train, railway, railroad, railway station, railroad station, railway system, transportation, commute, motion, station, amsterdam, urban, subway, metro, transit'),\n hit(5616861, 1280, 853, 'woman-bride-smile-make-up-5616861', 'woman, bride, smile, make up, getting ready, lashes, mascara, hairstyle, wedding, married, getting ready, lashes, lashes, lashes, lashes, lashes, mascara, mascara'),\n hit(4068968, 1280, 829, 'berlin-metro-train-station-4068968', 'berlin, metro, train station, train platform, architecture, railway station, underground, urban, platform, germany, landmark, building, berlin, berlin, berlin, berlin, berlin, metro, train station, train station'),\n hit(10442256, 1280, 853, 'railway-track-sun-sunset-landscape-10442256', 'railway track, sun, sunset, landscape, forest, nature, railway, path, railway route, railway curve, railroad line, railway setting, railway construction, railway station, railway infrastructure, railway bridge, railway facility, winter railway, railway tracks'),\n hit(3384786, 1280, 853, 'train-station-platform-railway-3384786', 'train, station, platform, railway, rail, transport, travel, people, waiting, train, train, train, train, train'),\n hit(8302635, 1280, 828, 'train-windows-platform-speed-8302635', 'train, windows, platform, speed, circulation, transport, public transport, wagon, wide, wide view, snapshot, station, train station, roof'),\n hit(4501839, 1280, 788, 'metro-station-subway-train-4501839', 'metro, station, subway, train, underground, urban, transport, platform, architecture, travel, transportation, trainstation, terminal, railway, tube, metro, metro, subway, subway, train'),\n hit(619082, 1280, 853, 'train-tracks-train-station-railroad-619082', 'train, tracks, train station, railroad, train tracks, railway system, railway tracks, railway station, cologne, railway, rails, steel structure, cologne main station, central station, steel, train, train, train, train, train'),\n hit(4300448, 1280, 853, 'sit-architecture-inner-space-4300448', 'sit, architecture, inner space, building, subway, platform, wait, train, blur, move, stop, subway, subway, subway, platform, wait, train, train, train, train'),\n hit(4651062, 1280, 853, 'rail-track-stop-glass-4651062', 'rail, track, stop, glass, transportation, engine, rail, rail, stop, stop, stop, stop, stop, transportation, engine, engine, engine'),\n hit(7427924, 1280, 854, 'ice-train-train-railroad-transport-7427924', 'ice train, train, railroad, transport, speed train, travel, ice, ice train, ice train, ice train, ice train, ice train, train, train, train, train, train, speed train, speed train, speed train'),\n hit(4971800, 1280, 853, 'train-railway-locomotive-station-4971800', 'train, railway, locomotive, station, railroad, transport, transportation, rail, travel, electric, track, platform, engine, diesel, red, russia, cargo, power, speed, wagon'),\n hit(1486004, 1280, 853, 'bride-woman-model-wedding-dress-1486004', 'bride, woman, model, wedding dress, room, windows, elegant, extravagant, fancy, luxury, wedding, bride, model, luxury, luxury, wedding, wedding, wedding, wedding, wedding'),\n hit(3758523, 1280, 854, 'train-transportation-winter-season-3758523', 'train, transportation, winter, season, landscape, nature, travel, adventure, train, train, train, train, train, winter, winter, winter, winter, travel, travel'),\n hit(5422795, 1280, 853, 'couple-social-distancing-5422795', 'couple, social distancing, train station, coronavirus, face mask, covid-19, covid, distancing, pandemic, protection, new normal, indonesia, jakarta, covid-19, covid, covid, covid, covid, covid, pandemic'),\n hit(731165, 1280, 853, 'little-boy-window-waiting-bored-731165', 'little boy, window, waiting, bored, tired, rainy weather, glass window, raindrops, water droplets, wet, kid, child, inside, nature, train, looking out, boring, travel, rain, weather'),\n hit(60539, 1280, 848, 'train-railroad-transportation-60539', 'train, railroad, transportation, trail raffic, railway, rail, rail track, transport, locomotive, steam locomotive, russia, train, train, train, train, train'),\n hit(62849, 1280, 788, 'train-railway-snow-winter-railroad-62849', 'train, nature, railway, snow, winter, railroad, rail track, rail, transport, transportation, electric locomotive, locomotive, mountain railway, lagalb, bernina, bernina railway, switzerland'),\n hit(3153742, 1280, 854, 'railway-train-travel-street-train-3153742', 'railway train, travel, street, train, transport system, the train conductor, train station, diesel train, pingxi line, railway, platform, taiwan'),\n hit(7057750, 1280, 961, 'model-train-toy-train-train-7057750', 'model train, toy train, train, close up, miniature'),\n]\n\n/** `gym` (horizontal, min_width 900), sent by the beta.259 Ironline Strength Studio start; answered 2026-10-16T06:27:32.432Z. */\nexport const GYM_WIDE: StockPhoto[] = [\n hit(1282232, 1280, 853, 'man-person-power-strength-strong-1282232', '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 hit(2604149, 1280, 720, 'man-exercise-fitness-gym-dumbbells-2604149', 'man, exercise, fitness, gym, dumbbells, workout, weightlifting, exercise, fitness, gym, gym, gym, gym, gym, workout'),\n hit(2465478, 1280, 853, 'dumbbells-shoes-sneakers-2465478', '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 hit(2250970, 1280, 853, 'woman-crunches-sport-training-2250970', 'woman, crunches, sport, training, exercise, fit, fitness, wellness, body, abdominals, movement, sporty, active, condition, shoes, sneakers, health, healthy, sport, sport'),\n hit(1850925, 1280, 850, 'adult-gym-athlete-dark-energy-1850925', 'adult, gym, athlete, dark, energy, exercise, exercise equipment, female, fit, fitness, girl, healthy, legs, muscles, plates, strength, strong, sweat, training, woman'),\n hit(8246973, 1280, 960, 'weight-dumbbell-strength-arm-force-8246973', 'weight, dumbbell, strength, arm, force, male, exercise, sport, fitness, wrist, hand, muscle, youth, body, adult, health, exercise, exercise, exercise, exercise'),\n hit(8246972, 1280, 960, 'weights-dumbbells-strength-force-8246972', 'weights, dumbbells, strength, force, exercise, sport, fitness, wrist, hand, muscle, body, health'),\n hit(1284616, 1280, 853, 'weight-lifting-fitness-gym-1284616', 'weight lifting, fitness, gym, perspective, bodybuilding, dumbells, weights, health, sport, training, exercise, workout, fitness, gym, gym, gym, gym, gym'),\n hit(1850926, 1280, 850, 'abs-athlete-biceps-blonde-body-1850926', 'abs, athlete, biceps, blonde, body, fit, fitness, gym, healthy, muscles, person, strength, strong, trainer, training, woman, workout, workout gear'),\n hit(534615, 1280, 853, 'crossfit-sports-fitness-training-534615', 'crossfit, sports, fitness, training, exercise, athlete, young, healthy, workout, fit, muscular, body, people, strength, power, strong, female, sport, woman, athletic'),\n hit(6995813, 1280, 1280, 'kettlebell-crossfit-training-gym-6995813', 'kettlebell, crossfit, training, gym, fitness, exercise, kettlebell, kettlebell, kettlebell, kettlebell, kettlebell, crossfit, crossfit, crossfit, crossfit, gym'),\n hit(828726, 1280, 850, 'training-muscles-arms-blonde-828726', 'training, muscles, arms, blonde, bar bells, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio'),\n hit(594143, 1280, 853, 'fitness-dumbbells-training-gym-594143', 'fitness, dumbbells, training, gym, weights, weightlifting, weight training, gym equipment, fitness studio, studio, weight, exercise, many, train, fit, fitness, gym, gym, gym, gym'),\n hit(828741, 1280, 850, 'training-rmuscles-back-shoulders-828741', 'training, rmuscles, back, shoulders, blonde, workout, fitness, exercise, sport, gym, strong, young, woman, person, healthy, lifestyle, body, fit, muscular, studio'),\n hit(9180669, 1280, 720, 'fitness-exercise-men-work-out-gym-9180669', 'fitness, exercise, men, work out, gym'),\n hit(2264825, 1280, 853, 'man-woman-push-ups-wellness-2264825', '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 hit(595529, 1280, 853, 'physiotherapy-weight-training-595529', '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 hit(2260736, 1280, 853, 'woman-personal-trainer-fitness-2260736', '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 hit(8563109, 1280, 914, 'ai-generated-woman-fitness-training-8563109', 'ai generated, woman, fitness, training, gym, adventure, sport, portrait, pose, stretch, exercise'),\n hit(1984344, 1280, 783, 'boxer-woman-sport-fighter-fitness-1984344', 'boxer, woman, sport, fighter, fitness, training, athlete, dark, fitness, fitness, fitness, fitness, fitness'),\n hit(2245029, 1280, 853, 'sports-fitness-fit-training-2245029', '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 hit(6902886, 1280, 853, 'sport-basketball-ball-gym-activity-6902886', 'sport, basketball, ball, gym, activity, basketball, basketball, basketball, basketball, basketball'),\n hit(5031071, 1280, 945, 'workout-gym-exercise-fitness-5031071', 'workout, gym, exercise, fitness, healthy, athletic, lifestyle, gym, gym, gym, gym, gym'),\n hit(998836, 1280, 853, 'abs-gym-exercise-athlete-horse-998836', 'abs, gym, nature, exercise, athlete, horse, italian'),\n hit(3483560, 1280, 853, 'weights-dumbbells-exercise-gym-3483560', 'weights, dumbbells, exercise, gym, workout, equipment, brown fitness, brown gym, brown exercise, brown workout, gym, gym, gym, gym, gym'),\n hit(8108014, 1280, 948, 'gym-fitness-exercise-workout-yoga-8108014', 'gym, fitness, exercise, workout, yoga, fit, training, workout, workout, workout, workout, workout'),\n hit(6888634, 1280, 930, 'woman-training-health-gym-strong-6888634', 'woman, training, health, gym, strong, wellness, strength, fit, gym, gym, gym, gym, gym'),\n hit(5013985, 1280, 853, 'bodybuilding-gym-muscles-dumbbells-5013985', 'bodybuilding, gym, muscles, dumbbells, training, bodybuilding, bodybuilding, bodybuilding, bodybuilding, gym, gym, gym, gym, gym, dumbbells, dumbbells, dumbbells'),\n hit(3324976, 1280, 853, 'dumbbell-gym-fitness-dumbbells-3324976', 'dumbbell, gym, fitness, dumbbells, training, dumbbell, gym, gym, gym, gym, gym, dumbbells'),\n hit(4938219, 1280, 853, 'fitness-weights-gym-exercise-4938219', 'fitness, weights, gym, exercise, weight, strength, gray fitness, gray gym, gray exercise, gray workout, gym, gym, gym, gym, gym'),\n hit(6894904, 1280, 853, 'gym-fitness-training-exercise-6894904', 'gym, fitness, training, exercise, health, diet, slimming'),\n hit(4873885, 1280, 853, 'boiled-eggs-eggs-gym-food-4873885', 'boiled eggs, eggs, gym food, healthy food, food, protein, egg, food photography, delicious, breakfast, gym diet, brown gym, brown egg, brown eggs, brown diet'),\n hit(3516215, 1280, 853, 'gym-abdomen-training-3516215', 'gym, abdomen, training, gym, gym, abdomen, abdomen, abdomen, abdomen, abdomen'),\n hit(1126999, 1280, 856, 'crossfit-zimmer-health-fitness-1126999', 'crossfit, zimmer, health, fitness, dumbbell, gym, gym, gym, gym, gym, gym'),\n hit(6789766, 1280, 853, 'abandoned-school-abandoned-school-gym-6789766', 'abandoned school, abandoned school gym, abandoned building'),\n hit(5031689, 1280, 953, 'home-workout-gym-exercise-fitness-5031689', 'home workout, gym, exercise, fitness, training, treadmill, gray home, gray fitness, gray gym, gray exercise, gray training, gray workout, home workout, treadmill, treadmill, treadmill, treadmill, treadmill'),\n hit(4161647, 1280, 853, 'sneakers-gym-shoes-gym-plimsolls-4161647', 'sneakers, gym shoes, gym plimsolls, shoes, shoelace, sole, youth, fashion, sport, shoelace, shoelace, shoelace, shoelace, shoelace'),\n hit(4873886, 1280, 853, 'boiled-eggs-eggs-gym-food-4873886', 'boiled eggs, eggs, gym food, healthy food, food, protein, egg, food photography, delicious, breakfast, gym diet, brown gym, brown egg, brown eggs, brown diet, gym food, gym food, gym food, gym food, gym food'),\n hit(1235019, 1280, 853, 'sport-exercises-fitness-center-1235019', 'sport, exercises, fitness center, muscles, iron, metal, bitumen, rubber, health, strength, practice, diet, bodybuilding, dumbbells, barbells, slimming, fitness center, strength, strength, strength'),\n hit(8268566, 1280, 853, 'running-sportswear-sports-fitness-8268566', 'running, sportswear, sports, fitness, gym, nature, running, running, running, running, running'),\n]\n"],"names":["hit","id","width","height","slug","tags","provider","String","pageUrl","photographer","split","downloadUrl","READY_TRAIN_WIDE","GYM_WIDE"],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ import { aiPageScrollInteraction } from "../runtime/ai-page-links.js";
|
|
|
23
23
|
import { aiLayoutFitText, aiLayoutQuoteGap, aiLayoutWords } from "./ai-layout-copy.js";
|
|
24
24
|
import { AI_LAYOUT_GROUP_KINDS, AI_LAYOUT_MAX_ITEMS } from "./ai-layout-language.js";
|
|
25
25
|
import { aiLayoutDesignChoices, aiLayoutFamily, aiLayoutGroupVariant } from "./ai-layout-design.js";
|
|
26
|
-
import { AI_LAYOUT_FEATURED_RECORDS, AI_LAYOUT_LISTING_ELEMENTS, aiLayoutListingAt, aiLayoutRecordHref } from "./ai-layout-listings.js";
|
|
26
|
+
import { AI_LAYOUT_FEATURED_RECORDS, AI_LAYOUT_LISTING_ELEMENTS, aiLayoutIsRecordImageAlt, aiLayoutListingAt, aiLayoutRecordHref, aiLayoutRecordImageAltField, aiLayoutRepeatFilterOf } from "./ai-layout-listings.js";
|
|
27
27
|
import { aiStorefrontItemIcons } from "./ai-layout-storefront.js";
|
|
28
28
|
import { AI_LAYOUT_LABELS_EN, aiLayoutLabel } from "./ai-layout-labels.js";
|
|
29
29
|
import { aiLayoutRenamedLabel, aiLayoutResolveLink } from "./ai-layout-links.js";
|
|
@@ -57,10 +57,15 @@ const componentOf = (targets, id)=>{
|
|
|
57
57
|
/**
|
|
58
58
|
* The section of this page that places a form: one whose plan places one, or
|
|
59
59
|
* whose design places one by its id.
|
|
60
|
-
*/ function
|
|
60
|
+
*/ /** Whether the site's form lives on another page of the site than this one. */ function formLivesElsewhere(targets) {
|
|
61
|
+
return !!targets.formPageId && targets.formPageId !== targets.pageId;
|
|
62
|
+
}
|
|
63
|
+
function formSectionOf(sections, plan, targets) {
|
|
61
64
|
const forms = formIdsOf(targets);
|
|
62
65
|
const planned = plan.sections.findIndex((section)=>section.uses.some((ref)=>forms.has(ref)));
|
|
63
66
|
if (planned !== -1) return planned;
|
|
67
|
+
// A form drawn on a page it does not live on becomes a button to its page (AGL-3899).
|
|
68
|
+
if (formLivesElsewhere(targets)) return null;
|
|
64
69
|
const designed = sections.findIndex((section)=>section.blocks.some((block)=>block.kind === 'form' && (!block.to || forms.has(block.to))));
|
|
65
70
|
return designed === -1 ? null : designed;
|
|
66
71
|
}
|
|
@@ -456,6 +461,31 @@ function compileSection(page, raw, index) {
|
|
|
456
461
|
]
|
|
457
462
|
} : {}));
|
|
458
463
|
const lastCol = raw.cols && raw.cols.length >= 2 ? raw.cols.length - 1 : undefined;
|
|
464
|
+
// A form the design drew where the plan places none, on a page the form
|
|
465
|
+
// does not live on, is that page's way to it (AGL-3899): a button to the
|
|
466
|
+
// page that holds the form, never a second copy of the form.
|
|
467
|
+
if (!plannedForms.length && formLivesElsewhere(page.targets)) {
|
|
468
|
+
const at0 = blocks.findIndex((block)=>block.kind === 'form');
|
|
469
|
+
if (at0 !== -1) {
|
|
470
|
+
const asks = blocks.some((block)=>block.kind === 'button' && (block.to === 'form' || block.to === `page:${page.targets.formPageId}`));
|
|
471
|
+
const col = blocks[at0].col;
|
|
472
|
+
const kept = blocks.filter((block)=>block.kind !== 'form');
|
|
473
|
+
if (!asks) {
|
|
474
|
+
kept.splice(at0, 0, _extends({
|
|
475
|
+
kind: 'button',
|
|
476
|
+
text: aiLayoutLabel('getInTouch', page.options.language),
|
|
477
|
+
to: 'form'
|
|
478
|
+
}, col !== undefined ? {
|
|
479
|
+
col
|
|
480
|
+
} : {}));
|
|
481
|
+
}
|
|
482
|
+
blocks.splice(0, blocks.length, ...kept);
|
|
483
|
+
page.settled.push({
|
|
484
|
+
at,
|
|
485
|
+
what: 'a form on a page it does not live on; a button to its page instead'
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
}
|
|
459
489
|
for (const block of blocks){
|
|
460
490
|
var _block_items;
|
|
461
491
|
if (block.kind === 'form' && !(block.to && forms.has(block.to))) {
|
|
@@ -1071,7 +1101,10 @@ function group(scope, block, room) {
|
|
|
1071
1101
|
// columns (AGL-3676): the beta.237 Willow Wick home, on a paid plan, drew
|
|
1072
1102
|
// every other group compact — four bands of a title and a sentence.
|
|
1073
1103
|
const variant = design && block.kind === 'cards' && block.style !== 'quiet' ? aiLayoutGroupVariant(design.input, design.choices, (_scope_words = scope.words) != null ? _scope_words : '') : null;
|
|
1074
|
-
|
|
1104
|
+
// Icon columns side by side, where rule 1 knows them by their cells; any
|
|
1105
|
+
// site's groups may take them (AGL-3899), and one to a row outside a
|
|
1106
|
+
// store they are drawn compact.
|
|
1107
|
+
if (variant === 'icons' && (retail || perRow > 1)) return iconColumns(scope, items, room);
|
|
1075
1108
|
const pictured = (variant === 'pictures' || variant === 'articles') && room === 'full' && picturesLeft(scope.page) >= items.length;
|
|
1076
1109
|
return pictured && designedGroup(scope, variant, items, room) || compactGroup(scope, block, items, perRow);
|
|
1077
1110
|
}
|
|
@@ -2050,7 +2083,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2050
2083
|
var _ref;
|
|
2051
2084
|
var _page_plan_sections_index_name, _page_plan_sections_index, _page_options_sectionIds;
|
|
2052
2085
|
const { page, index, at } = scope;
|
|
2053
|
-
const { listing, role } = placed;
|
|
2086
|
+
const { listing, role, filter } = placed;
|
|
2054
2087
|
if (listing.kind === 'reviews') return reviewsSection(scope, blocks);
|
|
2055
2088
|
if (listing.kind === 'signup') return signupSection(scope, blocks);
|
|
2056
2089
|
// The grid straight under a Shop page's title bar opens on the products:
|
|
@@ -2111,7 +2144,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2111
2144
|
}
|
|
2112
2145
|
}
|
|
2113
2146
|
], '3', 'flex-end') : head;
|
|
2114
|
-
const records = listingElement(scope, listing, role);
|
|
2147
|
+
const records = listingElement(scope, listing, role, filter);
|
|
2115
2148
|
const parts = [
|
|
2116
2149
|
top ? centered ? tree.add('muiContainer', {
|
|
2117
2150
|
maxWidth: 'md',
|
|
@@ -2414,7 +2447,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2414
2447
|
* The element that lists the records, bound to them: the Product grid over
|
|
2415
2448
|
* the site's catalog, or Collection Entries over its blog with one post's
|
|
2416
2449
|
* card as the template it repeats. Its records count as the section's items.
|
|
2417
|
-
*/ function listingElement(scope, listing, role) {
|
|
2450
|
+
*/ function listingElement(scope, listing, role, filter) {
|
|
2418
2451
|
const { page } = scope;
|
|
2419
2452
|
const tree = page.tree;
|
|
2420
2453
|
const featured = role === 'featured';
|
|
@@ -2478,14 +2511,16 @@ function listingSection(scope, blocks, placed) {
|
|
|
2478
2511
|
emptyActionHref: listing.emptyAction.href
|
|
2479
2512
|
} : {}), null, null, 'products');
|
|
2480
2513
|
} else if (listing.kind === 'records') {
|
|
2481
|
-
id = recordsElement(scope, listing, featured ? shown : null);
|
|
2514
|
+
id = recordsElement(scope, listing, featured ? shown : null, filter);
|
|
2482
2515
|
} else {
|
|
2483
2516
|
id = postsElement(scope, listing, featured ? shown : COLLECTION_INDEX_POSTS);
|
|
2484
2517
|
}
|
|
2485
|
-
// What a visitor sees here is the site's records, however many it keeps
|
|
2486
|
-
//
|
|
2518
|
+
// What a visitor sees here is the site's records, however many it keeps —
|
|
2519
|
+
// a section named for one group, that group's (AGL-3921): the section shows
|
|
2520
|
+
// its planned items when it has any to show.
|
|
2521
|
+
const listed = (filter == null ? void 0 : filter.records.length) ? filter.records.length : listing.records.length;
|
|
2487
2522
|
noted(scope, Array.from({
|
|
2488
|
-
length: Math.max(2, Math.min(shown,
|
|
2523
|
+
length: Math.max(2, Math.min(shown, listed))
|
|
2489
2524
|
}, ()=>id));
|
|
2490
2525
|
return id;
|
|
2491
2526
|
}
|
|
@@ -2604,7 +2639,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2604
2639
|
/** The fields a record's card shows: its name, a kicker line and its words, each by id. */ export function aiLayoutRecordCardFields(fields) {
|
|
2605
2640
|
var _ref, _ref1, _ref2, _ref3;
|
|
2606
2641
|
var _texts_find, _rest_find, _rest_find1, _rest_find2;
|
|
2607
|
-
const texts = fields.filter((field)=>field.type === 'text' || field.type === 'sorted');
|
|
2642
|
+
const texts = fields.filter((field)=>(field.type === 'text' || field.type === 'sorted') && !aiLayoutIsRecordImageAlt(field.name));
|
|
2608
2643
|
const title = (_ref = (_texts_find = texts.find((field)=>field.type === 'text')) == null ? void 0 : _texts_find.id) != null ? _ref : null;
|
|
2609
2644
|
const rest = texts.filter((field)=>field.id !== title);
|
|
2610
2645
|
const body = (_ref1 = (_rest_find = rest.find((field)=>field.type === 'text' && RECORD_BODY.test(field.name))) == null ? void 0 : _rest_find.id) != null ? _ref1 : null;
|
|
@@ -2629,8 +2664,8 @@ function listingSection(scope, blocks, placed) {
|
|
|
2629
2664
|
* record's name, as the design's own picture cards do (AGL-3717) — so a list
|
|
2630
2665
|
* of pieces stays the image-led gallery it was before it was a dataset.
|
|
2631
2666
|
* A featured band shows the first few; a page of its own, every record.
|
|
2632
|
-
*/ function recordsElement(scope, listing, limit) {
|
|
2633
|
-
var _listing_fields;
|
|
2667
|
+
*/ function recordsElement(scope, listing, limit, filter) {
|
|
2668
|
+
var _listing_fields, _listing_fields1;
|
|
2634
2669
|
var _page_design;
|
|
2635
2670
|
const { page } = scope;
|
|
2636
2671
|
const tree = page.tree;
|
|
@@ -2654,6 +2689,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2654
2689
|
variant: 'body2'
|
|
2655
2690
|
}, textAlign), muted(scope), null, 'recordBody') : null;
|
|
2656
2691
|
const photoField = !questions && listing.imageField ? listing.imageField : null;
|
|
2692
|
+
const altField = photoField ? aiLayoutRecordImageAltField((_listing_fields1 = listing.fields) != null ? _listing_fields1 : []) : null;
|
|
2657
2693
|
const opens = Boolean(photoField) && aiOpensGalleriesInLightbox(page);
|
|
2658
2694
|
// Each card opens its record's own page where the dataset has one (AGL-3727):
|
|
2659
2695
|
// `/{base}/{{item.<address>}}`, filled per record as the card repeats.
|
|
@@ -2661,7 +2697,8 @@ function listingSection(scope, blocks, placed) {
|
|
|
2661
2697
|
const portrait = ((_page_design = page.design) == null ? void 0 : _page_design.input.kind) === 'photography' || RECORD_PEOPLE.test(listing.name);
|
|
2662
2698
|
const picture = photoField ? tree.add('image', _extends({
|
|
2663
2699
|
src: `{{item.${photoField}}}`,
|
|
2664
|
-
|
|
2700
|
+
// What the photo shows, where the dataset keeps it; a record's name is what it is called (AGL-3856).
|
|
2701
|
+
alt: altField ? `{{item.${altField}}}` : fields.title ? `{{item.${fields.title}}}` : aiLayoutFitText(listing.name, 'alt', scope.page.options.language) || 'A photo',
|
|
2665
2702
|
objectFit: 'cover',
|
|
2666
2703
|
width: '100%',
|
|
2667
2704
|
loading: 'lazy'
|
|
@@ -2683,7 +2720,7 @@ function listingSection(scope, blocks, placed) {
|
|
|
2683
2720
|
}, null, 'recordLink') : null;
|
|
2684
2721
|
page.settled.push({
|
|
2685
2722
|
at: scope.at,
|
|
2686
|
-
what: `${listing.name} listed from its dataset${questions ? ' as a ruled list' : picture ? ' as picture cards' : ' as cards'}${recordHref ? `, each linking its page under /${listing.recordBase}` : ''}`
|
|
2723
|
+
what: `${listing.name} listed from its dataset${questions ? ' as a ruled list' : picture ? ' as picture cards' : ' as cards'}${recordHref ? `, each linking its page under /${listing.recordBase}` : ''}${filter ? `, only those filed “${filter.value}”` : ''}`
|
|
2687
2724
|
});
|
|
2688
2725
|
const card = questions ? tree.add('muiStack', {
|
|
2689
2726
|
spacing: '1'
|
|
@@ -2709,6 +2746,8 @@ function listingSection(scope, blocks, placed) {
|
|
|
2709
2746
|
repeatDataset: listing.datasetId
|
|
2710
2747
|
}, limit ? {
|
|
2711
2748
|
repeatLimit: String(limit)
|
|
2749
|
+
} : {}, filter ? {
|
|
2750
|
+
repeatFilter: aiLayoutRepeatFilterOf(filter)
|
|
2712
2751
|
} : {}), questions ? {
|
|
2713
2752
|
display: 'grid',
|
|
2714
2753
|
gap: 3
|