blue-web 1.17.0 → 1.17.2

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.
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Bootstrap v5.3.3 (https://getbootstrap.com/)
3
+ * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
@@ -1 +1 @@
1
- (()=>{"use strict";class t extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML='<slot style="border-radius: inherit"></slot>',this.activeIndex=-1,this.items=[],this.inputElement=null}connectedCallback(){this.setAttribute("role","listbox"),this.tabIndex=-1,this.updateItems();const t=this.getAttribute("for");this.inputElement=t?document.getElementById(t):null,this.inputElement&&(this.inputElement.setAttribute("role","combobox"),this.inputElement.setAttribute("aria-controls",this.id),this.inputElement.setAttribute("aria-autocomplete","list"),this.inputElement.setAttribute("aria-expanded","true"),this.inputElement.addEventListener("keydown",this.onKeyDown.bind(this))),this.addEventListener("keydown",this.onKeyDown.bind(this)),this.addEventListener("click",(t=>{const e=t.target instanceof Element?t.target.closest("[data-blue-select-list-index]"):null;if(e&&e.hasAttribute("data-blue-select-list-index")){const t=Number(e.getAttribute("data-blue-select-list-index"));this.select(t)}}))}updateItems(){this.items=Array.from(this.children),this.items.forEach(((t,e)=>{t.hasAttribute("id")||t.setAttribute("id",`${this.id}-option-${e}`),t.setAttribute("data-blue-select-list-index",e.toString()),t.setAttribute("aria-selected","false"),t.setAttribute("role","option"),t.tabIndex=-1}))}onKeyDown(t){if(this.items.length)if("ArrowDown"===t.key)t.preventDefault(),this.activeIndex=(this.activeIndex+1)%this.items.length,this.updateActiveItem();else if("ArrowUp"===t.key)t.preventDefault(),this.activeIndex=(this.activeIndex-1+this.items.length)%this.items.length,this.updateActiveItem();else if("Enter"===t.key&&this.activeIndex>=0){const t=this.items[this.activeIndex];t?.click()}}updateActiveItem(){this.items.forEach(((t,e)=>{const i=e===this.activeIndex;t.classList.toggle("active",i),t.setAttribute("aria-selected",i.toString())}));const t=this.items[this.activeIndex];t&&this.inputElement&&(this.inputElement.setAttribute("aria-activedescendant",t.id),t.scrollIntoView({block:"nearest"}))}select(t){this.activeIndex=t,this.updateActiveItem();const e=this.items[t];e&&(this.dispatchEvent(new CustomEvent("bl-select",{detail:{index:t,item:e},bubbles:!0,composed:!0})),e.click())}}customElements.define("bl-select-list",t)})();
1
+ (()=>{"use strict";class t extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML='<slot style="border-radius: inherit"></slot>',this.activeIndex=-1,this.items=[],this.inputElement=null}connectedCallback(){this.setAttribute("role","listbox"),this.tabIndex=-1,this.updateItems();const t=this.getAttribute("for");this.inputElement=t?document.getElementById(t):null,this.inputElement&&(this.inputElement.setAttribute("role","combobox"),this.inputElement.setAttribute("aria-controls",this.id),this.inputElement.setAttribute("aria-expanded","true"),this.inputElement.addEventListener("keydown",this.onKeyDown.bind(this))),this.addEventListener("keydown",this.onKeyDown.bind(this)),this.addEventListener("click",(t=>{const e=t.target instanceof Element?t.target.closest("[data-blue-select-list-index]"):null;if(e&&e.hasAttribute("data-blue-select-list-index")){const t=Number(e.getAttribute("data-blue-select-list-index"));this.select(t)}}))}updateItems(){this.items=Array.from(this.children),this.items.forEach(((t,e)=>{t.hasAttribute("id")||t.setAttribute("id",`${this.id}-option-${e}`),t.setAttribute("data-blue-select-list-index",e.toString()),t.setAttribute("aria-selected","false"),t.setAttribute("role","option"),t.tabIndex=-1}))}onKeyDown(t){if(console.log("select-list onKeyDown"),this.items.length)if("ArrowDown"===t.key)t.preventDefault(),this.activeIndex=(this.activeIndex+1)%this.items.length,this.updateActiveItem();else if("ArrowUp"===t.key)t.preventDefault(),this.activeIndex=(this.activeIndex-1+this.items.length)%this.items.length,this.updateActiveItem();else if("Enter"===t.key&&this.activeIndex>=0){const t=this.items[this.activeIndex];t?.click()}}updateActiveItem(){this.items.forEach(((t,e)=>{const i=e===this.activeIndex;t.classList.toggle("active",i),t.setAttribute("aria-selected",i.toString())}));const t=this.items[this.activeIndex];t&&this.inputElement&&(this.inputElement.setAttribute("aria-activedescendant",t.id),t.scrollIntoView({block:"nearest"}))}select(t){this.activeIndex=t,this.updateActiveItem();const e=this.items[t];e&&(this.dispatchEvent(new CustomEvent("bl-select",{detail:{index:t,item:e},bubbles:!0,composed:!0})),e.click())}}customElements.define("bl-select-list",t)})();
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * A Web Component that provides a keyboard-accessible selectable list, typically used for dropdowns or autocomplete lists.
3
+ * Together with `popover` and CSS Anchoring, it's also useful to create a dropdown list.
3
4
  * Supports keyboard navigation and selection, and integrates with an input element for combobox behavior.
4
5
  *
5
6
  * The Web Component will automatically set attributes for accessibility.
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * A Web Component that provides a keyboard-accessible selectable list, typically used for dropdowns or autocomplete lists.
3
+ * Together with `popover` and CSS Anchoring, it's also useful to create a dropdown list.
3
4
  * Supports keyboard navigation and selection, and integrates with an input element for combobox behavior.
4
5
  *
5
6
  * The Web Component will automatically set attributes for accessibility.
@@ -36,7 +37,6 @@ export class SelectList extends HTMLElement {
36
37
  if (this.inputElement) {
37
38
  this.inputElement.setAttribute("role", "combobox");
38
39
  this.inputElement.setAttribute("aria-controls", this.id);
39
- this.inputElement.setAttribute("aria-autocomplete", "list");
40
40
  this.inputElement.setAttribute("aria-expanded", "true");
41
41
  this.inputElement.addEventListener("keydown", this.onKeyDown.bind(this));
42
42
  }
@@ -62,6 +62,7 @@ export class SelectList extends HTMLElement {
62
62
  });
63
63
  }
64
64
  onKeyDown(e) {
65
+ console.log("select-list onKeyDown");
65
66
  if (!this.items.length) return;
66
67
  if (e.key === "ArrowDown") {
67
68
  e.preventDefault();
package/dist/merged.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Blue Web v1.17.0 (https://bruegmann.github.io/blue-web)
2
+ * Blue Web v1.17.2 (https://bruegmann.github.io/blue-web)
3
3
  * Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
4
4
  */
5
5
 
@@ -11839,6 +11839,19 @@ body {
11839
11839
  @include make-grid-columns-cq();
11840
11840
  }
11841
11841
 
11842
+ // Customize style of Bootstrap's nav-underline
11843
+ .nav-underline {
11844
+ .nav-link {
11845
+ --#{$prefix}nav-link-color: var(--#{$prefix}list-group-action-color);
11846
+ }
11847
+
11848
+ .nav-link.active,
11849
+ .show > .nav-link {
11850
+ font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-semibold);
11851
+ border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color, $primary);
11852
+ }
11853
+ }
11854
+
11842
11855
  .blue-tabs {
11843
11856
  display: flex;
11844
11857
  flex-wrap: wrap;
@@ -11893,9 +11906,9 @@ input.blue-tab:checked + .blue-tab-content {
11893
11906
  .blue-tabs.nav-underline {
11894
11907
  row-gap: 0;
11895
11908
  .blue-tab:checked {
11896
- font-weight: var(--blue-tabs-underline-active-font-weight, 700);
11909
+ font-weight: var(--blue-tabs-underline-active-font-weight, $font-weight-semibold);
11897
11910
  color: var(--bs-nav-underline-link-active-color);
11898
- border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color, currentcolor);
11911
+ border-bottom-color: var(--blue-tabs-underline-active-border-bottom-color, $primary);
11899
11912
  }
11900
11913
  }
11901
11914
 
@@ -12159,16 +12172,6 @@ dialog.blue-modal:has(.offcanvas-start) {
12159
12172
  &[open] > summary > .blue-collapse-header > .blue-collapse-chevron,
12160
12173
  &[open] > summary > .blue-collapse-chevron {
12161
12174
  --blue-collapse-chevron-rotate: 90deg;
12162
-
12163
- // If chevron is on the end, rotate has to be -90deg
12164
- &:is(:last-child) {
12165
- --blue-collapse-chevron-rotate: -90deg;
12166
- }
12167
-
12168
- &:is(:first-child) {
12169
- --blue-collapse-chevron-rotate: 90deg;
12170
- }
12171
-
12172
12175
  transform: rotate(var(--blue-collapse-chevron-rotate));
12173
12176
  }
12174
12177
 
@@ -12366,8 +12369,64 @@ dialog.blue-modal:has(.offcanvas-start) {
12366
12369
  --dxbl-toolbar-btn-border-radius: var(--bs-border-radius) !important;
12367
12370
  --dxbl-dropdown-border-radius: var(--bs-border-radius) !important;
12368
12371
  --dxbl-btn-border-radius: var(--bs-border-radius) !important;
12372
+ --dxbl-context-menu-border-radius: var(--bs-border-radius) !important;
12369
12373
  --dxbl-btn-padding-x: 0.75rem !important;
12370
12374
  --dxbl-btn-padding-y: 0.375rem !important;
12375
+
12376
+ --dxbl-btn-font-size: 1rem;
12377
+ --dxbl-checkbox-font-size: 1rem;
12378
+ --dxbl-calendar-font-size: 1rem;
12379
+ --dxbl-listbox-font-size: 1rem;
12380
+ --dxbl-list-box-font-size: 1rem;
12381
+ --dxbl-list-box-item-drag-hint-font-size: 1rem;
12382
+ --dxbl-color-palette-font-size: 1rem;
12383
+ --dxbl-text-edit-font-size: 1rem;
12384
+ --dxbl-edit-dropdown-font-size: 1rem;
12385
+ --dxbl-pager-font-size: 1rem;
12386
+ --dxbl-grid-font-size: 1rem;
12387
+ --dxbl-grid-draggable-header-font-size: 1rem;
12388
+ --dxbl-grid-row-drag-hint-font-size: 1rem;
12389
+ --dxbl-flyout-font-size: 1rem;
12390
+ --dxbl-popup-font-size: 1rem;
12391
+ --dxbl-dropdown-font-size: 1rem;
12392
+ --dxbl-window-font-size: 1rem;
12393
+ --dxbl-group-font-size: 1rem;
12394
+ --dxbl-fl-font-size: 1rem;
12395
+ --dxbl-fl-group-font-size: 1rem;
12396
+ --dxbl-fl-tab-group-font-size: 1rem;
12397
+ --dxbl-fl-tab-group-content-font-size: 1rem;
12398
+ --dxbl-toolbar-font-size: 1rem;
12399
+ --dxbl-tabs-font-size: 1rem;
12400
+ --dxbl-tabs-content-font-size: 1rem;
12401
+ --dxbl-accordion-group-font-size: 1rem;
12402
+ --dxbl-accordion-group-item-font-size: 1rem;
12403
+ --dxbl-accordion-group-header-font-size: 1rem;
12404
+ --dxbl-treeview-font-size: 1rem;
12405
+ --dxbl-navigation-badge-font-size: 1rem;
12406
+ --dxbl-radio-group-font-size: 1rem;
12407
+ --dxbl-context-menu-font-size: 1rem;
12408
+ --dxbl-menu-item-font-size: 1rem;
12409
+ --dxbl-scheduler-font-size: 1rem;
12410
+ --dxbl-toast-text-font-size: 1rem;
12411
+ --dxbl-toast-header-font-size: 1rem;
12412
+ --dxbl-drawer-panel-font-size: 1rem;
12413
+ --dxbl-progress-bar-label-font-size: 1rem;
12414
+ --dxbl-pivot-font-size: 1rem;
12415
+ --dxbl-pivot-field-font-size: 1rem;
12416
+ --dxbl-pivot-header-font-size: 1rem;
12417
+ --dxbl-pivot-total-font-size: 1rem;
12418
+ --dxbl-pivot-table-font-size: 1rem;
12419
+ --dxbl-pivot-table-header-field-font-size: 1rem;
12420
+ --dxbl-pivot-table-row-field-font-size: 1rem;
12421
+ --dxbl-pivot-table-total-font-size: 1rem;
12422
+ --dx-chatui-message-font-size: 1rem;
12423
+ --dx-chatui-suggestion-item-title-font-size: 1rem;
12424
+ --dx-chatui-attachment-list-item-font-size: 1rem;
12425
+ --dx-chatui-suggestion-item-text-font-size: 1rem;
12426
+ --dxbl-message-box-body-text-font-size: 1rem;
12427
+ --dxbl-message-box-header-font-size: 1rem;
12428
+ --dxbl-splitter-font-size: 1rem;
12429
+ --dxbl-filter-builder-font-size: 1rem;
12371
12430
  }
12372
12431
 
12373
12432
  .dxbl-grid {
@@ -12375,10 +12434,6 @@ dialog.blue-modal:has(.offcanvas-start) {
12375
12434
  border: none;
12376
12435
  }
12377
12436
 
12378
- .dxbl-text-edit {
12379
- font-size: 1rem;
12380
- }
12381
-
12382
12437
  .dxbl-pager-page-edit {
12383
12438
  min-width: 2.5em;
12384
12439
  }
@@ -12392,6 +12447,21 @@ body.modal-open .dxbl-popup-cell[style="z-index: 1050;"] {
12392
12447
  z-index: 1056 !important;
12393
12448
  }
12394
12449
 
12450
+ @if ($enable-button-pointers: false) {
12451
+ .dxbl-context-menu.dxbl-context-menu-dropdown
12452
+ > .dxbl-dropdown-body
12453
+ ul
12454
+ li:not(.dxbl-context-menu-separator)
12455
+ > .dxbl-context-menu-item,
12456
+ .dxbl-context-menu-submenu.dxbl-context-menu-dropdown
12457
+ > .dxbl-dropdown-body
12458
+ ul
12459
+ li:not(.dxbl-context-menu-separator)
12460
+ > .dxbl-context-menu-item {
12461
+ cursor: default;
12462
+ }
12463
+ }
12464
+
12395
12465
  :root {
12396
12466
  --bs-font-sans-serif: Inter, #{$font-family-sans-serif};
12397
12467
  font-feature-settings: