daisy-ui-kit 1.0.8 → 2.0.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.
- package/components/Accordion.vue +16 -0
- package/components/Alert.vue +6 -8
- package/components/Artboard.vue +1 -1
- package/components/Avatar.vue +8 -23
- package/components/Badge.vue +5 -0
- package/components/BottomNav.vue +2 -4
- package/components/Button.vue +12 -4
- package/components/Card.vue +1 -1
- package/components/Chat.vue +27 -0
- package/components/ChatBubble.vue +34 -0
- package/components/ChatFooter.vue +5 -0
- package/components/ChatHeader.vue +5 -0
- package/components/ChatImage.vue +5 -0
- package/components/Checkbox.vue +12 -4
- package/components/Code.vue +2 -1
- package/components/CodeWrapper.vue +2 -2
- package/components/Collapse.vue +30 -8
- package/components/CountdownTimers.vue +8 -3
- package/components/Divider.vue +1 -1
- package/components/Drawer.vue +35 -11
- package/components/DrawerContent.vue +15 -0
- package/components/DrawerSide.vue +16 -0
- package/components/Dropdown.vue +56 -7
- package/components/DropdownContent.vue +3 -1
- package/components/DropdownTarget.vue +5 -0
- package/components/FileInput.vue +60 -0
- package/components/Flex.vue +3 -89
- package/components/FlexItem.vue +4 -90
- package/components/Footer.vue +1 -1
- package/components/FooterTitle.vue +1 -2
- package/components/Home/AlternatingFeatureSections.vue +10 -12
- package/components/Home/BitoviConsulting.vue +1 -1
- package/components/Home/BitoviOpenSource.vue +5 -5
- package/components/Home/Footer.vue +7 -6
- package/components/Home/GradientFeatureSections.vue +9 -9
- package/components/Home/Header.vue +10 -16
- package/components/Home/Hero.vue +4 -4
- package/components/Home/Testimonial.vue +1 -1
- package/components/{ButtonGroup.vue → Join.vue} +1 -1
- package/components/Link.vue +13 -6
- package/components/LoadingBall.vue +41 -0
- package/components/LoadingBars.vue +41 -0
- package/components/LoadingDots.vue +41 -0
- package/components/LoadingInfinity.vue +41 -0
- package/components/LoadingRing.vue +41 -0
- package/components/LoadingSpinner.vue +41 -0
- package/components/Mask.config.ts +2 -2
- package/components/Menu.vue +14 -6
- package/components/MenuItem.vue +11 -3
- package/components/MenuTitle.vue +1 -10
- package/components/Modal.vue +28 -7
- package/components/Progress.vue +1 -2
- package/components/Prose.vue +6 -8
- package/components/Radio.vue +14 -2
- package/components/RadioGroup.vue +5 -0
- package/components/Range.vue +14 -2
- package/components/RangeMeasure.vue +23 -11
- package/components/RangeMeasureTick.vue +19 -7
- package/components/Rating.vue +52 -36
- package/components/Select.vue +14 -14
- package/components/Step.vue +2 -2
- package/components/Tab.vue +3 -4
- package/components/TabContent.vue +1 -1
- package/components/Tabs.vue +2 -2
- package/components/Text.vue +4 -1
- package/components/TextArea.vue +13 -1
- package/components/TextInput.vue +5 -2
- package/components/Toggle.vue +13 -1
- package/components/content/Badge.ts +3 -0
- package/components/content/ColorBadge.vue +24 -0
- package/components/{DemoExample.vue → content/DemoExample.vue} +1 -1
- package/components/content/DemoExampleResponsive.vue +59 -0
- package/components/content/IframeRenderer.ts +53 -0
- package/components/content/Indent.vue +3 -0
- package/components/content/LocalLinks.vue +31 -0
- package/components/content/NotFound.vue +42 -0
- package/components/content/PageNext.vue +24 -0
- package/components/content/PagePrevious.vue +24 -0
- package/components/content/PrevNext.vue +40 -0
- package/components/content/ProseA.vue +19 -0
- package/components/content/ProseAlert.vue +11 -0
- package/components/content/ProseBlockquote.vue +5 -0
- package/components/content/ProseCode.vue +62 -0
- package/components/content/ProseCodeInline.vue +3 -0
- package/components/content/ProseEm.vue +5 -0
- package/components/content/ProseH1.vue +16 -0
- package/components/content/ProseH2.vue +16 -0
- package/components/content/ProseH3.vue +16 -0
- package/components/content/ProseH4.vue +16 -0
- package/components/content/ProseH5.vue +16 -0
- package/components/content/ProseH6.vue +16 -0
- package/components/content/ProseHr.vue +3 -0
- package/components/content/ProseImg.vue +34 -0
- package/components/content/ProseLi.vue +3 -0
- package/components/content/ProseOl.vue +5 -0
- package/components/content/ProseP.vue +3 -0
- package/components/content/ProseStrong.vue +5 -0
- package/components/content/ProseTable.vue +7 -0
- package/components/content/ProseTbody.vue +5 -0
- package/components/content/ProseTd.vue +5 -0
- package/components/content/ProseTh.vue +5 -0
- package/components/content/ProseThead.vue +5 -0
- package/components/content/ProseTr.vue +5 -0
- package/components/content/ProseUl.vue +5 -0
- package/components/content/Search.vue +160 -0
- package/components/content/Sidebar.vue +65 -0
- package/components/{SidebarMenuSection.vue → content/SidebarMenuSection.vue} +11 -6
- package/components/content/TableOfContents.vue +80 -0
- package/components/content/TypeBadge.vue +17 -0
- package/components/theme/Picker.vue +2 -2
- package/components/theme/Preview.vue +1 -1
- package/components/theme/theme-utils.ts +15 -4
- package/index.ts +105 -96
- package/package.json +27 -24
- package/components/-utils.ts +0 -41
- package/components/Button.config.ts +0 -26
- package/components/DemoElement.vue +0 -32
- package/components/DrawerLayout.vue +0 -37
- package/components/DrawerLayoutContent.vue +0 -19
- package/components/InputGroup.vue +0 -33
- package/components/MobileSidebar.vue +0 -88
- package/components/ModalWrapper.vue +0 -32
- package/components/Sidebar.vue +0 -89
- package/components/drawer-utils.ts +0 -10
- package/components/fixtures.ts +0 -62
- package/components/types.ts +0 -7
- /package/components/{CodePreview.vue → content/CodePreview.vue} +0 -0
- /package/components/{SigninForm.vue → content/SigninForm.vue} +0 -0
- /package/components/{UserMenu.vue → content/UserMenu.vue} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "daisy-ui-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "nuxi build",
|
|
@@ -19,42 +19,45 @@
|
|
|
19
19
|
"nuxt.js"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@vueuse/core": "^
|
|
22
|
+
"@vueuse/core": "^10.2.0",
|
|
23
23
|
"prismjs": "^1.29.0"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"daisyui": "^
|
|
26
|
+
"daisyui": "^3"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@antfu/eslint-config": "^0.
|
|
30
|
-
"@headlessui/vue": "^1.7.
|
|
31
|
-
"@heroicons/vue": "^2.0.
|
|
32
|
-
"@iconify/json": "^2.2.
|
|
29
|
+
"@antfu/eslint-config": "^0.39.5",
|
|
30
|
+
"@headlessui/vue": "^1.7.14",
|
|
31
|
+
"@heroicons/vue": "^2.0.18",
|
|
32
|
+
"@iconify/json": "^2.2.82",
|
|
33
|
+
"@nuxt/content": "^2.7.0",
|
|
33
34
|
"@nuxt/kit": "@nuxt/kit",
|
|
34
|
-
"@nuxtjs/color-mode": "^3.
|
|
35
|
-
"@nuxtjs/tailwindcss": "^6.
|
|
36
|
-
"@pinia/nuxt": "^0.4.
|
|
37
|
-
"@popperjs/core": "^2.11.
|
|
35
|
+
"@nuxtjs/color-mode": "^3.3.0",
|
|
36
|
+
"@nuxtjs/tailwindcss": "^6.8.0",
|
|
37
|
+
"@pinia/nuxt": "^0.4.11",
|
|
38
|
+
"@popperjs/core": "^2.11.8",
|
|
38
39
|
"@rovit/popper": "^3.9.0",
|
|
39
40
|
"@tailwindcss/aspect-ratio": "^0.4.2",
|
|
40
41
|
"@tailwindcss/forms": "^0.5.3",
|
|
41
|
-
"@tailwindcss/line-clamp": "^0.4.
|
|
42
|
+
"@tailwindcss/line-clamp": "^0.4.4",
|
|
42
43
|
"@tailwindcss/typography": "^0.5.9",
|
|
43
|
-
"@vueuse/
|
|
44
|
+
"@vueuse/integrations": "^10.2.1",
|
|
45
|
+
"@vueuse/nuxt": "^10.2.0",
|
|
44
46
|
"autoprefixer": "^10.4.14",
|
|
45
47
|
"cookie": "^0.5.0",
|
|
46
|
-
"daisyui": "^
|
|
47
|
-
"eslint": "^8.
|
|
48
|
-
"feathers-pinia": "^0.
|
|
48
|
+
"daisyui": "^3.1.6",
|
|
49
|
+
"eslint": "^8.43.0",
|
|
50
|
+
"feathers-pinia": "^3.0.4",
|
|
51
|
+
"fuse.js": "^6.6.2",
|
|
49
52
|
"mobile-detect": "^1.4.5",
|
|
50
|
-
"nuxt": "^3.
|
|
51
|
-
"nuxt-icon": "^0.
|
|
53
|
+
"nuxt": "^3.6.0",
|
|
54
|
+
"nuxt-icon": "^0.4.1",
|
|
52
55
|
"ohmyfetch": "^0.4.21",
|
|
53
|
-
"pinia": "^2.
|
|
54
|
-
"postcss": "^8.4.
|
|
55
|
-
"tailwindcss": "^3.2
|
|
56
|
-
"typescript": "^5.
|
|
57
|
-
"unplugin-icons": "^0.
|
|
58
|
-
"vue": "^3.
|
|
56
|
+
"pinia": "^2.1.4",
|
|
57
|
+
"postcss": "^8.4.24",
|
|
58
|
+
"tailwindcss": "^3.3.2",
|
|
59
|
+
"typescript": "^5.1.3",
|
|
60
|
+
"unplugin-icons": "^0.16.3",
|
|
61
|
+
"vue": "^3.3.4"
|
|
59
62
|
}
|
|
60
63
|
}
|
package/components/-utils.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { computed } from 'vue'
|
|
2
|
-
|
|
3
|
-
interface MakeExclusiveClassOptions {
|
|
4
|
-
props: Record<string, any>
|
|
5
|
-
prefix: string
|
|
6
|
-
prop: string
|
|
7
|
-
propList: string[]
|
|
8
|
-
defaultVal?: string
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Creates a className for the provided `prop` name and checks that multiple are not enabled.
|
|
12
|
-
* @param prefix will be added to all classes that do not begin with `-`. For those that do, the `-` will be stripped.
|
|
13
|
-
* @param prop
|
|
14
|
-
* @param propList
|
|
15
|
-
* @param defaultVal
|
|
16
|
-
*/
|
|
17
|
-
export function makeExclusiveClass({
|
|
18
|
-
props,
|
|
19
|
-
prefix,
|
|
20
|
-
prop,
|
|
21
|
-
propList,
|
|
22
|
-
defaultVal = '',
|
|
23
|
-
}: MakeExclusiveClassOptions) {
|
|
24
|
-
return computed(() => {
|
|
25
|
-
const active = propList.filter((v: string) => props[v.replace('-', '')])
|
|
26
|
-
if (active.length > 1) {
|
|
27
|
-
throw new Error(
|
|
28
|
-
`only one ${prop} can be enabled at a time. Current are ${active}`
|
|
29
|
-
)
|
|
30
|
-
}
|
|
31
|
-
const current = active[0] || ''
|
|
32
|
-
const _prefix = current.startsWith('-') ? '' : prefix
|
|
33
|
-
return current ? `${_prefix}${current.replace('-', '') || defaultVal}` : ''
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function makeIndividualClass({ props, prefix, prop }) {
|
|
38
|
-
return computed(() => {
|
|
39
|
-
return props[prop] ? `${prefix}${prop}` : ''
|
|
40
|
-
})
|
|
41
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export * from './-utils'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Converts a list of prop names to an object of Booleans. Can be spread into props.
|
|
5
|
-
* @param propList list of prop names to become booleans
|
|
6
|
-
*/
|
|
7
|
-
export function toProps(propList: string[]): Record<string, boolean> {
|
|
8
|
-
return propList.reduce((all: Record<string, any>, current: string) => {
|
|
9
|
-
all[current.replace('-', '')] = Boolean
|
|
10
|
-
return all
|
|
11
|
-
}, {})
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const directionVariants = ['top', 'bottom', 'left', 'right']
|
|
15
|
-
export const colorVariants = ['neutral', 'primary', 'secondary', 'accent']
|
|
16
|
-
export const stateVariants = ['info', 'success', 'warning', 'error']
|
|
17
|
-
export const allColorVariants = [...colorVariants, ...stateVariants]
|
|
18
|
-
export const variants = [
|
|
19
|
-
...colorVariants,
|
|
20
|
-
...stateVariants,
|
|
21
|
-
'ghost',
|
|
22
|
-
'link',
|
|
23
|
-
'glass',
|
|
24
|
-
]
|
|
25
|
-
export const sizes = ['xs', 'sm', 'md', 'lg']
|
|
26
|
-
export const shapes = ['circle', 'square']
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed } from 'vue'
|
|
3
|
-
|
|
4
|
-
const props = defineProps({
|
|
5
|
-
tag: String,
|
|
6
|
-
props: Object,
|
|
7
|
-
multiline: Boolean,
|
|
8
|
-
})
|
|
9
|
-
const propsString = computed(() => {
|
|
10
|
-
const string = Object.keys(props.props).reduce((propString: string, key: string, index: number) => {
|
|
11
|
-
const value = props.props[key]
|
|
12
|
-
const betweenPropSpacing = props.multiline ? '' : ' '
|
|
13
|
-
let append = `${props.multiline ? '\n ' : ''}`
|
|
14
|
-
if (value === true) append += `${betweenPropSpacing}${key}`
|
|
15
|
-
else if (value === false) append += `${betweenPropSpacing}:${key}="false"`
|
|
16
|
-
return propString += append
|
|
17
|
-
}, '')
|
|
18
|
-
return `${string}${props.multiline ? '\n' : ''}`
|
|
19
|
-
})
|
|
20
|
-
</script>
|
|
21
|
-
|
|
22
|
-
<template>
|
|
23
|
-
<div class="font-mono">
|
|
24
|
-
<<span class="text-accent">{{ tag }}</span><span class="span-pre">{{ propsString }}</span>><slot /></<span class="text-accent">{{ tag }}</span>>
|
|
25
|
-
</div>
|
|
26
|
-
</template>
|
|
27
|
-
|
|
28
|
-
<style>
|
|
29
|
-
.span-pre {
|
|
30
|
-
white-space: pre-wrap;
|
|
31
|
-
}
|
|
32
|
-
</style>
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, provide, reactive } from 'vue'
|
|
3
|
-
import { drawerStateKey } from './drawer-utils'
|
|
4
|
-
|
|
5
|
-
const props = defineProps({
|
|
6
|
-
right: Boolean,
|
|
7
|
-
mobile: Boolean,
|
|
8
|
-
})
|
|
9
|
-
const drawerState = reactive({
|
|
10
|
-
isDrawerOpen: false,
|
|
11
|
-
openDrawer() {
|
|
12
|
-
drawerState.isDrawerOpen = true
|
|
13
|
-
},
|
|
14
|
-
closeDrawer() {
|
|
15
|
-
drawerState.isDrawerOpen = false
|
|
16
|
-
},
|
|
17
|
-
toggleDrawer() {
|
|
18
|
-
drawerState.isDrawerOpen = !drawerState.isDrawerOpen
|
|
19
|
-
},
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
provide(drawerStateKey, drawerState)
|
|
23
|
-
|
|
24
|
-
const classes = computed(() => {
|
|
25
|
-
return {
|
|
26
|
-
'drawer-end': props.right,
|
|
27
|
-
'drawer-mobile': props.mobile,
|
|
28
|
-
}
|
|
29
|
-
})
|
|
30
|
-
</script>
|
|
31
|
-
|
|
32
|
-
<template>
|
|
33
|
-
<div class="drawer" :class="classes">
|
|
34
|
-
<input v-model="drawerState.isDrawerOpen" type="checkbox" class="drawer-toggle">
|
|
35
|
-
<slot v-bind="drawerState" />
|
|
36
|
-
</div>
|
|
37
|
-
</template>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { inject } from 'vue'
|
|
3
|
-
import { drawerStateKey } from './drawer-utils'
|
|
4
|
-
|
|
5
|
-
interface DrawerState {
|
|
6
|
-
isDrawerOpen: boolean
|
|
7
|
-
openDrawer: () => void
|
|
8
|
-
closeDrawer: () => void
|
|
9
|
-
toggleDrawer: () => void
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const drawerState: DrawerState = inject(drawerStateKey) as DrawerState
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<template>
|
|
16
|
-
<div class="drawer-content">
|
|
17
|
-
<slot v-bind="drawerState" />
|
|
18
|
-
</div>
|
|
19
|
-
</template>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, withDefaults } from 'vue'
|
|
3
|
-
|
|
4
|
-
interface Props {
|
|
5
|
-
is?: string
|
|
6
|
-
vertical?: boolean
|
|
7
|
-
|
|
8
|
-
size?: string
|
|
9
|
-
lg?: boolean
|
|
10
|
-
md?: boolean
|
|
11
|
-
sm?: boolean
|
|
12
|
-
xs?: boolean
|
|
13
|
-
}
|
|
14
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
15
|
-
is: 'label',
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
const classes = computed(() => {
|
|
19
|
-
return {
|
|
20
|
-
'input-group-lg': props.size === 'lg' || props.lg,
|
|
21
|
-
'input-group-md': props.size === 'md' || props.md,
|
|
22
|
-
'input-group-sm': props.size === 'sm' || props.sm,
|
|
23
|
-
'input-group-xs': props.size === 'xs' || props.xs,
|
|
24
|
-
'input-group-vertical': props.vertical,
|
|
25
|
-
}
|
|
26
|
-
})
|
|
27
|
-
</script>
|
|
28
|
-
|
|
29
|
-
<template>
|
|
30
|
-
<component :is="is" class="input-group" :class="classes">
|
|
31
|
-
<slot />
|
|
32
|
-
</component>
|
|
33
|
-
</template>
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import {
|
|
3
|
-
Dialog,
|
|
4
|
-
DialogOverlay,
|
|
5
|
-
TransitionChild,
|
|
6
|
-
TransitionRoot,
|
|
7
|
-
} from '@headlessui/vue'
|
|
8
|
-
|
|
9
|
-
defineProps(['navigation', 'show'])
|
|
10
|
-
defineEmits(['update:show'])
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<template>
|
|
14
|
-
<TransitionRoot as="template" :show="show">
|
|
15
|
-
<Dialog as="div" class="fixed inset-0 z-40 flex md:hidden" @close="$emit('update:show', false)">
|
|
16
|
-
<TransitionChild
|
|
17
|
-
as="template"
|
|
18
|
-
enter="transition-opacity ease-linear duration-300"
|
|
19
|
-
enter-from="opacity-0"
|
|
20
|
-
enter-to="opacity-100"
|
|
21
|
-
leave="transition-opacity ease-linear duration-300"
|
|
22
|
-
leave-from="opacity-100"
|
|
23
|
-
leave-to="opacity-0"
|
|
24
|
-
>
|
|
25
|
-
<DialogOverlay class="fixed inset-0 bg-opacity-75 bg-base-200" />
|
|
26
|
-
</TransitionChild>
|
|
27
|
-
<TransitionChild
|
|
28
|
-
as="template"
|
|
29
|
-
enter="transition ease-in-out duration-300 transform"
|
|
30
|
-
enter-from="-translate-x-full"
|
|
31
|
-
enter-to="translate-x-0"
|
|
32
|
-
leave="transition ease-in-out duration-300 transform"
|
|
33
|
-
leave-from="translate-x-0"
|
|
34
|
-
leave-to="-translate-x-full"
|
|
35
|
-
>
|
|
36
|
-
<div class="relative flex flex-col flex-1 w-full max-w-xs pt-5 pb-4 bg-indigo-700">
|
|
37
|
-
<TransitionChild
|
|
38
|
-
as="template"
|
|
39
|
-
enter="ease-in-out duration-300"
|
|
40
|
-
enter-from="opacity-0"
|
|
41
|
-
enter-to="opacity-100"
|
|
42
|
-
leave="ease-in-out duration-300"
|
|
43
|
-
leave-from="opacity-100"
|
|
44
|
-
leave-to="opacity-0"
|
|
45
|
-
>
|
|
46
|
-
<div class="absolute top-0 right-0 pt-2 -mr-12">
|
|
47
|
-
<button
|
|
48
|
-
type="button"
|
|
49
|
-
class="flex items-center justify-center w-10 h-10 ml-1 rounded-full focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white"
|
|
50
|
-
@click="$emit('update:show', false)"
|
|
51
|
-
>
|
|
52
|
-
<span class="sr-only">Close sidebar</span>
|
|
53
|
-
<Icon name="heroicons/x-mark" class="w-6 h-6 text-base-content" aria-hidden="true" />
|
|
54
|
-
</button>
|
|
55
|
-
</div>
|
|
56
|
-
</TransitionChild>
|
|
57
|
-
|
|
58
|
-
<Logo class="text-4xl text-base-content" />
|
|
59
|
-
|
|
60
|
-
<div class="flex-1 h-0 mt-5 overflow-y-auto">
|
|
61
|
-
<nav class="px-2 space-y-1">
|
|
62
|
-
<a
|
|
63
|
-
v-for="item in navigation"
|
|
64
|
-
:key="item.name"
|
|
65
|
-
:href="item.href"
|
|
66
|
-
class="flex items-center px-2 py-2 text-base font-medium rounded-md group" :class="[
|
|
67
|
-
item.current
|
|
68
|
-
? 'bg-indigo-800 text-base-content'
|
|
69
|
-
: 'text-indigo-100 hover:bg-indigo-600',
|
|
70
|
-
]"
|
|
71
|
-
>
|
|
72
|
-
<component
|
|
73
|
-
:is="item.icon"
|
|
74
|
-
class="flex-shrink-0 w-6 h-6 mr-4 text-indigo-300"
|
|
75
|
-
aria-hidden="true"
|
|
76
|
-
/>
|
|
77
|
-
{{ item.name }}
|
|
78
|
-
</a>
|
|
79
|
-
</nav>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
</TransitionChild>
|
|
83
|
-
<div class="flex-shrink-0 w-14" aria-hidden="true">
|
|
84
|
-
<!-- Dummy element to force sidebar to shrink to fit close icon -->
|
|
85
|
-
</div>
|
|
86
|
-
</Dialog>
|
|
87
|
-
</TransitionRoot>
|
|
88
|
-
</template>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, provide } from 'vue'
|
|
3
|
-
|
|
4
|
-
interface Props {
|
|
5
|
-
name: string
|
|
6
|
-
modelValue?: boolean
|
|
7
|
-
clickToClose?: boolean
|
|
8
|
-
}
|
|
9
|
-
const props = defineProps<Props>()
|
|
10
|
-
const emit = defineEmits(['update:modelValue'])
|
|
11
|
-
|
|
12
|
-
const is = computed(() => {
|
|
13
|
-
return props.clickToClose ? 'label' : 'div'
|
|
14
|
-
})
|
|
15
|
-
const isOpen = computed({
|
|
16
|
-
get: () => props.modelValue,
|
|
17
|
-
set: val => emit('update:modelValue', val),
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
provide(
|
|
21
|
-
'modalClickOutsideToClose',
|
|
22
|
-
computed(() => props.clickToClose),
|
|
23
|
-
)
|
|
24
|
-
provide('isOpen', isOpen)
|
|
25
|
-
</script>
|
|
26
|
-
|
|
27
|
-
<template>
|
|
28
|
-
<div :class="`modal---${name}`">
|
|
29
|
-
<input v-model="isOpen" type="checkbox" class="modal-toggle">
|
|
30
|
-
<slot />
|
|
31
|
-
</div>
|
|
32
|
-
</template>
|
package/components/Sidebar.vue
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
const docsLinks = [{ label: 'Install', to: '/install' }]
|
|
3
|
-
const actions = [
|
|
4
|
-
{ label: 'Button', to: '/daisy-button' },
|
|
5
|
-
{ label: 'Dropdown', to: '/daisy-dropdown' },
|
|
6
|
-
{ label: 'Modal', to: '/daisy-modal', pendingDocs: true },
|
|
7
|
-
{ label: 'Swap', to: '/daisy-swap' },
|
|
8
|
-
]
|
|
9
|
-
const dataDisplay = [
|
|
10
|
-
{ label: 'Alert', to: '/daisy-alert' },
|
|
11
|
-
{ label: 'Avatar', to: '/daisy-avatar' },
|
|
12
|
-
{ label: 'AvatarGroup', to: '/daisy-avatar-group' },
|
|
13
|
-
{ label: 'Badge', to: '/daisy-badge' },
|
|
14
|
-
{ label: 'Card', to: '/daisy-card' },
|
|
15
|
-
{ label: 'Carousel', to: '/daisy-carousel' },
|
|
16
|
-
{ label: 'Collapse', to: '/daisy-collapse' },
|
|
17
|
-
{ label: 'Countdown', to: '/daisy-countdown' },
|
|
18
|
-
{ label: 'Kbd', to: '/daisy-kbd' },
|
|
19
|
-
{ label: 'Progress', to: '/daisy-progress' },
|
|
20
|
-
{ label: 'RadialProgress', to: '/daisy-radial-progress' },
|
|
21
|
-
{ label: 'Stat', to: '/daisy-stat' },
|
|
22
|
-
{ label: 'Table', to: '/daisy-table' },
|
|
23
|
-
{ label: 'Text', to: '/daisy-text' },
|
|
24
|
-
{ label: 'Tooltip', to: '/daisy-tooltip' },
|
|
25
|
-
{ label: 'Prose', to: '/daisy-prose' },
|
|
26
|
-
]
|
|
27
|
-
const dataInput = [
|
|
28
|
-
{ label: 'FormControl', to: '/daisy-form-control' },
|
|
29
|
-
{ label: 'Checkbox', to: '/daisy-form-checkbox' },
|
|
30
|
-
{ label: 'TextInput', to: '/daisy-form-text-input' },
|
|
31
|
-
{ label: 'Radio', to: '/daisy-form-radio' },
|
|
32
|
-
{ label: 'RadioGroup', to: '/daisy-form-radio-group' },
|
|
33
|
-
{ label: 'Range', to: '/daisy-form-range' },
|
|
34
|
-
{ label: 'Rating', to: '/daisy-form-rating' },
|
|
35
|
-
{ label: 'Select', to: '/daisy-form-select' },
|
|
36
|
-
{ label: 'Textarea', to: '/daisy-form-textarea' },
|
|
37
|
-
{ label: 'Toggle', to: '/daisy-form-toggle' },
|
|
38
|
-
]
|
|
39
|
-
const layout = [
|
|
40
|
-
{ label: 'Artboard', to: '/daisy-artboard' },
|
|
41
|
-
{ label: 'ButtonGroup', to: '/daisy-button-group' },
|
|
42
|
-
{ label: 'Divider', to: '/daisy-divider' },
|
|
43
|
-
{ label: 'Drawer', to: '/daisy-drawer' },
|
|
44
|
-
{ label: 'Flex', to: '/daisy-flex' },
|
|
45
|
-
{ label: 'Footer', to: '/daisy-footer' },
|
|
46
|
-
{ label: 'Hero', to: '/daisy-hero' },
|
|
47
|
-
{ label: 'Indicator', to: '/daisy-indicator' },
|
|
48
|
-
{ label: 'InputGroup', to: '/daisy-input-group' },
|
|
49
|
-
{ label: 'Mask', to: '/daisy-mask' },
|
|
50
|
-
{ label: 'Stack', to: '/daisy-stack' },
|
|
51
|
-
{ label: 'Toast', to: '/daisy-toast' },
|
|
52
|
-
]
|
|
53
|
-
const navigation = [
|
|
54
|
-
{ label: 'Breadcrumbs', to: '/daisy-breadcrumbs' },
|
|
55
|
-
{ label: 'BottomNav', to: '/daisy-bottom-nav' },
|
|
56
|
-
{ label: 'Link', to: '/daisy-link' },
|
|
57
|
-
{ label: 'Menu', to: '/daisy-menu' },
|
|
58
|
-
{ label: 'Navbar', to: '/daisy-navbar' },
|
|
59
|
-
{ label: 'Pagination', to: '/daisy-pagination' },
|
|
60
|
-
{ label: 'Steps', to: '/daisy-steps' },
|
|
61
|
-
{ label: 'Tabs', to: '/daisy-tabs' },
|
|
62
|
-
]
|
|
63
|
-
const mockup = [
|
|
64
|
-
{ label: 'Code', to: '/daisy-code' },
|
|
65
|
-
{ label: 'Phone', to: '/daisy-phone' },
|
|
66
|
-
{ label: 'Window', to: '/daisy-window' },
|
|
67
|
-
]
|
|
68
|
-
</script>
|
|
69
|
-
|
|
70
|
-
<template>
|
|
71
|
-
<Drawer class="border-r border-r-base-300/30">
|
|
72
|
-
<!-- Sidebar component, swap this element with another sidebar if you like -->
|
|
73
|
-
<div class="relative pt-4 menu w-80 bg-base-100 text-base-content">
|
|
74
|
-
<NuxtLink to="/" class="fixed">
|
|
75
|
-
<Logo class="ml-8 text-4xl text-base-content" />
|
|
76
|
-
</NuxtLink>
|
|
77
|
-
|
|
78
|
-
<div class="pb-12 pl-2 mt-12 overflow-y-auto">
|
|
79
|
-
<SidebarMenuSection title="Docs" :links="docsLinks" />
|
|
80
|
-
<SidebarMenuSection title="Actions" :links="actions" />
|
|
81
|
-
<SidebarMenuSection title="Data Display" :links="dataDisplay" />
|
|
82
|
-
<SidebarMenuSection title="Data Input" :links="dataInput" />
|
|
83
|
-
<SidebarMenuSection title="Layout" :links="layout" />
|
|
84
|
-
<SidebarMenuSection title="Navigation" :links="navigation" />
|
|
85
|
-
<SidebarMenuSection title="Mockup" :links="mockup" />
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
</Drawer>
|
|
89
|
-
</template>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { InjectionKey } from 'vue'
|
|
2
|
-
|
|
3
|
-
export interface DrawerState {
|
|
4
|
-
isDrawerOpen: boolean
|
|
5
|
-
openDrawer: () => void
|
|
6
|
-
closeDrawer: () => void
|
|
7
|
-
toggleDrawer: () => void
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const drawerStateKey = Symbol('drawerState') as InjectionKey<DrawerState>
|
package/components/fixtures.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export const people = [
|
|
2
|
-
{
|
|
3
|
-
id: 1,
|
|
4
|
-
name: 'Wade Cooper',
|
|
5
|
-
avatar:
|
|
6
|
-
'https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
id: 2,
|
|
10
|
-
name: 'Arlene Mccoy',
|
|
11
|
-
avatar:
|
|
12
|
-
'https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
id: 3,
|
|
16
|
-
name: 'Devon Webb',
|
|
17
|
-
avatar:
|
|
18
|
-
'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
id: 4,
|
|
22
|
-
name: 'Tom Cook',
|
|
23
|
-
avatar:
|
|
24
|
-
'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: 5,
|
|
28
|
-
name: 'Tanya Fox',
|
|
29
|
-
avatar:
|
|
30
|
-
'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: 6,
|
|
34
|
-
name: 'Hellen Schmidt',
|
|
35
|
-
avatar:
|
|
36
|
-
'https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: 7,
|
|
40
|
-
name: 'Caroline Schultz',
|
|
41
|
-
avatar:
|
|
42
|
-
'https://images.unsplash.com/photo-1568409938619-12e139227838?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: 8,
|
|
46
|
-
name: 'Mason Heaney',
|
|
47
|
-
avatar:
|
|
48
|
-
'https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
id: 9,
|
|
52
|
-
name: 'Claudie Smitham',
|
|
53
|
-
avatar:
|
|
54
|
-
'https://images.unsplash.com/photo-1584486520270-19eca1efcce5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: 10,
|
|
58
|
-
name: 'Emil Schaefer',
|
|
59
|
-
avatar:
|
|
60
|
-
'https://images.unsplash.com/photo-1561505457-3bcad021f8ee?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
|
|
61
|
-
},
|
|
62
|
-
]
|
package/components/types.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|