administrate-bootstrap-theme 1.0.4 → 1.0.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c469872149e9ebaf3ed3f3ddaaecca287b5d84ddf8dbed7b53c4d564a6826cd
4
- data.tar.gz: 124aa1f1f9802e81de1757dadf0260e2248564061864fa39419633ac58ac5287
3
+ metadata.gz: aaa5f115d75e691b8a58fc48fae125239e19afb54a0666ed1bcb278d6c215db5
4
+ data.tar.gz: eed5a7db1ef5bf99693f472c6f3df0e305f491c71ce9f7e5ddeabb5b382eaee6
5
5
  SHA512:
6
- metadata.gz: 4048036b1a91e27f1eb248368899f528a80f098bc1319aaee940a22a5dbfef5917bb53f044c74230a50063fcc39d19af486a1588e8d3718b409daf20559fced0
7
- data.tar.gz: 327f630cd85bf0e28d552f5a5b21496aeaa0f376fd26d92f380f1e1170ca94cfd6cc48cb74b272fa64c9ee8811307481ad6f37c896e63f639c1c323350cbdf7f
6
+ metadata.gz: e181760902fa5b61dee3329b80f40ae5186a657b0763c97b954315e13af6e80cf67d88b6f50f0c7a11ade4cf6bed276c043614b90b7fe3f855198b826e95e4db
7
+ data.tar.gz: ad94e6464663098d6cb2df4b5ba393cd798e0fff3b4b70b6375c334343497aaa87fa919ed474b7ddb873bb8c2736367e2b0185fc7b3ab00467c265090b72a78b
data/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  [![gem downloads](https://badgen.net/rubygems/dt/administrate-bootstrap-theme)](https://rubygems.org/gems/administrate-bootstrap-theme)
4
4
  [![linters](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/linters.yml/badge.svg)](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/linters.yml)
5
5
  [![specs](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/specs.yml/badge.svg)](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/specs.yml)
6
+ [![CodeQL](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/blocknotes/administrate-bootstrap-theme/actions/workflows/codeql-analysis.yml)
6
7
 
7
8
  A Bootstrap 5 theme for [Administrate](https://github.com/thoughtbot/administrate).
8
9
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v5.1.0 (https://getbootstrap.com/)
2
+ * Bootstrap v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
@@ -7,11 +7,11 @@
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
8
  typeof define === 'function' && define.amd ? define(factory) :
9
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory());
10
- }(this, (function () { 'use strict';
10
+ })(this, (function () { 'use strict';
11
11
 
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.1.0): util/index.js
14
+ * Bootstrap (v5.1.3): util/index.js
15
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
@@ -322,7 +322,7 @@
322
322
 
323
323
  /**
324
324
  * --------------------------------------------------------------------------
325
- * Bootstrap (v5.1.0): dom/event-handler.js
325
+ * Bootstrap (v5.1.3): dom/event-handler.js
326
326
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
327
327
  * --------------------------------------------------------------------------
328
328
  */
@@ -385,7 +385,6 @@
385
385
  event.delegateTarget = target;
386
386
 
387
387
  if (handler.oneOff) {
388
- // eslint-disable-next-line unicorn/consistent-destructuring
389
388
  EventHandler.off(element, event.type, selector, fn);
390
389
  }
391
390
 
@@ -611,7 +610,7 @@
611
610
 
612
611
  /**
613
612
  * --------------------------------------------------------------------------
614
- * Bootstrap (v5.1.0): dom/data.js
613
+ * Bootstrap (v5.1.3): dom/data.js
615
614
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
616
615
  * --------------------------------------------------------------------------
617
616
  */
@@ -622,7 +621,7 @@
622
621
  * ------------------------------------------------------------------------
623
622
  */
624
623
  const elementMap = new Map();
625
- var Data = {
624
+ const Data = {
626
625
  set(element, key, instance) {
627
626
  if (!elementMap.has(element)) {
628
627
  elementMap.set(element, new Map());
@@ -665,7 +664,7 @@
665
664
 
666
665
  /**
667
666
  * --------------------------------------------------------------------------
668
- * Bootstrap (v5.1.0): base-component.js
667
+ * Bootstrap (v5.1.3): base-component.js
669
668
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
670
669
  * --------------------------------------------------------------------------
671
670
  */
@@ -675,7 +674,7 @@
675
674
  * ------------------------------------------------------------------------
676
675
  */
677
676
 
678
- const VERSION = '5.1.0';
677
+ const VERSION = '5.1.3';
679
678
 
680
679
  class BaseComponent {
681
680
  constructor(element) {
@@ -731,7 +730,7 @@
731
730
 
732
731
  /**
733
732
  * --------------------------------------------------------------------------
734
- * Bootstrap (v5.1.0): util/component-functions.js
733
+ * Bootstrap (v5.1.3): util/component-functions.js
735
734
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
736
735
  * --------------------------------------------------------------------------
737
736
  */
@@ -757,7 +756,7 @@
757
756
 
758
757
  /**
759
758
  * --------------------------------------------------------------------------
760
- * Bootstrap (v5.1.0): alert.js
759
+ * Bootstrap (v5.1.3): alert.js
761
760
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
762
761
  * --------------------------------------------------------------------------
763
762
  */
@@ -846,7 +845,7 @@
846
845
 
847
846
  /**
848
847
  * --------------------------------------------------------------------------
849
- * Bootstrap (v5.1.0): button.js
848
+ * Bootstrap (v5.1.3): button.js
850
849
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
851
850
  * --------------------------------------------------------------------------
852
851
  */
@@ -917,7 +916,7 @@
917
916
 
918
917
  /**
919
918
  * --------------------------------------------------------------------------
920
- * Bootstrap (v5.1.0): dom/manipulator.js
919
+ * Bootstrap (v5.1.3): dom/manipulator.js
921
920
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
922
921
  * --------------------------------------------------------------------------
923
922
  */
@@ -991,7 +990,7 @@
991
990
 
992
991
  /**
993
992
  * --------------------------------------------------------------------------
994
- * Bootstrap (v5.1.0): dom/selector-engine.js
993
+ * Bootstrap (v5.1.3): dom/selector-engine.js
995
994
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
996
995
  * --------------------------------------------------------------------------
997
996
  */
@@ -1061,7 +1060,7 @@
1061
1060
 
1062
1061
  /**
1063
1062
  * --------------------------------------------------------------------------
1064
- * Bootstrap (v5.1.0): carousel.js
1063
+ * Bootstrap (v5.1.3): carousel.js
1065
1064
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1066
1065
  * --------------------------------------------------------------------------
1067
1066
  */
@@ -1286,8 +1285,12 @@
1286
1285
  }
1287
1286
 
1288
1287
  _addTouchEventListeners() {
1288
+ const hasPointerPenTouch = event => {
1289
+ return this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
1290
+ };
1291
+
1289
1292
  const start = event => {
1290
- if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
1293
+ if (hasPointerPenTouch(event)) {
1291
1294
  this.touchStartX = event.clientX;
1292
1295
  } else if (!this._pointerEvent) {
1293
1296
  this.touchStartX = event.touches[0].clientX;
@@ -1300,7 +1303,7 @@
1300
1303
  };
1301
1304
 
1302
1305
  const end = event => {
1303
- if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {
1306
+ if (hasPointerPenTouch(event)) {
1304
1307
  this.touchDeltaX = event.clientX - this.touchStartX;
1305
1308
  }
1306
1309
 
@@ -1325,7 +1328,7 @@
1325
1328
  };
1326
1329
 
1327
1330
  SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {
1328
- EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault());
1331
+ EventHandler.on(itemImg, EVENT_DRAG_START, event => event.preventDefault());
1329
1332
  });
1330
1333
 
1331
1334
  if (this._pointerEvent) {
@@ -1606,7 +1609,7 @@
1606
1609
 
1607
1610
  /**
1608
1611
  * --------------------------------------------------------------------------
1609
- * Bootstrap (v5.1.0): collapse.js
1612
+ * Bootstrap (v5.1.3): collapse.js
1610
1613
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1611
1614
  * --------------------------------------------------------------------------
1612
1615
  */
@@ -1637,10 +1640,11 @@
1637
1640
  const CLASS_NAME_COLLAPSE = 'collapse';
1638
1641
  const CLASS_NAME_COLLAPSING = 'collapsing';
1639
1642
  const CLASS_NAME_COLLAPSED = 'collapsed';
1643
+ const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
1640
1644
  const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
1641
1645
  const WIDTH = 'width';
1642
1646
  const HEIGHT = 'height';
1643
- const SELECTOR_ACTIVES = '.show, .collapsing';
1647
+ const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
1644
1648
  const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
1645
1649
  /**
1646
1650
  * ------------------------------------------------------------------------
@@ -1706,7 +1710,7 @@
1706
1710
  let activesData;
1707
1711
 
1708
1712
  if (this._config.parent) {
1709
- const children = SelectorEngine.find(`.${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`, this._config.parent);
1713
+ const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
1710
1714
  actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem)); // remove children if greater depth
1711
1715
  }
1712
1716
 
@@ -1844,7 +1848,7 @@
1844
1848
  return;
1845
1849
  }
1846
1850
 
1847
- const children = SelectorEngine.find(`.${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`, this._config.parent);
1851
+ const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
1848
1852
  SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(elem => !children.includes(elem)).forEach(element => {
1849
1853
  const selected = getElementFromSelector(element);
1850
1854
 
@@ -2065,7 +2069,7 @@
2065
2069
  } // eslint-disable-next-line import/no-unused-modules
2066
2070
 
2067
2071
 
2068
- var applyStyles$1 = {
2072
+ const applyStyles$1 = {
2069
2073
  name: 'applyStyles',
2070
2074
  enabled: true,
2071
2075
  phase: 'write',
@@ -2078,31 +2082,39 @@
2078
2082
  return placement.split('-')[0];
2079
2083
  }
2080
2084
 
2081
- var round$1 = Math.round;
2082
- function getBoundingClientRect(element, includeScale) {
2083
- if (includeScale === void 0) {
2084
- includeScale = false;
2085
- }
2085
+ // import { isHTMLElement } from './instanceOf';
2086
+ function getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars
2087
+ includeScale) {
2086
2088
 
2087
2089
  var rect = element.getBoundingClientRect();
2088
2090
  var scaleX = 1;
2089
- var scaleY = 1;
2090
-
2091
- if (isHTMLElement(element) && includeScale) {
2092
- // Fallback to 1 in case both values are `0`
2093
- scaleX = rect.width / element.offsetWidth || 1;
2094
- scaleY = rect.height / element.offsetHeight || 1;
2095
- }
2091
+ var scaleY = 1; // FIXME:
2092
+ // `offsetWidth` returns an integer while `getBoundingClientRect`
2093
+ // returns a float. This results in `scaleX` or `scaleY` being
2094
+ // non-1 when it should be for elements that aren't a full pixel in
2095
+ // width or height.
2096
+ // if (isHTMLElement(element) && includeScale) {
2097
+ // const offsetHeight = element.offsetHeight;
2098
+ // const offsetWidth = element.offsetWidth;
2099
+ // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
2100
+ // // Fallback to 1 in case both values are `0`
2101
+ // if (offsetWidth > 0) {
2102
+ // scaleX = rect.width / offsetWidth || 1;
2103
+ // }
2104
+ // if (offsetHeight > 0) {
2105
+ // scaleY = rect.height / offsetHeight || 1;
2106
+ // }
2107
+ // }
2096
2108
 
2097
2109
  return {
2098
- width: round$1(rect.width / scaleX),
2099
- height: round$1(rect.height / scaleY),
2100
- top: round$1(rect.top / scaleY),
2101
- right: round$1(rect.right / scaleX),
2102
- bottom: round$1(rect.bottom / scaleY),
2103
- left: round$1(rect.left / scaleX),
2104
- x: round$1(rect.left / scaleX),
2105
- y: round$1(rect.top / scaleY)
2110
+ width: rect.width / scaleX,
2111
+ height: rect.height / scaleY,
2112
+ top: rect.top / scaleY,
2113
+ right: rect.right / scaleX,
2114
+ bottom: rect.bottom / scaleY,
2115
+ left: rect.left / scaleX,
2116
+ x: rect.left / scaleX,
2117
+ y: rect.top / scaleY
2106
2118
  };
2107
2119
  }
2108
2120
 
@@ -2347,7 +2359,7 @@
2347
2359
  } // eslint-disable-next-line import/no-unused-modules
2348
2360
 
2349
2361
 
2350
- var arrow$1 = {
2362
+ const arrow$1 = {
2351
2363
  name: 'arrow',
2352
2364
  enabled: true,
2353
2365
  phase: 'main',
@@ -2357,6 +2369,10 @@
2357
2369
  requiresIfExists: ['preventOverflow']
2358
2370
  };
2359
2371
 
2372
+ function getVariation(placement) {
2373
+ return placement.split('-')[1];
2374
+ }
2375
+
2360
2376
  var unsetSides = {
2361
2377
  top: 'auto',
2362
2378
  right: 'auto',
@@ -2383,6 +2399,7 @@
2383
2399
  var popper = _ref2.popper,
2384
2400
  popperRect = _ref2.popperRect,
2385
2401
  placement = _ref2.placement,
2402
+ variation = _ref2.variation,
2386
2403
  offsets = _ref2.offsets,
2387
2404
  position = _ref2.position,
2388
2405
  gpuAcceleration = _ref2.gpuAcceleration,
@@ -2409,7 +2426,7 @@
2409
2426
  if (offsetParent === getWindow(popper)) {
2410
2427
  offsetParent = getDocumentElement(popper);
2411
2428
 
2412
- if (getComputedStyle$1(offsetParent).position !== 'static') {
2429
+ if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') {
2413
2430
  heightProp = 'scrollHeight';
2414
2431
  widthProp = 'scrollWidth';
2415
2432
  }
@@ -2418,14 +2435,14 @@
2418
2435
 
2419
2436
  offsetParent = offsetParent;
2420
2437
 
2421
- if (placement === top) {
2438
+ if (placement === top || (placement === left || placement === right) && variation === end) {
2422
2439
  sideY = bottom; // $FlowFixMe[prop-missing]
2423
2440
 
2424
2441
  y -= offsetParent[heightProp] - popperRect.height;
2425
2442
  y *= gpuAcceleration ? 1 : -1;
2426
2443
  }
2427
2444
 
2428
- if (placement === left) {
2445
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
2429
2446
  sideX = right; // $FlowFixMe[prop-missing]
2430
2447
 
2431
2448
  x -= offsetParent[widthProp] - popperRect.width;
@@ -2440,7 +2457,7 @@
2440
2457
  if (gpuAcceleration) {
2441
2458
  var _Object$assign;
2442
2459
 
2443
- return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
2460
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
2444
2461
  }
2445
2462
 
2446
2463
  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
@@ -2458,6 +2475,7 @@
2458
2475
 
2459
2476
  var commonStyles = {
2460
2477
  placement: getBasePlacement(state.placement),
2478
+ variation: getVariation(state.placement),
2461
2479
  popper: state.elements.popper,
2462
2480
  popperRect: state.rects.popper,
2463
2481
  gpuAcceleration: gpuAcceleration
@@ -2487,7 +2505,7 @@
2487
2505
  } // eslint-disable-next-line import/no-unused-modules
2488
2506
 
2489
2507
 
2490
- var computeStyles$1 = {
2508
+ const computeStyles$1 = {
2491
2509
  name: 'computeStyles',
2492
2510
  enabled: true,
2493
2511
  phase: 'beforeWrite',
@@ -2534,7 +2552,7 @@
2534
2552
  } // eslint-disable-next-line import/no-unused-modules
2535
2553
 
2536
2554
 
2537
- var eventListeners = {
2555
+ const eventListeners = {
2538
2556
  name: 'eventListeners',
2539
2557
  enabled: true,
2540
2558
  phase: 'write',
@@ -2760,10 +2778,6 @@
2760
2778
  return clippingRect;
2761
2779
  }
2762
2780
 
2763
- function getVariation(placement) {
2764
- return placement.split('-')[1];
2765
- }
2766
-
2767
2781
  function computeOffsets(_ref) {
2768
2782
  var reference = _ref.reference,
2769
2783
  element = _ref.element,
@@ -2849,11 +2863,10 @@
2849
2863
  padding = _options$padding === void 0 ? 0 : _options$padding;
2850
2864
  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
2851
2865
  var altContext = elementContext === popper ? reference : popper;
2852
- var referenceElement = state.elements.reference;
2853
2866
  var popperRect = state.rects.popper;
2854
2867
  var element = state.elements[altBoundary ? altContext : elementContext];
2855
2868
  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
2856
- var referenceClientRect = getBoundingClientRect(referenceElement);
2869
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
2857
2870
  var popperOffsets = computeOffsets({
2858
2871
  reference: referenceClientRect,
2859
2872
  element: popperRect,
@@ -3053,7 +3066,7 @@
3053
3066
  } // eslint-disable-next-line import/no-unused-modules
3054
3067
 
3055
3068
 
3056
- var flip$1 = {
3069
+ const flip$1 = {
3057
3070
  name: 'flip',
3058
3071
  enabled: true,
3059
3072
  phase: 'main',
@@ -3115,7 +3128,7 @@
3115
3128
  } // eslint-disable-next-line import/no-unused-modules
3116
3129
 
3117
3130
 
3118
- var hide$1 = {
3131
+ const hide$1 = {
3119
3132
  name: 'hide',
3120
3133
  enabled: true,
3121
3134
  phase: 'main',
@@ -3167,7 +3180,7 @@
3167
3180
  } // eslint-disable-next-line import/no-unused-modules
3168
3181
 
3169
3182
 
3170
- var offset$1 = {
3183
+ const offset$1 = {
3171
3184
  name: 'offset',
3172
3185
  enabled: true,
3173
3186
  phase: 'main',
@@ -3191,7 +3204,7 @@
3191
3204
  } // eslint-disable-next-line import/no-unused-modules
3192
3205
 
3193
3206
 
3194
- var popperOffsets$1 = {
3207
+ const popperOffsets$1 = {
3195
3208
  name: 'popperOffsets',
3196
3209
  enabled: true,
3197
3210
  phase: 'read',
@@ -3307,7 +3320,7 @@
3307
3320
  } // eslint-disable-next-line import/no-unused-modules
3308
3321
 
3309
3322
 
3310
- var preventOverflow$1 = {
3323
+ const preventOverflow$1 = {
3311
3324
  name: 'preventOverflow',
3312
3325
  enabled: true,
3313
3326
  phase: 'main',
@@ -3345,9 +3358,9 @@
3345
3358
  }
3346
3359
 
3347
3360
  var isOffsetParentAnElement = isHTMLElement(offsetParent);
3348
- var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3361
+ isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3349
3362
  var documentElement = getDocumentElement(offsetParent);
3350
- var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
3363
+ var rect = getBoundingClientRect(elementOrVirtualElement);
3351
3364
  var scroll = {
3352
3365
  scrollLeft: 0,
3353
3366
  scrollTop: 0
@@ -3364,7 +3377,7 @@
3364
3377
  }
3365
3378
 
3366
3379
  if (isHTMLElement(offsetParent)) {
3367
- offsets = getBoundingClientRect(offsetParent, true);
3380
+ offsets = getBoundingClientRect(offsetParent);
3368
3381
  offsets.x += offsetParent.clientLeft;
3369
3382
  offsets.y += offsetParent.clientTop;
3370
3383
  } else if (documentElement) {
@@ -3501,7 +3514,8 @@
3501
3514
  var isDestroyed = false;
3502
3515
  var instance = {
3503
3516
  state: state,
3504
- setOptions: function setOptions(options) {
3517
+ setOptions: function setOptions(setOptionsAction) {
3518
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
3505
3519
  cleanupModifierEffects();
3506
3520
  state.options = Object.assign({}, defaultOptions, state.options, options);
3507
3521
  state.scrollParents = {
@@ -3656,41 +3670,41 @@
3656
3670
  defaultModifiers: defaultModifiers
3657
3671
  }); // eslint-disable-next-line import/no-unused-modules
3658
3672
 
3659
- var Popper = /*#__PURE__*/Object.freeze({
3673
+ const Popper = /*#__PURE__*/Object.freeze({
3660
3674
  __proto__: null,
3661
- popperGenerator: popperGenerator,
3662
- detectOverflow: detectOverflow,
3675
+ popperGenerator,
3676
+ detectOverflow,
3663
3677
  createPopperBase: createPopper$2,
3664
- createPopper: createPopper,
3678
+ createPopper,
3665
3679
  createPopperLite: createPopper$1,
3666
- top: top,
3667
- bottom: bottom,
3668
- right: right,
3669
- left: left,
3670
- auto: auto,
3671
- basePlacements: basePlacements,
3672
- start: start,
3673
- end: end,
3674
- clippingParents: clippingParents,
3675
- viewport: viewport,
3676
- popper: popper,
3677
- reference: reference,
3678
- variationPlacements: variationPlacements,
3679
- placements: placements,
3680
- beforeRead: beforeRead,
3681
- read: read,
3682
- afterRead: afterRead,
3683
- beforeMain: beforeMain,
3684
- main: main,
3685
- afterMain: afterMain,
3686
- beforeWrite: beforeWrite,
3687
- write: write,
3688
- afterWrite: afterWrite,
3689
- modifierPhases: modifierPhases,
3680
+ top,
3681
+ bottom,
3682
+ right,
3683
+ left,
3684
+ auto,
3685
+ basePlacements,
3686
+ start,
3687
+ end,
3688
+ clippingParents,
3689
+ viewport,
3690
+ popper,
3691
+ reference,
3692
+ variationPlacements,
3693
+ placements,
3694
+ beforeRead,
3695
+ read,
3696
+ afterRead,
3697
+ beforeMain,
3698
+ main,
3699
+ afterMain,
3700
+ beforeWrite,
3701
+ write,
3702
+ afterWrite,
3703
+ modifierPhases,
3690
3704
  applyStyles: applyStyles$1,
3691
3705
  arrow: arrow$1,
3692
3706
  computeStyles: computeStyles$1,
3693
- eventListeners: eventListeners,
3707
+ eventListeners,
3694
3708
  flip: flip$1,
3695
3709
  hide: hide$1,
3696
3710
  offset: offset$1,
@@ -3700,7 +3714,7 @@
3700
3714
 
3701
3715
  /**
3702
3716
  * --------------------------------------------------------------------------
3703
- * Bootstrap (v5.1.0): dropdown.js
3717
+ * Bootstrap (v5.1.3): dropdown.js
3704
3718
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3705
3719
  * --------------------------------------------------------------------------
3706
3720
  */
@@ -4162,7 +4176,7 @@
4162
4176
 
4163
4177
  /**
4164
4178
  * --------------------------------------------------------------------------
4165
- * Bootstrap (v5.1.0): util/scrollBar.js
4179
+ * Bootstrap (v5.1.3): util/scrollBar.js
4166
4180
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4167
4181
  * --------------------------------------------------------------------------
4168
4182
  */
@@ -4266,8 +4280,8 @@
4266
4280
 
4267
4281
  /**
4268
4282
  * --------------------------------------------------------------------------
4269
- * Bootstrap (v5.1.0): util/backdrop.js
4270
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4283
+ * Bootstrap (v5.1.3): util/backdrop.js
4284
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4271
4285
  * --------------------------------------------------------------------------
4272
4286
  */
4273
4287
  const Default$7 = {
@@ -4390,8 +4404,8 @@
4390
4404
 
4391
4405
  /**
4392
4406
  * --------------------------------------------------------------------------
4393
- * Bootstrap (v5.1.0): util/focustrap.js
4394
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4407
+ * Bootstrap (v5.1.3): util/focustrap.js
4408
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4395
4409
  * --------------------------------------------------------------------------
4396
4410
  */
4397
4411
  const Default$6 = {
@@ -4493,7 +4507,7 @@
4493
4507
 
4494
4508
  /**
4495
4509
  * --------------------------------------------------------------------------
4496
- * Bootstrap (v5.1.0): modal.js
4510
+ * Bootstrap (v5.1.3): modal.js
4497
4511
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4498
4512
  * --------------------------------------------------------------------------
4499
4513
  */
@@ -4533,6 +4547,7 @@
4533
4547
  const CLASS_NAME_FADE$3 = 'fade';
4534
4548
  const CLASS_NAME_SHOW$4 = 'show';
4535
4549
  const CLASS_NAME_STATIC = 'modal-static';
4550
+ const OPEN_SELECTOR$1 = '.modal.show';
4536
4551
  const SELECTOR_DIALOG = '.modal-dialog';
4537
4552
  const SELECTOR_MODAL_BODY = '.modal-body';
4538
4553
  const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
@@ -4898,7 +4913,14 @@
4898
4913
  this.focus();
4899
4914
  }
4900
4915
  });
4901
- });
4916
+ }); // avoid conflict when clicking moddal toggler while another one is open
4917
+
4918
+ const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
4919
+
4920
+ if (allReadyOpen) {
4921
+ Modal.getInstance(allReadyOpen).hide();
4922
+ }
4923
+
4902
4924
  const data = Modal.getOrCreateInstance(target);
4903
4925
  data.toggle(this);
4904
4926
  });
@@ -4914,8 +4936,8 @@
4914
4936
 
4915
4937
  /**
4916
4938
  * --------------------------------------------------------------------------
4917
- * Bootstrap (v5.1.0): offcanvas.js
4918
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4939
+ * Bootstrap (v5.1.3): offcanvas.js
4940
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4919
4941
  * --------------------------------------------------------------------------
4920
4942
  */
4921
4943
  /**
@@ -5170,42 +5192,42 @@
5170
5192
 
5171
5193
  /**
5172
5194
  * --------------------------------------------------------------------------
5173
- * Bootstrap (v5.1.0): util/sanitizer.js
5195
+ * Bootstrap (v5.1.3): util/sanitizer.js
5174
5196
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5175
5197
  * --------------------------------------------------------------------------
5176
5198
  */
5177
- const uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
5199
+ const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
5178
5200
  const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
5179
5201
  /**
5180
5202
  * A pattern that recognizes a commonly useful subset of URLs that are safe.
5181
5203
  *
5182
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
5204
+ * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
5183
5205
  */
5184
5206
 
5185
- const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i;
5207
+ const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
5186
5208
  /**
5187
5209
  * A pattern that matches safe data URLs. Only matches image, video and audio types.
5188
5210
  *
5189
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
5211
+ * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
5190
5212
  */
5191
5213
 
5192
5214
  const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
5193
5215
 
5194
- const allowedAttribute = (attr, allowedAttributeList) => {
5195
- const attrName = attr.nodeName.toLowerCase();
5216
+ const allowedAttribute = (attribute, allowedAttributeList) => {
5217
+ const attributeName = attribute.nodeName.toLowerCase();
5196
5218
 
5197
- if (allowedAttributeList.includes(attrName)) {
5198
- if (uriAttrs.has(attrName)) {
5199
- return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));
5219
+ if (allowedAttributeList.includes(attributeName)) {
5220
+ if (uriAttributes.has(attributeName)) {
5221
+ return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
5200
5222
  }
5201
5223
 
5202
5224
  return true;
5203
5225
  }
5204
5226
 
5205
- const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute.
5227
+ const regExp = allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp); // Check if a regular expression validates the attribute.
5206
5228
 
5207
5229
  for (let i = 0, len = regExp.length; i < len; i++) {
5208
- if (regExp[i].test(attrName)) {
5230
+ if (regExp[i].test(attributeName)) {
5209
5231
  return true;
5210
5232
  }
5211
5233
  }
@@ -5257,23 +5279,22 @@
5257
5279
 
5258
5280
  const domParser = new window.DOMParser();
5259
5281
  const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
5260
- const allowlistKeys = Object.keys(allowList);
5261
5282
  const elements = [].concat(...createdDocument.body.querySelectorAll('*'));
5262
5283
 
5263
5284
  for (let i = 0, len = elements.length; i < len; i++) {
5264
- const el = elements[i];
5265
- const elName = el.nodeName.toLowerCase();
5285
+ const element = elements[i];
5286
+ const elementName = element.nodeName.toLowerCase();
5266
5287
 
5267
- if (!allowlistKeys.includes(elName)) {
5268
- el.remove();
5288
+ if (!Object.keys(allowList).includes(elementName)) {
5289
+ element.remove();
5269
5290
  continue;
5270
5291
  }
5271
5292
 
5272
- const attributeList = [].concat(...el.attributes);
5273
- const allowedAttributes = [].concat(allowList['*'] || [], allowList[elName] || []);
5274
- attributeList.forEach(attr => {
5275
- if (!allowedAttribute(attr, allowedAttributes)) {
5276
- el.removeAttribute(attr.nodeName);
5293
+ const attributeList = [].concat(...element.attributes);
5294
+ const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);
5295
+ attributeList.forEach(attribute => {
5296
+ if (!allowedAttribute(attribute, allowedAttributes)) {
5297
+ element.removeAttribute(attribute.nodeName);
5277
5298
  }
5278
5299
  });
5279
5300
  }
@@ -5283,7 +5304,7 @@
5283
5304
 
5284
5305
  /**
5285
5306
  * --------------------------------------------------------------------------
5286
- * Bootstrap (v5.1.0): tooltip.js
5307
+ * Bootstrap (v5.1.3): tooltip.js
5287
5308
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5288
5309
  * --------------------------------------------------------------------------
5289
5310
  */
@@ -5457,9 +5478,7 @@
5457
5478
  this.tip.remove();
5458
5479
  }
5459
5480
 
5460
- if (this._popper) {
5461
- this._popper.destroy();
5462
- }
5481
+ this._disposePopper();
5463
5482
 
5464
5483
  super.dispose();
5465
5484
  }
@@ -5479,6 +5498,15 @@
5479
5498
 
5480
5499
  if (showEvent.defaultPrevented || !isInTheDom) {
5481
5500
  return;
5501
+ } // A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`
5502
+ // This will be removed later in favor of a `setContent` method
5503
+
5504
+
5505
+ if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {
5506
+ this._disposePopper();
5507
+
5508
+ this.tip.remove();
5509
+ this.tip = null;
5482
5510
  }
5483
5511
 
5484
5512
  const tip = this.getTipElement();
@@ -5568,11 +5596,7 @@
5568
5596
 
5569
5597
  EventHandler.trigger(this._element, this.constructor.Event.HIDDEN);
5570
5598
 
5571
- if (this._popper) {
5572
- this._popper.destroy();
5573
-
5574
- this._popper = null;
5575
- }
5599
+ this._disposePopper();
5576
5600
  };
5577
5601
 
5578
5602
  const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE);
@@ -5952,6 +5976,14 @@
5952
5976
  this._cleanTipClass();
5953
5977
 
5954
5978
  this._addAttachmentClass(this._getAttachment(state.placement));
5979
+ }
5980
+
5981
+ _disposePopper() {
5982
+ if (this._popper) {
5983
+ this._popper.destroy();
5984
+
5985
+ this._popper = null;
5986
+ }
5955
5987
  } // Static
5956
5988
 
5957
5989
 
@@ -5982,7 +6014,7 @@
5982
6014
 
5983
6015
  /**
5984
6016
  * --------------------------------------------------------------------------
5985
- * Bootstrap (v5.1.0): popover.js
6017
+ * Bootstrap (v5.1.3): popover.js
5986
6018
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5987
6019
  * --------------------------------------------------------------------------
5988
6020
  */
@@ -6092,7 +6124,7 @@
6092
6124
 
6093
6125
  /**
6094
6126
  * --------------------------------------------------------------------------
6095
- * Bootstrap (v5.1.0): scrollspy.js
6127
+ * Bootstrap (v5.1.3): scrollspy.js
6096
6128
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6097
6129
  * --------------------------------------------------------------------------
6098
6130
  */
@@ -6327,7 +6359,7 @@
6327
6359
 
6328
6360
  /**
6329
6361
  * --------------------------------------------------------------------------
6330
- * Bootstrap (v5.1.0): tab.js
6362
+ * Bootstrap (v5.1.3): tab.js
6331
6363
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6332
6364
  * --------------------------------------------------------------------------
6333
6365
  */
@@ -6525,7 +6557,7 @@
6525
6557
 
6526
6558
  /**
6527
6559
  * --------------------------------------------------------------------------
6528
- * Bootstrap (v5.1.0): toast.js
6560
+ * Bootstrap (v5.1.3): toast.js
6529
6561
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6530
6562
  * --------------------------------------------------------------------------
6531
6563
  */
@@ -6755,11 +6787,11 @@
6755
6787
 
6756
6788
  /**
6757
6789
  * --------------------------------------------------------------------------
6758
- * Bootstrap (v5.1.0): index.umd.js
6790
+ * Bootstrap (v5.1.3): index.umd.js
6759
6791
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6760
6792
  * --------------------------------------------------------------------------
6761
6793
  */
6762
- var index_umd = {
6794
+ const index_umd = {
6763
6795
  Alert,
6764
6796
  Button,
6765
6797
  Carousel,
@@ -6776,5 +6808,5 @@
6776
6808
 
6777
6809
  return index_umd;
6778
6810
 
6779
- })));
6811
+ }));
6780
6812
  //# sourceMappingURL=bootstrap.bundle.js.map
@@ -37,11 +37,17 @@
37
37
  @return red($value), green($value), blue($value);
38
38
  }
39
39
 
40
+ // stylelint-disable scss/dollar-variable-pattern
40
41
  @function rgba-css-var($identifier, $target) {
41
- @return rgba(var(--#{$variable-prefix}#{$identifier}-rgb), var(--#{$variable-prefix}#{$target}-opacity));
42
+ @if $identifier == "body" and $target == "bg" {
43
+ @return rgba(var(--#{$variable-prefix}#{$identifier}-bg-rgb), var(--#{$variable-prefix}#{$target}-opacity));
44
+ } @if $identifier == "body" and $target == "text" {
45
+ @return rgba(var(--#{$variable-prefix}#{$identifier}-color-rgb), var(--#{$variable-prefix}#{$target}-opacity));
46
+ } @else {
47
+ @return rgba(var(--#{$variable-prefix}#{$identifier}-rgb), var(--#{$variable-prefix}#{$target}-opacity));
48
+ }
42
49
  }
43
50
 
44
- // stylelint-disable scss/dollar-variable-pattern
45
51
  @function map-loop($map, $func, $args...) {
46
52
  $_map: ();
47
53
 
@@ -27,7 +27,7 @@
27
27
 
28
28
  :root {
29
29
  @if $font-size-root != null {
30
- font-size: var(--#{$variable-prefix}-root-font-size);
30
+ font-size: var(--#{$variable-prefix}root-font-size);
31
31
  }
32
32
 
33
33
  @if $enable-smooth-scroll {
@@ -23,7 +23,8 @@
23
23
 
24
24
  --#{$variable-prefix}white-rgb: #{to-rgb($white)};
25
25
  --#{$variable-prefix}black-rgb: #{to-rgb($black)};
26
- --#{$variable-prefix}body-rgb: #{to-rgb($body-color)};
26
+ --#{$variable-prefix}body-color-rgb: #{to-rgb($body-color)};
27
+ --#{$variable-prefix}body-bg-rgb: #{to-rgb($body-bg)};
27
28
 
28
29
  // Fonts
29
30
 
@@ -39,8 +39,8 @@
39
39
  }
40
40
 
41
41
  // Highlight border color between thead, tbody and tfoot.
42
- > :not(:last-child) > :last-child > * {
43
- border-bottom-color: $table-group-separator-color;
42
+ > :not(:first-child) {
43
+ border-top: (2 * $table-border-width) solid $table-group-separator-color;
44
44
  }
45
45
  }
46
46
 
@@ -91,6 +91,10 @@
91
91
  > :not(caption) > * > * {
92
92
  border-bottom-width: 0;
93
93
  }
94
+
95
+ > :not(:first-child) {
96
+ border-top-width: 0;
97
+ }
94
98
  }
95
99
 
96
100
  // Zebra-striping
@@ -98,7 +102,7 @@
98
102
  // Default zebra-stripe styles (alternating gray and transparent backgrounds)
99
103
 
100
104
  .table-striped {
101
- > tbody > tr:nth-of-type(#{$table-striped-order}) {
105
+ > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
102
106
  --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-striped-bg);
103
107
  color: var(--#{$variable-prefix}table-striped-color);
104
108
  }
@@ -118,7 +122,7 @@
118
122
  // Placed here since it has to come after the potential zebra striping
119
123
 
120
124
  .table-hover {
121
- > tbody > tr:hover {
125
+ > tbody > tr:hover > * {
122
126
  --#{$variable-prefix}table-accent-bg: var(--#{$variable-prefix}table-hover-bg);
123
127
  color: var(--#{$variable-prefix}table-hover-color);
124
128
  }
@@ -409,23 +409,33 @@ $body-text-align: null !default;
409
409
  //
410
410
  // Extends the default `$theme-colors` maps to help create our utilities.
411
411
 
412
+ // Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
412
413
  // scss-docs-start utilities-colors
413
- $utilities-colors: map-merge(
414
- $theme-colors-rgb,
414
+ $utilities-colors: $theme-colors-rgb !default;
415
+ // scss-docs-end utilities-colors
416
+
417
+ // scss-docs-start utilities-text-colors
418
+ $utilities-text: map-merge(
419
+ $utilities-colors,
415
420
  (
416
421
  "black": to-rgb($black),
417
422
  "white": to-rgb($white),
418
- "body": to-rgb($body-color)
423
+ "body": to-rgb($body-color)
419
424
  )
420
425
  ) !default;
421
- // scss-docs-end utilities-colors
422
-
423
- // scss-docs-start utilities-text-colors
424
- $utilities-text-colors: map-loop($utilities-colors, rgba-css-var, "$key", "text") !default;
426
+ $utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
425
427
  // scss-docs-end utilities-text-colors
426
428
 
427
429
  // scss-docs-start utilities-bg-colors
428
- $utilities-bg-colors: map-loop($utilities-colors, rgba-css-var, "$key", "bg") !default;
430
+ $utilities-bg: map-merge(
431
+ $utilities-colors,
432
+ (
433
+ "black": to-rgb($black),
434
+ "white": to-rgb($white),
435
+ "body": to-rgb($body-bg)
436
+ )
437
+ ) !default;
438
+ $utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
429
439
  // scss-docs-end utilities-bg-colors
430
440
 
431
441
  // Links
@@ -914,7 +924,7 @@ $form-check-inline-margin-end: 1rem !default;
914
924
  // scss-docs-end form-check-variables
915
925
 
916
926
  // scss-docs-start form-switch-variables
917
- $form-switch-color: rgba(0, 0, 0, .25) !default;
927
+ $form-switch-color: rgba($black, .25) !default;
918
928
  $form-switch-width: 2em !default;
919
929
  $form-switch-padding-start: $form-switch-width + .5em !default;
920
930
  $form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>") !default;
@@ -962,7 +972,7 @@ $form-select-feedback-icon-size: $input-height-inner-half $input-height-i
962
972
 
963
973
  $form-select-border-width: $input-border-width !default;
964
974
  $form-select-border-color: $input-border-color !default;
965
- $form-select-border-radius: $border-radius !default;
975
+ $form-select-border-radius: $input-border-radius !default;
966
976
  $form-select-box-shadow: $box-shadow-inset !default;
967
977
 
968
978
  $form-select-focus-border-color: $input-focus-border-color !default;
@@ -972,10 +982,12 @@ $form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focu
972
982
  $form-select-padding-y-sm: $input-padding-y-sm !default;
973
983
  $form-select-padding-x-sm: $input-padding-x-sm !default;
974
984
  $form-select-font-size-sm: $input-font-size-sm !default;
985
+ $form-select-border-radius-sm: $input-border-radius-sm !default;
975
986
 
976
987
  $form-select-padding-y-lg: $input-padding-y-lg !default;
977
988
  $form-select-padding-x-lg: $input-padding-x-lg !default;
978
989
  $form-select-font-size-lg: $input-font-size-lg !default;
990
+ $form-select-border-radius-lg: $input-border-radius-lg !default;
979
991
 
980
992
  $form-select-transition: $input-transition !default;
981
993
  // scss-docs-end form-select-variables
@@ -1157,7 +1169,7 @@ $dropdown-divider-margin-y: $spacer * .5 !default;
1157
1169
  $dropdown-box-shadow: $box-shadow !default;
1158
1170
 
1159
1171
  $dropdown-link-color: $gray-900 !default;
1160
- $dropdown-link-hover-color: shade-color($gray-900, 10%) !default;
1172
+ $dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;
1161
1173
  $dropdown-link-hover-bg: $gray-200 !default;
1162
1174
 
1163
1175
  $dropdown-link-active-color: $component-active-color !default;
@@ -1362,14 +1374,14 @@ $toast-font-size: .875rem !default;
1362
1374
  $toast-color: null !default;
1363
1375
  $toast-background-color: rgba($white, .85) !default;
1364
1376
  $toast-border-width: 1px !default;
1365
- $toast-border-color: rgba(0, 0, 0, .1) !default;
1377
+ $toast-border-color: rgba($black, .1) !default;
1366
1378
  $toast-border-radius: $border-radius !default;
1367
1379
  $toast-box-shadow: $box-shadow !default;
1368
1380
  $toast-spacing: $container-padding-x !default;
1369
1381
 
1370
1382
  $toast-header-color: $gray-600 !default;
1371
1383
  $toast-header-background-color: rgba($white, .85) !default;
1372
- $toast-header-border-color: rgba(0, 0, 0, .05) !default;
1384
+ $toast-header-border-color: rgba($black, .05) !default;
1373
1385
  // scss-docs-end toast-variables
1374
1386
 
1375
1387
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Grid v5.1.0 (https://getbootstrap.com/)
2
+ * Bootstrap Grid v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -18,6 +18,8 @@ $include-column-box-sizing: true !default;
18
18
 
19
19
  @import "vendor/rfs";
20
20
 
21
+ @import "root";
22
+
21
23
  @import "containers";
22
24
  @import "grid";
23
25
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Reboot v5.1.0 (https://getbootstrap.com/)
2
+ * Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -8,8 +8,6 @@
8
8
 
9
9
  @import "functions";
10
10
  @import "variables";
11
- // Prevent the usage of custom properties since we don't add them to `:root` in reboot
12
- $font-family-base: $font-family-sans-serif; // stylelint-disable-line scss/dollar-variable-default
13
- $font-family-code: $font-family-monospace; // stylelint-disable-line scss/dollar-variable-default
14
11
  @import "mixins";
12
+ @import "root";
15
13
  @import "reboot";
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Utilities v5.1.0 (https://getbootstrap.com/)
2
+ * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v5.1.0 (https://getbootstrap.com/)
2
+ * Bootstrap v5.1.3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -60,6 +60,7 @@
60
60
  padding-bottom: $form-select-padding-y-sm;
61
61
  padding-left: $form-select-padding-x-sm;
62
62
  @include font-size($form-select-font-size-sm);
63
+ @include border-radius($form-select-border-radius-sm);
63
64
  }
64
65
 
65
66
  .form-select-lg {
@@ -67,4 +68,5 @@
67
68
  padding-bottom: $form-select-padding-y-lg;
68
69
  padding-left: $form-select-padding-x-lg;
69
70
  @include font-size($form-select-font-size-lg);
71
+ @include border-radius($form-select-border-radius-lg);
70
72
  }
@@ -7,9 +7,10 @@
7
7
  --#{$variable-prefix}gutter-y: 0;
8
8
  display: flex;
9
9
  flex-wrap: wrap;
10
- margin-top: calc(var(--#{$variable-prefix}gutter-y) * -1); // stylelint-disable-line function-disallowed-list
11
- margin-right: calc(var(--#{$variable-prefix}gutter-x) * -.5); // stylelint-disable-line function-disallowed-list
12
- margin-left: calc(var(--#{$variable-prefix}gutter-x) * -.5); // stylelint-disable-line function-disallowed-list
10
+ // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed
11
+ margin-top: calc(-1 * var(--#{$variable-prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
12
+ margin-right: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
13
+ margin-left: calc(-.5 * var(--#{$variable-prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
13
14
  }
14
15
 
15
16
  @mixin make-col-ready($gutter: $grid-gutter-width) {
@@ -3,7 +3,7 @@
3
3
  // Hide content visually while keeping it accessible to assistive technologies
4
4
  //
5
5
  // See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
6
- // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
6
+ // See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
7
7
 
8
8
  @mixin visually-hidden() {
9
9
  position: absolute !important;
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdministrateBootstrapTheme
4
- VERSION = '1.0.4'
5
- BOOTSTRAP_VERSION = '5.1.0'
4
+ VERSION = '1.0.6'
5
+
6
+ BOOTSTRAP_VERSION = '5.1.3'
6
7
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "administrate-bootstrap-theme",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "main": "index.js",
5
5
  "author": "Mattia Roccoberton <mat@blocknot.es>",
6
6
  "license": "MIT",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: administrate-bootstrap-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Roccoberton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-12 00:00:00.000000000 Z
11
+ date: 2022-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: administrate