@appartmint/mint 0.13.4 → 0.14.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.
@@ -4,9 +4,11 @@
4
4
  */
5
5
  export declare class mintHeader {
6
6
  /**
7
- * Last-logged window width
7
+ * Navbar settings
8
8
  */
9
- lastWidth: number;
9
+ settings: {
10
+ [key: string]: any;
11
+ };
10
12
  /**
11
13
  * Frequently-referenced elements
12
14
  */
@@ -28,7 +30,7 @@ export declare class mintHeader {
28
30
  */
29
31
  attachEvents(): void;
30
32
  /**
31
- * Adds classes that inform the styles
33
+ * Adds classes that inform the styles based on settings
32
34
  */
33
35
  addClasses(): void;
34
36
  /**
@@ -80,7 +82,7 @@ export declare class mintHeader {
80
82
  /**
81
83
  * Closes the mobile menu when the window resizes
82
84
  */
83
- eHandleResize(e: Event): void;
85
+ eHandleResize(): void;
84
86
  /**
85
87
  * Closes all submenus when the page is scrolled
86
88
  */
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/ts/imports/components/header.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,qBAAa,UAAU;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAA0B;IAE3C;;OAEG;IACH,EAAE,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAA;KAAC,CAAM;IAE7C;;OAEG;gBACU,QAAQ,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IAc5C;;OAEG;IACH,cAAc,IAAM,IAAI;IAQxB;;OAEG;IACH,YAAY,IAAM,IAAI;IAoBtB;;OAEG;IACH,UAAU,IAAM,IAAI;IAMpB;;;OAGG;IACH,aAAa,CAAE,IAAI,GAAE,OAAe,GAAI,IAAI;IA4C5C;;OAEG;IACH,gBAAgB,IAAM,IAAI;IAI1B;;;;OAIG;IACH,OAAO,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,EAC3B,IAAI,GAAE,OAAe,GAAI,IAAI;IActC;;;OAGG;IACH,UAAU,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAI,IAAI;IAI/C;;;OAGG;IACH,aAAa,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAI,IAAI;IAWlD;;;OAGG;IACH,iBAAiB,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAI,IAAI;IAUtD;;OAEG;IACH,aAAa,IAAM,IAAI;IAOvB;;OAEG;IACH,eAAe,IAAM,IAAI;IAezB;;OAEG;IACH,gBAAgB,IAAM,IAAI;IAc1B;;OAEG;IACH,iBAAiB,IAAM,IAAI;IAQ3B;;OAEG;IACH,aAAa,CAAE,CAAC,EAAE,KAAK,GAAI,IAAI;IAQ/B;;OAEG;IACH,aAAa,IAAM,IAAI;IAIvB;;;OAGG;IACH,QAAQ,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IASlC;;;OAGG;IACH,qBAAqB,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IAyB/C;;;OAGG;IACH,mBAAmB,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IAiB7C;;;OAGG;IACH,eAAe,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IAezC;;OAEG;IACH,iBAAiB,IAAM,IAAI;IAI3B;;;OAGG;IACH,WAAW,CAAE,CAAC,EAAE,UAAU,GAAI,IAAI;IAMlC;;OAEG;IACH,cAAc,IAAM,IAAI;CAK3B;AACD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/ts/imports/components/header.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,qBAAa,UAAU;IACnB;;OAEG;IACF,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAG7B;IAEF;;OAEG;IACH,EAAE,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAA;KAAC,CAAM;IAE7C;;OAEG;gBACU,QAAQ,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IAQ5C;;OAEG;IACH,cAAc,IAAM,IAAI;IAQxB;;OAEG;IACH,YAAY,IAAM,IAAI;IAoBtB;;OAEG;IACH,UAAU,IAAM,IAAI;IAYpB;;;OAGG;IACH,aAAa,CAAE,IAAI,GAAE,OAAe,GAAI,IAAI;IAsD5C;;OAEG;IACH,gBAAgB,IAAM,IAAI;IAI1B;;;;OAIG;IACH,OAAO,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,EAC3B,IAAI,GAAE,OAAe,GAAI,IAAI;IActC;;;OAGG;IACH,UAAU,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAI,IAAI;IAI/C;;;OAGG;IACH,aAAa,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAI,IAAI;IAWlD;;;OAGG;IACH,iBAAiB,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAI,IAAI;IAUtD;;OAEG;IACH,aAAa,IAAM,IAAI;IAOvB;;OAEG;IACH,eAAe,IAAM,IAAI;IAezB;;OAEG;IACH,gBAAgB,IAAM,IAAI;IAc1B;;OAEG;IACH,iBAAiB,IAAM,IAAI;IAQ3B;;OAEG;IACH,aAAa,IAAM,IAAI;IAoBvB;;OAEG;IACH,aAAa,IAAM,IAAI;IAIvB;;;OAGG;IACH,QAAQ,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IASlC;;;OAGG;IACH,qBAAqB,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IAyB/C;;;OAGG;IACH,mBAAmB,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IAiB7C;;;OAGG;IACH,eAAe,CAAE,CAAC,EAAE,aAAa,GAAI,IAAI;IAezC;;OAEG;IACH,iBAAiB,IAAM,IAAI;IAI3B;;;OAGG;IACH,WAAW,CAAE,CAAC,EAAE,UAAU,GAAI,IAAI;IAMlC;;OAEG;IACH,cAAc,IAAM,IAAI;CAK3B;AACD,eAAe,UAAU,CAAC"}
@@ -55,22 +55,6 @@ export declare abstract class mintSelectors {
55
55
  * CSS-selector for submenus
56
56
  */
57
57
  static subMenu: string;
58
- /**
59
- * Frequently-used ids
60
- */
61
- static ids: {
62
- [key: string]: string | {
63
- [key: string]: string;
64
- };
65
- };
66
- /**
67
- * Classes
68
- */
69
- static classes: {
70
- [key: string]: string | {
71
- [key: string]: string;
72
- };
73
- };
74
58
  /**
75
59
  * Adds the library prefix to the beginning of the provided string
76
60
  * @param base - the string to be prefixed
@@ -119,14 +103,6 @@ export declare abstract class mintSelectors {
119
103
  * @returns - the generated CSS selector
120
104
  */
121
105
  static expanded(bool?: boolean | null): string;
122
- /**
123
- * Returns the id of the requested element
124
- */
125
- static getId(id?: string): string;
126
- /**
127
- * Returns the class of the requested element
128
- */
129
- static getClass(className?: string, classGroup?: string): string;
130
106
  /**
131
107
  * Returns a NodeList of HTMLElements within the given element that are focusable
132
108
  * @param el - the element whose focusable children will be returned
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../../src/ts/imports/util/selectors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,aAAa;IAC/B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,CAAU;IAE5B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,CAAkB;IAEpC;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAgB;IAEvC;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAqB;IAE/C;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAqB;IAE/C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,CAAY;IAElC;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,CAAkB;IAE9C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,CAAU;IAE9B;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAqB;IAE/C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAA6C;IAEpE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAOyC;IAEjE;;OAEG;IACH,MAAM,CAAC,cAAc,EAAE,MAAM,CAA+B;IAE5D;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,CAA8C;IAEpE;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAC,CAAA;KAAC,CAK3D;IAEF;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAC,CAAA;KAAC,CAY/D;IAEF;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAKrC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIxC;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIrC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIlC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIjC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAI,MAAM;IAI7C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GAAI,MAAM;IAIhD;;OAEG;IACH,MAAM,CAAC,KAAK,CAAE,EAAE,CAAC,EAAE,MAAM,GAAI,MAAM;IAInC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAI,MAAM;IAQlE;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAE,EAAE,CAAC,EAAE,WAAW,GAAI,WAAW,EAAE;IAUvD;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAE,EAAE,EAAE,WAAW,GAAI,OAAO;CAWjD;AACD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../../src/ts/imports/util/selectors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,aAAa;IAC/B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,CAAU;IAE5B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,CAAkB;IAEpC;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAgB;IAEvC;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAqB;IAE/C;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAqB;IAE/C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,CAAY;IAElC;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,CAAkB;IAE9C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,CAAU;IAE9B;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAqB;IAE/C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAA6C;IAEpE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAOyC;IAEjE;;OAEG;IACH,MAAM,CAAC,cAAc,EAAE,MAAM,CAA+B;IAE5D;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,CAA8C;IAEpE;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAKrC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIxC;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIrC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIlC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAE,IAAI,EAAE,MAAM,GAAI,MAAM;IAIjC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAI,MAAM;IAI7C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GAAI,MAAM;IAIhD;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAE,EAAE,CAAC,EAAE,WAAW,GAAI,WAAW,EAAE;IAUvD;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAE,EAAE,EAAE,WAAW,GAAI,OAAO;CAWjD;AACD,eAAe,aAAa,CAAC"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Imports
3
- */
4
- import { mintSide } from '../enum';
5
1
  /**
6
2
  * Settings management
7
3
  * @public
@@ -22,13 +18,11 @@ export declare abstract class mintSettings {
22
18
  [key: string]: number;
23
19
  };
24
20
  /**
25
- * Side of the window the mobile navbar enters from
21
+ * Breakpoint variables
26
22
  */
27
- static from?: mintSide;
28
- /**
29
- * Whether the navbar is fixed or not
30
- */
31
- static fixed?: boolean;
23
+ static break: {
24
+ [key: string]: number;
25
+ };
32
26
  /**
33
27
  * Update the provided settings variables
34
28
  * @param settings - Object of settings variables to update
@@ -40,14 +34,6 @@ export declare abstract class mintSettings {
40
34
  * Updates the delay variables based on `this.delayBase` and `this.delayStep`
41
35
  */
42
36
  protected static setDelay(): void;
43
- /**
44
- * Updates the direction the navbar enters from
45
- */
46
- protected static setFrom(from: mintSide): void;
47
- /**
48
- * Updates whether or not the navbar is fixed
49
- */
50
- protected static setFixed(fixed: boolean): void;
51
37
  }
52
38
  export default mintSettings;
53
39
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/ts/imports/util/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;;GAGG;AACH,8BAAsB,YAAY;IAC9B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAAK;IAE7B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAAO;IAE/B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAOnC;IAEF;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEvB;;MAEE;IACF,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAE,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAI,IAAI;IA6BlD;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAM,IAAI;IAWnC;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,OAAO,CAAE,IAAI,EAAE,QAAQ,GAAI,IAAI;IAShD;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAE,KAAK,EAAE,OAAO,GAAI,IAAI;CAYpD;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/ts/imports/util/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,YAAY;IAC9B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAAK;IAE7B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAAO;IAE/B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAOnC;IAEF;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAOnC;IAEF;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAE,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAI,IAAI;IA2BlD;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAM,IAAI;CAUtC;AAED,eAAe,YAAY,CAAC"}
package/dist/js/index.js CHANGED
@@ -46,22 +46,20 @@ class mintHeader {
46
46
  */
47
47
  constructor(settings) {
48
48
  /**
49
- * Last-logged window width
49
+ * Navbar settings
50
50
  */
51
- this.lastWidth = util_1.default.windowWidth();
51
+ this.settings = {
52
+ from: enum_1.mintSide.Top,
53
+ fixed: true
54
+ };
52
55
  /**
53
56
  * Frequently-referenced elements
54
57
  */
55
58
  this.el = {};
56
- let defaultSettings = {
57
- from: enum_1.mintSide.Top,
58
- fixed: true
59
- };
60
- settings_1.default.set(Object.assign(Object.assign({}, defaultSettings), settings));
59
+ this.settings = Object.assign(Object.assign({}, this.settings), settings);
61
60
  this.attachElements();
62
61
  this.attachEvents();
63
62
  this.addClasses();
64
- this.setMobileMenu();
65
63
  }
66
64
  /**
67
65
  * Adds elements to {@link el | `this.el`}
@@ -70,16 +68,16 @@ class mintHeader {
70
68
  var _a;
71
69
  this.el.html = document.querySelector('html');
72
70
  this.el.body = document.querySelector('body');
73
- this.el.header = document.getElementById(selectors_1.default.getId('header'));
74
- this.el.mobileButton = ((_a = this.el.header) === null || _a === void 0 ? void 0 : _a.querySelector(selectors_1.default.controls(selectors_1.default.getId('wrapper')))) || null;
75
- this.el.wrapper = document.getElementById(selectors_1.default.getId('wrapper'));
71
+ this.el.header = document.getElementById('mint-header');
72
+ this.el.mobileButton = ((_a = this.el.header) === null || _a === void 0 ? void 0 : _a.querySelector(selectors_1.default.controls('mint-wrapper'))) || null;
73
+ this.el.wrapper = document.getElementById('mint-wrapper');
76
74
  }
77
75
  /**
78
76
  * Adds events to the dom
79
77
  */
80
78
  attachEvents() {
81
79
  var _a, _b, _c, _d;
82
- //window.addEventListener('resize', mintUtil.throttleEvent(this.eHandleResize.bind(this), mintSettings.delay.default, { trailing: false }));
80
+ window.addEventListener('resize', util_1.default.throttleEvent(this.eHandleResize.bind(this), settings_1.default.delay.default));
83
81
  window.addEventListener('scroll', util_1.default.throttleEvent(this.eHandleScroll.bind(this), settings_1.default.delay.default, {
84
82
  trailing: false
85
83
  }));
@@ -89,7 +87,7 @@ class mintHeader {
89
87
  focusables === null || focusables === void 0 ? void 0 : focusables.forEach(focusable => {
90
88
  focusable.addEventListener('keydown', util_1.default.throttleEvent(this.eHandleKeypress.bind(this)));
91
89
  });
92
- let menuButtons = (_b = this.el.header) === null || _b === void 0 ? void 0 : _b.querySelectorAll(selectors_1.default.controls() + selectors_1.default.neg(selectors_1.default.controls(selectors_1.default.ids.wrapper)));
90
+ let menuButtons = (_b = this.el.wrapper) === null || _b === void 0 ? void 0 : _b.querySelectorAll(selectors_1.default.controls());
93
91
  menuButtons === null || menuButtons === void 0 ? void 0 : menuButtons.forEach(menuButton => {
94
92
  menuButton.addEventListener('click', util_1.default.throttleEvent(this.eToggleMenu.bind(this), settings_1.default.delay.slow, {
95
93
  trailing: false
@@ -101,12 +99,17 @@ class mintHeader {
101
99
  (_d = this.el.wrapper) === null || _d === void 0 ? void 0 : _d.addEventListener('transitionend', this.eTransitionEnd.bind(this));
102
100
  }
103
101
  /**
104
- * Adds classes that inform the styles
102
+ * Adds classes that inform the styles based on settings
105
103
  */
106
104
  addClasses() {
107
- var _a;
108
- if (settings_1.default.fixed) {
109
- (_a = this.el.body) === null || _a === void 0 ? void 0 : _a.classList.add(selectors_1.default.getClass('fixed'));
105
+ var _a, _b, _c, _d, _e;
106
+ (_a = this.el.header) === null || _a === void 0 ? void 0 : _a.classList.remove('mint-top', 'mint-right', 'mint-bottom', 'mint-left');
107
+ (_b = this.el.header) === null || _b === void 0 ? void 0 : _b.classList.add(`mint-${enum_1.mintSide[(_c = this.settings.from) !== null && _c !== void 0 ? _c : 0].toLowerCase()}`);
108
+ if (this.settings.fixed) {
109
+ (_d = this.el.body) === null || _d === void 0 ? void 0 : _d.classList.add('mint-fixed');
110
+ }
111
+ if (this.settings.tray) {
112
+ (_e = this.el.header) === null || _e === void 0 ? void 0 : _e.classList.add('mint-tray');
110
113
  }
111
114
  }
112
115
  /**
@@ -124,7 +127,7 @@ class mintHeader {
124
127
  (_a = this.el.mobileButton) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-label', ariaLabel);
125
128
  }, settings_1.default.delay.fast);
126
129
  if (open) {
127
- if (settings_1.default.fixed !== true) {
130
+ if (this.settings.fixed !== true) {
128
131
  window.scroll({
129
132
  top: 0,
130
133
  left: 0,
@@ -133,15 +136,24 @@ class mintHeader {
133
136
  }
134
137
  setTimeout(() => {
135
138
  if (this.el.html) {
136
- this.el.html.style.overflow = 'hidden';
139
+ let isMobile = util_1.default.windowWidth() <= settings_1.default.break.sm,
140
+ overflow = 'auto';
141
+ if (this.settings.tray) {
142
+ if (isMobile) {
143
+ overflow = 'hidden';
144
+ }
145
+ } else {
146
+ overflow = 'hidden';
147
+ }
148
+ this.el.html.style.overflow = overflow;
137
149
  }
138
- }, settings_1.default.from === enum_1.mintSide.Left ? settings_1.default.delay.default : settings_1.default.delay.instant);
150
+ }, this.settings.from === enum_1.mintSide.Left ? settings_1.default.delay.default : settings_1.default.delay.instant);
139
151
  if (this.el.wrapper) {
140
152
  this.el.wrapper.style.display = 'flex';
141
153
  }
142
154
  requestAnimationFrame(() => {
143
155
  var _a;
144
- (_a = this.el.wrapper) === null || _a === void 0 ? void 0 : _a.classList.add(selectors_1.default.getClass('open'));
156
+ (_a = this.el.wrapper) === null || _a === void 0 ? void 0 : _a.classList.add('mint-open');
145
157
  });
146
158
  } else {
147
159
  if (this.el.html) {
@@ -149,7 +161,7 @@ class mintHeader {
149
161
  }
150
162
  requestAnimationFrame(() => {
151
163
  var _a;
152
- (_a = this.el.wrapper) === null || _a === void 0 ? void 0 : _a.classList.remove(selectors_1.default.getClass('open'));
164
+ (_a = this.el.wrapper) === null || _a === void 0 ? void 0 : _a.classList.remove('mint-open');
153
165
  });
154
166
  this.closeAllMenus();
155
167
  }
@@ -235,7 +247,7 @@ class mintHeader {
235
247
  let activeButton = document.activeElement,
236
248
  activeMenu = activeButton === null || activeButton === void 0 ? void 0 : activeButton.nextElementSibling,
237
249
  showing = ((_a = activeButton === null || activeButton === void 0 ? void 0 : activeButton.getAttribute('aria-expanded')) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';
238
- if ((activeButton === null || activeButton === void 0 ? void 0 : activeButton.getAttribute('aria-controls')) === selectors_1.default.ids.wrapper) {
250
+ if ((activeButton === null || activeButton === void 0 ? void 0 : activeButton.getAttribute('aria-controls')) === 'mint-wrapper') {
239
251
  activeMenu = this.el.wrapper;
240
252
  }
241
253
  if ((activeButton === null || activeButton === void 0 ? void 0 : activeButton.getAttribute('aria-controls')) && activeMenu && !showing) {
@@ -274,12 +286,23 @@ class mintHeader {
274
286
  /**
275
287
  * Closes the mobile menu when the window resizes
276
288
  */
277
- eHandleResize(e) {
278
- // Also check if resized from mobile to desktop
279
- if (util_1.default.windowWidth() !== this.lastWidth) {
280
- this.setMobileMenu();
289
+ eHandleResize() {
290
+ var _a, _b;
291
+ let isOpen = ((_b = (_a = this.el.mobileButton) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-expanded')) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'true',
292
+ isMobile = util_1.default.windowWidth() <= settings_1.default.break.sm,
293
+ overflow = 'auto';
294
+ if (isOpen) {
295
+ if (this.settings.tray) {
296
+ if (isMobile) {
297
+ overflow = 'hidden';
298
+ }
299
+ } else {
300
+ overflow = 'hidden';
301
+ }
302
+ }
303
+ if (this.el.html) {
304
+ this.el.html.style.overflow = overflow;
281
305
  }
282
- this.lastWidth = util_1.default.windowWidth();
283
306
  }
284
307
  /**
285
308
  * Closes all submenus when the page is scrolled
@@ -310,7 +333,7 @@ class mintHeader {
310
333
  subMenu = target === null || target === void 0 ? void 0 : target.closest('li');
311
334
  switch (e.key.toLowerCase()) {
312
335
  case 'escape':
313
- if (subMenu === null || subMenu === void 0 ? void 0 : subMenu.classList.contains(selectors_1.default.classes.open)) {
336
+ if (subMenu === null || subMenu === void 0 ? void 0 : subMenu.classList.contains('mint-open')) {
314
337
  this.setMenu(subMenu);
315
338
  } else {
316
339
  this.setMobileMenu();
@@ -387,7 +410,7 @@ class mintHeader {
387
410
  */
388
411
  eTransitionEnd() {
389
412
  var _a;
390
- if (((_a = this.el.wrapper) === null || _a === void 0 ? void 0 : _a.classList.contains(selectors_1.default.getClass('open'))) === false) {
413
+ if (((_a = this.el.wrapper) === null || _a === void 0 ? void 0 : _a.classList.contains('mint-open')) === false) {
391
414
  this.el.wrapper.style.display = 'none';
392
415
  }
393
416
  }
@@ -1007,24 +1030,6 @@ class mintSelectors {
1007
1030
  static expanded(bool) {
1008
1031
  return typeof bool === 'boolean' ? `[aria-expanded="${bool}"]` : this.hasExpanded;
1009
1032
  }
1010
- /**
1011
- * Returns the id of the requested element
1012
- */
1013
- static getId(id) {
1014
- var _b;
1015
- return (_b = this.ids[id !== null && id !== void 0 ? id : -1]) !== null && _b !== void 0 ? _b : '';
1016
- }
1017
- /**
1018
- * Returns the class of the requested element
1019
- */
1020
- static getClass(className, classGroup) {
1021
- var _b, _c;
1022
- if (classGroup) {
1023
- let group = this.classes[classGroup];
1024
- return (_b = group[className !== null && className !== void 0 ? className : -1]) !== null && _b !== void 0 ? _b : '';
1025
- }
1026
- return (_c = this.classes[className !== null && className !== void 0 ? className : -1]) !== null && _c !== void 0 ? _c : '';
1027
- }
1028
1033
  /**
1029
1034
  * Returns a NodeList of HTMLElements within the given element that are focusable
1030
1035
  * @param el - the element whose focusable children will be returned
@@ -1118,31 +1123,6 @@ mintSelectors.subMenuButtons = `button${_a.hasControls}`;
1118
1123
  * CSS-selector for submenus
1119
1124
  */
1120
1125
  mintSelectors.subMenu = `${_a.subMenuButtons} + ul${_a.hasId}`;
1121
- /**
1122
- * Frequently-used ids
1123
- */
1124
- mintSelectors.ids = {
1125
- header: _a.prefix('header'),
1126
- logo: _a.prefix('logo'),
1127
- wrapper: _a.prefix('wrapper'),
1128
- mainContent: _a.prefix('main-content')
1129
- };
1130
- /**
1131
- * Classes
1132
- */
1133
- mintSelectors.classes = {
1134
- sides: {
1135
- top: _a.prefix('top'),
1136
- right: _a.prefix('right'),
1137
- bottom: _a.prefix('bottom'),
1138
- left: _a.prefix('left')
1139
- },
1140
- srOnly: _a.prefix('sr-only'),
1141
- js: _a.prefix('js'),
1142
- ready: _a.prefix('ready'),
1143
- fixed: _a.prefix('fixed'),
1144
- open: _a.prefix('open')
1145
- };
1146
1126
  exports["default"] = mintSelectors;
1147
1127
 
1148
1128
  /***/ }),
@@ -1151,7 +1131,7 @@ exports["default"] = mintSelectors;
1151
1131
  /*!*****************************************!*\
1152
1132
  !*** ./src/ts/imports/util/settings.ts ***!
1153
1133
  \*****************************************/
1154
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1134
+ /***/ ((__unused_webpack_module, exports) => {
1155
1135
 
1156
1136
 
1157
1137
 
@@ -1160,11 +1140,6 @@ Object.defineProperty(exports, "__esModule", ({
1160
1140
  value: true
1161
1141
  }));
1162
1142
  exports.mintSettings = void 0;
1163
- /**
1164
- * Imports
1165
- */
1166
- const enum_1 = __webpack_require__(/*! ../enum */ "./src/ts/imports/enum.ts");
1167
- const selectors_1 = __webpack_require__(/*! ./selectors */ "./src/ts/imports/util/selectors.ts");
1168
1143
  /**
1169
1144
  * Settings management
1170
1145
  * @public
@@ -1192,11 +1167,10 @@ class mintSettings {
1192
1167
  this.delay = Object.assign(Object.assign({}, this.delay), settings.delay);
1193
1168
  }
1194
1169
  }
1195
- if (typeof settings.from === 'number') {
1196
- this.setFrom(settings.from);
1197
- }
1198
- if (typeof settings.fixed === 'boolean') {
1199
- this.setFixed(settings.fixed);
1170
+ if (settings.break && Object.keys(settings.break).length) {
1171
+ if (Object.values(settings.break).reduce((prev, next) => prev && typeof next === 'number', true)) {
1172
+ this.break = Object.assign(Object.assign({}, this.break), settings.break);
1173
+ }
1200
1174
  }
1201
1175
  }
1202
1176
  /**
@@ -1212,32 +1186,6 @@ class mintSettings {
1212
1186
  slow: this.delayBase + this.delayStep * 5
1213
1187
  };
1214
1188
  }
1215
- /**
1216
- * Updates the direction the navbar enters from
1217
- */
1218
- static setFrom(from) {
1219
- if (this.from !== from) {
1220
- this.from = from;
1221
- let header = document.getElementById(selectors_1.mintSelectors.getId('header'));
1222
- header === null || header === void 0 ? void 0 : header.classList.remove(...Object.values(selectors_1.mintSelectors.classes.sides));
1223
- header === null || header === void 0 ? void 0 : header.classList.add(selectors_1.mintSelectors.getClass(enum_1.mintSide[this.from].toLowerCase(), 'sides'));
1224
- }
1225
- }
1226
- /**
1227
- * Updates whether or not the navbar is fixed
1228
- */
1229
- static setFixed(fixed) {
1230
- if (this.fixed !== fixed) {
1231
- this.fixed = fixed;
1232
- let header = document.getElementById(selectors_1.mintSelectors.getId('header')),
1233
- fixedClass = selectors_1.mintSelectors.getClass('fixed');
1234
- if (this.fixed) {
1235
- header === null || header === void 0 ? void 0 : header.classList.add(fixedClass);
1236
- } else {
1237
- header === null || header === void 0 ? void 0 : header.classList.remove(fixedClass);
1238
- }
1239
- }
1240
- }
1241
1189
  }
1242
1190
  exports.mintSettings = mintSettings;
1243
1191
  _a = mintSettings;
@@ -1260,6 +1208,17 @@ mintSettings.delay = {
1260
1208
  medSlow: _a.delayBase + _a.delayStep * 4,
1261
1209
  slow: _a.delayBase + _a.delayStep * 5
1262
1210
  };
1211
+ /**
1212
+ * Breakpoint variables
1213
+ */
1214
+ mintSettings.break = {
1215
+ z: 0,
1216
+ xs: 480,
1217
+ sm: 768,
1218
+ md: 1024,
1219
+ lg: 1200,
1220
+ xl: 1440
1221
+ };
1263
1222
  ;
1264
1223
  exports["default"] = mintSettings;
1265
1224