@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.
Files changed (56) hide show
  1. package/dist/AIMarkdownEditor.d.ts +35 -0
  2. package/dist/AIMarkdownEditor.d.ts.map +1 -0
  3. package/dist/AIMarkdownEditor.js +412 -0
  4. package/dist/AIMarkdownEditor.js.map +1 -0
  5. package/dist/AITextEditor.d.ts +10 -0
  6. package/dist/AITextEditor.d.ts.map +1 -1
  7. package/dist/AITextEditor.js +63 -27
  8. package/dist/AITextEditor.js.map +1 -1
  9. package/dist/ButtonToolbar.d.ts +35 -0
  10. package/dist/ButtonToolbar.d.ts.map +1 -0
  11. package/dist/ButtonToolbar.js +220 -0
  12. package/dist/ButtonToolbar.js.map +1 -0
  13. package/dist/CheckList.d.ts +31 -0
  14. package/dist/CheckList.d.ts.map +1 -0
  15. package/dist/CheckList.js +336 -0
  16. package/dist/CheckList.js.map +1 -0
  17. package/dist/ChunkUploader.d.ts +22 -0
  18. package/dist/ChunkUploader.d.ts.map +1 -1
  19. package/dist/ChunkUploader.js +245 -103
  20. package/dist/ChunkUploader.js.map +1 -1
  21. package/dist/ComicBalloon.d.ts +82 -0
  22. package/dist/ComicBalloon.d.ts.map +1 -0
  23. package/dist/ComicBalloon.js +346 -0
  24. package/dist/ComicBalloon.js.map +1 -0
  25. package/dist/Dialog.d.ts +102 -0
  26. package/dist/Dialog.d.ts.map +1 -0
  27. package/dist/Dialog.js +299 -0
  28. package/dist/Dialog.js.map +1 -0
  29. package/dist/MarkdownPreview.d.ts +25 -0
  30. package/dist/MarkdownPreview.d.ts.map +1 -0
  31. package/dist/MarkdownPreview.js +147 -0
  32. package/dist/MarkdownPreview.js.map +1 -0
  33. package/dist/ResizableCropper.d.ts +158 -0
  34. package/dist/ResizableCropper.d.ts.map +1 -0
  35. package/dist/ResizableCropper.js +562 -0
  36. package/dist/ResizableCropper.js.map +1 -0
  37. package/dist/SmartSelect.d.ts +1 -0
  38. package/dist/SmartSelect.d.ts.map +1 -1
  39. package/dist/SmartSelect.js +45 -2
  40. package/dist/SmartSelect.js.map +1 -1
  41. package/dist/index.d.ts +16 -9
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +52 -29
  44. package/dist/index.js.map +1 -1
  45. package/package.json +33 -3
  46. package/src/AIMarkdownEditor.ts +568 -0
  47. package/src/AITextEditor.ts +97 -2
  48. package/src/ButtonToolbar.ts +302 -0
  49. package/src/CheckList.ts +438 -0
  50. package/src/ChunkUploader.ts +837 -623
  51. package/src/ComicBalloon.ts +709 -0
  52. package/src/Dialog.ts +510 -0
  53. package/src/MarkdownPreview.ts +213 -0
  54. package/src/ResizableCropper.ts +1099 -0
  55. package/src/SmartSelect.ts +48 -2
  56. package/src/index.ts +110 -47
@@ -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
- : `<span>${ displayText }</span>`
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
- ${ option.label }
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
- SmartSelectElement,
9
- defineSmartSelect,
10
- type SelectOption
8
+ SmartSelectElement,
9
+ defineSmartSelect,
10
+ type SelectOption,
11
11
  } from './SmartSelect';
12
12
 
13
13
  // Export AITextEditor
14
14
  export {
15
- AITextEditorElement,
16
- defineAITextEditor,
17
- type AITextEditorConfig
15
+ AITextEditorElement,
16
+ defineAITextEditor,
17
+ type AITextEditorConfig,
18
18
  } from './AITextEditor';
19
19
 
20
20
  // Export Toast
21
21
  export {
22
- ToastElement,
23
- defineToast,
24
- toastAdd,
25
- type ToastType,
26
- type ToastButton,
27
- type ToastConfig
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
- PopoverMenuElement,
33
- definePopoverMenu,
34
- type PopoverMenuItem,
35
- type PopoverMenuConfig
41
+ PopoverMenuElement,
42
+ definePopoverMenu,
43
+ type PopoverMenuItem,
44
+ type PopoverMenuConfig,
36
45
  } from './PopoverMenu';
37
46
 
38
47
  // Export DateSelector
39
48
  export {
40
- DateSelectorElement,
41
- defineDateSelector,
42
- type DateRange
49
+ DateSelectorElement,
50
+ defineDateSelector,
51
+ type DateRange,
43
52
  } from './DateSelector';
44
53
 
45
54
  // Export TreeView
46
55
  export {
47
- TreeViewElement,
48
- defineTreeView,
49
- type TreeNode
56
+ TreeViewElement,
57
+ defineTreeView,
58
+ type TreeNode,
50
59
  } from './TreeView';
51
60
 
52
61
  // Export ContainerBox
53
62
  export {
54
- ContainerBoxElement,
55
- defineContainerBox,
56
- type MenuPosition,
57
- type ContainerBoxConfig
63
+ ContainerBoxElement,
64
+ defineContainerBox,
65
+ type MenuPosition,
66
+ type ContainerBoxConfig,
58
67
  } from './ContainerBox';
59
68
 
60
69
  // Export Drawer
61
70
  export {
62
- DrawerElement,
63
- defineDrawer,
64
- type DrawerDirection,
65
- type DrawerState,
66
- type DrawerConfig
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
- ChunkUploaderElement,
75
- defineChunkUploader,
76
- type UploadedFile,
77
- type ChunkUploaderConfig
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
- if ( typeof window !== 'undefined' ) {
83
- import( './SmartSelect' ).then( ( { defineSmartSelect } ) => defineSmartSelect() );
84
- import( './AITextEditor' ).then( ( { defineAITextEditor } ) => defineAITextEditor() );
85
- import( './Toast' ).then( ( { defineToast } ) => defineToast() );
86
- import( './PopoverMenu' ).then( ( { definePopoverMenu } ) => definePopoverMenu() );
87
- import( './DateSelector' ).then( ( { defineDateSelector } ) => defineDateSelector() );
88
- import( './TreeView' ).then( ( { defineTreeView } ) => defineTreeView() );
89
- import( './ContainerBox' ).then( ( { defineContainerBox } ) => defineContainerBox() );
90
- import( './Drawer' ).then( ( { defineDrawer } ) => defineDrawer() );
91
- import( './ChunkUploader' ).then( ( { defineChunkUploader } ) => defineChunkUploader() );
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
  };