From 22847ad50f05abca4a49e989e1203877db06837a Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 26 Jul 2022 17:02:46 +0300 Subject: [PATCH 1/4] fix: injection warnings --- package.json | 2 +- .../composables/useFlowbiteThemable.ts | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 3913ec0..8bb14b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flowbite-vue", - "version": "0.0.2", + "version": "0.0.3", "repository": "https://github.com/themesberg/flowbite-vue.git", "author": "themesberg", "license": "MIT", diff --git a/src/components/utils/FlowbiteThemable/composables/useFlowbiteThemable.ts b/src/components/utils/FlowbiteThemable/composables/useFlowbiteThemable.ts index a1c2063..f000aca 100644 --- a/src/components/utils/FlowbiteThemable/composables/useFlowbiteThemable.ts +++ b/src/components/utils/FlowbiteThemable/composables/useFlowbiteThemable.ts @@ -1,6 +1,6 @@ import type { FlowbiteTheme } from '../types' import type { Ref } from 'vue' -import { computed, inject } from 'vue' +import { computed, inject, ref } from 'vue' import { FLOWBITE_THEMABLE_INJECTION_KEY } from '../injection/config' type UseFlowbiteThemableReturns = { @@ -65,38 +65,38 @@ const flowbiteThemeClasses: FlowbiteThemes = { export function useFlowbiteThemable(): UseFlowbiteThemableReturns { - const theme = inject>(FLOWBITE_THEMABLE_INJECTION_KEY) + const theme = inject>(FLOWBITE_THEMABLE_INJECTION_KEY, ref(null)) const isActive = computed(() => !!theme?.value) - const color = computed(() => theme?.value) + const color = computed(() => theme?.value || undefined) const backgroundClasses = computed(() => { - if(!theme) return '' + if(!theme.value) return '' return flowbiteThemeClasses[theme.value].background }) const disabledClasses = computed(() => { - if(!theme) return '' + if(!theme.value) return '' return flowbiteThemeClasses[theme.value].disabled }) const hoverClasses = computed(() => { - if(!theme) return '' + if(!theme.value) return '' return flowbiteThemeClasses[theme.value].hover }) const textClasses = computed(() => { - if(!theme) return '' + if(!theme.value) return '' return flowbiteThemeClasses[theme.value].text }) const borderClasses = computed(() => { - if(!theme) return '' + if(!theme.value) return '' return flowbiteThemeClasses[theme.value].border }) const focusClasses = computed(() => { - if(!theme) return '' + if(!theme.value) return '' return flowbiteThemeClasses[theme.value].focus }) From 707facbc961a6e08abde38350f0a548777764e58 Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 26 Jul 2022 17:05:18 +0300 Subject: [PATCH 2/4] fix: injection warnings --- docs/vite.config.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/vite.config.ts diff --git a/docs/vite.config.ts b/docs/vite.config.ts new file mode 100644 index 0000000..36334c4 --- /dev/null +++ b/docs/vite.config.ts @@ -0,0 +1,31 @@ +import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' +import { resolve } from 'path' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': resolve(__dirname, './src'), + }, + }, + build: { + lib: { + entry: resolve(__dirname, './src/index.ts'), + name: 'flowbite-vue', + }, + rollupOptions: { + // make sure to externalize deps that shouldn't be bundled + // into your library + external: ['vue'], + output: { + // Provide global variables to use in the UMD build + // for externalized deps + globals: { + vue: 'Vue', + }, + }, + }, + }, +}) From ba1a458f74e368652aa37c80a84e6e0fe941616a Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 26 Jul 2022 17:07:11 +0300 Subject: [PATCH 3/4] feat: add possibility to use @ alias inside docs --- docs/vite.config.ts | 22 +--------------------- src/components/Button/Button.vue | 2 +- src/components/Tabs/Tabs.vue | 2 +- 3 files changed, 3 insertions(+), 23 deletions(-) diff --git a/docs/vite.config.ts b/docs/vite.config.ts index 36334c4..aa4c280 100644 --- a/docs/vite.config.ts +++ b/docs/vite.config.ts @@ -1,31 +1,11 @@ -import vue from '@vitejs/plugin-vue' import { defineConfig } from 'vite' import { resolve } from 'path' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue()], resolve: { alias: { - '@': resolve(__dirname, './src'), - }, - }, - build: { - lib: { - entry: resolve(__dirname, './src/index.ts'), - name: 'flowbite-vue', - }, - rollupOptions: { - // make sure to externalize deps that shouldn't be bundled - // into your library - external: ['vue'], - output: { - // Provide global variables to use in the UMD build - // for externalized deps - globals: { - vue: 'Vue', - }, - }, + '@': resolve(__dirname, '../src'), // to resolve @ inside docs }, }, }) diff --git a/src/components/Button/Button.vue b/src/components/Button/Button.vue index c26045e..c8c3608 100644 --- a/src/components/Button/Button.vue +++ b/src/components/Button/Button.vue @@ -31,7 +31,7 @@ import type { PropType } from 'vue' import Spinner from '../Spinner/Spinner.vue' import { useButtonClasses } from './composables/useButtonClasses' import { useButtonSpinner } from './composables/useButtonSpinner' -import FlowbiteThemableChild from '../utils/FlowbiteThemable/components/FlowbiteThemableChild/FlowbiteThemableChild.vue' +import FlowbiteThemableChild from '@/components/utils/FlowbiteThemable/components/FlowbiteThemableChild/FlowbiteThemableChild.vue' import type { ButtonGradient, ButtonMonochromeGradient, ButtonSize, ButtonVariant } from './types' const props = defineProps({ diff --git a/src/components/Tabs/Tabs.vue b/src/components/Tabs/Tabs.vue index 8bf2c7c..ce49979 100644 --- a/src/components/Tabs/Tabs.vue +++ b/src/components/Tabs/Tabs.vue @@ -27,7 +27,7 @@ import { import { useTabsClasses } from './composables/useTabsClasses' import type { PropType } from 'vue' import { computed, provide, toRef, useSlots } from 'vue' -import { flatten } from '../../utils/flatten' +import { flatten } from '@/utils/flatten' import TabPane from './components/TabPane/TabPane.vue' import type { TabsVariant } from './types' From 4cca3e63cfd03a96a7d89339cb5b12b4b54fe03d Mon Sep 17 00:00:00 2001 From: Alexandr Date: Tue, 26 Jul 2022 19:13:30 +0300 Subject: [PATCH 4/4] feat: toast component --- README.md | 16 +- docs/.vitepress/config.ts | 2 +- .../toast/examples/ToastClosableExample.vue | 19 +++ .../toast/examples/ToastDivideExample.vue | 19 +++ .../toast/examples/ToastIconExample.vue | 36 ++++ .../examples/ToastInteractiveExample.vue | 20 +++ .../toast/examples/ToastMessageExample.vue | 15 ++ ...{ToastExample.vue => ToastTypeExample.vue} | 5 +- docs/components/toast/toast.md | 159 +++++++++++++++++- src/components/Button/Button.vue | 7 +- src/components/Toast/Toast.vue | 51 ++++-- .../Toast/composables/useToastClasses.ts | 29 ++++ src/components/Toast/types.ts | 1 + .../FlowbiteThemableChild.vue | 7 +- .../useFlowbiteThemableChildClasses.ts | 4 +- .../composables/useFlowbiteThemable.ts | 30 ++-- 16 files changed, 382 insertions(+), 38 deletions(-) create mode 100644 docs/components/toast/examples/ToastClosableExample.vue create mode 100644 docs/components/toast/examples/ToastDivideExample.vue create mode 100644 docs/components/toast/examples/ToastIconExample.vue create mode 100644 docs/components/toast/examples/ToastInteractiveExample.vue create mode 100644 docs/components/toast/examples/ToastMessageExample.vue rename docs/components/toast/examples/{ToastExample.vue => ToastTypeExample.vue} (70%) diff --git a/README.md b/README.md index a195326..9736ccb 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ module.exports = { - + Tailwind CSS Alerts @@ -111,12 +111,12 @@ module.exports = { - + Tailwind CSS Buttons - + Tailwind CSS Button Group @@ -133,7 +133,7 @@ module.exports = { - + Tailwind CSS Dropdown @@ -143,7 +143,7 @@ module.exports = { - + Tailwind CSS List group @@ -165,7 +165,7 @@ module.exports = { - + Tailwind CSS Tabs @@ -195,7 +195,7 @@ module.exports = { :construction: Progress bar :construction: Tables - :construction: Toast + Toast @@ -209,7 +209,7 @@ module.exports = { - + Tailwind CSS Toast diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 8818810..d686abb 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -34,6 +34,7 @@ function getComponents() { { text: 'Spinner', link: '/components/spinner/spinner.md' }, { text: 'Tabs', link: '/components/tabs/tabs.md' }, { text: 'ListGroup', link: 'components/listGroup/listGroup.md' }, + { text: 'Toast', link: 'components/toast/toast.md' }, { text: '- Accordion', link: 'components/accordion/accordion.md' }, { text: '- Avatar', link: 'components/avatar/avatar.md' }, @@ -50,7 +51,6 @@ function getComponents() { { text: '- Sidebar', link: 'components/sidebar/sidebar.md' }, { text: '- Table', link: 'components/table/table.md' }, { text: '- Timeline', link: 'components/timeline/timeline.md' }, - { text: '- Toast', link: 'components/toast/toast.md' }, { text: '- Tooltip', link: 'components/tooltip/tooltip.md' }, ] } diff --git a/docs/components/toast/examples/ToastClosableExample.vue b/docs/components/toast/examples/ToastClosableExample.vue new file mode 100644 index 0000000..9c34729 --- /dev/null +++ b/docs/components/toast/examples/ToastClosableExample.vue @@ -0,0 +1,19 @@ + + diff --git a/docs/components/toast/examples/ToastDivideExample.vue b/docs/components/toast/examples/ToastDivideExample.vue new file mode 100644 index 0000000..18cfdd1 --- /dev/null +++ b/docs/components/toast/examples/ToastDivideExample.vue @@ -0,0 +1,19 @@ + + diff --git a/docs/components/toast/examples/ToastIconExample.vue b/docs/components/toast/examples/ToastIconExample.vue new file mode 100644 index 0000000..9ab3f81 --- /dev/null +++ b/docs/components/toast/examples/ToastIconExample.vue @@ -0,0 +1,36 @@ + + diff --git a/docs/components/toast/examples/ToastInteractiveExample.vue b/docs/components/toast/examples/ToastInteractiveExample.vue new file mode 100644 index 0000000..a26f486 --- /dev/null +++ b/docs/components/toast/examples/ToastInteractiveExample.vue @@ -0,0 +1,20 @@ + + diff --git a/docs/components/toast/examples/ToastMessageExample.vue b/docs/components/toast/examples/ToastMessageExample.vue new file mode 100644 index 0000000..52a67be --- /dev/null +++ b/docs/components/toast/examples/ToastMessageExample.vue @@ -0,0 +1,15 @@ + + diff --git a/docs/components/toast/examples/ToastExample.vue b/docs/components/toast/examples/ToastTypeExample.vue similarity index 70% rename from docs/components/toast/examples/ToastExample.vue rename to docs/components/toast/examples/ToastTypeExample.vue index 91f1323..3ff32ed 100644 --- a/docs/components/toast/examples/ToastExample.vue +++ b/docs/components/toast/examples/ToastTypeExample.vue @@ -1,5 +1,8 @@