@coreui/coreui 5.1.1 → 5.2.0
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.
- package/README.md +51 -3
- package/dist/css/coreui-grid.css +7 -7
- package/dist/css/coreui-grid.css.map +1 -1
- package/dist/css/coreui-grid.min.css +2 -2
- package/dist/css/coreui-grid.min.css.map +1 -1
- package/dist/css/coreui-grid.rtl.css +7 -7
- package/dist/css/coreui-grid.rtl.css.map +1 -1
- package/dist/css/coreui-grid.rtl.min.css +2 -2
- package/dist/css/coreui-grid.rtl.min.css.map +1 -1
- package/dist/css/coreui-reboot.css +1 -1
- package/dist/css/coreui-reboot.css.map +1 -1
- package/dist/css/coreui-reboot.min.css +1 -1
- package/dist/css/coreui-reboot.min.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.css +1 -1
- package/dist/css/coreui-reboot.rtl.css.map +1 -1
- package/dist/css/coreui-reboot.rtl.min.css +1 -1
- package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
- package/dist/css/coreui-utilities.css +1 -1
- package/dist/css/coreui-utilities.css.map +1 -1
- package/dist/css/coreui-utilities.min.css +1 -1
- package/dist/css/coreui-utilities.min.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.css +1 -1
- package/dist/css/coreui-utilities.rtl.css.map +1 -1
- package/dist/css/coreui-utilities.rtl.min.css +1 -1
- package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
- package/dist/css/coreui.css +129 -215
- package/dist/css/coreui.css.map +1 -1
- package/dist/css/coreui.min.css +2 -2
- package/dist/css/coreui.min.css.map +1 -1
- package/dist/css/coreui.rtl.css +128 -212
- package/dist/css/coreui.rtl.css.map +1 -1
- package/dist/css/coreui.rtl.min.css +2 -2
- package/dist/css/coreui.rtl.min.css.map +1 -1
- package/dist/css/themes/bootstrap/bootstrap.css +2419 -2501
- package/dist/css/themes/bootstrap/bootstrap.css.map +1 -1
- package/dist/css/themes/bootstrap/bootstrap.min.css +2 -2
- package/dist/css/themes/bootstrap/bootstrap.min.css.map +1 -1
- package/dist/css/themes/bootstrap/bootstrap.rtl.css +2418 -2501
- package/dist/css/themes/bootstrap/bootstrap.rtl.css.map +1 -1
- package/dist/css/themes/bootstrap/bootstrap.rtl.min.css +2 -2
- package/dist/css/themes/bootstrap/bootstrap.rtl.min.css.map +1 -1
- package/dist/js/bootstrap.bundle.js +41 -41
- package/dist/js/bootstrap.bundle.js.map +1 -1
- package/dist/js/bootstrap.bundle.min.js +2 -2
- package/dist/js/bootstrap.bundle.min.js.map +1 -1
- package/dist/js/bootstrap.esm.js +57 -57
- package/dist/js/bootstrap.esm.js.map +1 -1
- package/dist/js/bootstrap.esm.min.js +2 -2
- package/dist/js/bootstrap.esm.min.js.map +1 -1
- package/dist/js/bootstrap.js +57 -57
- package/dist/js/bootstrap.js.map +1 -1
- package/dist/js/bootstrap.min.js +2 -2
- package/dist/js/bootstrap.min.js.map +1 -1
- package/dist/js/coreui.bundle.js +8 -8
- package/dist/js/coreui.bundle.js.map +1 -1
- package/dist/js/coreui.bundle.min.js +2 -2
- package/dist/js/coreui.bundle.min.js.map +1 -1
- package/dist/js/coreui.esm.js +8 -8
- package/dist/js/coreui.esm.js.map +1 -1
- package/dist/js/coreui.esm.min.js +2 -2
- package/dist/js/coreui.esm.min.js.map +1 -1
- package/dist/js/coreui.js +8 -8
- package/dist/js/coreui.js.map +1 -1
- package/dist/js/coreui.min.js +2 -2
- package/dist/js/coreui.min.js.map +1 -1
- package/js/dist/alert.js +1 -1
- package/js/dist/alert.js.map +1 -1
- package/js/dist/base-component.js +2 -2
- package/js/dist/base-component.js.map +1 -1
- package/js/dist/button.js +1 -1
- package/js/dist/button.js.map +1 -1
- package/js/dist/carousel.js +1 -1
- package/js/dist/carousel.js.map +1 -1
- package/js/dist/collapse.js +1 -1
- package/js/dist/collapse.js.map +1 -1
- package/js/dist/dom/data.js +1 -1
- package/js/dist/dom/data.js.map +1 -1
- package/js/dist/dom/event-handler.js +1 -1
- package/js/dist/dom/event-handler.js.map +1 -1
- package/js/dist/dom/manipulator.js +2 -2
- package/js/dist/dom/manipulator.js.map +1 -1
- package/js/dist/dom/selector-engine.js +1 -1
- package/js/dist/dom/selector-engine.js.map +1 -1
- package/js/dist/dropdown.js +2 -2
- package/js/dist/dropdown.js.map +1 -1
- package/js/dist/modal.js +1 -1
- package/js/dist/modal.js.map +1 -1
- package/js/dist/navigation.js +1 -1
- package/js/dist/navigation.js.map +1 -1
- package/js/dist/offcanvas.js +1 -1
- package/js/dist/offcanvas.js.map +1 -1
- package/js/dist/popover.js +1 -1
- package/js/dist/popover.js.map +1 -1
- package/js/dist/scrollspy.js +1 -1
- package/js/dist/scrollspy.js.map +1 -1
- package/js/dist/sidebar.js +1 -1
- package/js/dist/sidebar.js.map +1 -1
- package/js/dist/tab.js +1 -1
- package/js/dist/tab.js.map +1 -1
- package/js/dist/toast.js +1 -1
- package/js/dist/toast.js.map +1 -1
- package/js/dist/tooltip.js +3 -3
- package/js/dist/tooltip.js.map +1 -1
- package/js/dist/util/backdrop.js +1 -1
- package/js/dist/util/backdrop.js.map +1 -1
- package/js/dist/util/component-functions.js +1 -1
- package/js/dist/util/component-functions.js.map +1 -1
- package/js/dist/util/config.js +1 -1
- package/js/dist/util/config.js.map +1 -1
- package/js/dist/util/focustrap.js +1 -1
- package/js/dist/util/focustrap.js.map +1 -1
- package/js/dist/util/index.js +2 -2
- package/js/dist/util/index.js.map +1 -1
- package/js/dist/util/sanitizer.js +1 -1
- package/js/dist/util/sanitizer.js.map +1 -1
- package/js/dist/util/scrollbar.js +1 -1
- package/js/dist/util/scrollbar.js.map +1 -1
- package/js/dist/util/swipe.js +1 -1
- package/js/dist/util/swipe.js.map +1 -1
- package/js/dist/util/template-factory.js +2 -2
- package/js/dist/util/template-factory.js.map +1 -1
- package/js/src/base-component.js +1 -1
- package/js/src/dom/manipulator.js +1 -1
- package/js/src/dropdown.js +1 -1
- package/js/src/tooltip.js +2 -2
- package/js/src/util/index.js +1 -1
- package/js/src/util/template-factory.js +1 -1
- package/package.json +27 -25
- package/scss/_accordion.scss +4 -9
- package/scss/_button-group.scss +6 -1
- package/scss/_card.scss +1 -2
- package/scss/_functions.scss +1 -1
- package/scss/_nav.scss +1 -1
- package/scss/_navbar.scss +1 -1
- package/scss/_variables-dark.scss +2 -2
- package/scss/_variables.scss +11 -9
- package/scss/forms/_floating-labels.scss +17 -16
- package/scss/mixins/_banner.scss +1 -1
- package/scss/mixins/_grid.scss +1 -1
- package/scss/mixins/_visually-hidden.scss +1 -1
- package/scss/sidebar/_sidebar-narrow.scss +19 -45
- package/scss/sidebar/_sidebar-nav.scss +3 -2
- package/scss/sidebar/_sidebar.scss +66 -101
- package/scss/themes/bootstrap/bootstrap.rtl.scss +0 -2
- package/scss/themes/bootstrap/bootstrap.scss +0 -2
- package/scss/themes/bootstrap/mixins/_banner.scss +1 -1
- package/scss/themes/bootstrap/_variables.scss +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swipe.js","sources":["../../src/util/swipe.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/swipe.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.coreui.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n"],"names":["NAME","EVENT_KEY","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","Default","endCallback","leftCallback","rightCallback","DefaultType","Swipe","Config","constructor","element","config","_element","isSupported","_config","_getConfig","_deltaX","_supportPointerEvents","Boolean","window","PointerEvent","_initEvents","dispose","EventHandler","off","_start","event","touches","clientX","_eventIsPointerPenTouch","_end","_handleSwipe","execute","_move","length","absDeltaX","Math","abs","direction","on","classList","add","pointerType","document","documentElement","navigator","maxTouchPoints"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAMA;EACA;EACA;;EAEA,MAAMA,IAAI,GAAG,OAAO
|
|
1
|
+
{"version":3,"file":"swipe.js","sources":["../../src/util/swipe.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/swipe.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.coreui.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n"],"names":["NAME","EVENT_KEY","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","Default","endCallback","leftCallback","rightCallback","DefaultType","Swipe","Config","constructor","element","config","_element","isSupported","_config","_getConfig","_deltaX","_supportPointerEvents","Boolean","window","PointerEvent","_initEvents","dispose","EventHandler","off","_start","event","touches","clientX","_eventIsPointerPenTouch","_end","_handleSwipe","execute","_move","length","absDeltaX","Math","abs","direction","on","classList","add","pointerType","document","documentElement","navigator","maxTouchPoints"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CoreUI template-factory.js v5.
|
|
2
|
+
* CoreUI template-factory.js v5.2.0 (https://coreui.io)
|
|
3
3
|
* Copyright 2024 The CoreUI Team (https://github.com/orgs/coreui/people)
|
|
4
4
|
* Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
|
|
137
137
|
}
|
|
138
138
|
_resolvePossibleFunction(arg) {
|
|
139
|
-
return index_js.execute(arg, [this]);
|
|
139
|
+
return index_js.execute(arg, [undefined, this]);
|
|
140
140
|
}
|
|
141
141
|
_putElementInTemplate(element, templateElement) {
|
|
142
142
|
if (this._config.html) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-factory.js","sources":["../../src/util/template-factory.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/template-factory.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n"],"names":["NAME","Default","allowList","DefaultAllowlist","content","extraClass","html","sanitize","sanitizeFn","template","DefaultType","DefaultContentType","entry","selector","TemplateFactory","Config","constructor","config","_config","_getConfig","getContent","Object","values","map","_resolvePossibleFunction","filter","Boolean","hasContent","length","changeContent","_checkContent","toHtml","templateWrapper","document","createElement","innerHTML","_maybeSanitize","text","entries","_setContent","children","classList","add","split","_typeCheckConfig","arg","templateElement","SelectorEngine","findOne","remove","isElement","_putElementInTemplate","getElement","textContent","sanitizeHtml","execute","element","append"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAOA;EACA;EACA;;EAEA,MAAMA,IAAI,GAAG,iBAAiB
|
|
1
|
+
{"version":3,"file":"template-factory.js","sources":["../../src/util/template-factory.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI util/template-factory.js\n * Licensed under MIT (https://github.com/coreui/coreui/blob/main/LICENSE)\n *\n * This is a modified version of the Bootstrap's util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '<div></div>'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [undefined, this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n"],"names":["NAME","Default","allowList","DefaultAllowlist","content","extraClass","html","sanitize","sanitizeFn","template","DefaultType","DefaultContentType","entry","selector","TemplateFactory","Config","constructor","config","_config","_getConfig","getContent","Object","values","map","_resolvePossibleFunction","filter","Boolean","hasContent","length","changeContent","_checkContent","toHtml","templateWrapper","document","createElement","innerHTML","_maybeSanitize","text","entries","_setContent","children","classList","add","split","_typeCheckConfig","arg","templateElement","SelectorEngine","findOne","remove","isElement","_putElementInTemplate","getElement","textContent","sanitizeHtml","execute","undefined","element","append"],"mappings":"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"}
|
package/js/src/base-component.js
CHANGED
|
@@ -59,7 +59,7 @@ const Manipulator = {
|
|
|
59
59
|
|
|
60
60
|
for (const key of coreuiKeys) {
|
|
61
61
|
let pureKey = key.replace(/^coreui/, '')
|
|
62
|
-
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1
|
|
62
|
+
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1)
|
|
63
63
|
attributes[pureKey] = normalizeData(element.dataset[key])
|
|
64
64
|
}
|
|
65
65
|
|
package/js/src/dropdown.js
CHANGED
package/js/src/tooltip.js
CHANGED
|
@@ -395,7 +395,7 @@ class Tooltip extends BaseComponent {
|
|
|
395
395
|
}
|
|
396
396
|
|
|
397
397
|
_resolvePossibleFunction(arg) {
|
|
398
|
-
return execute(arg, [this._element])
|
|
398
|
+
return execute(arg, [this._element, this._element])
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
_getPopperConfig(attachment) {
|
|
@@ -441,7 +441,7 @@ class Tooltip extends BaseComponent {
|
|
|
441
441
|
|
|
442
442
|
return {
|
|
443
443
|
...defaultBsPopperConfig,
|
|
444
|
-
...execute(this._config.popperConfig, [defaultBsPopperConfig])
|
|
444
|
+
...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
447
|
|
package/js/src/util/index.js
CHANGED
|
@@ -226,7 +226,7 @@ const defineJQueryPlugin = plugin => {
|
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
|
|
229
|
-
return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue
|
|
229
|
+
return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreui/coreui",
|
|
3
3
|
"description": "The most popular front-end framework for developing responsive, mobile-first projects on the web rewritten and maintained by the CoreUI Team",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.2.0",
|
|
5
5
|
"config": {
|
|
6
|
-
"version_short": "5.
|
|
6
|
+
"version_short": "5.2"
|
|
7
7
|
},
|
|
8
8
|
"keywords": [
|
|
9
9
|
"css",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"docs-compile": "npm run docs-build",
|
|
62
62
|
"docs-vnu": "node build/vnu-jar.mjs",
|
|
63
63
|
"docs-lint": "npm run docs-vnu",
|
|
64
|
-
"docs-serve": "hugo server --port 9001 --disableFastRender --printUnusedTemplates",
|
|
64
|
+
"docs-serve": "hugo server --port 9001 --disableFastRender --noHTTPCache --renderToMemory --printPathWarnings --printUnusedTemplates",
|
|
65
65
|
"docs-serve-only": "npx sirv-cli _gh_pages --port 9001",
|
|
66
66
|
"lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json",
|
|
67
|
-
"update-deps": "ncu -u -x
|
|
67
|
+
"update-deps": "ncu -u -x eslint,karma-browserstack-launcher,karma-rollup-preprocessor",
|
|
68
68
|
"release": "npm-run-all dist release-sri docs-build release-zip*",
|
|
69
69
|
"release-sri": "node build/generate-sri.mjs",
|
|
70
70
|
"release-version": "node build/change-version.mjs",
|
|
@@ -100,31 +100,33 @@
|
|
|
100
100
|
"@popperjs/core": "^2.11.8"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
|
-
"@babel/cli": "^7.
|
|
104
|
-
"@babel/core": "^7.
|
|
105
|
-
"@babel/preset-env": "^7.
|
|
103
|
+
"@babel/cli": "^7.25.9",
|
|
104
|
+
"@babel/core": "^7.26.0",
|
|
105
|
+
"@babel/preset-env": "^7.26.0",
|
|
106
|
+
"@docsearch/js": "^3.6.2",
|
|
106
107
|
"@popperjs/core": "^2.11.8",
|
|
107
108
|
"@rollup/plugin-babel": "^6.0.4",
|
|
108
|
-
"@rollup/plugin-commonjs": "^
|
|
109
|
-
"@rollup/plugin-node-resolve": "^15.
|
|
110
|
-
"@rollup/plugin-replace": "^
|
|
111
|
-
"autoprefixer": "^10.4.
|
|
109
|
+
"@rollup/plugin-commonjs": "^28.0.1",
|
|
110
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
111
|
+
"@rollup/plugin-replace": "^6.0.1",
|
|
112
|
+
"autoprefixer": "^10.4.20",
|
|
112
113
|
"bootstrap": "^5.3.3",
|
|
113
114
|
"bundlewatch": "^0.4.0",
|
|
114
115
|
"clean-css-cli": "^5.6.3",
|
|
116
|
+
"clipboard": "^2.0.11",
|
|
115
117
|
"cross-env": "^7.0.3",
|
|
116
118
|
"eslint": "^8.57.0",
|
|
117
119
|
"eslint-config-xo": "^0.45.0",
|
|
118
|
-
"eslint-plugin-html": "^8.1.
|
|
119
|
-
"eslint-plugin-import": "^2.
|
|
120
|
+
"eslint-plugin-html": "^8.1.2",
|
|
121
|
+
"eslint-plugin-import": "^2.31.0",
|
|
120
122
|
"eslint-plugin-markdown": "^5.1.0",
|
|
121
123
|
"eslint-plugin-unicorn": "^55.0.0",
|
|
122
124
|
"find-unused-sass-variables": "^6.0.0",
|
|
123
125
|
"globby": "^14.0.2",
|
|
124
126
|
"hammer-simulator": "0.0.1",
|
|
125
|
-
"hugo-bin": "^0.
|
|
127
|
+
"hugo-bin": "^0.133.5",
|
|
126
128
|
"ip": "^2.0.1",
|
|
127
|
-
"jasmine": "^5.
|
|
129
|
+
"jasmine": "^5.4.0",
|
|
128
130
|
"jquery": "^3.7.1",
|
|
129
131
|
"karma": "^6.4.4",
|
|
130
132
|
"karma-browserstack-launcher": "1.6.0",
|
|
@@ -136,21 +138,21 @@
|
|
|
136
138
|
"karma-jasmine-html-reporter": "^2.1.0",
|
|
137
139
|
"karma-rollup-preprocessor": "7.0.8",
|
|
138
140
|
"lockfile-lint": "^4.14.0",
|
|
139
|
-
"nodemon": "^3.1.
|
|
141
|
+
"nodemon": "^3.1.7",
|
|
140
142
|
"npm-run-all": "^4.1.5",
|
|
141
|
-
"postcss": "^8.4.
|
|
143
|
+
"postcss": "^8.4.47",
|
|
142
144
|
"postcss-cli": "^11.0.0",
|
|
143
145
|
"postcss-combine-duplicated-selectors": "^10.0.3",
|
|
144
|
-
"rollup": "^4.
|
|
146
|
+
"rollup": "^4.24.1",
|
|
145
147
|
"rollup-plugin-istanbul": "^5.0.0",
|
|
146
|
-
"rtlcss": "^4.
|
|
147
|
-
"sass": "
|
|
148
|
-
"sass-true": "^8.
|
|
148
|
+
"rtlcss": "^4.3.0",
|
|
149
|
+
"sass": "1.78.0",
|
|
150
|
+
"sass-true": "^8.1.0",
|
|
149
151
|
"shelljs": "^0.8.5",
|
|
150
|
-
"stylelint": "^16.
|
|
151
|
-
"stylelint-config-twbs-bootstrap": "^
|
|
152
|
-
"terser": "5.
|
|
153
|
-
"vnu-jar": "
|
|
152
|
+
"stylelint": "^16.10.0",
|
|
153
|
+
"stylelint-config-twbs-bootstrap": "^15.1.0",
|
|
154
|
+
"terser": "5.36.0",
|
|
155
|
+
"vnu-jar": "24.10.17"
|
|
154
156
|
},
|
|
155
157
|
"files": [
|
|
156
158
|
"dist/{css,js}/**/*.{css,js,map}",
|
package/scss/_accordion.scss
CHANGED
|
@@ -134,17 +134,12 @@
|
|
|
134
134
|
&:last-child { border-bottom: 0; }
|
|
135
135
|
|
|
136
136
|
// stylelint-disable selector-max-class
|
|
137
|
-
> .accordion-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
@include border-radius(0);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
// stylelint-enable selector-max-class
|
|
144
|
-
|
|
145
|
-
> .accordion-collapse {
|
|
137
|
+
> .accordion-collapse,
|
|
138
|
+
> .accordion-header .accordion-button,
|
|
139
|
+
> .accordion-header .accordion-button.collapsed {
|
|
146
140
|
@include border-radius(0);
|
|
147
141
|
}
|
|
142
|
+
// stylelint-enable selector-max-class
|
|
148
143
|
}
|
|
149
144
|
}
|
|
150
145
|
|
package/scss/_button-group.scss
CHANGED
|
@@ -135,7 +135,12 @@
|
|
|
135
135
|
@include border-bottom-radius(0);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
// The top radius should be 0 if the button is:
|
|
139
|
+
// - the "third or more" child
|
|
140
|
+
// - the second child and the previous element isn't `.btn-check` (making it the first child visually)
|
|
141
|
+
// - part of a btn-group which isn't the first child
|
|
142
|
+
> .btn:nth-child(n + 3),
|
|
143
|
+
> :not(.btn-check) + .btn,
|
|
139
144
|
> .btn-group:not(:first-child) > .btn {
|
|
140
145
|
@include border-top-radius(0);
|
|
141
146
|
}
|
package/scss/_card.scss
CHANGED
|
@@ -193,8 +193,7 @@
|
|
|
193
193
|
// The child selector allows nested `.card` within `.card-group`
|
|
194
194
|
// to display properly.
|
|
195
195
|
> .card {
|
|
196
|
-
|
|
197
|
-
flex: 1 0 0%;
|
|
196
|
+
flex: 1 0 0;
|
|
198
197
|
margin-bottom: 0;
|
|
199
198
|
|
|
200
199
|
+ .card {
|
package/scss/_functions.scss
CHANGED
|
@@ -177,7 +177,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
|
|
|
177
177
|
@return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
// Return WCAG2.
|
|
180
|
+
// Return WCAG2.2 relative luminance
|
|
181
181
|
// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
|
|
182
182
|
// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
|
|
183
183
|
@function luminance($color) {
|
package/scss/_nav.scss
CHANGED
package/scss/_navbar.scss
CHANGED
|
@@ -139,8 +139,8 @@
|
|
|
139
139
|
// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
|
|
140
140
|
// on the `.navbar` parent.
|
|
141
141
|
.navbar-collapse {
|
|
142
|
-
flex-basis: 100%;
|
|
143
142
|
flex-grow: 1;
|
|
143
|
+
flex-basis: 100%;
|
|
144
144
|
// For always expanded or extra full navbars, ensure content aligns itself
|
|
145
145
|
// properly vertically. Can be easily overridden with flex utilities.
|
|
146
146
|
align-items: center;
|
|
@@ -140,8 +140,8 @@ $form-invalid-border-color-dark: $red-300 !default;
|
|
|
140
140
|
$accordion-icon-color-dark: $body-color-dark !default;
|
|
141
141
|
$accordion-icon-active-color-dark: $primary-text-emphasis-dark !default;
|
|
142
142
|
|
|
143
|
-
$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.
|
|
144
|
-
$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.
|
|
143
|
+
$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
|
|
144
|
+
$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
//
|
package/scss/_variables.scss
CHANGED
|
@@ -79,7 +79,7 @@ $colors: (
|
|
|
79
79
|
// scss-docs-end colors-map
|
|
80
80
|
|
|
81
81
|
// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
|
|
82
|
-
// See https://www.w3.org/TR/
|
|
82
|
+
// See https://www.w3.org/TR/WCAG/#contrast-minimum
|
|
83
83
|
$min-contrast-ratio: 4.5 !default;
|
|
84
84
|
|
|
85
85
|
// Customize the light and dark text colors for use in our color contrast function.
|
|
@@ -1153,7 +1153,7 @@ $form-feedback-valid-color: $success !default;
|
|
|
1153
1153
|
$form-feedback-invalid-color: $danger !default;
|
|
1154
1154
|
|
|
1155
1155
|
$form-feedback-icon-valid-color: $form-feedback-valid-color !default;
|
|
1156
|
-
$form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.
|
|
1156
|
+
$form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/></svg>") !default;
|
|
1157
1157
|
$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
|
|
1158
1158
|
$form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
|
|
1159
1159
|
// scss-docs-end form-feedback-variables
|
|
@@ -1467,8 +1467,8 @@ $accordion-icon-active-color: $primary-text-emphasis !default;
|
|
|
1467
1467
|
$accordion-icon-transition: transform .2s ease-in-out !default;
|
|
1468
1468
|
$accordion-icon-transform: rotate(-180deg) !default;
|
|
1469
1469
|
|
|
1470
|
-
$accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='
|
|
1471
|
-
$accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='
|
|
1470
|
+
$accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='m2 5 6 6 6-6'/></svg>") !default;
|
|
1471
|
+
$accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='m2 5 6 6 6-6'/></svg>") !default;
|
|
1472
1472
|
// scss-docs-end accordion-variables
|
|
1473
1473
|
|
|
1474
1474
|
// Tooltips
|
|
@@ -1867,8 +1867,8 @@ $carousel-caption-spacer: 1.25rem !default;
|
|
|
1867
1867
|
|
|
1868
1868
|
$carousel-control-icon-width: 2rem !default;
|
|
1869
1869
|
|
|
1870
|
-
$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708
|
|
1871
|
-
$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.
|
|
1870
|
+
$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>") !default;
|
|
1871
|
+
$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>") !default;
|
|
1872
1872
|
|
|
1873
1873
|
$carousel-transition-duration: .6s !default;
|
|
1874
1874
|
$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
|
|
@@ -1898,11 +1898,13 @@ $sidebar-brand-bg: rgba($black, .2) !default;
|
|
|
1898
1898
|
$sidebar-backdrop-bg: $black !default;
|
|
1899
1899
|
$sidebar-backdrop-opacity: .5 !default;
|
|
1900
1900
|
$sidebar-overlaid-box-shadow: var(--#{$prefix}box-shadow) !default;
|
|
1901
|
+
$sidebar-narrow-unfoldable-box-shadow: var(--#{$prefix}box-shadow) !default;
|
|
1901
1902
|
// scss-docs-end sidebar-variables
|
|
1902
1903
|
|
|
1903
1904
|
// scss-docs-start sidebar-nav-variables
|
|
1904
1905
|
$sidebar-nav-padding-y: $sidebar-padding-y * .5 !default;
|
|
1905
1906
|
$sidebar-nav-padding-x: $sidebar-padding-x * .5 !default;
|
|
1907
|
+
$sidebar-nav-gap: 1px !default;
|
|
1906
1908
|
|
|
1907
1909
|
$sidebar-nav-title-padding-y: .75rem !default;
|
|
1908
1910
|
$sidebar-nav-title-padding-x: 1rem !default;
|
|
@@ -1965,7 +1967,7 @@ $sidebar-nav-group-items-padding-x: 0 !default;
|
|
|
1965
1967
|
$sidebar-nav-group-items-transition: height .15s ease !default;
|
|
1966
1968
|
|
|
1967
1969
|
$sidebar-nav-group-indicator-color: var(--#{$prefix}tertiary-color) !default;
|
|
1968
|
-
$sidebar-nav-group-indicator-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.
|
|
1970
|
+
$sidebar-nav-group-indicator-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
|
|
1969
1971
|
$sidebar-nav-group-indicator-hover-color: $sidebar-nav-link-hover-color !default;
|
|
1970
1972
|
$sidebar-nav-group-indicator-hover-icon: $sidebar-nav-group-indicator-icon !default;
|
|
1971
1973
|
$sidebar-nav-group-indicator-transition: transform .15s !default;
|
|
@@ -1982,7 +1984,7 @@ $sidebar-toggler-icon: url("data:image/svg+xml,%0A%3Csvg xmlns='htt
|
|
|
1982
1984
|
$sidebar-toggler-focus-shadow: $focus-ring-box-shadow !default;
|
|
1983
1985
|
$sidebar-toggler-hover-color: var(--#{$prefix}secondary-color) !default;
|
|
1984
1986
|
$sidebar-toggler-focus-color: var(--#{$prefix}secondary-color) !default;
|
|
1985
|
-
$sidebar-toggler-transition:
|
|
1987
|
+
$sidebar-toggler-transition: transform .15s !default;
|
|
1986
1988
|
// scss-docs-end sidebar-toggler
|
|
1987
1989
|
|
|
1988
1990
|
// Footer
|
|
@@ -2019,7 +2021,7 @@ $btn-close-height: $btn-close-width !default;
|
|
|
2019
2021
|
$btn-close-padding-x: .25em !default;
|
|
2020
2022
|
$btn-close-padding-y: $btn-close-padding-x !default;
|
|
2021
2023
|
$btn-close-color: $black !default;
|
|
2022
|
-
$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.
|
|
2024
|
+
$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/></svg>") !default;
|
|
2023
2025
|
$btn-close-focus-shadow: $focus-ring-box-shadow !default;
|
|
2024
2026
|
$btn-close-opacity: .5 !default;
|
|
2025
2027
|
$btn-close-hover-opacity: .75 !default;
|
|
@@ -14,9 +14,11 @@
|
|
|
14
14
|
top: 0;
|
|
15
15
|
@include ltr-rtl("left", 0);
|
|
16
16
|
z-index: 2;
|
|
17
|
+
max-width: 100%;
|
|
17
18
|
height: 100%; // allow textareas
|
|
18
19
|
padding: $form-floating-padding-y $form-floating-padding-x;
|
|
19
20
|
overflow: hidden;
|
|
21
|
+
color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
|
|
20
22
|
text-align: start;
|
|
21
23
|
text-overflow: ellipsis;
|
|
22
24
|
white-space: nowrap;
|
|
@@ -56,27 +58,30 @@
|
|
|
56
58
|
> .form-control-plaintext,
|
|
57
59
|
> .form-select {
|
|
58
60
|
~ label {
|
|
59
|
-
color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
|
|
60
61
|
transform: $form-floating-label-transform;
|
|
61
|
-
|
|
62
|
-
&::after {
|
|
63
|
-
position: absolute;
|
|
64
|
-
inset: $form-floating-padding-y ($form-floating-padding-x * .5);
|
|
65
|
-
z-index: -1;
|
|
66
|
-
height: $form-floating-label-height;
|
|
67
|
-
content: "";
|
|
68
|
-
background-color: $input-bg;
|
|
69
|
-
@include border-radius($input-border-radius);
|
|
70
|
-
}
|
|
71
62
|
}
|
|
72
63
|
}
|
|
73
64
|
// Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
|
|
74
65
|
> .form-control:-webkit-autofill {
|
|
75
66
|
~ label {
|
|
76
|
-
color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
|
|
77
67
|
transform: $form-floating-label-transform;
|
|
78
68
|
}
|
|
79
69
|
}
|
|
70
|
+
> textarea:focus,
|
|
71
|
+
> textarea:not(:placeholder-shown) {
|
|
72
|
+
~ label::after {
|
|
73
|
+
position: absolute;
|
|
74
|
+
inset: $form-floating-padding-y ($form-floating-padding-x * .5);
|
|
75
|
+
z-index: -1;
|
|
76
|
+
height: $form-floating-label-height;
|
|
77
|
+
content: "";
|
|
78
|
+
background-color: $input-bg;
|
|
79
|
+
@include border-radius($input-border-radius);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
> textarea:disabled ~ label::after {
|
|
83
|
+
background-color: $input-disabled-bg;
|
|
84
|
+
}
|
|
80
85
|
|
|
81
86
|
> .form-control-plaintext {
|
|
82
87
|
~ label {
|
|
@@ -87,9 +92,5 @@
|
|
|
87
92
|
> :disabled ~ label,
|
|
88
93
|
> .form-control:disabled ~ label { // Required for `.form-control`s because of specificity
|
|
89
94
|
color: $form-floating-label-disabled-color;
|
|
90
|
-
|
|
91
|
-
&::after {
|
|
92
|
-
background-color: $input-disabled-bg;
|
|
93
|
-
}
|
|
94
95
|
}
|
|
95
96
|
}
|
package/scss/mixins/_banner.scss
CHANGED
package/scss/mixins/_grid.scss
CHANGED
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
@include media-breakpoint-up($breakpoint, $breakpoints) {
|
|
73
73
|
// Provide basic `.col-{bp}` classes for equal-width flexbox columns
|
|
74
74
|
.col#{$infix} {
|
|
75
|
-
flex: 1 0 0
|
|
75
|
+
flex: 1 0 0;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
.row-cols#{$infix}-auto > * {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
// Use to only display content when it's focused, or one of its child elements is focused
|
|
25
25
|
// (i.e. when focus is within the element/container that the class was applied to)
|
|
26
26
|
//
|
|
27
|
-
// Useful for "Skip to main content" links; see https://www.w3.org/
|
|
27
|
+
// Useful for "Skip to main content" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html
|
|
28
28
|
|
|
29
29
|
@mixin visually-hidden-focusable() {
|
|
30
30
|
&:not(:focus):not(:focus-within) {
|