@surdeddd/bottom-sheet 0.11.0 → 0.13.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 (58) hide show
  1. package/README.md +68 -1
  2. package/dist/{BottomSheetEngine-DzsIwD28.d.cts → BottomSheetCore-CsIjyq7C.d.cts} +61 -5
  3. package/dist/{BottomSheetEngine-DRjCU73e.d.ts → BottomSheetCore-D16lsa6g.d.ts} +61 -5
  4. package/dist/BottomSheetEngine-BYjAVrmd.d.cts +7 -0
  5. package/dist/BottomSheetEngine-YuCNugZn.d.ts +7 -0
  6. package/dist/core.cjs +3476 -0
  7. package/dist/core.d.cts +3 -0
  8. package/dist/core.d.ts +3 -0
  9. package/dist/core.js +3474 -0
  10. package/dist/debug.cjs +109 -0
  11. package/dist/debug.d.cts +22 -0
  12. package/dist/debug.d.ts +22 -0
  13. package/dist/debug.js +107 -0
  14. package/dist/element.cjs +994 -697
  15. package/dist/element.d.cts +2 -1
  16. package/dist/element.d.ts +2 -1
  17. package/dist/element.iife.global.js +2 -2
  18. package/dist/element.js +994 -697
  19. package/dist/features.cjs +533 -0
  20. package/dist/features.d.cts +13 -0
  21. package/dist/features.d.ts +13 -0
  22. package/dist/features.js +526 -0
  23. package/dist/index-DdYLOIIT.d.ts +15 -0
  24. package/dist/index-dfrzw-lI.d.cts +15 -0
  25. package/dist/index.cjs +823 -542
  26. package/dist/index.d.cts +6 -15
  27. package/dist/index.d.ts +6 -15
  28. package/dist/index.js +817 -543
  29. package/dist/integrations/formik.d.cts +1 -1
  30. package/dist/integrations/formik.d.ts +1 -1
  31. package/dist/integrations/react-hook-form.d.cts +1 -1
  32. package/dist/integrations/react-hook-form.d.ts +1 -1
  33. package/dist/overlay.cjs +13 -8
  34. package/dist/overlay.js +13 -8
  35. package/dist/preact.d.cts +2 -1
  36. package/dist/preact.d.ts +2 -1
  37. package/dist/qwik-lib/index.qwik.cjs +4267 -0
  38. package/dist/qwik-lib/index.qwik.mjs +4267 -0
  39. package/dist/qwik.cjs +816 -542
  40. package/dist/qwik.d.cts +2 -2
  41. package/dist/qwik.d.ts +2 -2
  42. package/dist/qwik.js +816 -542
  43. package/dist/react.cjs +816 -542
  44. package/dist/react.d.cts +3 -2
  45. package/dist/react.d.ts +3 -2
  46. package/dist/react.js +816 -542
  47. package/dist/solid.cjs +816 -542
  48. package/dist/solid.d.cts +64 -4
  49. package/dist/solid.d.ts +64 -4
  50. package/dist/solid.js +816 -542
  51. package/dist/solid.source.jsx +816 -542
  52. package/dist/svelte-core.cjs +816 -542
  53. package/dist/svelte-core.js +816 -542
  54. package/dist/svelte.cjs +816 -542
  55. package/dist/svelte.js +816 -542
  56. package/dist/vue.cjs +927 -645
  57. package/dist/vue.js +927 -645
  58. package/package.json +63 -11
package/dist/solid.d.cts CHANGED
@@ -93,6 +93,7 @@ type EngineOptions = {
93
93
  scrimTapToClose?: boolean;
94
94
  scrimPreset?: ScrimPreset;
95
95
  animation?: "spring" | "tween" | "ios-spring" | "material-bounce" | "linear" | "snappy";
96
+ settleAnimation?: "waapi";
96
97
  spring?: {
97
98
  stiffness?: number;
98
99
  damping?: number;
@@ -117,15 +118,64 @@ type EngineOptions = {
117
118
  linkedSheets?: BottomSheetEngineLike[];
118
119
  viewTransitions?: boolean;
119
120
  stackEffect?: boolean;
121
+ features?: EngineFeature[];
120
122
  };
121
123
 
122
- type BottomSheetEngineLike = BottomSheetEngine;
124
+ type BottomSheetEngineLike = BottomSheetCore;
125
+ type EngineFeatureStage = "attach" | "post";
126
+ type EngineFeatureOptions = {
127
+ routedTo?: string;
128
+ closeOnBack: boolean;
129
+ closeOnRouteChange: boolean;
130
+ persistKey?: string;
131
+ autoCollapseAfter?: number;
132
+ };
133
+ type EngineFeatureContext = {
134
+ element: HTMLElement;
135
+ scrollContainer?: HTMLElement;
136
+ sheetId: string;
137
+ options: EngineFeatureOptions;
138
+ isDestroyed: () => boolean;
139
+ isDragging: () => boolean;
140
+ isAnimating: () => boolean;
141
+ isTopSheet: () => boolean;
142
+ isVerticalAxis: () => boolean;
143
+ getSize: () => number;
144
+ getActiveId: () => string;
145
+ getAllowedIds: () => string[];
146
+ allowedIdsBySize: () => string[];
147
+ getMaxAxisSize: () => number;
148
+ resolveSnap: (id: string) => {
149
+ id: string;
150
+ size: number;
151
+ } | null;
152
+ resolveActiveSnap: () => {
153
+ id: string;
154
+ size: number;
155
+ } | null;
156
+ setSize: (size: number) => void;
157
+ setMaxAxisSize: (size: number) => void;
158
+ applySize: (size: number) => void;
159
+ recomputeSnaps: () => void;
160
+ newCycle: () => void;
161
+ cancelInFlight: () => void;
162
+ resyncAfterResize: () => void;
163
+ snapTo: (id: string) => void;
164
+ close: (reason?: CloseReason) => Promise<void>;
165
+ on: <K extends keyof SheetEventMap>(event: K, fn: (payload: SheetEventMap[K]) => void) => () => void;
166
+ addTeardown: (fn: (() => void) | null | undefined) => void;
167
+ };
168
+ type EngineFeature = {
169
+ name: string;
170
+ stage?: EngineFeatureStage;
171
+ install: (ctx: EngineFeatureContext) => (() => void) | void;
172
+ };
123
173
  type TeardownScope = {
124
174
  add: (fn: (() => void) | null | undefined) => void;
125
175
  };
126
176
  type Plugin = {
127
177
  name: string;
128
- install: (engine: BottomSheetEngine, scope: TeardownScope) => void | (() => void);
178
+ install: (engine: BottomSheetCore, scope: TeardownScope) => void | (() => void);
129
179
  };
130
180
  type EngineState = {
131
181
  size: number;
@@ -180,7 +230,7 @@ type ScrimStagesOptions = {
180
230
  };
181
231
 
182
232
  type Listener<K extends keyof SheetEventMap> = (payload: SheetEventMap[K]) => void;
183
- declare class BottomSheetEngine {
233
+ declare class BottomSheetCore {
184
234
  private id;
185
235
  private element;
186
236
  private handle;
@@ -232,11 +282,16 @@ declare class BottomSheetEngine {
232
282
  private stackEffectPrimed;
233
283
  private fitDeps;
234
284
  private transformTemplate;
285
+ private featureList;
286
+ private featureCtx;
235
287
  constructor(opts: EngineOptions);
288
+ private buildFeatureContext;
289
+ private runFeatureStage;
290
+ private warnOrphanFeatureOptions;
236
291
  get state(): EngineState;
237
292
  on<K extends keyof SheetEventMap>(event: K, fn: Listener<K>): () => void;
238
293
  use(plugin: Plugin): this;
239
- setLinkedSheets(sheets: BottomSheetEngine[]): void;
294
+ setLinkedSheets(sheets: BottomSheetCore[]): void;
240
295
  getAllowedIds(): string[];
241
296
  getResolvedSnaps(): readonly {
242
297
  id: string;
@@ -284,6 +339,7 @@ declare class BottomSheetEngine {
284
339
  };
285
340
  setSnapPoints(points: EngineOptions["snapPoints"], allowed?: string[]): void;
286
341
  recompute(): void;
342
+ private healActiveSnap;
287
343
  destroy(): void;
288
344
  private emit;
289
345
  private newCycle;
@@ -309,6 +365,10 @@ declare class BottomSheetEngine {
309
365
  private handleClose;
310
366
  }
311
367
 
368
+ declare class BottomSheetEngine extends BottomSheetCore {
369
+ constructor(opts: EngineOptions);
370
+ }
371
+
312
372
  type TeleportTarget = HTMLElement | string | null | undefined;
313
373
 
314
374
  /** @jsxImportSource solid-js */
package/dist/solid.d.ts CHANGED
@@ -93,6 +93,7 @@ type EngineOptions = {
93
93
  scrimTapToClose?: boolean;
94
94
  scrimPreset?: ScrimPreset;
95
95
  animation?: "spring" | "tween" | "ios-spring" | "material-bounce" | "linear" | "snappy";
96
+ settleAnimation?: "waapi";
96
97
  spring?: {
97
98
  stiffness?: number;
98
99
  damping?: number;
@@ -117,15 +118,64 @@ type EngineOptions = {
117
118
  linkedSheets?: BottomSheetEngineLike[];
118
119
  viewTransitions?: boolean;
119
120
  stackEffect?: boolean;
121
+ features?: EngineFeature[];
120
122
  };
121
123
 
122
- type BottomSheetEngineLike = BottomSheetEngine;
124
+ type BottomSheetEngineLike = BottomSheetCore;
125
+ type EngineFeatureStage = "attach" | "post";
126
+ type EngineFeatureOptions = {
127
+ routedTo?: string;
128
+ closeOnBack: boolean;
129
+ closeOnRouteChange: boolean;
130
+ persistKey?: string;
131
+ autoCollapseAfter?: number;
132
+ };
133
+ type EngineFeatureContext = {
134
+ element: HTMLElement;
135
+ scrollContainer?: HTMLElement;
136
+ sheetId: string;
137
+ options: EngineFeatureOptions;
138
+ isDestroyed: () => boolean;
139
+ isDragging: () => boolean;
140
+ isAnimating: () => boolean;
141
+ isTopSheet: () => boolean;
142
+ isVerticalAxis: () => boolean;
143
+ getSize: () => number;
144
+ getActiveId: () => string;
145
+ getAllowedIds: () => string[];
146
+ allowedIdsBySize: () => string[];
147
+ getMaxAxisSize: () => number;
148
+ resolveSnap: (id: string) => {
149
+ id: string;
150
+ size: number;
151
+ } | null;
152
+ resolveActiveSnap: () => {
153
+ id: string;
154
+ size: number;
155
+ } | null;
156
+ setSize: (size: number) => void;
157
+ setMaxAxisSize: (size: number) => void;
158
+ applySize: (size: number) => void;
159
+ recomputeSnaps: () => void;
160
+ newCycle: () => void;
161
+ cancelInFlight: () => void;
162
+ resyncAfterResize: () => void;
163
+ snapTo: (id: string) => void;
164
+ close: (reason?: CloseReason) => Promise<void>;
165
+ on: <K extends keyof SheetEventMap>(event: K, fn: (payload: SheetEventMap[K]) => void) => () => void;
166
+ addTeardown: (fn: (() => void) | null | undefined) => void;
167
+ };
168
+ type EngineFeature = {
169
+ name: string;
170
+ stage?: EngineFeatureStage;
171
+ install: (ctx: EngineFeatureContext) => (() => void) | void;
172
+ };
123
173
  type TeardownScope = {
124
174
  add: (fn: (() => void) | null | undefined) => void;
125
175
  };
126
176
  type Plugin = {
127
177
  name: string;
128
- install: (engine: BottomSheetEngine, scope: TeardownScope) => void | (() => void);
178
+ install: (engine: BottomSheetCore, scope: TeardownScope) => void | (() => void);
129
179
  };
130
180
  type EngineState = {
131
181
  size: number;
@@ -180,7 +230,7 @@ type ScrimStagesOptions = {
180
230
  };
181
231
 
182
232
  type Listener<K extends keyof SheetEventMap> = (payload: SheetEventMap[K]) => void;
183
- declare class BottomSheetEngine {
233
+ declare class BottomSheetCore {
184
234
  private id;
185
235
  private element;
186
236
  private handle;
@@ -232,11 +282,16 @@ declare class BottomSheetEngine {
232
282
  private stackEffectPrimed;
233
283
  private fitDeps;
234
284
  private transformTemplate;
285
+ private featureList;
286
+ private featureCtx;
235
287
  constructor(opts: EngineOptions);
288
+ private buildFeatureContext;
289
+ private runFeatureStage;
290
+ private warnOrphanFeatureOptions;
236
291
  get state(): EngineState;
237
292
  on<K extends keyof SheetEventMap>(event: K, fn: Listener<K>): () => void;
238
293
  use(plugin: Plugin): this;
239
- setLinkedSheets(sheets: BottomSheetEngine[]): void;
294
+ setLinkedSheets(sheets: BottomSheetCore[]): void;
240
295
  getAllowedIds(): string[];
241
296
  getResolvedSnaps(): readonly {
242
297
  id: string;
@@ -284,6 +339,7 @@ declare class BottomSheetEngine {
284
339
  };
285
340
  setSnapPoints(points: EngineOptions["snapPoints"], allowed?: string[]): void;
286
341
  recompute(): void;
342
+ private healActiveSnap;
287
343
  destroy(): void;
288
344
  private emit;
289
345
  private newCycle;
@@ -309,6 +365,10 @@ declare class BottomSheetEngine {
309
365
  private handleClose;
310
366
  }
311
367
 
368
+ declare class BottomSheetEngine extends BottomSheetCore {
369
+ constructor(opts: EngineOptions);
370
+ }
371
+
312
372
  type TeleportTarget = HTMLElement | string | null | undefined;
313
373
 
314
374
  /** @jsxImportSource solid-js */