godown 2.6.0 → 2.6.2

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 (133) hide show
  1. package/lib/directives.d.ts +2 -4
  2. package/lib/directives.d.ts.map +1 -1
  3. package/lib/directives.js.map +1 -1
  4. package/lib/event-collection.d.ts +1 -1
  5. package/lib/utils.d.ts +2 -0
  6. package/lib/utils.d.ts.map +1 -1
  7. package/lib/utils.js +11 -0
  8. package/lib/utils.js.map +1 -1
  9. package/package.json +4 -6
  10. package/react/index.d.ts +0 -3
  11. package/react/index.d.ts.map +1 -1
  12. package/react/index.js +0 -9
  13. package/react/index.js.map +1 -1
  14. package/root.d.ts.map +1 -1
  15. package/root.js +1 -0
  16. package/root.js.map +1 -1
  17. package/web-components/a/avatar-a.js +40 -40
  18. package/web-components/a/avatar-a.js.map +1 -1
  19. package/web-components/a/super-a.js +22 -22
  20. package/web-components/a/super-a.js.map +1 -1
  21. package/web-components/button/base-button.js +86 -86
  22. package/web-components/button/base-button.js.map +1 -1
  23. package/web-components/carousel/carousel-slider.d.ts +1 -1
  24. package/web-components/carousel/carousel-slider.d.ts.map +1 -1
  25. package/web-components/carousel/carousel-slider.js +70 -70
  26. package/web-components/carousel/carousel-slider.js.map +1 -1
  27. package/web-components/form/base-form.js +15 -15
  28. package/web-components/form/base-form.js.map +1 -1
  29. package/web-components/group/avatar-group.js +15 -15
  30. package/web-components/group/avatar-group.js.map +1 -1
  31. package/web-components/group/details-group.js +7 -7
  32. package/web-components/group/details-group.js.map +1 -1
  33. package/web-components/group/tab-group.js +45 -45
  34. package/web-components/group/tab-group.js.map +1 -1
  35. package/web-components/index.d.ts +0 -3
  36. package/web-components/index.d.ts.map +1 -1
  37. package/web-components/index.js +0 -3
  38. package/web-components/index.js.map +1 -1
  39. package/web-components/input/base-input.js +73 -73
  40. package/web-components/input/base-input.js.map +1 -1
  41. package/web-components/input/input.js +15 -15
  42. package/web-components/input/input.js.map +1 -1
  43. package/web-components/input/label-input.js +49 -49
  44. package/web-components/input/label-input.js.map +1 -1
  45. package/web-components/input/search-input.js +53 -53
  46. package/web-components/input/search-input.js.map +1 -1
  47. package/web-components/input/select-input.js +88 -88
  48. package/web-components/input/select-input.js.map +1 -1
  49. package/web-components/input/split-input.js +51 -51
  50. package/web-components/input/split-input.js.map +1 -1
  51. package/web-components/input/switch-input.js +36 -36
  52. package/web-components/input/switch-input.js.map +1 -1
  53. package/web-components/items/alert-item.js +32 -33
  54. package/web-components/items/alert-item.js.map +1 -1
  55. package/web-components/items/card-item.js +54 -54
  56. package/web-components/items/card-item.js.map +1 -1
  57. package/web-components/items/drag-box.js +8 -8
  58. package/web-components/items/drag-box.js.map +1 -1
  59. package/web-components/items/time-bar.js +8 -9
  60. package/web-components/items/time-bar.js.map +1 -1
  61. package/web-components/layout/divider-line.js +11 -11
  62. package/web-components/layout/divider-line.js.map +1 -1
  63. package/web-components/layout/flex-flow.js +7 -7
  64. package/web-components/layout/flex-flow.js.map +1 -1
  65. package/web-components/layout/nav-layout.d.ts +10 -3
  66. package/web-components/layout/nav-layout.d.ts.map +1 -1
  67. package/web-components/layout/nav-layout.js +31 -101
  68. package/web-components/layout/nav-layout.js.map +1 -1
  69. package/web-components/loading/loading-progress.d.ts +1 -1
  70. package/web-components/loading/loading-progress.d.ts.map +1 -1
  71. package/web-components/loading/loading-progress.js +28 -28
  72. package/web-components/loading/loading-progress.js.map +1 -1
  73. package/web-components/loading/skeleton-screen.js +19 -19
  74. package/web-components/loading/skeleton-screen.js.map +1 -1
  75. package/web-components/open/open-details.d.ts.map +1 -1
  76. package/web-components/open/open-details.js +73 -22
  77. package/web-components/open/open-details.js.map +1 -1
  78. package/web-components/open/open-dialog.d.ts +5 -16
  79. package/web-components/open/open-dialog.d.ts.map +1 -1
  80. package/web-components/open/open-dialog.js +92 -102
  81. package/web-components/open/open-dialog.js.map +1 -1
  82. package/web-components/open/open-offset.d.ts +0 -1
  83. package/web-components/open/open-offset.d.ts.map +1 -1
  84. package/web-components/open/open-offset.js +50 -53
  85. package/web-components/open/open-offset.js.map +1 -1
  86. package/web-components/open/open-tooltip.d.ts +2 -2
  87. package/web-components/open/open-tooltip.d.ts.map +1 -1
  88. package/web-components/open/open-tooltip.js +14 -15
  89. package/web-components/open/open-tooltip.js.map +1 -1
  90. package/web-components/open/open.d.ts +3 -2
  91. package/web-components/open/open.d.ts.map +1 -1
  92. package/web-components/open/open.js +13 -59
  93. package/web-components/open/open.js.map +1 -1
  94. package/web-components/text/clip-text.js +8 -8
  95. package/web-components/text/clip-text.js.map +1 -1
  96. package/web-components/text/overbreath-text.js +17 -17
  97. package/web-components/text/overbreath-text.js.map +1 -1
  98. package/web-components/text/typewriter-text.js +32 -32
  99. package/web-components/text/typewriter-text.js.map +1 -1
  100. package/web-components/view/route-view.d.ts +2 -2
  101. package/web-components/view/route-view.js +7 -7
  102. package/web-components/view/route-view.js.map +1 -1
  103. package/web-components/view/wrap-view.d.ts +1 -1
  104. package/web-components/view/wrap-view.js +15 -15
  105. package/web-components/view/wrap-view.js.map +1 -1
  106. package/nav-aside.d.ts +0 -2
  107. package/nav-aside.d.ts.map +0 -1
  108. package/nav-aside.js +0 -2
  109. package/nav-aside.js.map +0 -1
  110. package/open-list.d.ts +0 -2
  111. package/open-list.d.ts.map +0 -1
  112. package/open-list.js +0 -2
  113. package/open-list.js.map +0 -1
  114. package/scroll-x.d.ts +0 -2
  115. package/scroll-x.d.ts.map +0 -1
  116. package/scroll-x.js +0 -2
  117. package/scroll-x.js.map +0 -1
  118. package/web-components/layout/index.d.ts +0 -5
  119. package/web-components/layout/index.d.ts.map +0 -1
  120. package/web-components/layout/index.js +0 -6
  121. package/web-components/layout/index.js.map +0 -1
  122. package/web-components/layout/nav-aside.d.ts +0 -25
  123. package/web-components/layout/nav-aside.d.ts.map +0 -1
  124. package/web-components/layout/nav-aside.js +0 -70
  125. package/web-components/layout/nav-aside.js.map +0 -1
  126. package/web-components/open/open-list.d.ts +0 -20
  127. package/web-components/open/open-list.d.ts.map +0 -1
  128. package/web-components/open/open-list.js +0 -71
  129. package/web-components/open/open-list.js.map +0 -1
  130. package/web-components/view/scroll-x.d.ts +0 -25
  131. package/web-components/view/scroll-x.d.ts.map +0 -1
  132. package/web-components/view/scroll-x.js +0 -97
  133. package/web-components/view/scroll-x.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { CSSResultGroup } from "../../deps.js";
1
2
  import { type HTMLTemplate } from "../../lib/templates.js";
2
3
  import { type Direction8, OpenableElement } from "./open.js";
3
4
  /**
@@ -11,9 +12,8 @@ export declare class OpenTooltip extends OpenableElement {
11
12
  * Tip content align.
12
13
  */
13
14
  align: "center" | "flex-star" | "flex-end" | "";
14
- static styles: import("lit").CSSResult[];
15
+ static styles: CSSResultGroup;
15
16
  protected render(): HTMLTemplate;
16
- connectedCallback(): void;
17
17
  }
18
18
  export default OpenTooltip;
19
19
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"open-tooltip.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open-tooltip.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,KAAK,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI7D;;;;GAIG;AACH,qBACa,WAAY,SAAQ,eAAe;IAC9C,SAAS,EAAE,UAAU,GAAG,EAAE,CAAC;IAC3B;;OAEG;IACS,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,EAAE,CAAM;IAEjE,MAAM,CAAC,MAAM,4BA8CX;IAEF,SAAS,CAAC,MAAM,IAAI,YAAY;IAOhC,iBAAiB;CAGlB;AAED,eAAe,WAAW,CAAC;AAE3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"open-tooltip.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open-tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAkB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,KAAK,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI7D;;;;GAIG;AACH,qBACa,WAAY,SAAQ,eAAe;IAC9C,SAAS,EAAE,UAAU,GAAG,EAAE,CAAC;IAC3B;;OAEG;IACS,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,EAAE,CAAM;IAEjE,MAAM,CAAC,MAAM,EAAE,cAAc,CAgD3B;IAEF,SAAS,CAAC,MAAM,IAAI,YAAY;CAMjC;AAED,eAAe,WAAW,CAAC;AAE3B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { css, html, property } from "../../deps.js";
3
3
  import { htmlSlot } from "../../lib/templates.js";
4
- import { define } from "../../root.js";
4
+ import { cssvarValues, define } from "../../root.js";
5
5
  import { OpenableElement } from "./open.js";
6
6
  const defineName = "open-tooltip";
7
7
  /**
@@ -17,9 +17,18 @@ let OpenTooltip = class OpenTooltip extends OpenableElement {
17
17
  */
18
18
  this.align = "";
19
19
  }
20
- static { this.styles = [
21
- css `
20
+ render() {
21
+ return html `<main style="justify-content:${this.align || "inherit"}">
22
+ ${htmlSlot()}
23
+ <aside class="${this.direction || "top"}">${this.summary || htmlSlot("summary")}</aside>
24
+ </main>`;
25
+ }
26
+ };
27
+ OpenTooltip.styles = [
28
+ OpenableElement.styles,
29
+ css `
22
30
  :host {
31
+ color: var(${cssvarValues.text});
23
32
  display: inline-flex;
24
33
  transition: 0.3s ease-in-out;
25
34
  justify-content: center;
@@ -49,7 +58,7 @@ let OpenTooltip = class OpenTooltip extends OpenableElement {
49
58
  opacity: 1;
50
59
  }
51
60
  `,
52
- css `
61
+ css `
53
62
  aside[class^="top"] {
54
63
  bottom: 100%;
55
64
  }
@@ -63,17 +72,7 @@ let OpenTooltip = class OpenTooltip extends OpenableElement {
63
72
  right: 100%;
64
73
  }
65
74
  `,
66
- ]; }
67
- render() {
68
- return html `<main style="justify-content:${this.align || "inherit"}">
69
- ${htmlSlot()}
70
- <aside class="${this.direction || "top"}">${this.summary || htmlSlot("summary")}</aside>
71
- </main>`;
72
- }
73
- connectedCallback() {
74
- super.connectedCallback();
75
- }
76
- };
75
+ ];
77
76
  __decorate([
78
77
  property()
79
78
  ], OpenTooltip.prototype, "align", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"open-tooltip.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open-tooltip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAmB,eAAe,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,UAAU,GAAG,cAAc,CAAC;AAElC;;;;GAIG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,eAAe;IAAzC;;QAEL;;WAEG;QACS,UAAK,GAA6C,EAAE,CAAC;IA4DnE,CAAC;aA1DQ,WAAM,GAAG;QACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BF;QACD,GAAG,CAAA;;;;;;;;;;;;;KAaF;KACF,AA9CY,CA8CX;IAEQ,MAAM;QACd,OAAO,IAAI,CAAA,gCAAgC,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9D,QAAQ,EAAE;sBACI,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;YACzE,CAAC;IACX,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;;AA3DW;IAAX,QAAQ,EAAE;0CAAsD;AALtD,WAAW;IADvB,MAAM,CAAC,UAAU,CAAC;GACN,WAAW,CAiEvB;;AAED,eAAe,WAAW,CAAC","sourcesContent":["import { css, html, property } from \"../../deps.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { define } from \"../../root.js\";\nimport { type Direction8, OpenableElement } from \"./open.js\";\n\nconst defineName = \"open-tooltip\";\n\n/**\n * OpenTooltip provide tooltip for slot elements, summary as the tips content.\n *\n * Content can be opened in 8 directions.\n */\n@define(defineName)\nexport class OpenTooltip extends OpenableElement {\n direction: Direction8 | \"\";\n /**\n * Tip content align.\n */\n @property() align: \"center\" | \"flex-star\" | \"flex-end\" | \"\" = \"\";\n\n static styles = [\n css`\n :host {\n display: inline-flex;\n transition: 0.3s ease-in-out;\n justify-content: center;\n }\n\n main {\n display: inline-flex;\n align-items: center;\n position: relative;\n transition: inherit;\n }\n\n main,\n aside {\n transition: inherit;\n white-space: nowrap;\n }\n\n aside {\n opacity: 0;\n position: absolute;\n transition-property: opacity;\n }\n\n :host(:hover) aside,\n :host([open]) aside {\n opacity: 1;\n }\n `,\n css`\n aside[class^=\"top\"] {\n bottom: 100%;\n }\n aside[class^=\"bottom\"] {\n top: 100%;\n }\n aside[class$=\"right\"] {\n left: 100%;\n }\n aside[class$=\"left\"] {\n right: 100%;\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`<main style=\"justify-content:${this.align || \"inherit\"}\">\n ${htmlSlot()}\n <aside class=\"${this.direction || \"top\"}\">${this.summary || htmlSlot(\"summary\")}</aside>\n </main>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n }\n}\n\nexport default OpenTooltip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"open-tooltip\": OpenTooltip;\n }\n}\n"]}
1
+ {"version":3,"file":"open-tooltip.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open-tooltip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAkB,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAmB,eAAe,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,UAAU,GAAG,cAAc,CAAC;AAElC;;;;GAIG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,eAAe;IAAzC;;QAEL;;WAEG;QACS,UAAK,GAA6C,EAAE,CAAC;IA0DnE,CAAC;IANW,MAAM;QACd,OAAO,IAAI,CAAA,gCAAgC,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9D,QAAQ,EAAE;sBACI,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;YACzE,CAAC;IACX,CAAC;;AAvDM,kBAAM,GAAmB;IAC9B,eAAe,CAAC,MAAM;IACtB,GAAG,CAAA;;qBAEc,YAAY,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6BjC;IACD,GAAG,CAAA;;;;;;;;;;;;;KAaF;CACF,AAhDY,CAgDX;AAlDU;IAAX,QAAQ,EAAE;0CAAsD;AALtD,WAAW;IADvB,MAAM,CAAC,UAAU,CAAC;GACN,WAAW,CA+DvB;;AAED,eAAe,WAAW,CAAC","sourcesContent":["import { css, CSSResultGroup, html, property } from \"../../deps.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { cssvarValues, define } from \"../../root.js\";\nimport { type Direction8, OpenableElement } from \"./open.js\";\n\nconst defineName = \"open-tooltip\";\n\n/**\n * OpenTooltip provide tooltip for slot elements, summary as the tips content.\n *\n * Content can be opened in 8 directions.\n */\n@define(defineName)\nexport class OpenTooltip extends OpenableElement {\n direction: Direction8 | \"\";\n /**\n * Tip content align.\n */\n @property() align: \"center\" | \"flex-star\" | \"flex-end\" | \"\" = \"\";\n\n static styles: CSSResultGroup = [\n OpenableElement.styles,\n css`\n :host {\n color: var(${cssvarValues.text});\n display: inline-flex;\n transition: 0.3s ease-in-out;\n justify-content: center;\n }\n\n main {\n display: inline-flex;\n align-items: center;\n position: relative;\n transition: inherit;\n }\n\n main,\n aside {\n transition: inherit;\n white-space: nowrap;\n }\n\n aside {\n opacity: 0;\n position: absolute;\n transition-property: opacity;\n }\n\n :host(:hover) aside,\n :host([open]) aside {\n opacity: 1;\n }\n `,\n css`\n aside[class^=\"top\"] {\n bottom: 100%;\n }\n aside[class^=\"bottom\"] {\n top: 100%;\n }\n aside[class$=\"right\"] {\n left: 100%;\n }\n aside[class$=\"left\"] {\n right: 100%;\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`<main style=\"justify-content:${this.align || \"inherit\"}\">\n ${htmlSlot()}\n <aside class=\"${this.direction || \"top\"}\">${this.summary || htmlSlot(\"summary\")}</aside>\n </main>`;\n }\n}\n\nexport default OpenTooltip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"open-tooltip\": OpenTooltip;\n }\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  import { type CSSResultGroup, type PropertyValueMap } from "../../deps.js";
2
- import { EventsNames } from "../../lib/event-collection.js";
2
+ import { type EventsNames } from "../../lib/event-collection.js";
3
3
  import { GodownElement } from "../../root.js";
4
4
  export type Direction4 = "left" | "right" | "top" | "bottom";
5
5
  export type Direction5 = Direction4 | "center";
6
6
  export type Direction8 = Direction4 | "top-left" | "top-right" | "bottom-left" | "bottom-right";
7
+ export type Direction9 = Direction8 | "center";
7
8
  export type OnEvents = EventsNames | "";
8
9
  export declare class OpenableElement extends GodownElement {
9
10
  /**
@@ -25,7 +26,7 @@ export declare class OpenableElement extends GodownElement {
25
26
  /**
26
27
  * Direction of appearance.
27
28
  */
28
- direction: Direction4 | Direction8 | Direction5 | "";
29
+ direction: Direction9 | "";
29
30
  static styles: CSSResultGroup;
30
31
  toggle(to?: boolean): void;
31
32
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"open.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAY,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAEhG,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAC;AAExC,qBAAa,eAAgB,SAAQ,aAAa;IAChD;;OAEG;IACS,OAAO,SAAM;IACzB;;OAEG;IACyC,KAAK,UAAS;IAC1D;;OAEG;IACyC,IAAI,UAAS;IACzD;;OAEG;IACS,EAAE,EAAE,QAAQ,CAAM;IAC9B;;OAEG;IACS,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,EAAE,CAAM;IAEtE,MAAM,CAAC,MAAM,iBA0DO;IAEpB,MAAM,CAAC,EAAE,UAAa;IAItB,KAAK;IAIL,IAAI;IAIJ,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAQ3D,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;CAGrC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAY,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAC;AAExC,qBAAa,eAAgB,SAAQ,aAAa;IAChD;;OAEG;IACS,OAAO,SAAM;IACzB;;OAEG;IACyC,KAAK,UAAS;IAC1D;;OAEG;IACyC,IAAI,UAAS;IACzD;;OAEG;IACS,EAAE,EAAE,QAAQ,CAAM;IAC9B;;OAEG;IACS,SAAS,EAAE,UAAU,GAAG,EAAE,CAAM;IAE5C,MAAM,CAAC,MAAM,iBAYO;IAEpB,MAAM,CAAC,EAAE,UAAa;IAItB,KAAK;IAIL,IAAI;IAIJ,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAQ3D,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;CAGrC;AAED,eAAe,eAAe,CAAC"}
@@ -25,65 +25,6 @@ export class OpenableElement extends GodownElement {
25
25
  */
26
26
  this.direction = "";
27
27
  }
28
- static { this.styles = [
29
- GodownElement.styles,
30
- css `
31
- :host {
32
- display: block;
33
- transition:
34
- all 0.3s ease-in-out,
35
- color 0s,
36
- background 0s;
37
- height: fit-content;
38
- }
39
-
40
- span {
41
- display: inline-flex;
42
- align-items: center;
43
- flex: 1;
44
- white-space: nowrap;
45
- }
46
-
47
- dl {
48
- height: 100%;
49
- position: relative;
50
- overflow: hidden;
51
- }
52
-
53
- dt {
54
- display: flex;
55
- flex-wrap: nowrap;
56
- justify-content: space-between;
57
- background: inherit;
58
- align-items: center;
59
- height: 100%;
60
- }
61
-
62
- * {
63
- transition: inherit;
64
- }
65
-
66
- dd {
67
- overflow: hidden;
68
- display: grid;
69
- grid-template-rows: 0fr;
70
- }
71
-
72
- section {
73
- min-height: 0;
74
- overflow: hidden;
75
- }
76
-
77
- :host([open]) dd {
78
- grid-template-rows: 1fr;
79
- }
80
-
81
- :host([float]) dd {
82
- top: 100%;
83
- position: absolute;
84
- }
85
- `,
86
- ]; }
87
28
  toggle(to = !this.open) {
88
29
  this.open = to;
89
30
  }
@@ -104,6 +45,19 @@ export class OpenableElement extends GodownElement {
104
45
  this.toggle();
105
46
  }
106
47
  }
48
+ OpenableElement.styles = [
49
+ GodownElement.styles,
50
+ css `
51
+ :host {
52
+ display: block;
53
+ transition:
54
+ all 0.3s ease-in-out,
55
+ color 0s,
56
+ background 0s;
57
+ height: fit-content;
58
+ }
59
+ `,
60
+ ];
107
61
  __decorate([
108
62
  property()
109
63
  ], OpenableElement.prototype, "summary", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAU9C,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAAlD;;QACE;;WAEG;QACS,YAAO,GAAG,EAAE,CAAC;QACzB;;WAEG;QACyC,UAAK,GAAG,KAAK,CAAC;QAC1D;;WAEG;QACyC,SAAI,GAAG,KAAK,CAAC;QACzD;;WAEG;QACS,OAAE,GAAa,EAAE,CAAC;QAC9B;;WAEG;QACS,cAAS,GAA8C,EAAE,CAAC;IAqFxE,CAAC;aAnFQ,WAAM,GAAG;QACd,aAAa,CAAC,MAAM;QACpB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDF;KACgB,AA1DN,CA0DO;IAEpB,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAES,OAAO,CAAC,iBAAyC;QACzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,6DAA6D;IACnD,YAAY,CAAC,CAAa;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;;AApGW;IAAX,QAAQ,EAAE;gDAAc;AAImB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAe;AAId;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAc;AAI7C;IAAX,QAAQ,EAAE;2CAAmB;AAIlB;IAAX,QAAQ,EAAE;kDAA2D;AAuFxE,eAAe,eAAe,CAAC","sourcesContent":["import { css, type CSSResultGroup, property, type PropertyValueMap } from \"../../deps.js\";\nimport { EventsNames } from \"../../lib/event-collection.js\";\nimport { GodownElement } from \"../../root.js\";\n\nexport type Direction4 = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nexport type Direction5 = Direction4 | \"center\";\n\nexport type Direction8 = Direction4 | \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\";\n\nexport type OnEvents = EventsNames | \"\";\n\nexport class OpenableElement extends GodownElement {\n /**\n * Summary text.\n */\n @property() summary = \"\";\n /**\n * Make the content float.\n */\n @property({ type: Boolean, reflect: true }) float = false;\n /**\n * Open the content.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n /**\n * Enable event mode.\n */\n @property() on: OnEvents = \"\";\n /**\n * Direction of appearance.\n */\n @property() direction: Direction4 | Direction8 | Direction5 | \"\" = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n display: block;\n transition:\n all 0.3s ease-in-out,\n color 0s,\n background 0s;\n height: fit-content;\n }\n\n span {\n display: inline-flex;\n align-items: center;\n flex: 1;\n white-space: nowrap;\n }\n\n dl {\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n\n dt {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n background: inherit;\n align-items: center;\n height: 100%;\n }\n\n * {\n transition: inherit;\n }\n\n dd {\n overflow: hidden;\n display: grid;\n grid-template-rows: 0fr;\n }\n\n section {\n min-height: 0;\n overflow: hidden;\n }\n\n :host([open]) dd {\n grid-template-rows: 1fr;\n }\n\n :host([float]) dd {\n top: 100%;\n position: absolute;\n }\n `,\n ] as CSSResultGroup;\n\n toggle(to = !this.open) {\n this.open = to;\n }\n\n close() {\n this.open = false;\n }\n\n show() {\n this.open = true;\n }\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n const open = changedProperties.get(\"open\");\n if (typeof open === typeof !0) {\n this.dispatchEvent(new CustomEvent(\"change\", { detail: this.open }));\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _handelClick(_: MouseEvent) {\n this.toggle();\n }\n}\n\nexport default OpenableElement;\n"]}
1
+ {"version":3,"file":"open.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/open/open.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,QAAQ,EAAyB,MAAM,eAAe,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAY9C,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAAlD;;QACE;;WAEG;QACS,YAAO,GAAG,EAAE,CAAC;QACzB;;WAEG;QACyC,UAAK,GAAG,KAAK,CAAC;QAC1D;;WAEG;QACyC,SAAI,GAAG,KAAK,CAAC;QACzD;;WAEG;QACS,OAAE,GAAa,EAAE,CAAC;QAC9B;;WAEG;QACS,cAAS,GAAoB,EAAE,CAAC;IAuC9C,CAAC;IAvBC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAES,OAAO,CAAC,iBAAyC;QACzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,6DAA6D;IACnD,YAAY,CAAC,CAAa;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;;AApCM,sBAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;;;;;;;;KASF;CACgB,AAZN,CAYO;AA9BR;IAAX,QAAQ,EAAE;gDAAc;AAImB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAe;AAId;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAc;AAI7C;IAAX,QAAQ,EAAE;2CAAmB;AAIlB;IAAX,QAAQ,EAAE;kDAAiC;AAyC9C,eAAe,eAAe,CAAC","sourcesContent":["import { css, type CSSResultGroup, property, type PropertyValueMap } from \"../../deps.js\";\nimport { type EventsNames } from \"../../lib/event-collection.js\";\nimport { GodownElement } from \"../../root.js\";\n\nexport type Direction4 = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nexport type Direction5 = Direction4 | \"center\";\n\nexport type Direction8 = Direction4 | \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\";\n\nexport type Direction9 = Direction8 | \"center\";\n\nexport type OnEvents = EventsNames | \"\";\n\nexport class OpenableElement extends GodownElement {\n /**\n * Summary text.\n */\n @property() summary = \"\";\n /**\n * Make the content float.\n */\n @property({ type: Boolean, reflect: true }) float = false;\n /**\n * Open the content.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n /**\n * Enable event mode.\n */\n @property() on: OnEvents = \"\";\n /**\n * Direction of appearance.\n */\n @property() direction: Direction9 | \"\" = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n display: block;\n transition:\n all 0.3s ease-in-out,\n color 0s,\n background 0s;\n height: fit-content;\n }\n `,\n ] as CSSResultGroup;\n\n toggle(to = !this.open) {\n this.open = to;\n }\n\n close() {\n this.open = false;\n }\n\n show() {\n this.open = true;\n }\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n const open = changedProperties.get(\"open\");\n if (typeof open === typeof !0) {\n this.dispatchEvent(new CustomEvent(\"change\", { detail: this.open }));\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _handelClick(_: MouseEvent) {\n this.toggle();\n }\n}\n\nexport default OpenableElement;\n"]}
@@ -15,9 +15,13 @@ let ClipText = class ClipText extends GodownElement {
15
15
  */
16
16
  this.text = "";
17
17
  }
18
- static { this.styles = [
19
- GodownElement.styles,
20
- css `
18
+ render() {
19
+ return this.text || htmlSlot();
20
+ }
21
+ };
22
+ ClipText.styles = [
23
+ GodownElement.styles,
24
+ css `
21
25
  :host {
22
26
  ${cssvarScope}--clip-background: var(${cssvar}--clip-background);
23
27
  background: var(${cssvarScope}--clip-background);
@@ -28,11 +32,7 @@ let ClipText = class ClipText extends GodownElement {
28
32
  display: inline-flex;
29
33
  }
30
34
  `,
31
- ]; }
32
- render() {
33
- return this.text || htmlSlot();
34
- }
35
- };
35
+ ];
36
36
  __decorate([
37
37
  property()
38
38
  ], ClipText.prototype, "text", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"clip-text.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/clip-text.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;GAEG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,aAAa;IAApC;;QACL;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;IAoBxB,CAAC;aAlBQ,WAAM,GAAG;QACd,aAAa,CAAC,MAAM;QACpB,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;KAOhC;KACgB,AAbN,CAaO;IAEV,MAAM;QACd,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;IACjC,CAAC;;AAnBW;IAAX,QAAQ,EAAE;sCAAW;AAJX,QAAQ;IADpB,MAAM,CAAC,UAAU,CAAC;GACN,QAAQ,CAwBpB;;AAED,eAAe,QAAQ,CAAC","sourcesContent":["import { css, type CSSResultGroup, property } from \"../../deps.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, define, GodownElement } from \"../../root.js\";\n\nconst defineName = \"clip-text\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * ClipText renders a gradient text.\n */\n@define(defineName)\nexport class ClipText extends GodownElement {\n /**\n * The text to be clipped.\n */\n @property() text = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate | string {\n return this.text || htmlSlot();\n }\n}\n\nexport default ClipText;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"clip-text\": ClipText;\n }\n}\n"]}
1
+ {"version":3,"file":"clip-text.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/clip-text.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,UAAU,GAAG,WAAW,CAAC;AAC/B,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;GAEG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,aAAa;IAApC;;QACL;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;IAoBxB,CAAC;IAHW,MAAM;QACd,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;IACjC,CAAC;;AAjBM,eAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;KAOhC;CACgB,AAbN,CAaO;AAfR;IAAX,QAAQ,EAAE;sCAAW;AAJX,QAAQ;IADpB,MAAM,CAAC,UAAU,CAAC;GACN,QAAQ,CAwBpB;;AAED,eAAe,QAAQ,CAAC","sourcesContent":["import { css, type CSSResultGroup, property } from \"../../deps.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, define, GodownElement } from \"../../root.js\";\n\nconst defineName = \"clip-text\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * ClipText renders a gradient text.\n */\n@define(defineName)\nexport class ClipText extends GodownElement {\n /**\n * The text to be clipped.\n */\n @property() text = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate | string {\n return this.text || htmlSlot();\n }\n}\n\nexport default ClipText;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"clip-text\": ClipText;\n }\n}\n"]}
@@ -20,9 +20,19 @@ let OverbreathText = class OverbreathText extends GodownElement {
20
20
  // As t2.
21
21
  this.t3 = "";
22
22
  }
23
- static { this.styles = [
24
- GodownElement.styles,
25
- css `
23
+ render() {
24
+ return [this.t1, this.t2, this.t3].map(this.renderText);
25
+ }
26
+ renderText(text) {
27
+ return html `<span class="rel">
28
+ <span class="bg">${text}</span>
29
+ <span class="fg">${text}</span>
30
+ </span>`;
31
+ }
32
+ };
33
+ OverbreathText.styles = [
34
+ GodownElement.styles,
35
+ css `
26
36
  :host {
27
37
  ${cssvarScope}--1-1: #ae0ca5;
28
38
  ${cssvarScope}--1-2: #ffd802;
@@ -36,7 +46,7 @@ let OverbreathText = class OverbreathText extends GodownElement {
36
46
  ${cssvarScope}--3: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--3-1), var(${cssvarScope}--3-2));
37
47
  }
38
48
  `,
39
- css `
49
+ css `
40
50
  :host {
41
51
  display: flex;
42
52
  margin: auto;
@@ -104,7 +114,7 @@ let OverbreathText = class OverbreathText extends GodownElement {
104
114
  animation: text3 8s infinite;
105
115
  }
106
116
  `,
107
- css `
117
+ css `
108
118
  @keyframes lg1 {
109
119
  0%,
110
120
  16.667%,
@@ -184,7 +194,7 @@ let OverbreathText = class OverbreathText extends GodownElement {
184
194
  }
185
195
  }
186
196
  `,
187
- css `
197
+ css `
188
198
  span.bg {
189
199
  ${cssvarScope}--clip-background: var(${cssvar}--clip-background);
190
200
  background: var(${cssvarScope}--clip-background);
@@ -197,17 +207,7 @@ let OverbreathText = class OverbreathText extends GodownElement {
197
207
  display: inline-flex;
198
208
  }
199
209
  `,
200
- ]; }
201
- render() {
202
- return [this.t1, this.t2, this.t3].map(this.renderText);
203
- }
204
- renderText(text) {
205
- return html `<span class="rel">
206
- <span class="bg">${text}</span>
207
- <span class="fg">${text}</span>
208
- </span>`;
209
- }
210
- };
210
+ ];
211
211
  __decorate([
212
212
  property()
213
213
  ], OverbreathText.prototype, "t1", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"overbreath-text.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/overbreath-text.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;;;GAIG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,aAAa;IAA1C;;QACL;;WAEG;QACS,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;IA+LtB,CAAC;aA7LQ,WAAM,GAAG;QACd,aAAa,CAAC,MAAM;QACpB,GAAG,CAAA;;UAEG,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;;KAE3G;QACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA2CyB,WAAW;;;;;gCAKX,WAAW;;;;;gCAKX,WAAW;;;;;;;;;;;;;;KActC;QACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+EF;QACD,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;;;KAShC;KACgB,AAjLN,CAiLO;IAEV,MAAM;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAES,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAA;yBACU,IAAI;yBACJ,IAAI;YACjB,CAAC;IACX,CAAC;;AAlMW;IAAX,QAAQ,EAAE;0CAAS;AAER;IAAX,QAAQ,EAAE;0CAAS;AAER;IAAX,QAAQ,EAAE;0CAAS;AART,cAAc;IAD1B,MAAM,CAAC,UAAU,CAAC;GACN,cAAc,CAuM1B;;AAED,eAAe,cAAc,CAAC","sourcesContent":["import { css, type CSSResultGroup, html, property } from \"../../deps.js\";\nimport { type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, define, GodownElement } from \"../../root.js\";\n\nconst defineName = \"overbreath-text\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * OverbreathText renders three animated pieces of text.\n *\n * Inspired by Vercel homepage (2022? - 2023).\n */\n@define(defineName)\nexport class OverbreathText extends GodownElement {\n /**\n * One of the texts.\n */\n @property() t1 = \"\";\n // As t1.\n @property() t2 = \"\";\n // As t2.\n @property() t3 = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--1-1: #ae0ca5;\n ${cssvarScope}--1-2: #ffd802;\n ${cssvarScope}--2-1: #1fe173;\n ${cssvarScope}--2-2: #582bca;\n ${cssvarScope}--3-1: #00b4f0;\n ${cssvarScope}--3-2: #e614e6;\n ${cssvarScope}--deg: 60deg;\n ${cssvarScope}--1: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--1-1), var(${cssvarScope}--1-2));\n ${cssvarScope}--2: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--2-1), var(${cssvarScope}--2-2));\n ${cssvarScope}--3: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--3-1), var(${cssvarScope}--3-2));\n }\n `,\n css`\n :host {\n display: flex;\n margin: auto;\n width: fit-content;\n font-size: clamp(3.5rem, 10vw, 5.5rem);\n align-items: center;\n }\n\n @media (max-width: 1280px) {\n :host {\n flex-direction: column;\n }\n }\n\n *::selection {\n background: none;\n }\n\n .fg,\n .bg {\n padding: 0 0.05em;\n box-sizing: border-box;\n }\n\n .bg {\n position: absolute;\n top: 0;\n }\n\n span {\n display: block;\n }\n\n .rel {\n position: relative;\n font-weight: 800;\n font-size: inherit;\n letter-spacing: -0.05em;\n }\n\n .rel:nth-child(1) .fg {\n animation: lg1 8s infinite;\n background-image: var(${cssvarScope}--1);\n }\n\n .rel:nth-child(2) .fg {\n animation: 8s infinite lg2;\n background-image: var(${cssvarScope}--2);\n }\n\n .rel:nth-child(3) .fg {\n animation: 8s infinite lg3;\n background-image: var(${cssvarScope}--3);\n }\n\n .rel:nth-child(1) .bg {\n animation: text1 8s infinite;\n }\n\n .rel:nth-child(2) .bg {\n animation: text2 8s infinite;\n }\n\n .rel:nth-child(3) .bg {\n animation: text3 8s infinite;\n }\n `,\n css`\n @keyframes lg1 {\n 0%,\n 16.667%,\n to {\n opacity: 1;\n }\n 33.333%,\n 83.333% {\n opacity: 0;\n }\n }\n\n @keyframes lg2 {\n 0%,\n to {\n opacity: 0;\n }\n 33.333%,\n 50% {\n opacity: 1;\n }\n 16.667%,\n 66.667% {\n opacity: 0;\n }\n }\n\n @keyframes lg3 {\n 0%,\n 50%,\n to {\n opacity: 0;\n }\n 66.667%,\n 83.333% {\n opacity: 1;\n }\n }\n\n @keyframes text1 {\n 0%,\n 16.667%,\n to {\n opacity: 0;\n }\n 25%,\n 91.667% {\n opacity: 1;\n }\n }\n\n @keyframes text2 {\n 0%,\n to {\n opacity: 1;\n }\n 33.333%,\n 50% {\n opacity: 0;\n }\n 25%,\n 58.333% {\n opacity: 1;\n }\n }\n\n @keyframes text3 {\n 0%,\n 58.333%,\n 91.667%,\n to {\n opacity: 1;\n }\n 66.667%,\n 83.333% {\n opacity: 0;\n }\n }\n `,\n css`\n span.bg {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n }\n span {\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate[] {\n return [this.t1, this.t2, this.t3].map(this.renderText);\n }\n\n protected renderText(text: string): HTMLTemplate {\n return html`<span class=\"rel\">\n <span class=\"bg\">${text}</span>\n <span class=\"fg\">${text}</span>\n </span>`;\n }\n}\n\nexport default OverbreathText;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"overbreath-text\": OverbreathText;\n }\n}\n"]}
1
+ {"version":3,"file":"overbreath-text.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/overbreath-text.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;;;GAIG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,aAAa;IAA1C;;QACL;;WAEG;QACS,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;IA+LtB,CAAC;IAVW,MAAM;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAES,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAA;yBACU,IAAI;yBACJ,IAAI;YACjB,CAAC;IACX,CAAC;;AA5LM,qBAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;UAEG,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;;KAE3G;IACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA2CyB,WAAW;;;;;gCAKX,WAAW;;;;;gCAKX,WAAW;;;;;;;;;;;;;;KActC;IACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+EF;IACD,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;;;KAShC;CACgB,AAjLN,CAiLO;AAvLR;IAAX,QAAQ,EAAE;0CAAS;AAER;IAAX,QAAQ,EAAE;0CAAS;AAER;IAAX,QAAQ,EAAE;0CAAS;AART,cAAc;IAD1B,MAAM,CAAC,UAAU,CAAC;GACN,cAAc,CAuM1B;;AAED,eAAe,cAAc,CAAC","sourcesContent":["import { css, type CSSResultGroup, html, property } from \"../../deps.js\";\nimport { type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, define, GodownElement } from \"../../root.js\";\n\nconst defineName = \"overbreath-text\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * OverbreathText renders three animated pieces of text.\n *\n * Inspired by Vercel homepage (2022? - 2023).\n */\n@define(defineName)\nexport class OverbreathText extends GodownElement {\n /**\n * One of the texts.\n */\n @property() t1 = \"\";\n // As t1.\n @property() t2 = \"\";\n // As t2.\n @property() t3 = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--1-1: #ae0ca5;\n ${cssvarScope}--1-2: #ffd802;\n ${cssvarScope}--2-1: #1fe173;\n ${cssvarScope}--2-2: #582bca;\n ${cssvarScope}--3-1: #00b4f0;\n ${cssvarScope}--3-2: #e614e6;\n ${cssvarScope}--deg: 60deg;\n ${cssvarScope}--1: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--1-1), var(${cssvarScope}--1-2));\n ${cssvarScope}--2: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--2-1), var(${cssvarScope}--2-2));\n ${cssvarScope}--3: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--3-1), var(${cssvarScope}--3-2));\n }\n `,\n css`\n :host {\n display: flex;\n margin: auto;\n width: fit-content;\n font-size: clamp(3.5rem, 10vw, 5.5rem);\n align-items: center;\n }\n\n @media (max-width: 1280px) {\n :host {\n flex-direction: column;\n }\n }\n\n *::selection {\n background: none;\n }\n\n .fg,\n .bg {\n padding: 0 0.05em;\n box-sizing: border-box;\n }\n\n .bg {\n position: absolute;\n top: 0;\n }\n\n span {\n display: block;\n }\n\n .rel {\n position: relative;\n font-weight: 800;\n font-size: inherit;\n letter-spacing: -0.05em;\n }\n\n .rel:nth-child(1) .fg {\n animation: lg1 8s infinite;\n background-image: var(${cssvarScope}--1);\n }\n\n .rel:nth-child(2) .fg {\n animation: 8s infinite lg2;\n background-image: var(${cssvarScope}--2);\n }\n\n .rel:nth-child(3) .fg {\n animation: 8s infinite lg3;\n background-image: var(${cssvarScope}--3);\n }\n\n .rel:nth-child(1) .bg {\n animation: text1 8s infinite;\n }\n\n .rel:nth-child(2) .bg {\n animation: text2 8s infinite;\n }\n\n .rel:nth-child(3) .bg {\n animation: text3 8s infinite;\n }\n `,\n css`\n @keyframes lg1 {\n 0%,\n 16.667%,\n to {\n opacity: 1;\n }\n 33.333%,\n 83.333% {\n opacity: 0;\n }\n }\n\n @keyframes lg2 {\n 0%,\n to {\n opacity: 0;\n }\n 33.333%,\n 50% {\n opacity: 1;\n }\n 16.667%,\n 66.667% {\n opacity: 0;\n }\n }\n\n @keyframes lg3 {\n 0%,\n 50%,\n to {\n opacity: 0;\n }\n 66.667%,\n 83.333% {\n opacity: 1;\n }\n }\n\n @keyframes text1 {\n 0%,\n 16.667%,\n to {\n opacity: 0;\n }\n 25%,\n 91.667% {\n opacity: 1;\n }\n }\n\n @keyframes text2 {\n 0%,\n to {\n opacity: 1;\n }\n 33.333%,\n 50% {\n opacity: 0;\n }\n 25%,\n 58.333% {\n opacity: 1;\n }\n }\n\n @keyframes text3 {\n 0%,\n 58.333%,\n 91.667%,\n to {\n opacity: 1;\n }\n 66.667%,\n 83.333% {\n opacity: 0;\n }\n }\n `,\n css`\n span.bg {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n }\n span {\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate[] {\n return [this.t1, this.t2, this.t3].map(this.renderText);\n }\n\n protected renderText(text: string): HTMLTemplate {\n return html`<span class=\"rel\">\n <span class=\"bg\">${text}</span>\n <span class=\"fg\">${text}</span>\n </span>`;\n }\n}\n\nexport default OverbreathText;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"overbreath-text\": OverbreathText;\n }\n}\n"]}
@@ -50,38 +50,6 @@ let TypewriterText = class TypewriterText extends GodownElement {
50
50
  get len() {
51
51
  return this.text.length;
52
52
  }
53
- static { this.styles = [
54
- css `
55
- :host {
56
- ${cssvarScope}--cursor-width: .05em;
57
- font-family: monospace;
58
- white-space: nowrap;
59
- }
60
-
61
- i {
62
- border-right: var(${cssvarScope}--cursor-width) solid;
63
- margin-left: 0.02em;
64
- animation: s 1.5s steps(1) infinite;
65
- }
66
-
67
- @keyframes s {
68
- 0% {
69
- border-color: currentColor;
70
- }
71
- 50% {
72
- border-color: transparent;
73
- }
74
- }
75
-
76
- slot {
77
- display: none;
78
- }
79
-
80
- .hidden {
81
- visibility: hidden;
82
- }
83
- `,
84
- ]; }
85
53
  render() {
86
54
  return html `${htmlSlot()}${this.content}<i class="${(this.ended && "hidden") || ""}"></i>`;
87
55
  }
@@ -116,6 +84,38 @@ let TypewriterText = class TypewriterText extends GodownElement {
116
84
  this.ended = true;
117
85
  }
118
86
  };
87
+ TypewriterText.styles = [
88
+ css `
89
+ :host {
90
+ ${cssvarScope}--cursor-width: .05em;
91
+ font-family: monospace;
92
+ white-space: nowrap;
93
+ }
94
+
95
+ i {
96
+ border-right: var(${cssvarScope}--cursor-width) solid;
97
+ margin-left: 0.02em;
98
+ animation: s 1.5s steps(1) infinite;
99
+ }
100
+
101
+ @keyframes s {
102
+ 0% {
103
+ border-color: currentColor;
104
+ }
105
+ 50% {
106
+ border-color: transparent;
107
+ }
108
+ }
109
+
110
+ slot {
111
+ display: none;
112
+ }
113
+
114
+ .hidden {
115
+ visibility: hidden;
116
+ }
117
+ `,
118
+ ];
119
119
  __decorate([
120
120
  property()
121
121
  ], TypewriterText.prototype, "text", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"typewriter-text.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/typewriter-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, property, type PropertyValueMap, query, state } from \"../../deps.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { random } from \"../../lib/utils.js\";\nimport { createScope, define, GodownElement } from \"../../root.js\";\n\nconst defineName = \"typewriter-text\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * TypewriterText renders a typewriter effect to text.\n */\n@define(defineName)\nexport class TypewriterText extends GodownElement {\n /**\n * Raw text.\n */\n @property() text = \"\";\n /**\n * Start immediately after {@linkcode TypewriterText.firstUpdated}.\n */\n @property({ type: Boolean }) stopped = false;\n /**\n * If true, hide the cursor\n */\n @property({ type: Boolean }) ended = false;\n /**\n * Maximum random time.\n */\n @property({ type: Number }) max = 100;\n /**\n * Minimum random time.\n */\n @property({ type: Number }) min = 50;\n /**\n * Fixed time.\n */\n @property({ type: Number }) delay = 0;\n /**\n * The index at the beginning.\n */\n @property({ type: Number }) index = 0;\n /**\n * Internal text.\n */\n @state() content = \"\";\n\n timeoutID: number;\n @query(\"i\") _i: HTMLElement;\n\n /**\n * {@linkcode TypewriterText.text} length.\n */\n get len() {\n return this.text.length;\n }\n\n static styles = [\n css`\n :host {\n ${cssvarScope}--cursor-width: .05em;\n font-family: monospace;\n white-space: nowrap;\n }\n\n i {\n border-right: var(${cssvarScope}--cursor-width) solid;\n margin-left: 0.02em;\n animation: s 1.5s steps(1) infinite;\n }\n\n @keyframes s {\n 0% {\n border-color: currentColor;\n }\n 50% {\n border-color: transparent;\n }\n }\n\n slot {\n display: none;\n }\n\n .hidden {\n visibility: hidden;\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`${htmlSlot()}${this.content}<i class=\"${(this.ended && \"hidden\") || \"\"}\"></i>`;\n }\n\n protected firstUpdated() {\n if (!this.text) {\n this.text = this.assignedNodes[0]?.textContent.trim() || \"\";\n }\n if (!this.stopped && this.len) {\n this.write();\n }\n }\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n if (changedProperties.has(\"index\")) {\n this.dispatchEvent(new CustomEvent(this.index === this.len ? \"done\" : \"write\", { detail: this.content }));\n }\n }\n\n write(at = this.index) {\n this.content = this.text.slice(0, at + 1);\n const timeout = this.delay || random(this.max, this.min);\n this.timeoutID = setTimeout(() => {\n const nx = at + 1;\n if (nx <= this.len) {\n this.index = nx;\n this.write();\n }\n }, timeout);\n }\n\n stop() {\n clearTimeout(this.timeoutID);\n }\n\n end() {\n this.ended = true;\n }\n}\n\nexport default TypewriterText;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"typewriter-text\": TypewriterText;\n }\n}\n"]}
1
+ {"version":3,"file":"typewriter-text.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/typewriter-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, property, type PropertyValueMap, query, state } from \"../../deps.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { random } from \"../../lib/utils.js\";\nimport { createScope, define, GodownElement } from \"../../root.js\";\n\nconst defineName = \"typewriter-text\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * TypewriterText renders a typewriter effect to text.\n */\n@define(defineName)\nexport class TypewriterText extends GodownElement {\n /**\n * Raw text.\n */\n @property() text = \"\";\n /**\n * Start immediately after {@linkcode TypewriterText.firstUpdated}.\n */\n @property({ type: Boolean }) stopped = false;\n /**\n * If true, hide the cursor\n */\n @property({ type: Boolean }) ended = false;\n /**\n * Maximum random time.\n */\n @property({ type: Number }) max = 100;\n /**\n * Minimum random time.\n */\n @property({ type: Number }) min = 50;\n /**\n * Fixed time.\n */\n @property({ type: Number }) delay = 0;\n /**\n * The index at the beginning.\n */\n @property({ type: Number }) index = 0;\n /**\n * Internal text.\n */\n @state() content = \"\";\n\n timeoutID: number;\n @query(\"i\") _i: HTMLElement;\n\n /**\n * {@linkcode TypewriterText.text} length.\n */\n get len() {\n return this.text.length;\n }\n\n static styles = [\n css`\n :host {\n ${cssvarScope}--cursor-width: .05em;\n font-family: monospace;\n white-space: nowrap;\n }\n\n i {\n border-right: var(${cssvarScope}--cursor-width) solid;\n margin-left: 0.02em;\n animation: s 1.5s steps(1) infinite;\n }\n\n @keyframes s {\n 0% {\n border-color: currentColor;\n }\n 50% {\n border-color: transparent;\n }\n }\n\n slot {\n display: none;\n }\n\n .hidden {\n visibility: hidden;\n }\n `,\n ];\n\n protected render(): HTMLTemplate {\n return html`${htmlSlot()}${this.content}<i class=\"${(this.ended && \"hidden\") || \"\"}\"></i>`;\n }\n\n protected firstUpdated() {\n if (!this.text) {\n this.text = this.assignedNodes[0]?.textContent.trim() || \"\";\n }\n if (!this.stopped && this.len) {\n this.write();\n }\n }\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n if (changedProperties.has(\"index\")) {\n this.dispatchEvent(new CustomEvent(this.index === this.len ? \"done\" : \"write\", { detail: this.content }));\n }\n }\n\n write(at = this.index) {\n this.content = this.text.slice(0, at + 1);\n const timeout = this.delay || random(this.max, this.min);\n this.timeoutID = setTimeout(() => {\n const nx = at + 1;\n if (nx <= this.len) {\n this.index = nx;\n this.write();\n }\n }, timeout);\n }\n\n stop() {\n clearTimeout(this.timeoutID);\n }\n\n end() {\n this.ended = true;\n }\n}\n\nexport default TypewriterText;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"typewriter-text\": TypewriterText;\n }\n}\n"]}
@@ -51,7 +51,7 @@ export declare class RouteView<T = unknown> extends GodownElement {
51
51
  pathname: string;
52
52
  params: Record<string, string>;
53
53
  path: string;
54
- component: T | import("lit").TemplateResult<1>;
54
+ component: import("lit").TemplateResult<1> | T;
55
55
  }>;
56
56
  set routes(v: (Record<string, any> & Record<"path", string> & {
57
57
  component?: T;
@@ -66,7 +66,7 @@ export declare class RouteView<T = unknown> extends GodownElement {
66
66
  pathname: string;
67
67
  params: Record<string, string>;
68
68
  path: string;
69
- component: T | import("lit").TemplateResult<1>;
69
+ component: import("lit").TemplateResult<1> | T;
70
70
  };
71
71
  connectedCallback(): void;
72
72
  /**
@@ -76,13 +76,6 @@ let RouteView = class RouteView extends GodownElement {
76
76
  get routes() {
77
77
  return this._routes;
78
78
  }
79
- static { this.styles = [
80
- css `
81
- :host {
82
- display: contents;
83
- }
84
- `,
85
- ]; }
86
79
  reset() {
87
80
  this._routeTree = new RouteTree();
88
81
  this.record.clear();
@@ -213,6 +206,13 @@ let RouteView = class RouteView extends GodownElement {
213
206
  });
214
207
  }
215
208
  };
209
+ RouteView.styles = [
210
+ css `
211
+ :host {
212
+ display: contents;
213
+ }
214
+ `,
215
+ ];
216
216
  __decorate([
217
217
  state()
218
218
  ], RouteView.prototype, "component", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"route-view.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/view/route-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { conf } from \"../../conf.js\";\nimport { css, property, type PropertyValueMap, state } from \"../../deps.js\";\nimport RouteTree from \"../../lib/route-tree.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { deepQuerySelectorAll } from \"../../lib/utils.js\";\nimport { define } from \"../../root.js\";\nimport { GodownElement } from \"../../root.js\";\n\ntype WithRecord<T extends string> = Record<string, any> & Record<T, string>;\n\nconst defineName = \"route-view\";\n\n/**\n * RouteView has basic routing control.\n */\n@define(defineName)\nexport class RouteView<T = unknown> extends GodownElement {\n private _routes: (WithRecord<\"path\"> & { component?: T })[] = [];\n private _routeTree: RouteTree = new RouteTree();\n\n /**\n * Component will render.\n */\n @state() component: T | HTMLTemplate = null;\n /**\n * Dynamic parameters record.\n */\n @state() params: Record<string, string> = {};\n /**\n * Value of matched path in routes, or null.\n */\n @state() path: string = null;\n /**\n * Current pathname (location.pathname).\n */\n @property() pathname = \"\";\n /**\n * Path prefix.\n */\n @property() baseURL = \"\";\n /**\n * Rendered content when there is no match.\n */\n @state() def = htmlSlot();\n /**\n * The type of routing query.\n */\n @property() type: \"united\" | \"child\" | \"slotted\" | \"field\" = \"united\";\n /**\n * Rewrite history.\n */\n @state() override = true;\n /**\n * Cache accessed.\n */\n @property({ type: Boolean }) cache = false;\n\n /**\n * Cache record.\n */\n record = new Map<string, ReturnType<typeof this.useRouter>>();\n\n set routes(v) {\n if (Object.prototype.toString.call(v) !== \"[object Array]\") {\n return;\n }\n this._routes = v;\n this.reset();\n for (const route of v) {\n this._routeTree.insert(route.path);\n }\n this.requestUpdate();\n }\n\n get routes() {\n return this._routes;\n }\n\n static styles = [\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n reset() {\n this._routeTree = new RouteTree();\n this.record.clear();\n }\n\n protected render(): T | HTMLTemplate {\n if (this.cache) {\n const cached = this.record.get(this.pathname);\n if (cached) {\n Object.assign(this, cached);\n return this.component;\n }\n }\n this.params = {};\n switch (this.type) {\n case \"field\":\n this.component = this.fieldComponent();\n break;\n case \"child\":\n case \"slotted\":\n this.component = this.slottedComponent();\n break;\n case \"united\":\n this.component = this.fieldComponent() ?? this.slottedComponent();\n break;\n }\n return this.component ?? this.def;\n }\n\n useRouter() {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.pathname = window.location.pathname;\n if (!this.override) {\n return;\n }\n this.addEvent(window, \"popstate\", () => {\n this.pathname = window.location.pathname;\n });\n const self = this;\n const pushHistory = history.pushState;\n history.pushState = function () {\n pushHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n const replaceHistory = history.replaceState;\n history.replaceState = function () {\n replaceHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n }\n\n /**\n *\n * @param ur value of useRouter()\n * @param first whether this path is loaded for the first time\n */\n routeChangeCallback: (ur: ReturnType<typeof this.useRouter>, first: boolean) => void = null;\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n const noRecord = !this.record.has(this.pathname);\n if (noRecord) {\n this.record.set(this.pathname, ur);\n }\n this.routeChangeCallback?.(ur, noRecord);\n this.dispatchEvent(new CustomEvent(\"change\", { detail: ur }));\n }\n }\n\n fieldComponent(usedRouteTemplate?: string): null | T {\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname);\n }\n this.path = usedRouteTemplate;\n if (!usedRouteTemplate) {\n return null;\n }\n this.params = this.parseRouterParams(this.path, this.pathname);\n const route = this.routes.find((r) => r.path === usedRouteTemplate);\n if (!route) {\n return null;\n }\n return route.component;\n }\n\n slottedComponent(usedRouteTemplate?: string): null | HTMLTemplate {\n const childNodes = this.querySelectorAll(\":scope > *[slot]\");\n if (!childNodes.length) {\n return null;\n }\n const slottedPaths = Array.from(childNodes).map((node) => {\n const slotname = node.getAttribute(\"slot\");\n return {\n path: slotname,\n };\n });\n const tempRouteTree = new RouteTree();\n for (const withPath of slottedPaths) {\n tempRouteTree.insert(withPath.path);\n }\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname, undefined, tempRouteTree);\n if (!usedRouteTemplate) {\n return null;\n }\n }\n const slotElement = slottedPaths.find((s) => s.path === usedRouteTemplate);\n if (!slotElement) {\n return null;\n }\n this.params = this.parseRouterParams(usedRouteTemplate, this.pathname);\n return htmlSlot(slotElement.path);\n }\n\n useWhichRoute(path: string, baseURL = this.baseURL, appl: RouteTree = this._routeTree): string | null {\n return appl.useWhich(baseURL + path);\n }\n\n parseRouterParams(routeTemplate: string, originpath: string, appl: RouteTree = this._routeTree): Record<string, string> {\n return appl.parseParams(originpath, routeTemplate);\n }\n\n static updateAll() {\n const routeViewTagName = conf.nameMap.get(\"route-view\");\n if (!routeViewTagName) {\n return;\n }\n const routeViewArray = deepQuerySelectorAll<RouteView>(routeViewTagName, document.body);\n routeViewArray.forEach((ArrayItem) => {\n if (!ArrayItem.override) {\n ArrayItem.pathname = window.location.pathname;\n }\n });\n }\n}\n\nexport default RouteView;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"route-view\": RouteView;\n }\n}\n"]}
1
+ {"version":3,"file":"route-view.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/view/route-view.ts"],"names":[],"mappings":"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","sourcesContent":["import { conf } from \"../../conf.js\";\nimport { css, property, type PropertyValueMap, state } from \"../../deps.js\";\nimport RouteTree from \"../../lib/route-tree.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { deepQuerySelectorAll } from \"../../lib/utils.js\";\nimport { define } from \"../../root.js\";\nimport { GodownElement } from \"../../root.js\";\n\ntype WithRecord<T extends string> = Record<string, any> & Record<T, string>;\n\nconst defineName = \"route-view\";\n\n/**\n * RouteView has basic routing control.\n */\n@define(defineName)\nexport class RouteView<T = unknown> extends GodownElement {\n private _routes: (WithRecord<\"path\"> & { component?: T })[] = [];\n private _routeTree: RouteTree = new RouteTree();\n\n /**\n * Component will render.\n */\n @state() component: T | HTMLTemplate = null;\n /**\n * Dynamic parameters record.\n */\n @state() params: Record<string, string> = {};\n /**\n * Value of matched path in routes, or null.\n */\n @state() path: string = null;\n /**\n * Current pathname (location.pathname).\n */\n @property() pathname = \"\";\n /**\n * Path prefix.\n */\n @property() baseURL = \"\";\n /**\n * Rendered content when there is no match.\n */\n @state() def = htmlSlot();\n /**\n * The type of routing query.\n */\n @property() type: \"united\" | \"child\" | \"slotted\" | \"field\" = \"united\";\n /**\n * Rewrite history.\n */\n @state() override = true;\n /**\n * Cache accessed.\n */\n @property({ type: Boolean }) cache = false;\n\n /**\n * Cache record.\n */\n record = new Map<string, ReturnType<typeof this.useRouter>>();\n\n set routes(v) {\n if (Object.prototype.toString.call(v) !== \"[object Array]\") {\n return;\n }\n this._routes = v;\n this.reset();\n for (const route of v) {\n this._routeTree.insert(route.path);\n }\n this.requestUpdate();\n }\n\n get routes() {\n return this._routes;\n }\n\n static styles = [\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n reset() {\n this._routeTree = new RouteTree();\n this.record.clear();\n }\n\n protected render(): T | HTMLTemplate {\n if (this.cache) {\n const cached = this.record.get(this.pathname);\n if (cached) {\n Object.assign(this, cached);\n return this.component;\n }\n }\n this.params = {};\n switch (this.type) {\n case \"field\":\n this.component = this.fieldComponent();\n break;\n case \"child\":\n case \"slotted\":\n this.component = this.slottedComponent();\n break;\n case \"united\":\n this.component = this.fieldComponent() ?? this.slottedComponent();\n break;\n }\n return this.component ?? this.def;\n }\n\n useRouter() {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.pathname = window.location.pathname;\n if (!this.override) {\n return;\n }\n this.addEvent(window, \"popstate\", () => {\n this.pathname = window.location.pathname;\n });\n const self = this;\n const pushHistory = history.pushState;\n history.pushState = function () {\n pushHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n const replaceHistory = history.replaceState;\n history.replaceState = function () {\n replaceHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n }\n\n /**\n *\n * @param ur value of useRouter()\n * @param first whether this path is loaded for the first time\n */\n routeChangeCallback: (ur: ReturnType<typeof this.useRouter>, first: boolean) => void = null;\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n const noRecord = !this.record.has(this.pathname);\n if (noRecord) {\n this.record.set(this.pathname, ur);\n }\n this.routeChangeCallback?.(ur, noRecord);\n this.dispatchEvent(new CustomEvent(\"change\", { detail: ur }));\n }\n }\n\n fieldComponent(usedRouteTemplate?: string): null | T {\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname);\n }\n this.path = usedRouteTemplate;\n if (!usedRouteTemplate) {\n return null;\n }\n this.params = this.parseRouterParams(this.path, this.pathname);\n const route = this.routes.find((r) => r.path === usedRouteTemplate);\n if (!route) {\n return null;\n }\n return route.component;\n }\n\n slottedComponent(usedRouteTemplate?: string): null | HTMLTemplate {\n const childNodes = this.querySelectorAll(\":scope > *[slot]\");\n if (!childNodes.length) {\n return null;\n }\n const slottedPaths = Array.from(childNodes).map((node) => {\n const slotname = node.getAttribute(\"slot\");\n return {\n path: slotname,\n };\n });\n const tempRouteTree = new RouteTree();\n for (const withPath of slottedPaths) {\n tempRouteTree.insert(withPath.path);\n }\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname, undefined, tempRouteTree);\n if (!usedRouteTemplate) {\n return null;\n }\n }\n const slotElement = slottedPaths.find((s) => s.path === usedRouteTemplate);\n if (!slotElement) {\n return null;\n }\n this.params = this.parseRouterParams(usedRouteTemplate, this.pathname);\n return htmlSlot(slotElement.path);\n }\n\n useWhichRoute(path: string, baseURL = this.baseURL, appl: RouteTree = this._routeTree): string | null {\n return appl.useWhich(baseURL + path);\n }\n\n parseRouterParams(routeTemplate: string, originpath: string, appl: RouteTree = this._routeTree): Record<string, string> {\n return appl.parseParams(originpath, routeTemplate);\n }\n\n static updateAll() {\n const routeViewTagName = conf.nameMap.get(\"route-view\");\n if (!routeViewTagName) {\n return;\n }\n const routeViewArray = deepQuerySelectorAll<RouteView>(routeViewTagName, document.body);\n routeViewArray.forEach((ArrayItem) => {\n if (!ArrayItem.override) {\n ArrayItem.pathname = window.location.pathname;\n }\n });\n }\n}\n\nexport default RouteView;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"route-view\": RouteView;\n }\n}\n"]}
@@ -19,7 +19,7 @@ export declare class WrapView extends GodownElement {
19
19
  export default WrapView;
20
20
  declare global {
21
21
  interface HTMLElementTagNameMap {
22
- "with-wrap": WrapView;
22
+ "wrap-view": WrapView;
23
23
  }
24
24
  }
25
25
  //# sourceMappingURL=wrap-view.d.ts.map