@pibbl/core 0.0.2 → 0.0.3-alpha.90.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.
Files changed (285) hide show
  1. package/THIRD_PARTY_NOTICES.txt +81 -0
  2. package/dist/features/textures/index.d.ts +12 -2
  3. package/dist/features/textures/index.js +33 -1
  4. package/dist/features/textures/index.js.map +2 -2
  5. package/dist/features/textures/lib/chemical-field.d.ts +56 -0
  6. package/dist/features/textures/lib/chemical-field.js +154 -0
  7. package/dist/features/textures/lib/chemical-field.js.map +7 -0
  8. package/dist/features/textures/lib/chemical-recipes.d.ts +119 -0
  9. package/dist/features/textures/lib/chemical-recipes.js +275 -0
  10. package/dist/features/textures/lib/chemical-recipes.js.map +7 -0
  11. package/dist/features/textures/lib/definitions.d.ts +3 -18
  12. package/dist/features/textures/lib/definitions.js +15 -20
  13. package/dist/features/textures/lib/definitions.js.map +2 -2
  14. package/dist/features/textures/lib/geometric-patterns.d.ts +149 -0
  15. package/dist/features/textures/lib/geometric-patterns.js +305 -0
  16. package/dist/features/textures/lib/geometric-patterns.js.map +7 -0
  17. package/dist/features/textures/lib/gray-scott.d.ts +55 -0
  18. package/dist/features/textures/lib/gray-scott.js +39 -0
  19. package/dist/features/textures/lib/gray-scott.js.map +7 -0
  20. package/dist/features/textures/lib/patterns.d.ts +123 -0
  21. package/dist/features/textures/lib/patterns.js +344 -0
  22. package/dist/features/textures/lib/patterns.js.map +7 -0
  23. package/dist/features/textures/lib/reaction-diffusion.d.ts +3 -2
  24. package/dist/features/textures/lib/reaction-diffusion.js +9 -20
  25. package/dist/features/textures/lib/reaction-diffusion.js.map +2 -2
  26. package/dist/features/textures/lib/simulation.d.ts +10 -4
  27. package/dist/features/textures/lib/simulation.js +23 -13
  28. package/dist/features/textures/lib/simulation.js.map +2 -2
  29. package/dist/features/viz/index.d.ts +68 -6
  30. package/dist/features/viz/index.js +164 -2
  31. package/dist/features/viz/index.js.map +2 -2
  32. package/dist/features/viz/inspection/bar.d.ts +79 -0
  33. package/dist/features/viz/inspection/bar.js +49 -0
  34. package/dist/features/viz/inspection/bar.js.map +7 -0
  35. package/dist/features/viz/inspection/candle.d.ts +156 -0
  36. package/dist/features/viz/inspection/candle.js +120 -0
  37. package/dist/features/viz/inspection/candle.js.map +7 -0
  38. package/dist/features/viz/inspection/capture-types.d.ts +65 -0
  39. package/dist/features/viz/inspection/capture.d.ts +16 -0
  40. package/dist/features/viz/inspection/capture.js +49 -0
  41. package/dist/features/viz/inspection/capture.js.map +7 -0
  42. package/dist/features/viz/inspection/handler.d.ts +36 -0
  43. package/dist/features/viz/inspection/handler.js +91 -0
  44. package/dist/features/viz/inspection/handler.js.map +7 -0
  45. package/dist/features/viz/inspection/ohlc-bar.d.ts +132 -0
  46. package/dist/features/viz/inspection/ohlc-bar.js +118 -0
  47. package/dist/features/viz/inspection/ohlc-bar.js.map +7 -0
  48. package/dist/features/viz/inspection/owned-ref.d.ts +16 -0
  49. package/dist/features/viz/inspection/owned-ref.js +99 -0
  50. package/dist/features/viz/inspection/owned-ref.js.map +7 -0
  51. package/dist/features/viz/inspection/painted-point.d.ts +22 -0
  52. package/dist/features/viz/inspection/painted-point.js +29 -0
  53. package/dist/features/viz/inspection/painted-point.js.map +7 -0
  54. package/dist/features/viz/inspection/queries.d.ts +100 -0
  55. package/dist/features/viz/inspection/queries.js +192 -0
  56. package/dist/features/viz/inspection/queries.js.map +7 -0
  57. package/dist/features/viz/inspection/query-types.d.ts +177 -0
  58. package/dist/features/viz/inspection/volume.d.ts +104 -0
  59. package/dist/features/viz/inspection/volume.js +95 -0
  60. package/dist/features/viz/inspection/volume.js.map +7 -0
  61. package/dist/features/viz/inspection.d.ts +19 -0
  62. package/dist/features/viz/inspection.js +54 -0
  63. package/dist/features/viz/inspection.js.map +7 -0
  64. package/dist/features/viz/inspection.mjs +1 -0
  65. package/dist/features/viz/lib/area-series.d.ts +62 -0
  66. package/dist/features/viz/lib/area-series.js +120 -0
  67. package/dist/features/viz/lib/area-series.js.map +7 -0
  68. package/dist/features/viz/lib/axis.js +1 -1
  69. package/dist/features/viz/lib/axis.js.map +2 -2
  70. package/dist/features/viz/lib/bar-series.d.ts +3 -1
  71. package/dist/features/viz/lib/bar-series.js +16 -1
  72. package/dist/features/viz/lib/bar-series.js.map +2 -2
  73. package/dist/features/viz/lib/baseline-series.d.ts +55 -0
  74. package/dist/features/viz/lib/baseline-series.js +136 -0
  75. package/dist/features/viz/lib/baseline-series.js.map +7 -0
  76. package/dist/features/viz/lib/candlestick-series.d.ts +62 -0
  77. package/dist/features/viz/lib/candlestick-series.js +150 -0
  78. package/dist/features/viz/lib/candlestick-series.js.map +7 -0
  79. package/dist/features/viz/lib/censored-point-series.d.ts +71 -0
  80. package/dist/features/viz/lib/censored-point-series.js +129 -0
  81. package/dist/features/viz/lib/censored-point-series.js.map +7 -0
  82. package/dist/features/viz/lib/color-context.d.ts +4 -0
  83. package/dist/features/viz/lib/color-context.js +41 -0
  84. package/dist/features/viz/lib/color-context.js.map +7 -0
  85. package/dist/features/viz/lib/color-math.d.ts +4 -0
  86. package/dist/features/viz/lib/color-math.js +31 -0
  87. package/dist/features/viz/lib/color-math.js.map +7 -0
  88. package/dist/features/viz/lib/color-types.d.ts +53 -0
  89. package/dist/features/viz/lib/curve-definition.d.ts +49 -0
  90. package/dist/features/viz/lib/curve-definition.js +148 -0
  91. package/dist/features/viz/lib/curve-definition.js.map +7 -0
  92. package/dist/features/viz/lib/diverging-color-scale.d.ts +11 -0
  93. package/dist/features/viz/lib/diverging-color-scale.js +51 -0
  94. package/dist/features/viz/lib/diverging-color-scale.js.map +7 -0
  95. package/dist/features/viz/lib/domain-navigation.d.ts +40 -0
  96. package/dist/features/viz/lib/domain-navigation.js +77 -0
  97. package/dist/features/viz/lib/domain-navigation.js.map +7 -0
  98. package/dist/features/viz/lib/editable-chart-elements.d.ts +178 -0
  99. package/dist/features/viz/lib/editable-chart-elements.js +733 -0
  100. package/dist/features/viz/lib/editable-chart-elements.js.map +7 -0
  101. package/dist/features/viz/lib/financial-aggregation.d.ts +127 -0
  102. package/dist/features/viz/lib/financial-aggregation.js +116 -0
  103. package/dist/features/viz/lib/financial-aggregation.js.map +7 -0
  104. package/dist/features/viz/lib/financial-autoscale.d.ts +64 -0
  105. package/dist/features/viz/lib/financial-autoscale.js +61 -0
  106. package/dist/features/viz/lib/financial-autoscale.js.map +7 -0
  107. package/dist/features/viz/lib/financial-comparison.d.ts +62 -0
  108. package/dist/features/viz/lib/financial-comparison.js +98 -0
  109. package/dist/features/viz/lib/financial-comparison.js.map +7 -0
  110. package/dist/features/viz/lib/financial-geometry.d.ts +77 -0
  111. package/dist/features/viz/lib/financial-geometry.js +67 -0
  112. package/dist/features/viz/lib/financial-geometry.js.map +7 -0
  113. package/dist/features/viz/lib/financial-indicators.d.ts +114 -0
  114. package/dist/features/viz/lib/financial-indicators.js +135 -0
  115. package/dist/features/viz/lib/financial-indicators.js.map +7 -0
  116. package/dist/features/viz/lib/financial-oscillators.d.ts +171 -0
  117. package/dist/features/viz/lib/financial-oscillators.js +265 -0
  118. package/dist/features/viz/lib/financial-oscillators.js.map +7 -0
  119. package/dist/features/viz/lib/graph/bipartite.d.ts +14 -0
  120. package/dist/features/viz/lib/graph/bipartite.js +250 -0
  121. package/dist/features/viz/lib/graph/bipartite.js.map +7 -0
  122. package/dist/features/viz/lib/graph/chord.d.ts +44 -0
  123. package/dist/features/viz/lib/graph/chord.js +348 -0
  124. package/dist/features/viz/lib/graph/chord.js.map +7 -0
  125. package/dist/features/viz/lib/graph/dependency.d.ts +26 -0
  126. package/dist/features/viz/lib/graph/dependency.js +141 -0
  127. package/dist/features/viz/lib/graph/dependency.js.map +7 -0
  128. package/dist/features/viz/lib/graph/force.d.ts +28 -0
  129. package/dist/features/viz/lib/graph/force.js +580 -0
  130. package/dist/features/viz/lib/graph/force.js.map +7 -0
  131. package/dist/features/viz/lib/graph/hierarchy.d.ts +21 -0
  132. package/dist/features/viz/lib/graph/hierarchy.js +112 -0
  133. package/dist/features/viz/lib/graph/hierarchy.js.map +7 -0
  134. package/dist/features/viz/lib/graph/icicle.d.ts +16 -0
  135. package/dist/features/viz/lib/graph/icicle.js +153 -0
  136. package/dist/features/viz/lib/graph/icicle.js.map +7 -0
  137. package/dist/features/viz/lib/graph/matrix.d.ts +30 -0
  138. package/dist/features/viz/lib/graph/matrix.js +243 -0
  139. package/dist/features/viz/lib/graph/matrix.js.map +7 -0
  140. package/dist/features/viz/lib/graph/neighborhood.d.ts +11 -0
  141. package/dist/features/viz/lib/graph/neighborhood.js +281 -0
  142. package/dist/features/viz/lib/graph/neighborhood.js.map +7 -0
  143. package/dist/features/viz/lib/graph/routes.d.ts +35 -0
  144. package/dist/features/viz/lib/graph/routes.js +102 -0
  145. package/dist/features/viz/lib/graph/routes.js.map +7 -0
  146. package/dist/features/viz/lib/graph/sankey.d.ts +44 -0
  147. package/dist/features/viz/lib/graph/sankey.js +341 -0
  148. package/dist/features/viz/lib/graph/sankey.js.map +7 -0
  149. package/dist/features/viz/lib/graph/shared.d.ts +59 -0
  150. package/dist/features/viz/lib/graph/shared.js +296 -0
  151. package/dist/features/viz/lib/graph/shared.js.map +7 -0
  152. package/dist/features/viz/lib/graph/tree.d.ts +11 -0
  153. package/dist/features/viz/lib/graph/tree.js +232 -0
  154. package/dist/features/viz/lib/graph/tree.js.map +7 -0
  155. package/dist/features/viz/lib/graph/treemap.d.ts +20 -0
  156. package/dist/features/viz/lib/graph/treemap.js +227 -0
  157. package/dist/features/viz/lib/graph/treemap.js.map +7 -0
  158. package/dist/features/viz/lib/graph/types.d.ts +1097 -0
  159. package/dist/features/viz/lib/hover-data.d.ts +1 -1
  160. package/dist/features/viz/lib/hover-data.js +5 -2
  161. package/dist/features/viz/lib/hover-data.js.map +2 -2
  162. package/dist/features/viz/lib/interval-band-series.d.ts +49 -0
  163. package/dist/features/viz/lib/interval-band-series.js +136 -0
  164. package/dist/features/viz/lib/interval-band-series.js.map +7 -0
  165. package/dist/features/viz/lib/interval-diamond-series.d.ts +43 -0
  166. package/dist/features/viz/lib/interval-diamond-series.js +124 -0
  167. package/dist/features/viz/lib/interval-diamond-series.js.map +7 -0
  168. package/dist/features/viz/lib/interval-series.d.ts +79 -0
  169. package/dist/features/viz/lib/interval-series.js +158 -0
  170. package/dist/features/viz/lib/interval-series.js.map +7 -0
  171. package/dist/features/viz/lib/line-series.d.ts +1 -1
  172. package/dist/features/viz/lib/line-series.js +47 -28
  173. package/dist/features/viz/lib/line-series.js.map +2 -2
  174. package/dist/features/viz/lib/linear-scale.js +1 -1
  175. package/dist/features/viz/lib/linear-scale.js.map +2 -2
  176. package/dist/features/viz/lib/monotone-curve.d.ts +11 -0
  177. package/dist/features/viz/lib/monotone-curve.js +63 -0
  178. package/dist/features/viz/lib/monotone-curve.js.map +7 -0
  179. package/dist/features/viz/lib/numeric-range-interpolation.d.ts +15 -0
  180. package/dist/features/viz/lib/numeric-range-interpolation.js +36 -0
  181. package/dist/features/viz/lib/numeric-range-interpolation.js.map +7 -0
  182. package/dist/features/viz/lib/ohlc-bar-series.d.ts +55 -0
  183. package/dist/features/viz/lib/ohlc-bar-series.js +168 -0
  184. package/dist/features/viz/lib/ohlc-bar-series.js.map +7 -0
  185. package/dist/features/viz/lib/paired-series.d.ts +44 -0
  186. package/dist/features/viz/lib/paired-series.js +93 -0
  187. package/dist/features/viz/lib/paired-series.js.map +7 -0
  188. package/dist/features/viz/lib/plot-series.js +11 -6
  189. package/dist/features/viz/lib/plot-series.js.map +2 -2
  190. package/dist/features/viz/lib/plot-types.d.ts +4 -3
  191. package/dist/features/viz/lib/point-series.d.ts +1 -1
  192. package/dist/features/viz/lib/point-series.js +36 -9
  193. package/dist/features/viz/lib/point-series.js.map +2 -2
  194. package/dist/features/viz/lib/point-types.d.ts +5 -2
  195. package/dist/features/viz/lib/scale-context.d.ts +1 -1
  196. package/dist/features/viz/lib/scale-ticks.js +21 -6
  197. package/dist/features/viz/lib/scale-ticks.js.map +2 -2
  198. package/dist/features/viz/lib/sequential-color-scale.d.ts +11 -0
  199. package/dist/features/viz/lib/sequential-color-scale.js +49 -0
  200. package/dist/features/viz/lib/sequential-color-scale.js.map +7 -0
  201. package/dist/features/viz/lib/series-position.d.ts +12 -0
  202. package/dist/features/viz/lib/series-position.js +44 -0
  203. package/dist/features/viz/lib/series-position.js.map +7 -0
  204. package/dist/features/viz/lib/step-curves.d.ts +19 -0
  205. package/dist/features/viz/lib/step-curves.js +53 -0
  206. package/dist/features/viz/lib/step-curves.js.map +7 -0
  207. package/dist/features/viz/lib/threshold-color-scale.d.ts +43 -0
  208. package/dist/features/viz/lib/threshold-color-scale.js +59 -0
  209. package/dist/features/viz/lib/threshold-color-scale.js.map +7 -0
  210. package/dist/features/viz/lib/trading-time-mapping.d.ts +32 -0
  211. package/dist/features/viz/lib/trading-time-mapping.js +89 -0
  212. package/dist/features/viz/lib/trading-time-mapping.js.map +7 -0
  213. package/dist/features/viz/lib/trading-time-scale.d.ts +83 -0
  214. package/dist/features/viz/lib/trading-time-scale.js +96 -0
  215. package/dist/features/viz/lib/trading-time-scale.js.map +7 -0
  216. package/dist/features/viz/lib/trajectory-series.d.ts +71 -0
  217. package/dist/features/viz/lib/trajectory-series.js +111 -0
  218. package/dist/features/viz/lib/trajectory-series.js.map +7 -0
  219. package/dist/features/viz/lib/types.d.ts +20 -4
  220. package/dist/features/viz/lib/use-continuous-scale.js +6 -1
  221. package/dist/features/viz/lib/use-continuous-scale.js.map +2 -2
  222. package/dist/features/viz/lib/volume-series.d.ts +59 -0
  223. package/dist/features/viz/lib/volume-series.js +117 -0
  224. package/dist/features/viz/lib/volume-series.js.map +7 -0
  225. package/dist/features/viz/lib/weighted-point-series.d.ts +71 -0
  226. package/dist/features/viz/lib/weighted-point-series.js +169 -0
  227. package/dist/features/viz/lib/weighted-point-series.js.map +7 -0
  228. package/dist/filters/backdrop-contrast-gpu.d.ts +5 -0
  229. package/dist/filters/backdrop-contrast-gpu.js +33 -0
  230. package/dist/filters/backdrop-contrast-gpu.js.map +7 -0
  231. package/dist/filters/backdrop-contrast.d.ts +21 -0
  232. package/dist/filters/backdrop-contrast.js +61 -0
  233. package/dist/filters/backdrop-contrast.js.map +7 -0
  234. package/dist/filters/emboss-gpu.d.ts +4 -0
  235. package/dist/filters/emboss-gpu.js +39 -0
  236. package/dist/filters/emboss-gpu.js.map +7 -0
  237. package/dist/filters/emboss.d.ts +32 -0
  238. package/dist/filters/emboss.js +106 -0
  239. package/dist/filters/emboss.js.map +7 -0
  240. package/dist/filters/filter-executor.d.ts +11 -4
  241. package/dist/filters/filter-executor.js +104 -49
  242. package/dist/filters/filter-executor.js.map +2 -2
  243. package/dist/filters/reflection-gpu.d.ts +3 -1
  244. package/dist/filters/reflection-gpu.js +5 -2
  245. package/dist/filters/reflection-gpu.js.map +2 -2
  246. package/dist/filters/render-backdrop-contrast-boundary.d.ts +31 -0
  247. package/dist/filters/render-backdrop-contrast-boundary.js +116 -0
  248. package/dist/filters/render-backdrop-contrast-boundary.js.map +7 -0
  249. package/dist/filters/render-emboss-boundary.d.ts +13 -0
  250. package/dist/filters/render-emboss-boundary.js +131 -0
  251. package/dist/filters/render-emboss-boundary.js.map +7 -0
  252. package/dist/filters.d.ts +9 -5
  253. package/dist/filters.js +4 -0
  254. package/dist/filters.js.map +2 -2
  255. package/dist/index.d.ts +2 -0
  256. package/dist/index.js +3 -0
  257. package/dist/index.js.map +2 -2
  258. package/dist/internal.d.ts +2 -0
  259. package/dist/internal.js +4 -0
  260. package/dist/internal.js.map +2 -2
  261. package/dist/lib/events/event-facade.d.ts +13 -0
  262. package/dist/lib/events/event-facade.js +23 -0
  263. package/dist/lib/events/event-facade.js.map +2 -2
  264. package/dist/lib/events/propagation.js +19 -14
  265. package/dist/lib/events/propagation.js.map +2 -2
  266. package/dist/lib/execute-render.js +13 -0
  267. package/dist/lib/execute-render.js.map +2 -2
  268. package/dist/lib/recording/recording.d.ts +43 -0
  269. package/dist/lib/recording/recording.js +555 -0
  270. package/dist/lib/recording/recording.js.map +7 -0
  271. package/dist/lib/recording/types.d.ts +118 -0
  272. package/dist/lib/recording/wasm-bytes.d.ts +1 -0
  273. package/dist/lib/recording/wasm-bytes.js +5 -0
  274. package/dist/lib/recording/wasm-bytes.js.map +7 -0
  275. package/dist/lib/recording/worker-source.d.ts +1 -0
  276. package/dist/lib/recording/worker-source.js +5 -0
  277. package/dist/lib/recording/worker-source.js.map +7 -0
  278. package/dist/lib/render-transaction.d.ts +5 -2
  279. package/dist/lib/render-transaction.js +23 -1
  280. package/dist/lib/render-transaction.js.map +2 -2
  281. package/dist/lib/series-inspection-frame.d.ts +18 -0
  282. package/dist/lib/series-inspection-frame.js +70 -0
  283. package/dist/lib/series-inspection-frame.js.map +7 -0
  284. package/dist/lib/types.d.ts +6 -0
  285. package/package.json +10 -2
@@ -0,0 +1,31 @@
1
+ import type { PibblInstance } from "../lib/types.js";
2
+ import type { FilterWindows } from "../lib/filter/filter-region.js";
3
+ import type { FilterBackdrop } from "./filter-executor.js";
4
+ import { BackdropContrastGpu } from "./backdrop-contrast-gpu.js";
5
+ declare class BackdropContrastService {
6
+ private readonly instance;
7
+ readonly gpu: BackdropContrastGpu;
8
+ private readonly backdrop;
9
+ private readonly palette;
10
+ private revision;
11
+ private paletteRevision;
12
+ private colors;
13
+ private committed;
14
+ private disposed;
15
+ used: boolean;
16
+ constructor(instance: PibblInstance);
17
+ beginRender(): void;
18
+ endRender(success: boolean): void;
19
+ apply(source: OffscreenCanvas, windows: FilterWindows, input: FilterBackdrop, colors: Readonly<{
20
+ light: string;
21
+ dark: string;
22
+ }>): ImageBitmap;
23
+ dispose(): void;
24
+ }
25
+ /** @internal Read-only ownership evidence; never creates resources. */
26
+ export declare function peekBackdropContrastService(instance: PibblInstance): BackdropContrastService | undefined;
27
+ export declare function processBackdropContrast(source: OffscreenCanvas, windows: FilterWindows, backdrop: FilterBackdrop, colors: Readonly<{
28
+ light: string;
29
+ dark: string;
30
+ }>): ImageBitmap;
31
+ export {};
@@ -0,0 +1,116 @@
1
+ import { GLOBAL_STATE } from "../lib/global-state.js";
2
+ import { getOptionalService } from "../lib/optional-services.js";
3
+ import { update } from "../lib/update.js";
4
+ import { BackdropContrastGpu } from "./backdrop-contrast-gpu.js";
5
+ const SERVICE = /* @__PURE__ */ Symbol("pibbl.backdrop-contrast");
6
+ class BackdropContrastService {
7
+ constructor(instance) {
8
+ this.instance = instance;
9
+ this.gpu = new BackdropContrastGpu({
10
+ onContextRestored: () => {
11
+ if (!this.disposed && !instance.mainTeardowns.closed)
12
+ update(instance.canvas, void 0, true);
13
+ }
14
+ });
15
+ }
16
+ instance;
17
+ gpu;
18
+ backdrop = new OffscreenCanvas(1, 1);
19
+ palette = new OffscreenCanvas(2, 1);
20
+ revision = 0;
21
+ paletteRevision = 0;
22
+ colors = "";
23
+ committed = false;
24
+ disposed = false;
25
+ used = false;
26
+ beginRender() {
27
+ this.used = false;
28
+ }
29
+ endRender(success) {
30
+ if (success && this.used) {
31
+ this.committed = true;
32
+ return;
33
+ }
34
+ if (success || !this.committed) this.dispose();
35
+ }
36
+ apply(source, windows, input, colors) {
37
+ this.used = true;
38
+ if (this.backdrop.width !== source.width)
39
+ this.backdrop.width = source.width;
40
+ if (this.backdrop.height !== source.height)
41
+ this.backdrop.height = source.height;
42
+ const context = this.backdrop.getContext("2d");
43
+ if (!context)
44
+ throw new Error("backdropContrast requires OffscreenCanvas 2D.");
45
+ context.reset();
46
+ context.setTransform(input.transform);
47
+ context.drawImage(input.canvas, 0, 0);
48
+ const colorKey = JSON.stringify([colors.light, colors.dark]);
49
+ if (this.colors !== colorKey) {
50
+ const palette = this.palette.getContext("2d");
51
+ if (!palette)
52
+ throw new Error("backdropContrast colors require OffscreenCanvas 2D.");
53
+ palette.reset();
54
+ palette.fillStyle = colors.light;
55
+ palette.fillRect(0, 0, 1, 1);
56
+ palette.fillStyle = colors.dark;
57
+ palette.fillRect(1, 0, 1, 1);
58
+ this.colors = colorKey;
59
+ this.paletteRevision++;
60
+ }
61
+ const raster = (canvas, revision) => ({
62
+ source: canvas,
63
+ width: canvas.width,
64
+ height: canvas.height,
65
+ resource: canvas,
66
+ revision,
67
+ placement: { mode: "stretch" }
68
+ });
69
+ const region = windows.source.logicalBounds;
70
+ return this.gpu.apply(
71
+ source,
72
+ raster(this.backdrop, ++this.revision),
73
+ { raster: raster(this.palette, this.paletteRevision) },
74
+ { opacity: 1, threshold: 0, softness: 1, direction: [0, 1] },
75
+ {
76
+ originX: region.x,
77
+ originY: region.y,
78
+ density: windows.density,
79
+ region
80
+ }
81
+ );
82
+ }
83
+ dispose() {
84
+ if (this.disposed) return;
85
+ this.disposed = true;
86
+ this.gpu.dispose();
87
+ this.backdrop.width = this.backdrop.height = this.palette.width = this.palette.height = 0;
88
+ this.instance.optionalServices.delete(SERVICE);
89
+ }
90
+ }
91
+ function peekBackdropContrastService(instance) {
92
+ return instance.optionalServices.get(SERVICE);
93
+ }
94
+ function processBackdropContrast(source, windows, backdrop, colors) {
95
+ const instance = GLOBAL_STATE.currentPibblInstance;
96
+ if (!instance)
97
+ throw new Error("backdropContrast requires an active Pibbl instance.");
98
+ const service = getOptionalService(
99
+ instance,
100
+ SERVICE,
101
+ () => new BackdropContrastService(instance)
102
+ );
103
+ try {
104
+ return service.apply(source, windows, backdrop, colors);
105
+ } catch (error) {
106
+ throw new Error(
107
+ `backdropContrast processing failed: ${error instanceof Error ? error.message : String(error)}`,
108
+ { cause: error }
109
+ );
110
+ }
111
+ }
112
+ export {
113
+ peekBackdropContrastService,
114
+ processBackdropContrast
115
+ };
116
+ //# sourceMappingURL=render-backdrop-contrast-boundary.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/filters/render-backdrop-contrast-boundary.ts"],
4
+ "sourcesContent": ["import { GLOBAL_STATE } from \"../lib/global-state.js\";\nimport { getOptionalService } from \"../lib/optional-services.js\";\nimport { update } from \"../lib/update.js\";\nimport type { PibblInstance } from \"../lib/types.js\";\nimport type { FilterWindows } from \"../lib/filter/filter-region.js\";\nimport type { FilterBackdrop } from \"./filter-executor.js\";\nimport type { BorrowedTextureRaster } from \"../lib/textures/texture-protocol.js\";\nimport { BackdropContrastGpu } from \"./backdrop-contrast-gpu.js\";\n\nconst SERVICE = Symbol(\"pibbl.backdrop-contrast\");\nclass BackdropContrastService {\n readonly gpu: BackdropContrastGpu;\n private readonly backdrop = new OffscreenCanvas(1, 1);\n private readonly palette = new OffscreenCanvas(2, 1);\n private revision = 0;\n private paletteRevision = 0;\n private colors = \"\";\n private committed = false;\n private disposed = false;\n used = false;\n constructor(private readonly instance: PibblInstance) {\n this.gpu = new BackdropContrastGpu({\n onContextRestored: () => {\n if (!this.disposed && !instance.mainTeardowns.closed)\n update(instance.canvas, undefined, true);\n },\n });\n }\n beginRender(): void {\n this.used = false;\n }\n endRender(success: boolean): void {\n if (success && this.used) {\n this.committed = true;\n return;\n }\n if (success || !this.committed) this.dispose();\n }\n apply(\n source: OffscreenCanvas,\n windows: FilterWindows,\n input: FilterBackdrop,\n colors: Readonly<{ light: string; dark: string }>,\n ): ImageBitmap {\n this.used = true;\n if (this.backdrop.width !== source.width)\n this.backdrop.width = source.width;\n if (this.backdrop.height !== source.height)\n this.backdrop.height = source.height;\n const context = this.backdrop.getContext(\"2d\");\n if (!context)\n throw new Error(\"backdropContrast requires OffscreenCanvas 2D.\");\n context.reset();\n context.setTransform(input.transform);\n context.drawImage(input.canvas, 0, 0);\n const colorKey = JSON.stringify([colors.light, colors.dark]);\n if (this.colors !== colorKey) {\n const palette = this.palette.getContext(\"2d\");\n if (!palette)\n throw new Error(\"backdropContrast colors require OffscreenCanvas 2D.\");\n palette.reset();\n palette.fillStyle = colors.light;\n palette.fillRect(0, 0, 1, 1);\n palette.fillStyle = colors.dark;\n palette.fillRect(1, 0, 1, 1);\n this.colors = colorKey;\n this.paletteRevision++;\n }\n const raster = (\n canvas: OffscreenCanvas,\n revision: number,\n ): BorrowedTextureRaster => ({\n source: canvas,\n width: canvas.width,\n height: canvas.height,\n resource: canvas,\n revision,\n placement: { mode: \"stretch\" },\n });\n const region = windows.source.logicalBounds;\n return this.gpu.apply(\n source,\n raster(this.backdrop, ++this.revision),\n { raster: raster(this.palette, this.paletteRevision) },\n { opacity: 1, threshold: 0, softness: 1, direction: [0, 1] },\n {\n originX: region.x,\n originY: region.y,\n density: windows.density,\n region,\n },\n );\n }\n dispose(): void {\n if (this.disposed) return;\n this.disposed = true;\n this.gpu.dispose();\n this.backdrop.width =\n this.backdrop.height =\n this.palette.width =\n this.palette.height =\n 0;\n this.instance.optionalServices.delete(SERVICE);\n }\n}\n/** @internal Read-only ownership evidence; never creates resources. */\nexport function peekBackdropContrastService(\n instance: PibblInstance,\n): BackdropContrastService | undefined {\n return instance.optionalServices.get(SERVICE) as\n BackdropContrastService | undefined;\n}\nexport function processBackdropContrast(\n source: OffscreenCanvas,\n windows: FilterWindows,\n backdrop: FilterBackdrop,\n colors: Readonly<{ light: string; dark: string }>,\n): ImageBitmap {\n const instance = GLOBAL_STATE.currentPibblInstance;\n if (!instance)\n throw new Error(\"backdropContrast requires an active Pibbl instance.\");\n const service = getOptionalService(\n instance,\n SERVICE,\n () => new BackdropContrastService(instance),\n );\n try {\n return service.apply(source, windows, backdrop, colors);\n } catch (error) {\n throw new Error(\n `backdropContrast processing failed: ${error instanceof Error ? error.message : String(error)}`,\n { cause: error },\n );\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ import { type TexturePaint } from "../lib/textures/texture-protocol.js";
2
+ import type { PibblInstance } from "../lib/types.js";
3
+ import type { FilterWindows } from "../lib/filter/filter-region.js";
4
+ import { EmbossGpu } from "./emboss-gpu.js";
5
+ import type { ReflectionSettings } from "./reflection-gpu.js";
6
+ /** @internal Test-only read-only access; it never creates a GPU service. */
7
+ export declare function peekEmbossGpu(instance: PibblInstance): EmbossGpu | undefined;
8
+ export declare function processEmboss(source: OffscreenCanvas, windows: FilterWindows, paint: TexturePaint, settings: ReflectionSettings, region: Readonly<{
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ }>): ImageBitmap;
@@ -0,0 +1,131 @@
1
+ import {
2
+ borrowTextureRaster
3
+ } from "../lib/textures/texture-protocol.js";
4
+ import { GLOBAL_STATE, getPibblInstance } from "../lib/global-state.js";
5
+ import { getOptionalService } from "../lib/optional-services.js";
6
+ import { update } from "../lib/update.js";
7
+ import { EmbossGpu } from "./emboss-gpu.js";
8
+ const GPU_BORROWER = /* @__PURE__ */ Symbol("pibbl.emboss-borrower");
9
+ const rootServices = /* @__PURE__ */ new WeakMap();
10
+ class RootGpuService {
11
+ constructor(root) {
12
+ this.root = root;
13
+ this.gpu = new EmbossGpu({
14
+ onContextRestored: () => {
15
+ if (this.disposed || this.recoveryRequested || this.root.mainTeardowns.closed)
16
+ return;
17
+ this.recoveryRequested = true;
18
+ for (const borrower of this.borrowers)
19
+ update(borrower.instance.canvas, void 0, true);
20
+ }
21
+ });
22
+ }
23
+ root;
24
+ gpu;
25
+ borrowers = /* @__PURE__ */ new Set();
26
+ disposed = false;
27
+ recoveryRequested = false;
28
+ beginRender() {
29
+ this.recoveryRequested = false;
30
+ }
31
+ pruneMaps() {
32
+ const resources = /* @__PURE__ */ new Set();
33
+ for (const borrower of this.borrowers)
34
+ for (const resource of borrower.resources) resources.add(resource);
35
+ this.gpu.retainMaps(resources);
36
+ }
37
+ dispose() {
38
+ this.disposed = true;
39
+ this.gpu.dispose();
40
+ }
41
+ }
42
+ class GpuBorrower {
43
+ constructor(instance) {
44
+ this.instance = instance;
45
+ let root = instance;
46
+ while (root.parent) root = getPibblInstance(root.parent);
47
+ this.root = root;
48
+ let shared = rootServices.get(root);
49
+ if (!shared) {
50
+ shared = new RootGpuService(root);
51
+ rootServices.set(root, shared);
52
+ }
53
+ this.shared = shared;
54
+ shared.borrowers.add(this);
55
+ }
56
+ instance;
57
+ used = false;
58
+ resources = /* @__PURE__ */ new Set();
59
+ candidates = /* @__PURE__ */ new Set();
60
+ committed = false;
61
+ disposed = false;
62
+ shared;
63
+ root;
64
+ beginRender() {
65
+ this.shared.beginRender();
66
+ this.used = false;
67
+ this.candidates.clear();
68
+ }
69
+ useMap(resource) {
70
+ this.candidates.add(resource);
71
+ }
72
+ endRender(success) {
73
+ if (success && this.used) {
74
+ this.committed = true;
75
+ this.resources = new Set(this.candidates);
76
+ this.shared.pruneMaps();
77
+ return;
78
+ }
79
+ if (success || !this.committed) {
80
+ this.dispose();
81
+ return;
82
+ }
83
+ if (!this.shared.gpu.isContextLost) this.shared.pruneMaps();
84
+ }
85
+ dispose() {
86
+ if (this.disposed) return;
87
+ this.disposed = true;
88
+ this.instance.optionalServices.delete(GPU_BORROWER);
89
+ this.shared.borrowers.delete(this);
90
+ if (this.shared.borrowers.size === 0) {
91
+ rootServices.delete(this.root);
92
+ this.shared.dispose();
93
+ } else this.shared.pruneMaps();
94
+ }
95
+ }
96
+ function peekEmbossGpu(instance) {
97
+ let root = instance;
98
+ while (root.parent) root = getPibblInstance(root.parent);
99
+ return rootServices.get(root)?.gpu;
100
+ }
101
+ function processEmboss(source, windows, paint, settings, region) {
102
+ const instance = GLOBAL_STATE.currentPibblInstance;
103
+ if (!instance) throw new Error("Emboss requires an active Pibbl instance.");
104
+ const borrower = getOptionalService(
105
+ instance,
106
+ GPU_BORROWER,
107
+ () => new GpuBorrower(instance)
108
+ );
109
+ borrower.used = true;
110
+ return borrowTextureRaster(paint, (map) => {
111
+ borrower.useMap(map.resource);
112
+ const coordinates = {
113
+ originX: windows.source.backingX / windows.density,
114
+ originY: windows.source.backingY / windows.density,
115
+ density: windows.density,
116
+ region
117
+ };
118
+ return borrower.shared.gpu.apply(
119
+ source,
120
+ map,
121
+ { color: "#ffffff" },
122
+ settings,
123
+ coordinates
124
+ );
125
+ });
126
+ }
127
+ export {
128
+ peekEmbossGpu,
129
+ processEmboss
130
+ };
131
+ //# sourceMappingURL=render-emboss-boundary.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/filters/render-emboss-boundary.ts"],
4
+ "sourcesContent": ["import {\n borrowTextureRaster,\n type TexturePaint,\n} from \"../lib/textures/texture-protocol.js\";\nimport { GLOBAL_STATE, getPibblInstance } from \"../lib/global-state.js\";\nimport { getOptionalService } from \"../lib/optional-services.js\";\nimport { update } from \"../lib/update.js\";\nimport type { PibblInstance } from \"../lib/types.js\";\nimport type { FilterWindows } from \"../lib/filter/filter-region.js\";\nimport { EmbossGpu } from \"./emboss-gpu.js\";\nimport type { ReflectionSettings } from \"./reflection-gpu.js\";\n\nconst GPU_BORROWER = Symbol(\"pibbl.emboss-borrower\");\nconst rootServices = new WeakMap<PibblInstance, RootGpuService>();\n\nclass RootGpuService {\n readonly gpu: EmbossGpu;\n readonly borrowers = new Set<GpuBorrower>();\n private disposed = false;\n private recoveryRequested = false;\n constructor(private readonly root: PibblInstance) {\n this.gpu = new EmbossGpu({\n onContextRestored: () => {\n if (\n this.disposed ||\n this.recoveryRequested ||\n this.root.mainTeardowns.closed\n )\n return;\n this.recoveryRequested = true;\n for (const borrower of this.borrowers)\n update(borrower.instance.canvas, undefined, true);\n },\n });\n }\n beginRender(): void {\n this.recoveryRequested = false;\n }\n pruneMaps(): void {\n const resources = new Set<object>();\n for (const borrower of this.borrowers)\n for (const resource of borrower.resources) resources.add(resource);\n this.gpu.retainMaps(resources);\n }\n dispose(): void {\n this.disposed = true;\n this.gpu.dispose();\n }\n}\n\nclass GpuBorrower {\n used = false;\n resources = new Set<object>();\n private candidates = new Set<object>();\n private committed = false;\n private disposed = false;\n readonly shared: RootGpuService;\n private readonly root: PibblInstance;\n constructor(readonly instance: PibblInstance) {\n let root = instance;\n while (root.parent) root = getPibblInstance(root.parent);\n this.root = root;\n let shared = rootServices.get(root);\n if (!shared) {\n shared = new RootGpuService(root);\n rootServices.set(root, shared);\n }\n this.shared = shared;\n shared.borrowers.add(this);\n }\n beginRender(): void {\n this.shared.beginRender();\n this.used = false;\n this.candidates.clear();\n }\n useMap(resource: object): void {\n this.candidates.add(resource);\n }\n endRender(success: boolean): void {\n if (success && this.used) {\n this.committed = true;\n this.resources = new Set(this.candidates);\n this.shared.pruneMaps();\n return;\n }\n if (success || !this.committed) {\n this.dispose();\n return;\n }\n if (!this.shared.gpu.isContextLost) this.shared.pruneMaps();\n }\n dispose(): void {\n if (this.disposed) return;\n this.disposed = true;\n this.instance.optionalServices.delete(GPU_BORROWER);\n this.shared.borrowers.delete(this);\n if (this.shared.borrowers.size === 0) {\n rootServices.delete(this.root);\n this.shared.dispose();\n } else this.shared.pruneMaps();\n }\n}\n\n/** @internal Test-only read-only access; it never creates a GPU service. */\nexport function peekEmbossGpu(instance: PibblInstance): EmbossGpu | undefined {\n let root = instance;\n while (root.parent) root = getPibblInstance(root.parent);\n return rootServices.get(root)?.gpu;\n}\n\nexport function processEmboss(\n source: OffscreenCanvas,\n windows: FilterWindows,\n paint: TexturePaint,\n settings: ReflectionSettings,\n region: Readonly<{ x: number; y: number; width: number; height: number }>,\n): ImageBitmap {\n const instance = GLOBAL_STATE.currentPibblInstance;\n if (!instance) throw new Error(\"Emboss requires an active Pibbl instance.\");\n const borrower = getOptionalService(\n instance,\n GPU_BORROWER,\n () => new GpuBorrower(instance),\n );\n borrower.used = true;\n return borrowTextureRaster(paint, (map) => {\n borrower.useMap(map.resource);\n const coordinates = {\n originX: windows.source.backingX / windows.density,\n originY: windows.source.backingY / windows.density,\n density: windows.density,\n region,\n };\n return borrower.shared.gpu.apply(\n source,\n map,\n { color: \"#ffffff\" },\n settings,\n coordinates,\n );\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
package/dist/filters.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- export { blur, brightness, contrast, dropShadow, grayscale, hueRotate, invert, opacity, saturate, sepia, } from './filters/native.js';
2
- export { displacement } from './filters/displacement.js';
3
- export type { PibblFilter, PibblBlurFilterOptions, PibblBrightnessFilterOptions, PibblContrastFilterOptions, PibblDropShadowFilterOptions, PibblGrayscaleFilterOptions, PibblHueRotateFilterOptions, PibblInvertFilterOptions, PibblOpacityFilterOptions, PibblSaturateFilterOptions, PibblSepiaFilterOptions, PibblDisplacementFilterOptions, } from './lib/style/filter-types.js';
4
- export { reflectedLight } from './filters/reflected-light.js';
5
- export type { PibblReflectedLightFilterOptions, PibblReflectedLightSource } from './lib/style/filter-types.js';
1
+ export { blur, brightness, contrast, dropShadow, grayscale, hueRotate, invert, opacity, saturate, sepia, } from "./filters/native.js";
2
+ export { displacement } from "./filters/displacement.js";
3
+ export type { PibblFilter, PibblBlurFilterOptions, PibblBrightnessFilterOptions, PibblContrastFilterOptions, PibblDropShadowFilterOptions, PibblGrayscaleFilterOptions, PibblHueRotateFilterOptions, PibblInvertFilterOptions, PibblOpacityFilterOptions, PibblSaturateFilterOptions, PibblSepiaFilterOptions, PibblDisplacementFilterOptions, } from "./lib/style/filter-types.js";
4
+ export { reflectedLight } from "./filters/reflected-light.js";
5
+ export type { PibblReflectedLightFilterOptions, PibblReflectedLightSource, } from "./lib/style/filter-types.js";
6
+ export { emboss } from "./filters/emboss.js";
7
+ export type { PibblEmbossFilterOptions } from "./filters/emboss.js";
8
+ export { backdropContrast } from "./filters/backdrop-contrast.js";
9
+ export type { PibblBackdropContrastFilterOptions } from "./filters/backdrop-contrast.js";
package/dist/filters.js CHANGED
@@ -12,12 +12,16 @@ import {
12
12
  } from "./filters/native.js";
13
13
  import { displacement } from "./filters/displacement.js";
14
14
  import { reflectedLight } from "./filters/reflected-light.js";
15
+ import { emboss } from "./filters/emboss.js";
16
+ import { backdropContrast } from "./filters/backdrop-contrast.js";
15
17
  export {
18
+ backdropContrast,
16
19
  blur,
17
20
  brightness,
18
21
  contrast,
19
22
  displacement,
20
23
  dropShadow,
24
+ emboss,
21
25
  grayscale,
22
26
  hueRotate,
23
27
  invert,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/filters.ts"],
4
- "sourcesContent": ["export {\n blur,\n brightness,\n contrast,\n dropShadow,\n grayscale,\n hueRotate,\n invert,\n opacity,\n saturate,\n sepia,\n} from './filters/native.js';\nexport { displacement } from './filters/displacement.js';\nexport type {\n PibblFilter,\n PibblBlurFilterOptions,\n PibblBrightnessFilterOptions,\n PibblContrastFilterOptions,\n PibblDropShadowFilterOptions,\n PibblGrayscaleFilterOptions,\n PibblHueRotateFilterOptions,\n PibblInvertFilterOptions,\n PibblOpacityFilterOptions,\n PibblSaturateFilterOptions,\n PibblSepiaFilterOptions,\n PibblDisplacementFilterOptions,\n} from './lib/style/filter-types.js';\n\nexport { reflectedLight } from './filters/reflected-light.js';\nexport type { PibblReflectedLightFilterOptions, PibblReflectedLightSource } from './lib/style/filter-types.js';\n"],
5
- "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAgB7B,SAAS,sBAAsB;",
4
+ "sourcesContent": ["export {\n blur,\n brightness,\n contrast,\n dropShadow,\n grayscale,\n hueRotate,\n invert,\n opacity,\n saturate,\n sepia,\n} from \"./filters/native.js\";\nexport { displacement } from \"./filters/displacement.js\";\nexport type {\n PibblFilter,\n PibblBlurFilterOptions,\n PibblBrightnessFilterOptions,\n PibblContrastFilterOptions,\n PibblDropShadowFilterOptions,\n PibblGrayscaleFilterOptions,\n PibblHueRotateFilterOptions,\n PibblInvertFilterOptions,\n PibblOpacityFilterOptions,\n PibblSaturateFilterOptions,\n PibblSepiaFilterOptions,\n PibblDisplacementFilterOptions,\n} from \"./lib/style/filter-types.js\";\n\nexport { reflectedLight } from \"./filters/reflected-light.js\";\nexport type {\n PibblReflectedLightFilterOptions,\n PibblReflectedLightSource,\n} from \"./lib/style/filter-types.js\";\n\nexport { emboss } from \"./filters/emboss.js\";\nexport type { PibblEmbossFilterOptions } from \"./filters/emboss.js\";\n\nexport { backdropContrast } from \"./filters/backdrop-contrast.js\";\nexport type { PibblBackdropContrastFilterOptions } from \"./filters/backdrop-contrast.js\";\n"],
5
+ "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAgB7B,SAAS,sBAAsB;AAM/B,SAAS,cAAc;AAGvB,SAAS,wBAAwB;",
6
6
  "names": []
7
7
  }
package/dist/index.d.ts CHANGED
@@ -109,3 +109,5 @@ export type { PibblSlideOptions, PibblZoomOptions, PibblWipeOptions, PibblBlurRe
109
109
  export { defineTransition } from './lib/transitions/define-transition.js';
110
110
  export type { PibblTransitionDefinition, PibblTransitionRenderFrame } from './lib/transitions/define-transition.js';
111
111
  export type { PibblEmbersPhysicsOptions, PibblEmberCollision } from './lib/transitions/embers-physics.js';
112
+ export { recordFrames, exportGif } from './lib/recording/recording.js';
113
+ export type { PibblFrameRecordingOptions, PibblFrameRecordingSession, PibblRecordedFrameInfo, PibblRecordedFrame, PibblFrameRecording, PibblGifExportOptions, PibblRenderCompletion, } from './lib/recording/types.js';
package/dist/index.js CHANGED
@@ -178,6 +178,7 @@ import { hologram } from "./lib/transitions/hologram.js";
178
178
  import { bifrost } from "./lib/transitions/bifrost.js";
179
179
  import { slide, zoom, wipe, blurReveal, dissolve } from "./lib/transitions/common.js";
180
180
  import { defineTransition } from "./lib/transitions/define-transition.js";
181
+ import { recordFrames, exportGif } from "./lib/recording/recording.js";
181
182
  export {
182
183
  Absolute,
183
184
  Arc,
@@ -243,6 +244,7 @@ export {
243
244
  easing,
244
245
  embers,
245
246
  envelopeTransform,
247
+ exportGif,
246
248
  fade,
247
249
  flattenPath,
248
250
  flattenPathWang,
@@ -258,6 +260,7 @@ export {
258
260
  pathBendTransform,
259
261
  pibbl,
260
262
  quadTransform,
263
+ recordFrames,
261
264
  repeat,
262
265
  resolveBox,
263
266
  resolveLength,
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["export {\n meshTransform,\n arcBendTransform,\n pathBendTransform,\n type MeshTransformOptions,\n type ArcBendTransformOptions,\n type PathBendTransformOptions,\n transformPath,\n composeTransforms,\n affineTransform,\n quadTransform,\n envelopeTransform,\n type PathTransform,\n type PathPoint,\n type PathRect,\n type TransformPathOptions,\n type QuadTransformOptions,\n type PathQuadCorners,\n type PathQuadMode,\n type BendTransformOptions,\n type EnvelopeTransformOptions,\n type EnvelopeGuide,\n type PathGuide,\n type PathGuideOptions,\n type PathGuideStation,\n} from './lib/geometry/path-transforms.js';\nexport { type PathBendArc, type PathBendAlign, type PathBendBaseline, type PathBendFit, type PathBendOverflow } from './lib/geometry/path-bending.js';\nexport { flattenPathWang } from './lib/geometry/path-wang.js';\nexport { simplifyPathRadial } from './lib/geometry/path-radial.js';\nexport { PathGeometry, type PathSegment } from './lib/geometry/path-geometry.js';\nexport { toPath2D, toSvgPathData } from './lib/geometry/path-conversion.js';\nexport {\n flattenPath,\n simplifyPath,\n subdividePath,\n type FlattenPathOptions,\n type SimplifyPathOptions,\n type SubdividePathOptions,\n} from './lib/geometry/path-utilities.js';\n// components\nexport { Arc, type ArcProps, type ArcStyle } from './lib/components/arc.js';\nexport {\n Circle,\n type CircleProps,\n type CircleStyle,\n} from './lib/components/circle.js';\nexport { Clip, type ClipProps, type ClipStyle } from './lib/components/clip.js';\nexport {\n Ellipse,\n type EllipseProps,\n type EllipseStyle,\n} from './lib/components/ellipse.js';\nexport {\n Group,\n type GroupProps,\n type GStyle,\n} from './lib/components/g.js';\nexport {\n HorizontalLine,\n type HorizontalLineProps,\n type HorizontalLineStyle,\n} from './lib/components/horizontal-line.js';\n\nexport {\n Image,\n type ImageProps,\n} from './lib/components/img.js';\nexport {\n Layer,\n type LayerProps,\n type LayerStyle,\n} from './lib/components/layer.js';\nexport {\n Line,\n type LineProps,\n type LineStyle,\n} from './lib/components/line.js';\nexport { Path, type PathProps } from './lib/components/path.js';\nexport {\n Polygon,\n type PolygonProps,\n type PolygonStyle,\n} from './lib/components/polygon.js';\nexport {\n RegularPolygon,\n type RegularPolygonProps,\n type RegularPolygonStyle,\n} from './lib/components/regular-polygon.js';\nexport {\n Rectangle,\n type RectangleProps,\n} from './lib/components/rect.js';\nexport {\n Star,\n type StarProps,\n type StarStyle,\n} from './lib/components/star.js';\nexport {\n SvgPath,\n type SvgPathProps,\n} from './lib/components/svg-path.js';\nexport { Text, type TextProps } from './lib/components/text.js';\nexport {\n VerticalLine,\n type VerticalLineProps,\n type VerticalLineStyle,\n} from './lib/components/vertical-line.js';\nexport {\n Wedge,\n type WedgeProps,\n type WedgeStyle,\n} from './lib/components/wedge.js';\nexport {\n createArcPath,\n createWedgePath,\n type ArcPathOptions,\n type WedgePathOptions,\n} from './lib/geometry/circular-sweep.js';\nexport {\n createCirclePath,\n type CirclePathOptions,\n} from './lib/geometry/circle.js';\nexport {\n createEllipsePath,\n type EllipsePathOptions,\n} from './lib/geometry/ellipse.js';\nexport {\n createLinePath,\n type LinePathOptions,\n} from './lib/geometry/line.js';\nexport {\n createPolygonPath,\n type PolygonPathOptions,\n} from './lib/geometry/polygon.js';\nexport {\n createRectanglePath,\n type RectanglePathOptions,\n} from './lib/geometry/rectangle.js';\nexport {\n createRegularPolygonPath,\n type RegularPolygonNumericSize,\n type RegularPolygonPathOptions,\n type RegularPolygonPathPosition,\n} from './lib/geometry/regular-polygon.js';\nexport {\n createStarPath,\n type StarPathOptions,\n} from './lib/geometry/star.js';\nexport {\n createSvgPath,\n type SvgPathOptions,\n} from './lib/geometry/svg-path.js';\nexport type { RoundedCornerPathOptions } from './lib/geometry/rounded-corners.js';\nexport { pibbl } from './lib/pibbl.js';\nexport {\n batch,\n computed,\n isSignal,\n signal,\n untracked,\n} from './lib/signals/graph.js';\nexport { resolveSignalValue } from './lib/signals/resolve-signal-value.js';\nexport type {\n Signal,\n SignalEquals,\n SignalOptions,\n SignalValue,\n WritableSignal,\n} from './lib/signals/types.js';\nexport { easing } from './lib/animation/easing.js';\nexport {\n defineAnimation,\n keyframes,\n spring,\n stepper,\n tween,\n} from './lib/animation/definition.js';\nexport {\n marker,\n parallel,\n repeat,\n sequence,\n drive,\n wait,\n} from './lib/animation/program.js';\nexport type {\n PibblAnimationDefinition,\n PibblAnimationOptions,\n PibblAnimationProgram,\n PibblAnimationRepeatDirection,\n PibblAnimationRepeatOptions,\n PibblAnimationSampleInput,\n PibblAnimatedValueOptions,\n PibblAnimationTarget,\n PibblPlayback,\n PibblPlaybackEvent,\n PibblPlaybackOptions,\n PibblPlaybackStatus,\n PibblEasing,\n PibblInterpolator,\n PibblKeyframesOptions,\n PibblSpringOptions,\n PibblStepperOptions,\n PibblTweenOptions,\n} from './lib/animation/types.js';\nexport type {\n PibblConfig,\n PibblFit,\n PibblFixedViewportConfig,\n PibblPixelRatio,\n PibblResponsiveViewportConfig,\n} from './lib/surface/types.js';\nexport {\n Absolute,\n type AbsoluteProps,\n type AbsoluteStyle,\n} from './lib/layout/absolute.js';\nexport {\n Overlay,\n type OverlayProps,\n type OverlayStyle,\n} from './lib/layout/overlay.js';\nexport {\n Flow,\n type FlowProps,\n type FlowStyle,\n} from './lib/layout/flow.js';\nexport {\n Flex,\n type FlexProps,\n type FlexStyle,\n} from './lib/layout/flex.js';\nexport {\n Grid,\n type GridProps,\n type GridStyle,\n type GridTrack,\n} from './lib/layout/grid.js';\nexport { measureElement } from './lib/layout/measure.js';\n\nexport {\n FocusManagement,\n KeyboardNavigation,\n type FocusManagementProps,\n type KeyboardNavigationProps,\n} from './lib/focus/policy-components.js';\nexport type { PibblKeyboardNavigationOptions } from './lib/focus/types.js';\n\nexport { definePrimitive } from './lib/define-primitive.js';\nexport { defineRenderLayer } from './lib/render-layer/define-render-layer.js';\nexport type {\n PibblRenderLayerComponentProps,\n PibblRenderLayerDefinition,\n PibblRenderLayerFrame,\n PibblRenderLayerContext,\n PibblRenderLayerHit,\n PibblRenderLayerInput,\n PibblRenderLayerInteraction,\n PibblRenderLayerInteractionSnapshot,\n PibblRenderLayerProps,\n PibblRenderLayerSize,\n PibblRenderLayerStyle,\n PibblRenderLayerTarget,\n} from './lib/render-layer/types.js';\nexport { createElement } from './lib/element/create-element.js';\nexport { Fragment } from './lib/element/fragment.js';\nexport type {\n BoxStyle,\n CursorStyle,\n EdgeValues,\n FlexItemStyle,\n GridItemStyle,\n ImgStyle,\n LayoutItemStyle,\n Length,\n PaintStyle,\n PathStyle,\n RectStyle,\n ResolvedBoxStyle,\n SvgPathStyle,\n TextFit,\n TextStyle,\n Percentage,\n RoundedCornerStyle,\n} from './lib/style/types.js';\nexport {\n LayoutDiagnostic,\n layoutDiagnostic,\n type LayoutDiagnosticContext,\n type LayoutDiagnosticInput,\n} from './lib/style/diagnostics.js';\nexport { normalizeEdges } from './lib/style/normalize.js';\nexport { resolveLength } from './lib/style/resolve-length.js';\nexport { resolveBox } from './lib/layout/box.js';\nexport type {\n PibblFilter,\n} from './lib/style/filter-types.js';\nexport type {\n Constraints,\n Edges,\n LayoutBox,\n Size,\n} from './lib/layout/types.js';\n// hooks\nexport { useCursor } from './lib/hooks/use-cursor.js';\nexport { useCanvasContext } from './lib/hooks/use-canvas-context.js';\nexport { useComputed } from './lib/hooks/use-computed.js';\nexport { useConst } from './lib/hooks/use-const.js';\nexport { useEventListener } from './lib/hooks/use-event-listener.js';\nexport { useEventTarget } from './lib/hooks/use-event-target.js';\nexport { useLinePath } from './lib/hooks/use-line-path.js';\nexport { useLayoutBox } from './lib/hooks/use-layout-box.js';\nexport { useRectPath } from './lib/hooks/use-rect-path.js';\nexport { useRef, type PibblRef } from './lib/hooks/use-ref.js';\nexport { usePlayback } from './lib/hooks/use-playback.js';\nexport {\n useReaction,\n type PibblReactionOptions,\n} from './lib/hooks/use-reaction.js';\nexport { useAnimatedValue } from './lib/hooks/use-animated-value.js';\nexport { useSignal } from './lib/hooks/use-signal.js';\nexport { useSvgPath } from './lib/hooks/use-svg-path.js';\nexport type {\n Canvas,\n CanvasMeasurementService,\n PibblController,\n PibblComponent,\n PibblContainerChild,\n PibblElement,\n PibblElementType,\n PibblEmptyNode,\n PibblKey,\n PibblNode,\n PibblNodeInput,\n PibblPhysics2DPropExtension,\n PibblPrimitiveComponent,\n PibblTextChild,\n PibblTextInput,\n PibblRenderResult,\n PibblSizeQuery,\n PibblStyleRule,\n PibblResponsiveStyle,\n PrimitiveInputOf,\n PrimitiveCapabilities,\n PrimitiveInput,\n PrimitiveProgramProps,\n PrimitiveRender,\n FillStyle,\n MeasureInput,\n MeasureResult,\n PixelGridAlignment,\n NormalizedStyle,\n RenderingContext2D,\n ResolvedStyle,\n SpecifiedStyle,\n StyleResolutionContext,\n StrokeStyle,\n SystemStyle,\n} from './lib/types.js';\nexport type {\n PibblClipboardEvent,\n PibblCompositionEvent,\n PibblDragEvent,\n PibblEvent,\n PibblEventCapturePropName,\n PibblEventHandler,\n PibblEventHandlers,\n PibblEventMap,\n PibblEventParticipationOptions,\n PibblEventPhase,\n PibblEventPropName,\n PibblEventTarget,\n PibblEventTargetOptions,\n PibblEventTargetSnapshot,\n PibblEventType,\n PibblFocusEvent,\n PibblInputEvent,\n PibblKeyboardEvent,\n PibblLogicalMouseEvent,\n PibblPointerEvent,\n PibblPointerEvents,\n PibblTouchEvent,\n PibblWheelEvent,\n} from './lib/events/types.js';\n\nexport { useManipulation } from './lib/manipulation/controller.js';\nexport { ManipulationFrame } from './lib/manipulation/frame.js';\nexport { DragHandle, ResizeHandle, ResizeHandles, RotationHandle } from './lib/manipulation/handles.js';\nexport type { PibblManipulationController, PibblManipulationOptions, PibblManipulationSnapshot, PibblManipulationEvent, PibblManipulationCommitEvent, PibblManipulationCancelEvent, PibblManipulationCancelReason, PibblManipulationGeometry, PibblManipulationOperation, PibblManipulationActive, PibblManipulationFrameProps, PibblManipulationMoveInput, PibblManipulationResizeInput, PibblManipulationRotateInput } from './lib/manipulation/controller-types.js';\nexport type { PibblManipulationBox, PibblManipulationPoint, PibblManipulationWhen, PibblResizePosition } from './lib/manipulation/types.js';\nexport type { PibblDragHandleProps, PibblDragHandleStyle } from './lib/manipulation/handles.js';\n\nexport type { PibblResizeHandleProps, PibblResizeHandlesProps, PibblRotationHandleProps, PibblResizeHandleStyle, PibblRotationHandleStyle, PibblManipulationReadoutStyle, PibblManipulationReadoutStateStyle, PibblRotationConnectorStyle, PibblRotationArcStyle } from './lib/manipulation/handles.js';\n\nexport { degrees } from './lib/manipulation/degrees.js';\nexport { Manipulable } from './lib/manipulation/manipulable.js';\nexport type { PibblManipulableProps } from './lib/manipulation/manipulable.js';\n\nexport { defineTexture, useTexture } from './lib/textures/texture.js';\nexport type { Texture, TexturePaint, TextureRecipe, TextureDefinition, TextureOptions, TexturePlacement, TextureContext, TextureFrame } from './lib/textures/texture.js';\n\nexport { HtmlBox } from './lib/components/html-box.js';\nexport type { HtmlBoxProps, HtmlBoxStyle, HtmlMountCallback, HtmlUpdateFunction, HtmlBoxFocusState } from './lib/html/types.js';\n\nexport { fade } from './lib/transitions/fade.js';\nexport type { PibblTransitionEffect } from './lib/transitions/fade.js';\nexport type { PibblTransitionBinding } from './lib/transitions/binding.js';\nexport { useVisibilityTransition } from './lib/hooks/use-visibility-transition.js';\nexport type { PibblVisibilityTransition, PibblVisibilityTransitionOptions, PibblVisibilityTransitionResult, PibblVisibilityTransitionStatus } from './lib/hooks/use-visibility-transition.js';\n\nexport { embers } from './lib/transitions/embers.js';\nexport type { PibblEmbersOptions } from './lib/transitions/embers.js';\n\nexport { hologram } from './lib/transitions/hologram.js';\nexport type { PibblHologramOptions } from './lib/transitions/hologram.js';\nexport { bifrost } from './lib/transitions/bifrost.js';\nexport type { PibblBifrostOptions } from './lib/transitions/bifrost.js';\n\nexport { slide, zoom, wipe, blurReveal, dissolve } from './lib/transitions/common.js';\nexport type { PibblSlideOptions, PibblZoomOptions, PibblWipeOptions, PibblBlurRevealOptions, PibblDissolveOptions } from './lib/transitions/common.js';\n\nexport { defineTransition } from './lib/transitions/define-transition.js';\nexport type { PibblTransitionDefinition, PibblTransitionRenderFrame } from './lib/transitions/define-transition.js';\n\nexport type { PibblEmbersPhysicsOptions, PibblEmberCollision } from './lib/transitions/embers-physics.js';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export {\n meshTransform,\n arcBendTransform,\n pathBendTransform,\n type MeshTransformOptions,\n type ArcBendTransformOptions,\n type PathBendTransformOptions,\n transformPath,\n composeTransforms,\n affineTransform,\n quadTransform,\n envelopeTransform,\n type PathTransform,\n type PathPoint,\n type PathRect,\n type TransformPathOptions,\n type QuadTransformOptions,\n type PathQuadCorners,\n type PathQuadMode,\n type BendTransformOptions,\n type EnvelopeTransformOptions,\n type EnvelopeGuide,\n type PathGuide,\n type PathGuideOptions,\n type PathGuideStation,\n} from './lib/geometry/path-transforms.js';\nexport { type PathBendArc, type PathBendAlign, type PathBendBaseline, type PathBendFit, type PathBendOverflow } from './lib/geometry/path-bending.js';\nexport { flattenPathWang } from './lib/geometry/path-wang.js';\nexport { simplifyPathRadial } from './lib/geometry/path-radial.js';\nexport { PathGeometry, type PathSegment } from './lib/geometry/path-geometry.js';\nexport { toPath2D, toSvgPathData } from './lib/geometry/path-conversion.js';\nexport {\n flattenPath,\n simplifyPath,\n subdividePath,\n type FlattenPathOptions,\n type SimplifyPathOptions,\n type SubdividePathOptions,\n} from './lib/geometry/path-utilities.js';\n// components\nexport { Arc, type ArcProps, type ArcStyle } from './lib/components/arc.js';\nexport {\n Circle,\n type CircleProps,\n type CircleStyle,\n} from './lib/components/circle.js';\nexport { Clip, type ClipProps, type ClipStyle } from './lib/components/clip.js';\nexport {\n Ellipse,\n type EllipseProps,\n type EllipseStyle,\n} from './lib/components/ellipse.js';\nexport {\n Group,\n type GroupProps,\n type GStyle,\n} from './lib/components/g.js';\nexport {\n HorizontalLine,\n type HorizontalLineProps,\n type HorizontalLineStyle,\n} from './lib/components/horizontal-line.js';\n\nexport {\n Image,\n type ImageProps,\n} from './lib/components/img.js';\nexport {\n Layer,\n type LayerProps,\n type LayerStyle,\n} from './lib/components/layer.js';\nexport {\n Line,\n type LineProps,\n type LineStyle,\n} from './lib/components/line.js';\nexport { Path, type PathProps } from './lib/components/path.js';\nexport {\n Polygon,\n type PolygonProps,\n type PolygonStyle,\n} from './lib/components/polygon.js';\nexport {\n RegularPolygon,\n type RegularPolygonProps,\n type RegularPolygonStyle,\n} from './lib/components/regular-polygon.js';\nexport {\n Rectangle,\n type RectangleProps,\n} from './lib/components/rect.js';\nexport {\n Star,\n type StarProps,\n type StarStyle,\n} from './lib/components/star.js';\nexport {\n SvgPath,\n type SvgPathProps,\n} from './lib/components/svg-path.js';\nexport { Text, type TextProps } from './lib/components/text.js';\nexport {\n VerticalLine,\n type VerticalLineProps,\n type VerticalLineStyle,\n} from './lib/components/vertical-line.js';\nexport {\n Wedge,\n type WedgeProps,\n type WedgeStyle,\n} from './lib/components/wedge.js';\nexport {\n createArcPath,\n createWedgePath,\n type ArcPathOptions,\n type WedgePathOptions,\n} from './lib/geometry/circular-sweep.js';\nexport {\n createCirclePath,\n type CirclePathOptions,\n} from './lib/geometry/circle.js';\nexport {\n createEllipsePath,\n type EllipsePathOptions,\n} from './lib/geometry/ellipse.js';\nexport {\n createLinePath,\n type LinePathOptions,\n} from './lib/geometry/line.js';\nexport {\n createPolygonPath,\n type PolygonPathOptions,\n} from './lib/geometry/polygon.js';\nexport {\n createRectanglePath,\n type RectanglePathOptions,\n} from './lib/geometry/rectangle.js';\nexport {\n createRegularPolygonPath,\n type RegularPolygonNumericSize,\n type RegularPolygonPathOptions,\n type RegularPolygonPathPosition,\n} from './lib/geometry/regular-polygon.js';\nexport {\n createStarPath,\n type StarPathOptions,\n} from './lib/geometry/star.js';\nexport {\n createSvgPath,\n type SvgPathOptions,\n} from './lib/geometry/svg-path.js';\nexport type { RoundedCornerPathOptions } from './lib/geometry/rounded-corners.js';\nexport { pibbl } from './lib/pibbl.js';\nexport {\n batch,\n computed,\n isSignal,\n signal,\n untracked,\n} from './lib/signals/graph.js';\nexport { resolveSignalValue } from './lib/signals/resolve-signal-value.js';\nexport type {\n Signal,\n SignalEquals,\n SignalOptions,\n SignalValue,\n WritableSignal,\n} from './lib/signals/types.js';\nexport { easing } from './lib/animation/easing.js';\nexport {\n defineAnimation,\n keyframes,\n spring,\n stepper,\n tween,\n} from './lib/animation/definition.js';\nexport {\n marker,\n parallel,\n repeat,\n sequence,\n drive,\n wait,\n} from './lib/animation/program.js';\nexport type {\n PibblAnimationDefinition,\n PibblAnimationOptions,\n PibblAnimationProgram,\n PibblAnimationRepeatDirection,\n PibblAnimationRepeatOptions,\n PibblAnimationSampleInput,\n PibblAnimatedValueOptions,\n PibblAnimationTarget,\n PibblPlayback,\n PibblPlaybackEvent,\n PibblPlaybackOptions,\n PibblPlaybackStatus,\n PibblEasing,\n PibblInterpolator,\n PibblKeyframesOptions,\n PibblSpringOptions,\n PibblStepperOptions,\n PibblTweenOptions,\n} from './lib/animation/types.js';\nexport type {\n PibblConfig,\n PibblFit,\n PibblFixedViewportConfig,\n PibblPixelRatio,\n PibblResponsiveViewportConfig,\n} from './lib/surface/types.js';\nexport {\n Absolute,\n type AbsoluteProps,\n type AbsoluteStyle,\n} from './lib/layout/absolute.js';\nexport {\n Overlay,\n type OverlayProps,\n type OverlayStyle,\n} from './lib/layout/overlay.js';\nexport {\n Flow,\n type FlowProps,\n type FlowStyle,\n} from './lib/layout/flow.js';\nexport {\n Flex,\n type FlexProps,\n type FlexStyle,\n} from './lib/layout/flex.js';\nexport {\n Grid,\n type GridProps,\n type GridStyle,\n type GridTrack,\n} from './lib/layout/grid.js';\nexport { measureElement } from './lib/layout/measure.js';\n\nexport {\n FocusManagement,\n KeyboardNavigation,\n type FocusManagementProps,\n type KeyboardNavigationProps,\n} from './lib/focus/policy-components.js';\nexport type { PibblKeyboardNavigationOptions } from './lib/focus/types.js';\n\nexport { definePrimitive } from './lib/define-primitive.js';\nexport { defineRenderLayer } from './lib/render-layer/define-render-layer.js';\nexport type {\n PibblRenderLayerComponentProps,\n PibblRenderLayerDefinition,\n PibblRenderLayerFrame,\n PibblRenderLayerContext,\n PibblRenderLayerHit,\n PibblRenderLayerInput,\n PibblRenderLayerInteraction,\n PibblRenderLayerInteractionSnapshot,\n PibblRenderLayerProps,\n PibblRenderLayerSize,\n PibblRenderLayerStyle,\n PibblRenderLayerTarget,\n} from './lib/render-layer/types.js';\nexport { createElement } from './lib/element/create-element.js';\nexport { Fragment } from './lib/element/fragment.js';\nexport type {\n BoxStyle,\n CursorStyle,\n EdgeValues,\n FlexItemStyle,\n GridItemStyle,\n ImgStyle,\n LayoutItemStyle,\n Length,\n PaintStyle,\n PathStyle,\n RectStyle,\n ResolvedBoxStyle,\n SvgPathStyle,\n TextFit,\n TextStyle,\n Percentage,\n RoundedCornerStyle,\n} from './lib/style/types.js';\nexport {\n LayoutDiagnostic,\n layoutDiagnostic,\n type LayoutDiagnosticContext,\n type LayoutDiagnosticInput,\n} from './lib/style/diagnostics.js';\nexport { normalizeEdges } from './lib/style/normalize.js';\nexport { resolveLength } from './lib/style/resolve-length.js';\nexport { resolveBox } from './lib/layout/box.js';\nexport type {\n PibblFilter,\n} from './lib/style/filter-types.js';\nexport type {\n Constraints,\n Edges,\n LayoutBox,\n Size,\n} from './lib/layout/types.js';\n// hooks\nexport { useCursor } from './lib/hooks/use-cursor.js';\nexport { useCanvasContext } from './lib/hooks/use-canvas-context.js';\nexport { useComputed } from './lib/hooks/use-computed.js';\nexport { useConst } from './lib/hooks/use-const.js';\nexport { useEventListener } from './lib/hooks/use-event-listener.js';\nexport { useEventTarget } from './lib/hooks/use-event-target.js';\nexport { useLinePath } from './lib/hooks/use-line-path.js';\nexport { useLayoutBox } from './lib/hooks/use-layout-box.js';\nexport { useRectPath } from './lib/hooks/use-rect-path.js';\nexport { useRef, type PibblRef } from './lib/hooks/use-ref.js';\nexport { usePlayback } from './lib/hooks/use-playback.js';\nexport {\n useReaction,\n type PibblReactionOptions,\n} from './lib/hooks/use-reaction.js';\nexport { useAnimatedValue } from './lib/hooks/use-animated-value.js';\nexport { useSignal } from './lib/hooks/use-signal.js';\nexport { useSvgPath } from './lib/hooks/use-svg-path.js';\nexport type {\n Canvas,\n CanvasMeasurementService,\n PibblController,\n PibblComponent,\n PibblContainerChild,\n PibblElement,\n PibblElementType,\n PibblEmptyNode,\n PibblKey,\n PibblNode,\n PibblNodeInput,\n PibblPhysics2DPropExtension,\n PibblPrimitiveComponent,\n PibblTextChild,\n PibblTextInput,\n PibblRenderResult,\n PibblSizeQuery,\n PibblStyleRule,\n PibblResponsiveStyle,\n PrimitiveInputOf,\n PrimitiveCapabilities,\n PrimitiveInput,\n PrimitiveProgramProps,\n PrimitiveRender,\n FillStyle,\n MeasureInput,\n MeasureResult,\n PixelGridAlignment,\n NormalizedStyle,\n RenderingContext2D,\n ResolvedStyle,\n SpecifiedStyle,\n StyleResolutionContext,\n StrokeStyle,\n SystemStyle,\n} from './lib/types.js';\nexport type {\n PibblClipboardEvent,\n PibblCompositionEvent,\n PibblDragEvent,\n PibblEvent,\n PibblEventCapturePropName,\n PibblEventHandler,\n PibblEventHandlers,\n PibblEventMap,\n PibblEventParticipationOptions,\n PibblEventPhase,\n PibblEventPropName,\n PibblEventTarget,\n PibblEventTargetOptions,\n PibblEventTargetSnapshot,\n PibblEventType,\n PibblFocusEvent,\n PibblInputEvent,\n PibblKeyboardEvent,\n PibblLogicalMouseEvent,\n PibblPointerEvent,\n PibblPointerEvents,\n PibblTouchEvent,\n PibblWheelEvent,\n} from './lib/events/types.js';\n\nexport { useManipulation } from './lib/manipulation/controller.js';\nexport { ManipulationFrame } from './lib/manipulation/frame.js';\nexport { DragHandle, ResizeHandle, ResizeHandles, RotationHandle } from './lib/manipulation/handles.js';\nexport type { PibblManipulationController, PibblManipulationOptions, PibblManipulationSnapshot, PibblManipulationEvent, PibblManipulationCommitEvent, PibblManipulationCancelEvent, PibblManipulationCancelReason, PibblManipulationGeometry, PibblManipulationOperation, PibblManipulationActive, PibblManipulationFrameProps, PibblManipulationMoveInput, PibblManipulationResizeInput, PibblManipulationRotateInput } from './lib/manipulation/controller-types.js';\nexport type { PibblManipulationBox, PibblManipulationPoint, PibblManipulationWhen, PibblResizePosition } from './lib/manipulation/types.js';\nexport type { PibblDragHandleProps, PibblDragHandleStyle } from './lib/manipulation/handles.js';\n\nexport type { PibblResizeHandleProps, PibblResizeHandlesProps, PibblRotationHandleProps, PibblResizeHandleStyle, PibblRotationHandleStyle, PibblManipulationReadoutStyle, PibblManipulationReadoutStateStyle, PibblRotationConnectorStyle, PibblRotationArcStyle } from './lib/manipulation/handles.js';\n\nexport { degrees } from './lib/manipulation/degrees.js';\nexport { Manipulable } from './lib/manipulation/manipulable.js';\nexport type { PibblManipulableProps } from './lib/manipulation/manipulable.js';\n\nexport { defineTexture, useTexture } from './lib/textures/texture.js';\nexport type { Texture, TexturePaint, TextureRecipe, TextureDefinition, TextureOptions, TexturePlacement, TextureContext, TextureFrame } from './lib/textures/texture.js';\n\nexport { HtmlBox } from './lib/components/html-box.js';\nexport type { HtmlBoxProps, HtmlBoxStyle, HtmlMountCallback, HtmlUpdateFunction, HtmlBoxFocusState } from './lib/html/types.js';\n\nexport { fade } from './lib/transitions/fade.js';\nexport type { PibblTransitionEffect } from './lib/transitions/fade.js';\nexport type { PibblTransitionBinding } from './lib/transitions/binding.js';\nexport { useVisibilityTransition } from './lib/hooks/use-visibility-transition.js';\nexport type { PibblVisibilityTransition, PibblVisibilityTransitionOptions, PibblVisibilityTransitionResult, PibblVisibilityTransitionStatus } from './lib/hooks/use-visibility-transition.js';\n\nexport { embers } from './lib/transitions/embers.js';\nexport type { PibblEmbersOptions } from './lib/transitions/embers.js';\n\nexport { hologram } from './lib/transitions/hologram.js';\nexport type { PibblHologramOptions } from './lib/transitions/hologram.js';\nexport { bifrost } from './lib/transitions/bifrost.js';\nexport type { PibblBifrostOptions } from './lib/transitions/bifrost.js';\n\nexport { slide, zoom, wipe, blurReveal, dissolve } from './lib/transitions/common.js';\nexport type { PibblSlideOptions, PibblZoomOptions, PibblWipeOptions, PibblBlurRevealOptions, PibblDissolveOptions } from './lib/transitions/common.js';\n\nexport { defineTransition } from './lib/transitions/define-transition.js';\nexport type { PibblTransitionDefinition, PibblTransitionRenderFrame } from './lib/transitions/define-transition.js';\n\nexport type { PibblEmbersPhysicsOptions, PibblEmberCollision } from './lib/transitions/embers-physics.js';\n\nexport { recordFrames, exportGif } from './lib/recording/recording.js';\nexport type {\n PibblFrameRecordingOptions,\n PibblFrameRecordingSession,\n PibblRecordedFrameInfo,\n PibblRecordedFrame,\n PibblFrameRecording,\n PibblGifExportOptions,\n PibblRenderCompletion,\n} from './lib/recording/types.js';\n"],
5
+ "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAcK;AAEP,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AACnC,SAAS,oBAAsC;AAC/C,SAAS,UAAU,qBAAqB;AACxC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEP,SAAS,WAAyC;AAClD;AAAA,EACE;AAAA,OAGK;AACP,SAAS,YAA4C;AACrD;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AAEP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP,SAAS,YAA4B;AACrC;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP,SAAS,YAA4B;AACrC;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAIK;AACP;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,OAEK;AAEP,SAAS,aAAa;AACtB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AAQnC,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA4BP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,OAIK;AACP,SAAS,sBAAsB;AAE/B;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AAGP,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAelC,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AAoBzB;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AACP,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAW3B,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,cAA6B;AACtC,SAAS,mBAAmB;AAC5B;AAAA,EACE;AAAA,OAEK;AACP,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAgE3B,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,YAAY,cAAc,eAAe,sBAAsB;AAOxE,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAG5B,SAAS,eAAe,kBAAkB;AAG1C,SAAS,eAAe;AAGxB,SAAS,YAAY;AAGrB,SAAS,+BAA+B;AAGxC,SAAS,cAAc;AAGvB,SAAS,gBAAgB;AAEzB,SAAS,eAAe;AAGxB,SAAS,OAAO,MAAM,MAAM,YAAY,gBAAgB;AAGxD,SAAS,wBAAwB;AAKjC,SAAS,cAAc,iBAAiB;",
6
6
  "names": []
7
7
  }
@@ -26,6 +26,8 @@ export type { PibblInternalAdvanceLane, PibblInternalSimulationOwner, } from "./
26
26
  import type { PibblBackendEventTargetOptions, PibblBackendToken, PibblNestedResolverInput } from "./lib/backend/types.js";
27
27
  import { type PibblEventTargetRegistration } from "./lib/events/registrations.js";
28
28
  import type { PibblEventHandlers, PibblPointerEvents } from "./lib/events/types.js";
29
+ export { captureSeriesInspectionFrame } from "./lib/series-inspection-frame.js";
30
+ export { borrowDispatchResource } from "./lib/events/event-facade.js";
29
31
  import { type PibblElementSource } from "./lib/element/metadata.js";
30
32
  import type { Canvas } from "./lib/types.js";
31
33
  /**
package/dist/internal.js CHANGED
@@ -33,6 +33,8 @@ import {
33
33
  } from "./lib/events/registrations.js";
34
34
  import { PibblPaintEntryKind } from "./lib/events/paint-entry.js";
35
35
  import { getCurrentPibblInstance, GLOBAL_STATE } from "./lib/global-state.js";
36
+ import { captureSeriesInspectionFrame } from "./lib/series-inspection-frame.js";
37
+ import { borrowDispatchResource } from "./lib/events/event-facade.js";
36
38
  import {
37
39
  requireHookContext,
38
40
  useInternalHookSlot as useInternalHookSlot2
@@ -263,7 +265,9 @@ import { getCurrentWorldTransform as getCurrentWorldTransform2 } from "./lib/ren
263
265
  import { borrowTextureRaster, resolveTexturePaint, validateTexturePaint } from "./lib/textures/texture-protocol.js";
264
266
  export {
265
267
  ManualSchedulerDriver as PibblInternalManualSchedulerDriver,
268
+ borrowDispatchResource,
266
269
  borrowTextureRaster,
270
+ captureSeriesInspectionFrame,
267
271
  createBackendToken,
268
272
  defineBackendPrimitive,
269
273
  derivePrimitive,