@brightspot/ui 1.0.1-wc.4 → 1.1.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 +4 -0
- package/dist/components/avatar/Avatar.d.ts +82 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.js +162 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/avatar/AvatarGroup.d.ts +70 -0
- package/dist/components/avatar/AvatarGroup.d.ts.map +1 -0
- package/dist/components/avatar/AvatarGroup.js +145 -0
- package/dist/components/avatar/AvatarGroup.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +75 -0
- package/dist/components/badge/Badge.d.ts.map +1 -0
- package/dist/components/badge/Badge.js +118 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/custom-elements.json +437 -0
- package/dist/storybook/assets/Avatar.stories-BONZm4v8.js +209 -0
- package/dist/storybook/assets/AvatarGroup.stories-DDKujPh2.js +211 -0
- package/dist/storybook/assets/Badge.stories-C8Ahfpp6.js +134 -0
- package/dist/storybook/assets/{Button.stories-BH3fEuOH.js → Button.stories-Cwdvbnu1.js} +1 -1
- package/dist/storybook/assets/{Color-64QXVMR3-BV_8WWIP.js → Color-64QXVMR3-CqLd5_0n.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-CcpJ2Txp.js → Colors.stories-BajWDIwn.js} +1 -1
- package/dist/storybook/assets/Events.stories-B32yjxgf.js +108 -0
- package/dist/storybook/assets/{Heading.stories-cqZamo-6.js → Heading.stories-C0ji1wRG.js} +1 -1
- package/dist/storybook/assets/{Icon.stories-uPhO3RBG.js → Icon.stories-DeEHMd7f.js} +1 -1
- package/dist/storybook/assets/{Loader.stories-D7Bl-LN9.js → Loader.stories-NxZ0SGA0.js} +1 -1
- package/dist/storybook/assets/ReadyMixin.stories-DavcxbQ0.js +55 -0
- package/dist/storybook/assets/{ScrollShadow.stories-CWKYDYLk.js → ScrollShadow.stories-1W8nsrPe.js} +1 -1
- package/dist/storybook/assets/{WithTooltip-SK46ZJ2J-DyavE1Bj.js → WithTooltip-SK46ZJ2J-BO-IGPcG.js} +5 -5
- package/dist/storybook/assets/formatter-OMEEQ6HG-wqmAyL2n.js +1 -0
- package/dist/storybook/assets/iframe-BEH5EoNR.css +1 -0
- package/dist/storybook/assets/{iframe-mIh0R_Av.js → iframe-BIFmrRK7.js} +152 -125
- package/dist/storybook/assets/{index-C8IjQgz6.js → index-B4dkQq9N.js} +1 -1
- package/dist/storybook/assets/{syntaxhighlighter-CAVLW7PM-36bUIV4n.js → syntaxhighlighter-CAVLW7PM-kyZrfiLk.js} +1 -1
- package/dist/storybook/iframe.html +2 -2
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/tailwind-plugin-avatar.d.ts +2 -0
- package/dist/tailwind-plugin-avatar.d.ts.map +1 -0
- package/dist/tailwind-plugin-avatar.js +130 -0
- package/dist/tailwind-plugin-avatar.js.map +1 -0
- package/dist/tailwind-plugin-avatar.ts +181 -0
- package/dist/tailwind-plugin-badge.js +24 -9
- package/dist/tailwind-plugin-badge.js.map +1 -1
- package/dist/tailwind-plugin-badge.ts +30 -11
- package/dist/tailwind-plugin-button.js +3 -6
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +3 -7
- package/dist/tailwind.config.js +2 -2
- package/dist/tailwind.config.js.map +1 -1
- package/dist/tailwind.config.ts +2 -2
- package/dist/utils/EventEmitterMixin.d.ts +19 -16
- package/dist/utils/EventEmitterMixin.d.ts.map +1 -1
- package/dist/utils/EventEmitterMixin.js +7 -7
- package/dist/utils/EventEmitterMixin.js.map +1 -1
- package/dist/utils/ReadyMixin.d.ts +31 -0
- package/dist/utils/ReadyMixin.d.ts.map +1 -0
- package/dist/utils/ReadyMixin.js +42 -0
- package/dist/utils/ReadyMixin.js.map +1 -0
- package/package.json +7 -6
- package/custom-elements.json +0 -214
- package/dist/components/widget/Widget.css +0 -118
- package/dist/components/widget/Widget.d.ts +0 -90
- package/dist/components/widget/Widget.d.ts.map +0 -1
- package/dist/components/widget/Widget.js +0 -196
- package/dist/components/widget/Widget.js.map +0 -1
- package/dist/components/widget/WidgetUtils.d.ts +0 -14
- package/dist/components/widget/WidgetUtils.d.ts.map +0 -1
- package/dist/components/widget/WidgetUtils.js +0 -42
- package/dist/components/widget/WidgetUtils.js.map +0 -1
- package/dist/storybook/assets/Badge.stories-cKvztBhm.js +0 -43
- package/dist/storybook/assets/Widget-CRTwFkFc.css +0 -1
- package/dist/storybook/assets/Widget.stories-CcjywoYR.js +0 -300
- package/dist/storybook/assets/formatter-OMEEQ6HG-DBJ97XaR.js +0 -1
- package/dist/storybook/assets/iframe-BdHEYpHD.css +0 -1
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
export interface WidgetProps {
|
|
3
|
-
collapsible?: boolean;
|
|
4
|
-
heading?: string;
|
|
5
|
-
internalname?: string;
|
|
6
|
-
widgetid?: string;
|
|
7
|
-
}
|
|
8
|
-
declare const Widget_base: (new (...args: any[]) => import("../../utils/EventEmitterMixin.js").EventEmitterMixinInterface) & typeof LitElement;
|
|
9
|
-
/**
|
|
10
|
-
* A collapsible container component with persistent state management.
|
|
11
|
-
*
|
|
12
|
-
* Provides collapsible behavior with localStorage persistence, keyboard
|
|
13
|
-
* accessibility, and automatic error expansion. Uses CSS Grid layout with
|
|
14
|
-
* named columns for flexible content positioning.
|
|
15
|
-
*
|
|
16
|
-
* @element btu-widget
|
|
17
|
-
*
|
|
18
|
-
* @fires {CustomEvent} btu-brightspot-element-connected - Inherited from EventEmitterMixin, fired when element connects to DOM
|
|
19
|
-
* @fires {CustomEvent} btu-brightspot-element-disconnected - Inherited from EventEmitterMixin, fired when element disconnects from DOM
|
|
20
|
-
* @fires {CustomEvent<{error: Error}>} btu-brightspot-element-error - Inherited from EventEmitterMixin, fired on connection error
|
|
21
|
-
* @fires {CustomEvent} btu-widget-ready - Fired after first render and initialization
|
|
22
|
-
* @fires {CustomEvent<{collapsed: boolean}>} btu-widget-toggle - Fired when collapse state changes
|
|
23
|
-
*
|
|
24
|
-
* @slot - Default slot for widget content
|
|
25
|
-
*
|
|
26
|
-
* @cssprop --space - Horizontal padding for grid columns (default: theme(spacing.6))
|
|
27
|
-
* @cssprop --Widget-padding - Internal padding variable (default: var(--gap-l))
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```html
|
|
31
|
-
* <btu-widget
|
|
32
|
-
* collapsible
|
|
33
|
-
* heading="My Widget"
|
|
34
|
-
* internalname="example"
|
|
35
|
-
* widgetid="widget-001">
|
|
36
|
-
* <p>Widget content goes here</p>
|
|
37
|
-
* </btu-widget>
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export default class Widget extends Widget_base {
|
|
41
|
-
private _collapsed;
|
|
42
|
-
/**
|
|
43
|
-
* Enable collapsible behavior with expand/collapse controls.
|
|
44
|
-
* When enabled, displays a chevron icon and allows users to toggle content visibility.
|
|
45
|
-
* @attr
|
|
46
|
-
*/
|
|
47
|
-
collapsible: boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Widget title displayed in the header.
|
|
50
|
-
* @attr
|
|
51
|
-
*/
|
|
52
|
-
heading?: string;
|
|
53
|
-
/**
|
|
54
|
-
* Internal identifier for localStorage key generation.
|
|
55
|
-
* Used in format: BSP.ContentEdit.widgetCollapsed.{widgetid}.{internalname}
|
|
56
|
-
* @attr
|
|
57
|
-
*/
|
|
58
|
-
internalname?: string;
|
|
59
|
-
/**
|
|
60
|
-
* Internal state tracking whether widget contains error messages.
|
|
61
|
-
* Widget automatically expands when errors are detected.
|
|
62
|
-
* @private
|
|
63
|
-
*/
|
|
64
|
-
invalid: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Widget type ID for localStorage key generation.
|
|
67
|
-
* Combined with internalname to create unique storage keys.
|
|
68
|
-
* @attr
|
|
69
|
-
*/
|
|
70
|
-
widgetid?: string;
|
|
71
|
-
/**
|
|
72
|
-
* Controls the collapsed state of the widget.
|
|
73
|
-
* When set, persists to localStorage and emits btu-widget-toggle event.
|
|
74
|
-
* @attr
|
|
75
|
-
*/
|
|
76
|
-
set collapsed(isCollapsed: boolean);
|
|
77
|
-
get collapsed(): boolean;
|
|
78
|
-
connectedCallback(): void;
|
|
79
|
-
createRenderRoot(): this;
|
|
80
|
-
firstUpdated(): void;
|
|
81
|
-
private _collapsibleTemplate;
|
|
82
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
83
|
-
}
|
|
84
|
-
declare global {
|
|
85
|
-
interface HTMLElementTagNameMap {
|
|
86
|
-
'btu-widget': Widget;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
export {};
|
|
90
|
-
//# sourceMappingURL=Widget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.d.ts","sourceRoot":"","sources":["../../../src/components/widget/Widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAA;AAStC,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAA6B;IAC/D,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;;OAIG;IAEH,WAAW,UAAQ;IAEnB;;;OAGG;IAEH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IAEH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;OAIG;IAEH,OAAO,UAAQ;IAEf;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,IACI,SAAS,CAAC,WAAW,EAAE,OAAO,EAcjC;IAED,IAAI,SAAS,IAhBc,OAAO,CAkBjC;IAED,iBAAiB,IAAI,IAAI;IAOzB,gBAAgB;IAIhB,YAAY,IAAI,IAAI;IAyBpB,OAAO,CAAC,oBAAoB;IAyC5B,MAAM;CAwBP;AAQD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,MAAM,CAAA;KACrB;CACF"}
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { LitElement, html } from 'lit';
|
|
8
|
-
import { property, state } from 'lit/decorators.js';
|
|
9
|
-
import { EventEmitterMixin } from '../../utils/EventEmitterMixin.js';
|
|
10
|
-
import { getComponentKey, ifUnmodified } from './WidgetUtils.js';
|
|
11
|
-
const ls = window.localStorage;
|
|
12
|
-
const collapseTooltip = window.BRIGHTSPOT?.ui?.tooltips?.collapse || 'Collapse';
|
|
13
|
-
const expandTooltip = window.BRIGHTSPOT?.ui?.tooltips?.expand || 'Expand';
|
|
14
|
-
/**
|
|
15
|
-
* A collapsible container component with persistent state management.
|
|
16
|
-
*
|
|
17
|
-
* Provides collapsible behavior with localStorage persistence, keyboard
|
|
18
|
-
* accessibility, and automatic error expansion. Uses CSS Grid layout with
|
|
19
|
-
* named columns for flexible content positioning.
|
|
20
|
-
*
|
|
21
|
-
* @element btu-widget
|
|
22
|
-
*
|
|
23
|
-
* @fires {CustomEvent} btu-brightspot-element-connected - Inherited from EventEmitterMixin, fired when element connects to DOM
|
|
24
|
-
* @fires {CustomEvent} btu-brightspot-element-disconnected - Inherited from EventEmitterMixin, fired when element disconnects from DOM
|
|
25
|
-
* @fires {CustomEvent<{error: Error}>} btu-brightspot-element-error - Inherited from EventEmitterMixin, fired on connection error
|
|
26
|
-
* @fires {CustomEvent} btu-widget-ready - Fired after first render and initialization
|
|
27
|
-
* @fires {CustomEvent<{collapsed: boolean}>} btu-widget-toggle - Fired when collapse state changes
|
|
28
|
-
*
|
|
29
|
-
* @slot - Default slot for widget content
|
|
30
|
-
*
|
|
31
|
-
* @cssprop --space - Horizontal padding for grid columns (default: theme(spacing.6))
|
|
32
|
-
* @cssprop --Widget-padding - Internal padding variable (default: var(--gap-l))
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```html
|
|
36
|
-
* <btu-widget
|
|
37
|
-
* collapsible
|
|
38
|
-
* heading="My Widget"
|
|
39
|
-
* internalname="example"
|
|
40
|
-
* widgetid="widget-001">
|
|
41
|
-
* <p>Widget content goes here</p>
|
|
42
|
-
* </btu-widget>
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
export default class Widget extends EventEmitterMixin(LitElement) {
|
|
46
|
-
constructor() {
|
|
47
|
-
super(...arguments);
|
|
48
|
-
this._collapsed = false;
|
|
49
|
-
/**
|
|
50
|
-
* Enable collapsible behavior with expand/collapse controls.
|
|
51
|
-
* When enabled, displays a chevron icon and allows users to toggle content visibility.
|
|
52
|
-
* @attr
|
|
53
|
-
*/
|
|
54
|
-
this.collapsible = false;
|
|
55
|
-
/**
|
|
56
|
-
* Internal state tracking whether widget contains error messages.
|
|
57
|
-
* Widget automatically expands when errors are detected.
|
|
58
|
-
* @private
|
|
59
|
-
*/
|
|
60
|
-
this.invalid = false;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Controls the collapsed state of the widget.
|
|
64
|
-
* When set, persists to localStorage and emits btu-widget-toggle event.
|
|
65
|
-
* @attr
|
|
66
|
-
*/
|
|
67
|
-
set collapsed(isCollapsed) {
|
|
68
|
-
this._collapsed = isCollapsed;
|
|
69
|
-
const key = getComponentKey(this, 'data-internal-name');
|
|
70
|
-
if (key) {
|
|
71
|
-
if (isCollapsed) {
|
|
72
|
-
ls.setItem(key, '1');
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
ls.removeItem(key);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
this.requestUpdate();
|
|
79
|
-
this.emit('btu-widget-toggle');
|
|
80
|
-
}
|
|
81
|
-
get collapsed() {
|
|
82
|
-
return this._collapsed;
|
|
83
|
-
}
|
|
84
|
-
connectedCallback() {
|
|
85
|
-
super.connectedCallback();
|
|
86
|
-
const key = getComponentKey(this, 'data-internal-name');
|
|
87
|
-
this.collapsed = key && ls.getItem(key) ? true : false;
|
|
88
|
-
}
|
|
89
|
-
createRenderRoot() {
|
|
90
|
-
return this;
|
|
91
|
-
}
|
|
92
|
-
firstUpdated() {
|
|
93
|
-
this.emit('btu-widget-ready');
|
|
94
|
-
this.invalid = this.querySelector('.Message.is-error') != null;
|
|
95
|
-
if (!this.collapsible || this.invalid) {
|
|
96
|
-
this.collapsed = false;
|
|
97
|
-
}
|
|
98
|
-
const widgetTitle = this.querySelector('.Widget-title');
|
|
99
|
-
// Ensures that the title is always the first child of the widget.
|
|
100
|
-
const firstChild = this.firstChild;
|
|
101
|
-
if (firstChild instanceof Element && !firstChild.classList.contains('Widget-title')) {
|
|
102
|
-
if (widgetTitle) {
|
|
103
|
-
this.insertBefore(widgetTitle, firstChild);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Hide all children added after render of the widget if it is collapsed
|
|
107
|
-
this.querySelectorAll(':scope > :not(.Widget-title, script, select)').forEach(el => {
|
|
108
|
-
el.toggleAttribute('hidden', this.collapsed && !this.invalid);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
_collapsibleTemplate() {
|
|
112
|
-
return html `<h2
|
|
113
|
-
class="Widget-title ${this.invalid
|
|
114
|
-
? 'text-error-600'
|
|
115
|
-
: ''} btu-heading-5 sticky top-0 z-10 cursor-pointer overflow-x-clip text-ellipsis whitespace-nowrap border-b border-b-gray-200 bg-white px-[--space] py-3.5 text-gray-900 [grid-column:fullbleed-start_/_fullbleed-end] hover:bg-gray-100 focus:ring-0"
|
|
116
|
-
@click="${() => (this.collapsed = !this.collapsed)}"
|
|
117
|
-
>
|
|
118
|
-
<div
|
|
119
|
-
class="Widget-expand ${this.invalid
|
|
120
|
-
? 'after:btu-icon after:btu-icon-circle-alert after:text-error-600'
|
|
121
|
-
: ''} relative inline-flex w-full items-center gap-2 focus:ring-0"
|
|
122
|
-
role="button"
|
|
123
|
-
tabindex="0"
|
|
124
|
-
aria-expanded=${!this.collapsed}
|
|
125
|
-
title=${this.collapsed ? expandTooltip : collapseTooltip}
|
|
126
|
-
@keydown=${ifUnmodified((e) => {
|
|
127
|
-
if (e instanceof KeyboardEvent) {
|
|
128
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
129
|
-
e.preventDefault();
|
|
130
|
-
this.collapsed = !this.collapsed;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
})}
|
|
134
|
-
>
|
|
135
|
-
${this.heading}
|
|
136
|
-
<ul
|
|
137
|
-
class="Widget-controls sticky top-0 z-[11] order-2 ms-auto flex items-center gap-2 border-b-0 border-b-gray-200 bg-inherit empty:hidden"
|
|
138
|
-
aria-hidden="true"
|
|
139
|
-
>
|
|
140
|
-
<li
|
|
141
|
-
class="Widget-collapse btu-button btu-button-text-hidden btu-button-fill-none btu-button-gray btu-button-sm before:btu-icon before:btu-icon-chevron-up ${this
|
|
142
|
-
.collapsed
|
|
143
|
-
? 'before:rotate-180'
|
|
144
|
-
: ''} before:transition-transform"
|
|
145
|
-
title="${this.collapsed ? expandTooltip : collapseTooltip}"
|
|
146
|
-
></li>
|
|
147
|
-
</ul>
|
|
148
|
-
</div>
|
|
149
|
-
</h2>`;
|
|
150
|
-
}
|
|
151
|
-
render() {
|
|
152
|
-
this.classList.add('widget', 'Widget', 'relative', 'grid', 'bg-white');
|
|
153
|
-
// Add the collapsible class if the widget can be collapsible.
|
|
154
|
-
this.classList.toggle('is-collapsible', this.collapsible);
|
|
155
|
-
this.classList.toggle('is-collapsed', this.collapsed);
|
|
156
|
-
if (this.collapsed)
|
|
157
|
-
this.classList.add('overflow-clip', 'border-b-0', 'pb-0');
|
|
158
|
-
// If there are error messages, expand the widget.
|
|
159
|
-
this.classList.toggle('is-error', this.invalid);
|
|
160
|
-
// Hide all children of the widget if it is collapsed.
|
|
161
|
-
this.querySelectorAll(':scope > :not(.Widget-title, script, select)').forEach(el => {
|
|
162
|
-
el.toggleAttribute('hidden', this.collapsed);
|
|
163
|
-
});
|
|
164
|
-
if (this.collapsible) {
|
|
165
|
-
this.classList.add('h-[min-content]');
|
|
166
|
-
return this._collapsibleTemplate();
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
return html `<h2 class="Widget-title ${this.invalid ? 'text-error-600' : ''}">${this.heading}</h2>`;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
__decorate([
|
|
174
|
-
property({ type: Boolean })
|
|
175
|
-
], Widget.prototype, "collapsible", void 0);
|
|
176
|
-
__decorate([
|
|
177
|
-
property({ type: String })
|
|
178
|
-
], Widget.prototype, "heading", void 0);
|
|
179
|
-
__decorate([
|
|
180
|
-
property({ type: String })
|
|
181
|
-
], Widget.prototype, "internalname", void 0);
|
|
182
|
-
__decorate([
|
|
183
|
-
state()
|
|
184
|
-
], Widget.prototype, "invalid", void 0);
|
|
185
|
-
__decorate([
|
|
186
|
-
property({ type: String })
|
|
187
|
-
], Widget.prototype, "widgetid", void 0);
|
|
188
|
-
__decorate([
|
|
189
|
-
property({ type: Boolean })
|
|
190
|
-
], Widget.prototype, "collapsed", null);
|
|
191
|
-
// Register custom element with guard to prevent double registration
|
|
192
|
-
// (common with yarn link, HMR, or webpack bundle duplication)
|
|
193
|
-
if (!customElements.get('btu-widget')) {
|
|
194
|
-
customElements.define('btu-widget', Widget);
|
|
195
|
-
}
|
|
196
|
-
//# sourceMappingURL=Widget.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.js","sourceRoot":"","sources":["../../../src/components/widget/Widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates a localStorage key for widget collapse state persistence.
|
|
3
|
-
* @param component - The component element (typically btu-widget)
|
|
4
|
-
* @param nameAttribute - The attribute name to read for component name
|
|
5
|
-
* @returns localStorage key in format: BSP.ContentEdit.widgetCollapsed.{typeId}.{componentName}
|
|
6
|
-
*/
|
|
7
|
-
export declare function getComponentKey(component: HTMLElement, nameAttribute: string): string | null;
|
|
8
|
-
/**
|
|
9
|
-
* Higher-order function that executes a callback only if keyboard event has no modifier keys.
|
|
10
|
-
* @param fn - Function to execute if event is unmodified
|
|
11
|
-
* @returns Wrapped function that checks for modifiers before executing
|
|
12
|
-
*/
|
|
13
|
-
export declare function ifUnmodified(fn: (...args: unknown[]) => unknown): (...args: unknown[]) => void;
|
|
14
|
-
//# sourceMappingURL=WidgetUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetUtils.d.ts","sourceRoot":"","sources":["../../../src/components/widget/WidgetUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB5F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,IAC7C,GAAG,MAAM,OAAO,EAAE,UASpC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates a localStorage key for widget collapse state persistence.
|
|
3
|
-
* @param component - The component element (typically btu-widget)
|
|
4
|
-
* @param nameAttribute - The attribute name to read for component name
|
|
5
|
-
* @returns localStorage key in format: BSP.ContentEdit.widgetCollapsed.{typeId}.{componentName}
|
|
6
|
-
*/
|
|
7
|
-
export function getComponentKey(component, nameAttribute) {
|
|
8
|
-
const edit = component.closest('.ContentEdit') || component.closest('btu-widget');
|
|
9
|
-
if (!edit)
|
|
10
|
-
return null;
|
|
11
|
-
let typeId;
|
|
12
|
-
let componentName;
|
|
13
|
-
if (edit.classList.contains('ContentEdit')) {
|
|
14
|
-
typeId = edit.getAttribute('data-type-id');
|
|
15
|
-
componentName = component.getAttribute(nameAttribute);
|
|
16
|
-
if (!typeId || !componentName)
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
else if (edit instanceof HTMLElement) {
|
|
20
|
-
typeId = edit.getAttribute('widgetid');
|
|
21
|
-
componentName = edit.getAttribute('internalname');
|
|
22
|
-
if (!typeId || !componentName)
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return typeId && componentName ? `BSP.ContentEdit.widgetCollapsed.${typeId}.${componentName}` : null;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Higher-order function that executes a callback only if keyboard event has no modifier keys.
|
|
29
|
-
* @param fn - Function to execute if event is unmodified
|
|
30
|
-
* @returns Wrapped function that checks for modifiers before executing
|
|
31
|
-
*/
|
|
32
|
-
export function ifUnmodified(fn) {
|
|
33
|
-
return function (...args) {
|
|
34
|
-
if (args[0] instanceof KeyboardEvent) {
|
|
35
|
-
const event = args[0];
|
|
36
|
-
if (!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
|
|
37
|
-
fn.apply(event.target, args);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=WidgetUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetUtils.js","sourceRoot":"","sources":["../../../src/components/widget/WidgetUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAsB,EAAE,aAAqB;IAC3E,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACjF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtB,IAAI,MAAM,CAAA;IACV,IAAI,aAAa,CAAA;IAEjB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QAC1C,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;QACrD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;IAC5C,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACvC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;QACtC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;IAC5C,CAAC;IAED,OAAO,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,mCAAmC,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACtG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAmC;IAC9D,OAAO,UAAU,GAAG,IAAe;QACjC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,aAAa,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAErB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import{x as i}from"./iframe-mIh0R_Av.js";import"./preload-helper-PPVm8Dsz.js";const p=({color:e="gray",affordance:a,size:u="sm",customForegroundColor:n,customBackgroundColor:c,label:g})=>{let l=!1,d=!1;a==="dot"?l=!0:a==="icon"&&(d=!0);const o=[];return n&&o.push(`--badge-color-foreground: ${n}`),c&&o.push(`--badge-color-background: ${c}`),i`
|
|
2
|
-
<span
|
|
3
|
-
class=${["btu-badge",`btu-badge-${u}`,`btu-badge-${e}`,l?"before:size-2 before:rounded-lg before:bg-[currentColor]":"",d?"before:btu-icon before:btu-icon-xs before:btu-icon-salad":""].join(" ")}
|
|
4
|
-
style=${o.length>0?o.join("; "):""}
|
|
5
|
-
>
|
|
6
|
-
${g}
|
|
7
|
-
</span>
|
|
8
|
-
`},m=["black","white","primary","teal","gray","purple","rose","error","warning","success"],f={title:"Components/Badge",component:"btu-badge",tags:["autodocs"],parameters:{docs:{subtitle:"btu-badge"},controls:{expanded:!0}},render:e=>p(e),argTypes:{color:{control:{type:"select"},options:m},affordance:{control:{type:"select"},options:["dot","icon"],description:"Display a design affordance next to the label"},size:{control:{type:"select"},options:["sm","md","lg"]},customForegroundColor:{control:{type:"color"},description:"Custom foreground (text) color - overrides the theme color"},customBackgroundColor:{control:{type:"color"},description:"Custom background color - overrides the theme color"}},args:{color:"purple",affordance:"dot",size:"sm",customForegroundColor:"",customBackgroundColor:"",label:"Badge"}},r={args:{}},s={args:{color:"primary",size:"lg",label:"Custom Colors Badge",customForegroundColor:"#a04b4b",customBackgroundColor:"#dce34d"},parameters:{docs:{description:{story:"Badge supports custom colors using the btu-badge-foreground and btu-badge-background utilities. Setting these values will override any theme colors."}}}},t={args:{color:"success",size:"lg",label:"Linked Badge"},decorators:[e=>i`<a href="#" class="hover:text-primary inline-flex items-center gap-2 hover:underline"
|
|
9
|
-
>Hover over me to see the ${e()} in action.</a
|
|
10
|
-
>`],parameters:{docs:{description:{story:"Badges inside anchor elements automatically handle underlines properly. The underline uses the badge background color instead of the default link color, ensuring proper visual hierarchy when badges are used as clickable elements."}}}};r.parameters={...r.parameters,docs:{...r.parameters?.docs,source:{originalSource:`{
|
|
11
|
-
args: {}
|
|
12
|
-
}`,...r.parameters?.docs?.source}}};s.parameters={...s.parameters,docs:{...s.parameters?.docs,source:{originalSource:`{
|
|
13
|
-
args: {
|
|
14
|
-
color: 'primary',
|
|
15
|
-
size: 'lg',
|
|
16
|
-
label: 'Custom Colors Badge',
|
|
17
|
-
customForegroundColor: '#a04b4b',
|
|
18
|
-
customBackgroundColor: '#dce34d'
|
|
19
|
-
},
|
|
20
|
-
parameters: {
|
|
21
|
-
docs: {
|
|
22
|
-
description: {
|
|
23
|
-
story: \`Badge supports custom colors using the btu-badge-foreground and btu-badge-background utilities. Setting these values will override any theme colors.\`
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}`,...s.parameters?.docs?.source}}};t.parameters={...t.parameters,docs:{...t.parameters?.docs,source:{originalSource:`{
|
|
28
|
-
args: {
|
|
29
|
-
color: 'success',
|
|
30
|
-
size: 'lg',
|
|
31
|
-
label: 'Linked Badge'
|
|
32
|
-
},
|
|
33
|
-
decorators: [story => html\`<a href="#" class="hover:text-primary inline-flex items-center gap-2 hover:underline"
|
|
34
|
-
>Hover over me to see the \${story()} in action.</a
|
|
35
|
-
>\`],
|
|
36
|
-
parameters: {
|
|
37
|
-
docs: {
|
|
38
|
-
description: {
|
|
39
|
-
story: \`Badges inside anchor elements automatically handle underlines properly. The underline uses the badge background color instead of the default link color, ensuring proper visual hierarchy when badges are used as clickable elements.\`
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}`,...t.parameters?.docs?.source}}};const y=["Default","CustomColors","InsideAnchor"];export{s as CustomColors,r as Default,t as InsideAnchor,y as __namedExportsOrder,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.Widget{--Widget-padding: var(--gap-l);--space: 1.5rem;grid-template-columns:[fullbleed-start] var(--space) [content-start] 1fr auto [content-end] var(--space) [fullbleed-end]}.Widget>*:not(.ContentEdit-preview){grid-column:content-start / content-end}.Widget-title .Label{display:inline-flex}.Widget-controls.is-locked{display:none!important}.Widget:not(.is-collapsible):has(.Widget-controls:not(:empty))>.Widget-title{padding-inline-end:.5rem;grid-column:fullbleed-start / span 2}.Widget:not(.is-collapsible) .Widget-controls{padding-inline-end:var(--space);grid-column:span 2 / fullbleed-end;grid-row:1}.Admin-main .Widget:not(.is-collapsible) .Widget-controls:has(>button:not(.FormFilter-icon)){margin-top:-3.35rem;background-color:var(--btu-theme-white)}.Widget-actionsToggle{--button-bg-gradient: none;--button-color: ;--button-text-color: ;--button-pressed: initial;--button-fill-none: initial;--button-padding-xs: .25rem .5rem;--button-padding-sm: .5rem .875rem;--button-padding-md: .625rem 1rem;--button-padding-lg: .625rem 1.125rem;--button-padding-xl: .75rem 1.25rem;--button-padding-2xl: 1rem 1.75rem;--button-font-size: .875rem;--button-line-height: 1.25rem;display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;background:var(--button-bg-gradient),var(--button-pressed-color, var(--button-disabled-color, var(--button-color)));border-radius:var(--button-border-radius, .5rem);color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)));padding:var(--button-padding-sm);font-size:var(--button-font-size);line-height:var(--button-line-height);font-weight:600;position:relative;height:var(--button-size-sm, auto);width:var(--button-size-sm, auto)}.Widget-actionsToggle[aria-pressed=true]{--button-pressed: }.Widget-actionsToggle:disabled{--button-bg-gradient: none;--button-disabled-color: var(--button-disabled-color-fill-none, var(--button-disabled-color-fill, oklch(var(--btu-theme-gray-100))));--button-disabled-text-color: var(--button-disabled-text-color-fill-none, var(--button-text-color, oklch(var(--btu-theme-gray-400))));pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Widget-actionsToggle[disabled]{--button-bg-gradient: none;--button-disabled-color: var(--button-disabled-color-fill-none, var(--button-disabled-color-fill, oklch(var(--btu-theme-gray-100))));--button-disabled-text-color: var(--button-disabled-text-color-fill-none, var(--button-text-color, oklch(var(--btu-theme-gray-400))));pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Widget-actionsToggle{text-decoration:none}.Widget-actionsToggle:focus{color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))}.Widget-actionsToggle:hover{color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))}.Widget-actionsToggle{--button-padding-xs: .25rem;--button-padding-sm: .5rem;--button-padding-md: .625rem;--button-padding-lg: .75rem;--button-padding-xl: .875rem;--button-padding-2xl: 1rem;--button-icon-font-size: 0px;--button-icon-line-height: 1;--button-font-size: var(--button-icon-font-size);--button-line-height: var(--button-icon-line-height);--button-size-xs: 1.75rem;--button-size-sm: 2.25rem;--button-size-md: 2.5rem;--button-size-lg: 2.75rem;--button-size-xl: 3rem;--button-size-2xl: 3.5rem;overflow:hidden;gap:0;--button-fill-none: ;background-color:var(--button-pressed-color, var(--button-fill-none-color));color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))}.Widget-actionsToggle:focus{color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))}.Widget-actionsToggle:hover{color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-fill-none-text-color)))}.Widget-actionsToggle{--button-bg-gradient: var(--button-fill-none, none);--button-color: oklch(var(--btu-theme-gray-100));--button-text-color: oklch(var(--btu-theme-gray-700));--button-fill-none-color: transparent;--button-fill-none-text-color: oklch(var(--btu-theme-gray-700));--button-outline-color: oklch(var(--btu-theme-gray-300));--button-disabled-color-fill: oklch(var(--btu-theme-gray-100));--button-disabled-color-fill-none: var(--button-fill-none) oklch(var(--btu-theme-white));--button-disabled-text-color-fill-none: var(--button-fill-none) oklch(var(--btu-theme-gray-400));--button-pressed-color: var(--button-pressed) var(--button-disabled-color, oklch(var(--btu-theme-primary-50)));--button-pressed-text-color: var(--button-pressed) var(--button-disabled-text-color, oklch(var(--btu-theme-primary-800)))}.Widget-actionsToggle:hover{--button-color: oklch(var(--btu-theme-gray-200));--button-fill-none-color: oklch(var(--btu-theme-gray-200));--button-fill-none-text-color: oklch(var(--btu-theme-gray-900))}.Widget-actionsToggle:focus{--button-color: oklch(var(--btu-theme-gray-100));--button-fill-none-color: transparent;--button-fill-none-text-color: oklch(var(--btu-theme-gray-700));--tw-ring-opacity: 1;--tw-ring-color: oklch(var(--btu-theme-primary-100));--tw-ring-offset-width: 1px;--tw-ring-offset-color: oklch(var(--btu-theme-primary-800))}.Widget-actionsToggle.is-focused{--button-color: oklch(var(--btu-theme-gray-100));--button-fill-none-color: transparent;--button-fill-none-text-color: oklch(var(--btu-theme-gray-700));--tw-ring-opacity: 1;--tw-ring-color: oklch(var(--btu-theme-primary-100));--tw-ring-offset-width: 1px;--tw-ring-offset-color: oklch(var(--btu-theme-primary-800))}.Widget-actionsToggle{font-size:var(--button-icon-font-size, .875rem);line-height:var(--button-icon-line-height, 1.25rem);padding:var(--button-padding-sm);width:var(--button-size-sm, auto);height:var(--button-size-sm, auto)}.Widget-actionsToggle:before{font-family:lucide;direction:ltr;display:inline-flex;font-feature-settings:"liga" 0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:var(--Icon-size);font-style:normal;font-weight:400;letter-spacing:normal;line-height:var(--Icon-size);text-transform:none;white-space:nowrap;word-wrap:normal;vertical-align:top;--tw-content: "";content:var(--tw-content);--Icon-size: 1.25rem}.Widget-actionsList{z-index:10000}.Widget-actions.is-open .Widget-actionsToggle{--button-pressed: }.Widget :is(.widget-urls.is-readOnly,.widget-urlsRepeatable.is-readOnly,.ContentEditSites-owner.is-readOnly,.ContentEditSites-access.is-readOnly){pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.75}.Widget .is-readOnly .UrlsWidget-itemLabel a,.widget .is-readOnly .RCIG-title:after,.widget .is-readOnly .ContentSummary-info,.widget .is-readOnly .ContentSelector-edit{pointer-events:auto;cursor:pointer}.Widget.is-collapsible .Widget-title:has(.Widget-expand:focus-visible){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-opacity: 1;--tw-ring-color: oklch(var(--btu-theme-primary-600) / var(--tw-ring-opacity, 1));--tw-ring-offset-width: 4px;--tw-ring-offset-color: oklch(var(--btu-theme-primary-100) / 1)}.Widget-heading{padding-top:.5rem;padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:oklch(var(--btu-theme-gray-900) / var(--tw-text-opacity, 1))}.Widget-restoreButton{--button-bg-gradient: none;--button-color: ;--button-text-color: ;--button-pressed: initial;--button-fill-none: initial;--button-padding-xs: .25rem .5rem;--button-padding-sm: .5rem .875rem;--button-padding-md: .625rem 1rem;--button-padding-lg: .625rem 1.125rem;--button-padding-xl: .75rem 1.25rem;--button-padding-2xl: 1rem 1.75rem;--button-font-size: .875rem;--button-line-height: 1.25rem;display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:.5rem;background:var(--button-bg-gradient),var(--button-pressed-color, var(--button-disabled-color, var(--button-color)));border-radius:var(--button-border-radius, .5rem);color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)));padding:var(--button-padding-sm);font-size:var(--button-font-size);line-height:var(--button-line-height);font-weight:600;position:relative;height:var(--button-size-sm, auto);width:var(--button-size-sm, auto)}.Widget-restoreButton[aria-pressed=true]{--button-pressed: }.Widget-restoreButton:disabled{--button-bg-gradient: none;--button-disabled-color: var(--button-disabled-color-fill-none, var(--button-disabled-color-fill, oklch(var(--btu-theme-gray-100))));--button-disabled-text-color: var(--button-disabled-text-color-fill-none, var(--button-text-color, oklch(var(--btu-theme-gray-400))));pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Widget-restoreButton[disabled]{--button-bg-gradient: none;--button-disabled-color: var(--button-disabled-color-fill-none, var(--button-disabled-color-fill, oklch(var(--btu-theme-gray-100))));--button-disabled-text-color: var(--button-disabled-text-color-fill-none, var(--button-text-color, oklch(var(--btu-theme-gray-400))));pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Widget-restoreButton{text-decoration:none}.Widget-restoreButton:focus{color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))}.Widget-restoreButton:hover{color:var(--button-pressed-text-color, var(--button-disabled-text-color, var(--button-text-color)))}.Widget-restoreButton{--button-padding-xs: .25rem;--button-padding-sm: .5rem;--button-padding-md: .625rem;--button-padding-lg: .75rem;--button-padding-xl: .875rem;--button-padding-2xl: 1rem;--button-icon-font-size: 0px;--button-icon-line-height: 1;--button-font-size: var(--button-icon-font-size);--button-line-height: var(--button-icon-line-height);--button-size-xs: 1.75rem;--button-size-sm: 2.25rem;--button-size-md: 2.5rem;--button-size-lg: 2.75rem;--button-size-xl: 3rem;--button-size-2xl: 3.5rem;overflow:hidden;gap:0;--button-bg-gradient: var(--button-fill-none, none);--button-color: oklch(var(--btu-theme-gray-100));--button-text-color: oklch(var(--btu-theme-gray-700));--button-fill-none-color: transparent;--button-fill-none-text-color: oklch(var(--btu-theme-gray-700));--button-outline-color: oklch(var(--btu-theme-gray-300));--button-disabled-color-fill: oklch(var(--btu-theme-gray-100));--button-disabled-color-fill-none: var(--button-fill-none) oklch(var(--btu-theme-white));--button-disabled-text-color-fill-none: var(--button-fill-none) oklch(var(--btu-theme-gray-400));--button-pressed-color: var(--button-pressed) var(--button-disabled-color, oklch(var(--btu-theme-primary-50)));--button-pressed-text-color: var(--button-pressed) var(--button-disabled-text-color, oklch(var(--btu-theme-primary-800)))}.Widget-restoreButton:hover{--button-color: oklch(var(--btu-theme-gray-200));--button-fill-none-color: oklch(var(--btu-theme-gray-200));--button-fill-none-text-color: oklch(var(--btu-theme-gray-900))}.Widget-restoreButton:focus{--button-color: oklch(var(--btu-theme-gray-100));--button-fill-none-color: transparent;--button-fill-none-text-color: oklch(var(--btu-theme-gray-700));--tw-ring-opacity: 1;--tw-ring-color: oklch(var(--btu-theme-primary-100));--tw-ring-offset-width: 1px;--tw-ring-offset-color: oklch(var(--btu-theme-primary-800))}.Widget-restoreButton.is-focused{--button-color: oklch(var(--btu-theme-gray-100));--button-fill-none-color: transparent;--button-fill-none-text-color: oklch(var(--btu-theme-gray-700));--tw-ring-opacity: 1;--tw-ring-color: oklch(var(--btu-theme-primary-100));--tw-ring-offset-width: 1px;--tw-ring-offset-color: oklch(var(--btu-theme-primary-800))}.Widget-restoreButton:before{font-family:lucide;direction:ltr;display:inline-flex;font-feature-settings:"liga" 0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:var(--Icon-size);font-style:normal;font-weight:400;letter-spacing:normal;line-height:var(--Icon-size);text-transform:none;white-space:nowrap;word-wrap:normal;vertical-align:top;--tw-content: "";content:var(--tw-content);--Icon-size: 1.25rem}.Widget-filters,.Widget-filter{display:flex;align-items:center;justify-content:space-between}.Widget-filters{position:relative;padding-top:.75rem}.Widget-filters:before{position:absolute;inset:-.75rem -1rem;border-bottom-width:1px;--tw-border-opacity: 1;border-bottom-color:oklch(var(--btu-theme-gray-200) / var(--tw-border-opacity, 1));content:var(--tw-content);--tw-bg-opacity: 1;background-color:oklch(var(--btu-theme-gray-50) / var(--tw-bg-opacity, 1))}.Widget-filter{z-index:0;flex-direction:row-reverse}.Widget-filterLabel{font-size:.875rem;line-height:1.25rem;font-weight:500}.Widget.is-collapsed>div,.Widget.is-collapsed>table{display:none}
|