daisy-ui-kit 5.0.0-pre.9 → 5.0.1

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 (94) hide show
  1. package/README.md +277 -48
  2. package/app/components/Accordion.vue +8 -5
  3. package/app/components/Alert.vue +2 -1
  4. package/app/components/Avatar.vue +10 -7
  5. package/app/components/AvatarGroup.vue +6 -2
  6. package/app/components/Badge.vue +19 -1
  7. package/app/components/Button.vue +66 -46
  8. package/app/components/Calendar.vue +151 -42
  9. package/app/components/CalendarInput.vue +229 -130
  10. package/app/components/CalendarSkeleton.vue +51 -10
  11. package/app/components/Card.vue +20 -2
  12. package/app/components/CardActions.vue +1 -1
  13. package/app/components/CardBody.vue +1 -1
  14. package/app/components/CardTitle.vue +1 -1
  15. package/app/components/Carousel.vue +2 -1
  16. package/app/components/Chat.vue +6 -1
  17. package/app/components/Checkbox.vue +1 -1
  18. package/app/components/Collapse.vue +38 -5
  19. package/app/components/CollapseTitle.vue +11 -1
  20. package/app/components/Countdown.vue +3 -3
  21. package/app/components/CountdownTimers.vue +4 -7
  22. package/app/components/Counter.vue +14 -3
  23. package/app/components/DaisyLink.vue +33 -15
  24. package/app/components/Dock.vue +5 -6
  25. package/app/components/DockItem.vue +5 -3
  26. package/app/components/Drawer.vue +15 -12
  27. package/app/components/DrawerContent.vue +9 -6
  28. package/app/components/DrawerSide.vue +9 -6
  29. package/app/components/Dropdown.vue +61 -50
  30. package/app/components/DropdownButton.vue +11 -4
  31. package/app/components/DropdownContent.vue +90 -20
  32. package/app/components/DropdownTarget.vue +10 -3
  33. package/app/components/Fab.vue +16 -0
  34. package/app/components/FabClose.vue +18 -0
  35. package/app/components/FabMainAction.vue +5 -0
  36. package/app/components/FabTrigger.vue +117 -0
  37. package/app/components/Fieldset.vue +5 -4
  38. package/app/components/FileInput.vue +1 -1
  39. package/app/components/Filter.vue +45 -38
  40. package/app/components/Flex.vue +8 -1
  41. package/app/components/FlexItem.vue +30 -27
  42. package/app/components/Footer.vue +16 -12
  43. package/app/components/FooterTitle.vue +8 -5
  44. package/app/components/Hero.vue +9 -6
  45. package/app/components/HeroContent.vue +9 -6
  46. package/app/components/Hover3D.vue +22 -0
  47. package/app/components/HoverGallery.vue +11 -0
  48. package/app/components/Indicator.vue +12 -5
  49. package/app/components/IndicatorItem.vue +21 -14
  50. package/app/components/Input.vue +44 -47
  51. package/app/components/Kbd.vue +2 -1
  52. package/app/components/Label.vue +32 -29
  53. package/app/components/MenuExpand.vue +5 -13
  54. package/app/components/MenuExpandToggle.vue +7 -1
  55. package/app/components/MenuItem.vue +6 -4
  56. package/app/components/Modal.vue +23 -17
  57. package/app/components/Progress.vue +13 -1
  58. package/app/components/Prose.vue +7 -2
  59. package/app/components/RadialProgress.vue +8 -8
  60. package/app/components/Radio.vue +1 -1
  61. package/app/components/RadioGroup.vue +2 -2
  62. package/app/components/Range.vue +186 -46
  63. package/app/components/RangeMeasure.vue +33 -30
  64. package/app/components/RangeMeasureTick.vue +4 -5
  65. package/app/components/Rating.vue +70 -53
  66. package/app/components/Select.vue +44 -47
  67. package/app/components/SkeletonText.vue +11 -0
  68. package/app/components/Stack.vue +5 -0
  69. package/app/components/Steps.vue +7 -2
  70. package/app/components/Swap.vue +4 -10
  71. package/app/components/Tab.vue +23 -5
  72. package/app/components/Text.vue +47 -23
  73. package/app/components/TextArea.vue +75 -30
  74. package/app/components/TextRotate.vue +24 -0
  75. package/app/components/ThemeController.vue +3 -4
  76. package/app/components/ThemeProvider.vue +47 -32
  77. package/app/components/TimelineLine.vue +1 -1
  78. package/app/components/TimelineStart.vue +2 -1
  79. package/app/components/Toast.vue +3 -8
  80. package/app/components/Toggle.vue +2 -2
  81. package/app/components/Tooltip.vue +111 -21
  82. package/app/components/TooltipContent.vue +279 -1
  83. package/app/components/TooltipTarget.vue +20 -0
  84. package/app/composables/__tests__/use-calendar.test.ts +239 -0
  85. package/app/composables/use-calendar.ts +288 -0
  86. package/app/composables/use-daisy-theme.ts +140 -0
  87. package/app/composables/use-toast.ts +345 -0
  88. package/app/composables/useSearch.ts +22 -0
  89. package/app/utils/drawer-utils.ts +15 -13
  90. package/app/utils/position-area.ts +40 -0
  91. package/nuxt.d.ts +13 -0
  92. package/nuxt.js +12 -9
  93. package/package.json +34 -17
  94. package/app/utils/random-string.ts +0 -19
package/README.md CHANGED
@@ -1,75 +1,304 @@
1
- # Nuxt Minimal Starter
1
+ # @daisyuikit/nuxt
2
2
 
3
- Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
3
+ Vue/Nuxt components for DaisyUI 5.
4
4
 
5
- ## Setup
6
-
7
- Make sure to install dependencies:
5
+ ## Install
8
6
 
9
7
  ```bash
10
- # npm
11
- npm install
8
+ pnpm add @daisyuikit/nuxt daisyui @vueuse/core
9
+ ```
12
10
 
13
- # pnpm
14
- pnpm install
11
+ ```ts
12
+ // nuxt.config.ts
13
+ export default defineNuxtConfig({
14
+ modules: ['@daisyuikit/nuxt'],
15
+ })
16
+ ```
15
17
 
16
- # yarn
17
- yarn install
18
+ ## Component API Reference
18
19
 
19
- # bun
20
- bun install
21
20
  ```
21
+ Accordion
22
+ Accordion: props(modelValue:string|number) slots(default) events(update:modelValue)
23
+ Collapse: props(variant:string, arrow:boolean, plus:boolean, open:boolean, close:boolean, toggle:boolean, value:any) slots(default)
24
+ CollapseTitle: slots(default)
25
+ CollapseContent: slots(default)
22
26
 
23
- ## Development Server
27
+ Alert
28
+ Alert: props(outline:boolean, dash:boolean, soft:boolean, type:string, info:boolean, success:boolean, warning:boolean, error:boolean, orientation:string, vertical:boolean, horizontal:boolean) slots(default)
24
29
 
25
- Start the development server on `http://localhost:3000`:
30
+ Avatar
31
+ Avatar: props(presence:string, online:boolean, offline:boolean, backgroundColor:string, maskClasses:string, shape:string, squircle:boolean, heart:boolean, hexagon:boolean, hexagon2:boolean, decagon:boolean, pentagon:boolean, diamond:boolean, square:boolean, circle:boolean, star:boolean, star2:boolean, triangle:boolean, triangle2:boolean, triangle3:boolean, triangle4:boolean, half1:boolean, half2:boolean) slots(default)
32
+ AvatarGroup: props(orientation:string, horizontal:boolean, vertical:boolean) slots(default)
26
33
 
27
- ```bash
28
- # npm
29
- npm run dev
34
+ Badge
35
+ Badge: props(ghost:boolean, outline:boolean, dash:boolean, soft:boolean, invert:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default)
30
36
 
31
- # pnpm
32
- pnpm dev
37
+ Breadcrumbs
38
+ Breadcrumbs: slots(default)
39
+ Crumb: slots(default)
33
40
 
34
- # yarn
35
- yarn dev
41
+ Button
42
+ Button: props(is:string, type:string, join:boolean, ghost:boolean, link:boolean, glass:boolean, outline:boolean, dash:boolean, soft:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, active:boolean, disabled:boolean, noAnimation:boolean, shape:string, circle:boolean, square:boolean, wide:boolean, block:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default)
36
43
 
37
- # bun
38
- bun run dev
39
- ```
44
+ Calendar
45
+ Calendar: props(modelValue:Date|string|null, options:CalendarOptions, ariaLabel:string, format:string, formatStrict:boolean, toString:function, parse:function, defaultDate:Date, setDefaultDate:boolean, firstDay:number, minDate:Date, maxDate:Date, disableWeekends:boolean, disableDayFn:function, yearRange:number|[number,number], showWeekNumber:boolean, pickWholeWeek:boolean, isRTL:boolean, i18n:object, yearSuffix:string, showMonthAfterYear:boolean, showDaysInNextAndPreviousMonths:boolean, enableSelectionDaysInNextAndPreviousMonths:boolean, numberOfMonths:number, events:array, autoDefault:boolean) slots(default) events(update:modelValue, update:inputValue)
46
+ CalendarInput: props(modelValue:Date|string|number|null, options:CalendarOptions, bound:boolean, position:string, reposition:boolean, autoDefault:boolean, placeholder:string, disabled:boolean, validator:boolean, join:boolean, color:string, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, ghost:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) events(update:modelValue, update:inputValue)
47
+ CalendarSkeleton: props(numberOfMonths:number, date:Date, firstDay:number)
40
48
 
41
- ## Production
49
+ Card
50
+ Card: props(is:string|object|function, border:boolean, dash:boolean, side:boolean, imageFull:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default)
51
+ CardBody: props(is:string) slots(default)
52
+ CardTitle: props(is:string) slots(default)
53
+ CardActions: props(is:string) slots(default)
42
54
 
43
- Build the application for production:
55
+ Carousel
56
+ Carousel: props(snapTo:string, center:boolean, end:boolean, orientation:string, vertical:boolean, horizontal:boolean) slots(default)
57
+ CarouselItem: slots(default)
44
58
 
45
- ```bash
46
- # npm
47
- npm run build
59
+ Chat
60
+ Chat: props(pre:boolean, align:string, start:boolean, end:boolean) slots(default)
61
+ ChatBubble: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean) slots(default)
62
+ ChatImage: slots(default)
63
+ ChatHeader: slots(default)
64
+ ChatFooter: slots(default)
48
65
 
49
- # pnpm
50
- pnpm build
66
+ Checkbox
67
+ Checkbox: props(modelValue:any, theme-controller:boolean, color:string, primary:boolean, secondary:boolean, accent:boolean, success:boolean, warning:boolean, info:boolean, error:boolean, size:string, lg:boolean, md:boolean, sm:boolean, xs:boolean) events(update:modelValue)
51
68
 
52
- # yarn
53
- yarn build
69
+ Countdown
70
+ Countdown: props(is:string|Component) slots(default)
71
+ Counter: props(value:number, is:string|Component, digits:2|3)
72
+ CountdownTimers: props(duration-in-seconds:number, until-date:Date) slots(default) events(done)
54
73
 
55
- # bun
56
- bun run build
57
- ```
74
+ Diff
75
+ Diff: slots(one, two)
58
76
 
59
- Locally preview production build:
77
+ Divider
78
+ Divider: props(orientation:string, horizontal:boolean, vertical:boolean, align:string, center:boolean, start:boolean, end:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, warning:boolean, info:boolean, error:boolean) slots(default)
60
79
 
61
- ```bash
62
- # npm
63
- npm run preview
80
+ Dock
81
+ Dock: props(size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) slots(default)
82
+ DockItem: props(active:boolean) slots(default)
83
+ DockLabel: slots(default)
84
+
85
+ Drawer
86
+ Drawer: props(open:boolean, name:string, end:boolean) slots(default) events(update:open)
87
+ DrawerContent: props(name:string) slots(default)
88
+ DrawerSide: props(name:string) slots(default)
89
+
90
+ Dropdown
91
+ Dropdown: props(open:boolean, placement:string, auto-focus:boolean, hover:boolean, delay-enter:number, delay-leave:number, close-on-click-outside:boolean) slots(default) events(update:open)
92
+ DropdownButton: slots(default)
93
+ DropdownTarget: slots(default)
94
+ DropdownContent: slots(default)
95
+
96
+ Fab
97
+ Fab: props(flower:boolean) slots(default)
98
+ FabTrigger: slots(default)
99
+ FabClose: slots(default)
100
+ FabMainAction: slots(default)
101
+
102
+ Fieldset
103
+ Fieldset: props(is:string, legend:string) slots(default, legend)
104
+
105
+ FileInput
106
+ FileInput: props(join:boolean, color:string, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, ghost:boolean, disabled:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) events(files)
107
+
108
+ Filter
109
+ Filter: props(is:string, name:string, items:array, modelValue:any, resetLabel:string, position:string, start:boolean, end:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default) events(update:modelValue)
110
+
111
+ Flex
112
+ Flex: props(is:string|object, join:boolean, flex:boolean, flex1:boolean, flexAuto:boolean, flexInitial:boolean, none:boolean, direction:string, row:boolean, col:boolean, reverse:boolean, wrap:boolean, nowrap:boolean, wrapReverse:boolean, grow:boolean, justify:string, justifyStart:boolean, justifyEnd:boolean, justifyCenter:boolean, justifyBetween:boolean, justifyAround:boolean, justifyEvenly:boolean, items:string, itemsStart:boolean, itemsEnd:boolean, itemsCenter:boolean, itemsBaseline:boolean, itemsStretch:boolean) slots(default)
113
+ FlexItem: props(is:any, join:boolean, flex:boolean, flex1:boolean, flexAuto:boolean, flexInitial:boolean, none:boolean, grow:boolean, direction:string, row:boolean, col:boolean, reverse:boolean, wrap:boolean, nowrap:boolean, wrapReverse:boolean) slots(default)
114
+
115
+ Footer
116
+ Footer: props(center:boolean, is:string, orientation:string, horizontal:boolean, vertical:boolean) slots(default)
117
+ FooterTitle: props(is:string) slots(default)
118
+
119
+ FormControl
120
+ FormControl: slots(default)
121
+
122
+ Hero
123
+ Hero: props(is:string) slots(default)
124
+ HeroContent: props(is:string) slots(default)
125
+ HeroOverlay: slots(default)
126
+
127
+ Hover3D
128
+ Hover3D: props(is:string|Component, disabled:boolean) slots(default)
129
+
130
+ HoverGallery
131
+ HoverGallery: props(is:string|Component) slots(default)
132
+
133
+ Indicator
134
+ Indicator: props(is:string) slots(default)
135
+ IndicatorItem: props(is:string, align:string, start:boolean, center:boolean, end:boolean, vAlign:string, top:boolean, middle:boolean, bottom:boolean) slots(default)
136
+
137
+ Input
138
+ Input: props(modelValue:string|number|null, type:string, placeholder:string, disabled:boolean, validator:boolean, color:string, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, join:boolean, ghost:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default) events(update:modelValue)
139
+
140
+ Join
141
+ Join: props(vertical:boolean) slots(default)
142
+
143
+ Kbd
144
+ Kbd: props(size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default)
145
+
146
+ Label
147
+ Label: props(is:string, floating:boolean, input:boolean, select:boolean, toggle:boolean, join:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, ghost:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default)
148
+
149
+ Link
150
+ Link: props(is:string, hover:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, info:boolean, warning:boolean, error:boolean) slots(default)
151
+
152
+ List
153
+ List: slots(default)
154
+ ListRow: slots(default)
155
+ ListColGrow: slots(default)
156
+ ListColWrap: slots(default)
157
+
158
+ Loading
159
+ LoadingSpinner: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean)
160
+ LoadingDots: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean)
161
+ LoadingRing: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean)
162
+ LoadingBall: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean)
163
+ LoadingBars: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean)
164
+ LoadingInfinity: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean)
165
+
166
+ Mask
167
+ Mask: props(shape:string, squircle:boolean, heart:boolean, hexagon:boolean, hexagon2:boolean, decagon:boolean, pentagon:boolean, diamond:boolean, square:boolean, circle:boolean, star:boolean, star2:boolean, triangle:boolean, triangle2:boolean, triangle3:boolean, triangle4:boolean, half1:boolean, half2:boolean) slots(default)
168
+
169
+ Menu
170
+ Menu: props(align:string, vertical:boolean, horizontal:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default)
171
+ MenuItem: props(active:boolean, disabled:boolean) slots(default)
172
+ MenuTitle: slots(default)
173
+ MenuExpand: props(open:boolean, hover:boolean, delay-enter:number, delay-leave:number, close-on-click-outside:boolean) slots(default) events(update:open)
174
+ MenuExpandToggle: slots(default)
64
175
 
65
- # pnpm
66
- pnpm preview
176
+ Modal
177
+ Modal: props(model-value:boolean, close-on-click-outside:boolean, placement:string, top:boolean, bottom:boolean, start:boolean, end:boolean) slots(default)
178
+ ModalBox: slots(default)
179
+ ModalAction: slots(default)
67
180
 
68
- # yarn
69
- yarn preview
181
+ MockupBrowser
182
+ MockupBrowser: slots(default)
183
+ MockupBrowserToolbar: slots(default)
70
184
 
71
- # bun
72
- bun run preview
185
+ MockupCode
186
+ MockupCode: slots(default)
187
+
188
+ MockupPhone
189
+ MockupPhone: slots(default)
190
+
191
+ MockupWindow
192
+ MockupWindow: slots(default)
193
+
194
+ Navbar
195
+ Navbar: props(is:any, glass:boolean) slots(default)
196
+ NavbarStart: props(is:any) slots(default)
197
+ NavbarCenter: props(is:any) slots(default)
198
+ NavbarEnd: props(is:any) slots(default)
199
+ NavButton: props(active:boolean, disabled:boolean) slots(default)
200
+
201
+ Pagination
202
+ Pagination: props(modelValue:number, total:number, perPage:number, maxVisible:number, join:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default) events(update:modelValue)
203
+
204
+ Progress
205
+ Progress: props(value:number, max:number, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, info:boolean, warning:boolean, error:boolean)
206
+
207
+ Prose
208
+ Prose: props(class:string) slots(default)
209
+
210
+ RadialProgress
211
+ RadialProgress: props(value:number|string, size:string, thickness:string, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean) slots(default)
212
+
213
+ Radio
214
+ Radio: props(modelValue:any, value:any, disabled:boolean, themeController:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, warning:boolean, info:boolean, error:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) events(update:modelValue)
215
+ RadioGroup: props(modelValue:any, name:string, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, warning:boolean, info:boolean, error:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) slots(default) events(update:modelValue)
216
+
217
+ Range
218
+ Range: props(modelValue:number|string, min:number|string, max:number|string, step:number|string, disabled:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, warning:boolean, info:boolean, error:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) events(update:modelValue)
219
+ RangeMeasure: props(modelValue:number|string, min:number|string, max:number|string, step:number|string, numbered:boolean, asButtons:boolean, disabled:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, warning:boolean, info:boolean, error:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) slots(default) events(update:modelValue)
220
+ RangeMeasureTick: props(tick:number, modelValue:number|string, numbered:boolean, asButton:boolean, isHidden:boolean, disabled:boolean) slots(default) events(update:modelValue)
221
+
222
+ Rating
223
+ Rating: props(modelValue:number|string, count:number|string, half:boolean, disabled:boolean, bg:string, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, shape:string, squircle:boolean, heart:boolean, hexagon:boolean, hexagon2:boolean, decagon:boolean, pentagon:boolean, diamond:boolean, square:boolean, circle:boolean, star:boolean, star2:boolean, triangle:boolean, triangle2:boolean, triangle3:boolean, triangle4:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) events(update:modelValue)
224
+
225
+ Select
226
+ Select: props(modelValue:any, options:Array, value:function, label:function, resultAsObject:boolean, join:boolean, ghost:boolean, disabled:boolean, native:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean, validator:boolean) events(update:modelValue)
227
+
228
+ Skeleton
229
+ Skeleton: slots(default)
230
+ SkeletonText: props(is:string|Component) slots(default)
231
+
232
+ Stack
233
+ Stack: props(is:string) slots(default)
234
+
235
+ Stat
236
+ Stats: slots(default)
237
+ Stat: props(orientation:string, vertical:boolean, horizontal:boolean) slots(default)
238
+ StatTitle: slots(default)
239
+ StatValue: slots(default)
240
+ StatDesc: slots(default)
241
+ StatFigure: slots(default)
242
+ StatActions: slots(default)
243
+
244
+ Status
245
+ Status: props(color:string, neutral:boolean, primary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) slots(default)
246
+
247
+ Steps
248
+ Steps: props(orientation:string, vertical:boolean, horizontal:boolean) slots(default)
249
+ Step: props(glyph:string, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean) slots(default)
250
+ StepIcon: slots(default)
251
+
252
+ Swap
253
+ Swap: props(modelValue:boolean|null, rotate:boolean, flip:boolean) slots(default, swap, indeterminate)
254
+
255
+ Table
256
+ Table: props(zebra:boolean, pinRows:boolean, pinCols:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) slots(default)
257
+
258
+ Tabs
259
+ Tabs: props(name:string, currentTab:string, variant:string, box:boolean, border:boolean, lift:boolean, placement:string, top:boolean, bottom:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean) slots(default) events(update:currentTab)
260
+ Tab: props(is:any, name:string, active:boolean, disabled:boolean) slots(default)
261
+ TabContent: props(is:any, name:string) slots(default)
262
+
263
+ Text
264
+ Text: props(is:string, join:boolean, block:boolean, inline:boolean, inlineBlock:boolean, label:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, neutralContent:boolean, primaryContent:boolean, secondaryContent:boolean, accentContent:boolean, infoContent:boolean, successContent:boolean, warningContent:boolean, errorContent:boolean, size:string, xl:boolean, lg:boolean, sm:boolean, xs:boolean, align:string, left:boolean, center:boolean, right:boolean, justify:boolean, case:string, uppercase:boolean, lowercase:boolean, capitalize:boolean, normalCase:boolean, font:string, sans:boolean, serif:boolean, mono:boolean, weight:string, thin:boolean, extralight:boolean, light:boolean, normal:boolean, medium:boolean, semibold:boolean, bold:boolean, extrabold:boolean, black:boolean) slots(default)
265
+
266
+ TextArea
267
+ TextArea: props(modelValue:string, placeholder:string, type:string, rows:number, autoExpand:boolean, ghost:boolean, disabled:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, size:string, xl:boolean, lg:boolean, md:boolean, sm:boolean, xs:boolean, validator:boolean) events(update:modelValue)
268
+
269
+ TextRotate
270
+ TextRotate: props(is:string|Component, center:boolean, duration:number) slots(default)
271
+
272
+ ThemeController
273
+ ThemeController: props(themes:DaisyThemeInput[], defaultTheme:string, storage:Function) slots(default)
274
+ ThemeTile: props(theme:string, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean)
275
+
276
+ ThemeProvider
277
+ ThemeProvider: props(dataTheme:string, cssVars:string, snoop:boolean) slots(default)
278
+
279
+ Timeline
280
+ Timeline: props(vertical:boolean, horizontal:boolean, compact:boolean, snapIcon:boolean, class:string) slots(default)
281
+ TimelineItem: props(hr:boolean, class:string) slots(start, middle, end, hr-top, hr-bottom)
282
+ TimelineStart: props(box:boolean, class:string) slots(default)
283
+ TimelineMiddle: props(class:string) slots(default)
284
+ TimelineEnd: props(box:boolean, class:string) slots(default)
285
+ TimelineLine: props(color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean)
286
+
287
+ Toast
288
+ Toast: props(hAlign:string, start:boolean, center:boolean, end:boolean, vAlign:string, top:boolean, middle:boolean, bottom:boolean, name:string, defaults:Partial<ToastSettings>, limit:number) slots(default)
289
+
290
+ Toggle
291
+ Toggle: props(modelValue:any, disabled:boolean, validator:boolean, theme-controller:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, success:boolean, info:boolean, warning:boolean, error:boolean, size:string, xs:boolean, sm:boolean, md:boolean, lg:boolean, xl:boolean) events(update:modelValue)
292
+
293
+ Tooltip
294
+ Tooltip: props(tip:string|number, open:boolean, color:string, neutral:boolean, primary:boolean, secondary:boolean, accent:boolean, info:boolean, success:boolean, warning:boolean, error:boolean, position:string, top:boolean, right:boolean, bottom:boolean, left:boolean, delayEnter:number, delayLeave:number) slots(default)
295
+ TooltipTarget: slots(default)
296
+ TooltipContent: slots(default)
297
+
298
+ Validator
299
+ ValidatorHint: slots(default)
73
300
  ```
74
301
 
75
- Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
302
+ ## License
303
+
304
+ MIT
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { provide, ref, watch } from 'vue';
2
+ import { provide, ref, watch } from 'vue'
3
3
 
4
4
  const props = defineProps<{
5
5
  modelValue?: string | number
@@ -7,10 +7,13 @@ const props = defineProps<{
7
7
  const emit = defineEmits(['update:modelValue'])
8
8
 
9
9
  const value = ref(props.modelValue)
10
- watch(() => props.modelValue, (val) => {
11
- value.value = val
12
- })
13
- watch(value, (val) => {
10
+ watch(
11
+ () => props.modelValue,
12
+ val => {
13
+ value.value = val
14
+ },
15
+ )
16
+ watch(value, val => {
14
17
  if (props.modelValue !== val) {
15
18
  emit('update:modelValue', val)
16
19
  }
@@ -16,7 +16,8 @@ const props = defineProps<{
16
16
 
17
17
  <template>
18
18
  <div
19
- class="alert" :class="{
19
+ class="alert"
20
+ :class="{
20
21
  'alert-outline': props.outline,
21
22
  'alert-dash': props.dash,
22
23
  'alert-soft': props.soft,
@@ -51,7 +51,7 @@ const maskShapeKeys = [
51
51
  'mask-half-2',
52
52
  ] as const
53
53
 
54
- type AvatarClassKey = typeof maskShapeKeys[number] | 'rounded-box' | 'avatar-online' | 'avatar-offline'
54
+ type AvatarClassKey = (typeof maskShapeKeys)[number] | 'rounded-box' | 'avatar-online' | 'avatar-offline'
55
55
 
56
56
  const avatarClasses = computed<Record<AvatarClassKey, boolean>>(() => {
57
57
  const mask: Record<AvatarClassKey, boolean> = {
@@ -86,18 +86,17 @@ const color = computed(() => {
86
86
  })
87
87
 
88
88
  function contrastingColor(color: any) {
89
- return (luma(color) >= 155) ? '000' : 'fff'
89
+ return luma(color) >= 155 ? '000' : 'fff'
90
90
  }
91
91
  // color can be a hx string or an array of RGB values 0-255
92
92
  function luma(color: any) {
93
- const rgb = (typeof color === 'string') ? hexToRGBArray(color) : color
94
- return (0.2126 * rgb[0]) + (0.7152 * rgb[1]) + (0.0722 * rgb[2]) // SMPTE C, Rec. 709 weightings
93
+ const rgb = typeof color === 'string' ? hexToRGBArray(color) : color
94
+ return 0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2] // SMPTE C, Rec. 709 weightings
95
95
  }
96
96
  function hexToRGBArray(color: any) {
97
97
  if (color.length === 3) {
98
98
  color = color.charAt(0) + color.charAt(0) + color.charAt(1) + color.charAt(1) + color.charAt(2) + color.charAt(2)
99
- }
100
- else if (color.length !== 6) {
99
+ } else if (color.length !== 6) {
101
100
  throw new Error(`Invalid hex color: ${color}`)
102
101
  }
103
102
  const rgb = []
@@ -110,7 +109,11 @@ function hexToRGBArray(color: any) {
110
109
 
111
110
  <template>
112
111
  <div class="avatar">
113
- <Mask :style="{ backgroundColor, color }" class="w-full h-full avatar-mask aspect-square" :class="[avatarClasses, maskClasses]">
112
+ <Mask
113
+ :style="{ backgroundColor, color }"
114
+ class="w-full h-full avatar-mask aspect-square"
115
+ :class="[avatarClasses, maskClasses]"
116
+ >
114
117
  <slot />
115
118
  </Mask>
116
119
  </div>
@@ -8,8 +8,12 @@ const props = defineProps<{
8
8
 
9
9
  <template>
10
10
  <div
11
- class="avatar-group" :class="{
12
- 'flex-row': props.orientation === 'horizontal' || props.horizontal || (!props.orientation && !props.vertical && !props.horizontal),
11
+ class="avatar-group"
12
+ :class="{
13
+ 'flex-row':
14
+ props.orientation === 'horizontal' ||
15
+ props.horizontal ||
16
+ (!props.orientation && !props.vertical && !props.horizontal),
13
17
  'flex-col': props.orientation === 'vertical' || props.vertical,
14
18
  }"
15
19
  >
@@ -1,4 +1,10 @@
1
1
  <script setup lang="ts">
2
+ import { computed, resolveComponent } from 'vue'
3
+
4
+ defineOptions({
5
+ inheritAttrs: false,
6
+ })
7
+
2
8
  const { is = 'div', ...props } = defineProps<{
3
9
  is?: string
4
10
  outline?: boolean
@@ -23,11 +29,23 @@ const { is = 'div', ...props } = defineProps<{
23
29
  warning?: boolean
24
30
  error?: boolean
25
31
  }>()
32
+
33
+ const NuxtLink = resolveComponent('NuxtLink')
34
+ const RouterLink = resolveComponent('RouterLink')
35
+
36
+ const resolvedComponent = computed(() => {
37
+ if (is === 'NuxtLink') return NuxtLink
38
+ if (is === 'RouterLink') return RouterLink
39
+ return is
40
+ })
26
41
  </script>
27
42
 
28
43
  <template>
29
44
  <component
30
- :is="is" class="badge" :class="{
45
+ :is="resolvedComponent"
46
+ v-bind="$attrs"
47
+ class="badge"
48
+ :class="{
31
49
  'badge-outline': props.outline,
32
50
  'badge-ghost': props.ghost,
33
51
  'badge-soft': props.soft,
@@ -1,52 +1,71 @@
1
1
  <script setup lang="ts">
2
- import { computed } from 'vue'
3
-
4
- const props = withDefaults(defineProps<{
5
- is?: string
6
- join?: boolean
7
-
8
- color?: string
9
- neutral?: boolean
10
- primary?: boolean
11
- secondary?: boolean
12
- accent?: boolean
13
- info?: boolean
14
- success?: boolean
15
- warning?: boolean
16
- error?: boolean
17
-
18
- ghost?: boolean
19
- link?: boolean
20
- glass?: boolean
21
- outline?: boolean
22
- dash?: boolean
23
- soft?: boolean
24
- disabled?: boolean
25
-
26
- shape?: 'circle' | 'square' | 'wide' | 'block'
27
- circle?: boolean
28
- square?: boolean
29
- wide?: boolean
30
- block?: boolean
31
-
32
- noAnimation?: boolean
33
- active?: boolean
34
-
35
- size?: 'lg' | 'md' | 'sm' | 'xs' | 'xl'
36
- xl?: boolean
37
- lg?: boolean
38
- md?: boolean
39
- sm?: boolean
40
- xs?: boolean
41
-
42
- type?: 'button' | 'submit' | 'reset'
43
- }>(), {
44
- type: 'button',
2
+ import { computed, resolveComponent } from 'vue'
3
+
4
+ defineOptions({
5
+ inheritAttrs: false,
45
6
  })
46
7
 
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ is?: string
11
+ join?: boolean
12
+
13
+ color?: string
14
+ neutral?: boolean
15
+ primary?: boolean
16
+ secondary?: boolean
17
+ accent?: boolean
18
+ info?: boolean
19
+ success?: boolean
20
+ warning?: boolean
21
+ error?: boolean
22
+
23
+ ghost?: boolean
24
+ link?: boolean
25
+ glass?: boolean
26
+ outline?: boolean
27
+ dash?: boolean
28
+ soft?: boolean
29
+ disabled?: boolean
30
+
31
+ shape?: 'circle' | 'square' | 'wide' | 'block'
32
+ circle?: boolean
33
+ square?: boolean
34
+ wide?: boolean
35
+ block?: boolean
36
+
37
+ noAnimation?: boolean
38
+ active?: boolean
39
+
40
+ size?: 'lg' | 'md' | 'sm' | 'xs' | 'xl'
41
+ xl?: boolean
42
+ lg?: boolean
43
+ md?: boolean
44
+ sm?: boolean
45
+ xs?: boolean
46
+
47
+ type?: 'button' | 'submit' | 'reset'
48
+ }>(),
49
+ {
50
+ type: 'button',
51
+ },
52
+ )
53
+ const NuxtLink = resolveComponent('NuxtLink')
54
+ const RouterLink = resolveComponent('RouterLink')
55
+
47
56
  // Accessibility: Determine if rendering a native button
48
57
  const isButton = computed(() => (props.is || 'button') === 'button')
49
58
 
59
+ // Resolve the component to render
60
+ const resolvedComponent = computed(() => {
61
+ if (!props.is || props.is === 'button' || props.is === 'a') {
62
+ return props.is || 'button'
63
+ }
64
+ if (props.is === 'NuxtLink') return NuxtLink
65
+ if (props.is === 'RouterLink') return RouterLink
66
+ return props.is
67
+ })
68
+
50
69
  // Accessibility: Keyboard event handler for custom elements
51
70
  function onKeydown(e: KeyboardEvent) {
52
71
  if (props.disabled) {
@@ -62,8 +81,9 @@ function onKeydown(e: KeyboardEvent) {
62
81
 
63
82
  <template>
64
83
  <component
65
- :is="is || 'button'"
66
- :type="type"
84
+ :is="resolvedComponent"
85
+ v-bind="$attrs"
86
+ :type="isButton ? type : undefined"
67
87
  :disabled="isButton && disabled ? true : undefined"
68
88
  :aria-disabled="!isButton && disabled ? true : undefined"
69
89
  :tabindex="!isButton ? (disabled ? -1 : 0) : undefined"
@@ -90,7 +110,7 @@ function onKeydown(e: KeyboardEvent) {
90
110
  'text-warning': !disabled && (warning || color === 'warning') && link,
91
111
  'text-error': !disabled && (error || color === 'error') && link,
92
112
 
93
- 'glass': !disabled && glass,
113
+ glass: !disabled && glass,
94
114
 
95
115
  'btn-circle': circle || shape === 'circle',
96
116
  'btn-square': square || shape === 'square',