@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
package/Modal.js DELETED
@@ -1,167 +0,0 @@
1
- import { Base } from '@studiometa/js-toolkit';
2
- import transition from '@studiometa/js-toolkit/utils/css/transition.js';
3
- import { trap, untrap, saveActiveElement } from '@studiometa/js-toolkit/utils/focusTrap.js';
4
- export default class Modal extends Base {
5
- static config = {
6
- name: 'Modal',
7
- refs: ['close', 'container', 'content', 'modal', 'open', 'overlay'],
8
- emits: ['open', 'close'],
9
- options: {
10
- move: String,
11
- autofocus: {
12
- type: String,
13
- default: '[autofocus]'
14
- },
15
- styles: {
16
- type: Object,
17
- default: () => ({
18
- modal: {
19
- closed: {
20
- opacity: '0',
21
- pointerEvents: 'none',
22
- visibility: 'hidden'
23
- }
24
- }
25
- })
26
- }
27
- }
28
- };
29
-
30
- get onOpenClick() {
31
- return this.open;
32
- }
33
-
34
- get onCloseClick() {
35
- return this.close;
36
- }
37
-
38
- get onOverlayClick() {
39
- return this.close;
40
- }
41
-
42
- mounted() {
43
- this.isOpen = false;
44
- this.close();
45
-
46
- if (this.$options.move) {
47
- const target = document.querySelector(this.$options.move) || document.body;
48
- this.__refsBackup = this.$refs;
49
- this.__refModalPlaceholder = document.createComment('');
50
- this.__refModalParentBackup = this.$refs.modal.parentElement || this.$el;
51
-
52
- this.__refModalParentBackup.insertBefore(this.__refModalPlaceholder, this.$refs.modal);
53
-
54
- target.appendChild(this.$refs.modal);
55
- }
56
-
57
- return this;
58
- }
59
-
60
- get $refs() {
61
- const $refs = super.$refs;
62
-
63
- if (this.$options.move && this.__refsBackup) {
64
- Object.entries(this.__refsBackup).forEach(([key, ref]) => {
65
- if (!$refs[key]) {
66
- $refs[key] = ref;
67
- }
68
- });
69
- }
70
-
71
- return $refs;
72
- }
73
-
74
- destroyed() {
75
- this.close();
76
-
77
- if (this.$options.move && this.__refModalParentBackup) {
78
- this.__refModalParentBackup.insertBefore(this.$refs.modal, this.__refModalPlaceholder);
79
-
80
- this.__refModalPlaceholder.remove();
81
-
82
- delete this.__refModalPlaceholder;
83
- delete this.__refModalParentBackup;
84
- }
85
-
86
- return this;
87
- }
88
-
89
- keyed({
90
- event,
91
- isUp,
92
- isDown,
93
- ESC
94
- }) {
95
- if (!this.isOpen) {
96
- return;
97
- }
98
-
99
- if (isDown) {
100
- trap(this.$refs.modal, event);
101
- }
102
-
103
- if (ESC && isUp) {
104
- this.close();
105
- }
106
- }
107
-
108
- async open() {
109
- if (this.isOpen) {
110
- return Promise.resolve(this);
111
- }
112
-
113
- this.$refs.modal.setAttribute('aria-hidden', 'false');
114
- document.documentElement.style.overflow = 'hidden';
115
- this.isOpen = true;
116
- this.$emit('open');
117
- const refs = this.$refs;
118
- return Promise.all(Object.entries(this.$options.styles).map(([refName, {
119
- open,
120
- active,
121
- closed
122
- } = {
123
- open: '',
124
- active: '',
125
- closed: ''
126
- }]) => transition(refs[refName], {
127
- from: closed,
128
- active,
129
- to: open
130
- }, 'keep'))).then(() => {
131
- if (this.$options.autofocus && this.$refs.modal.querySelector(this.$options.autofocus)) {
132
- saveActiveElement();
133
- const autofocusElement = this.$refs.modal.querySelector(this.$options.autofocus);
134
- autofocusElement.focus();
135
- }
136
-
137
- return Promise.resolve(this);
138
- });
139
- }
140
-
141
- async close() {
142
- if (!this.isOpen) {
143
- return Promise.resolve(this);
144
- }
145
-
146
- this.$refs.modal.setAttribute('aria-hidden', 'true');
147
- document.documentElement.style.overflow = '';
148
- this.isOpen = false;
149
- untrap();
150
- this.$emit('close');
151
- const refs = this.$refs;
152
- return Promise.all(Object.entries(this.$options.styles).map(([refName, {
153
- open,
154
- active,
155
- closed
156
- } = {
157
- open: '',
158
- active: '',
159
- closed: ''
160
- }]) => transition(refs[refName], {
161
- from: open,
162
- active,
163
- to: closed
164
- }, 'keep'))).then(() => Promise.resolve(this));
165
- }
166
-
167
- }
package/Tabs.js DELETED
@@ -1,106 +0,0 @@
1
- import { Base } from '@studiometa/js-toolkit';
2
- import transition from '@studiometa/js-toolkit/utils/css/transition.js';
3
- export default class Tabs extends Base {
4
- static config = {
5
- name: 'Tabs',
6
- refs: ['btn[]', 'content[]'],
7
- emits: ['enable', 'disable'],
8
- options: {
9
- styles: {
10
- type: Object,
11
- default: () => ({
12
- content: {
13
- closed: {
14
- position: 'absolute',
15
- opacity: '0',
16
- pointerEvents: 'none',
17
- visibility: 'hidden'
18
- }
19
- }
20
- })
21
- }
22
- }
23
- };
24
-
25
- mounted() {
26
- this.items = this.$refs.btn.map((btn, index) => {
27
- const id = `${this.$id}-${index}`;
28
- const content = this.$refs.content[index];
29
- btn.setAttribute('id', id);
30
- content.setAttribute('aria-labelledby', id);
31
- const item = {
32
- btn,
33
- content,
34
- isEnabled: index > 0
35
- };
36
-
37
- if (index > 0) {
38
- this.disableItem(item);
39
- } else {
40
- this.enableItem(item);
41
- }
42
-
43
- return item;
44
- });
45
- }
46
-
47
- onBtnClick(event, index) {
48
- this.items.forEach((item, i) => {
49
- if (i !== index) {
50
- this.disableItem(item);
51
- }
52
- });
53
- this.enableItem(this.items[index]);
54
- }
55
-
56
- async enableItem(item) {
57
- if (!item || item.isEnabled) {
58
- return Promise.resolve(this);
59
- }
60
-
61
- item.isEnabled = true;
62
- const {
63
- btn,
64
- content
65
- } = item;
66
- const btnStyles = this.$options.styles.btn || {};
67
- const contentStyles = this.$options.styles.content || {};
68
- content.setAttribute('aria-hidden', 'false');
69
- this.$emit('enable', item);
70
- return Promise.all([transition(btn, {
71
- from: btnStyles.closed,
72
- active: btnStyles.active,
73
- to: btnStyles.open
74
- }, 'keep'), transition(content, {
75
- from: contentStyles.closed,
76
- active: contentStyles.active,
77
- to: contentStyles.open
78
- }, 'keep')]).then(() => Promise.resolve(this));
79
- }
80
-
81
- async disableItem(item) {
82
- if (!item || !item.isEnabled) {
83
- return Promise.resolve(this);
84
- }
85
-
86
- item.isEnabled = false;
87
- const {
88
- btn,
89
- content
90
- } = item;
91
- const btnStyles = this.$options.styles.btn || {};
92
- const contentStyles = this.$options.styles.content || {};
93
- content.setAttribute('aria-hidden', 'true');
94
- this.$emit('disable', item);
95
- return Promise.all([transition(btn, {
96
- from: btnStyles.open,
97
- active: btnStyles.active,
98
- to: btnStyles.closed
99
- }, 'keep'), transition(content, {
100
- from: contentStyles.open,
101
- active: contentStyles.active,
102
- to: contentStyles.closed
103
- }, 'keep')]).then(() => Promise.resolve(this));
104
- }
105
-
106
- }