administrate-bootstrap-theme 1.0.4 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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