@flyingrobots/bijou-tui 0.10.0 → 1.0.0

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 (109) hide show
  1. package/dist/accordion.d.ts +46 -5
  2. package/dist/accordion.d.ts.map +1 -1
  3. package/dist/accordion.js +41 -5
  4. package/dist/accordion.js.map +1 -1
  5. package/dist/animate.d.ts +30 -0
  6. package/dist/animate.d.ts.map +1 -1
  7. package/dist/animate.js +33 -0
  8. package/dist/animate.js.map +1 -1
  9. package/dist/browsable-list.d.ts +67 -4
  10. package/dist/browsable-list.d.ts.map +1 -1
  11. package/dist/browsable-list.js +49 -4
  12. package/dist/browsable-list.js.map +1 -1
  13. package/dist/canvas.d.ts +13 -4
  14. package/dist/canvas.d.ts.map +1 -1
  15. package/dist/canvas.js +9 -3
  16. package/dist/canvas.js.map +1 -1
  17. package/dist/command-palette.d.ts +67 -6
  18. package/dist/command-palette.d.ts.map +1 -1
  19. package/dist/command-palette.js +67 -6
  20. package/dist/command-palette.js.map +1 -1
  21. package/dist/commands.d.ts +32 -3
  22. package/dist/commands.d.ts.map +1 -1
  23. package/dist/commands.js +32 -3
  24. package/dist/commands.js.map +1 -1
  25. package/dist/driver.d.ts +14 -0
  26. package/dist/driver.d.ts.map +1 -1
  27. package/dist/driver.js +7 -0
  28. package/dist/driver.js.map +1 -1
  29. package/dist/eventbus.d.ts +43 -6
  30. package/dist/eventbus.d.ts.map +1 -1
  31. package/dist/eventbus.js +9 -0
  32. package/dist/eventbus.js.map +1 -1
  33. package/dist/file-picker.d.ts +56 -4
  34. package/dist/file-picker.d.ts.map +1 -1
  35. package/dist/file-picker.js +52 -4
  36. package/dist/file-picker.js.map +1 -1
  37. package/dist/flex.d.ts +17 -0
  38. package/dist/flex.d.ts.map +1 -1
  39. package/dist/flex.js +106 -12
  40. package/dist/flex.js.map +1 -1
  41. package/dist/help.d.ts +16 -1
  42. package/dist/help.d.ts.map +1 -1
  43. package/dist/help.js +13 -0
  44. package/dist/help.js.map +1 -1
  45. package/dist/index.d.ts +8 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +8 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/inputstack.d.ts +32 -4
  50. package/dist/inputstack.d.ts.map +1 -1
  51. package/dist/inputstack.js +11 -0
  52. package/dist/inputstack.js.map +1 -1
  53. package/dist/keybindings.d.ts +106 -14
  54. package/dist/keybindings.d.ts.map +1 -1
  55. package/dist/keybindings.js +28 -2
  56. package/dist/keybindings.js.map +1 -1
  57. package/dist/keys.d.ts +24 -8
  58. package/dist/keys.d.ts.map +1 -1
  59. package/dist/keys.js +34 -9
  60. package/dist/keys.js.map +1 -1
  61. package/dist/layout.d.ts +26 -0
  62. package/dist/layout.d.ts.map +1 -1
  63. package/dist/layout.js +25 -1
  64. package/dist/layout.js.map +1 -1
  65. package/dist/navigable-table.d.ts +48 -4
  66. package/dist/navigable-table.d.ts.map +1 -1
  67. package/dist/navigable-table.js +44 -4
  68. package/dist/navigable-table.js.map +1 -1
  69. package/dist/overlay.d.ts +110 -3
  70. package/dist/overlay.d.ts.map +1 -1
  71. package/dist/overlay.js +87 -7
  72. package/dist/overlay.js.map +1 -1
  73. package/dist/pager.d.ts +66 -7
  74. package/dist/pager.d.ts.map +1 -1
  75. package/dist/pager.js +56 -7
  76. package/dist/pager.js.map +1 -1
  77. package/dist/panels.d.ts +55 -0
  78. package/dist/panels.d.ts.map +1 -1
  79. package/dist/panels.js +11 -0
  80. package/dist/panels.js.map +1 -1
  81. package/dist/runtime.d.ts +6 -0
  82. package/dist/runtime.d.ts.map +1 -1
  83. package/dist/runtime.js +6 -0
  84. package/dist/runtime.js.map +1 -1
  85. package/dist/screen.d.ts +37 -3
  86. package/dist/screen.d.ts.map +1 -1
  87. package/dist/screen.js +37 -3
  88. package/dist/screen.js.map +1 -1
  89. package/dist/spring.d.ts +56 -7
  90. package/dist/spring.d.ts.map +1 -1
  91. package/dist/spring.js +44 -7
  92. package/dist/spring.js.map +1 -1
  93. package/dist/status-bar.d.ts +15 -2
  94. package/dist/status-bar.d.ts.map +1 -1
  95. package/dist/status-bar.js +9 -0
  96. package/dist/status-bar.js.map +1 -1
  97. package/dist/timeline.d.ts +68 -5
  98. package/dist/timeline.d.ts.map +1 -1
  99. package/dist/timeline.js +33 -0
  100. package/dist/timeline.js.map +1 -1
  101. package/dist/types.d.ts +86 -5
  102. package/dist/types.d.ts.map +1 -1
  103. package/dist/types.js +27 -3
  104. package/dist/types.js.map +1 -1
  105. package/dist/viewport.d.ts +71 -11
  106. package/dist/viewport.d.ts.map +1 -1
  107. package/dist/viewport.js +79 -11
  108. package/dist/viewport.js.map +1 -1
  109. package/package.json +2 -2
package/dist/spring.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * Inspired by react-spring and GSAP spring physics.
9
9
  */
10
+ /** Physics parameters for a damped harmonic oscillator spring. */
10
11
  export interface SpringConfig {
11
12
  /** Spring stiffness (tension). Higher = snappier. Default: 170 */
12
13
  readonly stiffness: number;
@@ -17,6 +18,12 @@ export interface SpringConfig {
17
18
  /** Value threshold to consider the spring settled. Default: 0.01 */
18
19
  readonly precision: number;
19
20
  }
21
+ /**
22
+ * Built-in spring presets covering common motion styles.
23
+ *
24
+ * Use a preset name (e.g. `'wobbly'`) anywhere a {@link SpringConfig}
25
+ * or {@link SpringPreset} is accepted.
26
+ */
20
27
  export declare const SPRING_PRESETS: {
21
28
  /** Balanced default — smooth with a hint of bounce */
22
29
  readonly default: {
@@ -61,7 +68,9 @@ export declare const SPRING_PRESETS: {
61
68
  readonly precision: 0.01;
62
69
  };
63
70
  };
71
+ /** Name of a built-in spring preset from {@link SPRING_PRESETS}. */
64
72
  export type SpringPreset = keyof typeof SPRING_PRESETS;
73
+ /** Snapshot of a running spring animation at a single point in time. */
65
74
  export interface SpringState {
66
75
  /** Current animated value */
67
76
  readonly value: number;
@@ -73,33 +82,65 @@ export interface SpringState {
73
82
  /**
74
83
  * Advance a spring by one time step using semi-implicit Euler integration.
75
84
  *
76
- * @param state Current spring state
77
- * @param target Target value the spring is approaching
78
- * @param config Spring physics parameters
79
- * @param dt Time step in seconds (e.g. 1/60 for 60fps)
85
+ * @param state - Current spring state.
86
+ * @param target - Target value the spring is approaching.
87
+ * @param config - Spring physics parameters.
88
+ * @param dt - Time step in seconds (e.g. 1/60 for 60fps).
89
+ * @returns A new spring state with updated value, velocity, and done flag.
80
90
  */
81
91
  export declare function springStep(state: SpringState, target: number, config: SpringConfig, dt: number): SpringState;
82
92
  /**
83
93
  * Create a fresh spring state at a given starting value.
94
+ *
95
+ * @param value - The initial position of the spring.
96
+ * @returns A spring state with zero velocity and `done` set to false.
84
97
  */
85
98
  export declare function createSpringState(value: number): SpringState;
86
99
  /**
87
100
  * Resolve a preset name or config object to a full SpringConfig.
101
+ *
102
+ * @param config - A preset name, partial config, or undefined for the default.
103
+ * @returns A complete {@link SpringConfig} with all fields populated.
88
104
  */
89
105
  export declare function resolveSpringConfig(config?: Partial<SpringConfig> | SpringPreset): SpringConfig;
106
+ /**
107
+ * An easing function that maps a normalized progress `t` (0..1) to a
108
+ * transformed value, controlling the acceleration curve of a tween.
109
+ *
110
+ * @param t - Normalized time in the range [0, 1].
111
+ * @returns The eased value.
112
+ */
90
113
  export type EasingFn = (t: number) => number;
114
+ /**
115
+ * Built-in easing functions for tween-style animations.
116
+ *
117
+ * Each function accepts a normalized time `t` in [0, 1] and returns
118
+ * the eased value. Quadratic, cubic, and quartic variants are provided
119
+ * in ease-in, ease-out, and ease-in-out forms.
120
+ */
91
121
  export declare const EASINGS: {
122
+ /** Linear interpolation (no easing). */
92
123
  readonly linear: (t: number) => number;
124
+ /** Quadratic ease-in (accelerating). */
93
125
  readonly easeIn: (t: number) => number;
126
+ /** Quadratic ease-out (decelerating). */
94
127
  readonly easeOut: (t: number) => number;
128
+ /** Quadratic ease-in-out (accelerate then decelerate). */
95
129
  readonly easeInOut: (t: number) => number;
130
+ /** Cubic ease-in (accelerating). */
96
131
  readonly easeInCubic: (t: number) => number;
132
+ /** Cubic ease-out (decelerating). */
97
133
  readonly easeOutCubic: (t: number) => number;
134
+ /** Cubic ease-in-out (accelerate then decelerate). */
98
135
  readonly easeInOutCubic: (t: number) => number;
136
+ /** Quartic ease-in (accelerating). */
99
137
  readonly easeInQuart: (t: number) => number;
138
+ /** Quartic ease-out (decelerating). */
100
139
  readonly easeOutQuart: (t: number) => number;
140
+ /** Quartic ease-in-out (accelerate then decelerate). */
101
141
  readonly easeInOutQuart: (t: number) => number;
102
142
  };
143
+ /** Configuration for a duration-based tween animation. */
103
144
  export interface TweenConfig {
104
145
  /** Start value. Default: 0 */
105
146
  readonly from: number;
@@ -110,6 +151,7 @@ export interface TweenConfig {
110
151
  /** Easing function. Default: easeOutCubic */
111
152
  readonly ease: EasingFn;
112
153
  }
154
+ /** Immutable snapshot of a running tween animation. */
113
155
  export interface TweenState {
114
156
  /** Current animated value */
115
157
  readonly value: number;
@@ -121,17 +163,24 @@ export interface TweenState {
121
163
  /**
122
164
  * Advance a tween by a time step.
123
165
  *
124
- * @param state Current tween state
125
- * @param config Tween parameters
126
- * @param dtMs Time step in milliseconds
166
+ * @param state - Current tween state.
167
+ * @param config - Tween parameters (from, to, duration, ease).
168
+ * @param dtMs - Time step in milliseconds.
169
+ * @returns A new tween state with updated value, elapsed time, and done flag.
127
170
  */
128
171
  export declare function tweenStep(state: TweenState, config: TweenConfig, dtMs: number): TweenState;
129
172
  /**
130
173
  * Create a fresh tween state.
174
+ *
175
+ * @param from - The starting value of the tween.
176
+ * @returns A tween state with zero elapsed time and `done` set to false.
131
177
  */
132
178
  export declare function createTweenState(from: number): TweenState;
133
179
  /**
134
180
  * Resolve partial tween config to full config with defaults.
181
+ *
182
+ * @param config - Partial tween config; `duration` is required, others default.
183
+ * @returns A complete {@link TweenConfig} with all fields populated.
135
184
  */
136
185
  export declare function resolveTweenConfig(config: Partial<TweenConfig> & {
137
186
  duration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc;IACzB,sDAAsD;;;;;;;IAEtD,gDAAgD;;;;;;;IAEhD,gDAAgD;;;;;;;IAEhD,+CAA+C;;;;;;;IAE/C,yCAAyC;;;;;;;IAEzC,uCAAuC;;;;;;;CAEQ,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,cAAc,CAAC;AAMvD,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,MAAM,GACT,WAAW,CAeb;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAE5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,GAC5C,YAAY,CAId;AAMD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAE7C,eAAO,MAAM,OAAO;yBACN,MAAM;yBAEN,MAAM;0BACL,MAAM;4BACJ,MAAM;8BAEJ,MAAM;+BACL,MAAM;iCACJ,MAAM;8BAGT,MAAM;+BACL,MAAM;iCACJ,MAAM;CAEiB,CAAC;AAM9C,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACX,UAAU,CAQZ;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClD,WAAW,CAOb"}
1
+ {"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}
package/dist/spring.js CHANGED
@@ -7,6 +7,12 @@
7
7
  *
8
8
  * Inspired by react-spring and GSAP spring physics.
9
9
  */
10
+ /**
11
+ * Built-in spring presets covering common motion styles.
12
+ *
13
+ * Use a preset name (e.g. `'wobbly'`) anywhere a {@link SpringConfig}
14
+ * or {@link SpringPreset} is accepted.
15
+ */
10
16
  export const SPRING_PRESETS = {
11
17
  /** Balanced default — smooth with a hint of bounce */
12
18
  default: { stiffness: 170, damping: 26, mass: 1, precision: 0.01 },
@@ -27,10 +33,11 @@ export const SPRING_PRESETS = {
27
33
  /**
28
34
  * Advance a spring by one time step using semi-implicit Euler integration.
29
35
  *
30
- * @param state Current spring state
31
- * @param target Target value the spring is approaching
32
- * @param config Spring physics parameters
33
- * @param dt Time step in seconds (e.g. 1/60 for 60fps)
36
+ * @param state - Current spring state.
37
+ * @param target - Target value the spring is approaching.
38
+ * @param config - Spring physics parameters.
39
+ * @param dt - Time step in seconds (e.g. 1/60 for 60fps).
40
+ * @returns A new spring state with updated value, velocity, and done flag.
34
41
  */
35
42
  export function springStep(state, target, config, dt) {
36
43
  const { stiffness, damping, mass, precision } = config;
@@ -45,12 +52,18 @@ export function springStep(state, target, config, dt) {
45
52
  }
46
53
  /**
47
54
  * Create a fresh spring state at a given starting value.
55
+ *
56
+ * @param value - The initial position of the spring.
57
+ * @returns A spring state with zero velocity and `done` set to false.
48
58
  */
49
59
  export function createSpringState(value) {
50
60
  return { value, velocity: 0, done: false };
51
61
  }
52
62
  /**
53
63
  * Resolve a preset name or config object to a full SpringConfig.
64
+ *
65
+ * @param config - A preset name, partial config, or undefined for the default.
66
+ * @returns A complete {@link SpringConfig} with all fields populated.
54
67
  */
55
68
  export function resolveSpringConfig(config) {
56
69
  if (config === undefined)
@@ -59,24 +72,42 @@ export function resolveSpringConfig(config) {
59
72
  return SPRING_PRESETS[config];
60
73
  return { ...SPRING_PRESETS.default, ...config };
61
74
  }
75
+ /**
76
+ * Built-in easing functions for tween-style animations.
77
+ *
78
+ * Each function accepts a normalized time `t` in [0, 1] and returns
79
+ * the eased value. Quadratic, cubic, and quartic variants are provided
80
+ * in ease-in, ease-out, and ease-in-out forms.
81
+ */
62
82
  export const EASINGS = {
83
+ /** Linear interpolation (no easing). */
63
84
  linear: (t) => t,
85
+ /** Quadratic ease-in (accelerating). */
64
86
  easeIn: (t) => t * t,
87
+ /** Quadratic ease-out (decelerating). */
65
88
  easeOut: (t) => t * (2 - t),
89
+ /** Quadratic ease-in-out (accelerate then decelerate). */
66
90
  easeInOut: (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),
91
+ /** Cubic ease-in (accelerating). */
67
92
  easeInCubic: (t) => t * t * t,
93
+ /** Cubic ease-out (decelerating). */
68
94
  easeOutCubic: (t) => --t * t * t + 1,
95
+ /** Cubic ease-in-out (accelerate then decelerate). */
69
96
  easeInOutCubic: (t) => t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
97
+ /** Quartic ease-in (accelerating). */
70
98
  easeInQuart: (t) => t * t * t * t,
99
+ /** Quartic ease-out (decelerating). */
71
100
  easeOutQuart: (t) => 1 - --t * t * t * t,
101
+ /** Quartic ease-in-out (accelerate then decelerate). */
72
102
  easeInOutQuart: (t) => t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t,
73
103
  };
74
104
  /**
75
105
  * Advance a tween by a time step.
76
106
  *
77
- * @param state Current tween state
78
- * @param config Tween parameters
79
- * @param dtMs Time step in milliseconds
107
+ * @param state - Current tween state.
108
+ * @param config - Tween parameters (from, to, duration, ease).
109
+ * @param dtMs - Time step in milliseconds.
110
+ * @returns A new tween state with updated value, elapsed time, and done flag.
80
111
  */
81
112
  export function tweenStep(state, config, dtMs) {
82
113
  const elapsed = Math.min(state.elapsed + dtMs, config.duration);
@@ -88,12 +119,18 @@ export function tweenStep(state, config, dtMs) {
88
119
  }
89
120
  /**
90
121
  * Create a fresh tween state.
122
+ *
123
+ * @param from - The starting value of the tween.
124
+ * @returns A tween state with zero elapsed time and `done` set to false.
91
125
  */
92
126
  export function createTweenState(from) {
93
127
  return { value: from, elapsed: 0, done: false };
94
128
  }
95
129
  /**
96
130
  * Resolve partial tween config to full config with defaults.
131
+ *
132
+ * @param config - Partial tween config; `duration` is required, others default.
133
+ * @returns A complete {@link TweenConfig} with all fields populated.
97
134
  */
98
135
  export function resolveTweenConfig(config) {
99
136
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,sDAAsD;IACtD,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAClE,gDAAgD;IAChD,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IACjE,gDAAgD;IAChD,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IACjE,+CAA+C;IAC/C,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAChE,yCAAyC;IACzC,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAC/D,uCAAuC;IACvC,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;CACrB,CAAC;AAiBlD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,KAAkB,EAClB,MAAc,EACd,MAAoB,EACpB,EAAU;IAEV,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEvD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC1C,MAAM,WAAW,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC;IAC9C,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC;IAEzD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,YAAY,GAAG,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAC;IAE1C,MAAM,IAAI,GACR,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;IAEzE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA6C;IAE7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AAClD,CAAC;AAQD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;IAExB,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACnC,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtE,WAAW,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrC,YAAY,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAS,EAAE,EAAE,CAC5B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IAEnE,WAAW,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IACzC,YAAY,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAChD,cAAc,EAAE,CAAC,CAAS,EAAE,EAAE,CAC5B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;CACZ,CAAC;AA0B9C;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,KAAiB,EACjB,MAAmB,EACnB,IAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9D,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC;IAExC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAmD;IAEnD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;QACtB,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"spring.js","sourceRoot":"","sources":["../src/spring.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,27 @@
4
4
  * Sections are laid out with priority: left > right > center.
5
5
  * On overlap, center is truncated first, then right.
6
6
  */
7
- import type { BijouContext } from '@flyingrobots/bijou';
7
+ /** Options for rendering a status bar. */
8
8
  export interface StatusBarOptions {
9
+ /** Content aligned to the left edge. */
9
10
  readonly left?: string;
11
+ /** Content centered in the bar. */
10
12
  readonly center?: string;
13
+ /** Content aligned to the right edge. */
11
14
  readonly right?: string;
15
+ /** Total width of the bar in columns. */
12
16
  readonly width: number;
17
+ /** Character used to fill empty space (default: `' '`). */
13
18
  readonly fillChar?: string;
14
- readonly ctx?: BijouContext;
15
19
  }
20
+ /**
21
+ * Render a single-line status bar with left, center, and right sections.
22
+ *
23
+ * Layout priority: left > right > center. On overlap, center is truncated
24
+ * first, then right. Sections may contain ANSI escape codes.
25
+ *
26
+ * @param options - Bar content, width, and fill character.
27
+ * @returns Rendered status bar string of exactly `width` visible characters.
28
+ */
16
29
  export declare function statusBar(options: StatusBarOptions): string;
17
30
  //# sourceMappingURL=status-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../src/status-bar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOxD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AAMD,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAgH3D"}
1
+ {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../src/status-bar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAgH3D"}
@@ -8,6 +8,15 @@ import { visibleLength, clipToWidth } from './viewport.js';
8
8
  // ---------------------------------------------------------------------------
9
9
  // statusBar()
10
10
  // ---------------------------------------------------------------------------
11
+ /**
12
+ * Render a single-line status bar with left, center, and right sections.
13
+ *
14
+ * Layout priority: left > right > center. On overlap, center is truncated
15
+ * first, then right. Sections may contain ANSI escape codes.
16
+ *
17
+ * @param options - Bar content, width, and fill character.
18
+ * @returns Rendered status bar string of exactly `width` visible characters.
19
+ */
11
20
  export function statusBar(options) {
12
21
  const { left = '', center = '', right = '', width, fillChar: rawFillChar, } = options;
13
22
  if (width <= 0)
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../src/status-bar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../src/status-bar.ts"],"names":[],"mappings":"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"}
@@ -29,19 +29,29 @@ import { type SpringConfig, type SpringPreset, type SpringState, type EasingFn,
29
29
  export type Position = number | '<' | `<+=${string}` | `+=${string}` | `-=${string}` | `>${string}` | string;
30
30
  /** Spring track configuration. */
31
31
  export interface SpringTrackDef {
32
+ /** Animation type (defaults to `'spring'` when omitted). */
32
33
  readonly type?: 'spring';
34
+ /** Starting value. */
33
35
  readonly from: number;
36
+ /** Target value. */
34
37
  readonly to: number;
38
+ /** Spring physics parameters or a named preset. */
35
39
  readonly spring?: Partial<SpringConfig> | SpringPreset;
36
40
  }
37
41
  /** Tween track configuration. */
38
42
  export interface TweenTrackDef {
43
+ /** Animation type — must be `'tween'`. */
39
44
  readonly type: 'tween';
45
+ /** Starting value. */
40
46
  readonly from: number;
47
+ /** Target value. */
41
48
  readonly to: number;
49
+ /** Duration in milliseconds. */
42
50
  readonly duration: number;
51
+ /** Easing function (defaults to `easeOutCubic`). */
43
52
  readonly ease?: EasingFn;
44
53
  }
54
+ /** Discriminated union of spring and tween track definitions. */
45
55
  export type TrackDef = SpringTrackDef | TweenTrackDef;
46
56
  /** Opaque timeline state — pass between step() calls. */
47
57
  export interface TimelineState {
@@ -50,15 +60,25 @@ export interface TimelineState {
50
60
  /** Per-track animation state. */
51
61
  readonly tracks: Readonly<Record<string, TrackState>>;
52
62
  }
53
- /** @internal */
63
+ /**
64
+ * Per-track animation state stored inside `TimelineState`.
65
+ * @internal
66
+ */
54
67
  interface TrackState {
68
+ /** Animation engine type. */
55
69
  readonly type: 'spring' | 'tween';
70
+ /** Whether the track has received its first step. */
56
71
  readonly started: boolean;
72
+ /** Spring-specific simulation state (present when `type === 'spring'`). */
57
73
  readonly spring?: SpringState;
74
+ /** Tween-specific simulation state (present when `type === 'tween'`). */
58
75
  readonly tween?: TweenState;
76
+ /** Current interpolated value. */
59
77
  readonly currentValue: number;
78
+ /** Whether the track has settled at its target. */
60
79
  readonly done: boolean;
61
80
  }
81
+ /** Fluent builder for constructing a timeline definition. */
62
82
  export interface TimelineBuilder {
63
83
  /**
64
84
  * Add an animation track.
@@ -67,6 +87,12 @@ export interface TimelineBuilder {
67
87
  * .add('x', { from: 0, to: 100, spring: 'wobbly' })
68
88
  * .add('opacity', { type: 'tween', from: 0, to: 1, duration: 300 }, '<')
69
89
  * ```
90
+ *
91
+ * @param name - Unique track identifier used to read values later.
92
+ * @param def - Spring or tween track definition.
93
+ * @param position - When the track starts (default: after previous item ends).
94
+ * @returns The builder for chaining.
95
+ * @throws Error (at build time) if a duplicate track name is added.
70
96
  */
71
97
  add(name: string, def: TrackDef, position?: Position): TimelineBuilder;
72
98
  /**
@@ -76,6 +102,9 @@ export interface TimelineBuilder {
76
102
  * .label('reveal')
77
103
  * .add('scale', { type: 'tween', from: 0, to: 1, duration: 200 }, 'reveal')
78
104
  * ```
105
+ *
106
+ * @param name - Label identifier, referenced by later position specifiers.
107
+ * @returns The builder for chaining.
79
108
  */
80
109
  label(name: string): TimelineBuilder;
81
110
  /**
@@ -84,27 +113,59 @@ export interface TimelineBuilder {
84
113
  * ```ts
85
114
  * .call('onHalfway', '+=500')
86
115
  * ```
116
+ *
117
+ * @param name - Callback identifier returned by `firedCallbacks()`.
118
+ * @param position - When the callback fires (default: after previous item ends).
119
+ * @returns The builder for chaining.
87
120
  */
88
121
  call(name: string, position?: Position): TimelineBuilder;
89
- /** Compile the timeline into an immutable Timeline object. */
122
+ /**
123
+ * Compile the timeline into an immutable Timeline object.
124
+ *
125
+ * @returns Compiled {@link Timeline} ready for stepping.
126
+ * @throws Error if a position references an unknown label or has invalid syntax.
127
+ */
90
128
  build(): Timeline;
91
129
  }
92
130
  /** Compiled timeline — step forward, read values, check completion. */
93
131
  export interface Timeline {
94
- /** Create the initial timeline state. */
132
+ /**
133
+ * Create the initial timeline state.
134
+ *
135
+ * @returns Fresh timeline state with all tracks at their starting values.
136
+ */
95
137
  init(): TimelineState;
96
138
  /**
97
139
  * Advance the timeline by `dt` seconds.
98
140
  * Returns a new state (pure — no mutation).
141
+ *
142
+ * @param state - Current timeline state.
143
+ * @param dt - Time step in seconds (e.g. 1/60 for 60 fps). Must be finite and non-negative.
144
+ * @returns Updated timeline state with all active tracks advanced.
145
+ * @throws Error if `dt` is negative, `NaN`, or infinite.
99
146
  */
100
147
  step(state: TimelineState, dt: number): TimelineState;
101
- /** Read all current track values as a name→number record. */
148
+ /**
149
+ * Read all current track values as a name-to-number record.
150
+ *
151
+ * @param state - Current timeline state.
152
+ * @returns Record mapping each track name to its current value.
153
+ */
102
154
  values(state: TimelineState): Record<string, number>;
103
- /** True when every track has settled. */
155
+ /**
156
+ * True when every track has settled.
157
+ *
158
+ * @param state - Current timeline state.
159
+ * @returns Whether all tracks have reached their target values.
160
+ */
104
161
  done(state: TimelineState): boolean;
105
162
  /**
106
163
  * Return callback names that fired between `prev` and `next` states.
107
164
  * A callback fires when the timeline's elapsed time crosses its trigger point.
165
+ *
166
+ * @param prev - Timeline state before the step.
167
+ * @param next - Timeline state after the step.
168
+ * @returns Array of callback names that fired during the interval.
108
169
  */
109
170
  firedCallbacks(prev: TimelineState, next: TimelineState): string[];
110
171
  /** Total estimated duration in milliseconds. */
@@ -121,6 +182,8 @@ export interface Timeline {
121
182
  * .add('opacity', { type: 'tween', from: 0, to: 1, duration: 300 }, '<')
122
183
  * .build();
123
184
  * ```
185
+ *
186
+ * @returns A new {@link TimelineBuilder} for fluent timeline construction.
124
187
  */
125
188
  export declare function timeline(): TimelineBuilder;
126
189
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
package/dist/timeline.js CHANGED
@@ -28,6 +28,14 @@ import { springStep, createSpringState, resolveSpringConfig, tweenStep, createTw
28
28
  // ---------------------------------------------------------------------------
29
29
  // Spring duration estimation
30
30
  // ---------------------------------------------------------------------------
31
+ /**
32
+ * Estimate how long a spring animation takes to settle by simulating it.
33
+ *
34
+ * @param from - Starting value.
35
+ * @param to - Target value.
36
+ * @param config - Spring physics configuration.
37
+ * @returns Estimated duration in milliseconds (capped at 30 seconds).
38
+ */
31
39
  function estimateSpringDuration(from, to, config) {
32
40
  let state = createSpringState(from);
33
41
  const dt = 1 / 60;
@@ -39,6 +47,14 @@ function estimateSpringDuration(from, to, config) {
39
47
  }
40
48
  return steps * dt * 1000;
41
49
  }
50
+ /**
51
+ * Resolve a position specifier to an absolute time in milliseconds.
52
+ *
53
+ * @param pos - Position specifier (number, relative offset, or label reference).
54
+ * @param cursor - Current cursor info with previous start/end and known labels.
55
+ * @returns Absolute time in milliseconds.
56
+ * @throws Error if the position references an unknown label or has invalid syntax.
57
+ */
42
58
  function resolvePosition(pos, cursor) {
43
59
  if (pos === undefined) {
44
60
  // Default: after previous item ends
@@ -95,6 +111,8 @@ function resolvePosition(pos, cursor) {
95
111
  * .add('opacity', { type: 'tween', from: 0, to: 1, duration: 300 }, '<')
96
112
  * .build();
97
113
  * ```
114
+ *
115
+ * @returns A new {@link TimelineBuilder} for fluent timeline construction.
98
116
  */
99
117
  export function timeline() {
100
118
  const entries = [];
@@ -120,6 +138,15 @@ export function timeline() {
120
138
  // ---------------------------------------------------------------------------
121
139
  // Compilation: resolve positions, estimate durations
122
140
  // ---------------------------------------------------------------------------
141
+ /**
142
+ * Compile builder entries into an immutable Timeline object.
143
+ *
144
+ * Resolves all positions, estimates durations, and sorts callbacks.
145
+ *
146
+ * @param entries - Accumulated builder entries (tracks, labels, callbacks).
147
+ * @returns Compiled Timeline with init, step, values, done, and firedCallbacks.
148
+ * @throws Error if a position references an unknown label or has invalid syntax.
149
+ */
123
150
  function compile(entries) {
124
151
  const tracks = [];
125
152
  const callbacks = [];
@@ -168,6 +195,9 @@ function compile(entries) {
168
195
  springConfig,
169
196
  };
170
197
  }
198
+ if (tracks.some(t => t.name === entry.name)) {
199
+ throw new Error(`Timeline: duplicate track name "${entry.name}"`);
200
+ }
171
201
  tracks.push(resolved);
172
202
  prevStartMs = startMs;
173
203
  prevEndMs = startMs + resolved.estimatedDurationMs;
@@ -195,6 +225,9 @@ function compile(entries) {
195
225
  return { elapsedMs: 0, tracks: trackStates };
196
226
  },
197
227
  step(state, dt) {
228
+ if (!Number.isFinite(dt) || dt < 0) {
229
+ throw new Error(`Timeline: dt must be a finite non-negative number, got ${dt}`);
230
+ }
198
231
  const dtMs = dt * 1000;
199
232
  const elapsedMs = state.elapsedMs + dtMs;
200
233
  const nextTracks = {};
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAKL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,GAER,MAAM,aAAa,CAAC;AAgHrB,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAC7B,IAAY,EACZ,EAAU,EACV,MAAoB;IAEpB,IAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,iBAAiB;IAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACvC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1C,KAAK,EAAE,CAAC;IACV,CAAC;IACD,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3B,CAAC;AAmBD;;;;;;;GAOG;AACH,SAAS,eAAe,CACtB,GAAyB,EACzB,MAAkB;IAElB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,oCAAoC;QACpC,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1D,CAAC;IAED,mCAAmC;IACnC,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;IACtD,CAAC;IAED,gCAAgC;IAChC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,oDAAoD;IACpD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IACpD,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;AACzD,CAAC;AAyHD,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAoB;QAC/B,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,KAAK,CAAC,IAAI;YACR,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,QAAQ;YACjB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,KAAK;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAS,OAAO,CAAC,OAAuB;IACtC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAE9D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAClC,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,kCAAkC;gBAClC,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;gBAEtB,IAAI,QAAuB,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACzB,QAAQ,GAAG;wBACT,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,OAAO;wBACP,mBAAmB,EAAE,GAAG,CAAC,QAAQ;wBACjC,SAAS,EAAE,OAAO;wBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,aAAa,EAAE,GAAG,CAAC,QAAQ;wBAC3B,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY;qBAC5C,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACrD,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;oBAC3E,QAAQ,GAAG;wBACT,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,OAAO;wBACP,mBAAmB,EAAE,WAAW;wBAChC,SAAS,EAAE,QAAQ;wBACnB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,YAAY;qBACb,CAAC;gBACJ,CAAC;gBAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBACpE,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,WAAW,GAAG,OAAO,CAAC;gBACtB,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,mBAAmB,CAAC;gBACnD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,mBAAmB,CAAC,EAC5D,CAAC,CACF,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,UAAU;QAEV,IAAI;YACF,MAAM,WAAW,GAA+B,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;oBACpB,IAAI,EAAE,CAAC,CAAC,SAAS;oBACjB,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,CAAC,CAAC,IAAI;oBACpB,IAAI,EAAE,KAAK;iBACZ,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,KAAoB,EAAE,EAAU;YACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,0DAA0D,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;YACvB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACzC,MAAM,UAAU,GAA+B,EAAE,CAAC;YAElD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;gBAEnC,kBAAkB;gBAClB,IAAI,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1B,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBAED,eAAe;gBACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBAED,2CAA2C;gBAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAC7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACzC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAa,EAAE,EAAE,CAAC,CAAC;wBAC9D,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;4BACnB,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,IAAI;4BACb,MAAM,EAAE,OAAO;4BACf,YAAY,EAAE,OAAO,CAAC,KAAK;4BAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC;4BAChC,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,QAAQ,EAAE,CAAC,CAAC,aAAc;4BAC1B,IAAI,EAAE,CAAC,CAAC,SAAS;yBAClB,CAAC,CAAC;wBACH,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;wBAC/C,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;4BACnB,IAAI,EAAE,OAAO;4BACb,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE,OAAO;4BACd,YAAY,EAAE,OAAO,CAAC,KAAK;4BAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,MAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAa,EAAE,EAAE,CAAC,CAAC;oBACpE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;wBACnB,GAAG,IAAI;wBACP,MAAM,EAAE,OAAO;wBACf,YAAY,EAAE,OAAO,CAAC,KAAK;wBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,kBAAkB,CAAC;wBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,QAAQ,EAAE,CAAC,CAAC,aAAc;wBAC1B,IAAI,EAAE,CAAC,CAAC,SAAS;qBAClB,CAAC,CAAC;oBACH,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,KAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACrD,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;wBACnB,GAAG,IAAI;wBACP,KAAK,EAAE,OAAO;wBACd,YAAY,EAAE,OAAO,CAAC,KAAK;wBAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,CAAC,KAAoB;YACzB,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,YAAY,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,KAAoB;YACvB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,cAAc,CAAC,IAAmB,EAAE,IAAmB;YACrD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;gBACjC,2DAA2D;gBAC3D,oEAAoE;gBACpE,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;oBAC3E,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC;gBAC1D,IAAI,UAAU,EAAE,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}