@newlogic-digital/ui 3.4.2 → 3.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/README.md +21 -15
  2. package/package.json +32 -24
  3. package/src/data/main.json +25 -15
  4. package/src/emails/styles/main/+.css +3 -0
  5. package/src/emails/styles/main/Base/+.css +2 -0
  6. package/src/emails/styles/main/Base/config.css +22 -0
  7. package/src/emails/styles/main/Components/+.css +1 -0
  8. package/src/emails/styles/main/Components/Card.css +12 -0
  9. package/src/emails/styles/main/Ui/+.css +3 -0
  10. package/src/emails/styles/main/Ui/Btn.css +78 -0
  11. package/src/emails/styles/main/Ui/Heading.css +8 -0
  12. package/src/emails/styles/main/Ui/Text.css +12 -0
  13. package/src/emails/styles/main.css +92 -0
  14. package/src/emails/{templates/Layout.twig → templates.test/Layout.latte} +17 -5
  15. package/src/emails/templates.test/Sections/Footer.latte +22 -0
  16. package/src/emails/templates.test/Sections/Header.latte +37 -0
  17. package/src/emails/templates.test/Sections/Text.latte +24 -0
  18. package/src/icons.svg +27 -21
  19. package/src/scripts/Components/+.js +2 -1
  20. package/src/scripts/Components/Drawer.js +60 -0
  21. package/src/scripts/Components/Popover.js +65 -0
  22. package/src/scripts/Layout/+.js +0 -1
  23. package/src/scripts/Layout/Header.js +14 -24
  24. package/src/scripts/Libraries/+.js +4 -8
  25. package/src/scripts/Libraries/CookieConsent.js +65 -52
  26. package/src/scripts/Libraries/Dialog.js +19 -36
  27. package/src/scripts/Libraries/Form.js +5 -25
  28. package/src/scripts/Libraries/Naja.js +22 -20
  29. package/src/scripts/Libraries/ReCaptcha.js +8 -30
  30. package/src/scripts/Libraries/Reveal.js +32 -0
  31. package/src/scripts/Libraries/Ripple.js +6 -22
  32. package/src/scripts/Libraries/Stimulus.js +49 -5
  33. package/src/scripts/Libraries/Swup.js +45 -32
  34. package/src/scripts/Libraries/Toaster.js +55 -0
  35. package/src/scripts/Ui/+.js +3 -3
  36. package/src/scripts/Ui/Check.js +8 -0
  37. package/src/scripts/Ui/Control.js +194 -0
  38. package/src/scripts/Ui/ControlSelect.js +25 -0
  39. package/src/scripts/Ui/Text.js +9 -11
  40. package/src/scripts/Utils/+.js +3 -3
  41. package/src/scripts/Utils/cdn.js +1 -3
  42. package/src/scripts/Utils/initAfter.js +11 -0
  43. package/src/scripts/Utils/naja.js +41 -0
  44. package/src/scripts/Utils/utilities.js +8 -0
  45. package/src/scripts/main.js +2 -1
  46. package/src/styles/Components/+.css +4 -3
  47. package/src/styles/Components/Dialog/+.css +2 -0
  48. package/src/styles/Components/Dialog/Content.css +2 -0
  49. package/src/styles/Components/Dialog/CookieConsent.css +17 -0
  50. package/src/styles/Components/Dialog/Default.css +2 -43
  51. package/src/styles/Components/Drawer.css +18 -0
  52. package/src/styles/Components/Field.css +1 -0
  53. package/src/styles/Components/Popover.css +1 -0
  54. package/src/styles/Components/Toaster.css +2 -0
  55. package/src/styles/Layout/Header.css +9 -45
  56. package/src/styles/Layout/Main.css +11 -75
  57. package/src/styles/Layout/Nav.css +13 -33
  58. package/src/styles/Libraries/+.css +1 -7
  59. package/src/styles/Libraries/Datepicker.css +38 -229
  60. package/src/styles/Libraries/Pickr.css +13 -0
  61. package/src/styles/Ui/+.css +5 -5
  62. package/src/styles/Ui/Badge.css +8 -82
  63. package/src/styles/Ui/Btn.css +14 -226
  64. package/src/styles/Ui/Check.css +1 -0
  65. package/src/styles/Ui/Control.css +57 -0
  66. package/src/styles/Ui/ControlSelect.css +57 -0
  67. package/src/styles/Ui/Group.css +1 -0
  68. package/src/styles/Ui/Heading.css +4 -22
  69. package/src/styles/Ui/Image.css +1 -17
  70. package/src/styles/Ui/Info.css +1 -0
  71. package/src/styles/Ui/Label.css +1 -14
  72. package/src/styles/Ui/Link.css +6 -39
  73. package/src/styles/Ui/Notice.css +5 -43
  74. package/src/styles/Ui/Progress.css +1 -56
  75. package/src/styles/Ui/Switch.css +1 -70
  76. package/src/styles/Ui/Text.css +1 -254
  77. package/src/styles/Ui/Title.css +4 -15
  78. package/src/styles/Utils/+.css +6 -10
  79. package/src/styles/Utils/breakpoints.css +1 -9
  80. package/src/styles/Utils/config.css +16 -0
  81. package/src/styles/Utils/default.css +15 -26
  82. package/src/styles/Utils/keyframes.css +1 -182
  83. package/src/styles/Utils/theme/+.css +1 -1
  84. package/src/styles/Utils/theme/main.css +28 -23
  85. package/src/styles/Utils/utilities.css +42 -0
  86. package/src/styles/main.css +16 -14
  87. package/src/styles/tinymce.css +34 -0
  88. package/src/templates/Components/Dialog/Basic.latte +24 -0
  89. package/src/templates/Components/Dialog/CookieConsent.latte +27 -0
  90. package/src/templates/Components/Form/CookieConsent.latte +47 -0
  91. package/src/templates/Layout/Header.latte +38 -0
  92. package/src/templates/Layout/Main.latte +73 -0
  93. package/src/templates/Sections/CookieConsent.latte +69 -0
  94. package/src/templates/Sections/Site.latte +213 -0
  95. package/src/templates/Sections/Text.latte +64 -0
  96. package/src/templates/Sections/Ui/Docs/@intro.html +16 -65
  97. package/src/templates/Sections/Ui/Docs/@nav.html +68 -129
  98. package/src/templates/Sections/Ui/Docs/@styles.html +3 -7
  99. package/src/templates/Sections/Ui/Docs/Default.latte +979 -0
  100. package/src/templates/Sections/Ui/Icons.html +11 -9
  101. package/src/templates/Sections/Ui/Intro.html +62 -79
  102. package/src/templates/Sections/Ui.latte +8 -0
  103. package/src/templates/Ui/+.latte +5 -0
  104. package/src/templates/Ui/Check.latte +7 -0
  105. package/src/templates/Ui/Control.latte +9 -0
  106. package/src/templates/Ui/ControlDate.latte +14 -0
  107. package/src/templates/Ui/ControlSelect.latte +9 -0
  108. package/src/templates/Ui/ControlTime.latte +14 -0
  109. package/src/templates/Utils/sections.latte +3 -0
  110. package/src/views/dialog/basic.json.latte +5 -0
  111. package/src/views/email/email.latte +6 -0
  112. package/src/views/email/email.test.latte +6 -0
  113. package/src/views/gdpr.json +6 -4
  114. package/src/views/index.json +1 -1
  115. package/src/views/popover/info.json.latte +15 -0
  116. package/src/views/site.json +11 -0
  117. package/src/views/ui-icons.json +1 -1
  118. package/src/views/ui.json +1 -1
  119. package/vite.config.js +17 -16
  120. package/src/emails/styles/email.css +0 -77
  121. package/src/emails/templates/Content.twig +0 -16
  122. package/src/emails/templates/Header.twig +0 -14
  123. package/src/scripts/Components/CookieConsent.js +0 -83
  124. package/src/scripts/Layout/Main.js +0 -47
  125. package/src/scripts/Libraries/Anchor.js +0 -35
  126. package/src/scripts/Libraries/Drawer.js +0 -45
  127. package/src/scripts/Libraries/NativeSlider.js +0 -138
  128. package/src/scripts/Libraries/Script.js +0 -19
  129. package/src/scripts/Libraries/Tabs.js +0 -16
  130. package/src/scripts/Libraries/Tippy.js +0 -120
  131. package/src/scripts/Ui/Checkbox.js +0 -10
  132. package/src/scripts/Ui/Input.js +0 -259
  133. package/src/scripts/Ui/Select.js +0 -53
  134. package/src/scripts/Utils/Functions/+.js +0 -6
  135. package/src/scripts/Utils/Functions/checkValidity.js +0 -44
  136. package/src/scripts/Utils/Functions/dataValue.js +0 -52
  137. package/src/scripts/Utils/Functions/importScript.js +0 -17
  138. package/src/scripts/Utils/Functions/importStyle.js +0 -18
  139. package/src/scripts/Utils/Functions/loadStimulus.js +0 -42
  140. package/src/scripts/Utils/Functions/replaceTag.js +0 -12
  141. package/src/scripts/Utils/global.js +0 -15
  142. package/src/styles/Components/CookieConsent.css +0 -71
  143. package/src/styles/Components/Dropdown/+.css +0 -1
  144. package/src/styles/Components/Dropdown/Default.css +0 -5
  145. package/src/styles/Components/Form/+.css +0 -1
  146. package/src/styles/Components/Form/CookieConsent.css +0 -31
  147. package/src/styles/Libraries/Dialog.css +0 -35
  148. package/src/styles/Libraries/Drawer.css +0 -70
  149. package/src/styles/Libraries/Hint.css +0 -201
  150. package/src/styles/Libraries/NativeSlider.css +0 -60
  151. package/src/styles/Libraries/Ripple.css +0 -16
  152. package/src/styles/Libraries/Tabs.css +0 -19
  153. package/src/styles/Libraries/Tippy.css +0 -87
  154. package/src/styles/Ui/Checkbox.css +0 -150
  155. package/src/styles/Ui/Icon.css +0 -33
  156. package/src/styles/Ui/Input.css +0 -467
  157. package/src/styles/Ui/Radio.css +0 -4
  158. package/src/styles/Ui/Select.css +0 -137
  159. package/src/styles/Utils/icons.css +0 -9
  160. package/src/styles/Utils/normalize.css +0 -223
  161. package/src/styles/Utils/tailwind/+.css +0 -3
  162. package/src/styles/Utils/tailwind/base.css +0 -3
  163. package/src/styles/Utils/tailwind/gutters.css +0 -346
  164. package/src/styles/Utils/tailwind/utilities.css +0 -48
  165. package/src/styles/Utils/vars.css +0 -91
  166. package/src/styles/Utils/vendor.css +0 -2
  167. package/src/templates/Components/CookieConsent.twig +0 -30
  168. package/src/templates/Components/Dialogs/Basic.twig +0 -22
  169. package/src/templates/Layout/Header.twig +0 -42
  170. package/src/templates/Layout/Main.twig +0 -49
  171. package/src/templates/Sections/Gdpr.twig +0 -64
  172. package/src/templates/Sections/Ui/Docs/Default.twig +0 -1600
  173. package/src/templates/Sections/Ui.twig +0 -8
  174. package/src/templates/Utils/sections.twig +0 -3
  175. package/src/views/dialog/basic.json.twig +0 -3
  176. package/src/views/dropdown/tippy.json.twig +0 -16
  177. package/src/views/email/email.twig +0 -6
  178. /package/src/{styles/Utils/print.css → emails/styles/main/Base/font.css} +0 -0
  179. /package/src/{templates/Components/Items → emails/templates}/.gitkeep +0 -0
  180. /package/src/templates/Layout/{Footer.twig → Footer.latte} +0 -0
@@ -1,83 +0,0 @@
1
- import { LibStimulus, Controller } from '../Libraries/Stimulus.js'
2
- import LibCookieConsent from '../Libraries/CookieConsent.js'
3
-
4
- LibStimulus.register('c-cookieconsent', class extends Controller {
5
- connect() {
6
- const selector = this.element
7
-
8
- if (document.querySelector('.c-form-cookieconsent') !== null) {
9
- return
10
- }
11
-
12
- if (LibCookieConsent.getItem('lib-cookieconsent') === null || parseInt(LibCookieConsent.getItem('lib-cookieconsent-expire')) < Date.now()) {
13
- setTimeout(() => {
14
- selector._addDataValue('state', 'active')
15
- selector.classList.add('is-animate')
16
- }, 1500)
17
- }
18
-
19
- selector.querySelector('[data-lib-cookieconsent-approve]').addEventListener('click', () => {
20
- this.hide(['performance', 'marketing'])
21
- })
22
-
23
- selector.querySelector('[data-lib-cookieconsent-decline]').addEventListener('click', () => {
24
- this.hide([])
25
- })
26
- }
27
-
28
- hide(type) {
29
- LibCookieConsent.set(type)
30
- this.element.classList.remove('is-animate')
31
-
32
- setTimeout(() => {
33
- this.element._removeDataValue('state', 'active')
34
- this.element.remove()
35
- }, 500)
36
- }
37
- })
38
- LibStimulus.register('c-form-cookieconsent', class extends Controller {
39
- connect() {
40
- const selector = this.element
41
- const type = LibCookieConsent.getItem('lib-cookieconsent')
42
- const modal = document.querySelector('.c-cookieconsent')
43
-
44
- if (modal) {
45
- modal.classList.remove('is-animate')
46
- modal._removeDataValue('state', 'active')
47
- }
48
-
49
- if (type !== null) {
50
- this.element.querySelectorAll('input:not([disabled])').forEach(input => {
51
- input.checked = false
52
- })
53
-
54
- JSON.parse(type).forEach(type => {
55
- if (selector.querySelector(`input[value="${type}"]`) !== null) {
56
- selector.querySelector(`input[value="${type}"]`).checked = true
57
- }
58
- })
59
- }
60
-
61
- selector.addEventListener('submit', e => {
62
- e.preventDefault()
63
-
64
- const type = []
65
-
66
- this.element.querySelectorAll('input:not([disabled])').forEach(input => {
67
- input.checked && type.push(input.value)
68
- })
69
-
70
- LibCookieConsent.set(type)
71
- location.reload()
72
- })
73
- }
74
-
75
- disconnect() {
76
- const modal = document.querySelector('.c-cookieconsent')
77
-
78
- if (modal && (LibCookieConsent.getItem('lib-cookieconsent') === null || parseInt(LibCookieConsent.getItem('lib-cookieconsent-expire')) < Date.now())) {
79
- modal._addDataValue('state', 'active')
80
- modal.classList.add('is-animate')
81
- }
82
- }
83
- })
@@ -1,47 +0,0 @@
1
- import { showRipple } from 'winduum/src/libraries/ripple.js'
2
- import { LibStimulus, Controller } from '../Libraries/Stimulus.js'
3
- import LibAnchor from '../Libraries/Anchor.js'
4
- import LibTippy from '../Libraries/Tippy.js'
5
- import LibTabs from '../Libraries/Tabs.js'
6
- import LibNativeSlider from '../Libraries/NativeSlider.js'
7
-
8
- LibStimulus.register('lib', class extends Controller {
9
- ripple(e) {
10
- showRipple(e)
11
- }
12
-
13
- anchor({ currentTarget }) {
14
- arguments[0].preventDefault()
15
- LibAnchor.action(currentTarget)
16
- }
17
-
18
- darkMode() {
19
- if (document.documentElement.classList.contains('dark')) {
20
- localStorage.theme = 'light'
21
- document.documentElement.classList.remove('dark')
22
- } else {
23
- localStorage.theme = 'dark'
24
- document.documentElement.classList.add('dark')
25
- }
26
- }
27
- })
28
-
29
- LibStimulus.register('lib-tabs', class extends Controller {
30
- connect() {
31
- LibTabs(this.element)
32
- }
33
- })
34
-
35
- LibStimulus.register('lib-ns', class extends Controller {
36
- connect() {
37
- LibNativeSlider(this.element.querySelector('[data-lib-ns]'), this.element)
38
- }
39
- })
40
-
41
- LibStimulus.register('lib-tippy', class extends Controller {
42
- connect() {
43
- const attributes = this.element.getAttribute('data-lib-tippy')
44
-
45
- new LibTippy(this.element, attributes !== null ? attributes.replace(/\s/g, '').split(',') : undefined)
46
- }
47
- })
@@ -1,35 +0,0 @@
1
- const LibAnchor = {
2
- animation: (element) => {
3
- const offset = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('scroll-padding-top'))
4
-
5
- document.documentElement.scroll({ top: element.offsetTop - offset, behavior: 'smooth' })
6
- },
7
- action: (element) => {
8
- const href = element.href ? element.getAttribute('href') : element.getAttribute('data-action-href')
9
- const data = element.dataset.libAnhor ? element.dataset.libAnhor : ''
10
- const target = document.querySelector(`[id="${href.replace('#', '')}"]`)
11
-
12
- if (target !== null) {
13
- if (!(data.includes('mobile') && window.innerWidth > 960)) {
14
- LibAnchor.animation(target)
15
- }
16
-
17
- if (!data.includes('silent')) {
18
- window.location.hash = target.id
19
- }
20
- }
21
- },
22
- init: () => {
23
- const selector = document.querySelectorAll('[id]')
24
-
25
- if (selector[0] !== null) {
26
- selector.forEach(element => {
27
- if (window.location.hash && element.getAttribute('id') === window.location.hash.replace('#', '')) {
28
- LibAnchor.animation(element)
29
- }
30
- })
31
- }
32
- }
33
- }
34
-
35
- export default LibAnchor
@@ -1,45 +0,0 @@
1
- import { LibStimulus, Controller } from './Stimulus.js'
2
-
3
- LibStimulus.register('lib-drawer', class LibDrawer extends Controller {
4
- static targets = ['nav']
5
-
6
- init() {
7
- setTimeout(() => this.navTarget.classList.add('is-transition'), 50)
8
- this.navTarget.addEventListener('click', ({ target }) => {
9
- if (target === this.navTarget) {
10
- this.hide()
11
- }
12
- })
13
- }
14
-
15
- show() {
16
- this.navTarget.scrollLeft = 0
17
- this.navTarget.style.setProperty('--lib-drawer-opacity', '1')
18
- this.navTarget.classList.add('is-opacity')
19
- this.navTarget._addDataValue('state', 'active')
20
- this.navTarget.setAttribute('aria-hidden', 'false')
21
- this.navTarget.removeAttribute('inert')
22
- document.documentElement.classList.add('overflow-hidden')
23
- }
24
-
25
- hide() {
26
- this.navTarget.setAttribute('inert', '')
27
- this.navTarget.setAttribute('aria-hidden', 'true')
28
- this.navTarget._removeDataValue('state', 'active')
29
- this.navTarget.classList.add('is-opacity')
30
- this.navTarget.style.setProperty('--lib-drawer-opacity', '0')
31
- document.documentElement.classList.remove('overflow-hidden')
32
- }
33
-
34
- scroll({ target }) {
35
- if (target.scrollLeft > 1) {
36
- this.navTarget.classList.remove('is-opacity')
37
- this.navTarget.style.setProperty('--lib-drawer-opacity', `${Math.abs((target.scrollLeft / this.navTarget.children[0].clientWidth) - 1)}`)
38
- }
39
-
40
- if (target.scrollLeft === this.navTarget.children[0].clientWidth) {
41
- this.navTarget._removeDataValue('state', 'active')
42
- document.documentElement.classList.remove('overflow-hidden')
43
- }
44
- }
45
- })
@@ -1,138 +0,0 @@
1
- export default function LibNativeSlider(selector, parent) {
2
- const self = {
3
- behavior: 'auto',
4
- ref: {
5
- nav: parent.querySelector('[data-lib-ns-nav]'),
6
- select: parent.querySelectorAll('[data-lib-ns-nav-item]'),
7
- progress: parent.querySelector('[data-lib-ns-progress]'),
8
- counterMin: parent.querySelector('[data-lib-ns-counter="min"]'),
9
- counterMax: parent.querySelector('[data-lib-ns-counter="max"]'),
10
- prev: parent.querySelector('[data-lib-ns-prev]'),
11
- next: parent.querySelector('[data-lib-ns-next]')
12
- }
13
- }
14
-
15
- if (!selector.classList.contains('is-fade')) {
16
- self.behavior = 'smooth'
17
-
18
- if (!document.documentElement.classList.contains('safari')) {
19
- const grabbing = () => {
20
- self.isDown = false
21
- self.paused = false
22
- selector.classList.remove('is-grabbing')
23
- selector.scrollLeft = selector.scrollLeft - 1
24
- }
25
-
26
- selector.addEventListener('mouseleave', grabbing)
27
-
28
- selector.addEventListener('mouseup', grabbing)
29
-
30
- selector.addEventListener('mousedown', e => {
31
- self.isDown = true
32
- self.startX = e.pageX - selector.offsetLeft
33
- self.scrollLeft = selector.scrollLeft
34
- self.paused = true
35
- })
36
-
37
- selector.addEventListener('mousemove', e => {
38
- if (!self.isDown) return
39
- e.preventDefault()
40
- const x = e.pageX - selector.offsetLeft
41
- const walk = (x - self.startX) * 1.25
42
- selector.classList.add('is-grabbing')
43
- selector.scrollLeft = self.scrollLeft - walk
44
-
45
- selector.ondragstart = dragEvent => {
46
- dragEvent.preventDefault()
47
- }
48
- })
49
- }
50
- }
51
-
52
- self.counterMax = parseInt(((selector.scrollWidth - selector.clientWidth) / selector.children[0].clientWidth + 1).toFixed(0))
53
-
54
- if (self.ref.counterMax !== null) {
55
- self.ref.counterMax.textContent = self.counterMax
56
- }
57
-
58
- if (self.ref.nav !== null) {
59
- self.ref.nav.insertAdjacentHTML('beforeend', [...Array(self.counterMax)].map((x, i) => `<div data-state="${i === 0 && 'active'}" aria-label="${i + 1}" aria-current="step" data-lib-ns-nav-item="${i}"></div>`).join(''))
60
- self.ref.select = parent.querySelectorAll('[data-lib-ns-nav-item]')
61
- }
62
-
63
- if (typeof self.ref.select[0] !== 'undefined') {
64
- self.ref.select.forEach(elm => {
65
- elm.addEventListener('click', () => {
66
- if (!elm._hasDataValue('state', 'active')) {
67
- const position = selector.scrollLeft / selector.children[0].clientWidth
68
- const selected = elm.dataset.libNsNavItem
69
-
70
- if (position - selected <= 0) {
71
- selector.scroll({ left: selector.scrollLeft + selector.children[0].clientWidth * (selected - position), behavior: self.behavior })
72
- } else {
73
- selector.scroll({ left: selector.scrollLeft - selector.children[0].clientWidth * (position - selected), behavior: self.behavior })
74
- }
75
- }
76
- })
77
- })
78
- }
79
-
80
- selector.addEventListener('scroll', () => {
81
- if (self.ref.progress !== null) {
82
- self.ref.progress.value = ((selector.scrollLeft + selector.clientWidth) / selector.scrollWidth * 100).toFixed(2)
83
- }
84
-
85
- const activeSlide = parseInt(((selector.scrollLeft / selector.children[0].clientWidth) + 1).toFixed(0))
86
-
87
- if (self.ref.counterMin !== null) {
88
- self.ref.counterMin.textContent = activeSlide
89
- }
90
-
91
- if (typeof self.ref.select[0] !== 'undefined') {
92
- self.ref.select.forEach(elm => elm._removeDataValue('state', 'active'))
93
-
94
- self.ref.select[activeSlide - 1]._addDataValue('state', 'active')
95
- }
96
-
97
- if (Math.floor(selector.scrollLeft / selector.children[0].clientWidth) === selector.scrollLeft / selector.children[0].clientWidth) {
98
- [...selector.children].forEach(elm => {
99
- elm._removeDataValue('state', 'active')
100
-
101
- if (selector.scrollLeft === elm.offsetLeft - elm.parentNode.offsetLeft) {
102
- elm._addDataValue('state', 'active')
103
- }
104
- })
105
- }
106
- }, { passive: true })
107
-
108
- if (self.ref.progress !== null) {
109
- self.ref.progress.addEventListener('click', e => {
110
- selector.scrollLeft = (selector.scrollWidth / 100) * (e.clientX - e.target.offsetLeft) / e.target.clientWidth * 100
111
- })
112
- }
113
-
114
- if (self.ref.prev !== null && self.ref.next !== null) {
115
- self.ref.prev.addEventListener('click', () => selector.scroll({ left: selector.scrollLeft - selector.children[0].clientWidth, behavior: self.behavior }))
116
-
117
- self.ref.next.addEventListener('click', () => selector.scroll({ left: selector.scrollLeft + selector.children[0].clientWidth, behavior: self.behavior }))
118
- }
119
-
120
- [self.ref.prev, self.ref.next, ...self.ref.select, self.ref.progress].forEach(elm => {
121
- if (typeof elm !== 'undefined' && elm !== null) {
122
- elm.addEventListener('mouseenter', () => (self.paused = true))
123
- elm.addEventListener('mouseleave', () => (self.paused = false))
124
- }
125
- })
126
-
127
- if (!isNaN(parseInt(selector.getAttribute('data-lib-ns')))) {
128
- setInterval(() => {
129
- if (!self.paused) {
130
- if (selector.scrollLeft < selector.children[0].clientWidth * (selector.children.length - 1)) {
131
- selector.scroll({ left: selector.scrollLeft + selector.children[0].clientWidth, behavior: self.behavior })
132
- } else {
133
- selector.scroll({ left: 0, behavior: self.behavior })
134
- }
135
- }
136
- }, parseInt(selector.getAttribute('data-lib-ns')))
137
- }
138
- }
@@ -1,19 +0,0 @@
1
- import { LibStimulus, Controller } from './Stimulus.js'
2
-
3
- LibStimulus.register('lib-script', class extends Controller {
4
- connect() {
5
- const element = this.element
6
- const script = document.createElement('script')
7
-
8
- ;[...element.attributes].forEach(attribute => {
9
- if (attribute.specified && !attribute.name.includes('type') && !attribute.name.includes('data-controller')) {
10
- script.setAttribute(attribute.name, attribute.value)
11
- }
12
- })
13
-
14
- script.innerHTML = element.innerHTML
15
-
16
- element.parentElement.appendChild(script)
17
- element.remove()
18
- }
19
- })
@@ -1,16 +0,0 @@
1
- export default function LibTabs(element) {
2
- element.querySelector('[data-lib-tabs-nav]').querySelectorAll('[data-lib-tabs-item="nav"]').forEach((selector, index) => {
3
- selector.addEventListener('click', () => {
4
- arguments[0].preventDefault()
5
-
6
- selector.closest('[data-lib-tabs-nav]').querySelectorAll('[data-lib-tabs-item="nav"]').forEach(element => element._removeDataValue('state', 'active'))
7
- selector._addDataValue('state', 'active')
8
-
9
- ;[...element.querySelector('[data-lib-tabs-area]').children].forEach(element => {
10
- element._removeDataValue('state', 'active')
11
- })
12
-
13
- element.querySelector('[data-lib-tabs-area]').children[index]._addDataValue('state', 'active')
14
- })
15
- })
16
- }
@@ -1,120 +0,0 @@
1
- import { loadStimulus, importStyle } from '../Utils/Functions/+.js'
2
- import cdn from '../Utils/cdn.js'
3
-
4
- export default class LibTippy {
5
- async init(element, options, template) {
6
- const tippy = (await import('tippy.js')).default
7
- const { roundArrow } = await import('tippy.js')
8
-
9
- await importStyle(cdn.tippy)
10
-
11
- if (typeof element._tippy !== 'undefined') {
12
- return false
13
- }
14
-
15
- if (this.type.includes('dropdown')) {
16
- this.options.placement = 'bottom-end'
17
- this.options.arrow = false
18
- this.options.maxWidth = 'none'
19
- }
20
-
21
- if (this.type.includes('arrow')) {
22
- options.arrow = roundArrow
23
- }
24
-
25
- if (!template.startsWith('/')) {
26
- if (template !== '') {
27
- options.content = document.querySelector('#' + template).innerHTML
28
- } else {
29
- options.content = `
30
- <div class="c-dropdown">
31
- <div class="wrp_dropdown_body">
32
- ${element.getAttribute('aria-label')}
33
- </div>
34
- </div>
35
- `
36
- }
37
- }
38
-
39
- if (typeof element.dataset.libTippySlot !== 'undefined') {
40
- for (const [key, value] of Object.entries(JSON.parse(element.dataset.libTippySlot))) {
41
- options.content = options.content.replaceAll(`{${key}}`, value).replaceAll(`%7B${key}%7B`, value)
42
- }
43
- }
44
-
45
- tippy(element, options)
46
- }
47
-
48
- constructor(element, attributes = ['tooltip', '']) {
49
- const self = this
50
-
51
- this.options = {
52
- content: '',
53
- placement: 'bottom',
54
- trigger: 'mouseenter focus',
55
- interactive: true,
56
- appendTo: 'parent',
57
- arrow: false,
58
- theme: 'light-border',
59
- animation: 'scale',
60
- inertia: true,
61
- allowHTML: true,
62
- onShow: (instance) => {
63
- let name = this.template
64
-
65
- if (this.type.includes('-full')) {
66
- instance.popper.classList.add('is-full')
67
- document.documentElement.classList.add('m:is-body-overlay')
68
- }
69
-
70
- if (typeof name === 'undefined') {
71
- name = this.type
72
- }
73
-
74
- instance.popper.querySelector('.tippy-box').setAttribute('data-name', name)
75
-
76
- loadStimulus(instance.popper.querySelector('.tippy-content'))
77
- },
78
- onHide: () => {
79
- if (this.type.includes('-full')) {
80
- setTimeout(() => document.documentElement.classList.remove('m:is-body-overlay'), 50)
81
- }
82
- }
83
- }
84
-
85
- this.type = attributes[0]
86
- this.template = attributes[1]
87
-
88
- if (this.type.includes('dropdown')) {
89
- this.options.trigger = 'click'
90
- }
91
-
92
- if (typeof element.dataset.tippyTrigger !== 'undefined') {
93
- this.options.trigger = element.dataset.tippyTrigger
94
- }
95
-
96
- this.options.showOnCreate = true
97
-
98
- this.options.trigger !== 'manual' && this.options.trigger.split(' ').forEach(event => {
99
- element.addEventListener(event, async function e() {
100
- if (self.template.startsWith('/') && self.options.content === '') {
101
- element.style.cursor = 'wait'
102
- element._addDataValue('state', 'loading')
103
-
104
- fetch(self.template, { headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then(response => {
105
- return response.json()
106
- }).then(async(data) => {
107
- self.options.content = data.content
108
- element.style.cursor = ''
109
- element._removeDataValue('state', 'loading')
110
- await self.init(element, self.options, self.template)
111
- element.removeEventListener(event, e)
112
- })
113
- } else {
114
- await self.init(element, self.options, self.template)
115
- element.removeEventListener(event, e)
116
- }
117
- })
118
- })
119
- }
120
- }
@@ -1,10 +0,0 @@
1
- import { LibStimulus, Controller } from '../Libraries/Stimulus.js'
2
- import { checkValidity } from '../Utils/Functions/+.js'
3
-
4
- ['ui-checkbox', 'ui-radio'].forEach(identifier => LibStimulus.register(identifier, class extends Controller {
5
- connect() {
6
- const input = this.element.querySelector('input:not([type="hidden"])')
7
-
8
- input.addEventListener('change', () => checkValidity(this.element))
9
- }
10
- }))