From 53c3be9cbe1d591afdd2561c7fa8f72d89e726c3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 3 Sep 2026 04:31:37 +0000 Subject: [PATCH 1/3] fix: sync GeoId/GridId type unions with palette.js, update README, add drift test - GeoId: add missing 'cloud' to match GEO_IDS - GridId: add missing 'ruled', 'crosses', 'iso' to match GRID_IDS - Update JSDoc comments in core, react, and react-native type declarations - README: list all seven geo shapes and six grid kinds, mark 'lines' as default - Add packages/core/test/type-drift.test.js to catch future union drift Fixes quickdrawjs/quickdraw#16 Co-authored-by: Dark --- README.md | 7 +- package-lock.json | 143 +++++-------------------- packages/core/test/type-drift.test.js | 29 +++++ packages/core/types/index.d.ts | 6 +- packages/react-native/types/index.d.ts | 2 +- packages/react/types/index.d.ts | 2 +- 6 files changed, 64 insertions(+), 125 deletions(-) create mode 100644 packages/core/test/type-drift.test.js diff --git a/README.md b/README.md index dfa122b..107c89d 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ A simple, joyful drawing experience: - **Pressure ink** — a freehand pen whose width breathes with stylus pressure, or with velocity for mouse users; strokes taper like a real pen - **Highlighter** that soaks into the paper (and glows on dark boards) -- **Shapes** — rectangle, ellipse, triangle, diamond, hexagon, star — with a +- **Shapes** — rectangle, ellipse, triangle, diamond, hexagon, star, cloud — with a seeded hand-drawn wobble, four fill styles, and editable labels - **Arrows** with draggable bend, lines, text, sticky notes - **Images** — paste, drag-drop, or pick; auto-downscaled and stored in-document @@ -48,8 +48,9 @@ A simple, joyful drawing experience: - **Undo/redo** — one entry per gesture, however many events it took - **Light & dark themes**, twelve named colors that resolve per theme, and a theme switch built into the board menu -- **Grid backdrops** — ruled lines or dotted intersections, spacing that adapts - to the zoom and fades in rather than popping +- **Grid backdrops** — plain, ruled lines, notebook rules, dots, crosses + (blueprint), and isometric; default is `lines`; spacing adapts to the zoom + and fades in rather than popping - **PNG export** — whole board or selection, on paper or transparent - **A responsive floating toolbar** that sheds tools gracefully as the frame narrows — or hide it and build your own from the headless API diff --git a/package-lock.json b/package-lock.json index dd78346..93a538c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1459,9 +1459,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1478,9 +1475,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1497,9 +1491,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1516,9 +1507,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1535,9 +1523,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1554,9 +1539,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1573,9 +1555,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1592,9 +1571,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1611,9 +1587,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1636,9 +1609,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1661,9 +1631,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1686,9 +1653,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1711,9 +1675,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1736,9 +1697,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1761,9 +1719,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1786,9 +1741,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2188,9 +2140,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2207,9 +2156,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2226,9 +2172,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2245,9 +2188,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2264,9 +2204,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2283,9 +2220,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2388,9 +2322,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2407,9 +2338,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2426,9 +2354,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2445,9 +2370,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2996,9 +2918,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3012,9 +2931,6 @@ "cpu": [ "arm" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3028,9 +2944,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3044,9 +2957,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3060,9 +2970,6 @@ "cpu": [ "loong64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3076,9 +2983,6 @@ "cpu": [ "loong64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3092,9 +2996,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3108,9 +3009,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3124,9 +3022,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3140,9 +3035,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3156,9 +3048,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3172,9 +3061,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3188,9 +3074,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -13643,6 +13526,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13659,6 +13543,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13675,6 +13560,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13691,6 +13577,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13707,6 +13594,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13723,6 +13611,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13739,6 +13628,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13755,6 +13645,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13771,6 +13662,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13787,6 +13679,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13803,6 +13696,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13819,6 +13713,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13835,6 +13730,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13851,6 +13747,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13867,6 +13764,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13883,6 +13781,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13899,6 +13798,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13915,6 +13815,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13931,6 +13832,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13947,6 +13849,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13963,6 +13866,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13979,6 +13883,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13995,6 +13900,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -14011,6 +13917,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -14027,6 +13934,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -14043,6 +13951,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ diff --git a/packages/core/test/type-drift.test.js b/packages/core/test/type-drift.test.js new file mode 100644 index 0000000..2f2343e --- /dev/null +++ b/packages/core/test/type-drift.test.js @@ -0,0 +1,29 @@ +import { readFileSync } from 'node:fs' +import { resolve, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' +import { describe, it, expect } from 'vitest' +import { GEO_IDS, GRID_IDS } from '../src/palette.js' + +const __dirname = dirname(fileURLToPath(import.meta.url)) +const dts = readFileSync(resolve(__dirname, '../types/index.d.ts'), 'utf8') + +function parseUnion(typeName) { + const re = new RegExp(`export type ${typeName}\\s*=\\s*([^\\n]+)`) + const m = dts.match(re) + if (!m) throw new Error(`${typeName} not found in types/index.d.ts`) + return m[1] + .split('|') + .map((s) => s.trim().replace(/^'|'$/g, '')) + .filter(Boolean) + .sort() +} + +describe('type declarations stay in sync with palette.js', () => { + it('GeoId union matches GEO_IDS', () => { + expect(parseUnion('GeoId')).toEqual([...GEO_IDS].sort()) + }) + + it('GridId union matches GRID_IDS', () => { + expect(parseUnion('GridId')).toEqual([...GRID_IDS].sort()) + }) +}) diff --git a/packages/core/types/index.d.ts b/packages/core/types/index.d.ts index 595f061..bd5cbe2 100644 --- a/packages/core/types/index.d.ts +++ b/packages/core/types/index.d.ts @@ -14,9 +14,9 @@ export type SizeId = 's' | 'm' | 'l' | 'xl' export type DashId = 'draw' | 'solid' | 'dashed' | 'dotted' export type FillId = 'none' | 'semi' | 'solid' | 'pattern' export type FontId = 'draw' | 'sans' | 'serif' | 'mono' -export type GeoId = 'rectangle' | 'ellipse' | 'triangle' | 'diamond' | 'hexagon' | 'star' +export type GeoId = 'rectangle' | 'ellipse' | 'triangle' | 'diamond' | 'hexagon' | 'star' | 'cloud' export type ThemeId = 'light' | 'dark' -export type GridId = 'none' | 'lines' | 'dots' +export type GridId = 'none' | 'lines' | 'ruled' | 'dots' | 'crosses' | 'iso' export interface Bounds { x: number; y: number; w: number; h: number } export interface Camera { x: number; y: number; z: number } @@ -236,7 +236,7 @@ export class Editor { setTool(tool: ToolId): void setGeoKind(kind: GeoId): void setTheme(id: ThemeId | string): void - /** 'none' | 'lines' | 'dots' — the backdrop behind the drawing. */ + /** 'none' | 'lines' | 'ruled' | 'dots' | 'crosses' | 'iso' — the backdrop behind the drawing. */ setGrid(id: GridId): void setReadonly(ro: boolean): void setPenMode(on: boolean): void diff --git a/packages/react-native/types/index.d.ts b/packages/react-native/types/index.d.ts index 701e6f4..7373480 100644 --- a/packages/react-native/types/index.d.ts +++ b/packages/react-native/types/index.d.ts @@ -34,7 +34,7 @@ export interface QuickdrawRef { export interface QuickdrawProps { theme?: ThemeId | string - /** 'none' | 'lines' | 'dots' — the backdrop. Live-switchable. */ + /** 'none' | 'lines' | 'ruled' | 'dots' | 'crosses' | 'iso' — the backdrop. Live-switchable. */ grid?: GridId readonly?: boolean hideUi?: boolean diff --git a/packages/react/types/index.d.ts b/packages/react/types/index.d.ts index 11bee60..ae65d23 100644 --- a/packages/react/types/index.d.ts +++ b/packages/react/types/index.d.ts @@ -13,7 +13,7 @@ export interface QuickdrawRef { export interface QuickdrawProps { /** 'light' | 'dark' — live-switchable. */ theme?: ThemeId | string - /** 'none' | 'lines' | 'dots' — the backdrop. Live-switchable. */ + /** 'none' | 'lines' | 'ruled' | 'dots' | 'crosses' | 'iso' — the backdrop. Live-switchable. */ grid?: GridId /** Lock input (also hides the toolbar). */ readonly?: boolean From 288d2a4beb810f11834195c6d96a830fa400c398 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 3 Sep 2026 04:34:08 +0000 Subject: [PATCH 2/3] revert: drop package-lock.json churn from npm install Co-authored-by: Dark --- package-lock.json | 143 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 117 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93a538c..dd78346 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1459,6 +1459,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1475,6 +1478,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1491,6 +1497,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1507,6 +1516,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1523,6 +1535,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1539,6 +1554,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1555,6 +1573,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1571,6 +1592,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1587,6 +1611,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1609,6 +1636,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1631,6 +1661,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1653,6 +1686,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1675,6 +1711,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1697,6 +1736,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1719,6 +1761,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1741,6 +1786,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2140,6 +2188,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2156,6 +2207,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2172,6 +2226,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2188,6 +2245,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2204,6 +2264,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2220,6 +2283,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2322,6 +2388,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2338,6 +2407,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2354,6 +2426,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2370,6 +2445,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2918,6 +2996,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2931,6 +3012,9 @@ "cpu": [ "arm" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2944,6 +3028,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2957,6 +3044,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2970,6 +3060,9 @@ "cpu": [ "loong64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2983,6 +3076,9 @@ "cpu": [ "loong64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2996,6 +3092,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3009,6 +3108,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -3022,6 +3124,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3035,6 +3140,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -3048,6 +3156,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3061,6 +3172,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3074,6 +3188,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -13526,7 +13643,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13543,7 +13659,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13560,7 +13675,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13577,7 +13691,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13594,7 +13707,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13611,7 +13723,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13628,7 +13739,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13645,7 +13755,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13662,7 +13771,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13679,7 +13787,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13696,7 +13803,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13713,7 +13819,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13730,7 +13835,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13747,7 +13851,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13764,7 +13867,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13781,7 +13883,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13798,7 +13899,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13815,7 +13915,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13832,7 +13931,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13849,7 +13947,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13866,7 +13963,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13883,7 +13979,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13900,7 +13995,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13917,7 +14011,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13934,7 +14027,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -13951,7 +14043,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ From 35302ce3f7ad886e277f3f6051fd7419f2dcf64f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 3 Sep 2026 04:35:08 +0000 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20update=20packages/core/README.md=20g?= =?UTF-8?q?rid=20comments=20=E2=80=94=20all=20six=20GRID=5FIDS,=20default?= =?UTF-8?q?=20is=20lines?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Dark --- packages/core/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/README.md b/packages/core/README.md index edfdab1..e9621a7 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -24,7 +24,7 @@ import '@quickdrawjs/core/quickdraw.css' const board = createQuickdraw({ container: document.getElementById('board'), theme: 'light', // or 'dark' - grid: 'lines', // 'none' (default) | 'lines' | 'dots' + grid: 'lines', // 'none' | 'lines' (default) | 'ruled' | 'dots' | 'crosses' | 'iso' }) // the document store emits a diff after every change @@ -49,7 +49,7 @@ without you building any chrome: ```js board.editor.setTheme('dark') // emits 'theme' -board.editor.setGrid('dots') // 'none' | 'lines' | 'dots', emits 'grid' +board.editor.setGrid('dots') // 'none' | 'lines' (default) | 'ruled' | 'dots' | 'crosses' | 'iso', emits 'grid' board.editor.clearBoard() // one undoable step (⇧⌘⌫) // mirror in-board switches into your own app state