@surdeddd/bottom-sheet 0.12.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 +52 -1
  2. package/dist/{BottomSheetEngine-D6oiEfZ4.d.cts → BottomSheetCore-CsIjyq7C.d.cts} +60 -5
  3. package/dist/{BottomSheetEngine-Dhy0X_e9.d.ts → BottomSheetCore-D16lsa6g.d.ts} +60 -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 +972 -685
  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 +972 -685
  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 +805 -534
  26. package/dist/index.d.cts +6 -15
  27. package/dist/index.d.ts +6 -15
  28. package/dist/index.js +799 -535
  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 +6 -5
  34. package/dist/overlay.js +6 -5
  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 +798 -534
  40. package/dist/qwik.d.cts +2 -2
  41. package/dist/qwik.d.ts +2 -2
  42. package/dist/qwik.js +798 -534
  43. package/dist/react.cjs +798 -534
  44. package/dist/react.d.cts +3 -2
  45. package/dist/react.d.ts +3 -2
  46. package/dist/react.js +798 -534
  47. package/dist/solid.cjs +798 -534
  48. package/dist/solid.d.cts +63 -4
  49. package/dist/solid.d.ts +63 -4
  50. package/dist/solid.js +798 -534
  51. package/dist/solid.source.jsx +798 -534
  52. package/dist/svelte-core.cjs +798 -534
  53. package/dist/svelte-core.js +798 -534
  54. package/dist/svelte.cjs +798 -534
  55. package/dist/svelte.js +798 -534
  56. package/dist/vue.cjs +909 -637
  57. package/dist/vue.js +909 -637
  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;
@@ -310,6 +365,10 @@ declare class BottomSheetEngine {
310
365
  private handleClose;
311
366
  }
312
367
 
368
+ declare class BottomSheetEngine extends BottomSheetCore {
369
+ constructor(opts: EngineOptions);
370
+ }
371
+
313
372
  type TeleportTarget = HTMLElement | string | null | undefined;
314
373
 
315
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;
@@ -310,6 +365,10 @@ declare class BottomSheetEngine {
310
365
  private handleClose;
311
366
  }
312
367
 
368
+ declare class BottomSheetEngine extends BottomSheetCore {
369
+ constructor(opts: EngineOptions);
370
+ }
371
+
313
372
  type TeleportTarget = HTMLElement | string | null | undefined;
314
373
 
315
374
  /** @jsxImportSource solid-js */