@logosphere-ui/core 0.0.0-alpha.11
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 +759 -0
- package/dist/atoms/Badge/badge.d.ts +21 -0
- package/dist/atoms/Badge/index.d.ts +2 -0
- package/dist/atoms/Button/button.d.ts +11 -0
- package/dist/atoms/Button/index.d.ts +1 -0
- package/dist/atoms/Checkbox/checkbox.d.ts +20 -0
- package/dist/atoms/Checkbox/index.d.ts +1 -0
- package/dist/atoms/FormField/formfield.d.ts +30 -0
- package/dist/atoms/FormField/index.d.ts +2 -0
- package/dist/atoms/Switch/index.d.ts +1 -0
- package/dist/atoms/Switch/switch.d.ts +10 -0
- package/dist/badge-CHWTCGQG.js +72 -0
- package/dist/badge-DVvdodRb.cjs +13 -0
- package/dist/badge.cjs +1 -0
- package/dist/badge.js +4 -0
- package/dist/breadcrumb-BB61Xt0s.js +41 -0
- package/dist/breadcrumb-Cop-B1J7.cjs +12 -0
- package/dist/breadcrumb.cjs +1 -0
- package/dist/breadcrumb.js +4 -0
- package/dist/button-BqOMevro.js +58 -0
- package/dist/button-CDRccsk9.cjs +10 -0
- package/dist/button.cjs +1 -0
- package/dist/button.js +4 -0
- package/dist/card-CNoTUaJC.js +98 -0
- package/dist/card-KiNHfEi2.cjs +43 -0
- package/dist/card.cjs +1 -0
- package/dist/card.js +4 -0
- package/dist/chatbot-BNGCxSf9.js +485 -0
- package/dist/chatbot-P32-Xv7e.cjs +160 -0
- package/dist/chatbot.cjs +1 -0
- package/dist/chatbot.js +4 -0
- package/dist/checkbox-CdDTRdKV.cjs +37 -0
- package/dist/checkbox-g6kl2jGR.js +119 -0
- package/dist/checkbox.cjs +1 -0
- package/dist/checkbox.js +4 -0
- package/dist/combobox-CeK7yW2F.cjs +99 -0
- package/dist/combobox-DTUSFw9V.js +270 -0
- package/dist/combobox.cjs +1 -0
- package/dist/combobox.js +4 -0
- package/dist/datepicker-BQOVo1Pr.cjs +115 -0
- package/dist/datepicker-ChdQsc_l.js +751 -0
- package/dist/datepicker.cjs +1 -0
- package/dist/datepicker.js +4 -0
- package/dist/download-manager-BSIMTGaK.cjs +97 -0
- package/dist/download-manager-a541AYhr.js +381 -0
- package/dist/download-manager.cjs +1 -0
- package/dist/download-manager.js +4 -0
- package/dist/formfield-BOgRugzm.js +118 -0
- package/dist/formfield-D_7NFFoe.cjs +27 -0
- package/dist/formfield.cjs +1 -0
- package/dist/formfield.js +4 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +34 -0
- package/dist/index.umd.js +840 -0
- package/dist/input-CoY1ZcPF.cjs +46 -0
- package/dist/input-CxBP0i-3.js +194 -0
- package/dist/input.cjs +1 -0
- package/dist/input.js +4 -0
- package/dist/modal-CnwRIdd8.js +110 -0
- package/dist/modal-DQ8VFL-P.cjs +39 -0
- package/dist/modal.cjs +1 -0
- package/dist/modal.js +4 -0
- package/dist/molecules/Breadcrumb/breadcrumb.d.ts +10 -0
- package/dist/molecules/Breadcrumb/index.d.ts +1 -0
- package/dist/molecules/Card/card.d.ts +16 -0
- package/dist/molecules/Card/index.d.ts +1 -0
- package/dist/molecules/Input/index.d.ts +2 -0
- package/dist/molecules/Input/input.d.ts +50 -0
- package/dist/molecules/Popover/index.d.ts +1 -0
- package/dist/molecules/Popover/popover.d.ts +33 -0
- package/dist/molecules/Textarea/index.d.ts +1 -0
- package/dist/molecules/Textarea/text-area.d.ts +49 -0
- package/dist/organisms/Chatbot/chatbot.d.ts +79 -0
- package/dist/organisms/Chatbot/index.d.ts +1 -0
- package/dist/organisms/Combobox/combobox.d.ts +49 -0
- package/dist/organisms/Combobox/index.d.ts +1 -0
- package/dist/organisms/DatePicker/datepicker.d.ts +79 -0
- package/dist/organisms/DatePicker/index.d.ts +1 -0
- package/dist/organisms/DownloadManager/download-manager.d.ts +52 -0
- package/dist/organisms/DownloadManager/index.d.ts +1 -0
- package/dist/organisms/Modal/index.d.ts +1 -0
- package/dist/organisms/Modal/modal.d.ts +21 -0
- package/dist/organisms/Tab/index.d.ts +1 -0
- package/dist/organisms/Tab/tab.d.ts +33 -0
- package/dist/popover-C2p5Pmts.cjs +30 -0
- package/dist/popover-CaVOXo_k.js +140 -0
- package/dist/popover.cjs +1 -0
- package/dist/popover.js +4 -0
- package/dist/shared/icons/icon-map.d.ts +1 -0
- package/dist/shared/icons/ui-icon.d.ts +15 -0
- package/dist/styles/main.css +247 -0
- package/dist/switch-CG4SSjTg.js +64 -0
- package/dist/switch-Rnnn10bn.cjs +17 -0
- package/dist/switch.cjs +1 -0
- package/dist/switch.js +4 -0
- package/dist/tab-BYU_XEhp.js +176 -0
- package/dist/tab-DcjAlXzU.cjs +40 -0
- package/dist/tab.cjs +1 -0
- package/dist/tab.js +4 -0
- package/dist/text-area-Dw4CUBcz.js +206 -0
- package/dist/text-area-eT-oCnqZ.cjs +44 -0
- package/dist/textarea.cjs +1 -0
- package/dist/textarea.js +4 -0
- package/dist/ui-icon-CVEyvL5D.cjs +22 -0
- package/dist/ui-icon-ltkJROhR.js +51 -0
- package/dist/vite.svg +1 -0
- package/package.json +184 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { LitElement, type PropertyValues } from "lit";
|
|
2
|
+
import "../../atoms/Button/button";
|
|
3
|
+
import "../../molecules/Input/input";
|
|
4
|
+
import "../../shared/icons/ui-icon";
|
|
5
|
+
type Product = {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class LedsUiChatbot extends LitElement {
|
|
10
|
+
static styles: import("lit").CSSResult[];
|
|
11
|
+
private static readonly ICONS;
|
|
12
|
+
returnUri: string;
|
|
13
|
+
questionPrompt: string;
|
|
14
|
+
minimizedIconOnly: boolean;
|
|
15
|
+
draggable: boolean;
|
|
16
|
+
resizable: boolean;
|
|
17
|
+
products: Product[];
|
|
18
|
+
openInitially: boolean;
|
|
19
|
+
showFeedbackButtons: boolean;
|
|
20
|
+
private open;
|
|
21
|
+
private fullscreen;
|
|
22
|
+
private messages;
|
|
23
|
+
private conversationId?;
|
|
24
|
+
private assertionToken?;
|
|
25
|
+
private isLoading;
|
|
26
|
+
private inputText;
|
|
27
|
+
private selectedProductId;
|
|
28
|
+
private windowWidth;
|
|
29
|
+
private windowHeight;
|
|
30
|
+
private position;
|
|
31
|
+
private isDragging;
|
|
32
|
+
private screenWidth;
|
|
33
|
+
private dragStartPos;
|
|
34
|
+
private initialPosition;
|
|
35
|
+
private isResizing;
|
|
36
|
+
private resizeDirection;
|
|
37
|
+
private resizeStartWidth;
|
|
38
|
+
private resizeStartHeight;
|
|
39
|
+
private chatContainer;
|
|
40
|
+
private productEl;
|
|
41
|
+
private onWindowResize;
|
|
42
|
+
connectedCallback(): void;
|
|
43
|
+
disconnectedCallback(): void;
|
|
44
|
+
firstUpdated(): Promise<void>;
|
|
45
|
+
updated(changed: PropertyValues): void;
|
|
46
|
+
private handleProductUpdate;
|
|
47
|
+
private updateComboboxItems;
|
|
48
|
+
private onProductChange;
|
|
49
|
+
private onToggle;
|
|
50
|
+
private onClose;
|
|
51
|
+
private onToggleFullscreen;
|
|
52
|
+
private onMouseDown;
|
|
53
|
+
private onMouseMove;
|
|
54
|
+
private onMouseUp;
|
|
55
|
+
private startResize;
|
|
56
|
+
private ensureToken;
|
|
57
|
+
private postChat;
|
|
58
|
+
private initConversation;
|
|
59
|
+
private sendMessage;
|
|
60
|
+
private addMessage;
|
|
61
|
+
private handleKeyDown;
|
|
62
|
+
private onInput;
|
|
63
|
+
private scrollToBottom;
|
|
64
|
+
private onCopyMessage;
|
|
65
|
+
private formatContent;
|
|
66
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
67
|
+
private renderOverlay;
|
|
68
|
+
private renderLauncher;
|
|
69
|
+
private renderWindow;
|
|
70
|
+
private renderResizeHandles;
|
|
71
|
+
private renderHeader;
|
|
72
|
+
private renderProductSelector;
|
|
73
|
+
private renderChatArea;
|
|
74
|
+
private renderMessage;
|
|
75
|
+
private renderFeedbackButtons;
|
|
76
|
+
private renderTypingIndicator;
|
|
77
|
+
private renderInputArea;
|
|
78
|
+
}
|
|
79
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LedsUiChatbot } from './chatbot';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import "../../atoms/Checkbox";
|
|
3
|
+
import "../../shared/icons/ui-icon";
|
|
4
|
+
type ComboboxItem = Record<string, unknown>;
|
|
5
|
+
export declare class Combobox extends LitElement {
|
|
6
|
+
static styles: import("lit").CSSResult[];
|
|
7
|
+
readonly inputId: string;
|
|
8
|
+
label: string;
|
|
9
|
+
placeholder: string;
|
|
10
|
+
required: boolean;
|
|
11
|
+
readOnly: boolean;
|
|
12
|
+
multiple: boolean;
|
|
13
|
+
filterable: boolean;
|
|
14
|
+
optionLabel: string;
|
|
15
|
+
optionValue: string;
|
|
16
|
+
emptyMessage: string;
|
|
17
|
+
items: ComboboxItem[];
|
|
18
|
+
size: "default" | "large";
|
|
19
|
+
private selected;
|
|
20
|
+
private inputValue;
|
|
21
|
+
private isOpen;
|
|
22
|
+
private focusedIndex;
|
|
23
|
+
private _filteredItems;
|
|
24
|
+
willUpdate(changed: Map<string, unknown>): void;
|
|
25
|
+
updated(changed: Map<string, unknown>): void;
|
|
26
|
+
private _handleOutsideClick;
|
|
27
|
+
connectedCallback(): void;
|
|
28
|
+
disconnectedCallback(): void;
|
|
29
|
+
private _closeDropdown;
|
|
30
|
+
private get _filterDisplayValue();
|
|
31
|
+
private _focusFilterInput;
|
|
32
|
+
private _scrollFocusedIntoView;
|
|
33
|
+
private _handleKeydown;
|
|
34
|
+
selectedItems(): ComboboxItem[];
|
|
35
|
+
isSelected(item: ComboboxItem): boolean;
|
|
36
|
+
private _selectItem;
|
|
37
|
+
private _removeTag;
|
|
38
|
+
private _clearSelection;
|
|
39
|
+
setSelected(value: ComboboxItem[]): void;
|
|
40
|
+
private _onFilterFocus;
|
|
41
|
+
private _onFilterInput;
|
|
42
|
+
private _stopPropagation;
|
|
43
|
+
private _onTriggerClick;
|
|
44
|
+
private _renderTagList;
|
|
45
|
+
private _renderTriggerContent;
|
|
46
|
+
private _renderDropdown;
|
|
47
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./combobox";
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import "dayjs/locale/tr";
|
|
3
|
+
import "../../shared/icons/ui-icon";
|
|
4
|
+
export declare class LedsDatePicker extends LitElement {
|
|
5
|
+
static styles: import("lit").CSSResult[];
|
|
6
|
+
value: string | null;
|
|
7
|
+
min: string | null;
|
|
8
|
+
max: string | null;
|
|
9
|
+
required: boolean;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
expandFactor: number;
|
|
12
|
+
placeholder: string;
|
|
13
|
+
/** Range selection mode — select a start and end date */
|
|
14
|
+
rangeMode: boolean;
|
|
15
|
+
disabledDays: number[];
|
|
16
|
+
/** Pre-selected range start date (YYYY-MM-DD). Only used when rangeMode=true. */
|
|
17
|
+
rangeStart: string | null;
|
|
18
|
+
/** Pre-selected range end date (YYYY-MM-DD). Only used when rangeMode=true. */
|
|
19
|
+
rangeEnd: string | null;
|
|
20
|
+
/** Callback fired when a single date is selected or cleared. Receives ISO string or null. */
|
|
21
|
+
onChange?: (value: string | null) => void;
|
|
22
|
+
/** Callback fired when a complete range is selected. */
|
|
23
|
+
onRangeChange?: (range: {
|
|
24
|
+
start: string;
|
|
25
|
+
end: string;
|
|
26
|
+
}) => void;
|
|
27
|
+
private _open;
|
|
28
|
+
private _cursor;
|
|
29
|
+
private _popupPos;
|
|
30
|
+
private _rangeStart;
|
|
31
|
+
private _rangeEnd;
|
|
32
|
+
private _hoverDate;
|
|
33
|
+
private _viewMode;
|
|
34
|
+
private _hasError;
|
|
35
|
+
private _errorMsg;
|
|
36
|
+
private _errorTimer;
|
|
37
|
+
readonly inputId: string;
|
|
38
|
+
protected willUpdate(changed: Map<string, unknown>): void;
|
|
39
|
+
private _outsideClick;
|
|
40
|
+
private _onScrollOrResize;
|
|
41
|
+
connectedCallback(): void;
|
|
42
|
+
disconnectedCallback(): void;
|
|
43
|
+
private _safeDay;
|
|
44
|
+
private _withinBounds;
|
|
45
|
+
private _displayValue;
|
|
46
|
+
private _getYears;
|
|
47
|
+
private _getHeaderLabel;
|
|
48
|
+
private _daysInGrid;
|
|
49
|
+
private _isInRange;
|
|
50
|
+
private _getHoverPreview;
|
|
51
|
+
private _getDayClasses;
|
|
52
|
+
private _emitChange;
|
|
53
|
+
private _emitRangeChange;
|
|
54
|
+
private _showInputError;
|
|
55
|
+
private _clearInputError;
|
|
56
|
+
private _toggleOpen;
|
|
57
|
+
private _onInput;
|
|
58
|
+
private _onKeydown;
|
|
59
|
+
private _parseAndSetDate;
|
|
60
|
+
private _select;
|
|
61
|
+
private _clear;
|
|
62
|
+
private _today;
|
|
63
|
+
private _navigatePrevious;
|
|
64
|
+
private _navigateNext;
|
|
65
|
+
private _handleHeaderClick;
|
|
66
|
+
private _selectMonth;
|
|
67
|
+
private _selectYear;
|
|
68
|
+
private _keydownGrid;
|
|
69
|
+
private _recalcPopupPos;
|
|
70
|
+
private _renderCalendar;
|
|
71
|
+
private _renderMonthGrid;
|
|
72
|
+
private _renderYearGrid;
|
|
73
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
74
|
+
}
|
|
75
|
+
declare global {
|
|
76
|
+
interface HTMLElementTagNameMap {
|
|
77
|
+
"logosphere-datepicker": LedsDatePicker;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './datepicker';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
export interface DownloadItem {
|
|
3
|
+
id: string;
|
|
4
|
+
url: string;
|
|
5
|
+
filename: string;
|
|
6
|
+
size: number;
|
|
7
|
+
downloaded: number;
|
|
8
|
+
status: "pending" | "downloading" | "paused" | "completed" | "error";
|
|
9
|
+
chunks: ChunkInfo[];
|
|
10
|
+
error?: string;
|
|
11
|
+
startTime?: number;
|
|
12
|
+
endTime?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ChunkInfo {
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
downloaded: number;
|
|
18
|
+
status: "pending" | "downloading" | "completed" | "error";
|
|
19
|
+
}
|
|
20
|
+
export declare class DownloadManager extends LitElement {
|
|
21
|
+
static styles: import("lit").CSSResult[];
|
|
22
|
+
chunkSize: number;
|
|
23
|
+
maxConcurrentDownloads: number;
|
|
24
|
+
maxConcurrentChunks: number;
|
|
25
|
+
downloads: DownloadItem[];
|
|
26
|
+
private isAddingFiles;
|
|
27
|
+
private activeDownloads;
|
|
28
|
+
private storageKey;
|
|
29
|
+
connectedCallback(): void;
|
|
30
|
+
disconnectedCallback(): void;
|
|
31
|
+
private setupVisibilityChangeHandler;
|
|
32
|
+
private loadState;
|
|
33
|
+
saveState(): void;
|
|
34
|
+
private getFileSize;
|
|
35
|
+
createChunks(totalSize: number): ChunkInfo[];
|
|
36
|
+
private downloadChunk;
|
|
37
|
+
private downloadFile;
|
|
38
|
+
pauseDownload(downloadId: string): void;
|
|
39
|
+
resumeDownload(downloadId: string): void;
|
|
40
|
+
removeDownload(downloadId: string): void;
|
|
41
|
+
clearCompleted: () => void;
|
|
42
|
+
formatBytes(bytes: number): string;
|
|
43
|
+
formatDuration(ms: number): string;
|
|
44
|
+
getProgressPercentage(download: DownloadItem): number;
|
|
45
|
+
private getDownloadSpeed;
|
|
46
|
+
private getETA;
|
|
47
|
+
private addDownload;
|
|
48
|
+
handleAddDownload: (event: Event) => void;
|
|
49
|
+
private getStatusClass;
|
|
50
|
+
private getProgressBarClass;
|
|
51
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
52
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './download-manager';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./modal";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
export declare class Modal extends LitElement {
|
|
3
|
+
static styles: import("lit").CSSResult[];
|
|
4
|
+
open: boolean;
|
|
5
|
+
title: string;
|
|
6
|
+
closeOnEsc: boolean;
|
|
7
|
+
closeOnBackdrop: boolean;
|
|
8
|
+
showBack: boolean;
|
|
9
|
+
showClose: boolean;
|
|
10
|
+
hasFooterContent: boolean;
|
|
11
|
+
connectedCallback(): void;
|
|
12
|
+
disconnectedCallback(): void;
|
|
13
|
+
openModal(): void;
|
|
14
|
+
closeModal(): void;
|
|
15
|
+
private setOpen;
|
|
16
|
+
private onKeyDown;
|
|
17
|
+
private onBackdropClick;
|
|
18
|
+
private checkFooterContent;
|
|
19
|
+
updated(changedProperties: Map<string | number | symbol, unknown>): void;
|
|
20
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./tab";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import type { PropertyValues } from "lit";
|
|
3
|
+
export interface TabItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
icon?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
content?: string | HTMLElement;
|
|
10
|
+
}
|
|
11
|
+
export declare class LogosphereTab extends LitElement {
|
|
12
|
+
static styles: import("lit").CSSResult[];
|
|
13
|
+
tabs: TabItem[];
|
|
14
|
+
activeTab: string;
|
|
15
|
+
lazy: boolean;
|
|
16
|
+
variant: "default" | "card";
|
|
17
|
+
private _focusedIndex;
|
|
18
|
+
private _renderedTabs;
|
|
19
|
+
private tablist?;
|
|
20
|
+
connectedCallback(): void;
|
|
21
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
22
|
+
private handleTabClick;
|
|
23
|
+
private handleKeyDown;
|
|
24
|
+
private scrollTabIntoView;
|
|
25
|
+
private renderTabButton;
|
|
26
|
+
private renderTabPanel;
|
|
27
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
28
|
+
}
|
|
29
|
+
declare global {
|
|
30
|
+
interface HTMLElementTagNameMap {
|
|
31
|
+
"logosphere-tab": LogosphereTab;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";const s=require("lit"),o=require("lit/decorators.js"),d=require("@popperjs/core"),c='.popover__wrapper{position:relative;display:inline-block;font-family:var(--font-family-base)}.popover__trigger{display:inline-flex}.popover__panel{position:relative;overflow:visible;z-index:var(--z-index-popover);min-width:240px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-body-bg);box-shadow:var(--shadow-md)}.popover__content{position:relative;z-index:1;background-color:var(--color-body-bg);border-radius:var(--radius-md);overflow:hidden}.popover__content:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background-color:var(--color-body-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:1;pointer-events:none}.popover__content>*{position:relative;z-index:2}.popover__title{padding:10px var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-body-text)}.popover__body{padding:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-secondary)}.popover__body--with-border{border-top:1px solid var(--color-border)}.popper-arrow{position:absolute;width:12px;height:12px;pointer-events:none;z-index:0}.popper-arrow:before{content:"";position:absolute;inset:0;background:var(--color-border);transform:rotate(45deg)}.popper-arrow:after{content:"";position:absolute;inset:1px;background:var(--color-body-bg);transform:rotate(45deg)}[data-popper]{position:relative;overflow:visible}[data-popper-placement^=bottom]>.popper-arrow{top:-6px;left:50%;transform:translate(-50%,-50%)}[data-popper-placement^=top]>.popper-arrow{bottom:-6px;left:50%;transform:translate(-50%,50%)}[data-popper-placement^=left]>.popper-arrow{right:-6px;top:50%;transform:translate(50%,-50%)}[data-popper-placement^=right]>.popper-arrow{left:-6px;top:50%;transform:translate(-50%,-50%)}';var v=Object.defineProperty,h=Object.getOwnPropertyDescriptor,t=(n,e,r,i)=>{for(var p=i>1?void 0:i?h(e,r):e,a=n.length-1,l;a>=0;a--)(l=n[a])&&(p=(i?l(e,r,p):l(p))||p);return i&&p&&v(e,r,p),p};exports.Popover=class extends s.LitElement{constructor(){super(...arguments),this.title="",this.trigger="click",this.placement="bottom",this.offset=8,this.open=!1,this.closeOnOutsideClick=!0,this.handleDocumentClick=e=>{!this.open||!this.closeOnOutsideClick||e.composedPath().includes(this)||this.setOpen(!1)},this.toggle=e=>{(this.trigger==="click"||this.trigger==="both")&&(e?.stopPropagation(),this.setOpen(!this.open))},this.handleMouseEnter=()=>{(this.trigger==="hover"||this.trigger==="both")&&this.setOpen(!0)},this.handleMouseLeave=()=>{(this.trigger==="hover"||this.trigger==="both")&&this.setOpen(!1)}}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.handleDocumentClick,{capture:!0})}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.handleDocumentClick,{capture:!0}),this.destroyPopper()}updated(e){super.updated(e);const r=e.has("placement"),i=e.has("open")&&this.open;if(e.has("open")&&!this.open){this.destroyPopper();return}(i||r)&&this.open&&this.updatePopper()}setOpen(e){this.open!==e&&(this.open=e,this.dispatchEvent(new CustomEvent(e?"popover-open":"popover-close",{bubbles:!0,composed:!0})))}updatePopper(){if(!this.isConnected||!this.open)return;const e=this.triggerElement,r=this.popperElement;if(!(!e||!r)){if(this.popperInstance){this.popperInstance.setOptions({placement:this.placement,modifiers:this.getPopperModifiers(),strategy:"fixed"}),this.popperInstance.update();return}this.popperInstance=d.createPopper(e,r,{placement:this.placement,strategy:"fixed",modifiers:this.getPopperModifiers()})}}getPopperModifiers(){return[{name:"offset",options:{offset:[0,this.offset]}},{name:"arrow",options:{element:this.popperArrowElement,padding:8}},{name:"preventOverflow",options:{padding:8}},{name:"flip",options:{padding:8}}]}destroyPopper(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=void 0)}render(){const e=!!this.title;return s.html`
|
|
2
|
+
<div
|
|
3
|
+
class="popover__wrapper"
|
|
4
|
+
@mouseenter=${this.handleMouseEnter}
|
|
5
|
+
@mouseleave=${this.handleMouseLeave}
|
|
6
|
+
>
|
|
7
|
+
<div class="popover__trigger" part="trigger" @click=${this.toggle}>
|
|
8
|
+
<slot name="trigger"></slot>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
${this.open?s.html`
|
|
12
|
+
<div
|
|
13
|
+
data-popper
|
|
14
|
+
class="popover__panel"
|
|
15
|
+
role="dialog"
|
|
16
|
+
aria-hidden=${this.open?"false":"true"}
|
|
17
|
+
>
|
|
18
|
+
<div data-popper-arrow class="popper-arrow"></div>
|
|
19
|
+
<div class="popover__content">
|
|
20
|
+
${this.title?s.html`
|
|
21
|
+
<div class="popover__title">${this.title}</div>
|
|
22
|
+
`:null}
|
|
23
|
+
<div class="popover__body ${e?"popover__body--with-border":""}">
|
|
24
|
+
<slot></slot>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
`:null}
|
|
29
|
+
</div>
|
|
30
|
+
`}};exports.Popover.styles=[s.css`${s.unsafeCSS(c)}`];t([o.property({type:String})],exports.Popover.prototype,"title",2);t([o.property({type:String})],exports.Popover.prototype,"trigger",2);t([o.property({type:String})],exports.Popover.prototype,"placement",2);t([o.property({type:Number})],exports.Popover.prototype,"offset",2);t([o.property({type:Boolean,reflect:!0})],exports.Popover.prototype,"open",2);t([o.property({type:Boolean})],exports.Popover.prototype,"closeOnOutsideClick",2);t([o.query('[part="trigger"]')],exports.Popover.prototype,"triggerElement",2);t([o.query("[data-popper]")],exports.Popover.prototype,"popperElement",2);t([o.query("[data-popper-arrow]")],exports.Popover.prototype,"popperArrowElement",2);exports.Popover=t([o.customElement("logosphere-popover")],exports.Popover);
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { unsafeCSS as h, css as v, LitElement as f, html as d } from "lit";
|
|
2
|
+
import { property as i, query as c, customElement as g } from "lit/decorators.js";
|
|
3
|
+
import { createPopper as m } from "@popperjs/core";
|
|
4
|
+
const u = '.popover__wrapper{position:relative;display:inline-block;font-family:var(--font-family-base)}.popover__trigger{display:inline-flex}.popover__panel{position:relative;overflow:visible;z-index:var(--z-index-popover);min-width:240px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-body-bg);box-shadow:var(--shadow-md)}.popover__content{position:relative;z-index:1;background-color:var(--color-body-bg);border-radius:var(--radius-md);overflow:hidden}.popover__content:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background-color:var(--color-body-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:1;pointer-events:none}.popover__content>*{position:relative;z-index:2}.popover__title{padding:10px var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-body-text)}.popover__body{padding:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-secondary)}.popover__body--with-border{border-top:1px solid var(--color-border)}.popper-arrow{position:absolute;width:12px;height:12px;pointer-events:none;z-index:0}.popper-arrow:before{content:"";position:absolute;inset:0;background:var(--color-border);transform:rotate(45deg)}.popper-arrow:after{content:"";position:absolute;inset:1px;background:var(--color-body-bg);transform:rotate(45deg)}[data-popper]{position:relative;overflow:visible}[data-popper-placement^=bottom]>.popper-arrow{top:-6px;left:50%;transform:translate(-50%,-50%)}[data-popper-placement^=top]>.popper-arrow{bottom:-6px;left:50%;transform:translate(-50%,50%)}[data-popper-placement^=left]>.popper-arrow{right:-6px;top:50%;transform:translate(50%,-50%)}[data-popper-placement^=right]>.popper-arrow{left:-6px;top:50%;transform:translate(-50%,-50%)}';
|
|
5
|
+
var b = Object.defineProperty, y = Object.getOwnPropertyDescriptor, o = (e, r, s, n) => {
|
|
6
|
+
for (var p = n > 1 ? void 0 : n ? y(r, s) : r, a = e.length - 1, l; a >= 0; a--)
|
|
7
|
+
(l = e[a]) && (p = (n ? l(r, s, p) : l(p)) || p);
|
|
8
|
+
return n && p && b(r, s, p), p;
|
|
9
|
+
};
|
|
10
|
+
let t = class extends f {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments), this.title = "", this.trigger = "click", this.placement = "bottom", this.offset = 8, this.open = !1, this.closeOnOutsideClick = !0, this.handleDocumentClick = (e) => {
|
|
13
|
+
!this.open || !this.closeOnOutsideClick || e.composedPath().includes(this) || this.setOpen(!1);
|
|
14
|
+
}, this.toggle = (e) => {
|
|
15
|
+
(this.trigger === "click" || this.trigger === "both") && (e?.stopPropagation(), this.setOpen(!this.open));
|
|
16
|
+
}, this.handleMouseEnter = () => {
|
|
17
|
+
(this.trigger === "hover" || this.trigger === "both") && this.setOpen(!0);
|
|
18
|
+
}, this.handleMouseLeave = () => {
|
|
19
|
+
(this.trigger === "hover" || this.trigger === "both") && this.setOpen(!1);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
connectedCallback() {
|
|
23
|
+
super.connectedCallback(), document.addEventListener("click", this.handleDocumentClick, { capture: !0 });
|
|
24
|
+
}
|
|
25
|
+
disconnectedCallback() {
|
|
26
|
+
super.disconnectedCallback(), document.removeEventListener("click", this.handleDocumentClick, { capture: !0 }), this.destroyPopper();
|
|
27
|
+
}
|
|
28
|
+
updated(e) {
|
|
29
|
+
super.updated(e);
|
|
30
|
+
const r = e.has("placement"), s = e.has("open") && this.open;
|
|
31
|
+
if (e.has("open") && !this.open) {
|
|
32
|
+
this.destroyPopper();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
(s || r) && this.open && this.updatePopper();
|
|
36
|
+
}
|
|
37
|
+
setOpen(e) {
|
|
38
|
+
this.open !== e && (this.open = e, this.dispatchEvent(new CustomEvent(e ? "popover-open" : "popover-close", {
|
|
39
|
+
bubbles: !0,
|
|
40
|
+
composed: !0
|
|
41
|
+
})));
|
|
42
|
+
}
|
|
43
|
+
updatePopper() {
|
|
44
|
+
if (!this.isConnected || !this.open) return;
|
|
45
|
+
const e = this.triggerElement, r = this.popperElement;
|
|
46
|
+
if (!(!e || !r)) {
|
|
47
|
+
if (this.popperInstance) {
|
|
48
|
+
this.popperInstance.setOptions({
|
|
49
|
+
placement: this.placement,
|
|
50
|
+
modifiers: this.getPopperModifiers(),
|
|
51
|
+
strategy: "fixed"
|
|
52
|
+
}), this.popperInstance.update();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.popperInstance = m(e, r, {
|
|
56
|
+
placement: this.placement,
|
|
57
|
+
strategy: "fixed",
|
|
58
|
+
modifiers: this.getPopperModifiers()
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
getPopperModifiers() {
|
|
63
|
+
return [
|
|
64
|
+
{ name: "offset", options: { offset: [0, this.offset] } },
|
|
65
|
+
{ name: "arrow", options: { element: this.popperArrowElement, padding: 8 } },
|
|
66
|
+
{ name: "preventOverflow", options: { padding: 8 } },
|
|
67
|
+
{ name: "flip", options: { padding: 8 } }
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
destroyPopper() {
|
|
71
|
+
this.popperInstance && (this.popperInstance.destroy(), this.popperInstance = void 0);
|
|
72
|
+
}
|
|
73
|
+
render() {
|
|
74
|
+
const e = !!this.title;
|
|
75
|
+
return d`
|
|
76
|
+
<div
|
|
77
|
+
class="popover__wrapper"
|
|
78
|
+
@mouseenter=${this.handleMouseEnter}
|
|
79
|
+
@mouseleave=${this.handleMouseLeave}
|
|
80
|
+
>
|
|
81
|
+
<div class="popover__trigger" part="trigger" @click=${this.toggle}>
|
|
82
|
+
<slot name="trigger"></slot>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
${this.open ? d`
|
|
86
|
+
<div
|
|
87
|
+
data-popper
|
|
88
|
+
class="popover__panel"
|
|
89
|
+
role="dialog"
|
|
90
|
+
aria-hidden=${this.open ? "false" : "true"}
|
|
91
|
+
>
|
|
92
|
+
<div data-popper-arrow class="popper-arrow"></div>
|
|
93
|
+
<div class="popover__content">
|
|
94
|
+
${this.title ? d`
|
|
95
|
+
<div class="popover__title">${this.title}</div>
|
|
96
|
+
` : null}
|
|
97
|
+
<div class="popover__body ${e ? "popover__body--with-border" : ""}">
|
|
98
|
+
<slot></slot>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
` : null}
|
|
103
|
+
</div>
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
t.styles = [v`${h(u)}`];
|
|
108
|
+
o([
|
|
109
|
+
i({ type: String })
|
|
110
|
+
], t.prototype, "title", 2);
|
|
111
|
+
o([
|
|
112
|
+
i({ type: String })
|
|
113
|
+
], t.prototype, "trigger", 2);
|
|
114
|
+
o([
|
|
115
|
+
i({ type: String })
|
|
116
|
+
], t.prototype, "placement", 2);
|
|
117
|
+
o([
|
|
118
|
+
i({ type: Number })
|
|
119
|
+
], t.prototype, "offset", 2);
|
|
120
|
+
o([
|
|
121
|
+
i({ type: Boolean, reflect: !0 })
|
|
122
|
+
], t.prototype, "open", 2);
|
|
123
|
+
o([
|
|
124
|
+
i({ type: Boolean })
|
|
125
|
+
], t.prototype, "closeOnOutsideClick", 2);
|
|
126
|
+
o([
|
|
127
|
+
c('[part="trigger"]')
|
|
128
|
+
], t.prototype, "triggerElement", 2);
|
|
129
|
+
o([
|
|
130
|
+
c("[data-popper]")
|
|
131
|
+
], t.prototype, "popperElement", 2);
|
|
132
|
+
o([
|
|
133
|
+
c("[data-popper-arrow]")
|
|
134
|
+
], t.prototype, "popperArrowElement", 2);
|
|
135
|
+
t = o([
|
|
136
|
+
g("logosphere-popover")
|
|
137
|
+
], t);
|
|
138
|
+
export {
|
|
139
|
+
t as P
|
|
140
|
+
};
|
package/dist/popover.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./popover-C2p5Pmts.cjs");Object.defineProperty(exports,"Popover",{enumerable:!0,get:()=>e.Popover});
|
package/dist/popover.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const icons: Record<string, string>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class UiIcon extends LitElement {
|
|
3
|
+
static properties: {
|
|
4
|
+
name: {
|
|
5
|
+
type: StringConstructor;
|
|
6
|
+
};
|
|
7
|
+
size: {
|
|
8
|
+
type: NumberConstructor;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
name: string;
|
|
12
|
+
size: number;
|
|
13
|
+
static styles: import("lit").CSSResult;
|
|
14
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
}
|