@unlk/keymaster 1.0.2 → 1.0.3

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 (49) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +136 -0
  3. package/dist/css/keymaster.css +642 -588
  4. package/dist/css/keymaster.css.map +1 -1
  5. package/dist/css/keymaster.min.css +5 -5
  6. package/dist/css/keymaster.min.css.map +1 -1
  7. package/dist/js/keymaster.js +180 -80
  8. package/dist/js/keymaster.js.map +1 -1
  9. package/dist/js/keymaster.min.js +65 -65
  10. package/dist/js/keymaster.min.js.map +1 -1
  11. package/images/unlock.svg +9 -0
  12. package/js/bootstrap.js +1 -0
  13. package/js/video-modal.js +123 -0
  14. package/package.json +5 -3
  15. package/scss/assets/bootstrap5/_accordion.scss +4 -9
  16. package/scss/assets/bootstrap5/_button-group.scss +8 -3
  17. package/scss/assets/bootstrap5/_card.scss +1 -2
  18. package/scss/assets/bootstrap5/_carousel.scss +15 -25
  19. package/scss/assets/bootstrap5/_close.scss +9 -6
  20. package/scss/assets/bootstrap5/_functions.scss +1 -1
  21. package/scss/assets/bootstrap5/_list-group.scss +27 -25
  22. package/scss/assets/bootstrap5/_modal.scss +6 -2
  23. package/scss/assets/bootstrap5/_nav.scss +1 -1
  24. package/scss/assets/bootstrap5/_navbar.scss +1 -1
  25. package/scss/assets/bootstrap5/_offcanvas.scss +5 -1
  26. package/scss/assets/bootstrap5/_pagination.scss +1 -1
  27. package/scss/assets/bootstrap5/_progress.scss +1 -1
  28. package/scss/assets/bootstrap5/_reboot.scss +1 -1
  29. package/scss/assets/bootstrap5/_type.scss +1 -1
  30. package/scss/assets/bootstrap5/_variables-dark.scss +17 -2
  31. package/scss/assets/bootstrap5/_variables.scss +16 -16
  32. package/scss/assets/bootstrap5/forms/_floating-labels.scss +18 -16
  33. package/scss/assets/bootstrap5/forms/_input-group.scss +1 -1
  34. package/scss/assets/bootstrap5/mixins/_banner.scss +2 -2
  35. package/scss/assets/bootstrap5/mixins/_grid.scss +1 -1
  36. package/scss/assets/bootstrap5/mixins/_visually-hidden.scss +1 -1
  37. package/scss/keymaster.scss +3 -0
  38. package/scss/theme/_accordion.scss +13 -3
  39. package/scss/theme/_alert.scss +2 -0
  40. package/scss/theme/_badge.scss +1 -1
  41. package/scss/theme/_buttons.scss +5 -5
  42. package/scss/theme/_carousel.scss +3 -6
  43. package/scss/theme/_close.scss +3 -0
  44. package/scss/theme/_modal.scss +35 -0
  45. package/scss/theme/_spinners.scss +9 -0
  46. package/scss/theme/_typography.scss +8 -13
  47. package/scss/theme/_utilities-overrides.scss +33 -33
  48. package/scss/theme/_variables-overrides.scss +15 -8
  49. package/scss/theme/_variables.scss +12 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Unlock Keymaster v1.0.2 (https://unlock-com.github.io/keymaster)
2
+ * Unlock Keymaster v1.0.3 (https://unlock-com.github.io/keymaster)
3
3
  * Copyright 2022-2025 Unlk Developers
4
4
  */
5
5
  (function (global, factory) {
@@ -32,8 +32,8 @@
32
32
  var data = {exports: {}};
33
33
 
34
34
  /*!
35
- * Bootstrap data.js v5.3.3 (https://getbootstrap.com/)
36
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
35
+ * Bootstrap data.js v5.3.5 (https://getbootstrap.com/)
36
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
37
37
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
38
38
  */
39
39
 
@@ -97,8 +97,8 @@
97
97
  var util = {exports: {}};
98
98
 
99
99
  /*!
100
- * Bootstrap index.js v5.3.3 (https://getbootstrap.com/)
101
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
100
+ * Bootstrap index.js v5.3.5 (https://getbootstrap.com/)
101
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
102
102
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
103
103
  */
104
104
 
@@ -254,7 +254,7 @@
254
254
  * @param {HTMLElement} element
255
255
  * @return void
256
256
  *
257
- * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
257
+ * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
258
258
  */
259
259
  const reflow = element => {
260
260
  element.offsetHeight; // eslint-disable-line no-unused-expressions
@@ -299,7 +299,7 @@
299
299
  });
300
300
  };
301
301
  const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
302
- return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
302
+ return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue;
303
303
  };
304
304
  const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
305
305
  if (!waitForTransition) {
@@ -377,8 +377,8 @@
377
377
  }(util, util.exports));
378
378
 
379
379
  /*!
380
- * Bootstrap event-handler.js v5.3.3 (https://getbootstrap.com/)
381
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
380
+ * Bootstrap event-handler.js v5.3.5 (https://getbootstrap.com/)
381
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
382
382
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
383
383
  */
384
384
 
@@ -615,8 +615,8 @@
615
615
  var manipulator = {exports: {}};
616
616
 
617
617
  /*!
618
- * Bootstrap manipulator.js v5.3.3 (https://getbootstrap.com/)
619
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
618
+ * Bootstrap manipulator.js v5.3.5 (https://getbootstrap.com/)
619
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
620
620
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
621
621
  */
622
622
 
@@ -671,7 +671,7 @@
671
671
  const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
672
672
  for (const key of bsKeys) {
673
673
  let pureKey = key.replace(/^bs/, '');
674
- pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
674
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
675
675
  attributes[pureKey] = normalizeData(element.dataset[key]);
676
676
  }
677
677
  return attributes;
@@ -685,8 +685,8 @@
685
685
  }(manipulator));
686
686
 
687
687
  /*!
688
- * Bootstrap config.js v5.3.3 (https://getbootstrap.com/)
689
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
688
+ * Bootstrap config.js v5.3.5 (https://getbootstrap.com/)
689
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
690
690
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
691
691
  */
692
692
 
@@ -750,8 +750,8 @@
750
750
  }(config));
751
751
 
752
752
  /*!
753
- * Bootstrap base-component.js v5.3.3 (https://getbootstrap.com/)
754
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
753
+ * Bootstrap base-component.js v5.3.5 (https://getbootstrap.com/)
754
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
755
755
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
756
756
  */
757
757
 
@@ -770,7 +770,7 @@
770
770
  /**
771
771
  * Constants
772
772
  */
773
- const VERSION = '5.3.3';
773
+ const VERSION = '5.3.5';
774
774
 
775
775
  /**
776
776
  * Class definition
@@ -835,8 +835,8 @@
835
835
  var selectorEngine = {exports: {}};
836
836
 
837
837
  /*!
838
- * Bootstrap selector-engine.js v5.3.3 (https://getbootstrap.com/)
839
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
838
+ * Bootstrap selector-engine.js v5.3.5 (https://getbootstrap.com/)
839
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
840
840
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
841
841
  */
842
842
 
@@ -937,8 +937,8 @@
937
937
  }(selectorEngine));
938
938
 
939
939
  /*!
940
- * Bootstrap component-functions.js v5.3.3 (https://getbootstrap.com/)
941
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
940
+ * Bootstrap component-functions.js v5.3.5 (https://getbootstrap.com/)
941
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
942
942
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
943
943
  */
944
944
 
@@ -978,8 +978,8 @@
978
978
  }(componentFunctions, componentFunctions.exports));
979
979
 
980
980
  /*!
981
- * Bootstrap alert.js v5.3.3 (https://getbootstrap.com/)
982
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
981
+ * Bootstrap alert.js v5.3.5 (https://getbootstrap.com/)
982
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
983
983
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
984
984
  */
985
985
 
@@ -1071,8 +1071,8 @@
1071
1071
  var swipe = {exports: {}};
1072
1072
 
1073
1073
  /*!
1074
- * Bootstrap swipe.js v5.3.3 (https://getbootstrap.com/)
1075
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1074
+ * Bootstrap swipe.js v5.3.5 (https://getbootstrap.com/)
1075
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1076
1076
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1077
1077
  */
1078
1078
 
@@ -1203,8 +1203,8 @@
1203
1203
  }(swipe));
1204
1204
 
1205
1205
  /*!
1206
- * Bootstrap carousel.js v5.3.3 (https://getbootstrap.com/)
1207
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1206
+ * Bootstrap carousel.js v5.3.5 (https://getbootstrap.com/)
1207
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1208
1208
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1209
1209
  */
1210
1210
 
@@ -1592,8 +1592,8 @@
1592
1592
  var button$1 = {exports: {}};
1593
1593
 
1594
1594
  /*!
1595
- * Bootstrap button.js v5.3.3 (https://getbootstrap.com/)
1596
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1595
+ * Bootstrap button.js v5.3.5 (https://getbootstrap.com/)
1596
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
1597
1597
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1598
1598
  */
1599
1599
 
@@ -3339,8 +3339,8 @@
3339
3339
  var require$$0 = /*@__PURE__*/getAugmentedNamespace(Popper);
3340
3340
 
3341
3341
  /*!
3342
- * Bootstrap dropdown.js v5.3.3 (https://getbootstrap.com/)
3343
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
3342
+ * Bootstrap dropdown.js v5.3.5 (https://getbootstrap.com/)
3343
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
3344
3344
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3345
3345
  */
3346
3346
 
@@ -3548,7 +3548,7 @@
3548
3548
  }
3549
3549
  _createPopper() {
3550
3550
  if (typeof Popper__namespace === 'undefined') {
3551
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
3551
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org/docs/v2/)');
3552
3552
  }
3553
3553
  let referenceElement = this._element;
3554
3554
  if (this._config.reference === 'parent') {
@@ -3627,7 +3627,7 @@
3627
3627
  }
3628
3628
  return {
3629
3629
  ...defaultBsPopperConfig,
3630
- ...index_js.execute(this._config.popperConfig, [defaultBsPopperConfig])
3630
+ ...index_js.execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
3631
3631
  };
3632
3632
  }
3633
3633
  _selectMenuItem({
@@ -3746,8 +3746,8 @@
3746
3746
  var collapse$1 = {exports: {}};
3747
3747
 
3748
3748
  /*!
3749
- * Bootstrap collapse.js v5.3.3 (https://getbootstrap.com/)
3750
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
3749
+ * Bootstrap collapse.js v5.3.5 (https://getbootstrap.com/)
3750
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
3751
3751
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3752
3752
  */
3753
3753
 
@@ -3998,8 +3998,8 @@
3998
3998
  var backdrop = {exports: {}};
3999
3999
 
4000
4000
  /*!
4001
- * Bootstrap backdrop.js v5.3.3 (https://getbootstrap.com/)
4002
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4001
+ * Bootstrap backdrop.js v5.3.5 (https://getbootstrap.com/)
4002
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4003
4003
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4004
4004
  */
4005
4005
 
@@ -4136,8 +4136,8 @@
4136
4136
  var focustrap = {exports: {}};
4137
4137
 
4138
4138
  /*!
4139
- * Bootstrap focustrap.js v5.3.3 (https://getbootstrap.com/)
4140
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4139
+ * Bootstrap focustrap.js v5.3.5 (https://getbootstrap.com/)
4140
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4141
4141
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4142
4142
  */
4143
4143
 
@@ -4248,8 +4248,8 @@
4248
4248
  var scrollbar = {exports: {}};
4249
4249
 
4250
4250
  /*!
4251
- * Bootstrap scrollbar.js v5.3.3 (https://getbootstrap.com/)
4252
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4251
+ * Bootstrap scrollbar.js v5.3.5 (https://getbootstrap.com/)
4252
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4253
4253
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4254
4254
  */
4255
4255
 
@@ -4358,8 +4358,8 @@
4358
4358
  }(scrollbar));
4359
4359
 
4360
4360
  /*!
4361
- * Bootstrap offcanvas.js v5.3.3 (https://getbootstrap.com/)
4362
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4361
+ * Bootstrap offcanvas.js v5.3.5 (https://getbootstrap.com/)
4362
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4363
4363
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4364
4364
  */
4365
4365
 
@@ -4605,8 +4605,8 @@
4605
4605
  var modal$1 = {exports: {}};
4606
4606
 
4607
4607
  /*!
4608
- * Bootstrap modal.js v5.3.3 (https://getbootstrap.com/)
4609
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4608
+ * Bootstrap modal.js v5.3.5 (https://getbootstrap.com/)
4609
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4610
4610
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4611
4611
  */
4612
4612
 
@@ -4926,8 +4926,8 @@
4926
4926
  var scrollspy$1 = {exports: {}};
4927
4927
 
4928
4928
  /*!
4929
- * Bootstrap scrollspy.js v5.3.3 (https://getbootstrap.com/)
4930
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4929
+ * Bootstrap scrollspy.js v5.3.5 (https://getbootstrap.com/)
4930
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4931
4931
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4932
4932
  */
4933
4933
 
@@ -5206,8 +5206,8 @@
5206
5206
  var sanitizer = {exports: {}};
5207
5207
 
5208
5208
  /*!
5209
- * Bootstrap sanitizer.js v5.3.3 (https://getbootstrap.com/)
5210
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5209
+ * Bootstrap sanitizer.js v5.3.5 (https://getbootstrap.com/)
5210
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5211
5211
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5212
5212
  */
5213
5213
 
@@ -5322,8 +5322,8 @@
5322
5322
  var templateFactory = {exports: {}};
5323
5323
 
5324
5324
  /*!
5325
- * Bootstrap template-factory.js v5.3.3 (https://getbootstrap.com/)
5326
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5325
+ * Bootstrap template-factory.js v5.3.5 (https://getbootstrap.com/)
5326
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5327
5327
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5328
5328
  */
5329
5329
 
@@ -5454,7 +5454,7 @@
5454
5454
  return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
5455
5455
  }
5456
5456
  _resolvePossibleFunction(arg) {
5457
- return index_js.execute(arg, [this]);
5457
+ return index_js.execute(arg, [undefined, this]);
5458
5458
  }
5459
5459
  _putElementInTemplate(element, templateElement) {
5460
5460
  if (this._config.html) {
@@ -5470,8 +5470,8 @@
5470
5470
  }(templateFactory));
5471
5471
 
5472
5472
  /*!
5473
- * Bootstrap tooltip.js v5.3.3 (https://getbootstrap.com/)
5474
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5473
+ * Bootstrap tooltip.js v5.3.5 (https://getbootstrap.com/)
5474
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
5475
5475
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5476
5476
  */
5477
5477
 
@@ -5588,7 +5588,7 @@
5588
5588
  class Tooltip extends BaseComponent {
5589
5589
  constructor(element, config) {
5590
5590
  if (typeof Popper__namespace === 'undefined') {
5591
- throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
5591
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org/docs/v2/)');
5592
5592
  }
5593
5593
  super(element, config);
5594
5594
 
@@ -5634,7 +5634,6 @@
5634
5634
  if (!this._isEnabled) {
5635
5635
  return;
5636
5636
  }
5637
- this._activeTrigger.click = !this._activeTrigger.click;
5638
5637
  if (this._isShown()) {
5639
5638
  this._leave();
5640
5639
  return;
@@ -5822,7 +5821,7 @@
5822
5821
  return offset;
5823
5822
  }
5824
5823
  _resolvePossibleFunction(arg) {
5825
- return index_js.execute(arg, [this._element]);
5824
+ return index_js.execute(arg, [this._element, this._element]);
5826
5825
  }
5827
5826
  _getPopperConfig(attachment) {
5828
5827
  const defaultBsPopperConfig = {
@@ -5860,7 +5859,7 @@
5860
5859
  };
5861
5860
  return {
5862
5861
  ...defaultBsPopperConfig,
5863
- ...index_js.execute(this._config.popperConfig, [defaultBsPopperConfig])
5862
+ ...index_js.execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
5864
5863
  };
5865
5864
  }
5866
5865
  _setListeners() {
@@ -6019,8 +6018,8 @@
6019
6018
  var tooltip = tooltip$1.exports;
6020
6019
 
6021
6020
  /*!
6022
- * Bootstrap popover.js v5.3.3 (https://getbootstrap.com/)
6023
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6021
+ * Bootstrap popover.js v5.3.5 (https://getbootstrap.com/)
6022
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6024
6023
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6025
6024
  */
6026
6025
 
@@ -6116,8 +6115,8 @@
6116
6115
  var toast$1 = {exports: {}};
6117
6116
 
6118
6117
  /*!
6119
- * Bootstrap toast.js v5.3.3 (https://getbootstrap.com/)
6120
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6118
+ * Bootstrap toast.js v5.3.5 (https://getbootstrap.com/)
6119
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6121
6120
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6122
6121
  */
6123
6122
 
@@ -6316,8 +6315,8 @@
6316
6315
  var tab$1 = {exports: {}};
6317
6316
 
6318
6317
  /*!
6319
- * Bootstrap tab.js v5.3.3 (https://getbootstrap.com/)
6320
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6318
+ * Bootstrap tab.js v5.3.5 (https://getbootstrap.com/)
6319
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
6321
6320
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6322
6321
  */
6323
6322
 
@@ -6760,7 +6759,7 @@
6760
6759
  });
6761
6760
  };
6762
6761
  const execute$1 = (possibleCallback, args = [], defaultValue = possibleCallback) => {
6763
- return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
6762
+ return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue;
6764
6763
  };
6765
6764
  const executeAfterTransition$1 = (callback, transitionElement, waitForTransition = true) => {
6766
6765
  if (!waitForTransition) {
@@ -7056,7 +7055,7 @@
7056
7055
  const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
7057
7056
  for (const key of bsKeys) {
7058
7057
  let pureKey = key.replace(/^bs/, '');
7059
- pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
7058
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
7060
7059
  attributes[pureKey] = normalizeData$1(element.dataset[key]);
7061
7060
  }
7062
7061
  return attributes;
@@ -7129,7 +7128,7 @@
7129
7128
  * Constants
7130
7129
  */
7131
7130
 
7132
- const VERSION$1 = '5.3.3';
7131
+ const VERSION$1 = '5.3.5';
7133
7132
 
7134
7133
  /**
7135
7134
  * Class definition
@@ -7249,8 +7248,8 @@
7249
7248
  defineJQueryPlugin$1(Datepicker);
7250
7249
 
7251
7250
  /*!
7252
- * Bootstrap v5.3.3 (https://getbootstrap.com/)
7253
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
7251
+ * Bootstrap v5.3.5 (https://getbootstrap.com/)
7252
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
7254
7253
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7255
7254
  */
7256
7255
 
@@ -7450,7 +7449,7 @@
7450
7449
  * @param {HTMLElement} element
7451
7450
  * @return void
7452
7451
  *
7453
- * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
7452
+ * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
7454
7453
  */
7455
7454
  const reflow = element => {
7456
7455
  element.offsetHeight; // eslint-disable-line no-unused-expressions
@@ -7495,7 +7494,7 @@
7495
7494
  });
7496
7495
  };
7497
7496
  const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
7498
- return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
7497
+ return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue;
7499
7498
  };
7500
7499
  const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
7501
7500
  if (!waitForTransition) {
@@ -7816,7 +7815,7 @@
7816
7815
  const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
7817
7816
  for (const key of bsKeys) {
7818
7817
  let pureKey = key.replace(/^bs/, '');
7819
- pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
7818
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
7820
7819
  attributes[pureKey] = normalizeData(element.dataset[key]);
7821
7820
  }
7822
7821
  return attributes;
@@ -7889,7 +7888,7 @@
7889
7888
  * Constants
7890
7889
  */
7891
7890
 
7892
- const VERSION = '5.3.3';
7891
+ const VERSION = '5.3.5';
7893
7892
 
7894
7893
  /**
7895
7894
  * Class definition
@@ -9098,7 +9097,7 @@
9098
9097
  }
9099
9098
  _createPopper() {
9100
9099
  if (typeof Popper === 'undefined') {
9101
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
9100
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org/docs/v2/)');
9102
9101
  }
9103
9102
  let referenceElement = this._element;
9104
9103
  if (this._config.reference === 'parent') {
@@ -9177,7 +9176,7 @@
9177
9176
  }
9178
9177
  return {
9179
9178
  ...defaultBsPopperConfig,
9180
- ...execute(this._config.popperConfig, [defaultBsPopperConfig])
9179
+ ...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
9181
9180
  };
9182
9181
  }
9183
9182
  _selectMenuItem({
@@ -10358,7 +10357,7 @@
10358
10357
  return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
10359
10358
  }
10360
10359
  _resolvePossibleFunction(arg) {
10361
- return execute(arg, [this]);
10360
+ return execute(arg, [undefined, this]);
10362
10361
  }
10363
10362
  _putElementInTemplate(element, templateElement) {
10364
10363
  if (this._config.html) {
@@ -10456,7 +10455,7 @@
10456
10455
  class Tooltip extends BaseComponent {
10457
10456
  constructor(element, config) {
10458
10457
  if (typeof Popper === 'undefined') {
10459
- throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
10458
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org/docs/v2/)');
10460
10459
  }
10461
10460
  super(element, config);
10462
10461
 
@@ -10502,7 +10501,6 @@
10502
10501
  if (!this._isEnabled) {
10503
10502
  return;
10504
10503
  }
10505
- this._activeTrigger.click = !this._activeTrigger.click;
10506
10504
  if (this._isShown()) {
10507
10505
  this._leave();
10508
10506
  return;
@@ -10690,7 +10688,7 @@
10690
10688
  return offset;
10691
10689
  }
10692
10690
  _resolvePossibleFunction(arg) {
10693
- return execute(arg, [this._element]);
10691
+ return execute(arg, [this._element, this._element]);
10694
10692
  }
10695
10693
  _getPopperConfig(attachment) {
10696
10694
  const defaultBsPopperConfig = {
@@ -10728,7 +10726,7 @@
10728
10726
  };
10729
10727
  return {
10730
10728
  ...defaultBsPopperConfig,
10731
- ...execute(this._config.popperConfig, [defaultBsPopperConfig])
10729
+ ...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
10732
10730
  };
10733
10731
  }
10734
10732
  _setListeners() {
@@ -11701,6 +11699,107 @@
11701
11699
  }
11702
11700
  }
11703
11701
 
11702
+ // Load YouTube API
11703
+ const youTubeAPIInitPromise = new Promise(resolve => {
11704
+ if (window.YT?.Player) {
11705
+ resolve();
11706
+ } else {
11707
+ window.onYouTubeIframeAPIReady = () => {
11708
+ resolve();
11709
+ };
11710
+ const ytScript = document.createElement('script');
11711
+ ytScript.src = 'https://www.youtube.com/iframe_api';
11712
+ document.head.append(ytScript);
11713
+ }
11714
+ });
11715
+ const vimeoAPIInitPromise = new Promise(resolve => {
11716
+ if (window.Vimeo?.Player) {
11717
+ resolve();
11718
+ } else {
11719
+ const vimeoScript = document.createElement('script');
11720
+ vimeoScript.src = 'https://player.vimeo.com/api/player.js';
11721
+ vimeoScript.addEventListener('load', () => {
11722
+ resolve();
11723
+ });
11724
+ document.head.append(vimeoScript);
11725
+ }
11726
+ });
11727
+ class VideoModal {
11728
+ constructor(modal) {
11729
+ this.modal = modal;
11730
+ this.dialog = modal.querySelector('.modal-dialog-media');
11731
+ this.container = modal.querySelector('.ratio');
11732
+ if (!this.dialog || !this.container) {
11733
+ return;
11734
+ }
11735
+ this.modalId = modal.id;
11736
+ this.youtubeSrc = this.container.getAttribute('data-src');
11737
+ this.vimeoUrl = this.container.getAttribute('data-vimeo-url');
11738
+ this.vimeoPlayer = null;
11739
+ this.youtubePlayer = null;
11740
+ modal.addEventListener('show.bs.modal', () => this.onShow());
11741
+ modal.addEventListener('hidden.bs.modal', () => this.onHide());
11742
+ }
11743
+ async onShow() {
11744
+ const playerClass = `${this.modalId}-youtube-player`;
11745
+ if (this.vimeoUrl) {
11746
+ const vimeoId = this.getVimeoId(this.vimeoUrl);
11747
+ await vimeoAPIInitPromise;
11748
+ this.vimeoPlayer = new window.Vimeo.Player(this.container, {
11749
+ id: vimeoId,
11750
+ autoplay: true
11751
+ });
11752
+ }
11753
+ if (this.youtubeSrc) {
11754
+ const youtubeId = this.getYouTubeId(this.youtubeSrc);
11755
+ await youTubeAPIInitPromise;
11756
+
11757
+ // Dynamically insert YouTube div
11758
+ this.container.innerHTML = `<div class="${playerClass} w-100 h-100"></div>`;
11759
+ const playerDiv = this.container.querySelector(`.${playerClass}`);
11760
+
11761
+ // eslint-disable-next-line no-undef
11762
+ this.youtubePlayer = new YT.Player(playerDiv, {
11763
+ videoId: youtubeId,
11764
+ playerVars: {
11765
+ autoplay: 1,
11766
+ rel: 0
11767
+ }
11768
+ });
11769
+ }
11770
+ }
11771
+ onHide() {
11772
+ if (this.vimeoPlayer) {
11773
+ this.vimeoPlayer.unload().catch(() => {});
11774
+ this.vimeoPlayer = null;
11775
+ }
11776
+ if (this.youtubePlayer) {
11777
+ this.youtubePlayer.destroy();
11778
+ this.youtubePlayer = null;
11779
+ }
11780
+ }
11781
+ getYouTubeId(url) {
11782
+ const match = url.match(/(?:v=|youtu\.be\/)([\w-]{11})/);
11783
+ return match ? match[1] : '';
11784
+ }
11785
+ getVimeoId(url) {
11786
+ const match = url.match(/vimeo\.com\/(\d+)/);
11787
+ return match ? match[1] : '';
11788
+ }
11789
+ }
11790
+
11791
+ // Auto-init for all triggered modals with dialog-media
11792
+ document.addEventListener('DOMContentLoaded', () => {
11793
+ for (const button of document.querySelectorAll('[data-bs-toggle="modal"][data-bs-target]')) {
11794
+ const targetSelector = button.getAttribute('data-bs-target');
11795
+ const modal = document.querySelector(targetSelector);
11796
+ if (modal?.querySelector('.modal-dialog-media')) {
11797
+ // eslint-disable-next-line no-new
11798
+ new VideoModal(modal);
11799
+ }
11800
+ }
11801
+ });
11802
+
11704
11803
  exports.Alert = alert;
11705
11804
  exports.Button = button;
11706
11805
  exports.Carousel = carousel_1;
@@ -11715,6 +11814,7 @@
11715
11814
  exports.Tab = tab;
11716
11815
  exports.Toast = toast;
11717
11816
  exports.Tooltip = tooltip;
11817
+ exports.VideoModal = VideoModal;
11718
11818
 
11719
11819
  Object.defineProperty(exports, '__esModule', { value: true });
11720
11820