jekyll-rubin-collab-theme 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (389) hide show
  1. checksums.yaml +4 -4
  2. data/_third_party/mdb-ui-kit/.gitignore +1 -0
  3. data/_third_party/mdb-ui-kit/LICENSE +21 -0
  4. data/_third_party/mdb-ui-kit/README.md +551 -0
  5. data/_third_party/mdb-ui-kit/README.txt +8 -0
  6. data/_third_party/mdb-ui-kit/css/mdb.dark.min.css +23 -0
  7. data/_third_party/mdb-ui-kit/css/mdb.dark.min.css.map +1 -0
  8. data/_third_party/mdb-ui-kit/css/mdb.dark.rtl.min.css +10 -0
  9. data/_third_party/mdb-ui-kit/css/mdb.dark.rtl.min.css.map +1 -0
  10. data/_third_party/mdb-ui-kit/css/mdb.min.css +40 -0
  11. data/_third_party/mdb-ui-kit/css/mdb.min.css.map +1 -0
  12. data/_third_party/mdb-ui-kit/css/mdb.rtl.min.css +10 -0
  13. data/_third_party/mdb-ui-kit/css/mdb.rtl.min.css.map +1 -0
  14. data/_third_party/mdb-ui-kit/img/mdb-favicon.ico +0 -0
  15. data/_third_party/mdb-ui-kit/index.html +52 -0
  16. data/_third_party/mdb-ui-kit/js/mdb.min.js +20 -0
  17. data/_third_party/mdb-ui-kit/js/mdb.min.js.map +1 -0
  18. data/_third_party/mdb-ui-kit/license.txt +153 -0
  19. data/_third_party/mdb-ui-kit/package.json +9 -0
  20. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/alert.js +112 -0
  21. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/alert.js.map +1 -0
  22. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/base-component.js +113 -0
  23. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/base-component.js.map +1 -0
  24. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/button.js +91 -0
  25. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/button.js.map +1 -0
  26. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/carousel.js +515 -0
  27. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/carousel.js.map +1 -0
  28. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/collapse.js +341 -0
  29. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/collapse.js.map +1 -0
  30. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/data.js +73 -0
  31. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/data.js.map +1 -0
  32. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/event-handler.js +346 -0
  33. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/event-handler.js.map +1 -0
  34. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/manipulator.js +89 -0
  35. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/manipulator.js.map +1 -0
  36. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/selector-engine.js +101 -0
  37. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/selector-engine.js.map +1 -0
  38. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dropdown.js +556 -0
  39. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dropdown.js.map +1 -0
  40. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/modal.js +452 -0
  41. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/modal.js.map +1 -0
  42. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/offcanvas.js +344 -0
  43. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/offcanvas.js.map +1 -0
  44. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/popover.js +108 -0
  45. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/popover.js.map +1 -0
  46. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/scrollspy.js +340 -0
  47. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/scrollspy.js.map +1 -0
  48. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tab.js +355 -0
  49. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tab.js.map +1 -0
  50. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/toast.js +256 -0
  51. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/toast.js.map +1 -0
  52. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tooltip.js +749 -0
  53. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tooltip.js.map +1 -0
  54. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/backdrop.js +169 -0
  55. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/backdrop.js.map +1 -0
  56. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/component-functions.js +59 -0
  57. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/component-functions.js.map +1 -0
  58. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/config.js +90 -0
  59. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/config.js.map +1 -0
  60. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/focustrap.js +139 -0
  61. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/focustrap.js.map +1 -0
  62. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/index.js +350 -0
  63. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/index.js.map +1 -0
  64. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/sanitizer.js +142 -0
  65. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/sanitizer.js.map +1 -0
  66. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/scrollbar.js +157 -0
  67. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/scrollbar.js.map +1 -0
  68. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/swipe.js +173 -0
  69. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/swipe.js.map +1 -0
  70. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/template-factory.js +193 -0
  71. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/template-factory.js.map +1 -0
  72. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/alert.js +87 -0
  73. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/base-component.js +87 -0
  74. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/button.js +72 -0
  75. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/carousel.js +482 -0
  76. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/collapse.js +308 -0
  77. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/data.js +59 -0
  78. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/event-handler.js +333 -0
  79. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/manipulator.js +73 -0
  80. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/selector-engine.js +85 -0
  81. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dropdown.js +477 -0
  82. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/modal.js +379 -0
  83. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/offcanvas.js +278 -0
  84. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/popover.js +98 -0
  85. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/scrollspy.js +312 -0
  86. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/tab.js +320 -0
  87. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/toast.js +225 -0
  88. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/tooltip.js +657 -0
  89. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/backdrop.js +149 -0
  90. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/component-functions.js +32 -0
  91. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/config.js +66 -0
  92. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/focustrap.js +119 -0
  93. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/index.js +342 -0
  94. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/sanitizer.js +122 -0
  95. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/scrollbar.js +126 -0
  96. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/swipe.js +148 -0
  97. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/template-factory.js +162 -0
  98. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/alert.js +87 -0
  99. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/base-component.js +87 -0
  100. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/button.js +72 -0
  101. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/carousel.js +482 -0
  102. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/collapse.js +308 -0
  103. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/data.js +59 -0
  104. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/event-handler.js +333 -0
  105. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/manipulator.js +73 -0
  106. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/selector-engine.js +85 -0
  107. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dropdown.js +477 -0
  108. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/modal.js +377 -0
  109. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/offcanvas.js +278 -0
  110. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/popover.js +98 -0
  111. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/scrollspy.js +301 -0
  112. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/tab.js +320 -0
  113. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/toast.js +225 -0
  114. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/tooltip.js +657 -0
  115. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/backdrop.js +149 -0
  116. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/component-functions.js +32 -0
  117. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/config.js +66 -0
  118. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/focustrap.js +119 -0
  119. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/index.js +342 -0
  120. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/sanitizer.js +122 -0
  121. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/scrollbar.js +126 -0
  122. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/swipe.js +148 -0
  123. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/template-factory.js +162 -0
  124. data/_third_party/mdb-ui-kit/src/js/free/alert.js +95 -0
  125. data/_third_party/mdb-ui-kit/src/js/free/button.js +258 -0
  126. data/_third_party/mdb-ui-kit/src/js/free/carousel.js +107 -0
  127. data/_third_party/mdb-ui-kit/src/js/free/collapse.js +115 -0
  128. data/_third_party/mdb-ui-kit/src/js/free/dropdown.js +277 -0
  129. data/_third_party/mdb-ui-kit/src/js/free/input.js +443 -0
  130. data/_third_party/mdb-ui-kit/src/js/free/modal.js +129 -0
  131. data/_third_party/mdb-ui-kit/src/js/free/popover.js +126 -0
  132. data/_third_party/mdb-ui-kit/src/js/free/range.js +162 -0
  133. data/_third_party/mdb-ui-kit/src/js/free/ripple.js +463 -0
  134. data/_third_party/mdb-ui-kit/src/js/free/scrollspy.js +166 -0
  135. data/_third_party/mdb-ui-kit/src/js/free/tab.js +170 -0
  136. data/_third_party/mdb-ui-kit/src/js/free/toast.js +116 -0
  137. data/_third_party/mdb-ui-kit/src/js/free/tooltip.js +126 -0
  138. data/_third_party/mdb-ui-kit/src/js/mdb/dom/data.js +67 -0
  139. data/_third_party/mdb-ui-kit/src/js/mdb/dom/event-handler.js +355 -0
  140. data/_third_party/mdb-ui-kit/src/js/mdb/dom/manipulator.js +118 -0
  141. data/_third_party/mdb-ui-kit/src/js/mdb/dom/selector-engine.js +84 -0
  142. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/click-rail.js +30 -0
  143. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/drag-thumb.js +98 -0
  144. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/keyboard.js +147 -0
  145. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/mouse-wheel.js +158 -0
  146. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/touch.js +212 -0
  147. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/index.js +236 -0
  148. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/class-names.js +47 -0
  149. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/css.js +16 -0
  150. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/dom.js +36 -0
  151. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/event-manager.js +78 -0
  152. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/util.js +39 -0
  153. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/process-scroll-diff.js +65 -0
  154. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/update-geometry.js +154 -0
  155. data/_third_party/mdb-ui-kit/src/js/mdb/util/focusTrap.js +97 -0
  156. data/_third_party/mdb-ui-kit/src/js/mdb/util/index.js +242 -0
  157. data/_third_party/mdb-ui-kit/src/js/mdb/util/keycodes.js +40 -0
  158. data/_third_party/mdb-ui-kit/src/js/mdb/util/sanitizer.js +130 -0
  159. data/_third_party/mdb-ui-kit/src/js/mdb/util/scrollbar.js +83 -0
  160. data/_third_party/mdb-ui-kit/src/js/mdb/util/stack.js +105 -0
  161. data/_third_party/mdb-ui-kit/src/js/mdb/util/touch/index.js +47 -0
  162. data/_third_party/mdb-ui-kit/src/js/mdb/util/touch/swipe.js +81 -0
  163. data/_third_party/mdb-ui-kit/src/js/mdb/util/touch/touchUtil.js +24 -0
  164. data/_third_party/mdb-ui-kit/src/js/mdb.free.js +36 -0
  165. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_accordion.scss +153 -0
  166. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_alert.scss +69 -0
  167. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_badge.scss +38 -0
  168. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_breadcrumb.scss +43 -0
  169. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_button-group.scss +143 -0
  170. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_buttons.scss +214 -0
  171. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_card.scss +248 -0
  172. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_carousel.scss +231 -0
  173. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_close.scss +40 -0
  174. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_containers.scss +41 -0
  175. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_dropdown.scss +247 -0
  176. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_forms.scss +9 -0
  177. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_functions.scss +355 -0
  178. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_grid.scss +32 -0
  179. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_helpers.scss +10 -0
  180. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_images.scss +41 -0
  181. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_list-group.scss +198 -0
  182. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_maps.scss +54 -0
  183. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_mixins.scss +43 -0
  184. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_modal.scss +247 -0
  185. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_nav.scss +173 -0
  186. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_navbar.scss +274 -0
  187. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_offcanvas.scss +153 -0
  188. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_pagination.scss +118 -0
  189. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_placeholders.scss +56 -0
  190. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_popover.scss +210 -0
  191. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_progress.scss +61 -0
  192. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_reboot.scss +590 -0
  193. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_root.scss +73 -0
  194. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_spinners.scss +88 -0
  195. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_tables.scss +161 -0
  196. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_toasts.scss +78 -0
  197. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_tooltip.scss +126 -0
  198. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_transitions.scss +27 -0
  199. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_type.scss +104 -0
  200. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_utilities.scss +747 -0
  201. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_variables.scss +1631 -0
  202. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap-grid.scss +64 -0
  203. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap-reboot.scss +9 -0
  204. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap-utilities.scss +18 -0
  205. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap.scss +50 -0
  206. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_floating-labels.scss +75 -0
  207. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-check.scss +176 -0
  208. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-control.scss +198 -0
  209. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-range.scss +95 -0
  210. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-select.scss +75 -0
  211. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-text.scss +11 -0
  212. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_input-group.scss +135 -0
  213. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_labels.scss +36 -0
  214. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_validation.scss +12 -0
  215. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_clearfix.scss +3 -0
  216. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_color-bg.scss +11 -0
  217. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_colored-links.scss +16 -0
  218. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_position.scss +36 -0
  219. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_ratio.scss +26 -0
  220. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_stacks.scss +15 -0
  221. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_stretched-link.scss +15 -0
  222. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_text-truncation.scss +7 -0
  223. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_visually-hidden.scss +8 -0
  224. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_vr.scss +8 -0
  225. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_alert.scss +15 -0
  226. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_backdrop.scss +18 -0
  227. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_banner.scss +8 -0
  228. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_border-radius.scss +77 -0
  229. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_box-shadow.scss +18 -0
  230. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_breakpoints.scss +131 -0
  231. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_buttons.scss +90 -0
  232. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_caret.scss +64 -0
  233. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_clearfix.scss +9 -0
  234. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_color-scheme.scss +7 -0
  235. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_container.scss +15 -0
  236. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_deprecate.scss +10 -0
  237. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_forms.scss +153 -0
  238. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_gradients.scss +80 -0
  239. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_grid.scss +169 -0
  240. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_image.scss +16 -0
  241. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_list-group.scss +24 -0
  242. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_lists.scss +7 -0
  243. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_pagination.scss +10 -0
  244. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_reset-text.scss +17 -0
  245. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_resize.scss +6 -0
  246. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_table-variants.scss +24 -0
  247. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_text-truncate.scss +8 -0
  248. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_transition.scss +26 -0
  249. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_utilities.scss +112 -0
  250. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_visually-hidden.scss +29 -0
  251. data/_third_party/mdb-ui-kit/src/scss/bootstrap/utilities/_api.scss +49 -0
  252. data/_third_party/mdb-ui-kit/src/scss/bootstrap/vendor/_rfs.scss +351 -0
  253. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_accordion.scss +153 -0
  254. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_alert.scss +69 -0
  255. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_badge.scss +38 -0
  256. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_breadcrumb.scss +43 -0
  257. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_button-group.scss +143 -0
  258. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_buttons.scss +214 -0
  259. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_card.scss +248 -0
  260. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_carousel.scss +231 -0
  261. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_close.scss +40 -0
  262. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_containers.scss +41 -0
  263. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_dropdown.scss +247 -0
  264. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_forms.scss +9 -0
  265. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_functions.scss +355 -0
  266. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_grid.scss +32 -0
  267. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_helpers.scss +10 -0
  268. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_images.scss +41 -0
  269. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_list-group.scss +198 -0
  270. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_maps.scss +54 -0
  271. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_mixins.scss +43 -0
  272. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_modal.scss +247 -0
  273. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_nav.scss +173 -0
  274. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_navbar.scss +274 -0
  275. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_offcanvas.scss +153 -0
  276. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_pagination.scss +118 -0
  277. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_placeholders.scss +56 -0
  278. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_popover.scss +210 -0
  279. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_progress.scss +61 -0
  280. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_reboot.scss +590 -0
  281. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_root.scss +73 -0
  282. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_spinners.scss +88 -0
  283. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_tables.scss +161 -0
  284. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_toasts.scss +78 -0
  285. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_tooltip.scss +126 -0
  286. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_transitions.scss +27 -0
  287. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_type.scss +104 -0
  288. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_utilities.scss +747 -0
  289. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_variables.scss +1631 -0
  290. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap-grid.scss +64 -0
  291. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap-reboot.scss +9 -0
  292. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap-utilities.scss +18 -0
  293. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap.scss +50 -0
  294. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_floating-labels.scss +75 -0
  295. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-check.scss +176 -0
  296. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-control.scss +198 -0
  297. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-range.scss +95 -0
  298. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-select.scss +75 -0
  299. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-text.scss +11 -0
  300. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_input-group.scss +135 -0
  301. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_labels.scss +36 -0
  302. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_validation.scss +12 -0
  303. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_clearfix.scss +3 -0
  304. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_color-bg.scss +11 -0
  305. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_colored-links.scss +16 -0
  306. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_position.scss +36 -0
  307. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_ratio.scss +26 -0
  308. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_stacks.scss +15 -0
  309. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_stretched-link.scss +15 -0
  310. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_text-truncation.scss +7 -0
  311. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_visually-hidden.scss +8 -0
  312. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_vr.scss +8 -0
  313. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_alert.scss +15 -0
  314. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_backdrop.scss +18 -0
  315. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_banner.scss +8 -0
  316. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_border-radius.scss +77 -0
  317. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_box-shadow.scss +18 -0
  318. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_breakpoints.scss +131 -0
  319. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_buttons.scss +90 -0
  320. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_caret.scss +64 -0
  321. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_clearfix.scss +9 -0
  322. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_color-scheme.scss +7 -0
  323. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_container.scss +15 -0
  324. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_deprecate.scss +10 -0
  325. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_forms.scss +153 -0
  326. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_gradients.scss +80 -0
  327. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_grid.scss +169 -0
  328. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_image.scss +15 -0
  329. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_list-group.scss +24 -0
  330. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_lists.scss +7 -0
  331. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_pagination.scss +10 -0
  332. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_reset-text.scss +17 -0
  333. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_resize.scss +6 -0
  334. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_table-variants.scss +24 -0
  335. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_text-truncate.scss +8 -0
  336. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_transition.scss +26 -0
  337. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_utilities.scss +112 -0
  338. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_visually-hidden.scss +29 -0
  339. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/utilities/_api.scss +49 -0
  340. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/vendor/_rfs.scss +351 -0
  341. data/_third_party/mdb-ui-kit/src/scss/custom/_styles.scss +1 -0
  342. data/_third_party/mdb-ui-kit/src/scss/custom/_variables.scss +1 -0
  343. data/_third_party/mdb-ui-kit/src/scss/free/_accordion.scss +52 -0
  344. data/_third_party/mdb-ui-kit/src/scss/free/_alert.scss +39 -0
  345. data/_third_party/mdb-ui-kit/src/scss/free/_badge.scss +51 -0
  346. data/_third_party/mdb-ui-kit/src/scss/free/_breadcrumb.scss +35 -0
  347. data/_third_party/mdb-ui-kit/src/scss/free/_button-group.scss +100 -0
  348. data/_third_party/mdb-ui-kit/src/scss/free/_buttons.scss +609 -0
  349. data/_third_party/mdb-ui-kit/src/scss/free/_card.scss +53 -0
  350. data/_third_party/mdb-ui-kit/src/scss/free/_carousel.scss +31 -0
  351. data/_third_party/mdb-ui-kit/src/scss/free/_close.scss +10 -0
  352. data/_third_party/mdb-ui-kit/src/scss/free/_colors.scss +11 -0
  353. data/_third_party/mdb-ui-kit/src/scss/free/_deprecated.scss +32 -0
  354. data/_third_party/mdb-ui-kit/src/scss/free/_dropdown.scss +148 -0
  355. data/_third_party/mdb-ui-kit/src/scss/free/_flag.scss +1046 -0
  356. data/_third_party/mdb-ui-kit/src/scss/free/_functions.scss +18 -0
  357. data/_third_party/mdb-ui-kit/src/scss/free/_images.scss +87 -0
  358. data/_third_party/mdb-ui-kit/src/scss/free/_list-group.scss +68 -0
  359. data/_third_party/mdb-ui-kit/src/scss/free/_mixins.scss +8 -0
  360. data/_third_party/mdb-ui-kit/src/scss/free/_modal.scss +12 -0
  361. data/_third_party/mdb-ui-kit/src/scss/free/_nav.scss +100 -0
  362. data/_third_party/mdb-ui-kit/src/scss/free/_navbar.scss +50 -0
  363. data/_third_party/mdb-ui-kit/src/scss/free/_pagination.scss +99 -0
  364. data/_third_party/mdb-ui-kit/src/scss/free/_popover.scss +18 -0
  365. data/_third_party/mdb-ui-kit/src/scss/free/_progress.scss +6 -0
  366. data/_third_party/mdb-ui-kit/src/scss/free/_range.scss +58 -0
  367. data/_third_party/mdb-ui-kit/src/scss/free/_reboot.scss +66 -0
  368. data/_third_party/mdb-ui-kit/src/scss/free/_ripple.scss +51 -0
  369. data/_third_party/mdb-ui-kit/src/scss/free/_root.scss +8 -0
  370. data/_third_party/mdb-ui-kit/src/scss/free/_scrollspy.scss +49 -0
  371. data/_third_party/mdb-ui-kit/src/scss/free/_shadows.scss +1 -0
  372. data/_third_party/mdb-ui-kit/src/scss/free/_tables.scss +45 -0
  373. data/_third_party/mdb-ui-kit/src/scss/free/_toasts.scss +52 -0
  374. data/_third_party/mdb-ui-kit/src/scss/free/_tooltip.scss +17 -0
  375. data/_third_party/mdb-ui-kit/src/scss/free/_type.scss +27 -0
  376. data/_third_party/mdb-ui-kit/src/scss/free/_utilities.scss +216 -0
  377. data/_third_party/mdb-ui-kit/src/scss/free/_variables.scss +1875 -0
  378. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-check.scss +262 -0
  379. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-control.scss +244 -0
  380. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-file.scss +12 -0
  381. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-range.scss +48 -0
  382. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-select.scss +19 -0
  383. data/_third_party/mdb-ui-kit/src/scss/free/forms/_input-group.scss +127 -0
  384. data/_third_party/mdb-ui-kit/src/scss/free/forms/_validation.scss +266 -0
  385. data/_third_party/mdb-ui-kit/src/scss/free/mixins/_buttons.scss +60 -0
  386. data/_third_party/mdb-ui-kit/src/scss/free/mixins/_ripple.scss +28 -0
  387. data/_third_party/mdb-ui-kit/src/scss/free/mixins/_table-variants.scss +9 -0
  388. data/_third_party/mdb-ui-kit/src/scss/mdb.free.scss +103 -0
  389. metadata +388 -1
@@ -0,0 +1,149 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): util/backdrop.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import EventHandler from '../dom/event-handler';
9
+ import { execute, executeAfterTransition, getElement, reflow } from './index';
10
+ import Config from './config';
11
+
12
+ /**
13
+ * Constants
14
+ */
15
+
16
+ const NAME = 'backdrop';
17
+ const CLASS_NAME_FADE = 'fade';
18
+ const CLASS_NAME_SHOW = 'show';
19
+ const EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;
20
+
21
+ const Default = {
22
+ className: 'modal-backdrop',
23
+ clickCallback: null,
24
+ isAnimated: false,
25
+ isVisible: true, // if false, we use the backdrop helper without adding any element to the dom
26
+ rootElement: 'body', // give the choice to place backdrop under different elements
27
+ };
28
+
29
+ const DefaultType = {
30
+ className: 'string',
31
+ clickCallback: '(function|null)',
32
+ isAnimated: 'boolean',
33
+ isVisible: 'boolean',
34
+ rootElement: '(element|string)',
35
+ };
36
+
37
+ /**
38
+ * Class definition
39
+ */
40
+
41
+ class Backdrop extends Config {
42
+ constructor(config) {
43
+ super();
44
+ this._config = this._getConfig(config);
45
+ this._isAppended = false;
46
+ this._element = null;
47
+ }
48
+
49
+ // Getters
50
+ static get Default() {
51
+ return Default;
52
+ }
53
+
54
+ static get DefaultType() {
55
+ return DefaultType;
56
+ }
57
+
58
+ static get NAME() {
59
+ return NAME;
60
+ }
61
+
62
+ // Public
63
+ show(callback) {
64
+ if (!this._config.isVisible) {
65
+ execute(callback);
66
+ return;
67
+ }
68
+
69
+ this._append();
70
+
71
+ const element = this._getElement();
72
+ if (this._config.isAnimated) {
73
+ reflow(element);
74
+ }
75
+
76
+ element.classList.add(CLASS_NAME_SHOW);
77
+
78
+ this._emulateAnimation(() => {
79
+ execute(callback);
80
+ });
81
+ }
82
+
83
+ hide(callback) {
84
+ if (!this._config.isVisible) {
85
+ execute(callback);
86
+ return;
87
+ }
88
+
89
+ this._getElement().classList.remove(CLASS_NAME_SHOW);
90
+
91
+ this._emulateAnimation(() => {
92
+ this.dispose();
93
+ execute(callback);
94
+ });
95
+ }
96
+
97
+ dispose() {
98
+ if (!this._isAppended) {
99
+ return;
100
+ }
101
+
102
+ EventHandler.off(this._element, EVENT_MOUSEDOWN);
103
+
104
+ this._element.remove();
105
+ this._isAppended = false;
106
+ }
107
+
108
+ // Private
109
+ _getElement() {
110
+ if (!this._element) {
111
+ const backdrop = document.createElement('div');
112
+ backdrop.className = this._config.className;
113
+ if (this._config.isAnimated) {
114
+ backdrop.classList.add(CLASS_NAME_FADE);
115
+ }
116
+
117
+ this._element = backdrop;
118
+ }
119
+
120
+ return this._element;
121
+ }
122
+
123
+ _configAfterMerge(config) {
124
+ // use getElement() with the default "body" to get a fresh Element on each instantiation
125
+ config.rootElement = getElement(config.rootElement);
126
+ return config;
127
+ }
128
+
129
+ _append() {
130
+ if (this._isAppended) {
131
+ return;
132
+ }
133
+
134
+ const element = this._getElement();
135
+ this._config.rootElement.append(element);
136
+
137
+ EventHandler.on(element, EVENT_MOUSEDOWN, () => {
138
+ execute(this._config.clickCallback);
139
+ });
140
+
141
+ this._isAppended = true;
142
+ }
143
+
144
+ _emulateAnimation(callback) {
145
+ executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
146
+ }
147
+ }
148
+
149
+ export default Backdrop;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): util/component-functions.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import EventHandler from '../dom/event-handler';
9
+ import { getElementFromSelector, isDisabled } from './index';
10
+
11
+ const enableDismissTrigger = (component, method = 'hide') => {
12
+ const clickEvent = `click.dismiss${component.EVENT_KEY}`;
13
+ const name = component.NAME;
14
+
15
+ EventHandler.on(document, clickEvent, `[data-mdb-dismiss="${name}"]`, function (event) {
16
+ if (['A', 'AREA'].includes(this.tagName)) {
17
+ event.preventDefault();
18
+ }
19
+
20
+ if (isDisabled(this)) {
21
+ return;
22
+ }
23
+
24
+ const target = getElementFromSelector(this) || this.closest(`.${name}`);
25
+ const instance = component.getOrCreateInstance(target);
26
+
27
+ // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
28
+ instance[method]();
29
+ });
30
+ };
31
+
32
+ export { enableDismissTrigger };
@@ -0,0 +1,66 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): util/config.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import { isElement, toType } from './index';
9
+ import Manipulator from '../dom/manipulator';
10
+
11
+ /**
12
+ * Class definition
13
+ */
14
+
15
+ class Config {
16
+ // Getters
17
+ static get Default() {
18
+ return {};
19
+ }
20
+
21
+ static get DefaultType() {
22
+ return {};
23
+ }
24
+
25
+ static get NAME() {
26
+ throw new Error('You have to implement the static method "NAME", for each component!');
27
+ }
28
+
29
+ _getConfig(config) {
30
+ config = this._mergeConfigObj(config);
31
+ config = this._configAfterMerge(config);
32
+ this._typeCheckConfig(config);
33
+ return config;
34
+ }
35
+
36
+ _configAfterMerge(config) {
37
+ return config;
38
+ }
39
+
40
+ _mergeConfigObj(config, element) {
41
+ const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse
42
+
43
+ return {
44
+ ...this.constructor.Default,
45
+ ...(typeof jsonConfig === 'object' ? jsonConfig : {}),
46
+ ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),
47
+ ...(typeof config === 'object' ? config : {}),
48
+ };
49
+ }
50
+
51
+ _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
52
+ for (const property of Object.keys(configTypes)) {
53
+ const expectedTypes = configTypes[property];
54
+ const value = config[property];
55
+ const valueType = isElement(value) ? 'element' : toType(value);
56
+
57
+ if (!new RegExp(expectedTypes).test(valueType)) {
58
+ throw new TypeError(
59
+ `${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`
60
+ );
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ export default Config;
@@ -0,0 +1,119 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): util/focustrap.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import EventHandler from '../dom/event-handler';
9
+ import SelectorEngine from '../dom/selector-engine';
10
+ import Config from './config';
11
+
12
+ /**
13
+ * Constants
14
+ */
15
+
16
+ const NAME = 'focustrap';
17
+ const DATA_KEY = 'bs.focustrap';
18
+ const EVENT_KEY = `.${DATA_KEY}`;
19
+ const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
20
+ const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`;
21
+
22
+ const TAB_KEY = 'Tab';
23
+ const TAB_NAV_FORWARD = 'forward';
24
+ const TAB_NAV_BACKWARD = 'backward';
25
+
26
+ const Default = {
27
+ autofocus: true,
28
+ trapElement: null, // The element to trap focus inside of
29
+ };
30
+
31
+ const DefaultType = {
32
+ autofocus: 'boolean',
33
+ trapElement: 'element',
34
+ };
35
+
36
+ /**
37
+ * Class definition
38
+ */
39
+
40
+ class FocusTrap extends Config {
41
+ constructor(config) {
42
+ super();
43
+ this._config = this._getConfig(config);
44
+ this._isActive = false;
45
+ this._lastTabNavDirection = null;
46
+ }
47
+
48
+ // Getters
49
+ static get Default() {
50
+ return Default;
51
+ }
52
+
53
+ static get DefaultType() {
54
+ return DefaultType;
55
+ }
56
+
57
+ static get NAME() {
58
+ return NAME;
59
+ }
60
+
61
+ // Public
62
+ activate() {
63
+ if (this._isActive) {
64
+ return;
65
+ }
66
+
67
+ if (this._config.autofocus) {
68
+ this._config.trapElement.focus();
69
+ }
70
+
71
+ EventHandler.off(document, EVENT_KEY); // guard against infinite focus loop
72
+ EventHandler.on(document, EVENT_FOCUSIN, (event) => this._handleFocusin(event));
73
+ EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));
74
+
75
+ this._isActive = true;
76
+ }
77
+
78
+ deactivate() {
79
+ if (!this._isActive) {
80
+ return;
81
+ }
82
+
83
+ this._isActive = false;
84
+ EventHandler.off(document, EVENT_KEY);
85
+ }
86
+
87
+ // Private
88
+ _handleFocusin(event) {
89
+ const { trapElement } = this._config;
90
+
91
+ if (
92
+ event.target === document ||
93
+ event.target === trapElement ||
94
+ trapElement.contains(event.target)
95
+ ) {
96
+ return;
97
+ }
98
+
99
+ const elements = SelectorEngine.focusableChildren(trapElement);
100
+
101
+ if (elements.length === 0) {
102
+ trapElement.focus();
103
+ } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
104
+ elements[elements.length - 1].focus();
105
+ } else {
106
+ elements[0].focus();
107
+ }
108
+ }
109
+
110
+ _handleKeydown(event) {
111
+ if (event.key !== TAB_KEY) {
112
+ return;
113
+ }
114
+
115
+ this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
116
+ }
117
+ }
118
+
119
+ export default FocusTrap;
@@ -0,0 +1,342 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): util/index.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ const MAX_UID = 1_000_000;
9
+ const MILLISECONDS_MULTIPLIER = 1000;
10
+ const TRANSITION_END = 'transitionend';
11
+
12
+ // Shout-out Angus Croll (https://goo.gl/pxwQGp)
13
+ const toType = (object) => {
14
+ if (object === null || object === undefined) {
15
+ return `${object}`;
16
+ }
17
+
18
+ return Object.prototype.toString
19
+ .call(object)
20
+ .match(/\s([a-z]+)/i)[1]
21
+ .toLowerCase();
22
+ };
23
+
24
+ /**
25
+ * Public Util API
26
+ */
27
+
28
+ const getUID = (prefix) => {
29
+ do {
30
+ prefix += Math.floor(Math.random() * MAX_UID);
31
+ } while (document.getElementById(prefix));
32
+
33
+ return prefix;
34
+ };
35
+
36
+ const getSelector = (element) => {
37
+ let selector = element.getAttribute('data-mdb-target');
38
+
39
+ if (!selector || selector === '#') {
40
+ let hrefAttribute = element.getAttribute('href');
41
+
42
+ // The only valid content that could double as a selector are IDs or classes,
43
+ // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
44
+ // `document.querySelector` will rightfully complain it is invalid.
45
+ // See https://github.com/twbs/bootstrap/issues/32273
46
+ if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {
47
+ return null;
48
+ }
49
+
50
+ // Just in case some CMS puts out a full URL with the anchor appended
51
+ if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
52
+ hrefAttribute = `#${hrefAttribute.split('#')[1]}`;
53
+ }
54
+
55
+ selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
56
+ }
57
+
58
+ return selector;
59
+ };
60
+
61
+ const getSelectorFromElement = (element) => {
62
+ const selector = getSelector(element);
63
+
64
+ if (selector) {
65
+ return document.querySelector(selector) ? selector : null;
66
+ }
67
+
68
+ return null;
69
+ };
70
+
71
+ const getElementFromSelector = (element) => {
72
+ const selector = getSelector(element);
73
+
74
+ return selector ? document.querySelector(selector) : null;
75
+ };
76
+
77
+ const getTransitionDurationFromElement = (element) => {
78
+ if (!element) {
79
+ return 0;
80
+ }
81
+
82
+ // Get transition-duration of the element
83
+ let { transitionDuration, transitionDelay } = window.getComputedStyle(element);
84
+
85
+ const floatTransitionDuration = Number.parseFloat(transitionDuration);
86
+ const floatTransitionDelay = Number.parseFloat(transitionDelay);
87
+
88
+ // Return 0 if element or transition duration is not found
89
+ if (!floatTransitionDuration && !floatTransitionDelay) {
90
+ return 0;
91
+ }
92
+
93
+ // If multiple durations are defined, take the first
94
+ transitionDuration = transitionDuration.split(',')[0];
95
+ transitionDelay = transitionDelay.split(',')[0];
96
+
97
+ return (
98
+ (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) *
99
+ MILLISECONDS_MULTIPLIER
100
+ );
101
+ };
102
+
103
+ const triggerTransitionEnd = (element) => {
104
+ element.dispatchEvent(new Event(TRANSITION_END));
105
+ };
106
+
107
+ const isElement = (object) => {
108
+ if (!object || typeof object !== 'object') {
109
+ return false;
110
+ }
111
+
112
+ if (typeof object.jquery !== 'undefined') {
113
+ object = object[0];
114
+ }
115
+
116
+ return typeof object.nodeType !== 'undefined';
117
+ };
118
+
119
+ const getElement = (object) => {
120
+ // it's a jQuery object or a node element
121
+ if (isElement(object)) {
122
+ return object.jquery ? object[0] : object;
123
+ }
124
+
125
+ if (typeof object === 'string' && object.length > 0) {
126
+ return document.querySelector(object);
127
+ }
128
+
129
+ return null;
130
+ };
131
+
132
+ const isVisible = (element) => {
133
+ if (!isElement(element) || element.getClientRects().length === 0) {
134
+ return false;
135
+ }
136
+
137
+ const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';
138
+ // Handle `details` element as its content may falsie appear visible when it is closed
139
+ const closedDetails = element.closest('details:not([open])');
140
+
141
+ if (!closedDetails) {
142
+ return elementIsVisible;
143
+ }
144
+
145
+ if (closedDetails !== element) {
146
+ const summary = element.closest('summary');
147
+ if (summary && summary.parentNode !== closedDetails) {
148
+ return false;
149
+ }
150
+
151
+ if (summary === null) {
152
+ return false;
153
+ }
154
+ }
155
+
156
+ return elementIsVisible;
157
+ };
158
+
159
+ const isDisabled = (element) => {
160
+ if (!element || element.nodeType !== Node.ELEMENT_NODE) {
161
+ return true;
162
+ }
163
+
164
+ if (element.classList.contains('disabled')) {
165
+ return true;
166
+ }
167
+
168
+ if (typeof element.disabled !== 'undefined') {
169
+ return element.disabled;
170
+ }
171
+
172
+ return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
173
+ };
174
+
175
+ const findShadowRoot = (element) => {
176
+ if (!document.documentElement.attachShadow) {
177
+ return null;
178
+ }
179
+
180
+ // Can find the shadow root otherwise it'll return the document
181
+ if (typeof element.getRootNode === 'function') {
182
+ const root = element.getRootNode();
183
+ return root instanceof ShadowRoot ? root : null;
184
+ }
185
+
186
+ if (element instanceof ShadowRoot) {
187
+ return element;
188
+ }
189
+
190
+ // when we don't find a shadow root
191
+ if (!element.parentNode) {
192
+ return null;
193
+ }
194
+
195
+ return findShadowRoot(element.parentNode);
196
+ };
197
+
198
+ const noop = () => {};
199
+
200
+ /**
201
+ * Trick to restart an element's animation
202
+ *
203
+ * @param {HTMLElement} element
204
+ * @return void
205
+ *
206
+ * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
207
+ */
208
+ const reflow = (element) => {
209
+ element.offsetHeight; // eslint-disable-line no-unused-expressions
210
+ };
211
+
212
+ const getjQuery = () => {
213
+ if (window.jQuery && !document.body.hasAttribute('data-mdb-no-jquery')) {
214
+ return window.jQuery;
215
+ }
216
+
217
+ return null;
218
+ };
219
+
220
+ const DOMContentLoadedCallbacks = [];
221
+
222
+ const onDOMContentLoaded = (callback) => {
223
+ if (document.readyState === 'loading') {
224
+ // add listener on the first call when the document is in loading state
225
+ if (!DOMContentLoadedCallbacks.length) {
226
+ document.addEventListener('DOMContentLoaded', () => {
227
+ for (const callback of DOMContentLoadedCallbacks) {
228
+ callback();
229
+ }
230
+ });
231
+ }
232
+
233
+ DOMContentLoadedCallbacks.push(callback);
234
+ } else {
235
+ callback();
236
+ }
237
+ };
238
+
239
+ const isRTL = () => document.documentElement.dir === 'rtl';
240
+
241
+ const defineJQueryPlugin = (plugin) => {
242
+ onDOMContentLoaded(() => {
243
+ const $ = getjQuery();
244
+ /* istanbul ignore if */
245
+ if ($) {
246
+ const name = plugin.NAME;
247
+ const JQUERY_NO_CONFLICT = $.fn[name];
248
+ $.fn[name] = plugin.jQueryInterface;
249
+ $.fn[name].Constructor = plugin;
250
+ $.fn[name].noConflict = () => {
251
+ $.fn[name] = JQUERY_NO_CONFLICT;
252
+ return plugin.jQueryInterface;
253
+ };
254
+ }
255
+ });
256
+ };
257
+
258
+ const execute = (callback) => {
259
+ if (typeof callback === 'function') {
260
+ callback();
261
+ }
262
+ };
263
+
264
+ const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
265
+ if (!waitForTransition) {
266
+ execute(callback);
267
+ return;
268
+ }
269
+
270
+ const durationPadding = 5;
271
+ const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
272
+
273
+ let called = false;
274
+
275
+ const handler = ({ target }) => {
276
+ if (target !== transitionElement) {
277
+ return;
278
+ }
279
+
280
+ called = true;
281
+ transitionElement.removeEventListener(TRANSITION_END, handler);
282
+ execute(callback);
283
+ };
284
+
285
+ transitionElement.addEventListener(TRANSITION_END, handler);
286
+ setTimeout(() => {
287
+ if (!called) {
288
+ triggerTransitionEnd(transitionElement);
289
+ }
290
+ }, emulatedDuration);
291
+ };
292
+
293
+ /**
294
+ * Return the previous/next element of a list.
295
+ *
296
+ * @param {array} list The list of elements
297
+ * @param activeElement The active element
298
+ * @param shouldGetNext Choose to get next or previous element
299
+ * @param isCycleAllowed
300
+ * @return {Element|elem} The proper element
301
+ */
302
+ const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
303
+ const listLength = list.length;
304
+ let index = list.indexOf(activeElement);
305
+
306
+ // if the element does not exist in the list return an element
307
+ // depending on the direction and if cycle is allowed
308
+ if (index === -1) {
309
+ return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
310
+ }
311
+
312
+ index += shouldGetNext ? 1 : -1;
313
+
314
+ if (isCycleAllowed) {
315
+ index = (index + listLength) % listLength;
316
+ }
317
+
318
+ return list[Math.max(0, Math.min(index, listLength - 1))];
319
+ };
320
+
321
+ export {
322
+ defineJQueryPlugin,
323
+ execute,
324
+ executeAfterTransition,
325
+ findShadowRoot,
326
+ getElement,
327
+ getElementFromSelector,
328
+ getjQuery,
329
+ getNextActiveElement,
330
+ getSelectorFromElement,
331
+ getTransitionDurationFromElement,
332
+ getUID,
333
+ isDisabled,
334
+ isElement,
335
+ isRTL,
336
+ isVisible,
337
+ noop,
338
+ onDOMContentLoaded,
339
+ reflow,
340
+ triggerTransitionEnd,
341
+ toType,
342
+ };