daisy-ui-kit 2.1.1 → 2.1.2
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/package.json +2 -2
- package/components/.DS_Store +0 -0
- package/components/Home/AlternatingFeatureSections.vue +0 -219
- package/components/Home/BitoviConsulting.vue +0 -53
- package/components/Home/BitoviOpenSource.vue +0 -51
- package/components/Home/Footer.vue +0 -127
- package/components/Home/GradientFeatureSections.vue +0 -87
- package/components/Home/Header.vue +0 -95
- package/components/Home/Hero.vue +0 -53
- package/components/Home/PremiumCTA.vue +0 -28
- package/components/Home/Testimonial.vue +0 -23
- package/components/Mask.config.ts +0 -77
- package/components/content/Badge.ts +0 -3
- package/components/content/CodePreview.vue +0 -28
- package/components/content/ColorBadge.vue +0 -24
- package/components/content/DemoExample.vue +0 -23
- package/components/content/DemoExampleResponsive.vue +0 -59
- package/components/content/IframeRenderer.ts +0 -53
- package/components/content/Indent.vue +0 -3
- package/components/content/LocalLinks.vue +0 -31
- package/components/content/NotFound.vue +0 -42
- package/components/content/PageNext.vue +0 -24
- package/components/content/PagePrevious.vue +0 -24
- package/components/content/PrevNext.vue +0 -40
- package/components/content/ProseA.vue +0 -19
- package/components/content/ProseAlert.vue +0 -11
- package/components/content/ProseBlockquote.vue +0 -5
- package/components/content/ProseCode.vue +0 -62
- package/components/content/ProseCodeInline.vue +0 -3
- package/components/content/ProseEm.vue +0 -5
- package/components/content/ProseH1.vue +0 -16
- package/components/content/ProseH2.vue +0 -16
- package/components/content/ProseH3.vue +0 -16
- package/components/content/ProseH4.vue +0 -16
- package/components/content/ProseH5.vue +0 -16
- package/components/content/ProseH6.vue +0 -16
- package/components/content/ProseHr.vue +0 -3
- package/components/content/ProseImg.vue +0 -34
- package/components/content/ProseLi.vue +0 -3
- package/components/content/ProseOl.vue +0 -5
- package/components/content/ProseP.vue +0 -3
- package/components/content/ProseStrong.vue +0 -5
- package/components/content/ProseTable.vue +0 -7
- package/components/content/ProseTbody.vue +0 -5
- package/components/content/ProseTd.vue +0 -5
- package/components/content/ProseTh.vue +0 -5
- package/components/content/ProseThead.vue +0 -5
- package/components/content/ProseTr.vue +0 -5
- package/components/content/ProseUl.vue +0 -5
- package/components/content/Search.vue +0 -160
- package/components/content/Sidebar.vue +0 -65
- package/components/content/SidebarMenuSection.vue +0 -38
- package/components/content/SigninForm.vue +0 -47
- package/components/content/TableOfContents.vue +0 -80
- package/components/content/TypeBadge.vue +0 -17
- package/components/content/UserMenu.vue +0 -62
- package/components/theme/Builder.vue +0 -284
- package/components/theme/Output.vue +0 -70
- package/components/theme/Picker.vue +0 -47
- package/components/theme/Preview.vue +0 -1684
- package/components/theme/Provider.vue +0 -43
- package/components/theme/Snooper.vue +0 -41
- package/components/theme/Swatch.vue +0 -47
- package/components/theme/custom-themes.ts +0 -34
- package/components/theme/theme-utils.ts +0 -175
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { colorVars, hexToHSL, utilVars } from './theme-utils'
|
|
3
|
-
|
|
4
|
-
const props: Record<string, any> = defineProps({
|
|
5
|
-
config: { type: Object, default: () => ({}) },
|
|
6
|
-
})
|
|
7
|
-
const el: any = ref(null)
|
|
8
|
-
const colorJsVars = colorVars.map(c => c.jsVar)
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Watch for changes in the theme and set the css variables directly on the ThemePreview's main element.
|
|
12
|
-
*/
|
|
13
|
-
onMounted(() => {
|
|
14
|
-
watch(
|
|
15
|
-
() => props.config,
|
|
16
|
-
(config) => {
|
|
17
|
-
colorVars.forEach(({ jsVar, cssVar }) => {
|
|
18
|
-
if (config?.[jsVar]) {
|
|
19
|
-
const value = hexToHSL(config[jsVar])
|
|
20
|
-
el.value.style.setProperty(cssVar, value)
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
el.value.style.removeProperty(cssVar)
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
utilVars.forEach(({ jsVar, cssVar }) => {
|
|
27
|
-
if (config?.[jsVar])
|
|
28
|
-
el.value.style.setProperty(cssVar, config[jsVar])
|
|
29
|
-
|
|
30
|
-
else
|
|
31
|
-
el.value.style.removeProperty(cssVar)
|
|
32
|
-
})
|
|
33
|
-
},
|
|
34
|
-
{ immediate: true, deep: true },
|
|
35
|
-
)
|
|
36
|
-
})
|
|
37
|
-
</script>
|
|
38
|
-
|
|
39
|
-
<template>
|
|
40
|
-
<div ref="el" class="theme-provider">
|
|
41
|
-
<slot />
|
|
42
|
-
</div>
|
|
43
|
-
</template>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<script setup lang="ts">
|
|
3
|
-
/**
|
|
4
|
-
* ThemeSnooper uses the theme name to read the theme's CSS variables from the DOM.
|
|
5
|
-
*/
|
|
6
|
-
import { colorVars, hslStringToHex, utilVars } from './theme-utils'
|
|
7
|
-
|
|
8
|
-
const props = defineProps({
|
|
9
|
-
name: { type: String },
|
|
10
|
-
isDefault: { type: Boolean },
|
|
11
|
-
config: { type: Object },
|
|
12
|
-
})
|
|
13
|
-
const emit = defineEmits(['snoop'])
|
|
14
|
-
|
|
15
|
-
const el: any = ref(null)
|
|
16
|
-
|
|
17
|
-
onMounted(() => {
|
|
18
|
-
watch(
|
|
19
|
-
() => props.name,
|
|
20
|
-
(name) => {
|
|
21
|
-
if (props.isDefault && !props.config?.primary) {
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
const config = colorVars.concat(utilVars as any).reduce((config: any, current) => {
|
|
24
|
-
const style = getComputedStyle(el.value).getPropertyValue(current.cssVar).trim()
|
|
25
|
-
config[current.jsVar] = current.className ? hslStringToHex(style) : style
|
|
26
|
-
return config
|
|
27
|
-
}, {})
|
|
28
|
-
emit('snoop', { name, isDefault: props.isDefault, config })
|
|
29
|
-
}, 100)
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{ immediate: true },
|
|
33
|
-
)
|
|
34
|
-
})
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
<template>
|
|
38
|
-
<div :data-theme="name" class="theme-snooper">
|
|
39
|
-
<div ref="el" />
|
|
40
|
-
</div>
|
|
41
|
-
</template>
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
const $props = defineProps({
|
|
3
|
-
title: { type: String, required: true, default: '' },
|
|
4
|
-
color: { type: String, required: true, default: '' },
|
|
5
|
-
})
|
|
6
|
-
const emit = defineEmits(['update:color'])
|
|
7
|
-
|
|
8
|
-
const swatchColor = computed({
|
|
9
|
-
get: () => $props.color,
|
|
10
|
-
set: val => emit('update:color', val),
|
|
11
|
-
})
|
|
12
|
-
</script>
|
|
13
|
-
<template>
|
|
14
|
-
<div class="swatch">
|
|
15
|
-
<label :for="`colorinput-${title}`" class="swatch-body" :class="title">
|
|
16
|
-
<div class="title-pill">.{{ title }}</div>
|
|
17
|
-
<div class="text-input-wrapper">
|
|
18
|
-
<input v-model="swatchColor" type="text" autocomplete="off" class="text-input" :class="title">
|
|
19
|
-
</div>
|
|
20
|
-
</label>
|
|
21
|
-
<input :id="`colorinput-${title}`" v-model="swatchColor" type="color" class="color-input">
|
|
22
|
-
</div>
|
|
23
|
-
</template>
|
|
24
|
-
|
|
25
|
-
<style scoped lang="postcss">
|
|
26
|
-
.swatch {
|
|
27
|
-
@apply relative col-start-1 row-start-1 overflow-hidden;
|
|
28
|
-
@apply hover:shadow-lg hover:scale-105 transition-all transform shadow hover:rounded-xl hover:-translate-y-0.5;
|
|
29
|
-
}
|
|
30
|
-
.swatch-body {
|
|
31
|
-
@apply flex flex-col items-start justify-end w-full h-24 cursor-pointer p-2;
|
|
32
|
-
}
|
|
33
|
-
.text-input-wrapper {
|
|
34
|
-
@apply text-sm text-white bg-black rounded-b rounded-tr bg-opacity-30 p-1;
|
|
35
|
-
}
|
|
36
|
-
.text-input {
|
|
37
|
-
@apply font-mono rounded outline-none bg-opacity-0 transition-colors duration-300 px-1 py-0.5;
|
|
38
|
-
@apply hover:bg-base-100 hover:bg-opacity-30;
|
|
39
|
-
@apply focus:bg-base-100 focus:bg-opacity-30;
|
|
40
|
-
}
|
|
41
|
-
.color-input {
|
|
42
|
-
@apply absolute top-16 left-4 opacity-0;
|
|
43
|
-
}
|
|
44
|
-
.title-pill {
|
|
45
|
-
@apply px-1 text-xs text-white bg-black rounded-t bg-opacity-30;
|
|
46
|
-
}
|
|
47
|
-
</style>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export const rovitDark = {
|
|
2
|
-
primary: '#793ef9',
|
|
3
|
-
primaryFocus: '#570df8',
|
|
4
|
-
primaryContent: '#ffffff',
|
|
5
|
-
secondary: '#f000b8',
|
|
6
|
-
secondaryFocus: '#bd0091',
|
|
7
|
-
secondaryContent: '#ffffff',
|
|
8
|
-
accent: '#37cdbe',
|
|
9
|
-
accentFocus: '#2aa79b',
|
|
10
|
-
accentContent: '#ffffff',
|
|
11
|
-
neutral: '#2a2e37',
|
|
12
|
-
neutralFocus: '#16181d',
|
|
13
|
-
neutralContent: '#ffffff',
|
|
14
|
-
base100: '#3d4451',
|
|
15
|
-
base200: '#2a2e37',
|
|
16
|
-
base300: '#16181d',
|
|
17
|
-
baseContent: '#ebecf0',
|
|
18
|
-
info: '#66c6ff',
|
|
19
|
-
success: '#87d039',
|
|
20
|
-
warning: '#e2d562',
|
|
21
|
-
error: '#ff6f6f',
|
|
22
|
-
borderColor: 'var(--b3)',
|
|
23
|
-
roundedBox: '1rem',
|
|
24
|
-
roundedBtn: '0.5rem',
|
|
25
|
-
roundedBadge: '1.9rem',
|
|
26
|
-
animationBtn: '0.25s',
|
|
27
|
-
animationInput: '.2s',
|
|
28
|
-
btnTextCase: 'uppercase',
|
|
29
|
-
btnFocusScale: '0.95',
|
|
30
|
-
navbarPadding: '.5rem',
|
|
31
|
-
borderBtn: '1px',
|
|
32
|
-
tabBorder: '1px',
|
|
33
|
-
tabRadius: '0.5rem',
|
|
34
|
-
}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
/* eslint-disable eqeqeq */
|
|
2
|
-
|
|
3
|
-
export function hexToHSL(H: string) {
|
|
4
|
-
// Convert hex to RGB first
|
|
5
|
-
let r: any = 0
|
|
6
|
-
let g: any = 0
|
|
7
|
-
let b: any = 0
|
|
8
|
-
if (H.length == 4) {
|
|
9
|
-
r = `0x${H[1]}${H[1]}`
|
|
10
|
-
g = `0x${H[2]}${H[2]}`
|
|
11
|
-
b = `0x${H[3]}${H[3]}`
|
|
12
|
-
}
|
|
13
|
-
else if (H.length == 7) {
|
|
14
|
-
r = `0x${H[1]}${H[2]}`
|
|
15
|
-
g = `0x${H[3]}${H[4]}`
|
|
16
|
-
b = `0x${H[5]}${H[6]}`
|
|
17
|
-
}
|
|
18
|
-
// Then to HSL
|
|
19
|
-
r /= 255
|
|
20
|
-
g /= 255
|
|
21
|
-
b /= 255
|
|
22
|
-
const cmin = Math.min(r, g, b)
|
|
23
|
-
const cmax = Math.max(r, g, b)
|
|
24
|
-
const delta = cmax - cmin
|
|
25
|
-
let h = 0
|
|
26
|
-
let s = 0
|
|
27
|
-
let l = 0
|
|
28
|
-
|
|
29
|
-
if (delta == 0)
|
|
30
|
-
h = 0
|
|
31
|
-
else if (cmax == r)
|
|
32
|
-
h = ((g - b) / delta) % 6
|
|
33
|
-
else if (cmax == g)
|
|
34
|
-
h = (b - r) / delta + 2
|
|
35
|
-
else h = (r - g) / delta + 4
|
|
36
|
-
|
|
37
|
-
h = Math.round(h * 60)
|
|
38
|
-
|
|
39
|
-
if (h < 0)
|
|
40
|
-
h += 360
|
|
41
|
-
|
|
42
|
-
l = (cmax + cmin) / 2
|
|
43
|
-
s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))
|
|
44
|
-
s = +(s * 100).toFixed(1)
|
|
45
|
-
l = +(l * 100).toFixed(1)
|
|
46
|
-
|
|
47
|
-
return `${h} ${s}% ${l}%`
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface ThemeConfig {
|
|
51
|
-
primary?: string
|
|
52
|
-
primaryFocus?: string
|
|
53
|
-
primaryContent?: string
|
|
54
|
-
secondary?: string
|
|
55
|
-
secondaryFocus?: string
|
|
56
|
-
secondaryContent?: string
|
|
57
|
-
accent?: string
|
|
58
|
-
accentFocus?: string
|
|
59
|
-
accentContent?: string
|
|
60
|
-
neutral?: string
|
|
61
|
-
neutralFocus?: string
|
|
62
|
-
neutralContent?: string
|
|
63
|
-
base100?: string
|
|
64
|
-
base200?: string
|
|
65
|
-
base300?: string
|
|
66
|
-
baseContent?: string
|
|
67
|
-
info?: string
|
|
68
|
-
success?: string
|
|
69
|
-
warning?: string
|
|
70
|
-
error?: string
|
|
71
|
-
borderColor?: string
|
|
72
|
-
roundedBox?: string
|
|
73
|
-
roundedBtn?: string
|
|
74
|
-
roundedBadge?: string
|
|
75
|
-
animationBtn?: string
|
|
76
|
-
animationInput?: string
|
|
77
|
-
btnTextCase?: string
|
|
78
|
-
btnFocusScale?: string
|
|
79
|
-
navbarPadding?: string
|
|
80
|
-
borderBtn?: string
|
|
81
|
-
tabBorder?: string
|
|
82
|
-
tabRadius?: string
|
|
83
|
-
}
|
|
84
|
-
export interface Theme {
|
|
85
|
-
name: string
|
|
86
|
-
isDefault: boolean
|
|
87
|
-
config: ThemeConfig
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export const defaultThemes: Theme[] = [
|
|
91
|
-
{ name: 'light', isDefault: true, config: {} },
|
|
92
|
-
{ name: 'dark', isDefault: true, config: {} },
|
|
93
|
-
{ name: 'cupcake', isDefault: true, config: {} },
|
|
94
|
-
{ name: 'bumblebee', isDefault: true, config: {} },
|
|
95
|
-
{ name: 'emerald', isDefault: true, config: {} },
|
|
96
|
-
{ name: 'corporate', isDefault: true, config: {} },
|
|
97
|
-
{ name: 'synthwave', isDefault: true, config: {} },
|
|
98
|
-
{ name: 'retro', isDefault: true, config: {} },
|
|
99
|
-
{ name: 'cyberpunk', isDefault: true, config: {} },
|
|
100
|
-
{ name: 'valentine', isDefault: true, config: {} },
|
|
101
|
-
{ name: 'halloween', isDefault: true, config: {} },
|
|
102
|
-
{ name: 'garden', isDefault: true, config: {} },
|
|
103
|
-
{ name: 'forest', isDefault: true, config: {} },
|
|
104
|
-
{ name: 'aqua', isDefault: true, config: {} },
|
|
105
|
-
{ name: 'lofi', isDefault: true, config: {} },
|
|
106
|
-
{ name: 'pastel', isDefault: true, config: {} },
|
|
107
|
-
{ name: 'fantasy', isDefault: true, config: {} },
|
|
108
|
-
{ name: 'wireframe', isDefault: true, config: {} },
|
|
109
|
-
{ name: 'black', isDefault: true, config: {} },
|
|
110
|
-
{ name: 'luxury', isDefault: true, config: {} },
|
|
111
|
-
{ name: 'dracula', isDefault: true, config: {} },
|
|
112
|
-
{ name: 'cmyk', isDefault: true, config: {} },
|
|
113
|
-
{ name: 'autumn', isDefault: true, config: {} },
|
|
114
|
-
{ name: 'business', isDefault: true, config: {} },
|
|
115
|
-
{ name: 'acid', isDefault: true, config: {} },
|
|
116
|
-
{ name: 'lemonade', isDefault: true, config: {} },
|
|
117
|
-
{ name: 'night', isDefault: true, config: {} },
|
|
118
|
-
{ name: 'coffee', isDefault: true, config: {} },
|
|
119
|
-
{ name: 'winter', isDefault: true, config: {} },
|
|
120
|
-
]
|
|
121
|
-
|
|
122
|
-
export function hslToHex([h, s, l]: number[]) {
|
|
123
|
-
l /= 100
|
|
124
|
-
const a = (s * Math.min(l, 1 - l)) / 100
|
|
125
|
-
const f = (n: number) => {
|
|
126
|
-
const k = (n + h / 30) % 12
|
|
127
|
-
const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)
|
|
128
|
-
return Math.round(255 * color)
|
|
129
|
-
.toString(16)
|
|
130
|
-
.padStart(2, '0') // convert to Hex and prefix "0" if needed
|
|
131
|
-
}
|
|
132
|
-
return `#${f(0)}${f(8)}${f(4)}`
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export function hslStringToHex(hslString: string) {
|
|
136
|
-
const args: number[] = hslString.split(' ').map((val: string) => parseInt(val.replace('%', '')))
|
|
137
|
-
return hslToHex(args)
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
export const colorVars = [
|
|
141
|
-
{ className: 'primary', jsVar: 'primary', cssVar: '--p' },
|
|
142
|
-
{ className: 'primary-focus', jsVar: 'primaryFocus', cssVar: '--pf' },
|
|
143
|
-
{ className: 'primary-content', jsVar: 'primaryContent', cssVar: '--pc' },
|
|
144
|
-
{ className: 'secondary', jsVar: 'secondary', cssVar: '--s' },
|
|
145
|
-
{ className: 'secondary-focus', jsVar: 'secondaryFocus', cssVar: '--sf' },
|
|
146
|
-
{ className: 'secondary-content', jsVar: 'secondaryContent', cssVar: '--sc' },
|
|
147
|
-
{ className: 'accent', jsVar: 'accent', cssVar: '--a' },
|
|
148
|
-
{ className: 'accent-focus', jsVar: 'accentFocus', cssVar: '--af' },
|
|
149
|
-
{ className: 'accent-content', jsVar: 'accentContent', cssVar: '--ac' },
|
|
150
|
-
{ className: 'neutral', jsVar: 'neutral', cssVar: '--n' },
|
|
151
|
-
{ className: 'neutral-focus', jsVar: 'neutralFocus', cssVar: '--nf' },
|
|
152
|
-
{ className: 'neutral-content', jsVar: 'neutralContent', cssVar: '--nc' },
|
|
153
|
-
{ className: 'base-100', jsVar: 'base100', cssVar: '--b1' },
|
|
154
|
-
{ className: 'base-200', jsVar: 'base200', cssVar: '--b2' },
|
|
155
|
-
{ className: 'base-300', jsVar: 'base300', cssVar: '--b3' },
|
|
156
|
-
{ className: 'base-content', jsVar: 'baseContent', cssVar: '--bc' },
|
|
157
|
-
{ className: 'info', jsVar: 'info', cssVar: '--in' },
|
|
158
|
-
{ className: 'success', jsVar: 'success', cssVar: '--su' },
|
|
159
|
-
{ className: 'warning', jsVar: 'warning', cssVar: '--wa' },
|
|
160
|
-
{ className: 'error', jsVar: 'error', cssVar: '--er' },
|
|
161
|
-
]
|
|
162
|
-
export const utilVars = [
|
|
163
|
-
{ jsVar: 'borderColor', cssVar: '--border-color' },
|
|
164
|
-
{ jsVar: 'roundedBox', cssVar: '--rounded-box' },
|
|
165
|
-
{ jsVar: 'roundedBtn', cssVar: '--rounded-btn' },
|
|
166
|
-
{ jsVar: 'roundedBadge', cssVar: '--rounded-badge' },
|
|
167
|
-
{ jsVar: 'animationBtn', cssVar: '--animation-btn' },
|
|
168
|
-
{ jsVar: 'animationInput', cssVar: '--animation-input' },
|
|
169
|
-
{ jsVar: 'btnTextCase', cssVar: '--btn-text-case' },
|
|
170
|
-
{ jsVar: 'btnFocusScale', cssVar: '--btn-focus-scale' },
|
|
171
|
-
{ jsVar: 'navbarPadding', cssVar: '--navbar-padding' },
|
|
172
|
-
{ jsVar: 'borderBtn', cssVar: '--border-btn' },
|
|
173
|
-
{ jsVar: 'tabBorder', cssVar: '--tab-border' },
|
|
174
|
-
{ jsVar: 'tabRadius', cssVar: '--tab-radius' },
|
|
175
|
-
]
|