@adobe/data 0.9.39 → 0.9.40

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 (82) hide show
  1. package/AGENTS.md +85 -16
  2. package/package.json +1 -1
  3. package/references/data-lit/package.json +1 -1
  4. package/references/data-lit-tictactoe/package.json +22 -0
  5. package/references/data-lit-tictactoe/src/elements/tictactoe-app/tictactoe-app.css.ts +11 -0
  6. package/references/data-lit-tictactoe/src/elements/tictactoe-app/tictactoe-app.ts +22 -0
  7. package/references/data-lit-tictactoe/src/elements/tictactoe-board/tictactoe-board-presentation.ts +13 -0
  8. package/references/data-lit-tictactoe/src/elements/tictactoe-board/tictactoe-board.css.ts +17 -0
  9. package/references/data-lit-tictactoe/src/elements/tictactoe-board/tictactoe-board.ts +18 -0
  10. package/references/data-lit-tictactoe/src/elements/tictactoe-cell/tictactoe-cell-presentation.ts +22 -0
  11. package/references/data-lit-tictactoe/src/elements/tictactoe-cell/tictactoe-cell.css.ts +31 -0
  12. package/references/data-lit-tictactoe/src/elements/tictactoe-cell/tictactoe-cell.ts +41 -0
  13. package/references/data-lit-tictactoe/src/elements/tictactoe-hud/tictactoe-hud-presentation.ts +16 -0
  14. package/references/data-lit-tictactoe/src/elements/tictactoe-hud/tictactoe-hud.css.ts +18 -0
  15. package/references/data-lit-tictactoe/src/elements/tictactoe-hud/tictactoe-hud.ts +44 -0
  16. package/references/data-lit-tictactoe/src/main.ts +9 -0
  17. package/references/data-lit-tictactoe/src/state/agent-plugin.ts +117 -0
  18. package/references/data-lit-tictactoe/src/state/tictactoe-plugin.ts +56 -0
  19. package/references/data-lit-tictactoe/src/tictactoe-element.ts +10 -0
  20. package/references/data-lit-tictactoe/src/types/board-cell.ts +5 -0
  21. package/references/data-lit-tictactoe/src/types/board-state/board-state.ts +7 -0
  22. package/references/data-lit-tictactoe/src/types/board-state/create-initial-board.ts +5 -0
  23. package/references/data-lit-tictactoe/src/types/board-state/current-player.ts +13 -0
  24. package/references/data-lit-tictactoe/src/types/board-state/derive-status.ts +12 -0
  25. package/references/data-lit-tictactoe/src/types/board-state/get-cell.ts +7 -0
  26. package/references/data-lit-tictactoe/src/types/board-state/get-move-count.ts +6 -0
  27. package/references/data-lit-tictactoe/src/types/board-state/get-winner.ts +14 -0
  28. package/references/data-lit-tictactoe/src/types/board-state/get-winning-line.ts +25 -0
  29. package/references/data-lit-tictactoe/src/types/board-state/is-board-full.ts +5 -0
  30. package/references/data-lit-tictactoe/src/types/board-state/is-cell-playable.ts +13 -0
  31. package/references/data-lit-tictactoe/src/types/board-state/is-cell-winning.ts +9 -0
  32. package/references/data-lit-tictactoe/src/types/board-state/is-game-over.ts +8 -0
  33. package/references/data-lit-tictactoe/src/types/board-state/public.ts +15 -0
  34. package/references/data-lit-tictactoe/src/types/board-state/schema.ts +10 -0
  35. package/references/data-lit-tictactoe/src/types/board-state/set-board-cell.ts +13 -0
  36. package/references/data-lit-tictactoe/src/types/game-status.ts +3 -0
  37. package/references/data-lit-tictactoe/src/types/move-reject-reason.ts +7 -0
  38. package/references/data-lit-tictactoe/src/types/play-move-args/can-play-move.ts +33 -0
  39. package/references/data-lit-tictactoe/src/types/play-move-args/play-move-args.ts +4 -0
  40. package/references/data-lit-tictactoe/src/types/play-move-args/public.ts +3 -0
  41. package/references/data-lit-tictactoe/src/types/player-mark/player-mark.ts +7 -0
  42. package/references/data-lit-tictactoe/src/types/player-mark/public.ts +3 -0
  43. package/references/data-lit-tictactoe/src/types/player-mark/schema.ts +9 -0
  44. package/references/data-lit-tictactoe/src/types/winning-line.ts +3 -0
  45. package/references/data-lit-tictactoe/tsconfig.json +16 -0
  46. package/references/data-lit-todo/package.json +1 -1
  47. package/references/data-react/package.json +1 -1
  48. package/references/data-react-hello/package.json +1 -1
  49. package/references/data-react-hello/src/{App.tsx → app.tsx} +2 -2
  50. package/references/data-react-hello/src/components/counter/counter-presentation.tsx +13 -0
  51. package/references/data-react-hello/src/components/counter/counter.tsx +26 -0
  52. package/references/data-react-hello/src/main.tsx +1 -1
  53. package/references/data-react-hello/src/state/use-counter-database.ts +6 -0
  54. package/references/data-react-pixie/package.json +1 -1
  55. package/references/data-react-pixie/src/{App.tsx → app.tsx} +7 -7
  56. package/references/data-react-pixie/src/{filter-toggle.tsx → components/filter-selector/filter-selector-presentation.tsx} +9 -15
  57. package/references/data-react-pixie/src/components/filter-selector/filter-selector.tsx +22 -0
  58. package/references/data-react-pixie/src/{filters.ts → components/pixie-scene/pixie-filters.ts} +3 -1
  59. package/references/data-react-pixie/src/components/pixie-scene/pixie-scene-presentation.tsx +18 -0
  60. package/references/data-react-pixie/src/components/pixie-scene/pixie-scene.tsx +26 -0
  61. package/references/data-react-pixie/src/components/pixie-scene/pixie-tick.tsx +12 -0
  62. package/references/data-react-pixie/src/components/sprite/sprite-presentation.tsx +39 -0
  63. package/references/data-react-pixie/src/components/sprite/sprite.tsx +37 -0
  64. package/references/data-react-pixie/src/{hooks/use-texture.ts → components/sprite/use-sprite-texture.ts} +3 -1
  65. package/references/data-react-pixie/src/main.tsx +1 -1
  66. package/references/data-react-pixie/src/{pixie-plugin.ts → state/pixie-plugin.ts} +4 -7
  67. package/references/data-react-pixie/src/state/use-pixie-database.ts +6 -0
  68. package/references/data-react-pixie/src/types/filter-type.ts +3 -0
  69. package/references/data-react-pixie/src/types/sprite-type/image.ts +14 -0
  70. package/references/data-react-pixie/src/types/sprite-type/public.ts +4 -0
  71. package/references/data-react-pixie/src/types/sprite-type/schema.ts +5 -0
  72. package/references/data-react-pixie/src/types/sprite-type/sprite-type.ts +7 -0
  73. package/references/data-react-hello/src/Counter.tsx +0 -21
  74. package/references/data-react-pixie/src/hooks/use-database.ts +0 -6
  75. package/references/data-react-pixie/src/pixi-react.d.ts +0 -1
  76. package/references/data-react-pixie/src/sprite-container.tsx +0 -23
  77. package/references/data-react-pixie/src/sprite-urls.ts +0 -9
  78. package/references/data-react-pixie/src/sprite.tsx +0 -35
  79. package/references/data-react-pixie/src/tick.tsx +0 -10
  80. /package/references/data-react-hello/src/{counter-plugin.ts → state/counter-plugin.ts} +0 -0
  81. /package/references/data-react-pixie/src/{bunny.png → types/sprite-type/bunny.png} +0 -0
  82. /package/references/data-react-pixie/src/{fox.png → types/sprite-type/fox.png} +0 -0
@@ -1,19 +1,16 @@
1
1
  // © 2026 Adobe. MIT License. See /LICENSE for details.
2
2
 
3
3
  import { Database } from "@adobe/data/ecs";
4
- import { Boolean, Schema } from "@adobe/data/schema";
4
+ import { Boolean } from "@adobe/data/schema";
5
5
  import { Vec2, F32 } from "@adobe/data/math";
6
-
7
- export const spriteTypeSchema = { enum: ["bunny", "fox"] } as const satisfies Schema;
8
- export type SpriteType = Schema.ToType<typeof spriteTypeSchema>;
9
-
10
- export type FilterType = "none" | "sepia" | "blur" | "vintage" | "night";
6
+ import type { FilterType } from "../types/filter-type";
7
+ import { SpriteType } from "../types/sprite-type/sprite-type";
11
8
 
12
9
  export const pixiePlugin = Database.Plugin.create({
13
10
  components: {
14
11
  position: Vec2.schema,
15
12
  rotation: F32.schema,
16
- sprite: spriteTypeSchema,
13
+ sprite: SpriteType.schema,
17
14
  hovered: Boolean.schema,
18
15
  active: Boolean.schema,
19
16
  },
@@ -0,0 +1,6 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+
3
+ import { useDatabase as useDatabaseHook } from "@adobe/data-react";
4
+ import { pixiePlugin } from "./pixie-plugin";
5
+
6
+ export const usePixieDatabase = () => useDatabaseHook(pixiePlugin);
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+
3
+ export type FilterType = "none" | "sepia" | "blur" | "vintage" | "night";
@@ -0,0 +1,14 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+
3
+ import { Schema } from "@adobe/data/schema";
4
+ import { schema } from "./schema";
5
+
6
+ import bunnyUrl from "./bunny.png";
7
+ import foxUrl from "./fox.png";
8
+
9
+ type SpriteType = Schema.ToType<typeof schema>;
10
+
11
+ export const image = {
12
+ bunny: bunnyUrl,
13
+ fox: foxUrl,
14
+ } as const satisfies Record<SpriteType, string>;
@@ -0,0 +1,4 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+
3
+ export { schema } from "./schema";
4
+ export { image } from "./image";
@@ -0,0 +1,5 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+
3
+ import { Schema } from "@adobe/data/schema";
4
+
5
+ export const schema = { enum: ["bunny", "fox"] } as const satisfies Schema;
@@ -0,0 +1,7 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+
3
+ import { Schema } from "@adobe/data/schema";
4
+ import { schema } from "./schema";
5
+
6
+ export type SpriteType = Schema.ToType<typeof schema>;
7
+ export * as SpriteType from "./public";
@@ -1,21 +0,0 @@
1
- // © 2026 Adobe. MIT License. See /LICENSE for details.
2
-
3
- import { useDatabase, useObservableValues } from "@adobe/data-react";
4
- import { counterPlugin } from "./counter-plugin";
5
-
6
- export function Counter() {
7
- const db = useDatabase(counterPlugin);
8
- const values = useObservableValues(() => ({
9
- count: db.observe.resources.count,
10
- }));
11
-
12
- if (!values) return null;
13
- return (
14
- <div>
15
- <p className="counter">Count: {values.count}</p>
16
- <button type="button" onClick={() => db.transactions.increment()}>
17
- Increment
18
- </button>
19
- </div>
20
- );
21
- }
@@ -1,6 +0,0 @@
1
- import { useDatabase as useDatabaseHook } from '@adobe/data-react';
2
- import { pixiePlugin } from '../pixie-plugin';
3
-
4
- export function useDatabase() {
5
- return useDatabaseHook(pixiePlugin);
6
- }
@@ -1 +0,0 @@
1
- /// <reference types="@pixi/react" />
@@ -1,23 +0,0 @@
1
- import { useObservableValues } from "@adobe/data-react";
2
- import { useDatabase } from "./hooks/use-database";
3
- import { getFiltersForType } from "./filters";
4
- import { Sprite } from "./sprite";
5
-
6
- export function SpriteContainer() {
7
- const db = useDatabase();
8
- const values = useObservableValues(() => ({
9
- sprites: db.observe.select(db.archetypes.Sprite.components),
10
- filterType: db.observe.resources.filterType,
11
- }), []);
12
- if (!values) return;
13
-
14
- const filters = getFiltersForType(values.filterType ?? "none");
15
-
16
- return (
17
- <pixiContainer filters={filters}>
18
- {values.sprites.map((entity) => (
19
- <Sprite key={entity} entity={entity} />
20
- ))}
21
- </pixiContainer>
22
- );
23
- }
@@ -1,9 +0,0 @@
1
- import type { SpriteType } from "./pixie-plugin";
2
-
3
- import bunnyUrl from "./bunny.png";
4
- import foxUrl from "./fox.png";
5
-
6
- export const SPRITE_URLS: Record<SpriteType, string> = {
7
- bunny: bunnyUrl,
8
- fox: foxUrl,
9
- };
@@ -1,35 +0,0 @@
1
- import { Entity } from '@adobe/data/ecs';
2
- import { useObservableValues } from '@adobe/data-react';
3
- import { useDatabase } from './hooks/use-database';
4
- import { useTexture } from './hooks/use-texture';
5
- import { SPRITE_URLS } from './sprite-urls';
6
-
7
- export function Sprite({ entity }: { entity: Entity }) {
8
- const db = useDatabase();
9
- const values = useObservableValues(
10
- () => ({
11
- sprite: db.observe.entity(entity, db.archetypes.Sprite)
12
- }),
13
- [entity],
14
- );
15
-
16
- const spriteType = values?.sprite?.sprite ?? 'bunny';
17
- const texture = useTexture( SPRITE_URLS[spriteType]);
18
- if (!values?.sprite) return null;
19
- const { sprite } = values;
20
-
21
- return (
22
- <pixiSprite
23
- anchor={0.5}
24
- eventMode={'static'}
25
- onClick={() => db.transactions.toggleSpriteActive({ entity })}
26
- onPointerOver={() => db.transactions.setSpriteHovered({ entity, hovered: true })}
27
- onPointerOut={() => db.transactions.setSpriteHovered({ entity, hovered: false })}
28
- scale={sprite.active ? 1.5 : sprite.hovered ? 1.25 : 1}
29
- texture={texture}
30
- x={sprite.position[0]}
31
- y={sprite.position[1]}
32
- rotation={sprite.rotation}
33
- />
34
- );
35
- }
@@ -1,10 +0,0 @@
1
- import { useTick } from "@pixi/react";
2
- import { useDatabase } from "./hooks/use-database";
3
-
4
- export function Tick() {
5
- const db = useDatabase();
6
- useTick((ticker) => {
7
- db.transactions.tick(ticker.deltaTime);
8
- });
9
- return null;
10
- }