daisyui 4.12.10 → 5.0.0-alpha.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.
Files changed (73) hide show
  1. package/components/badge/config.js +12 -0
  2. package/components/badge/index.css +1 -0
  3. package/components/badge/index.js +74 -0
  4. package/components/badge.css +109 -0
  5. package/components/button/config.js +12 -0
  6. package/components/button/index.css +1 -0
  7. package/components/button/index.js +170 -0
  8. package/components/button.css +293 -0
  9. package/components/checkbox/config.js +12 -0
  10. package/components/checkbox/index.css +1 -0
  11. package/components/checkbox/index.js +108 -0
  12. package/components/checkbox.css +144 -0
  13. package/components/input/config.js +12 -0
  14. package/components/input/index.css +1 -0
  15. package/components/input/index.js +128 -0
  16. package/components/input.css +204 -0
  17. package/components/kbd/config.js +12 -0
  18. package/components/kbd/index.css +1 -0
  19. package/components/kbd/index.js +27 -0
  20. package/components/kbd.css +49 -0
  21. package/components/mask/config.js +12 -0
  22. package/components/mask/index.css +1 -0
  23. package/components/mask/index.js +74 -0
  24. package/components/mask.css +78 -0
  25. package/components/radio/config.js +12 -0
  26. package/components/radio/index.css +1 -0
  27. package/components/radio/index.js +73 -0
  28. package/components/radio.css +102 -0
  29. package/components/range/config.js +12 -0
  30. package/components/range/index.css +1 -0
  31. package/components/range/index.js +132 -0
  32. package/components/range.css +164 -0
  33. package/components/rating/config.js +12 -0
  34. package/components/rating/index.css +1 -0
  35. package/components/rating/index.js +82 -0
  36. package/components/rating.css +104 -0
  37. package/components/select/config.js +12 -0
  38. package/components/select/index.css +1 -0
  39. package/components/select/index.js +99 -0
  40. package/components/select.css +166 -0
  41. package/components/toggle/config.js +12 -0
  42. package/components/toggle/index.css +1 -0
  43. package/components/toggle/index.js +102 -0
  44. package/components/toggle.css +143 -0
  45. package/functions/plugin.js +10 -0
  46. package/index.css +14 -0
  47. package/package.json +74 -83
  48. package/themes/dark/index.css +26 -0
  49. package/themes/default/index.css +26 -0
  50. package/themes/index.css +26 -0
  51. package/themes/light/index.css +26 -0
  52. package/dist/base.js +0 -1
  53. package/dist/full.css +0 -62904
  54. package/dist/styled.css +0 -5183
  55. package/dist/styled.js +0 -1
  56. package/dist/themes.css +0 -2118
  57. package/dist/unstyled.css +0 -1324
  58. package/dist/unstyled.js +0 -1
  59. package/dist/utilities-styled.js +0 -1
  60. package/dist/utilities-unstyled.js +0 -1
  61. package/dist/utilities.js +0 -1
  62. package/src/index.d.ts +0 -122
  63. package/src/index.js +0 -149
  64. package/src/lib/addPrefix.js +0 -104
  65. package/src/lib/createPlugin.js +0 -19
  66. package/src/lib/responsiveRegex.js +0 -45
  67. package/src/lib/utility-classes.js +0 -7
  68. package/src/theming/colorNames.js +0 -30
  69. package/src/theming/functions.js +0 -262
  70. package/src/theming/index.js +0 -35
  71. package/src/theming/themeDefaults.js +0 -47
  72. package/src/theming/themes.d.ts +0 -5
  73. package/src/theming/themes.js +0 -485
@@ -1,45 +0,0 @@
1
- // regext for all daisyUI colors
2
- // ((primary|secondary|accent|neutral)(-content|))|((info|success|warning|error)(-content|))|(base)(-100|-200|-300|-content)
3
-
4
- // regex for all Tailwind CSS color utilities
5
- // (bg|to|via|from|text|ring|fill|caret|stroke|border|divide|accent|shadow|outline|decoration|placeholder|ring-offset)
6
-
7
- module.exports = [
8
- {
9
- pattern: /.*/,
10
- },
11
- {
12
- // responsive utilites for daisyUI responsive modifiers
13
- pattern: /.(sm|md|lg|xl)/,
14
- variants: ["sm", "md", "lg", "xl"],
15
- },
16
- {
17
- // responsive utilites for daisyUI components
18
- pattern:
19
- /(drawer-open|modal-(middle|top|bottom)|card-(side|compact|normal)|(stats|divider)-(horizontal|vertical)|dropdown-(end|top|bottom|left|right))/,
20
- variants: ["sm", "md", "lg", "xl"],
21
- },
22
- {
23
- // color utilities for daisyUI colors
24
- pattern:
25
- /(bg|to|via|from|text|fill|stroke|border|outline)-((primary|secondary|accent|neutral)(-content|))|((info|success|warning|error)(-content|))|(base)(-100|-200|-300|-content)/,
26
- variants: [
27
- // "first",
28
- // "last",
29
- // "odd",
30
- // "even",
31
- // "visited",
32
- // "checked",
33
- // "empty",
34
- // "read-only",
35
- // "group-hover",
36
- // "group-focus",
37
- // "focus-within",
38
- "hover",
39
- "focus",
40
- // "focus-visible",
41
- // "active",
42
- // "disabled",
43
- ],
44
- },
45
- ]
@@ -1,7 +0,0 @@
1
- module.exports = {
2
- borderRadius: {
3
- badge: "var(--rounded-badge, 1.9rem)",
4
- btn: "var(--rounded-btn, 0.5rem)",
5
- box: "var(--rounded-box, 1rem)",
6
- },
7
- }
@@ -1,30 +0,0 @@
1
- module.exports = {
2
- "primary": "--p",
3
- "primary-content": "--pc",
4
-
5
- "secondary": "--s",
6
- "secondary-content": "--sc",
7
-
8
- "accent": "--a",
9
- "accent-content": "--ac",
10
-
11
- "neutral": "--n",
12
- "neutral-content": "--nc",
13
-
14
- "base-100": "--b1",
15
- "base-200": "--b2",
16
- "base-300": "--b3",
17
- "base-content": "--bc",
18
-
19
- "info": "--in",
20
- "info-content": "--inc",
21
-
22
- "success": "--su",
23
- "success-content": "--suc",
24
-
25
- "warning": "--wa",
26
- "warning-content": "--wac",
27
-
28
- "error": "--er",
29
- "error-content": "--erc",
30
- }
@@ -1,262 +0,0 @@
1
- const pc = require("picocolors")
2
- const colorNames = require("./colorNames")
3
- const themeDefaults = require("./themeDefaults")
4
-
5
- const { oklch, interpolate, wcagContrast } = require("culori/require")
6
-
7
- const colorIsInvalid = (input) => {
8
- console.error(
9
- `├─ ${pc.red("⚠︎")} ${pc.bgRed(" Error ")} Invalid color ${pc.red(input)} in ${pc.green(
10
- "tailwind.config.js"
11
- )}`
12
- )
13
- }
14
- const cutNumber = (number) => {
15
- try {
16
- if (number) {
17
- return +number.toFixed(6)
18
- }
19
- return 0
20
- } catch (e) {
21
- // colorIsInvalid(number)
22
- return false
23
- }
24
- }
25
- module.exports = {
26
- isDark: (color) => {
27
- try {
28
- if (wcagContrast(color, "black") < wcagContrast(color, "white")) {
29
- return true
30
- }
31
- return false
32
- } catch (e) {
33
- // colorIsInvalid(color)
34
- return false
35
- }
36
- },
37
-
38
- colorObjToString: (input) => {
39
- const { l, c, h } = input
40
- return `${Number.parseFloat((cutNumber(l) * 100).toFixed(6))}% ${cutNumber(c)} ${cutNumber(h)}`
41
- },
42
-
43
- generateForegroundColorFrom: function (input, percentage = 0.8) {
44
- try {
45
- const result = interpolate(
46
- [input, this.isDark(input) ? "white" : "black"],
47
- "oklch"
48
- )(percentage)
49
- return this.colorObjToString(result)
50
- } catch (e) {
51
- // colorIsInvalid(input)
52
- return false
53
- }
54
- },
55
-
56
- generateDarkenColorFrom: function (input, percentage = 0.07) {
57
- try {
58
- const result = interpolate([input, "black"], "oklch")(percentage)
59
- return this.colorObjToString(result)
60
- } catch (e) {
61
- // colorIsInvalid(input)
62
- return false
63
- }
64
- },
65
-
66
- convertColorFormat: function (input) {
67
- if (typeof input !== "object" || input === null) {
68
- return input
69
- }
70
-
71
- const resultObj = {}
72
-
73
- for (const [rule, value] of Object.entries(input)) {
74
- if (Object.hasOwn(colorNames, rule)) {
75
- try {
76
- const colorObj = oklch(value)
77
- resultObj[colorNames[rule]] = this.colorObjToString(colorObj)
78
- } catch (e) {
79
- colorIsInvalid(value)
80
- return false
81
- }
82
- } else {
83
- resultObj[rule] = value
84
- }
85
-
86
- // auto generate base colors
87
- if (!Object.hasOwn(input, "base-100")) {
88
- resultObj["--b1"] = "100% 0 0"
89
- }
90
- if (!Object.hasOwn(input, "base-200")) {
91
- resultObj["--b2"] = this.generateDarkenColorFrom(input["base-100"], 0.07)
92
- }
93
- if (!Object.hasOwn(input, "base-300")) {
94
- if (Object.hasOwn(input, "base-200")) {
95
- resultObj["--b3"] = this.generateDarkenColorFrom(input["base-200"], 0.07)
96
- } else {
97
- resultObj["--b3"] = this.generateDarkenColorFrom(input["base-100"], 0.14)
98
- }
99
- }
100
-
101
- // auto generate state colors
102
-
103
- if (!Object.hasOwn(input, "info")) {
104
- resultObj["--in"] = "72.06% 0.191 231.6"
105
- }
106
- if (!Object.hasOwn(input, "success")) {
107
- resultObj["--su"] = "64.8% 0.150 160"
108
- }
109
- if (!Object.hasOwn(input, "warning")) {
110
- resultObj["--wa"] = "84.71% 0.199 83.87"
111
- }
112
- if (!Object.hasOwn(input, "error")) {
113
- resultObj["--er"] = "71.76% 0.221 22.18"
114
- }
115
-
116
- // auto generate content colors
117
- if (!Object.hasOwn(input, "base-content")) {
118
- resultObj["--bc"] = this.generateForegroundColorFrom(input["base-100"], 0.8)
119
- }
120
- if (!Object.hasOwn(input, "primary-content")) {
121
- resultObj["--pc"] = this.generateForegroundColorFrom(input.primary, 0.8)
122
- }
123
- if (!Object.hasOwn(input, "secondary-content")) {
124
- resultObj["--sc"] = this.generateForegroundColorFrom(input.secondary, 0.8)
125
- }
126
- if (!Object.hasOwn(input, "accent-content")) {
127
- resultObj["--ac"] = this.generateForegroundColorFrom(input.accent, 0.8)
128
- }
129
- if (!Object.hasOwn(input, "neutral-content")) {
130
- resultObj["--nc"] = this.generateForegroundColorFrom(input.neutral, 0.8)
131
- }
132
- if (!Object.hasOwn(input, "info-content")) {
133
- if (Object.hasOwn(input, "info")) {
134
- resultObj["--inc"] = this.generateForegroundColorFrom(input.info, 0.8)
135
- } else {
136
- resultObj["--inc"] = "0% 0 0"
137
- }
138
- }
139
- if (!Object.hasOwn(input, "success-content")) {
140
- if (Object.hasOwn(input, "success")) {
141
- resultObj["--suc"] = this.generateForegroundColorFrom(input.success, 0.8)
142
- } else {
143
- resultObj["--suc"] = "0% 0 0"
144
- }
145
- }
146
- if (!Object.hasOwn(input, "warning-content")) {
147
- if (Object.hasOwn(input, "warning")) {
148
- resultObj["--wac"] = this.generateForegroundColorFrom(input.warning, 0.8)
149
- } else {
150
- resultObj["--wac"] = "0% 0 0"
151
- }
152
- }
153
- if (!Object.hasOwn(input, "error-content")) {
154
- if (Object.hasOwn(input, "error")) {
155
- resultObj["--erc"] = this.generateForegroundColorFrom(input.error, 0.8)
156
- } else {
157
- resultObj["--erc"] = "0% 0 0"
158
- }
159
- }
160
-
161
- // add css variables if not exist
162
- for (const item of Object.entries(themeDefaults.variables)) {
163
- const [variable, value] = item
164
- if (!Object.hasOwn(input, variable)) {
165
- resultObj[variable] = value
166
- }
167
- }
168
-
169
- // add other custom styles
170
- if (!Object.hasOwn(colorNames, rule)) {
171
- resultObj[rule] = value
172
- }
173
- }
174
-
175
- return resultObj
176
- },
177
-
178
- injectThemes: function (addBase, config, themes) {
179
- const includedThemesObj = {}
180
- // add default themes
181
- const themeRoot = config("daisyui.themeRoot") ?? ":root"
182
- for (const [theme, value] of Object.entries(themes)) {
183
- includedThemesObj[theme] = this.convertColorFormat(value)
184
- }
185
-
186
- // add custom themes
187
- if (Array.isArray(config("daisyui.themes"))) {
188
- for (const item of config("daisyui.themes")) {
189
- if (typeof item === "object" && item !== null) {
190
- for (const [customThemeName, customThemevalue] of Object.entries(item)) {
191
- includedThemesObj[customThemeName] = this.convertColorFormat(customThemevalue)
192
- }
193
- }
194
- }
195
- }
196
-
197
- let themeOrder = []
198
- if (Array.isArray(config("daisyui.themes"))) {
199
- for (const theme of config("daisyui.themes")) {
200
- if (typeof theme === "object" && theme !== null) {
201
- for (const customThemeName of Object.keys(theme)) {
202
- themeOrder.push(customThemeName)
203
- }
204
- } else if (Object.hasOwn(includedThemesObj, theme)) {
205
- themeOrder.push(theme)
206
- }
207
- }
208
- } else if (config("daisyui.themes") === true) {
209
- themeOrder = themeDefaults.themeOrder
210
- } else {
211
- themeOrder = ["light", "dark"]
212
- }
213
-
214
- // inject themes in order
215
- const themesToInject = {}
216
- themeOrder.forEach((themeName, index) => {
217
- if (index === 0) {
218
- // first theme as root
219
- themesToInject[themeRoot] = includedThemesObj[themeName]
220
- } else if (index === 1) {
221
- // auto dark
222
- if (config("daisyui.darkTheme")) {
223
- if (
224
- themeOrder[0] !== config("daisyui.darkTheme") &&
225
- themeOrder.includes(config("daisyui.darkTheme"))
226
- ) {
227
- themesToInject["@media (prefers-color-scheme: dark)"] = {
228
- [themeRoot]: includedThemesObj[`${config("daisyui.darkTheme")}`],
229
- }
230
- }
231
- } else if (config("daisyui.darkTheme") === false) {
232
- // disables prefers-color-scheme: dark
233
- } else {
234
- if (themeOrder[0] !== "dark" && themeOrder.includes("dark")) {
235
- themesToInject["@media (prefers-color-scheme: dark)"] = {
236
- [themeRoot]: includedThemesObj.dark,
237
- }
238
- }
239
- }
240
- // theme 0 with name
241
- themesToInject[`[data-theme=${themeOrder[0]}]`] = includedThemesObj[themeOrder[0]]
242
- themesToInject[`${themeRoot}:has(input.theme-controller[value=${themeOrder[0]}]:checked)`] =
243
- includedThemesObj[themeOrder[0]]
244
- // theme 1 with name
245
- themesToInject[`[data-theme=${themeOrder[1]}]`] = includedThemesObj[themeOrder[1]]
246
- themesToInject[`${themeRoot}:has(input.theme-controller[value=${themeOrder[1]}]:checked)`] =
247
- includedThemesObj[themeOrder[1]]
248
- } else {
249
- themesToInject[`[data-theme=${themeName}]`] = includedThemesObj[themeName]
250
- themesToInject[`${themeRoot}:has(input.theme-controller[value=${themeName}]:checked)`] =
251
- includedThemesObj[themeName]
252
- }
253
- })
254
-
255
- addBase(themesToInject)
256
-
257
- return {
258
- includedThemesObj,
259
- themeOrder,
260
- }
261
- },
262
- }
@@ -1,35 +0,0 @@
1
- const colorObject = {
2
- "transparent": "transparent",
3
- "current": "currentColor",
4
-
5
- "primary": "var(--fallback-p,oklch(var(--p)/<alpha-value>))",
6
- "primary-content": "var(--fallback-pc,oklch(var(--pc)/<alpha-value>))",
7
-
8
- "secondary": "var(--fallback-s,oklch(var(--s)/<alpha-value>))",
9
- "secondary-content": "var(--fallback-sc,oklch(var(--sc)/<alpha-value>))",
10
-
11
- "accent": "var(--fallback-a,oklch(var(--a)/<alpha-value>))",
12
- "accent-content": "var(--fallback-ac,oklch(var(--ac)/<alpha-value>))",
13
-
14
- "neutral": "var(--fallback-n,oklch(var(--n)/<alpha-value>))",
15
- "neutral-content": "var(--fallback-nc,oklch(var(--nc)/<alpha-value>))",
16
-
17
- "base-100": "var(--fallback-b1,oklch(var(--b1)/<alpha-value>))",
18
- "base-200": "var(--fallback-b2,oklch(var(--b2)/<alpha-value>))",
19
- "base-300": "var(--fallback-b3,oklch(var(--b3)/<alpha-value>))",
20
- "base-content": "var(--fallback-bc,oklch(var(--bc)/<alpha-value>))",
21
-
22
- "info": "var(--fallback-in,oklch(var(--in)/<alpha-value>))",
23
- "info-content": "var(--fallback-inc,oklch(var(--inc)/<alpha-value>))",
24
-
25
- "success": "var(--fallback-su,oklch(var(--su)/<alpha-value>))",
26
- "success-content": "var(--fallback-suc,oklch(var(--suc)/<alpha-value>))",
27
-
28
- "warning": "var(--fallback-wa,oklch(var(--wa)/<alpha-value>))",
29
- "warning-content": "var(--fallback-wac,oklch(var(--wac)/<alpha-value>))",
30
-
31
- "error": "var(--fallback-er,oklch(var(--er)/<alpha-value>))",
32
- "error-content": "var(--fallback-erc,oklch(var(--erc)/<alpha-value>))",
33
- }
34
-
35
- module.exports = colorObject
@@ -1,47 +0,0 @@
1
- module.exports = {
2
- themeOrder: [
3
- "light",
4
- "dark",
5
- "cupcake",
6
- "bumblebee",
7
- "emerald",
8
- "corporate",
9
- "synthwave",
10
- "retro",
11
- "cyberpunk",
12
- "valentine",
13
- "halloween",
14
- "garden",
15
- "forest",
16
- "aqua",
17
- "lofi",
18
- "pastel",
19
- "fantasy",
20
- "wireframe",
21
- "black",
22
- "luxury",
23
- "dracula",
24
- "cmyk",
25
- "autumn",
26
- "business",
27
- "acid",
28
- "lemonade",
29
- "night",
30
- "coffee",
31
- "winter",
32
- "dim",
33
- "nord",
34
- "sunset",
35
- ],
36
- variables: {
37
- "--rounded-box": "1rem",
38
- "--rounded-btn": "0.5rem",
39
- "--rounded-badge": "1.9rem",
40
- "--animation-btn": "0.25s",
41
- "--animation-input": ".2s",
42
- "--btn-focus-scale": "0.95",
43
- "--border-btn": "1px",
44
- "--tab-border": "1px",
45
- "--tab-radius": "0.5rem",
46
- },
47
- }
@@ -1,5 +0,0 @@
1
- import type { CustomTheme, Theme } from "../index"
2
-
3
- declare const themes: Record<`${Theme}`, CustomTheme[string]>
4
-
5
- export = themes