Skip to content

Commit fe7a731

Browse files
authored
Merge pull request #202 from vernu/fix-vue-component-exports
fix vue components import issue
2 parents 38b233e + 73acae4 commit fe7a731

File tree

3 files changed

+195
-3
lines changed

3 files changed

+195
-3
lines changed

libs/vue/package.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,17 @@
22
"name": "@swarmakit/vue",
33
"private": false,
44
"version": "0.0.10",
5-
65
"type": "module",
6+
"main": "./dist/index.umd.cjs",
7+
"module": "./dist/index.js",
8+
"types": "./dist/index.d.ts",
9+
"exports": {
10+
".": {
11+
"import": "./dist/index.js",
12+
"require": "./dist/index.umd.cjs",
13+
"types": "./dist/index.d.ts"
14+
}
15+
},
716
"scripts": {
817
"dev": "vite",
918
"build": "vue-tsc -b && vite build",
@@ -13,6 +22,7 @@
1322
},
1423
"dependencies": {
1524
"quill": "^2.0.2",
25+
"vite-plugin-dts": "^4.3.0",
1626
"vue": "^3.5.10"
1727
},
1828
"devDependencies": {
@@ -25,6 +35,7 @@
2535
"@storybook/test": "^8.3.5",
2636
"@storybook/vue3": "^8.3.5",
2737
"@storybook/vue3-vite": "^8.3.5",
38+
"@types/node": "^22.10.1",
2839
"@types/quill": "^2.0.14",
2940
"@vitejs/plugin-vue": "^5.1.4",
3041
"storybook": "^8.3.5",

libs/vue/src/index.ts

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
export { default as ThreeSixtyDegreeImageViewer } from './components/360-DegreeImageViewer/360-DegreeImageViewer.vue';
2+
export { default as Accordion } from './components/Accordion/Accordion.vue';
3+
export { default as ActionableList } from './components/ActionableList/ActionableList.vue';
4+
export { default as ActivityIndicators } from './components/ActivityIndicators/ActivityIndicators.vue';
5+
export { default as AdminViewScheduler } from './components/AdminViewScheduler/AdminViewScheduler.vue';
6+
export { default as AudioPlayer } from './components/AudioPlayer/AudioPlayer.vue';
7+
export { default as AudioPlayerAdvanced } from './components/AudioPlayerAdvanced/AudioPlayerAdvanced.vue';
8+
export { default as AudioWaveformDisplay } from './components/AudioWaveformDisplay/AudioWaveformDisplay.vue';
9+
export { default as Avatar } from './components/Avatar/Avatar.vue';
10+
export { default as Badge } from './components/Badge/Badge.vue';
11+
export { default as BadgeWithCounts } from './components/BadgeWithCounts/BadgeWithCounts.vue';
12+
export { default as BatteryLevelIndicator } from './components/BatteryLevelIndicator/BatteryLevelIndicator.vue';
13+
export { default as BetSlider } from './components/BetSlider/BetSlider.vue';
14+
export { default as BottomNavigationBar } from './components/BottomNavigationBar/BottomNavigationBar.vue';
15+
export { default as BreadcrumbWithDropdowns } from './components/BreadcrumbWithDropdowns/BreadcrumbWithDropdowns.vue';
16+
export { default as Breadcrumbs } from './components/Breadcrumbs/Breadcrumbs.vue';
17+
export { default as BrushTool } from './components/BrushTool/BrushTool.vue';
18+
export { default as Button } from './components/Button/Button.vue';
19+
export { default as CalendarView } from './components/CalendarView/CalendarView.vue';
20+
export { default as CallButton } from './components/CallButton/CallButton.vue';
21+
export { default as Canvas } from './components/Canvas/Canvas.vue';
22+
export { default as Captcha } from './components/Captcha/Captcha.vue';
23+
export { default as CardActions } from './components/CardActions/CardActions.vue';
24+
export { default as CardBadge } from './components/CardBadge/CardBadge.vue';
25+
export { default as CardBody } from './components/CardBody/CardBody.vue';
26+
export { default as CardFooter } from './components/CardFooter/CardFooter.vue';
27+
export { default as CardHeader } from './components/CardHeader/CardHeader.vue';
28+
export { default as CardImage } from './components/CardImage/CardImage.vue';
29+
export { default as CardbasedList } from './components/CardbasedList/CardbasedList.vue';
30+
export { default as Carousel } from './components/Carousel/Carousel.vue';
31+
export { default as ChatBubble } from './components/ChatBubble/ChatBubble.vue';
32+
export { default as CheckList } from './components/CheckList/CheckList.vue';
33+
export { default as Checkbox } from './components/Checkbox/Checkbox.vue';
34+
export { default as Chips } from './components/Chips/Chips.vue';
35+
export { default as CollapsibleMenuList } from './components/CollapsibleMenuList/CollapsibleMenuList.vue';
36+
export { default as ColorPicker } from './components/ColorPicker/ColorPicker.vue';
37+
export { default as ColumnVisibilityToggle } from './components/ColumnVisibilityToggle/ColumnVisibilityToggle.vue';
38+
export { default as CommandPalette } from './components/CommandPalette/CommandPalette.vue';
39+
export { default as CommunityCards } from './components/CommunityCards/CommunityCards.vue';
40+
export { default as ContextualList } from './components/ContextualList/ContextualList.vue';
41+
export { default as ContextualNavigation } from './components/ContextualNavigation/ContextualNavigation.vue';
42+
export { default as CountdownTimer } from './components/CountdownTimer/CountdownTimer.vue';
43+
export { default as DarkModeToggle } from './components/DarkModeToggle/DarkModeToggle.vue';
44+
export { default as DataExportButton } from './components/DataExportButton/DataExportButton.vue';
45+
export { default as DataFilterPanel } from './components/DataFilterPanel/DataFilterPanel.vue';
46+
export { default as DataGrid } from './components/DataGrid/DataGrid.vue';
47+
export { default as DataImportDialog } from './components/DataImportDialog/DataImportDialog.vue';
48+
export { default as DataSummary } from './components/DataSummary/DataSummary.vue';
49+
export { default as DataTable } from './components/DataTable/DataTable.vue';
50+
export { default as DateAndTimePicker } from './components/DateAndTimePicker/DateAndTimePicker.vue';
51+
export { default as DatePicker } from './components/DatePicker/DatePicker.vue';
52+
export { default as DealerButton } from './components/DealerButton/DealerButton.vue';
53+
export { default as DeckOfCards } from './components/DeckOfCards/DeckOfCards.vue';
54+
export { default as DiscardPile } from './components/DiscardPile/DiscardPile.vue';
55+
export { default as DragAndDropScheduler } from './components/DragAndDropScheduler/DragAndDropScheduler.vue';
56+
export { default as DropdownMenu } from './components/DropdownMenu/DropdownMenu.vue';
57+
export { default as EditableDataTable } from './components/EditableDataTable/EditableDataTable.vue';
58+
export { default as EmbeddedMediaIframe } from './components/EmbeddedMediaIframe/EmbeddedMediaIframe.vue';
59+
export { default as EmojiReactionPoll } from './components/EmojiReactionPoll/EmojiReactionPoll.vue';
60+
export { default as EraserTool } from './components/EraserTool/EraserTool.vue';
61+
export { default as EventDetailsDialog } from './components/EventDetailsDialog/EventDetailsDialog.vue';
62+
export { default as EventFilterBar } from './components/EventFilterBar/EventFilterBar.vue';
63+
export { default as EventReminderSystem } from './components/EventReminderSystem/EventReminderSystem.vue';
64+
export { default as ExpandableList } from './components/ExpandableList/ExpandableList.vue';
65+
export { default as FavoritesList } from './components/FavoritesList/FavoritesList.vue';
66+
export { default as FieldEditableDataTable } from './components/FieldEditableDataTable/FieldEditableDataTable.vue';
67+
export { default as FileInputWithPreview } from './components/FileInputWithPreview/FileInputWithPreview.vue';
68+
export { default as FileUpload } from './components/FileUpload/FileUpload.vue';
69+
export { default as FillTool } from './components/FillTool/FillTool.vue';
70+
export { default as FilterableList } from './components/FilterableList/FilterableList.vue';
71+
export { default as FlipCard } from './components/FlipCard/FlipCard.vue';
72+
export { default as FloatingActionButton } from './components/FloatingActionButton/FloatingActionButton.vue';
73+
export { default as FoldButton } from './components/FoldButton/FoldButton.vue';
74+
export { default as GroupedList } from './components/GroupedList/GroupedList.vue';
75+
export { default as HandOfCards } from './components/HandOfCards/HandOfCards.vue';
76+
export { default as IconButton } from './components/IconButton/IconButton.vue';
77+
export { default as ImageChoicePoll } from './components/ImageChoicePoll/ImageChoicePoll.vue';
78+
export { default as ImageSlider } from './components/ImageSlider/ImageSlider.vue';
79+
export { default as InteractiveMediaMap } from './components/InteractiveMediaMap/InteractiveMediaMap.vue';
80+
export { default as InteractivePollResults } from './components/InteractivePollResults/InteractivePollResults.vue';
81+
export { default as LayerPanel } from './components/LayerPanel/LayerPanel.vue';
82+
export { default as LiveResultsPoll } from './components/LiveResultsPoll/LiveResultsPoll.vue';
83+
export { default as LiveStreamPlayer } from './components/LiveStreamPlayer/LiveStreamPlayer.vue';
84+
export { default as LoadMoreButtonInList } from './components/LoadMoreButtonInList/LoadMoreButtonInList.vue';
85+
export { default as LoadingBarsWithSteps } from './components/LoadingBarsWithSteps/LoadingBarsWithSteps.vue';
86+
export { default as LoadingSpinner } from './components/LoadingSpinner/LoadingSpinner.vue';
87+
export { default as MediaGallery } from './components/MediaGallery/MediaGallery.vue';
88+
// export all remaining components here
89+
export { default as MultipleChoicePoll } from './components/MultipleChoicePoll/MultipleChoicePoll.vue';
90+
export { default as MultiselectList } from './components/MultiselectList/MultiselectList.vue';
91+
export { default as Notification } from './components/Notification/Notification.vue';
92+
export { default as NotificationBellIcon } from './components/NotificationBellIcon/NotificationBellIcon.vue';
93+
export { default as NumberInputWithIncrement } from './components/NumberInputWithIncrement/NumberInputWithIncrement.vue';
94+
export { default as NumberedList } from './components/NumberedList/NumberedList.vue';
95+
export { default as OpenEndedPoll } from './components/OpenEndedPoll/OpenEndedPoll.vue';
96+
export { default as Pagination } from './components/Pagination/Pagination.vue';
97+
export { default as PaginationControl } from './components/PaginationControl/PaginationControl.vue';
98+
export { default as PasswordConfirmationField } from './components/PasswordConfirmationField/PasswordConfirmationField.vue';
99+
export { default as PinnedList } from './components/PinnedList/PinnedList.vue';
100+
export { default as PlayingCard } from './components/PlayingCard/PlayingCard.vue';
101+
export { default as PodcastPlayer } from './components/PodcastPlayer/PodcastPlayer.vue';
102+
export { default as PokerChips } from './components/PokerChips/PokerChips.vue';
103+
export { default as PokerHand } from './components/PokerHand/PokerHand.vue';
104+
export { default as PokerTable } from './components/PokerTable/PokerTable.vue';
105+
export { default as PokerTimer } from './components/PokerTimer/PokerTimer.vue';
106+
export { default as Pot } from './components/Pot/Pot.vue';
107+
export { default as ProgressBar } from './components/ProgressBar/ProgressBar.vue';
108+
export { default as ProgressCircle } from './components/ProgressCircle/ProgressCircle.vue';
109+
export { default as PublicViewCalendar } from './components/PublicViewCalendar/PublicViewCalendar.vue';
110+
export { default as RadioButton } from './components/RadioButton/RadioButton.vue';
111+
export { default as RaiseButton } from './components/RaiseButton/RaiseButton.vue';
112+
export { default as RangeSlider } from './components/RangeSlider/RangeSlider.vue';
113+
export { default as RankingPoll } from './components/RankingPoll/RankingPoll.vue';
114+
export { default as RatingStars } from './components/RatingStars/RatingStars.vue';
115+
export { default as RecurringEventScheduler } from './components/RecurringEventScheduler/RecurringEventScheduler.vue';
116+
export { default as RichTextEditor } from './components/RichTextEditor/RichTextEditor.vue';
117+
export { default as RulerAndGuides } from './components/RulerAndGuides/RulerAndGuides.vue';
118+
export { default as ScheduleCRUDPanel } from './components/ScheduleCRUDPanel/ScheduleCRUDPanel.vue';
119+
export { default as ScrollableList } from './components/ScrollableList/ScrollableList.vue';
120+
export { default as SearchBar } from './components/SearchBar/SearchBar.vue';
121+
export { default as SearchBarWithSuggestions } from './components/SearchBarWithSuggestions/SearchBarWithSuggestions.vue';
122+
export { default as SearchInputWithFilterOptions } from './components/SearchInputWithFilterOptions/SearchInputWithFilterOptions.vue';
123+
export { default as SearchWithAutocomplete } from './components/SearchWithAutocomplete/SearchWithAutocomplete.vue';
124+
export { default as SelectableListWithItemDetails } from './components/SelectableListWithItemDetails/SelectableListWithItemDetails.vue';
125+
export { default as ShapeLibrary } from './components/ShapeLibrary/ShapeLibrary.vue';
126+
export { default as ShapeTool } from './components/ShapeTool/ShapeTool.vue';
127+
export { default as SignalStrengthIndicator } from './components/SignalStrengthIndicator/SignalStrengthIndicator.vue';
128+
export { default as SingleChoicePoll } from './components/SingleChoicePoll/SingleChoicePoll.vue';
129+
export { default as SkeletonLoading } from './components/SkeletonLoading/SkeletonLoading.vue';
130+
export { default as Slider } from './components/Slider/Slider.vue';
131+
export { default as SliderPoll } from './components/SliderPoll/SliderPoll.vue';
132+
export { default as SortControl } from './components/SortControl/SortControl.vue';
133+
export { default as SortableList } from './components/SortableList/SortableList.vue';
134+
export { default as SortableTable } from './components/SortableTable/SortableTable.vue';
135+
export { default as StarRatingPoll } from './components/StarRatingPoll/StarRatingPoll.vue';
136+
export { default as StatusDots } from './components/StatusDots/StatusDots.vue';
137+
export { default as Stepper } from './components/Stepper/Stepper.vue';
138+
export { default as SystemAlertGlobalNotificationBar } from './components/SystemAlertGlobalNotificationBar/SystemAlertGlobalNotificationBar.vue';
139+
export { default as Tabs } from './components/Tabs/Tabs.vue';
140+
export { default as TaskCompletionCheckList } from './components/TaskCompletionCheckList/TaskCompletionCheckList.vue';
141+
export { default as TextTool } from './components/TextTool/TextTool.vue';
142+
export { default as Textarea } from './components/Textarea/Textarea.vue';
143+
export { default as ThumbsUpThumbsDownPoll } from './components/ThumbsUpThumbsDownPoll/ThumbsUpThumbsDownPoll.vue';
144+
export { default as TimelineAdjuster } from './components/TimelineAdjuster/TimelineAdjuster.vue';
145+
export { default as TimelineList } from './components/TimelineList/TimelineList.vue';
146+
export { default as Toast } from './components/Toast/Toast.vue';
147+
export { default as ToggleSwitch } from './components/ToggleSwitch/ToggleSwitch.vue';
148+
export { default as TreeviewList } from './components/TreeviewList/TreeviewList.vue';
149+
export { default as UndoRedoButtons } from './components/UndoRedoButtons/UndoRedoButtons.vue';
150+
export { default as Upload } from './components/Upload/Upload.vue';
151+
export { default as ValidationMessages } from './components/ValidationMessages/ValidationMessages.vue';
152+
export { default as Video } from './components/Video/Video.vue';
153+
export { default as VideoPlayer } from './components/VideoPlayer/VideoPlayer.vue';
154+
export { default as VirtualizedList } from './components/VirtualizedList/VirtualizedList.vue';
155+
export { default as VisualCueForAccessibilityFocusIndicator } from './components/VisualCueForAccessibilityFocusIndicator/VisualCueForAccessibilityFocusIndicator.vue';
156+
export { default as WinningHandDisplay } from './components/WinningHandDisplay/WinningHandDisplay.vue';
157+
export { default as YesNoPoll } from './components/YesNoPoll/YesNoPoll.vue';
158+
export { default as ZoomTool } from './components/ZoomTool/ZoomTool.vue';

libs/vue/vite.config.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
11
import { defineConfig } from 'vite'
22
import vue from '@vitejs/plugin-vue'
3+
import { resolve } from 'path';
4+
import dts from 'vite-plugin-dts';
35

46
// https://vitejs.dev/config/
57
export default defineConfig({
6-
plugins: [vue()],
7-
})
8+
plugins: [
9+
vue(),
10+
dts({
11+
insertTypesEntry: true,
12+
}),
13+
],
14+
build: {
15+
lib: {
16+
entry: resolve(__dirname, 'src/index.ts'),
17+
name: 'SwarmakitVue',
18+
formats: ['es', 'umd'],
19+
fileName: (format) => `index.${format === 'es' ? 'js' : 'umd.cjs'}`,
20+
},
21+
rollupOptions: {
22+
external: ['vue'],
23+
output: {
24+
globals: {
25+
vue: 'Vue',
26+
},
27+
},
28+
},
29+
},
30+
});

0 commit comments

Comments
 (0)