@griddle/core 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.ts CHANGED
@@ -152,6 +152,17 @@ export interface LoopConfig {
152
152
  /** Pan physics tuning. Only meaningful for 'pan' interaction. */
153
153
  physics?: LoopPhysicsConfig;
154
154
  }
155
+ /** Interaction gates. All fields default on; omit for standard behavior. */
156
+ export interface InteractiveConfig {
157
+ /**
158
+ * Whether dragging on empty grid space draws a new tile ("draw-to-create"),
159
+ * emitting a drawCreate event on release. Default true. When false, empty-
160
+ * space pointer-downs are ignored entirely — no draw ghost, no pointer
161
+ * capture, and no selection clear — so a host page that owns scrolling keeps
162
+ * its native pan/scroll behavior.
163
+ */
164
+ drawToCreate?: boolean;
165
+ }
155
166
  /** Grid configuration. */
156
167
  export interface GridConfig {
157
168
  /** Columns. Use Infinity for horizontally infinite canvas. */
@@ -212,6 +223,25 @@ export interface GridConfig {
212
223
  * `'a, button, input, textarea, select, [contenteditable], .my-caption'`.
213
224
  */
214
225
  dragIgnoreFrom?: string;
226
+ /**
227
+ * How the grid manages its own scroll container. Default 'container'.
228
+ *
229
+ * - 'container' — the grid owns an internal scroll box: `overflow: auto`,
230
+ * `touch-action: none` (the grid captures pan/scroll), and height taken
231
+ * from the adapter's `height` prop (default 100%). Use when the grid is the
232
+ * top-level scroller of a canvas-style app.
233
+ * - 'none' — the grid does not create its own scroll box: `overflow: visible`,
234
+ * no `touch-action` lock, and height sized to its content. The grid grows
235
+ * to its natural size and the host page scrolls. Use when an outer element
236
+ * owns layout/scroll (e.g. a page that scales the grid via
237
+ * `transform: scale()`).
238
+ */
239
+ scroll?: 'container' | 'none';
240
+ /**
241
+ * Interaction gates (e.g. draw-to-create). See InteractiveConfig. All fields
242
+ * default on; omit to keep the standard canvas-style behavior.
243
+ */
244
+ interactive?: InteractiveConfig;
215
245
  /**
216
246
  * Loop mode — the finite grid tiles repeat infinitely in both axes.
217
247
  * Off by default. See LoopConfig.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,oDAAoD;AACpD,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,sBAAsB;AACtB,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC;AAEvC,mCAAmC;AACnC,MAAM,MAAM,OAAO,GACf,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC,gCAAgC;AAChC,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,oCAAoC;AACpC,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,QAAQ,CAAC;AAEb,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qCAAqC;AACrC,MAAM,WAAW,IAAK,SAAQ,OAAO,EAAE,SAAS;IAC9C,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,8EAA8E;IAC9E,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,oGAAoG;IACpG,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,yDAAyD;IACzD,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACjC,iEAAiE;IACjE,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,0BAA0B;AAC1B,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1C;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,uEAAuE;AACvE,MAAM,WAAW,QAAS,SAAQ,OAAO,EAAE,SAAS;CAAG;AAEvD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,IAAI,EACA,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;IACX,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@griddle/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Headless grid/canvas engine. Zero runtime dependencies.",
5
5
  "keywords": [
6
6
  "grid",
@@ -37,7 +37,10 @@
37
37
  "import": "./dist/index.js"
38
38
  }
39
39
  },
40
- "files": ["dist", "src"],
40
+ "files": [
41
+ "dist",
42
+ "src"
43
+ ],
41
44
  "engines": {
42
45
  "node": ">=18"
43
46
  },
package/src/types.ts CHANGED
@@ -169,6 +169,18 @@ export interface LoopConfig {
169
169
  physics?: LoopPhysicsConfig;
170
170
  }
171
171
 
172
+ /** Interaction gates. All fields default on; omit for standard behavior. */
173
+ export interface InteractiveConfig {
174
+ /**
175
+ * Whether dragging on empty grid space draws a new tile ("draw-to-create"),
176
+ * emitting a drawCreate event on release. Default true. When false, empty-
177
+ * space pointer-downs are ignored entirely — no draw ghost, no pointer
178
+ * capture, and no selection clear — so a host page that owns scrolling keeps
179
+ * its native pan/scroll behavior.
180
+ */
181
+ drawToCreate?: boolean;
182
+ }
183
+
172
184
  /** Grid configuration. */
173
185
  export interface GridConfig {
174
186
  /** Columns. Use Infinity for horizontally infinite canvas. */
@@ -229,6 +241,25 @@ export interface GridConfig {
229
241
  * `'a, button, input, textarea, select, [contenteditable], .my-caption'`.
230
242
  */
231
243
  dragIgnoreFrom?: string;
244
+ /**
245
+ * How the grid manages its own scroll container. Default 'container'.
246
+ *
247
+ * - 'container' — the grid owns an internal scroll box: `overflow: auto`,
248
+ * `touch-action: none` (the grid captures pan/scroll), and height taken
249
+ * from the adapter's `height` prop (default 100%). Use when the grid is the
250
+ * top-level scroller of a canvas-style app.
251
+ * - 'none' — the grid does not create its own scroll box: `overflow: visible`,
252
+ * no `touch-action` lock, and height sized to its content. The grid grows
253
+ * to its natural size and the host page scrolls. Use when an outer element
254
+ * owns layout/scroll (e.g. a page that scales the grid via
255
+ * `transform: scale()`).
256
+ */
257
+ scroll?: 'container' | 'none';
258
+ /**
259
+ * Interaction gates (e.g. draw-to-create). See InteractiveConfig. All fields
260
+ * default on; omit to keep the standard canvas-style behavior.
261
+ */
262
+ interactive?: InteractiveConfig;
232
263
  /**
233
264
  * Loop mode — the finite grid tiles repeat infinitely in both axes.
234
265
  * Off by default. See LoopConfig.