Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a041a93
feat(rendering): tune gel gradients and theme colors
Jesssullivan Apr 30, 2026
3c8196b
feat(motion): harden device orientation tilt source
Jesssullivan Apr 30, 2026
6871a8f
feat(interactions): wire pointer physics and browser motion harness
Jesssullivan Apr 30, 2026
21fa58d
build: harden Bazel npm package validation
Jesssullivan Apr 30, 2026
cf14b04
fix(svelte): guard TinyVectors async init cleanup
Jesssullivan Apr 30, 2026
a484a01
fix(review): address motion calibration feedback
Jesssullivan Apr 30, 2026
5437ff3
fix(review): document calibration and env parsing
Jesssullivan Apr 30, 2026
4a812ad
fix(build): validate bundle size thresholds
Jesssullivan Apr 30, 2026
82afa1f
fix(motion): preserve permission-created device motion
Jesssullivan Apr 30, 2026
3b9a360
fix(package): tighten Svelte peer floor
Jesssullivan Apr 30, 2026
4684fc1
fix(motion): re-engage after reduced motion changes
Jesssullivan Apr 30, 2026
84a7fc8
fix(svelte): clean up scroll listener by setup state
Jesssullivan Apr 30, 2026
c9148d0
test(browser): cover interaction listener cleanup
Jesssullivan Apr 30, 2026
ef26693
fix(motion): gate permission requests after unmount
Jesssullivan Apr 30, 2026
325b6ae
fix(motion): track device motion toggle in setup
Jesssullivan Apr 30, 2026
0d2821f
fix(physics): restore gravity-led gel feel
Jesssullivan Apr 30, 2026
000ee8d
revert(physics): restore pre-phase-a blob feel
Jesssullivan Apr 30, 2026
a1011eb
docs(physics): define field-based feel contract
Jesssullivan Apr 30, 2026
5ebf1dd
docs(release): align renderer truth after restore
Jesssullivan Apr 30, 2026
300fc58
refactor(package): make root exports explicit
Jesssullivan Apr 30, 2026
becf93d
test(bundle): guard inert field helper from consumer bundle
Jesssullivan Apr 30, 2026
93d20a7
fix(motion): neutralize stale device IO
Jesssullivan Apr 30, 2026
176d666
fix(pointer): reset stale pointer IO
Jesssullivan Apr 30, 2026
b35e989
feat(motion): expose device motion status
Jesssullivan Apr 30, 2026
9357969
refactor(motion): share device capability checks
Jesssullivan May 1, 2026
d0a0ffd
fix(physics): remove smoothing order bias
Jesssullivan May 1, 2026
1f2125e
test(browser): assert disabled io starts clean
Jesssullivan May 1, 2026
e2e42e2
fix(motion): neutralize on reduced motion
Jesssullivan May 1, 2026
d4b8778
fix(pointer): reset canceled pointer io
Jesssullivan May 1, 2026
8197ffd
fix(motion): block reduced-motion permission race
Jesssullivan May 1, 2026
c03793f
test(browser): cover reduced-motion listener lifecycle
Jesssullivan May 1, 2026
63c3e52
fix(motion): support legacy reduced-motion listeners
Jesssullivan May 1, 2026
3f011e2
docs(browser): note reduced-motion probe coverage
Jesssullivan May 1, 2026
1a6a1e4
fix(scroll): honor max pull-force config
Jesssullivan May 1, 2026
fe958b4
test(field): harden interaction invariants
Jesssullivan May 1, 2026
236dd1a
test(package): cover scroll handler config exports
Jesssullivan May 1, 2026
a6d8ae4
feat(physics): route gravity through field helper
Jesssullivan May 1, 2026
8c29ece
perf(physics): cache gravity field force
Jesssullivan May 1, 2026
6ad98bd
perf(field): inline directional bias clamp
Jesssullivan May 1, 2026
7da72e3
test(browser): assert orientation direction signs
Jesssullivan May 1, 2026
d254179
docs(physics): record field route status
Jesssullivan May 1, 2026
481a5b9
test(physics): capture pointer state contract
Jesssullivan May 1, 2026
269fe0b
perf(physics): smooth blobs without winding bias
Jesssullivan May 1, 2026
c8d0bbe
fix(physics): compute pointer velocity from current anchor
Jesssullivan May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.direnv
.pnpm-store
bazel-bin
bazel-out
bazel-testlogs
coverage
dist
dist-types
node_modules
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ jobs:
typecheck_command: pnpm run check
unit_test_command: pnpm run test
build_command: pnpm run build
package_check_command: pnpm run check:package
bazel_targets: "//:pkg //:typecheck //:test"
package_check_command: "pnpm run check:package && pnpm run check:bundle-size"
bazel_targets: "//:pkg //:package_consumer_check //:bundle_size_check //:typecheck //:test"
package_dir: ./bazel-bin/pkg
npm_access: public
dry_run: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ jobs:
typecheck_command: pnpm run check
unit_test_command: pnpm run test
build_command: pnpm run build
package_check_command: pnpm run check:package
bazel_targets: "//:pkg //:typecheck //:test"
package_check_command: "pnpm run check:package && pnpm run check:bundle-size"
bazel_targets: "//:pkg //:package_consumer_check //:bundle_size_check //:typecheck //:test"
package_dir: ./bazel-bin/pkg
npm_access: public
dry_run: false
Expand Down
73 changes: 65 additions & 8 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,10 @@ Build strategy:
- vitest for PBT tests (property-based tests using fast-check)
"""

load("@aspect_rules_js//js:defs.bzl", "js_library", "js_run_binary")
load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_library", "js_run_binary")
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
load("@tummycrypt_tinyvectors_npm//:defs.bzl", "npm_link_all_packages")
load("@tummycrypt_tinyvectors_npm//:svelte-check/package_json.bzl", svelte_check_bin = "bin")
load("@tummycrypt_tinyvectors_npm//:typescript/package_json.bzl", typescript_bin = "bin")
load("@tummycrypt_tinyvectors_npm//:vite/package_json.bzl", vite_bin = "bin")
load("@tummycrypt_tinyvectors_npm//:vitest/package_json.bzl", vitest_bin = "bin")

Expand All @@ -29,9 +28,37 @@ load("@tummycrypt_tinyvectors_npm//:vitest/package_json.bzl", vitest_bin = "bin"
npm_link_all_packages(name = "node_modules")

vite_bin.vite_binary(name = "vite")
typescript_bin.tsc_binary(name = "tsc")
svelte_check_bin.svelte_check_binary(name = "svelte_check")

js_binary(
name = "build_declarations",
data = [
":node_modules",
":node_modules/typescript",
"scripts/copy-svelte-declarations.mjs",
],
entry_point = "scripts/build-declarations.mjs",
)

js_binary(
name = "check_package_consumer",
data = [
":node_modules",
":node_modules/svelte",
":node_modules/typescript",
],
entry_point = "scripts/check-package-consumer.mjs",
)

js_binary(
name = "check_bundle_size",
data = [
":node_modules",
":node_modules/vite",
],
entry_point = "scripts/check-bundle-size.mjs",
)


# =============================================================================
# JavaScript package build
Expand Down Expand Up @@ -73,19 +100,18 @@ js_run_binary(

js_run_binary(
name = "tinyvectors_declarations",
tool = "//:tsc",
tool = "//:build_declarations",
srcs = glob([
"src/**/*.ts",
"src/**/*.svelte.d.ts",
]) + [
"package.json",
"pnpm-lock.yaml",
"scripts/copy-svelte-declarations.mjs",
"tsconfig.json",
"tsconfig.declarations.json",
":node_modules",
],
args = [
"-p",
"$(execpath tsconfig.declarations.json)",
":node_modules/typescript",
],
out_dirs = ["dist-types"],
visibility = ["//visibility:public"],
Expand Down Expand Up @@ -121,6 +147,37 @@ npm_package(
visibility = ["//visibility:public"],
)

js_run_binary(
name = "package_consumer_check",
tool = "//:check_package_consumer",
srcs = [
":pkg",
":node_modules",
":node_modules/svelte",
":node_modules/typescript",
],
args = [
"$(rootpath :pkg)",
],
stdout = "package-consumer-check.log",
visibility = ["//visibility:public"],
)

js_run_binary(
name = "bundle_size_check",
tool = "//:check_bundle_size",
srcs = [
":pkg",
":node_modules",
":node_modules/vite",
],
args = [
"$(rootpath :pkg)",
],
stdout = "bundle-size-check.log",
visibility = ["//visibility:public"],
)

# =============================================================================
# Test targets
#
Expand Down
Loading
Loading