nanopop.min.d.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. type Direction = 'top' | 'left' | 'bottom' | 'right';
  2. type Alignment = 'start' | 'middle' | 'end';
  3. type VariantFlipOrder = {
  4. start: string;
  5. middle: string;
  6. end: string;
  7. };
  8. type PositionFlipOrder = {
  9. top: string;
  10. right: string;
  11. bottom: string;
  12. left: string;
  13. };
  14. type NanoPopPosition = `${Direction}-${Alignment}` | Direction;
  15. type NanoPopOptions = {
  16. container: DOMRect;
  17. position: NanoPopPosition;
  18. variantFlipOrder: VariantFlipOrder;
  19. positionFlipOrder: PositionFlipOrder;
  20. margin: number;
  21. reference?: HTMLElement;
  22. popper?: HTMLElement;
  23. padding?: number;
  24. };
  25. type PositionMatch = 'ts' | 'tm' | 'te' | 'bs' | 'bm' | 'be' | 'ls' | 'lm' | 'le' | 'rs' | 'rm' | 're';
  26. interface NanoPop {
  27. update(updatedOptions?: Partial<NanoPopOptions>): PositionMatch | null;
  28. }
  29. interface NanoPopConstructor {
  30. /**
  31. * @param reference Reference element
  32. * @param popper Actual popper element
  33. * @param options Optional options
  34. */
  35. (reference: HTMLElement, popper: HTMLElement, options?: Partial<NanoPopOptions>): NanoPop;
  36. /**
  37. * @param options Partial options which get merged with the current one
  38. */
  39. (options?: Partial<NanoPopOptions>): NanoPop;
  40. }
  41. declare const version: string;
  42. declare const defaults: {
  43. variantFlipOrder: {
  44. start: string;
  45. middle: string;
  46. end: string;
  47. };
  48. positionFlipOrder: {
  49. top: string;
  50. right: string;
  51. bottom: string;
  52. left: string;
  53. };
  54. position: string;
  55. margin: number;
  56. padding: number;
  57. };
  58. /**
  59. * Repositions an element once using the provided options and elements.
  60. * @param reference Reference element
  61. * @param popper Popper element
  62. * @param opt Optional, additional options
  63. */
  64. declare const reposition: (reference: HTMLElement, popper: HTMLElement, opt?: Partial<NanoPopOptions>) => PositionMatch | null;
  65. /**
  66. * Creates a stateful popper.
  67. * You can either...
  68. * ... pass an options object: createPopper(<options>)
  69. * ... pass both the reference and popper: create(<ref>, <el>, <?options>)
  70. * ... pass nothing, in this case you'll have to set at least both a reference and a popper in update.
  71. *
  72. * @param reference | options Reference element or options
  73. * @param popper Popper element
  74. * @param options Optional additional options
  75. */
  76. declare const createPopper: NanoPopConstructor;
  77. export { VariantFlipOrder, PositionFlipOrder, NanoPopPosition, NanoPopOptions, PositionMatch, NanoPop, NanoPopConstructor, version, defaults, reposition, createPopper };