libs/@guardian/react-crossword/stories/formats/sunday-quick.ts (319 lines of code) (raw):

import type { CAPICrossword } from '../../src/@types/CAPI'; // this is actually quick 17000, but it'll work as a standin until we have a real example export const sundayQuick: CAPICrossword = { id: 'crosswords/sunday-quick/1', number: 1, name: 'Sunday quick crossword No 1', date: 1730246400000, webPublicationDate: 1730246442000, entries: [ { id: '5-across', number: 5, humanNumber: '5', clue: 'Election night pendulum (11)', direction: 'across', length: 11, group: ['5-across'], position: { x: 1, y: 1, }, separatorLocations: {}, solution: 'SWINGOMETER', }, { id: '7-across', number: 7, humanNumber: '7', clue: 'Display (4)', direction: 'across', length: 4, group: ['7-across'], position: { x: 0, y: 3, }, separatorLocations: {}, solution: 'EXPO', }, { id: '8-across', number: 8, humanNumber: '8', clue: 'Whereabouts (8)', direction: 'across', length: 8, group: ['8-across'], position: { x: 5, y: 3, }, separatorLocations: {}, solution: 'LOCATION', }, { id: '9-across', number: 9, humanNumber: '9', clue: 'In profusion (7)', direction: 'across', length: 7, group: ['9-across'], position: { x: 0, y: 5, }, separatorLocations: {}, solution: 'APLENTY', }, { id: '11-across', number: 11, humanNumber: '11', clue: 'It was (anag.) (5)', direction: 'across', length: 5, group: ['11-across'], position: { x: 8, y: 5, }, separatorLocations: {}, solution: 'WAIST', }, { id: '13-across', number: 13, humanNumber: '13', clue: 'Eastern capital (5)', direction: 'across', length: 5, group: ['13-across'], position: { x: 0, y: 7, }, separatorLocations: {}, solution: 'TOKYO', }, { id: '14-across', number: 14, humanNumber: '14', clue: 'Alpine cheese (7)', direction: 'across', length: 7, group: ['14-across'], position: { x: 6, y: 7, }, separatorLocations: {}, solution: 'GRUYERE', }, { id: '16-across', number: 16, humanNumber: '16', clue: 'Mankiest (anag.) (8)', direction: 'across', length: 8, group: ['16-across'], position: { x: 0, y: 9, }, separatorLocations: {}, solution: 'MISTAKEN', }, { id: '17-across', number: 17, humanNumber: '17', clue: 'Make clothes (4)', direction: 'across', length: 4, group: ['17-across'], position: { x: 9, y: 9, }, separatorLocations: {}, solution: 'KNIT', }, { id: '18-across', number: 18, humanNumber: '18', clue: 'Teen reading (anag.) (11)', direction: 'across', length: 11, group: ['18-across'], position: { x: 1, y: 11, }, separatorLocations: {}, solution: 'TRAGEDIENNE', }, { id: '1-down', number: 1, humanNumber: '1', clue: 'Hello! (4)', direction: 'down', length: 4, group: ['1-down'], position: { x: 3, y: 0, }, separatorLocations: {}, solution: 'CIAO', }, { id: '2-down', number: 2, humanNumber: '2', clue: 'Nimbleness (7)', direction: 'down', length: 7, group: ['2-down'], position: { x: 5, y: 0, }, separatorLocations: {}, solution: 'AGILITY', }, { id: '3-down', number: 3, humanNumber: '3', clue: 'Strike – tang (5)', direction: 'down', length: 5, group: ['3-down'], position: { x: 7, y: 0, }, separatorLocations: {}, solution: 'SMACK', }, { id: '4-down', number: 4, humanNumber: '4', clue: 'Sculpture and carving (8)', direction: 'down', length: 8, group: ['4-down'], position: { x: 9, y: 0, }, separatorLocations: {}, solution: 'STATUARY', }, { id: '5-down', number: 5, humanNumber: '5', clue: 'Jazz player – such as Charlie Parker (11)', direction: 'down', length: 11, group: ['5-down'], position: { x: 1, y: 1, }, separatorLocations: {}, solution: 'SAXOPHONIST', }, { id: '6-down', number: 6, humanNumber: '6', clue: 'Hotel amenity (4,7)', direction: 'down', length: 11, group: ['6-down'], position: { x: 11, y: 1, }, separatorLocations: { ',': [4], }, solution: 'ROOMSERVICE', }, { id: '10-down', number: 10, humanNumber: '10', clue: 'Giza geezer? (8)', direction: 'down', length: 8, group: ['10-down'], position: { x: 3, y: 5, }, separatorLocations: {}, solution: 'EGYPTIAN', }, { id: '12-down', number: 12, humanNumber: '12', clue: 'Feverish (7)', direction: 'down', length: 7, group: ['12-down'], position: { x: 7, y: 6, }, separatorLocations: {}, solution: 'FRANTIC', }, { id: '15-down', number: 15, humanNumber: '15', clue: 'Alpine holidaymaker? (5)', direction: 'down', length: 5, group: ['15-down'], position: { x: 5, y: 8, }, separatorLocations: {}, solution: 'SKIER', }, { id: '17-down', number: 17, humanNumber: '17', clue: 'Monarch (4)', direction: 'down', length: 4, group: ['17-down'], position: { x: 9, y: 9, }, separatorLocations: {}, solution: 'KING', }, ], solutionAvailable: true, dateSolutionAvailable: 1730246400000, dimensions: { cols: 13, rows: 13, }, crosswordType: 'sunday-quick', };