nodality 1.0.31 → 1.0.33

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 (205) hide show
  1. package/dist/animator.cjs.js.LICENSE.txt +1 -1
  2. package/dist/animator.esm.js.LICENSE.txt +1 -1
  3. package/dist/appleanim.cjs.js.LICENSE.txt +1 -1
  4. package/dist/appleanim.esm.js.LICENSE.txt +1 -1
  5. package/dist/audionew.cjs.js.LICENSE.txt +1 -1
  6. package/dist/audionew.esm.js.LICENSE.txt +1 -1
  7. package/dist/base.cjs.js.LICENSE.txt +1 -1
  8. package/dist/base.esm.js.LICENSE.txt +1 -1
  9. package/dist/betaDesktopBar.esm.js.LICENSE.txt +1 -1
  10. package/dist/betaMobileBar.esm.js.LICENSE.txt +1 -1
  11. package/dist/bundle.umd.js +1 -1
  12. package/dist/bundle.umd.js.LICENSE.txt +1 -1
  13. package/dist/button.cjs.js +1 -1
  14. package/dist/button.cjs.js.LICENSE.txt +1 -1
  15. package/dist/button.esm.js +1 -1
  16. package/dist/button.esm.js.LICENSE.txt +1 -1
  17. package/dist/cardGetter.cjs.js.LICENSE.txt +1 -1
  18. package/dist/cardGetter.esm.js.LICENSE.txt +1 -1
  19. package/dist/center.cjs.js.LICENSE.txt +1 -1
  20. package/dist/center.esm.js.LICENSE.txt +1 -1
  21. package/dist/checkbox.cjs.js.LICENSE.txt +1 -1
  22. package/dist/checkbox.esm.js.LICENSE.txt +1 -1
  23. package/dist/code.cjs.js.LICENSE.txt +1 -1
  24. package/dist/code.esm.js.LICENSE.txt +1 -1
  25. package/dist/container.cjs.js.LICENSE.txt +1 -1
  26. package/dist/container.esm.js.LICENSE.txt +1 -1
  27. package/dist/datalist.cjs.js.LICENSE.txt +1 -1
  28. package/dist/datalist.esm.js.LICENSE.txt +1 -1
  29. package/dist/designer.cjs.js +1 -1
  30. package/dist/designer.cjs.js.LICENSE.txt +1 -1
  31. package/dist/designer.esm.js +1 -1
  32. package/dist/designer.esm.js.LICENSE.txt +1 -1
  33. package/dist/dropdown.cjs.js.LICENSE.txt +1 -1
  34. package/dist/dropdown.esm.js.LICENSE.txt +1 -1
  35. package/dist/elementMapper.cjs.js +1 -1
  36. package/dist/elementMapper.cjs.js.LICENSE.txt +1 -1
  37. package/dist/elementMapper.esm.js +1 -1
  38. package/dist/elementMapper.esm.js.LICENSE.txt +1 -1
  39. package/dist/finalresult.esm.js +1 -1
  40. package/dist/finalresult.esm.js.LICENSE.txt +1 -1
  41. package/dist/flexCard.cjs.js.LICENSE.txt +1 -1
  42. package/dist/flexCard.esm.js.LICENSE.txt +1 -1
  43. package/dist/flexGrid.cjs.js.LICENSE.txt +1 -1
  44. package/dist/flexGrid.esm.js.LICENSE.txt +1 -1
  45. package/dist/flexRow.cjs.js.LICENSE.txt +1 -1
  46. package/dist/flexRow.esm.js.LICENSE.txt +1 -1
  47. package/dist/floatingInput.cjs.js.LICENSE.txt +1 -1
  48. package/dist/floatingInput.esm.js.LICENSE.txt +1 -1
  49. package/dist/free.cjs.js.LICENSE.txt +1 -1
  50. package/dist/free.esm.js.LICENSE.txt +1 -1
  51. package/dist/horizontalScroller.esm.js.LICENSE.txt +1 -1
  52. package/dist/image.cjs.js.LICENSE.txt +1 -1
  53. package/dist/image.esm.js.LICENSE.txt +1 -1
  54. package/dist/imagePicker.cjs.js.LICENSE.txt +1 -1
  55. package/dist/imagePicker.esm.js.LICENSE.txt +1 -1
  56. package/dist/index.cjs.js +1 -1
  57. package/dist/index.cjs.js.LICENSE.txt +1 -1
  58. package/dist/index.esm.js +1 -1
  59. package/dist/index.esm.js.LICENSE.txt +1 -1
  60. package/dist/link.cjs.js.LICENSE.txt +1 -1
  61. package/dist/link.esm.js.LICENSE.txt +1 -1
  62. package/dist/linkGetter.cjs.js.LICENSE.txt +1 -1
  63. package/dist/linkGetter.esm.js.LICENSE.txt +1 -1
  64. package/dist/metaAdder.cjs.js.LICENSE.txt +1 -1
  65. package/dist/metaAdder.esm.js.LICENSE.txt +1 -1
  66. package/dist/modal2025.cjs.js.LICENSE.txt +1 -1
  67. package/dist/modal2025.esm.js.LICENSE.txt +1 -1
  68. package/dist/multiswitchers.esm.js.LICENSE.txt +1 -1
  69. package/dist/newNavBar.cjs.js.LICENSE.txt +1 -1
  70. package/dist/newNavBar.esm.js.LICENSE.txt +1 -1
  71. package/dist/picker.cjs.js.LICENSE.txt +1 -1
  72. package/dist/picker.esm.js.LICENSE.txt +1 -1
  73. package/dist/progress.cjs.js.LICENSE.txt +1 -1
  74. package/dist/progress.esm.js.LICENSE.txt +1 -1
  75. package/dist/radio.cjs.js.LICENSE.txt +1 -1
  76. package/dist/radio.esm.js.LICENSE.txt +1 -1
  77. package/dist/range.cjs.js.LICENSE.txt +1 -1
  78. package/dist/range.esm.js.LICENSE.txt +1 -1
  79. package/dist/scrollvideo.cjs.js.LICENSE.txt +1 -1
  80. package/dist/scrollvideo.esm.js.LICENSE.txt +1 -1
  81. package/dist/sideBar.cjs.js.LICENSE.txt +1 -1
  82. package/dist/sideBar.esm.js.LICENSE.txt +1 -1
  83. package/dist/sideNavBar.cjs.js.LICENSE.txt +1 -1
  84. package/dist/sideNavBar.esm.js.LICENSE.txt +1 -1
  85. package/dist/simpleBar.cjs.js.LICENSE.txt +1 -1
  86. package/dist/simpleBar.esm.js.LICENSE.txt +1 -1
  87. package/dist/slider2025.cjs.js +1 -1
  88. package/dist/slider2025.cjs.js.LICENSE.txt +1 -1
  89. package/dist/slider2025.esm.js +1 -1
  90. package/dist/slider2025.esm.js.LICENSE.txt +1 -1
  91. package/dist/spacer.cjs.js.LICENSE.txt +1 -1
  92. package/dist/stack.cjs.js.LICENSE.txt +1 -1
  93. package/dist/stack.esm.js.LICENSE.txt +1 -1
  94. package/dist/stacker.cjs.js.LICENSE.txt +1 -1
  95. package/dist/stacker.esm.js.LICENSE.txt +1 -1
  96. package/dist/table.cjs.js.LICENSE.txt +1 -1
  97. package/dist/table.esm.js.LICENSE.txt +1 -1
  98. package/dist/text.cjs.js.LICENSE.txt +1 -1
  99. package/dist/text.esm.js.LICENSE.txt +1 -1
  100. package/dist/textField.cjs.js.LICENSE.txt +1 -1
  101. package/dist/textField.esm.js.LICENSE.txt +1 -1
  102. package/dist/transformanim.cjs.js.LICENSE.txt +1 -1
  103. package/dist/transformanim.esm.js.LICENSE.txt +1 -1
  104. package/dist/ulist.cjs.js.LICENSE.txt +1 -1
  105. package/dist/ulist.esm.js.LICENSE.txt +1 -1
  106. package/dist/video.esm.js.LICENSE.txt +1 -1
  107. package/dist/wrap.cjs.js.LICENSE.txt +1 -1
  108. package/dist/wrap.esm.js.LICENSE.txt +1 -1
  109. package/dist/zoomCard.cjs.js.LICENSE.txt +1 -1
  110. package/dist/zoomCard.esm.js.LICENSE.txt +1 -1
  111. package/layout/DEPRECATED-PARAGRAPH.js +1 -1
  112. package/layout/animator.js +1 -1
  113. package/layout/audio.js +1 -1
  114. package/layout/audionew.js +1 -1
  115. package/layout/base-2.js +1 -1
  116. package/layout/base.js +1 -1
  117. package/layout/betaDesktopBar.js +1 -1
  118. package/layout/betaMobileBar.js +1 -1
  119. package/layout/box.js +1 -1
  120. package/layout/button.js +32 -8
  121. package/layout/cards.js +1 -1
  122. package/layout/center.js +1 -1
  123. package/layout/checkbox.js +1 -1
  124. package/layout/circle.js +1 -1
  125. package/layout/cleanRow.js +1 -1
  126. package/layout/code.js +1 -1
  127. package/layout/container.js +1 -1
  128. package/layout/custom.js +1 -1
  129. package/layout/divImage.js +1 -1
  130. package/layout/dropdown.js +1 -1
  131. package/layout/dropdown2025.js +1 -1
  132. package/layout/emptyElement.js +1 -1
  133. package/layout/externalStylesheet.js +1 -1
  134. package/layout/flexCard.js +1 -1
  135. package/layout/flexGrid.js +1 -1
  136. package/layout/flexrow.js +1 -1
  137. package/layout/footer.js +1 -1
  138. package/layout/formComponents/custom.js +1 -1
  139. package/layout/formComponents/dataList.js +1 -1
  140. package/layout/formComponents/floatingInput.js +1 -1
  141. package/layout/formComponents/form-all.js +1 -1
  142. package/layout/formComponents/form.js +1 -1
  143. package/layout/formComponents/imagePicker.js +1 -1
  144. package/layout/formComponents/picker.js +1 -1
  145. package/layout/formComponents/radio.js +1 -1
  146. package/layout/formComponents/radiogroup.js +1 -1
  147. package/layout/formComponents/range.js +1 -1
  148. package/layout/free.js +1 -1
  149. package/layout/grid-new.js +1 -1
  150. package/layout/grid.js +1 -1
  151. package/layout/gridSwitcher.js +1 -1
  152. package/layout/group.js +1 -1
  153. package/layout/header.js +1 -1
  154. package/layout/horizontalScroller.js +1 -1
  155. package/layout/image-old.js +1 -1
  156. package/layout/image.js +1 -1
  157. package/layout/index.js +1 -1
  158. package/layout/label.js +1 -1
  159. package/layout/link.js +1 -1
  160. package/layout/list-OLD.js +1 -1
  161. package/layout/list.js +1 -1
  162. package/layout/metaAdder.js +1 -1
  163. package/layout/modal2025.js +1 -1
  164. package/layout/modernwrap.js +1 -1
  165. package/layout/multiswitcher.js +1 -1
  166. package/layout/multiswitcherBeta.js +1 -1
  167. package/layout/navBar-OLD.js +1 -1
  168. package/layout/navBar.js +1 -1
  169. package/layout/navFactor/customDiv.js +1 -1
  170. package/layout/newFlatAdder.js +1 -1
  171. package/layout/newNavBar copy 2.js +1 -1
  172. package/layout/newNavBar copy.js +1 -1
  173. package/layout/newNavBar.js +1 -1
  174. package/layout/offsetContainer.js +1 -1
  175. package/layout/polygon.js +1 -1
  176. package/layout/progress.js +1 -1
  177. package/layout/row.js +1 -1
  178. package/layout/savedNewNavBar.js +1 -1
  179. package/layout/scrollvideo.js +1 -1
  180. package/layout/sideBar.js +1 -1
  181. package/layout/sideNavBar.js +1 -1
  182. package/layout/simpleBar.js +1 -1
  183. package/layout/slider2025.js +82 -42
  184. package/layout/spacer.js +1 -1
  185. package/layout/stack.js +1 -1
  186. package/layout/styler.js +1 -1
  187. package/layout/switcher.js +1 -1
  188. package/layout/table.js +1 -1
  189. package/layout/text.js +1 -1
  190. package/layout/textField.js +1 -1
  191. package/layout/ulist.js +1 -1
  192. package/layout/video.js +1 -1
  193. package/layout/withoutNew.js +1 -1
  194. package/layout/wrap.js +1 -1
  195. package/layout/zoomCard.js +1 -1
  196. package/lib/AppleAnim.js +1 -1
  197. package/lib/KeyframeAnimation.js +1 -1
  198. package/lib/Stacker.js +1 -1
  199. package/lib/TransformAnim.js +1 -1
  200. package/lib/cardGetter.js +1 -1
  201. package/lib/designer.js +3 -37
  202. package/lib/elementMapper.js +1 -1
  203. package/lib/linkGetter.js +1 -1
  204. package/lib/scrollvideo.js +1 -1
  205. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/free.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/grid.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/group.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/header.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/image.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/label.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/link.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/navBar.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/polygon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/row.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/sideBar.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,39 +1,42 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import {Animator} from "./animator.js";
8
- import {Button} from "./button.js";
7
+ import { Animator } from "./animator.js";
8
+ import { Button } from "./button.js";
9
9
 
10
10
  class Slider {
11
- constructor(elements, buttons) {
12
- this.container = document.createElement("div"); // root element
11
+ constructor(elements, buttons, options = {}) {
12
+ this.container = document.createElement("div");
13
13
  this.container.style.width = "100%";
14
14
  this.container.style.margin = "20px auto";
15
15
  this.container.style.textAlign = "center";
16
16
 
17
17
  this.elements = elements;
18
18
  this.currentSlideIndex = 0;
19
-
20
19
  this.buttons = buttons;
21
20
 
21
+ // 🎨 Tint options
22
+ this.tintColor = options.tintColor || "green";
23
+ this.inactiveColor = options.inactiveColor || "gray";
24
+
25
+ // 🔵 Default buttons adopt tintColor
22
26
  if (!this.buttons) {
23
27
  let buttons = {
24
28
  leftButton: new Button("L").set({
25
29
  frame: { width: 50, height: 50 },
26
- url: "../assets/arrow-left.png",
27
- color: "#1abc9c",
28
- image: new Image().set({ url: "../assets/arrow-left.png", width: "50px", height: "50px" }),
30
+ svg: this.createArrowSVG("left", 28, this.tintColor),
31
+ color: this.tintColor, // adopt tintColor
29
32
  radius: "100%",
30
33
  arrayMargin: { sides: ["all"], value: "1rem" },
31
34
  }),
32
35
 
33
36
  rightButton: new Button("R").set({
34
37
  frame: { width: 50, height: 50 },
35
- url: "../assets/arrow-right.png",
36
- color: "#1abc9c",
38
+ svg: this.createArrowSVG("right", 28, this.tintColor),
39
+ color: this.tintColor, // adopt tintColor
37
40
  radius: "100%",
38
41
  arrayMargin: { sides: ["all"], value: "1rem" },
39
42
  }),
@@ -45,6 +48,29 @@ class Slider {
45
48
  this.init();
46
49
  }
47
50
 
51
+ createArrowSVG(direction = "left", size = 28, color = "currentColor") {
52
+ const svgNS = "http://www.w3.org/2000/svg";
53
+ const svg = document.createElementNS(svgNS, "svg");
54
+ svg.setAttribute("viewBox", "0 0 24 24");
55
+ svg.setAttribute("width", String(size));
56
+ svg.setAttribute("height", String(size));
57
+ svg.setAttribute("aria-hidden", "true");
58
+ svg.style.display = "block";
59
+ svg.style.pointerEvents = "none";
60
+
61
+ const path = document.createElementNS(svgNS, "path");
62
+ path.setAttribute("fill", color);
63
+
64
+ if (direction === "left") {
65
+ path.setAttribute("d", "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z");
66
+ } else {
67
+ path.setAttribute("d", "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6z");
68
+ }
69
+
70
+ svg.appendChild(path);
71
+ return svg;
72
+ }
73
+
48
74
  toCode() {
49
75
  let code = `new Slider([${this.elements.map((el) => el.toCode())}], null)`;
50
76
  code = code.replace(/,\s*\./g, ".");
@@ -79,12 +105,12 @@ class Slider {
79
105
  slide.style.flexShrink = "0";
80
106
  slide.style.width = "100%";
81
107
  slide.style.height = "400px";
82
- slide.style.background = index % 2 === 0 ? "rgb(250, 246, 212)" : "white";
108
+ slide.style.background =
109
+ index % 2 === 0 ? "rgb(250, 246, 212)" : "white";
83
110
  slide.style.transformOrigin = "center center";
84
111
  slide.style.transform = "scale(1)";
85
112
  slide.style.scrollSnapAlign = "center";
86
113
 
87
- // render element once and clone from that instance for the thumbnail
88
114
  const rendered = text.render();
89
115
  slide.appendChild(rendered);
90
116
  slidesWrapper.appendChild(slide);
@@ -97,6 +123,9 @@ class Slider {
97
123
  this.arrowPrev.style.top = "50%";
98
124
  this.arrowPrev.style.transform = "translateY(-50%)";
99
125
  this.arrowPrev.style.zIndex = "1";
126
+ this.arrowPrev.style.display = "flex";
127
+ this.arrowPrev.style.alignItems = "center";
128
+ this.arrowPrev.style.justifyContent = "center";
100
129
 
101
130
  this.arrowNext = this.buttons.rightButton.render();
102
131
  this.arrowNext.style.position = "absolute";
@@ -104,13 +133,15 @@ class Slider {
104
133
  this.arrowNext.style.top = "50%";
105
134
  this.arrowNext.style.transform = "translateY(-50%)";
106
135
  this.arrowNext.style.zIndex = "1";
136
+ this.arrowNext.style.display = "flex";
137
+ this.arrowNext.style.alignItems = "center";
138
+ this.arrowNext.style.justifyContent = "center";
107
139
 
108
140
  // Navigation dots
109
141
  const nav = document.createElement("div");
110
142
  nav.style.position = "absolute";
111
143
  nav.style.bottom = "10%";
112
144
  nav.style.left = "50%";
113
- nav.style.width = "200px";
114
145
  nav.style.transform = "translateX(-50%)";
115
146
  nav.style.textAlign = "center";
116
147
 
@@ -120,68 +151,63 @@ class Slider {
120
151
  navLink.style.height = "15px";
121
152
  navLink.style.width = "15px";
122
153
  navLink.style.borderRadius = "50%";
123
- navLink.style.backgroundColor = "black";
154
+ navLink.style.backgroundColor = this.inactiveColor;
124
155
  navLink.style.margin = "0 10px";
125
156
  navLink.style.cursor = "pointer";
126
157
  navLink.dataset.index = index;
127
158
  nav.appendChild(navLink);
128
159
  });
129
160
 
130
- // ✅ Thumbnails section (fixed and robust)
161
+ // ✅ Thumbnails section
131
162
  const thumbsContainer = document.createElement("div");
132
163
  thumbsContainer.style.display = "flex";
133
- thumbsContainer.style.justifyContent = "center";
164
+ thumbsContainer.style.justifyContent = "flex-start";
134
165
  thumbsContainer.style.marginTop = "10px";
135
166
  thumbsContainer.style.gap = "10px";
136
167
  thumbsContainer.style.flexWrap = "nowrap";
137
- thumbsContainer.style.overflowX = "auto"; // optional: allow scrolling if many thumbs
168
+ thumbsContainer.style.overflowX = "auto";
138
169
 
139
- // create thumbnails from existing slide DOM (clone once)
140
170
  const slides = slidesWrapper.querySelectorAll(".slide");
141
171
  slides.forEach((slide, index) => {
142
172
  const thumb = document.createElement("div");
143
- thumb.className = "slider-thumb"; // specific class so we only select top-level thumbs
173
+ thumb.className = "slider-thumb";
144
174
  thumb.dataset.index = index.toString();
145
175
  thumb.style.width = "60px";
146
176
  thumb.style.height = "40px";
147
- thumb.style.border = "2px solid gray";
177
+ thumb.style.border = `2px solid ${this.inactiveColor}`;
148
178
  thumb.style.borderRadius = "5px";
149
179
  thumb.style.overflow = "hidden";
150
180
  thumb.style.cursor = "pointer";
151
181
  thumb.style.flexShrink = "0";
152
182
  thumb.style.position = "relative";
153
183
 
154
- // use the slide's rendered content and clone it (no extra text.render() calls)
155
184
  const sourceContent = slide.firstElementChild || slide.cloneNode(true);
156
185
  const preview = sourceContent.cloneNode(true);
157
-
158
- // scale down the preview and make sure it sits in the thumb
159
186
  preview.style.transform = "scale(0.2)";
160
187
  preview.style.transformOrigin = "top left";
161
- // make width/height big enough so scale produces visible result
162
188
  preview.style.width = "300px";
163
189
  preview.style.height = "auto";
164
- preview.style.pointerEvents = "none"; // prevent interactive elements inside preview catching clicks
190
+ preview.style.pointerEvents = "none";
165
191
 
166
192
  thumb.appendChild(preview);
167
-
168
193
  thumbsContainer.appendChild(thumb);
169
194
  });
170
195
 
171
- // Append elements to the slider
196
+ // Append elements
172
197
  this.slider.appendChild(this.arrowPrev);
173
198
  this.slider.appendChild(this.arrowNext);
174
199
  this.slider.appendChild(slidesWrapper);
175
200
  this.slider.appendChild(nav);
176
201
 
177
- // Append everything to root container (single root element)
178
202
  this.container.appendChild(this.slider);
179
203
  this.container.appendChild(thumbsContainer);
180
204
 
181
- // Store references (select only top-level thumbs)
205
+ // Store references
182
206
  this.slidesWrapper = slidesWrapper;
183
207
  this.navLinks = Array.from(nav.querySelectorAll("a"));
184
- this.thumbs = Array.from(thumbsContainer.querySelectorAll(".slider-thumb"));
208
+ this.thumbs = Array.from(
209
+ thumbsContainer.querySelectorAll(".slider-thumb")
210
+ );
185
211
  }
186
212
 
187
213
  init() {
@@ -191,7 +217,11 @@ class Slider {
191
217
 
192
218
  attachEventListeners() {
193
219
  this.arrowPrev.addEventListener("click", () => {
194
- this.moveToSlide(this.currentSlideIndex - 1 < 0 ? this.elements.length - 1 : this.currentSlideIndex - 1);
220
+ this.moveToSlide(
221
+ this.currentSlideIndex - 1 < 0
222
+ ? this.elements.length - 1
223
+ : this.currentSlideIndex - 1
224
+ );
195
225
  });
196
226
 
197
227
  this.arrowNext.addEventListener("click", () => {
@@ -206,7 +236,6 @@ class Slider {
206
236
  });
207
237
  });
208
238
 
209
- // thumbnails click (use data-index to be robust)
210
239
  this.thumbs.forEach((thumb) => {
211
240
  thumb.addEventListener("click", () => {
212
241
  const idx = parseInt(thumb.dataset.index, 10);
@@ -214,10 +243,13 @@ class Slider {
214
243
  });
215
244
  });
216
245
 
217
- // Keydown event for left and right arrow keys
218
246
  document.addEventListener("keydown", (e) => {
219
247
  if (e.key === "ArrowLeft") {
220
- this.moveToSlide(this.currentSlideIndex - 1 < 0 ? this.elements.length - 1 : this.currentSlideIndex - 1);
248
+ this.moveToSlide(
249
+ this.currentSlideIndex - 1 < 0
250
+ ? this.elements.length - 1
251
+ : this.currentSlideIndex - 1
252
+ );
221
253
  } else if (e.key === "ArrowRight") {
222
254
  this.moveToSlide((this.currentSlideIndex + 1) % this.elements.length);
223
255
  }
@@ -230,21 +262,29 @@ class Slider {
230
262
  }
231
263
 
232
264
  updateActiveSlide() {
233
- // highlight nav dots using dataset (robust even if nodes reorder)
265
+ // nav dots
234
266
  this.navLinks.forEach((navLink) => {
235
267
  const idx = parseInt(navLink.dataset.index, 10);
236
- navLink.style.backgroundColor = idx === this.currentSlideIndex ? "green" : "gray";
268
+ navLink.style.backgroundColor =
269
+ idx === this.currentSlideIndex
270
+ ? this.tintColor
271
+ : this.inactiveColor;
237
272
  });
238
273
 
239
- // highlight thumbs using dataset (robust)
274
+ // thumbs
240
275
  this.thumbs.forEach((thumb) => {
241
276
  const idx = parseInt(thumb.dataset.index, 10);
242
- thumb.style.borderColor = idx === this.currentSlideIndex ? "green" : "gray";
277
+ thumb.style.borderColor =
278
+ idx === this.currentSlideIndex
279
+ ? this.tintColor
280
+ : this.inactiveColor;
243
281
  });
244
282
 
245
- // scroll main slides wrapper
283
+ // scroll slides
246
284
  const slideElem = this.slidesWrapper.querySelector(".slide");
247
- const slideWidth = slideElem ? slideElem.offsetWidth : this.slidesWrapper.clientWidth;
285
+ const slideWidth = slideElem
286
+ ? slideElem.offsetWidth
287
+ : this.slidesWrapper.clientWidth;
248
288
  this.slidesWrapper.scrollTo({
249
289
  left: this.currentSlideIndex * slideWidth,
250
290
  behavior: "smooth",
@@ -255,7 +295,7 @@ class Slider {
255
295
  if (div) {
256
296
  document.querySelector(div).appendChild(this.container);
257
297
  } else {
258
- return this.container; // return single root element
298
+ return this.container;
259
299
  }
260
300
  }
261
301
  }
package/layout/spacer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.31
2
+ * nodality v1.0.33
3
3
  * (c) 2025 Filip Vabrousek
4
4
  * License: MIT
5
5
  */