@eslamdevui/ui 3.2.0-beta.2 → 3.2.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.
Files changed (221) hide show
  1. package/.nuxt/ui/alert.ts +0 -5
  2. package/.nuxt/ui/badge.ts +0 -5
  3. package/.nuxt/ui/button-group.ts +0 -13
  4. package/.nuxt/ui/button.ts +0 -5
  5. package/.nuxt/ui/carousel.ts +0 -5
  6. package/.nuxt/ui/content-surround.ts +0 -5
  7. package/.nuxt/ui/dashboard-navbar.ts +0 -5
  8. package/.nuxt/ui/dashboard-sidebar-collapse.ts +0 -5
  9. package/.nuxt/ui/dashboard-sidebar-toggle.ts +0 -5
  10. package/.nuxt/ui/dashboard-sidebar.ts +0 -10
  11. package/.nuxt/ui/index.ts +1 -48
  12. package/.nuxt/ui/input-menu.ts +0 -9
  13. package/.nuxt/ui/input-number.ts +0 -5
  14. package/.nuxt/ui/input-tags.ts +0 -9
  15. package/.nuxt/ui/input.ts +0 -9
  16. package/.nuxt/ui/select-menu.ts +0 -9
  17. package/.nuxt/ui/select.ts +0 -9
  18. package/.nuxt/ui/textarea.ts +0 -9
  19. package/.nuxt/ui/toast.ts +0 -5
  20. package/LICENSE.md +9 -9
  21. package/README.md +147 -147
  22. package/cli/commands/make/component.mjs +95 -95
  23. package/cli/commands/make/index.mjs +14 -14
  24. package/cli/commands/make/locale.mjs +64 -64
  25. package/cli/index.mjs +15 -15
  26. package/cli/package.json +13 -13
  27. package/cli/templates.mjs +236 -236
  28. package/cli/utils.mjs +31 -31
  29. package/dist/module.json +1 -1
  30. package/dist/module.mjs +1 -1
  31. package/dist/runtime/components/Accordion.vue +36 -36
  32. package/dist/runtime/components/Alert.vue +46 -46
  33. package/dist/runtime/components/App.vue +10 -10
  34. package/dist/runtime/components/Avatar.vue +27 -27
  35. package/dist/runtime/components/AvatarGroup.vue +4 -4
  36. package/dist/runtime/components/Badge.vue +16 -16
  37. package/dist/runtime/components/Breadcrumb.vue +32 -32
  38. package/dist/runtime/components/Button.vue +28 -28
  39. package/dist/runtime/components/ButtonGroup.vue +3 -3
  40. package/dist/runtime/components/Calendar.vue +74 -74
  41. package/dist/runtime/components/Card.vue +13 -13
  42. package/dist/runtime/components/Carousel.vue +58 -58
  43. package/dist/runtime/components/ChatMessage.vue +35 -35
  44. package/dist/runtime/components/ChatMessages.vue +55 -55
  45. package/dist/runtime/components/ChatPrompt.vue +26 -26
  46. package/dist/runtime/components/ChatPromptSubmit.vue +10 -10
  47. package/dist/runtime/components/Checkbox.vue +33 -33
  48. package/dist/runtime/components/CheckboxGroup.vue +32 -32
  49. package/dist/runtime/components/Chip.vue +11 -11
  50. package/dist/runtime/components/Collapsible.vue +9 -9
  51. package/dist/runtime/components/ColorPicker.vue +30 -30
  52. package/dist/runtime/components/CommandPalette.vue +117 -117
  53. package/dist/runtime/components/Container.vue +3 -3
  54. package/dist/runtime/components/ContextMenu.vue +22 -22
  55. package/dist/runtime/components/ContextMenuContent.vue +105 -105
  56. package/dist/runtime/components/DashboardGroup.vue +3 -3
  57. package/dist/runtime/components/DashboardNavbar.vue +40 -40
  58. package/dist/runtime/components/DashboardPanel.vue +27 -27
  59. package/dist/runtime/components/DashboardResizeHandle.vue +7 -7
  60. package/dist/runtime/components/DashboardSearch.vue +20 -20
  61. package/dist/runtime/components/DashboardSearchButton.vue +43 -43
  62. package/dist/runtime/components/DashboardSidebar.vue +74 -74
  63. package/dist/runtime/components/DashboardSidebarCollapse.vue +7 -7
  64. package/dist/runtime/components/DashboardSidebarToggle.vue +7 -7
  65. package/dist/runtime/components/Drawer.vue +55 -55
  66. package/dist/runtime/components/DropdownMenu.vue +24 -24
  67. package/dist/runtime/components/DropdownMenuContent.vue +107 -107
  68. package/dist/runtime/components/Error.vue +22 -22
  69. package/dist/runtime/components/Form.vue +8 -8
  70. package/dist/runtime/components/FormField.vue +37 -37
  71. package/dist/runtime/components/Icon.vue +1 -1
  72. package/dist/runtime/components/Input.vue +34 -34
  73. package/dist/runtime/components/InputMenu.vue +163 -163
  74. package/dist/runtime/components/InputNumber.vue +49 -49
  75. package/dist/runtime/components/InputTags.vue +55 -55
  76. package/dist/runtime/components/Kbd.vue +5 -5
  77. package/dist/runtime/components/Link.vue +14 -14
  78. package/dist/runtime/components/LinkBase.vue +8 -8
  79. package/dist/runtime/components/Modal.vue +69 -69
  80. package/dist/runtime/components/NavigationMenu.vue +166 -166
  81. package/dist/runtime/components/OverlayProvider.vue +9 -9
  82. package/dist/runtime/components/Pagination.vue +47 -47
  83. package/dist/runtime/components/PinInput.vue +20 -20
  84. package/dist/runtime/components/Popover.vue +17 -17
  85. package/dist/runtime/components/Progress.vue +19 -19
  86. package/dist/runtime/components/RadioGroup.vue +43 -43
  87. package/dist/runtime/components/Select.vue +96 -96
  88. package/dist/runtime/components/SelectMenu.vue +130 -130
  89. package/dist/runtime/components/Separator.vue +15 -15
  90. package/dist/runtime/components/Skeleton.vue +10 -10
  91. package/dist/runtime/components/Slideover.vue +76 -76
  92. package/dist/runtime/components/Slider.vue +27 -27
  93. package/dist/runtime/components/Stepper.vue +51 -51
  94. package/dist/runtime/components/Switch.vue +33 -33
  95. package/dist/runtime/components/Table.vue +77 -77
  96. package/dist/runtime/components/Tabs.vue +37 -37
  97. package/dist/runtime/components/Textarea.vue +33 -33
  98. package/dist/runtime/components/Timeline.vue +38 -38
  99. package/dist/runtime/components/Toast.vue +69 -69
  100. package/dist/runtime/components/Toaster.vue +28 -28
  101. package/dist/runtime/components/Tooltip.vue +19 -19
  102. package/dist/runtime/components/Tree.vue +60 -60
  103. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +2 -2
  104. package/dist/runtime/components/color-mode/ColorModeButton.vue +16 -16
  105. package/dist/runtime/components/color-mode/ColorModeImage.vue +2 -2
  106. package/dist/runtime/components/color-mode/ColorModeSelect.vue +19 -19
  107. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +19 -19
  108. package/dist/runtime/components/content/ContentNavigation.vue +109 -109
  109. package/dist/runtime/components/content/ContentSearch.vue +25 -25
  110. package/dist/runtime/components/content/ContentSearchButton.vue +38 -38
  111. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +12 -12
  112. package/dist/runtime/components/content/ContentSurround.vue +29 -29
  113. package/dist/runtime/components/content/ContentSurround.vue.d.ts +59 -59
  114. package/dist/runtime/components/content/ContentToc.vue +68 -68
  115. package/dist/runtime/components/content/ContentToc.vue.d.ts +88 -88
  116. package/dist/runtime/components/locale/LocaleSelect.vue +20 -20
  117. package/dist/runtime/components/prose/A.vue +3 -3
  118. package/dist/runtime/components/prose/Accordion.vue +5 -5
  119. package/dist/runtime/components/prose/AccordionItem.vue +5 -5
  120. package/dist/runtime/components/prose/Badge.vue +3 -3
  121. package/dist/runtime/components/prose/Blockquote.vue +3 -3
  122. package/dist/runtime/components/prose/Callout.vue +27 -27
  123. package/dist/runtime/components/prose/Card.vue +43 -43
  124. package/dist/runtime/components/prose/CardGroup.vue +3 -3
  125. package/dist/runtime/components/prose/Code.vue +3 -3
  126. package/dist/runtime/components/prose/CodeCollapse.vue +16 -16
  127. package/dist/runtime/components/prose/CodeGroup.vue +15 -15
  128. package/dist/runtime/components/prose/CodeIcon.vue +1 -1
  129. package/dist/runtime/components/prose/CodePreview.vue +9 -9
  130. package/dist/runtime/components/prose/CodeTree.vue +61 -61
  131. package/dist/runtime/components/prose/Collapsible.vue +15 -15
  132. package/dist/runtime/components/prose/Em.vue +1 -1
  133. package/dist/runtime/components/prose/Field.vue +23 -23
  134. package/dist/runtime/components/prose/FieldGroup.vue +3 -3
  135. package/dist/runtime/components/prose/H1.vue +6 -6
  136. package/dist/runtime/components/prose/H2.vue +10 -10
  137. package/dist/runtime/components/prose/H3.vue +10 -10
  138. package/dist/runtime/components/prose/H4.vue +6 -6
  139. package/dist/runtime/components/prose/Hr.vue +1 -1
  140. package/dist/runtime/components/prose/Icon.vue +1 -1
  141. package/dist/runtime/components/prose/Img.vue +8 -8
  142. package/dist/runtime/components/prose/Kbd.vue +1 -1
  143. package/dist/runtime/components/prose/Li.vue +3 -3
  144. package/dist/runtime/components/prose/Ol.vue +3 -3
  145. package/dist/runtime/components/prose/P.vue +3 -3
  146. package/dist/runtime/components/prose/Pre.vue +20 -20
  147. package/dist/runtime/components/prose/Script.vue +3 -3
  148. package/dist/runtime/components/prose/Steps.vue +3 -3
  149. package/dist/runtime/components/prose/Strong.vue +3 -3
  150. package/dist/runtime/components/prose/Table.vue +5 -5
  151. package/dist/runtime/components/prose/Tabs.vue +14 -14
  152. package/dist/runtime/components/prose/TabsItem.vue +5 -5
  153. package/dist/runtime/components/prose/Tbody.vue +3 -3
  154. package/dist/runtime/components/prose/Td.vue +3 -3
  155. package/dist/runtime/components/prose/Th.vue +3 -3
  156. package/dist/runtime/components/prose/Thead.vue +3 -3
  157. package/dist/runtime/components/prose/Tr.vue +3 -3
  158. package/dist/runtime/components/prose/Ul.vue +3 -3
  159. package/dist/runtime/components/prose/callout/Caution.vue +3 -3
  160. package/dist/runtime/components/prose/callout/Note.vue +3 -3
  161. package/dist/runtime/components/prose/callout/Tip.vue +3 -3
  162. package/dist/runtime/components/prose/callout/Warning.vue +3 -3
  163. package/dist/runtime/inertia/components/Link.vue +12 -12
  164. package/dist/runtime/inertia/components/LinkBase.vue +15 -15
  165. package/dist/runtime/types/app.config.d.ts +6 -6
  166. package/dist/runtime/vue/components/Icon.vue +1 -1
  167. package/dist/runtime/vue/components/Link.vue +31 -31
  168. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +7 -7
  169. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +7 -7
  170. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +7 -7
  171. package/package.json +1 -1
  172. package/vue-plugin.d.ts +5 -5
  173. package/.nuxt/ui/content/content-navigation.ts +0 -339
  174. package/.nuxt/ui/content/content-search-button.ts +0 -6
  175. package/.nuxt/ui/content/content-search.ts +0 -6
  176. package/.nuxt/ui/content/content-surround.ts +0 -39
  177. package/.nuxt/ui/content/content-toc.ts +0 -150
  178. package/.nuxt/ui/content/index.ts +0 -5
  179. package/.nuxt/ui/error.ts +0 -9
  180. package/.nuxt/ui/prose/a.ts +0 -6
  181. package/.nuxt/ui/prose/accordion-item.ts +0 -3
  182. package/.nuxt/ui/prose/accordion.ts +0 -6
  183. package/.nuxt/ui/prose/badge.ts +0 -3
  184. package/.nuxt/ui/prose/blockquote.ts +0 -3
  185. package/.nuxt/ui/prose/callout.ts +0 -129
  186. package/.nuxt/ui/prose/card-group.ts +0 -3
  187. package/.nuxt/ui/prose/card.ts +0 -119
  188. package/.nuxt/ui/prose/code-collapse.ts +0 -19
  189. package/.nuxt/ui/prose/code-group.ts +0 -13
  190. package/.nuxt/ui/prose/code-icon.ts +0 -66
  191. package/.nuxt/ui/prose/code-preview.ts +0 -14
  192. package/.nuxt/ui/prose/code-tree.ts +0 -28
  193. package/.nuxt/ui/prose/code.ts +0 -27
  194. package/.nuxt/ui/prose/collapsible.ts +0 -12
  195. package/.nuxt/ui/prose/em.ts +0 -3
  196. package/.nuxt/ui/prose/field-group.ts +0 -3
  197. package/.nuxt/ui/prose/field.ts +0 -11
  198. package/.nuxt/ui/prose/h1.ts +0 -6
  199. package/.nuxt/ui/prose/h2.ts +0 -14
  200. package/.nuxt/ui/prose/h3.ts +0 -14
  201. package/.nuxt/ui/prose/h4.ts +0 -6
  202. package/.nuxt/ui/prose/hr.ts +0 -3
  203. package/.nuxt/ui/prose/icon.ts +0 -3
  204. package/.nuxt/ui/prose/img.ts +0 -3
  205. package/.nuxt/ui/prose/index.ts +0 -41
  206. package/.nuxt/ui/prose/kbd.ts +0 -3
  207. package/.nuxt/ui/prose/li.ts +0 -3
  208. package/.nuxt/ui/prose/ol.ts +0 -3
  209. package/.nuxt/ui/prose/p.ts +0 -3
  210. package/.nuxt/ui/prose/pre.ts +0 -17
  211. package/.nuxt/ui/prose/steps.ts +0 -19
  212. package/.nuxt/ui/prose/strong.ts +0 -3
  213. package/.nuxt/ui/prose/table.ts +0 -6
  214. package/.nuxt/ui/prose/tabs-item.ts +0 -3
  215. package/.nuxt/ui/prose/tabs.ts +0 -5
  216. package/.nuxt/ui/prose/tbody.ts +0 -3
  217. package/.nuxt/ui/prose/td.ts +0 -3
  218. package/.nuxt/ui/prose/th.ts +0 -3
  219. package/.nuxt/ui/prose/thead.ts +0 -3
  220. package/.nuxt/ui/prose/tr.ts +0 -3
  221. package/.nuxt/ui/prose/ul.ts +0 -3
@@ -62,55 +62,55 @@ defineExpose({
62
62
  </script>
63
63
 
64
64
  <template>
65
- <StepperRoot v-bind="rootProps" v-model="currentStepIndex" :class="ui.root({ class: [props.ui?.root, props.class] })">
66
- <div :class="ui.header({ class: props.ui?.header })">
67
- <StepperItem
68
- v-for="(item, count) in items"
69
- :key="item.value ?? count"
70
- :step="count"
71
- :disabled="item.disabled || props.disabled"
72
- :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })"
73
- >
74
- <div :class="ui.container({ class: [props.ui?.container, item.ui?.container] })">
75
- <StepperTrigger :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })">
76
- <StepperIndicator :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })">
77
- <slot name="indicator" :item="item">
78
- <UIcon v-if="item.icon" :name="item.icon" :class="ui.icon({ class: [props.ui?.icon, item.ui?.icon] })" />
79
- <template v-else>
80
- {{ count + 1 }}
81
- </template>
82
- </slot>
83
- </StepperIndicator>
84
- </StepperTrigger>
85
-
86
- <StepperSeparator
87
- v-if="count < items.length - 1"
88
- :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator] })"
89
- />
90
- </div>
91
-
92
- <div :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })">
93
- <StepperTitle as="div" :class="ui.title({ class: [props.ui?.title, item.ui?.title] })">
94
- <slot name="title" :item="item">
95
- {{ item.title }}
96
- </slot>
97
- </StepperTitle>
98
- <StepperDescription as="div" :class="ui.description({ class: [props.ui?.description, item.ui?.description] })">
99
- <slot name="description" :item="item">
100
- {{ item.description }}
101
- </slot>
102
- </StepperDescription>
103
- </div>
104
- </StepperItem>
105
- </div>
106
-
107
- <div v-if="currentStep?.content || !!slots.content || currentStep?.slot" :class="ui.content({ class: props.ui?.content })">
108
- <slot
109
- :name="currentStep?.slot || 'content'"
110
- :item="currentStep"
111
- >
112
- {{ currentStep?.content }}
113
- </slot>
114
- </div>
115
- </StepperRoot>
65
+ <StepperRoot v-bind="rootProps" v-model="currentStepIndex" :class="ui.root({ class: [props.ui?.root, props.class] })">
66
+ <div :class="ui.header({ class: props.ui?.header })">
67
+ <StepperItem
68
+ v-for="(item, count) in items"
69
+ :key="item.value ?? count"
70
+ :step="count"
71
+ :disabled="item.disabled || props.disabled"
72
+ :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })"
73
+ >
74
+ <div :class="ui.container({ class: [props.ui?.container, item.ui?.container] })">
75
+ <StepperTrigger :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })">
76
+ <StepperIndicator :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })">
77
+ <slot name="indicator" :item="item">
78
+ <UIcon v-if="item.icon" :name="item.icon" :class="ui.icon({ class: [props.ui?.icon, item.ui?.icon] })" />
79
+ <template v-else>
80
+ {{ count + 1 }}
81
+ </template>
82
+ </slot>
83
+ </StepperIndicator>
84
+ </StepperTrigger>
85
+
86
+ <StepperSeparator
87
+ v-if="count < items.length - 1"
88
+ :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator] })"
89
+ />
90
+ </div>
91
+
92
+ <div :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })">
93
+ <StepperTitle as="div" :class="ui.title({ class: [props.ui?.title, item.ui?.title] })">
94
+ <slot name="title" :item="item">
95
+ {{ item.title }}
96
+ </slot>
97
+ </StepperTitle>
98
+ <StepperDescription as="div" :class="ui.description({ class: [props.ui?.description, item.ui?.description] })">
99
+ <slot name="description" :item="item">
100
+ {{ item.description }}
101
+ </slot>
102
+ </StepperDescription>
103
+ </div>
104
+ </StepperItem>
105
+ </div>
106
+
107
+ <div v-if="currentStep?.content || !!slots.content || currentStep?.slot" :class="ui.content({ class: props.ui?.content })">
108
+ <slot
109
+ :name="currentStep?.slot || 'content'"
110
+ :item="currentStep"
111
+ >
112
+ {{ currentStep?.content }}
113
+ </slot>
114
+ </div>
115
+ </StepperRoot>
116
116
  </template>
@@ -53,37 +53,37 @@ function onUpdate(value) {
53
53
  </script>
54
54
 
55
55
  <template>
56
- <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
57
- <div :class="ui.container({ class: props.ui?.container })">
58
- <SwitchRoot
59
- :id="id"
60
- v-bind="{ ...rootProps, ...$attrs, ...ariaAttrs }"
61
- v-model="modelValue"
62
- :name="name"
63
- :disabled="disabled || loading"
64
- :class="ui.base({ class: props.ui?.base })"
65
- @update:model-value="onUpdate"
66
- >
67
- <SwitchThumb :class="ui.thumb({ class: props.ui?.thumb })">
68
- <UIcon v-if="loading" :name="loadingIcon || appConfig.ui.icons.loading" :class="ui.icon({ class: props.ui?.icon, checked: true, unchecked: true })" />
69
- <template v-else>
70
- <UIcon v-if="checkedIcon" :name="checkedIcon" :class="ui.icon({ class: props.ui?.icon, checked: true })" />
71
- <UIcon v-if="uncheckedIcon" :name="uncheckedIcon" :class="ui.icon({ class: props.ui?.icon, unchecked: true })" />
72
- </template>
73
- </SwitchThumb>
74
- </SwitchRoot>
75
- </div>
76
- <div v-if="label || !!slots.label || (description || !!slots.description)" :class="ui.wrapper({ class: props.ui?.wrapper })">
77
- <Label v-if="label || !!slots.label" :for="id" :class="ui.label({ class: props.ui?.label })">
78
- <slot name="label" :label="label">
79
- {{ label }}
80
- </slot>
81
- </Label>
82
- <p v-if="description || !!slots.description" :class="ui.description({ class: props.ui?.description })">
83
- <slot name="description" :description="description">
84
- {{ description }}
85
- </slot>
86
- </p>
87
- </div>
88
- </Primitive>
56
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
57
+ <div :class="ui.container({ class: props.ui?.container })">
58
+ <SwitchRoot
59
+ :id="id"
60
+ v-bind="{ ...rootProps, ...$attrs, ...ariaAttrs }"
61
+ v-model="modelValue"
62
+ :name="name"
63
+ :disabled="disabled || loading"
64
+ :class="ui.base({ class: props.ui?.base })"
65
+ @update:model-value="onUpdate"
66
+ >
67
+ <SwitchThumb :class="ui.thumb({ class: props.ui?.thumb })">
68
+ <UIcon v-if="loading" :name="loadingIcon || appConfig.ui.icons.loading" :class="ui.icon({ class: props.ui?.icon, checked: true, unchecked: true })" />
69
+ <template v-else>
70
+ <UIcon v-if="checkedIcon" :name="checkedIcon" :class="ui.icon({ class: props.ui?.icon, checked: true })" />
71
+ <UIcon v-if="uncheckedIcon" :name="uncheckedIcon" :class="ui.icon({ class: props.ui?.icon, unchecked: true })" />
72
+ </template>
73
+ </SwitchThumb>
74
+ </SwitchRoot>
75
+ </div>
76
+ <div v-if="label || !!slots.label || (description || !!slots.description)" :class="ui.wrapper({ class: props.ui?.wrapper })">
77
+ <Label v-if="label || !!slots.label" :for="id" :class="ui.label({ class: props.ui?.label })">
78
+ <slot name="label" :label="label">
79
+ {{ label }}
80
+ </slot>
81
+ </Label>
82
+ <p v-if="description || !!slots.description" :class="ui.description({ class: props.ui?.description })">
83
+ <slot name="description" :description="description">
84
+ {{ description }}
85
+ </slot>
86
+ </p>
87
+ </div>
88
+ </Primitive>
89
89
  </template>
@@ -189,98 +189,98 @@ defineExpose({
189
189
  </script>
190
190
 
191
191
  <template>
192
- <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
193
- <table ref="tableRef" :class="ui.base({ class: [props.ui?.base] })">
194
- <caption v-if="caption || !!slots.caption" :class="ui.caption({ class: [props.ui?.caption] })">
195
- <slot name="caption">
196
- {{ caption }}
197
- </slot>
198
- </caption>
199
-
200
- <thead :class="ui.thead({ class: [props.ui?.thead] })">
201
- <tr v-for="headerGroup in tableApi.getHeaderGroups()" :key="headerGroup.id" :class="ui.tr({ class: [props.ui?.tr] })">
202
- <th
203
- v-for="header in headerGroup.headers"
204
- :key="header.id"
205
- :data-pinned="header.column.getIsPinned()"
206
- :colspan="header.colSpan > 1 ? header.colSpan : void 0"
192
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
193
+ <table ref="tableRef" :class="ui.base({ class: [props.ui?.base] })">
194
+ <caption v-if="caption || !!slots.caption" :class="ui.caption({ class: [props.ui?.caption] })">
195
+ <slot name="caption">
196
+ {{ caption }}
197
+ </slot>
198
+ </caption>
199
+
200
+ <thead :class="ui.thead({ class: [props.ui?.thead] })">
201
+ <tr v-for="headerGroup in tableApi.getHeaderGroups()" :key="headerGroup.id" :class="ui.tr({ class: [props.ui?.tr] })">
202
+ <th
203
+ v-for="header in headerGroup.headers"
204
+ :key="header.id"
205
+ :data-pinned="header.column.getIsPinned()"
206
+ :colspan="header.colSpan > 1 ? header.colSpan : void 0"
207
207
  :class="ui.th({
208
208
  class: [
209
209
  props.ui?.th,
210
210
  typeof header.column.columnDef.meta?.class?.th === 'function' ? header.column.columnDef.meta.class.th(header) : header.column.columnDef.meta?.class?.th
211
211
  ],
212
212
  pinned: !!header.column.getIsPinned()
213
- })"
214
- >
215
- <slot :name="`${header.id}-header`" v-bind="header.getContext()">
216
- <FlexRender v-if="!header.isPlaceholder" :render="header.column.columnDef.header" :props="header.getContext()" />
217
- </slot>
218
- </th>
219
- </tr>
220
-
221
- <tr :class="ui.separator({ class: [props.ui?.separator] })" />
222
- </thead>
223
-
224
- <tbody :class="ui.tbody({ class: [props.ui?.tbody] })">
225
- <slot name="body-top" />
226
-
227
- <template v-if="tableApi.getRowModel().rows?.length">
228
- <template v-for="row in tableApi.getRowModel().rows" :key="row.id">
229
- <tr
230
- :data-selected="row.getIsSelected()"
231
- :data-selectable="!!props.onSelect"
232
- :data-expanded="row.getIsExpanded()"
233
- :role="props.onSelect ? 'button' : void 0"
234
- :tabindex="props.onSelect ? 0 : void 0"
213
+ })"
214
+ >
215
+ <slot :name="`${header.id}-header`" v-bind="header.getContext()">
216
+ <FlexRender v-if="!header.isPlaceholder" :render="header.column.columnDef.header" :props="header.getContext()" />
217
+ </slot>
218
+ </th>
219
+ </tr>
220
+
221
+ <tr :class="ui.separator({ class: [props.ui?.separator] })" />
222
+ </thead>
223
+
224
+ <tbody :class="ui.tbody({ class: [props.ui?.tbody] })">
225
+ <slot name="body-top" />
226
+
227
+ <template v-if="tableApi.getRowModel().rows?.length">
228
+ <template v-for="row in tableApi.getRowModel().rows" :key="row.id">
229
+ <tr
230
+ :data-selected="row.getIsSelected()"
231
+ :data-selectable="!!props.onSelect"
232
+ :data-expanded="row.getIsExpanded()"
233
+ :role="props.onSelect ? 'button' : void 0"
234
+ :tabindex="props.onSelect ? 0 : void 0"
235
235
  :class="ui.tr({
236
236
  class: [
237
237
  props.ui?.tr,
238
238
  typeof tableApi.options.meta?.class?.tr === 'function' ? tableApi.options.meta.class.tr(row) : tableApi.options.meta?.class?.tr
239
239
  ]
240
- })"
241
- @click="handleRowSelect(row, $event)"
242
- >
243
- <td
244
- v-for="cell in row.getVisibleCells()"
245
- :key="cell.id"
246
- :data-pinned="cell.column.getIsPinned()"
240
+ })"
241
+ @click="handleRowSelect(row, $event)"
242
+ >
243
+ <td
244
+ v-for="cell in row.getVisibleCells()"
245
+ :key="cell.id"
246
+ :data-pinned="cell.column.getIsPinned()"
247
247
  :class="ui.td({
248
248
  class: [
249
249
  props.ui?.td,
250
250
  typeof cell.column.columnDef.meta?.class?.td === 'function' ? cell.column.columnDef.meta.class.td(cell) : cell.column.columnDef.meta?.class?.td
251
251
  ],
252
252
  pinned: !!cell.column.getIsPinned()
253
- })"
254
- >
255
- <slot :name="`${cell.column.id}-cell`" v-bind="cell.getContext()">
256
- <FlexRender :render="cell.column.columnDef.cell" :props="cell.getContext()" />
257
- </slot>
258
- </td>
259
- </tr>
260
- <tr v-if="row.getIsExpanded()" :class="ui.tr({ class: [props.ui?.tr] })">
261
- <td :colspan="row.getAllCells().length" :class="ui.td({ class: [props.ui?.td] })">
262
- <slot name="expanded" :row="row" />
263
- </td>
264
- </tr>
265
- </template>
266
- </template>
267
-
268
- <tr v-else-if="loading && !!slots['loading']">
269
- <td :colspan="columns?.length" :class="ui.loading({ class: props.ui?.loading })">
270
- <slot name="loading" />
271
- </td>
272
- </tr>
273
-
274
- <tr v-else>
275
- <td :colspan="columns?.length" :class="ui.empty({ class: props.ui?.empty })">
276
- <slot name="empty">
277
- {{ empty || t("table.noData") }}
278
- </slot>
279
- </td>
280
- </tr>
281
-
282
- <slot name="body-bottom" />
283
- </tbody>
284
- </table>
285
- </Primitive>
253
+ })"
254
+ >
255
+ <slot :name="`${cell.column.id}-cell`" v-bind="cell.getContext()">
256
+ <FlexRender :render="cell.column.columnDef.cell" :props="cell.getContext()" />
257
+ </slot>
258
+ </td>
259
+ </tr>
260
+ <tr v-if="row.getIsExpanded()" :class="ui.tr({ class: [props.ui?.tr] })">
261
+ <td :colspan="row.getAllCells().length" :class="ui.td({ class: [props.ui?.td] })">
262
+ <slot name="expanded" :row="row" />
263
+ </td>
264
+ </tr>
265
+ </template>
266
+ </template>
267
+
268
+ <tr v-else-if="loading && !!slots['loading']">
269
+ <td :colspan="columns?.length" :class="ui.loading({ class: props.ui?.loading })">
270
+ <slot name="loading" />
271
+ </td>
272
+ </tr>
273
+
274
+ <tr v-else>
275
+ <td :colspan="columns?.length" :class="ui.empty({ class: props.ui?.empty })">
276
+ <slot name="empty">
277
+ {{ empty || t("table.noData") }}
278
+ </slot>
279
+ </td>
280
+ </tr>
281
+
282
+ <slot name="body-bottom" />
283
+ </tbody>
284
+ </table>
285
+ </Primitive>
286
286
  </template>
@@ -44,41 +44,41 @@ defineExpose({
44
44
  </script>
45
45
 
46
46
  <template>
47
- <TabsRoot v-bind="rootProps" :class="ui.root({ class: [props.ui?.root, props.class] })">
48
- <TabsList :class="ui.list({ class: props.ui?.list })">
49
- <TabsIndicator :class="ui.indicator({ class: props.ui?.indicator })" />
50
-
51
- <slot name="list-leading" />
52
-
53
- <TabsTrigger
54
- v-for="(item, index) of items"
55
- :key="index"
56
- :ref="(el) => triggersRef[index] = el"
57
- :value="item.value || String(index)"
58
- :disabled="item.disabled"
59
- :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })"
60
- >
61
- <slot name="leading" :item="item" :index="index">
62
- <UIcon v-if="item.icon" :name="item.icon" :class="ui.leadingIcon({ class: [props.ui?.leadingIcon, item.ui?.leadingIcon] })" />
63
- <UAvatar v-else-if="item.avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="item.avatar" :class="ui.leadingAvatar({ class: [props.ui?.leadingAvatar, item.ui?.leadingAvatar] })" />
64
- </slot>
65
-
66
- <span v-if="get(item, props.labelKey) || !!slots.default" :class="ui.label({ class: [props.ui?.label, item.ui?.label] })">
67
- <slot :item="item" :index="index">{{ get(item, props.labelKey) }}</slot>
68
- </span>
69
-
70
- <slot name="trailing" :item="item" :index="index" />
71
- </TabsTrigger>
72
-
73
- <slot name="list-trailing" />
74
- </TabsList>
75
-
76
- <template v-if="!!content">
77
- <TabsContent v-for="(item, index) of items" :key="index" :value="item.value || String(index)" :class="ui.content({ class: [props.ui?.content, item.ui?.content, item.class] })">
78
- <slot :name="item.slot || 'content'" :item="item" :index="index">
79
- {{ item.content }}
80
- </slot>
81
- </TabsContent>
82
- </template>
83
- </TabsRoot>
47
+ <TabsRoot v-bind="rootProps" :class="ui.root({ class: [props.ui?.root, props.class] })">
48
+ <TabsList :class="ui.list({ class: props.ui?.list })">
49
+ <TabsIndicator :class="ui.indicator({ class: props.ui?.indicator })" />
50
+
51
+ <slot name="list-leading" />
52
+
53
+ <TabsTrigger
54
+ v-for="(item, index) of items"
55
+ :key="index"
56
+ :ref="(el) => triggersRef[index] = el"
57
+ :value="item.value || String(index)"
58
+ :disabled="item.disabled"
59
+ :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })"
60
+ >
61
+ <slot name="leading" :item="item" :index="index">
62
+ <UIcon v-if="item.icon" :name="item.icon" :class="ui.leadingIcon({ class: [props.ui?.leadingIcon, item.ui?.leadingIcon] })" />
63
+ <UAvatar v-else-if="item.avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="item.avatar" :class="ui.leadingAvatar({ class: [props.ui?.leadingAvatar, item.ui?.leadingAvatar] })" />
64
+ </slot>
65
+
66
+ <span v-if="get(item, props.labelKey) || !!slots.default" :class="ui.label({ class: [props.ui?.label, item.ui?.label] })">
67
+ <slot :item="item" :index="index">{{ get(item, props.labelKey) }}</slot>
68
+ </span>
69
+
70
+ <slot name="trailing" :item="item" :index="index" />
71
+ </TabsTrigger>
72
+
73
+ <slot name="list-trailing" />
74
+ </TabsList>
75
+
76
+ <template v-if="!!content">
77
+ <TabsContent v-for="(item, index) of items" :key="index" :value="item.value || String(index)" :class="ui.content({ class: [props.ui?.content, item.ui?.content, item.class] })">
78
+ <slot :name="item.slot || 'content'" :item="item" :index="index">
79
+ {{ item.content }}
80
+ </slot>
81
+ </TabsContent>
82
+ </template>
83
+ </TabsRoot>
84
84
  </template>
@@ -133,37 +133,37 @@ defineExpose({
133
133
  </script>
134
134
 
135
135
  <template>
136
- <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
137
- <textarea
138
- :id="id"
139
- ref="textareaRef"
140
- :value="modelValue"
141
- :name="name"
142
- :rows="rows"
143
- :placeholder="placeholder"
144
- :class="ui.base({ class: props.ui?.base })"
145
- :disabled="disabled"
146
- :required="required"
147
- v-bind="{ ...$attrs, ...ariaAttrs }"
148
- @input="onInput"
149
- @blur="onBlur"
150
- @change="onChange"
151
- @focus="emitFormFocus"
152
- />
153
-
154
- <slot />
155
-
156
- <span v-if="isLeading || !!avatar || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
157
- <slot name="leading">
158
- <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
159
- <UAvatar v-else-if="!!avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="avatar" :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })" />
160
- </slot>
161
- </span>
162
-
163
- <span v-if="isTrailing || !!slots.trailing" :class="ui.trailing({ class: props.ui?.trailing })">
164
- <slot name="trailing">
165
- <UIcon v-if="trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
166
- </slot>
167
- </span>
168
- </Primitive>
136
+ <Primitive :as="as" :class="ui.root({ class: [props.ui?.root, props.class] })">
137
+ <textarea
138
+ :id="id"
139
+ ref="textareaRef"
140
+ :value="modelValue"
141
+ :name="name"
142
+ :rows="rows"
143
+ :placeholder="placeholder"
144
+ :class="ui.base({ class: props.ui?.base })"
145
+ :disabled="disabled"
146
+ :required="required"
147
+ v-bind="{ ...$attrs, ...ariaAttrs }"
148
+ @input="onInput"
149
+ @blur="onBlur"
150
+ @change="onChange"
151
+ @focus="emitFormFocus"
152
+ />
153
+
154
+ <slot />
155
+
156
+ <span v-if="isLeading || !!avatar || !!slots.leading" :class="ui.leading({ class: props.ui?.leading })">
157
+ <slot name="leading">
158
+ <UIcon v-if="isLeading && leadingIconName" :name="leadingIconName" :class="ui.leadingIcon({ class: props.ui?.leadingIcon })" />
159
+ <UAvatar v-else-if="!!avatar" :size="props.ui?.leadingAvatarSize || ui.leadingAvatarSize()" v-bind="avatar" :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })" />
160
+ </slot>
161
+ </span>
162
+
163
+ <span v-if="isTrailing || !!slots.trailing" :class="ui.trailing({ class: props.ui?.trailing })">
164
+ <slot name="trailing">
165
+ <UIcon v-if="trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
166
+ </slot>
167
+ </span>
168
+ </Primitive>
169
169
  </template>
@@ -51,42 +51,42 @@ function getItemState(index) {
51
51
  </script>
52
52
 
53
53
  <template>
54
- <Primitive :as="as" :data-orientation="orientation" :class="ui.root({ class: [props.ui?.root, props.class] })">
55
- <div
56
- v-for="(item, index) in items"
57
- :key="item.value ?? index"
58
- :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })"
59
- :data-state="getItemState(index)"
60
- >
61
- <div :class="ui.container({ class: [props.ui?.container, item.ui?.container] })">
62
- <UAvatar :size="size" :icon="item.icon" v-bind="typeof item.avatar === 'object' ? item.avatar : {}" :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })" :ui="{ icon: 'text-inherit', fallback: 'text-inherit' }">
63
- <slot :name="item.slot ? `${item.slot}-indicator` : 'indicator'" :item="item" />
64
- </UAvatar>
65
-
66
- <Separator
67
- v-if="index < items.length - 1"
68
- :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator] })"
69
- :orientation="props.orientation"
70
- />
71
- </div>
72
-
73
- <div :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })">
74
- <div v-if="item.date" :class="ui.date({ class: [props.ui?.date, item.ui?.date] })">
75
- <slot :name="item.slot ? `${item.slot}-date` : 'date'" :item="item">
76
- {{ item.date }}
77
- </slot>
78
- </div>
79
- <div v-if="item.title || !!slots.title" :class="ui.title({ class: [props.ui?.title, item.ui?.title] })">
80
- <slot :name="item.slot ? `${item.slot}-title` : 'title'" :item="item">
81
- {{ item.title }}
82
- </slot>
83
- </div>
84
- <div v-if="item.description || !!slots.description" :class="ui.description({ class: [props.ui?.description, item.ui?.description] })">
85
- <slot :name="item.slot ? `${item.slot}-description` : 'description'" :item="item">
86
- {{ item.description }}
87
- </slot>
88
- </div>
89
- </div>
90
- </div>
91
- </Primitive>
54
+ <Primitive :as="as" :data-orientation="orientation" :class="ui.root({ class: [props.ui?.root, props.class] })">
55
+ <div
56
+ v-for="(item, index) in items"
57
+ :key="item.value ?? index"
58
+ :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })"
59
+ :data-state="getItemState(index)"
60
+ >
61
+ <div :class="ui.container({ class: [props.ui?.container, item.ui?.container] })">
62
+ <UAvatar :size="size" :icon="item.icon" v-bind="typeof item.avatar === 'object' ? item.avatar : {}" :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })" :ui="{ icon: 'text-inherit', fallback: 'text-inherit' }">
63
+ <slot :name="item.slot ? `${item.slot}-indicator` : 'indicator'" :item="item" />
64
+ </UAvatar>
65
+
66
+ <Separator
67
+ v-if="index < items.length - 1"
68
+ :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator] })"
69
+ :orientation="props.orientation"
70
+ />
71
+ </div>
72
+
73
+ <div :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })">
74
+ <div v-if="item.date" :class="ui.date({ class: [props.ui?.date, item.ui?.date] })">
75
+ <slot :name="item.slot ? `${item.slot}-date` : 'date'" :item="item">
76
+ {{ item.date }}
77
+ </slot>
78
+ </div>
79
+ <div v-if="item.title || !!slots.title" :class="ui.title({ class: [props.ui?.title, item.ui?.title] })">
80
+ <slot :name="item.slot ? `${item.slot}-title` : 'title'" :item="item">
81
+ {{ item.title }}
82
+ </slot>
83
+ </div>
84
+ <div v-if="item.description || !!slots.description" :class="ui.description({ class: [props.ui?.description, item.ui?.description] })">
85
+ <slot :name="item.slot ? `${item.slot}-description` : 'description'" :item="item">
86
+ {{ item.description }}
87
+ </slot>
88
+ </div>
89
+ </div>
90
+ </div>
91
+ </Primitive>
92
92
  </template>