@liwe3/webcomponents 1.0.14 → 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.
Files changed (44) hide show
  1. package/dist/AITextEditor.d.ts +173 -0
  2. package/dist/AITextEditor.d.ts.map +1 -0
  3. package/dist/ChunkUploader.d.ts +103 -0
  4. package/dist/ChunkUploader.d.ts.map +1 -0
  5. package/dist/ChunkUploader.js +614 -0
  6. package/dist/ChunkUploader.js.map +1 -0
  7. package/dist/ContainerBox.d.ts +112 -0
  8. package/dist/ContainerBox.d.ts.map +1 -0
  9. package/dist/ContainerBox.js +359 -0
  10. package/dist/ContainerBox.js.map +1 -0
  11. package/dist/DateSelector.d.ts +103 -0
  12. package/dist/DateSelector.d.ts.map +1 -0
  13. package/dist/Drawer.d.ts +63 -0
  14. package/dist/Drawer.d.ts.map +1 -0
  15. package/dist/Drawer.js +340 -0
  16. package/dist/Drawer.js.map +1 -0
  17. package/dist/ImageView.d.ts +42 -0
  18. package/dist/ImageView.d.ts.map +1 -0
  19. package/dist/ImageView.js +209 -0
  20. package/dist/ImageView.js.map +1 -0
  21. package/dist/PopoverMenu.d.ts +103 -0
  22. package/dist/PopoverMenu.d.ts.map +1 -0
  23. package/dist/SmartSelect.d.ts +99 -0
  24. package/dist/SmartSelect.d.ts.map +1 -0
  25. package/dist/Toast.d.ts +127 -0
  26. package/dist/Toast.d.ts.map +1 -0
  27. package/dist/Toast.js +79 -49
  28. package/dist/Toast.js.map +1 -1
  29. package/dist/TreeView.d.ts +84 -0
  30. package/dist/TreeView.d.ts.map +1 -0
  31. package/dist/TreeView.js +478 -0
  32. package/dist/TreeView.js.map +1 -0
  33. package/dist/index.d.ts +16 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +26 -12
  36. package/dist/index.js.map +1 -1
  37. package/package.json +28 -3
  38. package/src/ChunkUploader.ts +921 -0
  39. package/src/ContainerBox.ts +570 -0
  40. package/src/Drawer.ts +435 -0
  41. package/src/ImageView.ts +265 -0
  42. package/src/Toast.ts +96 -32
  43. package/src/TreeView.ts +673 -0
  44. package/src/index.ts +45 -6
@@ -0,0 +1,209 @@
1
+ class s extends HTMLElement {
2
+ constructor() {
3
+ super(), this._src = "", this._width = "100%", this._height = "auto", this._mode = "cover", this._position = "center", this._fx = "none", this._fxHover = "none", this._alt = "", this._isHovering = !1, this.attachShadow({ mode: "open" });
4
+ const t = document.createElement("style");
5
+ t.textContent = `
6
+ :host {
7
+ display: block;
8
+ overflow: hidden;
9
+ position: relative;
10
+ }
11
+
12
+ .container {
13
+ width: 100%;
14
+ height: 100%;
15
+ overflow: hidden;
16
+ position: relative;
17
+ display: flex;
18
+ }
19
+
20
+ img {
21
+ display: block;
22
+ transition: transform 0.5s ease, filter 0.5s ease;
23
+ }
24
+
25
+ /* Modes */
26
+ .mode-stretch img {
27
+ width: 100%;
28
+ height: 100%;
29
+ object-fit: fill;
30
+ }
31
+
32
+ .mode-cover img {
33
+ width: 100%;
34
+ height: 100%;
35
+ object-fit: cover;
36
+ }
37
+
38
+ .mode-contain img {
39
+ width: 100%;
40
+ height: 100%;
41
+ object-fit: contain;
42
+ }
43
+
44
+ .mode-1-1 img {
45
+ max-width: none;
46
+ max-height: none;
47
+ /* Default to auto, controlled by position */
48
+ }
49
+
50
+ /* Positions for 1:1 and others if applicable */
51
+ .pos-center { justify-content: center; align-items: center; }
52
+ .pos-top { justify-content: center; align-items: flex-start; }
53
+ .pos-bottom { justify-content: center; align-items: flex-end; }
54
+ .pos-left { justify-content: flex-start; align-items: center; }
55
+ .pos-right { justify-content: flex-end; align-items: center; }
56
+ .pos-top-left { justify-content: flex-start; align-items: flex-start; }
57
+ .pos-top-right { justify-content: flex-end; align-items: flex-start; }
58
+ .pos-bottom-left { justify-content: flex-start; align-items: flex-end; }
59
+ .pos-bottom-right { justify-content: flex-end; align-items: flex-end; }
60
+
61
+ /* FX */
62
+ .fx-bokeh img {
63
+ filter: blur(3px);
64
+ }
65
+
66
+ @keyframes pan-left {
67
+ 0% { transform: scale(1.2) translateX(0); }
68
+ 100% { transform: scale(1.2) translateX(-10%); }
69
+ }
70
+
71
+ @keyframes pan-right {
72
+ 0% { transform: scale(1.2) translateX(0); }
73
+ 100% { transform: scale(1.2) translateX(10%); }
74
+ }
75
+
76
+ @keyframes zoom-in {
77
+ 0% { transform: scale(1); }
78
+ 100% { transform: scale(1.2); }
79
+ }
80
+
81
+ @keyframes zoom-out {
82
+ 0% { transform: scale(1.2); }
83
+ 100% { transform: scale(1); }
84
+ }
85
+
86
+ .fx-pan-left img {
87
+ animation: pan-left 10s linear infinite alternate;
88
+ }
89
+
90
+ .fx-pan-right img {
91
+ animation: pan-right 10s linear infinite alternate;
92
+ }
93
+
94
+ .fx-zoom-in img {
95
+ animation: zoom-in 10s linear infinite alternate;
96
+ }
97
+
98
+ .fx-zoom-out img {
99
+ animation: zoom-out 10s linear infinite alternate;
100
+ }
101
+ `, this.container = document.createElement("div"), this.container.classList.add("container"), this.img = document.createElement("img"), this.container.appendChild(this.img), this.shadowRoot.appendChild(t), this.shadowRoot.appendChild(this.container), this.addEventListener("mouseenter", this._handleMouseEnter.bind(this)), this.addEventListener("mouseleave", this._handleMouseLeave.bind(this));
102
+ }
103
+ _handleMouseEnter() {
104
+ this._fxHover !== "none" && (this._isHovering = !0, this.updateClasses());
105
+ }
106
+ _handleMouseLeave() {
107
+ this._fxHover !== "none" && (this._isHovering = !1, this.updateClasses());
108
+ }
109
+ static get observedAttributes() {
110
+ return ["src", "width", "height", "mode", "position", "fx", "fx-hover", "alt"];
111
+ }
112
+ attributeChangedCallback(t, i, e) {
113
+ if (i !== e)
114
+ switch (t) {
115
+ case "src":
116
+ this._src = e || "", this.render();
117
+ break;
118
+ case "width":
119
+ this._width = e || "100%", this.updateDimensions();
120
+ break;
121
+ case "height":
122
+ this._height = e || "auto", this.updateDimensions();
123
+ break;
124
+ case "mode":
125
+ this._mode = e || "cover", this.updateClasses();
126
+ break;
127
+ case "position":
128
+ this._position = e || "center", this.updateClasses();
129
+ break;
130
+ case "fx":
131
+ this._fx = e || "none", this.updateClasses();
132
+ break;
133
+ case "fx-hover":
134
+ this._fxHover = e || "none", this.updateClasses();
135
+ break;
136
+ case "alt":
137
+ this._alt = e || "", this.render();
138
+ break;
139
+ }
140
+ }
141
+ connectedCallback() {
142
+ this.updateDimensions(), this.updateClasses(), this.render();
143
+ }
144
+ updateDimensions() {
145
+ this.style.width = this._width, this.style.height = this._height;
146
+ }
147
+ updateClasses() {
148
+ this.container.className = "container", this.container.classList.add(`mode-${this._mode}`), this.container.classList.add(`pos-${this._position}`);
149
+ const t = this._isHovering && this._fxHover !== "none" ? this._fxHover : this._fx;
150
+ this.container.classList.add(`fx-${t}`);
151
+ }
152
+ render() {
153
+ this.img.getAttribute("src") !== this._src && (this._src ? this.img.setAttribute("src", this._src) : this.img.removeAttribute("src")), this.img.getAttribute("alt") !== this._alt && (this._alt ? this.img.setAttribute("alt", this._alt) : this.img.removeAttribute("alt"));
154
+ }
155
+ // Public API
156
+ get src() {
157
+ return this._src;
158
+ }
159
+ set src(t) {
160
+ this.setAttribute("src", t);
161
+ }
162
+ get width() {
163
+ return this._width;
164
+ }
165
+ set width(t) {
166
+ this.setAttribute("width", t);
167
+ }
168
+ get height() {
169
+ return this._height;
170
+ }
171
+ set height(t) {
172
+ this.setAttribute("height", t);
173
+ }
174
+ get mode() {
175
+ return this._mode;
176
+ }
177
+ set mode(t) {
178
+ this.setAttribute("mode", t);
179
+ }
180
+ get position() {
181
+ return this._position;
182
+ }
183
+ set position(t) {
184
+ this.setAttribute("position", t);
185
+ }
186
+ get fx() {
187
+ return this._fx;
188
+ }
189
+ set fx(t) {
190
+ this.setAttribute("fx", t);
191
+ }
192
+ get fxHover() {
193
+ return this._fxHover;
194
+ }
195
+ set fxHover(t) {
196
+ this.setAttribute("fx-hover", t);
197
+ }
198
+ get alt() {
199
+ return this._alt;
200
+ }
201
+ set alt(t) {
202
+ this.setAttribute("alt", t);
203
+ }
204
+ }
205
+ customElements.define("liwe3-image-view", s);
206
+ export {
207
+ s as ImageView
208
+ };
209
+ //# sourceMappingURL=ImageView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageView.js","sources":["../src/ImageView.ts"],"sourcesContent":["export type ImageMode = 'stretch' | '1:1' | 'cover' | 'contain';\nexport type ImagePosition = 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\nexport type ImageFX = 'none' | 'bokeh' | 'pan-left' | 'pan-right' | 'zoom-in' | 'zoom-out';\n\nexport class ImageView extends HTMLElement {\n\tprivate _src: string = '';\n\tprivate _width: string = '100%';\n\tprivate _height: string = 'auto';\n\tprivate _mode: ImageMode = 'cover';\n\tprivate _position: ImagePosition = 'center';\n\tprivate _fx: ImageFX = 'none';\n\tprivate _fxHover: ImageFX = 'none';\n\tprivate _alt: string = '';\n\tprivate _isHovering: boolean = false;\n\n\tprivate container: HTMLDivElement;\n\tprivate img: HTMLImageElement;\n\n\tconstructor () {\n\t\tsuper();\n\t\tthis.attachShadow( { mode: 'open' } );\n\n\t\tconst style = document.createElement( 'style' );\n\t\tstyle.textContent = `\n :host {\n display: block;\n overflow: hidden;\n position: relative;\n }\n\n .container {\n width: 100%;\n height: 100%;\n overflow: hidden;\n position: relative;\n display: flex;\n }\n\n img {\n display: block;\n transition: transform 0.5s ease, filter 0.5s ease;\n }\n\n /* Modes */\n .mode-stretch img {\n width: 100%;\n height: 100%;\n object-fit: fill;\n }\n\n .mode-cover img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .mode-contain img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n .mode-1-1 img {\n max-width: none;\n max-height: none;\n /* Default to auto, controlled by position */\n }\n\n /* Positions for 1:1 and others if applicable */\n .pos-center { justify-content: center; align-items: center; }\n .pos-top { justify-content: center; align-items: flex-start; }\n .pos-bottom { justify-content: center; align-items: flex-end; }\n .pos-left { justify-content: flex-start; align-items: center; }\n .pos-right { justify-content: flex-end; align-items: center; }\n .pos-top-left { justify-content: flex-start; align-items: flex-start; }\n .pos-top-right { justify-content: flex-end; align-items: flex-start; }\n .pos-bottom-left { justify-content: flex-start; align-items: flex-end; }\n .pos-bottom-right { justify-content: flex-end; align-items: flex-end; }\n\n /* FX */\n .fx-bokeh img {\n filter: blur(3px);\n }\n\n @keyframes pan-left {\n 0% { transform: scale(1.2) translateX(0); }\n 100% { transform: scale(1.2) translateX(-10%); }\n }\n\n @keyframes pan-right {\n 0% { transform: scale(1.2) translateX(0); }\n 100% { transform: scale(1.2) translateX(10%); }\n }\n\n @keyframes zoom-in {\n 0% { transform: scale(1); }\n 100% { transform: scale(1.2); }\n }\n\n @keyframes zoom-out {\n 0% { transform: scale(1.2); }\n 100% { transform: scale(1); }\n }\n\n .fx-pan-left img {\n animation: pan-left 10s linear infinite alternate;\n }\n\n .fx-pan-right img {\n animation: pan-right 10s linear infinite alternate;\n }\n\n .fx-zoom-in img {\n animation: zoom-in 10s linear infinite alternate;\n }\n\n .fx-zoom-out img {\n animation: zoom-out 10s linear infinite alternate;\n }\n `;\n\n\t\tthis.container = document.createElement( 'div' );\n\t\tthis.container.classList.add( 'container' );\n\n\t\tthis.img = document.createElement( 'img' );\n\n\t\tthis.container.appendChild( this.img );\n\t\tthis.shadowRoot!.appendChild( style );\n\t\tthis.shadowRoot!.appendChild( this.container );\n\n\t\t// Add hover listeners\n\t\tthis.addEventListener( 'mouseenter', this._handleMouseEnter.bind( this ) );\n\t\tthis.addEventListener( 'mouseleave', this._handleMouseLeave.bind( this ) );\n\t}\n\n\tprivate _handleMouseEnter () {\n\t\tif ( this._fxHover !== 'none' ) {\n\t\t\tthis._isHovering = true;\n\t\t\tthis.updateClasses();\n\t\t}\n\t}\n\n\tprivate _handleMouseLeave () {\n\t\tif ( this._fxHover !== 'none' ) {\n\t\t\tthis._isHovering = false;\n\t\t\tthis.updateClasses();\n\t\t}\n\t}\n\n\tstatic get observedAttributes () {\n\t\treturn [ 'src', 'width', 'height', 'mode', 'position', 'fx', 'fx-hover', 'alt' ];\n\t}\n\n\tattributeChangedCallback ( name: string, oldValue: string, newValue: string ) {\n\t\tif ( oldValue === newValue ) return;\n\n\t\tswitch ( name ) {\n\t\t\tcase 'src':\n\t\t\t\tthis._src = newValue || '';\n\t\t\t\tthis.render();\n\t\t\t\tbreak;\n\t\t\tcase 'width':\n\t\t\t\tthis._width = newValue || '100%';\n\t\t\t\tthis.updateDimensions();\n\t\t\t\tbreak;\n\t\t\tcase 'height':\n\t\t\t\tthis._height = newValue || 'auto';\n\t\t\t\tthis.updateDimensions();\n\t\t\t\tbreak;\n\t\t\tcase 'mode':\n\t\t\t\tthis._mode = ( newValue as ImageMode ) || 'cover';\n\t\t\t\tthis.updateClasses();\n\t\t\t\tbreak;\n\t\t\tcase 'position':\n\t\t\t\tthis._position = ( newValue as ImagePosition ) || 'center';\n\t\t\t\tthis.updateClasses();\n\t\t\t\tbreak;\n\t\t\tcase 'fx':\n\t\t\t\tthis._fx = ( newValue as ImageFX ) || 'none';\n\t\t\t\tthis.updateClasses();\n\t\t\t\tbreak;\n\t\t\tcase 'fx-hover':\n\t\t\t\tthis._fxHover = ( newValue as ImageFX ) || 'none';\n\t\t\t\tthis.updateClasses();\n\t\t\t\tbreak;\n\t\t\tcase 'alt':\n\t\t\t\tthis._alt = newValue || '';\n\t\t\t\tthis.render();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconnectedCallback () {\n\t\tthis.updateDimensions();\n\t\tthis.updateClasses();\n\t\tthis.render();\n\t}\n\n\tprivate updateDimensions () {\n\t\tthis.style.width = this._width;\n\t\tthis.style.height = this._height;\n\t}\n\n\tprivate updateClasses () {\n\t\t// Reset classes\n\t\tthis.container.className = 'container';\n\n\t\t// Add mode class\n\t\tthis.container.classList.add( `mode-${ this._mode }` );\n\n\t\t// Add position class\n\t\tthis.container.classList.add( `pos-${ this._position }` );\n\n\t\t// Add FX class - use hover fx if hovering and defined, otherwise use regular fx\n\t\tconst activeFx = ( this._isHovering && this._fxHover !== 'none' ) ? this._fxHover : this._fx;\n\t\tthis.container.classList.add( `fx-${ activeFx }` );\n\t}\n\n\tprivate render () {\n\t\tconst currentSrc = this.img.getAttribute( 'src' );\n\t\tif ( currentSrc !== this._src ) {\n\t\t\tif ( this._src ) {\n\t\t\t\tthis.img.setAttribute( 'src', this._src );\n\t\t\t} else {\n\t\t\t\tthis.img.removeAttribute( 'src' );\n\t\t\t}\n\t\t}\n\n\t\tconst currentAlt = this.img.getAttribute( 'alt' );\n\t\tif ( currentAlt !== this._alt ) {\n\t\t\tif ( this._alt ) {\n\t\t\t\tthis.img.setAttribute( 'alt', this._alt );\n\t\t\t} else {\n\t\t\t\tthis.img.removeAttribute( 'alt' );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Public API\n\tget src (): string { return this._src; }\n\tset src ( value: string ) { this.setAttribute( 'src', value ); }\n\n\tget width (): string { return this._width; }\n\tset width ( value: string ) { this.setAttribute( 'width', value ); }\n\n\tget height (): string { return this._height; }\n\tset height ( value: string ) { this.setAttribute( 'height', value ); }\n\n\tget mode (): ImageMode { return this._mode; }\n\tset mode ( value: ImageMode ) { this.setAttribute( 'mode', value ); }\n\n\tget position (): ImagePosition { return this._position; }\n\tset position ( value: ImagePosition ) { this.setAttribute( 'position', value ); }\n\n\tget fx (): ImageFX { return this._fx; }\n\tset fx ( value: ImageFX ) { this.setAttribute( 'fx', value ); }\n\n\tget fxHover (): ImageFX { return this._fxHover; }\n\tset fxHover ( value: ImageFX ) { this.setAttribute( 'fx-hover', value ); }\n\n\tget alt (): string { return this._alt; }\n\tset alt ( value: string ) { this.setAttribute( 'alt', value ); }\n}\n\ncustomElements.define( 'liwe3-image-view', ImageView );\n"],"names":["ImageView","style","name","oldValue","newValue","activeFx","value"],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * PopoverMenu Web Component
3
+ * A customizable menu component using fixed positioning with support for nested submenus
4
+ */
5
+ export type PopoverMenuItem = {
6
+ label: string;
7
+ enabled?: boolean;
8
+ items?: PopoverMenuItem[];
9
+ onclick?: () => void;
10
+ };
11
+ export type PopoverMenuConfig = {
12
+ label: string;
13
+ items: PopoverMenuItem[];
14
+ };
15
+ export declare class PopoverMenuElement extends HTMLElement {
16
+ shadowRoot: ShadowRoot;
17
+ private items;
18
+ private openPopovers;
19
+ private hoverTimeouts;
20
+ private initialized;
21
+ private globalClickHandler;
22
+ constructor();
23
+ connectedCallback(): void;
24
+ disconnectedCallback(): void;
25
+ /**
26
+ * Set up global event listeners
27
+ */
28
+ private setupGlobalListeners;
29
+ /**
30
+ * Clean up global event listeners
31
+ */
32
+ private cleanupGlobalListeners;
33
+ /**
34
+ * Set menu items
35
+ */
36
+ setItems(items: PopoverMenuConfig[]): void;
37
+ /**
38
+ * Get current menu items
39
+ */
40
+ getItems(): PopoverMenuConfig[];
41
+ /**
42
+ * Add a new menu item
43
+ */
44
+ addMenuItem(item: PopoverMenuConfig, index?: number | null): void;
45
+ /**
46
+ * Remove a menu item
47
+ */
48
+ removeMenuItem(index: number): void;
49
+ /**
50
+ * Update a menu item
51
+ */
52
+ updateMenuItem(index: number, item: PopoverMenuConfig): void;
53
+ /**
54
+ * Render the menu component
55
+ */
56
+ private render;
57
+ /**
58
+ * Create a menu trigger button
59
+ */
60
+ private createMenuTrigger;
61
+ /**
62
+ * Create a popover if it doesn't exist
63
+ */
64
+ private createPopoverIfNeeded;
65
+ /**
66
+ * Populate a popover with menu items
67
+ */
68
+ private populatePopover;
69
+ /**
70
+ * Create a menu item element
71
+ */
72
+ private createMenuItem;
73
+ /**
74
+ * Show a submenu
75
+ */
76
+ private showSubmenu;
77
+ /**
78
+ * Close other submenus except the specified one and its ancestors
79
+ */
80
+ private closeOtherSubmenus;
81
+ /**
82
+ * Close all menus
83
+ */
84
+ private closeAllMenus;
85
+ /**
86
+ * Handle menu trigger click
87
+ */
88
+ private handleMenuTriggerClick;
89
+ /**
90
+ * Show the main menu
91
+ */
92
+ private showMainMenu;
93
+ /**
94
+ * Adjust popover position to handle overflow
95
+ */
96
+ private adjustPopoverPosition;
97
+ }
98
+ /**
99
+ * Conditionally defines the custom element if in a browser environment.
100
+ */
101
+ declare const definePopoverMenu: (tagName?: string) => void;
102
+ export { definePopoverMenu };
103
+ //# sourceMappingURL=PopoverMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverMenu.d.ts","sourceRoot":"","sources":["../src/PopoverMenu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,WAAW;IACzC,UAAU,EAAE,UAAU,CAAC;IAC/B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAA8C;;IAOxE,iBAAiB,IAAK,IAAI;IAQ1B,oBAAoB,IAAK,IAAI;IAI7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,QAAQ,CAAG,KAAK,EAAE,iBAAiB,EAAE,GAAI,IAAI;IAK7C;;OAEG;IACH,QAAQ,IAAK,iBAAiB,EAAE;IAIhC;;OAEG;IACH,WAAW,CAAG,IAAI,EAAE,iBAAiB,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,GAAI,IAAI;IAS1E;;OAEG;IACH,cAAc,CAAG,KAAK,EAAE,MAAM,GAAI,IAAI;IAOtC;;OAEG;IACH,cAAc,CAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAI,IAAI;IAO/D;;OAEG;IACH,OAAO,CAAC,MAAM;IAiId;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsDtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CA8F9B;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,GAAK,gBAA8B,KAAI,IAI7D,CAAC;AAKF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * SmartSelect Web Component
3
+ * A customizable select dropdown with search, multi-select, and keyboard navigation
4
+ */
5
+ export type SelectOption = {
6
+ value: string;
7
+ label: string;
8
+ };
9
+ export declare class SmartSelectElement extends HTMLElement {
10
+ shadowRoot: ShadowRoot;
11
+ private isOpen;
12
+ private selectedOptions;
13
+ private filteredOptions;
14
+ private focusedIndex;
15
+ private searchValue;
16
+ private keyboardNavigating;
17
+ private keyboardTimer?;
18
+ constructor();
19
+ static get observedAttributes(): string[];
20
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
21
+ get multiple(): boolean;
22
+ set multiple(value: boolean);
23
+ get searchable(): boolean;
24
+ set searchable(value: boolean);
25
+ get placeholder(): string;
26
+ set placeholder(value: string);
27
+ get disabled(): boolean;
28
+ set disabled(value: boolean);
29
+ get value(): string | string[];
30
+ set value(val: string | string[]);
31
+ get options(): SelectOption[];
32
+ set options(opts: SelectOption[]);
33
+ /**
34
+ * Opens the dropdown
35
+ */
36
+ open(): void;
37
+ /**
38
+ * Closes the dropdown
39
+ */
40
+ close(): void;
41
+ /**
42
+ * Toggles the dropdown open/closed state
43
+ */
44
+ toggle(): void;
45
+ /**
46
+ * Selects an option by its value
47
+ */
48
+ selectOption(value: string): void;
49
+ /**
50
+ * Deselects an option by its value
51
+ */
52
+ deselectOption(value: string): void;
53
+ /**
54
+ * Returns an array of currently selected options
55
+ */
56
+ getSelectedOptions(): SelectOption[];
57
+ /**
58
+ * Sets the options for the select component
59
+ */
60
+ setOptions(options: SelectOption[]): void;
61
+ /**
62
+ * Handles search functionality
63
+ */
64
+ private handleSearch;
65
+ /**
66
+ * Updates the visual focus state without full re-render
67
+ */
68
+ private updateFocusedOption;
69
+ /**
70
+ * Scrolls the focused option into view
71
+ */
72
+ private scrollToFocusedOption;
73
+ /**
74
+ * Calculates the optimal dropdown position based on viewport constraints
75
+ */
76
+ private _calculateDropdownPosition;
77
+ /**
78
+ * Updates dropdown position using fixed positioning relative to viewport
79
+ */
80
+ private _updateDropdownPosition;
81
+ /**
82
+ * Handles keyboard navigation
83
+ */
84
+ private handleKeydown;
85
+ /**
86
+ * Binds all event listeners
87
+ */
88
+ private bindEvents;
89
+ /**
90
+ * Renders the component
91
+ */
92
+ private render;
93
+ }
94
+ /**
95
+ * Conditionally defines the custom element if in a browser environment.
96
+ */
97
+ declare const defineSmartSelect: (tagName?: string) => void;
98
+ export { defineSmartSelect };
99
+ //# sourceMappingURL=SmartSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartSelect.d.ts","sourceRoot":"","sources":["../src/SmartSelect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,WAAW;IACzC,UAAU,EAAE,UAAU,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,aAAa,CAAC,CAAS;;IAe/B,MAAM,KAAK,kBAAkB,IAAK,MAAM,EAAE,CAEzC;IAED,wBAAwB,CAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAI,IAAI;IASjG,IAAI,QAAQ,IAAK,OAAO,CAEvB;IAED,IAAI,QAAQ,CAAG,KAAK,EAAE,OAAO,EAM5B;IAED,IAAI,UAAU,IAAK,OAAO,CAEzB;IAED,IAAI,UAAU,CAAG,KAAK,EAAE,OAAO,EAM9B;IAED,IAAI,WAAW,IAAK,MAAM,CAEzB;IAED,IAAI,WAAW,CAAG,KAAK,EAAE,MAAM,EAE9B;IAED,IAAI,QAAQ,IAAK,OAAO,CAEvB;IAED,IAAI,QAAQ,CAAG,KAAK,EAAE,OAAO,EAM5B;IAED,IAAI,KAAK,IAAK,MAAM,GAAG,MAAM,EAAE,CAK9B;IAED,IAAI,KAAK,CAAG,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAQjC;IAED,IAAI,OAAO,IAAK,YAAY,EAAE,CAW7B;IAED,IAAI,OAAO,CAAG,IAAI,EAAE,YAAY,EAAE,EAEjC;IAED;;OAEG;IACH,IAAI,IAAK,IAAI;IAyBb;;OAEG;IACH,KAAK,IAAK,IAAI;IAuBd;;OAEG;IACH,MAAM,IAAK,IAAI;IAQf;;OAEG;IACH,YAAY,CAAG,KAAK,EAAE,MAAM,GAAI,IAAI;IAiBpC;;OAEG;IACH,cAAc,CAAG,KAAK,EAAE,MAAM,GAAI,IAAI;IAMtC;;OAEG;IACH,kBAAkB,IAAK,YAAY,EAAE;IAIrC;;OAEG;IACH,UAAU,CAAG,OAAO,EAAE,YAAY,EAAE,GAAI,IAAI;IAO5C;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA2ClC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,aAAa;IA0FrB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4FlB;;OAEG;IACH,OAAO,CAAC,MAAM;CAwNf;AAED;;GAEG;AACH,QAAA,MAAM,iBAAiB,GAAK,UAAS,MAAuB,KAAI,IAI/D,CAAC;AAKF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Toast Web Component
3
+ * A customizable toast notification system with multiple types, icons, buttons, and auto-dismiss
4
+ */
5
+ export type ToastType = 'info' | 'warning' | 'error' | 'success';
6
+ export type ToastPosition = 'TL' | 'T' | 'TR' | 'BL' | 'B' | 'BR';
7
+ export type ToastButton = {
8
+ label: string;
9
+ onClick: () => void;
10
+ };
11
+ export type ToastConfig = {
12
+ title: string;
13
+ text: string;
14
+ type?: ToastType;
15
+ icon?: string;
16
+ buttons?: ToastButton[];
17
+ closable?: boolean;
18
+ duration?: number;
19
+ position?: ToastPosition;
20
+ onClose?: () => void;
21
+ };
22
+ export declare class ToastElement extends HTMLElement {
23
+ shadowRoot: ShadowRoot;
24
+ private config;
25
+ private autoCloseTimer?;
26
+ private remainingTime;
27
+ private pauseTime;
28
+ private progressBar?;
29
+ constructor();
30
+ static get observedAttributes(): string[];
31
+ attributeChangedCallback(_name: string, oldValue: string | null, newValue: string | null): void;
32
+ connectedCallback(): void;
33
+ disconnectedCallback(): void;
34
+ get title(): string;
35
+ set title(value: string);
36
+ get text(): string;
37
+ set text(value: string);
38
+ get type(): ToastType;
39
+ set type(value: ToastType);
40
+ get icon(): string | undefined;
41
+ set icon(value: string | undefined);
42
+ get closable(): boolean;
43
+ set closable(value: boolean);
44
+ get duration(): number;
45
+ set duration(value: number);
46
+ get buttons(): ToastButton[];
47
+ set buttons(value: ToastButton[]);
48
+ /**
49
+ * Shows the toast with the given configuration
50
+ */
51
+ show(config: ToastConfig): void;
52
+ /**
53
+ * Closes the toast
54
+ */
55
+ close(): void;
56
+ /**
57
+ * Starts the auto-close timer if duration is set
58
+ */
59
+ private startAutoCloseTimer;
60
+ /**
61
+ * Pauses the auto-close timer
62
+ */
63
+ private pauseAutoCloseTimer;
64
+ /**
65
+ * Resumes the auto-close timer
66
+ */
67
+ private resumeAutoCloseTimer;
68
+ /**
69
+ * Clears the auto-close timer
70
+ */
71
+ private clearAutoCloseTimer;
72
+ /**
73
+ * Starts the progress bar animation
74
+ */
75
+ private startProgressBarAnimation;
76
+ /**
77
+ * Pauses the progress bar animation
78
+ */
79
+ private pauseProgressBarAnimation;
80
+ /**
81
+ * Resumes the progress bar animation
82
+ */
83
+ private resumeProgressBarAnimation;
84
+ /**
85
+ * Gets the color scheme for the toast type
86
+ */
87
+ private getTypeColors;
88
+ /**
89
+ * Gets the default icon for the toast type
90
+ */
91
+ private getDefaultIcon;
92
+ /**
93
+ * Binds all event listeners
94
+ */
95
+ private bindEvents;
96
+ /**
97
+ * Renders the component
98
+ */
99
+ private render;
100
+ }
101
+ /**
102
+ * Conditionally defines the custom element if in a browser environment.
103
+ */
104
+ declare const defineToast: (tagName?: string) => void;
105
+ /**
106
+ * Shows a toast notification with the given configuration.
107
+ * This is the recommended way to display toasts.
108
+ *
109
+ * @param config - The toast configuration
110
+ * @returns The toast element instance
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * import { toastAdd } from '@liwe3/webcomponents';
115
+ *
116
+ * toastAdd({
117
+ * title: 'Success!',
118
+ * text: 'Your changes have been saved.',
119
+ * type: 'success',
120
+ * duration: 5000,
121
+ * position: 'TR' // Optional: top-right (default)
122
+ * });
123
+ * ```
124
+ */
125
+ declare const toastAdd: (config: ToastConfig) => ToastElement;
126
+ export { defineToast, toastAdd };
127
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../src/Toast.ts"],"names":[],"mappings":"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"}