@bluevolt-tech/lumen 2.0.1 → 2.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 +37 -23
- package/dist/components/_shared/adopt-styles.d.ts +8 -0
- package/dist/components/_shared/date-range-validator.d.ts +86 -0
- package/dist/components/_shared/dropdown-controller.d.ts +60 -0
- package/dist/components/_shared/selectable-card.d.ts +10 -0
- package/dist/components/bv-alert-banner/bv-alert-banner.js +19 -17
- package/dist/components/bv-avatar/bv-avatar.js +19 -11
- package/dist/components/bv-badge/bv-badge.js +19 -11
- package/dist/components/bv-button/bv-button.js +18 -16
- package/dist/components/bv-category-pill/bv-category-pill.js +18 -16
- package/dist/components/bv-checkbox/bv-checkbox.js +19 -11
- package/dist/components/bv-chip/bv-chip.js +19 -11
- package/dist/components/bv-course-detail/bv-course-detail.js +20 -34
- package/dist/components/bv-course-detail-modal/bv-course-detail-modal.js +24 -90
- package/dist/components/bv-course-grid-card/bv-course-grid-card.d.ts +2 -6
- package/dist/components/bv-course-grid-card/bv-course-grid-card.js +98 -105
- package/dist/components/bv-course-list-card/bv-course-list-card.d.ts +2 -6
- package/dist/components/bv-course-list-card/bv-course-list-card.js +98 -105
- package/dist/components/bv-course-outline/bv-course-outline.js +19 -11
- package/dist/components/bv-date-range-input/bv-date-range-input.d.ts +10 -6
- package/dist/components/bv-date-range-input/bv-date-range-input.js +602 -125
- package/dist/components/bv-date-range-picker/bv-date-range-picker.d.ts +71 -4
- package/dist/components/bv-date-range-picker/bv-date-range-picker.js +441 -76
- package/dist/components/bv-empty-state/bv-empty-state.js +20 -28
- package/dist/components/bv-filter-dropdown/bv-filter-dropdown.d.ts +1 -4
- package/dist/components/bv-filter-dropdown/bv-filter-dropdown.js +80 -53
- package/dist/components/bv-filter-panel/bv-filter-panel.js +20 -22
- package/dist/components/bv-icon/bv-icon.js +19 -11
- package/dist/components/bv-input/bv-input.js +18 -16
- package/dist/components/bv-input-dropdown/bv-input-dropdown.d.ts +1 -4
- package/dist/components/bv-input-dropdown/bv-input-dropdown.js +79 -78
- package/dist/components/bv-modal/bv-modal.js +19 -11
- package/dist/components/bv-page-title/bv-page-title.js +19 -6
- package/dist/components/bv-pagination/bv-pagination.d.ts +1 -0
- package/dist/components/bv-pagination/bv-pagination.js +23 -186
- package/dist/components/bv-portal-header/bv-portal-header.js +25 -83
- package/dist/components/bv-portal-layout/bv-portal-layout.js +19 -11
- package/dist/components/bv-progress-bar/bv-progress-bar.js +19 -11
- package/dist/components/bv-promo-banner/bv-promo-banner.js +19 -11
- package/dist/components/bv-radio/bv-radio.js +19 -11
- package/dist/components/bv-searchbox/bv-searchbox.js +19 -11
- package/dist/components/bv-segmented-control/bv-segmented-control.js +18 -16
- package/dist/components/bv-select/bv-select.d.ts +1 -4
- package/dist/components/bv-select/bv-select.js +78 -44
- package/dist/components/bv-split-button/bv-split-button.d.ts +1 -4
- package/dist/components/bv-split-button/bv-split-button.js +78 -42
- package/dist/components/bv-star-rating/bv-star-rating.js +19 -11
- package/dist/components/bv-table/bv-table.d.ts +5 -0
- package/dist/components/bv-table/bv-table.js +70 -19
- package/dist/components/bv-toggle/bv-toggle.js +19 -11
- package/dist/components/bv-tooltip/bv-tooltip.js +20 -17
- package/dist/components/bv-user-row/bv-user-row.js +22 -50
- package/dist/components/bv-view-switcher/bv-view-switcher.js +19 -11
- package/dist/themes/base.css +1 -1
- package/package.json +8 -1
- package/themes/base.css +1 -1
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
// css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-toggle/bv-toggle.css
|
|
2
2
|
var bv_toggle_default = ":host {\n --bv-toggle-width: 44px;\n --bv-toggle-height: 24px;\n --bv-toggle-track-off: var(--bv-color-neutral-300);\n --bv-toggle-track-on: var(--bv-color-primary);\n --bv-toggle-thumb: var(--bv-color-neutral-0);\n display: inline-flex;\n font-family: var(--bv-font-family-base);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([size='sm']) {\n --bv-toggle-width: 32px;\n --bv-toggle-height: 18px;\n}\n\n.wrap {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n}\n\n:host([disabled]) .wrap {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.track {\n position: relative;\n width: var(--bv-toggle-width);\n height: var(--bv-toggle-height);\n border-radius: var(--bv-radius-full);\n background: var(--bv-toggle-track-off);\n transition: background var(--bv-transition-fast);\n flex-shrink: 0;\n}\n\n:host([checked]) .track {\n background: var(--bv-toggle-track-on);\n}\n\n.thumb {\n position: absolute;\n top: 3px;\n left: 3px;\n width: calc(var(--bv-toggle-height) - 6px);\n height: calc(var(--bv-toggle-height) - 6px);\n border-radius: 50%;\n background: var(--bv-toggle-thumb);\n box-shadow: var(--bv-shadow-sm);\n transition: transform var(--bv-transition-fast);\n}\n\n:host([checked]) .thumb {\n transform: translateX(calc(var(--bv-toggle-width) - var(--bv-toggle-height)));\n}\n\n.label {\n font-size: var(--bv-font-size-sm);\n color: var(--bv-color-neutral-800);\n line-height: 20px;\n}\n\n:host([size='sm']) .label {\n font-size: var(--bv-font-size-xs);\n line-height: 18px;\n}\n";
|
|
3
3
|
|
|
4
|
+
// components/_shared/adopt-styles.ts
|
|
5
|
+
var _sheetCache = /* @__PURE__ */ new Map();
|
|
6
|
+
function adoptStyles(shadow, css) {
|
|
7
|
+
if ("adoptedStyleSheets" in ShadowRoot.prototype && typeof CSSStyleSheet !== "undefined" && "replaceSync" in CSSStyleSheet.prototype) {
|
|
8
|
+
let sheet = _sheetCache.get(css);
|
|
9
|
+
if (!sheet) {
|
|
10
|
+
sheet = new CSSStyleSheet();
|
|
11
|
+
sheet.replaceSync(css);
|
|
12
|
+
_sheetCache.set(css, sheet);
|
|
13
|
+
}
|
|
14
|
+
shadow.adoptedStyleSheets = [sheet];
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const style = document.createElement("style");
|
|
18
|
+
style.textContent = css;
|
|
19
|
+
shadow.appendChild(style);
|
|
20
|
+
}
|
|
21
|
+
|
|
4
22
|
// components/bv-toggle/bv-toggle.ts
|
|
5
23
|
var BvToggle = class extends HTMLElement {
|
|
6
24
|
static observedAttributes = ["checked", "disabled", "label", "size"];
|
|
@@ -8,12 +26,7 @@ var BvToggle = class extends HTMLElement {
|
|
|
8
26
|
_labelEl = null;
|
|
9
27
|
constructor() {
|
|
10
28
|
super();
|
|
11
|
-
this.attachShadow({ mode: "open" });
|
|
12
|
-
if ("replaceSync" in CSSStyleSheet.prototype) {
|
|
13
|
-
const sheet = new CSSStyleSheet();
|
|
14
|
-
sheet.replaceSync(bv_toggle_default);
|
|
15
|
-
this.shadowRoot.adoptedStyleSheets = [sheet];
|
|
16
|
-
}
|
|
29
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_toggle_default);
|
|
17
30
|
}
|
|
18
31
|
connectedCallback() {
|
|
19
32
|
this._render();
|
|
@@ -33,11 +46,6 @@ var BvToggle = class extends HTMLElement {
|
|
|
33
46
|
if (this._rendered) return;
|
|
34
47
|
this._rendered = true;
|
|
35
48
|
const shadow = this.shadowRoot;
|
|
36
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
37
|
-
const s = document.createElement("style");
|
|
38
|
-
s.textContent = bv_toggle_default;
|
|
39
|
-
shadow.appendChild(s);
|
|
40
|
-
}
|
|
41
49
|
const wrap = document.createElement("label");
|
|
42
50
|
wrap.className = "wrap";
|
|
43
51
|
const track = document.createElement("span");
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
// css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-tooltip/bv-tooltip.css
|
|
2
2
|
var bv_tooltip_default = ":host {\n display: inline-flex;\n align-items: center;\n position: relative;\n font-family: var(--bv-font-family-base);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.wrap {\n display: inline-flex;\n align-items: center;\n position: relative;\n}\n\n.trigger {\n display: inline-flex;\n align-items: center;\n cursor: help;\n color: var(--bv-color-neutral-400);\n outline: none;\n border: none;\n background: none;\n padding: 0;\n line-height: 0;\n}\n\n.trigger:hover,\n.trigger:focus {\n color: var(--bv-color-neutral-600);\n}\n\n.trigger svg {\n display: block;\n width: 14px;\n height: 14px;\n}\n\n/* \u2500\u2500 Popup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.popup {\n /* Shown/positioned entirely via JS \u2014 display starts as none */\n display: none;\n position: absolute;\n z-index: 500;\n min-width: 200px;\n max-width: 300px;\n background: var(--bv-color-neutral-900);\n color: var(--bv-color-neutral-0);\n border-radius: var(--bv-radius-md);\n padding: 10px 12px;\n font-size: var(--bv-font-size-xs);\n font-weight: var(--bv-font-weight-regular);\n line-height: 1.6;\n box-shadow: var(--bv-shadow-lg);\n pointer-events: none;\n white-space: normal;\n}\n\n/* \u2500\u2500 Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.text-content {\n display: none;\n}\n\n:host([text]) .text-content {\n display: block;\n}\n\n:host([text]) slot {\n display: none;\n}\n\n::slotted(p) {\n margin: 0 0 4px;\n}\n\n::slotted(p:last-child) {\n margin-bottom: 0;\n}\n";
|
|
3
3
|
|
|
4
|
-
// components/
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
// components/_shared/adopt-styles.ts
|
|
5
|
+
var _sheetCache = /* @__PURE__ */ new Map();
|
|
6
|
+
function adoptStyles(shadow, css) {
|
|
7
|
+
if ("adoptedStyleSheets" in ShadowRoot.prototype && typeof CSSStyleSheet !== "undefined" && "replaceSync" in CSSStyleSheet.prototype) {
|
|
8
|
+
let sheet = _sheetCache.get(css);
|
|
9
|
+
if (!sheet) {
|
|
10
|
+
sheet = new CSSStyleSheet();
|
|
11
|
+
sheet.replaceSync(css);
|
|
12
|
+
_sheetCache.set(css, sheet);
|
|
13
|
+
}
|
|
14
|
+
shadow.adoptedStyleSheets = [sheet];
|
|
15
|
+
return;
|
|
11
16
|
}
|
|
12
|
-
|
|
17
|
+
const style = document.createElement("style");
|
|
18
|
+
style.textContent = css;
|
|
19
|
+
shadow.appendChild(style);
|
|
13
20
|
}
|
|
21
|
+
|
|
22
|
+
// components/bv-tooltip/bv-tooltip.ts
|
|
23
|
+
var QUESTION_MARK_SVG = `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>`;
|
|
14
24
|
var _uid = 0;
|
|
15
25
|
var BvTooltip = class extends HTMLElement {
|
|
16
26
|
static observedAttributes = ["text", "position"];
|
|
@@ -20,10 +30,7 @@ var BvTooltip = class extends HTMLElement {
|
|
|
20
30
|
_popupEl = null;
|
|
21
31
|
constructor() {
|
|
22
32
|
super();
|
|
23
|
-
|
|
24
|
-
if ("adoptedStyleSheets" in ShadowRoot.prototype) {
|
|
25
|
-
shadow.adoptedStyleSheets = [getSheet()];
|
|
26
|
-
}
|
|
33
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_tooltip_default);
|
|
27
34
|
}
|
|
28
35
|
get text() {
|
|
29
36
|
return this.getAttribute("text") ?? "";
|
|
@@ -50,11 +57,6 @@ var BvTooltip = class extends HTMLElement {
|
|
|
50
57
|
if (this._rendered) return;
|
|
51
58
|
this._rendered = true;
|
|
52
59
|
const shadow = this.shadowRoot;
|
|
53
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
54
|
-
const s = document.createElement("style");
|
|
55
|
-
s.textContent = bv_tooltip_default;
|
|
56
|
-
shadow.appendChild(s);
|
|
57
|
-
}
|
|
58
60
|
const wrap = document.createElement("span");
|
|
59
61
|
wrap.className = "wrap";
|
|
60
62
|
const popupId = `bv-tooltip-popup-${++_uid}`;
|
|
@@ -95,6 +97,7 @@ var BvTooltip = class extends HTMLElement {
|
|
|
95
97
|
popup.style.transform = "none";
|
|
96
98
|
popup.style.display = "block";
|
|
97
99
|
popup.style.visibility = "hidden";
|
|
100
|
+
void popup.offsetHeight;
|
|
98
101
|
const tRect = trigger.getBoundingClientRect();
|
|
99
102
|
const pRect = popup.getBoundingClientRect();
|
|
100
103
|
const vw = window.innerWidth;
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
// css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-user-row/bv-user-row.css
|
|
2
2
|
var bv_user_row_default = ":host {\n display: inline-block;\n}\n\n.row {\n display: inline-flex;\n align-items: center;\n gap: var(--bv-spacing-lg);\n}\n\n/* User info */\n.user-info {\n display: flex;\n align-items: center;\n gap: var(--bv-spacing-md);\n min-width: 0;\n}\n\nbv-avatar {\n --bv-avatar-size: 56px;\n flex-shrink: 0;\n}\n\n.text-col {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.user-name {\n font-family: var(--bv-font-family-base);\n font-size: var(--bv-font-size-lg);\n font-weight: var(--bv-font-weight-semibold);\n color: var(--bv-color-secondary-foreground);\n line-height: 28px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.user-org {\n font-family: var(--bv-font-family-base);\n font-size: var(--bv-font-size-md);\n font-weight: var(--bv-font-weight-regular);\n color: var(--bv-color-neutral-600);\n line-height: 24px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Edit action host \u2014 flex to keep either <bv-button> or <a> aligned */\n.edit-action {\n flex-shrink: 0;\n display: inline-flex;\n}\n\n/* Edit button \u2014 white bg, neutral border */\n.edit-btn {\n --bv-button-bg: var(--bv-color-neutral-0);\n --bv-button-bg-hover: var(--bv-color-neutral-100);\n --bv-button-color: var(--bv-color-secondary-foreground);\n --bv-button-border-color: var(--bv-color-neutral-300);\n --bv-button-border-color-hover: var(--bv-color-neutral-400);\n flex-shrink: 0;\n}\n\n/* Edit link \u2014 same visual as .edit-btn, but a real anchor */\n.edit-link {\n display: inline-flex;\n align-items: center;\n gap: var(--bv-spacing-sm);\n padding: 8px 16px;\n background: var(--bv-color-neutral-0);\n color: var(--bv-color-secondary-foreground);\n border: 1px solid var(--bv-color-neutral-300);\n border-radius: var(--bv-radius-md);\n font-family: var(--bv-font-family-base);\n font-size: var(--bv-font-size-sm);\n font-weight: var(--bv-font-weight-medium);\n text-decoration: none;\n cursor: pointer;\n transition:\n background var(--bv-transition-fast),\n border-color var(--bv-transition-fast);\n}\n\n.edit-link:hover {\n background: var(--bv-color-neutral-100);\n border-color: var(--bv-color-neutral-400);\n}\n\n.edit-link:focus-visible {\n outline: 2px solid var(--bv-color-primary);\n outline-offset: 2px;\n}\n";
|
|
3
3
|
|
|
4
|
+
// components/_shared/adopt-styles.ts
|
|
5
|
+
var _sheetCache = /* @__PURE__ */ new Map();
|
|
6
|
+
function adoptStyles(shadow, css) {
|
|
7
|
+
if ("adoptedStyleSheets" in ShadowRoot.prototype && typeof CSSStyleSheet !== "undefined" && "replaceSync" in CSSStyleSheet.prototype) {
|
|
8
|
+
let sheet = _sheetCache.get(css);
|
|
9
|
+
if (!sheet) {
|
|
10
|
+
sheet = new CSSStyleSheet();
|
|
11
|
+
sheet.replaceSync(css);
|
|
12
|
+
_sheetCache.set(css, sheet);
|
|
13
|
+
}
|
|
14
|
+
shadow.adoptedStyleSheets = [sheet];
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const style = document.createElement("style");
|
|
18
|
+
style.textContent = css;
|
|
19
|
+
shadow.appendChild(style);
|
|
20
|
+
}
|
|
21
|
+
|
|
4
22
|
// css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-avatar/bv-avatar.css
|
|
5
23
|
var bv_avatar_default = ":host {\n --bv-avatar-size: 40px;\n --bv-avatar-bg: var(--bv-color-primary-light);\n --bv-avatar-color: var(--bv-color-primary);\n --bv-avatar-radius: var(--bv-radius-full);\n display: inline-flex;\n}\n\n:host([size='xs']) {\n --bv-avatar-size: 24px;\n}\n:host([size='sm']) {\n --bv-avatar-size: 32px;\n}\n:host([size='md']) {\n --bv-avatar-size: 40px;\n}\n:host([size='lg']) {\n --bv-avatar-size: 48px;\n}\n:host([size='xl']) {\n --bv-avatar-size: 64px;\n}\n\n.avatar {\n width: var(--bv-avatar-size);\n height: var(--bv-avatar-size);\n border-radius: var(--bv-avatar-radius);\n background: var(--bv-avatar-bg);\n color: var(--bv-avatar-color);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex-shrink: 0;\n font-family: var(--bv-font-family-base);\n font-weight: var(--bv-font-weight-semibold);\n font-size: calc(var(--bv-avatar-size) * 0.38);\n user-select: none;\n}\n\n.avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n";
|
|
6
24
|
|
|
@@ -12,12 +30,7 @@ var BvAvatar = class extends HTMLElement {
|
|
|
12
30
|
_label = null;
|
|
13
31
|
constructor() {
|
|
14
32
|
super();
|
|
15
|
-
this.attachShadow({ mode: "open" });
|
|
16
|
-
if ("replaceSync" in CSSStyleSheet.prototype) {
|
|
17
|
-
const sheet = new CSSStyleSheet();
|
|
18
|
-
sheet.replaceSync(bv_avatar_default);
|
|
19
|
-
this.shadowRoot.adoptedStyleSheets = [sheet];
|
|
20
|
-
}
|
|
33
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_avatar_default);
|
|
21
34
|
}
|
|
22
35
|
connectedCallback() {
|
|
23
36
|
this._render();
|
|
@@ -32,11 +45,6 @@ var BvAvatar = class extends HTMLElement {
|
|
|
32
45
|
if (this._rendered) return;
|
|
33
46
|
this._rendered = true;
|
|
34
47
|
const shadow = this.shadowRoot;
|
|
35
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
36
|
-
const s = document.createElement("style");
|
|
37
|
-
s.textContent = bv_avatar_default;
|
|
38
|
-
shadow.appendChild(s);
|
|
39
|
-
}
|
|
40
48
|
const div = document.createElement("div");
|
|
41
49
|
div.className = "avatar";
|
|
42
50
|
const src = this.getAttribute("src");
|
|
@@ -157,14 +165,6 @@ var rawIcons = {
|
|
|
157
165
|
};
|
|
158
166
|
|
|
159
167
|
// components/bv-button/bv-button.ts
|
|
160
|
-
var _sheet = null;
|
|
161
|
-
function getSheet() {
|
|
162
|
-
if (!_sheet) {
|
|
163
|
-
_sheet = new CSSStyleSheet();
|
|
164
|
-
_sheet.replaceSync(bv_button_default);
|
|
165
|
-
}
|
|
166
|
-
return _sheet;
|
|
167
|
-
}
|
|
168
168
|
var BvButton = class extends HTMLElement {
|
|
169
169
|
static observedAttributes = [
|
|
170
170
|
"variant",
|
|
@@ -180,10 +180,7 @@ var BvButton = class extends HTMLElement {
|
|
|
180
180
|
];
|
|
181
181
|
constructor() {
|
|
182
182
|
super();
|
|
183
|
-
|
|
184
|
-
if ("adoptedStyleSheets" in ShadowRoot.prototype) {
|
|
185
|
-
shadow.adoptedStyleSheets = [getSheet()];
|
|
186
|
-
}
|
|
183
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_button_default);
|
|
187
184
|
}
|
|
188
185
|
// ── Accessors ────────────────────────────────────────────────
|
|
189
186
|
get variant() {
|
|
@@ -240,11 +237,6 @@ var BvButton = class extends HTMLElement {
|
|
|
240
237
|
const shadow = this.shadowRoot;
|
|
241
238
|
let btn = shadow.querySelector("button");
|
|
242
239
|
if (!btn) {
|
|
243
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
244
|
-
const styleEl = document.createElement("style");
|
|
245
|
-
styleEl.textContent = bv_button_default;
|
|
246
|
-
shadow.appendChild(styleEl);
|
|
247
|
-
}
|
|
248
240
|
btn = document.createElement("button");
|
|
249
241
|
btn.setAttribute("part", "button");
|
|
250
242
|
btn.appendChild(document.createElement("slot"));
|
|
@@ -308,12 +300,7 @@ var BvIcon = class extends HTMLElement {
|
|
|
308
300
|
_wrap = null;
|
|
309
301
|
constructor() {
|
|
310
302
|
super();
|
|
311
|
-
this.attachShadow({ mode: "open" });
|
|
312
|
-
if ("replaceSync" in CSSStyleSheet.prototype) {
|
|
313
|
-
const sheet = new CSSStyleSheet();
|
|
314
|
-
sheet.replaceSync(bv_icon_default);
|
|
315
|
-
this.shadowRoot.adoptedStyleSheets = [sheet];
|
|
316
|
-
}
|
|
303
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_icon_default);
|
|
317
304
|
}
|
|
318
305
|
connectedCallback() {
|
|
319
306
|
this._render();
|
|
@@ -325,11 +312,6 @@ var BvIcon = class extends HTMLElement {
|
|
|
325
312
|
if (this._rendered) return;
|
|
326
313
|
this._rendered = true;
|
|
327
314
|
const shadow = this.shadowRoot;
|
|
328
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
329
|
-
const s = document.createElement("style");
|
|
330
|
-
s.textContent = bv_icon_default;
|
|
331
|
-
shadow.appendChild(s);
|
|
332
|
-
}
|
|
333
315
|
this._wrap = document.createElement("span");
|
|
334
316
|
this._wrap.className = "icon-wrap";
|
|
335
317
|
shadow.appendChild(this._wrap);
|
|
@@ -375,12 +357,7 @@ var BvUserRow = class extends HTMLElement {
|
|
|
375
357
|
_els = {};
|
|
376
358
|
constructor() {
|
|
377
359
|
super();
|
|
378
|
-
this.attachShadow({ mode: "open" });
|
|
379
|
-
if ("replaceSync" in CSSStyleSheet.prototype) {
|
|
380
|
-
const sheet = new CSSStyleSheet();
|
|
381
|
-
sheet.replaceSync(bv_user_row_default);
|
|
382
|
-
this.shadowRoot.adoptedStyleSheets = [sheet];
|
|
383
|
-
}
|
|
360
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_user_row_default);
|
|
384
361
|
}
|
|
385
362
|
connectedCallback() {
|
|
386
363
|
this._render();
|
|
@@ -424,11 +401,6 @@ var BvUserRow = class extends HTMLElement {
|
|
|
424
401
|
if (this._rendered) return;
|
|
425
402
|
this._rendered = true;
|
|
426
403
|
const shadow = this.shadowRoot;
|
|
427
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
428
|
-
const s = document.createElement("style");
|
|
429
|
-
s.textContent = bv_user_row_default;
|
|
430
|
-
shadow.appendChild(s);
|
|
431
|
-
}
|
|
432
404
|
const row = document.createElement("div");
|
|
433
405
|
row.className = "row";
|
|
434
406
|
const userInfo = document.createElement("div");
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
// css-inline:/home/runner/work/BV_lumen/BV_lumen/components/bv-view-switcher/bv-view-switcher.css
|
|
2
2
|
var bv_view_switcher_default = ":host {\n display: inline-flex;\n}\n\n.switcher {\n display: inline-flex;\n gap: 4px;\n padding: 4px;\n background: var(--bv-color-neutral-100);\n border-radius: var(--bv-radius-lg);\n}\n\n.view-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid transparent;\n border-radius: var(--bv-radius-md);\n background: transparent;\n color: var(--bv-color-neutral-500);\n cursor: pointer;\n transition:\n background var(--bv-transition-fast),\n border-color var(--bv-transition-fast),\n color var(--bv-transition-fast);\n}\n\n.view-btn:hover {\n background: var(--bv-color-neutral-0);\n color: var(--bv-color-neutral-700);\n}\n\n.view-btn.active {\n background: var(--bv-color-neutral-0);\n border-color: var(--bv-color-primary);\n color: var(--bv-color-primary);\n box-shadow: var(--bv-shadow-sm);\n}\n";
|
|
3
3
|
|
|
4
|
+
// components/_shared/adopt-styles.ts
|
|
5
|
+
var _sheetCache = /* @__PURE__ */ new Map();
|
|
6
|
+
function adoptStyles(shadow, css) {
|
|
7
|
+
if ("adoptedStyleSheets" in ShadowRoot.prototype && typeof CSSStyleSheet !== "undefined" && "replaceSync" in CSSStyleSheet.prototype) {
|
|
8
|
+
let sheet = _sheetCache.get(css);
|
|
9
|
+
if (!sheet) {
|
|
10
|
+
sheet = new CSSStyleSheet();
|
|
11
|
+
sheet.replaceSync(css);
|
|
12
|
+
_sheetCache.set(css, sheet);
|
|
13
|
+
}
|
|
14
|
+
shadow.adoptedStyleSheets = [sheet];
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const style = document.createElement("style");
|
|
18
|
+
style.textContent = css;
|
|
19
|
+
shadow.appendChild(style);
|
|
20
|
+
}
|
|
21
|
+
|
|
4
22
|
// components/bv-view-switcher/bv-view-switcher.ts
|
|
5
23
|
var LIST_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
6
24
|
<path d="M2 4h12M2 8h12M2 12h12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
|
@@ -18,12 +36,7 @@ var BvViewSwitcher = class extends HTMLElement {
|
|
|
18
36
|
_gridBtn = null;
|
|
19
37
|
constructor() {
|
|
20
38
|
super();
|
|
21
|
-
this.attachShadow({ mode: "open" });
|
|
22
|
-
if ("replaceSync" in CSSStyleSheet.prototype) {
|
|
23
|
-
const sheet = new CSSStyleSheet();
|
|
24
|
-
sheet.replaceSync(bv_view_switcher_default);
|
|
25
|
-
this.shadowRoot.adoptedStyleSheets = [sheet];
|
|
26
|
-
}
|
|
39
|
+
adoptStyles(this.attachShadow({ mode: "open" }), bv_view_switcher_default);
|
|
27
40
|
}
|
|
28
41
|
connectedCallback() {
|
|
29
42
|
this._render();
|
|
@@ -41,11 +54,6 @@ var BvViewSwitcher = class extends HTMLElement {
|
|
|
41
54
|
if (this._rendered) return;
|
|
42
55
|
this._rendered = true;
|
|
43
56
|
const shadow = this.shadowRoot;
|
|
44
|
-
if (!shadow.adoptedStyleSheets.length) {
|
|
45
|
-
const s = document.createElement("style");
|
|
46
|
-
s.textContent = bv_view_switcher_default;
|
|
47
|
-
shadow.appendChild(s);
|
|
48
|
-
}
|
|
49
57
|
const wrap = document.createElement("div");
|
|
50
58
|
wrap.className = "switcher";
|
|
51
59
|
const listBtn = document.createElement("button");
|
package/dist/themes/base.css
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bluevolt-tech/lumen",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org",
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
+
"generate:versions": "node scripts/generate-versions.js",
|
|
11
|
+
"prestorybook": "npm run generate:versions",
|
|
10
12
|
"storybook": "storybook dev -p 6006 --config-dir storybook/.storybook",
|
|
13
|
+
"prebuild-storybook": "npm run generate:versions",
|
|
11
14
|
"build-storybook": "node scripts/generate-changelog.js && storybook build --config-dir storybook/.storybook",
|
|
12
15
|
"changelog": "node scripts/generate-changelog.js",
|
|
13
16
|
"build:tokens": "node tokens/style-dictionary.config.cjs",
|
|
@@ -26,6 +29,9 @@
|
|
|
26
29
|
"format:check": "prettier --check components builder",
|
|
27
30
|
"validate:screens": "node scripts/validate-screens.js",
|
|
28
31
|
"validate:versions": "node scripts/validate-versions.js",
|
|
32
|
+
"validate:stories": "node scripts/validate-stories.js",
|
|
33
|
+
"validate:pr-metadata": "node scripts/validate-pr-metadata.js",
|
|
34
|
+
"qa-diff": "node scripts/qa-diff.mjs",
|
|
29
35
|
"prepare": "husky"
|
|
30
36
|
},
|
|
31
37
|
"files": [
|
|
@@ -211,6 +217,7 @@
|
|
|
211
217
|
"happy-dom": "^12.0.0",
|
|
212
218
|
"husky": "^9.1.7",
|
|
213
219
|
"lit": "^3.0.0",
|
|
220
|
+
"playwright-core": "^1.61.1",
|
|
214
221
|
"prettier": "^3.8.3",
|
|
215
222
|
"storybook": "^8.0.0",
|
|
216
223
|
"style-dictionary": "^3.9.0",
|