@wordup-md/nuxt-layer-shadcn-unocss 0.2.5 → 0.2.9
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/.github/workflows/publish.yml +38 -0
- package/components/layout/Footer.vue +1 -1
- package/components/ui/checkbox/Checkbox.vue +32 -0
- package/components/ui/checkbox/index.ts +1 -0
- package/components/ui/dropdown-menu/DropdownMenu.vue +15 -0
- package/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/components/ui/dropdown-menu/DropdownMenuContent.vue +35 -0
- package/components/ui/dropdown-menu/DropdownMenuGroup.vue +12 -0
- package/components/ui/dropdown-menu/DropdownMenuItem.vue +26 -0
- package/components/ui/dropdown-menu/DropdownMenuLabel.vue +22 -0
- package/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +19 -0
- package/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +41 -0
- package/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
- package/components/ui/dropdown-menu/DropdownMenuSub.vue +19 -0
- package/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +33 -0
- package/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/components/ui/dropdown-menu/index.ts +16 -0
- package/components/ui/table/Table.vue +3 -3
- package/components/ui/table/TableBody.vue +3 -3
- package/components/ui/table/TableCaption.vue +3 -3
- package/components/ui/table/TableCell.vue +3 -3
- package/components/ui/table/TableEmpty.vue +7 -7
- package/components/ui/table/TableFooter.vue +3 -3
- package/components/ui/table/TableHead.vue +3 -3
- package/components/ui/table/TableHeader.vue +3 -3
- package/components/ui/table/TableRow.vue +3 -3
- package/components/ui/table/index.ts +9 -9
- package/composables/useConfig.ts +1 -0
- package/index.d.ts +6 -0
- package/middleware/admin.global.ts +1 -1
- package/package.json +5 -1
- package/pages/admin/login.vue +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Publish to npm
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*' # Triggers on new version tags like v1.0.0
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
|
|
14
|
+
- name: Set up Node.js
|
|
15
|
+
uses: actions/setup-node@v4
|
|
16
|
+
with:
|
|
17
|
+
node-version: '20'
|
|
18
|
+
registry-url: 'https://registry.npmjs.org/'
|
|
19
|
+
|
|
20
|
+
- name: Install pnpm
|
|
21
|
+
uses: pnpm/action-setup@v2
|
|
22
|
+
with:
|
|
23
|
+
version: 8
|
|
24
|
+
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: |
|
|
27
|
+
echo 'shamefully-hoist=true' >> .npmrc
|
|
28
|
+
echo 'strict-peer-dependencies=false' >> .npmrc
|
|
29
|
+
echo 'only-built-dependencies=["sharp"]' >> .npmrc
|
|
30
|
+
pnpm install --no-frozen-lockfile
|
|
31
|
+
|
|
32
|
+
# - name: Build Nuxt (if needed)
|
|
33
|
+
# run: pnpm run build
|
|
34
|
+
|
|
35
|
+
- name: Publish to npm
|
|
36
|
+
run: pnpm publish --no-git-checks
|
|
37
|
+
env:
|
|
38
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { CheckboxRootEmits, CheckboxRootProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import { CheckboxIndicator, CheckboxRoot, useForwardPropsEmits } from 'reka-ui'
|
|
6
|
+
import { cn } from '@/lib/utils'
|
|
7
|
+
|
|
8
|
+
const props = defineProps<CheckboxRootProps & { class?: HTMLAttributes['class'] }>()
|
|
9
|
+
const emits = defineEmits<CheckboxRootEmits>()
|
|
10
|
+
|
|
11
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
12
|
+
|
|
13
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<CheckboxRoot
|
|
18
|
+
v-bind="forwarded"
|
|
19
|
+
:class="
|
|
20
|
+
cn('peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',
|
|
21
|
+
props.class)"
|
|
22
|
+
>
|
|
23
|
+
<CheckboxIndicator class="flex h-full w-full items-center justify-center text-current">
|
|
24
|
+
<slot>
|
|
25
|
+
<Icon
|
|
26
|
+
name="lucide:check"
|
|
27
|
+
:size="14"
|
|
28
|
+
/>
|
|
29
|
+
</slot>
|
|
30
|
+
</CheckboxIndicator>
|
|
31
|
+
</CheckboxRoot>
|
|
32
|
+
</template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Checkbox } from './Checkbox.vue'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuRootEmits, DropdownMenuRootProps } from 'reka-ui'
|
|
3
|
+
import { DropdownMenuRoot, useForwardPropsEmits } from 'reka-ui'
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DropdownMenuRootProps>()
|
|
6
|
+
const emits = defineEmits<DropdownMenuRootEmits>()
|
|
7
|
+
|
|
8
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<DropdownMenuRoot v-bind="forwarded">
|
|
13
|
+
<slot />
|
|
14
|
+
</DropdownMenuRoot>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuCheckboxItemEmits, DropdownMenuCheckboxItemProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuCheckboxItem,
|
|
7
|
+
|
|
8
|
+
DropdownMenuItemIndicator,
|
|
9
|
+
useForwardPropsEmits,
|
|
10
|
+
} from 'reka-ui'
|
|
11
|
+
import { cn } from '@/lib/utils'
|
|
12
|
+
|
|
13
|
+
const props = defineProps<DropdownMenuCheckboxItemProps & { class?: HTMLAttributes['class'] }>()
|
|
14
|
+
const emits = defineEmits<DropdownMenuCheckboxItemEmits>()
|
|
15
|
+
|
|
16
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
17
|
+
|
|
18
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
<DropdownMenuCheckboxItem
|
|
23
|
+
v-bind="forwarded"
|
|
24
|
+
:class=" cn(
|
|
25
|
+
'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
|
|
26
|
+
props.class,
|
|
27
|
+
)"
|
|
28
|
+
>
|
|
29
|
+
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
30
|
+
<DropdownMenuItemIndicator>
|
|
31
|
+
<Icon
|
|
32
|
+
name="lucide:check"
|
|
33
|
+
class="w-4 h-4"
|
|
34
|
+
/>
|
|
35
|
+
</DropdownMenuItemIndicator>
|
|
36
|
+
</span>
|
|
37
|
+
<slot />
|
|
38
|
+
</DropdownMenuCheckboxItem>
|
|
39
|
+
</template>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuContentEmits, DropdownMenuContentProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuContent,
|
|
7
|
+
|
|
8
|
+
DropdownMenuPortal,
|
|
9
|
+
useForwardPropsEmits,
|
|
10
|
+
} from 'reka-ui'
|
|
11
|
+
import { cn } from '@/lib/utils'
|
|
12
|
+
|
|
13
|
+
const props = withDefaults(
|
|
14
|
+
defineProps<DropdownMenuContentProps & { class?: HTMLAttributes['class'] }>(),
|
|
15
|
+
{
|
|
16
|
+
sideOffset: 4,
|
|
17
|
+
},
|
|
18
|
+
)
|
|
19
|
+
const emits = defineEmits<DropdownMenuContentEmits>()
|
|
20
|
+
|
|
21
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
22
|
+
|
|
23
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<DropdownMenuPortal>
|
|
28
|
+
<DropdownMenuContent
|
|
29
|
+
v-bind="forwarded"
|
|
30
|
+
:class="cn('z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', props.class)"
|
|
31
|
+
>
|
|
32
|
+
<slot />
|
|
33
|
+
</DropdownMenuContent>
|
|
34
|
+
</DropdownMenuPortal>
|
|
35
|
+
</template>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuGroupProps } from 'reka-ui'
|
|
3
|
+
import { DropdownMenuGroup } from 'reka-ui'
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DropdownMenuGroupProps>()
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<DropdownMenuGroup v-bind="props">
|
|
10
|
+
<slot />
|
|
11
|
+
</DropdownMenuGroup>
|
|
12
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuItemProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import { DropdownMenuItem, useForwardProps } from 'reka-ui'
|
|
6
|
+
import { cn } from '@/lib/utils'
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DropdownMenuItemProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<DropdownMenuItem
|
|
17
|
+
v-bind="forwardedProps"
|
|
18
|
+
:class="cn(
|
|
19
|
+
'relative flex cursor-default select-none items-center rounded-sm gap-2 px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
20
|
+
inset && 'pl-8',
|
|
21
|
+
props.class,
|
|
22
|
+
)"
|
|
23
|
+
>
|
|
24
|
+
<slot />
|
|
25
|
+
</DropdownMenuItem>
|
|
26
|
+
</template>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuLabelProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import { DropdownMenuLabel, useForwardProps } from 'reka-ui'
|
|
6
|
+
import { cn } from '@/lib/utils'
|
|
7
|
+
|
|
8
|
+
const props = defineProps<DropdownMenuLabelProps & { class?: HTMLAttributes['class'], inset?: boolean }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<DropdownMenuLabel
|
|
17
|
+
v-bind="forwardedProps"
|
|
18
|
+
:class="cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', props.class)"
|
|
19
|
+
>
|
|
20
|
+
<slot />
|
|
21
|
+
</DropdownMenuLabel>
|
|
22
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuRadioGroupEmits, DropdownMenuRadioGroupProps } from 'reka-ui'
|
|
3
|
+
import {
|
|
4
|
+
DropdownMenuRadioGroup,
|
|
5
|
+
|
|
6
|
+
useForwardPropsEmits,
|
|
7
|
+
} from 'reka-ui'
|
|
8
|
+
|
|
9
|
+
const props = defineProps<DropdownMenuRadioGroupProps>()
|
|
10
|
+
const emits = defineEmits<DropdownMenuRadioGroupEmits>()
|
|
11
|
+
|
|
12
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<DropdownMenuRadioGroup v-bind="forwarded">
|
|
17
|
+
<slot />
|
|
18
|
+
</DropdownMenuRadioGroup>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuRadioItemEmits, DropdownMenuRadioItemProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuItemIndicator,
|
|
7
|
+
DropdownMenuRadioItem,
|
|
8
|
+
|
|
9
|
+
useForwardPropsEmits,
|
|
10
|
+
} from 'reka-ui'
|
|
11
|
+
import { cn } from '@/lib/utils'
|
|
12
|
+
|
|
13
|
+
const props = defineProps<DropdownMenuRadioItemProps & { class?: HTMLAttributes['class'] }>()
|
|
14
|
+
|
|
15
|
+
const emits = defineEmits<DropdownMenuRadioItemEmits>()
|
|
16
|
+
|
|
17
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
18
|
+
|
|
19
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<DropdownMenuRadioItem
|
|
24
|
+
v-bind="forwarded"
|
|
25
|
+
:class="cn(
|
|
26
|
+
'relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
|
|
27
|
+
props.class,
|
|
28
|
+
)"
|
|
29
|
+
>
|
|
30
|
+
<span class="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
|
|
31
|
+
<DropdownMenuItemIndicator>
|
|
32
|
+
<Icon
|
|
33
|
+
name="lucide:dot"
|
|
34
|
+
:size="40"
|
|
35
|
+
class="fill-current mt-1"
|
|
36
|
+
/>
|
|
37
|
+
</DropdownMenuItemIndicator>
|
|
38
|
+
</span>
|
|
39
|
+
<slot />
|
|
40
|
+
</DropdownMenuRadioItem>
|
|
41
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSeparatorProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuSeparator,
|
|
7
|
+
|
|
8
|
+
} from 'reka-ui'
|
|
9
|
+
import { cn } from '@/lib/utils'
|
|
10
|
+
|
|
11
|
+
const props = defineProps<DropdownMenuSeparatorProps & {
|
|
12
|
+
class?: HTMLAttributes['class']
|
|
13
|
+
}>()
|
|
14
|
+
|
|
15
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<DropdownMenuSeparator
|
|
20
|
+
v-bind="delegatedProps"
|
|
21
|
+
:class="cn('-mx-1 my-1 h-px bg-muted', props.class)"
|
|
22
|
+
/>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
|
+
}>()
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<span :class="cn('ml-auto text-xs tracking-widest opacity-60', props.class)">
|
|
12
|
+
<slot />
|
|
13
|
+
</span>
|
|
14
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSubEmits, DropdownMenuSubProps } from 'reka-ui'
|
|
3
|
+
import {
|
|
4
|
+
DropdownMenuSub,
|
|
5
|
+
|
|
6
|
+
useForwardPropsEmits,
|
|
7
|
+
} from 'reka-ui'
|
|
8
|
+
|
|
9
|
+
const props = defineProps<DropdownMenuSubProps>()
|
|
10
|
+
const emits = defineEmits<DropdownMenuSubEmits>()
|
|
11
|
+
|
|
12
|
+
const forwarded = useForwardPropsEmits(props, emits)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<DropdownMenuSub v-bind="forwarded">
|
|
17
|
+
<slot />
|
|
18
|
+
</DropdownMenuSub>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSubContentEmits, DropdownMenuSubContentProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuSubContent,
|
|
7
|
+
|
|
8
|
+
useForwardPropsEmits,
|
|
9
|
+
} from 'reka-ui'
|
|
10
|
+
import { cn } from '@/lib/utils'
|
|
11
|
+
|
|
12
|
+
const props = defineProps<DropdownMenuSubContentProps & { class?: HTMLAttributes['class'] }>()
|
|
13
|
+
const emits = defineEmits<DropdownMenuSubContentEmits>()
|
|
14
|
+
|
|
15
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
16
|
+
|
|
17
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<DropdownMenuSubContent
|
|
22
|
+
v-bind="forwarded"
|
|
23
|
+
:class="cn('z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', props.class)"
|
|
24
|
+
>
|
|
25
|
+
<slot />
|
|
26
|
+
</DropdownMenuSubContent>
|
|
27
|
+
</template>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuSubTriggerProps } from 'reka-ui'
|
|
3
|
+
import type { HTMLAttributes } from 'vue'
|
|
4
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
5
|
+
import {
|
|
6
|
+
DropdownMenuSubTrigger,
|
|
7
|
+
|
|
8
|
+
useForwardProps,
|
|
9
|
+
} from 'reka-ui'
|
|
10
|
+
import { cn } from '@/lib/utils'
|
|
11
|
+
|
|
12
|
+
const props = defineProps<DropdownMenuSubTriggerProps & { class?: HTMLAttributes['class'] }>()
|
|
13
|
+
|
|
14
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
15
|
+
|
|
16
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<DropdownMenuSubTrigger
|
|
21
|
+
v-bind="forwardedProps"
|
|
22
|
+
:class="cn(
|
|
23
|
+
'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',
|
|
24
|
+
props.class,
|
|
25
|
+
)"
|
|
26
|
+
>
|
|
27
|
+
<slot />
|
|
28
|
+
<Icon
|
|
29
|
+
name="lucide:chevron-right"
|
|
30
|
+
class="ml-auto h-4 w-4"
|
|
31
|
+
/>
|
|
32
|
+
</DropdownMenuSubTrigger>
|
|
33
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { DropdownMenuTriggerProps } from 'reka-ui'
|
|
3
|
+
import { DropdownMenuTrigger, useForwardProps } from 'reka-ui'
|
|
4
|
+
|
|
5
|
+
const props = defineProps<DropdownMenuTriggerProps>()
|
|
6
|
+
|
|
7
|
+
const forwardedProps = useForwardProps(props)
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<DropdownMenuTrigger
|
|
12
|
+
class="outline-none"
|
|
13
|
+
v-bind="forwardedProps"
|
|
14
|
+
>
|
|
15
|
+
<slot />
|
|
16
|
+
</DropdownMenuTrigger>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { default as DropdownMenu } from './DropdownMenu.vue'
|
|
2
|
+
|
|
3
|
+
export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue'
|
|
4
|
+
export { default as DropdownMenuContent } from './DropdownMenuContent.vue'
|
|
5
|
+
export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue'
|
|
6
|
+
export { default as DropdownMenuItem } from './DropdownMenuItem.vue'
|
|
7
|
+
export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue'
|
|
8
|
+
export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue'
|
|
9
|
+
export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue'
|
|
10
|
+
export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue'
|
|
11
|
+
export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue'
|
|
12
|
+
export { default as DropdownMenuSub } from './DropdownMenuSub.vue'
|
|
13
|
+
export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue'
|
|
14
|
+
export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue'
|
|
15
|
+
export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue'
|
|
16
|
+
export { DropdownMenuPortal } from 'reka-ui'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { reactiveOmit } from
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { reactiveOmit } from '@vueuse/core'
|
|
4
|
+
import TableCell from './TableCell.vue'
|
|
5
|
+
import TableRow from './TableRow.vue'
|
|
6
|
+
import { cn } from '@/lib/utils'
|
|
7
7
|
|
|
8
8
|
const props = withDefaults(defineProps<{
|
|
9
|
-
class?: HTMLAttributes[
|
|
9
|
+
class?: HTMLAttributes['class']
|
|
10
10
|
colspan?: number
|
|
11
11
|
}>(), {
|
|
12
12
|
colspan: 1,
|
|
13
13
|
})
|
|
14
14
|
|
|
15
|
-
const delegatedProps = reactiveOmit(props,
|
|
15
|
+
const delegatedProps = reactiveOmit(props, 'class')
|
|
16
16
|
</script>
|
|
17
17
|
|
|
18
18
|
<template>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from
|
|
3
|
-
import { cn } from
|
|
2
|
+
import type { HTMLAttributes } from 'vue'
|
|
3
|
+
import { cn } from '@/lib/utils'
|
|
4
4
|
|
|
5
5
|
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes[
|
|
6
|
+
class?: HTMLAttributes['class']
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { default as Table } from
|
|
2
|
-
export { default as TableBody } from
|
|
3
|
-
export { default as TableCaption } from
|
|
4
|
-
export { default as TableCell } from
|
|
5
|
-
export { default as TableEmpty } from
|
|
6
|
-
export { default as TableFooter } from
|
|
7
|
-
export { default as TableHead } from
|
|
8
|
-
export { default as TableHeader } from
|
|
9
|
-
export { default as TableRow } from
|
|
1
|
+
export { default as Table } from './Table.vue'
|
|
2
|
+
export { default as TableBody } from './TableBody.vue'
|
|
3
|
+
export { default as TableCaption } from './TableCaption.vue'
|
|
4
|
+
export { default as TableCell } from './TableCell.vue'
|
|
5
|
+
export { default as TableEmpty } from './TableEmpty.vue'
|
|
6
|
+
export { default as TableFooter } from './TableFooter.vue'
|
|
7
|
+
export { default as TableHead } from './TableHead.vue'
|
|
8
|
+
export { default as TableHeader } from './TableHeader.vue'
|
|
9
|
+
export { default as TableRow } from './TableRow.vue'
|
package/composables/useConfig.ts
CHANGED
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordup-md/nuxt-layer-shadcn-unocss",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.9",
|
|
5
5
|
"author": "Emmanuel Salomon <emmanuel.salomon@gmail.com>",
|
|
6
6
|
"main": "./nuxt.config.ts",
|
|
7
7
|
"repository": {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"@unocss/nuxt": "^66.0.0",
|
|
25
25
|
"@vueuse/core": "^13.2.0",
|
|
26
26
|
"@vueuse/nuxt": "^13.1.0",
|
|
27
|
+
"bumpp": "^10.2.3",
|
|
27
28
|
"eslint": "^9.26.0",
|
|
28
29
|
"shadcn-nuxt": "^2.1.0",
|
|
29
30
|
"shiki": "^2.1.0",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"reka-ui": "^2.2.1",
|
|
53
54
|
"tailwind-merge": "^3.2.0"
|
|
54
55
|
},
|
|
56
|
+
"packageManager": "pnpm@10.4.1",
|
|
55
57
|
"scripts": {
|
|
56
58
|
"dev": "nuxi dev .playground",
|
|
57
59
|
"dev:root": "nuxi dev",
|
|
@@ -60,6 +62,8 @@
|
|
|
60
62
|
"preview": "nuxt preview .playground",
|
|
61
63
|
"lint": "eslint .",
|
|
62
64
|
"build:json-doc": "tsx scripts/buildContentDoc-cli.ts",
|
|
65
|
+
"bump": "pnpm build:json-doc && bumpp --skip-install --commit --push --tag",
|
|
66
|
+
"release": "pnpm bump && npm publish",
|
|
63
67
|
"clean": "find . -name 'node_modules' -type d -prune -exec rm -rf '{}' + && find . -name '.nuxt' -type d -prune -exec rm -rf '{}' + && find . -name '.output' -type d -prune -exec rm -rf '{}' + && find . -name 'dist' -prune -exec rm -rf '{}' +"
|
|
64
68
|
}
|
|
65
69
|
}
|
package/pages/admin/login.vue
CHANGED