@liwe3/webcomponents 1.1.0 → 1.1.10
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/dist/AIMarkdownEditor.d.ts +35 -0
- package/dist/AIMarkdownEditor.d.ts.map +1 -0
- package/dist/AIMarkdownEditor.js +412 -0
- package/dist/AIMarkdownEditor.js.map +1 -0
- package/dist/AITextEditor.d.ts +10 -0
- package/dist/AITextEditor.d.ts.map +1 -1
- package/dist/AITextEditor.js +63 -27
- package/dist/AITextEditor.js.map +1 -1
- package/dist/ButtonToolbar.d.ts +35 -0
- package/dist/ButtonToolbar.d.ts.map +1 -0
- package/dist/ButtonToolbar.js +220 -0
- package/dist/ButtonToolbar.js.map +1 -0
- package/dist/CheckList.d.ts +31 -0
- package/dist/CheckList.d.ts.map +1 -0
- package/dist/CheckList.js +336 -0
- package/dist/CheckList.js.map +1 -0
- package/dist/ChunkUploader.d.ts +22 -0
- package/dist/ChunkUploader.d.ts.map +1 -1
- package/dist/ChunkUploader.js +245 -103
- package/dist/ChunkUploader.js.map +1 -1
- package/dist/ComicBalloon.d.ts +82 -0
- package/dist/ComicBalloon.d.ts.map +1 -0
- package/dist/ComicBalloon.js +346 -0
- package/dist/ComicBalloon.js.map +1 -0
- package/dist/Dialog.d.ts +102 -0
- package/dist/Dialog.d.ts.map +1 -0
- package/dist/Dialog.js +299 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/MarkdownPreview.d.ts +25 -0
- package/dist/MarkdownPreview.d.ts.map +1 -0
- package/dist/MarkdownPreview.js +147 -0
- package/dist/MarkdownPreview.js.map +1 -0
- package/dist/ResizableCropper.d.ts +158 -0
- package/dist/ResizableCropper.d.ts.map +1 -0
- package/dist/ResizableCropper.js +562 -0
- package/dist/ResizableCropper.js.map +1 -0
- package/dist/SmartSelect.d.ts +1 -0
- package/dist/SmartSelect.d.ts.map +1 -1
- package/dist/SmartSelect.js +45 -2
- package/dist/SmartSelect.js.map +1 -1
- package/dist/index.d.ts +16 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -29
- package/dist/index.js.map +1 -1
- package/package.json +33 -3
- package/src/AIMarkdownEditor.ts +568 -0
- package/src/AITextEditor.ts +97 -2
- package/src/ButtonToolbar.ts +302 -0
- package/src/CheckList.ts +438 -0
- package/src/ChunkUploader.ts +837 -623
- package/src/ComicBalloon.ts +709 -0
- package/src/Dialog.ts +510 -0
- package/src/MarkdownPreview.ts +213 -0
- package/src/ResizableCropper.ts +1099 -0
- package/src/SmartSelect.ts +48 -2
- package/src/index.ts +110 -47
package/src/SmartSelect.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
export type SelectOption = {
|
|
7
7
|
value: string;
|
|
8
8
|
label: string;
|
|
9
|
+
image?: string;
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export class SmartSelectElement extends HTMLElement {
|
|
@@ -699,6 +700,42 @@ export class SmartSelectElement extends HTMLElement {
|
|
|
699
700
|
color: var(--option-selected-color, #1976d2);
|
|
700
701
|
}
|
|
701
702
|
|
|
703
|
+
.option-content {
|
|
704
|
+
display: flex;
|
|
705
|
+
align-items: center;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.option-image {
|
|
709
|
+
width: 24px;
|
|
710
|
+
height: 24px;
|
|
711
|
+
border-radius: 50%;
|
|
712
|
+
object-fit: cover;
|
|
713
|
+
margin-right: 8px;
|
|
714
|
+
flex-shrink: 0;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.tag-image {
|
|
718
|
+
width: 16px;
|
|
719
|
+
height: 16px;
|
|
720
|
+
border-radius: 50%;
|
|
721
|
+
object-fit: cover;
|
|
722
|
+
margin-right: 4px;
|
|
723
|
+
flex-shrink: 0;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
.single-value {
|
|
727
|
+
display: flex;
|
|
728
|
+
align-items: center;
|
|
729
|
+
gap: 8px;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
.single-value-image {
|
|
733
|
+
width: 20px;
|
|
734
|
+
height: 20px;
|
|
735
|
+
border-radius: 50%;
|
|
736
|
+
object-fit: cover;
|
|
737
|
+
}
|
|
738
|
+
|
|
702
739
|
.no-options {
|
|
703
740
|
padding: 8px 12px;
|
|
704
741
|
color: var(--no-options-color, #6c757d);
|
|
@@ -712,11 +749,17 @@ export class SmartSelectElement extends HTMLElement {
|
|
|
712
749
|
${ this.multiple && this.selectedOptions.length > 0
|
|
713
750
|
? this.selectedOptions.map( option => `
|
|
714
751
|
<span class="tag">
|
|
752
|
+
${ option.image ? `<img src="${ option.image }" class="tag-image" alt="">` : '' }
|
|
715
753
|
${ option.label }
|
|
716
754
|
<span class="remove-tag" data-value="${ option.value }">×</span>
|
|
717
755
|
</span>
|
|
718
756
|
`).join( '' )
|
|
719
|
-
:
|
|
757
|
+
: this.selectedOptions.length > 0
|
|
758
|
+
? `<div class="single-value">
|
|
759
|
+
${ this.selectedOptions[ 0 ].image ? `<img src="${ this.selectedOptions[ 0 ].image }" class="single-value-image" alt="">` : '' }
|
|
760
|
+
<span>${ this.selectedOptions[ 0 ].label }</span>
|
|
761
|
+
</div>`
|
|
762
|
+
: `<span>${ displayText }</span>`
|
|
720
763
|
}
|
|
721
764
|
</div>
|
|
722
765
|
<div class="arrow ${ this.isOpen ? 'open' : '' }"></div>
|
|
@@ -739,7 +782,10 @@ export class SmartSelectElement extends HTMLElement {
|
|
|
739
782
|
class="option ${ this.selectedOptions.find( selected => selected.value === option.value ) ? 'selected' : '' } ${ index === this.focusedIndex ? 'focused' : '' }"
|
|
740
783
|
data-value="${ option.value }"
|
|
741
784
|
>
|
|
742
|
-
|
|
785
|
+
<div class="option-content">
|
|
786
|
+
${ option.image ? `<img src="${ option.image }" class="option-image" alt="">` : '' }
|
|
787
|
+
<span>${ option.label }</span>
|
|
788
|
+
</div>
|
|
743
789
|
</div>
|
|
744
790
|
`).join( '' )
|
|
745
791
|
: '<div class="no-options">No options available</div>'
|
package/src/index.ts
CHANGED
|
@@ -5,65 +5,74 @@
|
|
|
5
5
|
|
|
6
6
|
// Export SmartSelect
|
|
7
7
|
export {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
SmartSelectElement,
|
|
9
|
+
defineSmartSelect,
|
|
10
|
+
type SelectOption,
|
|
11
11
|
} from './SmartSelect';
|
|
12
12
|
|
|
13
13
|
// Export AITextEditor
|
|
14
14
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
AITextEditorElement,
|
|
16
|
+
defineAITextEditor,
|
|
17
|
+
type AITextEditorConfig,
|
|
18
18
|
} from './AITextEditor';
|
|
19
19
|
|
|
20
20
|
// Export Toast
|
|
21
21
|
export {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
ToastElement,
|
|
23
|
+
defineToast,
|
|
24
|
+
toastAdd,
|
|
25
|
+
type ToastType,
|
|
26
|
+
type ToastButton,
|
|
27
|
+
type ToastConfig,
|
|
28
28
|
} from './Toast';
|
|
29
29
|
|
|
30
|
+
// Export Dialog
|
|
31
|
+
export {
|
|
32
|
+
DialogElement,
|
|
33
|
+
defineDialog,
|
|
34
|
+
dialogAdd,
|
|
35
|
+
type DialogButton,
|
|
36
|
+
type DialogConfig,
|
|
37
|
+
} from './Dialog';
|
|
38
|
+
|
|
30
39
|
// Export PopoverMenu
|
|
31
40
|
export {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
PopoverMenuElement,
|
|
42
|
+
definePopoverMenu,
|
|
43
|
+
type PopoverMenuItem,
|
|
44
|
+
type PopoverMenuConfig,
|
|
36
45
|
} from './PopoverMenu';
|
|
37
46
|
|
|
38
47
|
// Export DateSelector
|
|
39
48
|
export {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
DateSelectorElement,
|
|
50
|
+
defineDateSelector,
|
|
51
|
+
type DateRange,
|
|
43
52
|
} from './DateSelector';
|
|
44
53
|
|
|
45
54
|
// Export TreeView
|
|
46
55
|
export {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
56
|
+
TreeViewElement,
|
|
57
|
+
defineTreeView,
|
|
58
|
+
type TreeNode,
|
|
50
59
|
} from './TreeView';
|
|
51
60
|
|
|
52
61
|
// Export ContainerBox
|
|
53
62
|
export {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
63
|
+
ContainerBoxElement,
|
|
64
|
+
defineContainerBox,
|
|
65
|
+
type MenuPosition,
|
|
66
|
+
type ContainerBoxConfig,
|
|
58
67
|
} from './ContainerBox';
|
|
59
68
|
|
|
60
69
|
// Export Drawer
|
|
61
70
|
export {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
DrawerElement,
|
|
72
|
+
defineDrawer,
|
|
73
|
+
type DrawerDirection,
|
|
74
|
+
type DrawerState,
|
|
75
|
+
type DrawerConfig,
|
|
67
76
|
} from './Drawer';
|
|
68
77
|
|
|
69
78
|
// Export ImageView
|
|
@@ -71,23 +80,77 @@ export * from './ImageView';
|
|
|
71
80
|
|
|
72
81
|
// Export ChunkUploader
|
|
73
82
|
export {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
83
|
+
ChunkUploaderElement,
|
|
84
|
+
defineChunkUploader,
|
|
85
|
+
type UploadedFile,
|
|
86
|
+
type ChunkUploaderConfig,
|
|
78
87
|
} from './ChunkUploader';
|
|
79
88
|
|
|
89
|
+
// Export CheckList
|
|
90
|
+
export {
|
|
91
|
+
CheckListElement,
|
|
92
|
+
defineCheckList,
|
|
93
|
+
type CheckListItem,
|
|
94
|
+
} from './CheckList';
|
|
95
|
+
|
|
96
|
+
// Export ButtonToolbar
|
|
97
|
+
export {
|
|
98
|
+
ButtonToolbarElement,
|
|
99
|
+
defineButtonToolbar,
|
|
100
|
+
type ButtonToolbarItem,
|
|
101
|
+
type ButtonToolbarGroup,
|
|
102
|
+
} from './ButtonToolbar';
|
|
103
|
+
|
|
104
|
+
// Export AIMarkdownEditor
|
|
105
|
+
export {
|
|
106
|
+
AIMarkdownEditorElement,
|
|
107
|
+
defineAIMarkdownEditor,
|
|
108
|
+
} from './AIMarkdownEditor';
|
|
109
|
+
|
|
110
|
+
// Export MarkdownPreview
|
|
111
|
+
export {
|
|
112
|
+
MarkdownPreviewElement,
|
|
113
|
+
defineMarkdownPreview,
|
|
114
|
+
} from './MarkdownPreview';
|
|
115
|
+
|
|
116
|
+
// Export ResizableCropper
|
|
117
|
+
export {
|
|
118
|
+
ResizableCropperElement,
|
|
119
|
+
defineResizableCropper,
|
|
120
|
+
type ResizableCropperState,
|
|
121
|
+
type ResizableCropEventDetail,
|
|
122
|
+
type ResizableCropperValues,
|
|
123
|
+
type ResizableCropperComponentState,
|
|
124
|
+
} from './ResizableCropper';
|
|
125
|
+
|
|
126
|
+
// Export ComicBalloon
|
|
127
|
+
export {
|
|
128
|
+
ComicBalloonElement,
|
|
129
|
+
defineComicBalloon,
|
|
130
|
+
BalloonType,
|
|
131
|
+
type HandlerPosition,
|
|
132
|
+
type ContentChangeEvent,
|
|
133
|
+
type HandlerMoveEvent,
|
|
134
|
+
} from './ComicBalloon';
|
|
135
|
+
|
|
80
136
|
// Convenience function to register all components at once
|
|
81
|
-
export const defineAllComponents = (): void => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
137
|
+
export const defineAllComponents = () : void => {
|
|
138
|
+
if ( typeof window !== 'undefined' ) {
|
|
139
|
+
import( './SmartSelect' ).then( ( { defineSmartSelect } ) => defineSmartSelect() );
|
|
140
|
+
import( './AITextEditor' ).then( ( { defineAITextEditor } ) => defineAITextEditor() );
|
|
141
|
+
import( './AIMarkdownEditor' ).then( ( { defineAIMarkdownEditor } ) => defineAIMarkdownEditor() );
|
|
142
|
+
import( './MarkdownPreview' ).then( ( { defineMarkdownPreview } ) => defineMarkdownPreview() );
|
|
143
|
+
import( './Toast' ).then( ( { defineToast } ) => defineToast() );
|
|
144
|
+
import( './Dialog' ).then( ( { defineDialog } ) => defineDialog() );
|
|
145
|
+
import( './PopoverMenu' ).then( ( { definePopoverMenu } ) => definePopoverMenu() );
|
|
146
|
+
import( './DateSelector' ).then( ( { defineDateSelector } ) => defineDateSelector() );
|
|
147
|
+
import( './TreeView' ).then( ( { defineTreeView } ) => defineTreeView() );
|
|
148
|
+
import( './ContainerBox' ).then( ( { defineContainerBox } ) => defineContainerBox() );
|
|
149
|
+
import( './Drawer' ).then( ( { defineDrawer } ) => defineDrawer() );
|
|
150
|
+
import( './ChunkUploader' ).then( ( { defineChunkUploader } ) => defineChunkUploader() );
|
|
151
|
+
import( './CheckList' ).then( ( { defineCheckList } ) => defineCheckList() );
|
|
152
|
+
import( './ButtonToolbar' ).then( ( { defineButtonToolbar } ) => defineButtonToolbar() );
|
|
153
|
+
import( './ResizableCropper' ).then( ( { defineResizableCropper } ) => defineResizableCropper() );
|
|
154
|
+
import( './ComicBalloon' ).then( ( { defineComicBalloon } ) => defineComicBalloon() );
|
|
155
|
+
}
|
|
93
156
|
};
|