@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.
- package/AGENTS.md +85 -16
- package/package.json +1 -1
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +22 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-app/tictactoe-app.css.ts +11 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-app/tictactoe-app.ts +22 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-board/tictactoe-board-presentation.ts +13 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-board/tictactoe-board.css.ts +17 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-board/tictactoe-board.ts +18 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-cell/tictactoe-cell-presentation.ts +22 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-cell/tictactoe-cell.css.ts +31 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-cell/tictactoe-cell.ts +41 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-hud/tictactoe-hud-presentation.ts +16 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-hud/tictactoe-hud.css.ts +18 -0
- package/references/data-lit-tictactoe/src/elements/tictactoe-hud/tictactoe-hud.ts +44 -0
- package/references/data-lit-tictactoe/src/main.ts +9 -0
- package/references/data-lit-tictactoe/src/state/agent-plugin.ts +117 -0
- package/references/data-lit-tictactoe/src/state/tictactoe-plugin.ts +56 -0
- package/references/data-lit-tictactoe/src/tictactoe-element.ts +10 -0
- package/references/data-lit-tictactoe/src/types/board-cell.ts +5 -0
- package/references/data-lit-tictactoe/src/types/board-state/board-state.ts +7 -0
- package/references/data-lit-tictactoe/src/types/board-state/create-initial-board.ts +5 -0
- package/references/data-lit-tictactoe/src/types/board-state/current-player.ts +13 -0
- package/references/data-lit-tictactoe/src/types/board-state/derive-status.ts +12 -0
- package/references/data-lit-tictactoe/src/types/board-state/get-cell.ts +7 -0
- package/references/data-lit-tictactoe/src/types/board-state/get-move-count.ts +6 -0
- package/references/data-lit-tictactoe/src/types/board-state/get-winner.ts +14 -0
- package/references/data-lit-tictactoe/src/types/board-state/get-winning-line.ts +25 -0
- package/references/data-lit-tictactoe/src/types/board-state/is-board-full.ts +5 -0
- package/references/data-lit-tictactoe/src/types/board-state/is-cell-playable.ts +13 -0
- package/references/data-lit-tictactoe/src/types/board-state/is-cell-winning.ts +9 -0
- package/references/data-lit-tictactoe/src/types/board-state/is-game-over.ts +8 -0
- package/references/data-lit-tictactoe/src/types/board-state/public.ts +15 -0
- package/references/data-lit-tictactoe/src/types/board-state/schema.ts +10 -0
- package/references/data-lit-tictactoe/src/types/board-state/set-board-cell.ts +13 -0
- package/references/data-lit-tictactoe/src/types/game-status.ts +3 -0
- package/references/data-lit-tictactoe/src/types/move-reject-reason.ts +7 -0
- package/references/data-lit-tictactoe/src/types/play-move-args/can-play-move.ts +33 -0
- package/references/data-lit-tictactoe/src/types/play-move-args/play-move-args.ts +4 -0
- package/references/data-lit-tictactoe/src/types/play-move-args/public.ts +3 -0
- package/references/data-lit-tictactoe/src/types/player-mark/player-mark.ts +7 -0
- package/references/data-lit-tictactoe/src/types/player-mark/public.ts +3 -0
- package/references/data-lit-tictactoe/src/types/player-mark/schema.ts +9 -0
- package/references/data-lit-tictactoe/src/types/winning-line.ts +3 -0
- package/references/data-lit-tictactoe/tsconfig.json +16 -0
- package/references/data-lit-todo/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-hello/src/{App.tsx → app.tsx} +2 -2
- package/references/data-react-hello/src/components/counter/counter-presentation.tsx +13 -0
- package/references/data-react-hello/src/components/counter/counter.tsx +26 -0
- package/references/data-react-hello/src/main.tsx +1 -1
- package/references/data-react-hello/src/state/use-counter-database.ts +6 -0
- package/references/data-react-pixie/package.json +1 -1
- package/references/data-react-pixie/src/{App.tsx → app.tsx} +7 -7
- package/references/data-react-pixie/src/{filter-toggle.tsx → components/filter-selector/filter-selector-presentation.tsx} +9 -15
- package/references/data-react-pixie/src/components/filter-selector/filter-selector.tsx +22 -0
- package/references/data-react-pixie/src/{filters.ts → components/pixie-scene/pixie-filters.ts} +3 -1
- package/references/data-react-pixie/src/components/pixie-scene/pixie-scene-presentation.tsx +18 -0
- package/references/data-react-pixie/src/components/pixie-scene/pixie-scene.tsx +26 -0
- package/references/data-react-pixie/src/components/pixie-scene/pixie-tick.tsx +12 -0
- package/references/data-react-pixie/src/components/sprite/sprite-presentation.tsx +39 -0
- package/references/data-react-pixie/src/components/sprite/sprite.tsx +37 -0
- package/references/data-react-pixie/src/{hooks/use-texture.ts → components/sprite/use-sprite-texture.ts} +3 -1
- package/references/data-react-pixie/src/main.tsx +1 -1
- package/references/data-react-pixie/src/{pixie-plugin.ts → state/pixie-plugin.ts} +4 -7
- package/references/data-react-pixie/src/state/use-pixie-database.ts +6 -0
- package/references/data-react-pixie/src/types/filter-type.ts +3 -0
- package/references/data-react-pixie/src/types/sprite-type/image.ts +14 -0
- package/references/data-react-pixie/src/types/sprite-type/public.ts +4 -0
- package/references/data-react-pixie/src/types/sprite-type/schema.ts +5 -0
- package/references/data-react-pixie/src/types/sprite-type/sprite-type.ts +7 -0
- package/references/data-react-hello/src/Counter.tsx +0 -21
- package/references/data-react-pixie/src/hooks/use-database.ts +0 -6
- package/references/data-react-pixie/src/pixi-react.d.ts +0 -1
- package/references/data-react-pixie/src/sprite-container.tsx +0 -23
- package/references/data-react-pixie/src/sprite-urls.ts +0 -9
- package/references/data-react-pixie/src/sprite.tsx +0 -35
- package/references/data-react-pixie/src/tick.tsx +0 -10
- /package/references/data-react-hello/src/{counter-plugin.ts → state/counter-plugin.ts} +0 -0
- /package/references/data-react-pixie/src/{bunny.png → types/sprite-type/bunny.png} +0 -0
- /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
|
|
4
|
+
import { Boolean } from "@adobe/data/schema";
|
|
5
5
|
import { Vec2, F32 } from "@adobe/data/math";
|
|
6
|
-
|
|
7
|
-
|
|
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:
|
|
13
|
+
sprite: SpriteType.schema,
|
|
17
14
|
hovered: Boolean.schema,
|
|
18
15
|
active: Boolean.schema,
|
|
19
16
|
},
|
|
@@ -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>;
|
|
@@ -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 +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,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
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|