@appartmint/mint 5.0.3 → 5.0.5

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 (157) hide show
  1. package/dist/imports/abstract/attaches-events.cjs.js +1 -0
  2. package/dist/{js/imports → imports}/abstract/attaches-events.d.ts +0 -4
  3. package/dist/imports/abstract/attaches-events.esm.js +23 -0
  4. package/dist/imports/abstract/index.cjs.js +1 -0
  5. package/dist/{js/imports → imports}/abstract/index.d.ts +0 -1
  6. package/dist/imports/abstract/index.esm.js +2 -0
  7. package/dist/imports/components/grid.cjs.js +1 -0
  8. package/dist/imports/components/grid.d.ts +9 -0
  9. package/dist/imports/components/grid.esm.js +7 -0
  10. package/dist/imports/components/header.cjs.js +1 -0
  11. package/dist/{js/imports → imports}/components/header.d.ts +12 -13
  12. package/dist/imports/components/header.esm.js +31 -0
  13. package/dist/imports/components/index.cjs.js +1 -0
  14. package/dist/{js/imports → imports}/components/index.d.ts +0 -1
  15. package/dist/imports/components/index.esm.js +5 -0
  16. package/dist/imports/components/menu.cjs.js +1 -0
  17. package/dist/{js/imports → imports}/components/menu.d.ts +9 -7
  18. package/dist/imports/components/menu.esm.js +119 -0
  19. package/dist/imports/components/panel.cjs.js +1 -0
  20. package/dist/{js/imports → imports}/components/panel.d.ts +15 -4
  21. package/dist/imports/components/panel.esm.js +88 -0
  22. package/dist/imports/enums/index.cjs.js +1 -0
  23. package/dist/{js/imports → imports}/enums/index.d.ts +0 -1
  24. package/dist/imports/enums/index.esm.js +2 -0
  25. package/dist/imports/enums/side.cjs.js +1 -0
  26. package/dist/{js/imports → imports}/enums/side.d.ts +0 -1
  27. package/dist/imports/enums/side.esm.js +6 -0
  28. package/dist/imports/index.cjs.js +1 -0
  29. package/dist/{js/imports → imports}/index.d.ts +0 -1
  30. package/dist/imports/index.esm.js +23 -0
  31. package/dist/imports/models/color.cjs.js +1 -0
  32. package/dist/{js/imports → imports}/models/color.d.ts +1 -4
  33. package/dist/imports/models/color.esm.js +48 -0
  34. package/dist/imports/models/event.cjs.js +1 -0
  35. package/dist/{js/imports → imports}/models/event.d.ts +0 -1
  36. package/dist/imports/models/event.esm.js +0 -0
  37. package/dist/imports/models/file.cjs.js +1 -0
  38. package/dist/{js/imports → imports}/models/file.d.ts +2 -7
  39. package/dist/imports/models/file.esm.js +0 -0
  40. package/dist/imports/models/index.cjs.js +1 -0
  41. package/dist/{js/imports → imports}/models/index.d.ts +0 -1
  42. package/dist/imports/models/index.esm.js +3 -0
  43. package/dist/imports/models/item.cjs.js +1 -0
  44. package/dist/{js/imports → imports}/models/item.d.ts +6 -14
  45. package/dist/imports/models/item.esm.js +45 -0
  46. package/dist/imports/models/minify.cjs.js +1 -0
  47. package/dist/{js/imports → imports}/models/minify.d.ts +0 -1
  48. package/dist/imports/models/minify.esm.js +0 -0
  49. package/dist/imports/models/page.cjs.js +1 -0
  50. package/dist/{js/imports → imports}/models/page.d.ts +1 -5
  51. package/dist/imports/models/page.esm.js +0 -0
  52. package/dist/imports/models/primitive.cjs.js +1 -0
  53. package/dist/{js/imports → imports}/models/primitive.d.ts +0 -1
  54. package/dist/imports/models/primitive.esm.js +0 -0
  55. package/dist/imports/models/recaptcha.cjs.js +1 -0
  56. package/dist/{js/imports → imports}/models/recaptcha.d.ts +0 -1
  57. package/dist/imports/models/recaptcha.esm.js +0 -0
  58. package/dist/imports/util/async.cjs.js +1 -0
  59. package/dist/imports/util/async.d.ts +10 -0
  60. package/dist/imports/util/async.esm.js +6 -0
  61. package/dist/imports/util/display.cjs.js +1 -0
  62. package/dist/{js/imports → imports}/util/display.d.ts +4 -8
  63. package/dist/imports/util/display.esm.js +26 -0
  64. package/dist/imports/util/event.cjs.js +1 -0
  65. package/dist/{js/imports → imports}/util/event.d.ts +8 -11
  66. package/dist/imports/util/event.esm.js +31 -0
  67. package/dist/imports/util/icon.cjs.js +1 -0
  68. package/dist/imports/util/icon.d.ts +23 -0
  69. package/dist/imports/util/icon.esm.js +33 -0
  70. package/dist/imports/util/index.cjs.js +1 -0
  71. package/dist/{js/imports → imports}/util/index.d.ts +0 -1
  72. package/dist/imports/util/index.esm.js +13 -0
  73. package/dist/imports/util/list.cjs.js +1 -0
  74. package/dist/{js/imports → imports}/util/list.d.ts +5 -6
  75. package/dist/imports/util/list.esm.js +21 -0
  76. package/dist/imports/util/math.cjs.js +1 -0
  77. package/dist/{js/imports → imports}/util/math.d.ts +7 -8
  78. package/dist/imports/util/math.esm.js +16 -0
  79. package/dist/imports/util/object.cjs.js +1 -0
  80. package/dist/{js/imports → imports}/util/object.d.ts +16 -17
  81. package/dist/imports/util/object.esm.js +115 -0
  82. package/dist/imports/util/scroll.cjs.js +1 -0
  83. package/dist/{js/imports → imports}/util/scroll.d.ts +6 -7
  84. package/dist/imports/util/scroll.esm.js +26 -0
  85. package/dist/imports/util/selectors.cjs.js +8 -0
  86. package/dist/{js/imports → imports}/util/selectors.d.ts +26 -69
  87. package/dist/imports/util/selectors.esm.js +63 -0
  88. package/dist/imports/util/settings.cjs.js +1 -0
  89. package/dist/imports/util/settings.d.ts +38 -0
  90. package/dist/imports/util/settings.esm.js +43 -0
  91. package/dist/imports/util/text.cjs.js +8 -0
  92. package/dist/{js/imports → imports}/util/text.d.ts +13 -14
  93. package/dist/imports/util/text.esm.js +75 -0
  94. package/dist/imports/util/window.cjs.js +1 -0
  95. package/dist/{js/imports → imports}/util/window.d.ts +4 -5
  96. package/dist/imports/util/window.esm.js +13 -0
  97. package/dist/index.cjs.js +1 -0
  98. package/dist/{js/index.d.ts → index.d.ts} +0 -1
  99. package/dist/index.esm.js +22 -0
  100. package/dist/{css/mint.css → mint.css} +1 -4
  101. package/dist/mint.css.map +1 -0
  102. package/dist/mint.min.css +1 -0
  103. package/dist/mint.min.css.map +1 -0
  104. package/dist/noscript.css +5 -0
  105. package/dist/noscript.css.map +1 -0
  106. package/dist/noscript.min.css +1 -0
  107. package/dist/noscript.min.css.map +1 -0
  108. package/package.json +86 -67
  109. package/src/scss/imports/util/_vars.scss +12 -12
  110. package/dist/css/mint.css.map +0 -1
  111. package/dist/css/mint.min.css +0 -3
  112. package/dist/css/mint.min.css.map +0 -1
  113. package/dist/css/noscript.css +0 -8
  114. package/dist/css/noscript.css.map +0 -1
  115. package/dist/css/noscript.min.css +0 -3
  116. package/dist/css/noscript.min.css.map +0 -1
  117. package/dist/js/imports/abstract/attaches-events.d.ts.map +0 -1
  118. package/dist/js/imports/abstract/index.d.ts.map +0 -1
  119. package/dist/js/imports/components/grid.d.ts +0 -10
  120. package/dist/js/imports/components/grid.d.ts.map +0 -1
  121. package/dist/js/imports/components/header.d.ts.map +0 -1
  122. package/dist/js/imports/components/index.d.ts.map +0 -1
  123. package/dist/js/imports/components/menu.d.ts.map +0 -1
  124. package/dist/js/imports/components/panel.d.ts.map +0 -1
  125. package/dist/js/imports/enums/index.d.ts.map +0 -1
  126. package/dist/js/imports/enums/side.d.ts.map +0 -1
  127. package/dist/js/imports/index.d.ts.map +0 -1
  128. package/dist/js/imports/models/color.d.ts.map +0 -1
  129. package/dist/js/imports/models/event.d.ts.map +0 -1
  130. package/dist/js/imports/models/file.d.ts.map +0 -1
  131. package/dist/js/imports/models/index.d.ts.map +0 -1
  132. package/dist/js/imports/models/item.d.ts.map +0 -1
  133. package/dist/js/imports/models/minify.d.ts.map +0 -1
  134. package/dist/js/imports/models/page.d.ts.map +0 -1
  135. package/dist/js/imports/models/primitive.d.ts.map +0 -1
  136. package/dist/js/imports/models/recaptcha.d.ts.map +0 -1
  137. package/dist/js/imports/util/async.d.ts +0 -11
  138. package/dist/js/imports/util/async.d.ts.map +0 -1
  139. package/dist/js/imports/util/display.d.ts.map +0 -1
  140. package/dist/js/imports/util/event.d.ts.map +0 -1
  141. package/dist/js/imports/util/icon.d.ts +0 -29
  142. package/dist/js/imports/util/icon.d.ts.map +0 -1
  143. package/dist/js/imports/util/index.d.ts.map +0 -1
  144. package/dist/js/imports/util/list.d.ts.map +0 -1
  145. package/dist/js/imports/util/math.d.ts.map +0 -1
  146. package/dist/js/imports/util/object.d.ts.map +0 -1
  147. package/dist/js/imports/util/scroll.d.ts.map +0 -1
  148. package/dist/js/imports/util/selectors.d.ts.map +0 -1
  149. package/dist/js/imports/util/settings.d.ts +0 -39
  150. package/dist/js/imports/util/settings.d.ts.map +0 -1
  151. package/dist/js/imports/util/text.d.ts.map +0 -1
  152. package/dist/js/imports/util/window.d.ts.map +0 -1
  153. package/dist/js/index.d.ts.map +0 -1
  154. package/dist/js/index.js +0 -2455
  155. package/dist/js/index.js.map +0 -1
  156. package/dist/js/index.min.js +0 -2
  157. package/dist/js/index.min.js.map +0 -1
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class{events=[];attachEvent(e,t,n){if(e){let r=this.events.find(t=>t.el===e);r?(r.handlers.push(n),r.events.push(t)):this.events.push({el:e,handlers:[n],events:[t]}),e.addEventListener(t,n)}}detachEvents(){this.events.forEach(e=>{e.handlers.forEach((t,n)=>{e.el?.removeEventListener(e.events[n],t)})}),this.events=[]}};exports.MintAttachesEvents=e;
@@ -1,6 +1,3 @@
1
- /**
2
- * Imports
3
- */
4
1
  import { MintModelEvent } from '../models';
5
2
  /**
6
3
  * Attaches Events
@@ -23,4 +20,3 @@ export declare abstract class MintAttachesEvents {
23
20
  */
24
21
  detachEvents(): void;
25
22
  }
26
- //# sourceMappingURL=attaches-events.d.ts.map
@@ -0,0 +1,23 @@
1
+ //#region src/ts/imports/abstract/attaches-events.ts
2
+ var e = class {
3
+ events = [];
4
+ attachEvent(e, t, n) {
5
+ if (e) {
6
+ let r = this.events.find((t) => t.el === e);
7
+ r ? (r.handlers.push(n), r.events.push(t)) : this.events.push({
8
+ el: e,
9
+ handlers: [n],
10
+ events: [t]
11
+ }), e.addEventListener(t, n);
12
+ }
13
+ }
14
+ detachEvents() {
15
+ this.events.forEach((e) => {
16
+ e.handlers.forEach((t, n) => {
17
+ e.el?.removeEventListener(e.events[n], t);
18
+ });
19
+ }), this.events = [];
20
+ }
21
+ };
22
+ //#endregion
23
+ export { e as MintAttachesEvents };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./attaches-events.cjs.js");exports.MintAttachesEvents=e.MintAttachesEvents;
@@ -2,4 +2,3 @@
2
2
  * Forward all abstract exports
3
3
  */
4
4
  export * from './attaches-events';
5
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ import { MintAttachesEvents as e } from "./attaches-events.esm.js";
2
+ export { e as MintAttachesEvents };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../util/math.cjs.js");var t={gridNum(t){return e.MintMath.clamp(t,1,4)}};exports.MintGrid=t;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Grid Component
3
+ */
4
+ export declare const MintGrid: {
5
+ /**
6
+ * Get a valid grid number
7
+ */
8
+ gridNum(num?: number): number;
9
+ };
@@ -0,0 +1,7 @@
1
+ import { MintMath as e } from "../util/math.esm.js";
2
+ //#region src/ts/imports/components/grid.ts
3
+ var t = { gridNum(t) {
4
+ return e.clamp(t, 1, 4);
5
+ } };
6
+ //#endregion
7
+ export { t as MintGrid };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./panel.cjs.js"),t=require("./menu.cjs.js");var n=class{settings={id:`mint-menu`,wrapperId:`mint-wrapper`,title:`menu`,fixed:!0};el={};panel;menu;constructor(n){this.settings={...this.settings,...n},this.panel=new e.MintPanel(this.settings),this.menu=new t.MintMenu(this.settings),this.attachElements(),this.addClasses()}detachEvents(){this.panel?.detachEvents(),this.menu?.detachEvents()}attachElements(){this.el.body=document.querySelector(`body`)}addClasses(){this.settings.fixed&&this.el.body?.classList.add(`mint-fixed`)}};exports.MintHeader=n;
@@ -1,8 +1,14 @@
1
+ import { MintPanel } from './panel';
2
+ import { MintMenu } from './menu';
1
3
  /**
2
- * Imports
4
+ * Header settings
3
5
  */
4
- import { MintPanel } from "./panel";
5
- import { MintMenu } from "./menu";
6
+ export interface MintHeaderSettings {
7
+ id: string;
8
+ wrapperId: string;
9
+ title: string;
10
+ fixed: boolean;
11
+ }
6
12
  /**
7
13
  * Main header functionality
8
14
  * @public
@@ -11,15 +17,11 @@ export declare class MintHeader {
11
17
  /**
12
18
  * Navbar settings
13
19
  */
14
- settings: {
15
- [key: string]: any;
16
- };
20
+ settings: MintHeaderSettings;
17
21
  /**
18
22
  * Frequently-referenced elements
19
23
  */
20
- el: {
21
- [key: string]: HTMLElement | null;
22
- };
24
+ el: Record<string, HTMLElement | null>;
23
25
  /**
24
26
  * Navigation functionality
25
27
  */
@@ -28,9 +30,7 @@ export declare class MintHeader {
28
30
  /**
29
31
  * Initializes and closes the menu
30
32
  */
31
- constructor(settings?: {
32
- [key: string]: any;
33
- });
33
+ constructor(settings?: Partial<MintHeaderSettings>);
34
34
  /**
35
35
  * Detach events
36
36
  */
@@ -44,4 +44,3 @@ export declare class MintHeader {
44
44
  */
45
45
  addClasses(): void;
46
46
  }
47
- //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { MintPanel as e } from "./panel.esm.js";
2
+ import { MintMenu as t } from "./menu.esm.js";
3
+ //#region src/ts/imports/components/header.ts
4
+ var n = class {
5
+ settings = {
6
+ id: "mint-menu",
7
+ wrapperId: "mint-wrapper",
8
+ title: "menu",
9
+ fixed: !0
10
+ };
11
+ el = {};
12
+ panel;
13
+ menu;
14
+ constructor(n) {
15
+ this.settings = {
16
+ ...this.settings,
17
+ ...n
18
+ }, this.panel = new e(this.settings), this.menu = new t(this.settings), this.attachElements(), this.addClasses();
19
+ }
20
+ detachEvents() {
21
+ this.panel?.detachEvents(), this.menu?.detachEvents();
22
+ }
23
+ attachElements() {
24
+ this.el.body = document.querySelector("body");
25
+ }
26
+ addClasses() {
27
+ this.settings.fixed && this.el.body?.classList.add("mint-fixed");
28
+ }
29
+ };
30
+ //#endregion
31
+ export { n as MintHeader };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./grid.cjs.js"),t=require("./panel.cjs.js"),n=require("./menu.cjs.js"),r=require("./header.cjs.js");exports.MintGrid=e.MintGrid,exports.MintHeader=r.MintHeader,exports.MintMenu=n.MintMenu,exports.MintPanel=t.MintPanel;
@@ -5,4 +5,3 @@ export * from './grid';
5
5
  export * from './header';
6
6
  export * from './menu';
7
7
  export * from './panel';
8
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ import { MintGrid as e } from "./grid.esm.js";
2
+ import { MintPanel as t } from "./panel.esm.js";
3
+ import { MintMenu as n } from "./menu.esm.js";
4
+ import { MintHeader as r } from "./header.esm.js";
5
+ export { e as MintGrid, r as MintHeader, n as MintMenu, t as MintPanel };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../abstract/attaches-events.cjs.js"),t=require("../util/settings.cjs.js"),n=require("../util/display.cjs.js"),r=require("../util/event.cjs.js"),i=require("../util/selectors.cjs.js");require("../util/index.cjs.js");var a=class extends e.MintAttachesEvents{settings={};el={};constructor(e){if(super(),this.settings={...this.settings,...e},!this.settings.wrapperId)throw Error(`Wrapper ID is required`);this.attachElements(),this.attachEvents(),requestAnimationFrame(()=>{this.closeAllMenus()})}attachElements(){let{wrapperId:e}=this.settings;this.el.wrapper=e?document.getElementById(e):null}attachEvents(){this.attachEvent(window,`scroll`,r.MintEvent.throttleEvent(this.eHandleScroll.bind(this),t.MintSettings.delay.default,{trailing:!1})),(this.el.wrapper?.querySelectorAll(i.MintSelectors.focusable))?.forEach(e=>{this.attachEvent(e,`keydown`,r.MintEvent.throttleEvent(this.eHandleKeypress.bind(this)))}),(this.el.wrapper?.querySelectorAll(i.MintSelectors.controls()))?.forEach(e=>{this.attachEvent(e,`click`,r.MintEvent.throttleEvent(this.eToggleMenu.bind(this),t.MintSettings.delay.slow,{trailing:!1}))})}setMenu(e,t=!1){let r=t?`true`:`false`,i=e?.nextElementSibling;e&&i&&(e.setAttribute(`aria-expanded`,r),t?n.MintDisplay.show(i):(n.MintDisplay.hide(i),this.closeSubMenus(e)))}toggleMenu(e){this.setMenu(e,e?.getAttribute(`aria-expanded`)?.toLowerCase()!==`true`)}closeSubMenus(e){let t=e?.nextElementSibling;t&&t.querySelectorAll(i.MintSelectors.subMenuButtons).forEach(e=>{e.parentElement?.parentElement===t&&this.setMenu(e)})}closeSiblingMenus(e){((e?.parentElement)?.parentElement?.querySelectorAll(i.MintSelectors.subMenuButtons))?.forEach(t=>{t!==e&&this.setMenu(t)})}closeAllMenus(){(this.el.wrapper?.querySelectorAll(i.MintSelectors.subMenuButtons))?.forEach(e=>{this.setMenu(e)})}openClosestMenu(){let e=document.activeElement,t=e?.nextElementSibling,n=e?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`;e?.getAttribute(`aria-controls`)===this.settings.wrapperId&&(t=this.el.wrapper),e?.getAttribute(`aria-controls`)&&t&&!n&&(e.click(),t.querySelector(i.MintSelectors.focusable)?.focus())}closeClosestMenu(){let e=document.activeElement,t=e?.closest(i.MintSelectors.subMenu)?.previousElementSibling;e?.getAttribute(`aria-controls`)&&e.getAttribute(`aria-expanded`)?.toLowerCase()===`true`&&(t=e),t?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`&&(t.click(),t.focus())}toggleClosestMenu(){document.activeElement?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`?this.closeClosestMenu():this.openClosestMenu()}eHandleScroll(){this.closeAllMenus()}eHandleButtonKeypress(e){let t=e.target,n=t?.closest(`li`);switch(e.key.toLowerCase()){case`escape`:n?.classList.contains(`mint-open`)&&this.setMenu(n);break;case`arrowleft`:this.closeClosestMenu();break;case`arrowright`:this.openClosestMenu();break;case`enter`:case`space`:t?.click();break}}eHandleLinkKeypress(e){let t=e.target;switch(e.key.toLowerCase()){case`escape`:case`arrowleft`:this.closeClosestMenu();break;case`arrowright`:this.openClosestMenu();break;case`enter`:case`space`:t?.click();break}}eHandleKeypress(e){if(e instanceof KeyboardEvent)switch(e.key.toLowerCase()!==`tab`&&e.preventDefault(),e.target?.tagName.toLowerCase()){case`a`:this.eHandleLinkKeypress(e);break;case`button`:this.eHandleButtonKeypress(e);break}}eToggleMenu(e){if(!(e instanceof MouseEvent))return;let t=e.target;this.closeSiblingMenus(t),this.toggleMenu(t)}};exports.MintMenu=a;
@@ -1,7 +1,10 @@
1
+ import { MintAttachesEvents } from '../abstract';
1
2
  /**
2
- * Imports
3
+ * Menu settings
3
4
  */
4
- import { MintAttachesEvents } from '../abstract';
5
+ export interface MintMenuSettings {
6
+ wrapperId: string;
7
+ }
5
8
  /**
6
9
  * Menu (dropdown) functionality
7
10
  * @public
@@ -10,7 +13,7 @@ export declare class MintMenu extends MintAttachesEvents {
10
13
  /**
11
14
  * Tray settings
12
15
  */
13
- settings: Record<string, any>;
16
+ settings: Partial<MintMenuSettings>;
14
17
  /**
15
18
  * Frequently-referenced elements
16
19
  */
@@ -18,7 +21,7 @@ export declare class MintMenu extends MintAttachesEvents {
18
21
  /**
19
22
  * Initializes and closes the tray
20
23
  */
21
- constructor(settings?: Record<string, any>);
24
+ constructor(settings?: Partial<MintMenuSettings>);
22
25
  /**
23
26
  * Adds elements to {@link el | `this.el`}
24
27
  */
@@ -82,11 +85,10 @@ export declare class MintMenu extends MintAttachesEvents {
82
85
  * Handles keypresses on the menu
83
86
  * @param e - Keyboard event
84
87
  */
85
- eHandleKeypress(e: KeyboardEvent): void;
88
+ eHandleKeypress(e: Event): void;
86
89
  /**
87
90
  * Toggles the clicked submenu
88
91
  * @param e - Mouse event
89
92
  */
90
- eToggleMenu(e: MouseEvent): void;
93
+ eToggleMenu(e: Event): void;
91
94
  }
92
- //# sourceMappingURL=menu.d.ts.map
@@ -0,0 +1,119 @@
1
+ import { MintAttachesEvents as e } from "../abstract/attaches-events.esm.js";
2
+ import { MintSettings as t } from "../util/settings.esm.js";
3
+ import { MintDisplay as n } from "../util/display.esm.js";
4
+ import { MintEvent as r } from "../util/event.esm.js";
5
+ import { MintSelectors as i } from "../util/selectors.esm.js";
6
+ import "../util/index.esm.js";
7
+ //#region src/ts/imports/components/menu.ts
8
+ var a = class extends e {
9
+ settings = {};
10
+ el = {};
11
+ constructor(e) {
12
+ if (super(), this.settings = {
13
+ ...this.settings,
14
+ ...e
15
+ }, !this.settings.wrapperId) throw Error("Wrapper ID is required");
16
+ this.attachElements(), this.attachEvents(), requestAnimationFrame(() => {
17
+ this.closeAllMenus();
18
+ });
19
+ }
20
+ attachElements() {
21
+ let { wrapperId: e } = this.settings;
22
+ this.el.wrapper = e ? document.getElementById(e) : null;
23
+ }
24
+ attachEvents() {
25
+ this.attachEvent(window, "scroll", r.throttleEvent(this.eHandleScroll.bind(this), t.delay.default, { trailing: !1 })), (this.el.wrapper?.querySelectorAll(i.focusable))?.forEach((e) => {
26
+ this.attachEvent(e, "keydown", r.throttleEvent(this.eHandleKeypress.bind(this)));
27
+ }), (this.el.wrapper?.querySelectorAll(i.controls()))?.forEach((e) => {
28
+ this.attachEvent(e, "click", r.throttleEvent(this.eToggleMenu.bind(this), t.delay.slow, { trailing: !1 }));
29
+ });
30
+ }
31
+ setMenu(e, t = !1) {
32
+ let r = t ? "true" : "false", i = e?.nextElementSibling;
33
+ e && i && (e.setAttribute("aria-expanded", r), t ? n.show(i) : (n.hide(i), this.closeSubMenus(e)));
34
+ }
35
+ toggleMenu(e) {
36
+ this.setMenu(e, e?.getAttribute("aria-expanded")?.toLowerCase() !== "true");
37
+ }
38
+ closeSubMenus(e) {
39
+ let t = e?.nextElementSibling;
40
+ t && t.querySelectorAll(i.subMenuButtons).forEach((e) => {
41
+ e.parentElement?.parentElement === t && this.setMenu(e);
42
+ });
43
+ }
44
+ closeSiblingMenus(e) {
45
+ ((e?.parentElement)?.parentElement?.querySelectorAll(i.subMenuButtons))?.forEach((t) => {
46
+ t !== e && this.setMenu(t);
47
+ });
48
+ }
49
+ closeAllMenus() {
50
+ (this.el.wrapper?.querySelectorAll(i.subMenuButtons))?.forEach((e) => {
51
+ this.setMenu(e);
52
+ });
53
+ }
54
+ openClosestMenu() {
55
+ let e = document.activeElement, t = e?.nextElementSibling, n = e?.getAttribute("aria-expanded")?.toLowerCase() === "true";
56
+ e?.getAttribute("aria-controls") === this.settings.wrapperId && (t = this.el.wrapper), e?.getAttribute("aria-controls") && t && !n && (e.click(), t.querySelector(i.focusable)?.focus());
57
+ }
58
+ closeClosestMenu() {
59
+ let e = document.activeElement, t = e?.closest(i.subMenu)?.previousElementSibling;
60
+ e?.getAttribute("aria-controls") && e.getAttribute("aria-expanded")?.toLowerCase() === "true" && (t = e), t?.getAttribute("aria-expanded")?.toLowerCase() === "true" && (t.click(), t.focus());
61
+ }
62
+ toggleClosestMenu() {
63
+ document.activeElement?.getAttribute("aria-expanded")?.toLowerCase() === "true" ? this.closeClosestMenu() : this.openClosestMenu();
64
+ }
65
+ eHandleScroll() {
66
+ this.closeAllMenus();
67
+ }
68
+ eHandleButtonKeypress(e) {
69
+ let t = e.target, n = t?.closest("li");
70
+ switch (e.key.toLowerCase()) {
71
+ case "escape":
72
+ n?.classList.contains("mint-open") && this.setMenu(n);
73
+ break;
74
+ case "arrowleft":
75
+ this.closeClosestMenu();
76
+ break;
77
+ case "arrowright":
78
+ this.openClosestMenu();
79
+ break;
80
+ case "enter":
81
+ case "space":
82
+ t?.click();
83
+ break;
84
+ }
85
+ }
86
+ eHandleLinkKeypress(e) {
87
+ let t = e.target;
88
+ switch (e.key.toLowerCase()) {
89
+ case "escape":
90
+ case "arrowleft":
91
+ this.closeClosestMenu();
92
+ break;
93
+ case "arrowright":
94
+ this.openClosestMenu();
95
+ break;
96
+ case "enter":
97
+ case "space":
98
+ t?.click();
99
+ break;
100
+ }
101
+ }
102
+ eHandleKeypress(e) {
103
+ if (e instanceof KeyboardEvent) switch (e.key.toLowerCase() !== "tab" && e.preventDefault(), e.target?.tagName.toLowerCase()) {
104
+ case "a":
105
+ this.eHandleLinkKeypress(e);
106
+ break;
107
+ case "button":
108
+ this.eHandleButtonKeypress(e);
109
+ break;
110
+ }
111
+ }
112
+ eToggleMenu(e) {
113
+ if (!(e instanceof MouseEvent)) return;
114
+ let t = e.target;
115
+ this.closeSiblingMenus(t), this.toggleMenu(t);
116
+ }
117
+ };
118
+ //#endregion
119
+ export { a as MintMenu };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../abstract/attaches-events.cjs.js"),t=require("../enums/side.cjs.js"),n=require("../util/settings.cjs.js"),r=require("../util/event.cjs.js"),i=require("../util/selectors.cjs.js"),a=require("../util/window.cjs.js");require("../util/index.cjs.js");var o=class extends e.MintAttachesEvents{settings={id:``,wrapperId:``,title:`panel`,from:t.EMintSide.Top,fixed:!0};el={};constructor(e){if(super(),this.settings={...this.settings,...e},!this.settings.id||!this.settings.wrapperId)throw Error(`Panel ID and wrapper ID are required`);this.attachElements(),this.attachEvents(),this.addClasses(),requestAnimationFrame(()=>{this.setPanel()})}attachElements(){this.el.html=document.querySelector(`html`),this.el.main=document.querySelector(`main`),this.el.panel=document.getElementById(this.settings.id),this.el.wrapper=document.getElementById(this.settings.wrapperId),this.el.toggleButton=this.el.panel?.querySelector(i.MintSelectors.controls(this.settings.wrapperId))??null}attachEvents(){this.attachEvent(window,`resize`,r.MintEvent.throttleEvent(this.eHandleResize.bind(this),n.MintSettings.delay.default)),this.attachEvent(this.el.main,`click`,r.MintEvent.throttleEvent(this.eClose.bind(this),n.MintSettings.delay.default,{trailing:!1})),this.attachEvent(this.el.wrapper,`transitionend`,this.eTransitionEnd.bind(this)),i.MintSelectors.getFocusables(this.el.panel).forEach(e=>{this.attachEvent(e,`keydown`,r.MintEvent.throttleEvent(this.eWrapTab.bind(this)))}),(this.el.panel?.querySelectorAll(i.MintSelectors.controls(this.settings.wrapperId)))?.forEach(e=>{this.attachEvent(e,`click`,r.MintEvent.throttleEvent(this.eToggle.bind(this),n.MintSettings.delay.slow,{trailing:!1}))})}addClasses(){this.el.panel?.classList.add(`mint-panel`),this.el.wrapper?.classList.add(`mint-panel-wrapper`),this.el.toggleButton?.classList.add(`mint-panel-toggle`),this.el.panel?.classList.remove(`mint-top`,`mint-right`,`mint-bottom`,`mint-left`),this.el.panel?.classList.add(`mint-${t.EMintSide[this.settings.from].toLowerCase()}`),this.settings.tray&&this.el.panel?.classList.add(`mint-tray`)}setPanel(e=!1){let r=e?`true`:`false`,i=e?`close ${this.settings.title}`:`open ${this.settings.title}`;this.el.toggleButton?.setAttribute(`aria-expanded`,r),setTimeout(()=>{this.el.toggleButton?.setAttribute(`aria-label`,i)},n.MintSettings.delay.fast),e?(this.closeOtherPanels(),this.settings.fixed||window.scroll({top:0,left:0,behavior:`smooth`}),setTimeout(()=>{if(this.el.html){let e=a.MintWindow.width()<=n.MintSettings.break.sm,t=`auto`;this.settings.tray?e&&(t=`hidden`):t=`hidden`,this.el.html.style.overflow=t}},this.settings.from===t.EMintSide.Left?n.MintSettings.delay.default:n.MintSettings.delay.instant),this.el.wrapper&&(this.el.wrapper.style.display=`flex`),requestAnimationFrame(()=>{this.el.wrapper?.classList.add(`mint-open`)})):(this.el.html&&(this.el.html.style.overflow=`auto`),requestAnimationFrame(()=>{this.el.wrapper?.classList.remove(`mint-open`)}))}togglePanel(){this.setPanel(this.el.toggleButton?.getAttribute(`aria-expanded`)?.toLowerCase()===`false`)}closeOtherPanels(){let e=`.mint-panel-toggle[aria-expanded="true"]:not([aria-controls="${this.settings.wrapperId}"])`;document.querySelector(e)?.click()}eHandleResize(){let e=a.MintWindow.width()<=n.MintSettings.break.sm,t=!0;this.el.panel?.classList.contains(`mint-tray`)?t=!1:this.el.panel?.classList.contains(`mint-expand`)||(t=!1),!e&&t&&this.setPanel(!1);let r=this.el.toggleButton?.getAttribute(`aria-expanded`)?.toLowerCase()===`true`,i=`auto`;r&&(this.settings.tray?e&&(i=`hidden`):i=`hidden`),this.el.html&&(this.el.html.style.overflow=i)}eWrapTab(e){if(!(e instanceof KeyboardEvent))return;let t=i.MintSelectors.getFocusables(this.el.panel),n=t[t.length-1],r=t.length>1&&document.activeElement===n;e.key.toLowerCase()===`tab`&&!e.shiftKey&&r&&(this.el.toggleButton?.focus(),document.activeElement===this.el.toggleButton&&e.preventDefault())}eToggle(){this.togglePanel()}eClose(){this.setPanel(!1)}eTransitionEnd(){this.el.wrapper?.classList.contains(`mint-open`)===!1&&(this.el.wrapper.style.display=`none`)}};exports.MintPanel=o;
@@ -1,4 +1,16 @@
1
+ import { EMintSide } from '../enums/side';
1
2
  import { MintAttachesEvents } from '../abstract';
3
+ /**
4
+ * Panel settings
5
+ */
6
+ export interface MintPanelSettings {
7
+ id: string;
8
+ wrapperId: string;
9
+ title: string;
10
+ from: EMintSide;
11
+ fixed: boolean;
12
+ tray?: boolean;
13
+ }
2
14
  /**
3
15
  * Panel (sidebar) functionality
4
16
  * @public
@@ -7,7 +19,7 @@ export declare class MintPanel extends MintAttachesEvents {
7
19
  /**
8
20
  * Panel settings
9
21
  */
10
- settings: Record<string, any>;
22
+ settings: MintPanelSettings;
11
23
  /**
12
24
  * Frequently-referenced elements
13
25
  */
@@ -15,7 +27,7 @@ export declare class MintPanel extends MintAttachesEvents {
15
27
  /**
16
28
  * Initializes and closes the panel
17
29
  */
18
- constructor(settings?: Record<string, any>);
30
+ constructor(settings?: Partial<MintPanelSettings>);
19
31
  /**
20
32
  * Adds elements to {@link el | `this.el`}
21
33
  */
@@ -49,7 +61,7 @@ export declare class MintPanel extends MintAttachesEvents {
49
61
  * Sends the focus to the toggle button after tabbing past the last focusable element
50
62
  * @param e - Keyboard event
51
63
  */
52
- eWrapTab(e: KeyboardEvent): void;
64
+ eWrapTab(e: Event): void;
53
65
  /**
54
66
  * Toggles the panel
55
67
  */
@@ -63,4 +75,3 @@ export declare class MintPanel extends MintAttachesEvents {
63
75
  */
64
76
  eTransitionEnd(): void;
65
77
  }
66
- //# sourceMappingURL=panel.d.ts.map
@@ -0,0 +1,88 @@
1
+ import { MintAttachesEvents as e } from "../abstract/attaches-events.esm.js";
2
+ import { EMintSide as t } from "../enums/side.esm.js";
3
+ import { MintSettings as n } from "../util/settings.esm.js";
4
+ import { MintEvent as r } from "../util/event.esm.js";
5
+ import { MintSelectors as i } from "../util/selectors.esm.js";
6
+ import { MintWindow as a } from "../util/window.esm.js";
7
+ import "../util/index.esm.js";
8
+ //#region src/ts/imports/components/panel.ts
9
+ var o = class extends e {
10
+ settings = {
11
+ id: "",
12
+ wrapperId: "",
13
+ title: "panel",
14
+ from: t.Top,
15
+ fixed: !0
16
+ };
17
+ el = {};
18
+ constructor(e) {
19
+ if (super(), this.settings = {
20
+ ...this.settings,
21
+ ...e
22
+ }, !this.settings.id || !this.settings.wrapperId) throw Error("Panel ID and wrapper ID are required");
23
+ this.attachElements(), this.attachEvents(), this.addClasses(), requestAnimationFrame(() => {
24
+ this.setPanel();
25
+ });
26
+ }
27
+ attachElements() {
28
+ this.el.html = document.querySelector("html"), this.el.main = document.querySelector("main"), this.el.panel = document.getElementById(this.settings.id), this.el.wrapper = document.getElementById(this.settings.wrapperId), this.el.toggleButton = this.el.panel?.querySelector(i.controls(this.settings.wrapperId)) ?? null;
29
+ }
30
+ attachEvents() {
31
+ this.attachEvent(window, "resize", r.throttleEvent(this.eHandleResize.bind(this), n.delay.default)), this.attachEvent(this.el.main, "click", r.throttleEvent(this.eClose.bind(this), n.delay.default, { trailing: !1 })), this.attachEvent(this.el.wrapper, "transitionend", this.eTransitionEnd.bind(this)), i.getFocusables(this.el.panel).forEach((e) => {
32
+ this.attachEvent(e, "keydown", r.throttleEvent(this.eWrapTab.bind(this)));
33
+ }), (this.el.panel?.querySelectorAll(i.controls(this.settings.wrapperId)))?.forEach((e) => {
34
+ this.attachEvent(e, "click", r.throttleEvent(this.eToggle.bind(this), n.delay.slow, { trailing: !1 }));
35
+ });
36
+ }
37
+ addClasses() {
38
+ this.el.panel?.classList.add("mint-panel"), this.el.wrapper?.classList.add("mint-panel-wrapper"), this.el.toggleButton?.classList.add("mint-panel-toggle"), this.el.panel?.classList.remove("mint-top", "mint-right", "mint-bottom", "mint-left"), this.el.panel?.classList.add(`mint-${t[this.settings.from].toLowerCase()}`), this.settings.tray && this.el.panel?.classList.add("mint-tray");
39
+ }
40
+ setPanel(e = !1) {
41
+ let r = e ? "true" : "false", i = e ? `close ${this.settings.title}` : `open ${this.settings.title}`;
42
+ this.el.toggleButton?.setAttribute("aria-expanded", r), setTimeout(() => {
43
+ this.el.toggleButton?.setAttribute("aria-label", i);
44
+ }, n.delay.fast), e ? (this.closeOtherPanels(), this.settings.fixed || window.scroll({
45
+ top: 0,
46
+ left: 0,
47
+ behavior: "smooth"
48
+ }), setTimeout(() => {
49
+ if (this.el.html) {
50
+ let e = a.width() <= n.break.sm, t = "auto";
51
+ this.settings.tray ? e && (t = "hidden") : t = "hidden", this.el.html.style.overflow = t;
52
+ }
53
+ }, this.settings.from === t.Left ? n.delay.default : n.delay.instant), this.el.wrapper && (this.el.wrapper.style.display = "flex"), requestAnimationFrame(() => {
54
+ this.el.wrapper?.classList.add("mint-open");
55
+ })) : (this.el.html && (this.el.html.style.overflow = "auto"), requestAnimationFrame(() => {
56
+ this.el.wrapper?.classList.remove("mint-open");
57
+ }));
58
+ }
59
+ togglePanel() {
60
+ this.setPanel(this.el.toggleButton?.getAttribute("aria-expanded")?.toLowerCase() === "false");
61
+ }
62
+ closeOtherPanels() {
63
+ let e = `.mint-panel-toggle[aria-expanded="true"]:not([aria-controls="${this.settings.wrapperId}"])`;
64
+ document.querySelector(e)?.click();
65
+ }
66
+ eHandleResize() {
67
+ let e = a.width() <= n.break.sm, t = !0;
68
+ this.el.panel?.classList.contains("mint-tray") ? t = !1 : this.el.panel?.classList.contains("mint-expand") || (t = !1), !e && t && this.setPanel(!1);
69
+ let r = this.el.toggleButton?.getAttribute("aria-expanded")?.toLowerCase() === "true", i = "auto";
70
+ r && (this.settings.tray ? e && (i = "hidden") : i = "hidden"), this.el.html && (this.el.html.style.overflow = i);
71
+ }
72
+ eWrapTab(e) {
73
+ if (!(e instanceof KeyboardEvent)) return;
74
+ let t = i.getFocusables(this.el.panel), n = t[t.length - 1], r = t.length > 1 && document.activeElement === n;
75
+ e.key.toLowerCase() === "tab" && !e.shiftKey && r && (this.el.toggleButton?.focus(), document.activeElement === this.el.toggleButton && e.preventDefault());
76
+ }
77
+ eToggle() {
78
+ this.togglePanel();
79
+ }
80
+ eClose() {
81
+ this.setPanel(!1);
82
+ }
83
+ eTransitionEnd() {
84
+ this.el.wrapper?.classList.contains("mint-open") === !1 && (this.el.wrapper.style.display = "none");
85
+ }
86
+ };
87
+ //#endregion
88
+ export { o as MintPanel };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./side.cjs.js");exports.EMintSide=e.EMintSide;
@@ -2,4 +2,3 @@
2
2
  * Forward all exports from the enums directory
3
3
  */
4
4
  export * from './side';
5
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,2 @@
1
+ import { EMintSide as e } from "./side.esm.js";
2
+ export { e as EMintSide };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=function(e){return e[e.Top=0]=`Top`,e[e.Right=1]=`Right`,e[e.Bottom=2]=`Bottom`,e[e.Left=3]=`Left`,e}({});exports.EMintSide=e;
@@ -7,4 +7,3 @@ export declare enum EMintSide {
7
7
  Bottom = 2,
8
8
  Left = 3
9
9
  }
10
- //# sourceMappingURL=side.d.ts.map
@@ -0,0 +1,6 @@
1
+ //#region src/ts/imports/enums/side.ts
2
+ var e = /* @__PURE__ */ function(e) {
3
+ return e[e.Top = 0] = "Top", e[e.Right = 1] = "Right", e[e.Bottom = 2] = "Bottom", e[e.Left = 3] = "Left", e;
4
+ }({});
5
+ //#endregion
6
+ export { e as EMintSide };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./abstract/attaches-events.cjs.js"),t=require("./util/math.cjs.js"),n=require("./components/grid.cjs.js"),r=require("./enums/side.cjs.js"),i=require("./util/async.cjs.js"),a=require("./util/settings.cjs.js"),o=require("./util/display.cjs.js"),s=require("./util/event.cjs.js"),c=require("./util/icon.cjs.js"),l=require("./util/list.cjs.js"),u=require("./util/object.cjs.js"),d=require("./util/scroll.cjs.js"),f=require("./util/selectors.cjs.js"),p=require("./util/text.cjs.js"),m=require("./util/window.cjs.js");require("./util/index.cjs.js");const h=require("./components/panel.cjs.js"),g=require("./components/menu.cjs.js"),_=require("./components/header.cjs.js");require("./components/index.cjs.js");const v=require("./models/color.cjs.js"),y=require("./models/item.cjs.js");exports.EMintSide=r.EMintSide,exports.MintAsync=i.MintAsync,exports.MintAttachesEvents=e.MintAttachesEvents,exports.MintDisplay=o.MintDisplay,exports.MintEvent=s.MintEvent,exports.MintGrid=n.MintGrid,exports.MintHeader=_.MintHeader,exports.MintIcon=c.MintIcon,exports.MintItem=y.MintItem,exports.MintList=l.MintList,exports.MintMath=t.MintMath,exports.MintMenu=g.MintMenu,exports.MintObject=u.MintObject,exports.MintPanel=h.MintPanel,exports.MintScroll=d.MintScroll,exports.MintSelectors=f.MintSelectors,exports.MintSettings=a.MintSettings,exports.MintText=p.MintText,exports.MintWindow=m.MintWindow,exports.mintColor=v.mintColor;
@@ -6,4 +6,3 @@ export * from './components';
6
6
  export * from './enums';
7
7
  export * from './models';
8
8
  export * from './util';
9
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { MintAttachesEvents as e } from "./abstract/attaches-events.esm.js";
2
+ import { MintMath as t } from "./util/math.esm.js";
3
+ import { MintGrid as n } from "./components/grid.esm.js";
4
+ import { EMintSide as r } from "./enums/side.esm.js";
5
+ import { MintAsync as i } from "./util/async.esm.js";
6
+ import { MintSettings as a } from "./util/settings.esm.js";
7
+ import { MintDisplay as o } from "./util/display.esm.js";
8
+ import { MintEvent as s } from "./util/event.esm.js";
9
+ import { MintIcon as c } from "./util/icon.esm.js";
10
+ import { MintList as l } from "./util/list.esm.js";
11
+ import { MintObject as u } from "./util/object.esm.js";
12
+ import { MintScroll as d } from "./util/scroll.esm.js";
13
+ import { MintSelectors as f } from "./util/selectors.esm.js";
14
+ import { MintText as p } from "./util/text.esm.js";
15
+ import { MintWindow as m } from "./util/window.esm.js";
16
+ import "./util/index.esm.js";
17
+ import { MintPanel as h } from "./components/panel.esm.js";
18
+ import { MintMenu as g } from "./components/menu.esm.js";
19
+ import { MintHeader as _ } from "./components/header.esm.js";
20
+ import "./components/index.esm.js";
21
+ import { mintColor as v } from "./models/color.esm.js";
22
+ import { MintItem as y } from "./models/item.esm.js";
23
+ export { r as EMintSide, i as MintAsync, e as MintAttachesEvents, o as MintDisplay, s as MintEvent, n as MintGrid, _ as MintHeader, c as MintIcon, y as MintItem, l as MintList, t as MintMath, g as MintMenu, u as MintObject, h as MintPanel, d as MintScroll, f as MintSelectors, a as MintSettings, p as MintText, m as MintWindow, v as mintColor };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=class e{static hexBase=16;static hexMax=`FF`;r;g;b;a;constructor(t){this.r=typeof t.r==`number`?Math.max(Math.min(t.r,e.hexBase**2-1),0):0,this.g=typeof t.g==`number`?Math.max(Math.min(t.g,e.hexBase**2-1),0):0,this.b=typeof t.b==`number`?Math.max(Math.min(t.b,e.hexBase**2-1),0):0,this.a=typeof t.a==`number`?Math.max(Math.min(t.a,1),0):1,typeof t.color==`string`&&this.stringConstructor(t.color)}stringConstructor(e){e.startsWith(`#`)?this.hexConstructor(e):(~e.indexOf(`linear-gradient`)&&(e=e.substring(e.indexOf(`linear-gradient`),e.length)),this.rgbConstructor(e))}hexConstructor(t){switch(t.length){case 1:case 5:case 6:return;case 2:t=`#`+t[1]+t[1]+t[1]+t[1]+t[1]+t[1]+e.hexMax;break;case 3:t=`#`+t[1]+t[1]+t[1]+t[2]+t[2]+t[2]+e.hexMax;break;case 4:t=`#`+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+e.hexMax;break;case 7:t+=e.hexMax;break;case 8:t+=t[t.length-1];break;default:t=t.substring(0,9)}this.r=parseInt(t.substring(1,3),e.hexBase),this.g=parseInt(t.substring(3,5),e.hexBase),this.b=parseInt(t.substring(5,7),e.hexBase),this.a=parseInt(t.substring(7,9),e.hexBase)/e.hexBase**2}rgbConstructor(e){let t=/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d*)?)\))?/.exec(e);t&&(this.r=parseInt(t[1]),this.g=parseInt(t[2]),this.b=parseInt(t[3]),this.a=parseFloat(t[4]))}getBrightness(){return this.a===0?262:!isNaN(this.r)&&!isNaN(this.g)&&!isNaN(this.b)?Math.round((this.r*299+this.g*587+this.b*144)/1e3):-1}};exports.mintColor=e;
@@ -5,12 +5,9 @@ export declare class mintColor {
5
5
  g: number;
6
6
  b: number;
7
7
  a: number;
8
- constructor(args: {
9
- [key: string]: number | string;
10
- });
8
+ constructor(args: Record<string, number | string>);
11
9
  protected stringConstructor(str: string): void;
12
10
  protected hexConstructor(hex: string): void;
13
11
  protected rgbConstructor(rgb: string): void;
14
12
  getBrightness(): number;
15
13
  }
16
- //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1,48 @@
1
+ //#region src/ts/imports/models/color.ts
2
+ var e = class e {
3
+ static hexBase = 16;
4
+ static hexMax = "FF";
5
+ r;
6
+ g;
7
+ b;
8
+ a;
9
+ constructor(t) {
10
+ this.r = typeof t.r == "number" ? Math.max(Math.min(t.r, e.hexBase ** 2 - 1), 0) : 0, this.g = typeof t.g == "number" ? Math.max(Math.min(t.g, e.hexBase ** 2 - 1), 0) : 0, this.b = typeof t.b == "number" ? Math.max(Math.min(t.b, e.hexBase ** 2 - 1), 0) : 0, this.a = typeof t.a == "number" ? Math.max(Math.min(t.a, 1), 0) : 1, typeof t.color == "string" && this.stringConstructor(t.color);
11
+ }
12
+ stringConstructor(e) {
13
+ e.startsWith("#") ? this.hexConstructor(e) : (~e.indexOf("linear-gradient") && (e = e.substring(e.indexOf("linear-gradient"), e.length)), this.rgbConstructor(e));
14
+ }
15
+ hexConstructor(t) {
16
+ switch (t.length) {
17
+ case 1:
18
+ case 5:
19
+ case 6: return;
20
+ case 2:
21
+ t = "#" + t[1] + t[1] + t[1] + t[1] + t[1] + t[1] + e.hexMax;
22
+ break;
23
+ case 3:
24
+ t = "#" + t[1] + t[1] + t[1] + t[2] + t[2] + t[2] + e.hexMax;
25
+ break;
26
+ case 4:
27
+ t = "#" + t[1] + t[1] + t[2] + t[2] + t[3] + t[3] + e.hexMax;
28
+ break;
29
+ case 7:
30
+ t += e.hexMax;
31
+ break;
32
+ case 8:
33
+ t += t[t.length - 1];
34
+ break;
35
+ default: t = t.substring(0, 9);
36
+ }
37
+ this.r = parseInt(t.substring(1, 3), e.hexBase), this.g = parseInt(t.substring(3, 5), e.hexBase), this.b = parseInt(t.substring(5, 7), e.hexBase), this.a = parseInt(t.substring(7, 9), e.hexBase) / e.hexBase ** 2;
38
+ }
39
+ rgbConstructor(e) {
40
+ let t = /rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d*)?)\))?/.exec(e);
41
+ t && (this.r = parseInt(t[1]), this.g = parseInt(t[2]), this.b = parseInt(t[3]), this.a = parseFloat(t[4]));
42
+ }
43
+ getBrightness() {
44
+ return this.a === 0 ? 262 : !isNaN(this.r) && !isNaN(this.g) && !isNaN(this.b) ? Math.round((this.r * 299 + this.g * 587 + this.b * 144) / 1e3) : -1;
45
+ }
46
+ };
47
+ //#endregion
48
+ export { e as mintColor };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});
@@ -6,4 +6,3 @@ export interface MintModelEvent {
6
6
  handlers: EventListener[];
7
7
  events: string[];
8
8
  }
9
- //# sourceMappingURL=event.d.ts.map