@studiometa/ui 0.1.1 → 0.2.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 (135) hide show
  1. package/README.md +37 -1
  2. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs +52 -0
  3. package/atoms/AnchorScrollTo/AnchorScrollTo.d.ts +31 -0
  4. package/atoms/AnchorScrollTo/AnchorScrollTo.js +26 -0
  5. package/atoms/Cursor/Cursor.cjs +129 -0
  6. package/{Cursor.d.ts → atoms/Cursor/Cursor.d.ts} +0 -0
  7. package/atoms/Cursor/Cursor.js +103 -0
  8. package/atoms/Figure/Figure.cjs +53 -0
  9. package/atoms/Figure/Figure.d.ts +31 -0
  10. package/atoms/Figure/Figure.js +27 -0
  11. package/atoms/LargeText/LargeText.cjs +74 -0
  12. package/atoms/LargeText/LargeText.d.ts +71 -0
  13. package/atoms/LargeText/LargeText.js +48 -0
  14. package/atoms/LazyInclude/LazyInclude.cjs +72 -0
  15. package/atoms/LazyInclude/LazyInclude.d.ts +64 -0
  16. package/atoms/LazyInclude/LazyInclude.js +46 -0
  17. package/atoms/Prefetch/AbstractPrefetch.cjs +84 -0
  18. package/atoms/Prefetch/AbstractPrefetch.d.ts +52 -0
  19. package/atoms/Prefetch/AbstractPrefetch.js +58 -0
  20. package/atoms/Prefetch/PrefetchWhenOver.cjs +65 -0
  21. package/atoms/Prefetch/PrefetchWhenOver.d.ts +21 -0
  22. package/atoms/Prefetch/PrefetchWhenOver.js +35 -0
  23. package/atoms/Prefetch/PrefetchWhenVisible.cjs +66 -0
  24. package/atoms/Prefetch/PrefetchWhenVisible.d.ts +21 -0
  25. package/atoms/Prefetch/PrefetchWhenVisible.js +36 -0
  26. package/atoms/Prefetch/index.cjs +40 -0
  27. package/atoms/Prefetch/index.d.ts +3 -0
  28. package/atoms/Prefetch/index.js +8 -0
  29. package/atoms/index.cjs +45 -0
  30. package/atoms/index.d.ts +6 -0
  31. package/atoms/index.js +13 -0
  32. package/index.cjs +26 -0
  33. package/index.d.ts +3 -6
  34. package/index.js +3 -6
  35. package/molecules/Accordion/Accordion.cjs +65 -0
  36. package/{Accordion/index.d.ts → molecules/Accordion/Accordion.d.ts} +5 -6
  37. package/molecules/Accordion/Accordion.js +35 -0
  38. package/molecules/Accordion/AccordionCore.cjs +60 -0
  39. package/{Accordion/Accordion.d.ts → molecules/Accordion/AccordionCore.d.ts} +0 -0
  40. package/molecules/Accordion/AccordionCore.js +34 -0
  41. package/molecules/Accordion/AccordionItem.cjs +208 -0
  42. package/{Accordion → molecules/Accordion}/AccordionItem.d.ts +11 -13
  43. package/molecules/Accordion/AccordionItem.js +178 -0
  44. package/molecules/Modal/Modal.cjs +176 -0
  45. package/{Modal.d.ts → molecules/Modal/Modal.d.ts} +9 -9
  46. package/molecules/Modal/Modal.js +150 -0
  47. package/molecules/Modal/ModalWithTransition.cjs +100 -0
  48. package/molecules/Modal/ModalWithTransition.d.ts +29 -0
  49. package/molecules/Modal/ModalWithTransition.js +69 -0
  50. package/molecules/Panel/Panel.cjs +148 -0
  51. package/molecules/Panel/Panel.d.ts +42 -0
  52. package/molecules/Panel/Panel.js +117 -0
  53. package/molecules/Slider/AbstractSliderChild.cjs +74 -0
  54. package/molecules/Slider/AbstractSliderChild.d.ts +55 -0
  55. package/molecules/Slider/AbstractSliderChild.js +43 -0
  56. package/molecules/Slider/Slider.cjs +240 -0
  57. package/molecules/Slider/Slider.d.ts +245 -0
  58. package/molecules/Slider/Slider.js +209 -0
  59. package/molecules/Slider/SliderBtn.cjs +65 -0
  60. package/molecules/Slider/SliderBtn.d.ts +31 -0
  61. package/molecules/Slider/SliderBtn.js +34 -0
  62. package/molecules/Slider/SliderCount.cjs +50 -0
  63. package/molecules/Slider/SliderCount.d.ts +21 -0
  64. package/molecules/Slider/SliderCount.js +19 -0
  65. package/molecules/Slider/SliderDots.cjs +55 -0
  66. package/molecules/Slider/SliderDots.d.ts +33 -0
  67. package/molecules/Slider/SliderDots.js +24 -0
  68. package/molecules/Slider/SliderDrag.cjs +45 -0
  69. package/molecules/Slider/SliderDrag.d.ts +16 -0
  70. package/molecules/Slider/SliderDrag.js +19 -0
  71. package/molecules/Slider/SliderItem.cjs +130 -0
  72. package/molecules/Slider/SliderItem.d.ts +106 -0
  73. package/molecules/Slider/SliderItem.js +105 -0
  74. package/molecules/Slider/SliderProgress.cjs +54 -0
  75. package/molecules/Slider/SliderProgress.d.ts +27 -0
  76. package/molecules/Slider/SliderProgress.js +23 -0
  77. package/molecules/Slider/index.cjs +50 -0
  78. package/molecules/Slider/index.d.ts +8 -0
  79. package/molecules/Slider/index.js +18 -0
  80. package/molecules/Sticky/Sticky.cjs +133 -0
  81. package/molecules/Sticky/Sticky.d.ts +141 -0
  82. package/molecules/Sticky/Sticky.js +107 -0
  83. package/molecules/TableOfContent/TableOfContent.cjs +73 -0
  84. package/molecules/TableOfContent/TableOfContent.d.ts +59 -0
  85. package/molecules/TableOfContent/TableOfContent.js +42 -0
  86. package/molecules/TableOfContent/TableOfContentAnchor.cjs +65 -0
  87. package/molecules/TableOfContent/TableOfContentAnchor.d.ts +36 -0
  88. package/molecules/TableOfContent/TableOfContentAnchor.js +39 -0
  89. package/molecules/TableOfContent/index.cjs +38 -0
  90. package/molecules/TableOfContent/index.d.ts +2 -0
  91. package/molecules/TableOfContent/index.js +6 -0
  92. package/molecules/Tabs/Tabs.cjs +152 -0
  93. package/{Tabs.d.ts → molecules/Tabs/Tabs.d.ts} +2 -4
  94. package/molecules/Tabs/Tabs.js +126 -0
  95. package/molecules/index.cjs +50 -0
  96. package/molecules/index.d.ts +9 -0
  97. package/molecules/index.js +18 -0
  98. package/organisms/Frame/Frame.cjs +202 -0
  99. package/organisms/Frame/Frame.d.ts +119 -0
  100. package/organisms/Frame/Frame.js +171 -0
  101. package/organisms/Frame/FrameAnchor.cjs +48 -0
  102. package/organisms/Frame/FrameAnchor.d.ts +35 -0
  103. package/organisms/Frame/FrameAnchor.js +22 -0
  104. package/organisms/Frame/FrameForm.cjs +48 -0
  105. package/organisms/Frame/FrameForm.d.ts +32 -0
  106. package/organisms/Frame/FrameForm.js +22 -0
  107. package/organisms/Frame/FrameTarget.cjs +134 -0
  108. package/organisms/Frame/FrameTarget.d.ts +47 -0
  109. package/organisms/Frame/FrameTarget.js +109 -0
  110. package/organisms/Frame/index.cjs +42 -0
  111. package/organisms/Frame/index.d.ts +4 -0
  112. package/organisms/Frame/index.js +10 -0
  113. package/organisms/index.cjs +24 -0
  114. package/organisms/index.d.ts +1 -0
  115. package/organisms/index.js +1 -0
  116. package/package.json +2 -2
  117. package/primitives/Draggable/Draggable.cjs +64 -0
  118. package/{Draggable.d.ts → primitives/Draggable/Draggable.d.ts} +0 -0
  119. package/primitives/Draggable/Draggable.js +38 -0
  120. package/primitives/Sentinel/Sentinel.cjs +41 -0
  121. package/primitives/Sentinel/Sentinel.d.ts +12 -0
  122. package/primitives/Sentinel/Sentinel.js +15 -0
  123. package/primitives/Transition/Transition.cjs +71 -0
  124. package/primitives/Transition/Transition.d.ts +69 -0
  125. package/primitives/Transition/Transition.js +45 -0
  126. package/primitives/index.cjs +40 -0
  127. package/primitives/index.d.ts +3 -0
  128. package/primitives/index.js +8 -0
  129. package/Accordion/Accordion.js +0 -29
  130. package/Accordion/AccordionItem.js +0 -197
  131. package/Accordion/index.js +0 -12
  132. package/Cursor.js +0 -121
  133. package/Draggable.js +0 -31
  134. package/Modal.js +0 -167
  135. package/Tabs.js +0 -106
@@ -0,0 +1,73 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __reExport = (target, module2, copyDefault, desc) => {
14
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
+ for (let key of __getOwnPropNames(module2))
16
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
17
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
18
+ }
19
+ return target;
20
+ };
21
+ var __toESM = (module2, isNodeMode) => {
22
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
23
+ };
24
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
25
+ return (module2, temp) => {
26
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
27
+ };
28
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
29
+ var __publicField = (obj, key, value) => {
30
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
31
+ return value;
32
+ };
33
+
34
+ // packages/ui/molecules/TableOfContent/TableOfContent.js
35
+ var TableOfContent_exports = {};
36
+ __export(TableOfContent_exports, {
37
+ default: () => TableOfContent
38
+ });
39
+ var import_js_toolkit = require("@studiometa/js-toolkit");
40
+ var import_TableOfContentAnchor = __toESM(require("./TableOfContentAnchor.cjs"), 1);
41
+ var TableOfContent = class extends import_js_toolkit.Base {
42
+ mounted() {
43
+ if (this.$options.withTemplate) {
44
+ this.generateAnchors();
45
+ this.$update();
46
+ }
47
+ }
48
+ generateAnchors() {
49
+ document.querySelectorAll(this.$options.contentSelector).forEach((section) => {
50
+ const tpl = document.createElement("div");
51
+ tpl.innerHTML = this.$refs.itemTemplate.innerHTML;
52
+ const li = tpl.querySelector("li");
53
+ const anchor = li.querySelector("a");
54
+ anchor.href = `#${section.id}`;
55
+ anchor.innerHTML = section.textContent;
56
+ anchor.dataset.component = "TableOfContentAnchor";
57
+ this.$refs.list.appendChild(li);
58
+ });
59
+ }
60
+ };
61
+ __publicField(TableOfContent, "config", {
62
+ name: "TableOfContent",
63
+ refs: ["itemTemplate", "list"],
64
+ components: {
65
+ TableOfContentAnchor: import_TableOfContentAnchor.default
66
+ },
67
+ options: {
68
+ contentSelector: String,
69
+ withTemplate: Boolean
70
+ }
71
+ });
72
+ module.exports = __toCommonJS(TableOfContent_exports);
73
+ if (module.exports.default) module.exports = module.exports.default;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @typedef {TableOfContent & {
3
+ * $refs: {
4
+ * itemTemplate: HTMLTemplateElement,
5
+ * list: HTMLUListElement
6
+ * },
7
+ * $options: {
8
+ * contentSelector: string,
9
+ * withTemplate: boolean,
10
+ * }
11
+ * }} TableOfContentInterface
12
+ */
13
+ /**
14
+ * TableOfContent class.
15
+ */
16
+ export default class TableOfContent extends Base {
17
+ /**
18
+ * Config.
19
+ */
20
+ static config: {
21
+ name: string;
22
+ refs: string[];
23
+ components: {
24
+ TableOfContentAnchor: typeof TableOfContentAnchor;
25
+ };
26
+ options: {
27
+ contentSelector: StringConstructor;
28
+ withTemplate: BooleanConstructor;
29
+ };
30
+ };
31
+ /**
32
+ * Generate anchors on mount and update the component to instantiate the
33
+ * `TableOfContentAnchor` components.
34
+ * @returns {void}
35
+ */
36
+ mounted(): void;
37
+ /**
38
+ * Generate all anchors.
39
+ *
40
+ * @todo Read anchor template from a ref?
41
+ * @todo Better API to easily override the template function, maybe a `render` function?
42
+ *
43
+ * @this {TableOfContentInterface}
44
+ * @returns {void}
45
+ */
46
+ generateAnchors(): void;
47
+ }
48
+ export type TableOfContentInterface = TableOfContent & {
49
+ $refs: {
50
+ itemTemplate: HTMLTemplateElement;
51
+ list: HTMLUListElement;
52
+ };
53
+ $options: {
54
+ contentSelector: string;
55
+ withTemplate: boolean;
56
+ };
57
+ };
58
+ import { Base } from "@studiometa/js-toolkit";
59
+ import TableOfContentAnchor from "./TableOfContentAnchor.js";
@@ -0,0 +1,42 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { Base } from "@studiometa/js-toolkit";
8
+ import TableOfContentAnchor from "./TableOfContentAnchor.js";
9
+ class TableOfContent extends Base {
10
+ mounted() {
11
+ if (this.$options.withTemplate) {
12
+ this.generateAnchors();
13
+ this.$update();
14
+ }
15
+ }
16
+ generateAnchors() {
17
+ document.querySelectorAll(this.$options.contentSelector).forEach((section) => {
18
+ const tpl = document.createElement("div");
19
+ tpl.innerHTML = this.$refs.itemTemplate.innerHTML;
20
+ const li = tpl.querySelector("li");
21
+ const anchor = li.querySelector("a");
22
+ anchor.href = `#${section.id}`;
23
+ anchor.innerHTML = section.textContent;
24
+ anchor.dataset.component = "TableOfContentAnchor";
25
+ this.$refs.list.appendChild(li);
26
+ });
27
+ }
28
+ }
29
+ __publicField(TableOfContent, "config", {
30
+ name: "TableOfContent",
31
+ refs: ["itemTemplate", "list"],
32
+ components: {
33
+ TableOfContentAnchor
34
+ },
35
+ options: {
36
+ contentSelector: String,
37
+ withTemplate: Boolean
38
+ }
39
+ });
40
+ export {
41
+ TableOfContent as default
42
+ };
@@ -0,0 +1,65 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __reExport = (target, module2, copyDefault, desc) => {
12
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
13
+ for (let key of __getOwnPropNames(module2))
14
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
15
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
16
+ }
17
+ return target;
18
+ };
19
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
+ return (module2, temp) => {
21
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
22
+ };
23
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
24
+ var __publicField = (obj, key, value) => {
25
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
26
+ return value;
27
+ };
28
+
29
+ // packages/ui/molecules/TableOfContent/TableOfContentAnchor.js
30
+ var TableOfContentAnchor_exports = {};
31
+ __export(TableOfContentAnchor_exports, {
32
+ default: () => TableOfContentAnchor
33
+ });
34
+ var import_atoms = require("../../atoms/index.cjs");
35
+ var TableOfContentAnchor = class extends import_atoms.AnchorScrollTo {
36
+ get sentinel() {
37
+ return document.querySelector(this.targetSelector);
38
+ }
39
+ mounted() {
40
+ if (!this.sentinel) {
41
+ return;
42
+ }
43
+ this.observer = new IntersectionObserver(([entry]) => {
44
+ const shouldActivate = entry.isIntersecting && entry.boundingClientRect.y < 100 && entry.boundingClientRect.y > 100;
45
+ this.$el.classList.toggle(this.$options.activeClass, shouldActivate);
46
+ this.$emit("should-activate", shouldActivate);
47
+ });
48
+ this.observer.observe(this.sentinel);
49
+ }
50
+ destroyed() {
51
+ this.observer.disconnect();
52
+ }
53
+ };
54
+ __publicField(TableOfContentAnchor, "config", {
55
+ name: "TableOfContentAnchor",
56
+ emits: ["should-activate"],
57
+ options: {
58
+ activeClass: {
59
+ type: String,
60
+ default: "is-active"
61
+ }
62
+ }
63
+ });
64
+ module.exports = __toCommonJS(TableOfContentAnchor_exports);
65
+ if (module.exports.default) module.exports = module.exports.default;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * TableOfContentAnchor class.
3
+ */
4
+ export default class TableOfContentAnchor extends AnchorScrollTo {
5
+ /**
6
+ * Config.
7
+ */
8
+ static config: {
9
+ name: string;
10
+ emits: string[];
11
+ options: {
12
+ activeClass: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ };
17
+ };
18
+ /**
19
+ * Get the sentinel.
20
+ * @returns {HTMLElement}
21
+ */
22
+ get sentinel(): HTMLElement;
23
+ /**
24
+ * Init observer on mount.
25
+ * @returns {void}
26
+ */
27
+ mounted(): void;
28
+ observer: IntersectionObserver;
29
+ /**
30
+ * Destroy observer on destroy.
31
+ *
32
+ * @returns {void}
33
+ */
34
+ destroyed(): void;
35
+ }
36
+ import { AnchorScrollTo } from "../../atoms/index.js";
@@ -0,0 +1,39 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { AnchorScrollTo } from "../../atoms/index.js";
8
+ class TableOfContentAnchor extends AnchorScrollTo {
9
+ get sentinel() {
10
+ return document.querySelector(this.targetSelector);
11
+ }
12
+ mounted() {
13
+ if (!this.sentinel) {
14
+ return;
15
+ }
16
+ this.observer = new IntersectionObserver(([entry]) => {
17
+ const shouldActivate = entry.isIntersecting && entry.boundingClientRect.y < 100 && entry.boundingClientRect.y > 100;
18
+ this.$el.classList.toggle(this.$options.activeClass, shouldActivate);
19
+ this.$emit("should-activate", shouldActivate);
20
+ });
21
+ this.observer.observe(this.sentinel);
22
+ }
23
+ destroyed() {
24
+ this.observer.disconnect();
25
+ }
26
+ }
27
+ __publicField(TableOfContentAnchor, "config", {
28
+ name: "TableOfContentAnchor",
29
+ emits: ["should-activate"],
30
+ options: {
31
+ activeClass: {
32
+ type: String,
33
+ default: "is-active"
34
+ }
35
+ }
36
+ });
37
+ export {
38
+ TableOfContentAnchor as default
39
+ };
@@ -0,0 +1,38 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+
29
+ // packages/ui/molecules/TableOfContent/index.js
30
+ var TableOfContent_exports = {};
31
+ __export(TableOfContent_exports, {
32
+ TableOfContent: () => import_TableOfContent.default,
33
+ TableOfContentAnchor: () => import_TableOfContentAnchor.default
34
+ });
35
+ var import_TableOfContent = __toESM(require("./TableOfContent.cjs"), 1);
36
+ var import_TableOfContentAnchor = __toESM(require("./TableOfContentAnchor.cjs"), 1);
37
+ module.exports = __toCommonJS(TableOfContent_exports);
38
+ if (module.exports.default) module.exports = module.exports.default;
@@ -0,0 +1,2 @@
1
+ export { default as TableOfContent } from "./TableOfContent.js";
2
+ export { default as TableOfContentAnchor } from "./TableOfContentAnchor.js";
@@ -0,0 +1,6 @@
1
+ import { default as default2 } from "./TableOfContent.js";
2
+ import { default as default3 } from "./TableOfContentAnchor.js";
3
+ export {
4
+ default2 as TableOfContent,
5
+ default3 as TableOfContentAnchor
6
+ };
@@ -0,0 +1,152 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __reExport = (target, module2, copyDefault, desc) => {
12
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
13
+ for (let key of __getOwnPropNames(module2))
14
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
15
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
16
+ }
17
+ return target;
18
+ };
19
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
+ return (module2, temp) => {
21
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
22
+ };
23
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
24
+ var __publicField = (obj, key, value) => {
25
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
26
+ return value;
27
+ };
28
+ var __async = (__this, __arguments, generator) => {
29
+ return new Promise((resolve, reject) => {
30
+ var fulfilled = (value) => {
31
+ try {
32
+ step(generator.next(value));
33
+ } catch (e) {
34
+ reject(e);
35
+ }
36
+ };
37
+ var rejected = (value) => {
38
+ try {
39
+ step(generator.throw(value));
40
+ } catch (e) {
41
+ reject(e);
42
+ }
43
+ };
44
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
45
+ step((generator = generator.apply(__this, __arguments)).next());
46
+ });
47
+ };
48
+
49
+ // packages/ui/molecules/Tabs/Tabs.js
50
+ var Tabs_exports = {};
51
+ __export(Tabs_exports, {
52
+ default: () => Tabs
53
+ });
54
+ var import_js_toolkit = require("@studiometa/js-toolkit");
55
+ var import_utils = require("@studiometa/js-toolkit/utils");
56
+ var Tabs = class extends import_js_toolkit.Base {
57
+ mounted() {
58
+ this.items = this.$refs.btn.map((btn, index) => {
59
+ const id = `${this.$id}-${index}`;
60
+ const content = this.$refs.content[index];
61
+ btn.setAttribute("id", id);
62
+ content.setAttribute("aria-labelledby", id);
63
+ const item = { btn, content, isEnabled: index > 0 };
64
+ if (index > 0) {
65
+ this.disableItem(item);
66
+ } else {
67
+ this.enableItem(item);
68
+ }
69
+ return item;
70
+ });
71
+ }
72
+ onBtnClick(event, index) {
73
+ this.items.forEach((item, i) => {
74
+ if (i !== index) {
75
+ this.disableItem(item);
76
+ }
77
+ });
78
+ this.enableItem(this.items[index]);
79
+ }
80
+ enableItem(item) {
81
+ return __async(this, null, function* () {
82
+ if (!item || item.isEnabled) {
83
+ return Promise.resolve(this);
84
+ }
85
+ item.isEnabled = true;
86
+ const { btn, content } = item;
87
+ const btnStyles = this.$options.styles.btn || {};
88
+ const contentStyles = this.$options.styles.content || {};
89
+ content.setAttribute("aria-hidden", "false");
90
+ this.$emit("enable", item);
91
+ return Promise.all([
92
+ (0, import_utils.transition)(btn, {
93
+ from: btnStyles.closed,
94
+ active: btnStyles.active,
95
+ to: btnStyles.open
96
+ }, "keep"),
97
+ (0, import_utils.transition)(content, {
98
+ from: contentStyles.closed,
99
+ active: contentStyles.active,
100
+ to: contentStyles.open
101
+ }, "keep")
102
+ ]).then(() => Promise.resolve(this));
103
+ });
104
+ }
105
+ disableItem(item) {
106
+ return __async(this, null, function* () {
107
+ if (!item || !item.isEnabled) {
108
+ return Promise.resolve(this);
109
+ }
110
+ item.isEnabled = false;
111
+ const { btn, content } = item;
112
+ const btnStyles = this.$options.styles.btn || {};
113
+ const contentStyles = this.$options.styles.content || {};
114
+ content.setAttribute("aria-hidden", "true");
115
+ this.$emit("disable", item);
116
+ return Promise.all([
117
+ (0, import_utils.transition)(btn, {
118
+ from: btnStyles.open,
119
+ active: btnStyles.active,
120
+ to: btnStyles.closed
121
+ }, "keep"),
122
+ (0, import_utils.transition)(content, {
123
+ from: contentStyles.open,
124
+ active: contentStyles.active,
125
+ to: contentStyles.closed
126
+ }, "keep")
127
+ ]).then(() => Promise.resolve(this));
128
+ });
129
+ }
130
+ };
131
+ __publicField(Tabs, "config", {
132
+ name: "Tabs",
133
+ refs: ["btn[]", "content[]"],
134
+ emits: ["enable", "disable"],
135
+ options: {
136
+ styles: {
137
+ type: Object,
138
+ default: () => ({
139
+ content: {
140
+ closed: {
141
+ position: "absolute",
142
+ opacity: "0",
143
+ pointerEvents: "none",
144
+ visibility: "hidden"
145
+ }
146
+ }
147
+ })
148
+ }
149
+ }
150
+ });
151
+ module.exports = __toCommonJS(Tabs_exports);
152
+ if (module.exports.default) module.exports = module.exports.default;
@@ -13,8 +13,7 @@
13
13
  * @property {HTMLElement[]} content
14
14
  */
15
15
  /**
16
- * @typedef {import('@studiometa/js-toolkit/utils/css/styles.js').CssStyleObject} CssStyleObject
17
- * @typedef {Partial<Record<'open'|'active'|'closed', string|CssStyleObject>>} TabsStates
16
+ * @typedef {Partial<Record<'open'|'active'|'closed', string|Partial<CSSStyleDeclaration>>>} TabsStates
18
17
  * @typedef {Partial<Record<keyof TabsRefs, TabsStates>>} TabsStylesOption
19
18
  */
20
19
  /**
@@ -94,8 +93,7 @@ export type TabsRefs = {
94
93
  btn: HTMLElement[];
95
94
  content: HTMLElement[];
96
95
  };
97
- export type CssStyleObject = import('@studiometa/js-toolkit/utils/css/styles.js').CssStyleObject;
98
- export type TabsStates = Partial<Record<'open' | 'active' | 'closed', string | CssStyleObject>>;
96
+ export type TabsStates = Partial<Record<'open' | 'active' | 'closed', string | Partial<CSSStyleDeclaration>>>;
99
97
  export type TabsStylesOption = Partial<Record<keyof TabsRefs, TabsStates>>;
100
98
  export type TabsOptions = {
101
99
  styles: TabsStylesOption;
@@ -0,0 +1,126 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ var __async = (__this, __arguments, generator) => {
8
+ return new Promise((resolve, reject) => {
9
+ var fulfilled = (value) => {
10
+ try {
11
+ step(generator.next(value));
12
+ } catch (e) {
13
+ reject(e);
14
+ }
15
+ };
16
+ var rejected = (value) => {
17
+ try {
18
+ step(generator.throw(value));
19
+ } catch (e) {
20
+ reject(e);
21
+ }
22
+ };
23
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
24
+ step((generator = generator.apply(__this, __arguments)).next());
25
+ });
26
+ };
27
+ import { Base } from "@studiometa/js-toolkit";
28
+ import { transition } from "@studiometa/js-toolkit/utils";
29
+ class Tabs extends Base {
30
+ mounted() {
31
+ this.items = this.$refs.btn.map((btn, index) => {
32
+ const id = `${this.$id}-${index}`;
33
+ const content = this.$refs.content[index];
34
+ btn.setAttribute("id", id);
35
+ content.setAttribute("aria-labelledby", id);
36
+ const item = { btn, content, isEnabled: index > 0 };
37
+ if (index > 0) {
38
+ this.disableItem(item);
39
+ } else {
40
+ this.enableItem(item);
41
+ }
42
+ return item;
43
+ });
44
+ }
45
+ onBtnClick(event, index) {
46
+ this.items.forEach((item, i) => {
47
+ if (i !== index) {
48
+ this.disableItem(item);
49
+ }
50
+ });
51
+ this.enableItem(this.items[index]);
52
+ }
53
+ enableItem(item) {
54
+ return __async(this, null, function* () {
55
+ if (!item || item.isEnabled) {
56
+ return Promise.resolve(this);
57
+ }
58
+ item.isEnabled = true;
59
+ const { btn, content } = item;
60
+ const btnStyles = this.$options.styles.btn || {};
61
+ const contentStyles = this.$options.styles.content || {};
62
+ content.setAttribute("aria-hidden", "false");
63
+ this.$emit("enable", item);
64
+ return Promise.all([
65
+ transition(btn, {
66
+ from: btnStyles.closed,
67
+ active: btnStyles.active,
68
+ to: btnStyles.open
69
+ }, "keep"),
70
+ transition(content, {
71
+ from: contentStyles.closed,
72
+ active: contentStyles.active,
73
+ to: contentStyles.open
74
+ }, "keep")
75
+ ]).then(() => Promise.resolve(this));
76
+ });
77
+ }
78
+ disableItem(item) {
79
+ return __async(this, null, function* () {
80
+ if (!item || !item.isEnabled) {
81
+ return Promise.resolve(this);
82
+ }
83
+ item.isEnabled = false;
84
+ const { btn, content } = item;
85
+ const btnStyles = this.$options.styles.btn || {};
86
+ const contentStyles = this.$options.styles.content || {};
87
+ content.setAttribute("aria-hidden", "true");
88
+ this.$emit("disable", item);
89
+ return Promise.all([
90
+ transition(btn, {
91
+ from: btnStyles.open,
92
+ active: btnStyles.active,
93
+ to: btnStyles.closed
94
+ }, "keep"),
95
+ transition(content, {
96
+ from: contentStyles.open,
97
+ active: contentStyles.active,
98
+ to: contentStyles.closed
99
+ }, "keep")
100
+ ]).then(() => Promise.resolve(this));
101
+ });
102
+ }
103
+ }
104
+ __publicField(Tabs, "config", {
105
+ name: "Tabs",
106
+ refs: ["btn[]", "content[]"],
107
+ emits: ["enable", "disable"],
108
+ options: {
109
+ styles: {
110
+ type: Object,
111
+ default: () => ({
112
+ content: {
113
+ closed: {
114
+ position: "absolute",
115
+ opacity: "0",
116
+ pointerEvents: "none",
117
+ visibility: "hidden"
118
+ }
119
+ }
120
+ })
121
+ }
122
+ }
123
+ });
124
+ export {
125
+ Tabs as default
126
+ };